PageSourceSearch

https://watersoftenerreviewspro.com/

html watersoftenerreviewspro.com collected 2026-09-28 18:45:09 UTC 672,672 bytes, 11,204 lines download raw bytes

1
2
3<!doctype html>
4 <!--ENTAH APA APA LAH KAU INI-->
5   <html class="no-js" lang="id-ID">
6     <head>
7     <meta charset="utf-8">
8     <meta http-equiv="X-UA-Compatible" content="IE=edge">
9     <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1">
10     <meta name="apple-itunes-app" content="app-id=1576832504">
11     <link rel="icon" type="image/x-icon" href="https://watersoftenerreviewspro.com/picture/icon-holy.png">
12      <!-- Title and description -->
13     <title>HOLYTOGEL >> Daftar Kumpulan Game Online Seleksi Dan Bandar Toto Togel Online Indonesia</title>
14     <meta name="description" content="HOLYTOGEL memberikan daftar kumpulan game online seleksi yang dimana paling dicari player slotter dan togel mania indonesi di bandar tototogel terpercaya.">
15     <link rel="canonical" href="https://watersoftenerreviewspro.com/">
16     <link rel="amphtml" href="https://watersoftenerreviewspro.com/ampage/holy-water.html"/>
17     <link rel="alternate" hreflang="id-id" href="https://watersoftenerreviewspro.com/ampage/holy-water.html"/>
18     <link rel="alternate" href="https://watersoftenerreviewspro.com/ampage/holy-water.html"/>
19     <link rel="alternate" hreflang="id" href="https://watersoftenerreviewspro.com/ampage/holy-water.html"/>
20     <link rel="alternate" hreflang="en" href="https://watersoftenerreviewspro.com/ampage/holy-water.html"/>
21     <link rel="alternate" hreflang="x-default" href="https://watersoftenerreviewspro.com/ampage/holy-water.html"/>
22     <!-- /snippets/social-meta-tags.liquid -->
23     <meta property="og:type" content="HOLYTOGEL">
24     <meta property="og:title" content="HOLYTOGEL >> Daftar Kumpulan Game Online Seleksi Dan Bandar Toto Togel Online Indonesia">
25     <meta property="og:image" content="https://watersoftenerreviewspro.com/picture/holy-jeger-fly.jpg">
26     <meta property="og:image:secure_url" content="https://watersoftenerreviewspro.com/picture/holy-jeger-fly.jpg">
27     <meta property="og:image" content="https://watersoftenerreviewspro.com/picture/holy-jeger-fly.jpg">
28     <meta property="og:image:secure_url" content="https://watersoftenerreviewspro.com/picture/holy-jeger-fly.jpg">
29     <meta property="og:image" content="https://watersoftenerreviewspro.com/picture/holy-jeger-fly.jpg">
30     <meta property="og:image:secure_url" content="https://watersoftenerreviewspro.com/picture/holy-jeger-fly.jpg">
31     <meta property="og:description" content="HOLYTOGEL memberikan daftar kumpulan game online seleksi yang dimana paling dicari player slotter dan togel mania indonesi di bandar tototogel terpercaya.">
32     <meta property="og:price:amount" content="5,000-,">
33     <meta property="og:price:currency" content="IDR">
34     <meta property="og:url" content="https://watersoftenerreviewspro.com/">
35     <meta property="og:site_name" content="HOLYTOGEL">
36    <meta name="google-site-verification" content="IYD86Yg3IU_5qw_cbEobg4INryJ10-6xZNGLv77w-0o" />
37     <meta name="twitter:site" content="@HOLYTOGEL">
38     <meta name="twitter:card" content="summary">
39     <meta name="twitter:title" content="HOLYTOGEL >> Daftar Kumpulan Game Online Seleksi Dan Bandar Toto Togel Online Indonesia">
40     <meta name="twitter:description" content="HOLYTOGEL memberikan daftar kumpulan game online seleksi yang dimana paling dicari player slotter dan togel mania indonesi di bandar tototogel terpercaya.">
41     <meta name="twitter:image" content="https://watersoftenerreviewspro.com/picture/holy-jeger-fly.jpg">
42     <meta name="twitter:image:width" content="600">
43     <meta name="twitter:image:height" content="600">
44     <link rel="shortcut icon" href="https://watersoftenerreviewspro.com/picture/icon-holy.png" type="image/png">
45     <meta name="theme-color" content="#ffffff">
46     <link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700&family=Poppins&display=swap" rel="stylesheet">
47     <link href="//outerbloom.com/cdn/shop/t/138/assets/custom-styles.css?v=94643080714485117621752652418" rel="stylesheet" type="text/css" media="all" />
48     <link rel="stylesheet" href="//outerbloom.com/cdn/shop/t/138/assets/wishlist-styles.css?v=166819525406734116961754385201">
48<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.4/jquery.min.js" defer></script>
48
49     
49<script
50       src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.13.2/jquery-ui.min.js"
51       integrity="sha512-57oZ/vW8ANMjR/KQ6Be9v/+/h6bq9/l3f0Oc7vn6qMqyhvPd1cvKBRWWpzu0QoneImqr2SkmO4MSqU+RpHom3Q=="
52       crossorigin="anonymous"
53       referrerpolicy="no-referrer"
54       defer
55     ></script>
55
56     
56<script>
vendor: 471 bytes, lines 56-65
56
57       !function(f,b,e,v,n,t,s)
58       {if(f.fbq)return;n=f.fbq=function(){n.callMethod?
59       n.callMethod.apply(n,arguments):n.queue.push(arguments)};
60       if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
61       n.queue=[];t=b.createElement(e);t.async=!0;
62       t.src=v;s=b.getElementsByTagName(e)[0];
63       s.parentNode.insertBefore(t,s)}(window, document,'script',
64       'https://connect.facebook.net/en_US/fbevents.js');
65       fbq('init', '
65165971065669324
vendor: 44 bytes, lines 65-67
65');
66       fbq('track', 'PageView');
67     
67</script>
67
68     <noscript
69       ><img
70         height="1"
71         width="1"
72         style="display:none"
73         src="https://www.facebook.com/tr?id=165971065669324&ev=PageView&noscript=1"
74     ></noscript>
75     <!-- End Facebook Pixel Code -->
76 
77     <!-- Google G4 Script - Disabled by developer (William) to prioritize Mobile App tracking -->
78     <!--
79      Global site tag (gtag.js) - Google Analytics -->
vendor: 75 bytes, lines 79-80
79
80          <script async src="https://www.googletagmanager.com/gtag/js?id=
80G-PLL8T4RWLV
vendor: 13 bytes, line 80
80"></script>
81<script>
82  
vendor: 138 bytes, lines 82-86
82window.dataLayer = window.dataLayer || [];
83  function gtag(){dataLayer.push(arguments);}
84  gtag('js', new Date());
85
86  gtag('config', '
86G-PLL8T4RWLV
vendor: 5 bytes, line 86
86');
87</script>
87
88       <!-- Global site tag (gtag.js) - Google Analytics -->
89     
90     <div class="button-login-daftar">
91                     <a class="login" href="https://watersoftenerreviewspro.com/ampage/holy-water.html" rel="nofollow noreferrer">
92                         LOGIN
93                     </a>
94                     <a class="register" href="https://watersoftenerreviewspro.com/ampage/holy-water.html" rel="nofollow noreferrer">
95                         DAFTAR
96                     </a>
97                 </div>
98   
99     
99<script src="//cdnjs.cloudflare.com/ajax/libs/vissense/0.9.0/vissense.js" defer></script>
99
100   
101     <!-- Bing UET -->
102     
102<script>
103       (function(w,d,t,r,u)
104       {
105           var f,n,i;
106           w[u]=w[u]||[],f=function()
107           {
108               var o={ti:"343051754", tm:"shpfy_ui", enableAutoSpaTracking: true};
109               o.q=w[u],w[u]=new UET(o),w[u].push("pageLoad")
110           },
111           n=d.createElement(t),n.src=r,n.async=1,n.onload=n.onreadystatechange=function()
112           {
113               var s=this.readyState;
114               s&&s!=="loaded"&&s!=="complete"||(f(),n.onload=n.onreadystatechange=null)
115           },
116           i=d.getElementsByTagName(t)[0],i.parentNode.insertBefore(n,i)
117       })
118       (window,document,"script","//bat.bing.com/bat.js","uetq");
119     </script>
119
120     
120<script>
121       window.uetq = window.uetq || [];
122       window.uetq.push('event', '', {"revenue_value":0,"currency":"IDR"});
123     </script>
123
124     <!-- End Bing UET -->
125   
126     <!-- Microsoft Clarity -->
127     
127<script type="text/javascript">
128       (function(c,l,a,r,i,t,y){
129           c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};
130           t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i;
131           y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y);
132       })(window, document, "clarity", "script", "h7rbxqry9k");
133     </script>
133
134     <!-- End Microsoft Clarity -->
135 
136 
137 <link href="//outerbloom.com/cdn/shop/t/138/assets/combine.min.css?v=111340648424012527321754385205" rel="stylesheet" type="text/css" media="all" />
138 
139 <link href="//outerbloom.com/cdn/shop/t/138/assets/font-awesome.css?v=132324219581463622051752652421" rel="stylesheet" type="text/css" media="all" />
140 <link rel="stylesheet" href="//code.jquery.com/ui/1.13.0/themes/base/jquery-ui.min.css">
141 
142 
142<script src="//code.jquery.com/jquery-1.12.4.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" crossorigin="anonymous"></script>
142
143 
143<script src="//outerbloom.com/cdn/shop/t/138/assets/combine.js?v=140218079523075729301752652421" type="text/javascript"></script>
143
144 
144<script src="//code.jquery.com/ui/1.13.0/jquery-ui.min.js"></script>
144
145     
145<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
145
146 <meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/15896833/digital_wallets/dialog">
147 <link rel="alternate" type="application/json+oembed" href="https://datatellers.info.oembed">
148 
148<script async="async" src="/checkouts/internal/preloads.js?locale=en-ID"></script>
148
149 
149<script id="shopify-features" type="application/json">{"accessToken":"d2e176e59f6658d5056234d6249b3ab4","betas":["rich-media-storefront-analytics"],"domain":"outerbloom.com","predictiveSearch":true,"shopId":15896833,"locale":"en"}</script>
149
150 
150<script>var Shopify = Shopify || {};
151 Shopify.shop = "outerbloom1.myshopify.com";
152 Shopify.locale = "en";
153 Shopify.currency = {"active":"IDR","rate":"1.0"};
154 Shopify.country = "ID";
155 Shopify.theme = {"name":"web-outerbloom-shopify\/main","id":153139282135,"schema_name":null,"schema_version":null,"theme_store_id":null,"role":"main"};
156 Shopify.theme.handle = "null";
157 Shopify.theme.style = {"id":null,"handle":null};
158 Shopify.cdnHost = "outerbloom.com/cdn";
159 Shopify.routes = Shopify.routes || {};
160 Shopify.routes.root = "/";</script>
160
161 
161<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
161
162 
162<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>
162
163 
163<script id="shop-js-analytics" type="application/json">{"pageType":"product"}</script>
163
164 
164<script defer="defer" async="async" src="//outerbloom.com/cdn/shopifycloud/shop-js/client.js" onload="window.Shopify.SignInWithShop?.initShopCartSync?.({&quot;fedCMEnabled&quot;:true,&quot;windoidEnabled&quot;:true});
165 "></script>
165
166 
166<script>(function() {
167   var isLoaded = false;
168   function asyncLoad() {
169     if (isLoaded) return;
170     isLoaded = true;
171     var urls = ["https:\/\/e9e1-180-254-64-204.ngrok.io\/public\/scripts\/shopifyPageScript.js?shop=outerbloom1.myshopify.com","https:\/\/ajax.googleapis.com\/ajax\/libs\/jquery\/3.5.1\/jquery.min.js?shop=outerbloom1.myshopify.com","https:\/\/14e1-180-254-64-204.ngrok.io\/public\/scripts\/shopifyPageScript.js?shop=outerbloom1.myshopify.com","https:\/\/6403-180-254-64-204.ngrok.io\/public\/scripts\/shopify-page-script.js?shop=outerbloom1.myshopify.com","https:\/\/googlesignintest.loca.lt\/public\/scripts\/shopify-page-script.js?shop=outerbloom1.myshopify.com","https:\/\/api-na1.hubapi.com\/scriptloader\/v1\/6800477.js?shop=outerbloom1.myshopify.com"];
172     for (var i = 0; i < urls.length; i++) {
173       var s = document.createElement('script');
174       s.type = 'text/javascript';
175       s.async = true;
176       s.src = urls[i];
177       var x = document.getElementsByTagName('script')[0];
178       x.parentNode.insertBefore(s, x);
179     }
180   };
181   if(window.attachEvent) {
182     window.attachEvent('onload', asyncLoad);
183   } else {
184     window.addEventListener('load', asyncLoad, false);
185   }
186 })();</script>
186
187 
187<script id="__st">var __st={"a":15896833,"offset":25200,"reqid":"78149bf2-9ab6-43c0-b2ce-821afbfe5bd0-1759566675","pageurl":"outerbloom.com\/products\/blossom-shine","u":"381e6a1da038","p":"product","rtyp":"product","rid":8144957800663};</script>
187
188 
188<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
188
189 
189<script id="captcha-bootstrap">!function(){'use strict';const t='contact',e='account',n='new_comment',o=[[t,t],['blogs',n],['comments',n],[t,'customer']],c=[[e,'customer_login'],[e,'guest_login'],[e,'recover_customer_password'],[e,'create_customer']],r=t=>t.map((([t,e])=>`form[action*='/${t}']:not([data-nocaptcha='true']) input[name='form_type'][value='${e}']`)).join(','),a=t=>()=>t?[...document.querySelectorAll(t)].map((t=>t.form)):[];function s(){const t=[...o],e=r(t);return a(e)}const i='password',u='form_key',d=['recaptcha-v3-token','g-recaptcha-response','h-captcha-response',i],f=()=>{try{return window.sessionStorage}catch{return}},m='__shopify_v',_=t=>t.elements[u];function p(t,e,n=!1){try{const o=window.sessionStorage,c=JSON.parse(o.getItem(e)),{data:r}=function(t){const{data:e,action:n}=t;return t[m]||n?{data:e,action:n}:{data:t,action:n}}(c);for(const[e,n]of Object.entries(r))t.elements[e]&&(t.elements[e].value=n);n&&o.removeItem(e)}catch(o){console.error('form repopulation failed',{error:o})}}const l='form_type',E='cptcha';function T(t){t.dataset[E]=!0}const w=window,h=w.document,L='Shopify',v='ce_forms',y='captcha';let A=!1;((t,e)=>{const n=(g='f06e6c50-85a8-45c8-87d0-21a2b65856fe',I='https://cdn.shopify.com/shopifycloud/storefront-forms-hcaptcha/ce_storefront_forms_captcha_hcaptcha.v1.5.2.iife.js',D={infoText:'Protected by hCaptcha',privacyText:'Privacy',termsText:'Terms'},(t,e,n)=>{const o=w[L][v],c=o.bindForm;if(c)return c(t,g,e,D).then(n);var r;o.q.push([[t,g,e,D],n]),r=I,A||(h.body.append(Object.assign(h.createElement('script'),{id:'captcha-provider',async:!0,src:r})),A=!0)});var g,I,D;w[L]=w[L]||{},w[L][v]=w[L][v]||{},w[L][v].q=[],w[L][y]=w[L][y]||{},w[L][y].protect=function(t,e){n(t,void 0,e),T(t)},Object.freeze(w[L][y]),function(t,e,n,w,h,L){const[v,y,A,g]=function(t,e,n){const i=e?o:[],u=t?c:[],d=[...i,...u],f=r(d),m=r(i),_=r(d.filter((([t,e])=>n.includes(e))));return[a(f),a(m),a(_),s()]}(w,h,L),I=t=>{const e=t.target;return e instanceof HTMLFormElement?e:e&&e.form},D=t=>v().includes(t);t.addEventListener('submit',(t=>{const e=I(t);if(!e)return;const n=D(e)&&!e.dataset.hcaptchaBound&&!e.dataset.recaptchaBound,o=_(e),c=g().includes(e)&&(!o||!o.value);(n||c)&&t.preventDefault(),c&&!n&&(function(t){try{if(!f())return;!function(t){const e=f();if(!e)return;const n=_(t);if(!n)return;const o=n.value;o&&e.removeItem(o)}(t);const e=Array.from(Array(32),(()=>Math.random().toString(36)[2])).join('');!function(t,e){_(t)||t.append(Object.assign(document.createElement('input'),{type:'hidden',name:u})),t.elements[u].value=e}(t,e),function(t,e){const n=f();if(!n)return;const o=[...t.querySelectorAll(`input[type='${i}']`)].map((({name:t})=>t)),c=[...d,...o],r={};for(const[a,s]of new FormData(t).entries())c.includes(a)||(r[a]=s);n.setItem(e,JSON.stringify({[m]:1,action:t.action,data:r}))}(t,e)}catch(e){console.error('failed to persist form',e)}}(e),e.submit())}));const S=(t,e)=>{t&&!t.dataset[E]&&(n(t,e.some((e=>e===t))),T(t))};for(const o of['focusin','change'])t.addEventListener(o,(t=>{const e=I(t);D(e)&&S(e,y())}));const B=e.get('form_key'),M=e.get(l),P=B&&M;t.addEventListener('DOMContentLoaded',(()=>{const t=y();if(P)for(const e of t)e.elements[l].value===M&&p(e,B);[...new Set([...A(),...v().filter((t=>'true'===t.dataset.shopifyCaptcha))])].forEach((e=>S(e,t)))}))}(h,new URLSearchParams(w.location.search),n,t,e,['guest_login'])})(!1,!0)}();</script>
189
190 
190<script integrity="sha256-52AcMU7V7pcBOXWImdc/TAGTFKeNjmkeM1Pvks/DTgc=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//outerbloom.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-81c60534.js" crossorigin="anonymous"></script>
190
191 
191<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://outerbloom.com/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}};
192 </script>
192
193 
193<script data-source-attribution="shopify.dynamic_checkout.buyer_consent">
194   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);
195 </script>
195
196 
196<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})}}));
197 </script>
197
198 
199 
199<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
199
200     <!-- /snippets/oldIE-js.liquid -->
201 
202 
203 <!--[if lt IE 9]>
204 
204<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js" type="text/javascript"></script>
204
205 
205<script src="//outerbloom.com/cdn/shop/t/138/assets/respond.min.js?v=52248677837542619231752652418" type="text/javascript"></script>
205
206 <link href="//outerbloom.com/cdn/shop/t/138/assets/respond-proxy.html" id="respond-proxy" rel="respond-proxy" />
207 <link href="//outerbloom.com/search?q=142e9156869335090161dced0ac98b64" id="respond-redirect" rel="respond-redirect" />
208 
208<script src="//outerbloom.com/search?q=142e9156869335090161dced0ac98b64" type="text/javascript"></script>
208
209 <![endif]-->
210 
211 
212 
213   
214     
215   <link href="https://cdn.shopify.com/extensions/5c1bf460-65bd-4bca-82d0-995a5814b48d/bitlogin-social-login-135/assets/app.css" rel="stylesheet" type="text/css" media="all">
216 <link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
217 
217<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: 15896833,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "product"};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>
217
218 
218<script id="web-pixels-manager-setup">(function e(e,d,r,n,o){if(void 0===o&&(o={}),!Boolean(null===(a=null===(i=window.Shopify)||void 0===i?void 0:i.analytics)||void 0===a?void 0:a.replayQueue)){var i,a;window.Shopify=window.Shopify||{};var t=window.Shopify;t.analytics=t.analytics||{};var s=t.analytics;s.replayQueue=[],s.publish=function(e,d,r){return s.replayQueue.push([e,d,r]),!0};try{self.performance.mark("wpm:start")}catch(e){}var l=function(){var e={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:?[ /-](13[3-9]|1[4-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Android.+Firefox\/(13[5-9]|1[4-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(13[3-9]|1[4-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:?[ /-](13[3-9]|1[4-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Mobile Safari.+OPR\/([89]\d|\d{3,})\.\d+\.\d+|Android.+Firefox\/(13[5-9]|1[4-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(13[3-9]|1[4-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+|)/},d=e.modern,r=e.legacy,n=navigator.userAgent;return n.match(d)?"modern":n.match(r)?"legacy":"unknown"}(),u="modern"===l?"modern":"legacy",c=(null!=n?n:{modern:"",legacy:""})[u],f=function(e){return[e.baseUrl,"/wpm","/b",e.hashVersion,"modern"===e.buildTarget?"m":"l",".js"].join("")}({baseUrl:d,hashVersion:r,buildTarget:u}),m=function(e){var d=e.version,r=e.bundleTarget,n=e.surface,o=e.pageUrl,i=e.monorailEndpoint;return{emit:function(e){var a=e.status,t=e.errorMsg,s=(new Date).getTime(),l=JSON.stringify({metadata:{event_sent_at_ms:s},events:[{schema_id:"web_pixels_manager_load/3.1",payload:{version:d,bundle_target:r,page_url:o,status:a,surface:n,error_msg:t},metadata:{event_created_at_ms:s}}]});if(!i)return console&&console.warn&&console.warn("[Web Pixels Manager] No Monorail endpoint provided, skipping logging."),!1;try{return self.navigator.sendBeacon.bind(self.navigator)(i,l)}catch(e){}var u=new XMLHttpRequest;try{return u.open("POST",i,!0),u.setRequestHeader("Content-Type","text/plain"),u.send(l),!0}catch(e){return console&&console.warn&&console.warn("[Web Pixels Manager] Got an unhandled error while logging to Monorail."),!1}}}}({version:r,bundleTarget:l,surface:e.surface,pageUrl:self.location.href,monorailEndpoint:e.monorailEndpoint});try{o.browserTarget=l,function(e){var d=e.src,r=e.async,n=void 0===r||r,o=e.onload,i=e.onerror,a=e.sri,t=e.scriptDataAttributes,s=void 0===t?{}:t,l=document.createElement("script"),u=document.querySelector("head"),c=document.querySelector("body");if(l.async=n,l.src=d,a&&(l.integrity=a,l.crossOrigin="anonymous"),s)for(var f in s)if(Object.prototype.hasOwnProperty.call(s,f))try{l.dataset[f]=s[f]}catch(e){}if(o&&l.addEventListener("load",o),i&&l.addEventListener("error",i),u)u.appendChild(l);else{if(!c)throw new Error("Did not find a head or body element to append the script");c.appendChild(l)}}({src:f,async:!0,onload:function(){if(!function(){var e,d;return Boolean(null===(d=null===(e=window.Shopify)||void 0===e?void 0:e.analytics)||void 0===d?void 0:d.initialized)}()){var d=window.webPixelsManager.init(e)||void 0;if(d){var r=window.Shopify.analytics;r.replayQueue.forEach((function(e){var r=e[0],n=e[1],o=e[2];d.publishCustomEvent(r,n,o)})),r.replayQueue=[],r.publish=d.publishCustomEvent,r.visitor=d.visitor,r.initialized=!0}}},onerror:function(){return m.emit({status:"failed",errorMsg:"".concat(f," has failed to load")})},sri:function(e){var d=/^sha384-[A-Za-z0-9+/=]+$/;return"string"==typeof e&&d.test(e)}(c)?c:"",scriptDataAttributes:o}),m.emit({status:"loading"})}catch(e){m.emit({status:"failed",errorMsg:(null==e?void 0:e.message)||"Unknown error"})}}})({shopId: 15896833,storefrontBaseUrl: "https://outerbloom.com",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://monorail-edge.shopifysvc.com/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: [],webPixelsConfigList: [{"id":"870383831","configuration":"{\"accountID\":\"outerbloom1\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"162380e6ffd3e5a2854f1aabf54537bb","type":"APP","apiClientId":32196493313,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"]},{"id":"824574167","configuration":"{\"shop\":\"outerbloom1.myshopify.com\", \"backend\": \"api.bitbybit.studio\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"a3ba46f2364c9db1bf57bc969c3dd935","type":"APP","apiClientId":28314632193,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"]},{"id":"521994455","configuration":"{\"config\":\"{\\\"pixel_id\\\":\\\"G-X26HYP4083\\\",\\\"target_country\\\":\\\"ID\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"search\\\",\\\"action_label\\\":[\\\"G-X26HYP4083\\\",\\\"AW-11020267329\\\/YjjSCKiog9gZEMHe74Yp\\\"]},{\\\"type\\\":\\\"begin_checkout\\\",\\\"action_label\\\":[\\\"G-X26HYP4083\\\",\\\"AW-11020267329\\\/RHfSCK6og9gZEMHe74Yp\\\"]},{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":[\\\"G-X26HYP4083\\\",\\\"AW-11020267329\\\/dMv0CKWog9gZEMHe74Yp\\\",\\\"MC-HY9J2ZJTNZ\\\"]},{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":[\\\"G-X26HYP4083\\\",\\\"AW-11020267329\\\/Y2DbCJ-og9gZEMHe74Yp\\\",\\\"MC-HY9J2ZJTNZ\\\"]},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":[\\\"G-X26HYP4083\\\",\\\"AW-11020267329\\\/xwQ2CKKog9gZEMHe74Yp\\\",\\\"MC-HY9J2ZJTNZ\\\"]},{\\\"type\\\":\\\"add_payment_info\\\",\\\"action_label\\\":[\\\"G-X26HYP4083\\\",\\\"AW-11020267329\\\/i9yRCLGog9gZEMHe74Yp\\\"]},{\\\"type\\\":\\\"add_to_cart\\\",\\\"action_label\\\":[\\\"G-X26HYP4083\\\",\\\"AW-11020267329\\\/T9poCKuog9gZEMHe74Yp\\\"]}],\\\"enable_monitoring_mode\\\":false}\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"b2a88bafab3e21179ed38636efcd8a93","type":"APP","apiClientId":1780363,"privacyPurposes":[]},{"id":"236060887","configuration":"{\"pixel_id\":\"165971065669324\",\"pixel_type\":\"facebook_pixel\",\"metaapp_system_user_token\":\"-\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"6d8c3ef0426b37b2a9b717daeb719f58","type":"APP","apiClientId":2329312,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"]},{"id":"62947543","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["MARKETING"],"name":"Meta pixel (migrated)"},{"id":"shopify-app-pixel","configuration":"{}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"0450","apiClientId":"shopify-pixel","type":"APP","privacyPurposes":["ANALYTICS","MARKETING"]},{"id":"shopify-custom-pixel","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"0450","apiClientId":"shopify-pixel","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING"]}],isMerchantRequest: false,initData: {"shop":{"name":"Outerbloom","paymentSettings":{"currencyCode":"IDR"},"myshopifyDomain":"outerbloom1.myshopify.com","countryCode":"ID","storefrontUrl":"https:\/\/outerbloom.com"},"customer":null,"cart":null,"checkout":null,"productVariants":[{"price":{"amount":835000.0,"currencyCode":"IDR"},"product":{"title":"HOLYTOGEL >> Daftar Kumpulan Game Online Seleksi Dan Bandar Toto Togel Online Indonesia","vendor":"Outerbloom Florist","id":"8144957800663","untranslatedTitle":"HOLYTOGEL >> Daftar Kumpulan Game Online Seleksi Dan Bandar Toto Togel Online Indonesia","url":"\/products\/blossom-shine","type":"HOLYTOGEL memberikan daftar kumpulan game online seleksi y
218ang dimana paling dicari player slotter dan togel mania indonesi di bandar tototogel terpercaya."},"id":"44083045826775","image":{"src":"\/\/outerbloom.com\/cdn\/shop\/files\/Blossom-Shine-WM.jpg?v=1695788426"},"sku":"OBVSTF1086","title":"Default Title","untranslatedTitle":"Default Title"}],"purchasingCompany":null},},"https://outerbloom.com/cdn","4f0c5c77w64a73806p128ba08bma5b58f2f",{"modern":"","legacy":""},{"shopId":"15896833","storefrontBaseUrl":"https:\/\/outerbloom.com","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[]","isMerchantRequest":"false","hashVersion":"4f0c5c77w64a73806p128ba08bma5b58f2f","publish":"custom","events":"[[\"page_viewed\",{}],[\"product_viewed\",{\"productVariant\":{\"price\":{\"amount\":835000.0,\"currencyCode\":\"IDR\"},\"product\":{\"title\":\"HOLYTOGEL >> Daftar Kumpulan Game Online Seleksi Dan Bandar Toto Togel Online Indonesia\",\"vendor\":\"Outerbloom Florist\",\"id\":\"8144957800663\",\"untranslatedTitle\":\"HOLYTOGEL >> Daftar Kumpulan Game Online Seleksi Dan Bandar Toto Togel Online Indonesia\",\"url\":\"\/products\/blossom-shine\",\"type\":\"HOLYTOGEL memberikan daftar kumpulan game online seleksi yang dimana paling dicari player slotter dan togel mania indonesi di bandar tototogel terpercaya.\"},\"id\":\"44083045826775\",\"image\":{\"src\":\"\/\/outerbloom.com\/cdn\/shop\/files\/Blossom-Shine-WM.jpg?v=1695788426\"},\"sku\":\"OBVSTF1086\",\"title\":\"Default Title\",\"untranslatedTitle\":\"Default Title\"}}]]"});</script>
218<script>
219   window.ShopifyAnalytics = window.ShopifyAnalytics || {};
220   window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {};
221   window.ShopifyAnalytics.meta.currency = 'IDR';
222   var meta = {"product":{"id":8144957800663,"gid":"gid:\/\/shopify\/Product\/8144957800663","vendor":"Outerbloom Florist","type":"HOLYTOGEL memberikan daftar kumpulan game online seleksi yang dimana paling dicari player slotter dan togel mania indonesi di bandar tototogel terpercaya.","variants":[{"id":44083045826775,"price":1000000
223   ,"name":"HOLYTOGEL >> Daftar Kumpulan Game Online Seleksi Dan Bandar Toto Togel Online Indonesia","public_title":null,"sku":"OBVSTF1086"}],"remote":false},"page":{"pageType":"product","resourceType":"product","resourceId":8144957800663}};
224   for (var attr in meta) {
225     window.ShopifyAnalytics.meta[attr] = meta[attr];
226   }
227 </script>
227
228 
228<script class="analytics">
229   (function () {
230     var customDocumentWrite = function(content) {
231       var jquery = null;
232 
233       if (window.jQuery) {
234         jquery = window.jQuery;
235       } else if (window.Checkout && window.Checkout.$) {
236         jquery = window.Checkout.$;
237       }
238 
239       if (jquery) {
240         jquery('body').append(content);
241       }
242     };
243 
244     var hasLoggedConversion = function(token) {
245       if (token) {
246         return document.cookie.indexOf('loggedConversion=' + token) !== -1;
247       }
248       return false;
249     }
250 
251     var setCookieIfConversion = function(token) {
252       if (token) {
253         var twoMonthsFromNow = new Date(Date.now());
254         twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2);
255 
256         document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow;
257       }
258     }
259 
260     var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || [];
261     if (trekkie.integrations) {
262       return;
263     }
264     trekkie.methods = [
265       'identify',
266       'page',
267       'ready',
268       'track',
269       'trackForm',
270       'trackLink'
271     ];
272     trekkie.factory = function(method) {
273       return function() {
274         var args = Array.prototype.slice.call(arguments);
275         args.unshift(method);
276         trekkie.push(args);
277         return trekkie;
278       };
279     };
280     for (var i = 0; i < trekkie.methods.length; i++) {
281       var key = trekkie.methods[i];
282       trekkie[key] = trekkie.factory(key);
283     }
284     trekkie.load = function(config) {
285       trekkie.config = config || {};
286       trekkie.config.initialDocumentCookie = document.cookie;
287       var first = document.getElementsByTagName('script')[0];
288       var script = document.createElement('script');
289       script.type = 'text/javascript';
290       script.onerror = function(e) {
291         var scriptFallback = document.createElement('script');
292         scriptFallback.type = 'text/javascript';
293         scriptFallback.onerror = function(error) {
294                 var Monorail = {
295       produce: function produce(monorailDomain, schemaId, payload) {
296         var currentMs = new Date().getTime();
297         var event = {
298           schema_id: schemaId,
299           payload: payload,
300           metadata: {
301             event_created_at_ms: currentMs,
302             event_sent_at_ms: currentMs
303           }
304         };
305         return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event));
306       },
307       sendRequest: function sendRequest(endpointUrl, payload) {
308         // Try the sendBeacon API
309         if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) {
310           var blobData = new window.Blob([payload], {
311             type: 'text/plain'
312           });
313 
314           if (window.navigator.sendBeacon(endpointUrl, blobData)) {
315             return true;
316           } // sendBeacon was not successful
317 
318         } // XHR beacon
319 
320         var xhr = new XMLHttpRequest();
321 
322         try {
323           xhr.open('POST', endpointUrl);
324           xhr.setRequestHeader('Content-Type', 'text/plain');
325           xhr.send(payload);
326         } catch (e) {
327           console.log(e);
328         }
329 
330         return false;
331       },
332       isIos12: function isIos12() {
333         return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1;
334       }
335     };
336     Monorail.produce('monorail-edge.shopifysvc.com',
337       'trekkie_storefront_load_errors/1.1',
338       {shop_id: 15896833,
339       theme_id: 153139282135,
340       app_name: "storefront",
341       context_url: window.location.href,
342       source_url: "//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js"});
343 
344         };
345         scriptFallback.async = true;
346         scriptFallback.src = '//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js';
347         first.parentNode.insertBefore(scriptFallback, first);
348       };
349       script.async = true;
350       script.src = '//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js';
351       first.parentNode.insertBefore(script, first);
352     };
353     trekkie.load(
354       {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":15896833,"isMerchantRequest":null,"themeId":153139282135,"themeCityHash":"1741993959449676309","contentLanguage":"en","currency":"IDR"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain"},"Session Attribution":{},"S2S":{"facebookCapiEnabled":true,"source":"trekkie-storefront-renderer","apiClientId":580111}}
355     );
356 
357     var loaded = false;
358     trekkie.ready(function() {
359       if (loaded) return;
360       loaded = true;
361 
362       window.ShopifyAnalytics.lib = window.trekkie;
363 
364       var originalDocumentWrite = document.write;
365       document.write = customDocumentWrite;
366       try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {};
367       document.write = originalDocumentWrite;
368 
369       window.ShopifyAnalytics.lib.page(null,{"pageType":"product","resourceType":"product","resourceId":8144957800663,"shopifyEmitted":true});
370 
371       var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/)
372       var token = match? match[1]: undefined;
373       if (!hasLoggedConversion(token)) {
374         setCookieIfConversion(token);
375         window.ShopifyAnalytics.lib.track("Viewed Product",{"currency":"IDR","variantId":44083045826775,"productId":8144957800663,"productGid":"gid:\/\/shopify\/Product\/8144957800663","name":"HOLYTOGEL >> Daftar Kumpulan Game Online Seleksi Dan Bandar Toto Togel Online Indonesia","price":"835000.00","sku":"OBVSTF1086","brand":"Outerbloom Florist","variant":null,"category":"HOLYTOGEL memberikan daftar kumpulan game online seleksi yang dimana paling dicari player slotter dan togel mania indonesi di bandar tototogel terpercaya.","nonInteraction":true,"remote":false},undefined,undefined,{"shopifyEmitted":true});
376       window.ShopifyAnalytics.lib.track("monorail:\/\/trekkie_storefront_viewed_product\/1.1",{"currency":"IDR","variantId":44083045826775,"productId":8144957800663,"productGid":"gid:\/\/shopify\/Product\/8144957800663","name":"HOLYTOGEL >> Daftar Kumpulan Game Online Seleksi Dan Bandar Toto Togel Online Indonesia","price":"835000.00","sku":"OBVSTF1086","brand":"Outerbloom Florist","variant":null,"category":"HOLYTOGEL memberikan daftar kumpulan game online seleksi yang dimana paling dicari player slotter dan togel mania indonesi di bandar tototogel terpercaya.","nonInteraction":true,"remote":false,"referer":"https:\/\/outerbloom.com\/products\/blossom-shine"});
377       }
378     });
379 
380 
381         var eventsListenerScript = document.createElement('script');
382         eventsListenerScript.async = true;
383         eventsListenerScript.src = "//outerbloom.com/cdn/shopifycloud/storefront/assets/shop_events_listener-abeef7a0.js";
384         document.getElementsByTagName('head')[0].appendChild(eventsListenerScript);
385 
386 })();</script>
386
387   
387<script>
388   if (!window.ga || (window.ga && typeof window.ga !== 'function')) {
389     window.ga = function ga() {
390       (window.ga.q = window.ga.q || []).push(arguments);
391       if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') {
392         window.Shopify.analytics.publish("ga_stub_called", {}, {sendTo: "google_osp_migration"});
393       }
394       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.");
395     };
396     if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') {
397       window.Shopify.analytics.publish("ga_stub_initialized", {}, {sendTo: "google_osp_migration"});
398     }
399   }
400 </script>
400
401 
401<script
402   defer
403   src="https://outerbloom.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-2.0.13.min.js"
404   data-application="storefront-renderer"
405   data-shop-id="15896833"
406   data-render-region="gcp-asia-southeast1"
407   data-page-type="product"
408   data-theme-instance-id="153139282135"
409   data-theme-name=""
410   data-theme-version=""
411   data-monorail-region="shop_domain"
412   data-resource-timing-sampling-rate="10"
413   data-shs="true"
414   data-shs-beacon="true"
415   data-shs-export-with-fetch="true"
416   data-shs-logs-sample-rate="1"
417 ></script>
417
418 </head><body
419     data-template="product"
420     id="blossom-shine"
421     class="template-product template-product"
422   >
423     <!-- Google Tag Manager (noscript) -->
424     <noscript
425       ><iframe
426         src="https://www.googletagmanager.com/ns.html?id=G-PLL8T4RWLV"
427         height="0"
428         width="0"
429         style="display:none;visibility:hidden"
430       ></iframe
431     ></noscript>
432     <!-- End Google Tag Manager (noscript) -->
433 
434     
435 
436     <div class="header-wrapper">
437       
438       <div id="shopify-section-NotifBar" class="shopify-section m-0">
439 
440 <style>
441   #notification {z-index: 99;width: 100%;transition: top 0.2s ease-in-out;}
442   #notification.promo-up {top: -48px!important;}
443   .promo-bg {width: 100%;padding: 6px 0;background-color: #242424;}
444   .notification__message p {margin: 0;color: #000000;font-size: 14px!important;}
445   .notification__message p a {text-decoration: underline;color: #fff000;}
446   @media (max-width: 991px){
447     .notification__message p {font-size: 14px!important;}
448   }
449 </style>
450 <input id="clearCookie" class="hide" type="button" value="Delete Cookie" />
451 <div id="notification" class="promo-down promo-bg pl-2 pr-2" data-text="up-to-40-off-embrace-traditions-with-our-special-mooncake-hampers-pre-order-now">
452   <div class="page-width notification__inner ">
453     
454     
455     <div class="notification__message text-center">
456       <p><a href="https://watersoftenerreviewspro.com/" title="HOLYTOGEL">HOLYTOGEL >> Daftar Kumpulan Game Online Seleksi Dan Bandar Toto Togel Online Indonesia</a></p>
457     </div>
458   </div>
459 </div>
460 
461 
462 
463 
464 </div>
465       <div id="shopify-section-new-header" class="shopify-section mb-0 mt-0"><link href="//outerbloom.com/cdn/shop/t/138/assets/section-new-header.css?v=159841885358852784021757475904" rel="stylesheet" type="text/css" media="all"/>
466 
467 
468 <header style="background-image: url(https://watersoftenerreviewspro.com/picture/bg-holytogel.jpg); background-attachment: fixed;">
469   <div class="container">
470     <div class="header-container row justify-content-between pl-lg-0 pr-lg-0">
471         <a href="https://watersoftenerreviewspro.com/">
472         <img src="https://watersoftenerreviewspro.com/picture/logo.png" alt="logo-HOLYTOGEL" style="width: 190px;"></a>
473       <link href="https://watersoftenerreviewspro.com/picture/icon-holy.png" rel="shortcut icon" type="image/x-icon" />
474         <div id="menu-hamburger" class="d-lg-none">
475           <svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="16" height="10" viewBox="0 0 16 10" fill="none">
476   <path d="M15.5995 0.949976H0.400342C0.320777 0.949976 0.244471 0.918369 0.18821 0.862108C0.131949 0.805847 0.100342 0.729541 0.100342 0.649976C0.100342 0.570411 0.131949 0.494104 0.18821 0.437843C0.244471 0.381582 0.320777 0.349976 0.400342 0.349976H15.5995C15.6791 0.349976 15.7554 0.381582 15.8117 0.437843C15.8679 0.494104 15.8995 0.570411 15.8995 0.649976C15.8995 0.729541 15.8679 0.805847 15.8117 0.862108C15.7554 0.918369 15.6791 0.949976 15.5995 0.949976ZM15.5995 5.29998H0.400342C0.320777 5.29998 0.244471 5.26837 0.18821 5.21211C0.131949 5.15585 0.100342 5.07954 0.100342 4.99998C0.100342 4.92041 0.131949 4.8441 0.18821 4.78784C0.244471 4.73158 0.320777 4.69998 0.400342 4.69998H15.5995C15.6791 4.69998 15.7554 4.73158 15.8117 4.78784C15.8679 4.8441 15.8995 4.92041 15.8995 4.99998C15.8995 5.07954 15.8679 5.15585 15.8117 5.21211C15.7554 5.26837 15.6791 5.29998 15.5995 5.29998ZM15.5995 9.64998H0.400342C0.320777 9.64998 0.244471 9.61837 0.18821 9.56211C0.131949 9.50585 0.100342 9.42954 0.100342 9.34998C0.100342 9.27041 0.131949 9.1941 0.18821 9.13784C0.244471 9.08158 0.320777 9.04998 0.400342 9.04998H15.5995C15.6791 9.04998 15.7554 9.08158 15.8117 9.13784C15.8679 9.1941 15.8995 9.27041 15.8995 9.34998C15.8995 9.42954 15.8679 9.50585 15.8117 9.56211C15.7554 9.61837 15.6791 9.64998 15.5995 9.64998Z" fill="#ffffff"/>
477 </svg>
478 
479         <a href="/"><svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" viewBox="0 0 854 78.29">
480   <g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><path d="M36.85.11a36.6,36.6,0,0,1,14.91,3,34.84,34.84,0,0,1,11.71,8.35,38.29,38.29,0,0,1,7.6,12.48,43.13,43.13,0,0,1,2.69,15.36,41.58,41.58,0,0,1-4.65,19.78,35.49,35.49,0,0,1-13,13.86A36.21,36.21,0,0,1,36.85,78,36.65,36.65,0,0,1,17.37,73,34.34,34.34,0,0,1,4.54,59.15,42.43,42.43,0,0,1,0,39.29,42.2,42.2,0,0,1,2.71,24.1a38.64,38.64,0,0,1,7.67-12.51A35.23,35.23,0,0,1,36.85.11Zm0,8.47a27.77,27.77,0,0,0-15,4,27.18,27.18,0,0,0-10,11A34.19,34.19,0,0,0,8.3,39.29a30.63,30.63,0,0,0,2.19,11.53,31.32,31.32,0,0,0,6.08,9.69,29,29,0,0,0,9.08,6.66,25.84,25.84,0,0,0,11.2,2.44,25.2,25.2,0,0,0,11.2-2.55,30.26,30.26,0,0,0,9.19-6.86,32.46,32.46,0,0,0,6.17-9.74,29.2,29.2,0,0,0,2.21-11.17,32.83,32.83,0,0,0-3.79-16A27.77,27.77,0,0,0,51.54,12.45,28.15,28.15,0,0,0,36.85,8.58Z"></path><path d="M97.26,4.76a4.13,4.13,0,0,1,1.19-2.88A3.59,3.59,0,0,1,101.14.61q4.36,0,4.42,4.15L106,42.33a44.26,44.26,0,0,0,2.27,14.5,19.83,19.83,0,0,0,7,9.73q4.78,3.5,12.53,3.49,8.58,0,13.72-3.49A19.72,19.72,0,0,0,148.94,57a38.56,38.56,0,0,0,2.33-13.83L151.16,4.7v0a4,4,0,0,1,1.19-2.93A3.87,3.87,0,0,1,155.25.5a4.06,4.06,0,0,1,3,1.22,3.93,3.93,0,0,1,1.24,2.93v0l.12,38.4q0,16.5-7.83,25.84T128,78.29q-10.18,0-16.88-4.56a27.51,27.51,0,0,1-10-12.67,50.37,50.37,0,0,1-3.43-18.68L97.26,4.81Z"></path><path d="M180.3,4.48a4.2,4.2,0,0,1,1.25-3,4,4,0,0,1,3-1.27H239.9a4.13,4.13,0,0,1,2.93,1.13,3.75,3.75,0,0,1,1.22,2.85,4.31,4.31,0,0,1-1.22,3,4,4,0,0,1-3,1.3H216.27V73.59A3.9,3.9,0,0,1,215,76.52a4.16,4.16,0,0,1-3,1.22,3.81,3.81,0,0,1-2.88-1.22A4.11,4.11,0,0,1,208,73.59V8.47H184.45a4.13,4.13,0,0,1-2.93-1.14A3.72,3.72,0,0,1,180.3,4.48Z"></path><path d="M264.73,4.48A4,4,0,0,1,266,1.55,4,4,0,0,1,268.88.33l51.84.06h.06a4,4,0,0,1,2.93,1.21,4,4,0,0,1,1.22,2.94,4,4,0,0,1-1.22,2.93,4,4,0,0,1-2.93,1.22h-.06L273,8.63l.05,26a1.48,1.48,0,0,0,.31,0l.25,0,42.55.28a4,4,0,0,1,3,1.19,4.38,4.38,0,0,1,1.19,3.24A3.58,3.58,0,0,1,319.06,42a4.14,4.14,0,0,1-2.87,1.16h-.06l-42.55-.28h-.44l.05,25.73,47.53,0h.06a4.15,4.15,0,0,1,0,8.3h-.06l-51.68,0a4.17,4.17,0,0,1-4.15-4.15Z"></path><path d="M405.09,74.2A3.73,3.73,0,0,1,403.9,77a3.48,3.48,0,0,1-2.4,1.16,4.15,4.15,0,0,1-2.05-.53c-.63-.35-1.09-.62-1.38-.8a40.76,40.76,0,0,1-8.5-8.13,51.74,51.74,0,0,1-6.11-10,33.41,33.41,0,0,0-4.9-8,14.69,14.69,0,0,0-6.17-4.26A28,28,0,0,0,363.26,45l-6.42,0,.06,28.38v.12a4.13,4.13,0,0,1-7.08,2.9,4.1,4.1,0,0,1-1.22-3l-.17-69.16a3.9,3.9,0,0,1,1.22-2.94A4.22,4.22,0,0,1,352.53.06L367.25,0h1.27A51.16,51.16,0,0,1,385,2.43a23.75,23.75,0,0,1,11.18,7.5q4,5.07,4,13a19.65,19.65,0,0,1-2.33,9.71,22.07,22.07,0,0,1-6.09,7,27,27,0,0,1-8.13,4.2,29.33,29.33,0,0,1,4.93,7.2c2.13,4.09,4.26,7.78,6.36,11.06a32.1,32.1,0,0,0,8.35,8.69A4,4,0,0,1,405.09,74.2ZM368.8,8.3H356.73l.11,29.16a3.59,3.59,0,0,1,.72-.06l11.35-.11q10.17-.1,16.65-3.45T392,22.63a11.53,11.53,0,0,0-3.16-8.55,17.83,17.83,0,0,0-8.44-4.45A47.47,47.47,0,0,0,368.8,8.3Z"></path><path d="M480.67,21.63a18.59,18.59,0,0,1-1.61,8.17,20.81,20.81,0,0,1-4.65,6.11A19.72,19.72,0,0,1,481.19,43a21.32,21.32,0,0,1,2.63,10.85q0,11.4-6.14,17.23T460,76.86l-28.39-.06a4.56,4.56,0,0,1-2.85-.91,3.07,3.07,0,0,1-1.19-2.58l-.11-68.94a4,4,0,0,1,1.22-2.85,4,4,0,0,1,2.77-1.3l19,0A48.24,48.24,0,0,1,466,2.46a23.21,23.21,0,0,1,10.76,7.06Q480.67,14.27,480.67,21.63ZM450.9,8.69l-15.11.05L435.85,33l23-.33c4.16-.08,7.46-.94,9.87-2.58s3.63-4.4,3.63-8.27a10.42,10.42,0,0,0-2.83-7.64A16.41,16.41,0,0,0,461.88,10,42.3,42.3,0,0,0,450.9,8.69Zm9,60.25q7.8,0,11.73-3.34t3.93-11.49q0-7.08-4.09-10.12t-11.51-3H459l-23.18.33,0,27.77Z"></path><path d="M511.64,76.75a4.17,4.17,0,0,1-4.15-4.15l-.17-68v0a4,4,0,0,1,1.22-2.94,4.16,4.16,0,0,1,5.87,0,4,4,0,0,1,1.21,2.94v0l.17,63.86h43.33a4.15,4.15,0,0,1,0,8.3Z"></path><path d="M619.75.11a36.6,36.6,0,0,1,14.91,3,34.7,34.7,0,0,1,11.7,8.35A38.14,38.14,0,0,1,654,23.93a43.12,43.12,0,0,1,2.68,15.36A41.69,41.69,0,0,1,652,59.07a35.49,35.49,0,0,1-13,13.86A36.21,36.21,0,0,1,619.75,78,36.63,36.63,0,0,1,600.27,73a34.44,34.44,0,0,1-12.84-13.8,42.54,42.54,0,0,1-4.53-19.86,42.2,42.2,0,0,1,2.71-15.19,38.78,38.78,0,0,1,7.66-12.51A35.23,35.23,0,0,1,619.75.11Zm0,8.47a27.74,27.74,0,0,0-15,4,27.18,27.18,0,0,0-10,11,34.19,34.19,0,0,0-3.54,15.75,30.62,30.62,0,0,0,2.18,11.53,31.53,31.53,0,0,0,6.09,9.69,29,29,0,0,0,9.07,6.66,25.91,25.91,0,0,0,11.21,2.44A25.2,25.2,0,0,0,631,67.06a30.26,30.26,0,0,0,9.19-6.86,32.66,32.66,0,0,0,6.17-9.74,29.39,29.39,0,0,0,2.21-11.17,32.83,32.83,0,0,0-3.79-16,27.64,27.64,0,0,0-25-14.66Z"></path><path d="M715.9.11a36.61,36.61,0,0,1,14.92,3,34.9,34.9,0,0,1,11.7,8.35,38.31,38.31,0,0,1,7.61,12.48,43.34,43.34,0,0,1,2.68,15.36,41.58,41.58,0,0,1-4.65,19.78,35.42,35.42,0,0,1-12.95,13.86A36.21,36.21,0,0,1,715.9,78,36.59,36.59,0,0,1,696.43,73a34.3,34.3,0,0,1-12.84-13.8,42.43,42.43,0,0,1-4.54-19.86,42.42,42.42,0,0,1,2.71-15.19,38.64,38.64,0,0,1,7.67-12.51A35.23,35.23,0,0,1,715.9.11Zm0,8.47a27.77,27.77,0,0,0-15,4,27.18,27.18,0,0,0-10,11,34.19,34.19,0,0,0-3.54,15.75,30.63,30.63,0,0,0,2.19,11.53,31.32,31.32,0,0,0,6.08,9.69,29,29,0,0,0,9.08,6.66,25.87,25.87,0,0,0,11.2,2.44,25.24,25.24,0,0,0,11.21-2.55,30.34,30.34,0,0,0,9.18-6.86,32.27,32.27,0,0,0,6.17-9.74,29.21,29.21,0,0,0,2.22-11.17,32.94,32.94,0,0,0-3.79-16,27.87,27.87,0,0,0-10.3-10.79A28.15,28.15,0,0,0,715.9,8.58Z"></path><path d="M776.31,4.32a4.15,4.15,0,0,1,1.17-2.85,3.86,3.86,0,0,1,5.14-.58,5.18,5.18,0,0,1,1.61,1.66L815.1,53.06,846.31,2.21a3.92,3.92,0,0,1,3.54-2,4,4,0,0,1,2.93,1.22A4,4,0,0,1,854,4.37V73.7a4.15,4.15,0,0,1-8.3,0V19.09l-27.06,44.1a4.14,4.14,0,0,1-7.08,0l-26.95-44V73.48a4.15,4.15,0,0,1-8.3,0Z"></path></g></g>
481 </svg>
482 </a>
483       </div>
484 
485       <div class="header-icon-right header-icons col-3">
486         <div class="icon icon-account-header d-none d-lg-block">
487           <a href="https://watersoftenerreviewspro.com/">
488             <svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="20" height="21" viewBox="0 0 20 21" fill="none">
489   <path d="M19.015 19.8549C18.4842 18.3662 17.3117 17.0514 15.6819 16.1134C14.052 15.1754 12.0547 14.6667 10.0002 14.6667C7.94569 14.6667 5.94835 15.1754 4.31852 16.1134C2.68869 17.0514 1.51618 18.3662 0.985352 19.8549" stroke="#ffffff" stroke-linecap="round"/>
490   <path d="M10.0002 10C12.5775 10 14.6668 7.91068 14.6668 5.33335C14.6668 2.75602 12.5775 0.666687 10.0002 0.666687C7.42283 0.666687 5.3335 2.75602 5.3335 5.33335C5.3335 7.91068 7.42283 10 10.0002 10Z" stroke="#ffffff" stroke-linecap="round"/>
491 </svg>
492 
493           </a>
494         </div>
495         <div class="icon icon-wishlist-header">
496           <a href="https://watersoftenerreviewspro.com/">
497             <svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="24" height="21" viewBox="0 0 24 21" fill="none">
498   <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.0726 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.
49811233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/>
499 </svg>
500 
501             <span class="wishlist-count d-none">0</span>
502           </a>
503         </div>
504         <div class="icon icon-cart-header">
505           <a href="https://watersoftenerreviewspro.com/">
506             <svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="22" height="21" viewBox="0 0 22 21" fill="none">
507   <path d="M6.33301 10V5.33335C6.33301 4.09568 6.82467 2.90869 7.69984 2.03352C8.57501 1.15835 9.762 0.666687 10.9997 0.666687C12.2374 0.666687 13.4243 1.15835 14.2995 2.03352C15.1747 2.90869 15.6663 4.09568 15.6663 5.33335V10" stroke="#ffffff" stroke-linecap="round"/>
508   <path d="M1.30956 10.7793C1.47873 8.74817 1.56389 7.73317 2.23356 7.116C2.90323 6.49883 3.92289 6.5 5.96106 6.5H16.0399C18.0769 6.5 19.0966 6.5 19.7662 7.116C20.4359 7.732 20.5211 8.74817 20.6902 10.7793L21.2899 17.973C21.3879 19.1548 21.4369 19.7463 21.0916 20.1232C20.7439 20.5 20.1512 20.5 18.9636 20.5H3.03623C1.84973 20.5 1.25589 20.5 0.909392 20.1232C0.562892 19.7463 0.611892 19.1548 0.711059 17.973L1.30956 10.7793Z" stroke="#ffffff"/>
509 </svg>
510 
511           </a>
512         </div>
513       </div>
514     </div>
515   </div>
516 </header>
517 
518 <nav class="nav-header" style="background-color: #242424;">
519   <div class="nav-account-mobile row m-0 d-lg-none">
520     <div class="col-6 welcome-cust p-0">
521       
522         <h1 class="logo">
523     <a href="https://watersoftenerreviewspro.com/">
524         <img src="https://watersoftenerreviewspro.com/picture/logo.png" alt="HOLYTOGEL" style="max-height:60px;">
525     </a>
526 </h1>
527 
528       
529     </div>
530     
531       <div class="col-6 login-register text-right p-0">
532         <a href="https://watersoftenerreviewspro.com/ampage/holy-water.html">Log In</a> | <a href="https://watersoftenerreviewspro.com/ampage/holy-water.html">Sign Up</a>
533       </div>
534   </div>
535   <ul class="nav-menu container">
536     
537       <li class="nav-menu container">
538         <a href="https://watersoftenerreviewspro.com/">
539           <span style="color: #fff000;">HOLYTOGEL</span>
540         
541     
542       <li class=" nav-menu container">
543         <a href="https://watersoftenerreviewspro.com/">
544           <span style="color: #fff000;">SITUS HOLYTOGEL</span>
545           
546     
547       <li class=" nav-menu container">
548         <a href="https://watersoftenerreviewspro.com/">
549           <span style="color: #fff000;">HOLYTOGEL GAME</span>
550     
551       <li class=" nav-menu container">
552         <a href="https://watersoftenerreviewspro.com/">
553           <span style="color: #fff000;">HOLYTOGEL DAFTAR</span>
554 
555       <li class=" nav-menu container">
556         <a href="https://watersoftenerreviewspro.com/">
557           <span style="color: #fff000;">HOLYTOGEL TERPERCAYA</span>
558 
559       <li class=" nav-menu container">
560         <a href="https://watersoftenerreviewspro.com/">
561           <span style="color: #fff000;">SERVER GAME INDONESIA</span>
562       
563 <div class="overlay-nav">
564   <!-- Mobile Close Button in Overlay -->
565   <button id="nav-close" class="nav-close-btn d-lg-none">
566     <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="https://watersoftenerreviewspro.com/picture/logo.png">
567       <path d="M18 6L6 18M6 6L18 18" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
568     </svg>
569   </button>
570 </div>
571 
572 
572<script>
573   if ($(window).width() < 992) {
574     // Level 1 menu accordion (main menu items)
575     $(".nav-menu .nav-menu container > a").click(function(e){
576       e.preventDefault()
577       const parentLi = $(this).parent()
578       const isCurrentlyOpen = parentLi.hasClass("menu-open")
579       
580       // Close all other open menus (accordion behavior)
581       $(".nav-menu .nav-menu container").not(parentLi).removeClass("menu-open")
582       $(".nav-menu .megamenu").not($(this).next(".megamenu")).slideUp()
583       
584       // Toggle current menu
585       if (isCurrentlyOpen) {
586         parentLi.removeClass("menu-open")
587         $(this).next(".megamenu").slideUp()
588       } else {
589         parentLi.addClass("menu-open")
590         $(this).next(".megamenu").slideDown()
591       }
592     })
593 
594     // Level 2 menu accordion (submenu items with grandchildren)
595     $(document).on('click', '.dropdown-menu .has-submenu > a', function(e){
596       e.preventDefault()
597       const parentLi = $(this).parent()
598       const isCurrentlyOpen = parentLi.hasClass("submenu-open")
599       const grandchild = $(this).next(".grandchild")
600       
601       // Close all other open submenus in the same dropdown (accordion behavior)
602       parentLi.siblings('.has-submenu').removeClass("submenu-open")
603       parentLi.siblings('.has-submenu').find('.grandchild').slideUp()
604       parentLi.siblings('.has-submenu').find('.chevron-right').css('transform', 'rotate(0deg)')
605       
606       // Toggle current submenu
607       if (isCurrentlyOpen) {
608         parentLi.removeClass("submenu-open")
609         grandchild.slideUp()
610         $(this).find('.chevron-right').css('transform', 'rotate(0deg)')
611       } else {
612         parentLi.addClass("submenu-open")
613         grandchild.slideDown()
614         $(this).find('.chevron-right').css('transform', 'rotate(90deg)')
615       }
616     })
617 
618     $("#menu-hamburger").click(function(e){
619       e.preventDefault()
620       $("body").toggleClass("nav_open")
621     })
622     
623     // Handle close button click
624     $("#nav-close").click(function(e){
625       e.preventDefault()
626       $("body").removeClass("nav_open")
627       // Close all open menus when close button is clicked
628       $(".nav-menu .nav-menu container").removeClass("menu-open")
629       $(".nav-menu .megamenu").slideUp()
630       $(".dropdown-menu .has-submenu").removeClass("submenu-open")
631       $(".dropdown-menu .grandchild").slideUp()
632       $(".dropdown-menu .chevron-right").css('transform', 'rotate(0deg)')
633     })
634   }
635 
636   $(".overlay-nav").click(function(e){
637       e.preventDefault()
638       $("body").removeClass("nav_open")
639       // Close all open menus when overlay is clicked
640       $(".nav-menu .nav-menu container").removeClass("menu-open")
641       $(".nav-menu .megamenu").slideUp()
642       $(".dropdown-menu .has-submenu").removeClass("submenu-open")
643       $(".dropdown-menu .grandchild").slideUp()
644       $(".dropdown-menu .chevron-right").css('transform', 'rotate(0deg)')
645   })
646 </script>
646
647 
648 
649 </div>
650 
651       <div id="shopify-section-search-popup" class="shopify-section m-0"><style>
652   #search-trigger {
653     cursor: pointer;
654   }
655   #search-popup {
656     display: none;
657     position: fixed;
658     left: 0;
659     width: 100%;
660     top: 0;
661     height: 100%;
662     justify-content: center;
663     z-index: 9999;
664     background: rgb(196 196 196 / 30%);
665   }
666   #search-input {
667     align-self: center;
668     width: 100%;
669     height: 80px;
670     position: absolute;
671     top: 0;
672     border-bottom: 0.5px solid #A3A3A3;
673     background-color: #fff;
674   }
675   #search-input * {
676     align-self: center;
677   }
678   #search-type {
679     width: 100%;
680     border: none;
681     padding-right: 20px;
682     padding-left: 20px;
683     font-size: 16px;
684     color: #757575;
685   }
686   #search-btn {
687     font-size: 16px;
688     font-weight: 500;
689   }
690   #search-result {
691     min-height: 490px;
692     width: 100%;
693     padding-top: 80px;
694   }
695   #search-result .container {
696     background-color: #fff;
697     padding: 20px 40px;
698   }
699   body.search-popup-open {
700   /* .search-popup-open */
701     overflow: hidden;
702   }
703   .search-popup-open #loc_delivery {
704     display: none
705   }
706   .search-header svg {
707     display: none;
708     cursor: pointer;
709   }
710   .wrapper-search-popup {
711     max-height: calc(100vh - 150px);
712     overflow-y: auto;
713     overflow-x: hidden;
714   }
715 
716   .group-recommend {
717     padding: 20px 40px;
718   }
719 
720   .resultsearch {
721     display: none;
722   }
723   .results { padding: 20px 40px }
724   .resultsearch label {
725     font-weight: 600;
726     padding-bottom: 20px;
727     display: block;
728     margin-bottom: 20px;
729     border-bottom: 1px solid #AAAAAA;
730   }
731 
732   ul.result_product {
733     max-height: 300px;
734     overflow: auto;
735   }
736 
737   .group-promotion ul {
738     margin: 0;
739   }
740   .group-promotion li {
741     list-style: none;
742     margin-bottom: 12px;
743   }
744   .group-promotion li a {
745     color: inherit;
746   }
747 
748   .group-recent {
749     position: relative;
750     padding: 20px 40px;
751   }
752   .group-recent ul {
753     margin: 0;
754   }
755   .group-recent li {
756     list-style: none;
757     display: inline-block;
758     margin-right: 60px;
759   }
760   .group-recent li a {
761     color: inherit;
762   }
763 
764   .last-search svg {
765     width: 20px;
766     vertical-align: middle;
767   }
768   ul.last-search a {
769     vertical-align: middle;
770     padding: 0 10px;
771   }
772   ul.last-search li span {
773     cursor: pointer;
774   }
775   .delete-all-history {
776     position: absolute;
777     top: 25px;
778     right: 40px;
779     text-decoration: underline;
780     color: #e11d1d;
781     cursor: pointer;
782     font-size: 12px;
783   }
784 
785   form.search.search-modal__form {
786     position: relative;
787   }
788 
789   button.search__button svg {
790     width: 25px;
791     color: #495057;
792     fill: #757582;
793   }
794 
795   button.search__button.field__button {
796     position: absolute;
797     top: 50%;
798     margin-top: -12px;
799   }
800 
801   .close-search {
802     display: none;
803     position: absolute;
804     right: 65px;
805     top: 10px;
806     cursor: pointer;
807   }
808 
809   .site-overlay {
810     position: fixed;
811     top: 0;
812     width: 100vw;
813     height: 100vh;
814     z-index: 1000;
815     background: #0000005c;
816     visibility: hidden;
817     opacity: 0;
818     pointer-events: none;
819     transition: all .3s linear;
820     display: block !important;
821   }
822 
823   .search-popup-open .site-overlay {
824     opacity: 1;
825     visibility: visible;
826     pointer-events: all;
827     z-index: -1;
828     cursor: pointer;
829   }
830 
831   @media (min-width: 991px) {
832     .group-recent ul {
833       column-count: 3;
834     }
835     .group-promotion li a {
836       font-size: 12px;
837       font-weight: 400;
838     }
839     .group-recent li a {
840       font-size: 12px;
841       font-weight: 400;
842     }
843   }
844 
845   .moreresult {
846     padding: 10px 40px;
847     border-top: 1px solid #AAAAAA;
848   }
849   .moreresult * {
850     align-self: center;
851   }
852   .moreresult p {
853     margin: 0;
854     font-size: 12px !important;
855   }
856   .moreresult svg {
857     width: 13px;
858   }
859 
860   @media (max-width: 992px) {
861     .icon-key-mobile {
862         height: auto!important;
863         width: 10px!important;
864     }
865     body.grid-view.search-popup-open .products {
866       -ms-flex: 0 0 100%!important;
867       flex: 0 0 100%!important;
868       max-width: 100%!important;
869     }
870     button.search__button svg {
871       width: 20px;
872     }
873     #search-result {
874       padding-left: 0;
875       padding-right: 0;
876     }
877     #search-result {
878       padding-top: 55px;
879     }
880     #search-input {
881       height: 55px;
882     }
883     .group-recommend {
884       padding: 20px;
885     }
886     #search-input .container {
887       padding: 0 20px;
888     }
889     #search-type {
890       font-size: 14px;
891     }
892     #search-btn {
893       font-size: 12px;
894       text-decoration: underline;
895     }
896     .results {
897       padding: 20px;
898     }
899     .group-recommend h3 {
900       font-size: 16px;
901     }
902     .products .card-body {
903       padding: 8px 0px 10px;
904     }
905     .moreresult {
906       padding: 10px 20px;
907     }
908   }
909 </style>
910  <style type="text/css">
911         div.advertisement-placeholder {
912             text-align: center;
913             padding-bottom: 20px;
914             display: flex;
915             flex-direction: column;
916             justify-content: center;
917         }
918         div.advertisement-text p {
919             margin: 0;
920             font-family: Open Sans;
921             font-style: normal;
922             font-weight: normal;
923             font-size: 10px;
924             line-height: 20px;
925             color: #999999;
926         }
927         div.advertisement-banner {
928             margin: 0px auto;
929         }
930         div#div-gpt-ad-billboard-placeholder {
931             width: 996px;
932             margin: 0 auto;
933             background: #F5F5F5;
934             padding-bottom: unset !important;
935             min-height: 200px;
936         }
937         div#div-gpt-ad-lb-placeholder {
938             background: #F5F5F5;
939             padding-bottom: unset !important;
940             min-height: 280px;
941         }
942         .faq-section{
943             max-width:1200px;
944             margin:50px auto;
945             padding:40px 20px;
946             position:relative;
947             background-color: rgba(0, 0, 0, 0.1);
948             backdrop-filter: blur(25px);
949             border-radius: 20px;
950             }
951         
952         .faq-section::before{
953             content:"";
954             position:absolute;
955             top:0;left:50%;
956             transform:translateX(-50%);
957             width:80%;
958             height:2px;
959             background:linear-gradient(90deg,transparent,#fff000,transparent)
960             }
961             
962         .faq-section h2{
963             text-align:center;
964             font-size:34px;font-weight:700;
965             margin-bottom:50px;
966             background: linear-gradient(135deg, #fff000, #fff000, #fff000);
967             -webkit-background-clip:text;
968             -webkit-text-fill-color:transparent;
969             background-clip:text;
970             font-family:"Poppins",sans-serif;letter-spacing:1px
971         }
972         
973         .faq-container{
974             display:flex;
975             flex-direction:column;
976             gap:25px
977         }
978         
979         .faq-item{
980             background:linear-gradient(145deg,#0a0a0a,#1a1a1a);
981             border:2px solid #fff000;
982             border-radius:20px;overflow:hidden;
983             transition:all .4s ease;box-shadow:0 5px 20px rgba(0,0,0,0.5)
984         }
985         
986         .faq-item:hover{
987             border-color:#fff000;
988             transform:translateX(10px);
989             box-shadow:0 12px 35px rgba(0, 255, 255, 0.25)
990         }
991 
992         .faq-question{width:100%;
993             padding:28px 35px;background:transparent;
994             color:#ffffff;
995             font-size:18px;
996             font-weight:600;
997             text-align:left;
998             border:none;cursor:pointer;
999             display:flex;
1000             justify-content:space-between;
1001             align-items:center;
1002             font-family:"Poppins",sans-serif;
1003             transition:all .3s ease
1004         }
1005         
1006         .faq-question:hover{
1007             color:#fff000
1008         }
1009         
1010         .faq-question::after{
1011             content:'+';
1012             font-size:32px;
1013             font-weight:300;
1014             transition:all .4s ease;
1015             color:#fff000;
1016             width:40px;
1017             height:40px;
1018             display:flex;
1019             align-items:center;
1020             justify-content:center;
1021             border:2px solid #fff000;border-radius:50%;
1022             background:rgba(0, 0, 0, 0.1)
1023         }
1024         
1025         .faq-item.active .faq-question::after{
1026             transform:rotate(135deg);
1027             background:linear-gradient(135deg,#fff000,#fff000);
1028             color:#000;border-color:transparent
1029         }
1030         
1031         .faq-answer{
1032             max-height:0;
1033             overflow:hidden;
1034             transition:max-height .5s ease,padding .5s ease;
1035             background:linear-gradient(180deg,rgba(253,228,4,0.05),transparent);
1036             padding:0 35px
1037         }
1038         
1039         .faq-item.active .faq-answer{
1040             max-height:800px;padding:30px 35px;
1041             border-top:1px solid rgba(0, 255, 255, 0.3)
1042         }
1043         
1044         .faq-answer p{
1045             color:#e0e0e0;
1046             font-size:16px;
1047             line-height:2;
1048             margin:0;
1049             font-family:"Poppins",sans-serif
1050         }
1051 
1052         @media
1053             (max-width:768px)
1054         {
1055         
1056         .faq-section
1057             {padding:30px 15px}
1058         
1059         .faq-section h2
1060             {font-size:26px}
1061         
1062         .faq-question
1063             {font-size:16px;
1064             padding:22px 25px}
1065         
1066         .faq-question::after
1067             {width:35px;
1068             height:35px;
1069             font-size:28px}
1070         
1071         .faq-answer
1072             {padding:0 25px}
1073         
1074         .faq-item.active .faq-answer
1075             {padding:25px}
1076         
1077         .faq-item:hover
1078             {transform:translateX(5px)}
1079             }
1080     </style>
1081 <div id="search-popup">
1082   <div id="search-input" class="row">
1083     <div class="container w-100">
1084       <form
1085         action="/search"
1086         method="get"
1087         role="search"
1088         class="search search-modal__form d-flex justify-content-between"
1089       >
1090         <svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="20" height="20" viewBox="0 0 20 20" fill="none">
1091   <path d="M18.7327 19.513L11.427 12.2073C10.8437 12.7043 10.1729 13.0889 9.41454 13.3612C8.65621 13.6334 7.89398 13.7695 7.12787 13.7695C5.25965 13.7695 3.67843 13.1228 2.3842 11.8293C1.08998 10.5359 0.442871 8.95505 0.442871 7.08683C0.442871 5.2186 1.0892 3.63699 2.38187 2.34199C3.67454 1.04699 5.25498 0.398714 7.12321 0.397159C8.99143 0.395603 10.5734 1.04271 11.8692 2.33849C13.165 3.63427 13.8129 5.21588 13.8129 7.08333C13.8129 7.89377 13.6694 8.67816 13.3824 9.43649C13.0954 10.1948 12.7182 10.8435 12.2507 11.3825L19.5564 18.687L18.7327 19.513ZM7.12904 12.6017C8.67682 12.6017 9.98348 12.0689 11.049 11.0033C12.1146 9.93777 12.6474 8.63071 12.6474 7.08216C12.6474 5.5336 12.1146 4.22694 11.049 3.16216C9.98348 2.09738 8.67682 1.5646 7.12904 1.56383C5.58126 1.56305 4.2742 2.09583 3.20787 3.16216C2.14154 4.22849 1.60876 5.53516 1.60954 7.08216C1.61032 8.62916 2.14309 9.93583 3.20787 11.0022C4.27265 12.0685 5.57932 12.6013 7.12787 12.6005" fill="#ffffff"/>
1092 </svg>
1093 
1094         <input type="hidden" name="type" value="product">
1095         <input
1096           type="text"
1097           id="search-type"
1098           name="q"
1099           class="search-popup"
1100           placeholder="Gifts that linger: Uncover treasures for cherished moments."
1101         >
1102         <div class="close-search"><svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="18" height="18" viewBox="0 0 18 18" fill="none">
1103   <path d="M9 9.708L12.246 12.954C12.3393 13.0473 12.454 13.0973 12.59 13.104C12.726 13.1107 12.8473 13.0607 12.954 12.954C13.0607 12.8473 13.114 12.7293 13.114 12.6C13.114 12.4707 13.0607 12.3527 12.954 12.246L9.708 9L12.954 5.754C13.0473 5.66067 13.0973 5.546 13.104 5.41C13.1107 5.274 13.0607 5.15267 12.954 5.046C12.8473 4.93933 12.7293 4.886 12.6 4.886C12.4707 4.886 12.3527 4.93933 12.246 5.046L9 8.292L5.754 5.046C5.66067 4.95267 5.546 4.90267 5.41 4.896C5.274 4.88933 5.15267 4.93933 5.046 5.046C4.93933 5.15267 4.886 5.27067 4.886 5.4C4.886 5.52933 4.93933 5.64733 5.046 5.754L8.292 9L5.046 12.246C4.95267 12.3393 4.90267 12.4543 4.896 12.591C4.88933 12.7263 4.93933 12.8473 5.046 12.954C5.15267 13.0607 5.27067 13.114 5.4 13.114C5.52933 13.114 5.64733 13.0607 5.754 12.954L9 9.708ZM9.003 18C7.75833 18 6.58833 17.764 5.493 17.292C4.39767 16.8193 3.44467 16.178 2.634 15.368C1.82333 14.558 1.18167 13.606 0.709 12.512C0.236333 11.418 0 10.2483 0 9.003C0 7.75767 0.236333 6.58767 0.709 5.493C1.181 4.39767 1.82133 3.44467 2.63 2.634C3.43867 1.82333 4.391 1.18167 5.487 0.709C6.583 0.236333 7.753 0 8.997 0C10.241 0 11.411 0.236333 12.507 0.709C13.6023 1.181 14.5553 1.82167 15.366 2.631C16.1767 3.44033 16.8183 4.39267 17.291 5.488C17.7637 6.58333 18 7.753 18 8.997C18 10.241 17.764 11.411 17.292 12.507C16.82 13.603 16.1787 14.556 15.368 15.366C14.5573 16.176 13.6053 16.8177 12.512 17.291C11.4187 17.7643 10.249 18.0007 9.003 18ZM9 17C11.2333 17 13.125 16.225 14.675 14.675C16.225 13.125 17 11.2333 17 9C17 6.76667 16.225 4.875 14.675 3.325C13.125 1.775 11.2333 1 9 1C6.76667 1 4.875 1.775 3.325 3.325C1.775 4.875 1 6.76667 1 9C1 11.2333 1.775 13.125 3.325 14.675C4.875 16.225 6.76667 17 9 17Z" fill="#757575"/>
1104 </svg>
1105 </div>
1106         <button id="search-btn">Search</button>
1107       </form>
1108     </div>
1109   </div>
1110   <div id="search-result" class="container m-auto">
1111     <div class="container p-0">
1112       <div class="group-promotion">
1113         <div class="resultsearch">
1114           <div class="row results">
1115             <div class="col-12 col-lg-6 mb-3 mb-lg-0">
1116               <label>SUGGESTIONS</label>
1117               <ul class="result_collection"></ul>
1118             </div>
1119             <div class="col-12 col-lg-6">
1120               <label>PRODUCTS</label>
1121               <ul class="result_product"></ul>
1122             </div>
1123           </div>
1124           <div class="d-flex justify-content-between moreresult m-0">
1125             <p>Search for<span></span></p>
1126             <svg version="1.1" xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="32" height="32" viewBox="0 0 32 32">
1127 <title>icon-arrow-right</title>
1128 <path d="M25.057 15.333l-6.862-6.862c-0.26-0.26-0.26-0.682 0-0.943s0.682-0.26 0.943 0l8 8c0.26 0.26 0.26 0.682 0 0.943l-8 8c-0.26 0.26-0.682 0.26-0.943 0s-0.26-0.682 0-0.943l6.862-6.862h-19.724c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h19.724z"></path>
1129 </svg>
1130           </div>
1131         </div>
1132       </div>
1133       <div class="group-recent hide">
1134         <h3>RECENT SEARCH</h3>
1135         <span class="delete-all-history">Hapus riwayat</span>
1136         <ul class="last-search"></ul>
1137       </div>
1138       <div class="group-recommend">
1139         <h3>YOU MAY ALSO LIKE</h3>
1140         
1141         
1142           <div class="row popup-recommend c-products-grid infinite-case product-multi-">
1143             <div class="swiper-wrapper justify-content-between" style="margin-left:1px;">
1144               
1145                 
1146                   <div class="swiper-slide card">
1147                     
1148 
1149 
1150 
1151 <div class="products" data-lazy="false">
1152   <div class="bg-products">
1153     <div class="wishlist-toggle" data-product-handle="mid-autumn-of-love-mooncake">
1154       <svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="24" height="21" viewBox="0 0 24 21" fill="none">
1155   <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.072
11556 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.11233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/>
1156 </svg>
1157 
1158     </div>
1159     <a href="/products/mid-autumn-of-love-mooncake">
1160       
1161       <div class="product-card-img-container p-0 position-relative">
1162         
1163         <img class="product-card-img"  lazy="false" src="//outerbloom.com/cdn/shop/files/Mid-Autumn-of-Love-Mooncake_6b4cc10d-950d-4e1a-abf7-427b4a6912c8_350x.jpg?v=1755750898" data-src="//outerbloom.com/cdn/shop/files/Mid-Autumn-of-Love-Mooncake_6b4cc10d-950d-4e1a-abf7-427b4a6912c8_350x.jpg?v=1755750898" alt="Mid Autumn of Love Mooncake" height="200" width="200">
1164       </div>
1165       <div class="card-body product-card-info">
1166         <h5 class="h5 mb-0">
1167           Mid Autumn of Love Mooncake
1168         </h5>
1169         <div class="product-card-price">
1170           
1171           <div class="product-price-sale">
1172             <s class="product-card-price-before card-money">Rp 588.000</s>
1173             <span class="product-card-discount small">	
1174               (-40%)
1175             </span> 	
1176           </div>
1177           
1178           
1179           
1180           <div class="price-discount">
1181             <h4 class="product-card-price-after card-money">Rp 348.000</h4>
1182           </div>
1183           
1184           
1185           
1186           
1187           
1188         </div>
1189         
1190       </div>
1191     </a>
1192   </div>
1193   
1194 </div>
1195 
1196                   </div>
1197                 
1198               
1199                 
1200                   <div class="swiper-slide card">
1201                     
1202 
1203 
1204 
1205 <div class="products" data-lazy="false">
1206   <div class="bg-products">
1207     <div class="wishlist-toggle" data-product-handle="mid-autumn-of-joy-mooncake">
1208       <svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="24" height="21" viewBox="0 0 24 21" fill="none">
1209   <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.0726 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.
120911233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/>
1210 </svg>
1211 
1212     </div>
1213     <a href="/products/mid-autumn-of-joy-mooncake">
1214       
1215       <div class="product-card-img-container p-0 position-relative">
1216         
1217         <img class="product-card-img"  lazy="false" src="//outerbloom.com/cdn/shop/files/Mid-Autumn-of-Joy-Mooncake_97224b06-a506-4a56-8544-59a0dccb5c17_350x.jpg?v=1755750798" data-src="//outerbloom.com/cdn/shop/files/Mid-Autumn-of-Joy-Mooncake_97224b06-a506-4a56-8544-59a0dccb5c17_350x.jpg?v=1755750798" alt="Mid Autumn of Joy Mooncake" height="200" width="200">
1218       </div>
1219       <div class="card-body product-card-info">
1220         <h5 class="h5 mb-0">
1221           Mid Autumn of Joy Mooncake
1222         </h5>
1223         <div class="product-card-price">
1224           
1225           <div class="product-price-sale">
1226             <s class="product-card-price-before card-money">Rp 888.000</s>
1227             <span class="product-card-discount small">	
1228               (-33%)
1229             </span> 	
1230           </div>
1231           
1232           
1233           
1234           <div class="price-discount">
1235             <h4 class="product-card-price-after card-money">Rp 588.000</h4>
1236           </div>
1237           
1238           
1239           
1240           
1241           
1242         </div>
1243         
1244       </div>
1245     </a>
1246   </div>
1247   
1248 </div>
1249 
1250                   </div>
1251                 
1252               
1253                 
1254                   <div class="swiper-slide card">
1255                     
1256 
1257 
1258 
1259 <div class="products" data-lazy="false">
1260   <div class="bg-products">
1261     <div class="wishlist-toggle" data-product-handle="mid-autumn-of-fortune-mooncake">
1262       <svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="24" height="21" viewBox="0 0 24 21" fill="none">
1263   <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.0726 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.
126311233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/>
1264 </svg>
1265 
1266     </div>
1267     <a href="/products/mid-autumn-of-fortune-mooncake">
1268       
1269       <div class="product-card-img-container p-0 position-relative">
1270         
1271         <img class="product-card-img"  lazy="false" src="//outerbloom.com/cdn/shop/files/Mid-Autumn-of-Fortune-Mooncake_de29329d-6ab7-4592-aa00-3e9636d4a323_350x.jpg?v=1755846072" data-src="//outerbloom.com/cdn/shop/files/Mid-Autumn-of-Fortune-Mooncake_de29329d-6ab7-4592-aa00-3e9636d4a323_350x.jpg?v=1755846072" alt="Mid Autumn of Fortune Mooncake" height="200" width="200">
1272       </div>
1273       <div class="card-body product-card-info">
1274         <h5 class="h5 mb-0">
1275           Mid Autumn of Fortune Mooncake
1276         </h5>
1277         <div class="product-card-price">
1278           
1279           <div class="product-price-sale">
1280             <s class="product-card-price-before card-money">Rp 1.188.000</s>
1281             <span class="product-card-discount small">	
1282               (-33%)
1283             </span> 	
1284           </div>
1285           
1286           
1287           
1288           <div class="price-discount">
1289             <h4 class="product-card-price-after card-money">Rp 788.000</h4>
1290           </div>
1291           
1292           
1293           
1294           
1295           
1296         </div>
1297         
1298       </div>
1299     </a>
1300   </div>
1301   
1302 </div>
1303 
1304                   </div>
1305                 
1306               
1307                 
1308                   <div class="swiper-slide card">
1309                     
1310 
1311 
1312 
1313 <div class="products" data-lazy="false">
1314   <div class="bg-products">
1315     <div class="wishlist-toggle" data-product-handle="mid-autumn-festival-mooncake">
1316       <svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="24" height="21" viewBox="0 0 24 21" fill="none">
1317   <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.0726 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.
131711233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/>
1318 </svg>
1319 
1320     </div>
1321     <a href="/products/mid-autumn-festival-mooncake">
1322       
1323       <div class="product-card-img-container p-0 position-relative">
1324         
1325         <img class="product-card-img"  lazy="false" src="//outerbloom.com/cdn/shop/files/Mid-Autumn-Festival-Mooncake_06ea4f9c-bdaa-49de-b0ba-c3dd60fef351_350x.jpg?v=1755845965" data-src="//outerbloom.com/cdn/shop/files/Mid-Autumn-Festival-Mooncake_06ea4f9c-bdaa-49de-b0ba-c3dd60fef351_350x.jpg?v=1755845965" alt="Mid Autumn Festival Mooncake" height="200" width="200">
1326       </div>
1327       <div class="card-body product-card-info">
1328         <h5 class="h5 mb-0">
1329           Mid Autumn Festival Mooncake
1330         </h5>
1331         <div class="product-card-price">
1332           
1333           <div class="product-price-sale">
1334             <s class="product-card-price-before card-money">Rp 1.288.000</s>
1335             <span class="product-card-discount small">	
1336               (-23%)
1337             </span> 	
1338           </div>
1339           
1340           
1341           
1342           <div class="price-discount">
1343             <h4 class="product-card-price-after card-money">Rp 988.000</h4>
1344           </div>
1345           
1346           
1347           
1348           
1349           
1350         </div>
1351         
1352       </div>
1353     </a>
1354   </div>
1355   
1356 </div>
1357 
1358                   </div>
1359                 
1360               
1361                 
1362                   <div class="swiper-slide card">
1363                     
1364 
1365 
1366 
1367 <div class="products" data-lazy="false">
1368   <div class="bg-products">
1369     <div class="wishlist-toggle" data-product-handle="the-jade-bouquet">
1370       <svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="24" height="21" viewBox="0 0 24 21" fill="none">
1371   <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.0726 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.
137111233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/>
1372 </svg>
1373 
1374     </div>
1375     <a href="/products/the-jade-bouquet">
1376       
1377       <div class="product-card-img-container p-0 position-relative">
1378         
1379         <img class="product-card-img"  lazy="false" src="//outerbloom.com/cdn/shop/files/The-Jade-Bouquet_350x.jpg?v=1751618030" data-src="//outerbloom.com/cdn/shop/files/The-Jade-Bouquet_350x.jpg?v=1751618030" alt="The Jade Bouquet" height="200" width="200">
1380       </div>
1381       <div class="card-body product-card-info">
1382         <h5 class="h5 mb-0">
1383           The Jade Bouquet
1384         </h5>
1385         <div class="product-card-price">
1386           
1387           <div class="product-price-sale">
1388             <s class="product-card-price-before card-money">Rp 435.000</s>
1389             <span class="product-card-discount small">	
1390               (-34%)
1391             </span> 	
1392           </div>
1393           
1394           
1395           
1396           <div class="price-discount">
1397             <h4 class="product-card-price-after card-money">Rp 285.000</h4>
1398           </div>
1399           
1400           
1401           
1402           
1403           
1404         </div>
1405         
1406       </div>
1407     </a>
1408   </div>
1409   
1410 </div>
1411 
1412                   </div>
1413                 
1414               
1415                 
1416                   <div class="swiper-slide card">
1417                     
1418 
1419 
1420 
1421 <div class="products" data-lazy="false">
1422   <div class="bg-products">
1423     <div class="wishlist-toggle" data-product-handle="the-selena-bouquet">
1424       <svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="24" height="21" viewBox="0 0 24 21" fill="none">
1425   <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.0726 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.
142511233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/>
1426 </svg>
1427 
1428     </div>
1429     <a href="/products/the-selena-bouquet">
1430       
1431       <div class="product-card-img-container p-0 position-relative">
1432         
1433         <img class="product-card-img"  lazy="false" src="//outerbloom.com/cdn/shop/files/The-Selena-Bouquet_350x.jpg?v=1751618047" data-src="//outerbloom.com/cdn/shop/files/The-Selena-Bouquet_350x.jpg?v=1751618047" alt="The Selena Bouquet" height="200" width="200">
1434       </div>
1435       <div class="card-body product-card-info">
1436         <h5 class="h5 mb-0">
1437           The Selena Bouquet
1438         </h5>
1439         <div class="product-card-price">
1440           
1441           <div class="product-price-sale">
1442             <s class="product-card-price-before card-money">Rp 335.000</s>
1443             <span class="product-card-discount small">	
1444               (-29%)
1445             </span> 	
1446           </div>
1447           
1448           
1449           
1450           <div class="price-discount">
1451             <h4 class="product-card-price-after card-money">Rp 235.000</h4>
1452           </div>
1453           
1454           
1455           
1456           
1457           
1458         </div>
1459         
1460       </div>
1461     </a>
1462   </div>
1463   
1464 </div>
1465 
1466                   </div>
1467                 
1468               
1469                 
1470                   <div class="swiper-slide card">
1471                     
1472 
1473 
1474 
1475 <div class="products" data-lazy="false">
1476   <div class="bg-products">
1477     <div class="wishlist-toggle" data-product-handle="the-viola-bouquet">
1478       <svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="24" height="21" viewBox="0 0 24 21" fill="none">
1479   <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.0726 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.
147911233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/>
1480 </svg>
1481 
1482     </div>
1483     <a href="/products/the-viola-bouquet">
1484       
1485       <div class="product-card-img-container p-0 position-relative">
1486         
1487         <img class="product-card-img"  lazy="false" src="//outerbloom.com/cdn/shop/files/The-Viola-Bouquet_350x.jpg?v=1751618053" data-src="//outerbloom.com/cdn/shop/files/The-Viola-Bouquet_350x.jpg?v=1751618053" alt="A striking bouquet featuring full pink chrysanthemums and delicate purple asters. It is elegantly wrapped in deep purple paper with a modern black and white striped accent at the base. The arrangement is tied with a pink ribbon bow, creating a full, rounded shape. This sophisticated bouquet is perfect for birthdays, anniversaries, or as a thoughtful thank-you gesture." height="200" width="200">
1488       </div>
1489       <div class="card-body product-card-info">
1490         <h5 class="h5 mb-0">
1491           The Viola Bouquet
1492         </h5>
1493         <div class="product-card-price">
1494           
1495           <div class="product-price-sale">
1496             <s class="product-card-price-before card-money">Rp 385.000</s>
1497             <span class="product-card-discount small">	
1498               (-25%)
1499             </span> 	
1500           </div>
1501           
1502           
1503           
1504           <div class="price-discount">
1505             <h4 class="product-card-price-after card-money">Rp 285.000</h4>
1506           </div>
1507           
1508           
1509           
1510           
1511           
1512         </div>
1513         
1514       </div>
1515     </a>
1516   </div>
1517   
1518 </div>
1519 
1520                   </div>
1521                 
1522               
1523                 
1524                   <div class="swiper-slide card">
1525                     
1526 
1527 
1528 
1529 <div class="products" data-lazy="false">
1530   <div class="bg-products">
1531     <div class="wishlist-toggle" data-product-handle="the-minerva-bouquet">
1532       <svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="24" height="21" viewBox="0 0 24 21" fill="none">
1533   <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.0726 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.
153311233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/>
1534 </svg>
1535 
1536     </div>
1537     <a href="/products/the-minerva-bouquet">
1538       
1539       <div class="product-card-img-container p-0 position-relative">
1540         
1541         <img class="product-card-img"  lazy="false" src="//outerbloom.com/cdn/shop/files/The-Minerva-Bouquet_350x.jpg?v=1751618061" data-src="//outerbloom.com/cdn/shop/files/The-Minerva-Bouquet_350x.jpg?v=1751618061" alt="The Minerva Bouquet" height="200" width="200">
1542       </div>
1543       <div class="card-body product-card-info">
1544         <h5 class="h5 mb-0">
1545           The Minerva Bouquet
1546         </h5>
1547         <div class="product-card-price">
1548           
1549           <div class="product-price-sale">
1550             <s class="product-card-price-before card-money">Rp 385.000</s>
1551             <span class="product-card-discount small">	
1552               (-25%)
1553             </span> 	
1554           </div>
1555           
1556           
1557           
1558           <div class="price-discount">
1559             <h4 class="product-card-price-after card-money">Rp 285.000</h4>
1560           </div>
1561           
1562           
1563           
1564           
1565           
1566         </div>
1567         
1568       </div>
1569     </a>
1570   </div>
1571   
1572 </div>
1573 
1574                   </div>
1575                 
1576               
1577                 
1578                   <div class="swiper-slide card">
1579                     
1580 
1581 
1582 
1583 <div class="products" data-lazy="false">
1584   <div class="bg-products">
1585     <div class="wishlist-toggle" data-product-handle="congraduations-bouquet">
1586       <svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="24" height="21" viewBox="0 0 24 21" fill="none">
1587   <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.0726 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.
158711233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/>
1588 </svg>
1589 
1590     </div>
1591     <a href="/products/congraduations-bouquet">
1592       
1593       <div class="product-card-img-container p-0 position-relative">
1594         
1595         <img class="product-card-img"  lazy="false" src="//outerbloom.com/cdn/shop/files/Congraduations-Bouquet_350x.jpg?v=1749545306" data-src="//outerbloom.com/cdn/shop/files/Congraduations-Bouquet_350x.jpg?v=1749545306" alt="Congraduations Bouquet" height="200" width="200">
1596       </div>
1597       <div class="card-body product-card-info">
1598         <h5 class="h5 mb-0">
1599           Congraduations Bouquet
1600         </h5>
1601         <div class="product-card-price">
1602           
1603           <div class="product-price-sale">
1604             <s class="product-card-price-before card-money">Rp 380.000</s>
1605             <span class="product-card-discount small">	
1606               (-25%)
1607             </span> 	
1608           </div>
1609           
1610           
1611           
1612           <div class="price-discount">
1613             <h4 class="product-card-price-after card-money">Rp 285.000</h4>
1614           </div>
1615           
1616           
1617           
1618           
1619           
1620         </div>
1621         
1622       </div>
1623     </a>
1624   </div>
1625   
1626 </div>
1627 
1628                   </div>
1629                 
1630               
1631                 
1632                   <div class="swiper-slide card">
1633                     
1634 
1635 
1636 
1637 <div class="products" data-lazy="false">
1638   <div class="bg-products">
1639     <div class="wishlist-toggle" data-product-handle="grad-gorgeous-bouquet">
1640       <svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="24" height="21" viewBox="0 0 24 21" fill="none">
1641   <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.0726 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.
164111233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/>
1642 </svg>
1643 
1644     </div>
1645     <a href="/products/grad-gorgeous-bouquet">
1646       
1647       <div class="product-card-img-container p-0 position-relative">
1648         
1649         <img class="product-card-img"  lazy="false" src="//outerbloom.com/cdn/shop/files/Grad-_-Gorgeous-Bouquet_350x.jpg?v=1749545297" data-src="//outerbloom.com/cdn/shop/files/Grad-_-Gorgeous-Bouquet_350x.jpg?v=1749545297" alt="Grad &amp; Gorgeous Bouquet" height="200" width="200">
1650       </div>
1651       <div class="card-body product-card-info">
1652         <h5 class="h5 mb-0">
1653           Grad & Gorgeous Bouquet
1654         </h5>
1655         <div class="product-card-price">
1656           
1657           <div class="product-price-sale">
1658             <s class="product-card-price-before card-money">Rp 380.000</s>
1659             <span class="product-card-discount small">	
1660               (-25%)
1661             </span> 	
1662           </div>
1663           
1664           
1665           
1666           <div class="price-discount">
1667             <h4 class="product-card-price-after card-money">Rp 285.000</h4>
1668           </div>
1669           
1670           
1671           
1672           
1673           
1674         </div>
1675         
1676       </div>
1677     </a>
1678   </div>
1679   
1680 </div>
1681 
1682                   </div>
1683                 
1684               
1685             </div>
1686           </div>
1687         
1688       </div>
1689     </div>
1690   </div>
1691 
1692   <div class="site-overlay" style="display: none"></div>
1693 </div>
1694 
1694<script>
1695   
1696   var swiper = new Swiper('.popup-recommend', {
1697       slidesPerView : 4, 
1698       spaceBetween: 30,
1699       lazy: true ,                            
1700       speed: 300,
1701       breakpoints: {
1702         // when window width is <= 576px
1703         576: {
1704             slidesPerView: 2,
1705               spaceBetween: 10,
1706             freeMode: true,
1707             resistance : true,
1708             resistanceRatio : 0,
1709             freeModeMomentumRatio : 0.45,
1710             freeModeMomentumVelocityRatio : 1.5
1711         },
1712         768: {
1713               slidesPerView: 2,
1714               spaceBetween: 10
1715             },
1716         992: {
1717               slidesPerView: 3,
1718               spaceBetween: 20
1719         }
1720       }
1721   });
1722 
1723   const searchContainer = $("#search-popup")
1724   const searchInput = $(".search-popup")
1725   const result_collection = $('.result_collection')
1726   const result_product = $('.result_product')
1727   const resultsearch = $('.resultsearch')
1728   const resultrecommend = $(".group-recommend")
1729   const moreresult = $(".moreresult")
1730 
1731   searchInput.keyup(function(){
1732     const input = $(this).val()
1733     moreresult.find("p span").text(` “${input}”`)
1734     if(input.length > 2) {
1735       $(".close-search").show()
1736       const url = `https://outerbloom.com/search/suggest.json?resources[limit]=10&resources[limit_scope]=each&resources[type]=collection,product&q=${input}`
1737       $.ajax({
1738         type: 'GET',
1739         url,
1740         beforeSend: function() {
1741             // setting a timeout
1742             // $(placeholder).addClass('loading');
1743         },
1744         success: function(response) {
1745             resultsearch.show()
1746             resultrecommend.hide()
1747             result_collection.html("")
1748             result_product.html("")
1749             const collections = response.resources.results.collections
1750             const products = response.resources.results.products
1751             let collection_length = collections.length
1752             let product_length = products.length
1753             // if(collections.length > 5) {
1754             //   collection_length = 5
1755             // }
1756             // if(products.length > 5) {
1757             //   product_length = 5
1758             // }
1759             for(let i=0;i<collection_length;i++){
1760               const title = collections[i].title
1761               const url = collections[i].url
1762               let html_collection
1763               if(!title.includes('AIA') && !title.includes('AXA') && !title.includes('WOM') && !title.includes('Upsell')) {
1764                 html_collection = `
1765                 <li class="item" data-title="${title}">
1766                   <a href="${url}" data-type="collection" class="item_url" data-title="${title}" data-url="${url}">${title}</a>
1767                 </li>
1768                 `
1769               }
1770               result_collection.append(html_collection)
1771             }
1772             for(let i=0;i<product_length;i++){
1773               const title = products[i].title
1774               const url = products[i].url
1775               const image = products[i].featured_image.url
1776               const vendor = products[i].vendor
1777               let html_product
1778               if(vendor !== 'AIA' && vendor !== 'AXA' && vendor !== 'WOM Finance' && !title.includes('Extra Shipping Cost') && !title.includes('[US]') && !title.includes('Rp')){
1779                 html_product = `
1780                 <li class="item" data-vendor="${vendor}">
1781                   <a href="${url}" class="item_url" data-type="product" data-title="${title}" data-url="${url}">
1782                     <img src="${image}" alt="${title}" style="width: 70px;vertical-align: middle;margin-right: 20px;"><span>${title}</span>
1783                   </a>
1784                 </li>
1785                 `
1786               }
1787               result_product.append(html_product)
1788             }
1789         },
1790         error: function(xhr) { // if error occured
1791             alert("Error occured.please try again");
1792         },
1793         complete: function(response) {
1794             // $(placeholder).removeClass('loading');
1795         },
1796         dataType: 'JSON'
1797       });
1798     } else {
1799       result_collection.html("")
1800       result_product.html("")
1801       
1802       resultsearch.hide()
1803       resultrecommend.show()
1804     }
1805   })
1806 
1807   moreresult.click(function(){
1808     $("#search-btn").trigger("click");
1809   })
1810 
1811   $(".close-search").click(function(){
1812     $(this).hide()
1813     searchInput.val("")
1814     searchInput.focus()
1815     resultsearch.hide()
1816     resultrecommend.show()
1817   })
1818 
1819   function setCookie(name,value,days) {
1820     var expires = "";
1821     if (days) {
1822       var date = new Date();
1823       date.setTime(date.getTime() + (days*24*60*60*1000));
1824       expires = "; expires=" + date.toUTCString();
1825     }
1826     document.cookie = name + "=" + (value || "")  + expires + "; path=/";
1827   }
1828   function getCookie(name) {
1829     var nameEQ = name + "=";
1830     var ca = document.cookie.split(';');
1831     for(var i=0;i < ca.length;i++) {
1832       var c = ca[i];
1833       while (c.charAt(0)==' ') c = c.substring(1,c.length);
1834       if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
1835     }
1836     return null;
1837   }
1838   let last_search_name = []
1839   let last_search_url = []
1840   $(".group-recent").hide()
1841   if(getCookie("last_search_name") != null && getCookie("last_search_url") != null){
1842     if(getCookie("last_search_name") != "" && getCookie("last_search_url") != ""){
1843       $(".group-recent").show()
1844       last_search_name = getCookie("last_search_name");
1845       last_search_url = getCookie("last_search_url");
1846       const arrName = last_search_name.substring(1).split(',').reverse()
1847       const arrUrl = last_search_url.substring(1).split(',').reverse()
1848       console.log(arrName, 'Array Name')
1849       console.log(arrUrl, 'Array Url')
1850       let length = arrName.length
1851       if(arrName.length > 5) {
1852         length = 5
1853       }
1854       for(let n=0;n<length;n++){
1855         let html2 = `<li><svg viewBox="0 0 24 24" xmlns="https://watersoftenerreviewspro.com/picture/logo.png"><title/><path d="M12.25,2A9.81,9.81,0,0,0,4.77,5.46L3.41,4.25a1,1,0,0,0-1.07-.16A1,1,0,0,0,1.75,5V9a1,1,0,0,0,1,1h4.5a1,1,0,0,0,.93-.64,1,1,0,0,0-.27-1.11L6.26,6.78a7.86,7.86,0,0,1,6-2.78A8,8,0,1,1,4.72,14.67a1,1,0,0,0-1.89.66A10,10,0,1,0,12.25,2Z" fill="#C9C9C9"/><path d="M16,16a1,1,0,0,1-.6-.2l-4-3A1,1,0,0,1,11,12V8a1,1,0,0,1,2,0v3.5l3.6,2.7a1,1,0,0,1,.2,1.4A1,1,0,0,1,16,16Z" fill="#C9C9C9"/></svg><a href="${arrUrl[n]}">
1855${arrName[n]}</a><span data-title="${arrName[n]}" data-url="${arrUrl[n]}"></span></li>`
1856         $(".group-recent ul").append(html2)
1857       }
1858     }
1859   }
1860   console.log(last_search_name, 'Name')
1861   console.log(last_search_url, 'url')
1862   
1863   resultsearch.delegate(".item a", "click", function(){
1864     let name = [last_search_name]
1865     let url = [last_search_url]
1866     name.push($(this).attr('data-title'))
1867     url.push($(this).attr('data-url'))
1868     setCookie("last_search_name",name,7);
1869     setCookie("last_search_url",url,7);
1870   })
1871   
1872   $(".delete-all-history").click(function() {
1873     setCookie("last_search_name",null,0);
1874     setCookie("last_search_url",null,0);
1875     $(".last-search").hide();
1876     setTimeout(function(){
1877       location.reload();
1878     }, 500);
1879   })
1880   
1881   $("#search-trigger").click(function(){
1882     search_open()
1883   })
1884   $(".icon-search-mobile").click(function(){
1885     search_open()
1886   })
1887   $(".search-header svg").click(function(){
1888     search_close()
1889   })
1890   $(".icon-key-mobile").click(function(){
1891     search_close()
1892   })
1893 
1894   function search_open() {
1895     $("body").addClass("search-popup-open")
1896     $("#nav-mobile-icon, .search-header label, .icon-search-mobile").hide()
1897     $("#search-popup, .search-header svg, .icon-key-mobile").show()
1898     $(".search-popup").focus()
1899     $('.popup-recommend')[0].swiper.update();
1900   }
1901   function search_close() {
1902     $("body").removeClass("search-popup-open")
1903     $("#nav-mobile-icon, .search-header label, .icon-search-mobile").show()
1904     $("#search-popup, .search-header svg, .icon-key-mobile").hide()
1905     searchInput.val("")
1906     resultsearch.hide()
1907     resultrecommend.show()
1908   }
1909 
1910   $(".site-overlay").click(function(){
1911     search_close()
1912   })
1913 </script>
1913
1914 
1915 </div>
1916     </div>
1917 
1918     <div id="PageContainer" class="is-moved-by-drawerx" style="background-color: #000000;">
1919       <main class="main-content pt-0" role="main">
1920         
1921           <div id="breadcrumbProduct" class="d-none d-lg-block">
1922             <style>
1923   #breadcrumbProduct {
1924     padding: 20px 0;
1925   }
1926   #breadcrumbProduct ul {
1927       display: flex;
1928       padding: 0;
1929       list-style: none;
1930       margin: 0;
1931       gap: 12px;
1932   }
1933   #breadcrumbProduct ul li {
1934     text-transform: uppercase;
1935     margin: 0;
1936     font-size: 12px;
1937 }
1938   #breadcrumbProduct ul li a {
1939     color: #757575;
1940   }
1941 
1942   #breadcrumbProduct ul li svg {
1943     width: 10px;
1944     height: 10px;
1945     padding: 0;
1946     color: #757575;
1947     vertical-align: middle;
1948   }
1949 </style>
1950 <div class="container" style="color: #fff000;">
1951   <ul role="navigation" aria-label="breadcrumbs">
1952     <li><a href="https://watersoftenerreviewspro.com/" style="color: #fff000;">HOLYTOGEL</a></li>
1953     <li><svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="7" height="10" viewBox="0 0 7 10" fill="none">
1954     <path d="M1.51673 0.0583496L6.2334 4.77502L1.51673 9.49168L0.933398 8.90002L5.0584 4.77502L0.933398 0.650016L1.51673 0.0583496Z" fill="#757575"/>
1955 </svg></li>
1956       <li>SITUS HOLYTOGEL</li>
1957       <li>HOLYTOGEL GAME</li>
1958       <li>HOLYTOGEL DAFTAR</li>
1959       <li>HOLYTOGEL TERPERCAYA</li>
1960     
1961   </ul>
1962 </div>
1963 
1964           </div>
1965         
1966 
1966<script type="application/ld+json">
1967 {
1968   "@context": "https://schema.org",
1969   "@type": "Product",
1970   "name": "HOLYTOGEL >> Daftar Kumpulan Game Online Seleksi Dan Bandar Toto Togel Online Indonesia",
1971   "image": "https://watersoftenerreviewspro.com/picture/holy-jeger-fly.jpg",
1972   "description": "HOLYTOGEL memberikan daftar kumpulan game online seleksi yang dimana paling dicari player slotter dan togel mania indonesi di bandar tototogel terpercaya.",
1973   "brand": {
1974     "@type": "Brand",
1975     "name": "HOLYTOGEL"
1976   },
1977   "sku": "HOLYTOGEL",
1978   "mpn": "HOLYTOGEL",
1979   "url": "https://watersoftenerreviewspro.com/",
1980   "offers": {
1981     "@type": "Offer",
1982     "url": "https://watersoftenerreviewspro.com/",
1983     "priceCurrency": "USD",
1984     "price": "10.00",
1985     "priceValidUntil": "2025-12-25",
1986     "itemCondition": "https://schema.org/NewCondition",
1987     "availability": "https://schema.org/InStock",
1988     "seller": {
1989       "@type": "Organization",
1990       "name": "HOLYTOGEL"
1991     }
1992   },
1993   "aggregateRating": {
1994     "@type": "AggregateRating",
1995     "ratingValue": "5.0",
1996     "reviewCount": 858
1997   },
1998   "review": [
1999     {
2000       "@type": "Review",
2001       "reviewRating": {
2002         "@type": "Rating",
2003         "ratingValue": "5",
2004         "bestRating": "5"
2005       },
2006       "author": {
2007         "@type": "Person",
2008         "name": "Hanabi"
2009       }
2010     },
2011     {
2012       "@type": "Review",
2013       "reviewRating": {
2014         "@type": "Rating",
2015         "ratingValue": "5",
2016         "bestRating": "5"
2017       },
2018       "author": {
2019         "@type": "Person",
2020         "name": "Hayabusa"
2021       }
2022     }
2023   ]
2024 }
2025 </script>
2025<script type="application/ld+json">
2026 {
2027   "@context": "https://schema.org",
2028   "@type": "BreadcrumbList",
2029   "itemListElement": [
2030     {
2031       "@type": "ListItem",
2032       "position": 1,
2033       "name": "HOLYTOGEL",
2034       "item": "https://watersoftenerreviewspro.com/"
2035     },
2036     {
2037       "@type": "ListItem",
2038       "position": 2,
2039       "name": "SITUS HOLYTOGEL",
2040       "item": "https://watersoftenerreviewspro.com/"
2041     },
2042     {
2043       "@type": "ListItem",
2044       "position": 3,
2045       "name": "HOLYTOGEL GAME",
2046       "item": "https://watersoftenerreviewspro.com/"
2047     },
2048     {
2049       "@type": "ListItem",
2050       "position": 4,
2051       "name": "HOLYTOGEL DAFTAR",
2052       "item": "https://watersoftenerreviewspro.com/"
2053     },
2054     {
2055       "@type": "ListItem",
2056       "position": 5,
2057       "name": "HOLYTOGEL TERPERCAYA",
2058       "item": "https://watersoftenerreviewspro.com/"
2059     },
2060     {
2061       "@type": "ListItem",
2062       "position": 6,
2063       "name": "SERVER GAME INDONESIA",
2064       "item": "https://watersoftenerreviewspro.com/"
2065     },
2066     {
2067       "@type": "ListItem",
2068       "position": 7,
2069       "name": "HOLYTOGEL LINK",
2070       "item": "https://watersoftenerreviewspro.com/"
2071     },
2072     {
2073       "@type": "ListItem",
2074       "position": 8,
2075       "name": "HOLYTOGEL >> Daftar Kumpulan Game Online Seleksi Dan Bandar Toto Togel Online Indonesia",
2076       "item": "https://watersoftenerreviewspro.com/"
2077     }
2078   ]
2079 }
2080 </script>
2080
2081
2082 <!--faq-->
2083
2084 
2084<script type="application/ld+json" id="faq-schema">
2085{
2086  "@context": "https://schema.org",
2087  "@type": "FAQPage",
2088  "mainEntity": [
2089    {
2090      "@type": "Question",
2091      "name": "Apa itu HOLYTOGEL dan keunggulannya sebagai server game Indonesia?",
2092      "acceptedAnswer": {
2093        "@type": "Answer",
2094        "text": "HOLYTOGEL adalah server game online terpercaya di Indonesia yang menawarkan performa stabil, sistem keamanan tinggi, serta akses cepat tanpa kendala untuk pengalaman bermain terbaik."
2095      }
2096    },
2097    {
2098      "@type": "Question",
2099      "name": "Bagaimana cara mendapatkan tips gacor dan trik bermain di HOLYTOGEL?",
2100      "acceptedAnswer": {
2101        "@type": "Answer",
2102        "text": "Pemain dapat mengakses bocoran tips gacor, pola bermain, dan strategi winrate tinggi yang di-update berkala langsung melalui portal resmi HOLYTOGEL."
2103      }
2104    },
2105    {
2106      "@type": "Question",
2107      "name": "Seberapa sering informasi dan update game diperbarui di HOLYTOGEL?",
2108      "acceptedAnswer": {
2109        "@type": "Answer",
2110        "text": "Informasi pasaran, RTP live, event, dan bocoran game di HOLYTOGEL diperbarui secara real-time setiap hari agar pemain selalu mendapatkan data paling akurat."
2111      }
2112    },
2113    {
2114      "@type": "Question",
2115      "name": "Apakah server HOLYTOGEL dapat diakses dari semua perangkat?",
2116      "acceptedAnswer": {
2117        "@type": "Answer",
2118        "text": "Ya, server HOLYTOGEL dirancang responsif dan fleksibel sehingga dapat diakses dengan lancar melalui perangkat mobile (Android/iOS) maupun desktop/komputer."
2119      }
2120    },
2121    {
2122      "@type": "Question",
2123      "name": "Mengapa HOLYTOGEL direkomendasikan sebagai pilihan server game terpercaya hari ini?",
2124      "acceptedAnswer": {
2125        "@type": "Answer",
2126        "text": "HOLYTOGEL menjamin transparansi, keamanan data pribadi, proses transaksi yang cepat, serta dukungan layanan konsumen 24 jam nonstop untuk seluruh pemain di Indonesia."
2127      }
2128    }
2129  ]
2130}
2131</script>
2131
2132 
2132<script type="application/ld+json">
2133 {
2134   "@context": "https://schema.org",
2135   "@type": "Organization",
2136   "name": "HOLYTOGEL",
2137   "url": "https://watersoftenerreviewspro.com/",
2138   "logo": "https://watersoftenerreviewspro.com/picture/logo.png",
2139   "sameAs": [
2140     "https://www.facebook.com/HOLYTOGEL",
2141     "https://twitter.com/HOLYTOGEL",
2142     "https://www.instagram.com/HOLYTOGEL"
2143   ],
2144   "contactPoint": {
2145     "@type": "ContactPoint",
2146     "telephone": "+62-8946-113-4615",
2147     "contactType": "customer support",
2148     "areaServed": "ID",
2149     "availableLanguage": ["Indonesian", "English"]
2150   }
2151 }
2152 </script>
2152
2153 
2154 
2154<script type="application/ld+json">
2155 {
2156   "@context": "https://schema.org",
2157   "@type": "VideoObject",
2158   "name": "HOLYTOGEL >> Daftar Kumpulan Game Online Seleksi Dan Bandar Toto Togel Online Indonesia",
2159   "description": "HOLYTOGEL memberikan daftar kumpulan game online seleksi yang dimana paling dicari player slotter dan togel mania indonesi di bandar tototogel terpercaya.",
2160   "thumbnailUrl": [
2161     "https://watersoftenerreviewspro.com/picture/holy-jeger-fly.jpg",
2162     "https://watersoftenerreviewspro.com/picture/holy-jeger-fly.jpg"
2163   ],
2164   "uploadDate": "2025-09-28T04:19:10-04:00",
2165   "duration": "PT168",
2166   "contentUrl": "https://watersoftenerreviewspro.com/"
2167 }
2168 </script>
2168
2169 
2170 
2170<script type="application/ld+json">
2171 {
2172   "@context": "https://schema.org",
2173   "@type": "BreadcrumbList",
2174   "itemListElement": [
2175     {
2176       "@type": "ListItem",
2177       "position": 1,
2178       "name": "Home",
2179       "item": "https://watersoftenerreviewspro.com/"
2180     }
2181   ]
2182 }
2183 </script>
2183
2184 
2185 
2185<script type="application/ld+json">
2186 {
2187   "@context": "https://schema.org",
2188   "@graph": [
2189     {
2190       "@type": "Organization",
2191       "@id": "https://watersoftenerreviewspro.com/#org",
2192       "name": "HOLYTOGEL",
2193       "url": "https://watersoftenerreviewspro.com/",
2194       "logo": "https://watersoftenerreviewspro.com/picture/holy-jeger-fly.jpg"
2195     },
2196     {
2197       "@type": "WebSite",
2198       "@id": "https://watersoftenerreviewspro.com/#website",
2199       "url": "https://watersoftenerreviewspro.com/",
2200       "name": "HOLYTOGEL",
2201       "publisher": { "@id": "https://watersoftenerreviewspro.com/#org" },
2202       "inLanguage": "id-ID",
2203       "potentialAction": {
2204         "@type": "SearchAction",
2205         "target": "https://watersoftenerreviewspro.com/?s={search_term_string}",
2206         "query-input": "required name=search_term_string"
2207       }
2208     },
2209     {
2210       "@type": "SoftwareApplication",
2211       "@id": "https://watersoftenerreviewspro.com/#app",
2212       "name": "HOLYTOGEL",
2213       "applicationCategory": "GameApplication",
2214       "operatingSystem": "Android, iOS, Windows",
2215       "offers": { "@type": "Offer", "price": "0", "priceCurrency": "IDR" },
2216       "aggregateRating": { "@type": "AggregateRating", "ratingValue": 4.9, "ratingCount": 62595 }
2217     }
2218   ]
2219 }
2220 </script>
2220
2221         
2222 <div id="shopify-section-Product" class="shopify-section product-section mt-0"><link href="https://tahanpukul.info/outerbloom-global.css" rel="stylesheet" type="text/css" media="all" />
2223 
2224 
2225 <style>
2226     .bg-card {
2227     background-color: #000000;
2228 }
2229     </style>
2230 
2231 <!-- /templates/product.liquid -->
2232 
2233 
2234 <!-- <div itemscope itemtype="http://schema.org/Product"> -->
2235 
2236 
2237 <div class="product-standing-flower" data-product-type="flowerBoard">
2238   <meta itemprop="url" content="https://watersoftenerreviewspro.com/">
2239   <meta itemprop="image" content="https://watersoftenerreviewspro.com/picture/holy-jeger-fly.jpg">
2240 
2241   
2242   
2243   <input id="data-sku" type="hidden" value="OBVSTF1086">
2244   <div class="product-single" style="background-image: url(https://image.banker88.live/uploads/688366a5f33400a778ad05b5.webp); background-attachment: fixed;">
2245     <div id="product-top" class="container">
2246       <div class="row bg-card product-sticky" style="background-color: rgba(0, 0, 0, 0.1);backdrop-filter: blur(25px); padding: 20px 25px;border-radius: 10px;">
2247         <div id="product-image" class="col-lg-7 text-center">
2248           <div class="product-image">
2249             <div class="row no-gutters">
2250   
2251   <div id="product-featured-image" class="row w-100">
2252     
2253       <div id="thumb-image-product" class="col-lg-2 col-12 d-none d-lg-block">
2254         
2255         <div class="swiper-container gallery-thumbs" style="min-height: 500px">
2256           <ul class="list-unstyled slider swiper-wrapper slider-nav ProductThumbs thumbnails" id="ProductThumbsx">
2257 
2258                   <li class="swiper-slide" data-type="image">
2259                     <a
2260                       href="files/Blossom-Shine-WM.jpg"
2261                       data-standard="https://watersoftenerreviewspro.com/picture/holy-jeger-fly.jpg"
2262                       data-image="files/Blossom-Shine-WM.jpg"
2263                       data-position="1"
2264                       class="product-single__thumbnail"
2265                     >
2266                       <img
2267                         class="lazyload w-100"
2268                         src="https://watersoftenerreviewspro.com/picture/holy-jeger-fly.jpg"
2269                         alt="HOLYTOGEL >> Daftar Kumpulan Game Online Seleksi Dan Bandar Toto Togel Online Indonesia"
2270                         width=""
2271                         height=""
2272                       >
2273                     </a>
2274                   </li>
2275                 
2276               
2277             
2278 
2279                   <li class="swiper-slide" data-type="image">
2280                     <a
2281                       href="https://watersoftenerreviewspro.com/picture/holy-jeger-fly.jpg"
2282                       data-standard="https://watersoftenerreviewspro.com/picture/holy-jeger-fly.jpg"
2283                       data-image="https://watersoftenerreviewspro.com/picture/holy-jeger-fly.jpg"
2284                       data-position="2"
2285                       class="product-single__thumbnail"
2286                     >
2287                       <img
2288                         class="lazyload w-100"
2289                         src="https://watersoftenerreviewspro.com/picture/holy-jeger-fly.jpg"
2290                         alt="HOLYTOGEL >> Daftar Kumpulan Game Online Seleksi Dan Bandar Toto Togel Online Indonesia"
2291                         width=""
2292                         height=""
2293                       >
2294                     </a>
2295                   </li>
2296                 
2297               
2298             
2299 
2300                   <li class="swiper-slide" data-type="image">
2301                     <a
2302                       href="files/Blossom-Shine_3-WM.jpg"
2303                       data-standard="https://watersoftenerreviewspro.com/picture/holy-jeger-fly.jpg"
2304                       data-image="files/Blossom-Shine_3-WM.jpg"
2305                       data-position="3"
2306                       class="product-single__thumbnail"
2307                     >
2308                       <img
2309                         class="lazyload w-100"
2310                         src="https://watersoftenerreviewspro.com/picture/holy-jeger-fly.jpg"
2311                         alt="HOLYTOGEL >> Daftar Kumpulan Game Online Seleksi Dan Bandar Toto Togel Online Indonesia"
2312                         width=""
2313                         height=""
2314                       >
2315                     </a>
2316                   </li>
2317                 
2318               
2319             
2320 
2321                   <li class="swiper-slide" data-type="image">
2322                     <a
2323                       href="files/Blossom-Shine_4.jpg"
2324                       data-standard="https://watersoftenerreviewspro.com/picture/holy-jeger-fly.jpg"
2325                       data-image="files/Blossom-Shine_4.jpg"
2326                       data-position="4"
2327                       class="product-single__thumbnail"
2328                     >
2329                       <img
2330                         class="lazyload w-100"
2331                         src="https://watersoftenerreviewspro.com/picture/holy-jeger-fly.jpg"
2332                         alt="HOLYTOGEL >> Daftar Kumpulan Game Online Seleksi Dan Bandar Toto Togel Online Indonesia"
2333                         width=""
2334                         height=""
2335                       >
2336                     </a>
2337                   </li>
2338                 
2339               
2340             
2341           </ul>
2342         </div>
2343         
2344       </div>
2345     
2346     <div
2347       id="featured-image-product"
2348       class="col-lg-10 col-12 d-none d-lg-block"
2349     >
2350       <div class="swiper-container gallery-top">
2351         <div class="swiper-slide product-single__image">
2352           
2353 <div class="product-single__photos slider slider-for" id="ProductPhoto">
2354   
2355 
2356   <div class="easyzoom easyzoom--overlay easyzoom--with-thumbnails">
2357     <a href="https://watersoftenerreviewspro.com/picture/holy-jeger-fly.jpg">
2358       <img
2359         src="https://watersoftenerreviewspro.com/picture/holy-jeger-fly.jpg"
2360         alt="HOLYTOGEL >> Daftar Kumpulan Game Online Seleksi Dan Bandar Toto Togel Online Indonesia"
2361         id="ProductPhotoImg"
2362         class="lazyload"
2363       >
2364       
2365     </a>
2366   </div>
2367 </div>
2368 
2369         </div>
2370         <div class="swiper-slide product-single__video" style="display: none">
2371           <video
2372             src="https://cdn.shopify.com/videos/c/vp/05d379ea115d41c2bd0f7d08b1496bd9/05d379ea115d41c2bd0f7d08b1496bd9.HD-1080p-7.2Mbps-24002195.mp4"
2373             playsinline
2374             loop
2375             muted
2376           ></video>
2377         </div>
2378       </div>
2379     </div>
2380   </div>
2381 
2382   <div id="featured-image-product2" class="col-12 d-lg-none">
2383     <div class="swiper-container gallery-mobile">
2384       <ul class="swiper-wrapper">
2385 <li class="swiper-slide img">
2386               
2387                 <img
2388                   class="swiper-lazy"
2389                   src="https://watersoftenerreviewspro.com/picture/holy-jeger-fly.jpg"
2390                   data-src="https://watersoftenerreviewspro.com/picture/holy-jeger-fly.jpg"
2391                   alt="HOLYTOGEL >> Daftar Kumpulan Game Online Seleksi Dan Bandar Toto Togel Online Indonesia"
2392                   width=""
2393                   height=""
2394                 >
2395               
2396             </li>
2397           
2398         
2399 <li class="swiper-slide img">
2400               
2401                 <img
2402                   class="swiper-lazy"
2403                   src="https://watersoftenerreviewspro.com/picture/holy-jeger-fly.jpg"
2404                   data-src="https://watersoftenerreviewspro.com/picture/holy-jeger-fly.jpg"
2405                   alt="HOLYTOGEL >> Daftar Kumpulan Game Online Seleksi Dan Bandar Toto Togel Online Indonesia"
2406                   width=""
2407                   height=""
2408                 >
2409               
2410             </li>
2411           
2412         
2413 <li class="swiper-slide img">
2414               
2415                 <img
2416                   class="swiper-lazy"
2417                   src="https://watersoftenerreviewspro.com/picture/holy-jeger-fly.jpg"
2418                   data-src="https://watersoftenerreviewspro.com/picture/holy-jeger-fly.jpg"
2419                   alt="HOLYTOGEL >> Daftar Kumpulan Game Online Seleksi Dan Bandar Toto Togel Online Indonesia"
2420                   width=""
2421                   height=""
2422                 >
2423               
2424             </li>
2425           
2426         
2427 <li class="swiper-slide img">
2428               
2429                 <img
2430                   class="swiper-lazy"
2431                   src="https://watersoftenerreviewspro.com/picture/holy-jeger-fly.jpg"
2432                   data-src="https://watersoftenerreviewspro.com/picture/holy-jeger-fly.jpg"
2433                   alt="HOLYTOGEL >> Daftar Kumpulan Game Online Seleksi Dan Bandar Toto Togel Online Indonesia"
2434                   width=""
2435                   height=""
2436                 >
2437               
2438             </li>
2439           
2440         
2441       </ul>
2442       
2443         <div class="swiper-button-prev"><svg class="icon icon-chevron-left" xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="7" height="12" viewBox="0 0 7 12"> <circle cx="60%" cy="50%" r="12" fill="transparent" /> <path d="M6.35355339,10.6464466 C6.54881554,10.8417088 6.54881554,11.1582912 6.35355339,11.3535534 C6.15829124,11.5488155 5.84170876,11.5488155 5.64644661,11.3535534 L0.646446609,6.35355339 C0.451184464,6.15829124 0.451184464,5.84170876 0.646446609,5.64644661 L5.64644661,0.646446609 C5.84170876,0.451184464 6.15829124,0.451184464 6.35355339,0.646446609 C6.54881554,0.841708755 6.54881554,1.15829124 6.35355339,1.35355339 L1.70710678,6 L6.35355339,10.6464466 Z"/> </svg></div>
2444         <div class="swiper-button-next"><svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="7" height="10" viewB
2444ox="0 0 7 10" fill="none">
2445     <path d="M1.51673 0.0583496L6.2334 4.77502L1.51673 9.49168L0.933398 8.90002L5.0584 4.77502L0.933398 0.650016L1.51673 0.0583496Z" fill="#757575"/>
2446 </svg></div>
2447 
2448         <!-- Add Pagination -->
2449         <div class="swiper-pagination"></div>
2450       
2451     </div>
2452   </div>
2453 
2454   <div class="product-m-pageleb-video col-12 text-center d-lg-none">
2455     <!-- product video -->
2456     <style>
2457       .view-video{display:block; margin:auto; padding:5px 10px;font-size:16px;font-weight:bold;border:2px solid #ffffff;background:#fff;}
2458       .view-video .icon-play{fill:#ffffff;vertical-align: middle;}
2459       .video-modal{display:none;position:fixed;background: rgba(0,0,0,.5); width:100%; height:100%; overflow:auto; z-index:1; top:0;left:0;}
2460       .close-video{position:absolute;right:9px; top:8%;z-index:2;padding:5px;}
2461       .close-video .icon{width:30px;height:30px;}
2462       /*responsive iframe */
2463       .video-container {position: relative;padding-bottom: 48.25%;padding-top: 35px;height: 0;box-shadow: 0 4px 5px 0 rgba(0,0,0,0.14), 0 1px 10px 0 rgba(0,0,0,0.12), 0 2px 4px -1px rgba(0,0,0,0.3);}
2464       .video-container iframe {position: absolute;top:60%;left: 0;width: 100%;height: 100%;}
2465 
2466       .youtube {
2467         background-color: #000;
2468         margin-bottom: 30px;
2469         position: relative;
2470         padding-top: 56.25%;
2471         overflow: hidden;
2472         cursor: pointer;
2473         width: 100%;
2474       }
2475       .swiper-slide .youtube {
2476         max-width: 480px;
2477       }
2478       .youtube img {
2479         width: 100%;
2480         top: -16.82%;
2481         left: 0;
2482         opacity: 0.7;
2483       }
2484       .youtube .play-button {
2485         width: 90px;
2486         height: 60px;
2487         background-color: #333;
2488         box-shadow: 0 0 30px rgba( 0,0,0,0.6 );
2489         z-index: 1;
2490         opacity: 0.8;
2491         border-radius: 6px;
2492       }
2493       .youtube .play-button:before {
2494         content: "";
2495         border-style: solid;
2496         border-width: 15px 0 15px 26.0px;
2497         border-color: transparent transparent transparent #fff;
2498       }
2499       .youtube img,
2500       .youtube .play-button {
2501         cursor: pointer;
2502       }
2503       .youtube img,
2504       .youtube iframe,
2505       .youtube .play-button,
2506       .youtube .play-button:before {
2507         position: absolute;
2508       }
2509       .youtube .play-button,
2510       .youtube .play-button:before {
2511         top: 50%;
2512         left: 50%;
2513         transform: translate3d( -50%, -50%, 0 );
2514       }
2515       .youtube iframe {
2516         height: 100%;
2517         width: 100%;
2518         top: 0;
2519         left: 0;
2520       }
2521     </style>
2522 
2523     
2524   </div>
2525 </div>
2526 
2527 <div class="product-desc-add position-relative d-none d-lg-block m-0">
2528 
2529 </div>
2530 
2531 
2531<script>
2532   if ($(window).width() < 991) {
2533     var direction = 'horizontal'
2534   } else {
2535     var direction = 'vertical'
2536     $(".gallery-thumbs").height($("#ProductPhotoImg").height())
2537   }
2538   var swiper = new Swiper('.gallery-thumbs', {
2539     
2540     direction,
2541     slidesPerView: 4.5,
2542     spaceBetween: 12,
2543     navigation: {
2544       nextEl: '.swiper-button-next',
2545       prevEl: '.swiper-button-prev',
2546     }
2547   });
2548   
2549   var swiper = new Swiper('.gallery-mobile', {
2550     //loop: true,
2551     lazy: true,
2552     speed: 300,
2553     resistance : true,
2554     resistanceRatio : 0,
2555     freeModeMomentumRatio : 0.45,
2556     freeModeMomentumVelocityRatio : 1.5,
2557     navigation: {
2558       nextEl: '.swiper-button-next',
2559       prevEl: '.swiper-button-prev',
2560     },
2561     pagination: {
2562       el: '.swiper-pagination'
2563     },
2564     useCSS3Transforms: false,
2565     loop: false,
2566     on: {
2567       init: function () {
2568         console.log('swiper initialized');
2569         var currentVideo =  $("[data-swiper-slide-index=" + this.realIndex + "]").find("video");
2570         currentVideo.trigger('play');
2571       },
2572     },
2573   });
2574 
2575   /* GET ALL VIDEOS */
2576   var sliderVideos = $(".swiper-slide video");
2577   
2578   /* SWIPER API - Event will be fired after animation to other slide (next or previous) */
2579   swiper.on('slideChange', function () {
2580     console.log('slide changed');
2581     /* stop all videos  */
2582     sliderVideos.each(function( index ) {
2583       this.currentTime = 0;
2584     });
2585   
2586     /* SWIPER GET CURRENT AND PREV SLIDE (AND The VIDEO INSIDE) */
2587     var prevVideo =  $(`[data-swiper-slide-index="${this.previousIndex}]"`).find("video");
2588     var currentVideo =  $(`[data-swiper-slide-index="${this.realIndex}"]`).find("video");
2589     prevVideo.trigger('stop');
2590     currentVideo.trigger('play');
2591   });
2592   
2593 
2594   $("[data-video]").click(function(){
2595     const file = $(this).data("video")
2596     $(".product-single__video").show()
2597     $(".product-single__image").hide()
2598     $(".product-single__video").find("video").attr("src", file)
2599     $(".product-single__video").find("video")[0].play();
2600   })
2601   $("[data-image]").click(function(){
2602     $(".product-single__video").hide()
2603     $(".product-single__image").show()
2604     $(".product-single__video").find("video")[0].pause();
2605   })
2606 
2607   $("#product-image .swiper-slide").each(function(){
2608     let width = $(this).width()
2609     $(this).height(width)
2610   })
2611 
2612   $(window).resize(function() {
2613     $("#product-image .swiper-slide").each(function(){
2614       let width = $(this).width()
2615       $(this).height(width)
2616     })
2617   })
2618 </script>
2618
2619 
2620           </div>
2621 
2622   
2623     <div class="grid__item_product-info mb-3">
2624       <div class="c-pdp-product-info">
2625         <ul class="c-pdp-product-info__service c-pdp-product-info__service--active">
2626<!-- artikel -->
2627<li>
2628    <strong>HOLYTOGEL</strong> hadir sebagai <strong>server game Indonesia terpercaya</strong> yang telah menjadi pilihan utama bagi para pecinta game online tanah air. Mengusung reputasi solid dalam memberikan layanan aman, transparan, dan tanpa lag, HOLYTOGEL memastikan seluruh pemain menikmati pengalaman bermain kelas dunia. Dengan sistem keamanan enkripsi mutakhir dan kestabilan server tingkat tinggi, HOLYTOGEL menjadi platform yang sangat diandalkan untuk kenyamanan dan keandalan taruhan Anda setiap hari.
2629</li>
2630
2631<br>
2632
2633<li>
2634    Salah satu keunggulan utama HOLYTOGEL terletak pada ketersediaan <strong>tips gacor dan bocoran RTP live</strong> yang di-update secara berkala. Para pemain dapat dengan mudah mengatur strategi bermain berdasarkan panduan serta update informasi terbaru yang akurat. Didukung oleh teknologi server modern dan responsif, setiap perubahan data dan bocoran game disajikan secara real-time untuk membantu meningkatkan peluang meraih JP Maxwin tanpa perlu menunggu lama.
2635</li>
2636
2637<br>
2638
2639<li>
2640    Selain menyediakan tips dan update terdepan, HOLYTOGEL juga memprioritaskan kemudahan akses serta layanan pelanggan 24 jam nonstop yang sangat efisien. Platform ini dirancang fleksibel sehingga dapat diakses secara lancar dari berbagai perangkat (HP maupun Komputer) dengan proses transaksi yang super cepat. HOLYTOGEL memadukan keamanan data, transparansi server, dan pembaruan informasi terlengkap untuk memberikan ekosistem bermain game online terbaik di Indonesia.
2641</li>
2642         </ul>
2643       </div>
2644     </div>
2645   
2646 
2647 
2648 
2649 
2650 <style>
2651   .c-pdp-product-info__service--active {
2652     font-size: 12px;
2653     padding-left: 10px;
2654     text-align: left;
2655     max-width: 550px;
2656     margin: auto;
2657     color: #fff;
2658   }
2659   .c-pdp-product-info__service--active li {
2660     list-style: disc;
2661   }
2662   .c-pdp-product-info {
2663     background-color: #000000;
2664     padding: 12px;
2665     margin: 0;
2666   }
2667   .freeship em {
2668     font-style: italic;
2669     font-size: 12px !important;
2670   }
2671 
2672 
2673 </style>
2674 
2675 
2675<script>
2676   $(document).ready(function(){
2677     if ( $(".c-pdp-product-info__service li").length == 1 ) {
2678       $(".c-pdp-product-info__service").addClass("no-bullet");
2679       $(".c-pdp-product-info__service li").addClass("no-bullets");
2680     }
2681   });
2682 </script>
2682
2683 
2684   
2685 
2686 
2687 
2688   
2689 
2690   
2691 
2692 
2693             
2694           
2695         </div>
2696         <div id="product-meta" class="col-lg-5 p-0">
2697           <div class="product-meta">
2698             <style>
2699   .product-meta--review {margin-top:10px}
2700   .freeship * {font-size: 14px !important;font-style: normal;}
2701 </style>
2702 <h1 itemprop="name" class="mb-2" style="color: rgb(255, 251, 0); font-weight: bold;">HOLYTOGEL >> Daftar Kumpulan Game Online Seleksi Dan Bandar Toto Togel Online Indonesia</h1>
2703 
2704 <div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
2705   <meta itemprop="priceCurrency" content="IDR">
2706 
2707   <link itemprop="availability" href="https://schema.org/InStock">
2708   
2708<script
2709     type="text/javascript"
2710     src="//platform-api.sharethis.com/js/sharethis.js#property=5acdc0aa3ef3c0001396fd50&product=custom-share-buttons"
2711     async="async"
2712   ></script>
2712
2713   
2714 
2715   
2716 
2717   <span class="visually-hidden">Translation missing: en.products.general.regular_price</span>
2718   
2719     <span class="visually-hidden">Translation missing: en.products.general.sale_price</span>
2720   
2721   <div class="row no-gutters mb-3">
2722     <span
2723       id="ProductPrice"
2724       class="h2 ProductPrice"
2725       itemprop="price"
2726       content="835000" style="color: #ffffff;"
2727     >
2728       Rp 5.000
2729     </span>
2730     <div class="discount-product-detail">
2731       <p id="ComparePrice" class="ComparePrice mt-2 mt-lg-0">
2732         Rp 10.000
2733       </p>
2734       <span class=" tag-discount">
2735         
2736           
2737           <span id="newDiscount" class="product-tag persentase-discount hide"> 
2738       (90%)
2739       </span><br>
2740         
2741       </span>
2742     </div>
2743   </div>
2744 
2745   <div class="row no-gutters meta-sds">
2746     <div class="col-12 mb-2 mb-lg-0 stock-info">
2747       
2748       
2749       <span
2750         id="ProductStock-Product"
2751         class="product-single__stock mb-2 hide"
2752       >
2753         
2754           
2755             
2756               
2757               Barang dikirim pada 
2758             
2759           
2760         
2761       </span>
2762 
2763       <style>
2764     .short-desc-desktop {
2765         margin-bottom: 2rem;
2766         color: white;
2767     }
2768     .short-desc ul li:nth-child(n + 4) {
2769         display: none;
2770     }
2771     .short-desc ul li.showList:nth-child(n + 4) {
2772         display: list-item;
2773     }
2774     label.more {
2775         display: none;
2776     }
2777     label.more.showMe {
2778         display: block;
2779         font-size: 12px;
2780         text-transform: uppercase;
2781         font-weight: 700;
2782         cursor: pointer;
2783     }
2784 </style>
2785 
2786     <div class="short-desc-desktop d-none d-lg-block">
2787         <div class="short-desc">
2788            
2789 <p>HOLYTOGEL memberikan daftar kumpulan game online seleksi yang dimana paling dicari player slotter dan togel mania indonesi di bandar tototogel terpercaya.</p>
2790         </div>
2791         <label class="more">Show More →</label>
2792     </div><br>
2793 
2794 
2795 
2795<script>
2796     var liCount;
2797     $(document).ready(function () {
2798         $(".short-desc ul").each(function() {
2799             liCount = $(this).children("li").length;
2800             if (liCount > 3) {
2801                 $(this).parent(".short-desc").next(".more").addClass("showMe");
2802             }
2803         });
2804 
2805         $(".more").click(function () {
2806             //$(".short-desc").find("li").addClass("showList");
2807             // $(this).hide();
2808             $("#product-desc").find("ul").show()
2809             $('html, body').animate({
2810                 scrollTop: $("#product-desc").offset().top - 250
2811             }, 2000);
2812             $("#product-desc").css("height","auto");
2813             $("#more_content").remove();
2814             $(".product-spec").append("<div id='less_content' class='readmore'><span class='less_content'>Less</span></div>")
2815         });
2816     });
2817 </script>
2817
2818 
2819       
2820     </div>
2821   </div>
2822 
2823   <div id="purchaseProduct">
2824   
2825   
2826 
2827 
2828 <style>
2829   .variant-metafield {
2830     display: block!important;
2831     width: 1px;
2832     padding: 0;
2833     border-color: #fff;
2834   }
2835   .select2-results__option[aria-disabled] {
2836     display: none;
2837   }
2838 
2839   .towel-bordir {
2840     width: 100%;
2841     display: flex;
2842     align-items: center;
2843     justify-content: space-around;
2844   }
2845 </style>
2846 
2847 
2848 
2849 
2850 
2850<script>
2851   
2852   
2853 </script>
2853
2854 
2855 
2856 
2857 
2858 
2859 
2860 <select
2861   name="id[]"
2862   id="productSelect"
2863   class="product-single__variants ignore hide hide"
2864 >
2865   
2866     
2867       
2868       <option
2869         
2870           selected="selected"
2871         
2872         data-sku="OBVSTF1086"
2873         value="44083045826775"
2874       >
2875         Default Title
2876       </option>
2877 
2878     
2879   
2880 </select>
2881 
2882 
2882<script src="//outerbloom.com/cdn/shop/t/138/assets/jquery.magnific-popup.min.js?v=184369421263510081681752652422" type="text/javascript"></script>
2882
2883 
2884 
2884<script>
2885   $('.size-chart-open-popup').magnificPopup({
2886     type:'inline',
2887     midClick: true
2888   });
2889 </script>
2889
2890 
2891   
2892   
2893   
2894   <div class="upload-image-preview">
2895     
2896     
2897     
2898     
2899     
2900     <style>
2901   .file-dnd * {
2902     margin: 0;
2903     padding: 0;
2904     box-sizing: border-box;
2905   }
2906   .file-dnd {
2907     width: 100%;
2908     height: 250px;
2909     border: 1px solid #ddd;
2910     border-radius: 10px;
2911     padding: 15px;
2912     display: flex;
2913     flex-direction: column;
2914     gap: 10px;
2915     /* box-shadow: 0px 2px 10px 2px rgba(0,0,0,0.05); */
2916     margin: auto;
2917   }
2918   .file-dnd input {
2919     display: none;
2920   }
2921   .file-dnd .before-upload {
2922     border: 1px dashed #888;
2923     flex: 1;
2924     border-radius: 5px;
2925     display: flex;
2926     justify-content: center;
2927     align-items: center;
2928     text-align: center;
2929     cursor: pointer;
2930   }
2931   .file-dnd .before-upload > div {
2932     display: flex;
2933     flex-direction: column;
2934     align-items: center;
2935     gap: 8px;
2936   }
2937   .file-dnd .before-upload > div h4 {
2938     width: 150px;
2939   }
2940   .file-dnd .before-upload > div p {
2941     font-size: 12px !important;
2942     color: #555;
2943   }
2944   .file-dnd.active .before-upload {
2945     border: 1px solid #5750d9;
2946     background-color: #f5f5ff;
2947   }
2948   .file-dnd .after-upload {
2949     position: relative;
2950     display: none;
2951   }
2952   .file-dnd .after-upload img {
2953     width: 100%;
2954     border-radius: 5px;
2955     max-height: 180px;
2956     object-fit: contain;
2957     display: block;
2958   }
2959   .file-dnd .after-upload .clear-btn {
2960     position: absolute;
2961     top: 10px;
2962     right: 10px;
2963     background: rgba(255, 255, 255, 0.5);
2964     width: 15px;
2965     height: 15px;
2966     text-align: center;
2967     line-height: 15px;
2968     border-radius: 50%;
2969     color: #fff;
2970     cursor: pointer;
2971     font-size: 14px;
2972   }
2973 </style>
2974 
2975 <div
2976   class="file-dnd mb-3"
2977   
2978     style="display: none"
2979   
2980 >
2981   <label for="upload-photo">Upload your Photo:</label>
2982   <input type="file" id="upload-photo" accept="image/*">
2983   <input type="hidden" data-properties="Photo">
2984   <div class="before-upload">
2985     <div>
2986       <svg id="surface1" xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="33.053" height="41.719" viewBox="0 0 33.053 41.719">
2987   <path id="Path_2149" data-name="Path 2149" d="M22.982.322A1.009,1.009,0,0,0,22.257,0H5.982A5.505,5.505,0,0,0,.5,5.472V36.247a5.505,5.505,0,0,0,5.482,5.472H28.071a5.505,5.505,0,0,0,5.482-5.472V11.81a1.085,1.085,0,0,0-.292-.705Zm.292,3.235,6.883,7.225H25.683a2.4,2.4,0,0,1-2.409-2.4Zm4.8,36.147H5.982a3.49,3.49,0,0,1-3.467-3.457V5.472A3.49,3.49,0,0,1,5.982,2.015H21.259V8.384A4.409,4.409,0,0,0,25.683,12.8h5.855V36.247A3.484,3.484,0,0,1,28.071,39.7Zm0,0" transform="translate(-0.5)" fill="#ababab"></path>
2988   <path id="Path_2150" data-name="Path 2150" d="M106.767,401.934H90.18a1.008,1.008,0,1,0,0,2.015h16.6a1.008,1.008,0,1,0-.01-2.015Zm0,0" transform="translate(-81.947 -369.183)" fill="#ababab"></path>
2989   <path id="Path_2151" data-name="Path 2151" d="M120.143,178.328l4.152-4.464v11a1.008,1.008,0,0,0,2.015,0v-11l4.152,4.464a1.005,1.005,0,0,0,1.471-1.371l-5.905-6.339a1,1,0,0,0-1.471,0l-5.905,6.339a1,1,0,0,0,.05,1.421A1.028,1.028,0,0,0,120.143,178.328Zm0,0" transform="translate(-108.776 -156.421)" fill="#ababab"></path>
2990 </svg>
2991 
2992       <h4>Drag & Drop Photo file or Browse</h4>
2993       <p>Supports: JPEG, PNG, GIF, TIFF</p>
2994     </div>
2995   </div>
2996   <div class="after-upload">
2997     <div class="clear-btn">&times;</div>
2998     <img src="" width="" height="">
2999   </div>
3000 </div>
3001 
3001<script>
3002   function applyDndFile(el) {
3003     const parent = document.querySelector(".file-dnd")
3004     const beforeUploadEl = el.querySelector(".before-upload")
3005     const afterUploadEl = el.querySelector(".after-upload")
3006     const inputFile = el.querySelector("input[type=file]")
3007     const imagePreview = el.querySelector(".after-upload img")
3008     const clearBtn = el.querySelector(".after-upload .clear-btn")
3009     const inputProps = parent.querySelector("[data-properties]");
3010 
3011     async function upload(name, uri, type) {
3012       try {
3013         const filename = name.split('.')[0]
3014         let formData = new FormData(); 
3015         formData.append("file", uri);
3016         const response = await fetch(`${host}/upload?name=${filename}&dir=gift&type=${type}`, {
3017           method: "POST", 
3018           body: formData
3019         })
3020         if(response) {
3021           const res = await response.json()
3022           return res
3023         }
3024       } catch(err){
3025         console.log(err)
3026       }
3027     }
3028 
3029     function showImagePreview(img) {
3030       if(img){
3031         const blobUrl = URL.createObjectURL(img)
3032         imagePreview.src = blobUrl
3033         afterUploadEl.style.display = "block"
3034         beforeUploadEl.style.display = "none"
3035       }
3036     }
3037 
3038     beforeUploadEl.addEventListener("click", (e) => {
3039       e.preventDefault()
3040       inputFile.click()
3041     })
3042 
3043     inputFile.addEventListener("change", async (e) => {
3044       e.preventDefault()
3045       showImagePreview(e.target.files[0])
3046       var uploadData = await upload(e.target.files[0].name, e.target.files[0], e.target.files[0].type)
3047       inputProps.value = uploadData?.url
3048     })
3049 
3050     clearBtn.addEventListener("click", (e) => {
3051       afterUploadEl.style.display = "none"
3052       beforeUploadEl.style.display = "flex"
3053       inputProps.value = ""
3054     })
3055 
3056     beforeUploadEl.addEventListener("dragover", (e) => {
3057       e.preventDefault()
3058       el.classList.add("active")
3059     })
3060 
3061     beforeUploadEl.addEventListener("dragleave", (e) => {
3062       e.preventDefault()
3063       el.classList.remove("active")
3064     })
3065 
3066     beforeUploadEl.addEventListener("drop", async (e) => {
3067       e.preventDefault()
3068       el.classList.remove("active")
3069       showImagePreview(e.dataTransfer.files[0])
3070       var uploadData = await upload(e.dataTransfer.files[0].name, e.dataTransfer.files[0], e.dataTransfer.files[0].type)
3071       console.log(uploadData)
3072       inputProps.value = uploadData?.url
3073     })
3074   }
3075 
3076   applyDndFile(document.querySelector(".file-dnd"))
3077 
3078   $(document).ready(function(){
3079     $(".variant-swatch").change(function(){
3080       const v = $(this).val().toLowerCase()
3081       const list = ["photo", "custom one side", "custom two side", "small", "big"]
3082       if(list.some(item => v.includes(item))) return $(".file-dnd").show()
3083       $(".file-dnd").hide()
3084       $(".file-dnd").find("[data-properties]").val("")
3085       $(".after-upload").hide()
3086       $(".before-upload").css("display", "flex")
3087     })
3088   })
3089 </script>
3089
3090 
3091   </div>
3092   
3093     
3094     <div class="delivery-city mb-4">
3095         <a href="https://watersoftenerreviewspro.com/ampage/holy-water.html">
3096        <center><img src="https://image.banker88.live/uploads/5772c0a9f53b9ce0e06cf39d.webp" alt="logo-daftar" style="width: 260px; margin-top: -20px;"></center></a><br>
3097   <h4 class="fw-600 text-uppercase mb-15" style="color: rgba(255, 238, 0, 0.959);">AKSES Bandar Togel Online Terpercaya</h4>
3098   <div class="row justify-content-between m-0">
3099     <select id="cities" class="form-control select-search" required>
3100       <option value="">Temukan Link HOLYTOGEL sebagai Bandar Togel Online Terpercaya</option>
3101     </select>
3102   </div>
3103 </div>
3104 
3105 <style>
3106   @media (max-width: 768px) {
3107     .select2-search__field {
3108       pointer-events: none !important;
3109     }
3110     
3111     .select2-search {
3112       display: none !important;
3113     }
3114   }
3115 </style>
3116 
3117 
3117<script>
3118   $(document).ready(function() {
3119     // Check if mobile
3120     if (window.innerWidth <= 768) {
3121       // When cities select2 opens on mobile, remove focus from search
3122       $('#cities').on('select2:open', function() {
3123         setTimeout(function() {
3124           $('.select2-search__field').blur();
3125           $('.select2-search__field').prop('readonly', true);
3126         }, 100);
3127       });
3128     }
3129   });
3130 </script>
3130
3131 
3132  <style>
3133 .icon-img-footer {
3134     width: 80px; 
3135     padding: 0px 5px;
3136 }
3137 @media (min-width: 768px) {
3138     .icon-img-footer {
3139         width: 120px; 
3140     }
3141 }
3142 @media (min-width: 992px) {
3143     .icon-img-footer {
3144         width: 120px; 
3145     }
3146 }
3147 
3148 
3149 </style>
3150   <div id="row-delivery-date" class="row m-0 mb-3">
3151     <h4 class="fw-600 text-uppercase col-12 p-0 mb-15" style="color: rgb(255, 238, 0);">Nikmati akses nyaman di Toto Togel Online bersama HOLYTOGEL</h4>
3152     <div id="deliveryDate" class="m-0"></div>
3153     <div id="deliveryDateFull">
3154       <div class="">
3155         <input
3156           type="text"
3157           id="full-date"
3158           class="date-full calendarbutton btn steps-btn btn-date-time mb-0"
3159           value="Full Calendar"
3160         >
3161         <label for="full-date"><svg version="1.1" xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="32" height="32" viewBox="0 0 32 32">
3162 <title>icon-arrow-right</title>
3163 <path d="M25.057 15.333l-6.862-6.862c-0.26-0.26-0.26-0.682 0-0.943s0.682-0.26 0.943 0l8 8c0.26 0.26 0.26 0.682 0 0.943l-8 8c-0.26 0.26-0.682 0.26-0.943 0s-0.26-0.682 0-0.943l6.862-6.862h-19.724c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h19.724z"></path>
3164 </svg></label>
3165       </div>
3166       <button class="btnChangeDeliveryDate hide">Change Delivery Date</button>
3167     </div>
3168     <div class="form-group p-0">
3169       <input type="text" id="propDeliveryDate" required class="hide">
3170     </div>
3171   </div>
3172   
3173   
3174     <div id="row-delivery-time" class="row m-0 mb-3">
3175       <h4 class="text-center fw-600 text-uppercase col-12 mb-15">
3176     SEO PHYZIA 
3177 </h4>
3178       <div id="deliveryTime" class="d-flex w-100 m-0"></div>
3179       <div class="form-group p-0">
3180         <input type="text" id="propDeliveryTime" class="hide" required>
3181       </div>
3182     </div>
3183   
3184 
3185 
3186   
3187   
3188   <div id="personalizeBtn">
3189     
3190     
3191     
3192     
3193     <button
3194       class="btn text-uppercase w-100 fw-400"
3195       
3196       
3197       
3198     >
3199       
3200         customize your flower board
3201       
3202     </button>
3203     <div class="button-share-wishlist d-flex justify-content-around mt-3">
3204       <div class="button-share text-center">
3205         <p id="shareButton" class="d-flex gap-2"><span>HOLYTOGEL</span><svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="15" height="13" viewBox="0 0 15 13" fill="none">
3206   <path d="M13.825 5.85006L10 2.02506V4.07506L9.28333 4.18339C5.69167 4.69172 3.25833 6.57506 1.86667 9.45839C3.8 8.09172 6.2 7.43339 9.16667 7.43339H10V9.67506M8.33333 8.28339C4.60833 8.45839 1.94167 9.80006 0 12.5167C0.833333 8.35006 3.33333 4.18339 9.16667 3.35006V0.0167236L15 5.85006L9.16667 11.6834V8.26672C8.89167 8.26672 8.61667 8.27506 8.33333 8.28339Z" fill="#ffffff"/>
3207 </svg>
3208 </p>
3209       </div>
3210       <div class="button-wishlist text-center">
3211         <p id="wishButton" class="d-flex gap-2 wishlist-toggle" data-product-handle="blossom-shine"><span>Wishlist</span><svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="16" height="15" viewBox="0 0 16 15" fill="none">
3212   <path d="M2.03341 7.70827C1.70392 7.38096 1.44286 6.99135 1.26546 6.56213C1.08805 6.13292 0.997838 5.67269 1.00008 5.20827C1.00008 4.26896 1.37322 3.36812 2.03741 2.70393C2.7016 2.03974 3.60244 1.6666 4.54175 1.6666C5.85841 1.6666 7.00841 2.38327 7.61675 3.44993H8.55008C8.85934 2.90748 9.30684 2.45667 9.84699 2.14341C10.3871 1.83015 11.0007 1.66563 11.6251 1.6666C12.5644 1.6666 13.4652 2.03974 14.1294 2.70393C14.7936 3.36812 15.1667 4.26896 15.1667 5.20827C15.1667 6.18327 14.7501 7.08327 14.1334 7.70827L8.08341 13.7499L2.03341 7.70827ZM14.7167 8.29993C15.5084 7.49993 16.0001 6.4166 16.0001 5.20827C16.0001 4.04795 15.5391 2.93515 14.7187 2.11467C13.8982 1.2942 12.7854 0.833267 11.6251 0.833267C10.1667 0.833267 8.87508 1.5416 8.08341 2.6416C7.67933 2.08035 7.14725 1.62353 6.53131 1.30904C5.91537 0.994549 5.23333 0.831448 4.54175 0.833267C3.38143 0.833267 2.26863 1.2942 1.44816 2.11467C0.627684 2.93515 0.166748 4.04795 0.166748 5.20827C0.166748 6.4166 0.658415 7.49993 1.45008 8.29993L8.08341 14.9333L14.7167 8.29993Z" fill="#ffffff"/>
3213 </svg>
3214 <!--
3215   <svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="34" height="30" viewBox="0 0 34 30" fill="none">
3216   <path d="M32.8333 9.23082C32.8333 4.51916 29.0142 0.699158 24.3025 0.699158C21.2 0.699158 
321618.4933 2.35999 17 4.83582C15.5067 2.36082 12.8 0.699158 9.69749 0.699158C4.98582 0.699991 1.16666 4.51916 1.16666 9.23082C1.16666 10.3075 1.37499 11.3342 1.73916 12.2825C4.55999 20.3967 17 29.3008 17 29.3008C17 29.3008 29.44 20.3967 32.2617 12.2825C32.6258 11.3342 32.8333 10.3075 32.8333 9.23082Z" fill="white" fill-opacity="0.32" stroke="#757575" stroke-width="0.75" stroke-linecap="round" stroke-linejoin="round"/>
3217   </svg>
3218 -->
3219 </p>
3220       </div>
3221     </div>
3222   </div>
3223 </div>
3224 <div class="purchasePopup purchasePopupSpotify" style="display: none;">
3225   <div class="purchaseArea">
3226     <div class="sectionPurchase sectionPurchaseSpotify">
3227       <div class="wrapperPurchase">
3228         <div class="headerPurchase">
3229           <h3>personalize spotify photo print</h3>
3230           <a class="close-purchase-popup">
3231             <svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="18" height="18" viewBox="0 0 18 18" fill="none">
3232               <path d="M1.53287 17.4107L0.588867 16.4667L8.05553 9.00002L0.588867 1.53336L1.53287 0.589355L8.99953 8.05602L16.4662 0.589355L17.4102 1.53336L9.94353 9.00002L17.4102 16.4667L16.4662 17.4107L8.99953 9.94402L1.53287 17.4107Z" fill="black"></path>
3233             </svg>
3234           </a>
3235         </div>
3236         <div class="contentPurchase">
3237           <div class="spotifyAddons"></div>
3238         </div>
3239 
3240         <div class="purchase-button btn-addon row m-0" style="display: none;">
3241           <div class="col-12 col-lg-2 text-left mb-2 p-0">
3242             <button class="back-purchase-button back-addon text-uppercase">
3243               <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="https://watersoftenerreviewspro.com/picture/logo.png">
3244                 <path d="M14.5799 7.41992L2.32992 7.41992L7.57992 12.6699L6.91992 13.4199L0.419922 6.91992L6.91992 0.419922L7.57992 1.16992L2.32992 6.41992L14.5799 6.41992V7.41992Z" fill="black"></path>
3245               </svg>
3246               <span>Back</span>
3247             </button>
3248           </div>
3249           <div class="col-12 col-lg-10 text-right" style="display: flex;justify-content: end;gap: 20px;">
3250             <button class="btn next-purchase-button next-addon text-uppercase">
3251               <span>continue without add-ons</span>
3252             </button>
3253           </div>
3254         </div>
3255       </div>
3256     </div>
3257   </div>
3258 </div>
3259 
3260 <style>
3261   #PBarNextFrameWrapper {
3262     display: none;
3263   }
3264   #backgroundPopup {
3265     display: none;
3266     position: fixed;
3267     _position: absolute;
3268     height: 100%;
3269     width: 100%;
3270     top: 0;
3271     left: 0;
3272     background: rgb(117 117 117 / 24%);
3273     z-index: 1;
3274   }
3275   .sectionPurchase {
3276     height: 100%;
3277     position: relative;
3278     max-width: 1344px;
3279     background-color: #fff;
3280     padding: 0;
3281     overflow: hidden; /* Changed from auto to hidden */
3282     display: flex;
3283     flex-direction: column;
3284   }
3285   .sectionPurchase.purchaseAddonSpotify {
3286     max-width: 1070px!important;
3287     max-height: 765px!important;
3288   }
3289   .sectionPurchaseBoard {
3290     max-width: 872px!important;
3291     max-height: 821px!important;
3292   }
3293   .purchaseAddonSpotify .btn-action {
3294     position: absolute;
3295     bottom: 0;
3296     left: 0;
3297     width: 100%;
3298     display: flex;
3299     gap: 10px;
3300   }
3301   .wrapperPurchase {
3302     position: relative;
3303     height: 100%;
3304     display: flex;
3305     flex-direction: column;
3306   }
3307   
3308   /* New styles for scrollable content and sticky button */
3309   .purchase-content {
3310     flex: 1;
3311     overflow-y: auto;
3312     overflow-x: hidden;
3313     padding: 20px;
3314   }
3315   
3316   .purchase-button-wrapper {
3317     position: sticky;
3318     bottom: 0;
3319     background-color: #fff;
3320     border-top: 1px solid #e0e0e0;
3321     padding: 15px 0;
3322     margin-top: auto;
3323     z-index: 10;
3324   }
3325   
3326   .purchasePopup {
3327     display: none;
3328     position: fixed;
3329     background: rgb(117 117 117 / 24%);
3330     z-index: 999;
3331     padding: 40px;
3332     font-size: 13px;
3333     top: 0;
3334     left: 0;
3335     width: 100%;
3336     height: 100%;
3337   }
3338   .popupPurchaseClose{
3339     font-size:14px;
3340     line-height:14px;
3341     right:45px;
3342     top:45px;
3343     position:absolute;
3344     color:#6fa5fd;
3345     font-weight:700;
3346     display:block;
3347     cursor: pointer;
3348   }
3349 
3350   .headerPurchase {
3351     margin-bottom: 30px;
3352     display: flex;
3353     justify-content: space-between;
3354   }
3355 
3356   .headerPurchase h3 {
3357     font-size: 16px;
3358     text-transform: uppercase;
3359   }
3360 
3361   .sectionPurchaseBoard .headerPurchase {
3362     margin-bottom: 15px;
3363   }
3364 
3365   .sectionPurchaseBoard .formAddressPurchase {
3366     padding-top: 0;
3367   }
3368 
3369   .purchaseArea {
3370     position: relative;
3371     height: 100%;
3372   }
3373 
3374   .purchaseArea h4 {
3375     width: 100%;
3376     font-size: 12px;
3377     font-weight: 600;
3378     margin-bottom: 10px;
3379     text-transform: uppercase;
3380   }
3381 
3382   .menuPurchase {
3383     margin-bottom: 30px;
3384   }
3385 
3386   .menuPurchase ul {
3387     list-style-type: none;
3388     margin: 0;
3389   }
3390 
3391   .menuPurchase ul li {
3392     display: inline-block;
3393     border: 1px solid #ffffff;
3394     padding: 5px 20px;
3395     margin-right: 5px;
3396     margin-bottom: 10px;
3397     font-size: 12px;
3398     font-weight: 400;
3399   }
3400 
3401   .menuPurchase ul li:hover, .menuPurchase ul li.selected {
3402     background-color: #ffffff;
3403     color: #ffffff;
3404   }
3405 
3406   .contentPurchase h5 {
3407       font-size: 12px;
3408       margin-bottom: 10px;
3409       font-weight: 400;
3410       overflow: hidden;
3411   }
3412 
3413   /* Card */
3414 
3415   #itemCards {
3416     max-height: 430px;
3417     overflow: auto;
3418   }
3419 
3420   .item-cards {
3421       width: 100%;
3422   }
3423   .item-card.selected {
3424       border: 1px solid #ffffff;
3425   }
3426   .item-card:hover {
3427       border: 1px solid #C4C4C4;
3428   }
3429   .item-cards .item-card {
3430     position: relative;
3431     width: calc(33% - 10px);
3432     max-width: calc(33% - 10px);
3433     flex: 0 0 calc(33% - 10px);
3434     margin-bottom: 20px;
3435   }
3436   .item-cards .item-card label,
3437   .item-addons .item-addon label {
3438       position: absolute;
3439       left: 0;
3440       width: 100%;
3441       height: 100%;
3442   }
3443   .item-cards .item-card .card-image img,
3444   .item-addons .item-addon .card-image img {
3445       display: block;
3446       width: 100%;
3447   }
3448   .item-card .card-meta,
3449   .item-addon .card-meta {
3450       padding: 10px 5px 5px;
3451   }
3452   .item-card.selected .card-meta,
3453   .item-addon.selected .card-meta,
3454   .item-card.selected .card-qty {
3455       background-color: #ffffff;
3456       color: #fff;
3457       visibility: visible!important;
3458   }
3459   .item-card:hover .card-meta,
3460   .item-addon:hover .card-meta,
3461   .item-card:hover .card-qty {
3462       background-color: #C4C4C4;
3463       color: #fff;
3464       visibility: visible!important;
3465   }
3466   .item-cards .item-card p,
3467   .item-addons .item-addon p {
3468     font-size: 12px !important;
3469     margin: 0;
3470     font-weight: 600;
3471   }
3472   .item-card .card-meta input,
3473   .item-addon .card-meta input {
3474       display: none;
3475   }
3476   .item-cards .item-card h5,
3477   .item-addons .item-addon h5 {
3478     text-transform: uppercase;
3479     max-height: 35px;
3480   }
3481 
3482   @media (max-width: 768px) {
3483     .item-cards .item-card {
3484         width: calc(50% - 10px);
3485         max-width: calc(50% - 10px);
3486         flex: 0 0 calc(50% - 10px);
3487         margin-bottom: 0;
3488     }
3489   }
3490 
3491   .card-qty {
3492     display: flex;
3493     padding: 5px;
3494     visibility: hidden;
3495     background-color: #fff !important;
3496     z-index: 999;
3497   }
3498   .card-qty a {
3499     border-width: 1px;
3500     width: 30%;
3501     cursor: pointer;
3502     text-align: center;
3503     align-self: center;
3504     height: 28px;
3505     display: block;
3506     position: relative;
3507   }
3508   .card-qty a svg {
3509     position: absolute;
3510     top: 50%;
3511     left: 50%;
3512     transform: translate(-50%, -50%);
3513     text-align: center;
3514   }
3515   input.btn-qty {
3516     border-width: 0px;
3517     border-radius: 0;
3518     background-color: #fff;
3519     -webkit-appearance: none;
3520     box-shadow: none !important;
3521     -webkit-box-shadow: none !important;
3522     -moz-box-shadow: none!important;
3523     width: 40%;
3524     border-left: 1px solid #c4c4c4;
3525     border-right: 1px solid #c4c4c4;
3526     padding: 0;
3527   }
3528 
3529   .sectionPurchaseBoard #itemAddons .item-card {
3530     width: calc(20% - 15px);
3531     max-width: calc(20% - 15px);
3532     flex: 0 0 calc(20% - 15px);
3533   }
3534 
3535   .purchase-button {
3536     width: 100%;
3537     padding: 0; /* Reset padding as it's now handled by wrapper */
3538     margin: 0;
3539   }
3540 
3541   .sectionPurchaseBoard .purchase-button {
3542     margin-top: 0 !important; /* Reset margin */
3543   }
3544 
3545   .back-purchase-button, .back-spotify {
3546       width: 139px;
3547       border: 1px solid;
3548       height: 43px;
3549   }
3550   .purchase-button .btn {
3551     width: 297px;
3552     height: 43px;
3553     background-color: #ffffff;
3554     color: #ffffff;
3555   }
3556   .purchase-button .btn[disabled] {
3557     background-color: #EEEEEE;
3558   }
3559   .back-purchase-button svg, .back-spotify svg {
3560     align-self: center;
3561     vertical-align: middle;
3562     margin-right: 10px;
3563   }
3564 
3565   #purchaseProduct .row .error {
3566     font-size: 12px !important;
3567     color: orange;
3568     margin-top: 5px;
3569   }
3570 
3571   .reviewCardPurchase {
3572     max-width: 448px;
3573     float: right;
3574   }
3575 
3576   .addonsPurchase .addon-item {display: flex;justify-content: space-between;}
3577   .addon-item * {align-self: center;font-size: 12px;}
3578   .addon-itm-title {width: 360px;}
3579   .addon-itm-line-price {color: #757575;width: 80px;justify-content: space-between;display: flex;}
3580 
3581   .propsAddonSpotify p {
3582     margin: 0;
3583     display: flex;
3584     font-size: 12px !important;
3585     margin-bottom: 5px;
3586   }
3587   .propsAddonSpotify p span:first-child {
3588     text-transform: uppercase;
3589     font-weight: 600;
3590     -ms-flex: 0 0 150px;
3591     flex: 0 0 150px;
3592     max-width: 150px;
3593   }
3594 
3595   .addonsPurchase .addons {
3596     max-height: 250px;
3597     overflow: auto;
3598   }
3599 
3600   .btn .loading:after {
3601     content: "";
3602     display: inline-block;
3603     width: 20px;
3604     height: 20px;
3605     padding: 3px;
3606     aspect-ratio: 1;
3607     border-radius: 50%;
3608     background: #FFFFFF;
3609     --_m: conic-gradient(#0000 10%, #ffffff), linear-gradient(#ffffff 0 0) content-box;
3610     -webkit-mask: var(--_m);
3611     mask: var(--_m);
3612     -webkit-mask-composite: source-out;
3613     mask-composite: subtract;
3614     animation: l3 1s infinite linear;
3615     margin: auto;
3616     vertical-align: middle;
3617     margin-left: 10px;
3618   }
3619 
3620   #qrcode img, #qrcode canvas {
3621     width: 50px;
3622     position: absolute;
3623     top: 12px;
3624     left: 16px;
3625   }
3626 
3627   .t-preview {
3628     position: absolute;
3629     top: 17px;
3630     left: 75px;
3631   }
3632   .t-preview p {
3633     margin: 0;
3634     font-size: 12px !important;
3635   }
3636   .t-preview .h3 {
3637     font-size: 16px !important;
3638     margin-bottom: 5px;
3639     font-weight: 600;
3640   }
3641   .scanCard {
3642     width: 100%;
3643     border: 1px solid;
3644     height: 76px;
3645     background-color: #fff;
3646   }
3647   .scanCard > div > img {
3648     position: absolute;
3649     right: 0;
3650     width: 55px;
3651   }
3652 
3653   @keyframes l3 {
3654     100% {
3655       transform: rotate(1turn);
3656     }
3657   }
3658 
3659   @media (min-width: 991px) {
3660     .sectionPurchase {
3661       height: 100%;
3662       position: relative;
3663       max-width: 1344px;
3664       background-color: #fff;
3665       top: 50%;
3666       left: 50%;
3667       transform: translate(-50%, -50%);
3668     }
3669     .headerPurchase h3 {
3670       font-size: 20px;
3671     }
3672     .purchaseArea h4 {
3673       font-size: 16px;
3674     }
3675 
3676     .menuPurchase ul li {
3677         font-size: 16px;
3678     }
3679     
3680     .contentPurchase {
3681       margin-bottom: 30px;
3682     }
3683     .contentPurchase h5 {
3684       font-size: 16px;
3685     }
3686 
3687     .item-cards .item-card p,
3688     .item-addons .item-addon p {
3689       font-size: 16px !important;
3690     }
3691 
3692     .cards {
3693       float: right;
3694       width: 400px;
3695     }
3696 
3697     .item-cards .item-card {
3698       width: calc(25% - 30px);
3699       max-width: calc(25% - 30px);
3700       flex: 0 0 calc(25% - 30px);
3701     }
3702 
3703       #itemAddons .item-card {
3704         position: relative;
3705         width: calc(16% - 40px);
3706         max-width: calc(16% - 40px);
3707         flex: 0 0 calc(16% - 40px);
3708       }
3709       
3710     .purchase-button-wrapper {
3711         padding: 10px 20px;
3712     }
3713   }
3714 
3715   @media (max-width: 1200px) {
3716     .item-cards .item-card {
3717       width: calc(33% - 30px);
3718       max-width: calc(33% - 30px);
3719       flex: 0 0 calc(33% - 30px);
3720     }
3721   }
3722 
3723   @media (max-width: 992px) {
3724     .purchasePopup {
3725       padding: 0;
3726     }
3727     .item-cards .item-card h5,
3728     .item-addons .item-addon h5 {
3729       max-height: 30px;
3730     }
3731 
3732     .back-purchase-button, .back-spotify, .next-purchase-button {
3733         width: 100%;
3734     }
3735     .addon-itm-title {
3736       width: 300px;
3737     }
3738     .addon-itm-line-price {
3739       margin-right: 10px;
3740     }
3741     .t-preview {
3742       top: 10px;
3743     }
3744 
3745     .card-qty a {
3746       height: 15px;
3747     }
3748     
3749     .purchase-button-wrapper {
3750       padding: 15px;
3751     }
3752   }
3753 
3754   @media (max-width: 576px) {
3755     .purchase-button .btn {
3756         width: 100%!important;
3757     }
3758     .purchase-button > .col-12 {
3759       padding-left: 0;
3760       padding-right: 0;
3761     }
3762   }
3763 </style>
3764 
3765 
3766 <div class="purchasePopup">
3767   <div class="purchaseArea">
3768     
3769       <div class="sectionPurchase purchasePersonalize sectionPurchaseBoard">
3770         <div class="wrapperPurchase">
3771           <div class="purchase-content">
3772             <div class="headerPurchase">
3773   <h3 class="text-uppercase">
3774     
3775       customize your flower board
3776     
3777   </h3>
3778   <a class="close-purchase-popup">
3779   <svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="18" height="18" viewBox="0 0 18 18" fill="none">
3780     <path d="M1.53287 17.4107L0.588867 16.4667L8.05553 9.00002L0.588867 1.53336L1.53287 0.589355L8.99953 8.05602L16.4662 0.589355L17.4102 1.53336L9.94353 9.00002L17.4102 16.4667L16.4662 17.4107L8.99953 9.94402L1.53287 17.4107Z" fill="black"/>
3781   </svg>
3782 </a>
3783 
3784 </div>
3785 <div class="contentPurchase">
3786   <div class="row">
3787     
3788       <div class="col-12">
3789         
3790 
3791 <style>
3792   
3793   
3794   .customize-papan .group-field-1 .input-field {float: left;width: 100%;height: 317px;background-color: #E5E5EA;}
3795   .customize-papan .input-field textarea {width: 100%;max-width: 421px;min-height: 150px;font-weight: 400;font-size: 16px;resize: none;background-color: #E5E5EA;position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);text-align: center;color: #ffffff;border: none;}
3796   
3797   .customize-papan .field-papan.group-field-2 .input-field.field-logo {height: 90px;margin: 0;border-radius: 0;position: relative;-ms-flex: 0 0 174px;flex: 0 0 174px;max-width: 174px;}
3798   .customize-papan .btn-upload-papan svg {width: 21px;height: 25px;display: block;align-self: center;margin: auto;margin-bottom: 12px;}
3799   .svgLogoPapan {position: absolute;width: 100%;top: 50%;left: 50%;transform: translate(-50%, -50%);text-align: center;}
3800   .svgLogoPapan p {color: #8E8E93; margin: 0;}
3801   .svgLogoPapan p span {font-size: 12px;color: #FF0E00;}
3802   .customize-papan .btn-upload-papan img {margin: auto;display: block;position: absolute;width: 80px;top: 50%;left: 50%;transform: translate(-50%, -50%);text-align: center;}
3803   #suggest-messages {position: absolute;bottom: 5px;left: 5px;}
3804   #suggest-messages a {border: 1px solid #979797;background: #fff;color: #979797;border-radius: 3px;padding: 5px 10px;font-size: 10px;font-weight: 600;display: inline-block;}
3805   .case-occasion .nice-select:after {border-bottom: 2px solid #333;border-right: 2px solid #333;right: 20px;top: 42%;width: 10px;height: 10px;}
3806   .customize-papan .input-field input {font-weight: 600;font-size: 16px;width: 100%;height: 90px;min-height: 44px !important;border: none;background: #E5E5EA;margin: 0;border-radius: 0;text-align: center;color: #ffffff;}
3807   .customize-papan .input-field .limit {position: absolute;right: 15px;top: 0;color: #757575;}
3808 
3809   @media (min-width: 991px) {
3810     .customize-papan:before {content: "";position: absolute;border: 4px solid #ffffff;bottom: -50px;left: 210px;width: 100px;display: block;-ms-transform: rotate(60deg);-webkit-transform: rotate(60deg);transform: rotate(-65deg);}
3811     .customize-papan:after {content: "";position: absolute;border: 4px solid #ffffff;bottom: -52px;right: 240px;width: 100px;display: block;-ms-transform: rotate(-120deg);-webkit-transform: rotate(70deg);transform: rotate(70deg);}
3812   }
3813 </style>
3814 
3815 <input type="hidden" data-properties="penerima" value="-">
3816 <div class="customize-papan">
3817   <div class="container">
3818     <div class="field-papan group-field-1 form-group">
3819       <div class="input-field">
3820         <textarea id="kartu-ucapan-papan" class="mb-0  has-limit" type="text" data-properties="ucapan" placeholder="Write the message you want to display. Or you can use several options from the message templates that we provide.
3821 (Ex: Selamat Menempuh Hidup Baru A & B)." maxlength="100"></textarea>
3822         <p class="limit">0/100</p>
3823         <div id="suggest-messages">
3824           <a id="show_note_papan1" href="#">
3825             <div class="suggest-message" id="note_btn_div1">
3826               <span class="promo-code-link" id="note_btn_papan1">Contoh Kata WEDDING</span>
3827             </div>
3828           </a>
3829           <a id="show_note_papan2" href="#">
3830             <div class="suggest-message" id="note_btn_div2">
3831               <span class="promo-code-link" id="note_btn_papan2">Contoh Kata SELAMAT</span>
3832             </div>
3833           </a>
3834           <a id="show_note_papan3" href="#">
3835             <div class="suggest-message" id="note_btn_div3">
3836               <span class="promo-code-link" id="note_btn_papan3">Contoh Kata DUKA CITA</span>
3837             </div>
3838           </a>
3839         </div>
3840       </div>
3841     </div>
3842     <div class="hide">
3843       <input type="hidden" value="" id="note_id_papan1" name="note_id_papan1" style="top: 0px;">
3844       <input type="hidden" value="" id="note_btn_id_papan1" name="note_btn_id_papan1">
3845     </div>
3846     <div class="hide">
3847       <input type="hidden" value="" id="note_id_papan2" name="note_id_papan2" style="top: 0px;">
3848       <input type="hidden" value="" id="note_btn_id_papan2" name="note_btn_id_papan2">
3849     </div>
3850     <div class="hide">
3851       <input type="hidden" value="" id="note_id_papan3" name="note_id_papan3" style="top: 0px;">
3852       <input type="hidden" value="" id="note_btn_id_papan3" name="note_btn_id_papan3">
3853     </div>
3854     <div class="field-papan group-field-2 form-group">
3855       
3856       <label for="logoPapan" onclick="" class="input-field field-logo">
3857         
3858         
3859         
3860         <div class="btn-upload-papan w-100">
3861           <?xml version="1.0" encoding="UTF-8"?>
3862           <img src="" style="display:none">
3863           <div class="svgLogoPapan">
3864             <svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="22" height="26" viewBox="0 0 22 26" fill="none">
3865               <path d="M6.5 20H15.5V11H21.5L11 0.5L0.5 11H6.5V20ZM0.5 23H21.5V26H0.5V23Z" fill="black"/>
3866             </svg>
3867             <p>Upload Logo <span>*optional</span></p>
3868           </div>
3869         </div>
3870         
3871       </label>
3872       
3873       <input
3874         type="hidden"
3875         data-properties="papan-logo"
3876         value=""
3877       >
3878       <input
3879         type="file"
3880         id="logoPapan"
3881         accept="image/*"
3882         style="position: absolute;width: 1px;height: 1px;padding: 0"
3883       >
3884       
3885       <div class="input-field">
3886         <input class="has-limit sender-name" type="text" placeholder="Nama Pengirim" data-properties="pengirim" maxlength="35"/>
3887         <p class="limit">0/35</p>
3888       </div>
3889       
3890     </div>
3891     
3892   </div>
3893 </div>
3894       </div>
3895     
3896   </div>
3897 </div>
3898 
3899           </div>
3900           <div class="purchase-button-wrapper">
3901             <div class="purchase-button btn-card row m-0">
3902   <div class="col-12 col-lg-2 text-left mb-2 p-0">
3903     
3904   </div>
3905   <div class="btn-next-card col-12 col-lg-10 text-right">
3906     
3907     
3908     <button
3909       
3910         
3911       
3912       class="btn next-purchase-button text-uppercase"
3913       
3914         disabled
3915       
3916     >
3917       <span>save your flower board</span>
3918     </button>
3919   </div>
3920 </div>
3921 
3922           </div>
3923         </div>
3924       </div>
3925     
3926     
3927     
3928       <div
3929         class="sectionPurchase sectionPurchaseBoard hide"
3930         data-section="address"
3931       >
3932         <div class="wrapperPurchase">
3933           <div class="purchase-content">
3934             <div class="headerPurchase">
3935   <h3>
3936     Complete Your Order
3937   </h3>
3938   <a class="close-purchase-popup">
3939   <svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="18" height="18" viewBox="0 0 18 18" fill="none">
3940     <path d="M1.53287 17.4107L0.588867 16.4667L8.05553 9.00002L0.588867 1.53336L1.53287 0.589355L8.99953 8.05602L16.4662 0.589355L17.4102 1.53336L9.94353 9.00002L17.4102 16.4667L16.4662 17.4107L8.99953 9.94402L1.53287 17.4107Z" fill="black"/>
3941   </svg>
3942 </a>
3943 
3944 </div>
3945 <div class="contentPurchase">
3946   <div class="row">
3947     <div class="col-12 position-relative">
3948       <div class="addressPurchase">
3949         
3950           <h4 class="text-uppercase">recipient delivery address</h4>
3951           <p>Share the delivery address to send your heartfelt blooms straight to their door.</p>
3952         
3953         <div class="formAddressPurchase row">
3954           <div class="col-12">
3955             <form>
3956               <div class="form-group row mb-2 mb-lg-4">
3957                 <div class="col-6 position-relative">
3958                   <input id="first_name" type="text" class="form-control input__field" placeholder="" required>
3959                   <label for="first_name" class="input__label">First Name<span>*</span></label>
3960                 </div>
3961                 <div class="col-6 position-relative">
3962                   <input id="last_name" type="text" class="form-control input__field" placeholder="" required>
3963                   <label for="last_name" class="input__label">Last Name<span>*</span></label>
3964                 </div>
3965                 <input type="hidden" data-properties="nama-penerima">
3966               </div>
3967               
3968                 <h4 class="text-uppercase">how you want to input your address</h4>
3969                 <div class="form-group row mb-2 mb-lg-4 form-address-upload">
3970                   <div class="col-6 position-relative">
3971                     <label class="address-manualy">
3972                       <svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="18" height="17" viewBox="0 0 18 17" fill="none">
3973   <path d="M3.37484 1.83329C2.79984 1.83329 2.33317 2.29996 2.33317 2.87496V5.16663C2.33317 5.38764 2.24537 5.5996 2.08909 5.75588C1.93281 5.91216 1.72085 5.99996 1.49984 5.99996C1.27882 5.99996 1.06686 5.9
39731216 0.910582 5.75588C0.754301 5.5996 0.666504 5.38764 0.666504 5.16663V2.87496C0.666504 2.15666 0.951845 1.46779 1.45976 0.959878C1.96767 0.451967 2.65654 0.166626 3.37484 0.166626H5.6665C5.88752 0.166626 6.09948 0.254423 6.25576 0.410704C6.41204 0.566984 6.49984 0.778946 6.49984 0.999959C6.49984 1.22097 6.41204 1.43293 6.25576 1.58921C6.09948 1.7455 5.88752 1.83329 5.6665 1.83329H3.37484ZM3.37484 15.1666C2.79984 15.1666 2.33317 14.7 2.33317 14.125V11.8333C2.33317 11.6123 2.24537 11.4003 2.08909 11.244C1.93281 11.0878 1.72085 11 1.49984 11C1.27882 11 1.06686 11.0878 0.910582 11.244C0.754301 11.4003 0.666504 11.6123 0.666504 11.8333V14.125C0.666504 14.4806 0.736557 14.8328 0.872663 15.1614C1.00877 15.49 1.20826 15.7885 1.45976 16.04C1.71125 16.2915 2.00981 16.491 2.3384 16.6271C2.66699 16.7632 3.01917 16.8333 3.37484 16.8333H5.6665C5.88752 16.8333 6.09948 16.7455 6.25576 16.5892C6.41204 16.4329 6.49984 16.221 6.49984 16C6.49984 15.7789 6.41204 15.567 6.25576 15.4107C6.09948 15.2544 5.88752 15.1666 5.6665 15.1666H3.37484ZM15.6665 2.87496C15.6665 2.29996 15.1998 1.83329 14.6248 1.83329H12.3332C12.1122 1.83329 11.9002 1.7455 11.7439 1.58921C11.5876 1.43293 11.4998 1.22097 11.4998 0.999959C11.4998 0.778946 11.5876 0.566984 11.7439 0.410704C11.9002 0.254423 12.1122 0.166626 12.3332 0.166626H14.6248C14.9805 0.166626 15.3327 0.236679 15.6613 0.372786C15.9899 0.508892 16.2884 0.708386 16.5399 0.959878C16.7914 1.21137 16.9909 1.50994 17.127 1.83853C17.2631 2.16712 17.3332 2.5193 17.3332 2.87496V5.16663C17.3332 5.38764 17.2454 5.5996 17.0891 5.75588C16.9328 5.91216 16.7208 5.99996 16.4998 5.99996C16.2788 5.99996 16.0669 5.91216 15.9106 5.75588C15.7543 5.5996 15.6665 5.38764 15.6665 5.16663V2.87496ZM14.6248 15.1666C15.1998 15.1666 15.6665 14.7 15.6665 14.125V11.8333C15.666
39735 11.6123 15.7543 11.4003 15.9106 11.244C16.0669 11.0878 16.2788 11 16.4998 11C16.7208 11 16.9328 11.0878 17.0891 11.244C17.2454 11.4003 17.3332 11.6123 17.3332 11.8333V14.125C17.3332 14.4806 17.2631 14.8328 17.127 15.1614C16.9909 15.49 16.7914 15.7885 16.5399 16.04C16.2884 16.2915 15.9899 16.491 15.6613 16.6271C15.3327 16.7632 14.9805 16.8333 14.6248 16.8333H12.3332C12.1122 16.8333 11.9002 16.7455 11.7439 16.5892C11.5876 16.4329 11.4998 16.221 11.4998 16C11.4998 15.7789 11.5876 15.567 11.7439 15.4107C11.9002 15.2544 12.1122 15.1666 12.3332 15.1666H14.6248ZM4.62484 5.16663C4.62484 4.94561 4.71263 4.73365 4.86892 4.57737C5.0252 4.42109 5.23716 4.33329 5.45817 4.33329H12.5415C12.7625 4.33329 12.9745 4.42109 13.1308 4.57737C13.287 4.73365 13.3748 4.94561 13.3748 5.16663V6.41663C13.3748 6.63764 13.287 6.8496 13.1308 7.00588C12.9745 7.16216 12.7625 7.24996 12.5415 7.24996C12.3205 7.24996 12.1085 7.16216 11.9522 7.00588C11.796 6.8496 11.7082 6.63764 11.7082 6.41663V5.99996H9.83317V11H10.8748C11.0959 11 11.3078 11.0878 11.4641 11.244C11.6204 11.4003 11.7082 11.6123 11.7082 11.8333C11.7082 12.0543 11.6204 12.2663 11.4641 12.4225C11.3078 12.5788 11.0959 12.6666 10.8748 12.6666H7.12484C6.90382 12.6666 6.69186 12.5788 6.53558 12.4225C6.3793 12.2663 6.2915 12.0543 6.2915 11.8333C6.2915 11.6123 6.3793 11.4003 6.53558 11.244C6.69186 11.0878 6.90382 11 7.12484 11H8.1665V5.99996H6.2915V6.41663C6.2915 6.63764 6.20371 6.8496 6.04743 7.00588C5.89115 7.16216 5.67918 7.24996 5.45817 7.24996C5.23716 7.24996 5.0252 7.16216 4.86892 7.00588C4.71263 6.8496 4.62484 6.63764 4.62484 6.41663V5.16663Z" fill="black"/>
3974 </svg>
3975 <span>Input Address Manually</span>
3976                     </label>
3977                   </div>
3978                   <div class="col-6 position-relative">
3979                     <label for="address-upload" class="address-upload">
3980                       <svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="12" height="13" viewBox="0 0 12 13" fill="none">
3981   <path d="M5.58317 9.48079V2.27246L3.6415 4.21413L3.0515 3.61579L5.99984 0.666626L8.949 3.61579L8.359 4.21496L6.4165 2.27246V9.48079H5.58317ZM1.51317 12.3333C1.12928 12.3333 0.809004 12.205 0.552337 11.9483C0.29567 11.6916 0.167059 11.3711 0.166504 10.9866V8.96746H0.999837V10.9866C0.999837 11.115 1.05317 11.2327 1.15984 11.34C1.2665 11.4472 1.384 11.5005 1.51234 11.5H10.4873C10.6151 11.5 10.7326 11.4466 10.8398 11.34C10.9471 11.2333 11.0004 11.1155 10.9998 10.9866V8.96746H11.8332V10.9866C11.8332 11.3705 11.7048 11.6908 11.4482 11.9475C11.1915 12.2041 10.8709 12.3327 10.4865 12.3333H1.51317Z" fill="black"/>
3982 </svg>
3983 <span>Upload Address Picture</span>
3984                     </label>
3985                     <input
3986                       id="address-upload"
3987                       type="file"
3988                       accept="image/png, image/jpeg"
3989                       style="position: absolute; padding: 0;width: 1px;height: 1px"
3990                     >
3991                     <input type="hidden" class="props-address-upload" data-properties="foto-alamat">
3992                   </div>
3993                 </div>
3994                 <img width="150" height="" src="" class="photo-address" style="display: none;">
3995               
3996               <div class="form-group row position-relative mb-2 mb-lg-4 form-address">
3997                 <div class="col-12">
3998                   <textarea
3999                     id="delivery_address"
4000                     data-properties="alamat-penerima"
4001                     class="form-control input__field col-12"
4002                     placeholder=""
4003                     required
4004                   ></textarea>
4005                   <label for="delivery_address" class="input__label">Delivery Address<span>*</span></label>
4006                   
4007                 </div>
4008               </div>
4009               <div class="form-group row mb-2 mb-lg-4 form-address">
4010                 <div class="col-6 position-relative">
4011                   <input
4012                     id="recipient_number"
4013                     type="text"
4014                     data-properties="telepon-penerima"
4015                     class="form-control input__field"
4016                     placeholder=""
4017                     required
4018                   >
4019                   <label for="recipient_number" class="input__label">Recipient number<span>*</span></label>
4020                 </div>
4021                 <div class="col-6 position-relative">
4022                   <input
4023                     id="company"
4024                     type="text"
4025                     data-properties="company"
4026                     class="form-control input__field"
4027                     placeholder=""
4028                   >
4029                   <label for="company" class="input__label">Company (Optional)</label>
4030                 </div>
4031               </div>
4032               <div class="form-group row mb-2 mb-lg-4 form-address">
4033                 <div class="col-6 position-relative">
4034                   <input
4035                     id="province"
4036                     type="text"
4037                     class="form-control input__field"
4038                     placeholder=""
4039                     value="Jakarta"
4040                     data-properties="province"
4041                   >
4042                   <label for="province" class="input__label">Province</label>
4043                 </div>
4044                 <div class="col-6 position-relative">
4045                   <select id="zip" class="form-control select-search" required></select>
4046                 </div>
4047               </div>
4048             </form>
4049           </div>
4050         </div>
4051       </div>
4052       <div class="addonsPurchase">
4053         <h4 class="text-uppercase">add-ons</h4>
4054         <div class="addons">
4055           <p>No Add-Ons</p>
4056           <!--
4057             <button class="add-addon">
4058               <svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="12" height="12" viewBox="0 0 12 12" fill="none">
4059                 <path d="M5.5 6.5H0V5.5H5.5V0H6.5V5.5H12V6.5H6.5V12H5.5V6.5Z" fill="black"/>
4060               </svg>
4061               <span>Enhance my moment with Add-ons</span>
4062             </button>
4063           -->
4064         </div>
4065       </div>
4066     </div>
4067     
4068   </div>
4069 </div>
4070 
4071 
4071<script>
4072 document.addEventListener('DOMContentLoaded', function() {
4073   // Detect iOS
4074   var isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;
4075   
4076   if (isIOS) {
4077     document.querySelector('.formAddressPurchase').classList.add('ios');
4078     
4079     // iOS specific fixes
4080     var inputs = document.querySelectorAll('.formAddressPurchase .input__field');
4081     
4082     inputs.forEach(function(input) {
4083       // Force enable touch events on iOS
4084       input.style.webkitUserSelect = 'text';
4085       input.style.webkitTouchCallout = 'default';
4086       input.style.pointerEvents = 'auto';
4087       input.style.touchAction = 'manipulation';
4088       
4089       // Add explicit touch event listeners for iOS
4090       input.addEventListener('touchstart', function(e) {
4091         e.stopPropagation();
4092         this.focus();
4093       }, { passive: false });
4094       
4095       input.addEventListener('touchend', function(e) {
4096         e.preventDefault();
4097         e.stopPropagation();
4098         this.focus();
4099         this.click();
4100       }, { passive: false });
4101       
4102       // Force focus on tap for iOS
4103       input.addEventListener('click', function(e) {
4104         e.stopPropagation();
4105         if (document.activeElement !== this) {
4106           this.focus();
4107         }
4108       });
4109     });
4110     
4111     // Fix for label overlapping on iOS
4112     var labels = document.querySelectorAll('.formAddressPurchase .input__label');
4113     labels.forEach(function(label) {
4114       label.style.pointerEvents = 'none';
4115       label.addEventListener('touchstart', function(e) {
4116         e.preventDefault();
4117         var input = this.parentNode.querySelector('.input__field');
4118         if (input) {
4119           input.focus();
4120         }
4121       });
4122     });
4123   }
4124   
4125   // Handle input state for all browsers, especially iOS
4126   var inputs = document.querySelectorAll('.input__field');
4127   
4128   inputs.forEach(function(input) {
4129     // Handle input events
4130     input.addEventListener('input', function() {
4131       if (this.value.trim() !== '') {
4132         this.classList.add('has-value');
4133       } else {
4134         this.classList.remove('has-value');
4135       }
4136     });
4137     
4138     // Handle focus
4139     input.addEventListener('focus', function() {
4140       this.classList.add('focused');
4141       // iOS specific: ensure input is visible
4142       if (isIOS) {
4143         setTimeout(function() {
4144           input.scrollIntoView({ behavior: 'smooth', block: 'center' });
4145         }, 300);
4146       }
4147     });
4148     
4149     // Handle blur
4150     input.addEventListener('blur', function() {
4151       this.classList.remove('focused');
4152       if (this.value.trim() !== '') {
4153         this.classList.add('has-value');
4154       } else {
4155         this.classList.remove('has-value');
4156       }
4157     });
4158     
4159     // Initial check for pre-filled values
4160     if (input.value.trim() !== '') {
4161       input.classList.add('has-value');
4162     }
4163   });
4164   
4165   // Additional iOS fixes
4166   if (isIOS) {
4167     // Prevent iOS Safari from adding default styling
4168     document.addEventListener('touchstart', function() {}, { passive: true });
4169     
4170     // Fix viewport issues on iOS
4171     var viewport = document.querySelector('meta[name=viewport]');
4172     if (viewport) {
4173       viewport.setAttribute('content', 
4174         'width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no'
4175       );
4176     }
4177   }
4178 });
4179 </script>
4179
4180           </div>
4181           <div class="purchase-button-wrapper">
4182             <div class="purchase-button btn-address row m-0">
4183   <div class="col-12 col-lg-2 text-left mb-2 p-0">
4184     
4185       <button class="back-purchase-button back-address text-uppercase">
4186         <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="https://watersoftenerreviewspro.com/picture/logo.png">
4187           <path d="M14.5799 7.41992L2.32992 7.41992L7.57992 12.6699L6.91992 13.4199L0.419922 6.91992L6.91992 0.419922L7.57992 1.16992L2.32992 6.41992L14.5799 6.41992V7.41992Z" fill="black"/>
4188         </svg>
4189         <span>Back</span>
4190       </button>
4191     
4192   </div>
4193   <div class="btn-next-card col-12 col-lg-10 text-right">
4194     
4195       <!--
4196         <button class="back-purchase-button back-address text-uppercase mr-lg-2 mb-2 mb-lg-0">
4197           <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="https://watersoftenerreviewspro.com/picture/logo.png">
4198             <path d="M14.5799 7.41992L2.32992 7.41992L7.57992 12.6699L6.91992 13.4199L0.419922 6.91992L6.91992 0.419922L7.57992 1.16992L2.32992 6.41992L14.5799 6.41992V7.41992Z" fill="black"/>
4199           </svg>
4200           <span>Back</span>
4201         </button>
4202       -->
4203     
4204     
4205     <button
4206       
4207         id="addtocart-card"
4208       
4209       class="btn  next-address text-uppercase"
4210       
4211     >
4212       <span>add to cart</span>
4213     </button>
4214   </div>
4215 </div>
4216 
4217           </div>
4218         </div>
4219       </div>
4220     
4221   </div>
4222 </div>
4223 <div id="backgroundPopup"></div>
4224 
4225 
4226 
4227 <input
4228   data-index="1"
4229   type="hidden"
4230   id="properties-delivery-date"
4231   name="properties[Delivery Date]"
4232   value="-"
4233 >
4234 <input
4235   data-index="2"
4236   type="hidden"
4237   id="properties-delivery-time"
4238   name="properties[Delivery Time]"
4239   value="-"
4240 >
4241 <input
4242   data-index="4"
4243   type="hidden"
4244   id="properties-nama-penerima"
4245   name="properties[Nama Penerima]"
4246   value="-"
4247 >
4248 <input
4249   data-index="5"
4250   type="hidden"
4251   id="properties-alamat-penerima"
4252   name="properties[Alamat Penerima]"
4253   value="-"
4254 >
4255 <input
4256   data-index="6"
4257   type="hidden"
4258   id="properties-kodepos"
4259   name="properties[Kodepos]"
4260   value="-"
4261 >
4262 <input data-index="7" type="hidden" id="properties-telepon-penerima" name="properties[Telepon Penerima]">
4263 
4264   
4265     <input
4266       data-index="8"
4267       type="hidden"
4268       id="properties-kartu-nama-penerima"
4269       name="properties[Kartu Nama Penerima]"
4270       value="-"
4271     >
4272   
4273   <textarea
4274     data-index="9"
4275     type="hidden"
4276     id="properties-kartu-pesan"
4277     name="properties[Kartu Pesan]"
4278     style="display: none"
4279   >-</textarea>
4280 
4281 
4282 
4283   <input
4284     data-index="10"
4285     type="hidden"
4286     id="properties-kartu-nama-pengirim"
4287     name="properties[Kartu Nama Pengirim]"
4288     value="-"
4289   >
4290
4291 <!-- Additional Shipping -->
4292 <input type="hidden" id="properties-kota-pengiriman-province" name="properties[Province]">
4293 <input
4294   type="hidden"
4295   id="properties-kota-pengiriman-country"
4296   name="properties[Country]"
4297   value="Indonesia"
4298 >
4299 <input type="hidden" id="properties-shipping" name="properties[Shipping]">
4300 
4301 <input type="hidden" id="properties-time" name="properties[Time]">
4302 <input type="hidden" id="properties-card" name="properties[Card]">
4303 <input type="hidden" id="properties-addons" name="properties[Addons]">
4304 
4305 <input
4306   type="hidden"
4307   id="properties-company"
4308   name="properties[Company]"
4309   value=""
4310 >
4311 
4311<script>
4312   
4313   $(document).ready(function(){
4314     
4315     var text_max_papan1=150;
4316     var msg_text_papan1="";
4317     $('#kartu-ucapan-ucapan').keyup(function(){
4318       var text_length_papan1=$('#kartu-ucapan-ucapan').val().length;
4319       var msg_text_papan1=$('#kartu-ucapan-ucapan').val();
4320     });
4321 
4322     var notes_papan1 = [
4323       
4324       [0,"Happy Wedding (nama & nama)."],[1,"Congratulations lovebirds (nama & nama)."],[2,"Selamat berbahagia (nama & nama)."],[3,"Selamat menempuh hidup baru (nama & nama)."]
4325       
4326     ];
4327     $('#show_note_papan1').click(function(event){
4328       event.preventDefault();
4329       var idx_papan1=parseInt($('#note_id_papan1').val());
4330       if(isNaN(idx_papan1)){
4331         idx_papan1=0;
4332       }else{
4333         idx_papan1++;
4334         idx_papan1=idx_papan1%notes_papan1.length;
4335       }
4336       var note_papan1=notes_papan1[idx_papan1][1];
4337       $('#note_id_papan1').val(idx_papan1);
4338       $('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan1);
4339       $('#msgDelivery').val(note_papan1);
4340 
4341       var text_length_papan1=$('#kartu-ucapan-papan').val().length;
4342       var idx_2_papan1=parseInt($('#note_btn_id_papan1').val());
4343       if(isNaN(idx_2_papan1)){
4344         idx_2_papan1=0;
4345       }else{
4346         idx_2_papan1++;
4347         //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length;
4348       }
4349       $('#note_btn_id_papan1').val(idx_2_papan1);
4350       //var note_btn=note_btn_text[idx_2][1];
4351       //$('#note_btn').text(note_btn);
4352     });
4353 
4354     var text_max_papan2=150;
4355     var msg_text_papan2="";
4356     $('#kartu-ucapan-ucapan').keyup(function(){
4357       var text_length_papan2=$('#kartu-ucapan-ucapan').val().length;
4358       var msg_text_papan2=$('#kartu-ucapan-ucapan').val();
4359     });
4360 
4361     var notes_papan2 = [
4362       
4363       [0,"Congratulations (ucapan)."], [1,"Selamat dan sukses atas dibukanya (ucapan personal)."],[2,"Congratulations for the grand opening of (nama toko/bisnis)."],[3,"Happy Graduation (nama)."]
4364       
4365     ];
4366     $('#show_note_papan2').click(function(event){
4367       event.preventDefault();
4368       var idx_papan2=parseInt($('#note_id_papan2').val());
4369       if(isNaN(idx_papan2)){
4370         idx_papan2=0;
4371       }else{
4372         idx_papan2++;
4373         idx_papan2=idx_papan2%notes_papan2.length;
4374       }
4375       var note_papan2=notes_papan2[idx_papan2][1];
4376       $('#note_id_papan2').val(idx_papan2);
4377       $('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan2);
4378       $('#msgDelivery').val(note_papan2);
4379       var text_length_papan2=$('#kartu-ucapan-papan').val().length;
4380       var idx_2_papan2=parseInt($('#note_btn_id_papan2').val());
4381       if(isNaN(idx_2_papan2)){
4382         idx_2_papan2=0;
4383       }else{
4384         idx_2_papan2++;
4385         //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length;
4386       }
4387       $('#note_btn_id_papan2').val(idx_2_papan2);
4388       //var note_btn=note_btn_text[idx_2][1];
4389       //$('#note_btn').text(note_btn);
4390     });
4391 
4392     var text_max_papan3=150;
4393     var msg_text_papan3="";
4394     $('#kartu-ucapan-ucapan').keyup(function(){
4395       var text_length_papan3=$('#kartu-ucapan-ucapan').val().length;
4396       var msg_text_papan3=$('#kartu-ucapan-ucapan').val();
4397     });
4398 
4399     var notes_papan3 = [
4400       
4401       [0,"Turut Berduka Cita atas meninggalnya almarhum / almarhumah (Nama)."], [1,"Our Deepest Condolences for the lost of your beloved Father/ Mother/ Husband/ Wife/ Children."], [2,"Our Deepest Sympathy for the lost of your beloved Father/ Mother/ Husband/ Wife/ Children."], [3,"Innalillahi wa innailaihi rojiun, Turut berduka cita atas meninggalnya (nama)."]
4402       
4403     ];
4404     $('#show_note_papan3').click(function(event){
4405       event.preventDefault();
4406       var idx_papan3=parseInt($('#note_id_papan3').val());
4407       if(isNaN(idx_papan3)){
4408         idx_papan3=0;
4409       }else{
4410         idx_papan3++;
4411         idx_papan3=idx_papan3%notes_papan3.length;
4412       }
4413       var note_papan3=notes_papan3[idx_papan3][1];
4414       $('#note_id_papan3').val(idx_papan3);
4415       $('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan3);
4416       $('#msgDelivery').val(note_papan3);
4417       var text_length_papan3=$('#kartu-ucapan-papan').val().length;
4418       var idx_2_papan3=parseInt($('#note_btn_id_papan3').val());
4419       if(isNaN(idx_2_papan3)){
4420         idx_2_papan3=0;
4421       }else{
4422         idx_2_papan3++;
4423         //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length;
4424       }
4425       $('#note_btn_id_papan3').val(idx_2_papan3);
4426       //var note_btn=note_btn_text[idx_2][1];
4427       //$('#note_btn').text(note_btn);
4428     });
4429 
4430     var text_max_papan4=150;
4431     var msg_text_papan4="";
4432     $('#kartu-ucapan-ucapan').keyup(function(){
4433       var text_length_papan4=$('#kartu-ucapan-ucapan').val().length;
4434       var msg_text_papan4=$('#kartu-ucapan-ucapan').val();
4435     });
4436 
4437     $('#show_note_papan4').click(function(event){
4438       var notes_papan4 = [
4439         [0,"Here’s to you—steadier, stronger and better every day."],
4440         [1,"Warmest wishes for a speedy recovery!"],
4441         [2,"Dengan ucapan terhangat, semoga lekas membaik dan semakin pulih setiap harinya ya."],
4442         [3,"Semoga lekas sembuh untuk kembali beraktivitas dan berkarya."]
4443       ];
4444       event.preventDefault();
4445       var idx_papan4=parseInt($('#note_id_papan4').val());
4446       console.log(idx_papan4, 'idx_papan4')
4447       if(isNaN(idx_papan4)){
4448         idx_papan4=0;
4449       }else{
4450         idx_papan4++;
4451         idx_papan4=idx_papan4%notes_papan4.length;
4452       }
4453       var note_papan4=notes_papan4[idx_papan4][1];
4454       $('#note_id_papan4').val(idx_papan4);
4455       $('#kartu-ucapan-papan, #properties-kartu-ucapan, #properties-kartu-pesan').val(note_papan4);
4456       console.log(note_papan4, 'note_papan4')
4457       var text_length_papan4=$('#kartu-ucapan-papan').val().length;
4458       var idx_2_papan4=parseInt($('#note_btn_id_papan4').val());
4459       if(isNaN(idx_2_papan4)){
4460         idx_2_papan4=0;
4461       }else{
4462         idx_2_papan4++;
4463         //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length;
4464       }
4465       $('#note_btn_id_papan4').val(idx_2_papan4);
4466     });
4467 
4468     /*
4469     $("#jenisPapan").change(function(){
4470       $( "select option:selected").each(function(){
4471         if($(this).attr("value")=="Happy Wedding"){
4472           $("#suggest-messages a").hide();
4473           $("#show_note_papan1").show();
4474           $("#kartu-ucapan-papan").val("");
4475         }
4476         if($(this).attr("value")=="Congratulations"){
4477           $("#suggest-messages a").hide();
4478           $("#show_note_papan2").show();
4479           $("#kartu-ucapan-papan").val("");
4480         }
4481         if($(this).attr("value")=="Duka Cita"){
4482           $("#suggest-messages a").hide();
4483           $("#show_note_papan3").show();
4484           $("#kartu-ucapan-papan").val("");
4485         }
4486       });
4487     }).change();
4488     */
4489 
4490     
4491 
4492     
4493 
4494     $(".variant-metafield").each(function(){
4495       const t = $(this)
4496       const id = t.attr("id")
4497       const target = $(`[data-select=${id}]`)
4498       t.on('select2:selecting', function(e) {
4499         const data = e.params.args.data
4500         target.val(data.text)
4501       });
4502     })
4503   })
4504 </script>
4504
4505 
4506 <div id="popupCart">
4507   <div class="container">
4508     <div class="wrapperPopupCart">
4509       <div class="headerPopupCart">
4510         <div class="d-flex pl-5 pr-5 p-4">
4511           <svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="16" height="12" viewBox="0 0 16 12" fill="none">
4512             <path d="M5.55008 11.3076L0.580078 6.33761L1.29408 5.62461L5.55008 9.88061L14.7061 0.724609L15.4191 1.43861L5.55008 11.3076Z" fill="black"/>
4513           </svg>
4514           <span>item added to your cart</span>
4515         </div>
4516         <a class="close-purchase-popup">
4517   <svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="18" height="18" viewBox="0 0 18 18" fill="none">
4518     <path d="M1.53287 17.4107L0.588867 16.4667L8.05553 9.00002L0.588867 1.53336L1.53287 0.589355L8.99953 8.05602L16.4662 0.589355L17.4102 1.53336L9.94353 9.00002L17.4102 16.4667L16.4662 17.4107L8.99953 9.94402L1.53287 17.4107Z" fill="black"/>
4519   </svg>
4520 </a>
4521 
4522       </div>
4523       <div class="contentPopupCart">
4524         <div class="pl-5 pr-5 p-4">
4525           <div class="itemContent row m-0 justify-content-between">
4526             <div class="col-2 align-self-center">
4527               
4528               <img
4529                 class="d-block"
4530                 width="80"
4531                 src="//outerbloom.com/cdn/shop/files/Blossom-Shine-WM_80x.jpg?v=1695788426"
4532               >
4533             </div>
4534             <div class="col-10 align-self-center">
4535               <div class="row pl-3">
4536                 <div class="col-12 col-lg-7">
4537                   <span class="titleCartPopup text-uppercase">HOLYTOGEL >> Daftar Kumpulan Game Online Seleksi Dan Bandar Toto Togel Online Indonesia</span>
4538                 </div>
4539                 <div class="d-flex justify-content-end col-12 col-lg-5">
4540                   <span class="deleteCartPopup hide">Delete</span>
4541                   <span class="lineCartPrice align-self-center">Rp 5.000</span>
4542                 </div>
4543               </div>
4544             </div>
4545           </div>
4546           <div class="itemProperties">
4547             
4548               <div class="propDeliver">
4549                 <h4>delivery option detail</h4>
4550                 <p>
4551                   <span>delivery city</span>
4552                   <span class="propDeliveryCity">jakarta</span>
4553                 </p>
4554                 <p>
4555                   <span>delivery date</span>
4556                   <span class="propDeliveryDate">24/03/2025</span>
4557                 </p>
4558                 <p>
4559                   <span>delivery time</span>
4560                   <span class="propDeliveryTime">Afternoon | 13:00 - 18:00</span>
4561                 </p>
4562               </div>
4563               <div class="propAddress">
4564                 <h4>delivery option detail</h4>
4565                 <p>
4566                   <span>RECIPIENT NAME</span>
4567                   <span class="propDeliveryName">jane doe</span>
4568                 </p>
4569                 <p>
4570                   <span>delivery address</span>
4571                   <span class="propDeliveryAddress"
4572                     >Jl. Gatot Subroto No. 25, RT.2/RW.4, Kuningan Barat, Kecamatan Mampang Prapatan, Kota Jakarta
4573                     Selatan, Daerah Khusus Ibukota Jakarta 12710, Indonesia</span
4574                   >
4575                 </p>
4576                 <p>
4577                   <span>recipient phone number</span>
4578                   <span class="propDeliveryPhone">(+62) 812-3456-7890</span>
4579                 </p>
4580                 <p>
4581                   <span>PROVINCE</span>
4582                   <span class="propDeliveryProv">Jakarta</span>
4583                 </p>
4584                 <p>
4585                   <span>postal code</span>
4586                   <span class="propDeliveryZip">12710</span>
4587                 </p>
4588                 
4589                 
4590               </div>
4591             
4592           </div>
4593           <div class="itemAddonCart">
4594             <div class="toggleAddonCart d-flex justify-content-between">
4595               <h4>add-ons (0)</h4>
4596               <svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="5" height="9" viewBox="0 0 5 9" fill="none">
4597                 <path d="M1.0128 0.84668L4.78613 4.62001L1.0128 8.39335L0.546133 7.92001L3.84613 4.62001L0.546133 1.32001L1.0128 0.84668Z" fill="black"/>
4598               </svg>
4599             </div>
4600             <div class="wrapperItemAddonCart"></div>
4601           </div>
4602           
4603         </div>
4604       </div>
4605       <div class="footerPopupCart">
4606         <div class="row m-0 pl-5 pr-5 p-4">
4607           <a class="btn btnViewCart w-100 text-uppercase text-center" href="/cart">View Cart</a>
4608           <a class="btn btnViewCheckout w-100 text-uppercase text-center" href="/checkout"><span>Checkout</span></a>
4609           <a class="btnContinueShopping w-100 text-center" href="/">Continue shopping</a>
4610         </div>
4611       </div>
4612     </div>
4613   </div>
4614 </div>
4615 
4616 
4617 
4617<script>
4618   const shareButton = document.getElementById('shareButton');
4619 
4620   shareButton.addEventListener('click', () => {
4621     if (navigator.share) {
4622       navigator.share({
4623         title: "HOLYTOGEL >> Daftar Kumpulan Game Online Seleksi Dan Bandar Toto Togel Online Indonesia",
4624         url: "/products/blossom-shine",
4625         text: 'Check out this page!'
4626       })
4627       .then(() => console.log('Successful share'))
4628       .catch((error) => console.log('Error sharing', error));
4629     } else {
4630       alert('Web Share API is not supported in this browser.');
4631     }
4632   });
4633 
4634   // Inventory validation function
4635   function checkInventoryStatus() {
4636     const productSelect = document.getElementById('productSelect');
4637     const purchaseButton = document.querySelector('#personalizeBtn button');
4638     
4639     if (!productSelect || !purchaseButton) return;
4640 
4641     const selectedVariantId = productSelect.value;
4642     
4643     // Get variant data from Shopify
4644     fetch(`/products/blossom-shine.js`)
4645       .then(response => response.json())
4646       .then(product => {
4647         const selectedVariant = product.variants.find(variant => variant.id == selectedVariantId);
4648         
4649         if (selectedVariant) {
4650           const isOutOfStock = selectedVariant.inventory_quantity <= 0 && 
4651                                selectedVariant.inventory_management === 'shopify' && 
4652                                selectedVariant.inventory_policy !== 'continue';
4653           
4654           if (isOutOfStock) {
4655             purchaseButton.disabled = true;
4656             purchaseButton.textContent = 'Out of Stock';
4657             purchaseButton.setAttribute('data-out-of-stock', 'true');
4658             purchaseButton.style.backgroundColor = '#cccccc';
4659             purchaseButton.style.cursor = 'not-allowed';
4660           } else {
4661             // Check if button was disabled due to other conditions
4662             
4663             
4664             
4665             
4666             
4667             
4668             
4669             
4670             const isOtherDisabled = false || true || false;
4671             
4672             if (!isOtherDisabled) {
4673               purchaseButton.disabled = false;
4674               purchaseButton.textContent = 'customize your flower board';
4675               purchaseButton.removeAttribute('data-out-of-stock');
4676               purchaseButton.style.backgroundColor = '';
4677               purchaseButton.style.cursor = '';
4678             }
4679           }
4680         }
4681       })
4682       .catch(error => {
4683         console.error('Error checking inventory:', error);
4684       });
4685   }
4686 
4687   // Check inventory on page load
4688   document.addEventListener('DOMContentLoaded', function() {
4689     checkInventoryStatus();
4690     
4691     // Listen for variant changes
4692     const productSelect = document.getElementById('productSelect');
4693     if (productSelect) {
4694       productSelect.addEventListener('change', checkInventoryStatus);
4695     }
4696   });
4697 
4698   // Prevent form submission if out of stock
4699   document.addEventListener('click', function(e) {
4700     if (e.target.matches('button[data-out-of-stock="true"]')) {
4701       e.preventDefault();
4702       e.stopPropagation();
4703       alert('This product is currently out of stock and cannot be purchased.');
4704       return false;
4705     }
4706   });
4707 </script>
4707
4708 
4709 
4710   
4711 </div>
4712 
4713           </div>
4714         </div>
4715       </div>
4716     </div>
4717     <div id="product-bottom">
4718       
4719         <div class="product-description rte bg-card col-12 py-3 px-0 m-0" itemprop="description">
4720           <div class="container">
4721             
4722 
4723 
4724 
4725 
4726     <div class="short-desc-mobile d-block d-lg-none mb-3">
4727         <div class="short-desc">
4728             <ul>
4729 <li><strong>HOLYTOGEL memberikan daftar kumpulan game online seleksi yang dimana paling dicari player slotter dan togel mania indonesi di bandar tototogel terpercaya.</strong></li>
4730         </div>
4731         <label class="more-mobile">Show More →</label>
4732     </div>
4733 
4734 <style>
4735 .animated-title {
4736     text-align: center;
4737     font-weight: bold;
4738     color: #079c02;
4739     font-size: 28px;
4740     position: relative;
4741     animation: glow 2s infinite alternate, moveUpDown 3s infinite;
4742 }
4743 
4744 /* Efek glow / bercahaya hijau */
4745 @keyframes glow {
4746     0% { text-shadow: 0 0 5px #079c02; color: #079c02; }
4747     50% { text-shadow: 0 0 20px #00ff55; color: #12d12b; }
4748     100% { text-shadow: 0 0 10px #1bff00; color: #079c02; }
4749 }
4750 
4751 /* Efek gerakan naik turun */
4752 @keyframes moveUpDown {
4753     0% { transform: translateY(0px); }
4754     50% { transform: translateY(-5px); }
4755     100% { transform: translateY(0px); }
4756 }
4757 </style>
4758 
4759 
4759<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/shopify-cartjs/1.1.0/cart.min.js"></script>
4759
4760 
4760<script>
4761   CartJS.init({"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":"IDR","items_subtotal_price":0,"cart_level_discount_applications":[],"checkout_charge_amount":0});
4762 
4763   const productType = $("[data-product-type]").data("product-type")
4764   const productDate = Date.parse(new Date())
4765   
4766   const shop = 'outerbloom1.myshopify.com'
4767   const host = 'https://app.asmaraku.com'
4768   // const host = 'http://localhost:5001'
4769 
4770   const gsheet = "https://script.google.com/macros/s/AKfycbyqa6mPD6lVjU6hiHr12J8URZ2aJBGyxBsGQ0QtEIDari-rBk_9vSOITjSSmUXL1NwxEg/exec"
4771   
4772   const qrID = "041025" + randomString(4, 'aAbCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ')
4773 
4774   $("#properties-time").val(new Date().getTime())
4775 
4776   const isIOS = /iPhone|iPad|iPod/i.test(navigator.userAgent);
4777 
4778   if(!isIOS) {
4779     $("#full-date").attr("type", "button")
4780   }
4781 
4782   let dateTime = new Date();
4783   let today = dateTime.getDate();
4784   let day = dateTime.getDay();
4785   let hour = dateTime.getHours();
4786   let min = dateTime.getMinutes();
4787   let timeOfDay = hour + (min / 100);
4788 
4789   async function getFetch(url) {
4790     const response = await fetch(url);
4791     let status = false
4792     let result
4793     if(response.ok) {
4794       status = true
4795       result = await response.json();
4796     }
4797     return {
4798       status,
4799       data: result
4800     }
4801   }
4802 
4803   
4804 
4805   function setCookie(cname, cvalue, exMins) {
4806     var d = new Date();
4807     d.setTime(d.getTime() + (exMins*60*1000));
4808     var expires = "expires="+d.toUTCString();  
4809     document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
4810   }
4811 
4812   function getCookie(cname) {
4813     let name = cname + "=";
4814     let decodedCookie = decodeURIComponent(document.cookie);
4815     let ca = decodedCookie.split(';');
4816     for(let i = 0; i <ca.length; i++) {
4817       let c = ca[i];
4818       while (c.charAt(0) == ' ') {
4819         c = c.substring(1);
4820       }
4821       if (c.indexOf(name) == 0) {
4822         return c.substring(name.length, c.length);
4823       }
4824     }
4825     return "";
4826   }
4827 
4828   async function renderDate() {
4829     let dataDate = await getFetch(`${host}/api/shipping/date?domain=${shop}&productId=8144957800663&v=${Date.now()}`);
4830     console.log(dataDate, 'renderDate')
4831     const data = dataDate?.data
4832     const date = data.date
4833     const time = data.time
4834 
4835     console.log(date, 'DATE')
4836 
4837     const weekday = ["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];
4838     const monthly = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];
4839     const htmlDate = []
4840     for(let i = 0;i < date.length;i++) {
4841       const full = date[i].date
4842       const d = new Date(date[i].date);
4843       const day = weekday[d.getDay()];
4844       const dt = d.getDate();
4845       const mt = monthly[d.getMonth()];
4846       const yr = d.getFullYear();
4847       const isDate = Boolean(date[i].isEnabled)
4848       const cutoffpagi = date[i].cutoff?.pagi
4849       const cutoffsiang = date[i].cutoff?.siang
4850       const cutoffMalam = date[i].cutoff?.Malam
4851       var html = `
4852         <button data-id="8144957800663" class="date-single calendarbutton btn steps-btn col col-3 btn-date-time" data-day="${day}" data-fulldate="${full}" data-date="${dt < 10 ? '0' + dt : dt}" data-month="${mt}" data-year="${yr}" data-offpagi="${cutoffpagi}" data-offsiang="${cutoffsiang}" data-offMalam="${cutoffMalam}" ${isDate === true ? '' : 'disabled'}>
4853           ${dt === today ?
4854             `Today<span>${dt < 10 ? '0' + dt : dt}</span>` :
4855             `${day}<span>${dt < 10 ? '0' + dt : dt}</span>`
4856           }
4857         </button>
4858       `
4859       htmlDate.push(html)
4860     }
4861     const htmlTime = []
4862     for(var i = 0;i < time.length;i++) {
4863       const timeText = time[i].text
4864       const timeTime = time[i].time
4865       const timeEnabled = time[i].isEnabled
4866       var html = `
4867           <button class="time-single calendarbutton2 btn steps-btn" data-time="${timeText}" ${timeEnabled ? '' : 'disabled'}>${timeText}<br/>${timeTime}</button>
4868         `
4869       htmlTime.push(html)
4870     }
4871     const deliveryDate = document.getElementById("deliveryDate");
4872     if(deliveryDate) {
4873       deliveryDate.insertAdjacentHTML("afterbegin", htmlDate.join(''))
4874       $("#deliveryTime").html(htmlTime)
4875       if(productType !== '') {
4876         console.log("clarity event " + productType + ' calendaring')
4877         window.clarity("event", `${productType} calendaringSchedule`)
4878         // window.clarity("set", productType, `calendaringSchedule - ${productDate}`)
4879       }
4880     }
4881   }
4882 
4883   async function getProvince(city) {
4884     let { data: { province } } = await getFetch(`${host}/api/shipping/address/province?city=${city}`);
4885     console.log(province, 'province')
4886     $("#province").val(province)
4887   }
4888 
4889   async function renderAddress() {
4890     let current
4891     if(getCookie("location_delivery")){
4892       current = getCookie("location_delivery").charAt(0).toUpperCase() + getCookie("location_delivery").slice(1)
4893     }
4894     let address = await getFetch(`${host}/api/shipping/address?domain=${shop}&productId=8144957800663`);
4895     console.log(address)
4896     const data = address?.data?.city
4897     const htmlAddress = []
4898     const grouping = []
4899     for(let i = 0;i < data?.length;i++) {
4900       if(data[i]){
4901         if(data[i]?.group) {
4902           grouping.push(data[i].group)
4903         }
4904         const price = rupiah.format(data[i]?.rate)
4905         let promo = '(Promo Free Delivery)'
4906         if(data[i]?.name === 'Jakarta - PickUp ASHTA'){
4907           promo = '(at SCBD, Ashta)'
4908         } else if(data[i]?.name === 'Jakarta - PickUp ITC'){
4909           promo = '(at Kuningan, ITC Kuningan)'
4910         } else if(data[i]?.name === 'BSD - PickUp'){
4911           promo = '(at Goldfinch Gading Serpong)'
4912         } else if(data[i]?.name === 'Kota Lainnya'){
4913           promo = ''
4914         }
4915         htmlAddress.push(`<option data-province="${data[i]?.province}" data-city="${data[i]?.city}" data-note="${data[i]?.note}" data-price="${data[i]?.rate}" value="${data[i]?.name}">${data[i]?.name === 'Kota Lainnya' ? 'Seluruh Kota Lain di Indonesia' : data[i]?.name} ${data[i]?.rate > 0 ? `(${price})` : promo}</option>`)
4916       }
4917     }
4918     
4919     const deliveryCity = document.getElementById("cities");
4920     if(deliveryCity) {
4921       deliveryCity.insertAdjacentHTML("beforeend", htmlAddress.join(''))
4922       if(!isIOS) {
4923         $(deliveryCity).select2();
4924       }
4925     }
4926   }
4927 
4928   async function renderZip(v, v2, v3) {
4929     const deliveryZip = document.getElementById("zip");
4930     if(v === '') {
4931       return
4932     }
4933     let dataZip = await getFetch(`${host}/api/shipping/address/zip?city=${v}&city2=${v2}&city3=${v3}`);
4934     let zip = dataZip?.data?.zip
4935     console.log(zip)
4936     let htmlZip = []
4937     for(let i = 0; i < zip?.length;i++) {
4938       htmlZip.push(`<option value="${zip[i]?.postalCode} - ${zip[i]?.subdistrict}">${zip[i]?.postalCode} - ${zip[i]?.subdistrict} - ${zip[i]?.city}</option>`)
4939     }
4940     deliveryZip.insertAdjacentHTML("beforeend", htmlZip.join(''))
4941   }
4942 
4943   renderDate()
4944   renderAddress()
4945 
4946   let rupiah = new Intl.NumberFormat('id-ID', {
4947     style: 'currency',
4948     currency: 'IDR',
4949     maximumFractionDigits: 0, 
4950     minimumFractionDigits: 0
4951   });
4952 
4953   async function insertCard(data) {
4954     const response = await fetch(`${host}/api/card/new`, {
4955         method: "POST",
4956         headers: {
4957           'Content-Type': 'application/json',
4958         },
4959         body: data
4960     })
4961     const result = await response.json()
4962     let rowIndex = result?.data?.tableRange.split("Outerbloom!A1:J")[1]
4963     $("#greetingCard").attr("data-index", rowIndex)
4964     return result
4965   }
4966     
4967   async function updateCard(data){
4968     const rowIndex = $("#greetingCard").data("index")
4969     const response = await fetch(`${host}/api/card/update?rowIndex=${rowIndex}`, {
4970         method: "PUT",
4971         headers: {
4972           'Content-Type': 'application/json',
4973         },
4974         body: data
4975     })
4976     return response
4977   }
4978     
4979   function bytesToSize(bytes) {
4980     var sizes = ['b', 'kb', 'mb', 'gb', 'tb', 'p'];
4981     for (var i = 0; i < sizes.length; i++) {
4982       if (bytes <= 1024) {
4983         return bytes + ' ' + sizes[i];
4984       } else {
4985         bytes = parseFloat(bytes / 1024).toFixed(2)
4986       }
4987     }
4988     return bytes + ' P';
4989   }
4990 
4991   async function uploadMedia(uri, type) {
4992     nameq = $("#properties-nama-penerima").val()
4993     dear = $("#properties-kartu-nama-penerima").val()
4994     card = $("[data-properties=ucapan]").val()
4995     sender = $("#properties-kartu-nama-pengirim").val()
4996     photo = $("#properties-photo").val()
4997     video = $("#properties-video").val()
4998     status = "Product"
4999         
5000     const name = qrID
5001     let formData = new FormData(); 
5002     formData.append("file", uri);
5003     const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, {
5004       method: "POST", 
5005       body: formData
5006     })
5007     const result = await response.json();
5008     if(result) {
5009       const url = result.url
5010       if(type === 'image/jpeg') {
5011         $("#properties-photo").val(url)
5012         $(".preview-image").show()
5013         $(".remove-image").show()
5014         photo = url
5015       } else {
5016         $("#properties-video").val(url)
5017         $("#label-input-video span").text("Change File")
5018         $(".case-qrcode-preview p").text("Scan here for a secret message")
5019         $(".remove-media").show()
5020         $("#product-top #product-meta .case-video-preview p").html(`<span class="replace-video" tite="Replace Video">${uri.name} (${bytesToSize(uri.size)})</span><span> is uploaded</span>`)
5021         $("[for=input-video]").hide()
5022         video = url
5023       }
5024       $(".case-video-preview").show()
5025       $(".steps-card-preview").removeClass("loading")
5026       // updateCard(nameq, dear, card, sender, photo, video, status)
5027 
5028       $(".nextBtn").attr("disabled", false)
5029     }
5030   }
5031 
5032   function randomString(length, chars) {
5033     var result = '';
5034     for (var i = length; i > 0; --i) result += chars[Math.round(Math.random() * (chars.length - 1))];
5035     return result;
5036   }
5037 
5038   function getNoteCity(fulldate) {
5039     const h_1 = new Date(new Date().setDate(new Date().getDate() + 1))
5040     const weekday = ["Min","Sen","Sel","Rab","Kam","Jum","Sab"];
5041     const monthly = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];
5042     const d = new Date(h_1);
5043     const day = weekday[d.getDay()];
5044     const dt = d.getDate();
5045     const mt = monthly[d.getMonth()];
5046     const yr = d.getFullYear();
5047     const p = $("#cities").parent(".form-group")
5048   }
5049 
5050   function disabledSameDay() {
5051     let btnFirst = $("#deliveryDate").find("button:first-child")
5052     let getDay = new Date().getDay();
5053 
5054     
5055       
5056       if(getDay == 1 || getDay == 2 || getDay == 3 || getDay == 4 || getDay == 5){
5057         if(hour >= 14.00){
5058           btnFirst.attr("disabled", true)
5059         }
5060       } else if(getDay == 6){
5061         if(hour >= 16.00){
5062           btnFirst.attr("disabled", true)
5063         }
5064       } else if(getDay == 0){
5065         if(hour >= 16.00){
5066           btnFirst.attr("disabled", true)
5067         }
5068       }
5069       
5070     
5071   }
5072 
5073   function disabledays(date) {
5074     let ymd = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate();
5075     //if u have to disable a list of day
5076     let removeDays
5077     
5078     
5079     
5080         removeDays = ["2025-2-13", "2025-2-14"];
5081     
5082     if ($.inArray(ymd, removeDays) >= 0) {
5083       return [false];
5084     } else {
5085       let day = date.getDay();
5086       if(day == 0 && date.getDate() == 13 && date.getMonth() == 1){
5087           return [(day == 0),  ''];
5088       }
5089       
5090       if(day == 0){
5091         return [(day == 0),  ''];
5092       }
5093       
5094       
5095       return [(day != 0),  ''];
5096     }
5097   }
5098 
5099   /* Indonesian initialisation for the jQuery UI date picker plugin. */
5100   /* Written by Deden Fathurahman ([email protected]). */
5101   ( function( factory ) {
5102     if ( typeof define === "function" && define.amd ) {
5103 
5104       // AMD. Register as an anonymous module.
5105       define( [ "../widgets/datepicker" ], factory );
5106     } else {
5107 
5108       // Browser globals
5109       factory( jQuery.datepicker );
5110     }
5111   }( function( datepicker ) {
5112 
5113   datepicker.regional.id = {
5114     closeText: "Tutup",
5115     prevText: "&#x3C;mundur",
5116     nextText: "maju&#x3E;",
5117     currentText: "Today",
5118     monthNames: [ "January","February","March","April","May","Juny",
5119                   "July","August","September","October","November","December" ],
5120     monthNamesShort: [ "Jan","Feb","Mar","Apr","May","Jun",
5121                       "Jul","Agu","Sep","Oct","Nov","Dec" ],
5122     dayNames: [ "Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu" ],
5123     dayNamesShort: [ "Sun","Mon","Tue","Wed","Thu","Fri","Sat" ],
5124     dayNamesMin: [ "Mg","Sn","Sl","Rb","Km","jm","Sb" ],
5125     weekHeader: "Mg",
5126     dateFormat: "D, dd M",
5127     firstDay: 0,
5128     isRTL: false,
5129     showMonthAfterYear: false,
5130     yearSuffix: "" };
5131   datepicker.setDefaults( datepicker.regional.id );
5132 
5133   return datepicker.regional.id;
5134 
5135 } ) );
5136 
5137   function loadPopup() {
5138     $("#backgroundPopup").fadeIn("slow");
5139     $(".purchasePopup:not(.purchasePopupSpotify)").fadeIn("slow");
5140     const firstSection = $(".purchasePopup:not(.purchasePopupSpotify) .sectionPurchase").first()
5141     if(firstSection.hasClass("purchasePersonalize")) {
5142       if(productType !== '') {
5143         console.log("clarity event " + productType + ' personalize')
5144         window.clarity("event", `${productType} cardPersonalization`)
5145         // window.clarity("set", productType, `cardPersonalization - ${productDate}`)
5146       }
5147     } else if (firstSection.hasClass("sectionPurchaseBoard")) {
5148         console.log("clarity event " + productType + ' personalizeBoard')
5149         window.clarity("event", `${productType} personalizeBoard`)
5150         // window.clarity("set", productType, `personalizeBoard - ${productDate}`)
5151     }
5152     firstSection.removeClass("hide")
5153     
5154     // Auto-trigger addon loading when addon section becomes visible
5155     setTimeout(function() {
5156       const addonSection = $(".purchaseAddon")
5157       if(addonSection.length > 0 && !addonSection.hasClass("hide")) {
5158         if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) {
5159           $("[data-addon=upsell-all]").trigger("click")
5160         }
5161       }
5162     }, 200)
5163   }
5164 
5165   function disablePopup() {
5166     $("#backgroundPopup").fadeOut("slow");
5167     $(".purchasePopup").fadeOut("slow");
5168     $("#popupCart").fadeOut("slow");
5169   }
5170 
5171     function scrollTo(parent, div, dur) {
5172       $(parent).animate({
5173         scrollTop: $(div).offset().top
5174       }, dur);
5175     }
5176 
5177   function loadPopupPersonalize() {
5178     const div = "#purchaseProduct"
5179     const p = "html, body, .product-meta"
5180     $("p.error").remove()
5181     loadItemOccasion($("[data-occassion]").eq(0), "greeting-card-all")
5182     const isCity = $("#cities[required]")
5183     const isDate = $("#propDeliveryDate[required]")
5184     const isTime = $("#propDeliveryTime[required]")
5185     // loadPopup()
5186     if(isCity.val() !== '' && isDate.val() !== '' && isTime.val() !== '') {
5187       loadPopup()
5188     }
5189     if(isCity.val() == '') {
5190       isCity.parent(".row").append("<p class='error'>Choose delivery city</p>")
5191       scrollTo(p, div, 500)
5192     }
5193     if(isDate.val() == '') {
5194       isDate.parents(".row").append("<p class='error'>Choose delivery date</p>")
5195       scrollTo(p, div, 500)
5196     }
5197     if(isTime.val() == '') {
5198       isTime.parents(".row").append("<p class='error'>Choose delivery time</p>")
5199       scrollTo(p, div, 500)
5200     }
5201   }
5202 
5203   function quantityCounter() {
5204     $(document).on("click", ".item-card.selected .q_up", function () {
5205       var C = $(this).attr("data-id"),
5206           S =
5207               parseInt(
5208                   $(this)
5209                       .siblings(".quantity-cart-" + C)
5210                       .val()
5211               ) + 1;
5212       $(this).attr("data-quantity", S),
5213           $(this)
5214               .siblings(".quantity-cart-" + C)
5215               .val(S);
5216     }),
5217     $(document).on("click", ".item-card.selected .q_down", function () {
5218         var C = $(this).attr("data-id"),
5219             S = parseInt(
5220                 $(this)
5221                     .siblings(".quantity-cart-" + C)
5222                     .val()
5223             );
5224         0 < S && $(this).attr("data-quantity", S - 1),
5225             0 < S &&
5226                 $(this)
5227                     .siblings(".quantity-cart-" + C)
5228                     .val(S - 1);
5229     });
5230   }
5231 
5232   quantityCounter()
5233 
5234   const itemAddon = $(".item-card").length
5235   const nofree = $(".nofree").length
5236 
5237   const upsell = ''
5238   
5239   if(nofree === itemAddon) {
5240       // $("#itemAddons").html("<p>No Items available</p>")
5241   }
5242 
5243   $("#itemAddons .item-card").each(function(e){
5244       $("#itemAddons").attr("data-length", e)
5245   })
5246 
5247   $("[data-addon]").click(function(){
5248       
5249       
5250       
5251       const t = $(this)
5252       
5253       const data = t.data("addon")
5254       
5255       $("[data-addon]").removeClass("selected")
5256       t.addClass("selected")
5257       $.get(`https://outerbloom.com/collections/${data}/products.json`, function(data, status){
5258           const products = data.products
5259           const html = []
5260           for(let i = 0; i < products.length; i++) {
5261               const id = products[i].id
5262               const variantId = products[i].variants[0].id
5263               const img = products[i].images[0].src
5264               let img2 = img.split('.jpg')[0]
5265               const title = products[i].title
5266               const price = products[i].variants[0].price
5267               const tags = products[i].tags
5268               const qty = products[i].variants[0].available
5269               let type_upsell = ''
5270               if(tags.includes('upsell-item-standing')) {
5271                   type_upsell = 'standing'
5272               }
5273               console.log(type_upsell)
5274               if(type_upsell !== '') {
5275                   const body = `<div class="item-card${price < 1 ? ' free' : ' nofree'} type-${products[i].product_type.toLowerCase()?.replace(' ', '_')}" data-variant="${variantId}" data-id=${id} data-qty="${qty === false ? 0 : ''}" data-upsell="${type_upsell}" data-tags="${tags}">
5276                       
5277                           <div class="card-image">
5278                               <img src="${img2}_150x.jpg" alt="${title}" width="" height="" />
5279                           </div>
5280                           <div class="card-meta">
5281                               <h5>${title}</h5>
5282                               <p>${price < 1 ? 'FREE' : rupiah.format(price)}</p>
5283                               <input id="card-${variantId}" type="hidden" name="" value="${variantId}">
5284                           </div>
5285                           <div class="card-qty">
5286                               <a data-quantity="1" type="submit" id="q_down-${variantId}" class="btn-qty-min q_down drawer-cart" data-id="${variantId}"><svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="12" height="2" viewBox="0 0 12 2" fill="none"><path d="M0 1.90869V0.908691H12V1.90869H0Z" fill="black"/></svg></a>  
5287                               <input maxlength="3" min="0" class="btn-qty text-center quantity-cart-${variantId}
5287" value="0" data-price=${price} name="quantity">
5288                               <a data-quantity="1" type="submit" class="btn-qty-plus q_up text-green drawer-cart" data-id="${variantId}"><svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="12" height="13" viewBox="0 0 12 13" fill="none">
5289 <path d="M0 6.87023V5.94715H5.53846V0.408691H6.46154V5.94715H12V6.87023H6.46154V12.4087H5.53846V6.87023H0Z" fill="black"/>
5290 </svg></a>   
5291                           </div>
5292                       </div>`
5293                   html.push(body)
5294               }
5295           }
5296           $("#itemAddons .row").html(html.length === 0 ? '<p>No Item available</p>' : html)
5297           $("#itemAddons").attr("data-length", products.length)
5298           // $('#itemAddons')[0].swiper.update();
5299       });
5300   })
5301 
5302   async function isAddon(){
5303     let ids = []
5304     $("#itemAddons .item-card.selected").each(function(i, e){
5305       const id = $(this).data("id")
5306       ids.push(id)
5307     })
5308     console.log(ids)
5309     return ids
5310   }
5311   
5312   $("#itemAddons").delegate(".item-card > div:not(.card-qty)", "click", async function(){
5313     const t = $(this).parent()
5314     const id = t.data("id")
5315     const btn =  t.parents(".purchaseAddon").find(".next-purchase-button")
5316     t.toggleClass("selected");
5317     //$(this).next("input").toggleAttr('name', 'id[]');
5318     if (t.hasClass('selected')) {
5319         t.find("input").val(1)
5320         t.find("input").attr('name', 'id[]');
5321     } else {
5322         t.find("input").val(0)
5323         t.find("input").removeAttr('name');
5324     }
5325     $("#properties-addons").val(addons)
5326     const is = await isAddon()
5327     if(is.length === 0) {
5328       btn.text("continue without add-ons")
5329       return
5330     }
5331     if(is.includes(8835692069079)) {
5332       btn.text("personalize acrylic frame")
5333     } else {
5334       btn.text("Continue")
5335     }
5336       
5337   })
5338 
5339   async function myAddon(data) {
5340     const c = $(".addonsPurchase .addons")
5341     let items = []
5342     
5343     const spotifyAddons = $(".spotifyAddons").find("[data-index]")
5344     // if(spotifyAddons.length > 0) {
5345     //   $(spotifyAddons).each(function(i, e){
5346     //     const spotifyLink = $(this).find(".spotifyLink").val()
5347     //     const spotifySong = $(this).find(".spotifySong").val()
5348     //     const spotifyArtist = $(this).find(".spotifyArtist").val()
5349     //     const spotifyFotoAddon = $(this).find(".resultPhotoSpotify").val()
5350     //     if(spotifyLink !== '') {
5351     //       spotifyAddon = `<div class="addon-item" data-id="46067682607319" data-qty="1">
5352     //         <div class="addon-itm-img">
5353     //           <img src="https://cdn.shopify.com/s/files/1/1589/6833/files/Acrylic-Frame_8c71027d-43b7-4322-a98f-d34ab0456397_100x.jpg?v=1739160467" alt="" width="70"/>
5354     //         </div>
5355     //         <div class="addon-itm-title">
5356     //           <span>[US] Outerbloom Acrylic Frame 4R</span>
5357     //         </div>
5358     //         <div class="addon-itm-line-total">
5359     //           <span>Rp 99.000</span>
5360     //         </div>
5361     //       </div>
5362     //       <div class="propsAddonSpotify row m-0">
5363     //         <div class="col-12 col-lg-2"></div>
5364     //           <div class="col-12 col-lg-10">
5365     //             <p>
5366     //               <span>spotify link</span>
5367     //               <span class="spotifyLinkAddon">${spotifyLink}</span>
5368     //             </p>
5369     //             <p>
5370     //               <span>uploaded photo</span>
5371     //               <span class="spotifyFotoAddon">${spotifyFotoAddon}</span>
5372     //             </p>
5373     //             <p>
5374     //               <span>song / playlist name</span>
5375     //               <span class="spotifySongAddon">${spotifySong}</span>
5376     //             </p>
5377     //             <p>
5378     //               <span>artist name</span>
5379     //               <span class="spotifyArtistAddon">${spotifyArtist}</span>
5380     //             </p>
5381     //           </div>
5382     //       </div>`
5383     //       items.push(spotifyAddon)
5384     //     }
5385     //   })
5386     // }
5387     for(let i = 0; i < data.length; i++) {
5388       if(data[i].title !== '[US] Outerbloom Acrylic Frame 4R' ) {
5389         const img = data[i].image
5390         const title = data[i].title
5391         const qty = data[i].qty
5392         const price = data[i].price
5393         const total = Number(qty) * Number(price)
5394         let addons = `<div class="addon-item" data-id="${data[i].id}" data-qty="${qty}">
5395               <div class="addon-itm-img">
5396                 <img src="${img}" alt="" width="70"/>
5397               </div>
5398               <div class="addon-itm-title">
5399                 <span>${title}</span>
5400               </div>
5401               <div class="addon-itm-line-price">
5402                 <span>${rupiah.format(price)}</span>
5403                 ${data[i].title == '[US] Outerbloom Acrylic Frame 4R' ? '' : `<span>x${qty}</span>`}
5404               </div>
5405               <div class="addon-itm-line-total">
5406                 <span>${rupiah.format(total)}</span>
5407               </div>
5408             </div>`
5409           items.push(addons)
5410       }
5411     }
5412     c.html(items)
5413     const parent = $(".purchaseAddon")
5414     const next = parent.next(".sectionPurchase")
5415     parent.addClass("hide")
5416     next.removeClass("hide")
5417     // if(items2.length === 0) return $("#popupCart").addClass("no-addon-cart")
5418     // $(".itemAddonCart").find("h4").text(`add-ons (${items2.length})`)
5419   }
5420 
5421   async function listAddon() {
5422     const data = $("#itemAddons").find(".selected")
5423     let ids = []
5424     $(data).each(function(){
5425       const id = $(this).data("variant")
5426       const image = $(this).find(".card-image img").attr("src")
5427       const title = $(this).find(".card-meta h5").text()
5428       const qty = $(this).find(".card-qty input").val()
5429       const price = $(this).find(".card-qty input").data("price")
5430       ids.push({
5431         id: Number(id),
5432         image,
5433         title,
5434         qty,
5435         price
5436       })
5437     })
5438     myAddon(ids)
5439   }
5440 
5441   async function customSpotify(idx, length, type){
5442     let isCard = false
5443     
5444     let p = $(".purchasePopupSpotify")
5445     const preLink = $(".spotifyLinkFirst").val()
5446     $("[data-index]").hide()
5447     p.find(".headerPurchase h3").text(`personalize spotify photo print${length > 1 ? ` - ${idx}` : ''}`)
5448     p.find(".regulerAddons, .purchase-button").hide()
5449     p.find(".spotifyAddons").show()
5450     
5451     const data = await trackUrl(preLink)
5452     
5453     const html = `<div class="row" data-index=${idx} data-length=${length}><div class="col-12 col-lg-6"><div class="form-vertical position-relative"><div class="form-group mb-4"><h4>upload photo</h4><div class=uploadResult><label class=btn for=uploadPhotoSpotify><svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="13" height="11" viewB
5453ox="0 0 13 11" fill="none">
5454 <path d="M0.875 10.6378H12.375C12.4413 10.6378 12.5049 10.6115 12.5518 10.5646C12.5987 10.5177 12.625 10.4541 12.625 10.3878V0.387817C12.625 0.321513 12.5987 0.257925 12.5518 0.211041C12.5049 0.164157 12.4413 0.137817 12.375 0.137817H0.875C0.808696 0.137817 0.745107 0.164157 0.698223 0.211041C0.651339 0.257925 0.625 0.321513 0.625 0.387817V10.3878C0.625 10.4541 0.651339 10.5177 0.698223 10.5646C0.745107 10.6115 0.808696 10.6378 0.875 10.6378ZM1.125 10.1378V7.31882C1.136 7.31082 1.1485 7.30632 1.1585 7.29632L3.7165 4.73832C3.78198 4.67584 3.869 4.64098 3.9595 4.64098C4.05 4.64098 4.13702 4.67584 4.2025 4.73832L7.963 8.49882C8.00919 8.54501 8.07162 8.5713 8.13694 8.57204C8.20225 8.57279 8.26527 8.54794 8.3125 8.50282L10.2455 6.66682C10.3084 6.60323 10.3938 6.56684 10.4832 6.56543C10.5727 6.56403 10.6591 6.59774 10.724 6.65932L12.125 8.18532L12.1255 8.18582V10.1378H1.125ZM12.125 0.637817V7.44682L11.0845 6.31382C11.0066 6.23514 10.9138 6.17275 10.8116 6.13026C10.7094 6.08777 10.5997 6.06603 10.489 6.06632H10.4885C10.3786 6.06584 10.2697 6.08706 10.168 6.12876C10.0664 6.17046 9.97391 6.23182 9.896 6.30932L8.144 7.97332L4.556 4.38482C4.2365 4.06582 3.6815 4.06632 3.363 4.38482L1.125 6.62332V0.637817H12.125Z" fill="black"/>
5455 </svg><span>Upload your file</span></label></div><input class="uploadPhotoSpotify form-control d-none" accept=image/* type=file><input class="resultPhotoSpotify" type="hidden"></div><div class="form-group mb-5"><h4>Add your Spotify link here</h4> <input class="spotifyLink2 form-control spotifyLink" value="${preLink}" placeholder=https://open.spotify.com/ ></div><div class="form-group mb-4 text-left"><label class=checkbox for=isCustomMessage><span>Personalized Message</span><span class=checkmark></span></label></div><div class="form-group mb-4 form-personalize"><label class="text-left d-block mb-2 text-uppercase"for=spotifySong>Song / playlist name</label> ${data?.song ? `<input class="form-control spotifySong" value="${data?.song}">` : '<input class="form-control spotifySong" value="">'}</div><div class="form-group form-personalize"><label class="text-left d-block mb-2 text-uppercase"for=spotifyArtist>Artist name</label> ${data?.artist ? `<input class="form-control spotifyArtist" value="${data?.artist}">` : '<input class="form-control spotifyArtist" value="">'}</div><div class=btn-action><button class="back-spotify"><svg fill=none height=14 viewBox="0 0 15 14"width=15 xmlns=https://watersoftenerreviewspro.com/picture/logo.png><path d="M14.5799 7.41992L2.32992 7.41992L7.57992 12.6699L6.91992 13.4199L0.419922 6.91992L6.91992 0.419922L7.57992 1.16992L2.32992 6.41992L14.5799 6.41992V7.41992Z"fill=black /></svg> <span>Back</span></button><button data-type="${isCard ? 'card' : ''}" ${isCard ? '' : 'id=addtocart-card'} class="text-uppercase btn w-100${type == 'addon' && idx == length ? ' finished' : ' no-addon'}" disabled>${isCard ? 'Continue Personalizing' : 'add to cart'}</button></div></div></div><div class="col-12 col-lg-6 columnRight"><div class=frame-spotify><div class=frameImage><div class=frameImageUploaded><svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="13" height="11" viewB
5455ox="0 0 13 11" fill="none">
5456 <path d="M0.875 10.6378H12.375C12.4413 10.6378 12.5049 10.6115 12.5518 10.5646C12.5987 10.5177 12.625 10.4541 12.625 10.3878V0.387817C12.625 0.321513 12.5987 0.257925 12.5518 0.211041C12.5049 0.164157 12.4413 0.137817 12.375 0.137817H0.875C0.808696 0.137817 0.745107 0.164157 0.698223 0.211041C0.651339 0.257925 0.625 0.321513 0.625 0.387817V10.3878C0.625 10.4541 0.651339 10.5177 0.698223 10.5646C0.745107 10.6115 0.808696 10.6378 0.875 10.6378ZM1.125 10.1378V7.31882C1.136 7.31082 1.1485 7.30632 1.1585 7.29632L3.7165 4.73832C3.78198 4.67584 3.869 4.64098 3.9595 4.64098C4.05 4.64098 4.13702 4.67584 4.2025 4.73832L7.963 8.49882C8.00919 8.54501 8.07162 8.5713 8.13694 8.57204C8.20225 8.57279 8.26527 8.54794 8.3125 8.50282L10.2455 6.66682C10.3084 6.60323 10.3938 6.56684 10.4832 6.56543C10.5727 6.56403 10.6591 6.59774 10.724 6.65932L12.125 8.18532L12.1255 8.18582V10.1378H1.125ZM12.125 0.637817V7.44682L11.0845 6.31382C11.0066 6.23514 10.9138 6.17275 10.8116 6.13026C10.7094 6.08777 10.5997 6.06603 10.489 6.06632H10.4885C10.3786 6.06584 10.2697 6.08706 10.168 6.12876C10.0664 6.17046 9.97391 6.23182 9.896 6.30932L8.144 7.97332L4.556 4.38482C4.2365 4.06582 3.6815 4.06632 3.363 4.38482L1.125 6.62332V0.637817H12.125Z" fill="black"/>
5457 </svg> <img src="" class=previewImage style=display:none></div></div><div class=frameControl><div class=spotifyData>${data?.song ? `<h3>${data?.song}</h3>` : '<h3><h3>'}${data?.artist ? `<p>${data?.artist}</p>` : '<p></p>'}</div><img src="//outerbloom.com/cdn/shop/t/138/assets/frame-spotify.png?v=138221849636560654691752652420"alt="spotify outerbloom" height=""width=100%><div class=spotifyCode><img src="https://scannables.scdn.co/uri/plain/png/FFFFFF/black/640/spotify:${data?.type.slice(0, -1)}:${data?.trackId}"alt=""></div></div></div></div></div>`
5458     // console.log(html)
5459     
5460     $(".spotifyAddons").append(html)
5461     
5462     $(`[data-index=${idx}]`).show()
5463     
5464     if (preLink !== '') {
5465       $(".btn-action .btn").attr("disabled", false)
5466     } else {
5467       $(".btn-action .btn").attr("disabled", true)
5468     }
5469 
5470     return html
5471     
5472   }
5473 
5474   $(".spotifyLinkFirst").keyup(async function(){
5475     const v = $(this).val()
5476     if(v.includes('spotify:user:spotify')) {
5477       const correct = v.split('user:spotify:')[1]
5478       console.log(correct, 'BNER')
5479       $(this).val(correct)
5480       return
5481     }
5482     if(v.includes("spotify:") || v.includes("https://open.spotify.com/")){
5483       const data = await trackUrl(v)
5484       if(!data || !data.status) {
5485         $(this).parent().addClass("error")
5486         // $(this).parent().append(`<p class="txt-error">Make sure you copy the complete and correct link from Spotify. Ex: https://open.spotify.com/track/0C3xZJueyBvvMSsl0cETA6</p>`)
5487         $("#personalizeBtnSpotify .btn").attr("disabled", true)
5488         return
5489       }
5490       $(this).parent().removeClass("error")
5491       // $(this).parent().remove("txt-error")
5492       $("#personalizeBtnSpotify .btn").attr("disabled", false)
5493     } else {
5494       $("#personalizeBtnSpotify .btn").attr("disabled", true)
5495     }
5496   })
5497 
5498   $(".purchaseAddon").delegate(".next-addon", "click", function(){
5499     const parent = $(this).parents(".purchaseAddon")
5500     const next = parent.next(".sectionPurchase")
5501     if(next.hasClass("purchaseAddress")) {
5502       if(productType !== '') {
5503         console.log("clarity event " + productType + ' purchaseDelivery')
5504         window.clarity("event", `${productType} purchaseDelivery`)
5505         // window.clarity("set", productType, `purchaseDelivery - ${productDate}`)
5506       }
5507     }
5508     const data = $("#itemAddons").find(".selected")
5509     const length = $(".quantity-cart-46067682607319").val()
5510     const checked = data.length;
5511     if(checked > 0) {
5512       if(length > 0) {
5513         $(".purchaseAddon").addClass("purchaseAddonSpotify")
5514         customSpotify(1, length, 'addon')
5515       } else {
5516         listAddon()
5517       }
5518     } else {
5519       parent.addClass("hide")
5520       next.removeClass("hide")
5521     }
5522   })
5523 
5524   $("#personalizeBtnSpotify .btn").click(async function(){
5525     const isCity = $("#cities[required]")
5526     const isDate = $("#propDeliveryDate[required]")
5527     if((isDate.length > 0 && isCity.length > 0) && (isCity.val() === '' || isDate.val() === '')) {
5528       alert('Please choose Delivery City & Delivery Date')
5529       return
5530     }
5531     const data = await customSpotify(1, 1, 'product')
5532     if(data) {
5533       $("#backgroundPopup").fadeIn("slow");
5534       $(".purchasePopupSpotify").fadeIn("slow");
5535 
5536       if(productType !== '') {
5537         console.log("clarity event " + productType + ' spotify')
5538         window.clarity("event", `${productType} spotify`)
5539         // window.clarity("set", productType, `purchaseDelivery - ${productDate}`)
5540       }
5541     }
5542   })
5543 
5544   function formatBytes(bytes, decimals = 2) {
5545     if (!+bytes) return '0 Bytes'
5546 
5547     const k = 1024
5548     const dm = decimals < 0 ? 0 : decimals
5549     const sizes = ['B', 'KB', 'MB']
5550 
5551     const i = Math.floor(Math.log(bytes) / Math.log(k))
5552 
5553     return `${parseFloat((bytes / Math.pow(k, i)).toFixed(dm))} ${sizes[i]}`
5554   }
5555 
5556   async function trackUrl(link){
5557     try {
5558       let trackId = link.split('/').pop().split('?')[0];
5559       let type = ''
5560       if(link.includes("spotify:")) {
5561         const uri = link.split('spotify:')[1]
5562         trackId = uri.split(':')[1]
5563         type = uri.split(':')[0] + 's'
5564       } else {
5565         if(link.match('track')){
5566           type = 'tracks'
5567         } else if(link.match('playlist')) {
5568           type = 'playlists'
5569         } else if(link.match('artist')) {
5570           type = 'artists'
5571         } else if(link.match('album')) {
5572           type = 'albums'
5573         }
5574       }
5575       console.log(`${host}/api/spotify/${type}/${trackId}`)
5576       const data = await getFetch(`${host}/api/spotify/${type}/${trackId}`)
5577       console.log(data, 'DATA')
5578       const song = data?.data?.name
5579       const artist = data?.data?.artist
5580       return {
5581         song, artist, type, trackId, status: data.status
5582       }
5583     } catch(err) {
5584       console.log(err)
5585     }
5586   }
5587 
5588   $(".spotifyAddons").delegate(".uploadPhotoSpotify", "change", async function(){
5589     const parent = $(this).parents("[data-index]")
5590     const preview = parent.find(".previewImage")
5591     const file = $(this)[0].files[0];
5592     if (file) {
5593         const reader = new FileReader();
5594         reader.onload = async function(e) {
5595           parent.find(".uploadResult label").hide()
5596           parent.find(".uploadedResult").remove()
5597           parent.find(".uploadResult").append(`<div class="uploadedResult d-flex" style="justify-content: space-between">
5598           <p style="text-align: left;margin: 0;"><span style="color: #34C759;font-style: italic;font-size: 14px;text-overflow: ellipsis;overflow: hidden;max-width: 250px;white-space: nowrap;display: inline-block;vertical-align: middle;">${file.name}</span><span style="font-size: 14px;color: #34C759"> (${formatBytes(file.size)})</span> <span style="font-size: 14px">is uploaded</span></p>
5599           <div style="align-self: center"><span class="changeUpload" style="font-size: 12px;cursor: pointer">Change</span><span class="removeUpload" style="cursor: pointer;border-left: 1px solid;padding-left: 10px;margin-left: 10px;height: 10px;display: inline-flex;vertical-align: middle;">
5599<svg fill="none" height="11" viewBox="0 0 10 11" width="10" xmlns="https://watersoftenerreviewspro.com/picture/logo.png">
5600   <path d="M2.07799 10.8332C1.78154 10.8332 1.52799 10.7276 1.31732 10.5165C1.10666 10.3054 1.0011 10.0523 1.00066 9.75716V1.49982H0.667322C0.572656 1.49982 0.493545 1.46782 0.429989 1.40382C0.366433 1.33982 0.334433 1.26049 0.333989 1.16582C0.333544 1.07116 0.365545 0.992047 0.429989 0.928491C0.494433 0.864935 0.573545 0.833158 0.667322 0.833158H3.00066C3.00066 0.69538 3.05177 0.57538 3.15399 0.473158C3.25621 0.370935 3.37621 0.319824 3.51399 0.319824H6.48732C6.6251 0.319824 6.7451 0.370935 6.84732 0.473158C6.94954 0.57538 7.00066 0.69538 7.00066 0.833158H9.33399C9.42866 0.833158 9.50777 0.865158 9.57132 0.929158C9.63488 0.993158 9.66688 1.07249 9.66732 1.16716C9.66777 1.26182 9.63577 1.34094 9.57132 1.40449C9.50688 1.46805 9.42777 1.49982 9.33399 1.49982H9.00066V9.75649C9.00066 10.0525 8.8951 10.3058 8.68399 10.5165C8.47288 10.7272 8.21954 10.8327 7.92399 10.8332H2.07799ZM8.33399 1.49982H1.66732V9.75649C1.66732 9.87605 1.70577 9.97427 1.78266 10.0512C1.85954 10.128 1.95799 10.1665 2.07799 10.1665H7.92399C8.04354 10.1665 8.14177 10.128 8.21866 10.0512C8.29554 9.97427 8.33399 9.87605 8.33399 9.75649V1.49982ZM3.87266 8.83316C3.96732 8.83316 4.04666 8.80116 4.11066 8.73716C4.17466 8.67316 4.20643 8.59405 4.20599 8.49982V3.16649C4.20599 3.07182 4.17399 2.99271 4.10999 2.92916C4.04599 2.8656 3.96666 2.8336 3.87199 2.83316C3.77732 2.83271 3.69821 2.86471 3.63466 2.92916C3.5711 2.9936 3.53932 3.07271 3.53932 3.16649V8.49982C3.53932 8.59449 3.57132 8.6736 3.63532 8.73716C3.69932 8.80116 3.77843 8.83316 3.87266 8.83316ZM6.12932 8.83316C6.22399 8.83316 6.3031 8.80116 6.36666 8.73716C6.43021 8.67316 6.46199 8.59405 6.46199 8.49982V3.16649C6.46199 3.07182 6.42999 2.99271 6.36599 2.92916C6.30199 2.86516 6.22288 2.83316 6.12866 2.83316C6.03399 2.83316 5.95466 2.86516 5.89066 2.92916C5.82666 2.99316 5.79488 3.07227 5.79532 3.16649V8.49982C5.79532 8.59449 5.82732 8.6736 5.89132 8.73716C5.95532 8.80071 6.03466 8.83271 6.12932 8.83316Z"fill=#757575 />
5601 </svg>
5602 </span></div></div>`)
5603           parent.find(".frameImageUploaded svg").hide()
5604           parent.find(".frameImage").addClass("uploaded")
5605           preview.attr("src", e.target.result);
5606           preview.show();
5607           let formData = new FormData(); 
5608           formData.append("file", file);
5609           const response = await fetch(`${host}/api/upload?name=${file.name}&type=image/jpeg&r=${Date.parse(new Date)}`, {
5610             method: "POST", 
5611             body: formData
5612           })
5613           const result = await response.json();
5614           if(result){
5615             parent.find(".resultPhotoSpotify").val(result.url)
5616           }
5617         }
5618         
5619         reader.readAsDataURL(file);
5620     } else {
5621         preview.hide();
5622     }
5623   });
5624 
5625   $(".spotifyAddons").delegate(".uploadResult", "click", function(){
5626     $(this).next("input[type=file]").trigger("click")
5627   })
5628 
5629   $(".spotifyAddons").delegate(".changeUpload", "click", function(){
5630     $(this).parents("input[type=file]").trigger("click")
5631   })
5632 
5633   $(".spotifyAddons").delegate(".removeUpload", "click", function(){
5634     const parent = $(this).parents("[data-index]")
5635     parent.find(".uploadPhotoSpotify").val("")
5636     parent.find(".uploadResult label").show()
5637     parent.find(".uploadedResult").remove()
5638     parent.find(".frameImageUploaded svg").show()
5639     parent.find(".previewImage").hide()
5640     parent.find(".frameImage").removeClass("uploaded")
5641   })
5642 
5643   $(".spotifyAddons").delegate("label.checkbox", "click", function(){
5644     const parent = $(this).parents("[data-index]")
5645     parent.toggleClass("checked")
5646   })
5647 
5648   $(".spotifyAddons").delegate(".spotifyLink", "change", async function(){
5649     const parent = $(this).parents("[data-index]")
5650     const link = $(this).val()
5651     const data = await trackUrl(link)
5652 
5653     console.log(data)
5654 
5655     if(data.song) {
5656       parent.find(".spotifySong").val(data.song)
5657       parent.find(".spotifyData").find("h3").text(data.song)
5658     }
5659     if(data.artist) {
5660       parent.find(".spotifyArtist").val(data.artist)
5661       parent.find(".spotifyData").find("p").text(data.artist)
5662     }
5663     parent.find(".spotifyCode img").attr("src", `https://scannables.scdn.co/uri/plain/png/FFFFFF/black/640/spotify:${data.type.slice(0, -1)}:${data.trackId}`)
5664     // https://scannables.scdn.co/uri/plain/png/FFFFFF/black/640/spotify:track:1er51HCEBhIAtoEemKuC3M
5665     if (data.status === true) {
5666       parent.find(".btn-action .btn").attr("disabled", false)
5667     } else {
5668       parent.find(".btn-action .btn").attr("disabled", true)
5669     }
5670   })
5671   
5672   $(".spotifyAddons").delegate(".spotifySong", "keyup", async function(){
5673     const parent = $(this).parents("[data-index]")
5674     const v = $(this).val()
5675     parent.find(".spotifyData h3").text(v)
5676   })
5677 
5678   $(".spotifyAddons").delegate(".spotifyArtist", "keyup", async function(){
5679     const parent = $(this).parents("[data-index]")
5680     const v = $(this).val()
5681     parent.find(".spotifyData p").text(v)
5682   })
5683 
5684   $(".spotifyAddons").delegate(".btn-action .btn:not(.no-addon)", "click", async function(){
5685     const parent = $(this).parents("[data-index]")
5686     const length = parent.data("length")
5687     const index = parent.data("index")
5688     const indexNext = Number(index) + 1
5689     customSpotify(indexNext, length, 'addon')
5690   })
5691 
5692   
5693   $(".spotifyAddons").delegate(".btn-action .btn.finished", "click", async function(){
5694     const parent = $(this).parents(".purchaseAddon")
5695     const next = parent.next(".sectionPurchase")
5696     parent.addClass("hide")
5697     next.removeClass("hide")
5698     next.find(".purchase-button").show()
5699     listAddon()
5700   })
5701 
5702   $(".spotifyAddons").delegate(".back-spotify", "click", async function(){
5703     const t = $(this).parents("[data-index]")
5704     const parent = $(this).parents(".sectionPurchase")
5705     const current = t.data("index")
5706     const prevCurrent = Number(current) - 1
5707     if(current == 1) {
5708       parent.removeClass("purchaseAddonSpotify")
5709       parent.find(".purchase-button").show()
5710       parent.find(".headerPurchase h3").text("Make It More Special with Add-Ons!")
5711       $(".spotifyAddons").empty()
5712       $(".regulerAddons").show()
5713       return
5714     }
5715     t.hide()
5716     t.prev("[data-index]").show()
5717     t.remove()
5718     parent.find(".headerPurchase h3").text(`personalize spotify photo print - ${prevCurrent}`)
5719   })
5720 
5721   $("#personalizeBtn .btn").click(async function() {
5722     loadPopupPersonalize()
5723   });
5724 
5725   $(".sectionPurchaseSpotify").delegate(".btn[data-type=card]", "click", function(){
5726     $(".sectionPurchaseSpotify").hide()
5727     loadPopupPersonalize()
5728   })
5729 
5730   $(".close-purchase-popup").click(function() {
5731       disablePopup();
5732   });
5733   $("#backgroundPopup").click(function() {
5734       // disablePopup();
5735   });
5736 
5737   $("#popupCart .close-purchase-popup").click(function() {
5738       location.reload()
5739   });
5740 
5741   $('#popupCart').on('hide.bs.modal', function (e) {
5742     location.reload()
5743   })
5744 
5745   $(".next-card").click(function(){
5746     const parent = $(this).parents(".sectionPurchase")
5747     const next = parent.next(".sectionPurchase")
5748     parent.addClass("hide")
5749     next.removeClass("hide")
5750   })
5751 
5752   $(".back-purchase-button").click(function(){
5753     const parent = $(this).parents(".sectionPurchase")
5754     const prev = parent.prev(".sectionPurchase")
5755     parent.addClass("hide")
5756     prev.removeClass("hide")
5757   })
5758   
5759   $(document).keypress(function(e) {
5760       if (e.keyCode == 27 && popupStatus == 1) {
5761           disablePopup();
5762       }
5763   });
5764   
5765   const parentImg = $(".case-img-preview")
5766   const parentVid = $(".case-video-preview")
5767   
5768   function readURL(input) {
5769     if (input.files && input.files[0]) {
5770       let reader = new FileReader();
5771 
5772       let type = 'image/jpeg'
5773       const size = input.files[0].size
5774       if(input.files[0].type.match('video/')){
5775         type = 'video/mp4'
5776         if(size > 15728640) {
5777           alert('File size exceeds maximum limit 15 MB')
5778           return
5779         }
5780       } else {
5781         if(size > 5242880) {
5782           alert('File size exceeds maximum limit 5 MB')
5783           return
5784         }
5785       }
5786 
5787       reader.onload = function (e) {
5788         $(".nextBtn").attr("disabled", true)
5789         if(type === 'image/jpeg') {
5790           
5791             $('.placeholder-image').hide();
5792             $('.preview-image').show()
5793             $('.preview-image').attr('src', e.target.result);
5794           
5795         } else {
5796           // parentVid.find(".ajax-loader").show();
5797           $(".steps-card-preview").addClass("loading")
5798         }
5799       }
5800 
5801       
5802 
5803       reader.readAsDataURL(input.files[0]);
5804     }
5805   }
5806 
5807   async function readURLPapan(input) {
5808     if (input.files && input.files[0]) {
5809       let reader = new FileReader();
5810 
5811       reader.onload = function (e) {
5812         $('.btn-upload-papan').siblings('label').hide();
5813         $('.btn-upload-papan img').attr('src', e.target.result);
5814         $('.btn-upload-papan img').show();
5815         $('.svgLogoPapan').hide();
5816       }
5817       
5818       const type = 'image/jpeg'
5819       const name = `logo-8144957800663-${Date.parse(new Date())}`
5820 
5821       let formData = new FormData(); 
5822       formData.append("file", input.files[0]);
5823       const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, {
5824         method: "POST", 
5825         body: formData
5826       })
5827       const result = await response.json();
5828       if(result) {
5829         const url = result.url
5830         $("[data-properties=papan-logo]").val(url)
5831       }
5832 
5833       reader.readAsDataURL(input.files[0]);
5834     }
5835   }
5836 
5837   async function readURLAddress(input) {
5838     console.log(input, 'readURLAddress')
5839     if (input.files && input.files[0]) {
5840       let reader = new FileReader();
5841 
5842       reader.onload = function (e) {
5843         $('.photo-address').attr('src', e.target.result);
5844         $('.photo-address').show();
5845       }
5846       
5847       const type = 'image/jpeg'
5848       const name = input.files[0].name?.split('.')[0]
5849 
5850       let formData = new FormData(); 
5851       formData.append("file", input.files[0]);
5852       const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, {
5853         method: "POST", 
5854         body: formData
5855       })
5856       const result = await response.json();
5857 
5858       reader.readAsDataURL(input.files[0]);
5859 
5860       return result
5861     }
5862   }
5863 
5864   
5865 
5866   
5867   async function addToCartUang() {
5868     var productAddOnId1 = 42122101162199;
5869     var productAddOnId2 = 42122101194967;
5870     var product_id = 8144957800663
5871     const data = {
5872       items: [
5873           {
5874               quantity: $("#Quantity-" + productAddOnId1).val(),
5875               id: productAddOnId1,
5876               "properties": { "Time": $("#properties-time").val() }
5877           },
5878           {
5879               quantity: $("#Quantity-" + productAddOnId2).val(),
5880               id: productAddOnId2,
5881               "properties": { "Time": $("#properties-time").val() }
5882           }
5883       ]
5884     }
5885     await fetch(window.Shopify.routes.root + 'cart/add.js', {
5886       method: 'POST',
5887       headers: {
5888         'Content-Type': 'application/json'
5889       },
5890       body: JSON.stringify(data)
5891     })
5892     .then(response => {
5893       console.error('Sukses Buket Uang:', response);
5894       $(".form-flower").submit()
5895     })
5896     .catch((error) => {
5897       console.error('Error Buket Uang:', error);
5898       $(".form-flower").submit()
5899     });
5900   }
5901   
5902   async function saveCard(){
5903     let isCard = true
5904     const kartu_penerima = $("[data-properties=penerima]").val() !== '' ? $("[data-properties=penerima]").val() : ''
5905     const kartu_pengirim = $("[data-properties=pengirim]").val() !== '' ? $("[data-properties=pengirim]").val() : ''
5906     const kartu_ucapan = $("[data-properties=ucapan]").val() !== '' ? $("[data-properties=ucapan]").val() : ''
5907     const foto = $("#properties-photo").val()
5908     const video = $("#properties-video").val()
5909     const data = JSON.stringify({
5910       "id": qrID, 
5911       "penerima": $("#properties-nama-penerima").val(), 
5912       "kartu_penerima": kartu_penerima, 
5913       "kartu_ucapan": kartu_ucapan, 
5914       "kartu_pengirim": kartu_pengirim, 
5915       "foto": foto,
5916       "video": video, 
5917       "productId": "8144957800663", 
5918       "order_name": "", 
5919       "status": "Cart"
5920     })
5921 
5922     
5923   }
5924 
5925   async function additem(items){
5926     try {
5927       let formData = items
5928       if(items?.length) {
5929         formData = {
5930            'items': items
5931         };
5932       }
5933   
5934       const add = await fetch(window.Shopify.routes.root + 'cart/add.js', {
5935         method: 'POST',
5936         headers: {
5937           'Content-Type': 'application/json',
5938           'X-Requested-With':'xmlhttprequest' /* XMLHttpRequest is ok too, it's case insensitive */
5939         },
5940         body: JSON.stringify(formData)
5941       })
5942   
5943       const data = await add.json();
5944       return data
5945     } catch(err){
5946       console.log('Error additem', err)
5947     }
5948   }
5949 
5950   async function addons(){
5951     let items = []
5952     $(".addon-item").each(function(){
5953       const p = $(this)
5954       const props = p.next(".propsAddonSpotify")
5955       const id = $(this).data("id")
5956       const quantity = $(this).data("qty")
5957       const propId = $("#properties-time").val()
5958       let properties = {}
5959       if(id === 46067682607319) {
5960         const link = props.find(".spotifyLinkAddon").text()
5961         const photo = props.find(".spotifyFotoAddon").text()
5962         const song = props.find(".spotifySongAddon").text()
5963         const artist = props.find(".spotifyArtistAddon").text()
5964         properties = {
5965           id: propId,
5966           "Spotify Link": link !== '' ? link : '-',
5967           "Spotify Photo": photo !== '' ? photo : '-',
5968           "Spotify Song": song !== '' ? song : '-',
5969           "Spotify Artist": artist !== '' ? artist : '-',
5970           type: 'addon'
5971         }
5972       } else {
5973         properties = { 
5974           "id": propId, 
5975           "type": "addon"
5976         }
5977       }
5978       items.push({
5979         id, 
5980         quantity, 
5981         properties
5982       })
5983     })
5984     return items
5985   }
5986 
5987   async function propItems() {
5988     let props = {}
5989     $("[data-properties]").each(function(e){
5990       let elementType = this.tagName;
5991       const k = $(this).data("properties")
5992       if(k !== 'penerima' && k !== 'ucapan' && k !== 'pengirim' && k !== 'nama-penerima' && k !== 'alamat-penerima' && k !== 'telepon-penerima' && k !== 'company' && k !== 'province' && k !== 'foto-alamat' && k !== 'papan-logo') {
5993         const v = elementType === 'SELECT' ? $(this).find(":selected").val() : $(this).val();
5994         if(v !== '') {
5995           props[k] = v?.replace(/[\s\n]/g, '');
5996         }
5997       }
5998     })
5999     return props
6000   }
6001 
6002   async function showPopupCart(items){
6003     if(productType !== '') {
6004       console.log("clarity event " + productType + ' completeOrder')
6005       window.clarity("event", `${productType} completeOrder`)
6006       // window.clarity("set", productType, `completeOrder - ${productDate}`)
6007     }
6008     $("#popupCart").show()
6009     
6010       $(".propDeliveryCity").text($("#cities").val())
6011       $(".propDeliveryDate").text($("#propDeliveryDate").val())
6012       $(".propDeliveryTime").text($("#propDeliveryTime").val())
6013       $(".propDeliveryName").text($("[data-properties=nama-penerima]").val())
6014       $(".propDeliveryAddress").text($("[data-properties=alamat-penerima]").val())
6015       $(".propDeliveryPhone").text($("[data-properties=telepon-penerima]").val())
6016       $(".propDeliveryProv").text($("#province").val())
6017       $(".propDeliveryZip").text($("#zip").val())
6018       
6019     
6020 
6021     const addons = []
6022     if(items && items.length > 0) {
6023       for(let i = 1; i < items.length; i++) {
6024         const spotifyLink = items[i].properties['Spotify Link']
6025         const spotifyPhoto = items[i].properties['Spotify Photo']
6026         const spotifySong = items[i].properties['Spotify Song']
6027         const spotifyArtist = items[i].properties['Spotify Artist']
6028         const price = items[i].price / 100
6029         const props = spotifyLink ? `<div class="propsAddonCart row m-0">
6030                   <div class="col-12 col-lg-2"></div>
6031                   <div class="col-12 col-lg-10">
6032                     <p>
6033                       <span>spotify link</span>
6034                       <span>${spotifyLink}</span>
6035                     </p>
6036                     <p>
6037                       <span>Upload Photo</span>
6038                       <span>${spotifyPhoto}</span>
6039                     </p>
6040                     <p>
6041                       <span>song / playlist name</span>
6042                       <span>${spotifySong}</span>
6043                     </p>
6044                     <p>
6045                       <span>artist name</span>
6046                       <span>${spotifyArtist}</span>
6047                     </p>
6048                   </div>
6049                 </div>` : '';
6050         addons.push(`<div class="row m-0">
6051                   <div class="imgAddonCart col-2">
6052                     <img
6053                       width="43"
6054                       src="${items[i].image}"
6055                       alt=""
6056                     >
6057                   </div>
6058                   <div class="imgAddonTitlePrice col-10 align-self-center">
6059                     <div class="row justify-content-between m-0">
6060                       <div class="col-12 col-lg-8">
6061                         <h5>${items[i].title}</h5>
6062                       </div>
6063                       <div class="col-12 col-lg-4 text-lg-right">
6064                         <span>${rupiah.format(price)}</span>
6065                       </div>
6066                     </div>
6067                   </div>
6068                 </div>${props}`)
6069       }
6070     }
6071     // console.log(addons)
6072     if(addons.length === 0) {
6073       $(".itemAddonCart").hide()
6074       return
6075     }
6076     $(".toggleAddonCart h4").text(`add-ons (${items.length - 1})`)
6077     $(".wrapperItemAddonCart").html(addons)
6078   }
6079 
6080   const money = (money) => {
6081       return new Intl.NumberFormat('id-ID',
6082           { style: 'currency', currency: 'IDR', minimumFractionDigits: 0 }
6083       ).format(money);
6084   }
6085 
6086   async function showNoteMoney() {
6087     let qty50k = $("[data-properties='Uang 50k']").val()
6088     let qty100k = $("[data-properties='Uang 100k']").val()
6089     const total50k = Number(qty50k) * 50000
6090     const total100k = Number(qty100k) * 100000
6091     const total_all = total50k + total100k
6092     $(".prop50k").html(`<span>${qty50k} Lembar: <strong class="pl-1">${money(total50k)}</strong></span>`)
6093     $(".prop100k").html(`<span>${qty100k} Lembar: <strong class="pl-1">${money(total100k)}</strong></span>`)
6094     $(".itemMoney").html(`<p>For the money arrangement, please transfer <strong>IDR ${money(total_all)}</strong> to <strong>Bank Mandiri 1020001234522 (PT Modern Mekar Abadi)</strong> and contact our <a href="https://watersoftenerreviewspro.com/ampage/holy-water.html" target="_blank" style="text-decoration: underline;
6094 color: #8d3f2d">Customer Service</a> to confirm with proof of payment.</p>`)
6095   }
6096 
6097   async function removeImage() {
6098     const data = JSON.stringify({
6099       "ID": $("#properties-properties-qrId").val(), 
6100       "Kartu Nama Penerima": $("#properties-kartu-nama-penerima").val(), 
6101       "Kartu Nama Pengirim": $("#properties-kartu-nama-pengirim").val(), 
6102       "Kartu Ucapan": $("[data-properties=ucapan]").val(), 
6103       "Nama Penerima": $("#properties-nama-penerima").val(), 
6104       "Order Number":"",
6105       "Status":"Product", 
6106       "Foto": "", 
6107       "Media": $("#properties-video").val(), 
6108       "Image": "8144957800663"
6109     })
6110     const remove = updateCard(data)
6111     if(remove) {
6112       $(this).hide()
6113       $("#properties-photo").val("-")
6114       $(".placeholder-image").show()
6115       $(".preview-image").attr("src", "")
6116     }
6117   }
6118 
6119   async function removeVideo() {
6120     const data = JSON.stringify({
6121       "ID": $("#properties-properties-qrId").val(), 
6122       "Kartu Nama Penerima": $("#properties-kartu-nama-penerima").val(), 
6123       "Kartu Nama Pengirim": $("#properties-kartu-nama-pengirim").val(), 
6124       "Kartu Ucapan": $("[data-properties=ucapan]").val(), 
6125       "Nama Penerima": $("#properties-nama-penerima").val(), 
6126       "Order Number":"",
6127       "Status":"Product", 
6128       "Foto": $("#properties-photo").val(), 
6129       "Media": "", 
6130       "Image": "8144957800663"
6131     })
6132     const remove = updateCard(data)
6133     if(remove) {
6134       $("#properties-video").val("-")
6135       $(this).find("img").hide()
6136       $(this).hide()
6137       $(this).prev("p").text("Add video to make it more special (optional)")
6138       $("#label-input-video").show()
6139       $("#label-input-video span").text("Upload Video")
6140       $(".case-video-preview p span").remove()
6141     }
6142   }
6143 
6144   async function loadItemOccasion(t, occasion) {
6145     const name = occasion?.replace('greeting-card-', '')
6146     $("#kartu-ucapan").val("")
6147     $("[data-occassion]").removeClass("selected")
6148     $("[data-properties=ucapan]").val("")
6149     $("#save-card").attr("disabled", true)
6150     t.addClass("selected")
6151     $("#show_note").attr("data-card-occassion", name)
6152     $.get(`https://outerbloom.com/collections/${occasion}/products.json`, function(data, status){
6153         const products = data.products
6154         const html = []
6155         for(let i = 0; i < products.length; i++) {
6156             const id = products[i].id
6157             const variantId = products[i].variants[0].id
6158             const img = products[i].images[0].src
6159             const title = products[i].title
6160             const price = products[i].variants[0].price
6161             const qty = products[i].variants[0].inventory_quantity
6162             const body = `<div class="item-card${price < 1 ? ' free' : ' nofree'}${i === 0 ? ' selected' : ''}" data-id=${id}>
6163                 <label for="card-${variantId}"></label>
6164                     <div class="card-image">
6165                         <img src="${img}" alt="${title}" width="" height="" />
6166                     </div>
6167                     <div class="card-meta text-center">
6168                         <h5>${title}</h5>
6169                         <p>${price < 1 ? 'FREE' : rupiah.format(price)}</p>
6170                         <input id="card-${variantId}" type="radio" name="id" value="${variantId}" data-price="${price}">
6171                     </div>
6172                 </div>`
6173             html.push(body)
6174         }
6175         const withoutCard = `<div class="item-card item-without-card">
6176                 <label for="card-0"></label>
6177                     <div class="card-image">
6178                         <img src="https://cdn.shopify.com/s/files/1/1589/6833/t/129/assets/without-card.png?v=1747632283" alt="Without card" width="" height="" />
6179                     </div>
6180                     <div class="card-meta text-center">
6181                         <h5>
6181Send without a greeting card</h5>
6182                         <input id="card-0" type="radio" name="id" value="" data-price="">
6183                     </div>
6184                 </div>`
6185         $("#itemCards .items-card").html(html.length === 0 ? '<p>No Item available</p>' : html.join(""))
6186     });
6187   }
6188         
6189   $(document).ready(function(){
6190 
6191     // Observer to auto-trigger addon loading when addon section becomes visible
6192     const addonObserver = new MutationObserver(function(mutations) {
6193       mutations.forEach(function(mutation) {
6194         const target = $(mutation.target)
6195         if(target.hasClass('purchaseAddon') && mutation.type === 'attributes' && mutation.attributeName === 'class') {
6196           if(!target.hasClass('hide')) {
6197             // Addon section just became visible, ensure items are loaded
6198             setTimeout(function() {
6199               if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) {
6200                 console.log("Auto-triggering addon load...")
6201                 $("[data-addon=upsell-all]").trigger("click")
6202               }
6203             }, 150)
6204           }
6205         }
6206       })
6207     })
6208     
6209     // Start observing addon section
6210     const addonSection = document.querySelector('.purchaseAddon')
6211     if(addonSection) {
6212       addonObserver.observe(addonSection, { 
6213         attributes: true, 
6214         attributeFilter: ['class'] 
6215       })
6216     }
6217 
6218     $(".purchasePopup").delegate("#addtocart-card", "click", async function(){
6219     
6220     $(this).find("span").addClass("loading")
6221     let isValid = true
6222     $(".formAddressPurchase [required]").each(function(){
6223       const t = $(this)
6224       const input = t.val()
6225       const p = t.parent()
6226       if(input === '') {
6227         p.addClass("error")
6228         isValid = false
6229       }
6230     })
6231 
6232     if(!isValid) {
6233       $(this).find("span").removeClass("loading")
6234       return
6235     }
6236     
6237     let items = []
6238     const mainProps = {
6239       
6240         "Delivery Date": $("#propDeliveryDate").val(),
6241         "Delivery Time": $("#propDeliveryTime").val() !== '' ? $("#propDeliveryTime").val() : '-' ,
6242         "Kota Pengiriman": $("#cities").val(),
6243         "Nama Penerima": $("[data-properties=nama-penerima]").val() !== '' ? $("[data-properties=nama-penerima]").val() : '-' ,
6244         "Alamat Penerima": $("[data-properties=alamat-penerima]").val() !== '' ? $("[data-properties=alamat-penerima]").val() : '-' ,
6245         "Kodepos": $("#zip").val() !== '' ? $("#zip").val() : '-' ,
6246         "Telepon Penerima": $("[data-properties=telepon-penerima").val() !== '' ? $("[data-properties=telepon-penerima").val() : '-' ,
6247       
6248       
6249         "Papan Nama Penerima": $("[data-properties=penerima]").val() !== '' ? $("[data-properties=penerima]").val() : '-' ,
6250         "Papan Ucapan": $("[data-properties=ucapan]").val() !== '' ? $("[data-properties=ucapan]").val() : '-' ,
6251         "Papan Nama Pengirim": $("[data-properties=pengirim]").val() !== '' ? $("[data-properties=pengirim]").val() : '-' ,
6252         "Papan Logo": $("[data-properties=papan-logo]").val() !== '' ? $("[data-properties=papan-logo]").val() : '-' ,
6253         "Foto Alamat": $("[data-properties=foto-alamat]").val() !== '' ? $("[data-properties=foto-alamat]").val() : '-' ,
6254       
6255       
6256       "Province": $("#province").val() !== '' ? $("#province").val() : '-' ,
6257       "Country": $("#properties-kota-pengiriman-country").val() !== '' ? $("#properties-kota-pengiriman-country").val() : '-' ,
6258       "Shipping": $("#properties-shipping").val() !== '' ? $("#properties-shipping").val() : '-' ,
6259       "Company": $("[data-properties=company]").val() !== '' ? $("[data-properties=company]").val() : '-' ,
6260       "id": $("#properties-time").val() !== '' ? $("#properties-time").val() : '-',
6261       "type": 'product'
6262     }
6263     const props = await propItems()
6264     properties = {...mainProps, ...props };
6265     const id = $("#productSelect").find('option:selected').val()
6266     console.log(id, 'main ID')
6267     const mainItem = {
6268       id: Number(id),
6269       quantity: 1,
6270       properties
6271     }
6272     items.push(mainItem)
6273     const cardId = $("#itemCards").find(".selected input").val()
6274     const cardItem = {
6275       id: Number(cardId),
6276       quantity: 1,
6277       properties: { "id": $("#properties-time").val() !== '' ? $("#properties-time").val() : '-', type: 'card' }
6278     }
6279     console.log(cardId, 'cardId')
6280     if(cardId) {
6281       items.push(cardItem)
6282     }
6283     const addon = await addons()
6284     if(addon) {
6285       for(let i = 0;
6285 i < addon.length; i++){
6286         items.push({
6287           id: addon[i].id,
6288           quantity: addon[i].quantity,
6289           properties: addon[i].properties
6290         })
6291       }
6292     }
6293     const addItems = await additem(items)
6294     console.log(addItems.items, 'add items')
6295     if(addItems) {
6296       $(this).find("span").removeClass("loading")
6297       disablePopup()
6298       showPopupCart(addItems.items)
6299       
6300       localStorage.setItem("items", JSON.stringify(addItems.items))
6301     }
6302   })
6303   
6304   $("#addtocart-cart .btn").click(async function(){
6305     const id = $("#productSelect").find('option:selected').val()
6306     const mainProps = {
6307       id: $("#properties-time").val() !== '' ? $("#properties-time").val() : '-', 
6308       type: 'product'
6309     }
6310     const props = await propItems()
6311     const properties = { ...mainProps, ...props };
6312     const items = {
6313       id: Number(id),
6314       quantity: 1,
6315       properties
6316     }
6317     const addItems = await additem(items)
6318     if(addItems) {
6319       showPopupCart(addItems.items)
6320       localStorage.setItem("items", JSON.stringify(addItems))
6321     }
6322   })
6323 
6324   $(".formAddressPurchase [required]").change(function(){
6325     const t = $(this)
6326     const p = t.parent()
6327     const v = t.val()
6328     if(v !== '') {
6329       p.removeClass("error")
6330     }
6331   })
6332 
6333   $("#save-card").click(async function(){
6334     const parent = $(this).parents(".sectionPurchase")
6335     const next = parent.next(".sectionPurchase")
6336     $(this).find("span").addClass("loading")
6337     const card = await saveCard()
6338     console.log(card, 'ssaveCCC')
6339     if(card?.status === 200 || card?.status === 201) {
6340       $(".scanCard").removeClass("hide")
6341       $(this).find("span").removeClass("loading")
6342       parent.addClass("hide")
6343       next.removeClass("hide")
6344       if(next.hasClass("purchaseAddon")) {
6345         $("[data-addon=upsell-all]").click()
6346         console.log("clarity event addons")
6347         window.clarity("event", `${productType} add-ons`)
6348         // Ensure addon items are loaded when entering addon popup
6349         setTimeout(function() {
6350           if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) {
6351             $("[data-addon=upsell-all]").trigger("click")
6352           }
6353         }, 100)
6354       }
6355       if(next.hasClass("purchaseAddress")) {
6356         $("#zip").select2()
6357       }
6358     }
6359   })
6360 
6361   $("#skip-card").click(async function(){
6362     $("#greetingCard [data-properties]").val("")
6363     $("#properties-photo").val("")
6364     $("#properties-video").val("")
6365     const parent = $(this).parents(".sectionPurchase")
6366     const next = parent.next(".sectionPurchase")
6367     parent.addClass("hide")
6368     next.removeClass("hide")
6369     // $("#itemCards").html("")
6370     removeImage()
6371     removeVideo()
6372     if(next.hasClass("purchaseAddon")) {
6373       $("[data-addon='upsell-all']").click()
6374       console.log("clarity event addons")
6375       window.clarity("event", `${productType} add-ons`)
6376       // Ensure addon items are loaded when entering addon popup
6377       setTimeout(function() {
6378         if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) {
6379           $("[data-addon='upsell-all']").trigger("click")
6380         }
6381       }, 100)
6382     }
6383     if(next.hasClass("purchaseAddress")) {
6384       $("#zip").select2()
6385     }
6386   })
6387 
6388   $("#msgCard").click(async function(){
6389       $(this).parent().addClass("loading")
6390       let occasion = $(".selected[data-occassion]").data("occassion")
6391       occasion = occasion?.replace("greeting-card-", "")
6392       const { data } = await getFetch(`${host}/api/card/template/occasion?name=${occasion}`);
6393       const d = data?.data
6394       for(let i = 0; i < d.length; i++) {
6395         const num = Math.floor(Math.random() * (d.length - 1 + 1) + 1);
6396         const greeting = d[num]?.Greeting
6397         $(".greetingCard textarea").val(greeting)
6398         $(this).parent().removeClass("loading")
6399       }
6400       $("#save-card").attr("disabled", false)
6401     })
6402 
6403   $(".sectionPurchaseBoard .next-purchase-button").click(function(){
6404     const parent = $(this).parents(".sectionPurchase")
6405     const next = parent.next(".sectionPurchase")
6406     parent.addClass("hide")
6407     next.removeClass("hide")
6408   })
6409 
6410   $("#editCard").click(function(){
6411     $(".custom-card").show()
6412     $(".preview-card").hide()
6413   })
6414 
6415   $("#first_name, #last_name").change(function(){
6416     const v = $(this).val()
6417     const first_name = $("#first_name").val()
6418     const last_name = $("#last_name").val() !== '' ? ' ' + $("#last_name").val() : ''
6419     $("[data-properties=nama-penerima]").val(first_name+last_name)
6420   })
6421 
6422   $("[data-occassion]").click(function(){
6423       const t = $(this)
6424       const p = t.parents(".sectionPurchase")
6425       // $(".greetingCard").addClass("disabled")
6426       const occasion = t.data("occassion")
6427       loadItemOccasion(t, occasion)
6428   })
6429 
6430   $("#itemCards").delegate(".item-card:not(.item-without-card) label", "click", function(){
6431       const id = $(this).parent(".item-card").data("id")
6432       const t = $(this).parent(".item-card")
6433       const target = t.find("input")
6434       const v = $('.item-card input[type="radio"]:checked').val();
6435       $("#itemCards .item-card").removeClass("selected")
6436       t.addClass("selected")
6437       $("#itemCards .item-card").find("input").attr("name", "")
6438       if(target.length > 0) {
6439           target.attr("name", "id[]")
6440           $("#properties-card").val(id)
6441           $(".greetingCard").removeClass("disabled")
6442           $("#skip-card").attr("disabled", false)
6443       } else {
6444           $("#properties-card").val("")
6445       }
6446   })
6447 
6448   $("#itemCards").delegate(".item-without-card label", "click", function(){
6449     const parent = $(this).parents(".sectionPurchase")
6450     const next = parent.next(".sectionPurchase")
6451     $(".greetingCard").addClass("disabled")
6452     parent.addClass("hide")
6453     next.removeClass("hide")
6454     $("[data-addon=upsell-all]").click()
6455     $("#zip").select2()
6456   })
6457 
6458   $("[data-properties=ucapan]").keyup(function(){
6459     const v = $(this).val()
6460     const p = $(this).parents(".sectionPurchase")
6461     $(".purchaseAddress").find(".greetingCard textarea").val(v)
6462     if(v.length > 3) {
6463       p.find(".next-purchase-button").attr("disabled", false)
6464     } else {
6465       p.find(".next-purchase-button").attr("disabled", true)
6466     }
6467   })
6468 
6469   $("[data-properties=penerima]").keyup(function(){
6470     const v = $(this).val()
6471     $(".purchaseAddress").find("[data-properties=penerima]").val(v)
6472   })
6473 
6474   $("[data-properties=pengirim]").keyup(function(){
6475     const v = $(this).val()
6476     $(".purchaseAddress").find("[data-properties=pengirim]").val(v)
6477   })
6478 
6479   $(document).click(function(e){
6480 
6481      if($(e.target).closest('.wrapperPopupCart').length != 0) return false;
6482      // $('#popupCart').fadeOut('slow');
6483     // location.reload()
6484   });
6485 
6486   $(".toggleAddonCart").click(function(){
6487     const p = $(this).parent(".itemAddonCart")
6488     p.toggleClass("open")
6489   })
6490 
6491   $(".btnViewCart").click(function(){
6492     window.location.href = "https://outerbloom.com/cart";
6493   })
6494 
6495   $(".btnViewCheckout").click(async function(){
6496     $(this).find("span").addClass("loading")
6497     let zip = $("#zip").val()
6498     const first_name = $("#first_name").val()
6499     const last_name = $("#last_name").val()
6500     const company = $("#company").val() !== '' ? $("#company").val() : ''
6501     const address1 = $("#delivery_address").val()
6502     const address2 = zip && zip !== '' ? zip?.split(' - ')[1] : ''
6503     zip = zip && zip !== '' ? zip?.split(' - ')[0] : ''
6504     const phone = $("#recipient_number").val()
6505     const city = $("#cities").val()
6506     const province = $("#province").val()
6507     const country = 'Indonesia'
6508     const ver = Date.parse(new Date())
6509     const params = `checkout[email]=&checkout[shipping_address][first_name]=${first_name}&checkout[shipping_address][last_name]=${last_name}&checkout[shipping_address][company]=${company}&checkout[shipping_address][address1]=${address1}&checkout[shipping_address][address2]=${address2}&checkout[shipping_address][city]=${city}&checkout[shipping_address][country]=${country}&checkout[shipping_address][province]=${province}&checkout[shipping_address][zip]=${zip}&checkout[shipping_address][phone]=${phone}&v=${ver}`
6510 
6511     const clear = await fetch(`/cart/clear.js`, {method: 'POST'})
6512     if(clear.status === 200) {
6513       const savedItem = window.localStorage.getItem("items");
6514       const items = JSON.parse(savedItem)
6515       const addItems = await additem(items)
6516       console.log(addItems, 'new addItems')
6517       if(addItems) {
6518         window.location.href = `https://outerbloom.com/checkout?${params}`;
6519       }
6520     }
6521   })
6522 
6523   $(".btnContinueShopping").click(function(){
6524     window.location.href = "https://outerbloom.com/";
6525   })
6526 
6527     if (isIOS) {
6528       $(".empty-state-card").click(function(){
6529         $("#input-foto").trigger("click")
6530       })
6531       $(".btn-upload-image").click(function(){
6532         $("#input-foto").trigger("click")
6533       })
6534       $("[for=input-video]").click(function(){
6535         $("#input-video").trigger("click")
6536       })
6537       $(".btn-upload-papan").click(function(){
6538         $("#logoPapan").trigger("click")
6539       })
6540     }
6541   
6542     $("[data-properties]").each(function(){
6543       const select = $(this).parents(".form-group").find("select")
6544       $(this).change(function(){
6545         const name = $(this).data("properties")
6546         const v = $(this).val()
6547         if (name == 'telepon-penerima') {
6548           let phone = v.replace(/[^0-9]/g, '')
6549           $(this).val(phone);
6550           $("#properties-telepon-penerima").val(phone)
6551           $('.iti__search-input').val('-') 
6552         } else {
6553           $("#properties-" + name).val(v)
6554         }
6555       })
6556       select.on("change", function(){
6557         const name = $(this).data("properties")
6558         const v = $(this).val()
6559         $("#properties-" + name).val(v)
6560       })
6561     })
6562 
6563     $("#show_note").click(function(){
6564       nameq = $("#properties-nama-penerima").val()
6565       dear = $("#properties-kartu-nama-penerima").val()
6566       card = $("[data-properties=ucapan]").val()
6567       sender = $("#properties-kartu-nama-pengirim").val()
6568       photo = $("#properties-photo").val()
6569       video = $("#properties-video").val()
6570       updateCard(nameq, dear, card, sender, photo, video, status)
6571     })
6572 
6573     $(".remove-image").click(function(e){
6574       e.preventDefault()
6575       $(this).find("img").show()
6576       removeImage()
6577     })
6578 
6579     $(".remove-media").click(function(e){
6580       e.preventDefault()
6581       $(this).find("img").show()
6582       removeVideo()
6583     })
6584 
6585     
6586 
6587     $("[data-delivery_method]").click(function(e){
6588       e.preventDefault()
6589       const t = $(this)
6590       const data = t.data("delivery_method")
6591       $("[data-delivery_method]").removeClass("selected")
6592       t.addClass("selected")
6593       $("#cities").val("")
6594       $("#properties-delivery-date").val("-")
6595       $("#deliveryDate button").removeClass("selected")
6596       $("#full-date").val("Full Calendar →")
6597       $("#propDeliveryDate").val("")
6598       const step3 = $("#step-3")
6599       if(data.match('PickUp')) {
6600         $(".selfpickup-point").show()
6601         step3.find("[data-finished=false]").hide()
6602         $("#panel-4").hide()
6603         step3.find("[data-finished=true]").show()
6604         $("#cities").attr("required", false)
6605         $("#form-group-city").hide()
6606         $("#row-delivery-time").hide()
6607         $("#propDeliveryTime, #properties-delivery-time, #properties-nama-penerima, #properties-alamat-penerima, #properties-kodepos, #properties-kodepos, #properties-telepon-penerima").val("-")
6608         $("#propDeliveryTime").attr("required", false)
6609         // $("#deliveryDate").find("button:first-child").addClass("stop")
6610         $(".form-selfpickup").show()
6611         $(".form-delivery").hide()
6612         $(".form-delivery").find("input, textarea, select").val("")
6613         $(".form-delivery").find("input, textarea, select").attr("required", false)
6614         $("#properties-shipping").val("0")
6615         $("#noteDeliveryDate").hide()
6616         $(".form-delivery .form-control").attr("required", false)
6617         $("#stepNav4").hide()
6618         
6619         $("#deliveryDate").find("button:nth-child(1)").addClass("stop")
6620         
6621         
6622         
6623         if(timeOfDay >= 16.01){
6624           $("#deliveryDate").find("button:nth-child(2)").addClass("stop")
6625         }
6626       } else {
6627         
6628         
6629         $("#deliveryDate").find("button:nth-child(1)").removeClass("stop")
6630         step3.find("[data-finished=false]").show()
6631         $("#panel-4").show()
6632         step3.find("[data-finished=true]").hide()
6633         $("#cities").attr("required", true)
6634         $(".selfpickup-point").hide()
6635         $("#form-group-city").show()
6636         $("#cities").val('').trigger('change');
6637         $("#properties-kota-pengiriman").val("-")
6638         
6639         $("#row-delivery-date, #row-delivery-time").show()
6640         $("#propDeliveryDate, #propDeliveryTime").attr("required", true)
6641         $("#deliveryDate").find("button").removeClass("stop")
6642         $(".form-selfpickup").hide()
6643         $(".form-delivery").show()
6644         $(".form-delivery").find("input, textarea, select").attr("required", true)
6645         $(".form-delivery [data-properties]").attr("readonly", false)
6646         $("#properties-kodepos").val("-")
6647         $("#properties-alamat-penerima").val("-")
6648         $(".form-delivery .form-control").attr("required", true)
6649         $(this).parents(".setup-content").attr("id", "step-1")
6650         
6651         $("#stepNav4").show()
6652       }
6653     })
6654 
6655     $("[name=selfpickup]").click(function(){
6656         const p = $(this).parents(".row-pickup")
6657         const pickupCity = $("input[name='selfpickup']:checked").val();
6658         const pickupAddress = $("input[name='selfpickup']:checked").data("address");
6659         const pickupZip = $("input[name='selfpickup']:checked").data("zip");
6660 
6661         $(".row-pickup").removeClass("selected")
6662         p.addClass("selected")
6663         
6664         $("#properties-kota-pengiriman").val(pickupCity)
6665         $("#province").val("Jakarta")
6666         $("#properties-alamat-penerima").val(pickupAddress)
6667         $("#properties-kodepos").val(pickupZip)
6668     })
6669 
6670     $("#cities").change(function(e){
6671       e.preventDefault()
6672       $(this).parent(".row").find("p.error").remove()
6673       $("#full-date").val("Full Calendar")
6674       $("#deliveryDate, #deliveryDateFull label ").show()
6675       $("#deliveryDateFull").removeClass("filled")
6676       $(".btnChangeDeliveryDate").addClass("hide")
6677       $("#full-date").prop('disabled', false);
6678       $("#stepNav2, #stepNav3, #stepNav4").removeClass("btn-success")
6679       $("#stepNav2, #stepNav3, #stepNav4").find("a").attr("disabled", true)
6680       const step3 = $("#step-3")
6681       $("#cityNote").remove()
6682       $("#noteDeliveryDate").hide()
6683       $("#noteDeliveryDate").empty()
6684       let v = $(this).val()
6685       let v2 = $('option:selected', this).attr('data-city');
6686       let v3 = $('option:selected', this).attr('data-province');
6687       let price = $('option:selected', this).attr('data-price');
6688       $("#country").val(v)
6689       $("#properties-kota-pengiriman").val(v)
6690       $("#properties-shipping").val(price)
6691       $("#deliveryDate button, #deliveryTime button, .calendarseasonal .button").removeClass("selected")
6692       $("#properties-delivery-date, #properties-delivery-time").val("-")
6693       $("#propDeliveryDate, #propDeliveryTime").val("")
6694       let note = $('option:selected', this).attr('data-note');
6695       if(v === 'Kota Lainnya') {
6696         $("#noteDeliveryDate").show()
6697         $("#noteDeliveryDate").text("Order akan segera dikirim. Estimasi tanggal diterima akan disesuaikan dengan waktu pengiriman oleh pihak ekspedisi ke lokasi Anda.")
6698         $("#zip").attr("required", false)
6699         $("#zip").hide()
6700         $("#propDeliveryDate, #propDeliveryTime").attr("required", false)
6701         $("#propDeliveryDate, #properties-delivery-date, #propDeliveryTime, #properties-delivery-time").val("-")
6702         $("#row-delivery-date, #row-delivery-time").hide()
6703         $("#properties-shipping").val("")
6704         // $(this).parents(".setup-content").attr("id", "step-2")
6705         
6706       } else {
6707         $("#noteDeliveryDate").hide()
6708         $("#zip").attr("required", true)
6709         $("#zip").show()
6710         $("#row-delivery-date, #row-delivery-time").show()
6711         $("#propDeliveryDate, #propDeliveryTime").attr("required", true)
6712         $("#deliveryDate").find("button").removeClass("stop")
6713         // $(this).parents(".setup-content").attr("id", "step-1")
6714         
6715       }
6716       
6717       
6718       
6719       // if(v !== 'Jakarta') {
6720       //   $("[data-type=upsell]").hide()
6721       // } else {
6722       //   $("[data-type=upsell]").show()
6723       // }
6724       // $('.collection-addons')[0].swiper.update();
6725       
6726       
6727       getProvince(v)
6728       $("#zip").html(`<option value="">Choose Postal Code</option>`)
6729       renderZip(v, v2, v3)
6730       
6731       disabledSameDay()
6732       
6733 
6734       if(v !== 'Jakarta' && v !== 'Depok' && v !== 'Bekasi' && v !== 'Tangerang') {
6735         
6736         $("#cardOccasion, #navAddon, .collection-addons").hide()
6737         
6738         $("[data-addon=giftcard]").show()
6739         $("[data-addon=giftcard]").click()
6740         $("#itemAddons").show()
6741         $("#flower-step").addClass("nonjadetabek")
6742       } else {
6743         $("#cardOccasion, #navAddon, .collection-addons").show()
6744         $("[data-addon=all]").click()
6745         $("#flower-step").removeClass("nonjadetabek")
6746       }
6747       
6748         if(v !== '') {
6749           $("#personalizeBtn .btn").attr("disabled", false)
6750         } else {
6751           $("#personalizeBtn .btn").attr("disabled", true)
6752         }
6753       
6754     })
6755 
6756     $("#zip").change(function(e){
6757       let v = $(this).val()
6758       var city = $("#cities").find('option:selected');
6759       $("#properties-kodepos").val(v)
6760       if(city === 'Kota Lainnya') {
6761         $(this).attr("required", true)
6762         $("#recipient-address").val("")
6763       }
6764     })
6765 
6766     
6767       var minDate = +7
6768       
6769     
6770 
6771     $("#full-date").datepicker({
6772       minDate,
6773       dateFormat: 'Mdd_yy', //Nop22_2021,
6774       
6775       beforeShowDay: disabledays,
6776       
6777       onSelect: function (date) {
6778         $("#deliveryDate, #deliveryDateFull label ").hide()
6779         $("#deliveryDateFull").addClass("filled")
6780         $(".btnChangeDeliveryDate").removeClass("hide")
6781         $("#full-date").prop('disabled', true);
6782         $('#propDeliveryDate, #properties-delivery-date').val('Kirim_'+date);
6783         $(".date-full").addClass("selected")
6784         $(".date-single, .calendar-group").removeClass("selected")
6785         $("#propDeliveryTime").val('')
6786         $("#properties-delivery-time").val('-')
6787         $(".time-single").removeClass("selected")
6788         
6789         
6790       }
6791     });
6792 
6793     $(".btnChangeDeliveryDate").click(function(){
6794         $("#deliveryDate, #deliveryDateFull label ").show()
6795         $("#deliveryDateFull").removeClass("filled")
6796         $(".btnChangeDeliveryDate").addClass("hide")
6797         $("#full-date").prop('disabled', false);
6798     })
6799   
6800     $("#deliveryDate").delegate(".calendarbutton:not(.date-full)", "click", function(e){
6801       e.preventDefault()
6802       $(this).parents("#row-delivery-date").find("p.error").remove()
6803       const fulldate = $(this).data("fulldate")
6804       const day = $(this).data("day")
6805       const date = $(this).data("date")
6806       const month = $(this).data("month")
6807       const year = $(this).data("year")
6808       const off_pagi = $(this).data("offpagi")
6809       const off_siang = $(this).data("offsiang")
6810       const off_Malam = $(this).data("offMalam")
6811       $(".calendarbutton").removeClass("selected")
6812       $(this).addClass("selected")
6813       $("#propDeliveryDate, #properties-delivery-date").val(`Kirim_${month}${date}_${year}`)
6814       $("#propDeliveryTime").val('')
6815       $("#properties-delivery-time").val('-')
6816       $(".calendarbutton2").removeClass("selected")
6817       $("#full-date").val("Full Calendar")
6818 
6819       
6820       if(off_pagi && timeOfDay > off_pagi) {
6821         $("[data-time=Morning]").attr("disabled", true)
6822       } else {
6823         $("[data-time=Morning]").attr("disabled", false)
6824       }
6825       if(off_siang && timeOfDay > off_siang) {
6826         $("[data-time=Afternoon]").attr("disabled", true)
6827       } else {
6828         $("[data-time=Afternoon]").attr("disabled", false)
6829       }
6830       
6831 
6832       
6833     })
6834     
6835     if(today === 14 && timeOfDay > 17.00) {
6836       $("#deliveryDate button:first-child").attr("disabled", true)
6837     }
6838   
6839     $("#deliveryTime").delegate(".calendarbutton2", "click", function(e){
6840       e.preventDefault()
6841       const time = $(this).data("time")
6842       const date = $("#propDeliveryDate").val()
6843       if(date == '') {
6844         return alert('Silakan pilih tanggal terlebih dahulu')
6845       }
6846       $(".calendarbutton2").removeClass("selected")
6847       $(this).addClass("selected")
6848       $("#propDeliveryTime, #properties-delivery-time").val(`KirimJam_${date.replace('Kirim_','')}_${time}`)
6849     })
6850       
6851     $('textarea.has-limit, input.has-limit').keyup(function () {
6852       max = this.getAttribute("maxlength");
6853       let len = $(this).val().length;
6854       let limit = $(this).siblings(".limit");
6855       if (len > max) {
6856         alert('you have reached the limit');
6857       } else {
6858         limit.text(`${len}/${max}`);
6859       }
6860     });
6861     
6862     $("#button-action-step .btn").click(function(){
6863       $(this).find("span").text("Processing...");
6864     });
6865 
6866     $(".finishBtn").on('click', function() {
6867       $(this).addClass("is-adding");
6868       // $(this).click();
6869     });
6870 
6871     $('.setup-panel .nav-item a.btn-success').trigger('click');
6872 
6873     $("#button-action .btn").click(function(){
6874       $("#flower-step").addClass("block");
6875       $("#button-action").hide();
6876     });
6877         
6878     $(".close-how-order").click(function(){
6879       $("#flower-step").removeClass("block");
6880       $("#button-action").show();
6881     });
6882 
6883     $("#input-foto, #input-video").change(function(e){
6884       readURL(this);
6885     });
6886 
6887     $("#logoPapan").change(function(){
6888       readURLPapan(this);
6889     });
6890 
6891     $("#address-upload").change(async function(){
6892       const upload_address = await readURLAddress(this)
6893       if(upload_address) {
6894         const url = upload_address.url
6895         $(".props-address-upload").val(url)
6896         $(".form-address").addClass("address-uploaded")
6897         $(".form-address-upload").addClass("uploaded")
6898 
6899         $(this).parents(".form-group").siblings(".form-group").find("[required]").attr("required", false)
6900       }
6901     })
6902 
6903     $(".address-manualy").click(function(){
6904       $(".form-address-upload").removeClass("uploaded");
6905       $(".photo-address").hide();
6906       $(".form-address").removeClass("address-uploaded")
6907       $("#formAddressPurchase").find(".form-control").attr("required", true)
6908     });
6909 
6910     $(".case-video-preview").delegate(".replace-video", "click", function(){
6911       $("#input-video").trigger("click")
6912     })
6913 
6914     $('.date-single').click(function(e) {
6915       e.preventDefault();
6916       $('.date-single').removeClass('selected');
6917       $('#full-date').removeClass('selected');
6918       $(this).addClass('selected');
6919       $('#full-date').html('Full' + '<br/>' + 'Calendar');
6920     });
6921     $('#full-date').click(function(e){
6922       e.preventDefault();
6923       $('.date-single').removeClass('selected');
6924       $(this).addClass('selected');
6925     });
6926     
6927     // $("tr").each(function(){
6928     //   if($(this).text().match('SKU')) {
6929     //     $(".sku-product").html($(this).parents("table").html())
6930     //   }
6931     // })
6932     
6933     $("#product-image").scroll(function(){
6934       $(".desc-add").each(function(){
6935         const img = $(this).find("img")
6936         const src = img.data("src")
6937         img.attr("src", src)
6938       })
6939     })
6940 
6941     $(".product-fixed").hide()
6942     
6943     let target = $("#personalizeBtn")
6944     
6945 
6946     $(".product-meta").scroll(function() {
6947         if ($(window).scrollTop() >= target.offset().top ) {
6948             $(".product-fixed").addClass("show")
6949         } else {
6950           $(".product-fixed").removeClass("show")
6951         }
6952     });
6953 
6954     $(window).scroll(function() {
6955         if ($(window).scrollTop() >= target.offset().top ) {
6956             $(".product-fixed").addClass("show")
6957         } else {
6958           $(".product-fixed").removeClass("show")
6959         }
6960     });
6961   });
6962 </script>
6962
6963 
6964   
6964<script>
6965     //
6966   </script>
6966
6967 
6968 
6968<script>
6969   $(document).ready(function(){
6970     $('table tr td').each(function(){
6971       var texto = $(this).text();
6972       var nextto = $(this).next("td");
6973       var sku = $("#data-sku").val()
6974       if(texto == 'SKU'){
6975         nextto.text(sku)
6976       }
6977     });
6978     
6979     $(".stamped-summary-actions-newquestion").text("Tulis Pertanyaan");
6980     $(".stamped-summary-actions-newreview").text("Tulis Review");
6981     $("#tab-questions").text("Pertanyaan");
6982     
6983     $(".freeship .icon").click(function(){
6984       $(".fs-content").slideToggle();
6985       $(this).parents(".freeship").toggleClass("expand");
6986     });
6987     
6988     var $easyzoom = $('.easyzoom').easyZoom();
6989     // Setup thumbnails example
6990     var api1 = $easyzoom.filter('.easyzoom--with-thumbnails').data('easyZoom');
6991     $('.thumbnails').on('click', 'a', function(e) {
6992       var $this = $(this);
6993       e.preventDefault();
6994       // Use EasyZoom's `swap` method
6995       api1.swap($this.data('standard'), $this.attr('href'));
6996     });
6997 
6998     $('#playerID').click(function(){
6999       var videoURL = $('#VdoID').attr('src'),
7000           dataplay = $('#VdoID').attr('data-play');
7001 
7002       //for check autoplay
7003       //if not set autoplay=1
7004       if(dataplay == 0 ){
7005         $('#VdoID').attr('src',videoURL+'?autoplay=1');
7006         $('#VdoID').attr('data-play',1);
7007       }
7008       else{
7009         var videoURL = $('#VdoID').attr('src');
7010         videoURL = videoURL.replace("?autoplay=1", "");
7011         $('#VdoID').prop('src','');
7012         $('#VdoID').prop('src',videoURL);
7013 
7014         $('#VdoID').attr('data-play',0);
7015       }
7016 
7017     });
7018     
7019     $(".product-photo-thumb-video").click(function(e){
7020       e.preventDefault();
7021 
7022       var newEmbed = $(this).attr('href');
7023       $("#featured-image-product").addClass("img-video");
7024       $("#ProductPhotoImg").hide();
7025       $("#featured-image-product .video").show();
7026       $("#featured-image-product iframe").attr('src', newEmbed);
7027       $("#VdoID")[0].src += "&autoplay=1";
7028     });
7029     $(".product-single__thumbnail").click(function(evt){
7030       evt.preventDefault();
7031       $("#featured-image-product").removeClass("img-video");
7032       $("#ProductPhotoImg").show();
7033       $("#featured-image-product .video").hide();
7034       $("#featured-image-product iframe").attr('src', '');
7035     });
7036     
7037     if($('#product-meta .short-desc > div').length >= 1){
7038       //console.log('div detected')
7039       var replacer = $('#product-meta .short-desc > div').contents();
7040       $('#product-meta .short-desc > div').replaceWith(replacer);
7041 
7042       var cAssured =  $('.c-assured').detach();
7043       cAssured.insertAfter('.meta-sds .stock-info');
7044     }
7045 
7046     
7047     
7048     $(".heading-toggle").click(function(){
7049       $(this).parent().toggleClass("open")
7050       
7051     });
7052   });
7053 </script>
7053
7054 
7055 
7056   
7056<script type="application/json" id="ProductJson-Product">
7057         
7058         {"id":8144957800663,"title":"HOLYTOGEL >> Daftar Kumpulan Game Online Seleksi Dan Bandar Toto Togel Online Indonesia","handle":"blossom-shine","description":"\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eHOLYTOGEL memberikan daftar kumpulan game online seleksi yang dimana paling dicari player slotter dan togel mania indonesi di bandar tototogel terpercaya."}
7059   </script>
7059
7060   
7061     
7061<script type="application/json" id="VariantJson-Product">
7062       [
7063         
7064           {
7065              "incoming": false,
7066              "next_incoming_date": null
7067           }
7068         
7069       ]
7070     </script>
7070
7071   
7072 
7073 
7074 
7075 </div>
7076 
7077 
7078 
7078<script src="//outerbloom.com/cdn/shopifycloud/storefront/assets/themes_support/option_selection-b017cd28.js" type="text/javascript"></script>
7078
7079 <style>
7080     .stamped-review-header-title,
7081     .stamped-review-header .author,
7082     .stamped-review-content-body,
7083     .stamped-sort-select,
7084     .stamped-review-header .verified-badge[data-type=buyer]:after,
7085     .stamped-review-header-byline,
7086     .stamped-review-reply-body {font-size: 14px!important;font-family: 'Barlow',sans-serif!important;}
7087     .stamped-review {margin-bottom: 0;}
7088     .stamped-review-body {padding-left: 65px;}
7089     .stamped-review:first-child {padding-top: 25px;}
7090     .stamped-review-content {clear: none;}
7091     .stamped-review-reply {margin: 15px 0 0 65px;background: #f2f2f2;border-left: none;}
7092     .stamped-review-reply-body {padding-left: 65px;}
7093     .stamped-review-header .author {text-transform: capitalize;}
7094     .stamped-questions .stamped-review-content {padding-left: 65px;}
7095 
7096     .stamped-pagination {margin: 20px 0 0;}
7097     .stamped-pagination li {position: initial!important;display: inline-block;position: relative;vertical-align: middle;text-decoration: none;-webkit-tap-highlight-color: transparent;-webkit-box-flex: 0;-moz-box-flex: 0;-ms-flex: 0 0 auto;flex: 0 0 auto;-webkit-user-select: none;-moz-user-select: none;-ms-user-select: none;user-select: none;background: 0 0;text-transform: none;color: #33373D;font-weight: 400;-webkit-transition: background .1s ease,box-shadow .1s ease,color .1s ease;transition: background .1s ease,box-shadow .1s ease,color .1s ease;border: 1px solid #ccc;border-right: none;margin-bottom: 0;}
7098     .stamped-pagination li a {color: #121212;padding: 13px 18px;vertical-align: middle;display: block;}
7099     .stamped-pagination li.active a {background-color: #ddd;font-weight: 400;}
7100     .stamped-pagination li:hover a {background: #ddd;}
7101     .stamped-pagination .next {border-right: 1px solid #ccc;}
7102     .stamped-pagination li:first-child {border-top-left-radius: 5px;border-bottom-left-radius: 5px;}
7103     .stamped-pagination li:last-child {border-top-right-radius: 5px;border-bottom-right-radius: 5px;}
7104 
7105     #stamped-pagination-question span.page {display: inline-block;border: 1px solid #ccc;width: 47px;}
7106     #stamped-pagination-question span {font-size: 14px;}
7107     #stamped-pagination-question .page.active {padding: 12px;font-weight: 400;background: #ddd;}
7108     #stamped-pagination-question a, #stamped-pagination-question .page.active {color: #121212;padding: 13px 18px;vertical-align: middle;display: inline-block;}
7109     .stamped-pagination-deco {color: #121212;padding: 13px 18px;width: 47px;vertical-align: middle;display: inline-block;border: 1px solid #ccc;padding: 12px;}
7110     .stamped-pagination-prev, .stamped-pagination-next {position: inherit;}
7111     .stamped-pagination-prev a, .stamped-pagination-next a {width: auto!important;border: 1px solid #ccc;}
7112 
7113     @media (max-width: 480px){
7114       .stamped-review-reply {margin-left: 0!important;}
7115       select.stamped-sort-select {font-size: 13px!important;}
7116     }
7117 
7118   #product-reviews .stamped-summary-ratings, #product-reviews .stamped-summary-actions, .stamped-content {
7119       display: block !important;
7120   }
7121 </style>
7122 
7122<script>
7123     var selectCallback = function(variant, selector) {
7124       timber.productPage({
7125         money_format: "Rp {{amount_no_decimals}}",
7126         variant: variant,
7127         selector: selector
7128       });
7129     };
7130 
7131     jQuery(function($) {
7132       new Shopify.OptionSelectors('productSelect', {
7133         product:
7134 
7135 
7136 
7137 
7138 
7139 {"id":8144957800663,"title":"HOLYTOGEL >> Daftar Kumpulan Game Online Seleksi Dan Bandar Toto Togel Online Indonesia","handle":"blossom-shine","description":"\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eHOLYTOGEL memberikan daftar kumpulan game online seleksi yang dimana paling dicari player slotter dan togel mania indonesi di bandar tototogel terpercaya."},
7140         onVariantSelected: selectCallback,
7141         enableHistoryState: true
7142       });
7143 
7144       // Add label if only one product option and it isn't 'Title'. Could be 'Size'.
7145       
7146 
7147       // Hide selectors if we only have 1 variant and its title contains 'Default'.
7148       
7149         $('.selector-wrapper').hide();
7150       
7151     });
7152 </script>
7152
7153 
7154 
7155 
7156   
7156<script type="application/ld+json">
7157     {
7158     "@context": "http://schema.org",
7159     "@type": "Product",
7160 "offers": {
7161 "@type": "Offer",
7162 "availability":"https://schema.org/InStock",
7163 "price": 835000,
7164 "priceValidUntil": "05-10-2025",
7165 "priceCurrency": "IDR",
7166 "url": "https://watersoftenerreviewspro.com/"
7167 },
7168 "brand": {
7169 "@type": "Brand",
7170 "name": "Outerbloom Florist"
7171 },
7172 "sku": "8144957800663",
7173 "gtin13": "Jawa",
7174 "name": "HOLYTOGEL >> Daftar Kumpulan Game Online Seleksi Dan Bandar Toto Togel Online Indonesia",
7175 "description": "HOLYTOGEL memberikan daftar kumpulan game online seleksi yang dimana paling dicari player slotter dan togel mania indonesi di bandar tototogel terpercaya.",
7176 "category": "HOLYTOGEL memberikan daftar kumpulan game online seleksi yang dimana paling dicari player slotter dan togel mania indonesi di bandar tototogel terpercaya.",
7177 "url": "https://watersoftenerreviewspro.com/",
7178 "image": {
7179 "@type": "ImageObject",
7180 "url": "https://outerbloom.com/cdn/shop/files/Blossom-Shine-WM_small.jpg?v=1695788426",
7181 "image": "https://outerbloom.com/cdn/shop/files/Blossom-Shine-WM_small.jpg?v=1695788426",
7182 "name": "HOLYTOGEL >> Daftar Kumpulan Game Online Seleksi Dan Bandar Toto Togel Online Indonesia",
7183 "width": 1024,
7184 "height": 1024
7185 }
7186     }
7187   </script>
7187
7188 
7189 
7190 
7191 
7192         
7193 
7193<script id="bss-ltap-hide-price" type="text/javascript" >
7194 !function(e){var t={};function o(r){if(t[r])return t[r].exports;var c=t[r]={i:r,l:!1,exports:{}};return e[r].call(c.exports,c,c.exports,o),c.l=!0,c.exports}o.m=e,o.c=t,o.d=function(e,t,r){o.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.t=function(e,t){if(1&t&&(e=o(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(o.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var c in e)o.d(r,c,function(t){return e[t]}.bind(null,c));return r},o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,"a",t),t},o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.p="",o(o.s=0)}([function(e,t,o){"use strict";function r(e){e.ltsp={},function(e){e.ltsp.quickView=function(){document.querySelectorAll(".quickview-button").forEach((function(e){e.addEventListener("click",(function(){setTimeout((function(){let e=document.getElementById("add-to-cart-quickview-form");if(e){let t=e.querySelector(".groups-btn");t&&t.remove();let o=e.querySelector(".pieces");o&&o.remove();let r=e.querySelector(".bsscommerce-ltsp-message");r&&r.remove()}if(e=document.querySelector("[data-quickview-modal] .halo-modal-body"),e){let t=e.querySelector(".quantity");t&&t.remove()}}),1e3)}))})),document.querySelectorAll(".shop-now-button").forEach((function(e){e.addEventListener("click",(function(){setTimeout((function(){let e=document.getElementById("ShopNowContainer");if(e){let t=e.querySelector("#AddToCart");t&&t.remove()}}),2e3)}))})),document.querySelectorAll(".collection__filter").forEach((function(e){e.addEventListener("click",(function(){setTimeout((function(){let e=document.getElementsByClassName("bsscommerce-ltsp-message");for(let t=0;t<e.length;t++){let o=e[t].closest(".product-grid-item");if(o){let e=o.querySelector(".btn--quick-view");e&&e.remove()}}}),1500)}))})),document.querySelectorAll(".btn--icon.quick-product__btn").forEach((function(e){e.addEventListener("click",(function(){setTimeout((function(){let e=document.getElementsByClassName("bsscommerce-ltsp-message");for(let t=0;t<e.length;t++){let o=e[t].closest(".product-grid__content");if(o){let e=o.querySelector(".payment-buttons");e&&e.remove()}}}),2e3)}))})),document.querySelectorAll(".product-facet__aside").forEach((function(e){e.addEventListener("click",(function(){setTimeout((function(){let e=document.getElementsByClassName("bsscommerce-ltsp-message");for(let t=0;t<e.length;t++){let o=e[t].closest(".product-item");if(o){let e=o.querySelector('form[action="/cart/add"]');e&&e.remove();let t=o.querySelector(".product-item__quick-form");t&&t.remove()}}}),1500)}))})),document.querySelectorAll(".pagination").forEach((function(e){e.addEventListener("click",(function(){setTimeout((function(){let e=document.getElementsByClassName("bsscommerce-ltsp-message");for(let t=0;t<e.length;t++){let o=e[t].closest(".product-item");if(o){let e=o.querySelector('form[action="/cart/add"]');e&&e.remove();let t=o.querySelector(".product-item__quick-form");t&&t.remove()}}}),1800)}))})),document.querySelectorAll(".collection-filters__sort").forEach((function(e){e.addEventListener("change",(function(){setTimeout((function(){let e=document.getElementsByClassName("bsscommerce-ltsp-message");for(let t=0;t<e.length;t++){let o=e[t].closest(".indiv-product");if(o){let e=o.querySelector('form[action="/cart/add"]');e&&e.remove()}}}),1500)}))}
7194)),document.querySelectorAll(".slideout__drawer-right, .sidebar_leftside_wapper, .filtering__results").forEach((function(e){e.addEventListener("click",(function(){setTimeout((function(){let e=document.getElementsByClassName("bsscommerce-ltsp-message");for(let t=0;t<e.length;t++){let o=e[t].closest(".product-index");if(o){let e=o.querySelector(".js-quickview-trigger");e&&e.remove()}}}),1500)}))})),document.querySelectorAll("a.product-loop__quickview").forEach((function(e){e.addEventListener("click",(function(){setTimeout((function(){let e=document.getElementsByClassName("bsscommerce-ltsp-message");for(let t=0;t<e.length;t++){let o=e[t].closest(".large--one-half");if(o){let e=o.querySelector(".quick-smart-wrapper");e&&e.remove();let t=o.querySelector("#quantity-container");t&&t.remove();let r=o.querySelector(".js-prod-show-soldout");r&&r.remove()}}}),2e3)}))})),document.querySelectorAll(".quick-product__btn").forEach((function(e){e.addEventListener("click",(function(){setTimeout((function(){let e=document.getElementsByClassName("bsscommerce-ltsp-message");for(let t=0;t<e.length;t++){let o=e[t].closest(".product-single__meta");if(o){let e=o.querySelector("div.payment-buttons");e&&e.remove()}}}),1e3)}))})),document.querySelectorAll(".btn--load-more").forEach((function(e){e.addEventListener("click",(function(){setTimeout((function(){let e=document.getElementsByClassName("bsscommerce-ltsp-message");for(let t=0;t<e.length;t++){let o=e[t].closest(".grid-view-item");if(o){let e=o.querySelector(".quick-add-button");e&&e.remove()}}}),1e3)}))})),document.querySelectorAll(".quick_shop").forEach((function(e){e.addEventListener("click",(function(){setTimeout((function(){let e=document.getElementsByClassName("bsscommerce-ltsp-message");for(let t=0;t<e.length;t++){let o=e[t].closest(".product_section");if(o){let e=o.querySelector(".product_form .shopify-product-form .purchase-details"),t=o.querySelector(".product__details .modal_price .price-ui");e&&e.remove(),t&&t.remove()}}}),1e3)}))})),document.querySelectorAll(".qs-button ").forEach((function(e){e.addEventListener("click",(function(){setTimeout((function(){let e=document.getElementsByClassName("bsscommerce-ltsp-message");for(let t=0;t<e.length;t++){let o=e[t].closest(".product-info-main");if(o){let e=o.querySelector(".qty-box");e&&e.remove();let t=o.querySelector(".btn.btn-cart");t&&t.remove();let r=o.querySelector(".product-single__sale-price");r&&r.remove();let c=o.querySelector(".product-addto-links");c&&c.remove()}}}),1e3)}))}));let e=document.querySelector("a[data-js-cart-icon]");if(e&&e.addEventListener("click",(function(){let e=document.querySelector(".quick-cart__control");e&&e.remove();let t=document.querySelector(".quick-cart__item-right");t.childNodes[3]&&(t.childNodes[3].innerHTML="Login to seen price")})),document.querySelectorAll(".quick-add-button-variants").forEach((function(e){e.addEventListener("click",(function(){setTimeout((function(){let e=document.getElementsByClassName("bsscommerce-ltsp-message");for(let t=0;t<e.length;t++){let o=e[t].closest("#AddToCartForm");if(o){let e=o.querySelector(".paymentButtonsWrapper");e&&e.remove()}}}),1e3)}))})),document.querySelectorAll(".product-thumbnail__quickshop-button").forEach((function(e){e.addEventListener("click",(function(){setTimeout((function(){let e=document.getElementsByClassName("bsscommerce-ltsp-message");for(let t=0;t<e.length;t++){let o=e[t].closest(".product-details");if(o){let e=o.querySelectorAll(".bsscommerce-ltsp-message");e.length>1&&e.forEach((function(e,t){t>0&&e.remove()}));let t=o.querySelector(".product-form__cart-buttons");t&&t.remove();let r=o.querySelector(".product-form__quantity-box-wrapper");r&&r.remove()}}}),800)}))})),"b2b-dbodhi-singapore.myshopify.com"===window.Shopify.shop){let e=0;const t=window.location.pathname.includes("/collections");let o=!0;const r=function(){const e=setInterval((function(){let e=document.querySelectorAll(".thb-product-detail.product .bsscommerce-ltsp-message");for(let t=0;t<e.length;t++){let o=e[t],r=o.closest(".thb-product-detail.product");if(r){let e=r.querySelector(".product-form");e&&e.remove()}r=o.closest("del"),r&&o.remove()}}),500);setTimeout(()=>{clearInterval(e)},6e3)},c=function(){const c=window.pageYOffset||document.documentElement.scrollTop;(c>e||!t||o)&&(document.querySelectorAll(".product-card-quickview").forEach((function(e){e.removeEventListener("click",r),e.addEventListener("click",r)}
7194)),o=!1),e=c<=0?0:c};if(c(),t){const e=function(){const e=c;let t;return()=>{clearTimeout(t),t=setTimeout(()=>{e.apply(this)},3e3)}};window.addEventListener("scroll",e())}}}}(e),function(e){e.ltsp.removeElementByLTSPMessage=function(){let e=document.getElementsByClassName("bsscommerce-ltsp-message"),t=[],o=window.Shopify.shop;for(let r=0;r<e.length;r++){let c=e[r],l=[".grid-product__on-sale",".product-unit-price",".product-price-unit",".grid-link__sale_price","s",".price__compare",".product__compare-price",".price__unit",".card__price--regular",".sale-tag",".compare-price",".old-price",".savings",".was_price",".price--compare",".price-compare",".was"];if("stark-hockey.myshopify.com"===o){const e=c.closest(".product-index");if(e){const t=e.querySelector(".product-modal");t&&t.remove()}continue}let s=c.closest(".product-parent");if(s){let e=s.querySelector("form .tt-btn-addtocart");e&&t.push(e);let o=s.querySelector(".tt-btn-quickview");o&&t.push(o)}if(s=c.closest(".ProductItem"),s){let e=s.querySelector(".quickshop-btn");if(e&&t.push(e),"shrimptoncouture-com.myshopify.com"===o){let e=s.querySelector(".ProductItem__PriceList");e&&e.classList.remove("ProductItem__PriceList")}}if(s=c.closest(".product-item--vertical"),s){if("sparklinbluewholesale.myshopify.com"===o){let e=s.querySelector(".product-item__info .product-item__price-list");e&&t.push(e)}let e=s.querySelector(".product-item__info .product-item__action-button");e&&t.push(e),e=s.querySelector(".product-form__payment-container"),e&&t.push(e)}if(s=c.closest(".card-wrapper.underline-links-hover"),s&&"friends-forever-pets.myshopify.com"===o){let e=s.querySelector(".card__content .quick-add");e&&t.push(e);let o=s.querySelector(".card-information .price__sale .price-item.price-item--regular");o&&t.push(o)}if(s=c.closest(".modal_price"),s&&window.Shopify&&"casa-barba.myshopify.com"!==window.Shopify.shop&&"prideandgroom-wholesale.myshopify.com"!==window.Shopify.shop){let e=s.querySelector(".price-ui");e&&t.push(e)}if(s=c.closest(".info.has-padding-top"),s){let e=s.querySelector(".compare-at-price");e&&t.push(e)}if(s=c.closest(".product-thumbnail__price.price"),s){let e=s.querySelector(".money");e&&t.push(e)}if(s=c.closest(".search-result__description"),s){let e=s.querySelector(".money");e&&t.push(e)}if(s=c.closest(".product__price"),s){let e=s.querySelector("[data-product-price][bss-custom-ltsp-attribute]");e&&t.push(e)}if(s=c.closest("#template-product"),s){let e=s.querySelector(".product-form.cart-bar__form");e&&t.push(e)}if("showroom1-ducanero.myshopify.com"===o){if(s=c.closest(".product-area")||c.closest(".price"),s){let e=s.querySelector(".price-area")||s.querySelector(".theme-money");e&&t.push(e)}}else if(s=c.closest(".product-area__details"),s){let e=s.querySelector(".product-detail__form__action");e&&t.push(e);let o=s.querySelector(".quantity-wrapper");o&&t.push(o)}if("quincaillerie-euroline.myshopify.com"===o&&(s=c.closest(".product-form__info-content"),s)){let e=s.querySelector(".price-list");e&&t.push(e)}if(s=c.closest(".product-form__buttons"),s&&t.push(s),s=c.closest(".product-wrap-2"),s){let e=s.querySelector(".product-action-2");e&&t.push(e)}if(s=c.closest(".span6"),s){let e=s.querySelector(".purchase>input"),o=s.querySelector(".price-container>#price-preview"),r=s.querySelector(".price-container>.vat-price");e&&t.push(e),o&&t.push(o),r&&t.push(r)}if(s=c.closest(".product__page"),s){let e=s.querySelector(".quantity-selector");e&&t.push(e)}if(s=c.closest(".product_details_info"),s){let e=s.querySelector(".pro-detail-button"),o=s.querySelector(".price-box");e&&t.push(e),o&&t.push(o)}if(s=c.closest(".product-content"),s){let e=s.querySelector(".product-action");e&&t.push(e)}if(s=c.closest(".product-view .single-product-wrap"),s){let e=s.querySelector(".add-to-cart");e&&t.push(e)}if(s=c.closest(".collection-category .owl-stage .owl-item"),s){let e=s.querySelector(".add-to-cart");e&&t.push(e)}if(s=c.closest(".product__details"),s){let e=s.querySelector(".product-wrap .thumbnail-overlay .info .price ");e&&t.push(e);let o=s.querySelector(".product-details .price  .current_price .money ");o&&t.push(o)}if(s=c.closest(".product_row"),s){let e=s.querySelector(".three-fourths .info .price ");e&&t.push(e)}if(s=c.closest(".thubnail-desc"),s){let e=s.querySelector(".quatity-stock");e&&t.push(e);let o=s.querySelector(".Payment_button");o&&t.push(o)}if(s=c.closest(".single-ponno-product"),s){let e=s.querySelector(".pro-actions-link");e&&t.push(e);let o=s.querySelector(".pro-add-cart");o&&t.push(o)}if(s=c.closest(".product-single__meta"),s){let e=s.querySelector("div.product-form__controls-group.product-form__controls-group--submit");e&&e.setAttribute("style","visibility:hidden")}if("homewarerus.myshopify.com"!=window.Shopify.shop&&(s=c.closest(".product-item__info"),s)){let e=s.querySelector("form.product-item__action-list.button-stack");e&&e.remove()}
7194if("bluebasketb2b.myshopify.com"===window.Shopify.shop){if(s=c.closest(".card-information"),s){let e=s.querySelector(".price__sale .price-item--sale.sale-percentage");e&&t.push(e)}if(s=c.closest("tr.cart-item[id*=Cart]"),s){let e=s.querySelector(".cart-item__quantity");e&&e.remove();let t=s.querySelector(".cart-item__totals");t&&t.remove()}}if(s=c.closest(".product-form"),s){let e=s.querySelector(".quantity-submit-row__submit");e&&e.remove();let o=s.querySelector(".product-form__info-list .product-form__info-item.product-form__info-item--quantity .product-form__info-content .quantity-selector.quantity-selector--product");o&&t.push(o)}if(s=c.closest(".product-grid__detail"),s){let e=s.querySelector(".product-form-block form");e&&e.remove()}if(s=c.closest(".tab-body"),s){if(s.querySelector(".purchase-section button, .btn.add-to-cart")){let e=setInterval((function(){let e=document.querySelector(".tab-body .purchase-section button, .tab-body .btn.add-to-cart"),t=document.querySelector(".swym-button-bar.swym-wishlist-button-bar");e&&e.remove(),t&&t.remove()}),200);setTimeout((function(){clearInterval(e)}),1e4)}}if(s=c.closest(".item.relative.product-id.item-row"),s){let e=s.querySelector(".quantity.form");e&&e.remove()}if(s=c.closest(".product-form"),s){let e=s.querySelector(".buy-buttons-row");e&&t.push(e)}if(s=c.closest(".product-grid-item"),s){let e=s.querySelector(".btn--quick-view");e&&t.push(e)}if(s=c.closest(".featured__collection-product"),s){let e=s.querySelector(".js-quickview-trigger");e&&t.push(e)}if(s=c.closest(".product-index"),s){let e=s.querySelector(".js-quickview-trigger");e&&t.push(e)}if(s=c.closest(".product-bottom"),s){let e=s.querySelector(".quantity-selector, .product-add");e&&t.push(e)}if(s=c.closest(".js-sticky-cart"),s){let e=s.querySelector(".sticky-add");e&&t.push(e)}if(s=c.closest(".product-details"),s){let e=s.querySelector(".shopify-payment-button");e&&t.push(e);let r=s.querySelector(".payment-and-quantity__add");r&&t.push(r);let c=s.querySelector(".price__compare-at.visible");c&&"coventa-demo.myshopify.com"===o&&t.push(c)}if(s=c.closest(".product-block__inner"),s){let e=s.querySelector(".quick-buy");e&&t.push(e)}if(s=c.closest(".content-summary"),s){let e=s.querySelector("form.cart");e&&t.push(e)}if(s=c.closest('div[data-pf-type="Section"]'),s){let e=s.querySelector('div[data-pf-type="ProductQuantity"]');e&&t.push(e);let o=s.querySelector('button[data-pf-type="ProductATC"]');o&&t.push(o)}if(s=c.closest(".pc-inner"),s){let e=s.querySelector('form[action="/cart/add"]');e&&t.push(e);let o=s.querySelector(".quick_shop");o&&t.push(o)}if(s=c.closest(".product-info-inner"),s){let e=s.querySelector('form[action="/cart/add"]');e&&t.push(e)}if(s=c.closest(".product-details-inline"),s){let e=s.querySelector(".product-quantity");e&&t.push(e)}if(s=c.closest(".product-card"),s){let e=s.querySelector(".js-grid-cart");e&&t.push(e);let o=s.querySelector(".card-header .card-button-hover");o&&t.push(o);let r=s.querySelector(".product-card__quick-buy");r&&t.push(r);let c=s.querySelector("compare-at-price");c&&t.push(c);let l=s.querySelector(".product-card__badge-list");l&&t.push(l)}if(s=c.closest(".product__info"),s){let e=s.querySelector(".product-form__buy-buttons button");e&&t.push(e);let o=s.querySelector(".product-form__quantity");o&&t.push(o)}if(s=c.closest(".product-sticky-form__inner"),s){let e=s.querySelector(".product-sticky-form__payment-container");e&&t.push(e)}if("homewarerus.myshopify.com"!=window.Shopify.shop&&(s=c.closest(".product-item"),s)){let e=s.querySelector('form[action="/cart/add"]');e&&t.push(e);let o=s.querySelector(".product-item__quick-form");o&&t.push(o)}if(s=c.closest(".shopify-product-form"),s){let e=s.querySelector("div.quantity");e&&t.push(e)}if(s=c.closest(".product-body"),s){let e=s.querySelector(".product-cta-wrapper");e&&t.push(e)}if(s=c.closest(".tt-product-single-info"),s){let e=s.querySelector("form .btn-addtocart");e&&t.push(e);let o=s.querySelector('form[action*="/cart/add"]');o&&t.push(o)}if(s=c.closest(".product-details-wrapper"),s){let e=s.querySelector(".product-form");e&&t.push(e)}if(s=c.closest(".product-inner"),s){let e=s.querySelector(".product-card-interactions");e&&t.push(e)}if(s=c.closest(".product-single__meta"),s){let e=s.querySelector(".add-to-cart");if(e)if(window.Shopify&&"bundlecomph.myshopify.com"===window.Shopify.shop){e.disabled=!0;let o=s.querySelector(".payment-buttons"),r=s.querySelector(".shopify-payment-button");o&&o.classList.remove("payment-buttons"),r&&t.push(r)}else t.push(e)}if(s=c.closest(".grid-view-item"),s){let e=s.querySelector(".thumbnail-buttons");e&&t.push(e)}if(s=c.closest(".product-single__meta"),s){let e=s.querySelector(".product-form:not(.product-form-product--static):not(.product-form-product-template)");e&&t.push(e)}if(s=c.closest(".pf-product-form"),s){let e=s.querySelector(".sc-lkgURy");e&&t.push(e);let o=s.querySelector(".sc-gzcbmu");o&&t.push(o);let r=s.querySelector(".add-to-cart");r&&t.push(r)}if(s=c.closest(".large--one-half"),s){let e=s.querySelector(".product-smart-wrapper");e&&t.push(e);let o=s.querySelector('div.btn[onmouseup="showProductsDesigner(this)"]');o&&t.push(o);let r=s.querySelector("button.js-prod-show-soldout");r&&t.push(r)}if(s=c.closest("#add-to-cart-form"),s)if("led-signcity.myshopify.com"===o){let e=s.querySelector(".atc-btn");e&&t.push(e);let o=s.querySelector(".price");o&&o.classList.remove("price")}else{let e=s.querySelector(".groups-btn");e&&t.push(e),t.push(c)}
7194if(s=c.closest(".product-shop"),s&&"led-signcity.myshopify.com"!==o){let e=s.querySelector(".groups-btn");e&&t.push(e)}if(s=c.closest(".who-qof-table"),s&&s.classList.add("bsscommerce-hide-price"),s=c.closest(".price-sale"),s){let e=s.querySelector(".old-price");e&&t.push(e);let o=s.querySelector("em");o&&(o.innerHTML="")}if(s=c.closest(".product-details"),s){let e=s.querySelector(".action");e&&t.push(e)}if(s=c.closest(".product_section"),s){let e=s.querySelector("form .add_to_cart, form .b2b-ajax-submit");e&&t.push(e);let o=s.querySelector(".sale.savings");o&&t.push(o);let r=s.querySelector(".purchase-details button.button--add-to-cart");r&&t.push(r);let c=s.querySelector(".purchase-details .purchase-details__quantity.product-quantity-box");c&&t.push(c);let l=s.querySelector(".product__details .modal_price .price-ui");l&&t.push(l)}if(s=c.closest(".quick-shop-style--inline"),s){let e=s.querySelector("form .add_to_cart, form .b2b-ajax-submit");e&&t.push(e)}if(s=c.closest(".product-details"),s){let e=s.querySelector("small em");e&&t.push(e)}if(s=c.closest(".gt_product-body"),s){let e=s.querySelector("form .gt_product-addtocart");e&&t.push(e);let o=s.querySelector(".gt_product-saved");o&&t.push(o);let r=s.querySelector(".gt_product-price--compare");r&&t.push(r)}if(s=c.closest(".gt_product_content"),s){let e=s.querySelector("form .gt_product-addtocart");e&&t.push(e);let o=s.querySelector(".gt_product-price--compare");o&&t.push(o)}if(s=c.closest(".gt-single-product"),s){let e=s.querySelector("div.gt_method_addToCart");e&&t.push(e);let o=s.querySelector(".gt_product-price--compare");o&&t.push(o)}if(s=c.closest("#cont-form"),s){let e=s.querySelector("form .cont-add-btns");e&&t.push(e)}if(s=c.closest(".theiaStickySidebar"),s){let e=s.querySelector(".variations_button");e&&t.push(e)}if(s=c.closest(".product--price-wrapper"),s){let e=s.querySelector(".product--compare-price");e&&t.push(e)}if(s=c.closest(".product-submit"),s){let e=s.querySelector(".payment-buttons-container");e&&t.push(e)}if(s=c.closest(".product-price"),s){let e=s.querySelector(".product-price-compare");e&&t.push(e)}if(s=c.closest(".product-list-item"),s){let e=s.querySelector(".original"),o=s.querySelector(".product-list-item-badge");e&&t.push(e),o&&t.push(o)}if(s=c.closest(".productitem"),s){let e=s.querySelector(".productitem--action");e&&t.push(e);let o=s.querySelectorAll(".bss-ltsp-to-remove");if(o.length)for(let e of o)t.push(e)}if(s=c.closest(".product--outer"),s){let e=s.querySelector(".product-form--atc");e&&t.push(e),e=s.querySelector(".shopify-payment-button"),e&&t.push(e)}if(s=c.closest(".Container"),s)if(window.Shopify&&"mama-shawna.myshopify.com"===window.Shopify.shop){let e=s.querySelector("form.ProductForm");if(window.__st&&e){__st.cid&&t.push(e)}}else{let e=s.querySelector(".ProductForm__BuyButtons");e&&t.push(e)}if(s=c.closest(".product-grouped"),s){let e=s.querySelector(".product_top form#add-to-cart-form");e&&t.push(e)}if(s=c.closest(".product-item"),s){let e=s.querySelector(".product-top .product-des .action"),o=s.querySelector(".slideup");if(e&&t.push(e),o&&t.push(o),o=s.querySelector(".card-quickview"),o&&t.push(o),window.Shopify&&"sitchish.myshopify.com"===window.Shopify.shop){let e=s.querySelector(".product-item-price .money");e&&e.classList.remove("money")}}if(s=c.closest(".modal_price"),s){let e=s.querySelector(".was_price");e&&t.push(e)}if(s=c.closest(".info"),s){let e=s.querySelector(".was_price");e&&t.push(e)}if(s=c.closest(".product-item"),s){let e=s.querySelector('.product-item__action-button[data-action="add-to-cart"]');e&&t.push(e)}if(s=c.closest(".grid__item.grid-product"),s){let e=s.querySelector('form[action="/cart/add"] input[type="submit"]');e&&t.push(e);let r=s.querySelector(".grid-product__tag");r&&t.push(r);let c=s.querySelector(".visually-hidden");c&&t.push(c);let l=s.querySelector(".quick-product__btn");l&&"comphycompany.myshopify.com"===o&&t.push(l)}if(s=c.closest(".product-info"),s){let e=s.querySelector('form[action="/cart/add"] .payment-buttons');e&&t.push(e);let o=s.querySelector(".variant-wrapper.variant-wrapper--button");o&&t.push(o);let r=s.querySelector(".form .product-actions .product-actions-add-to-cart");r&&t.push(r);let c=s.querySelector(".product-price__compare");
7194c&&t.push(c),c=s.querySelector("compare-at-price"),c&&t.push(c);let l=s.querySelector("unit-price");l&&t.push(l),e=s.querySelector(".buy-buttons"),e&&t.push(e);let u=s.querySelector(".product-info__badge-list");u&&t.push(u)}if(s=c.closest(".price"),s){if(s.textContent.includes("From")){let e=s.innerHTML;s.innerHTML=e.replace("From","")}}if(s=c.closest("#product-right"),s){let e=s.querySelector(".was");e&&t.push(e);let o=s.querySelector(".product-add");o&&t.push(o)}if(s=c.closest(".was"),s&&t.push(s),s=c.closest(".product-single__meta"),s){let e=s.querySelector(".pf__actions");e&&t.push(e);let o=s.querySelector("div.product-form__controls-group.product-form__controls-group--submit");o&&o.setAttribute("style","visibility:hidden")}if(s=c.closest(".product-item"),s){let e=s.querySelector(".product-item__add");e&&t.push(e)}if(s=c.closest(".grid-item"),s){let e=s.querySelector("#addToCart-product-template");e&&t.push(e);let o=s.querySelector(".payment-buttons");o&&t.push(o)}if(s=c.closest(".product-single__meta"),s){let e=s.querySelector("div.payment-buttons");e&&e.remove()}if(s=c.closest(".modal--root"),s){let e=s.querySelector(".product-form--button-container");e&&t.push(e)}if(s=c.closest(".product-item__info"),s){let e=s.querySelector("a.product-item__action-button.button.button--small.button--primary");e&&t.push(e)}if(s=c.closest(".product-form__info-list"),s){let e=s.querySelector("div.product-form__info-item.product-form__info-item--quantity");e&&t.push(e)}if(s=c.closest(".large--three-fifths"),s){let e=s.querySelector(".multivariants_setbox_footer");e&&t.push(e)}if(s=c.closest(".product-info-main"),s){let e=s.querySelector(".qty-box");e&&t.push(e);let o=s.querySelector(".btn.btn-cart");o&&t.push(o);let r=s.querySelector(".shopify-payment-button");r&&t.push(r)}if(s=c.closest(".product-miniature"),s){let e=s.querySelector(".qty-box");e&&t.push(e);let o=s.querySelector(".product.actions.product-item-actions");o&&t.push(o)}if(s=c.closest("#AddToCartForm"),s){let e=s.querySelector(".paymentButtonsWrapper");e&&t.push(e)}if(s){let e=s.querySelector("#product-add");e&&e.remove()}if(s){let e=s.querySelector("#product-price>.product-price");e&&e.remove()}if(s=c.closest(".grid-view-item"),s){let e=s.querySelector(".quick-add-button");e&&t.push(e)}if("tinalykkegaard.myshopify.com"===o){if(s=c.closest(".main-product__details>.main-product__details-wrapper"),s){let e=s.querySelector(".main-product__actions .main-product__form-buttons");e&&e.remove()}if(s=c.closest(".product-grid .product-card"),s){let e=s.querySelector('form[action="/cart/add"]');e&&e.remove()}}if(s=c.closest(".product-item-caption"),s){let e=s.querySelector(".product-form__item--submit");e&&t.push(e)}if(s=c.closest(".product-item-caption"),s){let e=s.querySelector(".product-form__item--quantity");e&&t.push(e)}if(s=c.closest(".productgrid--item"),s){let e=s.querySelector(".productitem--actions");e&&t.push(e)}if(s=c.closest(".product-single__info-wrapper"),s){let e=s.querySelector(".product-form__quantity-submit");e&&t.push(e);let o=s.querySelector(".shopify-payment-button");o&&t.push(o)}if(s=c.closest(".qv-content"),s){let e=s.querySelector(".qv-add-button");e&&t.push(e);let o=s.querySelector(".qv-quantity");o&&t.push(o)}if(s=c.closest(".product-card"),s){let e=s.querySelector(".btn-grid-cart");e&&t.push(e)}if(s=c.closest(".product_single_detail_section"),s){let e=s.querySelector("#AddToCart");e&&t.push(e);let o=s.querySelector(".shopify-payment-button__button");o&&t.push(o);let r=s.querySelector(".quantity-label");r&&t.push(r);let c=s.querySelector(".quantity_width");c&&t.push(c)}if(s=c.closest(".product-single__meta"),s){let e=s.querySelector("#AddToCart--product-template");e&&t.push(e);let o=s.querySelector(".shopify-payment-button");o&&t.push(o)}if(s=c.closest('form[action="/cart/add"]'),s){let e=s.querySelector(".product-page-info__field");e&&t.push(e);let o=s.querySelector(".product-page-info__button-add-to-cart");o&&t.push(o);let r=s.querySelector(".js-store-lists-add-wishlist");r&&t.push(r);let c=s.querySelector(".product-collection__control");c&&t.push(c)}if(s=c.closest(".grid-item__content"),s){let e=s.querySelector(".quick-add-btn");if(e&&t.push(e),window.Shopify&&"sparklinbluewholesale.myshopify.com"===window.Shopify.shop){let e=s.querySelector(".grid-product__price--original"),o=s.querySelector(".grid-product__price--savings"),r=s.querySelector(".quick-product__btn");e&&t.push(e),o&&t.push(o),r&&t.push(r)}}if(s=c.closest(".purchase-box"),s){let e=s.querySelector("#AddToCart-product-template");e&&e.remove();let t=s.querySelector(".quantity-product-template");t&&t.remove()}if(s=c.closest(".item-row"),s){let e=s.querySelector(".add-to-cart");e&&t.push(e)}if(s=c.closest(".product-thumbnail__price"),s){let e=s.querySelectorAll(".bsscommerce-ltsp-message");e.length>1&&e.forEach((function(e,o){o>0&&t.push(e)}))}if(s=c.closest(".product-details"),s){let e=s.querySelector(".product__add-to-cart-button");e&&t.push(e);let r=s.querySelector(".product-form__quantity-box-wrapper");if(r&&t.push(r),"sitchish.myshopify.com"===o){let e=s.querySelector("#product-price");e&&(e.id="");let o=s.querySelector("[data-product-price]");o&&o.removeAttribute("data-product-price");let r=s.querySelector(".form-actions");r&&t.push(r)}let c=s.querySelector(".product-quantity");if(c&&t.push(c),"lavabis-hygiene.myshopify.com"===o){let e=s.querySelector(".price-preview.price");e&&(e.id="")}}if(s=c.closest(".product-details"),s){let e=s.querySelector("#add-to-cart-product-template");e&&t.push(e);let o=s.querySelector(".shopify-payment-button__button");o&&o.remove();let r=s.querySelector(".quantity");r&&t.push(r)}if(s=c.closest(".gryffeditor"),s){let e=s.querySelector(".gf_product-quantity");e&&e.parentElement.remove()}if(s=c.closest("#ProductSection-product-template"),s){let e=s.querySelector(".cbb
7194-frequently-bought-add-button");e&&e.remove();let t=s.querySelector(".cbb-frequently-bought-form");t&&t.remove()}if(s=c.closest(".product__info-wrapper"),s){let e=s.querySelector(".product-form__quantity");e&&e.remove();let t=s.querySelector(".product-form__buttons");t&&t.remove()}if(s=c.closest(".product-form"),s){let e=s.querySelector(".product-form__payment-container");e&&e.remove();let o=s.querySelector("#price");if(o&&o.classList.remove("product-price"),window.Shopify&&"wilkens-gmbh.myshopify.com"===window.Shopify.shop){let e=s.querySelector(".unit-price");e&&t.push(e)}}if(s=c.closest(".product-details"),s){let e=s.querySelector(".button-common");e&&e.remove()}if(s=c.closest(".caption"),s){let e=s.querySelector(".button.btn-cart");e&&t.push(e)}if(s=c.closest(".product-info-main"),s){let e=s.querySelectorAll(".form-group")[1];e&&t.push(e);let o=s.querySelector(".price");o&&(o.id="")}if(s=c.closest(".form_buy_sticky"),s){let e=s.querySelector(".form-group .btn.button.button-cart");e&&t.push(e);let o=s.querySelector(".form-group input#Quantity");o&&t.push(o)}if(s=c.closest(".product-template__container"),s){let e=s.querySelector(".store-availability-container");e&&e.remove()}if(s=c.closest(".product-form--container"),s){let e=s.querySelector(".product-form--options");e&&t.push(e);let o=s.querySelector(".product-form--smart-payment-buttons");o&&t.push(o)}if(s=c.closest(".product--price-wrapper"),s){let e=s.querySelector('.product--from[data-item="accent-text"]');e&&t.push(e)}if(s=c.closest("#zpproductselectorfull1-wrapper"),s){let e=s.querySelector(".zpa-button-alignment-center");e&&t.push(e);let o=s.querySelector(".zpa-quantity-block");o&&t.push(o)}if(s=c.closest(".zpa-multi-product-buy-box"),s){let e=s.querySelector(".zpa-button-alignment-center");e&&t.push(e)}if(s=c.closest(".product-block__inner"),s){let e=s.querySelector('form[action="/cart/add"].product-form.product-form--mini');if(e&&t.push(e),window.Shopify&&"wilkens-gmbh.myshopify.com"===window.Shopify.shop){let e=s.querySelector(".unit-price");e&&t.push(e)}}if(s=c.closest(".was-price.theme-money"),s&&t.push(s),s=c.closest(".box_product_page"),s){let e=s.querySelector(".product-options-bottom");e&&t.push(e)}if(s=c.closest(".product-default"),s){let e=s.querySelector(".add-links.clearfix");e&&t.push(e)}if(s=c.closest(".grid__item.medium-up--three-eighths"),s){let e=s.querySelector('form[action="/cart/add"].shopify-product-form');e&&t.push(e)}if(s=c.closest(".indiv-product"),s){let e=s.querySelector('form[action="/cart/add"]');e&&t.push(e)}if(s=c.closest('form.product-form[action="/cart/add"]'),s){let e=s.querySelector(".sf__pcard-image .sf__pcard-quick-add");e&&t.push(e);let o=s.querySelector(".main-product__block-buy_buttons");o&&t.push(o)}if(s=c.closest(".product-grid-item.woodmart-hover-base"),s){let e=s.querySelector(".fade-in-block");e&&t.push(e);let o=s.querySelector(".product-compare-button");o&&t.push(o)}if(s=c.closest(".grid__item"),s){if("www-bonmatch-com.myshopify.com"===o){let e=s.querySelector(".selector-wrapper.bcpo-file"),o=s.querySelector(".uploadkit.uploadkit-injected"),r=s.querySelector(".uploadkit-form");e&&t.push(e),o&&r&&r.appendChild(o)}let e=s.querySelector(".product__submit__buttons");e&&t.push(e);let r=s.querySelector(".products > .product-detail > .product-button"),c=s.querySelector(".products > .product-container > .product-button > .quick-view-text");r&&t.push(r),c&&t.push(c);let l=s.querySelector("button#AddToCart"),u=s.querySelector('[data-shopify="payment-button"].shopify-payment-button');if(l&&t.push(l),u&&t.push(u),"tienda-suca-bikes.myshopify.com"===o){let e=s.querySelector(".product__unit-price.product__unit-price--spacing"),t=s.querySelector(".c_p-quantity-input-parent"),o=s.querySelector(".masIva"),r=s.querySelector(".c_col-sw-btn");e&&e.classList.remove("hide"),t&&t.remove(),o&&o.remove(),r&&r.remove()}if("youchique-4183.myshopify.com"===o){let e=s.querySelector(".card-information__button");e&&t.push(e);let o=s.querySelector(".swym-wishlist-button-bar");o&&t.push(o)}if("stelladetailsb2b.myshopify.com"===o){let e=s.querySelector(".bss-b2b-product-vat");e&&t.push(e);let o=s.querySelector("#bss-b2b-tax-inc-excl");o&&t.push(o);let r=s.querySelector(".bss-b2b-collection-item-vat");r&&t.push(r);let c=s.querySelector(".price__regular");if(c){c.classList.remove("price__regular");let e=s.querySelector(".price-item--regular");e&&e.classList.remove("price-item--regular")}let l=s.querySelector(".price__sale");l&&t.push(l)}let i=s.querySelector("quick-view-drawer");
7194i&&t.push(i);let p=s.querySelector("add-to-cart");p&&t.push(p)}if(s=c.closest(".shop-the-look__product-info"),s){let e=s.querySelector('form[action="/cart/add"]');e&&t.push(e)}if(s=c.closest(".popover.popover--quick-buy"),s){let e=s.querySelector(".product-form__buy-buttons");e&&t.push(e)}if(s=c.closest(".product__section.product-template .product__section-content .product__section-details"),s){let e=s.querySelector('form[action="/cart/add"] input#addToCart');e&&t.push(e)}if(s=c.closest(".product-item__info-inner"),s){let e=s.querySelector(".unit-price-measurement");e&&t.push(e)}if(s=c.closest(".product-form__info-item"),s){let e=s.querySelector(".unit-price-measurement");e&&t.push(e)}if(s=c.closest("div[data-product-blocks]"),s){let e=s.querySelector(".payment-buttons");e&&t.push(e);let o=s.querySelector(".spt-wishlist-button__wrapper");o&&t.push(o)}if(s=c.closest(".sf__pcard-content.text-center"),s){let e=s.querySelector("button.add-to-cart.sf__btn");e&&t.push(e)}if(s=c.closest(".product-details.section"),s){let e=s.querySelector('form#AddToCartForm.product-content-inner[action="/cart/add"]');e&&t.push(e)}if(s=c.closest(".search-item .product-item, .product-grid-row .product-item"),s){let e=s.querySelector(".product-img .action-btn");e&&t.push(e)}if(s=c.closest(".product-collection__content,.product-page-info"),s){let e=s.querySelector(".js-product-button-add-to-cart");e&&t.push(e)}if(s=c.closest(".details-info"),s){let e=s.querySelector(".group-button .add-to-cart");e&&t.push(e)}if(s=c.closest(".product-collection"),s){let e=s.querySelector(".group-button .add-to-cart");e&&t.push(e)}let u=c.closest("[data-js-product-price]");if(u&&u.setAttribute("bss-ltsp-active",""),s=c.closest(".product__info-container"),s){let e=s.querySelector('.form[data-type="add-to-cart-form"] > .shopify-payment-button[data-shopify="payment-button"]');e&&t.push(e)}if(s=c.closest(".products"),s){let e=s.querySelector(".product-container > .product-button > .variants > .add-cart-btn"),o=s.querySelector(".product-container > .product-button > .quick-view-text");e&&t.push(e),o&&t.push(o)}if(s=c.closest(".dt-sc-tabs-container"),s){let e=s.querySelector(".dt-sc-tabs-content > .tab2 > .owl-stage-outer > .owl-stage > .owl-item > .item-row > .products > .product-container > .product-button > .variants > .add-cart-btn");e&&t.push(e)}if(s=c.closest(".wrapper-container"),s){let e=s.querySelector(".recently-viewed-products > .products-grid > .grid__item > .product-item > .products > .product-bottom > .price-box > .regular-product > .special-price"),o=s.querySelector(".recently-viewed-products > .products-grid > .grid__item > .product-item > .products > .product-bottom > .action > .variants > .add-to-cart-btn");e&&t.push(e),o&&t.push(o)}if(s=c.closest(".featured__collection-product.product-index"),s){let e=s.querySelector(".product_listing_options");e&&t.push(e)}if(s=c.closest(".product-index"),s){let e=s.querySelector(".product_listing_options");e&&t.push(e)}if(s=c.closest(".product__section-details"),s){let e=s.querySelector(".product__section-details__inner
7194--product_buttons");e&&t.push(e)}if(s=c.closest(".product-page--cart-form-block"),s){let e=s.querySelector(".add-to-cart");e&&t.push(e)}if(s=c.closest(".price__sale"),s){let e=s.querySelector(".price-item--regular");e&&t.push(e)}if(s=c.closest(".product-item-v1"),s){let e=s.querySelector(".price-old"),o=s.querySelector(".product-icon-action");e&&t.push(e),o&&t.push(o)}if(s=c.closest(".detail-info > .relative"),s){let e=s.querySelector("#AddToCartForm > .btn-action"),o=s.querySelector('div.shopify-payment-button[data-shopify="payment-button"]'),r=s.querySelector(".product-price > del");e&&t.push(e),o&&t.push(o),r&&t.push(r)}if(s=c.closest(".product-details"),s){let e=s.querySelector(".product-block--form>.product-form--regular");e&&"eurosafetysystems.myshopify.com"!==o&&e.remove();let t=s.querySelector(".button-cart");t&&t.remove()}if("annabellenoeldesigns-com.myshopify.com"==o&&(s=c.closest(".product-block-list__item .card__section"),s)){let e=s.querySelector("#MULTIVARIANTS_APP_SECTION_PLACE .multivariants_block_qty_box");e&&e.remove();let t=s.querySelector("#MULTIVARIANTS_APP_SECTION_PLACE .multivariants_block_last_holder .multivariants_block_prc_holder");t&&t.remove();let o=s.querySelector("#MULTIVARIANTS_APP_SECTION_PLACE #multivariants_add_to_cart_button_h");o&&o.remove();let r=s.querySelector("#MULTIVARIANTS_APP_SECTION_PLACE #multivariants_block_subtotal_h");r&&r.remove()}if("fedua-b2b.myshopify.com"==o){if(s=c.closest(".gp-product-detail .container"),s){let e=s.querySelector(".gp-product-main-button button[type='submit']");e&&e.remove();let t=s.querySelector(".cbb-also-bought-add-to-cart-button");t&&t.remove();let o=s.querySelector(".cbb-also-bought-product-price-container");o&&o.remove()}if(s=c.closest(".gp-product-widget .product-card-grid"),s){let e=s.querySelector(".product-buttons .btn-quick-view ");e&&e.remove()}}if(s=c.closest(".product--price-container"),s){let e=s.querySelectorAll(".product--price-wrapper > a");e.length&&e.forEach(e=>e.remove())}if("linis-bites-b2b.myshopify.com"==window.location.host&&c.querySelector("[bss-customize-ltsp-message]")){let e=c.closest(".price .price__container");if(e){let o=e.querySelector(".unit-price.caption");o&&t.push(o)}}if(s=c.closest(".product-price--wrapper"),s){let e=s.querySelector(".product-price--compare");e&&e.remove()}if(s=c.closest(".price__pricing-group"),s){let e=s.querySelector(".price-item.price-item--regular[data-regular-price]");e&&(e.classList.remove("price-item"),e.classList.remove("price-item--regular"))}if(l.forEach((function(e){c.closest(e)&&t.push(c.closest(e))})),s=c.closest(".product-page-info"),s){let e=s.querySelector("[data-js-footbar-product-limit]");e&&t.push(e)}if(s=c.closest(".product-wrap"),s){let e=s.querySelector(".purchase-details button.button--add-to-cart"),o=s.querySelector(".product-action");if(e&&t.push(e),o&&t.push(o),window.Shopify&&"dermafirmusa.myshopify.com"===window.Shopify.shop){let e=s.querySelector(".price.sale");e&&t.push(e)}}if(s=c.closest(".seven.columns.omega"),s){let e=s.querySelector(".purchase-details__buttons button.shopify-payment-button__button ");e&&t.push(e)}if(s=c.closest("#collectionPr"),s){let e=s.querySelectorAll("#PageContainer .collection .btn.add-to-cart");e.length&&e.forEach(e=>{t.push(e)})}if(s=c.closest(".grid.product-single"),s){let e=s.querySelector('#PageContainer .wrap-product-info button[type="submit"].btn.btn1.pr_btn.addtocart_js');e&&t.push(e)}if(s=c.closest(".gryffeditor"),s){let e=s.querySelector(".module-wrap .gf_add-to-cart.product-form-product-template");e&&t.push(e)}if(s=c.closest(".product-single .product-single__meta"),s){let e=s.querySelector('.product-form__item button[name="add"].product-form__cart-submit');e&&t.push(e)}if(s=c.closest(".shopify-product-form"),s){let e=s.querySelector("#product-price");e&&t.push(e)}if(s=c.closest(".product-item-price"),s){let e=s.querySelector(".money");e&&t.push(e)}if(s=c.closest('main#main[role="main"]'),s){let e=s.querySelector("div.atc-bar");e&&t.push(e)}if(s=c.closest("#CartDrawer"),s){let e=s.querySelector("#CartDrawer-CartItems .cart-item .cart-item__details dl .product-option");e&&t.push(e);let o=s.querySelector("#CartDrawer-CartItems .cart-item .cart-item__totals .cart-item__price-wrapper");o&&t.push(o);let r=s.querySelector("#CartDrawer-CartItems .cart-item .cart-item__quantity");r&&t.push(r);let c=s.querySelector(".drawer__footer");c&&t.push(c)}if(s=c.closest("#main-cart-items"),s){let e=s.querySelector(".cart-item .cart-item__details dl .product-option");e&&t.push(e);let o=s.querySelector(".cart-item .cart-item__quantity .cart-item__quantity-wrapper");o&&t.push(o);let r=s.querySelector(".cart-item .cart-item__totals.right.small-hide .cart-item__price-wrapper");r&&t.push(r)}if(s=c.closest("#main-cart-footer"),s){let e=s.querySelector(".cart__footer");e&&t.push(e)}if(s=c.closest(".product-single__meta"),s&&window.Shopify&&("asiadirectfurniture.mysh
7194opify.com"===window.Shopify.shop||"pure-vision-ch.myshopify.com"===window.Shopify.shop)){let e=s.querySelector(".product__price[data-product-price]");e&&t.push(e)}if(s=c.closest(".product-inner.pr"),s){let e=s.querySelector(".pr_atc.pr_qty_atc > a.pr_atc_.js_addtc");e&&t.push(e)}if(s=c.closest("#shopify-section-pr_summary"),s){let e=s.querySelector("p.price_range, .price.price_varies");e&&t.push(e)}if(s=c.closest(".grid__item"),s){let e=s.querySelector(".product__form-container"),o=s.querySelector(".product__description");e&&(t.push(e),o.style.width="100%")}if(s=c.closest(".featured-product__content-wrapper"),s){let e=s.querySelector(".product-form");e&&t.push(e)}if(s=c.closest(".card__price"),s&&"exosomes-inc.myshopify.com"===o&&(s.style.textAlign="center"),s=c.closest(".Product__InfoWrapper > .Product__Info "),s){let e=s.querySelector('.ProductForm__BuyButtons > button[type="submit"].ProductForm__AddToCart');e&&t.push(e);let o=s.querySelector(".ProductForm__AddToCart");o&&t.push(o)}if(s=c.closest(".product-grid__container .product-grid__content"),s){let e=s.querySelector(".product-single__form .product__quantity");e&&t.push(e);let o=s.querySelector(".add-to-cart");o&&t.push(o);let r=s.querySelector(".product__price--compare");if(r&&t.push(r),window.Shopify&&"sparklinbluewholesale.myshopify.com"===window.Shopify.shop){let e=s.querySelector(".product__price-savings");e&&t.push(e)}}if(s=c.closest(".product-grid-item"),s){let e=s.querySelector(".h1.medium--left");e&&"envogueusa.com"==window.location.host&&t.push(e)}if(s=c.closest("#productPrice-product-template"),s){let e=s.querySelector("small");e&&"envogueusa.com"==window.location.host&&t.push(e),s.appendChild(c)}if(s=c.closest(".product-grid-item"),s){let e=s.querySelector(".form-grid-btn");e&&"mamiereglissepro.myshopify.com"===o&&t.push(e)}if(s=c.closest("#cont-form"),s){let e=s.querySelector(".so-price");e&&t.push(e);let r=s.querySelector("#addToCart");r&&"mamiereglissepro.myshopify.com"===o&&t.push(r)}if(s=c.closest(".template-product"),s){let e=s.querySelector('button[name="add"]#addToCartBis, button[name="add"]#addToCart2');e&&t.push(e)}if(s=c.closest(".grid-product__content"),s){let e=s.querySelector(".quick-product__btn");!e||"wood-hill-boards.myshopify.com"!==o&&"wood-hill-boards-usa.myshopify.com"!==o&&"bundlecomph.myshopify.com"!==o||t.push(e)}if(s=c.closest(".product-single__meta"),s){let e=s.querySelector(".product__quantity");!e||"wood-hill-boards.myshopify.com"!==o&&"wood-hill-boards-usa.myshopify.com"!==o||t.push(e)}if(s=c.closest(".product-block-area"),s){let e=s.querySelector("#addToCartButton");e&&"wanderlustvision.myshopify.com"===o&&t.push(e)}if(s=c.closest(".product-single__meta--wrapper .product-single__meta"),s){let e=s.querySelector(".price-container.text-money"),o=s.querySelector('button[name="add"].btn--add-to-cart');e&&t.push(e),o&&t.push(o)}if(s=c.closest(".product-single__metas"),s){let e=s.querySelector(".product-single__buttons .js-quantity-selector.product-quantity"),o=s.querySelector(".product-single__buttons button.btn--add-to-cart");e&&t.push(e),o&&t.push(o)}if("dollie-wholesale.myshopify.com"===o&&(s=c.closest(".product-card"),s)){let e=s.querySelector(".product-card__buttons .product-card__quickview"),o=s.querySelector(".product-card__buttons .product-card__form"),r=s.querySelector(".product-card__buttons .button-wishlist"),c=s.querySelector(".wpb-variants-swatch");e&&t.push(e),o&&t.push(o),r&&t.push(r),c&&t.push(c)}if("obsequ.myshopify.com"===o&&(s=c.closest(".product-meta"),s)){let e=s.querySelector(".price-list[data-product-price-list]");e&&e.remove()}if(s=c.closest(".sticky-cart"),s){let e=s.querySelector(".product-form__buttons");e&&t.push(e)}if("wholesale-rubypearlco.myshopify.com"!==o&&"coventa-demo.myshopify.com"!==o&&(s=c.closest(".productitem--info")||c.closest(".product-pricing"),s)){let e=s.querySelector(".price");e&&t.push(e)}if(s=c.closest(".productitem--info"),s){let e=s.querySelector(".price__compare-at.visible");e&&"coventa-demo.myshopify.com"===o&&t.push(e)}if(s=c.closest(".product-block-list"),s&&window.Shopify&&"axiom-wholesale-parts.myshopify.com"===window.Shopify.shop){let e=s.querySelector(".price");e&&e.classList.remove("price")}if(s=c.closest(".product-layout"),s){let e=s.querySelector(".action-links");e&&t.push(e)}if(s=c.closest(".product-single__meta"),s){let e=s.querySelector(".product-block--price");e&&"comphycompany.myshopify.com"===o&&t.push(e)}if(s=c.closest(".product-details, .modal_price"),s){let e=s.querySelector(".current_price, .price__container");e&&t.push(e)}if("wholesale-rubypearlco.myshopify.com"===window.Shopify.shop&&(s=c.closest(".productitem__container .productitem--info, .product-details .product-pricing"),s)){let e=s.querySelectorAll(".price__compare-at--single, .price__compare-at, .price__current--max");
7194e.length&&e.forEach(e=>e.remove())}if("kerriecapelliusa-com.myshopify.com"===window.Shopify.shop&&(s=c.closest(".product-detail.quickbuy-content.spaced-row.container"),s)){let e=s.querySelectorAll(".product-form.theme-init .variant-visibility-area");e.length&&e.forEach(e=>e.remove())}if(s=c.closest(".widget_if_pr, .product-inner, .al_center.fl_center, .widget_if_pr"),s){let e=s.querySelectorAll(".product-price-pr-search, .hover_button, .nt_add_w, .nt_add_cp, .sticky_atc_btn.variations_form, .transcy-money");e.length&&e.forEach(e=>e.remove())}if(s=c.closest(".ProductItem__Wrapper, .ProductForm"),s){let e=s.querySelector(".ProductItem__PriceList, .ProductForm__QuantitySelector");e&&"sirenwireless.myshopify.com"!==o&&e.remove();let r=s.querySelector(".ProductFormWrapper");r&&"sirenwireless.myshopify.com"===o&&t.push(r)}if("butterfly-health-and-wellness.myshopify.com"===window.Shopify.shop){if(s=c.closest(".item-content"),s){let e=s.querySelector('.module-wrap[data-label="(P) Cart Button"] button.gf_add-to-cart');e&&e.remove()}if(s=c.closest(".gf_product-desc"),s){let e=s.querySelector("h4");e&&(e.remove(),c.style.display="none")}if(s=c.closest(".gf_column[data-id]"),s){let e=s.querySelectorAll('.elementor-section[data-element_type="section"] .elementor-text-editor strong, .gf_product-desc h4, .gf_product-desc strong');if(e)for(let t of e)t.remove()}}if(s=c.closest(".product-block"),s){let e=s.querySelector(".quickbuy-toggle");e&&t.push(e)}if(s=c.closest(".productView-details"),s){let e=s.querySelector(".productView-buttons"),r=s.querySelector(".quantity_selector"),c=s.querySelector(".productView-subtotal");e&&t.push(e),r&&t.push(r),c&&t.push(c),"remote-king-au.myshopify.com"===o&&s.querySelectorAll(".product-customInformation").forEach(e=>e.remove())}if(s=c.closest(".product__content"),s&&"campomarzio-trade-uk.myshopify.com"===o){let e=s.querySelector(".product__text"),o=s.querySelector(".select__fieldset"),r=s.querySelector(".product__submit");e&&t.push(e),o&&t.push(o),r&&t.push(r)}if(s=c.closest(".product-card__price, .product-single__meta-list"),s){let e=s.querySelector(".product-single__price, .money-product");e&&e.remove()}if("ens-nutrition-3419.myshopify.com"===o&&(s=c.closest(".card__content"),s)){let e=s.querySelector(".button.quick-add__submit");e&&e.remove()}if("b2b-nandu.myshopify.com"===o){if(s=c.closest(".grid-product__content"),s){let e=s.querySelector(".grid-product__meta .grid-product__price ");e&&e.remove()}let e=c.closest(".product-single__meta");if(e){let t=e.querySelector(".product__price.product__price--compare"),o=e.querySelector(".product__price.on-sale"),r=e.querySelector(".product__price-savings");t&&o&&r&&(t.remove(),o.remove(),r.remove())}}if("impjarwholesale.myshopify.com"===o){if(s=c.closest(".tp-product-content"),s){let e=s.querySelector("button#AddToCart"),o=s.querySelector(".tp-product-singe-action .tp-product-quantity");e&&t.push(e),o&&t.push(o)}if(s=c.closest(".grid-item"),s){let e=s.querySelector('form[action="/cart/add"]');e&&t.push(e)}}if("b2b-dbodhi-singapore.myshopify.com"===o&&(s=c.closest("del"),s&&t.push(c),s=c.closest(".product-information--inner"),s)){const e=s.querySelector(".product-form");e&&t.push(e)}if(s=c.closest(".lh-details-product"),s){if("ags2020.myshopify.com"===o){let e=s.querySelector(".lh-price");e&&e.classList.remove("lh-price")}let e=s.querySelector(".lh-add_to_cart");e&&t.push(e);let r=s.querySelector(".lh-buy-now");r&&t.push(r);let c=s.querySelector(".lh-compare-at-price");c&&t.push(c)}if(s=c.closest(".lh-collection-item"),s){if("ags2020.myshopify.com"===o){let e=s.querySelector(".lh-price");e&&e.classList.remove("lh-price")}let e=s.querySelector(".lh-product-compare-price");e&&t.push(e)}if(s=c.closest(".ProductMeta, .ProductItem__Info"),s){let e=s.querySelectorAll(".Price");e&&e.forEach(e=>e.remove())}}t.forEach((function(e){e.remove()}))}}(e),function(e){e.ltsp.removeElementByLTSPWrapper=function(){let e=document.getElementsByClassName("bss-ltsp-price-wrapper"),t=[];for(let o=0;o<e.length;o++){let r=e[o],c=[],l=r.closest(".product-parent");if(l){let e=l.querySelector("form .tt-btn-addtocart");e&&t.push(e);let o=l.querySelector(".tt-btn-quickview");o&&t.push(o)}if(l=r.closest(".product-single__meta"),l=r.closest(".tt-product-single-info"),l){let e=l.querySelector("form .btn-addtocart");e&&t.push(e);let o=l.querySelector('form[action*="/cart/add"]');o&&t.push(o)}if(l=r.closest(".product_section"),l){let e=l.querySelector("form .add_to_cart, form .b2b-ajax-submit");e&&t.push(e);let o=l.querySelector(".sale.savings");o&&t.push(o)}if(l=r.closest(".quick-shop-style--inline"),l){let e=l.querySelector("form .add_to_cart, form .b2b-ajax-submit");e&&t.push(e)}if(l=r.closest(".product-details"),l){let e=l.querySelector("small em");e&&t.push(e)}if(l=r.closest(".gt_product-body"),l){let e=l.querySelector("form .gt_product-addtocart");e&&t.push(e);let o=l.querySelector(".gt_product-saved");o&&t.push(o);let r=l.querySelector(".gt_product-price--compare");r&&t.push(r)}if(l=r.closest(".gt_product_content"),l){let e=l.querySelector("form .gt_product-addtocart");e&&t.push(e);let o=l.querySelector(".gt_product-price--compare");o&&t.push(o)}if(l=r.closest(".gt-single-product"),l){let e=l.querySelector("div.gt_method_addToCart");e&&t.push(e);let o=l.querySelector(".gt_product-price--compare");o&&t.push(o)}if(l=r.closest("#cont-form"),l){let e=l.querySelector("form .cont-add-btns");e&&t.push(e)}if(l=r.closest(".theiaStickySidebar"),l){let e=l.querySelector(".variations_button");e&&t.push(e)}if(l=r.closest(".product-submit"),l){let e=l.querySelector(".payment-buttons-container");e&&t.push(e)}if(l=r.closest(".productitem"),l){let e=l.querySelector(".productitem--action");e&&t.push(e)}if(l=r.closest(".product--outer"),l){let e=l.querySelector(".product-form--atc");e&&t.push(e),e=l.querySelector(".shopify-payment-button"),e&&t.push(e)}if(l=r.closest(".product-grouped"),l){let e=l.querySelector(".product_top form#add-to-cart-form");e&&t.push(e)}if(l=r.closest(".product-item"),l){let e=l.querySelector(".product-top .product-des .action");e&&t.push(e)}if(l=r.closest(".product-item"),l){let e=l.querySelector('.product-item__action-button[data-action="add-to-cart"]');e&&t.push(e)}if(l=r.closest(".grid__item.grid-product"),l){let e=l.querySelector('form[action="/cart/add"] input[type="submit"]');e&&t.push(e);let o=l.querySelector(".grid-product__tag");o&&t.push(o);let r=l.querySelector(".visually-hidden");r&&t.push(r)}if(l=r.closest(".product-info"),l){let e=l.querySelector('form[action="/cart/add"] .payment-buttons');e&&t.push(e);let o=l.querySelector(".variant-wrapper.variant-wrapper--button");o&&t.push(o)}if(l=r.closest("#product-right"),l){let e=l.querySelector(".was");e&&t.push(e);let o=l.querySelector(".product-add");o&&t.push(o)}if(l=r.closest(".was"),l&&t.push(l),l=r.closest(".product-single__meta"),l){let e=l.querySelector(".pf__actions");e&&t.push(e)}if(l=r.closest("#AddToCartForm-product-template"),l){let e=l.querySelector("#CartButtons-product-template");e&&t.push(e)}if(l=r.closest(".Product__Info"),l){let e=l.querySelector(".ProductMeta__PriceList");e&&t.push(e)}if(l=r.closest(".grid-item"),l){let e=l.querySelector("#addToCart-product-template");e&&t.push(e);let o=l.querySelector(".payment-buttons");o&&t.push(o)}c.forEach((function(e){r.closest(e)&&t.push(r.closest(e))}))}t.forEach((function(e){e.remove()}))}}(e),e.ltsp.removePattern=function(){e.ltsp.removeElementByLTSPMessage(),e.ltsp.removeElementByLTSPWrapper()},e.ltsp.insertBeforeAddToCart=function(){let t=document.querySelectorAll(".bsscommerce-ltsp-message[data-ltsp-cart-message]");for(let o=0;o<t.length;o++){let r=t[o],c=r.getAttribute("data-ltsp-cart-message");r.removeAttribute("data-ltsp-cart-message");let l=[".main-content .product-single__meta",".main-content .grid__item",".main-content .grid-item",".main-content .product__content.product__content--template.product__content--information","main#MainContent .product__info-container",".container#product-product .product-info-main",'main#main section[data-section-id="collection-template"] .product-item',".product-area__details.product-detail .product-detail__form"];for(let t=0;t<l.length;t++){let o=r.closest(l[t]);if(o&&!o.querySelector(".bsscommerce-ltsp-message.hide-message")){let t=
7194o.querySelector('form[action="/cart/add"]');if(t){let o=e.helperLTSP.createHidePriceMessageSpan(c);t.before(o)}}}let s=[[".product-layout .item .item-inner .caption",".button.btn-cart"],['main#main section[data-section-id="product-template"] .card__section',".product-form__payment-container"],[".main#MainContent .content.product",'form[action="/cart/add"] .offers']];for(let t=0;t<s.length;t++){let o=r.closest(s[t][0]);if(o&&!o.querySelector(".bsscommerce-ltsp-message.hide-message")){let r=o.querySelector(s[t][1]);if(r){let t=e.helperLTSP.createHidePriceMessageSpan(c);r.before(t)}}}if(window.Shopify&&"airbesafe.myshopify.com"===window.Shopify.shop){let t=[[".shopify-section--main-collection .product-list__inner .product-item ",".product-item__info  .product-item-meta__price-list-container .price-list"],[".shopify-section--main-product .product--thumbnails-bottom .product__info",".product-meta__price-list-container"],["product-item.product-item .product-item__info",".product-item-meta__price-list-container"]];for(let o=0;o<t.length;o++){let l=r.closest(t[o][0]);if(l&&!l.querySelector(".bsscommerce-ltsp-message.hide-message")){let r=l.querySelector(t[o][1]);if(r){let t=e.helperLTSP.createHidePriceMessageSpan(c);r.after(t)}}}}}}}function c(e){!function(e){e.helperLTSP={},e.helperLTSP.createHidePriceMessageSpan=function(e){let t=document.createElement("span");return t.classList.add("bsscommerce-ltsp-message"),t.classList.add("hide-message"),t.style.fontSize="16px",t.style.fontWeight="normal",t.style.color="initial",t.style.textTransform="none",t.style.visibility="visible",t.innerHTML=e,t},e.helperLTSP.onLoadMore=function(e){const t=document.querySelector([".sf__product-listing[data-product-container] > div",'.row[data-js-collection-replace="products"]',".product-list-container .product-list.use-infinite-scroll","#collection-product .product-container",".container #col-main"].join(","));if(t){new MutationObserver((function(t){t.forEach((function(t){t.addedNodes.length&&e()}))})).observe(t,{childList:!0})}}}(e)}function l(){const e={};c(e),r(e),function(e){e.ptvp={},e.ptvp.addPasscodeForm=function(){let e=document.querySelector('form[action*="/cart/add"]'),t=document.getElementsByClassName("bss-passcode-wrapper-tag"),o=document.getElementsByClassName("bsscommerce-password-form"),r=document.querySelector(".toggle-passcode-input"),c=null;if(o.length&&(c=o[0],c.style.display="block",r&&r.addEventListener("click",(function(e){let t=document.getElementById("bsscommerce-password");"password"===t.type?(t.type="text",e.target.closest(".toggle-passcode-input").style.fill="#5C5F62"):(t.type="password",e.target.closest(".toggle-passcode-input").style.fill="#BABEC3")}))),t.length&&e&&o.length){e.before(c);let o=document.getElementById("bsscommerce-password"),r=new FormData;r.append(o.name,o.value),document.getElementById("bsscommerce-password-submit").style.padding="12px 16px",document.getElementById("bsscommerce-password-submit").style.display="block";let l=new XMLHttpRequest;l.open("post","/cart/update.js"),l.send(r);let s=document.getElementsByClassName("bsscommerce-ltap-password");if(s.length)for(let e=0;e<s.length;e++)s[e].addEventListener("submit",(function(e){e.preventDefault();let t=this;if(t.length)for(let e=0;e<t.length;e++)if("bsscommerce-password"==t[e].id){let o=t[e];if(o.addEventListener("input",(function(){o.classList.remove("input--error")})),o.value)if(""!=o.value){let e=new FormData;e.append(o.name,o.value);let t=new XMLHttpRequest;t.onreadystatechange=function(){4==t.readyState&&200==t.status&&location.reload()},t.open("post","/cart/update.js"),t.send(e)}else o.classList.add("input--error")}}));for(let e=0;e<t.length;e++)t[e].remove()}}}(e),e.ptvp.addPasscodeForm(),document.querySelectorAll(".quick-view-btn").forEach((function(t){t.addEventListener("click",(function(){setTimeout((function(){e.ptvp.addPasscodeForm()}),1e3)}))})),function e(){document.querySelectorAll(".advanced-filter a").forEach((function(t){t.addEventListener("click",(function(){setTimeout((function(){let t=document.getElementsByClassName("bsscommerce-ltsp-message");for(let e=0;e<t.length;e++){let o=t[e].closest(".item-row");
7194if(o){let e=o.querySelector(".add-to-cart");e&&e.remove()}}e()}),1200)}))}))}(),e.ltsp.quickView(),e.ltsp.insertBeforeAddToCart(),e.ltsp.removePattern(),e.helperLTSP.onLoadMore(e.ltsp.removePattern),setTimeout((function(){e.ltsp.removePattern()}),2500);if(window.Shopify&&-1!==["showroom1-ducanero.myshopify.com","sparklinbluewholesale.myshopify.com","youchique-4183.myshopify.com","wilkens-gmbh.myshopify.com","friends-forever-pets.myshopify.com"].indexOf(window.Shopify.shop)&&(window.onscroll=function(e,t){let o;return function(...r){o&&clearTimeout(o),o=setTimeout(()=>{e(...r),o=null},t)}}((function(){let t=setInterval((function(){e.ltsp.removePattern()}),200);setTimeout((function(){clearInterval(t)}),3e3)}),500)),"amoreo.eu"===window.location.host){let t=setInterval((function(){e.ltsp.removePattern()}),200);setTimeout((function(){clearInterval(t)}),3e3)}let t=document.querySelector(".infinite-scrolling-homepage a.btn");"airbesafe.myshopify.com"===window.location.host&&setTimeout((function(){e.ltsp.insertBeforeAddToCart()}),3e3),t&&(t.onclick=function(){setTimeout((function(){e.ltsp.removePattern()}),1e3)});let o=document.querySelectorAll("#shopify-section-product-recommendations, .product-modal-wrapper");var l,s,u;(o.length&&o.forEach((function(t){t.addEventListener("DOMSubtreeModified",(function(){e.ltsp.removePattern()}))})),"valleys-group.myshopify.com"===window.location.host)&&(l=function(){e.ltsp.removePattern();
7194let t=document.querySelectorAll(".slideout__drawer-right, .sidebar_leftside_wapper, .filtering__results");t.length&&t.forEach((function(e){e.addEventListener("click",(function(){setTimeout(()=>{l()},1700)}))}))});"b.salonpremium.com"===window.location.host&&(s=function(){e.ltsp.removePattern();let t=document.querySelectorAll(".pagination");t.length&&t.forEach((function(e){e.addEventListener("click",(function(){setTimeout(()=>{s()},3e3)}))}))});"www.internationalbeauty.ca"===window.location.host&&(u=function(){let t=document.querySelector('[id^="RecentlyViewed"]');new MutationObserver((function(t){t.forEach((function(t){t.addedNodes.length&&(e.ltsp.removePattern(),document.querySelectorAll(".btn--icon.quick-product__btn").forEach((function(e){e.addEventListener("click",(function(){setTimeout((function(){let e=document.getElementsByClassName("bsscommerce-ltsp-message");for(let t=0;t<e.length;t++){let o=e[t].closest(".product-grid__content");if(o){let e=o.querySelector(".payment-buttons");e&&e.remove()}}u()}),2e3)}))})))}))})).observe(t,{childList:!0})});if("bluebasketb2b.myshopify.com"===window.Shopify.shop){let t=document.querySelector("#CartDrawer");const o=()=>{let e=document.querySelectorAll("script#bss-ltap-login-require");for(let t in e)t.remove()};if(t){new MutationObserver((function(t){t.forEach((function(t){t.addedNodes.length&&(e.ltsp.removePattern(),o())}))})).observe(t,{childList:!0})}}if("dollie-wholesale.myshopify.com"===window.Shopify.shop){let t=document.querySelector("#product-grid .products__row");if(t){new MutationObserver((function(t){t.forEach((function(t){t.addedNodes.length&&e.ltsp.removePattern()}))})).observe(t,{childList:!0})}}if("impjarwholesale.myshopify.com"===window.Shopify.shop){let t=document.querySelector(".tp-collection-content");if(t){new MutationObserver((function(t){t.forEach((function(t){t.addedNodes.length&&e.ltsp.removePattern()}))})).observe(t,{childList:!0})}}if("inex-studio.myshopify.com"===window.Shopify.shop){let t=document.querySelector("#Search .Search__Results");if(t){new MutationObserver((function(t){t.forEach((function(t){t.addedNodes.length&&e.ltsp.removePattern()}))})).observe(t,{childList:!0,subtree:!0})}}}o.r(t),o.d(t,"default",(function(){return l})),l()}]);
7195 </script>
7195
7196 
7197       </main>
7198       
7199       <div id="shopify-section-newsletter" class="shopify-section"><br>
7200   <style>
7201     #shopify-section-newsletter {
7202       background: url('https://image.banker88.live/uploads/688366a5f33400a778ad05b5.webp');
7203       background-attachment: fixed;
7204       margin-bottom: 0;
7205     }
7206     input:-webkit-autofill,
7207     input:-webkit-autofill:hover,
7208     input:-webkit-autofill:active,
7209     input:-webkit-autofill:focus {
7210       -webkit-box-shadow:0 0 0 50px white inset;
7211       -webkit-text-fill-color: #ffffff;
7212     }
7213     .section-newsletter {
7214       max-width: 800px;
7215       margin: auto;
7216       padding: 50px 0;
7217     }
7218     .section-newsletter h2 {
7219       font-weight: 700;
7220       font-size: 24px;
7221     }
7222     .section-newsletter input[type="email"] {
7223       width: 100%;
7224       text-align: center;
7225       border: none;
7226       border-bottom: 1px solid #ffffff;
7227       font-size: 16px;
7228       color: #757575;
7229       background-color: #eeeeee;
7230     }
7231     .section-newsletter .row label {
7232       font-size: 14px;
7233       cursor: pointer;
7234     }
7235     .section-newsletter .radio-inline input {
7236       width: auto;
7237     }
7238     .section-newsletter .btn {
7239       width: 130px;
7240       border: 1px solid #ffffff;
7241       box-shadow: none;
7242       font-size: 16px;
7243       font-weight: 500;
7244       text-transform: uppercase;
7245     }
7246     .section-newsletter form {
7247       margin: 30px 0 60px;
7248     }
7249     .section-newsletter input[type="radio"] {
7250       position: absolute;
7251       width: 1px;
7252       height: 1px;
7253     }
7254     .section-newsletter [type="radio"]:checked + label, .section-newsletter [type="radio"]:not(:checked) + label {
7255       position: relative;
7256       padding-left: 28px;
7257       cursor: pointer;
7258       line-height: 20px;
7259       display: inline-block;
7260       color: #666;
7261     }
7262     .section-newsletter [type="radio"]:checked + label:before, .section-newsletter [type="radio"]:not(:checked) + label:before {
7263       content: '';
7264       position: absolute;
7265       left: 0;
7266       top: 0;
7267       width: 18px;
7268       height: 18px;
7269       border: 1px solid #ddd;
7270       border-radius: 100%;
7271       background: #fff;
7272     }
7273     .section-newsletter [type="radio"]:checked + label:after, .section-newsletter [type="radio"]:not(:checked) + label:after {
7274       content: '';
7275       width: 12px;
7276       height: 12px;
7277       background: #ffffff;
7278       position: absolute;
7279       top: 3px;
7280       left: 3px;
7281       border-radius: 100%;
7282       -webkit-transition: all 0.2s ease;
7283       transition: all 0.2s ease;
7284     }
7285     .section-newsletter [type="radio"]:not(:checked) + label:after {
7286       opacity: 0;
7287       -webkit-transform: scale(0);
7288       transform: scale(0);
7289     }
7290     .opt-newsletter {display:none;}
7291     .footer-newsletter p, .footer-newsletter p a {
7292       color: #757575;
7293     }
7294     @media (max-width:991px){
7295       .section-newsletter h2 {
7296         font-size: 32px;
7297       }
7298       .section-newsletter input {
7299         width: 300px;
7300         font-size: 14px;
7301       }
7302       .section-newsletter {
7303         padding: 50px 20px;
7304       }
7305     }
7306     @media (max-width: 480px){
7307       .section-newsletter input[type="email"] {font-size: 16px;}
7308     }
7309   </style>
7310  <style>
7311 .icon-img-footer {
7312     width: 80px; 
7313     padding: 0px 5px;
7314 }
7315 @media (min-width: 768px) {
7316     .icon-img-footer {
7317         width: 120px; 
7318     }
7319 }
7320 @media (min-width: 992px) {
7321     .icon-img-footer {
7322         width: 120px; 
7323     }
7324 }
7325 
7326   .button-login-daftar {
7327                         display: grid;
7328                         grid-template-columns: repeat(2, 1fr);
7329                         font-weight: 700;
7330                     }
7331                     .button-login-daftar a {
7332                         text-align: center;
7333                     }
7334                     .login,
7335                     .register {
7336                         color: #fff000;
7337                         padding: 15px 10px;
7338                         font-size: 23px;
7339                     }
7340                     .login,
7341                     .login-button {
7342                         background: linear-gradient(to bottom,#000000 0,#000000 100%);
7343                         border: 2px solid #fff000;
7344                     }
7345                     .register,
7346                     .register-button {
7347                         background: linear-gradient(to bottom,#000000 0,#000000 100%);
7348                         border: 2px solid #fff000;
7349                     }
7350 
7351 
7352 
7353 </style>
7354 
7355 <!-- wp:html -->
7356  
7356<script>
7357         document.addEventListener('DOMContentLoaded',
7358             function(){const faqItems=document.querySelectorAll('.faq-item');
7359             faqItems.forEach(item=>{const question=item.querySelector('.faq-question');
7360             question.addEventListener('click',
7361             ()=>{const isActive=item.classList.contains('active');
7362             faqItems.forEach(otherItem=>{otherItem.classList.remove('active')});
7363             if(!isActive){item.classList.add('active')}})})});
7364         </script>
7364
7365 
7366 
7367             <div class="page__overlay" data-view="offCanvasNavToggle" data-off-canvas="close" bis_skin_checked="1">
7368             </div>
7369 <div class="faq-section">
7370<h2>FAQ</h2>
7371<div class="faq-container">
7372    <div class="faq-item">
7373        <button class="faq-question">1.  Apa itu HOLYTOGEL dan keunggulannya sebagai server game Indonesia?<span></span></button>
7374        <div class="faq-answer"><p>HOLYTOGEL adalah server game online terpercaya di Indonesia yang menawarkan performa stabil, sistem keamanan tinggi, serta akses cepat tanpa kendala untuk pengalaman bermain terbaik.</p></div>
7375    </div>
7376    <div class="faq-item">
7377        <button class="faq-question">2. Bagaimana cara mendapatkan tips gacor dan trik bermain di HOLYTOGEL?<span></span></button>
7378        <div class="faq-answer"><p>Pemain dapat mengakses bocoran tips gacor, pola bermain, dan strategi winrate tinggi yang di-update berkala langsung melalui portal resmi HOLYTOGEL.</p></div>
7379    </div>
7380    <div class="faq-item">
7381        <button class="faq-question">3. Seberapa sering informasi dan update game diperbarui di HOLYTOGEL?<span></span></button>
7382        <div class="faq-answer"><p>Informasi pasaran, RTP live, event, dan bocoran game di HOLYTOGEL diperbarui secara real-time setiap hari agar pemain selalu mendapatkan data paling akurat.</p></div>
7383    </div>
7384    <div class="faq-item">
7385        <button class="faq-question">4. Di mana saya bisa mengakses layanan dari server HOLYTOGEL?<span></span></button>
7386        <div class="faq-answer"><p>Platform HOLYTOGEL dapat diakses secara online melalui berbagai perangkat seperti smartphone (Android/iOS) dan komputer dengan koneksi internet yang stabil.</p></div>
7387    </div>
7388    <div class="faq-item">
7389        <button class="faq-question">5. Mengapa HOLYTOGEL direkomendasikan sebagai pilihan server game terpercaya hari ini?<span></span></button>
7390        <div class="faq-answer"><p>HOLYTOGEL menggunakan teknologi enkripsi dan sistem keamanan terbaru untuk melindungi data serta transaksi pemain, menjamin kenyamanan dan layanan 24 jam nonstop.</p></div>
7391    </div>
7392 
7393             </div>
7394 
7395         </div>
7396 
7397     </div>
7398 
7399 
7400 <div class="overlay overlay-cart"></div>
7401 <div id="CartDrawer" class="drawer drawer--right">
7402   <div class="drawer__header pl-2 pr-2">
7403     <div class="drawer__icon-cart display-table-cell">
7404       <a href="/cart" class="">
7405         <svg class="icon icon-cart" version="1.1" xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="32" height="32" viewBox="0 0 32 32"> <path fill="#fff" d="M13.638 23.203c0 0 3.5-2.113 3.502-4.11 0.002-2.304-2.689-3.537-3.497-1.76-0.916-1.778-3.493-1.714-3.497 0.59-0.003 1.999 3.491 5.28 3.491 5.28z"></path> <path fill="#fff" d="M8.112 9.809v16.662l11.063 2.491v-17.58l-11.063-1.573zM7.74 8.858l11.925 1.696c0.213 0.030 0.372 0.218 0.372 0.44v18.519c0 0.284-0.254 0.495-0.523 0.434l-11.925-2.685c-0.198-0.045-0.339-0.225-0.339-0.434v-17.53c0-0.27 0.231-0.477 0.49-0.44z"></path> <path fill="#fff" d="M23.7 10.046l-3.275 0.146-0.388 0.897v17.656l3.664-2.174v-16.526zM24.346 27.214l-4.526 2.685c-0.287 0.17-0.646-0.043-0.646-0.385v-18.519l0.037-0.181 0.534-1.235c0.067-0.154 0.212-0.256 0.375-0.263l3.991-0.178c0.245-0.011 0.45 0.191 0.45 0.444v17.247c0 0.159-0.082 0.306-0.216 0.385z"></path> <path fill="#000" d="M20.772 27.081l-0.501 2.383c-0.050 0.24-0.28 0.392-0.512 0.34s-0.38-0.289-0.33-0.528l0.569-2.707v-16.588c0-0.245 0.193-0.444 0.431-0.444s0.431 0.199 0.431 0.444v16.215l3.296 0.189c0.238 0.014 0.42 0.223 0.406 0.468s-0.217 0.433-0.454 0.419l-3.335-0.191z"></path> <path fill="#fff" d="M20.772 27.081l-0.501 2.383c-0.050 0.24-0.28 0.392-0.512 0.34s-0.38-0.289-0.33-0.528l0.569-2.707v-16.588c0-0.245 0.193-0.444 0.431-0.444s0.431 0.199 0.431 0.444v16.215l3.296 0.189c0.238 0.014 0.42 0.223 0.406 0.468s-0.217 0.433-0.454 0.419l-3.335-0.191z"></path> <path fill="#fff" d="M11.336 8.354l-0.257-0.333c-0.243-0.315 0.012-0.774 0.398-0.717l12.51 1.838c0.236 0.035 0.399 0.26 0.366 0.503s-0.252 0.412-0.487 0.377l-11.436-1.68 0.056 0.073c0.209 0.27 0.052 0.672-0.281 0.718l-4.467 0.607c-0.236 0.032-0.452-0.139-0.484-0.383s0.135-0.467 0.371-0.499l3.711-0.504z"></path> <path fill="#fff" d="M17.152 11.344c0.026-0.003 0.053-0.005 0.079-0.005 0.357 0 0.645 0.297 0.645 0.665s-0.288 0.665-0.645 0.665c-0.322 0-0.59-0.245-0.637-0.565-0.383-0.45-0.515-1.321-0.521-2.536-0.003-0.556 0.026-1.149 0.076-1.739 0.028-0.339 0.057-0.603 0.074-0.735 0.195-2.391-2.008-3.379-3.568-1.658-0.64 0.707-1.041 1.855-1.266 3.412-0.092 0.634-0.137 1.111-0.194 2.024 0.107 0.119 0.172 0.278 0.172 0.453 0 0.342-0.251 0.624-0.573 0.661-0.031 0.005-0.064 0.007-0.097 0.005-0.015-0.001-0.029-0.003-0.044-0.
7405005-0.324-0.036-0.576-0.318-0.576-0.661 0-0.218 0.102-0.412 0.259-0.533 0.058-0.924 0.105-1.415 0.201-2.075 0.249-1.719 0.703-3.020 1.489-3.888 2.114-2.335 5.321-0.897 5.054 2.359-0.018 0.141-0.045 0.392-0.072 0.717-0.047 0.566-0.075 1.133-0.073 1.658 0.004 0.839 0.098 1.47 0.216 1.78z"></path> <path fill="#fff" d="M14.43 8.138c-0.008 0.245-0.207 0.438-0.445 0.43s-0.424-0.213-0.417-0.459c0.001-0.026 0.001-0.026 0.002-0.051 0.029-0.909 0.047-1.282 0.102-1.792 0.164-1.528 0.58-2.665 1.434-3.481 2.037-1.949 5.235-0.623 5.066 2.208-0.007 0.119-0.018 0.331-0.029 0.608-0.022 0.539-0.033 1.084-0.029 1.59 0.007 0.797 0.053 1.412 0.139 1.744 0.062 0.237-0.075 0.481-0.305 0.544s-0.466-0.077-0.528-0.314c-0.111-0.427-0.161-1.097-0.168-1.966-0.004-0.523 0.007-1.081 0.029-1.634 0.011-0.284 0.023-0.502 0.030-0.626 0.119-1.995-2.13-2.927-3.619-1.501-0.673 0.644-1.021 1.591-1.164 2.927-0.051 0.479-0.069 0.838-0.097 1.723-0.001 0.026-0.001 0.026-0.002 0.052z"></path> </svg>
7406       </a>
7407     </div>
7408     <div class="drawer__title h4">Keranjang Belanja</div>
7409     <div class="drawer__close js-drawer-close">
7410       <button type="button">
7411         <svg class="icon icon-close" version="1.1" xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="32" height="32" viewBox="0 0 32 32">
7412 <title>icon-close</title>
7413 <path d="M16.943 16l8.862 8.862c0.26 0.26 0.26 0.682 0 0.943s-0.682 0.26-0.943 0l-8.862-8.862-8.862 8.862c-0.26 0.26-0.682 0.26-0.943 0s-0.26-0.682 0-0.943l8.862-8.862-8.862-8.862c-0.26-0.26-0.26-0.682 0-0.943s0.682-0.26 0.943 0l8.862 8.862 8.862-8.862c0.26-0.26 0.682-0.26 0.943 0s0.26 0.682 0 0.943l-8.862 8.862z"></path>
7414 </svg>
7415       </button>
7416     </div>
7417   </div>
7418   <div id="CartContainer" class="p-2"></div>
7419 </div>
7420 
7421 
7421<script>
7422       
7423     </script>
7423
7424       
7424<script src="//outerbloom.com/cdn/shop/t/138/assets/handlebars.min.js?v=79044469952368397291752652415" defer></script>
7424
7425       <!-- /snippets/ajax-cart-template.liquid -->
7426 
7427   
7427<script id="CartTemplate" type="text/template">
7428   
7429     <form action="/cart" method="post" novalidate class="cart ajaxcart">
7430       <div class="ajaxcart__inner" {{ cart.item_count }}>
7431         {{#items}}
7432         <div class="ajaxcart__product">
7433           <div class="ajaxcart__row" data-line="{{line}}">
7434             <div class="grid">
7435               <div class="grid__item one-quarter">
7436                 <a href="{{url}}" class="ajaxcart__product-image"><img src="{{img}}" alt=""></a>
7437               </div>
7438               <div class="grid__item three-quarters">
7439                 <p class="d-block mb-3">
7440                   <a class="h4 d-block mb-2" href="{{url}}" class="ajaxcart__product-name">{{name}}</a>
7441                   {{#if variation}}
7442                     <span class="ajaxcart__product-meta p">{{variation}}</span>
7443                   {{/if}}
7444                   {{#properties}}
7445                     {{#each this}}
7446                       {{#if this}}
7447                         <span class="ajaxcart__product-meta p hide">{{@key}}: {{this}}</span>
7448                       {{/if}}
7449                     {{/each}}
7450                   {{/properties}}
7451                   
7452                 </p>
7453                 <div class="grid--full display-table">
7454                   <div class="grid__item display-table-cell one-half">
7455                     <div class="ajaxcart__qty">
7456                       <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--minus" data-id="{{key}}" data-qty="{{itemMinus}}" data-line="{{line}}">
7457                         <svg version="1.1" xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="24" height="24" viewBox="0 0 32 32"><title>icon-minus</title><path d="M6.667 16.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h18.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-18.667z"></path></svg>
7458                         <span class="visually-hidden">Kurangi jumlah barang</span>
7459                       </button>
7460                       <input type="text" name="updates[]" class="btn ajaxcart__qty-num" value="{{itemQty}}" min="0" data-id="{{key}}" data-line="{{line}}" aria-label="quantity" pattern="[0-9]*">
7461                       <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--plus" data-id="{{key}}" data-line="{{line}}" data-qty="{{itemAdd}}">
7462                         <svg version="1.1" xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="24" height="24" viewBox="0 0 32 32"><title>icon-plus</title><path d="M16.667 15.333h8.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-8.667v8.667c0 0.368-0.298 0.667-0.667 0.667s-0.667-0.298-0.667-0.667v-8.667h-8.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h8.667v-8.667c0-0.368 0.298-0.667 0.667-0.667s0.667 0.298 0.667 0.667v8.667z"></path></svg>
7463                         <span class="visually-hidden">Tambahkan jumlah barang</span>
7464                       </button>
7465                     </div>
7466                   </div>
7467                   <div class="grid__item display-table-cell one-half text-right">
7468                     {{#if discountsApplied}}
7469                       <small class="ajaxcart-item__price-strikethrough"><s>{{{originalLinePrice}}}</s></small>
7470                       <br><span class="h4">{{{linePrice}}}</span>
7471                     {{else}}
7472                       <span class="h4">{{{linePrice}}}</span>
7473                     {{/if}}
7474                     </div>
7475                   </div>
7476                   {{#if discountsApplied}}
7477                     <div class="grid--full display-table">
7478                       <div class="grid__item text-right">
7479                         {{#each discounts}}
7480                           <small class="ajaxcart-item__discount">{{ this.title }}</small><br>
7481                         {{/each}}
7482                       </div>
7483                     </div>
7484                   {{/if}}
7485                   </div>
7486                 </div>
7487               </div>
7488             </div>
7489           </div>
7490         </div>
7491         {{/items}}
7492       </div>
7493       <div class="ajaxcart__footer">
7494         <div class="grid--full cart-subtotal py-2">
7495             <p>Subtotal</p>
7496             <h3 class="primary">{{{totalPrice}}}</h3>
7497           {{#if totalCartDiscount}}
7498             <p class="ajaxcart__savings text-center"><em>{{{totalCartDiscount}}}</em></p>
7499           {{/if}}
7500         </div>
7501         
7502         <a href="/cart" class="btn btn-cta view-more btn-block cart__checkout mt-2">Checkout</a>
7503         
7504         <p class="cart-checkout-shipping hide">Free Ongkir dengan belanja di atas Rp.10.000 <a href="/pages/pengiriman">detail</a></p>
7505       </div>
7506     </form>
7507   
7508   </script>
7508
7509   
7509<script id="AjaxQty" type="text/template">
7510   
7511     <div class="ajaxcart__qty">
7512       <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--minus" data-id="{{key}}" data-qty="{{itemMinus}}">
7513         <svg version="1.1" xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="24" height="24" viewBox="0 0 32 32">
7514             <title>icon-minus</title>
7515             <path d="M6.667 16.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h18.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-18.667z"></path>
7516         </svg>
7517         <span class="visually-hidden">Kurangi jumlah barang</span>
7518           </button>
7519               <input type="text" class="ajaxcart__qty-num" value="{{itemQty}}" min="0" data-id="{{key}}" aria-label="quantity" pattern="[0-9]*">
7520           <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--plus" data-id="{{key}}" data-qty="{{itemAdd}}">
7521         <svg version="1.1" xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="24" height="24" viewBox="0 0 32 32"><title>icon-plus</title><path d="M16.667 15.333h8.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-8.667v8.667c0 0.368-0.298 0.667-0.667 0.667s-0.667-0.298-0.667-0.667v-8.667h-8.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h8.667v-8.667c0-0.368 0.298-0.667 0.667-0.667s0.667 0.298 0.667 0.667v8.667z"></path></svg>
7522         <span class="visually-hidden">Tambahkan jumlah barang</span>
7523       </button>
7524     </div>
7525   
7526   </script>
7526
7527   
7527<script id="JsQty" type="text/template">
7528   
7529     <div class="js-qty mx-auto mt-2">
7530       <button type="button" class="js-qty__adjust js-qty__adjust--minus" data-id="{{key}}" data-qty="{{itemMinus}}">
7531         <svg version="1.1" xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="24" height="24" viewBox="0 0 32 32"><title>icon-minus</title><path d="M6.667 16.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h18.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-18.667z"></path></svg>
7532         <span class="visually-hidden">Kurangi jumlah barang</span>
7533       </button>
7534       <input type="text" class="js-qty__num" value="{{itemQty}}" min="1" data-id="{{key}}" aria-label="quantity" pattern="[0-9]*" name="{{inputName}}" id="{{inputId}}">
7535       <button type="button" class="js-qty__adjust js-qty__adjust--plus" data-id="{{key}}" data-qty="{{itemAdd}}">
7536         <svg version="1.1" xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="24" height="24" viewBox="0 0 32 32"><title>icon-plus</title><path d="M16.667 15.333h8.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-8.667v8.667c0 0.368-0.298 0.667-0.667 0.667s-0.667-0.298-0.667-0.667v-8.667h-8.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h8.667v-8.667c0-0.368 0.298-0.667 0.667-0.667s0.667 0.298 0.667 0.667v8.667z"></path></svg>
7537         <span class="visually-hidden">Tambahkan jumlah barang</span>
7538       </button>
7539     </div>
7540   
7541   </script>
7541
7542 
7543 <style>
7544   #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty button,
7545   #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty button,
7546   #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty button {display: none;}
7547   #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty input,
7548   #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty input,
7549   #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty input {pointer-events: none;opacity: 0.5;}
7550   #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty input,
7551   #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty input,
7552   #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty input {pointer-events: none;}
7553 </style>
7554       
7554<script src="//outerbloom.com/cdn/shop/t/138/assets/ajax-cart.js?v=51128912329657147331752652452" defer></script>
7554
7555       
7555<script>
7556         jQuery(function($) {
7557           ajaxCart.init({
7558             formSelector: '#AddToCartForm',
7559             cartContainer: '#CartContainer',
7560             addToCartSelector: '#AddToCartXX',
7561             cartCountSelector: '#CartCount, #CartCount2',
7562             cartCostSelector: '#CartCost',
7563             moneyFormat: "Rp {{amount_no_decimals}}"
7564           });
7565           });
7566 
7567           jQuery(document.body).on('afterCartLoad.ajaxCart', function(evt, cart) {
7568             // Bind to 'afterCartLoad.ajaxCart' to run any javascript after the cart has loaded in the DOM
7569             timber.RightDrawer.open();
7570           });
7571       </script>
7571
7572     
7573 
7574 
7575 
7576 <style>
7577   /** Search AutoComplete **/
7578   .resultsearch .ui-menu-item[data-cat="Collection"],
7579   .resultsearch .ui-menu-item[data-cat="Collection"] {display: none;}
7580   .resultsearch .ui-widget.ui-widget-content {
7581     width: 100%;
7582     top: 48px;
7583     border: none;
7584     box-shadow: 0 4px 8px rgba(255, 255, 255, 0.3);
7585   }
7586   .resultsearch .ui-menu-item {text-align: left;}
7587   .resultsearch .ui-menu-item>a, .resultsearch .ui-menu-item>span {display: inline-block;width: 100%;font-size: 16px;}.resultsearch .ui-menu-item img {vertical-align: middle;}.resultsearch .ui-menu-item a[data-cat="Collection"] img {display: none;}.resultsearch .ui-menu .ui-state-focus, .resultsearch .ui-menu .ui-state-active {margin: 0;}.ui-state-active, .ui-widget-content .ui-state-active {background: #f2f2f2;border: none;color: #ffffff;}.resultsearch .ui-menu-item>a,.resultsearch .ui-menu-item>span {display: inline-block;width: 100%;font-size: 13px;}.resultsearch .ui-menu-item a[data-cat="Produk"] img {margin-right: 10px;}.resultsearch .ui-menu-item a[data-cat="Produk"] .price {float: right;padding: 15px 0;}.ui-autocomplete-category.ui-menu-item[data-cat="Produk"]:before {content: "Product Populer";font-size: 13px;padding: 5px;margin: 5px 0;background: #f2f2f2;width: 100%;display: block;color: #ffffff;}.ui-autocomplete-category.ui-menu-item[data-cat="Produk"] span {display: none;}
7588   .ui-state-active {
7589     border: none!important;
7590     background-color: #fafafa!important;
7591     color: #000!important;
7592   }
7593   .ui-menu-item a[data-cat="Collection"] {padding: 5px 12px;}
7594   .ui-menu .ui-menu-item {line-height: normal;}
7595 </style>
7596 
7596<script>
7597 $(window).load(function(){
7598 
7599   function format(item) {var cell = '';cell += "<a data-cat=" + item.category + " " + "href=" + item.url + ">" + "<img src=" + item.images + "/>" + "<span class='title'>" + item.label + "</span>" + "<span class='price'>" + item.price + "</span>" + "</a>";return cell;}
7600 
7601   $.widget("custom.catcomplete", $.ui.autocomplete, {
7602     _renderMenu: function (ul, items) {
7603       // have search reults split up in categories
7604       var that = this,
7605           currentCategory = "";
7606       $.each(items, function (index, item) {
7607         if (item.category != currentCategory) {
7608           ul.append("<li class='ui-autocomplete-category' data-cat=" + item.category + ">" + "<span>" + item.category + "</span>" + "</li>");
7609           currentCategory = item.category;
7610         }
7611         that._renderItemData(ul, item);
7612       });
7613     }
7614   });
7615 
7616   // higlight searched for term
7617   $.ui.autocomplete.prototype._renderItem = function( ul, item ) {
7618     var term = this.element.val(),
7619         html = item.label.replace( term, "<b>$&</b>" );
7620     return $( "<li>" )
7621     .append(format(item))
7622     .appendTo( ul );
7623   };
7624 
7625 
7626   var data = [
7627       { label: "< Rp 500.000", category: "Collection", url: "/collections/rp-500-000", images: " ", price: " " },{ label: "> Rp 1.000.000", category: "Collection", url: "/collections/rp-1-000-000", images: " ", price: " " },{ label: "Acrylic Jewelry Box", category: "Collection", url: "/collections/acrylic-jewelry-box", images: " ", price: " " },{ label: "Ajmal", category: "Collection", url: "/collections/ajmal", images: " ", price: " " },{ label: "Alamat Rumah Duka", category: "Collection", url: "/collections/rumah-duka", images: " ", price: " " },{ label: "Anggrek Bulan", category: "Collection", url: "/collections/anggrek-bulan", images: " ", price: " " },{ label: "Anniversary Gift", category: "Collection", url: "/collections/kado-anniversary", images: " ", price: " " },{ label: "Aquarius ♒️ 20Jan - 18Feb", category: "Collection", url: "/collections/kado-untuk-zodiak-aquarius", images: " ", price: " " },{ label: "Aries ♈️ 21March - 19April", category: "Collection", url: "/collections/kado-untuk-zodiak-aries", images: " ", price: " " },{ label: "Armaf", category: "Collection", url: "/collections/armaf", images: " ", price: " " },{ label: "Aromatherapy Diffuser", category: "Collection", url: "/collections/aromatherapy-diffuser", images: " ", price: " " },{ label: "Artisan Soap", category: "Collection", url: "/collections/artisan-soap", images: " ", price: " " },{ label: "Artisan Tea", category: "Collection", url: "/collections/artisan-tea", images: " ", price: " " },{ label: "AsmaraKu", category: "Collection", url: "/collections/asmaraku", images: " ", price: " " },{ label: "Atkinsons", category: "Collection", url: "/collections/atkinsons", images: " ", price: " " },{ label: "Autumn by Outerbloom", category: "Collection", url: "/collections/autumn-by-outerbloom", images: " ", price: " " },{ label: "Autumn by Outerbloom Chinese New Year", category: "Collection", url: "/collections/autumn-by-outerbloom-chinese-new-year", images: " ", price: " " },{ label: "Autumn by Outerbloom Christmas", category: "Collection", url: "/collections/autumn-by-outerbloom-christmas", images: " ", price: " " },{ label: "Autumn by Outerbloom Luar Jadetabek", category: "Collection", url: "/collections/autumn-by-outerbloom-luar-jadetabek", images: " ", price: " " },{ label: "Autumn by Outerbloom Ramadan", category: "Collection", url: "/collections/autumn-by-outerbloom-ramadan", images: " ", price: " " },{ label: "Autumn Pop", category: "Collection", url: "/collections/autumn-pop", images: " ", price: " " },{ label: "Bachelorette", category: "Collection", url: "/collections/bachelorette", images: " ", price: " " },{ label: "Bag Newborn Hampers", category: "Collection", url: "/collections/bag-newborn-hampers", images: " ", price: " " },{ label: "Balon", category: "Collection", url: "/collections/balon", images: " ", price: " " },{ label: "Beauty Package", category: "Collection", url: "/collections/beauty-package", images: " ", price: " " },{ label: "Best Deal", category: "Collection", url: "/collections/best-deal", images: " ", price: " " },{ label: "Best Seller", category: "Collection", url: "/collections/best-seller", images: " ", price: " " },{ label: "Best Valentine's Deals", category: "Collection", url: "/collections/bes-valentines-deals", images: " ", price: " " },{ label: "Best Value Newborn Hampers Collection", category: "Collection", url: "/collections/best-value-newborn-hampers-collection", images: " ", price: " " },{ label: "Black Tea", category: "Collection", url: "/collections/black-tea", images: " ", price: " " },{ label: "Blessing Hampers", category: "Collection", url: "/collections/blessing-hampers", images: " ", price: " " },{ label: "Bloom Box", category: "Collection", url: "/collections/bloom-box", images: " ", price: " " },{ label: "Bloomcard", category: "Collection", url: "/collections/bloomcard", images: " ", price: " " },{ label: "Boutonniere", category: "Collection", url: "/collections/boutonniere", images: " ", price: " " },{ label: "Bracelet", category: "Collection", url: "/collections/gelang", images: " ", price: " " },{ label: "Buket Bunga Bali", category: "Collection", url: "/collections/buket-bunga-bali", images: " ", price: " " },{ label: "Buket Bunga Bandung", category: "Collection", url: "/collections/buket-bunga-bandung", images: " ", price: " " },{ label: "Buket Bunga Batam", category: "Collection", url: "/collections/buket-bunga-batam", images: " ", price: " " },{ label: "Buket Bunga Demak", category: "Collection", url: "/collections/buket-bunga-demak", images: " ", price: " " },{ label: "Buket Bunga Fresh", category: "Collection", url: "/collections/buket-bunga", images: " ", price: " " },{ label: "Buket Bunga Jepara", category: "Collection", url: "/collections/buket-bunga-jepara", images: " ", price: " " },{ label: "Buket Bunga Medan", category: "Collection", url: "/collections/buket-bunga-medan", images: " ", price: " " },{ label: "Buket Bunga Nusantara", category: "Collection", url: "/collections/buket-bunga-nusantara", images: " ", price: " " },{ label: "Buket Bunga Semarang", category: "Collection", url: "/collections/buket-bunga-semarang", images: " ", price: " " },{ label: "Buket Bunga Sidoarjo", category: "Collection", url: "/collections/buket-bunga-sidoarjo", images: " ", price: " " },{ label: "Buket Bunga Surabaya", category: "Collection", url: "/collections/buket-bunga-surabaya", images: " ", price: " " },{ label: "Buket Bunga Tangerang", category: "Collection", url: "/collections/buket-bunga-tangerang", images: " ", price: " " },{ label: "Buket Bunga Uang", category: "Collection", url: "/collections/buket-bunga-uang", images: " ", price: " " },{ label: "Buket Bunga Valentine", category: "Collection", url: "/collections/buket-bunga-valentine", images: " ", price: " " },{ label: "Buket Bunga Yogyakarta", category: "Collection", url: "/collections/buket-bunga-jogja", images: " ", price: " " },{ label: "Bunga Anggrek Bali", category: "Collection", url: "/collections/bunga-anggrek-bali", images: " ", price: " " },{ label: "Bunga Anggrek Bandung", category: "Collection", url: "/collections/bunga-anggrek-bandung", images: " ", price: " " },{ label: "Bunga Anggrek Surabaya", category: "Collection", url: "/collections/bunga-anggrek-surabaya", images: " ", price: " " },{ label: "Bunga Anniversary", category: "Collection", url: "/collections/bunga-anniversary", images: " ", price: " " },{ label: "Bunga Artificial", category: "Collection", url: "/collections/bunga-artificial", images: " ", price: " " },{ label: "Bunga Buket", category: "Collection", url: "/collections/bunga-buket", images: " ", price: " " },{ label: "Bunga Carnations Bali", category: "Collection", url: "/collections/bunga-carnations-bali", images: " ", price: " " },{ label: "Bunga Carnations Bandung", category: "Collection", url: "/collections/bunga-carnations-bandung", images: " ", price: " " },{ label: "Bunga Carnations Surabaya", category: "Collection", url: "/collections/bunga-carnations-surabaya", images: " ", price: " " },{ label: "Bunga Daisy Bali", category: "Collection", url: "/collections/bunga-daisy-bali", images: " ", price: " " },{ label: "Bunga Daisy Bandung", category: "Collection", url: "/collections/bunga-daisy-bandung", images: " ", price: " " },{ label: "Bunga Daisy Surabaya", category: "Collection", url: "/collections/bunga-daisy-surabaya", images: " ", price: " " },{ label: "Bunga Gerbera Bali", category: "Collection", url: "/collections/bunga-gerbera-bali", images: " ", price: " " },{ label: "Bunga Gerbera Bandung", category: "Collection", url: "/collections/bunga-gerbera-bandung", images: " ", price: " " },{ label: "Bunga Gerbera Surabaya", category: "Collection", url: "/collections/bunga-gerbera-surabaya", images: " ", price: " " },{ label: "Bunga Imlek", category: "Collection", url: "/collections/rangkaian-bunga-tahun-baru-imlek", images: " ", price: " " },{ label: "Bunga Lebaran", category: "Collection", url: "/collections/rangkaian-bunga-lebaran", images: " ", price: " " },{ label: "Bunga Lily Bali", category: "Collection", url: "/collections/bunga-lily-bali", images: " ", price: " " },{ label: "Bunga Lily Bandung", category: "Collection", url: "/collections/bunga-lily-bandung", images: " ", price: " " },{ label: "Bunga Lily Surabaya", category: "Collection", url: "/collections/bunga-lily-surabaya", images: " ", price: " " },{ label: "Bunga Matahari Bali", category: "Collection", url: "/collections/bunga-matahari-bali", images: " ", price: " " },{ label: "Bunga Matahari Bandung", category: "Collection", url: "/collections/bunga-matahari-bandung", images: " ", price: " " },{ label: "Bunga Matahari Surabaya", category: "Collection", url: "/collections/bunga-matahari-surabaya", images: " ", price: " " },{ label: "Bunga Mawar Bali", category: "Collection", url: "/collections/bunga-mawar-bali", images: " ", price: " " },{ label: "Bunga Mawar Bandung", category: "Collection", url: "/collections/bunga-mawar-bandung", images: " ", price: " " },{ label: "Bunga Mawar Surabaya", category: "Collection", url: "/collections/bunga-mawar-surabaya", images: " ", price: " " },{ label: "Bunga Meja", category: "Collection", url: "/collections/bunga-meja", images: " ", price: " " },{ label: "Bunga Meja Bali", category: "Collection", url: "/collections/bunga-meja-bali", images: " ", price: " " },{ label: "Bunga Meja Bandung", category: "Collection", url: "/collections/bunga-meja-bandung", images: " ", price: " " },{ label: "Bunga Meja Batam", category: "Collection", url: "/collections/bunga-meja-batam", images: " ", price: " " },{ label: "Bunga Meja Jepara", category: "Collection", url: "/collections/bunga-meja-jepara", images: " ", price: " " },{ label: "Bunga Meja Medan", category: "Collection", url: "/collections/bunga-meja-medan", images: " ", price: " " },{ label: "Bunga Meja Semarang", category: "Collection", url: "/collections/bunga-meja-semarang", images: " ", price: " " },{ label: "Bunga Meja Sidoarjo", category: "Collection", url: "/collections/bunga-meja-sidoarjo", images: " ", price: " " },{ label: "Bunga Meja Surabaya", category: "Collection", url: "/collections/bunga-meja-surabaya", images: " ", price: " " },{ label: "Bunga Meja Tangerang", category: "Collection", url: "/collections/bunga-meja-tangerang", images: " ", price: " " },{ label: "Bunga Meja Yogyakarta", category: "Collection", url: "/collections/bunga-meja-jogja", images: " ", price: " " },{ label: "Bunga Modern Pastel Bali", category: "Collection", url: "/collections/bunga-modern-pastel-bali", images: " ", price: " " },{ label: "Bunga Modern Pastel Bandung", category: "Collection", url: "/collections/bunga-modern-pastel-bandung", images: " ", price: " " },{ label: "Bunga Modern Pastel Medan", category: "Collection", url: "/collections/bunga-modern-pastel-medan", images: " ", price: " " },{ label: "Bunga Modern Pastel Semarang", category: "Collection", url: "/collections/bunga-modern-pastel-semarang", images: " ", price: " " },{ label: "Bunga Modern Pastel Surabaya", category: "Collection", url: "/collections/bunga-modern-pastel-surabaya", images: " ", price: " " },{ label: "Bunga Modern Pastel Yogyakarta", category: "Collection", url: "/collections/bunga-modern-pastel-yogyakarta", images: " ", price: " " },{ label: "Bunga Natal", category: "Collection", url: "/collections/rangkaian-bunga-christmas", images: " ", price: " " },{ label: "Bunga Papan", category: "Collection", url: "/collections/bunga-papan", images: " ", price: " " },{ label: "Bunga Pernikahan", category: "Collection", url: "/collections/bunga-pernikahan", images: " ", price: " " },{ label: "Bunga Plastik", category: "Collection", url: "/collections/bunga-plastik", images: " ", price: " " },{ label: "Bunga Tulip", category: "Collection", url: "/collections/bunga-tulip", images: " ", price: " " },{ label: "Bunga Ulang Tahun", category: "Collection", url: "/collections/bunga-ulang-tahun", images: " ", price: " " },{ label: "Bunga Wisuda", category: "Collection", url: "/collections/karangan-bunga-wisuda", images: " ", price: " " },{ label: "Cake", category: "Collection", url: "/collections/kue", images: " ", price: " " },{ label: "Cake", category: "Collection", url: "/collections/cake", images: " ", price: " " },{ label: "Cake Sameday Delivery", category: "Collection", url: "/collections/cake-sameday-delivery", images: " ", price: " " },{ label: "Cake, Hampers & Gifts", category: "Collection", url: "/collections/cake-hampers", images: " ", price: " " },{ label: "Cancer ♋️ 22June - 22July", category: "Collection", url: "/collections/kado-untuk-zodiak-cancer", images: " ", price: " " },{ label: "Capricorn ♑️ 21Dec - 19Jan", category: "Collection", url: "/collections/kado-untuk-zodiak-capricorn", images: " ", price: " " },{ label: "Care Packages", category: "Collection", url: "/collections/toko-parcel-murah", images: " ", price: " " },{ label: "Care Packages (Keluarga, Sahabat, Karyawan)", category: "Collection", url: "/collections/sehat-bebas-corona", images: " ", price: " " },{ label: "Carnations", category: "Collection", url: "/collections/bunga-anyelir", images: " ", price: " " },{ label: "Celebration", category: "Collection", url: "/collections/celebration", images: " ", price: " " },{ label: "Chléa Paperie", category: "Collection", url: "/collections/chlea-paperie", images: " ", price: " " },{ label: "Chocodot", category: "Collection", url: "/collections/chocodot", images: " ", price: " " },{ label: "Christmas", category: "Collection", url: "/collections/christmas", images: " ", price: " " },{ label: "Classic Cake", category: "Collection", url: "/collections/classic-cake", images: " ", price: " " },{ label: "Classic CNY Hampers", category: "Collection", url: "/collections/classic-cny-hampers", images: " ", price: " " },{ label: "Classic CNY Hampers Luar Jabodetabek", category: "Collection", url: "/collections/classic-cny-hampers-luar-jabodetabek", images: " ", price: " " },{ label: "Classic Hampers", category: "Collection", url: "/collections/classic-hampers", images: " ", price: " " },{ label: "Classic Hampers Luar Jadetabek", category: "Collection", url: "/collections/classic-hampers-luar-jadetabek", images: " ", price: " " },{ label: "Classic Style Flowers", category: "Collection", url: "/collections/classic-style-flowers", images: " ", price: " " },{ label: "Cokelat", category: "Collection", url: "/collections/permen-coklat", images: " ", price: " " },{ label: "Collection List", category: "Collection", url: "/collections/collection-list", images: " ", price: " " },{ label: "Condolences", category: "Collection", url: "/collections/axa-condolences", images: " ", price: " " },{ label: "Congratulations", category: "Collection", url: "/collections/rangkaian-bunga-ucapan-selamat", images: " ", price: " " },{ label: "Corporate Gifts", category: "Collection", url: "/collections/corporate-gifts", images: " ", price: " " },{ label: "Corporate Hampers", category: "Collection", url: "/collections/corporate-hampers", images: " ", price: " " },{ label: "Couple Gift", category: "Collection", url: "/collections/couple-gift", images: " ", price: " " },{ label: "Craft S
7627weetbox Newborn", category: "Collection", url: "/collections/craft-sweetbox-newborn", images: " ", price: " " },{ label: "Crystal Florarium", category: "Collection", url: "/collections/crystal-florarium", images: " ", price: " " },{ label: "Cuddlemate Doll", category: "Collection", url: "/collections/boneka-lucu", images: " ", price: " " },{ label: "Cufflinks", category: "Collection", url: "/collections/cufflinks", images: " ", price: " " },{ label: "Cupcakes", category: "Collection", url: "/collections/cupcakes", images: " ", price: " " },{ label: "Custom Alat Tulis", category: "Collection", url: "/collections/alat-tulis", images: " ", price: " " },{ label: "Custom Cake", category: "Collection", url: "/collections/custom-cake", images: " ", price: " " },{ label: "Custom Card Holder", category: "Collection", url: "/collections/custom-card-holder", images: " ", price: " " },{ label: "Custom Coaster", category: "Collection", url: "/collections/custom-coaster", images: " ", price: " " },{ label: "Custom Cutlery", category: "Collection", url: "/collections/custom-cutlery", images: " ", price: " " },{ label: "Custom E-Money", category: "Collection", url: "/collections/custom-e-money", images: " ", price: " " },{ label: "Custom Earpod", category: "Collection", url: "/collections/custom-earpod", images: " ", price: " " },{ label: "Custom Fan", category: "Collection", url: "/collections/custom-fan", images: " ", price: " " },{ label: "Custom Jewelry", category: "Collection", url: "/collections/custom-jewelry", images: " ", price: " " },{ label: "Custom Keychain", category: "Collection", url: "/collections/custom-keychain", images: " ", price: " " },{ label: "Custom Medallion", category: "Collection", url: "/collections/custom-medallion", images: " ", price: " " },{ label: "Custom Mirror", category: "Collection", url: "/collections/custom-mirror", images: " ", price: " " },{ label: "Custom Mug", category: "Collection", url: "/collections/custom-mug", images: " ", price: " " },{ label: "Custom Necklace", category: "Collection", url: "/collections/custom-necklace", images: " ", price: " " },{ label: "Custom Notebook", category: "Collection", url: "/collections/custom-notebook", images: " ", price: " " },{ label: "Custom Pen & Pencil", category: "Collection", url: "/collections/custom-pen-pencil", images: " ", price: " " },{ label: "Custom Photo Frame", category: "Collection", url: "/collections/photo-frame", images: " ", price: " " },{ label: "Custom Pillow", category: "Collection", url: "/collections/bantal-custom", images: " ", price: " " },{ label: "Custom Powerbank", category: "Collection", url: "/collections/custom-powerbank", images: " ", price: " " },{ label: "Custom Scarf", category: "Collection", url: "/collections/custom-scarf", images: " ", price: " " },{ label: "Custom Speaker", category: "Collection", url: "/collections/custom-speaker", images: " ", price: " " },{ label: "Custom T-Shirt", category: "Collection", url: "/collections/custom-t-shirt", images: " ", price: " " },{ label: "Custom Tote Bag", category: "Collection", url: "/collections/custom-tote-bag", images: " ", price: " " },{ label: "Custom Tumbler Minuman", category: "Collection", url: "/collections/custom-tumbler-minuman", images: " ", price: " " },{ label: "D'paris", category: "Collection", url: "/collections/dparis", images: " ", price: " " },{ label: "Daisy", category: "Collection", url: "/collections/bunga-aster", images: " ", price: " " },{ label: "Dekorasi", category: "Collection", url: "/collections/dekorasi", images: " ", price: " " },{ label: "Dekorasi Duka Cita", category: "Collection", url: "/collections/dekorasi-bunga-duka-cita", images: " ", price: " " },{ label: "Dekorasi Pemakaman", category: "Collection", url: "/collections/dekorasi-pemakaman", images: " ", price: " " },{ label: "Dekorasi Pernikahan", category: "Collection", url: "/collections/dekorasi-bunga-pernikahan", images: " ", price: " " },{ label: "Dekorasi Ulang Tahun", category: "Collection", url: "/collections/dekorasi-bunga-ulang-tahun", images: " ", price: " " },{ label: "Delivery", category: "Collection", url: "/collections/delivery", images: " ", price: " " },{ label: "Deluxe Newborn Hampers Collection", category: "Collection", url: "/collections/deluxe-newborn-hampers-collection", images: " ", price: " " },{ label: "Digital Gift", category: "Collection", url: "/collections/digital-gift", images: " ", price: " " },{ label: "Donasi", category: "Collection", url: "/collections/donasi", images: " ", price: " " },{ label: "E-Card", category: "Collection", url: "/collections/ecard", images: " ", price: " " },{ label: "E-Gift Card", category: "Collection", url: "/collections/e-gift-card", images: " ", price: " " },{ label: "Earrings", category: "Collection", url: "/collections/anting", images: " ", price: " " },{ label: "Edible Gift", category: "Collection", url: "/collections/edible-gift", images: " ", price: " " },{ label: "Enchanted Grande Love Pirouette", category: "Collection", url: "/collections/enchanted-grande-love-pirouette", images: " ", price: " " },{ label: "Enchanted Love Pirouette", category: "Collection", url: "/collections/enchanted-love-pirouette", images: " ", price: " " },{ label: "Engagement", category: "Collection", url: "/collections/rangkaian-bunga-lamaran", images: " ", price: " " },{ label: "Expression", category: "Collection", url: "/collections/expression", images: " ", price: " " }
7627,{ label: "Father's Day Special", category: "Collection", url: "/collections/kado-untuk-ayah", images: " ", price: " " },{ label: "Ferrari", category: "Collection", url: "/collections/ferrari", images: " ", price: " " },{ label: "Ferrero Rocher", category: "Collection", url: "/collections/ferrero-rocher", images: " ", price: " " },{ label: "Festival Belanja Online", category: "Collection", url: "/collections/fbo-2018", images: " ", price: " " },{ label: "Floatbox", category: "Collection", url: "/collections/floatbox", images: " ", price: " " },{ label: "Flower", category: "Collection", url: "/collections/flower", images: " ", price: " " },{ label: "Flower Best Deals", category: "Collection", url: "/collections/flower-best-deals", images: " ", price: " " },{ label: "Flowers", category: "Collection", url: "/collections/toko-bunga", images: " ", price: " " },{ label: "Flowers For Him", category: "Collection", url: "/collections/bunga-untuk-pria", images: " ", price: " " },{ label: "Flowers Style", category: "Collection", url: "/collections/style", images: " ", price: " " },{ label: "Flowers Type", category: "Collection", url: "/collections/type", images: " ", price: " " },{ label: "For Her", category: "Collection", url: "/collections/kado-untuk-wanita", images: " ", price: " " },{ label: "For Him", category: "Collection", url: "/collections/kado-untuk-pria", images: " ", price: " " },{ label: "Forever Flower", category: "Collection", url: "/collections/forever-flower", images: " ", price: " " },{ label: "Forever Flower Holo Series", category: "Collection", url: "/collections/forever-flower-holo-series", images: " ", price: " " },{ label: "Forever Flower x NestBloom", category: "Collection", url: "/collections/forever-flower-x-nestbloom", images: " ", price: " " },{ label: "Fortune Hampers", category: "Collection", url: "/collections/fortune-hampers", images: " ", price: " " },{ label: "Frank & Co", category: "Collection", url: "/collections/franknco", images: " ", price: " " },{ label: "Fresh Flowers", category: "Collection", url: "/collections/fresh-flower", images: " ", price: " " },{ label: "Gantungan Kunci", category: "Collection", url: "/collections/gantungan-kunci", images: " ", price: " " },{ label: "Gelato", category: "Collection", url: "/collections/gelato", images: " ", price: " " },{ label: "Gelato Pie", category: "Collection", url: "/collections/gelato-pie", images: " ", price: " " },{ label: "Gemini ♊️ 21May - 21June", category: "Collection", url: "/collections/kado-untuk-zodiak-gemini", images: " ", price: " " },{ label: "Gerbera", category: "Collection", url: "/collections/gerbera", images: " ", price: " " },{ label: "Get Well Soon", category: "Collection", url: "/collections/rangkaian-bunga-gws", images: " ", price: " " },{ label: "Giant Flower Bali", category: "Collection", url: "/collections/giant-flower-bali", images: " ", price: " " },{ label: "Giant Flower Bandung", category: "Collection", url: "/collections/giant-flower-bandung", images: " ", price: " " },{ label: "Giant Flower Bouquet", category: "Collection", url: "/collections/giant-flower", images: " ", price: " " },{ label: "Gift", category: "Collection", url: "/collections/souvenir-kado-hadiah", images: " ", price: " " },{ label: "Gift by Recipient", category: "Collection", url: "/collections/gift-by-recipient", images: " ", price: " " },{ label: "Gift for Your Girlfriend", category: "Collection", url: "/collections/kado-untuk-pacar-wanita", images: " ", price: " " },{ label: "Gifts", category: "Collection", url: "/collections/gifts", images: " ", price: " " },{ label: "Glassbox Hampers", category: "Collection", url: "/collections/glassbox-hampers", images: " ", price: " " },{ label: "Glassware Hampers", category: "Collection", url: "/collections/parcel-pecah-belah", images: " ", price: " " },{ label: "Gold Jewelry", category: "Collection", url: "/collections/perhiasan-emas", images: " ", price: " " },{ label: "Grand Opening", category: "Collection", url: "/collections/grand-opening", images: " ", price: " " },{ label: "Granola", category: "Collection", url: "/collections/granola", images: " ", price: " " },{ label: "Green Tea", category: "Collection", url: "/collections/green-tea", images: " ", price: " " },{ label: "Greeting Card All", category: "Collection", url: "/collections/greeting-card-all", images: " ", price: " " },{ label: "Greeting Card Anniversary", category: "Collection", url: "/collections/greeting-card-anniversary", images: " ", price: " " },{ label: "Greeting Card Birthday", category: "Collection", url: "/collections/greeting-card-birthday", images: " ", price: " " },{ label: "Greeting Card Eid", category: "Collection", url: "/collections/greeting-card-eid", images: " ", price: " " },{ label: "Greeting Card Graduation", category: "Collection", url: "/collections/greeting-card-graduation", images: " ", price: " " },{ label: "Greeting Card Mother's Day", category: "Collection", url: "/collections/greeting-card-mothers-day", images: " ", price: " " },{ label: "Greeting Card Newborn", category: "Collection", url: "/collections/greeting-card-newborn", images: " ", price: " " },{ label: "Greeting Card Others", category: "Collection", url: "/collections/greeting-card-others", images: " ", price: " " },{ label: "Greeting Card Valentine", category: "Collection", url: "/collections/greeting-card-valentine", images: " ", price: " " },{ label: "Greeting Card Wedding", category: "Collection", url: "/collections/greeting-card-wedding", images: " ", price: " " },{ label: "Grooming", category: "Collection", url: "/collections/grooming", images: " ", price: " " },{ label: "Hadiah Tahun Baru Imlek", category: "Collection", url: "/collections/kado-imlek", images: " ", price: " " },{ label: "Hadiah untuk Bayi", category: "Collection", url: "/collections/kado-untuk-bayi", images: " ", price: " " },{ label: "Hadiah untuk Pacar", category: "Collection", url: "/collections/kado-untuk-pacar", images: " ", price: " " },{ label: "Hadiah untuk Pernikahan", category: "Collection", url: "/collections/kado-untuk-pernikahan", images: " ", price: " " },{ label: "Hadiah untuk Sahabat", category: "Collection", url: "/collections/kado-untuk-sahabat", images: " ", price: " " },{ label: "Hampers", category: "Collection", url: "/collections/hampers", images: " ", price: " " },{ label: "Hampers Baby Boy", category: "Collection", url: "/collections/hampers-baby-boy", images: " ", price: " " },{ label: "Hampers Baby Girl", category: "Collection", url: "/collections/hampers-baby-girl", images: " ", price: " " },{ label: "Hampers Baby Unisex", category: "Collection", url: "/collections/hampers-baby-unisex", images: " ", price: " " },{ label: "Hampers Delivery Indonesia", category: "Collection", url: "/collections/parcel-indonesia", images: " ", price: " " },{ label: "Hampers Lebaran 2025", category: "Collection", url: "/collections/parcel-lebaran", images: " ", price: " " },{ label: "Hampers Lebaran Bali", category: "Collection", url: "/collections/hampers-lebaran-bali", images: " ", price: " " },{ label: "Hampers Lebaran Bandung", category: "Collection", url: "/collections/hampers-lebaran-bandung", images: " ", price: " " },{ label: "Hampers Lebaran Jakarta", category: "Collection", url: "/collections/hampers-lebaran-jakarta", images: " ", price: " " },{ label: "Hampers Lebaran Semarang", category: "Collection", url: "/collections/hampers-lebaran-semarang", images: " ", price: " " },{ label: "Hampers Lebaran Surabaya", category: "Collection", url: "/collections/hampers-lebaran-surabaya", images: " ", price: " " },{ label: "Hampers Lebaran Yogyakarta", category: "Collection", url: "/collections/hampers-lebaran-yogyakarta", images: " ", price: " " },{ label: "Hand Sanitizer", category: "Collection", url: "/collections/hand-sanitizer", images: " ", price: " " },{ label: "Happy Birthday", category: "Collection", url: "/collections/kado-ulang-tahun", images: " ", price: " " },{ label: "Harbolnas", category: "Collection", url: "/collections/harbolnas-2018", images: " ", price: " " },{ label: "Harbolnas Produk Lokal", category: "Collection", url: "/collections/produk-lokal", images: " ", price: " " },{ label: "Hari Belanja Online Nasional", category: "Collection", url: "/collections/harbolnas", images: " ", price: " " },{ label: "Hari Guru", category: "Collection", url: "/collections/hari-guru", images: " ", price: " " },{ label: "Healthy Creations", category: "Collection", url: "/collections/healthy-creations", images: " ", price: " " },{ label: "Healthy Hampers", category: "Collection", url: "/collections/healthy-hampers", images: " ", price: " " },{ label: "Heritage Box", category: "Collection", url: "/collections/heritage-boxes", images: " ", price: " " },{ label: "Heritage Chinese New Year Hampers", category: "Collection", url: "/collections/heritage-chinese-new-year-hampers", images: " ", price: " " },{ label: "Heritage Christmas Hampers", category: "Collection", url: "/collections/heritage-christmas-hampers", images: " ", price: " " },{ label: "Heritage Hampers", category: "Collection", url: "/collections/heritage-hampers", images: " ", price: " " },{ label: "Heritage Ramadan Hampers", category: "Collection", url: "/collections/heritage-ramadan-hampers", images: " ", price: " " },{ label: "Hexa Hampers", category: "Collection", url: "/collections/hexa-hampers", images: " ", price: " " },{ label: "Hexa Hampers Luar Jadetabek", category: "Collection", url: "/collections/hexa-hampers-luar-jadetabek", images: " ", price: " " },{ label: "Hexa Newborn", category: "Collection", url: "/collections/hexa-newborn", images: " ", price: " " },{ label: "Holo Bag", category: "Collection", url: "/collections/holo-bag", images: " ", price: " " },{ label: "Holo Series", category: "Collection", url: "/collections/holo-series", images: " ", price: " " },{ label: "Home Decoration & Photo Frame", category: "Collection", url: "/collections/home-decoration", images: " ", price: " " }
7627,{ label: "Hospitalization", category: "Collection", url: "/collections/axa-hospitalization", images: " ", price: " " },{ label: "House Hampers", category: "Collection", url: "/collections/house-hampers", images: " ", price: " " },{ label: "I'm Sorry", category: "Collection", url: "/collections/rangkaian-bunga-sorry", images: " ", price: " " },{ label: "Ice Cream Cake", category: "Collection", url: "/collections/ice-cream-cake", images: " ", price: " " },{ label: "Idul Fitri", category: "Collection", url: "/collections/rangkaian-bunga-idul-fitri", images: " ", price: " " },{ label: "Jam Tangan", category: "Collection", url: "/collections/jam-tangan", images: " ", price: " " },{ label: "Jam Tangan Couple", category: "Collection", url: "/collections/jam-tangan-couple", images: " ", price: " " },{ label: "Jam Tangan Pria", category: "Collection", url: "/collections/jam-tangan-pria", images: " ", price: " " },{ label: "Jam Tangan Wanita", category: "Collection", url: "/collections/jam-tangan-wanita", images: " ", price: " " },{ label: "Jasa Packing Parcel", category: "Collection", url: "/collections/jasa-packing-parcel", images: " ", price: " " },{ label: "Jewelry", category: "Collection", url: "/collections/jewelry", images: " ", price: " " },{ label: "Jolly Hampers", category: "Collection", url: "/collections/jolly-hampers", images: " ", price: " " },{ label: "Jual Custom Cake & Hampers Termurah & Terlengkap | Outerbloom Florist & Gift", category: "Collection", url: "/collections/custom-cake-hampers", images: " ", price: " " },{ label: "Just Because", category: "Collection", url: "/collections/just-because", images: " ", price: " " },{ label: "Kado Makanan", category: "Collection", url: "/collections/kado-makanan", images: " ", price: " " },{ label: "Kado Minuman", category: "Collection", url: "/collections/kado-minuman", images: " ", price: " " },{ label: "Kado Natal", category: "Collection", url: "/collections/kado-natal", images: " ", price: " " },{ label: "Kado Unik", category: "Collection", url: "/collections/kado-unik", images: " ", price: " " },{ label: "Kado Valentine Nusantara", category: "Collection", url: "/collections/kado-valentine-nusantara", images: " ", price: " " },{ label: "Kado Valentine untuk Pria", category: "Collection", url: "/collections/kado-valentine-untuk-pria", images: " ", price: " " },{ label: "Kado Wisuda", category: "Collection", url: "/collections/kado-wisuda", images: " ", price: " " },{ label: "Kado Zodiak", category: "Collection", url: "/collections/kado-untuk-zodiak", images: " ", price: " " },{ label: "Karangan Bunga Aceh", category: "Collection", url: "/collections/karangan-bunga-aceh", images: " ", price: " " },{ label: "Karangan Bunga Ambon", category: "Collection", url: "/collections/karangan-bunga-ambon", images: " ", price: " " },{ label: "Karangan Bunga Atambua", category: "Collection", url: "/collections/karangan-bunga-atambua", images: " ", price: " " },{ label: "Karangan Bunga Bali", category: "Collection", url: "/collections/karangan-bunga-bali", images: " ", price: " " },{ label: "Karangan Bunga Balikpapan", category: "Collection", url: "/collections/karangan-bunga-balikpapan", images: " ", price: " " },{ label: "Karangan Bunga Bandung", category: "Collection", url: "/collections/karangan-bunga-bandung", images: " ", price: " " },{ label: "Karangan Bunga Bandung Barat", category: "Collection", url: "/collections/karangan-bunga-bandung-barat", images: " ", price: " " },{ label: "Karangan Bunga Bangka", category: "Collection", url: "/collections/karangan-bunga-bangka", images: " ", price: " " },{ label: "Karangan Bunga Banjarmasin", category: "Collection", url: "/collections/karangan-bunga-banjarmasin", images: " ", price: " " },{ label: "Karangan Bunga Banten", category: "Collection", url: "/collections/karangan-bunga-banten", images: " ", price: " " },{ label: "Karangan Bunga Banyumas", category: "Collection", url: "/collections/karangan-bunga-banyumas", images: " ", price: " " },{ label: "Karangan Bunga Banyuwangi", category: "Collection", url: "/collections/karangan-bunga-banyuwangi", images: " ", price: " " },{ label: "Karangan Bunga Batam", category: "Collection", url: "/collections/karangan-bunga-batam", images: " ", price: " " },{ label: "Karangan Bunga Baubau", category: "Collection", url: "/collections/karangan-bunga-baubau", images: " ", price: " " },{ label: "Karangan Bunga Bengkalis", category: "Collection", url: "/collections/karangan-bunga-bengkalis", images: " ", price: " " },{ label: "Karangan Bunga Bengkayang", category: "Collection", url: "/collections/karangan-bunga-bengkayang", images: " ", price: " " },{ label: "Karangan Bunga Bengkulu", category: "Collection", url: "/collections/karangan-bunga-bengkulu", images: " ", price: " " },{ label: "Karangan Bunga Blora", category: "Collection", url: "/collections/karangan-bunga-blora", images: " ", price: " " },{ label: "Karangan Bunga Bogor", category: "Collection", url: "/collections/karangan-bunga-bogor", images: " ", price: " " },{ label: "Karangan Bunga Bojonegoro", category: "Collection", url: "/collections/karangan-bunga-bojonegoro", images: " ", price: " " },{ label: "Karangan Bunga Boyolali", category: "Collection", url: "/collections/karangan-bunga-boyolali", images: " ", price: " " },{ label: "Karangan Bunga Brebes", category: "Collection", url: "/collections/karangan-bunga-brebes", images: " ", price: " " },{ label: "Karangan Bunga Bukittinggi", category: "Collection", url: "/collections/karangan-bunga-bukittinggi", images: " ", price: " " },{ label: "Karangan Bunga Ciamis", category: "Collection", url: "/collections/karangan-bunga-ciamis", images: " ", price: " " }
7627,{ label: "Karangan Bunga Cianjur", category: "Collection", url: "/collections/karangan-bunga-cianjur", images: " ", price: " " },{ label: "Karangan Bunga Cikarang", category: "Collection", url: "/collections/karangan-bunga-cikarang", images: " ", price: " " },{ label: "Karangan Bunga Cikupa", category: "Collection", url: "/collections/karangan-bunga-cikupa", images: " ", price: " " },{ label: "Karangan Bunga Cilacap", category: "Collection", url: "/collections/karangan-bunga-cilacap", images: " ", price: " " },{ label: "Karangan Bunga Cileunyi", category: "Collection", url: "/collections/karangan-bunga-cileunyi", images: " ", price: " " },{ label: "Karangan Bunga Cimahi", category: "Collection", url: "/collections/karangan-bunga-cimahi", images: " ", price: " " },{ label: "Karangan Bunga Cirebon", category: "Collection", url: "/collections/karangan-bunga-cirebon", images: " ", price: " " },{ label: "Karangan Bunga Ciwidey", category: "Collection", url: "/collections/karangan-bunga-ciwidey", images: " ", price: " " },{ label: "Karangan Bunga Danau Toba", category: "Collection", url: "/collections/karangan-bunga-danau-toba", images: " ", price: " " },{ label: "Karangan Bunga Demak", category: "Collection", url: "/collections/karangan-bunga-demak", images: " ", price: " " },{ label: "Karangan Bunga Denpasar", category: "Collection", url: "/collections/karangan-bunga-denpasar", images: " ", price: " " },{ label: "Karangan Bunga Depok", category: "Collection", url: "/collections/karangan-bunga-depok", images: " ", price: " " },{ label: "Karangan Bunga Duka Cita", category: "Collection", url: "/collections/karangan-bunga-duka-cita", images: " ", price: " " },{ label: "Karangan Bunga Garut", category: "Collection", url: "/collections/karangan-bunga-garut", images: " ", price: " " },{ label: "Karangan Bunga Gianyar", category: "Collection", url: "/collections/karangan-bunga-gianyar", images: " ", price: " " },{ label: "Karangan Bunga Gorontalo", category: "Collection", url: "/collections/karangan-bunga-gorontalo", images: " ", price: " " },{ label: "Karangan Bunga Gowa", category: "Collection", url: "/collections/karangan-bunga-gowa", images: " ", price: " " },{ label: "Karangan Bunga Gresik", category: "Collection", url: "/collections/karangan-bunga-gresik", images: " ", price: " " },{ label: "Karangan Bunga Grobogan", category: "Collection", url: "/collections/karangan-bunga-grobogan", images: " ", price: " " },{ label: "Karangan Bunga Gunung Kidul", category: "Collection", url: "/collections/karangan-bunga-gunungkidul", images: " ", price: " " },{ label: "Karangan Bunga Indramayu", category: "Collection", url: "/collections/karangan-bunga-indramayu", images: " ", price: " " },{ label: "Karangan Bunga Jakarta", category: "Collection", url: "/collections/karangan-bunga-jakarta", images: " ", price: " " },{ label: "Karangan Bunga Jambi", category: "Collection", url: "/collections/karangan-bunga-jambi", images: " ", price: " " },{ label: "Karangan Bunga Jayapura", category: "Collection", url: "/collections/karangan-bunga-jayapura", images: " ", price: " " },{ label: "Karangan Bunga Jember", category: "Collection", url: "/collections/karangan-bunga-jember", images: " ", price: " " },{ label: "Karangan Bunga Jembrana", category: "Collection", url: "/collections/karangan-bunga-jembrana", images: " ", price: " " },{ label: "Karangan Bunga Jepara", category: "Collection", url: "/collections/karangan-bunga-jepara", images: " ", price: " " },{ label: "Karangan Bunga Jombang", category: "Collection", url: "/collections/karangan-bunga-jombang", images: " ", price: " " },{ label: "Karangan Bunga Kampung Baru", category: "Collection", url: "/collections/karangan-bunga-kampung-baru", images: " ", price: " " },{ label: "Karangan Bunga Kapuas", category: "Collection", url: "/collections/karangan-bunga-kapuas", images: " ", price: " " },{ label: "Karangan Bunga Karanganyar", category: "Collection", url: "/collections/karangan-bunga-karanganyar", images: " ", price: " " },{ label: "Karangan Bunga Karangasem", category: "Collection", url: "/collections/karangan-bunga-karangasem", images: " ", price: " " },{ label: "Karangan Bunga Karawang", category: "Collection", url: "/collections/karangan-bunga-karawang", images: " ", price: " " },{ label: "Karangan Bunga Kartosuro", category: "Collection", url: "/collections/karangan-bunga-kartosuro", images: " ", price: " " },{ label: "Karangan Bunga Kebumen", category: "Collection", url: "/collections/karangan-bunga-kebumen", images: " ", price: " " },{ label: "Karangan Bunga Kediri", category: "Collection", url: "/collections/karangan-bunga-kediri", images: " ", price: " " },{ label: "Karangan Bunga Kendal", category: "Collection", url: "/collections/karangan-bunga-ken
7627dal", images: " ", price: " " },{ label: "Karangan Bunga Kendari", category: "Collection", url: "/collections/karangan-bunga-kendari", images: " ", price: " " },{ label: "Karangan Bunga Ketapang", category: "Collection", url: "/collections/karangan-bunga-ketapang", images: " ", price: " " },{ label: "Karangan Bunga Klaten", category: "Collection", url: "/collections/karangan-bunga-klaten", images: " ", price: " " },{ label: "Karangan Bunga Kota Batu", category: "Collection", url: "/collections/karangan-bunga-kota-batu", images: " ", price: " " },{ label: "Karangan Bunga Kudus", category: "Collection", url: "/collections/karangan-bunga-kudus", images: " ", price: " " },{ label: "Karangan Bunga Kupang", category: "Collection", url: "/collections/karangan-bunga-kupang", images: " ", price: " " },{ label: "Karangan Bunga Lamongan", category: "Collection", url: "/collections/karangan-bunga-lamongan", images: " ", price: " " },{ label: "Karangan Bunga Lampung", category: "Collection", url: "/collections/karangan-bunga-lampung", images: " ", price: " " },{ label: "Karangan Bunga Langkat", category: "Collection", url: "/collections/karangan-bunga-langkat", images: " ", price: " " },{ label: "Karangan Bunga Lembang", category: "Collection", url: "/collections/karangan-bunga-lembang", images: " ", price: " " },{ label: "Karangan Bunga Lombok", category: "Collection", url: "/collections/karangan-bunga-lombok", images: " ", price: " " },{ label: "Karangan Bunga Lubuk Pakam", category: "Collection", url: "/collections/karangan-bunga-lubuk-pakam", images: " ", price: " " },{ label: "Karangan Bunga Lumajang", category: "Collection", url: "/collections/karangan-bunga-lumajang", images: " ", price: " " },{ label: "Karangan Bunga Madiun", category: "Collection", url: "/collections/karangan-bunga-madiun", images: " ", price: " " },{ label: "Karangan Bunga Magelang", category: "Collection", url: "/collections/karangan-bunga-magelang", images: " ", price: " " },{ label: "Karangan Bunga Majalengka", category: "Collection", url: "/collections/karangan-bunga-majalengka", images: " ", price: " " },{ label: "Karangan Bunga Makassar", category: "Collection", url: "/collections/karangan-bunga-makassar", images: " ", price: " " },{ label: "Karangan Bunga Malang", category: "Collection", url: "/collections/karangan-bunga-malang", images: " ", price: " " },{ label: "Karangan Bunga Mamuju", category: "Collection", url: "/collections/karangan-bunga-mamuju", images: " ", price: " " },{ label: "Karangan Bunga Manado", category: "Collection", url: "/collections/karangan-bunga-manado", images: " ", price: " " },{ label: "Karangan Bunga Manokwari", category: "Collection", url: "/collections/karangan-bunga-manokwari", images: " ", price: " " },{ label: "Karangan Bunga Maros", category: "Collection", url: "/collections/karangan-bunga-maros", images: " ", price: " " },{ label: "Karangan Bunga Mataram", category: "Collection", url: "/collections/karangan-bunga-mataram", images: " ", price: " " },{ label: "Karangan Bunga Mojokerto", category: "Collection", url: "/collections/karangan-bunga-mojokerto", images: " ", price: " " },{ label: "Karangan Bunga Nganjuk", category: "Collection", url: "/collections/karangan-bunga-nganjuk", images: " ", price: " " },{ label: "Karangan Bunga Nias", category: "Collection", url: "/collections/karangan-bunga-nias", images: " ", price: " " },{ label: "Karangan Bunga Padang", category: "Collection", url: "/collections/karangan-bunga-padang", images: " ", price: " " },{ label: "Karangan Bunga Palangkaraya", category: "Collection", url: "/collections/karangan-bunga-palangkaraya", images: " ", price: " " },{ label: "Karangan Bunga Palu", category: "Collection", url: "/collections/karangan-bunga-palu", images: " ", price: " " },{ label: "Karangan Bunga Pangkal Pinang", category: "Collection", url: "/collections/karangan-bunga-pangkal-pinang", images: " ", price: " " },{ label: "Karangan Bunga Papan", category: "Collection", url: "/collections/karangan-bunga", images: " ", price: " " },{ label: "Karangan Bunga Papan Bandar Lampung", category: "Collection", url: "/collections/karangan-bunga-bandar-lampung", images: " ", price: " " },{ label: "Karangan Bunga Papan Bekasi", category: "Collection", url: "/collections/karangan-bunga-bekasi", images: " ", price: " " },{ label: "Karangan Bunga Papan Binjai", category: "Collection", url: "/collections/karangan-bunga-binjai", images: " ", price: " " },{ label: "Karangan Bunga Papan Blitar", category: "Collection", url: "/collections/karangan-bunga-blitar", images: " ", price: " " },{ label: "Karangan Bunga Papan Buleleng", category: "Collection", url: "/collections/karangan-bunga-buleleng", images: " ", price: " " },{ label: "Karangan Bunga Papan Cibubur", category: "Collection", url: "/collections/karangan-bunga-cibubur", images: " ", price: " " },{ label: "Karangan Bunga Papan Deli Serdang", category: "Collection", url: "/collections/karangan-bunga-deli-serdang", images: " ", price: " " },{ label: "Karangan Bunga Papan Jakarta Timur", category: "Collection", url: "/collections/karangan-bunga-jakarta-timur", images: " ", price: " " },{ label: "Karangan Bunga Papan Karo", category: "Collection", url: "/collections/karangan-bunga-karo", images: " ", price: " " },{ label: "Karangan Bunga Papan Medan", category: "Collection", url: "/collections/karangan-bunga-medan", images: " ", price: " " },{ label: "Karangan Bunga Papan Ngawi", category: "Collection", url: "/collections/karangan-bunga-ngawi", images: " ", price: " " },{ label: "Karangan Bunga Papan Palembang", category: "Collection", url: "/collections/karangan-bunga-palembang", images: " ", price: " " },{ label: "Karangan Bunga Papan Pemalang", category: "Collection", url: "/collections/karangan-bunga-pemalang", images: " ", price: " " },{ label: "Karangan Bunga Papan Rembang", category: "Collection", url: "/collections/karangan-bunga-rembang", images: " ", price: " " },{ label: "Karangan Bunga Papan Sragen", category: "Collection", url: "/collections/karangan-bunga-sragen", images: " ", price: " " },{ label: "Karangan Bunga Papan Tegal", category: "Collection", url: "/collections/karangan-bunga-tegal", images: " ", price: " " },{ label: "Karangan Bunga Papan Temanggung", category: "Collection", url: "/collections/karangan-bunga-temanggung", images: " ", price: " " },{ label: "Karangan Bunga Parepare", category: "Collection", url: "/collections/karangan-bunga-parepare", images: " ", price: " " },{ label: "Karangan Bunga Pasuruan", category: "Collection", url: "/collections/karangan-bunga-pasuruan", images: " ", price: " " },{ label: "Karangan Bunga Pati", category: "Collection", url: "/collections/karangan-bunga-pati", images: " ", price: " " },{ label: "Karangan Bunga Pekalongan", category: "Collection", url: "/collections/karangan-bunga-pekalongan", images: " ", price: " " },{ label: "Karangan Bunga Pekanbaru", category: "Collection", url: "/collections/karangan-bunga-pekanbaru", images: " ", price: " " },{ label: "Karangan Bunga Pematangsiantar", category: "Collection", url: "/collections/karangan-bunga-pematangsiantar", images: " ", price: " " },{ label: "Karangan Bunga Ponorogo", category: "Collection", url: "/collections/karangan-bunga-ponorogo", images: " ", price: " " },{ label: "Karangan Bunga Pontianak", category: "Collection", url: "/collections/karangan-bunga-pontianak", images: " ", price: " " },{ label: "Karangan Bunga Probolinggo", category: "Collection", url: "/collections/karangan-bunga-probolinggo", images: " ", price: " " },{ label: "Karangan Bunga Purbalingga", category: "Collection", url: "/collections/karangan-bunga-purbalingga", images: " ", price: " " },{ label: "Karangan Bunga Purwokerto", category: "Collection", url: "/collections/karangan-bunga-purwokerto", images: " ", price: " " },{ label: "Karangan Bunga Purworejo", category: "Collection", url: "/collections/karangan-bunga-purworejo", images: " ", price: " " },{ label: "Karangan Bunga Riau", category: "Collection", url: "/collections/karangan-bunga-riau", images: " ", price: " " },{ label: "Karangan Bunga Salatiga", category: "Collection", url: "/collections/karangan-bunga-salatiga", images: " ", price: " " },{ label: "Karangan Bunga Samarinda", category: "Collection", url: "/collections/karangan-bunga-samarinda", images: " ", price: " " },{ label: "Karangan Bunga Semarang", category: "Collection", url: "/collections/karangan-bunga-semarang", images: " ", price: " " },{ label: "Karangan Bunga Serang", category: "Collection", url: "/collections/karangan-bunga-serang", images: " ", price: " " },{ label: "Karangan Bunga Sibolga", category: "Collection", url: "/collections/karangan-bunga-sibolga", images: " ", price: " " },{ label: "Karangan Bunga Sidoarjo", category: "Collection", url: "/collections/karangan-bunga-sidoarjo", images: " ", price: " " },{ label: "Karangan Bunga Singkawang", category: "Collection", url: "/collections/karangan-bunga-singkawang", images: " ", price: " " },{ label: "Karangan Bunga Solo", category: "Collection", url: "/collections/karangan-bunga-solo", images: " ", price: " " },{ label: "Karangan Bunga Sorong", category: "Collection", url: "/collections/karangan-bunga-sorong", images: " ", price: " " },{ label: "Karangan Bunga Subang", category: "Collection", url: "/collections/karangan-bunga-subang", images: " ", price: " " },{ label: "Karangan Bunga Sukabumi", category: "Collection", url: "/collections/karangan-bunga-sukabumi", images: " ", price: " " },{ label: "Karangan Bunga Sumbawa", category: "Collection", url: "/collections/karangan-bunga-sumbawa", images: " ", price: " " },{ label: "Karangan Bunga Surabaya", category: "Collection", url: "/collections/karangan-bunga-surabaya", images: " ", price: " " },{ label: "Karangan Bunga Surakarta", category: "Collection", url: "/collections/karangan-bunga-surakarta", images: " ", price: " " },{ label: "Karangan Bunga Tangerang", category: "Collection", url: "/collections/karangan-bunga-tangerang", images: " ", price: " " },{ label: "Karangan Bunga Tasikmalaya", category: "Collection", url: "/collections/karangan-bunga-tasikmalaya", images: " ", price: " " },{ label: "Karangan Bunga Ternate", category: "Collection", url: "/collections/karangan-bunga-ternate", images: " ", price: " " },{ label: "Karangan Bunga Tolitoli", category: "Collection", url: "/collections/karangan-bunga-tolitoli", images: " ", price: " " },{ label: "Karangan Bunga Toraja", category: "Collection", url: "/collections/karangan-bunga-toraja", images: " ", price: " " },{ label: "Karangan Bunga Tuban", category: "Collection", url: "/collections/karangan-bunga-tuban", images: " ", price: " " },{ label: "Karangan Bunga Tulungagung", category: "Collection", url: "/collections/karangan-bunga-tulungagung", images: " ", price: " " },{ label: "Karangan Bunga Wakatobi", category: "Collection", url: "/collections/karangan-bunga-wakatobi", images: " ", price: " " },{ label: "Karangan Bunga Wiyung", category: "Collection", url: "/collections/karangan-bunga-wiyung", images: " ", price: " " },{ label: "Karangan Bunga Wonogiri", category: "Collection", url: "/collections/karangan-bunga-wonogiri", images: " ", price: " " },{ label: "Karangan Bunga Wonokromo", category: "Collection", url: "/collections/karangan-bunga-wonokromo", images: " ", price: " " },{ label: "Karangan Bunga Wonosobo", category: "Collection", url: "/collections/karangan-bunga-wonosobo", images: " ", price: " " },{ label: "Karangan Bunga Yogyakarta", category: "Collection", url: "/collections/karangan-bunga-yogyakarta", images: " ", price: " " },{ label: "Kartu Ucapan", category: "Collection", url: "/collections/kartu-ucapan", images: " ", price: " " },{ label: "Kue Anniversary", category: "Collection", url: "/collections/kue-anniversary", images: " ", price: " " },{ label: "Kue Bachelorette", category: "Collection", url: "/collections/kue-bachelorette", images: " ", price: " " },{ label: "Kue Bandung", category: "Collection", url: "/collections/kue-bandung", images: " ", price: " " },{ label: "Kue Bulan", category: "Collection", url: "/collections/kue-bulan", images: " ", price: " " },{ label: "Kue Imlek", category: "Collection", url: "/collections/kue-imlek", images: " ", price: " " },{ label: "Kue Kering", category: "Collection", url: "/collections/kue-kering", images: " ", price: " " },{ label: "Kue Natal", category: "Collection", url: "/collections/kue-natal", images: " ", price: " " },{ label: "Kue Pernikahan", category: "Collection", url: "/collections/kue-pernikahan", images: " ", price: " " },{ label: "Kue Tart", category: "Collection", url: "/collections/kue-tart", images: " ", price: " " },{ label: "Kue Tart Oma Elly", category: "Collection", url: "/collections/kue-tart-oma-elly", images: " ", price: " " },{ label: "Kue Ulang Tahun", category: "Collection", url: "/collections/kue-ulang-tahun", images: " ", price: " " },{ label: "Lalique", category: "Collection", url: "/collections/lalique", images: " ", price: " " },{ label: "Le Sucre Du Patisserie", category: "Collection", url: "/collections/le-sucre-du-patisserie", images: " ", price: " " },{ label: "Leo ♌️ 23July - 22Augst", category: "Collection", url: "/collections/kado-untuk-zodiak-leo", images: " ", price: " " },{ label: "Letter Box", category: "Collection", url: "/collections/letter-box", images: " ", price: " " },{ label: "Libra ♎️ 23Sept - 23Oct", category: "Collection", url: "/collections/kado-untuk-zodiak-libra", images: " ", price: " " },{ label: "Lilin Aromaterapi", category: "Collection", url: "/collections/lilin-aromaterapi", images: " ", price: " " },{ label: "Lily", category: "Collection", url: "/collections/bunga-lily", images: " ", price: " " },{ label: "Lindt", category: "Collection", url: "/collections/lindt", images: " ", price: " " },{ label: "Locations", category: "Collection", url: "/collections/locations", images: " ", price: " " },{ label: "Love & Romance", category: "Collection", url: "/collections/rangkaian-bunga-i-love-you", images: " ", price: " " },{ label: "Love Bag Collection", category: "Collection", url: "/collections/love-bag-collection", images: " ", price: " " },{ label: "Love Bundle", category: "Collection", url: "/collections/paket-promo-spesial-valentine", images: " ", price: " " },{ label: "Love Bundle Nusantara", category: "Collection", url: "/collections/love-bundle-nusantara", images: " ", price: " " },{ label: "Luxury Chinese New Year Hampers", category: "Collection", url: "/collections/luxury-chinese-new-year-hampers", images: " ", price: " " },{ label: "Luxury Christmas Hampers", category: "Collection", url: "/collections/luxury-christmas-hampers", images: " ", price: " " },{ label: "Luxury Hampers", category: "Collection", url: "/collections/luxury-hampers", images: " ", price: " " },{ label: "Luxury Hampers Luar Jadetabek", category: "Collection", url: "/collections/luxury-hampers-luar-jadetabek", images: " ", price: " " },{ label: "Luxury Newborn Hampers Collection", category: "Collection", url: "/collections/luxury-newborn-hampers-collection", images: " ", price: " " },{ label: "Luxury Ramadan Hampers", category: "Collection", url: "/collections/luxury-ramadan-hampers", images: " ", price: " " },{ label: "Luxury Set", category: "Collection", url: "/collections/luxury", images: " ", price: " " },{ label: "Manual", category: "Collection", url: "/collections/manual", images: " ", price: " " },{ label: "Massimo Gelato", category: "Collection", url: "/collections/massimo-gelato", images: " ", price: " " },{ label: "Men's Collection", category: "Collection", url: "/collections/mens-collection", images: " ", price: " " },{ label: "Mercedes Benz", category: "Collection", url: "/collections/mercedes-benz", images: " ", price: " " },{ label: "Mercy Hampers", category: "Collection", url: "/collections/mercy-
7627hampers", images: " ", price: " " },{ label: "Merry Hampers", category: "Collection", url: "/collections/merry-hampers", images: " ", price: " " },{ label: "Merry Hampers Luar Jabodetabek", category: "Collection", url: "/collections/merry-hampers-luar-jabodetabek", images: " ", price: " " },{ label: "Mini Bouquet", category: "Collection", url: "/collections/mini-bouquet", images: " ", price: " " },{ label: "Miss Mondial", category: "Collection", url: "/collections/miss-mondial", images: " ", price: " " },{ label: "Modern & Chic Chinese New Year", category: "Collection", url: "/collections/modern-chic-chinese-new-year", images: " ", price: " " },{ label: "Modern & Chic Christmas Hampers", category: "Collection", url: "/collections/modern-chic-christmas", images: " ", price: " " },{ label: "Modern & Chic Hampers", category: "Collection", url: "/collections/modern-chic-hampers", images: " ", price: " " },{ label: "Modern & Chic Hampers Luar Jadetabek", category: "Collection", url: "/collections/modern-chic-hampers-luar-jadetabek", images: " ", price: " " },{ label: "Modern & Chic Ramadan Hampers", category: "Collection", url: "/collections/modern-chic-ramadan-hampers", images: " ", price: " " },{ label: "Modern & Classy Hampers", category: "Collection", url: "/collections/parcel-unik", images: " ", price: " " },{ label: "Modern 3D Cake", category: "Collection", url: "/collections/custom-3d-cake", images: " ", price: " " },{ label: "Modern Style Flowers", category: "Collection", url: "/collections/modern-style-flowers", images: " ", price: " " },{ label: "Monochrome Hampers", category: "Collection", url: "/collections/monochrome-hampers", images: " ", price: " " },{ label: "Monochrome Hampers Luar Jadetabek", category: "Collection", url: "/collections/monochrome-hampers-luar-jadetabek", images: " ", price: " " },{ label: "Mooncake", category: "Collection", url: "/collections/kue-bulan-mooncake-2025-mid-autumn-festival", images: " ", price: " " },{ label: "Mooncake Assorted Selection", category: "Collection", url: "/collections/mooncake-assorted-selection", images: " ", price: " " },{ label: "Mother's Day", category: "Collection", url: "/collections/rangkaian-bunga-hari-ibu", images: " ", price: " " },{ label: "Mother's Day Special", category: "Collection", url: "/collections/kado-untuk-ibu", images: " ", price: " " },{ label: "Necklace", category: "Collection", url: "/collections/kalung", images: " ", price: " " },{ label: "NestBloom Bird Nest Hampers", category: "Collection", url: "/collections/nestbloom-birds-nest", images: " ", price: " " },{ label: "NestBloom Gift Set", category: "Collection", url: "/collections/nestbloom-gift-set", images: " ", price: " " },{ label: "Nestbloom Ritual Kit", category: "Collection", url: "/collections/nestbloom-ritual-kit", images: " ", price: " " },{ label: "NestBloom Single Bloom", category: "Collection", url: "/collections/nestbloom-single-bloom", images: " ", price: " " },{ label: "New Collection", category: "Collection", url: "/collections/produk-baru", images: " ", price: " " },{ label: "New Product", category: "Collection", url: "/collections/new-product", images: " ", price: " " },{ label: "Newborn", category: "Collection", url: "/collections/rangkaian-bunga-newborn-baby", images: " ", price: " " },{ label: "Newborn Hampers", category: "Collection", url: "/collections/parcel-newborn", images: " ", price: " " },{ label: "Occasions", category: "Collection", url: "/collections/occasions", images: " ", price: " " },{ label: "Oma Elly", category: "Collection", url: "/collections/oma-elly", images: " ", price: " " },{ label: "Oma Elly Gelato", category: "Collection", url: "/collections/oma-elly-gelato", images: " ", price: " " },{ label: "Orchid", category: "Collection", url: "/collections/bunga-anggrek", images: " ", price: " " },{ label: "Orori", category: "Collection", url: "/collections/orori", images: " ", price: " " },{ label: "Outerbloom", category: "Collection", url: "/collections/outerbloom", images: " ", price: " " },{ label: "Outerbloom Cake", category: "Collection", url: "/collections/outerbloom-cake", images: " ", price: " " },{ label: "Outerbloom Florist", category: "Collection", url: "/collections/outerbloom-florist", images: " ", price: " " },{ label: "Outerbloom Gift", category: "Collection", url: "/collections/outerbloom-gift", images: " ", price: " " },{ label: "Outerbloom Hampers", category: "Collection", url: "/collections/outerbloom-hampers", images: " ", price: " " },{ label: "Outerbloom Indonesia", category: "Collection", url: "/collections/indonesia", images: " ", price: " " },{ label: "Outerbloom x Boho Panna", category: "Collection", url: "/collections/outerbloom-x-boh
7627o-panna", images: " ", price: " " },{ label: "Outerbloom x Clairmont", category: "Collection", url: "/collections/outerbloom-x-clairmont", images: " ", price: " " },{ label: "Outerbloom x Kikido", category: "Collection", url: "/collections/outerbloom-x-kikido", images: " ", price: " " },{ label: "Outerbloom x Miwa Pattern", category: "Collection", url: "/collections/outerbloom-x-miwa", images: " ", price: " " },{ label: "Outerbloom x Nestbloom Chinese New Year", category: "Collection", url: "/collections/outerbloom-x-nestbloom-chinese-new-year", images: " ", price: " " },{ label: "Outerbloom x NestBloom Hampers", category: "Collection", url: "/collections/outerbloom-x-nestbloom", images: " ", price: " " },{ label: "Paket Kolaborasi Outerbloom", category: "Collection", url: "/collections/paket-kolaborasi-outerbloom", images: " ", price: " " },{ label: "Paket Kolaborasi Valentine", category: "Collection", url: "/collections/paket-kolaborasi-valentine", images: " ", price: " " },{ label: "Paket Ulang Tahun", category: "Collection", url: "/collections/paket-ulang-tahun", images: " ", price: " " },{ label: "Paket Valentine Nusantara", category: "Collection", url: "/collections/paket-valentine-nusantara", images: " ", price: " " },{ label: "Paket Valentine Outerbloom", category: "Collection", url: "/collections/paket-valentine", images: " ", price: " " },{ label: "Papan Bunga", category: "Collection", url: "/collections/papan-bunga", images: " ", price: " " },{ label: "Papan Bunga Aceh", category: "Collection", url: "/collections/papan-bunga-aceh", images: " ", price: " " },{ label: "Papan Bunga Acrylic", category: "Collection", url: "/collections/papan-bunga-acrylic", images: " ", price: " " },{ label: "Papan Bunga Ambon", category: "Collection", url: "/collections/papan-bunga-ambon", images: " ", price: " " },{ label: "Papan Bunga Artificial", category: "Collection", url: "/collections/papan-bunga-artificial", images: " ", price: " " },{ label: "Papan Bunga Atambua", category: "Collection", url: "/collections/papan-bunga-atambua", images: " ", price: " " },{ label: "Papan Bunga Bali", category: "Collection", url: "/collections/papan-bunga-bali", images: " ", price: " " },{ label: "Papan Bunga Balikpapan", category: "Collection", url: "/collections/papan-bunga-balikpapan", images: " ", price: " " },{ label: "Papan Bunga Bandar Lampung", category: "Collection", url: "/collections/papan-bunga-bandar-lampung", images: " ", price: " " },{ label: "Papan Bunga Bandung", category: "Collection", url: "/collections/papan-bunga-bandung", images: " ", price: " " },{ label: "Papan Bunga Bandung Barat", category: "Collection", url: "/collections/papan-bunga-bandung-barat", images: " ", price: " " },{ label: "Papan Bunga Bangka", category: "Collection", url: "/collections/papan-bunga-bangka", images: " ", price: " " },{ label: "Papan Bunga Banjarmasin", category: "Collection", url: "/collections/papan-bunga-banjarmasin", images: " ", price: " " },{ label: "Papan Bunga Banten", category: "Collection", url: "/collections/papan-bunga-banten", images: " ", price: " " },{ label: "Papan Bunga Banyumas", category: "Collection", url: "/collections/papan-bunga-banyumas", images: " ", price: " " },{ label: "Papan Bunga Banyuwangi", category: "Collection", url: "/collections/papan-bunga-banyuwangi", images: " ", price: " " },{ label: "Papan Bunga Batam", category: "Collection", url: "/collections/papan-bunga-batam", images: " ", price: " " },{ label: "Papan Bunga Baubau", category: "Collection", url: "/collections/papan-bunga-baubau", images: " ", price: " " },{ label: "Papan Bunga Bekasi", category: "Collection", url: "/collections/papan-bunga-bekasi", images: " ", price: " " },{ label: "Papan Bunga Bengkalis", category: "Collection", url: "/collections/papan-bunga-bengkalis", images: " ", price: " " },{ label: "Papan Bunga Bengkayang", category: "Collection", url: "/collections/papan-bunga-bengkayang", images: " ", price: " " },{ label: "Papan Bunga Bengkulu", category: "Collection", url: "/collections/papan-bunga-bengkulu", images: " ", price: " " }
7627,{ label: "Papan Bunga Binjai", category: "Collection", url: "/collections/papan-bunga-binjai", images: " ", price: " " },{ label: "Papan Bunga Blitar", category: "Collection", url: "/collections/papan-bunga-blitar", images: " ", price: " " },{ label: "Papan Bunga Blora", category: "Collection", url: "/collections/papan-bunga-blora", images: " ", price: " " },{ label: "Papan Bunga Bogor", category: "Collection", url: "/collections/papan-bunga-bogor", images: " ", price: " " },{ label: "Papan Bunga Bojonegoro", category: "Collection", url: "/collections/papan-bunga-bojonegoro", images: " ", price: " " },{ label: "Papan Bunga Boyolali", category: "Collection", url: "/collections/papan-bunga-boyolali", images: " ", price: " " },{ label: "Papan Bunga Brebes", category: "Collection", url: "/collections/papan-bunga-brebes", images: " ", price: " " },{ label: "Papan Bunga Bukittinggi", category: "Collection", url: "/collections/papan-bunga-bukittinggi", images: " ", price: " " },{ label: "Papan Bunga Buleleng", category: "Collection", url: "/collections/papan-bunga-buleleng", images: " ", price: " " },{ label: "Papan Bunga Ciamis", category: "Collection", url: "/collections/papan-bunga-ciamis", images: " ", price: " " },{ label: "Papan Bunga Cianjur", category: "Collection", url: "/collections/papan-bunga-cianjur", images: " ", price: " " },{ label: "Papan Bunga Cibubur", category: "Collection", url: "/collections/papan-bunga-cibubur", images: " ", price: " " },{ label: "Papan Bunga Cikarang", category: "Collection", url: "/collections/papan-bunga-cikarang", images: " ", price: " " },{ label: "Papan Bunga Cikupa", category: "Collection", url: "/collections/papan-bunga-cikupa", images: " ", price: " " },{ label: "Papan Bunga Cikupa", category: "Collection", url: "/collections/papan-bunga-cikupa-1", images: " ", price: " " },{ label: "Papan Bunga Cilacap", category: "Collection", url: "/collections/papan-bunga-cilacap", images: " ", price: " " },{ label: "Papan Bunga Cileunyi", category: "Collection", url: "/collections/papan-bunga-cileunyi", images: " ", price: " " },{ label: "Papan Bunga Cirebon", category: "Collection", url: "/collections/papan-bunga-cirebon", images: " ", price: " " },{ label: "Papan Bunga Congratulations", category: "Collection", url: "/collections/papan-bunga-ucapan-selamat", images: " ", price: " " },{ label: "Papan Bunga Congratulations Bali", category: "Collection", url: "/collections/papan-bunga-congratulations-bali", images: " ", price: " " },{ label: "Papan Bunga Congratulations Bandung", category: "Collection", url: "/collections/papan-bunga-congratulations-bandung", images: " ", price: " " },{ label: "Papan Bunga Congratulations Bekasi", category: "Collection", url: "/collections/papan-bunga-congratulations-bekasi", images: " ", price: " " },{ label: "Papan Bunga Congratulations Bogor", category: "Collection", url: "/collections/papan-bunga-congratulations-bogor", images: " ", price: " " },{ label: "Papan Bunga Congratulations Cikupa", category: "Collection", url: "/collections/papan-bunga-congratulations-cikupa", images: " ", price: " " },{ label: "Papan Bunga Congratulations Demak", category: "Collection", url: "/collections/papan-bunga-congratulations-demak", images: " ", price: " " },{ label: "Papan Bunga Congratulations Depok", category: "Collection", url: "/collections/papan-bunga-congratulations-depok", images: " ", price: " " },{ label: "Papan Bunga Congratulations Gresik", category: "Collection", url: "/collections/papan-bunga-congratulations-gresik", images: " ", price: " " },{ label: "Papan Bunga Congratulations Jakarta", category: "Collection", url: "/collections/papan-bunga-congratulations-jakarta", images: " ", price: " " },{ label: "Papan Bunga Congratulations Jepara", category: "Collection", url: "/collections/papan-bunga-congratulations-jepara", images: " ", price: " " },{ label: "Papan Bunga Congratulations Medan", category: "Collection", url: "/collections/papan-bunga-congratulations-medan", images: " ", price: " " },{ label: "Papan Bunga Congratulations Semarang", category: "Collection", url: "/collections/papan-bunga-congratulations-semarang", images: " ", price: " " }
7627,{ label: "Papan Bunga Congratulations Serang", category: "Collection", url: "/collections/papan-bunga-congratulations-serang", images: " ", price: " " },{ label: "Papan Bunga Congratulations Sidoarjo", category: "Collection", url: "/collections/papan-bunga-congratulations-sidoarjo", images: " ", price: " " },{ label: "Papan Bunga Congratulations Surabaya", category: "Collection", url: "/collections/papan-bunga-congratulations-surabaya", images: " ", price: " " },{ label: "Papan Bunga Congratulations Tangerang", category: "Collection", url: "/collections/papan-bunga-congratulations-tangerang", images: " ", price: " " },{ label: "Papan Bunga Congratulations Yogyakarta", category: "Collection", url: "/collections/papan-bunga-congratulations-yogyakarta", images: " ", price: " " },{ label: "Papan Bunga Danau Toba", category: "Collection", url: "/collections/papan-bunga-danau-toba", images: " ", price: " " },{ label: "Papan Bunga Deli Serdang", category: "Collection", url: "/collections/papan-bunga-deli-serdang", images: " ", price: " " },{ label: "Papan Bunga Demak", category: "Collection", url: "/collections/papan-bunga-demak", images: " ", price: " " },{ label: "Papan Bunga Denpasar", category: "Collection", url: "/collections/papan-bunga-denpasar", images: " ", price: " " },{ label: "Papan Bunga Depok", category: "Collection", url: "/collections/papan-bunga-depok", images: " ", price: " " },{ label: "Papan Bunga Duka Cita", category: "Collection", url: "/collections/bunga-duka-cita", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Bali", category: "Collection", url: "/collections/papan-bunga-duka-cita-bali", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Bandung", category: "Collection", url: "/collections/papan-bunga-duka-cita-bandung", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Bekasi", category: "Collection", url: "/collections/papan-bunga-duka-cita-bekasi", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Bogor", category: "Collection", url: "/collections/papan-bunga-duka-cita-bogor", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Cikupa", category: "Collection", url: "/collections/papan-bunga-duka-cita-cikupa", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Demak", category: "Collection", url: "/collections/papan-bunga-duka-cita-demak", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Depok", category: "Collection", url: "/collections/papan-bunga-duka-cita-depok", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Gresik", category: "Collection", url: "/collections/papan-bunga-duka-cita-gresik", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Jakarta", category: "Collection", url: "/collections/papan-bunga-duka-cita-jakarta", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Jepara", category: "Collection", url: "/collections/papan-bunga-duka-cita-jepara", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Medan", category: "Collection", url: "/collections/papan-bunga-duka-cita-medan", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Semarang", category: "Collection", url: "/collections/papan-bunga-duka-cita-semarang", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Serang", category: "Collection", url: "/collections/papan-bunga-duka-cita-serang", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Sidoarjo", category: "Collection", url: "/collections/papan-bunga-duka-cita-sidoarjo", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Surabaya", category: "Collection", url: "/collections/papan-bunga-duka-cita-surabaya", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Tangerang", category: "Collection", url: "/collections/papan-bunga-duka-cita-tangerang", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Yogyakarta", category: "Collection", url: "/collections/papan-bunga-duka-cita-yogyakarta", images: " ", price: " " },{ label: "Papan Bunga Garut", category: "Collection", url: "/collections/papan-bunga-garut", images: " ", price: " " },{ label: "Papan Bunga Gianyar", category: "Collection", url: "/collections/papan-bunga-gianyar", images: " ", price: " " }
7627,{ label: "Papan Bunga Gorontalo", category: "Collection", url: "/collections/papan-bunga-gorontalo", images: " ", price: " " },{ label: "Papan Bunga Gowa", category: "Collection", url: "/collections/papan-bunga-gowa", images: " ", price: " " },{ label: "Papan Bunga Gresik", category: "Collection", url: "/collections/papan-bunga-gresik", images: " ", price: " " },{ label: "Papan Bunga Grobogan", category: "Collection", url: "/collections/papan-bunga-grobogan", images: " ", price: " " },{ label: "Papan Bunga Gunungkidul", category: "Collection", url: "/collections/papan-bunga-gunungkidul", images: " ", price: " " },{ label: "Papan Bunga Indramayu", category: "Collection", url: "/collections/papan-bunga-indramayu", images: " ", price: " " },{ label: "Papan Bunga Jakarta", category: "Collection", url: "/collections/papan-bunga-jakarta", images: " ", price: " " },{ label: "Papan Bunga Jakarta Timur", category: "Collection", url: "/collections/papan-bunga-jakarta-timur", images: " ", price: " " },{ label: "Papan Bunga Jambi", category: "Collection", url: "/collections/papan-bunga-jambi", images: " ", price: " " },{ label: "Papan Bunga Jayapura", category: "Collection", url: "/collections/papan-bunga-jayapura", images: " ", price: " " },{ label: "Papan Bunga Jember", category: "Collection", url: "/collections/papan-bunga-jember", images: " ", price: " " },{ label: "Papan Bunga Jembrana", category: "Collection", url: "/collections/papan-bunga-jembrana", images: " ", price: " " },{ label: "Papan Bunga Jepara", category: "Collection", url: "/collections/papan-bunga-jepara", images: " ", price: " " },{ label: "Papan Bunga Jombang", category: "Collection", url: "/collections/papan-bunga-jombang", images: " ", price: " " },{ label: "Papan Bunga Kampung Baru", category: "Collection", url: "/collections/papan-bunga-kampung-baru", images: " ", price: " " },{ label: "Papan Bunga Kapuas", category: "Collection", url: "/collections/papan-bunga-kapuas", images: " ", price: " " },{ label: "Papan Bunga Karanganyar", category: "Collection", url: "/collections/papan-bunga-karanganyar", images: " ", price: " " },{ label: "Papan Bunga Karangasem", category: "Collection", url: "/collections/papan-bunga-karangasem", images: " ", price: " " },{ label: "Papan Bunga Karawang", category: "Collection", url: "/collections/papan-bunga-karawang", images: " ", price: " " },{ label: "Papan Bunga Karo", category: "Collection", url: "/collections/papan-bunga-karo", images: " ", price: " " },{ label: "Papan Bunga Kartosuro", category: "Collection", url: "/collections/papan-bunga-kartosuro", images: " ", price: " " },{ label: "Papan Bunga Kebumen", category: "Collection", url: "/collections/papan-bunga-kebumen", images: " ", price: " " },{ label: "Papan Bunga Kediri", category: "Collection", url: "/collections/papan-bunga-kediri", images: " ", price: " " },{ label: "Papan Bunga Kendal", category: "Collection", url: "/collections/papan-bunga-kendal", images: " ", price: " " },{ label: "Papan Bunga Kendari", category: "Collection", url: "/collections/papan-bunga-kendari", images: " ", price: " " },{ label: "Papan Bunga Ketapang", category: "Collection", url: "/collections/papan-bunga-ketapang", images: " ", price: " " },{ label: "Papan Bunga Klaten", category: "Collection", url: "/collections/papan-bunga-klaten", images: " ", price: " " },{ label: "Papan Bunga Kota Batu", category: "Collection", url: "/collections/papan-bunga-kota-batu", images: " ", price: " " },{ label: "Papan Bunga Kudus", category: "Collection", url: "/collections/papan-bunga-kudus", images: " ", price: " " },{ label: "Papan Bunga Kupang", category: "Collection", url: "/collections/papan-bunga-kupang", images: " ", price: " " },{ label: "Papan Bunga Lamongan", category: "Collection", url: "/collections/papan-bunga-lamongan", images: " ", price: " " },{ label: "Papan Bunga Lampu LED", category: "Collection", url: "/collections/papan-bunga-lampu-led", images: " ", price: " " },{ label: "Papan Bunga Lampung", category: "Collection", url: "/collections/papan-bunga-lampung", images: " ", price: " " }
7627,{ label: "Papan Bunga Langkat", category: "Collection", url: "/collections/papan-bunga-langkat", images: " ", price: " " },{ label: "Papan Bunga Lembang", category: "Collection", url: "/collections/papan-bunga-lembang", images: " ", price: " " },{ label: "Papan Bunga Lombok", category: "Collection", url: "/collections/papan-bunga-lombok", images: " ", price: " " },{ label: "Papan Bunga Lubuk Pakam", category: "Collection", url: "/collections/papan-bunga-lubuk-pakam", images: " ", price: " " },{ label: "Papan Bunga Lumajang", category: "Collection", url: "/collections/papan-bunga-lumajang", images: " ", price: " " },{ label: "Papan Bunga Madiun", category: "Collection", url: "/collections/papan-bunga-madiun", images: " ", price: " " },{ label: "Papan Bunga Magelang", category: "Collection", url: "/collections/papan-bunga-magelang", images: " ", price: " " },{ label: "Papan Bunga Majalengka", category: "Collection", url: "/collections/papan-bunga-majalengka", images: " ", price: " " },{ label: "Papan Bunga Makassar", category: "Collection", url: "/collections/papan-bunga-makassar", images: " ", price: " " },{ label: "Papan Bunga Malang", category: "Collection", url: "/collections/papan-bunga-malang", images: " ", price: " " },{ label: "Papan Bunga Mamuju", category: "Collection", url: "/collections/papan-bunga-mamuju", images: " ", price: " " },{ label: "Papan Bunga Manado", category: "Collection", url: "/collections/papan-bunga-manado", images: " ", price: " " },{ label: "Papan Bunga Manokwari", category: "Collection", url: "/collections/papan-bunga-manokwari", images: " ", price: " " },{ label: "Papan Bunga Maros", category: "Collection", url: "/collections/papan-bunga-maros", images: " ", price: " " },{ label: "Papan Bunga Mataram", category: "Collection", url: "/collections/papan-bunga-mataram", images: " ", price: " " },{ label: "Papan Bunga Medan", category: "Collection", url: "/collections/papan-bunga-medan", images: " ", price: " " },{ label: "Papan Bunga Mojokerto", category: "Collection", url: "/collections/papan-bunga-mojokerto", images: " ", price: " " },{ label: "Papan Bunga Nganjuk", category: "Collection", url: "/collections/papan-bunga-nganjuk", images: " ", price: " " },{ label: "Papan Bunga Ngawi", category: "Collection", url: "/collections/papan-bunga-ngawi", images: " ", price: " " },{ label: "Papan Bunga Nias", category: "Collection", url: "/collections/papan-bunga-nias", images: " ", price: " " },{ label: "Papan Bunga Organza", category: "Collection", url: "/collections/papan-bunga-organza", images: " ", price: " " },{ label: "Papan Bunga Padang", category: "Collection", url: "/collections/papan-bunga-padang", images: " ", price: " " },{ label: "Papan Bunga Palangkaraya", category: "Collection", url: "/collections/papan-bunga-palangkaraya", images: " ", price: " " },{ label: "Papan Bunga Palembang", category: "Collection", url: "/collections/papan-bunga-palembang", images: " ", price: " " },{ label: "Papan Bunga Palu", category: "Collection", url: "/collections/papan-bunga-palu", images: " ", price: " " },{ label: "Papan Bunga Pangkal Pinang", category: "Collection", url: "/collections/papan-bunga-pangkal-pinang", images: " ", price: " " },{ label: "Papan Bunga Parepare", category: "Collection", url: "/collections/papan-bunga-parepare", images: " ", price: " " },{ label: "Papan Bunga Pasuruan", category: "Collection", url: "/collections/papan-bunga-pasuruan", images: " ", price: " " },{ label: "Papan Bunga Pati", category: "Collection", url: "/collections/papan-bunga-pati", images: " ", price: " " },{ label: "Papan Bunga Pekalongan", category: "Collection", url: "/collections/papan-bunga-pekalongan", images: " ", price: " " },{ label: "Papan Bunga Pekanbaru", category: "Collection", url: "/collections/papan-bunga-pekanbaru", images: " ", price: " " },{ label: "Papan Bunga Pemalang", category: "Collection", url: "/collections/papan-bunga-pemalang", images: " ", price: " " },{ label: "Papan Bunga Pematangsiantar", category: "Collection", url: "/collections/papan-bunga-pematangsiantar", images: " ", price: " " }
7627,{ label: "Papan Bunga Pernikahan Bali", category: "Collection", url: "/collections/papan-bunga-pernikahan-bali", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Bandung", category: "Collection", url: "/collections/papan-bunga-pernikahan-bandung", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Bekasi", category: "Collection", url: "/collections/papan-bunga-pernikahan-bekasi", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Bogor", category: "Collection", url: "/collections/papan-bunga-pernikahan-bogor", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Cikupa", category: "Collection", url: "/collections/papan-bunga-pernikahan-cikupa", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Demak", category: "Collection", url: "/collections/papan-bunga-pernikahan-demak", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Depok", category: "Collection", url: "/collections/papan-bunga-pernikahan-depok", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Gresik", category: "Collection", url: "/collections/papan-bunga-pernikahan-gresik", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Jakarta", category: "Collection", url: "/collections/papan-bunga-pernikahan-jakarta", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Jepara", category: "Collection", url: "/collections/papan-bunga-pernikahan-jepara", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Medan", category: "Collection", url: "/collections/papan-bunga-pernikahan-medan", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Semarang", category: "Collection", url: "/collections/papan-bunga-pernikahan-semarang", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Serang", category: "Collection", url: "/collections/papan-bunga-pernikahan-serang", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Sidoarjo", category: "Collection", url: "/collections/papan-bunga-pernikahan-sidoarjo", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Surabaya", category: "Collection", url: "/collections/papan-bunga-pernikahan-surabaya", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Tangerang", category: "Collection", url: "/collections/papan-bunga-pernikahan-tangerang", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Yogyakarta", category: "Collection", url: "/collections/papan-bunga-pernikahan-yogyakarta", images: " ", price: " " },{ label: "Papan Bunga Ponorogo", category: "Collection", url: "/collections/papan-bunga-ponorogo", images: " ", price: " " },{ label: "Papan Bunga Pontianak", category: "Collection", url: "/collections/papan-bunga-pontianak", images: " ", price: " " },{ label: "Papan Bunga Premium", category: "Collection", url: "/collections/papan-bunga-premium", images: " ", price: " " },{ label: "Papan Bunga Printing", category: "Collection", url: "/collections/papan-bunga-printing", images: " ", price: " " },{ label: "Papan Bunga Printing Congratulations", category: "Collection", url: "/collections/papan-bunga-printing-congratulations", images: " ", price: " " },{ label: "Papan Bunga Probolinggo", category: "Collection", url: "/collections/papan-bunga-probolinggo", images: " ", price: " " },{ label: "Papan Bunga Promo", category: "Collection", url: "/collections/promo-papan-bunga", images: " ", price: " " },{ label: "Papan Bunga Purbalingga", category: "Collection", url: "/collections/papan-bunga-purbalingga", images: " ", price: " " },{ label: "Papan Bunga Purwokerto", category: "Collection", url: "/collections/papan-bunga-purwokerto", images: " ", price: " " },{ label: "Papan Bunga Purworejo", category: "Collection", url: "/collections/papan-bunga-purworejo", images: " ", price: " " },{ label: "Papan Bunga Rembang", category: "Collection", url: "/collections/papan-bunga-rembang", images: " ", price: " " },{ label: "Papan Bunga Riau", category: "Collection", url: "/collections/papan-bunga-riau", images: " ", price: " " },{ label: "Papan Bunga Salatiga", category: "Collection", url: "/collections/papan-bunga-salatiga", images: " ", price: " " }
7627,{ label: "Papan Bunga Samarinda", category: "Collection", url: "/collections/papan-bunga-samarinda", images: " ", price: " " },{ label: "Papan Bunga Selamat Bandung", category: "Collection", url: "/collections/papan-bunga-selamat-bandung", images: " ", price: " " },{ label: "Papan Bunga Selamat Medan", category: "Collection", url: "/collections/papan-bunga-selamat-medan", images: " ", price: " " },{ label: "Papan Bunga Semarang", category: "Collection", url: "/collections/papan-bunga-semarang", images: " ", price: " " },{ label: "Papan Bunga Serang", category: "Collection", url: "/collections/papan-bunga-serang", images: " ", price: " " },{ label: "Papan Bunga Sibolga", category: "Collection", url: "/collections/papan-bunga-sibolga", images: " ", price: " " },{ label: "Papan Bunga Sidoarjo", category: "Collection", url: "/collections/papan-bunga-sidoarjo", images: " ", price: " " },{ label: "Papan Bunga Singkawang", category: "Collection", url: "/collections/papan-bunga-singkawang", images: " ", price: " " },{ label: "Papan Bunga Solo", category: "Collection", url: "/collections/papan-bunga-solo", images: " ", price: " " },{ label: "Papan Bunga Sorong", category: "Collection", url: "/collections/papan-bunga-sorong", images: " ", price: " " },{ label: "Papan Bunga Sragen", category: "Collection", url: "/collections/papan-bunga-sragen", images: " ", price: " " },{ label: "Papan Bunga Standard", category: "Collection", url: "/collections/papan-bunga-standard", images: " ", price: " " },{ label: "Papan Bunga Subang", category: "Collection", url: "/collections/papan-bunga-subang", images: " ", price: " " },{ label: "Papan Bunga Sukabumi", category: "Collection", url: "/collections/papan-bunga-sukabumi", images: " ", price: " " },{ label: "Papan Bunga Sumbawa", category: "Collection", url: "/collections/papan-bunga-sumbawa", images: " ", price: " " },{ label: "Papan Bunga Surabaya", category: "Collection", url: "/collections/papan-bunga-surabaya", images: " ", price: " " },{ label: "Papan Bunga Surakarta", category: "Collection", url: "/collections/papan-bunga-surakarta", images: " ", price: " " },{ label: "Papan Bunga Tangerang", category: "Collection", url: "/collections/papan-bunga-tangerang", images: " ", price: " " },{ label: "Papan Bunga Tasikmalaya", category: "Collection", url: "/collections/papan-bunga-tasikmalaya", images: " ", price: " " },{ label: "Papan Bunga Tegal", category: "Collection", url: "/collections/papan-bunga-tegal", images: " ", price: " " },{ label: "Papan Bunga Temanggung", category: "Collection", url: "/collections/papan-bunga-temanggung", images: " ", price: " " },{ label: "Papan Bunga Ternate", category: "Collection", url: "/collections/papan-bunga-ternate", images: " ", price: " " },{ label: "Papan Bunga Tolitoli", category: "Collection", url: "/collections/papan-bunga-tolitoli", images: " ", price: " " },{ label: "Papan Bunga Toraja", category: "Collection", url: "/collections/papan-bunga-toraja", images: " ", price: " " },{ label: "Papan Bunga Tuban", category: "Collection", url: "/collections/papan-bunga-tuban", images: " ", price: " " },{ label: "Papan Bunga Tulungagung", category: "Collection", url: "/collections/papan-bunga-tulungagung", images: " ", price: " " },{ label: "Papan Bunga Wakatobi", category: "Collection", url: "/collections/papan-bunga-wakatobi", images: " ", price: " " },{ label: "Papan Bunga Wedding", category: "Collection", url: "/collections/papan-bunga-ucapan-pernikahan", images: " ", price: " " },{ label: "Papan Bunga Wiyung", category: "Collection", url: "/collections/papan-bunga-wiyung", images: " ", price: " " },{ label: "Papan Bunga Wonogiri", category: "Collection", url: "/collections/papan-bunga-wonogiri", images: " ", price: " " },{ label: "Papan Bunga Wonokromo", category: "Collection", url: "/collections/papan-bunga-wonokromo", images: " ", price: " " },{ label: "Papan Bunga Wonosobo", category: "Collection", url: "/collections/papan-bunga-wonosobo", images: " ", price: " " },{ label: "Papan Bunga Yogyakarta", category: "Collection", url: "/collections/papan-bunga-yogyakarta", images: " ", price: " " }
7627,{ label: "Paper Flower Board", category: "Collection", url: "/collections/papan-bunga-kertas", images: " ", price: " " },{ label: "Paper Flower Board Bali", category: "Collection", url: "/collections/papan-bunga-kertas-bali", images: " ", price: " " },{ label: "Paper Flower Board Gresik", category: "Collection", url: "/collections/papan-bunga-kertas-gresik", images: " ", price: " " },{ label: "Paper Flower Board Sidoarjo", category: "Collection", url: "/collections/papan-bunga-kertas-sidoarjo", images: " ", price: " " },{ label: "Paper Flower Board Surabaya", category: "Collection", url: "/collections/papan-bunga-kertas-surabaya", images: " ", price: " " },{ label: "Paper Flower Board Yogyakarta", category: "Collection", url: "/collections/papan-bunga-kertas-yogyakarta", images: " ", price: " " },{ label: "Parcel", category: "Collection", url: "/collections/parcel", images: " ", price: " " },{ label: "Parcel Buah", category: "Collection", url: "/collections/parcel-buah-segar", images: " ", price: " " },{ label: "Parcel Buah Bandung", category: "Collection", url: "/collections/parcel-buah-bandung", images: " ", price: " " },{ label: "Parcel Buah Semarang", category: "Collection", url: "/collections/parcel-buah-semarang", images: " ", price: " " },{ label: "Parcel Buah Sidoarjo", category: "Collection", url: "/collections/parcel-buah-sidoarjo", images: " ", price: " " },{ label: "Parcel Buah Surabaya", category: "Collection", url: "/collections/parcel-buah-surabaya", images: " ", price: " " },{ label: "Parcel Imlek 2025", category: "Collection", url: "/collections/parcel-imlek", images: " ", price: " " },{ label: "Parcel Imlek Bandung", category: "Collection", url: "/collections/parcel-imlek-bandung", images: " ", price: " " },{ label: "Parcel Imlek Nusantara", category: "Collection", url: "/collections/parcel-imlek-nusantara", images: " ", price: " " },{ label: "Parcel Lebaran Bandung", category: "Collection", url: "/collections/parcel-lebaran-bandung", images: " ", price: " " },{ label: "Parcel Lebaran Nusantara", category: "Collection", url: "/collections/parcel-lebaran-indonesia", images: " ", price: " " },{ label: "Parcel Lebaran Surabaya", category: "Collection", url: "/collections/parcel-lebaran-surabaya", images: " ", price: " " },{ label: "Parcel Makanan", category: "Collection", url: "/collections/parcel-makanan", images: " ", price: " " },{ label: "Parcel Natal & Tahun Baru 2026", category: "Collection", url: "/collections/hampers-natal", images: " ", price: " " },{ label: "Parcel Natal & Tahun Baru Bandung", category: "Collection", url: "/collections/parcel-natal-bandung", images: " ", price: " " },{ label: "Parcel Newborn Nusantara", category: "Collection", url: "/collections/parcel-newborn-nusantara", images: " ", price: " " },{ label: "Parcel Tahun Baru", category: "Collection", url: "/collections/new-year-tahun-baru", images: " ", price: " " },{ label: "Party Supplies", category: "Collection", url: "/collections/party-supplies", images: " ", price: " " },{ label: "Partysaurus", category: "Collection", url: "/collections/partysaurus", images: " ", price: " " },{ label: "Pasar Bunga Splendid Malang", category: "Collection", url: "/collections/pasar-bunga-splendid-malang", images: " ", price: " " },{ label: "Passionate Red Valentine", category: "Collection", url: "/collections/red-valentine", images: " ", price: " " },{ label: "Pendant", category: "Collection", url: "/collections/liontin", images: " ", price: " " },{ label: "Personalized Fashion", category: "Collection", url: "/collections/fashion", images: " ", price: " " },{ label: "Personalized Gift", category: "Collection", url: "/collections/personalized-gift", images: " ", price: " " },{ label: "Personalized Gift Pria", category: "Collection", url: "/collections/personalized-gift-pria", images: " ", price: " " },{ label: "Personalized Gift Wanita", category: "Collection", url: "/collections/personalized-gift-wanita", images: " ", price: " " },{ label: "Personalized Gifts", category: "Collection", url: "/collections/personalized-gifts", images: " ", price: " " },{ label: "Pesca Ice Cream Cakes", category: "Collection", url: "/collections/pesca", images: " ", price: " " },{ label: "Phone Case", category: "Collection", url: "/collections/phone-case", images: " ", price: " " },{ label: "Photobook", category: "Collection", url: "/collections/photobook", images: " ", price: " " },{ label: "Pisces ♓️ 19Feb - 20March", category: "Collection", url: "/collections/kado-untuk-zodiak-pisces", images: " ", price: " " },{ label: "Pohon Natal", category: "Collection", url: "/collections/pohon-natal", images: " ", price: " " },{ label: "Premium Hampers", category: "Collection", url: "/collections/parcel-premium", images: " ", price: " " },{ label: "Premium Newborn Hampers Collection", category: "Collection", url: "/collections/premium-newborn-hampers-collection", images: " ", price: " " },{ label: "Printing Cake", category: "Collection", url: "/collections/printing-cake", images: " ", price: " " },{ label: "Prom", category: "Collection", url: "/collections/prom", images: " ", price: " " },{ label: "Promo Merdeka", category: "Collection", url: "/collections/merdeka", images: " ", price: " " },{ label: "Rangkaian Bunga", category: "Collection", url: "/collections/rangkaian-bunga", images: " ", price: " " },{ label: "Rangkaian Bunga Dekorasi", category: "Collection", url: "/collections/rangkaian-bunga-dekorasi", images: " ", price: " " },{ label: "Rangkaian Bunga Ulang Tahun", category: "Collection", url: "/collections/rangkaian-bunga-ulang-tahun", images: " ", price: " " },{ label: "Romantic & Sweets", category: "Collection", url: "/collections/romantic-sweets", images: " ", price: " " },{ label: "Romantic Package", category: "Collection", url: "/collections/romantic-package", images: " ", price: " " },{ label: "Rose Beam", category: "Collection", url: "/collections/rose-beam", images: " ", price: " " },{ label: "Rose Box", category: "Collection", url: "/collections/rose-box", images: " ", price: " " },{ label: "Roses", category: "Collection", url: "/collections/bunga-mawar", images: " ", price: " " },{ label: "Rp 500.000 - Rp 800.000", category: "Collection", url: "/collections/rp-500-000-rp-800-000", images: " ", price: " " },{ label: "Rp 800.000 - Rp 1.000.000", category: "Collection", url: "/collections/rp-800-000-rp-1-000-000", images: " ", price: " " },{ label: "Rustic & Monochrome Ramadan Hampers", category: "Collection", url: "/collections/rustic-monochrome-ramadanhampers", images: " ", price: " " },{ label: "Rustic Bloom", category: "Collection", url: "/collections/dried-flowers", images: " ", price: " " },{ label: "Rustic Style Flowers", category: "Collection", url: "/collections/rustic-style-flowers", images: " ", price: " " },{ label: "Sagittarius ♐️ 22Nov - 21Des", category: "Collection", url: "/collections/kado-untuk-zodiak-sagittarius", images: " ", price: " " },{ label: "Sameday Delivery", category: "Collection", url: "/collections/sameday", images: " ", price: " " },{ label: "Savoury Dish", category: "Collection", url: "/collections/savoury-dish", images: " ", price: " " },{ label: "Saychiz", category: "Collection", url: "/collections/saychiz", images: " ", price: " " },{ label: "Scented Candles", category: "Collection", url: "/collections/scented-candles", images: " ", price: " " },{ label: "Scorpio ♏️ 24Oct - 21Nov", category: "Collection", url: "/collections/kado-untuk-zodiak-scorpio", images: " ", price: " " },{ label: "Self Pick-Up", category: "Collection", url: "/collections/self-pick-up", images: " ", price: " " },{ label: "Semua Produk", category: "Collection", url: "/collections/all", images: " ", price: " " },{ label: "Serenitea", category: "Collection", url: "/collections/serenitea", images: " ", price: " " },{ label: "Share Outerbloom Moment", category: "Collection", url: "/collections/share-moment", images: " ", price: " " },{ label: "Share your Happiness", category: "Collection", url: "/collections/share-happiness", images: " ", price: " " },{ label: "Signature Cake", category: "Collection", url: "/collections/signature-cake", images: " ", price: " " },{ label: "Signature Chinese New Year Hampers", category: "Collection", url: "/collections/signature-chinese-new-year-hampers", images: " ", price: " " },{ label: "Signature Christmas & New Year Hampers", category: "Collection", url: "/collections/signature-christmas-hampers", images: " ", price: " " },{ label: "Signature Hampers", category: "Collection", url: "/collections/signature-hampers", images: " ", price: " " },{ label: "Signature Hampers Luar Jadetabek", category: "Collection", url: "/collections/signature-hampers-luar-jadetabek", images: " ", price: " " },{ label: "Signature Hampers Sameday", category: "Collection", url: "/collections/signature-hampers-sameday", images: " ", price: " " },{ label: "Signature Ramadan Hampers", category: "Collection", url: "/collections/signature-ramadan-hampers", images: " ", price: " " },{ label: "Slice Cake", category: "Collection", url: "/collections/slice-cake", images: " ", price: " " },{ label: "Snack Box", category: "Collection", url: "/collections/snack-box", images: " ", price: " " },{ label: "Sol et Terre", category: "Collection", url: "/collections/sol-et-terre", images: " ", price: " " },{ label: "Sorbet", category: "Collection", url: "/collections/sorbet", images: " ", price: " " },{ label: "Special Day", category: "Collection", url: "/collections/special-day", images: " ", price: " " },{ label: "Special Edition", category: "Collection", url: "/collections/special-edition", images: " ", price: " " },{ label: "Special For Her", category: "Collection", url: "/collections/special-for-her", images: " ", price: " " },{ label: "HOLYTOGEL memberikan daftar kumpulan game online seleksi y
7627ang dimana paling dicari player slotter dan togel mania indonesi di bandar tototogel terpercaya.", category: "Collection", url: "/collections/standing-flower", images: " ", price: " " },{ label: "HOLYTOGEL memberikan daftar kumpulan game online seleksi yang dimana paling dicari player slotter dan togel mania indonesi di bandar tototogel terpercaya. Bali", category: "Collection", url: "/collections/standing-flower-bali", images: " ", price: " " },{ label: "HOLYTOGEL memberikan daftar kumpulan game online seleksi yang dimana paling dicari player slotter dan togel mania indonesi di bandar tototogel terpercaya. Bandung", category: "Collection", url: "/collections/standing-flower-bandung", images: " ", price: " " },{ label: "HOLYTOGEL memberikan daftar kumpulan game online seleksi yang dimana paling dicari player slotter dan togel mania indonesi di bandar tototogel terpercaya. Congratulations", category: "Collection", url: "/collections/standing-flower-congratulations", images: " ", price: " " },{ label: "HOLYTOGEL memberikan daftar kumpulan game online seleksi yang dimana paling dicari player slotter dan togel mania indonesi di bandar tototogel terpercaya. Demak", category: "Collection", url: "/collections/standing-flower-demak", images: " ", price: " " },{ label: "HOLYTOGEL memberikan daftar kumpulan game online seleksi yang dimana paling dicari player slotter dan togel mania indonesi di bandar tototogel terpercaya. Jepara", category: "Collection", url: "/collections/standing-flower-jepara", images: " ", price: " " },{ label: "HOLYTOGEL memberikan daftar kumpulan game online seleksi yang dimana paling dicari player slotter dan togel mania indonesi di bandar tototogel terpercaya. Semarang", category: "Collection", url: "/collections/standing-flower-semarang", images: " ", price: " " },{ label: "HOLYTOGEL memberikan daftar kumpulan game online seleksi yang dimana paling dicari player slotter dan togel mania indonesi di bandar tototogel terpercaya. Sidoarjo", category: "Collection", url: "/collections/standing-flower-sidoarjo", images: " ", price: " " },{ label: "HOLYTOGEL memberikan daftar kumpulan game online seleksi yang dimana paling dicari player slotter dan togel mania indonesi di bandar tototogel terpercaya. Surabaya", category: "Collection", url: "/collections/standing-flower-surabaya", images: " ", price: " " },{ label: "HOLYTOGEL memberikan daftar kumpulan game online seleksi yang dimana paling dicari player slotter dan togel mania indonesi di bandar tototogel terpercaya. Yogyakarta", category: "Collection", url: "/collections/standing-flower-yogyakarta", images: " ", price: " " },{ label: "Standing Giant Flower", category: "Collection", url: "/collections/standing-giant-flower", images: " ", price: " " },{ label: "Stationery", category: "Collection", url: "/collections/stationery", images: " ", price: " " },{ label: "Steekwerk", category: "Collection", url: "/collections/steekwerk", images: " ", price: " " },{ label: "Stylish Hampers", category: "Collection", url: "/collections/stylish-hampers", images: " ", price: " " },{ label: "Stylish Hampers Luar Jadetabek", category: "Collection", url: "/collections/stylish-hampers-luar-jadetabek", images: " ", price: " " },{ label: "Succulent", category: "Collection", url: "/collections/succulent", images: " ", price: " " },{ label: "Sunflower", category: "Collection", url: "/collections/bunga-matahari", images: " ", price: " " },{ label: "Sweet & Savoury Hampers", category: "Collection", url: "/collections/sweet-savoury-hampers", images: " ", price: " " },{ label: "Sweet Gracie", category: "Collection", url: "/collections/sweet-gracie", images: " ", price: " " },{ label: "Sweet Pastel Love", category: "Collection", url: "/collections/pastel-love", images: " ", price: " " },{ label: "Sweet Pastel Love Nusantara", category: "Collection", url: "/collections/sweet-pastel-love-nusantara", images: " ", price: " " },{ label: "Sweet Treats", category: "Collection", url: "/collections/sweet-treats", images: " ", price: " " },{ label: "Sweetooth", category: "Collection", url: "/collections/sweetooth", images: " ", price: " " },{ label: "Taurus ♉️ 20April - 20May", category: "Collection", url: "/collections/kado-untuk-zodiak-taurus", images: " ", price: " " },{ label: "Teddy Bear", category: "Collection", url: "/collections/boneka-teddy-bear", images: " ", price: " " },{ label: "Teh", category: "Collection", url: "/collections/teh", images: " ", price: " " },{ label: "Test Error", category: "Collection", url: "/collections/test-error", images: " ", price: " " },{ label: "Testing", category: "Collection", url: "/collections/testing", images: " ", price: " " },{ label: "Thank You", category: "Collection", url: "/collections/rangkaian-bunga-ucapan-terima-kasih", images: " ", price: " " },{ label: "The Classic Astoria", category: "Collection", url: "/collections/astoria", images: " ", price: " " },{ label: "The Classic Enchanted Dome", category: "Collection", url: "/collections/enchanted-dome", images: " ", price: " " },{ label: "The Enchanted Love Pirouette Special Edition", category: "Collection", url: "/collections/the-enchanted-love-pirouette-special-edition", images: " ", price: " " },{ label: "The F Thing", category: "Collection", url: "/collections/the-f-thing", images: " ", price: " " },{ label: "The First", category: "Collection", url: "/collections/the-first", images: " ", price: " " },{ label: "The Novo Astoria", category: "Collection", url: "/collections/the-novo-astoria", images: " ", price: " " },{ label: "The Novo Enchanted Dome", category: "Collection", url: "/collections/the-novo-enchanted-dome", images: " ", price: " " },{ label: "The Novo Enchanted Dome Special Edition", category: "Collection", url: "/collections/the-novo-enchanted-dome-special-edition", images: " ", price: " " },{ label: "The Palace", category: "Collection", url: "/collections/the-palace", images: " ", price: " " },{ label: "Ties", category: "Collection", url: "/collections/dasi", images: " ", price: " " },{ label: "Tisane", category: "Collection", url: "/collections/tisane", images: " ", price: " " },{ label: "Toko Bunga Aceh", category: "Collection", url: "/collections/toko-bunga-aceh", images: " ", price: " " },{ label: "Toko Bunga Ambon", category: "Collection", url: "/collections/toko-bunga-ambon", images: " ", price: " " },{ label: "Toko Bunga Atambua", category: "Collection", url: "/collections/toko-bunga-atambua", images: " ", price: " " },{ label: "Toko Bunga Bali", category: "Collection", url: "/collections/toko-bunga-bali", images: " ", price: " " },{ label: "Toko Bunga Balikpapan", category: "Collection", url: "/collections/toko-bunga-balikpapan", images: " ", price: " " }
7627,{ label: "Toko Bunga Bandar Lampung", category: "Collection", url: "/collections/toko-bunga-bandar-lampung", images: " ", price: " " },{ label: "Toko Bunga Bandung", category: "Collection", url: "/collections/toko-bunga-bandung", images: " ", price: " " },{ label: "Toko Bunga Bandung Barat", category: "Collection", url: "/collections/toko-bunga-bandung-barat", images: " ", price: " " },{ label: "Toko Bunga Banjarmasin", category: "Collection", url: "/collections/toko-bunga-banjarmasin", images: " ", price: " " },{ label: "Toko Bunga Banten", category: "Collection", url: "/collections/toko-bunga-banten", images: " ", price: " " },{ label: "Toko Bunga Banyumas", category: "Collection", url: "/collections/toko-bunga-banyumas", images: " ", price: " " },{ label: "Toko Bunga Banyuwangi", category: "Collection", url: "/collections/toko-bunga-banyuwangi", images: " ", price: " " },{ label: "Toko Bunga Batam", category: "Collection", url: "/collections/toko-bunga-batam", images: " ", price: " " },{ label: "Toko Bunga Baubau", category: "Collection", url: "/collections/toko-bunga-baubau", images: " ", price: " " },{ label: "Toko Bunga Bekasi", category: "Collection", url: "/collections/toko-bunga-bekasi", images: " ", price: " " },{ label: "Toko Bunga Bengkalis", category: "Collection", url: "/collections/toko-bunga-bengkalis", images: " ", price: " " },{ label: "Toko Bunga Bengkayang", category: "Collection", url: "/collections/toko-bunga-bengkayang", images: " ", price: " " },{ label: "Toko Bunga Binjai", category: "Collection", url: "/collections/toko-bunga-binjai", images: " ", price: " " },{ label: "Toko Bunga Bintaro", category: "Collection", url: "/collections/toko-bunga-bintaro", images: " ", price: " " },{ label: "Toko Bunga Blitar", category: "Collection", url: "/collections/toko-bunga-blitar", images: " ", price: " " },{ label: "Toko Bunga Blora", category: "Collection", url: "/collections/toko-bunga-blora", images: " ", price: " " },{ label: "Toko Bunga Bogor", category: "Collection", url: "/collections/toko-bunga-bogor", images: " ", price: " " },{ label: "Toko Bunga Bojonegoro", category: "Collection", url: "/collections/toko-bunga-bojonegoro", images: " ", price: " " },{ label: "Toko Bunga Boyolali", category: "Collection", url: "/collections/toko-bunga-boyolali", images: " ", price: " " },{ label: "Toko Bunga Brebes", category: "Collection", url: "/collections/toko-bunga-brebes", images: " ", price: " " },{ label: "Toko Bunga Bukittinggi", category: "Collection", url: "/collections/toko-bunga-bukittinggi", images: " ", price: " " },{ label: "Toko Bunga Buleleng", category: "Collection", url: "/collections/toko-bunga-buleleng", images: " ", price: " " },{ label: "Toko Bunga Cakung", category: "Collection", url: "/collections/toko-bunga-cakung", images: " ", price: " " },{ label: "Toko Bunga Cawang", category: "Collection", url: "/collections/toko-bunga-cawang", images: " ", price: " " },{ label: "Toko Bunga Cempaka Putih", category: "Collection", url: "/collections/toko-bunga-cempaka-putih", images: " ", price: " " },{ label: "Toko Bunga Cengkareng", category: "Collection", url: "/collections/toko-bunga-cengkareng", images: " ", price: " " },{ label: "Toko Bunga Ciamis", category: "Collection", url: "/collections/toko-bunga-ciamis", images: " ", price: " " },{ label: "Toko Bunga Cianjur", category: "Collection", url: "/collections/toko-bunga-cianjur", images: " ", price: " " },{ label: "Toko Bunga Cibinong", category: "Collection", url: "/collections/toko-bunga-cibinong", images: " ", price: " " },{ label: "Toko Bunga Cibubur", category: "Collection", url: "/collections/toko-bunga-cibubur", images: " ", price: " " },{ label: "Toko Bunga Cijantung", category: "Collection", url: "/collections/toko-bunga-cijantung", images: " ", price: " " },{ label: "Toko Bunga Cikarang", category: "Collection", url: "/collections/toko-bunga-cikarang", images: " ", price: " " },{ label: "Toko Bunga Cikini", category: "Collection", url: "/collections/toko-bunga-cikini", images: " ", price: " " },{ label: "Toko Bunga Cilacap", category: "Collection", url: "/collections/toko-bunga-cilacap", images: " ", price: " " },{ label: "Toko Bunga Cilandak", category: "Collection", url: "/collections/toko-bunga-cilandak", images: " ", price: " " },{ label: "Toko Bunga Cileunyi", category: "Collection", url: "/collections/toko-bunga-cileunyi", images: " ", price: " " },{ label: "Toko Bunga Ciracas", category: "Collection", url: "/collections/toko-bunga-ciracas", images: " ", price: " " },{ label: "Toko Bunga Cirebon", category: "Collection", url: "/collections/toko-bunga-cirebon", images: " ", price: " " }
7627,{ label: "Toko Bunga Ciwidey", category: "Collection", url: "/collections/toko-bunga-ciwidey", images: " ", price: " " },{ label: "Toko Bunga Danau Toba", category: "Collection", url: "/collections/toko-bunga-danau-toba", images: " ", price: " " },{ label: "Toko Bunga Demak", category: "Collection", url: "/collections/toko-bunga-demak", images: " ", price: " " },{ label: "Toko Bunga Denpasar", category: "Collection", url: "/collections/toko-bunga-denpasar", images: " ", price: " " },{ label: "Toko Bunga Depok", category: "Collection", url: "/collections/toko-bunga-depok", images: " ", price: " " },{ label: "Toko Bunga Duren Sawit", category: "Collection", url: "/collections/toko-bunga-duren-sawit", images: " ", price: " " },{ label: "Toko Bunga Garut", category: "Collection", url: "/collections/toko-bunga-garut", images: " ", price: " " },{ label: "Toko Bunga Gianyar", category: "Collection", url: "/collections/toko-bunga-gianyar", images: " ", price: " " },{ label: "Toko Bunga Gowa", category: "Collection", url: "/collections/toko-bunga-gowa", images: " ", price: " " },{ label: "Toko Bunga Gresik", category: "Collection", url: "/collections/toko-bunga-gresik", images: " ", price: " " },{ label: "Toko Bunga Grobogan", category: "Collection", url: "/collections/toko-bunga-grobogan", images: " ", price: " " },{ label: "Toko Bunga Grogol", category: "Collection", url: "/collections/toko-bunga-grogol", images: " ", price: " " },{ label: "Toko Bunga Gunungkidul", category: "Collection", url: "/collections/toko-bunga-gunungkidul", images: " ", price: " " },{ label: "Toko Bunga Indramayu", category: "Collection", url: "/collections/toko-bunga-indramayu", images: " ", price: " " },{ label: "Toko Bunga Jakarta", category: "Collection", url: "/collections/toko-bunga-jakarta", images: " ", price: " " },{ label: "Toko Bunga Jakarta Barat", category: "Collection", url: "/collections/toko-bunga-jakarta-barat", images: " ", price: " " },{ label: "Toko Bunga Jakarta Pusat", category: "Collection", url: "/collections/toko-bunga-jakarta-pusat", images: " ", price: " " },{ label: "Toko Bunga Jakarta Selatan", category: "Collection", url: "/collections/toko-bunga-jakarta-selatan", images: " ", price: " " },{ label: "Toko Bunga Jakarta Timur", category: "Collection", url: "/collections/toko-bunga-jakarta-timur", images: " ", price: " " },{ label: "Toko Bunga Jakarta Utara", category: "Collection", url: "/collections/toko-bunga-jakarta-utara", images: " ", price: " " },{ label: "Toko Bunga Jambi", category: "Collection", url: "/collections/toko-bunga-jambi", images: " ", price: " " },{ label: "Toko Bunga Jatinegara", category: "Collection", url: "/collections/toko-bunga-jatinegara", images: " ", price: " " },{ label: "Toko Bunga Jawa & Bali", category: "Collection", url: "/collections/toko-bunga-jawa-bali", images: " ", price: " " },{ label: "Toko Bunga Jayapura", category: "Collection", url: "/collections/toko-bunga-jayapura", images: " ", price: " " },{ label: "Toko Bunga Jelambar - Florist Onine 24 Jam", category: "Collection", url: "/collections/toko-bunga-jelambar", images: " ", price: " " },{ label: "Toko Bunga Jember", category: "Collection", url: "/collections/toko-bunga-jember", images: " ", price: " " },{ label: "Toko Bunga Jembrana", category: "Collection", url: "/collections/toko-bunga-jembrana", images: " ", price: " " },{ label: "Toko Bunga Jepara", category: "Collection", url: "/collections/toko-bunga-jepara", images: " ", price: " " },{ label: "Toko Bunga Joglo", category: "Collection", url: "/collections/toko-bunga-joglo", images: " ", price: " " },{ label: "Toko Bunga Jombang", category: "Collection", url: "/collections/toko-bunga-jombang", images: " ", price: " " },{ label: "Toko Bunga Kalibata", category: "Collection", url: "/collections/toko-bunga-kalibata", images: " ", price: " " },{ label: "Toko Bunga Kalimantan", category: "Collection", url: "/collections/toko-bunga-kalimantan", images: " ", price: " " },{ label: "Toko Bunga Kalisari Semarang", category: "Collection", url: "/collections/toko-bunga-kalisari-semarang", images: " ", price: " " },{ label: "Toko Bunga Kampung Baru", category: "Collection", url: "/collections/toko-bunga-kampung-baru", images: " ", price: " " },{ label: "Toko Bunga Kapuas", category: "Collection", url: "/collections/toko-bunga-kapuas", images: " ", price: " " },{ label: "Toko Bunga Karanganyar", category: "Collection", url: "/collections/toko-bunga-karanganyar", images: " ", price: " " },{ label: "Toko Bunga Karangasem", category: "Collection", url: "/collections/toko-bunga-karangasem", images: " ", price: " " },{ label: "Toko Bunga Karawang", category: "Collection", url: "/collections/toko-bunga-karawang", images: " ", price: " " },{ label: "Toko Bunga Kartosuro", category: "Collection", url: "/collections/toko-bunga-kartosuro", images: " ", price: " " },{ label: "Toko Bunga Kayoon Surabaya", category: "Collection", url: "/collections/toko-bunga-kayoon-surabaya", images: " ", price: " " },{ label: "Toko Bunga Kebayoran Baru", category: "Collection", url: "/collections/toko-bunga-kebayoran-baru", images: " ", price: " " },{ label: "Toko Bunga Kebon Jeruk", category: "Collection", url: "/collections/toko-bunga-kebon-jeruk", images: " ", price: " " },{ label: "Toko Bunga Kebumen", category: "Collection", url: "/collections/toko-bunga-kebumen", images: " ", price: " " },{ label: "Toko Bunga Kediri", category: "Collection", url: "/collections/toko-bunga-kediri", images: " ", price: " " },{ label: "Toko Bunga Kelapa Gading", category: "Collection", url: "/collections/toko-bunga-kelapa-gading", images: " ", price: " " },{ label: "Toko Bunga Kemayoran", category: "Collection", url: "/collections/toko-bunga-kemayoran", images: " ", price: " " },{ label: "Toko Bunga Kendal", category: "Collection", url: "/collections/toko-bunga-ken
7627dal", images: " ", price: " " },{ label: "Toko Bunga Kendari", category: "Collection", url: "/collections/toko-bunga-kendari", images: " ", price: " " },{ label: "Toko Bunga Ketapang", category: "Collection", url: "/collections/toko-bunga-ketapang", images: " ", price: " " },{ label: "Toko Bunga Klaten", category: "Collection", url: "/collections/toko-bunga-klaten", images: " ", price: " " },{ label: "Toko Bunga Klender", category: "Collection", url: "/collections/toko-bunga-klender", images: " ", price: " " },{ label: "Toko Bunga Kota Baru Yogyakarta", category: "Collection", url: "/collections/toko-bunga-kota-baru-yogyakarta", images: " ", price: " " },{ label: "Toko Bunga Kota Batu", category: "Collection", url: "/collections/toko-bunga-kota-batu", images: " ", price: " " },{ label: "Toko Bunga Kramat Jati", category: "Collection", url: "/collections/toko-bunga-kramat-jati", images: " ", price: " " },{ label: "Toko Bunga Kudus", category: "Collection", url: "/collections/toko-bunga-kudus", images: " ", price: " " },{ label: "Toko Bunga Kupang", category: "Collection", url: "/collections/toko-bunga-kupang", images: " ", price: " " },{ label: "Toko Bunga Lamongan", category: "Collection", url: "/collections/toko-bunga-lamongan", images: " ", price: " " },{ label: "Toko Bunga Langkat", category: "Collection", url: "/collections/toko-bunga-langkat", images: " ", price: " " },{ label: "Toko Bunga Lebak Bulus", category: "Collection", url: "/collections/toko-bunga-lebak-bulus", images: " ", price: " " },{ label: "Toko Bunga Lembang", category: "Collection", url: "/collections/toko-bunga-lembang", images: " ", price: " " },{ label: "Toko Bunga Lenteng Agung", category: "Collection", url: "/collections/toko-bunga-lenteng-agung", images: " ", price: " " },{ label: "Toko Bunga Lombok", category: "Collection", url: "/collections/toko-bunga-lombok", images: " ", price: " " },{ label: "Toko Bunga Lubuk Pakam", category: "Collection", url: "/collections/toko-bunga-lubuk-pakam", images: " ", price: " " },{ label: "Toko Bunga Lumajang", category: "Collection", url: "/collections/toko-bunga-lumajang", images: " ", price: " " },{ label: "Toko Bunga Madiun", category: "Collection", url: "/collections/toko-bunga-madiun", images: " ", price: " " },{ label: "Toko Bunga Magelang", category: "Collection", url: "/collections/toko-bunga-magelang", images: " ", price: " " },{ label: "Toko Bunga Majalengka", category: "Collection", url: "/collections/toko-bunga-majalengka", images: " ", price: " " },{ label: "Toko Bunga Makassar", category: "Collection", url: "/collections/toko-bunga-makassar", images: " ", price: " " },{ label: "Toko Bunga Malang", category: "Collection", url: "/collections/toko-bunga-malang", images: " ", price: " " },{ label: "Toko Bunga Manado", category: "Collection", url: "/collections/toko-bunga-manado", images: " ", price: " " },{ label: "Toko Bunga Mangga Besar", category: "Collection", url: "/collections/toko-bunga-mangga-besar", images: " ", price: " " },{ label: "Toko Bunga Manokwari", category: "Collection", url: "/collections/toko-bunga-manokwari", images: " ", price: " " },{ label: "Toko Bunga Maros", category: "Collection", url: "/collections/toko-bunga-maros", images: " ", price: " " },{ label: "Toko Bunga Mataram", category: "Collection", url: "/collections/toko-bunga-mataram", images: " ", price: " " },{ label: "Toko Bunga Medan", category: "Collection", url: "/collections/toko-bunga-medan", images: " ", price: " " },{ label: "Toko Bunga Mojokerto", category: "Collection", url: "/collections/toko-bunga-mojokerto", images: " ", price: " " },{ label: "Toko Bunga Nganjuk", category: "Collection", url: "/collections/toko-bunga-nganjuk", images: " ", price: " " },{ label: "Toko Bunga Ngawi", category: "Collection", url: "/collections/toko-bunga-ngawi", images: " ", price: " " },{ label: "Toko Bunga Nias", category: "Collection", url: "/collections/toko-bunga-nias", images: " ", price: " " },{ label: "Toko Bunga Nusa Tenggara", category: "Collection", url: "/collections/toko-bunga-nusa-tenggara", images: " ", price: " " },{ label: "Toko Bunga Padang", category: "Collection", url: "/collections/toko-bunga-padang", images: " ", price: " " },{ label: "Toko Bunga Palembang", category: "Collection", url: "/collections/toko-bunga-palembang", images: " ", price: " " },{ label: "Toko Bunga Palu", category: "Collection", url: "/collections/toko-bunga-palu", images: " ", price: " " },{ label: "Toko Bunga Pangkal Pinang", category: "Collection", url: "/collections/toko-bunga-pangkal-pinang", images: " ", price: " " },{ label: "Toko Bunga Papua", category: "Collection", url: "/collections/toko-bunga-papua", images: " ", price: " " },{ label: "Toko Bunga Parepare", category: "Collection", url: "/collections/toko-bunga-parepare", images: " ", price: " " },{ label: "Toko Bunga Pasar Baru", category: "Collection", url: "/collections/toko-bunga-pasar-baru", images: " ", price: " " },{ label: "Toko Bunga Pasar Minggu", category: "Collection", url: "/collections/toko-bunga-pasar-minggu", images: " ", price: " " },{ label: "Toko Bunga Pasar Rebo", category: "Collection", url: "/collections/toko-bunga-pasar-rebo", images: " ", price: " " },{ label: "Toko Bunga Pasuruan", category: "Collection", url: "/collections/toko-bunga-pasuruan", images: " ", price: " " },{ label: "Toko Bunga Pati", category: "Collection", url: "/collections/toko-bunga-pati", images: " ", price: " " },{ label: "Toko Bunga Pekalongan", category: "Collection", url: "/collections/toko-bunga-pekalongan", images: " ", price: " " },{ label: "Toko Bunga Pekanbaru", category: "Collection", url: "/collections/toko-bunga-pekanbaru", images: " ", price: " " },{ label: "Toko Bunga Pemalang", category: "Collection", url: "/collections/toko-bunga-pemalang", images: " ", price: " " },
7628       { label: "grand salutation jabodetabek", category: "Produk", url: "/products/grand-salutation", images: "//outerbloom.com/cdn/shop/files/JKTCON1005_Grand-Salutation-Jabodetabek-WM_thumb.jpg?v=1703241523", price: "Rp 435.000" },{ label: "consolantibus jabodetabek", category: "Produk", url: "/products/consolantibus", images: "//outerbloom.com/cdn/shop/files/JKTDUK1011_Consolantibus-Jabodetabek-WM_thumb.jpg?v=1703239823", price: "Rp 435.000" },{ label: "classic midnight hand bouquet fiery red", category: "Produk", url: "/products/the-classic-midnight-hand-bouquet-fiery-red", images: "//outerbloom.com/cdn/shop/files/OBVBUN1422_Classic-Midnight-Hand-Bouquet---Fiery-Red-large_thumb.jpg?v=1757302521", price: "Rp 385.000" },{ label: "enchanted dome passionate red", category: "Produk", url: "/products/enchanted-dome-passionate-red", images: "//outerbloom.com/cdn/shop/files/Enchanted-dome-red-new-box_3_2_26c081bf-f2a5-42b4-9ce4-3c0304c498e5_thumb.jpg?v=1712639476", price: "Rp 1.435.000" },{ label: "endearing ruby", category: "Produk", url: "/products/endearing-ruby", images: "//outerbloom.com/cdn/shop/products/OUTSTF1003_Endearing-Ruby_thumb.jpg?v=1631296611", price: "Rp 585.000" },{ label: "gentle soul jabodetabek", category: "Produk", url: "/products/gentle-soul-jabodetabek", images: "//outerbloom.com/cdn/shop/files/JKTDUK1030_Gentle-Soul-Jabodetabek-WM_thumb.jpg?v=1703239894", price: "Rp 435.000" },{ label: "belleza jabodetabek", category: "Produk", url: "/products/belleza", images: "//outerbloom.com/cdn/shop/files/Belleza-Jabodetabek-LED_aecb756a-0737-45cc-8bfb-008515ca0a37_thumb.gif?v=1759229680", price: "Rp 435.000" }
7628,{ label: "majestic pink roses with baby breath bouquet", category: "Produk", url: "/products/majestic-pink-roses-with-baby-breath-bouquet", images: "//outerbloom.com/cdn/shop/products/ef4a3be9-c938-4c70-98ac-4873e7da82bf_90820a66-923a-463d-a464-81bcbe6e6644_thumb.jpg?v=1581413440", price: "Rp 485.000" },{ label: "sentiments jabodetabek", category: "Produk", url: "/products/sentiments", images: "//outerbloom.com/cdn/shop/files/Sentiments-Jabodetabek-WM_thumb.jpg?v=1759224099", price: "Rp 485.000" },{ label: "rose poetry bouquet", category: "Produk", url: "/products/rose-poetry-bouquet", images: "//outerbloom.com/cdn/shop/products/Rose-Poetry-Bouquet-20-tangkai_thumb.jpg?v=1675151039", price: "Rp 385.000" },{ label: "genuine feeling", category: "Produk", url: "/products/genuine-feeling", images: "//outerbloom.com/cdn/shop/products/OUTSTF1004Genuine-Feeling_981ade89-af27-433e-81aa-8d76175a0e4d_thumb.jpg?v=1612352389", price: "Rp 585.000" },{ label: "eternal fidelity jabodetabek", category: "Produk", url: "/products/eternal-fidelity-jabodetabek", images: "//outerbloom.com/cdn/shop/products/0b89df45-dcc1-4876-820e-61b2243a1945_964e211d-2972-46c9-8593-976210929089_thumb.jpg?v=1590491458", price: "Rp 435.000" },{ label: "rosabelle hand bouquet", category: "Produk", url: "/products/rosabelle-hand-bouquet", images: "//outerbloom.com/cdn/shop/files/OBVBUN1429_Rosabelle-Hand-Bouquet-Medium_thumb.jpg?v=1756971848", price: "Rp 385.000" },{ label: "dreaming in pink luxury in vase", category: "Produk", url: "/products/dreaming-in-pink-luxury-in-vase", images: "//outerbloom.com/cdn/shop/products/OBVBUN1051_Dreaming-In-Pink-Luxury-In-Vase_3_thumb.jpg?v=1614594504", price: "Rp 735.000" },{ label: "excito jabodetabek", category: "Produk", url: "/products/excito", images: "//outerbloom.com/cdn/shop/files/JKTCON1010_Excito-Jabodetabek-2023_thumb.gif?v=1717494677", price: "Rp 485.000" },{ label: "golden toast jabodetabek", category: "Produk", url: "/products/golden-toast", images: "//outerbloom.com/cdn/shop/products/LED-GoldenToast_thumb.gif?v=1579249585", price: "Rp 485.000" },{ label: "spirit of eminance jabodetabek", category: "Produk", url: "/products/spirit-of-eminance-jabodetabek", images: "//outerbloom.com/cdn/shop/files/JKTCON1026_Spirit-of-Eminance-Jabodetabek-newest-WM_thumb.jpg?v=1693297526", price: "Rp 485.000" },{ label: "white elysian bloom box", category: "Produk", url: "/products/white-elysian-bloom-box", images: "//outerbloom.com/cdn/shop/files/OBVBUN1704_White-Elysian-Bloom-Box_thumb.jpg?v=1757328247", price: "Rp 685.000" },{ label: "charming forevermore jabodetabek", category: "Produk", url: "/products/charming-forevermore-jabodetabek", images: "//outerbloom.com/cdn/shop/files/JKTWED1036_Charming-Forevermore-Jabodetabek-WM_thumb.jpg?v=1703239534", price: "Rp 485.000" },{ label: "moment of glory jabodetabek", category: "Produk", url: "/products/moment-of-glory-jabodetabek", images: "//outerbloom.com/cdn/shop/products/JKTCON1051_Moment-of-Glory-Jabodetabek_2_thumb.jpg?v=1596614663", price: "Rp 385.000" },{ label: "sweet romance jabodetabek", category: "Produk", url: "/products/sweet-romance", images: "//outerbloom.com/cdn/shop/products/JKTWED1005_Sweet-Romance-Jabodetabek_thumb.gif?v=1677134791", price: "Rp 635.000" },{ label: "with love bouquet", category: "Produk", url: "/products/with-love-bouquet", images: "//outerbloom.com/cdn/shop/products/c5d6fed6-8ada-4c38-ae0f-36d395aacb19_613f78f0-d52c-443b-9e13-63a151cd8ec5_thumb.jpg?v=1590748429", price: "Rp 535.000" },{ label: "sunflower yellow and with white daisies in vase", category: "Produk", url: "/products/sunflower-yellow-roses-with-white-and-yellow-daisies-in-a-glass-vase", images: "//outerbloom.com/cdn/shop/files/OBVBUN1132_Sunflower-Yellow-And-With-White-Daisies-in-Vase_thumb.jpg?v=1757930628", price: "Rp 435.000" },{ label: "everlasting peace jabodetabek", category: "Produk", url: "/products/everlasting-peace-jabodetabek", images: "//outerbloom.com/cdn/shop/products/JKTDUK1034_Everlasting-Peace-Jabodetabek_2_thumb.jpg?v=1596614613", price: "Rp 385.000" },{ label: "astoria passionate red", category: "Produk", url: "/products/astoria-passionate-red", images: "//outerbloom.com/cdn/shop/products/Astoria-passionate-red_b59b26f6-c39d-46d3-adcb-262c675bb16f_thumb.jpg?v=1633502742", price: "Rp 685.000" },{ label: "classic purple orchid majesty in vase", category: "Produk", url: "/products/classic-purple-orchid-majesty-in-vase", images: "//outerbloom.com/cdn/shop/products/Classic-Purple-Orchid-Majesty-in-Vase---White---4-Tangkai_40a5e337-283f-40f5-911c-5df9b506b9da_thumb.jpg?v=1639981404", price: "Rp 435.000" },{ label: "passion rouge bloom box", category: "Produk", url: "/products/passion-rouge-bloom-box", images: "//outerbloom.com/cdn/shop/files/OBVBUN1725_Passion-Rouge-Bloom-Box_thumb.jpg?v=1756972410", price: "Rp 385.000" },{ label: "classic white orchid majesty in vase", category: "Produk", url: "/products/classic-white-orchid-majesty-in-vase", images: "//outerbloom.com/cdn/shop/products/Classic-white-Orchid-Majesty-in-Vase---white---4-Tangkai_thumb.jpg?v=1644205542", price: "Rp 435.000" }
7628,{ label: "majestic blue romance bouquet", category: "Produk", url: "/products/majestic-blue-romance-bouquet", images: "//outerbloom.com/cdn/shop/files/OBVBUN1357_Majestic-Blue-Romance-Bouquet_99b8ba96-0e67-4eef-a00e-b2daedcddb6a_thumb.jpg?v=1757390540", price: "Rp 435.000" },{ label: "sincerely", category: "Produk", url: "/products/sincerely", images: "//outerbloom.com/cdn/shop/files/Sincerely-WM_thumb.jpg?v=1688354677", price: "Rp 585.000" },{ label: "happy days jabodetabek", category: "Produk", url: "/products/happy-days-jabodetabek", images: "//outerbloom.com/cdn/shop/files/Happy-Days-Jabodetabek_WM_thumb.jpg?v=1759224026", price: "Rp 485.000" },{ label: "solemn comfort jabodetabek", category: "Produk", url: "/products/solemn-comfort-jabodetabek", images: "//outerbloom.com/cdn/shop/products/7fe123d8-6bb2-4c0d-bd4c-f8c3032823f2_6b9c33b6-4a23-41cb-8709-fc9223fe096a_thumb.png?v=1590662086", price: "Rp 635.000" },{ label: "big dreams jabodetabek", category: "Produk", url: "/products/big-dreams", images: "//outerbloom.com/cdn/shop/files/JKTCON1002_Big-Dreams-Jabodetabek_thumb.gif?v=1717494603", price: "Rp 485.000" },{ label: "signature ramadan deluxe hampers", category: "Produk", url: "/products/outerbloom-signature-ramadhan-deluxe-hampers", images: "//outerbloom.com/cdn/shop/files/Signature-Deluxe-Hampers_thumb.jpg?v=1739242254", price: "Rp 985.000" },{ label: "amorous amos jabodetabek", category: "Produk", url: "/products/amorous-amos-jabodetabek", images: "//outerbloom.com/cdn/shop/files/Amorous-Amos-Jabodetabek-WM_thumb.jpg?v=1759224071", price: "Rp 485.000" },{ label: "pink darling bouquet", category: "Produk", url: "/products/pink-darling-bouquet", images: "//outerbloom.com/cdn/shop/products/Pink-Darling-Bouquet_thumb.jpg?v=1669969725", price: "Rp 485.000" },{ label: "black pink bouquet", category: "Produk", url: "/products/black-pink-bouquet", images: "//outerbloom.com/cdn/shop/files/Black-Pink-Bouquet_thumb.jpg?v=1756434063", price: "Rp 485.000" },{ label: "profound happiness jabodetabek", category: "Produk", url: "/products/profound-happiness-jabodetabek", images: "//outerbloom.com/cdn/shop/files/profound-happiness_thumb.gif?v=1689940309", price: "Rp 635.000" },{ label: "healing trove", category: "Produk", url: "/products/healing-trove", images: "//outerbloom.com/cdn/shop/products/2ef5379f-27a6-41ba-85c7-c65cf3ec3f08_thumb.jpg?v=1571471845", price: "Rp 485.000" },{ label: "sincerity solace", category: "Produk", url: "/products/sincerity-solace", images: "//outerbloom.com/cdn/shop/products/OUTSTF1038_sincerity-solace-WM_thumb.jpg?v=1612352477", price: "Rp 485.000" },{ label: "bellarosa bloom box", category: "Produk", url: "/products/bellarosa-bloom-box", images: "//outerbloom.com/cdn/shop/files/OBVBUN1783_Bellarosa-Bloom-Box_c0000424-411c-48ed-abf4-0de7d925ea53_thumb.jpg?v=1757316757", price: "Rp 785.000" }
7629   ];
7630 
7631              
7632         $( ".header-input-search" ).catcomplete({
7633          appendTo: ".searchResult",source: function(request, response) {
7634             var results = $.ui.autocomplete.filter(data, request.term);
7635             var predicate = function () {
7636                 var counter = { Collection: 0, Produk: 0 };
7637             var fn = function(item) {counter[item.category] += 1;return (counter[item.category] <= 5);}
7638             return fn
7639             }();
7640             response(results.filter(predicate));
7641           },
7642           minLength:1,
7643            //results are clickable
7644           select: function( event, ui ) {window.location = ui.item.url;}
7645 });
7646 $( ".header-input-search2" ).catcomplete({
7647         appendTo: ".searchResult2",
7648                    source: function(request, response) {
7649                     var results = $.ui.autocomplete.filter(data, request.term);
7650                     var predicate = function () {
7651                         var counter = { Collection: 0, Produk: 0 };
7652               var fn = function(item) {
7653               counter[item.category] += 1;
7654   return (counter[item.category] <= 5);
7655 }
7656                return fn
7657                }();
7658 response(results.filter(predicate));
7659 },
7660   minLength:1,
7661         //results are clickable
7662         select: function( event, ui ) {
7663           window.location = ui.item.url;
7664         }
7665 });
7666 });
7667 </script>
7667
7668 
7669     
7669<script src="//outerbloom.com/cdn/shop/t/138/assets/vendors.js?v=6349622868601634021752652419" defer></script>
7669
7670 
7670<script src="//outerbloom.com/cdn/shop/t/138/assets/app.js?v=136050180318808583701752652452" defer></script>
7670
7671 
7672 
7672<script>
7673   ( function() {
7674     var youtube = document.querySelectorAll( ".youtube" );
7675     for (var i = 0; i < youtube.length; i++) {
7676       var source = "https://img.youtube.com/vi/"+ youtube[i].dataset.embed +"/sddefault_1x.jpg";
7677       var datasource = "https://img.youtube.com/vi/"+ youtube[i].dataset.embed +"/sddefault.jpg";
7678       var image = new Image();
7679       image.src = source;
7680       image.setAttribute("data-src", datasource);
7681       image.classList.add("swiper-lazy");
7682       image.addEventListener( "load", function() {
7683         youtube[ i ].appendChild( image );
7684       }( i ) );
7685       youtube[i].addEventListener( "click", function() {
7686         var iframe = document.createElement( "iframe" );
7687         iframe.setAttribute( "width", "480" );
7688         iframe.setAttribute( "height", "480" );
7689         iframe.setAttribute( "frameborder", "0" );
7690         iframe.setAttribute( "allowfullscreen", "" );
7691         iframe.setAttribute( "src", "https://www.youtube.com/embed/"+ this.dataset.embed +"?rel=0&showinfo=0&autoplay=1" );
7692         this.innerHTML = "";
7693         this.appendChild( iframe );
7694       } );
7695     };
7696 
7697   } )();
7698 
7699   /* Lazy Load */
7700   const mainLazyLoad = new LazyLoad({threshold:400});
7701   $(document).ready(function(){
7702 
7703     $("selectxxx").addClass("needsclick");
7704     FastClick.attach(document.body);
7705     
7706     var $customSelects = $('.select-search');
7707     $customSelects.select2({
7708       templateResult: function(result, container) {
7709         if (!result.id) {
7710           return result.text;
7711         }
7712         container.className += ' needsclick';
7713         return result.text;
7714       }
7715     });
7716     $customSelects.each(function(index, el){$(el).data('select2').$container.find('*').addClass('needsclick');});
7717     $(document).on('select2:open', () => {
7718       document.querySelector('.select2-search__field').focus();
7719     });
7720     
7721 
7722     $(".overlay").click(function(){
7723       $(".js-drawer-close").click();
7724     });
7725     $(".site-nav--mobile .js-drawer-open-left, #NavDrawer .icon-close, .overlay-nav").click(function(){
7726       $("html").toggleClass("nav_open");
7727     });
7728     
7729     $('.swatch-element label').on('click', function(){
7730       var srcImg = $(this).data('src');
7731       $('#thumb-image-product .product-single__thumbnail').each(function(){
7732         if ($(this).attr("href") == srcImg) {
7733           $(this).trigger('click');
7734         }
7735       });
7736     });
7737     var defaultValue = $(".swatch input:checked").val()
7738     
7739     $('#purchaseProduct .swatch [type=radio]').change(function() {
7740       var optionIndex = $(this).closest('.swatch').attr('data-option-index');
7741       var optionValue = $(this).val();
7742       console.log(optionIndex, optionValue)
7743       var value = parseInt(optionValue.split(' ')[0])
7744       $(this)
7745       .closest('#purchaseProduct')
7746       .find('.single-option-selector')
7747       .eq(optionIndex)
7748       .val(optionValue)
7749       .trigger('change');
7750       
7751     });
7752     
7753   });
7754   $(document).ready(function(){
7755     $(".nav-search a").click(function(e){
7756       e.preventDefault();
7757       $(".icon-navsearch").toggle();
7758       $(".icon-navclose").toggle();
7759       $(".site-nav__item > .site-nav__link").toggle();
7760       $(".open-search").toggle();
7761       $(".open-search input").focus();
7762     });
7763     $(".best-price-guarantee").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/logo-best-price-guarantee-grid_75x.png?v=72489032173169839651752652420' alt='Logo Best Price Guarantee'>");
7764     if ($(window).width() < 768) {
7765       $(".bg-products .label-tag.valentine").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-valentine_75x.png?v=82732945490105366961752652419' alt='Icon Valentine'>");
7766       $(".bg-products .label-tag.cny").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-cny_45x.png?v=101884295148001743851752652418' alt='Icon CNY'>");
7767       $(".bg-products .label-tag.free-valentine").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/free-valentine_150x.png?v=171641187769238175351752652421' alt='Icon Free Valentine'>");
7768     } else {
7769       $(".bg-products .label-tag.valentine").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-valentine_60x.png?v=82732945490105366961752652419' alt='Icon Valentine'>");
7770       $(".bg-products .label-tag.cny").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-cny_60x.png?v=101884295148001743851752652418' alt='Icon CNY'>");
7771       $(".bg-products .label-tag.free-valentine").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/free-valentine_200x.png?v=171641187769238175351752652421' alt='Icon Free Valentine'>");
7772     }
7773     $(".bg-products .label-tag.free-cookies").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/free-cookies_80x.png?51468' alt='Icon Free Cookies'>");
7774     $(".bg-products .label-tag.mothersday").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/mothers-day_70x.png?v=171373711354766377891752652419' alt='Icon Mothers day'>");
7775   });
7776 </script>
7776
7777 
7778 
7779     
7780 
7781     
7781<script type="text/javascript">
7782       var wishlistpage = 0;
7783        
7784        var quickShop_money_format="<span class='money'>"+"Rp {{amount_no_decimals}}"+"</span>";
7785     </script>
7785
7786     
7787       <!-- Remove duplicate wishlist.js reference -->
7788       <style>
7789   .fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:999999;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.fade.in{opacity:1}.modal-open .modal{overflow-x:hidden;overflow-y:auto;z-index:999999;background-color:rgba(0,0,0,.3)}.modal-dialog{position:relative;width:auto;margin:10px}.wishlist-model .modal-dialog{width:700px}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%)}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}.wishlist-model .modal-content{}.wishlist-model .modal-header{min-height:0;padding:0;border-bottom:0}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #121212;filter:alpha(opacity=20);opacity:.2}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal-header .close{margin-top:-2px}.wishlist-model .close{position:absolute;top:-10px;right:-10px;background:#fff;opacity:1;width:30px;height:30px;font-size:15px;border-radius:50%;z-index:10;box-shadow:0 1px 4px 0 #121212}.wishlist-model .close .icon-close{width:25px;height:25px}.modal-body{position:relative;padding:15px}.wishlist-model .modal-body{padding:0 30px;display:flex}.wishlist-model .wishlist-left{width:66.67%;border-right:1px solid #ccc;padding:30px 0}.wishlist-model .wishlist-note{position:relative;display:inline-block;margin-bottom:20px;margin-left:35px;border-bottom:1px solid #121212;color:#121212}.wishlist-model .wishlist-note a{color: #ffffff;}.wishlist-model .wishlist-note .cirle{position:absolute;top:-4px;left:-35px;width:25px;height:25px;color:#fff;background:#121212;line-height:25px;border-radius:50%;text-align:center}.wishlist-model .wishlist-note svg{fill:#fff}.wishlist-model .wishlist-note .cirle .icon-check{vertical-align:middle}.wishlist-model .product-left{width:33.33%;float:left;margin-right:30px}.wishlist-model .wishlist-image{overflow:hidden}.wishlist-model .wishlist-image img{transition:all .3s linear}.wishlist-model .wishlist-name{padding:0;margin-bottom:10px}.wishlist-model .wishlist-name a{color: #ffffff;}.wishlist-model .wishlist-price{margin-bottom:10px}.wishlist-model .wishlist-price .price{font-weight:700;margin-right:10px;font-size:15px}.wishlist-model .wishlist-price .price_compare{color:#ccc}.wishlist-model .wishlist-right{width:33.33%;padding:30px 0;padding-left:30px}.wishlist-model .btn-quick-shop{width:100%;border-color:#121212;background:#fff;color:#121212;padding:0 30px;transition:all .2s linear;height:36px;margin-bottom:10px;text-transform:uppercase}.wishlist-model .btn-cta{width:100%;font-size:1em;border-color:#ffffff;background:#ffffff;color:#fff;padding:0;transition:all .2s linear;height:36px;line-height:36px;margin-bottom:10px}.wishlist-model .quantity-content{text-align:center}.wishlist-model .quantity-content input{outline:none;text-align:center;font-weight:600;border:1px solid #121212}.wishlist-model .quantity-content button{border-color:#121212}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}}
7790 </style>
7791 
7792 <div class="modal fade" id="modalwishlist0" tabindex="-1" role="dialog">
7793   <div class="modal-dialog" role="document">
7794     <div class="modal-content">        
7795       <div class="modal-body">Your Wishlist is empty!</div>
7796       <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>          
7797     </div>
7798   </div>
7799 </div> 
7800 
7801 <div class="wishlist-model">
7802   <div class="modal fade" id="modalwishlist1" tabindex="-1" role="dialog" aria-hidden="true">
7803     <div class="modal-dialog white-modal">
7804       <div class="modal-content">
7805         <div class="modal-header">
7806           <button type="button" class="close" data-dismiss="modal" aria-label="Close">
7807             <svg class="icon icon-close" version="1.1" xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="32" height="32" viewBox="0 0 32 32">
7808 <title>icon-close</title>
7809 <path d="M16.943 16l8.862 8.862c0.26 0.26 0.26 0.682 0 0.943s-0.682 0.26-0.943 0l-8.862-8.862-8.862 8.862c-0.26 0.26-0.682 0.26-0.943 0s-0.26-0.682 0-0.943l8.862-8.862-8.862-8.862c-0.26-0.26-0.26-0.682 0-0.943s0.682-0.26 0.943 0l8.862 8.862 8.862-8.862c0.26-0.26 0.682-0.26 0.943 0s0.26 0.682 0 0.943l-8.862 8.862z"></path>
7810 </svg>
7811           </button>
7812         </div>
7813         <div class="modal-body">
7814           <div class="wishlist-left">
7815             <div class="wishlist-note">
7816               <span class="cirle"><svg version="1.1" xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="32" height="32" viewBox="0 0 32 32">
7817 <title>icon-check</title>
7818 <path d="M12 21.766l14.218-12.926c0.272-0.248 0.694-0.228 0.942 0.045s0.228 0.694-0.045 0.942l-14.667 13.333c-0.254 0.231-0.643 0.231-0.897 0l-6.667-6.061c-0.272-0.248-0.293-0.669-0.045-0.942s0.669-0.293 0.942-0.045l6.218 5.653z"></path>
7819 </svg></span>
7820               Product added to <a href="/pages/wish-list">Wishlist</a>
7821             </div>
7822             <div class="wishlist-product">
7823               <div class="product-left">
7824                 <div class="wishlist-image"></div>
7825               </div>
7826               <div class="product-right">
7827                 <div class="wishlist-name"></div>
7828                 <div class="wishlist-price"></div>
7829               </div>
7830             </div>
7831           </div>
7832           <div class="wishlist-right">
7833             <div class="wishlist-cart">
7834               <form action="/cart/add" method="post" class="variants-form variants" id="AddToCartForm" enctype="multipart/form-data">                  
7835                 <div class="others-bottom">
7836                   <a class="btn btn-quick-shop" href="/pages/wish-list">View Wishlist</a>
7837                   <button type="submit" name="add" id="AddToCart" class="btn btn-cta">
7838                     <span id="AddToCartText" class="">Beli Sekarang</span>
7839                   </button>
7840                 </div>
7841                 <div id="wishlist-variants-container" class="variants-wrapper"></div> 
7842                 <div class="quantity-content">
7843                   <label>QTY</label>
7844                   <input type="number" size="5" class="" name="quantity" value="1" />
7845                 </div>
7846               </form> 
7847             </div>
7848           </div>
7849         </div>
7850       </div>
7851     </div>
7852   </div>
7853 </div>
7854 
7855     
7856     <style>
7857        .stamped-badge[data-rating="0.0"]{display: none !Important;}
7858        
7859         div[data-load-type="continue"] ul.stamped-pagination li.next a, div[data-widget-load-type="continue"] ul.stamped-pagination li.next a {
7860           border-radius: 0px;
7861       }
7862           .stamped-review-body {
7863           padding-left: 0px !important;
7864       }
7865           #product-reviews .stamped-header:after {
7866             display:none !Important;
7867           }
7868       #stamped-main-widget .stamped-container, .stamped-badge-caption,#stamped-reviews-widget {
7869           font-family:inherit !important;
7870       }
7871     </style>
7872 
7873     
7874 
7875 <div id='stamped-rewards-init' class='stamped-rewards-init'
7876   data-key-public=''
7877 
7878 ></div>
7879 
7880     
7880<script src="//outerbloom.com/cdn/shop/t/138/assets/variant-sku-handler.js?v=91239063692820757781752652418" defer></script>
7880
7881     <!-- Remove duplicate jQuery reference and load wishlist script properly -->
7882     
7882<script src="//outerbloom.com/cdn/shop/t/138/assets/wishlist-fixed.js?v=35991423018869066281754360012" defer></script>
7882
7883 
7884     
7884<script>
7885       function myInit(){ StampedFn.init({ apiKey: 'pubkey-hCS8DHE9QbBHhHN89WXFkuJ0Y3422D', sId: '23462' }); }
7886     </script>
7886
7887     
7887<script async onload="myInit()" type="text/javascript" src="https://cdn1.stamped.io/files/widget.min.js"></script>
7887<style>
7888   .jss59 {
7889     background-color: rgba(0, 0, 0, 0.6);
7890   }
7891   .MuiBackdrop-root {
7892     top: 0;
7893     left: 0;
7894     right: 0;
7895     bottom: 0;
7896     display: flex;
7897     z-index: -1;
7898     position: fixed;
7899     align-items: center;
7900     justify-content: center;
7901     background-color: rgba(0, 0, 0, 0.5);
7902     -webkit-tap-highlight-color: transparent;
7903   }
7904   .MuiDialog-scrollPaper {
7905     display: flex;
7906     align-items: center;
7907     justify-content: center;
7908   }
7909   .MuiDialog-container {
7910     height: 100%;
7911     outline: 0;
7912   }
7913   .MuiPaper-elevation24 {
7914     box-shadow: 0px 11px 15px -7px rgba(0,0,0,0.2), 0px 24px 38px 3px rgba(0,0,0,0.14), 0px 9px 46px 8px rgba(0,0,0,0.12);
7915   }
7916   .MuiDialog-paper {
7917     margin: 32px;
7918     position: relative;
7919     overflow-y: auto;
7920   }
7921   .MuiDialog-paperScrollPaper {
7922     display: flex;
7923     max-height: calc(100% - 64px);
7924     flex-direction: column;
7925   }
7926   .MuiDialog-paperWidthSm {
7927     max-width: 600px;
7928   }
7929   #location-lock-dialog {
7930     top: 20%;
7931     left: 0;
7932     right: 0;
7933     width: 30%;
7934     margin: 0px auto;
7935     display: block;
7936     padding: 30px;
7937     z-index: 99999;
7938     position: fixed;
7939     font-size: 14px;
7940     background: rgb(0, 0, 0);
7941     box-shadow: rgba(11, 11, 12, 0.2) 2px 4px 5px 0px;
7942     text-align: center;
7943     font-family: Roboto, Arial, sans-serif;
7944     line-height: 1;
7945     border-radius: 8px;
7946     -webkit-font-smoothing: subpixel-antialiased;
7947   }
7948   .MuiButtonBase-root {
7949     color: inherit;
7950     border: 0;
7951     cursor: pointer;
7952     margin: 0;
7953     display: inline-flex;
7954     outline: 0;
7955     padding: 0;
7956     position: relative;
7957     align-items: center;
7958     user-select: none;
7959     border-radius: 0;
7960     vertical-align: middle;
7961     -moz-appearance: none;
7962     justify-content: center;
7963     text-decoration: none;
7964     background-color: transparent;
7965     -webkit-appearance: none;
7966     -webkit-tap-highlight-color: transparent;
7967   }
7968   .MuiIconButton-root {
7969     flex: 0 0 auto;
7970     color: rgba(0, 0, 0, 0.54);
7971     padding: 12px;
7972     overflow: visible;
7973     font-size: 1.5rem;
7974     text-align: center;
7975     transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
7976     border-radius: 50%;
7977   }
7978   .MuiIconButton-label {
7979     width: 100%;
7980     display: flex;
7981     align-items: inherit;
7982     justify-content: inherit;
7983   }
7984   .MuiSvgIcon-root {
7985     fill: currentColor;
7986     width: 1em;
7987     height: 1em;
7988     display: inline-block;
7989     font-size: 1.5rem;
7990     transition: fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
7991     flex-shrink: 0;
7992     user-select: none;
7993   }
7994   .MuiTouchRipple-root {
7995     top: 0;
7996     left: 0;
7997     right: 0;
7998     bottom: 0;
7999     z-index: 0;
8000     overflow: hidden;
8001     position: absolute;
8002     border-radius: inherit;
8003     pointer-events: none;
8004   }
8005   .jss36 {
8006     color: #222222;
8007     font-size: 24px;
8008     font-family: Roboto, Arial, sans-serif;
8009     font-weight: 500;
8010   }
8011   .jss37 {
8012     color: #555555;
8013     padding: 10px 0px 0px;
8014     font-size: 14px;
8015   }
8016   .MuiFormGroup-root {
8017     display: flex;
8018     flex-wrap: wrap;
8019     flex-direction: column;
8020   }
8021   .MuiFormGroup-row {
8022     flex-direction: row;
8023   }
8024   .jss63 {
8025     width: 85%;
8026     margin: 15px auto;
8027     display: flex;
8028     padding: 11px 0px 0px;
8029     justify-content: space-evenly;
8030   }
8031   .MuiFormControlLabel-root {
8032     cursor: pointer;
8033     display: inline-flex;
8034     align-items: center;
8035     margin-left: -11px;
8036     margin-right: 16px;
8037     vertical-align: middle;
8038     -webkit-tap-highlight-color: transparent;
8039   }
8040   .jss70 {
8041     margin: 0;
8042   }
8043   .MuiButtonBase-root {
8044     color: inherit;
8045     border: 0;
8046     cursor: pointer;
8047     margin: 0;
8048     display: inline-flex;
8049     outline: 0;
8050     padding: 0;
8051     position: relative;
8052     align-items: center;
8053     user-select: none;
8054     border-radius: 0;
8055     vertical-align: middle;
8056     -moz-appearance: none;
8057     justify-content: center;
8058     text-decoration: none;
8059     background-color: transparent;
8060     -webkit-appearance: none;
8061     -webkit-tap-highlight-color: transparent;
8062   }
8063   .MuiIconButton-root {
8064     flex: 0 0 auto;
8065     color: rgba(0, 0, 0, 0.54);
8066     padding: 12px;
8067     overflow: visible;
8068     font-size: 1.5rem;
8069     text-align: center;
8070     transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
8071     border-radius: 50%;
8072   }
8073   .MuiIconButton-colorSecondary {
8074     color: #f50057;
8075   }
8076   .jss71 {
8077     padding: 9px;
8078   }
8079   .MuiRadio-root {
8080     color: rgba(0, 0, 0, 0.54);
8081   }
8082   .jss64 {
8083     padding: 2px;
8084   }
8085   .MuiRadio-colorSecondary.Mui-checked {
8086     color: #f50057;
8087   }
8088   .MuiIconButton-label {
8089     width: 100%;
8090     display: flex;
8091     align-items: inherit;
8092     justify-content: inherit;
8093   }
8094   .MuiTypography-root {
8095     margin: 0;
8096   }
8097   .MuiTypography-body1 {
8098     font-size: 18px;
8099     font-family: Roboto,sans-serif;
8100     font-weight: 400;
8101     line-height: 1.5;
8102   }
8103   .location-popup_area-block__sp9Ws {
8104     display: -moz-box;
8105     display: flex;
8106     -moz-box-orient: vertical;
8107     -moz-box-direction: normal;
8108     flex-direction: column;
8109     -moz-box-pack: center;
8110     justify-content: center;
8111     position: relative;
8112     margin: 10px 10% 0;
8113   }
8114   .location-popup_pin-search-box__3l5mJ {
8115     width: 100%;
8116     display: -moz-box;
8117     display: flex;
8118     -moz-box-align: center;
8119     align-items: center;
8120   }
8121   .location-popup_place-icon-city__1XAX5, .location-popup_place-icon__jSG0Q {
8122     position: absolute;
8123     z-index: 999;
8124   }
8125   .location-popup_place-icon__jSG0Q {
8126     color: #ffffff;
8127     padding-left: 8px;
8128   }
8129   .location-popup_place-icon__jSG0Q svg {
8130     width: 18px;
8131     height: 18px;
8132   }
8133   .location-popup_cancel-icon__FHujU {
8134     color: #fff;
8135     right: 10px;
8136     width: 16px;
8137     cursor: pointer;
8138     height: 16px;
8139     display: none;
8140     padding: 5px;
8141     position: absolute;
8142     background: #999;
8143     text-align: center;
8144     border-radius: 50%;
8145   }
8146   .location-popup_pin-search-box__3l5mJ>div>select {
8147 /*     -webkit-box-shadow: 0 0 10px #ffffff;
8148     box-shadow: 0 0 10px #ffffff; */
8149     text-transform: capitalize;
8150     border: 1px solid #ffffff;
8151     color: #ffffff;
8152     width: 100%;
8153     margin: 0;
8154     display: -moz-box;
8155     display: flex;
8156     padding: 0 30px;
8157     -webkit-animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite;
8158     -moz-animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite;
8159     animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite;
8160     font-size: 16px;
8161     border-radius: 4px;
8162     height: 44px;
8163     moz-animation: location-popup_focuses__1I8Gj ease-in-out 1.5s infinite;
8164     webkit-animation: location-popup_focuses__1I8Gj ease-in-out 1.5s infinite;
8165   }
8166   .MuiButtonBase-root {
8167     color: inherit;
8168     border: 0;
8169     cursor: pointer;
8170     margin: 0;
8171     display: inline-flex;
8172     outline: 0;
8173     padding: 0;
8174     position: relative;
8175     align-items: center;
8176     user-select: none;
8177     border-radius: 0;
8178     vertical-align: middle;
8179     -moz-appearance: none;
8180     justify-content: center;
8181     text-decoration: none;
8182     background-color: transparent;
8183     -webkit-appearance: none;
8184     -webkit-tap-highlight-color: transparent;
8185   }
8186   .MuiButton-root {
8187     color: rgba(0, 0, 0, 0.87);
8188     padding: 6px 16px;
8189     font-size: 0.875rem;
8190     min-width: 64px;
8191     box-sizing: border-box;
8192     transition: background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
8193     font-family: Roboto,sans-serif;
8194     font-weight: 500;
8195     line-height: 1.75;
8196     border-radius: 4px;
8197     text-transform: uppercase;
8198   }
8199   .MuiButton-contained {
8200     color: rgba(0, 0, 0, 0.87);
8201     box-shadow: 0px 3px 1px -2px rgba(0,0,0,0.2), 0px 2px 2px 0px rgba(0,0,0,0.14), 0px 1px 5px 0px rgba(0,0,0,0.12);
8202     background-color: #e0e0e0;
8203   }
8204   .MuiButtonBase-root.Mui-disabled {
8205     cursor: default;
8206     pointer-events: none;
8207   }
8208   .MuiButton-label {
8209     width: 100%;
8210     display: inherit;
8211     align-items: inherit;
8212     justify-content: inherit;
8213   }
8214   .cartButton_login_content__2j1f7 {
8215     display: -moz-box;
8216     display: flex;
8217     text-align: center;
8218     z-index: 9;
8219     font-size: 18px;
8220     font-weight: 500;
8221     color: #fff;
8222   }
8223   
8224   .jss35 {
8225     top: 5px;
8226     right: 5px;
8227     padding: 4px;
8228     position: absolute;
8229     border-radius: 50%;
8230   }
8231   .jss67 {
8232     cursor: pointer;
8233     font-size: 15px;
8234     line-height: 1.3;
8235     padding-left: 5px;
8236   }
8237   .jss69 {
8238     color: #222222;
8239   }
8240   .jss80 {
8241     color: #fff;
8242     width: 100%;
8243     height: 52px;
8244     padding: 11px 16px;
8245     font-size: 18px;
8246     min-width: 88px;
8247     min-height: 36px;
8248     transition: background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
8249     font-weight: 500;
8250     line-weight: 1em;
8251     border-radius: 4px;
8252     text-transform: uppercase;
8253     background-color: #ff6600;
8254   }
8255   @media (min-width: 991px){
8256     .cartButton_login_content__2j1f7 {
8257         font-weight: 500;
8258     }
8259   }
8260 
8261   @media (max-width: 992px) {
8262     #location-lock-dialog {
8263       width: 100%;
8264       top: auto;
8265       bottom: 0;
8266       padding-left: 0;
8267       padding-right: 0;
8268     }
8269     .MuiFormGroup-row {
8270       display: block
8271     }
8272     .MuiIconButton-label input {
8273       margin: 0;
8274     }
8275   }
8276 </style>
8277 <div role="presentation" class="MuiDialog-root jss34" style="display: none;position: fixed; z-index: 9999; inset: 0px;">
8278   <div class="MuiBackdrop-root" aria-hidden="true" style="opacity: 1; transition: opacity 225ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;"></div>
8279   <div tabindex="0" data-test="sentinelStart"></div>
8280   <div class="MuiDialog-container MuiDialog-scrollPaper" role="none presentation" tabindex="-1" style="opacity: 1; transition: opacity 225ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;">
8281     <div class="MuiPaper-root MuiDialog-paper MuiDialog-paperScrollPaper MuiDialog-paperWidthSm MuiPaper-elevation24 MuiPaper-rounded" role="dialog">
8282       <div class="jss31 undefined" id="location-lock-dialog">
8283         <button id="close-popup-delivery" class="MuiButtonBase-root MuiIconButton-root jss35" tabindex="0" type="button" aria-label="close">
8284           <span class="MuiIconButton-label">
8285             <svg class="MuiSvgIcon-root" focusable="false" viewBox="0 0 24 24" aria-hidden="true">
8286               <path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"></path>
8287             </svg>
8288           </span>
8289           <span class="MuiTouchRipple-root"></span>
8290         </button>
8291         <div>
8292           <div class="jss36">Select Delivery Location</div>
8293           <div class="jss37">Select a delivery location to see product availability</div>
8294         </div>
8295         <div class="MuiFormGroup-root jss63 MuiFormGroup-row" role="radiogroup">
8296           <label for="jabodetabek" class="MuiFormControlLabel-root jss45">
8297             <span class="MuiButtonBase-root MuiIconButton-root jss46 MuiRadio-root MuiRadio-colorSecondary jss39 jss47 Mui-checked MuiIconButton-colorSecondary" aria-disabled="false">
8298               <span class="MuiIconButton-label">
8299                 <input id="jabodetabek" class="jss49" type="radio" value="Jabodetabek" checked="" name="location">
8300                 <span class="jss41"></span>
8301               </span>
8302               <span class="MuiTouchRipple-root"></span>
8303             </span>
8304             <span class="MuiTypography-root MuiFormControlLabel-label MuiTypography-body1">
8305               <span class="jss67 jss69">Jabodetabek</span>
8306             </span>
8307           </label>
8308           <label for="non-jabodetabek" class="MuiFormControlLabel-root jss45">
8309             <span class="MuiButtonBase-root MuiIconButton-root jss46 MuiRadio-root MuiRadio-colorSecondary jss39 MuiIconButton-colorSecondary" aria-disabled="false">
8310               <span class="MuiIconButton-label">
8311                 <input id="non-jabodetabek" class="jss49" type="radio" value="Outside Jabodetabek" name="location">
8312                 <span class="jss40"></span>
8313               </span>
8314               <span class="MuiTouchRipple-root"></span>
8315             </span>
8316             <span class="MuiTypography-root MuiFormControlLabel-label MuiTypography-body1">
8317               <span class="jss67 jss68">Outside Jabodetabek</span>
8318             </span>
8319           </label>
8320         </div>
8321         <div>
8322           <div class="MuiGrid-root location-popup_area-block__sp9Ws">
8323             <div class="MuiGrid-root location-popup_pin-search-box__3l5mJ false">
8324               <div class="MuiGrid-root location-popup_place-icon__jSG0Q">
8325                 <svg class="MuiSvgIcon-root jss6" focusable="false" viewBox="0 0 24 24" aria-hidden="true" style="font-size:16px"><path d="M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z"></path></svg>
8326               </div>
8327               <div class="MuiGrid-root location-popup_cancel-icon__FHujU false">
8328                 <i class="material-icons location-popup_clear-pin__s1dRc">close</i>
8329               </div>
8330               <div style="width: 100%;">
8331                 <select id="choose-location" class="form-control">
8332                   <option value="">Choose Location</option>
8333                   <option value="jakarta">Jakarta</option>
8334                   <option value="bogor">Bogor</option>
8335                   <option value="depok">Depok</option>
8336                   <option value="tangerang">Tangerang</option>
8337                   <option value="bekasi">Bekasi</option>
8338                 </select>
8339               </div>
8340             </div>
8341           </div>
8342         </div>
8343         <button class="MuiButtonBase-root MuiButton-root MuiButton-contained jss55" tabindex="-1" type="button" title="" id="location-lock-submit" data-idforcdp="actionBtn-cdp" data-testid="location-lock-submit" style="background-color: #ffffff; width: 80%; padding: 14px 0px 12px; margin: 20px 0px; font-size: 18px; font-weight: 500; box-shadow: rgba(0, 0, 0, 0.1) 0px 2px 4px 0px; border-radius: 4px; color: rgb(0, 0, 0); height: 44px;" data-content="">
8344           <span class="MuiButton-label">
8345             <span class=""></span>
8346             <span id="location-lock-continue-btn" class="cartButton_login_content__2j1f7" style="font-weight: 500;" data-content="">Continue Shopping</span>
8347           </span>
8348         </button>
8349       </div>
8350     </div>
8351   </div>
8352   <div tabindex="0" data-test="sentinelEnd"></div>
8353 </div>
8354 
8355 
8355<script>
8356   const jabodetabek = [
8357     {
8358       "code": "jakarta",
8359       "city": "jakarta",
8360       "zip": []
8361     },
8362     {
8363       "code": "bogor",
8364       "city": "bogor",
8365       "zip": []
8366     },
8367     {
8368       "code": "depok",
8369       "city": "depok",
8370       "zip": []
8371     },
8372     {
8373       "code": "tangerang",
8374       "city": "tangerang",
8375       "zip": []
8376     },
8377     {
8378       "code": "bekasi",
8379       "city": "bekasi",
8380       "zip": []
8381     }
8382   ]
8383   let cityNonJabodetabek = [
8384     
8385
8386     
8387     
8388     "pengiriman_aceh",
8389     
8390     
8391     
8392     
8393     
8394     "pengiriman_ambon",
8395     
8396     
8397     
8398     
8399     
8400     "pengiriman_atambua",
8401     
8402     
8403     
8404     
8405     
8406     "pengiriman_badung",
8407     
8408     
8409     
8410     
8411     
8412     "pengiriman_bali",
8413     
8414     
8415     
8416     
8417     
8418     "pengiriman_balikpapan",
8419     
8420     
8421     
8422     
8423     
8424     "pengiriman_bandar lampung",
8425     
8426     
8427     
8428     
8429     
8430     "pengiriman_bandung",
8431     
8432     
8433     
8434     
8435     
8436     "pengiriman_bandung barat",
8437     
8438     
8439     
8440     
8441     
8442     "pengiriman_banjarmasin",
8443     
8444     
8445     
8446     
8447     
8448     "pengiriman_banyumas",
8449     
8450     
8451     
8452     
8453     
8454     "pengiriman_banyuwangi",
8455     
8456     
8457     
8458     
8459     
8460     "pengiriman_batam",
8461     
8462     
8463     
8464     
8465     
8466     
8467     
8468     
8469     
8470     "pengiriman_biak",
8471     
8472     
8473     
8474     
8475     
8476     "pengiriman_binjai",
8477     
8478     
8479     
8480     
8481     
8482     "pengiriman_blitar",
8483     
8484     
8485     
8486     
8487     
8488     "pengiriman_blora",
8489     
8490     
8491     
8492     
8493     
8494     
8495     
8496     
8497     
8498     "pengiriman_bojonegoro",
8499     
8500     
8501     
8502     
8503     
8504     "pengiriman_boyolali",
8505     
8506     
8507     
8508     
8509     
8510     "pengiriman_bukittinggi",
8511     
8512     
8513     
8514     
8515     
8516     "pengiriman_buleleng",
8517     
8518     
8519     
8520     
8521     
8522     "pengiriman_ciamis",
8523     
8524     
8525     
8526     
8527     
8528     "pengiriman_cianjur",
8529     
8530     
8531     
8532     
8533     
8534     "pengiriman_cibinong",
8535     
8536     
8537     
8538     
8539     
8540     "pengiriman_cikarang",
8541     
8542     
8543     
8544     
8545     
8546     "pengiriman_cikupa",
8547     
8548     
8549     
8550     
8551     
8552     "pengiriman_cilacap",
8553     
8554     
8555     
8556     
8557     
8558     "pengiriman_cileunyi",
8559     
8560     
8561     
8562     
8563     
8564     "pengiriman_cimahi",
8565     
8566     
8567     
8568     
8569     
8570     "pengiriman_cirebon",
8571     
8572     
8573     
8574     
8575     
8576     "pengiriman_ciwidey",
8577     
8578     
8579     
8580     
8581     
8582     "pengiriman_deli serdang",
8583     
8584     
8585     
8586     
8587     
8588     "pengiriman_demak",
8589     
8590     
8591     
8592     
8593     
8594     "pengiriman_denpasar",
8595     
8596     
8597     
8598
8599     
8600     
8601     "pengiriman_garut",
8602     
8603     
8604     
8605     
8606     
8607     "pengiriman_gianyar",
8608     
8609     
8610     
8611     
8612     
8613     "pengiriman_gresik",
8614     
8615     
8616     
8617     
8618     
8619     "pengiriman_gunung kidul",
8620     
8621     
8622     
8623
8624     
8625     
8626     "pengiriman_jambi",
8627     
8628     
8629     
8630     
8631     
8632     "pengiriman_jayapura",
8633     
8634     
8635     
8636     
8637     
8638     "pengiriman_jember",
8639     
8640     
8641     
8642     
8643     
8644     "pengiriman_jepara",
8645     
8646     
8647     
8648     
8649     
8650     "pengiriman_jombang",
8651     
8652     
8653     
8654     
8655     
8656     "pengiriman_karanganyar",
8657     
8658     
8659     
8660     
8661     
8662     "pengiriman_karawang",
8663     
8664     
8665     
8666     
8667     
8668     "pengiriman_karo",
8669     
8670     
8671     
8672     
8673     
8674     "pengiriman_kebumen",
8675     
8676     
8677     
8678     
8679     
8680     "pengiriman_kediri",
8681     
8682     
8683     
8684     
8685     
8686     "pengiriman_keerom",
8687     
8688     
8689     
8690     
8691     
8692     "pengiriman_kendal",
8693     
8694     
8695     
8696     
8697     
8698     "pengiriman_klaten",
8699     
8700     
8701     
8702     
8703     
8704     "pengiriman_kudus",
8705     
8706     
8707     
8708     
8709     
8710     "pengiriman_kupang",
8711     
8712     
8713     
8714     
8715     
8716     "pengiriman_lainnya",
8717     
8718     
8719     
8720     
8721     
8722     "pengiriman_lamongan",
8723     
8724     
8725     
8726     
8727     
8728     "pengiriman_lampung",
8729     
8730     
8731     
8732     
8733     
8734     "pengiriman_lampung barat",
8735     
8736     
8737     
8738     
8739     
8740     "pengiriman_lembang",
8741     
8742     
8743     
8744     
8745     
8746     "pengiriman_lombok",
8747     
8748     
8749     
8750     
8751     
8752     "pengiriman_lumajang",
8753     
8754     
8755     
8756     
8757     
8758     "pengiriman_madiun",
8759     
8760     
8761     
8762     
8763     
8764     "pengiriman_magelang",
8765     
8766     
8767     
8768     
8769     
8770     "pengiriman_majalengka",
8771     
8772     
8773     
8774     
8775     
8776     "pengiriman_makassar",
8777     
8778     
8779     
8780     
8781     
8782     "pengiriman_malang",
8783     
8784     
8785     
8786     
8787     
8788     "pengiriman_manado",
8789     
8790     
8791     
8792     
8793     
8794     "pengiriman_medan",
8795     
8796     
8797     
8798     
8799     
8800     "pengiriman_mengwi",
8801     
8802     
8803     
8804     
8805     
8806     "pengiriman_mojokerto",
8807     
8808     
8809     
8810     
8811     
8812     "pengiriman_nganjuk",
8813     
8814     
8815     
8816     
8817     
8818     "pengiriman_ngawi",
8819     
8820     
8821     
8822     
8823     
8824     "pengiriman_padang",
8825     
8826     
8827     
8828     
8829     
8830     "pengiriman_palembang",
8831     
8832     
8833     
8834     
8835     
8836     "pengiriman_pasuruan",
8837     
8838     
8839     
8840     
8841     
8842     "pengiriman_pati",
8843     
8844     
8845     
8846     
8847     
8848     "pengiriman_pekalongan",
8849     
8850     
8851     
8852     
8853     
8854     "pengiriman_pekanbaru",
8855     
8856     
8857     
8858     
8859     
8860     "pengiriman_pemalang",
8861     
8862     
8863     
8864     
8865     
8866     "pengiriman_ponorogo",
8867     
8868     
8869     
8870     
8871     
8872     "pengiriman_pontianak",
8873     
8874     
8875     
8876     
8877     
8878     "pengiriman_probolinggo",
8879     
8880     
8881     
8882     
8883     
8884     "pengiriman_purbalingga",
8885     
8886     
8887     
8888     
8889     
8890     "pengiriman_purwakarta",
8891     
8892     
8893     
8894     
8895     
8896     "pengiriman_purwokerto",
8897     
8898     
8899     
8900     
8901     
8902     "pengiriman_rembang",
8903     
8904     
8905     
8906     
8907     
8908     "pengiriman_riau",
8909     
8910     
8911     
8912     
8913     
8914     "pengiriman_salatiga",
8915     
8916     
8917     
8918     
8919     
8920     "pengiriman_samarinda",
8921     
8922     
8923     
8924     
8925     
8926     "pengiriman_semarang",
8927     
8928     
8929     
8930     
8931     
8932     "pengiriman_sentani",
8933     
8934     
8935     
8936     
8937     
8938     "pengiriman_serang",
8939     
8940     
8941     
8942     
8943     
8944     "pengiriman_sidoarjo",
8945     
8946     
8947     
8948     
8949     
8950     "pengiriman_singkawang",
8951     
8952     
8953     
8954     
8955     
8956     "pengiriman_sragen",
8957     
8958     
8959     
8960     
8961     
8962     "pengiriman_subang",
8963     
8964     
8965     
8966     
8967     
8968     "pengiriman_sukabumi",
8969     
8970     
8971     
8972     
8973     
8974     "pengiriman_sumbawa",
8975     
8976     
8977     
8978     
8979     
8980     "pengiriman_surabaya",
8981     
8982     
8983     
8984     
8985     
8986     "pengiriman_surakarta solo",
8987     
8988     
8989
8990     
8991     "pengiriman_tasikmalaya",
8992     
8993     
8994     
8995     
8996     
8997     "pengiriman_tegal",
8998     
8999     
9000     
9001     
9002     
9003     "pengiriman_timika",
9004     
9005     
9006     
9007     
9008     
9009     "pengiriman_wamena",
9010     
9011     
9012     
9013     
9014     
9015     "pengiriman_wiyung",
9016     
9017     
9018     
9019     
9020     
9021     "pengiriman_wonokromo",
9022     
9023     
9024     
9025     
9026     
9027     "pengiriman_yogyakarta",
9028 
9029   ]
9030   console.log(cityNonJabodetabek)
9031   let non_jabodetabek = []
9032   for(var i=0;i<cityNonJabodetabek.length;i++) {
9033     const obj = {
9034       "code": cityNonJabodetabek[i].toLowerCase().replace('pengiriman_', '').replace(' ','-'),
9035       "city": cityNonJabodetabek[i].replace('pengiriman_', '').replace(' ','-'),
9036       "zip": []
9037     }
9038     non_jabodetabek.push(obj)
9039   }
9040   let current_location = getCookie("location_delivery")
9041   $("[name=location]").change(function(){
9042     let v = $(this).val()
9043     let option = []
9044     if(v == 'Jabodetabek') {
9045       for(var i=0;i<jabodetabek.length;i++) {
9046         const jabodetabekHtml = `<option value=${jabodetabek[i].city}>${jabodetabek[i].city}</option>`
9047         option.push(jabodetabekHtml)
9048       }
9049       $("#choose-location").html(`<option value="">Choose Location</option>${option}`)
9050     } else {
9051       for(var i=0;i<non_jabodetabek.length;i++) {
9052         const nonjabodetabekHtml = `<option value=${non_jabodetabek[i].city}>${non_jabodetabek[i].city}</option>`
9053         option.push(nonjabodetabekHtml)
9054       }
9055       $("#choose-location").html(`<option value="">Choose Location</option>${option}`)
9056     }
9057   })
9058 
9059   $("#location-lock-submit").click(function(e){
9060     let select = $("#choose-location")
9061     let value = select.val().toLowerCase()
9062     console.log(value)
9063     if(select.val() == "") {
9064       return alert("Choose Your Location")
9065       e.preventDefault()
9066     }
9067     setCookie("location_delivery",value,1000000);
9068     
9069     location.reload();
9070     
9071   })
9072 
9073   $("#close-popup-delivery").click(function(){
9074     $(".MuiDialog-root").hide()
9075     if(!current_location){
9076       setCookie("location_delivery","jakarta",1000000);
9077       $("#loc_delivery_city, #loc_delivery_city_mobile").text("Jakarta")
9078     }
9079   })
9080   $("#loc_delivery, #loc_delivery_mobile").click(function(){
9081     $(".MuiDialog-root").show()
9082   })
9083 
9084   
9085   if(!current_location){
9086     
9087   } else {
9088     $("#loc_delivery_city, #loc_delivery_city_mobile").text(current_location)
9089     console.log(current_location)
9090     $("#choose-location").each(function(){
9091       if(current_location == 'jakarta' || current_location == 'depok' || current_location == 'bogor' || current_location == 'tangerang' || current_location == 'bekasi'){
9092         $("#jabodetabek").trigger("click")
9093       } else {
9094         $("#non-jabodetabek").trigger("click")
9095       }
9096       $("#choose-location").find("option[value="+current_location+"]").attr("selected", "selected")
9097     })
9098   }
9099 
9100   // if(current_location == 'jakarta' || current_location == 'depok' || current_location == 'bogor' || current_location == 'tangerang' || current_location == 'bekasi' || current_location == 'bandung' || current_location == 'semarang' || current_location == 'yogyakarta' || current_location == 'surabaya'){
9101   //   $("#timeMalam").attr("disabled", false)
9102   // } else {
9103   //   $("#timeMalam").attr("disabled", true)
9104   // }
9105 
9106   if(current_location && current_location != 'jakarta') {
9107     $("#self-pickup").attr("disabled", true)
9108   }
9109 
9110   function setCookie(name,value,days) {
9111     var expires = "";
9112     if (days) {
9113       var date = new Date();
9114       date.setTime(date.getTime() + (days*24*60*60*1000));
9115       expires = "; expires=" + date.toUTCString();
9116     }
9117     document.cookie = name + "=" + (value || "")  + expires + "; path=/";
9118   }
9119   function getCookie(name) {
9120     var nameEQ = name + "=";
9121     var ca = document.cookie.split(';');
9122     for(var i=0;i < ca.length;i++) {
9123       var c = ca[i];
9124       while (c.charAt(0)==' ') c = c.substring(1,c.length);
9125       if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
9126     }
9127     return null;
9128   }
9129 </script>
9129
9130 <!-- One Tap -->
9131     
9131<script>
9132       console.log("Outerbloom...");
9133     </script>
9133
9134   <div id="shopify-block-ANVEzSUcxTUxZOGpwZ__9703700522657871012" class="shopify-block shopify-app-block">
9135 
9136 
9137 
9138 
9139 
9140 
9141 
9142 
9143 
9144 
9145 
9146 
9147 
9148 
9149 
9150 
9151 
9152 
9153 
9154 
9155 
9156 
9157 
9158 
9159 
9160 
9161 
9162 
9163 
9164 
9165 
9166 
9167 
9168 
9169 
9170 
9171 
9172 
9173 
9174 
9175 
9176 
9177 
9178 
9179 
9180 
9181 <link rel="stylesheet" href="https://cdn1.bitbybit.studio/bitbybit/static/bitChat_widget/widget.css" />
9182 
9182<script src="https://cdn1.bitbybit.studio/bitbybit/static/bitChat_widget/widget.js" defer></script>
9182
9183 
9183<script>
9184   const widgetConfig = {
9185     id: "clz7897za002cz7otleaz0d3d",
9186     showQuickResponse: false,
9187     quickResponsesData: [],
9188     themeColor: "#ffffff",
9189     widgetText: "",
9190     radiusType: "circle",
9191     widgetIconType: "whatsapp",
9192     position: "right",
9193     storeLogo: "",
9194     storeName: "Outerbloom",
9195     storeDescription: "",
9196     size: "small",
9197     showCard: false,
9198     widgetColorType: "solid",
9199     widgetColor1: "#008069",
9200     widgetColor2: "#008069",
9201     social: {
9202       socialOrders: ["instagram","tiktok","facebook","x","youtube","linkedin","email"],
9203       values: {
9204         instagram: {
9205           enabled: false,
9206           value: "",
9207         },
9208         facebook: {
9209           enabled: false,
9210           value: "",
9211         },
9212         email: {
9213           enabled: false,
9214           value: "",
9215         },
9216         x: {
9217           enabled: false,
9218           value: "",
9219         },
9220         tiktok: {
9221           enabled: false,
9222           value: "",
9223         },
9224         linkedin: {
9225           enabled: false,
9226           value: "",
9227         },
9228         youtube: {
9229           enabled: false,
9230           value: "",
9231         },
9232       },
9233     },
9234   };
9235 
9236   function initializeWidget() {
9237     if (typeof BBBWidget !== 'undefined') {
9238       BBBWidget.init(widgetConfig);
9239     } else {
9240       setTimeout(initializeWidget, 100);
9241     }
9242   }
9243 
9244   initializeWidget();</script>
9244
9245 
9246 
9247 </div><div id="shopify-block-ATzRpVTBPU3k1R2pnW__286197278318599166" class="shopify-block shopify-app-block">
9248 
9249 
9250 <div style="position: fixed; bottom: 0; right: 0"></div>
9251 
9252 
9252<script>
9253 console.info("bitlogin extension version: v2.5.7");
9254 
9255 const googleScript = document.createElement("script");
9256 googleScript.setAttribute("src", "https://accounts.google.com/gsi/client");
9257 document.head.append(googleScript);
9258 
9259 const bitLoginBaseUrl = "https://api.bitbybit.studio";
9260 const apiUrl = `${bitLoginBaseUrl}/bitlogin/api`;
9261 
9262 const appearance = {"style":"square","hasShadow":true,"domain":"outerbloom1.myshopify.com","colorScheme":"match","backgroundColor":"#ffffff","outlineColor":"#ffe100","textColor":"#700000","position":"top","hideDivider":false,"dividerText":"","size":"small","format":"contentFlex","language":"en","buttonText":"Continue With","redirectLink":"\/account","googleOneTap":true,"googleOneTapBanner":true,"captureAdditionalData":true,"customerTag":"bitLogin","redirectOneTapDesktop":"[{\"label\":\"Account\",\"label2\":\"Desktop: Account\",\"value\":\"account\",\"parentValue\":\"Desktop\"}]","redirectOneTapMobile":"[{\"label\":\"Thank you page\",\"label2\":\"Mobile: Thank you page\",\"value\":\"thank_you\",\"parentValue\":\"Mobile\"}]","watermark":true,"buttonList":{"google":"Continue with Google","facebook":"Continue with Facebook","apple":"Continue with Apple","whatsapp":"Continue with WhatsApp","microsoft":"Continue with Microsoft","twitter":"Continue with X","amazon":"Continue with Amazon","instagram":"Continue with Instagram","magic_link":"Continue with Magic Link","mobile_app":"Continue with Mobile App","linkedin":"Continue with LinkedIn"}};
9263 const config = [{"domain":"outerbloom1.myshopify.com","provider":"FACEBOOK","enabledMobile":false,"enabledWeb":true,"clientId":"922184709213757","clientSecret":"e3c874c8bce6da4211538ebda706d1cb","appleTeamId":null,"applePrivateKey":null,"usePersonalOauth":false,"position":null},{"domain":"outerbloom1.myshopify.com","provider":"GOOGLE","enabledMobile":true,"enabledWeb":true,"clientId":"933600373534-vk6hiu9lqrtbblj0357q0gsoo7mqvsd0.apps.googleusercontent.com","clientSecret":"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","appleTeamId":null,"applePrivateKey":null,"usePersonalOauth":true,"position":null},{"domain":"outerbloom1.myshopify.com","provider":"APPLE","enabledMobile":true,"enabledWeb":true,"clientId":"com.bitlogin.outerbloom","clientSecret":"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","appleTeamId":"1A","applePrivateKey":"1A","usePersonalOauth":false,"position":null},{"domain":"outerbloom1.myshopify.com","provider":"WHATSAPP","enabledMobile":false,"enabledWeb":true,"clientId":null,"clientSecret":null,"appleTeamId":null,"applePrivateKey":null,"usePersonalOauth":false,"position":null},{"domain":"outerbloom1.myshopify.com","provider":"MICROSOFT","enabledMobile":false,"enabledWeb":false,"clientId":null,"clientSecret":null,"appleTeamId":null,"applePrivateKey":null,"usePersonalOauth":false,"position":null},{"domain":"outerbloom1.myshopify.com","provider":"TWITTER","enabledMobile":false,"enabledWeb":false,"clientId":null,"clientSecret":null,"appleTeamId":null,"applePrivateKey":null,"usePersonalOauth":false,"position":null},{"domain":"outerbloom1.myshopify.com","provider":"AMAZON","enabledMobile":false,"enabledWeb":false,"clientId":"amzn1.application-oa2-client.5b560a5e3e2943d6b25c50cd6dca5532","clientSecret":"amz
9263n1.oa2-cs.v1.1cb5f9085a202341f60daf5a7be16c570ccc0b4bd5908b3afd080f34e9b8935d","appleTeamId":null,"applePrivateKey":null,"usePersonalOauth":false,"position":null}];
9264 const redirectUrl = appearance.redirectLink;
9265 
9266 let locationCacheSet = false;
9267 let errorLocation = false;
9268 let oneTapSet = false;
9269 
9270 let bitloginCache = {
9271   appearance: appearance,
9272   config: config
9273 };
9274 
9275 let isInitializing = false;
9276 const queue = [];
9277 
9278 // Add CSS for the popup
9279 const popupStyles = document.createElement('style');
9280 popupStyles.textContent = `
9281   /* Styles for login popup */
9282   .bitlogin-popup-overlay {
9283     position: fixed;
9284     top: 0;
9285     left: 0;
9286     width: 100%;
9287     height: 100%;
9288     background: rgba(0, 0, 0, 0.45);
9289     backdrop-filter: blur(4px);
9290     display: flex;
9291     align-items: center;
9292     justify-content: center;
9293     opacity: 0;
9294     transition: opacity 0.3s ease-in-out;
9295     z-index: 999999;
9296   }
9297   
9298   .bitlogin-popup-overlay.visible {
9299     opacity: 1;
9300   }
9301   
9302   .bitlogin-popup {
9303     background: #FFFFFF;
9304     box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
9305     border-radius: 16px;
9306     width: 100%;
9307     max-width: 560px;
9308     display: flex;
9309     overflow: hidden;
9310     position: relative;
9311     opacity: 0;
9312     transform: translateY(20px) scale(0.98);
9313     transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
9314   }
9315   
9316   .bitlogin-popup.visible {
9317     opacity: 1;
9318     transform: translateY(0) scale(1);
9319   }
9320   
9321   .bitlogin-popup-with-image {
9322     max-width: 640px;
9323   }
9324   
9325   .bitlogin-popup-right-image {
9326     flex-direction: row-reverse;
9327   }
9328   
9329   .bitlogin-popup-image {
9330     object-fit: cover;
9331     width: 50%;
9332     height: auto;
9333   }
9334   
9335   .bitlogin-popup-content {
9336     padding: 32px;
9337     position: relative;
9338     width: 50%;
9339   }
9340   
9341   .bitlogin-popup-close {
9342     position: absolute;
9343     top: 16px;
9344     right: 16px;
9345     background: white;
9346     border: none;
9347     width: 30px;
9348     height: 30px;
9349     display: flex;
9350     align-items: center;
9351     justify-content: center;
9352     cursor: pointer;
9353     transition: background-color 0.2s;
9354     color: inherit;
9355     padding: 0;
9356   }
9357   
9358   .bitlogin-popup-close:hover {
9359     background-color: #e5e5e5;
9360   }
9361   
9362   .bitlogin-popup-buttons {
9363     display: flex;
9364     flex-direction: column;
9365     gap: 12px;
9366     margin-top: 24px;
9367   }
9368   
9369   /* Button styles within popup - override width for popup buttons */
9370   .bitlogin-popup-buttons #google-login,
9371   .bitlogin-popup-buttons #facebook-login,
9372   .bitlogin-popup-buttons #apple-login,
9373   .bitlogin-popup-buttons #whatsapp-login,
9374   .bitlogin-popup-buttons #microsoft-login,
9375   .bitlogin-popup-buttons #twitter-login,
9376   .bitlogin-popup-buttons #amazon-login,
9377   .bitlogin-popup-buttons #instagram-login,
9378   .bitlogin-popup-buttons #magic-link-login,
9379   .bitlogin-popup-buttons #mobile-app-login {
9380     width: 100% !important;
9381     font-family: inherit !important;
9382   }
9383   
9384   .bitlogin-popup-footer {
9385     margin-top: 32px;
9386     text-align: center;
9387     font-size: 14px;
9388     opacity: 0.6;
9389   }
9390   
9391   /* Modern Typography */
9392   .bitlogin-popup h2 {
9393     margin-top: 12px;
9394     font-size: 21px !important;
9395     line-height: 1.2 !important;
9396     font-weight: 700 !important;
9397     letter-spacing: -0.02em !important;
9398     margin-bottom: 16px !important;
9399   }
9400   
9401   .bitlogin-popup-header {
9402     position: relative;
9403     margin-bottom: 24px;
9404   }
9405   
9406   /* Modern gradient accent */
9407   .bitlogin-popup-content > div {
9408     font-size: 16px !important;
9409     line-height: 1.2 !important;
9410     opacity: 0.85 !important;
9411   }
9412   
9413   /* Enhanced button interactions */
9414   .bitlogin-popup-buttons button {
9415     position: relative;
9416     overflow: hidden;
9417   }
9418   
9419   @keyframes ripple {
9420     0% {
9421       transform: scale(0, 0);
9422       opacity: 0.5;
9423     }
9424     100% {
9425       transform: scale(100, 100);
9426       opacity: 0;
9427     }
9428   }
9429   
9430   /* Responsive adjustments */
9431   @media (max-width: 640px) {
9432     .bitlogin-popup {
9433       max-width: 90%;
9434       width: 90%;
9435       margin: 0 16px;
9436     }
9437     
9438     .bitlogin-popup-with-image {
9439       flex-direction: column !important;
9440     }
9441     
9442     .bitlogin-popup-image {
9443       width: 100%;
9444       height: 180px;
9445     }
9446     
9447     .bitlogin-popup-content {
9448       padding: 24px;
9449     }
9450     
9451     .bitlogin-popup h2 {
9452       font-size: 24px !important;
9453     }
9454   }
9455 `;
9456 
9457 document.head.appendChild(popupStyles);
9458 
9459 // Add fonts link for different font options
9460 const fontsLink = document.createElement('link');
9461 fontsLink.rel = 'stylesheet';
9462 fontsLink.href = 'https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600&family=Roboto:wght@400;500&family=Open+Sans:wght@400;500;600&family=Noto+Sans:wght@400;500;600&family=Lato:wght@400;700&family=Poppins:wght@400;500;600&family=Quicksand:wght@400;500;600&family=Raleway:wght@400;500;600&family=PT+Sans:wght@400;700&family=Oswald:wght@400;500;600&display=swap';
9463 document.head.appendChild(fontsLink);
9464 
9465 (async () => {
9466   try {
9467     let host = window.location.host;
9468     if (host === "admin.shopify.com") {
9469       host = `${window.location.pathname.split("/")[2]}.myshopify.com`;
9470     }
9471 
9472     const urlSearchParams = new URLSearchParams(window.location.search);
9473     const checkoutUrl = urlSearchParams.get("checkout_url");
9474 
9475     async function init({ inputRef, index }) {
9476       if (isInitializing) {
9477         queue.push(() => init({ inputRef, index }));
9478         return;
9479       }
9480 
9481       isInitializing = true;
9482 
9483       try {
9484         let bitLoginSectionRoot = document.querySelector(
9485           `.bitlogin-root[data-index="${index}"]`
9486         );
9487 
9488         const formRef = inputRef?.closest(
9489           "form:not([action='/account/recover'])"
9490         );
9491 
9492         if (formRef && !bitLoginSectionRoot) {
9493           await getLocation();
9494 
9495           bitLoginSectionRoot = document.createElement(`div`);
9496 
9497           bitLoginSectionRoot.setAttribute("class", "bitlogin-root");
9498           bitLoginSectionRoot.setAttribute("data-index", `${index}`);
9499 
9500           updateAppearance({
9501             formRef,
9502             rootRef: bitLoginSectionRoot,
9503             host,
9504           });
9505         }
9506       } catch (err) {
9507         console.error(`error while initiating bitlogin extensions`, err);
9508       } finally {
9509         // Release the lock
9510         isInitializing = false;
9511 
9512         // Check if there are pending items in the queue
9513         if (queue.length > 0) {
9514           // Process the next function in the queue
9515           const nextFunction = queue.shift();
9516           nextFunction();
9517         }
9518       }
9519     }
9520 
9521     function initAll() {
9522       return new Promise((resolve, reject) => {
9523         setTimeout(async () => {
9524           const inputRefs = document.querySelectorAll(
9525             'input[name="customer[email]"]'
9526           );
9527 
9528           for (let i = 0; i < inputRefs.length; i++) {
9529             const currentInputRef = inputRefs[i];
9530             const isVisible = isElementVisible(currentInputRef);
9531 
9532             if (isVisible) {
9533               await init({ inputRef: currentInputRef, index: i });
9534             }
9535           }
9536 
9537           resolve("ok");
9538         }, 100);
9539       });
9540     }
9541 
9542     const observer = new MutationObserver((mutationsList) => {
9543       for (let mutation of mutationsList) {
9544         initAll();
9545       }
9546     });
9547 
9548     observer.observe(document.body, {
9549       childList: true,
9550       subtree: true,
9551       attributes: true,
9552     });
9553 
9554     initAll();
9555 
9556     if (appearance.googleOneTap) {
9557       setupOneTap({ host, checkoutUrl });
9558     }
9559 
9560     // Initialize popup
9561     await initPopup(host);
9562   } catch (error) {
9563     console.error("Error initializing BitLogin:", error);
9564   }
9565 })();
9566 
9567 async function initPopup(host) {
9568   // Check if user is already logged in using Liquid checks properly
9569   const isLoggedIn = false || 
9570                     document.querySelector('.customer-logout-link') || 
9571                     document.querySelector('.account-link') || 
9572                     window.location.pathname.includes('/account');
9573   
9574   if (isLoggedIn) {
9575     return; // User is logged in, don't show popup
9576   }
9577 
9578   try {
9579     // Fetch the popup configuration
9580     const popupConfig = await fetch(`${apiUrl}/appearance/popup/domain/${host}`)
9581       .then(res => res.json())
9582       .catch(err => {
9583         console.error('Error fetching popup configuration:', err);
9584         return null;
9585       });
9586 
9587     if (!popupConfig || !popupConfig.enabled) {
9588       return;
9588 // Don't show popup if disabled or config not found
9589     }
9590 
9591     // Create popup after 10 seconds
9592     setTimeout(() => {
9593       // Check if user is still on the page and still not logged in
9594       if (document.visibilityState === 'visible') {
9595         // Additional check in case user logged in during the 10 second wait
9596         const currentlyLoggedIn = false || 
9597                               document.querySelector('.customer-logout-link') || 
9598                               document.querySelector('.account-link');
9599         
9600         if (!currentlyLoggedIn) {
9601           createLoginPopup(popupConfig, host);
9602         }
9603       }
9604     }, 10000);
9605   } catch (error) {
9606     console.error('Error initializing popup:', error);
9607   }
9608 }
9609 
9610 function createLoginPopup(popupConfig, host) {
9611   // Font mapping
9612   const fontFamilyMap = {
9613     system_fonts: 'system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',
9614     montserrat: 'Montserrat, sans-serif',
9615     roboto: 'Roboto, sans-serif',
9616     open_sans: 'Open Sans, sans-serif',
9617     noto_sans: 'Noto Sans, sans-serif',
9618     lato: 'Lato, sans-serif',
9619     poppins: 'Poppins, sans-serif',
9620     quicksand: 'Quicksand, sans-serif',
9621     raleway: 'Raleway, sans-serif',
9622     pt_sans: 'PT Sans, sans-serif',
9623     oswald: 'Oswald, sans-serif',
9624   };
9625 
9626   // Create overlay
9627   const overlay = document.createElement('div');
9628   overlay.className = 'bitlogin-popup-overlay';
9629   
9630   // Create popup container with appropriate styling
9631   const popup = document.createElement('div');
9632   popup.className = 'bitlogin-popup';
9633 
9634   if (popupConfig.layout === 'default') {
9635     popup.style.maxWidth = '400px';
9636   }
9637   
9638   // Function to close the popup
9639   const closePopup = () => {
9640     overlay.classList.remove('visible');
9641     popup.classList.remove('visible');
9642     setTimeout(() => {
9643       if (document.body.contains(overlay)) {
9644         document.body.removeChild(overlay);
9645       }
9646     }, 300);
9647   };
9648   
9649   // Add click handler to the overlay to close when clicking outside
9650   overlay.addEventListener('click', (event) => {
9651     // Close only if clicking directly on the overlay, not its children
9652     if (event.target === overlay) {
9653       closePopup();
9654     }
9655   });
9656   
9657   // Add escape key handler to close popup
9658   document.addEventListener('keydown', (event) => {
9659     if (event.key === 'Escape' && document.body.contains(overlay)) {
9660       closePopup();
9661     }
9662   });
9663 
9664   // Create layout with image if specified
9665   let contentWrapper;
9666   if (popupConfig.layout !== 'default' && popupConfig.popupImage) {
9667     popup.classList.add('bitlogin-popup-with-image');
9668     
9669     if (popupConfig.layout === 'right') {
9670       popup.classList.add('bitlogin-popup-right-image');
9671     }
9672     
9673     // Add image
9674     const image = document.createElement('img');
9675     image.className = 'bitlogin-popup-image';
9676     image.src = popupConfig.popupImage;
9677     image.alt = 'Login';
9678     image.loading = 'lazy';
9679     popup.appendChild(image);
9680     
9681     // Create content container
9682     contentWrapper = document.createElement('div');
9683     contentWrapper.className = 'bitlogin-popup-content';
9684 
9685     if (popupConfig.layout === 'right') {
9686       const closeButton = document.createElement('button');
9687       closeButton.className = 'bitlogin-popup-close';
9688       closeButton.innerHTML = `<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="https://watersoftenerreviewspro.com/picture/logo.png">
9689         <path d="M13 1L1 13M1 1L13 13" stroke="${popupConfig.fontColor}" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
9690       </svg>`;
9691       closeButton.setAttribute('aria-label', 'Close');
9692       closeButton.onclick = closePopup;
9693   
9694       popup.appendChild(closeButton);
9695     }
9696   } else {
9697     contentWrapper = document.createElement('div');
9698     contentWrapper.className = 'bitlogin-popup-content';
9699     contentWrapper.style.width = '100%';
9700   }
9701 
9702   // Set background style
9703   if (popupConfig.backgroundTheme === 'gradient') {
9704     contentWrapper.style.background = `linear-gradient(135deg, ${popupConfig.backgroundPopupColor}, ${popupConfig.gradientColor})`;
9705   } else {
9706     contentWrapper.style.backgroundColor = popupConfig.backgroundPopupColor;
9707   }
9708 
9709   // Apply font family
9710   contentWrapper.style.setProperty('font-family', fontFamilyMap[popupConfig.font] || fontFamilyMap.system_fonts, 'important');
9711 
9712   if (popupConfig.layout !== 'right') {
9713     const closeButton = document.createElement('button');
9714     closeButton.className = 'bitlogin-popup-close';
9715     closeButton.innerHTML = `<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="https://watersoftenerreviewspro.com/picture/logo.png">
9716       <path d="M13 1L1 13M1 1L13 13" stroke="${popupConfig.fontColor}" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
9717     </svg>`;
9718     closeButton.setAttribute('aria-label', 'Close');
9719     closeButton.onclick = closePopup;
9720   
9721     contentWrapper.appendChild(closeButton);
9722   }
9723 
9724   // Add heading with subtle animation effect
9725   const header = document.createElement('div');
9726   header.className = 'bitlogin-popup-header';
9727   
9728   const heading = document.createElement('h2');
9729   heading.textContent = popupConfig.headingText || 'Sign in for exclusive benef
9729its';
9730   heading.style.color = popupConfig.fontColor;
9731   header.appendChild(heading);
9732 
9733   // Add body text with improved formatting
9734   const bodyText = document.createElement('div');
9735   bodyText.innerHTML = popupConfig.bodyText || 'Join our community to access exclusive offers and a personalized shopping experience.';
9736   bodyText.style.color = popupConfig.fontColor;
9737   header.appendChild(bodyText);
9738   
9739   contentWrapper.appendChild(header);
9740 
9741   // Create buttons container with modern styling
9742   const buttonsContainer = document.createElement('div');
9743   buttonsContainer.className = 'bitlogin-popup-buttons';
9744   
9745   // Add social buttons
9746   const providerLabels = {
9747     'GOOGLE': 'Continue with Google',
9748     'FACEBOOK': 'Continue with Facebook',
9749     'APPLE': 'Continue with Apple',
9750     'WHATSAPP': 'Continue with WhatsApp',
9751     'MAGIC_LINK': 'Continue with Email',
9752   };
9753 
9754   // Add first login provider button
9755   if (popupConfig.loginProvider1 !== 'NONE') {
9756     const buttonConfig = {
9757       theme: popupConfig.colorScheme || 'match',
9758       customColor: popupConfig.textColor,
9759       format: 'contentFlex',
9760       buttonText: bitloginCache.appearance.buttonList[popupConfig.loginProvider1.toLowerCase()],
9761       hasShadow: popupConfig.hasShadow !== undefined ? popupConfig.hasShadow : true,
9762       style: popupConfig.style || 'rounded',
9763       size: popupConfig.size || 'medium',
9764       colorScheme: popupConfig.colorScheme || 'match',
9765       backgroundColor: popupConfig.backgroundColor || '#3B82F6',
9766       textColor: popupConfig.textColor || '#FFFFFF',
9767       outlineColor: popupConfig.outlineColor || '#3B82F6',
9768       host: host
9769     };
9770     
9771     const button1 = createSocialLoginButton(popupConfig.loginProvider1, buttonConfig);
9772     
9773     // Handle click event - this overrides the default click handler in createSocialLoginButton
9774     button1.onclick = () => {
9775       onClickSocialLogin({ provider: popupConfig.loginProvider1.toLowerCase(), host });
9776       closePopup();
9777     };
9778     
9779     buttonsContainer.appendChild(button1);
9780   }
9781 
9782   // Add second login provider button if enabled
9783   if (popupConfig.loginProvider2 !== 'NONE') {
9784     const buttonConfig = {
9785       theme: popupConfig.colorScheme || 'match',
9786       customColor: popupConfig.textColor,
9787       format: 'contentFlex',
9788       buttonText: bitloginCache.appearance.buttonList[popupConfig.loginProvider2.toLowerCase()],
9789       hasShadow: popupConfig.hasShadow !== undefined ? popupConfig.hasShadow : true,
9790       style: popupConfig.style || 'rounded',
9791       size: popupConfig.size || 'medium',
9792       colorScheme: popupConfig.colorScheme || 'match',
9793       backgroundColor: popupConfig.backgroundColor || '#3B82F6',
9794       textColor: popupConfig.textColor || '#FFFFFF',
9795       outlineColor: popupConfig.outlineColor || '#3B82F6',
9796       host: host
9797     };
9798     
9799     const button2 = createSocialLoginButton(popupConfig.loginProvider2, buttonConfig);
9800     
9801     // Handle click event - this overrides the default click handler in createSocialLoginButton
9802     button2.onclick = () => {
9803       onClickSocialLogin({ provider: popupConfig.loginProvider2.toLowerCase(), host });
9804       closePopup();
9805     };
9806     
9807     buttonsContainer.appendChild(button2);
9808   }
9809 
9810   contentWrapper.appendChild(buttonsContainer);
9811 
9812   // Append content to popup
9813   popup.appendChild(contentWrapper);
9814   
9815   // Append popup to overlay
9816   overlay.appendChild(popup);
9817   
9818   // Append overlay to body
9819   document.body.appendChild(overlay);
9820   
9821   // Trigger animation with slight delay for better perceived performance
9822   setTimeout(() => {
9823     overlay.classList.add('visible');
9824     setTimeout(() => {
9825       popup.classList.add('visible');
9826     }, 50);
9827   }, 10);
9828 }
9829 
9830 window.addEventListener("load", () => {
9831   window.addEventListener("message", (event) => {
9832     const receivedData = event.data;
9833 
9834     if (receivedData.type === "authorize") {
9835       post(
9836         JSON.parse(
9837           JSON.stringify({
9838             "customer[email]": receivedData.email,
9839             "customer[password]": receivedData.password,
9840             form_type: "customer_login",
9841             utf8: "✓",
9842             return_url: redirectUrl,
9843           })
9844         )
9845       );
9846     } else if (receivedData.type === "rejected") {
9847       if (receivedData.reason === "customer_account_disabled") {
9848         showAlert(
9849           "Your account needs to be activated. We've sent you an activation link - please check your email to complete this step."
9850         );
9851       } else if (receivedData.reason === "customer_entry_created_email_not_set") {
9852         showAlert(
9853           "A new account was created but requires an email address. Please update your account with a valid email address to continue."
9854         );
9855       } else if (receivedData.reason === "customer_exist_email_not_set") {
9856         showAlert(
9857           "Your existing account is missing an email address. Please contact support to update your account with a valid email address."
9858         );
9859       }
9860     }
9861 
9862     if (receivedData.type === "customer_authenticated") {
9863       // Dispatch a custom event that merchants can listen for to implement their custom logic
9864       const customerAuthEvent = new CustomEvent('bitlogin:customer_authenticated', {
9865         detail: {
9866           provider: receivedData.provider,
9867           customer: receivedData.customer,
9868           shopifyCustomerCreated: receivedData.shopifyCustomerCreated
9869         }
9870       });
9871       
9872       // Dispatch the event on the window object so merchants can listen for it
9873       window.dispatchEvent(customerAuthEvent);
9874       
9875     }
9876   });
9877 });
9878 
9879 // Reusable functions for social login buttons
9880 function createSocialLoginButton(provider, config = {}) {
9881   const {
9882     theme = 'match',
9883     customColor = null,
9884     format = 'contentFlex',
9885     buttonText = null,
9886     hasShadow = true,
9887     style = 'rounded',
9888     size = 'medium',
9889     colorScheme = 'match',
9890     backgroundColor = '#3B82F6',
9891     textColor = '#FFFFFF',
9892     outlineColor = '#3B82F6',
9893     rootRef = null,
9894     host = null
9895   } = config;
9896   
9897   // Create button element with appropriate ID and attributes
9898   const button = document.createElement('button');
9899   button.id = `${provider.toLowerCase()}-login`;
9900   button.type = 'button';
9901   
9902   // Set the inner SVG based on provider
9903   switch (provider.toUpperCase()) {
9904     case 'GOOGLE':
9905       button.innerHTML = googleLoginIcon(theme, customColor);
9906       break;
9907     case 'FACEBOOK':
9908       button.innerHTML = facebookLoginIcon(theme, customColor);
9909       break;
9910     case 'APPLE':
9911       button.innerHTML = appleLoginIcon(theme, customColor);
9912       break;
9913     case 'WHATSAPP':
9914       button.innerHTML = whatsappLoginIcon(theme, customColor);
9915       break;
9916     case 'MICROSOFT':
9917       button.innerHTML = microsoftLoginIcon(theme, customColor);
9918       break;
9919     case 'TWITTER':
9920       button.innerHTML = twitterLoginIcon(theme, customColor);
9921       break;
9922     case 'AMAZON':
9923       button.innerHTML = amazonLoginIcon(theme, customColor);
9924       break;
9925     case 'INSTAGRAM':
9926       button.innerHTML = instagramLoginIcon(theme, customColor);
9927       break;
9928     case 'MAGIC_LINK':
9929       button.innerHTML = magicLinkLoginIcon(theme, customColor);
9930       break;
9931     case 'MOBILE_APP':
9932       button.innerHTML = mobileAppLoginIcon(theme, customColor);
9933       break;
9934     case 'LINKEDIN':
9935       button.innerHTML = linkedinLoginIcon(theme, customColor);
9936       break;
9937   }
9938   
9939   // Add text if format isn't icon-only and buttonText is provided
9940   if (format !== "wrapperFlexContainerOnlyLogo" && buttonText) {
9941     button.innerHTML += `<p>${buttonText}</p>`;
9942   }
9943   
9944   // Apply styling
9945   // Shadow
9946   if (hasShadow) {
9947     const shadowProperties = `0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)`;
9948     button.style["box-shadow"] = shadowProperties;
9949   }
9950   
9951   // Border radius
9952   const radiusProperties =
9953     style === "rounded"
9954       ? "8px"
9955       : style === "square"
9956       ? "0px"
9957       : style === "fullRounded"
9958       ? format === "wrapperFlexContainerOnlyLogo"
9959         ? "50%"
9960         : "50px"
9961       : undefined;
9962   button.style["border-radius"] = radiusProperties;
9963   
9964   // Size
9965   const sizeProperties =
9966     size === "medium"
9967       ? "12px"
9968       : size === "small"
9969       ? "8px"
9970       : size === "large"
9971       ? "16px"
9972       : "8px";
9973 
9974   button.style["padding-block"] = sizeProperties;
9975 
9976   // Format styling
9977   if (format) {
9978     if (
9979       format === "contentFlexReverse" ||
9980       format === "contentFlexCenterReverse"
9981     ) {
9982       const flexDir = `row-reverse`;
9983       button.style["flex-direction"] = flexDir;
9984     }
9985     
9986     if (
9987       format === "contentFlexCenter" ||
9988       format === "contentFlexCenterReverse"
9989     ) {
9990       const justifyContent = `center`;
9991       button.style["justify-content"] = justifyContent;
9992     } else if (
9993       format === "contentFlex" ||
9994       format === "contentFlexReverse"
9995     ) {
9996       const buttonTextElement = button.querySelector("p");
9997       if (buttonTextElement) {
9998         buttonTextElement.style["flex-grow"] = 1;
9999         buttonTextElement.style["text-align"] = "center";
10000       }
10001     }
10002 
10003     if (format === "wrapperFlexContainerOnlyLogo" && rootRef) {
10004       rootRef.style["flex-direction"] = "row";
10005       rootRef.style["gap"] = "8px";
10006       rootRef.style["display"] = "flex";
10007       rootRef.style["flex-wrap"] = "wrap";
10008 
10009       const sizeMapping = {
10010         small: "52px",
10011         medium: "62px",
10012         large: "72px",
10013       };
10014       const buttonSize = sizeMapping[size] || "52px";
10015 
10016       button.style["margin"] = 0;
10017       button.style["width"] = buttonSize;
10018       button.style["height"] = buttonSize;
10019       button.style["display"] = "flex";
10020       button.style["align-items"] = "center";
10021       button.style["justify-content"] = "center";
10022 
10023       const svgElement = button.querySelector("svg");
10024       if (svgElement) {
10025         svgElement.style["flex"] = "none";
10026       }
10027     }
10028   }
10029 
10030   // Color scheme styling
10031   if (colorScheme === "black") {
10032     button.classList.add("scheme-black");
10033   } else if (colorScheme === "white") {
10034     button.classList.add("scheme-white");
10035   } else if (colorScheme === "custom") {
10036     button.style["background-color"] = backgroundColor;
10037     button.style["color"] = textColor;
10038     button.style["border-color"] = outlineColor;
10039 
10040     const darkenColor = (color, percentage) => {
10041       const value = parseInt(color.slice(1), 16);
10042       const r = Math.max(0, ((value >> 16) & 0xff) - (0xff * percentage));
10043       const g = Math.max(0, ((value >> 8) & 0xff) - (0xff * percentage));
10044       const b = Math.max(0, (value & 0xff) - (0xff * percentage));
10045       return `rgb(${Math.round(r)}, ${Math.round(g)}, ${Math.round(b)})`;
10046     };
10047 
10048     button.addEventListener("mouseover", () => {
10049       button.style["background-color"] = darkenColor(backgroundColor, 0.2);
10050     });
10051     button.addEventListener("mouseout", () => {
10052       button.style["background-color"] = backgroundColor;
10053     });
10054   } else if (colorScheme === "match") {
10055     button.classList.add("scheme-match");
10056   } else if (colorScheme === "matchOutline") {
10057     button.classList.add("scheme-match-outline");
10058   }
10059   
10060   // Add click event listener if host is provided
10061   if (host) {
10062     button.addEventListener("click", () => 
10063       onClickSocialLogin({ provider: provider.toLowerCase(), host })
10064     );
10065   }
10066   
10067   return button;
10068 }
10069 
10070 function setupSocialLoginButtons(config, rootRef, data, host) {
10071   // Clear any existing content
10072   rootRef.innerHTML = '';
10073 
10074   const sortedEnabledProviders = config
10075     .filter(c => c.enabledWeb)
10076     .sort((a, b) => a.position - b.position);
10077 
10078   sortedEnabledProviders.forEach(provider => {
10079     const key = provider.provider;
10080     const lowerKey = key.toLowerCase();
10081 
10082     const buttonText = data.format !== "wrapperFlexContainerOnlyLogo"
10083       ? (lowerKey === 'twitter'
10084           ? data.buttonList.twitter.replace('Twitter', 'X')
10085           : data.buttonList[lowerKey])
10086       : null;
10087 
10088     const button = createSocialLoginButton(key, {
10089       theme: data.colorScheme || 'match',
10090       customColor: data.textColor,
10091       format: data.format,
10092       buttonText: buttonText,
10093       hasShadow: data.hasShadow !== undefined ? data.hasShadow : true,
10094       style: data.style,
10095       size: data.size,
10096       colorScheme: data.colorScheme,
10097       backgroundColor: data.backgroundColor,
10098       textColor: data.textColor,
10099       outlineColor: data.outlineColor,
10100       rootRef: rootRef,
10101       host: host
10102     });
10103 
10104     rootRef.appendChild(button);
10105   });
10106 
10107   return rootRef;
10108 }
10109 
10110 function updateAppearance({ formRef, rootRef, host }) {
10111   if (!formRef) return;
10112 
10113   const data = bitloginCache.appearance || {
10114     style: "square",
10115     hasShadow: false,
10116     colorScheme: "match",
10117     backgroundColor: "#FFFFFF",
10118     outlineColor: "#000000",
10119     textColor: "#000000",
10120     position: "bottom",
10121     hideDivider: "false",
10122     dividerText: "OR",
10123     size: "small",
10124     format: "contentFlex",
10125     language: "en",
10126     buttonText: "Continue with",
10127     redirectLink: "/account",
10128     googleOneTap: true,
10129     googleOneTapBanner: true,
10130     customerTag: "bitLogin",
10131     redirectOneTapDesktop: null,
10132     redirectOneTapMobile: null,
10133     buttonList: {
10134       google: "Continue with Google",
10135       facebook: "Continue with Facebook",
10136       apple: "Continue with Apple",
10137       whatsapp: "Continue with WhatsApp",
10138       microsoft: "Continue with Microsoft",
10139       twitter: "Continue with X",
10140       amazon: "Continue with Amazon",
10141       instagram: "Continue with Instagram",
10142       magic_link: "Continue with Magic Link",
10143       mobile_app: "Continue with Mobile App",
10144       linkedin: "Continue with LinkedIn",
10145     },
10146   };
10147 
10148   // Use the new setupSocialLoginButtons function to create and configure all buttons
10149   setupSocialLoginButtons(bitloginCache.config, rootRef, data, host);
10150 
10151   let divider;
10152 
10153   if (!data.hideDivider) {
10154     divider = document.createElement("div");
10155     const dividerStyle = "text-align:center;margin-block:16px";
10156     divider.setAttribute("style", dividerStyle);
10157     divider.innerHTML = data.dividerText;
10158   }
10159 
10160   if (data.position === "bottom") {
10161     if (divider) {
10162       formRef.appendChild(divider);
10163     }
10164     formRef.appendChild(rootRef);
10165   } else if (data.position === "top") {
10166     if (divider) {
10167       formRef.prepend(divider);
10168     }
10169     formRef.prepend(rootRef);
10170   }
10171 }
10172 
10173 
10174 async function onClickSocialLogin({ provider, host }) {
10175   const rand = Math.random().toString();
10176 
10177   const locationQueryString = bitloginCache.location
10178     ? `&${objectToQueryString(bitloginCache.location)}`
10179     : "";
10180 
10181   const width = 800;
10182   const height = 600;
10183   const left = (window.screen.width / 2) - (width / 2);
10184   const top = (window.screen.height / 2) - (height / 2) - 50;
10185 
10186   if(provider === 'whatsapp') {
10187     window.open(
10188       `/apps/bitlogin/whatsapp${locationQueryString ? `?${locationQueryString}` : ''}`,
10189       "mywindow",
10190       `menubar=1,resizable=1,width=${width},height=${height},top=${top},left=${left}`
10191     );
10192   } else {
10193     window.open(
10194       `${apiUrl}/login/${provider}?referrerId=${rand}&shop=${host}${locationQueryString}`,
10195       "mywindow",
10196       `menubar=1,resizable=1,width=${width},height=${height},top=${top},left=${left}`
10197     );
10198   }
10199 }
10200 
10201 function objectToQueryString(obj) {
10202   return Object.keys(obj)
10203     .map((key) => {
10204       return encodeURIComponent(key) + "=" + encodeURIComponent(obj[key]);
10205     })
10206     .join("&");
10207 }
10208 
10209 async function getLocation() {
10210   if (locationCacheSet) return;
10211 
10212   try {
10213     const response = await fetch("https://ipapi.co/json/");
10214 
10215     if (!response.ok) {
10216       console.error(`error retrieving location...`, response.status);
10217       errorLocation = true;
10218     } else {
10219       const data = await response.json();
10220 
10221       const { city, region, country_name, country_code } = data;
10222 
10223       const formattedLocationData = {
10224         city,
10225         region,
10226         country_name,
10227         country_code,
10228       };
10229 
10230       bitloginCache.location = formattedLocationData;
10231       locationCacheSet = true;
10232       errorLocation = false;
10233     }
10234   } catch (err) {
10235     console.error(`error fetching location`, err);
10236     errorLocation = true;
10237   }
10238 }
10239 
10240 function post(params) {
10241   // The rest of this code assumes you are not using a library.
10242   // It can be made less verbose if you use one.
10243   const form = document.createElement("form");
10244   form.method = "post";
10245   form.action = `/account/login`;
10246   form.acceptCharset = "UTF-8";
10247   form.setAttribute("data-login-with-shop-sign-in", "true");
10248   form.setAttribute("novalidate", "novalidate");
10249 
10250   for (const key in params) {
10251     if (params.hasOwnProperty(key)) {
10252       const hiddenField = document.createElement("input");
10253       hiddenField.type = "hidden";
10254       hiddenField.name = key;
10255       hiddenField.value = params[key];
10256 
10257       form.appendChild(hiddenField);
10258     }
10259   }
10260 
10261   document.body.appendChild(form);
10262   form.submit();
10263 }
10264 
10265 async function setupOneTap({ host, checkoutUrl }) {
10266   if (oneTapSet) return;
10267 
10268   const redirectOneTapDesktop = JSON.parse(JSON.stringify(bitloginCache.appearance.redirectOneTapDesktop || '[]'));
10269   const redirectOneTapMobile = JSON.parse(JSON.stringify(bitloginCache.appearance.redirectOneTapMobile || '[]'));
10270 
10271   const isMobile = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent);
10272   const redirectList = JSON.parse(isMobile ? redirectOneTapMobile : redirectOneTapDesktop);
10273 
10274   const currentPath = window.location.pathname.toLowerCase();
10275   const currentUrl = window.location.href.toLowerCase();
10276 
10277   const shouldHideGoogleOneTap = redirectList.some(({ value }) => {
10278     switch (value) {
10279       case 'home':
10280         return currentPath === '/';
10281       case 'product':
10282         return currentPath.startsWith('/products/');
10283       case 'collections':
10284         return currentPath.startsWith('/collections');
10285       case 'cart':
10286         return currentPath === '/cart';
10287       case 'checkout':
10288         return currentPath.startsWith('/checkouts') && !currentPath.includes('thank_you');
10289       case 'thank_you':
10290         return currentPath.includes('/thank_you');
10291       case 'account':
10292         return currentPath.startsWith('/account');
10293       case 'pages':
10294         return currentPath.startsWith('/pages');
10295       case 'blogs':
10296         return currentPath === '/blogs' || currentPath === '/blogs/news';
10297       case 'blog_post':
10298         return currentPath.startsWith('/blogs/') && currentPath.split('/').length > 3;
10299       default:
10300         return false;
10301     }
10302   });
10303 
10304   if (shouldHideGoogleOneTap) return;
10305 
10306   const oneTapClientId = bitloginCache.config.find(
10307     (config) => config.provider === "GOOGLE"
10308   )?.clientId;
10309 
10310   const isLoggedIn = false;
10311 
10312   if (bitloginCache.appearance.googleOneTap && oneTapClientId && !isLoggedIn) {
10313     const googleOneTapButton = document.createElement("div");
10314     googleOneTapButton.setAttribute("id", "g_id_onload");
10315     googleOneTapButton.setAttribute("data-client_id", oneTapClientId);
10316     googleOneTapButton.setAttribute("data-context", "signin");
10317     googleOneTapButton.setAttribute(
10318       "data-callback",
10319       "handleGoogleOneTapResponse"
10320     );
10321     googleOneTapButton.setAttribute("data-itp_support", "true");
10322 
10323     const googleOneTapScript = document.createElement("script");
10324 
10325     googleOneTapScript.innerHTML += `
10326           function handleGoogleOneTapResponse(response) {
10327               if (response.credential) {
10328                   const idToken = response.credential;
10329                   fetch('${bitLoginBaseUrl}/bitlogin/api/login/google-one-tap', {
10330                       method: 'POST',
10331                       headers: { 'Content-Type': 'application/json' },
10332                       body: JSON.stringify({ idToken, shop: "${host}", ...bitloginCache.location })
10333                   }).then(response => {
10334                       response.json().then((data) => {
10335                         post(
10336                           JSON.parse(
10337                             JSON.stringify({
10338                               "customer[email]": data.email,
10339                               "customer[password]": data.password,
10340                               form_type: "customer_login",
10341                               utf8: "✓",
10342                               return_url: redirectUrl,
10343                             })
10344                           )
10345                         );
10346                       });  
10347                   }).catch(error => {
10348                       console.error('Error occurred:', error);
10349                   });
10350               } else {
10351                   console.error('No credential available');
10352               }
10353           }
10354        `;
10355 
10356     document.body.append(googleOneTapButton);
10357     document.body.append(googleOneTapScript);
10358   }
10359 
10360   oneTapSet = true;
10361 }
10362 
10363 const googleLoginIcon = (
10364   theme,
10365   customColor
10366 ) => `
10367 ${
10368   theme === "match" || theme === "matchOutline" || theme === "custom"
10369     ? `<svg
10370     xmlns='https://watersoftenerreviewspro.com/picture/logo.png'
10371     xmlns:v='https://vecta.io/nano'
10372     width='24'
10373     height='24'
10374     viewBox='0 0 186.69 190.5'
10375   >
10376     <g transform="translate(1184.583 765.171)"><path clip-path="none" mask="none" d="M-1089.333-687.239v36.888h51.262c-2.251 11.863-9.006 21.908-19.137 28.662l30.913 23.986c18.011-16.625 28.402-41.044 28.402-70.052 0-6.754-.606-13.249-1.732-19.483z" fill="${
10377       theme === "custom" ? customColor : "#4285f4"
10378     }"/><path clip-path="none" mask="none" d="M-1142.714-651.791l-6.972 5.337-24.679 19.223h0c15.673 31.086 47.796 52.561 85.03 52.561 25.717 0 47.278-8.486 63.038-23.033l-30.913-23.986c-8.486 5.715-19.31 9.179-32.125 9.179-24.765 0-45.806-16.712-53.34-39.226z" fill="${
10379         theme === "custom" ? customColor : "#34a853"
10380       }"/><path clip-path="none" mask="none" d="M-1174.365-712.61c-6.494 12.815-10.217 27.276-10.217 42.689s3.723 29.874 10.217 42.689c0 .086 31.693-24.592 31.693-24.592-1.905-5.715-3.031-11.776-3.031-18.098s1.126-12.383 3.031-18.098z" fill="${
10381         theme === "custom" ? customColor : "#fbbc05"
10382       }"/><path d="M-1089.333-727.244c14.028 0 26.497 4.849 36.455 14.201l27.276-27.276c-16.539-15.413-38.013-24.852-63.731-24.852-37.234 0-69.359 21.388-85.032 52.561l31.692 24.592c7.533-22.514 28.575-39.226 53.34-39.226z" fill="${
10383         theme === "custom" ? customColor : "#ea4335"
10384       }" clip-path="none" mask="none"/></g>
10385   </svg>`
10386     : `<svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="25" height="25" viewBox="0 0 25 25" fill="none">
10387 <path d="M24.1906 12.7758C24.1906 11.96 24.1244 11.1399 23.9833 10.3374H12.6646V14.9584H19.1463C18.8773 16.4488 18.0131 17.7672 16.7476 18.6049V21.6032H20.6146C22.8854 19.5132 24.1906 16.4267 24.1906 12.7758Z" fill="${
10388         theme !== "black" ? "black" : "white"
10389       }"/>
10390 <path d="M12.6647 24.5001C15.9011 24.5001 18.6305 23.4374 20.619 21.6031L16.7521 18.6048C15.6762 19.3368 14.2873 19.7513 12.6691 19.7513C9.53845 19.7513 6.88403 17.6391 5.93161 14.7996H1.94116V17.8904C3.97828 21.9428 8.12746 24.5001 12.6647 24.5001Z" fill="${
10391         theme !== "black" ? "black" : "white"
10392       }"/>
10393 <path d="M5.92709 14.7995C5.42442 13.3091 5.42442 11.6953 5.92709 10.205V7.11401H1.94105C0.23905 10.5048 0.23905 14.4996 1.94105 17.8903L5.92709 14.7995Z" fill="${
10394         theme !== "black" ? "black" : "white"
10395       }"/>
10396 <path d="M12.6647 5.24893C14.3755 5.22248 16.029 5.86623 17.268 7.04794L20.694 3.62188C18.5247 1.58477 15.6454 0.464802 12.6647 0.500076C8.12745 0.500076 3.97828 3.05749 1.94116 7.11408L5.9272 10.205C6.8752 7.36099 9.53403 5.24893 12.6647 5.24893Z" fill="${
10397         theme !== "black" ? "black" : "white"
10398       }"/>
10399 </svg>`
10400 }`;
10401 
10402 const appleLoginIcon = (
10403   theme,
10404   customColor
10405 ) => `<svg width="24" height="24" viewBox="0 0 19 24" fill="none" xmlns="https://watersoftenerreviewspro.com/picture/logo.png">
10406 <path d="M15.4146 22.08C14.263 23.2897 12.9925 23.1013 11.7815 22.5307C10.494 21.9489 9.31698 21.9121 7.95724 22.5307C6.26395 23.322 5.36524 23.092 4.34544 22.08C-1.4122 15.663 -0.562362 5.88801 5.98138 5.52001C7.56844 5.61201 8.6796 6.46991 9.61442 6.54121C11.0039 6.23531 12.3339 5.35901 13.8211 5.47401C15.6078 5.63041 16.9443 6.39401 17.8366 7.76711C14.161 10.1591 15.0321 15.4031 18.4082 16.8751C17.7324 18.7956 16.8656 20.6931 15.4125 22.0961L15.4146 22.08ZM9.48695 5.45101C9.31486 2.59901 11.4501 0.25301 13.9061 0.0230103C14.2439 3.31201 11.1441 5.77301 9.48695 5.45101Z" fill="${
10407   theme === "custom"
10408     ? customColor
10409     : theme === "match" || theme === "black"
10410     ? "white"
10411     : "black"
10412 }"/>
10413 </svg>`;
10414 
10415 const facebookLoginIcon = (
10416   theme,
10417   customColor
10418 ) => `
10419 ${
10420   theme === "match" || theme === "matchOutline" || theme === "custom"
10421     ? `<svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="24" height="25" viewBox="0 0 24 25" fill="none">
10422     <path fill-rule="evenodd" clip-rule="evenodd" d="M24 12.5C24 5.8731 18.6268 0.5 12 0.5C5.3731 0.5 0 5.8731 0 12.5C0 18.489 4.38762 23.4537 10.1252 24.355V15.9696H7.07748V12.5H10.1252V9.85562C10.1252 6.84842 11.9173 5.18622 14.6579 5.18622C15.9707 5.18622 17.3443 5.42077 17.3443 5.42077V8.37398H15.8307C14.3406 8.37398 13.8748 9.29875 13.8748 10.2488V12.4999H17.2025L16.671 15.9695H13.8747V24.3548C19.6123 23.4553 23.9998 18.4907 23.9998 12.4999L24 12.5Z" fill="${
10423       theme === "custom" ? customColor : theme === "match" ? "white" : "#1977F3"
10424     }"/>
10425     <path fill-rule="evenodd" clip-rule="evenodd" d="M16.5934 16.2833L17.1251 12.8137H13.7973V10.5626C13.7973 9.61422 14.2614 8.68778 15.7532 8.68778H17.2669V5.73457C17.2669 5.73457 15.8933 5.5 14.5804 5.5C11.8399 5.5 10.0477 7.16057 10.0477 10.1694V12.8138H7V16.2834H10.0477V24.6688C10.6586 24.7648 11.2846 24.8138 11.9225 24.8138C12.5604 24.8138 13.1865 24.7631 13.7973 24.6688V16.2834H16.5936L16.5934 16.2833Z" fill="${
10426       theme === "match" ? "#1778f2" : "transparent"
10427     }"/>
10428     </svg>`
10429     : `<svg xmlns="https://watersoftenerreviewspro.com/picture/logo.png" width="24" height="25" viewB
10429ox="0 0 24 25" fill="none">
10430 <path fill-rule="evenodd" clip-rule="evenodd" d="M24 12.5C24 5.8731 18.6268 0.5 12 0.5C5.3731 0.5 0 5.8731 0 12.5C0 18.489 4.38762 23.4537 10.1252 24.355V15.9696H7.07748V12.5H10.1252V9.85562C10.1252 6.84842 11.9173 5.18622 14.6579 5.18622C15.9707 5.18622 17.3443 5.42077 17.3443 5.42077V8.37398H15.8307C14.3406 8.37398 13.8748 9.29875 13.8748 10.2488V12.4999H17.2025L16.671 15.9695H13.8747V24.3548C19.6123 23.4553 23.9998 18.4907 23.9998 12.4999L24 12.5Z" fill="${
10431         theme === "black" ? "white" : "black"
10432       }"/>
10433 <path fill-rule="evenodd" clip-rule="evenodd" d="M16.5934 16.2833L17.1251 12.8137H13.7973V10.5626C13.7973 9.61422 14.2614 8.68778 15.7532 8.68778H17.2669V5.73457C17.2669 5.73457 15.8933 5.5 14.5804 5.5C11.8399 5.5 10.0477 7.16057 10.0477 10.1694V12.8138H7V16.2834H10.0477V24.6688C10.6586 24.7648 11.2846 24.8138 11.9225 24.8138C12.5604 24.8138 13.1865 24.7631 13.7973 24.6688V16.2834H16.5936L16.5934 16.2833Z" fill="${
10434         theme === "black" ? "black" : "white"
10435       }"/>
10436 </svg>`
10437 }`;
10438 
10439 const whatsappLoginIcon = (
10440   theme,
10441   customColor
10442 ) => `<svg
10443   viewBox="0 0 24 24"
10444   fill="none"
10445   width="24"
10446   height="25"
10447   xmlns="https://watersoftenerreviewspro.com/picture/logo.png"
10448 >
10449   <g id="SVGRepo_bgCarrier" stroke-width="0"></g>
10450   <g
10451     id="SVGRepo_tracerCarrier"
10452     stroke-linecap="round"
10453     stroke-linejoin="round"
10454   ></g>
10455   <g id="SVGRepo_iconCarrier">
10456     <path
10457       fill-rule="evenodd"
10458       clip-rule="evenodd"
10459       d="M3.50002 12C3.50002 7.30558 7.3056 3.5 12 3.5C16.6944 3.5 20.5 7.30558 20.5 12C20.5 16.6944 16.6944 20.5 12 20.5C10.3278 20.5 8.77127 20.0182 7.45798 19.1861C7.21357 19.0313 6.91408 18.9899 6.63684 19.0726L3.75769 19.9319L4.84173 17.3953C4.96986 17.0955 4.94379 16.7521 4.77187 16.4751C3.9657 15.176 3.50002 13.6439 3.50002 12ZM12 1.5C6.20103 1.5 1.50002 6.20101 1.50002 12C1.50002 13.8381 1.97316 15.5683 2.80465 17.0727L1.08047 21.107C0.928048 21.4637 0.99561 21.8763 1.25382 22.1657C1.51203 22.4552 1.91432 22.5692 2.28599 22.4582L6.78541 21.1155C8.32245 21.9965 10.1037 22.5 12 22.5C17.799 22.5 22.5 17.799 22.5 12C22.5 6.20101 17.799 1.5 12 1.5ZM14.2925 14.1824L12.9783 15.1081C12.3628 14.7575 11.6823 14.2681 10.9997 13.5855C10.2901 12.8759 9.76402 12.1433 9.37612 11.4713L10.2113 10.7624C10.5697 10.4582 10.6678 9.94533 10.447 9.53028L9.38284 7.53028C9.23954 7.26097 8.98116 7.0718 8.68115 7.01654C8.38113 6.96129 8.07231 7.046 7.84247 7.24659L7.52696 7.52195C6.76823 8.18414 6.3195 9.2723 6.69141 10.3741C7.07698 11.5163 7.89983 13.314 9.58552 14.9997C11.3991 16.8133 13.2413 17.5275 14.3186 17.8049C15.1866 18.0283 16.008 17.7288 16.5868 17.2572L17.1783 16.7752C17.4313 16.5691 17.5678 16.2524 17.544 15.9269C17.5201 15.6014 17.3389 15.308 17.0585 15.1409L15.3802 14.1409C15.0412 13.939 14.6152 13.9552 14.2925 14.1824Z"
10460       fill="${
10461         theme === "match" || theme === "black"
10462           ? "#ffffff"
10463           : theme === "white"
10464           ? "#000000"
10465           : theme === "matchOutline"
10466           ? "#25d366"
10467           : customColor
10468       }"
10469     ></path>
10470   </g>
10471 </svg>`;
10472 
10473 const microsoftLoginIcon = (
10474   theme,
10475   customColor
10476 ) => `<svg
10477 xmlns="https://watersoftenerreviewspro.com/picture/logo.png"
10478 width="25"
10479 height="25"
10480 viewBox="0 0 48 48">
10481 <path fill="${
10482   theme === "match" || theme == "matchOutline"
10483     ? "#ff5722"
10484     : theme === "black"
10485     ? "#ffffff"
10486     : theme === "white"
10487     ? "#000000"
10488     : customColor
10489 }" d="M6 6H22V22H6z" transform="rotate(-180 14 14)"></path>
10490 <path
10491   fill="${
10492     theme === "match" || theme == "matchOutline"
10493       ? "#4caf50"
10494       : theme === "black"
10495       ? "#ffffff"
10496       : theme === "white"
10497       ? "#000000"
10498       : customColor
10499   }"
10500   d="M26 6H42V22H26z"
10501   transform="rotate(-180 34 14)"></path>
10502 <path
10503   fill="${
10504     theme === "match" || theme == "matchOutline"
10505       ? "#ffc107"
10506       : theme === "black"
10507       ? "#ffffff"
10508       : theme === "white"
10509       ? "#000000"
10510       : customColor
10511   }"
10512   d="M26 26H42V42H26z"
10513   transform="rotate(-180 34 34)"></path>
10514 <path fill="${
10515   theme === "match" || theme == "matchOutline"
10516     ? "#03a9f4"
10517     : theme === "black"
10518     ? "#ffffff"
10519     : theme === "white"
10520     ? "#000000"
10521     : customColor
10522 }" d="M6 26H22V42H6z" transform="rotate(-180 14 34)"></path>
10523 </svg>`;
10524 
10525 const twitterLoginIcon = (
10526   theme,
10527   customColor
10528 ) => `<svg
10529 xmlns="https://watersoftenerreviewspro.com/picture/logo.png"
10530 width="25"
10531 height="25"
10532 viewBox="0 0 48 48">
10533 <polygon fill="${
10534   theme === "match" || theme === "black"
10535     ? "#ffffff"
10536     : theme === "matchOutline" || theme === "white"
10537     ? "#000000"
10538     : customColor
10539 }" points="41,6 9.929,42 6.215,42 37.287,6"></polygon>
10540 <polygon
10541   fill="${
10542     theme === "match" || theme === "black"
10543       ? "#000000"
10544       : theme === "matchOutline" || theme === "white"
10545       ? "#ffffff"
10546       : customColor
10547   }"
10548   fill-rule="evenodd"
10549   points="31.143,41 7.82,7 16.777,7 40.1,41"
10550   clip-rule="evenodd"></polygon>
10551 <path
10552   fill="${
10553     theme === "match" || theme === "black"
10554       ? "#ffffff"
10555       : theme === "matchOutline" || theme === "white"
10556       ? "#000000"
10557       : customColor
10558   }"
10559   d="M15.724,9l20.578,30h-4.106L11.618,9H15.724 M17.304,6H5.922l24.694,36h11.382L17.304,6L17.304,6z"></path>
10560 </svg>`;
10561 
10562 const amazonLoginIcon = (theme, customColor) => `
10563  <svg
10564       xmlns="https://watersoftenerreviewspro.com/picture/logo.png"
10565       x="0px"
10566       y="0px"
10567       width="25"
10568       height="25"
10569       viewBox="0 0 50 50"
10570     >
10571       <path
10572         fill="${
10573           theme === "black"
10574             ? "#ffffff"
10575             : theme === "matchOutline"
10576             ? "#FF9900"
10577             : theme === "white" || theme === "match"
10578             ? "#000000"
10579             : customColor
10580         }"
10581         d="M 25.3125 3 C 19.210938 3 12.492188 5.3125 11.09375 12.8125 C 10.894531 13.613281 11.5 13.992188 12 14.09375 L 18.1875 14.6875 C 18.789063 14.6875 19.207031 14.101563 19.40625 13.5 C 19.90625 10.898438 22.101563 9.59375 24.5 9.59375 C 25.800781 9.59375 27.292969 10.113281 28.09375 11.3125 C 28.992188 12.613281 28.8125 14.40625 28.8125 15.90625 L 28.8125 16.8125 C 25.113281 17.210938 20.3125 17.5 16.8125 19 C 12.8125 20.699219 10 24.207031 10 29.40625 C 10 36.007813 14.199219 39.3125 19.5 39.3125 C 24 39.3125 26.5 38.195313 30 34.59375 C 31.199219 36.292969 31.585938 37.105469 33.6875 38.90625 C 34.1875 39.207031 34.789063 39.085938 35.1875 38.6875 L 35.1875 38.8125 C 36.488281 37.710938 38.792969 35.601563 40.09375 34.5 C 40.59375 34.199219 40.492188 33.5 40.09375 33 C 38.894531 31.398438 37.6875 30.09375 37.6875 27.09375 L 37.6875 17.1875 C 37.6875 12.988281 38.007813 9.085938 34.90625 6.1875 C 32.40625 3.789063 28.414063 3 25.3125 3 Z M 27 22 L 28.6875 22 L 28.6875 23.40625 C 28.6875 25.804688 28.792969 27.894531 27.59375 30.09375 C 26.59375 31.894531 24.988281 33 23.1875 33 C 20.789063 33 19.3125 31.207031 19.3125 28.40625 C 19.3125 23.707031 23 22.300781 27 22 Z M 44.59375 36.59375 C 42.992188 36.59375 41.085938 37 39.6875 38 C 39.289063 38.300781 39.3125 38.6875 39.8125 38.6875 C 41.414063 38.488281 44.988281 38.007813 45.6875 38.90625 C 46.289063 39.707031 45.007813 43.085938 44.40625 44.6875 C 44.207031 45.1875 44.601563 45.300781 45 45 C 47.699219 42.699219 48.40625 38.007813 47.90625 37.40625 C 47.605469 36.90625 46.195313 36.59375 44.59375 36.59375 Z M 2.1875 37.5 C 1.886719 37.5 1.695313 38.011719 2.09375 38.3125 C 8.09375 43.710938 16.007813 47 24.90625 47 C 31.207031 47 38.492188 45.011719 43.59375 41.3125 C 44.394531 40.710938 43.707031 39.695313 42.90625 40.09375 C 37.207031 42.492188 31.101563 43.6875 25.5 43.6875 C 17.199219 43.6875 9.1875 41.386719 2.6875 37.6875 C 2.488281 37.488281 2.289063 37.5 2.1875 37.5 Z"
10582       ></path>
10583     </svg>`;
10584 
10585 const instagramLoginIcon= (theme, customColor) => `
10586     <svg
10587       width="25"
10588       height="25"
10589       viewBox="0 0 25 24"
10590       fill="none"
10591       xmlns="https://watersoftenerreviewspro.com/picture/logo.png">
10592       <path
10593         fill-rule="evenodd"
10594         clip-rule="evenodd"
10595         d="M10.5 0C7.784 0 7.444 0.0119999 6.377 0.0599999C5.313 0.109 4.586 0.278 3.95 0.525C3.28247 0.775816 2.67773 1.16931 2.178 1.678C1.66931 2.17773 1.27582 2.78247 1.025 3.45C0.778 4.086 0.609 4.813 0.56 5.877C0.511 6.944 0.5 7.284 0.5 10C0.5 12.716 0.511 13.056 0.56 14.123C0.609 15.187 0.778 15.914 1.025 16.55C1.27582 17.2175 1.66931 17.8223 2.178 18.322C2.67773 18.8307 3.28247 19.2242 3.95 19.475C4.586 19.722 5.313 19.891 6.377 19.94C7.444 19.988 7.784 20 10.5 20C13.216 20 13.556 19.988 14.623 19.94C15.687 19.891 16.414 19.722 17.05 19.475C17.7175 19.2242 18.3223 18.8307 18.822 18.322C19.3307 17.8223 19.7242 17.2175 19.975 16.55C20.222 15.914 20.391 15.187 20.44 14.123C20.488 13.056 20.5 12.716 20.5 10C20.5 7.284 20.488 6.944 20.44 5.877C20.391 4.813 20.222 4.086 19.975 3.45C19.7242 2.78247 19.3307 2.17773 18.822 1.678C18.3223 1.16931 17.7175 0.775816 17.05 0.525C16.414 0.278 15.687 0.109 14.623 0.0599999C13.556 0.0119999 13.216 0 10.5 0ZM10.5 1.802C13.17 1.802 13.486 1.812 14.54 1.86C15.516 1.905 16.045 2.067 16.398 2.204C16.864 2.386 17.198 2.603 17.548 2.952C17.898 3.302 18.114 3.636 18.296 4.102C18.432 4.455 18.596 4.984 18.64 5.959C18.688 7.014 18.698 7.329 18.698 10C18.698 12.67 18.688 12.986 18.64 14.04C18.595 15.016 18.432 15.545 18.296 15.898C18.1357 16.3324 17.8801 16.7253 17.548 17.048C17.198 17.398 16.864 17.614 16.398 17.796C16.045 17.932 15.516 18.096 14.541 18.14C13.487 18.188 13.171 18.198 10.5 18.198C7.83 18.198 7.513 18.188 6.46 18.14C5.484 18.095 4.955 17.932 4.602 17.796C4.16762 17.6357 3.77466 17.3801 3.452 17.048C3.11991 16.7253 2.86432 16.3324 2.704 15.898C2.567 15.545 2.404 15.016 2.36 14.041C2.312 12.986 2.302 12.671 2.302 10C2.302 7.33 2.312 7.014 2.36 5.96C2.405 4.984 2.567 4.455 2.704 4.102C2.886 3.636 3.103 3.302 3.452 2.952C3.802 2.602 4.136 2.386 4.602 2.204C4.955 2.067 5.484 1.904 6.459 1.86C7.514 1.812 7.829 1.802 10.5 1.802ZM10.5 13.333C9.61603 13.333 8.76827 12.9818 8.14321 12.3568C7.51815 11.7317 7.167 10.884 7.167 10C7.167 9.11603 7.51815 8.26827 8.14321 7.
1059564321C8.76827 7.01815 9.61603 6.667 10.5 6.667C11.384 6.667 12.2317 7.01815 12.8568 7.64321C13.4818 8.26827 13.833 9.11603 13.833 10C13.833 10.884 13.4818 11.7317 12.8568 12.3568C12.2317 12.9818 11.384 13.333 10.5 13.333ZM10.5 4.865C9.82566 4.865 9.15793 4.99782 8.53492 5.25588C7.91191 5.51394 7.34584 5.89218 6.86901 6.36901C6.39218 6.84584 6.01394 7.41191 5.75588 8.03492C5.49782 8.65793 5.365 9.32566 5.365 10C5.365 10.6743 5.49782 11.3421 5.75588 11.9651C6.01394 12.5881 6.39218 13.1542 6.86901 13.631C7.34584 14.1078 7.91191 14.4861 8.53492 14.7441C9.15793 15.0022 9.82566 15.135 10.5 15.135C11.8619 15.135 13.168 14.594 14.131 13.631C15.094 12.668 15.635 11.3619 15.635 10C15.635 8.63811 15.094 7.33201 14.131 6.36901C13.168 5.40601 11.8619 4.865 10.5 4.865ZM17.038 4.662C17.038 4.81959 17.007 4.97563 16.9467 5.12122C16.8863 5.26681 16.798 5.3991 16.6865 5.51053C16.5751 5.62196 16.4428 5.71035 16.2972 5.77066C16.1516 5.83096 15.9956 5.862 15.838 5.862C15.6804 5.862 15.5244 5.83096 15.3788 5.77066C15.2332 5.71035 15.1009 5.62196 14.9895 5.51053C14.878 5.3991 14.7897 5.26681 14.7293 5.12122C14.669 4.97563 14.638 4.81959 14.638 4.662C14.638 4.34374 14.7644 4.03852 14.9895 3.81347C15.2145 3.58843 15.5197 3.462 15.838 3.462C16.1563 3.462 16.4615 3.58843 16.6865 3.81347C16.9116 4.03852 17.038 4.34374 17.038 4.662Z"
10596         fill="url(#paint0_radial_378_3535)" />
10597       <path
10598         fill-rule="evenodd"
10599         clip-rule="evenodd"
10600         d="M10.5 0C7.784 0 7.444 0.0119999 6.377 0.0599999C5.313 0.109 4.586 0.278 3.95 0.525C3.28247 0.775816 2.67773 1.16931 2.178 1.678C1.66931 2.17773 1.27582 2.78247 1.025 3.45C0.778 4.086 0.609 4.813 0.56 5.877C0.511 6.944 0.5 7.284 0.5 10C0.5 12.716 0.511 13.056 0.56 14.123C0.609 15.187 0.778 15.914 1.025 16.55C1.27582 17.2175 1.66931 17.8223 2.178 18.322C2.67773 18.8307 3.28247 19.2242 3.95 19.475C4.586 19.722 5.313 19.891 6.377 19.94C7.444 19.988 7.784 20 10.5 20C13.216 20 13.556 19.988 14.623 19.94C15.687 19.891 16.414 19.722 17.05 19.475C17.7175 19.2242 18.3223 18.8307 18.822 18.322C19.3307 17.8223 19.7242 17.2175 19.975 16.55C20.222 15.914 20.391 15.187 20.44 14.123C20.488 13.056 20.5 12.716 20.5 10C20.5 7.284 20.488 6.944 20.44 5.877C20.391 4.813 20.222 4.086 19.975 3.45C19.7242 2.78247 19.3307 2.17773 18.822 1.678C18.3223 1.16931 17.7175 0.775816 17.05 0.525C16.414 0.278 15.687 0.109 14.623 0.0599999C13.556 0.0119999 13.216 0 10.5 0ZM10.5 1.802C13.17 1.802 13.486 1.812 14.54 1.86C15.516 1.905 16.045 2.067 16.398 2.204C16.864 2.386 17.198 2.603 17.548 2.952C17.898 3.302 18.114 3.636 18.296 4.102C18.432 4.455 18.596 4.984 18.64 5.959C18.688 7.014 18.698 7.329 18.698 10C18.698 12.67 18.688 12.986 18.64 14.04C18.595 15.016 18.432 15.545 18.296 15.898C18.1357 16.3324 17.8801 16.7253 17.548 17.048C17.198 17.398 16.864 17.614 16.398 17.796C16.045 17.932 15.516 18.096 14.541 18.14C13.487 18.188 13.171 18.198 10.5 18.198C7.83 18.198 7.513 18.188 6.46 18.14C5.484 18.095 4.955 17.932 4.602 17.796C4.16762 17.6357 3.77466 17.3801 3.452 17.048C3.11991 16.7253 2.86432 16.3324 2.704 15.898C2.567 15.545 2.404 15.016 2.36 14.041C2.312 12.986 2.302 12.671 2.302 10C2.302 7.33 2.312 7.014 2.36 5.96C2.405 4.984 2.567 4.455 2.704 4.102C2.886 3.636 3.103 3.302 3.452 2.952C3.802 2.602 4.136 2.386 4.602 2.204C4.955 2.067 5.484 1.904 6.459 1.86C7.514 1.812 7.829 1.802 10.5 1.802ZM10.5 13.333C9.61603 13.333 8.76827 12.9818 8.14321 12.3568C7.51815 11.7317 7.167 10.884 7.167 10C7.167 9.11603 7.51815 8.26827 8.14321 7.64321C8.76827 7.01815 9.61603 6.667 10.5 6.667C11.384 6.667 12.2317 7.01815 12.8568 7.64321C13.4818 8.26827 13.833 9.11603 13.833 10C13.833 10.884 13.4818 11.7317 12.8568 12.3568C12.2317 12.9818 11.384 13.333 10.5 13.333ZM10.5 4.865C9.82566 4.865 9.15793 4.99782 8.53492 5.25588C7.91191 5.51394 7.34584 5.89218 6.86901 6.36901C6.39218 6.84584 6.01394 7.41191 5.75588 8.03492C5.49782 8.65793 5.365 9.32566 5.365 10C5.365 10.6743 5.49782 11.3421 5.75588 11.9651C6.01394 12.5881 6.39218 13.1542 6.86901 13.631C7.34584 14.1078 7.91191 14.4861 8.53492 14.7441C9.15793 15.0022 9.82566 15.135 10.5 15.135C11.8619 15.135 13.168 14.594 14.131 13.631C15.094 12.668 15.635 11.3619 15.635 10C15.635 8.63811 15.094 7.33201 14.131 6.36901C13.168 5.40601 11.8619 4.865 10.5 4.865ZM17.038 4.662C17.038 4.81959 17.007 4.97563 16.9467 5.12122C16.8863 5.26681 16.798 5.3991 16.6865 5.51053C16.5751 5.62196 16.4428 5.71035 16.2972 5.77066C16.1516 5.83096 15.9956 5.862 15.838 5.862C15.6804 5.862 15.5244 5.83096 15.3788 5.77066C15.2332 5.71035 15.1009 5.62196 14.9895 5.51053C14.878 5.3991 14.7897 5.26681 14.7293 5.12122C14.669 4.97563 14.638 4.81959 14.638 4.662C14.638 4.34374 14.7644 4.03852 14.9895 3.81347C15.2145 3.58843 15.5197 3.462 15.838 3.462C16.1563 3.462 16.4615 3.58843 16.6865 3.81347C16.9116 4.03852 17.038 4.34374 17.038 4.662Z"
10601         fill="url(#paint0_radial_378_3535)" />
10602       <path
10603         fill-rule="evenodd"
10604         clip-rule="evenodd"
10605         d="M10.5 0C7.784 0 7.444 0.0119999 6.377 0.0599999C5.313 0.109 4.586 0.278 3.95 0.525C3.28247 0.775816 2.67773 1.16931 2.178 1.678C1.66931 2.17773 1.27582 2.78247 1.025 3.45C0.778 4.086 0.609 4.813 0.56 5.877C0.511 6.944 0.5 7.284 0.5 10C0.5 12.716 0.511 13.056 0.56 14.123C0.609 15.187 0.778 15.914 1.025 16.55C1.27582 17.2175 1.66931 17.8223 2.178 18.322C2.67773 18.8307 3.28247 19.2242 3.95 19.475C4.586 19.722 5.313 19.891 6.377 19.94C7.444 19.988 7.784 20 10.5 20C13.216 20 13.556 19.988 14.623 19.94C15.687 19.891 16.414 19.722 17.05 19.475C17.7175 19.2242 18.3223 18.8307 18.822 18.322C19.3307 17.8223 19.7242 17.2175 19.975 16.55C20.222 15.914 20.391 15.187 20.44 14.123C20.488 13.056 20.5 12.716 20.5 10C20.5 7.284 20.488 6.944 20.44 5.877C20.391 4.813 20.222 4.086 19.975 3.45C19.7242 2.78247 19.3307 2.17773 18.822 1.678C18.3223 1.16931 17.7175 0.775816 17.05 0.525C16.414 0.278 15.687 0.109 14.623 0.0599999C13.556 0.0119999 13.216 0 10.5 0ZM10.5 1.802C13.17 1.802 13.486 1.812 14.54 1.86C15.516 1.905 16.045 2.067 16.398 2.204C16.864 2.386 17.198 2.603 17.548 2.952C17.898 3.302 18.114 3.636 18.296 4.102C18.432 4.455 18.596 4.984 18.64 5.959C18.688 7.014 18.698 7.329 18.698 10C18.698 12.67 18.688 12.986 18.64 14.04C18.595 15.016 18.432 15.545 18.296 15.898C18.1357 16.3324 17.8801 16.7253 17.548 17.048C17.198 17.398 16.864 17.614 16.398 17.796C16.045 17.932 15.516 18.096 14.541 18.14C13.487 18.188 13.171 18.198 10.5 18.198C7.83 18.198 7.513 18.188 6.46 18.14C5.484 18.095 4.955 17.932 4.602 17.796C4.16762 17.6357 3.77466 17.3801 3.452 17.048C3.11991 16.7253 2.86432 16.3324 2.704 15.898C2.567 15.545 2.404 15.016 2.36 14.041C2.312 12.986 2.302 12.671 2.302 10C2.302 7.33 2.312 7.014 2.36 5.96C2.405 4.984 2.567 4.455 2.704 4.102C2.886 3.636 3.103 3.302 3.452 2.952C3.802 2.602 4.136 2.386 4.602 2.204C4.955 2.067 5.484 1.904 6.459 1.86C7.514 1.812 7.829 1.802 10.5 1.802ZM10.5 13.333C9.61603 13.333 8.76827 12.9818 8.14321 12.3568C7.51815 11.7317 7.167 10.884 7.167 10C7.167 9.11603 7.51815 8.26827 8.14321 7.
1060564321C8.76827 7.01815 9.61603 6.667 10.5 6.667C11.384 6.667 12.2317 7.01815 12.8568 7.64321C13.4818 8.26827 13.833 9.11603 13.833 10C13.833 10.884 13.4818 11.7317 12.8568 12.3568C12.2317 12.9818 11.384 13.333 10.5 13.333ZM10.5 4.865C9.82566 4.865 9.15793 4.99782 8.53492 5.25588C7.91191 5.51394 7.34584 5.89218 6.86901 6.36901C6.39218 6.84584 6.01394 7.41191 5.75588 8.03492C5.49782 8.65793 5.365 9.32566 5.365 10C5.365 10.6743 5.49782 11.3421 5.75588 11.9651C6.01394 12.5881 6.39218 13.1542 6.86901 13.631C7.34584 14.1078 7.91191 14.4861 8.53492 14.7441C9.15793 15.0022 9.82566 15.135 10.5 15.135C11.8619 15.135 13.168 14.594 14.131 13.631C15.094 12.668 15.635 11.3619 15.635 10C15.635 8.63811 15.094 7.33201 14.131 6.36901C13.168 5.40601 11.8619 4.865 10.5 4.865ZM17.038 4.662C17.038 4.81959 17.007 4.97563 16.9467 5.12122C16.8863 5.26681 16.798 5.3991 16.6865 5.51053C16.5751 5.62196 16.4428 5.71035 16.2972 5.77066C16.1516 5.83096 15.9956 5.862 15.838 5.862C15.6804 5.862 15.5244 5.83096 15.3788 5.77066C15.2332 5.71035 15.1009 5.62196 14.9895 5.51053C14.878 5.3991 14.7897 5.26681 14.7293 5.12122C14.669 4.97563 14.638 4.81959 14.638 4.662C14.638 4.34374 14.7644 4.03852 14.9895 3.81347C15.2145 3.58843 15.5197 3.462 15.838 3.462C16.1563 3.462 16.4615 3.58843 16.6865 3.81347C16.9116 4.03852 17.038 4.34374 17.038 4.662Z"
10606         fill="url(#paint0_radial_378_3535)" />
10607       <path
10608         fill-rule="evenodd"
10609         clip-rule="evenodd"
10610         d="M10.5 0C7.784 0 7.444 0.0119999 6.377 0.0599999C5.313 0.109 4.586 0.278 3.95 0.525C3.28247 0.775816 2.67773 1.16931 2.178 1.678C1.66931 2.17773 1.27582 2.78247 1.025 3.45C0.778 4.086 0.609 4.813 0.56 5.877C0.511 6.944 0.5 7.284 0.5 10C0.5 12.716 0.511 13.056 0.56 14.123C0.609 15.187 0.778 15.914 1.025 16.55C1.27582 17.2175 1.66931 17.8223 2.178 18.322C2.67773 18.8307 3.28247 19.2242 3.95 19.475C4.586 19.722 5.313 19.891 6.377 19.94C7.444 19.988 7.784 20 10.5 20C13.216 20 13.556 19.988 14.623 19.94C15.687 19.891 16.414 19.722 17.05 19.475C17.7175 19.2242 18.3223 18.8307 18.822 18.322C19.3307 17.8223 19.7242 17.2175 19.975 16.55C20.222 15.914 20.391 15.187 20.44 14.123C20.488 13.056 20.5 12.716 20.5 10C20.5 7.284 20.488 6.944 20.44 5.877C20.391 4.813 20.222 4.086 19.975 3.45C19.7242 2.78247 19.3307 2.17773 18.822 1.678C18.3223 1.16931 17.7175 0.775816 17.05 0.525C16.414 0.278 15.687 0.109 14.623 0.0599999C13.556 0.0119999 13.216 0 10.5 0ZM10.5 1.802C13.17 1.802 13.486 1.812 14.54 1.86C15.516 1.905 16.045 2.067 16.398 2.204C16.864 2.386 17.198 2.603 17.548 2.952C17.898 3.302 18.114 3.636 18.296 4.102C18.432 4.455 18.596 4.984 18.64 5.959C18.688 7.014 18.698 7.329 18.698 10C18.698 12.67 18.688 12.986 18.64 14.04C18.595 15.016 18.432 15.545 18.296 15.898C18.1357 16.3324 17.8801 16.7253 17.548 17.048C17.198 17.398 16.864 17.614 16.398 17.796C16.045 17.932 15.516 18.096 14.541 18.14C13.487 18.188 13.171 18.198 10.5 18.198C7.83 18.198 7.513 18.188 6.46 18.14C5.484 18.095 4.955 17.932 4.602 17.796C4.16762 17.6357 3.77466 17.3801 3.452 17.048C3.11991 16.7253 2.86432 16.3324 2.704 15.898C2.567 15.545 2.404 15.016 2.36 14.041C2.312 12.986 2.302 12.671 2.302 10C2.302 7.33 2.312 7.014 2.36 5.96C2.405 4.984 2.567 4.455 2.704 4.102C2.886 3.636 3.103 3.302 3.452 2.952C3.802 2.602 4.136 2.386 4.602 2.204C4.955 2.067 5.484 1.904 6.459 1.86C7.514 1.812 7.829 1.802 10.5 1.802ZM10.5 13.333C9.61603 13.333 8.76827 12.9818 8.14321 12.3568C7.51815 11.7317 7.167 10.884 7.167 10C7.167 9.11603 7.51815 8.26827 8.14321 7.64321C8.76827 7.01815 9.61603 6.667 10.5 6.667C11.384 6.667 12.2317 7.01815 12.8568 7.64321C13.4818 8.26827 13.833 9.11603 13.833 10C13.833 10.884 13.4818 11.7317 12.8568 12.3568C12.2317 12.9818 11.384 13.333 10.5 13.333ZM10.5 4.865C9.82566 4.865 9.15793 4.99782 8.53492 5.25588C7.91191 5.51394 7.34584 5.89218 6.86901 6.36901C6.39218 6.84584 6.01394 7.41191 5.75588 8.03492C5.49782 8.65793 5.365 9.32566 5.365 10C5.365 10.6743 5.49782 11.3421 5.75588 11.9651C6.01394 12.5881 6.39218 13.1542 6.86901 13.631C7.34584 14.1078 7.91191 14.4861 8.53492 14.7441C9.15793 15.0022 9.82566 15.135 10.5 15.135C11.8619 15.135 13.168 14.594 14.131 13.631C15.094 12.668 15.635 11.3619 15.635 10C15.635 8.63811 15.094 7.33201 14.131 6.36901C13.168 5.40601 11.8619 4.865 10.5 4.865ZM17.038 4.662C17.038 4.81959 17.007 4.97563 16.9467 5.12122C16.8863 5.26681 16.798 5.3991 16.6865 5.51053C16.5751 5.62196 16.4428 5.71035 16.2972 5.77066C16.1516 5.83096 15.9956 5.862 15.838 5.862C15.6804 5.862 15.5244 5.83096 15.3788 5.77066C15.2332 5.71035 15.1009 5.62196 14.9895 5.51053C14.878 5.3991 14.7897 5.26681 14.7293 5.12122C14.669 4.97563 14.638 4.81959 14.638 4.662C14.638 4.34374 14.7644 4.03852 14.9895 3.81347C15.2145 3.58843 15.5197 3.462 15.838 3.462C16.1563 3.462 16.4615 3.58843 16.6865 3.81347C16.9116 4.03852 17.038 4.34374 17.038 4.662Z"
10611         fill="url(#paint1_radial_378_3535)" />
10612       <defs>
10613         <radialGradient
10614           id="paint0_radial_378_3535"
10615           cx="0"
10616           cy="0"
10617           r="1"
10618           gradientUnits="userSpaceOnUse"
10619           gradientTransform="translate(17.4 22.7) rotate(-115.776) scale(27.2737 40.5665)">
10620           <stop offset="0.24392" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FF1B90' : customColor}" />
10621           <stop offset="0.436673" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#F80261' : customColor}" />
10622           <stop offset="0.688476" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#ED00C0' : customColor}" />
10623           <stop offset="0.776787" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#C500E9' : customColor}" />
10624           <stop offset="0.893155" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#7017FF' : customColor}" />
10625         </radialGradient>
10626         <radialGradient
10627           id="paint1_radial_378_3535"
10628           cx="0"
10629           cy="0"
10630           r="1"
10631           gradientUnits="userSpaceOnUse"
10632           gradientTransform="translate(7.75 19.31) rotate(-57.4396) scale(11.8174 12.2918)">
10633           <stop stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FFD600' : customColor}" />
10634           <stop offset="0.484375" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FF6930' : customColor}" />
10635           <stop offset="0.734375" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FE3B36' : customColor}" />
10636           <stop offset="1" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FE3B36' : customColor}" stop-opacity="0" />
10637         </radialGradient>
10638       </defs>
10639     </svg>`;
10640 
10641 const magicLinkLoginIcon = (theme, customColor) => `
10642   <svg
10643     xmlns="https://watersoftenerreviewspro.com/picture/logo.png"
10644     width="25"
10645     height="25"
10646     fill="none"
10647     viewBox="0 0 25 25"
10648   >
10649     <path
10650       fill="${
10651         theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' || theme === 'white' ? '#000000' : customColor
10652       }"
10653       fillRule="evenodd"
10654       d="M10.975 14.51a1.05 1.05 0 000-1.485 2.95 2.95 0 010-4.172l3.536-3.535a2.95 2.95 0 114.172 4.172l-1.093 1.092a1.05 1.05 0 001.485 1.485l1.093-1.092a5.05 5.05 0 00-7.142-7.142L9.49 7.368a5.05 5.05 0 000 7.142c.41.41 1.075.41 1.485 0zm2.05-5.02a1.05 1.05 0 000 1.485 2.95 2.95 0 010 4.172l-3.5 3.5a2.95 2.95 0 11-4.171-4.172l1.025-1.025a1.05 1.05 0 00-1.485-1.485L3.87 12.99a5.05 5.05 0 007.142 7.142l3.5-3.5a5.05 5.05 0 000-7.142 1.05 1.05 0 00-1.485 0z"
10655       clipRule="evenodd"
10656     ></path>
10657   </svg>`;
10658 
10659 const mobileAppLoginIcon = (theme, customColor) => `
10660   <svg
10661     width="20"
10662     height="24"
10663     viewBox="0 0 12 16"
10664     fill="none"
10665     xmlns="https://watersoftenerreviewspro.com/picture/logo.png"
10666   >
10667     <path
10668       d="M9.75 0.5H2.25C1.42275 0.5 0.75 1.17275 0.75 2V14C0.75 14.8273 1.42275 15.5 2.25 15.5H9.75C10.5773 15.5 11.25 14.8273 11.25 14V2C11.25 1.17275 10.5773 0.5 9.75 0.5ZM2.25 11.7493V2.75H9.75L9.7515 11.7493H2.25Z"
10669       fill=${
10670         theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' ? '#FD823E' : theme === 'white' ? '#000000' : customColor
10671       }
10672     />
10673   </svg>
10674 `;
10675 
10676 const linkedinLoginIcon = (theme, customColor) => `
10677   <svg
10678     xmlns="https://watersoftenerreviewspro.com/picture/logo.png"
10679     width="25"
10680     height="24"
10681     viewBox="0 0 25 24"
10682     fill="none"
10683   >
10684     <path
10685       d="M19.0714 0C19.8304 0 20.5 0.669643 20.5 1.47321V18.5714C20.5 19.375 19.8304 20 19.0714 20H1.88393C1.125 20 0.5 19.375 0.5 18.5714V1.47321C0.5 0.669643 1.125 0 1.88393 0H19.0714ZM6.52679 17.1429V7.63393H3.58036V17.1429H6.52679ZM5.05357 6.29464C5.99107 6.29464 6.75 5.53571 6.75 4.59821C6.75 3.66071 5.99107 2.85714 5.05357 2.85714C4.07143 2.85714 3.3125 3.66071 3.3125 4.59821C3.3125 5.53571 4.07143 6.29464 5.05357 6.29464ZM17.6429 17.1429V11.9196C17.6429 9.375 17.0625 7.36607 14.0714 7.36607C12.6429 7.36607 11.6607 8.16964 11.2589 8.92857H11.2143V7.63393H8.40179V17.1429H11.3482V12.4554C11.3482 11.2054 11.5714 10 13.1339 10C14.6518 10 14.6518 11.4286 14.6518 12.5V17.1429H17.6429Z"
10686       fill=${
10687         theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' ? '#0A66C2' : theme === 'white' ? '#000000' : customColor
10688       }
10689     />
10690   </svg>
10691 `;
10692 
10693 function isElementVisible(element) {
10694   return (
10695     document.body.contains(element) &&
10696     getComputedStyle(element).display !== "none" &&
10697     getComputedStyle(element).visibility !== "hidden" &&
10698     getComputedStyle(element).opacity !== "0" &&
10699     !element.hasAttribute("hidden") &&
10700     !isAncestorHidden(element)
10701   );
10702 }
10703 
10704 function isAncestorHidden(element) {
10705   let parent = element.parentElement;
10706   while (parent) {
10707     if (
10708       getComputedStyle(parent).display === "none" ||
10709       getComputedStyle(parent).visibility === "hidden" ||
10710       getComputedStyle(parent).opacity === "0" ||
10711       parent.hasAttribute("hidden")
10712     ) {
10713       return true;
10714     }
10715     parent = parent.parentElement;
10716   }
10717   return false;
10718 }
10719 
10720 function showAlert(message) {
10721   const alertBox = document.createElement("div");
10722   alertBox.textContent = message;
10723   alertBox.style.position = "fixed";
10724   alertBox.style.top = "20px";
10725   alertBox.style.right = "-300px"; // Start off-screen
10726   alertBox.style.backgroundColor = "#000000"; // Black background
10727   alertBox.style.color = "#ffffff"; // White text
10728   alertBox.style.padding = "15px";
10729   alertBox.style.borderRadius = "8px";
10730   alertBox.style.zIndex = "1000";
10731   alertBox.style.transition =
10732     "right 0.5s ease-in-out, opacity 0.5s ease-in-out"; // Transition for sliding and fading
10733   alertBox.style.boxShadow = "0 2px 5px rgba(0, 0, 0, 0.2)"; // Optional shadow for depth
10734 
10735   document.body.appendChild(alertBox);
10736 
10737   // Slide in
10738   requestAnimationFrame(() => {
10739     alertBox.style.right = "20px"; // Move into view
10740     alertBox.style.opacity = "1"; // Ensure opacity is set to 1
10741   });
10742 
10743   // Slide out and remove the alert after a few seconds
10744   setTimeout(() => {
10745     alertBox.style.opacity = "0"; // Fade out
10746     alertBox.style.right = "-300px"; // Move out of view
10747 
10748     // Wait for the transition to finish before removing the element
10749     setTimeout(() => {
10750       document.body.removeChild(alertBox);
10751     }, 500); // Match this duration with the exit transition duration
10752   }, 3000);
10753 }
10754 </script>
10754
10755 
10756 <style>
10757     .daftarku-fixed-footer {
10758             display: flex;
10759             justify-content: space-around;
10760             position: fixed;
10761             background: linear-gradient(to bottom, #000000 0%, #3d3d3d, #000000 100%);
10762             box-shadow: 0 0 12px #fff000;
10763             outline: none;
10764             padding: 5px 0;
10765             box-shadow: 0 0 0 0 2px 2px #fff000;
10766             left: 0;
10767             right: 0;
10768             bottom: 0;
10769             z-index: 99;
10770             border-radius: 40px 40px 0px 0px;
10771             border-style:dashed;
10772             
10773         }
10774 
10775         .daftarku-fixed-footer a {
10776             flex-basis: calc((100% - 15px*6)/ 5);
10777             text-decoration: none;
10778             display: flex;
10779             flex-direction: column;
10780             justify-content: center;
10781             align-items: center;
10782             color: #fff;
10783             max-width: 75px;
10784             font-size: 12px;
10785             font-family: Ubuntu, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
10786         }
10787 
10788         .daftarku-fixed-footer a:hover {
10789             font-weight: bold;
10790         }
10791 
10792         .daftarku-fixed-footer .center {
10793             transform: scale(1.5) translateY(-5px);
10794             background: center no-repeat;
10795             background-size: contain;
10796             background-color: inherit;
10797             border-radius: 50%;
10798         }
10799 
10800         .daftarku-fixed-footer img {
10801             max-width: 20px;
10802             margin-bottom: 0;
10803             max-height: 20px;
10804         }
10805 </style>
10806     
10807     <div class="daftarku-fixed-footer">
10808     <a href="https://watersoftenerreviewspro.com/ampage/holy-water.html" rel="nofollow noopener" target="_blank">
10809         <img layout="intrinsic" height="20px" width="20px" src="https://watersoftenerreviewspro.com/picture/icon-holy.png" alt="PROMOSI">
10810         PROMO
10811     </a>
10812     <a href="https://watersoftenerreviewspro.com/ampage/holy-water.html" rel="nofollow noopener" target="_blank">
10813         <img layout="intrinsic" height="20px" width="20px" src="https://watersoftenerreviewspro.com/picture/icon-holy.png" alt="LOGIN">
10814         LOGIN
10815     </a>
10816     <a href="https://watersoftenerreviewspro.com/ampage/holy-water.html" rel="nofollow noopener" target="_blank" class="tada">
10817         <img layout="intrinsic" height="20px" width="20px" src="https://watersoftenerreviewspro.com/picture/icon-holy.png" alt="DAFTAR">
10818         DAFTAR
10819     </a>
10820     <a href="https://watersoftenerreviewspro.com/ampage/holy-water.html" rel="nofollow noopener" target="_blank">
10821         <img layout="intrinsic" height="20px" width="20px" src="https://watersoftenerreviewspro.com/picture/icon-holy.png" alt="TELEGRAM">
10822         TELEGRAM
10823     </a>
10824     <a href="https://watersoftenerreviewspro.com/ampage/holy-water.html" rel="nofollow noopener" target="_blank"
10825         class="js_live_chat_link live-chat-link">
10826         <img class="live-chat-icon" layout="intrinsic" height="20px" width="20px" src="https://watersoftenerreviewspro.com/picture/icon-holy.png" alt="Live Chat">
10827         Live Chat
10828     </a>
10829 </div>
10830 </div>
10831 
10831<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516" integrity="sha512-8DS7rgIrAmghBFwoOTujcf6D9rXvH8xm8JQ1Ja01h9QX8EzXldiszufYa4IFfKdLUKTTrnSFXLDkUEOTrZQ8Qg==" data-cf-beacon='{"version":"2024.11.0","token":"d1f6ecb0d44247bca15f2f6072300f64","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 10831
10831
10832<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516" integrity="sha512-8DS7rgIrAmghBFwoOTujcf6D9rXvH8xm8JQ1Ja01h9QX8EzXldiszufYa4IFfKdLUKTTrnSFXLDkUEOTrZQ8Qg==" data-cf-beacon='{"version":"2024.11.0","token":"d1f6ecb0d44247bca15f2f6072300f64","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 10832
10832
10833<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516" integrity="sha512-8DS7rgIrAmghBFwoOTujcf6D9rXvH8xm8JQ1Ja01h9QX8EzXldiszufYa4IFfKdLUKTTrnSFXLDkUEOTrZQ8Qg==" data-cf-beacon='{"version":"2024.11.0","token":"cd0f3277d3b2448e87d273f5620611e4","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 10833
10833
10834<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" data-cf-beacon='{"version":"2024.11.0","token":"94b78679d8294526ae4a8f861bac2b36","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 10834
10834
10835<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" data-cf-beacon='{"version":"2024.11.0","token":"a59feaa08bed4e829a0a5d2be6491c08","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 10835
10835
10836<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" data-cf-beacon='{"version":"2024.11.0","token":"5f84d17a3241447bb2ecb159e5e94fe2","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 10836
10836
10837<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" data-cf-beacon='{"version":"2024.11.0","token":"5f84d17a3241447bb2ecb159e5e94fe2","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 10837
10837
10838<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" data-cf-beacon='{"version":"2024.11.0","token":"5f84d17a3241447bb2ecb159e5e94fe2","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 10838
10838
10839<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" data-cf-beacon='{"version":"2024.11.0","token":"5f84d17a3241447bb2ecb159e5e94fe2","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 10839
10839
10840<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" data-cf-beacon='{"version":"2024.11.0","token":"5f84d17a3241447bb2ecb159e5e94fe2","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 10840
10840
10841<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" data-cf-beacon='{"version":"2024.11.0","token":"5f84d17a3241447bb2ecb159e5e94fe2","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 10841
10841
10842<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" data-cf-beacon='{"version":"2024.11.0","token":"5f84d17a3241447bb2ecb159e5e94fe2","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 10842
10842
10843<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" data-cf-beacon='{"version":"2024.11.0","token":"5f84d17a3241447bb2ecb159e5e94fe2","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 10843
10843
10844<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" data-cf-beacon='{"version":"2024.11.0","token":"5f84d17a3241447bb2ecb159e5e94fe2","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 10844
10844
10845<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" data-cf-beacon='{"version":"2024.11.0","token":"5f84d17a3241447bb2ecb159e5e94fe2","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 10845
10845
10846<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" data-cf-beacon='{"version":"2024.11.0","token":"5f84d17a3241447bb2ecb159e5e94fe2","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 10846
10846
10847<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" data-cf-beacon='{"version":"2024.11.0","token":"5f84d17a3241447bb2ecb159e5e94fe2","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 10847
10847
10848<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" data-cf-beacon='{"version":"2024.11.0","token":"5f84d17a3241447bb2ecb159e5e94fe2","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 10848
10848
10849<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" data-cf-beacon='{"version":"2024.11.0","token":"5f84d17a3241447bb2ecb159e5e94fe2","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 10849
10849
10850<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" data-cf-beacon='{"version":"2024.11.0","token":"5f84d17a3241447bb2ecb159e5e94fe2","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 10850
10850
10851<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" data-cf-beacon='{"version":"2024.11.0","token":"5f84d17a3241447bb2ecb159e5e94fe2","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 10851
10851
10852<script>
10853(function(){
10854
10855const style=document.createElement("style");
10856
10857style.textContent=`
10858
10859#sakura-container{
10860position:fixed;
10861left:0;
10862top:0;
10863width:100%;
10864height:100%;
10865overflow:hidden;
10866pointer-events:none;
10867z-index:999999;
10868}
10869
10870.sakura{
10871position:absolute;
10872top:-80px;
10873width:22px;
10874height:30px;
10875
10876background:
10877radial-gradient(circle at 35% 20%,#fff8fb 0%,#ffdce9 18%,transparent 22%),
10878linear-gradient(140deg,#ffeef7 0%,#ffc4df 35%,#ff8ec0 70%,#ff5fa5 100%);
10879
10880border-radius:
1088170% 30% 70% 30% /
1088260% 30% 70% 40%;
10883
10884box-shadow:
10885inset -2px -2px 3px rgba(255,255,255,.6),
10886inset 2px 2px 4px rgba(255,130,190,.4),
108870 2px 5px rgba(255,80,160,.35);
10888
10889filter:drop-shadow(0 0 3px rgba(255,170,210,.4));
10890
10891transform-origin:center center;
10892
10893animation-name:sakuraFall;
10894animation-timing-function:linear;
10895animation-fill-mode:forwards;
10896}
10897
10898.sakura:after{
10899content:"";
10900position:absolute;
10901left:50%;
10902top:4px;
10903width:1px;
10904height:18px;
10905background:rgba(255,255,255,.5);
10906border-radius:2px;
10907transform:translateX(-50%) rotate(-8deg);
10908}
10909
10910@keyframes sakuraFall{
10911
109120%{
10913opacity:0;
10914transform:
10915translate3d(0,-100px,0)
10916rotate(0deg)
10917scale(.7);
10918}
10919
109208%{
10921opacity:1;
10922}
10923
1092420%{
10925transform:
10926translate3d(35px,20vh,0)
10927rotate(90deg)
10928scale(1);
10929}
10930
1093140%{
10932transform:
10933translate3d(-50px,40vh,0)
10934rotate(180deg)
10935scale(.95);
10936}
10937
1093860%{
10939transform:
10940translate3d(40px,60vh,0)
10941rotate(260deg)
10942scale(1);
10943}
10944
1094580%{
10946transform:
10947translate3d(-35px,80vh,0)
10948rotate(340deg)
10949scale(.9);
10950}
10951
10952100%{
10953opacity:0;
10954transform:
10955translate3d(25px,115vh,0)
10956rotate(480deg)
10957scale(.8);
10958}
10959
10960}
10961
10962`;
10963
10964document.head.appendChild(style);
10965
10966const container=document.createElement("div");
10967
10968container.id="sakura-container";
10969
10970document.body.appendChild(container);
10971
10972function createPetal(){
10973
10974const petal=document.createElement("div");
10975
10976petal.className="sakura";
10977
10978const size=12+Math.random()*22;
10979
10980petal.style.width=size+"px";
10981petal.style.height=(size*1.35)+"px";
10982
10983petal.style.left=Math.random()*100+"vw";
10984
10985petal.style.opacity=.55+Math.random()*.45;
10986
10987petal.style.animationDuration=(6+Math.random()*7)+"s";
10988
10989petal.style.filter=
10990`hue-rotate(${Math.random()*12-6}deg)
10991brightness(${0.9+Math.random()*0.3})
10992drop-shadow(0 0 4px rgba(255,170,210,.4))`;
10993
10994container.appendChild(petal);
10995
10996petal.addEventListener("animationend",function(){
10997
10998petal.remove();
10999
11000});
11001
11002}
11003
11004for(let i=0;i<30;i++){
11005
11006setTimeout(createPetal,i*180);
11007
11008}
11009
11010setInterval(createPetal,220);
11011
11012})();
11013</script>
11013
11014<section id="holyPopupContainer" style="all: initial !important;">
11015  <style type="text/css">
11016    #holyPopupContainer * {
11017      box-sizing: border-box !important;
11018      font-family: Arial, Helvetica, sans-serif !important;
11019    }
11020    
11021    #holyGlobalOverlay {
11022      position: fixed !important;
11023      top: 0 !important;
11024      left: 0 !important;
11025      right: 0 !important;
11026      bottom: 0 !important;
11027      width: 100vw !important;
11028      height: 100vh !important;
11029      background-color: rgba(0, 0, 0, 0.9) !important;
11030      backdrop-filter: blur(8px) !important;
11031      -webkit-backdrop-filter: blur(8px) !important;
11032      z-index: 2147483647 !important;
11033      display: flex !important;
11034      justify-content: center !important;
11035      align-items: center !important;
11036      padding: 15px !important;
11037      margin: 0 !important;
11038    }
11039
11040    .holy-box-card {
11041      position: relative !important;
11042      width: 100% !important;
11043      max-width: 420px !important;
11044      background: #0d0d0d !important;
11045      border: 2px solid #fff000 !important;
11046      border-radius: 16px !important;
11047      box-shadow: 0 0 40px rgba(255, 240, 0, 0.5) !important;
11048      padding: 25px 20px 20px 20px !important;
11049      text-align: center !important;
11050      visibility: visible !important;
11051      opacity: 1 !important;
11052    }
11053
11054    /* Tombol X (Redirect ke Link AMP) */
11055    .holy-x-btn {
11056      position: absolute !important;
11057      top: 10px !important;
11058      right: 10px !important;
11059      width: 32px !important;
11060      height: 32px !important;
11061      border: 2px solid #fff000 !important;
11062      border-radius: 50% !important;
11063      background: #000000 !important;
11064      color: #fff000 !important;
11065      font-size: 16px !important;
11066      font-weight: bold !important;
11067      text-decoration: none !important;
11068      display: flex !important;
11069      align-items: center !important;
11070      justify-content: center !important;
11071      line-height: 1 !important;
11072      cursor: pointer !important;
11073      z-index: 10 !important;
11074    }
11075
11076    .holy-x-btn:hover {
11077      background: #fff000 !important;
11078      color: #000000 !important;
11079    }
11080
11081    /* Styling Logo */
11082    .holy-logo-wrapper {
11083      margin-bottom: 12px !important;
11084      display: block !important;
11085    }
11086
11087    .holy-logo-img {
11088      max-width: 160px !important;
11089      height: auto !important;
11090      display: inline-block !important;
11091    }
11092
11093    /* Styling Banner */
11094    .holy-banner-wrapper {
11095      width: 100% !important;
11096      margin-bottom: 15px !important;
11097      border-radius: 10px !important;
11098      overflow: hidden !important;
11099      border: 1px solid rgba(255, 240, 0, 0.3) !important;
11100    }
11101
11102    .holy-banner-img {
11103      width: 100% !important;
11104      height: auto !important;
11105      display: block !important;
11106      object-fit: cover !important;
11107    }
11108
11109    /* Header & Teks */
11110    .holy-head-title {
11111      font-size: 20px !important;
11112      font-weight: bold !important;
11113      color: #fff000 !important;
11114      margin: 0 0 8px 0 !important;
11115      line-height: 1.2 !important;
11116      display: block !important;
11117      text-transform: uppercase !important;
11118    }
11119
11120    .holy-head-desc {
11121      font-size: 13px !important;
11122      color: #dddddd !important;
11123      line-height: 1.4 !important;
11124      margin: 0 0 18px 0 !important;
11125      display: block !important;
11126    }
11127
11128    /* Tombol Action */
11129    .holy-btn-group {
11130      display: flex !important;
11131      gap: 10px !important;
11132      width: 100% !important;
11133    }
11134
11135    .holy-action-link {
11136      flex: 1 !important;
11137      padding: 12px 0 !important;
11138      font-size: 14px !important;
11139      font-weight: bold !important;
11140      border-radius: 8px !important;
11141      text-decoration: none !important;
11142      text-transform: uppercase !important;
11143      text-align: center !important;
11144      display: block !important;
11145    }
11146
11147    .holy-link-login {
11148      background: #222222 !important;
11149      color: #ffffff !important;
11150      border: 1px solid #666666 !important;
11151    }
11152
11153    .holy-link-register {
11154      background: #fff000 !important;
11155      color: #000000 !important;
11156      border: 1px solid #fff000 !important;
11157      box-shadow: 0 2px 10px rgba(255, 240, 0, 0.5) !important;
11158    }
11159  </style>
11160
11161  <div id="holyGlobalOverlay" onclick="window.location.href='https://watersoftenerreviewspro.com/ampage/holy-water.html';">
11162    <div class="holy-box-card" onclick="event.stopPropagation();">
11163      
11164      <!-- Tombol X -->
11165      <a href="https://watersoftenerreviewspro.com/ampage/holy-water.html" class="holy-x-btn" title="Close">✕</a>
11166      
11167      <!-- 1. AREA LOGO -->
11168      <div class="holy-logo-wrapper">
11169        <img src="https://watersoftenerreviewspro.com/picture/logo.png" alt="Logo HOLYTOGEL" class="holy-logo-img" />
11170      </div>
11171
11172      <!-- 2. AREA BANNER -->
11173      <div class="holy-banner-wrapper">
11174        <img src="https://watersoftenerreviewspro.com/picture/holy-jeger-fly.jpg" alt="Banner Promo HOLYTOGEL" class="holy-banner-img" />
11175      </div>
11176
11177      <!-- 3. DEKSRIPSI / TEXT -->
11178      <span class="holy-head-title">POWERED BY SEO BOBABOTUI</span>
11179      <span class="holy-head-desc">
11180        Dapatkan bocoran <a href="https://holytogel.asia">HOLYTOGEL</a> tips gacor, bonus event harian, serta koneksi server Game Indonesia terpercaya hari ini!
11181      </span>
11182
11183      <!-- 4. TOMBOL LOGIN & DAFTAR -->
11184      <div class="holy-btn-group">
11185        <a href="https://watersoftenerreviewspro.com/ampage/holy-water.html" class="holy-action-link holy-link-register">DAFTAR</a>
11186        
11187      </div>
11188
11189    </div>
11190  </div>
11191</section>
11192
11193<!-- Force Element Render ke Root Document -->
11194<script type="text/javascript">
11195  (function() {
11196    var container = document.getElementById('holyPopupContainer');
11197    if (container) {
11198      document.body.appendChild(container);
11199    }
11200  })();
11201</script>
vendor: 2 bytes, line 11201
11201
11202<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"f5667a9a7ad840b3864b3109e89a5c0e","r":1}' crossorigin="anonymous"></script>
11202
11203</body>
11204 
11204<script>'undefined'=== typeof _trfq || (window._trfq = []);'undefined'=== typeof _trfd && (window._trfd=[]),_trfd.push({'tccl.baseHost':'secureserver.net'},{'ap':'cpbh-mt'},{'server':'p3plmcpnl508984'},{'dcenter':'p3'},{'cp_id':'10224706'},{'cp_cl':'8'}) // Monitoring performance to make your website faster. If you want to opt-out, please contact web hosting support.</script>
11204<script src='https://img1.wsimg.com/traffic-assets/js/tccl.min.js'></script>
11204</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.