1<!doctype html> 2<html class="js" lang="en"> 3 <head><link rel="preconnect" href="https://pdp.gokwik.co" crossorigin> 4 5 <link rel="dns-prefetch" href="https://api.gokwik.co"> 6 <link rel="dns-prefetch" href="https://connect.facebook.net"> 7 <link rel="dns-prefetch" href="https://www.googletagmanager.com"> 8 9 <meta name="google-site-verification" content="82ND1mlWRMlKonP3sIWyzT-TeflKq-zYknuMztmYYbo"><meta charset="utf-8"> 10 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 11 <meta name="viewport" content="width=device-width,initial-scale=1"> 12 <meta name="theme-color" content=""> 13 <link rel="canonical" href="https://www.soulflower.in/pages/99store"><link rel="icon" type="image/png" href="//www.soulflower.in/cdn/shop/files/Soulflower-Highres-Logo-BLACK.svg?crop=center&height=32&v=1780565328&width=32"><title> 14 99store 15 – Soulflower.in</title> 16 17 18 19 20 21<meta property="og:site_name" content="Soulflower.in"> 22<meta property="og:url" content="https://www.soulflower.in/pages/99store"> 23<meta property="og:title" content="99store"> 24<meta property="og:type" content="website"> 25<meta property="og:description" content="Soulflower offers 100% pure, natural Rosemary Oil Certified Organic, handmade skin care, hair care, and body care products with scientific actives for all your needs. Visit our online store to experience Clean Science India's 1st Preservative-free & Clinically proven Beauty Brand."><meta property="og:image" content="http://www.soulflower.in/cdn/shop/files/2000x1000.png?v=1681470695"> 26 <meta property="og:image:secure_url" content="https://www.soulflower.in/cdn/shop/files/2000x1000.png?v=1681470695"> 27 <meta property="og:image:width" content="2000"> 28 <meta property="og:image:height" content="1000"><meta name="twitter:site" content="@besoulflower"><meta name="twitter:card" content="summary_large_image"> 29<meta name="twitter:title" content="99store"> 30<meta name="twitter:description" content="Soulflower offers 100% pure, natural Rosemary Oil Certified Organic, handmade skin care, hair care, and body care products with scientific actives for all your needs. Visit our online store to experience Clean Science India's 1st Preservative-free & Clinically proven Beauty Brand."> 31 32 33
33<script src="//www.soulflower.in/cdn/shop/t/140/assets/constants.js?v=132983761750457495441789808715" defer="defer"></script>
33 34
34<script src="//www.soulflower.in/cdn/shop/t/140/assets/pubsub.js?v=25310214064522200911789808780" defer="defer"></script>
34 35
35<script src="//www.soulflower.in/cdn/shop/t/140/assets/global.js?v=183015515420046029201789808720" defer="defer"></script>
35 36
36<script src="//www.soulflower.in/cdn/shop/t/140/assets/details-disclosure.js?v=13653116266235556501789808717" defer="defer"></script>
36 37
37<script src="//www.soulflower.in/cdn/shop/t/140/assets/details-modal.js?v=25581673532751508451789808717" defer="defer"></script>
37 38
38<script src="//www.soulflower.in/cdn/shop/t/140/assets/search-form.js?v=133129549252120666541789808785" defer="defer"></script>
38 39
39<script src="//www.soulflower.in/cdn/shop/t/140/assets/cart.js?v=25986244538023964561789808691" defer="defer"></script>
39 40
40<script src="//www.soulflower.in/cdn/shop/t/140/assets/quantity-popover.js?v=987015268078116491789808781" defer="defer"></script>
40 41
41<script src="//www.soulflower.in/cdn/shop/t/140/assets/product-form.js?v=71233952884930340321789808778" defer="defer"></script>
41 42
42<script src="//www.soulflower.in/cdn/shop/t/140/assets/quick-add.js?v=73073840428863680991789808783" defer="defer"></script>
42 43
44<script> 45(function () { 46 var KEY = 'open-cart-drawer'; 47 var BACK = 'cart-came-from'; 48 49 if (window.location.pathname.replace(/\/+$/, '') === '/cart') { 50 sessionStorage.setItem(KEY, '1'); 51 52 var to = sessionStorage.getItem(BACK) || '/'; 53 sessionStorage.removeItem(BACK); 54 window.location.replace(to); 55 return; 56 } 57 58 // Not on /cart â remember this page as the one to come back to. 59 sessionStorage.setItem(BACK, window.location.pathname + window.location.search); 60 61 if (sessionStorage.getItem(KEY)) { 62 sessionStorage.removeItem(KEY); 63 document.addEventListener('DOMContentLoaded', function () { 64 if (window.cartx && typeof window.cartx.open === 'function') { 65 window.cartx.open(); 66 } 67 }); 68 } 69})(); 70</script>
70<script src="//www.soulflower.in/cdn/shop/t/140/assets/animations.js?v=47399527081059271061789808688" defer="defer"></script>
70 71 72
73<script> 74 window.gaTag = { ga4: "" }; 75 window.merchantInfo = { 76 mid: "19g6ilp6oqryo", 77 environment: "production", 78 type: "merchantInfo", 79 storeId: "54912745725", 80 fbpixel: "1812651705513487", 81 snapchatPixels: "" 82 }; 83 var productFormSelector = ''; 84 var cart = {"note":null,"attributes":{},"original_total_price":0,"total_price":0,"total_discount":0,"total_weight":0.0,"item_count":0,"items":[],"requires_shipping":false,"currency":"INR","items_subtotal_price":0,"cart_level_discount_applications":[],"checkout_charge_amount":0}; 85 var templateName = 'page'; 86 </script>
86 87 88
89<script> 90 (function(){ 91 var loaded = false; 92 function loadGokwik(){ 93 if (loaded) return; 94 loaded = true; 95 var s = document.createElement('script'); 96 s.src = 'https://pdp.gokwik.co/merchant-integration/build/merchant.integration.js?v4'; 97 s.defer = true; 98 document.head.appendChild(s); 99 } 100 101 // STRATEGY 1: Load on first user interaction (fastest perceived speed) 102 var interactionEvents = ['scroll', 'touchstart', 'keydown', 'mousemove']; 103 function onInteraction(){ 104 loadGokwik(); 105 interactionEvents.forEach(function(e){ 106 window.removeEventListener(e, onInteraction); 107 }); 108 } 109 interactionEvents.forEach(function(e){ 110 window.addEventListener(e, onInteraction, { once: true, passive: true }); 111 }); 112 113 // STRATEGY 2: Load on cart icon hover (eager load if user goes for cart) 114 document.addEventListener('mouseenter', function(e){ 115 if (e.target.closest && e.target.closest('#cart-icon-bubble, .header__icon--cart, [href$="/cart"], .add-btn, .product-form__submit')){ 116 loadGokwik(); 117 } 118 }, { capture: true, passive: true }); 119 120 document.addEventListener('touchstart', function(e){
121 if (e.target.closest && e.target.closest('#cart-icon-bubble, .header__icon--cart, [href$="/cart"], .add-btn, .product-form__submit')){ 122 loadGokwik(); 123 } 124 }, { capture: true, passive: true }); 125 126 // STRATEGY 3: Idle fallback (3s) â for users who don't interact 127 if ('requestIdleCallback' in window){ 128 requestIdleCallback(loadGokwik, { timeout: 3000 }); 129 } else { 130 setTimeout(loadGokwik, 2500); 131 } 132 133 // STRATEGY 4: Eager load on product/cart pages (high intent) 134 var pageType = 'page'; 135 if (pageType === 'product' || pageType === 'cart') { 136 setTimeout(loadGokwik, 800); 137 } 138 })(); 139 </script>
vendor: 1 bytes, line 139
139
140<script> 141 window.addEventListener('gokwikLoaded', function gokwikInit(){ 142 window.removeEventListener('gokwikLoaded', gokwikInit); 143 144 // Enable Buy Now button 145 var buyNowButton = document.getElementById('gokwik-buy-now'); 146 if (buyNowButton){ 147 buyNowButton.disabled = false; 148 buyNowButton.classList.remove('disabled'); 149 } 150 151 // Enable checkout buttons 152 document.querySelectorAll('.gokwik-checkout button').forEach(function(b){ 153 b.disabled = false; 154 b.classList.remove('disabled'); 155 }); 156 157 // ââ SCOPED MutationObserver: ONLY watch the main Add-to-Cart button ââ 158 var atcButton = document.querySelector("button[name='add']"); 159 var gokwikBuyNowButton = document.getElementById('gokwik-buy-now'); 160 161 if (atcButton && gokwikBuyNowButton){ 162 var atcObserver = new MutationObserver(function(){ 163 if (atcButton.disabled){ 164 gokwikBuyNowButton.setAttribute('disabled', 'disabled'); 165 } else { 166 gokwikBuyNowButton.removeAttribute('disabled'); 167 } 168 }); 169 // ONLY watch the attribute changes on this ONE button (much cheaper than watching body!) 170 atcObserver.observe(atcButton, { 171 attributes: true, 172 attributeFilter: ['disabled'] 173 }); 174 } 175 }); 176 </script>
176 177 178 179 180<style> 181 182 .gokwik-checkout { 183 width: 100%; 184 display: flex; 185 justify-content: center; 186 flex-direction: column; 187 align-items: end; 188 margin-bottom: 10px; 189 } 190 .gokwik-checkout button { 191 max-width: 100%; 192 width: 100%; 193 border: none; 194 display: flex; 195 justify-content: center; 196 align-items: center; 197 background: #ffffff; 198 position: relative; 199 cursor: pointer; 200 padding: 5px 10px; 201 height: 45px; 202 } 203 #gokwik-buy-now.disabled, 204 .gokwik-disabled { 205 opacity: 0.5; 206 cursor: not-allowed; 207 } 208 .gokwik-checkout button:focus { outline: none; } 209 .gokwik-checkout button > span { 210 display: flex; 211 align-items: center; 212 justify-content: center; 213 } 214 .gokwik-checkout button > span.btn-text { 215 display: flex; 216 flex-direction: column; 217 color: #000000; 218 align-items: center; 219 } 220 .gokwik-checkout button > span.btn-text > span:last-child { 221 padding-top: 2px; 222 font-size: 10px; 223 line-height: 10px; 224 text-transform: initial; 225 } 226 .gokwik-checkout button > span.btn-text > span:first-child { 227 font-size: 15px; 228 } 229 .gokwik-checkout button > span.pay-opt-icon img:first-child { 230 margin-right: 10px; 231 margin-left: 10px; 232 height: 18px; 233 } 234 .gokwik-checkout button > span.pay-opt-icon img:last-child { 235 height: 15px; 236 } 237 .gokwik-checkout button.disabled { 238 opacity: 0.5; 239 cursor: not-allowed; 240 } 241 .gokwik-checkout button.disabled .addloadr#btn-loader { display: flex !important; } 242 #gokwik-buy-now.disabled .addloadr#btn-loader { display: flex !important; } 243 #gokwik-buy-now:disabled { cursor: not-allowed; } 244 245 246 247 #gokwik-buy-now { 248 background: #fadacc; 249 width: 100%; 250 color: #000; 251 cursor: pointer; 252 display: flex; 253 justify-content: center; 254 align-items: center; 255 line-height: 1; 256 border: none; 257 padding: 15px 10px; 258 font-size: 15px; 259 margin-bottom: 10px; 260 position: relative; 261 } 262 #gokwik-buy-now > span.btn-text > span:last-child { 263 padding-top: 0; 264 font-size: 10px; 265 letter-spacing: 1px; 266 line-height: 14px; 267 text-transform: initial; 268 } 269 #gokwik-buy-now > span { 270 display: flex; 271 align-items: center; 272 justify-content: center; 273 } 274 #gokwik-buy-now > span.btn-text { 275 display: flex; 276 flex-direction: column; 277 align-items: center; 278 } 279 #gokwik-buy-now > span.pay-opt-icon img:first-child { 280 margin-right: 10px; 281 margin-left: 10px; 282 height: 18px; 283 } 284 #gokwik-buy-now > span.pay-opt-icon img:last-child { 285 height: 15px; 286 } 287 288 289 290 291 /* Loader */ 292 #btn-loader { 293 display: none; 294 position: absolute; 295 top: 0; 296 bottom: 0; 297 left: 0; 298 right: 0; 299 justify-content: center; 300 align-items: center; 301 background: #ffffff; 302 border-radius: 0px; 303 } 304 .cir-loader, 305 .cir-loader:after { 306 border-radius: 50%; 307 width: 35px; 308 height: 35px; 309 } 310 .cir-loader { 311 margin: 6px auto; 312 font-size: 10px; 313 position: relative; 314 text-indent: -9999em; 315 border-top: 0.5em solid rgba(255, 255, 255, 0.2); 316 border-right: 0.5em solid rgba(255, 255, 255, 0.2); 317 border-bottom: 0.5em solid rgba(255, 255, 255, 0.2); 318 border-left: 0.5em solid #FFFFFF; 319 transform: translateZ(0); 320 animation: load8 1.1s infinite linear; 321 } 322 @keyframes load8 { 323 0% { transform: rotate(0deg); } 324 100% { transform: rotate(360deg); } 325 } 326</style> 327 328
328<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
328<meta name="google-site-verification" content="IFp4abpkBP4fc0h0YiW30xBu1Faptiey8FjYV7abfRg"> 329<meta name="facebook-domain-verification" content="ey4c14n2t3a8nq0w4ekfk4dxah0odb"> 330<meta name="facebook-domain-verification" content="pkbwd7nv0ch120dpxymxjjxbf5ylyc"> 331<meta name="google-site-verification" content="7LK1vSSou2s-_9JnHfYxXOkYzuWHY43F6eAIyW7DHV0"> 332<meta name="google-site-verification" content="v4Risn6shURfi6r-UYDNk8CaNfo_6mI5pCI3mQ8Sg_0"> 333<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/54912745725/digital_wallets/dialog"> 334<link rel="ucp" href="/.well-known/ucp" version="2026-08-25">
334<script async="async" src="/checkouts/internal/preloads.js?locale=en-IN&default_configuration_id=326598909"></script>
vendor: 1 bytes, line 334
334
335<script id="shopify-features" type="application/json">{"accessToken":"2220aa19ab257ed97633250c2bc569bd","betas":["rich-media-storefront-analytics"],"domain":"www.soulflower.in","predictiveSearch":true,"shopId":54912745725,"locale":"en"}</script>
vendor: 1 bytes, line 335
335
336<script>var Shopify = Shopify || {}; 337Shopify.shop = "soulflower-bc21.myshopify.com"; 338Shopify.locale = "en"; 339Shopify.currency = {"active":"INR","rate":"1.0"}; 340Shopify.country = "IN"; 341Shopify.theme = {"name":"birthday sale","id":213442101501,"schema_name":"Dawn","schema_version":"15.4.0","theme_store_id":null,"role":"main"}; 342Shopify.theme.handle = "null"; 343Shopify.theme.style = {"id":null,"handle":null}; 344Shopify.cdnHost = "www.soulflower.in/cdn"; 345Shopify.routes = Shopify.routes || {}; 346Shopify.routes.root = "/"; 347Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js"; 348Shopify.SignInWithShop = Shopify.SignInWithShop || {}; 349Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {}; 350Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 350
350
351<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 351
351
352<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 352
352
353<script> 354 window.Shopify = window.Shopify || {}; 355 window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {}; 356 window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 }; 357 window.Shopify.SignInWithShop.eligible = true; 358</script>
vendor: 1 bytes, line 358
358
359<script id="shop-js-analytics" type="application/json">{"pageType":"page"}</script>
vendor: 1 bytes, line 359
359
360<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 360
360
361<script type="module"> 362 await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js"); 363 364 window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true}); 365 366</script>
vendor: 1 bytes, line 366
366
367<script> 368 window.Shopify = window.Shopify || {}; 369 if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {}; 370 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"]}; 371</script>
vendor: 1 bytes, line 371
371
372<script>(function() { 373 var isLoaded = false; 374 function asyncLoad() { 375 if (isLoaded) return; 376 isLoaded = true; 377 var urls = ["https:\/\/admin.revenuehunt.com\/embed.js?shop=soulflower-bc21.myshopify.com","https:\/\/svc.nitrocommerce.ai\/v1\/services\/shopify\/xshopify.js?_t=ee7fd0e5-9232-419a-9b79-646be0002f82\u0026shop=soulflower-bc21.myshopify.com","https:\/\/svc.nitrocommerce.ai\/v1\/services\/shopify\/ee7fd0e5-9232-419a-9b79-646be0002f82\/xshopify.js?shop=soulflower-bc21.myshopify.com"]; 378 for (var i = 0; i < urls.length; i++) { 379 var s = document.createElement('script'); 380 s.type = 'text/javascript'; 381 s.async = true; 382 s.src = urls[i]; 383 var x = document.getElementsByTagName('script')[0]; 384 x.parentNode.insertBefore(s, x); 385 } 386 }; 387 if(window.attachEvent) { 388 window.attachEvent('onload', asyncLoad); 389 } else { 390 window.addEventListener('load', asyncLoad, false); 391 } 392})();</script>
vendor: 1 bytes, line 392
392
393<script id="__st">var __st={"a":54912745725,"offset":19800,"reqid":"abec9208-4f26-4f20-9cb8-2ee39e1c11fa-1791567080","pageurl":"www.soulflower.in\/pages\/99store","s":"pages-165045436669","u":"e07277be2a4f","p":"page","rtyp":"page","rid":165045436669};</script>
vendor: 1 bytes, line 393
393
394<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 394
394
395<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 395
395
396<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//www.soulflower.in/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 396
396
397<script>(function () {var userAgent = navigator.userAgent;var platform = navigator.platform;var maxTouchPoints = navigator.maxTouchPoints || 0;var isIOS = /iPad|iPhone|iPod/.test(platform) || (platform === 'MacIntel' && maxTouchPoints > 1);var isMacSafari = platform.indexOf('Mac') === 0 && /Safari/.test(userAgent) && !/Chrome|Chromium|CriOS|FxiOS|Edg|OPR|Android/.test(userAgent);var isAppleSafari = isIOS || isMacSafari;if (isAppleSafari) {fetch('/sf_private_access_tokens' + location.search).catch(function () {});}function browserMajorVersion(pattern) {var match = userAgent.match(pattern);return match ? parseInt(match[1], 10) : null;}function shouldLoadAutosizesPolyfill() {if (!window.PerformanceObserver?.supportedEntryTypes?.includes('paint')) {return false;}var chromeVersion = browserMajorVersion(/Chrome\/(\d+)/);if (chromeVersion !== null) {return chromeVersion < 126;}var firefoxVersion = browserMajorVersion(/Firefox\/(\d+)/);if (firefoxVersion !== null) {return firefoxVersion < 150;}var safariVersion = isAppleSafari ? browserMajorVersion(/Version\/(\d+).*Safari\//) : null;if (safariVersion !== null) {return safariVersion < 27;}return true;}if (shouldLoadAutosizesPolyfill()) {var autosizesScript = document.createElement('script');autosizesScript.async = true;autosizesScript.crossOrigin = 'anonymous';autosizesScript.src = "//www.soulflower.in/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>
397<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 397
397
398<script> 399 window.Shopify = window.Shopify || {}; 400 window.Shopify.MCP = window.Shopify.MCP || {}; 401 window.Shopify.MCP.enabled = true; 402 window.Shopify.MCP.shop = "soulflower-bc21.myshopify.com"; 403 window.Shopify.MCP.mcpEndpoint = "https:\/\/www.soulflower.in\/api\/mcp"; 404 window.Shopify.MCP.tools = [{"name":"search_shop_policies_and_faqs","description":"Used to get facts about the stores policies, products, or services.\nSome examples of questions you can ask are:\n - What is your return policy?\n - What is your shipping policy?\n - What is your phone number?\n - What are your hours of operation?\"\nSet policy_types to also get the store's written policies (full text and URL).\n","inputSchema":{"$schema":"https:\/\/json-schema.org\/draft\/2020-12\/schema","type":"object","properties":{"query":{"type":"string","description":"A natural language query."},"context":{"type":"string","description":"Additional information about the request such as user demographics, mood, location, or other relevant details that could help in tailoring the response appropriately."},"policy_types":{"type":"array","items":{"type":"string","enum":["refund","shipping","privacy","terms_of_service","terms_of_sale","subscription","legal_notice","contact"]},"description":"Policy kinds to fetch, chosen from the user's question â e.g. [\"refund\"] for returns\/exchanges\/damaged items, [\"contact\"] for phone\/hours\/address. Include every kind the question touches. Omit it to get only FAQ answers."}},"required":["query"]}}]; 405</script>
vendor: 1 bytes, line 405
405
406<script>(()=>{var d="shopify:webmcp_adapter_loaded",n=Symbol.for("shopify.webmcp_adapter_loading");function s(c,a,{win:r=window,doc:o=document}={}){function p(){try{return r.localStorage.getItem(d)==="true"}catch{return!1}}function l(){try{r.localStorage.setItem(d,"true")}catch{}}function u(){return typeof(o.modelContext||r.navigator?.modelContext)?.registerTool=="function"}function f(){if(r[n]||!u())return;let t=o.head||o.getElementsByTagName("head")[0];if(!t)return;let e=o.createElement("script");e.type="module",e.crossOrigin="anonymous",a&&(e.integrity=a),e.src=c,e.addEventListener("load",l,{once:!0}),e.addEventListener("error",()=>{r[n]=!1},{once:!0}),t.appendChild(e),r[n]=!0}function _(t){let e=o.getElementById("shopify-origin-trials");if(!e||r.__shopifyOriginTrialsDone){t();return}e.addEventListener("load",t,{once:!0}),e.addEventListener("error",t,{once:!0})}function i(){_(()=>r.setTimeout(f,0))}function m(){o.addEventListener("DOMContentLoaded",i,{once:!0})}p()?i():m()}s("\/\/www.soulflower.in\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-f427de6a.js","sha256-ypGF+5vIq4Psw4WG7nsVtdd\/TCfsJWnrNuACdqLCElY=");})(); 407</script>
vendor: 1 bytes, line 407
407
408<script data-source-attribution="shopify.dynamic_checkout.dynamic.init">var Shopify=Shopify||{};Shopify.PaymentButton=Shopify.PaymentButton||{isStorefrontPortableWallets:!0,init:function(){window.Shopify.PaymentButton.init=function(){};var t=document.createElement("script");t.src="https://www.soulflower.in/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}}; 409</script>
vendor: 1 bytes, line 409
409
410<script data-source-attribution="shopify.dynamic_checkout.buyer_consent"> 411 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); 412</script>
vendor: 1 bytes, line 412
412
413<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})}})); 414</script>
vendor: 1 bytes, line 414
414
415<script id="sections-script" data-sections="header" defer="defer" src="//www.soulflower.in/cdn/shop/t/140/compiled_assets/scripts.js?v=82099138043154483781789808831"></script>
vendor: 1 bytes, line 415
415
416<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
416 417 418 419 420<style data-shopify> 421 @font-face { 422 font-family: 'Google Sans Flex'; 423 font-style: normal; 424 font-display: swap; 425 font-weight: 1 1000; 426 src: url(https://cdn.jsdelivr.net/fontsource/fonts/google-sans-flex:[email protected]/latin-wght-normal.woff2) format('woff2-variations'); 427 } 428 :root { --sf-font: 'Google Sans Flex', sans-serif; } 429</style> 430 431 <style data-shopify> 432 @font-face { 433 font-family: Barlow; 434 font-weight: 400; 435 font-style: normal; 436 font-display: swap; 437 src: url("//www.soulflower.in/cdn/fonts/barlow/barlow_n4.038c60d7ea9ddb238b2f64ba6f463ba6c0b5e5ad.woff2") format("woff2"), 438 url("//www.soulflower.in/cdn/fonts/barlow/barlow_n4.074a9f2b990b38aec7d56c68211821e455b6d075.woff") format("woff"); 439} 440 441 @font-face { 442 font-family: Barlow; 443 font-weight: 700; 444 font-style: normal; 445 font-display: swap; 446 src: url("//www.soulflower.in/cdn/fonts/barlow/barlow_n7.691d1d11f150e857dcbc1c10ef03d825bc378d81.woff2") format("woff2"), 447 url("//www.soulflower.in/cdn/fonts/barlow/barlow_n7.4fdbb1cb7da0e2c2f88492243ffa2b4f91924840.woff") format("woff"); 448} 449 450 @font-face { 451 font-family: Barlow; 452 font-weight: 400; 453 font-style: italic; 454 font-display: swap; 455 src: url("//www.soulflower.in/cdn/fonts/barlow/barlow_i4.8c59b6445f83f078b3520bad98b24d859431b377.woff2") format("woff2"), 456 url("//www.soulflower.in/cdn/fonts/barlow/barlow_i4.bf7e6d69237bd02188410034976892368fd014c0.woff") format("woff"); 457} 458 459 @font-face { 460 font-family: Barlow; 461 font-weight: 700; 462 font-style: italic; 463 font-display: swap; 464 src: url("//www.soulflower.in/cdn/fonts/barlow/barlow_i7.50e19d6cc2ba5146fa437a5a7443c76d5d730103.woff2") format("woff2"), 465 url("//www.soulflower.in/cdn/fonts/barlow/barlow_i7.47e9f98f1b094d912e6fd631cc3fe93d9f40964f.woff") format("woff"); 466} 467 468 @font-face { 469 font-family: Barlow; 470 font-weight: 400; 471 font-style: normal; 472 font-display: swap; 473 src: url("//www.soulflower.in/cdn/fonts/barlow/barlow_n4.038c60d7ea9ddb238b2f64ba6f463ba6c0b5e5ad.woff2") format("woff2"), 474 url("//www.soulflower.in/cdn/fonts/barlow/barlow_n4.074a9f2b990b38aec7d56c68211821e455b6d075.woff") format("woff"); 475} 476 477 478 479 :root, 480 .color-scheme-1 { 481 --color-background: 255,255,255; 482 483 --gradient-background: #ffffff; 484 485 486 487 488 489 --color-foreground: 0,0,0; 490 --color-background-contrast: 191,191,191; 491 --color-shadow: 0,0,0; 492 --color-button: 0,0,0; 493 --color-button-text: 255,255,255; 494 --color-secondary-button: 255,255,255; 495 --color-secondary-button-text: 0,0,0; 496 --color-link: 0,0,0; 497 --color-badge-foreground: 0,0,0; 498 --color-badge-background: 255,255,255; 499 --color-badge-border: 0,0,0; 500 --payment-terms-background-color: rgb(255 255 255); 501 } 502 503 504 .color-scheme-2 { 505 --color-background: 0,0,0; 506 507 --gradient-background: rgba(0,0,0,0); 508 509 510 511 512 513 --color-foreground: 0,0,0; 514 --color-background-contrast: 128,128,128; 515 --color-shadow: 0,0,0; 516 --color-button: 0,0,0; 517 --color-button-text: 255,255,255; 518 --color-secondary-button: 0,0,0; 519 --color-secondary-button-text: 0,0,0; 520 --color-link: 0,0,0; 521 --color-badge-foreground: 0,0,0; 522 --color-badge-background: 0,0,0; 523 --color-badge-border: 0,0,0; 524 --payment-terms-background-color: rgb(0 0 0); 525 } 526 527 528 .color-scheme-3 { 529 --color-background: 36,40,51; 530 531 --gradient-background: #242833; 532 533 534 535 536 537 --color-foreground: 255,255,255; 538 --color-background-contrast: 47,52,66; 539 --color-shadow: 18,18,18; 540 --color-button: 255,255,255; 541 --color-button-text: 0,0,0; 542 --color-secondary-button: 36,40,51; 543 --color-secondary-button-text: 255,255,255; 544 --color-link: 255,255,255; 545 --color-badge-foreground: 255,255,255; 546 --color-badge-background: 36,40,51; 547 --color-badge-border: 255,255,255; 548 --payment-terms-background-color: rgb(36 40 51); 549 } 550 551 552 .color-scheme-4 { 553 --color-background: 0,0,0; 554 555 --gradient-background: #000000; 556 557 558 559 560 561 --color-foreground: 255,255,255; 562 --color-background-contrast: 128,128,128; 563 --color-shadow: 0,0,0; 564 --color-button: 255,255,255; 565 --color-button-text: 0,0,0; 566 --color-secondary-button: 0,0,0; 567 --color-secondary-button-text: 255,255,255; 568 --color-link: 255,255,255; 569 --color-badge-foreground: 255,255,255; 570 --color-badge-background: 0,0,0; 571 --color-badge-border: 255,255,255; 572 --payment-terms-background-color: rgb(0 0 0); 573 } 574 575 576 .color-scheme-5 { 577 --color-background: 249,249,249; 578 579 --gradient-background: #f9f9f9; 580 581 582 583 584 585 --color-foreground: 0,0,0; 586 --color-background-contrast: 185,185,185; 587 --color-shadow: 18,18,18; 588 --color-button: 0,0,0; 589 --color-button-text: 0,0,0; 590 --color-secondary-button: 249,249,249; 591 --color-secondary-button-text: 0,0,0; 592 --color-link: 0,0,0; 593 --color-badge-foreground: 0,0,0; 594 --color-badge-background: 249,249,249; 595 --color-badge-border: 0,0,0; 596 --payment-terms-background-color: rgb(249 249 249); 597 } 598 599 600 .color-scheme-92266a57-2faa-447a-b92d-3c16e3e45df7 { 601 --color-background: 212,255,214; 602 603 --gradient-background: linear-gradient(310deg, rgba(213, 255, 225, 1) 15%, rgba(136, 242,
603194, 1) 85%); 604 605 606 607 608 609 --color-foreground: 0,0,0; 610 --color-background-contrast: 85,255,92; 611 --color-shadow: 0,0,0; 612 --color-button: 0,0,0; 613 --color-button-text: 255,255,255; 614 --color-secondary-button: 212,255,214; 615 --color-secondary-button-text: 0,0,0; 616 --color-link: 0,0,0; 617 --color-badge-foreground: 0,0,0; 618 --color-badge-background: 212,255,214; 619 --color-badge-border: 0,0,0; 620 --payment-terms-background-color: rgb(212 255 214); 621 } 622 623 624 .color-scheme-25c3c845-13d4-44f5-b71b-e4a64b9fa7a8 { 625 --color-background: 231,48,104; 626 627 --gradient-background: #e73068; 628 629 630 631 632 633 --color-foreground: 0,0,0; 634 --color-background-contrast: 136,16,52; 635 --color-shadow: 0,0,0; 636 --color-button: 0,0,0; 637 --color-button-text: 255,255,255; 638 --color-secondary-button: 231,48,104; 639 --color-secondary-button-text: 0,0,0; 640 --color-link: 0,0,0; 641 --color-badge-foreground: 0,0,0; 642 --color-badge-background: 231,48,104; 643 --color-badge-border: 0,0,0; 644 --payment-terms-background-color: rgb(231 48 104); 645 } 646 647 648 .color-scheme-392471f1-d2db-43d3-8aa5-0d165274b850 { 649 --color-background: 255,255,255; 650 651 --gradient-background: #ffffff; 652 653 654 655 656 657 --color-foreground: 0,187,255; 658 --color-background-contrast: 191,191,191; 659 --color-shadow: 0,0,0; 660 --color-button: 255,255,255; 661 --color-button-text: 255,255,255; 662 --color-secondary-button: 255,255,255; 663 --color-secondary-button-text: 0,0,0; 664 --color-link: 0,0,0; 665 --color-badge-foreground: 0,187,255; 666 --color-badge-background: 255,255,255; 667 --color-badge-border: 0,187,255; 668 --payment-terms-background-color: rgb(255 255 255); 669 } 670 671 672 .color-scheme-343b8a35-6ff9-4490-ba4d-fe0702ab16c0 { 673 --color-background: 255,255,255; 674 675 --gradient-background: #ffffff; 676 677 678 679 680 681 --color-foreground: 255,127,48; 682 --color-background-contrast: 191,191,191; 683 --color-shadow: 0,0,0; 684 --color-button: 23,171,0; 685 --color-button-text: 255,255,255; 686 --color-secondary-button: 255,255,255; 687 --color-secondary-button-text: 0,0,0; 688 --color-link: 0,0,0; 689 --color-badge-foreground: 255,127,48; 690 --color-badge-background: 255,255,255; 691 --color-badge-border: 255,127,48; 692 --payment-terms-background-color: rgb(255 255 255); 693 } 694 695 696 .color-scheme-aadd8e2c-c8b2-4676-a1f5-b15cf4939dad { 697 --color-background: 255,255,255; 698 699 --gradient-background: #ffffff; 700 701 702 703 704 705 --color-foreground: 23,171,0; 706 --color-background-contrast: 191,191,191; 707 --color-shadow: 0,0,0; 708 --color-button: 23,171,0; 709 --color-button-text: 255,255,255; 710 --color-secondary-button: 255,255,255; 711 --color-secondary-button-text: 0,0,0; 712 --color-link: 0,0,0; 713 --color-badge-foreground: 23,171,0; 714 --color-badge-background: 255,255,255; 715 --color-badge-border: 23,171,0; 716 --payment-terms-background-color: rgb(255 255 255); 717 } 718 719 720 body, .color-scheme-1, .color-scheme-2, .color-scheme-3, .color-scheme-4, .color-scheme-5, .color-scheme-92266a57-2faa-447a-b92d-3c16e3e45df7, .color-scheme-25c3c845-13d4-44f5-b71b-e4a64b9fa7a8, .color-scheme-392471f1-d2db-43d3-8aa5-0d165274b850, .color-scheme-343b8a35-6ff9-4490-ba4d-fe0702ab16c0, .color-scheme-aadd8e2c-c8b2-4676-a1f5-b15cf4939dad { 721 color: rgba(var(--color-foreground), 0.75); 722 background-color: rgb(var(--color-background)); 723 } 724 725 :root { 726 --font-body-family: Barlow, sans-serif; 727 --font-body-style: normal; 728 --font-body-weight: 400; 729 --font-body-weight-bold: 700; 730 --font-heading-family: Barlow, sans-serif; 731 --font-heading-style: normal; 732 --font-heading-weight: 400; 733 --font-body-scale: 1.1; 734 --font-heading-scale: 1.1818181818181819; 735 --media-padding: px; 736 --media-border-opacity: 0.0; 737 --media-border-width: 0px; 738 --media-radius: 6px;
739 --media-shadow-opacity: 0.0; 740 --media-shadow-horizontal-offset: 0px; 741 --media-shadow-vertical-offset: -40px; 742 --media-shadow-blur-radius: 5px; 743 --media-shadow-visible: 0; 744 --page-width: 160rem; 745 --page-width-margin: 0rem; 746 --product-card-image-padding: 0.0rem; 747 --product-card-corner-radius: 0.0rem; 748 --product-card-text-alignment: left; 749 --product-card-border-width: 0.0rem; 750 --product-card-border-opacity: 0.0; 751 --product-card-shadow-opacity: 0.0; 752 --product-card-shadow-visible: 0; 753 --product-card-shadow-horizontal-offset: 0.0rem; 754 --product-card-shadow-vertical-offset: 0.0rem; 755 --product-card-shadow-blur-radius: 0.0rem; 756 --collection-card-image-padding: 0.0rem; 757 --collection-card-corner-radius: 0.0rem; 758 --collection-card-text-alignment: left; 759 --collection-card-border-width: 0.0rem; 760 --collection-card-border-opacity: 0.1; 761 --collection-card-shadow-opacity: 0.0; 762 --collection-card-shadow-visible: 0; 763 --collection-card-shadow-horizontal-offset: 0.0rem; 764 --collection-card-shadow-vertical-offset: 0.4rem; 765 --collection-card-shadow-blur-radius: 0.5rem; 766 --blog-card-image-padding: 0.0rem; 767 --blog-card-corner-radius: 0.6rem; 768 --blog-card-text-alignment: left; 769 --blog-card-border-width: 0.0rem; 770 --blog-card-border-opacity: 0.1; 771 --blog-card-shadow-opacity: 0.1; 772 --blog-card-shadow-visible: 1; 773 --blog-card-shadow-horizontal-offset: 0.0rem; 774 --blog-card-shadow-vertical-offset: 0.2rem; 775 --blog-card-shadow-blur-radius: 1.0rem; 776 --badge-corner-radius: 4.0rem; 777 --popup-border-width: 1px; 778 --popup-border-opacity: 0.1; 779 --popup-corner-radius: 0px; 780 --popup-shadow-opacity: 0.05; 781 --popup-shadow-horizontal-offset: 0px; 782 --popup-shadow-vertical-offset: 4px; 783 --popup-shadow-blur-radius: 5px; 784 --drawer-border-width: 1px; 785 --drawer-border-opacity: 0.1; 786 --drawer-shadow-opacity: 0.0; 787 --drawer-shadow-horizontal-offset: 0px; 788 --drawer-shadow-vertical-offset: 4px; 789 --drawer-shadow-blur-radius: 5px; 790 --spacing-sections-desktop: 0px; 791 --spacing-sections-mobile: 0px; 792 --grid-desktop-vertical-spacing: 36px; 793 --grid-desktop-horizontal-spacing: 28px; 794 --grid-mobile-vertical-spacing: 18px; 795 --grid-mobile-horizontal-spacing: 14px; 796 --text-boxes-border-opacity: 0.1; 797 --text-boxes-border-width: 0px; 798 --text-boxes-radius: 0px; 799 --text-boxes-shadow-opacity: 0.0; 800 --text-boxes-shadow-visible: 0; 801 --text-boxes-shadow-horizontal-offset: 0px; 802 --text-boxes-shadow-vertical-offset: 4px; 803 --text-boxes-shadow-blur-radius: 5px; 804 --buttons-radius: 40px; 805 --buttons-radius-outset: 41px; 806 --buttons-border-width: 1px; 807 --buttons-border-opacity: 1.0; 808 --buttons-shadow-opacity: 0.0; 809 --buttons-shadow-visible: 0; 810 --buttons-shadow-horizontal-offset: 0px; 811 --buttons-shadow-vertical-offset: 4px; 812 --buttons-shadow-blur-radius: 5px; 813 --buttons-border-offset: 0.3px; 814 --inputs-radius: 40px; 815 --inputs-border-width: 1px; 816 --inputs-border-opacity: 1.0; 817 --inputs-shadow-opacity: 0.0; 818 --inputs-shadow-horizontal-offset: 0px; 819 --inputs-margin-offset: 0px; 820 --inputs-shadow-vertical-offset: 12px; 821 --inputs-shadow-blur-radius: 5px; 822 --inputs-radius-outset: 41px; 823 --variant-pills-radius: 40px; 824 --variant-pills-border-width: 1px; 825 --variant-pills-border-opacity: 0.55; 826 --variant-pills-shadow-opacity: 0.0; 827 --variant-pills-shadow-horizontal-offset: 0px; 828 --variant-pills-shadow-vertical-offset: 4px; 829 --variant-pills-shadow-blur-radius: 5px; 830 } 831 832 *,*::before,*::after { box-sizing: inherit; } 833 html { box-sizing: border-box; font-size: calc(var(--font-body-scale) * 62.5%); height: 100%; } 834 body { 835 display: grid; 836 grid-template-rows: auto auto 1fr auto; 837 grid-template-columns: 100%; 838 min-height: 100%; 839 margin: 0; 840 font-size: 1.5rem; 841 letter-spacing: 0.06rem; 842 line-height: calc(1 + 0.8 / var(--font-body-scale)); 843 font-family: var(--font-body-family); 844 font-style: var(--font-body-style); 845 font-weight: var(--font-body-weight); 846 } 847 @media screen and (min-width: 750px) { body { font-size: 1.6rem; } } 848 </style> 849<link rel="preload" href="//www.soulflower.in/cdn/shop/t/140/assets/base.css?v=23998274540554575591791031731" as="style" onload="this.onload=null;this.rel='stylesheet'"> 850 <noscript><link rel="stylesheet" href="//www.soulflower.in/cdn/shop/t/140/assets/base.css?v=23998274540554575591791031731"></noscript> 851 852 <link rel="stylesheet" href="//www.soulflower.in/cdn/shop/t/140/assets/component-cart-items.css?v=13033300910818915211789808695" media="print" onload="this.media='all'"><link rel="preload" as="font" href="//www.soulflower.in/cdn/fonts/barlow/barlow_n4.038c60d7ea9ddb238b2f64ba6f463ba6c0b5e5ad.woff2" type="font/woff2" crossorigin><link rel="preload" as="font" href="//www.soulflower.in/cdn/fonts/barlow/barlow_n4.038c60d7ea9ddb238b2f64ba6f463ba6c0b5e5ad.woff2" type="font/woff2" crossorigin><link href="//www.soulflower.in/cdn/shop/t/140/assets/component-localization-form.css?v=170315343355214948141789808702" rel="stylesheet" type="text/css" media="all" /> 853
853<script src="//www.soulflower.in/cdn/shop/t/140/assets/localization-form.js?v=144176611646395275351789808771" defer="defer"></script>
853<link rel="stylesheet" href="//www.soulflower.in/cdn/shop/t/140/assets/component-predictive-search.css?v=118923337488134913561789808706" media="print" onload="this.media='all'"><link href="//www.soulflower.in/cdn/shop/t/140/assets/component-card.css?v=16652083410546180631789808694" rel="stylesheet" type="text/css" media="all" /> 854<link href="//www.soulflower.in/cdn/shop/t/140/assets/component-rating.css?v=161293271891317304611789808709" rel="stylesheet" type="text/css" media="all" /> 855<link href="//www.soulflower.in/cdn/shop/t/140/assets/component-volume-pricing.css?v=111870094811454961941789808714" rel="stylesheet" type="text/css" media="all" /> 856<link href="//www.soulflower.in/cdn/shop/t/140/assets/component-price.css?v=183239114879007829841789808707" rel="stylesheet" type="text/css" media="all" /> 857<link rel="stylesheet" href="//www.soulflower.in/cdn/shop/t/140/assets/quick-order-list.css?v=86354568948591544181789808783" media="print" onload="this.media='all'"> 858<link rel="stylesheet" href="//www.soulflower.in/cdn/shop/t/140/assets/quantity-popover.css?v=124898369297019294591789808781" media="print" onload="this.media='all'"> 859<noscript> 860 <link href="//www.soulflower.in/cdn/shop/t/140/assets/component-card.css?v=16652083410546180631789808694" rel="stylesheet" type="text/css" media="all" /> 861 <link href="//www.soulflower.in/cdn/shop/t/140/assets/component-rating.css?v=161293271891317304611789808709" rel="stylesheet" type="text/css" media="all" /> 862 <link href="//www.soulflower.in/cdn/shop/t/140/assets/component-volume-pricing.css?v=111870094811454961941789808714" rel="stylesheet" type="text/css" media="all" /> 863 <link href="//www.soulflower.in/cdn/shop/t/140/assets/component-price.css?v=183239114879007829841789808707" rel="stylesheet" type="text/css" media="all" /> 864 <link href="//www.soulflower.in/cdn/shop/t/140/assets/quick-order-list.css?v=86354568948591544181789808783" rel="stylesheet" type="text/css" media="all" /> 865 <link href="//www.soulflower.in/cdn/shop/t/140/assets/quantity-popover.css?v=124898369297019294591789808781" rel="stylesheet" type="text/css" media="all" /> 866</noscript>
866<script> 867 window.__pccConfig = { 868 currency: "INR", 869 locale: "en" 870 }; 871</script>
vendor: 1 bytes, line 871
871
872<script src="//www.soulflower.in/cdn/shop/t/140/assets/product-card.js?v=119573519249800985521789808777" defer="defer"></script>
872 873 874<style> 875 /* HIDDEN â must beat .qty-wrapper { display: flex } */ 876 .hidden { display: none !important; } 877 878 .quick-add-container .custom-cart-btn { 879 position: relative; 880 background: #FFAACC; 881 color: #000000; 882 border: 1px solid #000; 883 border-radius: 999px; 884 padding: 12px 0px; 885 font-size: 16px; 886 font-weight: 400; 887 display: flex; 888 align-items: center; 889 justify-content: center; 890 gap: 12px; 891 cursor: pointer; 892 width: 100%; 893 transition: all 0.25s ease; 894 } 895 896 .quick-add-container .custom-cart-btn:hover { 897 transform: translateY(-2px); 898 } 899 900 .quick-add-container .custom-cart-btn:active { 901 transform: scale(0.97); 902 } 903 904 .quick-add-container .custom-cart-btn:disabled, 905 .quick-add-container .custom-cart-btn.disabled { 906 background: #e0e0e0 !important; 907 color: #888; 908 border-color: #ccc; 909 cursor: not-allowed; 910 transform: none !important; 911 } 912 913 /* Loading state on Add button â fake spinner */ 914 .quick-add-container .custom-cart-btn.is-loading { 915 cursor: progress; 916 color: transparent !important; 917 } 918 .quick-add-container .custom-cart-btn.is-loading:hover { 919 transform: none; 920 } 921 .quick-add-container .custom-cart-btn.is-loading .btn-text, 922 .quick-add-container .custom-cart-btn.is-loading i { 923 visibility: hidden; 924 } 925 .quick-add-container .custom-cart-btn.is-loading::after { 926 content: ''; 927 position: absolute; 928 top: 50%; 929 left: 50%; 930 width: 18px; 931 height: 18px; 932 margin: -9px 0 0 -9px; 933 border: 2px solid rgba(0, 0, 0, 0.2); 934 border-top-color: #000; 935 border-radius: 50%; 936 animation: pccSpin 0.65s linear infinite; 937 } 938 @keyframes pccSpin { to { transform: rotate(360deg); } } 939 940 /* QTY WRAPPER */ 941 .quick-add-container .qty-wrapper { 942 display: flex; 943 align-items: center; 944 justify-content: space-between; 945 width: 100%; 946 border: 1px solid #000; 947 border-radius: 999px; 948 padding: 5px 0px; 949 background: transparent; 950 gap: 12px; 951 } 952 .plus { margin-right: 8px; } 953 .minus { margin-left: 8px; } 954 955 .quick-add-container .qty-btn { 956 background: none; 957 border: none; 958 font-size: 22px; 959 line-height: 1; 960 color: #000; 961 cursor: pointer; 962 padding: 4px 8px; 963 transition: transform 0.1s ease; 964 } 965 966 .quick-add-container .qty-btn:active { 967 transform: scale(0.85); 968 } 969 970 .quick-add-container .qty-btn:disabled { 971 opacity: 0.5; 972 cursor: not-allowed; 973 } 974 975 .quick-add-container .qty { 976 font-size: 18px; 977 font-weight: 600; 978 display: inline-block; 979 min-width: 1.5em; 980 text-align: center; 981 transition: transform 0.15s cubic-bezier(0.4, 0, 0.2, 1); 982 } 983 984 /* QTY bump on +/- */ 985 .quick-add-container .qty.is-bumped { 986 animation: pccQtyBump 0.22s cubic-bezier(0.4, 0, 0.2, 1); 987 } 988 989 /* QTY stepper loading â spinner over the number while cart updates */ 990 .quick-add-container .qty-wrapper.qty-loading .qty { 991 color: transparent !important; 992 position: relative; 993 } 994 .quick-add-container .qty-wrapper.qty-loading .qty::after { 995 content: ''; 996 position: absolute; 997 top: 50%; 998 left: 50%; 999 width: 14px; 1000 height: 14px; 1001 margin: -7px 0 0 -7px; 1002 border: 2px solid rgba(0, 0, 0, 0.2); 1003 border-top-color: #000; 1004 border-radius: 50%; 1005 animation: pccSpin 0.6s linear infinite; 1006 } 1007 .quick-add-container .qty-wrapper.qty-loading .qty-btn { 1008 opacity: 0.4; 1009 cursor: progress; 1010 } 1011 1012 @keyframes pccQtyBump { 1013 0% { transform: scale(1); } 1014 40% { transform: scale(1.28); } 1015 100% { transform: scale(1); } 1016 } 1017 1018 @keyframes pccPulse { 1019 0%, 100% { opacity: 1; } 1020 50% { opacity: 0.4; } 1021 } 1022 </style> 1023 1024 1025
1025<script> 1026 if (Shopify.designMode) document.documentElement.classList.add('shopify-design-mode'); 1027 </script>
1027<link rel="stylesheet" href="//www.soulflower.in/cdn/shop/t/140/assets/swiper-bundle.min.css?v=127803016596819466191789808797" media="print" onload="this.media='all'"> 1028 <!-- BEGIN app block: shopify://apps/uppromote-affiliate/blocks/core-script/64c32457-930d-4cb9-9641-e24c0d9cf1f4 --><!-- BEGIN app snippet: core-metafields-setting --><!--suppress ES6ConvertVarToLetConst -->
1029<script type="application/json" id="core-uppromote-settings">{"app_env":{"env":"production"},"message_bar_setting":{"referral_enable":0,"referral_content":"You're shopping with {affiliate_name}!","referral_font":"Poppins","referral_font_size":14,"referral_text_color":"#ffffff","referral_background_color":"#338FB1","not_referral_enable":0,"not_referral_content":"Enjoy your time.","not_referral_font":"Poppins","not_referral_font_size":14,"not_referral_text_color":"#ffffff","not_referral_background_color":"#338FB1"}}</script>
vendor: 1 bytes, line 1029
1029
1030<script type="application/json" id="core-uppromote-cart">{"note":null,"attributes":{},"original_total_price":0,"total_price":0,"total_discount":0,"total_weight":0.0,"item_count":0,"items":[],"requires_shipping":false,"currency":"INR","items_subtotal_price":0,"cart_level_discount_applications":[],"checkout_charge_amount":0}</script>
1030 1031
1032<script id="core-uppromote-quick-store-tracking-vars"> 1033 function getDocumentContext(){const{href:a,hash:b,host:c,hostname:d,origin:e,pathname:f,port:g,protocol:h,search:i}=window.location,j=document.referrer,k=document.characterSet,l=document.title;return{location:{href:a,hash:b,host:c,hostname:d,origin:e,pathname:f,port:g,protocol:h,search:i},referrer:j||document.location.href,characterSet:k,title:l}}function getNavigatorContext(){const{language:a,cookieEnabled:b,languages:c,userAgent:d}=navigator;return{language:a,cookieEnabled:b,languages:c,userAgent:d}}function getWindowContext(){const{innerHeight:a,innerWidth:b,outerHeight:c,outerWidth:d,origin:e,screen:{height:j,width:k},screenX:f,screenY:g,scrollX:h,scrollY:i}=window;return{innerHeight:a,innerWidth:b,outerHeight:c,outerWidth:d,origin:e,screen:{screenHeight:j,screenWidth:k},screenX:f,screenY:g,scrollX:h,scrollY:i,location:getDocumentContext().location}}function getContext(){return{document:getDocumentContext(),navigator:getNavigatorContext(),window:getWindowContext()}} 1034 if (window.location.href.includes('?sca_ref=')) { 1035 localStorage.setItem('__up_lastViewedPageContext', JSON.stringify({ 1036 context: getContext(), 1037 timestamp: new Date().toISOString(), 1038 })) 1039 } 1040</script>
1040 1041 1042
1043<script id="core-uppromote-setting-booster"> 1044 var UpPromoteCoreSettings = JSON.parse(document.getElementById('core-uppromote-settings').textContent) 1045 UpPromoteCoreSettings.currentCart = JSON.parse(document.getElementById('core-uppromote-cart')?.textContent || '{}') 1046 const idToClean = ['core-uppromote-settings', 'core-uppromote-cart', 'core-uppromote-setting-booster', 'core-uppromote-quick-store-tracking-vars'] 1047 idToClean.forEach(id => { 1048 document.getElementById(id)?.remove() 1049 }) 1050</script>
1050 1051<!-- END app snippet --> 1052 1053 1054<!-- END app block --><!-- BEGIN app block: shopify://apps/customerlabs-1pd-capi-tracking/blocks/header-embed-block/e7b7e586-f2a0-478c-a96a-edb8673644b2 -->
1054<script> 1055 1056 1057 1058 !function(t,e,r,c,a,n,s){t.ClAnalyticsObject=a,t[a]=t[a]||[],t[a].methods=["trackSubmit","trackClick","pageview","identify","track", "trackConsent"],t[a].factory=function(e){return function(){var r=Array.prototype.slice.call(arguments);return r.unshift(e),t[a].push(r),t[a]}};for(var i=0;i<t[a].methods.length;i++){var o=t[a].methods[i];t[a][o]=t[a].factory(o)}n=e.createElement(r),s=e.getElementsByTagName(r)[0],n.async=1,n.crossOrigin="anonymous",n.src=c,s.parentNode.insertBefore(n,s)}(window,document,"script","https://cdn.js.customerlabs.co/cl85812mgy3250.js","_cl");_cl.SNIPPET_VERSION="2.0.0"; 1059 1060</script>
1060 1061<!-- END app block --><!-- BEGIN app block: shopify://apps/webengage/blocks/webengage-embed/1d458caf-1d70-4697-a570-55048d495614 -->
1061<script type="text/javascript" id="we-variables-embedded"> 1062try { 1063 var _webengage_phone_library = "https://cdn.shopify.com/extensions/019db3af-e0d4-797b-a18c-5beda7a0e317/webengage-app-production-70/assets/webengagePhoneLibrary.js"; 1064 var _webengage_app_cdn_minified_events = "https://cdn.shopify.com/extensions/019db3af-e0d4-797b-a18c-5beda7a0e317/webengage-app-production-70/assets/webengageEvents.min.js"; 1065 var _webengage_app_cdn_minified_events_nopolyfill = "https://cdn.shopify.com/extensions/019db3af-e0d4-797b-a18c-5beda7a0e317/webengage-app-production-70/assets/webengageEventsNoPolyfill.min.js"; 1066 var _webengage_app_cdn_minified_sdk = "https://cdn.shopify.com/extensions/019db3af-e0d4-797b-a18c-5beda7a0e317/webengage-app-production-70/assets/webengageSdk.min.js" 1067 var _webengage_license_code = "58b0047d"; 1068 var _webengage_id_type = "phone"; 1069 var _webengage_region = "US"; 1070 var _webengage_web_push_enabled = true; 1071 var _webengage_version = "3.0"; 1072 var _webengage_env = "production"; 1073 var _webengage_app = "WebEngage"; 1074 var _webengage_is_embed = "true"; 1075 var _webengage_is_pixel = "false"; 1076 var __webengage_webhook_enabled = true; 1077 var _webengage_shop_url = `https://www.soulflower.in`; 1078 var _webengage_shop_domain = `www.soulflower.in`; 1079 var _webengage_shop_email = `[email protected]`; 1080 var _webengage_shop_name =`Soulflower.in`; 1081 var _webengage_charged_currency = `INR`; 1082 var _webengage_customer_name = ``; 1083 var _webengage_customer_identity = ``; 1084 var _webengage_customer_email = ``; 1085 var _webengage_customer_phone = ``; 1086 var _webengage_page_type = `page.99-store`; 1087 var _webengage_money_format = "â¹ {{amount_no_decimals}}"; 1088 var _webengage_money_with_currency_format = "â¹ {{amount_no_decimals}}"; 1089 var _webengage_currency_code_enabled = `true`; 1090 1091 var _webengage_currency_format = "â¹ {{amount_no_decimals}}"; 1092 1093 1094 1095 1096window.webengageApp = { 1097 sdk: { 1098 licenseCode: _webengage_license_code, 1099 idType: _webengage_id_type, 1100 region: _webengage_region, 1101 isWebpush: _webengage_web_push_enabled, 1102 version: _webengage_version, 1103 env: _webengage_env, 1104 appType: _webengage_app, 1105 isAppEmbed: _webengage_is_embed, 1106 isPixelEmbed: _webengage_is_pixel 1107 }, 1108 config: { 1109 currency: `INR`, 1110 meta : { 1111 title : `99store`, 1112 template : `page.99-store`, 1113 url : `https://www.soulflower.in/pages/99store`, 1114 type : `page`, 1115 }, 1116 routes: { 1117 customer: { 1118 account: '/account', 1119 login: 'https://www.soulflower.in/customer_authentication/redirect?locale=en®ion_country=IN', 1120 logout: '/account/logout', 1121 register: 'https://shopify.com/54912745725/account?locale=en®ion_country=IN&buyer_flags=eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJzb3VsZmxvd2VyLWJjMjEubXlzaG9waWZ5LmNvbSIsImZsYWdzIjpbXSwiZXhwIjoxNzkyMTcxODgwLCJuYmYiOjE3OTE1NjcwODB9.CcTcWCyk-TCz_1BLUEXNIGa78kXpjmcsCKv-aHFAdfE' 1122 }, 1123 cart: { 1124 list: '/cart', 1125 add: '/cart/add', 1126 clear: '/cart/clear', 1127 update: '/cart/change', 1128 change: '/cart/change', 1129 } 1130 }, 1131 shop: { 1132 url: _webengage_shop_url, 1133 domain: _webengage_shop_domain, 1134 email: _webengage_shop_email, 1135 name: _webengage_shop_name 1136 } 1137 }, 1138 cart: {"note":null,"attributes":{},"original_total_price":0,"total_price":0,"total_discount":0,"total_weight":0.0,"item_count":0,"items":[],"requires_shipping":false,"currency":"INR","items_subtotal_price":0,"cart_level_discount_applications":[],"checkout_charge_amount":0} 1139 }; 1140 1141 1142 var _wise_cart_settings = {}; 1143 1144 1145 var _wise_cart_asset_css_url = ""; 1146 var _wise_cart_asset_client_url = ""; 1147 var _wise_cart_asset_preview_url = ""; 1148 var _webengage_feature_map = {} 1149 1150 1151 if (localStorage) { 1152 localStorage.setItem("WEBENGAGE_SHOP_INFO", "{ \"license_code\" : \"58b0047d\" , \"region\" : \"US\" , \"webPushEnabled\" : true, \"id_type\" : \"phone\", \"webhookEnabled\" : true, \"webPixelEnabled\": \"false\", \"app\": \"WebEngage\"}"); 1153 } 1154} catch(e){ 1155 const logger_base = 'c.webengage.com/e.jpg'; 1156 (function () { 1157 function addParamsToURL (url, parameters) { 1158 var _webengage_fragments = []; 1159 1160 for (var key in parameters) { 1161 if (parameters.hasOwnProperty(key) && parameters[key] != undefined) { 1162 _webengage_fragments.push(encodeURIComponent(key) + '=' + encodeURIComponent(parameters[key])); 1163 } 1164 } 1165 1166 if (_webengage_fragments.length) { 1167 if (url.indexOf('?') === -1) { 1168 url += '?'; 1169 } else if (url.indexOf('?') !== url.length - 1 && url.charAt(url.length - 1) !== '&') { 1170 url += '&'; 1171 } 1172 1173 url += _webengage_fragments.join('&'); 1174 } 1175 1176 return url; 1177 }; 1178 fetch( 1179 addParamsToURL(`https://${logger_base}`, { 1180 event: 'Error in parsing liquid file', 1181 category: '', 1182 type: "exception.shopify.all", 1183 data: JSON.stringify({ text: 'Failed to webengage-embed.liquid ' + location.origin + ' js parsing error ' , url: location.href, error: { stack: e.stack, message: e.message} }), 1184 ts: (new Date()).getTime() 1185 }) 1186 ); 1187 })(); 1188} 1189</script>
1189 1190 1191 1192 1193
1193<script defer src="https://d157sasavg42st.cloudfront.net/libs/webengage-shopify-sdk.min.js"></script>
1193 1194 1195 1196 1197<!-- END app block --><!-- BEGIN app block: shopify://apps/judge-me-reviews/blocks/judgeme_core/61ccd3b1-a9f2-4160-9fe9-4fec8413e5d8 --><!-- Start of Judge.me Core --> 1198 1199 1200 1201 1202 1203 1204 1205<link rel="dns-prefetch" href="https://cdn.judge.me"> 1206<link rel="dns-prefetch" href="https://cdn1.judge.me"> 1207<link rel="dns-prefetch" href="https://api.judge.me"> 1208
1209<script data-cfasync='false' class='jdgm-settings-script'>window.jdgmSettings={"pagination":5,"disable_web_reviews":false,"coupon_receiving_condition":"with_picture","coupon_value_type":"percentage","coupon_value_percentage":10,"coupon_value_fixed_amount":0,"coupon_discount_type":"single","coupon_tier_text_enabled":false,"coupon_tier_text_percentage":10,"coupon_tier_text_fixed_amount":0,"coupon_tier_photo_enabled":false,"coupon_tier_photo_percentage":10,"coupon_tier_photo_fixed_amount":0,"coupon_tier_video_enabled":false,"coupon_tier_video_percentage":10,"coupon_tier_video_fixed_amount":0,"enable_coupons":true,"badge_no_review_text":"No reviews","badge_n_reviews_text":"{{ average_rating_1_decimal }} | â
{{ n }} Verified Reviews","badge_star_color":"#FFC65C","hide_badge_preview_if_no_reviews":true,"badge_hide_text":false,"enforce_center_preview_badge":false,"widget_title":"Our Customers swear by...","widget_open_form_text":"Write a review","widget_close_form_text":"Cancel review","widget_refresh_page_text":"Refresh page","widget_summary_text":"Based on {{ number_of_reviews }} review/reviews","widget_no_review_text":"Be the first to write a review","widget_name_field_text":"Display name","widget_verified_name_field_text":"Verified Name (public)","widget_name_placeholder_text":"Display name","widget_required_field_error_text":"This field is required.","widget_email_field_text":"Email address","widget_verified_email_field_text":"Verified Email (private, can not be edited)","widget_email_placeholder_text":"Your email address","widget_email_field_error_text":"Please enter a valid email address.","widget_rating_field_text":"Rating","widget_review_title_field_text":"We'd love to hear from you!â¤ï¸","widget_review_title_placeholder_text":"Give your review a title","widget_review_body_field_text":"Review content","widget_review_body_placeholder_text":"Start writing here...","widget_pictures_field_text":"Picture/Video (optional)","widget_submit_review_text":"Submit Review","widget_submit_verified_review_text":"Submit Verified Review","widget_submit_success_msg_with_auto_publish":"Thank y
1209ou! Please refresh the page in a few moments to see your review. You can remove or edit your review by logging into \u003ca href='https://judge.me/login' target='_blank' rel='nofollow noopener'\u003eJudge.me\u003c/a\u003e","widget_submit_success_msg_no_auto_publish":"Thank you! Your review will be published as soon as it is approved by the shop admin. You can remove or edit your review by logging into \u003ca href='https://judge.me/login' target='_blank' rel='nofollow noopener'\u003eJudge.me\u003c/a\u003e","widget_show_default_reviews_out_of_total_text":"Showing {{ n_reviews_shown }} out of {{ n_reviews }} reviews.","widget_show_all_link_text":"Show all","widget_show_less_link_text":"Show less","widget_author_said_text":"{{ reviewer_name }} said:","widget_days_text":"{{ n }} days ago","widget_weeks_text":"{{ n }} week/weeks ago","widget_months_text":"{{ n }} month/months ago","widget_years_text":"{{ n }} year/years ago","widget_yesterday_text":"Yesterday","widget_today_text":"Today","widget_replied_text":"\u003e\u003e {{ shop_name }} replied:","widget_read_more_text":"Read more","widget_reviewer_name_as_initial":"","widget_rating_filter_color":"#FFC65C","widget_rating_filter_see_all_text":"See all reviews","widget_sorting_most_recent_text":"Most Recent","widget_sorting_highest_rating_text":"Highest Rating","widget_sorting_lowest_rating_text":"Lowest Rating","widget_sorting_with_pictures_text":"Only Pictures","widget_sorting_most_helpful_text":"Most Helpful","widget_open_question_form_text":"Ask a question","widget_reviews_subtab_text":"Reviews","widget_questions_subtab_text":"Questions","widget_question_label_text":"Question","widget_answer_label_text":"Answer","widget_question_placeholder_text":"Write your question here","widget_submit_question_text":"Submit Question","widget_question_submit_success_text":"Thank you for your question! We will notify you once it gets answered.","widget_star_color":"#FFC65C","verified_badge_text":"Verified","verified_badge_bg_color":"","verified_badge_text_color":"","verified_badge_placement":"left-of-reviewer-name","widget_review_max_height":"","widget_hide_border":false,"widget_social_share":false,"widget_thumb":false,"widget_review_location_show":false,"widget_location_format":"country_iso_code","all_reviews_include_out_of_store_products":true,"all_reviews_out_of_store_text":"(out of store)","all_reviews_pagination":100,"all_reviews_product_name_prefix_text":"about","enable_review_pictures":true,"enable_question_anwser":false,"widget_theme":"leex","review_date_format":"dd/mm/yyyy","default_sort_method":"pictures-first","enable_ai_review_visibility":true,"widget_product_reviews_subtab_text":"Product Reviews","widget_shop_reviews_subtab_text":"Shop Reviews","widget_other_products_reviews_text":"Reviews for other products","widget_store_reviews_subtab_text":"Store reviews","widget_product_variant_reference_text":"Review for","widget_no_store_reviews_text":"This store hasn't received any reviews yet","widget_web_restriction_product_reviews_text":"This product hasn't received any reviews yet","widget_no_items_text":"No items found","widget_show_more_text":"Show more","widget_write_a_store_review_text":"Write a Store Review","widget_product_and_store_reviews_text":"Product and store reviews","widget_reviews_in_collection_text":"Reviews in this collection","widget_other_languages_heading":"Reviews in Other Languages","widget_translate_review_text":"Translate review to {{ language }}","widget_translating_review_text":"Translating...","widget_show_original_translation_text":"Show original ({{ language }})","widget_translate_review_failed_text":"Review couldn't be translated.","widget_translate_review_retry_text":"Retry","widget_translate_review_try_again_later_text":"Try again later","show_product_url_for_grouped_product":false,"widget_sorting_pictures_first_text":"Pictures First","show_pictures_on_all_rev_page_mobile":false,"show_pictures_on_all_rev_page_desktop":false,"floating_tab_hide_mobile_install_preference":true,"floating_tab_button_name":"â
Reviews","floating_tab_title":"Let customers speak for us","floating_tab_button_color":"#FFFFFF","floating_tab_button_background_color":"#000000","floating_tab_url":"","floating_tab_url_enabled":false,"floating_tab_tab_style":"text","all_reviews_text_badge_text":"Customers rate us {{ shop.metafields.judgeme.all_reviews_rating | round: 1 }}/5 based on {{ shop.metafields.judgeme.all_reviews_count }} reviews.","all_reviews_text_badge_text_branded_style":"{{ shop.metafields.judgeme.all_reviews_rating | round: 1 }} out of 5 stars based on {{ shop.metafields.judgeme.all_reviews_count }} reviews","is_all_reviews_text_badge_a_link":false,"show_stars_for_all_reviews_text_badge":false,"all_reviews_text_badge_url":"","all_reviews_text_style":"text","all_reviews_text_color_style":"judgeme_brand_color","all_reviews_text_color":"#108474","all_reviews_text_show_jm_brand":true,"featured_carousel_show_header":true,"featured_carousel_title":"Our Customers swear by...","testimonials_carousel_title":"Customers are saying","videos_carousel_title":"Real customer stories","cards_carousel_title":"Customers are saying","featured_carousel_count_text":"from {{ n }} reviews","featured_carousel_add_link_to_all_reviews_page":true,"featured_carousel_url":"/pages/google-customer-reviews","featured_carousel_show_images":false,"featured_carousel_autoslide_interval":5,"featured_carousel_arrows_on_the_sides":true,"featured_carousel_height":250,"featured_carousel_width":100,"featured_carousel_image_size":0,"featured_carousel_image_height":250,"featured_carousel_arrow_color":"#eeeeee","verified_count_badge_style":"vintage","verified_count_badge_orientation":"horizontal","verified_count_badge_color_style":"judgeme_brand_color","verified_count_badge_color":"#108474","is_verified_count_badge_a_link":false,"verified_count_badge_url":"","verified_count_badge_show_jm_brand":true,"widget_rating_preset_default":5,"widget_first_sub_tab":"product-reviews","widget_show_histogram":true,"widget_histogram_use_custom_color":true,"widget_pagination_use_custom_color":true,"widget_star_use_custom_color":true,"widget_verified_badge_use_custom_color":false,"widget_write_review_use_custom_color":false,"picture_reminder_submit_button":"Upload Pictures","enable_review_videos":true,"mute_video_by_default":false,"widget_sorting_videos_first_text":"Videos First","widget_review_pending_text":"Pending","featured_carousel_items_for_large_screen":4,"social_share_options_order":"Facebook,Twitter,LinkedIn,Pinterest","remove_microdata_snippet":true,"disable_json_ld":false,"enable_json_ld_products":false,"preview_badge_show_question_text":false,"preview_badge_no_question_text":"No questions","preview_badge_n_question_text":"{{ number_of_questions }} question/questions","qa_badge_show_icon":false,"qa_badge_position":"same-row","remove_judgeme_branding":false,"widget_add_search_bar":false,"widget_search_bar_placeholder":"Search","widget_sorting_verified_only_text":"Verified only","widget_sorting_most_relevant_text":"Most Relevant","featured_carousel_theme":"default","featured_carousel_show_rating":true,"featured_carousel_show_title":true,"featured_carousel_show_body":true,"featured_carousel_show_date":false,"featured_carousel_show_reviewer":true,"featured_carousel_show_product":false,"featured_carousel_header_background_color":"#108474","featured_carousel_header_text_color":"#ffffff","featured_carousel_name_product_separator":"reviewed","featured_carousel_full_star_background":"#FFF443","featured_carousel_empty_star_background":"#dadada","featured_carousel_vertical_theme_background":"#f9fafb","featured_carousel_verified_badge_enable":true,"featured_carousel_verified_badge_color":"true","featured_carousel_border_style":"round","featured_carousel_review_line_length_limit":3,"featured_carousel_more_reviews_button_text":"Read more reviews","featured_carousel_view_product_button_text":"View product","all_reviews_page_load_reviews_on":"scroll","all_reviews_page_load_more_text":"Load More Reviews","disable_fb_tab_reviews":false,"enable_ajax_cdn_cache":false,"widget_public_name_text":"displayed publicly like","default_reviewer_name":"John Smith","default_reviewer_name_has_non_latin":true,"widget_reviewer_anonymous":"Anonymous","medals_widget_title":"Judge.me Review Medals","medals_widget_background_color":"#f9fafb","medals_widget_position":"footer_all_pages","medals_widget_border_color":"#f9fafb","medals_widget_verified_text_position":"left","medals_widget_use_monochromatic_version":false,"medals_widget_elements_color":"#108474","show_reviewer_avatar":true,"widget_invalid_yt_video_url_error_text":"Not a YouTube video URL","widget_max_length_field_error_text":"Please enter no more than {0} characters.","widget_show_country_flag":false,"widget_show_collected_via_shop_app":true,"widget_verified_by_shop_badge_style":"light","widget_verified_by_shop_text":"Verified by Shop","widget_show_photo_gallery":false,"widget_load_with_code_splitting":true,"widget_ugc_install_preference":false,"widget_ugc_title":"Made by us, Shared by you","widget_ugc_subt
1209itle":"Tag us to see your picture featured in our page","widget_ugc_arrows_color":"#ffffff","widget_ugc_primary_button_text":"Buy Now","widget_ugc_primary_button_background_color":"#108474","widget_ugc_primary_button_text_color":"#ffffff","widget_ugc_primary_button_border_width":"0","widget_ugc_primary_button_border_style":"none","widget_ugc_primary_button_border_color":"#108474","widget_ugc_primary_button_border_radius":"25","widget_ugc_secondary_button_text":"Load More","widget_ugc_secondary_button_background_color":"#ffffff","widget_ugc_secondary_button_text_color":"#108474","widget_ugc_secondary_button_border_width":"2","widget_ugc_secondary_button_border_style":"solid","widget_ugc_secondary_button_border_color":"#108474","widget_ugc_secondary_button_border_radius":"25","widget_ugc_reviews_button_text":"View Reviews","widget_ugc_reviews_button_background_color":"#ffffff","widget_ugc_reviews_button_text_color":"#108474","widget_ugc_reviews_button_border_width":"2","widget_ugc_reviews_button_border_style":"solid","widget_ugc_reviews_button_border_color":"#108474","widget_ugc_reviews_button_border_radius":"25","widget_ugc_reviews_button_link_to":"judgeme-reviews-page","widget_ugc_show_post_date":true,"widget_ugc_max_width":"800","widget_rating_metafield_value_type":true,"widget_primary_color":"#108474","widget_enable_secondary_color":false,"widget_secondary_color":"#edf5f5","widget_summary_average_rating_text":"{{ average_rating }} out of 5","widget_media_grid_title":"Customer photos \u0026 videos","widget_media_grid_see_more_text":"See more","widget_round_style":false,"widget_show_product_medals":false,"widget_verified_by_judgeme_text":"Verified by Judge.me","widget_show_store_medals":true,"widget_verified_by_judgeme_text_in_store_medals":"Verified by Judge.me","widget_media_field_exceed_quantity_message":"Sorry, we can only accept {{ max_media }} for one review.","widget_media_field_exceed_limit_message":"{{ file_name }} is too large, please select a {{ media_type }} less than {{ size_limit }}MB.","widget_review_submitted_text":"Review Submitted!","widget_question_submitted_text":"Question Submitted!","widget_close_form_text_question":"Cancel","widget_write_your_answer_here_text":"Write your answer here","widget_enabled_branded_link":true,"widget_show_collected_by_judgeme":true,"widget_reviewer_name_color":"","widget_write_review_text_color":"","widget_write_review_bg_color":"","widget_collected_by_judgeme_text":"collected by Judge.me","widget_pagination_type":"load_more","widget_load_more_text":"Load More","widget_load_more_color":"#108474","widget_full_review_text":"Full Review","widget_read_more_reviews_text":"Read More Reviews","widget_read_questions_text":"Read Questions","widget_questions_and_answers_text":"Questions \u0026 Answers","widget_verified_by_text":"Verified by","widget_verified_text":"Verified","widget_number_of_reviews_text":"{{ number_of_reviews }} reviews","widget_back_button_text":"Back","widget_next_button_text":"Next","widget_custom_forms_filter_button":"Filters","custom_forms_style":"vertical","widget_show_review_information":false,"how_reviews_are_collected":"How reviews are collected?","widget_show_review_keywords":false,"widget_gdpr_statement":"How we use your data: We'll only contact you about the review you left, and only if necessary. By submitting your review, you agree to Judge.me's \u003ca href='https://judge.me/terms' target='_blank' rel='nofollow noopener'\u003eterms\u003c/a\u003e, \u003ca href='https://judge.me/privacy' target='_blank' rel='nofollow noopener'\u003eprivacy\u003c/a\u003e and \u003ca href='https://judge.me/content-policy' target='_blank' rel='nofollow noopener'\u003econtent\u003c/a\u003e policies.","widget_multilingual_sorting_enabled":false,"widget_translate_review_content_enabled":false,"widget_translate_review_content_method":"manual","popup_widget_review_selection":"automatically_with_pictures","popup_widget_round_border_style":true,"popup_widget_show_title":true,"popup_widget_show_body":true,"popup_widget_show_reviewer":false,"popup_widget_show_product":true,"popup_widget_show_pictures":true,"popup_widget_use_review_picture":true,"popup_widget_show_on_home_page":true,"popup_widget_show_on_product_page":true,"popup_widget_show_on_collection_page":true,"popup_widget_show_on_cart_page":true,"popup_widget_position":"bottom_left","popup_widget_first_review_delay":5,"popup_widget_duration":5,"popup_widget_interval":5,"popup_widget_review_count":5,"popup_widget_hide_on_mobile":true,"review_snippet_widget_round_border_style":true,"review_snippet_widget_card_color":"#FFFFFF","review_snippet_widget_text_color":"#000000","review_snippet_widget_lighter_text_color":"#7B7B7B","review_snippet_widget_slider_arrows_background_color":"#FFFFFF","review_snippet_widget_slider_arrows_color":"#000000","review_snippet_widget_star_color":"#108474","show_product_variant":false,"all_reviews_product_variant_label_text":"Variant: ","widget_show_verified_branding":true,"widget_ai_summary_title":"Customers say","widget_ai_summary_disclaimer":"AI-powered review summary based on recent customer reviews","widget_show_ai_summary":false,"widget_show_ai_summary_bg":false,"write_review_button_visibility":"everyone","store_summary_widget_heading":"Customers rate this store","store_summary_widget_button_text":"View customer reviews","store_summary_widget_button_theme_text":"See AI reviews summary","widget_show_review_title_input":true,"widget_autofill_review_title":true,"redirect_reviewers_invited_via_email":"review_widget","request_store_review_after_product_review":false,"request_review_other_products_in_order":false,"review_form_color_scheme":"default","review_form_corner_style":"square","review_form_star_color":"#108474","review_form_text_color":"#333333","review_form_background_color":"#ffffff","review_form_field_background_color":"#fafafa","review_form_button_color":"#108474","review_form_button_text_color":"#ffffff","review_form_modal_overlay_color":"#000000","review_form_theme":"multi_step","review_form_location":"in_store_popup","review_form_external_page_background_color":"#C5F7F0","review_content_screen_title_text":"How would you rate this product?","review_content_introduction_text":"We would love it if you would share a bit about your experience.","store_review_form_title_text":"How would you rate this store?","store_review_form_introduction_text":"We would love it if you would share a bit about your experience.","show_review_guidance_text":true,"one_star_review_guidance_text":"Poor","five_star_review_guidance_text":"Great","customer_information_screen_title_text":"About you","customer_information_introduction_text":"Please tell us more about you.","custom_questions_screen_title_text":"Your experience in more detail","custom_questions_introduction_text":"Here are a few questions to help us understand more about your experience.","review_submitted_screen_title_text":"Thanks for your review!","review_submitted_screen_thank_you_text":"We are processing it and it will appear on the store soon.","review_submitted_screen_email_verification_text":"Please confirm your email by clicking the link we just sent you. This helps us keep reviews authentic.","confirm_email_screen_title_text":"Confirm your email","confirm_email_screen_message_text":"To help keep reviews authentic, we'll send you a secure link to continue writing your review. It only takes a moment.","check_email_screen_title_text":"Check your email","check_email_screen_message_text":"We sent you an email to {{ email }}. Click the button on the email to continue.","check_email_screen_resend_message_text":"Email resent!","check_email_resend_hint_text":"Didn't get the email? Check your spam folder or [resend the email].","verification_email_rate_limit_error_text":"You've reached the limit for review attempts on this product. Please check your inbox or try again later.","review_submitted_request_store_review_text":"Would you like to share your experience of shopping with us?","review_submitted_review_other_products_text":"Would you like to review these products?","store_review_screen_title_text":"Would you like to share your experience of shopping with us?","store_review_introduction_text":"We value your feedback and use it to improve. Please share any thoughts or suggestions you have.","reviewer_media_screen_title_picture_text":"Share a picture","reviewer_media_introduction_picture_text":"Upload a photo to support your review.","reviewer_media_screen_title_video_text":"Share a video","reviewer_media_introduction_video_text":"Upload a video to support your review.","reviewer_media_screen_title_picture_or_video_text":"Share a picture or video","reviewer_media_introduction_picture_or_video_text":"Upload a photo or video to support your review.","reviewer_media_
1209youtube_url_text":"Paste your Youtube URL here","advanced_settings_next_step_button_text":"Next","advanced_settings_close_review_button_text":"Close","modal_write_review_flow":false,"write_review_flow_required_text":"Required","write_review_flow_privacy_message_text":"We respect your privacy.","write_review_flow_anonymous_text":"Post review as anonymous","write_review_flow_visibility_text":"This won't be visible to other customers.","write_review_flow_multiple_selection_help_text":"Select as many as you like","write_review_flow_single_selection_help_text":"Select one option","write_review_flow_required_field_error_text":"This field is required","write_review_flow_invalid_email_error_text":"Please enter a valid email address","write_review_flow_max_length_error_text":"Max. {{ max_length }} characters.","write_review_flow_media_upload_text":"\u003cb\u003eClick to upload\u003c/b\u003e or drag and drop","write_review_flow_gdpr_statement":"We'll only contact you about your review if necessary. By submitting your review, you agree to our \u003ca href='https://judge.me/terms' target='_blank' rel='nofollow noopener'\u003eterms and conditions\u003c/a\u003e and \u003ca href='https://judge.me/privacy' target='_blank' rel='nofollow noopener'\u003eprivacy policy\u003c/a\u003e.","rating_only_reviews_enabled":false,"show_negative_reviews_help_screen":false,"new_review_flow_help_screen_rating_threshold":3,"negative_review_resolution_screen_title_text":"Tell us more","negative_review_resolution_text":"Your experience matters to us. If there were issues with your purchase, we're here to help. Feel free to reach out to us, we'd love the opportunity to make things right.","negative_review_resolution_button_text":"Contact us","negative_review_resolution_proceed_with_review_text":"Leave a review","negative_review_resolution_subject":"Issue with purchase from {{ shop_name }}.{{ order_name }}","coupon_promo_intro_any_review_text":"Write a review and get a coupon for {{ amount }} off your next purchase","coupon_promo_intro_with_photo_text":"Write a review and add a photo or video to get a coupon for {{ amount }} off your next purchase","coupon_promo_intro_with_video_text":"Write a review and add a video to get a coupon for {{ amount }} off your next purchase","coupon_promo_intro_up_to_any_review_text":"Write a review and get a coupon for up to {{ amount }} off your next purchase","coupon_promo_intro_up_to_with_photo_text":"Write a review and add a photo or video to get a coupon for up to {{ amount }} off your next purchase","coupon_promo_intro_external_text":"Write a review and get a reward for your next purchase","coupon_promo_intro_external_with_photo_text":"Write a review and add a photo or video to get a reward for your next purchase","coupon_promo_intro_external_with_video_text":"Write a review and add a video to get a reward for your next purchase","coupon_promo_media_photo_text":"Add a photo or video and get a coupon for {{ amount }} off your next purchase","coupon_promo_media_photo_only_text":"Add a photo and get a coupon for {{ amount }} off your next purchase","coupon_promo_media_video_text":"Add a video and get a coupon for {{ amount }} off your next purchase","coupon_promo_media_external_photo_text":"Add a photo or video and get a reward for your next purchase","coupon_promo_media_external_photo_only_text":"Add a photo and get a reward for your next purchase","coupon_promo_media_external_video_text":"Add a video and get a reward for your next purchase","coupon_promo_success_text":"You've got a coupon for your next purchase at {{ shop_name }}!","coupon_promo_success_subtext":"You'll receive your coupon email within the hour.","preview_badge_collection_page_install_status":false,"widget_review_custom_css":"","preview_badge_custom_css":"","preview_badge_stars_count":"5-stars","featured_carousel_custom_css":"","floating_tab_custom_css":"","all_reviews_widget_custom_css":"","medals_widget_custom_css":"","verified_badge_custom_css":"","all_reviews_text_custom_css":"","transparency_badges_collected_via_store_invite":false,"transparency_badges_from_another_provider":false,"transparency_badges_collected_from_store_visitor":false,"transparency_badges_collected_by_verified_review_provider":true,"transparency_badges_earned_reward":false,"transparency_badges_collected_via_store_invite_text":"Review collected via store invitation","transparency_badges_from_another_provider_text":"Review collected from another provider","transparency_badges_collected_from_store_visitor_text":"Review collected from a store visitor","transparency_badges_written_in_google_text":"Review written in Google","transparency_badges_written_in_etsy_text":"Review written in Etsy","transparency_badges_written_in_shop_app_text":"Review written in Shop App","transparency_badges_earned_reward_text":"Review earned a reward for future purchase","product_review_widget_per_page":10,"widget_other_languages_reviews_per_page":3,"widget_store_review_label_text":"Review about the store","widget_cart_mode_aggregate_heading_text":"Customers rate this store","checkout_comment_extension_title_on_product_page":"Customer Comments","checkout_comment_extension_num_latest_comment_show":5,"checkout_comment_extension_format":"name_and_timestamp","checkout_comment_customer_name":"last_initial","checkout_comment_comment_notification":true,"preview_badge_collection_page_install_preference":true,"preview_badge_home_page_install_preference":false,"preview_badge_product_page_install_preference":true,"review_widget_install_preference":"","review_carousel_install_preference":false,"floating_reviews_tab_install_preference":"none","verified_reviews_count_badge_install_preference":false,"all_reviews_text_install_preference":false,"review_widget_best_location":true,"judgeme_medals_install_preference":false,"review_widget_revamp_enabled":true,"review_widget_qna_enabled":false,"review_widget_header_theme":"standard","review_widget_widget_title_enabled":true,"review_widget_header_text_size":"medium","review_widget_header_text_weight":"regular","review_widget_average_rating_style":"compact","review_widget_bar_chart_enabled":true,"review_widget_bar_chart_type":"numbers","review_widget_bar_chart_style":"standard","review_widget_expanded_media_gallery_enabled":false,"review_widget_show_review_highlights":false,"review_widget_show_review_keywords_in_gray":false,"review_widget_reviews_section_theme":"standard","review_widget_image_style":"thumbnails","review_widget_review_image_ratio":"square","review_widget_stars_size":"medium","review_widget_verified_badge":"standard_text","review_widget_review_title_text_size":"medium","review_widget_review_text_size":"medium","review_widget_review_text_length":"medium","review_widget_number_of_columns_desktop":3,"review_widget_carousel_transition_speed":5,"review_widget_custom_questions_answers_display":"always","review_widget_card_section_size":"small","review_widget_button_text_color":"#FFFFFF","review_widget_text_color":"#000000","review_widget_lighter_text_color":"#7B7B7B","review_widget_corner_styling":"soft","review_widget_review_word_singular":"review","review_widget_review_word_plural"
1209:"reviews","review_widget_voting_label":"Helpful?","review_widget_shop_reply_label":"Reply from {{ shop_name }}:","review_widget_filters_title":"Filters","review_widget_filter_rating_title":"Rating","review_widget_filter_keyword_title":"Keyword","review_widget_clear_filters_text":"Clear filters","review_widget_expand_more_text":"More","review_widget_review_highlights_title":"Review highlights","qna_widget_question_word_singular":"Question","qna_widget_question_word_plural":"Questions","qna_widget_answer_reply_label":"Answer from {{ answerer_name }}:","qna_content_screen_title_text":"Ask a question about this product","qna_widget_question_required_field_error_text":"Please enter your question.","qna_widget_flow_gdpr_statement":"We'll only contact you about your question if necessary. By submitting your question, you agree to our \u003ca href='https://judge.me/terms' target='_blank' rel='nofollow noopener'\u003eterms and conditions\u003c/a\u003e and \u003ca href='https://judge.me/privacy' target='_blank' rel='nofollow noopener'\u003eprivacy policy\u003c/a\u003e.","qna_widget_question_submitted_text":"Thanks for your question!","qna_widget_close_form_text_question":"Close","qna_widget_question_submit_success_text":"Weâll notify you by email when your question is answered.","all_reviews_widget_v2025_enabled":false,"all_reviews_widget_v2025_header_theme":"default","all_reviews_widget_v2025_widget_title_enabled":true,"all_reviews_widget_v2025_header_text_size":"medium","all_reviews_widget_v2025_header_text_weight":"regular","all_reviews_widget_v2025_average_rating_style":"compact","all_reviews_widget_v2025_bar_chart_enabled":true,"all_reviews_widget_v2025_bar_chart_type":"numbers","all_reviews_widget_v2025_bar_chart_style":"standard","all_reviews_widget_v2025_expanded_media_gallery_enabled":false,"all_reviews_widget_v2025_show_store_medals":true,"all_reviews_widget_v2025_show_photo_gallery":true,"all_reviews_widget_v2025_show_review_keywords":false,"all_reviews_widget_v2025_show_ai_summary":false,"all_reviews_widget_v2025_show_ai_summary_bg":false,"all_reviews_widget_v2025_show_review_highlights":false,"all_reviews_widget_v2025_show_review_keywords_in_gray":false,"all_reviews_widget_v2025_add_search_bar":false,"all_reviews_widget_v2025_default_sort_method":"most-recent","all_reviews_widget_v2025_reviews_per_page":10,"all_reviews_widget_v2025_reviews_section_theme":"default","all_reviews_widget_v2025_image_style":"thumbnails","all_reviews_widget_v2025_review_image_ratio":"square","all_reviews_widget_v2025_stars_size":"medium","all_reviews_widget_v2025_verified_badge":"standard_text","all_reviews_widget_v2025_review_title_text_size":"medium","all_reviews_widget_v2025_review_text_size":"medium","all_reviews_widget_v2025_review_text_length":"medium","all_reviews_widget_v2025_number_of_columns_desktop":3,"all_reviews_widget_v2025_carousel_transition_speed":5,"all_reviews_widget_v2025_custom_questions_answers_display":"always","all_reviews_widget_v2025_review_dates":false,"all_reviews_widget_v2025_card_section_size":"small","all_reviews_widget_v2025_show_product_variant":false,"all_reviews_widget_v2025_show_reviewer_avatar":true,"all_reviews_widget_v2025_reviewer_name_as_initial":"","all_reviews_widget_v2025_review_location_show":false,"all_reviews_widget_v2025_location_format":"","all_reviews_widget_v2025_show_country_flag":false,"all_reviews_widget_v2025_widget_thumb":false,"all_reviews_widget_v2025_verified_by_shop_badge_style":"light","all_reviews_widget_v2025_social_share":false,"all_reviews_widget_v2025_social_share_options_order":"Facebook,Twitter,LinkedIn,Pinterest","all_reviews_widget_v2025_pagination_type":"standard","all_reviews_widget_v2025_button_text_color":"#FFFFFF","all_reviews_widget_v2025_text_color":"#000000","all_reviews_widget_v2025_lighter_text_color":"#7B7B7B","all_reviews_widget_v2025_corner_styling":"soft","all_reviews_widget_v2025_title":"Customer reviews","all_reviews_widget_v2025_ai_summary_title":"Customers say about this store","all_reviews_widget_v2025_no_review_text":"Be the first to write a review","all_reviews_widget_v2025_review_highlights_title":"Review highlights","reviews_grid_widget_show_sample_reviews":false,"reviews_grid_widget_review_selection":"all","reviews_grid_widget_select_products":[],"reviews_grid_widget_show_media_only":false,"reviews_grid_widget_display_order":"media_first","reviews_grid_widget_card_grouping":"per_media","reviews_grid_widget_columns_desktop":3,"reviews_grid_widget_rows_desktop":3,"reviews_grid_widget_columns_mobile":2,"reviews_grid_widget_rows_mobile":6,"reviews_grid_widget_show_stars":true,"reviews_grid_widget_show_reviewer_name":true,"reviews_grid_widget_show_review_title_on_hover_desktop":true,"reviews_grid_widget_corner_styling":"soft","reviews_grid_widget_card_spacing":"medium","reviews_grid_widget_header_text_color":"#000000","reviews_grid_widget_star_and_reviewer_name_color":"#F9F9F9","reviews_grid_widget_overlay_and_background_color":"#000000","reviews_grid_widget_content_color":"#F9F9F9","reviews_grid_widget_header_text":"From our customers","reviews_grid_widget_show_average_rating":true,"trust_badge_enabled":false,"trust_badge_structure":"outline","trust_badge_color":"black","trust_badge_star":"black","trust_badge_rating_display_default":"show_avg_text","platform":"shopify","branding_url":"https://app.judge.me/reviews","branding_text":"Powered by Judge.me","locale":"en","reply_name":"Soulflower.in","shop_currency":"INR","widget_version":"3.0","footer":true,"autopublish":false,"review_dates":true,"enable_custom_form":false,"shop_use_review_site":false,"shop_locale":"en","enable_multi_locales_translations":true,"show_review_title_input":true,"autofill_review_title":true,"review_verification_email_status":"always","require_verification_before_submit":false,"sign_in_with_
1209shop_enabled":false,"customer_account_validation_enabled":true,"most_relevant_sort_enabled":true,"coupon_promo_invited_eligible":true,"coupon_promo_web_eligible":false,"uses_coupon_integration":false,"uses_external_coupon":false,"can_be_branded":false,"rtl_stars_enabled_ar":true,"rtl_stars_enabled_he":true,"reply_name_text":"Soulflower.in"};</script>
1209 <style class='jdgm-settings-style'>.jdgm-xx{left:0}:root{--jdgm-primary-color: #108474;--jdgm-secondary-color: rgba(16,132,116,0.1);--jdgm-star-color: #FFC65C;--jdgm-write-review-text-color: white;--jdgm-write-review-bg-color: #108474;--jdgm-paginate-color: #108474;--jdgm-border-radius: 0;--jdgm-reviewer-name-color: #108474}.jdgm-histogram__bar-content{background-color:#FFC65C}.jdgm-rev[data-verified-buyer=true] .jdgm-rev__icon.jdgm-rev__icon:after,.jdgm-rev__buyer-badge.jdgm-rev__buyer-badge{color:white;background-color:#108474}.jdgm-review-widget--small .jdgm-gallery.jdgm-gallery .jdgm-gallery__thumbnail-link:nth-child(8) .jdgm-gallery__thumbnail-wrapper.jdgm-gallery__thumbnail-wrapper:before{content:"See more"}@media only screen and (min-width: 768px){.jdgm-gallery.jdgm-gallery .jdgm-gallery__thumbnail-link:nth-child(8) .jdgm-gallery__thumbnail-wrapper.jdgm-gallery__thumbnail-wrapper:before{content:"See more"}}.jdgm-preview-badge .jdgm-star.jdgm-star{color:#FFC65C}.jdgm-prev-badge[data-average-rating='0.00']{display:none !important}.jdgm-author-all-initials{display:none !important}.jdgm-author-last-initial{display:none !important}.jdgm-rev-widg__title{visibility:hidden}.jdgm-rev-widg__summary-text{visibility:hidden}.jdgm-prev-badge__text{visibility:hidden}.jdgm-rev__prod-link-prefix:before{content:'about'}.jdgm-rev__variant-label:before{content:'Variant: '}.jdgm-rev__out-of-store-text:before{content:'(out of store)'}@media only screen and (min-width: 768px){.jdgm-rev__pics .jdgm-rev_all-rev-page-picture-separator,.jdgm-rev__pics .jdgm-rev__product-picture{display:none}}@media only screen and (max-width: 768px){.jdgm-rev__pics .jdgm-rev_all-rev-page-picture-separator,.jdgm-rev__pics .jdgm-rev__product-picture{display:none}}@media all and (max-width: 768px){.jdgm-widget .jdgm-revs-tab-btn,.jdgm-widget .jdgm-revs-tab-btn[data-style="stars"]{display:none}}.jdgm-preview-badge[data-template="index"]{display:none !important}.jdgm-verified-count-badget[data-from-snippet="true"]{display:none !important}.jdgm-carousel-wrapper[data-from-snippet="true"]{display:none !important}.jdgm-all-reviews-text[data-from-snippet="true"]{display:none !important}.jdgm-medals-section[data-from-snippet="true"]{display:none !important}.jdgm-ugc-media-wrapper[data-from-snippet="true"]{display:none !important}.jdgm-revs-tab-btn,.jdgm-revs-tab-btn:not([disabled]):hover,.jdgm-revs-tab-btn:focus{background-color:#000000}.jdgm-revs-tab-btn,.jdgm-revs-tab-btn:not([disabled]):hover{color:#FFFFFF}.jdgm-rev__transparency-badge[data-badge-type="review_collected_via_store_invitation"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_collected_from_another_provider"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_collected_from_store_visitor"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_earned_for_future_purchase"]{display:none !important}.jdgm-review-snippet-widget{--jdgm-snippet-card-color: #fff;--jdgm-snippet-text-color: #000;--jdgm-snippet-lighter-text-color: #7B7B7B;--jdgm-snippet-star-color: #108474;--jdgm-snippet-border-radius: 8px;--jdgm-snippet-arrows-bg-color: #fff;--jdgm-snippet-arrows-color: #000}.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__cards-container .jdgm-rev-snippet-card{border-radius:8px;background:#fff}.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__cards-container .jdgm-rev-snippet-card__rev-rating .jdgm-star{color:#108474}.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__prev-btn,.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__next-btn{border-radius:50%;background:#fff}.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__prev-btn>svg,.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__next-btn>svg{fill:#000}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jm-mfp-content,.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev__icon,.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev__pic-img,.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev__reply{border-radius:8px}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev[data-verified-buyer="true"] .jdgm-full-rev__icon::after{border-radius:8px}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev .jdgm-rev__buyer-badge{border-radius:calc( 8px / 2 )}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev .jdgm-full-rev__replier::before{content:'Soulflower.in'}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev .jdgm-full-rev__product-button{border-radius:calc( 8px * 6 )} 1210</style> <style class='jdgm-settings-style'></style> 1211 1212 1213 1214 1215 <style class='jdgm-miracle-styles'> 1216 @-webkit-keyframes jdgm-spin{0%{-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);-ms-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes jdgm-spin{0%{-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);-ms-transform:rotate(359deg);transform:rotate(359deg)}}@font-face{font-family:'JudgemeStar';src:url("data:application/x-font-woff;charset=utf-8;base64,d09GRgABAAAAAAScAA0AAAAABrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAEgAAAABoAAAAcbyQ+3kdERUYAAARgAAAAHgAAACAAMwAGT1MvMgAAAZgAAABGAAAAVi+vS9xjbWFwAAAB8AAAAEAAAAFKwBMjvmdhc3AAAARYAAAACAAAAAj//wADZ2x5ZgAAAkAAAAEJAAABdH33LXtoZWFkAAABMAAAAC0AAAA2BroQKWhoZWEAAAFgAAAAHAAAACQD5QHQaG10eAAAAeAAAAAPAAAAFAYAAABsb2NhAAACMAAAAA4AAAAOAO4AeG1heHAAAAF8AAAAHAAAACAASgAvbmFtZQAAA0wAAADeAAABkorWfVZwb3N0AAAELAAAACkAAABEp3ubLXgBY2BkYADhPPP4OfH8Nl8ZuJkYQODS2fRrCPr/aSYGxq1ALgcDWBoAO60LkwAAAHgBY2BkYGDc+v80gx4TAwgASaAICmABAFB+Arl4AWNgZGBgYGPQYWBiAAIwyQgWc2AAAwAHVQB6eAFjYGRiYJzAwMrAwejDmMbAwOAOpb8ySDK0MDAwMbByMsCBAAMCBKS5pjA4PGB4wMR44P8BBj3GrQymQGFGkBwAjtgK
1216/gAAeAFjYoAAEA1jAwAAZAAHAHgB3crBCcAwDEPRZydkih567CDdf4ZskmLwFBV8xBfCaC4BXkOUmx4sU0h2ngNb9V0vQCxaRKIAevT7fGWuBrEAAAAAAAAAAAA0AHgAugAAeAF9z79Kw1AUx/FzTm7un6QmJtwmQ5Bg1abgEGr/BAqlU6Gju+Cgg1MkQ/sA7Vj7BOnmO/gUvo2Lo14NqIO6/IazfD8HEODtmQCfoANwNsyp2/GJt3WKQrd1NLiYYWx2PBqOsmJMEOznPOTzfSCrhAtbbLdmeFLJV9eKd63WLrZcIcuaEVdssWCKM6pLCfTVOYbz/0pNSMSZKLIZpvh78sAUH6PlMrreTCabP9r+Z/puPZ2ur/RqpQHgh+MIegCnXeM4MRAPjYN//5tj4ZtTjkFqEdmeMShlEJ7tVAly2TAkx6R68Fl4E/aVvn8JqHFQ4JS1434gXKcuL31dDhzs3YbsEOAd/IU88gAAAHgBfY4xTgMxEEVfkk0AgRCioKFxQYd2ZRtpixxgRU2RfhU5q5VWseQ4JdfgAJyBlmNwAM7ABRhZQ0ORwp7nr+eZAa54YwYg9zm3ynPOeFRe8MCrciXOh/KSS76UV5L/iDmrLiS5AeU519wrL3jmSbkS5115yR2fyivJv9kx0ZMZ2RLZw27q87iNQi8EBo5FSPIMw3HqBboi5lKTGAGDp8FKXWP+t9TU01Lj5His1Ba6uM9dTEMwvrFmbf5GC/q2drW3ruXUhhsCiQOjznFlCzYhHUZp4xp76vsvQh89CQAAeAFjYGJABowM6IANLMrEyMTIzMjCXpyRWJBqZshWXJJYBKOMAFHFBucAAAAAAAAB//8AAngBY2BkYGDgA2IJBhBgAvKZGViBJAuYxwAABJsAOgAAeAFjYGBgZACCk535hiD60tn0azAaAEqpB6wAAA==") format("woff");font-weight:normal;font-style:normal}.jdgm-star{font-family:'JudgemeStar';display:inline !important;text-decoration:none !important;padding:0 4px 0 0 !important;margin:0 !important;font-weight:bold;opacity:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.jdgm-star:hover{opacity:1}.jdgm-star:last-of-type{padding:0 !important}.jdgm-star.jdgm--on:before{content:"\e000"}.jdgm-star.jdgm--off:before{content:"\e001"}.jdgm-star.jdgm--half:before{content:"\e002"}.jdgm-widget *{margin:0;line-height:1.4;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-overflow-scrolling:touch}.jdgm-hidden{display:none !important;visibility:hidden !important}.jdgm-temp-hidden{display:none}.jdgm-spinner{width:40px;height:40px;margin:auto;border-radius:50%;border-top:2px solid #eee;border-right:2px solid #eee;border-bottom:2px solid #eee;border-left:2px solid #ccc;-webkit-animation:jdgm-spin 0.8s infinite linear;animation:jdgm-spin 0.8s infinite linear}.jdgm-prev-badge{display:block !important} 1217 1218</style> 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231
1231<script id="judgeme_widget_leex_js" data-cfasync="false" type="text/javascript" async src="https://cdn.shopify.com/extensions/01a11b30-98d5-7ae3-b2f4-f79b3c6f32c4/judgeme-775/assets/shopify_v2_leex.js"></script>
1231 1232 1233 1234 1235 1236 1237 <link id="judgeme_widget_leex_css" rel="stylesheet" type="text/css" media="nope!" onload="this.media='all'" href="https://cdn.shopify.com/extensions/01a11b30-98d5-7ae3-b2f4-f79b3c6f32c4/judgeme-775/assets/widget_v3_theme_leex.css"> 1238 1239 1240 1241
1242<script data-cfasync='false' class='jdgm-script'> 1243!function(e){window.jdgm=window.jdgm||{}; 1244/* INF-1976 */ 1245var _jdgmBlocked=function(){var raw=(window.jdgmSettings||{}).hostname_allowlist;var list=(raw==null?"":""+raw).split(/[\s,]+/).map(function(h){return h.trim().toLowerCase().replace(/\.$/,"");}).filter(function(h){return h;});if(!list.length)return false;var host=(e.location.hostname||"").toLowerCase().replace(/\.$/,"");if(/(^|\.)shopifypreview\.com$/.test(host))return false;var bare=host.replace(/^www\./,"");for(var i=0;i<list.length;i++){var en=list[i];if(en.indexOf("*.")===0){var b=en.slice(2);if(host===b||host.slice(-(b.length+1))==="."+b)return false;}else if(bare===en.replace(/^www\./,""))return false;}return true;}(); 1246if(_jdgmBlocked){jdgm._loaderExecuted=true;jdgm._blocked=true;var _jdgmS=e.createElement("style");_jdgmS.textContent='[class^="jdgm-"],[class*=" jdgm-"]{display:none !important}';(e.head||e.documentElement).appendChild(_jdgmS);return;} 1247jdgm.CDN_HOST="https://cdnwidget.judge.me/",jdgm.CDN_HOST_ALT="https://cdn2.judge.me/cdn/widget_frontend/",jdgm.API_HOST="https://api.judge.me/",jdgm.CDN_BASE_URL="https://cdn.shopify.com/extensions/01a11b30-98d5-7ae3-b2f4-f79b3c6f32c4/judgeme-775/assets/",jdgm.CDN_API_HOST="https://cdn.judge.me/", 1248jdgm.docReady=function(d){(e.attachEvent?"complete"===e.readyState:"loading"!==e.readyState)? 1249setTimeout(d,0):e.addEventListener("DOMContentLoaded",d)},jdgm.loadCSS=function(d,t,o,a){ 1250!o&&jdgm.loadCSS.requestedUrls.indexOf(d)>=0||(jdgm.loadCSS.requestedUrls.push(d), 1251(a=e.createElement("link")).rel="stylesheet",a.class="jdgm-stylesheet",a.media="nope!", 1252a.href=d,a.onload=function(){this.media="all",t&&setTimeout(t)},e.body.appendChild(a))}, 1253jdgm.loadCSS.requestedUrls=[],jdgm.loadJS=function(e,d){var t=new XMLHttpRequest; 1254t.onreadystatechange=function(){4===t.readyState&&t.status>=200&&t.status<300&&(Function(t.response)(),d&&d(t.response))}, 1255t.open("GET",e),t.onerror=function(){if(e.indexOf(jdgm.CDN_HOST)===0&&jdgm.CDN_HOST_ALT!==jdgm.CDN_HOST){var f=e.replace(jdgm.CDN_HOST,jdgm.CDN_HOST_ALT);jdgm.loadJS(f,d)}},t.send()},jdgm.docReady((function(){(window.jdgmLoadCSS||e.querySelectorAll( 1256".jdgm-widget, .jdgm-all-reviews-page").length>0)&&(jdgmSettings.widget_load_with_code_splitting? 1257parseFloat(jdgmSettings.widget_version)>=3?jdgm.loadCSS(jdgm.CDN_BASE_URL+"widget_v3_base.css"): 1258jdgm.loadCSS(jdgm.CDN_BASE_URL+"widget_base.css"):jdgm.loadCSS(jdgm.CDN_BASE_URL+"shopify_v2.css") 1259)}))}(document); 1260</script>
1260 1261<noscript><link rel="stylesheet" type="text/css" media="all" href="https://cdn.shopify.com/extensions/01a11b30-98d5-7ae3-b2f4-f79b3c6f32c4/judgeme-775/assets/shopify_v2.css"></noscript> 1262 1263<!-- BEGIN app snippet: theme_fix_tags -->
1263<script> 1264 (function() { 1265 var jdgmThemeFixes = {"137327149309":{"html":"","css":".product-meta__cstm .jdgm-star:not(:first-child) {display: none !important;}","js":""}}; 1266 if (!jdgmThemeFixes) return; 1267 1268 // "All themes" fix: CSS and JS applied on every theme. CSS is injected 1269 // before the per-theme fix so the theme-specific CSS wins the cascade. 1270 // HTML is never applied globally (too risky). 1271 var allThemesFix = jdgmThemeFixes['all']; 1272 if (allThemesFix && allThemesFix.css) { 1273 var allStyleTag = document.createElement('style'); 1274 allStyleTag.classList.add('jdgm-theme-fix-style-all'); 1275 allStyleTag.innerHTML = allThemesFix.css; 1276 document.head.append(allStyleTag); 1277 }; 1278 1279 if (allThemesFix && allThemesFix.js) { 1280 var allScriptTag = document.createElement('script'); 1281 allScriptTag.classList.add('jdgm-theme-fix-script-all'); 1282 allScriptTag.innerHTML = allThemesFix.js; 1283 document.head.append(allScriptTag); 1284 }; 1285 1286 var thisThemeFix = jdgmThemeFixes[Shopify.theme.id]; 1287 if (!thisThemeFix) return; 1288 1289 if (thisThemeFix.html) { 1290 document.addEventListener("DOMContentLoaded", function() { 1291 var htmlDiv = document.createElement('div'); 1292 htmlDiv.classList.add('jdgm-theme-fix-html'); 1293 htmlDiv.innerHTML = thisThemeFix.html; 1294 document.body.append(htmlDiv); 1295 }); 1296 }; 1297 1298 if (thisThemeFix.css) { 1299 var styleTag = document.createElement('style'); 1300 styleTag.classList.add('jdgm-theme-fix-style'); 1301 styleTag.innerHTML = thisThemeFix.css; 1302 document.head.append(styleTag); 1303 }; 1304 1305 if (thisThemeFix.js) { 1306 var scriptTag = document.createElement('script'); 1307 scriptTag.classList.add('jdgm-theme-fix-script'); 1308 scriptTag.innerHTML = thisThemeFix.js; 1309 document.head.append(scriptTag); 1310 }; 1311 })(); 1312</script>
1312 1313<!-- END app snippet --> 1314<!-- End of Judge.me Core --> 1315 1316 1317 1318<!-- END app block --><!-- BEGIN app block: shopify://apps/uppromote-affiliate/blocks/customer-referral/64c32457-930d-4cb9-9641-e24c0d9cf1f4 --><link rel="preload" href="https://cdn.shopify.com/extensions/01a10ad0-9f32-7eb2-a83e-3427bdf52ded/affliate-by-secomapp-129/assets/customer-referral.css" as="style" onload="this.onload=null;this.rel='stylesheet'">
1319<script> 1320 document.addEventListener("DOMContentLoaded", function () { 1321 const params = new URLSearchParams(window.location.search); 1322 if (params.has('sca_ref') || params.has('sca_crp')) { 1323 document.body.setAttribute('is-affiliate-link', ''); 1324 } 1325 }); 1326</script>
1326 1327 1328 1329<!-- END app block --><!-- BEGIN app block: shopify://apps/uppromote-affiliate/blocks/message-bar/64c32457-930d-4cb9-9641-e24c0d9cf1f4 -->
1329<script type="application/json" id="uppromote-message-bar-setting" class="metafield-json">{"referral_enable":0,"referral_content":"You're shopping with {affiliate_name}!","referral_font":"Poppins","referral_font_size":14,"referral_text_color":"#ffffff","referral_background_color":"#338FB1","not_referral_enable":0,"not_referral_content":"Enjoy your time.","not_referral_font":"Poppins","not_referral_font_size":14,"not_referral_text_color":"#ffffff","not_referral_background_color":"#338FB1"}</script>
1329 1330 1331<style> 1332 body { 1333 transition: padding-top .2s; 1334 } 1335 .scaaf-message-bar { 1336 --primary-text-color: #ffffff; 1337 --secondary-text-color: #ffffff; 1338 --primary-bg-color: #338FB1; 1339 --secondary-bg-color: #338FB1; 1340 --primary-text-size: 14px; 1341 --secondary-text-size: 14px; 1342 text-align: center; 1343 display: block; 1344 width: 100%; 1345 padding: 10px; 1346 animation-duration: .5s; 1347 animation-name: fadeIn; 1348 position: absolute; 1349 top: 0; 1350 left: 0; 1351 width: 100%; 1352 z-index: 10; 1353 } 1354 1355 .scaaf-message-bar-content { 1356 margin: 0; 1357 padding: 0; 1358 } 1359 1360 .scaaf-message-bar[data-layout=referring] { 1361 background-color: var(--primary-bg-color); 1362 color: var(--primary-text-color); 1363 font-size: var(--primary-text-size); 1364 } 1365 1366 .scaaf-message-bar[data-layout=direct] { 1367 background-color: var(--secondary-bg-color); 1368 color: var(--secondary-text-color); 1369 font-size: var(--secondary-text-size); 1370 } 1371 1372</style> 1373
1374<script type="text/javascript"> 1375 (function() { 1376 let container, contentContainer 1377 const settingTag = document.querySelector('script#uppromote-message-bar-setting') 1378 1379 if (!settingTag || !settingTag.textContent) { 1380 return 1381 } 1382 1383 const setting = JSON.parse(settingTag.textContent) 1384 if (!setting.referral_enable) { 1385 return 1386 } 1387 1388 const getCookie = (cName) => { 1389 const name = cName + '=' 1390 const ca = document.cookie.split(';') 1391 for (let i = 0; i < ca.length; i++) { 1392 let c = ca[i] 1393 while (c.charAt(0) === ' ') { 1394 c = c.substring(1) 1395 } 1396 if (c.indexOf(name) === 0) { 1397 const raw = c.substring(name.length, c.length) 1398 // Decode this value only, not the whole cookie string, so one malformed 1399 // cookie (bare %) or a ';' inside another value can't break parsing here. 1400 try { 1401 return decodeURIComponent(raw) 1402 } catch { 1403 return raw 1404 } 1405 } 1406 } 1407 1408 return null 1409 } 1410 1411 function renderContainer() { 1412 container = document.createElement('div') 1413 container.classList.add('scaaf-message-bar') 1414 contentContainer = document.createElement('p') 1415 contentContainer.classList.add('scaaf-message-bar-content') 1416 container.append(contentContainer) 1417 } 1418 1419 function calculateLayout() { 1420 const height = container.scrollHeight 1421 1422 function onMouseMove() { 1423 document.body.style.paddingTop = `${height}px` 1424 document.body.removeEventListener('mousemove', onMouseMove) 1425 document.body.removeEventListener('touchstart', onMouseMove) 1426 } 1427 1428 document.body.addEventListener('mousemove', onMouseMove) 1429 document.body.addEventListener('touchstart', onMouseMove) 1430 } 1431 1432 renderContainer() 1433 1434 function fillDirectContent() { 1435 if (!setting.not_referral_enable) { 1436 // Nothing to show: drop the optimistic "Loading" bar prepareForReferring may have left 1437 container.remove() 1438 return 1439 } 1440 contentContainer.style.visibility = 'visible' 1441 container.dataset.layout = 'direct' 1442 contentContainer.textContent = setting.not_referral_content 1443 document.body.prepend(container) 1444 calculateLayout() 1445 } 1446 1447 function prepareForReferring() { 1448 contentContainer.textContent = 'Loading' 1449 contentContainer.style.visibility = 'hidden' 1450 document.body.prepend(container) 1451 calculateLayout() 1452 } 1453 1454 function fillReferringContent(aff) { 1455 container.dataset.layout = 'referring' 1456 // Guard referral_content so a missing template can't throw and leave the bar stuck on "Loading" 1457 contentContainer.textContent = (setting.referral_content || '') 1458 .replaceAll('{affiliate_name}', aff.name) 1459 .replaceAll('{company}', aff.company) 1460 .replaceAll('{affiliate_firstname}', aff.first_name) 1461 .replaceAll('{personal_detail}', aff.personal_detail) 1462 contentContainer.style.visibility = 'visible' 1463 } 1464 1465 function safeJsonParse (str) { 1466 if (!str) return null; 1467 try { 1468 return JSON.parse(str); 1469 } catch { 1470 return null; 1471 } 1472 } 1473 1474 function renderFromCookie(affiliateID) { 1475 if (!affiliateID) { 1476 fillDirectContent() 1477 return 1478 } 1479 1480 prepareForReferring() 1481 1482 let info = null 1483 const raw = getCookie('_up_a_info') 1484 if (raw) { 1485 info = safeJsonParse(raw) 1486 } 1487 1488 if (!info) { 1489 fillDirectContent() 1490 return 1491 } 1492 1493 const aff = { 1494 company: info.company || '', 1495 name: (info.first_name || '') + ' ' + (info.last_name || ''), 1496 first_name: info.first_name || '', 1497 personal_detail: getCookie('scaaf_pd') || '' 1498 } 1499 1500 fillReferringContent(aff) 1501 } 1502 1503 function paintMessageBar() { 1504 if (!document.body) { 1505 return requestAnimationFrame(paintMessageBar) 1506 } 1507
1508 const urlParams = new URLSearchParams(window.location.search) 1509 const scaRef = urlParams.get("sca_ref") 1510 const urlAffiliateID = scaRef ? scaRef.split('.')[0] + '' : null 1511 const cookieAffiliateID = getCookie('up_uppromote_aid') 1512 const isReferralLink = !!scaRef 1513 1514 if (!isReferralLink) { 1515 if (cookieAffiliateID) { 1516 renderFromCookie(cookieAffiliateID) 1517 return 1518 } 1519 fillDirectContent() 1520 return 1521 } 1522 1523 if (cookieAffiliateID === urlAffiliateID) { 1524 renderFromCookie(cookieAffiliateID) 1525 return 1526 } 1527 1528 const lastClick = Number(getCookie('up_uppromote_lc') || 0) 1529 const diffMinuteFromNow = (Date.now() - lastClick) / (60 * 1000) 1530 if (diffMinuteFromNow <= 1) { 1531 renderFromCookie(cookieAffiliateID) 1532 return 1533 } 1534 1535 let waited = 0 1536 const MAX_WAIT = 5000 1537 const INTERVAL = 300 1538 1539 const timer = setInterval(() => { 1540 const newCookieID = getCookie('up_uppromote_aid') 1541 const isStillThatAffiliate = newCookieID === urlAffiliateID 1542 const isReceived = localStorage.getItem('up_uppromote_received') === '1' 1543 let isLoadedAffiliateInfoDone = !!safeJsonParse(getCookie('_up_a_info')) 1544 1545 if (isReceived && isStillThatAffiliate && isLoadedAffiliateInfoDone) { 1546 clearInterval(timer) 1547 renderFromCookie(newCookieID) 1548 return 1549 } 1550 1551 waited += INTERVAL 1552 if (waited >= MAX_WAIT) { 1553 clearInterval(timer) 1554 fillDirectContent() 1555 } 1556 }, INTERVAL) 1557 } 1558 1559 requestAnimationFrame(paintMessageBar) 1560 })() 1561</script>
1561 1562 1563 1564<!-- END app block --><!-- BEGIN app block: shopify://apps/releasit-cod-fee/blocks/app-embed/019a066b-bc34-792e-8460-8aae1d0bdf53 --><!-- BEGIN app snippet: vite-tag --> 1565 1566 1567<!-- END app snippet --><!-- BEGIN app snippet: vite-tag --> 1568 1569 1570
1570<script src="https://cdn.shopify.com/extensions/01a116ae-1344-7e48-9deb-cea8b264f30b/releasit-cod-fee-159/assets/main-CpLAkD9e.js" type="module" crossorigin="anonymous"></script>
1570 1571 <link href="//cdn.shopify.com/extensions/01a116ae-1344-7e48-9deb-cea8b264f30b/releasit-cod-fee-159/assets/main-Ck0HOZhg.css" rel="stylesheet" type="text/css" media="all" /> 1572 1573<!-- END app snippet --> 1574<!-- BEGIN app snippet: theme-app-extension -->
1574<script> 1575 // Helper to parse JSON strings (for arrays stored in DynamoDB) 1576 // Also normalizes all values to strings for consistent ID comparison 1577 function parseJsonSafe(val, fallback) { 1578 if (!val) return fallback; 1579 1580 let result = val; 1581 1582 // If it's a string, try to parse it as JSON 1583 if (typeof val === 'string') { 1584 // Check if it looks like a JSON array 1585 const trimmed = val.trim(); 1586 if (trimmed.startsWith('[')) { 1587 try { 1588 result = JSON.parse(trimmed); 1589 } catch(e) { 1590 return fallback; 1591 } 1592 } else { 1593 // Not JSON, return fallback 1594 return fallback; 1595 } 1596 } 1597 1598 // Ensure result is an array 1599 if (!Array.isArray(result)) return fallback; 1600 1601 // Normalize all values to strings (handles number IDs) 1602 return result.map(function(item) { 1603 if (item === null || item === undefined) return ''; 1604 // Extract numeric ID if it's a Shopify GID 1605 const str = String(item); 1606 if (str.includes('gid://shopify/')) { 1607 return str.split('/').pop() || str; 1608 } 1609 return str; 1610 }).filter(function(item) { 1611 return item !== ''; 1612 }); 1613 } 1614 1615 // OTP Verification Configuration 1616 const otpVerification = {"allowedCountries":"[]","isEnabled":false,"persistedVerification":true,"theme":{"backgroundColor":"#ffffff","modalShadow":"0 10px 30px rgba(0, 0, 0, 0.15)","borderRadius":"12px","buttonColor":"#000000","accentColor":"#3b82f6","buttonTextColor":"#ffffff","textColor":"#1f2937","modalBorder":""}}; 1617 const cfg = Object(otpVerification || {}); 1618 if (typeof cfg.isEnabled === 'boolean' && typeof cfg.autoSuspended === 'boolean') { 1619 cfg.isEnabled = cfg.isEnabled && !cfg.autoSuspended; 1620 } 1621 window.RSI_OTP_GATE = cfg; 1622 window.RSI_OTP_GATE.version = "1.0.0"; 1623 // OTP theme comes from metafield 1624 const otpTheme = cfg.theme || {}; 1625 window.RSI_OTP_GATE.theme = { 1626 buttonColor: otpTheme.buttonColor || '#000000', 1627 buttonTextColor: otpTheme.buttonTextColor || '#ffffff', 1628 backgroundColor: otpTheme.backgroundColor || '#ffffff', 1629 textColor: otpTheme.textColor || '#1f2937', 1630 accentColor: otpTheme.accentColor || '#3b82f6', 1631 borderRadius: otpTheme.borderRadius || '12px', 1632 modalShadow: otpTheme.modalShadow || '0 10px 30px rgba(0, 0, 0, 0.15)', 1633 modalBorder: otpTheme.modalBorder || '' 1634 }; 1635 1636 // Partial Payment Configuration 1637 const partialPayment = {"codFee":{"name":"Partial Payment Fee","defaultAmount":0,"isEnabled":false},"enableOnCartDrawer":true,"enableOnCartPage":true,"isEnabled":false,"options":[],"theme":{"optionSelectedColor":"#eef2ff","modalShadow":"0 25px 50px -12px rgba(0, 0, 0, 0.25)","backgroundColor":"#ffffff","optionBorderColor":"#e5e7eb","buttonColor":"#000000","modalBorderRadius":"16px","accentColor":"#4f46e5","primaryColor":"#000000","wallpaperImageUrl":"","wallpaperTemplate":"gradient-blue","textColor":"#1f2937","modalBorder":"none","cardBackground":"#f9fafb","showTrustBadges":true,"wallpaperCustomColor1":"#667eea","wallpaperCustomColor2":"#764ba2","buttonTextColor":"#ffffff","secondaryTextColor":"#6b7280"},"tierMode":{"isEnabled":false,"brackets":[],"defaultDeposit":{"depositType":"percentage","percentage":50,"fixedAmount":0}},"autoSuspended":false}; 1638 const ppCfg = Object(partialPayment || {}); 1639 if (typeof ppCfg.isEnabled === 'boolean' && typeof ppCfg.autoSuspended === 'boolean') { 1640 ppCfg.isEnabled = ppCfg.isEnabled && !ppCfg.autoSuspended; 1641 } 1642 1643 // Ensure options is an array 1644 if (!ppCfg.options || !Array.isArray(ppCfg.options)) { 1645 ppCfg.options = []; 1646 } 1647 1648 // Parse restrictions - arrays may be stored as JSON strings in DynamoDB 1649 const rawRestrictions = ppCfg.restrictions || {}; 1650 ppCfg.restrictions = { 1651 products: parseJsonSafe(rawRestrictions.products, []), 1652 collections: parseJsonSafe(rawRestrictions.collections, []), 1653 minOrderTotal: rawRestrictions.minOrderTotal || 0, 1654 maxOrderTotal: rawRestrictions.maxOrderTotal || 0 1655 }; 1656 1657 // Parse global COD fee settings 1658 const rawGlobalCodFee = ppCfg.globalCodFee || {}; 1659 ppCfg.globalCodFee = { 1660 isEnabled: !!rawGlobalCodFee.isEnabled, 1661 name: rawGlobalCodFee.name || 'COD Fee', 1662 type: rawGlobalCodFee.type || 'fixed', 1663 value: rawGlobalCodFee.value || 0 1664 }; 1665 1666 window.RSI_PARTIAL_PAYMENT = ppCfg; 1667 window.RSI_PARTIAL_PAYMENT.version = "1.0.0"; 1668 1669 // Theme comes from admin settings (metafield) 1670 const adminTheme = ppCfg.theme || {}; 1671 window.RSI_PARTIAL_PAYMENT.theme = { 1672 // Button 1673 buttonColor: adminTheme.buttonColor || '#000000', 1674 buttonTextColor: adminTheme.buttonTextColor || '#ffffff', 1675 continueButtonText: adminTheme.continueButtonText || '', 1676 // Modal 1677 modalShadow: adminTheme.modalShadow || '0 10px 40px rgba(0, 0, 0, 0.2)', 1678 modalBorder: adminTheme.modalBorder || '', 1679 modalBorderRadius: adminTheme.modalBorderRadius || '16px', 1680 // Colors 1681 primaryColor: adminTheme.primaryColor || '#3b82f6', 1682 accentColor: adminTheme.accentColor || '#4f46e5', 1683 textColor: adminTheme.textColor || '#1f2937', 1684 secondaryTextColor: adminTheme.secondaryTextColor || '#6b7280', 1685 backgroundColor: adminTheme.backgroundColor || '#ffffff',
1686 cardBackground: adminTheme.cardBackground || '#f9fafb', 1687 // Wallpaper 1688 wallpaperTemplate: adminTheme.wallpaperTemplate || 'gradient-blue', 1689 wallpaperCustomColor1: adminTheme.wallpaperCustomColor1 || '#667eea', 1690 wallpaperCustomColor2: adminTheme.wallpaperCustomColor2 || '#764ba2', 1691 wallpaperImageUrl: adminTheme.wallpaperImageUrl || '', 1692 // Options 1693 optionSelectedColor: adminTheme.optionSelectedColor || '#eef2ff', 1694 optionBorderColor: adminTheme.optionBorderColor || '#e5e7eb', 1695 // Trust badges 1696 showTrustBadges: adminTheme.showTrustBadges !== false, 1697 // "Taxes computed later" note (hide when prices already include tax) 1698 showTaxNote: adminTheme.showTaxNote !== false, 1699 // COD Fee 1700 codFeeColor: adminTheme.codFeeColor || '#10b981', 1701 // Left panel content 1702 leftPanelTextColor: adminTheme.leftPanelTextColor || '#ffffff', 1703 leftPanelTitle: adminTheme.leftPanelTitle || '', 1704 leftPanelSubtitle: adminTheme.leftPanelSubtitle || '', 1705 showLeftPanelShopName: adminTheme.showLeftPanelShopName !== false, 1706 showLeftPanelIllustration: adminTheme.showLeftPanelIllustration !== false, 1707 showLeftPanelOrderSummary: adminTheme.showLeftPanelOrderSummary !== false, 1708 orderSummaryLabel: adminTheme.orderSummaryLabel || '', 1709 fullPriceLabel: adminTheme.fullPriceLabel || '' 1710 }; 1711</script>
1711 1712 1713 1714
1715<script> 1716 window.__RSI_PRODUCT_COLLECTIONS = {}; 1717</script>
1717 1718 1719<div id="_rsi-cod-fee-hook"></div> 1720 1721<!-- END app snippet --> 1722 1723 1724<!-- END app block -->
1724<script src="https://cdn.shopify.com/extensions/01a08535-3331-7d74-9213-e0b5e5372d4a/businessonbot-393-44/assets/bootstrap.js" type="text/javascript" defer="defer"></script>
vendor: 1 bytes, line 1724
1724
1725<script src="https://cdn.shopify.com/extensions/01a10ad0-9f32-7eb2-a83e-3427bdf52ded/affliate-by-secomapp-129/assets/core.min.js" type="text/javascript" defer="defer"></script>
vendor: 1 bytes, line 1725
1725
1726<script src="https://cdn.shopify.com/extensions/01a11b30-98d5-7ae3-b2f4-f79b3c6f32c4/judgeme-775/assets/loader.js" type="text/javascript" defer="defer"></script>
vendor: 1 bytes, line 1726
1726
1727<script src="https://cdn.shopify.com/extensions/01a10ad0-9f32-7eb2-a83e-3427bdf52ded/affliate-by-secomapp-129/assets/customer-referral.js" type="text/javascript" defer="defer"></script>
vendor: 1 bytes, line 1727
1727
1728<script src="https://cdn.shopify.com/extensions/01a12158-d4d9-7354-a640-cfbe07c671c3/aicartmax-441/assets/cm-product-affiliate-widget.js" type="text/javascript" defer="defer"></script>
1728 1729<link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
1730<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: 54912745725,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "page"};window.navigator.sendBeacon("https://monorail-edge.shopifysvc.com/v1/produce", JSON.stringify({schema_id: "online_store_buyer_site_abandonment/1.1",payload: payload,metadata: {event_created_at_ms: currentMs,event_sent_at_ms: currentMs}}));}}window.addEventListener('pagehide', handle_abandonment_event);}}());</script>
vendor: 1 bytes, line 1730
1730
1731<script> 1732 window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || []; 1733</script>
vendor: 1 bytes, line 1733
1733
1734<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}
1734).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: 54912745725,storefrontBaseUrl: "https://www.soulflower.in",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://www.soulflower.in/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["4c64608a","16072cab"],webPixelsConfigList: [{"id":"2520973565","configuration":"{\"accountID\":\"7685e142-ae23-4ad8-af27-3463e4214945\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"87e26c382e3eac7cc21341be539322d1","type":"APP","apiClientId":38417629185,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"2516451581","configuration":"{\"accountID\":\"7685e142-ae23-4ad8-af27-3463e4214945\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"fa5a44778fc36cbfd8429162a9f9871d","type":"APP","apiClientId":239740616705,"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":"2445836541","configuration":"{\"advertiserId\":\"6842af81c432bf5689195bda\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"672b632fe5cab8275ceb175e333f6e87","type":"APP","apiClientId":295504609281,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"2295136509","configuration":"{\"accountID\":\"19g6ilp6oqryo\",\"enabledEvents\":\"NA\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"771344939a5942606662ac3c45b70cb8","type":"APP","apiClientId":180713160705,"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"}
1734,{"id":"2291794173","configuration":"{\"endpoint\":\"https:\\\/\\\/app-api.aicartmax.com\",\"debugMode\":\"false\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"6b87026909addec5c4eb063659a7438d","type":"APP","apiClientId":249776242689,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_email","read_customer_name","read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"2175369469","configuration":"{\"debug\":\"false\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"a9a83cf44fb282052ff936f7ab101058","type":"APP","apiClientId":4539653,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"2171633917","configuration":"{\"accountID\":\"123\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"792873e67955f53628961e34957a652d","type":"APP","apiClientId":158988271617,"privacyPurposes":["SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"2167963901","configuration":"{\"accountID\":\"69e3531e0644563c2ed2dfba\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"6aedc34126fb62ac98ff67db27b94a0a","type":"APP","apiClientId":212680867841,"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":"1851949309","configuration":"{\"companyId\":\"229\",\"appOrigin\":\"https:\\\/\\\/shopify.togethr.club\",\"record_all_pixel_traffic\":\"false\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"55c71e7441f0ac70efde27164c37074b","type":"APP","apiClientId":221351542785,"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":"984088829","configuration":"{\"webPixelName\":\"Judge.me\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"8acc938b1a30dc7624e304493ca567d7","type":"APP","apiClientId":683015,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"754516221","configuration":"{\"pixelId\":\"0363ee02-fb30-4146-af44-9b1a1b3ff571\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"c119f01612c13b62ab52809eb08154bb","type":"APP","apiClientId":2556259,"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":"506626301","configuration":"{\"config\":\"{\\\"google_tag_ids\\\":[\\\"G-N50F36VNCW\\\",\\\"GT-PLVBLVX\\\",\\\"GT-NS8WBQLJ\\\",\\\"G-FSZVRL8CH2\\\"],\\\"target_country\\\":\\\"IN\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"search\\\",\\\"action_label\\\":[\\\"G-N50F36VNCW\\\",\\\"AW-1015268063\\\/phYXCKCriK0aEN-Fj-QD\\\",\\\"AW-1015268063\\\",\\\"MC-ESSF3C3L5K\\\",\\\"G-FSZVRL8CH2\\\"]},{\\\"type\\\":\\\"begin_checkout\\\",\\\"action_label\\\":[\\\"G-N50F36VNCW\\\",\\\"AW-1015268063\\\/rN_kCJaniK0aEN-Fj-QD\\\",\\\"AW-1015268063\\\/qE5oCMDHjeYYEN-Fj-QD\\\",\\\"AW-1015268063\\\",\\\"MC-ESSF3C3L5K\\\",\\\"G-FSZVRL8CH2\\\"]},{\\\"type\\\":\\\"remove_from_cart\\\",\\\"action_label\\\":\\\"G-N50F36VNCW\\\"},{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":[\\\"G-N50F36VNCW\\\",\\\"AW-1015268063\\\/PEByCJ2riK0aEN-Fj-QD\\\",\\\"MC-2BFW2TXD1Z\\\",\\\"AW-1015268063\\\/iiqZCOj8_OUZEN-Fj-QD\\\",\\\"AW-1015268063\\\",\\\"MC-ESSF3C3L5K\\\",\\\"G-FSZVRL8CH2\\\"]},{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":[\\\"G-N50F36VNCW\\\",\\\"AW-1015268063\\\/jddnCJOniK0aEN-Fj-QD\\\",\\\"MC-2BFW2TXD1Z\\\",\\\"AW-1015268063\\\/0
17345hpCP6C8rIDEN-Fj-QD\\\",\\\"AW-1015268063\\\",\\\"MC-ESSF3C3L5K\\\",\\\"G-FSZVRL8CH2\\\"]},{\\\"type\\\":\\\"add_shipping_info\\\",\\\"action_label\\\":\\\"G-N50F36VNCW\\\"},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":[\\\"G-N50F36VNCW\\\",\\\"AW-1015268063\\\/MRSxCJqriK0aEN-Fj-QD\\\",\\\"MC-2BFW2TXD1Z\\\",\\\"AW-1015268063\\\",\\\"MC-ESSF3C3L5K\\\",\\\"G-FSZVRL8CH2\\\"]},{\\\"type\\\":\\\"view_item_list\\\",\\\"action_label\\\":\\\"G-N50F36VNCW\\\"},{\\\"type\\\":\\\"add_payment_info\\\",\\\"action_label\\\":[\\\"G-N50F36VNCW\\\",\\\"AW-1015268063\\\/eAyoCKOriK0aEN-Fj-QD\\\",\\\"AW-1015268063\\\",\\\"MC-ESSF3C3L5K\\\",\\\"G-FSZVRL8CH2\\\"]},{\\\"type\\\":\\\"add_to_cart\\\",\\\"action_label\\\":[\\\"G-N50F36VNCW\\\",\\\"AW-1015268063\\\/KDA1CJeriK0aEN-Fj-QD\\\",\\\"AW-1015268063\\\/0R-HCIbrieYYEN-Fj-QD\\\",\\\"AW-1015268063\\\",\\\"MC-ESSF3C3L5K\\\",\\\"G-FSZVRL8CH2\\\"]},{\\\"type\\\":\\\"view_cart\\\",\\\"action_label\\\":\\\"G-N50F36VNCW\\\"}],\\\"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":"144212221","configuration":"{\"shopId\":\"31517\",\"env\":\"production\",\"metaData\":\"[]\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"8323bee30e1ec3ae135ae5e0cef4ab6d","type":"APP","apiClientId":2773553,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"142377213","configuration":"{\"bobClientId\":\"soulflower\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"2b7973704663ee435560d18e70fb58be","type":"APP","apiClientId":50060034049,"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":"43843837","configuration":"{\"accountID\":\"2084\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"4157a0526dca5e0d36dfe514179eeece","type":"APP","apiClientId":5009031,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"81363197","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS"],"name":"Google Analytics tag (migrated)"},{"id":"88211709","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"2","type":"CUSTOM","privacyPurposes":[],"name":"Google Ads Code - BGD"},{"id":"97681661","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"Wizzy_GoKwik_Checkout"},{"id":"102072573","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"4","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"gokwik-events"}
1734,{"id":"109707517","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"UniqueAddToCartPixel"},{"id":"121864445","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"Lead Value Fix â Meta"},{"id":"124715261","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"2","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"Snapchat Conversion API"},{"id":"141721853","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"CustomerLabs"},{"id":"150274301","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"2","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"criteo"},{"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":"Soulflower.in","paymentSettings":{"currencyCode":"INR"},"myshopifyDomain":"soulflower-bc21.myshopify.com","countryCode":"IN","storefrontUrl":"https:\/\/www.soulflower.in"},"customer":null,"cart":null,"checkout":null,"productVariants":[],"products":[{"id":"7200368361725","handle":"rosemary-essential-oil-hair-growth","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"47560056701181","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8152089428221","handle":"rosemary-redensyl-hair-growth-serum","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"44325136761085","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"9199092990205","handle":"soulflower-vegan-pdrn-spotless-gel-cleanser","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"47394612117757","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"9347038380285","handle":"8-brightening-summer-soaps","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"47829990867197","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8135953285373","handle":"rosemary-tea-tree-shampoo","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"47478937977085","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"9310581326077","handle":"espom-bath-salt-with-lavender-essential-oil-1-kg","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"47702866329853","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8656156721405","handle":"anti-dandruff-serum","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"45506925625597","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"9274770718973","handle":"castor-oil-arandi-hair-oil-copy","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"47525683593469","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8513623752957","handle":"soulflower-rosemary-water-hair-spray-with-mint","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"46000287678717","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7200368722173","handle":"soulflower-moroccan-argan-oil-coldpressed","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"47729041932541","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"9270915989757","handle":"rosemary-lavender-hair-growth-oil-soulflower","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"47833171624189","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7200368394493","handle":"soulflower-tea-tree-essential-oil","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"47728928030973","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"9284227137789","handle":"100-pure-natural-virgin-coconut-oil-copy-1","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"47833006833917","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"9271918821629","handle":"rosemary-lavender-baby-hair-growth-oil","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"47833093767421","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7200371769597","handle":"soulflower-herbal-onion-biotin-shampoo-with-aloevera-plant-keratin-300ml","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"41487244951805","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"9268311851261","handle":"niacinamide-rice-water-soap-copy-1","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"47493504106749","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"9268307099901","handle":"kojic-acid-anti-pigmentation-kumkumadi-soap-copy-2","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"47493469274365","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"9282872344829","handle":"100-pure-sesame-oil-copy","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"47554319974653","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"9282871722237","handle":"100-pure-olive-oil-copy-1","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"47833065718013","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7200369901821","handle":"soulflower-tea-tree-oil-for-scalp-dandruff-care","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"41487241871613","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7200369017085","handle":"soulflower-jojoba-oil-coldpressed","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"47728950575357","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"9270096822525","handle":"rosemary-smooth-frizz-free-hair-serum-1","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"47495902298365","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"9182702960893","handle":"niacinamide-glass-skin-rice-water-soap","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"47321024332029","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"9272629264637","handle":"kojic-acid-anti-pigmentation-kumkumadi-soap-copy-3","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"47512180392189","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8708876697853","handle":"soulflower-premium-attar-set","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"45649252122877","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]}
1734,{"id":"15352529158397","handle":"roshni-ka-tofa-set","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"71345506746621","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8970800693501","handle":"ritual-set","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"46636371968253","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8708963401981","handle":"soulflower-aroma-home-diffuser-set","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"45649411834109","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"15389783884029","handle":"rosemary-hair-spray-strength-boost-hair-refresh-500ml","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"71430011289853","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7200369574141","handle":"soulflower-aroma-oil-walk-in-the-wood","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"41487241412861","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7200368591101","handle":"soulflower-rosehip-oil-coldpressed","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"41487240200445","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8734119690493","handle":"soulflower-reed-diffuser-50-ml","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"45735175651581","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"9082126106877","handle":"4everydayglowsoaps","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"46983992180989","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7200369049853","handle":"soulflower-grapeseed-oil-coldpressed","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"41487240823037","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7200368525565","handle":"soulflower-avocado-oil-coldpressed","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"41487240134909","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"9312789463293","handle":"espom-bath-salt-with-lavender-essential-oil-copy","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"47711671025917","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"15333168120061","handle":"onion-amla-hair-growth-oil","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"71278701281533","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7200369737981","handle":"herbal-onion-hair-growth-oil","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"41487241675005","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7200368754941","handle":"frankincense-essential-oil","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"41487240528125","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]}
1734,{"id":"7200371278077","handle":"soulflower-epsom-bath-salt-rose-geranium","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"41487244460285","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7200371179773","handle":"soulflower-epsom-bath-salt-lavender","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"41487244361981","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7200371114237","handle":"soulflower-epsom-salt-lavender-himalayan-pink-rock","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"41487244296445","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7200369246461","handle":"soulflower-peppermint-essential-oil","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"41487241019645","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7200369082621","handle":"india-best-organic-castor-oil-for-hair-growth","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"47833194103037","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7200368886013","handle":"soulflower-citronella-essential-oil","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"41487240659197","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7200368689405","handle":"soulflower-geranium-essential-oil","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"41487240462589","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7200368558333","handle":"soulflower-orange-essential-oil","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"41487240167677","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7200368460029","handle":"soulflower-lavender-essential-oil-100-pure-steam-distilled-for-hair-skin-and-aromatherapy","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"41487240036605","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8970784669949","handle":"ganesh-laxmi-puja-ritual-set","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"46636347818237","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]}
1734,{"id":"7200370295037","handle":"kesar-sandalwood-puja-lamp-oil","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"41487242428669","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]}],"purchasingCompany":null},},"https://www.soulflower.in/cdn","7ec887c8w14f9f074p854094e1m1370c602",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"false","themeId":"213442101501","themePublished":"true","eventMetadataId":"58e89591-9ea3-41e4-b3c2-96a693b1ae6f","pageType":"page","resourceId":"165045436669","shopId":"54912745725","storefrontBaseUrl":"https:\/\/www.soulflower.in","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"4c64608a\", \"16072cab\"]","isMerchantRequest":"false","hashVersion":"7ec887c8w14f9f074p854094e1m1370c602","publish":"custom","events":"[[\"page_viewed\",{}]]"});})();</script>
1734<script> 1735 window.ShopifyAnalytics = window.ShopifyAnalytics || {}; 1736 window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {}; 1737 window.ShopifyAnalytics.meta.currency = 'INR'; 1738 var meta = {"page":{"pageType":"page","resourceType":"page","resourceId":165045436669,"requestId":"abec9208-4f26-4f20-9cb8-2ee39e1c11fa-1791567080"}}; 1739 for (var attr in meta) { 1740 window.ShopifyAnalytics.meta[attr] = meta[attr]; 1741 } 1742</script>
vendor: 1 bytes, line 1742
1742
1743<script class="analytics"> 1744 (function () { 1745 var customDocumentWrite = function(content) { 1746 var jquery = null; 1747 1748 if (window.jQuery) { 1749 jquery = window.jQuery; 1750 } else if (window.Checkout && window.Checkout.$) { 1751 jquery = window.Checkout.$; 1752 } 1753 1754 if (jquery) { 1755 jquery('body').append(content); 1756 } 1757 }; 1758 1759 var hasLoggedConversion = function(token) { 1760 if (token) { 1761 return document.cookie.indexOf('loggedConversion=' + token) !== -1; 1762 } 1763 return false; 1764 } 1765 1766 var setCookieIfConversion = function(token) { 1767 if (token) { 1768 var twoMonthsFromNow = new Date(Date.now()); 1769 twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2); 1770 1771 document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow; 1772 } 1773 } 1774 1775 var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || []; 1776 window.ShopifyAnalytics.lib.trekkie = window.trekkie; 1777 if (trekkie.integrations) { 1778 return; 1779 } 1780 trekkie.methods = [ 1781 'identify', 1782 'page', 1783 'ready', 1784 'track', 1785 'trackForm', 1786 'trackLink' 1787 ]; 1788 trekkie.factory = function(method) { 1789 return function() { 1790 var args = Array.prototype.slice.call(arguments); 1791 args.unshift(method); 1792 trekkie.push(args); 1793 if (method == 'track' || method == 'page') { 1794 var pageUrl; 1795 try { 1796 pageUrl = window.location.href; 1797 } catch (e) {} 1798 var pageReferrer; 1799 try { 1800 pageReferrer = document.referrer; 1801 } catch (e) {} 1802 try { 1803 if (window.__TREKKIE_SHIM_QUEUE == null) { 1804 window.__TREKKIE_SHIM_QUEUE = []; 1805 } 1806 window.__TREKKIE_SHIM_QUEUE.push({ 1807 from: 'trekkie-stub', 1808 method: method, 1809 args: args.slice(1), 1810 pageContext: { 1811 url: pageUrl, 1812 referrer: pageReferrer 1813 } 1814 }); 1815 } catch (e) { 1816 // no-op 1817 } 1818 } 1819 return trekkie; 1820 }; 1821 }; 1822 for (var i = 0; i < trekkie.methods.length; i++) { 1823 var key = trekkie.methods[i]; 1824 trekkie[key] = trekkie.factory(key); 1825 } 1826 trekkie.load = function(config) { 1827 trekkie.config = config || {}; 1828 trekkie.config.initialDocumentCookie = document.cookie; 1829 var first = document.getElementsByTagName('script')[0]; 1830var script = document.createElement('script'); 1831script.type = 'text/javascript'; 1832script.onerror = function(e) { 1833 var scriptFallback = document.createElement('script'); 1834 scriptFallback.type = 'text/javascript'; 1835 scriptFallback.onerror = function(error) { 1836 var Monorail = { 1837 produce: function produce(monorailDomain, schemaId, payload) { 1838 var currentMs = new Date().getTime(); 1839 var event = { 1840 schema_id: schemaId, 1841 payload: payload, 1842 metadata: { 1843 event_created_at_ms: currentMs, 1844 event_sent_at_ms: currentMs 1845 } 1846 }; 1847 return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event)); 1848 }, 1849 sendRequest: function sendRequest(endpointUrl, payload) { 1850 // Try the sendBeacon API 1851 if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) { 1852 var blobData = new window.Blob([payload], { 1853 type: 'text/plain' 1854 }); 1855 1856 if (window.navigator.sendBeacon(endpointUrl, blobData)) { 1857 return true; 1858 } // sendBeacon was not successful 1859 1860 } // XHR beacon 1861 1862 var xhr = new XMLHttpRequest(); 1863 1864 try { 1865 xhr.open('POST', endpointUrl); 1866 xhr.setRequestHeader('Content-Type', 'text/plain'); 1867 xhr.send(payload); 1868 } catch (e) { 1869 console.log(e); 1870 } 1871 1872 return false; 1873 }, 1874 isIos12: function isIos12() { 1875 return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1; 1876 } 1877 }; 1878 Monorail.produce('monorail-edge.shopifysvc.com', 1879 'trekkie_storefront_load_errors/1.1', 1880 {shop_id: 54912745725, 1881 theme_id: 213442101501, 1882 app_name: "storefront", 1883 context_url: window.location.href, 1884 source_url: "//www.soulflower.in/cdn/s/trekkie.storefront.51e69540e15035ae012ec8cc42e8f9cd792233a0.min.js"}); 1885 1886 }; 1887 scriptFallback.async = true; 1888 scriptFallback.src = '//www.soulflower.in/cdn/s/trekkie.storefront.51e69540e15035ae012ec8cc42e8f9cd792233a0.min.js'; 1889 first.parentNode.insertBefore(scriptFallback, first); 1890}; 1891script.async = true; 1892script.src = '//www.soulflower.in/cdn/s/trekkie.storefront.51e69540e15035ae012ec8cc42e8f9cd792233a0.min.js'; 1893first.parentNode.insertBefore(script, first); 1894 1895 }; 1896 trekkie.load( 1897 {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":54912745725,"isMerchantRequest":null,"themeId":213442101501,"themeCityHash":"15897990153596789699","contentLanguage":"en","currency":"INR","eventMetadataId":"58e89591-9ea3-41e4-b3c2-96a693b1ae6f"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","4c64608a"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":false,"source":"trekkie-storefront-renderer","apiClientId":580111}} 1898 ); 1899 1900 var loaded = false;
1901 trekkie.ready(function() { 1902 if (loaded) return; 1903 loaded = true; 1904 1905 window.ShopifyAnalytics.lib = window.trekkie; 1906 1907 var originalDocumentWrite = document.write; 1908 document.write = customDocumentWrite; 1909 try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {}; 1910 document.write = originalDocumentWrite; 1911 1912 var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/) 1913 var token = match? match[1]: undefined; 1914 if (!hasLoggedConversion(token)) { 1915 setCookieIfConversion(token); 1916 1917 } 1918 }); 1919 1920 window.ShopifyAnalytics.lib.page(null,{"pageType":"page","resourceType":"page","resourceId":165045436669,"requestId":"abec9208-4f26-4f20-9cb8-2ee39e1c11fa-1791567080","shopifyEmitted":true}); 1921 1922 var eventsListenerScript = document.createElement('script'); 1923 eventsListenerScript.async = true; 1924 eventsListenerScript.src = "//www.soulflower.in/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js"; 1925 document.getElementsByTagName('head')[0].appendChild(eventsListenerScript); 1926})();</script>
1926 1927
1927<script> 1928 if (!window.ga || (window.ga && typeof window.ga !== 'function')) { 1929 window.ga = function ga() { 1930 (window.ga.q = window.ga.q || []).push(arguments); 1931 if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') { 1932 window.Shopify.analytics.publish("ga_stub_called", {}, {sendTo: "google_osp_migration"}); 1933 } 1934 console.error("Shopify's Google Analytics stub called with:", Array.from(arguments), "\nSee https://help.shopify.com/manual/promoting-marketing/pixels/pixel-migration#google for more information."); 1935 }; 1936 if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') { 1937 window.Shopify.analytics.publish("ga_stub_initialized", {}, {sendTo: "google_osp_migration"}); 1938 } 1939 } 1940</script>
vendor: 1 bytes, line 1940
1940
1941<script 1942 defer 1943 src="https://www.soulflower.in/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.10.1.min.js" 1944 data-application="storefront-renderer" 1945 data-shop-id="54912745725" 1946 data-render-region="gcp-us-central1" 1947 data-page-type="page" 1948 data-theme-instance-id="213442101501" 1949 data-theme-name="Dawn" 1950 data-theme-version="15.4.0" 1951 data-monorail-region="shop_domain" 1952 data-resource-timing-sampling-rate="10" 1953 data-shs="true" 1954 data-shs-beacon="true" 1955 data-shs-export-with-fetch="true" 1956 data-shs-logs-sample-rate="1" 1957 data-shs-beacon-endpoint="https://www.soulflower.in/api/collect" 1958></script>
1958 1959<meta name="shopify-y" content="a855afec-330d-4255-ac1c-6a171bed6136" data-expiration="1823124680000"><meta name="shopify-s" content="6767bca8-a98e-4098-a9a8-e326d9d68fba" data-expiration="1791568880000"> 1960</head> 1961 1962 1963<style> 1964 /* ââ Gem Burst Container (lower z-index than button) ââ */ 1965 .bedazzled-burst-container { 1966 position: fixed; 1967 top: 0; 1968 left: 0; 1969 width: 100%; 1970 height: 100%; 1971 pointer-events: none; 1972 z-index: 0; 1973 overflow: visible; 1974 } 1975 1976 /* ââ Individual Gem ââ */ 1977 .bedazzled-gem { 1978 position: fixed; 1979 font-size: 24px; 1980 line-height: 1; 1981 pointer-events: none; 1982 filter: drop-shadow(0 2px 8px rgba(0, 0, 0, 0.3)); 1983 transform-origin: center center; 1984 will-change: transform, opacity; 1985 } 1986 1987 /* ââ Burst from edge outward ââ */ 1988 @keyframes bedazzledEdgeBurst { 1989 0% { 1990 transform: translate(var(--start-x), var(--start-y)) scale(0.8) rotate(0deg); 1991 opacity: 0.9; 1992 } 1993 20% { 1994 opacity: 1; 1995 } 1996 100% { 1997 transform: translate(var(--end-x), var(--end-y)) scale(0.15) rotate(360deg); 1998 opacity: 0; 1999 } 2000 } 2001 2002 /* ââ Sparkle variant (brighter) ââ */ 2003 @keyframes bedazzledSparkleEdge { 2004 0% { 2005 transform: translate(var(--start-x), var(--start-y)) scale(1) rotate(0deg); 2006 opacity: 1; 2007 filter: drop-shadow(0 2px 12px rgba(255, 215, 0, 0.9)); 2008 } 2009 20% { 2010 filter: drop-shadow(0 2px 12px rgba(255, 215, 0, 0.7)); 2011 } 2012 100% { 2013 transform: translate(var(--end-x), var(--end-y)) scale(0.1) rotate(360deg); 2014 opacity: 0; 2015 filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.1)); 2016 } 2017 } 2018 2019 /* ââ Heavy gem (larger, slower) ââ */ 2020 @keyframes bedazzledHeavyEdge { 2021 0% { 2022 transform: translate(var(--start-x), var(--start-y)) scale(1.1) rotate(0deg); 2023 opacity: 0.95; 2024 } 2025 20% { 2026 opacity: 1; 2027 } 2028 100% { 2029 transform: translate(var(--end-x), var(--end-y)) scale(0.2) rotate(360deg); 2030 opacity: 0; 2031 } 2032 } 2033 2034 /* ââ Trail variant (slower) ââ */ 2035 @keyframes bedazzledTrailEdge { 2036 0% { 2037 transform: translate(var(--start-x), var(--start-y)) scale(0.8) rotate(0deg); 2038 opacity: 0.85; 2039 } 2040 100% { 2041 transform: translate(var(--end-x), var(--end-y)) scale(0.1) rotate(360deg); 2042 opacity: 0; 2043 } 2044 } 2045 2046 /* ââ Apply animations ââ */ 2047 .bedazzled-gem { 2048 animation: bedazzledEdgeBurst 1.1s cubic-bezier(0.34, 1.56, 0.64, 1) forwards; 2049 } 2050 2051 .bedazzled-gem.sparkle { 2052 animation: bedazzledSparkleEdge 1s cubic-bezier(0.34, 1.56, 0.64, 1) forwards; 2053 } 2054 2055 .bedazzled-gem.trail { 2056 animation: bedazzledTrailEdge 1.4s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards; 2057 } 2058 2059 .bedazzled-gem.heavy { 2060 font-size: 32px; 2061 animation: bedazzledHeavyEdge 1.25s cubic-bezier(0.34, 1.56, 0.64, 1) forwards; 2062 } 2063 2064 /* ââ Ensure buttons stay on top ââ */ 2065 .custom-cart-btn, 2066 button.add-btn, 2067 [type="submit"][name="add"] { 2068 position: relative; 2069 z-index: 1; 2070 } 2071</style> 2072
2073<script> 2074(function() { 2075 'use strict'; 2076 2077 /* ââ Gem emoji collection ââ */ 2078 const GEM_LIBRARY = { 2079 diamonds: ['ð', 'ð', 'ð'], 2080 sparkles: ['â¨', 'ð', 'â', 'ð«', 'â¦', 'â§'], 2081 magical: ['ð®', 'ð«§', 'ð', 'ð'], 2082 all: ['ð', 'â¨', 'ð', 'â', 'ð«', 'ð®', 'â¦', 'â§', 'ð', 'ð', 'ð«§', 'ð'] 2083 }; 2084 2085 /* ââ Configuration ââ */ 2086 const CONFIG = { 2087 gemCount: { min: 20, max: 30 }, 2088 burstDistance: { min: 120, max: 260 }, 2089 duration: 1100, 2090 colors: ['#FFD700', '#FF69B4', '#00CED1', '#FF1493', '#FFB6C1'], 2091 library: GEM_LIBRARY.all 2092 }; 2093 2094 /* ââ Ensure container exists ââ */ 2095 function getOrCreateContainer() { 2096 let container = document.querySelector('.bedazzled-burst-container'); 2097 if (!container) { 2098 container = document.createElement('div'); 2099 container.className = 'bedazzled-burst-container'; 2100 document.body.appendChild(container); 2101 } 2102 return container; 2103 } 2104 2105 /* ââ Random between min and max ââ */ 2106 function random(min, max) { 2107 return Math.random() * (max - min) + min; 2108 } 2109 2110 /* ââ Main burst function ââ */ 2111 function triggerBedazzledBurst(event) { 2112 const btn = event.target.closest('.custom-cart-btn, [type="submit"][name="add"], button.add-btn'); 2113 if (!btn) return; 2114 2115 /* Get button position and dimensions */ 2116 const rect = btn.getBoundingClientRect(); 2117 const btnCenterX = rect.left + rect.width / 2; 2118 const btnCenterY = rect.top + rect.height / 2; 2119 const btnWidth = rect.width; 2120 const btnHeight = rect.height; 2121 2122 const container = getOrCreateContainer(); 2123 2124 /* Determine gem count */ 2125 const gemCount = Math.floor(random(CONFIG.gemCount.min, CONFIG.gemCount.max)); 2126 2127 /* Create burst */ 2128 for (let i = 0; i < gemCount; i++) { 2129 const gem = document.createElement('div'); 2130 2131 /* Pick gem emoji */ 2132 const gemEmoji = CONFIG.library[Math.floor(Math.random() * CONFIG.library.length)]; 2133 gem.textContent = gemEmoji; 2134 2135 /* Randomize variant */ 2136 const variant = Math.random(); 2137 if (variant < 0.25) { 2138 gem.classList.add('sparkle'); 2139 } else if (variant < 0.45) { 2140 gem.classList.add('trail'); 2141 } else if (variant < 0.15) { 2142 gem.classList.add('heavy'); 2143 } 2144 2145 /* Set classes */ 2146 gem.className = 'bedazzled-gem ' + gem.className; 2147 2148 /* Random edge to burst from: 0=top, 1=right, 2=bottom, 3=left */ 2149 const edge = Math.floor(Math.random() * 4); 2150 let startX, startY, dirX, dirY; 2151 2152 if (edge === 0) { 2153 /* Top edge */ 2154 startX = btnCenterX + random(-btnWidth / 2, btnWidth / 2); 2155 startY = rect.top; 2156 dirX = 0; 2157 dirY = -1; 2158 } else if (edge === 1) { 2159 /* Right edge */ 2160 startX = rect.right; 2161 startY = btnCenterY + random(-btnHeight / 2, btnHeight / 2); 2162 dirX = 1; 2163 dirY = 0; 2164 } else if (edge === 2) { 2165 /* Bottom edge */ 2166 startX = btnCenterX + random(-btnWidth / 2, btnWidth / 2); 2167 startY = rect.bottom; 2168 dirX = 0; 2169 dirY = 1; 2170 } else { 2171 /* Left edge */ 2172 startX = rect.left; 2173 startY = btnCenterY + random(-btnHeight / 2, btnHeight / 2); 2174 dirX = -1; 2175 dirY = 0; 2176 } 2177 2178 /* Add some perpendicular spread (not perfectly straight out) */ 2179 const spreadAngle = random(-0.4, 0.4); 2180 const tempX = dirX * Math.cos(spreadAngle) - dirY * Math.sin(spreadAngle); 2181 const tempY = dirX * Math.sin(spreadAngle) + dirY * Math.cos(spreadAngle); 2182 dirX = tempX; 2183 dirY = tempY; 2184 2185 /* Normalize direction */ 2186 const len = Math.sqrt(dirX * dirX + dirY * dirY); 2187 dirX /= len; 2188 dirY /= len; 2189 2190 /* Calculate end position (burst distance away) */ 2191 const burstDistance = random(CONFIG.burstDistance.min, CONFIG.burstDistance.max); 2192 const endX = startX + dirX * burstDistance; 2193 const endY = startY + dirY * burstDistance; 2194 2195 /* CSS custom properties for animation */ 2196 gem.style.setProperty('--start-x', '0px'); 2197 gem.style.setProperty('--start-y', '0px'); 2198 gem.style.setProperty('--end-x', (endX - startX) + 'px'); 2199 gem.style.setProperty('--end-y', (endY - startY) + 'px'); 2200 2201 /* Position gem at starting edge point */ 2202 gem.style.left = startX + 'px'; 2203 gem.style.top = startY + 'px'; 2204 2205 /* Optional: add color tint */ 2206 if (Math.random() > 0.6) { 2207 const color = CONFIG.colors[Math.floor(Math.random() * CONFIG.colors.length)]; 2208 gem.style.textShadow = `0 0 12px ${color}, 0 0 24px ${color}`; 2209 } 2210 2211 container.appendChild(gem); 2212 2213 /* Clean up after animation */ 2214 setTimeout(() => { 2215 gem.remove(); 2216 }, CONFIG.duration + 100); 2217 } 2218 } 2219 2220 /* ââ Event delegation ââ */ 2221 document.addEventListener('click', function(e) { 2222 const btn = e.target.closest('.custom-cart-btn, [type="submit"][name="add"], button.add-btn'); 2223 if (btn) { 2224 triggerBedazzledBurst(e); 2225 } 2226 }, true); 2227 2228 /* ââ Handle dynamically added elements ââ */ 2229 if (typeof MutationObserver !== 'undefined') { 2230 const observer = new MutationObserver(function(mutations) { 2231 mutations.forEach(function(mutation) { 2232 if (mutation.type === 'childList' && mutation.addedNodes.length) {
2233 mutation.addedNodes.forEach(function(node) { 2234 if (node.nodeType === 1) { 2235 const btns = node.querySelectorAll?.('.custom-cart-btn, [type="submit"][name="add"], button.add-btn'); 2236 if (btns?.length) { 2237 btns.forEach(btn => { 2238 if (!btn.dataset.bedazzled) { 2239 btn.dataset.bedazzled = 'true'; 2240 } 2241 }); 2242 } 2243 } 2244 }); 2245 } 2246 }); 2247 }); 2248 observer.observe(document.body, { childList: true, subtree: true }); 2249 } 2250 2251 /* ââ Expose to window ââ */ 2252 window.triggerBedazzled = triggerBedazzledBurst; 2253 window.BEDAZZLED_CONFIG = CONFIG; 2254 2255 console.log('[BEDAZZLED] Gem burst (from button edges) loaded.'); 2256})(); 2257</script>
2257 2258 <body 2259 class=" 2260 gradient 2261 2262 2263 page-page 2264 animate--hover-vertical-lift 2265 " 2266 > 2267 2268
2269<script> 2270 (function () { 2271 var META = false; 2272 var CLARITY = true; 2273 var SNAP = true; 2274 var GTM = true; 2275 var GADS = true; 2276 2277 var analyticsLoaded = false; 2278 var idle = window.requestIdleCallback || function (cb) { return setTimeout(cb, 1); }; 2279 2280 function loadMetaPixel() { 2281 !(function (f, b, e, v, n, t, s) { 2282 if (f.fbq) return; 2283 n = f.fbq = function () { n.callMethod ? n.callMethod.apply(n, arguments) : n.queue.push(arguments); }; 2284 if (!f._fbq) f._fbq = n; 2285 n.push = n; n.loaded = !0; n.version = '2.0'; n.queue = []; 2286 t = b.createElement(e); t.async = !0; t.src = v; 2287 s = b.getElementsByTagName(e)[0]; 2288 s.parentNode.insertBefore(t, s); 2289 })(window, document, 'script', 'https://connect.facebook.net/en_US/fbevents.js'); 2290 fbq('init', '1812651705513487'); 2291 fbq('track', 'PageView'); 2292 } 2293 2294 function loadGTM() {
vendor: 465 bytes, lines 2294-2303
2294 2295 (function (w, d, s, l, i) { 2296 w[l] = w[l] || []; 2297 w[l].push({ 'gtm.start': new Date().getTime(), event: 'gtm.js' }); 2298 var f = d.getElementsByTagName(s)[0], j = d.createElement(s), 2299 dl = l != 'dataLayer' ? '&l=' + l : ''; 2300 j.async = true; 2301 j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl; 2302 f.parentNode.insertBefore(j, f); 2303 })(window, document, 'script', 'dataLayer', '
2303GTM-NCS4W4
vendor: 10 bytes, lines 2303-2304
2303'); 2304
2304} 2305 2306 function loadGtag() { 2307 var s = document.createElement('script'); 2308 s.async = true; 2309 s.src = 'https://www.googletagmanager.com/gtag/js?id=AW-1015268063'; 2310 document.head.appendChild(s); 2311 window.dataLayer = window.dataLayer || []; 2312 window.gtag = function () { dataLayer.push(arguments); }; 2313 gtag('js', new Date()); 2314 gtag('config', 'AW-1015268063'); 2315 } 2316 2317 function loadSnap() { 2318 (function (e, t, n) { 2319 if (e.snaptr) return; 2320 var a = e.snaptr = function () { a.handleRequest ? a.handleRequest.apply(a, arguments) : a.queue.push(arguments); }; 2321 a.queue = []; 2322 var r = t.createElement('script'); r.async = !0; r.src = n; 2323 var u = t.getElementsByTagName('script')[0]; 2324 u.parentNode.insertBefore(r, u); 2325 })(window, document, 'https://sc-static.net/scevent.min.js'); 2326 snaptr('init', 'd9445869-6ec5-4715-bc0e-692034c7a631', {}); 2327 snaptr('track', 'PAGE_VIEW'); 2328 } 2329 2330 function loadClarity() { 2331 (function (c, l, a, r, i, t, y) { 2332 c[a] = c[a] || function () { (c[a].q = c[a].q || []).push(arguments); }; 2333 t = l.createElement(r); t.async = 1; 2334 t.src = 'https://www.clarity.ms/tag/' + i; 2335 y = l.getElementsByTagName(r)[0]; 2336 y.parentNode.insertBefore(t, y); 2337 })(window, document, 'clarity', 'script', 'dj910cpv5x'); 2338 } 2339 2340 function loadAllTrackers() { 2341 if (analyticsLoaded) return; 2342 analyticsLoaded = true; 2343 2344 if (META) idle(loadMetaPixel); 2345 if (GTM) idle(loadGTM); 2346 if (GADS) idle(loadGtag); 2347 if (SNAP) idle(loadSnap); 2348 2349 // Clarity is a session recorder, not an attribution pixel â it has no reason to 2350 // compete with first paint. Deferring it past the load event moves its 2,201 ms 2351 // of CPU out of the Total Blocking Time window while still recording the session. 2352 if (CLARITY) { 2353 var startClarity = function () { setTimeout(function () { idle(loadClarity); }, 8000); }; 2354 if (document.readyState === 'complete') startClarity(); 2355 else window.addEventListener('load', startClarity, { once: true }); 2356 } 2357 } 2358 2359 // 'click' removed â cart icon clicks should NOT compete with GoKwik 2360 ['scroll', 'keydown', 'touchstart'].forEach(function (evt) { 2361 window.addEventListener(evt, loadAllTrackers, { once: true, passive: true }); 2362 }); 2363 // Tighter fallback â 2.5s instead of 4s 2364 setTimeout(loadAllTrackers, 2500); 2365 })(); 2366 </script>
2366 2367 2368 <a class="skip-to-content-link button visually-hidden" href="#MainContent"> 2369 Skip to content 2370 </a><!-- BEGIN sections: header-group --> 2371<div id="shopify-section-sections--34514167398653__marquee_U9KaXx" class="shopify-section shopify-section-group-header-group"><section class="product-marquee-section" id="marquee-sections--34514167398653__marquee_U9KaXx"> 2372 <div class="marquee-primary"><ul class="marquee__content" role="list"><li ><span class="marquee-sr-only">~~~~~ð IT'S OUR BIRTHDAY! || BUY 1 GET 1 FREE IS LIVE SITEWIDE || DON'T MISS OUT || SHOP NOW ||</span><b><span class="marquee-text" aria-hidden="true"> ð IT'S OUR BIRTHDAY! || BUY 1 GET 1 FREE IS LIVE SITEWIDE || DON'T MISS OUT || SHOP NOW ||</span></b> 2373 </li><li aria-hidden="true"><b><span class="marquee-text" aria-hidden="true"> ð IT'S OUR BIRTHDAY! || BUY 1 GET 1 FREE IS LIVE SITEWIDE || DON'T MISS OUT || SHOP NOW ||</span></b> 2374 </li><li aria-hidden="true"><b><span class="marquee-text" aria-hidden="true"> ð IT'S OUR BIRTHDAY! || BUY 1 GET 1 FREE IS LIVE SITEWIDE || DON'T MISS OUT || SHOP NOW ||</span></b> 2375 </li><li aria-hidden="true"><b><span class="marquee-text" aria-hidden="true"> ð IT'S OUR BIRTHDAY! || BUY 1 GET 1 FREE IS LIVE SITEWIDE || DON'T MISS OUT || SHOP NOW ||</span></b> 2376 </li><li aria-hidden="true"><b><span class="marquee-text" aria-hidden="true"> ð IT'S OUR BIRTHDAY! || BUY 1 GET 1 FREE IS LIVE SITEWIDE || DON'T MISS OUT || SHOP NOW ||</span></b> 2377 </li><li aria-hidden="true"><b><span class="marquee-text" aria-hidden="true"> ð IT'S OUR BIRTHDAY! || BUY 1 GET 1 FREE IS LIVE SITEWIDE || DON'T MISS OUT || SHOP NOW ||</span></b> 2378 </li><li aria-hidden="true"><b><span class="marquee-text" aria-hidden="true"> ð IT'S OUR BIRTHDAY! || BUY 1 GET 1 FREE IS LIVE SITEWIDE || DON'T MISS OUT || SHOP NOW ||</span></b> 2379 </li><li aria-hidden="true"><b><span class="marquee-text" aria-hidden="true"> ð IT'S OUR BIRTHDAY! || BUY 1 GET 1 FREE IS LIVE SITEWIDE || DON'T MISS OUT || SHOP NOW ||</span></b> 2380 </li><li aria-hidden="true"><b><span class="marquee-text" aria-hidden="true"> ð IT'S OUR BIRTHDAY! || BUY 1 GET 1 FREE IS LIVE SITEWIDE || DON'T MISS OUT || SHOP NOW ||</span></b> 2381 </li><li aria-hidden="true"><b><span class="marquee-text" aria-hidden="true"> ð IT'S OUR BIRTHDAY! || BUY 1 GET 1 FREE IS LIVE SITEWIDE || DON'T MISS OUT || SHOP NOW ||</span></b> 2382 </li><li aria-hidden="true"><b><span class="marquee-text" aria-hidden="true"> ð IT'S OUR BIRTHDAY! || BUY 1 GET 1 FREE IS LIVE SITEWIDE || DON'T MISS OUT || SHOP NOW ||</span></b> 2383 </li><li aria-hidden="true"><b><span class="marquee-text" aria-hidden="true"> ð IT'S OUR BIRTHDAY! || BUY 1 GET 1 FREE IS LIVE SITEWIDE || DON'T MISS OUT || SHOP NOW ||</span></b> 2384 </li><li aria-hidden="true"><b><span class="marquee-text" aria-hidden="true"> ð IT'S OUR BIRTHDAY! || BUY 1 GET 1 FREE IS LIVE SITEWIDE || DON'T MISS OUT || SHOP NOW ||</span></b> 2385 </li><li aria-hidden="true"><b><span class="marquee-text" aria-hidden="true"> ð IT'S OUR BIRTHDAY! || BUY 1 GET 1 FREE IS LIVE SITEWIDE || DON'T MISS OUT || SHOP NOW ||</span></b> 2386 </li><li aria-hidden="true"><b><span class="marquee-text" aria-hidden="true"> ð IT'S OUR BIRTHDAY! || BUY 1 GET 1 FREE IS LIVE SITEWIDE || DON'T MISS OUT || SHOP NOW ||</span></b> 2387 </li><li aria-hidden="true"><b><span class="marquee-text" aria-hidden="true"> ð IT'S OUR BIRTHDAY! || BUY 1 GET 1 FREE IS LIVE SITEWIDE || DON'T MISS OUT || SHOP NOW ||</span></b> 2388 </li><li aria-hidden="true"><b><span class="marquee-text" aria-hidden="true"> ð IT'S OUR BIRTHDAY! || BUY 1 GET 1 FREE IS LIVE SITEWIDE || DON'T MISS OUT || SHOP NOW ||</span></b> 2389 </li><li aria-hidden="true"><b><span class="marquee-text" aria-hidden="true"> ð IT'S OUR BIRTHDAY! || BUY 1 GET 1 FREE IS LIVE SITEWIDE || DON'T MISS OUT || SHOP NOW ||</span></b> 2390 </li><li aria-hidden="true"><b><span class="marquee-text" aria-hidden="true"> ð IT'S OUR BIRTHDAY! || BUY 1 GET 1 FREE IS LIVE SITEWIDE || DON'T MISS OUT || SHOP NOW ||</span></b> 2391 </li><li aria-hidden="true"><b><span class="marquee-text" aria-hidden="true"> ð IT'S OUR BIRTHDAY! || BUY 1 GET 1 FREE IS LIVE SITEWIDE || DON'T MISS OUT || SHOP NOW ||</span></b> 2392 </li></ul><ul class="marquee__content" role="list" aria-hidden="true"><li aria-hidden="true"><b><span class="marquee-text" aria-hidden="true"> ð IT'S OUR BIRTHDAY! || BUY 1 GET 1 FREE IS LIVE SITEWIDE || DON'T MISS OUT || SHOP NOW ||</span></b> 2393 </li><li aria-hidden="true"><b><span class="marquee-text" aria-hidden="true"> ð IT'S OUR BIRTHDAY! || BUY 1 GET 1 FREE IS LIVE SITEWIDE || DON'T MISS OUT || SHOP NOW ||</span></b> 2394 </li><li aria-hidden="true"><b><span class="marquee-text" aria-hidden="true"> ð IT'S OUR BIRTHDAY! || BUY 1 GET 1 FREE IS LIVE SITEWIDE || DON'T MISS OUT || SHOP NOW ||</span></b> 2395 </li><li aria-hidden="true"><b><span class="marquee-text" aria-hidden="true"> ð IT'S OUR BIRTHDAY! || BUY 1 GET 1 FREE IS LIVE SITEWIDE || DON'T MISS OUT || SHOP NOW ||</span></b> 2396 </li><li aria-hidden="true"><b><span class="marquee-text" aria-hidden="true"> ð IT'S OUR BIRTHDAY! || BUY 1 GET 1 FREE IS LIVE SITEWIDE || DON'T MISS OUT || SHOP NOW ||</span></b> 2397 </li><li aria-hidden="true"><b><span class="marquee-text" aria-hidden="true"> ð IT'S OUR BIRTHDAY! || BUY 1 GET 1 FREE IS LIVE SITEWIDE || DON'T MISS OUT || SHOP NOW ||</span></b> 2398 </li><li aria-hidden="true"><b><span class="marquee-text" aria-hidden="true"> ð IT'S OUR BIRTHDAY! || BUY 1 GET 1 FREE IS LIVE SITEWIDE || DON'T MISS OUT || SHOP NOW ||</span></b> 2399 </li><li aria-hidden="true"><b><span class="marquee-text" aria-hidden="true"> ð IT'S OUR BIRTHDAY! || BUY 1 GET 1 FREE IS LIVE SITEWIDE || DON'T MISS OUT || SHOP NOW ||</span></b> 2400 </li><li aria-hidden="true"><b><span class="marquee-text" aria-hidden="true"> ð IT'S OUR BIRTHDAY! || BUY 1 GET 1 FREE IS LIVE SITEWIDE || DON'T MISS OUT || SHOP NOW ||</span></b> 2401 </li><li aria-hidden="true"><b><span class="marquee-text" aria-hidden="true"> ð IT'S OUR BIRTHDAY! || BUY 1 GET 1 FREE IS LIVE SITEWIDE || DON'T MISS OUT || SHOP NOW ||</span></b> 2402 </li><li aria-hidden="true"><b><span class="marquee-text" aria-hidden="true"> ð IT'S OUR BIRTHDAY! || BUY 1 GET 1 FREE IS LIVE SITEWIDE || DON'T MISS OUT || SHOP NOW ||</span></b> 2403 </li><li aria-hidden="true"><b><span class="marquee-text" aria-hidden="true"> ð IT'S OUR BIRTHDAY! || BUY 1 GET 1 FREE IS LIVE SITEWIDE || DON'T MISS OUT || SHOP NOW ||</span></b> 2404 </li><li aria-hidden="true"><b><span class="marquee-text" aria-hidden="true"> ð IT'S OUR BIRTHDAY! || BUY 1 GET 1 FREE IS LIVE SITEWIDE || DON'T MISS OUT || SHOP NOW ||</span></b> 2405 </li><li aria-hidden="true"><b><span class="marquee-text" aria-hidden="true"> ð IT'S OUR BIRTHDAY! || BUY 1 GET 1 FREE IS LIVE SITEWIDE || DON'T MISS OUT || SHOP NOW ||</span></b> 2406 </li><li aria-hidden="true"><b><span class="marquee-text" aria-hidden="true"> ð IT'S OUR BIRTHDAY! || BUY 1 GET 1 FREE IS LIVE SITEWIDE || DON'T MISS OUT || SHOP NOW ||</span></b> 2407 </li><li aria-hidden="true"><b><span class="marquee-text" aria-hidden="true"> ð IT'S OUR BIRTHDAY! || BUY 1 GET 1 FREE IS LIVE SITEWIDE || DON'T MISS OUT || SHOP NOW ||</span></b> 2408 </li><li aria-hidden="true"><b><span class="marquee-text" aria-hidden="true"> ð IT'S OUR BIRTHDAY! || BUY 1 GET 1 FREE IS LIVE SITEWIDE || DON'T MISS OUT || SHOP NOW ||</span></b> 2409 </li><li aria-hidden="true"><b><span class="marquee-text" aria-hidden="true"> ð IT'S OUR BIRTHDAY! || BUY 1 GET 1 FREE IS LIVE SITEWIDE || DON'T MISS OUT || SHOP NOW ||</span></b> 2410 </li><li aria-hidden="true"><b><span class="marquee-text" aria-hidden="true"> ð IT'S OUR BIRTHDAY! || BUY 1 GET 1 FREE IS LIVE SITEWIDE || DON'T MISS OUT || SHOP NOW ||</span></b> 2411 </li><li aria-hidden="true"><b><span class="marquee-text" aria-hidden="true"> ð IT'S OUR BIRTHDAY! || BUY 1 GET 1 FREE IS LIVE SITEWIDE || DON'T MISS OUT || SHOP NOW ||</span></b> 2412 </li></ul></div> 2413</section> 2414
2415<script> 2416(function () { 2417 var el = document.getElementById('marquee-sections--34514167398653__marquee_U9KaXx'); 2418 if (!el) return; 2419 2420 /* ââ Pause while off-screen or in a hidden tab ââ 2421 An infinite transform animation keeps compositing even when nobody 2422 can see it. Pausing changes nothing visually. */ 2423 var onScreen = true; 2424 var pageVisible = !document.hidden; 2425 var hasIO = 'IntersectionObserver' in window; 2426 2427 function sync() { 2428 el.classList.toggle('is-paused', !(onScreen && pageVisible)); 2429 } 2430 2431 if (hasIO) { 2432 new IntersectionObserver(function (entries) { 2433 onScreen = entries[0].isIntersecting; 2434 sync(); 2435 }, { threshold: 0 }).observe(el); 2436 } 2437 document.addEventListener('visibilitychange', function () { 2438 pageVisible = !document.hidden; 2439 sync(); 2440 }); 2441 2442 2443 2444 2445})(); 2446</script>
2446 2447 2448<style> 2449 2450 2451#marquee-sections--34514167398653__marquee_U9KaXx.product-marquee-section { 2452 width: 100%; 2453 overflow: hidden; 2454 background: #FCF307; 2455 padding: 20px 0; 2456 /* An infinitely animating child cannot invalidate layout or paint 2457 outside this strip. It already clips, so nothing changes visually. */ 2458 contain: layout paint; 2459} 2460 2461#marquee-sections--34514167398653__marquee_U9KaXx .marquee-primary { 2462 --gap: 8px; 2463 display: flex; 2464 overflow: hidden; 2465 user-select: none; 2466 gap: var(--gap); 2467} 2468 2469#marquee-sections--34514167398653__marquee_U9KaXx .marquee__content { 2470 flex-shrink: 0; 2471 display: flex; 2472 align-items: center; 2473 gap: var(--gap); 2474 min-width: max-content; 2475 margin: 0; 2476 padding: 0; 2477 list-style: none; 2478 /* Duration scales with the repeat count so the Scroll Speed slider 2479 keeps meaning the same thing when you add copies. */ 2480 animation: scroll-sections--34514167398653__marquee_U9KaXx 350.0s linear infinite; 2481} 2482 2483#marquee-sections--34514167398653__marquee_U9KaXx .marquee__content li { 2484 display: flex; 2485 align-items: center; 2486 gap: 20px; 2487 /* Prevent the list item itself from wrapping â without this, leading/ 2488 trailing spaces in the text scroll correctly but the whole item can 2489 break to a new line, making the space appear as a visible indent. */ 2490 white-space: nowrap; 2491 flex-shrink: 0; 2492} 2493 2494/* .is-paused is toggled by the script above. */ 2495#marquee-sections--34514167398653__marquee_U9KaXx.is-paused .marquee__content, 2496#marquee-sections--34514167398653__marquee_U9KaXx.is-paused .wave-letter { 2497 animation-play-state: paused !important; 2498} 2499 2500/* The scroll honours reduced motion too â before, only the wave and the 2501 fade did. paused (not none) keeps layout identical. */ 2502@media (prefers-reduced-motion: reduce) { 2503 #marquee-sections--34514167398653__marquee_U9KaXx .marquee__content { 2504 animation-play-state: paused; 2505 } 2506} 2507 2508/* Full-sentence copy for assistive tech. With the wave on, the visible 2509 text is per-letter spans, which screen readers announce one character 2510 at a time â hence the decorative marking on the visible copy. */ 2511#marquee-sections--34514167398653__marquee_U9KaXx .marquee-sr-only { 2512 position: absolute; 2513 width: 1px; 2514 height: 1px; 2515 margin: -1px; 2516 padding: 0; 2517 overflow: hidden; 2518 clip: rect(0 0 0 0); 2519 white-space: nowrap; 2520 border: 0; 2521} 2522 2523#marquee-sections--34514167398653__marquee_U9KaXx .marquee-text { 2524 font-size: 22px; 2525 font-weight: 900; 2526 text-transform: uppercase; 2527 color: #000000; 2528 line-height: 1; 2529 /* Optical centring. line-height:1 makes the line box exactly the font 2530 size, but the baseline still sits with descender space reserved 2531 below it â and uppercase text has no descenders, so that space stays 2532 empty and the letters read as sitting high in the bar. The section's 2533 padding is symmetrical and cannot fix this; it moves both edges. 2534 inline-block is required: transform does nothing on an inline box, 2535 and this span is inline by default. */ 2536 display: inline-block; 2537 transform: translateY(0px); 2538 /* No per-letter spans in this mode: `pre` preserves runs of spaces the 2539 way the old spans did, and letter-spacing replaces the 2540 per-letter margin-right. */ 2541 white-space: pre; 2542 letter-spacing: 0px; 2543} 2544 2545#marquee-sections--34514167398653__marquee_U9KaXx .marquee-primary img { 2546 width: 200px; 2547 height: auto; 2548 display: block; 2549 object-fit: contain; 2550 flex-shrink: 0; 2551} 2552 2553/* Ends one --gap past its own width: .marquee-primary puts a gap between 2554 the two lists, so stopping at -100% left the row one gap short and 2555 showed a wide space once per cycle. Named per section because a global 2556 `scroll` would be shared by every marquee on the page. */ 2557@keyframes scroll-sections--34514167398653__marquee_U9KaXx { 2558 from { transform: translateX(0); } 2559 to { transform: translateX(calc(-100% - var(--gap))); } 2560} 2561 2562 2563 2564@media (max-width: 768px) { 2565 #marquee-sections--34514167398653__marquee_U9KaXx.product-marquee-section { 2566 padding: 18px 0; 2567 } 2568 2569 #marquee-sections--34514167398653__marquee_U9KaXx .marquee-text { 2570 font-size: 18px; 2571 transform: translateY(1px); 2572 letter-spacing: 0px; 2573 } 2574 2575 2576 2577 /* The keyframe reads --gap at run time, so the scroll distance follows 2578 this smaller value automatically â nothing else to change. */ 2579 #marquee-sections--34514167398653__marquee_U9KaXx .marquee-primary { 2580 --gap: 0px; 2581 } 2582 2583 #marquee-sections--34514167398653__marquee_U9KaXx .marquee__content li { 2584 gap: 12px; 2585 white-space: nowrap; 2586 flex-shrink: 0; 2587 } 2588 2589 #marquee-sections--34514167398653__marquee_U9KaXx .marquee-primary img { 2590 width: 90px; 2591 } 2592 2593 2594} 2595</style> 2596<style> #shopify-section-sections--34514167398653__marquee_U9KaXx .marquee-primary {margin: -14px 0px -18px;} #shopify-section-sections--34514167398653__marquee_U9KaXx .marquee-text {font-weight: 600; font-style: normal;} </style></div><div id="shopify-section-sections--34514167398653__header" class="shopify-section shopify-section-group-header-group section-header"><link rel="stylesheet" href="//www.soulflower.in/cdn/shop/t/140/assets/component-list-menu.css?v=151968516119678728991789808700" media="print" onload="this.media='all'"> 2597<link rel="stylesheet" href="//www.soulflower.in/cdn/shop/t/140/assets/component-search.css?v=165164710990765432851789808710" media="print" onload="this.media='all'"> 2598<link rel="stylesheet" href="//www.soulflower.in/cdn/shop/t/140/assets/component-menu-drawer.css?v=147478906057189667651789808703" media="print" onload="this.media='all'"> 2599<link 2600 rel="stylesheet" 2601 href="//www.soulflower.in/cdn/shop/t/140/assets/component-cart-notification.css?v=54116361853792938221789808696" 2602 media="print" 2603 onload="this.media='all'" 2604> 2605<style> 2606@import url('https://fonts.googleapis.com/css2?family=Google+Sans+Flex:opsz,[email protected],1..1000&display=swap'); 2607</style><link rel="stylesheet" href="//www.soulflower.in/cdn/shop/t/140/assets/component-price.css?v=183239114879007829841789808707" media="print" onload="this.media='all'"><link rel="stylesheet" href="//www.soulflower.in/cdn/shop/t/140/assets/component-mega-menu.css?v=10110889665867715061789808703" media="print" onload="this.media='all'"><style> 2608.header__icon--cart { 2609 position: relative; 2610} 2611/* âââ Hamburger icon margin based on offer presence âââ */ 2612.header--has-offer .header__icon--menu .icon { 2613 margin-right: 30px; 2614} 2615.header:not(.header--has-offer) .header__icon--menu .icon { 2616 margin-right: 0; 2617} 2618.cart-count { 2619 position: absolute; 2620 top: -2px; 2621 right: 0px; 2622 background: #000; 2623 color: #fff; 2624 font-size: 10px; 2625 padding: 4px 6px !important; 2626 border-radius: 50%; 2627 line-height: 1; 2628} 2629a#cart-icon-bubble span { 2630 height: auto; 2631}
2632/* ===== RIGHT SIDE ICONS ===== */ 2633.header__icons { 2634 display: flex; 2635 align-items: center; 2636 gap: 8px; 2637} 2638.header__icon { 2639 display: inline-flex !important; 2640 align-items: center; 2641 justify-content: center; 2642 margin: 0 !important; 2643 width: 40px; 2644 height: 40px; 2645 position: relative; 2646} 2647/* Ensure the offer dropdown panel can escape the icons row */ 2648.header__icons { 2649 overflow: visible !important; 2650} 2651.header__icon svg, 2652.header__icon .svg-wrapper svg { 2653 width: 22px; 2654 height: 22px; 2655} 2656#cart-icon-bubble { 2657 margin: 0 !important; 2658} 2659/* Mobile: smaller icons */ 2660@media screen and (max-width: 749px) { 2661 .header__icons { 2662 gap: clamp(2px, 1vw, 4px); 2663 } 2664 .header__icon { 2665 padding: 4px; 2666 width: clamp(30px, 8vw, 36px); 2667 height: clamp(30px, 8vw, 36px); 2668 } 2669 .header__icon svg, 2670 .header__icon .svg-wrapper svg { 2671 width: 20px; 2672 height: 20px; 2673 } 2674} 2675/* âââââââââââââââââââââââââââââââââââââââââââââ 2676 OFFER BAR LAYOUT 2677 Mobile : full-width pill row BELOW the header row 2678 [â° Logo ððð¤] 2679 [ Offer ] â second row 2680 Desktop: pill button inside icon row, right of nav 2681 âââââââââââââââââââââââââââââââââââââââââââââ */ 2682/* Mobile: single row â [Logo] [Offer] [Icons] 2683 1fr auto 1fr keeps offer perfectly centred and lets logo/icons flex. 2684 Only applied when the offer_dropdown block is present (header--has-offer class) */ 2685@media screen and (max-width: 749px) { 2686 .header--has-offer { 2687 display: grid !important; 2688 grid-template-columns: 1fr auto 1fr; 2689 grid-template-areas: "logo offer icons"; 2690 align-items: center; 2691 width: 100%; 2692 box-sizing: border-box; 2693 } 2694 /* Left: hamburger + logo, left-aligned */ 2695 .header--has-offer > header-drawer, 2696 .header--has-offer > .header__heading, 2697 .header--has-offer > .header__heading-link { 2698 grid-area: logo; 2699 justify-self: start; 2700 display: flex; 2701 align-items: center; 2702 min-width: 0; 2703 overflow: visible; 2704 } 2705 /* Centre: Offer pill â true-centre */ 2706 .header--has-offer > .header-offer-slot { 2707 grid-area: offer; 2708 justify-self: center; 2709 display: inline-flex !important; 2710 align-items: center; 2711 justify-content: center; 2712 min-width: 0; 2713 } 2714 /* Right: search + cart + account, right-aligned */ 2715 .header--has-offer > .header__icons { 2716 grid-area: icons; 2717 justify-self: end; 2718 min-width: 0; 2719 } 2720 /* Hide desktop copy on mobile */ 2721 .header-offer-dropdown--desktop { display: none !important; } 2722} 2723/* Desktop: hide mobile offer slot, show desktop copy inside header__icons */ 2724@media screen and (min-width: 750px) { 2725 .header-offer-slot { display: none !important; } 2726 .header-offer-dropdown--desktop { display: inline-flex !important; } 2727} 2728/* ===== REMOVE BLACK OVERLINE/BORDER ===== */ 2729.header-wrapper { 2730 border-top: none !important; 2731} 2732.header-wrapper--border-bottom { 2733 border-bottom: none !important; 2734} 2735.section-header { 2736 border-top: none !important; 2737 border-bottom: none !important; 2738} 2739.header { 2740 border-top: none !important; 2741 border-bottom: none !important; 2742} 2743header-drawer { 2744 justify-self: start; 2745 margin-left: -1.2rem; 2746} 2747@media screen and (max-width: 749px) { 2748 .header--has-offer > header-drawer { 2749 margin-left: 0; 2750 } 2751}@media screen and (min-width: 990px) { 2752 header-drawer { 2753 display: none; 2754 } 2755 }.menu-drawer-container { 2756 display: flex; 2757} 2758.list-menu { 2759 list-style: none; 2760 padding: 0; 2761 margin: 0; 2762} 2763.list-menu--inline { 2764 display: inline-flex; 2765 flex-wrap: wrap; 2766} 2767summary.list-menu__item { 2768 padding-right: 2.7rem; 2769} 2770.list-menu__item { 2771 display: flex; 2772 align-items: center; 2773 line-height: calc(1 + 0.3 / var(--font-body-scale)); 2774} 2775.list-menu__item--link { 2776 text-decoration: none; 2777 padding-bottom: 1rem; 2778 padding-top: 1rem; 2779 line-height: calc(1 + 0.8 / var(--font-body-scale)); 2780} 2781@media screen and (min-width: 750px) { 2782 .list-menu__item--link { 2783 padding-bottom: 0.5rem; 2784 padding-top: 0.5rem; 2785 } 2786} 2787/* âââ Offer Dropdown âââ */ 2788.header-offer-slot { 2789 display: none; /* shown via media query */ 2790} 2791.header-offer-dropdown { 2792 position: relative; 2793 display: inline-flex; 2794 align-items: center; 2795} 2796/* Trigger pill â plain link or dropdown button, same visual */ 2797.header-offer-dropdown__trigger { 2798 display: inline-flex; 2799 align-items: center; 2800 justify-content: center; 2801 gap: 5px; 2802 background: #c084fc; 2803 color: #fff; 2804 border: none; 2805 cursor: pointer; 2806 font-size: 1.4rem; 2807 font-family: inherit; 2808 font-weight: 700; 2809 padding: 7px 18px; 2810 border-radius: 999px; 2811 white-space: nowrap; 2812 text-decoration: none; 2813 transition: background .15s ease, transform .1s ease; 2814 line-height: 1.2; 2815 letter-spacing: 0.01em; 2816} 2817.header-offer-dropdown__trigger:hover { 2818 background: #a855f7; 2819 transform: scale(1.03); 2820} 2821.header-offer-dropdown__trigger:active { 2822 transform: scale(0.97); 2823} 2824/* Mobile pill: compact, scales down on narrow screens (Z Fold etc.) */ 2825@media screen and (max-width: 749px) { 2826 .header-offer-dropdown__trigger { 2827 font-size: clamp(1.3rem, 3vw, 1.4rem); 2828 padding: 6px clamp(14px, 2.5vw, 16px); 2829 width: auto; 2830 white-space: nowrap; 2831 } 2832} 2833.header-offer-dropdown__menu { 2834 position: absolute; 2835 top: calc(100% + 8px); 2836 left: 50%; 2837 transform: translateX(-50%) translateY(-6px); 2838 min-width: 180px; 2839 background: #fff; 2840 border: 1px solid rgba(0,0,0,0.08); 2841 border-radius: 12px; 2842 box-shadow: 0 8px 24px rgba(0,0,0,0.10); 2843 list-style: none; 2844 margin: 0; 2845 padding: 6px; 2846 z-index: 2147483647; 2847 opacity: 0; 2848 transition: opacity .15s ease, transform .15s ease; 2849} 2850.header-offer-dropdown__menu.is-open { 2851 opacity: 1; 2852 transform: translateX(-50%) translateY(0); 2853} 2854.header-offer-dropdown__item { 2855 display: block; 2856 padding: 9px 14px; 2857 border-radius: 8px; 2858 font-size: 1.4rem; 2859 font-weight: 500; 2860 color: #1a1a1a; 2861 text-decoration: none; 2862 white-space: nowrap; 2863 transition: background .12s ease, color .12s ease; 2864} 2865.header-offer-dropdown__item:hover, 2866.header-offer-dropdown__item[aria-current="page"] { 2867 background: rgba(0,0,0,0.05); 2868 color: #000; 2869} 2870/* âââ Offer button attention animations âââ */ 2871@keyframes offer-pulse { 2872 0%, 100% { box-shadow: 0 0 0 0 rgba(192, 132, 252, 0.6); } 2873 50% { box-shadow: 0 0 0 8px rgba(192, 132, 252, 0); } 2874} 2875@keyframes offer-wiggle { 2876 0%, 100% { transform: rotate(0deg) scale(1); } 2877 15% { transform: rotate(-4deg) scale(1.06); } 2878 30% { transform: rotate(4deg) scale(1.06); } 2879 45% { transform: rotate(-3deg) scale(1.04); } 2880 60% { transform: rotate(3deg) scale(1.04); } 2881 75% { transform: rotate(-1deg) scale(1.02); } 2882} 2883@keyframes offer-shimmer { 2884 0% { background-position: -200% center; } 2885 100% { background-position: 200% center; } 2886} 2887.header-offer-dropdown__trigger { 2888 animation: offer-pulse 2s ease-in-out infinite, 2889 offer-wiggle 4s ease-in-out 1s infinite; 2890 background: linear-gradient( 2891 90deg, 2892 #c084fc 0%, 2893 #e879f9 40%, 2894 #c084fc 60%, 2895 #a855f7 100% 2896 ) !important; 2897 background-size: 200% auto !important; 2898} 2899.header-offer-dropdown__trigger:hover { 2900 animation: offer-shimmer 0.8s linear infinite; 2901 background: linear-gradient( 2902 90deg, 2903 #c084fc 0%, 2904 #e879f9 40%, 2905 #c084fc 60%, 2906 #a855f7 100% 2907 ) !important; 2908 background-size: 200% auto !important; 2909 transform: scale(1.05) !important; 2910} 2911/* âââ Offer Dropdown: Mobile â full-width panel âââ */ 2912@media screen and (max-width: 749px) { 2913 /* Panel: break out of the centre grid cell, stretch full viewport width */ 2914 .header-offer-dropdown__menu { 2915 position: fixed; /* escape any overflow:hidden ancestors */ 2916 top: auto; /* detach from button â we anchor with JS below */ 2917 left: 12px; 2918 right: 12px; 2919 width: calc(100vw - 24px); 2920 max-width: none; 2921 transform: translateY(-6px); 2922 border-radius: 16px; 2923 padding: 8px; 2924 } 2925 .header-offer-dropdown__menu.is-open { 2926 transform: translateY(0); 2927 } 2928 .header-offer-dropdown__item { 2929 padding: 13px 18px; 2930 font-size: 1.5rem; 2931 border-radius: 10px; 2932 } 2933} 2934/* âââ Offer Dropdown: Tablet âââ */ 2935@media screen and (min-width: 750px) and (max-width: 989px) { 2936 .header-offer-dropdown__menu { 2937 max-width: min(260px, 90vw); 2938 } 2939} 2940 2941/* ========================================================= 2942 LOGO + DONATION TEXT SIDE-BY-SIDE (matches your screenshot) 2943 ========================================================= */ 2944.menu-drawer__footer, 2945.drawer__footer, 2946.menu-drawer .footer-block, 2947.menu-drawer [class*="goli-footer"], 2948.menu-drawer .menu-drawer__utility-links + div, 2949.menu-drawer .menu-drawer__footer { 2950 display: flex !important; 2951 gap: 6px !important; 2952 padding: 14px 16px !important; 2953 background: #FF2896 !important; /* teal from screenshot */ 2954 color: #fff !important; 2955 border-top: none !important; 2956} 2957 2958/* Logo (left side) */ 2959.menu-drawer__footer .logo, 2960.menu-drawer__footer img, 2961.menu-drawer__footer .header__heading-logo-wrapper, 2962.menu-drawer__footer svg, 2963.menu-drawer__footer .goli-logo { 2964 flex-shrink: 0 !important; 2965 max-width: 150px !important; 2966 width: auto !important; 2967 height: auto !important; 2968 margin: 0 !important; 2969} 2970 2971/* Donation text (right side) */ 2972.menu-drawer__footer .text, 2973.menu-drawer__footer p, 2974.menu-drawer__footer .donation-text, 2975.menu-drawer__footer .footer-text { 2976 flex: 1 1 auto !important; 2977 font-size: 13px !important; 2978 line-height: 1.45 !important; 2979 margin: 0 !important; 2980 border-left: 1px solid rgba(255,255,255,0.7) !important; /* white vertical line */ 2981 padding-left: 16px !important; 2982 color: #fff !important; 2983} 2984 2985/* Very small phones â keep readable */ 2986@media screen and (max-width: 360px) { 2987 .menu-drawer__footer { 2988 flex-direction: column !important; 2989 gap: 12px !important; 2990 } 2991 .menu-drawer__footer .text, 2992 .menu-drawer__footer p, 2993 .menu-drawer__footer .donation-text { 2994 border-left: none !important; 2995 padding-left: 0 !important; 2996 } 2997} 2998</style><style data-shopify>.header { 2999 padding: 4px 1.5rem 4px 1.5rem; 3000 } 3001 .header-wrapper { 3002 width: 100%; 3003 max-width: 100%; 3004 box-sizing: border-box; 3005 } 3006 .section-header { 3007 position: sticky; 3008 margin-bottom: 0px; 3009 width: 100%; 3010 max-width: 100%; 3011 } 3012 @media screen and (max-width: 749px) { 3013 .header { 3014 padding-left: clamp(2rem, 4vw, 2.5rem); 3015 padding-right: clamp(0.5rem, 1.5vw, 0.75rem); 3016 } 3017 } 3018 @media screen and (min-width: 750px) { 3019 .section-header { 3020 margin-bottom: 0px; 3021 } 3022 } 3023 @media screen and (min-width: 990px) { 3024 .header { 3025 padding-top: 8px; 3026 padding-bottom: 8px; 3027 padding-left: 3rem; 3028 padding-right: 3rem; 3029 } 3030 }</style>
3030<script src="//www.soulflower.in/cdn/shop/t/140/assets/cart-notification.js?v=133508293167896966491789808691" defer="defer"></script>
3030 3031 3032<sticky-header 3033 3034 data-sticky-type="always" 3035 3036 class="header-wrapper color-scheme-1 gradient" 3037><header class="header header--middle-left header--mobile-center page-width header--has-menu header--has-social header--has-account">
3038<script> 3039function autoLogin (){ 3040 document.getElementById('kwik-pass-text').textContent = "Account"; 3041 document.getElementById('kwik-pass-text2').textContent = "Account"; 3042} 3043 3044window.addEventListener('user-loggedin', function(event) { 3045 const { token } = event?.detail; 3046 if (token){ 3047 autoLogin(); 3048 } 3049}); 3050 3051document.addEventListener('DOMContentLoaded',function () { 3052 var userToken = localStorage.getItem('KWIKSESSIONTOKEN'); 3053 if (userToken){ 3054 autoLogin(); 3055 } 3056}) 3057</script>
3057 3058 3059 3060<header-drawer data-breakpoint="tablet"> 3061<details id="Details-menu-drawer-container" class="menu-drawer-container"> 3062 3063<summary class="header__icon header__icon--menu header__icon--summary link focus-inset"> 3064<span> 3065<svg 3066 xmlns="http://www.w3.org/2000/svg" 3067 fill="none" 3068 class="icon icon-hamburger" 3069 viewBox="0 0 25 24" 3070> 3071 <g transform="translate(12.5 12) scale(1.15) translate(-12.5 -12)"> 3072 <path 3073 fill-rule="evenodd" 3074 clip-rule="evenodd" 3075 d="M23.4872 6.30094H2.67578V4.90182H23.4872V6.30094Z" 3076 fill="currentColor" 3077 /> 3078 <path 3079 fill-rule="evenodd" 3080 clip-rule="evenodd" 3081 d="M14.9644 12.7H2.67578V11.3009H14.9644V12.7Z" 3082 fill="currentColor" 3083 /> 3084 <path 3085 fill-rule="evenodd" 3086 clip-rule="evenodd" 3087 d="M23.4871 12.7H17.3428V11.3009H23.4871V12.7Z" 3088 fill="currentColor" 3089 /> 3090 <path 3091 fill-rule="evenodd" 3092 clip-rule="evenodd" 3093 d="M23.4872 19.0992H2.67578V17.7H23.4872V19.0992Z" 3094 fill="currentColor" 3095 /> 3096 </g> 3097</svg> 3098 3099<svg 3100 xmlns="http://www.w3.org/2000/svg" 3101 fill="none" 3102 class="icon icon-close" 3103 viewBox="0 0 25 26" 3104> 3105 <g transform="translate(12.5 13) scale(1.7) translate(-12.5 -13)"> 3106 <path 3107 d="M18.1664 17.6617L13.7173 13.2126L12.5389 14.391L16.988 18.8401L18.1664 17.6617Z" 3108 fill="currentColor" 3109 /> 3110 <path 3111 d="M12.5488 12.0456L8.10938 7.6062L6.93098 8.7846L11.3704 13.224L12.5488 12.0456Z" 3112 fill="currentColor" 3113 /> 3114 <path 3115 d="M7.91455 18.9961L12.5186 14.3921L11.3798 13.2533L6.77581 17.8573L7.91455 18.9961Z" 3116 fill="currentColor" 3117 /> 3118 <path 3119 d="M13.7273 13.1831L18.3213 8.58911L17.1825 7.45036L12.5886 12.0443L13.7273 13.1831Z" 3120 fill="currentColor" 3121 /> 3122 </g> 3123</svg> 3124 3125</span> 3126</summary> 3127 3128<div id="menu-drawer" class="gradient menu-drawer motion-reduce color-scheme-1"> 3129<div class="menu-drawer__inner-container"> 3130<div class="menu-drawer__navigation-container mobile-tabbing-drawer"> 3131 3132<!-- TABS --> 3133<div class="menu-drawer__tabs"> 3134 <button type="button" class="menu-drawer__tab-btn is-active" data-tab="shop">Shop</button> 3135 <button type="button" class="menu-drawer__tab-btn" data-tab="learn">Learn</button> 3136</div> 3137 3138<!-- ================= SHOP MENU ================= --> 3139<div id="menu-drawer-shop" class="menu-drawer__content"> 3140<nav class="menu-drawer__navigation"> 3141 3142 3143 3144 3145 3146<ul class="menu-drawer__menu list-menu" role="list"><li> 3147 3148 3149 3150<details class="mobile-dropdown" 3151 3152 open 3153 3154> 3155 3156<summary class="menu-drawer__menu-item list-menu__item link link--text focus-inset"> 3157<!-- The Hipelement -- Menu icons -- Hair Concerns for example --><span class="menu-text"> 3158 Shop 3159</span> 3160 3161<span class="accordion-icon"></span> 3162</summary> 3163 3164<ul class="menu-drawer__menu list-menu"> 3165 3166 3167<li> 3168 3169 3170 3171<details class="mobile-dropdown-child" 3172 3173 open 3174 3175> 3176 3177<summary class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 3178<!-- The Hipelement -- Menu icons -- Hair Concerns for example --><span class="menu-text"> 3179 Favourites 3180</span> 3181 3182<span class="accordion-icon"></span> 3183</summary> 3184 3185<ul class="menu-drawer__menu list-menu"> 3186 3187 3188<li> 3189<a href="/collections/best-sellers" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 3190<!-- The Hipelement -- Menu icons -- Hair Concerns for example --><span class="menu-text"> 3191 Bestsellers 3192</span> 3193 3194</a> 3195</li> 3196 3197<li> 3198<a href="/collections/bundle-collection" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 3199<!-- The Hipelement -- Menu icons -- Hair Concerns for example --><span class="menu-text"> 3200 Hair Routines 3201</span> 3202 3203</a> 3204</li> 3205 3206<li> 3207<a href="/collections/vitamin-c" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 3208<!-- The Hipelement -- Menu icons -- Hair Concerns for example --><span class="menu-text"> 3209 Skin Care 3210</span> 3211 3212</a> 3213</li> 3214 3215<li> 3216<a href="/collections/new-launches" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 3217<!-- The Hipelement -- Menu icons -- Hair Concerns for example --><span class="menu-text"> 3218 New Launch 3219</span> 3220 3221</a> 3222</li> 3223 3224<li> 3225<a href="/collections/rosemary" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 3226<!-- The Hipelement -- Menu icons -- Hair Concerns for example --><span class="menu-text"> 3227 Rosemary Hair Growth Treatment 3228</span> 3229 3230</a> 3231</li> 3232 3233<li> 3234<a href="/collections/mens-bestseller" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 3235<!-- The Hipelement -- Menu icons -- Hair Concerns for example --><span class="menu-text"> 3236 Men's Bestseller 3237</span> 3238 3239</a> 3240</li> 3241 3242<li> 3243<a href="/collections/steal-deal" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 3244<!-- The Hipelement -- Menu icons -- Hair Concerns for example --><span class="menu-text"> 3245 Steal Deals 3246</span> 3247 3248</a> 3249</li> 3250 3251 3252</ul> 3253</details> 3254 3255 3256 3257</li> 3258 3259<li> 3260 3261 3262 3263<details class="mobile-dropdown-child" 3264 3265 open 3266 3267> 3268 3269<summary class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 3270<!-- The Hipelement -- Menu icons -- Hair Concerns for example --><span class="menu-text"> 3271 Shop by Product 3272</span> 3273 3274<span class="accordion-icon"></span> 3275</summary> 3276 3277<ul class="menu-drawer__menu list-menu"> 3278 3279 3280<li> 3281<a href="/collections/shampoo-conditioner" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 3282<!-- The Hipelement -- Menu icons -- Hair Concerns for example --><span class="menu-text"> 3283 Shampoo + Conditioner 3284</span> 3285 3286</a> 3287</li> 3288 3289<li> 3290<a href="/collections/hair-oils" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 3291<!-- The Hipelement -- Menu icons -- Hair Concerns for example --><span class="menu-text"> 3292 Hair Oils 3293</span> 3294 3295</a> 3296</li> 3297 3298<li> 3299<a href="/collections/soaps" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 3300<!-- The Hipelement -- Menu icons -- Hair Concerns for example --><span class="menu-text"> 3301 Glow Soaps 3302</span> 3303 3304</a> 3305</li> 3306 3307<li> 3308<a href="/collections/serum-treatments" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 3309<!-- The Hipelement -- Menu icons -- Hair Concerns for example --><span class="menu-text"> 3310 Serum Treatments 3311</span> 3312 3313</a> 3314</li> 3315 3316<li> 3317<a href="/collections/essential-oils" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 3318<!-- The Hipelement -- Menu icons -- Hair Concerns for example --><span class="menu-text"> 3319 Essential Oils 3320</span> 3321 3322</a> 3323</li> 3324 3325<li> 3326<a href="/collections/aromatherapy" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 3327<!-- The Hipelement -- Menu icons -- Hair Concerns for example --><span class="menu-text"> 3328 Home & Aroma 3329</span> 3330 3331</a> 3332</li> 3333 3334<li> 3335<a href="/collections/everyday-hair-growth-essentials" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 3336<!-- The Hipelement -- Menu icons -- Hair Concerns for example --><span class="menu-text"> 3337 Hair Growth - Singles 3338</span> 3339 3340</a> 3341</li> 3342 3343<li> 3344<a href="/collections/advanced-hair-growth-routines" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 3345<!-- The Hipelement -- Menu icons -- Hair Concerns for example --><span class="menu-text"> 3346 Hair Growth - Combos 3347</span> 3348 3349</a> 3350</li> 3351 3352<li> 3353<a href="/collections/gifting" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 3354<!-- The Hipelement -- Menu icons -- Hair Concerns for example --><span class="menu-text"> 3355 Gifting 3356</span> 3357 3358</a> 3359</li> 3360 3361 3362</ul> 3363</details> 3364 3365 3366 3367</li> 3368 3369<li> 3370 3371 3372 3373<details class="mobile-dropdown-child" 3374 3375> 3376 3377<summary class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 3378<!-- The Hipelement -- Menu icons -- Hair Concerns for example --><span class="menu-text"> 3379 Hair Concern 3380</span> 3381 3382<span class="accordion-icon"></span> 3383</summary> 3384 3385<ul class="menu-drawer__menu list-menu"> 3386 3387 3388<li> 3389<a href="/collections/hairfall-growth" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 3390<!-- The Hipelement -- Menu icons -- Hair Concerns for example --><span class="menu-icon"> 3391 <svg width="25" height="21" viewBox="0 0 25 21" fill="none" xmlns="http://www.w3.org/2000/svg"> 3392<path d="M24.998 19.7174H0V20.5279H24.998V19.7174Z" fill="#E61A4F"/> 3393<path d="M24.998 13.1443H0V13.9549H24.998V13.1443Z" fill="#E61A4F"/> 3394<path d="M11.0229 6.5733H0V7.38381H11.0229V6.5733Z" fill="#E61A4F"/> 3395<path d="M24.998 6.5733H13.9751V7.38381H24.998V6.5733Z" fill="#E61A4F"/> 3396<path d="M6.31788 0H0V0.810504H6.31788V0Z" fill="#E61A4F"/> 3397<path d="M15.6589 0H9.341V0.810504H15.6589V0Z" fill="#E61A4F"/> 3398<path d="M24.9999 0H18.6821V0.810504H24.9999V0Z" fill="#E61A4F"/> 3399</svg> 3400 3401 </span><span class="menu-text"> 3402 Hairfall & Growth 3403</span> 3404 3405</a> 3406</li> 3407 3408<li> 3409<a href="/collections/fights-dandruff" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 3410<!-- The Hipelement -- Menu icons -- Hair Concerns for example --><span class="menu-icon">
3411 <svg width="25" height="27" viewBox="0 0 25 27" fill="none" xmlns="http://www.w3.org/2000/svg"> 3412<path d="M25 26.054C17.8172 26.054 11.973 20.2097 11.973 13.027C11.973 5.84422 17.8172 0 25 0V1.05396C18.3996 1.05396 13.027 6.4239 13.027 13.027C13.027 19.6301 18.3969 25 25 25V26.054Z" fill="#5B9AC5"/> 3413<path d="M25 21.6827C20.2282 21.6827 16.3444 17.7988 16.3444 13.027C16.3444 8.25519 20.2282 4.37134 25 4.37134V5.4253C20.8079 5.4253 17.3983 8.83487 17.3983 13.027C17.3983 17.2191 20.8079 20.6287 25 20.6287V21.6827Z" fill="#5B9AC5"/> 3414<path d="M25 17.4589C22.5575 17.4589 20.5681 15.4722 20.5681 13.027C20.5681 10.5818 22.5548 8.59509 25 8.59509V9.64906C23.1372 9.64906 21.6221 11.1641 21.6221 13.027C21.6221 14.8899 23.1372 16.405 25 16.405V17.4589Z" fill="#5B9AC5"/> 3415<path d="M25 26.054C17.8172 26.054 11.973 20.2097 11.973 13.027C11.973 5.84422 17.8172 0 25 0V1.05396C18.3996 1.05396 13.027 6.4239 13.027 13.027C13.027 19.6301 18.3969 25 25 25V26.054Z" fill="#5B9AC5"/> 3416<path d="M25 21.6827C20.2282 21.6827 16.3444 17.7988 16.3444 13.027C16.3444 8.25519 20.2282 4.37134 25 4.37134V5.4253C20.8079 5.4253 17.3983 8.83487 17.3983 13.027C17.3983 17.2191 20.8079 20.6287 25 20.6287V21.6827Z" fill="#5B9AC5"/> 3417<path d="M25 17.4589C22.5575 17.4589 20.5681 15.4722 20.5681 13.027C20.5681 10.5818 22.5548 8.59509 25 8.59509V9.64906C23.1372 9.64906 21.6221 11.1641 21.6221 13.027C21.6221 14.8899 23.1372 16.405 25 16.405V17.4589Z" fill="#5B9AC5"/> 3418<path d="M0 26.054V25C6.60044 25 11.973 19.63 11.973 13.027C11.973 6.42389 6.60308 1.05395 0 1.05395V0.00262451C7.18276 0.00262451 13.027 5.84685 13.027 13.0296C13.027 20.2124 7.18276 26.0566 0 26.0566V26.054Z" fill="#5B9AC5"/> 3419<path d="M0 21.6827V20.6287C4.19214 20.6287 7.60172 17.2191 7.60172 13.027C7.60172 8.83487 4.19214 5.4253 0 5.4253V4.37134C4.77182 4.37134 8.65568 8.25519 8.65568 13.027C8.65568 17.7988 4.77182 21.6827 0 21.6827Z" fill="#5B9AC5"/> 3420<path d="M0 17.4589V16.405C1.86288 16.405 3.37795 14.8899 3.37795 13.027C3.37795 11.1641 1.86288 9.64906 0 9.64906V8.59509C2.44256 8.59509 4.43192 10.5818 4.43192 13.027C4.43192 15.4722 2.44519 17.4589 0 17.4589Z" fill="#5B9AC5"/> 3421<path d="M0 26.054V25C6.60044 25 11.973 19.63 11.973 13.027C11.973 6.42389 6.60308 1.05395 0 1.05395V0.00262451C7.18276 0.00262451 13.027 5.84685 13.027 13.0296C13.027 20.2124 7.18276 26.0566 0 26.0566V26.054Z" fill="#5B9AC5"/> 3422<path d="M0 21.6827V20.6287C4.19214 20.6287 7.60172 17.2191 7.60172 13.027C7.60172 8.83487 4.19214 5.4253 0 5.4253V4.37134C4.77182 4.37134 8.65568 8.25519 8.65568 13.027C8.65568 17.7988 4.77182 21.6827 0 21.6827Z" fill="#5B9AC5"/> 3423<path d="M0 17.4589V16.405C1.86288 16.405 3.37795 14.8899 3.37795 13.027C3.37795 11.1641 1.86288 9.64906 0 9.64906V8.59509C2.44256 8.59509 4.43192 10.5818 4.43192 13.027C4.43192 15.4722 2.44519 17.4589 0 17.4589Z" fill="#5B9AC5"/> 3424</svg> 3425 3426 </span><span class="menu-text"> 3427 Dandruff 3428</span> 3429 3430</a> 3431</li> 3432 3433<li> 3434<a href="/collections/fights-dry-scalp" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 3435<!-- The Hipelement -- Menu icons -- Hair Concerns for example --><span class="menu-icon"> 3436 <svg width="25" height="21" viewBox="0 0 25 21" fill="none" xmlns="http://www.w3.org/2000/svg"> 3437<path d="M25 12.5H24.22C24.22 6.03744 18.9626 0.780032 12.5 0.780032C6.03744 0.780032 0.780032 6.03744 0.780032 12.5H0C0 5.60843 5.60647 0 12.5 0C19.3935 0 25 5.60648 25 12.5Z" fill="#B8C5D6"/> 3438<path d="M16.6731 12.5H15.8931C15.8931 10.6298 14.372 9.10681 12.5 9.10681C10.6279 9.10681 9.10681 10.6279 9.10681 12.5H8.32678C8.32678 10.1989 10.1989 8.32678 12.5 8.32678C14.801 8.32678 16.6731 10.1989 16.6731 12.5Z" fill="#B8C5D6"/> 3439<path d="M20.7664 12.5H19.9864C19.9864 8.3736 16.6283 5.01557 12.502 5.01557C8.37562 5.01557 5.01758 8.3736 5.01758 12.5H4.23755C4.23755 7.94263 7.94465 4.23553 12.502 4.23553C17.0593 4.23553 20.7664 7.94263 20.7664 12.5Z" fill="#B8C5D6"/> 3440<path d="M24.53 15.8016H0.471863V16.5816H24.53V15.8016Z" fill="#B8C5D6"/> 3441<path d="M24.53 19.493H0.471863V20.273H24.53V19.493Z" fill="#B8C5D6"/> 3442</svg> 3443 3444 </span><span class="menu-text"> 3445 Dry Scalp 3446</span> 3447 3448</a> 3449</li> 3450 3451<li> 3452<a href="/collections/frizzy-hair" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 3453<!-- The Hipelement -- Menu icons -- Hair Concerns for example --><span class="menu-icon"> 3454 <svg width="25" height="21" viewBox="0 0 25 21" fill="none" xmlns="http://www.w3.org/2000/svg"> 3455<path d="M24.7225 20.1435H0.277344V20.9361H24.7225V20.1435Z" fill="#EB80A8"/> 3456<path d="M12.497 3.4834L10.0539 1.10565L7.61076 3.4834L5.16565 1.10565L2.72252 3.4834L0 0.836173L0.552824 0.269478L2.72252 2.37774L5.16565 0L7.61076 2.37774L10.0539 0L12.497 2.37774L14.9421 0L17.3873 2.37774L19.8304 0L22.2775 2.37774L24.4472 0.269478L25 0.836173L22.2775 3.4834L19.8324
34561.10565L17.3873 3.4834L14.9421 1.10565L12.497 3.4834Z" fill="#EB80A8"/> 3457<path d="M12.499 9.65557L8.42514 7.27783L4.35127 9.65557L0.0772705 7.16092L0.477525 6.47732L4.35127 8.73816L8.42514 6.36041L12.499 8.73816L16.5729 6.36041L20.6487 8.73816L24.5225 6.47732L24.9227 7.16092L20.6487 9.65557L16.5729 7.27783L12.499 9.65557Z" fill="#EB80A8"/> 3458<path d="M12.499 15.281L8.42514 14.0921L4.35127 15.281L0.166443 14.0604L0.388368 13.2996L4.35127 14.4547L8.42514 13.2659L12.499 14.4547L16.5729 13.2659L20.6487 14.4547L24.6116 13.2996L24.8336 14.0604L20.6487 15.281L16.5729 14.0921L12.499 15.281Z" fill="#EB80A8"/> 3459</svg> 3460 3461 </span><span class="menu-text"> 3462 Frizzy Hair 3463</span> 3464 3465</a> 3466</li> 3467 3468 3469</ul> 3470</details> 3471 3472 3473 3474</li> 3475 3476<li> 3477 3478 3479 3480<details class="mobile-dropdown-child" 3481 3482> 3483 3484<summary class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 3485<!-- The Hipelement -- Menu icons -- Hair Concerns for example --><span class="menu-text"> 3486 Skin Concern 3487</span> 3488 3489<span class="accordion-icon"></span> 3490</summary> 3491 3492<ul class="menu-drawer__menu list-menu"> 3493 3494 3495<li> 3496<a href="/collections/controls-acne" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 3497<!-- The Hipelement -- Menu icons -- Hair Concerns for example --><span class="menu-icon"> 3498 <svg width="25" height="27" viewBox="0 0 25 27" fill="none" xmlns="http://www.w3.org/2000/svg"> 3499<path d="M25 26.054C17.8172 26.054 11.973 20.2097 11.973 13.027C11.973 5.84422 17.8172 0 25 0V1.05396C18.3996 1.05396 13.027 6.4239 13.027 13.027C13.027 19.6301 18.3969 25 25 25V26.054Z" fill="#5B9AC5"/> 3500<path d="M25 21.6827C20.2282 21.6827 16.3444 17.7988 16.3444 13.027C16.3444 8.25519 20.2282 4.37134 25 4.37134V5.4253C20.8079 5.4253 17.3983 8.83487 17.3983 13.027C17.3983 17.2191 20.8079 20.6287 25 20.6287V21.6827Z" fill="#5B9AC5"/> 3501<path d="M25 17.4589C22.5575 17.4589 20.5681 15.4722 20.5681 13.027C20.5681 10.5818 22.5548 8.59509 25 8.59509V9.64906C23.1372 9.64906 21.6221 11.1641 21.6221 13.027C21.6221 14.8899 23.1372 16.405 25 16.405V17.4589Z" fill="#5B9AC5"/> 3502<path d="M25 26.054C17.8172 26.054 11.973 20.2097 11.973 13.027C11.973 5.84422 17.8172 0 25 0V1.05396C18.3996 1.05396 13.027 6.4239 13.027 13.027C13.027 19.6301 18.3969 25 25 25V26.054Z" fill="#5B9AC5"/> 3503<path d="M25 21.6827C20.2282 21.6827 16.3444 17.7988 16.3444 13.027C16.3444 8.25519 20.2282 4.37134 25 4.37134V5.4253C20.8079 5.4253 17.3983 8.83487 17.3983 13.027C17.3983 17.2191 20.8079 20.6287 25 20.6287V21.6827Z" fill="#5B9AC5"/> 3504<path d="M25 17.4589C22.5575 17.4589 20.5681 15.4722 20.5681 13.027C20.5681 10.5818 22.5548 8.59509 25 8.59509V9.64906C23.1372 9.64906 21.6221 11.1641 21.6221 13.027C21.6221 14.8899 23.1372 16.405 25 16.405V17.4589Z" fill="#5B9AC5"/> 3505<path d="M0 26.054V25C6.60044 25 11.973 19.63 11.973 13.027C11.973 6.42389 6.60308 1.05395 0 1.05395V0.00262451C7.18276 0.00262451 13.027 5.84685 13.027 13.0296C13.027 20.2124 7.18276 26.0566 0 26.0566V26.054Z" fill="#5B9AC5"/> 3506<path d="M0 21.6827V20.6287C4.19214 20.6287 7.60172 17.2191 7.60172 13.027C7.60172 8.83487 4.19214 5.4253 0 5.4253V4.37134C4.77182 4.37134 8.65568 8.25519 8.65568 13.027C8.65568 17.7988 4.77182 21.6827 0 21.6827Z" fill="#5B9AC5"/> 3507<path d="M0 17.4589V16.405C1.86288 16.405 3.37795 14.8899 3.37795 13.027C3.37795 11.1641 1.86288 9.64906 0 9.64906V8.59509C2.44256 8.59509 4.43192 10.5818 4.43192 13.027C4.43192 15.4722 2.44519 17.4589 0 17.4589Z" fill="#5B9AC5"/> 3508<path d="M0 26.054V25C6.60044 25 11.973 19.63 11.973 13.027C11.973 6.42389 6.60308 1.05395 0 1.05395V0.00262451C7.18276 0.00262451 13.027 5.84685 13.027 13.0296C13.027 20.2124 7.18276 26.0566 0 26.0566V26.054Z" fill="#5B9AC5"/> 3509<path d="M0 21.6827V20.6287C4.19214 20.6287 7.60172 17.2191 7.60172 13.027C7.60172 8.83487 4.19214 5.4253 0 5.4253V4.37134C4.77182 4.37134 8.65568 8.25519 8.65568 13.027C8.65568 17.7988 4.77182 21.6827 0 21.6827Z" fill="#5B9AC5"/> 3510<path d="M0 17.4589V16.405C1.86288 16.405 3.37795 14.8899 3.37795 13.027C3.37795 11.1641 1.86288 9.64906 0 9.64906V8.59509C2.44256 8.59509 4.43192 10.5818 4.43192 13.027C4.43192 15.4722 2.44519 17.4589 0 17.4589Z" fill="#5B9AC5"/> 3511</svg> 3512 3513 </span><span class="menu-text"> 3514 Acne & Pimples 3515</span> 3516 3517</a> 3518</li> 3519 3520<li> 3521<a href="/collections/serums" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 3522<!-- The Hipelement -- Menu icons -- Hair Concerns for example --><span class="menu-icon"> 3523 <svg width="25" height="21" viewBox="0 0 25 21" fill="none" xmlns="http://www.w3.org/2000/svg"> 3524<path d="M24.998 19.7174H0V20.5279H24.998V19.7174Z" fill="#E61A4F"/> 3525<path d="M24.998 13.1443H0V13.9549H24.998V13.1443Z" fill="#E61A4F"/> 3526<path d="M11.0229 6.5733H0V7.38381H11.0229V6.5733Z" fill="#E61A4F"/> 3527<path d="M24.998 6.5733H13.9751V7.38381H24.998V6.5733Z" fill="#E61A4F"/> 3528<path d="M6.31788 0H0V0.810504H6.31788V0Z" fill="#E61A4F"/> 3529<path d="M15.6589 0H9.341V0.810504H15.6589V0Z" fill="#E61A4F"/> 3530<path d="M24.9999 0H18.6821V0.810504H24.9999V0Z" fill="#E61A4F"/> 3531</svg> 3532 3533 </span><span class="menu-text"> 3534 Fine Lines & Wrinkles 3535</span> 3536 3537</a> 3538</li> 3539 3540 3541</ul> 3542</details> 3543 3544 3545 3546</li> 3547 3548 3549</ul> 3550</details> 3551 3552 3553 3554</li><li> 3555 3556 3557 3558<details class="mobile-dropdown" 3559 3560> 3561 3562<summary class="menu-drawer__menu-item list-menu__item link link--text focus-inset"> 3563<!-- The Hipelement -- Menu icons -- Hair Concerns for example --><span class="menu-text"> 3564 Hair + Skin Quiz 3565</span> 3566 3567<span class="accordion-icon"></span> 3568</summary> 3569 3570<ul class="menu-drawer__menu list-menu"> 3571 3572 3573<li> 3574 3575 3576 3577<a href="/pages/find-your-hair-and-scalp-match" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 3578<!-- The Hipelement -- Menu icons -- Hair Concerns for example --><span class="menu-text"> 3579 Hair Test 3580</span> 3581 3582</a> 3583 3584 3585 3586</li> 3587 3588<li> 3589 3590 3591 3592<a href="/pages/find-your-skin-a-prefect-match" class="menu-drawer__menu-item link link--text list-menu__item focus-inset"> 3593<!-- The Hipelement -- Menu icons -- Hair Concerns for example --><span class="menu-text"> 3594 Skin Test 3595</span> 3596 3597</a> 3598 3599 3600 3601</li> 3602 3603 3604</ul> 3605</details> 3606 3607 3608 3609</li></ul> 3610</nav> 3611</div> 3612 3613<!-- ================= LEARN MENU ================= --> 3614<div id="menu-drawer-learn" class="menu-drawer__content" style="display: none;"> 3615 <nav class="menu-drawer__navigation"> 3616 <ul class="menu-drawer__menu list-menu" role="list"> 3617 3618 3619 3620 3621 3622 <li> 3623 <a href="/pages/about-us" class="menu-drawer__menu-item list-menu__item link link--text focus-inset"> 3624 About Us 3625 </a> 3626 </li> 3627 3628 <li> 3629 <a href="/pages/our-promise" class="menu-drawer__menu-item list-menu__item link link--text focus-inset"> 3630 Our Promise 3631 </a> 3632 </li> 3633 3634 <li> 3635 <a href="/pages/clinical-testings" class="menu-drawer__menu-item list-menu__item link link--text focus-inset"> 3636 Clinical Testings 3637 </a> 3638 </li> 3639 3640 <li> 3641 <a href="/pages/farmtoface" class="menu-drawer__menu-item list-menu__item link link--text focus-inset"> 3642 #farmtoface 3643 </a> 3644 </li> 3645 3646 <li> 3647 <a href="/blogs/soulblog" class="menu-drawer__menu-item list-menu__item link link--text focus-inset">
3648 The No BS Edit 3649 </a> 3650 </li> 3651 3652 3653 3654 </ul> 3655 </nav> 3656</div> 3657 3658<!-- ACCOUNT --> 3659<div class="menu-drawer__utility-links"> 3660 3661<a href="javascript:void(0);" onclick="kpHandleLogin('/account');" 3662class="menu-drawer__account link focus-inset h5 medium-hide large-up-hide" 3663rel="nofollow"> 3664<span id="kwik-pass-text">Log in</span> 3665</a> 3666 3667</div><div class="menu-drawer__footer goli-drawer-footer"> 3668 <div class="goli-drawer-footer__logo"> 3669 <img 3670 src="https://cdn.shopify.com/s/files/1/0549/1274/5725/files/Soulflower-Highres-Logo.png?v=1787985297&width=300" 3671 srcset="https://cdn.shopify.com/s/files/1/0549/1274/5725/files/Soulflower-Highres-Logo.png?v=1787985297&width=150 150w, 3672 https://cdn.shopify.com/s/files/1/0549/1274/5725/files/Soulflower-Highres-Logo.png?v=1787985297&width=300 300w" 3673 sizes="150px" 3674 width="150" 3675 height="auto" 3676 alt="Soulflower.in" 3677 class="goli-drawer-footer__logo-img" 3678 loading="lazy" 3679 > 3680</div> 3681 3682 <div class="goli-drawer-footer__text"> 3683 Every purchase you make helps us feed a stray cat or dog Thatâs how <b>500+</b> strays are fed every day, while <b>50+</b> cats & dogs receive shelter, rescue, and access to essential healthcare. 3684 </div> 3685</div> 3686 3687</div> 3688</div> 3689</div> 3690 3691</details> 3692</header-drawer> 3693 3694<!-- ================= CSS (UNCHANGED + Footer styles) ================= --> 3695<style> 3696/* ========================================================= 3697 DRAWER COLUMN LAYOUT â this is what pins the footer down. 3698 The container was height:auto with no flex context, so the 3699 footer's margin-top:auto had no free space to push against 3700 and it sat directly under the last link (fine on Shop, 3701 white gap underneath on Learn). 3702 3703 min-height:100% + flex-grow on the active tab panel means: 3704 short menu (Learn) â panel stretches, footer sits at the bottom 3705 long menu (Shop) â panel keeps natural height, page scrolls, 3706 footer stays at the end as before 3707 ========================================================= */ 3708.menu-drawer__inner-container { 3709 height: 100%; 3710 overflow-y: auto; 3711 -webkit-overflow-scrolling: touch; 3712} 3713 3714.menu-drawer__navigation-container.mobile-tabbing-drawer { 3715 display: flex; 3716 flex-direction: column; 3717 height: auto; 3718 min-height: 100%; 3719 box-sizing: border-box; 3720} 3721 3722/* Tabs, account row and footer keep their natural height */ 3723#menu-drawer .menu-drawer__tabs, 3724#menu-drawer .menu-drawer__utility-links, 3725#menu-drawer .goli-drawer-footer { 3726 flex: 0 0 auto; 3727} 3728 3729/* Active tab panel absorbs the leftover space. 3730 flex-shrink 0 so a long Shop menu is never squashed. */ 3731#menu-drawer .menu-drawer__content { 3732 flex: 1 0 auto; 3733} 3734 3735/* Nav inside the panel must not create its own scroll area */ 3736#menu-drawer .menu-drawer__content .menu-drawer__navigation { 3737 height: auto; 3738 overflow: visible; 3739} 3740.goli-drawer-footer__logo-img { 3741 filter: brightness(0) invert(1); 3742} 3743#menu-drawer .menu-drawer__tabs { 3744 display:flex; 3745 border-bottom:1px solid rgba(var(--color-foreground),0.08); 3746} 3747 3748#menu-drawer .menu-drawer__tab-btn { 3749 flex:1; 3750 padding:14px; 3751 background:#f4f4f4; 3752 border:none; 3753 font-weight:600; 3754 cursor:pointer; 3755} 3756 3757#menu-drawer .menu-drawer__tab-btn.is-active { 3758 background:#87cefa; 3759 color:#000; 3760} 3761</style> 3762<style> 3763/* TAB BUTTONS CSS */ 3764#menu-drawer .menu-drawer__tabs { 3765 display: flex; 3766 border-bottom: 1px solid rgba(var(--color-foreground), 0.08); 3767 position: relative; 3768 z-index: 2; 3769} 3770 3771#menu-drawer .menu-drawer__tab-btn { 3772 flex: 1; 3773 padding: 14px; 3774 background: #f4f4f4; 3775 border: none; 3776 font-weight: 600; 3777 font-size: 14px; 3778 cursor: pointer; 3779 transition: background 0.2s ease; 3780 color: rgb(var(--color-foreground)); 3781} 3782 3783#menu-drawer .menu-drawer__tab-btn.is-active { 3784 background: #87cefa; 3785 color: #000; 3786} 3787 3788#menu-drawer .menu-drawer__tab-btn:not(.is-active):hover { 3789 background: #eaeaea; 3790} 3791 3792/* OLD CSS - KEPT AS IS */ 3793/* dropdown layout */ 3794.mobile-dropdown summary, 3795.mobile-dropdown-child summary{ 3796 display:flex; 3797 align-items:center; 3798 justify-content:space-between; 3799 cursor:pointer; 3800} 3801 3802.mobile-dropdown ul{ padding-left:16px; } 3803.mobile-dropdown-child ul{ padding-left:18px; } 3804/* + / - icon */ 3805.accordion-icon { 3806 position: relative; 3807 width: 14px; 3808 height: 14px; 3809 margin-left: auto; 3810} 3811summary.menu-drawer__menu-item.link.link--text.list-menu__item.focus-inset { 3812 padding: 11px 20px; 3813} 3814/* horizontal line */ 3815.accordion-icon::before, 3816.accordion-icon::after {
3817 content: ''; 3818 position: absolute; 3819 background: #000; 3820 transition: all 0.25s ease; 3821} 3822 3823/* horizontal */ 3824.accordion-icon::before { 3825 width: 100%; 3826 height: 1px; 3827 top: 50%; 3828 left: 0; 3829 transform: translateY(-50%); 3830} 3831 3832/* vertical */ 3833.accordion-icon::after { 3834 width: 1px; 3835 height: 100%; 3836 left: 50%; 3837 top: 0; 3838 transform: translateX(-50%); 3839} 3840 3841/* OPEN â minus */ 3842.mobile-dropdown[open] > summary .accordion-icon::after, 3843.mobile-dropdown-child[open] > summary .accordion-icon::after { 3844 opacity: 0; 3845 transform: translateX(-50%) scaleY(0); 3846} 3847 3848details { 3849 border: none !important; 3850} 3851details.mobile-dropdown { 3852 border-bottom: 1px solid #eee!important; 3853} 3854 3855.menu-drawer__menu > li > .menu-drawer__menu-item { 3856 font-weight: 600; 3857 font-size: 17px; 3858} 3859 3860/* SUBMENU items reset */ 3861.menu-drawer__menu .menu-drawer__menu .menu-drawer__menu-item { 3862 font-weight: 400; 3863 font-size: 17px; 3864} 3865ul.menu-drawer__menu.list-menu li span { 3866 font-size: 15px; 3867 font-weight: 600; 3868} 3869ul .mobile-dropdown ul li span { 3870 3871 font-size: 14px !important; 3872 font-weight: 500 !important; 3873} 3874 3875/* ========================================================= 3876 GOLI FOOTER â logo + text side-by-side 3877 ========================================================= */ 3878.goli-drawer-footer { 3879 display: flex !important; 3880 align-items: center !important; 3881 gap: 6px !important; 3882 padding: 14px 16px !important; 3883 background: #FF2896 !important; 3884 color: #fff !important; 3885 border-top: none !important; 3886 margin-top: auto; 3887} 3888 3889.goli-drawer-footer__logo { 3890 flex-shrink: 0 !important; 3891 max-width: 150px !important; 3892} 3893 3894.goli-drawer-footer__logo-img, 3895.goli-drawer-footer__logo img { 3896 width: 150px !important; 3897 height: auto !important; 3898 display: block; 3899} 3900 3901.goli-drawer-footer__logo-text { 3902 font-size: 28px; 3903 font-weight: 700; 3904 line-height: 1; 3905 color: #fff; 3906 letter-spacing: -0.5px; 3907} 3908.goli-drawer-footer__logo-text small { 3909 display: block; 3910 font-size: 11px; 3911 letter-spacing: 2px; 3912 font-weight: 500; 3913 margin-top: 2px; 3914} 3915 3916.goli-drawer-footer__text { 3917 flex: 1 1 auto !important; 3918 font-size: 13px !important; 3919 line-height: 1.45 !important; 3920 margin: 0 !important; 3921 border-left: 1px solid rgba(255,255,255,0.7) !important; 3922 padding-left: 16px !important; 3923 color: #fff !important; 3924} 3925 3926@media screen and (max-width: 360px) { 3927 .goli-drawer-footer { 3928 flex-direction: column !important; 3929 gap: 12px !important; 3930 } 3931 .goli-drawer-footer__text { 3932 border-left: none !important; 3933 padding-left: 0 !important; 3934 } 3935} 3936</style> 3937 3938<!-- ================= JS (UNCHANGED) ================= -->
3939<script> 3940document.addEventListener('DOMContentLoaded', function () { 3941 3942 // 1. TAB SWITCHING LOGIC 3943 const menuDrawer = document.getElementById('menu-drawer'); 3944 if (menuDrawer) { 3945 const tabButtons = menuDrawer.querySelectorAll('.menu-drawer__tab-btn'); 3946 const shopContent = menuDrawer.querySelector('#menu-drawer-shop'); 3947 const learnContent = menuDrawer.querySelector('#menu-drawer-learn'); 3948 const scroller = menuDrawer.querySelector('.menu-drawer__inner-container'); 3949 3950 tabButtons.forEach(button => { 3951 button.addEventListener('click', function (e) { 3952 e.preventDefault(); 3953 e.stopPropagation(); 3954 e.stopImmediatePropagation(); 3955 3956 tabButtons.forEach(btn => btn.classList.remove('is-active')); 3957 this.classList.add('is-active'); 3958 3959 const tab = this.getAttribute('data-tab'); 3960 if (tab === 'shop') { 3961 shopContent.style.display = 'block'; 3962 learnContent.style.display = 'none'; 3963 } else { 3964 shopContent.style.display = 'none'; 3965 learnContent.style.display = 'block'; 3966 } 3967 3968 // Switching from a long Shop scroll to short Learn would otherwise 3969 // leave the drawer scrolled halfway down an empty panel 3970 if (scroller) scroller.scrollTop = 0; 3971 }, true); 3972 }); 3973 } 3974 3975 // 2. OLD DRAWER OPEN LOGIC 3976 const drawer = document.getElementById('Details-menu-drawer-container'); 3977 3978 drawer.addEventListener('toggle', function () { 3979 3980 // drawer open à¤à¤¾à¤²à¤¾ à¤à¤¾ check 3981 if (drawer.open) { 3982 3983 setTimeout(() => { 3984 3985 // MAIN MENU - first open 3986 const mainItems = document.querySelectorAll('.mobile-dropdown'); 3987 if (mainItems.length > 0) { 3988 mainItems[0].setAttribute('open', true); 3989 } 3990 3991 // SUBMENU - first main मधलॠfirst + second open 3992 const firstMain = mainItems[0]; 3993 if (firstMain) { 3994 const childItems = firstMain.querySelectorAll('.mobile-dropdown-child'); 3995 3996 childItems.forEach((item, index) => { 3997 if (index < 2) { 3998 item.setAttribute('open', true); 3999 } 4000 }); 4001 } 4002 4003 }, 100); 4004 4005 } 4006 4007 }); 4008 4009}); 4010</script>
4010 4011<a href="/" class="header__heading-link link link--text focus-inset"> 4012 <div class="header__heading-logo-wrapper"> 4013 4014 <svg xmlns="http://www.w3.org/2000/svg" width="140" height="30" fill="currentColor" aria-label="Soulflower logo" viewBox="0 0 4900 940" role="img"><path d="M4466 118.2q1.6 0 3.4.4 7.8 1 15.6 2.4 3.2.6 6.5 1l3 .6c2.5.5 2.5.5 5.5.4v2h3.7c3-.1 5.4 0 8.3 1h2v2h7v2h6v2h2.1c6 .5 10.5 1.4 16 4h3v2l10 1v2l3.1.4c3.1.5 5.1 1 7.8 2.6v2l2.2-.2c3.2.2 4.3 1.2 6.8 3.2h2v2l3.8.4c2.6.3 4.6.8 7.2 1.6v3l2.7-.1c3.1 0 4.6.5 7.3 2v3l11 3v3l3.8.9c3.2.8 5 1.6 7.2 4.2h2v3h2l1 2h3v3h5l2 5h5l1 4h2v2h2l2 2h2v2h2l3.4 3.8c2.5 3 2.5 3 5.3 5.8 1.3 1.4 1.3 1.4 1.3 3.4h3c1.7 1.4 1.7 1.4 3 3v2l3 1v5l1.7.8a30 30 0 0 1 6.3 4.2v4h2v2l2.4.8 2.6 1.2c.7 2 .7 2 1 4l2 1v4l3 1v4h3v4h2l.5 2.2.8 2.8.7 2.7 1 2.3 3 1 .3 2.4.7 2.6 2 1q.7 4 1 8l3 1 .3 2c1 4.6 1.7 8.8 3.7 13 1.5 3.5 2 5 2 9h2l.4 2.8.5 3.5.5 3.6a22 22 0 0 0 1.6 6l1.5 10c.4 3 .4 3 1.5 6l.5 8.3.2 2.3.3 5.5h1v32h-1v1.7c-.8 18.8-.8 18.8-2.6 26a99 99 0 0 0-1.4 12.3h-2v3.6a62 62 0 0 1-1 11.4l-2 1-1.5 6c-.5 2-.5 2-1.5 4.4a54 54 0 0 0-2.5 10.5l-.5 2-2 1c-.9 2.4-.9 2.4-1.5 5-1.3 4.9-1.3 4.9-3.5 7l-.5 2.7-.5 2.4-2 1v2h-3v4l-2 2-.5 2.5c-.5 2.5-.5 2.5-3.5 4.5-1.2 2-1.2 2-2 4h-2l-.2 2.4-.8 2.6c-2.6 1.3-2.6 1.3-5 2v5l-2.5.7-2.5 1.3-.4 2.3
4014c-.9 3.8-3 5-6 7.3l-1.6 1.4v3l-2.5.8-2.5 1.2-1 3h-2v2l-2 1-.2 2.2c-1 3.7-3 4.9-5.9 7.2q-2.9 2.4-5 5.4a14 14 0 0 1-7.9 5.2c-3 .7-3 .7-4.2 3l-.8 2-1 2h-2v2l-1.8.3c-2.8.9-4.2 2.6-6.2 4.7h-2l-1 2h-2v3h-5l-1 3h-2l-1.5 1.5c-1.5 1.5-1.5 1.5-4.5 1.5v3l-5 1v2l-2.9.8c-3.4 1-3.4 1-5 4.2l-6 2-2.8 1.6c-2.3 1.4-2.3 1.4-5.3 1.4v3h-3l-2 2-2-1v2h-2l-1 2-6 1 2.8 3.5 1.6 2c1.6 1.9 1.6 1.9 4.6 1.5v2h2l3.1 3.4 1.6 1.9c1.3 1.7 1.3 1.7 1.3 3.7h5v2h2c4 4.5 4 4.5 4 7h2v2h2l2 2h2v2h2v2h2q2.4 2.7 4.4 5.5c1.6 1.9 1.6 1.9 4.6 1.5v2h2c3 3.5 3 3.5 3 6h2l1.4 1.5c1.6 1.9 1.6 1.9 4.6 1.5v2h2l1 4h2l5 5a15 15 0 0 0 4 2v2h2v2h2c3 3.5 3 3.5 3 6l6 1v2h2c3 3.5 3 3.5 3 6h2l2 2 3 1 1 2h2l1 4h2v2h2l2.4 3 2.6 3h3l1 3h2l1 4h2v2l2.1-.4c4 .6 5.2 2.6 7.7 5.7 1.2 1.7 1.2 1.7 1.2 3.7h2l4 4h2v2h2l.8 2c1 2.3 1 2.3 4.2 3 .7 2 .7 2 1 4h2l2 2h3c4 4.4 4 4.4 4 7h2v2h2l2 2h2v2h2v2l3 1v2h2l4 4h2v2h2c1.6 1.4 1.6 1.4 3 3v2h2l1 4h5v2h2l3.1 3.4 1.6 1.9c1.3 1.7 1.3 1.7 1.3 3.7l5 1v9l-8 1v2h-5v2l-2.2-.2c-3.5.3-5.7 1.6-8.8 3.2-6.5 2.2-6.5 2.2-10 1v2l-1.8.3q-5.6 1-11 3.3c-3.2 1.4-3.2 1.4-7.2 1.4l-1 2c-2.5.4-2.5.4-5.6.6l-3 .3h-2.4v2a48 48 0 0 1-13 1h-4v-4q-2.5-.8-5-2v-3q-2.5-.3-5-1l-1-4-2-.2-2-.7-1-3h-2v-5c-1.2 0-1.2 0-2.3.2-2.7-.2-2.7-.2-4.7-1.8-5.8-7.1-5.8-7.1-7-11.4h-4a26 26 0 0 1-5-7.2c-1-2.1-1-2.1-4-2.8v-2l-2-.8c-2-1.2-2-1.2-3-4.2l-3-1v-2h-2v-3h-3v-2l-3-1v-2l-3-1v-2h-2v-2h-2v-3h-3c-1.7-1.4-1.7-1.4-3-3v-2h-2c-1.7-1.4-1.7-1.4-3-3v-2h-2l-4-5-2-1v-2h-2l-2.9-3.2a31 31 0 0 0-6-6c-2.3-2-2.8-2.8-3-5.8l-2-.3c-2.6-.8-3.4-1.8-5-4-3.3-4-6.5-7.5-10.6-10.6a55 55 0 0 1-7-7.3 51 51 0 0 0-10.5-9.8h-2v-2h-2l-1-3h-2l-1-3h-2l-1-3h-2v-2h-2v-2l-3-1v-2h-2l-1-3h-2v-2l-3-1v-2l-3-1v-2h-2v-2l-3-1v-4l-3 1-1-2v174h-89c-2-4-2.3-5.7-2-10l1-1 .3-4.5.1-3 .1-3.2.1-3.3 1-41 .1-8 .3-19h1l1.4-27.4.1-2q1.8-33.4 2.2-66.8v-3l.1-5.6c.1-6.1.1-6.1 1.2-7.2l.5-7 .1-2.2q.7-17 1-33.8l.1-7 .3-17h2v-27.1l-.2-2.3c0-5.4 0-5.4 1.2-7.6 1-8.2 1-16.3 1-24.6l.3-21.3.2-4.2.1-5.8.2-3.5c.2-2.6.2-2.6 1.2-3.6l.5-7.4.1-2.4q.7-17 1-33.8l.1-6.8.3-16.6h2v-3.2q-.3-18.6 1.3-37 .7-12 .7-23.7l.3-19 .2-6.4.1-4.2.2-3.7c.2-2.8.2-2.8 1.2-3.8 1.4-13.2 1.3-26.7 1.5-40l.2-6.4.3-15.6h2v-2.8q-.3-13.4 1-26.7 1.6-23.7 2-47.5h2v-3.4l-.2-4.4V127c-.2-5.4-.2-5.4 1.3-8 2.7-1.4 4.7-1.1 7.8-.8m76 81.8v7h-2q0 1.4-.2 2.7l-.6 10q0 2.2-.3 4.3l-.4 6.3-.2 3.7c-.3 3-.3 3-1.3 5q-.3 3-.3 5.9v3.5l-.3 7.4-.2 3.5v3.2c-.2 2.5-.2 2.5-1.2 3.5-1.4 8.7-1.2 17.5-1 26.2V306h-2q0 1.2-.2 2.3l-.8 10.5-.2 3.6q0 1.8-.3 3.5l-.2 3.3a51 51 0 0 1-1.3 6.8v4q0 8-.5 16v2.7c-.4 6.2-.4 6.2-1.5 7.3-1.3 8.2-1.2 16.3-1 24.6V405h-2q-1 9.6-1 19c0 2 0 2-1 3q-.4 3.7-.5 7.3l-.2 2.3-.6 13v2.7l-.3 5.4c-.3 6.2-.3 6.2-1.4 7.3-1.4 8.3-1.3 16.8-1.6 25v4.2l-.4 9.8h-1a415 415 0 0 0-3 60l3 1v-2h2l1-4 4 1 1-4h2v-2l3 1 3-3v-2h2l1-4h2v-2l3 1 3-3v-2h2v-2h2c1.6-1.3 1.6-1.3 3-3v-2l3 1 3-3 1.7-1.5c1.5-1.4 1.5-1.4 1.3-3.5l1.7-.7c2.6-1.5 4.4-3 6.3-5.3v-4h2v-2l3 1v-4h2c3.6-3.1 5.5-5.2 6-10l3-1v-2l5-2v-4l3-1v-4l2.3-.5c3.5-2 4-4 5-7.7.7-1.8.7-1.8 2.7-2.8v-4h3v-4l3-1c.7-2.1.7-2.1 1-4.5.3-2.5.3-2.5 1-4.5l3-1v-5l3-1v-2l2-2a24 24 0 0 0 3-14h2a78 78 0 0 0 4-16l1-2.4c1.4-3.8 1.1-7.5 1-11.6h2l.1-2.1.2-2.8.2-2.8c.5-3.3.5-3.3 1.5-7.1 1.6-7.1 1.3-14.4 1.3-21.6v-2.2c0-11.7-.8-23-3.3-34.4h-2v-2.4l.1-3.3.1-3.2c-.2-3.1-1-5.2-2.2-8.1l-1-7c-.9-2.8-.9-2.8-2-5l-2-1-.8-6c-.3-2.3-1-4-2.2-6h-2l1-4h-2l-1-5h-2l.1-2.2c-.2-3.4-1.2-5.1-3-7.8q-1.2-.4-2-1-.7-1.5-1-3h-2l.1-2.8c.1-3.3.1-3.3-2-4.8l-2.2-1.4-2-4-2-1c-.7-2.6-.7-2.6-1-5h-4l-.2-3-.8-3c-2.5-1.4-2.5-1.4-5-2v-2c-1.4-1.7-1.4-1.7-3-3h-2l-.2-2.3c-1-3.6-2.7-4-5.8-5.7-1.2-2-1.2-2-2-4-2.9-2.3-2.9-2.3-6-2l-.9-2.4c-.9-2.7-.9-2.7-3-3.6l-3 1-1-4h-2l-1-2-2 1v-2h-2l-1-2-2 1-1-4h-3q-1.2-1-2-2m-31 364 1 4 1-4zm-798-444c2 1.3 2 1.3 5 1l3 5h3v3h5v3l2.4.3c2.6.7 2.6.7 4.6 3.7q3.4 2 7 3v2h2v2c3.9 1.5 3.9 1.5 8 2v3l2.4.3c2.6.7 2.6.7 4.6 3.7h3l2 3h2v2q1.2 0 2.3.3c3 .8 3.8 1.6 5.7 3.7h2l3 5 2 1 .2 5.6v3c-.2 3.4-.2 3.4-1.1 6.7a54 54 0 0 0-1.7 13.2l-.1 2.5-.3 6h-1l-.1 2.4-.2 3.2-.2 3c-.5 3.4-.5 3.4-1.5 6.8a58 58 0 0 0-1.5 14.4 31 31 0 0 1-1.5 9c-1.4 4.4-1.4 8.6-1.6 13l-.1 2.8-.3 6.4h-1q-3 14.6-3.6 29.6c-.1 4.6-1 8-2.4 12.4l-.6 9.4-.1 2.5-.3 6h-2v2.3l.2 2.9v2.8c-.2 3-.2 3-1.1 6.4a57 57 0 0 0-1.7 13.7l-.1 2.6-.3 6.4h-2l-1 23h-1l-.1 2.4-.2 3.2-.2 3c-.5 3.4-.5 3.4-1.5 6.8a59 59 0 0 0-1.6 12.6l-.1 2.3-.3 5.7h-2v2.4q.1 11.8-1 23.6h-2v2.2l.2 3v2.8c-.2 3-.2 3-1.1 5.8-1.4 4.2-1.5 8.2-1.7 12.6l-.1 2.5-.3 6h-2l-1 24h-2v2.8l.2 3.5v3.4c-.2 3.4-.2 3.4-1.1 6.3-1.4 4.2-1.5 8-1.7 12.5l-.1 2.5-.3 6h-2l-1 24h-2v2.8l.2 3.5v3.4c-.2 3.4-.2 3.4-1.1 6.3-1.4 4.2-1.5 8-1.7 12.5l-.1 2.5-.3 6h-2l-.1 3.4-.3 4.4-.1 2q-.5 6.3-1.5 12.3l-.7 10.3c-.3 2.7-.3 2.7-1.3 3.7q-1.3 8.2-1.5 16.5l-.2 2.5-.3 6h-2l-.1 2.3-1.6 17-1 12.6c-.3 3-.3 3-1.3 6.5a59 59 0 0 0-1.6 12.6l-.1 2.3-.3 5.7h-2l-.1 2.9-.3 3.8-.2 3.8c-.4 3.5-.4 3.5-1 6-.7 4.3-.7 8.7-1 13 0 3.6-.4 6.6-1.4 10a57 57 0 0 0-1.6 13l-.1 2.5-.3 6h-2v10c0 2.9 0 2.9-1 3.9l-.5 4-.5 4h-7c-1.5-3.3-2-5.2-2-9h-2l-.8-3.1c-1.6-6.5-1.6-6.5-5.2-12v-4q-1-.3-2-1l-1-7q-1-.3-2-1v-4q-1-.3-2-1l-1-7q-1-.3-2-1l-.7-6q-.4-3.2-2.3-6-1-.3-2-1l-1-7q-1-.3-2-1l-.7-6c-.5-3.5-2.3-5.8-4.3-9l-2-7-1-1v-7h-3v-4q-1-.3-2-1c-1.2-5.3-1.2-5.3 0-8h-3l-.3-3.6a19 19 0 0 0-2.7-8.3l-2-1-1-4.7a37 37 0 0 0-3-10.3l-1-2.4c-1-2.7-1-2.7-2.5-5.6a29 29 0 0 1-2.5-7l-1-1v-7l-3-1v-3l-2-1c-1.2-5.4-1.2-5.4 0-8h-3l-.3-3.7a19 19 0 0 0-2.7-8.3l-2-1-1-4.7a37 37 0 0 0-3-10.3l-1-2.7c-.7-2.4-.7-2.4-3-3.3l-.6-6c-.5-2.7-2-4.6-3.4-7 .3-2.3.3-2.3 1-4l-3-1v-5h-2l-.3-3-.7-3-2-1v-8h-3v-4l-2-1v-8h-3v-4l-2-1-1-7-2-1-.7-6c-.3-2.3-1-4-2.3-6l-2-1c-.4-2.2-.4-2.2-.6-5l-.2-2.8-.2-2.2h-2l-.8-3.1c-1.6-6.5-1.6-6.5-5.2-12v-4q-1-.3-2-1v-8h-3v-4q-1-.3-2-1v-8h-3l-.3-3.6a19 19 0 0 0-2.7-8.3l-2-1q-.5-3.8-.6-7.7l-.4-2.3-2-1c-3-8-3-8-3-12h-2l-1-3.4c-.6-3.4-.6-3.4-2-4.6v-7h-3v-4l-2-1v-8h-3l-.3-3.6c-.5-4-1.7-7-3.7-10.4q-1.3 12.3-1.5 24.6l-.2 4.2-.3 10.2h-2l-1 39h-2v16.3l.2 2.7c-.2 2-.2 2-1.2 3-1.4 8.5-1.3 17-1.5 25.7l-.2 4.2-.3 10h-2v2.9l-.3 10-.2 4.3-.1 6.3-.2 3.8c-.2 2.8-.2 2.8-1.2 3.8l-.2 6-.2 3.7-.1 3.8-.2 7.6-.1 3.4c-.2 2.5-.2 2.5-1.2 3.5-1.3 8.7-1.3 17.5-1.5 26.2l-.2 4-.3 9.8h-2v2c.3 7.6-.4 15-1.3 22.7q-.7 7.4-.7 14.9 0 6-.4 12l-.1 2.4c-.3 5.9-.3 5.9-1.5 7-1.3 8.7-1.3 17.5-1.5 26.2l-.2 4-.3 9.8h-2v15.5l.2 2.5c-.2 2-.2 2-1.2 4l-.5 8-.1 2.4-.5 10.3-.2 5.3-.3 5c-.3 5.9-.3 5.9-1.4 7q-1.1 8.2-1 16.3c.2 4-.4 7-2 10.7h-5c-2.2-5-4-9.3-4-15h-2l-1-11h-2l-.1-1.8-.2-2.4-.2-2.4c-.5-2.5-1.3-4.2-2.5-6.4v-5h-2c-1-7.6-1-7.6-1-11h-2l-.3-2a133 133 0 0 0-3.7-15h-1l-1-12h-2l-3-15h-2l-.1-2.1-.2-2.8-.2-2.8-.5-2.3-2-1-.5-5.1a49 49 0 0 0-2.5-13h-2l-.1-1.7c-.4-4.4-1.1-8-3-12.2q0-1.7-.4-3.5c-.4-3.1-1.1-4.8-2.5-7.5v-4h-2l-1-11h-2l-.1-1.8-.2-2.4-.2-2.4c-.5-2.5-1.3-4.2-2.5-6.4v-2l-2-1c-.3-2.2-.3-2.2-.4-5.1-.4-5-1.4-8.3-3.6-13l-1-6c-.3-2.1-.3-2.1-1-4q-1-.3-2-1l-1-6c-.8-8.6-.8-8.6-5-16v-7h-2l-.1-2-.2-2.8-.2-2.8-.5-2.3-2-1q-.5-3.8-.6-7.7l-.4-2.3-2-1v-7h-2l-1-11h-2l1-4h-2l.2-2.2c0-2.7 0-2.7-1.2-4.8-1.2-2.4-1.1-4.3-1-7h-2l-1-11h-2l-.1-1.8-.2-2.4-.2-2.4c-.5-2.5-1.3-4.2-2.5-6.4v-5h-2l-.3-2c-1.1-5.5-1.1-
40145.5-2.8-10.8-1.1-2.7-.7-4.4 0-7.2h-2l-.8-3c-.8-2.8-.8-2.8-2.1-4l-1-5.7-.5-3.1-.5-3.2-1-6h-2l-.1-2-.2-2.3-.2-2.5c-.3-2.4-.3-2.4-2.5-4.2l-.5-4.3c-.2-3.4-1-5.6-2.5-8.7v-5h-2l-.1-2-.2-2.3-.2-2.5c-.3-2.4-.3-2.4-2.5-4.2l-.5-4.3c-.2-3.4-.8-5.7-2.5-8.7a75 75 0 0 1-4-15l-3.1-10.3c-1-2.7-1-2.7-1-4.7l-2-1-1-6.1c-.7-6-2-11.4-4-17.2-1-2.7-1-2.7-1-4.7l-2-1q-.4-3.8-.5-7.7l-.4-2.3-2-1-.5-4.5a63 63 0 0 0-2.5-13.5h-2l-1-11h-2l-.1-2.1-.2-2.8-.2-2.8-.5-2.3-2-1v-7h-2l-1-11h-2l-.1-1.8-.2-2.4-.2-2.4c-.5-2.5-1.3-4.2-2.5-6.4v-5h-2l-1-11h-2l-3-18h-2l-.3-2.1q-1.7-9.9-4.8-19.2c-1-4.3-1-8.3-1-12.7l5-1q.7-2 1-4h4q.7-1.5 1-3l5-1v-2h2v-2h3l1.5-2.5 1.6-2.5c2.7-.3 2.7-.3 5 0v-3l1.9-.2c2.3-.6 2.3-.6 3.4-2.8l.7-2h5l2-5h3l3-3h2l1-2h2v-3h5l1-4 5-1v-3l2.2-.3c2.9-.7 5.3-1.3 7.8-2.7.9-2 .9-2 1-4l5-1v-2h2v-2h8l.4 3.2.6 4q0 1.2.2 2.2.5 3.9 1.4 7.8.7 3.5.9 7.2c.2 3.2.5 5.7 1.6 8.7 1.4 4.3 1 8.5.9 12.9h2l.2 3.3.2 4.3v2a60 60 0 0 0 2.6 13.4q.5 2.9.7 5.8l.3 2.8c0 2.4 0 2.4-1 5.4h2l.5 4.7.3 2.7q.3 3.7.2 7.6h2l.2 3.3.2 4.3v2a60 60 0 0 0 2.6 13.4l.2 5.5-.1 2.6-.1 1.9h2l1 20h2l1 21h2v12h2l.5 7.2.2 2q.4 5.5.3 10.8h2l.2 3.3.2 4.3v2a60 60 0 0 0 2.6 13.4l.7 5 .2 2.3v1.7h1l1 21h2l.3 3.3.2 4.3v2a60 60 0 0 0 2.6 13.4l.7 5 .2 2.3v1.7h1q.7 10.4 1 21h2l.3 3.2c.4 7.3.9 14.3 2.4 21.5q.7 3.6.4 7.3h2l.5 7.7.2 2.2q.4 5.6.3 11h2l.2 3c.3 8.5.3 8.5 1.9 16.6 1 3.8 1 6.7.9 10.5h2l.7 10.5q.4 6.3.3 12.5h2l.2 1.7a237 237 0 0 0 3.8 29.3q1.2-11 2-22h2l1-22h2v-2.2l-.1-3-.1-2.8c.2-3 .2-3 1.2-5.7 1.4-4.4 1.5-8.6 1.7-13.1v-2.7q.3-3.2.3-6.5h2l1-20h2v-2l-.1-2.5-.1-2.6c.2-3 .2-3 1.2-6.1q1.6-6.3 1.7-12.7v-2.4l.3-5.7h2v-2.4c-.1-10.5-.1-10.5 1-15.6h2l-1-3q0-3.4.3-6.8 0-2 .3-3.7c.4-3.5.4-3.5 1.4-5.8 1.5-4 1.5-7.8 1.7-12v-2.5q.3-3.1.3-6.2h1l.4-2.5 1-7.4 1.2-8 .5-3.6.5-3.3c1-7.7 1-7.7 2-11.5q.8-5.7 1-11.5v-2.4l.4-5.8h1q3.2-16.4 4-33h2l1-24h2v-2.2l-.1-3-.1-2.8c.2-3 .2-3 1.2-5.8a44 44 0 0 0 1.7-12v-2.4q.3-2.9.3-5.8h2v-6h7l.9 2.7q1 3 2.3 6c.8 2.3.8 2.3.8 5.3h2l1 8h2v7h3v6h2v7h3l.4 2q.1 1.4.5 2.9l.4 2.7c.5 2.5.5 2.5 2.3 3.9 2 2 1.9 3.8 2 6.7q.3 1.3.3 2.8v2h2l1 3.2c1.9 6.7 1.9 6.7 5 12.8.3 2.7.3 2.7 0 5h2c1.3 4.8 1.3 4.8 0 7l3 1v5h2q.7 1.8 1 3.5c.8 3.3.8 3.3 2 4.5q.3 3.6 0 7h3v4l2 1v8h3q.4 1.9.5 3.8c.4 3 .8 5.6 2.6 8.2l2 1 1 7 2 1 .7 6c.3 2.3.3 2.3 2.3 5v4h2l.6 6.2.4 1.8 2 1c.7 2 .7 2 1 4l-1 2 3 1v5h2l1 3.5c.7 3.3.7 3.3 2 4.5v7h3v4l2 1v8h3l.4 2q1 5.2 2.6 10l2 1c1.3 5.5 1.3 5.5 0 8h3l.6 6c.4 2.3.4 2.3 2.4 5v4h2l.9 3.2c1.9 6.7 1.9 6.7 5 12.8q.7 2 1 4 1.2 1.5 2 3v4l2 1v6h2q.4 1.5.5 3l.6 3 2 1v8h3v4l2 1 1 7 2 1 .7 5.8c.6 4.2 2.6 7.8 4.5 11.5.8 1.7.8 1.7.8 3.7a57 57 0 0 0 2.7-18.4v-3.1l.3-7.5h1l.2-2.5.2-3.4.2-3.3q.5-4 1.4-8c1.5-6.2 1.5-12.4 1.6-18.8 0-4 .3-7.5 1.4-11.4 1.4-5 1.5-10 1.7-15v-3.1l.3-7.5h2v-7l-.1-3.8c0-3.2 0-3.2 1-4.2 1.4-6.8 1.5-13.8 1.7-20.8q0-1.4.2-2.7V410c.2-2 .2-2 1.2-3q1.3-9 1.6-18v-2.8l.4-7.2h2v-7l-.1-3.8c0-3.2 0-3.2 1-4.2 1.2-6 1.4-12 1.7-18v-2.8l.4-7.2h2l1-29h2v-7l-.1-3.8c0-3.2 0-3.2 1-4.2 1.2-6.4 1.4-13 1.7-19.5v-3l.4-7.5h2v-2.6q-.1-12.2 1-24.4h2v-8l-.1-2.3V219q.7-.4 1-1c1.2-6 1.4-12 1.7-18v-2.8l.4-7.2h2l1-22h2l-.5-2.5c-.5-4-.4-7.4-.1-11.3v-2c.5-5 .5-5 1.6-6.2l.4-5.7.2-3.5.4-7.4.2-3.5.2-3.3c.6-2.6.6-2.6 2.6-4 3.2-1 5.2 0 8 1.5m-22 117 1 3Zm-265 15 1 3Zm8 54 1 2Zm249 3 1 4Zm-241 49 1 3Zm303 84 1 3Zm-218 17v7h1v-7zm-69 5 1 2Zm31 5 1 3Zm248 32 1 3Zm-155 13 1 2Zm-101 11 1 3Zm248 37 1 3ZM1149.7 119.5c2.4.6 2.4.6 5.3.3 5.8 0 11.4 1.8 17 3.2v15h-2l-1 21h-1l-.1 2q-.6 6.8-2.4 13.5-1 6.2-1.1 12.6 0 4.6-1.4 9.2a60 60 0 0 0-1.6 14.6l-.1 3-.3 7.1h-2l-.2 3.2-.2 4.3-.1 2.2-.2 2.1-.1 2-.7 5.5a91 91 0 0 0-.8 10.4l-.1 3.8-.2 7.8-.1 3.7-.1 3.4c-.2 2.6-.2 2.6-1.2 3.6-1.1 7.5-1.1 15.1-1.1 22.7V398h2l.2 2 .3 9v3q.3 8 2.2 16 .8 4 .5 8v3l-.1 2h2q0 1.7.2 3.3 0 2.3.2 4.4v2.2c.3 4 .8 6.6 2.6 10.1l.5 6.3c.2 4.6 1 8.3 2.5 12.7v6h2l1 14h2l.2 2q.7 9.7 2.8 19h2l.4 2.6q1 8.9 3.6 17.4l2 9h2l1 11h2l.4 3.7c.4 3.2 1 5.4 2.6 8.3l-1 2h3c1 6.7 1 6.7 0 9l3 1 .4 2c1 6.6 1 6.6 4.6 12q.9 3.7 1.3 7.4c.6 2.6.6 2.6 2.2 4.6 1.8 2.3 2 3.8 2.2 6.7l.2 2.4v2h2l.5 2.3.6 2.6 2 1v4l2 1 1 7 2 1 1 7 1 4h3l1 4c1.7-2.7 2.2-5 2.5-8 .5-4.4 1.4-6.9 4.5-10 .5-2.5.5-2.5.6-5.2l.3-2.7v-2h3l-.5-2.4c-.4-2.7-.2-4.2.6-6.7h2l-.1-2.4c0-2.6 0-2.6 2-4.6.6-2.2.6-2.2.7-4.7l.3-2.4V603h2q.7-5.5 1-11h2v-7h2q.7-5.5 1-11h2q.7-7 1-14h2v-2.7c0-3.3 0-3.3 1-5.6 1.6-4 1.8-8.4 2-12.7h2q.7-8 1-16h2v-3q.1-5.4 1.6-10.6 1.2-6.1 1.5-12.4h2v-2.3l-.1-3v-2.9q0-3.5 1-6.8h2l-.4-2.2c-.5-2.9-.5-5.3-.2-8.2l.3-2.7c.4-2.9.4-2.9 1.4-6.2a53 53 0 0 0 1.6-13.2l.2-2.5.2-6h2v-1.8l.4-8.2.2-2.9q.2-6 .9-12 1-7.9 1-15.6l.2-3q0-3.8.3-7.5h2l1-58h1l1-85h-2l-.1-3.6-.3-13.4-.1-5.8-.2-8.3v-2.6c-.2-10.3-.2-10.3-2.3-20.3l-.2-4.2-.1-2.4-.2-5q-.4-7.3-2.1-14.3-.8-4.5-.5-9.2V152h-2l-.4-6.9-.3-3.8q-.3-5-.2-10V126h31.9l14.8-.2h29.7c3.8 0 5.4 0 8.6 2.2.4 2.1.4 2.1.5 4.8v3c.2 1.6.2
40141.6.2 3.3v3.3l.4 10.6q.1 5.4.4 10.6 0 3.4.2 6.7v5.7c0 2 0 2 1.3 3v127h-2v3q0 15-.5 30l-.1 4.4-.4 10.6h-2v7.9q.3 1.1.2 2.2c0 4.8-.6 9-1.7 13.5a75 75 0 0 0-1.1 13.4l-.1 3-.3 7h-2v2.2q0 10.9-1 21.8h-1l-.1 2-.3 2.6-.2 2.6c-.4 2.8-.4 2.8-1.4 5.6a42 42 0 0 0-1.6 10.5l-.2 3.8-.2 3h-2l-1 19h-2v4.7q.3 1.4.2 2.7c-.2 2.5-.2 2.5-2.2 5.5-.5 3.2-.5 3.2-.6 6.6l-.2 3.6-.2 2.8h-2l-1 16h-2q-1.7 10.5-3 21h-2v3.6q0 5.3-1 10.4h-2v2.8c0 3.2 0 3.2-2 6.2-.4 2.7-.4 2.7-.6 5.6l-.2 3.1-.2 2.3h-2l-.1 2.2-.3 3-.2 3c-.4 2.7-1.1 4.4-2.4 6.8a53 53 0 0 0-2.5 11.3c-.5 3.7-.5 3.7-2.5 5.7-.5 2.2-.5 2.2-.6 4.6l-.2 2.5-.2 2h-2v2.2c0 2.7 0 2.7-2 4.7-.4 2.1-.4 2.1-.5 4.5-.3 4.2-.3 4.2-2.5 6.5l-1 7-2 4v4l-2 2-1 7h-2v2.1c0 3.1-.7 5.1-2 8-2 4.5-3 9-4 14h-2v2.2c0 2.7 0 2.7-2 4.7l-1 4-1 2.8c-1.1 3.1-1.1 3.1-1.5 6.5l-.5 2.7-2 1c-.6 1.8-.6 1.8-1 4l-.6 2.7-.4 2.3h-2l-2 12-3 1-.3 3.1a22 22 0 0 1-3.7 9l-1 6a41 41 0 0 1-4 7l-2 7h-2v7q-1.5.3-3 1l-2 11h-3v8q-1 .3-2 1v2q-1 .3-2 1l-.5 3.4-.5 3.5-2 1-2 6c-3.8.3-5.6.2-9-1.8-2-2.2-2-2.2-2-6.2l-3-1v-4h-3l-.4-2-.6-2-2-1v-3l-3-2-3-7-2-1a26 26 0 0 1-3-8h-2v-3l-3-2v-3h-2v-4l-3-1v-6l-3-1-1-3-2-1v-3h-2v-3l-2-1-2-6-2-1-1-7h-3l-.8-2.7a78 78 0 0 0-4.2-9.3l-1-2 1-2h-3v-6l-3-1q-2-4.4-3-9h-2l-.4-2.5-.6-2.5-2-1c-1.3-2.8-2-5.2-2.5-8.2-.2-3-.2-3-2.5-4.8l-1-3 1-2h-3c-2.3-3.7-2.2-6.8-2-11h-3v-8l-3-1c-2-3-2-3-2.5-6.2l-.5-2.8-2-1-.8-6q-.4-3.6-1.2-7l-3-1c-.7-1.9-.7-1.9-1.1-4.2l-.4-2.4-.5-2.4q-.8-3.6-2-7l-2-1v-5h-2l-1-10h-2l-.4-1.8c-1-4.3-1.8-8.3-3.6-12.2h-1l-.1-1.9-.3-2.5-.2-2.4c-.3-2.5-.3-2.5-2.4-5.2l-1-7-3-5.8a24 24 0 0 1-1.6-8.5l-.2-3.3-.2-2.4h-2l-.4-2.4c-1-5.7-1.8-11.2-3.6-16.6h-1l-1-13h-2l-.4-2.6q-1.4-9.8-3.6-19.4h-1l-.4-3.4-.5-4.4-.3-2.2q-.6-5-1.8-10l-1-6.4-1.5-9.9q-.7-3.8-.5-7.7h-2l-.1-3.4-.3-4.3-.1-2.2a23 23 0 0 0-1.5-8.6c-1.5-3.9-1.4-7.8-1.5-11.9q-.5-11.3-2.1-22.5-.6-5.6-.4-11h-2l-.1-2-.7-18.9-.3-7-.4-10.2-.1-3.2-.1-3-.1-2.6c-.1-2.4-.1-2.4-1.2-5.2l-.1-7.8v-68c0-5 0-5 1-6.2q1.3-11 1-21.9c0-7 .7-14 1-21h2l.3-3.3 1.6-25q.1-4.2.5-8.3v-2.2l.3-4.3c.3-4.9.3-4.9 1.4-6 1-6.6 1-13.2.9-19.8 0-2.2 0-2.2 1-4.2a70 70 0 0 1 7.9-1.2q1.3 0 2.5-.2c17.4-1.6 37.2-2.6 54.4 1M1329 512l1 2Zm-70 13 1 2ZM725 119v2l4 2v3l2 1v2h2v2h3l.2 1.8c.6 2.4.6 2.4 2.8 3.7 2.4 1.8 2.4 2.7 3 5.5l3 2v4l2.4.8 2.6 1.2c.6 1.9.6 1.9 1 4l2.1 1.5 1.9 1.5v4l3 1 1 3 2 1 1 5h3v5h3v3l3 2v3h2v5h3l2 8h3c1.1 3.8 1.1 3.8 0 6l4 2v3h2v2l2 1 1 6 2 2v3h2l1 3 2 1q.9 3 1.3 6.1c.6 2.3.6 2.3 3.7 3.9q.9 4 1 8h2q1.9 4.4 3 9h2l.4 3.4.6 3.6 2 1c.6 2.5.6 2.5 1.1 5.6l.5 3 .4 2.4 3 1v7h3l2 13h3l.1 1.9.3 2.5.2 2.5.4 2.1 2 1 .5 4.1c.4 4.2 1.2 7.9 2.5 11.9h2l.1 1.8.3 2.4.2 2.3c.4 2.8 1.4 5 2.4 7.5l1.6 7.1.8 3.7c.6 3.2.6 3.2.6 6.2h2l1 14h2l.4 3.4c.9 7.9 1.8 15.8 3.6 23.6h1l1 26h2q1.2 25 1.1 50.1v3.1c.1 32 .1 32-3.1 42.8l-.4 4.2-.1 2.1-.1 2.1-.1 2.3-.3 5.3h-2l.1 3.1A37 37 0 0 1 846 543l-.5 3.6c-.5 3.4-.5 3.4-1.5 6.2-1.2 3.7-1.4 7.1-1.7 10.9-.3 2.3-.3 2.3-2.3 5.3a41 41 0 0 0-2.7 13.8c-.3 2.2-.3 2.2-2.3 4.2q-.5 3.9-.7 7.8l-.3 2.2-2 1q-1.5 4.7-2.5 9.6c-.5 2.4-.5 2.4-1.5 5.3q-1.5 4.5-2 9.1h-2l.1 2.2c-.1 3-.8 4.2-2.1 6.8l-.5 3.1c-.5 2.9-.5 2.9-2.5 4.9l-1 7-3 1-.4 2.6-.5 3.3-.5 3.4-.6 2.7-2 1-1 7-2 3v2l-2 1-1 7h-2l-1 8h-2v5h-3l1 3c-.4 2.7-.4 2.7-1 5h-3l1 3c-.5 2-.5 2-1.3 4.1l-.8 2.2c-.9 1.7-.9 1.7-2.9 2.7-.7 2.5-.7 2.5-1 5h-2l.2 2.2c-.2 3.4-1.3 5-3.2 7.8a25 25 0 0 0-3 10h-3v4h-2v7l-2 1-1 5-2 2-1 2h-2l-.4 2.7q-1 5.8-2.6 11.3h-2l-.4 1.6q-1 4.3-2.6 8.4l-2 1-1 5-2 2c-2.2 3.8-2.2 3.8-3 8h-3l1 3c-1 3-1 3-3 5l-2 5h-9v-2h-2l-1-4h-2v-2l-2.1.4c-4-.6-5.3-2.6-7.8-5.6-1.1-1.8-1.1-1.8-1.1-4.8l-1.8-.2c-2.9-1-4.3-2.4-6.2-4.8v-4h-2v-2l-2.2-.8c-5.1-2.3-6.8-5.2-8.8-10.2l-3-2v-3l-2.4-1.4c-2.6-1.6-2.6-1.6-3.2-3.6l-.4-2-2.1-1.5-1.9-1.5v-4l-3-1v-3l-3-1v-4h-2v-4l-3-1-1-3-2-1q-1.6-3.8-2.9-7.7c-1-2.6-1-2.6-4.1-4.3l-1-5-2-2q-1.7-4-3-8l-2-1-2-6-3-5-1-4-2-1v-6h-3l-.4-2.2c-.5-2.8-.5-2.8-1.7-5.3a16 16 0 0 1-.9-7.5l-3-1-.3-2.2c-.5-2.8-.5-2.8-2.3-4.7-2-3-1.6-5.5-1.4-9.1h-3l-.4-3.4-.6-3.6-2-1v-7h-2l-1-10h-2l-1-9h-2v-4l-2-1c-.4-2.9-.4-2.9-.6-6.6l-.3-3.6-.1-2.8h-2l-.1-1.8-.3-2.4-.2-2.4c-.5-3.2-1.8-5.5-3.5-8.2a28 28 0 0 1-1.5-10l-.1-2.1-.3-5.1h-2l-.4-3.6-.5-4.7-.3-2.4-.3-2.3-.2-2.1c-.3-2.1-.3-2.1-1.3-4.9v-7h-2l-1-28h-2l-.1-22.3-.1-10.4v-15.7c0-6 .2-10.9 2.2-16.6l.4-4.2.1-2.1.1-2.1.1-2.3.3-5.3h2l.2-1.8L608 418l1-9h2l1-13h2l-.1-2.9c.1-3.1.1-3.1 2.1-5.1.4-2 .4-2 .5-4.3.3-3.6 1.1-6.3 2.5-9.7l.5-3.7c.5-3.3.5-3.3 2.5-5.3l1.1-4.3.5-2.4.4-2.3.6-3.1.4-1.9h2l.1-1.9.3-2.4.2-2.4c.4-2.3.4-2.3 2.4-5.3q2.2-6.9 3-14h3l-.7-2.2c-.4-3.6.7-4.8 2.7-7.8 1.9-3.9 2.5-7.7 3-12h2l1-9 3-1 2-13h3v-7h2v-6h3v-7l3-1-.7-1.6c-.4-3.5 1-5.4 2.7-8.4q1.7-4 3-8h2l-.1-2.3c.1-2.7.1-2.7 2.1-5.7l1-5 3-1-.6-2.3c-.4-2.7-.4-2.7.6-5.7h3l.3-3.7a21 21 0 0 1 3.7-9.3c.7-3.2.7-3.2 1-6h3l.4-3.8c.5-3.8.8-6.4 3.6-9.2l.5-3c.5-3 .5-3 2.5-5l1-2h2l-.1-3.3c.1-3.7.1-3.7 2.1-6.7l1-3h2l.6-2.6.8-3.3.7-3.4.9-2.7 2-1 .5-3.5.5-3.5 2-1 2-5 1.5-2.9a59 59 0 0 0 3.5-9.1l1-3h3v-4c3-.9 3.9-1 7 0m0 120v11h-2l-.9 3.3-2.1 6.7-.1 4.7.1 2.4v1.9h-2l-.4 2.9-.5 3.9-.5 3.7c-.5 3.1-1.2 4.9-2.6 7.5a52 52 0 0 0-2 17h-2l-2 14h-1l-.4 2.1-.5 2.7-.6 2.7c-.5 2.5-.5 2.5-1.5 5.5l-.1 6.2.1 3.3v2.5h-2a86 86 0 0 0-1 16h-2l-.4 3.1c-.6 3.9-.6 3.9-1.6 6.6-1.2 4.1-1.4 8-1.7 12.3-.3 3-.3 3-1.3 5.9a37 37 0 0 0-1.6 10l-.3 3.5-.1 2.6h-1l-.1 2.6-.3 3.5-.2 3.5c-.4 3.4-.4 3.4-1.4 6.2-1.4 4.5-1.2 8.9-1.
40141 13.6v2.8l.1 6.8h-2c-1.3 8-1.1 16-1.1 24v41.4q0 14.4 1.1 28.6h2v2.2l-.1 9.7-.1 3.4c0 5.9.3 11.1 1.7 16.8q.9 3.7 1.1 7.5l.3 2.5.1 1.9h1l.2 3.1.2 4.1.2 2q.3 5.5 1.4 10.8h2l-.1 2.3A49 49 0 0 0 699 622h2v2.3l-.1 2.9v3q.1 3.5 1.1 6.8h2l-.2 3.6c0 4.4 1.2 7.4 3.2 11.4h2v1.9l-.1 2.4v2.4c0 2.5 0 2.5 1.1 5.3h2v7l2 1 1 5 2 2 1 5h2l1 6h2l-.6 1.9c-.6 2.1-.6 2.1.6 4.1h2v4l2-1-1-2 3-1v-5h2c2.4-4.2 3.3-7.1 3-12h3c2.3-3.6 2.2-6.8 2-11h3v-8h3l.4-3.4c.6-3.6.6-3.6 2.6-5.6l-1-2 3-1v-7l3-1v-4l2-1v-7l3-1v-6h2l.4-3.4c.6-3.6.6-3.6 2.6-5.6l2-6 1-2v-7h2l.4-3.3c.6-3.7.6-3.7 2.6-6.7a59 59 0 0 0 3-20l3-1c.8-1.8.8-1.8 1.1-4.1l.5-2.4.9-6.9c.5-3.6.5-3.6 2.5-6.6.5-2.7.5-2.7.6-5.7l.3-3 .1-2.3h1a159 159 0 0 0 3.7-28.3c.2-5.6.2-5.6 1.3-6.7 1.1-7.2 1.1-14.4 1.1-21.7V460c.2-15.1.2-15.1-1.1-30l-1-1-.2-4.1-.1-2.6-.1-2.9A141 141 0 0 0 784 392h-1l-.1-2.4c-.4-5.6-1-10.4-2.9-15.6l-.5-4.1c-.4-3.4-.9-5.1-2.5-7.9l-1-4h-2l.1-2v-2.8l.1-2.6a14 14 0 0 0-2.2-6.6l-.5-3.2-.5-2.8-2-1-1-7h-2v-6l-3-1v-8h-2l-1-8h-2l-.4-2.3c-.6-2.8-.6-2.8-1.6-5.7l-2-1-2-7c-.9-3.3-.9-3.3-2-6l-2-1-1-3h-2l.1-3.4c.3-3.6.3-3.6-2.1-5.6l-2-5-2-4h-2v-5l-1.9-.8c-2.1-1.2-2.1-1.2-2.8-3.1l-.3-2.1-1-3h-2v-6h-2l-1-4zm-2 7 1 2Zm-24 109 1 2Zm-8 45 1 2Zm0 181 1 3Zm8 43 1 2Zm2273-504c7.4-.4 7.4-.4 9.9 1.2 1.1 1.8 1.1 1.8 1.4 3.7.6 2.5.6 2.5 3.7 4.1 3.4 2.2 3.2 2.4 4 6l5 4v3l2.5 1.4 2.5 1.6c.3 2.7.3 2.7 0 5h3l.2 1.8c.6 2.4.6 2.4 2.9 3.7l1.9 1.5v4l3 1 2 4 3 2v3h2v5h3v4l3 1v3l3 2v3h2v4l3 1v3h2q2.1 3.8 3 8h2l1 7h2v4h3l.6 1.9.8 2.5.7 2.5c.7 2.3.7 2.3 2.9 3.1q.9 3 1.3 6.1c.6 2.3.6 2.3 3.7 3.9l1 5 2 1 1 5 2 1 1 6h1v5h3v8l3 1v5h2a95 95 0 0 1 6 21h2v7h3l.1 1.8c.5 4.4 1.1 8.1 2.9 12.2v3h2l.4 2.2q1.5 9.6 4.7 19c.9 2.8.9 2.8.9 6.8h2l.4 3.1.5 4.1.3 2.1q.5 5 1.8 9.7l1.5 8.4a26 26 0 0 0 1.5 5.6v8h2l.2 2.1.7 9.2.3 3.3.5 5.9c.2 2.6.2 2.6 1.3 5.5l.6 7.7.1 2.1q.3 5.1.3 10.4c-.1 3.6-.1 3.6.5 6.2s.6 4.8.6 7.4v39.8q-.2 3.8-1.1 7.4l-.2 5.2-.1 2.9-.2 6-.1 2.9-.1 2.6c-.3 2.6-1.1 4.1-2.3 6.4q-.5 3.8-.6 7.8l-.1 2.1-.3 5.1h-2l.1 3.8c.1 3.4-.6 5.2-2.1 8.2-.4 2.5-.4 2.5-.5 5-.2 3.6-.9 5.8-2.5 9-.4 2.5-.4 2.5-.5 5a19 19 0 0 1-2.5 9 45 45 0 0 0-2.7 13c-.3 2-.3 2-2.3 4l-1 7h-2l.1 3.4c-.1 3.6-.1 3.6-2.1 5.6l-1 7-2 3-1 7h-2v7l-3 1-.4 2.9q-1 6.6-2.6 13.1h-2v5l-3 1 .6 1.8c.4 2.2.4 2.2-.6 5.2h-2l-.4 3.8c-.3 3.3-.7 4.3-2.6 7.2a39 39 0 0 0-3 10h-2l-1 8h-2v5l-3 1v7l-2 1-1 5-2 4-3 7h-2l-1 8h-2v6h-2l-.4 2.9c-.6 3.1-.6 3.1-2.6 5.1l-3.1 8.1-.9 2.3-2 5.6h-3l-.3 2.7c-.7 3.4-1.9 5.3-3.7 8.3l-1 6-2 4h-2l-.4 2.9-.6 3.1-2 1-1 5-2 2-3 8h-3l1 3c-1 3-1 3-3 5l-2 3c-3.6.2-3.6.2-7 0l-2-4h-2l-2-2-4-2c-2-1-2-1-3-4h-2l-3.2-3.7a43 43 0 0 0-7.2-7c-2.6-2.3-2.6-2.3-3-5.1l.4-2.2-2.3-.8c-3.7-1.6-5.2-3-6.8-6.7l-1.9-5.5h-3v-3l-3-2v-4l-2.4-.8-2.6-1.2c-.7-2.1-.7-2.1-1-4l-2-1v-4l-4-1-.4-1.9-.6-2.1-2-1v-4l-3-1v-3h-2v-4l-3-1c-.9-2.3-.9-2.3-1.7-5.1l-.7-2.7-.6-2.2h-2v-4h-3l-1-6h-2v-3l-2-1-2-8-1-4h-3v-6h-2v-5l-3-1c-1.1-3.4-1.1-3.4-2-7l-1-3-2-1-1-7-2-1-1-7c-.8-2.8-.8-2.8-2-5l-2-1-.7-6.1c-.2-2.1-.2-2.1-2.3-3.9l-1-5-2-2v-7h-2l-.4-2.2-.5-3-.5-2.9a43 43 0 0 0-2.6-7.9h-1l-.5-4.3-.3-2.4c-.2-2.3-.2-2.3-.2-5.3h-2l-.4-2.5-.5-3.3-.6-3.2q-.4-2.6-1.1-5.2c-.4-1.8-.4-1.8-.4-4.8h-2l-1-16h-2l-.1-2.5q-.6-9.3-2.5-18.4c-.4-2.1-.4-2.1-.4-6.1h-2c-1.2-23.8-1.2-23.8-1-34h-2v-36h2l1-26h1l.1-2.3.3-3 .2-3c.4-2.7.4-2.7 2.4-5.7.5-2.7.5-2.7.6-5.7l.3-3 .1-2.3h2l-.1-3.6q.1-5.7 1.1-11.4h2l-.1-2.7a20 20 0 0 1 2.1-8.3q2.3-7.6 3.4-15.4c.6-2.5 1.4-4.4 2.6-6.6q1.9-6 3-12h2l-.1-3.2c.1-2.9.2-5.1 1.1-7.8h2l-.1-2.4c.1-2.6.1-2.6 2.1-4.6.5-2 .5-2 .6-4.1l.4-3.9h2l.6-3 .8-3.8.7-3.8c.9-3.4.9-3.4 2.9-6.4l.5-3.6c.5-3.4.5-3.4 2.5-5.4v-3h3l-.1-3.2a13 13 0 0 1 2.1-7.8l1-4h2l-.1-2.3c.1-2.7.1-2.7 2.1-5.7a70 70 0 0 0 3.4-12.7l.6-2.3 2-1 2-5 1-2.3q1.8-5.3 3-10.7h2v-5l3-1v-7l3-1-.2-3.1c.2-4.6 1.6-6.3 4.2-9.9 1.2-3.2 1.2-3.2 2-6h2v-8h3l.4-2.4.5-3 .5-3.1.6-2.5 2-1 1-7h3l-1-3 2-1 1-7 2-2 1-4h2q2-5.3 3-11l3-1v-5h2v-6h3l-1-3 1-3h2l.4-3.9c.4-3.9.4-3.9 2.6-6.1q2.2-3.8 3-8m8 121q-1.2 7-1 14h-2c-3.7 10.4-3.7 10.4-3 21h-2l-.4 2.6-.6 3.4-.4 3.1a24 24 0 0 1-2.6 6.9c-2.4 6.3-2.2 12.3-2 19h-2c-1.3 3.8-1.4 7.4-1.6 11.3a18 18 0 0 1-2.4 6.7 72 72 0 0 0-2.7 17.3c-.3 2.7-.3 2.7-1.3 4.7-1.3 2.7-1.4 5-1.5 8-.2 4-.7 6.5-2.5 10a88 88 0 0 0-2 24h-2c-.8 2.8-1.1 5.2-1.1 8.1v4.7l.1 2.4v5.8h-2a139 139 0 0 0-3 38h-2q-1.4 14.2-1.1 28.6v7.5q0 12.5.5 25.1l.2 2.3c-.1 3.6-.1 3.6 1.4 6.5l.3 6.6v2l.2 6.5c-.5 13.3-.5 13.3 2.5 25.9l.6 6.1.2 3.3.2 2.6h1l.2 3.4.2 4.4.2 2.2q.2 5 1.4 10h2l-.1 2.9v3.8l-.1 3.7a21 21 0 0 0 2.2 8.6l1 5h2l-.1 2.3v2.9l-.1 3
4014c.2 2.9.9 4.3 2.2 6.8l1 5.9c.6 4 1.4 7.4 3 11.1h2v8l3 1-.6 1.7a14 14 0 0 0 .6 7.3l2 1 1 5h2v7l2 1 1 7 2 2 1 4h2l1 6 1-2 2-1v-2l2-2c2.3-4 3.3-7.4 4-12l2-2v-3h2v-7h3v-6h2l1-3-1-2 3-1v-7h3v-8l3-1-1-4 3-1c1.2-2.9 1-3.9 0-7l3-1v-6h2a39 39 0 0 0 3-15l3-1 .4-3.8c.6-4.6 2-7.3 4.6-11.2 1-5 1-5 0-10l3-1v-10h2c1.7-4.1 3.1-7.7 3.6-12.1.4-3.9.4-3.9 1.5-6.7 1.3-4.7 1.1-9.3.9-14.2h2q2.8-12.7 3.7-25.8c.3-2.2.3-2.2 1.3-3.2q1.2-7.7 1.1-15.4v-61c.2-6.7.2-6.7-2.1-12.6l-.5-11c-.2-5-1-9.2-2.5-14l-1-7h-1l-1-12-3-1 .1-2.7v-3.5l.1-3.5c-.2-3.2-.8-5.4-2.2-8.3l-1-4h-2v-8l-3-1 .6-1.7c.5-2.9-.1-4.7-1-7.5l-.9-2.8-.7-2h-3v-9l-3-1v-7l-2-1-1-5h-2l.2-2.6c-.2-3.9-1.4-6.1-3.2-9.4v-2h-3l1-3h-3l.2-3.2c-.2-4-1-5.6-3.2-8.8v-2l-2-1-1-3h-2l-1-6h-2l-.4-2.8c-.5-2.8-1.2-4.7-2.6-7.2h-2v-6h-2l-1-5h-2v-3h-2zm-113 162 1 2Zm78 5 1 2Zm-86 35 1 2Zm8 133 1 2Zm86 45 1 2Zm-494-503.3h23.5c13.2 0 26.7 0 39.5 3.3v23h-2v1.6q0 111.8-.2 223.3v2.8l-.2 68.7-.1 39.8-.1 3v14.2L2519 614h-1v59l1-2 6-1c4.9-.9 9.5-1.7 14-3.6 4.3-1.7 8.5-2 13-2.4v-2l1.9-.4c4.3-.8 8.4-1.6 12.4-3.3 3.3-1.2 5.3-1.7 8.7-1.3v-2l11-1v-2h5v-2l2 .1a43 43 0 0 0 12.8-3 64 64 0 0 1 18.2-4v-2q1-.4 1.9-.5c4.3-.8 8.4-1.6 12.4-3.3 3.3-1.2 5.3-1.7 8.7-1.3v-2h2.5c2.5.3 2.5.3 3.5-1h5v-2h8q.3 22.3-1 44.5-1.3 30-1.6 59.8v2.2l-.4 26.5h-2v2.1c0 15 0 30-1 45a17 17 0 0 1-8.1.7h-3.1q-1.7-.3-3.4-.3l-3.6-.2-11.5-.7q-4 0-8-.4-21-1.1-42-2.5-18.1-1.2-36.4-1.8-25-1-50.2-3-13.6-1-27.4-.9-4.4 0-8.6-.5c-8-.9-15.8-.6-23.7-.5v-2h-2q-.2-29 .4-57.7v-3.5l.4-18.5.7-40v-2q.8-47.8 1.2-95.4v-3.8l.3-45h2v-2.5q0-37.2.5-74.5v-2.6l.5-31.5h1l1.2-23.2.5-10.7.6-10.4q0-3 .3-5.9.5-10.9.4-21.7.1-9.6.5-19v-4l.2-4v-3.5c.3-2.6.3-2.6 1.3-3.6l.6-7v-2.3q.9-16.6 1-33.3v-6.9l.4-16.5h1v-2.8l.4-10.3v-4.5l.3-6.4v-3.9c.3-3 .3-3 1.3-6l.6-7.7v-2.3q.9-19.2 1-38.3v-10.2q.3-1.4.2-3.2V149c.2-1.9.2-1.9 1.2-2.9l.3-5.8v-3.5l.2-7.4v-3.5q.3-1.5.2-3.2c.5-4.4 2.4-4.9 6.4-4.9m58 400.3v94h1v-94zM1587 118l18.2-.1 6.1-.1c32.4-.2 32.4-.2 42.7 3.2l-1 289h-2v263l9.6-4.1a29 29 0 0 1 8.2-1.5l3-.3 2.2-.1v-2l11-1v-2l2-.4 2.8-.5 2.6-.5c2.6-.5 2.6-.5 4.5-1.6 2.8-1.3 5.4-1.8 8.4-2.4 3.7-.9 6.8-1.7 10.3-3.2 4.7-1.9 9.4-2.1 14.4-2.4v-2l3.7-.8a140 140 0 0 0 15.3-4.4c2.8-.8 5.1-1 8-.8v-2l1.7-.3q6.1-1.3 12.1-3.3c3.2-1.1 5.8-1.7 9.2-1.4v-2l11-1v-2c5.8.9 5.8.9 8 2v48h-2v1.7q.1 21.3-.4 42.6l-.2 9.3-.1 6v2.7l-.1 2.6v2.3c-.2 1.8-.2 1.8-1.2 3.8v6.9l-.3 26.7-.1 5.3-.2 7.7v2.4c-.1 3.8-.3 6.8-2.4 10q-15.1 0-30.3-.3l-2-.1q-19.6-.7-39.1-2.2-22.3-1.6-44.8-2.5-24.9-1-49.9-2.9-12.7-1.1-25.6-1-9.2-.1-18.5-.9l-3.9-.3c-9.5-.7-9.5-.7-12.9-1.8l1-183h2v-3.2q-.2-37.8.4-75.4l.1-6.6.2-12.3v-3.8l.1-3.4v-3.1c.2-2.2.2-2.2 1.2-3.2l.1-4.6-.1-3v-3.3q0-18.7.6-37.5l.2-4.2v-2.1q.3-9 .1-18l.1-5.3 1-1 .3-4.2.1-2.7.1-3 .2-3.1.9-36.9.1-7.1.3-17h2v-3.5q-.1-15 .4-29.9l.2-3.2.1-3 .1-2.7c.2-2.7.2-2.7.7-5.7q.7-4.4.5-8.8 0-11 .4-21.7l.2-6.5.1-4.2.1-3.7c.2-3.1.2-3.1 1.2-6.1 1.4-14.5 1.3-29.1 1.6-43.6l.1-7.1.3-17.3h2v-2.9q0-17.2.8-34.3l.4-9.2.3-5.9.1-2.7q.1-6 1.4-12m399 0q20 .7 40 2.6l36.8 3q17.1 1.2 34.2 2.8 8.5.8 17.2 1.1 12 .9 24.1 2.5 9 1.1 17.9 1 7.6.2 15.1 1.4 12.6 1.6 25.3 2.7l2.5.3 15 1q17.2 1.1 34.4 2.7l6.9.5 16.6 1.4c.7 4 1.1 7.3.6 11.4l-.3 2.6-.3 2h-2l-.3 2.1q-1.1 7-3.3 14a50 50 0 0 0-2.1 12.8c-.3 2.1-.3 2.1-2.3 5.1v5l-2 2-.7 6.1c-.3 2.2-1.3 3.8-2.3 5.9l-1 8h-1l-.4 3.8c-.3 3.3-.7 4.3-2.6 7.2l-1 5q-5.4 1-11 1v-2l-2.8-.3q-8-1.4-15.8-3.6-11.4-2.9-22.8-5.5c-2.6-.6-2.6-.6-5.5-1.6a111 111 0 0 0-9.5-2.5q-6.9-1.5-13.6-3.5c-5.9-1.5-5.9-1.5-12-2v-2l-13-1v-2l-2 .2c-3.2-.2-5.6-1.2-8.6-2.3q-6-2-12.3-3.2l-7.2-1.9c-3-1-3-1-6.9-.8v-2l-2.6.1c-3.4-.1-6.3-.6-9.6-1.3l-3.2-.8q-6.9-2.1-13.6-5l-1 36h-1l-.2 3.9-.2 5-.2 2.5-.1 2.5-.1 2.2c-.2 1.9-.2 1.9-1.2 3.9l-.5 8.3c-.4 9.2-.4 9.2-1.5 13.7l2.4.1q12.3 1 24.6 2.9c13.9 2.2 13.9 2.2 27.8 3.5q7.8.6 15.5 2.3 13.7 2.3 27.5 3.8l16.4 2 3 .4 2.9.4 2.5.3q3.7.4 7.4 1.3c3.5 7 .9 20.4 0 28h-2l.1 3.4c0 5-1 9.7-2.1 14.6l-2.6-.5c-6.1-.8-12.3-.9-18.4-1.2l-4.2-.2-13.2-.5-17.3-.8-2.2-.1a1434 1434 0 0 1-35.5-2q-17.2-1-34.6-1.7l-1 126h-1v1.9a72701 72701 0 0 1-1.9 256.1l-.2 23.9-.3 29.4-.2 15.1-.1 13.9v5l-.1 6.9v3.9c-.2 2.9-.2 2.9-1.2 4.9h-40v-2h-2c-1.1-17.3-1.1-17.3-1-24.2.2-11.6.2-11.6-2-22.8v-5.2q0-11.4-1-22.8h-1l-.4-17.9-.2-6.1q-.5-18-.4-36h-2l-.1-3.5-.3-13.1-.1-5.7c1-18.8 1-18.8-2.5-36.7l-.1-6.5v-8.1l.1-4.2V588h-2l-.1-3.7-.3-13.8-.1-5.9c1.3-19.4 1.3-19.4-2.5-36.6l-.2-7.4-.1-4.9V513c-.4-24-2-48-3.7-72h-1l-.1-3.8-.3-14.2-.1-6.1c1.3-18.9 1.3-18.9-2.5-35.9l-.3-8.5v-2.7l-.2-8.4c.6-20 .6-20-2.5-39.4l-.1-6.6v-8.1l.1-4.1V293h-2l-.1-3.6-.3-13.4-.1-5.8q-.2-14.4-1-29l-.1-2.1c-.2-3.7-.2-3.7-1.4-7.1q-.3-3-.3-6.1l-.1-3.8-.2-4-.1-3.8-.3-17.4q0-10-1-20.1-1.3-15.4-1-30.8h-2zm2019-2 80.8 2.2 39.9 1.1 2.7.1 12.2.3c20.6.4 20.6.4 24.4 2.3v2h2v6h-1l-.4 15.1-.2 5.1q-.4 19.3-.4 38.8h-90l-1 71h-1l-.1 2.6-1 24.8-.5 12.7-.5 12.2-.2 4.7-.3 6.6-.2 3.7q-.4 5.8-1.2 11.7h86l-1 39h-2v2.1q.1 8.8-.2 17.5l-.2 3.6c-.6 2.8-.6 2.8-2.3 3.9a23 23 0 0 1-8.2 1.4l-3.6.2-3.9.2-8.1.5-2.1.2q-11.2.7-22.3 2-15 1.6-30.1 2.4l-2 35h-2l-1 34h-1l-.2 3.2-.2 4.2-.2 2.2c-.3 5.3-.3 5.3-1.4 6.4-1.2 7.3-1.3 14.8-1.6 22.1l-.1 3.2-.3 7.7h-2l-1 34h-1l-.2 3.7-.2 4.7-.2 2.5c-.3 6-.3 6-1.4 7.1q-1.3 10.7-1.6 21.6l-.1 3.3-.3 8.1h-2l-1 34h-1l-.2 3.2-.2 4.2-.2 2.2c-.3 5.3-.3 5.3-1.4 6.4-1.2 7.6-1.3 15.4-1.6 23.1l-.1 3.5-.3 8.4h-2l-1 27q20 .2 40.1-.9 17.4-1 34.8-1.7l3.4-.1q11.8-.4 23.7-.3v2h2l.1 34v47.4c0 5.5 0 5.5-1.1 6.6l-9.1.2h-2.9l-6.3.1h-10l-21.3.2-24.5.2-9.8.1q-16.6 0-33.4.9-12.3.5-24.6.4l-7.6-.1h-6.5q-.1-33.6.5-67.3l.1-11.8.4-22.9h2v-2.8q0-43.4.5-86.8l.1-17.5.4-33.9h2v-2.7l-.1-25.4v-41c.1-2.9.1-2.9 1.1-3.9l.3-6.5.1-2.1.1-7.1.1-2.5q.7-34.8.9-69.7l.2-17.7.3-34.4h2v-2.7q0-43.1.5-86.3l.1-17.6.4-34.4h2v-2.6l-.1-24.3v-39.4c.1-2.7.1-2.7 1.1-3.7q.3-3.7.3-7.3l.1-2.2.2-7.1.1-4.7zm-3 105v29h1v-29zm62 251 1 2Zm-70 103v24h1v-24zm54 66v6h1v-6zM364 123l3 2v2l2.4.4 2.6.6 1 2 7 2v3l2.4.4 2.6.6 1 2 3.6 2.1 3.4 1.9v7h-5v2h-2l-1 4-1.9.4-2.1.6-1 2h-2v2l-1.9.3c-2.5.6-2.5.6-4.1 3.7h-2v2l-5 3-1 2-5 1v2l-2.4.9c-2.7.8-2.7.8-3.6 3.1h-2l-.8 1.9C349 182 349 182 346 183c-1.5 1.6-1.5 1.6-2.9 3.6-2.7 3.3-2.7 3.3-6 3.8l-2.1-.4-.9 1.9-2.1 4.1h-2l-1 4-5 1v4h-5v2l-2 1c-.7 2.5-.7 2.5-1 5h-5v4h-2l-1 3c-1.4 1.7-1.4 1.7-3 3h-2v4c-1.4 1.8-1.4 1.8-3 3h-2l-1 5-4 1-.4 3.4-.6 3.6-2 1-1.5 3.5C287 251 287 251 285 252l-1 3h-2l-1 7h-2v3h-2l-1 8h-2v5h-2l-.1 1.8c-.5 4.7-1.4 8.7-2.9 13.2l-1 8h-2v2.6l.1 3.3v3.4c-.1 2.7-.1 2.7-1.1 3.7l-.1 4.4v13.7c-.1 1.9-.1 1.9 1.1 2.9l.1 6.6-.1 3.6v2.8h2l1 14h2q1.7 9 3 18h2c3.4 8.4 3.4 8.4 3 13h2l1 8h2l1 6h2v3h2l1 8h2c3 6.6 3 6.6 3 10h2l1 6h2c3 6.6 3 6.6 3 10h2l1 6h2c3 6.6 3 6.6 3 10h2l1 8h2l1 6h2v3h2l1 7h2l3 11h2l1 8h2l1 8h2v5h2l1 8h2l.9 3.4c.7 3.4.7 3.4 2.1 4.6v5h2l.8 3.9q1.5 6.5 4.3 12.8 1.6 4 1.9 8.3h1l.4 2.6c1 7.2 1 7.2 2.7 14.3q1.3 4.9 1.9 10.1l1 1 .1 5.6-.1 3v2.4h2v44h-2v1.9l.1 2.5v2.5c-.1 2.1-.1 2.1-1.1 3.1l-1.2 9.2A52 52 0 0 1 354 676l-1 4h-2l-.4 2q-1.
40141 5.5-2.6 11h-2l-1 8h-2l-1 4h-2v4h-2l-1 7-4 1-1 5h-2l-.2 2.4c-.8 2.6-.8 2.6-2.8 3.8l-2 .8-1 2h-2l-.1 2.1c-1.4 4.3-4.4 6.2-7.9 8.9-3.2 2.9-4.5 5-6 9-1.6 2-2.4 2.9-4.9 3.4-3.1.9-4.2 3-6.1 5.6-2.6 2.8-2.6 2.8-5 5h-2v2l-2.2.7c-4.2 1.9-6.8 5.2-9.9 8.5-2.1 1.9-3.2 2.2-5.9 2.8l-1.6 1.6-1.4 1.4h-3v3l-5 1v2l-5 1v2h-3v2l-8 2v2h-3v2l-6 1v2l-2.1.7q-8.2 3-16 6.6c-1.9.7-1.9.7-4.9.7v2l-8 1v2l-7 1c-1.9-4-2.4-7.7-2.8-12.1 0-1.9 0-1.9-1.2-2.9v-7h-2l-.2-1.7-.7-7.7-.3-2.8-.3-2.5-.2-2.4c-.1-1.9-.1-1.9-1.3-2.9v-5h2v-2l5-1v-2h3v-2l1.9-.4 2.1-.6 1-2 3-1 1-2h2v-2l1.9-.3c2.5-.6 2.5-.6 4.1-3.7h2v-2h2l2-4h4v-2l2.4-1.9c2.6-2.1 3.3-2.9 3.6-6.1h2v-2h2l1-3h2l1-3c2.4-2.7 2.4-2.7 5-5h2l.4-1.8a24 24 0 0 1 2.6-6.2l2-1 .4-1.9c.6-2.1.6-2.1 3.6-4.1 1.2-2.1 1.2-2.1 2-4h2l.2-3.2c.9-4.3 1.8-4.8 4.8-7.8q1.7-4.3 3-9l1-3h2l.4-1.9L274 665h2l1-13h2l-.1-3.4c.1-3.6.1-3.6 1.1-4.6 1.1-10.1 1.2-20.2 1.1-30.4v-2c1.4-16.7 1.4-16.7-2.1-31.6l-.1-6.1.1-3.3V568h-2l-1-13h-2l-1-11h-2v-5h-2l-1-8h-2v-4l-3-1v-3h-2v-4l-1.9-.8c-2.5-1.4-2.9-2.6-4.1-5.2l-1.5-1.5c-1.7-1.7-2.4-3.4-3.5-5.5l-1.6-1.6C247 503 247 503 247 500h-2v-2l-2.4-.7-2.6-1.3c-.8-2.6-.8-2.6-1-5h-2c-1.6-1.2-1.6-1.2-3-3v-4l-2.4-.7c-3.3-1.6-3.4-2.9-4.6-6.3l-3-2-1-4-3-2-2-4-2-1-.4-1.9c-.5-2.5-.5-2.5-3.6-4.1v-4l-4-1-.4-1.9-.6-2.1-2-1-1-4-2-1v-4l-3-1v-3h-2l-.8-1.7-1.1-2.2-1-2.2c-1.1-2.1-1.1-2.1-3.1-3.9v-3h-2v-4l-3-1v-3h-2v-4l-3-1-1-6h-2v-3h-2l-2.4-6.8-.7-1.9q-1.7-4.6-2.9-9.3h-2l-2.4-8.2-.7-2.3A92 92 0 0 1 162 360h-2l-.4-2.8-.5-3.6-.6-3.7c-.2-2.8-.2-2.8-1.5-3.9-1.9-9.8-2.3-19.6-2.3-29.6v-6.3c0-8.2.4-16.2 2.3-24.1l1-1 1.1-6.6.5-3.6.4-2.8h2l3-11h2l.4-2.8c.5-2.8 1.2-4.7 2.6-7.2h2l1-4h2l1-5h2l.2-1.6q1.9-6.1 6.9-10c2.1-1.3 2.1-1.3 2.7-3.6 1.9-4.3 5.4-7.1 9.2-9.8h2v-5l1.7-.1c2.9-1.1 4.1-2.9 6-5.3a56 56 0 0 1 6.3-6.6h2v-2l2.3-.8c2.7-1 2.7-1 4.3-2.8l1.4-1.4h3v-2h2l1-4 5-1v-2l1.9-.9c2.3-.9 2.3-.9 3.1-3.1 1.8-.6 1.8-.6 4.1-1.1l2.2-.5 1.7-.4v-2h3v-2l5-1v-2h3v-2l7-1v-2l3-1 1-2h4v-2l6-1v-2q4.8-2.1 10-3v-2l6-1v-2l8-1v-2l1.9-.6 2.5-.8 2.5-.7c2.3-.7 2.3-.7 3.1-2.9q3.8-1.2 7.8-2.2c2.4-.6 2.4-.6 3.2-2.8q4-.7 8-1v-2l5.3-2 3-1.1c2.7-.9 2.7-.9 5.7-.9v-2l5.6-2.5 3.2-1.4c3.3-1.1 5.7-1.5 9.2-1.1m4404-88.2 3.5-.1c7.4 0 13.6.8 20.5 3.3l3.6 1.1 2.4.9v2l2.7.4c3.3.6 5.4 1.8 8.3 3.6h2v2h2l1 2 3 1v2h2v2h2c1.6 1.4 1.6 1.4 3 3v2l5 2v5c1 .3 1 .3 1.8.8 2.6 1.5 3.2 2.5 4.2 5.2v3h2l2 5 1.5 3.5a91 91 0 0 1-.5 55.4h-2l-1 6h-2l-.4 1.8q-1 3.5-2.6 6.3l-2 1-.5 1.8c-.7 2.8-1.6 3.4-3.8 5a40 40 0 0 0-6.5 6.5q-1.1 1.5-2.2 2.6h-3l-1 2h-2v3l-4.3 1.5-2.4.8q-3 1.1-6.3 1.8v2q-1 .3-2.2.3c-2.9.6-2.9.6-5.6 1.6-7 2.3-14.7 2.3-22 2.3h-2.8c-8.6 0-16.3-1.2-24.4-4.2h-2v-2l-2.2-.3q-4.6-1.2-8.8-3.7h-2l-1.5-2.4-1.5-2.7h-3c-5-5.2-5-5.2-5-8l-1.9-.7c-3.4-2-4.9-3.4-6-7.2l-3-2c-1.8-2.7-2-3.8-2-7h-2l-1-6h-2q-.4-1-.5-2-1.6-9.5-3.6-19h-1v-16h1l.1-1.7c.4-4.5 1.1-8.1 3-12.3l1-7h2l1-6h2v-4h2l.2-2 .7-2 2-1 .6-2.2c1.8-3.6 4.4-5.6 7.6-8.2 2-1.5 2-1.5 2.8-3.6h2v-2l5-1 .1-1.9 1-2.1c2.7-1.1 2.7-1.1 6-2l2-1.1c2-1 2-1 5-1v-2q1.5-.2 3.1-.7l4.2-1.2 2.1-.5c7-1.9 11.8-2.7 19.4-2.7M4740 54l-3 1v2l-5 1-1 4-3-1-2 1v2h-2c-3 3.3-5 6-7 10l-2 1v4h-2l-1 6h-2c-6.3 16.2-8.3 31.7-1.4 48l1.4 3h2l.3 2.7q.8 4.4 2.7 8.3l2 1 1 3h2l.6 1.7c2 3.3 4.3 5 7.4 7.3h3l1 4 5 1v2l7 1v2c14 6.2 30.3 6.3 45 2q4-1.8 8-4v-2l3 1v-2l5-1 1-4 2.3-.3c2.8-.7 4-1.3 5.7-3.7v-2l3-1 3-5 2-1v-4h2v-4h2c3-6 4.4-10.2 4-17h2V99h-2l.3-3.3c0-5.7-2.6-10-5.3-14.7l-1-2h-2v-4l-3-2a56 56 0 0 1-3-6h-2l-1-3h-2v-2l-3-1-2 1-.2-1.9c-1.2-3-2.9-3.7-5.8-5.1h-3v-2l-1.7-.4q-3.8-1-7.5-2.6a50 50 0 0 0-14.8-3l-2.4-.1a55 55 0 0 0-30.6 7"/><path d="m4739 65 22.1.4 7 .2 5.5.1h2.8q6.9 0 13.6 1.3v2h3v2h2v2l3 1c4.6 7.1 2.9 16.1 2 24h-2l-1 5-5 1 3 1v5l3 1v10h2l.1 3.2.3 4.1.1 2.1c.2 3.7.4 5.5 2.5 8.6v4h-14a23 23 0 0 1-2.6-11.2l-.3-3.9-.1-2.9h-1l-.4-1.8-.5-2.4-.5-2.4c-.6-2.8-.6-2.8-2.6-6.4h-28v31l-14 1zm14 13v22l11.1.2 3.1.1c6.1 0 10.4-.4 15.8-3.3l2.4-1.1c2.7-3.2 1.9-7 1.6-10.9h-2l-1-5h-2l-1-2z"/></svg> 4015 4016 4017 </div> 4018</a> 4019 4020 4021 4022 4023 4024 4025<nav class="header__inline-menu "> 4026 <ul class="list-menu list-menu--inline " role="list"><li><header-menu> 4027 <details id="Details-HeaderMenu-1" class="mega-menu"> 4028 <summary 4029 id="HeaderMenu-shop" 4030 class="header__menu-item list-menu__item link focus-inset" 4031 >
4032 <span 4033 > 4034 <!-- The Hipelement replaceShop--> 4035 <!-- The Hipelement -- Menu icons -- Hair Concerns for example --><span class="menu-text"> 4036 Shop 4037</span> 4038 4039 4040 </span><svg class="icon icon-caret" viewBox="0 0 10 6"><path fill="currentColor" fill-rule="evenodd" d="M9.354.646a.5.5 0 0 0-.708 0L5 4.293 1.354.646a.5.5 0 0 0-.708.708l4 4a.5.5 0 0 0 .708 0l4-4a.5.5 0 0 0 0-.708" clip-rule="evenodd"/></svg> 4041</summary> 4042 <div 4043 id="MegaMenu-Content-1" 4044 class="mega-menu__content color-scheme-1 gradient motion-reduce global-settings-popup" 4045 tabindex="-1" 4046 > 4047 4048 <div class="mega-menu__columns page-width" style="text-align:left;"> 4049 <div class="mega-menu__column"></div> 4050<div class="mega-menu__column"> 4051 <a 4052 id="HeaderMenu-shop-favourites" 4053 href="#" 4054 class="mega-menu__link mega-menu__link--level-2 link" 4055 4056 > 4057 <!-- The Hipelement removed > Favourites --> 4058 4059 <!-- The Hipelement -- Menu icons -- Hair Concerns for example --><span class="menu-text"> 4060 Favourites 4061</span> 4062 4063 4064 4065 </a> 4066 <ul class="mega-menu__sublist"><li> 4067 <a 4068 id="HeaderMenu-shop-favourites-bestsellers" 4069 href="/collections/best-sellers" 4070 class="mega-menu__link link" 4071 4072 > 4073 <!-- The Hipelement removed > Bestsellers --> 4074 <!-- The Hipelement -- Menu icons -- Hair Concerns for example --><span class="menu-text"> 4075 Bestsellers 4076</span> 4077 4078 4079 </a> 4080 </li><li> 4081 <a 4082 id="HeaderMenu-shop-favourites-hair-routines" 4083 href="/collections/bundle-collection" 4084 class="mega-menu__link link" 4085 4086 > 4087 <!-- The Hipelement removed > Hair Routines --> 4088 <!-- The Hipelement -- Menu icons -- Hair Concerns for example --><span class="menu-text"> 4089 Hair Routines 4090</span> 4091 4092 4093 </a> 4094 </li><li> 4095 <a 4096 id="HeaderMenu-shop-favourites-skin-care" 4097 href="/collections/vitamin-c" 4098 class="mega-menu__link link" 4099 4100 > 4101 <!-- The Hipelement removed > Skin Care --> 4102 <!-- The Hipelement -- Menu icons -- Hair Concerns for example --><span class="menu-text"> 4103 Skin Care 4104</span> 4105 4106 4107 </a> 4108 </li><li> 4109 <a 4110 id="HeaderMenu-shop-favourites-new-launch" 4111 href="/collections/new-launches" 4112 class="mega-menu__link link" 4113 4114 > 4115 <!-- The Hipelement removed > New Launch --> 4116 <!-- The Hipelement -- Menu icons -- Hair Concerns for example --><span class="menu-text"> 4117 New Launch 4118</span> 4119 4120 4121 </a> 4122 </li><li> 4123 <a 4124 id="HeaderMenu-shop-favourites-rosemary-hair-growth-treatment" 4125 href="/collections/rosemary" 4126 class="mega-menu__link link" 4127 4128 > 4129 <!-- The Hipelement removed > Rosemary Hair Growth Treatment --> 4130 <!-- The Hipelement -- Menu icons -- Hair Concerns for example --><span class="menu-text"> 4131 Rosemary Hair Growth Treatment 4132</span> 4133 4134 4135 </a> 4136 </li><li> 4137 <a 4138 id="HeaderMenu-shop-favourites-mens-bestseller" 4139 href="/collections/mens-bestseller" 4140 class="mega-menu__link link" 4141 4142 > 4143 <!-- The Hipelement removed > Men's Bestseller --> 4144 <!-- The Hipelement -- Menu icons -- Hair Concerns for example --><span class="menu-text"> 4145 Men's Bestseller 4146</span> 4147 4148 4149 </a> 4150 </li><li> 4151 <a 4152 id="HeaderMenu-shop-favourites-steal-deals" 4153 href="/collections/steal-deal" 4154 class="mega-menu__link link" 4155 4156 > 4157 <!-- The Hipelement removed > Steal Deals --> 4158 <!-- The Hipelement -- Menu icons -- Hair Concerns for example --><span class="menu-text"> 4159 Steal Deals 4160</span> 4161 4162 4163 </a> 4164 </li></ul> 4165 </div><div class="mega-menu__column"> 4166 <a 4167 id="HeaderMenu-shop-shop-by-product" 4168 href="#" 4169 class="mega-menu__link mega-menu__link--level-2 link" 4170 4171 > 4172 <!-- The Hipelement removed > Shop by Product --> 4173 4174 <!-- The Hipelement -- Menu icons -- Hair Concerns for example --><span class="menu-text"> 4175 Shop by Product 4176</span> 4177 4178 4179 4180 </a> 4181 <ul class="mega-menu__sublist"><li> 4182 <a 4183 id="HeaderMenu-shop-shop-by-product-shampoo-conditioner" 4184 href="/collections/shampoo-conditioner" 4185 class="mega-menu__link link" 4186 4187 > 4188 <!-- The Hipelement removed > Shampoo + Conditioner --> 4189 <!-- The Hipelement -- Menu icons -- Hair Concerns for example --><span class="menu-text"> 4190 Shampoo + Conditioner 4191</span> 4192 4193 4194 </a> 4195 </li><li> 4196 <a 4197 id="HeaderMenu-shop-shop-by-product-hair-oils" 4198 href="/collections/hair-oils" 4199 class="mega-menu__link link" 4200 4201 > 4202 <!-- The Hipelement removed > Hair Oils --> 4203 <!-- The Hipelement -- Menu icons -- Hair Concerns for example --><span class="menu-text"> 4204 Hair Oils 4205</span> 4206 4207 4208 </a> 4209 </li><li> 4210 <a 4211 id="HeaderMenu-shop-shop-by-product-glow-soaps" 4212 href="/collections/soaps" 4213 class="mega-menu__link link" 4214 4215 > 4216 <!-- The Hipelement removed > Glow Soaps --> 4217 <!-- The Hipelement -- Menu icons -- Hair Concerns for example --><span class="menu-text"> 4218 Glow Soaps 4219</span> 4220 4221 4222 </a> 4223 </li><li> 4224 <a 4225 id="HeaderMenu-shop-shop-by-product-serum-treatments" 4226 href="/collections/serum-treatments" 4227 class="mega-menu__link link" 4228 4229 > 4230 <!-- The Hipelement removed > Serum Treatments --> 4231 <!-- The Hipelement -- Menu icons -- Hair Concerns for example --><span class="menu-text"> 4232 Serum Treatments 4233</span> 4234 4235 4236 </a> 4237 </li><li> 4238 <a 4239 id="HeaderMenu-shop-shop-by-product-essential-oils" 4240 href="/collections/essential-oils" 4241 class="mega-menu__link link" 4242 4243 > 4244 <!-- The Hipelement removed > Essential Oils --> 4245 <!-- The Hipelement -- Menu icons -- Hair Concerns for example --><span class="menu-text"> 4246 Essential Oils 4247</span> 4248 4249 4250 </a> 4251 </li><li> 4252 <a 4253 id="HeaderMenu-shop-shop-by-product-home-aroma" 4254 href="/collections/aromatherapy" 4255 class="mega-menu__link link" 4256 4257 > 4258 <!-- The Hipelement removed > Home & Aroma --> 4259 <!-- The Hipelement -- Menu icons -- Hair Concerns for example --><span class="menu-text"> 4260 Home & Aroma 4261</span> 4262 4263 4264 </a> 4265 </li><li> 4266 <a 4267 id="HeaderMenu-shop-shop-by-product-gifting" 4268 href="/collections/gifting" 4269 class="mega-menu__link link" 4270 4271 > 4272 <!-- The Hipelement removed > Gifting --> 4273 <!-- The Hipelement -- Menu icons -- Hair Concerns for example --><span class="menu-text"> 4274 Gifting 4275</span> 4276 4277 4278 </a> 4279 </li></ul> 4280 </div><div class="mega-menu__column"> 4281 <a 4282 id="HeaderMenu-shop-hair-concern" 4283 href="#" 4284 class="mega-menu__link mega-menu__link--level-2 link" 4285 4286 > 4287 <!-- The Hipelement removed > Hair Concern --> 4288 4289 <!-- The Hipelement -- Menu icons -- Hair Concerns for example --><span class="menu-text"> 4290 Hair Concern 4291</span> 4292 4293 4294 4295 </a> 4296 <ul class="mega-menu__sublist"><li> 4297 <a 4298 id="HeaderMenu-shop-hair-concern-repair-hairfall-growth" 4299 href="/collections/hairfall-growth" 4300 class="mega-menu__link link" 4301 4302 > 4303 <!-- The Hipelement removed > [repair] Hairfall & Growth --> 4304 <!-- The Hipelement -- Menu icons -- Hair Concerns for example --><span class="menu-icon"> 4305 <svg width="25" height="21" viewBox="0 0 25 21" fill="none" xmlns="http://www.w3.org/2000/svg"> 4306<path d="M24.998 19.7174H0V20.5279H24.998V19.7174Z" fill="#E61A4F"/> 4307<path d="M24.998 13.1443H0V13.9549H24.998V13.1443Z" fill="#E61A4F"/> 4308<path d="M11.0229 6.5733H0V7.38381H11.0229V6.5733Z" fill="#E61A4F"/> 4309<path d="M24.998 6.5733H13.9751V7.38381H24.998V6.5733Z" fill="#E61A4F"/> 4310<path d="M6.31788 0H0V0.810504H6.31788V0Z" fill="#E61A4F"/> 4311<path d="M15.6589 0H9.341V0.810504H15.6589V0Z" fill="#E61A4F"/> 4312<path d="M24.9999 0H18.6821V0.810504H24.9999V0Z" fill="#E61A4F"/> 4313</svg> 4314 4315 </span><span class="menu-text"> 4316 Hairfall & Growth 4317</span> 4318 4319 4320 </a> 4321 </li><li> 4322 <a 4323 id="HeaderMenu-shop-hair-concern-protect-dandruff" 4324 href="/collections/fights-dandruff" 4325 class="mega-menu__link link" 4326 4327 > 4328 <!-- The Hipelement removed > [protect] Dandruff --> 4329 <!-- The Hipelement -- Menu icons -- Hair Concerns for example --><span class="menu-icon">
4330 <svg width="25" height="27" viewBox="0 0 25 27" fill="none" xmlns="http://www.w3.org/2000/svg"> 4331<path d="M25 26.054C17.8172 26.054 11.973 20.2097 11.973 13.027C11.973 5.84422 17.8172 0 25 0V1.05396C18.3996 1.05396 13.027 6.4239 13.027 13.027C13.027 19.6301 18.3969 25 25 25V26.054Z" fill="#5B9AC5"/> 4332<path d="M25 21.6827C20.2282 21.6827 16.3444 17.7988 16.3444 13.027C16.3444 8.25519 20.2282 4.37134 25 4.37134V5.4253C20.8079 5.4253 17.3983 8.83487 17.3983 13.027C17.3983 17.2191 20.8079 20.6287 25 20.6287V21.6827Z" fill="#5B9AC5"/> 4333<path d="M25 17.4589C22.5575 17.4589 20.5681 15.4722 20.5681 13.027C20.5681 10.5818 22.5548 8.59509 25 8.59509V9.64906C23.1372 9.64906 21.6221 11.1641 21.6221 13.027C21.6221 14.8899 23.1372 16.405 25 16.405V17.4589Z" fill="#5B9AC5"/> 4334<path d="M25 26.054C17.8172 26.054 11.973 20.2097 11.973 13.027C11.973 5.84422 17.8172 0 25 0V1.05396C18.3996 1.05396 13.027 6.4239 13.027 13.027C13.027 19.6301 18.3969 25 25 25V26.054Z" fill="#5B9AC5"/> 4335<path d="M25 21.6827C20.2282 21.6827 16.3444 17.7988 16.3444 13.027C16.3444 8.25519 20.2282 4.37134 25 4.37134V5.4253C20.8079 5.4253 17.3983 8.83487 17.3983 13.027C17.3983 17.2191 20.8079 20.6287 25 20.6287V21.6827Z" fill="#5B9AC5"/> 4336<path d="M25 17.4589C22.5575 17.4589 20.5681 15.4722 20.5681 13.027C20.5681 10.5818 22.5548 8.59509 25 8.59509V9.64906C23.1372 9.64906 21.6221 11.1641 21.6221 13.027C21.6221 14.8899 23.1372 16.405 25 16.405V17.4589Z" fill="#5B9AC5"/> 4337<path d="M0 26.054V25C6.60044 25 11.973 19.63 11.973 13.027C11.973 6.42389 6.60308 1.05395 0 1.05395V0.00262451C7.18276 0.00262451 13.027 5.84685 13.027 13.0296C13.027 20.2124 7.18276 26.0566 0 26.0566V26.054Z" fill="#5B9AC5"/> 4338<path d="M0 21.6827V20.6287C4.19214 20.6287 7.60172 17.2191 7.60172 13.027C7.60172 8.83487 4.19214 5.4253 0 5.4253V4.37134C4.77182 4.37134 8.65568 8.25519 8.65568 13.027C8.65568 17.7988 4.77182 21.6827 0 21.6827Z" fill="#5B9AC5"/> 4339<path d="M0 17.4589V16.405C1.86288 16.405 3.37795 14.8899 3.37795 13.027C3.37795 11.1641 1.86288 9.64906 0 9.64906V8.59509C2.44256 8.59509 4.43192 10.5818 4.43192 13.027C4.43192 15.4722 2.44519 17.4589 0 17.4589Z" fill="#5B9AC5"/> 4340<path d="M0 26.054V25C6.60044 25 11.973 19.63 11.973 13.027C11.973 6.42389 6.60308 1.05395 0 1.05395V0.00262451C7.18276 0.00262451 13.027 5.84685 13.027 13.0296C13.027 20.2124 7.18276 26.0566 0 26.0566V26.054Z" fill="#5B9AC5"/> 4341<path d="M0 21.6827V20.6287C4.19214 20.6287 7.60172 17.2191 7.60172 13.027C7.60172 8.83487 4.19214 5.4253 0 5.4253V4.37134C4.77182 4.37134 8.65568 8.25519 8.65568 13.027C8.65568 17.7988 4.77182 21.6827 0 21.6827Z" fill="#5B9AC5"/> 4342<path d="M0 17.4589V16.405C1.86288 16.405 3.37795 14.8899 3.37795 13.027C3.37795 11.1641 1.86288 9.64906 0 9.64906V8.59509C2.44256 8.59509 4.43192 10.5818 4.43192 13.027C4.43192 15.4722 2.44519 17.4589 0 17.4589Z" fill="#5B9AC5"/> 4343</svg> 4344 4345 </span><span class="menu-text"> 4346 Dandruff 4347</span> 4348 4349 4350 </a> 4351 </li><li> 4352 <a 4353 id="HeaderMenu-shop-hair-concern-scalp-dry-scalp" 4354 href="/collections/fights-dry-scalp" 4355 class="mega-menu__link link" 4356 4357 > 4358 <!-- The Hipelement removed > [scalp] Dry Scalp --> 4359 <!-- The Hipelement -- Menu icons -- Hair Concerns for example --><span class="menu-icon"> 4360 <svg width="25" height="21" viewBox="0 0 25 21" fill="none" xmlns="http://www.w3.org/2000/svg"> 4361<path d="M25 12.5H24.22C24.22 6.03744 18.9626 0.780032 12.5 0.780032C6.03744 0.780032 0.780032 6.03744 0.780032 12.5H0C0 5.60843 5.60647 0 12.5 0C19.3935 0 25 5.60648 25 12.5Z" fill="#B8C5D6"/> 4362<path d="M16.6731 12.5H15.8931C15.8931 10.6298 14.372 9.10681 12.5 9.10681C10.6279 9.10681 9.10681 10.6279 9.10681 12.5H8.32678C8.32678 10.1989 10.1989 8.32678 12.5 8.32678C14.801 8.32678 16.6731 10.1989 16.6731 12.5Z" fill="#B8C5D6"/> 4363<path d="M20.7664 12.5H19.9864C19.9864 8.3736 16.6283 5.01557 12.502 5.01557C8.37562 5.01557 5.01758 8.3736 5.01758 12.5H4.23755C4.23755 7.94263 7.94465 4.23553 12.502 4.23553C17.0593 4.23553 20.7664 7.94263 20.7664 12.5Z" fill="#B8C5D6"/> 4364<path d="M24.53 15.8016H0.471863V16.5816H24.53V15.8016Z" fill="#B8C5D6"/> 4365<path d="M24.53 19.493H0.471863V20.273H24.53V19.493Z" fill="#B8C5D6"/> 4366</svg> 4367 4368 </span><span class="menu-text"> 4369 Dry Scalp 4370</span> 4371 4372 4373 </a> 4374 </li><li> 4375 <a 4376 id="HeaderMenu-shop-hair-concern-smoothe-hair-frizzy-hair" 4377 href="/collections/frizzy-hair" 4378 class="mega-menu__link link" 4379 4380 > 4381 <!-- The Hipelement removed > [smoothe-hair] Frizzy Hair --> 4382 <!-- The Hipelement -- Menu icons -- Hair Concerns for example --><span class="menu-icon"> 4383 <svg width="25" height="21" viewBox="0 0 25 21" fill="none" xmlns="http://www.w3.org/2000/svg"> 4384<path d="M24.7225 20.1435H0.277344V20.9361H24.7225V20.1435Z" fill="#EB80A8"/> 4385<path d="M12.497 3.4834L10.0539 1.10565L7.61076 3.4834L5.16565 1.10565L2.72252 3.4834L0 0.836173L0.552824 0.269478L2.72252 2.37774L5.16565 0L7.61076 2.37774L10.0539 0L12.497 2.37774L14.9421 0L17.3873 2.37774L19.8304 0L22.2775 2.37774L24.4472 0.269478L25 0.836173L22.2775 3.4834L19.8324
43851.10565L17.3873 3.4834L14.9421 1.10565L12.497 3.4834Z" fill="#EB80A8"/> 4386<path d="M12.499 9.65557L8.42514 7.27783L4.35127 9.65557L0.0772705 7.16092L0.477525 6.47732L4.35127 8.73816L8.42514 6.36041L12.499 8.73816L16.5729 6.36041L20.6487 8.73816L24.5225 6.47732L24.9227 7.16092L20.6487 9.65557L16.5729 7.27783L12.499 9.65557Z" fill="#EB80A8"/> 4387<path d="M12.499 15.281L8.42514 14.0921L4.35127 15.281L0.166443 14.0604L0.388368 13.2996L4.35127 14.4547L8.42514 13.2659L12.499 14.4547L16.5729 13.2659L20.6487 14.4547L24.6116 13.2996L24.8336 14.0604L20.6487 15.281L16.5729 14.0921L12.499 15.281Z" fill="#EB80A8"/> 4388</svg> 4389 4390 </span><span class="menu-text"> 4391 Frizzy Hair 4392</span> 4393 4394 4395 </a> 4396 </li></ul> 4397 </div><div class="mega-menu__column"> 4398 <a 4399 id="HeaderMenu-shop-skin-concern" 4400 href="#" 4401 class="mega-menu__link mega-menu__link--level-2 link" 4402 4403 > 4404 <!-- The Hipelement removed > Skin Concern --> 4405 4406 <!-- The Hipelement -- Menu icons -- Hair Concerns for example --><span class="menu-text"> 4407 Skin Concern 4408</span> 4409 4410 4411 4412 </a> 4413 <ul class="mega-menu__sublist"><li> 4414 <a 4415 id="HeaderMenu-shop-skin-concern-protect-acne-pimples" 4416 href="/collections/controls-acne" 4417 class="mega-menu__link link" 4418 4419 > 4420 <!-- The Hipelement removed > [protect] Acne & Pimples --> 4421 <!-- The Hipelement -- Menu icons -- Hair Concerns for example --><span class="menu-icon"> 4422 <svg width="25" height="27" viewBox="0 0 25 27" fill="none" xmlns="http://www.w3.org/2000/svg"> 4423<path d="M25 26.054C17.8172 26.054 11.973 20.2097 11.973 13.027C11.973 5.84422 17.8172 0 25 0V1.05396C18.3996 1.05396 13.027 6.4239 13.027 13.027C13.027 19.6301 18.3969 25 25 25V26.054Z" fill="#5B9AC5"/> 4424<path d="M25 21.6827C20.2282 21.6827 16.3444 17.7988 16.3444 13.027C16.3444 8.25519 20.2282 4.37134 25 4.37134V5.4253C20.8079 5.4253 17.3983 8.83487 17.3983 13.027C17.3983 17.2191 20.8079 20.6287 25 20.6287V21.6827Z" fill="#5B9AC5"/> 4425<path d="M25 17.4589C22.5575 17.4589 20.5681 15.4722 20.5681 13.027C20.5681 10.5818 22.5548 8.59509 25 8.59509V9.64906C23.1372 9.64906 21.6221 11.1641 21.6221 13.027C21.6221 14.8899 23.1372 16.405 25 16.405V17.4589Z" fill="#5B9AC5"/> 4426<path d="M25 26.054C17.8172 26.054 11.973 20.2097 11.973 13.027C11.973 5.84422 17.8172 0 25 0V1.05396C18.3996 1.05396 13.027 6.4239 13.027 13.027C13.027 19.6301 18.3969 25 25 25V26.054Z" fill="#5B9AC5"/> 4427<path d="M25 21.6827C20.2282 21.6827 16.3444 17.7988 16.3444 13.027C16.3444 8.25519 20.2282 4.37134 25 4.37134V5.4253C20.8079 5.4253 17.3983 8.83487 17.3983 13.027C17.3983 17.2191 20.8079 20.6287 25 20.6287V21.6827Z" fill="#5B9AC5"/> 4428<path d="M25 17.4589C22.5575 17.4589 20.5681 15.4722 20.5681 13.027C20.5681 10.5818 22.5548 8.59509 25 8.59509V9.64906C23.1372 9.64906 21.6221 11.1641 21.6221 13.027C21.6221 14.8899 23.1372 16.405 25 16.405V17.4589Z" fill="#5B9AC5"/> 4429<path d="M0 26.054V25C6.60044 25 11.973 19.63 11.973 13.027C11.973 6.42389 6.60308 1.05395 0 1.05395V0.00262451C7.18276 0.00262451 13.027 5.84685 13.027 13.0296C13.027 20.2124 7.18276 26.0566 0 26.0566V26.054Z" fill="#5B9AC5"/> 4430<path d="M0 21.6827V20.6287C4.19214 20.6287 7.60172 17.2191 7.60172 13.027C7.60172 8.83487 4.19214 5.4253 0 5.4253V4.37134C4.77182 4.37134 8.65568 8.25519 8.65568 13.027C8.65568 17.7988 4.77182 21.6827 0 21.6827Z" fill="#5B9AC5"/> 4431<path d="M0 17.4589V16.405C1.86288 16.405 3.37795 14.8899 3.37795 13.027C3.37795 11.1641 1.86288 9.64906 0 9.64906V8.59509C2.44256 8.59509 4.43192 10.5818 4.43192 13.027C4.43192 15.4722 2.44519 17.4589 0 17.4589Z" fill="#5B9AC5"/> 4432<path d="M0 26.054V25C6.60044 25 11.973 19.63 11.973 13.027C11.973 6.42389 6.60308 1.05395 0 1.05395V0.00262451C7.18276 0.00262451 13.027 5.84685 13.027 13.0296C13.027 20.2124 7.18276 26.0566 0 26.0566V26.054Z" fill="#5B9AC5"/> 4433<path d="M0 21.6827V20.6287C4.19214 20.6287 7.60172 17.2191 7.60172 13.027C7.60172 8.83487 4.19214 5.4253 0 5.4253V4.37134C4.77182 4.37134 8.65568 8.25519 8.65568 13.027C8.65568 17.7988 4.77182 21.6827 0 21.6827Z" fill="#5B9AC5"/> 4434<path d="M0 17.4589V16.405C1.86288 16.405 3.37795 14.8899 3.37795 13.027C3.37795 11.1641 1.86288 9.64906 0 9.64906V8.59509C2.44256 8.59509 4.43192 10.5818 4.43192 13.027C4.43192 15.4722 2.44519 17.4589 0 17.4589Z" fill="#5B9AC5"/> 4435</svg> 4436 4437 </span><span class="menu-text"> 4438 Acne & Pimples 4439</span> 4440 4441 4442 </a> 4443 </li><li> 4444 <a 4445 id="HeaderMenu-shop-skin-concern-repair-fine-lines-wrinkles" 4446 href="/collections/serums" 4447 class="mega-menu__link link" 4448 4449 > 4450 <!-- The Hipelement removed > [repair] Fine Lines & Wrinkles --> 4451 <!-- The Hipelement -- Menu icons -- Hair Concerns for example --><span class="menu-icon"> 4452 <svg width="25" height="21" viewBox="0 0 25 21" fill="none" xmlns="http://www.w3.org/2000/svg"> 4453<path d="M24.998 19.7174H0V20.5279H24.998V19.7174Z" fill="#E61A4F"/> 4454<path d="M24.998 13.1443H0V13.9549H24.998V13.1443Z" fill="#E61A4F"/> 4455<path d="M11.0229 6.5733H0V7.38381H11.0229V6.5733Z" fill="#E61A4F"/> 4456<path d="M24.998 6.5733H13.9751V7.38381H24.998V6.5733Z" fill="#E61A4F"/> 4457<path d="M6.31788 0H0V0.810504H6.31788V0Z" fill="#E61A4F"/> 4458<path d="M15.6589 0H9.341V0.810504H15.6589V0Z" fill="#E61A4F"/> 4459<path d="M24.9999 0H18.6821V0.810504H24.9999V0Z" fill="#E61A4F"/> 4460</svg> 4461 4462 </span><span class="menu-text"> 4463 Fine Lines & Wrinkles 4464</span> 4465 4466 4467 </a> 4468 </li></ul> 4469 </div></div> 4470 4471 </div> 4472 </details> 4473 </header-menu></li><li><header-menu> 4474 <details id="Details-HeaderMenu-2" class="mega-menu"> 4475 <summary 4476 id="HeaderMenu-hair-skin-quiz" 4477 class="header__menu-item list-menu__item link focus-inset" 4478 >
4479 <span 4480 > 4481 <!-- The Hipelement replaceHair + Skin Quiz--> 4482 <!-- The Hipelement -- Menu icons -- Hair Concerns for example --><span class="menu-text"> 4483 Hair + Skin Quiz 4484</span> 4485 4486 4487 </span><svg class="icon icon-caret" viewBox="0 0 10 6"><path fill="currentColor" fill-rule="evenodd" d="M9.354.646a.5.5 0 0 0-.708 0L5 4.293 1.354.646a.5.5 0 0 0-.708.708l4 4a.5.5 0 0 0 .708 0l4-4a.5.5 0 0 0 0-.708" clip-rule="evenodd"/></svg> 4488</summary> 4489 <div 4490 id="MegaMenu-Content-2" 4491 class="mega-menu__content color-scheme-1 gradient motion-reduce global-settings-popup" 4492 tabindex="-1" 4493 > 4494 4495 <div class="mega-menu__columns page-width" style="text-align:left;"> 4496 <div class="mega-menu__column"><a 4497 id="HeaderMenu-hair-skin-quiz-hair-test" 4498 href="/pages/find-your-hair-and-scalp-match" 4499 class="mega-menu__link mega-menu__link--level-2 link" 4500 4501 > 4502 <!-- The Hipelement removed > Hair Test --> 4503 <!-- The Hipelement -- Menu icons -- Hair Concerns for example --><span class="menu-text"> 4504 Hair Test 4505</span> 4506 4507 </a><a 4508 id="HeaderMenu-hair-skin-quiz-skin-test" 4509 href="/pages/find-your-skin-a-prefect-match" 4510 class="mega-menu__link mega-menu__link--level-2 link" 4511 4512 > 4513 <!-- The Hipelement removed > Skin Test --> 4514 <!-- The Hipelement -- Menu icons -- Hair Concerns for example --><span class="menu-text"> 4515 Skin Test 4516</span> 4517 4518 </a></div> 4519</div> 4520 4521 </div> 4522 </details> 4523 </header-menu></li><li><header-menu> 4524 <details id="Details-HeaderMenu-3" class="mega-menu"> 4525 <summary 4526 id="HeaderMenu-learn" 4527 class="header__menu-item list-menu__item link focus-inset" 4528 > 4529 <span 4530 > 4531 <!-- The Hipelement replaceLearn--> 4532 <!-- The Hipelement -- Menu icons -- Hair Concerns for example --><span class="menu-text"> 4533 Learn 4534</span> 4535 4536 4537 </span><svg class="icon icon-caret" viewBox="0 0 10 6"><path fill="currentColor" fill-rule="evenodd" d="M9.354.646a.5.5 0 0 0-.708 0L5 4.293 1.354.646a.5.5 0 0 0-.708.708l4 4a.5.5 0 0 0 .708 0l4-4a.5.5 0 0 0 0-.708" clip-rule="evenodd"/></svg> 4538</summary> 4539 <div 4540 id="MegaMenu-Content-3" 4541 class="mega-menu__content color-scheme-1 gradient motion-reduce global-settings-popup" 4542 tabindex="-1" 4543 > 4544 4545 <div class="mega-menu__columns page-width" style="text-align:left;"> 4546 <div class="mega-menu__column"><a 4547 id="HeaderMenu-learn-about-us" 4548 href="/pages/about-us" 4549 class="mega-menu__link mega-menu__link--level-2 link" 4550 4551 > 4552 <!-- The Hipelement removed > About Us --> 4553 <!-- The Hipelement -- Menu icons -- Hair Concerns for example --><span class="menu-text"> 4554 About Us 4555</span> 4556 4557 </a><a 4558 id="HeaderMenu-learn-our-promise" 4559 href="/pages/our-promise" 4560 class="mega-menu__link mega-menu__link--level-2 link" 4561 4562 > 4563 <!-- The Hipelement removed > Our Promise --> 4564 <!-- The Hipelement -- Menu icons -- Hair Concerns for example --><span class="menu-text"> 4565 Our Promise 4566</span> 4567 4568 </a><a 4569 id="HeaderMenu-learn-clinical-testings" 4570 href="/pages/clinical-testings" 4571 class="mega-menu__link mega-menu__link--level-2 link" 4572 4573 > 4574 <!-- The Hipelement removed > Clinical Testings --> 4575 <!-- The Hipelement -- Menu icons -- Hair Concerns for example --><span class="menu-text"> 4576 Clinical Testings 4577</span> 4578 4579 </a><a 4580 id="HeaderMenu-learn-farmtoface" 4581 href="/pages/farmtoface" 4582 class="mega-menu__link mega-menu__link--level-2 link" 4583 4584 > 4585 <!-- The Hipelement removed > #farmtoface --> 4586 <!-- The Hipelement -- Menu icons -- Hair Concerns for example --><span class="menu-text"> 4587 #farmtoface 4588</span> 4589 4590 </a><a 4591 id="HeaderMenu-learn-the-no-bs-edit" 4592 href="/blogs/soulblog" 4593 class="mega-menu__link mega-menu__link--level-2 link" 4594 4595 > 4596 <!-- The Hipelement removed >
4596 The No BS Edit --> 4597 <!-- The Hipelement -- Menu icons -- Hair Concerns for example --><span class="menu-text"> 4598 The No BS Edit 4599</span> 4600 4601 </a></div> 4602</div> 4603 4604 </div> 4605 </details> 4606 </header-menu></li></ul> 4607</nav> 4608 4609<div class="header__icons"> 4610 <div class="desktop-localization-wrapper"> 4611</div> 4612<details-modal class="header__search"> 4613 <details> 4614 <summary 4615 class="header__icon header__icon--search header__icon--summary link focus-inset modal__toggle" 4616 aria-haspopup="dialog" 4617 aria-label="Search" 4618 > 4619 <span> 4620 <span class="svg-wrapper"><svg 4621 xmlns="http://www.w3.org/2000/svg" 4622 viewBox="0 0 25 24" 4623 fill="none" 4624 aria-hidden="true" 4625 focusable="false" 4626> 4627 <path d="M10.2978 5.75012L9.04785 4.50012L5.29786 8.25011L6.54786 9.50011L10.2978 5.75012Z" fill="currentColor"/> 4628 <path d="M17.7969 15.7501L16.5469 17.0001L19.0469 19.5001L20.2969 18.2501L17.7969 15.7501Z" fill="currentColor"/> 4629 <path d="M17.7925 13.2458L16.5425 11.9958L12.7925 15.7458L14.0425 16.9958L17.7925 13.2458Z" fill="currentColor"/> 4630 <path d="M14.0439 4.50568L12.7939 5.75568L16.5439 9.50566L17.7939 8.25567L14.0439 4.50568Z" fill="currentColor"/> 4631 <path d="M6.54882 11.9945L5.29883 13.2445L9.04882 16.9945L10.2988 15.7445L6.54882 11.9945Z" fill="currentColor"/> 4632 <path d="M11.5469 4.50138L10.2969 5.75137L11.5469 7.00137L12.7969 5.75137L11.5469 4.50138Z" fill="currentColor"/> 4633 <path d="M16.5449 9.50064L15.2949 10.7506L16.5449 12.0006L17.7949 10.7506L16.5449 9.50064Z" fill="currentColor"/> 4634 <path d="M6.54736 9.49961L5.29736 10.7496L6.54736 11.9996L7.79736 10.7496L6.54736 9.49961Z" fill="currentColor"/> 4635 <path d="M11.5454 14.4987L10.2954 15.7487L11.5454 16.9987L12.7954 15.7487L11.5454 14.4987Z" fill="currentColor"/> 4636</svg> 4637</span> 4638 <span class="svg-wrapper header__icon-close"><svg 4639 xmlns="http://www.w3.org/2000/svg" 4640 fill="none" 4641 class="icon icon-close" 4642 viewBox="0 0 25 26" 4643> 4644 <g transform="translate(12.5 13) scale(1.7) translate(-12.5 -13)"> 4645 <path 4646 d="M18.1664 17.6617L13.7173 13.2126L12.5389 14.391L16.988 18.8401L18.1664 17.6617Z" 4647 fill="currentColor" 4648 /> 4649 <path 4650 d="M12.5488 12.0456L8.10938 7.6062L6.93098 8.7846L11.3704 13.224L12.5488 12.0456Z" 4651 fill="currentColor" 4652 /> 4653 <path 4654 d="M7.91455 18.9961L12.5186 14.3921L11.3798 13.2533L6.77581 17.8573L7.91455 18.9961Z" 4655 fill="currentColor" 4656 /> 4657 <path 4658 d="M13.7273 13.1831L18.3213 8.58911L17.1825 7.45036L12.5886 12.0443L13.7273 13.1831Z" 4659 fill="currentColor" 4660 /> 4661 </g> 4662</svg> 4663</span> 4664 </span> 4665 </summary> 4666 <div 4667 class="search-modal modal__content gradient" 4668 role="dialog" 4669 aria-modal="true" 4670 aria-label="Search" 4671 > 4672 <div class="modal-overlay"></div> 4673 <div 4674 class="search-modal__content search-modal__content-bottom" 4675 tabindex="-1" 4676 ><predictive-search class="search-modal__form" data-loading-text="Loading..."><form action="/search" method="get" role="search" class="search search-modal__form"> 4677 <div class="field rx-search-field"> 4678 <input 4679 class="search__input field__input rx-search-input" 4680 id="Search-In-Modal" 4681 type="search" 4682 name="q" 4683 value="" 4684 placeholder=""role="combobox" 4685 aria-expanded="false" 4686 aria-owns="predictive-search-results" 4687 aria-controls="predictive-search-results" 4688 aria-haspopup="listbox" 4689 aria-autocomplete="list" 4690 autocorrect="off" 4691 autocomplete="off" 4692 autocapitalize="off" 4693 spellcheck="false"> 4694 <span class="rx-search-dynamic-text"></span> 4695 <input type="hidden" name="options[prefix]" value="last"> 4696 <button 4697 type="reset" 4698 class="reset__button field__button hidden" 4699 aria-label="Clear search term" 4700 > 4701 <span class="svg-wrapper"><svg fill="none" stroke="currentColor" class="icon icon-close" viewBox="0 0 18 18"><circle cx="9" cy="9" r="8.5" stroke-opacity=".2"/><path stroke-linecap="round" stroke-linejoin="round" d="M11.83 11.83 6.172 6.17M6.229 11.885l5.544-5.77"/></svg> 4702</span> 4703 </button> 4704 <button class="search__button field__button" aria-label="Search">
4705 <span class="svg-wrapper"><svg 4706 xmlns="http://www.w3.org/2000/svg" 4707 viewBox="0 0 25 24" 4708 fill="none" 4709 aria-hidden="true" 4710 focusable="false" 4711> 4712 <path d="M10.2978 5.75012L9.04785 4.50012L5.29786 8.25011L6.54786 9.50011L10.2978 5.75012Z" fill="currentColor"/> 4713 <path d="M17.7969 15.7501L16.5469 17.0001L19.0469 19.5001L20.2969 18.2501L17.7969 15.7501Z" fill="currentColor"/> 4714 <path d="M17.7925 13.2458L16.5425 11.9958L12.7925 15.7458L14.0425 16.9958L17.7925 13.2458Z" fill="currentColor"/> 4715 <path d="M14.0439 4.50568L12.7939 5.75568L16.5439 9.50566L17.7939 8.25567L14.0439 4.50568Z" fill="currentColor"/> 4716 <path d="M6.54882 11.9945L5.29883 13.2445L9.04882 16.9945L10.2988 15.7445L6.54882 11.9945Z" fill="currentColor"/> 4717 <path d="M11.5469 4.50138L10.2969 5.75137L11.5469 7.00137L12.7969 5.75137L11.5469 4.50138Z" fill="currentColor"/> 4718 <path d="M16.5449 9.50064L15.2949 10.7506L16.5449 12.0006L17.7949 10.7506L16.5449 9.50064Z" fill="currentColor"/> 4719 <path d="M6.54736 9.49961L5.29736 10.7496L6.54736 11.9996L7.79736 10.7496L6.54736 9.49961Z" fill="currentColor"/> 4720 <path d="M11.5454 14.4987L10.2954 15.7487L11.5454 16.9987L12.7954 15.7487L11.5454 14.4987Z" fill="currentColor"/> 4721</svg> 4722</span> 4723 </button> 4724 </div><template id="rx-predictive-default-template"> 4725 <div class="rx-predictive-default" id="predictive-search-results"> 4726 4727 <h2 class="predictive-search__heading caption-large" style="display:flex; align-items:center;gap:3px"><svg xmlns="http://www.w3.org/2000/svg" style="padding:5px; margin-top:-5px" width="14" height="14" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="23 6 13.5 15.5 8.5 10.5 1 18"></polyline><polyline points="17 6 23 6 23 12"></polyline></svg>POPULAR CHOICE</h2><div class="rx-predictive-pills"><a href="/collections/hairfall-growth" class="rx-pill">HAIR</a><a href="/collections/skincare" class="rx-pill">SKIN</a></div><div class="rx-predictive-section rx-predictive-recommended"> 4728 <h2 class="predictive-search__heading caption-large">Recommended for you</h2> 4729 4730 <div class="rx-rec-slider" data-rx-rec-slider> 4731 <button type="button" class="rx-rec-arrow rx-rec-prev" aria-label="Previous"> 4732 <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="15 18 9 12 15 6"></polyline></svg> 4733 </button> 4734 4735 <ul class="rx-rec-track list-unstyled" role="listbox"><li class="rx-rec-slide" role="option"> 4736 <a href="/products/rosemary-essential-oil-hair-growth" class="rx-rec-link"><img 4737 srcset=" 4738 //www.soulflower.in/cdn/shop/files/Essential
4738-oil-_1.webp?v=1790835523&width=300 300w, 4739 //www.soulflower.in/cdn/shop/files/Essential-oil-_1.webp?v=1790835523&width=500 500w, 4740 //www.soulflower.in/cdn/shop/files/Essential-oil-_1.webp?v=1790835523&width=700 700w 4741 " 4742 sizes="(max-width: 749px) 45vw, 25vw" 4743 src="//www.soulflower.in/cdn/shop/files/Essential-oil-_1.webp?v=1790835523&width=500" 4744 alt="100% Pure Rosemary Essential Oil" 4745 width="120" 4746 height="120" 4747 loading="lazy" 4748 decoding="async" 4749 ><span class="rx-rec-meta"> 4750 <span class="rx-rec-title">100% Pure Rosemary Essential Oil</span> 4751 <span class="rx-rec-price">â¹ 650 4752</span> 4753 </span> 4754 </a> 4755 </li><li class="rx-rec-slide" role="option"> 4756 <a href="/products/rosemary-redensyl-hair-growth-serum" class="rx-rec-link"><img 4757 srcset=" 4758 //www.soulflower.in/cdn/shop/files/Redensyl_ade03ed6-f5c5-44fc-9e5a-4ff0b2f2ab61.webp?v=1790835527&width=300 300w, 4759 //www.soulflower.in/cdn/shop/files/Redensyl_ade03ed6-f5c5-44fc-9e5a-4ff0b2f2ab61.webp?v=1790835527&width=500 500w, 4760 //www.soulflower.in/cdn/shop/files/Redensyl_ade03ed6-f5c5-44fc-9e5a-4ff0b2f2ab61.webp?v=1790835527&width=700 700w 4761 " 4762 sizes="(max-width: 749px) 45vw, 25vw" 4763 src="//www.soulflower.in/cdn/shop/files/Redensyl_ade03ed6-f5c5-44fc-9e5a-4ff0b2f2ab61.webp?v=1790835527&width=500" 4764 alt="Rosemary Redensyl Hair Serum" 4765 width="120" 4766 height="120" 4767 loading="lazy" 4768 decoding="async" 4769 ><span class="rx-rec-meta"> 4770 <span class="rx-rec-title">Rosemary Redensyl Hair Serum</span> 4771 <span class="rx-rec-price">â¹ 750 4772</span> 4773 </span> 4774 </a> 4775 </li><li class="rx-rec-slide" role="option"> 4776 <a href="/products/soulflower-vegan-pdrn-spotless-gel-cleanser" class="rx-rec-link"><img 4777 srcset=" 4778 //www.soulflower.in/cdn/shop/files/PDRN_1_22a2acfe-3399-42cc-ba30-9aeeddf98ce6.webp?v=1790835528&width=300 300w, 4779 //www.soulflower.in/cdn/shop/files/PDRN_1_22a2acfe-3399-42cc-ba30-9aeeddf98ce6.webp?v=1790835528&width=500 500w, 4780 //www.soulflower.in/cdn/shop/files/PDRN_1_22a2acfe-3399-42cc-ba30-9aeeddf98ce6.webp?v=1790835528&width=700 700w 4781 " 4782 sizes="(max-width: 749px) 45vw, 25vw" 4783 src="//www.soulflower.in/cdn/shop/files/PDRN_1_22a2acfe-3399-42cc-ba30-9aeeddf98ce6.webp?v=1790835528&width=500" 4784 alt="Vegan PDRN Spotless Gel Cleanser" 4785 width="120" 4786 height="120" 4787 loading="lazy" 4788 decoding="async" 4789 ><span class="rx-rec-meta"> 4790 <span class="rx-rec-title">Vegan PDRN Spotless Gel Cleanser</span> 4791 <span class="rx-rec-price">â¹ 350 4792</span> 4793 </span> 4794 </a> 4795 </li><li class="rx-rec-slide" role="option"> 4796 <a href="/products/8-brightening-summer-soaps" class="rx-rec-link"><img 4797 srcset=" 4798 //www.soulflower.in/cdn/shop/files/Soaps-group-shot_b770d203-8cd1-4508-bb06-cd09b6693a0a.webp?v=1790835532&width=300 300w, 4799 //www.soulflower.in/cdn/shop/files/Soaps-group-shot_b770d203-8cd1-4508-bb06-cd09b6693a0a.webp?v=1790835532&width=500 500w, 4800 //www.soulflower.in/cdn/shop/files/Soaps-group-shot_b770d203-8cd1-4508-bb06-cd09b6693a0a.webp?v=1790835532&width=700 700w 4801 " 4802 sizes="(max-width: 749px) 45vw, 25vw" 4803 src="//www.soulflower.in/cdn/shop/files/Soaps-group-shot_b770d203-8cd1-4508-bb06-cd09b6693a0a.webp?v=1790835532&width=500" 4804 alt="Complete Collection of 8 Glow Soaps" 4805 width="120" 4806 height="120" 4807 loading="lazy" 4808 decoding="async" 4809 ><span class="rx-rec-meta">
4810 <span class="rx-rec-title">Complete Collection of 8 Glow Soaps</span> 4811 <span class="rx-rec-price">â¹ 1,400 4812</span> 4813 </span> 4814 </a> 4815 </li><li class="rx-rec-slide" role="option"> 4816 <a href="/products/rosemary-tea-tree-shampoo" class="rx-rec-link"><img 4817 srcset=" 4818 //www.soulflower.in/cdn/shop/files/Rosemary-shampoo_12ef77f8-2e18-4f7a-a8cb-321949b3abd0.webp?v=1790835529&width=300 300w, 4819 //www.soulflower.in/cdn/shop/files/Rosemary-shampoo_12ef77f8-2e18-4f7a-a8cb-321949b3abd0.webp?v=1790835529&width=500 500w, 4820 //www.soulflower.in/cdn/shop/files/Rosemary-shampoo_12ef77f8-2e18-4f7a-a8cb-321949b3abd0.webp?v=1790835529&width=700 700w 4821 " 4822 sizes="(max-width: 749px) 45vw, 25vw" 4823 src="//www.soulflower.in/cdn/shop/files/Rosemary-shampoo_12ef77f8-2e18-4f7a-a8cb-321949b3abd0.webp?v=1790835529&width=500" 4824 alt="Rosemary Tea Tree Shampoo" 4825 width="120" 4826 height="120" 4827 loading="lazy" 4828 decoding="async" 4829 ><span class="rx-rec-meta"> 4830 <span class="rx-rec-title">Rosemary Tea Tree Shampoo</span> 4831 <span class="rx-rec-price">â¹ 450 4832</span> 4833 </span> 4834 </a> 4835 </li><li class="rx-rec-slide" role="option"> 4836 <a href="/products/espom-bath-salt-with-lavender-essential-oil-1-kg" class="rx-rec-link"><img 4837 srcset=" 4838 //www.soulflower.in/cdn/shop/files/Bath-salt.webp?v=1790835529&width=300 300w, 4839 //www.soulflower.in/cdn/shop/files/Bath-salt.webp?v=1790835529&width=500 500w, 4840 //www.soulflower.in/cdn/shop/files/Bath-salt.webp?v=1790835529&width=700 700w 4841 " 4842 sizes="(max-width: 749px) 45vw, 25vw" 4843 src="//www.soulflower.in/cdn/shop/files/Bath-salt.webp?v=1790835529&width=500" 4844 alt="Epsom Bath Salt with Lavender Essential Oil" 4845 width="120" 4846 height="120" 4847 loading="lazy" 4848 decoding="async" 4849 ><span class="rx-rec-meta"> 4850 <span class="rx-rec-title">Epsom Bath Salt with Lavender Essential Oil</span> 4851 <span class="rx-rec-price">â¹ 600 4852</span> 4853 </span> 4854 </a> 4855 </li><li class="rx-rec-slide" role="option"> 4856 <a href="/products/anti-dandruff-serum" class="rx-rec-link"><img 4857 srcset=" 4858 //www.soulflower.in/cdn/shop/files/Anti-dandruff-serum.webp?v=1790835527&width=300 300w, 4859 //www.soulflower.in/cdn/shop/files/Anti-dandruff-serum.webp?v=1790835527&width=500 500w, 4860 //www.soulflower.in/cdn/shop/files/Anti-dandruff-serum.webp?v=1790835527&width=700 700w 4861 " 4862 sizes="(max-width: 749px) 45vw, 25vw" 4863 src="//www.soulflower.in/cdn/shop/files/Anti-dandruff-serum.webp?v=1790835527&width=500" 4864 alt="Intensive Anti Dandruff Serum" 4865 width="120" 4866 height="120" 4867 loading="lazy" 4868 decoding="async" 4869 ><span class="rx-rec-meta">
4870 <span class="rx-rec-title">Intensive Anti Dandruff Serum</span> 4871 <span class="rx-rec-price">â¹ 450 4872</span> 4873 </span> 4874 </a> 4875 </li><li class="rx-rec-slide" role="option"> 4876 <a href="/products/castor-oil-arandi-hair-oil-copy" class="rx-rec-link"><img 4877 srcset=" 4878 //www.soulflower.in/cdn/shop/files/Castor.webp?v=1790835512&width=300 300w, 4879 //www.soulflower.in/cdn/shop/files/Castor.webp?v=1790835512&width=500 500w, 4880 //www.soulflower.in/cdn/shop/files/Castor.webp?v=1790835512&width=700 700w 4881 " 4882 sizes="(max-width: 749px) 45vw, 25vw" 4883 src="//www.soulflower.in/cdn/shop/files/Castor.webp?v=1790835512&width=500" 4884 alt="Castor Oil/Arandi Hair Oil -120ml" 4885 width="120" 4886 height="120" 4887 loading="lazy" 4888 decoding="async" 4889 ><span class="rx-rec-meta"> 4890 <span class="rx-rec-title">Castor Oil/Arandi Hair Oil -120ml</span> 4891 <span class="rx-rec-price">â¹ 600 4892</span> 4893 </span> 4894 </a> 4895 </li><li class="rx-rec-slide" role="option"> 4896 <a href="/products/soulflower-rosemary-water-hair-spray-with-mint" class="rx-rec-link"><img 4897 srcset=" 4898 //www.soulflower.in/cdn/shop/files/Rosemary-Water_4_c5e17d07-6d71-42fd-8d27-38bb30f560c0.webp?v=1791033801&width=300 300w, 4899 //www.soulflower.in/cdn/shop/files/Rosemary-Water_4_c5e17d07-6d71-42fd-8d27-38bb30f560c0.webp?v=1791033801&width=500 500w, 4900 //www.soulflower.in/cdn/shop/files/Rosemary-Water_4_c5e17d07-6d71-42fd-8d27-38bb30f560c0.webp?v=1791033801&width=700 700w 4901 " 4902 sizes="(max-width: 749px) 45vw, 25vw" 4903 src="//www.soulflower.in/cdn/shop/files/Rosemary-Water_4_c5e17d07-6d71-42fd-8d27-38bb30f560c0.webp?v=1791033801&width=500" 4904 alt="Rosemary Hair Spray Strength Boost + Hair Refresh" 4905 width="120" 4906 height="120" 4907 loading="lazy" 4908 decoding="async" 4909 ><span class="rx-rec-meta"> 4910 <span class="rx-rec-title">Rosemary Hair Spray Strength Boost + Hair Refresh</span> 4911 <span class="rx-rec-price">â¹ 400 4912</span> 4913 </span> 4914 </a> 4915 </li><li class="rx-rec-slide" role="option"> 4916 <a href="/products/soulflower-moroccan-argan-oil-coldpressed" class="rx-rec-link"><img 4917 srcset=" 4918 //www.soulflower.in/cdn/shop/files/Argan-oil.webp?v=1779782603&width=300 300w, 4919 //www.soulflower.in/cdn/shop/files/Argan-oil.webp?v=1779782603&width=500 500w, 4920 //www.soulflower.in/cdn/shop/files/Argan-oil.webp?v=1779782603&width=700 700w 4921 " 4922 sizes="(max-width: 749px) 45vw, 25vw" 4923 src="//www.soulflower.in/cdn/shop/files/Argan-oil.webp?v=1779782603&width=500" 4924 alt="100% Pure Moroccan Argan Oil" 4925 width="120" 4926 height="120" 4927 loading="lazy" 4928 decoding="async" 4929 ><span class="rx-rec-meta">
4930 <span class="rx-rec-title">100% Pure Moroccan Argan Oil</span> 4931 <span class="rx-rec-price">â¹ 550 4932</span> 4933 </span> 4934 </a> 4935 </li></ul> 4936 4937 <button type="button" class="rx-rec-arrow rx-rec-next" aria-label="Next"> 4938 <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 18 15 12 9 6"></polyline></svg> 4939 </button> 4940 </div> 4941 </div></div> 4942 </template> 4943 4944 <div class="predictive-search predictive-search--header" tabindex="-1" data-predictive-search></div> 4945 <span class="predictive-search-status visually-hidden" role="status" aria-hidden="true"></span></form></predictive-search><button 4946 type="button" 4947 class="search-modal__close-button modal__close-button link link--text focus-inset" 4948 aria-label="Close" 4949 > 4950 <span class="svg-wrapper"><svg 4951 xmlns="http://www.w3.org/2000/svg" 4952 fill="none" 4953 class="icon icon-close" 4954 viewBox="0 0 25 26" 4955> 4956 <g transform="translate(12.5 13) scale(1.7) translate(-12.5 -13)"> 4957 <path 4958 d="M18.1664 17.6617L13.7173 13.2126L12.5389 14.391L16.988 18.8401L18.1664 17.6617Z" 4959 fill="currentColor" 4960 /> 4961 <path 4962 d="M12.5488 12.0456L8.10938 7.6062L6.93098 8.7846L11.3704 13.224L12.5488 12.0456Z" 4963 fill="currentColor" 4964 /> 4965 <path 4966 d="M7.91455 18.9961L12.5186 14.3921L11.3798 13.2533L6.77581 17.8573L7.91455 18.9961Z" 4967 fill="currentColor" 4968 /> 4969 <path 4970 d="M13.7273 13.1831L18.3213 8.58911L17.1825 7.45036L12.5886 12.0443L13.7273 13.1831Z" 4971 fill="currentColor" 4972 /> 4973 </g> 4974</svg> 4975</span> 4976 </button> 4977 </div> 4978 </div> 4979 </details> 4980</details-modal> 4981 4982<style> 4983 #loggedin-icons { 4984 transition: opacity 0.2s ease, visibility 0.2s ease; 4985} 4986 4987body:has(details-modal details[open]) #loggedin-icons { 4988 opacity: 0; 4989 visibility: hidden; 4990 pointer-events: none; 4991} 4992 .rx-search-field { 4993 position: relative; 4994 display: flex !important; 4995 align-items: center !important; 4996} 4997 4998.rx-search-field .rx-search-input { 4999 padding-top : 10px !important; 5000 align-self: center !important; 5001} 5002 5003/* ===== MOBILE SEARCH BAR FIX â same look on every phone ===== */ 5004@media screen and (max-width: 749px) { 5005 /* pop-up box: tall enough for the bar, nothing clipped */ 5006 .header__search .search-modal.modal__content { 5007 min-height: 76px !important; 5008 height: auto !important; 5009 overflow: visible !important; 5010 } 5011 .header__search .search-modal__content { 5012 min-height: 76px !important; 5013 height: auto !important; 5014 padding: 14px 54px 14px 14px !important; /* right space = close (X) */ 5015 box-sizing: border-box !important; 5016 overflow: visible !important; 5017 align-items: center !important; 5018 transform: none !important; 5019 } 5020 5021 /* bar fills the row and stays inside the screen */ 5022 .header__search predictive-search.search-modal__form, 5023 .header__search search-form.search-modal__form, 5024 .header__search form.search-modal__form, 5025 .header__search .rx-search-field { 5026 width: 100% !important; 5027 max-width: 100% !important; 5028 margin: 0 !important; 5029 box-sizing: border-box !important; 5030 } 5031 .header__search .rx-search-field { 5032 height: 46px !important; 5033 } 5034 5035 /* 16px stops iPhone from zooming the page when the bar is tapped */ 5036 .header__search .rx-search-field .rx-search-input { 5037 font-size: 16px !important; 5038 height: 46px !important; 5039 min-height: 46px !important; 5040 padding: 0 48px 0 18px !important; 5041 margin: 0 !important; 5042 box-sizing: border-box !important; 5043 line-height: 46px !important; 5044 } 5045 .header__search .rx-search-dynamic-text { 5046 left: 18px !important; 5047 right: 48px; 5048 overflow: hidden; 5049 text-overflow: ellipsis; 5050 } 5051 5052 /* search + reset icons inside the bar */ 5053 .header__search .rx-search-field .field__button { 5054 position: absolute !important; 5055 top: 50% !important; 5056 transform: translateY(-50%) !important; 5057 height: 40px !important; 5058 width: 40px !important; 5059 right: 4px !important; 5060 } 5061 .header__search .rx-search-field .reset__button { right: 40px !important; } 5062 5063 /* close (X) centred on the right */ 5064 .header__search .search-modal__close-button { 5065 position: absolute !important; 5066 right: 6px !important; 5067 top: 50% !important; 5068 transform: translateY(-50%) !important; 5069 margin: 0 !important; 5070 } 5071 5072 /* suggestions panel: attached to the bottom of the white box, full width, no gap */ 5073 .header__search .search-modal__content { position: relative !important; } 5074 .header__search predictive-search.search-modal__form, 5075 .header__search form.search-modal__form { position: static !important; } 5076 .header__search .rx-search-field { position: relative !important; } 5077 .header__search .predictive-search--header { 5078 position: absolute !important; 5079 top: 100% !important; 5080 left: 0 !important; 5081 right: 0 !important; 5082 width: 100% !important; 5083 margin: 0 !important; 5084 transform: none !important; 5085 border-top: 1px solid rgba(0,0,0,0.08) !important; 5086 } 5087} 5088 5089 .rx-search-dynamic-text { 5090 position: absolute; 5091 left: 16px; 5092 top: 50%; 5093 transform: translateY(-50%); 5094 color: #999; 5095 font-size: 14px; 5096 pointer-events: none; 5097 transition: opacity 0.4s ease, transform 0.4s ease; 5098 white-space: nowrap; 5099 will-change: opacity, transform; 5100 } 5101 5102 .rx-search-input:focus ~ .rx-search-dynamic-text, 5103 .rx-search-input:not(:placeholder-shown) ~ .rx-search-dynamic-text { 5104 opacity: 0; 5105 } 5106 5107 details-modal details[open] .predictive-search--header { display: block !important; } 5108 details-modal details:not([open]) .predictive-search--header { display: none !important; } 5109 5110 .rx-predictive-default { 5111 padding: 1.5rem; 5112 max-height: 70vh; 5113 overflow-y: auto; 5114 contain: layout style; 5115 } 5116 5117 /* Pills */ 5118 .rx-predictive-pills { 5119 display: flex; 5120 flex-wrap: wrap; 5121 gap: 1rem; 5122 margin-bottom: 2rem; 5123 } 5124 5125 .rx-pill { 5126 margin-top: 0.5rem; 5127 display: inline-flex; 5128 align-items: center; 5129 padding: 0.7rem 1.4rem; 5130 border: 1px solid rgba(0, 0, 0, 0.15); 5131 border-radius: 9px; 5132 font-size: 1.5rem; 5133 font-weight: 500; 5134 color: #000; 5135 background: #fff; 5136 text-decoration: none; 5137 line-height: 1; 5138 transition: background 0.18s ease, color 0.18s ease, border-color 0.18s ease, transform 0.18s ease; 5139 white-space: nowrap; 5140 } 5141 5142 .rx-pill:hover { 5143 background: #000; 5144 color: #fff; 5145 border-color: #000; 5146 transform: translateY(-1px); 5147 } 5148 5149 /* Section */ 5150 .rx-predictive-section { margin-bottom: 2rem; } 5151 .rx-predictive-section:last-child { margin-bottom: 0; } 5152 5153 .rx-predictive-default .predictive-search__heading { 5154 margin: 0 0 1rem; 5155 text-transform: uppercase; 5156 letter-spacing: 0.1rem; 5157 opacity: 0.75; 5158 font-size: 1.3rem; 5159 } 5160 5161 /* Slider */ 5162 .rx-rec-slider { 5163 position: relative; 5164 contain: layout style; 5165 } 5166 5167 .rx-rec-track { 5168 margin: 0; 5169 padding: 0 0 0.5rem 0; 5170 display: flex; 5171 gap: 0.5rem; 5172 overflow-x: auto; 5173 scroll-behavior: smooth; 5174 scroll-snap-type: x mandatory; 5175 -webkit-overflow-scrolling: touch; 5176 scrollbar-width: none; 5177 overscroll-behavior-x: contain; 5178 } 5179 5180 .rx-rec-track::-webkit-scrollbar { display: none; } 5181 5182 .rx-rec-slide { 5183 list-style: none; 5184 margin: 0; 5185 flex: 0 0 calc((100% - 3rem) / 3.1); 5186 scroll-snap-align: start; 5187 min-width: 0; 5188 contain: layout style; 5189 } 5190 5191 @media (max-width: 749px) { 5192 .rx-rec-slide { 5193 flex-basis: calc((100% - 1rem) / 1.5); 5194 } 5195 } 5196 5197 /* Arrows */ 5198 .rx-rec-arrow { 5199 position: absolute; 5200 top: 50%; 5201 transform: translateY(-50%); 5202 width: 40px; 5203 height: 40px; 5204 border-radius: 999px; 5205 border: 1px solid rgba(0, 0, 0, 0.1); 5206 background: #fff; 5207 color: #000; 5208 display: inline-flex; 5209 align-items: center; 5210 justify-content: center; 5211 cursor: pointer; 5212 padding: 0; 5213 z-index: 5; 5214 box-shadow: 0 2px 10px rgba(0, 0, 0, 0.12); 5215 transition: background 0.18s ease, color 0.18s ease, border-color 0.18s ease, opacity 0.18s ease, box-shadow 0.18s ease; 5216 } 5217 5218 .rx-rec-arrow:hover:not(:disabled) { 5219 background: #000; 5220 color: #fff; 5221 border-color: #000; 5222 box-shadow: 0 4px 14px rgba(0, 0, 0, 0.2); 5223 } 5224 5225 .rx-rec-arrow:disabled { 5226 opacity: 0; 5227 pointer-events: none; 5228 } 5229
5230 .rx-rec-prev { left: -8px; } 5231 .rx-rec-next { right: -8px; } 5232 5233 @media (max-width: 749px) { 5234 .rx-rec-arrow { width: 36px; height: 36px; } 5235 .rx-rec-prev { left: -4px; } 5236 .rx-rec-next { right: -4px; } 5237 5238 } 5239 5240 /* Slide content */ 5241 .rx-rec-link { 5242 display: flex; 5243 flex-direction: column; 5244 gap: 0.5rem; 5245 padding: 0.5rem; 5246 text-decoration: none; 5247 color: inherit; 5248 border-radius: 6px; 5249 transition: background 0.15s ease; 5250 } 5251 5252 .rx-rec-link:hover { background: rgba(0, 0, 0, 0.04); } 5253 5254 .rx-rec-link img, 5255 .rx-rec-placeholder { 5256 width: 100%; 5257 height: 100%; 5258 object-fit: cover; 5259 border-radius: 4px; 5260 background: rgba(0, 0, 0, 0.06); 5261 } 5262 5263 .rx-rec-meta { 5264 display: flex; 5265 flex-direction: column; 5266 gap: 0.2rem; 5267 min-width: 0; 5268 } 5269 5270 .rx-rec-title { 5271 font-size: 1.3rem; 5272 font-weight: 500; 5273 line-height: 1.3; 5274 display: -webkit-box; 5275 -webkit-line-clamp: 2; 5276 -webkit-box-orient: vertical; 5277 overflow: hidden; 5278 } 5279 5280 .rx-rec-price { 5281 font-size: 1.3rem; 5282 font-weight: 600; 5283 display: flex; 5284 gap: 0.5rem; 5285 align-items: center; 5286 } 5287 5288 .rx-rec-price s { opacity: 0.5; font-weight: 400; } 5289 .rx-rec-price .rx-on-sale { color: #c00; } 5290</style> 5291
5292<script> 5293(function () { 5294 if (window.__rxSearchInit) return; 5295 window.__rxSearchInit = true; 5296 5297 const PLACEHOLDERS = [ 5298 'Search for gifting', 5299 'Search for Moisturization', 5300 'Search for Shampoo + Conditioner', 5301 'Search for kumkumadi' 5302 ]; 5303 5304 // ââ Cached refs (set in init) ââ 5305 let detailsEl, input, container, template, resetBtn, dynamicTextEl; 5306 5307 // ââ Slider refs ââ 5308 let sliderTrack, sliderPrev, sliderNext; 5309 let scrollRaf = 0, resizeRaf = 0; 5310 5311 // ââ Placeholder state ââ 5312 let placeholderTimer = null; 5313 let placeholderIdx = 0; 5314 let placeholderRunning = false; 5315 5316 // ââ Inject debounce ââ 5317 let injectTimer = 0; 5318 5319 const isInputEmpty = () => !input || input.value.trim() === ''; 5320 const isModalOpen = () => detailsEl && detailsEl.hasAttribute('open'); 5321 5322 // âââââ Default state âââââ 5323 function injectDefaultState() { 5324 if (!container || !template) return; 5325 if (!isInputEmpty()) return; 5326 if (container.firstElementChild && container.firstElementChild.classList.contains('rx-predictive-default')) return; 5327 5328 container.replaceChildren(template.content.cloneNode(true)); 5329 bindSlider(); 5330 } 5331 5332 function scheduleInject(delay) { 5333 clearTimeout(injectTimer); 5334 injectTimer = setTimeout(injectDefaultState, delay || 120); 5335 } 5336 5337 // âââââ Slider âââââ 5338 function bindSlider() { 5339 const slider = container && container.querySelector('[data-rx-rec-slider]'); 5340 if (!slider || slider.dataset.rxBound) return; 5341 slider.dataset.rxBound = '1'; 5342 5343 sliderTrack = slider.querySelector('.rx-rec-track'); 5344 sliderPrev = slider.querySelector('.rx-rec-prev'); 5345 sliderNext = slider.querySelector('.rx-rec-next'); 5346 if (!sliderTrack || !sliderPrev || !sliderNext) return; 5347 5348 sliderPrev.addEventListener('click', () => slideBy(-1)); 5349 sliderNext.addEventListener('click', () => slideBy(1)); 5350 sliderTrack.addEventListener('scroll', queueButtonUpdate, { passive: true }); 5351 5352 queueButtonUpdate(); 5353 } 5354 5355 function getStep() { 5356 if (!sliderTrack) return 0; 5357 const first = sliderTrack.querySelector('.rx-rec-slide'); 5358 if (!first) return sliderTrack.clientWidth; 5359 const w = first.getBoundingClientRect().width; 5360 const gap = parseFloat(getComputedStyle(sliderTrack).gap) || 16; 5361 return (w + gap) * 2; 5362 } 5363 5364 function slideBy(dir) { 5365 if (!sliderTrack) return; 5366 sliderTrack.scrollBy({ left: getStep() * dir, behavior: 'smooth' }); 5367 } 5368 5369 function queueButtonUpdate() { 5370 if (scrollRaf) return; 5371 scrollRaf = requestAnimationFrame(() => { 5372 scrollRaf = 0; 5373 updateButtons(); 5374 }); 5375 } 5376 5377 function updateButtons() { 5378 if (!sliderTrack || !sliderPrev || !sliderNext) return; 5379 const max = sliderTrack.scrollWidth - sliderTrack.clientWidth - 1; 5380 sliderPrev.disabled = sliderTrack.scrollLeft <= 0; 5381 sliderNext.disabled = sliderTrack.scrollLeft >= max; 5382 } 5383 5384 // âââââ Placeholder âââââ 5385 function startPlaceholder() { 5386 if (placeholderRunning || !dynamicTextEl) return; 5387 placeholderRunning = true; 5388 dynamicTextEl.style.opacity = 1; 5389 dynamicTextEl.textContent = PLACEHOLDERS[placeholderIdx]; 5390 5391 placeholderTimer = setInterval(() => { 5392 dynamicTextEl.style.opacity = 0; 5393 dynamicTextEl.style.transform = 'translateY(-60%)'; 5394 setTimeout(() => { 5395 placeholderIdx = (placeholderIdx + 1) % PLACEHOLDERS.length; 5396 dynamicTextEl.textContent = PLACEHOLDERS[placeholderIdx]; 5397 dynamicTextEl.style.opacity = 1; 5398 dynamicTextEl.style.transform = 'translateY(-50%)'; 5399 }, 300); 5400 }, 2500); 5401 } 5402 5403 function stopPlaceholder() { 5404 if (placeholderTimer) { 5405 clearInterval(placeholderTimer); 5406 placeholderTimer = null; 5407 } 5408 placeholderRunning = false; 5409 if (dynamicTextEl) dynamicTextEl.style.opacity = 0; 5410 } 5411 5412 // âââââ Init âââââ 5413 function init() { 5414 detailsEl = document.querySelector('details-modal details'); 5415 input = document.querySelector('.rx-search-input'); 5416 container = document.querySelector('[data-predictive-search]'); 5417 template = document.getElementById('rx-predictive-default-template'); 5418 resetBtn = document.querySelector('.reset__button'); 5419 dynamicTextEl = document.querySelector('.rx-search-dynamic-text'); 5420
5421 if (!detailsEl) return; 5422 5423 // Modal open observer (single, attribute-only) 5424 new MutationObserver(() => { 5425 if (isModalOpen()) { 5426 injectDefaultState(); 5427 if (input) requestAnimationFrame(() => input.focus()); 5428 } else { 5429 stopPlaceholder(); 5430 } 5431 }).observe(detailsEl, { attributes: true, attributeFilter: ['open'] }); 5432 5433 if (isModalOpen()) injectDefaultState(); 5434 5435 // Input â single combined listener 5436 if (input) { 5437 input.addEventListener('input', () => { 5438 if (input.value.length > 0) { 5439 stopPlaceholder(); 5440 } else { 5441 startPlaceholder(); 5442 scheduleInject(120); 5443 } 5444 }); 5445 input.addEventListener('focus', stopPlaceholder); 5446 input.addEventListener('blur', () => { 5447 if (isInputEmpty()) startPlaceholder(); 5448 }); 5449 } 5450 5451 // Reset 5452 if (resetBtn) { 5453 resetBtn.addEventListener('click', () => scheduleInject(100)); 5454 } 5455 5456 // Container changes (predictive-search.js writes results here) 5457 if (container) { 5458 new MutationObserver(() => { 5459 if (!isInputEmpty()) return; 5460 if (!container.firstElementChild || 5461 !container.firstElementChild.classList.contains('rx-predictive-default')) { 5462 injectDefaultState(); 5463 } 5464 }).observe(container, { childList: true }); 5465 } 5466 5467 // Single rAF-throttled resize for slider buttons 5468 window.addEventListener('resize', () => { 5469 if (resizeRaf) return; 5470 resizeRaf = requestAnimationFrame(() => { 5471 resizeRaf = 0; 5472 updateButtons(); 5473 }); 5474 }, { passive: true }); 5475 5476 // Placeholder runs only while modal is open or page first loads 5477 // Placeholder runs only while modal is open or page first loads 5478if (isModalOpen() || document.activeElement !== input) { 5479 startPlaceholder(); 5480} 5481 5482// Close modal when clicking/tapping outside 5483document.addEventListener('click', (e) => { 5484 if (!isModalOpen()) return; 5485 const summary = detailsEl.querySelector('summary'); 5486 const modalContent = detailsEl.querySelector('.search-modal__content'); 5487 if (summary && summary.contains(e.target)) return; 5488 if (modalContent && modalContent.contains(e.target)) return; 5489 detailsEl.removeAttribute('open'); 5490}); 5491} 5492 5493 if (document.readyState === 'loading') { 5494 document.addEventListener('DOMContentLoaded', init, { once: true }); 5495 } else { 5496 init(); 5497 } 5498})(); 5499</script>
5499 5500 5501<a href="/cart" class="header__icon header__icon--cart link focus-inset" id="cart-icon-bubble" data-custom-cart="true"> 5502 <span class="svg-wrapper"><svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" fill="currentColor" aria-hidden="true" viewBox="0 0 512 512"><path d="M0 0h85q8-1 14 6l4 9 8 37 1 4v4h368q7 1 12 6c5 11-1 24-4 36l-7 22-5 17-39 138-1 2c-4 14-4 14-10 18q-6 3-13 2H155q-12-1-20 6-4 9-1 16 5 6 12 6l5 1h265q9-1 14 4 5 8 3 17-2 7-9 9l-5 1h-18l2 1q21 9 29 30c3 11 3 25-3 34q-9 16-25 22l-2 2q-18 4-35-4a51 51 0 0 1-23-27q-5-18 3-35 10-16 28-23H189l9 4q16 10 22 27c3 11 3 25-3 34q-9 16-25 22l-2 2q-18 4-35-4a51 51 0 0 1-23-27q-4-18 3-35 10-16 28-23h-16q-19 0-33-13-7-7-11-17l-1-2q-5-18 4-35 6-13 19-20h2L75 41v-3l-1-8h-3l-72 1h-3q-7 0-12-5-5-7-3-17 6-10 19-9m119 90 3 17v2l6 26 3 13 8 38 19 84h248l9-29 4-13 3-11 33-116 1-3 1-8zm44 308-1 12q3 7 9 9 7 2 14-1 5-4 6-10 1-8-5-14-5-4-12-3c-5 1-8 3 2 0q-9 1-13 7m212 0-1 12q3 7 9 9 7 2 14-1 4-4 6-10 0-8-5-14-5-4-12-3t-11 7"/></svg> 5503 </span> 5504 <span class="cart-count" id="cart-count">0</span> 5505</a> 5506
5507<script> 5508(function () { 5509 var cartIcon = document.getElementById('cart-icon-bubble'); 5510 if (!cartIcon) return; 5511 var savedHTML = cartIcon.innerHTML; 5512 function restoreIfClobbered() { 5513 if (!cartIcon.querySelector('#cart-count')) { 5514 var bubble = cartIcon.querySelector('.cart-count-bubble'); 5515 cartIcon.innerHTML = savedHTML; 5516 } 5517 } 5518 new MutationObserver(restoreIfClobbered).observe(cartIcon, { childList: true }); 5519 function syncCount(count) { 5520 var el = document.getElementById('cart-count'); 5521 if (el) el.textContent = count; 5522 } 5523 document.addEventListener('cart:refresh', function () { 5524 fetch('/cart.js', { credentials: 'same-origin', cache: 'no-store' }) 5525 .then(function (r) { return r.json(); }) 5526 .then(function (cart) { syncCount(cart.item_count); }); 5527 }); 5528 document.addEventListener('cart:updated', function (e) { 5529 if (e.detail && e.detail.cart) syncCount(e.detail.cart.item_count); 5530 }); 5531 // âââ Offer Dropdown JS âââ 5532 function initOfferDropdowns() { 5533 document.querySelectorAll('.header-offer-dropdown').forEach(function (wrap) { 5534 var btn = wrap.querySelector('.header-offer-dropdown__trigger'); 5535 var menu = wrap.querySelector('.header-offer-dropdown__menu'); 5536 if (!btn || !menu) return; 5537 var justOpened = false; 5538 function open() { 5539 if (window.innerWidth <= 749) { 5540 var rect = btn.getBoundingClientRect(); 5541 menu.style.top = (rect.bottom + 8) + 'px'; 5542 } else { 5543 menu.style.top = ''; 5544 } 5545 menu.hidden = false; 5546 requestAnimationFrame(function () { 5547 requestAnimationFrame(function () { menu.classList.add('is-open'); }); 5548 }); 5549 btn.setAttribute('aria-expanded', 'true'); 5550 justOpened = true; 5551 setTimeout(function () { justOpened = false; }, 10); 5552 } 5553 function close() { 5554 menu.classList.remove('is-open'); 5555 btn.setAttribute('aria-expanded', 'false'); 5556 setTimeout(function () { menu.hidden = true; }, 200); 5557 } 5558 btn.addEventListener('click', function (e) { 5559 e.stopPropagation(); 5560 if (btn.getAttribute('aria-expanded') === 'true') { 5561 close(); 5562 } else { 5563 open(); 5564 } 5565 }); 5566 document.addEventListener('click', function (e) { 5567 if (justOpened) return; 5568 if (!wrap.contains(e.target)) close(); 5569 }); 5570 document.addEventListener('keydown', function (e) { 5571 if (e.key === 'Escape' && btn.getAttribute('aria-expanded') === 'true') { 5572 close(); 5573 btn.focus(); 5574 } 5575 }); 5576 }); 5577 } 5578 if (document.readyState === 'loading') { 5579 document.addEventListener('DOMContentLoaded', initOfferDropdowns); 5580 } else { 5581 initOfferDropdowns(); 5582 } 5583})(); 5584</script>
5584<a 5585 href="https://www.soulflower.in/customer_authentication/redirect?locale=en®ion_country=IN" 5586 class="header__icon header__icon--account link focus-inset small-hide" 5587 rel="nofollow" 5588 ><span class="svg-wrapper"><svg 5589 xmlns="http://www.w3.org/2000/svg" 5590 viewBox="0 0 25 24" 5591 fill="none" 5592 aria-hidden="true" 5593 focusable="false" 5594> 5595 <path d="M15.2969 6.16679V4.50012H10.2969V6.16679H15.2969Z" fill="currentColor"/> 5596 <path d="M15.2969 16.1668V14.5001H10.2969V16.1668H15.2969Z" fill="currentColor"/> 5597 <path d="M18.63 7.83345H16.9634V12.8335H18.63V7.83345Z" fill="currentColor"/> 5598 <path d="M8.63005 7.83345H6.96338V12.8335H8.63005V7.83345Z" fill="currentColor"/> 5599 <path d="M16.9635 6.16679H15.2969V7.83346H16.9635V6.16679Z" fill="currentColor"/> 5600 <path d="M16.9635 12.8335H15.2969V14.5001H16.9635V12.8335Z" fill="currentColor"/> 5601 <path d="M10.2965 6.16679H8.62988V7.83346H10.2965V6.16679Z" fill="currentColor"/> 5602 <path d="M10.2965 12.8335H8.62988V14.5001H10.2965V12.8335Z" fill="currentColor"/> 5603 <path d="M10.2965 16.1668H8.62988V17.8335H10.2965V16.1668Z" fill="currentColor"/> 5604 <path d="M8.63005 17.8335H6.96338V19.5001H8.63005V17.8335Z" fill="currentColor"/> 5605 <path d="M16.9635 16.1668H15.2969V17.8335H16.9635V16.1668Z" fill="currentColor"/> 5606 <path d="M18.63 17.8335H16.9634V19.5001H18.63V17.8335Z" fill="currentColor"/> 5607</svg> 5608</span><span class="visually-hidden">Log in</span> 5609 </a></div> 5610 </header> 5611</sticky-header> 5612 5613</div> 5614<!-- END sections: header-group --> 5615 5616 <main id="MainContent" class="content-for-layout focus-none" role="main" tabindex="-1"> 5617 <section id="shopify-section-template--34635673698557__collection_banners_tQcxdN" class="shopify-section section"><style data-shopify> 5618 5619/* ââ Kill shopify section wrapper spacing ââ */ 5620.shopify-section:has(.fullwidth-image-section) { 5621 margin: 0 !important; 5622 padding: 0 !important; 5623 line-height: 0 !important; 5624 font-size: 0 !important; 5625 display: block !important; 5626} 5627 5628/* ââ Section wrapper: break out of page-width container ââ */ 5629.fullwidth-image-section { 5630 width: auto !important; 5631 max-width: none !important; 5632 margin-left: calc(50% - 50vw) !important; 5633 margin-right: calc(50% - 50vw) !important; 5634 left: auto !important; 5635 transform: none !important; 5636 position: relative !important; 5637 overflow: hidden !important; 5638} 5639 5640/* ââ Swiper container ââ */ 5641.fullwidth-slider { 5642 width: 100% !important; 5643 position: relative !important; 5644 line-height: 0 !important; 5645 font-size: 0 !important; 5646 overflow: hidden !important; 5647 margin: 0 !important; 5648 padding: 0 !important; 5649} 5650 5651/* ââ Swiper wrapper ââ */ 5652.fullwidth-slider .swiper-wrapper { 5653 line-height: 0 !important; 5654 font-size: 0 !important; 5655 margin: 0 !important; 5656 padding: 0 !important; 5657} 5658 5659/* ââ Each slide ââ */ 5660.fullwidth-slider .swiper-slide { 5661 width: 100% !important; 5662 line-height: 0 !important; 5663 font-size: 0 !important; 5664 margin: 0 !important; 5665 padding: 0 !important; 5666} 5667 5668/* ââ Picture ââ */ 5669.fullwidth-slider picture { 5670 display: block !important; 5671 line-height: 0 !important; 5672 font-size: 0 !important; 5673 width: 100% !important; 5674 margin: 0 !important; 5675 padding: 0 !important; 5676} 5677 5678/* ââ Image: full width, natural height, no gap ââ */ 5679.fullwidth-slider img { 5680 display: block !important; 5681 width: 100% !important; 5682 height: auto !important; 5683 max-width: 100% !important; 5684 vertical-align: top !important; 5685 margin: 0 !important; 5686 padding: 0 !important; 5687 line-height: 0 !important; 5688} 5689 5690/* ââ Pagination dots â overlaid inside the image ââ */ 5691.fullwidth-slider .swiper-pagination { 5692 position: absolute !important; 5693 bottom: 16px !important; 5694 top: auto !important; 5695 left: 0 !important; 5696 right: 0 !important; 5697 width: 100% !important; 5698 z-index: 10 !important; 5699 display: flex !important; 5700 align-items: center !important; 5701 justify-content: center !important; 5702 gap: 6px !important; 5703 line-height: 1 !important; 5704 pointer-events: none !important; 5705} 5706 5707.fullwidth-slider .swiper-pagination-bullet { 5708 pointer-events: all !important; 5709 background: #fff !important; 5710 opacity: 0.5 !important; 5711 width: 8px !important; 5712 height: 8px !important; 5713 border-radius: 50% !important; 5714 margin: 0 !important; 5715 flex-shrink: 0 !important; 5716 transition: width 0.2s ease, border-radius 0.2s ease, opacity 0.2s ease !important; 5717} 5718 5719.fullwidth-slider .swiper-pagination-bullet-active { 5720 opacity: 1 !important; 5721 background: #fff !important; 5722 width: 22px !important; 5723 border-radius: 4px !important; 5724} 5725 5726</style> 5727 5728<div class="fullwidth-image-section"> 5729 <div class="swiper fullwidth-slider" id="fullwidth-slider-template--34635673698557__collection_banners_tQcxdN"> 5730 <div class="swiper-wrapper"> 5731 � 5732 5733 5734 5735 5736 �<div class="swiper-slide" > 5737 5738 <picture> 5739 5740 <source 5741 media="(max-width: 749px)" 5742 srcset="//www.soulflower.in/cdn/shop/files/MOB-Flash-Sale.webp?v=1790767357&width=750 750w, //www.soulflower.in/cdn/shop/files/MOB-Flash-Sale.webp?v=1790767357&width=1100 1100w" 5743 sizes="100vw"> 5744 5745 <img 5746 src="//www.soulflower.in/cdn/shop/files/DES-Flash-Sale.webp?v=1790767358&width=1600" 5747 srcset="//www.soulflower.in/cdn/shop/files/DES-Flash-Sale.webp?v=1790767358&width=1200 1200w, //www.soulflower.in/cdn/shop/files/DES-Flash-Sale.webp?v=1790767358&width=1600 1600w, //www.soulflower.in/cdn/shop/files/DES-Flash-Sale.webp?v=1790767358&width=2000 2000w, //www.soulflower.in/cdn/shop/files/DES-Flash-Sale.webp?v=1790767358&width=2600 2600w" 5748 sizes="100vw" 5749 alt="Collection Banner" 5750 loading="eager" fetchpriority="high" 5751 decoding="async" 5752 width="1920" 5753 height="672"> 5754 </picture> 5755 5756 </div> 5757 5758 5759 5760 5761 5762 � 5763 5764 5765 � 5766 5767 5768 5769 5770 5771 5772 5773 5774 5775 5776 5777 5778 5779 5780 5781 5782 5783 5784 5785 5786 5787 5788 5789 5790 5791 5792 5793 </div> 5794 5795 <div class="swiper-pagination"></div> 5796 </div> 5797</div> 5798
5799<script> 5800(function () { 5801 var SLIDER_ID = 'fullwidth-slider-template--34635673698557__collection_banners_tQcxdN'; 5802 var MAX_WAIT = 5000; /* give up after 5s */ 5803 var INTERVAL = 50; /* check every 50ms */ 5804 var elapsed = 0; 5805 var inited = false; 5806 5807 function initSwiper() { 5808 if (inited) return; 5809 5810 var el = document.getElementById(SLIDER_ID); 5811 if (!el) return; 5812 5813 /* Guard: already initialised by a previous call */ 5814 if (el.swiper) { inited = true; return; } 5815 5816 /* Swiper not loaded yet â caller will retry */ 5817 if (typeof Swiper === 'undefined') return; 5818 5819 var realSlides = el.querySelectorAll('.swiper-slide'); 5820 5821 /* No slides matched at all â nothing to show */ 5822 if (realSlides.length === 0) { 5823 var section = el.closest('.fullwidth-image-section'); 5824 if (section) section.style.display = 'none'; 5825 inited = true; 5826 return; 5827 } 5828 5829 /* Single slide â hide pagination, nothing else needed */ 5830 if (realSlides.length === 1) { 5831 var pag = el.querySelector('.swiper-pagination'); 5832 if (pag) pag.style.display = 'none'; 5833 inited = true; 5834 return; 5835 } 5836 5837 new Swiper(el, { 5838 loop: true, 5839 autoHeight: false, 5840 slidesPerView: 1, 5841 autoplay: { 5842 delay: 3000, 5843 disableOnInteraction: false, 5844 }, 5845 pagination: { 5846 el: el.querySelector('.swiper-pagination'), 5847 clickable: true, 5848 } 5849 }); 5850 5851 inited = true; 5852 } 5853 5854 /* Poll until Swiper is available or we time out */ 5855 function waitForSwiper() { 5856 if (inited) return; 5857 if (elapsed >= MAX_WAIT) return; /* give up */ 5858 5859 if (typeof Swiper !== 'undefined') { 5860 initSwiper(); 5861 } else { 5862 elapsed += INTERVAL; 5863 setTimeout(waitForSwiper, INTERVAL); 5864 } 5865 } 5866 5867 /* Start as early as possible â covers both cached and uncached loads */ 5868 if (document.readyState === 'loading') { 5869 document.addEventListener('DOMContentLoaded', waitForSwiper); 5870 } else { 5871 waitForSwiper(); 5872 } 5873 5874 /* Also hook pageshow to catch bfcache restores (back/forward navigation) */ 5875 window.addEventListener('pageshow', function (e) { 5876 if (e.persisted) { 5877 inited = false; /* reset so we re-init on bfcache restore */ 5878 elapsed = 0; 5879 waitForSwiper(); 5880 } 5881 }); 5882})(); 5883</script>
5883 5884 5885 5886</section><section id="shopify-section-template--34635673698557__custom_liquid_znjJ3z" class="shopify-section section"> 5887<style data-shopify>.section-template--34635673698557__custom_liquid_znjJ3z-padding { 5888 padding-top: calc(40px * 0.75); 5889 padding-bottom: calc(52px * 0.75); 5890 } 5891 5892 @media screen and (min-width: 750px) { 5893 .section-template--34635673698557__custom_liquid_znjJ3z-padding { 5894 padding-top: 40px; 5895 padding-bottom: 52px; 5896 } 5897 }</style><div class="color-scheme-1 gradient"> 5898 <div class="section-template--34635673698557__custom_liquid_znjJ3z-padding"> 5899 <style> 5900.yt-byob-tracker-add-more-text { 5901 font-size: 0 !important; 5902} 5903.yt-byob-tracker-add-more-text * { 5904 display: none !important; 5905} 5906.yt-byob-tracker-add-more-text::after { 5907 content: "Pick 3+ Products, Get Each for Just â¹99"; 5908 font-size: 14px; 5909 font-weight: 600; 5910 line-height: 1.7; 5911 color: #121212; 5912} 5913</style> 5914 </div> 5915</div> 5916 5917 5918</section><section id="shopify-section-template--34635673698557__bundle_builder" class="shopify-section section"><div class=" scroll-trigger animate--slide-in"><div id="shopify-block-Aa214V01xUkVHaEVhb__bundlegenie_byob_upsell_bundle_builder_block_fikKFq" class="shopify-block shopify-app-block"><div 5919 id="yt-product-block" 5920 data-yt-product-block="bundle-builder" 5921 data-app-name="bundles" 5922 data-yt-current-product="" 5923></div> 5924<div id="yt-product-script-div"></div> 5925 5926 5927 5928 5929 5930 <style> 5931 /* Preset[builder]: Custom */ 5932/* ============================================================ 5933 Soulflower â Buy 4 @999 bundle 5934 Match the store's native theme product-card styling. 5935 5936 Targets YourToken build-your-own-box widget 5937 (.yt-byob-* / .yt-product-atc-* / .yt-byob-tracker-*) 5938 ============================================================ */ 5939 5940/* 1) TITLE â match theme .card-product-name (18px / weight 400) */ 5941[class*="yt-byob-product-title"] { 5942 font-size: 18px !important; 5943 font-weight: 600 !important; 5944 color: #000 !important; 5945 font-family: "Google Sans Flex", sans-serif !important; 5946 line-height: 1.15 !important; 5947} 5948 5949.bundle-builder-title{ 5950 display:none; 5951} 5952.yt-byob-products-column{ 5953 padding:8px; 5954} 5955/* 3) IMAGE â rounded, thin-bordered box like .card__inner / .card__media */ 5956.yt-byob-image-wrapper { 5957 border: 1px solid #ebebeb !important; 5958 border-radius: 4px !important; 5959 overflow: hidden !important; 5960} 5961 5962/* 4a) PRICE â */ 5963.yt-byob-current-price { 5964 font-size: 17.16px !important; 5965 font-weight: 600 !important; 5966 color: #000 !important; 5967 font-family: "Google Sans Flex", sans-serif !important; 5968} 5969.yt-byob-compare-price { 5970 font-size: 14.3px !important; 5971 font-weight: 300 !important; 5972 color: rgba(0, 0, 0, 0.75) !important; 5973 font-family: "Google Sans Flex", sans-serif !important; 5974} 5975 5976/* 4b) BADGE â "Kaleshi sale" chip next to price (pure CSS, incl. bolt icon). 5977 To make it conditional per product, add the real .inline-message-badge 5978 markup in the widget template and delete this ::after block. */ 5979.yt-byob-product-price { 5980 flex-wrap: wrap !important; 5981 align-items: center !important; 5982} 5983.yt-byob-product-price::after { 5984 display: inline-flex; 5985 align-items: center; 5986 white-space: nowrap; 5987 font-family: "Google Sans Flex", sans-serif !important; 5988 font-size: 11px; 5989 font-weight: 900; 5990 line-height: 11px; 5991 color: #ffffff; 5992 background-color: rgb(236, 43, 136); 5993 background-image: url('data:image/svg+xml;utf8,\3c svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="12" height="12" fill="white">\3c path d="M13 2L3 14h7l-1 8 10-12h-7l1-8z"/>\3c /svg>'); 5994 background-repeat: no-repeat; 5995 background-position: 6px center; 5996 padding: 3px 6px 3px 22px; 5997 margin-left: 6px; 5998 border:1px solid black; 5999} 6000 6001/* 2a) ADD TO BOX button â pill + black outline + theme pink, bolder text */ 6002.yt-byob-add-to-bundle-button, 6003.yt-product-atc-button, 6004.yt-product-atc-disabled { 6005 border-radius: 999px !important; 6006 border: 1px solid #000 !important; 6007 font-family: "Google Sans Flex", sans-serif !important; 6008 font-size: 16px !important; 6009 font-weight: 600 !important; 6010 text-transform: none !important; 6011} 6012.yt-byob-add-to-bundle-button, 6013.yt-product-atc-button { 6014 background-color: rgb(255, 170, 204) !important; 6015 color: #000 !important; 6016} 6017 6018/* 2b) QUANTITY STEPPER â theme pill stepper: â n + */ 6019.yt-byob-quantity-selector-container { 6020 border: 1px solid #000 !important; 6021 border-radius: 999px !important; 6022 background: transparent !important; 6023 justify-content: space-between !important; 6024 align-items: center !important; 6025 padding: 0 16px !important; 6026 overflow: hidden !important; 6027} 6028/* The widget nests two .yt-byob-quantity-selector-container divs, which drew 6029 two concentric pills â strip the inner one so only the outer pill shows. */ 6030.yt-byob-quantity-selector-container .yt-byob-quantity-selector-container { 6031 border: none !important; 6032 border-radius: 0 !important; 6033 padding: 0 !important; 6034 width: 100% !important; 6035} 6036.yt-byob-quantity-minus-button, 6037.yt-byob-quantity-plus-button { 6038 background: transparent !important; 6039 border: none !important; 6040 color: #000 !important; 6041 font-size: 22px !important; 6042 font-weight: 400 !important; 6043 width: auto !important; 6044} 6045.yt-byob-quantity-display { 6046 background: transparent !important; 6047 color: rgba(0, 0, 0, 0.75) !important; 6048 font-size: 18px !important; 6049 font-weight: 600 !important; 6050} 6051/* Reference stepper shows just the number; hide "added" to match. 6052 Remove this rule to keep the word "added". */ 6053.yt-byob-quantity-added-text { 6054 display: none !important; 6055} 6056 6057/* ------------------------------------------------------------ 6058 5) STICKY TRACKER / BUNDLE BAR 6059 ------------------------------------------------------------ */ 6060 6061/* Flatten the shadow, add the store's dark outline motif */ 6062.yt-byob-tracker-bar,
6063.yt-bundle-builder-tracker-bar, 6064.yt-byob-tracker-desktop-bar { 6065 box-shadow: none !important; 6066 border-top: 2px solid #000 !important; 6067} 6068 6069/* Dark borders on the item slots (filled thumbnails + empty placeholders). 6070 A filled slot nests .yt-byob-tracker-item inside .yt-byob-tracker-product-item, 6071 so border ONLY the inner thumbnail (and the standalone placeholder) â bordering 6072 the outer wrapper too would draw a double border. */ 6073.yt-byob-tracker-placeholder-box, 6074.yt-byob-tracker-item { 6075 border: 1px solid #000 !important; 6076} 6077.yt-byob-tracker-product-item { 6078 border: none !important; 6079} 6080 6081/* Hide the empty placeholder boxes until at least one item is in the box. 6082 :has() checks the slot list for any filled .yt-byob-tracker-item; with none, 6083 every placeholder is hidden â once an item is added the placeholders return. */ 6084.yt-byob-tracker-product-list-wrapper:not(:has(.yt-byob-tracker-item)) .yt-byob-tracker-placeholder-box { 6085 display: none !important; 6086} 6087 6088/* Smooth the appearance of slots (placeholders un-hiding + new item thumbnails). 6089 display:none -> flex can't be transitioned, so a keyframe animation is used: 6090 it replays whenever an element goes from hidden to displayed. */ 6091@keyframes yt-byob-slot-in { 6092 from { opacity: 0; transform: translateY(8px) scale(0.96); } 6093 to { opacity: 1; transform: none; } 6094} 6095.yt-byob-tracker-placeholder-box, 6096.yt-byob-tracker-item { 6097 animation: yt-byob-slot-in 0.25s ease both; 6098} 6099@media (prefers-reduced-motion: reduce) { 6100 .yt-byob-tracker-placeholder-box, 6101 .yt-byob-tracker-item { 6102 animation: none !important; 6103 } 6104} 6105 6106/* "Remaining" pill â yellow highlight, mono type (500px and up) */ 6107@media (min-width: 500px) { 6108 .yt-byob-tracker-mobile-remaining { 6109 background: #ffe402 !important; 6110 color: #000 !important; 6111 font-family: monospace !important; 6112 } 6113} 6114 6115/* Right-align the subtotal block â DESKTOP ONLY. 6116 Scoped to .yt-byob-tracker-desktop-summary because the mobile tracker reuses 6117 the same inner class names with different flex directions; applying these 6118 globally broke the phone layout. The price row is flex-end on its own, but its 6119 parent column centers it, so the parent must align to the end too. */ 6120.yt-byob-tracker-desktop-summary .yt-byob-tracker-summary-info { 6121 align-items: flex-end !important; 6122} 6123.yt-byob-tracker-desktop-summary .yt-byob-tracker-summary-info-content { 6124 justify-content: flex-end !important; 6125} 6126.yt-byob-tracker-desktop-summary .yt-byob-tracker-subtotal-row { 6127 justify-content: flex-end !important; 6128} 6129 6130/* Checkout button: hidden while disabled, dark-outlined once enabled */ 6131.yt-byob-tracker-checkout-button[disabled], 6132.yt-tracking-bar-checkout-button[disabled] { 6133 display: none !important; 6134} 6135.yt-byob-tracker-checkout-button:not([disabled]) { 6136 border: 1px solid #000 !important; 6137} 6138 6139/* Constrain the sticky bar on desktop so it doesn't span the full page width */ 6140@media (min-width: 900px) { 6141 .yt-byob-tracker-bar { 6142 max-width: 900px !important; 6143 margin-left: auto !important; 6144 margin-right: auto !important; 6145 } 6146} 6147 6148 6149/* ------------------------------------------------------------ 6150 6) PRODUCT QUICK-VIEW MODAL (desktop) 6151 ------------------------------------------------------------ */ 6152 6153/* Two-column layout with a FIXED modal height â DESKTOP / 500px and up only. 6154 Scoped in a media query because .yt-variant-selection-modal is shared with the 6155 mobile modal; the height behavior must not touch phones. 6156 The image column drives the modal height; the details column (title, price, 6157 long description, video, ATC) scrolls inside it, so a long description never 6158 grows the modal. */ 6159@media (min-width: 500px) { 6160 .yt-variant-selection-modal { 6161 align-items: stretch !important; 6162 gap: 32px !important; 6163 max-height: 90vh !important; 6164 overflow: hidden !important; 6165 } 6166 .yt-byob-modal-desktop-image-section { 6167 align-self: flex-start !important; 6168 height: auto !important; 6169 } 6170 .yt-byob-modal-desktop-details-section { 6171 /* height:0 makes this column contribute nothing to the row height, so the 6172 modal height is driven by the IMAGE column; min-height:100% then stretches 6173 it back to that image-driven height and overflow-y scrolls the overflow. */ 6174 height: 0 !important; 6175 min-height: 100% !important; 6176 overflow-y: auto !important; 6177 } 6178 /* Dark frame around the modal (3px of #393939 showing behind the content) */ 6179 .yt-byob-modal-desktop-overlay > div { 6180 background-color: #393939 !important; 6181 padding: 3px !important; 6182 } 6183} 6184.yt-byob-modal-desktop-main-image { 6185 border: 1px solid #ebebeb !important; 6186 border-radius: 8px !important; 6187} 6188 6189/* Title â bold, tucked to the top of the details column */ 6190.yt-byob-modal-desktop-title { 6191 font-family: "Google Sans Flex", sans-serif !important; 6192 font-weight: 600 !important; 6193 margin: 0 0 10px !important; 6194 line-height: 1.2 !important; 6195} 6196 6197/* Price â remove the top gap, make the current price bold */ 6198.yt-byob-modal-desktop-variant-price-wrapper { 6199 margin-top: 0 !important; 6200} 6201.yt-byob-modal-desktop-current-price { 6202 font-weight: 700 !important; 6203 font-size: 22px !important; 6204 color: #000 !important; 6205} 6206.yt-byob-modal-desktop-compare-price { 6207 color: rgba(0, 0, 0, 0.55) !important; 6208 text-decoration: line-through !important; 6209} 6210 6211/* Description â more readable line spacing */ 6212.yt-byob-modal-desktop-description { 6213 line-height: 1.6 !important; 6214} 6215 6216 /* Source order from the app: 6217 1 All · 2 Cleanse and Condition · 3 Hair Oil · 4 Oil & Nourish · 5 Treat & Protect 6218 Wanted: 6219 All · Oil & Nourish · Hair Oil · Treat & Protect · Cleanse and Condition */ 6220 .yt-byob-category-buttons-container .yt-byob-category-button:nth-child(1) { order: 0; } /* All */ 6221 .yt-byob-category-buttons-container .yt-byob-category-button:nth-child(4) { order: 1; } /* Oil & Nourish */ 6222 .yt-byob-category-buttons-container .yt-byob-category-button:nth-child(3) { order: 2; } /* Hair Oil */ 6223 .yt-byob-category-buttons-container .yt-byob-category-button:nth-child(5) { order: 3; } /* Treat & Protect */ 6224 .yt-byob-category-buttons-container .yt-byob-category-button:nth-child(2) { order: 4; } /* Cleanse and Condition */ 6225.yt-byob-product-details-wrapper { 6226 gap: 4px !important;}
6227 .yt-bundle-builder-product-price{ 6228 margin-bottom: 0 !important; 6229 margin-top: -4px !important; 6230 } 6231 6232 /* ============================================================ 6233 99 Store / Bundle builder (YourToken BYOB) â wider layout 6234 Less empty space on the sides, bigger product cards. 6235 Paste at the END of the bundle app's Custom CSS 6236 (or in theme â Custom CSS for the 99store page). 6237 ============================================================ */ 6238 6239/* 1) use (almost) the full page width instead of 90% */ 6240.yt-byob-layout-wrapper{ 6241 width: 100% !important; 6242 max-width: 1400px !important; /* stops cards getting huge on very wide screens */ 6243 margin-inline: auto !important; 6244 padding-inline: 24px !important; 6245 box-sizing: border-box !important; 6246} 6247.yt-byob-products-column{ padding: 0 !important; } 6248 6249/* 2) product grid: cards stretch to fill each column */ 6250.yt-byob-layout-wrapper .products-display{ 6251 display: grid !important; 6252 grid-template-columns: repeat(4, minmax(0, 1fr)) !important; 6253 gap: 24px !important; 6254 justify-content: stretch !important; 6255} 6256.yt-byob-layout-wrapper .yt-byob-product-container{ 6257 width: auto !important; 6258 max-width: none !important; 6259 min-width: 0 !important; 6260 margin: 0 !important; 6261} 6262.yt-byob-layout-wrapper .yt-byob-image-wrapper, 6263.yt-byob-layout-wrapper .yt-byob-image-wrapper img{ 6264 width: 100% !important; 6265 max-width: none !important; 6266} 6267 6268/* 3) tablet: 3 per row */ 6269@media (max-width: 1099px){ 6270 .yt-byob-layout-wrapper .products-display{ grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 18px !important; } 6271} 6272 6273/* 4) mobile: 2 per row, tight side gutter */ 6274@media (max-width: 749px){ 6275 .yt-byob-layout-wrapper{ padding-inline: 12px !important; } 6276 .yt-byob-layout-wrapper .products-display{ grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 12px !important; } 6277} 6278/* EndPreset[builder] */ 6279 </style> 6280 6281
6282<script 6283 type="module" 6284> 6285 window.addEventListener('DOMContentLoaded', (event) => { 6286 const script = document.createElement('script'); 6287 script.src = "https://cdn.shopify.com/extensions/01a12093-5ef1-7613-b0b2-7c993d034cc6/yourtoken-bundles-981/assets/yt-product-blocks.js"; 6288 script.defer = true; 6289 script.type = 'module'; 6290 document.getElementById('yt-product-script-div').appendChild(script); 6291 6292 try { 6293 const data = { 6294 customerId: '', 6295 customerEmail: '', 6296 storeId: '54912745725', 6297 storeDomain: 'soulflower-bc21.myshopify.com', 6298 storeEmail: '[email protected]', 6299 cartAmount: '0', // presentment-currency subunits; not read by any bundle consumer â currency handling is moot here 6300 cartQty: '0', 6301 enableLoyaltyTiers: null, 6302 tokenCreditPercentage: null, 6303 alternatePaymentRedemptionRate: null, 6304 loyaltyWidgetOpen: null, 6305 widgetThemeColor: null, 6306 brandLogoId: null, 6307 brandLogoPath: null, 6308 r2LogoPath: null, 6309 loyaltyPointsCapOnCartAmount: null, 6310 shopifyStoreTheme: null, 6311 enableRedeemInCartOffers: null, 6312 brandTokenName: null, 6313 widgetRegistrationType: null, 6314 showRegistrationNudge: null, 6315 maxTokensRedeemableAsDiscount: null, 6316 loyaltyRibbonTextColor: null, 6317 ytCustomCart: {"showMetafieldBasedRecs":false,"showCollectionBasedRecs":false,"showManualProductRecs":false,"showDynamicProductRecs":false,"recommendedCollectionsList":[],"collectionRecsLimits":0,"dynamicProductRecsLimit":10,"cartTitle":"Your Cart","cartBackgroundColor":"#ffffff","exploreCtaColor":"#000000","enableCustomCart":true,"recommendedProductsList":{"productHandles":[],"productIds":[],"variantSelections":[]},"checkoutType":"gokwik","showBackdrop":true,"discountInCheckoutButton":false,"ctaButtonBackgroundColor":"#e9176e","ctaButtonTextColor":"#FFFFFF","primaryTextColor":"#000000","productRecsCtaButtonText":"Add","productRecsTitleText":"PEOPLE ALSO BOUGHT","emptyProductRecsTitleText":"You might also like","productRecsCardLayout":"vertical","productRecsCardListVariant":"scroll","secondaryTextColor":"#1A1A1A","showProductRecsOnDesktop":true,"showProductRecsOnMobile":true,"showEmptyCartRecommendations":false,"themeColor":"#ffaacc","themeTextColor":"#000000","showGSTOption":false,"enableCustomCartOpenOnProductAdd":true,"showNoteOption":false,"showEditOptionOnProducts":true,"showVariantSelectionDropdownInProductRecs":true,"postalCodeList":[],"enableGeoLocationRestriction":false,"showStickyAddToCart":false,"cartGeoLocationValidatorData":{},"enableCustomCartOnCartPage":true,"showCartTimer":false,"cartTimerInMinutes":5,"cartTimerCustomText":"Your products are reserved in cart for","cartTimerData":{"showTimer":true,"minutes":5,"customText":"Your products are reserved in cart for"},"cartComponentsCornerType":"rounded","cartComponentsCornerRadius":6,"giftWrapData":{},"stickyAddToCartProductBarData":{},"cartOffersCarousalData":{"enableCartOffersCarousel":true,"slidesCount":1,"pauseTimer":2,"backgroundColor":"#f8e71c","primaryTextColor":"","secondaryTextColor":"","slides":[{"criteria":[],"imageUrl":"https:\/\/r2.yourtoken.io\/38e0213717e9bbe33b3a8.jpg","slideType":"TextFieldOnly","slideNumber":1,"campaignCode":"","criteriaCount":0,"enableMarquee":true,"textAlignment":"center","redirectionUrl":"","titleTextField":"Add 2 Products to Avail B1G1 Free!","descriptionTextField":"","enableCustomCriteria":false}]},"freebieMilestoneData":{},"trustedBadgeData":{},"freebieClaimData":{},"floatingCartData":{},"couponSelectionData":{},"uploadImageAddonData":{},"checkoutSectionData":{},"drawerLayoutData":{},"cartGstSectionData":{},"bxgyDiscountsEnabled":true,"switchWidthVariant":true}, 6318 ytConfigSource: 'app', 6319 signinCTAVisibility: true, 6320 currentProduct: null 6321 }; 6322 window.ytBundleApp = data; 6323 } catch (error) { 6324 console.error('Error in adding custom object to window:', error); 6325 } 6326 6327 async function fetchDataToInject() { 6328 6329 let storeId = window.ytBundleApp.storeId; 6330 let apiEndpoint = `https://api.yourtoken.io/api/v1/brand/shopify/${storeId}`; 6331
6332 try { 6333 const response = await fetch(apiEndpoint); 6334 const data = await response.json(); 6335 window.ytBundleApp.tokenCreditPercentage = data?.tokenCreditPercentage; 6336 window.ytBundleApp.enableLoyaltyTiers = data?.enableLoyaltyTiers; 6337 window.ytBundleApp.widgetThemeColor = data?.widgetThemeColor; 6338 window.ytBundleApp.pointsValueWithInr = data?.pointsValueWithInr; // loyalty app contract field; unrelated to bundle pricing 6339 window.ytBundleApp.brandLogoId = data?.brandLogo?.id; 6340 window.ytBundleApp.brandLogoPath = data?.brandLogo?.path; 6341 window.ytBundleApp.r2LogoPath = data?.r2LogoPath; 6342 window.ytBundleApp.loyaltyPointsCapOnCartAmount = data?.loyaltyPointsCapOnCartAmount; 6343 window.ytBundleApp.shopifyStoreTheme = data?.shopifyStoreTheme; 6344 window.ytBundleApp.enableRedeemInCartOffers = data?.enableRedeemInCartOffers; 6345 window.ytBundleApp.brandTokenName = data?.brandTokenName; 6346 window.ytBundleApp.widgetRegistrationType = data?.widgetRegistrationType; 6347 window.ytBundleApp.maxTokensRedeemableAsDiscount = data?.maxTokensRedeemableAsDiscount; 6348 window.ytBundleApp.loyaltyRibbonTextColor = data?.loyaltyRibbonTextColor; 6349 window.ytBundleApp.signinCTAVisibility = data?.signinCTAVisibility; 6350 window.ytBundleApp.brandId = data?.brandId; 6351 window.ytBundleApp.brandName = data?.brandName; 6352 } catch (error) {} 6353 } 6354 6355 fetchDataToInject(); 6356 6357 }); 6358</script>
6358 6359 6360 6361</div> 6362</div> 6363 6364 6365</section> 6366 </main> 6367 6368 <!-- BEGIN sections: footer-group --> 6369<div id="shopify-section-sections--34514167365885__footer" class="shopify-section shopify-section-group-footer-group"> 6370<link href="//www.soulflower.in/cdn/shop/t/140/assets/section-footer.css?v=60318643098753476351789808789" rel="stylesheet" type="text/css" media="all" /> 6371<link href="//www.soulflower.in/cdn/shop/t/140/assets/component-newsletter.css?v=4727253280200485261789808705" rel="stylesheet" type="text/css" media="all" /> 6372<link href="//www.soulflower.in/cdn/shop/t/140/assets/component-list-menu.css?v=151968516119678728991789808700" rel="stylesheet" type="text/css" media="all" /> 6373<link href="//www.soulflower.in/cdn/shop/t/140/assets/component-list-payment.css?v=69253961410771838501789808701" rel="stylesheet" type="text/css" media="all" /> 6374<link 6375 rel="preload" 6376 href="//www.soulflower.in/cdn/shop/t/140/assets/component-list-social.css?v=35792976012981934991789808702" 6377 as="style" 6378 onload="this.onload=null;this.rel='stylesheet'" 6379> 6380<noscript><link href="//www.soulflower.in/cdn/shop/t/140/assets/component-list-social.css?v=35792976012981934991789808702" rel="stylesheet" type="text/css" media="all" /></noscript><style data-shopify>.footer { 6381 margin-top: 0px; 6382 } 6383 6384 .section-sections--34514167365885__footer-padding { 6385 padding-top: 75px; 6386 padding-bottom: 0px; 6387 } 6388 6389 @media screen and (min-width: 750px) { 6390 .footer { 6391 margin-top: 0px; 6392 } 6393 6394 .section-sections--34514167365885__footer-padding { 6395 padding-top: 100px; 6396 padding-bottom: 0px; 6397 } 6398 } 6399 6400 6401@media screen and (max-width: 749px){ 6402 /* .footer-block__details-content{ 6403 display: none; 6404 } */ 6405 6406 .footer-block.open .footer-block__details-content{ 6407 display: block; 6408 margin-top: 10px; 6409 } 6410 6411 .footer-block__heading{ 6412 cursor: pointer; 6413 position: relative; 6414 } 6415 6416 .footer-block__heading::after{ 6417 transition: transform 0.3s ease; 6418 } 6419 6420 .footer-block.open .footer-block__heading::after{ 6421 transform: rotate(180deg); 6422 } 6423 6424} 6425 /* SAndeep - THE HIPELEMENT */</style><footer class="footer color-scheme-3 gradient section-sections--34514167365885__footer-padding"> 6426 6427 6428 6429 <div class="page-width custom-footer"> 6430 6431 6432 <!-- LOGO (FULL WIDTH) --> 6433 <div class="custom-footer__logo"> 6434 <svg xmlns="http://www.w3.org/2000/svg" width="1440" height="auto" aria-label="Soulflower logo" viewBox="0 0 3346 931" role="img"><defs><linearGradient id="a" x1="0%" x2="100%" y1="0%" y2="0%"><stop offset="0%"><animate attributeName="stop-color" dur="22s" repeatCount="indefinite" values="#E63946;#F1C453;#43AA8B;#6A4C93;#E63946"/></stop><stop offset="100%"><animate attributeName="stop-color" dur="22s" repeatCount="indefinite" values="#E63946;#F1C453;#43AA8B;#6A4C93;#E63946"/></stop></linearGradient></defs><path fill="url(#a)" d="M0 0c5.7 0 11.3 1.2 16.9 2.3l3.5.7c37.4 7.6 76.3 23.1 103.3 51.2v2l1.7.6c3.1 1.9 5.2 4.4 7.5 7.2l1.5 1.8c25 30.5 32.1 69 28.6 107.3-3 29-13.6 54.8-33 76.6l-6 7.3c-16.7 20.4-39.6 33.5-62.3 46.2a865 865 0 0 0 22.2 19.7q9.9 8.4 19.3 17 9 8.3 18.6 15.6l1.9 1.7v2l1.7.7c3 1.6 5 3.7 7.5 6 8.2 7.5 8.2 7.5 16.8 14.6l2 1.7v2l1.6.7c3.3 1.8 6 4.3 9 6.8l1.8 1.6q7.2 6.1 14 12.6 5.1 4.4 10.8 8.4c1.8 1.9 1.8 1.9 2 4.6l-.2 2.3-21 7-3.1 1-9.3 3-2.9 1a24 24 0 0 1-14.7 1c-2.3-2.5-2.3-2.5-4-5l-2-1v-2l-3-1v-2h-2a62 62 0 0 1-7-7.6 41 41 0 0 0-7-6.4l-5-5-2.3-2.2c-1.7-1.8-1.7-1.8-1.7-3.8l-1.8-.8a22 22 0 0 1-6.2-5.2v-2l-1.7-.8c-2.6-1.4-4.3-3-6.4-5l-2.3-2.3-2.4-2.4-2.4-2.4-2.2-2.3-2.1-2c-1.5-1.8-1.5-1.8-1.5-3.8l-1.8-.8c-2.5-1.4-4.2-3-6.2-5l-2.2-2.3-2.4-2.4-4.5-4.7-2-2c-2-2-2-2-4.9-3.8v-2h-2v-2h-2v-2l-1.9-.8c-2.5-1.4-2.8-2.6-4.1-5.2l-4-2c-2.8-2.5-2.8-2.5-5-5v-2l-3-1v109h-42.9l-3.6.1H-22c-2.2-.1-2.2-.1-3.2-1.1l.1-6.2v-2l1.3-32.7a11818 11818 0 0 1 6.3-142.5l3.8-78.3V170l3.2-64.5Q-9 69-6.7 32.5l.2-3.1.5-8.6.2-2.5 1-12.6.2-2.6C-4-.2-3.6.2 0 0m47.7 50.2a1093 1093 0 0 0-4.3 45.5l-8 97.4-6.4 79.4c-.4 4-.4 4 .7 7.7q11.2-8.2 21.5-17.7l7-6.1q4.1-3.7 7.5-8.2l2.4-2.4a133 133 0 0 0 37.6-91.6c-.2-25-7.3-46.8-20-68.2L83 81.2l-1.3-2h-2l-.8-1.7a37 37 0 0 0-5.2-7L71.6 68c-1.7-2-1.7-2-3.9-1.8l-.8-1.8a14 14 0 0 0-5-5.2l-2.4-1.6-2.4-1.7-2.4-1.6c-3.2-2.7-3.2-2.7-7-4.1" transform="translate(2927.3 120.8)"/><path fill="url(#a)" d="M0 0c3.6.4 6 1.4 9 3.4L11 5l2.4 1.7 5 3.5 2.7 1.9 17.1 11.4 2.6 1.7 2.2 1.5c2 1.3 2 1.3 4 3.3.3 6-.4 12-1.2 18l-.4 2.9-4.6 35-2.4 17.8-23.3 175.6-1.4 10.7-10.8 81.3A4193 4193 0 0 1-5 429h-4l-18.9-49.6-.7-2-12-32-1-2.5q-6.5-17.7-13.2-35.3l-.8-2-26.9-71.6-1-2.5-14.5-38.8-1.4-3.7-1.1-3.2-6.5-16.8-8.5 105.6-.2 2.3-12 152.7c-.3 2.4-.3 2.4-1.3 4.4l-4-1-49.5-176-1-3.7-1.1-3.9-.6-2-13.8-49.2-.8-2.8-19-67.2-.8-3-20-71.2-.8-2.5c-1.3-4.6-2-8.7-1.6-13.5 2-2 3.5-3.2 5.9-4.6l3.8-2.6 2.1-1.3q6-4 11.4-8.2 8.2-6 16.6-11.7 4.7-3.5 9.2-7.3c2-1.3 2-1.3 6-1.3q2.2 9.8 3.7 20l.5 3.2 1.7 10.7 6.3 41.6.3 2.2 28 183.5.5 3a80 80 0 0 1 1 14.8h2l.1-2.4a390 390 0 0 1 4.4-37.2l2.2-15.7 2.4-16.5 19-134.7q.6-4.4 1.9-8.5h4l.6 1.7 27 71.6 35 92.5.6 2 8.7 23.1 1.1 3 1 2.6q1.9 4.3 4 8.5l9.5-85.7 13-116.7.3-3.3 5-46 .5-3.9.3-3.3C-1.2 1.2-1.2 1.2 0 0" transform="translate(2454 121)"/><path fill="url(#a)" d="M0 0h11.5c19.9.2 19.9.2 29 3.3a106 106 0 0 1-2 23.4l-.3 2.8q-3.6 24.3-6 48.6 0 1.3-.3 2.5l-1.7 19c-1 11.7-1 23.4-1 35v3.5c0 18.6.9 36.7 3.3 55.2l.4 3.2c5.6 44.6 18 90.3 36.3 131.4 2.3 5.1 2.3 5.1 2.3 8.4h2l.5-2q2.6-9.6 5.6-19.2a689 689 0 0 0 27.9-160.8l.1-2.4q1.3-22.2 1-44.4v-3.6c0-26-1.3-51.8-4.8-77.7l-.5-3.9-.5-3.4q-.5-6.7-.3-13.6l39.7-.1h9.2c2.1 0 2.1 0 3.1 1 3.9 22.7 2.2 47 2.3 69.9v2.7A686 686 0 0 1 153 163c-8.7 80.5-29 159.4-71.5 262.2-2.2-.1-2.2-.1-5-1a56 56 0 0 1-4.7-6.
64346l-1.3-2-9.2-14.7-1.2-1.8a494 494 0 0 1-44.6-94l-.7-2a592 592 0 0 1-33.3-159l-.3-3.7a613 613 0 0 1-1-39.5v-3.6q0-28.4 2.9-56.7l1.3-14.3.2-2.4 1.3-15.6.4-3.6.2-2.5C-8.8.8-4.9 0 0 0" transform="translate(832.5 120.7)"/><path fill="url(#a)" d="M0 0c3.2.3 4 1 6.3 3.4C8 6 8 6 8 8h2c1.3 1.4 1.3 1.4 2.8 3.5l1.7 2.3 1.9 2.5 1.9 2.6c47 65 76.1 150.2 63.8 230.9C71.2 313.8 44.9 374.4 16 432c-3.5.4-4.8.2-7.7-1.9l-2.6-2.5-2.7-2.4C1 423 1 423 1 421l-1.7-.6a28 28 0 0 1-7.4-7l-1.4-1.8a251 251 0 0 1-36-60.7L-49 343l-1.3-3A333 333 0 0 1-70 270l-.5-2.9A205 205 0 0 1-69 186l.7-3.2C-55.6 126.8-33 73.5-10 21l1.2-2.7 3.4-7.6 1-2.3Q-2.6 4.1 0 0m4 75a936 936 0 0 0-23 111l-.5 3.4C-27 244.1-22.7 312 3 362l2 1c14-29.7 25.5-60.1 33.4-92l.7-2.7c4-17.3 5.4-34.5 5.3-52.2v-2.9C44.3 199 43.8 185 41 171l-.6-3A322 322 0 0 0 5 75z" transform="translate(591 121)"/><path fill="url(#a)" d="M0 0c3.9.2 5 1 7.7 3.8l4.5 5.8C26.2 27.8 38.8 47.4 49 68l1 2.1q9.1 18.6 16 37.9l.7 2a281 281 0 0 1 5 15.3 355 355 0 0 1 10.7 50.2C92.4 241.3 72.2 305.8 47 366l-1.3 3c-9 21.4-18.3 42.8-29.7 63-5.1-.8-7.3-2.5-11-6v-2l-1.6-.6c-3.3-1.9-5.6-4.5-8-7.2l-1.5-1.6c-2.8-3-4.7-5.7-5.9-9.6h-2l-2.9-3.9-1.7-2.5-1.8-2.9-2-2.8c-38-58.6-60.6-136.6-46.2-206.2C-57 132.3-35.4 79.8-13 29l.9-2C-2 4-2 4 0 0m4 75a1264 1264 0 0 0-24 122l-.3 2.4c-1.2 9.2-1 18.5-1 27.7v2.8a392 392 0 0 0 9 84.2C-7.4 340.4-7.4 340.4 5 363c36.8-66.6 51-146.4 30.1-220.1-5.9-20-14.5-38.7-23.6-57.3L10.3 83 9 80.7l-1-2c-1.2-2-1.2-2-4.1-3.7" transform="translate(1997 122)"/><path fill="url(#a)" d="M0 0h21.5c4.4 0 7.8.7 12 2.2l-.2 63.2V74L33 99.2l-.1 12-1.3 191.6q0 21.7-1.2 43.4l2.2-.7a3293 3293 0 0 1 71.6-20.8l2.6-.8 8-2.5 2.4-.8c2.4-.5 3.8-.2 6.2.6a1303 1303 0 0 1-1.8 79.5l-.9 22.5-.1 4c-.2 3-.2 3-1.2 5-26-.7-52.1-2.2-78.1-3.6l-54-3h-2.7l-2.4-.2c-1.8-.2-1.8-.2-3.8-1.2a4643 4643 0 0 1 .8-105.2l1.2
6434-56.8V259A6670 6670 0 0 1-12 72l3.3-68.4C-8.3-1.4-4 0 0 0" transform="translate(1140.5 120.8)"/><path fill="url(#a)" d="M0 0h21.5c4.4 0 7.8.7 12 2.2l-.8 129.1v2.8l-.8 114.3c-.4 68.4-.4 68.4-1.4 97.8l1.9-.6a2357 2357 0 0 1 68-19.8l3.1-1 13.8-4.1c2.2-.5 2.2-.5 6.2-.5a1285 1285 0 0 1-1.8 78.7l-.9 23.9v2.2c-.2 5-.2 5-1.3 7.2a2665 2665 0 0 1-78-3.6l-52-2.8-3.1-.1-2.8-.2-2.3-.1c-1.8-.2-1.8-.2-2.8-1.2l-.2-9v-17c0-46.7 1.1-93.4 2.2-140v-2.8a5327 5327 0 0 1 7-174.1l1-23.3L-9 8.2l.2-2.1C-8.5-1-6.3 0 0 0" transform="translate(1681.5 120.8)"/><path fill="url(#a)" d="M0 0a261 261 0 0 1 32.4 1.7l13.2 1L59.5 4l111.2 9.3 3.6.4c2.7.3 2.7.3 3.7 1.3a104 104 0 0 1-3.7 19.9l-.8 3-5.8 22.2-.8 2.9-.7 2.7-.6 2.4C165 70 165 70 164 72q-9.3-.8-18.3-3.2l-2.6-.7-30.5-7.7-28.3-7.2-3-.8-8.3-2-2.5-.7L57 46v3.8c0 8.6-.8 17.2-1.5 25.8L54 94l3 .4 69.5 9.5 2.3.3c5 .7 5 .7 6.2 1.8.8 7.9.6 19.8-3 27l-73-3.5c-1.2 0-1.2 0-2.3-.2q-3 0-5.7-.3v2.4a21080 21080 0 0 1-1.5 277.7v3.6l-.2 9.9v2.9c-.2 6.4-.2 6.4-1.3 7.5l-5.3.1H26.3C24 433 24 433 23 432l-.5-4.9-.2-3.2-.2-3.6-.3-3.7q-1.5-24.1-2.8-48.3l-.8-14.1-6.1-113.3-.2-3.4-.2-3.5L.7 31.3Q-.2 15.7 0 0" transform="translate(1382 121)"/><path fill="url(#a)" d="M0 0h7.4a1285 1285 0 0 1 58 1.1l13 .4Q89 1.6 99 3c1.1 4.5 1 8.8.9 13.4v2.4L99 44c-18.7 1.3-37.3 1-56 1v2.6a697 697 0 0 1-.9 36.4l-.5 13.7L41 114l-1 25h53c0 12.4 0 12.4-.4 17.4l-.3 3.3-.2 3.2-.3 3.4c-.8 9.8-.8 9.8-1.8 12.7-2.3 1.2-4 1.3-6.5 1.5l-2.9.2L41 184 23.6 368q-.6 7-1.6 14l2-.5q5.8-.9 11.8-1l2.6-.2 39.9-1.4h2.3c5.3 0 5.3 0 6.4 1.1l.1 5v6.9L87 434a536 536 0 0 1-42.3 1H-10c-.2-18.5.3-37 .7-55.4l.4-14.4 1.1-51 .1-3.2 5.9-258.3C-1 16.4-1 16.4 0 0" transform="translate(2641 120)"/><path fill="url(#a)" d="m0 0 5.8 3.8L8 5.2l2 1.3 1.8 1.2c1.7 1.7 2 3 2.4 5.3l-5.8 4.5-1.8 1.3-11.7 9q-6.4 4.6-12.1 10C-19 39-19 39-22 39l-.8 1.8A16 16 0 0 1-27 46h-2v2l-3.2 2.7a58 58 0 0 0-9.7 10.7l-1.6 2.1c-15.4 21.4-24.8 46-20.7 72.8a210 210 0 0 0 22 59.4c22.7 44.8 47.9 98.6 31.4 149.6a102 102 0 0 1-23.7 38.1C-37 386-37 386-39 388.7c-14.9 18.5-41.7 33-64 40.3h-4q-3.3-13.9-5-28l2.2-1.3A120 120 0 0 0-77 370.5 102 102 0 0 0-55.6 321c3.4-26.6.8-59-16-80.8l-5.8-7.1c-27-33.2-60-76.4-56.5-122a91 91 0 0 1 27-55l2.4-2.5 2.6-2.5 2-2a210 210 0 0 1 58-35.6l22-10 9.8-4.3c4-1.4 6.3-1 10.1.9" transform="translate(373 126)"/><path fill="url(#a)" d="m0 0 41.7-.2 13-.2h13.1C83.2-.6 96.5 1 109 11a42 42 0 0 1 11.2 31.7A40 40 0 0 1 109 72a41 41 0 0 1-12 8l2 1c7.4 4 12.1 8.4 14.9 16.6 2.3 9 3 17.9 3.8 27A57 57 0 0 0 125 153v2h-24c-3.4-7.9-3.4-7.9-3.6-13.2l-.2-3.6-.1-3.6C95.9 111.8 95.9 111.8 84 93c-7.4-3.8-16.6-3.2-24.7-3.3h-3l-10.8-.3L21 89v66H0zm21 18v53l25.7.3H61l3.3.2A44 44 0 0 0 91 64.3c5.8-5.9 7.3-12.1 7.4-20.3-.1-7.3-1.1-13.1-6-18.8-8-7.4-16.6-7.6-27-7.5H51.6l-10.4.2z" transform="translate(776 659)"/><path fill="url(#a)" d="m0 0 41.7-.2 13-.2h13.1C83.2-.6 96.5 1 109 11a42 42 0 0 1 11.2 31.7A40 40 0 0 1 109 72a41 41 0 0 1-12 8l2 1c7.4 4 12.1 8.4 14.9 16.6 2.3 9 3 17.9 3.8 27A57 57 0 0 0 125 153v2h-24c-3.4-7.9-3.4-7.9-3.6-13.2l-.2-3.6-.1-3.6C95.9 111.8 95.9 111.8 84 93c-7.4-3.8-16.6-3.2-24.7-3.3h-3l-10.8-.3L21 89v66H0zm21 18v53l25.7.3H61l3.3.2A44 44 0 0 0 91 64.3c5.8-5.9 7.3-12.1 7.4-20.3-.1-7.3-1.1-13.1-6-18.8-8-7.4-16.6-7.6-27-7.5H51.6l-10.4.2z" transform="translate(238 659)"/><path fill="url(#a)" d="M0 0h3.6a59 59 0 0 1 40.8 14.6c9.7 10.2 12.3 22.3 13.2 35.8h-21l-1.1-5.3c-2-8.2-5.1-15-12-20.1a55 55 0 0 0-37-5c-8.3 2.2-14.6 6-19 13.5a23 23 0 0 0-1.2 16.9c3.7 7 9.4 10.6 16.8 13l2.3.7q13.6 4 27.4 6.8c17.5 3.9 35.2 8.8 45.8 24.5a47 47 0 0 1 3.5 36 40 40 0 0 1-9.5 15l-1.4 1.6c-3.8 3.8-8.5 6.2-13.2 8.6l-1.9 1A71 71 0 0 1 2.8 164H-.9a65 65 0 0 1-46.3-17.2 50 50 0 0 1-14.2-38.3h20l1.2 6a36 36 0 0 0 15.8 24 67 67 0 0 0 47.5 4 32 32 0 0 0 16.5-14c1.2-3.4 1.2-6.2 1.3-9.8V115q-.5-7.7-6.2-12.6C24 94 9.7 92-3.3 89.2c-39.6-9.3-39.6-9.3-50.4-25.8-4.8-9.6-4.4-24-1.1-34.1A51 51 0 0 1-30 4.8 82 82 0 0 1 0 0" transform="translate(2357.4 654.6)"/><path fill="url(#a)" d="m0 0 3.1 1.2a57 57 0 0 1 30.3 32.5c1.6 4.6 2 8.2 2.6 13.3H14l-2.1-6A37 37 0 0 0-7.6 18.8a55 55 0 0 0-39.5-1 49 49 0 0 0-27.5 28.4A89 89 0 0 0-74 110a48 48 0 0 0 25.3 27c12 4 26 5.1 38 .4a43 43 0 0 0 23-26.5q2.2-7.4 3.7-14.9h21c0 16.7-6.4 33.8-18 46a67 67 0 0 1-49.4 17.4h-3.5A68 68 0 0 1-59 155l-3.1-1.2A68 68
64340 0 1-96.2 116 112 112 0 0 1-93 33 69 69 0 0 1-53.8-1.2L-51-2l1.9-.5C-33.8-6.5-14.7-5.8 0 0" transform="translate(1724 659)"/><path fill="url(#a)" d="M0 0h3.6a47 47 0 0 1 31.2 9.4A33 33 0 0 1 42 32v2.2l.3 25.8.2 13.7.3 26.7h10v16a29 29 0 0 1-12.4 2.4l-3.9.1c-4.3-.5-6.4-1.7-9.7-4.5q-2.8-4.6-4-10L21 106a51 51 0 0 1-35.9 12.7h-2.8a39 39 0 0 1-27.5-9.3c-7.5-10.2-8-19.7-7-32a29 29 0 0 1 12-18c12.6-8.3 31.3-9.9 46-11.8q7.6-1 14-5.2c2.6-3.6 2.2-7.4 1.5-11.7-.8-3.5-2.2-5.6-4.5-8.3a43 43 0 0 0-30.4-3.3c-5.7 2-9.4 4-12.6 9.3q-1.7 5-3 10h-19c0-10.2 2.6-19.5 10-27C-26.9 1.3-14.6.1 0 0m18.7 59.8c-7.4 2.8-15.4 3.5-23.2 4.7-9 1.4-18.1 3.2-24.7 10-3 5.2-3.5 9-3 15 1.8 5.4 5 8.3 10 11 9.8 3.3 22 1.2 31-3A26 26 0 0 0 22 81.8c1.2-4.9 1.1-9.5 1-14.5v-9c-1.5 0-1.5 0-4.2 1.4" transform="translate(2023.2 698.6)"/><path fill="url(#a)" d="M0 0h3.6a47 47 0 0 1 31.2 9.4A33 33 0 0 1 42 32v2.2l.3 25.8.2 13.7.3 26.7h10v16a29 29 0 0 1-12.4 2.4l-3.9.1c-4.3-.5-6.4-1.7-9.7-4.5q-2.8-4.6-4-10L21 106a51 51 0 0 1-35.9 12.7h-2.8a39 39 0 0 1-27.5-9.3c-7.5-10.2-8-19.7-7-32a29 29 0 0 1 12-18c12.6-8.3 31.3-9.9 46-11.8q7.6-1 14-5.2c2.6-3.6 2.2-7.4 1.5-11.7-.8-3.5-2.2-5.6-4.5-8.3a43 43 0 0 0-30.4-3.3c-5.7 2-9.4 4-12.6 9.3q-1.7 5-3 10h-19c0-10.2 2.6-19.5 10-27C-26.9 1.3-14.6.1 0 0m18.7 59.8c-7.4 2.8-15.4 3.5-23.2 4.7-9 1.4-18.1 3.2-24.7 10-3 5.2-3.5 9-3 15 1.8 5.4 5 8.3 10 11 9.8 3.3 22 1.2 31-3A26 26 0 0 0 22 81.8c1.2-4.9 1.1-9.5 1-14.5v-9c-1.5 0-1.5 0-4.2 1.4" transform="translate(565.2 698.6)"/><path fill="url(#a)" d="M0 0h3c13.2.3 21.7 4.1 31.3 12.8C48.6 28.7 50.7 44 50.7 65.4h-83c3 17.2 3 17.2 13.8 29.4a41 41 0 0 0 28.2 5.6 26 26 0 0 0 15.5-9.5c2.1-3.4 2.1-3.4 4.5-11.5h20c-2.8 13.1-7.3 23.7-18.3 31.7a52 52 0 0 1-30.8 7.7h-3c-12.4 0-24.3-4-33.6-12.4-15-16.3-17.1-36.8-16.5-57.9.8-14.5 8.1-27 18.5-36.9A50 50 0 0 1 0 0m-25.3 28.4a43 43 0 0 0-7 20h63a37 37 0 0 0-10.8-24 32.3 32.3 0 0 0-45.2 4" transform="translate(3063.3 698.6)"/><path fill="url(#a)" d="M0 0h3c13.2.3 21.7 4.1 31.3 12.8C48.6 28.7 50.7 44 50.7 65.4h-83c3 17.2 3 17.2 13.8 29.4a41 41 0 0 0 28.2 5.6 26 26 0 0 0 15.5-9.5c2.1-3.4 2.1-3.4 4.5-11.5h20c-2.8 13.1-7.3 23.7-18.3 31.7a52 52 0 0 1-30.8 7.7h-3c-12.4 0-24.3-4-33.6-12.4-15-16.3-17.1-36.8-16.5-57.9.8-14.5 8.1-27 18.5-36.9A50 50 0 0 1 0 0m-25.3 28.4a43 43 0 0 0-7 20h63a37 37 0 0 0-10.8-24 32.3 32.3 0 0 0-45.2 4" transform="translate(2682.3 698.6)"/><path fill="url(#a)" d="M0 0h3c13.2.3 21.7 4.1 31.3 12.8C48.6 28.7 50.7 44 50.7 65.4h-83c3 17.2 3 17.2 13.8 29.4a41 41 0 0 0 28.2 5.6 26 26 0 0 0 15.5-9.5c2.1-3.4 2.1-3.4 4.5-11.5h20c-2.8 13.1-7.3 23.7-18.3 31.7a52 52 0 0 1-30.8 7.7h-3c-12.4 0-24.3-4-33.6-12.4-15-16.3-17.1-36.8-16.5-57.9.8-14.5 8.1-27 18.5-36.9A50 50 0 0 1 0 0m-25.3 28.4a43 43 0 0 0-7 20h63a37 37 0 0 0-10.8-24 32.3 32.3 0 0 0-45.2 4" transform="translate(1897.3 698.6)"/><path fill="url(#a)" d="M0 0h3c13.2.3 21.7 4.1 31.3 12.8C48.6 28.7 50.7 44 50.7 65.4h-83c3 17.2 3 17.2 13.8 29.4a41 41 0 0 0 28.2 5.6 26 26 0 0 0 15.5-9.5c2.1-3.4 2.1-3.4 4.5-11.5h20c-2.8 13.1-7.3 23.7-18.3 31.7a52 52 0 0 1-30.8 7.7h-3c-12.4 0-24.3-4-33.6-12.4-15-16.3-17.1-36.8-16.5-57.9.8-14.5 8.1-27 18.5-36.9A50 50 0 0 1 0 0m-25.3 28.4a43 43 0 0 0-7 20h63a37 37 0 0 0-10.8-24 32.3 32.3 0 0 0-45.2 4" transform="translate(976.3 698.6)"/><path fill="url(#a)" d="M0 0h3c13.2.3 21.7 4.1 31.3 12.8C48.6 28.7 50.7 44 50.7 65.4h-83c3 17.2 3 17.2 13.8 29.4a41 41 0 0 0 28.2 5.6 26 26 0 0 0 15.5-9.5c2.1-3.4 2.1-3.4 4.5-11.5h20c-2.8 13.1-7.3 23.7-18.3 31.7a52 52 0 0 1-30.8 7.7h-3c-12.4 0-24.3-4-33.6-12.4-15-16.3-17.1-36.8-16.5-57.9.8-14.5 8.1-27 18.5-36.9A50 50 0 0 1 0 0m-25.3 28.4a43 43 0 0 0-7 20h63a37 37 0 0 0-10.8-24 32.3 32.3 0 0 0-45.2 4" transform="translate(439.3 698.6)"/><path fill="url(#a)" d="M0 0h3.3C15.7 0 28 2.4 37 11.5c6.6 8 7.8 14.8 9 25H26l-3-9A27 27 0 0 0 2 18c-8-.1-14.8.5-21.7 5-2.3 3.6-2.9 7-2.5 11.3 3.6 6.8 10.1 8.6 17 11q9 2.4 18.1 4.4c12.1 2.8 25.6 6.2 33.4 16.6 5.1 8.4 5 18.7 2.8 28.1a35 35 0 0 1-19.3 20c-9 3.6-17.4 4.1-27 4.2H-.8A50 50 0 0 1-36 107.3a40 40 0 0 1-10-27.8h20l2 9c3 6.3 7.8 8.5 14 11a51 51 0 0 0 32-1.7c3.5-2.1 5.2-4.7 7-8.3.4-5.3-.2-8.4-3-13-7.9-5.8-18-7.8-27.5-10-30.7-7.2-30.7-7.2-39.5-20a27 27 0 0 1-2.3-13.2V31A27 27 0 0 1-39 15.5l1.7-2.7C-26.7 2.2-14.4.2 0 0" transform="translate(1478 698.6)"/><path fill="url(#a)" d="M0 0h3.3C15.7 0 28 2.4 37 11.5c6.6 8 7.8 14.8 9 25H26l-3-9A27 27 0 0 0 2 18c-8-.1-14.8.5-21.7 5-2.3 3.6-2.9 7-2.5 11.3 3.6 6.8 10.1 8.6 17 11q9 2.4 18.1 4.4c12.1 2.8 25.6 6.2 33.4 16.6 5.1 8.4 5 18.7 2.8 28.1a35 35 0 0 1-19.3 20c-9 3.6-17.4 4.1-27 4.2H-.8A50 50 0 0 1-36 107.3a40 40 0 0 1-10-27.8h20l2 9c3 6.3 7.8 8.5 14 11a51 51 0 0 0 32-1.7c3.5-2.1 5.2-4.7 7-8.3.4-5.3-.2-8.4-3-13-7.9-5.8-18-7.8-27.5-10-30.7-7.2-30.7-7.2-39.5-20a27 27 0 0 1-2.3-13.2V31A27 27 0 0 1-39 15.5l1.7-2.7C-26.7 2.2-14.4.2 0 0" transform="translate(1094 698.6)"/><path fill="url(#a)" d="M0 0h19v7.3l.6 65.4v2.2c0 5.8 1.2 11.4 5 16.1l1.8 1.4 1.7 1.4C34.6 98 41.5 97.7 49 97c7.6-1.8 14-5.6 18.5-12.2 6-10.9 5.8-23 6-35.2l.1-15.6.1-11.5L74 0h19v
6434112H75l-1-14-3.7 4.6a36 36 0 0 1-32 12.7h-2.8c-9.8 0-17.9-1.9-25.5-8.2A38 38 0 0 1-.2 78V46L0 30.5z" transform="translate(1174 702)"/><path fill="url(#a)" d="M0 0c8.6 6 13 13.2 15.4 23.3 1.3 7.7 1 15.5.9 23.2v20.3l-.2 15L16 111H-3v-7l-.6-54.8c.3-16 .3-16-6.4-30.2-7.3-5.6-14-5.7-23-5a29 29 0 0 0-20.7 15.2c-4 8.7-3.6 17.7-3.7 27.1l-.2 17.2-.1 12.7-.3 24.8h-19V-1h18l1 13 2.3-3A47.5 47.5 0 0 1 0 0" transform="translate(2838 703)"/><path fill="url(#a)" d="M0 0c8.6 6 13 13.2 15.4 23.3 1.3 7.7 1 15.5.9 23.2v20.3l-.2 15L16 111H-3v-7l-.6-54.8c.3-16 .3-16-6.4-30.2-7.3-5.6-14-5.7-23-5a29 29 0 0 0-20.7 15.2c-4 8.7-3.6 17.7-3.7 27.1l-.2 17.2-.1 12.7-.3 24.8h-19V-1h18l1 13 2.3-3A47.5 47.5 0 0 1 0 0" transform="translate(2179 703)"/><path fill="url(#a)" d="M0 0h3a50 50 0 0 1 34.2 12c7.3 7.9 10.4 17 11.7 27.4H28L26.3 35c-2.8-7-6-11.7-12.9-14.9a39 39 0 0 0-28.2 1.3c-8 4-12.2 11.5-15 19.8a63 63 0 0 0 2 43.2A31 31 0 0 0-10.5 100 39 39 0 0 0 17 96.4c7.6-5.9 9.7-12.9 12-22h20a52 52 0 0 1-15.8 34.4c-13.7 10.6-29.7 10.8-46.2 9.6-4.4-.7-8-2-12-4l-2.6-1.3a50 50 0 0 1-23.8-30.2C-56 63.5-55 40.4-44.7 23A51 51 0 0 1-24.1 4.4l2.5-1.2C-14.6.2-7.6 0 0 0" transform="translate(2938 698.6)"/><path fill="url(#a)" d="M0 0h3a50 50 0 0 1 34.2 12c7.3 7.9 10.4 17 11.7 27.4H28L26.3 35c-2.8-7-6-11.7-12.9-14.9a39 39 0 0 0-28.2 1.3c-8 4-12.2 11.5-15 19.8a63 63 0 0 0 2 43.2A31 31 0 0 0-10.5 100 39 39 0 0 0 17 96.4c7.6-5.9 9.7-12.9 12-22h20a52 52 0 0 1-15.8 34.4c-13.7 10.6-29.7 10.8-46.2 9.6-4.4-.7-8-2-12-4l-2.6-1.3a50 50 0 0 1-23.8-30.2C-56 63.5-55 40.4-44.7 23A51 51 0 0 1-24.1 4.4l2.5-1.2C-14.6.2-7.6 0 0 0" transform="translate(2499 698.6)"/><path fill="url(#a)" d="M0 0h19v34h22v17H19l.8 66v3.9c0 3.1 0 3.1 1.2 6.1a13 13 0 0 0 6.1 1.3l2.5.1 2.5.2 8.9.4v17l-13 .2h-3.7A36 36 0 0 1 6 143a20 20 0 0 1-6.2-15.8V94.6L0 80V51h-20V34H0z" transform="translate(1369 668)"/><path fill="url(#a)" d="M0 0h19v155H0z" transform="translate(1794 659)"/><path fill="url(#a)" d="M0 0h19v155H0z" transform="translate(1305 659)"/><path fill="url(#a)" d="M0 0h19v155H0z" transform="translate(646 659)"/><path fill="url(#a)" d="M0 0h19v112H0z" transform="translate(2579 702)"/><path fill="url(#a)" d="M0 0a47 47 0 0 1 17.4 32c1.1 14.3-3 26.4-12.1 37.2a48 48 0 0 1-69.6.3 49 49 0 0 1-12.5-34.6A51 51 0 0 1-59.6 0 49 49 0 0 1 0 0m-60.3 10.7A44 44 0 0 0-69.6 44c2.5 11 8.8 20.7 18 27a44 44 0 0 0 32 5.3A43 43 0 0 0 6 56.3a41 41 0 0 0 3-32A44 44 0 0 0-16.2-1c-15.8-6-32.6-.3-44 11.7" transform="translate(3146.6 79)"/><path fill="url(#a)" d="m0 0 13-.2h4.1c7.3-.1 13-.1 18.8 4.8q3.1 6.5 1.6 13.5c-2 4.6-2 4.6-4.5 5.9l1.4 1.5c2.2 3.5 2.7 7 3.3 11L38 39q.8 4.5.9 9.1h-8c-2.4-2.4-2-8.3-2.3-11.6-.8-4.3-.8-4.3-3.7-7.4q-4.3-.8-8.7-.7L8 28v20H0zm8 7v14l10.5.4c4.3.1 6 0 9.5-2.7 2.3-2.6 2.3-2.6 2-5.8-1.2-3.4-1.8-4.2-5-5.9q-4.4-.5-8.7-.2h-2.5z" transform="translate(3099 88)"/><path fill="url(#a)" d="M0 0h19v23H0z" transform="translate(2579 659)"/></svg> 6435 </div> 6436 6437 <!-- MAIN ROW --> 6438 <div class="custom-footer__main"> 6439 6440 <!-- LEFT: MENUS (ORIGINAL OUTPUT) --> 6441 <!-- LEFT: MENUS (UPDATED WITH ACCORDION) --> 6442 <div class="custom-footer__menus"> 6443 6444 </div> 6445 6446 <!-- RIGHT: NEWSLETTER + SOCIAL (ORIGINAL MARKUP) --> 6447 <div class="custom-footer__right"> 6448 6449 6450 6451 6452 6453 </div> 6454 6455 </div> 6456 </div> 6457 6458 6459 6460</footer> 6461<style type="text/css"> 6462 6463.collection-seo-content h5 {margin: 0; padding: 0;} 6464.collection-seo-content p { margin: 10px 0;} 6465 6466 6467.custom-footer__logo { 6468 width: 100%; 6469 max-width: 100%; 6470 margin: 0; 6471 padding: 0; 6472} 6473.custom-footer__logo svg { 6474 display: block; 6475 width: 100%; 6476 height: auto; 6477} 6478 6479.newsletter-form__field-wrapper label svg { 6480 color: #fff; 6481 top: 5px; 6482 position: relative; 6483} 6484</style> 6485
6486<script> 6487 document.addEventListener("DOMContentLoaded", function() { 6488 function handleFooterAccordion() { 6489 const details = document.querySelectorAll(".footer-block details"); 6490 6491 if (window.innerWidth >= 750) { 6492 details.forEach(el => el.setAttribute("open", true)); 6493 } else { 6494 details.forEach(el => el.removeAttribute("open")); 6495 } 6496 } 6497 6498 handleFooterAccordion(); 6499 window.addEventListener("resize", handleFooterAccordion); 6500 }); 6501</script>
6501 6502 6503
6504<script> 6505/* PERF: the footer logo carries two SVG <animate repeatCount="indefinite"> gradient cycles. 6506 SMIL keeps repainting even when the element is scrolled far off screen, and the footer is 6507 off screen for almost the whole visit. Pause the SVG's animation timeline while it is not 6508 visible, and honour prefers-reduced-motion. No visual change when it IS on screen. */ 6509(function () { 6510 var svg = document.querySelector('.quillorria-footer svg[aria-label="Soulflower logo"]') 6511 || document.querySelector('footer svg[aria-label="Soulflower logo"]'); 6512 if (!svg || typeof svg.pauseAnimations !== 'function') return; 6513 if (window.matchMedia('(prefers-reduced-motion: reduce)').matches) { svg.pauseAnimations(); return; } 6514 svg.pauseAnimations(); 6515 if (!('IntersectionObserver' in window)) { svg.unpauseAnimations(); return; } 6516 new IntersectionObserver(function (entries) { 6517 entries.forEach(function (e) { e.isIntersecting ? svg.unpauseAnimations() : svg.pauseAnimations(); }); 6518 }, { rootMargin: '100px' }).observe(svg); 6519})(); 6520</script>
6520 6521 6522<style> 6523.social-media-bar { 6524 display: flex; 6525 align-items: center; 6526 justify-content: center; 6527 gap: 14px; 6528 flex-wrap: wrap; 6529 width: 100%; 6530} 6531 6532/* Base Icon */ 6533.social-icon { 6534 width: 42px; 6535 height: 42px; 6536 display: flex; 6537 align-items: center; 6538 justify-content: center; 6539 border-radius: 50%; 6540 text-decoration: none; 6541 color: #ffffff; 6542 flex-shrink: 0; 6543 transition: all 0.3s ease; 6544} 6545 6546.social-icon svg { 6547 width: 30px; 6548 height: 30px; 6549} 6550 6551 6552/* Hover */ 6553.social-icon:hover { 6554 transform: translateY(-4px); 6555 opacity: 0.9; 6556} 6557 6558/* Tablet */ 6559@media (max-width: 768px) { 6560 .social-media-bar { 6561 gap: 12px; 6562 justify-content: center; 6563 } 6564 6565 .social-icon { 6566 width: 38px; 6567 height: 38px; 6568 } 6569 6570 .social-icon svg { 6571 width: 18px; 6572 height: 18px; 6573 } 6574} 6575 6576/* Mobile */ 6577@media (max-width: 480px) { 6578 .social-media-bar { 6579 gap: 10px; 6580 justify-content: center; 6581 } 6582 6583 .social-icon { 6584 width: 34px; 6585 height: 34px; 6586 } 6587 6588 .social-icon svg { 6589 width: 16px; 6590 height: 16px; 6591 } 6592} 6593 6594/* Extra Small Devices */ 6595@media (max-width: 360px) { 6596 .social-media-bar { 6597 gap: 8px; 6598 } 6599 6600 .social-icon { 6601 width: 30px; 6602 height: 30px; 6603 } 6604 6605 .social-icon svg { 6606 width: 14px; 6607 height: 14px; 6608 } 6609} 6610</style> 6611<style data-shopify> 6612/* Desktop */ 6613@media screen and (min-width: 750px) { 6614 .footer-block details { 6615 display: block; 6616 } 6617 6618 .footer-block details summary { 6619 list-style: none; 6620 cursor: default; 6621 pointer-events: none; 6622 } 6623 6624 .footer-block details summary::-webkit-details-marker { 6625 display: none; 6626 } 6627 6628 .footer-block details .footer-block__heading { 6629 pointer-events: auto; 6630 } 6631 6632 .footer-block details .footer-block__details-content { 6633 display: block !important; 6634 } 6635 6636 .footer-block .caret { 6637 display: none; 6638 } 6639} 6640 6641/* Mobile */ 6642@media screen and (max-width: 749px) { 6643 .footer-block details summary { 6644 display: flex; 6645 justify-content: space-between; 6646 align-items: center; 6647 cursor: pointer; 6648 list-style: none; 6649 } 6650 6651 .footer-block details summary::-webkit-details-marker { 6652 display: none; 6653 } 6654 6655 .footer-block__details-content { 6656 padding-top: 10px; 6657 } 6658 6659 .footer-block .caret { 6660 transition: transform 0.3s ease; 6661 } 6662 6663 .footer-block details[open] .caret { 6664 transform: rotate(180deg); 6665 } 6666} 6667</style> 6668</div><section id="shopify-section-sections--34514167365885__custom_liquid_eTL3re" class="shopify-section shopify-section-group-footer-group section"> 6669<style data-shopify>.section-sections--34514167365885__custom_liquid_eTL3re-padding { 6670 padding-top: calc(0px * 0.75); 6671 padding-bottom: calc(0px * 0.75); 6672 } 6673 6674 @media screen and (min-width: 750px) { 6675 .section-sections--34514167365885__custom_liquid_eTL3re-padding { 6676 padding-top: 0px; 6677 padding-bottom: 0px; 6678 } 6679 }</style><div class="color-scheme-1 gradient"> 6680 <div class="section-sections--34514167365885__custom_liquid_eTL3re-padding"> 6681 <footer class="quillorria-footer"> 6682 <div class="quillorria-footer__glow quillorria-footer__glow--one"></div> 6683 <div class="quillorria-footer__glow quillorria-footer__glow--two"></div> 6684 6685 <div class="quillorria-footer__inner page-width"> 6686 <div class="quillorria-footer__brand"> 6687 <div class="quillorria-footer__header"> 6688 <h2 class="quillorria-footer__main-heading">Sign up for cute emails</h2> 6689 <p class="quillorria-footer__sub-heading">Natural rituals for modern life</p> 6690 </div> 6691 6692 <form method="post" action="/contact#FooterNewsletterForm" id="FooterNewsletterForm" accept-charset="UTF-8" class="quillorria-footer__newsletter"><input type="hidden" name="form_type" value="customer" /><input type="hidden" name="utf8" value="â" /> 6693 <input type="hidden" name="contact[tags]" value="newsletter"> 6694 <div class="quillorria-footer__newsletter-wrap"> 6695 <input 6696 type="email" 6697 name="contact[email]" 6698 class="quillorria-footer__input" 6699 value="" 6700 placeholder="Enter your email" 6701 autocorrect="off" 6702 autocapitalize="off" 6703 autocomplete="email" 6704 required 6705 > 6706 <button type="submit" class="quillorria-footer__button" aria-label="Subscribe"> 6707 <svg viewBox="0 0 24 24" fill="none"> 6708 <path d="M5 12H19" stroke="currentColor" stroke-width="2" stroke-linecap="round"/> 6709 <path d="M13 6L19 12L13 18" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 6710 </svg> 6711 </button> 6712 </div> 6713 6714 </form> 6715 6716 <div class="quillorria-footer__socials social-media-bar"> 6717 <a href="https://facebook.com/besoulflowerindia" class="social-icon" target="_blank" rel="noopener noreferrer" aria-label="Facebook"> 6718 <svg viewBox="0 0 24 24" fill="currentColor"><path d="M22 12a10 10 0 1 0-11.56 9.88v-6.99H7.9V12h2.54V9.8c0-2.5 1.49-3.89 3.77-3.89 1.09 0 2.23.19 2.23.19v2.46h-1.26c-1.24 0-1.63.77-1.63 1.56V12h2.77l-.44 2.89h-2.33v6.99A10 10 0 0 0 22 12z"/></svg> 6719 </a> 6720 <a href="https://instagram.com/soulflowerindia" class="social-icon" target="_blank" rel="noopener noreferrer" aria-label="Instagram"> 6721 <svg viewBox="0 0 24 24" fill="currentColor"><path d="M7.75 2h8.5A5.75 5.75 0 0 1 22 7.75v8.5A5.75 5.75 0 0 1 16.25 22h-8.5A5.75 5.75 0 0 1 2 16.25v-8.5A5.75 5.75 0 0 1 7.75 2zm0 1.5A4.25 4.25 0 0 0 3.5 7.75v8.5A4.25 4.25 0 0 0 7.75 20.5h8.5a4.25 4.25 0 0 0 4.25-4.25v-8.5A4.25 4.25 0 0 0 16.25 3.5h-8.5zM12 7a5 5 0 1 1 0 10 5 5 0 0 1 0-10zm0 1.5A3.5 3.5 0 1 0 12 15.5 3.5 3.5 0 0 0 12 8.5zm5.25-2a1.25 1.25 0 1 1 0 2.5 1.25 1.25 0 0 1 0-2.5z"/></svg> 6722 </a> 6723 <a href="https://linkedin.com/company/soulflowerindia" class="social-icon" target="_blank" rel="noopener noreferrer" aria-label="LinkedIn"> 6724 <svg viewBox="0 0 24 24" fill="currentColor"><path d="M6.94 8.5A1.56 1.56 0 1 1 6.94 5.4a1.56 1.56 0 0 1 0 3.1zM5.5 9.75h2.88V18H5.5V9.75zM10.25 9.75H13v1.13h.04c.38-.72 1.3-1.48 2.67-1.48 2.85 0 3.38 1.87 3.38 4.3V18h-2.88v-3.8c0-.91-.02-2.08-1.27-2.08-1.27 0-1.47.99-1.47 2.01V18h-2.88V9.75z"/></svg> 6725 </a> 6726 <a href="https://www.youtube.com/@besoulflower" class="social-icon" target="_blank" rel="noopener noreferrer" aria-label="YouTube"> 6727 <svg viewBox="0 0 24 24" fill="currentColor"><path d="M23.5 6.2a3 3 0 0 0-2.1-2.12C19.52 3.5 12 3.5 12 3.5s-7.52 0-9.4.58A3 3 0 0 0 .5 6.2 31.3 31.3 0 0 0 0 12a31.3 31.3 0 0 0 .5 5.8 3 3 0 0 0 2.1 2.12c1.88.58 9.4.58 9.4.58s7.52 0 9.4-.58a3 3 0 0 0 2.1-2.12A31.3 31.3 0 0 0 24 12a31.3 31.3 0 0 0-.5-5.8zM9.75 15.5v-7l6 3.5-6 3.5z"/></svg> 6728 </a> 6729 </div> 6730 </div> 6731 6732 <div class="quillorria-footer__menus desktop-only">
6733 <div class="quillorria-footer__column"> 6734 <h3 class="quillorria-footer__title">Shop</h3> 6735 <ul> 6736 <li><a href="/collections/essential-oils">Essential Oils</a></li> 6737 <li><a href="/collections/serums">Serums</a></li> 6738 <li><a href="/collections/soaps">Soaps</a></li> 6739 <li><a href="/collections/shampoos">Shampoos</a></li> 6740 <li><a href="/collections/massage-oils">Massage Oils</a></li> 6741 <li><a href="/collections/bath-salts">Bath Salts</a></li> 6742 6743<li><a href="https://www.soulflower.in/pages/corporate-gifts">Bulk Order / Corporate Gifting</a></li> 6744<li><a href="https://www.soulflower.in/pages/fillbottle">Return and Recycle</a></li> 6745 <li><a href="/collections/hair-oils">Hair Growth Oils</a></li> 6746 </ul> 6747 </div> 6748 <div class="quillorria-footer__column"> 6749 <h3 class="quillorria-footer__title">Learn</h3> 6750 <ul> 6751 <li><a href="/pages/about-us">About Us</a></li> 6752 <li><a href="/pages/farm-to-face-philosophy">Our Philosophy</a></li> 6753 <li><a href="/blogs/soulblog">Blog</a></li> 6754 <li><a href="https://af.uppromote.com/soulflower/register">Ambassador Program</a></li> 6755 <li><a href="/pages/faqs">FAQs</a></li> 6756 <li><a href="/pages/our-partners">Our Partners</a></li> 6757 <li><a href="/pages/aromatisation">Aromatisation</a></li> 6758 <li><a href="/apps/birthday">Birthday Club</a></li> 6759 <li><a href="/pages/career">Career</a></li> 6760 </ul> 6761 </div> 6762 <div class="quillorria-footer__column"> 6763 <h3 class="quillorria-footer__title">Policies</h3> 6764 <ul> 6765 <li><a href="/policies/shipping-policy">Shipping Policy</a></li> 6766 <li><a href="/policies/refund-policy">Refunds & Cancellations</a></li> 6767 <li><a href="/policies/terms-of-service">Terms of Services</a></li> 6768 <li><a href="/policies/privacy-policy">Privacy Policy</a></li> 6769 </ul> 6770 <div class="quillorria-footer__contact-block"> 6771 <h4 class="quillorria-footer__title">Contact</h4> 6772 <ul class="quillorria-footer__contact"> 6773 <li><a href="mailto:[email protected]"><strong>Email:</strong> [email protected]</a></li> 6774 <li><a href="tel:8080356666"><strong>Phone:</strong> 8080356666</a></li> 6775 <li><a href="#"><strong>Hours:</strong> Mon - Sat (11am - 6pm)</a></li> 6776<li><a href="https://maps.app.goo.gl/cbN2tDAjuos2W1QY6" target="_blank" rel="noopener noreferrer"><strong>Address:</strong> P T INVENT INDIA PVT Ltd 6777Compartment No 56, Plot No 10/12, 6778Marol cooperative Industrial Estate, Marol, Andheri East, Mumbai 400059</a></li> 6779 </ul> 6780 </div> 6781 </div> 6782 </div> 6783 6784 <div class="mobile-only quillorria-footer-mobile"> 6785 <div class="footer-mobile-dropdown"> 6786 <button class="footer-mobile-trigger" type="button" aria-expanded="false"> 6787 <span>Shop</span> 6788 <span class="footer-mobile-icon">+</span> 6789 </button> 6790 <div class="footer-mobile-dropdown-menu"> 6791 <ul> 6792 <li><a href="/collections/essential-oils">Essential Oils</a></li> 6793 <li><a href="/collections/serums">Serums</a></li> 6794 <li><a href="/collections/soaps">Soaps</a></li> 6795 <li><a href="/collections/shampoos">Shampoos</a></li> 6796 <li><a href="/collections/massage-oils">Massage Oils</a></li> 6797 <li><a href="/collections/bath-salts">Bath Salts</a></li> 6798 6799<li><a href="https://www.soulflower.in/pages/corporate-gifts">Bulk Order / Corporate Gifting</a></li> 6800<li><a href="https://www.soulflower.in/pages/fillbottle">Return and Recycle</a></li> 6801 <li><a href="/collections/hair-oils">Hair Growth Oils</a></li> 6802 </ul> 6803 </div> 6804 </div> 6805 6806 <div class="footer-mobile-dropdown"> 6807 <button class="footer-mobile-trigger" type="button" aria-expanded="false"> 6808 <span>Learn</span> 6809 <span class="footer-mobile-icon">+</span> 6810 </button> 6811 <div class="footer-mobile-dropdown-menu"> 6812 <ul> 6813 <li><a href="/pages/about-us">About Us</a></li> 6814 <li><a href="/pages/farm-to-face-philosophy">Our Philosophy</a></li> 6815 <li><a href="/blogs/soulblog">Blog</a></li> 6816 <li><a href="https://af.uppromote.com/soulflower/register">
6816Ambassador Program</a></li> 6817 <li><a href="/pages/faqs">FAQs</a></li> 6818 <li><a href="/pages/our-partners">Our Partners</a></li> 6819 <li><a href="/pages/aromatisation">Aromatisation</a></li> 6820 <li><a href="/apps/birthday">Birthday Club</a></li> 6821 <li><a href="/pages/career">Career</a></li> 6822 </ul> 6823 </div> 6824 </div> 6825 6826 <div class="footer-mobile-dropdown"> 6827 <button class="footer-mobile-trigger" type="button" aria-expanded="false"> 6828 <span>Policies</span> 6829 <span class="footer-mobile-icon">+</span> 6830 </button> 6831 <div class="footer-mobile-dropdown-menu"> 6832 <ul> 6833 <li><a href="/policies/shipping-policy">Shipping Policy</a></li> 6834 <li><a href="/policies/refund-policy">Refunds & Cancellations</a></li> 6835 <li><a href="/policies/terms-of-service">Terms of Services</a></li> 6836 <li><a href="/policies/privacy-policy">Privacy Policy</a></li> 6837 </ul> 6838 </div> 6839 </div> 6840<div class="quillorria-footer__contact-block"> 6841 <h4 class="quillorria-footer__title contact">Contact</h4> 6842 <p class="quillorria-footer__contact mobile-dropdown-menu"> 6843 <a href="mailto:[email protected]"><strong>Email:</strong> [email protected]</a> 6844 <a href="tel:8080356666"><strong>Phone:</strong> 8080356666</a> 6845 <a href="#"><strong>Hours:</strong> Mon - Sat (11am - 6pm)</a> 6846 <a href="https://maps.app.goo.gl/cbN2tDAjuos2W1QY6" target="_blank" rel="noopener noreferrer"><strong>Address:</strong> P T INVENT INDIA PVT Ltd 6847Compartment No 56, Plot No 10/12, 6848Marol cooperative Industrial Estate, Marol, Andheri East, Mumbai 400059</a> 6849 </p> 6850 </div> 6851 </div> 6852 </div> 6853 6854 <div class="quillorria-footer__bottom"> 6855 <div class="page-width">© 2026, <span>SOULFLOWER.</span> All rights reserved</div> 6856 </div> 6857</footer> 6858 6859<style> 6860@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&display=swap'); 6861 6862.quillorria-footer, 6863.quillorria-footer * { 6864 font-family: 'Space Grotesk', sans-serif; 6865 box-sizing: border-box; 6866} 6867.quillorria-footer { 6868 width: 100%; 6869} 6870 6871.quillorria-footer .page-width, 6872.quillorria-footer__inner, 6873.quillorria-footer__bottom .page-width { 6874 width: 92%; 6875 max-width: 100%; 6876} 6877.quillorria-footer__contact a { 6878 display: block; 6879 color: rgba(255,255,255,0.72); 6880 text-decoration: none; 6881 transition: color 0.3s ease, transform 0.3s ease; 6882} 6883 6884.quillorria-footer__contact a:hover { 6885 color: rgba(255,255,255,0.72); 6886 text-decoration: underline; 6887 transform: translateX(4px); 6888} 6889 6890.quillorria-footer__contact a strong { 6891 color: #ffffff; 6892} 6893.quillorria-footer { 6894 position: relative; 6895 overflow: hidden; 6896 background: #242833; 6897 color: #fff; 6898 padding: 80px 0 0; 6899} 6900 6901.quillorria-footer__glow { 6902 position: absolute; 6903 border-radius: 999px; 6904 filter: blur(70px); 6905 pointer-events: none; 6906 opacity: .18; 6907} 6908 6909.quillorria-footer__glow--one { 6910 width: 220px; height: 220px; 6911 background: #f6f2dc; 6912 top: -40px; left: -60px; 6913} 6914 6915.quillorria-footer__glow--two { 6916 width: 260px; height: 260px; 6917 background: #d9d2a8; 6918 right: -80px; bottom: 120px; 6919} 6920 6921.quillorria-footer__inner { 6922 position: relative; 6923; 6924 display: grid; 6925 grid-template-columns: minmax(340px, 1fr) 2fr; 6926 gap: 70px; 6927 max-width: 1200px; 6928 margin: 0 auto; 6929 padding: 0 20px; 6930} 6931 6932.quillorria-footer__title { 6933 font-size: 18px; 6934 font-weight: 700; 6935 margin-bottom: 20px; 6936 color: #fff; 6937} 6938 6939.quillorria-footer__column ul { 6940 list-style: none; 6941 padding: 0; 6942 margin: 0; 6943} 6944 6945 6946.quillorria-footer__column a { 6947 color: rgba(255,255,255,0.7); 6948 text-decoration: underline; 6949 font-size: 14px; 6950 transition: color 0.3s; 6951} 6952 6953 6954 6955.quillorria-footer__column a:hover { 6956 color: #fff; 6957} 6958 6959/* Newsletter Styles */ 6960.quillorria-footer__brand { 6961 display: flex; 6962 flex-direction: column; 6963 gap: 20px; 6964} 6965 6966.quillorria-footer__eyebrow { 6967 width: fit-content; 6968 display: inline-flex; 6969 padding: 8px 14px; 6970 border-radius: 999px; 6971 font-size: 11px; 6972 font-weight: 700; 6973 letter-spacing: .18em; 6974 text-transform: uppercase; 6975 color: rgba(255,255,255,.82); 6976 background: rgba(255,255,255,.06); 6977 border: 1px solid rgba(255,255,255,.12); 6978 backdrop-filter: blur(10px); 6979} 6980 6981.quillorria-footer__main-heading { 6982 font-size: 30px; 6983 margin: 0; 6984 font-weight: 800; 6985 letter-spacing: -0.02em; 6986 color: #fff; 6987} 6988 6989.quillorria-footer__sub-heading { 6990 margin: 6px 0 0; 6991 font-size: 14px; 6992 color: rgba(255,255,255,.7); 6993} 6994 6995.quillorria-footer__newsletter { 6996 width: 100%; 6997 max-width: 470px; 6998} 6999 7000.quillorria-footer__newsletter-wrap { 7001 display: flex; 7002 align-items: center; 7003 gap: 10px; 7004 padding: 6px; 7005 border-radius: 999px; 7006 background: rgba(255,255,255,.07); 7007 border: 1px solid rgba(255,255,255,.1); 7008 backdrop-filter: blur(10px); 7009 transition: all .35s ease; 7010} 7011.quillorria-footer__newsletter-wrap:focus-within { 7012 border-color: rgba(255,255,255,.24); 7013 background: rgba(255,255,255,.1); 7014 box-shadow: 0 0 0 4px rgba(255,255,255,.04); 7015} 7016 7017.quillorria-footer__input { 7018 flex: 1; 7019 min-width: 0; 7020 height: 54px; 7021 padding: 0 18px; 7022 border: 0; 7023 background: transparent; 7024 color: #fff; 7025 font-size: 14px; 7026 outline: none; 7027}
7028.quillorria-footer__input:focus-within{ 7029border-radius:9999px; 7030} 7031.quillorria-footer__input::placeholder { 7032 color: rgba(255,255,255,.52); 7033} 7034 7035.quillorria-footer__button { 7036 width: 54px; 7037 height: 54px; 7038 border: 0; 7039 border-radius: 50%; 7040 display: inline-flex; 7041 align-items: center; 7042 justify-content: center; 7043 background: #fff; 7044 color: #2f311f; 7045 cursor: pointer; 7046 flex-shrink: 0; 7047 transition: all .35s ease; 7048} 7049 7050.quillorria-footer__button:hover { 7051 transform: translateY(-2px); 7052 box-shadow: 0 12px 24px rgba(0,0,0,.2); 7053} 7054.quillorria-footer__socials { display: flex; gap: 15px; justify-content:left} 7055.social-icon { 7056 width: 52px; 7057 height: 52px; 7058 display: flex; 7059 align-items: center; 7060 justify-content: center; 7061} 7062 7063.social-icon svg { 7064 width: 30px; 7065 height: 30px; 7066 color: rgba(255,255,255,0.7); 7067 transition: color 0.3s ease, transform 0.3s ease; 7068} 7069 7070.social-icon:hover svg { 7071 color: #fff; 7072 transform: scale(1.08); 7073} 7074.desktop-only { 7075 display: grid; 7076 grid-template-columns: repeat(3, 1fr); 7077 gap: 30px; 7078} 7079 7080.mobile-only { display: none; } 7081 7082.quillorria-footer__bottom { 7083 margin-top: 60px; 7084 padding: 25px 0; 7085 border-top: 1px solid rgba(255,255,255,0.05); 7086 text-align: center; 7087 font-size: 13px; 7088 opacity: 0.6; 7089} 7090 7091/* ==================== MOBILE DROPDOWN STYLES ==================== */ 7092@media screen and (max-width: 767px) { 7093.quillorria-footer__socials { 7094 gap: 14px;
7095margin-top: 1px; 7096justify-content:center; 7097 } 7098.quillorria-footer{ 7099padding:0px; 7100} 7101.quillorria-footer .page-width, 7102.quillorria-footer__inner, 7103.quillorria-footer__bottom .page-width { 7104 width: 100%; 7105 max-width: 100%; 7106} 7107.quillorria-footer__bottom { 7108 margin-top: 30px; 7109} 7110.contact{ 7111 font-size: 16px; 7112 font-weight: 600; 7113} 7114 .social-icon { 7115 width: 46px; 7116 height: 46px; 7117 } 7118.mobile-dropdown-menu{ 7119 color: rgba(255,255,255,0.7); 7120 font-size: 15px; 7121} 7122 .social-icon svg { 7123 width: 32px; 7124 height: 32px; 7125 } 7126 .quillorria-footer__inner { 7127 grid-template-columns: 1fr; 7128 gap: 40px; 7129 } 7130 7131 .desktop-only { display: none !important; } 7132 .mobile-only { display: block !important; } 7133 7134 .footer-mobile-dropdown { 7135 border-bottom: 1px solid rgba(255,255,255,.08); 7136 } 7137 7138 .footer-mobile-trigger { 7139 width: 100%; 7140 background: transparent; 7141 border: 0; 7142 padding: 18px 0; 7143 color: #fff; 7144 font-size: 16px; 7145 font-weight: 600; 7146 display: flex; 7147 align-items: center; 7148 justify-content: space-between; 7149 cursor: pointer; 7150 } 7151 7152 .footer-mobile-icon { 7153 font-size: 28px; 7154 transition: transform 0.3s ease; 7155 } 7156 7157 .footer-mobile-dropdown.active .footer-mobile-icon { 7158 transform: rotate(45deg); 7159 } 7160 7161 .footer-mobile-dropdown-menu { 7162 max-height: 0; 7163 overflow: hidden; 7164 transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); 7165 opacity: 0; 7166 } 7167 7168 .footer-mobile-dropdown.active .footer-mobile-dropdown-menu { 7169 max-height: 1000px; 7170 opacity: 1; 7171 padding-bottom: 20px; 7172 } 7173 7174 .footer-mobile-dropdown-menu ul { 7175 list-style: none; 7176 padding: 0; 7177 margin: 0; 7178 } 7179 7180 .footer-mobile-dropdown-menu li { 7181 padding: 8px 0; 7182 } 7183 7184 .footer-mobile-dropdown-menu a { 7185 color: rgba(255,255,255,0.7); 7186 text-decoration: none; 7187 font-size: 15px; 7188 } 7189} 7190</style> 7191
7192<script> 7193(function() { 7194 const initFooter = () => { 7195 // Event delegation: attach listener to the footer itself 7196 const footer = document.querySelector('.quillorria-footer'); 7197 if (!footer) return; 7198 7199 footer.addEventListener('click', function(e) { 7200 const trigger = e.target.closest('.footer-mobile-trigger'); 7201 if (!trigger) return; 7202 7203 const dropdown = trigger.closest('.footer-mobile-dropdown'); 7204 const isActive = dropdown.classList.contains('active'); 7205 7206 // Optional: Close others 7207 footer.querySelectorAll('.footer-mobile-dropdown').forEach(d => { 7208 d.classList.remove('active'); 7209 d.querySelector('.footer-mobile-trigger').setAttribute('aria-expanded', 'false'); 7210 }); 7211 7212 if (!isActive) { 7213 dropdown.classList.add('active'); 7214 trigger.setAttribute('aria-expanded', 'true'); 7215 } 7216 }); 7217 }; 7218 7219 // Run on load 7220 document.addEventListener('DOMContentLoaded', initFooter); 7221 7222 // Re-run if Shopify Theme Editor reloads the section 7223 document.addEventListener('shopify:section:load', initFooter); 7224})(); 7225</script>
7225 7226 </div> 7227</div> 7228 7229 7230</section> 7231<!-- END sections: footer-group --> 7232 7233 <ul hidden> 7234 <li id="a11y-refresh-page-message">Choosing a selection results in a full page refresh.</li> 7235 <li id="a11y-new-window-message">Opens in a new window.</li> 7236 </ul> 7237 7238
7238<script> 7239 window.shopUrl = 'https://www.soulflower.in'; 7240 window.routes = { 7241 cart_add_url: '/cart/add', 7242 cart_change_url: '/cart/change', 7243 cart_update_url: '/cart/update', 7244 cart_url: '/cart', 7245 predictive_search_url: '/search/suggest', 7246 }; 7247 window.cartStrings = { 7248 error: `There was an error while updating your cart. Please try again.`, 7249 quantityError: `You can only add [quantity] of this item to your cart.`, 7250 }; 7251 window.variantStrings = { 7252 addToCart: `Add to cart`, 7253 soldOut: `Sold out`, 7254 unavailable: `Unavailable`, 7255 unavailable_with_option: `[value] - Unavailable`, 7256 }; 7257 window.quickOrderListStrings = { 7258 itemsAdded: `[quantity] items added`, 7259 itemAdded: `[quantity] item added`, 7260 itemsRemoved: `[quantity] items removed`, 7261 itemRemoved: `[quantity] item removed`, 7262 viewCart: `View cart`, 7263 each: `[money]/ea`, 7264 min_error: `This item has a minimum of [min]`, 7265 max_error: `This item has a maximum of [max]`, 7266 step_error: `You can only add this item in increments of [step]`, 7267 }; 7268 window.accessibilityStrings = { 7269 imageAvailable: `Image [index] is now available in gallery view`, 7270 shareSuccess: `Link copied to clipboard`, 7271 pauseSlideshow: `Pause slideshow`, 7272 playSlideshow: `Play slideshow`, 7273 recipientFormExpanded: `Gift card recipient form expanded`, 7274 recipientFormCollapsed: `Gift card recipient form collapsed`, 7275 countrySelectorSearchCount: `[count] countries/regions found`, 7276 }; 7277 </script>
7277<script src="//www.soulflower.in/cdn/shop/t/140/assets/predictive-search.js?v=57209189334897115771789808776" defer="defer"></script>
7277<script src="//www.soulflower.in/cdn/shop/t/140/assets/swiper-bundle.min.js?v=108059131501615647841789808798" defer></script>
7277 7278 7279
7280<script> 7281 (function () { 7282 var idle = window.requestIdleCallback || function (cb) { return setTimeout(cb, 1); }; 7283 7284 function ready(fn) { 7285 if (document.readyState === 'loading') { 7286 document.addEventListener('DOMContentLoaded', fn); 7287 } else { 7288 fn(); 7289 } 7290 } 7291 7292 ready(function () { 7293 // âââ ESSENTIAL: combo piggyback (must be on submit listener early) âââ 7294 var productForm = document.querySelector('product-form form'); 7295 if (productForm) { 7296 var overriddenVariantId = null; 7297 document.addEventListener('click', function (e) { 7298 var card = e.target.closest('.combo-card'); 7299 if (!card) return; 7300 overriddenVariantId = card.dataset.linkedVariantId || null; 7301 }); 7302 productForm.addEventListener('submit', function () { 7303 var variantInput = productForm.querySelector('input[name="id"]'); 7304 if (variantInput && overriddenVariantId) variantInput.value = overriddenVariantId; 7305 }, true); 7306 document.addEventListener('variant:change', function () { overriddenVariantId = null; }); 7307 } 7308 7309 // âââ ESSENTIAL: mobile sticky ATC âââ 7310 var stickyBtn = document.querySelector('.mobile-sticky-atc__btn'); 7311 var productFormEl = document.querySelector('product-form'); 7312 if (stickyBtn && productFormEl) { 7313 stickyBtn.addEventListener('click', function (e) { 7314 e.preventDefault(); 7315 if (stickyBtn.disabled) return; 7316 stickyBtn.disabled = true; 7317 if (typeof productFormEl.submitForm === 'function') { 7318 productFormEl.submitForm(); 7319 } else { 7320 var f = productFormEl.querySelector('form'); 7321 if (f) f.requestSubmit(); 7322 } 7323 setTimeout(function () { stickyBtn.disabled = false; }, 500); 7324 }); 7325 } 7326 7327 // âââ DEFERRED to idle: footer accordion, mega menu, logo color âââ 7328 // NOTE: updateCartCount removed â CartSync handles header count via updateHeaderCount listener 7329 idle(function () { 7330 // Footer accordion (mobile) 7331 if (window.innerWidth <= 768) { 7332 document.querySelectorAll('.custom-footer__menus .footer-block').forEach(function (block) { 7333 var heading = block.querySelector('.footer-block__heading'); 7334 if (!heading) return; 7335 heading.addEventListener('click', function () { 7336 var isOpen = block.classList.contains('active'); 7337 document.querySelectorAll('.custom-footer__menus .footer-block').forEach(function (b) { 7338 b.classList.remove('active'); 7339 }); 7340 if (!isOpen) block.classList.add('active'); 7341 }); 7342 }); 7343 } 7344 7345 // Mega menu hover (desktop) 7346 if (window.matchMedia('(min-width: 990px)').matches) { 7347 document.querySelectorAll('header details').forEach(function (menu) { 7348 var summary = menu.querySelector('summary'); 7349 var timeout; 7350 menu.addEventListener('mouseenter', function () { 7351 clearTimeout(timeout); 7352 menu.setAttribute('open', true); 7353 }); 7354 menu.addEventListener('mouseleave', function () { 7355 timeout = setTimeout(function () { menu.removeAttribute('open'); }, 200); 7356 }); 7357 if (summary) summary.addEventListener('click', function (e) { e.preventDefault(); }); 7358 }); 7359 } 7360 7361 // Logo color change on scroll 7362 var sections = document.querySelectorAll('[data-color]'); 7363 var logoWrapper = document.querySelector('.header__heading-logo-wrapper'); 7364 if (sections.length && logoWrapper) { 7365 var logoObserver = new IntersectionObserver(function (entries) { 7366 requestAnimationFrame(function () { 7367 entries.forEach(function (entry) { 7368 if (entry.isIntersecting) { 7369 var dataColor = entry.target.getAttribute('data-color'); 7370 if (dataColor) logoWrapper.style.color = dataColor.split('--')[0]; 7371 } 7372 }); 7373 }); 7374 }, { threshold: 0.5 }); 7375 sections.forEach(function (s) { logoObserver.observe(s); }); 7376 } 7377 }); 7378 7379 // âââ Loyalty popup style injection âââ 7380 idle(function () { 7381 var loyaltyHandled = false;
7382 function tryStyleLoyaltyPopup() { 7383 if (loyaltyHandled) return true; 7384 var popup = document.querySelector('[class^="fc-loyalty-popup"]'); 7385 if (!popup || !popup.shadowRoot) return false; 7386 var shadow = popup.shadowRoot; 7387 if (shadow.querySelector('#custom-floating-style')) { 7388 loyaltyHandled = true; 7389 return true; 7390 } 7391 var style = document.createElement('style'); 7392 style.id = 'custom-floating-style'; 7393 style.textContent = '.widget-container .floatingPopupRight{bottom:15px!important;right:15px!important}@media(max-width:767px){.widget-container .floatingPopupRight{bottom:18px!important;right:15px!important}}'; 7394 shadow.appendChild(style); 7395 loyaltyHandled = true; 7396 return true; 7397 } 7398 7399 if (tryStyleLoyaltyPopup()) return; 7400 /* TC-2: throttled. */ 7401 var loyaltyObserver = new MutationObserver(window.__sfRafThrottle(function () { 7402 if (tryStyleLoyaltyPopup()) loyaltyObserver.disconnect(); 7403 })); 7404 loyaltyObserver.observe(document.body, { childList: true, subtree: true }); 7405 setTimeout(function () { loyaltyObserver.disconnect(); }, 30000); 7406 }); 7407 }); 7408 })(); 7409 </script>
7409<script> 7410 (function () { 7411 var idle = window.requestIdleCallback || function (cb) { return setTimeout(cb, 1); }; 7412 7413 // âââ 1. Pre-fetch cart data on page idle âââ 7414 idle(function () { 7415 fetch('/cart.js', { credentials: 'same-origin' }).catch(function () {}); 7416 }); 7417 7418 // âââ 2. Re-warm cart after updates âââ 7419 document.addEventListener('cart:updated', function () { 7420 fetch('/cart.js', { credentials: 'same-origin' }).catch(function () {}); 7421 }); 7422 document.addEventListener('cart:refresh', function () { 7423 fetch('/cart.js', { credentials: 'same-origin' }).catch(function () {}); 7424 }); 7425 7426 // âââ 3. Bootstrap GoKwik SDK on first user activity âââ 7427 var bootstrapTriggered = false; 7428 function triggerGoKwikBootstrap() { 7429 if (bootstrapTriggered) return; 7430 bootstrapTriggered = true; 7431 idle(function () { 7432 try { 7433 if (window.gokwikSdk && typeof window.gokwikSdk.initialize === 'function') { 7434 window.gokwikSdk.initialize(); 7435 } 7436 window.dispatchEvent(new Event('gokwik:prefetch')); 7437 } catch (e) {} 7438 }); 7439 } 7440 ['mousemove', 'touchstart', 'scroll', 'keydown'].forEach(function (evt) { 7441 window.addEventListener(evt, triggerGoKwikBootstrap, { once: true, passive: true }); 7442 }); 7443 setTimeout(triggerGoKwikBootstrap, 3000); 7444 7445 // âââ 4. Hover pre-warm on cart trigger âââ 7446 var hoverPrewarmed = false; 7447 function hoverPrewarm() { 7448 if (hoverPrewarmed) return; 7449 hoverPrewarmed = true; 7450 fetch('/cart.js', { credentials: 'same-origin' }).catch(function () {}); 7451 } 7452 ['mouseenter', 'touchstart', 'focusin'].forEach(function (evt) { 7453 document.addEventListener(evt, function (e) {
7454 if (e.target.closest && e.target.closest('#cart-icon-bubble, .header__icon--cart, [href$="/cart"], [data-cart-trigger]')) { 7455 hoverPrewarm(); 7456 } 7457 }, { capture: true, passive: true }); 7458 }); 7459 })(); 7460 </script>
7460<script> 7461 (function () { 7462 var idle = window.requestIdleCallback || function (cb) { return setTimeout(cb, 1); }; 7463 var swiperRetries = 0; 7464 var MAX_SWIPER_RETRIES = 50; 7465 7466 function initThemeSwipers() { 7467 if (typeof Swiper === 'undefined') { 7468 if (++swiperRetries > MAX_SWIPER_RETRIES) return; 7469 setTimeout(initThemeSwipers, 100); 7470 return; 7471 } 7472 7473 window.themeSwiperSettings = window.themeSwiperSettings || { 7474 loop: false, 7475 slidesPerView: 1, 7476 spaceBetween: 10, 7477 speed: 400, 7478 allowTouchMove: true, 7479 simulateTouch: true, 7480 touchRatio: 4, 7481 touchAngle: 45, 7482 grabCursor: true, 7483 mousewheel: { forceToAxis: true, sensitivity: 1 }, 7484 keyboard: { enabled: true, onlyInViewport: true }, 7485 breakpoints: { 7486 0: { slidesPerView: 1.2 }, 7487 768: { slidesPerView: 2 }, 7488 1024: { slidesPerView: 3 }, 7489 1400: { slidesPerView: 4 } 7490 }, 7491 watchOverflow: true, 7492 observer: true, 7493 observeParents: true, 7494 observeSlideChildren: true, 7495 }; 7496 7497 // Generic swipers â only init when scrolled into view 7498 var genericObserver = new IntersectionObserver(function (entries) { 7499 entries.forEach(function (entry) { 7500 if (!entry.isIntersecting) return; 7501 var swiperEl = entry.target; 7502 if (swiperEl.swiper) { 7503 genericObserver.unobserve(swiperEl); 7504 return; 7505 } 7506 var prev = swiperEl.querySelector('.swiper-button-prev'); 7507 var next = swiperEl.querySelector('.swiper-button-next'); 7508 new Swiper(swiperEl, Object.assign({}, window.themeSwiperSettings, { 7509 navigation: { prevEl: prev, nextEl: next } 7510 })); 7511 genericObserver.unobserve(swiperEl); 7512 }); 7513 }, { rootMargin: '200px' }); 7514 7515 document.querySelectorAll('.swiper:not(.no-global-swiper)').forEach(function (el) { 7516 genericObserver.observe(el); 7517 }); 7518 7519 // Video carousel â only init when scrolled into view 7520 document.querySelectorAll('.video-carousel-section').forEach(function (section) { 7521 var swiperEl = section.querySelector('.video-swiper'); 7522 if (!swiperEl) return; 7523 7524 var initObserver = new IntersectionObserver(function (entries) { 7525 entries.forEach(function (entry) { 7526 if (!entry.isIntersecting || swiperEl.swiper) return; 7527 initObserver.disconnect(); 7528 7529 var leftBtn = section.querySelector('.vid-car-cont .left'); 7530 var rightBtn = section.querySelector('.vid-car-cont .right'); 7531 7532 var currentVideo = null; 7533 var autoplayEnabled = false; 7534 7535 function pauseAllExcept(except) { 7536 swiperEl.querySelectorAll('video').forEach(function (v) { 7537 if (v !== except) v.pause(); 7538 }); 7539 } 7540 7541 function playActiveVideo(swiper) { 7542 if (!autoplayEnabled) return; 7543 var slide = swiper.slides[swiper.activeIndex]; 7544 if (!slide) return; 7545 var video = slide.querySelector('video'); 7546 if (!video || video === currentVideo) return; 7547 pauseAllExcept(video); 7548 currentVideo = video; 7549 video.play().catch(function () {}); 7550 } 7551 7552 var swiper = new Swiper(swiperEl, Object.assign({}, window.themeSwiperSettings, { 7553 breakpoints: undefined, 7554 loop: false, 7555 slidesPerView: 'auto', 7556 spaceBetween: 20, 7557 navigation: { nextEl: rightBtn, prevEl: leftBtn }, 7558 on: { 7559 slideChange: function () { playActiveVideo(this); } 7560 } 7561 })); 7562 7563 new IntersectionObserver(function (entries) { 7564 entries.forEach(function (e) { 7565 autoplayEnabled = e.isIntersecting; 7566 if (autoplayEnabled) { 7567 setTimeout(function () { playActiveVideo(swiper); }, 200); 7568 } else { 7569 pauseAllExcept(null); 7570 } 7571 }); 7572 }, { threshold: 0.6 }).observe(section); 7573 7574 swiperEl.querySelectorAll('video').forEach(function (video) { 7575 video.addEventListener('ended', function () { 7576 if (!swiper.isEnd) swiper.slideNext(); 7577 }); 7578 video.addEventListener('play', function () { 7579 autoplayEnabled = true; 7580 pauseAllExcept(video); 7581 currentVideo = video; 7582 }); 7583 }); 7584 7585 var totalSlidesWidth = Array.from(swiperEl.querySelectorAll('.swiper-slide')) 7586 .reduce(function (sum, slide) { return sum + slide.offsetWidth + 20; }, 0); 7587 if (totalSlidesWidth <= swiperEl.offsetWidth) { 7588 if (leftBtn) leftBtn.style.display = 'none'; 7589 if (rightBtn) rightBtn.style.display = 'none'; 7590 } 7591 }); 7592 }, { rootMargin: '100px' }); 7593
7594 initObserver.observe(section); 7595 }); 7596 } 7597 7598 idle(function () { 7599 if (document.readyState === 'loading') { 7600 document.addEventListener('DOMContentLoaded', initThemeSwipers); 7601 } else { 7602 initThemeSwipers(); 7603 } 7604 }); 7605 })(); 7606 </script>
7606<script type="application/ld+json"> 7607 { 7608 "@context": "https://schema.org", 7609 "@type": "Organization", 7610 "@id": "https://www.soulflower.in/#organization", 7611 "name": "Soulflower.in", 7612 "url": "https:\/\/www.soulflower.in", 7613 "logo": "https:\/\/www.soulflower.in\/cdn\/shop\/files\/Soulflower-Logo_1_1.jpg?v=1787655914\u0026width=500", 7614 "description": "Soulflower offers 100% natural, vegan, and cruelty-free skincare and haircare products. India's first transparent beauty brand with no artificial fragrance, colors, or parabens.", 7615 "sameAs": [ 7616 "https://www.instagram.com/soulflowerindia/", 7617 "https://www.facebook.com/besoulflowerindia", 7618 "https://www.youtube.com/channel/UCT2TvAK2rP1yA4FGZMh_HWQ", 7619 "https://www.snapchat.com/add/soulflowerindia", 7620 "https://twitter.com/besoulflower" 7621 ], 7622 "address": { 7623 "@type": "PostalAddress", 7624 "streetAddress": "PT Invent India Pvt Ltd, Soulflower Sanctuary, 10/12, Marol Co-operative Industrial Estate, Marol, Andheri East", 7625 "addressLocality": "Mumbai", 7626 "addressRegion": "Maharashtra", 7627 "postalCode": "400059", 7628 "addressCountry": "IN" 7629 }, 7630 "contactPoint": [ 7631 { 7632 "@type": "ContactPoint", 7633 "telephone": "+91-8080356666", 7634 "contactType": "customer service", 7635 "email": "[email protected]", 7636 "areaServed": "IN", 7637 "availableLanguage": ["English", "Hindi"] 7638 } 7639 ] 7640 } 7641 </script>
7641<script type="application/ld+json"> 7642 {"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.soulflower.in"},{"@type":"ListItem","position":2,"name":"99store","item":"https:\/\/www.soulflower.in\/pages\/99store"}]} 7643 </script>
7643<div id="shopify-section-sticky-cart-bar" class="shopify-section"> 7644
7645<script> 7646// Sticky bar just renders â global CartSync handles all syncing 7647(function() { 7648 const path = window.location.pathname; 7649 if (path.indexOf('/cart') !== -1 || path.indexOf('/checkout') !== -1) { 7650 const b = document.getElementById('sticky-cart-bar'); 7651 if (b) b.style.display = 'none'; 7652 } 7653 // That's it! CartSync.onUpdate handles everything automatically. 7654})(); 7655</script>
7655 7656</div> 7657 7658<!-- âââ SCRIPT 1: Force z-index on sidecart âââ -->
7659<script> 7660 /* TC-2: shared helper. Every observer below funnels through this so a burst of 200 mutations 7661 does ONE pass on the next frame instead of 200 synchronous passes. Reading layout 7662 (getComputedStyle/offsetWidth) inside a raw MutationObserver callback forces a synchronous 7663 reflow of the whole page â PSI measured 628 ms of unattributed forced reflow plus ~550 ms 7664 attributed to these inline scripts, and INP is 563 ms against a 200 ms budget. */ 7665 window.__sfRafThrottle = function (fn) { 7666 var scheduled = false; 7667 return function () { 7668 if (scheduled) return; 7669 scheduled = true; 7670 requestAnimationFrame(function () { scheduled = false; fn(); }); 7671 }; 7672 }; 7673</script>
vendor: 1 bytes, line 7673
7673
7674<script> 7675 (function () { 7676 var FORCE_Z = '2147483647'; 7677 var SELECTORS = '.sidecart, [class*="sidecart"]'; 7678 7679 function force(el) { 7680 if (!el || el.dataset.zForced === '1') return; 7681 el.style.setProperty('z-index', FORCE_Z, 'important'); 7682 if (getComputedStyle(el).position === 'static') { 7683 el.style.setProperty('position', 'relative', 'important'); 7684 } 7685 el.dataset.zForced = '1'; 7686 } 7687 7688 function applyAll() { 7689 document.querySelectorAll(SELECTORS).forEach(force); 7690 document.querySelectorAll('shadow-dom-container').forEach(function (host) { 7691 if (host.shadowRoot) { 7692 host.shadowRoot.querySelectorAll('.sidecart').forEach(force); 7693 } 7694 }); 7695 } 7696 7697 applyAll(); 7698 7699 new MutationObserver(applyAll).observe(document.body, { 7700 childList: true, 7701 subtree: true, 7702 }); 7703 })(); 7704</script>
7704 7705 7706<!-- âââ Hide item-properties-list inside GoKwik sidecart âââ -->
7707<script> 7708(function () { 7709 var STYLE_ID = 'sf-hide-item-props'; 7710 var CSS = '.item-properties-list, .item-properties-list.svelte-1fb6zw3 { display: none !important; }'; 7711 7712 function injectInto(root) { 7713 if (!root || root.getElementById(STYLE_ID)) return; 7714 var style = document.createElement('style'); 7715 style.id = STYLE_ID; 7716 style.textContent = CSS; 7717 root.appendChild(style); 7718 } 7719 7720 function applyAll() { 7721 document.querySelectorAll('shadow-dom-container').forEach(function (host) { 7722 if (host.shadowRoot) injectInto(host.shadowRoot); 7723 }); 7724 } 7725 7726 applyAll(); 7727 7728 var obs = new MutationObserver(applyAll); 7729 obs.observe(document.documentElement, { childList: true, subtree: true }); 7730 setTimeout(function () { obs.disconnect(); }, 20000); 7731})(); 7732</script>
7732 7733 7734<!-- âââ SCRIPT 2: Sliding animation + overlay fade âââ -->
7735<script> 7736(function () { 7737 var DURATION = 320; 7738 var OVERLAY_DURATION = 400; 7739 7740 function isVisible(el) { 7741 if (!el.isConnected) return false; 7742 var s = getComputedStyle(el); 7743 return s.display !== 'none' && s.visibility !== 'hidden' && parseFloat(s.opacity) > 0; 7744 } 7745 7746 var cartStates = new WeakMap(); 7747 var overlayStates = new WeakMap(); 7748 var lockedElements = new WeakSet(); 7749 7750 function getState(map, el) { 7751 var st = map.get(el); 7752 if (!st) { 7753 st = { visible: false, animating: false }; 7754 map.set(el, st); 7755 } 7756 return st; 7757 } 7758 7759 function lockVisible(el) { 7760 lockedElements.add(el); 7761 el.style.setProperty('display', 'block', 'important'); 7762 el.style.setProperty('visibility', 'visible', 'important'); 7763 el.style.setProperty('opacity', '1', 'important'); 7764 el.style.setProperty('pointer-events', 'auto', 'important'); 7765 } 7766 7767 function unlockVisible(el) { 7768 lockedElements.delete(el); 7769 el.style.removeProperty('display'); 7770 el.style.removeProperty('visibility'); 7771 el.style.removeProperty('opacity'); 7772 el.style.removeProperty('pointer-events'); 7773 } 7774 7775 function animateCartIn(cart) { 7776 var st = getState(cartStates, cart); 7777 if (st.visible) return; 7778 st.visible = true; 7779 st.animating = true; 7780 cart.style.transition = 'none'; 7781 cart.style.transform = 'translate3d(100%, 0, 0)'; 7782 void cart.offsetWidth; 7783 cart.style.transition = 'transform ' + DURATION + 'ms ease-out'; 7784 cart.style.transform = 'translate3d(0, 0, 0)'; 7785 setTimeout(function () { st.animating = false; }, DURATION); 7786 } 7787 7788 function animateCartOut(cart) { 7789 var st = getState(cartStates, cart); 7790 if (!st.visible) return; 7791 st.visible = false; 7792 st.animating = true; 7793 lockVisible(cart); 7794 void cart.offsetWidth; 7795 cart.style.transition = 'transform ' + DURATION + 'ms ease-out'; 7796 cart.style.transform = 'translate3d(100%, 0, 0)'; 7797 setTimeout(function () { 7798 st.animating = false; 7799 unlockVisible(cart); 7800 cart.style.transform = ''; 7801 cart.style.transition = ''; 7802 }, DURATION + 20); 7803 } 7804 7805 function animateOverlayIn(overlay) { 7806 var st = getState(overlayStates, overlay); 7807 if (st.visible) return; 7808 st.visible = true; 7809 st.animating = true; 7810 overlay.style.transition = 'none'; 7811 overlay.style.opacity = '0'; 7812 void overlay.offsetWidth; 7813 overlay.style.transition = 'opacity ' + OVERLAY_DURATION + 'ms ease-in'; 7814 overlay.style.opacity = '1'; 7815 setTimeout(function () { st.animating = false; }, OVERLAY_DURATION); 7816 } 7817 7818 function animateOverlayOut(overlay) { 7819 var st = getState(overlayStates, overlay); 7820 if (!st.visible) return; 7821 st.visible = false; 7822 st.animating = true; 7823 lockedElements.add(overlay); 7824 overlay.style.setProperty('display', 'block', 'important'); 7825 overlay.style.setProperty('visibility', 'visible', 'important'); 7826 void overlay.offsetWidth; 7827 overlay.style.transition = 'opacity ' + OVERLAY_DURATION + 'ms ease-out'; 7828 overlay.style.opacity = '0'; 7829 setTimeout(function () { 7830 st.animating = false; 7831 lockedElements.delete(overlay); 7832 overlay.style.removeProperty('display'); 7833 overlay.style.removeProperty('visibility'); 7834 overlay.style.opacity = ''; 7835 overlay.style.transition = ''; 7836 }, OVERLAY_DURATION + 20); 7837 } 7838 7839 function checkCart(cart) { 7840 var st = getState(cartStates, cart); 7841 if (st.animating) return; 7842 var nowVisible = isVisible(cart); 7843 if (nowVisible && !st.visible) animateCartIn(cart); 7844 else if (!nowVisible && st.visible) animateCartOut(cart); 7845 } 7846 7847 function checkOverlay(overlay) { 7848 var st = getState(overlayStates, overlay); 7849 if (st.animating) return; 7850 var nowVisible = isVisible(overlay); 7851 if (nowVisible && !st.visible) animateOverlayIn(overlay); 7852 else if (!nowVisible && st.visible) animateOverlayOut(overlay); 7853 } 7854 7855 function scanAll(root) { 7856 root.querySelectorAll('.sidecart, [class*="sidecart"]:not([class*="backdrop"]):not([class*="overlay"])') 7857 .forEach(checkCart); 7858 root.querySelectorAll('[class*="sidecart-backdrop"], [class*="sidecart-overlay"]') 7859 .forEach(checkOverlay); 7860 } 7861 7862 function reassertLocks(root) { 7863 root.querySelectorAll('*').forEach(function (el) { 7864 if (lockedElements.has(el)) { 7865 var s = el.style; 7866 if (s.getPropertyValue('display') !== 'block') s.setProperty('display', 'block', 'important'); 7867 if (s.getPropertyValue('visibility') !== 'visible') s.setProperty('visibility', 'visible', 'important'); 7868 } 7869 }); 7870 } 7871 7872 function setupShadow(host) { 7873 if (!host.shadowRoot || host.shadowRoot.__sfAnimSetup) return; 7874 host.shadowRoot.__sfAnimSetup = true; 7875 scanAll(host.shadowRoot); 7876 var shadowObs = new MutationObserver(function () { 7877 reassertLocks(host.shadowRoot); 7878 scanAll(host.shadowRoot); 7879 }); 7880 shadowObs.observe(host.shadowRoot, { 7881 childList: true, 7882 subtree: true, 7883 attributes: true, 7884 attributeFilter: ['class', 'style', 'aria-hidden', 'hidden'] 7885 }); 7886 } 7887 7888 function applyAll() { 7889 document.querySelectorAll('shadow-dom-container').forEach(setupShadow); 7890 } 7891 7892 applyAll(); 7893 7894 var mainObs = new MutationObserver(applyAll); 7895 mainObs.observe(document.documentElement, { childList: true, subtree: true }); 7896 setTimeout(function () { mainObs.disconnect(); }, 20000); 7897})(); 7898</script>
7898 7899 7900<!-- ============================================ 7901 UNIVERSAL CART SYNC - One source of truth 7902 Syncs: Sticky Bar, Header Count 7903 PDP SAFE: no fetch intercept, no cart:updated re-fire loop 7904 ============================================ -->
7905<script> 7906(function() { 7907 'use strict'; 7908 7909 if (window.CartSync) return; 7910 7911 var __cartSync = { 7912 items: [], 7913 item_count: 0, 7914 total_price: 0, 7915 total_savings: 0, 7916 first_item: null, 7917 raw_cart: null, 7918 listeners: [] 7919 }; 7920 7921 var SYNC = __cartSync; 7922 var activeFetch = null; 7923 var pendingTimer = null; 7924 var lockUntil = 0; 7925 var lockedCount = 0; 7926 var isFetching = false; 7927 7928 // ââ FETCH ââ 7929 function fetchCart() { 7930 // Prevent re-entrant fetches 7931 if (isFetching) return; 7932 isFetching = true; 7933 7934 if (activeFetch) { try { activeFetch.abort(); } catch(e) {} } 7935 activeFetch = new AbortController(); 7936 7937 return fetch('/cart.js', { 7938 headers: { 'Accept': 'application/json' }, 7939 credentials: 'same-origin', 7940 cache: 'no-store', 7941 signal: activeFetch.signal 7942 }) 7943 .then(function(r) { return r.json(); }) 7944 .then(function(cart) { 7945 activeFetch = null; 7946 isFetching = false; 7947 updateState(cart); 7948 return cart; 7949 }) 7950 .catch(function(err) { 7951 isFetching = false; 7952 if (err.name !== 'AbortError') console.warn('[CartSync] fetch failed'); 7953 }); 7954 } 7955 7956 // ââ UPDATE STATE ââ 7957 function updateState(cart) { 7958 if (!cart || !cart.items) return; 7959 7960 var paidCount = 0; 7961 var firstPaidItem = null; 7962 var totalSavings = cart.total_discount || 0; 7963 7964 for (var i = 0; i < cart.items.length; i++) { 7965 var item = cart.items[i]; 7966 var isFree = item.final_price === 0 || 7967 (item.properties && (item.properties._gift || item.properties.gift)); 7968 if (!isFree) { 7969 paidCount += item.quantity; 7970 if (!firstPaidItem) firstPaidItem = item; 7971 } 7972 var compareAt = item.compare_at_price || 7973 (item.variant && item.variant.compare_at_price) || 0; 7974 if (compareAt > item.price) { 7975 totalSavings += (compareAt - item.price) * item.quantity; 7976 } 7977 } 7978 7979 if (Date.now() < lockUntil && paidCount < lockedCount) { 7980 paidCount = lockedCount; 7981 } 7982 7983 SYNC.items = cart.items; 7984 SYNC.item_count = paidCount; 7985 SYNC.total_price = cart.total_price; 7986 SYNC.total_savings = totalSavings; 7987 SYNC.first_item = firstPaidItem; 7988 SYNC.raw_cart = cart; 7989 7990 notifyAll(); 7991 } 7992 7993 // ââ NOTIFY â does NOT fire cart:updated to avoid re-warm loop ââ 7994 function notifyAll() { 7995 document.dispatchEvent(new CustomEvent('cartSync:update', { 7996 detail: SYNC, 7997 bubbles: true 7998 })); 7999 for (var i = 0; i < SYNC.listeners.length; i++) { 8000 try { SYNC.listeners[i](SYNC); } catch(e) {} 8001 } 8002 } 8003 8004 // ââ STICKY BAR ââ 8005 function updateStickyBar(state) { 8006 var bar = document.getElementById('sticky-cart-bar'); 8007 if (!bar) return; 8008 8009 var currency = bar.getAttribute('data-currency-symbol') || 'â¹'; 8010 function fmt(cents) { 8011 if (!cents && cents !== 0) return ''; 8012 return currency + (cents / 100).toFixed(2).replace(/\.00$/, ''); 8013 } 8014 8015 if (state.item_count === 0) { 8016 bar.classList.add('sticky-cart-bar--hidden'); 8017 return; 8018 } 8019 bar.classList.remove('sticky-cart-bar--hidden'); 8020 8021 bar.classList.remove('sticky-cart-bar--pulse'); 8022 void bar.offsetWidth; 8023 bar.classList.add('sticky-cart-bar--pulse'); 8024 setTimeout(function() { bar.classList.remove('sticky-cart-bar--pulse'); }, 400); 8025 8026 var countEl = bar.querySelector('[data-cart-count]'); 8027 var totalEl = bar.querySelector('[data-cart-total]'); 8028 var savingsEl = bar.querySelector('[data-cart-savings]'); 8029 var thumb = bar.querySelector('[data-cart-thumb]'); 8030 var thumbWrap = bar.querySelector('[data-cart-thumb-wrap]'); 8031 8032 if (countEl) countEl.textContent = state.item_count; 8033 if (totalEl) totalEl.textContent = fmt(state.total_price); 8034 8035 if (savingsEl) { 8036 if (state.total_savings > 0) { 8037 savingsEl.textContent = 'You save ' + fmt(state.total_savings); 8038 savingsEl.style.display = ''; 8039 } else { 8040 savingsEl.style.display = 'none'; 8041 } 8042 } 8043 8044 if (thumb && state.first_item && state.first_item.image) { 8045 var url = state.first_item.image; 8046 if (typeof url === 'object' && url.src) url = url.src; 8047 if (url.indexOf('//') === 0) url = 'https:' + url; 8048 url = url.replace(/(\.[^.?]+)(\?.*)?$/, '_80x$1$2'); 8049 if (thumb.src !== url) { thumb.src = url; thumb.style.display = ''; } 8050 } 8051 if (thumbWrap) { 8052 thumbWrap.classList.toggle('single-item', state.item_count <= 1); 8053 } 8054 } 8055 8056 // ââ HEADER COUNT ââ 8057 function updateHeaderCount(state) { 8058 document.querySelectorAll('.cart-count,.header__cart-count,.cart-count-bubble,.site-header__cart-count').forEach(function(el) { 8059 var inner = el.querySelector('span[aria-hidden="true"]') || 8060 el.querySelector('span:not(.visually-hidden)'); 8061 if (inner) inner.textContent = state.item_count; 8062 else el.textContent = state.item_count; 8063 if (el.classList.contains('cart-count-bubble')) { 8064 el.style.display = state.item_count > 0 ? '' : 'none'; 8065 } 8066 }); 8067 document.querySelectorAll('.cart-count-bubble span.visually-hidden').forEach(function(el) { 8068 el.textContent = state.item_count + ' items'; 8069 }); 8070 } 8071 8072 SYNC.listeners.push(updateStickyBar); 8073 SYNC.listeners.push(updateHeaderCount); 8074 8075 // ââ OPTIMISTIC ADD (from card-product.liquid) ââ 8076 function optimisticAdd(data) { 8077 var qty = data.quantity || 1; 8078 var price = data.price || 0; 8079 var compareAt = data.compareAtPrice || 0; 8080 8081 SYNC.item_count += qty; 8082 SYNC.total_price += price * qty; 8083 if (compareAt > price) SYNC.total_savings += (compareAt - price) * qty; 8084 8085 if (data.image) { 8086 SYNC.first_item = SYNC.first_item || {}; 8087 SYNC.first_item.image = data.image; 8088 SYNC.first_item.product_title = data.title || ''; 8089 } 8090 8091 lockedCount = SYNC.item_count; 8092 lockUntil = Date.now() + 1200; 8093 8094 // No notifyAll â bar only shows after real fetch 8095 clearTimeout(pendingTimer); 8096 pendingTimer = setTimeout(fetchCart, 400); 8097 } 8098 8099 // ââ EVENTS ââ 8100 // Optimistic from cards 8101 document.addEventListener('cart:optimistic-add', function(e) { 8102 if (e.detail) optimisticAdd(e.detail); 8103 }); 8104 8105 document.addEventListener('cart:optimistic-rollback', function(e) { 8106 if (e.detail && e.detail.quantity) { 8107 SYNC.item_count = Math.max(0, SYNC.item_count - e.detail.quantity); 8108 lockUntil = 0; 8109 lockedCount = SYNC.item_count; 8110 notifyAll(); 8111 setTimeout(fetchCart, 100); 8112 } 8113 }); 8114 8115 // GoKwik native cart events 8116 ['gk:cart:updated','gokwik:cart:updated','gk:cart:add','gokwik:cart:add'].forEach(function(name) { 8117 document.addEventListener(name, function(e) { 8118 if (e.detail && e.detail.cart) updateState(e.detail.cart); 8119 else setTimeout(fetchCart, 100); 8120 }); 8121 }); 8122 8123 // Legacy events â but NOT cart:updated to avoid the GoKwik re-warm loop 8124 // cart:updated is fired by GoKwik performance block on every CartSync notifyAll,
8125 // which would loop: notifyAll â cart:updated â re-warm fetch â updateState â notifyAll 8126 ['cart:refresh','cart:change','cart:added','ajaxCart:afterCartLoad'].forEach(function(name) { 8127 document.addEventListener(name, function(e) { 8128 if (e.detail && e.detail.cart) updateState(e.detail.cart); 8129 else setTimeout(fetchCart, 50); 8130 }); 8131 }); 8132 8133 // cart:updated handled separately with debounce to break any loop 8134 var cartUpdatedTimer = null; 8135 document.addEventListener('cart:updated', function(e) { 8136 // If the event carries cart data use it directly, skip the re-fetch 8137 if (e.detail && e.detail.cart && e.detail.cart.items) { 8138 updateState(e.detail.cart); 8139 return; 8140 } 8141 // Otherwise debounce to avoid rapid re-fetches from GoKwik warmup 8142 clearTimeout(cartUpdatedTimer); 8143 cartUpdatedTimer = setTimeout(fetchCart, 300); 8144 }); 8145 8146 // Tab focus 8147 document.addEventListener('visibilitychange', function() { 8148 if (document.visibilityState === 'visible') fetchCart(); 8149 }); 8150 8151 // ââ PUBLIC API ââ 8152 window.CartSync = { 8153 refresh: fetchCart, 8154 getState: function() { return SYNC; }, 8155 onUpdate: function(fn) { SYNC.listeners.push(fn); fn(SYNC); }, 8156 8157 // card-product.liquid shims 8158 state: SYNC, 8159 pending: {}, 8160 fetchAndSync: fetchCart, 8161 ingestCart: updateState, 8162 applyToCards: function() {}, 8163 paintCount: function(n) { updateHeaderCount({ item_count: n }); }, 8164 localCount: function() { return SYNC.item_count; }, 8165 fmtMoney: function(cents) { 8166 if (!cents && cents !== 0) return ''; 8167 try { 8168 return new Intl.NumberFormat('en-IN', { 8169 style: 'currency', currency: 'INR', 8170 minimumFractionDigits: 0, maximumFractionDigits: 0 8171 }).format(cents / 100); 8172 } catch(e) { return 'â¹' + Math.round(cents / 100); } 8173 } 8174 }; 8175 8176 // ââ INIT ââ 8177 if (document.readyState === 'loading') { 8178 document.addEventListener('DOMContentLoaded', fetchCart); 8179 } else { 8180 fetchCart(); 8181 } 8182 8183 console.log('â CartSync ready (PDP-safe)'); 8184})(); 8185</script>
8185 8186<div class="sf-bedazzled-overlay" aria-hidden="true"></div> 8187 8188<style> 8189 .sf-bedazzled-overlay { 8190 position: fixed; 8191 inset: 0; 8192 width: 100%; 8193 height: 100%; 8194 pointer-events: none; 8195 z-index: 99999; 8196 8197 background-image: 8198 radial-gradient(circle at 15% 20%, rgba(255,255,255,.9) 0 2px, transparent 3px), 8199 radial-gradient(circle at 75% 30%, rgba(255,255,255,.8) 0 1.5px, transparent 3px), 8200 radial-gradient(circle at 40% 70%, rgba(255,255,255,.9) 0 2px, transparent 3px), 8201 radial-gradient(circle at 90% 80%, rgba(255,255,255,.8) 0 1.5px, transparent 3px); 8202 8203 background-size: 8204 180px 180px, 8205 240px 240px, 8206 210px 210px, 8207 280px 280px; 8208 8209 animation: sfBedazzledMove 20s linear infinite; 8210 } 8211 8212 @keyframes sfBedazzledMove { 8213 0% { 8214 background-position: 8215 0 0, 8216 50px 20px, 8217 20px 80px, 8218 100px 40px; 8219 } 8220 8221 50% { 8222 background-position: 8223 40px 30px, 8224 0 60px, 8225 70px 20px, 8226 40px 100px; 8227 } 8228 8229 100% { 8230 background-position: 8231 0 0, 8232 50px 20px, 8233 20px 80px, 8234 100px 40px; 8235 } 8236 } 8237</style> 8238 8239 <style> </style> 8240<div id="shopify-block-ARFhnRmVQeU1CMW8zR__10314455842701661981" class="shopify-block shopify-app-block"> 8241 8242 <link rel="preload" href="https://cdn.shopify.com/extensions/01a11c47-fe92-7256-a17c-87ef738b64b9/vizup-488/assets/vizup_ultimate.min.css" type="text/css" as="style" onload="this.onload=null;this.rel='stylesheet'"> 8243 8244 8245 <div 8246 class="vizup-app wizup-app sg-floatingpop" 8247 data-shopname="soulflower-bc21.myshopify.com" 8248 data-productid="" 8249 data-collectionid="" 8250 data-widgettype="floating_pop" 8251 data-templatename="page" 8252 data-pageurl="/pages/99store" 8253 data-name="" 8254 ></div> 8255 8256 <style> 8257 div.shopify-block[id*="__vizup_"] { 8258 width: 100%; 8259 } 8260 div.shopify-block[id*="__vizup_"] .vizup-app { 8261 contain: inline-size; 8262 } 8263 8264 8265 8266 8267 </style> 8268 8269 8270 8271
8271<script data-appname="shopgracias" type="module"> 8272 import shopgracias_floatreels_sw from 'https://cdn.shopify.com/extensions/01a11c47-fe92-7256-a17c-87ef738b64b9/vizup-488/assets/vizup_ultimate.min.js'; 8273 8274 const vizup_ultimate = () => { 8275 const sg_elms = document.getElementsByClassName('sg-floatingpop'); 8276 for (let index = 0; index < sg_elms.length; index++) { 8277 new shopgracias_floatreels_sw({ 8278 target: sg_elms[index], 8279 props: { 8280 sgwidgetElm: sg_elms[index], 8281 sgwidgetCounter: index, 8282 }, 8283 }); 8284 } 8285 }; 8286 8287 if (document.readyState === 'loading') { 8288 document.addEventListener('DOMContentLoaded', vizup_ultimate); 8289 } else { 8290 vizup_ultimate(); 8291 } 8292 </script>
8292 8293 8294 8295 8296 8297</div><div id="shopify-block-ARkV6dWx2UlU3dUhOS__257592986901569083" class="shopify-block shopify-app-block"><button id="whatsapp-button" title="Chat with us on Bob"> 8298 <span class="visually-hidden">Open Bob Widgets</span> 8299</button> 8300 8301 8302 8303 8304 8305 8306 8307 8308<style> 8309 .visually-hidden { 8310 position: absolute!important; 8311 overflow: hidden; 8312 width: 1px; 8313 height: 1px; 8314 margin: -1px; 8315 padding: 0; 8316 border: 0; 8317 clip: rect(0 0 0 0); 8318 word-wrap: normal!important; 8319 } 8320 8321 button[id="whatsapp-button"] { 8322 position: fixed; 8323 bottom: 15px; 8324 width: 60px; 8325 height: 60px; 8326 background: url("https://cdn.shopify.com/extensions/01a08535-3331-7d74-9213-e0b5e5372d4a/businessonbot-393-44/assets/whatsapp_180x180.png") no-repeat center; 8327 background-size: contain; 8328 border: none; 8329 padding: 0; 8330 font: inherit; 8331 cursor: pointer; 8332 outline: inherit; 8333 z-index: 100; 8334 display: none; 8335 transition: transform 0.3s cubic-bezier(0.075, 0.82, 0.165, 1); 8336 } 8337 8338 button[id="whatsapp-button"]:hover { 8339 transform: scale(1.10); 8340 } 8341 8342 button[id="whatsapp-button"]:active { 8343 transform: scale(0.95); 8344 } 8345 8346 canvas:empty { 8347 display: initial; 8348 } 8349</style> 8350 8351 8352</div><div id="shopify-block-AV0F0ditvY2Z5UjF2d__6362728350820064966" class="shopify-block shopify-app-block">
8352<script data-heliokey="69e3531e0644563c2ed2dfba" src="https://cdn.shopify.com/extensions/01a11cb1-dcf6-7844-80c9-4ed9798ceac1/helioai-351/assets/injector.js" defer></script>
8352 8353 8354 8355</div><div id="shopify-block-AQmVDaWF0SDIxbXB3a__3227402172389423190" class="shopify-block shopify-app-block"><!-- BEGIN app snippet: widget_initializer --> 8356 8357 8358 8359 8360 8361 8362 8363 8364 8365 8366<!-- BEGIN app snippet: nector_auth --><!-- END app snippet --> 8367
8368<script 8369 async 8370 src="https://cdn.nector.io/nector-static/no-cache/reward-widget/mainloader.min.js" 8371 data-op="widget" 8372 data-platform_url="https://platform.nector.io" 8373 data-websdk_url="https://websdk.nector.io" 8374 data-api_key="ak_7ac9331f7071d7daeb0c82e8bce57c356d1b879ccb2ac90355963c949ca116b1" 8375 data-entity_id="78ec66e1-7bea-428d-8c09-2b8766723de6" 8376 data-customer_id="" 8377 data-platform="shopify" 8378 8379 data-target_currency="INR" 8380 8381></script>
8381 8382<!-- END app snippet --> 8383</div><div id="shopify-block-AZTA0UUdWeWUzNG9jV__1219337400145039034" class="shopify-block shopify-app-block"><!-- BEGIN app snippet: kwikpass -->
8383<script defer> 8384 function getCustomerId() { 8385 8386 return null 8387 8388 } 8389 8390 function getThemeId() { 8391 8392 return null 8393 8394 } 8395 8396 8397 let token = null; 8398 let isDropdownVisible = false; 8399 let isDropdownMobileVisible = false; 8400 let isElementsWithAccountClickable = true; 8401 const ICON_SELECT_QUERY='.header__icon--account'; 8402 const HORIZON_PROFILE_ICON = '.account-button.header-actions__action' 8403 8404 // Define handleDrawer2 in global scope so it can be accessed by onclick attributes - for horizon themes 8405 function handleDrawer2() { 8406 const token = getValueFromCookiesOrLocalStorage(XGokwikCoreToken(window.merchantInfo.environment)) 8407 if (token) { 8408 const kwikpassLoggedInElement = document.getElementById("icon-kwikpass"); 8409 const crossIconElement = document.getElementById("icon-close-kwikpass") 8410 const drawerElement = document.getElementById("kwikpass-drawer-desktop") 8411 // display cross icon and hide icon-kwikpass if isDropdownVisible = true else display icon-kwikpass and hide cross icon 8412 if(drawerElement && crossIconElement && kwikpassLoggedInElement) { 8413 if(isDropdownVisible){ 8414 drawerElement.style.display = "none"; 8415 crossIconElement.style.display="none"; 8416 kwikpassLoggedInElement.style.display="flex"; 8417 }else{ 8418 drawerElement.style.display = "block"; 8419 crossIconElement.style.display="flex"; 8420 kwikpassLoggedInElement.style.display="none"; 8421 } 8422 isDropdownVisible = !isDropdownVisible; 8423 } 8424 8425 const kwikpassLoggedInElementMbl = document.getElementById("icon-kwikpass-mobile"); 8426 const crossIconElementMbl = document.getElementById("icon-close-kwikpass-mobile") 8427 const drawerElementMbl = document.getElementById("kwikpass-drawer-mobile") 8428 // display cross icon and hide icon-kwikpass if isDropdownMobileVisible = true else display icon-kwikpass and hide cross icon 8429 if(drawerElementMbl && crossIconElementMbl && kwikpassLoggedInElementMbl) { 8430 if(isDropdownMobileVisible){ 8431 drawerElementMbl.style.display = "none"; 8432 crossIconElementMbl.style.display="none"; 8433 kwikpassLoggedInElementMbl.style.display="flex"; 8434 }else{ 8435 drawerElementMbl.style.display = "block"; 8436 crossIconElementMbl.style.display="flex"; 8437 kwikpassLoggedInElementMbl.style.display="none"; 8438 } 8439 isDropdownMobileVisible = !isDropdownMobileVisible; 8440 } 8441 } 8442 } 8443 8444 function addProfileIconInHorizon(){ 8445 8446 const kpLoader = `<svg 8447 class="loadergk kploader" 8448 width="17" 8449 height="16" 8450 viewBox="0 0 17 16" 8451 fill="none" 8452 xmlns="http://www.w3.org/2000/svg" 8453 > 8454 <path 8455 d="M8.50004 1.33325V3.99992M8.50004 11.9999V14.6666M4.50004 7.99992H1.83337M15.1667 7.99992H12.5M13.219 12.7189L11.3334 10.8333M13.219 3.33321L11.3334 5.21883M3.78109 12.7189L5.66671 10.8333M3.78109 3.33321L5.66671 5.21883" 8456 stroke="#111" 8457 stroke-width="1.6" 8458 stroke-linecap="round" 8459 stroke-linejoin="round" 8460 /> 8461 </svg>` 8462 8463 /*removing existing profile(person) icon - person icon is not present in this store*/ 8464 // Note: profileButtonElement and profileButtonElementMbl are now defined later in the code (lines 356 and 376) 8465 8466 // defining css and add it to style tag in head 8467 function appendCss() { 8468 let css = ` 8469 .loadergk { 8470 display: none; 8471 animation: rotate 1.5s linear infinite; 8472 } 8473 @keyframes rotate { 8474 100% { 8475 transform: rotate(360deg); 8476 } 8477 } 8478 .kp-disabled-text-color{ 8479 cursor: not-allowed; 8480 } 8481 #logout-button-desktop, #logout-button-mobile{ 8482 cursor: pointer; 8483 display: flex; 8484 justify-content: center; 8485 align-items: center; 8486 gap: 8px; 8487 font-size: 14px; 8488 color: #344054; 8489 font-style: normal; 8490 font-weight: 600; 8491 line-height: 20px; 8492 width: 100%; 8493 border-radius: 8px; 8494 padding: 8px 14px;; 8495 border: 1px solid var(--gray-300, #d0d5dd); 8496 background: var(--base-white, #fff); 8497 box-shadow: 0px 1px 2px 0px rgba(16, 24, 40, 0.05); 8498 } 8499 #loggedin-icons{ 8500 align-self: center; 8501 display: none; 8502 } 8503 #loggedin-icons-mobile{ 8504 display:none; 8505 } 8506 /* Base drawer styles */ 8507 #kwikpass-drawer-desktop,#kwikpass-drawer-mobile{ 8508 padding: 16px; 8509 display: none; 8510 width: 10rem; 8511 position: absolute; 8512 box-shadow: 0px 0px 32px 0px rgba(16, 24, 40, 0.32); 8513 border-bottom-left-radius: 8px; 8514 border-bottom-right-radius: 8px; 8515 z-index: 999; 8516 background:#fff!important; 8517 } 8518 8519 /* Old theme drawer - original positioning (MUST NOT BREAK) */ 8520 .kp-old-theme #kwikpass-drawer-desktop, 8521 .kp-old-theme #kwikpass-drawer-mobile { 8522 right: 10%; 8523 top: 175%; 8524 } 8525 8526 /* New theme drawer - use right: 0 to align with icon's right edge (responsive) */ 8527 .kp-new-theme #kwikpass-drawer-desktop, 8528 .kp-new-theme #kwikpass-drawer-mobile { 8529 right: 74px; 8530 top: 78%; 8531 } 8532 #kwikpass-drawer-desktop > ul , #kwikpass-drawer-mobile > ul { 8533 margin: 0px 0px 15px 0px; 8534 padding: 0; 8535 width: 100%; 8536 } 8537 #kwikpass-drawer-desktop >ul >a , #kwikpass-drawer-mobile > ul > a { 8538 cursor: pointer; 8539 width: 100%; 8540 display: flex!important; 8541 justify-content: space-between; 8542 align-items: center; 8543 padding: 0; 8544 color: inherit; 8545 margin-left:0!important; 8546 text-decoration: none; 8547 } 8548 #kwikpass-drawer-desktop >ul >a:hover , #kwikpass-drawer-mobile > ul > a:hover , #kwikpass-drawer-desktop >ul >a:focus , #kwikpass-drawer-mobile > ul > a:focus { 8549 text-decoration: none; 8550 } 8551 #kwikpass-drawer-desktop >ul >a:focus , #kwikpass-drawer-mobile > ul > a:focus,#kwikpass-drawer-desktop >ul >a:active , #kwikpass-drawer-mobile > ul > a:active { 8552 text-decoration: none; 8553 } 8554 #kwikpass-drawer-desktop >ul >a:focus .loadergk , #kwikpass-drawer-mobile > ul > a:focus .loadergk { 8555 display: block; 8556 } 8557 #kwikpass-drawer-desktop >ul >a:not(:focus) .loadergk , #kwikpass-drawer-mobile > ul > a:not(:focus) .loadergk { 8558 display: none; 8559 } 8560 #kwikpass-drawer-desktop > ul > a > p , #kwikpass-drawer-mobile > ul > a > p { 8561 font-size: 14px; 8562 font-style: normal; 8563 font-weight: 500; 8564 line-height: 142.857%; 8565 display: inline-flex; 8566 gap: 8px; 8567 align-items: center; 8568 margin: 0px 0 0px 0; 8569 color: #000; 8570 } 8571 /* Base icon styles */ 8572 .header--icon{ 8573 cursor: pointer; 8574 display: inline-flex; 8575 color: #000; 8576 } 8577 .header--icon--mobile{ 8578 cursor: pointer; 8579 display: inline-flex; 8580 color: #000; 8581 width: 23px; 8582 } 8583 8584 /* Old theme - original positioning (MUST NOT BREAK) */ 8585 .kp-old-theme.header--icon, 8586 .kp-old-theme.header--icon--mobile { 8587 position: relative; 8588 top: 10px; 8589 margin: 0 10px; 8590 } 8591 8592 /* New theme - match old theme visual appearance */ 8593 .kp-new-theme.header--icon, 8594 .kp-new-theme.header--icon--mobile { 8595 display: inline-flex; 8596 align-items: center; 8597 } 8598 #icon-close-kwikpass, #icon-close-kwikpass-mobile{ 8599 display: none; 8600 border-radius: 50px; 8601 border: 1px solid; 8602 margin: 0; 8603 padding: 2px; 8604 align-items: center; 8605 justify-content: center; 8606 margin-left:3px; 8607 } 8608 8609 floating-panel-component.account-popover__panel.details-content.color-scheme-1 { 8610 display: none; 8611 } 8612 8613 `; 8614 8615 var style = document.createElement('style'); 8616 style.innerHTML = css; 8617 document.getElementsByTagName('head')[0].appendChild(style); 8618 } 8619 8620 // function call to append css to style tag 8621 appendCss() 8622 8623 const userIcon = `<svg width="23" height="23" viewBox="0 0 27 27" fill="none" xmlns="http://www.w3.org/2000/svg" id="svgkp"> 8624 <path d="M22.9129 12.935L13.7571 23.0474C13.5348 23.2929 13.1284 23.1084 13.1669 22.7794L14.0816 14.9731H10.6991C10.4034 14.9731 10.2484 14.6219 10.4478 14.4035L20.3133 3.59739C20.5589 3.32834 20.9984 3.58134 20.8891 3.92887L18.2354 12.3664H22.6607C22.9557 12.3664 23.1109 12.7163 22.9129 12.935Z" fill="#FEA203"/> 8625 <path id="svgkp-path" fill-rule="evenodd" clip-rule="evenodd" d="M16.6079 5.35819C16.4805 5.1933 16.3421 5.03582 16.1932 4.8869C15.2702 3.96387 14.0183 3.44531 12.7129 3.44531C11.4075 3.44531 10.1556 3.96387 9.2326 4.8869C8.30957 5.80993 7.79102 7.06183 7.79102 8.36719C7.79102 9.67255 8.30957 10.9244 9.2326 11.8475C9.48368 12.0986 9.75909 12.3197 10.0533 12.5086L11.0235 11.4503C10.7335 11.2914 10.4649 11.0911 10.227 10.8531C9.56766 10.1938 9.19727 9.29959 9.19727 8.36719C9.19727 7.43479 9.56766 6.54057 10.227 5.88127C10.8863 5.22196 11.7805 4.85156 12.7129 4.85156C13.6453 4.85156 14.5395 5.22196 15.1988 5.88127C15.3636 6.04604 15.5103 6.22549 15.6377 6.41654L16.6079 5.35819ZM20.6413 18.6497L19.6746 19.7132C20.1676 20.4122 20.4473 21.2264 20.4473 22.0781V23.8359C20.4473 24.2243 20.7621 24.5391 21.1504 24.5391C21.5387 24.5391 21.8535 24.2243 21.8535 23.8359V22.0781C21.8535 20.7863 21.4016 19.6103 20.6413 18.6497ZM12.3111 17.5078H10.3026C7.27113 17.5078 4.97852 19.6394 4.97852 22.0781V23.8359C4.97852 24.2243 4.66372 24.5391 4.27539 24.5391C3.88707 24.5391 3.57227 24.2243 3.57227 23.8359V22.0781C3.57227 18.6922 6.67684 16.1016 10.3026 16.1016H12.4885L12.3111 17.5078Z" fill="currentColor" stroke="currentColor" stroke-width="0.1"/> 8626 </svg>`; 8627
8628 // kwikpass icon for desktop - if user is not logged in 8629 const KwikpassNotLoggedIcon = `<div id="kp-login-button-header-logo" onclick="handleKpAndShopifyLogin()" style="cursor: pointer;display: flex;align-items: center;">${userIcon}</div>` 8630 8631 // kwikpass icon for mobile - if user is not logged in 8632 const KwikpassNotLoggedIconMobile = `<div id="kp-login-button-header-logo-mobile" onclick="handleKpAndShopifyLogin()" style="cursor: pointer;display: flex">${userIcon}</div>` 8633 8634 // dropdown for desktop (opens on clicking kwikpass icon if user logged in) 8635 const drawerhtmlDesktop = `<div id="kwikpass-drawer-desktop" > 8636 <ul> 8637 <a href="javascript:void(0);" onclick="event.preventDefault();handleShopifyLogin(event,'/account')" tabindex="0" style=" display: flex"> 8638 <p> 8639 <svg 8640 width="16" 8641 height="16" 8642 viewBox="0 0 20 20" 8643 fill="none" 8644 xmlns="http://www.w3.org/2000/svg" 8645 > 8646 <path 8647 d="M4.6 2.20033L3.3 3.93366C3.04251 4.27697 2.91377 4.44863 2.91676 4.59232C2.91936 4.71736 2.97799 4.83462 3.07646 4.91172C3.18962 5.00032 3.40419 5.00032 3.83333 5.00032H16.1667C16.5958 5.00032 16.8104 5.00032 16.9235 4.91172C17.022 4.83462 17.0806 4.71736 17.0832 4.59232C17.0862 4.44863 16.9575 4.27697 16.7 3.93366L15.4 2.20033M4.6 2.20033C4.74667 2.00477 4.82 1.90699 4.91294 1.83647C4.99525 1.77401 5.08846 1.72741 5.18782 1.69903C5.3 1.66699 5.42222 1.66699 5.66667 1.66699H14.3333C14.5778 1.66699 14.7 1.66699 14.8122 1.69903C14.9115 1.72741 15.0047 1.77401 15.0871 1.83647C15.18 1.90699 15.2533 2.00477 15.4 2.20033M4.6 2.20033L3.03333 4.28921C2.83545 4.55306 2.73651 4.68498 2.66625 4.83026C2.6039 4.95917 2.55843 5.09559 2.53096 5.23612C2.5 5.3945 2.5 5.55941 2.5 5.88921L2.5 15.667C2.5 16.6004 2.5 17.0671 2.68166 17.4236C2.84144 17.7372 3.09641 17.9922 3.41002 18.152C3.76654 18.3337 4.23325 18.3337 5.16667 18.3337L14.8333 18.3337C15.7668 18.3337 16.2335 18.3337 16.59 18.152C16.9036 17.9922 17.1586 17.7372 17.3183 17.4236C17.5 17.0671 17.5 16.6004 17.5 15.667V5.88921C17.5 5.55941 17.5 5.3945 17.469 5.23613C17.4416 5.09559 17.3961 4.95918 17.3338 4.83026C17.2635 4.68498 17.1646 4.55306 16.9667 4.28921L15.4 2.20033M13.3333 8.33366C13.3333 9.21771 12.9821 10.0656 12.357 10.6907C11.7319 11.3158
864710.8841 11.667 10 11.667C9.11594 11.667 8.2681 11.3158 7.64298 10.6907C7.01786 10.0656 6.66667 9.21771 6.66667 8.33366" 8648 stroke="currentColor" 8649 stroke-width="1.66667" 8650 stroke-linecap="round" 8651 stroke-linejoin="round" 8652 fill="none" 8653 /> 8654 </svg> 8655 8656 Order History 8657 </p> 8658 8659 ${kpLoader} 8660 </a> 8661 </ul> 8662 <button id="logout-button-desktop"> 8663 Logout 8664 <svg 8665 width="16" 8666 height="16" 8667 viewBox="0 0 20 20" 8668 fill="none" 8669 xmlns="http://www.w3.org/2000/svg" 8670 > 8671 <path 8672 d="M15 6.66667L18.3334 10M18.3334 10L15 13.3333M18.3334 10H7.50002M12.5 3.50337C11.4377 2.86523 10.2044 2.5 8.88891 2.5C4.90019 2.5 1.66669 5.85786 1.66669 10C1.66669 14.1421 4.90019 17.5 8.88891 17.5C10.2044 17.5 11.4377 17.1348 12.5 16.4966" 8673 stroke="currentColor" 8674 stroke-width="1.66667" 8675 stroke-linecap="round" 8676 stroke-linejoin="round" 8677 fill="none" 8678 /> 8679 </svg> 8680 </button> 8681 </div>`; 8682 8683 // dropdown for mobile (opens on clicking kwikpass icon if user logged in) 8684 const drawerhtmlMobile = `<div id="kwikpass-drawer-mobile"> 8685 <ul> 8686 <a href="javascript:void(0);" onclick="event.preventDefault();handleShopifyLogin(event,'/account')" tabindex="0" style=" display: flex"> 8687 <p> 8688 <svg 8689 width="16" 8690 height="16"
8691 viewBox="0 0 20 20" 8692 fill="none" 8693 xmlns="http://www.w3.org/2000/svg" 8694 class="ordericon" 8695 > 8696 <path 8697 d="M4.6 2.20033L3.3 3.93366C3.04251 4.27697 2.91377 4.44863 2.91676 4.59232C2.91936 4.71736 2.97799 4.83462 3.07646 4.91172C3.18962 5.00032 3.40419 5.00032 3.83333 5.00032H16.1667C16.5958 5.00032 16.8104 5.00032 16.9235 4.91172C17.022 4.83462 17.0806 4.71736 17.0832 4.59232C17.0862 4.44863 16.9575 4.27697 16.7 3.93366L15.4 2.20033M4.6 2.20033C4.74667 2.00477 4.82 1.90699 4.91294 1.83647C4.99525 1.77401 5.08846 1.72741 5.18782 1.69903C5.3 1.66699 5.42222 1.66699 5.66667 1.66699H14.3333C14.5778 1.66699 14.7 1.66699 14.8122 1.69903C14.9115 1.72741 15.0047 1.77401 15.0871 1.83647C15.18 1.90699 15.2533 2.00477 15.4 2.20033M4.6 2.20033L3.03333 4.28921C2.83545 4.55306 2.73651 4.68498 2.66625 4.83026C2.6039 4.95917 2.55843 5.09559 2.53096 5.23612C2.5 5.3945 2.5 5.55941 2.5 5.88921L2.5 15.667C2.5 16.6004 2.5 17.0671 2.68166 17.4236C2.84144 17.7372 3.09641 17.9922 3.41002 18.152C3.76654 18.3337 4.23325 18.3337 5.16667 18.3337L14.8333 18.3337C15.7668 18.3337 16.2335 18.3337 16.59 18.152C16.9036 17.9922 17.1586 17.7372 17.3183 17.4236C17.5 17.0671 17.5 16.6004 17.5 15.667V5.88921C17.5 5.55941 17.5 5.3945 17.469 5.23613C17.4416 5.09559 17.3961 4.95918 17.3338 4.83026C17.2635 4.68498 17.1646 4.55306 16.9667 4.28921L15.4 2.20033M13.3333 8.33366C13.3333 9.21771 12.9821 10.0656 12.357 10.6907C11.7319 11.3158
869710.8841 11.667 10 11.667C9.11594 11.667 8.2681 11.3158 7.64298 10.6907C7.01786 10.0656 6.66667 9.21771 6.66667 8.33366" 8698 stroke="currentColor" 8699 stroke-width="1.66667" 8700 stroke-linecap="round" 8701 stroke-linejoin="round" 8702 fill="none" 8703 /> 8704 </svg> 8705 8706 Order History 8707 </p> 8708 8709 ${kpLoader} 8710 </a> 8711 </ul> 8712 <button id="logout-button-mobile"> 8713 Logout 8714 <svg 8715 width="16" 8716 height="16" 8717 viewBox="0 0 20 20" 8718 fill="none" 8719 xmlns="http://www.w3.org/2000/svg" 8720 > 8721 <path 8722 d="M15 6.66667L18.3334 10M18.3334 10L15 13.3333M18.3334 10H7.50002M12.5 3.50337C11.4377 2.86523 10.2044 2.5 8.88891 2.5C4.90019 2.5 1.66669 5.85786 1.66669 10C1.66669 14.1421 4.90019 17.5 8.88891 17.5C10.2044 17.5 11.4377 17.1348 12.5 16.4966" 8723 stroke="currentColor" 8724 stroke-width="1.66667" 8725 stroke-linecap="round" 8726 stroke-linejoin="round" 8727 fill="none" 8728 /> 8729 </svg> 8730 </button> 8731 </div>`; 8732 8733 8734 8735 const kwikpassLoggedInIcon = ` 8736 <div id="loggedin-icons"> 8737 <div id="icon-close-kwikpass" class="icon-close-kwikpass" style="height: 20px; width:20px; cursor: pointer;" onclick="handleDrawer2()"> 8738 <svg width="18" height="18" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 8739 <path d="M18 6L6 18M6 6L18 18" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"/> 8740 </svg> 8741 </div> 8742 <div style="cursor: pointer;display: flex;" onclick="handleDrawer2()" id="icon-kwikpass"> 8743 ${userIcon} 8744 </div> 8745 </div>`; 8746 8747 const kwikpassLoggedInIconMobile = ` 8748 <div id="loggedin-icons-mobile" > 8749 <div id="icon-close-kwikpass-mobile" style="cursor: pointer;height: 20px; width:20px;" onclick="handleDrawer2()"> 8750 <svg width="17" height="17" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 8751 <path d="M18 6L6 18M6 6L18 18" stroke="currentColor" stroke-width="1.66667" stroke-linecap="round" stroke-linejoin="round"/> 8752 </svg> 8753 </div> 8754 <div style="cursor: pointer;display: flex" onclick="handleDrawer2()" id="icon-kwikpass-mobile"> 8755 ${userIcon} 8756 </div> 8757 </div>`; 8758 8759 8760 // It will change based on theme - Desktop 8761 const profileButtonElement = document.querySelector('.account-button.header-actions__action') 8762 const personIconElement = profileButtonElement?.parentElement 8763 const html = ` 8764 ${KwikpassNotLoggedIcon} 8765 ${kwikpassLoggedInIcon} 8766 ${drawerhtmlDesktop} 8767 `; 8768 8769 if(!document.getElementsByClassName("header--icon")?.[0]){ 8770 // Detect theme 8771 const isOldTheme = document.querySelector('.account-popover') !== null; 8772 8773 const kwipassDesktopNode = document.createElement('div') 8774 // Add theme-specific class 8775 kwipassDesktopNode.className = isOldTheme ? "header--icon kp-old-theme" : "header--icon kp-new-theme" 8776 kwipassDesktopNode.innerHTML = html 8777 // Hide original and insert Kwikpass button (works for both themes) 8778 if(personIconElement && profileButtonElement) { 8779 profileButtonElement.style.display = 'none'; 8780 personIconElement.insertBefore(kwipassDesktopNode, profileButtonElement); 8781 } 8782 } 8783 8784 //mobile - Get the second instance of account button 8785 const allAccountButtons = document.querySelectorAll('.account-button.header-actions__action') 8786 const profileButtonElementMbl = allAccountButtons[1] // Second instance (mobile) 8787 const personIconElementMbl = profileButtonElementMbl?.parentElement 8788 8789 8790 8791 const htmlmobile = ` 8792 ${KwikpassNotLoggedIconMobile} 8793 ${kwikpassLoggedInIconMobile} 8794 ${drawerhtmlMobile} 8795 `; 8796 8797 if(!document.getElementsByClassName("header--icon--mobile")?.[0]){ 8798 // Detect theme 8799 const isOldThemeMobile = document.querySelector('.account-drawer') !== null; 8800 8801 const kwipassMobileNode = document.createElement('div') 8802 // Add theme-specific class 8803 kwipassMobileNode.className = isOldThemeMobile ? "header--icon--mobile kp-old-theme" : "header--icon--mobile kp-new-theme" 8804 kwipassMobileNode.innerHTML = htmlmobile 8805 // Hide original and insert Kwikpass button (works for both themes) 8806 if(personIconElementMbl && profileButtonElementMbl) { 8807 profileButtonElementMbl.style.display = 'none'; 8808 personIconElementMbl.insertBefore(kwipassMobileNode, profileButtonElementMbl); 8809 } 8810 } 8811 } 8812 8813 function addLoginButtonForHorizon(){ 8814 8815 function updateDOM(isKwikpassLogin = true) { 8816 token = getValueFromCookiesOrLocalStorage(XGokwikCoreToken(window.merchantInfo.environment)); 8817 const isLogout = sessionStorage.getItem('isLogout'); 8818 const phoneNumber = getValueFromCookiesOrLocalStorage('notify_ph
8818one_number'); 8819 8820 if ((!token && !isLogout) || (token && !phoneNumber)) { 8821 openIframe('kp_sso_token') 8822 } 8823 8824 const drawerElementMobile = document.getElementById("kwikpass-drawer-mobile") 8825 if(drawerElementMobile){ 8826 if(token){ 8827 document.getElementById("kp-login-button-header-logo-mobile").style.display = "none" 8828 document.getElementById("loggedin-icons-mobile").style.display = "block" 8829 }else{ 8830 document.getElementById("kp-login-button-header-logo-mobile").style.display = "flex" 8831 document.getElementById("loggedin-icons-mobile").style.display = "none" 8832 drawerElementMobile.style.display = "none" 8833 } 8834 } 8835 8836 const drawerElement = document.getElementById("kwikpass-drawer-desktop") 8837 if(drawerElement){ 8838 if(token){ 8839 document.getElementById("kp-login-button-header-logo").style.display = "none" 8840 document.getElementById("loggedin-icons").style.display = "block" 8841 }else{ 8842 document.getElementById("kp-login-button-header-logo").style.display = "flex" 8843 document.getElementById("loggedin-icons").style.display = "none" 8844 drawerElement.style.display = "none" 8845 } 8846 } 8847 8848 // shopify logout 8849 const logoutLink = document.querySelectorAll('a[href*="/account/logout"]'); 8850 logoutLink.forEach((element) => { 8851 element.addEventListener("click", (event) => { 8852 event.preventDefault() 8853 handleLogout() 8854 }) 8855 }); 8856 8857 const logoutElement = document.getElementById('logout-button-desktop') 8858 if(logoutElement) logoutElement.addEventListener('click', handleLogout); 8859 8860 //mobile 8861 const logoutElementMobile = document.getElementById('logout-button-mobile') 8862 if(logoutElementMobile) logoutElementMobile.addEventListener('click', handleLogout); 8863 } 8864 8865 let isElementsWithAccountClickable = true; 8866 8867 // Add a click event listener to the document 8868 document.addEventListener('click', function(event) { 8869 const dropdownButton = document.getElementsByClassName('header--icon') ?. [0] 8870 // Check if the clicked element is the dropdown button or inside the dropdown menu 8871 const isClickInsideDropdown = dropdownButton?.contains(event.target); 8872 8873 // If the click is outside the dropdown, hide the dropdown 8874 const kwikpassLoggedInElement = document.getElementById("icon-kwikpass"); 8875 const crossIconElement = document.getElementById("icon-close-kwikpass") 8876 const drawerElement = document.getElementById("kwikpass-drawer-desktop") 8877 8878 if (! isClickInsideDropdown && isDropdownVisible && token) { 8879 drawerElement.style.display = "none"; 8880 crossIconElement.style.display = "none"; 8881 kwikpassLoggedInElement.style.display = "flex"; 8882 isDropdownVisible = ! isDropdownVisible; 8883 } 8884 8885 //mobile 8886 const dropdownButtonMbl = document.getElementsByClassName('header--icon--mobile')?.[0] 8887 8888 // Check if the clicked element is the dropdown button or inside the dropdown menu 8889 const isClickInsideDropdownMbl = dropdownButtonMbl?.contains(event.target); 8890 8891 // If the click is outside the dropdown, hide the dropdown 8892 const kwikpassLoggedInElementMbl = document.getElementById("icon-kwikpass-mobile"); 8893 const crossIconElementMbl = document.getElementById("icon-close-kwikpass-mobile") 8894 const drawerElementMbl = document.getElementById("kwikpass-drawer-mobile") 8895 8896 if (! isClickInsideDropdownMbl && isDropdownMobileVisible && token) { 8897 drawerElementMbl.style.display = "none"; 8898 crossIconElementMbl.style.display = "none"; 8899 kwikpassLoggedInElementMbl.style.display = "flex"; 8900 isDropdownMobileVisible = !isDropdownMobileVisible; 8901 } 8902 }); 8903 8904 document.addEventListener('DOMContentLoaded', function() { 8905 updateDOM(); 8906 }); 8907 8908 window.addEventListener('update-dom', function() { 8909 const kwikpassLoggedInElement = document.getElementById("icon-kwikpass"); 8910 const crossIconElement = document.getElementById("icon-close-kwikpass") 8911 const drawerElement = document.getElementById("kwikpass-drawer-desktop") 8912 if(drawerElement) drawerElement.style.display = "none"; 8913 if(crossIconElement) crossIconElement.style.display="none"; 8914 if(kwikpassLoggedInElement) kwikpassLoggedInElement.style.display="flex"; 8915
8916 const kwikpassLoggedInElementMbl = document.getElementById("icon-kwikpass-mobile"); 8917 const crossIconElementMbl = document.getElementById("icon-close-kwikpass-mobile") 8918 const drawerElementMbl = document.getElementById("kwikpass-drawer-mobile") 8919 if(drawerElementMbl) drawerElementMbl.style.display = "none"; 8920 if(crossIconElementMbl) crossIconElementMbl.style.display="none"; 8921 if(kwikpassLoggedInElementMbl) kwikpassLoggedInElementMbl.style.display="flex"; 8922 updateDOM(); 8923 }); 8924 addProfileIconInHorizon() 8925 updateDOM(); 8926 } 8927 8928 function handleDrawer1() { 8929 const token = getValueFromCookiesOrLocalStorage(XGokwikCoreToken(window.merchantInfo.environment)); 8930 if (token) { 8931 const kwikpassLoggedInElement = document.getElementById("icon-kwikpass"); 8932 const crossIconElement = document.getElementById("icon-close-kwikpass"); 8933 const drawerElement = document.getElementById("kwikpass-drawer-desktop"); 8934 // display cross icon and hide icon-kwikpass if isDropdownVisible = true else display icon-kwikpass and hide cross icon 8935 if(isDropdownVisible){ 8936 drawerElement.style.display = "none"; 8937 crossIconElement.style.display="none"; 8938 kwikpassLoggedInElement.style.display="flex"; 8939 }else{ 8940 drawerElement.style.display = "block"; 8941 crossIconElement.style.display="flex"; 8942 kwikpassLoggedInElement.style.display="none"; 8943 } 8944 isDropdownVisible = !isDropdownVisible; 8945 } 8946 } 8947 8948 function addLoginButton(){ 8949 function updateDOM() { 8950 token = getValueFromCookiesOrLocalStorage(XGokwikCoreToken(window.merchantInfo.environment)); 8951 const isLogout = sessionStorage.getItem('isLogout'); 8952 const phoneNumber = getValueFromCookiesOrLocalStorage('notify_phone_number'); 8953 8954 if ((!token && !isLogout) || (token && !phoneNumber)) { 8955 openIframe('kp_sso_token') 8956 } 8957 8958 const drawerElement = document.getElementById("kwikpass-drawer-desktop") 8959 if(drawerElement){ 8960 if(token){ 8961 document.getElementById("kp-login-button-header-logo").style.display = "none" 8962 document.getElementById("loggedin-icons").style.display = "block" 8963 }else{ 8964 document.getElementById("kp-login-button-header-logo").style.display = "flex" 8965 document.getElementById("loggedin-icons").style.display = "none" 8966 drawerElement.style.display = "none" 8967 } 8968 } 8969 // shopify logout 8970 const logoutLink = document.querySelectorAll('a[href*="/account/logout"]'); 8971 logoutLink.forEach((element) => { 8972 element.addEventListener("click", (event) => { 8973 event.preventDefault() 8974 handleLogout() 8975 }) 8976 }); 8977 8978 const logoutElement = document.getElementById('logout-button-desktop') 8979 8980 if(logoutElement) logoutElement.addEventListener('click', handleLogout); 8981 } 8982 8983 const elementsWithAccount = document.querySelectorAll('a[href="/account"]'); 8984 elementsWithAccount.forEach((element) => { 8985 element.addEventListener('click', async (e) => { 8986 e.preventDefault(); 8987 const customerId = getCustomerId() 8988 token = getValueFromCookiesOrLocalStorage(XGokwikCoreToken(window.merchantInfo.environment)); 8989 kpHandleLogin('/account'); 8990 }); 8991 }); 8992 8993 document.addEventListener('DOMContentLoaded', function() { 8994 updateDOM(); 8995 }); 8996 8997 window.addEventListener('update-dom', function() { 8998 updateDOM(); 8999 }); 9000 9001 //TODO: update this with a query for the required button 9002 9003 const loader = `<svg 9004 class="kploader" 9005 width="17" 9006 height="16"
9007 viewBox="0 0 17 16" 9008 fill="none" 9009 xmlns="http://www.w3.org/2000/svg" 9010 > 9011 <path 9012 d="M8.50004 1.33325V3.99992M8.50004 11.9999V14.6666M4.50004 7.99992H1.83337M15.1667 7.99992H12.5M13.219 12.7189L11.3334 10.8333M13.219 3.33321L11.3334 5.21883M3.78109 12.7189L5.66671 10.8333M3.78109 3.33321L5.66671 5.21883" 9013 stroke="#111" 9014 stroke-width="1.6" 9015 stroke-linecap="round" 9016 stroke-linejoin="round" 9017 /> 9018 </svg>` 9019 9020 /*removing existing profile(person) icon - person icon is not present in this store*/ 9021 const profileButtonElement = document.querySelector(ICON_SELECT_QUERY) || document.querySelector(HORIZON_PROFILE_ICON); 9022 9023 // defining css and add it to style tag in head 9024 function appendCss() { 9025 let css = ` 9026 .kploader { 9027 display: none; 9028 animation: rotate 1.5s linear infinite; 9029 } 9030 @keyframes rotate { 9031 100% { 9032 transform: rotate(360deg); 9033 } 9034 } 9035 .kp-disabled-text-color{ 9036 cursor: not-allowed; 9037 } 9038 #logout-button-desktop{ 9039 cursor: pointer; 9040 display: flex; 9041 justify-content: center; 9042 align-items: center; 9043 gap: 8px; 9044 font-size: 14px; 9045 color: #344054; 9046 font-style: normal; 9047 font-weight: 600; 9048 line-height: 20px; 9049 width: 100%; 9050 border-radius: 8px; 9051 padding: 8px 14px;; 9052 border: 1px solid var(--gray-300, #d0d5dd); 9053 background: var(--base-white, #fff); 9054 box-shadow: 0px 1px 2px 0px rgba(16, 24, 40, 0.05); 9055 } 9056 #loggedin-icons{ 9057 align-self: center; 9058 display: none; 9059 } 9060 #kwikpass-drawer-desktop{ 9061 padding: 16px; 9062 display: none; 9063 right: 0%; 9064 width: 18rem; 9065 position: absolute; 9066 top: 100%; 9067 box-shadow: 0px 0px 32px 0px rgba(16, 24, 40, 0.32); 9068 border-bottom-left-radius: 8px; 9069 border-bottom-right-radius: 8px; 9070 z-index: 999; 9071 background:#fff!important; 9072 } 9073 #kwikpass-drawer-desktop > ul{ 9074 margin: 0px 0px 10px 0px; 9075 padding: 0; 9076 width: 100%; 9077 } 9078 #kwikpass-drawer-desktop >ul >a{ 9079 cursor: pointer; 9080 width: 100%; 9081 display: flex!important; 9082 justify-content: space-between; 9083 align-items: center; 9084 padding: 0; 9085 color: inherit; 9086 margin-left:0!important; 9087 text-decoration: none; 9088 } 9089 #kwikpass-drawer-desktop >ul >a:hover , #kwikpass-drawer-desktop >ul >a:focus { 9090 text-decoration: none; 9091 } 9092 #kwikpass-drawer-desktop >ul >a:focus,#kwikpass-drawer-desktop >ul >a:active { 9093 text-decoration: none; 9094 } 9095 #kwikpass-drawer-desktop >ul >a:focus .kploader { 9096 display: block; 9097 } 9098 #kwikpass-drawer-desktop >ul >a:not(:focus) .kploader { 9099 display: none; 9100 } 9101 #kwikpass-drawer-desktop > ul > a > p { 9102 font-size: 14px; 9103 font-style: normal; 9104 font-weight: 500; 9105 line-height: 142.857%; 9106 display: inline-flex; 9107 gap: 8px; 9108 align-items: center; 9109 margin: 10px 0 10px 0; 9110 color: #000; 9111 } 9112 .header--icon{ 9113 cursor: pointer; 9114 position: relative; 9115 display: inline-flex; 9116 } 9117 path#svgkp-path { 9118 stroke-width: 1; 9119 } 9120 #icon-close-kwikpass{ 9121 display: none; 9122 border-radius: 50px; 9123 border: 1px solid; 9124 margin: 0; 9125 padding: 2px; 9126 align-items: center; 9127 justify-content: center; 9128 margin-left:3px; 9129 } 9130 `; 9131 9132 var style = document.createElement('style'); 9133 style.innerHTML = css; 9134 document.getElementsByTagName('head')[0].appendChild(style); 9135 } 9136 9137 // function call to append css to style tag 9138 appendCss() 9139 // existing user icon to show in the header 9140 // TODO : fetch user icon form backend 9141 const userIcon = `<svg width="23" height="23" viewBox="0 0 27 27" fill="none" xmlns="http://www.w3.org/2000/svg" id="svgkp"> 9142 <path d="M22.9129 12.935L13.7571 23.0474C13.5348 23.2929 13.1284 23.1084 13.1669 22.7794L14.0816 14.9731H10.6991C10.4034 14.9731 10.2484 14.6219 10.4478 14.4035L20.3133 3.59739C20.5589 3.32834 20.9984 3.58134 20.8891 3.92887L18.2354 12.3664H22.6607C22.9557 12.3664 23.1109 12.7163 22.9129 12.935Z" fill="#FEA203"/> 9143 <path id="svgkp-path" fill-rule="evenodd" clip-rule="evenodd" d="M16.6079 5.35819C16.4805 5.1933 16.3421 5.03582 16.1932 4.8869C15.2702 3.96387 14.0183 3.44531 12.7129 3.44531C11.4075 3.44531 10.1556 3.96387 9.2326 4.8869C8.30957 5.80993 7.79102 7.06183 7.79102 8.36719C7.79102 9.67255 8.30957 10.9244 9.2326 11.8475C9.48368 12.0986 9.75909 12.3197 10.0533 12.5086L11.0235 11.4503C10.7335 11.2914 10.4649 11.0911 10.227 10.8531C9.56766 10.1938 9.19727 9.29959 9.19727 8.36719C9.19727 7.43479 9.56766 6.54057 10.227 5.88127C10.8863 5.22196 11.7805 4.85156 12.7129 4.85156C13.6453 4.85156 14.5395 5.22196 15.1988 5.88127C15.3636 6.04604 15.5103 6.22549 15.6377 6.41654L16.6079 5.35819ZM20.6413 18.6497L19.6746 19.7132C20.1676 20.4122 20.4473 21.2264 20.4473 22.0781V23.8359C20.4473 24.2243 20.7621 24.5391 21.1504 24.5391C21.5387 24.5391 21.8535 24.2243 21.8535 23.8359V22.0781C21.8535 20.7863 21.4016 19.6103 20.6413 18.6497ZM12.3111 17.5078H10.3026C7.27113 17.5078 4.97852 19.6394 4.97852 22.0781V23.8359C4.97852 24.2243 4.66372 24.5391 4.27539 24.5391C3.88707 24.5391 3.57227 24.2243 3.57227 23.8359V22.0781C3.57227 18.6922 6.67684 16.1016 10.3026 16.1016H12.4885L12.3111 17.5078Z" fill="currentColor" stroke="currentColor"/> 9144 </svg>`; 9145 9146 // kwikpass icon for desktop - if user is not logged in 9147 const KwikpassNotLoggedIcon = `<div id="kp-login-button-header-logo" style="cursor: pointer;display: flex;align-items: center;">${userIcon}</div>` 9148
9149 // dropdown for desktop (opens on clicking kwikpass icon if user logged in) 9150 const drawerhtmlDesktop = `<div id="kwikpass-drawer-desktop"> 9151 <ul> 9152 <a href="javascript:void(0)" onclick="handleShopifyLogin(event,'/account')" tabindex="0" style=" display: flex"> 9153 <p> 9154 <svg 9155 width="20" 9156 height="20" 9157 viewBox="0 0 20 20" 9158 fill="none" 9159 xmlns="http://www.w3.org/2000/svg" 9160 > 9161 <path 9162 d="M4.6 2.20033L3.3 3.93366C3.04251 4.27697 2.91377 4.44863 2.91676 4.59232C2.91936 4.71736 2.97799 4.83462 3.07646 4.91172C3.18962 5.00032 3.40419 5.00032 3.83333 5.00032H16.1667C16.5958 5.00032 16.8104 5.00032 16.9235 4.91172C17.022 4.83462 17.0806 4.71736 17.0832 4.59232C17.0862 4.44863 16.9575 4.27697 16.7 3.93366L15.4 2.20033M4.6 2.20033C4.74667 2.00477 4.82 1.90699 4.91294 1.83647C4.99525 1.77401 5.08846 1.72741 5.18782 1.69903C5.3 1.66699 5.42222 1.66699 5.66667 1.66699H14.3333C14.5778 1.66699 14.7 1.66699 14.8122 1.69903C14.9115 1.72741 15.0047 1.77401 15.0871 1.83647C15.18 1.90699 15.2533 2.00477 15.4 2.20033M4.6 2.20033L3.03333 4.28921C2.83545 4.55306 2.73651 4.68498 2.66625 4.83026C2.6039 4.95917 2.55843 5.09559 2.53096 5.23612C2.5 5.3945 2.5 5.55941 2.5 5.88921L2.5 15.667C2.5 16.6004 2.5 17.0671 2.68166 17.4236C2.84144 17.7372 3.09641 17.9922 3.41002 18.152C3.76654 18.3337 4.23325 18.3337 5.16667 18.3337L14.8333 18.3337C15.7668 18.3337 16.2335 18.3337 16.59 18.152C16.9036 17.9922 17.1586 17.7372 17.3183 17.4236C17.5 17.0671 17.5 16.6004 17.5 15.667V5.88921C17.5 5.55941 17.5 5.3945 17.469 5.23613C17.4416 5.09559 17.3961 4.95918 17.3338 4.83026C17.2635 4.68498 17.1646 4.55306 16.9667 4.28921L15.4 2.20033M13.3333 8.33366C13.3333 9.21771 12.9821 10.0656 12.357 10.6907C11.7319 11.3158
916210.8841 11.667 10 11.667C9.11594 11.667 8.2681 11.3158 7.64298 10.6907C7.01786 10.0656 6.66667 9.21771 6.66667 8.33366" 9163 stroke="currentColor" 9164 stroke-width="1.66667" 9165 stroke-linecap="round" 9166 stroke-linejoin="round" 9167 fill="none" 9168 /> 9169 </svg> 9170 Order History 9171 </p> 9172 9173 ${loader} 9174 </a> 9175 </ul> 9176 <button id="logout-button-desktop"> 9177 Logout 9178 <svg 9179 width="20" 9180 height="20" 9181 viewBox="0 0 20 20" 9182 fill="none" 9183 xmlns="http://www.w3.org/2000/svg" 9184 > 9185 <path 9186 d="M15 6.66667L18.3334 10M18.3334 10L15 13.3333M18.3334 10H7.50002M12.5 3.50337C11.4377 2.86523 10.2044 2.5 8.88891 2.5C4.90019 2.5 1.66669 5.85786 1.66669 10C1.66669 14.1421 4.90019 17.5 8.88891 17.5C10.2044 17.5 11.4377 17.1348 12.5 16.4966" 9187 stroke="currentColor" 9188 stroke-width="1.66667" 9189 stroke-linecap="round" 9190 stroke-linejoin="round" 9191 fill="none" 9192 /> 9193 </svg> 9194 </button> 9195 </div>`; 9196 9197 const kwikpassLoggedInIcon = ` 9198 <div id="loggedin-icons" > 9199 <div id="icon-close-kwikpass" class="icon-close-kwikpass" style="height: 20px; width:20px; cursor: pointer;" onclick="handleDrawer1()"> 9200 <svg width="18" height="18" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 9201 <path d="M18 6L6 18M6 6L18 18" stroke="currentColor" stroke-width="1.66667" stroke-linecap="round" stroke-linejoin="round"/> 9202 </svg> 9203 </div> 9204 <div style="cursor: pointer;display: flex;" onclick="handleDrawer1()" id="icon-kwikpass"> 9205 ${userIcon} 9206 </div> 9207 </div>`; 9208 9209 9210 // It will change based on theme 9211 const personIconElement = document.querySelector(ICON_SELECT_QUERY)?.parentElement || document.querySelector(HORIZON_PROFILE_ICON)?.parentElement 9212 const html = ` 9213 ${KwikpassNotLoggedIcon} 9214 ${kwikpassLoggedInIcon} 9215 ${drawerhtmlDesktop} 9216 `; 9217 9218 9219 if(!document.getElementsByClassName("header--icon")?.[0]){ 9220 const kwipassDesktopNode = document.createElement('div') 9221 kwipassDesktopNode.className="header--icon" 9222 kwipassDesktopNode.innerHTML = html 9223 personIconElement?.replaceChild(kwipassDesktopNode,profileButtonElement) 9224 } 9225 9226 let timerId=null; 9227 document.getElementById('kp-login-button-header-logo')?.addEventListener('click', () => { 9228 clearTimeout(timerId); 9229 timerId = null; 9230 handleKpAndShopifyLogin(); 9231 }); 9232 const kwikpassMobileIconElement = document.getElementById('kp-login-button-header-logo-mobile'); 9233 if (kwikpassMobileIconElement) { 9234 kwikpassMobileIconElement.addEventListener('click', () => { 9235 clearTimeout(timerId); 9236 timerId = null; 9237 handleKpAndShopifyLogin(); 9238 }); 9239 } 9240 9241 updateDOM(); 9242 9243 } 9244 9245 let isdomReady = false; 9246 document.addEventListener('DOMContentLoaded', function() { 9247 isdomReady = true; 9248 }, { once: true }); 9249 9250 function handleManualIntegration(){ 9251 if(isdomReady){ 9252 handleDOMUpdate(); 9253 }else{ 9254 document.addEventListener('DOMContentLoaded', function() { 9255 handleDOMUpdate(); 9256 }); 9257 } 9258 9259 window.addEventListener('update-dom', function() { 9260 handleDOMUpdate(); 9261 }); 9262 } 9263 9264 function handleNewVersionsOfHorizon(){ 9265 const headerEl = document.querySelector("header"); 9266 9267 if (headerEl) { 9268 // Create an observer to watch attribute changes 9269 const observer = new MutationObserver((mutationsList) => { 9270 for (const mutation of mutationsList) { 9271 if ( 9272 mutation.type === "attributes" && 9273 mutation.attributeName === "data-hydrated" 9274 ) { 9275 const newValue = headerEl.getAttribute("data-hydrated"); 9276 if (newValue === "true") { 9277 9278 addProfileIconInHorizon(); 9279 const drawerElementMobile = document.getElementById("kwikp
9279ass-drawer-mobile") 9280 if(drawerElementMobile){ 9281 if(token){ 9282 document.getElementById("kp-login-button-header-logo-mobile").style.display = "none" 9283 document.getElementById("loggedin-icons-mobile").style.display = "block" 9284 }else{ 9285 document.getElementById("kp-login-button-header-logo-mobile").style.display = "flex" 9286 document.getElementById("loggedin-icons-mobile").style.display = "none" 9287 drawerElementMobile.style.display = "none" 9288 } 9289 } 9290 9291 const drawerElement = document.getElementById("kwikpass-drawer-desktop") 9292 if(drawerElement){ 9293 if(token){ 9294 document.getElementById("kp-login-button-header-logo").style.display = "none" 9295 document.getElementById("loggedin-icons").style.display = "block" 9296 }else{ 9297 document.getElementById("kp-login-button-header-logo").style.display = "flex" 9298 document.getElementById("loggedin-icons").style.display = "none" 9299 drawerElement.style.display = "none" 9300 } 9301 } 9302 const logoutElement = document.getElementById('logout-button-desktop') 9303 if(logoutElement) logoutElement.addEventListener('click', handleLogout); 9304 9305 //mobile 9306 const logoutElementMobile = document.getElementById('logout-button-mobile') 9307 if(logoutElementMobile) logoutElementMobile.addEventListener('click', handleLogout); 9308 9309 // Stop observing once done (optional) 9310 observer.disconnect(); 9311 } 9312 } 9313 } 9314 }); 9315 9316 observer.observe(headerEl, { attributes: true }); 9317 9318 setTimeout(() => { 9319 observer.disconnect(); 9320 }, 10000); 9321 9322} 9323 9324 } 9325 9326 /** 9327 * Identifies account-related URLs that must be gated until KwikPass scripts load. 9328 */ 9329 function isAccountPath(pathname) { 9330 if (!pathname) return false; 9331 return ( 9332 pathname === '/account' || 9333 pathname.startsWith('/account/login') || 9334 pathname.startsWith('/account/register') || 9335 pathname.endsWith('/account') || 9336 pathname.indexOf('customer_authentication') !== -1 || 9337 pathname === '/account/addresses' 9338 ); 9339 } 9340 9341 /** 9342 * KwikpassAccountGate 9343 * ------------------- 9344 * Blocks navigation to account pages (see isAccountPath) until every required 9345 * KwikPass script has loaded successfully. 9346 * 9347 * Design notes: 9348 * - A SINGLE delegated click listener is attached on `document` in the CAPTURE 9349 * phase. This means it runs before any bubbling / inline `onclick` handlers, 9350 * so navigation is reliably blocked even for links clicked before scripts 9351 * finish loading (the race condition we care about). No per-anchor listeners. 9352 * - A MutationObserver only manages the visual `kwikpass-loading` class on 9353 * dynamically injected account links; the actual click-blocking never depends 9354 * on the observer, so newly added links are protected immediately by delegation. 9355 * - Loading state is centralized: every registered script key must flip to true 9356 * before the gate lifts. If ANY script fails, the gate stays locked. 9357 */ 9358 var KwikpassAccountGate = (function () { 9359 var LOADING_CLASS = 'kwikpass-loading'; 9360 var STYLE_ID = 'kwikpass-gate-style'; 9361 9362 var scriptStatus = Object.create(null); // key -> true once that script loads 9363 var requiredScripts = []; 9364 var failed = false; // a required script errored -> stay locked 9365 var unlocked = false; // gate lifted; navigation allowed 9366 var observer = null; 9367 var clickListenerAttached = false; 9368 9369 // Resolve an anchor's pathname tolerantly (handles relative/absolute hrefs). 9370 function getAnchorPath(anchor) { 9371 try { 9372 return anchor.pathname || new URL(anchor.href, window.location.origin).pathname; 9373 } catch (e) { 9374 return null; 9375 } 9376 } 9377 9378 function isAccountAnchor(anchor) { 9379 if (!anchor || anchor.tagName !== 'A') return false;
9380 var href = anchor.getAttribute('href'); 9381 // Ignore non-navigational hrefs (in-page anchors, javascript: handlers). 9382 if (!href || href.indexOf('javascript:') === 0 || href.charAt(0) === '#') return false; 9383 return isAccountPath(getAnchorPath(anchor)); 9384 } 9385 9386 // Single delegated capture-phase handler: blocks account-link navigation 9387 // while the gate is locked. 9388 function onDocumentClick(event) { 9389 if (unlocked) return; 9390 var target = event.target; 9391 var anchor = target && target.closest ? target.closest('a[href]') : null; 9392 if (!anchor || !isAccountAnchor(anchor)) return; 9393 event.preventDefault(); 9394 event.stopPropagation(); 9395 } 9396 9397 // Add/remove the visual loading class on every current account anchor. 9398 function refreshAnchorClasses() { 9399 var anchors = document.querySelectorAll('a[href]'); 9400 for (var i = 0; i < anchors.length; i++) { 9401 if (!isAccountAnchor(anchors[i])) continue; 9402 if (unlocked) anchors[i].classList.remove(LOADING_CLASS); 9403 else anchors[i].classList.add(LOADING_CLASS); 9404 } 9405 } 9406 9407 function injectStyle() { 9408 if (document.getElementById(STYLE_ID)) return; 9409 var style = document.createElement('style'); 9410 style.id = STYLE_ID; 9411 // Visual cue only; click-blocking is handled by the delegated listener. 9412 style.textContent = '.' + LOADING_CLASS + '{cursor:progress;opacity:.7;}'; 9413 (document.head || document.documentElement).appendChild(style); 9414 } 9415 9416 // Flag account links inside a freshly added DOM node. 9417 function flagNode(node) { 9418 if (node.nodeType !== 1) return; // element nodes only 9419 if (node.tagName === 'A' && isAccountAnchor(node)) { 9420 node.classList.add(LOADING_CLASS); 9421 } 9422 if (node.querySelectorAll) { 9423 var inner = node.querySelectorAll('a[href]'); 9424 for (var k = 0; k < inner.length; k++) { 9425 if (isAccountAnchor(inner[k])) inner[k].classList.add(LOADING_CLASS); 9426 } 9427 } 9428 } 9429 9430 // Watch for dynamically injected account links (visual class only). 9431 function startObserver() { 9432 if (observer || typeof MutationObserver === 'undefined') return; 9433 observer = new MutationObserver(function (mutations) { 9434 if (unlocked) return; 9435 for (var m = 0; m < mutations.length; m++) { 9436 var added = mutations[m].addedNodes; 9437 for (var n = 0; n < added.length; n++) flagNode(added[n]); 9438 } 9439 }); 9440 observer.observe(document.documentElement, { childList: true, subtree: true }); 9441 } 9442 9443 function lockNavigation() { 9444 if (!clickListenerAttached) { 9445 document.addEventListener('click', onDocumentClick, true); // capture phase 9446 clickListenerAttached = true; 9447 } 9448 injectStyle(); 9449 startObserver(); 9450 // The DOM may still be parsing when scripts are appended. 9451 if (document.readyState === 'loading') { 9452 document.addEventListener('DOMContentLoaded', refreshAnchorClasses, { once: true }); 9453 } else { 9454 refreshAnchorClasses(); 9455 } 9456 } 9457 9458 function unlockNavigation() { 9459 if (unlocked) return; 9460 unlocked = true; 9461 if (clickListenerAttached) { 9462 document.removeEventListener('click', onDocumentClick, true); 9463 clickListenerAttached = false; 9464 } 9465 if (observer) { 9466 observer.disconnect(); 9467 observer = null; 9468 } 9469 refreshAnchorClasses(); // strips the loading class from account links 9470 } 9471 9472 function maybeUnlock() { 9473 if (failed) return; 9474 for (var i = 0; i < requiredScripts.length; i++) { 9475 if (!scriptStatus[requiredScripts[i]]) return; // still waiting on a script 9476 } 9477 unlockNavigation(); 9478 } 9479 9480 return { 9481 // Register every script key up front and begin blocking immediately. 9482 init: function (keys) { 9483 requiredScripts = keys.slice(); 9484 for (var i = 0; i < keys.length; i++) scriptStatus[keys[i]] = false; 9485 failed = false; 9486 unlocked = false; 9487 lockNavigation(); 9488 }, 9489 markLoaded: function (key) { 9490 scriptStatus[key] = true; 9491 maybeUnlock(); 9492 }, 9493 markFailed: function (key, err) { 9494 failed = true; 9495 // Meaningful error; gate stays locked intentionally. 9496 console.error( 9497 '[KwikPass] Required script failed to load: "' + key + 9498 '". Account links remain disabled.', err 9499 ); 9500 } 9501 }; 9502 })(); 9503 9504 9505 var KP_LOW_PRIORITY_SCRIPT_URL = "https://pdp.gokwik.co/jify/build/sdk.js"; 9506 9507 function generateKpRequestId(){ 9508 return 'req-' + Date.now().toString(36) + '-' + Math.random().toString(36).slice(2); 9509 } 9510 9511 function runWhenIdle(fn, timeout){ 9512 if(typeof requestIdleCallback === 'function'){ 9513 requestIdleCallback(fn, { timeout: timeout }); 9514 }else{ 9515 setTimeout(fn, 0); 9516 } 9517 } 9518 9519 function isJifyScriptAlreadyPresent(){ 9520 return !!document.querySelector('script[src*="/jify/"]'); 9521 } 9522 9523 function loadLowPriorityScript(src){ 9524 runWhenIdle(function(){
9525 try{ 9526 if(isJifyScriptAlreadyPresent()){ 9527 return; 9528 } 9529 var script = document.createElement('script'); 9530 script.src = src; 9531 script.type = 'module'; 9532 script.async = true; 9533 script.setAttribute('fetchpriority', 'low'); 9534 document.body.appendChild(script); 9535 }catch(err){ 9536 console.error(err); 9537 } 9538 }, 5000); 9539 } 9540 9541 function checkMerchantStatusAndLoadLowPriorityScript(merchantId){ 9542 runWhenIdle(function(){ 9543 try{ 9544 if(!merchantId){ 9545 return; 9546 } 9547 9548 if(isJifyScriptAlreadyPresent()){ 9549 return; 9550 } 9551 9552 var kpRequestId = generateKpRequestId(); 9553 var merchantStatusUrl = 'https://gkx.gokwik.co/jify/api/v1/merchant/status'; 9554 9555 fetch(merchantStatusUrl, { 9556 method: 'GET', 9557 priority: 'low', 9558 headers: { 9559 'gk-merchant-id': merchantId, 9560 'kp-merchant-id': merchantId, 9561 'kp-request-id': kpRequestId, 9562 }, 9563 }) 9564 .then(function(response){ return response.json(); }) 9565 .then(function(data){ 9566 if(data && data.enabled === true && KP_LOW_PRIORITY_SCRIPT_URL){ 9567 loadLowPriorityScript(KP_LOW_PRIORITY_SCRIPT_URL); 9568 } 9569 }) 9570 .catch(function(err){ console.error(err); }); 9571 }catch(err){ 9572 console.error(err); 9573 } 9574 }, 3000); 9575 } 9576 9577 function addScripts(){ 9578 var kwikpassCoreFnUrl="https://pdp.gokwik.co/kwikpass/kwikpass-core-functions-min.js" 9579 var kwikpassMerchantV2Url="https://pdp.gokwik.co/kwikpass/plugin/build/kp-merchant-v2.js"; 9580 var kwikpassSDKUrl="https://pdp.gokwik.co/kwikpass/plugin/build/kp-shopify-app-sdk.js"; 9581 9582 // Start blocking account-link navigation before the scripts are appended. 9583 KwikpassAccountGate.init(['core', 'merchantV2', 'sdk']); 9584 9585 var kpCoreFnScript = document.createElement('script'); 9586 kpCoreFnScript.src = kwikpassCoreFnUrl; 9587 kpCoreFnScript.async=false; 9588 9589 kpCoreFnScript.onload = () => { 9590 KwikpassAccountGate.markLoaded('core'); 9591 if(document.querySelector(ICON_SELECT_QUERY)){ 9592 addLoginButton(); 9593 }else if(document.querySelector(HORIZON_PROFILE_ICON)){ 9594 handleNewVersionsOfHorizon(); 9595 addLoginButtonForHorizon(); 9596 }else{ 9597 handleManualIntegration(); 9598 } 9599 }; 9600 kpCoreFnScript.onerror = (e) => KwikpassAccountGate.markFailed('core', e); 9601 9602 var kpMerchantV2Script = document.createElement('script'); 9603 kpMerchantV2Script.src = kwikpassMerchantV2Url; 9604 kpMerchantV2Script.async=false; 9605 kpMerchantV2Script.onload = () => KwikpassAccountGate.markLoaded('merchantV2'); 9606 kpMerchantV2Script.onerror = (e) => KwikpassAccountGate.markFailed('merchantV2', e); 9607 9608 var kpMerchantV2SDKScript = document.createElement('script'); 9609 kpMerchantV2SDKScript.src = kwikpassSDKUrl; 9610 kpMerchantV2SDKScript.async=false; 9611 kpMerchantV2SDKScript.onload = () => KwikpassAccountGate.markLoaded('sdk'); 9612 kpMerchantV2SDKScript.onerror = (e) => KwikpassAccountGate.markFailed('sdk', e); 9613 9614 // Appended together => the three scripts download in parallel 9615 // (async=false preserves execution order between them). 9616 document.body.appendChild(kpCoreFnScript); 9617 document.body.appendChild(kpMerchantV2Script); 9618 document.body.appendChild(kpMerchantV2SDKScript); 9619 } 9620 9621 const __kp_mid = "19g6ilp6oqryo"; 9622 if(!__kp_mid || __kp_mid === ''){ 9623 window.merchantInfo = { 9624 ...window.merchantInfo, 9625 environment: "production", 9626 type: "merchantInfo", 9627 integrationType: "PLUGIN", 9628 } 9629 9630 var updateThemeMetaFieldGet = 'https://gkx.gokwik.co/kp/api/v1/shopify-app/update-theme-meta-field'; 9631 9632 9633 const options = { 9634 method: 'GET', 9635 headers: {accept: 'application/json', shop: window.Shopify.shop } 9636 }; 9637 9638 fetch(updateThemeMetaFieldGet, options) 9639 .then(response => response.json()) 9640 .then(response => { 9641 var data = response.data; 9642 if(data?.mid != null && data?.mid !== ''){ 9643 window.merchantInfo["mid"] = data.mid; 9644 } 9645 9646 addScripts(); 9647 checkMerchantStatusAndLoadLowPriorityScript(window.merchantInfo.mid); 9648 }) 9649 .catch(err => console.error(err)); 9650 }else{ 9651 window.merchantInfo = { 9652 ...window.merchantInfo, 9653 ...(__kp_mid != null && __kp_mid !== '' ? { mid: __kp_mid } : {}), 9654 environment: "production", 9655 type: "merchantInfo", 9656 integrationType: "PLUGIN", 9657 } 9658 9659 addScripts(); 9660 checkMerchantStatusAndLoadLowPriorityScript(window.merchantInfo.mid); 9661 } 9662 9663</script>
9663 9664<!-- END app snippet --> 9665 9666</div><div id="shopify-block-AZHFQRUFQU3ZyMzhta__1870902268962047653" class="shopify-block shopify-app-block">
9666<script type="application/json" id="helio-customer-data"> 9667{ 9668 "isLoggedIn": false, 9669 "customerData": null 9670} 9671</script>
9671 9672 9673 9674 9675<div 9676 id="chat-widget" 9677 data-key="69e3531e0644563c2ed2dfba" 9678 data-bundle-url="https://cdn.shopify.com/extensions/01a11cb1-dcf6-7844-80c9-4ed9798ceac1/helioai-351/assets/main.js" 9679></div> 9680
9681<script src="https://cdn.shopify.com/extensions/01a11cb1-dcf6-7844-80c9-4ed9798ceac1/helioai-351/assets/loader.js" defer></script>
9681 9682 9683 9684</div><div id="shopify-block-AY3pVa3ZJR0E3aHF6e__10436698916776057164" class="shopify-block shopify-app-block">
9684<script id="subscription-helper"> 9685 9686 function appstleStringSetting(value) { 9687 if (typeof value !== 'string') return value; 9688 try { return JSON.parse('"' + value + '"'); } catch { return value; } 9689 } 9690 function appstleJsonSetting(value) { 9691 if (typeof value !== 'string') return value; 9692 try { return JSON.parse(value); } catch { return null; } 9693 } 9694 9695 if (!window.AppstleIncluded) { 9696 window.AppstleIncluded = true; 9697 window.RS = Window.RS || {}; 9698 9699 RS.Config = { 9700 "selectors": { 9701 "payment_button_selectors": "form[action$='/cart/add'] .shopify-payment-button", 9702 "subscriptionLinkSelector": appstleStringSetting(""), 9703 "atcButtonPlacement": appstleStringSetting("BEFORE"), 9704 "subscriptionLinkPlacement": appstleStringSetting("BEFORE"), 9705 "cartRowSelector": appstleStringSetting(""), 9706 "cartLineItemSelector": appstleStringSetting(""), 9707 "cartLineItemPerQuantityPriceSelector": appstleStringSetting(""), 9708 "cartLineItemTotalPriceSelector": appstleStringSetting(""), 9709 "cartLineItemSellingPlanNameSelector": appstleStringSetting(""), 9710 "cartSubTotalSelector" : appstleStringSetting(""), 9711 "cartLineItemPriceSelector": appstleStringSetting(""), 9712 "cartLineItemPlacement": appstleStringSetting("BEFORE"), 9713 "cartHiddenAttributesSelector": appstleStringSetting(""), 9714 "buildABoxDiscountSelector": appstleStringSetting(""), 9715 }, 9716 "baseUrl": appstleStringSetting("https:\/\/subscription-admin.appstle.com"), 9717 "usedTranslation": "true", 9718 "enableCartWidgetFeature": appstleStringSetting("false"), 9719 "storefrontAnalyticsForwardingEnabled": appstleJsonSetting("false"), 9720 "appstleStorefrontAnalyticsPath": appstleStringSetting("https:\/\/subscription-admin.appstle.com\/assets\/js\/appstle-storefront-analytics.min.js?shop=soulflower-bc21.myshopify.com\u0026v=1788539228404"), 9721 "useUrlWithCustomerId": appstleStringSetting("true"), 9722 "atcButtonSelector": appstleStringSetting(""), 9723 "moneyFormat": appstleStringSetting("\\u20B9 {{amount_no_decimals}}"), 9724 "oneTimePurchaseText": appstleStringSetting("One-Time Purchase"), 9725 "minimumQuantityMessage": appstleStringSetting(""), 9726 "tapToSelectText": appstleStringSetting("Tap To Select"), 9727 "bundleDiscountTextV2": appstleStringSetting("bundle discount extra: {{bundleDiscount}} off"), 9728 "productPageUnitPriceSelectorV2": appstleStringSetting(null), 9729 "monthsFrequencyTextV2": appstleStringSetting("Months"), 9730 "monthlyLabelTextV2": appstleStringSetting("Monthly"), 9731 "monthFrequencyTextV2": appstleStringSetting("Month"), 9732 "weeksFrequencyTextV2": appstleStringSetting("Weeks"), 9733 "weeklyLabelTextV2": appstleStringSetting("Weekly"), 9734 "weekFrequencyTextV2": appstleStringSetting("Week"), 9735 "daysFrequencyTextV2": appstleStringSetting("Days"), 9736 "dayFrequencyTextV2": appstleStringSetting("day"), 9737 "yearsFrequencyTextV2": appstleStringSetting("Years"), 9738 "yearlyLabelTextV2": appstleStringSetting("Yearly"), 9739 "yearFrequencyTextV2": appstleStringSetting("Year"), 9740 "offFrequencyTextV2": appstleStringSetting("Off"), 9741 "prepayLabelTextV2": appstleStringSetting("Prepay"), 9742 "prepaidLabelTextV2": appstleStringSetting("Prepaid"), 9743 "prepaidSaveBadgeTextV2": appstleStringSetting("SAVE {{selectedDiscountPercentage}}"), 9744 "onetimeDescriptionTextV2": appstleStringSetting(""), 9745 "atcButtonTextV2": appstleStringSetting(""), 9746 "oneTimeFrequencyTextV2": appstleStringSetting("One Time"), 9747 "cancelAnytimeLabelTextV2": appstleStringSetting("Cancel Anytime"), 9748 "noSubscriptionLabelTextV2": appstleStringSetting("No Subscription"), 9749 "addToShipmentButtonTextV2": appstleStringSetting("Add to Shipment"), 9750 "addToShipmentProcessingV2": appstleStringSetting("Processing..."), 9751 "addToShipmentSuccessTextV2": appstleStringSetting("Success"), 9752 "addToShipmentErrorTextV2": appstleStringSetting("Error"), 9753 "addToShipmentTooltipTextV2": appstleStringSetting("Please avoid double delivery charges! Login to add this product to an upcoming delivery."), 9754 "frequencyCombinedWidgetTextV2": appstleStringSetting("Frequency"), 9755 "selectDeliverOptionV2": appstleStringSetting("Select Delivery Option"), 9756 "subscribeAndSaveSuccessV2": appstleStringSetting("Subscription Selected"), 9757 "unsubscribeFrequencyTextV2": appstleStringSetting("One-time Purchase"), 9758 "deliveryEveryFrequencyTextV2": appstleStringSetting("Delivery Frequency"), 9759 "sellingPlanTitleTextNonPrepaid": appstleStringSetting("{{sellingPlanName}}"), 9760 "subscribeAndSaveInitalV2": appstleStringSetting("Subscribe and save"), 9761 "subscriptionDescriptionTextV2": appstleStringSetting(""), 9762 "atcButtonTextSelector": appstleStringSetting(""), 9763 "disableCartWidgetOnVariants": appstleStringSetting(""), 9764 "shop": appstleStringSetting("soulflower-bc21.myshopify.com"), 9765 "deliveryText": appstleStringSetting("delivery"), 9766 "purchaseOptionsText": appstleStringSetting("Purchase Options"), 9767 "manageSubscriptionButtonText": appstleStringSetting("Manage Subscription"), 9768 "subscriptionOptionText": appstleStringSetting("Subscribe \u0026 Save"), 9769 "sellingPlanSelectTitle": appstleStringSetting("DELIVERY FREQUENCY"), 9770 "subscriptionPriceDisplayText": appstleStringSetting(""), 9771 "tooltipTitle": appstleStringSetting("Subscription detail"), 9772 "showTooltipOnClick": appstleStringSetting("false"), 9773 "tooltipDesctiption": appstleStringSetting("\u003cstrong\u003eHave complete control of your subscriptions\u003c\\\/strong\u003e\u003cbr\\\/\u003e\u003cbr\\\/\u003eSkip, reschedule, edit, or cancel deliveries anytime, based on your needs."), 9774 "tooltipDescriptionOnPrepaidPlan": appstleStringSetting("\u003cb\u003ePrepaid Plan Details\u003c\\\/b\u003e\u003c\\\/br\u003e Total price: {{totalPrice}} ( Price for every delivery: {{pricePerDelivery}})"), 9775 "tooltipDescriptionOnMultipleDiscount": appstleStringSetting("\u003cb\u003eDiscount Details\u003c\\\/b\u003e\u003cbr\\\/\u003eAn initial discount of {{discountOne}} will be applied to your first subscription!"), 9776 "manualTranslation": appstleStringSetting("false"), 9777 "tooltipDescriptionCustomization": appstleStringSetting("{{{defaultTooltipDescription}}} \u003c\\\/br\u003e {{{prepaidDetails}}} \u003c\\\/br\u003e {{{discountDetails}}}"), 9778 "orderStatusManageSubscriptionTitle": appstleStringSetting("Subscription"), 9779 "orderStatusManageSubscriptionDescription": appstleStringSetting("Continue to your account to view and manage your subscriptions. Please use the same email address that you used to buy the subscription."), 9780 "orderStatusManageSubscriptionButtonText": appstleStringSetting("Manage your subscription"), 9781 "subscriptionOptionSelectedByDefault" : appstleJsonSetting("false"), 9782 "totalPricePerDeliveryText" : appstleStringSetting("{{prepaidPerDeliveryPrice}}\\\/delivery"), 9783 "memberOnlySellingPlansJson": appstleJsonSetting("{}"), 9784 "nonMemberOnlySellingPlansJson": appstleJsonSetting("{}"), 9785 "sellingPlansJson": appstleJsonSetting("[{\"frequencyCount\":1,\"frequencyInterval\":\"MONTH\",\"billingFrequencyCount\":1,\"billingFrequencyInterval\":\"MONTH\",\"frequencyName\":\"Monthly Subscription\",\"frequencyDescription\":\"\",\"discountOffer\":10.0,\"afterCycle1\":0,\"discountType\":\"PERCENTAGE\",\"discountEnabled\":true,\"discountEnabledMasked\":true,\"id\":\"gid:\/\/shopify\/SellingPlan\/6575325437\",\"frequencyType\":\"ON_PURCHASE_DAY\",\"specificDayEnabled\":false,\"cutOff\":0,\"prepaidFlag\":\"false\",\"idNew\":\"gid:\/\/shopify\/SellingPlan\/6575325437\",\"planType\":\"PAY_AS_YOU_GO\",\"deliveryPolicyPreAnchorBehavior\":\"ASAP\",\"freeTrialEnabled\":false,\"memberOnly\":false,\"nonMemberOnly\":false,\"formFieldJson\":\"[]\",\"frequencySequence\":0,\"groupName\":\"monthly\",\"groupId\":3198583037,\"repeatingCycle\":false,\"defaultSelectedPlan\":false,\"frequencyNameTranslations\":{},\"inventoryPolicyReserve\":\"ON_SALE\",\"appstleCycles\":[]}]"), 9786 "widgetEnabled": appstleJsonSetting("true"), 9787 "showFreeGiftPrice" : appstleJsonSetting("true"), 9788 "showFreeGiftComparePrice" : appstleJsonSetting("true"), 9789 "enableFreeGiftLayout" : appstleJsonSetting("true"), 9790 "freeGiftLabelText": appstleStringSetting("+ Free {{productName}}"), 9791 "freeGiftBadgeText": appstleStringSetting(""), 9792 "showTooltip" : appstleJsonSetting("true"), 9793 "showCartWidgetOnBundleItems" : appstleJsonSetting("false"), 9794 "prepaidOptionSelectedByDefault" : appstleJsonSetting("false"), 9795 "disablePassingSellingPlanAsLineProperties" : appstleJsonSetting("true"), 9796 "updateThemePrice" : appstleJsonSetting("false"), 9797 "sortByDefaultSequence": appstleJsonSetting("false"), 9798 "showSubOptionBeforeOneTime": appstleJsonSetting("false"), 9799 "detectVariantFromURLParams": appstleJsonSetting("false"), 9800 "disableQueryParamsUpdate": appstleJsonSetting("false"), 9801 "showStaticTooltip": appstleJsonSetting("false"), 9802 "showAppstleLink": appstleJsonSetting("true"), 9803 "sellingPlanTitleText" : appstleStringSetting("{{sellingPlanName}} ({{sellingPlanPrice}}\\\/delivery)"), 9804 "oneTimePriceText" : appstleStringSetting("{{price}}"), 9805 "selectedPayAsYouGoSellingPlanPriceText" : appstleStringSetting("{{price}}"), 9806 "selectedPrepaidSellingPlanPriceText" : appstleStringSetting(" {{totalPrice}}"), 9807 "selectedDiscountFormat" : appstleStringSetting("SAVE {{selectedDiscountPercentage}}"), 9808 "manageSubscriptionBtnFormat" : appstleStringSetting("\u003ca href='https:\\\/\\\/shopify.com\\\/96879509794\\\/account\\\/profile' class='appstle_manageSubBtn' \u003e\u003cbutton class='btn' style='padding: 2px 20px'\u003e{{manageSubscriptionButtonText}}\u003c\\\/button\u003e\u003c\\\/a\u003e\u003cbr\u003e\u003cbr\u003e"), 9809 "manageSubscriptionUrl" : appstleStringSetting("https:\\\/\\\/www.soulflower.in\\\/apps\\\/subscriptions"), 9810 "appstlePlanId": appstleJsonSetting("161"),
9811 "showCheckoutSubscriptionBtn": appstleJsonSetting("true"), 9812 "priceSelector": appstleStringSetting(""), 9813 "reloadPriceSelector": appstleStringSetting(""), 9814 "landingPagePriceSelector": appstleStringSetting(""), 9815 "quickViewClickSelector": appstleStringSetting(""), 9816 "badgeTop": appstleStringSetting(""), 9817 "pricePlacement": appstleStringSetting("BEFORE"), 9818 "disableLoadingJquery": appstleJsonSetting("false"), 9819 "widgetEnabledOnSoldVariant": appstleStringSetting("true"), 9820 "switchRadioButtonWidget": appstleJsonSetting("false"), 9821 "appstlePlanName": appstleStringSetting("FREE"), 9822 "appstlePlanFeatures": appstleJsonSetting("{\"accessSplitContract\":false,\"enableExternalApi\":false,\"enableNextBillingDateModification\":false,\"enableStorefrontAnalyticsForwarding\":false,\"enableQuickActions\":false,\"accessSubscriptionActivityLogs\":true,\"analytics\":true,\"enableCustomEmailHtml\":false,\"accessAdvanceSubscriptionPlanOptions\":false,\"enableServerSideConversionTracking\":false,\"accessQuickCheckout\":false,\"enableOrderConsolidation\":false,\"enableCancellationFlow\":false,\"enableCustomEmailDomain\":false,\"enableInventoryManagement\":false,\"enableAddToExistingSubscription\":false,\"enableBackupPaymentMethodRetry\":false,\"accessResendEmail\":false,\"enableContractPriceModification\":false,\"enableTrackInventoryInSingleBAB\":false,\"enableCartWidget\":false,\"enableCancellationManagement\":false,\"enableAdminNotificationAccess\":false,\"enableProductSwapAutomation\":false,\"enableCampaigns\":false,\"enableAddressSync\":false,\"webhookAccess\":false,\"enableAutoSync\":false,\"enableDunningManagement\":true,\"accessBundling\":false,\"enableShippingProfiles\":true,\"accessAdvancedCustomerPortalSettings\":false,\"enableExportActivityLog\":true,\"accessOneTimeProductUpsells\":false,\"enableImmediatePlaceOrder\":false,\"enableResendEmail\":false,\"enableSummaryReports\":false,\"accessManualSubscriptionCreation\":false,\"enablePrepaidPayAsYouGo\":false,\"enableBillingIntervalChange\":false,\"subscriptionOrderAmount\":500,\"enableAutomation\":false,\"enablePhasedRetry\":false,\"enablePriceSync\":false,\"accessCustomerPortalProductUpsells\":false,\"accessWidgetDesignOptions\":false,\"accessSubscriberLoyaltyFeatures\":false,\"enableWidgetPlacement\":false,\"accessBuildABox\":false}"), 9823 "formMappingAttributeName": appstleStringSetting(""), 9824 "formMappingAttributeSelector": appstleStringSetting(""), 9825 "quickViewModalPollingSelector": appstleStringSetting(""), 9826 "scriptLoadDelay": appstleStringSetting("0"), 9827 "formatMoneyOverride": appstleStringSetting("false"), 9828 "enableAddToExistingSubscriptionFeature": appstleStringSetting("false"), 9829 "displayAddToExistingSubscriptionButtonForNotLoggedInV2": appstleStringSetting(null), 9830 "showAddToSubscriptionButtonOnlyOnSubscriptionProducts": appstleStringSetting("false"), 9831 "appstle_app_proxy_path_prefix": appstleStringSetting("apps\\\/subscriptions"), 9832 "updatePriceOnQuantityChange": appstleStringSetting(""), 9833 "widgetParentSelector": appstleStringSetting(""), 9834 "quantitySelector": appstleStringSetting(""), 9835 "enableAddJSInterceptor": appstleStringSetting("true"), 9836 "isDevEnabled": appstleJsonSetting(false), 9837 "forceReloadWidgetSelector": appstleStringSetting(""), 9838 "forceReloadOnFreqChange": appstleJsonSetting("false"), 9839 "showPrepaidPlanSeparately": appstleJsonSetting("true"), 9840 "debugLogsEnabled": appstleJsonSetting(false), 9841 "isUseStorefrontAPI": appstleJsonSetting(true), 9842 "reBuyEnabled": appstleStringSetting("false"), 9843 "loyaltyDetailsLabelText": appstleStringSetting("Loyalty Details"), 9844 "loyaltyPerkDescriptionTextV2": appstleStringSetting("\u003cdiv\u003e {{#isDiscountTypeFreeProduct}} \u003cdiv style='display: flex; align-items: center;'\u003e \u003cdiv class='appstle-dot'\u003e \u003c\\\/div\u003e \u003cdiv class='appstle-reward-content'\u003e \u003cdiv class='appstle-reward-description'\u003e {{^isZeroBillingCycle}} \u003cspan class='appstle-loyalty-billing-cycle'\u003e Get a free {{freeProductName}} worth of {{productPrice}} on your \u003cspan class='appstle-loyalty-billing-cycle-count'\u003e{{{billingCycleBlock}}}\u003c\\\/span\u003e order \u003c\\\/span\u003e {{\\\/isZeroBillingCycle}} {{#isZeroBillingCycle}} \u003cspan class='appstle-free-product-loyalty'\u003e Get a free {{freeProductName}} worth of {{productPrice}} with your \u003cspan class='appstle-loyalty-billing-cycle-count'\u003e1st\u003c\\\/span\u003e order \u003c\\\/span\u003e {{\\\/isZeroBillingCycle}} \u003c\\\/div\u003e \u003c\\\/div\u003e \u003c\\\/div\u003e {{\\\/isDiscountTypeFreeProduct}} {{#isDiscountTypePercentage}} {{#isPerkOnward}}
9844 \u003cdiv class='appstle-reward-items'\u003e \u003cdiv class='appstle-dot'\u003e \u003c\\\/div\u003e \u003cdiv class='appstle-reward-content'\u003e \u003cdiv class='appstle-reward-description'\u003e Save \u003cspan class='appstle-loyalty-discount'\u003e \u003cspan class='appstle-precentage-loyalty'\u003e{{{discount}}}% off\u003c\\\/span\u003e \u003c\\\/span\u003e on \u003cspan class='appstle-loyalty-billing-cycle'\u003e \u003cspan class='appstle-loyalty-billing-cycle-count'\u003e{{{billingCycleBlock}}}\u003c\\\/span\u003e order and onwards\u003c\\\/span\u003e \u003c\\\/div\u003e \u003c\\\/div\u003e \u003c\\\/div\u003e {{\\\/isPerkOnward}} {{\\\/isDiscountTypePercentage}} {{#isDiscountTypePercentage}} {{#isPerkRange}} \u003cdiv class='appstle-reward-items'\u003e \u003cdiv class='appstle-dot'\u003e \u003c\\\/div\u003e \u003cdiv class='appstle-reward-content'\u003e \u003cdiv class='appstle-reward-description'\u003e Save \u003cspan class='appstle-loyalty-discount'\u003e \u003cspan class='appstle-precentage-loyalty'\u003e{{{discount}}}% off\u003c\\\/span\u003e \u003c\\\/span\u003e from \u003cspan class='appstle-loyalty-billing-cycle'\u003e \u003cspan class='appstle-loyalty-billing-cycle-count'\u003e{{{billingCycleBlock}}}\u003c\\\/span\u003e to \u003cspan class='appstle-loyalty-billing-cycle-count'\u003e{{{isRangeEnd}}}\u003c\\\/span\u003e order\u003c\\\/span\u003e \u003c\\\/div\u003e {{\\\/isPerkRange}} {{\\\/isDiscountTypePercentage}} {{#isDiscountTypePercentage}} {{#onlyApplyOnThis}} \u003cdiv class='appstle-reward-items'\u003e \u003cdiv class='appstle-dot'\u003e \u003c\\\/div\u003e \u003cdiv class='appstle-reward-content'\u003e \u003cdiv class='appstle-reward-description'\u003e Save \u003cspan class='appstle-loyalty-discount'\u003e \u003cspan class='appstle-precentage-loyalty'\u003e{{{discount}}}% off\u003c\\\/span\u003e \u003c\\\/span\u003e for the \u003cspan class='appstle-loyalty-billing-cycle'\u003e \u003cspan class='appstle-loyalty-billing-cycle-count'\u003e{{{billingCycleBlock}}}\u003c\\\/span\u003e order\u003c\\\/span\u003e \u003c\\\/div\u003e \u003c\\\/div\u003e \u003c\\\/div\u003e {{\\\/onlyApplyOnThis}} {{\\\/isDiscountTypePercentage}} {{#isDiscountTypeShipping}} {{#isPerkOnward}} \u003cdiv class='appstle-reward-items'\u003e \u003cdiv class='appstle-dot'\u003e \u003c\\\/div\u003e \u003cdiv class='appstle-reward-content'\u003e \u003cdiv class='appstle-reward-description'\u003eShipping at \u003cspan class='appstle-loyalty-discount'\u003e \u003cspan class='appstle-shipping-loyalty'\u003e{{{formatDiscountedPrice}}}\u003c\\\/span\u003e \u003c\\\/span\u003e on \u003cspan class='appstle-loyalty-billing-cycle'\u003e \u003cspan class='appstle-loyalty-billing-cycle-count'\u003e{{{billingCycleBlock}}}\u003c\\\/span\u003e order and onwards\u003c\\\/span\u003e \u003c\\\/div\u003e \u003c\\\/div\u003e \u003c\\\/div\u003e {{\\\/isPerkOnward}} {{\\\/isDiscountTypeShipping}} {{#isDiscountTypeShipping}} {{#isPerkRange}} \u003cdiv class='appstle-reward-items'\u003e \u003cdiv class='appstle-dot'\u003e \u003c\\\/div\u003e \u003cdiv class='appstle-reward-content'\u003e \u003cdiv class='appstle-reward-description'\u003e Get \u003cspan class='appstle-loyalty-discount'\u003eshipping \u003cspan class='appstle-shipping-loyalty'\u003e{{{formatDiscountedPrice}}}\u003c\\\/span\u003e off \u003c\\\/span\u003e from \u003cspan class='appstle-loyalty-billing-cycle'\u003e{{{billingCycleBlock}}} to {{{isRangeEnd}}} order\u003c\\\/span\u003e \u003c\\\/div\u003e \u003c\\\/div\u003e \u003c\\\/div\u003e {{\\\/isPerkRange}} {{\\\/isDiscountTypeShipping}} {{#isDiscountTypeShipping}} {{#onlyApplyOnThis}} \u003cdiv class='appstle-reward-items'\u003e \u003cdiv class='appstle-dot'\u003e \u003c\\\/div\u003e \u003cdiv class='appstle-reward-content'\u003e \u003cdiv class='appstle-reward-description'\u003eGet shipping at\u003cspan class='appstle-loyalty-discount'\u003e \u003cspan class='appstle-shipping-loyalty'\u003e{{{formatDiscountedPrice}}}\u003c\\\/span\u003e \u003c\\\/span\u003e for the \u003cspan class='appstle-loyalty-billing-cycle'\u003e \u003cspan class='appstle-loyalty-billing-cycle-count'\u003e{{{billingCycleBlock}}}\u003c\\\/span\u003e order\u003c\\\/span\u003e \u003c\\\/div\u003e \u003c\\\/div\u003e \u003c\\\/div\u003e {{\\\/onlyApplyOnThis}} {{\\\/isDiscountTypeShipping}} {{#isDiscountTypeFixed}} {{#isPerkOnward}}
9844 \u003cdiv class='appstle-reward-items'\u003e \u003cdiv class='appstle-dot'\u003e \u003c\\\/div\u003e \u003cdiv class='appstle-reward-content'\u003e \u003cdiv class='appstle-reward-description'\u003e Get \u003cspan class='appstle-loyalty-discount'\u003e{{{formatDiscountedPrice}}}\u003c\\\/span\u003e off on \u003cspan class='appstle-loyalty-billing-cycle'\u003e{{{billingCycleBlock}}} order and onwards\u003c\\\/span\u003e \u003c\\\/div\u003e \u003c\\\/div\u003e \u003c\\\/div\u003e {{\\\/isPerkOnward}} {{\\\/isDiscountTypeFixed}} {{#isDiscountTypeFixed}} {{#isPerkRange}} \u003cdiv class='appstle-reward-items'\u003e \u003cdiv class='appstle-dot'\u003e \u003c\\\/div\u003e \u003cdiv class='appstle-reward-content'\u003e \u003cdiv class='appstle-reward-description'\u003e Get \u003cspan class='appstle-loyalty-discount'\u003e{{{formatDiscountedPrice}}}\u003c\\\/span\u003e off from \u003cspan class='appstle-loyalty-billing-cycle'\u003e{{{billingCycleBlock}}} order to {{{isRangeEnd}}} order\u003c\\\/span\u003e. \u003c\\\/div\u003e \u003c\\\/div\u003e \u003c\\\/div\u003e {{\\\/isPerkRange}} {{\\\/isDiscountTypeFixed}} {{#isDiscountTypeFixed}} {{#onlyApplyOnThis}} \u003cdiv class='appstle-reward-items'\u003e \u003cdiv class='appstle-dot'\u003e \u003c\\\/div\u003e \u003cdiv class='appstle-reward-content'\u003e \u003cdiv class='appstle-reward-description'\u003e Save \u003cspan class='appstle-loyalty-discount'\u003e \u003cspan class='appstle-precentage-loyalty'\u003e{{{formatDiscountedPrice}}}\u003c\\\/span\u003e \u003c\\\/span\u003e on your \u003cspan class='appstle-loyalty-billing-cycle-count'\u003e{{{billingCycleBlock}}}\u003c\\\/span\u003e order only. \u003c\\\/div\u003e \u003c\\\/div\u003e \u003c\\\/div\u003e {{\\\/onlyApplyOnThis}} {{\\\/isDiscountTypeFixed}} {{#isDiscountTypeFixedPrice}} {{#isPerkOnward}} \u003cdiv class='appstle-reward-items'\u003e \u003cdiv class='appstle-dot'\u003e \u003c\\\/div\u003e \u003cdiv class='appstle-reward-content'\u003e \u003cdiv class='appstle-reward-description'\u003e Get this product at \u003cspan class='appstle-loyalty-discount'\u003e{{{formatDiscountedPrice}}}\u003c\\\/span\u003e from \u003cspan class='appstle-loyalty-billing-cycle'\u003e{{{billingCycleBlock}}} order and onwards\u003c\\\/span\u003e. \u003c\\\/div\u003e \u003c\\\/div\u003e \u003c\\\/div\u003e {{\\\/isPerkOnward}} {{\\\/isDiscountTypeFixedPrice}} {{#isDiscountTypeFixedPrice}} {{#isPerkRange}} \u003cdiv class='appstle-reward-items'\u003e \u003cdiv class='appstle-dot'\u003e \u003c\\\/div\u003e \u003cdiv class='appstle-reward-content'\u003e \u003cdiv class='appstle-reward-description'\u003e Get this product at \u003cspan class='appstle-loyalty-discount'\u003e{{{formatDiscountedPrice}}}\u003c\\\/span\u003e from \u003cspan class='appstle-loyalty-billing-cycle'\u003e{{{billingCycleBlock}}} to {{{isRangeEnd}}} order\u003c\\\/span\u003e. \u003c\\\/div\u003e \u003c\\\/div\u003e \u003c\\\/div\u003e {{\\\/isPerkRange}} {{\\\/isDiscountTypeFixedPrice}} {{#isDiscountTypeFixedPrice}} {{#onlyApplyOnThis}} \u003cdiv class='appstle-reward-items'\u003e \u003cdiv class='appstle-dot'\u003e \u003c\\\/div\u003e \u003cdiv class='appstle-reward-content'\u003e \u003cdiv class='appstle-reward-description'\u003eGet this product at \u003cspan class='appstle-loyalty-discount'\u003e \u003cspan class='appstle-fixed-price-loyalty'\u003e{{{formatDiscountedPrice}}}\u003c\\\/span\u003e \u003c\\\/span\u003e for the \u003cspan class='appstle-loyalty-billing-cycle'\u003e \u003cspan class='appstle-loyalty-billing-cycle-count'\u003e{{{billingCycleBlock}}}\u003c\\\/span\u003e order\u003c\\\/span\u003e.\u003c\\\/div\u003e \u003c\\\/div\u003e \u003c\\\/div\u003e {{\\\/onlyApplyOnThis}} {{\\\/isDiscountTypeFixedPrice}} \u003cstyle\u003e .appstle-loyalty-table-v2{ box-shadow: none !important; border-spacing: 0 5px !important; border-collapse: unset !important; } .appstleLoyaltyTable .appstle-loyalty-table-data{ border-bottom: none !important; background: none !important; padding: 0px !important; } .appstleLoyaltyTable .appstle-loyalty-table-data:hover{ background: none !important;} .appstle-dot { width: 4px; height: 4px; border-radius: 4px; background-color: #282c3f; margin-right: 10px; margin-bottom: 2px; display: inline-block; vertical-align: middle; } .appstle-reward-items{ align-items: center !important; } .appstle-precentage-loyalty, .appstle-loyalty-discount{ font-weight: bold !important; } .appstle-loyalty-table.ugc-iconContainer { padding-left: 5px; } .appstle-loyalty-table.ugc-iconContainer svg { height: 16px; } .appstleLoyaltyTableHeader{ display: flex; } .appstleLoyaltyTableHeader{ display: flex; } .appstle-loyalty-table.ugc-iconContainer { padding-left: 5px; } .appstle-loyalty-table.ugc-iconContainer svg { height: 16px; } .appstle-toggle-more-btn-v2{ cursor:pointer !important; font-size: 12px !important; font-weight: bold !important; color:#ff3f6c !important; } .appstle-toggle-more-row-v2{ background-color: transparent !important; } .appstleLoyaltyTable .appstle-toggle-more-btn-container-v2{ padding: 0px !important; border-bottom: none !important; } .appstleLoyaltyTable .appstle-toggle-more-btn-container-v2:hover{ background: none !important; } .appstleLoyaltyTable .appstle_loyalty_text_v2{ background: none !important; } .appstleLoyaltyTable .appstle-hidden-perks-v2{ background: none !important; } .appstle-loyalty-table.ugc-iconContainer{display: block !important} \u003c\\\/style\u003e \u003c\\\/div\u003e"), 9845 "widgetType": appstleStringSetting("WIDGET_TYPE_7"),
9846 "collectionWidgetType": appstleStringSetting("COMPACT"), 9847 "enableCompactProductPageWidget": appstleJsonSetting("false"), 9848 "enableCartDrawerWidget": appstleJsonSetting(false), 9849 "cartDrawerWidgetStyle": appstleJsonSetting(false), 9850 "cartDrawerWidgetInlineStyle": appstleStringSetting(null), 9851 "cartDrawerWidgetPanelStyle": appstleStringSetting(null), 9852 "cartDrawerWidgetSegmentedStyle": appstleStringSetting(null), 9853 "showOneTimeComparePrice": appstleJsonSetting("false"), 9854 "showCompareAtPriceForSubscription": appstleJsonSetting(false), 9855 "showCombinedSellingPlanCartWidget": appstleJsonSetting("false"), 9856 "combinedCartWidgetSelector": appstleStringSetting(""), 9857 "removeUnsubscribeOption": appstleJsonSetting(false), 9858 "widgetTemplateHtml": "{% raw %}{% endraw %}", 9859 9860 "allWidgetTemplateHtml": "{\"WIDGET_TYPE_1\":\"{% raw %}{% endraw %}\",\"WIDGET_TYPE_6\":\"{% raw %}\u003cdiv id=\\\"appstle-widget-template\\\"\u003e\\n \u003cdiv class=\\\"appstle_sub_widget\\\" id=\\\"appstle_subscription_widget{{widgetId}}\\\"\u003e\\n\u003cdiv class=\\\"appstle_widget_title\\\"\u003e{{{purchaseOptionsText}}}\u003c\/div\u003e\\n \u003cdiv class=\\\"widgetSellingPlanWrapper\\\"\u003e\\n{{^requires_selling_plan}}\\n{{^showSubOptionBeforeOneTime}}\\n \u003cdiv class=\\\"appstle_input_wrapper appstle_onetime_block\\\"\u003e\\n \u003cinput type=\\\"radio\\\" id=\\\"appstle_selling_plan_label_1{{widgetId}}\\\" name=\\\"selling_plan\\\" value=\\\"\\\" class=\\\"appstleSellingPlan{{widgetId}}\\\" {{^subscriptionOptionSelectedDefault}}checked{{\/subscriptionOptionSelectedDefault}}\u003e\\n \u003clabel for=\\\"appstle_selling_plan_label_1{{widgetId}}\\\"\u003e\\n\u003cdiv class=\\\"appstle-selling-plan-name-wrapper\\\"\u003e\\n {{oneTimePuchaseText}}\\n\u003cdiv class=\\\"appstle-cancel-text\\\"\u003e{{{noSubscriptionLabelTextV2}}}\u003c\/div\u003e\\n\u003c\/div\u003e\\n \u003cdiv class=\\\"appstle-selling-plan-detail-wrapper\\\"\u003e\\n\u003cdiv class=\\\"appstle_span_wrapper\\\"\u003e\\n{{#showOneTimeComparePrice}}\\n\u003cspan class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_onetime_amount_compare\\\"\u003e\\n {{{oneTimePuchaseComparePriceAmount}}}\\n\u003c\/span\u003e\\n{{\/showOneTimeComparePrice}}\\n\\n\u003cspan class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_onetime_amount\\\"\u003e{{{oneTimePuchaseAmount}}}\u003c\/span\u003e\u003c\/div\u003e\\n\u003c\/div\u003e\\n \u003c\/label\u003e\\n \\n \u003c\/div\u003e\\n{{\/showSubOptionBeforeOneTime}}\\n{{\/requires_selling_plan}}\\n {{#sellingPlanVariants}}\\n \u003cdiv class=\\\"appstle_input_wrapper\\\"\u003e\\n \\n \u003cinput type=\\\"radio\\\" class=\\\"appstleSellingPlan{{widgetId}}\\\" id=\\\"{{sellingPlanId}}\\\" value=\\\"{{sellingPlanId}}\\\" name=\\\"selling_plan\\\" {{#isChecked}}checked{{\/isChecked}}\u003e\\n{{^prepaidFlag}}\\n \u003clabel for=\\\"{{sellingPlanId}}\\\"\u003e\\n\u003cdiv class=\\\"appstle-selling-plan-name-wrapper appstle-selling-plan-label-name\\\"\u003e\\n {{{name}}}\\n\u003cdiv class=\\\"appstle-cancel-text\\\"\u003e{{{cancelAnytimeLabelTextV2}}}\u003c\/div\u003e\\n\u003c\/div\u003e\\n\u003cdiv class=\\\"appstle-selling-plan-detail-wrapper\\\"\u003e\\n\u003cdiv class=\\\"appstle_span_wrapper\\\"\u003e\\n \u003cspan class=\\\"appstle_lowercase appstle_sellingPlan_formattedCompareAtPrice appstle_price_block\\\"\u003e{{{formattedCompareAtPrice}}}\u003c\/span\u003e\\n \u003cspan class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_price_block\\\"\u003e{{{formattedPrice}}}\u003c\/span\u003e\\n\\n\\n\u003c\/div\u003e \\n\u003cspan class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_formattext_block\\\"\u003e\u003c\/span\u003e\\n{{#showPricePerDay}}\u003cdiv class=\\\"appstle-perday-price\\\"\u003e{{{pricePerDay}}}
9860\u003c\/div\u003e{{\/showPricePerDay}}\\n\u003cdiv class=\\\"appstle-frequency-description\\\"\u003e\\n{{{frequencyDescription}}} \\n\u003c\/div\u003e\\n \u003c\/div\u003e\\n \u003c\/label\u003e\\n{{#showFormattedDiscountText}}\\n \u003cspan class=\\\"appstle_sellingPlan_discountText\\\"\u003e{{{formattedDiscountText}}}\u003c\/span\u003e\\n{{\/showFormattedDiscountText}}\\n\u003cdiv class=\\\"appstle-sm-hide appstle-frequency-description\\\"\u003e{{{frequencyDescription}}} \u003c\/div\u003e \\n{{\/prepaidFlag}}\\n{{#prepaidFlag}}\\n\u003clabel for=\\\"{{sellingPlanId}}\\\"\u003e\\n\u003cdiv class=\\\"appstle-selling-plan-name-wrapper appstle-selling-plan-label-name\\\"\u003e\\n {{{name}}}\\n\u003cdiv class=\\\"appstle-cancel-text\\\"\u003e{{{cancelAnytimeLabelTextV2}}}\u003c\/div\u003e\\n\u003c\/div\u003e\\n\u003cdiv class=\\\"appstle-selling-plan-detail-wrapper\\\"\u003e\\n\u003cdiv class=\\\"appstle_span_wrapper\\\"\u003e\\n \u003cspan class=\\\"appstle_lowercase appstle_sellingPlan_formattedCompareAtPrice appstle_price_block\\\"\u003e{{{formattedCompareAtPrice}}}\u003c\/span\u003e\\n \u003cspan class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_price_block\\\"\u003e{{{totalPrice}}}\u003c\/span\u003e\\n\\n\u003c\/div\u003e \\n\u003cspan class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_discount_block appstle_formattedPrepaidPerDeliveryPriceText\\\"\u003e{{{formattedPrepaidPerDeliveryPriceText}}}\u003c\/span\u003e\\n {{#showPricePerDay}}\u003cdiv class=\\\"appstle-perday-price\\\"\u003e{{{pricePerDay}}}\u003c\/div\u003e{{\/showPricePerDay}}\\n\u003cdiv class=\\\"\\\"\u003e\\n\u003cdiv class=\\\"appstle-frequency-description\\\"\u003e\\n{{{frequencyDescription}}} \\n\u003c\/div\u003e\\n\u003c\/div\u003e\\n\u003c\/div\u003e\\n\u003c\/label\u003e\\n{{#showFormattedDiscountText}}\\n \u003cspan class=\\\"appstle_sellingPlan_discountText\\\"\u003e{{{formattedDiscountText}}}\u003c\/span\u003e\\n{{\/showFormattedDiscountText}}\\n\u003cdiv class=\\\"appstle-sm-hide appstle-frequency-description\\\"\u003e{{{frequencyDescription}}} \u003c\/div\u003e \\n\\n{{\/prepaidFlag}}\\n \\n \u003c\/div\u003e\\n {{\/sellingPlanVariants}}\\n{{^requires_selling_plan}}\\n{{#showSubOptionBeforeOneTime}}\\n \u003cdiv class=\\\"appstle_input_wrapper appstle_onetime_block\\\"\u003e\\n \u003cinput type=\\\"radio\\\" id=\\\"appstle_selling_plan_label_1{{widgetId}}\\\" name=\\\"selling_plan\\\" value=\\\"\\\" class=\\\"appstleSellingPlan{{widgetId}}\\\" {{^subscriptionOptionSelectedDefault}}checked{{\/subscriptionOptionSelectedDefault}}\u003e\\n \u003clabel for=\\\"appstle_selling_plan_label_1{{widgetId}}\\\"\u003e\\n\u003cdiv class=\\\"appstle-selling-plan-name-wrapper\\\"\u003e\\n {{oneTimePuchaseText}}\\n\u003cdiv class=\\\"appstle-cancel-text\\\"\u003e{{{noSubscriptionLabelTextV2}}}\u003c\/div\u003e\\n\u003c\/div\u003e\\n\u003cdiv class=\\\"appstle-selling-plan-detail-wrapper\\\"\u003e\\n\u003cspan class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_onetime_amount_compare\\\"\u003e{{{oneTimePuchaseComparePriceAmount}}}\u003c\/span\u003e\\n \u003cspan class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_onetime_amount\\\"\u003e{{{oneTimePuchaseAmount}}}\u003c\/span\u003e\\n\\n\u003c\/div\u003e\\n \u003c\/label\u003e\\n \\n \u003c\/div\u003e\\n{{\/showSubOptionBeforeOneTime}}\\n{{\/requires_selling_plan}}\\n \u003c\/div\u003e\\n{{#showStaticTooltip}}\\n\u003cdiv class=\\\"appstle_tooltip_wrapper_static\\\"\u003e {{{toolTipDescription}}}\u003c\/div\u003e\\n{{\/showStaticTooltip}}\\n{{#showTooltip}}\\n\u003cdiv class=\\\"appstle-tootltip-parent\\\"\u003e\\n \u003cdiv data-appstle-icon=\\\"\\\" class=\\\"appstle_tooltip_wrapper\\\"\u003e\\n \u003csvg width=\\\"90\\\" height=\\\"90\\\" viewBox=\\\"0 0 90 90\\\" xmlns=\\\"http:\/\/www.w3.org\/2000\/svg\\\" class=\\\"tooltip_subscription_svg\\\"\u003e\\n \u003cpath\\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
9860635 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 \u003e\u003c\/path\u003e\\n \u003c\/svg\u003e\\n \u003cspan class=\\\"appstle_tooltip_title\\\"\u003e{{{tooltipTitle}}}\u003c\/span\u003e\\n \u003c\/div\u003e\\n\u003cdiv class=\\\"appstle_tooltip\\\"\u003e\\n \u003cdiv class=\\\"appstle_tooltip_content\\\"\u003e\\n {{{toolTipDescription}}}\\n \u003c\/div\u003e\\n {{#showAppstleLink}}\\n \u003cdiv class=\\\"appstle_tooltip_appstle\\\"\u003e\\n \u003ca href=\\\"https:\/\/appstle.com\\\" class=\\\"appstle_link\\\" target=\\\"_blank\\\"\u003e\\n POWERED BY APPSTLE \u003c\/a\u003e\\n \u003c\/div\u003e\\n {{\/showAppstleLink}}\\n \u003c\/div\u003e\\n\u003c\/div\u003e\\n{{\/showTooltip}}\\n\u003cstyle\u003e\\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;\\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\u003c\/style\u003e\\n\u003cstyle\u003e\\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;
9860\\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;\\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 \u003e * {\\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\u003c\/style\u003e\\n\u003c\/div\u003e{% endraw %}\",\"WIDGET_TYPE_7\":\"{% raw %}{% endraw %}\",\"WIDGET_TYPE_8\":\"{% raw %}{% endraw %}\",\"WIDGET_TYPE_2\":\"{% raw %}{% endraw %}\",\"WIDGET_TYPE_3\":\"{% raw %}
9860\u003cdiv id=\\\"appstle-widget-template\\\"\u003e\\n \u003cdiv class=\\\"appstle_sub_widget\\\" id=\\\"appstle_subscription_widget{{widgetId}}\\\"\u003e\\n\u003cdiv class=\\\"appstle_widget_title\\\"\u003e{{{purchaseOptionsText}}}\u003c\/div\u003e\\n \u003cdiv class=\\\"widgetSellingPlanWrapper appstle_subscription_wrapper\\\"\u003e\\n{{#showSubOptionBeforeOneTime}}\\n {{#sellingPlanVariants}}\\n \u003cdiv class=\\\"appstle_input_wrapper appstle_subscription_option\\\"\u003e\\n \u003cinput type=\\\"radio\\\" class=\\\"appstleSellingPlan{{widgetId}}\\\" id=\\\"{{sellingPlanId}}\\\" value=\\\"{{sellingPlanId}}\\\" name=\\\"selling_plan\\\" {{#isChecked}}checked{{\/isChecked}}\u003e\\n {{^prepaidFlag}}\\n \u003clabel for=\\\"{{sellingPlanId}}\\\" class=\\\"appstle_widget_three\\\"\u003e\\n {{{name}}}\\n\u003cdiv class=\\\"appstle_span_wrapper\\\"\u003e\\n \u003cspan class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_price_block\\\"\u003e{{{formattedPrice}}}\u003c\/span\u003e\\n{{#showSecondFormattedDiscountText}}{{^isFixedPrice}}\u003cspan class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_discount_block\\\"\u003e\u0026nbsp;({{{secondFormattedDiscountText}}})\u003c\/span\u003e {{\/isFixedPrice}}{{\/showSecondFormattedDiscountText}}\\n\u003c\/div\u003e\\n \\n \u003c\/label\u003e\\n {{\/prepaidFlag}}\\n {{#prepaidFlag}}\\n \u003clabel for=\\\"{{sellingPlanId}}\\\" class=\\\"appstle_widget_three\\\"\u003e\\n {{{name}}}\\n\u003cdiv class=\\\"appstle_span_wrapper\\\"\u003e\\n \u003cspan class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_price_block\\\"\u003e{{{totalPrice}}}\u003c\/span\u003e\\n {{#showSecondFormattedDiscountText}}{{^isFixedPrice}}\u003cspan class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_discount_block\\\"\u003e\u0026nbsp;({{{secondFormattedDiscountText}}})\u003c\/span\u003e{{\/isFixedPrice}}{{\/showSecondFormattedDiscountText}}\\n {{#formattedPrepaidPerDeliveryPriceText}}\u003cspan class=\\\"appstle_formattedPrepaidPerDeliveryPriceText\\\"\u003e\u0026nbsp;({{{formattedPrepaidPerDeliveryPriceText}}})\u003c\/span\u003e{{\/formattedPrepaidPerDeliveryPriceText}}\\n \u003c\/div\u003e\\n \\n \u003c\/label\u003e\\n {{\/prepaidFlag}}\\n \\n \u003c\/div\u003e\\n {{\/sellingPlanVariants}}\\n{{\/showSubOptionBeforeOneTime}}\\n {{^requires_selling_plan}}\\n \u003cdiv class=\\\"appstle_input_wrapper appstle_onetime\\\"\u003e\\n \u003cinput type=\\\"radio\\\" id=\\\"appstle_selling_plan_label_1{{widgetId}}\\\" name=\\\"selling_plan\\\" value=\\\"{{sellingPlanId}}\\\" class=\\\"appstleSellingPlan{{widgetId}}\\\" {{^subscriptionOptionSelectedDefault}}checked{{\/subscriptionOptionSelectedDefault}}\u003e\\n \u003clabel for=\\\"appstle_selling_plan_label_1{{widgetId}}\\\" class=\\\"appstle_widget_three\\\"\u003e\\n {{oneTimePuchaseText}}\\n \u003cspan class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_onetime_amount\\\"\u003e\\n{{#showOneTimeComparePrice}}\\n\u003cspan class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_onetime_amount_compare\\\"\u003e\\n {{{oneTimePuchaseComparePriceAmount}}}\\n\u003c\/span\u003e\\n{{\/showOneTimeComparePrice}}\\n{{{oneTimePuchaseAmount}}}\u003c\/span\u003e\\n \u003c\/label\u003e\\n \\n \u003c\/div\u003e\\n {{\/requires_selling_plan}}\\n{{^showSubOptionBeforeOneTime}}\\n {{#sellingPlanVariants}}\\n \u003cdiv class=\\\"appstle_input_wrapper appstle_subscription_option\\\"\u003e\\n \u003cinput type=\\\"radio\\\" class=\\\"appstleSellingPlan{{widgetId}}\\\" id=\\\"{{sellingPlanId}}\\\" value=\\\"{{sellingPlanId}}\\\" name=\\\"selling_plan\\\" {{#isChecked}}checked{{\/isChecked}}\u003e\\n {{^prepaidFlag}}\\n \u003clabel for=\\\"{{sellingPlanId}}\\\" class=\\\"appstle_widget_three\\\"\u003e\\n {{{name}}}\\n\u003cdiv class=\\\"appstle_span_wrapper\\\"\u003e\\n \u003cspan class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_price_block\\\"\u003e{{{formattedPrice}}}\u003c\/span\u003e\\n{{#showSecondFormattedDiscountText}}{{^isFixedPrice}}\u003cspan class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_discount_block\\\"\u003e\u0026nbsp;({{{secondFormattedDiscountText}}})\u003c\/span\u003e {{\/isFixedPrice}}{{\/showSecondFormattedDiscountText}}\\n\u003c\/div\u003e\\n \\n \u003c\/label\u003e\\n {{\/prepaidFlag}}\\n {{#prepaidFlag}}\\n \u003clabel for=\\\"{{sellingPlanId}}\\\" class=\\\"appstle_widget_three\\\"\u003e\\n {{{name}}}\\n\u003cdiv class=\\\"appstle_span_wrapper\\\"\u003e\\n \u003cspan class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_price_block\\\"\u003e{{{totalPrice}}}\u003c\/span\u003e\\n {{#showSecondFormattedDiscountText}}{{^isFixedPrice}}\u003cspan class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_discount_block\\\"\u003e\u0026nbsp;({{{secondFormattedDiscountText}}})\u003c\/span\u003e{{\/isFixedPrice}}{{\/showSecondFormattedDiscountText}}\\n {{#formattedPrepaidPerDeliveryPriceText}}\u003cspan class=\\\"appstle_formattedPrepaidPerDeliveryPriceText\\\"\u003e\u0026nbsp;({{{formattedPrepaidPerDeliveryPriceText}}})\u003c\/span\u003e{{\/formattedPrepaidPerDeliveryPriceText}}\\n \u003c\/div\u003e\\n \\n \u003c\/label\u003e\\n {{\/prepaidFlag}}\\n \\n \u003c\/div\u003e\\n {{\/sellingPlanVariants}}\\n{{\/showSubOptionBeforeOneTime}}\\n \u003c\/div\u003e\\n{{#showStaticTooltip}}\\n\u003cdiv class=\\\"appstle_tooltip_wrapper_static\\\"\u003e{{{toolTipDescription}}}\u003c\/div\u003e\\n{{\/showStaticTooltip}}\\n{{#showTooltip}}\\n \u003cdiv data-appstle-icon=\\\"\\\" class=\\\"appstle_tooltip_wrapper\\\"\u003e\\n \u003csvg width=\\\"90\\\" height=\\\"90\\\" viewBox=\\\"0 0 90 90\\\" xmlns=\\\"http:\/\/www.w3.org\/2000\/svg\\\" class=\\\"tooltip_subscription_svg\\\"\u003e\\n \u003cpath\\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
9860635 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 \u003e\u003c\/path\u003e\\n \u003c\/svg\u003e\\n \u003cspan class=\\\"appstle_tooltip_title\\\"\u003e{{{tooltipTitle}}}\u003c\/span\u003e\\n \u003c\/div\u003e\\n\u003cdiv class=\\\"appstle_tooltip appstle_tooltip_hover\\\"\u003e\\n \u003cdiv class=\\\"appstle_tooltip_content\\\"\u003e\\n {{{toolTipDescription}}}\\n \u003c\/div\u003e\\n {{#showAppstleLink}}\\n \u003cdiv class=\\\"appstle_tooltip_appstle\\\"\u003e\\n \u003ca href=\\\"https:\/\/appstle.com\\\" class=\\\"appstle_link\\\" target=\\\"_blank\\\"\u003e\\n POWERED BY APPSTLE\\n \u003c\/a\u003e\\n \u003c\/div\u003e\\n{{\/showAppstleLink}}\\n \u003c\/div\u003e\\n{{\/showTooltip}}\\n\u003cstyle\u003e.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;\\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\u003c\/style\u003e\\n\u003c\/div\u003e{% endraw %}\",\"WIDGET_TYPE_4\":\"{% raw %}
9860\u003cdiv id=\\\"appstle-widget-template\\\"\u003e\\n \u003cdiv class=\\\"appstle_sub_widget\\\" id=\\\"appstle_subscription_widget{{widgetId}}\\\"\u003e\\n\u003cdiv class=\\\"appstle_widget_title\\\"\u003e{{{purchaseOptionsText}}}\u003c\/div\u003e\\n \u003cdiv class=\\\"widgetSellingPlanWrapper\\\"\u003e\\n{{^requires_selling_plan}}\\n{{^showSubOptionBeforeOneTime}}\\n \u003cdiv class=\\\"appstle_input_wrapper\\\"\u003e\\n \u003cinput type=\\\"radio\\\" id=\\\"appstle_selling_plan_label_1{{widgetId}}\\\" name=\\\"selling_plan\\\" value=\\\"\\\" class=\\\"appstleSellingPlan{{widgetId}}\\\" {{^subscriptionOptionSelectedDefault}}checked{{\/subscriptionOptionSelectedDefault}}\u003e\\n \u003clabel for=\\\"appstle_selling_plan_label_1{{widgetId}}\\\"\u003e\\n {{oneTimePuchaseText}}\\n{{#showOneTimeComparePrice}}\\n\u003cspan class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_onetime_amount_compare\\\"\u003e\\n {{{oneTimePuchaseComparePriceAmount}}}\\n\u003c\/span\u003e\\n{{\/showOneTimeComparePrice}}\\n \u003cspan class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_onetime_amount\\\"\u003e{{{oneTimePuchaseAmount}}}\/{{{oneTimeFrequencyText}}}\u003c\/span\u003e\\n \u003c\/label\u003e\\n \u003c\/div\u003e\\n{{\/showSubOptionBeforeOneTime}}\\n{{\/requires_selling_plan}}\\n {{#sellingPlanVariants}}\\n \u003cdiv class=\\\"appstle_input_wrapper\\\"\u003e\\n \u003cspan class=\\\"appstle_sellingPlan_discountText\\\"\u003e{{{formattedDiscountText}}}\u003c\/span\u003e\\n \u003cinput type=\\\"radio\\\" class=\\\"appstleSellingPlan{{widgetId}}\\\" id=\\\"{{sellingPlanId}}\\\" value=\\\"{{sellingPlanId}}\\\" name=\\\"selling_plan\\\" {{#isChecked}}checked{{\/isChecked}}\u003e\\n{{^prepaidFlag}}\\n \u003clabel for=\\\"{{sellingPlanId}}\\\"\u003e\\n {{{name}}}\\n\u003cdiv class=\\\"appstle_span_wrapper\\\"\u003e\\n \u003cspan class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_price_block\\\"\u003e{{{formattedPrice}}}\u003cspan\u003e\\n\u003cspan class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_formattext_block\\\"\u003e\/{{{sellingPlanFrequencyText}}}{{#isFrequencySubsequent}}{{\/isFrequencySubsequent}}\u003c\/span\u003e\\n\u003c\/div\u003e\\n \u003c\/label\u003e\\n{{\/prepaidFlag}}\\n{{#prepaidFlag}}\\n\u003clabel for=\\\"{{sellingPlanId}}\\\"\u003e\\n {{{name}}}\\n\u003cdiv class=\\\"appstle_span_wrapper\\\"\u003e\\n \u003cspan class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_price_block\\\"\u003e{{{totalPrice}}}\u003c\/span\u003e\\n\u003cspan class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_discount_block appstle_formattedPrepaidPerDeliveryPriceText\\\"\u003e\u0026nbsp;{{{formattedPrepaidPerDeliveryPriceText}}}\u003c\/span\u003e\\n\u003c\/div\u003e\\n\u003c\/label\u003e\\n{{\/prepaidFlag}}\\n \u003c\/div\u003e\\n {{\/sellingPlanVariants}}\\n{{^requires_selling_plan}}\\n{{#showSubOptionBeforeOneTime}}\\n \u003cdiv class=\\\"appstle_input_wrapper\\\"\u003e\\n \u003cinput type=\\\"radio\\\" id=\\\"appstle_selling_plan_label_1{{widgetId}}\\\" name=\\\"selling_plan\\\" value=\\\"\\\" class=\\\"appstleSellingPlan{{widgetId}}\\\" {{^subscriptionOptionSelectedDefault}}checked{{\/subscriptionOptionSelectedDefault}}\u003e\\n \u003clabel for=\\\"appstle_selling_plan_label_1{{widgetId}}\\\"\u003e\\n {{oneTimePuchaseText}}\\n{{#showOneTimeComparePrice}}\\n\u003cspan class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_onetime_amount_compare\\\"\u003e\\n {{{oneTimePuchaseComparePriceAmount}}}\\n\u003c\/span\u003e\\n{{\/showOneTimeComparePrice}}\\n \u003cspan class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_onetime_amount\\\"\u003e{{{oneTimePuchaseAmount}}}\/{{{oneTimeFrequencyText}}}\u003c\/span\u003e\\n \u003c\/label\u003e\\n \u003c\/div\u003e\\n{{\/showSubOptionBeforeOneTime}}\\n{{\/requires_selling_plan}}\\n \u003c\/div\u003e\\n{{#showStaticTooltip}}\\n\u003cdiv class=\\\"appstle_tooltip_wrapper_static\\\"\u003e {{{toolTipDescription}}}\u003c\/div\u003e\\n{{\/showStaticTooltip}}\\n{{#showTooltip}}\\n \u003cdiv data-appstle-icon=\\\"\\\" class=\\\"appstle_tooltip_wrapper\\\"\u003e\\n \u003csvg width=\\\"90\\\" height=\\\"90\\\" viewBox=\\\"0 0 90 90\\\" xmlns=\\\"http:\/\/www.w3.org\/2000\/svg\\\" class=\\\"tooltip_subscription_svg\\\"\u003e\\n \u003cpath\\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
9860635 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 \u003e\u003c\/path\u003e\\n \u003c\/svg\u003e\\n \u003cspan class=\\\"appstle_tooltip_title\\\"\u003e{{{tooltipTitle}}}\u003c\/span\u003e\\n \u003c\/div\u003e\\n \u003cdiv class=\\\"appstle_tooltip\\\"\u003e\\n \u003cdiv class=\\\"appstle_tooltip_content\\\"\u003e\\n {{{toolTipDescription}}}\\n \u003c\/div\u003e\\n{{#showAppstleLink}}\\n \u003cdiv class=\\\"appstle_tooltip_appstle\\\"\u003e\\n \u003ca href=\\\"https:\/\/appstle.com\\\" class=\\\"appstle_link\\\" target=\\\"_blank\\\"\u003e\\n POWERED BY APPSTLE\\n \u003c\/a\u003e\\n \u003c\/div\u003e\\n{{\/showAppstleLink}}\\n \u003c\/div\u003e\\n{{\/showTooltip}}\\n\u003cstyle\u003e\\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;\\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\u003c\/style\u003e\\n\u003c\/div\u003e{% endraw %}\",\"WIDGET_TYPE_5\":\"{% raw %}
9860\u003cdiv id=\\\"appstle-widget-template\\\"\u003e\\n \u003cdiv class=\\\"appstle_sub_widget\\\" id=\\\"appstle_subscription_widget{{widgetId}}\\\"\u003e\\n\u003cdiv class=\\\"appstle_widget_title\\\"\u003e{{{purchaseOptionsText}}}\u003c\/div\u003e\\n \u003cdiv class=\\\"widgetSellingPlanWrapper\\\"\u003e\\n{{^showSubOptionBeforeOneTime}}\\n{{^requires_selling_plan}}\\n \u003cdiv class=\\\"appstle_input_wrapper\\\"\u003e\\n \u003cinput type=\\\"radio\\\" id=\\\"appstle_selling_plan_label_1{{widgetId}}\\\" name=\\\"selling_plan\\\" value=\\\"\\\" class=\\\"appstleSellingPlan{{widgetId}}\\\" {{^subscriptionOptionSelectedDefault}}checked{{\/subscriptionOptionSelectedDefault}}\/\u003e\\n \u003clabel for=\\\"appstle_selling_plan_label_1{{widgetId}}\\\"\u003e\\n {{{oneTimePuchaseText}}}\\n \u003c\/label\u003e\\n \\n \u003c\/div\u003e\\n{{\/requires_selling_plan}}\\n{{\/showSubOptionBeforeOneTime}}\\n {{#sellingPlanVariants}}\\n \u003cdiv class=\\\"appstle_input_wrapper\\\"\u003e\\n \u003cinput type=\\\"radio\\\" class=\\\"appstleSellingPlan{{widgetId}}\\\" id=\\\"{{sellingPlanId}}\\\" value=\\\"{{sellingPlanId}}\\\" name=\\\"selling_plan\\\" {{#isChecked}}checked{{\/isChecked}} \/\u003e\\n \u003clabel for=\\\"{{sellingPlanId}}\\\"\u003e\\n {{{name}}}\\n \u003c\/label\u003e\\n \\n \u003c\/div\u003e\\n {{\/sellingPlanVariants}}\\n{{#showSubOptionBeforeOneTime}}\\n{{^requires_selling_plan}}\\n \u003cdiv class=\\\"appstle_input_wrapper\\\"\u003e\\n \u003cinput type=\\\"radio\\\" id=\\\"appstle_selling_plan_label_1{{widgetId}}\\\" name=\\\"selling_plan\\\" value=\\\"\\\" class=\\\"appstleSellingPlan{{widgetId}}\\\" {{^subscriptionOptionSelectedDefault}}checked{{\/subscriptionOptionSelectedDefault}}\/\u003e\\n \u003clabel for=\\\"appstle_selling_plan_label_1{{widgetId}}\\\"\u003e\\n {{{oneTimePuchaseText}}}\\n \u003c\/label\u003e\\n \\n \u003c\/div\u003e\\n{{\/requires_selling_plan}}\\n{{\/showSubOptionBeforeOneTime}}\\n \u003c\/div\u003e\\n{{#showStaticTooltip}}\\n\u003cdiv class=\\\"appstle_tooltip_wrapper_static\\\"\u003e{{{toolTipDescription}}}\u003c\/div\u003e\\n{{\/showStaticTooltip}}\\n{{#showTooltip}}\\n \u003cdiv data-appstle-icon=\\\"\\\" class=\\\"appstle_tooltip_wrapper\\\"\u003e\\n \u003csvg width=\\\"90\\\" height=\\\"90\\\" viewBox=\\\"0 0 90 90\\\" xmlns=\\\"http:\/\/www.w3.org\/2000\/svg\\\" class=\\\"tooltip_subscription_svg\\\"\u003e\\n \u003cpath\\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 \u003e\u003c\/path\u003e\\n \u003c\/svg\u003e\\n \u003cspan class=\\\"appstle_tooltip_title\\\"\u003e{{{tooltipTitle}}}\u003c\/span\u003e\\n \u003c\/div\u003e\\n\u003cdiv class=\\\"appstle_tooltip appstle_tooltip_hover\\\"\u003e\\n \u003cdiv class=\\\"appstle_tooltip_content\\\"\u003e\\n {{{toolTipDescription}}}\\n \u003c\/div\u003e\\n {{#showAppstleLink}}\\n \u003cdiv class=\\\"appstle_tooltip_appstle\\\"\u003e\\n \u003ca href=\\\"https:\/\/appstle.com\\\" class=\\\"appstle_link\\\" target=\\\"_blank\\\"\u003e\\n POWERED BY APPSTLE\\n \u003c\/a\u003e\\n \u003c\/div\u003e\\n {{\/showAppstleLink}}\\n \u003c\/div\u003e\\n{{\/showTooltip}}\\n \u003cstyle\u003e\\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 \u003c\/style\u003e\\n \u003c\/div\u003e{% endraw %}\"}", 9861 9862 9863 "bundle": {}, 9864 9865 9866 "labels": appstleStringSetting("{\\\"appstle.subscription.wg.billingCycleBlockV2\\\":\\\"true\\\",\\\"appstle.subscription.wg.cartHiddenAttributesSelectorV2\\\":\\\"\\\",\\\"appstle.subscription.wg.daysFrequencyTextV2\\\":\\\"Days\\\",\\\"appstle.subscription.wg.subscribeAndSaveSuccessV2\\\":\\\"Subscription Selected\\\",\\\"appstle.subscription.wg.addToShipmentSuccessTextV2\\\":\\\"Success\\\",\\\"appstle.subscription.wg.monthFrequencyTextV2\\\":\\\"Month\\\",\\\"appstle.subscription.wg.addToShipmentButtonTextV2\\\":\\\"Add to Shipment\\\",\\\"appstle.subscription.wg.onetimeDescriptionTextV2\\\":\\\"\\\",\\\"appstle.subscription.wg.oneTimePurchaseTextV2\\\":\\\"One Time Purchase\\\",\\\"appstle.subscription.wg.loyaltyPerkDescriptionTextV2\\\":\\\"\u003cdiv\u003e {{#isDiscountTypeFreeProduct}} \u003cdiv style='display: flex; align-items: center;'\u003e \u003cdiv class='appstle-dot'\u003e \u003c\\\/div\u003e \u003cdiv class='appstle-reward-content'\u003e \u003cdiv class='appstle-reward-description'\u003e {{^isZeroBillingCycle}} \u003cspan class='appstle-loyalty-billing-cycle'\u003e Get a free {{freeProductName}} worth of {{productPrice}} on your \u003cspan class='appstle-loyalty-billing-cycle-count'\u003e{{{billingCycleBlock}}}\u003c\\\/span\u003e order \u003c\\\/span\u003e {{\\\/isZeroBillingCycle}} {{#isZeroBillingCycle}} \u003cspan class='appstle-free-product-loyalty'\u003e Get a free {{freeProductName}} worth of {{productPrice}} with your \u003cspan class='appstle-loyalty-billing-cycle-count'\u003e1st\u003c\\\/span\u003e order \u003c\\\/span\u003e {{\\\/isZeroBillingCycle}} \u003c\\\/div\u003e \u003c\\\/div\u003e \u003c\\\/div\u003e {{\\\/isDiscountTypeFreeProduct}} {{#isDiscountTypePercentage}} {{#isPerkOnward}}
9866 \u003cdiv class='appstle-reward-items'\u003e \u003cdiv class='appstle-dot'\u003e \u003c\\\/div\u003e \u003cdiv class='appstle-reward-content'\u003e \u003cdiv class='appstle-reward-description'\u003e Save \u003cspan class='appstle-loyalty-discount'\u003e \u003cspan class='appstle-precentage-loyalty'\u003e{{{discount}}}% off\u003c\\\/span\u003e \u003c\\\/span\u003e on \u003cspan class='appstle-loyalty-billing-cycle'\u003e \u003cspan class='appstle-loyalty-billing-cycle-count'\u003e{{{billingCycleBlock}}}\u003c\\\/span\u003e order and onwards\u003c\\\/span\u003e \u003c\\\/div\u003e \u003c\\\/div\u003e \u003c\\\/div\u003e {{\\\/isPerkOnward}} {{\\\/isDiscountTypePercentage}} {{#isDiscountTypePercentage}} {{#isPerkRange}} \u003cdiv class='appstle-reward-items'\u003e \u003cdiv class='appstle-dot'\u003e \u003c\\\/div\u003e \u003cdiv class='appstle-reward-content'\u003e \u003cdiv class='appstle-reward-description'\u003e Save \u003cspan class='appstle-loyalty-discount'\u003e \u003cspan class='appstle-precentage-loyalty'\u003e{{{discount}}}% off\u003c\\\/span\u003e \u003c\\\/span\u003e from \u003cspan class='appstle-loyalty-billing-cycle'\u003e \u003cspan class='appstle-loyalty-billing-cycle-count'\u003e{{{billingCycleBlock}}}\u003c\\\/span\u003e to \u003cspan class='appstle-loyalty-billing-cycle-count'\u003e{{{isRangeEnd}}}\u003c\\\/span\u003e order\u003c\\\/span\u003e \u003c\\\/div\u003e {{\\\/isPerkRange}} {{\\\/isDiscountTypePercentage}} {{#isDiscountTypePercentage}} {{#onlyApplyOnThis}} \u003cdiv class='appstle-reward-items'\u003e \u003cdiv class='appstle-dot'\u003e \u003c\\\/div\u003e \u003cdiv class='appstle-reward-content'\u003e \u003cdiv class='appstle-reward-description'\u003e Save \u003cspan class='appstle-loyalty-discount'\u003e \u003cspan class='appstle-precentage-loyalty'\u003e{{{discount}}}% off\u003c\\\/span\u003e \u003c\\\/span\u003e for the \u003cspan class='appstle-loyalty-billing-cycle'\u003e \u003cspan class='appstle-loyalty-billing-cycle-count'\u003e{{{billingCycleBlock}}}\u003c\\\/span\u003e order\u003c\\\/span\u003e \u003c\\\/div\u003e \u003c\\\/div\u003e \u003c\\\/div\u003e {{\\\/onlyApplyOnThis}} {{\\\/isDiscountTypePercentage}} {{#isDiscountTypeShipping}} {{#isPerkOnward}} \u003cdiv class='appstle-reward-items'\u003e \u003cdiv class='appstle-dot'\u003e \u003c\\\/div\u003e \u003cdiv class='appstle-reward-content'\u003e \u003cdiv class='appstle-reward-description'\u003eShipping at \u003cspan class='appstle-loyalty-discount'\u003e \u003cspan class='appstle-shipping-loyalty'\u003e{{{formatDiscountedPrice}}}\u003c\\\/span\u003e \u003c\\\/span\u003e on \u003cspan class='appstle-loyalty-billing-cycle'\u003e \u003cspan class='appstle-loyalty-billing-cycle-count'\u003e{{{billingCycleBlock}}}\u003c\\\/span\u003e order and onwards\u003c\\\/span\u003e \u003c\\\/div\u003e \u003c\\\/div\u003e \u003c\\\/div\u003e {{\\\/isPerkOnward}} {{\\\/isDiscountTypeShipping}} {{#isDiscountTypeShipping}} {{#isPerkRange}} \u003cdiv class='appstle-reward-items'\u003e \u003cdiv class='appstle-dot'\u003e \u003c\\\/div\u003e \u003cdiv class='appstle-reward-content'\u003e \u003cdiv class='appstle-reward-description'\u003e Get \u003cspan class='appstle-loyalty-discount'\u003eshipping \u003cspan class='appstle-shipping-loyalty'\u003e{{{formatDiscountedPrice}}}\u003c\\\/span\u003e off \u003c\\\/span\u003e from \u003cspan class='appstle-loyalty-billing-cycle'\u003e{{{billingCycleBlock}}} to {{{isRangeEnd}}} order\u003c\\\/span\u003e \u003c\\\/div\u003e \u003c\\\/div\u003e \u003c\\\/div\u003e {{\\\/isPerkRange}} {{\\\/isDiscountTypeShipping}} {{#isDiscountTypeShipping}} {{#onlyApplyOnThis}} \u003cdiv class='appstle-reward-items'\u003e \u003cdiv class='appstle-dot'\u003e \u003c\\\/div\u003e \u003cdiv class='appstle-reward-content'\u003e \u003cdiv class='appstle-reward-description'\u003eGet shipping at\u003cspan class='appstle-loyalty-discount'\u003e \u003cspan class='appstle-shipping-loyalty'\u003e{{{formatDiscountedPrice}}}\u003c\\\/span\u003e \u003c\\\/span\u003e for the \u003cspan class='appstle-loyalty-billing-cycle'\u003e \u003cspan class='appstle-loyalty-billing-cycle-count'\u003e{{{billingCycleBlock}}}\u003c\\\/span\u003e order\u003c\\\/span\u003e \u003c\\\/div\u003e \u003c\\\/div\u003e \u003c\\\/div\u003e {{\\\/onlyApplyOnThis}} {{\\\/isDiscountTypeShipping}} {{#isDiscountTypeFixed}} {{#isPerkOnward}}
9866 \u003cdiv class='appstle-reward-items'\u003e \u003cdiv class='appstle-dot'\u003e \u003c\\\/div\u003e \u003cdiv class='appstle-reward-content'\u003e \u003cdiv class='appstle-reward-description'\u003e Get \u003cspan class='appstle-loyalty-discount'\u003e{{{formatDiscountedPrice}}}\u003c\\\/span\u003e off on \u003cspan class='appstle-loyalty-billing-cycle'\u003e{{{billingCycleBlock}}} order and onwards\u003c\\\/span\u003e \u003c\\\/div\u003e \u003c\\\/div\u003e \u003c\\\/div\u003e {{\\\/isPerkOnward}} {{\\\/isDiscountTypeFixed}} {{#isDiscountTypeFixed}} {{#isPerkRange}} \u003cdiv class='appstle-reward-items'\u003e \u003cdiv class='appstle-dot'\u003e \u003c\\\/div\u003e \u003cdiv class='appstle-reward-content'\u003e \u003cdiv class='appstle-reward-description'\u003e Get \u003cspan class='appstle-loyalty-discount'\u003e{{{formatDiscountedPrice}}}\u003c\\\/span\u003e off from \u003cspan class='appstle-loyalty-billing-cycle'\u003e{{{billingCycleBlock}}} order to {{{isRangeEnd}}} order\u003c\\\/span\u003e. \u003c\\\/div\u003e \u003c\\\/div\u003e \u003c\\\/div\u003e {{\\\/isPerkRange}} {{\\\/isDiscountTypeFixed}} {{#isDiscountTypeFixed}} {{#onlyApplyOnThis}} \u003cdiv class='appstle-reward-items'\u003e \u003cdiv class='appstle-dot'\u003e \u003c\\\/div\u003e \u003cdiv class='appstle-reward-content'\u003e \u003cdiv class='appstle-reward-description'\u003e Save \u003cspan class='appstle-loyalty-discount'\u003e \u003cspan class='appstle-precentage-loyalty'\u003e{{{formatDiscountedPrice}}}\u003c\\\/span\u003e \u003c\\\/span\u003e on your \u003cspan class='appstle-loyalty-billing-cycle-count'\u003e{{{billingCycleBlock}}}\u003c\\\/span\u003e order only. \u003c\\\/div\u003e \u003c\\\/div\u003e \u003c\\\/div\u003e {{\\\/onlyApplyOnThis}} {{\\\/isDiscountTypeFixed}} {{#isDiscountTypeFixedPrice}} {{#isPerkOnward}} \u003cdiv class='appstle-reward-items'\u003e \u003cdiv class='appstle-dot'\u003e \u003c\\\/div\u003e \u003cdiv class='appstle-reward-content'\u003e \u003cdiv class='appstle-reward-description'\u003e Get this product at \u003cspan class='appstle-loyalty-discount'\u003e{{{formatDiscountedPrice}}}\u003c\\\/span\u003e from \u003cspan class='appstle-loyalty-billing-cycle'\u003e{{{billingCycleBlock}}} order and onwards\u003c\\\/span\u003e. \u003c\\\/div\u003e \u003c\\\/div\u003e \u003c\\\/div\u003e {{\\\/isPerkOnward}} {{\\\/isDiscountTypeFixedPrice}} {{#isDiscountTypeFixedPrice}} {{#isPerkRange}} \u003cdiv class='appstle-reward-items'\u003e \u003cdiv class='appstle-dot'\u003e \u003c\\\/div\u003e \u003cdiv class='appstle-reward-content'\u003e \u003cdiv class='appstle-reward-description'\u003e Get this product at \u003cspan class='appstle-loyalty-discount'\u003e{{{formatDiscountedPrice}}}\u003c\\\/span\u003e from \u003cspan class='appstle-loyalty-billing-cycle'\u003e{{{billingCycleBlock}}} to {{{isRangeEnd}}} order\u003c\\\/span\u003e. \u003c\\\/div\u003e \u003c\\\/div\u003e \u003c\\\/div\u003e {{\\\/isPerkRange}} {{\\\/isDiscountTypeFixedPrice}} {{#isDiscountTypeFixedPrice}} {{#onlyApplyOnThis}} \u003cdiv class='appstle-reward-items'\u003e \u003cdiv class='appstle-dot'\u003e \u003c\\\/div\u003e \u003cdiv class='appstle-reward-content'\u003e \u003cdiv class='appstle-reward-description'\u003eGet this product at \u003cspan class='appstle-loyalty-discount'\u003e \u003cspan class='appstle-fixed-price-loyalty'\u003e{{{formatDiscountedPrice}}}\u003c\\\/span\u003e \u003c\\\/span\u003e for the \u003cspan class='appstle-loyalty-billing-cycle'\u003e \u003cspan class='appstle-loyalty-billing-cycle-count'\u003e{{{billingCycleBlock}}}\u003c\\\/span\u003e order\u003c\\\/span\u003e.\u003c\\\/div\u003e \u003c\\\/div\u003e \u003c\\\/div\u003e {{\\\/onlyApplyOnThis}} {{\\\/isDiscountTypeFixedPrice}} \u003cstyle\u003e .appstle-loyalty-table-v2{ box-shadow: none !important; border-spacing: 0 5px !important; border-collapse: unset !important; } .appstleLoyaltyTable .appstle-loyalty-table-data{ border-bottom: none !important; background: none !important; padding: 0px !important; } .appstleLoyaltyTable .appstle-loyalty-table-data:hover{ background: none !important;} .appstle-dot { width: 4px; height: 4px; border-radius: 4px; background-color: #282c3f; margin-right: 10px; margin-bottom: 2px; display: inline-block; vertical-align: middle; } .appstle-reward-items{ align-items: center !important; } .appstle-precentage-loyalty, .appstle-loyalty-discount{ font-weight: bold !important; } .appstle-loyalty-table.ugc-iconContainer { padding-left: 5px; } .appstle-loyalty-table.ugc-iconContainer svg { height: 16px; } .appstleLoyaltyTableHeader{ display: flex; } .appstleLoyaltyTableHeader{ display: flex; } .appstle-loyalty-table.ugc-iconContainer { padding-left: 5px; } .appstle-loyalty-table.ugc-iconContainer svg { height: 16px; } .appstle-toggle-more-btn-v2{ cursor:pointer !important; font-size: 12px !important; font-weight: bold !important; color:#ff3f6c !important; } .appstle-toggle-more-row-v2{ background-color: transparent !important; } .appstleLoyaltyTable .appstle-toggle-more-btn-container-v2{ padding: 0px !important; border-bottom: none !important; } .appstleLoyaltyTable .appstle-toggle-more-btn-container-v2:hover{ background: none !important; } .appstleLoyaltyTable .appstle_loyalty_text_v2{ background: none !important; } .appstleLoyaltyTable .appstle-hidden-perks-v2{ background: none !important; } .appstle-loyalty-table.ugc-iconContainer{display: block !important} \u003c\\\/style\u003e \u003c\\\/div\u003e\\\\n\\\",\\\"appstle.subscription.wg.bundleDiscountTextV2\\\":\\\"bundle discount extra: {{bundleDiscount}} off\\\",\\\"appstle.subscription.wg.atcButtonTextSelectorV2\\\":\\\"\\\",\\\"appstle.subscription.wg.subscriptionDescriptionTextV2\\\":\\\"\\\",\\\"appstle.subscription.wg.oneTimeFrequencyTextV2\\\":\\\"One Time\\\",\\\"appstle.subscription.wg.allowFulfilmentCountViaPropertiesV2\\\":\\\"false\\\",\\\"appstle.subscription.wg.valdiateFormSelectorV2\\\":\\\"\\\",\\\"appstle.subscription.wg.monthsFrequencyTextV2\\\":\\\"Months\\\",\\\"appstle.subscription.wg.prepaidSaveBadgeTextV2\\\":\\\"SAVE {{selectedDiscountPercentage}}\\\",\\\"appstle.subscription.wg.manageSubscriptionButtonTextV2\\\":\\\"Manage Subscription\\\",\\\"appstle.subscription.wg.removeClassFromPriceElementV2\\\":\\\"\\\",\\\"appstle.subscription.wg.yearFrequencyTextV2\\\":\\\"Year\\\",\\\"appstle.subscription.wg.widgetPriceChangeListenerSelectorV2\\\":\\\"\\\",\\\"appstle.subscription.wg.atcButtonTextV2\\\":\\\"\\\",\\\"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 Frequency\\\",\\\"appstle.subscription.wg.subscribeAndSaveInitalV2\\\":\\\"Subscribe and save\\\",\\\"appstle.subscription.wg.allowRefreshOnCartPageV2\\\":\\\"false\\\",\\\"appstle.subscription.wg.prepaidLabelTextV2\\\":\\\"Prepaid\\\",\\\"appstle.subscription.wg.monthlyLabelTextV2\\\":\\\"Monthly\\\",\\\"appstle.subscription.wg.displayAddToExistingSubscriptionButtonToSubscribersOnlyV2\\\":\\\"false\\\",\\\"appstle.subscription.wg.yearsFrequencyTextV2\\\":\\\"Years\\\",\\\"appstle.subscription.wg.addToShipmentTooltipTextV2\\\":\\\"Please avoid double delivery charges! Login to add this product to an upcoming delivery.\\\",\\\"appstle.subscription.wg.weekFrequencyTextV2\\\":\\\"Week\\\",\\\"appstle.subscription.wg.unsubscribeFrequencyTextV2\\\":\\\"One-time Purchase\\\",\\\"appstle.subscription.wg.widgetVariantChangeListenerSelectorV2\\\":\\\"\\\",\\\"appstle.subscription.wg.atcButtonTextSelectorObserverV2\\\":\\\"\\\",\\\"appstle.subscription.wg.dayFrequencyTextV2\\\":\\\"day\\\",\\\"appstle.subscription.wg.showPrepidPerDeliveryProductPriceV2\\\":\\\"false\\\",\\\"appstle.subscription.wg.offFrequencyTextV2\\\":\\\"Off\\\",\\\"appstle.subscription.wg.prepayLabelTextV2\\\":\\\"Prepay\\\",\\\"appstle.subscription.wg.productPageUnitPriceSelectorV2\\\":\\\"\\\",\\\"appstle.subscription.wg.showNewLoyaltyUI\\\":\\\"false\\\",\\\"appstle.subscription.wg.frequencyCombinedWidgetTextV2\\\":\\\"Frequency\\\",\\\"appstle.subscription.wg.sellingPlanTitleTextNonPrepaid\\\":\\\"{{sellingPlanName}}\\\",\\\"appstle.subscription.wg.selectDeliverOptionV2\\\":\\\"Select Delivery Option\\\",\\\"appstle.subscription.wg.yearlyLabelTextV2\\\":\\\"Yearly\\\"}"), 9867 9868 "css": { 9869 "appstle_subscription_widget": { 9870 "margin-top": appstleStringSetting("") , 9871 "margin-bottom": appstleStringSetting(""), 9872 }, 9873 9874 "appstle_subscription_wrapper": { 9875 "border-width": appstleStringSetting(""), 9876 "border-color": appstleStringSetting(""), 9877 }, 9878 9879 "appstle_circle": { 9880 "border-color": appstleStringSetting(""), 9881 }, 9882 9883 "appstle_dot": { 9884 "background-color": appstleStringSetting(""), 9885 }, 9886 9887 "appstle_select": { 9888 "padding-top": appstleStringSetting(""), 9889 "padding-bottom": appstleStringSetting(""), 9890 "padding-left": appstleStringSetting(""), 9891 "padding-right": appstleStringSetting(""), 9892 "border-width": appstleStringSetting(""), 9893 "border-style": appstleStringSetting(""), 9894 "border-color": appstleStringSetting(""), 9895 "border-radius": appstleStringSetting(""), 9896 }, 9897 9898 "tooltip_subscription_svg": { 9899 "fill": appstleStringSetting(""), 9900 }, 9901 9902 "appstle_tooltip": { 9903 "color": appstleStringSetting(""), 9904 "background-color": appstleStringSetting(""), 9905 }, 9906 9907 "appstle_tooltip_border_top_color": { 9908 "border-top-color": appstleStringSetting(""), 9909 }, 9910 9911 "appstle_subscription_final_price": { 9912 "color": appstleStringSetting(""), 9913 }, 9914 "appstle_widget_text_color": { 9915 "color": appstleStringSetting(""), 9916 }, 9917 "appstle_selected_background": { 9918 "background": "transparent", 9919 }, 9920 "elementCSS": appstleStringSetting("[]"), 9921 "customCSS": appstleStringSetting(""), 9922 "customerPortalCss": appstleStringSetting(""), 9923 "externalStyleTag": appstleStringSetting(""), 9924 "themeCss": appstleStringSetting(""), 9925 } 9926 }; 9927 9928 9929 window.AppstleSubscription = window.AppstleSubscription || JSON.parse(JSON.stringify(RS)); 9930 9931 sessionStorage['appstleSubscriptionConfig'] = JSON.stringify(RS.Config); 9932 9933 9934 try { 9935 9936 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 \u0026 better focus.","productDetails":"Product Details","failedToAddMsgText":"Your cart can't have more than {{maxProduct}}
9936 products","cart":"Cart","reviewBundleTextV2":"Review Bundle","addButtonText":"Add","minimumQuantityToCheckoutV2":"Minimum {{quantity}} quantity to checkout","buildBoxErrormsgV2":"Build a Box token is Invalid, Please reach out to support.","continueShopping":"Continue Shopping","failedToAddTitleText":"Failed to add","spendAmountGetDiscount":"Spend {{amount}} get {{percent}}% discount","maxiumQuantityToCheckoutV2":"Maxium {{quantity}} quantity to checkout","contentsOnModalTextV2":"Contents","nextStepButtonTextV2":"Next Step","choosePlanLifeStyleTextV2":"Choose a plan to match your lifestyle","selectMinimumProductButtonText":"Please select {{minProduct}} minimum product","subtotal":"Subtotal","buyQuantityGetDiscount":"Buy {{quantity}} get {{percent}}% discount","loyaltyTablePercentageTextV2":"After \u003cspan class='appstle-loyalty-billing-cycle'\u003e\u003cspan class=''\u003e{{billingCycle}}\u003c\\\/span\u003e order\u003c\\\/span\u003e, \u003cspan class='appstle-loyalty-discount'\u003eget \u003cspan class='appstle-loyalty-discount-amount'\u003e{{discount}}% off\u003c\\\/span\u003e\u003c\\\/span\u003e.","loyaltyTablePriceTextV2":"After \u003cspan class='appstle-loyalty-billing-cycle'\u003e\u003cspan class=''\u003e{{billingCycle}}\u003c\\\/span\u003e order\u003c\\\/span\u003e, \u003cspan class='appstle-loyalty-discount'\u003eget at \u003cspan class='appstle-loyalty-discount-amount'\u003e{{price}}\u003c\\\/span\u003e\u003c\\\/span\u003e.","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","testProperties":"","selectedButtonTextV2":"Selected","congratsMessageText":"You've achieved the highest discount of {{discount}}%","okBtnText":"Ok","tieredDiscount":"Tiered Discount","addProductsToSubscriptionLabel":"Adding product to your subscription... ","choosePlanLifeStyleDescriptionTextV2":"Cutoff each week to amend your meals is midnight on Thursday's. (Delivery Schedule is as follows: Gold Coast - Mondays | Brisbane \u0026 Sunshine Coast - Wednesdays)","orderNoteLabelTextV2":"Order Note","minimumToCheckoutV2":"Minimum {{quantity}} to checkout","loyaltyTableFixedTextV2":"After \u003cspan class='appstle-loyalty-billing-cycle'\u003e\u003cspan class=''\u003e{{billingCycle}}\u003c\\\/span\u003e order\u003c\\\/span\u003e, \u003cspan class='appstle-loyalty-discount'\u003eget \u003cspan class='appstle-loyalty-discount-amount'\u003e{{price}} off\u003c\\\/span\u003e\u003c\\\/span\u003e.","editQuantity":"Edit Quantity","itemsText":"Items","onetimeDescriptionTextV2":"","chooseProductsTextV2":"Choose Products","loyaltyTableFreeProductTextV2":"After \u003cspan class='appstle-loyalty-billing-cycle'\u003e\u003cspan class=''\u003e{{billingCycle}}\u003c\\\/span\u003e order\u003c\\\/span\u003e, \u003cspan class='appstle-loyalty-discount'\u003eget \u003cspan class='appstle-loyalty-discount-amount'\u003eFREE PRODUCT ({{productName}})\u003c\\\/span\u003e\u003c\\\/span\u003e.","loyaltyTableShippingTextV2":"After \u003cspan class='appstle-loyalty-billing-cycle'\u003e\u003cspan class=''\u003e{{billingCycle}}\u003c\\\/span\u003e order\u003c\\\/span\u003e, \u003cspan class='appstle-loyalty-discount'\u003eget \u003cspan class='appstle-loyalty-discount-amount'\u003eshipping at {{price}}\u003c\\\/span\u003e\u003c\\\/span\u003e.","spentText":"spent","quantityLabel":"Quantity","addButtonV2":"Add","loyaltyTableFreeTrailTextV2":"Get \u003cspan class='appstle-loyalty-free-trial-discount'\u003e{{discount}} \u003cspan class='appstle-loyalty-free-trial-discount-count' style='text-transform: lowercase;'\u003e{{discountType}} \u003c\\\/span\u003e\u003c\\\/span\u003e \u003cspan class='appstle-loyalty-free-trial-text'\u003efree trial.\u003c\\\/span\u003e","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"}; 9937 9938 } catch (e) { 9939 console.error("Error parsing build a box labels:", e); 9940 } 9941 9942 9943 var _RSConfig = _RSConfig || {}; 9944 9945 _RSConfig.shop = "soulflower-bc21.myshopify.com"; 9946 9947 9948 9949 9950 9951 9952 _RSConfig.shopMoneyFormat = "â¹ {{amount_no_decimals}}"; 9953 _RSConfig.shopMoneyFormatWithCurrencyFormat = "â¹ {{amount_no_decimals}}"; 9954 9955 9956 9957 9958 } 9959 9960 9961 9962 _RSConfig.assetRev = "e79d20d67e9963bab3a7c79289ba0900"; 9963 9964 9965</script>
9965 9966 9967<style id="appstle-payment-button-override"> 9968 .shopify-payment-button {display: none;} 9969</style>
9970<script> 9971 let appstleCount = 0 9972 function isAppstleJSInitiated() { 9973 appstleCount++; 9974 if (window?.["RSConfig"] || appstleCount > 20) { 9975 let appstleStyleElement = document.querySelector('#appstle-payment-button-override'); 9976 if (appstleStyleElement) { 9977 appstleStyleElement.remove(); 9978 } 9979 } else { 9980 setTimeout(isAppstleJSInitiated, 500) 9981 } 9982 } 9983 isAppstleJSInitiated(); 9984</script>
9984 9985
9986<script> 9987 var appstleExternalStyle = document.createElement('style'); 9988 appstleExternalStyle.textContent = appstleStringSetting(""); 9989 document.body.appendChild(appstleExternalStyle); 9990</script>
vendor: 1 bytes, line 9990
9990
9991<script> 9992 function pollAppstleInit() { 9993 if (window?.appstleInit) { 9994 window?.appstleInit() 9995 } else { 9996 setTimeout(pollAppstleInit, 30); 9997 } 9998 } 9999</script>
9999 10000 10001 10002 10003 10004 10005 10006 10007 10008 10009 10010 10011 10012 10013 10014 10015 10016 10017
10017<script src="https://subscription-admin.appstle.com/assets/js/appstle-subscription.min.js?shop=soulflower-bc21.myshopify.com&v=1788539228404" defer ></script>
10017 10018 10019 10020 10021 10022 10023 10024 10025 10026</div><div id="shopify-block-AeDB2YXNZLzl4RWNWT__4188547153274344210" class="shopify-block shopify-app-block"><link rel="stylesheet" href="https://cdn.shopify.com/extensions/01a12158-d4d9-7354-a640-cfbe07c671c3/aicartmax-441/assets/cm-product-affiliate-widget.css" media="print" onload="this.media='all'"> 10027 10028 10029 10030
10031<script> 10032 window.cartMax_meta = { 10033 config: {"config_check":[],"configs":[],"other":{"country":"IN","currency":"INR","language":"en","access_token":"017725b6627123042d04dccf214afc20","is_show_brand":true,"is_flash":true,"css":"#bundle{\n display: none;\n}\n@media screen and (max-width: 749px) {\n #bundle {\n display: block;\n margin:0px 0px 4px;\n },\n ._titleRow_eg7kg_14{\n padding-bottom: 10px: \n }\n}\n\n\nbutton[class*=\"_cartmaxButton_\"] {\n border: 1px solid black !important;\n}","image_list":[],"pro_image_list":{"count":{},"position":{}},"variant_colors":{"Pink":"#FFC0CB","Black":"#000000","Brown":"#9A5630","Green":"#05AA3D","White":"#FFFFFF","Orange":"#FF8A00","Purple":"#A54DCF","Yellow":"#FFE500"},"variant_images":[],"is_no_go_api":true}}, 10034 mixMatchConfig: {"config_check":[],"configs":[],"other":{"country":"IN","currency":"INR","language":"en","access_token":"017725b6627123042d04dccf214afc20","is_show_brand":true,"is_flash":true,"css":"#bundle{\n display: none;\n}\n@media screen and (max-width: 749px) {\n #bundle {\n display: block;\n margin:0px 0px 4px;\n },\n ._titleRow_eg7kg_14{\n padding-bottom: 10px: \n }\n}\n\n\nbutton[class*=\"_cartmaxButton_\"] {\n border: 1px solid black !important;\n}","variant_colors":{"Pink":"#FFC0CB","Black":"#000000","Brown":"#9A5630","Green":"#05AA3D","White":"#FFFFFF","Orange":"#FF8A00","Purple":"#A54DCF","Yellow":"#FFE500"},"variant_images":[],"is_no_go_api":true}}, 10035 addOneConfig: {"config_check":[],"configs":[],"other":{"country":"IN","currency":"INR","language":"en","access_token":"017725b6627123042d04dccf214afc20","is_show_brand":true,"is_flash":true,"css":"#bundle{\n display: none;\n}\n@media screen and (max-width: 749px) {\n #bundle {\n display: block;\n margin:0px 0px 4px;\n },\n ._titleRow_eg7kg_14{\n padding-bottom: 10px: \n }\n}\n\n\nbutton[class*=\"_cartmaxButton_\"] {\n border: 1px solid black !important;\n}","variant_colors":{"Pink":"#FFC0CB","Black":"#000000","Brown":"#9A5630","Green":"#05AA3D","White":"#FFFFFF","Orange":"#FF8A00","Purple":"#A54DCF","Yellow":"#FFE500"},"variant_images":[],"is_no_go_api":true}}, 10036 frequentlyBoughtTogetherConfig: {"config_check":[],"configs":[],"other":{"country":"IN","currency":"INR","language":"en","access_token":"017725b6627123042d04dccf214afc20","is_show_brand":true,"is_flash":true,"css":"#bundle{\n display: none;\n}\n@media screen and (max-width: 749px) {\n #bundle {\n display: block;\n margin:0px 0px 4px;\n },\n ._titleRow_eg7kg_14{\n padding-bottom: 10px: \n }\n}\n\n\nbutton[class*=\"_cartmaxButton_\"] {\n border: 1px solid black !important;\n}","variant_colors":{"Pink":"#FFC0CB","Black":"#000000","Brown":"#9A5630","Green":"#05AA3D","White":"#FFFFFF","Orange":"#FF8A00","Purple":"#A54DCF","Yellow":"#FFE500"},"variant_images":[],"is_no_go_api":true}}, 10037 fixedConfig: {"config_check":[],"configs":[],"other":{"country":"IN","currency":"INR","language":"en","access_token":"017725b6627123042d04dccf214afc20","is_show_brand":true,"is_flash":true,"css":"#bundle{\n display: none;\n}\n@media screen and (max-width: 749px) {\n #bundle {\n display: block;\n margin:0px 0px 4px;\n },\n ._titleRow_eg7kg_14{\n padding-bottom: 10px: \n }\n}\n\n\nbutton[class*=\"_cartmaxButton_\"] {\n border: 1px solid black !important;\n}","variant_colors":{"Pink":"#FFC0CB","Black":"#000000","Brown":"#9A5630","Green":"#05AA3D","White":"#FFFFFF","Orange":"#FF8A00","Purple":"#A54DCF","Yellow":"#FFE500"},"variant_images":[],"is_no_go_api":true}}, 10038 langList: {"lang_list":{"en":{"free_shipping_not_met_text":"You are {{free_shipping_gap_value}} away from free shipping!","product":"product","products":"products","get_free_shipping_text":"Congratulations! Youâve got free shipping.","upsell_button_text":"Add","discount_not_met_text":"You are {{discount_gap_value}} away from {{discount_value}} discount!","get_discount_text":"Congratulations, youâve got {{discount_value}} discount!","variants":"Variants","discount_upsell_button_text":"Add","buy_together":"Buy it together","upsell_pro_add":"Add","bundle_buy_together":"Buy it together Get {{discount_value}} Off","bundle_upsell_pro_add":"Add the bundle to cart","thank_you_message":"Thank You! Hereâs 10% OFF Just for You ð","thank_you_add":"Buy now","purchase_banner":"This deal disappears in {{countdown_timer}}!","purchase_title":"Complete your order with this special offer â
1003810% OFF, only available now!","purchase_btn":"Pay now","purchase_decline_btn":"Decline this order","quantity":"Quantity","save_discount":"Save {{discount_value}}","bundle_self_title":"Buy more, Save more","bundle_self_btn":"Add this bundle to cart","default_option_title":"Buy {{product_quantity}}","default_discount_text":"Save {{discount_value}}","most_popular":"Most popular","best_deal":"Best deal","each_text":"each","mystery_box":"Mystery Box","free":"Free","total_price_text":"Total: {{total_price}}","add_cart_tip":"The maximum quantity of this item is already in your cart.","default_option_title_bxgxf":"Buy {{buys_quantity}} get {{gets_quantity}} free ","default_discount_label_text":"Save {{discount_amount}}","discount_label_text":"Save {{discount_amount}}","bp_title_text":"Build Your Bundle \u0026 Save Instantly","bp_description_text":"Kit discount will be applied to your order!","bp_add_to_cart_button_text":"Add to Bundle","bp_checkout_button_text":"Checkout","bp_cart_title":"Build Your Bundle","bp_unmet_progress_bar_text":"You're {{remaining_quantity}} item(s) away from {{discount_value}} off","bp_met_progress_bar_text":"Youâve unlocked {{discount_value}} off ð","bp_cart_estimated_total_text":"Estimated total:","bp_discount_label_text":"Save {{discount_value}}","sold_out":"Sold out","cancel":"Cancel","bp_select_bundle_product":"Select bundle product","bp_added_to_bundle":"Added to Bundle","bp_discount_label_amount_text":"Save {{discount_amount}}","bp_o_unmet_progress_bar_text":"You're {{remaining_quantity}} item(s) away from the {{fixed_price}} bundle price","bp_o_met_progress_bar_text":"Youâve unlocked {{fixed_price}} off ð","mb_bandle_card_title_text":"Mix and match bundle","mb_choose_product_button_text":"Choose","mb_add_to_cart_button_text":"Add to Cart","mb_checkout_button_text":"Checkout","mb_unmet_progress_bar_text":"You're {{remaining_quantity}} item(s) away from {{discount_value}} off","mb_met_progress_bar_text":"Youâve unlocked {{discount_value}} off ð","mb_discount_label_text":"Save {{discount_value}}","mb_discount_label_amount_text":"Save {{discount_amount}}","mb_estimated_total_text":"Estimated total:","mb_choose_product_pop_up_title_text":"Choose product","mb_add_to_bundle_button_text":"Add to Bundle","mb_added_to_bundle_button_text":"Added to Bundle","mb_o_unmet_progress_bar_text":"You're {{remaining_quantity}} item(s) away from the {{fixed_price}} bundle price","mb_o_met_progress_bar_text":"Youâve unlocked {{fixed_price}} off ð","bp_to_cart_button_text":"Add to Cart","default_step":"Step","gift_box_title":"Free gift Ã{{gift_quantity}}
10038","choose_gift_button":"Choose gift","choose_gift_pop_up_title":"Choose gift","choose_gift_pop_up_button":"Add Gift","gift_box_two_title":"Free gift Ã{{gift_quantity}}","bp_unmet_free_gift_text":"Add {{remaining_quantity}} more item(s) to unlock a free gift","bp_free_gift_unlocked_text":"Free gift unlocked!","bp_gift_badge_text":"Free gift","variant_picker_pop_button":"Update product","free_gift_tip":"Free gift","fixed_bundle_title":"Get the Complete Set â Fixed Price Today!","fb_total_price":"Estimated total: {{total_price}}","out_of_stock":"{{product_name}} has insufficient stock","primary_button":"Add the bundle to cart","bp_product_selection":"Choose a product first to unlock this step","per_or_fixed_discount_tip":"Add {{remaining_quantity}} more, save {{discount_value}}","buy_get_free_discount_tip":"Add {{remaining_quantity}} more Get {{gets_quantity}} free","out_of_stock_alert":"Out of stock","low_stock_alert":"Hurry up, only {{stock_quantity}} items left in stock","countdown_title":"ð¥ Limitedâtime offer ends in ð¥","countdown_days_text":"DAYS","countdown_hours_text":"HOURS","countdown_min_text":"MINS","countdown_sec_text":"SECS"}}}, 10039 lang: "en", 10040 currency: { 10041 code: "INR", 10042 country: "IN", 10043 curCode: "INR", 10044 symbol: "â¹", 10045 name: "Indian Rupee", 10046 format: "â¹ {{amount_no_decimals}}", 10047 formatWithCurrency: "â¹ {{amount_no_decimals}}" 10048 }, 10049 }; 10050 window.cartMax_bundle_page_meta = { 10051 config: {"15552":"https:\/\/www.soulflower.in\/apps\/easy-bundle\/Soap-BYOB"}, 10052 }; 10053 10054 10055 10056 10057</script>
10057 10058
10059<script data-cartmax="theme-list"> 10060 window.cartmax_product_theme_list = [{"store":{"pt":".cart__ctas","type":1,"drawerPt":".rebuy-cart__flyout .rebuy-cart__checkout-button","position":"beforebegin","sbButton":"#checkout","sections":"","cartItems":"","hierarchy":1,"productPt":".product-form__buttons","storeName":"soulflower-bc21.myshopify.com","themeName":"Dawn","isSkipCart":false,"totalPrice":".totals__subtotal-value","drawerSection":"","variantPicker":"","drawerArousePT":"#cart-icon-bubble","drawerSbButton":".rebuy-cart__flyout .rebuy-cart__checkout-button","drawerCartItems":"cart-drawer-items","addProductButton":".product-form [data-type=\"add-to-cart-form\"] [name=\"add\"]","drawerTotalPrice":".rebuy-cart__flyout-subtotal-final-amount > span:nth-child(2)","isUploadCartPage":false,"formActionCartAdd":".product-form [data-type=\"add-to-cart-form\"]","isDisableBubbling":true,"productTotalPrice":"","isNotDefUpdateCart":true,"isOpenDrawerArouse":true,"hideQuantitySelector":"","isTotalPriceTemplate":false},"theme":{"pt":".cart__ctas","type":1,"drawerPt":".rebuy-cart__flyout .rebuy-cart__checkout-button","position":"beforebegin","sbButton":"#checkout","sections":"","cartItems":"","hierarchy":1,"productPt":".product-form__buttons","storeName":"soulflower-bc21.myshopify.com","themeName":"Dawn","isSkipCart":false,"totalPrice":".totals__subtotal-value","drawerSection":"","variantPicker":"","drawerArousePT":"#cart-icon-bubble","drawerSbButton":".rebuy-cart__flyout .rebuy-cart__checkout-button","drawerCartItems":"cart-drawer-items","addProductButton":".product-form [data-type=\"add-to-cart-form\"] [name=\"add\"]","drawerTotalPrice":".rebuy-cart__flyout-subtotal-final-amount > span:nth-child(2)","isUploadCartPage":false,"formActionCartAdd":".product-form [data-type=\"add-to-cart-form\"]","isDisableBubbling":true,"productTotalPrice":"","isNotDefUpdateCart":true,"isOpenDrawerArouse":true,"hideQuantitySelector":"","isTotalPriceTemplate":false},"theme_name":"Dawn"}] 10061</script>
10061</div><div id="shopify-block-AK2hxVEFwZUZIam9od__16274974966654683533" class="shopify-block shopify-app-block"> 10062<link rel='preconnect' href='https://cdn.shopify.com' crossorigin> 10063<link rel='dns-prefetch' href='https://cdn.shopify.com'> 10064<link rel='preconnect' href='https://yourtoken-widget.pages.dev' crossorigin> 10065<link rel='dns-prefetch' href='https://yourtoken-widget.pages.dev'> 10066<link 10067 rel='preload' 10068 as='script' 10069 href='https://cdn.shopify.com/extensions/01a12096-e266-7563-ad9e-195a334008ad/yourtoken-2-1200/assets/index.js' 10070 crossorigin 10071> 10072<link rel='preconnect' href='https://websdk-yourtoken.pages.dev' crossorigin> 10073<link rel='dns-prefetch' href='https://websdk-yourtoken.pages.dev'> 10074 10075<div style='display: hidden;'> 10076
10076<script 10077 type='text/javascript' 10078 > 10079 10080 const currentStoreDomain = 'soulflower-bc21.myshopify.com'; 10081 10082 // Cart Shell System 10083 10084 const ytCartShellIsCartPage = window.location.pathname === '/cart' || window.location.pathname.endsWith('/cart'); 10085 10086 let ytShellConfig = null; 10087 try { 10088 ytShellConfig = {"showMetafieldBasedRecs":false,"showCollectionBasedRecs":false,"showManualProductRecs":false,"showDynamicProductRecs":false,"recommendedCollectionsList":[],"collectionRecsLimits":0,"dynamicProductRecsLimit":10,"cartTitle":"Your Cart","cartBackgroundColor":"#ffffff","exploreCtaColor":"#000000","enableCustomCart":true,"recommendedProductsList":{"productHandles":[],"productIds":[],"variantSelections":[]},"checkoutType":"gokwik","showBackdrop":true,"discountInCheckoutButton":false,"ctaButtonBackgroundColor":"#e9176e","ctaButtonTextColor":"#FFFFFF","primaryTextColor":"#000000","productRecsCtaButtonText":"Add","productRecsTitleText":"PEOPLE ALSO BOUGHT","emptyProductRecsTitleText":"You might also like","productRecsCardLayout":"vertical","productRecsCardListVariant":"scroll","secondaryTextColor":"#1A1A1A","showProductRecsOnDesktop":true,"showProductRecsOnMobile":true,"showEmptyCartRecommendations":false,"themeColor":"#ffaacc","themeTextColor":"#000000","showGSTOption":false,"enableCustomCartOpenOnProductAdd":true,"showNoteOption":false,"showEditOptionOnProducts":true,"showVariantSelectionDropdownInProductRecs":true,"postalCodeList":[],"enableGeoLocationRestriction":false,"showStickyAddToCart":false,"cartGeoLocationValidatorData":{},"enableCustomCartOnCartPage":true,"showCartTimer":false,"cartTimerInMinutes":5,"cartTimerCustomText":"Your products are reserved in cart for","cartTimerData":{"showTimer":true,"minutes":5,"customText":"Your products are reserved in cart for"},"cartComponentsCornerType":"rounded","cartComponentsCornerRadius":6,"giftWrapData":{},"stickyAddToCartProductBarData":{},"cartOffersCarousalData":{"enableCartOffersCarousel":true,"slidesCount":1,"pauseTimer":2,"backgroundColor":"#f8e71c","primaryTextColor":"","secondaryTextColor":"","slides":[{"criteria":[],"imageUrl":"https:\/\/r2.yourtoken.io\/38e0213717e9bbe33b3a8.jpg","slideType":"TextFieldOnly","slideNumber":1,"campaignCode":"","criteriaCount":0,"enableMarquee":true,"textAlignment":"center","redirectionUrl":"","titleTextField":"Add 2 Products to Avail B1G1 Free!","descriptionTextField":"","enableCustomCriteria":false}]},"freebieMilestoneData":{},"trustedBadgeData":{},"freebieClaimData":{},"floatingCartData":{},"couponSelectionData":{},"uploadImageAddonData":{},"checkoutSectionData":{},"drawerLayoutData":{},"cartGstSectionData":{},"bxgyDiscountsEnabled":true,"switchWidthVariant":true}; 10089 if (!ytShellConfig || typeof ytShellConfig !== 'object') { 10090 ytShellConfig = null; 10091 } 10092 } catch(e) {} 10093 10094 const ytShellCustomCartEnabled = ytShellConfig && 10095 ytShellConfig.enableCustomCart && 10096 ytShellConfig.enableCustomCart !== 'false'; 10097 10098 const ytShellCountryEligible = (window.Shopify && window.Shopify.country === 'IN') || 10099 (window.Shopify && window.Shopify.shop === 'jagat-pharma-global.myshopify.com'); 10100 10101 const ytShellShouldInit = ytShellCustomCartEnabled && !ytCartShellIsCartPage && ytShellCountryEligible; 10102 10103 const ytShellShouldAutoOpen = ytShellShouldInit && 10104 ytShellConfig.enableCustomCartOpenOnProductAdd !== false && 10105 ytShellConfig.enableCustomCartOpenOnProductAdd !== 'false'; 10106 10107 // Global shell state for widget synchronization 10108 window.ytCartShellState = { isOpen: false, takenOver: false }; 10109 10110 // Liquid-rendered cart data â available instantly, no AJAX needed 10111 var ytShellInitialCart = { 10112 items: [ 10113 10114 ], 10115 total: 0, 10116 count: 0, 10117 currency: "â¹" 10118 }; 10119 10120 if (ytShellShouldInit) { 10121 (function() { 10122 var shellBgColor = (ytShellConfig && ytShellConfig.cartBackgroundColor) || '#ffffff'; 10123 var shellTitle = (ytShellConfig && ytShellConfig.cartTitle) || 'My Cart'; 10124 var shellTextColor = (ytShellConfig && ytShellConfig.primaryTextColor) || '#000000'; 10125 var shellShowBackdrop = ytShellConfig.showBackdrop !== false && ytShellConfig.showBackdrop !== 'false'; 10126 var shellCheckoutType = (ytShellConfig && ytShellConfig.checkoutType) || 'shopify'; 10127 var shellThemeColor = (ytShellConfig && ytShellConfig.themeColor) || '#000000'; 10128 var shellThemeTextColor = (ytShellConfig && ytShellConfig.themeTextColor) || '#ffffff'; 10129 var shellCornerType = (ytShellConfig && ytShellConfig.cartComponentsCornerType) || ''; 10130 var shellCornerRadius = (ytShellConfig && ytShellConfig.cartComponentsCornerRadius) || 0; 10131 var shellBgSubdued = (ytShellConfig && ytShellConfig.backgroundSubdued) || '#e1e1e1'; 10132 var switchWidthVariantEnabled = (ytShellConfig && ytShellConfig.switchWidthVariant) || false; 10133 10134 // Mutable cart state â starts from Liquid, updated on ATC via /cart.js 10135 var shellCartData = { 10136 items: ytShellInitialCart.items.slice(), 10137 total: ytShellInitialCart.total, 10138 count: ytShellInitialCart.count, 10139 currency: ytShellInitialCart.currency 10140 }; 10141 10142 var cartSelectors = [ 10143 'a[href="/cart"]', 10144 'button.tt-dropdown-toggle', 10145 'a.area--cart', 10146 'a.hcart', 10147 'a.js-drawer-open-cart', 10148 'a.cart-icon-bubble', 10149 'a[title="Cart"]', 10150 '.site-header__link.site-header__cart.js-mini-cart.cardraw', 10151 'a#offcanvas-cart-icon', 10152 'span.js-toggle-cart', 10153 'div.single-icon.cart', 10154 'a#cart-icon-bubble', 10155 'a.cart-count', 10156 'button.qsc2-basic.qsc2-stickybtn', 10157 'svg.icon-bag', 10158 'a.icon-bubble[aria-label=cart]', 10159 'div.mini-cart-icon a.ltn__utilize-toggle', 10160 'button#CartButton', 10161 'span#cart-icon-bubble', 10162 'a[onclick="window.openCartCheckout()"]', 10163 'div.cart-fixed.cart-icon', 10164 'a[onclick="window.openCart()"]', 10165 'a.js-call-minicart', 10166 'button[data-sidebar-id="CartDrawer"]', 10167 'a.icon-cart-arrow', 10168 'a[data-js-sidebar-handle][title="Open cart"]', 10169 'button.js-mini-cart-trigger', 10170 'div.site-header__cart-icon', 10171 'a[onclick*="cart-drawer"]', 10172 'button.cart-icon', 10173 'xo-tooltip[xo-title="Cart"]', 10174 'a i.fa-shopping-bag', 10175 'cart-icon', 10176 'div#cart-icon-bubble', 10177 'a.flo-header-cart-btn', 10178 'a[onclick="window.handleFloCartBtn()"]' 10179 ]; 10180 10181 var formBasedATCSelectorList = [ 10182 'button.product-form__submit', 'button.btn-addtocart', 'button.tt-btn-addtocart', 10183 'button.m-add-to-cart', 'button.add-to-cart', 'button#bundleBtn.btn', 10184 'div.lc-product-button', 'button.add-to-cart-btn', 'button.stick-add', 10185 'button.btn.btn--large.add-to-cart', 'button.ProductForm__AddToCart', 10186 'a#atc-coll', 'button#AddToCart', 'button[data-pf-type=ProductATC2]', 10187 'button.js-product-button-add-to-cart', 'button.button-action--shadow', 10188 'button.add-cart-btn', 'input[value="Add to cart"]', 'div.cart-block-click', 10189 'button.pf-button-1', 'button.product-form--atc-button', 'button.addtocartqv', 10190 'button.btn--quick.pill', 'button[name=add]', 'button.add_to_cart_button', 10191 'button.product-item__quick-add', 'button.gp-button-atc', 'button.product-ATC-Button', 10192 'button.cbb-frequently-bought-add-button', 'button.single_add_to_cart_button' 10193 ]; 10194 10195 var quickAddToCartElements = [ 10196 '.t4s-svg-pr-icon', '.product-card__overlay-btn.js-grid-cart', 'button.product-ATC-Button', 10197 'button.quick-add__submit .span', 'button[x-html=atcBtnText]', 'button.product-item__quick-add',
10198 'a.add-to-cart', 'a[data-trigger=addtocart]', 'add-to-cart.button', 10199 'button.product-card--add-to-cart-button', 'div.pr_atc', 'button.enj-add-to-cart-btn', 10200 'div.product-button', 'button.product-grid-item__btn', 'input.product__add-button', 10201 'button.addtocart-btn', 'a.t4s-pr-item-btn', 'button.form__send__button', 10202 'quick-add', 'button.addtocart_button', 'button.qv-add-button', 'a.product-form__submit', 10203 'button.quick-add__submit', 'div.buttonz', 'button[class^="video-add"]' 10204 ]; 10205 10206 var allAtcSelectors = formBasedATCSelectorList.concat(quickAddToCartElements); 10207 10208 var shellOverlay = null; 10209 var shellDrawer = null; 10210 var shellObserver = null; 10211 var origAssign = null; 10212 var origReplace = null; 10213 var shellPrevHistoryState = null; 10214 var shellPrevUrl = null; 10215 10216 var closeSvg = '<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="' + shellTextColor + '" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>'; 10217 10218 // ---- Helpers ---- 10219 function escapeShellHtml(str) { 10220 if (!str) return ''; 10221 return str.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"'); 10222 } 10223 10224 function formatShellPrice(cents) { 10225 var amount = (cents / 100).toFixed(2); 10226 var parts = amount.split('.'); 10227 parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ','); 10228 return parts.join('.'); 10229 } 10230 10231 // ---- Render Shell Cart HTML ----
10232 function renderShellCartContent() { 10233 var items = shellCartData.items; 10234 var total = shellCartData.total; 10235 var count = shellCartData.count; 10236 var currency = shellCartData.currency; 10237 var btnRadius = shellCornerType === 'rounded' ? shellCornerRadius + 'px' : '0px'; 10238 10239 // Header 10240 var html = '<div>'; 10241 html += '<div class="yt-cart-title-container" style="display:flex;flex-direction:row;align-items:center;justify-content:space-between;margin:1rem 1rem 0px;gap:8px;">'; 10242 html += '<span style="font-weight:var(--yt-cart-font-weight,bold);color:' + shellTextColor + ';font-size:16px;white-space:nowrap;display:flex;align-items:center;gap:6px;">'; 10243 html += escapeShellHtml(shellTitle); 10244 if (count > 0) { 10245 html += ' <span style="background-color:' + shellBgSubdued + ';border-radius:50%;width:14px;height:14px;display:inline-flex;align-items:center;justify-content:center;font-size:9px;font-weight:400;min-width:14px;line-height:14px;">' + count + '</span>'; 10246 } 10247 html += '</span>'; 10248 html += '<div id="yt-cart-shell-close-btn" style="cursor:pointer;display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:#cacaca30;">'; 10249 html += closeSvg; 10250 html += '</div></div>'; 10251 html += '<div style="margin:12px 16px 0;"><div style="height:3px;background:#e0e0e0;border-radius:2px;"></div></div>'; 10252 html += '</div>'; 10253 10254 if (count === 0) { 10255 // Empty cart 10256 html += '<div style="display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;gap:12px;">'; 10257 html += '<p style="color:#666;font-size:14px;margin:0;">Your cart is empty</p>'; 10258 html += '</div>'; 10259 return html; 10260 } 10261 10262 // 12px grey separator (above items) 10263 html += '<div style="display:flex;height:12px;background:#87878717;"></div>'; 10264 10265 // Scrollable items area 10266 html += '<div style="display:flex;flex-direction:column;overflow-y:auto;flex:1;overflow-x:hidden;height:100%;scrollbar-width:none;">'; 10267 10268 for (var i = 0; i < items.length; i++) { 10269 var item = items[i]; 10270 var isLast = i === items.length - 1; 10271 10272 // Item wrapper (matches ProductCardWrapper with after-pseudo divider) 10273 html += '<div style="padding:5px 0;position:relative;">'; 10274 10275 // StyledDiv (matches ProductCard layout) 10276 html += '<div style="display:flex;gap:16px;padding:4px 0;background:' + shellBgColor + ';align-items:center;margin:0 1rem;">'; 10277 10278 // ProductImageWrapper 10279 html += '<div style="position:relative;display:inline-block;">'; 10280 10281 // ProductImage (matches yt-cart-product-image) 10282 html += '<div class="yt-cart-product-image" style="width:75px;aspect-ratio:1;border-radius:8px;flex-shrink:0;overflow:hidden;border:1.55px solid var(--base-border,#dedede);">'; 10283 if (item.image) { 10284 html += '<img src="' + escapeShellHtml(item.image) + '" alt="' + escapeShellHtml(item.title) + '" loading="lazy" style="width:100%;height:100%;object-fit:cover;" />'; 10285 } else { 10286 html += '<div style="width:100%;height:100%;background:#f0f0f0;"></div>'; 10287 } 10288 html += '</div>'; 10289 10290 // QuantityBadge 10291 html += '<div style="position:absolute;top:-8px;right:-8px;background-color:#ffffff;color:black;border:2px solid white;border-radius:50%;width:19px;height:19px;font-size:12px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 4px rgba(0,0,0,0.3);z-index:4;">' + item.quantity + '</div>'; 10292 10293 html += '</div>'; // end ProductImageWrapper 10294 10295 // Content column 10296 html += '<div style="display:flex;flex-direction:column;flex:1;padding:4px 0;">'; 10297 10298 // Title 10299 html += '<span class="yt-shell-item-title" style="font-size:14px;font-weight:500;line-height:1.4;color:' + shellTextColor + ';display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;">' + escapeShellHtml(item.title) + '</span>'; 10300 10301 // Price 10302 html += '<span style="color:' + shellTextColor + ';font-size:13px;font-weight:400;letter-spacing:0.2px;margin-top:2px;">' + currency + formatShellPrice(item.price) + '</span>'; 10303 10304 html += '</div>'; // end content column 10305 html += '</div>'; // end StyledDiv 10306 10307 html += '</div>'; // end item wrapper 10308 10309 // Divider between items+ 10310 if (!isLast) { 10311 html += '<div style="display:flex;border-bottom:0.8px solid rgb(135 135 135 / 50%);"></div>'; 10312 } 10313 } 10314 html += '<div style="display:flex;height:12px;background:#87878717;"></div>'; 10315 10316 html += '</div>'; // end scrollable 10317 10318 10319 10320 // Footer 10321 html += '<div class="yt-cart-footer-container" style="display:flex;flex-direction:column;padding-bottom:env(safe-area-inset-bottom,0px);background:white;z-index:999;width:100%;box-shadow:rgb(135 135 135 / 45%) 0px -2px 0px 0px;border-radius:17px 17px 0px 0px;
10321gap:10px;">'; 10322 10323 // Checkout summary 10324 html += '<div class="yt-cart-checkout-summary" style="display:flex;flex-direction:column;row-gap:5px;background-color:rgba(138,138,138,0.08);padding-top:10px;">'; 10325 10326 // Total row 10327 html += '<div style="display:flex;justify-content:space-between;align-items:center;margin:0 1rem;">'; 10328 html += '<span style="font-size:14px;font-weight:600;">Total</span>'; 10329 html += '<span style="font-size:16px;font-weight:var(--yt-cart-font-weight,bold);">' + currency + formatShellPrice(total) + '</span>'; 10330 html += '</div>'; 10331 10332 // Checkout button 10333 html += '<button id="yt-shell-checkout-btn" class="yt-checkout-button" style="display:flex;flex-direction:row;align-items:center;justify-content:center;height:45px;padding-top:10px;padding-bottom:10px;margin:4px 1rem 16px 1rem;background-color:' + shellThemeColor + ';border:0;color:' + shellThemeTextColor + ';text-transform:uppercase;font-size:16px;letter-spacing:1px;cursor:pointer;border-radius:' + btnRadius + ';box-shadow:none;column-gap:8px;">'; 10334 html += 'CHECKOUT'; 10335 html += '</button>'; 10336 10337 html += '</div>'; // end checkout summary 10338 html += '</div>'; // end footer 10339 10340 return html; 10341 } 10342 10343 // ---- Bind shell event listeners (called after every render) ---- 10344 function bindShellEvents() { 10345 var closeBtn = document.getElementById('yt-cart-shell-close-btn'); 10346 if (closeBtn) { 10347 closeBtn.addEventListener('click', function() { window.openYtCustomCart(false); }); 10348 } 10349 var checkoutBtn = document.getElementById('yt-shell-checkout-btn'); 10350 if (checkoutBtn) { 10351 checkoutBtn.addEventListener('click', handleShellCheckout); 10352 } 10353 } 10354 10355 // ---- Checkout handler (respects checkoutType from metafield) ---- 10356 function handleShellCheckout(e) { 10357 try { 10358 switch (shellCheckoutType) { 10359 case 'gokwik': 10360 if (window.gokwikSdk && window.gokwikSdk.initCheckout && window.merchantInfo) { 10361 window.gokwikSdk.initCheckout(window.merchantInfo); 10362 } else if (window.gokwikSdk && window.gokwikSdk.initCheckout) { 10363 window.gokwikSdk.initCheckout(e.target); 10364 } else { 10365 window.location.replace('/checkout'); 10366 } 10367 break; 10368 case 'razorpay': 10369 if (window.openRzpCheckout) { window.openRzpCheckout(); } 10370 else if (window.openRzpLogin) { window.openRzpLogin(); } 10371 else { window.location.replace('/checkout'); } 10372 break; 10373 case 'breeze': 10374 if (window.breeze && window.breeze.startCheckout) { window.breeze.startCheckout(); } 10375 else { window.location.replace('/checkout'); } 10376 break; 10377 case 'shopflo': 10378 if (window.handleFloCheckoutBtn) { window.handleFloCheckoutBtn(); } 10379 else { window.location.replace('/checkout'); } 10380 break; 10381 case 'shiprocket': 10382 if (window.HeadlessCheckout && window.HeadlessCheckout.checkout) { window.HeadlessCheckout.checkout(e); } 10383 else { window.location.replace('/checkout'); } 10384 break; 10385 case 'zecpay': 10386 if (window.handleOcc) { window.handleOcc(); } 10387 else { window.location.replace('/checkout'); } 10388 break; 10389 case 'flexype': 10390 if (window.openFlexyCheckout) { window.openFlexyCheckout(); } 10391 else { window.location.replace('/checkout'); } 10392 break; 10393 case 'nimbbl': 10394 if (window.nimbblOpenCheckout) { window.nimbblOpenCheckout(); } 10395 else { window.location.replace('/checkout'); } 10396 break; 10397 case 'shopify': 10398 default: 10399 window.location.replace('/checkout'); 10400 } 10401 } catch (err) { 10402 console.warn('Shell checkout failed, redirecting to Shopify checkout', err); 10403 window.location.replace('/checkout'); 10404 } 10405 } 10406 10407 // ---- Refresh shell from /cart.js (called after ATC) ---- 10408 function refreshShellCart() { 10409 return fetch('/cart.js', { credentials: 'same-origin' }) 10410 .then(function(r) { return r.json(); }) 10411 .then(function(data) { 10412 shellCartData.items = (data.items || []).map(function(item) { 10413 return { 10414 title: item.product_title || item.title || '', 10415 image: item.image || '', 10416 quantity: item.quantity || 1, 10417 price: item.final_line_price || 0, 10418 url: item.url || '' 10419 }; 10420 }); 10421 shellCartData.total = data.total_price || 0; 10422 shellCartData.count = data.item_count || 0; 10423 10424 var skeleton = document.getElementById('yt-cart-shell-skeleton'); 10425 if (skeleton && !window.ytCartShellState.takenOver) { 10426 skeleton.innerHTML = renderShellCartContent(); 10427 bindShellEvents(); 10428 } 10429 }) 10430 .catch(function() {}); 10431 } 10432 10433 // ---- Create Shell DOM ---- 10434 function createShell() { 10435 if (shellDrawer) return; 10436 10437 var style = document.createElement('style'); 10438 style.id = 'yt-cart-shell-styles'; 10439 style.textContent = 10440 '@media screen and (max-width: 720px) { #yt-cart-shell-drawer { width: 350px !important; } }' + 10441 '@media screen and (max-width: 450px) { #yt-cart-shell-drawer { width: ' + (switchWidthVariantEnabled ? '100%' : '91%') + ' !important; max-width: ' + (switchWidthVariantEnabled ? '100%' : '97%') + ' !important; } }' +
10442 '#yt-cart-shell-drawer * { box-sizing: border-box; }' + 10443 '#yt-cart-shell-drawer .yt-cart-product-image img { width: 100%; height: 100%; object-fit: cover; }' + 10444 '@media screen and (max-width: 480px) { #yt-cart-shell-drawer .yt-cart-product-image { width: 65px !important; } }' + 10445 '#yt-cart-shell-drawer .yt-shell-item-title { display: -webkit-box !important; -webkit-line-clamp: 2 !important; -webkit-box-orient: vertical !important; overflow: hidden !important; font-size: 14px !important; font-weight: 500 !important; line-height: 1.4 !important; }' + 10446 '.yt-shell-pulse { animation: ytShellPulse 1.5s ease-in-out infinite; }' + 10447 '@keyframes ytShellPulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.4; } }' + 10448 'button.yt-checkout-button { background-image: none !important; min-height: auto !important; line-height: normal !important; }'; 10449 document.head.appendChild(style); 10450 10451 shellOverlay = document.createElement('div'); 10452 shellOverlay.id = 'yt-cart-shell-overlay'; 10453 shellOverlay.setAttribute('style', 10454 'position:fixed !important;top:0 !important;left:0 !important;right:0 !important;bottom:0 !important;' + 10455 'z-index:10000 !important;background-color:rgba(0,0,0,0.5) !important;display:none;width:100% !important;height:100% !important;' 10456 ); 10457 shellOverlay.addEventListener('click', function() { window.openYtCustomCart(false); }); 10458 10459 shellDrawer = document.createElement('div'); 10460 shellDrawer.id = 'yt-cart-shell-drawer'; 10461 shellDrawer.setAttribute('style', 10462 'position:fixed !important;top:0 !important;right:0 !important;z-index:2147483643 !important;' + 10463 'height:100% !important;width:457px;max-width:457px;background-color:' + shellBgColor + ' !important;' + 10464 'transition:transform 0.3s ease !important;transform:translateX(100%) !important;' + 10465 'box-shadow:none;font-family:inherit;line-height:normal;overflow:hidden;' 10466 ); 10467 10468 shellDrawer.innerHTML = 10469 '<div id="yt-cart-shell-skeleton" class="yt-cart-drawer-content" style="display:flex;flex-direction:column;height:100%;justify-content:space-between;">' + 10470 renderShellCartContent() + 10471 '</div>' + 10472 '<div id="yt-cart-shell-content" style="display:none;position:absolute;top:0;left:0;width:100%;height:100%;"></div>'; 10473 10474 document.body.appendChild(shellOverlay); 10475 document.body.appendChild(shellDrawer); 10476 10477 bindShellEvents(); 10478 } 10479 10480 // ---- Open / Close Shell ---- 10481 function openShell() { 10482 if (!shellDrawer || window.ytCartShellState.isOpen) return; 10483 shellDrawer.style.setProperty('transform', 'translateX(0)', 'important'); 10484 shellDrawer.style.boxShadow = '-14px 8px 14.4px 0px rgba(0, 0, 0, 0.35)'; 10485 if (shellShowBackdrop && shellOverlay) shellOverlay.style.display = 'block'; 10486 document.body.classList.add('drawer-open'); 10487 shellPrevHistoryState = window.history.state; 10488 shellPrevUrl = window.location.href; 10489 window.history.pushState({ ytCustomCartDrawer: 'open' }, ''); 10490 window.ytCartShellState.isOpen = true; 10491 } 10492 10493 function closeShell() { 10494 if (!shellDrawer || !window.ytCartShellState.isOpen) return; 10495 shellDrawer.style.setProperty('transform', 'translateX(100%)', 'important'); 10496 shellDrawer.style.boxShadow = 'none'; 10497 if (shellOverlay) shellOverlay.style.display = 'none'; 10498 document.body.classList.remove('drawer-open'); 10499 if (window.history.state && window.history.state.ytCustomCartDrawer === 'open') { 10500 window.history.replaceState(shellPrevHistoryState, '', shellPrevUrl || window.location.href); 10501 } 10502 window.ytCartShellState.isOpen = false; 10503 } 10504 10505 // Back button closes shell 10506 window.addEventListener('popstate', function() { 10507 if (window.ytCartShellState.isOpen && !window.ytCartShellState.takenOver) { 10508 closeShell(); 10509 } 10510 }); 10511 10512 // Global cart opener â available immediately, before widget loads. 10513 // After widget takes over (takenOver=true), this becomes a no-op 10514 // and the widget's React setState is used instead. 10515 window.openYtCustomCart = function(open) { 10516 if (window.ytCartShellState.takenOver) return;
10517 if (open) openShell(); else closeShell(); 10518 }; 10519 10520 // Expose shell control API for the widget to manage the container 10521 window.ytCartShell = { 10522 open: openShell, 10523 close: closeShell, 10524 getDrawerElement: function() { return shellDrawer; }, 10525 getOverlayElement: function() { return shellOverlay; }, 10526 cleanup: function() { 10527 // Disconnect MutationObserver 10528 if (shellObserver) { shellObserver.disconnect(); shellObserver = null; } 10529 // Restore fetch 10530 if (origFetch) { window.fetch = origFetch; } 10531 // Restore XHR 10532 if (xhrProtoOpen) { OrigXHR.prototype.open = xhrProtoOpen; } 10533 if (xhrProtoSend) { OrigXHR.prototype.send = xhrProtoSend; } 10534 // Restore location methods 10535 if (origAssign) { window.location.assign = origAssign; } 10536 if (origReplace) { window.location.replace = origReplace; } 10537 // Restore jQuery ajax 10538 if (origJqAjax && window.jQuery) { window.jQuery.ajax = origJqAjax; } 10539 } 10540 }; 10541 10542 // ---- Universal Cart Icon Interception ---- 10543 function handleShellCartClick(e) { 10544 e.preventDefault(); 10545 e.stopPropagation(); 10546 e.stopImmediatePropagation(); 10547 window.openYtCustomCart(true); 10548 } 10549 10550 function interceptCartIcons() { 10551 var allSelectors = cartSelectors.join(', '); 10552 var atcSelectorsStr = allAtcSelectors.join(', '); 10553 10554 function handleAtcClick(e) { 10555 if (window.ytCartShellState.takenOver) return; 10556 10557 var currentCount = shellCartData.count; 10558 var attempts = 0; 10559 var maxAttempts = 30; 10560 10561 function checkCart() { 10562 fetch('/cart.js', { credentials: 'same-origin' }) 10563 .then(function(r) { return r.json(); }) 10564 .then(function(data) { 10565 if (data.item_count > currentCount) { 10566 shellCartData.items = (data.items || []).map(function(item) { 10567 return { 10568 title: item.product_title || item.title || '', 10569 image: item.image || '', 10570 quantity: item.quantity || 1, 10571 price: item.final_line_price || 0, 10572 url: item.url || '' 10573 }; 10574 }); 10575 shellCartData.total = data.total_price || 0; 10576 shellCartData.count = data.item_count || 0; 10577 10578 var skeleton = document.getElementById('yt-cart-shell-skeleton'); 10579 if (skeleton && !window.ytCartShellState.takenOver) { 10580 skeleton.innerHTML = renderShellCartContent(); 10581 bindShellEvents(); 10582 } 10583 if (ytShellShouldAutoOpen) window.openYtCustomCart(true); 10584 } else if (attempts < maxAttempts) { 10585 attempts++; 10586 setTimeout(checkCart, Math.min(50 + attempts * 25, 500)); 10587 } 10588 }).catch(function() { 10589 if (attempts < maxAttempts) { 10590 attempts++; 10591 setTimeout(checkCart, Math.min(50 + attempts * 25, 500)); 10592 } 10593 }); 10594 } 10595 setTimeout(checkCart, 100); 10596 } 10597 10598 try { 10599 var elements = document.querySelectorAll(allSelectors); 10600 elements.forEach(function(el) { 10601 el.addEventListener('click', handleShellCartClick, true); 10602 if (el.href && (el.href.includes('/cart') || el.href.endsWith('/cart')) && !el.href.includes('/cart/')) { 10603 el._ytOrigHref = el.getAttribute('href'); 10604 el.setAttribute('href', 'javascript:void(0)'); 10605 } 10606 }); 10607 10608 var atcElements = document.querySelectorAll(atcSelectorsStr); 10609 atcElements.forEach(function(el) { 10610 if (el.textContent && el.textContent.toLowerCase().includes('buy')) return; 10611 el.addEventListener('click', handleAtcClick, true); 10612 }); 10613 } catch(e) {} 10614 10615 // Delegated click handler catches any cart link, including dynamically added ones 10616 document.addEventListener('click', function(e) { 10617 var target = e.target.closest ? e.target.closest('a') : null; 10618 if (target && target.href) { 10619 try { 10620 var url = new URL(target.href, window.location.origin); 10621 if ((url.pathname === '/cart' || url.pathname.endsWith('/cart')) && !url.pathname.includes('/cart/')) { 10622 e.preventDefault(); 10623 e.stopPropagation(); 10624 window.openYtCustomCart(true); 10625 } 10626 } catch(err) {} 10627 } 10628 }, true); 10629 10630 // Intercept form submissions to /cart (not /cart/add) 10631 document.addEventListener('submit', function(e) { 10632 var form = e.target; 10633 if (form.action && form.action.includes('/cart') && !form.action.includes('cart/add')) { 10634 e.preventDefault(); 10635 e.stopPropagation(); 10636 window.openYtCustomCart(true); 10637 } 10638 }, true); 10639 10640 // Intercept programmatic location.assign / location.replace to /cart 10641 origAssign = location.assign.bind(location);
10642 origReplace = location.replace.bind(location); 10643 10644 window.location.assign = function(url) { 10645 if (typeof url === 'string' && (url === '/cart' || url.endsWith('/cart')) && !url.includes('/cart/')) { 10646 window.openYtCustomCart(true); 10647 return; 10648 } 10649 return origAssign(url); 10650 }; 10651 10652 window.location.replace = function(url) { 10653 if (typeof url === 'string' && (url === '/cart' || url.endsWith('/cart')) && !url.includes('/cart/')) { 10654 window.openYtCustomCart(true); 10655 return; 10656 } 10657 return origReplace(url); 10658 }; 10659 10660 // MutationObserver for dynamically added cart elements 10661 var cartTagNames = { A:1, BUTTON:1, DIV:1, SPAN:1, SVG:1, 'CART-ICON':1, 'XO-TOOLTIP':1 }; 10662 var atcTagNames = { A:1, BUTTON:1, INPUT:1, DIV:1, 'ADD-TO-CART':1, 'QUICK-ADD':1 }; 10663 var pendingNodes = []; 10664 var rafScheduled = false; 10665 10666 function processPendingNodes() { 10667 rafScheduled = false; 10668 var nodes = pendingNodes; 10669 pendingNodes = []; 10670 for (var i = 0; i < nodes.length; i++) { 10671 var node = nodes[i]; 10672 try { 10673 // Always search children (container may hold matching descendants) 10674 var newEls = node.querySelectorAll ? node.querySelectorAll(allSelectors) : []; 10675 // Short-circuit self-match by tagName 10676 var isSelf = cartTagNames[node.tagName] && node.matches && node.matches(allSelectors); 10677 var allNew = isSelf ? [node].concat(Array.from(newEls)) : Array.from(newEls); 10678 allNew.forEach(function(el) { 10679 el.addEventListener('click', handleShellCartClick, true); 10680 if (el.href && (el.href.includes('/cart') || el.href.endsWith('/cart')) && !el.href.includes('/cart/')) { 10681 el._ytOrigHref = el.getAttribute('href'); 10682 el.setAttribute('href', 'javascript:void(0)'); 10683 } 10684 }); 10685 10686 var newAtcEls = node.querySelectorAll ? node.querySelectorAll(atcSelectorsStr) : []; 10687 var isAtcSelf = atcTagNames[node.tagName] && node.matches && node.matches(atcSelectorsStr); 10688 var allNewAtc = isAtcSelf ? [node].concat(Array.from(newAtcEls)) : Array.from(newAtcEls); 10689 allNewAtc.forEach(function(el) { 10690 if (el.textContent && el.textContent.toLowerCase().includes('buy')) return; 10691 el.addEventListener('click', handleAtcClick, true); 10692 }); 10693 } catch(e) {} 10694 } 10695 } 10696 10697 shellObserver = new MutationObserver(function(mutations) { 10698 for (var i = 0; i < mutations.length; i++) { 10699 var addedNodes = mutations[i].addedNodes; 10700 for (var j = 0; j < addedNodes.length; j++) { 10701 if (addedNodes[j].nodeType === 1) pendingNodes.push(addedNodes[j]); 10702 } 10703 } 10704 if (pendingNodes.length && !rafScheduled) { 10705 rafScheduled = true; 10706 requestAnimationFrame(processPendingNodes); 10707 } 10708 }); 10709 10710 if (document.body) { 10711 shellObserver.observe(document.body, { childList: true, subtree: true }); 10712 } 10713 } 10714 10715 // ---- ATC Fetch Interception (lightweight, before widget loads) ---- 10716 var origFetch = window.fetch; 10717 window.fetch = function() { 10718 var url = typeof arguments[0] === 'string' ? arguments[0] : 10719 (arguments[0] && arguments[0].url ? arguments[0].url : ''); 10720 var isATC = url.includes('/cart/add.js') || (url.includes('/cart/add') && !url.includes('/cart/add_')); 10721 10722 if (isATC) { 10723 return origFetch.apply(this, arguments).then(function(response) { 10724 if (response.ok) { 10725 // Only handle cart opening before widget takes over. 10726 if (!window.ytCartShellState.takenOver && ytShellShouldAutoOpen) { 10727 refreshShellCart().then(function() { 10728 window.openYtCustomCart(true); 10729 }); 10730 } 10731 } 10732 return response; 10733 }); 10734 } 10735 return origFetch.apply(this, arguments); 10736 }; 10737 10738 // ---- Form Submit Interception for /cart/add ---- 10739 document.addEventListener('submit', function(e) { 10740 if (window.ytCartShellState.takenOver) return; 10741 var form = e.target; 10742 if (!form || !form.action) return; 10743 var isCartAdd = form.action.includes('/cart/add'); 10744 if (!isCartAdd) return; 10745
10746 // Skip Buy it Now forms , may need to enhance this 10747 var hasDynamicCheckoutBtn = form.querySelector && ( 10748 form.querySelector('[data-shopify="payment-button"]') || 10749 form.querySelector('.shopify-payment-button') || 10750 form.querySelector('button[name="goto_checkout"]') 10751 ); 10752 var hasCheckoutReturnTo = form.querySelector && 10753 form.querySelector('[name="return_to"][value*="/checkout"]'); 10754 if (hasDynamicCheckoutBtn || hasCheckoutReturnTo) return; 10755 10756 e.preventDefault(); 10757 e.stopPropagation(); 10758 10759 var formData = new FormData(form); 10760 origFetch('/cart/add', { 10761 method: 'POST', 10762 body: formData, 10763 headers: { 'Accept': 'application/json' }, 10764 credentials: 'same-origin' 10765 }).then(function(response) { 10766 if (response.ok) { 10767 refreshShellCart().then(function() { 10768 if (ytShellShouldAutoOpen) window.openYtCustomCart(true); 10769 }); 10770 } 10771 }).catch(function() {}); 10772 }, true); 10773 10774 // ---- jQuery AJAX Interception ---- 10775 var origJqAjax = null; 10776 function interceptJqueryAjax() { 10777 if (!window.jQuery || typeof window.jQuery.ajax !== 'function') return; 10778 if (origJqAjax) return; 10779 origJqAjax = window.jQuery.ajax; 10780 window.jQuery.ajax = function() { 10781 var args = Array.prototype.slice.call(arguments); 10782 var ajaxOptions = args[0]; 10783 if (typeof ajaxOptions === 'string') { 10784 ajaxOptions = args[1] || {}; 10785 ajaxOptions.url = args[0]; 10786 } 10787 var url = ajaxOptions.url || ''; 10788 if (/\/cart\/(add)(\.js)?/.test(url) && !window.ytCartShellState.takenOver) { 10789 var origComplete = ajaxOptions.complete; 10790 ajaxOptions.complete = function(xhr) { 10791 if ((xhr.status === 200 || xhr.status === 201) && ytShellShouldAutoOpen) { 10792 refreshShellCart().then(function() { 10793 window.openYtCustomCart(true); 10794 }); 10795 } 10796 if (typeof origComplete === 'function') { 10797 origComplete.apply(this, arguments); 10798 } 10799 }; 10800 } 10801 return origJqAjax.apply(this, args); 10802 }; 10803 } 10804 interceptJqueryAjax(); 10805 // Re-try after DOM ready in case jQuery loads late 10806 document.addEventListener('DOMContentLoaded', interceptJqueryAjax); 10807 10808 // ---- XMLHttpRequest Interception for /cart/add ---- 10809 var OrigXHR = window.XMLHttpRequest; 10810 var xhrProtoOpen = OrigXHR.prototype.open; 10811 var xhrProtoSend = OrigXHR.prototype.send; 10812 10813 OrigXHR.prototype.open = function(method, url) { 10814 this._ytUrl = typeof url === 'string' ? url : ''; 10815 this._ytIsCartAdd = /\/cart\/add(\.js)?/.test(this._ytUrl); 10816 return xhrProtoOpen.apply(this, arguments); 10817 }; 10818 10819 OrigXHR.prototype.send = function() { 10820 if (this._ytIsCartAdd && !window.ytCartShellState.takenOver) { 10821 var xhr = this; 10822 var origOnLoad = xhr.onload; 10823 var origOnReady = xhr.onreadystatechange; 10824 10825 function handleXHRDone() { 10826 if (xhr.readyState === 4 && (xhr.status === 200 || xhr.status === 201) && ytShellShouldAutoOpen) { 10827 refreshShellCart().then(function() { 10828 window.openYtCustomCart(true); 10829 }); 10830 } 10831 } 10832 10833 if (typeof origOnLoad === 'function') { 10834 xhr.onload = function() { 10835 handleXHRDone(); 10836 return origOnLoad.apply(this, arguments); 10837 }; 10838 } else { 10839 xhr.addEventListener('load', handleXHRDone); 10840 } 10841 } 10842 return xhrProtoSend.apply(this, arguments); 10843 }; 10844 10845 10846 // ---- Init ---- 10847 createShell(); 10848 interceptCartIcons(); 10849 })(); 10850 } 10851 10852 10853 async function initializeYourToken() { 10854 try { 10855 if (window?.Shopify?.country === 'IN' || window?.Shopify?.shop === 'jagat-pharma-global.myshopify.com') { 10856 10857 const appEmbedContainer = document.createElement('div'); 10858 appEmbedContainer.innerHTML = ` 10859 <div id="yt001-widget-reward"></div> 10860 <div id="yt-widget-div"></div> 10861 `; 10862 document.body.appendChild(appEmbedContainer); 10863 10864 try { 10865 const data = { 10866 customerId: '', 10867 customerEmail: '', 10868 storeId: '54912745725', 10869 storeDomain: 'soulflower-bc21.myshopify.com', 10870 storeEmail: '[email protected]', 10871 cartAmount: '0', 10872 cartQty: '0', 10873 enableLoyaltyTiers: null, 10874 tokenCreditPercentage: null, 10875 alternatePaymentRedemptionRate: null, 10876 loyaltyWidgetOpen: null, 10877 widgetThemeColor: null, 10878 brandLogoId: null, 10879 brandLogoPath: null, 10880 r2LogoPath: null, 10881 loyaltyPointsCapOnCartAmount: null, 10882 shopifyStoreTheme: null, 10883 enableRedeemInCartOffers: null, 10884 brandTokenName: null, 10885 widgetRegistrationType: null, 10886 showRegistrationNudge: null, 10887 maxTokensRedeemableAsDiscount: null, 10888 pointsValueWithInr: null, 10889 loyaltyRibbonTextColor: null, 10890 ytCustomCart: {"showMetafieldBasedRecs":false,"showCollectionBasedRecs":false,"showManualProductRecs":false,"showDynamicProductRecs":false,"recommendedCollectionsList":[],"collectionRecsLimits":0,"dynamicProductRecsLimit":10,"cartTitle":"Your Cart","cartBackgroun
10890dColor":"#ffffff","exploreCtaColor":"#000000","enableCustomCart":true,"recommendedProductsList":{"productHandles":[],"productIds":[],"variantSelections":[]},"checkoutType":"gokwik","showBackdrop":true,"discountInCheckoutButton":false,"ctaButtonBackgroundColor":"#e9176e","ctaButtonTextColor":"#FFFFFF","primaryTextColor":"#000000","productRecsCtaButtonText":"Add","productRecsTitleText":"PEOPLE ALSO BOUGHT","emptyProductRecsTitleText":"You might also like","productRecsCardLayout":"vertical","productRecsCardListVariant":"scroll","secondaryTextColor":"#1A1A1A","showProductRecsOnDesktop":true,"showProductRecsOnMobile":true,"showEmptyCartRecommendations":false,"themeColor":"#ffaacc","themeTextColor":"#000000","showGSTOption":false,"enableCustomCartOpenOnProductAdd":true,"showNoteOption":false,"showEditOptionOnProducts":true,"showVariantSelectionDropdownInProductRecs":true,"postalCodeList":[],"enableGeoLocationRestriction":false,"showStickyAddToCart":false,"cartGeoLocationValidatorData":{},"enableCustomCartOnCartPage":true,"showCartTimer":false,"cartTimerInMinutes":5,"cartTimerCustomText":"Your products are reserved in cart for","cartTimerData":{"showTimer":true,"minutes":5,"customText":"Your products are reserved in cart for"},"cartComponentsCornerType":"rounded","cartComponentsCornerRadius":6,"giftWrapData":{},"stickyAddToCartProductBarData":{},"cartOffersCarousalData":{"enableCartOffersCarousel":true,"slidesCount":1,"pauseTimer":2,"backgroundColor":"#f8e71c","primaryTextColor":"","secondaryTextColor":"","slides":[{"criteria":[],"imageUrl":"https:\/\/r2.yourtoken.io\/38e0213717e9bbe33b3a8.jpg","slideType":"TextFieldOnly","slideNumber":1,"campaignCode":"","criteriaCount":0,"enableMarquee":true,"textAlignment":"center","redirectionUrl":"","titleTextField":"Add 2 Products to Avail B1G1 Free!","descriptionTextField":"","enableCustomCriteria":false}]},"freebieMilestoneData":{},"trustedBadgeData":{},"freebieClaimData":{},"floatingCartData":{},"couponSelectionData":{},"uploadImageAddonData":{},"checkoutSectionData":{},"drawerLayoutData":{},"cartGstSectionData":{},"bxgyDiscountsEnabled":true,"switchWidthVariant":true}, 10891 ytConfigSource: 'app', 10892 signinCTAVisibility: true, 10893 currentProduct: null, 10894 enableRewardBadgeOnStorefront: null, 10895 enableAltPayWithPoints: null, 10896 }; 10897 window.ytapp = data; 10898 } catch (error) { 10899 console.error('Error in app-embed script:', error); 10900 } 10901 10902 // create resource hints for the app's script CDN (dynamic origin) 10903 try { 10904 const scriptSrc = 'https://cdn.shopify.com/extensions/01a12096-e266-7563-ad9e-195a334008ad/yourtoken-2-1200/assets/index.js'; 10905 const scriptUrl = new URL(scriptSrc, window.location.href); 10906 const origin = scriptUrl.origin; 10907 10908 // Add preconnect and dns-prefetch for app CDN if not already present 10909 if (!document.querySelector(`link[rel="preconnect"][href="${origin}"]`)) { 10910 const pc = document.createElement('link'); 10911 pc.rel = 'preconnect'; 10912 pc.href = origin; 10913 pc.crossOrigin = ''; 10914 document.head.appendChild(pc); 10915 } 10916 10917 if (!document.querySelector(`link[rel="dns-prefetch"][href="${origin}"]`)) { 10918 const dp = document.createElement('link'); 10919 dp.rel = 'dns-prefetch'; 10920 dp.href = origin; 10921 document.head.appendChild(dp); 10922 } 10923 10924 // Preload the main script for early fetch 10925 if (!document.querySelector(`link[rel="preload"][href="${scriptSrc}"]`)) { 10926 const pl = document.createElement('link'); 10927 pl.rel = 'preload'; 10928 pl.as = 'script'; 10929 pl.href = scriptSrc; 10930 pl.crossOrigin = ''; 10931 document.head.appendChild(pl); 10932 } 10933 10934 // Create and append the script with high priority 10935 const script = document.createElement('script'); 10936 script.src = scriptSrc; 10937 script.fetchPriority = 'high'; 10938 script.crossOrigin = ''; 10939 script.defer = 'soulflower-bc21.myshopify.com' === "robocraze-com.myshopify.com"; 10940 document.body.appendChild(script); 10941 } catch (error) { 10942 console.error('Error loading script:', error); 10943 } 10944 10945 const style = document.createElement('link'); 10946 style.rel = 'stylesheet'; 10947 style.href = 'https://cdn.shopify.com/extensions/01a12096-e266-7563-ad9e-195a334008ad/yourtoken-2-1200/assets/index.css'; 10948 document.head.appendChild(style); 10949 10950 // Signal that initialization started (shell system handles cart protection now) 10951 window.ytInitStarted = true; 10952 10953 } 10954 10955 } catch (error) { 10956 console.error('Error initializing:', error); 10957 } 10958 } 10959 10960 10961 initializeYourToken(); 10962 </script>
10962 10963</div> 10964 10965 10966</div>
10966<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
10966 10967</body><style> 10968 .shopify-payment-button, .additional-checkout-buttons, .cart__dynamic-checkout-buttons, 10969 shopify-accelerated-checkout, shopify-accelerated-checkout-cart{ display:none !important; } 10970 #mcr-pop{ position:fixed; inset:0; z-index:2147483647; display:none; align-items:center; justify-content:center; 10971 padding:16px; background:rgba(0,0,0,.45); } 10972 #mcr-pop.is-open{ display:flex; } 10973 #mcr-pop .mcr-card{ position:relative; width:100%; max-width:360px; background:#fff; border-radius:14px; 10974 padding:26px 22px 20px; text-align:center; box-shadow:0 10px 40px rgba(0,0,0,.25); font-family:inherit; color:#1a1a1a; 10975 animation:mcrIn .2s ease-out; } 10976 @keyframes mcrIn{ from{ transform:translateY(12px); opacity:0; } to{ transform:none; opacity:1; } } 10977 #mcr-pop .mcr-x{ position:absolute; top:8px; right:10px; border:0; background:none; font-size:24px; line-height:1; 10978 cursor:pointer; color:#555; padding:4px; } 10979 #mcr-pop .mcr-ico{ font-size:34px; line-height:1; margin-bottom:8px; } 10980 #mcr-pop .mcr-t{ margin:0 0 6px; font-size:17px; font-weight:700; } 10981 #mcr-pop .mcr-d{ margin:0 0 16px; font-size:14px; line-height:1.45; color:#444; } 10982 #mcr-pop .mcr-b{ width:100%; height:44px; border:0; border-radius:8px; background:#e9176e; color:#fff; 10983 font-size:15px; font-weight:600; letter-spacing:.5px; cursor:pointer; } 10984</style> 10985
10986<script> 10987(function(){ 10988 if (window.__minCartRule) return; window.__minCartRule = true; 10989 10990 var CFG = { 10991 min: 2, 10992 tag: "only-99-store", 10993 title: "Add {n} more product{s} in the cart", 10994 text: "Add 2+ products to avail Buy 1 Get 1 FREE!", 10995 btn: "Add more products", 10996 url: "\/" 10997 }; 10998 var ROOT = (window.Shopify && Shopify.routes && Shopify.routes.root) || '/'; 10999 var CHECKOUT_SEL = [ 11000 '#yt-checkout-button', '.yt-checkout-button', /* YourToken cart drawer */ 11001 '[name="checkout"]', '#CartDrawer-Checkout', '#checkout', '.cart__checkout-button', 11002 'a[href*="/checkout"]', 'form[action*="/checkout"] [type="submit"]' 11003 ].join(','); 11004 11005 var nativeFetch = window.fetch.bind(window); 11006 var state = { ok: true, need: 0, at: 0 }; 11007 var tagCache = {}, running = null, bypass = false; 11008 11009 /* ---------- cart check ---------- */ 11010 function tagsFor(handle){ 11011 if (!tagCache[handle]) { 11012 tagCache[handle] = nativeFetch(ROOT + 'products/' + handle + '.js', { credentials: 'same-origin' }) 11013 .then(function(r){ return r.ok ? r.json() : { tags: [] }; }) 11014 .then(function(p){ 11015 var t = p.tags || []; 11016 if (typeof t === 'string') t = t.split(','); 11017 return t.map(function(s){ return String(s).trim().toLowerCase(); }); 11018 }) 11019 .catch(function(){ return []; }); 11020 } 11021 return tagCache[handle]; 11022 } 11023 11024 function isGift(it){ 11025 if (it.final_line_price > 0) return false; /* paid line */ 11026 var names = (it.discounts || []).map(function(d){ return d.title || ''; }) 11027 .concat((it.line_level_discount_allocations || []).map(function(a){ 11028 return (a.discount_application && a.discount_application.title) || ''; 11029 })).join(' '); 11030 if (/b1g1|bogo|buy\s*1|buy\s*one/i.test(names)) return false; /* free because of B1G1 = real product */ 11031 return true; /* â¹0 line = free gift */ 11032 } 11033 11034 function evaluate(){ 11035 if (running) return running; 11036 running = nativeFetch(ROOT + 'cart.js', { credentials: 'same-origin', cache: 'no-store' }) 11037 .then(function(r){ return r.json(); }) 11038 .then(function(cart){ 11039 var items = (cart.items || []).filter(function(it){ return !isGift(it); }); 11040 return Promise.all(items.map(function(it){ return tagsFor(it.handle); })).then(function(tagLists){ 11041 var count = 0; 11042 items.forEach(function(it, i){ if (tagLists[i].indexOf(CFG.tag) === -1) count += it.quantity; }); 11043 state.need = count > 0 ? Math.max(0, CFG.min - count) : 0; /* only-99 / empty cart â allowed */ 11044 state.ok = state.need === 0; 11045 state.at = Date.now(); 11046 return state; 11047 }); 11048 }) 11049 .catch(function(){ state.ok = true; state.need = 0; state.at = Date.now(); return state; }) /* fail open */ 11050 .then(function(s){ running = null; return s; }); 11051 return running; 11052 } 11053 11054 /* re-check whenever the cart changes (fetch + XHR) */ 11055 var CART_CHANGE = /\/cart\/(add|change|update|clear)/; 11056 window.fetch = function(input, init){ 11057 var p = nativeFetch(input, init); 11058 try { 11059 var u = typeof input === 'string' ? input : (input && input.url) || ''; 11060 if (CART_CHANGE.test(u)) p.then(function(){ state.at = 0; evaluate(); }, function(){}); 11061 } catch(e){} 11062 return p; 11063 }; 11064 var xOpen = XMLHttpRequest.prototype.open; 11065 XMLHttpRequest.prototype.open = function(m, url){ 11066 if (CART_CHANGE.test(String(url))) this.addEventListener('loadend', function(){ state.at = 0; evaluate(); }); 11067 return xOpen.apply(this, arguments); 11068 }; 11069 11070 /* ---------- popup ---------- */ 11071 function showMsg(n){ 11072 var box = document.getElementById('mcr-pop'); 11073 if (!box) { 11074 box = document.createElement('div'); 11075 box.id = 'mcr-pop'; 11076 box.innerHTML = '<div class="mcr-card" role="alertdialog" aria-modal="true" aria-labelledby="mcr-t">' + 11077 '<button type="button" class="mcr-x" aria-label="Close">×</button>' + 11078 '<div class="mcr-ico">ð</div><p class="mcr-t" id="mcr-t"></p><p class="mcr-d"></p>' + 11079 '<button type="button" class="mcr-b"></button></div>'; 11080 document.body.appendChild(box); 11081 box.addEventListener('click', function(e){ 11082 if (e.target.closest('.mcr-b')) { window.location.href = CFG.url; return; } 11083 if (e.target === box || e.target.closest('.mcr-x')) box.classList.remove('is-open'); 11084 }); 11085 document.addEventListener('keydown', function(e){ if (e.key === 'Escape') box.classList.remove('is-open'); }); 11086 } 11087 box.querySelector('.mcr-t').textContent = CFG.title.replace('{n}', n).replace('{s}', n > 1 ? 's' : ''); 11088 box.querySelector('.mcr-d').textContent = CFG.text; 11089 box.querySelector('.mcr-b').textContent = CFG.btn; 11090 box.classList.add('is-open'); 11091 box.querySelector('.mcr-b').focus(); 11092 } 11093 11094 /* ---------- intercept checkout (works inside the YourToken drawer too) ---------- */ 11095 function checkoutBtn(e){ 11096 var path = e.composedPath ? e.composedPath() : [e.target]; 11097 for (var i = 0; i < path.length; i++) { 11098 var el = path[i]; 11099 if (el && el.nodeType === 1 && el.matches && el.matches(CHECKOUT_SEL)) return el; 11100 } 11101 return null; 11102 } 11103 11104 /* start checking the moment a finger/mouse goes down on checkout */ 11105 window.addEventListener('pointerdown', function(e){ if (checkoutBtn(e)) evaluate(); }, true); 11106 11107 window.addEventListener('click', function(e){ 11108 if (bypass) return; 11109 var btn = checkoutBtn(e); 11110 if (!btn) return; 11111 if (state.ok && Date.now() - state.at < 4000) return; /* fresh + allowed â go */ 11112 e.preventDefault(); e.stopPropagation(); e.stopImmediatePropagation(); 11113 evaluate().then(function(s){ 11114 if (s.ok) { bypass = true; btn.click(); bypass = false; } 11115 else showMsg(s.need); 11116 }); 11117 }, true); 11118 11119 /* cart page form submitted with Enter */ 11120 window.addEventListener('submit', function(e){ 11121 var f = e.target, sub = e.submitter; 11122 var toCheckout = (f.action || '').indexOf('/checkout') > -1 || (sub && sub.name === 'checkout'); 11123 if (!toCheckout || bypass) return; 11124 if (state.ok && Date.now() - state.at < 4000) return; 11125 e.preventDefault(); e.stopImmediatePropagation(); 11126 evaluate().then(function(s){ 11127 if (s.ok) { bypass = true; sub ? sub.click() : f.submit(); bypass = false; } 11128 else showMsg(s.need); 11129 }); 11130 }, true); 11131 11132 if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', evaluate); else evaluate(); 11133})(); 11134</script>
11134 11135 11136 11137 11138 11139<style> 11140 /* status note at the top of the section */ 11141 .bb-note{ display:flex; justify-content:center; padding:14px 16px 4px; } 11142 .bb-note span{ 11143 display:inline-flex; align-items:center; gap:8px; 11144 padding:10px 18px; border-radius:999px; color:#fff; 11145 font-size:15px; font-weight:600; line-height:1.3; text-align:center; 11146 } 11147 .bb-note--open span{ background:#1f9d55; } /* green while open */ 11148 .bb-note--open span::before{ content:""; width:8px; height:8px; border-radius:50%; background:#fff; animation:bb-pulse 1.4s infinite; } 11149 .bb-note--closed span{ background:#c8386b; } /* pink when closed */ 11150 @keyframes bb-pulse{ 0%,100%{ opacity:1 } 50%{ opacity:.3 } } 11151 11152 /* closed â everything except the note is faded and locked */ 11153 .bb-closed > *:not(.bb-note){ opacity:.35; filter:grayscale(1); pointer-events:none !important; user-select:none; transition:opacity .4s, filter .4s; } 11154#shopify-section-template--34635673698557__bundle_builder .yt-byob-header-content, 11155#shopify-section-template--34635673698557__bundle_builder .yt-byob-filters-wrapper,.yt-byob-tracker-offer-tier-tag, .section-template--34635673698557__custom_liquid_znjJ3z-padding { 11156 display: none !important; 11157} 11158 11159.yt-byob-layout-wrapper{ 11160width:100% !important; 11161} 11162 11163</style> 11164
11165<script> 11166(function(){ 11167 /* ---------------- CONFIG ---------------- */ 11168 var SECTION = '#shopify-section-template--34635673698557__bundle_builder'; 11169 var OPEN_H = 20; /* opens at 08:00 IST */ 11170 var CLOSE_H = 24; /* closes at 12:00 IST */ 11171 var MESSAGE = "Today's drop is closed. Come back tomorrow between 8:00 AM and 12:00 PM."; 11172 var MESSAGE_EARLY = 'Opens today at 8:00 PM'; 11173 var MESSAGE_OPEN = 'Open till 12:00 AM'; /* shown in green while live */ 11174 /* ---------------------------------------- */ 11175 11176 function istHour(){ 11177 /* current time in India (UTC+5:30), independent of the visitor's clock zone */ 11178 var now = new Date(); 11179 var ist = new Date(now.getTime() + now.getTimezoneOffset() * 60000 + 330 * 60000); 11180 return ist.getHours() + ist.getMinutes() / 60; 11181 } 11182 11183 function apply(){ 11184 var h = istHour(); 11185 var open = h >= OPEN_H && h < CLOSE_H; 11186 document.querySelectorAll(SECTION).forEach(function(sec){ 11187 sec.classList.toggle('bb-closed', !open); 11188 var note = sec.querySelector(':scope > .bb-note'); 11189 if (!note){ note = document.createElement('div'); note.innerHTML = '<span></span>'; sec.insertBefore(note, sec.firstChild); } 11190 note.className = 'bb-note ' + (open ? 'bb-note--open' : 'bb-note--closed'); 11191 note.querySelector('span').textContent = open ? MESSAGE_OPEN : (h < OPEN_H ? MESSAGE_EARLY : MESSAGE); 11192 sec.setAttribute('aria-disabled', open ? 'false' : 'true'); 11193 /* keep keyboard users out too */ 11194 sec.querySelectorAll('a, button, input, select, textarea').forEach(function(el){ 11195 if (!open){ if (!el.hasAttribute('data-bb-tab')) el.setAttribute('data-bb-tab', el.getAttribute('tabindex') || ''); el.setAttribute('tabindex','-1'); } 11196 else if (el.hasAttribute('data-bb-tab')){ var t = el.getAttribute('data-bb-tab'); t ? el.setAttribute('tabindex', t) : el.removeAttribute('tabindex'); el.removeAttribute('data-bb-tab'); } 11197 }); 11198 }); 11199 } 11200 11201 if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', apply); else apply(); 11202 setInterval(apply, 30000); /* opens / closes on its own while the page is open */ 11203})(); 11204</script>
11204 11205 11206 11207 11208 11209 11210</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.