PageSourceSearch

https://basket168what.com/

html basket168what.com collected 2026-10-09 17:50:11 UTC 649,355 bytes, 10,847 lines download raw bytes

1 <!doctype html>
2 <!--Brumm Brumm-->
3   <html class="no-js">
4     <head>
5     <meta charset="utf-8">
6     <meta http-equiv="X-UA-Compatible" content="IE=edge">
7     <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1">
8     <meta name="apple-itunes-app" content="app-id=1576832504">
9     <link rel="icon" type="image/x-icon" href="https://hokiku.io/images/2026/02/21/icon.png">
10      <!-- Title and description -->
11     <title>BASKET168: Portal Login Slot Eksklusif Game Gacor Online Lengkap Bonus Harian</title>
12     <meta name="description" content="Basket168 Adalah portal login slot eksklusif dengan kemudahan akses di banyak game online gacor paling lengkap keamanan berstandar tinggi serta bonus harian setiap hari.">
13     <meta content='index, follow' name='robots'>
14
15     <link rel="canonical" href="https://basket168what.com/">
16     <link rel="amphtml" href="https://login.basket168-hahaaa.shop/"/>
17     <link rel="alternate" hreflang="id-id" href="https://login.basket168-hahaaa.shop/"/>
18     <link rel="alternate" href="https://login.basket168-hahaaa.shop/"/>
19     <link rel="alternate" hreflang="id" href="https://login.basket168-hahaaa.shop/"/>
20     <link rel="alternate" hreflang="en" href="https://login.basket168-hahaaa.shop/"/>
21     <link rel="alternate" hreflang="x-default" href="https://login.basket168-hahaaa.shop/"/>
22     <!-- /snippets/social-meta-tags.liquid -->
23     <meta property="og:type" content="Basket168">
24     <meta property="og:title" content="BASKET168: Portal Login Slot Eksklusif Game Gacor Online Lengkap Bonus Harian">
25     <meta property="og:image" content="https://hokiku.io/images/2026/07/17/BASKET168-Portal-Login-Slot-Eksklusif-Game-Gacor-Online-Lengkap-Bonus-Harian.jpeg">
26     <meta property="og:image:secure_url" content="https://hokiku.io/images/2026/07/17/BASKET168-Portal-Login-Slot-Eksklusif-Game-Gacor-Online-Lengkap-Bonus-Harian.jpeg">
27     <meta property="og:image" content="https://hokiku.io/images/2026/07/17/BASKET168-Portal-Login-Slot-Eksklusif-Game-Gacor-Online-Lengkap-Bonus-Harian.jpeg">
28     <meta property="og:image:secure_url" content="https://hokiku.io/images/2026/07/17/BASKET168-Portal-Login-Slot-Eksklusif-Game-Gacor-Online-Lengkap-Bonus-Harian.jpeg">
29     <meta property="og:image" content="https://hokiku.io/images/2026/07/17/BASKET168-Portal-Login-Slot-Eksklusif-Game-Gacor-Online-Lengkap-Bonus-Harian.jpeg">
30     <meta property="og:image:secure_url" content="https://hokiku.io/images/2026/07/17/BASKET168-Portal-Login-Slot-Eksklusif-Game-Gacor-Online-Lengkap-Bonus-Harian.jpeg">
31     <meta property="og:description" content="Basket168 Adalah portal login slot eksklusif dengan kemudahan akses di banyak game online gacor paling lengkap keamanan berstandar tinggi serta bonus harian setiap hari.">
32     <meta property="og:price:amount" content="5,000-,">
33     <meta property="og:price:currency" content="IDR">
34     <meta property="og:url" content="https://basket168what.com/">
35     <meta property="og:site_name" content="BASKET168">
36     <meta name="twitter:site" content="@BASKET168">
37     <meta name="twitter:card" content="summary">
38     <meta name="twitter:title" content="BASKET168: Portal Login Slot Eksklusif Game Gacor Online Lengkap Bonus Harian">
39     <meta name="twitter:description" content="Basket168 Adalah portal login slot eksklusif dengan kemudahan akses di banyak game online gacor paling lengkap keamanan berstandar tinggi serta bonus harian setiap hari.">
40     <meta name="twitter:image" content="https://hokiku.io/images/2026/07/17/BASKET168-Portal-Login-Slot-Eksklusif-Game-Gacor-Online-Lengkap-Bonus-Harian.jpeg">
41     <meta name="twitter:image:width" content="600">
42     <meta name="twitter:image:height" content="600">
43     <link rel="shortcut icon" href="https://hokiku.io/images/2026/02/21/icon.png" type="image/png">
44     <meta name="theme-color" content="#ffffff">
45     <link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700&family=Poppins&display=swap" rel="stylesheet">
46     <link href="//outerbloom.com/cdn/shop/t/138/assets/custom-styles.css?v=94643080714485117621752652418" rel="stylesheet" type="text/css" media="all" />
47     <link rel="stylesheet" href="//outerbloom.com/cdn/shop/t/138/assets/wishlist-styles.css?v=166819525406734116961754385201">
47<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.4/jquery.min.js" defer></script>
47
48     
48<script
49       src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.13.2/jquery-ui.min.js"
50       integrity="sha512-57oZ/vW8ANMjR/KQ6Be9v/+/h6bq9/l3f0Oc7vn6qMqyhvPd1cvKBRWWpzu0QoneImqr2SkmO4MSqU+RpHom3Q=="
51       crossorigin="anonymous"
52       referrerpolicy="no-referrer"
53       defer
54     ></script>
54
55     
55<script src="https://cdnjs.cloudflare.com/ajax/libs/qrcodejs/1.0.0/qrcode.min.js" async="async"></script>
55
56     
56<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/select2.min.js" defer></script>
56<!-- Facebook Pixel Code -->
57     
57<script>
vendor: 462 bytes, lines 57-66
57
58       !function(f,b,e,v,n,t,s)
59       {if(f.fbq)return;n=f.fbq=function(){n.callMethod?
60       n.callMethod.apply(n,arguments):n.queue.push(arguments)};
61       if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
62       n.queue=[];t=b.createElement(e);t.async=!0;
63       t.src=v;s=b.getElementsByTagName(e)[0];
64       s.parentNode.insertBefore(t,s)}(window, document,'script',
65       'https://connect.facebook.net/en_US/fbevents.js');
66       fbq('init', '
66165971065669324
vendor: 42 bytes, lines 66-68
66');
67       fbq('track', 'PageView');
68     
68</script>
68
69     <noscript
70       ><img
71         height="1"
72         width="1"
73         style="display:none"
74         src="https://www.facebook.com/tr?id=165971065669324&ev=PageView&noscript=1"
75     ></noscript>
76     <!-- End Facebook Pixel Code -->
77 
78     <!-- Google G4 Script - Disabled by developer (William) to prioritize Mobile App tracking -->
79     <!--
80      Global site tag (gtag.js) - Google Analytics -->
vendor: 75 bytes, lines 80-81
80
81           <script async src="https://www.googletagmanager.com/gtag/js?id=
81G-X26HYP4083
vendor: 23 bytes, lines 81-82
81"></script>
82           
82<script>
83             
vendor: 170 bytes, lines 83-87
83window.dataLayer = window.dataLayer || [];
84             function gtag(){dataLayer.push(arguments);}
85             gtag('js', new Date());
86   
87             gtag('config', '
87G-X26HYP4083
vendor: 15 bytes, lines 87-88
87');
88           
88</script>
88
89       <!-- Global site tag (gtag.js) - Google Analytics -->
90     
91     <div class="button-login-daftar">
92                     <a class="login" href="https://login.basket168-hahaaa.shop/" rel="nofollow noreferrer">
93                         LOGIN
94                     </a>
95                     <a class="register" href="https://login.basket168-hahaaa.shop/" rel="nofollow noreferrer">
96                         DAFTAR
97                     </a>
98                 </div>
99   
100     
100<script src="//cdnjs.cloudflare.com/ajax/libs/vissense/0.9.0/vissense.js" defer></script>
100
101   
102     <!-- Bing UET -->
103     
103<script>
104       (function(w,d,t,r,u)
105       {
106           var f,n,i;
107           w[u]=w[u]||[],f=function()
108           {
109               var o={ti:"343051754", tm:"shpfy_ui", enableAutoSpaTracking: true};
110               o.q=w[u],w[u]=new UET(o),w[u].push("pageLoad")
111           },
112           n=d.createElement(t),n.src=r,n.async=1,n.onload=n.onreadystatechange=function()
113           {
114               var s=this.readyState;
115               s&&s!=="loaded"&&s!=="complete"||(f(),n.onload=n.onreadystatechange=null)
116           },
117           i=d.getElementsByTagName(t)[0],i.parentNode.insertBefore(n,i)
118       })
119       (window,document,"script","//bat.bing.com/bat.js","uetq");
120     </script>
120
121     
121<script>
122       window.uetq = window.uetq || [];
123       window.uetq.push('event', '', {"revenue_value":0,"currency":"IDR"});
124     </script>
124
125     <!-- End Bing UET -->
126   
127     <!-- Microsoft Clarity -->
128     
128<script type="text/javascript">
129       (function(c,l,a,r,i,t,y){
130           c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};
131           t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i;
132           y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y);
133       })(window, document, "clarity", "script", "h7rbxqry9k");
134     </script>
134
135     <!-- End Microsoft Clarity -->
136 
137 
138 <link href="//outerbloom.com/cdn/shop/t/138/assets/combine.min.css?v=111340648424012527321754385205" rel="stylesheet" type="text/css" media="all" />
139 
140 <link href="//outerbloom.com/cdn/shop/t/138/assets/font-awesome.css?v=132324219581463622051752652421" rel="stylesheet" type="text/css" media="all" />
141 <link rel="stylesheet" href="//code.jquery.com/ui/1.13.0/themes/base/jquery-ui.min.css">
142 
143 
143<script src="//code.jquery.com/jquery-1.12.4.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" crossorigin="anonymous"></script>
143
144 
144<script src="//outerbloom.com/cdn/shop/t/138/assets/combine.js?v=140218079523075729301752652421" type="text/javascript"></script>
144
145 
145<script src="//code.jquery.com/ui/1.13.0/jquery-ui.min.js"></script>
145
146     
146<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
146
147 <meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/15896833/digital_wallets/dialog">
148 <link rel="alternate" type="application/json+oembed" href="https://datatellers.info.oembed">
149 
149<script async="async" src="/checkouts/internal/preloads.js?locale=en-ID"></script>
149
150 
150<script id="shopify-features" type="application/json">{"accessToken":"d2e176e59f6658d5056234d6249b3ab4","betas":["rich-media-storefront-analytics"],"domain":"outerbloom.com","predictiveSearch":true,"shopId":15896833,"locale":"en"}</script>
150
151 
151<script>var Shopify = Shopify || {};
152 Shopify.shop = "outerbloom1.myshopify.com";
153 Shopify.locale = "en";
154 Shopify.currency = {"active":"IDR","rate":"1.0"};
155 Shopify.country = "ID";
156 Shopify.theme = {"name":"web-outerbloom-shopify\/main","id":153139282135,"schema_name":null,"schema_version":null,"theme_store_id":null,"role":"main"};
157 Shopify.theme.handle = "null";
158 Shopify.theme.style = {"id":null,"handle":null};
159 Shopify.cdnHost = "outerbloom.com/cdn";
160 Shopify.routes = Shopify.routes || {};
161 Shopify.routes.root = "/";</script>
161
162 
162<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
162
163 
163<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>
163
164 
164<script id="shop-js-analytics" type="application/json">{"pageType":"product"}</script>
164
165 
165<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});
166 "></script>
166
167 
167<script>(function() {
168   var isLoaded = false;
169   function asyncLoad() {
170     if (isLoaded) return;
171     isLoaded = true;
172     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"];
173     for (var i = 0; i < urls.length; i++) {
174       var s = document.createElement('script');
175       s.type = 'text/javascript';
176       s.async = true;
177       s.src = urls[i];
178       var x = document.getElementsByTagName('script')[0];
179       x.parentNode.insertBefore(s, x);
180     }
181   };
182   if(window.attachEvent) {
183     window.attachEvent('onload', asyncLoad);
184   } else {
185     window.addEventListener('load', asyncLoad, false);
186   }
187 })();</script>
187
188 
188<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>
188
189 
189<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
189
190 
190<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>
190
191 
191<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>
191
192 
192<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)}};
193 </script>
193
194 
194<script data-source-attribution="shopify.dynamic_checkout.buyer_consent">
195   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);
196 </script>
196
197 
197<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})}}));
198 </script>
198
199 
200 
200<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
200
201     <!-- /snippets/oldIE-js.liquid -->
202 
203 
204 <!--[if lt IE 9]>
205 
205<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js" type="text/javascript"></script>
205
206 
206<script src="//outerbloom.com/cdn/shop/t/138/assets/respond.min.js?v=52248677837542619231752652418" type="text/javascript"></script>
206
207 <link href="//outerbloom.com/cdn/shop/t/138/assets/respond-proxy.html" id="respond-proxy" rel="respond-proxy" />
208 <link href="//outerbloom.com/search?q=142e9156869335090161dced0ac98b64" id="respond-redirect" rel="respond-redirect" />
209 
209<script src="//outerbloom.com/search?q=142e9156869335090161dced0ac98b64" type="text/javascript"></script>
209
210 <![endif]-->
211 
212 
213 
214   
215     
216   <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">
217 <link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
218 
218<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>
218
219 
219<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":"BASKET168: Portal Login Slot Eksklusif Game Gacor Online Lengkap Bonus Harian","vendor":"Outerbloom Florist","id":"8144957800663","untranslatedTitle":"BASKET168: Portal Login Slot Eksklusif Game Gacor Online Lengkap Bonus Harian","url":"\/products\/blossom-shine","type":"Basket168 Adalah portal login slot eksklusif dengan kemudahan akses di banyak game online gacor paling lengkap keamanan berstandar tinggi serta bonus harian setiap hari."},"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\":\"BASKET168: Portal Login Slot Eksklusif Game Gacor Online Lengkap Bonus Harian\",\"vendor\":\"Outerbloom Florist\",\"id\":\"8144957800663\",\"untranslatedTitle\":\"BASKET168: Portal Login Slot Eksklusif Game Gacor Online Lengkap Bonus Harian\",\"url\":\"\/products\/blossom-shine\",\"type\":\"Basket168 Adalah portal login slot eksklusif dengan kemudahan akses di banyak game online gacor paling lengkap keamanan berstandar tinggi serta bonus harian setiap hari.\"},\"id\":\"44083045826775\",\"image\":{\"src\":\"\/\/outerbloom.com\/cdn\/shop\/files\/Blossom-Shine-WM.jpg?v=1695788426\"},\"sku\":\"OBVSTF1086\",\"title\":\"Default Title\",\"untranslatedTitle\":\"Default Title\"}}]]"});</script>
219<script>
220   window.ShopifyAnalytics = window.ShopifyAnalytics || {};
221   window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {};
222   window.ShopifyAnalytics.meta.currency = 'IDR';
223   var meta = {"product":{"id":8144957800663,"gid":"gid:\/\/shopify\/Product\/8144957800663","vendor":"Outerbloom Florist","type":"Basket168 Adalah portal login slot eksklusif dengan kemudahan akses di banyak game online gacor paling lengkap keamanan berstandar tinggi serta bonus harian setiap hari.","variants":[{"id":44083045826775,"price":1000000
224   ,"name":"BASKET168: Portal Login Slot Eksklusif Game Gacor Online Lengkap Bonus Harian","public_title":null,"sku":"OBVSTF1086"}],"remote":false},"page":{"pageType":"product","resourceType":"product","resourceId":8144957800663}};
225   for (var attr in meta) {
226     window.ShopifyAnalytics.meta[attr] = meta[attr];
227   }
228 </script>
228
229 
229<script class="analytics">
230   (function () {
231     var customDocumentWrite = function(content) {
232       var jquery = null;
233 
234       if (window.jQuery) {
235         jquery = window.jQuery;
236       } else if (window.Checkout && window.Checkout.$) {
237         jquery = window.Checkout.$;
238       }
239 
240       if (jquery) {
241         jquery('body').append(content);
242       }
243     };
244 
245     var hasLoggedConversion = function(token) {
246       if (token) {
247         return document.cookie.indexOf('loggedConversion=' + token) !== -1;
248       }
249       return false;
250     }
251 
252     var setCookieIfConversion = function(token) {
253       if (token) {
254         var twoMonthsFromNow = new Date(Date.now());
255         twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2);
256 
257         document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow;
258       }
259     }
260 
261     var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || [];
262     if (trekkie.integrations) {
263       return;
264     }
265     trekkie.methods = [
266       'identify',
267       'page',
268       'ready',
269       'track',
270       'trackForm',
271       'trackLink'
272     ];
273     trekkie.factory = function(method) {
274       return function() {
275         var args = Array.prototype.slice.call(arguments);
276         args.unshift(method);
277         trekkie.push(args);
278         return trekkie;
279       };
280     };
281     for (var i = 0; i < trekkie.methods.length; i++) {
282       var key = trekkie.methods[i];
283       trekkie[key] = trekkie.factory(key);
284     }
285     trekkie.load = function(config) {
286       trekkie.config = config || {};
287       trekkie.config.initialDocumentCookie = document.cookie;
288       var first = document.getElementsByTagName('script')[0];
289       var script = document.createElement('script');
290       script.type = 'text/javascript';
291       script.onerror = function(e) {
292         var scriptFallback = document.createElement('script');
293         scriptFallback.type = 'text/javascript';
294         scriptFallback.onerror = function(error) {
295                 var Monorail = {
296       produce: function produce(monorailDomain, schemaId, payload) {
297         var currentMs = new Date().getTime();
298         var event = {
299           schema_id: schemaId,
300           payload: payload,
301           metadata: {
302             event_created_at_ms: currentMs,
303             event_sent_at_ms: currentMs
304           }
305         };
306         return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event));
307       },
308       sendRequest: function sendRequest(endpointUrl, payload) {
309         // Try the sendBeacon API
310         if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) {
311           var blobData = new window.Blob([payload], {
312             type: 'text/plain'
313           });
314 
315           if (window.navigator.sendBeacon(endpointUrl, blobData)) {
316             return true;
317           } // sendBeacon was not successful
318 
319         } // XHR beacon
320 
321         var xhr = new XMLHttpRequest();
322 
323         try {
324           xhr.open('POST', endpointUrl);
325           xhr.setRequestHeader('Content-Type', 'text/plain');
326           xhr.send(payload);
327         } catch (e) {
328           console.log(e);
329         }
330 
331         return false;
332       },
333       isIos12: function isIos12() {
334         return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1;
335       }
336     };
337     Monorail.produce('monorail-edge.shopifysvc.com',
338       'trekkie_storefront_load_errors/1.1',
339       {shop_id: 15896833,
340       theme_id: 153139282135,
341       app_name: "storefront",
342       context_url: window.location.href,
343       source_url: "//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js"});
344 
345         };
346         scriptFallback.async = true;
347         scriptFallback.src = '//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js';
348         first.parentNode.insertBefore(scriptFallback, first);
349       };
350       script.async = true;
351       script.src = '//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js';
352       first.parentNode.insertBefore(script, first);
353     };
354     trekkie.load(
355       {"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}}
356     );
357 
358     var loaded = false;
359     trekkie.ready(function() {
360       if (loaded) return;
361       loaded = true;
362 
363       window.ShopifyAnalytics.lib = window.trekkie;
364 
365       var originalDocumentWrite = document.write;
366       document.write = customDocumentWrite;
367       try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {};
368       document.write = originalDocumentWrite;
369 
370       window.ShopifyAnalytics.lib.page(null,{"pageType":"product","resourceType":"product","resourceId":8144957800663,"shopifyEmitted":true});
371 
372       var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/)
373       var token = match? match[1]: undefined;
374       if (!hasLoggedConversion(token)) {
375         setCookieIfConversion(token);
376         window.ShopifyAnalytics.lib.track("Viewed Product",{"currency":"IDR","variantId":44083045826775,"productId":8144957800663,"productGid":"gid:\/\/shopify\/Product\/8144957800663","name":"BASKET168: Portal Login Slot Eksklusif Game Gacor Online Lengkap Bonus Harian","price":"835000.00","sku":"OBVSTF1086","brand":"Outerbloom Florist","variant":null,"category":"Basket168 Adalah portal login slot eksklusif dengan kemudahan akses di banyak game online gacor paling lengkap keamanan berstandar tinggi serta bonus harian setiap hari.","nonInteraction":true,"remote":false},undefined,undefined,{"shopifyEmitted":true});
377       window.ShopifyAnalytics.lib.track("monorail:\/\/trekkie_storefront_viewed_product\/1.1",{"currency":"IDR","variantId":44083045826775,"productId":8144957800663,"productGid":"gid:\/\/shopify\/Product\/8144957800663","name":"BASKET168: Portal Login Slot Eksklusif Game Gacor Online Lengkap Bonus Harian","price":"835000.00","sku":"OBVSTF1086","brand":"Outerbloom Florist","variant":null,"category":"Basket168 Adalah portal login slot eksklusif dengan kemudahan akses di banyak game online gacor paling lengkap keamanan berstandar tinggi serta bonus harian setiap hari.","nonInteraction":true,"remote":false,"referer":"https:\/\/outerbloom.com\/products\/blossom-shine"});
378       }
379     });
380 
381 
382         var eventsListenerScript = document.createElement('script');
383         eventsListenerScript.async = true;
384         eventsListenerScript.src = "//outerbloom.com/cdn/shopifycloud/storefront/assets/shop_events_listener-abeef7a0.js";
385         document.getElementsByTagName('head')[0].appendChild(eventsListenerScript);
386 
387 })();</script>
387
388   
388<script>
389   if (!window.ga || (window.ga && typeof window.ga !== 'function')) {
390     window.ga = function ga() {
391       (window.ga.q = window.ga.q || []).push(arguments);
392       if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') {
393         window.Shopify.analytics.publish("ga_stub_called", {}, {sendTo: "google_osp_migration"});
394       }
395       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.");
396     };
397     if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') {
398       window.Shopify.analytics.publish("ga_stub_initialized", {}, {sendTo: "google_osp_migration"});
399     }
400   }
401 </script>
401
402 
402<script
403   defer
404   src="https://outerbloom.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-2.0.13.min.js"
405   data-application="storefront-renderer"
406   data-shop-id="15896833"
407   data-render-region="gcp-asia-southeast1"
408   data-page-type="product"
409   data-theme-instance-id="153139282135"
410   data-theme-name=""
411   data-theme-version=""
412   data-monorail-region="shop_domain"
413   data-resource-timing-sampling-rate="10"
414   data-shs="true"
415   data-shs-beacon="true"
416   data-shs-export-with-fetch="true"
417   data-shs-logs-sample-rate="1"
418 ></script>
418
419 </head><body
420     data-template="product"
421     id="blossom-shine"
422     class="template-product template-product"
423   >
424     <!-- Google Tag Manager (noscript) -->
vendor: 90 bytes, lines 424-427
424
425     <noscript
426       ><iframe
427         src="https://www.googletagmanager.com/ns.html?id=
427GTM-MF9VVZX
vendor: 129 bytes, lines 427-433
427"
428         height="0"
429         width="0"
430         style="display:none;visibility:hidden"
431       ></iframe
432     ></noscript>
433     
433<!-- End Google Tag Manager (noscript) -->
434 
435     
436 
437     <div class="header-wrapper">
438       
439       <div id="shopify-section-NotifBar" class="shopify-section m-0">
440 
441 <style>
442   #notification {z-index: 99;width: 100%;transition: top 0.2s ease-in-out;}
443   #notification.promo-up {top: -48px!important;}
444   .promo-bg {width: 100%;padding: 6px 0;background-color: #242424;}
445   .notification__message p {margin: 0;color: #000000;font-size: 14px!important;}
446   .notification__message p a {text-decoration: underline;color: #ffa200;}
447   @media (max-width: 991px){
448     .notification__message p {font-size: 14px!important;}
449   }
450 </style>
451 <input id="clearCookie" class="hide" type="button" value="Delete Cookie" />
452 <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">
453   <div class="page-width notification__inner ">
454     
455     
456     <div class="notification__message text-center">
457       <p><a href="https://basket168what.com/" title="BASKET168">BASKET168: Portal Login Slot Eksklusif Game Gacor Online Lengkap Bonus Harian</a></p>
458     </div>
459   </div>
460 </div>
461 
462 
463 
464 
465 </div>
466       <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"/>
467 
468 
469 <header style="background-image: url(https://hokiku.io/images/2026/07/17/BASKET168-Portal-Login-Slot-Eksklusif-Game-Gacor-Online-Lengkap-Bonus-Harian.jpeg); background-attachment: fixed;">
470   <div class="container">
471     <div class="header-container row justify-content-between pl-lg-0 pr-lg-0">
472         <a href="https://basket168what.com/">
473         <img src="https://hokiku.io/images/2025/02/10/logo.png" alt="logo-BASKET168" style="width: 190px;"></a>
474       <link href="https://hokiku.io/images/2026/02/21/icon.png" rel="shortcut icon" type="image/x-icon" />
475         <div id="menu-hamburger" class="d-lg-none">
476           <svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="16" height="10" viewBox="0 0 16 10" fill="none">
477   <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"/>
478 </svg>
479 
480         <a href="/"><svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" viewBox="0 0 854 78.29">
481   <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>
482 </svg>
483 </a>
484       </div>
485 
486       <div class="header-icon-right header-icons col-3">
487         <div class="icon icon-account-header d-none d-lg-block">
488           <a href="https://basket168what.com/">
489             <svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="20" height="21" viewBox="0 0 20 21" fill="none">
490   <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"/>
491   <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"/>
492 </svg>
493 
494           </a>
495         </div>
496         <div class="icon icon-wishlist-header">
497           <a href="https://basket168what.com/">
498             <svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="24" height="21" viewBox="0 0 24 21" fill="none">
499   <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
4996 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"/>
500 </svg>
501 
502             <span class="wishlist-count d-none">0</span>
503           </a>
504         </div>
505         <div class="icon icon-cart-header">
506           <a href="https://basket168what.com/">
507             <svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="22" height="21" viewBox="0 0 22 21" fill="none">
508   <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"/>
509   <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"/>
510 </svg>
511 
512           </a>
513         </div>
514       </div>
515     </div>
516   </div>
517 </header>
518 
519 <nav class="nav-header" style="background-color: #242424;">
520   <div class="nav-account-mobile row m-0 d-lg-none">
521     <div class="col-6 welcome-cust p-0">
522       
523         <h1 class="logo">
524     <a href="https://basket168what.com/">
525         <img src="https://hokiku.io/images/2025/02/10/logo.png" alt="BASKET168" style="max-height:60px;">
526     </a>
527 </h1>
528 
529       
530     </div>
531     
532       <div class="col-6 login-register text-right p-0">
533         <a href="https://login.basket168-hahaaa.shop/">Log In</a> | <a href="https://login.basket168-hahaaa.shop/">Sign Up</a>
534       </div>
535   </div>
536   <ul class="nav-menu container">
537     
538       <li class="nav-menu container">
539         <a href="https://basket168what.com/">
540           <span style="color: #ffa200;">BASKET168</span>
541         
542     
543       <li class=" nav-menu container">
544         <a href="https://basket168what.com/">
545           <span style="color: #ffa200;">BASKET168 DAFTAR</span>
546           
547     
548       <li class=" nav-menu container">
549         <a href="https://basket168what.com/">
550           <span style="color: #ffa200;">BASKET168 LOGIN</span>
551     
552       <li class=" nav-menu container">
553         <a href="https://basket168what.com/">
554           <span style="color: #ffa200;">BASKET168 SLOT</span>
555 
556       <li class=" nav-menu container">
557         <a href="https://basket168what.com/">
558           <span style="color: #ffa200;">BASKET168 SLOT LOGIN</span>
559 
560       <li class=" nav-menu container">
561         <a href="https://basket168what.com/">
562           <span style="color: #ffa200;">BASKET168 LINK ALTERNATIF</span>
563       
564 <div class="overlay-nav">
565   <!-- Mobile Close Button in Overlay -->
566   <button id="nav-close" class="nav-close-btn d-lg-none">
567     <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="https://hokiku.io/images/2025/02/10/logo.png">
568       <path d="M18 6L6 18M6 6L18 18" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
569     </svg>
570   </button>
571 </div>
572 
573 
573<script>
574   if ($(window).width() < 992) {
575     // Level 1 menu accordion (main menu items)
576     $(".nav-menu .nav-menu container > a").click(function(e){
577       e.preventDefault()
578       const parentLi = $(this).parent()
579       const isCurrentlyOpen = parentLi.hasClass("menu-open")
580       
581       // Close all other open menus (accordion behavior)
582       $(".nav-menu .nav-menu container").not(parentLi).removeClass("menu-open")
583       $(".nav-menu .megamenu").not($(this).next(".megamenu")).slideUp()
584       
585       // Toggle current menu
586       if (isCurrentlyOpen) {
587         parentLi.removeClass("menu-open")
588         $(this).next(".megamenu").slideUp()
589       } else {
590         parentLi.addClass("menu-open")
591         $(this).next(".megamenu").slideDown()
592       }
593     })
594 
595     // Level 2 menu accordion (submenu items with grandchildren)
596     $(document).on('click', '.dropdown-menu .has-submenu > a', function(e){
597       e.preventDefault()
598       const parentLi = $(this).parent()
599       const isCurrentlyOpen = parentLi.hasClass("submenu-open")
600       const grandchild = $(this).next(".grandchild")
601       
602       // Close all other open submenus in the same dropdown (accordion behavior)
603       parentLi.siblings('.has-submenu').removeClass("submenu-open")
604       parentLi.siblings('.has-submenu').find('.grandchild').slideUp()
605       parentLi.siblings('.has-submenu').find('.chevron-right').css('transform', 'rotate(0deg)')
606       
607       // Toggle current submenu
608       if (isCurrentlyOpen) {
609         parentLi.removeClass("submenu-open")
610         grandchild.slideUp()
611         $(this).find('.chevron-right').css('transform', 'rotate(0deg)')
612       } else {
613         parentLi.addClass("submenu-open")
614         grandchild.slideDown()
615         $(this).find('.chevron-right').css('transform', 'rotate(90deg)')
616       }
617     })
618 
619     $("#menu-hamburger").click(function(e){
620       e.preventDefault()
621       $("body").toggleClass("nav_open")
622     })
623     
624     // Handle close button click
625     $("#nav-close").click(function(e){
626       e.preventDefault()
627       $("body").removeClass("nav_open")
628       // Close all open menus when close button is clicked
629       $(".nav-menu .nav-menu container").removeClass("menu-open")
630       $(".nav-menu .megamenu").slideUp()
631       $(".dropdown-menu .has-submenu").removeClass("submenu-open")
632       $(".dropdown-menu .grandchild").slideUp()
633       $(".dropdown-menu .chevron-right").css('transform', 'rotate(0deg)')
634     })
635   }
636 
637   $(".overlay-nav").click(function(e){
638       e.preventDefault()
639       $("body").removeClass("nav_open")
640       // Close all open menus when overlay is clicked
641       $(".nav-menu .nav-menu container").removeClass("menu-open")
642       $(".nav-menu .megamenu").slideUp()
643       $(".dropdown-menu .has-submenu").removeClass("submenu-open")
644       $(".dropdown-menu .grandchild").slideUp()
645       $(".dropdown-menu .chevron-right").css('transform', 'rotate(0deg)')
646   })
647 </script>
647
648 
649 
650 </div>
651 
652       <div id="shopify-section-search-popup" class="shopify-section m-0"><style>
653   #search-trigger {
654     cursor: pointer;
655   }
656   #search-popup {
657     display: none;
658     position: fixed;
659     left: 0;
660     width: 100%;
661     top: 0;
662     height: 100%;
663     justify-content: center;
664     z-index: 9999;
665     background: rgb(196 196 196 / 30%);
666   }
667   #search-input {
668     align-self: center;
669     width: 100%;
670     height: 80px;
671     position: absolute;
672     top: 0;
673     border-bottom: 0.5px solid #A3A3A3;
674     background-color: #fff;
675   }
676   #search-input * {
677     align-self: center;
678   }
679   #search-type {
680     width: 100%;
681     border: none;
682     padding-right: 20px;
683     padding-left: 20px;
684     font-size: 16px;
685     color: #757575;
686   }
687   #search-btn {
688     font-size: 16px;
689     font-weight: 500;
690   }
691   #search-result {
692     min-height: 490px;
693     width: 100%;
694     padding-top: 80px;
695   }
696   #search-result .container {
697     background-color: #fff;
698     padding: 20px 40px;
699   }
700   body.search-popup-open {
701   /* .search-popup-open */
702     overflow: hidden;
703   }
704   .search-popup-open #loc_delivery {
705     display: none
706   }
707   .search-header svg {
708     display: none;
709     cursor: pointer;
710   }
711   .wrapper-search-popup {
712     max-height: calc(100vh - 150px);
713     overflow-y: auto;
714     overflow-x: hidden;
715   }
716 
717   .group-recommend {
718     padding: 20px 40px;
719   }
720 
721   .resultsearch {
722     display: none;
723   }
724   .results { padding: 20px 40px }
725   .resultsearch label {
726     font-weight: 600;
727     padding-bottom: 20px;
728     display: block;
729     margin-bottom: 20px;
730     border-bottom: 1px solid #AAAAAA;
731   }
732 
733   ul.result_product {
734     max-height: 300px;
735     overflow: auto;
736   }
737 
738   .group-promotion ul {
739     margin: 0;
740   }
741   .group-promotion li {
742     list-style: none;
743     margin-bottom: 12px;
744   }
745   .group-promotion li a {
746     color: inherit;
747   }
748 
749   .group-recent {
750     position: relative;
751     padding: 20px 40px;
752   }
753   .group-recent ul {
754     margin: 0;
755   }
756   .group-recent li {
757     list-style: none;
758     display: inline-block;
759     margin-right: 60px;
760   }
761   .group-recent li a {
762     color: inherit;
763   }
764 
765   .last-search svg {
766     width: 20px;
767     vertical-align: middle;
768   }
769   ul.last-search a {
770     vertical-align: middle;
771     padding: 0 10px;
772   }
773   ul.last-search li span {
774     cursor: pointer;
775   }
776   .delete-all-history {
777     position: absolute;
778     top: 25px;
779     right: 40px;
780     text-decoration: underline;
781     color: #e11d1d;
782     cursor: pointer;
783     font-size: 12px;
784   }
785 
786   form.search.search-modal__form {
787     position: relative;
788   }
789 
790   button.search__button svg {
791     width: 25px;
792     color: #495057;
793     fill: #757582;
794   }
795 
796   button.search__button.field__button {
797     position: absolute;
798     top: 50%;
799     margin-top: -12px;
800   }
801 
802   .close-search {
803     display: none;
804     position: absolute;
805     right: 65px;
806     top: 10px;
807     cursor: pointer;
808   }
809 
810   .site-overlay {
811     position: fixed;
812     top: 0;
813     width: 100vw;
814     height: 100vh;
815     z-index: 1000;
816     background: #0000005c;
817     visibility: hidden;
818     opacity: 0;
819     pointer-events: none;
820     transition: all .3s linear;
821     display: block !important;
822   }
823 
824   .search-popup-open .site-overlay {
825     opacity: 1;
826     visibility: visible;
827     pointer-events: all;
828     z-index: -1;
829     cursor: pointer;
830   }
831 
832   @media (min-width: 991px) {
833     .group-recent ul {
834       column-count: 3;
835     }
836     .group-promotion li a {
837       font-size: 12px;
838       font-weight: 400;
839     }
840     .group-recent li a {
841       font-size: 12px;
842       font-weight: 400;
843     }
844   }
845 
846   .moreresult {
847     padding: 10px 40px;
848     border-top: 1px solid #AAAAAA;
849   }
850   .moreresult * {
851     align-self: center;
852   }
853   .moreresult p {
854     margin: 0;
855     font-size: 12px !important;
856   }
857   .moreresult svg {
858     width: 13px;
859   }
860 
861   @media (max-width: 992px) {
862     .icon-key-mobile {
863         height: auto!important;
864         width: 10px!important;
865     }
866     body.grid-view.search-popup-open .products {
867       -ms-flex: 0 0 100%!important;
868       flex: 0 0 100%!important;
869       max-width: 100%!important;
870     }
871     button.search__button svg {
872       width: 20px;
873     }
874     #search-result {
875       padding-left: 0;
876       padding-right: 0;
877     }
878     #search-result {
879       padding-top: 55px;
880     }
881     #search-input {
882       height: 55px;
883     }
884     .group-recommend {
885       padding: 20px;
886     }
887     #search-input .container {
888       padding: 0 20px;
889     }
890     #search-type {
891       font-size: 14px;
892     }
893     #search-btn {
894       font-size: 12px;
895       text-decoration: underline;
896     }
897     .results {
898       padding: 20px;
899     }
900     .group-recommend h3 {
901       font-size: 16px;
902     }
903     .products .card-body {
904       padding: 8px 0px 10px;
905     }
906     .moreresult {
907       padding: 10px 20px;
908     }
909   }
910 </style>
911  <style type="text/css">
912         div.advertisement-placeholder {
913             text-align: center;
914             padding-bottom: 20px;
915             display: flex;
916             flex-direction: column;
917             justify-content: center;
918         }
919         div.advertisement-text p {
920             margin: 0;
921             font-family: Open Sans;
922             font-style: normal;
923             font-weight: normal;
924             font-size: 10px;
925             line-height: 20px;
926             color: #999999;
927         }
928         div.advertisement-banner {
929             margin: 0px auto;
930         }
931         div#div-gpt-ad-billboard-placeholder {
932             width: 996px;
933             margin: 0 auto;
934             background: #F5F5F5;
935             padding-bottom: unset !important;
936             min-height: 200px;
937         }
938         div#div-gpt-ad-lb-placeholder {
939             background: #F5F5F5;
940             padding-bottom: unset !important;
941             min-height: 280px;
942         }
943         .faq-section{
944             max-width:1200px;
945             margin:50px auto;
946             padding:40px 20px;
947             position:relative;
948             background-color: rgba(0, 0, 0, 0.1);
949             backdrop-filter: blur(25px);
950             border-radius: 20px;
951             }
952         
953         .faq-section::before{
954             content:"";
955             position:absolute;
956             top:0;left:50%;
957             transform:translateX(-50%);
958             width:80%;
959             height:2px;
960             background:linear-gradient(90deg,transparent,#ffa200,transparent)
961             }
962             
963         .faq-section h2{
964             text-align:center;
965             font-size:34px;font-weight:700;
966             margin-bottom:50px;
967             background: linear-gradient(135deg, #ffa200, #ffa200, #ffa200);
968             -webkit-background-clip:text;
969             -webkit-text-fill-color:transparent;
970             background-clip:text;
971             font-family:"Poppins",sans-serif;letter-spacing:1px
972         }
973         
974         .faq-container{
975             display:flex;
976             flex-direction:column;
977             gap:25px
978         }
979         
980         .faq-item{
981             background:linear-gradient(145deg,#0a0a0a,#1a1a1a);
982             border:2px solid #ffa200;
983             border-radius:20px;overflow:hidden;
984             transition:all .4s ease;box-shadow:0 5px 20px rgba(0,0,0,0.5)
985         }
986         
987         .faq-item:hover{
988             border-color:#ffa200;
989             transform:translateX(10px);
990             box-shadow:0 12px 35px rgba(253, 4, 4, 0.25)
991         }
992 
993         .faq-question{width:100%;
994             padding:28px 35px;background:transparent;
995             color:#ffffff;
996             font-size:18px;
997             font-weight:600;
998             text-align:left;
999             border:none;cursor:pointer;
1000             display:flex;
1001             justify-content:space-between;
1002             align-items:center;
1003             font-family:"Poppins",sans-serif;
1004             transition:all .3s ease
1005         }
1006         
1007         .faq-question:hover{
1008             color:#ffa200
1009         }
1010         
1011         .faq-question::after{
1012             content:'+';
1013             font-size:32px;
1014             font-weight:300;
1015             transition:all .4s ease;
1016             color:#ffa200;
1017             width:40px;
1018             height:40px;
1019             display:flex;
1020             align-items:center;
1021             justify-content:center;
1022             border:2px solid #ffa200;border-radius:50%;
1023             background:rgba(0, 0, 0, 0.1)
1024         }
1025         
1026         .faq-item.active .faq-question::after{
1027             transform:rotate(135deg);
1028             background:linear-gradient(135deg,#ffa200,#ffa200);
1029             color:#000;border-color:transparent
1030         }
1031         
1032         .faq-answer{
1033             max-height:0;
1034             overflow:hidden;
1035             transition:max-height .5s ease,padding .5s ease;
1036             background:linear-gradient(180deg,rgba(253,228,4,0.05),transparent);
1037             padding:0 35px
1038         }
1039         
1040         .faq-item.active .faq-answer{
1041             max-height:800px;padding:30px 35px;
1042             border-top:1px solid rgba(253, 4, 4, 0.3)
1043         }
1044         
1045         .faq-answer p{
1046             color:#e0e0e0;
1047             font-size:16px;
1048             line-height:2;
1049             margin:0;
1050             font-family:"Poppins",sans-serif
1051         }
1052 
1053         @media
1054             (max-width:768px)
1055         {
1056         
1057         .faq-section
1058             {padding:30px 15px}
1059         
1060         .faq-section h2
1061             {font-size:26px}
1062         
1063         .faq-question
1064             {font-size:16px;
1065             padding:22px 25px}
1066         
1067         .faq-question::after
1068             {width:35px;
1069             height:35px;
1070             font-size:28px}
1071         
1072         .faq-answer
1073             {padding:0 25px}
1074         
1075         .faq-item.active .faq-answer
1076             {padding:25px}
1077         
1078         .faq-item:hover
1079             {transform:translateX(5px)}
1080             }
1081     </style>
1082 <div id="search-popup">
1083   <div id="search-input" class="row">
1084     <div class="container w-100">
1085       <form
1086         action="/search"
1087         method="get"
1088         role="search"
1089         class="search search-modal__form d-flex justify-content-between"
1090       >
1091         <svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="20" height="20" viewBox="0 0 20 20" fill="none">
1092   <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"/>
1093 </svg>
1094 
1095         <input type="hidden" name="type" value="product">
1096         <input
1097           type="text"
1098           id="search-type"
1099           name="q"
1100           class="search-popup"
1101           placeholder="Gifts that linger: Uncover treasures for cherished moments."
1102         >
1103         <div class="close-search"><svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="18" height="18" viewBox="0 0 18 18" fill="none">
1104   <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 
110412.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"/>
1105 </svg>
1106 </div>
1107         <button id="search-btn">Search</button>
1108       </form>
1109     </div>
1110   </div>
1111   <div id="search-result" class="container m-auto">
1112     <div class="container p-0">
1113       <div class="group-promotion">
1114         <div class="resultsearch">
1115           <div class="row results">
1116             <div class="col-12 col-lg-6 mb-3 mb-lg-0">
1117               <label>SUGGESTIONS</label>
1118               <ul class="result_collection"></ul>
1119             </div>
1120             <div class="col-12 col-lg-6">
1121               <label>PRODUCTS</label>
1122               <ul class="result_product"></ul>
1123             </div>
1124           </div>
1125           <div class="d-flex justify-content-between moreresult m-0">
1126             <p>Search for<span></span></p>
1127             <svg version="1.1" xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="32" height="32" viewBox="0 0 32 32">
1128 <title>icon-arrow-right</title>
1129 <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>
1130 </svg>
1131           </div>
1132         </div>
1133       </div>
1134       <div class="group-recent hide">
1135         <h3>RECENT SEARCH</h3>
1136         <span class="delete-all-history">Hapus riwayat</span>
1137         <ul class="last-search"></ul>
1138       </div>
1139       <div class="group-recommend">
1140         <h3>YOU MAY ALSO LIKE</h3>
1141         
1142         
1143           <div class="row popup-recommend c-products-grid infinite-case product-multi-">
1144             <div class="swiper-wrapper justify-content-between" style="margin-left:1px;">
1145               
1146                 
1147                   <div class="swiper-slide card">
1148                     
1149 
1150 
1151 
1152 <div class="products" data-lazy="false">
1153   <div class="bg-products">
1154     <div class="wishlist-toggle" data-product-handle="mid-autumn-of-love-mooncake">
1155       <svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="24" height="21" viewBox="0 0 24 21" fill="none">
1156   <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.
115611233C11.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"/>
1157 </svg>
1158 
1159     </div>
1160     <a href="/products/mid-autumn-of-love-mooncake">
1161       
1162       <div class="product-card-img-container p-0 position-relative">
1163         
1164         <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">
1165       </div>
1166       <div class="card-body product-card-info">
1167         <h5 class="h5 mb-0">
1168           Mid Autumn of Love Mooncake
1169         </h5>
1170         <div class="product-card-price">
1171           
1172           <div class="product-price-sale">
1173             <s class="product-card-price-before card-money">Rp 588.000</s>
1174             <span class="product-card-discount small">	
1175               (-40%)
1176             </span> 	
1177           </div>
1178           
1179           
1180           
1181           <div class="price-discount">
1182             <h4 class="product-card-price-after card-money">Rp 348.000</h4>
1183           </div>
1184           
1185           
1186           
1187           
1188           
1189         </div>
1190         
1191       </div>
1192     </a>
1193   </div>
1194   
1195 </div>
1196 
1197                   </div>
1198                 
1199               
1200                 
1201                   <div class="swiper-slide card">
1202                     
1203 
1204 
1205 
1206 <div class="products" data-lazy="false">
1207   <div class="bg-products">
1208     <div class="wishlist-toggle" data-product-handle="mid-autumn-of-joy-mooncake">
1209       <svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="24" height="21" viewBox="0 0 24 21" fill="none">
1210   <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.
121011233C11.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"/>
1211 </svg>
1212 
1213     </div>
1214     <a href="/products/mid-autumn-of-joy-mooncake">
1215       
1216       <div class="product-card-img-container p-0 position-relative">
1217         
1218         <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">
1219       </div>
1220       <div class="card-body product-card-info">
1221         <h5 class="h5 mb-0">
1222           Mid Autumn of Joy Mooncake
1223         </h5>
1224         <div class="product-card-price">
1225           
1226           <div class="product-price-sale">
1227             <s class="product-card-price-before card-money">Rp 888.000</s>
1228             <span class="product-card-discount small">	
1229               (-33%)
1230             </span> 	
1231           </div>
1232           
1233           
1234           
1235           <div class="price-discount">
1236             <h4 class="product-card-price-after card-money">Rp 588.000</h4>
1237           </div>
1238           
1239           
1240           
1241           
1242           
1243         </div>
1244         
1245       </div>
1246     </a>
1247   </div>
1248   
1249 </div>
1250 
1251                   </div>
1252                 
1253               
1254                 
1255                   <div class="swiper-slide card">
1256                     
1257 
1258 
1259 
1260 <div class="products" data-lazy="false">
1261   <div class="bg-products">
1262     <div class="wishlist-toggle" data-product-handle="mid-autumn-of-fortune-mooncake">
1263       <svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="24" height="21" viewBox="0 0 24 21" fill="none">
1264   <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.
126411233C11.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"/>
1265 </svg>
1266 
1267     </div>
1268     <a href="/products/mid-autumn-of-fortune-mooncake">
1269       
1270       <div class="product-card-img-container p-0 position-relative">
1271         
1272         <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">
1273       </div>
1274       <div class="card-body product-card-info">
1275         <h5 class="h5 mb-0">
1276           Mid Autumn of Fortune Mooncake
1277         </h5>
1278         <div class="product-card-price">
1279           
1280           <div class="product-price-sale">
1281             <s class="product-card-price-before card-money">Rp 1.188.000</s>
1282             <span class="product-card-discount small">	
1283               (-33%)
1284             </span> 	
1285           </div>
1286           
1287           
1288           
1289           <div class="price-discount">
1290             <h4 class="product-card-price-after card-money">Rp 788.000</h4>
1291           </div>
1292           
1293           
1294           
1295           
1296           
1297         </div>
1298         
1299       </div>
1300     </a>
1301   </div>
1302   
1303 </div>
1304 
1305                   </div>
1306                 
1307               
1308                 
1309                   <div class="swiper-slide card">
1310                     
1311 
1312 
1313 
1314 <div class="products" data-lazy="false">
1315   <div class="bg-products">
1316     <div class="wishlist-toggle" data-product-handle="mid-autumn-festival-mooncake">
1317       <svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="24" height="21" viewBox="0 0 24 21" fill="none">
1318   <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.
131811233C11.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"/>
1319 </svg>
1320 
1321     </div>
1322     <a href="/products/mid-autumn-festival-mooncake">
1323       
1324       <div class="product-card-img-container p-0 position-relative">
1325         
1326         <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">
1327       </div>
1328       <div class="card-body product-card-info">
1329         <h5 class="h5 mb-0">
1330           Mid Autumn Festival Mooncake
1331         </h5>
1332         <div class="product-card-price">
1333           
1334           <div class="product-price-sale">
1335             <s class="product-card-price-before card-money">Rp 1.288.000</s>
1336             <span class="product-card-discount small">	
1337               (-23%)
1338             </span> 	
1339           </div>
1340           
1341           
1342           
1343           <div class="price-discount">
1344             <h4 class="product-card-price-after card-money">Rp 988.000</h4>
1345           </div>
1346           
1347           
1348           
1349           
1350           
1351         </div>
1352         
1353       </div>
1354     </a>
1355   </div>
1356   
1357 </div>
1358 
1359                   </div>
1360                 
1361               
1362                 
1363                   <div class="swiper-slide card">
1364                     
1365 
1366 
1367 
1368 <div class="products" data-lazy="false">
1369   <div class="bg-products">
1370     <div class="wishlist-toggle" data-product-handle="the-jade-bouquet">
1371       <svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="24" height="21" viewBox="0 0 24 21" fill="none">
1372   <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.
137211233C11.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"/>
1373 </svg>
1374 
1375     </div>
1376     <a href="/products/the-jade-bouquet">
1377       
1378       <div class="product-card-img-container p-0 position-relative">
1379         
1380         <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">
1381       </div>
1382       <div class="card-body product-card-info">
1383         <h5 class="h5 mb-0">
1384           The Jade Bouquet
1385         </h5>
1386         <div class="product-card-price">
1387           
1388           <div class="product-price-sale">
1389             <s class="product-card-price-before card-money">Rp 435.000</s>
1390             <span class="product-card-discount small">	
1391               (-34%)
1392             </span> 	
1393           </div>
1394           
1395           
1396           
1397           <div class="price-discount">
1398             <h4 class="product-card-price-after card-money">Rp 285.000</h4>
1399           </div>
1400           
1401           
1402           
1403           
1404           
1405         </div>
1406         
1407       </div>
1408     </a>
1409   </div>
1410   
1411 </div>
1412 
1413                   </div>
1414                 
1415               
1416                 
1417                   <div class="swiper-slide card">
1418                     
1419 
1420 
1421 
1422 <div class="products" data-lazy="false">
1423   <div class="bg-products">
1424     <div class="wishlist-toggle" data-product-handle="the-selena-bouquet">
1425       <svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="24" height="21" viewBox="0 0 24 21" fill="none">
1426   <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.
142611233C11.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"/>
1427 </svg>
1428 
1429     </div>
1430     <a href="/products/the-selena-bouquet">
1431       
1432       <div class="product-card-img-container p-0 position-relative">
1433         
1434         <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">
1435       </div>
1436       <div class="card-body product-card-info">
1437         <h5 class="h5 mb-0">
1438           The Selena Bouquet
1439         </h5>
1440         <div class="product-card-price">
1441           
1442           <div class="product-price-sale">
1443             <s class="product-card-price-before card-money">Rp 335.000</s>
1444             <span class="product-card-discount small">	
1445               (-29%)
1446             </span> 	
1447           </div>
1448           
1449           
1450           
1451           <div class="price-discount">
1452             <h4 class="product-card-price-after card-money">Rp 235.000</h4>
1453           </div>
1454           
1455           
1456           
1457           
1458           
1459         </div>
1460         
1461       </div>
1462     </a>
1463   </div>
1464   
1465 </div>
1466 
1467                   </div>
1468                 
1469               
1470                 
1471                   <div class="swiper-slide card">
1472                     
1473 
1474 
1475 
1476 <div class="products" data-lazy="false">
1477   <div class="bg-products">
1478     <div class="wishlist-toggle" data-product-handle="the-viola-bouquet">
1479       <svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="24" height="21" viewBox="0 0 24 21" fill="none">
1480   <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.
148011233C11.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"/>
1481 </svg>
1482 
1483     </div>
1484     <a href="/products/the-viola-bouquet">
1485       
1486       <div class="product-card-img-container p-0 position-relative">
1487         
1488         <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">
1489       </div>
1490       <div class="card-body product-card-info">
1491         <h5 class="h5 mb-0">
1492           The Viola Bouquet
1493         </h5>
1494         <div class="product-card-price">
1495           
1496           <div class="product-price-sale">
1497             <s class="product-card-price-before card-money">Rp 385.000</s>
1498             <span class="product-card-discount small">	
1499               (-25%)
1500             </span> 	
1501           </div>
1502           
1503           
1504           
1505           <div class="price-discount">
1506             <h4 class="product-card-price-after card-money">Rp 285.000</h4>
1507           </div>
1508           
1509           
1510           
1511           
1512           
1513         </div>
1514         
1515       </div>
1516     </a>
1517   </div>
1518   
1519 </div>
1520 
1521                   </div>
1522                 
1523               
1524                 
1525                   <div class="swiper-slide card">
1526                     
1527 
1528 
1529 
1530 <div class="products" data-lazy="false">
1531   <div class="bg-products">
1532     <div class="wishlist-toggle" data-product-handle="the-minerva-bouquet">
1533       <svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="24" height="21" viewBox="0 0 24 21" fill="none">
1534   <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.
153411233C11.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"/>
1535 </svg>
1536 
1537     </div>
1538     <a href="/products/the-minerva-bouquet">
1539       
1540       <div class="product-card-img-container p-0 position-relative">
1541         
1542         <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">
1543       </div>
1544       <div class="card-body product-card-info">
1545         <h5 class="h5 mb-0">
1546           The Minerva Bouquet
1547         </h5>
1548         <div class="product-card-price">
1549           
1550           <div class="product-price-sale">
1551             <s class="product-card-price-before card-money">Rp 385.000</s>
1552             <span class="product-card-discount small">	
1553               (-25%)
1554             </span> 	
1555           </div>
1556           
1557           
1558           
1559           <div class="price-discount">
1560             <h4 class="product-card-price-after card-money">Rp 285.000</h4>
1561           </div>
1562           
1563           
1564           
1565           
1566           
1567         </div>
1568         
1569       </div>
1570     </a>
1571   </div>
1572   
1573 </div>
1574 
1575                   </div>
1576                 
1577               
1578                 
1579                   <div class="swiper-slide card">
1580                     
1581 
1582 
1583 
1584 <div class="products" data-lazy="false">
1585   <div class="bg-products">
1586     <div class="wishlist-toggle" data-product-handle="congraduations-bouquet">
1587       <svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="24" height="21" viewBox="0 0 24 21" fill="none">
1588   <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.
158811233C11.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"/>
1589 </svg>
1590 
1591     </div>
1592     <a href="/products/congraduations-bouquet">
1593       
1594       <div class="product-card-img-container p-0 position-relative">
1595         
1596         <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">
1597       </div>
1598       <div class="card-body product-card-info">
1599         <h5 class="h5 mb-0">
1600           Congraduations Bouquet
1601         </h5>
1602         <div class="product-card-price">
1603           
1604           <div class="product-price-sale">
1605             <s class="product-card-price-before card-money">Rp 380.000</s>
1606             <span class="product-card-discount small">	
1607               (-25%)
1608             </span> 	
1609           </div>
1610           
1611           
1612           
1613           <div class="price-discount">
1614             <h4 class="product-card-price-after card-money">Rp 285.000</h4>
1615           </div>
1616           
1617           
1618           
1619           
1620           
1621         </div>
1622         
1623       </div>
1624     </a>
1625   </div>
1626   
1627 </div>
1628 
1629                   </div>
1630                 
1631               
1632                 
1633                   <div class="swiper-slide card">
1634                     
1635 
1636 
1637 
1638 <div class="products" data-lazy="false">
1639   <div class="bg-products">
1640     <div class="wishlist-toggle" data-product-handle="grad-gorgeous-bouquet">
1641       <svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="24" height="21" viewBox="0 0 24 21" fill="none">
1642   <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.
164211233C11.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"/>
1643 </svg>
1644 
1645     </div>
1646     <a href="/products/grad-gorgeous-bouquet">
1647       
1648       <div class="product-card-img-container p-0 position-relative">
1649         
1650         <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">
1651       </div>
1652       <div class="card-body product-card-info">
1653         <h5 class="h5 mb-0">
1654           Grad & Gorgeous Bouquet
1655         </h5>
1656         <div class="product-card-price">
1657           
1658           <div class="product-price-sale">
1659             <s class="product-card-price-before card-money">Rp 380.000</s>
1660             <span class="product-card-discount small">	
1661               (-25%)
1662             </span> 	
1663           </div>
1664           
1665           
1666           
1667           <div class="price-discount">
1668             <h4 class="product-card-price-after card-money">Rp 285.000</h4>
1669           </div>
1670           
1671           
1672           
1673           
1674           
1675         </div>
1676         
1677       </div>
1678     </a>
1679   </div>
1680   
1681 </div>
1682 
1683                   </div>
1684                 
1685               
1686             </div>
1687           </div>
1688         
1689       </div>
1690     </div>
1691   </div>
1692 
1693   <div class="site-overlay" style="display: none"></div>
1694 </div>
1695 
1695<script>
1696   
1697   var swiper = new Swiper('.popup-recommend', {
1698       slidesPerView : 4, 
1699       spaceBetween: 30,
1700       lazy: true ,                            
1701       speed: 300,
1702       breakpoints: {
1703         // when window width is <= 576px
1704         576: {
1705             slidesPerView: 2,
1706               spaceBetween: 10,
1707             freeMode: true,
1708             resistance : true,
1709             resistanceRatio : 0,
1710             freeModeMomentumRatio : 0.45,
1711             freeModeMomentumVelocityRatio : 1.5
1712         },
1713         768: {
1714               slidesPerView: 2,
1715               spaceBetween: 10
1716             },
1717         992: {
1718               slidesPerView: 3,
1719               spaceBetween: 20
1720         }
1721       }
1722   });
1723 
1724   const searchContainer = $("#search-popup")
1725   const searchInput = $(".search-popup")
1726   const result_collection = $('.result_collection')
1727   const result_product = $('.result_product')
1728   const resultsearch = $('.resultsearch')
1729   const resultrecommend = $(".group-recommend")
1730   const moreresult = $(".moreresult")
1731 
1732   searchInput.keyup(function(){
1733     const input = $(this).val()
1734     moreresult.find("p span").text(` “${input}”`)
1735     if(input.length > 2) {
1736       $(".close-search").show()
1737       const url = `https://outerbloom.com/search/suggest.json?resources[limit]=10&resources[limit_scope]=each&resources[type]=collection,product&q=${input}`
1738       $.ajax({
1739         type: 'GET',
1740         url,
1741         beforeSend: function() {
1742             // setting a timeout
1743             // $(placeholder).addClass('loading');
1744         },
1745         success: function(response) {
1746             resultsearch.show()
1747             resultrecommend.hide()
1748             result_collection.html("")
1749             result_product.html("")
1750             const collections = response.resources.results.collections
1751             const products = response.resources.results.products
1752             let collection_length = collections.length
1753             let product_length = products.length
1754             // if(collections.length > 5) {
1755             //   collection_length = 5
1756             // }
1757             // if(products.length > 5) {
1758             //   product_length = 5
1759             // }
1760             for(let i=0;i<collection_length;i++){
1761               const title = collections[i].title
1762               const url = collections[i].url
1763               let html_collection
1764               if(!title.includes('AIA') && !title.includes('AXA') && !title.includes('WOM') && !title.includes('Upsell')) {
1765                 html_collection = `
1766                 <li class="item" data-title="${title}">
1767                   <a href="${url}" data-type="collection" class="item_url" data-title="${title}" data-url="${url}">${title}</a>
1768                 </li>
1769                 `
1770               }
1771               result_collection.append(html_collection)
1772             }
1773             for(let i=0;i<product_length;i++){
1774               const title = products[i].title
1775               const url = products[i].url
1776               const image = products[i].featured_image.url
1777               const vendor = products[i].vendor
1778               let html_product
1779               if(vendor !== 'AIA' && vendor !== 'AXA' && vendor !== 'WOM Finance' && !title.includes('Extra Shipping Cost') && !title.includes('[US]') && !title.includes('Rp')){
1780                 html_product = `
1781                 <li class="item" data-vendor="${vendor}">
1782                   <a href="${url}" class="item_url" data-type="product" data-title="${title}" data-url="${url}">
1783                     <img src="${image}" alt="${title}" style="width: 70px;vertical-align: middle;margin-right: 20px;"><span>${title}</span>
1784                   </a>
1785                 </li>
1786                 `
1787               }
1788               result_product.append(html_product)
1789             }
1790         },
1791         error: function(xhr) { // if error occured
1792             alert("Error occured.please try again");
1793         },
1794         complete: function(response) {
1795             // $(placeholder).removeClass('loading');
1796         },
1797         dataType: 'JSON'
1798       });
1799     } else {
1800       result_collection.html("")
1801       result_product.html("")
1802       
1803       resultsearch.hide()
1804       resultrecommend.show()
1805     }
1806   })
1807 
1808   moreresult.click(function(){
1809     $("#search-btn").trigger("click");
1810   })
1811 
1812   $(".close-search").click(function(){
1813     $(this).hide()
1814     searchInput.val("")
1815     searchInput.focus()
1816     resultsearch.hide()
1817     resultrecommend.show()
1818   })
1819 
1820   function setCookie(name,value,days) {
1821     var expires = "";
1822     if (days) {
1823       var date = new Date();
1824       date.setTime(date.getTime() + (days*24*60*60*1000));
1825       expires = "; expires=" + date.toUTCString();
1826     }
1827     document.cookie = name + "=" + (value || "")  + expires + "; path=/";
1828   }
1829   function getCookie(name) {
1830     var nameEQ = name + "=";
1831     var ca = document.cookie.split(';');
1832     for(var i=0;i < ca.length;i++) {
1833       var c = ca[i];
1834       while (c.charAt(0)==' ') c = c.substring(1,c.length);
1835       if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
1836     }
1837     return null;
1838   }
1839   let last_search_name = []
1840   let last_search_url = []
1841   $(".group-recent").hide()
1842   if(getCookie("last_search_name") != null && getCookie("last_search_url") != null){
1843     if(getCookie("last_search_name") != "" && getCookie("last_search_url") != ""){
1844       $(".group-recent").show()
1845       last_search_name = getCookie("last_search_name");
1846       last_search_url = getCookie("last_search_url");
1847       const arrName = last_search_name.substring(1).split(',').reverse()
1848       const arrUrl = last_search_url.substring(1).split(',').reverse()
1849       console.log(arrName, 'Array Name')
1850       console.log(arrUrl, 'Array Url')
1851       let length = arrName.length
1852       if(arrName.length > 5) {
1853         length = 5
1854       }
1855       for(let n=0;n<length;n++){
1856         let html2 = `<li><svg viewBox="0 0 24 24" xmlns="https://hokiku.io/images/2025/02/10/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]}">${arrName[n]}</a><span data-title="${arrName[n]}" data-url="${arrUrl[n]}"></span></li>`
1857         $(".group-recent ul").append(html2)
1858       }
1859     }
1860   }
1861   console.log(last_search_name, 'Name')
1862   console.log(last_search_url, 'url')
1863   
1864   resultsearch.delegate(".item a", "click", function(){
1865     let name = [last_search_name]
1866     let url = [last_search_url]
1867     name.push($(this).attr('data-title'))
1868     url.push($(this).attr('data-url'))
1869     setCookie("last_search_name",name,7);
1870     setCookie("last_search_url",url,7);
1871   })
1872   
1873   $(".delete-all-history").click(function() {
1874     setCookie("last_search_name",null,0);
1875     setCookie("last_search_url",null,0);
1876     $(".last-search").hide();
1877     setTimeout(function(){
1878       location.reload();
1879     }, 500);
1880   })
1881   
1882   $("#search-trigger").click(function(){
1883     search_open()
1884   })
1885   $(".icon-search-mobile").click(function(){
1886     search_open()
1887   })
1888   $(".search-header svg").click(function(){
1889     search_close()
1890   })
1891   $(".icon-key-mobile").click(function(){
1892     search_close()
1893   })
1894 
1895   function search_open() {
1896     $("body").addClass("search-popup-open")
1897     $("#nav-mobile-icon, .search-header label, .icon-search-mobile").hide()
1898     $("#search-popup, .search-header svg, .icon-key-mobile").show()
1899     $(".search-popup").focus()
1900     $('.popup-recommend')[0].swiper.update();
1901   }
1902   function search_close() {
1903     $("body").removeClass("search-popup-open")
1904     $("#nav-mobile-icon, .search-header label, .icon-search-mobile").show()
1905     $("#search-popup, .search-header svg, .icon-key-mobile").hide()
1906     searchInput.val("")
1907     resultsearch.hide()
1908     resultrecommend.show()
1909   }
1910 
1911   $(".site-overlay").click(function(){
1912     search_close()
1913   })
1914 </script>
1914
1915 
1916 </div>
1917     </div>
1918 
1919     <div id="PageContainer" class="is-moved-by-drawerx" style="background-color: #000000;">
1920       <main class="main-content pt-0" role="main">
1921         
1922           <div id="breadcrumbProduct" class="d-none d-lg-block">
1923             <style>
1924   #breadcrumbProduct {
1925     padding: 20px 0;
1926   }
1927   #breadcrumbProduct ul {
1928       display: flex;
1929       padding: 0;
1930       list-style: none;
1931       margin: 0;
1932       gap: 12px;
1933   }
1934   #breadcrumbProduct ul li {
1935     text-transform: uppercase;
1936     margin: 0;
1937     font-size: 12px;
1938 }
1939   #breadcrumbProduct ul li a {
1940     color: #757575;
1941   }
1942 
1943   #breadcrumbProduct ul li svg {
1944     width: 10px;
1945     height: 10px;
1946     padding: 0;
1947     color: #757575;
1948     vertical-align: middle;
1949   }
1950 </style>
1951 <div class="container" style="color: #ffa200;">
1952   <ul role="navigation" aria-label="breadcrumbs">
1953     <li><a href="https://basket168what.com/" style="color: #ffa200;">BASKET168</a></li>
1954     <li><svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="7" height="10" viewBox="0 0 7 10" fill="none">
1955     <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"/>
1956 </svg></li>
1957       <li>BASKET168 DAFTAR</li>
1958       <li>BASKET168 LOGIN</li>
1959       <li>BASKET168 SLOT</li>
1960       <li>BASKET168 LINK ALTERNATIF</li>
1961     
1962   </ul>
1963 </div>
1964 
1965           </div>
1966         
1967 
1967<script type="application/ld+json">
1968 {
1969   "@context": "https://schema.org",
1970   "@type": "Product",
1971   "name": "BASKET168: Portal Login Slot Eksklusif Game Gacor Online Lengkap Bonus Harian",
1972   "image": "https://hokiku.io/images/2026/07/17/BASKET168-Portal-Login-Slot-Eksklusif-Game-Gacor-Online-Lengkap-Bonus-Harian.jpeg",
1973   "description": "Basket168 Adalah portal login slot eksklusif dengan kemudahan akses di banyak game online gacor paling lengkap keamanan berstandar tinggi serta bonus harian setiap hari.",
1974   "brand": {
1975     "@type": "Brand",
1976     "name": "BASKET168"
1977   },
1978   "sku": "BASKET168",
1979   "mpn": "BASKET168",
1980   "url": "https://basket168what.com/",
1981   "offers": {
1982     "@type": "Offer",
1983     "url": "https://basket168what.com/",
1984     "priceCurrency": "USD",
1985     "price": "10.00",
1986     "priceValidUntil": "2025-12-25",
1987     "itemCondition": "https://schema.org/NewCondition",
1988     "availability": "https://schema.org/InStock",
1989     "seller": {
1990       "@type": "Organization",
1991       "name": "BASKET168"
1992     }
1993   },
1994   "aggregateRating": {
1995     "@type": "AggregateRating",
1996     "ratingValue": "5.0",
1997     "reviewCount": 858
1998   },
1999   "review": [
2000     {
2001       "@type": "Review",
2002       "reviewRating": {
2003         "@type": "Rating",
2004         "ratingValue": "5",
2005         "bestRating": "5"
2006       },
2007       "author": {
2008         "@type": "Person",
2009         "name": "Hanabi"
2010       }
2011     },
2012     {
2013       "@type": "Review",
2014       "reviewRating": {
2015         "@type": "Rating",
2016         "ratingValue": "5",
2017         "bestRating": "5"
2018       },
2019       "author": {
2020         "@type": "Person",
2021         "name": "Hayabusa"
2022       }
2023     }
2024   ]
2025 }
2026 </script>
2026<script type="application/ld+json">
2027 {
2028   "@context": "https://schema.org",
2029   "@type": "BreadcrumbList",
2030   "itemListElement": [
2031     {
2032       "@type": "ListItem",
2033       "position": 1,
2034       "name": "BASKET168",
2035       "item": "https://basket168what.com/"
2036     },
2037     {
2038       "@type": "ListItem",
2039       "position": 2,
2040       "name": "BASKET168 DAFTAR",
2041       "item": "https://basket168what.com/"
2042     },
2043     {
2044       "@type": "ListItem",
2045       "position": 3,
2046       "name": "BASKET168 LOGIN",
2047       "item": "https://basket168what.com/"
2048     },
2049     {
2050       "@type": "ListItem",
2051       "position": 4,
2052       "name": "BASKET168 SLOT",
2053       "item": "https://basket168what.com/"
2054     },
2055     {
2056       "@type": "ListItem",
2057       "position": 5,
2058       "name": "BASKET168 LINK",
2059       "item": "https://basket168what.com/"
2060     },
2061     {
2062       "@type": "ListItem",
2063       "position": 6,
2064       "name": "BASKET168 SLOT LOGIN",
2065       "item": "https://basket168what.com/"
2066     },
2067     {
2068       "@type": "ListItem",
2069       "position": 7,
2070       "name": "BASKET168 LINK ALTERNATIF",
2071       "item": "https://basket168what.com/"
2072     },
2073     {
2074       "@type": "ListItem",
2075       "position": 8,
2076       "name": "BASKET168: Portal Login Slot Eksklusif Game Gacor Online Lengkap Bonus Harian",
2077       "item": "https://basket168what.com/"
2078     }
2079   ]
2080 }
2081 </script>
2081
2082
2083 <!--faq-->
2084
2085 
2085<script type="application/ld+json" id="faq-schema">
2086{
2087  "@context": "https://schema.org",
2088  "@type": "FAQPage",
2089  "mainEntity": [
2090    {
2091      "@type": "Question",
2092      "name": "1. Apa yang membuat BASKET168 disebut portal login slot eksklusif?",
2093      "acceptedAnswer": {
2094        "@type": "Answer",
2095        "text": "BASKET168 menghadirkan pintu masuk khusus ke koleksi slot eksklusif dari puluhan provider internasional terkemuka, dilengkapi antarmuka premium yang intuitif dan sistem keamanan berlapis untuk memproteksi setiap akun member."
2096      }
2097    },
2098    {
2099      "@type": "Question",
2100      "name": "2. Bagaimana cara mengetahui game gacor yang tersedia di BASKET168?",
2101      "acceptedAnswer": {
2102        "@type": "Answer",
2103        "text": "BASKET168 menyediakan halaman khusus yang menampilkan daftar game gacor terupdate berdasarkan nilai RTP tertinggi dan performa kemenangan terkini, sehingga member bisa langsung memilih slot dengan peluang terbaik setiap harinya."
2104      }
2105    },
2106    {
2107      "@type": "Question",
2108      "name": "3. Apa saja jenis bonus harian yang bisa diklaim di BASKET168?",
2109      "acceptedAnswer": {
2110        "@type": "Answer",
2111        "text": "Member aktif BASKET168 berhak atas berbagai bonus harian seperti cashback kekalahan, reload deposit, dan reward spin gratis yang dikreditkan secara otomatis ke akun tanpa perlu klaim manual yang merepotkan."
2112      }
2113    },
2114    {
2115      "@type": "Question",
2116      "name": "4. Seberapa lengkap koleksi game online yang tersedia di portal ini?",
2117      "acceptedAnswer": {
2118        "@type": "Answer",
2119        "text": "Sangat lengkap. BASKET168 mengumpulkan ribuan judul permainan mulai dari slot klasik, video slot modern, live casino, hingga sports betting semuanya tersaji dalam satu portal tanpa perlu berpindah platform."
2120      }
2121    },
2122    {
2123      "@type": "Question",
2124      "name": "5. Apakah transaksi deposit dan withdraw di BASKET168 terjamin kecepatannya?",
2125      "acceptedAnswer": {
2126        "@type": "Answer",
2127        "text": "Dijamin. Sistem pembayaran BASKET168 telah terintegrasi dengan berbagai metode transfer lokal dan dompet digital, memastikan proses deposit instan dan pencairan dana yang cepat tanpa potongan tersembunyi."
2128      }
2129    }
2130  ]
2131}
2132</script>
2132
2133 
2133<script type="application/ld+json">
2134 {
2135   "@context": "https://schema.org",
2136   "@type": "Organization",
2137   "name": "BASKET168",
2138   "url": "https://basket168what.com/",
2139   "logo": "https://hokiku.io/images/2025/02/10/logo.png",
2140   "sameAs": [
2141     "https://www.facebook.com/BASKET168",
2142     "https://twitter.com/BASKET168",
2143     "https://www.instagram.com/BASKET168"
2144   ],
2145   "contactPoint": {
2146     "@type": "ContactPoint",
2147     "telephone": "+62-8946-113-4615",
2148     "contactType": "customer support",
2149     "areaServed": "ID",
2150     "availableLanguage": ["Indonesian", "English"]
2151   }
2152 }
2153 </script>
2153
2154 
2155 
2155<script type="application/ld+json">
2156 {
2157   "@context": "https://schema.org",
2158   "@type": "VideoObject",
2159   "name": "BASKET168: Portal Login Slot Eksklusif Game Gacor Online Lengkap Bonus Harian",
2160   "description": "Basket168 Adalah portal login slot eksklusif dengan kemudahan akses di banyak game online gacor paling lengkap keamanan berstandar tinggi serta bonus harian setiap hari.",
2161   "thumbnailUrl": [
2162     "https://hokiku.io/images/2026/07/17/BASKET168-Portal-Login-Slot-Eksklusif-Game-Gacor-Online-Lengkap-Bonus-Harian.jpeg",
2163     "https://hokiku.io/images/2026/07/17/BASKET168-Portal-Login-Slot-Eksklusif-Game-Gacor-Online-Lengkap-Bonus-Harian.jpeg"
2164   ],
2165   "uploadDate": "2025-09-28T04:19:10-04:00",
2166   "duration": "PT168",
2167   "contentUrl": "https://basket168what.com/"
2168 }
2169 </script>
2169
2170 
2171 
2171<script type="application/ld+json">
2172 {
2173   "@context": "https://schema.org",
2174   "@type": "BreadcrumbList",
2175   "itemListElement": [
2176     {
2177       "@type": "ListItem",
2178       "position": 1,
2179       "name": "Home",
2180       "item": "https://basket168what.com/"
2181     }
2182   ]
2183 }
2184 </script>
2184
2185 
2186 
2186<script type="application/ld+json">
2187 {
2188   "@context": "https://schema.org",
2189   "@graph": [
2190     {
2191       "@type": "Organization",
2192       "@id": "https://basket168what.com/#org",
2193       "name": "BASKET168",
2194       "url": "https://basket168what.com/",
2195       "logo": "https://hokiku.io/images/2026/07/17/BASKET168-Portal-Login-Slot-Eksklusif-Game-Gacor-Online-Lengkap-Bonus-Harian.jpeg"
2196     },
2197     {
2198       "@type": "WebSite",
2199       "@id": "https://basket168what.com/#website",
2200       "url": "https://basket168what.com/",
2201       "name": "BASKET168",
2202       "publisher": { "@id": "https://basket168what.com/#org" },
2203       "inLanguage": "id-ID",
2204       "potentialAction": {
2205         "@type": "SearchAction",
2206         "target": "https://basket168what.com/?s={search_term_string}",
2207         "query-input": "required name=search_term_string"
2208       }
2209     },
2210     {
2211       "@type": "SoftwareApplication",
2212       "@id": "https://basket168what.com/#app",
2213       "name": "BASKET168",
2214       "applicationCategory": "GameApplication",
2215       "operatingSystem": "Android, iOS, Windows",
2216       "offers": { "@type": "Offer", "price": "0", "priceCurrency": "IDR" },
2217       "aggregateRating": { "@type": "AggregateRating", "ratingValue": 4.9, "ratingCount": 62595 }
2218     }
2219   ]
2220 }
2221 </script>
2221
2222         
2223 <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" />
2224 
2225 
2226 <style>
2227     .bg-card {
2228     background-color: #000000;
2229 }
2230     </style>
2231 
2232 <!-- /templates/product.liquid -->
2233 
2234 
2235 <!-- <div itemscope itemtype="http://schema.org/Product"> -->
2236 
2237 
2238 <div class="product-standing-flower" data-product-type="flowerBoard">
2239   <meta itemprop="url" content="https://basket168what.com/">
2240   <meta itemprop="image" content="https://hokiku.io/images/2026/07/17/BASKET168-Portal-Login-Slot-Eksklusif-Game-Gacor-Online-Lengkap-Bonus-Harian.jpeg">
2241 
2242   
2243   
2244   <input id="data-sku" type="hidden" value="OBVSTF1086">
2245   <div class="product-single" style="background-image: url(https://hokiku.io/images/2026/07/17/BASKET168-Portal-Login-Slot-Eksklusif-Game-Gacor-Online-Lengkap-Bonus-Harian.jpeg); background-attachment: fixed;">
2246     <div id="product-top" class="container">
2247       <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;">
2248         <div id="product-image" class="col-lg-7 text-center">
2249           <div class="product-image">
2250             <div class="row no-gutters">
2251   
2252   <div id="product-featured-image" class="row w-100">
2253     
2254       <div id="thumb-image-product" class="col-lg-2 col-12 d-none d-lg-block">
2255         
2256         <div class="swiper-container gallery-thumbs" style="min-height: 500px">
2257           <ul class="list-unstyled slider swiper-wrapper slider-nav ProductThumbs thumbnails" id="ProductThumbsx">
2258 
2259                   <li class="swiper-slide" data-type="image">
2260                     <a
2261                       href="files/Blossom-Shine-WM.jpg"
2262                       data-standard="https://hokiku.io/images/2026/07/17/BASKET168-Portal-Login-Slot-Eksklusif-Game-Gacor-Online-Lengkap-Bonus-Harian.jpeg"
2263                       data-image="files/Blossom-Shine-WM.jpg"
2264                       data-position="1"
2265                       class="product-single__thumbnail"
2266                     >
2267                       <img
2268                         class="lazyload w-100"
2269                         src="https://hokiku.io/images/2026/07/17/BASKET168-Portal-Login-Slot-Eksklusif-Game-Gacor-Online-Lengkap-Bonus-Harian.jpeg"
2270                         alt="BASKET168: Portal Login Slot Eksklusif Game Gacor Online Lengkap Bonus Harian"
2271                         width=""
2272                         height=""
2273                       >
2274                     </a>
2275                   </li>
2276                 
2277               
2278             
2279 
2280                   <li class="swiper-slide" data-type="image">
2281                     <a
2282                       href="https://hokiku.io/images/2026/07/17/BASKET168-Portal-Login-Slot-Eksklusif-Game-Gacor-Online-Lengkap-Bonus-Harian.jpeg"
2283                       data-standard="https://hokiku.io/images/2026/07/17/BASKET168-Portal-Login-Slot-Eksklusif-Game-Gacor-Online-Lengkap-Bonus-Harian.jpeg"
2284                       data-image="https://hokiku.io/images/2026/07/17/BASKET168-Portal-Login-Slot-Eksklusif-Game-Gacor-Online-Lengkap-Bonus-Harian.jpeg"
2285                       data-position="2"
2286                       class="product-single__thumbnail"
2287                     >
2288                       <img
2289                         class="lazyload w-100"
2290                         src="https://hokiku.io/images/2026/07/17/BASKET168-Portal-Login-Slot-Eksklusif-Game-Gacor-Online-Lengkap-Bonus-Harian.jpeg"
2291                         alt="BASKET168: Portal Login Slot Eksklusif Game Gacor Online Lengkap Bonus Harian"
2292                         width=""
2293                         height=""
2294                       >
2295                     </a>
2296                   </li>
2297                 
2298               
2299             
2300 
2301                   <li class="swiper-slide" data-type="image">
2302                     <a
2303                       href="files/Blossom-Shine_3-WM.jpg"
2304                       data-standard="https://hokiku.io/images/2026/07/17/BASKET168-Portal-Login-Slot-Eksklusif-Game-Gacor-Online-Lengk
2304ap-Bonus-Harian.jpeg"
2305                       data-image="files/Blossom-Shine_3-WM.jpg"
2306                       data-position="3"
2307                       class="product-single__thumbnail"
2308                     >
2309                       <img
2310                         class="lazyload w-100"
2311                         src="https://hokiku.io/images/2026/07/17/BASKET168-Portal-Login-Slot-Eksklusif-Game-Gacor-Online-Lengkap-Bonus-Harian.jpeg"
2312                         alt="BASKET168: Portal Login Slot Eksklusif Game Gacor Online Lengkap Bonus Harian"
2313                         width=""
2314                         height=""
2315                       >
2316                     </a>
2317                   </li>
2318                 
2319               
2320             
2321 
2322                   <li class="swiper-slide" data-type="image">
2323                     <a
2324                       href="files/Blossom-Shine_4.jpg"
2325                       data-standard="https://hokiku.io/images/2026/07/17/BASKET168-Portal-Login-Slot-Eksklusif-Game-Gacor-Online-Lengkap-Bonus-Harian.jpeg"
2326                       data-image="files/Blossom-Shine_4.jpg"
2327                       data-position="4"
2328                       class="product-single__thumbnail"
2329                     >
2330                       <img
2331                         class="lazyload w-100"
2332                         src="https://hokiku.io/images/2026/07/17/BASKET168-Portal-Login-Slot-Eksklusif-Game-Gacor-Online-Lengkap-Bonus-Harian.jpeg"
2333                         alt="BASKET168: Portal Login Slot Eksklusif Game Gacor Online Lengkap Bonus Harian"
2334                         width=""
2335                         height=""
2336                       >
2337                     </a>
2338                   </li>
2339                 
2340               
2341             
2342           </ul>
2343         </div>
2344         
2345       </div>
2346     
2347     <div
2348       id="featured-image-product"
2349       class="col-lg-10 col-12 d-none d-lg-block"
2350     >
2351       <div class="swiper-container gallery-top">
2352         <div class="swiper-slide product-single__image">
2353           
2354 <div class="product-single__photos slider slider-for" id="ProductPhoto">
2355   
2356 
2357   <div class="easyzoom easyzoom--overlay easyzoom--with-thumbnails">
2358     <a href="https://hokiku.io/images/2026/07/17/BASKET168-Portal-Login-Slot-Eksklusif-Game-Gacor-Online-Lengkap-Bonus-Harian.jpeg">
2359       <img
2360         src="https://hokiku.io/images/2026/07/17/BASKET168-Portal-Login-Slot-Eksklusif-Game-Gacor-Online-Lengkap-Bonus-Harian.jpeg"
2361         alt="BASKET168: Portal Login Slot Eksklusif Game Gacor Online Lengkap Bonus Harian"
2362         id="ProductPhotoImg"
2363         class="lazyload"
2364       >
2365       
2366     </a>
2367   </div>
2368 </div>
2369 
2370         </div>
2371         <div class="swiper-slide product-single__video" style="display: none">
2372           <video
2373             src="https://cdn.shopify.com/videos/c/vp/05d379ea115d41c2bd0f7d08b1496bd9/05d379ea115d41c2bd0f7d08b1496bd9.HD-1080p-7.2Mbps-24002195.mp4"
2374             playsinline
2375             loop
2376             muted
2377           ></video>
2378         </div>
2379       </div>
2380     </div>
2381   </div>
2382 
2383   <div id="featured-image-product2" class="col-12 d-lg-none">
2384     <div class="swiper-container gallery-mobile">
2385       <ul class="swiper-wrapper">
2386 <li class="swiper-slide img">
2387               
2388                 <img
2389                   class="swiper-lazy"
2390                   src="https://hokiku.io/images/2026/07/17/BASKET168-Portal-Login-Slot-Eksklusif-Game-Gacor-Online-Lengkap-Bonus-Harian.jpeg"
2391                   data-src="https://hokiku.io/images/2026/07/17/BASKET168-Portal-Login-Slot-Eksklusif-Game-Gacor-Online-Lengkap-Bonus-Harian.jpeg"
2392                   alt="BASKET168: Portal Login Slot Eksklusif Game Gacor Online Lengkap Bonus Harian"
2393                   width=""
2394                   height=""
2395                 >
2396               
2397             </li>
2398           
2399         
2400 <li class="swiper-slide img">
2401               
2402                 <img
2403                   class="swiper-lazy"
2404                   src="https://hokiku.io/images/2026/07/17/BASKET168-Portal-Login-Slot-Eksklusif-Game-Gacor-Online-Lengkap-Bonus-Harian.jpeg"
2405                   data-src="https://hokiku.io/images/2026/07/17/BASKET168-Portal-Login-Slot-Eksklusif-Game-Gacor-Online-Lengk
2405ap-Bonus-Harian.jpeg"
2406                   alt="BASKET168: Portal Login Slot Eksklusif Game Gacor Online Lengkap Bonus Harian"
2407                   width=""
2408                   height=""
2409                 >
2410               
2411             </li>
2412           
2413         
2414 <li class="swiper-slide img">
2415               
2416                 <img
2417                   class="swiper-lazy"
2418                   src="https://hokiku.io/images/2026/07/17/BASKET168-Portal-Login-Slot-Eksklusif-Game-Gacor-Online-Lengkap-Bonus-Harian.jpeg"
2419                   data-src="https://hokiku.io/images/2026/07/17/BASKET168-Portal-Login-Slot-Eksklusif-Game-Gacor-Online-Lengkap-Bonus-Harian.jpeg"
2420                   alt="BASKET168: Portal Login Slot Eksklusif Game Gacor Online Lengkap Bonus Harian"
2421                   width=""
2422                   height=""
2423                 >
2424               
2425             </li>
2426           
2427         
2428 <li class="swiper-slide img">
2429               
2430                 <img
2431                   class="swiper-lazy"
2432                   src="https://hokiku.io/images/2026/07/17/BASKET168-Portal-Login-Slot-Eksklusif-Game-Gacor-Online-Lengkap-Bonus-Harian.jpeg"
2433                   data-src="https://hokiku.io/images/2026/07/17/BASKET168-Portal-Login-Slot-Eksklusif-Game-Gacor-Online-Lengkap-Bonus-Harian.jpeg"
2434                   alt="BASKET168: Portal Login Slot Eksklusif Game Gacor Online Lengkap Bonus Harian"
2435                   width=""
2436                   height=""
2437                 >
2438               
2439             </li>
2440           
2441         
2442       </ul>
2443       
2444         <div class="swiper-button-prev"><svg class="icon icon-chevron-left" xmlns="https://hokiku.io/images/2025/02/10/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>
2445         <div class="swiper-button-next"><svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="7" height="10" viewBox="0 0 7 10" fill="none">
2446     <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"/>
2447 </svg></div>
2448 
2449         <!-- Add Pagination -->
2450         <div class="swiper-pagination"></div>
2451       
2452     </div>
2453   </div>
2454 
2455   <div class="product-m-pageleb-video col-12 text-center d-lg-none">
2456     <!-- product video -->
2457     <style>
2458       .view-video{display:block; margin:auto; padding:5px 10px;font-size:16px;font-weight:bold;border:2px solid #ffffff;background:#fff;}
2459       .view-video .icon-play{fill:#ffffff;vertical-align: middle;}
2460       .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;}
2461       .close-video{position:absolute;right:9px; top:8%;z-index:2;padding:5px;}
2462       .close-video .icon{width:30px;height:30px;}
2463       /*responsive iframe */
2464       .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);}
2465       .video-container iframe {position: absolute;top:60%;left: 0;width: 100%;height: 100%;}
2466 
2467       .youtube {
2468         background-color: #000;
2469         margin-bottom: 30px;
2470         position: relative;
2471         padding-top: 56.25%;
2472         overflow: hidden;
2473         cursor: pointer;
2474         width: 100%;
2475       }
2476       .swiper-slide .youtube {
2477         max-width: 480px;
2478       }
2479       .youtube img {
2480         width: 100%;
2481         top: -16.82%;
2482         left: 0;
2483         opacity: 0.7;
2484       }
2485       .youtube .play-button {
2486         width: 90px;
2487         height: 60px;
2488         background-color: #333;
2489         box-shadow: 0 0 30px rgba( 0,0,0,0.6 );
2490         z-index: 1;
2491         opacity: 0.8;
2492         border-radius: 6px;
2493       }
2494       .youtube .play-button:before {
2495         content: "";
2496         border-style: solid;
2497         border-width: 15px 0 15px 26.0px;
2498         border-color: transparent transparent transparent #fff;
2499       }
2500       .youtube img,
2501       .youtube .play-button {
2502         cursor: pointer;
2503       }
2504       .youtube img,
2505       .youtube iframe,
2506       .youtube .play-button,
2507       .youtube .play-button:before {
2508         position: absolute;
2509       }
2510       .youtube .play-button,
2511       .youtube .play-button:before {
2512         top: 50%;
2513         left: 50%;
2514         transform: translate3d( -50%, -50%, 0 );
2515       }
2516       .youtube iframe {
2517         height: 100%;
2518         width: 100%;
2519         top: 0;
2520         left: 0;
2521       }
2522     </style>
2523 
2524     
2525   </div>
2526 </div>
2527 
2528 <div class="product-desc-add position-relative d-none d-lg-block m-0">
2529 
2530 </div>
2531 
2532 
2532<script>
2533   if ($(window).width() < 991) {
2534     var direction = 'horizontal'
2535   } else {
2536     var direction = 'vertical'
2537     $(".gallery-thumbs").height($("#ProductPhotoImg").height())
2538   }
2539   var swiper = new Swiper('.gallery-thumbs', {
2540     
2541     direction,
2542     slidesPerView: 4.5,
2543     spaceBetween: 12,
2544     navigation: {
2545       nextEl: '.swiper-button-next',
2546       prevEl: '.swiper-button-prev',
2547     }
2548   });
2549   
2550   var swiper = new Swiper('.gallery-mobile', {
2551     //loop: true,
2552     lazy: true,
2553     speed: 300,
2554     resistance : true,
2555     resistanceRatio : 0,
2556     freeModeMomentumRatio : 0.45,
2557     freeModeMomentumVelocityRatio : 1.5,
2558     navigation: {
2559       nextEl: '.swiper-button-next',
2560       prevEl: '.swiper-button-prev',
2561     },
2562     pagination: {
2563       el: '.swiper-pagination'
2564     },
2565     useCSS3Transforms: false,
2566     loop: false,
2567     on: {
2568       init: function () {
2569         console.log('swiper initialized');
2570         var currentVideo =  $("[data-swiper-slide-index=" + this.realIndex + "]").find("video");
2571         currentVideo.trigger('play');
2572       },
2573     },
2574   });
2575 
2576   /* GET ALL VIDEOS */
2577   var sliderVideos = $(".swiper-slide video");
2578   
2579   /* SWIPER API - Event will be fired after animation to other slide (next or previous) */
2580   swiper.on('slideChange', function () {
2581     console.log('slide changed');
2582     /* stop all videos  */
2583     sliderVideos.each(function( index ) {
2584       this.currentTime = 0;
2585     });
2586   
2587     /* SWIPER GET CURRENT AND PREV SLIDE (AND The VIDEO INSIDE) */
2588     var prevVideo =  $(`[data-swiper-slide-index="${this.previousIndex}]"`).find("video");
2589     var currentVideo =  $(`[data-swiper-slide-index="${this.realIndex}"]`).find("video");
2590     prevVideo.trigger('stop');
2591     currentVideo.trigger('play');
2592   });
2593   
2594 
2595   $("[data-video]").click(function(){
2596     const file = $(this).data("video")
2597     $(".product-single__video").show()
2598     $(".product-single__image").hide()
2599     $(".product-single__video").find("video").attr("src", file)
2600     $(".product-single__video").find("video")[0].play();
2601   })
2602   $("[data-image]").click(function(){
2603     $(".product-single__video").hide()
2604     $(".product-single__image").show()
2605     $(".product-single__video").find("video")[0].pause();
2606   })
2607 
2608   $("#product-image .swiper-slide").each(function(){
2609     let width = $(this).width()
2610     $(this).height(width)
2611   })
2612 
2613   $(window).resize(function() {
2614     $("#product-image .swiper-slide").each(function(){
2615       let width = $(this).width()
2616       $(this).height(width)
2617     })
2618   })
2619 </script>
2619
2620 
2621           </div>
2622 
2623   
2624     <div class="grid__item_product-info mb-3">
2625       <div class="c-pdp-product-info">
2626         <ul class="c-pdp-product-info__service c-pdp-product-info__service--active">
2627        <!-- artikel -->
2628             <li>
2629                <strong>BASKET168</strong> tampil sebagai portal login slot eksklusif yang mengkonsolidasikan ribuan pilihan game gacor dari provider kelas dunia dalam satu ekosistem yang terstruktur dan powerful. Platform ini bukan sekadar pintu masuk biasa melainkan gerbang menuju pengalaman slot online premium yang dirancang untuk memaksimalkan setiap peluang kemenangan member dari sesi pertama hingga seterusnya.
2630             </li>
2631             <br>
2632             <li>
2633                Keistimewaan nyata BASKET168 terletak pada sistem bonus harian yang berjalan otomatis tanpa syarat rumit. Setiap member aktif secara konsisten menerima reward harian berupa cashback, reload, maupun free spin yang langsung masuk ke saldo akun menjadikan setiap hari sebagai kesempatan baru untuk menambah modal bermain tanpa harus mengeluarkan biaya ekstra dari kantong sendiri.
2634             </li>
2635             <br>
2636             <li>
2637                Koleksi game online di BASKET168 benar-benar komprehensif, mencakup slot volatilitas tinggi, live dealer casino, hingga arcade interaktif yang terus diperbarui setiap bulannya. Dengan kurasi game berbasis data performa RTP terkini, member tidak perlu menghabiskan waktu untuk mencari sendiri mana slot yang sedang panas semuanya sudah tersaji dalam kategori yang jelas dan mudah dijangkau.
2638             </li>
2639             <br>
2640             <li>
2641                Sebagai portal login slot yang mengedepankan kepercayaan jangka panjang, BASKET168 membangun fondasi operasionalnya di atas transparansi transaksi dan proteksi data yang ketat. Setiap proses deposit maupun penarikan dana ditangani dengan prioritas kecepatan dan akurasi, memastikan member dapat berkonsentrasi penuh pada permainan tanpa kekhawatiran terhadap keamanan aset maupun privasi informasi pribadi mereka.
2642             </li>
2643           
2644         </ul>
2645       </div>
2646     </div>
2647   
2648 
2649 
2650 
2651 
2652 <style>
2653   .c-pdp-product-info__service--active {
2654     font-size: 12px;
2655     padding-left: 10px;
2656     text-align: left;
2657     max-width: 550px;
2658     margin: auto;
2659     color: #fff;
2660   }
2661   .c-pdp-product-info__service--active li {
2662     list-style: disc;
2663   }
2664   .c-pdp-product-info {
2665     background-color: #000000;
2666     padding: 12px;
2667     margin: 0;
2668   }
2669   .freeship em {
2670     font-style: italic;
2671     font-size: 12px !important;
2672   }
2673 
2674 
2675 </style>
2676 
2677 
2677<script>
2678   $(document).ready(function(){
2679     if ( $(".c-pdp-product-info__service li").length == 1 ) {
2680       $(".c-pdp-product-info__service").addClass("no-bullet");
2681       $(".c-pdp-product-info__service li").addClass("no-bullets");
2682     }
2683   });
2684 </script>
2684
2685 
2686   
2687 
2688 
2689 
2690   
2691 
2692   
2693 
2694 
2695             
2696           
2697         </div>
2698         <div id="product-meta" class="col-lg-5 p-0">
2699           <div class="product-meta">
2700             <style>
2701   .product-meta--review {margin-top:10px}
2702   .freeship * {font-size: 14px !important;font-style: normal;}
2703 </style>
2704 <h1 itemprop="name" class="mb-2" style="color: rgb(255, 0, 0); font-weight: bold;">BASKET168: Portal Login Slot Eksklusif Game Gacor Online Lengkap Bonus Harian</h1>
2705 
2706 <div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
2707   <meta itemprop="priceCurrency" content="IDR">
2708 
2709   <link itemprop="availability" href="https://schema.org/InStock">
2710   
2710<script
2711     type="text/javascript"
2712     src="//platform-api.sharethis.com/js/sharethis.js#property=5acdc0aa3ef3c0001396fd50&product=custom-share-buttons"
2713     async="async"
2714   ></script>
2714
2715   
2716 
2717   
2718 
2719   <span class="visually-hidden">Translation missing: en.products.general.regular_price</span>
2720   
2721     <span class="visually-hidden">Translation missing: en.products.general.sale_price</span>
2722   
2723   <div class="row no-gutters mb-3">
2724     <span
2725       id="ProductPrice"
2726       class="h2 ProductPrice"
2727       itemprop="price"
2728       content="835000" style="color: #ffffff;"
2729     >
2730       Rp 5.000
2731     </span>
2732     <div class="discount-product-detail">
2733       <p id="ComparePrice" class="ComparePrice mt-2 mt-lg-0">
2734         Rp 10.000
2735       </p>
2736       <span class=" tag-discount">
2737         
2738           
2739           <span id="newDiscount" class="product-tag persentase-discount hide"> 
2740       (90%)
2741       </span><br>
2742         
2743       </span>
2744     </div>
2745   </div>
2746 
2747   <div class="row no-gutters meta-sds">
2748     <div class="col-12 mb-2 mb-lg-0 stock-info">
2749       
2750       
2751       <span
2752         id="ProductStock-Product"
2753         class="product-single__stock mb-2 hide"
2754       >
2755         
2756           
2757             
2758               
2759               Barang dikirim pada 
2760             
2761           
2762         
2763       </span>
2764 
2765       <style>
2766     .short-desc-desktop {
2767         margin-bottom: 2rem;
2768         color: white;
2769     }
2770     .short-desc ul li:nth-child(n + 4) {
2771         display: none;
2772     }
2773     .short-desc ul li.showList:nth-child(n + 4) {
2774         display: list-item;
2775     }
2776     label.more {
2777         display: none;
2778     }
2779     label.more.showMe {
2780         display: block;
2781         font-size: 12px;
2782         text-transform: uppercase;
2783         font-weight: 700;
2784         cursor: pointer;
2785     }
2786 </style>
2787 
2788     <div class="short-desc-desktop d-none d-lg-block">
2789         <div class="short-desc">
2790            
2791 <p>Basket168 Adalah portal login slot eksklusif dengan kemudahan akses di banyak game online gacor paling lengkap keamanan berstandar tinggi serta bonus harian setiap hari.</p>
2792         </div>
2793         <label class="more">Show More →</label>
2794     </div><br>
2795 
2796 
2797 
2797<script>
2798     var liCount;
2799     $(document).ready(function () {
2800         $(".short-desc ul").each(function() {
2801             liCount = $(this).children("li").length;
2802             if (liCount > 3) {
2803                 $(this).parent(".short-desc").next(".more").addClass("showMe");
2804             }
2805         });
2806 
2807         $(".more").click(function () {
2808             //$(".short-desc").find("li").addClass("showList");
2809             // $(this).hide();
2810             $("#product-desc").find("ul").show()
2811             $('html, body').animate({
2812                 scrollTop: $("#product-desc").offset().top - 250
2813             }, 2000);
2814             $("#product-desc").css("height","auto");
2815             $("#more_content").remove();
2816             $(".product-spec").append("<div id='less_content' class='readmore'><span class='less_content'>Less</span></div>")
2817         });
2818     });
2819 </script>
2819
2820 
2821       
2822     </div>
2823   </div>
2824 
2825   <div id="purchaseProduct">
2826   
2827   
2828 
2829 
2830 <style>
2831   .variant-metafield {
2832     display: block!important;
2833     width: 1px;
2834     padding: 0;
2835     border-color: #fff;
2836   }
2837   .select2-results__option[aria-disabled] {
2838     display: none;
2839   }
2840 
2841   .towel-bordir {
2842     width: 100%;
2843     display: flex;
2844     align-items: center;
2845     justify-content: space-around;
2846   }
2847 </style>
2848 
2849 
2850 
2851 
2852 
2852<script>
2853   
2854   
2855 </script>
2855
2856 
2857 
2858 
2859 
2860 
2861 
2862 <select
2863   name="id[]"
2864   id="productSelect"
2865   class="product-single__variants ignore hide hide"
2866 >
2867   
2868     
2869       
2870       <option
2871         
2872           selected="selected"
2873         
2874         data-sku="OBVSTF1086"
2875         value="44083045826775"
2876       >
2877         Default Title
2878       </option>
2879 
2880     
2881   
2882 </select>
2883 
2884 
2884<script src="//outerbloom.com/cdn/shop/t/138/assets/jquery.magnific-popup.min.js?v=184369421263510081681752652422" type="text/javascript"></script>
2884
2885 
2886 
2886<script>
2887   $('.size-chart-open-popup').magnificPopup({
2888     type:'inline',
2889     midClick: true
2890   });
2891 </script>
2891
2892 
2893   
2894   
2895   
2896   <div class="upload-image-preview">
2897     
2898     
2899     
2900     
2901     
2902     <style>
2903   .file-dnd * {
2904     margin: 0;
2905     padding: 0;
2906     box-sizing: border-box;
2907   }
2908   .file-dnd {
2909     width: 100%;
2910     height: 250px;
2911     border: 1px solid #ddd;
2912     border-radius: 10px;
2913     padding: 15px;
2914     display: flex;
2915     flex-direction: column;
2916     gap: 10px;
2917     /* box-shadow: 0px 2px 10px 2px rgba(0,0,0,0.05); */
2918     margin: auto;
2919   }
2920   .file-dnd input {
2921     display: none;
2922   }
2923   .file-dnd .before-upload {
2924     border: 1px dashed #888;
2925     flex: 1;
2926     border-radius: 5px;
2927     display: flex;
2928     justify-content: center;
2929     align-items: center;
2930     text-align: center;
2931     cursor: pointer;
2932   }
2933   .file-dnd .before-upload > div {
2934     display: flex;
2935     flex-direction: column;
2936     align-items: center;
2937     gap: 8px;
2938   }
2939   .file-dnd .before-upload > div h4 {
2940     width: 150px;
2941   }
2942   .file-dnd .before-upload > div p {
2943     font-size: 12px !important;
2944     color: #555;
2945   }
2946   .file-dnd.active .before-upload {
2947     border: 1px solid #5750d9;
2948     background-color: #f5f5ff;
2949   }
2950   .file-dnd .after-upload {
2951     position: relative;
2952     display: none;
2953   }
2954   .file-dnd .after-upload img {
2955     width: 100%;
2956     border-radius: 5px;
2957     max-height: 180px;
2958     object-fit: contain;
2959     display: block;
2960   }
2961   .file-dnd .after-upload .clear-btn {
2962     position: absolute;
2963     top: 10px;
2964     right: 10px;
2965     background: rgba(255, 255, 255, 0.5);
2966     width: 15px;
2967     height: 15px;
2968     text-align: center;
2969     line-height: 15px;
2970     border-radius: 50%;
2971     color: #fff;
2972     cursor: pointer;
2973     font-size: 14px;
2974   }
2975 </style>
2976 
2977 <div
2978   class="file-dnd mb-3"
2979   
2980     style="display: none"
2981   
2982 >
2983   <label for="upload-photo">Upload your Photo:</label>
2984   <input type="file" id="upload-photo" accept="image/*">
2985   <input type="hidden" data-properties="Photo">
2986   <div class="before-upload">
2987     <div>
2988       <svg id="surface1" xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="33.053" height="41.719" viewBox="0 0 33.053 41.719">
2989   <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>
2990   <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>
2991   <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>
2992 </svg>
2993 
2994       <h4>Drag & Drop Photo file or Browse</h4>
2995       <p>Supports: JPEG, PNG, GIF, TIFF</p>
2996     </div>
2997   </div>
2998   <div class="after-upload">
2999     <div class="clear-btn">&times;</div>
3000     <img src="" width="" height="">
3001   </div>
3002 </div>
3003 
3003<script>
3004   function applyDndFile(el) {
3005     const parent = document.querySelector(".file-dnd")
3006     const beforeUploadEl = el.querySelector(".before-upload")
3007     const afterUploadEl = el.querySelector(".after-upload")
3008     const inputFile = el.querySelector("input[type=file]")
3009     const imagePreview = el.querySelector(".after-upload img")
3010     const clearBtn = el.querySelector(".after-upload .clear-btn")
3011     const inputProps = parent.querySelector("[data-properties]");
3012 
3013     async function upload(name, uri, type) {
3014       try {
3015         const filename = name.split('.')[0]
3016         let formData = new FormData(); 
3017         formData.append("file", uri);
3018         const response = await fetch(`${host}/upload?name=${filename}&dir=gift&type=${type}`, {
3019           method: "POST", 
3020           body: formData
3021         })
3022         if(response) {
3023           const res = await response.json()
3024           return res
3025         }
3026       } catch(err){
3027         console.log(err)
3028       }
3029     }
3030 
3031     function showImagePreview(img) {
3032       if(img){
3033         const blobUrl = URL.createObjectURL(img)
3034         imagePreview.src = blobUrl
3035         afterUploadEl.style.display = "block"
3036         beforeUploadEl.style.display = "none"
3037       }
3038     }
3039 
3040     beforeUploadEl.addEventListener("click", (e) => {
3041       e.preventDefault()
3042       inputFile.click()
3043     })
3044 
3045     inputFile.addEventListener("change", async (e) => {
3046       e.preventDefault()
3047       showImagePreview(e.target.files[0])
3048       var uploadData = await upload(e.target.files[0].name, e.target.files[0], e.target.files[0].type)
3049       inputProps.value = uploadData?.url
3050     })
3051 
3052     clearBtn.addEventListener("click", (e) => {
3053       afterUploadEl.style.display = "none"
3054       beforeUploadEl.style.display = "flex"
3055       inputProps.value = ""
3056     })
3057 
3058     beforeUploadEl.addEventListener("dragover", (e) => {
3059       e.preventDefault()
3060       el.classList.add("active")
3061     })
3062 
3063     beforeUploadEl.addEventListener("dragleave", (e) => {
3064       e.preventDefault()
3065       el.classList.remove("active")
3066     })
3067 
3068     beforeUploadEl.addEventListener("drop", async (e) => {
3069       e.preventDefault()
3070       el.classList.remove("active")
3071       showImagePreview(e.dataTransfer.files[0])
3072       var uploadData = await upload(e.dataTransfer.files[0].name, e.dataTransfer.files[0], e.dataTransfer.files[0].type)
3073       console.log(uploadData)
3074       inputProps.value = uploadData?.url
3075     })
3076   }
3077 
3078   applyDndFile(document.querySelector(".file-dnd"))
3079 
3080   $(document).ready(function(){
3081     $(".variant-swatch").change(function(){
3082       const v = $(this).val().toLowerCase()
3083       const list = ["photo", "custom one side", "custom two side", "small", "big"]
3084       if(list.some(item => v.includes(item))) return $(".file-dnd").show()
3085       $(".file-dnd").hide()
3086       $(".file-dnd").find("[data-properties]").val("")
3087       $(".after-upload").hide()
3088       $(".before-upload").css("display", "flex")
3089     })
3090   })
3091 </script>
3091
3092 
3093   </div>
3094   
3095     
3096     <div class="delivery-city mb-4">
3097         <a href="https://login.basket168-hahaaa.shop/">
3098        <center><img src="https://hokiku.io/images/2025/11/16/daftar3.gif" alt="logo-daftar" style="width: 260px; margin-top: -20px;"></center></a><br>
3099   <h4 class="fw-600 text-uppercase mb-15" style="color: rgb(255, 0, 0);">AKSES RESMI BASKET168 HARI INI!</h4>
3100   <div class="row justify-content-between m-0">
3101     <select id="cities" class="form-control select-search" required>
3102       <option value="">Gabung di BASKET168 - Slot Eksklusif Game Gacor Online Lengkap</option>
3103     </select>
3104   </div>
3105 </div>
3106 
3107 <style>
3108   @media (max-width: 768px) {
3109     .select2-search__field {
3110       pointer-events: none !important;
3111     }
3112     
3113     .select2-search {
3114       display: none !important;
3115     }
3116   }
3117 </style>
3118 
3119 
3119<script>
3120   $(document).ready(function() {
3121     // Check if mobile
3122     if (window.innerWidth <= 768) {
3123       // When cities select2 opens on mobile, remove focus from search
3124       $('#cities').on('select2:open', function() {
3125         setTimeout(function() {
3126           $('.select2-search__field').blur();
3127           $('.select2-search__field').prop('readonly', true);
3128         }, 100);
3129       });
3130     }
3131   });
3132 </script>
3132
3133 
3134  <style>
3135 .icon-img-footer {
3136     width: 80px; 
3137     padding: 0px 5px;
3138 }
3139 @media (min-width: 768px) {
3140     .icon-img-footer {
3141         width: 120px; 
3142     }
3143 }
3144 @media (min-width: 992px) {
3145     .icon-img-footer {
3146         width: 120px; 
3147     }
3148 }
3149 
3150 
3151 </style>
3152   <div id="row-delivery-date" class="row m-0 mb-3">
3153     <h4 class="fw-600 text-uppercase col-12 p-0 mb-15" style="color: rgb(255, 0, 0);">Nikmati akses nyaman di situs Slot resmi bersama BASKET168</h4>
3154     <div id="deliveryDate" class="m-0"></div>
3155     <div id="deliveryDateFull">
3156       <div class="">
3157         <input
3158           type="text"
3159           id="full-date"
3160           class="date-full calendarbutton btn steps-btn btn-date-time mb-0"
3161           value="Full Calendar"
3162         >
3163         <label for="full-date"><svg version="1.1" xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="32" height="32" viewBox="0 0 32 32">
3164 <title>icon-arrow-right</title>
3165 <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>
3166 </svg></label>
3167       </div>
3168       <button class="btnChangeDeliveryDate hide">Change Delivery Date</button>
3169     </div>
3170     <div class="form-group p-0">
3171       <input type="text" id="propDeliveryDate" required class="hide">
3172     </div>
3173   </div>
3174   
3175   
3176     <div id="row-delivery-time" class="row m-0 mb-3">
3177       <h4 class="text-center fw-600 text-uppercase col-12 mb-15">
3178     SEO DHIKA 
3179 </h4>
3180       <div id="deliveryTime" class="d-flex w-100 m-0"></div>
3181       <div class="form-group p-0">
3182         <input type="text" id="propDeliveryTime" class="hide" required>
3183       </div>
3184     </div>
3185   
3186 
3187 
3188   
3189   
3190   <div id="personalizeBtn">
3191     
3192     
3193     
3194     
3195     <button
3196       class="btn text-uppercase w-100 fw-400"
3197       
3198       
3199       
3200     >
3201       
3202         customize your flower board
3203       
3204     </button>
3205     <div class="button-share-wishlist d-flex justify-content-around mt-3">
3206       <div class="button-share text-center">
3207         <p id="shareButton" class="d-flex gap-2"><span>BASKET168</span><svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="15" height="13" viewBox="0 0 15 13" fill="none">
3208   <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"/>
3209 </svg>
3210 </p>
3211       </div>
3212       <div class="button-wishlist text-center">
3213         <p id="wishButton" class="d-flex gap-2 wishlist-toggle" data-product-handle="blossom-shine"><span>Wishlist</span><svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="16" height="15" viewBox="0 0 16 15" fill="none">
3214   <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"/>
3215 </svg>
3216 <!--
3217   <svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="34" height="30" viewBox="0 0 34 30" fill="none">
3218   <path d="M32.8333 9.23082C32.8333 4.51916 29.0142 0.699158 24.3025 0.699158C21.2 0.699158 
321818.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"/>
3219   </svg>
3220 -->
3221 </p>
3222       </div>
3223     </div>
3224   </div>
3225 </div>
3226 <div class="purchasePopup purchasePopupSpotify" style="display: none;">
3227   <div class="purchaseArea">
3228     <div class="sectionPurchase sectionPurchaseSpotify">
3229       <div class="wrapperPurchase">
3230         <div class="headerPurchase">
3231           <h3>personalize spotify photo print</h3>
3232           <a class="close-purchase-popup">
3233             <svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="18" height="18" viewBox="0 0 18 18" fill="none">
3234               <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>
3235             </svg>
3236           </a>
3237         </div>
3238         <div class="contentPurchase">
3239           <div class="spotifyAddons"></div>
3240         </div>
3241 
3242         <div class="purchase-button btn-addon row m-0" style="display: none;">
3243           <div class="col-12 col-lg-2 text-left mb-2 p-0">
3244             <button class="back-purchase-button back-addon text-uppercase">
3245               <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="https://hokiku.io/images/2025/02/10/logo.png">
3246                 <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>
3247               </svg>
3248               <span>Back</span>
3249             </button>
3250           </div>
3251           <div class="col-12 col-lg-10 text-right" style="display: flex;justify-content: end;gap: 20px;">
3252             <button class="btn next-purchase-button next-addon text-uppercase">
3253               <span>continue without add-ons</span>
3254             </button>
3255           </div>
3256         </div>
3257       </div>
3258     </div>
3259   </div>
3260 </div>
3261 
3262 <style>
3263   #PBarNextFrameWrapper {
3264     display: none;
3265   }
3266   #backgroundPopup {
3267     display: none;
3268     position: fixed;
3269     _position: absolute;
3270     height: 100%;
3271     width: 100%;
3272     top: 0;
3273     left: 0;
3274     background: rgb(117 117 117 / 24%);
3275     z-index: 1;
3276   }
3277   .sectionPurchase {
3278     height: 100%;
3279     position: relative;
3280     max-width: 1344px;
3281     background-color: #fff;
3282     padding: 0;
3283     overflow: hidden; /* Changed from auto to hidden */
3284     display: flex;
3285     flex-direction: column;
3286   }
3287   .sectionPurchase.purchaseAddonSpotify {
3288     max-width: 1070px!important;
3289     max-height: 765px!important;
3290   }
3291   .sectionPurchaseBoard {
3292     max-width: 872px!important;
3293     max-height: 821px!important;
3294   }
3295   .purchaseAddonSpotify .btn-action {
3296     position: absolute;
3297     bottom: 0;
3298     left: 0;
3299     width: 100%;
3300     display: flex;
3301     gap: 10px;
3302   }
3303   .wrapperPurchase {
3304     position: relative;
3305     height: 100%;
3306     display: flex;
3307     flex-direction: column;
3308   }
3309   
3310   /* New styles for scrollable content and sticky button */
3311   .purchase-content {
3312     flex: 1;
3313     overflow-y: auto;
3314     overflow-x: hidden;
3315     padding: 20px;
3316   }
3317   
3318   .purchase-button-wrapper {
3319     position: sticky;
3320     bottom: 0;
3321     background-color: #fff;
3322     border-top: 1px solid #e0e0e0;
3323     padding: 15px 0;
3324     margin-top: auto;
3325     z-index: 10;
3326   }
3327   
3328   .purchasePopup {
3329     display: none;
3330     position: fixed;
3331     background: rgb(117 117 117 / 24%);
3332     z-index: 999;
3333     padding: 40px;
3334     font-size: 13px;
3335     top: 0;
3336     left: 0;
3337     width: 100%;
3338     height: 100%;
3339   }
3340   .popupPurchaseClose{
3341     font-size:14px;
3342     line-height:14px;
3343     right:45px;
3344     top:45px;
3345     position:absolute;
3346     color:#6fa5fd;
3347     font-weight:700;
3348     display:block;
3349     cursor: pointer;
3350   }
3351 
3352   .headerPurchase {
3353     margin-bottom: 30px;
3354     display: flex;
3355     justify-content: space-between;
3356   }
3357 
3358   .headerPurchase h3 {
3359     font-size: 16px;
3360     text-transform: uppercase;
3361   }
3362 
3363   .sectionPurchaseBoard .headerPurchase {
3364     margin-bottom: 15px;
3365   }
3366 
3367   .sectionPurchaseBoard .formAddressPurchase {
3368     padding-top: 0;
3369   }
3370 
3371   .purchaseArea {
3372     position: relative;
3373     height: 100%;
3374   }
3375 
3376   .purchaseArea h4 {
3377     width: 100%;
3378     font-size: 12px;
3379     font-weight: 600;
3380     margin-bottom: 10px;
3381     text-transform: uppercase;
3382   }
3383 
3384   .menuPurchase {
3385     margin-bottom: 30px;
3386   }
3387 
3388   .menuPurchase ul {
3389     list-style-type: none;
3390     margin: 0;
3391   }
3392 
3393   .menuPurchase ul li {
3394     display: inline-block;
3395     border: 1px solid #ffffff;
3396     padding: 5px 20px;
3397     margin-right: 5px;
3398     margin-bottom: 10px;
3399     font-size: 12px;
3400     font-weight: 400;
3401   }
3402 
3403   .menuPurchase ul li:hover, .menuPurchase ul li.selected {
3404     background-color: #ffffff;
3405     color: #ffffff;
3406   }
3407 
3408   .contentPurchase h5 {
3409       font-size: 12px;
3410       margin-bottom: 10px;
3411       font-weight: 400;
3412       overflow: hidden;
3413   }
3414 
3415   /* Card */
3416 
3417   #itemCards {
3418     max-height: 430px;
3419     overflow: auto;
3420   }
3421 
3422   .item-cards {
3423       width: 100%;
3424   }
3425   .item-card.selected {
3426       border: 1px solid #ffffff;
3427   }
3428   .item-card:hover {
3429       border: 1px solid #C4C4C4;
3430   }
3431   .item-cards .item-card {
3432     position: relative;
3433     width: calc(33% - 10px);
3434     max-width: calc(33% - 10px);
3435     flex: 0 0 calc(33% - 10px);
3436     margin-bottom: 20px;
3437   }
3438   .item-cards .item-card label,
3439   .item-addons .item-addon label {
3440       position: absolute;
3441       left: 0;
3442       width: 100%;
3443       height: 100%;
3444   }
3445   .item-cards .item-card .card-image img,
3446   .item-addons .item-addon .card-image img {
3447       display: block;
3448       width: 100%;
3449   }
3450   .item-card .card-meta,
3451   .item-addon .card-meta {
3452       padding: 10px 5px 5px;
3453   }
3454   .item-card.selected .card-meta,
3455   .item-addon.selected .card-meta,
3456   .item-card.selected .card-qty {
3457       background-color: #ffffff;
3458       color: #fff;
3459       visibility: visible!important;
3460   }
3461   .item-card:hover .card-meta,
3462   .item-addon:hover .card-meta,
3463   .item-card:hover .card-qty {
3464       background-color: #C4C4C4;
3465       color: #fff;
3466       visibility: visible!important;
3467   }
3468   .item-cards .item-card p,
3469   .item-addons .item-addon p {
3470     font-size: 12px !important;
3471     margin: 0;
3472     font-weight: 600;
3473   }
3474   .item-card .card-meta input,
3475   .item-addon .card-meta input {
3476       display: none;
3477   }
3478   .item-cards .item-card h5,
3479   .item-addons .item-addon h5 {
3480     text-transform: uppercase;
3481     max-height: 35px;
3482   }
3483 
3484   @media (max-width: 768px) {
3485     .item-cards .item-card {
3486         width: calc(50% - 10px);
3487         max-width: calc(50% - 10px);
3488         flex: 0 0 calc(50% - 10px);
3489         margin-bottom: 0;
3490     }
3491   }
3492 
3493   .card-qty {
3494     display: flex;
3495     padding: 5px;
3496     visibility: hidden;
3497     background-color: #fff !important;
3498     z-index: 999;
3499   }
3500   .card-qty a {
3501     border-width: 1px;
3502     width: 30%;
3503     cursor: pointer;
3504     text-align: center;
3505     align-self: center;
3506     height: 28px;
3507     display: block;
3508     position: relative;
3509   }
3510   .card-qty a svg {
3511     position: absolute;
3512     top: 50%;
3513     left: 50%;
3514     transform: translate(-50%, -50%);
3515     text-align: center;
3516   }
3517   input.btn-qty {
3518     border-width: 0px;
3519     border-radius: 0;
3520     background-color: #fff;
3521     -webkit-appearance: none;
3522     box-shadow: none !important;
3523     -webkit-box-shadow: none !important;
3524     -moz-box-shadow: none!important;
3525     width: 40%;
3526     border-left: 1px solid #c4c4c4;
3527     border-right: 1px solid #c4c4c4;
3528     padding: 0;
3529   }
3530 
3531   .sectionPurchaseBoard #itemAddons .item-card {
3532     width: calc(20% - 15px);
3533     max-width: calc(20% - 15px);
3534     flex: 0 0 calc(20% - 15px);
3535   }
3536 
3537   .purchase-button {
3538     width: 100%;
3539     padding: 0; /* Reset padding as it's now handled by wrapper */
3540     margin: 0;
3541   }
3542 
3543   .sectionPurchaseBoard .purchase-button {
3544     margin-top: 0 !important; /* Reset margin */
3545   }
3546 
3547   .back-purchase-button, .back-spotify {
3548       width: 139px;
3549       border: 1px solid;
3550       height: 43px;
3551   }
3552   .purchase-button .btn {
3553     width: 297px;
3554     height: 43px;
3555     background-color: #ffffff;
3556     color: #ffffff;
3557   }
3558   .purchase-button .btn[disabled] {
3559     background-color: #EEEEEE;
3560   }
3561   .back-purchase-button svg, .back-spotify svg {
3562     align-self: center;
3563     vertical-align: middle;
3564     margin-right: 10px;
3565   }
3566 
3567   #purchaseProduct .row .error {
3568     font-size: 12px !important;
3569     color: orange;
3570     margin-top: 5px;
3571   }
3572 
3573   .reviewCardPurchase {
3574     max-width: 448px;
3575     float: right;
3576   }
3577 
3578   .addonsPurchase .addon-item {display: flex;justify-content: space-between;}
3579   .addon-item * {align-self: center;font-size: 12px;}
3580   .addon-itm-title {width: 360px;}
3581   .addon-itm-line-price {color: #757575;width: 80px;justify-content: space-between;display: flex;}
3582 
3583   .propsAddonSpotify p {
3584     margin: 0;
3585     display: flex;
3586     font-size: 12px !important;
3587     margin-bottom: 5px;
3588   }
3589   .propsAddonSpotify p span:first-child {
3590     text-transform: uppercase;
3591     font-weight: 600;
3592     -ms-flex: 0 0 150px;
3593     flex: 0 0 150px;
3594     max-width: 150px;
3595   }
3596 
3597   .addonsPurchase .addons {
3598     max-height: 250px;
3599     overflow: auto;
3600   }
3601 
3602   .btn .loading:after {
3603     content: "";
3604     display: inline-block;
3605     width: 20px;
3606     height: 20px;
3607     padding: 3px;
3608     aspect-ratio: 1;
3609     border-radius: 50%;
3610     background: #FFFFFF;
3611     --_m: conic-gradient(#0000 10%, #ffffff), linear-gradient(#ffffff 0 0) content-box;
3612     -webkit-mask: var(--_m);
3613     mask: var(--_m);
3614     -webkit-mask-composite: source-out;
3615     mask-composite: subtract;
3616     animation: l3 1s infinite linear;
3617     margin: auto;
3618     vertical-align: middle;
3619     margin-left: 10px;
3620   }
3621 
3622   #qrcode img, #qrcode canvas {
3623     width: 50px;
3624     position: absolute;
3625     top: 12px;
3626     left: 16px;
3627   }
3628 
3629   .t-preview {
3630     position: absolute;
3631     top: 17px;
3632     left: 75px;
3633   }
3634   .t-preview p {
3635     margin: 0;
3636     font-size: 12px !important;
3637   }
3638   .t-preview .h3 {
3639     font-size: 16px !important;
3640     margin-bottom: 5px;
3641     font-weight: 600;
3642   }
3643   .scanCard {
3644     width: 100%;
3645     border: 1px solid;
3646     height: 76px;
3647     background-color: #fff;
3648   }
3649   .scanCard > div > img {
3650     position: absolute;
3651     right: 0;
3652     width: 55px;
3653   }
3654 
3655   @keyframes l3 {
3656     100% {
3657       transform: rotate(1turn);
3658     }
3659   }
3660 
3661   @media (min-width: 991px) {
3662     .sectionPurchase {
3663       height: 100%;
3664       position: relative;
3665       max-width: 1344px;
3666       background-color: #fff;
3667       top: 50%;
3668       left: 50%;
3669       transform: translate(-50%, -50%);
3670     }
3671     .headerPurchase h3 {
3672       font-size: 20px;
3673     }
3674     .purchaseArea h4 {
3675       font-size: 16px;
3676     }
3677 
3678     .menuPurchase ul li {
3679         font-size: 16px;
3680     }
3681     
3682     .contentPurchase {
3683       margin-bottom: 30px;
3684     }
3685     .contentPurchase h5 {
3686       font-size: 16px;
3687     }
3688 
3689     .item-cards .item-card p,
3690     .item-addons .item-addon p {
3691       font-size: 16px !important;
3692     }
3693 
3694     .cards {
3695       float: right;
3696       width: 400px;
3697     }
3698 
3699     .item-cards .item-card {
3700       width: calc(25% - 30px);
3701       max-width: calc(25% - 30px);
3702       flex: 0 0 calc(25% - 30px);
3703     }
3704 
3705       #itemAddons .item-card {
3706         position: relative;
3707         width: calc(16% - 40px);
3708         max-width: calc(16% - 40px);
3709         flex: 0 0 calc(16% - 40px);
3710       }
3711       
3712     .purchase-button-wrapper {
3713         padding: 10px 20px;
3714     }
3715   }
3716 
3717   @media (max-width: 1200px) {
3718     .item-cards .item-card {
3719       width: calc(33% - 30px);
3720       max-width: calc(33% - 30px);
3721       flex: 0 0 calc(33% - 30px);
3722     }
3723   }
3724 
3725   @media (max-width: 992px) {
3726     .purchasePopup {
3727       padding: 0;
3728     }
3729     .item-cards .item-card h5,
3730     .item-addons .item-addon h5 {
3731       max-height: 30px;
3732     }
3733 
3734     .back-purchase-button, .back-spotify, .next-purchase-button {
3735         width: 100%;
3736     }
3737     .addon-itm-title {
3738       width: 300px;
3739     }
3740     .addon-itm-line-price {
3741       margin-right: 10px;
3742     }
3743     .t-preview {
3744       top: 10px;
3745     }
3746 
3747     .card-qty a {
3748       height: 15px;
3749     }
3750     
3751     .purchase-button-wrapper {
3752       padding: 15px;
3753     }
3754   }
3755 
3756   @media (max-width: 576px) {
3757     .purchase-button .btn {
3758         width: 100%!important;
3759     }
3760     .purchase-button > .col-12 {
3761       padding-left: 0;
3762       padding-right: 0;
3763     }
3764   }
3765 </style>
3766 
3767 
3768 <div class="purchasePopup">
3769   <div class="purchaseArea">
3770     
3771       <div class="sectionPurchase purchasePersonalize sectionPurchaseBoard">
3772         <div class="wrapperPurchase">
3773           <div class="purchase-content">
3774             <div class="headerPurchase">
3775   <h3 class="text-uppercase">
3776     
3777       customize your flower board
3778     
3779   </h3>
3780   <a class="close-purchase-popup">
3781   <svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="18" height="18" viewBox="0 0 18 18" fill="none">
3782     <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"/>
3783   </svg>
3784 </a>
3785 
3786 </div>
3787 <div class="contentPurchase">
3788   <div class="row">
3789     
3790       <div class="col-12">
3791         
3792 
3793 <style>
3794   
3795   
3796   .customize-papan .group-field-1 .input-field {float: left;width: 100%;height: 317px;background-color: #E5E5EA;}
3797   .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;}
3798   
3799   .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;}
3800   .customize-papan .btn-upload-papan svg {width: 21px;height: 25px;display: block;align-self: center;margin: auto;margin-bottom: 12px;}
3801   .svgLogoPapan {position: absolute;width: 100%;top: 50%;left: 50%;transform: translate(-50%, -50%);text-align: center;}
3802   .svgLogoPapan p {color: #8E8E93; margin: 0;}
3803   .svgLogoPapan p span {font-size: 12px;color: #FF0E00;}
3804   .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;}
3805   #suggest-messages {position: absolute;bottom: 5px;left: 5px;}
3806   #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;}
3807   .case-occasion .nice-select:after {border-bottom: 2px solid #333;border-right: 2px solid #333;right: 20px;top: 42%;width: 10px;height: 10px;}
3808   .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;}
3809   .customize-papan .input-field .limit {position: absolute;right: 15px;top: 0;color: #757575;}
3810 
3811   @media (min-width: 991px) {
3812     .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);}
3813     .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);}
3814   }
3815 </style>
3816 
3817 <input type="hidden" data-properties="penerima" value="-">
3818 <div class="customize-papan">
3819   <div class="container">
3820     <div class="field-papan group-field-1 form-group">
3821       <div class="input-field">
3822         <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.
3823 (Ex: Selamat Menempuh Hidup Baru A & B)." maxlength="100"></textarea>
3824         <p class="limit">0/100</p>
3825         <div id="suggest-messages">
3826           <a id="show_note_papan1" href="#">
3827             <div class="suggest-message" id="note_btn_div1">
3828               <span class="promo-code-link" id="note_btn_papan1">Contoh Kata WEDDING</span>
3829             </div>
3830           </a>
3831           <a id="show_note_papan2" href="#">
3832             <div class="suggest-message" id="note_btn_div2">
3833               <span class="promo-code-link" id="note_btn_papan2">Contoh Kata SELAMAT</span>
3834             </div>
3835           </a>
3836           <a id="show_note_papan3" href="#">
3837             <div class="suggest-message" id="note_btn_div3">
3838               <span class="promo-code-link" id="note_btn_papan3">Contoh Kata DUKA CITA</span>
3839             </div>
3840           </a>
3841         </div>
3842       </div>
3843     </div>
3844     <div class="hide">
3845       <input type="hidden" value="" id="note_id_papan1" name="note_id_papan1" style="top: 0px;">
3846       <input type="hidden" value="" id="note_btn_id_papan1" name="note_btn_id_papan1">
3847     </div>
3848     <div class="hide">
3849       <input type="hidden" value="" id="note_id_papan2" name="note_id_papan2" style="top: 0px;">
3850       <input type="hidden" value="" id="note_btn_id_papan2" name="note_btn_id_papan2">
3851     </div>
3852     <div class="hide">
3853       <input type="hidden" value="" id="note_id_papan3" name="note_id_papan3" style="top: 0px;">
3854       <input type="hidden" value="" id="note_btn_id_papan3" name="note_btn_id_papan3">
3855     </div>
3856     <div class="field-papan group-field-2 form-group">
3857       
3858       <label for="logoPapan" onclick="" class="input-field field-logo">
3859         
3860         
3861         
3862         <div class="btn-upload-papan w-100">
3863           <?xml version="1.0" encoding="UTF-8"?>
3864           <img src="" style="display:none">
3865           <div class="svgLogoPapan">
3866             <svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="22" height="26" viewBox="0 0 22 26" fill="none">
3867               <path d="M6.5 20H15.5V11H21.5L11 0.5L0.5 11H6.5V20ZM0.5 23H21.5V26H0.5V23Z" fill="black"/>
3868             </svg>
3869             <p>Upload Logo <span>*optional</span></p>
3870           </div>
3871         </div>
3872         
3873       </label>
3874       
3875       <input
3876         type="hidden"
3877         data-properties="papan-logo"
3878         value=""
3879       >
3880       <input
3881         type="file"
3882         id="logoPapan"
3883         accept="image/*"
3884         style="position: absolute;width: 1px;height: 1px;padding: 0"
3885       >
3886       
3887       <div class="input-field">
3888         <input class="has-limit sender-name" type="text" placeholder="Nama Pengirim" data-properties="pengirim" maxlength="35"/>
3889         <p class="limit">0/35</p>
3890       </div>
3891       
3892     </div>
3893     
3894   </div>
3895 </div>
3896       </div>
3897     
3898   </div>
3899 </div>
3900 
3901           </div>
3902           <div class="purchase-button-wrapper">
3903             <div class="purchase-button btn-card row m-0">
3904   <div class="col-12 col-lg-2 text-left mb-2 p-0">
3905     
3906   </div>
3907   <div class="btn-next-card col-12 col-lg-10 text-right">
3908     
3909     
3910     <button
3911       
3912         
3913       
3914       class="btn next-purchase-button text-uppercase"
3915       
3916         disabled
3917       
3918     >
3919       <span>save your flower board</span>
3920     </button>
3921   </div>
3922 </div>
3923 
3924           </div>
3925         </div>
3926       </div>
3927     
3928     
3929     
3930       <div
3931         class="sectionPurchase sectionPurchaseBoard hide"
3932         data-section="address"
3933       >
3934         <div class="wrapperPurchase">
3935           <div class="purchase-content">
3936             <div class="headerPurchase">
3937   <h3>
3938     Complete Your Order
3939   </h3>
3940   <a class="close-purchase-popup">
3941   <svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="18" height="18" viewBox="0 0 18 18" fill="none">
3942     <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"/>
3943   </svg>
3944 </a>
3945 
3946 </div>
3947 <div class="contentPurchase">
3948   <div class="row">
3949     <div class="col-12 position-relative">
3950       <div class="addressPurchase">
3951         
3952           <h4 class="text-uppercase">recipient delivery address</h4>
3953           <p>Share the delivery address to send your heartfelt blooms straight to their door.</p>
3954         
3955         <div class="formAddressPurchase row">
3956           <div class="col-12">
3957             <form>
3958               <div class="form-group row mb-2 mb-lg-4">
3959                 <div class="col-6 position-relative">
3960                   <input id="first_name" type="text" class="form-control input__field" placeholder="" required>
3961                   <label for="first_name" class="input__label">First Name<span>*</span></label>
3962                 </div>
3963                 <div class="col-6 position-relative">
3964                   <input id="last_name" type="text" class="form-control input__field" placeholder="" required>
3965                   <label for="last_name" class="input__label">Last Name<span>*</span></label>
3966                 </div>
3967                 <input type="hidden" data-properties="nama-penerima">
3968               </div>
3969               
3970                 <h4 class="text-uppercase">how you want to input your address</h4>
3971                 <div class="form-group row mb-2 mb-lg-4 form-address-upload">
3972                   <div class="col-6 position-relative">
3973                     <label class="address-manualy">
3974                       <svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="18" height="17" viewBox="0 0 18 17" fill="none">
3975   <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
39751216 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
39755 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"/>
3976 </svg>
3977 <span>Input Address Manually</span>
3978                     </label>
3979                   </div>
3980                   <div class="col-6 position-relative">
3981                     <label for="address-upload" class="address-upload">
3982                       <svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="12" height="13" viewBox="0 0 12 13" fill="none">
3983   <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"/>
3984 </svg>
3985 <span>Upload Address Picture</span>
3986                     </label>
3987                     <input
3988                       id="address-upload"
3989                       type="file"
3990                       accept="image/png, image/jpeg"
3991                       style="position: absolute; padding: 0;width: 1px;height: 1px"
3992                     >
3993                     <input type="hidden" class="props-address-upload" data-properties="foto-alamat">
3994                   </div>
3995                 </div>
3996                 <img width="150" height="" src="" class="photo-address" style="display: none;">
3997               
3998               <div class="form-group row position-relative mb-2 mb-lg-4 form-address">
3999                 <div class="col-12">
4000                   <textarea
4001                     id="delivery_address"
4002                     data-properties="alamat-penerima"
4003                     class="form-control input__field col-12"
4004                     placeholder=""
4005                     required
4006                   ></textarea>
4007                   <label for="delivery_address" class="input__label">Delivery Address<span>*</span></label>
4008                   
4009                 </div>
4010               </div>
4011               <div class="form-group row mb-2 mb-lg-4 form-address">
4012                 <div class="col-6 position-relative">
4013                   <input
4014                     id="recipient_number"
4015                     type="text"
4016                     data-properties="telepon-penerima"
4017                     class="form-control input__field"
4018                     placeholder=""
4019                     required
4020                   >
4021                   <label for="recipient_number" class="input__label">Recipient number<span>*</span></label>
4022                 </div>
4023                 <div class="col-6 position-relative">
4024                   <input
4025                     id="company"
4026                     type="text"
4027                     data-properties="company"
4028                     class="form-control input__field"
4029                     placeholder=""
4030                   >
4031                   <label for="company" class="input__label">Company (Optional)</label>
4032                 </div>
4033               </div>
4034               <div class="form-group row mb-2 mb-lg-4 form-address">
4035                 <div class="col-6 position-relative">
4036                   <input
4037                     id="province"
4038                     type="text"
4039                     class="form-control input__field"
4040                     placeholder=""
4041                     value="Jakarta"
4042                     data-properties="province"
4043                   >
4044                   <label for="province" class="input__label">Province</label>
4045                 </div>
4046                 <div class="col-6 position-relative">
4047                   <select id="zip" class="form-control select-search" required></select>
4048                 </div>
4049               </div>
4050             </form>
4051           </div>
4052         </div>
4053       </div>
4054       <div class="addonsPurchase">
4055         <h4 class="text-uppercase">add-ons</h4>
4056         <div class="addons">
4057           <p>No Add-Ons</p>
4058           <!--
4059             <button class="add-addon">
4060               <svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="12" height="12" viewBox="0 0 12 12" fill="none">
4061                 <path d="M5.5 6.5H0V5.5H5.5V0H6.5V5.5H12V6.5H6.5V12H5.5V6.5Z" fill="black"/>
4062               </svg>
4063               <span>Enhance my moment with Add-ons</span>
4064             </button>
4065           -->
4066         </div>
4067       </div>
4068     </div>
4069     
4070   </div>
4071 </div>
4072 
4073 
4073<script>
4074 document.addEventListener('DOMContentLoaded', function() {
4075   // Detect iOS
4076   var isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;
4077   
4078   if (isIOS) {
4079     document.querySelector('.formAddressPurchase').classList.add('ios');
4080     
4081     // iOS specific fixes
4082     var inputs = document.querySelectorAll('.formAddressPurchase .input__field');
4083     
4084     inputs.forEach(function(input) {
4085       // Force enable touch events on iOS
4086       input.style.webkitUserSelect = 'text';
4087       input.style.webkitTouchCallout = 'default';
4088       input.style.pointerEvents = 'auto';
4089       input.style.touchAction = 'manipulation';
4090       
4091       // Add explicit touch event listeners for iOS
4092       input.addEventListener('touchstart', function(e) {
4093         e.stopPropagation();
4094         this.focus();
4095       }, { passive: false });
4096       
4097       input.addEventListener('touchend', function(e) {
4098         e.preventDefault();
4099         e.stopPropagation();
4100         this.focus();
4101         this.click();
4102       }, { passive: false });
4103       
4104       // Force focus on tap for iOS
4105       input.addEventListener('click', function(e) {
4106         e.stopPropagation();
4107         if (document.activeElement !== this) {
4108           this.focus();
4109         }
4110       });
4111     });
4112     
4113     // Fix for label overlapping on iOS
4114     var labels = document.querySelectorAll('.formAddressPurchase .input__label');
4115     labels.forEach(function(label) {
4116       label.style.pointerEvents = 'none';
4117       label.addEventListener('touchstart', function(e) {
4118         e.preventDefault();
4119         var input = this.parentNode.querySelector('.input__field');
4120         if (input) {
4121           input.focus();
4122         }
4123       });
4124     });
4125   }
4126   
4127   // Handle input state for all browsers, especially iOS
4128   var inputs = document.querySelectorAll('.input__field');
4129   
4130   inputs.forEach(function(input) {
4131     // Handle input events
4132     input.addEventListener('input', function() {
4133       if (this.value.trim() !== '') {
4134         this.classList.add('has-value');
4135       } else {
4136         this.classList.remove('has-value');
4137       }
4138     });
4139     
4140     // Handle focus
4141     input.addEventListener('focus', function() {
4142       this.classList.add('focused');
4143       // iOS specific: ensure input is visible
4144       if (isIOS) {
4145         setTimeout(function() {
4146           input.scrollIntoView({ behavior: 'smooth', block: 'center' });
4147         }, 300);
4148       }
4149     });
4150     
4151     // Handle blur
4152     input.addEventListener('blur', function() {
4153       this.classList.remove('focused');
4154       if (this.value.trim() !== '') {
4155         this.classList.add('has-value');
4156       } else {
4157         this.classList.remove('has-value');
4158       }
4159     });
4160     
4161     // Initial check for pre-filled values
4162     if (input.value.trim() !== '') {
4163       input.classList.add('has-value');
4164     }
4165   });
4166   
4167   // Additional iOS fixes
4168   if (isIOS) {
4169     // Prevent iOS Safari from adding default styling
4170     document.addEventListener('touchstart', function() {}, { passive: true });
4171     
4172     // Fix viewport issues on iOS
4173     var viewport = document.querySelector('meta[name=viewport]');
4174     if (viewport) {
4175       viewport.setAttribute('content', 
4176         'width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no'
4177       );
4178     }
4179   }
4180 });
4181 </script>
4181
4182           </div>
4183           <div class="purchase-button-wrapper">
4184             <div class="purchase-button btn-address row m-0">
4185   <div class="col-12 col-lg-2 text-left mb-2 p-0">
4186     
4187       <button class="back-purchase-button back-address text-uppercase">
4188         <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="https://hokiku.io/images/2025/02/10/logo.png">
4189           <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"/>
4190         </svg>
4191         <span>Back</span>
4192       </button>
4193     
4194   </div>
4195   <div class="btn-next-card col-12 col-lg-10 text-right">
4196     
4197       <!--
4198         <button class="back-purchase-button back-address text-uppercase mr-lg-2 mb-2 mb-lg-0">
4199           <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="https://hokiku.io/images/2025/02/10/logo.png">
4200             <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"/>
4201           </svg>
4202           <span>Back</span>
4203         </button>
4204       -->
4205     
4206     
4207     <button
4208       
4209         id="addtocart-card"
4210       
4211       class="btn  next-address text-uppercase"
4212       
4213     >
4214       <span>add to cart</span>
4215     </button>
4216   </div>
4217 </div>
4218 
4219           </div>
4220         </div>
4221       </div>
4222     
4223   </div>
4224 </div>
4225 <div id="backgroundPopup"></div>
4226 
4227 
4228 
4229 <input
4230   data-index="1"
4231   type="hidden"
4232   id="properties-delivery-date"
4233   name="properties[Delivery Date]"
4234   value="-"
4235 >
4236 <input
4237   data-index="2"
4238   type="hidden"
4239   id="properties-delivery-time"
4240   name="properties[Delivery Time]"
4241   value="-"
4242 >
4243 <input
4244   data-index="4"
4245   type="hidden"
4246   id="properties-nama-penerima"
4247   name="properties[Nama Penerima]"
4248   value="-"
4249 >
4250 <input
4251   data-index="5"
4252   type="hidden"
4253   id="properties-alamat-penerima"
4254   name="properties[Alamat Penerima]"
4255   value="-"
4256 >
4257 <input
4258   data-index="6"
4259   type="hidden"
4260   id="properties-kodepos"
4261   name="properties[Kodepos]"
4262   value="-"
4263 >
4264 <input data-index="7" type="hidden" id="properties-telepon-penerima" name="properties[Telepon Penerima]">
4265 
4266   
4267     <input
4268       data-index="8"
4269       type="hidden"
4270       id="properties-kartu-nama-penerima"
4271       name="properties[Kartu Nama Penerima]"
4272       value="-"
4273     >
4274   
4275   <textarea
4276     data-index="9"
4277     type="hidden"
4278     id="properties-kartu-pesan"
4279     name="properties[Kartu Pesan]"
4280     style="display: none"
4281   >-</textarea>
4282 
4283 
4284 
4285   <input
4286     data-index="10"
4287     type="hidden"
4288     id="properties-kartu-nama-pengirim"
4289     name="properties[Kartu Nama Pengirim]"
4290     value="-"
4291   >
4292
4293 <!-- Additional Shipping -->
4294 <input type="hidden" id="properties-kota-pengiriman-province" name="properties[Province]">
4295 <input
4296   type="hidden"
4297   id="properties-kota-pengiriman-country"
4298   name="properties[Country]"
4299   value="Indonesia"
4300 >
4301 <input type="hidden" id="properties-shipping" name="properties[Shipping]">
4302 
4303 <input type="hidden" id="properties-time" name="properties[Time]">
4304 <input type="hidden" id="properties-card" name="properties[Card]">
4305 <input type="hidden" id="properties-addons" name="properties[Addons]">
4306 
4307 <input
4308   type="hidden"
4309   id="properties-company"
4310   name="properties[Company]"
4311   value=""
4312 >
4313 
4313<script>
4314   
4315   $(document).ready(function(){
4316     
4317     var text_max_papan1=150;
4318     var msg_text_papan1="";
4319     $('#kartu-ucapan-ucapan').keyup(function(){
4320       var text_length_papan1=$('#kartu-ucapan-ucapan').val().length;
4321       var msg_text_papan1=$('#kartu-ucapan-ucapan').val();
4322     });
4323 
4324     var notes_papan1 = [
4325       
4326       [0,"Happy Wedding (nama & nama)."],[1,"Congratulations lovebirds (nama & nama)."],[2,"Selamat berbahagia (nama & nama)."],[3,"Selamat menempuh hidup baru (nama & nama)."]
4327       
4328     ];
4329     $('#show_note_papan1').click(function(event){
4330       event.preventDefault();
4331       var idx_papan1=parseInt($('#note_id_papan1').val());
4332       if(isNaN(idx_papan1)){
4333         idx_papan1=0;
4334       }else{
4335         idx_papan1++;
4336         idx_papan1=idx_papan1%notes_papan1.length;
4337       }
4338       var note_papan1=notes_papan1[idx_papan1][1];
4339       $('#note_id_papan1').val(idx_papan1);
4340       $('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan1);
4341       $('#msgDelivery').val(note_papan1);
4342 
4343       var text_length_papan1=$('#kartu-ucapan-papan').val().length;
4344       var idx_2_papan1=parseInt($('#note_btn_id_papan1').val());
4345       if(isNaN(idx_2_papan1)){
4346         idx_2_papan1=0;
4347       }else{
4348         idx_2_papan1++;
4349         //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length;
4350       }
4351       $('#note_btn_id_papan1').val(idx_2_papan1);
4352       //var note_btn=note_btn_text[idx_2][1];
4353       //$('#note_btn').text(note_btn);
4354     });
4355 
4356     var text_max_papan2=150;
4357     var msg_text_papan2="";
4358     $('#kartu-ucapan-ucapan').keyup(function(){
4359       var text_length_papan2=$('#kartu-ucapan-ucapan').val().length;
4360       var msg_text_papan2=$('#kartu-ucapan-ucapan').val();
4361     });
4362 
4363     var notes_papan2 = [
4364       
4365       [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)."]
4366       
4367     ];
4368     $('#show_note_papan2').click(function(event){
4369       event.preventDefault();
4370       var idx_papan2=parseInt($('#note_id_papan2').val());
4371       if(isNaN(idx_papan2)){
4372         idx_papan2=0;
4373       }else{
4374         idx_papan2++;
4375         idx_papan2=idx_papan2%notes_papan2.length;
4376       }
4377       var note_papan2=notes_papan2[idx_papan2][1];
4378       $('#note_id_papan2').val(idx_papan2);
4379       $('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan2);
4380       $('#msgDelivery').val(note_papan2);
4381       var text_length_papan2=$('#kartu-ucapan-papan').val().length;
4382       var idx_2_papan2=parseInt($('#note_btn_id_papan2').val());
4383       if(isNaN(idx_2_papan2)){
4384         idx_2_papan2=0;
4385       }else{
4386         idx_2_papan2++;
4387         //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length;
4388       }
4389       $('#note_btn_id_papan2').val(idx_2_papan2);
4390       //var note_btn=note_btn_text[idx_2][1];
4391       //$('#note_btn').text(note_btn);
4392     });
4393 
4394     var text_max_papan3=150;
4395     var msg_text_papan3="";
4396     $('#kartu-ucapan-ucapan').keyup(function(){
4397       var text_length_papan3=$('#kartu-ucapan-ucapan').val().length;
4398       var msg_text_papan3=$('#kartu-ucapan-ucapan').val();
4399     });
4400 
4401     var notes_papan3 = [
4402       
4403       [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)."]
4404       
4405     ];
4406     $('#show_note_papan3').click(function(event){
4407       event.preventDefault();
4408       var idx_papan3=parseInt($('#note_id_papan3').val());
4409       if(isNaN(idx_papan3)){
4410         idx_papan3=0;
4411       }else{
4412         idx_papan3++;
4413         idx_papan3=idx_papan3%notes_papan3.length;
4414       }
4415       var note_papan3=notes_papan3[idx_papan3][1];
4416       $('#note_id_papan3').val(idx_papan3);
4417       $('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan3);
4418       $('#msgDelivery').val(note_papan3);
4419       var text_length_papan3=$('#kartu-ucapan-papan').val().length;
4420       var idx_2_papan3=parseInt($('#note_btn_id_papan3').val());
4421       if(isNaN(idx_2_papan3)){
4422         idx_2_papan3=0;
4423       }else{
4424         idx_2_papan3++;
4425         //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length;
4426       }
4427       $('#note_btn_id_papan3').val(idx_2_papan3);
4428       //var note_btn=note_btn_text[idx_2][1];
4429       //$('#note_btn').text(note_btn);
4430     });
4431 
4432     var text_max_papan4=150;
4433     var msg_text_papan4="";
4434     $('#kartu-ucapan-ucapan').keyup(function(){
4435       var text_length_papan4=$('#kartu-ucapan-ucapan').val().length;
4436       var msg_text_papan4=$('#kartu-ucapan-ucapan').val();
4437     });
4438 
4439     $('#show_note_papan4').click(function(event){
4440       var notes_papan4 = [
4441         [0,"Here’s to you—steadier, stronger and better every day."],
4442         [1,"Warmest wishes for a speedy recovery!"],
4443         [2,"Dengan ucapan terhangat, semoga lekas membaik dan semakin pulih setiap harinya ya."],
4444         [3,"Semoga lekas sembuh untuk kembali beraktivitas dan berkarya."]
4445       ];
4446       event.preventDefault();
4447       var idx_papan4=parseInt($('#note_id_papan4').val());
4448       console.log(idx_papan4, 'idx_papan4')
4449       if(isNaN(idx_papan4)){
4450         idx_papan4=0;
4451       }else{
4452         idx_papan4++;
4453         idx_papan4=idx_papan4%notes_papan4.length;
4454       }
4455       var note_papan4=notes_papan4[idx_papan4][1];
4456       $('#note_id_papan4').val(idx_papan4);
4457       $('#kartu-ucapan-papan, #properties-kartu-ucapan, #properties-kartu-pesan').val(note_papan4);
4458       console.log(note_papan4, 'note_papan4')
4459       var text_length_papan4=$('#kartu-ucapan-papan').val().length;
4460       var idx_2_papan4=parseInt($('#note_btn_id_papan4').val());
4461       if(isNaN(idx_2_papan4)){
4462         idx_2_papan4=0;
4463       }else{
4464         idx_2_papan4++;
4465         //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length;
4466       }
4467       $('#note_btn_id_papan4').val(idx_2_papan4);
4468     });
4469 
4470     /*
4471     $("#jenisPapan").change(function(){
4472       $( "select option:selected").each(function(){
4473         if($(this).attr("value")=="Happy Wedding"){
4474           $("#suggest-messages a").hide();
4475           $("#show_note_papan1").show();
4476           $("#kartu-ucapan-papan").val("");
4477         }
4478         if($(this).attr("value")=="Congratulations"){
4479           $("#suggest-messages a").hide();
4480           $("#show_note_papan2").show();
4481           $("#kartu-ucapan-papan").val("");
4482         }
4483         if($(this).attr("value")=="Duka Cita"){
4484           $("#suggest-messages a").hide();
4485           $("#show_note_papan3").show();
4486           $("#kartu-ucapan-papan").val("");
4487         }
4488       });
4489     }).change();
4490     */
4491 
4492     
4493 
4494     
4495 
4496     $(".variant-metafield").each(function(){
4497       const t = $(this)
4498       const id = t.attr("id")
4499       const target = $(`[data-select=${id}]`)
4500       t.on('select2:selecting', function(e) {
4501         const data = e.params.args.data
4502         target.val(data.text)
4503       });
4504     })
4505   })
4506 </script>
4506
4507 
4508 <div id="popupCart">
4509   <div class="container">
4510     <div class="wrapperPopupCart">
4511       <div class="headerPopupCart">
4512         <div class="d-flex pl-5 pr-5 p-4">
4513           <svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="16" height="12" viewBox="0 0 16 12" fill="none">
4514             <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"/>
4515           </svg>
4516           <span>item added to your cart</span>
4517         </div>
4518         <a class="close-purchase-popup">
4519   <svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="18" height="18" viewBox="0 0 18 18" fill="none">
4520     <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"/>
4521   </svg>
4522 </a>
4523 
4524       </div>
4525       <div class="contentPopupCart">
4526         <div class="pl-5 pr-5 p-4">
4527           <div class="itemContent row m-0 justify-content-between">
4528             <div class="col-2 align-self-center">
4529               
4530               <img
4531                 class="d-block"
4532                 width="80"
4533                 src="//outerbloom.com/cdn/shop/files/Blossom-Shine-WM_80x.jpg?v=1695788426"
4534               >
4535             </div>
4536             <div class="col-10 align-self-center">
4537               <div class="row pl-3">
4538                 <div class="col-12 col-lg-7">
4539                   <span class="titleCartPopup text-uppercase">BASKET168: Portal Login Slot Eksklusif Game Gacor Online Lengkap Bonus Harian</span>
4540                 </div>
4541                 <div class="d-flex justify-content-end col-12 col-lg-5">
4542                   <span class="deleteCartPopup hide">Delete</span>
4543                   <span class="lineCartPrice align-self-center">Rp 5.000</span>
4544                 </div>
4545               </div>
4546             </div>
4547           </div>
4548           <div class="itemProperties">
4549             
4550               <div class="propDeliver">
4551                 <h4>delivery option detail</h4>
4552                 <p>
4553                   <span>delivery city</span>
4554                   <span class="propDeliveryCity">jakarta</span>
4555                 </p>
4556                 <p>
4557                   <span>delivery date</span>
4558                   <span class="propDeliveryDate">24/03/2025</span>
4559                 </p>
4560                 <p>
4561                   <span>delivery time</span>
4562                   <span class="propDeliveryTime">Afternoon | 13:00 - 18:00</span>
4563                 </p>
4564               </div>
4565               <div class="propAddress">
4566                 <h4>delivery option detail</h4>
4567                 <p>
4568                   <span>RECIPIENT NAME</span>
4569                   <span class="propDeliveryName">jane doe</span>
4570                 </p>
4571                 <p>
4572                   <span>delivery address</span>
4573                   <span class="propDeliveryAddress"
4574                     >Jl. Gatot Subroto No. 25, RT.2/RW.4, Kuningan Barat, Kecamatan Mampang Prapatan, Kota Jakarta
4575                     Selatan, Daerah Khusus Ibukota Jakarta 12710, Indonesia</span
4576                   >
4577                 </p>
4578                 <p>
4579                   <span>recipient phone number</span>
4580                   <span class="propDeliveryPhone">(+62) 812-3456-7890</span>
4581                 </p>
4582                 <p>
4583                   <span>PROVINCE</span>
4584                   <span class="propDeliveryProv">Jakarta</span>
4585                 </p>
4586                 <p>
4587                   <span>postal code</span>
4588                   <span class="propDeliveryZip">12710</span>
4589                 </p>
4590                 
4591                 
4592               </div>
4593             
4594           </div>
4595           <div class="itemAddonCart">
4596             <div class="toggleAddonCart d-flex justify-content-between">
4597               <h4>add-ons (0)</h4>
4598               <svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="5" height="9" viewBox="0 0 5 9" fill="none">
4599                 <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"/>
4600               </svg>
4601             </div>
4602             <div class="wrapperItemAddonCart"></div>
4603           </div>
4604           
4605         </div>
4606       </div>
4607       <div class="footerPopupCart">
4608         <div class="row m-0 pl-5 pr-5 p-4">
4609           <a class="btn btnViewCart w-100 text-uppercase text-center" href="/cart">View Cart</a>
4610           <a class="btn btnViewCheckout w-100 text-uppercase text-center" href="/checkout"><span>Checkout</span></a>
4611           <a class="btnContinueShopping w-100 text-center" href="/">Continue shopping</a>
4612         </div>
4613       </div>
4614     </div>
4615   </div>
4616 </div>
4617 
4618 
4619 
4619<script>
4620   const shareButton = document.getElementById('shareButton');
4621 
4622   shareButton.addEventListener('click', () => {
4623     if (navigator.share) {
4624       navigator.share({
4625         title: "BASKET168: Portal Login Slot Eksklusif Game Gacor Online Lengkap Bonus Harian",
4626         url: "/products/blossom-shine",
4627         text: 'Check out this page!'
4628       })
4629       .then(() => console.log('Successful share'))
4630       .catch((error) => console.log('Error sharing', error));
4631     } else {
4632       alert('Web Share API is not supported in this browser.');
4633     }
4634   });
4635 
4636   // Inventory validation function
4637   function checkInventoryStatus() {
4638     const productSelect = document.getElementById('productSelect');
4639     const purchaseButton = document.querySelector('#personalizeBtn button');
4640     
4641     if (!productSelect || !purchaseButton) return;
4642 
4643     const selectedVariantId = productSelect.value;
4644     
4645     // Get variant data from Shopify
4646     fetch(`/products/blossom-shine.js`)
4647       .then(response => response.json())
4648       .then(product => {
4649         const selectedVariant = product.variants.find(variant => variant.id == selectedVariantId);
4650         
4651         if (selectedVariant) {
4652           const isOutOfStock = selectedVariant.inventory_quantity <= 0 && 
4653                                selectedVariant.inventory_management === 'shopify' && 
4654                                selectedVariant.inventory_policy !== 'continue';
4655           
4656           if (isOutOfStock) {
4657             purchaseButton.disabled = true;
4658             purchaseButton.textContent = 'Out of Stock';
4659             purchaseButton.setAttribute('data-out-of-stock', 'true');
4660             purchaseButton.style.backgroundColor = '#cccccc';
4661             purchaseButton.style.cursor = 'not-allowed';
4662           } else {
4663             // Check if button was disabled due to other conditions
4664             
4665             
4666             
4667             
4668             
4669             
4670             
4671             
4672             const isOtherDisabled = false || true || false;
4673             
4674             if (!isOtherDisabled) {
4675               purchaseButton.disabled = false;
4676               purchaseButton.textContent = 'customize your flower board';
4677               purchaseButton.removeAttribute('data-out-of-stock');
4678               purchaseButton.style.backgroundColor = '';
4679               purchaseButton.style.cursor = '';
4680             }
4681           }
4682         }
4683       })
4684       .catch(error => {
4685         console.error('Error checking inventory:', error);
4686       });
4687   }
4688 
4689   // Check inventory on page load
4690   document.addEventListener('DOMContentLoaded', function() {
4691     checkInventoryStatus();
4692     
4693     // Listen for variant changes
4694     const productSelect = document.getElementById('productSelect');
4695     if (productSelect) {
4696       productSelect.addEventListener('change', checkInventoryStatus);
4697     }
4698   });
4699 
4700   // Prevent form submission if out of stock
4701   document.addEventListener('click', function(e) {
4702     if (e.target.matches('button[data-out-of-stock="true"]')) {
4703       e.preventDefault();
4704       e.stopPropagation();
4705       alert('This product is currently out of stock and cannot be purchased.');
4706       return false;
4707     }
4708   });
4709 </script>
4709
4710 
4711 
4712   
4713 </div>
4714 
4715           </div>
4716         </div>
4717       </div>
4718     </div>
4719     <div id="product-bottom">
4720       
4721         <div class="product-description rte bg-card col-12 py-3 px-0 m-0" itemprop="description">
4722           <div class="container">
4723             
4724 
4725 
4726 
4727 
4728     <div class="short-desc-mobile d-block d-lg-none mb-3">
4729         <div class="short-desc">
4730             <ul>
4731 <li><strong>Basket168 Adalah portal login slot eksklusif dengan kemudahan akses di banyak game online gacor paling lengkap keamanan berstandar tinggi serta bonus harian setiap hari.</strong></li>
4732         </div>
4733         <label class="more-mobile">Show More →</label>
4734     </div>
4735 
4736 <style>
4737 .animated-title {
4738     text-align: center;
4739     font-weight: bold;
4740     color: #079c02;
4741     font-size: 28px;
4742     position: relative;
4743     animation: glow 2s infinite alternate, moveUpDown 3s infinite;
4744 }
4745 
4746 /* Efek glow / bercahaya hijau */
4747 @keyframes glow {
4748     0% { text-shadow: 0 0 5px #079c02; color: #079c02; }
4749     50% { text-shadow: 0 0 20px #00ff55; color: #12d12b; }
4750     100% { text-shadow: 0 0 10px #1bff00; color: #079c02; }
4751 }
4752 
4753 /* Efek gerakan naik turun */
4754 @keyframes moveUpDown {
4755     0% { transform: translateY(0px); }
4756     50% { transform: translateY(-5px); }
4757     100% { transform: translateY(0px); }
4758 }
4759 </style>
4760 
4761 
4761<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/shopify-cartjs/1.1.0/cart.min.js"></script>
4761
4762 
4762<script>
4763   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});
4764 
4765   const productType = $("[data-product-type]").data("product-type")
4766   const productDate = Date.parse(new Date())
4767   
4768   const shop = 'outerbloom1.myshopify.com'
4769   const host = 'https://app.asmaraku.com'
4770   // const host = 'http://localhost:5001'
4771 
4772   const gsheet = "https://script.google.com/macros/s/AKfycbyqa6mPD6lVjU6hiHr12J8URZ2aJBGyxBsGQ0QtEIDari-rBk_9vSOITjSSmUXL1NwxEg/exec"
4773   
4774   const qrID = "041025" + randomString(4, 'aAbCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ')
4775 
4776   $("#properties-time").val(new Date().getTime())
4777 
4778   const isIOS = /iPhone|iPad|iPod/i.test(navigator.userAgent);
4779 
4780   if(!isIOS) {
4781     $("#full-date").attr("type", "button")
4782   }
4783 
4784   let dateTime = new Date();
4785   let today = dateTime.getDate();
4786   let day = dateTime.getDay();
4787   let hour = dateTime.getHours();
4788   let min = dateTime.getMinutes();
4789   let timeOfDay = hour + (min / 100);
4790 
4791   async function getFetch(url) {
4792     const response = await fetch(url);
4793     let status = false
4794     let result
4795     if(response.ok) {
4796       status = true
4797       result = await response.json();
4798     }
4799     return {
4800       status,
4801       data: result
4802     }
4803   }
4804 
4805   
4806 
4807   function setCookie(cname, cvalue, exMins) {
4808     var d = new Date();
4809     d.setTime(d.getTime() + (exMins*60*1000));
4810     var expires = "expires="+d.toUTCString();  
4811     document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
4812   }
4813 
4814   function getCookie(cname) {
4815     let name = cname + "=";
4816     let decodedCookie = decodeURIComponent(document.cookie);
4817     let ca = decodedCookie.split(';');
4818     for(let i = 0; i <ca.length; i++) {
4819       let c = ca[i];
4820       while (c.charAt(0) == ' ') {
4821         c = c.substring(1);
4822       }
4823       if (c.indexOf(name) == 0) {
4824         return c.substring(name.length, c.length);
4825       }
4826     }
4827     return "";
4828   }
4829 
4830   async function renderDate() {
4831     let dataDate = await getFetch(`${host}/api/shipping/date?domain=${shop}&productId=8144957800663&v=${Date.now()}`);
4832     console.log(dataDate, 'renderDate')
4833     const data = dataDate?.data
4834     const date = data.date
4835     const time = data.time
4836 
4837     console.log(date, 'DATE')
4838 
4839     const weekday = ["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];
4840     const monthly = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];
4841     const htmlDate = []
4842     for(let i = 0;i < date.length;i++) {
4843       const full = date[i].date
4844       const d = new Date(date[i].date);
4845       const day = weekday[d.getDay()];
4846       const dt = d.getDate();
4847       const mt = monthly[d.getMonth()];
4848       const yr = d.getFullYear();
4849       const isDate = Boolean(date[i].isEnabled)
4850       const cutoffpagi = date[i].cutoff?.pagi
4851       const cutoffsiang = date[i].cutoff?.siang
4852       const cutoffMalam = date[i].cutoff?.Malam
4853       var html = `
4854         <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'}>
4855           ${dt === today ?
4856             `Today<span>${dt < 10 ? '0' + dt : dt}</span>` :
4857             `${day}<span>${dt < 10 ? '0' + dt : dt}</span>`
4858           }
4859         </button>
4860       `
4861       htmlDate.push(html)
4862     }
4863     const htmlTime = []
4864     for(var i = 0;i < time.length;i++) {
4865       const timeText = time[i].text
4866       const timeTime = time[i].time
4867       const timeEnabled = time[i].isEnabled
4868       var html = `
4869           <button class="time-single calendarbutton2 btn steps-btn" data-time="${timeText}" ${timeEnabled ? '' : 'disabled'}>${timeText}<br/>${timeTime}</button>
4870         `
4871       htmlTime.push(html)
4872     }
4873     const deliveryDate = document.getElementById("deliveryDate");
4874     if(deliveryDate) {
4875       deliveryDate.insertAdjacentHTML("afterbegin", htmlDate.join(''))
4876       $("#deliveryTime").html(htmlTime)
4877       if(productType !== '') {
4878         console.log("clarity event " + productType + ' calendaring')
4879         window.clarity("event", `${productType} calendaringSchedule`)
4880         // window.clarity("set", productType, `calendaringSchedule - ${productDate}`)
4881       }
4882     }
4883   }
4884 
4885   async function getProvince(city) {
4886     let { data: { province } } = await getFetch(`${host}/api/shipping/address/province?city=${city}`);
4887     console.log(province, 'province')
4888     $("#province").val(province)
4889   }
4890 
4891   async function renderAddress() {
4892     let current
4893     if(getCookie("location_delivery")){
4894       current = getCookie("location_delivery").charAt(0).toUpperCase() + getCookie("location_delivery").slice(1)
4895     }
4896     let address = await getFetch(`${host}/api/shipping/address?domain=${shop}&productId=8144957800663`);
4897     console.log(address)
4898     const data = address?.data?.city
4899     const htmlAddress = []
4900     const grouping = []
4901     for(let i = 0;i < data?.length;i++) {
4902       if(data[i]){
4903         if(data[i]?.group) {
4904           grouping.push(data[i].group)
4905         }
4906         const price = rupiah.format(data[i]?.rate)
4907         let promo = '(Promo Free Delivery)'
4908         if(data[i]?.name === 'Jakarta - PickUp ASHTA'){
4909           promo = '(at SCBD, Ashta)'
4910         } else if(data[i]?.name === 'Jakarta - PickUp ITC'){
4911           promo = '(at Kuningan, ITC Kuningan)'
4912         } else if(data[i]?.name === 'BSD - PickUp'){
4913           promo = '(at Goldfinch Gading Serpong)'
4914         } else if(data[i]?.name === 'Kota Lainnya'){
4915           promo = ''
4916         }
4917         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>`)
4918       }
4919     }
4920     
4921     const deliveryCity = document.getElementById("cities");
4922     if(deliveryCity) {
4923       deliveryCity.insertAdjacentHTML("beforeend", htmlAddress.join(''))
4924       if(!isIOS) {
4925         $(deliveryCity).select2();
4926       }
4927     }
4928   }
4929 
4930   async function renderZip(v, v2, v3) {
4931     const deliveryZip = document.getElementById("zip");
4932     if(v === '') {
4933       return
4934     }
4935     let dataZip = await getFetch(`${host}/api/shipping/address/zip?city=${v}&city2=${v2}&city3=${v3}`);
4936     let zip = dataZip?.data?.zip
4937     console.log(zip)
4938     let htmlZip = []
4939     for(let i = 0; i < zip?.length;i++) {
4940       htmlZip.push(`<option value="${zip[i]?.postalCode} - ${zip[i]?.subdistrict}">${zip[i]?.postalCode} - ${zip[i]?.subdistrict} - ${zip[i]?.city}</option>`)
4941     }
4942     deliveryZip.insertAdjacentHTML("beforeend", htmlZip.join(''))
4943   }
4944 
4945   renderDate()
4946   renderAddress()
4947 
4948   let rupiah = new Intl.NumberFormat('id-ID', {
4949     style: 'currency',
4950     currency: 'IDR',
4951     maximumFractionDigits: 0, 
4952     minimumFractionDigits: 0
4953   });
4954 
4955   async function insertCard(data) {
4956     const response = await fetch(`${host}/api/card/new`, {
4957         method: "POST",
4958         headers: {
4959           'Content-Type': 'application/json',
4960         },
4961         body: data
4962     })
4963     const result = await response.json()
4964     let rowIndex = result?.data?.tableRange.split("Outerbloom!A1:J")[1]
4965     $("#greetingCard").attr("data-index", rowIndex)
4966     return result
4967   }
4968     
4969   async function updateCard(data){
4970     const rowIndex = $("#greetingCard").data("index")
4971     const response = await fetch(`${host}/api/card/update?rowIndex=${rowIndex}`, {
4972         method: "PUT",
4973         headers: {
4974           'Content-Type': 'application/json',
4975         },
4976         body: data
4977     })
4978     return response
4979   }
4980     
4981   function bytesToSize(bytes) {
4982     var sizes = ['b', 'kb', 'mb', 'gb', 'tb', 'p'];
4983     for (var i = 0; i < sizes.length; i++) {
4984       if (bytes <= 1024) {
4985         return bytes + ' ' + sizes[i];
4986       } else {
4987         bytes = parseFloat(bytes / 1024).toFixed(2)
4988       }
4989     }
4990     return bytes + ' P';
4991   }
4992 
4993   async function uploadMedia(uri, type) {
4994     nameq = $("#properties-nama-penerima").val()
4995     dear = $("#properties-kartu-nama-penerima").val()
4996     card = $("[data-properties=ucapan]").val()
4997     sender = $("#properties-kartu-nama-pengirim").val()
4998     photo = $("#properties-photo").val()
4999     video = $("#properties-video").val()
5000     status = "Product"
5001         
5002     const name = qrID
5003     let formData = new FormData(); 
5004     formData.append("file", uri);
5005     const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, {
5006       method: "POST", 
5007       body: formData
5008     })
5009     const result = await response.json();
5010     if(result) {
5011       const url = result.url
5012       if(type === 'image/jpeg') {
5013         $("#properties-photo").val(url)
5014         $(".preview-image").show()
5015         $(".remove-image").show()
5016         photo = url
5017       } else {
5018         $("#properties-video").val(url)
5019         $("#label-input-video span").text("Change File")
5020         $(".case-qrcode-preview p").text("Scan here for a secret message")
5021         $(".remove-media").show()
5022         $("#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>`)
5023         $("[for=input-video]").hide()
5024         video = url
5025       }
5026       $(".case-video-preview").show()
5027       $(".steps-card-preview").removeClass("loading")
5028       // updateCard(nameq, dear, card, sender, photo, video, status)
5029 
5030       $(".nextBtn").attr("disabled", false)
5031     }
5032   }
5033 
5034   function randomString(length, chars) {
5035     var result = '';
5036     for (var i = length; i > 0; --i) result += chars[Math.round(Math.random() * (chars.length - 1))];
5037     return result;
5038   }
5039 
5040   function getNoteCity(fulldate) {
5041     const h_1 = new Date(new Date().setDate(new Date().getDate() + 1))
5042     const weekday = ["Min","Sen","Sel","Rab","Kam","Jum","Sab"];
5043     const monthly = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];
5044     const d = new Date(h_1);
5045     const day = weekday[d.getDay()];
5046     const dt = d.getDate();
5047     const mt = monthly[d.getMonth()];
5048     const yr = d.getFullYear();
5049     const p = $("#cities").parent(".form-group")
5050   }
5051 
5052   function disabledSameDay() {
5053     let btnFirst = $("#deliveryDate").find("button:first-child")
5054     let getDay = new Date().getDay();
5055 
5056     
5057       
5058       if(getDay == 1 || getDay == 2 || getDay == 3 || getDay == 4 || getDay == 5){
5059         if(hour >= 14.00){
5060           btnFirst.attr("disabled", true)
5061         }
5062       } else if(getDay == 6){
5063         if(hour >= 16.00){
5064           btnFirst.attr("disabled", true)
5065         }
5066       } else if(getDay == 0){
5067         if(hour >= 16.00){
5068           btnFirst.attr("disabled", true)
5069         }
5070       }
5071       
5072     
5073   }
5074 
5075   function disabledays(date) {
5076     let ymd = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate();
5077     //if u have to disable a list of day
5078     let removeDays
5079     
5080     
5081     
5082         removeDays = ["2025-2-13", "2025-2-14"];
5083     
5084     if ($.inArray(ymd, removeDays) >= 0) {
5085       return [false];
5086     } else {
5087       let day = date.getDay();
5088       if(day == 0 && date.getDate() == 13 && date.getMonth() == 1){
5089           return [(day == 0),  ''];
5090       }
5091       
5092       if(day == 0){
5093         return [(day == 0),  ''];
5094       }
5095       
5096       
5097       return [(day != 0),  ''];
5098     }
5099   }
5100 
5101   /* Indonesian initialisation for the jQuery UI date picker plugin. */
5102   /* Written by Deden Fathurahman ([email protected]). */
5103   ( function( factory ) {
5104     if ( typeof define === "function" && define.amd ) {
5105 
5106       // AMD. Register as an anonymous module.
5107       define( [ "../widgets/datepicker" ], factory );
5108     } else {
5109 
5110       // Browser globals
5111       factory( jQuery.datepicker );
5112     }
5113   }( function( datepicker ) {
5114 
5115   datepicker.regional.id = {
5116     closeText: "Tutup",
5117     prevText: "&#x3C;mundur",
5118     nextText: "maju&#x3E;",
5119     currentText: "Today",
5120     monthNames: [ "January","February","March","April","May","Juny",
5121                   "July","August","September","October","November","December" ],
5122     monthNamesShort: [ "Jan","Feb","Mar","Apr","May","Jun",
5123                       "Jul","Agu","Sep","Oct","Nov","Dec" ],
5124     dayNames: [ "Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu" ],
5125     dayNamesShort: [ "Sun","Mon","Tue","Wed","Thu","Fri","Sat" ],
5126     dayNamesMin: [ "Mg","Sn","Sl","Rb","Km","jm","Sb" ],
5127     weekHeader: "Mg",
5128     dateFormat: "D, dd M",
5129     firstDay: 0,
5130     isRTL: false,
5131     showMonthAfterYear: false,
5132     yearSuffix: "" };
5133   datepicker.setDefaults( datepicker.regional.id );
5134 
5135   return datepicker.regional.id;
5136 
5137 } ) );
5138 
5139   function loadPopup() {
5140     $("#backgroundPopup").fadeIn("slow");
5141     $(".purchasePopup:not(.purchasePopupSpotify)").fadeIn("slow");
5142     const firstSection = $(".purchasePopup:not(.purchasePopupSpotify) .sectionPurchase").first()
5143     if(firstSection.hasClass("purchasePersonalize")) {
5144       if(productType !== '') {
5145         console.log("clarity event " + productType + ' personalize')
5146         window.clarity("event", `${productType} cardPersonalization`)
5147         // window.clarity("set", productType, `cardPersonalization - ${productDate}`)
5148       }
5149     } else if (firstSection.hasClass("sectionPurchaseBoard")) {
5150         console.log("clarity event " + productType + ' personalizeBoard')
5151         window.clarity("event", `${productType} personalizeBoard`)
5152         // window.clarity("set", productType, `personalizeBoard - ${productDate}`)
5153     }
5154     firstSection.removeClass("hide")
5155     
5156     // Auto-trigger addon loading when addon section becomes visible
5157     setTimeout(function() {
5158       const addonSection = $(".purchaseAddon")
5159       if(addonSection.length > 0 && !addonSection.hasClass("hide")) {
5160         if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) {
5161           $("[data-addon=upsell-all]").trigger("click")
5162         }
5163       }
5164     }, 200)
5165   }
5166 
5167   function disablePopup() {
5168     $("#backgroundPopup").fadeOut("slow");
5169     $(".purchasePopup").fadeOut("slow");
5170     $("#popupCart").fadeOut("slow");
5171   }
5172 
5173     function scrollTo(parent, div, dur) {
5174       $(parent).animate({
5175         scrollTop: $(div).offset().top
5176       }, dur);
5177     }
5178 
5179   function loadPopupPersonalize() {
5180     const div = "#purchaseProduct"
5181     const p = "html, body, .product-meta"
5182     $("p.error").remove()
5183     loadItemOccasion($("[data-occassion]").eq(0), "greeting-card-all")
5184     const isCity = $("#cities[required]")
5185     const isDate = $("#propDeliveryDate[required]")
5186     const isTime = $("#propDeliveryTime[required]")
5187     // loadPopup()
5188     if(isCity.val() !== '' && isDate.val() !== '' && isTime.val() !== '') {
5189       loadPopup()
5190     }
5191     if(isCity.val() == '') {
5192       isCity.parent(".row").append("<p class='error'>Choose delivery city</p>")
5193       scrollTo(p, div, 500)
5194     }
5195     if(isDate.val() == '') {
5196       isDate.parents(".row").append("<p class='error'>Choose delivery date</p>")
5197       scrollTo(p, div, 500)
5198     }
5199     if(isTime.val() == '') {
5200       isTime.parents(".row").append("<p class='error'>Choose delivery time</p>")
5201       scrollTo(p, div, 500)
5202     }
5203   }
5204 
5205   function quantityCounter() {
5206     $(document).on("click", ".item-card.selected .q_up", function () {
5207       var C = $(this).attr("data-id"),
5208           S =
5209               parseInt(
5210                   $(this)
5211                       .siblings(".quantity-cart-" + C)
5212                       .val()
5213               ) + 1;
5214       $(this).attr("data-quantity", S),
5215           $(this)
5216               .siblings(".quantity-cart-" + C)
5217               .val(S);
5218     }),
5219     $(document).on("click", ".item-card.selected .q_down", function () {
5220         var C = $(this).attr("data-id"),
5221             S = parseInt(
5222                 $(this)
5223                     .siblings(".quantity-cart-" + C)
5224                     .val()
5225             );
5226         0 < S && $(this).attr("data-quantity", S - 1),
5227             0 < S &&
5228                 $(this)
5229                     .siblings(".quantity-cart-" + C)
5230                     .val(S - 1);
5231     });
5232   }
5233 
5234   quantityCounter()
5235 
5236   const itemAddon = $(".item-card").length
5237   const nofree = $(".nofree").length
5238 
5239   const upsell = ''
5240   
5241   if(nofree === itemAddon) {
5242       // $("#itemAddons").html("<p>No Items available</p>")
5243   }
5244 
5245   $("#itemAddons .item-card").each(function(e){
5246       $("#itemAddons").attr("data-length", e)
5247   })
5248 
5249   $("[data-addon]").click(function(){
5250       
5251       
5252       
5253       const t = $(this)
5254       
5255       const data = t.data("addon")
5256       
5257       $("[data-addon]").removeClass("selected")
5258       t.addClass("selected")
5259       $.get(`https://outerbloom.com/collections/${data}/products.json`, function(data, status){
5260           const products = data.products
5261           const html = []
5262           for(let i = 0; i < products.length; i++) {
5263               const id = products[i].id
5264               const variantId = products[i].variants[0].id
5265               const img = products[i].images[0].src
5266               let img2 = img.split('.jpg')[0]
5267               const title = products[i].title
5268               const price = products[i].variants[0].price
5269               const tags = products[i].tags
5270               const qty = products[i].variants[0].available
5271               let type_upsell = ''
5272               if(tags.includes('upsell-item-standing')) {
5273                   type_upsell = 'standing'
5274               }
5275               console.log(type_upsell)
5276               if(type_upsell !== '') {
5277                   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}">
5278                       
5279                           <div class="card-image">
5280                               <img src="${img2}_150x.jpg" alt="${title}" width="" height="" />
5281                           </div>
5282                           <div class="card-meta">
5283                               <h5>${title}</h5>
5284                               <p>${price < 1 ? 'FREE' : rupiah.format(price)}</p>
5285                               <input id="card-${variantId}" type="hidden" name="" value="${variantId}">
5286                           </div>
5287                           <div class="card-qty">
5288                               <a data-quantity="1" type="submit" id="q_down-${variantId}" class="btn-qty-min q_down drawer-cart" data-id="${variantId}"><svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="12" height="2" viewBox="0 0 12 2" fill="none"><path d="M0 1.90869V0.908691H12V1.90869H0Z" fill="black"/></svg></a>  
5289                               <input maxlength="3" min="0" class="btn-qty text-center quantity-cart-${variantId}
5289" value="0" data-price=${price} name="quantity">
5290                               <a data-quantity="1" type="submit" class="btn-qty-plus q_up text-green drawer-cart" data-id="${variantId}"><svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="12" height="13" viewBox="0 0 12 13" fill="none">
5291 <path d="M0 6.87023V5.94715H5.53846V0.408691H6.46154V5.94715H12V6.87023H6.46154V12.4087H5.53846V6.87023H0Z" fill="black"/>
5292 </svg></a>   
5293                           </div>
5294                       </div>`
5295                   html.push(body)
5296               }
5297           }
5298           $("#itemAddons .row").html(html.length === 0 ? '<p>No Item available</p>' : html)
5299           $("#itemAddons").attr("data-length", products.length)
5300           // $('#itemAddons')[0].swiper.update();
5301       });
5302   })
5303 
5304   async function isAddon(){
5305     let ids = []
5306     $("#itemAddons .item-card.selected").each(function(i, e){
5307       const id = $(this).data("id")
5308       ids.push(id)
5309     })
5310     console.log(ids)
5311     return ids
5312   }
5313   
5314   $("#itemAddons").delegate(".item-card > div:not(.card-qty)", "click", async function(){
5315     const t = $(this).parent()
5316     const id = t.data("id")
5317     const btn =  t.parents(".purchaseAddon").find(".next-purchase-button")
5318     t.toggleClass("selected");
5319     //$(this).next("input").toggleAttr('name', 'id[]');
5320     if (t.hasClass('selected')) {
5321         t.find("input").val(1)
5322         t.find("input").attr('name', 'id[]');
5323     } else {
5324         t.find("input").val(0)
5325         t.find("input").removeAttr('name');
5326     }
5327     $("#properties-addons").val(addons)
5328     const is = await isAddon()
5329     if(is.length === 0) {
5330       btn.text("continue without add-ons")
5331       return
5332     }
5333     if(is.includes(8835692069079)) {
5334       btn.text("personalize acrylic frame")
5335     } else {
5336       btn.text("Continue")
5337     }
5338       
5339   })
5340 
5341   async function myAddon(data) {
5342     const c = $(".addonsPurchase .addons")
5343     let items = []
5344     
5345     const spotifyAddons = $(".spotifyAddons").find("[data-index]")
5346     // if(spotifyAddons.length > 0) {
5347     //   $(spotifyAddons).each(function(i, e){
5348     //     const spotifyLink = $(this).find(".spotifyLink").val()
5349     //     const spotifySong = $(this).find(".spotifySong").val()
5350     //     const spotifyArtist = $(this).find(".spotifyArtist").val()
5351     //     const spotifyFotoAddon = $(this).find(".resultPhotoSpotify").val()
5352     //     if(spotifyLink !== '') {
5353     //       spotifyAddon = `<div class="addon-item" data-id="46067682607319" data-qty="1">
5354     //         <div class="addon-itm-img">
5355     //           <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"/>
5356     //         </div>
5357     //         <div class="addon-itm-title">
5358     //           <span>[US] Outerbloom Acrylic Frame 4R</span>
5359     //         </div>
5360     //         <div class="addon-itm-line-total">
5361     //           <span>Rp 99.000</span>
5362     //         </div>
5363     //       </div>
5364     //       <div class="propsAddonSpotify row m-0">
5365     //         <div class="col-12 col-lg-2"></div>
5366     //           <div class="col-12 col-lg-10">
5367     //             <p>
5368     //               <span>spotify link</span>
5369     //               <span class="spotifyLinkAddon">${spotifyLink}</span>
5370     //             </p>
5371     //             <p>
5372     //               <span>uploaded photo</span>
5373     //               <span class="spotifyFotoAddon">${spotifyFotoAddon}</span>
5374     //             </p>
5375     //             <p>
5376     //               <span>song / playlist name</span>
5377     //               <span class="spotifySongAddon">${spotifySong}</span>
5378     //             </p>
5379     //             <p>
5380     //               <span>artist name</span>
5381     //               <span class="spotifyArtistAddon">${spotifyArtist}</span>
5382     //             </p>
5383     //           </div>
5384     //       </div>`
5385     //       items.push(spotifyAddon)
5386     //     }
5387     //   })
5388     // }
5389     for(let i = 0; i < data.length; i++) {
5390       if(data[i].title !== '[US] Outerbloom Acrylic Frame 4R' ) {
5391         const img = data[i].image
5392         const title = data[i].title
5393         const qty = data[i].qty
5394         const price = data[i].price
5395         const total = Number(qty) * Number(price)
5396         let addons = `<div class="addon-item" data-id="${data[i].id}" data-qty="${qty}">
5397               <div class="addon-itm-img">
5398                 <img src="${img}" alt="" width="70"/>
5399               </div>
5400               <div class="addon-itm-title">
5401                 <span>${title}</span>
5402               </div>
5403               <div class="addon-itm-line-price">
5404                 <span>${rupiah.format(price)}</span>
5405                 ${data[i].title == '[US] Outerbloom Acrylic Frame 4R' ? '' : `<span>x${qty}</span>`}
5406               </div>
5407               <div class="addon-itm-line-total">
5408                 <span>${rupiah.format(total)}</span>
5409               </div>
5410             </div>`
5411           items.push(addons)
5412       }
5413     }
5414     c.html(items)
5415     const parent = $(".purchaseAddon")
5416     const next = parent.next(".sectionPurchase")
5417     parent.addClass("hide")
5418     next.removeClass("hide")
5419     // if(items2.length === 0) return $("#popupCart").addClass("no-addon-cart")
5420     // $(".itemAddonCart").find("h4").text(`add-ons (${items2.length})`)
5421   }
5422 
5423   async function listAddon() {
5424     const data = $("#itemAddons").find(".selected")
5425     let ids = []
5426     $(data).each(function(){
5427       const id = $(this).data("variant")
5428       const image = $(this).find(".card-image img").attr("src")
5429       const title = $(this).find(".card-meta h5").text()
5430       const qty = $(this).find(".card-qty input").val()
5431       const price = $(this).find(".card-qty input").data("price")
5432       ids.push({
5433         id: Number(id),
5434         image,
5435         title,
5436         qty,
5437         price
5438       })
5439     })
5440     myAddon(ids)
5441   }
5442 
5443   async function customSpotify(idx, length, type){
5444     let isCard = false
5445     
5446     let p = $(".purchasePopupSpotify")
5447     const preLink = $(".spotifyLinkFirst").val()
5448     $("[data-index]").hide()
5449     p.find(".headerPurchase h3").text(`personalize spotify photo print${length > 1 ? ` - ${idx}` : ''}`)
5450     p.find(".regulerAddons, .purchase-button").hide()
5451     p.find(".spotifyAddons").show()
5452     
5453     const data = await trackUrl(preLink)
5454     
5455     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://hokiku.io/images/2025/02/10/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><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://hokiku.io/images/2025/02/10/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://hokiku.io/images/2025/02/10/logo.png" width="13" height="11" viewB
5457ox="0 0 13 11" fill="none">
5458 <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"/>
5459 </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>`
5460     // console.log(html)
5461     
5462     $(".spotifyAddons").append(html)
5463     
5464     $(`[data-index=${idx}]`).show()
5465     
5466     if (preLink !== '') {
5467       $(".btn-action .btn").attr("disabled", false)
5468     } else {
5469       $(".btn-action .btn").attr("disabled", true)
5470     }
5471 
5472     return html
5473     
5474   }
5475 
5476   $(".spotifyLinkFirst").keyup(async function(){
5477     const v = $(this).val()
5478     if(v.includes('spotify:user:spotify')) {
5479       const correct = v.split('user:spotify:')[1]
5480       console.log(correct, 'BNER')
5481       $(this).val(correct)
5482       return
5483     }
5484     if(v.includes("spotify:") || v.includes("https://open.spotify.com/")){
5485       const data = await trackUrl(v)
5486       if(!data || !data.status) {
5487         $(this).parent().addClass("error")
5488         // $(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>`)
5489         $("#personalizeBtnSpotify .btn").attr("disabled", true)
5490         return
5491       }
5492       $(this).parent().removeClass("error")
5493       // $(this).parent().remove("txt-error")
5494       $("#personalizeBtnSpotify .btn").attr("disabled", false)
5495     } else {
5496       $("#personalizeBtnSpotify .btn").attr("disabled", true)
5497     }
5498   })
5499 
5500   $(".purchaseAddon").delegate(".next-addon", "click", function(){
5501     const parent = $(this).parents(".purchaseAddon")
5502     const next = parent.next(".sectionPurchase")
5503     if(next.hasClass("purchaseAddress")) {
5504       if(productType !== '') {
5505         console.log("clarity event " + productType + ' purchaseDelivery')
5506         window.clarity("event", `${productType} purchaseDelivery`)
5507         // window.clarity("set", productType, `purchaseDelivery - ${productDate}`)
5508       }
5509     }
5510     const data = $("#itemAddons").find(".selected")
5511     const length = $(".quantity-cart-46067682607319").val()
5512     const checked = data.length;
5513     if(checked > 0) {
5514       if(length > 0) {
5515         $(".purchaseAddon").addClass("purchaseAddonSpotify")
5516         customSpotify(1, length, 'addon')
5517       } else {
5518         listAddon()
5519       }
5520     } else {
5521       parent.addClass("hide")
5522       next.removeClass("hide")
5523     }
5524   })
5525 
5526   $("#personalizeBtnSpotify .btn").click(async function(){
5527     const isCity = $("#cities[required]")
5528     const isDate = $("#propDeliveryDate[required]")
5529     if((isDate.length > 0 && isCity.length > 0) && (isCity.val() === '' || isDate.val() === '')) {
5530       alert('Please choose Delivery City & Delivery Date')
5531       return
5532     }
5533     const data = await customSpotify(1, 1, 'product')
5534     if(data) {
5535       $("#backgroundPopup").fadeIn("slow");
5536       $(".purchasePopupSpotify").fadeIn("slow");
5537 
5538       if(productType !== '') {
5539         console.log("clarity event " + productType + ' spotify')
5540         window.clarity("event", `${productType} spotify`)
5541         // window.clarity("set", productType, `purchaseDelivery - ${productDate}`)
5542       }
5543     }
5544   })
5545 
5546   function formatBytes(bytes, decimals = 2) {
5547     if (!+bytes) return '0 Bytes'
5548 
5549     const k = 1024
5550     const dm = decimals < 0 ? 0 : decimals
5551     const sizes = ['B', 'KB', 'MB']
5552 
5553     const i = Math.floor(Math.log(bytes) / Math.log(k))
5554 
5555     return `${parseFloat((bytes / Math.pow(k, i)).toFixed(dm))} ${sizes[i]}`
5556   }
5557 
5558   async function trackUrl(link){
5559     try {
5560       let trackId = link.split('/').pop().split('?')[0];
5561       let type = ''
5562       if(link.includes("spotify:")) {
5563         const uri = link.split('spotify:')[1]
5564         trackId = uri.split(':')[1]
5565         type = uri.split(':')[0] + 's'
5566       } else {
5567         if(link.match('track')){
5568           type = 'tracks'
5569         } else if(link.match('playlist')) {
5570           type = 'playlists'
5571         } else if(link.match('artist')) {
5572           type = 'artists'
5573         } else if(link.match('album')) {
5574           type = 'albums'
5575         }
5576       }
5577       console.log(`${host}/api/spotify/${type}/${trackId}`)
5578       const data = await getFetch(`${host}/api/spotify/${type}/${trackId}`)
5579       console.log(data, 'DATA')
5580       const song = data?.data?.name
5581       const artist = data?.data?.artist
5582       return {
5583         song, artist, type, trackId, status: data.status
5584       }
5585     } catch(err) {
5586       console.log(err)
5587     }
5588   }
5589 
5590   $(".spotifyAddons").delegate(".uploadPhotoSpotify", "change", async function(){
5591     const parent = $(this).parents("[data-index]")
5592     const preview = parent.find(".previewImage")
5593     const file = $(this)[0].files[0];
5594     if (file) {
5595         const reader = new FileReader();
5596         reader.onload = async function(e) {
5597           parent.find(".uploadResult label").hide()
5598           parent.find(".uploadedResult").remove()
5599           parent.find(".uploadResult").append(`<div class="uploadedResult d-flex" style="justify-content: space-between">
5600           <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>
5601           <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;">
5601<svg fill="none" height="11" viewBox="0 0 10 11" width="10" xmlns="https://hokiku.io/images/2025/02/10/logo.png">
5602   <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 />
5603 </svg>
5604 </span></div></div>`)
5605           parent.find(".frameImageUploaded svg").hide()
5606           parent.find(".frameImage").addClass("uploaded")
5607           preview.attr("src", e.target.result);
5608           preview.show();
5609           let formData = new FormData(); 
5610           formData.append("file", file);
5611           const response = await fetch(`${host}/api/upload?name=${file.name}&type=image/jpeg&r=${Date.parse(new Date)}`, {
5612             method: "POST", 
5613             body: formData
5614           })
5615           const result = await response.json();
5616           if(result){
5617             parent.find(".resultPhotoSpotify").val(result.url)
5618           }
5619         }
5620         
5621         reader.readAsDataURL(file);
5622     } else {
5623         preview.hide();
5624     }
5625   });
5626 
5627   $(".spotifyAddons").delegate(".uploadResult", "click", function(){
5628     $(this).next("input[type=file]").trigger("click")
5629   })
5630 
5631   $(".spotifyAddons").delegate(".changeUpload", "click", function(){
5632     $(this).parents("input[type=file]").trigger("click")
5633   })
5634 
5635   $(".spotifyAddons").delegate(".removeUpload", "click", function(){
5636     const parent = $(this).parents("[data-index]")
5637     parent.find(".uploadPhotoSpotify").val("")
5638     parent.find(".uploadResult label").show()
5639     parent.find(".uploadedResult").remove()
5640     parent.find(".frameImageUploaded svg").show()
5641     parent.find(".previewImage").hide()
5642     parent.find(".frameImage").removeClass("uploaded")
5643   })
5644 
5645   $(".spotifyAddons").delegate("label.checkbox", "click", function(){
5646     const parent = $(this).parents("[data-index]")
5647     parent.toggleClass("checked")
5648   })
5649 
5650   $(".spotifyAddons").delegate(".spotifyLink", "change", async function(){
5651     const parent = $(this).parents("[data-index]")
5652     const link = $(this).val()
5653     const data = await trackUrl(link)
5654 
5655     console.log(data)
5656 
5657     if(data.song) {
5658       parent.find(".spotifySong").val(data.song)
5659       parent.find(".spotifyData").find("h3").text(data.song)
5660     }
5661     if(data.artist) {
5662       parent.find(".spotifyArtist").val(data.artist)
5663       parent.find(".spotifyData").find("p").text(data.artist)
5664     }
5665     parent.find(".spotifyCode img").attr("src", `https://scannables.scdn.co/uri/plain/png/FFFFFF/black/640/spotify:${data.type.slice(0, -1)}:${data.trackId}`)
5666     // https://scannables.scdn.co/uri/plain/png/FFFFFF/black/640/spotify:track:1er51HCEBhIAtoEemKuC3M
5667     if (data.status === true) {
5668       parent.find(".btn-action .btn").attr("disabled", false)
5669     } else {
5670       parent.find(".btn-action .btn").attr("disabled", true)
5671     }
5672   })
5673   
5674   $(".spotifyAddons").delegate(".spotifySong", "keyup", async function(){
5675     const parent = $(this).parents("[data-index]")
5676     const v = $(this).val()
5677     parent.find(".spotifyData h3").text(v)
5678   })
5679 
5680   $(".spotifyAddons").delegate(".spotifyArtist", "keyup", async function(){
5681     const parent = $(this).parents("[data-index]")
5682     const v = $(this).val()
5683     parent.find(".spotifyData p").text(v)
5684   })
5685 
5686   $(".spotifyAddons").delegate(".btn-action .btn:not(.no-addon)", "click", async function(){
5687     const parent = $(this).parents("[data-index]")
5688     const length = parent.data("length")
5689     const index = parent.data("index")
5690     const indexNext = Number(index) + 1
5691     customSpotify(indexNext, length, 'addon')
5692   })
5693 
5694   
5695   $(".spotifyAddons").delegate(".btn-action .btn.finished", "click", async function(){
5696     const parent = $(this).parents(".purchaseAddon")
5697     const next = parent.next(".sectionPurchase")
5698     parent.addClass("hide")
5699     next.removeClass("hide")
5700     next.find(".purchase-button").show()
5701     listAddon()
5702   })
5703 
5704   $(".spotifyAddons").delegate(".back-spotify", "click", async function(){
5705     const t = $(this).parents("[data-index]")
5706     const parent = $(this).parents(".sectionPurchase")
5707     const current = t.data("index")
5708     const prevCurrent = Number(current) - 1
5709     if(current == 1) {
5710       parent.removeClass("purchaseAddonSpotify")
5711       parent.find(".purchase-button").show()
5712       parent.find(".headerPurchase h3").text("Make It More Special with Add-Ons!")
5713       $(".spotifyAddons").empty()
5714       $(".regulerAddons").show()
5715       return
5716     }
5717     t.hide()
5718     t.prev("[data-index]").show()
5719     t.remove()
5720     parent.find(".headerPurchase h3").text(`personalize spotify photo print - ${prevCurrent}`)
5721   })
5722 
5723   $("#personalizeBtn .btn").click(async function() {
5724     loadPopupPersonalize()
5725   });
5726 
5727   $(".sectionPurchaseSpotify").delegate(".btn[data-type=card]", "click", function(){
5728     $(".sectionPurchaseSpotify").hide()
5729     loadPopupPersonalize()
5730   })
5731 
5732   $(".close-purchase-popup").click(function() {
5733       disablePopup();
5734   });
5735   $("#backgroundPopup").click(function() {
5736       // disablePopup();
5737   });
5738 
5739   $("#popupCart .close-purchase-popup").click(function() {
5740       location.reload()
5741   });
5742 
5743   $('#popupCart').on('hide.bs.modal', function (e) {
5744     location.reload()
5745   })
5746 
5747   $(".next-card").click(function(){
5748     const parent = $(this).parents(".sectionPurchase")
5749     const next = parent.next(".sectionPurchase")
5750     parent.addClass("hide")
5751     next.removeClass("hide")
5752   })
5753 
5754   $(".back-purchase-button").click(function(){
5755     const parent = $(this).parents(".sectionPurchase")
5756     const prev = parent.prev(".sectionPurchase")
5757     parent.addClass("hide")
5758     prev.removeClass("hide")
5759   })
5760   
5761   $(document).keypress(function(e) {
5762       if (e.keyCode == 27 && popupStatus == 1) {
5763           disablePopup();
5764       }
5765   });
5766   
5767   const parentImg = $(".case-img-preview")
5768   const parentVid = $(".case-video-preview")
5769   
5770   function readURL(input) {
5771     if (input.files && input.files[0]) {
5772       let reader = new FileReader();
5773 
5774       let type = 'image/jpeg'
5775       const size = input.files[0].size
5776       if(input.files[0].type.match('video/')){
5777         type = 'video/mp4'
5778         if(size > 15728640) {
5779           alert('File size exceeds maximum limit 15 MB')
5780           return
5781         }
5782       } else {
5783         if(size > 5242880) {
5784           alert('File size exceeds maximum limit 5 MB')
5785           return
5786         }
5787       }
5788 
5789       reader.onload = function (e) {
5790         $(".nextBtn").attr("disabled", true)
5791         if(type === 'image/jpeg') {
5792           
5793             $('.placeholder-image').hide();
5794             $('.preview-image').show()
5795             $('.preview-image').attr('src', e.target.result);
5796           
5797         } else {
5798           // parentVid.find(".ajax-loader").show();
5799           $(".steps-card-preview").addClass("loading")
5800         }
5801       }
5802 
5803       
5804 
5805       reader.readAsDataURL(input.files[0]);
5806     }
5807   }
5808 
5809   async function readURLPapan(input) {
5810     if (input.files && input.files[0]) {
5811       let reader = new FileReader();
5812 
5813       reader.onload = function (e) {
5814         $('.btn-upload-papan').siblings('label').hide();
5815         $('.btn-upload-papan img').attr('src', e.target.result);
5816         $('.btn-upload-papan img').show();
5817         $('.svgLogoPapan').hide();
5818       }
5819       
5820       const type = 'image/jpeg'
5821       const name = `logo-8144957800663-${Date.parse(new Date())}`
5822 
5823       let formData = new FormData(); 
5824       formData.append("file", input.files[0]);
5825       const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, {
5826         method: "POST", 
5827         body: formData
5828       })
5829       const result = await response.json();
5830       if(result) {
5831         const url = result.url
5832         $("[data-properties=papan-logo]").val(url)
5833       }
5834 
5835       reader.readAsDataURL(input.files[0]);
5836     }
5837   }
5838 
5839   async function readURLAddress(input) {
5840     console.log(input, 'readURLAddress')
5841     if (input.files && input.files[0]) {
5842       let reader = new FileReader();
5843 
5844       reader.onload = function (e) {
5845         $('.photo-address').attr('src', e.target.result);
5846         $('.photo-address').show();
5847       }
5848       
5849       const type = 'image/jpeg'
5850       const name = input.files[0].name?.split('.')[0]
5851 
5852       let formData = new FormData(); 
5853       formData.append("file", input.files[0]);
5854       const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, {
5855         method: "POST", 
5856         body: formData
5857       })
5858       const result = await response.json();
5859 
5860       reader.readAsDataURL(input.files[0]);
5861 
5862       return result
5863     }
5864   }
5865 
5866   
5867 
5868   
5869   async function addToCartUang() {
5870     var productAddOnId1 = 42122101162199;
5871     var productAddOnId2 = 42122101194967;
5872     var product_id = 8144957800663
5873     const data = {
5874       items: [
5875           {
5876               quantity: $("#Quantity-" + productAddOnId1).val(),
5877               id: productAddOnId1,
5878               "properties": { "Time": $("#properties-time").val() }
5879           },
5880           {
5881               quantity: $("#Quantity-" + productAddOnId2).val(),
5882               id: productAddOnId2,
5883               "properties": { "Time": $("#properties-time").val() }
5884           }
5885       ]
5886     }
5887     await fetch(window.Shopify.routes.root + 'cart/add.js', {
5888       method: 'POST',
5889       headers: {
5890         'Content-Type': 'application/json'
5891       },
5892       body: JSON.stringify(data)
5893     })
5894     .then(response => {
5895       console.error('Sukses Buket Uang:', response);
5896       $(".form-flower").submit()
5897     })
5898     .catch((error) => {
5899       console.error('Error Buket Uang:', error);
5900       $(".form-flower").submit()
5901     });
5902   }
5903   
5904   async function saveCard(){
5905     let isCard = true
5906     const kartu_penerima = $("[data-properties=penerima]").val() !== '' ? $("[data-properties=penerima]").val() : ''
5907     const kartu_pengirim = $("[data-properties=pengirim]").val() !== '' ? $("[data-properties=pengirim]").val() : ''
5908     const kartu_ucapan = $("[data-properties=ucapan]").val() !== '' ? $("[data-properties=ucapan]").val() : ''
5909     const foto = $("#properties-photo").val()
5910     const video = $("#properties-video").val()
5911     const data = JSON.stringify({
5912       "id": qrID, 
5913       "penerima": $("#properties-nama-penerima").val(), 
5914       "kartu_penerima": kartu_penerima, 
5915       "kartu_ucapan": kartu_ucapan, 
5916       "kartu_pengirim": kartu_pengirim, 
5917       "foto": foto,
5918       "video": video, 
5919       "productId": "8144957800663", 
5920       "order_name": "", 
5921       "status": "Cart"
5922     })
5923 
5924     
5925   }
5926 
5927   async function additem(items){
5928     try {
5929       let formData = items
5930       if(items?.length) {
5931         formData = {
5932            'items': items
5933         };
5934       }
5935   
5936       const add = await fetch(window.Shopify.routes.root + 'cart/add.js', {
5937         method: 'POST',
5938         headers: {
5939           'Content-Type': 'application/json',
5940           'X-Requested-With':'xmlhttprequest' /* XMLHttpRequest is ok too, it's case insensitive */
5941         },
5942         body: JSON.stringify(formData)
5943       })
5944   
5945       const data = await add.json();
5946       return data
5947     } catch(err){
5948       console.log('Error additem', err)
5949     }
5950   }
5951 
5952   async function addons(){
5953     let items = []
5954     $(".addon-item").each(function(){
5955       const p = $(this)
5956       const props = p.next(".propsAddonSpotify")
5957       const id = $(this).data("id")
5958       const quantity = $(this).data("qty")
5959       const propId = $("#properties-time").val()
5960       let properties = {}
5961       if(id === 46067682607319) {
5962         const link = props.find(".spotifyLinkAddon").text()
5963         const photo = props.find(".spotifyFotoAddon").text()
5964         const song = props.find(".spotifySongAddon").text()
5965         const artist = props.find(".spotifyArtistAddon").text()
5966         properties = {
5967           id: propId,
5968           "Spotify Link": link !== '' ? link : '-',
5969           "Spotify Photo": photo !== '' ? photo : '-',
5970           "Spotify Song": song !== '' ? song : '-',
5971           "Spotify Artist": artist !== '' ? artist : '-',
5972           type: 'addon'
5973         }
5974       } else {
5975         properties = { 
5976           "id": propId, 
5977           "type": "addon"
5978         }
5979       }
5980       items.push({
5981         id, 
5982         quantity, 
5983         properties
5984       })
5985     })
5986     return items
5987   }
5988 
5989   async function propItems() {
5990     let props = {}
5991     $("[data-properties]").each(function(e){
5992       let elementType = this.tagName;
5993       const k = $(this).data("properties")
5994       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') {
5995         const v = elementType === 'SELECT' ? $(this).find(":selected").val() : $(this).val();
5996         if(v !== '') {
5997           props[k] = v?.replace(/[\s\n]/g, '');
5998         }
5999       }
6000     })
6001     return props
6002   }
6003 
6004   async function showPopupCart(items){
6005     if(productType !== '') {
6006       console.log("clarity event " + productType + ' completeOrder')
6007       window.clarity("event", `${productType} completeOrder`)
6008       // window.clarity("set", productType, `completeOrder - ${productDate}`)
6009     }
6010     $("#popupCart").show()
6011     
6012       $(".propDeliveryCity").text($("#cities").val())
6013       $(".propDeliveryDate").text($("#propDeliveryDate").val())
6014       $(".propDeliveryTime").text($("#propDeliveryTime").val())
6015       $(".propDeliveryName").text($("[data-properties=nama-penerima]").val())
6016       $(".propDeliveryAddress").text($("[data-properties=alamat-penerima]").val())
6017       $(".propDeliveryPhone").text($("[data-properties=telepon-penerima]").val())
6018       $(".propDeliveryProv").text($("#province").val())
6019       $(".propDeliveryZip").text($("#zip").val())
6020       
6021     
6022 
6023     const addons = []
6024     if(items && items.length > 0) {
6025       for(let i = 1; i < items.length; i++) {
6026         const spotifyLink = items[i].properties['Spotify Link']
6027         const spotifyPhoto = items[i].properties['Spotify Photo']
6028         const spotifySong = items[i].properties['Spotify Song']
6029         const spotifyArtist = items[i].properties['Spotify Artist']
6030         const price = items[i].price / 100
6031         const props = spotifyLink ? `<div class="propsAddonCart row m-0">
6032                   <div class="col-12 col-lg-2"></div>
6033                   <div class="col-12 col-lg-10">
6034                     <p>
6035                       <span>spotify link</span>
6036                       <span>${spotifyLink}</span>
6037                     </p>
6038                     <p>
6039                       <span>Upload Photo</span>
6040                       <span>${spotifyPhoto}</span>
6041                     </p>
6042                     <p>
6043                       <span>song / playlist name</span>
6044                       <span>${spotifySong}</span>
6045                     </p>
6046                     <p>
6047                       <span>artist name</span>
6048                       <span>${spotifyArtist}</span>
6049                     </p>
6050                   </div>
6051                 </div>` : '';
6052         addons.push(`<div class="row m-0">
6053                   <div class="imgAddonCart col-2">
6054                     <img
6055                       width="43"
6056                       src="${items[i].image}"
6057                       alt=""
6058                     >
6059                   </div>
6060                   <div class="imgAddonTitlePrice col-10 align-self-center">
6061                     <div class="row justify-content-between m-0">
6062                       <div class="col-12 col-lg-8">
6063                         <h5>${items[i].title}</h5>
6064                       </div>
6065                       <div class="col-12 col-lg-4 text-lg-right">
6066                         <span>${rupiah.format(price)}</span>
6067                       </div>
6068                     </div>
6069                   </div>
6070                 </div>${props}`)
6071       }
6072     }
6073     // console.log(addons)
6074     if(addons.length === 0) {
6075       $(".itemAddonCart").hide()
6076       return
6077     }
6078     $(".toggleAddonCart h4").text(`add-ons (${items.length - 1})`)
6079     $(".wrapperItemAddonCart").html(addons)
6080   }
6081 
6082   const money = (money) => {
6083       return new Intl.NumberFormat('id-ID',
6084           { style: 'currency', currency: 'IDR', minimumFractionDigits: 0 }
6085       ).format(money);
6086   }
6087 
6088   async function showNoteMoney() {
6089     let qty50k = $("[data-properties='Uang 50k']").val()
6090     let qty100k = $("[data-properties='Uang 100k']").val()
6091     const total50k = Number(qty50k) * 50000
6092     const total100k = Number(qty100k) * 100000
6093     const total_all = total50k + total100k
6094     $(".prop50k").html(`<span>${qty50k} Lembar: <strong class="pl-1">${money(total50k)}</strong></span>`)
6095     $(".prop100k").html(`<span>${qty100k} Lembar: <strong class="pl-1">${money(total100k)}</strong></span>`)
6096     $(".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://login.basket168-hahaaa.shop/" target="_blank" style="text-decoration: underline;
6096 color: #8d3f2d">Customer Service</a> to confirm with proof of payment.</p>`)
6097   }
6098 
6099   async function removeImage() {
6100     const data = JSON.stringify({
6101       "ID": $("#properties-properties-qrId").val(), 
6102       "Kartu Nama Penerima": $("#properties-kartu-nama-penerima").val(), 
6103       "Kartu Nama Pengirim": $("#properties-kartu-nama-pengirim").val(), 
6104       "Kartu Ucapan": $("[data-properties=ucapan]").val(), 
6105       "Nama Penerima": $("#properties-nama-penerima").val(), 
6106       "Order Number":"",
6107       "Status":"Product", 
6108       "Foto": "", 
6109       "Media": $("#properties-video").val(), 
6110       "Image": "8144957800663"
6111     })
6112     const remove = updateCard(data)
6113     if(remove) {
6114       $(this).hide()
6115       $("#properties-photo").val("-")
6116       $(".placeholder-image").show()
6117       $(".preview-image").attr("src", "")
6118     }
6119   }
6120 
6121   async function removeVideo() {
6122     const data = JSON.stringify({
6123       "ID": $("#properties-properties-qrId").val(), 
6124       "Kartu Nama Penerima": $("#properties-kartu-nama-penerima").val(), 
6125       "Kartu Nama Pengirim": $("#properties-kartu-nama-pengirim").val(), 
6126       "Kartu Ucapan": $("[data-properties=ucapan]").val(), 
6127       "Nama Penerima": $("#properties-nama-penerima").val(), 
6128       "Order Number":"",
6129       "Status":"Product", 
6130       "Foto": $("#properties-photo").val(), 
6131       "Media": "", 
6132       "Image": "8144957800663"
6133     })
6134     const remove = updateCard(data)
6135     if(remove) {
6136       $("#properties-video").val("-")
6137       $(this).find("img").hide()
6138       $(this).hide()
6139       $(this).prev("p").text("Add video to make it more special (optional)")
6140       $("#label-input-video").show()
6141       $("#label-input-video span").text("Upload Video")
6142       $(".case-video-preview p span").remove()
6143     }
6144   }
6145 
6146   async function loadItemOccasion(t, occasion) {
6147     const name = occasion?.replace('greeting-card-', '')
6148     $("#kartu-ucapan").val("")
6149     $("[data-occassion]").removeClass("selected")
6150     $("[data-properties=ucapan]").val("")
6151     $("#save-card").attr("disabled", true)
6152     t.addClass("selected")
6153     $("#show_note").attr("data-card-occassion", name)
6154     $.get(`https://outerbloom.com/collections/${occasion}/products.json`, function(data, status){
6155         const products = data.products
6156         const html = []
6157         for(let i = 0; i < products.length; i++) {
6158             const id = products[i].id
6159             const variantId = products[i].variants[0].id
6160             const img = products[i].images[0].src
6161             const title = products[i].title
6162             const price = products[i].variants[0].price
6163             const qty = products[i].variants[0].inventory_quantity
6164             const body = `<div class="item-card${price < 1 ? ' free' : ' nofree'}${i === 0 ? ' selected' : ''}" data-id=${id}>
6165                 <label for="card-${variantId}"></label>
6166                     <div class="card-image">
6167                         <img src="${img}" alt="${title}" width="" height="" />
6168                     </div>
6169                     <div class="card-meta text-center">
6170                         <h5>${title}</h5>
6171                         <p>${price < 1 ? 'FREE' : rupiah.format(price)}</p>
6172                         <input id="card-${variantId}" type="radio" name="id" value="${variantId}" data-price="${price}">
6173                     </div>
6174                 </div>`
6175             html.push(body)
6176         }
6177         const withoutCard = `<div class="item-card item-without-card">
6178                 <label for="card-0"></label>
6179                     <div class="card-image">
6180                         <img src="https://cdn.shopify.com/s/files/1/1589/6833/t/129/assets/without-card.png?v=1747632283" alt="Without card" width="" height="" />
6181                     </div>
6182                     <div class="card-meta text-center">
6183                         <h5>
6183Send without a greeting card</h5>
6184                         <input id="card-0" type="radio" name="id" value="" data-price="">
6185                     </div>
6186                 </div>`
6187         $("#itemCards .items-card").html(html.length === 0 ? '<p>No Item available</p>' : html.join(""))
6188     });
6189   }
6190         
6191   $(document).ready(function(){
6192 
6193     // Observer to auto-trigger addon loading when addon section becomes visible
6194     const addonObserver = new MutationObserver(function(mutations) {
6195       mutations.forEach(function(mutation) {
6196         const target = $(mutation.target)
6197         if(target.hasClass('purchaseAddon') && mutation.type === 'attributes' && mutation.attributeName === 'class') {
6198           if(!target.hasClass('hide')) {
6199             // Addon section just became visible, ensure items are loaded
6200             setTimeout(function() {
6201               if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) {
6202                 console.log("Auto-triggering addon load...")
6203                 $("[data-addon=upsell-all]").trigger("click")
6204               }
6205             }, 150)
6206           }
6207         }
6208       })
6209     })
6210     
6211     // Start observing addon section
6212     const addonSection = document.querySelector('.purchaseAddon')
6213     if(addonSection) {
6214       addonObserver.observe(addonSection, { 
6215         attributes: true, 
6216         attributeFilter: ['class'] 
6217       })
6218     }
6219 
6220     $(".purchasePopup").delegate("#addtocart-card", "click", async function(){
6221     
6222     $(this).find("span").addClass("loading")
6223     let isValid = true
6224     $(".formAddressPurchase [required]").each(function(){
6225       const t = $(this)
6226       const input = t.val()
6227       const p = t.parent()
6228       if(input === '') {
6229         p.addClass("error")
6230         isValid = false
6231       }
6232     })
6233 
6234     if(!isValid) {
6235       $(this).find("span").removeClass("loading")
6236       return
6237     }
6238     
6239     let items = []
6240     const mainProps = {
6241       
6242         "Delivery Date": $("#propDeliveryDate").val(),
6243         "Delivery Time": $("#propDeliveryTime").val() !== '' ? $("#propDeliveryTime").val() : '-' ,
6244         "Kota Pengiriman": $("#cities").val(),
6245         "Nama Penerima": $("[data-properties=nama-penerima]").val() !== '' ? $("[data-properties=nama-penerima]").val() : '-' ,
6246         "Alamat Penerima": $("[data-properties=alamat-penerima]").val() !== '' ? $("[data-properties=alamat-penerima]").val() : '-' ,
6247         "Kodepos": $("#zip").val() !== '' ? $("#zip").val() : '-' ,
6248         "Telepon Penerima": $("[data-properties=telepon-penerima").val() !== '' ? $("[data-properties=telepon-penerima").val() : '-' ,
6249       
6250       
6251         "Papan Nama Penerima": $("[data-properties=penerima]").val() !== '' ? $("[data-properties=penerima]").val() : '-' ,
6252         "Papan Ucapan": $("[data-properties=ucapan]").val() !== '' ? $("[data-properties=ucapan]").val() : '-' ,
6253         "Papan Nama Pengirim": $("[data-properties=pengirim]").val() !== '' ? $("[data-properties=pengirim]").val() : '-' ,
6254         "Papan Logo": $("[data-properties=papan-logo]").val() !== '' ? $("[data-properties=papan-logo]").val() : '-' ,
6255         "Foto Alamat": $("[data-properties=foto-alamat]").val() !== '' ? $("[data-properties=foto-alamat]").val() : '-' ,
6256       
6257       
6258       "Province": $("#province").val() !== '' ? $("#province").val() : '-' ,
6259       "Country": $("#properties-kota-pengiriman-country").val() !== '' ? $("#properties-kota-pengiriman-country").val() : '-' ,
6260       "Shipping": $("#properties-shipping").val() !== '' ? $("#properties-shipping").val() : '-' ,
6261       "Company": $("[data-properties=company]").val() !== '' ? $("[data-properties=company]").val() : '-' ,
6262       "id": $("#properties-time").val() !== '' ? $("#properties-time").val() : '-',
6263       "type": 'product'
6264     }
6265     const props = await propItems()
6266     properties = {...mainProps, ...props };
6267     const id = $("#productSelect").find('option:selected').val()
6268     console.log(id, 'main ID')
6269     const mainItem = {
6270       id: Number(id),
6271       quantity: 1,
6272       properties
6273     }
6274     items.push(mainItem)
6275     const cardId = $("#itemCards").find(".selected input").val()
6276     const cardItem = {
6277       id: Number(cardId),
6278       quantity: 1,
6279       properties: { "id": $("#properties-time").val() !== '' ? $("#properties-time").val() : '-', type: 'card' }
6280     }
6281     console.log(cardId, 'cardId')
6282     if(cardId) {
6283       items.push(cardItem)
6284     }
6285     const addon = await addons()
6286     if(addon) {
6287       for(let i = 0;
6287 i < addon.length; i++){
6288         items.push({
6289           id: addon[i].id,
6290           quantity: addon[i].quantity,
6291           properties: addon[i].properties
6292         })
6293       }
6294     }
6295     const addItems = await additem(items)
6296     console.log(addItems.items, 'add items')
6297     if(addItems) {
6298       $(this).find("span").removeClass("loading")
6299       disablePopup()
6300       showPopupCart(addItems.items)
6301       
6302       localStorage.setItem("items", JSON.stringify(addItems.items))
6303     }
6304   })
6305   
6306   $("#addtocart-cart .btn").click(async function(){
6307     const id = $("#productSelect").find('option:selected').val()
6308     const mainProps = {
6309       id: $("#properties-time").val() !== '' ? $("#properties-time").val() : '-', 
6310       type: 'product'
6311     }
6312     const props = await propItems()
6313     const properties = { ...mainProps, ...props };
6314     const items = {
6315       id: Number(id),
6316       quantity: 1,
6317       properties
6318     }
6319     const addItems = await additem(items)
6320     if(addItems) {
6321       showPopupCart(addItems.items)
6322       localStorage.setItem("items", JSON.stringify(addItems))
6323     }
6324   })
6325 
6326   $(".formAddressPurchase [required]").change(function(){
6327     const t = $(this)
6328     const p = t.parent()
6329     const v = t.val()
6330     if(v !== '') {
6331       p.removeClass("error")
6332     }
6333   })
6334 
6335   $("#save-card").click(async function(){
6336     const parent = $(this).parents(".sectionPurchase")
6337     const next = parent.next(".sectionPurchase")
6338     $(this).find("span").addClass("loading")
6339     const card = await saveCard()
6340     console.log(card, 'ssaveCCC')
6341     if(card?.status === 200 || card?.status === 201) {
6342       $(".scanCard").removeClass("hide")
6343       $(this).find("span").removeClass("loading")
6344       parent.addClass("hide")
6345       next.removeClass("hide")
6346       if(next.hasClass("purchaseAddon")) {
6347         $("[data-addon=upsell-all]").click()
6348         console.log("clarity event addons")
6349         window.clarity("event", `${productType} add-ons`)
6350         // Ensure addon items are loaded when entering addon popup
6351         setTimeout(function() {
6352           if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) {
6353             $("[data-addon=upsell-all]").trigger("click")
6354           }
6355         }, 100)
6356       }
6357       if(next.hasClass("purchaseAddress")) {
6358         $("#zip").select2()
6359       }
6360     }
6361   })
6362 
6363   $("#skip-card").click(async function(){
6364     $("#greetingCard [data-properties]").val("")
6365     $("#properties-photo").val("")
6366     $("#properties-video").val("")
6367     const parent = $(this).parents(".sectionPurchase")
6368     const next = parent.next(".sectionPurchase")
6369     parent.addClass("hide")
6370     next.removeClass("hide")
6371     // $("#itemCards").html("")
6372     removeImage()
6373     removeVideo()
6374     if(next.hasClass("purchaseAddon")) {
6375       $("[data-addon='upsell-all']").click()
6376       console.log("clarity event addons")
6377       window.clarity("event", `${productType} add-ons`)
6378       // Ensure addon items are loaded when entering addon popup
6379       setTimeout(function() {
6380         if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) {
6381           $("[data-addon='upsell-all']").trigger("click")
6382         }
6383       }, 100)
6384     }
6385     if(next.hasClass("purchaseAddress")) {
6386       $("#zip").select2()
6387     }
6388   })
6389 
6390   $("#msgCard").click(async function(){
6391       $(this).parent().addClass("loading")
6392       let occasion = $(".selected[data-occassion]").data("occassion")
6393       occasion = occasion?.replace("greeting-card-", "")
6394       const { data } = await getFetch(`${host}/api/card/template/occasion?name=${occasion}`);
6395       const d = data?.data
6396       for(let i = 0; i < d.length; i++) {
6397         const num = Math.floor(Math.random() * (d.length - 1 + 1) + 1);
6398         const greeting = d[num]?.Greeting
6399         $(".greetingCard textarea").val(greeting)
6400         $(this).parent().removeClass("loading")
6401       }
6402       $("#save-card").attr("disabled", false)
6403     })
6404 
6405   $(".sectionPurchaseBoard .next-purchase-button").click(function(){
6406     const parent = $(this).parents(".sectionPurchase")
6407     const next = parent.next(".sectionPurchase")
6408     parent.addClass("hide")
6409     next.removeClass("hide")
6410   })
6411 
6412   $("#editCard").click(function(){
6413     $(".custom-card").show()
6414     $(".preview-card").hide()
6415   })
6416 
6417   $("#first_name, #last_name").change(function(){
6418     const v = $(this).val()
6419     const first_name = $("#first_name").val()
6420     const last_name = $("#last_name").val() !== '' ? ' ' + $("#last_name").val() : ''
6421     $("[data-properties=nama-penerima]").val(first_name+last_name)
6422   })
6423 
6424   $("[data-occassion]").click(function(){
6425       const t = $(this)
6426       const p = t.parents(".sectionPurchase")
6427       // $(".greetingCard").addClass("disabled")
6428       const occasion = t.data("occassion")
6429       loadItemOccasion(t, occasion)
6430   })
6431 
6432   $("#itemCards").delegate(".item-card:not(.item-without-card) label", "click", function(){
6433       const id = $(this).parent(".item-card").data("id")
6434       const t = $(this).parent(".item-card")
6435       const target = t.find("input")
6436       const v = $('.item-card input[type="radio"]:checked').val();
6437       $("#itemCards .item-card").removeClass("selected")
6438       t.addClass("selected")
6439       $("#itemCards .item-card").find("input").attr("name", "")
6440       if(target.length > 0) {
6441           target.attr("name", "id[]")
6442           $("#properties-card").val(id)
6443           $(".greetingCard").removeClass("disabled")
6444           $("#skip-card").attr("disabled", false)
6445       } else {
6446           $("#properties-card").val("")
6447       }
6448   })
6449 
6450   $("#itemCards").delegate(".item-without-card label", "click", function(){
6451     const parent = $(this).parents(".sectionPurchase")
6452     const next = parent.next(".sectionPurchase")
6453     $(".greetingCard").addClass("disabled")
6454     parent.addClass("hide")
6455     next.removeClass("hide")
6456     $("[data-addon=upsell-all]").click()
6457     $("#zip").select2()
6458   })
6459 
6460   $("[data-properties=ucapan]").keyup(function(){
6461     const v = $(this).val()
6462     const p = $(this).parents(".sectionPurchase")
6463     $(".purchaseAddress").find(".greetingCard textarea").val(v)
6464     if(v.length > 3) {
6465       p.find(".next-purchase-button").attr("disabled", false)
6466     } else {
6467       p.find(".next-purchase-button").attr("disabled", true)
6468     }
6469   })
6470 
6471   $("[data-properties=penerima]").keyup(function(){
6472     const v = $(this).val()
6473     $(".purchaseAddress").find("[data-properties=penerima]").val(v)
6474   })
6475 
6476   $("[data-properties=pengirim]").keyup(function(){
6477     const v = $(this).val()
6478     $(".purchaseAddress").find("[data-properties=pengirim]").val(v)
6479   })
6480 
6481   $(document).click(function(e){
6482 
6483      if($(e.target).closest('.wrapperPopupCart').length != 0) return false;
6484      // $('#popupCart').fadeOut('slow');
6485     // location.reload()
6486   });
6487 
6488   $(".toggleAddonCart").click(function(){
6489     const p = $(this).parent(".itemAddonCart")
6490     p.toggleClass("open")
6491   })
6492 
6493   $(".btnViewCart").click(function(){
6494     window.location.href = "https://outerbloom.com/cart";
6495   })
6496 
6497   $(".btnViewCheckout").click(async function(){
6498     $(this).find("span").addClass("loading")
6499     let zip = $("#zip").val()
6500     const first_name = $("#first_name").val()
6501     const last_name = $("#last_name").val()
6502     const company = $("#company").val() !== '' ? $("#company").val() : ''
6503     const address1 = $("#delivery_address").val()
6504     const address2 = zip && zip !== '' ? zip?.split(' - ')[1] : ''
6505     zip = zip && zip !== '' ? zip?.split(' - ')[0] : ''
6506     const phone = $("#recipient_number").val()
6507     const city = $("#cities").val()
6508     const province = $("#province").val()
6509     const country = 'Indonesia'
6510     const ver = Date.parse(new Date())
6511     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}`
6512 
6513     const clear = await fetch(`/cart/clear.js`, {method: 'POST'})
6514     if(clear.status === 200) {
6515       const savedItem = window.localStorage.getItem("items");
6516       const items = JSON.parse(savedItem)
6517       const addItems = await additem(items)
6518       console.log(addItems, 'new addItems')
6519       if(addItems) {
6520         window.location.href = `https://outerbloom.com/checkout?${params}`;
6521       }
6522     }
6523   })
6524 
6525   $(".btnContinueShopping").click(function(){
6526     window.location.href = "https://outerbloom.com/";
6527   })
6528 
6529     if (isIOS) {
6530       $(".empty-state-card").click(function(){
6531         $("#input-foto").trigger("click")
6532       })
6533       $(".btn-upload-image").click(function(){
6534         $("#input-foto").trigger("click")
6535       })
6536       $("[for=input-video]").click(function(){
6537         $("#input-video").trigger("click")
6538       })
6539       $(".btn-upload-papan").click(function(){
6540         $("#logoPapan").trigger("click")
6541       })
6542     }
6543   
6544     $("[data-properties]").each(function(){
6545       const select = $(this).parents(".form-group").find("select")
6546       $(this).change(function(){
6547         const name = $(this).data("properties")
6548         const v = $(this).val()
6549         if (name == 'telepon-penerima') {
6550           let phone = v.replace(/[^0-9]/g, '')
6551           $(this).val(phone);
6552           $("#properties-telepon-penerima").val(phone)
6553           $('.iti__search-input').val('-') 
6554         } else {
6555           $("#properties-" + name).val(v)
6556         }
6557       })
6558       select.on("change", function(){
6559         const name = $(this).data("properties")
6560         const v = $(this).val()
6561         $("#properties-" + name).val(v)
6562       })
6563     })
6564 
6565     $("#show_note").click(function(){
6566       nameq = $("#properties-nama-penerima").val()
6567       dear = $("#properties-kartu-nama-penerima").val()
6568       card = $("[data-properties=ucapan]").val()
6569       sender = $("#properties-kartu-nama-pengirim").val()
6570       photo = $("#properties-photo").val()
6571       video = $("#properties-video").val()
6572       updateCard(nameq, dear, card, sender, photo, video, status)
6573     })
6574 
6575     $(".remove-image").click(function(e){
6576       e.preventDefault()
6577       $(this).find("img").show()
6578       removeImage()
6579     })
6580 
6581     $(".remove-media").click(function(e){
6582       e.preventDefault()
6583       $(this).find("img").show()
6584       removeVideo()
6585     })
6586 
6587     
6588 
6589     $("[data-delivery_method]").click(function(e){
6590       e.preventDefault()
6591       const t = $(this)
6592       const data = t.data("delivery_method")
6593       $("[data-delivery_method]").removeClass("selected")
6594       t.addClass("selected")
6595       $("#cities").val("")
6596       $("#properties-delivery-date").val("-")
6597       $("#deliveryDate button").removeClass("selected")
6598       $("#full-date").val("Full Calendar →")
6599       $("#propDeliveryDate").val("")
6600       const step3 = $("#step-3")
6601       if(data.match('PickUp')) {
6602         $(".selfpickup-point").show()
6603         step3.find("[data-finished=false]").hide()
6604         $("#panel-4").hide()
6605         step3.find("[data-finished=true]").show()
6606         $("#cities").attr("required", false)
6607         $("#form-group-city").hide()
6608         $("#row-delivery-time").hide()
6609         $("#propDeliveryTime, #properties-delivery-time, #properties-nama-penerima, #properties-alamat-penerima, #properties-kodepos, #properties-kodepos, #properties-telepon-penerima").val("-")
6610         $("#propDeliveryTime").attr("required", false)
6611         // $("#deliveryDate").find("button:first-child").addClass("stop")
6612         $(".form-selfpickup").show()
6613         $(".form-delivery").hide()
6614         $(".form-delivery").find("input, textarea, select").val("")
6615         $(".form-delivery").find("input, textarea, select").attr("required", false)
6616         $("#properties-shipping").val("0")
6617         $("#noteDeliveryDate").hide()
6618         $(".form-delivery .form-control").attr("required", false)
6619         $("#stepNav4").hide()
6620         
6621         $("#deliveryDate").find("button:nth-child(1)").addClass("stop")
6622         
6623         
6624         
6625         if(timeOfDay >= 16.01){
6626           $("#deliveryDate").find("button:nth-child(2)").addClass("stop")
6627         }
6628       } else {
6629         
6630         
6631         $("#deliveryDate").find("button:nth-child(1)").removeClass("stop")
6632         step3.find("[data-finished=false]").show()
6633         $("#panel-4").show()
6634         step3.find("[data-finished=true]").hide()
6635         $("#cities").attr("required", true)
6636         $(".selfpickup-point").hide()
6637         $("#form-group-city").show()
6638         $("#cities").val('').trigger('change');
6639         $("#properties-kota-pengiriman").val("-")
6640         
6641         $("#row-delivery-date, #row-delivery-time").show()
6642         $("#propDeliveryDate, #propDeliveryTime").attr("required", true)
6643         $("#deliveryDate").find("button").removeClass("stop")
6644         $(".form-selfpickup").hide()
6645         $(".form-delivery").show()
6646         $(".form-delivery").find("input, textarea, select").attr("required", true)
6647         $(".form-delivery [data-properties]").attr("readonly", false)
6648         $("#properties-kodepos").val("-")
6649         $("#properties-alamat-penerima").val("-")
6650         $(".form-delivery .form-control").attr("required", true)
6651         $(this).parents(".setup-content").attr("id", "step-1")
6652         
6653         $("#stepNav4").show()
6654       }
6655     })
6656 
6657     $("[name=selfpickup]").click(function(){
6658         const p = $(this).parents(".row-pickup")
6659         const pickupCity = $("input[name='selfpickup']:checked").val();
6660         const pickupAddress = $("input[name='selfpickup']:checked").data("address");
6661         const pickupZip = $("input[name='selfpickup']:checked").data("zip");
6662 
6663         $(".row-pickup").removeClass("selected")
6664         p.addClass("selected")
6665         
6666         $("#properties-kota-pengiriman").val(pickupCity)
6667         $("#province").val("Jakarta")
6668         $("#properties-alamat-penerima").val(pickupAddress)
6669         $("#properties-kodepos").val(pickupZip)
6670     })
6671 
6672     $("#cities").change(function(e){
6673       e.preventDefault()
6674       $(this).parent(".row").find("p.error").remove()
6675       $("#full-date").val("Full Calendar")
6676       $("#deliveryDate, #deliveryDateFull label ").show()
6677       $("#deliveryDateFull").removeClass("filled")
6678       $(".btnChangeDeliveryDate").addClass("hide")
6679       $("#full-date").prop('disabled', false);
6680       $("#stepNav2, #stepNav3, #stepNav4").removeClass("btn-success")
6681       $("#stepNav2, #stepNav3, #stepNav4").find("a").attr("disabled", true)
6682       const step3 = $("#step-3")
6683       $("#cityNote").remove()
6684       $("#noteDeliveryDate").hide()
6685       $("#noteDeliveryDate").empty()
6686       let v = $(this).val()
6687       let v2 = $('option:selected', this).attr('data-city');
6688       let v3 = $('option:selected', this).attr('data-province');
6689       let price = $('option:selected', this).attr('data-price');
6690       $("#country").val(v)
6691       $("#properties-kota-pengiriman").val(v)
6692       $("#properties-shipping").val(price)
6693       $("#deliveryDate button, #deliveryTime button, .calendarseasonal .button").removeClass("selected")
6694       $("#properties-delivery-date, #properties-delivery-time").val("-")
6695       $("#propDeliveryDate, #propDeliveryTime").val("")
6696       let note = $('option:selected', this).attr('data-note');
6697       if(v === 'Kota Lainnya') {
6698         $("#noteDeliveryDate").show()
6699         $("#noteDeliveryDate").text("Order akan segera dikirim. Estimasi tanggal diterima akan disesuaikan dengan waktu pengiriman oleh pihak ekspedisi ke lokasi Anda.")
6700         $("#zip").attr("required", false)
6701         $("#zip").hide()
6702         $("#propDeliveryDate, #propDeliveryTime").attr("required", false)
6703         $("#propDeliveryDate, #properties-delivery-date, #propDeliveryTime, #properties-delivery-time").val("-")
6704         $("#row-delivery-date, #row-delivery-time").hide()
6705         $("#properties-shipping").val("")
6706         // $(this).parents(".setup-content").attr("id", "step-2")
6707         
6708       } else {
6709         $("#noteDeliveryDate").hide()
6710         $("#zip").attr("required", true)
6711         $("#zip").show()
6712         $("#row-delivery-date, #row-delivery-time").show()
6713         $("#propDeliveryDate, #propDeliveryTime").attr("required", true)
6714         $("#deliveryDate").find("button").removeClass("stop")
6715         // $(this).parents(".setup-content").attr("id", "step-1")
6716         
6717       }
6718       
6719       
6720       
6721       // if(v !== 'Jakarta') {
6722       //   $("[data-type=upsell]").hide()
6723       // } else {
6724       //   $("[data-type=upsell]").show()
6725       // }
6726       // $('.collection-addons')[0].swiper.update();
6727       
6728       
6729       getProvince(v)
6730       $("#zip").html(`<option value="">Choose Postal Code</option>`)
6731       renderZip(v, v2, v3)
6732       
6733       disabledSameDay()
6734       
6735 
6736       if(v !== 'Jakarta' && v !== 'Depok' && v !== 'Bekasi' && v !== 'Tangerang') {
6737         
6738         $("#cardOccasion, #navAddon, .collection-addons").hide()
6739         
6740         $("[data-addon=giftcard]").show()
6741         $("[data-addon=giftcard]").click()
6742         $("#itemAddons").show()
6743         $("#flower-step").addClass("nonjadetabek")
6744       } else {
6745         $("#cardOccasion, #navAddon, .collection-addons").show()
6746         $("[data-addon=all]").click()
6747         $("#flower-step").removeClass("nonjadetabek")
6748       }
6749       
6750         if(v !== '') {
6751           $("#personalizeBtn .btn").attr("disabled", false)
6752         } else {
6753           $("#personalizeBtn .btn").attr("disabled", true)
6754         }
6755       
6756     })
6757 
6758     $("#zip").change(function(e){
6759       let v = $(this).val()
6760       var city = $("#cities").find('option:selected');
6761       $("#properties-kodepos").val(v)
6762       if(city === 'Kota Lainnya') {
6763         $(this).attr("required", true)
6764         $("#recipient-address").val("")
6765       }
6766     })
6767 
6768     
6769       var minDate = +7
6770       
6771     
6772 
6773     $("#full-date").datepicker({
6774       minDate,
6775       dateFormat: 'Mdd_yy', //Nop22_2021,
6776       
6777       beforeShowDay: disabledays,
6778       
6779       onSelect: function (date) {
6780         $("#deliveryDate, #deliveryDateFull label ").hide()
6781         $("#deliveryDateFull").addClass("filled")
6782         $(".btnChangeDeliveryDate").removeClass("hide")
6783         $("#full-date").prop('disabled', true);
6784         $('#propDeliveryDate, #properties-delivery-date').val('Kirim_'+date);
6785         $(".date-full").addClass("selected")
6786         $(".date-single, .calendar-group").removeClass("selected")
6787         $("#propDeliveryTime").val('')
6788         $("#properties-delivery-time").val('-')
6789         $(".time-single").removeClass("selected")
6790         
6791         
6792       }
6793     });
6794 
6795     $(".btnChangeDeliveryDate").click(function(){
6796         $("#deliveryDate, #deliveryDateFull label ").show()
6797         $("#deliveryDateFull").removeClass("filled")
6798         $(".btnChangeDeliveryDate").addClass("hide")
6799         $("#full-date").prop('disabled', false);
6800     })
6801   
6802     $("#deliveryDate").delegate(".calendarbutton:not(.date-full)", "click", function(e){
6803       e.preventDefault()
6804       $(this).parents("#row-delivery-date").find("p.error").remove()
6805       const fulldate = $(this).data("fulldate")
6806       const day = $(this).data("day")
6807       const date = $(this).data("date")
6808       const month = $(this).data("month")
6809       const year = $(this).data("year")
6810       const off_pagi = $(this).data("offpagi")
6811       const off_siang = $(this).data("offsiang")
6812       const off_Malam = $(this).data("offMalam")
6813       $(".calendarbutton").removeClass("selected")
6814       $(this).addClass("selected")
6815       $("#propDeliveryDate, #properties-delivery-date").val(`Kirim_${month}${date}_${year}`)
6816       $("#propDeliveryTime").val('')
6817       $("#properties-delivery-time").val('-')
6818       $(".calendarbutton2").removeClass("selected")
6819       $("#full-date").val("Full Calendar")
6820 
6821       
6822       if(off_pagi && timeOfDay > off_pagi) {
6823         $("[data-time=Morning]").attr("disabled", true)
6824       } else {
6825         $("[data-time=Morning]").attr("disabled", false)
6826       }
6827       if(off_siang && timeOfDay > off_siang) {
6828         $("[data-time=Afternoon]").attr("disabled", true)
6829       } else {
6830         $("[data-time=Afternoon]").attr("disabled", false)
6831       }
6832       
6833 
6834       
6835     })
6836     
6837     if(today === 14 && timeOfDay > 17.00) {
6838       $("#deliveryDate button:first-child").attr("disabled", true)
6839     }
6840   
6841     $("#deliveryTime").delegate(".calendarbutton2", "click", function(e){
6842       e.preventDefault()
6843       const time = $(this).data("time")
6844       const date = $("#propDeliveryDate").val()
6845       if(date == '') {
6846         return alert('Silakan pilih tanggal terlebih dahulu')
6847       }
6848       $(".calendarbutton2").removeClass("selected")
6849       $(this).addClass("selected")
6850       $("#propDeliveryTime, #properties-delivery-time").val(`KirimJam_${date.replace('Kirim_','')}_${time}`)
6851     })
6852       
6853     $('textarea.has-limit, input.has-limit').keyup(function () {
6854       max = this.getAttribute("maxlength");
6855       let len = $(this).val().length;
6856       let limit = $(this).siblings(".limit");
6857       if (len > max) {
6858         alert('you have reached the limit');
6859       } else {
6860         limit.text(`${len}/${max}`);
6861       }
6862     });
6863     
6864     $("#button-action-step .btn").click(function(){
6865       $(this).find("span").text("Processing...");
6866     });
6867 
6868     $(".finishBtn").on('click', function() {
6869       $(this).addClass("is-adding");
6870       // $(this).click();
6871     });
6872 
6873     $('.setup-panel .nav-item a.btn-success').trigger('click');
6874 
6875     $("#button-action .btn").click(function(){
6876       $("#flower-step").addClass("block");
6877       $("#button-action").hide();
6878     });
6879         
6880     $(".close-how-order").click(function(){
6881       $("#flower-step").removeClass("block");
6882       $("#button-action").show();
6883     });
6884 
6885     $("#input-foto, #input-video").change(function(e){
6886       readURL(this);
6887     });
6888 
6889     $("#logoPapan").change(function(){
6890       readURLPapan(this);
6891     });
6892 
6893     $("#address-upload").change(async function(){
6894       const upload_address = await readURLAddress(this)
6895       if(upload_address) {
6896         const url = upload_address.url
6897         $(".props-address-upload").val(url)
6898         $(".form-address").addClass("address-uploaded")
6899         $(".form-address-upload").addClass("uploaded")
6900 
6901         $(this).parents(".form-group").siblings(".form-group").find("[required]").attr("required", false)
6902       }
6903     })
6904 
6905     $(".address-manualy").click(function(){
6906       $(".form-address-upload").removeClass("uploaded");
6907       $(".photo-address").hide();
6908       $(".form-address").removeClass("address-uploaded")
6909       $("#formAddressPurchase").find(".form-control").attr("required", true)
6910     });
6911 
6912     $(".case-video-preview").delegate(".replace-video", "click", function(){
6913       $("#input-video").trigger("click")
6914     })
6915 
6916     $('.date-single').click(function(e) {
6917       e.preventDefault();
6918       $('.date-single').removeClass('selected');
6919       $('#full-date').removeClass('selected');
6920       $(this).addClass('selected');
6921       $('#full-date').html('Full' + '<br/>' + 'Calendar');
6922     });
6923     $('#full-date').click(function(e){
6924       e.preventDefault();
6925       $('.date-single').removeClass('selected');
6926       $(this).addClass('selected');
6927     });
6928     
6929     // $("tr").each(function(){
6930     //   if($(this).text().match('SKU')) {
6931     //     $(".sku-product").html($(this).parents("table").html())
6932     //   }
6933     // })
6934     
6935     $("#product-image").scroll(function(){
6936       $(".desc-add").each(function(){
6937         const img = $(this).find("img")
6938         const src = img.data("src")
6939         img.attr("src", src)
6940       })
6941     })
6942 
6943     $(".product-fixed").hide()
6944     
6945     let target = $("#personalizeBtn")
6946     
6947 
6948     $(".product-meta").scroll(function() {
6949         if ($(window).scrollTop() >= target.offset().top ) {
6950             $(".product-fixed").addClass("show")
6951         } else {
6952           $(".product-fixed").removeClass("show")
6953         }
6954     });
6955 
6956     $(window).scroll(function() {
6957         if ($(window).scrollTop() >= target.offset().top ) {
6958             $(".product-fixed").addClass("show")
6959         } else {
6960           $(".product-fixed").removeClass("show")
6961         }
6962     });
6963   });
6964 </script>
6964
6965 
6966   
6966<script>
6967     //
6968   </script>
6968
6969 
6970 
6970<script>
6971   $(document).ready(function(){
6972     $('table tr td').each(function(){
6973       var texto = $(this).text();
6974       var nextto = $(this).next("td");
6975       var sku = $("#data-sku").val()
6976       if(texto == 'SKU'){
6977         nextto.text(sku)
6978       }
6979     });
6980     
6981     $(".stamped-summary-actions-newquestion").text("Tulis Pertanyaan");
6982     $(".stamped-summary-actions-newreview").text("Tulis Review");
6983     $("#tab-questions").text("Pertanyaan");
6984     
6985     $(".freeship .icon").click(function(){
6986       $(".fs-content").slideToggle();
6987       $(this).parents(".freeship").toggleClass("expand");
6988     });
6989     
6990     var $easyzoom = $('.easyzoom').easyZoom();
6991     // Setup thumbnails example
6992     var api1 = $easyzoom.filter('.easyzoom--with-thumbnails').data('easyZoom');
6993     $('.thumbnails').on('click', 'a', function(e) {
6994       var $this = $(this);
6995       e.preventDefault();
6996       // Use EasyZoom's `swap` method
6997       api1.swap($this.data('standard'), $this.attr('href'));
6998     });
6999 
7000     $('#playerID').click(function(){
7001       var videoURL = $('#VdoID').attr('src'),
7002           dataplay = $('#VdoID').attr('data-play');
7003 
7004       //for check autoplay
7005       //if not set autoplay=1
7006       if(dataplay == 0 ){
7007         $('#VdoID').attr('src',videoURL+'?autoplay=1');
7008         $('#VdoID').attr('data-play',1);
7009       }
7010       else{
7011         var videoURL = $('#VdoID').attr('src');
7012         videoURL = videoURL.replace("?autoplay=1", "");
7013         $('#VdoID').prop('src','');
7014         $('#VdoID').prop('src',videoURL);
7015 
7016         $('#VdoID').attr('data-play',0);
7017       }
7018 
7019     });
7020     
7021     $(".product-photo-thumb-video").click(function(e){
7022       e.preventDefault();
7023 
7024       var newEmbed = $(this).attr('href');
7025       $("#featured-image-product").addClass("img-video");
7026       $("#ProductPhotoImg").hide();
7027       $("#featured-image-product .video").show();
7028       $("#featured-image-product iframe").attr('src', newEmbed);
7029       $("#VdoID")[0].src += "&autoplay=1";
7030     });
7031     $(".product-single__thumbnail").click(function(evt){
7032       evt.preventDefault();
7033       $("#featured-image-product").removeClass("img-video");
7034       $("#ProductPhotoImg").show();
7035       $("#featured-image-product .video").hide();
7036       $("#featured-image-product iframe").attr('src', '');
7037     });
7038     
7039     if($('#product-meta .short-desc > div').length >= 1){
7040       //console.log('div detected')
7041       var replacer = $('#product-meta .short-desc > div').contents();
7042       $('#product-meta .short-desc > div').replaceWith(replacer);
7043 
7044       var cAssured =  $('.c-assured').detach();
7045       cAssured.insertAfter('.meta-sds .stock-info');
7046     }
7047 
7048     
7049     
7050     $(".heading-toggle").click(function(){
7051       $(this).parent().toggleClass("open")
7052       
7053     });
7054   });
7055 </script>
7055
7056 
7057 
7058   
7058<script type="application/json" id="ProductJson-Product">
7059         
7060         {"id":8144957800663,"title":"BASKET168: Portal Login Slot Eksklusif Game Gacor Online Lengkap Bonus Harian","handle":"blossom-shine","description":"\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eBasket168 Adalah portal login slot eksklusif dengan kemudahan akses di banyak game online gacor paling lengkap keamanan berstandar tinggi serta bonus harian setiap hari."}
7061   </script>
7061
7062   
7063     
7063<script type="application/json" id="VariantJson-Product">
7064       [
7065         
7066           {
7067              "incoming": false,
7068              "next_incoming_date": null
7069           }
7070         
7071       ]
7072     </script>
7072
7073   
7074 
7075 
7076 
7077 </div>
7078 
7079 
7080 
7080<script src="//outerbloom.com/cdn/shopifycloud/storefront/assets/themes_support/option_selection-b017cd28.js" type="text/javascript"></script>
7080
7081 <style>
7082     .stamped-review-header-title,
7083     .stamped-review-header .author,
7084     .stamped-review-content-body,
7085     .stamped-sort-select,
7086     .stamped-review-header .verified-badge[data-type=buyer]:after,
7087     .stamped-review-header-byline,
7088     .stamped-review-reply-body {font-size: 14px!important;font-family: 'Barlow',sans-serif!important;}
7089     .stamped-review {margin-bottom: 0;}
7090     .stamped-review-body {padding-left: 65px;}
7091     .stamped-review:first-child {padding-top: 25px;}
7092     .stamped-review-content {clear: none;}
7093     .stamped-review-reply {margin: 15px 0 0 65px;background: #f2f2f2;border-left: none;}
7094     .stamped-review-reply-body {padding-left: 65px;}
7095     .stamped-review-header .author {text-transform: capitalize;}
7096     .stamped-questions .stamped-review-content {padding-left: 65px;}
7097 
7098     .stamped-pagination {margin: 20px 0 0;}
7099     .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;}
7100     .stamped-pagination li a {color: #121212;padding: 13px 18px;vertical-align: middle;display: block;}
7101     .stamped-pagination li.active a {background-color: #ddd;font-weight: 400;}
7102     .stamped-pagination li:hover a {background: #ddd;}
7103     .stamped-pagination .next {border-right: 1px solid #ccc;}
7104     .stamped-pagination li:first-child {border-top-left-radius: 5px;border-bottom-left-radius: 5px;}
7105     .stamped-pagination li:last-child {border-top-right-radius: 5px;border-bottom-right-radius: 5px;}
7106 
7107     #stamped-pagination-question span.page {display: inline-block;border: 1px solid #ccc;width: 47px;}
7108     #stamped-pagination-question span {font-size: 14px;}
7109     #stamped-pagination-question .page.active {padding: 12px;font-weight: 400;background: #ddd;}
7110     #stamped-pagination-question a, #stamped-pagination-question .page.active {color: #121212;padding: 13px 18px;vertical-align: middle;display: inline-block;}
7111     .stamped-pagination-deco {color: #121212;padding: 13px 18px;width: 47px;vertical-align: middle;display: inline-block;border: 1px solid #ccc;padding: 12px;}
7112     .stamped-pagination-prev, .stamped-pagination-next {position: inherit;}
7113     .stamped-pagination-prev a, .stamped-pagination-next a {width: auto!important;border: 1px solid #ccc;}
7114 
7115     @media (max-width: 480px){
7116       .stamped-review-reply {margin-left: 0!important;}
7117       select.stamped-sort-select {font-size: 13px!important;}
7118     }
7119 
7120   #product-reviews .stamped-summary-ratings, #product-reviews .stamped-summary-actions, .stamped-content {
7121       display: block !important;
7122   }
7123 </style>
7124 
7124<script>
7125     var selectCallback = function(variant, selector) {
7126       timber.productPage({
7127         money_format: "Rp {{amount_no_decimals}}",
7128         variant: variant,
7129         selector: selector
7130       });
7131     };
7132 
7133     jQuery(function($) {
7134       new Shopify.OptionSelectors('productSelect', {
7135         product:
7136 
7137 
7138 
7139 
7140 
7141 {"id":8144957800663,"title":"BASKET168: Portal Login Slot Eksklusif Game Gacor Online Lengkap Bonus Harian","handle":"blossom-shine","description":"\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eBasket168 Adalah portal login slot eksklusif dengan kemudahan akses di banyak game online gacor paling lengkap keamanan berstandar tinggi serta bonus harian setiap hari."},
7142         onVariantSelected: selectCallback,
7143         enableHistoryState: true
7144       });
7145 
7146       // Add label if only one product option and it isn't 'Title'. Could be 'Size'.
7147       
7148 
7149       // Hide selectors if we only have 1 variant and its title contains 'Default'.
7150       
7151         $('.selector-wrapper').hide();
7152       
7153     });
7154 </script>
7154
7155 
7156 
7157 
7158   
7158<script type="application/ld+json">
7159     {
7160     "@context": "http://schema.org",
7161     "@type": "Product",
7162 "offers": {
7163 "@type": "Offer",
7164 "availability":"https://schema.org/InStock",
7165 "price": 835000,
7166 "priceValidUntil": "05-10-2025",
7167 "priceCurrency": "IDR",
7168 "url": "https://basket168what.com/"
7169 },
7170 "brand": {
7171 "@type": "Brand",
7172 "name": "Outerbloom Florist"
7173 },
7174 "sku": "8144957800663",
7175 "gtin13": "Jawa",
7176 "name": "BASKET168: Portal Login Slot Eksklusif Game Gacor Online Lengkap Bonus Harian",
7177 "description": "Basket168 Adalah portal login slot eksklusif dengan kemudahan akses di banyak game online gacor paling lengkap keamanan berstandar tinggi serta bonus harian setiap hari.",
7178 "category": "Basket168 Adalah portal login slot eksklusif dengan kemudahan akses di banyak game online gacor paling lengkap keamanan berstandar tinggi serta bonus harian setiap hari.",
7179 "url": "https://basket168what.com/",
7180 "image": {
7181 "@type": "ImageObject",
7182 "url": "https://outerbloom.com/cdn/shop/files/Blossom-Shine-WM_small.jpg?v=1695788426",
7183 "image": "https://outerbloom.com/cdn/shop/files/Blossom-Shine-WM_small.jpg?v=1695788426",
7184 "name": "BASKET168: Portal Login Slot Eksklusif Game Gacor Online Lengkap Bonus Harian",
7185 "width": 1024,
7186 "height": 1024
7187 }
7188     }
7189   </script>
7189
7190 
7191 
7192 
7193 
7194         
7195 
7195<script id="bss-ltap-hide-price" type="text/javascript" >
7196 !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)}))}
7196)),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)}
7196)),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()}
7196if("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)}
7196if(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");
7196c&&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
7196-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");
7196i&&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
7196--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
7196opify.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");
7196e.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=
7196o.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");
7196if(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();
7196let 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()}]);
7197 </script>
7197
7198 
7199       </main>
7200       
7201       <div id="shopify-section-newsletter" class="shopify-section"><br>
7202   <style>
7203     #shopify-section-newsletter {
7204       background: url('https://hokiku.io/images/2026/07/17/BASKET168-Portal-Login-Slot-Eksklusif-Game-Gacor-Online-Lengkap-Bonus-Harian.jpeg');
7205       background-attachment: fixed;
7206       margin-bottom: 0;
7207     }
7208     input:-webkit-autofill,
7209     input:-webkit-autofill:hover,
7210     input:-webkit-autofill:active,
7211     input:-webkit-autofill:focus {
7212       -webkit-box-shadow:0 0 0 50px white inset;
7213       -webkit-text-fill-color: #ffffff;
7214     }
7215     .section-newsletter {
7216       max-width: 800px;
7217       margin: auto;
7218       padding: 50px 0;
7219     }
7220     .section-newsletter h2 {
7221       font-weight: 700;
7222       font-size: 24px;
7223     }
7224     .section-newsletter input[type="email"] {
7225       width: 100%;
7226       text-align: center;
7227       border: none;
7228       border-bottom: 1px solid #ffffff;
7229       font-size: 16px;
7230       color: #757575;
7231       background-color: #eeeeee;
7232     }
7233     .section-newsletter .row label {
7234       font-size: 14px;
7235       cursor: pointer;
7236     }
7237     .section-newsletter .radio-inline input {
7238       width: auto;
7239     }
7240     .section-newsletter .btn {
7241       width: 130px;
7242       border: 1px solid #ffffff;
7243       box-shadow: none;
7244       font-size: 16px;
7245       font-weight: 500;
7246       text-transform: uppercase;
7247     }
7248     .section-newsletter form {
7249       margin: 30px 0 60px;
7250     }
7251     .section-newsletter input[type="radio"] {
7252       position: absolute;
7253       width: 1px;
7254       height: 1px;
7255     }
7256     .section-newsletter [type="radio"]:checked + label, .section-newsletter [type="radio"]:not(:checked) + label {
7257       position: relative;
7258       padding-left: 28px;
7259       cursor: pointer;
7260       line-height: 20px;
7261       display: inline-block;
7262       color: #666;
7263     }
7264     .section-newsletter [type="radio"]:checked + label:before, .section-newsletter [type="radio"]:not(:checked) + label:before {
7265       content: '';
7266       position: absolute;
7267       left: 0;
7268       top: 0;
7269       width: 18px;
7270       height: 18px;
7271       border: 1px solid #ddd;
7272       border-radius: 100%;
7273       background: #fff;
7274     }
7275     .section-newsletter [type="radio"]:checked + label:after, .section-newsletter [type="radio"]:not(:checked) + label:after {
7276       content: '';
7277       width: 12px;
7278       height: 12px;
7279       background: #ffffff;
7280       position: absolute;
7281       top: 3px;
7282       left: 3px;
7283       border-radius: 100%;
7284       -webkit-transition: all 0.2s ease;
7285       transition: all 0.2s ease;
7286     }
7287     .section-newsletter [type="radio"]:not(:checked) + label:after {
7288       opacity: 0;
7289       -webkit-transform: scale(0);
7290       transform: scale(0);
7291     }
7292     .opt-newsletter {display:none;}
7293     .footer-newsletter p, .footer-newsletter p a {
7294       color: #757575;
7295     }
7296     @media (max-width:991px){
7297       .section-newsletter h2 {
7298         font-size: 32px;
7299       }
7300       .section-newsletter input {
7301         width: 300px;
7302         font-size: 14px;
7303       }
7304       .section-newsletter {
7305         padding: 50px 20px;
7306       }
7307     }
7308     @media (max-width: 480px){
7309       .section-newsletter input[type="email"] {font-size: 16px;}
7310     }
7311   </style>
7312  <style>
7313 .icon-img-footer {
7314     width: 80px; 
7315     padding: 0px 5px;
7316 }
7317 @media (min-width: 768px) {
7318     .icon-img-footer {
7319         width: 120px; 
7320     }
7321 }
7322 @media (min-width: 992px) {
7323     .icon-img-footer {
7324         width: 120px; 
7325     }
7326 }
7327 
7328   .button-login-daftar {
7329                         display: grid;
7330                         grid-template-columns: repeat(2, 1fr);
7331                         font-weight: 700;
7332                     }
7333                     .button-login-daftar a {
7334                         text-align: center;
7335                     }
7336                     .login,
7337                     .register {
7338                         color: #ffa200;
7339                         padding: 15px 10px;
7340                         font-size: 23px;
7341                     }
7342                     .login,
7343                     .login-button {
7344                         background: linear-gradient(to bottom,#000000 0,#000000 100%);
7345                         border: 2px solid #ffa200;
7346                     }
7347                     .register,
7348                     .register-button {
7349                         background: linear-gradient(to bottom,#000000 0,#000000 100%);
7350                         border: 2px solid #ffa200;
7351                     }
7352 
7353 
7354 
7355 </style>
7356 
7357 <!-- wp:html -->
7358  
7358<script>
7359         document.addEventListener('DOMContentLoaded',
7360             function(){const faqItems=document.querySelectorAll('.faq-item');
7361             faqItems.forEach(item=>{const question=item.querySelector('.faq-question');
7362             question.addEventListener('click',
7363             ()=>{const isActive=item.classList.contains('active');
7364             faqItems.forEach(otherItem=>{otherItem.classList.remove('active')});
7365             if(!isActive){item.classList.add('active')}})})});
7366         </script>
7366
7367 
7368 
7369             <div class="page__overlay" data-view="offCanvasNavToggle" data-off-canvas="close" bis_skin_checked="1">
7370             </div>
7371 <div class="faq-section">
7372         <h2>FAQ</h2>
7373             <div class="faq-container">
7374                 <div class="faq-item">
7375                     <button class="faq-question">1. Apa yang membuat BASKET168 disebut portal login slot eksklusif?<span></span></button>
7376                     <div class="faq-answer"><p>BASKET168 menghadirkan pintu masuk khusus ke koleksi slot eksklusif dari puluhan provider internasional terkemuka, dilengkapi antarmuka premium yang intuitif dan sistem keamanan berlapis untuk memproteksi setiap akun member.</p></div>
7377                 </div>
7378                 <div class="faq-item">
7379                     <button class="faq-question">2. Bagaimana cara mengetahui game gacor yang tersedia di BASKET168?<span></span></button>
7380                     <div class="faq-answer"><p>BASKET168 menyediakan halaman khusus yang menampilkan daftar game gacor terupdate berdasarkan nilai RTP tertinggi dan performa kemenangan terkini, sehingga member bisa langsung memilih slot dengan peluang terbaik setiap harinya.</p></div>
7381                 </div>
7382                 <div class="faq-item">
7383                     <button class="faq-question">3. Apa saja jenis bonus harian yang bisa diklaim di BASKET168?<span></span></button>
7384                     <div class="faq-answer"><p>Member aktif BASKET168 berhak atas berbagai bonus harian seperti cashback kekalahan, reload deposit, dan reward spin gratis yang dikreditkan secara otomatis ke akun tanpa perlu klaim manual yang merepotkan.</p></div>
7385                 </div>
7386                  <div class="faq-item">
7387                     <button class="faq-question">4. Seberapa lengkap koleksi game online yang tersedia di portal ini?<span></span></button>
7388                     <div class="faq-answer"><p>Sangat lengkap. BASKET168 mengumpulkan ribuan judul permainan mulai dari slot klasik, video slot modern, live casino, hingga sports betting semuanya tersaji dalam satu portal tanpa perlu berpindah platform.</p></div>
7389                 </div>
7390                  <div class="faq-item">
7391                     <button class="faq-question">5. Apakah transaksi deposit dan withdraw di BASKET168 terjamin kecepatannya?<span></span></button>
7392                     <div class="faq-answer"><p>Dijamin. Sistem pembayaran BASKET168 telah terintegrasi dengan berbagai metode transfer lokal dan dompet digital, memastikan proses deposit instan dan pencairan dana yang cepat tanpa potongan tersembunyi.</p></div>
7393                 </div>
7394 
7395             </div>
7396 
7397         </div>
7398 
7399     </div>
7400 
7401 
7402 <div class="overlay overlay-cart"></div>
7403 <div id="CartDrawer" class="drawer drawer--right">
7404   <div class="drawer__header pl-2 pr-2">
7405     <div class="drawer__icon-cart display-table-cell">
7406       <a href="/cart" class="">
7407         <svg class="icon icon-cart" version="1.1" xmlns="https://hokiku.io/images/2025/02/10/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.
7407005-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>
7408       </a>
7409     </div>
7410     <div class="drawer__title h4">Keranjang Belanja</div>
7411     <div class="drawer__close js-drawer-close">
7412       <button type="button">
7413         <svg class="icon icon-close" version="1.1" xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="32" height="32" viewBox="0 0 32 32">
7414 <title>icon-close</title>
7415 <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>
7416 </svg>
7417       </button>
7418     </div>
7419   </div>
7420   <div id="CartContainer" class="p-2"></div>
7421 </div>
7422 
7423 
7423<script>
7424       
7425     </script>
7425
7426       
7426<script src="//outerbloom.com/cdn/shop/t/138/assets/handlebars.min.js?v=79044469952368397291752652415" defer></script>
7426
7427       <!-- /snippets/ajax-cart-template.liquid -->
7428 
7429   
7429<script id="CartTemplate" type="text/template">
7430   
7431     <form action="/cart" method="post" novalidate class="cart ajaxcart">
7432       <div class="ajaxcart__inner" {{ cart.item_count }}>
7433         {{#items}}
7434         <div class="ajaxcart__product">
7435           <div class="ajaxcart__row" data-line="{{line}}">
7436             <div class="grid">
7437               <div class="grid__item one-quarter">
7438                 <a href="{{url}}" class="ajaxcart__product-image"><img src="{{img}}" alt=""></a>
7439               </div>
7440               <div class="grid__item three-quarters">
7441                 <p class="d-block mb-3">
7442                   <a class="h4 d-block mb-2" href="{{url}}" class="ajaxcart__product-name">{{name}}</a>
7443                   {{#if variation}}
7444                     <span class="ajaxcart__product-meta p">{{variation}}</span>
7445                   {{/if}}
7446                   {{#properties}}
7447                     {{#each this}}
7448                       {{#if this}}
7449                         <span class="ajaxcart__product-meta p hide">{{@key}}: {{this}}</span>
7450                       {{/if}}
7451                     {{/each}}
7452                   {{/properties}}
7453                   
7454                 </p>
7455                 <div class="grid--full display-table">
7456                   <div class="grid__item display-table-cell one-half">
7457                     <div class="ajaxcart__qty">
7458                       <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--minus" data-id="{{key}}" data-qty="{{itemMinus}}" data-line="{{line}}">
7459                         <svg version="1.1" xmlns="https://hokiku.io/images/2025/02/10/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>
7460                         <span class="visually-hidden">Kurangi jumlah barang</span>
7461                       </button>
7462                       <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]*">
7463                       <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--plus" data-id="{{key}}" data-line="{{line}}" data-qty="{{itemAdd}}">
7464                         <svg version="1.1" xmlns="https://hokiku.io/images/2025/02/10/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>
7465                         <span class="visually-hidden">Tambahkan jumlah barang</span>
7466                       </button>
7467                     </div>
7468                   </div>
7469                   <div class="grid__item display-table-cell one-half text-right">
7470                     {{#if discountsApplied}}
7471                       <small class="ajaxcart-item__price-strikethrough"><s>{{{originalLinePrice}}}</s></small>
7472                       <br><span class="h4">{{{linePrice}}}</span>
7473                     {{else}}
7474                       <span class="h4">{{{linePrice}}}</span>
7475                     {{/if}}
7476                     </div>
7477                   </div>
7478                   {{#if discountsApplied}}
7479                     <div class="grid--full display-table">
7480                       <div class="grid__item text-right">
7481                         {{#each discounts}}
7482                           <small class="ajaxcart-item__discount">{{ this.title }}</small><br>
7483                         {{/each}}
7484                       </div>
7485                     </div>
7486                   {{/if}}
7487                   </div>
7488                 </div>
7489               </div>
7490             </div>
7491           </div>
7492         </div>
7493         {{/items}}
7494       </div>
7495       <div class="ajaxcart__footer">
7496         <div class="grid--full cart-subtotal py-2">
7497             <p>Subtotal</p>
7498             <h3 class="primary">{{{totalPrice}}}</h3>
7499           {{#if totalCartDiscount}}
7500             <p class="ajaxcart__savings text-center"><em>{{{totalCartDiscount}}}</em></p>
7501           {{/if}}
7502         </div>
7503         
7504         <a href="/cart" class="btn btn-cta view-more btn-block cart__checkout mt-2">Checkout</a>
7505         
7506         <p class="cart-checkout-shipping hide">Free Ongkir dengan belanja di atas Rp.10.000 <a href="/pages/pengiriman">detail</a></p>
7507       </div>
7508     </form>
7509   
7510   </script>
7510
7511   
7511<script id="AjaxQty" type="text/template">
7512   
7513     <div class="ajaxcart__qty">
7514       <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--minus" data-id="{{key}}" data-qty="{{itemMinus}}">
7515         <svg version="1.1" xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="24" height="24" viewBox="0 0 32 32">
7516             <title>icon-minus</title>
7517             <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>
7518         </svg>
7519         <span class="visually-hidden">Kurangi jumlah barang</span>
7520           </button>
7521               <input type="text" class="ajaxcart__qty-num" value="{{itemQty}}" min="0" data-id="{{key}}" aria-label="quantity" pattern="[0-9]*">
7522           <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--plus" data-id="{{key}}" data-qty="{{itemAdd}}">
7523         <svg version="1.1" xmlns="https://hokiku.io/images/2025/02/10/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>
7524         <span class="visually-hidden">Tambahkan jumlah barang</span>
7525       </button>
7526     </div>
7527   
7528   </script>
7528
7529   
7529<script id="JsQty" type="text/template">
7530   
7531     <div class="js-qty mx-auto mt-2">
7532       <button type="button" class="js-qty__adjust js-qty__adjust--minus" data-id="{{key}}" data-qty="{{itemMinus}}">
7533         <svg version="1.1" xmlns="https://hokiku.io/images/2025/02/10/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>
7534         <span class="visually-hidden">Kurangi jumlah barang</span>
7535       </button>
7536       <input type="text" class="js-qty__num" value="{{itemQty}}" min="1" data-id="{{key}}" aria-label="quantity" pattern="[0-9]*" name="{{inputName}}" id="{{inputId}}">
7537       <button type="button" class="js-qty__adjust js-qty__adjust--plus" data-id="{{key}}" data-qty="{{itemAdd}}">
7538         <svg version="1.1" xmlns="https://hokiku.io/images/2025/02/10/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>
7539         <span class="visually-hidden">Tambahkan jumlah barang</span>
7540       </button>
7541     </div>
7542   
7543   </script>
7543
7544 
7545 <style>
7546   #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty button,
7547   #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty button,
7548   #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty button {display: none;}
7549   #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty input,
7550   #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty input,
7551   #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty input {pointer-events: none;opacity: 0.5;}
7552   #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty input,
7553   #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty input,
7554   #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty input {pointer-events: none;}
7555 </style>
7556       
7556<script src="//outerbloom.com/cdn/shop/t/138/assets/ajax-cart.js?v=51128912329657147331752652452" defer></script>
7556
7557       
7557<script>
7558         jQuery(function($) {
7559           ajaxCart.init({
7560             formSelector: '#AddToCartForm',
7561             cartContainer: '#CartContainer',
7562             addToCartSelector: '#AddToCartXX',
7563             cartCountSelector: '#CartCount, #CartCount2',
7564             cartCostSelector: '#CartCost',
7565             moneyFormat: "Rp {{amount_no_decimals}}"
7566           });
7567           });
7568 
7569           jQuery(document.body).on('afterCartLoad.ajaxCart', function(evt, cart) {
7570             // Bind to 'afterCartLoad.ajaxCart' to run any javascript after the cart has loaded in the DOM
7571             timber.RightDrawer.open();
7572           });
7573       </script>
7573
7574     
7575 
7576 
7577 
7578 <style>
7579   /** Search AutoComplete **/
7580   .resultsearch .ui-menu-item[data-cat="Collection"],
7581   .resultsearch .ui-menu-item[data-cat="Collection"] {display: none;}
7582   .resultsearch .ui-widget.ui-widget-content {
7583     width: 100%;
7584     top: 48px;
7585     border: none;
7586     box-shadow: 0 4px 8px rgba(255, 255, 255, 0.3);
7587   }
7588   .resultsearch .ui-menu-item {text-align: left;}
7589   .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;}
7590   .ui-state-active {
7591     border: none!important;
7592     background-color: #fafafa!important;
7593     color: #000!important;
7594   }
7595   .ui-menu-item a[data-cat="Collection"] {padding: 5px 12px;}
7596   .ui-menu .ui-menu-item {line-height: normal;}
7597 </style>
7598 
7598<script>
7599 $(window).load(function(){
7600 
7601   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;}
7602 
7603   $.widget("custom.catcomplete", $.ui.autocomplete, {
7604     _renderMenu: function (ul, items) {
7605       // have search reults split up in categories
7606       var that = this,
7607           currentCategory = "";
7608       $.each(items, function (index, item) {
7609         if (item.category != currentCategory) {
7610           ul.append("<li class='ui-autocomplete-category' data-cat=" + item.category + ">" + "<span>" + item.category + "</span>" + "</li>");
7611           currentCategory = item.category;
7612         }
7613         that._renderItemData(ul, item);
7614       });
7615     }
7616   });
7617 
7618   // higlight searched for term
7619   $.ui.autocomplete.prototype._renderItem = function( ul, item ) {
7620     var term = this.element.val(),
7621         html = item.label.replace( term, "<b>$&</b>" );
7622     return $( "<li>" )
7623     .append(format(item))
7624     .appendTo( ul );
7625   };
7626 
7627 
7628   var data = [
7629       { 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 Sweetbox Newborn", category: "Co
7629llection", 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: " " }
7629,{ 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: " " }
7629,{ 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: " " }
7629,{ 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
7629dal", 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-
7629hampers", 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
7629o-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: " " }
7629,{ 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: " " }
7629,{ 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: " " }
7629,{ 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: " " }
7629,{ 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: " " }
7629,{ 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: " " }
7629,{ 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: " " }
7629,{ 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: "Basket168 Adalah portal login slot eksklusif dengan kemudahan akses di banyak game online gacor paling lengkap keamanan berstandar tinggi serta bonus harian setiap hari.", category: "Collection", url: "/collections/standing-flower", images: " ", price: " " },{ label: "Basket168 Adalah portal login slot eksklusif dengan kemudahan akses di banyak game online gacor paling lengkap keamanan berstandar tinggi serta bonus harian setiap hari. Bali", category: "Collection", url: "/collections/standing-flower-bali", images: " ", price: " " },{ label: "Basket168 Adalah portal login slot eksklusif dengan kemudahan akses di banyak game online gacor paling lengkap keamanan berstandar tinggi serta bonus harian setiap hari. Bandung", category: "Collection", url: "/collections/standing-flower-bandung", images: " ", price: " " },{ label: "Basket168 Adalah portal login slot eksklusif dengan kemudahan akses di banyak game online gacor paling lengkap keamanan berstandar tinggi serta bonus harian setiap hari. Congratulations", category: "Collection", url: "/collections/standing-flower-congratulations", images: " ", price: " " },{ label: "Basket168 Adalah portal login slot eksklusif dengan kemudahan akses di banyak game online gacor paling lengkap keamanan berstandar tinggi serta bonus harian setiap hari. Demak", category: "Collection", url: "/collections/standing-flower-demak", images: " ", price: " " },{ label: "Basket168 Adalah portal login slot eksklusif dengan kemudahan akses di banyak game online gacor paling lengkap keamanan berstandar tinggi serta bonus harian setiap hari. Jepara", category: "Collection", url: "/collections/standing-flower-jepara", images: " ", price: " " },{ label: "Basket168 Adalah portal login slot eksklusif dengan kemudahan akses di banyak game online gacor paling lengkap keamanan berstandar tinggi serta bonus harian setiap hari. Semarang", category: "Collection", url: "/collections/standing-flower-semarang", images: " ", price: " " },{ label: "Basket168 Adalah portal login slot eksklusif dengan kemudahan akses di banyak game online gacor paling lengkap keamanan berstandar tinggi serta bonus harian setiap hari. Sidoarjo", category: "Collection", url: "/collections/standing-flower-sidoarjo", images: " ", price: " " },{ label: "Basket168 Adalah portal login slot eksklusif dengan kemudahan akses di banyak game online gacor paling lengkap keamanan berstandar tinggi serta bonus harian setiap hari. Surabaya", category: "Collection", url: "/collections/standing-flower-surabaya", images: " ", price: " " },{ label: "Basket168 Adalah portal login slot eksklusif dengan kemudahan akses di banyak game online gacor paling lengkap keamanan berstandar tinggi serta bonus harian setiap hari. 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: " " },{ l
7629abel: "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: " " },{ 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: " " }
7629,{ 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
7629dal", 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: " " },
7630       { 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" }
7630,{ 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" }
7630,{ 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" }
7631   ];
7632 
7633              
7634         $( ".header-input-search" ).catcomplete({
7635          appendTo: ".searchResult",source: function(request, response) {
7636             var results = $.ui.autocomplete.filter(data, request.term);
7637             var predicate = function () {
7638                 var counter = { Collection: 0, Produk: 0 };
7639             var fn = function(item) {counter[item.category] += 1;return (counter[item.category] <= 5);}
7640             return fn
7641             }();
7642             response(results.filter(predicate));
7643           },
7644           minLength:1,
7645            //results are clickable
7646           select: function( event, ui ) {window.location = ui.item.url;}
7647 });
7648 $( ".header-input-search2" ).catcomplete({
7649         appendTo: ".searchResult2",
7650                    source: function(request, response) {
7651                     var results = $.ui.autocomplete.filter(data, request.term);
7652                     var predicate = function () {
7653                         var counter = { Collection: 0, Produk: 0 };
7654               var fn = function(item) {
7655               counter[item.category] += 1;
7656   return (counter[item.category] <= 5);
7657 }
7658                return fn
7659                }();
7660 response(results.filter(predicate));
7661 },
7662   minLength:1,
7663         //results are clickable
7664         select: function( event, ui ) {
7665           window.location = ui.item.url;
7666         }
7667 });
7668 });
7669 </script>
7669
7670 
7671     
7671<script src="//outerbloom.com/cdn/shop/t/138/assets/vendors.js?v=6349622868601634021752652419" defer></script>
7671
7672 
7672<script src="//outerbloom.com/cdn/shop/t/138/assets/app.js?v=136050180318808583701752652452" defer></script>
7672
7673 
7674 
7674<script>
7675   ( function() {
7676     var youtube = document.querySelectorAll( ".youtube" );
7677     for (var i = 0; i < youtube.length; i++) {
7678       var source = "https://img.youtube.com/vi/"+ youtube[i].dataset.embed +"/sddefault_1x.jpg";
7679       var datasource = "https://img.youtube.com/vi/"+ youtube[i].dataset.embed +"/sddefault.jpg";
7680       var image = new Image();
7681       image.src = source;
7682       image.setAttribute("data-src", datasource);
7683       image.classList.add("swiper-lazy");
7684       image.addEventListener( "load", function() {
7685         youtube[ i ].appendChild( image );
7686       }( i ) );
7687       youtube[i].addEventListener( "click", function() {
7688         var iframe = document.createElement( "iframe" );
7689         iframe.setAttribute( "width", "480" );
7690         iframe.setAttribute( "height", "480" );
7691         iframe.setAttribute( "frameborder", "0" );
7692         iframe.setAttribute( "allowfullscreen", "" );
7693         iframe.setAttribute( "src", "https://www.youtube.com/embed/"+ this.dataset.embed +"?rel=0&showinfo=0&autoplay=1" );
7694         this.innerHTML = "";
7695         this.appendChild( iframe );
7696       } );
7697     };
7698 
7699   } )();
7700 
7701   /* Lazy Load */
7702   const mainLazyLoad = new LazyLoad({threshold:400});
7703   $(document).ready(function(){
7704 
7705     $("selectxxx").addClass("needsclick");
7706     FastClick.attach(document.body);
7707     
7708     var $customSelects = $('.select-search');
7709     $customSelects.select2({
7710       templateResult: function(result, container) {
7711         if (!result.id) {
7712           return result.text;
7713         }
7714         container.className += ' needsclick';
7715         return result.text;
7716       }
7717     });
7718     $customSelects.each(function(index, el){$(el).data('select2').$container.find('*').addClass('needsclick');});
7719     $(document).on('select2:open', () => {
7720       document.querySelector('.select2-search__field').focus();
7721     });
7722     
7723 
7724     $(".overlay").click(function(){
7725       $(".js-drawer-close").click();
7726     });
7727     $(".site-nav--mobile .js-drawer-open-left, #NavDrawer .icon-close, .overlay-nav").click(function(){
7728       $("html").toggleClass("nav_open");
7729     });
7730     
7731     $('.swatch-element label').on('click', function(){
7732       var srcImg = $(this).data('src');
7733       $('#thumb-image-product .product-single__thumbnail').each(function(){
7734         if ($(this).attr("href") == srcImg) {
7735           $(this).trigger('click');
7736         }
7737       });
7738     });
7739     var defaultValue = $(".swatch input:checked").val()
7740     
7741     $('#purchaseProduct .swatch [type=radio]').change(function() {
7742       var optionIndex = $(this).closest('.swatch').attr('data-option-index');
7743       var optionValue = $(this).val();
7744       console.log(optionIndex, optionValue)
7745       var value = parseInt(optionValue.split(' ')[0])
7746       $(this)
7747       .closest('#purchaseProduct')
7748       .find('.single-option-selector')
7749       .eq(optionIndex)
7750       .val(optionValue)
7751       .trigger('change');
7752       
7753     });
7754     
7755   });
7756   $(document).ready(function(){
7757     $(".nav-search a").click(function(e){
7758       e.preventDefault();
7759       $(".icon-navsearch").toggle();
7760       $(".icon-navclose").toggle();
7761       $(".site-nav__item > .site-nav__link").toggle();
7762       $(".open-search").toggle();
7763       $(".open-search input").focus();
7764     });
7765     $(".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'>");
7766     if ($(window).width() < 768) {
7767       $(".bg-products .label-tag.valentine").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-valentine_75x.png?v=82732945490105366961752652419' alt='Icon Valentine'>");
7768       $(".bg-products .label-tag.cny").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-cny_45x.png?v=101884295148001743851752652418' alt='Icon CNY'>");
7769       $(".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'>");
7770     } else {
7771       $(".bg-products .label-tag.valentine").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-valentine_60x.png?v=82732945490105366961752652419' alt='Icon Valentine'>");
7772       $(".bg-products .label-tag.cny").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-cny_60x.png?v=101884295148001743851752652418' alt='Icon CNY'>");
7773       $(".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'>");
7774     }
7775     $(".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'>");
7776     $(".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'>");
7777   });
7778 </script>
7778
7779 
7780 
7781     
7782 
7783     
7783<script type="text/javascript">
7784       var wishlistpage = 0;
7785        
7786        var quickShop_money_format="<span class='money'>"+"Rp {{amount_no_decimals}}"+"</span>";
7787     </script>
7787
7788     
7789       <!-- Remove duplicate wishlist.js reference -->
7790       <style>
7791   .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)}}
7792 </style>
7793 
7794 <div class="modal fade" id="modalwishlist0" tabindex="-1" role="dialog">
7795   <div class="modal-dialog" role="document">
7796     <div class="modal-content">        
7797       <div class="modal-body">Your Wishlist is empty!</div>
7798       <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>          
7799     </div>
7800   </div>
7801 </div> 
7802 
7803 <div class="wishlist-model">
7804   <div class="modal fade" id="modalwishlist1" tabindex="-1" role="dialog" aria-hidden="true">
7805     <div class="modal-dialog white-modal">
7806       <div class="modal-content">
7807         <div class="modal-header">
7808           <button type="button" class="close" data-dismiss="modal" aria-label="Close">
7809             <svg class="icon icon-close" version="1.1" xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="32" height="32" viewBox="0 0 32 32">
7810 <title>icon-close</title>
7811 <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>
7812 </svg>
7813           </button>
7814         </div>
7815         <div class="modal-body">
7816           <div class="wishlist-left">
7817             <div class="wishlist-note">
7818               <span class="cirle"><svg version="1.1" xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="32" height="32" viewBox="0 0 32 32">
7819 <title>icon-check</title>
7820 <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>
7821 </svg></span>
7822               Product added to <a href="/pages/wish-list">Wishlist</a>
7823             </div>
7824             <div class="wishlist-product">
7825               <div class="product-left">
7826                 <div class="wishlist-image"></div>
7827               </div>
7828               <div class="product-right">
7829                 <div class="wishlist-name"></div>
7830                 <div class="wishlist-price"></div>
7831               </div>
7832             </div>
7833           </div>
7834           <div class="wishlist-right">
7835             <div class="wishlist-cart">
7836               <form action="/cart/add" method="post" class="variants-form variants" id="AddToCartForm" enctype="multipart/form-data">                  
7837                 <div class="others-bottom">
7838                   <a class="btn btn-quick-shop" href="/pages/wish-list">View Wishlist</a>
7839                   <button type="submit" name="add" id="AddToCart" class="btn btn-cta">
7840                     <span id="AddToCartText" class="">Beli Sekarang</span>
7841                   </button>
7842                 </div>
7843                 <div id="wishlist-variants-container" class="variants-wrapper"></div> 
7844                 <div class="quantity-content">
7845                   <label>QTY</label>
7846                   <input type="number" size="5" class="" name="quantity" value="1" />
7847                 </div>
7848               </form> 
7849             </div>
7850           </div>
7851         </div>
7852       </div>
7853     </div>
7854   </div>
7855 </div>
7856 
7857     
7858     <style>
7859        .stamped-badge[data-rating="0.0"]{display: none !Important;}
7860        
7861         div[data-load-type="continue"] ul.stamped-pagination li.next a, div[data-widget-load-type="continue"] ul.stamped-pagination li.next a {
7862           border-radius: 0px;
7863       }
7864           .stamped-review-body {
7865           padding-left: 0px !important;
7866       }
7867           #product-reviews .stamped-header:after {
7868             display:none !Important;
7869           }
7870       #stamped-main-widget .stamped-container, .stamped-badge-caption,#stamped-reviews-widget {
7871           font-family:inherit !important;
7872       }
7873     </style>
7874 
7875     
7876 
7877 <div id='stamped-rewards-init' class='stamped-rewards-init'
7878   data-key-public=''
7879 
7880 ></div>
7881 
7882     
7882<script src="//outerbloom.com/cdn/shop/t/138/assets/variant-sku-handler.js?v=91239063692820757781752652418" defer></script>
7882
7883     <!-- Remove duplicate jQuery reference and load wishlist script properly -->
7884     
7884<script src="//outerbloom.com/cdn/shop/t/138/assets/wishlist-fixed.js?v=35991423018869066281754360012" defer></script>
7884
7885 
7886     
7886<script>
7887       function myInit(){ StampedFn.init({ apiKey: 'pubkey-hCS8DHE9QbBHhHN89WXFkuJ0Y3422D', sId: '23462' }); }
7888     </script>
7888
7889     
7889<script async onload="myInit()" type="text/javascript" src="https://cdn1.stamped.io/files/widget.min.js"></script>
7889<style>
7890   .jss59 {
7891     background-color: rgba(0, 0, 0, 0.6);
7892   }
7893   .MuiBackdrop-root {
7894     top: 0;
7895     left: 0;
7896     right: 0;
7897     bottom: 0;
7898     display: flex;
7899     z-index: -1;
7900     position: fixed;
7901     align-items: center;
7902     justify-content: center;
7903     background-color: rgba(0, 0, 0, 0.5);
7904     -webkit-tap-highlight-color: transparent;
7905   }
7906   .MuiDialog-scrollPaper {
7907     display: flex;
7908     align-items: center;
7909     justify-content: center;
7910   }
7911   .MuiDialog-container {
7912     height: 100%;
7913     outline: 0;
7914   }
7915   .MuiPaper-elevation24 {
7916     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);
7917   }
7918   .MuiDialog-paper {
7919     margin: 32px;
7920     position: relative;
7921     overflow-y: auto;
7922   }
7923   .MuiDialog-paperScrollPaper {
7924     display: flex;
7925     max-height: calc(100% - 64px);
7926     flex-direction: column;
7927   }
7928   .MuiDialog-paperWidthSm {
7929     max-width: 600px;
7930   }
7931   #location-lock-dialog {
7932     top: 20%;
7933     left: 0;
7934     right: 0;
7935     width: 30%;
7936     margin: 0px auto;
7937     display: block;
7938     padding: 30px;
7939     z-index: 99999;
7940     position: fixed;
7941     font-size: 14px;
7942     background: rgb(0, 0, 0);
7943     box-shadow: rgba(11, 11, 12, 0.2) 2px 4px 5px 0px;
7944     text-align: center;
7945     font-family: Roboto, Arial, sans-serif;
7946     line-height: 1;
7947     border-radius: 8px;
7948     -webkit-font-smoothing: subpixel-antialiased;
7949   }
7950   .MuiButtonBase-root {
7951     color: inherit;
7952     border: 0;
7953     cursor: pointer;
7954     margin: 0;
7955     display: inline-flex;
7956     outline: 0;
7957     padding: 0;
7958     position: relative;
7959     align-items: center;
7960     user-select: none;
7961     border-radius: 0;
7962     vertical-align: middle;
7963     -moz-appearance: none;
7964     justify-content: center;
7965     text-decoration: none;
7966     background-color: transparent;
7967     -webkit-appearance: none;
7968     -webkit-tap-highlight-color: transparent;
7969   }
7970   .MuiIconButton-root {
7971     flex: 0 0 auto;
7972     color: rgba(0, 0, 0, 0.54);
7973     padding: 12px;
7974     overflow: visible;
7975     font-size: 1.5rem;
7976     text-align: center;
7977     transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
7978     border-radius: 50%;
7979   }
7980   .MuiIconButton-label {
7981     width: 100%;
7982     display: flex;
7983     align-items: inherit;
7984     justify-content: inherit;
7985   }
7986   .MuiSvgIcon-root {
7987     fill: currentColor;
7988     width: 1em;
7989     height: 1em;
7990     display: inline-block;
7991     font-size: 1.5rem;
7992     transition: fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
7993     flex-shrink: 0;
7994     user-select: none;
7995   }
7996   .MuiTouchRipple-root {
7997     top: 0;
7998     left: 0;
7999     right: 0;
8000     bottom: 0;
8001     z-index: 0;
8002     overflow: hidden;
8003     position: absolute;
8004     border-radius: inherit;
8005     pointer-events: none;
8006   }
8007   .jss36 {
8008     color: #222222;
8009     font-size: 24px;
8010     font-family: Roboto, Arial, sans-serif;
8011     font-weight: 500;
8012   }
8013   .jss37 {
8014     color: #555555;
8015     padding: 10px 0px 0px;
8016     font-size: 14px;
8017   }
8018   .MuiFormGroup-root {
8019     display: flex;
8020     flex-wrap: wrap;
8021     flex-direction: column;
8022   }
8023   .MuiFormGroup-row {
8024     flex-direction: row;
8025   }
8026   .jss63 {
8027     width: 85%;
8028     margin: 15px auto;
8029     display: flex;
8030     padding: 11px 0px 0px;
8031     justify-content: space-evenly;
8032   }
8033   .MuiFormControlLabel-root {
8034     cursor: pointer;
8035     display: inline-flex;
8036     align-items: center;
8037     margin-left: -11px;
8038     margin-right: 16px;
8039     vertical-align: middle;
8040     -webkit-tap-highlight-color: transparent;
8041   }
8042   .jss70 {
8043     margin: 0;
8044   }
8045   .MuiButtonBase-root {
8046     color: inherit;
8047     border: 0;
8048     cursor: pointer;
8049     margin: 0;
8050     display: inline-flex;
8051     outline: 0;
8052     padding: 0;
8053     position: relative;
8054     align-items: center;
8055     user-select: none;
8056     border-radius: 0;
8057     vertical-align: middle;
8058     -moz-appearance: none;
8059     justify-content: center;
8060     text-decoration: none;
8061     background-color: transparent;
8062     -webkit-appearance: none;
8063     -webkit-tap-highlight-color: transparent;
8064   }
8065   .MuiIconButton-root {
8066     flex: 0 0 auto;
8067     color: rgba(0, 0, 0, 0.54);
8068     padding: 12px;
8069     overflow: visible;
8070     font-size: 1.5rem;
8071     text-align: center;
8072     transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
8073     border-radius: 50%;
8074   }
8075   .MuiIconButton-colorSecondary {
8076     color: #f50057;
8077   }
8078   .jss71 {
8079     padding: 9px;
8080   }
8081   .MuiRadio-root {
8082     color: rgba(0, 0, 0, 0.54);
8083   }
8084   .jss64 {
8085     padding: 2px;
8086   }
8087   .MuiRadio-colorSecondary.Mui-checked {
8088     color: #f50057;
8089   }
8090   .MuiIconButton-label {
8091     width: 100%;
8092     display: flex;
8093     align-items: inherit;
8094     justify-content: inherit;
8095   }
8096   .MuiTypography-root {
8097     margin: 0;
8098   }
8099   .MuiTypography-body1 {
8100     font-size: 18px;
8101     font-family: Roboto,sans-serif;
8102     font-weight: 400;
8103     line-height: 1.5;
8104   }
8105   .location-popup_area-block__sp9Ws {
8106     display: -moz-box;
8107     display: flex;
8108     -moz-box-orient: vertical;
8109     -moz-box-direction: normal;
8110     flex-direction: column;
8111     -moz-box-pack: center;
8112     justify-content: center;
8113     position: relative;
8114     margin: 10px 10% 0;
8115   }
8116   .location-popup_pin-search-box__3l5mJ {
8117     width: 100%;
8118     display: -moz-box;
8119     display: flex;
8120     -moz-box-align: center;
8121     align-items: center;
8122   }
8123   .location-popup_place-icon-city__1XAX5, .location-popup_place-icon__jSG0Q {
8124     position: absolute;
8125     z-index: 999;
8126   }
8127   .location-popup_place-icon__jSG0Q {
8128     color: #ffffff;
8129     padding-left: 8px;
8130   }
8131   .location-popup_place-icon__jSG0Q svg {
8132     width: 18px;
8133     height: 18px;
8134   }
8135   .location-popup_cancel-icon__FHujU {
8136     color: #fff;
8137     right: 10px;
8138     width: 16px;
8139     cursor: pointer;
8140     height: 16px;
8141     display: none;
8142     padding: 5px;
8143     position: absolute;
8144     background: #999;
8145     text-align: center;
8146     border-radius: 50%;
8147   }
8148   .location-popup_pin-search-box__3l5mJ>div>select {
8149 /*     -webkit-box-shadow: 0 0 10px #ffffff;
8150     box-shadow: 0 0 10px #ffffff; */
8151     text-transform: capitalize;
8152     border: 1px solid #ffffff;
8153     color: #ffffff;
8154     width: 100%;
8155     margin: 0;
8156     display: -moz-box;
8157     display: flex;
8158     padding: 0 30px;
8159     -webkit-animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite;
8160     -moz-animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite;
8161     animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite;
8162     font-size: 16px;
8163     border-radius: 4px;
8164     height: 44px;
8165     moz-animation: location-popup_focuses__1I8Gj ease-in-out 1.5s infinite;
8166     webkit-animation: location-popup_focuses__1I8Gj ease-in-out 1.5s infinite;
8167   }
8168   .MuiButtonBase-root {
8169     color: inherit;
8170     border: 0;
8171     cursor: pointer;
8172     margin: 0;
8173     display: inline-flex;
8174     outline: 0;
8175     padding: 0;
8176     position: relative;
8177     align-items: center;
8178     user-select: none;
8179     border-radius: 0;
8180     vertical-align: middle;
8181     -moz-appearance: none;
8182     justify-content: center;
8183     text-decoration: none;
8184     background-color: transparent;
8185     -webkit-appearance: none;
8186     -webkit-tap-highlight-color: transparent;
8187   }
8188   .MuiButton-root {
8189     color: rgba(0, 0, 0, 0.87);
8190     padding: 6px 16px;
8191     font-size: 0.875rem;
8192     min-width: 64px;
8193     box-sizing: border-box;
8194     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;
8195     font-family: Roboto,sans-serif;
8196     font-weight: 500;
8197     line-height: 1.75;
8198     border-radius: 4px;
8199     text-transform: uppercase;
8200   }
8201   .MuiButton-contained {
8202     color: rgba(0, 0, 0, 0.87);
8203     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);
8204     background-color: #e0e0e0;
8205   }
8206   .MuiButtonBase-root.Mui-disabled {
8207     cursor: default;
8208     pointer-events: none;
8209   }
8210   .MuiButton-label {
8211     width: 100%;
8212     display: inherit;
8213     align-items: inherit;
8214     justify-content: inherit;
8215   }
8216   .cartButton_login_content__2j1f7 {
8217     display: -moz-box;
8218     display: flex;
8219     text-align: center;
8220     z-index: 9;
8221     font-size: 18px;
8222     font-weight: 500;
8223     color: #fff;
8224   }
8225   
8226   .jss35 {
8227     top: 5px;
8228     right: 5px;
8229     padding: 4px;
8230     position: absolute;
8231     border-radius: 50%;
8232   }
8233   .jss67 {
8234     cursor: pointer;
8235     font-size: 15px;
8236     line-height: 1.3;
8237     padding-left: 5px;
8238   }
8239   .jss69 {
8240     color: #222222;
8241   }
8242   .jss80 {
8243     color: #fff;
8244     width: 100%;
8245     height: 52px;
8246     padding: 11px 16px;
8247     font-size: 18px;
8248     min-width: 88px;
8249     min-height: 36px;
8250     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;
8251     font-weight: 500;
8252     line-weight: 1em;
8253     border-radius: 4px;
8254     text-transform: uppercase;
8255     background-color: #ff6600;
8256   }
8257   @media (min-width: 991px){
8258     .cartButton_login_content__2j1f7 {
8259         font-weight: 500;
8260     }
8261   }
8262 
8263   @media (max-width: 992px) {
8264     #location-lock-dialog {
8265       width: 100%;
8266       top: auto;
8267       bottom: 0;
8268       padding-left: 0;
8269       padding-right: 0;
8270     }
8271     .MuiFormGroup-row {
8272       display: block
8273     }
8274     .MuiIconButton-label input {
8275       margin: 0;
8276     }
8277   }
8278 </style>
8279 <div role="presentation" class="MuiDialog-root jss34" style="display: none;position: fixed; z-index: 9999; inset: 0px;">
8280   <div class="MuiBackdrop-root" aria-hidden="true" style="opacity: 1; transition: opacity 225ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;"></div>
8281   <div tabindex="0" data-test="sentinelStart"></div>
8282   <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;">
8283     <div class="MuiPaper-root MuiDialog-paper MuiDialog-paperScrollPaper MuiDialog-paperWidthSm MuiPaper-elevation24 MuiPaper-rounded" role="dialog">
8284       <div class="jss31 undefined" id="location-lock-dialog">
8285         <button id="close-popup-delivery" class="MuiButtonBase-root MuiIconButton-root jss35" tabindex="0" type="button" aria-label="close">
8286           <span class="MuiIconButton-label">
8287             <svg class="MuiSvgIcon-root" focusable="false" viewBox="0 0 24 24" aria-hidden="true">
8288               <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>
8289             </svg>
8290           </span>
8291           <span class="MuiTouchRipple-root"></span>
8292         </button>
8293         <div>
8294           <div class="jss36">Select Delivery Location</div>
8295           <div class="jss37">Select a delivery location to see product availability</div>
8296         </div>
8297         <div class="MuiFormGroup-root jss63 MuiFormGroup-row" role="radiogroup">
8298           <label for="jabodetabek" class="MuiFormControlLabel-root jss45">
8299             <span class="MuiButtonBase-root MuiIconButton-root jss46 MuiRadio-root MuiRadio-colorSecondary jss39 jss47 Mui-checked MuiIconButton-colorSecondary" aria-disabled="false">
8300               <span class="MuiIconButton-label">
8301                 <input id="jabodetabek" class="jss49" type="radio" value="Jabodetabek" checked="" name="location">
8302                 <span class="jss41"></span>
8303               </span>
8304               <span class="MuiTouchRipple-root"></span>
8305             </span>
8306             <span class="MuiTypography-root MuiFormControlLabel-label MuiTypography-body1">
8307               <span class="jss67 jss69">Jabodetabek</span>
8308             </span>
8309           </label>
8310           <label for="non-jabodetabek" class="MuiFormControlLabel-root jss45">
8311             <span class="MuiButtonBase-root MuiIconButton-root jss46 MuiRadio-root MuiRadio-colorSecondary jss39 MuiIconButton-colorSecondary" aria-disabled="false">
8312               <span class="MuiIconButton-label">
8313                 <input id="non-jabodetabek" class="jss49" type="radio" value="Outside Jabodetabek" name="location">
8314                 <span class="jss40"></span>
8315               </span>
8316               <span class="MuiTouchRipple-root"></span>
8317             </span>
8318             <span class="MuiTypography-root MuiFormControlLabel-label MuiTypography-body1">
8319               <span class="jss67 jss68">Outside Jabodetabek</span>
8320             </span>
8321           </label>
8322         </div>
8323         <div>
8324           <div class="MuiGrid-root location-popup_area-block__sp9Ws">
8325             <div class="MuiGrid-root location-popup_pin-search-box__3l5mJ false">
8326               <div class="MuiGrid-root location-popup_place-icon__jSG0Q">
8327                 <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>
8328               </div>
8329               <div class="MuiGrid-root location-popup_cancel-icon__FHujU false">
8330                 <i class="material-icons location-popup_clear-pin__s1dRc">close</i>
8331               </div>
8332               <div style="width: 100%;">
8333                 <select id="choose-location" class="form-control">
8334                   <option value="">Choose Location</option>
8335                   <option value="jakarta">Jakarta</option>
8336                   <option value="bogor">Bogor</option>
8337                   <option value="depok">Depok</option>
8338                   <option value="tangerang">Tangerang</option>
8339                   <option value="bekasi">Bekasi</option>
8340                 </select>
8341               </div>
8342             </div>
8343           </div>
8344         </div>
8345         <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="">
8346           <span class="MuiButton-label">
8347             <span class=""></span>
8348             <span id="location-lock-continue-btn" class="cartButton_login_content__2j1f7" style="font-weight: 500;" data-content="">Continue Shopping</span>
8349           </span>
8350         </button>
8351       </div>
8352     </div>
8353   </div>
8354   <div tabindex="0" data-test="sentinelEnd"></div>
8355 </div>
8356 
8357 
8357<script>
8358   const jabodetabek = [
8359     {
8360       "code": "jakarta",
8361       "city": "jakarta",
8362       "zip": []
8363     },
8364     {
8365       "code": "bogor",
8366       "city": "bogor",
8367       "zip": []
8368     },
8369     {
8370       "code": "depok",
8371       "city": "depok",
8372       "zip": []
8373     },
8374     {
8375       "code": "tangerang",
8376       "city": "tangerang",
8377       "zip": []
8378     },
8379     {
8380       "code": "bekasi",
8381       "city": "bekasi",
8382       "zip": []
8383     }
8384   ]
8385   let cityNonJabodetabek = [
8386     
8387
8388     
8389     
8390     "pengiriman_aceh",
8391     
8392     
8393     
8394     
8395     
8396     "pengiriman_ambon",
8397     
8398     
8399     
8400     
8401     
8402     "pengiriman_atambua",
8403     
8404     
8405     
8406     
8407     
8408     "pengiriman_badung",
8409     
8410     
8411     
8412     
8413     
8414     "pengiriman_bali",
8415     
8416     
8417     
8418     
8419     
8420     "pengiriman_balikpapan",
8421     
8422     
8423     
8424     
8425     
8426     "pengiriman_bandar lampung",
8427     
8428     
8429     
8430     
8431     
8432     "pengiriman_bandung",
8433     
8434     
8435     
8436     
8437     
8438     "pengiriman_bandung barat",
8439     
8440     
8441     
8442     
8443     
8444     "pengiriman_banjarmasin",
8445     
8446     
8447     
8448     
8449     
8450     "pengiriman_banyumas",
8451     
8452     
8453     
8454     
8455     
8456     "pengiriman_banyuwangi",
8457     
8458     
8459     
8460     
8461     
8462     "pengiriman_batam",
8463     
8464     
8465     
8466     
8467     
8468     
8469     
8470     
8471     
8472     "pengiriman_biak",
8473     
8474     
8475     
8476     
8477     
8478     "pengiriman_binjai",
8479     
8480     
8481     
8482     
8483     
8484     "pengiriman_blitar",
8485     
8486     
8487     
8488     
8489     
8490     "pengiriman_blora",
8491     
8492     
8493     
8494     
8495     
8496     
8497     
8498     
8499     
8500     "pengiriman_bojonegoro",
8501     
8502     
8503     
8504     
8505     
8506     "pengiriman_boyolali",
8507     
8508     
8509     
8510     
8511     
8512     "pengiriman_bukittinggi",
8513     
8514     
8515     
8516     
8517     
8518     "pengiriman_buleleng",
8519     
8520     
8521     
8522     
8523     
8524     "pengiriman_ciamis",
8525     
8526     
8527     
8528     
8529     
8530     "pengiriman_cianjur",
8531     
8532     
8533     
8534     
8535     
8536     "pengiriman_cibinong",
8537     
8538     
8539     
8540     
8541     
8542     "pengiriman_cikarang",
8543     
8544     
8545     
8546     
8547     
8548     "pengiriman_cikupa",
8549     
8550     
8551     
8552     
8553     
8554     "pengiriman_cilacap",
8555     
8556     
8557     
8558     
8559     
8560     "pengiriman_cileunyi",
8561     
8562     
8563     
8564     
8565     
8566     "pengiriman_cimahi",
8567     
8568     
8569     
8570     
8571     
8572     "pengiriman_cirebon",
8573     
8574     
8575     
8576     
8577     
8578     "pengiriman_ciwidey",
8579     
8580     
8581     
8582     
8583     
8584     "pengiriman_deli serdang",
8585     
8586     
8587     
8588     
8589     
8590     "pengiriman_demak",
8591     
8592     
8593     
8594     
8595     
8596     "pengiriman_denpasar",
8597     
8598     
8599     
8600
8601     
8602     
8603     "pengiriman_garut",
8604     
8605     
8606     
8607     
8608     
8609     "pengiriman_gianyar",
8610     
8611     
8612     
8613     
8614     
8615     "pengiriman_gresik",
8616     
8617     
8618     
8619     
8620     
8621     "pengiriman_gunung kidul",
8622     
8623     
8624     
8625
8626     
8627     
8628     "pengiriman_jambi",
8629     
8630     
8631     
8632     
8633     
8634     "pengiriman_jayapura",
8635     
8636     
8637     
8638     
8639     
8640     "pengiriman_jember",
8641     
8642     
8643     
8644     
8645     
8646     "pengiriman_jepara",
8647     
8648     
8649     
8650     
8651     
8652     "pengiriman_jombang",
8653     
8654     
8655     
8656     
8657     
8658     "pengiriman_karanganyar",
8659     
8660     
8661     
8662     
8663     
8664     "pengiriman_karawang",
8665     
8666     
8667     
8668     
8669     
8670     "pengiriman_karo",
8671     
8672     
8673     
8674     
8675     
8676     "pengiriman_kebumen",
8677     
8678     
8679     
8680     
8681     
8682     "pengiriman_kediri",
8683     
8684     
8685     
8686     
8687     
8688     "pengiriman_keerom",
8689     
8690     
8691     
8692     
8693     
8694     "pengiriman_kendal",
8695     
8696     
8697     
8698     
8699     
8700     "pengiriman_klaten",
8701     
8702     
8703     
8704     
8705     
8706     "pengiriman_kudus",
8707     
8708     
8709     
8710     
8711     
8712     "pengiriman_kupang",
8713     
8714     
8715     
8716     
8717     
8718     "pengiriman_lainnya",
8719     
8720     
8721     
8722     
8723     
8724     "pengiriman_lamongan",
8725     
8726     
8727     
8728     
8729     
8730     "pengiriman_lampung",
8731     
8732     
8733     
8734     
8735     
8736     "pengiriman_lampung barat",
8737     
8738     
8739     
8740     
8741     
8742     "pengiriman_lembang",
8743     
8744     
8745     
8746     
8747     
8748     "pengiriman_lombok",
8749     
8750     
8751     
8752     
8753     
8754     "pengiriman_lumajang",
8755     
8756     
8757     
8758     
8759     
8760     "pengiriman_madiun",
8761     
8762     
8763     
8764     
8765     
8766     "pengiriman_magelang",
8767     
8768     
8769     
8770     
8771     
8772     "pengiriman_majalengka",
8773     
8774     
8775     
8776     
8777     
8778     "pengiriman_makassar",
8779     
8780     
8781     
8782     
8783     
8784     "pengiriman_malang",
8785     
8786     
8787     
8788     
8789     
8790     "pengiriman_manado",
8791     
8792     
8793     
8794     
8795     
8796     "pengiriman_medan",
8797     
8798     
8799     
8800     
8801     
8802     "pengiriman_mengwi",
8803     
8804     
8805     
8806     
8807     
8808     "pengiriman_mojokerto",
8809     
8810     
8811     
8812     
8813     
8814     "pengiriman_nganjuk",
8815     
8816     
8817     
8818     
8819     
8820     "pengiriman_ngawi",
8821     
8822     
8823     
8824     
8825     
8826     "pengiriman_padang",
8827     
8828     
8829     
8830     
8831     
8832     "pengiriman_palembang",
8833     
8834     
8835     
8836     
8837     
8838     "pengiriman_pasuruan",
8839     
8840     
8841     
8842     
8843     
8844     "pengiriman_pati",
8845     
8846     
8847     
8848     
8849     
8850     "pengiriman_pekalongan",
8851     
8852     
8853     
8854     
8855     
8856     "pengiriman_pekanbaru",
8857     
8858     
8859     
8860     
8861     
8862     "pengiriman_pemalang",
8863     
8864     
8865     
8866     
8867     
8868     "pengiriman_ponorogo",
8869     
8870     
8871     
8872     
8873     
8874     "pengiriman_pontianak",
8875     
8876     
8877     
8878     
8879     
8880     "pengiriman_probolinggo",
8881     
8882     
8883     
8884     
8885     
8886     "pengiriman_purbalingga",
8887     
8888     
8889     
8890     
8891     
8892     "pengiriman_purwakarta",
8893     
8894     
8895     
8896     
8897     
8898     "pengiriman_purwokerto",
8899     
8900     
8901     
8902     
8903     
8904     "pengiriman_rembang",
8905     
8906     
8907     
8908     
8909     
8910     "pengiriman_riau",
8911     
8912     
8913     
8914     
8915     
8916     "pengiriman_salatiga",
8917     
8918     
8919     
8920     
8921     
8922     "pengiriman_samarinda",
8923     
8924     
8925     
8926     
8927     
8928     "pengiriman_semarang",
8929     
8930     
8931     
8932     
8933     
8934     "pengiriman_sentani",
8935     
8936     
8937     
8938     
8939     
8940     "pengiriman_serang",
8941     
8942     
8943     
8944     
8945     
8946     "pengiriman_sidoarjo",
8947     
8948     
8949     
8950     
8951     
8952     "pengiriman_singkawang",
8953     
8954     
8955     
8956     
8957     
8958     "pengiriman_sragen",
8959     
8960     
8961     
8962     
8963     
8964     "pengiriman_subang",
8965     
8966     
8967     
8968     
8969     
8970     "pengiriman_sukabumi",
8971     
8972     
8973     
8974     
8975     
8976     "pengiriman_sumbawa",
8977     
8978     
8979     
8980     
8981     
8982     "pengiriman_surabaya",
8983     
8984     
8985     
8986     
8987     
8988     "pengiriman_surakarta solo",
8989     
8990     
8991
8992     
8993     "pengiriman_tasikmalaya",
8994     
8995     
8996     
8997     
8998     
8999     "pengiriman_tegal",
9000     
9001     
9002     
9003     
9004     
9005     "pengiriman_timika",
9006     
9007     
9008     
9009     
9010     
9011     "pengiriman_wamena",
9012     
9013     
9014     
9015     
9016     
9017     "pengiriman_wiyung",
9018     
9019     
9020     
9021     
9022     
9023     "pengiriman_wonokromo",
9024     
9025     
9026     
9027     
9028     
9029     "pengiriman_yogyakarta",
9030 
9031   ]
9032   console.log(cityNonJabodetabek)
9033   let non_jabodetabek = []
9034   for(var i=0;i<cityNonJabodetabek.length;i++) {
9035     const obj = {
9036       "code": cityNonJabodetabek[i].toLowerCase().replace('pengiriman_', '').replace(' ','-'),
9037       "city": cityNonJabodetabek[i].replace('pengiriman_', '').replace(' ','-'),
9038       "zip": []
9039     }
9040     non_jabodetabek.push(obj)
9041   }
9042   let current_location = getCookie("location_delivery")
9043   $("[name=location]").change(function(){
9044     let v = $(this).val()
9045     let option = []
9046     if(v == 'Jabodetabek') {
9047       for(var i=0;i<jabodetabek.length;i++) {
9048         const jabodetabekHtml = `<option value=${jabodetabek[i].city}>${jabodetabek[i].city}</option>`
9049         option.push(jabodetabekHtml)
9050       }
9051       $("#choose-location").html(`<option value="">Choose Location</option>${option}`)
9052     } else {
9053       for(var i=0;i<non_jabodetabek.length;i++) {
9054         const nonjabodetabekHtml = `<option value=${non_jabodetabek[i].city}>${non_jabodetabek[i].city}</option>`
9055         option.push(nonjabodetabekHtml)
9056       }
9057       $("#choose-location").html(`<option value="">Choose Location</option>${option}`)
9058     }
9059   })
9060 
9061   $("#location-lock-submit").click(function(e){
9062     let select = $("#choose-location")
9063     let value = select.val().toLowerCase()
9064     console.log(value)
9065     if(select.val() == "") {
9066       return alert("Choose Your Location")
9067       e.preventDefault()
9068     }
9069     setCookie("location_delivery",value,1000000);
9070     
9071     location.reload();
9072     
9073   })
9074 
9075   $("#close-popup-delivery").click(function(){
9076     $(".MuiDialog-root").hide()
9077     if(!current_location){
9078       setCookie("location_delivery","jakarta",1000000);
9079       $("#loc_delivery_city, #loc_delivery_city_mobile").text("Jakarta")
9080     }
9081   })
9082   $("#loc_delivery, #loc_delivery_mobile").click(function(){
9083     $(".MuiDialog-root").show()
9084   })
9085 
9086   
9087   if(!current_location){
9088     
9089   } else {
9090     $("#loc_delivery_city, #loc_delivery_city_mobile").text(current_location)
9091     console.log(current_location)
9092     $("#choose-location").each(function(){
9093       if(current_location == 'jakarta' || current_location == 'depok' || current_location == 'bogor' || current_location == 'tangerang' || current_location == 'bekasi'){
9094         $("#jabodetabek").trigger("click")
9095       } else {
9096         $("#non-jabodetabek").trigger("click")
9097       }
9098       $("#choose-location").find("option[value="+current_location+"]").attr("selected", "selected")
9099     })
9100   }
9101 
9102   // 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'){
9103   //   $("#timeMalam").attr("disabled", false)
9104   // } else {
9105   //   $("#timeMalam").attr("disabled", true)
9106   // }
9107 
9108   if(current_location && current_location != 'jakarta') {
9109     $("#self-pickup").attr("disabled", true)
9110   }
9111 
9112   function setCookie(name,value,days) {
9113     var expires = "";
9114     if (days) {
9115       var date = new Date();
9116       date.setTime(date.getTime() + (days*24*60*60*1000));
9117       expires = "; expires=" + date.toUTCString();
9118     }
9119     document.cookie = name + "=" + (value || "")  + expires + "; path=/";
9120   }
9121   function getCookie(name) {
9122     var nameEQ = name + "=";
9123     var ca = document.cookie.split(';');
9124     for(var i=0;i < ca.length;i++) {
9125       var c = ca[i];
9126       while (c.charAt(0)==' ') c = c.substring(1,c.length);
9127       if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
9128     }
9129     return null;
9130   }
9131 </script>
9131
9132 <!-- One Tap -->
9133     
9133<script>
9134       console.log("Outerbloom...");
9135     </script>
9135
9136   <div id="shopify-block-ANVEzSUcxTUxZOGpwZ__9703700522657871012" class="shopify-block shopify-app-block">
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 
9182 
9183 <link rel="stylesheet" href="https://cdn1.bitbybit.studio/bitbybit/static/bitChat_widget/widget.css" />
9184 
9184<script src="https://cdn1.bitbybit.studio/bitbybit/static/bitChat_widget/widget.js" defer></script>
9184
9185 
9185<script>
9186   const widgetConfig = {
9187     id: "clz7897za002cz7otleaz0d3d",
9188     showQuickResponse: false,
9189     quickResponsesData: [],
9190     themeColor: "#ffffff",
9191     widgetText: "",
9192     radiusType: "circle",
9193     widgetIconType: "whatsapp",
9194     position: "right",
9195     storeLogo: "",
9196     storeName: "Outerbloom",
9197     storeDescription: "",
9198     size: "small",
9199     showCard: false,
9200     widgetColorType: "solid",
9201     widgetColor1: "#008069",
9202     widgetColor2: "#008069",
9203     social: {
9204       socialOrders: ["instagram","tiktok","facebook","x","youtube","linkedin","email"],
9205       values: {
9206         instagram: {
9207           enabled: false,
9208           value: "",
9209         },
9210         facebook: {
9211           enabled: false,
9212           value: "",
9213         },
9214         email: {
9215           enabled: false,
9216           value: "",
9217         },
9218         x: {
9219           enabled: false,
9220           value: "",
9221         },
9222         tiktok: {
9223           enabled: false,
9224           value: "",
9225         },
9226         linkedin: {
9227           enabled: false,
9228           value: "",
9229         },
9230         youtube: {
9231           enabled: false,
9232           value: "",
9233         },
9234       },
9235     },
9236   };
9237 
9238   function initializeWidget() {
9239     if (typeof BBBWidget !== 'undefined') {
9240       BBBWidget.init(widgetConfig);
9241     } else {
9242       setTimeout(initializeWidget, 100);
9243     }
9244   }
9245 
9246   initializeWidget();</script>
9246
9247 
9248 
9249 </div><div id="shopify-block-ATzRpVTBPU3k1R2pnW__286197278318599166" class="shopify-block shopify-app-block">
9250 
9251 
9252 <div style="position: fixed; bottom: 0; right: 0"></div>
9253 
9254 
9254<script>
9255 console.info("bitlogin extension version: v2.5.7");
9256 
9257 const googleScript = document.createElement("script");
9258 googleScript.setAttribute("src", "https://accounts.google.com/gsi/client");
9259 document.head.append(googleScript);
9260 
9261 const bitLoginBaseUrl = "https://api.bitbybit.studio";
9262 const apiUrl = `${bitLoginBaseUrl}/bitlogin/api`;
9263 
9264 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"}};
9265 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
9265n1.oa2-cs.v1.1cb5f9085a202341f60daf5a7be16c570ccc0b4bd5908b3afd080f34e9b8935d","appleTeamId":null,"applePrivateKey":null,"usePersonalOauth":false,"position":null}];
9266 const redirectUrl = appearance.redirectLink;
9267 
9268 let locationCacheSet = false;
9269 let errorLocation = false;
9270 let oneTapSet = false;
9271 
9272 let bitloginCache = {
9273   appearance: appearance,
9274   config: config
9275 };
9276 
9277 let isInitializing = false;
9278 const queue = [];
9279 
9280 // Add CSS for the popup
9281 const popupStyles = document.createElement('style');
9282 popupStyles.textContent = `
9283   /* Styles for login popup */
9284   .bitlogin-popup-overlay {
9285     position: fixed;
9286     top: 0;
9287     left: 0;
9288     width: 100%;
9289     height: 100%;
9290     background: rgba(0, 0, 0, 0.45);
9291     backdrop-filter: blur(4px);
9292     display: flex;
9293     align-items: center;
9294     justify-content: center;
9295     opacity: 0;
9296     transition: opacity 0.3s ease-in-out;
9297     z-index: 999999;
9298   }
9299   
9300   .bitlogin-popup-overlay.visible {
9301     opacity: 1;
9302   }
9303   
9304   .bitlogin-popup {
9305     background: #FFFFFF;
9306     box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
9307     border-radius: 16px;
9308     width: 100%;
9309     max-width: 560px;
9310     display: flex;
9311     overflow: hidden;
9312     position: relative;
9313     opacity: 0;
9314     transform: translateY(20px) scale(0.98);
9315     transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
9316   }
9317   
9318   .bitlogin-popup.visible {
9319     opacity: 1;
9320     transform: translateY(0) scale(1);
9321   }
9322   
9323   .bitlogin-popup-with-image {
9324     max-width: 640px;
9325   }
9326   
9327   .bitlogin-popup-right-image {
9328     flex-direction: row-reverse;
9329   }
9330   
9331   .bitlogin-popup-image {
9332     object-fit: cover;
9333     width: 50%;
9334     height: auto;
9335   }
9336   
9337   .bitlogin-popup-content {
9338     padding: 32px;
9339     position: relative;
9340     width: 50%;
9341   }
9342   
9343   .bitlogin-popup-close {
9344     position: absolute;
9345     top: 16px;
9346     right: 16px;
9347     background: white;
9348     border: none;
9349     width: 30px;
9350     height: 30px;
9351     display: flex;
9352     align-items: center;
9353     justify-content: center;
9354     cursor: pointer;
9355     transition: background-color 0.2s;
9356     color: inherit;
9357     padding: 0;
9358   }
9359   
9360   .bitlogin-popup-close:hover {
9361     background-color: #e5e5e5;
9362   }
9363   
9364   .bitlogin-popup-buttons {
9365     display: flex;
9366     flex-direction: column;
9367     gap: 12px;
9368     margin-top: 24px;
9369   }
9370   
9371   /* Button styles within popup - override width for popup buttons */
9372   .bitlogin-popup-buttons #google-login,
9373   .bitlogin-popup-buttons #facebook-login,
9374   .bitlogin-popup-buttons #apple-login,
9375   .bitlogin-popup-buttons #whatsapp-login,
9376   .bitlogin-popup-buttons #microsoft-login,
9377   .bitlogin-popup-buttons #twitter-login,
9378   .bitlogin-popup-buttons #amazon-login,
9379   .bitlogin-popup-buttons #instagram-login,
9380   .bitlogin-popup-buttons #magic-link-login,
9381   .bitlogin-popup-buttons #mobile-app-login {
9382     width: 100% !important;
9383     font-family: inherit !important;
9384   }
9385   
9386   .bitlogin-popup-footer {
9387     margin-top: 32px;
9388     text-align: center;
9389     font-size: 14px;
9390     opacity: 0.6;
9391   }
9392   
9393   /* Modern Typography */
9394   .bitlogin-popup h2 {
9395     margin-top: 12px;
9396     font-size: 21px !important;
9397     line-height: 1.2 !important;
9398     font-weight: 700 !important;
9399     letter-spacing: -0.02em !important;
9400     margin-bottom: 16px !important;
9401   }
9402   
9403   .bitlogin-popup-header {
9404     position: relative;
9405     margin-bottom: 24px;
9406   }
9407   
9408   /* Modern gradient accent */
9409   .bitlogin-popup-content > div {
9410     font-size: 16px !important;
9411     line-height: 1.2 !important;
9412     opacity: 0.85 !important;
9413   }
9414   
9415   /* Enhanced button interactions */
9416   .bitlogin-popup-buttons button {
9417     position: relative;
9418     overflow: hidden;
9419   }
9420   
9421   @keyframes ripple {
9422     0% {
9423       transform: scale(0, 0);
9424       opacity: 0.5;
9425     }
9426     100% {
9427       transform: scale(100, 100);
9428       opacity: 0;
9429     }
9430   }
9431   
9432   /* Responsive adjustments */
9433   @media (max-width: 640px) {
9434     .bitlogin-popup {
9435       max-width: 90%;
9436       width: 90%;
9437       margin: 0 16px;
9438     }
9439     
9440     .bitlogin-popup-with-image {
9441       flex-direction: column !important;
9442     }
9443     
9444     .bitlogin-popup-image {
9445       width: 100%;
9446       height: 180px;
9447     }
9448     
9449     .bitlogin-popup-content {
9450       padding: 24px;
9451     }
9452     
9453     .bitlogin-popup h2 {
9454       font-size: 24px !important;
9455     }
9456   }
9457 `;
9458 
9459 document.head.appendChild(popupStyles);
9460 
9461 // Add fonts link for different font options
9462 const fontsLink = document.createElement('link');
9463 fontsLink.rel = 'stylesheet';
9464 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';
9465 document.head.appendChild(fontsLink);
9466 
9467 (async () => {
9468   try {
9469     let host = window.location.host;
9470     if (host === "admin.shopify.com") {
9471       host = `${window.location.pathname.split("/")[2]}.myshopify.com`;
9472     }
9473 
9474     const urlSearchParams = new URLSearchParams(window.location.search);
9475     const checkoutUrl = urlSearchParams.get("checkout_url");
9476 
9477     async function init({ inputRef, index }) {
9478       if (isInitializing) {
9479         queue.push(() => init({ inputRef, index }));
9480         return;
9481       }
9482 
9483       isInitializing = true;
9484 
9485       try {
9486         let bitLoginSectionRoot = document.querySelector(
9487           `.bitlogin-root[data-index="${index}"]`
9488         );
9489 
9490         const formRef = inputRef?.closest(
9491           "form:not([action='/account/recover'])"
9492         );
9493 
9494         if (formRef && !bitLoginSectionRoot) {
9495           await getLocation();
9496 
9497           bitLoginSectionRoot = document.createElement(`div`);
9498 
9499           bitLoginSectionRoot.setAttribute("class", "bitlogin-root");
9500           bitLoginSectionRoot.setAttribute("data-index", `${index}`);
9501 
9502           updateAppearance({
9503             formRef,
9504             rootRef: bitLoginSectionRoot,
9505             host,
9506           });
9507         }
9508       } catch (err) {
9509         console.error(`error while initiating bitlogin extensions`, err);
9510       } finally {
9511         // Release the lock
9512         isInitializing = false;
9513 
9514         // Check if there are pending items in the queue
9515         if (queue.length > 0) {
9516           // Process the next function in the queue
9517           const nextFunction = queue.shift();
9518           nextFunction();
9519         }
9520       }
9521     }
9522 
9523     function initAll() {
9524       return new Promise((resolve, reject) => {
9525         setTimeout(async () => {
9526           const inputRefs = document.querySelectorAll(
9527             'input[name="customer[email]"]'
9528           );
9529 
9530           for (let i = 0; i < inputRefs.length; i++) {
9531             const currentInputRef = inputRefs[i];
9532             const isVisible = isElementVisible(currentInputRef);
9533 
9534             if (isVisible) {
9535               await init({ inputRef: currentInputRef, index: i });
9536             }
9537           }
9538 
9539           resolve("ok");
9540         }, 100);
9541       });
9542     }
9543 
9544     const observer = new MutationObserver((mutationsList) => {
9545       for (let mutation of mutationsList) {
9546         initAll();
9547       }
9548     });
9549 
9550     observer.observe(document.body, {
9551       childList: true,
9552       subtree: true,
9553       attributes: true,
9554     });
9555 
9556     initAll();
9557 
9558     if (appearance.googleOneTap) {
9559       setupOneTap({ host, checkoutUrl });
9560     }
9561 
9562     // Initialize popup
9563     await initPopup(host);
9564   } catch (error) {
9565     console.error("Error initializing BitLogin:", error);
9566   }
9567 })();
9568 
9569 async function initPopup(host) {
9570   // Check if user is already logged in using Liquid checks properly
9571   const isLoggedIn = false || 
9572                     document.querySelector('.customer-logout-link') || 
9573                     document.querySelector('.account-link') || 
9574                     window.location.pathname.includes('/account');
9575   
9576   if (isLoggedIn) {
9577     return; // User is logged in, don't show popup
9578   }
9579 
9580   try {
9581     // Fetch the popup configuration
9582     const popupConfig = await fetch(`${apiUrl}/appearance/popup/domain/${host}`)
9583       .then(res => res.json())
9584       .catch(err => {
9585         console.error('Error fetching popup configuration:', err);
9586         return null;
9587       });
9588 
9589     if (!popupConfig || !popupConfig.enabled) {
9590       return;
9590 // Don't show popup if disabled or config not found
9591     }
9592 
9593     // Create popup after 10 seconds
9594     setTimeout(() => {
9595       // Check if user is still on the page and still not logged in
9596       if (document.visibilityState === 'visible') {
9597         // Additional check in case user logged in during the 10 second wait
9598         const currentlyLoggedIn = false || 
9599                               document.querySelector('.customer-logout-link') || 
9600                               document.querySelector('.account-link');
9601         
9602         if (!currentlyLoggedIn) {
9603           createLoginPopup(popupConfig, host);
9604         }
9605       }
9606     }, 10000);
9607   } catch (error) {
9608     console.error('Error initializing popup:', error);
9609   }
9610 }
9611 
9612 function createLoginPopup(popupConfig, host) {
9613   // Font mapping
9614   const fontFamilyMap = {
9615     system_fonts: 'system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',
9616     montserrat: 'Montserrat, sans-serif',
9617     roboto: 'Roboto, sans-serif',
9618     open_sans: 'Open Sans, sans-serif',
9619     noto_sans: 'Noto Sans, sans-serif',
9620     lato: 'Lato, sans-serif',
9621     poppins: 'Poppins, sans-serif',
9622     quicksand: 'Quicksand, sans-serif',
9623     raleway: 'Raleway, sans-serif',
9624     pt_sans: 'PT Sans, sans-serif',
9625     oswald: 'Oswald, sans-serif',
9626   };
9627 
9628   // Create overlay
9629   const overlay = document.createElement('div');
9630   overlay.className = 'bitlogin-popup-overlay';
9631   
9632   // Create popup container with appropriate styling
9633   const popup = document.createElement('div');
9634   popup.className = 'bitlogin-popup';
9635 
9636   if (popupConfig.layout === 'default') {
9637     popup.style.maxWidth = '400px';
9638   }
9639   
9640   // Function to close the popup
9641   const closePopup = () => {
9642     overlay.classList.remove('visible');
9643     popup.classList.remove('visible');
9644     setTimeout(() => {
9645       if (document.body.contains(overlay)) {
9646         document.body.removeChild(overlay);
9647       }
9648     }, 300);
9649   };
9650   
9651   // Add click handler to the overlay to close when clicking outside
9652   overlay.addEventListener('click', (event) => {
9653     // Close only if clicking directly on the overlay, not its children
9654     if (event.target === overlay) {
9655       closePopup();
9656     }
9657   });
9658   
9659   // Add escape key handler to close popup
9660   document.addEventListener('keydown', (event) => {
9661     if (event.key === 'Escape' && document.body.contains(overlay)) {
9662       closePopup();
9663     }
9664   });
9665 
9666   // Create layout with image if specified
9667   let contentWrapper;
9668   if (popupConfig.layout !== 'default' && popupConfig.popupImage) {
9669     popup.classList.add('bitlogin-popup-with-image');
9670     
9671     if (popupConfig.layout === 'right') {
9672       popup.classList.add('bitlogin-popup-right-image');
9673     }
9674     
9675     // Add image
9676     const image = document.createElement('img');
9677     image.className = 'bitlogin-popup-image';
9678     image.src = popupConfig.popupImage;
9679     image.alt = 'Login';
9680     image.loading = 'lazy';
9681     popup.appendChild(image);
9682     
9683     // Create content container
9684     contentWrapper = document.createElement('div');
9685     contentWrapper.className = 'bitlogin-popup-content';
9686 
9687     if (popupConfig.layout === 'right') {
9688       const closeButton = document.createElement('button');
9689       closeButton.className = 'bitlogin-popup-close';
9690       closeButton.innerHTML = `<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="https://hokiku.io/images/2025/02/10/logo.png">
9691         <path d="M13 1L1 13M1 1L13 13" stroke="${popupConfig.fontColor}" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
9692       </svg>`;
9693       closeButton.setAttribute('aria-label', 'Close');
9694       closeButton.onclick = closePopup;
9695   
9696       popup.appendChild(closeButton);
9697     }
9698   } else {
9699     contentWrapper = document.createElement('div');
9700     contentWrapper.className = 'bitlogin-popup-content';
9701     contentWrapper.style.width = '100%';
9702   }
9703 
9704   // Set background style
9705   if (popupConfig.backgroundTheme === 'gradient') {
9706     contentWrapper.style.background = `linear-gradient(135deg, ${popupConfig.backgroundPopupColor}, ${popupConfig.gradientColor})`;
9707   } else {
9708     contentWrapper.style.backgroundColor = popupConfig.backgroundPopupColor;
9709   }
9710 
9711   // Apply font family
9712   contentWrapper.style.setProperty('font-family', fontFamilyMap[popupConfig.font] || fontFamilyMap.system_fonts, 'important');
9713 
9714   if (popupConfig.layout !== 'right') {
9715     const closeButton = document.createElement('button');
9716     closeButton.className = 'bitlogin-popup-close';
9717     closeButton.innerHTML = `<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="https://hokiku.io/images/2025/02/10/logo.png">
9718       <path d="M13 1L1 13M1 1L13 13" stroke="${popupConfig.fontColor}" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
9719     </svg>`;
9720     closeButton.setAttribute('aria-label', 'Close');
9721     closeButton.onclick = closePopup;
9722   
9723     contentWrapper.appendChild(closeButton);
9724   }
9725 
9726   // Add heading with subtle animation effect
9727   const header = document.createElement('div');
9728   header.className = 'bitlogin-popup-header';
9729   
9730   const heading = document.createElement('h2');
9731   heading.textContent = popupConfig.headingText || 'Sign in for exclusive benef
9731its';
9732   heading.style.color = popupConfig.fontColor;
9733   header.appendChild(heading);
9734 
9735   // Add body text with improved formatting
9736   const bodyText = document.createElement('div');
9737   bodyText.innerHTML = popupConfig.bodyText || 'Join our community to access exclusive offers and a personalized shopping experience.';
9738   bodyText.style.color = popupConfig.fontColor;
9739   header.appendChild(bodyText);
9740   
9741   contentWrapper.appendChild(header);
9742 
9743   // Create buttons container with modern styling
9744   const buttonsContainer = document.createElement('div');
9745   buttonsContainer.className = 'bitlogin-popup-buttons';
9746   
9747   // Add social buttons
9748   const providerLabels = {
9749     'GOOGLE': 'Continue with Google',
9750     'FACEBOOK': 'Continue with Facebook',
9751     'APPLE': 'Continue with Apple',
9752     'WHATSAPP': 'Continue with WhatsApp',
9753     'MAGIC_LINK': 'Continue with Email',
9754   };
9755 
9756   // Add first login provider button
9757   if (popupConfig.loginProvider1 !== 'NONE') {
9758     const buttonConfig = {
9759       theme: popupConfig.colorScheme || 'match',
9760       customColor: popupConfig.textColor,
9761       format: 'contentFlex',
9762       buttonText: bitloginCache.appearance.buttonList[popupConfig.loginProvider1.toLowerCase()],
9763       hasShadow: popupConfig.hasShadow !== undefined ? popupConfig.hasShadow : true,
9764       style: popupConfig.style || 'rounded',
9765       size: popupConfig.size || 'medium',
9766       colorScheme: popupConfig.colorScheme || 'match',
9767       backgroundColor: popupConfig.backgroundColor || '#3B82F6',
9768       textColor: popupConfig.textColor || '#FFFFFF',
9769       outlineColor: popupConfig.outlineColor || '#3B82F6',
9770       host: host
9771     };
9772     
9773     const button1 = createSocialLoginButton(popupConfig.loginProvider1, buttonConfig);
9774     
9775     // Handle click event - this overrides the default click handler in createSocialLoginButton
9776     button1.onclick = () => {
9777       onClickSocialLogin({ provider: popupConfig.loginProvider1.toLowerCase(), host });
9778       closePopup();
9779     };
9780     
9781     buttonsContainer.appendChild(button1);
9782   }
9783 
9784   // Add second login provider button if enabled
9785   if (popupConfig.loginProvider2 !== 'NONE') {
9786     const buttonConfig = {
9787       theme: popupConfig.colorScheme || 'match',
9788       customColor: popupConfig.textColor,
9789       format: 'contentFlex',
9790       buttonText: bitloginCache.appearance.buttonList[popupConfig.loginProvider2.toLowerCase()],
9791       hasShadow: popupConfig.hasShadow !== undefined ? popupConfig.hasShadow : true,
9792       style: popupConfig.style || 'rounded',
9793       size: popupConfig.size || 'medium',
9794       colorScheme: popupConfig.colorScheme || 'match',
9795       backgroundColor: popupConfig.backgroundColor || '#3B82F6',
9796       textColor: popupConfig.textColor || '#FFFFFF',
9797       outlineColor: popupConfig.outlineColor || '#3B82F6',
9798       host: host
9799     };
9800     
9801     const button2 = createSocialLoginButton(popupConfig.loginProvider2, buttonConfig);
9802     
9803     // Handle click event - this overrides the default click handler in createSocialLoginButton
9804     button2.onclick = () => {
9805       onClickSocialLogin({ provider: popupConfig.loginProvider2.toLowerCase(), host });
9806       closePopup();
9807     };
9808     
9809     buttonsContainer.appendChild(button2);
9810   }
9811 
9812   contentWrapper.appendChild(buttonsContainer);
9813 
9814   // Append content to popup
9815   popup.appendChild(contentWrapper);
9816   
9817   // Append popup to overlay
9818   overlay.appendChild(popup);
9819   
9820   // Append overlay to body
9821   document.body.appendChild(overlay);
9822   
9823   // Trigger animation with slight delay for better perceived performance
9824   setTimeout(() => {
9825     overlay.classList.add('visible');
9826     setTimeout(() => {
9827       popup.classList.add('visible');
9828     }, 50);
9829   }, 10);
9830 }
9831 
9832 window.addEventListener("load", () => {
9833   window.addEventListener("message", (event) => {
9834     const receivedData = event.data;
9835 
9836     if (receivedData.type === "authorize") {
9837       post(
9838         JSON.parse(
9839           JSON.stringify({
9840             "customer[email]": receivedData.email,
9841             "customer[password]": receivedData.password,
9842             form_type: "customer_login",
9843             utf8: "✓",
9844             return_url: redirectUrl,
9845           })
9846         )
9847       );
9848     } else if (receivedData.type === "rejected") {
9849       if (receivedData.reason === "customer_account_disabled") {
9850         showAlert(
9851           "Your account needs to be activated. We've sent you an activation link - please check your email to complete this step."
9852         );
9853       } else if (receivedData.reason === "customer_entry_created_email_not_set") {
9854         showAlert(
9855           "A new account was created but requires an email address. Please update your account with a valid email address to continue."
9856         );
9857       } else if (receivedData.reason === "customer_exist_email_not_set") {
9858         showAlert(
9859           "Your existing account is missing an email address. Please contact support to update your account with a valid email address."
9860         );
9861       }
9862     }
9863 
9864     if (receivedData.type === "customer_authenticated") {
9865       // Dispatch a custom event that merchants can listen for to implement their custom logic
9866       const customerAuthEvent = new CustomEvent('bitlogin:customer_authenticated', {
9867         detail: {
9868           provider: receivedData.provider,
9869           customer: receivedData.customer,
9870           shopifyCustomerCreated: receivedData.shopifyCustomerCreated
9871         }
9872       });
9873       
9874       // Dispatch the event on the window object so merchants can listen for it
9875       window.dispatchEvent(customerAuthEvent);
9876       
9877     }
9878   });
9879 });
9880 
9881 // Reusable functions for social login buttons
9882 function createSocialLoginButton(provider, config = {}) {
9883   const {
9884     theme = 'match',
9885     customColor = null,
9886     format = 'contentFlex',
9887     buttonText = null,
9888     hasShadow = true,
9889     style = 'rounded',
9890     size = 'medium',
9891     colorScheme = 'match',
9892     backgroundColor = '#3B82F6',
9893     textColor = '#FFFFFF',
9894     outlineColor = '#3B82F6',
9895     rootRef = null,
9896     host = null
9897   } = config;
9898   
9899   // Create button element with appropriate ID and attributes
9900   const button = document.createElement('button');
9901   button.id = `${provider.toLowerCase()}-login`;
9902   button.type = 'button';
9903   
9904   // Set the inner SVG based on provider
9905   switch (provider.toUpperCase()) {
9906     case 'GOOGLE':
9907       button.innerHTML = googleLoginIcon(theme, customColor);
9908       break;
9909     case 'FACEBOOK':
9910       button.innerHTML = facebookLoginIcon(theme, customColor);
9911       break;
9912     case 'APPLE':
9913       button.innerHTML = appleLoginIcon(theme, customColor);
9914       break;
9915     case 'WHATSAPP':
9916       button.innerHTML = whatsappLoginIcon(theme, customColor);
9917       break;
9918     case 'MICROSOFT':
9919       button.innerHTML = microsoftLoginIcon(theme, customColor);
9920       break;
9921     case 'TWITTER':
9922       button.innerHTML = twitterLoginIcon(theme, customColor);
9923       break;
9924     case 'AMAZON':
9925       button.innerHTML = amazonLoginIcon(theme, customColor);
9926       break;
9927     case 'INSTAGRAM':
9928       button.innerHTML = instagramLoginIcon(theme, customColor);
9929       break;
9930     case 'MAGIC_LINK':
9931       button.innerHTML = magicLinkLoginIcon(theme, customColor);
9932       break;
9933     case 'MOBILE_APP':
9934       button.innerHTML = mobileAppLoginIcon(theme, customColor);
9935       break;
9936     case 'LINKEDIN':
9937       button.innerHTML = linkedinLoginIcon(theme, customColor);
9938       break;
9939   }
9940   
9941   // Add text if format isn't icon-only and buttonText is provided
9942   if (format !== "wrapperFlexContainerOnlyLogo" && buttonText) {
9943     button.innerHTML += `<p>${buttonText}</p>`;
9944   }
9945   
9946   // Apply styling
9947   // Shadow
9948   if (hasShadow) {
9949     const shadowProperties = `0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)`;
9950     button.style["box-shadow"] = shadowProperties;
9951   }
9952   
9953   // Border radius
9954   const radiusProperties =
9955     style === "rounded"
9956       ? "8px"
9957       : style === "square"
9958       ? "0px"
9959       : style === "fullRounded"
9960       ? format === "wrapperFlexContainerOnlyLogo"
9961         ? "50%"
9962         : "50px"
9963       : undefined;
9964   button.style["border-radius"] = radiusProperties;
9965   
9966   // Size
9967   const sizeProperties =
9968     size === "medium"
9969       ? "12px"
9970       : size === "small"
9971       ? "8px"
9972       : size === "large"
9973       ? "16px"
9974       : "8px";
9975 
9976   button.style["padding-block"] = sizeProperties;
9977 
9978   // Format styling
9979   if (format) {
9980     if (
9981       format === "contentFlexReverse" ||
9982       format === "contentFlexCenterReverse"
9983     ) {
9984       const flexDir = `row-reverse`;
9985       button.style["flex-direction"] = flexDir;
9986     }
9987     
9988     if (
9989       format === "contentFlexCenter" ||
9990       format === "contentFlexCenterReverse"
9991     ) {
9992       const justifyContent = `center`;
9993       button.style["justify-content"] = justifyContent;
9994     } else if (
9995       format === "contentFlex" ||
9996       format === "contentFlexReverse"
9997     ) {
9998       const buttonTextElement = button.querySelector("p");
9999       if (buttonTextElement) {
10000         buttonTextElement.style["flex-grow"] = 1;
10001         buttonTextElement.style["text-align"] = "center";
10002       }
10003     }
10004 
10005     if (format === "wrapperFlexContainerOnlyLogo" && rootRef) {
10006       rootRef.style["flex-direction"] = "row";
10007       rootRef.style["gap"] = "8px";
10008       rootRef.style["display"] = "flex";
10009       rootRef.style["flex-wrap"] = "wrap";
10010 
10011       const sizeMapping = {
10012         small: "52px",
10013         medium: "62px",
10014         large: "72px",
10015       };
10016       const buttonSize = sizeMapping[size] || "52px";
10017 
10018       button.style["margin"] = 0;
10019       button.style["width"] = buttonSize;
10020       button.style["height"] = buttonSize;
10021       button.style["display"] = "flex";
10022       button.style["align-items"] = "center";
10023       button.style["justify-content"] = "center";
10024 
10025       const svgElement = button.querySelector("svg");
10026       if (svgElement) {
10027         svgElement.style["flex"] = "none";
10028       }
10029     }
10030   }
10031 
10032   // Color scheme styling
10033   if (colorScheme === "black") {
10034     button.classList.add("scheme-black");
10035   } else if (colorScheme === "white") {
10036     button.classList.add("scheme-white");
10037   } else if (colorScheme === "custom") {
10038     button.style["background-color"] = backgroundColor;
10039     button.style["color"] = textColor;
10040     button.style["border-color"] = outlineColor;
10041 
10042     const darkenColor = (color, percentage) => {
10043       const value = parseInt(color.slice(1), 16);
10044       const r = Math.max(0, ((value >> 16) & 0xff) - (0xff * percentage));
10045       const g = Math.max(0, ((value >> 8) & 0xff) - (0xff * percentage));
10046       const b = Math.max(0, (value & 0xff) - (0xff * percentage));
10047       return `rgb(${Math.round(r)}, ${Math.round(g)}, ${Math.round(b)})`;
10048     };
10049 
10050     button.addEventListener("mouseover", () => {
10051       button.style["background-color"] = darkenColor(backgroundColor, 0.2);
10052     });
10053     button.addEventListener("mouseout", () => {
10054       button.style["background-color"] = backgroundColor;
10055     });
10056   } else if (colorScheme === "match") {
10057     button.classList.add("scheme-match");
10058   } else if (colorScheme === "matchOutline") {
10059     button.classList.add("scheme-match-outline");
10060   }
10061   
10062   // Add click event listener if host is provided
10063   if (host) {
10064     button.addEventListener("click", () => 
10065       onClickSocialLogin({ provider: provider.toLowerCase(), host })
10066     );
10067   }
10068   
10069   return button;
10070 }
10071 
10072 function setupSocialLoginButtons(config, rootRef, data, host) {
10073   // Clear any existing content
10074   rootRef.innerHTML = '';
10075 
10076   const sortedEnabledProviders = config
10077     .filter(c => c.enabledWeb)
10078     .sort((a, b) => a.position - b.position);
10079 
10080   sortedEnabledProviders.forEach(provider => {
10081     const key = provider.provider;
10082     const lowerKey = key.toLowerCase();
10083 
10084     const buttonText = data.format !== "wrapperFlexContainerOnlyLogo"
10085       ? (lowerKey === 'twitter'
10086           ? data.buttonList.twitter.replace('Twitter', 'X')
10087           : data.buttonList[lowerKey])
10088       : null;
10089 
10090     const button = createSocialLoginButton(key, {
10091       theme: data.colorScheme || 'match',
10092       customColor: data.textColor,
10093       format: data.format,
10094       buttonText: buttonText,
10095       hasShadow: data.hasShadow !== undefined ? data.hasShadow : true,
10096       style: data.style,
10097       size: data.size,
10098       colorScheme: data.colorScheme,
10099       backgroundColor: data.backgroundColor,
10100       textColor: data.textColor,
10101       outlineColor: data.outlineColor,
10102       rootRef: rootRef,
10103       host: host
10104     });
10105 
10106     rootRef.appendChild(button);
10107   });
10108 
10109   return rootRef;
10110 }
10111 
10112 function updateAppearance({ formRef, rootRef, host }) {
10113   if (!formRef) return;
10114 
10115   const data = bitloginCache.appearance || {
10116     style: "square",
10117     hasShadow: false,
10118     colorScheme: "match",
10119     backgroundColor: "#FFFFFF",
10120     outlineColor: "#000000",
10121     textColor: "#000000",
10122     position: "bottom",
10123     hideDivider: "false",
10124     dividerText: "OR",
10125     size: "small",
10126     format: "contentFlex",
10127     language: "en",
10128     buttonText: "Continue with",
10129     redirectLink: "/account",
10130     googleOneTap: true,
10131     googleOneTapBanner: true,
10132     customerTag: "bitLogin",
10133     redirectOneTapDesktop: null,
10134     redirectOneTapMobile: null,
10135     buttonList: {
10136       google: "Continue with Google",
10137       facebook: "Continue with Facebook",
10138       apple: "Continue with Apple",
10139       whatsapp: "Continue with WhatsApp",
10140       microsoft: "Continue with Microsoft",
10141       twitter: "Continue with X",
10142       amazon: "Continue with Amazon",
10143       instagram: "Continue with Instagram",
10144       magic_link: "Continue with Magic Link",
10145       mobile_app: "Continue with Mobile App",
10146       linkedin: "Continue with LinkedIn",
10147     },
10148   };
10149 
10150   // Use the new setupSocialLoginButtons function to create and configure all buttons
10151   setupSocialLoginButtons(bitloginCache.config, rootRef, data, host);
10152 
10153   let divider;
10154 
10155   if (!data.hideDivider) {
10156     divider = document.createElement("div");
10157     const dividerStyle = "text-align:center;margin-block:16px";
10158     divider.setAttribute("style", dividerStyle);
10159     divider.innerHTML = data.dividerText;
10160   }
10161 
10162   if (data.position === "bottom") {
10163     if (divider) {
10164       formRef.appendChild(divider);
10165     }
10166     formRef.appendChild(rootRef);
10167   } else if (data.position === "top") {
10168     if (divider) {
10169       formRef.prepend(divider);
10170     }
10171     formRef.prepend(rootRef);
10172   }
10173 }
10174 
10175 
10176 async function onClickSocialLogin({ provider, host }) {
10177   const rand = Math.random().toString();
10178 
10179   const locationQueryString = bitloginCache.location
10180     ? `&${objectToQueryString(bitloginCache.location)}`
10181     : "";
10182 
10183   const width = 800;
10184   const height = 600;
10185   const left = (window.screen.width / 2) - (width / 2);
10186   const top = (window.screen.height / 2) - (height / 2) - 50;
10187 
10188   if(provider === 'whatsapp') {
10189     window.open(
10190       `/apps/bitlogin/whatsapp${locationQueryString ? `?${locationQueryString}` : ''}`,
10191       "mywindow",
10192       `menubar=1,resizable=1,width=${width},height=${height},top=${top},left=${left}`
10193     );
10194   } else {
10195     window.open(
10196       `${apiUrl}/login/${provider}?referrerId=${rand}&shop=${host}${locationQueryString}`,
10197       "mywindow",
10198       `menubar=1,resizable=1,width=${width},height=${height},top=${top},left=${left}`
10199     );
10200   }
10201 }
10202 
10203 function objectToQueryString(obj) {
10204   return Object.keys(obj)
10205     .map((key) => {
10206       return encodeURIComponent(key) + "=" + encodeURIComponent(obj[key]);
10207     })
10208     .join("&");
10209 }
10210 
10211 async function getLocation() {
10212   if (locationCacheSet) return;
10213 
10214   try {
10215     const response = await fetch("https://ipapi.co/json/");
10216 
10217     if (!response.ok) {
10218       console.error(`error retrieving location...`, response.status);
10219       errorLocation = true;
10220     } else {
10221       const data = await response.json();
10222 
10223       const { city, region, country_name, country_code } = data;
10224 
10225       const formattedLocationData = {
10226         city,
10227         region,
10228         country_name,
10229         country_code,
10230       };
10231 
10232       bitloginCache.location = formattedLocationData;
10233       locationCacheSet = true;
10234       errorLocation = false;
10235     }
10236   } catch (err) {
10237     console.error(`error fetching location`, err);
10238     errorLocation = true;
10239   }
10240 }
10241 
10242 function post(params) {
10243   // The rest of this code assumes you are not using a library.
10244   // It can be made less verbose if you use one.
10245   const form = document.createElement("form");
10246   form.method = "post";
10247   form.action = `/account/login`;
10248   form.acceptCharset = "UTF-8";
10249   form.setAttribute("data-login-with-shop-sign-in", "true");
10250   form.setAttribute("novalidate", "novalidate");
10251 
10252   for (const key in params) {
10253     if (params.hasOwnProperty(key)) {
10254       const hiddenField = document.createElement("input");
10255       hiddenField.type = "hidden";
10256       hiddenField.name = key;
10257       hiddenField.value = params[key];
10258 
10259       form.appendChild(hiddenField);
10260     }
10261   }
10262 
10263   document.body.appendChild(form);
10264   form.submit();
10265 }
10266 
10267 async function setupOneTap({ host, checkoutUrl }) {
10268   if (oneTapSet) return;
10269 
10270   const redirectOneTapDesktop = JSON.parse(JSON.stringify(bitloginCache.appearance.redirectOneTapDesktop || '[]'));
10271   const redirectOneTapMobile = JSON.parse(JSON.stringify(bitloginCache.appearance.redirectOneTapMobile || '[]'));
10272 
10273   const isMobile = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent);
10274   const redirectList = JSON.parse(isMobile ? redirectOneTapMobile : redirectOneTapDesktop);
10275 
10276   const currentPath = window.location.pathname.toLowerCase();
10277   const currentUrl = window.location.href.toLowerCase();
10278 
10279   const shouldHideGoogleOneTap = redirectList.some(({ value }) => {
10280     switch (value) {
10281       case 'home':
10282         return currentPath === '/';
10283       case 'product':
10284         return currentPath.startsWith('/products/');
10285       case 'collections':
10286         return currentPath.startsWith('/collections');
10287       case 'cart':
10288         return currentPath === '/cart';
10289       case 'checkout':
10290         return currentPath.startsWith('/checkouts') && !currentPath.includes('thank_you');
10291       case 'thank_you':
10292         return currentPath.includes('/thank_you');
10293       case 'account':
10294         return currentPath.startsWith('/account');
10295       case 'pages':
10296         return currentPath.startsWith('/pages');
10297       case 'blogs':
10298         return currentPath === '/blogs' || currentPath === '/blogs/news';
10299       case 'blog_post':
10300         return currentPath.startsWith('/blogs/') && currentPath.split('/').length > 3;
10301       default:
10302         return false;
10303     }
10304   });
10305 
10306   if (shouldHideGoogleOneTap) return;
10307 
10308   const oneTapClientId = bitloginCache.config.find(
10309     (config) => config.provider === "GOOGLE"
10310   )?.clientId;
10311 
10312   const isLoggedIn = false;
10313 
10314   if (bitloginCache.appearance.googleOneTap && oneTapClientId && !isLoggedIn) {
10315     const googleOneTapButton = document.createElement("div");
10316     googleOneTapButton.setAttribute("id", "g_id_onload");
10317     googleOneTapButton.setAttribute("data-client_id", oneTapClientId);
10318     googleOneTapButton.setAttribute("data-context", "signin");
10319     googleOneTapButton.setAttribute(
10320       "data-callback",
10321       "handleGoogleOneTapResponse"
10322     );
10323     googleOneTapButton.setAttribute("data-itp_support", "true");
10324 
10325     const googleOneTapScript = document.createElement("script");
10326 
10327     googleOneTapScript.innerHTML += `
10328           function handleGoogleOneTapResponse(response) {
10329               if (response.credential) {
10330                   const idToken = response.credential;
10331                   fetch('${bitLoginBaseUrl}/bitlogin/api/login/google-one-tap', {
10332                       method: 'POST',
10333                       headers: { 'Content-Type': 'application/json' },
10334                       body: JSON.stringify({ idToken, shop: "${host}", ...bitloginCache.location })
10335                   }).then(response => {
10336                       response.json().then((data) => {
10337                         post(
10338                           JSON.parse(
10339                             JSON.stringify({
10340                               "customer[email]": data.email,
10341                               "customer[password]": data.password,
10342                               form_type: "customer_login",
10343                               utf8: "✓",
10344                               return_url: redirectUrl,
10345                             })
10346                           )
10347                         );
10348                       });  
10349                   }).catch(error => {
10350                       console.error('Error occurred:', error);
10351                   });
10352               } else {
10353                   console.error('No credential available');
10354               }
10355           }
10356        `;
10357 
10358     document.body.append(googleOneTapButton);
10359     document.body.append(googleOneTapScript);
10360   }
10361 
10362   oneTapSet = true;
10363 }
10364 
10365 const googleLoginIcon = (
10366   theme,
10367   customColor
10368 ) => `
10369 ${
10370   theme === "match" || theme === "matchOutline" || theme === "custom"
10371     ? `<svg
10372     xmlns='https://hokiku.io/images/2025/02/10/logo.png'
10373     xmlns:v='https://vecta.io/nano'
10374     width='24'
10375     height='24'
10376     viewBox='0 0 186.69 190.5'
10377   >
10378     <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="${
10379       theme === "custom" ? customColor : "#4285f4"
10380     }"/><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="${
10381         theme === "custom" ? customColor : "#34a853"
10382       }"/><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="${
10383         theme === "custom" ? customColor : "#fbbc05"
10384       }"/><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="${
10385         theme === "custom" ? customColor : "#ea4335"
10386       }" clip-path="none" mask="none"/></g>
10387   </svg>`
10388     : `<svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="25" height="25" viewBox="0 0 25 25" fill="none">
10389 <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="${
10390         theme !== "black" ? "black" : "white"
10391       }"/>
10392 <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="${
10393         theme !== "black" ? "black" : "white"
10394       }"/>
10395 <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="${
10396         theme !== "black" ? "black" : "white"
10397       }"/>
10398 <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="${
10399         theme !== "black" ? "black" : "white"
10400       }"/>
10401 </svg>`
10402 }`;
10403 
10404 const appleLoginIcon = (
10405   theme,
10406   customColor
10407 ) => `<svg width="24" height="24" viewBox="0 0 19 24" fill="none" xmlns="https://hokiku.io/images/2025/02/10/logo.png">
10408 <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="${
10409   theme === "custom"
10410     ? customColor
10411     : theme === "match" || theme === "black"
10412     ? "white"
10413     : "black"
10414 }"/>
10415 </svg>`;
10416 
10417 const facebookLoginIcon = (
10418   theme,
10419   customColor
10420 ) => `
10421 ${
10422   theme === "match" || theme === "matchOutline" || theme === "custom"
10423     ? `<svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="24" height="25" viewBox="0 0 24 25" fill="none">
10424     <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="${
10425       theme === "custom" ? customColor : theme === "match" ? "white" : "#1977F3"
10426     }"/>
10427     <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="${
10428       theme === "match" ? "#1778f2" : "transparent"
10429     }"/>
10430     </svg>`
10431     : `<svg xmlns="https://hokiku.io/images/2025/02/10/logo.png" width="24" height="25" viewB
10431ox="0 0 24 25" fill="none">
10432 <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="${
10433         theme === "black" ? "white" : "black"
10434       }"/>
10435 <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="${
10436         theme === "black" ? "black" : "white"
10437       }"/>
10438 </svg>`
10439 }`;
10440 
10441 const whatsappLoginIcon = (
10442   theme,
10443   customColor
10444 ) => `<svg
10445   viewBox="0 0 24 24"
10446   fill="none"
10447   width="24"
10448   height="25"
10449   xmlns="https://hokiku.io/images/2025/02/10/logo.png"
10450 >
10451   <g id="SVGRepo_bgCarrier" stroke-width="0"></g>
10452   <g
10453     id="SVGRepo_tracerCarrier"
10454     stroke-linecap="round"
10455     stroke-linejoin="round"
10456   ></g>
10457   <g id="SVGRepo_iconCarrier">
10458     <path
10459       fill-rule="evenodd"
10460       clip-rule="evenodd"
10461       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"
10462       fill="${
10463         theme === "match" || theme === "black"
10464           ? "#ffffff"
10465           : theme === "white"
10466           ? "#000000"
10467           : theme === "matchOutline"
10468           ? "#25d366"
10469           : customColor
10470       }"
10471     ></path>
10472   </g>
10473 </svg>`;
10474 
10475 const microsoftLoginIcon = (
10476   theme,
10477   customColor
10478 ) => `<svg
10479 xmlns="https://hokiku.io/images/2025/02/10/logo.png"
10480 width="25"
10481 height="25"
10482 viewBox="0 0 48 48">
10483 <path fill="${
10484   theme === "match" || theme == "matchOutline"
10485     ? "#ff5722"
10486     : theme === "black"
10487     ? "#ffffff"
10488     : theme === "white"
10489     ? "#000000"
10490     : customColor
10491 }" d="M6 6H22V22H6z" transform="rotate(-180 14 14)"></path>
10492 <path
10493   fill="${
10494     theme === "match" || theme == "matchOutline"
10495       ? "#4caf50"
10496       : theme === "black"
10497       ? "#ffffff"
10498       : theme === "white"
10499       ? "#000000"
10500       : customColor
10501   }"
10502   d="M26 6H42V22H26z"
10503   transform="rotate(-180 34 14)"></path>
10504 <path
10505   fill="${
10506     theme === "match" || theme == "matchOutline"
10507       ? "#ffc107"
10508       : theme === "black"
10509       ? "#ffffff"
10510       : theme === "white"
10511       ? "#000000"
10512       : customColor
10513   }"
10514   d="M26 26H42V42H26z"
10515   transform="rotate(-180 34 34)"></path>
10516 <path fill="${
10517   theme === "match" || theme == "matchOutline"
10518     ? "#03a9f4"
10519     : theme === "black"
10520     ? "#ffffff"
10521     : theme === "white"
10522     ? "#000000"
10523     : customColor
10524 }" d="M6 26H22V42H6z" transform="rotate(-180 14 34)"></path>
10525 </svg>`;
10526 
10527 const twitterLoginIcon = (
10528   theme,
10529   customColor
10530 ) => `<svg
10531 xmlns="https://hokiku.io/images/2025/02/10/logo.png"
10532 width="25"
10533 height="25"
10534 viewBox="0 0 48 48">
10535 <polygon fill="${
10536   theme === "match" || theme === "black"
10537     ? "#ffffff"
10538     : theme === "matchOutline" || theme === "white"
10539     ? "#000000"
10540     : customColor
10541 }" points="41,6 9.929,42 6.215,42 37.287,6"></polygon>
10542 <polygon
10543   fill="${
10544     theme === "match" || theme === "black"
10545       ? "#000000"
10546       : theme === "matchOutline" || theme === "white"
10547       ? "#ffffff"
10548       : customColor
10549   }"
10550   fill-rule="evenodd"
10551   points="31.143,41 7.82,7 16.777,7 40.1,41"
10552   clip-rule="evenodd"></polygon>
10553 <path
10554   fill="${
10555     theme === "match" || theme === "black"
10556       ? "#ffffff"
10557       : theme === "matchOutline" || theme === "white"
10558       ? "#000000"
10559       : customColor
10560   }"
10561   d="M15.724,9l20.578,30h-4.106L11.618,9H15.724 M17.304,6H5.922l24.694,36h11.382L17.304,6L17.304,6z"></path>
10562 </svg>`;
10563 
10564 const amazonLoginIcon = (theme, customColor) => `
10565  <svg
10566       xmlns="https://hokiku.io/images/2025/02/10/logo.png"
10567       x="0px"
10568       y="0px"
10569       width="25"
10570       height="25"
10571       viewBox="0 0 50 50"
10572     >
10573       <path
10574         fill="${
10575           theme === "black"
10576             ? "#ffffff"
10577             : theme === "matchOutline"
10578             ? "#FF9900"
10579             : theme === "white" || theme === "match"
10580             ? "#000000"
10581             : customColor
10582         }"
10583         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"
10584       ></path>
10585     </svg>`;
10586 
10587 const instagramLoginIcon= (theme, customColor) => `
10588     <svg
10589       width="25"
10590       height="25"
10591       viewBox="0 0 25 24"
10592       fill="none"
10593       xmlns="https://hokiku.io/images/2025/02/10/logo.png">
10594       <path
10595         fill-rule="evenodd"
10596         clip-rule="evenodd"
10597         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.
1059764321C8.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"
10598         fill="url(#paint0_radial_378_3535)" />
10599       <path
10600         fill-rule="evenodd"
10601         clip-rule="evenodd"
10602         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"
10603         fill="url(#paint0_radial_378_3535)" />
10604       <path
10605         fill-rule="evenodd"
10606         clip-rule="evenodd"
10607         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.
1060764321C8.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"
10608         fill="url(#paint0_radial_378_3535)" />
10609       <path
10610         fill-rule="evenodd"
10611         clip-rule="evenodd"
10612         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"
10613         fill="url(#paint1_radial_378_3535)" />
10614       <defs>
10615         <radialGradient
10616           id="paint0_radial_378_3535"
10617           cx="0"
10618           cy="0"
10619           r="1"
10620           gradientUnits="userSpaceOnUse"
10621           gradientTransform="translate(17.4 22.7) rotate(-115.776) scale(27.2737 40.5665)">
10622           <stop offset="0.24392" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FF1B90' : customColor}" />
10623           <stop offset="0.436673" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#F80261' : customColor}" />
10624           <stop offset="0.688476" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#ED00C0' : customColor}" />
10625           <stop offset="0.776787" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#C500E9' : customColor}" />
10626           <stop offset="0.893155" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#7017FF' : customColor}" />
10627         </radialGradient>
10628         <radialGradient
10629           id="paint1_radial_378_3535"
10630           cx="0"
10631           cy="0"
10632           r="1"
10633           gradientUnits="userSpaceOnUse"
10634           gradientTransform="translate(7.75 19.31) rotate(-57.4396) scale(11.8174 12.2918)">
10635           <stop stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FFD600' : customColor}" />
10636           <stop offset="0.484375" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FF6930' : customColor}" />
10637           <stop offset="0.734375" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FE3B36' : customColor}" />
10638           <stop offset="1" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FE3B36' : customColor}" stop-opacity="0" />
10639         </radialGradient>
10640       </defs>
10641     </svg>`;
10642 
10643 const magicLinkLoginIcon = (theme, customColor) => `
10644   <svg
10645     xmlns="https://hokiku.io/images/2025/02/10/logo.png"
10646     width="25"
10647     height="25"
10648     fill="none"
10649     viewBox="0 0 25 25"
10650   >
10651     <path
10652       fill="${
10653         theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' || theme === 'white' ? '#000000' : customColor
10654       }"
10655       fillRule="evenodd"
10656       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"
10657       clipRule="evenodd"
10658     ></path>
10659   </svg>`;
10660 
10661 const mobileAppLoginIcon = (theme, customColor) => `
10662   <svg
10663     width="20"
10664     height="24"
10665     viewBox="0 0 12 16"
10666     fill="none"
10667     xmlns="https://hokiku.io/images/2025/02/10/logo.png"
10668   >
10669     <path
10670       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"
10671       fill=${
10672         theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' ? '#FD823E' : theme === 'white' ? '#000000' : customColor
10673       }
10674     />
10675   </svg>
10676 `;
10677 
10678 const linkedinLoginIcon = (theme, customColor) => `
10679   <svg
10680     xmlns="https://hokiku.io/images/2025/02/10/logo.png"
10681     width="25"
10682     height="24"
10683     viewBox="0 0 25 24"
10684     fill="none"
10685   >
10686     <path
10687       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"
10688       fill=${
10689         theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' ? '#0A66C2' : theme === 'white' ? '#000000' : customColor
10690       }
10691     />
10692   </svg>
10693 `;
10694 
10695 function isElementVisible(element) {
10696   return (
10697     document.body.contains(element) &&
10698     getComputedStyle(element).display !== "none" &&
10699     getComputedStyle(element).visibility !== "hidden" &&
10700     getComputedStyle(element).opacity !== "0" &&
10701     !element.hasAttribute("hidden") &&
10702     !isAncestorHidden(element)
10703   );
10704 }
10705 
10706 function isAncestorHidden(element) {
10707   let parent = element.parentElement;
10708   while (parent) {
10709     if (
10710       getComputedStyle(parent).display === "none" ||
10711       getComputedStyle(parent).visibility === "hidden" ||
10712       getComputedStyle(parent).opacity === "0" ||
10713       parent.hasAttribute("hidden")
10714     ) {
10715       return true;
10716     }
10717     parent = parent.parentElement;
10718   }
10719   return false;
10720 }
10721 
10722 function showAlert(message) {
10723   const alertBox = document.createElement("div");
10724   alertBox.textContent = message;
10725   alertBox.style.position = "fixed";
10726   alertBox.style.top = "20px";
10727   alertBox.style.right = "-300px"; // Start off-screen
10728   alertBox.style.backgroundColor = "#000000"; // Black background
10729   alertBox.style.color = "#ffffff"; // White text
10730   alertBox.style.padding = "15px";
10731   alertBox.style.borderRadius = "8px";
10732   alertBox.style.zIndex = "1000";
10733   alertBox.style.transition =
10734     "right 0.5s ease-in-out, opacity 0.5s ease-in-out"; // Transition for sliding and fading
10735   alertBox.style.boxShadow = "0 2px 5px rgba(0, 0, 0, 0.2)"; // Optional shadow for depth
10736 
10737   document.body.appendChild(alertBox);
10738 
10739   // Slide in
10740   requestAnimationFrame(() => {
10741     alertBox.style.right = "20px"; // Move into view
10742     alertBox.style.opacity = "1"; // Ensure opacity is set to 1
10743   });
10744 
10745   // Slide out and remove the alert after a few seconds
10746   setTimeout(() => {
10747     alertBox.style.opacity = "0"; // Fade out
10748     alertBox.style.right = "-300px"; // Move out of view
10749 
10750     // Wait for the transition to finish before removing the element
10751     setTimeout(() => {
10752       document.body.removeChild(alertBox);
10753     }, 500); // Match this duration with the exit transition duration
10754   }, 3000);
10755 }
10756 </script>
10756
10757 
10758 <style>
10759     .daftarku-fixed-footer {
10760             display: flex;
10761             justify-content: space-around;
10762             position: fixed;
10763             background: linear-gradient(to bottom, #000000 0%, #3d3d3d, #000000 100%);
10764             box-shadow: 0 0 12px #ffd700;
10765             outline: none;
10766             padding: 5px 0;
10767             box-shadow: 0 0 0 0 2px 2px #198f01;
10768             left: 0;
10769             right: 0;
10770             bottom: 0;
10771             z-index: 99;
10772             border-radius: 40px 40px 0px 0px;
10773             border-style:dashed;
10774             
10775         }
10776 
10777         .daftarku-fixed-footer a {
10778             flex-basis: calc((100% - 15px*6)/ 5);
10779             text-decoration: none;
10780             display: flex;
10781             flex-direction: column;
10782             justify-content: center;
10783             align-items: center;
10784             color: #fff;
10785             max-width: 75px;
10786             font-size: 12px;
10787             font-family: Ubuntu, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
10788         }
10789 
10790         .daftarku-fixed-footer a:hover {
10791             font-weight: bold;
10792         }
10793 
10794         .daftarku-fixed-footer .center {
10795             transform: scale(1.5) translateY(-5px);
10796             background: center no-repeat;
10797             background-size: contain;
10798             background-color: inherit;
10799             border-radius: 50%;
10800         }
10801 
10802         .daftarku-fixed-footer img {
10803             max-width: 20px;
10804             margin-bottom: 0;
10805             max-height: 20px;
10806         }
10807 </style>
10808     
10809     <div class="daftarku-fixed-footer">
10810     <a href="https://login.basket168-hahaaa.shop/" rel="nofollow noopener" target="_blank">
10811         <img layout="intrinsic" height="20px" width="20px" src="https://hokiku.io/images/2026/02/21/icon.png" alt="PROMOSI">
10812         PROMO
10813     </a>
10814     <a href="https://login.basket168-hahaaa.shop/" rel="nofollow noopener" target="_blank">
10815         <img layout="intrinsic" height="20px" width="20px" src="https://hokiku.io/images/2026/02/21/icon.png" alt="LOGIN">
10816         LOGIN
10817     </a>
10818     <a href="https://login.basket168-hahaaa.shop/" rel="nofollow noopener" target="_blank" class="tada">
10819         <img layout="intrinsic" height="20px" width="20px" src="https://hokiku.io/images/2026/02/21/icon.png" alt="DAFTAR">
10820         DAFTAR
10821     </a>
10822     <a href="https://login.basket168-hahaaa.shop/" rel="nofollow noopener" target="_blank">
10823         <img layout="intrinsic" height="20px" width="20px" src="https://hokiku.io/images/2026/02/21/icon.png" alt="TELEGRAM">
10824         TELEGRAM
10825     </a>
10826     <a href="https://login.basket168-hahaaa.shop/" rel="nofollow noopener" target="_blank"
10827         class="js_live_chat_link live-chat-link">
10828         <img class="live-chat-icon" layout="intrinsic" height="20px" width="20px" src="https://hokiku.io/images/2026/02/21/icon.png" alt="Live Chat">
10829         Live Chat
10830     </a>
10831 </div>
10832 </div>
10833 
10833<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: 1 bytes, line 10833
10833
10834<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: 1 bytes, line 10834
10834
10835<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: 1 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":"dab9d09f108e4424ac917af095425476","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 1 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":"11f08490f700426280d7f4e39f19efa8","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 1 bytes, line 10837
10837
10838<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"368dc136e8ff458ca0e0d7cc2e1c8a4e","r":1}' crossorigin="anonymous"></script>
vendor: 1 bytes, line 10838
10838
10839<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"368dc136e8ff458ca0e0d7cc2e1c8a4e","r":1}' crossorigin="anonymous"></script>
vendor: 1 bytes, line 10839
10839
10840<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"368dc136e8ff458ca0e0d7cc2e1c8a4e","r":1}' crossorigin="anonymous"></script>
vendor: 1 bytes, line 10840
10840
10841<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"368dc136e8ff458ca0e0d7cc2e1c8a4e","r":1}' crossorigin="anonymous"></script>
vendor: 1 bytes, line 10841
10841
10842<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"368dc136e8ff458ca0e0d7cc2e1c8a4e","r":1,"spa":2}' crossorigin="anonymous"></script>
vendor: 1 bytes, line 10842
10842
10843<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"368dc136e8ff458ca0e0d7cc2e1c8a4e","r":1,"spa":2}' crossorigin="anonymous"></script>
vendor: 1 bytes, line 10843
10843
10844<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"368dc136e8ff458ca0e0d7cc2e1c8a4e","r":1,"spa":2}' crossorigin="anonymous"></script>
vendor: 1 bytes, line 10844
10844
10845<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4bc70e2c01a94c73b74392e4234840661791215815920" integrity="sha512-L0ha0OXavK/8okipN9F8BtP84dg9DUhPERbBXzwI6dgTA55d2+yweo3pn5CSFYs45/r8md2+xvUPtTdvTNRfjA==" data-cf-beacon='{"version":"2024.11.0","token":"368dc136e8ff458ca0e0d7cc2e1c8a4e","r":1,"spa":2}' crossorigin="anonymous"></script>
10845
10846</body>
10847 </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.