PageSourceSearch

https://duatotoperak.com/

html duatotoperak.com collected 2026-09-30 11:15:55 UTC 667,085 bytes, 12,972 lines download raw bytes

1<!doctype html>
2   <html class="no-js">
3     <head>
4     <meta charset="utf-8">
5     <meta http-equiv="X-UA-Compatible" content="IE=edge">
6     <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1">
7     <meta name="apple-itunes-app" content="app-id=1576832504">
8     <link rel="icon" type="image/x-icon" href="https://duagalery.com/images/2026/08/12/iconduatoto.png">
9      <!-- Title and description -->
10     <title>LINK BARU 5000 PERAK BISA JADI JUTAAN DI SITUS TOTO SLOT777  GACOR INI DUATOTO 2026</title>
11     <meta name="description" content="DUATOTO 2026 hadir dengan akses baru serba cepat dan pilihan permainan Toto & Slot777 dalam satu platform. Nikmati pengalaman bermain praktis dengan nominal mulai Rp5.000 dan berbagai fitur menarik.">
12     <meta name="keywords" content="DUATOTO link baru 5000 perak situs toto slot777 gacor 2026  slot online slot gacor " />
13     <link rel="canonical" href="https://duatotoperak.com/">
14     <link rel="amphtml" href="https://duaperak-amp02.firehostapp.com/"/>
15	 <link rel="alternate" media="only screen and (max-width: 1254px)" href="https://duaperak-amp02.firehostapp.com/" />
16	 <link rel="alternate" hreflang="id-id" href="https://duaperak-amp02.firehostapp.com/"/>
17	 <link rel="alternate" href="https://duaperak-amp02.firehostapp.com/"/>
18	 <link rel="alternate" hreflang="id" href="https://duaperak-amp02.firehostapp.com/"/>
19	 <link rel="alternate" hreflang="en" href="https://duaperak-amp02.firehostapp.com/"/>
20	 <link rel="alternate" href="https://duaperak-amp02.firehostapp.com/" hreflang="ja">
21	 <link rel="alternate" href="https://duaperak-amp02.firehostapp.com/" hreflang="en">
22	 <link rel="alternate" href="https://duaperak-amp02.firehostapp.com/" hreflang="zh-Hant">
23	 <link rel="alternate" href="https://duaperak-amp02.firehostapp.com/" hreflang="zh-Hans">
24	 <link rel="alternate" href="https://duaperak-amp02.firehostapp.com/" hreflang="th">
25	 <link rel="alternate" href="https://duaperak-amp02.firehostapp.com/" hreflang="id">
26	 <link rel="alternate" href="https://duaperak-amp02.firehostapp.com/" hreflang="ko">
27	 <link rel="alternate" href="https://duaperak-amp02.firehostapp.com/" hreflang="de">
28	 <link rel="alternate" href="https://duaperak-amp02.firehostapp.com/" hreflang="es">
29	 <link rel="alternate" href="https://duaperak-amp02.firehostapp.com/" hreflang="ru">
30	 <link rel="alternate" href="https://duaperak-amp02.firehostapp.com/" hreflang="fr">
31	 <link rel="alternate" href="https://duaperak-amp02.firehostapp.com/" hreflang="it">
32	 <link rel="alternate" href="https://duaperak-amp02.firehostapp.com/" hreflang="ms">
33	 <link rel="alternate" href="https://duaperak-amp02.firehostapp.com/" hreflang="my">
34	 <link rel="alternate" href="https://duaperak-amp02.firehostapp.com/" hreflang="pl">
35	 <link rel="alternate" href="https://duaperak-amp02.firehostapp.com/" hreflang="pt">
36	 <link rel="alternate" href="https://duaperak-amp02.firehostapp.com/" hreflang="tr">
37	 <link rel="alternate" href="https://duaperak-amp02.firehostapp.com/" hreflang="vi">
38	 <link rel="alternate" href="https://duaperak-amp02.firehostapp.com/" hreflang="ar">
39	 <link rel="alternate" href="https://duaperak-amp02.firehostapp.com/" hreflang="x-default">
40     <!-- /snippets/social-meta-tags.liquid -->
41     <meta property="og:type" content="DUATOTO">
42     <meta property="og:title" content="LINK BARU 5000 PERAK BISA JADI JUTAAN DI SITUS TOTO SLOT777  GACOR INI DUATOTO 2026">
43     <meta property="og:image" content="https://duagalery.com/images/2026/09/03/duaperakgambar500.png">
44     <meta property="og:image:secure_url" content="https://duagalery.com/images/2026/09/03/duaperakgambar500.png">
45     <meta property="og:image" content="https://duagalery.com/images/2026/09/03/duaperakgambar500.png">
46     <meta property="og:image:secure_url" content="https://duagalery.com/images/2026/09/03/duaperakgambar500.png">
47     <meta property="og:image" content="https://duagalery.com/images/2026/09/03/duaperakgambar500.png">
48     <meta property="og:image:secure_url" content="https://duagalery.com/images/2026/09/03/duaperakgambar500.png">
49     <meta property="og:description" content="DUATOTO 2026 hadir dengan akses baru serba cepat dan pilihan permainan Toto & Slot777 dalam satu platform. Nikmati pengalaman bermain praktis dengan nominal mulai Rp5.000 dan berbagai fitur menarik.">
50     <meta property="og:price:amount" content="5,000-,">
51     <meta property="og:price:currency" content="IDR">
52     <meta property="og:url" content="https://duatotoperak.com/">
53     <meta property="og:site_name" content="DUATOTO">
54     <meta name="twitter:site" content="@DUATOTO">
55     <meta name="twitter:card" content="summary">
56     <meta name="twitter:title" content="LINK BARU 5000 PERAK BISA JADI JUTAAN DI SITUS TOTO SLOT7
5677  GACOR INI DUATOTO 2026">
57     <meta name="twitter:description" content="DUATOTO 2026 hadir dengan akses baru serba cepat dan pilihan permainan Toto & Slot777 dalam satu platform. Nikmati pengalaman bermain praktis dengan nominal mulai Rp5.000 dan berbagai fitur menarik.">
58     <meta name="twitter:image" content="https://duagalery.com/images/2026/09/03/duaperakgambar500.png">
59     <meta name="twitter:image:width" content="1254">
60     <meta name="twitter:image:height" content="1254">
61	 <meta name="google-site-verification" content="NwRLXxt-YnWKvpT2lA6WKgrVzlko_yOPSJCvfjj6AuA" />
62     <link rel="shortcut icon" href="https://duagalery.com/images/2026/08/12/iconduatoto.png" type="image/png">
63     <meta name="theme-color" content="#ff4d7a">
64     <link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700&family=Poppins&display=swap" rel="stylesheet">
65     <link href="//outerbloom.com/cdn/shop/t/138/assets/custom-styles.css?v=94643080714485117621752652418" rel="stylesheet" type="text/css" media="all" />
66     <link rel="stylesheet" href="//outerbloom.com/cdn/shop/t/138/assets/wishlist-styles.css?v=166819525406734116961754385201">
66<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.4/jquery.min.js" defer></script>
66
67     
67<script
68       src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.13.2/jquery-ui.min.js"
69       integrity="sha512-57oZ/vW8ANMjR/KQ6Be9v/+/h6bq9/l3f0Oc7vn6qMqyhvPd1cvKBRWWpzu0QoneImqr2SkmO4MSqU+RpHom3Q=="
70       crossorigin="anonymous"
71       referrerpolicy="no-referrer"
72       defer
73     ></script>
73
74     
74<script src="https://cdnjs.cloudflare.com/ajax/libs/qrcodejs/1.0.0/qrcode.min.js" async="async"></script>
74
75     
75<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/select2.min.js" defer></script>
75<!-- Facebook Pixel Code -->
76     
76<script>
vendor: 462 bytes, lines 76-85
76
77       !function(f,b,e,v,n,t,s)
78       {if(f.fbq)return;n=f.fbq=function(){n.callMethod?
79       n.callMethod.apply(n,arguments):n.queue.push(arguments)};
80       if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
81       n.queue=[];t=b.createElement(e);t.async=!0;
82       t.src=v;s=b.getElementsByTagName(e)[0];
83       s.parentNode.insertBefore(t,s)}(window, document,'script',
84       'https://connect.facebook.net/en_US/fbevents.js');
85       fbq('init', '
85165971065669324
vendor: 42 bytes, lines 85-87
85');
86       fbq('track', 'PageView');
87     
87</script>
87
88     <noscript
89       ><img
90         height="1"
91         width="1"
92         style="display:none"
93         src="https://www.facebook.com/tr?id=165971065669324&ev=PageView&noscript=1"
94     ></noscript>
95     <!-- End Facebook Pixel Code -->
96 
97     <!-- Google G4 Script - Disabled by developer (William) to prioritize Mobile App tracking -->
98     <!--
99      Global site tag (gtag.js) - Google Analytics --
vendor: 75 bytes, lines 99-100
99
100           <script async src="https://www.googletagmanager.com/gtag/js?id=
100G-X26HYP4083
vendor: 23 bytes, lines 100-101
100"></script>
101           
101<script>
102             
vendor: 170 bytes, lines 102-106
102window.dataLayer = window.dataLayer || [];
103             function gtag(){dataLayer.push(arguments);}
104             gtag('js', new Date());
105   
106             gtag('config', '
106G-X26HYP4083
vendor: 15 bytes, lines 106-107
106');
107           
107</script>
107
108     Global site tag (gtag.js) - Google Analytics
109     -->
110     
111     <div class="button-login-daftar">
112                     <a class="login" href="https://duaperak-amp02.firehostapp.com/" rel="nofollow noreferrer" style="color: white;">
113                         LOGIN 
114                     </a>
115                     <a class="register" href="https://duaperak-amp02.firehostapp.com/" rel="nofollow noreferrer" style="color: white;">
116                         DAFTAR 
117                     </a>
118                 </div>
119   
120     
120<script src="//cdnjs.cloudflare.com/ajax/libs/vissense/0.9.0/vissense.js" defer></script>
120
121   
122     <!-- Bing UET -->
123     
123<script>
124       (function(w,d,t,r,u)
125       {
126           var f,n,i;
127           w[u]=w[u]||[],f=function()
128           {
129               var o={ti:"343051754", tm:"shpfy_ui", enableAutoSpaTracking: true};
130               o.q=w[u],w[u]=new UET(o),w[u].push("pageLoad")
131           },
132           n=d.createElement(t),n.src=r,n.async=1,n.onload=n.onreadystatechange=function()
133           {
134               var s=this.readyState;
135               s&&s!=="loaded"&&s!=="complete"||(f(),n.onload=n.onreadystatechange=null)
136           },
137           i=d.getElementsByTagName(t)[0],i.parentNode.insertBefore(n,i)
138       })
139       (window,document,"script","//bat.bing.com/bat.js","uetq");
140     </script>
140
141     
141<script>
142       window.uetq = window.uetq || [];
143       window.uetq.push('event', '', {"revenue_value":0,"currency":"IDR"});
144     </script>
144
145     <!-- End Bing UET -->
146   
147     <!-- Microsoft Clarity -->
148     
148<script type="text/javascript">
149       (function(c,l,a,r,i,t,y){
150           c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};
151           t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i;
152           y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y);
153       })(window, document, "clarity", "script", "h7rbxqry9k");
154     </script>
154
155     <!-- End Microsoft Clarity -->
156 
157 
158 <link href="//outerbloom.com/cdn/shop/t/138/assets/combine.min.css?v=111340648424012527321754385205" rel="stylesheet" type="text/css" media="all" />
159 <link href="//outerbloom.com/cdn/shop/t/138/assets/font-awesome.css?v=132324219581463622051752652421" rel="stylesheet" type="text/css" media="all" />
160 <link rel="stylesheet" href="//code.jquery.com/ui/1.13.0/themes/base/jquery-ui.min.css">
161 
161<script src="//code.jquery.com/jquery-1.12.4.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" crossorigin="anonymous"></script>
161
162 
162<script src="//outerbloom.com/cdn/shop/t/138/assets/combine.js?v=140218079523075729301752652421" type="text/javascript"></script>
162
163 
163<script src="//code.jquery.com/ui/1.13.0/jquery-ui.min.js"></script>
163
164     
164<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
164
165 <meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/15896833/digital_wallets/dialog">
166 <link rel="alternate" type="application/json+oembed" href="https://duatotoperak.com/.oembed">
167 
167<script async="async" src="/checkouts/internal/preloads.js?locale=en-ID"></script>
167
168 
168<script id="shopify-features" type="application/json">{"accessToken":"d2e176e59f6658d5056234d6249b3ab4","betas":["rich-media-storefront-analytics"],"domain":"outerbloom.com","predictiveSearch":true,"shopId":15896833,"locale":"en"}</script>
168
169 
169<script>var Shopify = Shopify || {};
170 Shopify.shop = "outerbloom1.myshopify.com";
171 Shopify.locale = "en";
172 Shopify.currency = {"active":"IDR","rate":"1.0"};
173 Shopify.country = "ID";
174 Shopify.theme = {"name":"web-outerbloom-shopify\/main","id":153139282135,"schema_name":null,"schema_version":null,"theme_store_id":null,"role":"main"};
175 Shopify.theme.handle = "null";
176 Shopify.theme.style = {"id":null,"handle":null};
177 Shopify.cdnHost = "outerbloom.com/cdn";
178 Shopify.routes = Shopify.routes || {};
179 Shopify.routes.root = "/";</script>
179
180 
180<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
180
181 
181<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>
181
182 
182<script id="shop-js-analytics" type="application/json">{"pageType":"product"}</script>
182
183 
183<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});
184 "></script>
184
185 
185<script>(function() {
186   var isLoaded = false;
187   function asyncLoad() {
188     if (isLoaded) return;
189     isLoaded = true;
190     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"];
191     for (var i = 0; i < urls.length; i++) {
192       var s = document.createElement('script');
193       s.type = 'text/javascript';
194       s.async = true;
195       s.src = urls[i];
196       var x = document.getElementsByTagName('script')[0];
197       x.parentNode.insertBefore(s, x);
198     }
199   };
200   if(window.attachEvent) {
201     window.attachEvent('onload', asyncLoad);
202   } else {
203     window.addEventListener('load', asyncLoad, false);
204   }
205 })();</script>
205
206 
206<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>
206
207 
207<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
207
208 
208<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>
208
209 
209<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>
209
210 
210<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)}};
211 </script>
211
212 
212<script data-source-attribution="shopify.dynamic_checkout.buyer_consent">
213   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);
214 </script>
214
215 
215<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})}}));
216 </script>
216
217 
218 
218<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
218
219     <!-- /snippets/oldIE-js.liquid -->
220 
221 
222 <!--[if lt IE 9]>
223 
223<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js" type="text/javascript"></script>
223
224 
224<script src="//outerbloom.com/cdn/shop/t/138/assets/respond.min.js?v=52248677837542619231752652418" type="text/javascript"></script>
224
225 <link href="//outerbloom.com/cdn/shop/t/138/assets/respond-proxy.html" id="respond-proxy" rel="respond-proxy" />
226 <link href="//outerbloom.com/search?q=142e9156869335090161dced0ac98b64" id="respond-redirect" rel="respond-redirect" />
227 
227<script src="//outerbloom.com/search?q=142e9156869335090161dced0ac98b64" type="text/javascript"></script>
227
228 <![endif]-->
229 
230 
231 
232   
233     
234   <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">
235 <link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
236 
236<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>
236
237 
237<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":"LINK BARU 5000 PERAK BISA JADI JUTAAN DI SITUS TOTO SLOT7
23777  GACOR INI DUATOTO 2026","vendor":"Outerbloom Florist","id":"8144957800663","untranslatedTitle":"LINK BARU 5000 PERAK BISA JADI JUTAAN DI SITUS TOTO SLOT777  GACOR INI DUATOTO 2026","url":"\/products\/blossom-shine","type":"DUATOTO 2026 hadir dengan akses baru serba cepat dan pilihan permainan Toto & Slot777 dalam satu platform. Nikmati pengalaman bermain praktis dengan nominal mulai Rp5.000 dan berbagai fitur menarik."},"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\":\"LINK BARU 5000 PERAK BISA JADI JUTAAN DI SITUS TOTO SLOT777  GACOR INI DUATOTO 2026\",\"vendor\":\"Outerbloom Florist\",\"id\":\"8144957800663\",\"untranslatedTitle\":\"LINK BARU 5000 PERAK BISA JADI JUTAAN DI SITUS TOTO SLOT777  GACOR INI DUATOTO 2026\",\"url\":\"\/products\/blossom-shine\",\"type\":\"DUATOTO 2026 hadir dengan akses baru serba cepat dan pilihan permainan Toto & Slot777 dalam satu platform. Nikmati pengalaman bermain praktis dengan nominal mulai Rp5.000 dan berbagai fitur menarik.\"},\"id\":\"44083045826775\",\"image\":{\"src\":\"\/\/outerbloom.com\/cdn\/shop\/files\/Blossom-Shine-WM.jpg?v=1695788426\"},\"sku\":\"OBVSTF1086\",\"title\":\"Default Title\",\"untranslatedTitle\":\"Default Title\"}}]]"});</script>
237<script>
238   window.ShopifyAnalytics = window.ShopifyAnalytics || {};
239   window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {};
240   window.ShopifyAnalytics.meta.currency = 'IDR';
241   var meta = {"product":{"id":8144957800663,"gid":"gid:\/\/shopify\/Product\/8144957800663","vendor":"Outerbloom Florist","type":"DUATOTO 2026 hadir dengan akses baru serba cepat dan pilihan permainan Toto & Slot777 dalam satu platform. Nikmati pengalaman bermain praktis dengan nominal mulai Rp5.000 dan berbagai fitur menarik.","variants":[{"id":44083045826775,"price":1000000
242   ,"name":"LINK BARU 5000 PERAK BISA JADI JUTAAN DI SITUS TOTO SLOT777  GACOR INI DUATOTO 2026","public_title":null,"sku":"OBVSTF1086"}],"remote":false},"page":{"pageType":"product","resourceType":"product","resourceId":8144957800663}};
243   for (var attr in meta) {
244     window.ShopifyAnalytics.meta[attr] = meta[attr];
245   }
246 </script>
246
247 
247<script class="analytics">
248   (function () {
249     var customDocumentWrite = function(content) {
250       var jquery = null;
251 
252       if (window.jQuery) {
253         jquery = window.jQuery;
254       } else if (window.Checkout && window.Checkout.$) {
255         jquery = window.Checkout.$;
256       }
257 
258       if (jquery) {
259         jquery('body').append(content);
260       }
261     };
262 
263     var hasLoggedConversion = function(token) {
264       if (token) {
265         return document.cookie.indexOf('loggedConversion=' + token) !== -1;
266       }
267       return false;
268     }
269 
270     var setCookieIfConversion = function(token) {
271       if (token) {
272         var twoMonthsFromNow = new Date(Date.now());
273         twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2);
274 
275         document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow;
276       }
277     }
278 
279     var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || [];
280     if (trekkie.integrations) {
281       return;
282     }
283     trekkie.methods = [
284       'identify',
285       'page',
286       'ready',
287       'track',
288       'trackForm',
289       'trackLink'
290     ];
291     trekkie.factory = function(method) {
292       return function() {
293         var args = Array.prototype.slice.call(arguments);
294         args.unshift(method);
295         trekkie.push(args);
296         return trekkie;
297       };
298     };
299     for (var i = 0; i < trekkie.methods.length; i++) {
300       var key = trekkie.methods[i];
301       trekkie[key] = trekkie.factory(key);
302     }
303     trekkie.load = function(config) {
304       trekkie.config = config || {};
305       trekkie.config.initialDocumentCookie = document.cookie;
306       var first = document.getElementsByTagName('script')[0];
307       var script = document.createElement('script');
308       script.type = 'text/javascript';
309       script.onerror = function(e) {
310         var scriptFallback = document.createElement('script');
311         scriptFallback.type = 'text/javascript';
312         scriptFallback.onerror = function(error) {
313                 var Monorail = {
314       produce: function produce(monorailDomain, schemaId, payload) {
315         var currentMs = new Date().getTime();
316         var event = {
317           schema_id: schemaId,
318           payload: payload,
319           metadata: {
320             event_created_at_ms: currentMs,
321             event_sent_at_ms: currentMs
322           }
323         };
324         return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event));
325       },
326       sendRequest: function sendRequest(endpointUrl, payload) {
327         // Try the sendBeacon API
328         if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) {
329           var blobData = new window.Blob([payload], {
330             type: 'text/plain'
331           });
332 
333           if (window.navigator.sendBeacon(endpointUrl, blobData)) {
334             return true;
335           } // sendBeacon was not successful
336 
337         } // XHR beacon
338 
339         var xhr = new XMLHttpRequest();
340 
341         try {
342           xhr.open('POST', endpointUrl);
343           xhr.setRequestHeader('Content-Type', 'text/plain');
344           xhr.send(payload);
345         } catch (e) {
346           console.log(e);
347         }
348 
349         return false;
350       },
351       isIos12: function isIos12() {
352         return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1;
353       }
354     };
355     Monorail.produce('monorail-edge.shopifysvc.com',
356       'trekkie_storefront_load_errors/1.1',
357       {shop_id: 15896833,
358       theme_id: 153139282135,
359       app_name: "storefront",
360       context_url: window.location.href,
361       source_url: "//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js"});
362 
363         };
364         scriptFallback.async = true;
365         scriptFallback.src = '//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js';
366         first.parentNode.insertBefore(scriptFallback, first);
367       };
368       script.async = true;
369       script.src = '//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js';
370       first.parentNode.insertBefore(script, first);
371     };
372     trekkie.load(
373       {"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}}
374     );
375 
376     var loaded = false;
377     trekkie.ready(function() {
378       if (loaded) return;
379       loaded = true;
380 
381       window.ShopifyAnalytics.lib = window.trekkie;
382 
383       var originalDocumentWrite = document.write;
384       document.write = customDocumentWrite;
385       try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {};
386       document.write = originalDocumentWrite;
387 
388       window.ShopifyAnalytics.lib.page(null,{"pageType":"product","resourceType":"product","resourceId":8144957800663,"shopifyEmitted":true});
389 
390       var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/)
391       var token = match? match[1]: undefined;
392       if (!hasLoggedConversion(token)) {
393         setCookieIfConversion(token);
394         window.ShopifyAnalytics.lib.track("Viewed Product",{"currency":"IDR","variantId":44083045826775,"productId":8144957800663,"productGid":"gid:\/\/shopify\/Product\/8144957800663","name":"LINK BARU 5000 PERAK BISA JADI JUTAAN DI SITUS TOTO SLOT777  GACOR INI DUATOTO 2026","price":"835000.00","sku":"OBVSTF1086","brand":"Outerbloom Florist","variant":null,"category":"DUATOTO 2026 hadir dengan akses baru serba cepat dan pilihan permainan Toto & Slot777 dalam satu platform. Nikmati pengalaman bermain praktis dengan nominal mulai Rp5.000 dan berbagai fitur menarik.","nonInteraction":true,"remote":false},undefined,undefined,{"shopifyEmitted":true});
395       window.ShopifyAnalytics.lib.track("monorail:\/\/trekkie_storefront_viewed_product\/1.1",{"currency":"IDR","variantId":44083045826775,"productId":8144957800663,"productGid":"gid:\/\/shopify\/Product\/8144957800663","name":"LINK BARU 5000 PERAK BISA JADI JUTAAN DI SITUS TOTO SLOT777  GACOR INI DUATOTO 2026","price":"835000.00","sku":"OBVSTF1086","brand":"Outerbloom Florist","variant":null,"category":"DUATOTO 2026 hadir dengan akses baru serba cepat dan pilihan permainan Toto & Slot777 dalam satu platform. Nikmati pengalaman bermain praktis dengan nominal mulai Rp5.000 dan berbagai fitur menarik.","nonInteraction":true,"remote":false,"referer":"https:\/\/outerbloom.com\/products\/blossom-shine"});
396       }
397     });
398 
399 
400         var eventsListenerScript = document.createElement('script');
401         eventsListenerScript.async = true;
402         eventsListenerScript.src = "//outerbloom.com/cdn/shopifycloud/storefront/assets/shop_events_listener-abeef7a0.js";
403         document.getElementsByTagName('head')[0].appendChild(eventsListenerScript);
404 
405 })();</script>
405
406   
406<script>
407   if (!window.ga || (window.ga && typeof window.ga !== 'function')) {
408     window.ga = function ga() {
409       (window.ga.q = window.ga.q || []).push(arguments);
410       if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') {
411         window.Shopify.analytics.publish("ga_stub_called", {}, {sendTo: "google_osp_migration"});
412       }
413       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.");
414     };
415     if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') {
416       window.Shopify.analytics.publish("ga_stub_initialized", {}, {sendTo: "google_osp_migration"});
417     }
418   }
419 </script>
419
420 
420<script
421   defer
422   src="https://outerbloom.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-2.0.13.min.js"
423   data-application="storefront-renderer"
424   data-shop-id="15896833"
425   data-render-region="gcp-asia-southeast1"
426   data-page-type="product"
427   data-theme-instance-id="153139282135"
428   data-theme-name=""
429   data-theme-version=""
430   data-monorail-region="shop_domain"
431   data-resource-timing-sampling-rate="10"
432   data-shs="true"
433   data-shs-beacon="true"
434   data-shs-export-with-fetch="true"
435   data-shs-logs-sample-rate="1"
436 ></script>
436
437
438 
438<script type="application/ld+json">
439{
440  "@context": "https://schema.org",
441  "@type": "Product",
442  "name": "LINK BARU 5000 PERAK BISA JADI JUTAAN DI SITUS TOTO SLOT777  GACOR INI DUATOTO 2026",
443  "image": "https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif",
444  "description": "DUATOTO 2026 hadir dengan akses baru serba cepat dan pilihan permainan Toto & Slot777 dalam satu platform. Nikmati pengalaman bermain praktis dengan nominal mulai Rp5.000 dan berbagai fitur menarik.",
445  "brand": {
446    "@type": "Brand",
447    "name": "DUATOTO"
448  },
449  "sku": "131654989",
450  "mpn": "D-13165594",
451  "url": "https://duatotoperak.com/",
452  "offers": {
453    "@type": "Offer",
454    "url": "https://duatotoperak.com/",
455    "priceCurrency": "USD",
456    "price": "11",
457    "priceValidUntil": "2026-11-25",
458    "itemCondition": "https://schema.org/NewCondition",
459    "availability": "https://schema.org/InStock",
460    "seller": {
461      "@type": "Organization",
462      "name": "DUATOTO"
463    }
464  },
465  "aggregateRating": {
466    "@type": "AggregateRating",
467    "ratingValue": "5.0",
468    "reviewCount": 89426
469  },
470  "review": [
471    {
472      "@type": "Review",
473      "reviewRating": {
474        "@type": "Rating",
475        "ratingValue": "5",
476        "bestRating": "5"
477      },
478      "author": {
479        "@type": "Person",
480        "name": "Andong Matulesi"
481      },
482      "reviewBody": "Ini baru namanya Situs, Hal yang paling menarik dari DUATOTO adalah penyajiannya yang sederhana dan praktis. Pengguna bisa menemukan informasi seputar SITUS TOTO SLOT777  GACOR dalam satu tempat tanpa tampilan yang terasa berlebihan."
483    },
484    {
485      "@type": "Review",
486      "reviewRating": {
487        "@type": "Rating",
488        "ratingValue": "5",
489        "bestRating": "5"
490      },
491      "author": {
492        "@type": "Person",
493        "name": "Baskoro Matumbaman"
494      },
495      "reviewBody": "Gini dong Link terbaik, Menurut saya DUATOTO punya daya tarik tersendiri dibandingkan situs Toto lainnya. Navigasinya terasa praktis, informasi yang ditampilkan cukup jelas, dan keseluruhan tampilannya membuat pengalaman menjelajah menjadi lebih menyenangkan."
496    },
497    {
498      "@type": "Review",
499      "reviewRating": {
500        "@type": "Rating",
501        "ratingValue": "5",
502        "bestRating": "5"
503      },
504      "author": {
505        "@type": "Person",
506        "name": "Casiono Metenteng"
507      },
508      "reviewBody": "Keren sih ini Link Situs terbaik menurutku, DUATOTO tampil cukup menarik dengan konsep link 2026 yang terasa modern dan mudah dipahami. Informasi mengenai Slot777 dan permainan Toto tersusun rapi, sehingga pengalaman menjelajah situs terasa lebih nyaman."
509    }
510  ]
511}
512</script>
vendor: 1 bytes, line 512
512
513<script type="application/ld+json">
514{
515  "@context": "https://schema.org",
516  "@type": "BreadcrumbList",
517  "itemListElement": [
518    {
519      "@type": "ListItem",
520      "position": 1,
521      "name": "DUATOTO",
522      "item": "https://duatotoperak.com/"
523    },
524    {
525      "@type": "ListItem",
526      "position": 2,
527      "name": "Link Terbaru 2026",
528      "item": "https://duatotoperak.com/"
529    },
530    {
531      "@type": "ListItem",
532      "position": 3,
533      "name": "Link Slot777",
534      "item": "https://duatotoperak.com/"
535    },
536    {
537      "@type": "ListItem",
538      "position": 4,
539      "name": "Situs Toto",
540      "item": "https://duatotoperak.com/"
541    },
542    {
543      "@type": "ListItem",
544      "position": 5,
545      "name": "Situs Duatoto",
546      "item": "https://duatotoperak.com/"
547    },
548    {
549      "@type": "ListItem",
550      "position": 6,
551      "name": " Link Duatoto",
552      "item": "https://duatotoperak.com/"
553    },
554    {
555      "@type": "ListItem",
556      "position": 8,
557      "name": "LINK BARU 5000 PERAK BISA JADI JUTAAN DI SITUS TOTO SLOT777  GACOR INI DUATOTO 2026",
558      "item": "https://duatotoperak.com/"
559    }
560  ]
561}
562</script>
562
563		
563<script type="application/ld+json">
564			{
565				"@context": "https://schema.org",
566				"@type": "Organization",
567				"name": "DUATOTO",
568				"url": "https://duatotoperak.com/",
569				"logo": "https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif",
570				"sameAs": ["https://www.facebook.com/duatoto", "https://twitter.com/duatoto", "https://www.instagram.com/duatoto"],
571				"contactPoint": {
572					"@type": "ContactPoint",
573					"telephone": "+62-812-8874-1411",
574					"contactType": "customer support",
575					"areaServed": "ID",
576					"availableLanguage": ["Indonesian", "English"]
577				}
578			}
579		</script>
579
580		
581<script type="application/ld+json">
582{
583  "@context": "https://schema.org",
584  "@type": "FAQPage",
585  "mainEntity": [
586    {
587      "@type": "Question",
588      "name": "Apa itu DUATOTO?",
589      "acceptedAnswer": {
590        "@type": "Answer",
591        "text": "DUATOTO merupakan nama platform yang dikaitkan dengan informasi seputar Slot777 dan situs Toto. Halaman DUATOTO dapat digunakan untuk mengenal layanan, tampilan, serta informasi terbaru yang tersedia pada 2026."
592      }
593    },
594    {
595      "@type": "Question",
596      "name": "Apa yang dimaksud dengan Link 2026 Baru DUATOTO?",
597      "acceptedAnswer": {
598        "@type": "Answer",
599        "text": "Link 2026 Baru DUATOTO merujuk pada alamat akses terbaru yang digunakan untuk menemukan halaman terkait DUATOTO. Pengguna sebaiknya memastikan alamat yang digunakan berasal dari sumber yang benar dan memeriksa kembali informasi sebelum mengaksesnya."
600      }
601    },
602    {
603      "@type": "Question",
604      "name": "Apa saja informasi yang tersedia di DUATOTO?",
605      "acceptedAnswer": {
606        "@type": "Answer",
607        "text": "Informasi yang ditampilkan dapat mencakup pembaruan mengenai Slot777, Toto, fitur platform, navigasi, serta informasi layanan yang berkaitan dengan DUATOTO."
608      }
609    },
610    {
611      "@type": "Question",
612      "name": "Mengapa DUATOTO menggunakan istilah Slot777?",
613      "acceptedAnswer": {
614        "@type": "Answer",
615        "text": "Slot777 merupakan salah satu istilah yang digunakan untuk menggambarkan kategori permainan yang menjadi bagian dari topik DUATOTO. Penyebutan tersebut membantu pengguna memahami fokus informasi yang tersedia pada platform."
616      }
617    },
618    {
619      "@type": "Question",
620      "name": "Apa yang dimaksud dengan situs Toto pesaing Perak?",
621      "acceptedAnswer": {
622        "@type": "Answer",
623        "text": "Situs Toto yang siap bersaing dengan Perak yaitu DUATOTO. Yang membandingkan keberadaan platform dengan situs Toto lain yang sedang dikenal. Perbandingan sebaiknya dilakukan berdasarkan informasi, fitur, keamanan, dan pengalaman penggunaan masing masing platform."
624      }
625    },
626    {
627      "@type": "Question",
628      "name": "Apakah DUATOTO memiliki tampilan yang mudah digunakan?",
629      "acceptedAnswer": {
630        "@type": "Answer",
631        "text": "Kemudahan penggunaan bergantung pada versi halaman dan perangkat yang digunakan. Secara konsep, DUATOTO diarahkan dengan struktur informasi yang ringkas agar pengguna lebih mudah menemukan bagian yang ingin diketahui."
632      }
633    },
634    {
635      "@type": "Question",
636      "name": "Apakah DUATOTO dapat diakses melalui perangkat mobile?",
637      "acceptedAnswer": {
638        "@type": "Answer",
639        "text": "Jika halaman DUATOTO mendukung desain responsif, pengguna dapat membukanya melalui smartphone maupun perangkat lain yang memiliki browser. Tampilan aktual dapat berbeda bergantung pada versi halaman dan perangkat."
640      }
641    },
642    {
643      "@type": "Question",
644      "name": "Bagaimana cara memastikan link DUATOTO yang benar?",
645      "acceptedAnswer": {
646        "@type": "Answer",
647        "text": "Periksa kembali alamat domain sebelum memasukkan informasi apa pun. Hindari tautan yang berasal dari sumber tidak dikenal dan jangan memberikan data pribadi atau kredensial kepada halaman yang tidak dapat diverifikasi."
648      }
649    }
650  ]
651}
652</script>
652
653
654<script type="application/ld+json">
655{
656  "@context": "https://schema.org",
657  "@type": "HowTo",
658  "inLanguage": "id-ID",
659  "name": "Cara Bergabung di DUATOTO dengan Aman, Cepat, dan Praktis",
660  "description": "Panduan lengkap untuk pengguna baru yang ingin membuat akun, mengakses layanan resmi, melakukan transaksi, memilih permainan, dan menikmati pengalaman bermain di DUATOTO secara lebih nyaman dan bertanggung jawab.",
661  "image": "https://duagalery.com/images/2025/11/13/bgdua13.png",
662  "totalTime": "PT5M",
663  "estimatedCost": {
664    "@type": "MonetaryAmount",
665    "currency": "IDR",
666    "value": "5000"
667  },
668  "supply": [
669    {
670      "@type": "HowToSupply",
671      "name": "Nomor handphone atau email aktif"
672    },
673    {
674      "@type": "HowToSupply",
675      "name": "Data pendaftaran yang valid"
676    },
677    {
678      "@type": "HowToSupply",
679      "name": "Metode transaksi yang tersedia"
680    }
681  ],
682  "tool": [
683    {
684      "@type": "HowToTool",
685      "name": "Smartphone, tablet, atau komputer"
686    },
687    {
688      "@type": "HowToTool",
689      "name": "Koneksi internet stabil"
690    }
691  ],
692  "step": [
693    {
694      "@type": "HowToStep",
695      "position": 1,
696      "name": "Kunjungi Akses Resmi DUATOTO",
697      "text": "Buka halaman DUATOTO melalui link resmi atau link alternatif yang terpercaya. Pastikan alamat situs sudah benar sebelum melakukan login atau pendaftaran agar akun tetap aman dari risiko halaman palsu."
698    },
699    {
700      "@type": "HowToStep",
701      "position": 2,
702      "name": "Pilih Menu Daftar",
703      "text": "Pada halaman utama, klik tombol Daftar atau Register untuk memulai pembuatan akun baru. Menu ini biasanya tersedia dengan jelas agar pengguna baru dapat bergabung dengan mudah."
704    },
705    {
706      "@type": "HowToStep",
707      "position": 3,
708      "name": "Lengkapi Formulir Pendaftaran",
709      "text": "Isi seluruh kolom pendaftaran dengan data yang benar, seperti username, password, nomor kontak, dan informasi lain yang diminta. Gunakan password yang kuat dan jangan membagikan data akun kepada siapa pun."
710    },
711    {
712      "@type": "HowToStep",
713      "position": 4,
714      "name": "Login ke Akun DUATOTO",
715      "text": "Setelah pendaftaran berhasil, masuk ke akun menggunakan username dan password yang telah dibuat. Periksa kembali informasi akun sebelum melanjutkan ke tahap berikutnya."
716    },
717    {
718      "@type": "HowToStep",
719      "position": 5,
720      "name": "Pilih Metode Deposit yang Tersedia",
721      "text": "Masuk ke menu deposit dan pilih metode transaksi yang paling nyaman, seperti transfer bank, e-wallet, atau metode lain yang tersedia. Lakukan deposit sesuai kebutuhan dan tetap sesuaikan dengan batas anggaran pribadi."
722    },
723    {
724      "@type": "HowToStep",
725      "position": 6,
726      "name": "Jelajahi Pilihan Provider dan Permainan",
727      "text": "Setelah saldo masuk, buka daftar permainan dan pilih provider yang ingin dimainkan. DUATOTO menyediakan berbagai pilihan game sehingga pengguna dapat memilih permainan sesuai preferensi masing-masing."
728    },
729    {
730      "@type": "HowToStep",
731      "position": 7,
732      "name": "Mulai Bermain dengan Bijak",
733      "text": "Mulailah permainan dengan nominal yang sesuai kemampuan. Nikmati permainan sebagai hiburan, atur batas waktu bermain, dan hindari mengejar kerugian. Tidak ada permainan yang dapat menjamin kemenangan."
734    },
735    {
736      "@type": "HowToStep",
737      "position": 8,
738      "name": "Hubungi Layanan Bantuan Jika Dibutuhkan",
739      "text": "Jika mengalami kendala saat pendaftaran, login, deposit, atau memilih permainan, segera hubungi layanan bantuan resmi DUATOTO untuk mendapatkan panduan lebih lanjut."
740    }
741  ]
742}
743</script>
743
744
745 </head><body
746     data-template="product"
747     id="blossom-shine"
748     class="template-product template-product"
749   >
750     <!-- Google Tag Manager (noscript) -->
vendor: 90 bytes, lines 750-753
750
751     <noscript
752       ><iframe
753         src="https://www.googletagmanager.com/ns.html?id=
753GTM-MF9VVZX
vendor: 129 bytes, lines 753-759
753"
754         height="0"
755         width="0"
756         style="display:none;visibility:hidden"
757       ></iframe
758     ></noscript>
759     
759<!-- End Google Tag Manager (noscript) -->
760 
761     
762 
763     <div class="header-wrapper">
764       
765       <div id="shopify-section-NotifBar" class="shopify-section m-0">
766 
767 <style>
768   #notification {z-index: 99;width: 100%;transition: top 0.2s ease-in-out;}
769   #notification.promo-up {top: -48px!important;}
770   .promo-bg {width: 100%;padding: 6px 0;background: linear-gradient(to bottom, #ff4d7a 0%, #000000  50%, #ff4d7a 100%);}
771   .notification__message p {margin: 0;color: #ffffff;font-size: 20px!important; font-weight: bold;}
772   .notification__message p a {text-decoration: underline;color: #ffffff;}
773   @media (max-width: 991px){.notification__message p {font-size: 14px!important;}}
774  @media (max-width: 992px) {.header-container {padding: 15px 20px;z-index: 99;background-color: #000000;width: 100%;left: 0;}
775}
776 </style>
777 <input id="clearCookie" class="hide" type="button" value="Delete Cookie" />
778 <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">
779   <div class="page-width notification__inner ">
780     
781     
782     <div class="notification__message text-center">
783       <p>Selamat Datang Di DUATOTO LINK BARU 5000 PERAK BISA JADI JUTAAN DI SITUS TOTO SLOT777  GACOR</p>
784     </div>
785   </div>
786 </div>
787 
788 
789 
790 
791 </div>
792       <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"/>
793 
794 
795 <header style="background: black;">
796   <div class="container">
797     <div class="header-container row justify-content-between pl-lg-0 pr-lg-0">
798         <a href="https://duatotoperak.com/">
799         <img src="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" alt="LOGO DUATOTO" style="width: 190px;"></a>
800       <link href="https://duagalery.com/images/2026/08/12/iconduatoto.png" rel="shortcut icon" type="image/x-icon" />
801         <div id="menu-hamburger" class="d-lg-none">
802           <svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="16" height="10" viewBox="0 0 16 10" fill="none">
803   <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"/>
804 </svg>
805 
806         <a href="/"><svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" viewBox="0 0 854 78.29">
807   <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>
808 </svg>
809 </a>
810       </div>
811 
812       <div class="header-icon-right header-icons col-3">
813         <div class="icon icon-account-header d-none d-lg-block">
814           <a href="https://duatotoperak.com/">
815             <svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="20" height="21" viewBox="0 0 20 21" fill="none">
816   <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"/>
817   <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"/>
818 </svg>
819 
820           </a>
821         </div>
822         <div class="icon icon-wishlist-header">
823           <a href="https://duatotoperak.com/">
824             <svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="24" height="21" viewBox="0 0 24 21" fill="none">
825   <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
8256 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"/>
826 </svg>
827 
828             <span class="wishlist-count d-none">0</span>
829           </a>
830         </div>
831         <div class="icon icon-cart-header">
832           <a href="https://duatotoperak.com/">
833             <svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="22" height="21" viewBox="0 0 22 21" fill="none">
834   <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"/>
835   <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"/>
836 </svg>
837 
838           </a>
839         </div>
840       </div>
841     </div>
842   </div>
843 </header>
844 
845 <nav class="nav-header" style="background: linear-gradient(to bottom, #ff4d7a 0%, #000000  50%, #ff4d7a 100%);">
846   <div class="nav-account-mobile row m-0 d-lg-none">
847     <div class="col-6 welcome-cust p-0">
848       
849         <h1 class="logo">
850     <a href="https://duatotoperak.com/">
851         <img src="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" alt="DUATOTO" style="max-height:60px;">
852     </a>
853 </h1>
854 
855       
856     </div>
857     
858       <div class="col-6 login-register text-right p-0">
859         <a href="https://duaperak-amp02.firehostapp.com/">Log In</a> | <a href="https://duaperak-amp02.firehostapp.com/">Sign Up</a>
860       </div>
861   </div>
862   <ul class="nav-menu container">
863     
864       <li class="nav-menu container">
865         <a href="https://duatotoperak.com/">
866           <span style="color: #ffffff;">DUATOTO</span>
867         
868     
869       <li class=" nav-menu container">
870         <a href="https://duatotoperak.com/">
871           <span style="color: #ffffff;">DUATOTO DAFTAR</span>
872           
873     
874       <li class=" nav-menu container">
875         <a href="https://duatotoperak.com/">
876           <span style="color: #ffffff;">DUATOTO LOGIN</span>
877     
878       <li class=" nav-menu container">
879         <a href="https://duatotoperak.com/">
880           <span style="color: #ffffff;">DUATOTO LINK</span>
881           
882       <li class=" nav-menu container">
883         <a href="https://duatotoperak.com/">
884           <span style="color: #ffffff;">DUATOTO RESMI</span>
885 
886       <li class=" nav-menu container">
887         <a href="https://duatotoperak.com/">
888           <span style="color: #ffffff;">SLOT777 DUATOTO</span>
889 
890       <li class=" nav-menu container">
891         <a href="https://duatotoperak.com/">
892           <span style="color: #ffffff;">SITUS TOTO DUATOTO</span>
893       
894 <div class="overlay-nav">
895   <!-- Mobile Close Button in Overlay -->
896   <button id="nav-close" class="nav-close-btn d-lg-none">
897     <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif">
898       <path d="M18 6L6 18M6 6L18 18" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
899     </svg>
900   </button>
901 </div>
902 
903 
903<script>
904   if ($(window).width() < 992) {
905     // Level 1 menu accordion (main menu items)
906     $(".nav-menu .nav-menu container > a").click(function(e){
907       e.preventDefault()
908       const parentLi = $(this).parent()
909       const isCurrentlyOpen = parentLi.hasClass("menu-open")
910       
911       // Close all other open menus (accordion behavior)
912       $(".nav-menu .nav-menu container").not(parentLi).removeClass("menu-open")
913       $(".nav-menu .megamenu").not($(this).next(".megamenu")).slideUp()
914       
915       // Toggle current menu
916       if (isCurrentlyOpen) {
917         parentLi.removeClass("menu-open")
918         $(this).next(".megamenu").slideUp()
919       } else {
920         parentLi.addClass("menu-open")
921         $(this).next(".megamenu").slideDown()
922       }
923     })
924 
925     // Level 2 menu accordion (submenu items with grandchildren)
926     $(document).on('click', '.dropdown-menu .has-submenu > a', function(e){
927       e.preventDefault()
928       const parentLi = $(this).parent()
929       const isCurrentlyOpen = parentLi.hasClass("submenu-open")
930       const grandchild = $(this).next(".grandchild")
931       
932       // Close all other open submenus in the same dropdown (accordion behavior)
933       parentLi.siblings('.has-submenu').removeClass("submenu-open")
934       parentLi.siblings('.has-submenu').find('.grandchild').slideUp()
935       parentLi.siblings('.has-submenu').find('.chevron-right').css('transform', 'rotate(0deg)')
936       
937       // Toggle current submenu
938       if (isCurrentlyOpen) {
939         parentLi.removeClass("submenu-open")
940         grandchild.slideUp()
941         $(this).find('.chevron-right').css('transform', 'rotate(0deg)')
942       } else {
943         parentLi.addClass("submenu-open")
944         grandchild.slideDown()
945         $(this).find('.chevron-right').css('transform', 'rotate(90deg)')
946       }
947     })
948 
949     $("#menu-hamburger").click(function(e){
950       e.preventDefault()
951       $("body").toggleClass("nav_open")
952     })
953     
954     // Handle close button click
955     $("#nav-close").click(function(e){
956       e.preventDefault()
957       $("body").removeClass("nav_open")
958       // Close all open menus when close button is clicked
959       $(".nav-menu .nav-menu container").removeClass("menu-open")
960       $(".nav-menu .megamenu").slideUp()
961       $(".dropdown-menu .has-submenu").removeClass("submenu-open")
962       $(".dropdown-menu .grandchild").slideUp()
963       $(".dropdown-menu .chevron-right").css('transform', 'rotate(0deg)')
964     })
965   }
966 
967   $(".overlay-nav").click(function(e){
968       e.preventDefault()
969       $("body").removeClass("nav_open")
970       // Close all open menus when overlay is clicked
971       $(".nav-menu .nav-menu container").removeClass("menu-open")
972       $(".nav-menu .megamenu").slideUp()
973       $(".dropdown-menu .has-submenu").removeClass("submenu-open")
974       $(".dropdown-menu .grandchild").slideUp()
975       $(".dropdown-menu .chevron-right").css('transform', 'rotate(0deg)')
976   })
977 </script>
977
978 
979 
980 </div>
981 
982       <div id="shopify-section-search-popup" class="shopify-section m-0"><style>
983   #search-trigger {
984     cursor: pointer;
985   }
986   #search-popup {
987     display: none;
988     position: fixed;
989     left: 0;
990     width: 100%;
991     top: 0;
992     height: 100%;
993     justify-content: center;
994     z-index: 9999;
995     background: rgb(196 196 196 / 30%);
996   }
997   #search-input {
998     align-self: center;
999     width: 100%;
1000     height: 80px;
1001     position: absolute;
1002     top: 0;
1003     border-bottom: 0.5px solid #A3A3A3;
1004     background-color: #fff;
1005   }
1006   #search-input * {
1007     align-self: center;
1008   }
1009   #search-type {
1010     width: 100%;
1011     border: none;
1012     padding-right: 20px;
1013     padding-left: 20px;
1014     font-size: 16px;
1015     color: #757575;
1016   }
1017   #search-btn {
1018     font-size: 16px;
1019     font-weight: 500;
1020   }
1021   #search-result {
1022     min-height: 490px;
1023     width: 100%;
1024     padding-top: 80px;
1025   }
1026   #search-result .container {
1027     background-color: #fff;
1028     padding: 20px 40px;
1029   }
1030   body.search-popup-open {
1031   /* .search-popup-open */
1032     overflow: hidden;
1033   }
1034   .search-popup-open #loc_delivery {
1035     display: none
1036   }
1037   .search-header svg {
1038     display: none;
1039     cursor: pointer;
1040   }
1041   .wrapper-search-popup {
1042     max-height: calc(100vh - 150px);
1043     overflow-y: auto;
1044     overflow-x: hidden;
1045   }
1046 
1047   .group-recommend {
1048     padding: 20px 40px;
1049   }
1050 
1051   .resultsearch {
1052     display: none;
1053   }
1054   .results { padding: 20px 40px }
1055   .resultsearch label {
1056     font-weight: 600;
1057     padding-bottom: 20px;
1058     display: block;
1059     margin-bottom: 20px;
1060     border-bottom: 1px solid #AAAAAA;
1061   }
1062 
1063   ul.result_product {
1064     max-height: 300px;
1065     overflow: auto;
1066   }
1067 
1068   .group-promotion ul {
1069     margin: 0;
1070   }
1071   .group-promotion li {
1072     list-style: none;
1073     margin-bottom: 12px;
1074   }
1075   .group-promotion li a {
1076     color: inherit;
1077   }
1078 
1079   .group-recent {
1080     position: relative;
1081     padding: 20px 40px;
1082   }
1083   .group-recent ul {
1084     margin: 0;
1085   }
1086   .group-recent li {
1087     list-style: none;
1088     display: inline-block;
1089     margin-right: 60px;
1090   }
1091   .group-recent li a {
1092     color: inherit;
1093   }
1094 
1095   .last-search svg {
1096     width: 20px;
1097     vertical-align: middle;
1098   }
1099   ul.last-search a {
1100     vertical-align: middle;
1101     padding: 0 10px;
1102   }
1103   ul.last-search li span {
1104     cursor: pointer;
1105   }
1106   .delete-all-history {
1107     position: absolute;
1108     top: 25px;
1109     right: 40px;
1110     text-decoration: underline;
1111     color: #e11d1d;
1112     cursor: pointer;
1113     font-size: 12px;
1114   }
1115 
1116   form.search.search-modal__form {
1117     position: relative;
1118   }
1119 
1120   button.search__button svg {
1121     width: 25px;
1122     color: #495057;
1123     fill: #757582;
1124   }
1125 
1126   button.search__button.field__button {
1127     position: absolute;
1128     top: 50%;
1129     margin-top: -12px;
1130   }
1131 
1132   .close-search {
1133     display: none;
1134     position: absolute;
1135     right: 65px;
1136     top: 10px;
1137     cursor: pointer;
1138   }
1139 
1140   .site-overlay {
1141     position: fixed;
1142     top: 0;
1143     width: 100vw;
1144     height: 100vh;
1145     z-index: 1000;
1146     background: #0000005c;
1147     visibility: hidden;
1148     opacity: 0;
1149     pointer-events: none;
1150     transition: all .3s linear;
1151     display: block !important;
1152   }
1153 
1154   .search-popup-open .site-overlay {
1155     opacity: 1;
1156     visibility: visible;
1157     pointer-events: all;
1158     z-index: -1;
1159     cursor: pointer;
1160   }
1161 
1162   @media (min-width: 991px) {
1163     .group-recent ul {
1164       column-count: 3;
1165     }
1166     .group-promotion li a {
1167       font-size: 12px;
1168       font-weight: 400;
1169     }
1170     .group-recent li a {
1171       font-size: 12px;
1172       font-weight: 400;
1173     }
1174   }
1175 
1176   .moreresult {
1177     padding: 10px 40px;
1178     border-top: 1px solid #AAAAAA;
1179   }
1180   .moreresult * {
1181     align-self: center;
1182   }
1183   .moreresult p {
1184     margin: 0;
1185     font-size: 12px !important;
1186   }
1187   .moreresult svg {
1188     width: 13px;
1189   }
1190 
1191   @media (max-width: 992px) {
1192     .icon-key-mobile {
1193         height: auto!important;
1194         width: 10px!important;
1195     }
1196     body.grid-view.search-popup-open .products {
1197       -ms-flex: 0 0 100%!important;
1198       flex: 0 0 100%!important;
1199       max-width: 100%!important;
1200     }
1201     button.search__button svg {
1202       width: 20px;
1203     }
1204     #search-result {
1205       padding-left: 0;
1206       padding-right: 0;
1207     }
1208     #search-result {
1209       padding-top: 55px;
1210     }
1211     #search-input {
1212       height: 55px;
1213     }
1214     .group-recommend {
1215       padding: 20px;
1216     }
1217     #search-input .container {
1218       padding: 0 20px;
1219     }
1220     #search-type {
1221       font-size: 14px;
1222     }
1223     #search-btn {
1224       font-size: 12px;
1225       text-decoration: underline;
1226     }
1227     .results {
1228       padding: 20px;
1229     }
1230     .group-recommend h3 {
1231       font-size: 16px;
1232     }
1233     .products .card-body {
1234       padding: 8px 0px 10px;
1235     }
1236     .moreresult {
1237       padding: 10px 20px;
1238     }
1239   }
1240 </style>
1241  <style type="text/css">
1242         div.advertisement-placeholder {
1243             text-align: center;
1244             padding-bottom: 20px;
1245             display: flex;
1246             flex-direction: column;
1247             justify-content: center;
1248         }
1249         div.advertisement-text p {
1250             margin: 0;
1251             font-family: Open Sans;
1252             font-style: normal;
1253             font-weight: normal;
1254             font-size: 10px;
1255             line-height: 20px;
1256             color: #999999;
1257         }
1258         div.advertisement-banner {
1259             margin: 0px auto;
1260         }
1261         div#div-gpt-ad-billboard-placeholder {
1262             width: 996px;
1263             margin: 0 auto;
1264             background: #F5F5F5;
1265             padding-bottom: unset !important;
1266             min-height: 200px;
1267         }
1268         div#div-gpt-ad-lb-placeholder {
1269             background: #F5F5F5;
1270             padding-bottom: unset !important;
1271             min-height: 280px;
1272         }
1273         .faq-section{
1274             max-width:1200px;
1275             margin:50px auto;
1276             padding:40px 20px;
1277             position:relative;
1278             background-color: rgba(0, 0, 0, 0.1);
1279             backdrop-filter: blur(25px);
1280             border-radius: 20px;
1281             }
1282         
1283         .faq-section::before{
1284             content:"";
1285             position:absolute;
1286             top:0;left:50%;
1287             transform:translateX(-50%);
1288             width:80%;
1289             height:2px;
1290             background:linear-gradient(90deg,transparent,#ff4d7a,transparent)
1291             }
1292             
1293         .faq-section h2{
1294             text-align:center;
1295             font-size:34px;font-weight:700;
1296             margin-bottom:50px;
1297             background: linear-gradient(135deg, #676767, #ebebeb, #67676
12977);
1298             -webkit-background-clip:text;
1299             -webkit-text-fill-color:transparent;
1300             background-clip:text;
1301             font-family:"Poppins",sans-serif;letter-spacing:1px
1302         }
1303         
1304         .faq-container{
1305             display:flex;
1306             flex-direction:column;
1307             gap:25px
1308         }
1309         
1310         .faq-item{
1311             background:linear-gradient(145deg,#0a0a0a,#1a1a1a);
1312             border:2px solid #ff4d7a;
1313             border-radius:20px;overflow:hidden;
1314             transition:all .4s ease;box-shadow:0 5px 20px rgba(0,0,0,0.5)
1315         }
1316         
1317         .faq-item:hover{
1318             border-color:#ff4d7a;
1319             transform:translateX(10px);
1320             box-shadow:0 12px 35px rgba(253, 4, 4, 0.25)
1321         }
1322 
1323         .faq-question{width:100%;
1324             padding:28px 35px;background:transparent;
1325             color:#ffffff;
1326             font-size:18px;
1327             font-weight:600;
1328             text-align:left;
1329             border:none;cursor:pointer;
1330             display:flex;
1331             justify-content:space-between;
1332             align-items:center;
1333             font-family:"Poppins",sans-serif;
1334             transition:all .3s ease
1335         }
1336         
1337         .faq-question:hover{
1338             color:#ff4d7a
1339         }
1340         
1341         .faq-question::after{
1342             content:'+';
1343             font-size:32px;
1344             font-weight:300;
1345             transition:all .4s ease;
1346             color:#ff4d7a;
1347             width:40px;
1348             height:40px;
1349             display:flex;
1350             align-items:center;
1351             justify-content:center;
1352             border:2px solid #ff4d7a;border-radius:50%;
1353             background:rgba(0, 0, 0, 0.1)
1354         }
1355         
1356         .faq-item.active .faq-question::after{
1357             transform:rotate(135deg);
1358             background:linear-gradient(to bottom, #470000 0%, #ff4d7a 50%, #470000 100%);
1359             color:#000;border-color:transparent
1360         }
1361         
1362         .faq-answer{
1363             max-height:0;
1364             overflow:hidden;
1365             transition:max-height .5s ease,padding .5s ease;
1366             background:linear-gradient(180deg,rgba(253,228,4,0.05),transparent);
1367             padding:0 35px
1368         }
1369         
1370         .faq-item.active .faq-answer{
1371             max-height:800px;padding:30px 35px;
1372             border-top:1px solid rgba(253, 199, 4, 0.3)
1373         }
1374         
1375         .faq-answer p{
1376             color:#e0e0e0;
1377             font-size:16px;
1378             line-height:2;
1379             margin:0;
1380             font-family:"Poppins",sans-serif
1381         }
1382 
1383         @media
1384             (max-width:768px)
1385         {
1386         
1387         .faq-section
1388             {padding:30px 15px}
1389         
1390         .faq-section h2
1391             {font-size:26px}
1392         
1393         .faq-question
1394             {font-size:16px;
1395             padding:22px 25px}
1396         
1397         .faq-question::after
1398             {width:35px;
1399             height:35px;
1400             font-size:28px}
1401         
1402         .faq-answer
1403             {padding:0 25px}
1404         
1405         .faq-item.active .faq-answer
1406             {padding:25px}
1407         
1408         .faq-item:hover
1409             {transform:translateX(5px)}
1410             }
1411     </style>
1412 <div id="search-popup">
1413   <div id="search-input" class="row">
1414     <div class="container w-100">
1415       <form
1416         action="/search"
1417         method="get"
1418         role="search"
1419         class="search search-modal__form d-flex justify-content-between"
1420       >
1421         <svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="20" height="20" viewBox="0 0 20 20" fill="none">
1422   <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"/>
1423 </svg>
1424 
1425         <input type="hidden" name="type" value="product">
1426         <input
1427           type="text"
1428           id="search-type"
1429           name="q"
1430           class="search-popup"
1431           placeholder="Gifts that linger: Uncover treasures for cherished moments."
1432         >
1433         <div class="close-search"><svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="18" height="18" viewBox="0 0 18 18" fill="none">
1434   <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 
143412.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"/>
1435 </svg>
1436 </div>
1437         <button id="search-btn">Search</button>
1438       </form>
1439     </div>
1440   </div>
1441   <div id="search-result" class="container m-auto">
1442     <div class="container p-0">
1443       <div class="group-promotion">
1444         <div class="resultsearch">
1445           <div class="row results">
1446             <div class="col-12 col-lg-6 mb-3 mb-lg-0">
1447               <label>SUGGESTIONS</label>
1448               <ul class="result_collection"></ul>
1449             </div>
1450             <div class="col-12 col-lg-6">
1451               <label>PRODUCTS</label>
1452               <ul class="result_product"></ul>
1453             </div>
1454           </div>
1455           <div class="d-flex justify-content-between moreresult m-0">
1456             <p>Search for<span></span></p>
1457             <svg version="1.1" xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="32" height="32" viewBox="0 0 32 32">
1458 <title>icon-arrow-right</title>
1459 <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>
1460 </svg>
1461           </div>
1462         </div>
1463       </div>
1464       <div class="group-recent hide">
1465         <h3>RECENT SEARCH</h3>
1466         <span class="delete-all-history">Hapus riwayat</span>
1467         <ul class="last-search"></ul>
1468       </div>
1469       <div class="group-recommend">
1470         <h3>YOU MAY ALSO LIKE</h3>
1471         
1472         
1473           <div class="row popup-recommend c-products-grid infinite-case product-multi-">
1474             <div class="swiper-wrapper justify-content-between" style="margin-left:1px;">
1475               
1476                 
1477                   <div class="swiper-slide card">
1478                     
1479 
1480 
1481 
1482 <div class="products" data-lazy="false">
1483   <div class="bg-products">
1484     <div class="wishlist-toggle" data-product-handle="mid-autumn-of-love-mooncake">
1485       <svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="24" height="21" viewBox="0 0 24 21" fill="none">
1486   <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.
148611233C11.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"/>
1487 </svg>
1488 
1489     </div>
1490     <a href="/products/mid-autumn-of-love-mooncake">
1491       
1492       <div class="product-card-img-container p-0 position-relative">
1493         
1494         <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">
1495       </div>
1496       <div class="card-body product-card-info">
1497         <h5 class="h5 mb-0">
1498           Mid Autumn of Love Mooncake
1499         </h5>
1500         <div class="product-card-price">
1501           
1502           <div class="product-price-sale">
1503             <s class="product-card-price-before card-money">Rp 588.000</s>
1504             <span class="product-card-discount small">	
1505               (-40%)
1506             </span> 	
1507           </div>
1508           
1509           
1510           
1511           <div class="price-discount">
1512             <h4 class="product-card-price-after card-money">Rp 348.000</h4>
1513           </div>
1514           
1515           
1516           
1517           
1518           
1519         </div>
1520         
1521       </div>
1522     </a>
1523   </div>
1524   
1525 </div>
1526 
1527                   </div>
1528                 
1529               
1530                 
1531                   <div class="swiper-slide card">
1532                     
1533 
1534 
1535 
1536 <div class="products" data-lazy="false">
1537   <div class="bg-products">
1538     <div class="wishlist-toggle" data-product-handle="mid-autumn-of-joy-mooncake">
1539       <svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="24" height="21" viewBox="0 0 24 21" fill="none">
1540   <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.
154011233C11.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"/>
1541 </svg>
1542 
1543     </div>
1544     <a href="/products/mid-autumn-of-joy-mooncake">
1545       
1546       <div class="product-card-img-container p-0 position-relative">
1547         
1548         <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">
1549       </div>
1550       <div class="card-body product-card-info">
1551         <h5 class="h5 mb-0">
1552           Mid Autumn of Joy Mooncake
1553         </h5>
1554         <div class="product-card-price">
1555           
1556           <div class="product-price-sale">
1557             <s class="product-card-price-before card-money">Rp 888.000</s>
1558             <span class="product-card-discount small">	
1559               (-33%)
1560             </span> 	
1561           </div>
1562           
1563           
1564           
1565           <div class="price-discount">
1566             <h4 class="product-card-price-after card-money">Rp 588.000</h4>
1567           </div>
1568           
1569           
1570           
1571           
1572           
1573         </div>
1574         
1575       </div>
1576     </a>
1577   </div>
1578   
1579 </div>
1580 
1581                   </div>
1582                 
1583               
1584                 
1585                   <div class="swiper-slide card">
1586                     
1587 
1588 
1589 
1590 <div class="products" data-lazy="false">
1591   <div class="bg-products">
1592     <div class="wishlist-toggle" data-product-handle="mid-autumn-of-fortune-mooncake">
1593       <svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="24" height="21" viewBox="0 0 24 21" fill="none">
1594   <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.
159411233C11.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"/>
1595 </svg>
1596 
1597     </div>
1598     <a href="/products/mid-autumn-of-fortune-mooncake">
1599       
1600       <div class="product-card-img-container p-0 position-relative">
1601         
1602         <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">
1603       </div>
1604       <div class="card-body product-card-info">
1605         <h5 class="h5 mb-0">
1606           Mid Autumn of Fortune Mooncake
1607         </h5>
1608         <div class="product-card-price">
1609           
1610           <div class="product-price-sale">
1611             <s class="product-card-price-before card-money">Rp 1.188.000</s>
1612             <span class="product-card-discount small">	
1613               (-33%)
1614             </span> 	
1615           </div>
1616           
1617           
1618           
1619           <div class="price-discount">
1620             <h4 class="product-card-price-after card-money">Rp 788.000</h4>
1621           </div>
1622           
1623           
1624           
1625           
1626           
1627         </div>
1628         
1629       </div>
1630     </a>
1631   </div>
1632   
1633 </div>
1634 
1635                   </div>
1636                 
1637               
1638                 
1639                   <div class="swiper-slide card">
1640                     
1641 
1642 
1643 
1644 <div class="products" data-lazy="false">
1645   <div class="bg-products">
1646     <div class="wishlist-toggle" data-product-handle="mid-autumn-festival-mooncake">
1647       <svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="24" height="21" viewBox="0 0 24 21" fill="none">
1648   <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.
164811233C11.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"/>
1649 </svg>
1650 
1651     </div>
1652     <a href="/products/mid-autumn-festival-mooncake">
1653       
1654       <div class="product-card-img-container p-0 position-relative">
1655         
1656         <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">
1657       </div>
1658       <div class="card-body product-card-info">
1659         <h5 class="h5 mb-0">
1660           Mid Autumn Festival Mooncake
1661         </h5>
1662         <div class="product-card-price">
1663           
1664           <div class="product-price-sale">
1665             <s class="product-card-price-before card-money">Rp 1.288.000</s>
1666             <span class="product-card-discount small">	
1667               (-23%)
1668             </span> 	
1669           </div>
1670           
1671           
1672           
1673           <div class="price-discount">
1674             <h4 class="product-card-price-after card-money">Rp 988.000</h4>
1675           </div>
1676           
1677           
1678           
1679           
1680           
1681         </div>
1682         
1683       </div>
1684     </a>
1685   </div>
1686   
1687 </div>
1688 
1689                   </div>
1690                 
1691               
1692                 
1693                   <div class="swiper-slide card">
1694                     
1695 
1696 
1697 
1698 <div class="products" data-lazy="false">
1699   <div class="bg-products">
1700     <div class="wishlist-toggle" data-product-handle="the-jade-bouquet">
1701       <svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="24" height="21" viewBox="0 0 24 21" fill="none">
1702   <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.
170211233C11.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"/>
1703 </svg>
1704 
1705     </div>
1706     <a href="/products/the-jade-bouquet">
1707       
1708       <div class="product-card-img-container p-0 position-relative">
1709         
1710         <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">
1711       </div>
1712       <div class="card-body product-card-info">
1713         <h5 class="h5 mb-0">
1714           The Jade Bouquet
1715         </h5>
1716         <div class="product-card-price">
1717           
1718           <div class="product-price-sale">
1719             <s class="product-card-price-before card-money">Rp 435.000</s>
1720             <span class="product-card-discount small">	
1721               (-34%)
1722             </span> 	
1723           </div>
1724           
1725           
1726           
1727           <div class="price-discount">
1728             <h4 class="product-card-price-after card-money">Rp 285.000</h4>
1729           </div>
1730           
1731           
1732           
1733           
1734           
1735         </div>
1736         
1737       </div>
1738     </a>
1739   </div>
1740   
1741 </div>
1742 
1743                   </div>
1744                 
1745               
1746                 
1747                   <div class="swiper-slide card">
1748                     
1749 
1750 
1751 
1752 <div class="products" data-lazy="false">
1753   <div class="bg-products">
1754     <div class="wishlist-toggle" data-product-handle="the-selena-bouquet">
1755       <svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="24" height="21" viewBox="0 0 24 21" fill="none">
1756   <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.
175611233C11.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"/>
1757 </svg>
1758 
1759     </div>
1760     <a href="/products/the-selena-bouquet">
1761       
1762       <div class="product-card-img-container p-0 position-relative">
1763         
1764         <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">
1765       </div>
1766       <div class="card-body product-card-info">
1767         <h5 class="h5 mb-0">
1768           The Selena Bouquet
1769         </h5>
1770         <div class="product-card-price">
1771           
1772           <div class="product-price-sale">
1773             <s class="product-card-price-before card-money">Rp 335.000</s>
1774             <span class="product-card-discount small">	
1775               (-29%)
1776             </span> 	
1777           </div>
1778           
1779           
1780           
1781           <div class="price-discount">
1782             <h4 class="product-card-price-after card-money">Rp 235.000</h4>
1783           </div>
1784           
1785           
1786           
1787           
1788           
1789         </div>
1790         
1791       </div>
1792     </a>
1793   </div>
1794   
1795 </div>
1796 
1797                   </div>
1798                 
1799               
1800                 
1801                   <div class="swiper-slide card">
1802                     
1803 
1804 
1805 
1806 <div class="products" data-lazy="false">
1807   <div class="bg-products">
1808     <div class="wishlist-toggle" data-product-handle="the-viola-bouquet">
1809       <svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="24" height="21" viewBox="0 0 24 21" fill="none">
1810   <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.
181011233C11.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"/>
1811 </svg>
1812 
1813     </div>
1814     <a href="/products/the-viola-bouquet">
1815       
1816       <div class="product-card-img-container p-0 position-relative">
1817         
1818         <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">
1819       </div>
1820       <div class="card-body product-card-info">
1821         <h5 class="h5 mb-0">
1822           The Viola Bouquet
1823         </h5>
1824         <div class="product-card-price">
1825           
1826           <div class="product-price-sale">
1827             <s class="product-card-price-before card-money">Rp 385.000</s>
1828             <span class="product-card-discount small">	
1829               (-25%)
1830             </span> 	
1831           </div>
1832           
1833           
1834           
1835           <div class="price-discount">
1836             <h4 class="product-card-price-after card-money">Rp 285.000</h4>
1837           </div>
1838           
1839           
1840           
1841           
1842           
1843         </div>
1844         
1845       </div>
1846     </a>
1847   </div>
1848   
1849 </div>
1850 
1851                   </div>
1852                 
1853               
1854                 
1855                   <div class="swiper-slide card">
1856                     
1857 
1858 
1859 
1860 <div class="products" data-lazy="false">
1861   <div class="bg-products">
1862     <div class="wishlist-toggle" data-product-handle="the-minerva-bouquet">
1863       <svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="24" height="21" viewBox="0 0 24 21" fill="none">
1864   <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.
186411233C11.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"/>
1865 </svg>
1866 
1867     </div>
1868     <a href="/products/the-minerva-bouquet">
1869       
1870       <div class="product-card-img-container p-0 position-relative">
1871         
1872         <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">
1873       </div>
1874       <div class="card-body product-card-info">
1875         <h5 class="h5 mb-0">
1876           The Minerva Bouquet
1877         </h5>
1878         <div class="product-card-price">
1879           
1880           <div class="product-price-sale">
1881             <s class="product-card-price-before card-money">Rp 385.000</s>
1882             <span class="product-card-discount small">	
1883               (-25%)
1884             </span> 	
1885           </div>
1886           
1887           
1888           
1889           <div class="price-discount">
1890             <h4 class="product-card-price-after card-money">Rp 285.000</h4>
1891           </div>
1892           
1893           
1894           
1895           
1896           
1897         </div>
1898         
1899       </div>
1900     </a>
1901   </div>
1902   
1903 </div>
1904 
1905                   </div>
1906                 
1907               
1908                 
1909                   <div class="swiper-slide card">
1910                     
1911 
1912 
1913 
1914 <div class="products" data-lazy="false">
1915   <div class="bg-products">
1916     <div class="wishlist-toggle" data-product-handle="congraduations-bouquet">
1917       <svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="24" height="21" viewBox="0 0 24 21" fill="none">
1918   <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.
191811233C11.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"/>
1919 </svg>
1920 
1921     </div>
1922     <a href="/products/congraduations-bouquet">
1923       
1924       <div class="product-card-img-container p-0 position-relative">
1925         
1926         <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">
1927       </div>
1928       <div class="card-body product-card-info">
1929         <h5 class="h5 mb-0">
1930           Congraduations Bouquet
1931         </h5>
1932         <div class="product-card-price">
1933           
1934           <div class="product-price-sale">
1935             <s class="product-card-price-before card-money">Rp 380.000</s>
1936             <span class="product-card-discount small">	
1937               (-25%)
1938             </span> 	
1939           </div>
1940           
1941           
1942           
1943           <div class="price-discount">
1944             <h4 class="product-card-price-after card-money">Rp 285.000</h4>
1945           </div>
1946           
1947           
1948           
1949           
1950           
1951         </div>
1952         
1953       </div>
1954     </a>
1955   </div>
1956   
1957 </div>
1958 
1959                   </div>
1960                 
1961               
1962                 
1963                   <div class="swiper-slide card">
1964                     
1965 
1966 
1967 
1968 <div class="products" data-lazy="false">
1969   <div class="bg-products">
1970     <div class="wishlist-toggle" data-product-handle="grad-gorgeous-bouquet">
1971       <svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="24" height="21" viewBox="0 0 24 21" fill="none">
1972   <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.
197211233C11.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"/>
1973 </svg>
1974 
1975     </div>
1976     <a href="/products/grad-gorgeous-bouquet">
1977       
1978       <div class="product-card-img-container p-0 position-relative">
1979         
1980         <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">
1981       </div>
1982       <div class="card-body product-card-info">
1983         <h5 class="h5 mb-0">
1984           Grad & Gorgeous Bouquet
1985         </h5>
1986         <div class="product-card-price">
1987           
1988           <div class="product-price-sale">
1989             <s class="product-card-price-before card-money">Rp 380.000</s>
1990             <span class="product-card-discount small">	
1991               (-25%)
1992             </span> 	
1993           </div>
1994           
1995           
1996           
1997           <div class="price-discount">
1998             <h4 class="product-card-price-after card-money">Rp 285.000</h4>
1999           </div>
2000           
2001           
2002           
2003           
2004           
2005         </div>
2006         
2007       </div>
2008     </a>
2009   </div>
2010   
2011 </div>
2012 
2013                   </div>
2014                 
2015               
2016             </div>
2017           </div>
2018         
2019       </div>
2020     </div>
2021   </div>
2022 
2023   <div class="site-overlay" style="display: none"></div>
2024 </div>
2025 
2025<script>
2026   
2027   var swiper = new Swiper('.popup-recommend', {
2028       slidesPerView : 4, 
2029       spaceBetween: 30,
2030       lazy: true ,                            
2031       speed: 300,
2032       breakpoints: {
2033         // when window width is <= 576px
2034         576: {
2035             slidesPerView: 2,
2036               spaceBetween: 10,
2037             freeMode: true,
2038             resistance : true,
2039             resistanceRatio : 0,
2040             freeModeMomentumRatio : 0.45,
2041             freeModeMomentumVelocityRatio : 1.5
2042         },
2043         768: {
2044               slidesPerView: 2,
2045               spaceBetween: 10
2046             },
2047         992: {
2048               slidesPerView: 3,
2049               spaceBetween: 20
2050         }
2051       }
2052   });
2053 
2054   const searchContainer = $("#search-popup")
2055   const searchInput = $(".search-popup")
2056   const result_collection = $('.result_collection')
2057   const result_product = $('.result_product')
2058   const resultsearch = $('.resultsearch')
2059   const resultrecommend = $(".group-recommend")
2060   const moreresult = $(".moreresult")
2061 
2062   searchInput.keyup(function(){
2063     const input = $(this).val()
2064     moreresult.find("p span").text(` “${input}”`)
2065     if(input.length > 2) {
2066       $(".close-search").show()
2067       const url = `https://outerbloom.com/search/suggest.json?resources[limit]=10&resources[limit_scope]=each&resources[type]=collection,product&q=${input}`
2068       $.ajax({
2069         type: 'GET',
2070         url,
2071         beforeSend: function() {
2072             // setting a timeout
2073             // $(placeholder).addClass('loading');
2074         },
2075         success: function(response) {
2076             resultsearch.show()
2077             resultrecommend.hide()
2078             result_collection.html("")
2079             result_product.html("")
2080             const collections = response.resources.results.collections
2081             const products = response.resources.results.products
2082             let collection_length = collections.length
2083             let product_length = products.length
2084             // if(collections.length > 5) {
2085             //   collection_length = 5
2086             // }
2087             // if(products.length > 5) {
2088             //   product_length = 5
2089             // }
2090             for(let i=0;i<collection_length;i++){
2091               const title = collections[i].title
2092               const url = collections[i].url
2093               let html_collection
2094               if(!title.includes('AIA') && !title.includes('AXA') && !title.includes('WOM') && !title.includes('Upsell')) {
2095                 html_collection = `
2096                 <li class="item" data-title="${title}">
2097                   <a href="${url}" data-type="collection" class="item_url" data-title="${title}" data-url="${url}">${title}</a>
2098                 </li>
2099                 `
2100               }
2101               result_collection.append(html_collection)
2102             }
2103             for(let i=0;i<product_length;i++){
2104               const title = products[i].title
2105               const url = products[i].url
2106               const image = products[i].featured_image.url
2107               const vendor = products[i].vendor
2108               let html_product
2109               if(vendor !== 'AIA' && vendor !== 'AXA' && vendor !== 'WOM Finance' && !title.includes('Extra Shipping Cost') && !title.includes('[US]') && !title.includes('Rp')){
2110                 html_product = `
2111                 <li class="item" data-vendor="${vendor}">
2112                   <a href="${url}" class="item_url" data-type="product" data-title="${title}" data-url="${url}">
2113                     <img src="${image}" alt="${title}" style="width: 70px;vertical-align: middle;margin-right: 20px;"><span>${title}</span>
2114                   </a>
2115                 </li>
2116                 `
2117               }
2118               result_product.append(html_product)
2119             }
2120         },
2121         error: function(xhr) { // if error occured
2122             alert("Error occured.please try again");
2123         },
2124         complete: function(response) {
2125             // $(placeholder).removeClass('loading');
2126         },
2127         dataType: 'JSON'
2128       });
2129     } else {
2130       result_collection.html("")
2131       result_product.html("")
2132       
2133       resultsearch.hide()
2134       resultrecommend.show()
2135     }
2136   })
2137 
2138   moreresult.click(function(){
2139     $("#search-btn").trigger("click");
2140   })
2141 
2142   $(".close-search").click(function(){
2143     $(this).hide()
2144     searchInput.val("")
2145     searchInput.focus()
2146     resultsearch.hide()
2147     resultrecommend.show()
2148   })
2149 
2150   function setCookie(name,value,days) {
2151     var expires = "";
2152     if (days) {
2153       var date = new Date();
2154       date.setTime(date.getTime() + (days*24*60*60*1000));
2155       expires = "; expires=" + date.toUTCString();
2156     }
2157     document.cookie = name + "=" + (value || "")  + expires + "; path=/";
2158   }
2159   function getCookie(name) {
2160     var nameEQ = name + "=";
2161     var ca = document.cookie.split(';');
2162     for(var i=0;i < ca.length;i++) {
2163       var c = ca[i];
2164       while (c.charAt(0)==' ') c = c.substring(1,c.length);
2165       if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
2166     }
2167     return null;
2168   }
2169   let last_search_name = []
2170   let last_search_url = []
2171   $(".group-recent").hide()
2172   if(getCookie("last_search_name") != null && getCookie("last_search_url") != null){
2173     if(getCookie("last_search_name") != "" && getCookie("last_search_url") != ""){
2174       $(".group-recent").show()
2175       last_search_name = getCookie("last_search_name");
2176       last_search_url = getCookie("last_search_url");
2177       const arrName = last_search_name.substring(1).split(',').reverse()
2178       const arrUrl = last_search_url.substring(1).split(',').reverse()
2179       console.log(arrName, 'Array Name')
2180       console.log(arrUrl, 'Array Url')
2181       let length = arrName.length
2182       if(arrName.length > 5) {
2183         length = 5
2184       }
2185       for(let n=0;n<length;n++){
2186         let html2 = `<li><svg viewBox="0 0 24 24" xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif"><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>`
2187         $(".group-recent ul").append(html2)
2188       }
2189     }
2190   }
2191   console.log(last_search_name, 'Name')
2192   console.log(last_search_url, 'url')
2193   
2194   resultsearch.delegate(".item a", "click", function(){
2195     let name = [last_search_name]
2196     let url = [last_search_url]
2197     name.push($(this).attr('data-title'))
2198     url.push($(this).attr('data-url'))
2199     setCookie("last_search_name",name,7);
2200     setCookie("last_search_url",url,7);
2201   })
2202   
2203   $(".delete-all-history").click(function() {
2204     setCookie("last_search_name",null,0);
2205     setCookie("last_search_url",null,0);
2206     $(".last-search").hide();
2207     setTimeout(function(){
2208       location.reload();
2209     }, 500);
2210   })
2211   
2212   $("#search-trigger").click(function(){
2213     search_open()
2214   })
2215   $(".icon-search-mobile").click(function(){
2216     search_open()
2217   })
2218   $(".search-header svg").click(function(){
2219     search_close()
2220   })
2221   $(".icon-key-mobile").click(function(){
2222     search_close()
2223   })
2224 
2225   function search_open() {
2226     $("body").addClass("search-popup-open")
2227     $("#nav-mobile-icon, .search-header label, .icon-search-mobile").hide()
2228     $("#search-popup, .search-header svg, .icon-key-mobile").show()
2229     $(".search-popup").focus()
2230     $('.popup-recommend')[0].swiper.update();
2231   }
2232   function search_close() {
2233     $("body").removeClass("search-popup-open")
2234     $("#nav-mobile-icon, .search-header label, .icon-search-mobile").show()
2235     $("#search-popup, .search-header svg, .icon-key-mobile").hide()
2236     searchInput.val("")
2237     resultsearch.hide()
2238     resultrecommend.show()
2239   }
2240 
2241   $(".site-overlay").click(function(){
2242     search_close()
2243   })
2244 </script>
2244
2245 
2246 </div>
2247     </div>
2248 
2249     <div id="PageContainer" class="is-moved-by-drawerx" style="background-color: #000000;">
2250       <main class="main-content pt-0" role="main">
2251         
2252           <div id="breadcrumbProduct" class="d-none d-lg-block">
2253             <style>
2254   #breadcrumbProduct {
2255     padding: 20px 0;
2256   }
2257   #breadcrumbProduct ul {
2258       display: flex;
2259       padding: 0;
2260       list-style: none;
2261       margin: 0;
2262       gap: 12px;
2263   }
2264   #breadcrumbProduct ul li {
2265     text-transform: uppercase;
2266     margin: 0;
2267     font-size: 12px;
2268 }
2269   #breadcrumbProduct ul li a {
2270     color: #757575;
2271   }
2272 
2273   #breadcrumbProduct ul li svg {
2274     width: 10px;
2275     height: 10px;
2276     padding: 0;
2277     color: #757575;
2278     vertical-align: middle;
2279   }
2280 </style>
2281 <div class="container" style="color: #ffffff;">
2282   <ul role="navigation" aria-label="breadcrumbs">
2283     <li><a href="https://duatotoperak.com/" style="color: #ffffff;">DUATOTO</a></li>
2284     <li><svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="7" height="10" viewBox="0 0 7 10" fill="none">
2285     <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"/>
2286 </svg></li>
2287     <li><a href="https://duatotoperak.com/" style="color: #ffffff;">DUATOTO DAFTAR</a></li>
2288     <li><svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="7" height="10" viewBox="0 0 7 10" fill="none">
2289     <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"/>
2290 </svg></li>
2291     <li><a href="https://duatotoperak.com/" style="color: #ffffff;">DUATOTO LOGIN</a></li>
2292     <li><svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="7" height="10" viewBox="0 0 7 10" fill="none">
2293     <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"/>
2294 </svg></li>
2295     <li><a href="https://duatotoperak.com/" style="color: #ffffff;">DUATOTO LINK</a></li>
2296     <li><svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="7" height="10" viewBox="0 0 7 10" fill="none">
2297     <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"/>
2298 </svg></li>
2299    <li><a style="color: #ffffff;">DUATOTO RESMI</a></li>
2300
2301     
2302   </ul>
2303 </div>
2304 
2305           </div>
2306        
2307         
2308 <div id="shopify-section-Product" class="shopify-section product-section mt-0"><link href="//outerbloom.com/cdn/shop/t/138/assets/product.css?v=31392998782552138141759380387" rel="stylesheet" type="text/css" media="all" />
2309 
2310 
2311 <style>
2312     .bg-card {
2313     background-color: #000000;
2314 }
2315     </style>
2316 
2317 <!-- /templates/product.liquid -->
2318 
2319 
2320 <!-- <div itemscope itemtype="http://schema.org/Product"> -->
2321 
2322 
2323 <div class="product-standing-flower" data-product-type="flowerBoard">
2324   <meta itemprop="url" content="https://duatotoperak.com/">
2325   <meta itemprop="image" content="https://duagalery.com/images/2026/09/03/duaperakgambar500.png">
2326 
2327   
2328   
2329   <input id="data-sku" type="hidden" value="OBVSTF1086">
2330   <div class="product-single" style="background-image: url(https://duagalery.com/images/2025/11/13/bgdua13.png); background-attachment: fixed;">
2331     <div id="product-top" class="container">
2332       <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;">
2333         <div id="product-image" class="col-lg-7 text-center">
2334           <div class="product-image">
2335             <div class="row no-gutters">
2336   
2337   <div id="product-featured-image" class="row w-100">
2338     
2339       <div id="thumb-image-product" class="col-lg-2 col-12 d-none d-lg-block">
2340         
2341         <div class="swiper-container gallery-thumbs" style="min-height: 500px">
2342           <ul class="list-unstyled slider swiper-wrapper slider-nav ProductThumbs thumbnails" id="ProductThumbsx">
2343 
2344                   <li class="swiper-slide" data-type="image">
2345                     <a
2346                       href="files/Blossom-Shine-WM.jpg"
2347                       data-standard="https://duagalery.com/images/2026/09/03/duaperakgambar500.png"
2348                       data-image="files/Blossom-Shine-WM.jpg"
2349                       data-position="1"
2350                       class="product-single__thumbnail"
2351                     >
2352                       <img
2353                         class="lazyload w-100"
2354                         src="https://duagalery.com/images/2026/09/03/duaperakgambar500.png"
2355                         alt="LINK BARU 5000 PERAK BISA JADI JUTAAN DI SITUS TOTO SLOT7
235577  GACOR INI DUATOTO 2026"
2356                         width=""
2357                         height=""
2358                       >
2359                     </a>
2360                   </li>
2361                 
2362               
2363             
2364 
2365                   <li class="swiper-slide" data-type="image">
2366                     <a
2367                       href="https://duagalery.com/images/2026/09/03/duaperakgambar500.png"
2368                       data-standard="https://duagalery.com/images/2026/09/03/duaperakgambar500.png"
2369                       data-image="https://duagalery.com/images/2026/09/03/duaperakgambar500.png"
2370                       data-position="2"
2371                       class="product-single__thumbnail"
2372                     >
2373                       <img
2374                         class="lazyload w-100"
2375                         src="https://duagalery.com/images/2026/09/03/duaperakgambar500.png"
2376                         alt="LINK BARU 5000 PERAK BISA JADI JUTAAN DI SITUS TOTO SLOT777  GACOR INI DUATOTO 2026"
2377                         width=""
2378                         height=""
2379                       >
2380                     </a>
2381                   </li>
2382                 
2383               
2384             
2385 
2386                   <li class="swiper-slide" data-type="image">
2387                     <a
2388                       href="files/Blossom-Shine_3-WM.jpg"
2389                       data-standard="https://duagalery.com/images/2026/09/03/duaperakgambar500.png"
2390                       data-image="files/Blossom-Shine_3-WM.jpg"
2391                       data-position="3"
2392                       class="product-single__thumbnail"
2393                     >
2394                       <img
2395                         class="lazyload w-100"
2396                         src="https://duagalery.com/images/2026/09/03/duaperakgambar500.png"
2397                         alt="LINK BARU 5000 PERAK BISA JADI JUTAAN DI SITUS TOTO SLOT777  GACOR INI DUATOTO 2026"
2398                         width=""
2399                         height=""
2400                       >
2401                     </a>
2402                   </li>
2403                 
2404               
2405             
2406 
2407                   <li class="swiper-slide" data-type="image">
2408                     <a
2409                       href="files/Blossom-Shine_4.jpg"
2410                       data-standard="https://duagalery.com/images/2026/09/03/duaperakgambar500.png"
2411                       data-image="files/Blossom-Shine_4.jpg"
2412                       data-position="4"
2413                       class="product-single__thumbnail"
2414                     >
2415                       <img
2416                         class="lazyload w-100"
2417                         src="https://duagalery.com/images/2026/09/03/duaperakgambar500.png"
2418                         alt="LINK BARU 5000 PERAK BISA JADI JUTAAN DI SITUS TOTO SLOT777  GACOR INI DUATOTO 2026"
2419                         width=""
2420                         height=""
2421                       >
2422                     </a>
2423                   </li>
2424                 
2425               
2426             
2427           </ul>
2428         </div>
2429         
2430       </div>
2431     
2432     <div
2433       id="featured-image-product"
2434       class="col-lg-10 col-12 d-none d-lg-block"
2435     >
2436       <div class="swiper-container gallery-top">
2437         <div class="swiper-slide product-single__image">
2438           
2439 <div class="product-single__photos slider slider-for" id="ProductPhoto">
2440   
2441 
2442   <div class="easyzoom easyzoom--overlay easyzoom--with-thumbnails">
2443     <a href="https://duagalery.com/images/2026/09/03/duaperakgambar500.png">
2444       <img
2445         src="https://duagalery.com/images/2026/09/03/duaperakgambar500.png"
2446         alt="LINK BARU 5000 PERAK BISA JADI JUTAAN DI SITUS TOTO SLOT777  GACOR INI DUATOTO 2026"
2447         id="ProductPhotoImg"
2448         class="lazyload"
2449       >
2450       
2451     </a>
2452   </div>
2453 </div>
2454 
2455         </div>
2456         <div class="swiper-slide product-single__video" style="display: none">
2457           <video
2458             src="https://cdn.shopify.com/videos/c/vp/05d379ea115d41c2bd0f7d08b1496bd9/05d379ea115d41c2bd0f7d08b1496bd9.HD-1080p-7.2Mbps-24002195.mp4"
2459             playsinline
2460             loop
2461             muted
2462           ></video>
2463         </div>
2464       </div>
2465     </div>
2466   </div>
2467 
2468   <div id="featured-image-product2" class="col-12 d-lg-none">
2469     <div class="swiper-container gallery-mobile">
2470       <ul class="swiper-wrapper">
2471 <li class="swiper-slide img">
2472               
2473                 <img
2474                   class="swiper-lazy"
2475                   src="https://duagalery.com/images/2026/09/03/duaperakgambar500.png"
2476                   data-src="https://duagalery.com/images/2026/09/03/duaperakgambar500.png"
2477                   alt="LINK BARU 5000 PERAK BISA JADI JUTAAN DI SITUS TOTO SLOT777  GACOR INI DUATOTO 2026"
2478                   width=""
2479                   height=""
2480                 >
2481               
2482             </li>
2483           
2484         
2485 <li class="swiper-slide img">
2486               
2487                 <img
2488                   class="swiper-lazy"
2489                   src="https://duagalery.com/images/2026/09/03/duaperakgambar500.png"
2490                   data-src="https://duagalery.com/images/2026/09/03/duaperakgambar500.png"
2491                   alt="LINK BARU 5000 PERAK BISA JADI JUTAAN DI SITUS TOTO SLOT777  GACOR INI DUATOTO 2026"
2492                   width=""
2493                   height=""
2494                 >
2495               
2496             </li>
2497           
2498         
2499 <li class="swiper-slide img">
2500               
2501                 <img
2502                   class="swiper-lazy"
2503                   src="https://duagalery.com/images/2026/09/03/duaperakgambar500.png"
2504                   data-src="https://duagalery.com/images/2026/09/03/duaperakgambar500.png"
2505                   alt="LINK BARU 5000 PERAK BISA JADI JUTAAN DI SITUS TOTO SLOT777  GACOR INI DUATOTO 2026"
2506                   width=""
2507                   height=""
2508                 >
2509               
2510             </li>
2511           
2512         
2513 <li class="swiper-slide img">
2514               
2515                 <img
2516                   class="swiper-lazy"
2517                   src="https://duagalery.com/images/2026/09/03/duaperakgambar500.png"
2518                   data-src="https://duagalery.com/images/2026/09/03/duaperakgambar500.png"
2519                   alt="LINK BARU 5000 PERAK BISA JADI JUTAAN DI SITUS TOTO SLOT777  GACOR INI DUATOTO 2026"
2520                   width=""
2521                   height=""
2522                 >
2523               
2524             </li>
2525           
2526         
2527       </ul>
2528       
2529         <div class="swiper-button-prev"><svg class="icon icon-chevron-left" xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" 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>
2530         <div class="swiper-button-next"><svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="7" height="10" viewBox="0 0 7 10" fill="none">
2531     <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"/>
2532 </svg></div>
2533 
2534         <!-- Add Pagination -->
2535         <div class="swiper-pagination"></div>
2536       
2537     </div>
2538   </div>
2539 
2540   <div class="product-m-pageleb-video col-12 text-center d-lg-none">
2541     <!-- product video -->
2542     <style>
2543        .c-pdp-product-info {
2544        background-color: #000000 !important;
2545        padding: 12px;
2546        margin: 0;
2547        color: white;
2548    }
2549       .view-video{display:block; margin:auto; padding:5px 10px;font-size:16px;font-weight:bold;border:2px solid #ffffff;background:#fff;}
2550       .view-video .icon-play{fill:#ffffff;vertical-align: middle;}
2551       .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;}
2552       .close-video{position:absolute;right:9px; top:8%;z-index:2;padding:5px;}
2553       .close-video .icon{width:30px;height:30px;}
2554       /*responsive iframe */
2555       .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);}
2556       .video-container iframe {position: absolute;top:60%;left: 0;width: 100%;height: 100%;}
2557 
2558       .youtube {
2559         background-color: #000;
2560         margin-bottom: 30px;
2561         position: relative;
2562         padding-top: 56.25%;
2563         overflow: hidden;
2564         cursor: pointer;
2565         width: 100%;
2566       }
2567       .swiper-slide .youtube {
2568         max-width: 480px;
2569       }
2570       .youtube img {
2571         width: 100%;
2572         top: -16.82%;
2573         left: 0;
2574         opacity: 0.7;
2575       }
2576       .youtube .play-button {
2577         width: 90px;
2578         height: 60px;
2579         background-color: #333;
2580         box-shadow: 0 0 30px rgba( 0,0,0,0.6 );
2581         z-index: 1;
2582         opacity: 0.8;
2583         border-radius: 6px;
2584       }
2585       .youtube .play-button:before {
2586         content: "";
2587         border-style: solid;
2588         border-width: 15px 0 15px 26.0px;
2589         border-color: transparent transparent transparent #fff;
2590       }
2591       .youtube img,
2592       .youtube .play-button {
2593         cursor: pointer;
2594       }
2595       .youtube img,
2596       .youtube iframe,
2597       .youtube .play-button,
2598       .youtube .play-button:before {
2599         position: absolute;
2600       }
2601       .youtube .play-button,
2602       .youtube .play-button:before {
2603         top: 50%;
2604         left: 50%;
2605         transform: translate3d( -50%, -50%, 0 );
2606       }
2607       .youtube iframe {
2608         height: 100%;
2609         width: 100%;
2610         top: 0;
2611         left: 0;
2612       }
2613     </style>
2614 
2615     
2616   </div>
2617 </div>
2618 
2619 <div class="product-desc-add position-relative d-none d-lg-block m-0">
2620 
2621 </div>
2622 
2623 
2623<script>
2624   if ($(window).width() < 991) {
2625     var direction = 'horizontal'
2626   } else {
2627     var direction = 'vertical'
2628     $(".gallery-thumbs").height($("#ProductPhotoImg").height())
2629   }
2630   var swiper = new Swiper('.gallery-thumbs', {
2631     
2632     direction,
2633     slidesPerView: 4.5,
2634     spaceBetween: 12,
2635     navigation: {
2636       nextEl: '.swiper-button-next',
2637       prevEl: '.swiper-button-prev',
2638     }
2639   });
2640   
2641   var swiper = new Swiper('.gallery-mobile', {
2642     //loop: true,
2643     lazy: true,
2644     speed: 300,
2645     resistance : true,
2646     resistanceRatio : 0,
2647     freeModeMomentumRatio : 0.45,
2648     freeModeMomentumVelocityRatio : 1.5,
2649     navigation: {
2650       nextEl: '.swiper-button-next',
2651       prevEl: '.swiper-button-prev',
2652     },
2653     pagination: {
2654       el: '.swiper-pagination'
2655     },
2656     useCSS3Transforms: false,
2657     loop: false,
2658     on: {
2659       init: function () {
2660         console.log('swiper initialized');
2661         var currentVideo =  $("[data-swiper-slide-index=" + this.realIndex + "]").find("video");
2662         currentVideo.trigger('play');
2663       },
2664     },
2665   });
2666 
2667   /* GET ALL VIDEOS */
2668   var sliderVideos = $(".swiper-slide video");
2669   
2670   /* SWIPER API - Event will be fired after animation to other slide (next or previous) */
2671   swiper.on('slideChange', function () {
2672     console.log('slide changed');
2673     /* stop all videos  */
2674     sliderVideos.each(function( index ) {
2675       this.currentTime = 0;
2676     });
2677   
2678     /* SWIPER GET CURRENT AND PREV SLIDE (AND The VIDEO INSIDE) */
2679     var prevVideo =  $(`[data-swiper-slide-index="${this.previousIndex}]"`).find("video");
2680     var currentVideo =  $(`[data-swiper-slide-index="${this.realIndex}"]`).find("video");
2681     prevVideo.trigger('stop');
2682     currentVideo.trigger('play');
2683   });
2684   
2685 
2686   $("[data-video]").click(function(){
2687     const file = $(this).data("video")
2688     $(".product-single__video").show()
2689     $(".product-single__image").hide()
2690     $(".product-single__video").find("video").attr("src", file)
2691     $(".product-single__video").find("video")[0].play();
2692   })
2693   $("[data-image]").click(function(){
2694     $(".product-single__video").hide()
2695     $(".product-single__image").show()
2696     $(".product-single__video").find("video")[0].pause();
2697   })
2698 
2699   $("#product-image .swiper-slide").each(function(){
2700     let width = $(this).width()
2701     $(this).height(width)
2702   })
2703 
2704   $(window).resize(function() {
2705     $("#product-image .swiper-slide").each(function(){
2706       let width = $(this).width()
2707       $(this).height(width)
2708     })
2709   })
2710 </script>
2710
2711 
2712           </div>
2713<br>
2714 
2715   
2716     <div class="grid__item_product-info mb-3">
2717       <div class="c-pdp-product-info">
2718                                            <h2 style="color: #ff4d7a;">LINK BARU 5000 PERAK BISA JADI JUTAAN DI SITUS TOTO SLOT777  GACOR INI DUATOTO 2026</h2>
2719                                            <p style="text-align: justify; color: #ffffff;"><a href="https://duatotoperak.com/" style="color: #ff4d7a;">DUATOTO</a> hadir sebagai platform yang membahas informasi seputar link 2026 baru, Slot777, dan situs Toto dalam satu pembahasan yang ringkas dan mudah dipahami. Dengan pembaruan informasi yang relevan, DUATOTO diarahkan untuk membantu pembaca mengenali perkembangan terbaru seputar kategori tersebut.</p>
2720
2721<p style="text-align: justify; color: #ffffff;">Sebagai situs Toto pesaing Perak saat ini, DUATOTO memiliki positioning yang menonjol melalui kombinasi informasi, tampilan, serta akses yang praktis. Pengguna dapat mengenal berbagai informasi terkait SITUS TOTO SLOT777  GACOR melalui halaman yang disusun secara sederhana.</p>
2722
2723<p style="text-align: justify; color: #ffffff;">Bagi pembaca yang sedang mencari informasi DUATOTO 2026, penting untuk selalu memastikan alamat situs yang digunakan benar dan memperhatikan keamanan data saat mengakses platform online.</p>
2724           
2725           
2726           
2727           
2728         </ul>
2729       </div>
2730     </div>
2731     
2732   
2733 
2734 
2735 
2736 
2737 <style>
2738   .c-pdp-product-info__service--active {
2739     font-size: 12px;
2740     padding-left: 10px;
2741     text-align: left;
2742     max-width: 550px;
2743     margin: auto;
2744   }
2745   .c-pdp-product-info__service--active li {
2746     list-style: disc;
2747   }
2748   .c-pdp-product-info {
2749     background-color: #f5f5f5;
2750     padding: 12px;
2751     margin: 0;
2752   }
2753   .freeship em {
2754     font-style: italic;
2755     font-size: 12px !important;
2756   }
2757 
2758 
2759 </style>
2760 
2761 
2761<script>
2762   $(document).ready(function(){
2763     if ( $(".c-pdp-product-info__service li").length == 1 ) {
2764       $(".c-pdp-product-info__service").addClass("no-bullet");
2765       $(".c-pdp-product-info__service li").addClass("no-bullets");
2766     }
2767   });
2768 </script>
2768
2769 
2770   
2771 
2772 
2773 
2774   
2775 
2776   
2777 
2778 
2779             
2780           
2781         </div>
2782         <div id="product-meta" class="col-lg-5 p-0">
2783           <div class="product-meta">
2784             <style>
2785   .product-meta--review {margin-top:10px}
2786   .freeship * {font-size: 14px !important;font-style: normal;}
2787 </style>
2788 <h1 itemprop="name" class="mb-2" style="color: #ff4d7a; font-weight: bold;">LINK BARU 5000 PERAK BISA JADI JUTAAN DI SITUS TOTO SLOT777  GACOR INI DUATOTO 2026</h1>
2789 
2790 <div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
2791   <meta itemprop="priceCurrency" content="IDR">
2792 
2793   <link itemprop="availability" href="https://schema.org/InStock">
2794   
2794<script
2795     type="text/javascript"
2796     src="//platform-api.sharethis.com/js/sharethis.js#property=5acdc0aa3ef3c0001396fd50&product=custom-share-buttons"
2797     async="async"
2798   ></script>
2798
2799   
2800 
2801   
2802 
2803   <span class="visually-hidden">Translation missing: en.products.general.regular_price</span>
2804   
2805     <span class="visually-hidden">Translation missing: en.products.general.sale_price</span>
2806   
2807   <div class="row no-gutters mb-3">
2808     <span
2809       id="ProductPrice"
2810       class="h2 ProductPrice"
2811       itemprop="price"
2812       content="835000" style="color: #ffffff;"
2813     >
2814       Rp 5.020
2815     </span>
2816     <div class="discount-product-detail">
2817       <p id="ComparePrice" class="ComparePrice mt-2 mt-lg-0">
2818         Rp 25.020
2819       </p>
2820       <span class=" tag-discount">
2821         
2822           
2823           <span id="newDiscount" class="product-tag persentase-discount hide"> 
2824       (90%)
2825       </span><br>
2826         
2827       </span>
2828     </div>
2829   </div>
2830 
2831   <div class="row no-gutters meta-sds">
2832     <div class="col-12 mb-2 mb-lg-0 stock-info">
2833       
2834       
2835       <span
2836         id="ProductStock-Product"
2837         class="product-single__stock mb-2 hide"
2838       >
2839         
2840           
2841             
2842               
2843               Barang dikirim pada 
2844             
2845           
2846         
2847       </span>
2848 
2849       <style>
2850     .short-desc-desktop {
2851         margin-bottom: 2rem;
2852         color: white;
2853     }
2854     .short-desc ul li:nth-child(n + 4) {
2855         display: none;
2856     }
2857     .short-desc ul li.showList:nth-child(n + 4) {
2858         display: list-item;
2859     }
2860     label.more {
2861         display: none;
2862     }
2863     label.more.showMe {
2864         display: block;
2865         font-size: 12px;
2866         text-transform: uppercase;
2867         font-weight: 700;
2868         cursor: pointer;
2869     }
2870 </style>
2871 
2872     <div class="short-desc-desktop d-none d-lg-block">
2873         <div class="short-desc">
2874            
2875 <p>DUATOTO 2026 hadir dengan akses baru serba cepat dan pilihan permainan Toto & Slot777 dalam satu platform. Nikmati pengalaman bermain praktis dengan nominal mulai Rp5.000 dan berbagai fitur menarik.</p>
2876         </div>
2877         <label class="more">Show More →</label>
2878     </div><br>
2879 
2880 
2881 
2881<script>
2882     var liCount;
2883     $(document).ready(function () {
2884         $(".short-desc ul").each(function() {
2885             liCount = $(this).children("li").length;
2886             if (liCount > 3) {
2887                 $(this).parent(".short-desc").next(".more").addClass("showMe");
2888             }
2889         });
2890 
2891         $(".more").click(function () {
2892             //$(".short-desc").find("li").addClass("showList");
2893             // $(this).hide();
2894             $("#product-desc").find("ul").show()
2895             $('html, body').animate({
2896                 scrollTop: $("#product-desc").offset().top - 250
2897             }, 2000);
2898             $("#product-desc").css("height","auto");
2899             $("#more_content").remove();
2900             $(".product-spec").append("<div id='less_content' class='readmore'><span class='less_content'>Less</span></div>")
2901         });
2902     });
2903 </script>
2903
2904 
2905       
2906     </div>
2907   </div>
2908 
2909   <div id="purchaseProduct">
2910   
2911   
2912 
2913 
2914 <style>
2915   .variant-metafield {
2916     display: block!important;
2917     width: 1px;
2918     padding: 0;
2919     border-color: #fff;
2920   }
2921   .select2-results__option[aria-disabled] {
2922     display: none;
2923   }
2924 
2925   .towel-bordir {
2926     width: 100%;
2927     display: flex;
2928     align-items: center;
2929     justify-content: space-around;
2930   }
2931 </style>
2932 
2933 
2934 
2935 
2936 
2936<script>
2937   
2938   
2939 </script>
2939
2940 
2941 
2942 
2943 
2944 
2945 
2946 <select
2947   name="id[]"
2948   id="productSelect"
2949   class="product-single__variants ignore hide hide"
2950 >
2951   
2952     
2953       
2954       <option
2955         
2956           selected="selected"
2957         
2958         data-sku="OBVSTF1086"
2959         value="44083045826775"
2960       >
2961         Default Title
2962       </option>
2963 
2964     
2965   
2966 </select>
2967 
2968 
2968<script src="//outerbloom.com/cdn/shop/t/138/assets/jquery.magnific-popup.min.js?v=184369421263510081681752652422" type="text/javascript"></script>
2968
2969 
2970 
2970<script>
2971   $('.size-chart-open-popup').magnificPopup({
2972     type:'inline',
2973     midClick: true
2974   });
2975 </script>
2975
2976 
2977   
2978   
2979   
2980   <div class="upload-image-preview">
2981     
2982     
2983     
2984     
2985     
2986     <style>
2987   .file-dnd * {
2988     margin: 0;
2989     padding: 0;
2990     box-sizing: border-box;
2991   }
2992   .file-dnd {
2993     width: 100%;
2994     height: 250px;
2995     border: 1px solid #ddd;
2996     border-radius: 10px;
2997     padding: 15px;
2998     display: flex;
2999     flex-direction: column;
3000     gap: 10px;
3001     /* box-shadow: 0px 2px 10px 2px rgba(0,0,0,0.05); */
3002     margin: auto;
3003   }
3004   .file-dnd input {
3005     display: none;
3006   }
3007   .file-dnd .before-upload {
3008     border: 1px dashed #888;
3009     flex: 1;
3010     border-radius: 5px;
3011     display: flex;
3012     justify-content: center;
3013     align-items: center;
3014     text-align: center;
3015     cursor: pointer;
3016   }
3017   .file-dnd .before-upload > div {
3018     display: flex;
3019     flex-direction: column;
3020     align-items: center;
3021     gap: 8px;
3022   }
3023   .file-dnd .before-upload > div h4 {
3024     width: 150px;
3025   }
3026   .file-dnd .before-upload > div p {
3027     font-size: 12px !important;
3028     color: #555;
3029   }
3030   .file-dnd.active .before-upload {
3031     border: 1px solid #5750d9;
3032     background-color: #f5f5ff;
3033   }
3034   .file-dnd .after-upload {
3035     position: relative;
3036     display: none;
3037   }
3038   .file-dnd .after-upload img {
3039     width: 100%;
3040     border-radius: 5px;
3041     max-height: 180px;
3042     object-fit: contain;
3043     display: block;
3044   }
3045   .file-dnd .after-upload .clear-btn {
3046     position: absolute;
3047     top: 10px;
3048     right: 10px;
3049     background: rgba(0, 0, 0, 0.5);
3050     width: 15px;
3051     height: 15px;
3052     text-align: center;
3053     line-height: 15px;
3054     border-radius: 50%;
3055     color: #fff;
3056     cursor: pointer;
3057     font-size: 14px;
3058   }
3059 </style>
3060 
3061 <div
3062   class="file-dnd mb-3"
3063   
3064     style="display: none"
3065   
3066 >
3067   <label for="upload-photo">Upload your Photo:</label>
3068   <input type="file" id="upload-photo" accept="image/*">
3069   <input type="hidden" data-properties="Photo">
3070   <div class="before-upload">
3071     <div>
3072       <svg id="surface1" xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="33.053" height="41.719" viewBox="0 0 33.053 41.719">
3073   <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>
3074   <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>
3075   <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>
3076 </svg>
3077 
3078       <h4>Drag & Drop Photo file or Browse</h4>
3079       <p>Supports: JPEG, PNG, GIF, TIFF</p>
3080     </div>
3081   </div>
3082   <div class="after-upload">
3083     <div class="clear-btn">&times;</div>
3084     <img src="" width="" height="">
3085   </div>
3086 </div>
3087 
3087<script>
3088   function applyDndFile(el) {
3089     const parent = document.querySelector(".file-dnd")
3090     const beforeUploadEl = el.querySelector(".before-upload")
3091     const afterUploadEl = el.querySelector(".after-upload")
3092     const inputFile = el.querySelector("input[type=file]")
3093     const imagePreview = el.querySelector(".after-upload img")
3094     const clearBtn = el.querySelector(".after-upload .clear-btn")
3095     const inputProps = parent.querySelector("[data-properties]");
3096 
3097     async function upload(name, uri, type) {
3098       try {
3099         const filename = name.split('.')[0]
3100         let formData = new FormData(); 
3101         formData.append("file", uri);
3102         const response = await fetch(`${host}/upload?name=${filename}&dir=gift&type=${type}`, {
3103           method: "POST", 
3104           body: formData
3105         })
3106         if(response) {
3107           const res = await response.json()
3108           return res
3109         }
3110       } catch(err){
3111         console.log(err)
3112       }
3113     }
3114 
3115     function showImagePreview(img) {
3116       if(img){
3117         const blobUrl = URL.createObjectURL(img)
3118         imagePreview.src = blobUrl
3119         afterUploadEl.style.display = "block"
3120         beforeUploadEl.style.display = "none"
3121       }
3122     }
3123 
3124     beforeUploadEl.addEventListener("click", (e) => {
3125       e.preventDefault()
3126       inputFile.click()
3127     })
3128 
3129     inputFile.addEventListener("change", async (e) => {
3130       e.preventDefault()
3131       showImagePreview(e.target.files[0])
3132       var uploadData = await upload(e.target.files[0].name, e.target.files[0], e.target.files[0].type)
3133       inputProps.value = uploadData?.url
3134     })
3135 
3136     clearBtn.addEventListener("click", (e) => {
3137       afterUploadEl.style.display = "none"
3138       beforeUploadEl.style.display = "flex"
3139       inputProps.value = ""
3140     })
3141 
3142     beforeUploadEl.addEventListener("dragover", (e) => {
3143       e.preventDefault()
3144       el.classList.add("active")
3145     })
3146 
3147     beforeUploadEl.addEventListener("dragleave", (e) => {
3148       e.preventDefault()
3149       el.classList.remove("active")
3150     })
3151 
3152     beforeUploadEl.addEventListener("drop", async (e) => {
3153       e.preventDefault()
3154       el.classList.remove("active")
3155       showImagePreview(e.dataTransfer.files[0])
3156       var uploadData = await upload(e.dataTransfer.files[0].name, e.dataTransfer.files[0], e.dataTransfer.files[0].type)
3157       console.log(uploadData)
3158       inputProps.value = uploadData?.url
3159     })
3160   }
3161 
3162   applyDndFile(document.querySelector(".file-dnd"))
3163 
3164   $(document).ready(function(){
3165     $(".variant-swatch").change(function(){
3166       const v = $(this).val().toLowerCase()
3167       const list = ["photo", "custom one side", "custom two side", "small", "big"]
3168       if(list.some(item => v.includes(item))) return $(".file-dnd").show()
3169       $(".file-dnd").hide()
3170       $(".file-dnd").find("[data-properties]").val("")
3171       $(".after-upload").hide()
3172       $(".before-upload").css("display", "flex")
3173     })
3174   })
3175 </script>
3175
3176 
3177   </div>
3178   
3179     
3180     <div class="delivery-city mb-4">
3181         <a href="https://duaperak-amp02.firehostapp.com/">
3182        <center><img src="https://duagalery.com/images/2026/08/15/daftar-sekarang-duatoto.gif" alt="logo-daftar" style="width: 260px; margin-top: -20px;"></center></a><br>
3183   <h4 class="fw-600 text-uppercase mb-15" style="color: #c5c5c5; font-weight: bold;">DUATOTO DAFTAR PALING AMANAH</h4>
3184   <div class="row justify-content-between m-0">
3185     <select id="cities" class="form-control select-search" required>
3186       <option value="">Bergabunglah sekarang juga dan nikmati berbagai pilihan permain game slot online terkemuka. Jangan lupa sebelum bermain untuk claim bonus 50% di depan untuk memaksimal kemenangan jackpotmu.</option>
3187     </select>
3188   </div>
3189 </div>
3190 
3191 <style>
3192   @media (max-width: 768px) {
3193     .select2-search__field {
3194       pointer-events: none !important;
3195     }
3196     
3197     .select2-search {
3198       display: none !important;
3199     }
3200   }
3201 </style>
3202 
3203 
3203<script>
3204   $(document).ready(function() {
3205     // Check if mobile
3206     if (window.innerWidth <= 768) {
3207       // When cities select2 opens on mobile, remove focus from search
3208       $('#cities').on('select2:open', function() {
3209         setTimeout(function() {
3210           $('.select2-search__field').blur();
3211           $('.select2-search__field').prop('readonly', true);
3212         }, 100);
3213       });
3214     }
3215   });
3216 </script>
3216
3217 
3218  <style>
3219 .icon-img-footer {
3220     width: 80px; 
3221     padding: 0px 5px;
3222 }
3223 @media (min-width: 768px) {
3224     .icon-img-footer {
3225         width: 120px; 
3226     }
3227 }
3228 @media (min-width: 992px) {
3229     .icon-img-footer {
3230         width: 120px; 
3231     }
3232 }
3233 
3234 
3235 </style>
3236<style>
3237    :root {
3238        --brand: #00fffb;
3239        --brand-mid: #009297;
3240        --brand-dark: #006962;
3241        --border: #e5e7eb;
3242        --bg: #fff;
3243        --shadow: 0 6px 15px rgba(0, 0, 0, .08);
3244    }
3245
3246    .app-card {
3247        max-width: 650px;
3248        margin: 25px auto;
3249        background: var(--bg);
3250        border-radius: 14px;
3251        overflow: hidden;
3252        box-shadow: var(--shadow);
3253        border: 1px solid var(--border);
3254        transition: transform .2s, box-shadow .3s;
3255        font-family: system-ui, Arial, sans-serif;
3256        font-size: .92rem;
3257    }
3258
3259    .app-card:hover {
3260        transform: translateY(-2px);
3261        box-shadow: 0 10px 25px rgba(0, 0, 0, .12);
3262    }
3263
3264    .app-header {
3265        padding: 12px 16px;
3266        text-align: center;
3267        background: linear-gradient(135deg, #000000, #5d5d5d, #000000);
3268        color: #fff;
3269        font-weight: 800;
3270        font-size: 1.15rem;
3271        text-shadow: 0 1px 2px rgba(0, 0, 0, .3);
3272    }
3273
3274    .app-table {
3275        width: 100%;
3276        border-collapse: collapse;
3277    }
3278
3279    .app-table th,
3280    .app-table td {
3281        padding: 8px 12px;
3282        vertical-align: middle;
3283    }
3284
3285    .app-table th {
3286        width: 35%;
3287        background: #e7e7e7;
3288        color: #585858;
3289        font-weight: 700;
3290        letter-spacing: .2px;
3291        text-transform: uppercase;
3292        font-size: .85rem;
3293    }
3294
3295    .app-table td {
3296        border-bottom: 1px solid var(--border);
3297        color: #1f1f1f;
3298        font-size: .9rem;
3299        text-align: center;
3300    }
3301
3302    @media (max-width: 640px) {
3303        .app-table,
3304        .app-table tbody,
3305        .app-table tr,
3306        .app-table th,
3307        .app-table td {
3308            display: block;
3309            width: 100%;
3310        }
3311    }
3312
3313    .review-section {
3314        max-width: 850px;
3315        margin: 30px auto;
3316        display: flex;
3317        flex-direction: column;
3318        gap: 18px;
3319        font-family: system-ui, Arial, sans-serif;
3320    }
3321
3322    .review-card {
3323        background: #000000;
3324        padding: 16px 20px;
3325        border-radius: 10px;
3326        border-left: 5px solid #4f4e4e;
3327        box-shadow: 0 3px 6px rgba(0, 0, 0, .05);
3328        transition: all .25s ease-in-out;
3329    }
3330
3331    .review-card:hover {
3332        transform: translateY(-3px);
3333        box-shadow: 0 5px 10px rgba(0, 0, 0, .08);
3334    }
3335
3336    .review-author {
3337        font-weight: 700;
3338        color: var(--brand-dark);
3339        margin-bottom: 4px;
3340        display: flex;
3341        align-items: center;
3342        gap: 6px;
3343        font-size: .92rem;
3344    }
3345
3346    .review-author::before {
3347        content: "👤";
3348        font-size: 1rem;
3349    }
3350
3351    .review-card p {
3352        margin: 0;
3353        color: #d3d3d3;
3354        font-size: .94rem;
3355    }
3356
3357    .review-rating {
3358        margin-left: auto;
3359        font-weight: 700;
3360    }
3361
3362    .stars {
3363        --rating: 5;
3364        --star-size: 1rem;
3365        --star-gap: 2px;
3366        --star-empty: #e5e7eb;
3367        --star-fill: #f4c430;
3368        position: relative;
3369        display: inline-block;
3370        font-size: var(--star-size);
3371        line-height: 1;
3372        letter-spacing: var(--star-gap);
3373    }
3374
3375    .stars::before {
3376        content: "★★★★★";
3377        color: var(--star-empty);
3378    }
3379
3380    .stars::after {
3381        content: "★★★★★";
3382        color: var(--star-fill);
3383        position: absolute;
3384        left: 0;
3385        top: 0;
3386        width: calc((var(--rating) / 5) * 100%);
3387        overflow: hidden;
3388        white-space: nowrap;
3389        pointer-events: none;
3390    }
3391
3392    .stars.lg {
3393        --star-size: 1.1rem;
3394        letter-spacing: 3px;
3395    }
3396
3397    .badge {
3398        display: inline-flex;
3399        align-items: center;
3400        gap: 8px;
3401        flex-wrap: wrap;
3402    }
3403
3404    .badge small {
3405        color: #555;
3406        font-weight: 600;
3407    }
3408</style>
3409
3410<div class="review-section">
3411    <div class="review-card">
3412        <div class="review-author">
3413            Andong Matulesi
3414            <span class="review-rating stars" style="--rating: 5" aria-label="Rating 5.0 dari 5"></span>
3415        </div>
3416        <p>
3417            Ini baru namanya Situs, Hal yang paling menarik dari DUATOTO adalah penyajiannya yang sederhana dan praktis. Pengguna bisa menemukan informasi seputar SITUS TOTO SLOT777  GACOR dalam satu tempat tanpa tampilan yang terasa berlebihan.
3418        </p>
3419    </div>
3420
3421    <div class="review-card">
3422        <div class="review-author">
3423            Baskoro Matumbaman
3424            <span class="review-rating stars" style="--rating: 4.8" aria-label="Rating 4.8 dari 5"></span>
3425        </div>
3426        <p>
3427            Gini dong Link terbaik, Menurut saya DUATOTO punya daya tarik tersendiri dibandingkan situs Toto lainnya. Navigasinya terasa praktis, informasi yang ditampilkan cukup jelas, dan keseluruhan tampilannya membuat pengalaman menjelajah menjadi lebih menyenangkan.
3428        </p>
3429    </div>
3430
3431    <div class="review-card">
3432        <div class="review-author">
3433            Casiono Metenteng
3434            <span class="review-rating stars" style="--rating: 4.9" aria-label="Rating 4.9 dari 5"></span>
3435        </div>
3436        <p>
3437            Keren sih ini Link Situs terbaik menurutku, DUATOTO tampil cukup menarik dengan konsep link 2026 yang terasa modern dan mudah dipahami. Informasi mengenai Slot777 dan permainan Toto tersusun rapi, sehingga pengalaman menjelajah situs terasa lebih nyaman.
3438        </p>
3439    </div>
3440</div>
3441
3442
3443 <div class="purchasePopup purchasePopupSpotify" style="display: none;">
3444   <div class="purchaseArea">
3445     <div class="sectionPurchase sectionPurchaseSpotify">
3446       <div class="wrapperPurchase">
3447         <div class="headerPurchase">
3448           <h3>personalize spotify photo print</h3>
3449           <a class="close-purchase-popup">
3450             <svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="18" height="18" viewBox="0 0 18 18" fill="none">
3451               <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>
3452             </svg>
3453           </a>
3454         </div>
3455         <div class="contentPurchase">
3456           <div class="spotifyAddons"></div>
3457         </div>
3458 
3459         <div class="purchase-button btn-addon row m-0" style="display: none;">
3460           <div class="col-12 col-lg-2 text-left mb-2 p-0">
3461             <button class="back-purchase-button back-addon text-uppercase">
3462               <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif">
3463                 <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>
3464               </svg>
3465               <span>Back</span>
3466             </button>
3467           </div>
3468           <div class="col-12 col-lg-10 text-right" style="display: flex;justify-content: end;gap: 20px;">
3469             <button class="btn next-purchase-button next-addon text-uppercase">
3470               <span>continue without add-ons</span>
3471             </button>
3472           </div>
3473         </div>
3474       </div>
3475     </div>
3476   </div>
3477 </div>
3478 
3479 <style>
3480   #PBarNextFrameWrapper {
3481     display: none;
3482   }
3483   #backgroundPopup {
3484     display: none;
3485     position: fixed;
3486     _position: absolute;
3487     height: 100%;
3488     width: 100%;
3489     top: 0;
3490     left: 0;
3491     background: rgb(117 117 117 / 24%);
3492     z-index: 1;
3493   }
3494   .sectionPurchase {
3495     height: 100%;
3496     position: relative;
3497     max-width: 1344px;
3498     background-color: #fff;
3499     padding: 0;
3500     overflow: hidden; /* Changed from auto to hidden */
3501     display: flex;
3502     flex-direction: column;
3503   }
3504   .sectionPurchase.purchaseAddonSpotify {
3505     max-width: 1070px!important;
3506     max-height: 765px!important;
3507   }
3508   .sectionPurchaseBoard {
3509     max-width: 872px!important;
3510     max-height: 821px!important;
3511   }
3512   .purchaseAddonSpotify .btn-action {
3513     position: absolute;
3514     bottom: 0;
3515     left: 0;
3516     width: 100%;
3517     display: flex;
3518     gap: 10px;
3519   }
3520   .wrapperPurchase {
3521     position: relative;
3522     height: 100%;
3523     display: flex;
3524     flex-direction: column;
3525   }
3526   
3527   /* New styles for scrollable content and sticky button */
3528   .purchase-content {
3529     flex: 1;
3530     overflow-y: auto;
3531     overflow-x: hidden;
3532     padding: 20px;
3533   }
3534   
3535   .purchase-button-wrapper {
3536     position: sticky;
3537     bottom: 0;
3538     background-color: #fff;
3539     border-top: 1px solid #e0e0e0;
3540     padding: 15px 0;
3541     margin-top: auto;
3542     z-index: 10;
3543   }
3544   
3545   .purchasePopup {
3546     display: none;
3547     position: fixed;
3548     background: rgb(117 117 117 / 24%);
3549     z-index: 999;
3550     padding: 40px;
3551     font-size: 13px;
3552     top: 0;
3553     left: 0;
3554     width: 100%;
3555     height: 100%;
3556   }
3557   .popupPurchaseClose{
3558     font-size:14px;
3559     line-height:14px;
3560     right:45px;
3561     top:45px;
3562     position:absolute;
3563     color:#6fa5fd;
3564     font-weight:700;
3565     display:block;
3566     cursor: pointer;
3567   }
3568 
3569   .headerPurchase {
3570     margin-bottom: 30px;
3571     display: flex;
3572     justify-content: space-between;
3573   }
3574 
3575   .headerPurchase h3 {
3576     font-size: 16px;
3577     text-transform: uppercase;
3578   }
3579 
3580   .sectionPurchaseBoard .headerPurchase {
3581     margin-bottom: 15px;
3582   }
3583 
3584   .sectionPurchaseBoard .formAddressPurchase {
3585     padding-top: 0;
3586   }
3587 
3588   .purchaseArea {
3589     position: relative;
3590     height: 100%;
3591   }
3592 
3593   .purchaseArea h4 {
3594     width: 100%;
3595     font-size: 12px;
3596     font-weight: 600;
3597     margin-bottom: 10px;
3598     text-transform: uppercase;
3599   }
3600 
3601   .menuPurchase {
3602     margin-bottom: 30px;
3603   }
3604 
3605   .menuPurchase ul {
3606     list-style-type: none;
3607     margin: 0;
3608   }
3609 
3610   .menuPurchase ul li {
3611     display: inline-block;
3612     border: 1px solid #ffffff;
3613     padding: 5px 20px;
3614     margin-right: 5px;
3615     margin-bottom: 10px;
3616     font-size: 12px;
3617     font-weight: 400;
3618   }
3619 
3620   .menuPurchase ul li:hover, .menuPurchase ul li.selected {
3621     background-color: #ffffff;
3622     color: #ffffff;
3623   }
3624 
3625   .contentPurchase h5 {
3626       font-size: 12px;
3627       margin-bottom: 10px;
3628       font-weight: 400;
3629       overflow: hidden;
3630   }
3631 
3632   /* Card */
3633 
3634   #itemCards {
3635     max-height: 430px;
3636     overflow: auto;
3637   }
3638 
3639   .item-cards {
3640       width: 100%;
3641   }
3642   .item-card.selected {
3643       border: 1px solid #ffffff;
3644   }
3645   .item-card:hover {
3646       border: 1px solid #C4C4C4;
3647   }
3648   .item-cards .item-card {
3649     position: relative;
3650     width: calc(33% - 10px);
3651     max-width: calc(33% - 10px);
3652     flex: 0 0 calc(33% - 10px);
3653     margin-bottom: 20px;
3654   }
3655   .item-cards .item-card label,
3656   .item-addons .item-addon label {
3657       position: absolute;
3658       left: 0;
3659       width: 100%;
3660       height: 100%;
3661   }
3662   .item-cards .item-card .card-image img,
3663   .item-addons .item-addon .card-image img {
3664       display: block;
3665       width: 100%;
3666   }
3667   .item-card .card-meta,
3668   .item-addon .card-meta {
3669       padding: 10px 5px 5px;
3670   }
3671   .item-card.selected .card-meta,
3672   .item-addon.selected .card-meta,
3673   .item-card.selected .card-qty {
3674       background-color: #ffffff;
3675       color: #fff;
3676       visibility: visible!important;
3677   }
3678   .item-card:hover .card-meta,
3679   .item-addon:hover .card-meta,
3680   .item-card:hover .card-qty {
3681       background-color: #C4C4C4;
3682       color: #fff;
3683       visibility: visible!important;
3684   }
3685   .item-cards .item-card p,
3686   .item-addons .item-addon p {
3687     font-size: 12px !important;
3688     margin: 0;
3689     font-weight: 600;
3690   }
3691   .item-card .card-meta input,
3692   .item-addon .card-meta input {
3693       display: none;
3694   }
3695   .item-cards .item-card h5,
3696   .item-addons .item-addon h5 {
3697     text-transform: uppercase;
3698     max-height: 35px;
3699   }
3700 
3701   @media (max-width: 768px) {
3702     .item-cards .item-card {
3703         width: calc(50% - 10px);
3704         max-width: calc(50% - 10px);
3705         flex: 0 0 calc(50% - 10px);
3706         margin-bottom: 0;
3707     }
3708   }
3709 
3710   .card-qty {
3711     display: flex;
3712     padding: 5px;
3713     visibility: hidden;
3714     background-color: #fff !important;
3715     z-index: 999;
3716   }
3717   .card-qty a {
3718     border-width: 1px;
3719     width: 30%;
3720     cursor: pointer;
3721     text-align: center;
3722     align-self: center;
3723     height: 28px;
3724     display: block;
3725     position: relative;
3726   }
3727   .card-qty a svg {
3728     position: absolute;
3729     top: 50%;
3730     left: 50%;
3731     transform: translate(-50%, -50%);
3732     text-align: center;
3733   }
3734   input.btn-qty {
3735     border-width: 0px;
3736     border-radius: 0;
3737     background-color: #fff;
3738     -webkit-appearance: none;
3739     box-shadow: none !important;
3740     -webkit-box-shadow: none !important;
3741     -moz-box-shadow: none!important;
3742     width: 40%;
3743     border-left: 1px solid #c4c4c4;
3744     border-right: 1px solid #c4c4c4;
3745     padding: 0;
3746   }
3747 
3748   .sectionPurchaseBoard #itemAddons .item-card {
3749     width: calc(20% - 15px);
3750     max-width: calc(20% - 15px);
3751     flex: 0 0 calc(20% - 15px);
3752   }
3753 
3754   .purchase-button {
3755     width: 100%;
3756     padding: 0; /* Reset padding as it's now handled by wrapper */
3757     margin: 0;
3758   }
3759 
3760   .sectionPurchaseBoard .purchase-button {
3761     margin-top: 0 !important; /* Reset margin */
3762   }
3763 
3764   .back-purchase-button, .back-spotify {
3765       width: 139px;
3766       border: 1px solid;
3767       height: 43px;
3768   }
3769   .purchase-button .btn {
3770     width: 297px;
3771     height: 43px;
3772     background-color: #ffffff;
3773     color: #ffffff;
3774   }
3775   .purchase-button .btn[disabled] {
3776     background-color: #EEEEEE;
3777   }
3778   .back-purchase-button svg, .back-spotify svg {
3779     align-self: center;
3780     vertical-align: middle;
3781     margin-right: 10px;
3782   }
3783 
3784   #purchaseProduct .row .error {
3785     font-size: 12px !important;
3786     color: orange;
3787     margin-top: 5px;
3788   }
3789 
3790   .reviewCardPurchase {
3791     max-width: 448px;
3792     float: right;
3793   }
3794 
3795   .addonsPurchase .addon-item {display: flex;justify-content: space-between;}
3796   .addon-item * {align-self: center;font-size: 12px;}
3797   .addon-itm-title {width: 360px;}
3798   .addon-itm-line-price {color: #757575;width: 80px;justify-content: space-between;display: flex;}
3799 
3800   .propsAddonSpotify p {
3801     margin: 0;
3802     display: flex;
3803     font-size: 12px !important;
3804     margin-bottom: 5px;
3805   }
3806   .propsAddonSpotify p span:first-child {
3807     text-transform: uppercase;
3808     font-weight: 600;
3809     -ms-flex: 0 0 150px;
3810     flex: 0 0 150px;
3811     max-width: 150px;
3812   }
3813 
3814   .addonsPurchase .addons {
3815     max-height: 250px;
3816     overflow: auto;
3817   }
3818 
3819   .btn .loading:after {
3820     content: "";
3821     display: inline-block;
3822     width: 20px;
3823     height: 20px;
3824     padding: 3px;
3825     aspect-ratio: 1;
3826     border-radius: 50%;
3827     background: #FFFFFF;
3828     --_m: conic-gradient(#0000 10%, #ffffff), linear-gradient(#ffffff 0 0) content-box;
3829     -webkit-mask: var(--_m);
3830     mask: var(--_m);
3831     -webkit-mask-composite: source-out;
3832     mask-composite: subtract;
3833     animation: l3 1s infinite linear;
3834     margin: auto;
3835     vertical-align: middle;
3836     margin-left: 10px;
3837   }
3838 
3839   #qrcode img, #qrcode canvas {
3840     width: 50px;
3841     position: absolute;
3842     top: 12px;
3843     left: 16px;
3844   }
3845 
3846   .t-preview {
3847     position: absolute;
3848     top: 17px;
3849     left: 75px;
3850   }
3851   .t-preview p {
3852     margin: 0;
3853     font-size: 12px !important;
3854   }
3855   .t-preview .h3 {
3856     font-size: 16px !important;
3857     margin-bottom: 5px;
3858     font-weight: 600;
3859   }
3860   .scanCard {
3861     width: 100%;
3862     border: 1px solid;
3863     height: 76px;
3864     background-color: #fff;
3865   }
3866   .scanCard > div > img {
3867     position: absolute;
3868     right: 0;
3869     width: 55px;
3870   }
3871 
3872   @keyframes l3 {
3873     100% {
3874       transform: rotate(1turn);
3875     }
3876   }
3877 
3878   @media (min-width: 991px) {
3879     .sectionPurchase {
3880       height: 100%;
3881       position: relative;
3882       max-width: 1344px;
3883       background-color: #fff;
3884       top: 50%;
3885       left: 50%;
3886       transform: translate(-50%, -50%);
3887     }
3888     .headerPurchase h3 {
3889       font-size: 20px;
3890     }
3891     .purchaseArea h4 {
3892       font-size: 16px;
3893     }
3894 
3895     .menuPurchase ul li {
3896         font-size: 16px;
3897     }
3898     
3899     .contentPurchase {
3900       margin-bottom: 30px;
3901     }
3902     .contentPurchase h5 {
3903       font-size: 16px;
3904     }
3905 
3906     .item-cards .item-card p,
3907     .item-addons .item-addon p {
3908       font-size: 16px !important;
3909     }
3910 
3911     .cards {
3912       float: right;
3913       width: 400px;
3914     }
3915 
3916     .item-cards .item-card {
3917       width: calc(25% - 30px);
3918       max-width: calc(25% - 30px);
3919       flex: 0 0 calc(25% - 30px);
3920     }
3921 
3922       #itemAddons .item-card {
3923         position: relative;
3924         width: calc(16% - 40px);
3925         max-width: calc(16% - 40px);
3926         flex: 0 0 calc(16% - 40px);
3927       }
3928       
3929     .purchase-button-wrapper {
3930         padding: 10px 20px;
3931     }
3932   }
3933 
3934   @media (max-width: 1200px) {
3935     .item-cards .item-card {
3936       width: calc(33% - 30px);
3937       max-width: calc(33% - 30px);
3938       flex: 0 0 calc(33% - 30px);
3939     }
3940   }
3941 
3942   @media (max-width: 992px) {
3943     .purchasePopup {
3944       padding: 0;
3945     }
3946     .item-cards .item-card h5,
3947     .item-addons .item-addon h5 {
3948       max-height: 30px;
3949     }
3950 
3951     .back-purchase-button, .back-spotify, .next-purchase-button {
3952         width: 100%;
3953     }
3954     .addon-itm-title {
3955       width: 300px;
3956     }
3957     .addon-itm-line-price {
3958       margin-right: 10px;
3959     }
3960     .t-preview {
3961       top: 10px;
3962     }
3963 
3964     .card-qty a {
3965       height: 15px;
3966     }
3967     
3968     .purchase-button-wrapper {
3969       padding: 15px;
3970     }
3971   }
3972 
3973   @media (max-width: 576px) {
3974     .purchase-button .btn {
3975         width: 100%!important;
3976     }
3977     .purchase-button > .col-12 {
3978       padding-left: 0;
3979       padding-right: 0;
3980     }
3981   }
3982 </style>
3983 
3984 
3985 <div class="purchasePopup">
3986   <div class="purchaseArea">
3987     
3988       <div class="sectionPurchase purchasePersonalize sectionPurchaseBoard">
3989         <div class="wrapperPurchase">
3990           <div class="purchase-content">
3991             <div class="headerPurchase">
3992   <h3 class="text-uppercase">
3993     
3994       customize your flower board
3995     
3996   </h3>
3997   <a class="close-purchase-popup">
3998   <svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="18" height="18" viewBox="0 0 18 18" fill="none">
3999     <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"/>
4000   </svg>
4001 </a>
4002 
4003 </div>
4004 <div class="contentPurchase">
4005   <div class="row">
4006     
4007       <div class="col-12">
4008         
4009 
4010 <style>
4011   
4012   
4013   .customize-papan .group-field-1 .input-field {float: left;width: 100%;height: 317px;background-color: #E5E5EA;}
4014   .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;}
4015   
4016   .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;}
4017   .customize-papan .btn-upload-papan svg {width: 21px;height: 25px;display: block;align-self: center;margin: auto;margin-bottom: 12px;}
4018   .svgLogoPapan {position: absolute;width: 100%;top: 50%;left: 50%;transform: translate(-50%, -50%);text-align: center;}
4019   .svgLogoPapan p {color: #8E8E93; margin: 0;}
4020   .svgLogoPapan p span {font-size: 12px;color: #FF0E00;}
4021   .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;}
4022   #suggest-messages {position: absolute;bottom: 5px;left: 5px;}
4023   #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;}
4024   .case-occasion .nice-select:after {border-bottom: 2px solid #333;border-right: 2px solid #333;right: 20px;top: 42%;width: 10px;height: 10px;}
4025   .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;}
4026   .customize-papan .input-field .limit {position: absolute;right: 15px;top: 0;color: #757575;}
4027 
4028   @media (min-width: 991px) {
4029     .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);}
4030     .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);}
4031   }
4032 </style>
4033 
4034 <input type="hidden" data-properties="penerima" value="-">
4035 <div class="customize-papan">
4036   <div class="container">
4037     <div class="field-papan group-field-1 form-group">
4038       <div class="input-field">
4039         <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.
4040 (Ex: Selamat Menempuh Hidup Baru A & B)." maxlength="100"></textarea>
4041         <p class="limit">0/100</p>
4042         <div id="suggest-messages">
4043           <a id="show_note_papan1" href="#">
4044             <div class="suggest-message" id="note_btn_div1">
4045               <span class="promo-code-link" id="note_btn_papan1">DUATOTO</span>
4046             </div>
4047           </a>
4048           <a id="show_note_papan2" href="#">
4049             <div class="suggest-message" id="note_btn_div2">
4050               <span class="promo-code-link" id="note_btn_papan2">Slot Online</span>
4051             </div>
4052           </a>
4053           <a id="show_note_papan3" href="#">
4054             <div class="suggest-message" id="note_btn_div3">
4055               <span class="promo-code-link" id="note_btn_papan3">RTP SLOT VPN</span>
4056             </div>
4057           </a>
4058         </div>
4059       </div>
4060     </div>
4061     <div class="hide">
4062       <input type="hidden" value="" id="note_id_papan1" name="note_id_papan1" style="top: 0px;">
4063       <input type="hidden" value="" id="note_btn_id_papan1" name="note_btn_id_papan1">
4064     </div>
4065     <div class="hide">
4066       <input type="hidden" value="" id="note_id_papan2" name="note_id_papan2" style="top: 0px;">
4067       <input type="hidden" value="" id="note_btn_id_papan2" name="note_btn_id_papan2">
4068     </div>
4069     <div class="hide">
4070       <input type="hidden" value="" id="note_id_papan3" name="note_id_papan3" style="top: 0px;">
4071       <input type="hidden" value="" id="note_btn_id_papan3" name="note_btn_id_papan3">
4072     </div>
4073     <div class="field-papan group-field-2 form-group">
4074       
4075       <label for="logoPapan" onclick="" class="input-field field-logo">
4076         
4077         
4078         
4079         <div class="btn-upload-papan w-100">
4080           <?xml version="1.0" encoding="UTF-8"?>
4081           <img src="" style="display:none">
4082           <div class="svgLogoPapan">
4083             <svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="22" height="26" viewBox="0 0 22 26" fill="none">
4084               <path d="M6.5 20H15.5V11H21.5L11 0.5L0.5 11H6.5V20ZM0.5 23H21.5V26H0.5V23Z" fill="black"/>
4085             </svg>
4086             <p>Upload Logo <span>*optional</span></p>
4087           </div>
4088         </div>
4089         
4090       </label>
4091       
4092       <input
4093         type="hidden"
4094         data-properties="papan-logo"
4095         value=""
4096       >
4097       <input
4098         type="file"
4099         id="logoPapan"
4100         accept="image/*"
4101         style="position: absolute;width: 1px;height: 1px;padding: 0"
4102       >
4103       
4104       <div class="input-field">
4105         <input class="has-limit sender-name" type="text" placeholder="Nama Pengirim" data-properties="pengirim" maxlength="35"/>
4106         <p class="limit">0/35</p>
4107       </div>
4108       
4109     </div>
4110     
4111   </div>
4112 </div>
4113       </div>
4114     
4115   </div>
4116 </div>
4117 
4118           </div>
4119           <div class="purchase-button-wrapper">
4120             <div class="purchase-button btn-card row m-0">
4121   <div class="col-12 col-lg-2 text-left mb-2 p-0">
4122     
4123   </div>
4124   <div class="btn-next-card col-12 col-lg-10 text-right">
4125     
4126     
4127     <button
4128       
4129         
4130       
4131       class="btn next-purchase-button text-uppercase"
4132       
4133         disabled
4134       
4135     >
4136       <span>save your flower board</span>
4137     </button>
4138   </div>
4139 </div>
4140 
4141           </div>
4142         </div>
4143       </div>
4144     
4145     
4146     
4147       <div
4148         class="sectionPurchase sectionPurchaseBoard hide"
4149         data-section="address"
4150       >
4151         <div class="wrapperPurchase">
4152           <div class="purchase-content">
4153             <div class="headerPurchase">
4154   <h3>
4155     Complete Your Order
4156   </h3>
4157   <a class="close-purchase-popup">
4158   <svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="18" height="18" viewBox="0 0 18 18" fill="none">
4159     <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"/>
4160   </svg>
4161 </a>
4162 
4163 </div>
4164 <div class="contentPurchase">
4165   <div class="row">
4166     <div class="col-12 position-relative">
4167       <div class="addressPurchase">
4168         
4169           <h4 class="text-uppercase">recipient delivery address</h4>
4170           <p>Share the delivery address to send your heartfelt blooms straight to their door.</p>
4171         
4172         <div class="formAddressPurchase row">
4173           <div class="col-12">
4174             <form>
4175               <div class="form-group row mb-2 mb-lg-4">
4176                 <div class="col-6 position-relative">
4177                   <input id="first_name" type="text" class="form-control input__field" placeholder="" required>
4178                   <label for="first_name" class="input__label">First Name<span>*</span></label>
4179                 </div>
4180                 <div class="col-6 position-relative">
4181                   <input id="last_name" type="text" class="form-control input__field" placeholder="" required>
4182                   <label for="last_name" class="input__label">Last Name<span>*</span></label>
4183                 </div>
4184                 <input type="hidden" data-properties="nama-penerima">
4185               </div>
4186               
4187                 <h4 class="text-uppercase">how you want to input your address</h4>
4188                 <div class="form-group row mb-2 mb-lg-4 form-address-upload">
4189                   <div class="col-6 position-relative">
4190                     <label class="address-manualy">
4191                       <svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="18" height="17" viewBox="0 0 18 17" fill="none">
4192   <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
41921216 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
41925 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"/>
4193 </svg>
4194 <span>Input Address Manually</span>
4195                     </label>
4196                   </div>
4197                   <div class="col-6 position-relative">
4198                     <label for="address-upload" class="address-upload">
4199                       <svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="12" height="13" viewBox="0 0 12 13" fill="none">
4200   <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"/>
4201 </svg>
4202 <span>Upload Address Picture</span>
4203                     </label>
4204                     <input
4205                       id="address-upload"
4206                       type="file"
4207                       accept="image/png, image/jpeg"
4208                       style="position: absolute; padding: 0;width: 1px;height: 1px"
4209                     >
4210                     <input type="hidden" class="props-address-upload" data-properties="foto-alamat">
4211                   </div>
4212                 </div>
4213                 <img width="150" height="" src="" class="photo-address" style="display: none;">
4214               
4215               <div class="form-group row position-relative mb-2 mb-lg-4 form-address">
4216                 <div class="col-12">
4217                   <textarea
4218                     id="delivery_address"
4219                     data-properties="alamat-penerima"
4220                     class="form-control input__field col-12"
4221                     placeholder=""
4222                     required
4223                   ></textarea>
4224                   <label for="delivery_address" class="input__label">Delivery Address<span>*</span></label>
4225                   
4226                 </div>
4227               </div>
4228               <div class="form-group row mb-2 mb-lg-4 form-address">
4229                 <div class="col-6 position-relative">
4230                   <input
4231                     id="recipient_number"
4232                     type="text"
4233                     data-properties="telepon-penerima"
4234                     class="form-control input__field"
4235                     placeholder=""
4236                     required
4237                   >
4238                   <label for="recipient_number" class="input__label">Recipient number<span>*</span></label>
4239                 </div>
4240                 <div class="col-6 position-relative">
4241                   <input
4242                     id="company"
4243                     type="text"
4244                     data-properties="company"
4245                     class="form-control input__field"
4246                     placeholder=""
4247                   >
4248                   <label for="company" class="input__label">Company (Optional)</label>
4249                 </div>
4250               </div>
4251               <div class="form-group row mb-2 mb-lg-4 form-address">
4252                 <div class="col-6 position-relative">
4253                   <input
4254                     id="province"
4255                     type="text"
4256                     class="form-control input__field"
4257                     placeholder=""
4258                     value="Jakarta"
4259                     data-properties="province"
4260                   >
4261                   <label for="province" class="input__label">Province</label>
4262                 </div>
4263                 <div class="col-6 position-relative">
4264                   <select id="zip" class="form-control select-search" required></select>
4265                 </div>
4266               </div>
4267             </form>
4268           </div>
4269         </div>
4270       </div>
4271       <div class="addonsPurchase">
4272         <h4 class="text-uppercase">add-ons</h4>
4273         <div class="addons">
4274           <p>No Add-Ons</p>
4275           <!--
4276             <button class="add-addon">
4277               <svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="12" height="12" viewBox="0 0 12 12" fill="none">
4278                 <path d="M5.5 6.5H0V5.5H5.5V0H6.5V5.5H12V6.5H6.5V12H5.5V6.5Z" fill="black"/>
4279               </svg>
4280               <span>Enhance my moment with Add-ons</span>
4281             </button>
4282           -->
4283         </div>
4284       </div>
4285     </div>
4286     
4287   </div>
4288 </div>
4289 
4290 
4290<script>
4291 document.addEventListener('DOMContentLoaded', function() {
4292   // Detect iOS
4293   var isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;
4294   
4295   if (isIOS) {
4296     document.querySelector('.formAddressPurchase').classList.add('ios');
4297     
4298     // iOS specific fixes
4299     var inputs = document.querySelectorAll('.formAddressPurchase .input__field');
4300     
4301     inputs.forEach(function(input) {
4302       // Force enable touch events on iOS
4303       input.style.webkitUserSelect = 'text';
4304       input.style.webkitTouchCallout = 'default';
4305       input.style.pointerEvents = 'auto';
4306       input.style.touchAction = 'manipulation';
4307       
4308       // Add explicit touch event listeners for iOS
4309       input.addEventListener('touchstart', function(e) {
4310         e.stopPropagation();
4311         this.focus();
4312       }, { passive: false });
4313       
4314       input.addEventListener('touchend', function(e) {
4315         e.preventDefault();
4316         e.stopPropagation();
4317         this.focus();
4318         this.click();
4319       }, { passive: false });
4320       
4321       // Force focus on tap for iOS
4322       input.addEventListener('click', function(e) {
4323         e.stopPropagation();
4324         if (document.activeElement !== this) {
4325           this.focus();
4326         }
4327       });
4328     });
4329     
4330     // Fix for label overlapping on iOS
4331     var labels = document.querySelectorAll('.formAddressPurchase .input__label');
4332     labels.forEach(function(label) {
4333       label.style.pointerEvents = 'none';
4334       label.addEventListener('touchstart', function(e) {
4335         e.preventDefault();
4336         var input = this.parentNode.querySelector('.input__field');
4337         if (input) {
4338           input.focus();
4339         }
4340       });
4341     });
4342   }
4343   
4344   // Handle input state for all browsers, especially iOS
4345   var inputs = document.querySelectorAll('.input__field');
4346   
4347   inputs.forEach(function(input) {
4348     // Handle input events
4349     input.addEventListener('input', function() {
4350       if (this.value.trim() !== '') {
4351         this.classList.add('has-value');
4352       } else {
4353         this.classList.remove('has-value');
4354       }
4355     });
4356     
4357     // Handle focus
4358     input.addEventListener('focus', function() {
4359       this.classList.add('focused');
4360       // iOS specific: ensure input is visible
4361       if (isIOS) {
4362         setTimeout(function() {
4363           input.scrollIntoView({ behavior: 'smooth', block: 'center' });
4364         }, 300);
4365       }
4366     });
4367     
4368     // Handle blur
4369     input.addEventListener('blur', function() {
4370       this.classList.remove('focused');
4371       if (this.value.trim() !== '') {
4372         this.classList.add('has-value');
4373       } else {
4374         this.classList.remove('has-value');
4375       }
4376     });
4377     
4378     // Initial check for pre-filled values
4379     if (input.value.trim() !== '') {
4380       input.classList.add('has-value');
4381     }
4382   });
4383   
4384   // Additional iOS fixes
4385   if (isIOS) {
4386     // Prevent iOS Safari from adding default styling
4387     document.addEventListener('touchstart', function() {}, { passive: true });
4388     
4389     // Fix viewport issues on iOS
4390     var viewport = document.querySelector('meta[name=viewport]');
4391     if (viewport) {
4392       viewport.setAttribute('content', 
4393         'width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no'
4394       );
4395     }
4396   }
4397 });
4398 </script>
4398
4399           </div>
4400           <div class="purchase-button-wrapper">
4401             <div class="purchase-button btn-address row m-0">
4402   <div class="col-12 col-lg-2 text-left mb-2 p-0">
4403     
4404       <button class="back-purchase-button back-address text-uppercase">
4405         <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif">
4406           <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"/>
4407         </svg>
4408         <span>Back</span>
4409       </button>
4410     
4411   </div>
4412   <div class="btn-next-card col-12 col-lg-10 text-right">
4413     
4414       <!--
4415         <button class="back-purchase-button back-address text-uppercase mr-lg-2 mb-2 mb-lg-0">
4416           <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif">
4417             <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"/>
4418           </svg>
4419           <span>Back</span>
4420         </button>
4421       -->
4422     
4423     
4424     <button
4425       
4426         id="addtocart-card"
4427       
4428       class="btn  next-address text-uppercase"
4429       
4430     >
4431       <span>add to cart</span>
4432     </button>
4433   </div>
4434 </div>
4435 
4436           </div>
4437         </div>
4438       </div>
4439     
4440   </div>
4441 </div>
4442 <div id="backgroundPopup"></div>
4443 
4444 
4445 
4446 <input
4447   data-index="1"
4448   type="hidden"
4449   id="properties-delivery-date"
4450   name="properties[Delivery Date]"
4451   value="-"
4452 >
4453 <input
4454   data-index="2"
4455   type="hidden"
4456   id="properties-delivery-time"
4457   name="properties[Delivery Time]"
4458   value="-"
4459 >
4460 <input
4461   data-index="4"
4462   type="hidden"
4463   id="properties-nama-penerima"
4464   name="properties[Nama Penerima]"
4465   value="-"
4466 >
4467 <input
4468   data-index="5"
4469   type="hidden"
4470   id="properties-alamat-penerima"
4471   name="properties[Alamat Penerima]"
4472   value="-"
4473 >
4474 <input
4475   data-index="6"
4476   type="hidden"
4477   id="properties-kodepos"
4478   name="properties[Kodepos]"
4479   value="-"
4480 >
4481 <input data-index="7" type="hidden" id="properties-telepon-penerima" name="properties[Telepon Penerima]">
4482 
4483   
4484     <input
4485       data-index="8"
4486       type="hidden"
4487       id="properties-kartu-nama-penerima"
4488       name="properties[Kartu Nama Penerima]"
4489       value="-"
4490     >
4491   
4492   <textarea
4493     data-index="9"
4494     type="hidden"
4495     id="properties-kartu-pesan"
4496     name="properties[Kartu Pesan]"
4497     style="display: none"
4498   >-</textarea>
4499 
4500 
4501 
4502   <input
4503     data-index="10"
4504     type="hidden"
4505     id="properties-kartu-nama-pengirim"
4506     name="properties[Kartu Nama Pengirim]"
4507     value="-"
4508   >
4509 
4510 
4511 
4512   
4513   
4514 
4515 
4516 
4517 
4518 
4519 
4520 
4521 
4522 
4523 
4524 
4525 
4526 
4527 <!-- Additional Shipping -->
4528 <input type="hidden" id="properties-kota-pengiriman-province" name="properties[Province]">
4529 <input
4530   type="hidden"
4531   id="properties-kota-pengiriman-country"
4532   name="properties[Country]"
4533   value="Indonesia"
4534 >
4535 <input type="hidden" id="properties-shipping" name="properties[Shipping]">
4536 
4537 <input type="hidden" id="properties-time" name="properties[Time]">
4538 <input type="hidden" id="properties-card" name="properties[Card]">
4539 <input type="hidden" id="properties-addons" name="properties[Addons]">
4540 
4541 <input
4542   type="hidden"
4543   id="properties-company"
4544   name="properties[Company]"
4545   value=""
4546 >
4547 
4547<script>
4548   
4549   $(document).ready(function(){
4550     
4551     var text_max_papan1=150;
4552     var msg_text_papan1="";
4553     $('#kartu-ucapan-ucapan').keyup(function(){
4554       var text_length_papan1=$('#kartu-ucapan-ucapan').val().length;
4555       var msg_text_papan1=$('#kartu-ucapan-ucapan').val();
4556     });
4557 
4558     var notes_papan1 = [
4559       
4560       [0,"Happy Wedding (nama & nama)."],[1,"Congratulations lovebirds (nama & nama)."],[2,"Selamat berbahagia (nama & nama)."],[3,"Selamat menempuh hidup baru (nama & nama)."]
4561       
4562     ];
4563     $('#show_note_papan1').click(function(event){
4564       event.preventDefault();
4565       var idx_papan1=parseInt($('#note_id_papan1').val());
4566       if(isNaN(idx_papan1)){
4567         idx_papan1=0;
4568       }else{
4569         idx_papan1++;
4570         idx_papan1=idx_papan1%notes_papan1.length;
4571       }
4572       var note_papan1=notes_papan1[idx_papan1][1];
4573       $('#note_id_papan1').val(idx_papan1);
4574       $('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan1);
4575       $('#msgDelivery').val(note_papan1);
4576 
4577       var text_length_papan1=$('#kartu-ucapan-papan').val().length;
4578       var idx_2_papan1=parseInt($('#note_btn_id_papan1').val());
4579       if(isNaN(idx_2_papan1)){
4580         idx_2_papan1=0;
4581       }else{
4582         idx_2_papan1++;
4583         //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length;
4584       }
4585       $('#note_btn_id_papan1').val(idx_2_papan1);
4586       //var note_btn=note_btn_text[idx_2][1];
4587       //$('#note_btn').text(note_btn);
4588     });
4589 
4590     var text_max_papan2=150;
4591     var msg_text_papan2="";
4592     $('#kartu-ucapan-ucapan').keyup(function(){
4593       var text_length_papan2=$('#kartu-ucapan-ucapan').val().length;
4594       var msg_text_papan2=$('#kartu-ucapan-ucapan').val();
4595     });
4596 
4597     var notes_papan2 = [
4598       
4599       [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)."]
4600       
4601     ];
4602     $('#show_note_papan2').click(function(event){
4603       event.preventDefault();
4604       var idx_papan2=parseInt($('#note_id_papan2').val());
4605       if(isNaN(idx_papan2)){
4606         idx_papan2=0;
4607       }else{
4608         idx_papan2++;
4609         idx_papan2=idx_papan2%notes_papan2.length;
4610       }
4611       var note_papan2=notes_papan2[idx_papan2][1];
4612       $('#note_id_papan2').val(idx_papan2);
4613       $('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan2);
4614       $('#msgDelivery').val(note_papan2);
4615       var text_length_papan2=$('#kartu-ucapan-papan').val().length;
4616       var idx_2_papan2=parseInt($('#note_btn_id_papan2').val());
4617       if(isNaN(idx_2_papan2)){
4618         idx_2_papan2=0;
4619       }else{
4620         idx_2_papan2++;
4621         //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length;
4622       }
4623       $('#note_btn_id_papan2').val(idx_2_papan2);
4624       //var note_btn=note_btn_text[idx_2][1];
4625       //$('#note_btn').text(note_btn);
4626     });
4627 
4628     var text_max_papan3=150;
4629     var msg_text_papan3="";
4630     $('#kartu-ucapan-ucapan').keyup(function(){
4631       var text_length_papan3=$('#kartu-ucapan-ucapan').val().length;
4632       var msg_text_papan3=$('#kartu-ucapan-ucapan').val();
4633     });
4634 
4635     var notes_papan3 = [
4636       
4637       [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)."]
4638       
4639     ];
4640     $('#show_note_papan3').click(function(event){
4641       event.preventDefault();
4642       var idx_papan3=parseInt($('#note_id_papan3').val());
4643       if(isNaN(idx_papan3)){
4644         idx_papan3=0;
4645       }else{
4646         idx_papan3++;
4647         idx_papan3=idx_papan3%notes_papan3.length;
4648       }
4649       var note_papan3=notes_papan3[idx_papan3][1];
4650       $('#note_id_papan3').val(idx_papan3);
4651       $('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan3);
4652       $('#msgDelivery').val(note_papan3);
4653       var text_length_papan3=$('#kartu-ucapan-papan').val().length;
4654       var idx_2_papan3=parseInt($('#note_btn_id_papan3').val());
4655       if(isNaN(idx_2_papan3)){
4656         idx_2_papan3=0;
4657       }else{
4658         idx_2_papan3++;
4659         //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length;
4660       }
4661       $('#note_btn_id_papan3').val(idx_2_papan3);
4662       //var note_btn=note_btn_text[idx_2][1];
4663       //$('#note_btn').text(note_btn);
4664     });
4665 
4666     var text_max_papan4=150;
4667     var msg_text_papan4="";
4668     $('#kartu-ucapan-ucapan').keyup(function(){
4669       var text_length_papan4=$('#kartu-ucapan-ucapan').val().length;
4670       var msg_text_papan4=$('#kartu-ucapan-ucapan').val();
4671     });
4672 
4673     $('#show_note_papan4').click(function(event){
4674       var notes_papan4 = [
4675         [0,"Here’s to you—steadier, stronger and better every day."],
4676         [1,"Warmest wishes for a speedy recovery!"],
4677         [2,"Dengan ucapan terhangat, semoga lekas membaik dan semakin pulih setiap harinya ya."],
4678         [3,"Semoga lekas sembuh untuk kembali beraktivitas dan berkarya."]
4679       ];
4680       event.preventDefault();
4681       var idx_papan4=parseInt($('#note_id_papan4').val());
4682       console.log(idx_papan4, 'idx_papan4')
4683       if(isNaN(idx_papan4)){
4684         idx_papan4=0;
4685       }else{
4686         idx_papan4++;
4687         idx_papan4=idx_papan4%notes_papan4.length;
4688       }
4689       var note_papan4=notes_papan4[idx_papan4][1];
4690       $('#note_id_papan4').val(idx_papan4);
4691       $('#kartu-ucapan-papan, #properties-kartu-ucapan, #properties-kartu-pesan').val(note_papan4);
4692       console.log(note_papan4, 'note_papan4')
4693       var text_length_papan4=$('#kartu-ucapan-papan').val().length;
4694       var idx_2_papan4=parseInt($('#note_btn_id_papan4').val());
4695       if(isNaN(idx_2_papan4)){
4696         idx_2_papan4=0;
4697       }else{
4698         idx_2_papan4++;
4699         //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length;
4700       }
4701       $('#note_btn_id_papan4').val(idx_2_papan4);
4702     });
4703 
4704     /*
4705     $("#jenisPapan").change(function(){
4706       $( "select option:selected").each(function(){
4707         if($(this).attr("value")=="Happy Wedding"){
4708           $("#suggest-messages a").hide();
4709           $("#show_note_papan1").show();
4710           $("#kartu-ucapan-papan").val("");
4711         }
4712         if($(this).attr("value")=="Congratulations"){
4713           $("#suggest-messages a").hide();
4714           $("#show_note_papan2").show();
4715           $("#kartu-ucapan-papan").val("");
4716         }
4717         if($(this).attr("value")=="Duka Cita"){
4718           $("#suggest-messages a").hide();
4719           $("#show_note_papan3").show();
4720           $("#kartu-ucapan-papan").val("");
4721         }
4722       });
4723     }).change();
4724     */
4725 
4726     
4727 
4728     
4729 
4730     $(".variant-metafield").each(function(){
4731       const t = $(this)
4732       const id = t.attr("id")
4733       const target = $(`[data-select=${id}]`)
4734       t.on('select2:selecting', function(e) {
4735         const data = e.params.args.data
4736         target.val(data.text)
4737       });
4738     })
4739   })
4740 </script>
4740
4741 
4742 <div id="popupCart">
4743   <div class="container">
4744     <div class="wrapperPopupCart">
4745       <div class="headerPopupCart">
4746         <div class="d-flex pl-5 pr-5 p-4">
4747           <svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="16" height="12" viewBox="0 0 16 12" fill="none">
4748             <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"/>
4749           </svg>
4750           <span>item added to your cart</span>
4751         </div>
4752         <a class="close-purchase-popup">
4753   <svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="18" height="18" viewBox="0 0 18 18" fill="none">
4754     <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"/>
4755   </svg>
4756 </a>
4757 
4758       </div>
4759       <div class="contentPopupCart">
4760         <div class="pl-5 pr-5 p-4">
4761           <div class="itemContent row m-0 justify-content-between">
4762             <div class="col-2 align-self-center">
4763               
4764               <img
4765                 class="d-block"
4766                 width="80"
4767                 src="//outerbloom.com/cdn/shop/files/Blossom-Shine-WM_80x.jpg?v=1695788426"
4768               >
4769             </div>
4770             <div class="col-10 align-self-center">
4771               <div class="row pl-3">
4772                 <div class="col-12 col-lg-7">
4773                   <span class="titleCartPopup text-uppercase">LINK BARU 5000 PERAK BISA JADI JUTAAN DI SITUS TOTO SLOT777  GACOR INI DUATOTO 2026</span>
4774                 </div>
4775                 <div class="d-flex justify-content-end col-12 col-lg-5">
4776                   <span class="deleteCartPopup hide">Delete</span>
4777                   <span class="lineCartPrice align-self-center">Rp 10.000</span>
4778                 </div>
4779               </div>
4780             </div>
4781           </div>
4782           <div class="itemProperties">
4783             
4784               <div class="propDeliver">
4785                 <h4>delivery option detail</h4>
4786                 <p>
4787                   <span>delivery city</span>
4788                   <span class="propDeliveryCity">jakarta</span>
4789                 </p>
4790                 <p>
4791                   <span>delivery date</span>
4792                   <span class="propDeliveryDate">24/03/2025</span>
4793                 </p>
4794                 <p>
4795                   <span>delivery time</span>
4796                   <span class="propDeliveryTime">Afternoon | 13:00 - 18:00</span>
4797                 </p>
4798               </div>
4799               <div class="propAddress">
4800                 <h4>delivery option detail</h4>
4801                 <p>
4802                   <span>RECIPIENT NAME</span>
4803                   <span class="propDeliveryName">jane doe</span>
4804                 </p>
4805                 <p>
4806                   <span>delivery address</span>
4807                   <span class="propDeliveryAddress"
4808                     >Jl. Gatot Subroto No. 25, RT.2/RW.4, Kuningan Barat, Kecamatan Mampang Prapatan, Kota Jakarta
4809                     Selatan, Daerah Khusus Ibukota Jakarta 12710, Indonesia</span
4810                   >
4811                 </p>
4812                 <p>
4813                   <span>recipient phone number</span>
4814                   <span class="propDeliveryPhone">(+62) 812-3456-7890</span>
4815                 </p>
4816                 <p>
4817                   <span>PROVINCE</span>
4818                   <span class="propDeliveryProv">Jakarta</span>
4819                 </p>
4820                 <p>
4821                   <span>postal code</span>
4822                   <span class="propDeliveryZip">12710</span>
4823                 </p>
4824                 
4825                 
4826               </div>
4827             
4828           </div>
4829           <div class="itemAddonCart">
4830             <div class="toggleAddonCart d-flex justify-content-between">
4831               <h4>add-ons (0)</h4>
4832               <svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="5" height="9" viewBox="0 0 5 9" fill="none">
4833                 <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"/>
4834               </svg>
4835             </div>
4836             <div class="wrapperItemAddonCart"></div>
4837           </div>
4838           
4839         </div>
4840       </div>
4841       <div class="footerPopupCart">
4842         <div class="row m-0 pl-5 pr-5 p-4">
4843           <a class="btn btnViewCart w-100 text-uppercase text-center" href="/cart">View Cart</a>
4844           <a class="btn btnViewCheckout w-100 text-uppercase text-center" href="/checkout"><span>Checkout</span></a>
4845           <a class="btnContinueShopping w-100 text-center" href="/">Continue shopping</a>
4846         </div>
4847       </div>
4848     </div>
4849   </div>
4850 </div>
4851 
4852 
4853 
4853<script>
4854   const shareButton = document.getElementById('shareButton');
4855 
4856   shareButton.addEventListener('click', () => {
4857     if (navigator.share) {
4858       navigator.share({
4859         title: "LINK BARU 5000 PERAK BISA JADI JUTAAN DI SITUS TOTO SLOT777  GACOR INI DUATOTO 2026",
4860         url: "/products/blossom-shine",
4861         text: 'Check out this page!'
4862       })
4863       .then(() => console.log('Successful share'))
4864       .catch((error) => console.log('Error sharing', error));
4865     } else {
4866       alert('Web Share API is not supported in this browser.');
4867     }
4868   });
4869 
4870   // Inventory validation function
4871   function checkInventoryStatus() {
4872     const productSelect = document.getElementById('productSelect');
4873     const purchaseButton = document.querySelector('#personalizeBtn button');
4874     
4875     if (!productSelect || !purchaseButton) return;
4876 
4877     const selectedVariantId = productSelect.value;
4878     
4879     // Get variant data from Shopify
4880     fetch(`/products/blossom-shine.js`)
4881       .then(response => response.json())
4882       .then(product => {
4883         const selectedVariant = product.variants.find(variant => variant.id == selectedVariantId);
4884         
4885         if (selectedVariant) {
4886           const isOutOfStock = selectedVariant.inventory_quantity <= 0 && 
4887                                selectedVariant.inventory_management === 'shopify' && 
4888                                selectedVariant.inventory_policy !== 'continue';
4889           
4890           if (isOutOfStock) {
4891             purchaseButton.disabled = true;
4892             purchaseButton.textContent = 'Out of Stock';
4893             purchaseButton.setAttribute('data-out-of-stock', 'true');
4894             purchaseButton.style.backgroundColor = '#cccccc';
4895             purchaseButton.style.cursor = 'not-allowed';
4896           } else {
4897             // Check if button was disabled due to other conditions
4898             
4899             
4900             
4901             
4902             
4903             
4904             
4905             
4906             const isOtherDisabled = false || true || false;
4907             
4908             if (!isOtherDisabled) {
4909               purchaseButton.disabled = false;
4910               purchaseButton.textContent = 'customize your flower board';
4911               purchaseButton.removeAttribute('data-out-of-stock');
4912               purchaseButton.style.backgroundColor = '';
4913               purchaseButton.style.cursor = '';
4914             }
4915           }
4916         }
4917       })
4918       .catch(error => {
4919         console.error('Error checking inventory:', error);
4920       });
4921   }
4922 
4923   // Check inventory on page load
4924   document.addEventListener('DOMContentLoaded', function() {
4925     checkInventoryStatus();
4926     
4927     // Listen for variant changes
4928     const productSelect = document.getElementById('productSelect');
4929     if (productSelect) {
4930       productSelect.addEventListener('change', checkInventoryStatus);
4931     }
4932   });
4933 
4934   // Prevent form submission if out of stock
4935   document.addEventListener('click', function(e) {
4936     if (e.target.matches('button[data-out-of-stock="true"]')) {
4937       e.preventDefault();
4938       e.stopPropagation();
4939       alert('This product is currently out of stock and cannot be purchased.');
4940       return false;
4941     }
4942   });
4943 </script>
4943
4944 
4945 
4946   
4947 </div>
4948 
4949           </div>
4950         </div>
4951       </div>
4952     </div>
4953     <div id="product-bottom">
4954       
4955           <div class="container">
4956             
4957 
4958 
4959 
4960 
4961     <div class="short-desc-mobile d-block d-lg-none mb-3">
4962         <div class="short-desc">
4963             <ul>
4964 <li><strong>DUATOTO 2026 hadir dengan akses baru serba cepat dan pilihan permainan Toto & Slot777 dalam satu platform. Nikmati pengalaman bermain praktis dengan nominal mulai Rp5.000 dan berbagai fitur menarik.</strong></li>
4965         </div>
4966         <label class="more-mobile">Show More →</label>
4967     </div>
4968 
4969 <style>
4970 .animated-title {
4971     text-align: center;
4972     font-weight: bold;
4973     color: #079c02;
4974     font-size: 28px;
4975     position: relative;
4976     animation: glow 2s infinite alternate, moveUpDown 3s infinite;
4977 }
4978 
4979 /* Efek glow / bercahaya hijau */
4980 @keyframes glow {
4981     0% { text-shadow: 0 0 5px #079c02; color: #079c02; }
4982     50% { text-shadow: 0 0 20px #00ff55; color: #12d12b; }
4983     100% { text-shadow: 0 0 10px #1bff00; color: #079c02; }
4984 }
4985 
4986 /* Efek gerakan naik turun */
4987 @keyframes moveUpDown {
4988     0% { transform: translateY(0px); }
4989     50% { transform: translateY(-5px); }
4990     100% { transform: translateY(0px); }
4991 }
4992 </style>
4993 
4994 
4994<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/shopify-cartjs/1.1.0/cart.min.js"></script>
4994
4995 
4995<script>
4996   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});
4997 
4998   const productType = $("[data-product-type]").data("product-type")
4999   const productDate = Date.parse(new Date())
5000   
5001   const shop = 'outerbloom1.myshopify.com'
5002   const host = 'https://app.asmaraku.com'
5003   // const host = 'http://localhost:5001'
5004 
5005   const gsheet = "https://script.google.com/macros/s/AKfycbyqa6mPD6lVjU6hiHr12J8URZ2aJBGyxBsGQ0QtEIDari-rBk_9vSOITjSSmUXL1NwxEg/exec"
5006   
5007   const qrID = "041025" + randomString(4, 'aAbCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ')
5008 
5009   $("#properties-time").val(new Date().getTime())
5010 
5011   const isIOS = /iPhone|iPad|iPod/i.test(navigator.userAgent);
5012 
5013   if(!isIOS) {
5014     $("#full-date").attr("type", "button")
5015   }
5016 
5017   let dateTime = new Date();
5018   let today = dateTime.getDate();
5019   let day = dateTime.getDay();
5020   let hour = dateTime.getHours();
5021   let min = dateTime.getMinutes();
5022   let timeOfDay = hour + (min / 100);
5023 
5024   async function getFetch(url) {
5025     const response = await fetch(url);
5026     let status = false
5027     let result
5028     if(response.ok) {
5029       status = true
5030       result = await response.json();
5031     }
5032     return {
5033       status,
5034       data: result
5035     }
5036   }
5037 
5038   
5039 
5040   function setCookie(cname, cvalue, exMins) {
5041     var d = new Date();
5042     d.setTime(d.getTime() + (exMins*60*1000));
5043     var expires = "expires="+d.toUTCString();  
5044     document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
5045   }
5046 
5047   function getCookie(cname) {
5048     let name = cname + "=";
5049     let decodedCookie = decodeURIComponent(document.cookie);
5050     let ca = decodedCookie.split(';');
5051     for(let i = 0; i <ca.length; i++) {
5052       let c = ca[i];
5053       while (c.charAt(0) == ' ') {
5054         c = c.substring(1);
5055       }
5056       if (c.indexOf(name) == 0) {
5057         return c.substring(name.length, c.length);
5058       }
5059     }
5060     return "";
5061   }
5062 
5063   async function renderDate() {
5064     let dataDate = await getFetch(`${host}/api/shipping/date?domain=${shop}&productId=8144957800663&v=${Date.now()}`);
5065     console.log(dataDate, 'renderDate')
5066     const data = dataDate?.data
5067     const date = data.date
5068     const time = data.time
5069 
5070     console.log(date, 'DATE')
5071 
5072     const weekday = ["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];
5073     const monthly = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];
5074     const htmlDate = []
5075     for(let i = 0;i < date.length;i++) {
5076       const full = date[i].date
5077       const d = new Date(date[i].date);
5078       const day = weekday[d.getDay()];
5079       const dt = d.getDate();
5080       const mt = monthly[d.getMonth()];
5081       const yr = d.getFullYear();
5082       const isDate = Boolean(date[i].isEnabled)
5083       const cutoffpagi = date[i].cutoff?.pagi
5084       const cutoffsiang = date[i].cutoff?.siang
5085       const cutoffMalam = date[i].cutoff?.Malam
5086       var html = `
5087         <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'}>
5088           ${dt === today ?
5089             `Today<span>${dt < 10 ? '0' + dt : dt}</span>` :
5090             `${day}<span>${dt < 10 ? '0' + dt : dt}</span>`
5091           }
5092         </button>
5093       `
5094       htmlDate.push(html)
5095     }
5096     const htmlTime = []
5097     for(var i = 0;i < time.length;i++) {
5098       const timeText = time[i].text
5099       const timeTime = time[i].time
5100       const timeEnabled = time[i].isEnabled
5101       var html = `
5102           <button class="time-single calendarbutton2 btn steps-btn" data-time="${timeText}" ${timeEnabled ? '' : 'disabled'}>${timeText}<br/>${timeTime}</button>
5103         `
5104       htmlTime.push(html)
5105     }
5106     const deliveryDate = document.getElementById("deliveryDate");
5107     if(deliveryDate) {
5108       deliveryDate.insertAdjacentHTML("afterbegin", htmlDate.join(''))
5109       $("#deliveryTime").html(htmlTime)
5110       if(productType !== '') {
5111         console.log("clarity event " + productType + ' calendaring')
5112         window.clarity("event", `${productType} calendaringSchedule`)
5113         // window.clarity("set", productType, `calendaringSchedule - ${productDate}`)
5114       }
5115     }
5116   }
5117 
5118   async function getProvince(city) {
5119     let { data: { province } } = await getFetch(`${host}/api/shipping/address/province?city=${city}`);
5120     console.log(province, 'province')
5121     $("#province").val(province)
5122   }
5123 
5124   async function renderAddress() {
5125     let current
5126     if(getCookie("location_delivery")){
5127       current = getCookie("location_delivery").charAt(0).toUpperCase() + getCookie("location_delivery").slice(1)
5128     }
5129     let address = await getFetch(`${host}/api/shipping/address?domain=${shop}&productId=8144957800663`);
5130     console.log(address)
5131     const data = address?.data?.city
5132     const htmlAddress = []
5133     const grouping = []
5134     for(let i = 0;i < data?.length;i++) {
5135       if(data[i]){
5136         if(data[i]?.group) {
5137           grouping.push(data[i].group)
5138         }
5139         const price = rupiah.format(data[i]?.rate)
5140         let promo = '(Promo Free Delivery)'
5141         if(data[i]?.name === 'Jakarta - PickUp ASHTA'){
5142           promo = '(at SCBD, Ashta)'
5143         } else if(data[i]?.name === 'Jakarta - PickUp ITC'){
5144           promo = '(at Kuningan, ITC Kuningan)'
5145         } else if(data[i]?.name === 'BSD - PickUp'){
5146           promo = '(at Goldfinch Gading Serpong)'
5147         } else if(data[i]?.name === 'Kota Lainnya'){
5148           promo = ''
5149         }
5150         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>`)
5151       }
5152     }
5153     
5154     const deliveryCity = document.getElementById("cities");
5155     if(deliveryCity) {
5156       deliveryCity.insertAdjacentHTML("beforeend", htmlAddress.join(''))
5157       if(!isIOS) {
5158         $(deliveryCity).select2();
5159       }
5160     }
5161   }
5162 
5163   async function renderZip(v, v2, v3) {
5164     const deliveryZip = document.getElementById("zip");
5165     if(v === '') {
5166       return
5167     }
5168     let dataZip = await getFetch(`${host}/api/shipping/address/zip?city=${v}&city2=${v2}&city3=${v3}`);
5169     let zip = dataZip?.data?.zip
5170     console.log(zip)
5171     let htmlZip = []
5172     for(let i = 0; i < zip?.length;i++) {
5173       htmlZip.push(`<option value="${zip[i]?.postalCode} - ${zip[i]?.subdistrict}">${zip[i]?.postalCode} - ${zip[i]?.subdistrict} - ${zip[i]?.city}</option>`)
5174     }
5175     deliveryZip.insertAdjacentHTML("beforeend", htmlZip.join(''))
5176   }
5177 
5178   renderDate()
5179   renderAddress()
5180 
5181   let rupiah = new Intl.NumberFormat('id-ID', {
5182     style: 'currency',
5183     currency: 'IDR',
5184     maximumFractionDigits: 0, 
5185     minimumFractionDigits: 0
5186   });
5187 
5188   async function insertCard(data) {
5189     const response = await fetch(`${host}/api/card/new`, {
5190         method: "POST",
5191         headers: {
5192           'Content-Type': 'application/json',
5193         },
5194         body: data
5195     })
5196     const result = await response.json()
5197     let rowIndex = result?.data?.tableRange.split("Outerbloom!A1:J")[1]
5198     $("#greetingCard").attr("data-index", rowIndex)
5199     return result
5200   }
5201     
5202   async function updateCard(data){
5203     const rowIndex = $("#greetingCard").data("index")
5204     const response = await fetch(`${host}/api/card/update?rowIndex=${rowIndex}`, {
5205         method: "PUT",
5206         headers: {
5207           'Content-Type': 'application/json',
5208         },
5209         body: data
5210     })
5211     return response
5212   }
5213     
5214   function bytesToSize(bytes) {
5215     var sizes = ['b', 'kb', 'mb', 'gb', 'tb', 'p'];
5216     for (var i = 0; i < sizes.length; i++) {
5217       if (bytes <= 1024) {
5218         return bytes + ' ' + sizes[i];
5219       } else {
5220         bytes = parseFloat(bytes / 1024).toFixed(2)
5221       }
5222     }
5223     return bytes + ' P';
5224   }
5225 
5226   async function uploadMedia(uri, type) {
5227     nameq = $("#properties-nama-penerima").val()
5228     dear = $("#properties-kartu-nama-penerima").val()
5229     card = $("[data-properties=ucapan]").val()
5230     sender = $("#properties-kartu-nama-pengirim").val()
5231     photo = $("#properties-photo").val()
5232     video = $("#properties-video").val()
5233     status = "Product"
5234         
5235     const name = qrID
5236     let formData = new FormData(); 
5237     formData.append("file", uri);
5238     const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, {
5239       method: "POST", 
5240       body: formData
5241     })
5242     const result = await response.json();
5243     if(result) {
5244       const url = result.url
5245       if(type === 'image/jpeg') {
5246         $("#properties-photo").val(url)
5247         $(".preview-image").show()
5248         $(".remove-image").show()
5249         photo = url
5250       } else {
5251         $("#properties-video").val(url)
5252         $("#label-input-video span").text("Change File")
5253         $(".case-qrcode-preview p").text("Scan here for a secret message")
5254         $(".remove-media").show()
5255         $("#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>`)
5256         $("[for=input-video]").hide()
5257         video = url
5258       }
5259       $(".case-video-preview").show()
5260       $(".steps-card-preview").removeClass("loading")
5261       // updateCard(nameq, dear, card, sender, photo, video, status)
5262 
5263       $(".nextBtn").attr("disabled", false)
5264     }
5265   }
5266 
5267   function randomString(length, chars) {
5268     var result = '';
5269     for (var i = length; i > 0; --i) result += chars[Math.round(Math.random() * (chars.length - 1))];
5270     return result;
5271   }
5272 
5273   function getNoteCity(fulldate) {
5274     const h_1 = new Date(new Date().setDate(new Date().getDate() + 1))
5275     const weekday = ["Min","Sen","Sel","Rab","Kam","Jum","Sab"];
5276     const monthly = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];
5277     const d = new Date(h_1);
5278     const day = weekday[d.getDay()];
5279     const dt = d.getDate();
5280     const mt = monthly[d.getMonth()];
5281     const yr = d.getFullYear();
5282     const p = $("#cities").parent(".form-group")
5283   }
5284 
5285   function disabledSameDay() {
5286     let btnFirst = $("#deliveryDate").find("button:first-child")
5287     let getDay = new Date().getDay();
5288 
5289     
5290       
5291       if(getDay == 1 || getDay == 2 || getDay == 3 || getDay == 4 || getDay == 5){
5292         if(hour >= 14.00){
5293           btnFirst.attr("disabled", true)
5294         }
5295       } else if(getDay == 6){
5296         if(hour >= 16.00){
5297           btnFirst.attr("disabled", true)
5298         }
5299       } else if(getDay == 0){
5300         if(hour >= 16.00){
5301           btnFirst.attr("disabled", true)
5302         }
5303       }
5304       
5305     
5306   }
5307 
5308   function disabledays(date) {
5309     let ymd = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate();
5310     //if u have to disable a list of day
5311     let removeDays
5312     
5313     
5314     
5315         removeDays = ["2025-2-13", "2025-2-14"];
5316     
5317     if ($.inArray(ymd, removeDays) >= 0) {
5318       return [false];
5319     } else {
5320       let day = date.getDay();
5321       if(day == 0 && date.getDate() == 13 && date.getMonth() == 1){
5322           return [(day == 0),  ''];
5323       }
5324       
5325       if(day == 0){
5326         return [(day == 0),  ''];
5327       }
5328       
5329       
5330       return [(day != 0),  ''];
5331     }
5332   }
5333 
5334   /* Indonesian initialisation for the jQuery UI date picker plugin. */
5335   /* Written by Deden Fathurahman ([email protected]). */
5336   ( function( factory ) {
5337     if ( typeof define === "function" && define.amd ) {
5338 
5339       // AMD. Register as an anonymous module.
5340       define( [ "../widgets/datepicker" ], factory );
5341     } else {
5342 
5343       // Browser globals
5344       factory( jQuery.datepicker );
5345     }
5346   }( function( datepicker ) {
5347 
5348   datepicker.regional.id = {
5349     closeText: "Tutup",
5350     prevText: "&#x3C;mundur",
5351     nextText: "maju&#x3E;",
5352     currentText: "Today",
5353     monthNames: [ "January","February","March","April","May","Juny",
5354                   "July","August","September","October","November","December" ],
5355     monthNamesShort: [ "Jan","Feb","Mar","Apr","May","Jun",
5356                       "Jul","Agu","Sep","Oct","Nov","Dec" ],
5357     dayNames: [ "Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu" ],
5358     dayNamesShort: [ "Sun","Mon","Tue","Wed","Thu","Fri","Sat" ],
5359     dayNamesMin: [ "Mg","Sn","Sl","Rb","Km","jm","Sb" ],
5360     weekHeader: "Mg",
5361     dateFormat: "D, dd M",
5362     firstDay: 0,
5363     isRTL: false,
5364     showMonthAfterYear: false,
5365     yearSuffix: "" };
5366   datepicker.setDefaults( datepicker.regional.id );
5367 
5368   return datepicker.regional.id;
5369 
5370 } ) );
5371 
5372   function loadPopup() {
5373     $("#backgroundPopup").fadeIn("slow");
5374     $(".purchasePopup:not(.purchasePopupSpotify)").fadeIn("slow");
5375     const firstSection = $(".purchasePopup:not(.purchasePopupSpotify) .sectionPurchase").first()
5376     if(firstSection.hasClass("purchasePersonalize")) {
5377       if(productType !== '') {
5378         console.log("clarity event " + productType + ' personalize')
5379         window.clarity("event", `${productType} cardPersonalization`)
5380         // window.clarity("set", productType, `cardPersonalization - ${productDate}`)
5381       }
5382     } else if (firstSection.hasClass("sectionPurchaseBoard")) {
5383         console.log("clarity event " + productType + ' personalizeBoard')
5384         window.clarity("event", `${productType} personalizeBoard`)
5385         // window.clarity("set", productType, `personalizeBoard - ${productDate}`)
5386     }
5387     firstSection.removeClass("hide")
5388     
5389     // Auto-trigger addon loading when addon section becomes visible
5390     setTimeout(function() {
5391       const addonSection = $(".purchaseAddon")
5392       if(addonSection.length > 0 && !addonSection.hasClass("hide")) {
5393         if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) {
5394           $("[data-addon=upsell-all]").trigger("click")
5395         }
5396       }
5397     }, 200)
5398   }
5399 
5400   function disablePopup() {
5401     $("#backgroundPopup").fadeOut("slow");
5402     $(".purchasePopup").fadeOut("slow");
5403     $("#popupCart").fadeOut("slow");
5404   }
5405 
5406     function scrollTo(parent, div, dur) {
5407       $(parent).animate({
5408         scrollTop: $(div).offset().top
5409       }, dur);
5410     }
5411 
5412   function loadPopupPersonalize() {
5413     const div = "#purchaseProduct"
5414     const p = "html, body, .product-meta"
5415     $("p.error").remove()
5416     loadItemOccasion($("[data-occassion]").eq(0), "greeting-card-all")
5417     const isCity = $("#cities[required]")
5418     const isDate = $("#propDeliveryDate[required]")
5419     const isTime = $("#propDeliveryTime[required]")
5420     // loadPopup()
5421     if(isCity.val() !== '' && isDate.val() !== '' && isTime.val() !== '') {
5422       loadPopup()
5423     }
5424     if(isCity.val() == '') {
5425       isCity.parent(".row").append("<p class='error'>Choose delivery city</p>")
5426       scrollTo(p, div, 500)
5427     }
5428     if(isDate.val() == '') {
5429       isDate.parents(".row").append("<p class='error'>Choose delivery date</p>")
5430       scrollTo(p, div, 500)
5431     }
5432     if(isTime.val() == '') {
5433       isTime.parents(".row").append("<p class='error'>Choose delivery time</p>")
5434       scrollTo(p, div, 500)
5435     }
5436   }
5437 
5438   function quantityCounter() {
5439     $(document).on("click", ".item-card.selected .q_up", function () {
5440       var C = $(this).attr("data-id"),
5441           S =
5442               parseInt(
5443                   $(this)
5444                       .siblings(".quantity-cart-" + C)
5445                       .val()
5446               ) + 1;
5447       $(this).attr("data-quantity", S),
5448           $(this)
5449               .siblings(".quantity-cart-" + C)
5450               .val(S);
5451     }),
5452     $(document).on("click", ".item-card.selected .q_down", function () {
5453         var C = $(this).attr("data-id"),
5454             S = parseInt(
5455                 $(this)
5456                     .siblings(".quantity-cart-" + C)
5457                     .val()
5458             );
5459         0 < S && $(this).attr("data-quantity", S - 1),
5460             0 < S &&
5461                 $(this)
5462                     .siblings(".quantity-cart-" + C)
5463                     .val(S - 1);
5464     });
5465   }
5466 
5467   quantityCounter()
5468 
5469   const itemAddon = $(".item-card").length
5470   const nofree = $(".nofree").length
5471 
5472   const upsell = ''
5473   
5474   if(nofree === itemAddon) {
5475       // $("#itemAddons").html("<p>No Items available</p>")
5476   }
5477 
5478   $("#itemAddons .item-card").each(function(e){
5479       $("#itemAddons").attr("data-length", e)
5480   })
5481 
5482   $("[data-addon]").click(function(){
5483       
5484       
5485       
5486       const t = $(this)
5487       
5488       const data = t.data("addon")
5489       
5490       $("[data-addon]").removeClass("selected")
5491       t.addClass("selected")
5492       $.get(`https://outerbloom.com/collections/${data}/products.json`, function(data, status){
5493           const products = data.products
5494           const html = []
5495           for(let i = 0; i < products.length; i++) {
5496               const id = products[i].id
5497               const variantId = products[i].variants[0].id
5498               const img = products[i].images[0].src
5499               let img2 = img.split('.jpg')[0]
5500               const title = products[i].title
5501               const price = products[i].variants[0].price
5502               const tags = products[i].tags
5503               const qty = products[i].variants[0].available
5504               let type_upsell = ''
5505               if(tags.includes('upsell-item-standing')) {
5506                   type_upsell = 'standing'
5507               }
5508               console.log(type_upsell)
5509               if(type_upsell !== '') {
5510                   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}">
5511                       
5512                           <div class="card-image">
5513                               <img src="${img2}_150x.jpg" alt="${title}" width="" height="" />
5514                           </div>
5515                           <div class="card-meta">
5516                               <h5>${title}</h5>
5517                               <p>${price < 1 ? 'FREE' : rupiah.format(price)}</p>
5518                               <input id="card-${variantId}" type="hidden" name="" value="${variantId}">
5519                           </div>
5520                           <div class="card-qty">
5521                               <a data-quantity="1" type="submit" id="q_down-${variantId}" class="btn-qty-min q_down drawer-cart" data-id="${variantId}"><svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="12" height="2" viewBox="0 0 12 2" fill="none"><path d="M0 1.90869V0.908691H12V1.90869H0Z" fill="black"/></svg></a>  
5522                               <input maxlength="3" min="0" class="btn-qty text-center quantity-cart-${variantId}
5522" value="0" data-price=${price} name="quantity">
5523                               <a data-quantity="1" type="submit" class="btn-qty-plus q_up text-green drawer-cart" data-id="${variantId}"><svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="12" height="13" viewBox="0 0 12 13" fill="none">
5524 <path d="M0 6.87023V5.94715H5.53846V0.408691H6.46154V5.94715H12V6.87023H6.46154V12.4087H5.53846V6.87023H0Z" fill="black"/>
5525 </svg></a>   
5526                           </div>
5527                       </div>`
5528                   html.push(body)
5529               }
5530           }
5531           $("#itemAddons .row").html(html.length === 0 ? '<p>No Item available</p>' : html)
5532           $("#itemAddons").attr("data-length", products.length)
5533           // $('#itemAddons')[0].swiper.update();
5534       });
5535   })
5536 
5537   async function isAddon(){
5538     let ids = []
5539     $("#itemAddons .item-card.selected").each(function(i, e){
5540       const id = $(this).data("id")
5541       ids.push(id)
5542     })
5543     console.log(ids)
5544     return ids
5545   }
5546   
5547   $("#itemAddons").delegate(".item-card > div:not(.card-qty)", "click", async function(){
5548     const t = $(this).parent()
5549     const id = t.data("id")
5550     const btn =  t.parents(".purchaseAddon").find(".next-purchase-button")
5551     t.toggleClass("selected");
5552     //$(this).next("input").toggleAttr('name', 'id[]');
5553     if (t.hasClass('selected')) {
5554         t.find("input").val(1)
5555         t.find("input").attr('name', 'id[]');
5556     } else {
5557         t.find("input").val(0)
5558         t.find("input").removeAttr('name');
5559     }
5560     $("#properties-addons").val(addons)
5561     const is = await isAddon()
5562     if(is.length === 0) {
5563       btn.text("continue without add-ons")
5564       return
5565     }
5566     if(is.includes(8835692069079)) {
5567       btn.text("personalize acrylic frame")
5568     } else {
5569       btn.text("Continue")
5570     }
5571       
5572   })
5573 
5574   async function myAddon(data) {
5575     const c = $(".addonsPurchase .addons")
5576     let items = []
5577     
5578     const spotifyAddons = $(".spotifyAddons").find("[data-index]")
5579     // if(spotifyAddons.length > 0) {
5580     //   $(spotifyAddons).each(function(i, e){
5581     //     const spotifyLink = $(this).find(".spotifyLink").val()
5582     //     const spotifySong = $(this).find(".spotifySong").val()
5583     //     const spotifyArtist = $(this).find(".spotifyArtist").val()
5584     //     const spotifyFotoAddon = $(this).find(".resultPhotoSpotify").val()
5585     //     if(spotifyLink !== '') {
5586     //       spotifyAddon = `<div class="addon-item" data-id="46067682607319" data-qty="1">
5587     //         <div class="addon-itm-img">
5588     //           <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"/>
5589     //         </div>
5590     //         <div class="addon-itm-title">
5591     //           <span>[US] Outerbloom Acrylic Frame 4R</span>
5592     //         </div>
5593     //         <div class="addon-itm-line-total">
5594     //           <span>Rp 99.000</span>
5595     //         </div>
5596     //       </div>
5597     //       <div class="propsAddonSpotify row m-0">
5598     //         <div class="col-12 col-lg-2"></div>
5599     //           <div class="col-12 col-lg-10">
5600     //             <p>
5601     //               <span>spotify link</span>
5602     //               <span class="spotifyLinkAddon">${spotifyLink}</span>
5603     //             </p>
5604     //             <p>
5605     //               <span>uploaded photo</span>
5606     //               <span class="spotifyFotoAddon">${spotifyFotoAddon}</span>
5607     //             </p>
5608     //             <p>
5609     //               <span>song / playlist name</span>
5610     //               <span class="spotifySongAddon">${spotifySong}</span>
5611     //             </p>
5612     //             <p>
5613     //               <span>artist name</span>
5614     //               <span class="spotifyArtistAddon">${spotifyArtist}</span>
5615     //             </p>
5616     //           </div>
5617     //       </div>`
5618     //       items.push(spotifyAddon)
5619     //     }
5620     //   })
5621     // }
5622     for(let i = 0; i < data.length; i++) {
5623       if(data[i].title !== '[US] Outerbloom Acrylic Frame 4R' ) {
5624         const img = data[i].image
5625         const title = data[i].title
5626         const qty = data[i].qty
5627         const price = data[i].price
5628         const total = Number(qty) * Number(price)
5629         let addons = `<div class="addon-item" data-id="${data[i].id}" data-qty="${qty}">
5630               <div class="addon-itm-img">
5631                 <img src="${img}" alt="" width="70"/>
5632               </div>
5633               <div class="addon-itm-title">
5634                 <span>${title}</span>
5635               </div>
5636               <div class="addon-itm-line-price">
5637                 <span>${rupiah.format(price)}</span>
5638                 ${data[i].title == '[US] Outerbloom Acrylic Frame 4R' ? '' : `<span>x${qty}</span>`}
5639               </div>
5640               <div class="addon-itm-line-total">
5641                 <span>${rupiah.format(total)}</span>
5642               </div>
5643             </div>`
5644           items.push(addons)
5645       }
5646     }
5647     c.html(items)
5648     const parent = $(".purchaseAddon")
5649     const next = parent.next(".sectionPurchase")
5650     parent.addClass("hide")
5651     next.removeClass("hide")
5652     // if(items2.length === 0) return $("#popupCart").addClass("no-addon-cart")
5653     // $(".itemAddonCart").find("h4").text(`add-ons (${items2.length})`)
5654   }
5655 
5656   async function listAddon() {
5657     const data = $("#itemAddons").find(".selected")
5658     let ids = []
5659     $(data).each(function(){
5660       const id = $(this).data("variant")
5661       const image = $(this).find(".card-image img").attr("src")
5662       const title = $(this).find(".card-meta h5").text()
5663       const qty = $(this).find(".card-qty input").val()
5664       const price = $(this).find(".card-qty input").data("price")
5665       ids.push({
5666         id: Number(id),
5667         image,
5668         title,
5669         qty,
5670         price
5671       })
5672     })
5673     myAddon(ids)
5674   }
5675 
5676   async function customSpotify(idx, length, type){
5677     let isCard = false
5678     
5679     let p = $(".purchasePopupSpotify")
5680     const preLink = $(".spotifyLinkFirst").val()
5681     $("[data-index]").hide()
5682     p.find(".headerPurchase h3").text(`personalize spotify photo print${length > 1 ? ` - ${idx}` : ''}`)
5683     p.find(".regulerAddons, .purchase-button").hide()
5684     p.find(".spotifyAddons").show()
5685     
5686     const data = await trackUrl(preLink)
5687     
5688     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://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="13" height="11" viewB
5688ox="0 0 13 11" fill="none">
5689 <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"/>
5690 </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://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif><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://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="13" height="11" viewB
5690ox="0 0 13 11" fill="none">
5691 <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"/>
5692 </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>`
5693     // console.log(html)
5694     
5695     $(".spotifyAddons").append(html)
5696     
5697     $(`[data-index=${idx}]`).show()
5698     
5699     if (preLink !== '') {
5700       $(".btn-action .btn").attr("disabled", false)
5701     } else {
5702       $(".btn-action .btn").attr("disabled", true)
5703     }
5704 
5705     return html
5706     
5707   }
5708 
5709   $(".spotifyLinkFirst").keyup(async function(){
5710     const v = $(this).val()
5711     if(v.includes('spotify:user:spotify')) {
5712       const correct = v.split('user:spotify:')[1]
5713       console.log(correct, 'BNER')
5714       $(this).val(correct)
5715       return
5716     }
5717     if(v.includes("spotify:") || v.includes("https://open.spotify.com/")){
5718       const data = await trackUrl(v)
5719       if(!data || !data.status) {
5720         $(this).parent().addClass("error")
5721         // $(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>`)
5722         $("#personalizeBtnSpotify .btn").attr("disabled", true)
5723         return
5724       }
5725       $(this).parent().removeClass("error")
5726       // $(this).parent().remove("txt-error")
5727       $("#personalizeBtnSpotify .btn").attr("disabled", false)
5728     } else {
5729       $("#personalizeBtnSpotify .btn").attr("disabled", true)
5730     }
5731   })
5732 
5733   $(".purchaseAddon").delegate(".next-addon", "click", function(){
5734     const parent = $(this).parents(".purchaseAddon")
5735     const next = parent.next(".sectionPurchase")
5736     if(next.hasClass("purchaseAddress")) {
5737       if(productType !== '') {
5738         console.log("clarity event " + productType + ' purchaseDelivery')
5739         window.clarity("event", `${productType} purchaseDelivery`)
5740         // window.clarity("set", productType, `purchaseDelivery - ${productDate}`)
5741       }
5742     }
5743     const data = $("#itemAddons").find(".selected")
5744     const length = $(".quantity-cart-46067682607319").val()
5745     const checked = data.length;
5746     if(checked > 0) {
5747       if(length > 0) {
5748         $(".purchaseAddon").addClass("purchaseAddonSpotify")
5749         customSpotify(1, length, 'addon')
5750       } else {
5751         listAddon()
5752       }
5753     } else {
5754       parent.addClass("hide")
5755       next.removeClass("hide")
5756     }
5757   })
5758 
5759   $("#personalizeBtnSpotify .btn").click(async function(){
5760     const isCity = $("#cities[required]")
5761     const isDate = $("#propDeliveryDate[required]")
5762     if((isDate.length > 0 && isCity.length > 0) && (isCity.val() === '' || isDate.val() === '')) {
5763       alert('Please choose Delivery City & Delivery Date')
5764       return
5765     }
5766     const data = await customSpotify(1, 1, 'product')
5767     if(data) {
5768       $("#backgroundPopup").fadeIn("slow");
5769       $(".purchasePopupSpotify").fadeIn("slow");
5770 
5771       if(productType !== '') {
5772         console.log("clarity event " + productType + ' spotify')
5773         window.clarity("event", `${productType} spotify`)
5774         // window.clarity("set", productType, `purchaseDelivery - ${productDate}`)
5775       }
5776     }
5777   })
5778 
5779   function formatBytes(bytes, decimals = 2) {
5780     if (!+bytes) return '0 Bytes'
5781 
5782     const k = 1024
5783     const dm = decimals < 0 ? 0 : decimals
5784     const sizes = ['B', 'KB', 'MB']
5785 
5786     const i = Math.floor(Math.log(bytes) / Math.log(k))
5787 
5788     return `${parseFloat((bytes / Math.pow(k, i)).toFixed(dm))} ${sizes[i]}`
5789   }
5790 
5791   async function trackUrl(link){
5792     try {
5793       let trackId = link.split('/').pop().split('?')[0];
5794       let type = ''
5795       if(link.includes("spotify:")) {
5796         const uri = link.split('spotify:')[1]
5797         trackId = uri.split(':')[1]
5798         type = uri.split(':')[0] + 's'
5799       } else {
5800         if(link.match('track')){
5801           type = 'tracks'
5802         } else if(link.match('playlist')) {
5803           type = 'playlists'
5804         } else if(link.match('artist')) {
5805           type = 'artists'
5806         } else if(link.match('album')) {
5807           type = 'albums'
5808         }
5809       }
5810       console.log(`${host}/api/spotify/${type}/${trackId}`)
5811       const data = await getFetch(`${host}/api/spotify/${type}/${trackId}`)
5812       console.log(data, 'DATA')
5813       const song = data?.data?.name
5814       const artist = data?.data?.artist
5815       return {
5816         song, artist, type, trackId, status: data.status
5817       }
5818     } catch(err) {
5819       console.log(err)
5820     }
5821   }
5822 
5823   $(".spotifyAddons").delegate(".uploadPhotoSpotify", "change", async function(){
5824     const parent = $(this).parents("[data-index]")
5825     const preview = parent.find(".previewImage")
5826     const file = $(this)[0].files[0];
5827     if (file) {
5828         const reader = new FileReader();
5829         reader.onload = async function(e) {
5830           parent.find(".uploadResult label").hide()
5831           parent.find(".uploadedResult").remove()
5832           parent.find(".uploadResult").append(`<div class="uploadedResult d-flex" style="justify-content: space-between">
5833           <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>
5834           <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;">
5834<svg fill="none" height="11" viewBox="0 0 10 11" width="10" xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif">
5835   <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 />
5836 </svg>
5837 </span></div></div>`)
5838           parent.find(".frameImageUploaded svg").hide()
5839           parent.find(".frameImage").addClass("uploaded")
5840           preview.attr("src", e.target.result);
5841           preview.show();
5842           let formData = new FormData(); 
5843           formData.append("file", file);
5844           const response = await fetch(`${host}/api/upload?name=${file.name}&type=image/jpeg&r=${Date.parse(new Date)}`, {
5845             method: "POST", 
5846             body: formData
5847           })
5848           const result = await response.json();
5849           if(result){
5850             parent.find(".resultPhotoSpotify").val(result.url)
5851           }
5852         }
5853         
5854         reader.readAsDataURL(file);
5855     } else {
5856         preview.hide();
5857     }
5858   });
5859 
5860   $(".spotifyAddons").delegate(".uploadResult", "click", function(){
5861     $(this).next("input[type=file]").trigger("click")
5862   })
5863 
5864   $(".spotifyAddons").delegate(".changeUpload", "click", function(){
5865     $(this).parents("input[type=file]").trigger("click")
5866   })
5867 
5868   $(".spotifyAddons").delegate(".removeUpload", "click", function(){
5869     const parent = $(this).parents("[data-index]")
5870     parent.find(".uploadPhotoSpotify").val("")
5871     parent.find(".uploadResult label").show()
5872     parent.find(".uploadedResult").remove()
5873     parent.find(".frameImageUploaded svg").show()
5874     parent.find(".previewImage").hide()
5875     parent.find(".frameImage").removeClass("uploaded")
5876   })
5877 
5878   $(".spotifyAddons").delegate("label.checkbox", "click", function(){
5879     const parent = $(this).parents("[data-index]")
5880     parent.toggleClass("checked")
5881   })
5882 
5883   $(".spotifyAddons").delegate(".spotifyLink", "change", async function(){
5884     const parent = $(this).parents("[data-index]")
5885     const link = $(this).val()
5886     const data = await trackUrl(link)
5887 
5888     console.log(data)
5889 
5890     if(data.song) {
5891       parent.find(".spotifySong").val(data.song)
5892       parent.find(".spotifyData").find("h3").text(data.song)
5893     }
5894     if(data.artist) {
5895       parent.find(".spotifyArtist").val(data.artist)
5896       parent.find(".spotifyData").find("p").text(data.artist)
5897     }
5898     parent.find(".spotifyCode img").attr("src", `https://scannables.scdn.co/uri/plain/png/FFFFFF/black/640/spotify:${data.type.slice(0, -1)}:${data.trackId}`)
5899     // https://scannables.scdn.co/uri/plain/png/FFFFFF/black/640/spotify:track:1er51HCEBhIAtoEemKuC3M
5900     if (data.status === true) {
5901       parent.find(".btn-action .btn").attr("disabled", false)
5902     } else {
5903       parent.find(".btn-action .btn").attr("disabled", true)
5904     }
5905   })
5906   
5907   $(".spotifyAddons").delegate(".spotifySong", "keyup", async function(){
5908     const parent = $(this).parents("[data-index]")
5909     const v = $(this).val()
5910     parent.find(".spotifyData h3").text(v)
5911   })
5912 
5913   $(".spotifyAddons").delegate(".spotifyArtist", "keyup", async function(){
5914     const parent = $(this).parents("[data-index]")
5915     const v = $(this).val()
5916     parent.find(".spotifyData p").text(v)
5917   })
5918 
5919   $(".spotifyAddons").delegate(".btn-action .btn:not(.no-addon)", "click", async function(){
5920     const parent = $(this).parents("[data-index]")
5921     const length = parent.data("length")
5922     const index = parent.data("index")
5923     const indexNext = Number(index) + 1
5924     customSpotify(indexNext, length, 'addon')
5925   })
5926 
5927   
5928   $(".spotifyAddons").delegate(".btn-action .btn.finished", "click", async function(){
5929     const parent = $(this).parents(".purchaseAddon")
5930     const next = parent.next(".sectionPurchase")
5931     parent.addClass("hide")
5932     next.removeClass("hide")
5933     next.find(".purchase-button").show()
5934     listAddon()
5935   })
5936 
5937   $(".spotifyAddons").delegate(".back-spotify", "click", async function(){
5938     const t = $(this).parents("[data-index]")
5939     const parent = $(this).parents(".sectionPurchase")
5940     const current = t.data("index")
5941     const prevCurrent = Number(current) - 1
5942     if(current == 1) {
5943       parent.removeClass("purchaseAddonSpotify")
5944       parent.find(".purchase-button").show()
5945       parent.find(".headerPurchase h3").text("Make It More Special with Add-Ons!")
5946       $(".spotifyAddons").empty()
5947       $(".regulerAddons").show()
5948       return
5949     }
5950     t.hide()
5951     t.prev("[data-index]").show()
5952     t.remove()
5953     parent.find(".headerPurchase h3").text(`personalize spotify photo print - ${prevCurrent}`)
5954   })
5955 
5956   $("#personalizeBtn .btn").click(async function() {
5957     loadPopupPersonalize()
5958   });
5959 
5960   $(".sectionPurchaseSpotify").delegate(".btn[data-type=card]", "click", function(){
5961     $(".sectionPurchaseSpotify").hide()
5962     loadPopupPersonalize()
5963   })
5964 
5965   $(".close-purchase-popup").click(function() {
5966       disablePopup();
5967   });
5968   $("#backgroundPopup").click(function() {
5969       // disablePopup();
5970   });
5971 
5972   $("#popupCart .close-purchase-popup").click(function() {
5973       location.reload()
5974   });
5975 
5976   $('#popupCart').on('hide.bs.modal', function (e) {
5977     location.reload()
5978   })
5979 
5980   $(".next-card").click(function(){
5981     const parent = $(this).parents(".sectionPurchase")
5982     const next = parent.next(".sectionPurchase")
5983     parent.addClass("hide")
5984     next.removeClass("hide")
5985   })
5986 
5987   $(".back-purchase-button").click(function(){
5988     const parent = $(this).parents(".sectionPurchase")
5989     const prev = parent.prev(".sectionPurchase")
5990     parent.addClass("hide")
5991     prev.removeClass("hide")
5992   })
5993   
5994   $(document).keypress(function(e) {
5995       if (e.keyCode == 27 && popupStatus == 1) {
5996           disablePopup();
5997       }
5998   });
5999   
6000   const parentImg = $(".case-img-preview")
6001   const parentVid = $(".case-video-preview")
6002   
6003   function readURL(input) {
6004     if (input.files && input.files[0]) {
6005       let reader = new FileReader();
6006 
6007       let type = 'image/jpeg'
6008       const size = input.files[0].size
6009       if(input.files[0].type.match('video/')){
6010         type = 'video/mp4'
6011         if(size > 15728640) {
6012           alert('File size exceeds maximum limit 15 MB')
6013           return
6014         }
6015       } else {
6016         if(size > 5242880) {
6017           alert('File size exceeds maximum limit 5 MB')
6018           return
6019         }
6020       }
6021 
6022       reader.onload = function (e) {
6023         $(".nextBtn").attr("disabled", true)
6024         if(type === 'image/jpeg') {
6025           
6026             $('.placeholder-image').hide();
6027             $('.preview-image').show()
6028             $('.preview-image').attr('src', e.target.result);
6029           
6030         } else {
6031           // parentVid.find(".ajax-loader").show();
6032           $(".steps-card-preview").addClass("loading")
6033         }
6034       }
6035 
6036       
6037 
6038       reader.readAsDataURL(input.files[0]);
6039     }
6040   }
6041 
6042   async function readURLPapan(input) {
6043     if (input.files && input.files[0]) {
6044       let reader = new FileReader();
6045 
6046       reader.onload = function (e) {
6047         $('.btn-upload-papan').siblings('label').hide();
6048         $('.btn-upload-papan img').attr('src', e.target.result);
6049         $('.btn-upload-papan img').show();
6050         $('.svgLogoPapan').hide();
6051       }
6052       
6053       const type = 'image/jpeg'
6054       const name = `logo-8144957800663-${Date.parse(new Date())}`
6055 
6056       let formData = new FormData(); 
6057       formData.append("file", input.files[0]);
6058       const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, {
6059         method: "POST", 
6060         body: formData
6061       })
6062       const result = await response.json();
6063       if(result) {
6064         const url = result.url
6065         $("[data-properties=papan-logo]").val(url)
6066       }
6067 
6068       reader.readAsDataURL(input.files[0]);
6069     }
6070   }
6071 
6072   async function readURLAddress(input) {
6073     console.log(input, 'readURLAddress')
6074     if (input.files && input.files[0]) {
6075       let reader = new FileReader();
6076 
6077       reader.onload = function (e) {
6078         $('.photo-address').attr('src', e.target.result);
6079         $('.photo-address').show();
6080       }
6081       
6082       const type = 'image/jpeg'
6083       const name = input.files[0].name?.split('.')[0]
6084 
6085       let formData = new FormData(); 
6086       formData.append("file", input.files[0]);
6087       const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, {
6088         method: "POST", 
6089         body: formData
6090       })
6091       const result = await response.json();
6092 
6093       reader.readAsDataURL(input.files[0]);
6094 
6095       return result
6096     }
6097   }
6098 
6099   
6100 
6101   
6102   async function addToCartUang() {
6103     var productAddOnId1 = 42122101162199;
6104     var productAddOnId2 = 42122101194967;
6105     var product_id = 8144957800663
6106     const data = {
6107       items: [
6108           {
6109               quantity: $("#Quantity-" + productAddOnId1).val(),
6110               id: productAddOnId1,
6111               "properties": { "Time": $("#properties-time").val() }
6112           },
6113           {
6114               quantity: $("#Quantity-" + productAddOnId2).val(),
6115               id: productAddOnId2,
6116               "properties": { "Time": $("#properties-time").val() }
6117           }
6118       ]
6119     }
6120     await fetch(window.Shopify.routes.root + 'cart/add.js', {
6121       method: 'POST',
6122       headers: {
6123         'Content-Type': 'application/json'
6124       },
6125       body: JSON.stringify(data)
6126     })
6127     .then(response => {
6128       console.error('Sukses Buket Uang:', response);
6129       $(".form-flower").submit()
6130     })
6131     .catch((error) => {
6132       console.error('Error Buket Uang:', error);
6133       $(".form-flower").submit()
6134     });
6135   }
6136   
6137   async function saveCard(){
6138     let isCard = true
6139     const kartu_penerima = $("[data-properties=penerima]").val() !== '' ? $("[data-properties=penerima]").val() : ''
6140     const kartu_pengirim = $("[data-properties=pengirim]").val() !== '' ? $("[data-properties=pengirim]").val() : ''
6141     const kartu_ucapan = $("[data-properties=ucapan]").val() !== '' ? $("[data-properties=ucapan]").val() : ''
6142     const foto = $("#properties-photo").val()
6143     const video = $("#properties-video").val()
6144     const data = JSON.stringify({
6145       "id": qrID, 
6146       "penerima": $("#properties-nama-penerima").val(), 
6147       "kartu_penerima": kartu_penerima, 
6148       "kartu_ucapan": kartu_ucapan, 
6149       "kartu_pengirim": kartu_pengirim, 
6150       "foto": foto,
6151       "video": video, 
6152       "productId": "8144957800663", 
6153       "order_name": "", 
6154       "status": "Cart"
6155     })
6156 
6157     
6158   }
6159 
6160   async function additem(items){
6161     try {
6162       let formData = items
6163       if(items?.length) {
6164         formData = {
6165            'items': items
6166         };
6167       }
6168   
6169       const add = await fetch(window.Shopify.routes.root + 'cart/add.js', {
6170         method: 'POST',
6171         headers: {
6172           'Content-Type': 'application/json',
6173           'X-Requested-With':'xmlhttprequest' /* XMLHttpRequest is ok too, it's case insensitive */
6174         },
6175         body: JSON.stringify(formData)
6176       })
6177   
6178       const data = await add.json();
6179       return data
6180     } catch(err){
6181       console.log('Error additem', err)
6182     }
6183   }
6184 
6185   async function addons(){
6186     let items = []
6187     $(".addon-item").each(function(){
6188       const p = $(this)
6189       const props = p.next(".propsAddonSpotify")
6190       const id = $(this).data("id")
6191       const quantity = $(this).data("qty")
6192       const propId = $("#properties-time").val()
6193       let properties = {}
6194       if(id === 46067682607319) {
6195         const link = props.find(".spotifyLinkAddon").text()
6196         const photo = props.find(".spotifyFotoAddon").text()
6197         const song = props.find(".spotifySongAddon").text()
6198         const artist = props.find(".spotifyArtistAddon").text()
6199         properties = {
6200           id: propId,
6201           "Spotify Link": link !== '' ? link : '-',
6202           "Spotify Photo": photo !== '' ? photo : '-',
6203           "Spotify Song": song !== '' ? song : '-',
6204           "Spotify Artist": artist !== '' ? artist : '-',
6205           type: 'addon'
6206         }
6207       } else {
6208         properties = { 
6209           "id": propId, 
6210           "type": "addon"
6211         }
6212       }
6213       items.push({
6214         id, 
6215         quantity, 
6216         properties
6217       })
6218     })
6219     return items
6220   }
6221 
6222   async function propItems() {
6223     let props = {}
6224     $("[data-properties]").each(function(e){
6225       let elementType = this.tagName;
6226       const k = $(this).data("properties")
6227       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') {
6228         const v = elementType === 'SELECT' ? $(this).find(":selected").val() : $(this).val();
6229         if(v !== '') {
6230           props[k] = v?.replace(/[\s\n]/g, '');
6231         }
6232       }
6233     })
6234     return props
6235   }
6236 
6237   async function showPopupCart(items){
6238     if(productType !== '') {
6239       console.log("clarity event " + productType + ' completeOrder')
6240       window.clarity("event", `${productType} completeOrder`)
6241       // window.clarity("set", productType, `completeOrder - ${productDate}`)
6242     }
6243     $("#popupCart").show()
6244     
6245       $(".propDeliveryCity").text($("#cities").val())
6246       $(".propDeliveryDate").text($("#propDeliveryDate").val())
6247       $(".propDeliveryTime").text($("#propDeliveryTime").val())
6248       $(".propDeliveryName").text($("[data-properties=nama-penerima]").val())
6249       $(".propDeliveryAddress").text($("[data-properties=alamat-penerima]").val())
6250       $(".propDeliveryPhone").text($("[data-properties=telepon-penerima]").val())
6251       $(".propDeliveryProv").text($("#province").val())
6252       $(".propDeliveryZip").text($("#zip").val())
6253       
6254     
6255 
6256     const addons = []
6257     if(items && items.length > 0) {
6258       for(let i = 1; i < items.length; i++) {
6259         const spotifyLink = items[i].properties['Spotify Link']
6260         const spotifyPhoto = items[i].properties['Spotify Photo']
6261         const spotifySong = items[i].properties['Spotify Song']
6262         const spotifyArtist = items[i].properties['Spotify Artist']
6263         const price = items[i].price / 100
6264         const props = spotifyLink ? `<div class="propsAddonCart row m-0">
6265                   <div class="col-12 col-lg-2"></div>
6266                   <div class="col-12 col-lg-10">
6267                     <p>
6268                       <span>spotify link</span>
6269                       <span>${spotifyLink}</span>
6270                     </p>
6271                     <p>
6272                       <span>Upload Photo</span>
6273                       <span>${spotifyPhoto}</span>
6274                     </p>
6275                     <p>
6276                       <span>song / playlist name</span>
6277                       <span>${spotifySong}</span>
6278                     </p>
6279                     <p>
6280                       <span>artist name</span>
6281                       <span>${spotifyArtist}</span>
6282                     </p>
6283                   </div>
6284                 </div>` : '';
6285         addons.push(`<div class="row m-0">
6286                   <div class="imgAddonCart col-2">
6287                     <img
6288                       width="43"
6289                       src="${items[i].image}"
6290                       alt=""
6291                     >
6292                   </div>
6293                   <div class="imgAddonTitlePrice col-10 align-self-center">
6294                     <div class="row justify-content-between m-0">
6295                       <div class="col-12 col-lg-8">
6296                         <h5>${items[i].title}</h5>
6297                       </div>
6298                       <div class="col-12 col-lg-4 text-lg-right">
6299                         <span>${rupiah.format(price)}</span>
6300                       </div>
6301                     </div>
6302                   </div>
6303                 </div>${props}`)
6304       }
6305     }
6306     // console.log(addons)
6307     if(addons.length === 0) {
6308       $(".itemAddonCart").hide()
6309       return
6310     }
6311     $(".toggleAddonCart h4").text(`add-ons (${items.length - 1})`)
6312     $(".wrapperItemAddonCart").html(addons)
6313   }
6314 
6315   const money = (money) => {
6316       return new Intl.NumberFormat('id-ID',
6317           { style: 'currency', currency: 'IDR', minimumFractionDigits: 0 }
6318       ).format(money);
6319   }
6320 
6321   async function showNoteMoney() {
6322     let qty50k = $("[data-properties='Uang 50k']").val()
6323     let qty100k = $("[data-properties='Uang 100k']").val()
6324     const total50k = Number(qty50k) * 50000
6325     const total100k = Number(qty100k) * 100000
6326     const total_all = total50k + total100k
6327     $(".prop50k").html(`<span>${qty50k} Lembar: <strong class="pl-1">${money(total50k)}</strong></span>`)
6328     $(".prop100k").html(`<span>${qty100k} Lembar: <strong class="pl-1">${money(total100k)}</strong></span>`)
6329     $(".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://duaperak-amp02.firehostapp.com/" target="_blank" style="text-decoration: underline;
6329 color: #8d3f2d">Customer Service</a> to confirm with proof of payment.</p>`)
6330   }
6331 
6332   async function removeImage() {
6333     const data = JSON.stringify({
6334       "ID": $("#properties-properties-qrId").val(), 
6335       "Kartu Nama Penerima": $("#properties-kartu-nama-penerima").val(), 
6336       "Kartu Nama Pengirim": $("#properties-kartu-nama-pengirim").val(), 
6337       "Kartu Ucapan": $("[data-properties=ucapan]").val(), 
6338       "Nama Penerima": $("#properties-nama-penerima").val(), 
6339       "Order Number":"",
6340       "Status":"Product", 
6341       "Foto": "", 
6342       "Media": $("#properties-video").val(), 
6343       "Image": "8144957800663"
6344     })
6345     const remove = updateCard(data)
6346     if(remove) {
6347       $(this).hide()
6348       $("#properties-photo").val("-")
6349       $(".placeholder-image").show()
6350       $(".preview-image").attr("src", "")
6351     }
6352   }
6353 
6354   async function removeVideo() {
6355     const data = JSON.stringify({
6356       "ID": $("#properties-properties-qrId").val(), 
6357       "Kartu Nama Penerima": $("#properties-kartu-nama-penerima").val(), 
6358       "Kartu Nama Pengirim": $("#properties-kartu-nama-pengirim").val(), 
6359       "Kartu Ucapan": $("[data-properties=ucapan]").val(), 
6360       "Nama Penerima": $("#properties-nama-penerima").val(), 
6361       "Order Number":"",
6362       "Status":"Product", 
6363       "Foto": $("#properties-photo").val(), 
6364       "Media": "", 
6365       "Image": "8144957800663"
6366     })
6367     const remove = updateCard(data)
6368     if(remove) {
6369       $("#properties-video").val("-")
6370       $(this).find("img").hide()
6371       $(this).hide()
6372       $(this).prev("p").text("Add video to make it more special (optional)")
6373       $("#label-input-video").show()
6374       $("#label-input-video span").text("Upload Video")
6375       $(".case-video-preview p span").remove()
6376     }
6377   }
6378 
6379   async function loadItemOccasion(t, occasion) {
6380     const name = occasion?.replace('greeting-card-', '')
6381     $("#kartu-ucapan").val("")
6382     $("[data-occassion]").removeClass("selected")
6383     $("[data-properties=ucapan]").val("")
6384     $("#save-card").attr("disabled", true)
6385     t.addClass("selected")
6386     $("#show_note").attr("data-card-occassion", name)
6387     $.get(`https://outerbloom.com/collections/${occasion}/products.json`, function(data, status){
6388         const products = data.products
6389         const html = []
6390         for(let i = 0; i < products.length; i++) {
6391             const id = products[i].id
6392             const variantId = products[i].variants[0].id
6393             const img = products[i].images[0].src
6394             const title = products[i].title
6395             const price = products[i].variants[0].price
6396             const qty = products[i].variants[0].inventory_quantity
6397             const body = `<div class="item-card${price < 1 ? ' free' : ' nofree'}${i === 0 ? ' selected' : ''}" data-id=${id}>
6398                 <label for="card-${variantId}"></label>
6399                     <div class="card-image">
6400                         <img src="${img}" alt="${title}" width="" height="" />
6401                     </div>
6402                     <div class="card-meta text-center">
6403                         <h5>${title}</h5>
6404                         <p>${price < 1 ? 'FREE' : rupiah.format(price)}</p>
6405                         <input id="card-${variantId}" type="radio" name="id" value="${variantId}" data-price="${price}">
6406                     </div>
6407                 </div>`
6408             html.push(body)
6409         }
6410         const withoutCard = `<div class="item-card item-without-card">
6411                 <label for="card-0"></label>
6412                     <div class="card-image">
6413                         <img src="https://cdn.shopify.com/s/files/1/1589/6833/t/129/assets/without-card.png?v=1747632283" alt="Without card" width="" height="" />
6414                     </div>
6415                     <div class="card-meta text-center">
6416                         <h5>
6416Send without a greeting card</h5>
6417                         <input id="card-0" type="radio" name="id" value="" data-price="">
6418                     </div>
6419                 </div>`
6420         $("#itemCards .items-card").html(html.length === 0 ? '<p>No Item available</p>' : html.join(""))
6421     });
6422   }
6423         
6424   $(document).ready(function(){
6425 
6426     // Observer to auto-trigger addon loading when addon section becomes visible
6427     const addonObserver = new MutationObserver(function(mutations) {
6428       mutations.forEach(function(mutation) {
6429         const target = $(mutation.target)
6430         if(target.hasClass('purchaseAddon') && mutation.type === 'attributes' && mutation.attributeName === 'class') {
6431           if(!target.hasClass('hide')) {
6432             // Addon section just became visible, ensure items are loaded
6433             setTimeout(function() {
6434               if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) {
6435                 console.log("Auto-triggering addon load...")
6436                 $("[data-addon=upsell-all]").trigger("click")
6437               }
6438             }, 150)
6439           }
6440         }
6441       })
6442     })
6443     
6444     // Start observing addon section
6445     const addonSection = document.querySelector('.purchaseAddon')
6446     if(addonSection) {
6447       addonObserver.observe(addonSection, { 
6448         attributes: true, 
6449         attributeFilter: ['class'] 
6450       })
6451     }
6452 
6453     $(".purchasePopup").delegate("#addtocart-card", "click", async function(){
6454     
6455     $(this).find("span").addClass("loading")
6456     let isValid = true
6457     $(".formAddressPurchase [required]").each(function(){
6458       const t = $(this)
6459       const input = t.val()
6460       const p = t.parent()
6461       if(input === '') {
6462         p.addClass("error")
6463         isValid = false
6464       }
6465     })
6466 
6467     if(!isValid) {
6468       $(this).find("span").removeClass("loading")
6469       return
6470     }
6471     
6472     let items = []
6473     const mainProps = {
6474       
6475         "Delivery Date": $("#propDeliveryDate").val(),
6476         "Delivery Time": $("#propDeliveryTime").val() !== '' ? $("#propDeliveryTime").val() : '-' ,
6477         "Kota Pengiriman": $("#cities").val(),
6478         "Nama Penerima": $("[data-properties=nama-penerima]").val() !== '' ? $("[data-properties=nama-penerima]").val() : '-' ,
6479         "Alamat Penerima": $("[data-properties=alamat-penerima]").val() !== '' ? $("[data-properties=alamat-penerima]").val() : '-' ,
6480         "Kodepos": $("#zip").val() !== '' ? $("#zip").val() : '-' ,
6481         "Telepon Penerima": $("[data-properties=telepon-penerima").val() !== '' ? $("[data-properties=telepon-penerima").val() : '-' ,
6482       
6483       
6484         "Papan Nama Penerima": $("[data-properties=penerima]").val() !== '' ? $("[data-properties=penerima]").val() : '-' ,
6485         "Papan Ucapan": $("[data-properties=ucapan]").val() !== '' ? $("[data-properties=ucapan]").val() : '-' ,
6486         "Papan Nama Pengirim": $("[data-properties=pengirim]").val() !== '' ? $("[data-properties=pengirim]").val() : '-' ,
6487         "Papan Logo": $("[data-properties=papan-logo]").val() !== '' ? $("[data-properties=papan-logo]").val() : '-' ,
6488         "Foto Alamat": $("[data-properties=foto-alamat]").val() !== '' ? $("[data-properties=foto-alamat]").val() : '-' ,
6489       
6490       
6491       "Province": $("#province").val() !== '' ? $("#province").val() : '-' ,
6492       "Country": $("#properties-kota-pengiriman-country").val() !== '' ? $("#properties-kota-pengiriman-country").val() : '-' ,
6493       "Shipping": $("#properties-shipping").val() !== '' ? $("#properties-shipping").val() : '-' ,
6494       "Company": $("[data-properties=company]").val() !== '' ? $("[data-properties=company]").val() : '-' ,
6495       "id": $("#properties-time").val() !== '' ? $("#properties-time").val() : '-',
6496       "type": 'product'
6497     }
6498     const props = await propItems()
6499     properties = {...mainProps, ...props };
6500     const id = $("#productSelect").find('option:selected').val()
6501     console.log(id, 'main ID')
6502     const mainItem = {
6503       id: Number(id),
6504       quantity: 1,
6505       properties
6506     }
6507     items.push(mainItem)
6508     const cardId = $("#itemCards").find(".selected input").val()
6509     const cardItem = {
6510       id: Number(cardId),
6511       quantity: 1,
6512       properties: { "id": $("#properties-time").val() !== '' ? $("#properties-time").val() : '-', type: 'card' }
6513     }
6514     console.log(cardId, 'cardId')
6515     if(cardId) {
6516       items.push(cardItem)
6517     }
6518     const addon = await addons()
6519     if(addon) {
6520       for(let i = 0;
6520 i < addon.length; i++){
6521         items.push({
6522           id: addon[i].id,
6523           quantity: addon[i].quantity,
6524           properties: addon[i].properties
6525         })
6526       }
6527     }
6528     const addItems = await additem(items)
6529     console.log(addItems.items, 'add items')
6530     if(addItems) {
6531       $(this).find("span").removeClass("loading")
6532       disablePopup()
6533       showPopupCart(addItems.items)
6534       
6535       localStorage.setItem("items", JSON.stringify(addItems.items))
6536     }
6537   })
6538   
6539   $("#addtocart-cart .btn").click(async function(){
6540     const id = $("#productSelect").find('option:selected').val()
6541     const mainProps = {
6542       id: $("#properties-time").val() !== '' ? $("#properties-time").val() : '-', 
6543       type: 'product'
6544     }
6545     const props = await propItems()
6546     const properties = { ...mainProps, ...props };
6547     const items = {
6548       id: Number(id),
6549       quantity: 1,
6550       properties
6551     }
6552     const addItems = await additem(items)
6553     if(addItems) {
6554       showPopupCart(addItems.items)
6555       localStorage.setItem("items", JSON.stringify(addItems))
6556     }
6557   })
6558 
6559   $(".formAddressPurchase [required]").change(function(){
6560     const t = $(this)
6561     const p = t.parent()
6562     const v = t.val()
6563     if(v !== '') {
6564       p.removeClass("error")
6565     }
6566   })
6567 
6568   $("#save-card").click(async function(){
6569     const parent = $(this).parents(".sectionPurchase")
6570     const next = parent.next(".sectionPurchase")
6571     $(this).find("span").addClass("loading")
6572     const card = await saveCard()
6573     console.log(card, 'ssaveCCC')
6574     if(card?.status === 200 || card?.status === 201) {
6575       $(".scanCard").removeClass("hide")
6576       $(this).find("span").removeClass("loading")
6577       parent.addClass("hide")
6578       next.removeClass("hide")
6579       if(next.hasClass("purchaseAddon")) {
6580         $("[data-addon=upsell-all]").click()
6581         console.log("clarity event addons")
6582         window.clarity("event", `${productType} add-ons`)
6583         // Ensure addon items are loaded when entering addon popup
6584         setTimeout(function() {
6585           if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) {
6586             $("[data-addon=upsell-all]").trigger("click")
6587           }
6588         }, 100)
6589       }
6590       if(next.hasClass("purchaseAddress")) {
6591         $("#zip").select2()
6592       }
6593     }
6594   })
6595 
6596   $("#skip-card").click(async function(){
6597     $("#greetingCard [data-properties]").val("")
6598     $("#properties-photo").val("")
6599     $("#properties-video").val("")
6600     const parent = $(this).parents(".sectionPurchase")
6601     const next = parent.next(".sectionPurchase")
6602     parent.addClass("hide")
6603     next.removeClass("hide")
6604     // $("#itemCards").html("")
6605     removeImage()
6606     removeVideo()
6607     if(next.hasClass("purchaseAddon")) {
6608       $("[data-addon='upsell-all']").click()
6609       console.log("clarity event addons")
6610       window.clarity("event", `${productType} add-ons`)
6611       // Ensure addon items are loaded when entering addon popup
6612       setTimeout(function() {
6613         if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) {
6614           $("[data-addon='upsell-all']").trigger("click")
6615         }
6616       }, 100)
6617     }
6618     if(next.hasClass("purchaseAddress")) {
6619       $("#zip").select2()
6620     }
6621   })
6622 
6623   $("#msgCard").click(async function(){
6624       $(this).parent().addClass("loading")
6625       let occasion = $(".selected[data-occassion]").data("occassion")
6626       occasion = occasion?.replace("greeting-card-", "")
6627       const { data } = await getFetch(`${host}/api/card/template/occasion?name=${occasion}`);
6628       const d = data?.data
6629       for(let i = 0; i < d.length; i++) {
6630         const num = Math.floor(Math.random() * (d.length - 1 + 1) + 1);
6631         const greeting = d[num]?.Greeting
6632         $(".greetingCard textarea").val(greeting)
6633         $(this).parent().removeClass("loading")
6634       }
6635       $("#save-card").attr("disabled", false)
6636     })
6637 
6638   $(".sectionPurchaseBoard .next-purchase-button").click(function(){
6639     const parent = $(this).parents(".sectionPurchase")
6640     const next = parent.next(".sectionPurchase")
6641     parent.addClass("hide")
6642     next.removeClass("hide")
6643   })
6644 
6645   $("#editCard").click(function(){
6646     $(".custom-card").show()
6647     $(".preview-card").hide()
6648   })
6649 
6650   $("#first_name, #last_name").change(function(){
6651     const v = $(this).val()
6652     const first_name = $("#first_name").val()
6653     const last_name = $("#last_name").val() !== '' ? ' ' + $("#last_name").val() : ''
6654     $("[data-properties=nama-penerima]").val(first_name+last_name)
6655   })
6656 
6657   $("[data-occassion]").click(function(){
6658       const t = $(this)
6659       const p = t.parents(".sectionPurchase")
6660       // $(".greetingCard").addClass("disabled")
6661       const occasion = t.data("occassion")
6662       loadItemOccasion(t, occasion)
6663   })
6664 
6665   $("#itemCards").delegate(".item-card:not(.item-without-card) label", "click", function(){
6666       const id = $(this).parent(".item-card").data("id")
6667       const t = $(this).parent(".item-card")
6668       const target = t.find("input")
6669       const v = $('.item-card input[type="radio"]:checked').val();
6670       $("#itemCards .item-card").removeClass("selected")
6671       t.addClass("selected")
6672       $("#itemCards .item-card").find("input").attr("name", "")
6673       if(target.length > 0) {
6674           target.attr("name", "id[]")
6675           $("#properties-card").val(id)
6676           $(".greetingCard").removeClass("disabled")
6677           $("#skip-card").attr("disabled", false)
6678       } else {
6679           $("#properties-card").val("")
6680       }
6681   })
6682 
6683   $("#itemCards").delegate(".item-without-card label", "click", function(){
6684     const parent = $(this).parents(".sectionPurchase")
6685     const next = parent.next(".sectionPurchase")
6686     $(".greetingCard").addClass("disabled")
6687     parent.addClass("hide")
6688     next.removeClass("hide")
6689     $("[data-addon=upsell-all]").click()
6690     $("#zip").select2()
6691   })
6692 
6693   $("[data-properties=ucapan]").keyup(function(){
6694     const v = $(this).val()
6695     const p = $(this).parents(".sectionPurchase")
6696     $(".purchaseAddress").find(".greetingCard textarea").val(v)
6697     if(v.length > 3) {
6698       p.find(".next-purchase-button").attr("disabled", false)
6699     } else {
6700       p.find(".next-purchase-button").attr("disabled", true)
6701     }
6702   })
6703 
6704   $("[data-properties=penerima]").keyup(function(){
6705     const v = $(this).val()
6706     $(".purchaseAddress").find("[data-properties=penerima]").val(v)
6707   })
6708 
6709   $("[data-properties=pengirim]").keyup(function(){
6710     const v = $(this).val()
6711     $(".purchaseAddress").find("[data-properties=pengirim]").val(v)
6712   })
6713 
6714   $(document).click(function(e){
6715 
6716      if($(e.target).closest('.wrapperPopupCart').length != 0) return false;
6717      // $('#popupCart').fadeOut('slow');
6718     // location.reload()
6719   });
6720 
6721   $(".toggleAddonCart").click(function(){
6722     const p = $(this).parent(".itemAddonCart")
6723     p.toggleClass("open")
6724   })
6725 
6726   $(".btnViewCart").click(function(){
6727     window.location.href = "https://outerbloom.com/cart";
6728   })
6729 
6730   $(".btnViewCheckout").click(async function(){
6731     $(this).find("span").addClass("loading")
6732     let zip = $("#zip").val()
6733     const first_name = $("#first_name").val()
6734     const last_name = $("#last_name").val()
6735     const company = $("#company").val() !== '' ? $("#company").val() : ''
6736     const address1 = $("#delivery_address").val()
6737     const address2 = zip && zip !== '' ? zip?.split(' - ')[1] : ''
6738     zip = zip && zip !== '' ? zip?.split(' - ')[0] : ''
6739     const phone = $("#recipient_number").val()
6740     const city = $("#cities").val()
6741     const province = $("#province").val()
6742     const country = 'Indonesia'
6743     const ver = Date.parse(new Date())
6744     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}`
6745 
6746     const clear = await fetch(`/cart/clear.js`, {method: 'POST'})
6747     if(clear.status === 200) {
6748       const savedItem = window.localStorage.getItem("items");
6749       const items = JSON.parse(savedItem)
6750       const addItems = await additem(items)
6751       console.log(addItems, 'new addItems')
6752       if(addItems) {
6753         window.location.href = `https://outerbloom.com/checkout?${params}`;
6754       }
6755     }
6756   })
6757 
6758   $(".btnContinueShopping").click(function(){
6759     window.location.href = "https://outerbloom.com/";
6760   })
6761 
6762     if (isIOS) {
6763       $(".empty-state-card").click(function(){
6764         $("#input-foto").trigger("click")
6765       })
6766       $(".btn-upload-image").click(function(){
6767         $("#input-foto").trigger("click")
6768       })
6769       $("[for=input-video]").click(function(){
6770         $("#input-video").trigger("click")
6771       })
6772       $(".btn-upload-papan").click(function(){
6773         $("#logoPapan").trigger("click")
6774       })
6775     }
6776   
6777     $("[data-properties]").each(function(){
6778       const select = $(this).parents(".form-group").find("select")
6779       $(this).change(function(){
6780         const name = $(this).data("properties")
6781         const v = $(this).val()
6782         if (name == 'telepon-penerima') {
6783           let phone = v.replace(/[^0-9]/g, '')
6784           $(this).val(phone);
6785           $("#properties-telepon-penerima").val(phone)
6786           $('.iti__search-input').val('-') 
6787         } else {
6788           $("#properties-" + name).val(v)
6789         }
6790       })
6791       select.on("change", function(){
6792         const name = $(this).data("properties")
6793         const v = $(this).val()
6794         $("#properties-" + name).val(v)
6795       })
6796     })
6797 
6798     $("#show_note").click(function(){
6799       nameq = $("#properties-nama-penerima").val()
6800       dear = $("#properties-kartu-nama-penerima").val()
6801       card = $("[data-properties=ucapan]").val()
6802       sender = $("#properties-kartu-nama-pengirim").val()
6803       photo = $("#properties-photo").val()
6804       video = $("#properties-video").val()
6805       updateCard(nameq, dear, card, sender, photo, video, status)
6806     })
6807 
6808     $(".remove-image").click(function(e){
6809       e.preventDefault()
6810       $(this).find("img").show()
6811       removeImage()
6812     })
6813 
6814     $(".remove-media").click(function(e){
6815       e.preventDefault()
6816       $(this).find("img").show()
6817       removeVideo()
6818     })
6819 
6820     
6821 
6822     $("[data-delivery_method]").click(function(e){
6823       e.preventDefault()
6824       const t = $(this)
6825       const data = t.data("delivery_method")
6826       $("[data-delivery_method]").removeClass("selected")
6827       t.addClass("selected")
6828       $("#cities").val("")
6829       $("#properties-delivery-date").val("-")
6830       $("#deliveryDate button").removeClass("selected")
6831       $("#full-date").val("Full Calendar →")
6832       $("#propDeliveryDate").val("")
6833       const step3 = $("#step-3")
6834       if(data.match('PickUp')) {
6835         $(".selfpickup-point").show()
6836         step3.find("[data-finished=false]").hide()
6837         $("#panel-4").hide()
6838         step3.find("[data-finished=true]").show()
6839         $("#cities").attr("required", false)
6840         $("#form-group-city").hide()
6841         $("#row-delivery-time").hide()
6842         $("#propDeliveryTime, #properties-delivery-time, #properties-nama-penerima, #properties-alamat-penerima, #properties-kodepos, #properties-kodepos, #properties-telepon-penerima").val("-")
6843         $("#propDeliveryTime").attr("required", false)
6844         // $("#deliveryDate").find("button:first-child").addClass("stop")
6845         $(".form-selfpickup").show()
6846         $(".form-delivery").hide()
6847         $(".form-delivery").find("input, textarea, select").val("")
6848         $(".form-delivery").find("input, textarea, select").attr("required", false)
6849         $("#properties-shipping").val("0")
6850         $("#noteDeliveryDate").hide()
6851         $(".form-delivery .form-control").attr("required", false)
6852         $("#stepNav4").hide()
6853         
6854         $("#deliveryDate").find("button:nth-child(1)").addClass("stop")
6855         
6856
6857         
6858         
6859         if(timeOfDay >= 16.01){
6860           $("#deliveryDate").find("button:nth-child(2)").addClass("stop")
6861         }
6862       } else {
6863         
6864         
6865         $("#deliveryDate").find("button:nth-child(1)").removeClass("stop")
6866         step3.find("[data-finished=false]").show()
6867         $("#panel-4").show()
6868         step3.find("[data-finished=true]").hide()
6869         $("#cities").attr("required", true)
6870         $(".selfpickup-point").hide()
6871         $("#form-group-city").show()
6872         $("#cities").val('').trigger('change');
6873         $("#properties-kota-pengiriman").val("-")
6874         
6875         $("#row-delivery-date, #row-delivery-time").show()
6876         $("#propDeliveryDate, #propDeliveryTime").attr("required", true)
6877         $("#deliveryDate").find("button").removeClass("stop")
6878         $(".form-selfpickup").hide()
6879         $(".form-delivery").show()
6880         $(".form-delivery").find("input, textarea, select").attr("required", true)
6881         $(".form-delivery [data-properties]").attr("readonly", false)
6882         $("#properties-kodepos").val("-")
6883         $("#properties-alamat-penerima").val("-")
6884         $(".form-delivery .form-control").attr("required", true)
6885         $(this).parents(".setup-content").attr("id", "step-1")
6886         
6887         $("#stepNav4").show()
6888       }
6889     })
6890 
6891     $("[name=selfpickup]").click(function(){
6892         const p = $(this).parents(".row-pickup")
6893         const pickupCity = $("input[name='selfpickup']:checked").val();
6894         const pickupAddress = $("input[name='selfpickup']:checked").data("address");
6895         const pickupZip = $("input[name='selfpickup']:checked").data("zip");
6896 
6897         $(".row-pickup").removeClass("selected")
6898         p.addClass("selected")
6899         
6900         $("#properties-kota-pengiriman").val(pickupCity)
6901         $("#province").val("Jakarta")
6902         $("#properties-alamat-penerima").val(pickupAddress)
6903         $("#properties-kodepos").val(pickupZip)
6904     })
6905 
6906     $("#cities").change(function(e){
6907       e.preventDefault()
6908       $(this).parent(".row").find("p.error").remove()
6909       $("#full-date").val("Full Calendar")
6910       $("#deliveryDate, #deliveryDateFull label ").show()
6911       $("#deliveryDateFull").removeClass("filled")
6912       $(".btnChangeDeliveryDate").addClass("hide")
6913       $("#full-date").prop('disabled', false);
6914       $("#stepNav2, #stepNav3, #stepNav4").removeClass("btn-success")
6915       $("#stepNav2, #stepNav3, #stepNav4").find("a").attr("disabled", true)
6916       const step3 = $("#step-3")
6917       $("#cityNote").remove()
6918       $("#noteDeliveryDate").hide()
6919       $("#noteDeliveryDate").empty()
6920       let v = $(this).val()
6921       let v2 = $('option:selected', this).attr('data-city');
6922       let v3 = $('option:selected', this).attr('data-province');
6923       let price = $('option:selected', this).attr('data-price');
6924       $("#country").val(v)
6925       $("#properties-kota-pengiriman").val(v)
6926       $("#properties-shipping").val(price)
6927       $("#deliveryDate button, #deliveryTime button, .calendarseasonal .button").removeClass("selected")
6928       $("#properties-delivery-date, #properties-delivery-time").val("-")
6929       $("#propDeliveryDate, #propDeliveryTime").val("")
6930       let note = $('option:selected', this).attr('data-note');
6931       if(v === 'Kota Lainnya') {
6932         $("#noteDeliveryDate").show()
6933         $("#noteDeliveryDate").text("Order akan segera dikirim. Estimasi tanggal diterima akan disesuaikan dengan waktu pengiriman oleh pihak ekspedisi ke lokasi Anda.")
6934         $("#zip").attr("required", false)
6935         $("#zip").hide()
6936         $("#propDeliveryDate, #propDeliveryTime").attr("required", false)
6937         $("#propDeliveryDate, #properties-delivery-date, #propDeliveryTime, #properties-delivery-time").val("-")
6938         $("#row-delivery-date, #row-delivery-time").hide()
6939         $("#properties-shipping").val("")
6940         // $(this).parents(".setup-content").attr("id", "step-2")
6941         
6942       } else {
6943         $("#noteDeliveryDate").hide()
6944         $("#zip").attr("required", true)
6945         $("#zip").show()
6946         $("#row-delivery-date, #row-delivery-time").show()
6947         $("#propDeliveryDate, #propDeliveryTime").attr("required", true)
6948         $("#deliveryDate").find("button").removeClass("stop")
6949         // $(this).parents(".setup-content").attr("id", "step-1")
6950         
6951       }
6952       
6953       
6954       
6955       // if(v !== 'Jakarta') {
6956       //   $("[data-type=upsell]").hide()
6957       // } else {
6958       //   $("[data-type=upsell]").show()
6959       // }
6960       // $('.collection-addons')[0].swiper.update();
6961       
6962       
6963       getProvince(v)
6964       $("#zip").html(`<option value="">Choose Postal Code</option>`)
6965       renderZip(v, v2, v3)
6966       
6967       disabledSameDay()
6968       
6969 
6970       if(v !== 'Jakarta' && v !== 'Depok' && v !== 'Bekasi' && v !== 'Tangerang') {
6971         
6972         $("#cardOccasion, #navAddon, .collection-addons").hide()
6973         
6974         $("[data-addon=giftcard]").show()
6975         $("[data-addon=giftcard]").click()
6976         $("#itemAddons").show()
6977         $("#flower-step").addClass("nonjadetabek")
6978       } else {
6979         $("#cardOccasion, #navAddon, .collection-addons").show()
6980         $("[data-addon=all]").click()
6981         $("#flower-step").removeClass("nonjadetabek")
6982       }
6983       
6984         if(v !== '') {
6985           $("#personalizeBtn .btn").attr("disabled", false)
6986         } else {
6987           $("#personalizeBtn .btn").attr("disabled", true)
6988         }
6989       
6990     })
6991 
6992     $("#zip").change(function(e){
6993       let v = $(this).val()
6994       var city = $("#cities").find('option:selected');
6995       $("#properties-kodepos").val(v)
6996       if(city === 'Kota Lainnya') {
6997         $(this).attr("required", true)
6998         $("#recipient-address").val("")
6999       }
7000     })
7001 
7002     
7003       var minDate = +7
7004       
7005     
7006 
7007     $("#full-date").datepicker({
7008       minDate,
7009       dateFormat: 'Mdd_yy', //Nop22_2021,
7010       
7011       beforeShowDay: disabledays,
7012       
7013       onSelect: function (date) {
7014         $("#deliveryDate, #deliveryDateFull label ").hide()
7015         $("#deliveryDateFull").addClass("filled")
7016         $(".btnChangeDeliveryDate").removeClass("hide")
7017         $("#full-date").prop('disabled', true);
7018         $('#propDeliveryDate, #properties-delivery-date').val('Kirim_'+date);
7019         $(".date-full").addClass("selected")
7020         $(".date-single, .calendar-group").removeClass("selected")
7021         $("#propDeliveryTime").val('')
7022         $("#properties-delivery-time").val('-')
7023         $(".time-single").removeClass("selected")
7024         
7025         
7026       }
7027     });
7028 
7029     $(".btnChangeDeliveryDate").click(function(){
7030         $("#deliveryDate, #deliveryDateFull label ").show()
7031         $("#deliveryDateFull").removeClass("filled")
7032         $(".btnChangeDeliveryDate").addClass("hide")
7033         $("#full-date").prop('disabled', false);
7034     })
7035   
7036     $("#deliveryDate").delegate(".calendarbutton:not(.date-full)", "click", function(e){
7037       e.preventDefault()
7038       $(this).parents("#row-delivery-date").find("p.error").remove()
7039       const fulldate = $(this).data("fulldate")
7040       const day = $(this).data("day")
7041       const date = $(this).data("date")
7042       const month = $(this).data("month")
7043       const year = $(this).data("year")
7044       const off_pagi = $(this).data("offpagi")
7045       const off_siang = $(this).data("offsiang")
7046       const off_Malam = $(this).data("offMalam")
7047       $(".calendarbutton").removeClass("selected")
7048       $(this).addClass("selected")
7049       $("#propDeliveryDate, #properties-delivery-date").val(`Kirim_${month}${date}_${year}`)
7050       $("#propDeliveryTime").val('')
7051       $("#properties-delivery-time").val('-')
7052       $(".calendarbutton2").removeClass("selected")
7053       $("#full-date").val("Full Calendar")
7054 
7055       
7056       if(off_pagi && timeOfDay > off_pagi) {
7057         $("[data-time=Morning]").attr("disabled", true)
7058       } else {
7059         $("[data-time=Morning]").attr("disabled", false)
7060       }
7061       if(off_siang && timeOfDay > off_siang) {
7062         $("[data-time=Afternoon]").attr("disabled", true)
7063       } else {
7064         $("[data-time=Afternoon]").attr("disabled", false)
7065       }
7066       
7067 
7068       
7069     })
7070     
7071     if(today === 14 && timeOfDay > 17.00) {
7072       $("#deliveryDate button:first-child").attr("disabled", true)
7073     }
7074   
7075     $("#deliveryTime").delegate(".calendarbutton2", "click", function(e){
7076       e.preventDefault()
7077       const time = $(this).data("time")
7078       const date = $("#propDeliveryDate").val()
7079       if(date == '') {
7080         return alert('Silakan pilih tanggal terlebih dahulu')
7081       }
7082       $(".calendarbutton2").removeClass("selected")
7083       $(this).addClass("selected")
7084       $("#propDeliveryTime, #properties-delivery-time").val(`KirimJam_${date.replace('Kirim_','')}_${time}`)
7085     })
7086       
7087     $('textarea.has-limit, input.has-limit').keyup(function () {
7088       max = this.getAttribute("maxlength");
7089       let len = $(this).val().length;
7090       let limit = $(this).siblings(".limit");
7091       if (len > max) {
7092         alert('you have reached the limit');
7093       } else {
7094         limit.text(`${len}/${max}`);
7095       }
7096     });
7097     
7098     $("#button-action-step .btn").click(function(){
7099       $(this).find("span").text("Processing...");
7100     });
7101 
7102     $(".finishBtn").on('click', function() {
7103       $(this).addClass("is-adding");
7104       // $(this).click();
7105     });
7106 
7107     $('.setup-panel .nav-item a.btn-success').trigger('click');
7108 
7109     $("#button-action .btn").click(function(){
7110       $("#flower-step").addClass("block");
7111       $("#button-action").hide();
7112     });
7113         
7114     $(".close-how-order").click(function(){
7115       $("#flower-step").removeClass("block");
7116       $("#button-action").show();
7117     });
7118 
7119     $("#input-foto, #input-video").change(function(e){
7120       readURL(this);
7121     });
7122 
7123     $("#logoPapan").change(function(){
7124       readURLPapan(this);
7125     });
7126 
7127     $("#address-upload").change(async function(){
7128       const upload_address = await readURLAddress(this)
7129       if(upload_address) {
7130         const url = upload_address.url
7131         $(".props-address-upload").val(url)
7132         $(".form-address").addClass("address-uploaded")
7133         $(".form-address-upload").addClass("uploaded")
7134 
7135         $(this).parents(".form-group").siblings(".form-group").find("[required]").attr("required", false)
7136       }
7137     })
7138 
7139     $(".address-manualy").click(function(){
7140       $(".form-address-upload").removeClass("uploaded");
7141       $(".photo-address").hide();
7142       $(".form-address").removeClass("address-uploaded")
7143       $("#formAddressPurchase").find(".form-control").attr("required", true)
7144     });
7145 
7146     $(".case-video-preview").delegate(".replace-video", "click", function(){
7147       $("#input-video").trigger("click")
7148     })
7149 
7150     $('.date-single').click(function(e) {
7151       e.preventDefault();
7152       $('.date-single').removeClass('selected');
7153       $('#full-date').removeClass('selected');
7154       $(this).addClass('selected');
7155       $('#full-date').html('Full' + '<br/>' + 'Calendar');
7156     });
7157     $('#full-date').click(function(e){
7158       e.preventDefault();
7159       $('.date-single').removeClass('selected');
7160       $(this).addClass('selected');
7161     });
7162     
7163     // $("tr").each(function(){
7164     //   if($(this).text().match('SKU')) {
7165     //     $(".sku-product").html($(this).parents("table").html())
7166     //   }
7167     // })
7168     
7169     $("#product-image").scroll(function(){
7170       $(".desc-add").each(function(){
7171         const img = $(this).find("img")
7172         const src = img.data("src")
7173         img.attr("src", src)
7174       })
7175     })
7176 
7177     $(".product-fixed").hide()
7178     
7179     let target = $("#personalizeBtn")
7180     
7181 
7182     $(".product-meta").scroll(function() {
7183         if ($(window).scrollTop() >= target.offset().top ) {
7184             $(".product-fixed").addClass("show")
7185         } else {
7186           $(".product-fixed").removeClass("show")
7187         }
7188     });
7189 
7190     $(window).scroll(function() {
7191         if ($(window).scrollTop() >= target.offset().top ) {
7192             $(".product-fixed").addClass("show")
7193         } else {
7194           $(".product-fixed").removeClass("show")
7195         }
7196     });
7197   });
7198 </script>
7198
7199 
7200   
7200<script>
7201     //
7202   </script>
7202
7203 
7204 
7204<script>
7205   $(document).ready(function(){
7206     $('table tr td').each(function(){
7207       var texto = $(this).text();
7208       var nextto = $(this).next("td");
7209       var sku = $("#data-sku").val()
7210       if(texto == 'SKU'){
7211         nextto.text(sku)
7212       }
7213     });
7214     
7215     $(".stamped-summary-actions-newquestion").text("Tulis Pertanyaan");
7216     $(".stamped-summary-actions-newreview").text("Tulis Review");
7217     $("#tab-questions").text("Pertanyaan");
7218     
7219     $(".freeship .icon").click(function(){
7220       $(".fs-content").slideToggle();
7221       $(this).parents(".freeship").toggleClass("expand");
7222     });
7223     
7224     var $easyzoom = $('.easyzoom').easyZoom();
7225     // Setup thumbnails example
7226     var api1 = $easyzoom.filter('.easyzoom--with-thumbnails').data('easyZoom');
7227     $('.thumbnails').on('click', 'a', function(e) {
7228       var $this = $(this);
7229       e.preventDefault();
7230       // Use EasyZoom's `swap` method
7231       api1.swap($this.data('standard'), $this.attr('href'));
7232     });
7233 
7234     $('#playerID').click(function(){
7235       var videoURL = $('#VdoID').attr('src'),
7236           dataplay = $('#VdoID').attr('data-play');
7237 
7238       //for check autoplay
7239       //if not set autoplay=1
7240       if(dataplay == 0 ){
7241         $('#VdoID').attr('src',videoURL+'?autoplay=1');
7242         $('#VdoID').attr('data-play',1);
7243       }
7244       else{
7245         var videoURL = $('#VdoID').attr('src');
7246         videoURL = videoURL.replace("?autoplay=1", "");
7247         $('#VdoID').prop('src','');
7248         $('#VdoID').prop('src',videoURL);
7249 
7250         $('#VdoID').attr('data-play',0);
7251       }
7252 
7253     });
7254     
7255     $(".product-photo-thumb-video").click(function(e){
7256       e.preventDefault();
7257 
7258       var newEmbed = $(this).attr('href');
7259       $("#featured-image-product").addClass("img-video");
7260       $("#ProductPhotoImg").hide();
7261       $("#featured-image-product .video").show();
7262       $("#featured-image-product iframe").attr('src', newEmbed);
7263       $("#VdoID")[0].src += "&autoplay=1";
7264     });
7265     $(".product-single__thumbnail").click(function(evt){
7266       evt.preventDefault();
7267       $("#featured-image-product").removeClass("img-video");
7268       $("#ProductPhotoImg").show();
7269       $("#featured-image-product .video").hide();
7270       $("#featured-image-product iframe").attr('src', '');
7271     });
7272     
7273     if($('#product-meta .short-desc > div').length >= 1){
7274       //console.log('div detected')
7275       var replacer = $('#product-meta .short-desc > div').contents();
7276       $('#product-meta .short-desc > div').replaceWith(replacer);
7277 
7278       var cAssured =  $('.c-assured').detach();
7279       cAssured.insertAfter('.meta-sds .stock-info');
7280     }
7281 
7282     
7283     
7284     $(".heading-toggle").click(function(){
7285       $(this).parent().toggleClass("open")
7286       
7287     });
7288   });
7289 </script>
7289
7290 
7291 
7292   
7292<script type="application/json" id="ProductJson-Product">
7293         
7294         {"id":8144957800663,"title":"LINK BARU 5000 PERAK BISA JADI JUTAAN DI SITUS TOTO SLOT777  GACOR INI DUATOTO 2026","handle":"blossom-shine","description":"\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDUATOTO menghadirkan informasi link 2026 terbaru untuk Slot777 dan situs Toto, dengan akses yang praktis serta pembaruan seputar layanan dan permainan Toto yang sedang populer saat ini."}
7295   </script>
7295
7296   
7297     
7297<script type="application/json" id="VariantJson-Product">
7298       [
7299         
7300           {
7301              "incoming": false,
7302              "next_incoming_date": null
7303           }
7304         
7305       ]
7306     </script>
7306
7307   
7308 
7309 
7310 
7311 </div>
7312 
7313 
7314 
7314<script src="//outerbloom.com/cdn/shopifycloud/storefront/assets/themes_support/option_selection-b017cd28.js" type="text/javascript"></script>
7314
7315 <style>
7316     .stamped-review-header-title,
7317     .stamped-review-header .author,
7318     .stamped-review-content-body,
7319     .stamped-sort-select,
7320     .stamped-review-header .verified-badge[data-type=buyer]:after,
7321     .stamped-review-header-byline,
7322     .stamped-review-reply-body {font-size: 14px!important;font-family: 'Barlow',sans-serif!important;}
7323     .stamped-review {margin-bottom: 0;}
7324     .stamped-review-body {padding-left: 65px;}
7325     .stamped-review:first-child {padding-top: 25px;}
7326     .stamped-review-content {clear: none;}
7327     .stamped-review-reply {margin: 15px 0 0 65px;background: #f2f2f2;border-left: none;}
7328     .stamped-review-reply-body {padding-left: 65px;}
7329     .stamped-review-header .author {text-transform: capitalize;}
7330     .stamped-questions .stamped-review-content {padding-left: 65px;}
7331 
7332     .stamped-pagination {margin: 20px 0 0;}
7333     .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;}
7334     .stamped-pagination li a {color: #121212;padding: 13px 18px;vertical-align: middle;display: block;}
7335     .stamped-pagination li.active a {background-color: #ddd;font-weight: 400;}
7336     .stamped-pagination li:hover a {background: #ddd;}
7337     .stamped-pagination .next {border-right: 1px solid #ccc;}
7338     .stamped-pagination li:first-child {border-top-left-radius: 5px;border-bottom-left-radius: 5px;}
7339     .stamped-pagination li:last-child {border-top-right-radius: 5px;border-bottom-right-radius: 5px;}
7340 
7341     #stamped-pagination-question span.page {display: inline-block;border: 1px solid #ccc;width: 47px;}
7342     #stamped-pagination-question span {font-size: 14px;}
7343     #stamped-pagination-question .page.active {padding: 12px;font-weight: 400;background: #ddd;}
7344     #stamped-pagination-question a, #stamped-pagination-question .page.active {color: #121212;padding: 13px 18px;vertical-align: middle;display: inline-block;}
7345     .stamped-pagination-deco {color: #121212;padding: 13px 18px;width: 47px;vertical-align: middle;display: inline-block;border: 1px solid #ccc;padding: 12px;}
7346     .stamped-pagination-prev, .stamped-pagination-next {position: inherit;}
7347     .stamped-pagination-prev a, .stamped-pagination-next a {width: auto!important;border: 1px solid #ccc;}
7348 
7349     @media (max-width: 480px){
7350       .stamped-review-reply {margin-left: 0!important;}
7351       select.stamped-sort-select {font-size: 13px!important;}
7352     }
7353 
7354   #product-reviews .stamped-summary-ratings, #product-reviews .stamped-summary-actions, .stamped-content {
7355       display: block !important;
7356   }
7357 </style>
7358 
7358<script>
7359     var selectCallback = function(variant, selector) {
7360       timber.productPage({
7361         money_format: "Rp {{amount_no_decimals}}",
7362         variant: variant,
7363         selector: selector
7364       });
7365     };
7366 
7367     jQuery(function($) {
7368       new Shopify.OptionSelectors('productSelect', {
7369         product:
7370 
7371 
7372 
7373 
7374 
7375 {"id":8144957800663,"title":"LINK BARU 5000 PERAK BISA JADI JUTAAN DI SITUS TOTO SLOT777  GACOR INI DUATOTO 2026","handle":"blossom-shine","description":"\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDUATOTO menghadirkan informasi link 2026 terbaru untuk Slot777 dan situs Toto, dengan akses yang praktis serta pembaruan seputar layanan dan permainan Toto yang sedang populer saat ini."},
7376         onVariantSelected: selectCallback,
7377         enableHistoryState: true
7378       });
7379 
7380       // Add label if only one product option and it isn't 'Title'. Could be 'Size'.
7381       
7382 
7383       // Hide selectors if we only have 1 variant and its title contains 'Default'.
7384       
7385         $('.selector-wrapper').hide();
7386       
7387     });
7388 </script>
7388
7389 
7390 
7391 
7392   
7392<script type="application/ld+json">
7393     {
7394     "@context": "http://schema.org",
7395     "@type": "Product",
7396 "offers": {
7397 "@type": "Offer",
7398 "availability":"https://schema.org/InStock",
7399 "price": 835000,
7400 "priceValidUntil": "2029-08-08",
7401 "priceCurrency": "IDR",
7402 "url": "https://duatotoperak.com/"
7403 },
7404 "brand": {
7405 "@type": "Brand",
7406 "name": "Outerbloom Florist"
7407 },
7408 "sku": "8144957800663",
7409 "gtin13": "SeoDuaTotoSiapBang",
7410 "name": "LINK BARU 5000 PERAK BISA JADI JUTAAN DI SITUS TOTO SLOT777  GACOR INI DUATOTO 2026",
7411 "description": "DUATOTO 2026 hadir dengan akses baru serba cepat dan pilihan permainan Toto & Slot777 dalam satu platform. Nikmati pengalaman bermain praktis dengan nominal mulai Rp5.000 dan berbagai fitur menarik.",
7412 "category": "DUATOTO 2026 hadir dengan akses baru serba cepat dan pilihan permainan Toto & Slot777 dalam satu platform. Nikmati pengalaman bermain praktis dengan nominal mulai Rp5.000 dan berbagai fitur menarik.",
7413 "url": "https://duatotoperak.com/",
7414 "image": {
7415 "@type": "ImageObject",
7416 "url": "https://outerbloom.com/cdn/shop/files/Blossom-Shine-WM_small.jpg?v=1695788426",
7417 "image": "https://outerbloom.com/cdn/shop/files/Blossom-Shine-WM_small.jpg?v=1695788426",
7418 "name": "LINK BARU 5000 PERAK BISA JADI JUTAAN DI SITUS TOTO SLOT777  GACOR INI DUATOTO 2026",
7419 "width": 1024,
7420 "height": 1024
7421 }
7422     }
7423   </script>
7423
7424 
7425 
7426 
7427 
7428         
7429 
7429<script id="bss-ltap-hide-price" type="text/javascript" >
7430 !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)}))}
7430)),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)}
7430)),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()}
7430if("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)}
7430if(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");
7430c&&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
7430-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");
7430i&&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
7430--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
7430opify.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");
7430e.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=
7430o.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");
7430if(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();
7430let 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()}]);
7431 </script>
7431
7432 
7433       </main>
7434       
7435       <div id="shopify-section-newsletter" class="shopify-section"><br>
7436   <style>
7437     #shopify-section-newsletter {
7438       background: url(https://duagalery.com/images/2025/11/13/bgdua13.png);
7439       background-attachment: fixed;
7440       margin-bottom: 0;
7441     }
7442     input:-webkit-autofill,
7443     input:-webkit-autofill:hover,
7444     input:-webkit-autofill:active,
7445     input:-webkit-autofill:focus {
7446       -webkit-box-shadow:0 0 0 50px white inset;
7447       -webkit-text-fill-color: #ffffff;
7448     }
7449     .section-newsletter {
7450       max-width: 800px;
7451       margin: auto;
7452       padding: 50px 0;
7453     }
7454     .section-newsletter h2 {
7455       font-weight: 700;
7456       font-size: 24px;
7457     }
7458     .section-newsletter input[type="email"] {
7459       width: 100%;
7460       text-align: center;
7461       border: none;
7462       border-bottom: 1px solid #ffffff;
7463       font-size: 16px;
7464       color: #757575;
7465       background-color: #eeeeee;
7466     }
7467     .section-newsletter .row label {
7468       font-size: 14px;
7469       cursor: pointer;
7470     }
7471     .section-newsletter .radio-inline input {
7472       width: auto;
7473     }
7474     .section-newsletter .btn {
7475       width: 130px;
7476       border: 1px solid #ffffff;
7477       box-shadow: none;
7478       font-size: 16px;
7479       font-weight: 500;
7480       text-transform: uppercase;
7481     }
7482     .section-newsletter form {
7483       margin: 30px 0 60px;
7484     }
7485     .section-newsletter input[type="radio"] {
7486       position: absolute;
7487       width: 1px;
7488       height: 1px;
7489     }
7490     .section-newsletter [type="radio"]:checked + label, .section-newsletter [type="radio"]:not(:checked) + label {
7491       position: relative;
7492       padding-left: 28px;
7493       cursor: pointer;
7494       line-height: 20px;
7495       display: inline-block;
7496       color: #666;
7497     }
7498     .section-newsletter [type="radio"]:checked + label:before, .section-newsletter [type="radio"]:not(:checked) + label:before {
7499       content: '';
7500       position: absolute;
7501       left: 0;
7502       top: 0;
7503       width: 18px;
7504       height: 18px;
7505       border: 1px solid #ddd;
7506       border-radius: 100%;
7507       background: #fff;
7508     }
7509     .section-newsletter [type="radio"]:checked + label:after, .section-newsletter [type="radio"]:not(:checked) + label:after {
7510       content: '';
7511       width: 12px;
7512       height: 12px;
7513       background: #ffffff;
7514       position: absolute;
7515       top: 3px;
7516       left: 3px;
7517       border-radius: 100%;
7518       -webkit-transition: all 0.2s ease;
7519       transition: all 0.2s ease;
7520     }
7521     .section-newsletter [type="radio"]:not(:checked) + label:after {
7522       opacity: 0;
7523       -webkit-transform: scale(0);
7524       transform: scale(0);
7525     }
7526     .opt-newsletter {display:none;}
7527     .footer-newsletter p, .footer-newsletter p a {
7528       color: #757575;
7529     }
7530     @media (max-width:991px){
7531       .section-newsletter h2 {
7532         font-size: 32px;
7533       }
7534       .section-newsletter input {
7535         width: 300px;
7536         font-size: 14px;
7537       }
7538       .section-newsletter {
7539         padding: 50px 20px;
7540       }
7541     }
7542     @media (max-width: 480px){
7543       .section-newsletter input[type="email"] {font-size: 16px;}
7544     }
7545   </style>
7546  <style>
7547 .icon-img-footer {
7548     width: 80px; 
7549     padding: 0px 5px;
7550 }
7551 @media (min-width: 768px) {
7552     .icon-img-footer {
7553         width: 120px; 
7554     }
7555 }
7556 @media (min-width: 992px) {
7557     .icon-img-footer {
7558         width: 120px; 
7559     }
7560 }
7561 
7562   .button-login-daftar {
7563                         display: grid;
7564                         grid-template-columns: repeat(2, 1fr);
7565                         font-weight: 700;
7566                     }
7567                     .button-login-daftar a {
7568                         text-align: center;
7569                     }
7570                     .login,
7571                     .register {
7572                         color: #000000;
7573                         padding: 15px 10px;
7574                         font-size: 23px;
7575                     }
7576                     .login,
7577                     .login-button {
7578                         background: linear-gradient(to bottom, #000000 0%, #ff4d7a 50%, #000000 100%);
7579                         border: 2px solid #cba302;
7580                     }
7581                     .register,
7582                     .register-button {
7583                         background: linear-gradient(to bottom, #000000 0%, #ff4d7a 50%, #000000 100%);
7584                         border: 2px solid #cba302;
7585                     }            
7586 </style>
7587 
7588 <!-- wp:html -->
7589  
7589<script>
7590         document.addEventListener('DOMContentLoaded',
7591             function(){const faqItems=document.querySelectorAll('.faq-item');
7592             faqItems.forEach(item=>{const question=item.querySelector('.faq-question');
7593             question.addEventListener('click',
7594             ()=>{const isActive=item.classList.contains('active');
7595             faqItems.forEach(otherItem=>{otherItem.classList.remove('active')});
7596             if(!isActive){item.classList.add('active')}})})});
7597         </script>
7597
7598 
7599 
7600             <div class="page__overlay" data-view="offCanvasNavToggle" data-off-canvas="close" bis_skin_checked="1">
7601             </div>
7602 <div class="faq-section">
7603    <h2>PERTANYAAN SEPUTAR DUATOTO | LINK BARU 5000 PERAK BISA JADI JUTAAN DI SITUS TOTO SLOT777  GACOR</h2>
7604    <div class="faq-container">
7605
7606        <div class="faq-item">
7607            <button class="faq-question">
7608                Apa yang dimaksud dengan DUATOTO Link 2026 Baru?
7609                <span></span>
7610            </button>
7611            <div class="faq-answer">
7612                <p>
7613                    DUATOTO Link 2026 Baru merujuk pada informasi akses terbaru DUATOTO yang berkaitan dengan Slot777 dan situs Toto. Pastikan selalu memeriksa alamat yang digunakan sebelum mengaksesnya.
7614                </p>
7615            </div>
7616        </div>
7617
7618        <div class="faq-item">
7619            <button class="faq-question">
7620                Apa saja informasi yang dibahas di DUATOTO?
7621                <span></span>
7622            </button>
7623            <div class="faq-answer">
7624                <p>
7625                    DUATOTO membahas informasi seputar Slot777, situs Toto, pembaruan link 2026, serta berbagai informasi terkait platform yang disajikan secara ringkas dan mudah dipahami.
7626                </p>
7627            </div>
7628        </div>
7629
7630        <div class="faq-item">
7631            <button class="faq-question">
7632                Mengapa DUATOTO disebut sebagai situs Toto pesaing Perak saat ini?
7633                <span></span>
7634            </button>
7635            <div class="faq-answer">
7636                <p>
7637                    Istilah tersebut menggambarkan positioning DUATOTO sebagai salah satu platform yang diperbandingkan dengan situs Toto lainnya. Perbandingan sebaiknya dilakukan berdasarkan informasi, fitur, tampilan, dan pengalaman penggunaan.
7638                </p>
7639            </div>
7640        </div>
7641
7642    </div>
7643</div>
7644 
7645         </div>
7646 
7647     </div>
7648 
7649 
7650 <div class="overlay overlay-cart"></div>
7651 <div id="CartDrawer" class="drawer drawer--right">
7652   <div class="drawer__header pl-2 pr-2">
7653     <div class="drawer__icon-cart display-table-cell">
7654       <a href="/cart" class="">
7655         <svg class="icon icon-cart" version="1.1" xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" 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.
7655005-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>
7656       </a>
7657     </div>
7658     <div class="drawer__title h4">Keranjang Belanja</div>
7659     <div class="drawer__close js-drawer-close">
7660       <button type="button">
7661         <svg class="icon icon-close" version="1.1" xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="32" height="32" viewBox="0 0 32 32">
7662 <title>icon-close</title>
7663 <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>
7664 </svg>
7665       </button>
7666     </div>
7667   </div>
7668   <div id="CartContainer" class="p-2"></div>
7669 </div>
7670 
7671 
7671<script>
7672       
7673     </script>
7673
7674       
7674<script src="//outerbloom.com/cdn/shop/t/138/assets/handlebars.min.js?v=79044469952368397291752652415" defer></script>
7674
7675       <!-- /snippets/ajax-cart-template.liquid -->
7676 
7677   
7677<script id="CartTemplate" type="text/template">
7678   
7679     <form action="/cart" method="post" novalidate class="cart ajaxcart">
7680       <div class="ajaxcart__inner" {{ cart.item_count }}>
7681         {{#items}}
7682         <div class="ajaxcart__product">
7683           <div class="ajaxcart__row" data-line="{{line}}">
7684             <div class="grid">
7685               <div class="grid__item one-quarter">
7686                 <a href="{{url}}" class="ajaxcart__product-image"><img src="{{img}}" alt=""></a>
7687               </div>
7688               <div class="grid__item three-quarters">
7689                 <p class="d-block mb-3">
7690                   <a class="h4 d-block mb-2" href="{{url}}" class="ajaxcart__product-name">{{name}}</a>
7691                   {{#if variation}}
7692                     <span class="ajaxcart__product-meta p">{{variation}}</span>
7693                   {{/if}}
7694                   {{#properties}}
7695                     {{#each this}}
7696                       {{#if this}}
7697                         <span class="ajaxcart__product-meta p hide">{{@key}}: {{this}}</span>
7698                       {{/if}}
7699                     {{/each}}
7700                   {{/properties}}
7701                   
7702                 </p>
7703                 <div class="grid--full display-table">
7704                   <div class="grid__item display-table-cell one-half">
7705                     <div class="ajaxcart__qty">
7706                       <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--minus" data-id="{{key}}" data-qty="{{itemMinus}}" data-line="{{line}}">
7707                         <svg version="1.1" xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" 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>
7708                         <span class="visually-hidden">Kurangi jumlah barang</span>
7709                       </button>
7710                       <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]*">
7711                       <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--plus" data-id="{{key}}" data-line="{{line}}" data-qty="{{itemAdd}}">
7712                         <svg version="1.1" xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" 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>
7713                         <span class="visually-hidden">Tambahkan jumlah barang</span>
7714                       </button>
7715                     </div>
7716                   </div>
7717                   <div class="grid__item display-table-cell one-half text-right">
7718                     {{#if discountsApplied}}
7719                       <small class="ajaxcart-item__price-strikethrough"><s>{{{originalLinePrice}}}</s></small>
7720                       <br><span class="h4">{{{linePrice}}}</span>
7721                     {{else}}
7722                       <span class="h4">{{{linePrice}}}</span>
7723                     {{/if}}
7724                     </div>
7725                   </div>
7726                   {{#if discountsApplied}}
7727                     <div class="grid--full display-table">
7728                       <div class="grid__item text-right">
7729                         {{#each discounts}}
7730                           <small class="ajaxcart-item__discount">{{ this.title }}</small><br>
7731                         {{/each}}
7732                       </div>
7733                     </div>
7734                   {{/if}}
7735                   </div>
7736                 </div>
7737               </div>
7738             </div>
7739           </div>
7740         </div>
7741         {{/items}}
7742       </div>
7743       <div class="ajaxcart__footer">
7744         <div class="grid--full cart-subtotal py-2">
7745             <p>Subtotal</p>
7746             <h3 class="primary">{{{totalPrice}}}</h3>
7747           {{#if totalCartDiscount}}
7748             <p class="ajaxcart__savings text-center"><em>{{{totalCartDiscount}}}</em></p>
7749           {{/if}}
7750         </div>
7751         
7752         <a href="/cart" class="btn btn-cta view-more btn-block cart__checkout mt-2">Checkout</a>
7753         
7754         <p class="cart-checkout-shipping hide">Free Ongkir dengan belanja di atas Rp.100.000 <a href="/pages/pengiriman">detail</a></p>
7755       </div>
7756     </form>
7757   
7758   </script>
7758
7759   
7759<script id="AjaxQty" type="text/template">
7760   
7761     <div class="ajaxcart__qty">
7762       <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--minus" data-id="{{key}}" data-qty="{{itemMinus}}">
7763         <svg version="1.1" xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="24" height="24" viewBox="0 0 32 32">
7764             <title>icon-minus</title>
7765             <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>
7766         </svg>
7767         <span class="visually-hidden">Kurangi jumlah barang</span>
7768           </button>
7769               <input type="text" class="ajaxcart__qty-num" value="{{itemQty}}" min="0" data-id="{{key}}" aria-label="quantity" pattern="[0-9]*">
7770           <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--plus" data-id="{{key}}" data-qty="{{itemAdd}}">
7771         <svg version="1.1" xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" 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>
7772         <span class="visually-hidden">Tambahkan jumlah barang</span>
7773       </button>
7774     </div>
7775   
7776   </script>
7776
7777   
7777<script id="JsQty" type="text/template">
7778   
7779     <div class="js-qty mx-auto mt-2">
7780       <button type="button" class="js-qty__adjust js-qty__adjust--minus" data-id="{{key}}" data-qty="{{itemMinus}}">
7781         <svg version="1.1" xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" 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>
7782         <span class="visually-hidden">Kurangi jumlah barang</span>
7783       </button>
7784       <input type="text" class="js-qty__num" value="{{itemQty}}" min="1" data-id="{{key}}" aria-label="quantity" pattern="[0-9]*" name="{{inputName}}" id="{{inputId}}">
7785       <button type="button" class="js-qty__adjust js-qty__adjust--plus" data-id="{{key}}" data-qty="{{itemAdd}}">
7786         <svg version="1.1" xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" 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>
7787         <span class="visually-hidden">Tambahkan jumlah barang</span>
7788       </button>
7789     </div>
7790   
7791   </script>
7791
7792 
7793 <style>
7794   #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty button,
7795   #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty button,
7796   #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty button {display: none;}
7797   #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty input,
7798   #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty input,
7799   #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty input {pointer-events: none;opacity: 0.5;}
7800   #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty input,
7801   #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty input,
7802   #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty input {pointer-events: none;}
7803 </style>
7804       
7804<script src="//outerbloom.com/cdn/shop/t/138/assets/ajax-cart.js?v=51128912329657147331752652452" defer></script>
7804
7805       
7805<script>
7806         jQuery(function($) {
7807           ajaxCart.init({
7808             formSelector: '#AddToCartForm',
7809             cartContainer: '#CartContainer',
7810             addToCartSelector: '#AddToCartXX',
7811             cartCountSelector: '#CartCount, #CartCount2',
7812             cartCostSelector: '#CartCost',
7813             moneyFormat: "Rp {{amount_no_decimals}}"
7814           });
7815           });
7816 
7817           jQuery(document.body).on('afterCartLoad.ajaxCart', function(evt, cart) {
7818             // Bind to 'afterCartLoad.ajaxCart' to run any javascript after the cart has loaded in the DOM
7819             timber.RightDrawer.open();
7820           });
7821       </script>
7821
7822     
7823 
7824 
7825 
7826 <style>
7827   /** Search AutoComplete **/
7828   .resultsearch .ui-menu-item[data-cat="Collection"],
7829   .resultsearch .ui-menu-item[data-cat="Collection"] {display: none;}
7830   .resultsearch .ui-widget.ui-widget-content {
7831     width: 100%;
7832     top: 48px;
7833     border: none;
7834     box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3);
7835   }
7836   .resultsearch .ui-menu-item {text-align: left;}
7837   .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;}
7838   .ui-state-active {
7839     border: none!important;
7840     background-color: #fafafa!important;
7841     color: #000!important;
7842   }
7843   .ui-menu-item a[data-cat="Collection"] {padding: 5px 12px;}
7844   .ui-menu .ui-menu-item {line-height: normal;}
7845 </style>
7846 
7846<script>
7847 $(window).load(function(){
7848 
7849   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;}
7850 
7851   $.widget("custom.catcomplete", $.ui.autocomplete, {
7852     _renderMenu: function (ul, items) {
7853       // have search reults split up in categories
7854       var that = this,
7855           currentCategory = "";
7856       $.each(items, function (index, item) {
7857         if (item.category != currentCategory) {
7858           ul.append("<li class='ui-autocomplete-category' data-cat=" + item.category + ">" + "<span>" + item.category + "</span>" + "</li>");
7859           currentCategory = item.category;
7860         }
7861         that._renderItemData(ul, item);
7862       });
7863     }
7864   });
7865 
7866   // higlight searched for term
7867   $.ui.autocomplete.prototype._renderItem = function( ul, item ) {
7868     var term = this.element.val(),
7869         html = item.label.replace( term, "<b>$&</b>" );
7870     return $( "<li>" )
7871     .append(format(item))
7872     .appendTo( ul );
7873   };
7874 
7875 
7876   var data = [
7877       { 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
7877llection", 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: " " }
7877,{ 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: " " }
7877,{ 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: " " }
7877,{ 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
7877dal", 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-
7877hampers", 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
7877o-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: " " }
7877,{ 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: " " }
7877,{ 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: " " }
7877,{ 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: " " }
7877,{ 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: " " }
7877,{ 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: " " }
7877,{ 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: " " }
7877,{ 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: "DUATOTO 2026 hadir dengan akses baru serba cepat dan pilihan permainan Toto & Slot777 dalam satu platform. Nikmati pengalaman bermain praktis dengan nominal mulai Rp5.000 dan berbagai fitur menarik.", category: "Collection", url: "/collections/standing-flower", images: " ", price: " " },{ label: "DUATOTO 2026 hadir dengan akses baru serba cepat dan pilihan permainan Toto & Slot777 dalam satu platform. Nikmati pengalaman bermain praktis dengan nominal mulai Rp5.000 dan berbagai fitur menarik. Bali", category: "Collection", url: "/collections/standing-flower-bali", images: " ", price: " " },{ label: "DUATOTO 2026 hadir dengan akses baru serba cepat dan pilihan permainan Toto & Slot777 dalam satu platform. Nikmati pengalaman bermain praktis dengan nominal mulai Rp5.000 dan berbagai fitur menarik. Bandung", category: "Collection", url: "/collections/standing-flower-bandung", images: " ", price: " " },{ label: "DUATOTO 2026 hadir dengan akses baru serba cepat dan pilihan permainan Toto & Slot777 dalam satu platform. Nikmati pengalaman bermain praktis dengan nominal mulai Rp5.000 dan berbagai fitur menarik. Congratulations", category: "Collection", url: "/collections/standing-flower-congratulations", images: " ", price: " " },{ label: "DUATOTO 2026 hadir dengan akses baru serba cepat dan pilihan permainan Toto & Slot777 dalam satu platform. Nikmati pengalaman bermain praktis dengan nominal mulai Rp5.000 dan berbagai fitur menarik. Demak", category: "Collection", url: "/collections/standing-flower-demak", images: " ", price: " " },{ label: "DUATOTO 2026 hadir dengan akses baru serba cepat dan pilihan permainan Toto & Slot777 dalam satu platform. Nikmati pengalaman bermain praktis dengan nominal mulai Rp5.000 dan berbagai fitur menarik. Jepara", category: "Collection", url: "/collections/standing-flower-jepara", images: " ", price: " " },{ label: "DUATOTO 2026 hadir dengan akses baru serba cepat dan pilihan permainan Toto & Slot777 dalam satu platform. Nikmati pengalaman bermain praktis dengan nominal mulai Rp5.000 dan berbagai fitur menarik. Semarang", category: "Collection", url: "/collections/standing-flower-semarang", images: " ", price: " " },{ label: "DUATOTO 2026 hadir dengan akses baru serba cepat dan pilihan permainan Toto & Slot777 dalam satu platform. Nikmati pengalaman bermain praktis dengan nominal mulai Rp5.000 dan berbagai fitur menarik. Sidoarjo", category: "Collection", url: "/collections/standing-flower-sidoarjo", images: " ", price: " " },{ label: "DUATOTO 2026 hadir dengan akses baru serba cepat dan pilihan permainan Toto & Slot777 dalam satu platform. Nikmati pengalaman bermain praktis dengan nominal mulai Rp5.000 dan berbagai fitur menarik. Surabaya", category: "Collection", url: "/collections/standing-flower-surabaya", images: " ", price: " " },{ label: "DUATOTO 2026 hadir dengan akses baru serba cepat dan pilihan permainan Toto & Slot777 dalam satu platform. Nikmati pengalaman bermain praktis dengan nominal mulai Rp5.000 dan berbagai fitur menarik. 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",
7877 url: "/collections/tisane", images: " ", price: " " },{ label: "Toko Bunga Aceh", category: "Collection", url: "/collections/toko-bunga-aceh", images: " ", price: " " },{ label: "Toko Bunga Ambon", category: "Collection", url: "/collections/toko-bunga-ambon", images: " ", price: " " },{ label: "Toko Bunga Atambua", category: "Collection", url: "/collections/toko-bunga-atambua", images: " ", price: " " },{ label: "Toko Bunga Bali", category: "Collection", url: "/collections/toko-bunga-bali", images: " ", price: " " },{ label: "Toko Bunga Balikpapan", category: "Collection", url: "/collections/toko-bunga-balikpapan", images: " ", price: " " },{ 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: " " }
7877,{ 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
7877dal", 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: " " },
7878       { 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" }
7878,{ 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" }
7878,{ 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" }
7879   ];
7880 
7881              
7882         $( ".header-input-search" ).catcomplete({
7883          appendTo: ".searchResult",source: function(request, response) {
7884             var results = $.ui.autocomplete.filter(data, request.term);
7885             var predicate = function () {
7886                 var counter = { Collection: 0, Produk: 0 };
7887             var fn = function(item) {counter[item.category] += 1;return (counter[item.category] <= 5);}
7888             return fn
7889             }();
7890             response(results.filter(predicate));
7891           },
7892           minLength:1,
7893            //results are clickable
7894           select: function( event, ui ) {window.location = ui.item.url;}
7895 });
7896 $( ".header-input-search2" ).catcomplete({
7897         appendTo: ".searchResult2",
7898                    source: function(request, response) {
7899                     var results = $.ui.autocomplete.filter(data, request.term);
7900                     var predicate = function () {
7901                         var counter = { Collection: 0, Produk: 0 };
7902               var fn = function(item) {
7903               counter[item.category] += 1;
7904   return (counter[item.category] <= 5);
7905 }
7906                return fn
7907                }();
7908 response(results.filter(predicate));
7909 },
7910   minLength:1,
7911         //results are clickable
7912         select: function( event, ui ) {
7913           window.location = ui.item.url;
7914         }
7915 });
7916 });
7917 </script>
7917
7918 
7919     
7919<script src="//outerbloom.com/cdn/shop/t/138/assets/vendors.js?v=6349622868601634021752652419" defer></script>
7919
7920 
7920<script src="//outerbloom.com/cdn/shop/t/138/assets/app.js?v=136050180318808583701752652452" defer></script>
7920
7921 
7922 
7922<script>
7923   ( function() {
7924     var youtube = document.querySelectorAll( ".youtube" );
7925     for (var i = 0; i < youtube.length; i++) {
7926       var source = "https://img.youtube.com/vi/"+ youtube[i].dataset.embed +"/sddefault_1x.jpg";
7927       var datasource = "https://img.youtube.com/vi/"+ youtube[i].dataset.embed +"/sddefault.jpg";
7928       var image = new Image();
7929       image.src = source;
7930       image.setAttribute("data-src", datasource);
7931       image.classList.add("swiper-lazy");
7932       image.addEventListener( "load", function() {
7933         youtube[ i ].appendChild( image );
7934       }( i ) );
7935       youtube[i].addEventListener( "click", function() {
7936         var iframe = document.createElement( "iframe" );
7937         iframe.setAttribute( "width", "480" );
7938         iframe.setAttribute( "height", "480" );
7939         iframe.setAttribute( "frameborder", "0" );
7940         iframe.setAttribute( "allowfullscreen", "" );
7941         iframe.setAttribute( "src", "https://www.youtube.com/embed/"+ this.dataset.embed +"?rel=0&showinfo=0&autoplay=1" );
7942         this.innerHTML = "";
7943         this.appendChild( iframe );
7944       } );
7945     };
7946 
7947   } )();
7948 
7949   /* Lazy Load */
7950   const mainLazyLoad = new LazyLoad({threshold:400});
7951   $(document).ready(function(){
7952 
7953     $("selectxxx").addClass("needsclick");
7954     FastClick.attach(document.body);
7955     
7956     var $customSelects = $('.select-search');
7957     $customSelects.select2({
7958       templateResult: function(result, container) {
7959         if (!result.id) {
7960           return result.text;
7961         }
7962         container.className += ' needsclick';
7963         return result.text;
7964       }
7965     });
7966     $customSelects.each(function(index, el){$(el).data('select2').$container.find('*').addClass('needsclick');});
7967     $(document).on('select2:open', () => {
7968       document.querySelector('.select2-search__field').focus();
7969     });
7970     
7971 
7972     $(".overlay").click(function(){
7973       $(".js-drawer-close").click();
7974     });
7975     $(".site-nav--mobile .js-drawer-open-left, #NavDrawer .icon-close, .overlay-nav").click(function(){
7976       $("html").toggleClass("nav_open");
7977     });
7978     
7979     $('.swatch-element label').on('click', function(){
7980       var srcImg = $(this).data('src');
7981       $('#thumb-image-product .product-single__thumbnail').each(function(){
7982         if ($(this).attr("href") == srcImg) {
7983           $(this).trigger('click');
7984         }
7985       });
7986     });
7987     var defaultValue = $(".swatch input:checked").val()
7988     
7989     $('#purchaseProduct .swatch [type=radio]').change(function() {
7990       var optionIndex = $(this).closest('.swatch').attr('data-option-index');
7991       var optionValue = $(this).val();
7992       console.log(optionIndex, optionValue)
7993       var value = parseInt(optionValue.split(' ')[0])
7994       $(this)
7995       .closest('#purchaseProduct')
7996       .find('.single-option-selector')
7997       .eq(optionIndex)
7998       .val(optionValue)
7999       .trigger('change');
8000       
8001     });
8002     
8003   });
8004   $(document).ready(function(){
8005     $(".nav-search a").click(function(e){
8006       e.preventDefault();
8007       $(".icon-navsearch").toggle();
8008       $(".icon-navclose").toggle();
8009       $(".site-nav__item > .site-nav__link").toggle();
8010       $(".open-search").toggle();
8011       $(".open-search input").focus();
8012     });
8013     $(".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'>");
8014     if ($(window).width() < 768) {
8015       $(".bg-products .label-tag.valentine").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-valentine_75x.png?v=82732945490105366961752652419' alt='Icon Valentine'>");
8016       $(".bg-products .label-tag.cny").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-cny_45x.png?v=101884295148001743851752652418' alt='Icon CNY'>");
8017       $(".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'>");
8018     } else {
8019       $(".bg-products .label-tag.valentine").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-valentine_60x.png?v=82732945490105366961752652419' alt='Icon Valentine'>");
8020       $(".bg-products .label-tag.cny").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-cny_60x.png?v=101884295148001743851752652418' alt='Icon CNY'>");
8021       $(".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'>");
8022     }
8023     $(".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'>");
8024     $(".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'>");
8025   });
8026 </script>
8026
8027 
8028 
8029     
8030     
8031     
8032     
8033 
8034     
8034<script type="text/javascript">
8035       var wishlistpage = 0;
8036        
8037        var quickShop_money_format="<span class='money'>"+"Rp {{amount_no_decimals}}"+"</span>";
8038     </script>
8038
8039     
8040       <!-- Remove duplicate wishlist.js reference -->
8041       <style>
8042   .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)}}
8043 </style>
8044 
8045 <div class="modal fade" id="modalwishlist0" tabindex="-1" role="dialog">
8046   <div class="modal-dialog" role="document">
8047     <div class="modal-content">        
8048       <div class="modal-body">Your Wishlist is empty!</div>
8049       <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>          
8050     </div>
8051   </div>
8052 </div> 
8053 
8054 <div class="wishlist-model">
8055   <div class="modal fade" id="modalwishlist1" tabindex="-1" role="dialog" aria-hidden="true">
8056     <div class="modal-dialog white-modal">
8057       <div class="modal-content">
8058         <div class="modal-header">
8059           <button type="button" class="close" data-dismiss="modal" aria-label="Close">
8060             <svg class="icon icon-close" version="1.1" xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="32" height="32" viewBox="0 0 32 32">
8061 <title>icon-close</title>
8062 <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>
8063 </svg>
8064           </button>
8065         </div>
8066         <div class="modal-body">
8067           <div class="wishlist-left">
8068             <div class="wishlist-note">
8069               <span class="cirle"><svg version="1.1" xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="32" height="32" viewBox="0 0 32 32">
8070 <title>icon-check</title>
8071 <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>
8072 </svg></span>
8073               Product added to <a href="/pages/wish-list">Wishlist</a>
8074             </div>
8075             <div class="wishlist-product">
8076               <div class="product-left">
8077                 <div class="wishlist-image"></div>
8078               </div>
8079               <div class="product-right">
8080                 <div class="wishlist-name"></div>
8081                 <div class="wishlist-price"></div>
8082               </div>
8083             </div>
8084           </div>
8085           <div class="wishlist-right">
8086             <div class="wishlist-cart">
8087               <form action="/cart/add" method="post" class="variants-form variants" id="AddToCartForm" enctype="multipart/form-data">                  
8088                 <div class="others-bottom">
8089                   <a class="btn btn-quick-shop" href="/pages/wish-list">View Wishlist</a>
8090                   <button type="submit" name="add" id="AddToCart" class="btn btn-cta">
8091                     <span id="AddToCartText" class="">Beli Sekarang</span>
8092                   </button>
8093                 </div>
8094                 <div id="wishlist-variants-container" class="variants-wrapper"></div> 
8095                 <div class="quantity-content">
8096                   <label>QTY</label>
8097                   <input type="number" size="5" class="" name="quantity" value="1" />
8098                 </div>
8099               </form> 
8100             </div>
8101           </div>
8102         </div>
8103       </div>
8104     </div>
8105   </div>
8106 </div>
8107 
8108     
8109     <style>
8110        .stamped-badge[data-rating="0.0"]{display: none !Important;}
8111        
8112         div[data-load-type="continue"] ul.stamped-pagination li.next a, div[data-widget-load-type="continue"] ul.stamped-pagination li.next a {
8113           border-radius: 0px;
8114       }
8115           .stamped-review-body {
8116           padding-left: 0px !important;
8117       }
8118           #product-reviews .stamped-header:after {
8119             display:none !Important;
8120           }
8121       #stamped-main-widget .stamped-container, .stamped-badge-caption,#stamped-reviews-widget {
8122           font-family:inherit !important;
8123       }
8124     </style>
8125 
8126     
8127 
8128 <div id='stamped-rewards-init' class='stamped-rewards-init'
8129   data-key-public=''
8130 
8131 ></div>
8132 
8133     
8133<script src="//outerbloom.com/cdn/shop/t/138/assets/variant-sku-handler.js?v=91239063692820757781752652418" defer></script>
8133
8134     <!-- Remove duplicate jQuery reference and load wishlist script properly -->
8135     
8135<script src="//outerbloom.com/cdn/shop/t/138/assets/wishlist-fixed.js?v=35991423018869066281754360012" defer></script>
8135
8136 
8137     
8137<script>
8138       function myInit(){ StampedFn.init({ apiKey: 'pubkey-hCS8DHE9QbBHhHN89WXFkuJ0Y3422D', sId: '23462' }); }
8139     </script>
8139
8140     
8140<script async onload="myInit()" type="text/javascript" src="https://cdn1.stamped.io/files/widget.min.js"></script>
8140<style>
8141   .jss59 {
8142     background-color: rgba(0, 0, 0, 0.6);
8143   }
8144   .MuiBackdrop-root {
8145     top: 0;
8146     left: 0;
8147     right: 0;
8148     bottom: 0;
8149     display: flex;
8150     z-index: -1;
8151     position: fixed;
8152     align-items: center;
8153     justify-content: center;
8154     background-color: rgba(0, 0, 0, 0.5);
8155     -webkit-tap-highlight-color: transparent;
8156   }
8157   .MuiDialog-scrollPaper {
8158     display: flex;
8159     align-items: center;
8160     justify-content: center;
8161   }
8162   .MuiDialog-container {
8163     height: 100%;
8164     outline: 0;
8165   }
8166   .MuiPaper-elevation24 {
8167     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);
8168   }
8169   .MuiDialog-paper {
8170     margin: 32px;
8171     position: relative;
8172     overflow-y: auto;
8173   }
8174   .MuiDialog-paperScrollPaper {
8175     display: flex;
8176     max-height: calc(100% - 64px);
8177     flex-direction: column;
8178   }
8179   .MuiDialog-paperWidthSm {
8180     max-width: 600px;
8181   }
8182   #location-lock-dialog {
8183     top: 20%;
8184     left: 0;
8185     right: 0;
8186     width: 30%;
8187     margin: 0px auto;
8188     display: block;
8189     padding: 30px;
8190     z-index: 99999;
8191     position: fixed;
8192     font-size: 14px;
8193     background: rgb(0, 0, 0);
8194     box-shadow: rgba(11, 11, 12, 0.2) 2px 4px 5px 0px;
8195     text-align: center;
8196     font-family: Roboto, Arial, sans-serif;
8197     line-height: 1;
8198     border-radius: 8px;
8199     -webkit-font-smoothing: subpixel-antialiased;
8200   }
8201   .MuiButtonBase-root {
8202     color: inherit;
8203     border: 0;
8204     cursor: pointer;
8205     margin: 0;
8206     display: inline-flex;
8207     outline: 0;
8208     padding: 0;
8209     position: relative;
8210     align-items: center;
8211     user-select: none;
8212     border-radius: 0;
8213     vertical-align: middle;
8214     -moz-appearance: none;
8215     justify-content: center;
8216     text-decoration: none;
8217     background-color: transparent;
8218     -webkit-appearance: none;
8219     -webkit-tap-highlight-color: transparent;
8220   }
8221   .MuiIconButton-root {
8222     flex: 0 0 auto;
8223     color: rgba(0, 0, 0, 0.54);
8224     padding: 12px;
8225     overflow: visible;
8226     font-size: 1.5rem;
8227     text-align: center;
8228     transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
8229     border-radius: 50%;
8230   }
8231   .MuiIconButton-label {
8232     width: 100%;
8233     display: flex;
8234     align-items: inherit;
8235     justify-content: inherit;
8236   }
8237   .MuiSvgIcon-root {
8238     fill: currentColor;
8239     width: 1em;
8240     height: 1em;
8241     display: inline-block;
8242     font-size: 1.5rem;
8243     transition: fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
8244     flex-shrink: 0;
8245     user-select: none;
8246   }
8247   .MuiTouchRipple-root {
8248     top: 0;
8249     left: 0;
8250     right: 0;
8251     bottom: 0;
8252     z-index: 0;
8253     overflow: hidden;
8254     position: absolute;
8255     border-radius: inherit;
8256     pointer-events: none;
8257   }
8258   .jss36 {
8259     color: #222222;
8260     font-size: 24px;
8261     font-family: Roboto, Arial, sans-serif;
8262     font-weight: 500;
8263   }
8264   .jss37 {
8265     color: #555555;
8266     padding: 10px 0px 0px;
8267     font-size: 14px;
8268   }
8269   .MuiFormGroup-root {
8270     display: flex;
8271     flex-wrap: wrap;
8272     flex-direction: column;
8273   }
8274   .MuiFormGroup-row {
8275     flex-direction: row;
8276   }
8277   .jss63 {
8278     width: 85%;
8279     margin: 15px auto;
8280     display: flex;
8281     padding: 11px 0px 0px;
8282     justify-content: space-evenly;
8283   }
8284   .MuiFormControlLabel-root {
8285     cursor: pointer;
8286     display: inline-flex;
8287     align-items: center;
8288     margin-left: -11px;
8289     margin-right: 16px;
8290     vertical-align: middle;
8291     -webkit-tap-highlight-color: transparent;
8292   }
8293   .jss70 {
8294     margin: 0;
8295   }
8296   .MuiButtonBase-root {
8297     color: inherit;
8298     border: 0;
8299     cursor: pointer;
8300     margin: 0;
8301     display: inline-flex;
8302     outline: 0;
8303     padding: 0;
8304     position: relative;
8305     align-items: center;
8306     user-select: none;
8307     border-radius: 0;
8308     vertical-align: middle;
8309     -moz-appearance: none;
8310     justify-content: center;
8311     text-decoration: none;
8312     background-color: transparent;
8313     -webkit-appearance: none;
8314     -webkit-tap-highlight-color: transparent;
8315   }
8316   .MuiIconButton-root {
8317     flex: 0 0 auto;
8318     color: rgba(0, 0, 0, 0.54);
8319     padding: 12px;
8320     overflow: visible;
8321     font-size: 1.5rem;
8322     text-align: center;
8323     transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
8324     border-radius: 50%;
8325   }
8326   .MuiIconButton-colorSecondary {
8327     color: #f50057;
8328   }
8329   .jss71 {
8330     padding: 9px;
8331   }
8332   .MuiRadio-root {
8333     color: rgba(0, 0, 0, 0.54);
8334   }
8335   .jss64 {
8336     padding: 2px;
8337   }
8338   .MuiRadio-colorSecondary.Mui-checked {
8339     color: #f50057;
8340   }
8341   .MuiIconButton-label {
8342     width: 100%;
8343     display: flex;
8344     align-items: inherit;
8345     justify-content: inherit;
8346   }
8347   .MuiTypography-root {
8348     margin: 0;
8349   }
8350   .MuiTypography-body1 {
8351     font-size: 18px;
8352     font-family: Roboto,sans-serif;
8353     font-weight: 400;
8354     line-height: 1.5;
8355   }
8356   .location-popup_area-block__sp9Ws {
8357     display: -moz-box;
8358     display: flex;
8359     -moz-box-orient: vertical;
8360     -moz-box-direction: normal;
8361     flex-direction: column;
8362     -moz-box-pack: center;
8363     justify-content: center;
8364     position: relative;
8365     margin: 10px 10% 0;
8366   }
8367   .location-popup_pin-search-box__3l5mJ {
8368     width: 100%;
8369     display: -moz-box;
8370     display: flex;
8371     -moz-box-align: center;
8372     align-items: center;
8373   }
8374   .location-popup_place-icon-city__1XAX5, .location-popup_place-icon__jSG0Q {
8375     position: absolute;
8376     z-index: 999;
8377   }
8378   .location-popup_place-icon__jSG0Q {
8379     color: #ffffff;
8380     padding-left: 8px;
8381   }
8382   .location-popup_place-icon__jSG0Q svg {
8383     width: 18px;
8384     height: 18px;
8385   }
8386   .location-popup_cancel-icon__FHujU {
8387     color: #fff;
8388     right: 10px;
8389     width: 16px;
8390     cursor: pointer;
8391     height: 16px;
8392     display: none;
8393     padding: 5px;
8394     position: absolute;
8395     background: #999;
8396     text-align: center;
8397     border-radius: 50%;
8398   }
8399   .location-popup_pin-search-box__3l5mJ>div>select {
8400 /*     -webkit-box-shadow: 0 0 10px #ffffff;
8401     box-shadow: 0 0 10px #ffffff; */
8402     text-transform: capitalize;
8403     border: 1px solid #ffffff;
8404     color: #ffffff;
8405     width: 100%;
8406     margin: 0;
8407     display: -moz-box;
8408     display: flex;
8409     padding: 0 30px;
8410     -webkit-animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite;
8411     -moz-animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite;
8412     animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite;
8413     font-size: 16px;
8414     border-radius: 4px;
8415     height: 44px;
8416     moz-animation: location-popup_focuses__1I8Gj ease-in-out 1.5s infinite;
8417     webkit-animation: location-popup_focuses__1I8Gj ease-in-out 1.5s infinite;
8418   }
8419   .MuiButtonBase-root {
8420     color: inherit;
8421     border: 0;
8422     cursor: pointer;
8423     margin: 0;
8424     display: inline-flex;
8425     outline: 0;
8426     padding: 0;
8427     position: relative;
8428     align-items: center;
8429     user-select: none;
8430     border-radius: 0;
8431     vertical-align: middle;
8432     -moz-appearance: none;
8433     justify-content: center;
8434     text-decoration: none;
8435     background-color: transparent;
8436     -webkit-appearance: none;
8437     -webkit-tap-highlight-color: transparent;
8438   }
8439   .MuiButton-root {
8440     color: rgba(0, 0, 0, 0.87);
8441     padding: 6px 16px;
8442     font-size: 0.875rem;
8443     min-width: 64px;
8444     box-sizing: border-box;
8445     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;
8446     font-family: Roboto,sans-serif;
8447     font-weight: 500;
8448     line-height: 1.75;
8449     border-radius: 4px;
8450     text-transform: uppercase;
8451   }
8452   .MuiButton-contained {
8453     color: rgba(0, 0, 0, 0.87);
8454     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);
8455     background-color: #e0e0e0;
8456   }
8457   .MuiButtonBase-root.Mui-disabled {
8458     cursor: default;
8459     pointer-events: none;
8460   }
8461   .MuiButton-label {
8462     width: 100%;
8463     display: inherit;
8464     align-items: inherit;
8465     justify-content: inherit;
8466   }
8467   .cartButton_login_content__2j1f7 {
8468     display: -moz-box;
8469     display: flex;
8470     text-align: center;
8471     z-index: 9;
8472     font-size: 18px;
8473     font-weight: 500;
8474     color: #fff;
8475   }
8476   
8477   .jss35 {
8478     top: 5px;
8479     right: 5px;
8480     padding: 4px;
8481     position: absolute;
8482     border-radius: 50%;
8483   }
8484   .jss67 {
8485     cursor: pointer;
8486     font-size: 15px;
8487     line-height: 1.3;
8488     padding-left: 5px;
8489   }
8490   .jss69 {
8491     color: #222222;
8492   }
8493   .jss80 {
8494     color: #fff;
8495     width: 100%;
8496     height: 52px;
8497     padding: 11px 16px;
8498     font-size: 18px;
8499     min-width: 88px;
8500     min-height: 36px;
8501     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;
8502     font-weight: 500;
8503     line-weight: 1em;
8504     border-radius: 4px;
8505     text-transform: uppercase;
8506     background-color: #E87325;
8507   }
8508   @media (min-width: 991px){
8509     .cartButton_login_content__2j1f7 {
8510         font-weight: 500;
8511     }
8512   }
8513 
8514   @media (max-width: 992px) {
8515     #location-lock-dialog {
8516       width: 100%;
8517       top: auto;
8518       bottom: 0;
8519       padding-left: 0;
8520       padding-right: 0;
8521     }
8522     .MuiFormGroup-row {
8523       display: block
8524     }
8525     .MuiIconButton-label input {
8526       margin: 0;
8527     }
8528   }
8529 </style>
8530 <div role="presentation" class="MuiDialog-root jss34" style="display: none;position: fixed; z-index: 9999; inset: 0px;">
8531   <div class="MuiBackdrop-root" aria-hidden="true" style="opacity: 1; transition: opacity 225ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;"></div>
8532   <div tabindex="0" data-test="sentinelStart"></div>
8533   <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;">
8534     <div class="MuiPaper-root MuiDialog-paper MuiDialog-paperScrollPaper MuiDialog-paperWidthSm MuiPaper-elevation24 MuiPaper-rounded" role="dialog">
8535       <div class="jss31 undefined" id="location-lock-dialog">
8536         <button id="close-popup-delivery" class="MuiButtonBase-root MuiIconButton-root jss35" tabindex="0" type="button" aria-label="close">
8537           <span class="MuiIconButton-label">
8538             <svg class="MuiSvgIcon-root" focusable="false" viewBox="0 0 24 24" aria-hidden="true">
8539               <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>
8540             </svg>
8541           </span>
8542           <span class="MuiTouchRipple-root"></span>
8543         </button>
8544         <div>
8545           <div class="jss36">Select Delivery Location</div>
8546           <div class="jss37">Select a delivery location to see product availability</div>
8547         </div>
8548         <div class="MuiFormGroup-root jss63 MuiFormGroup-row" role="radiogroup">
8549           <label for="jabodetabek" class="MuiFormControlLabel-root jss45">
8550             <span class="MuiButtonBase-root MuiIconButton-root jss46 MuiRadio-root MuiRadio-colorSecondary jss39 jss47 Mui-checked MuiIconButton-colorSecondary" aria-disabled="false">
8551               <span class="MuiIconButton-label">
8552                 <input id="jabodetabek" class="jss49" type="radio" value="Jabodetabek" checked="" name="location">
8553                 <span class="jss41"></span>
8554               </span>
8555               <span class="MuiTouchRipple-root"></span>
8556             </span>
8557             <span class="MuiTypography-root MuiFormControlLabel-label MuiTypography-body1">
8558               <span class="jss67 jss69">Jabodetabek</span>
8559             </span>
8560           </label>
8561           <label for="non-jabodetabek" class="MuiFormControlLabel-root jss45">
8562             <span class="MuiButtonBase-root MuiIconButton-root jss46 MuiRadio-root MuiRadio-colorSecondary jss39 MuiIconButton-colorSecondary" aria-disabled="false">
8563               <span class="MuiIconButton-label">
8564                 <input id="non-jabodetabek" class="jss49" type="radio" value="Outside Jabodetabek" name="location">
8565                 <span class="jss40"></span>
8566               </span>
8567               <span class="MuiTouchRipple-root"></span>
8568             </span>
8569             <span class="MuiTypography-root MuiFormControlLabel-label MuiTypography-body1">
8570               <span class="jss67 jss68">Outside Jabodetabek</span>
8571             </span>
8572           </label>
8573         </div>
8574         <div>
8575           <div class="MuiGrid-root location-popup_area-block__sp9Ws">
8576             <div class="MuiGrid-root location-popup_pin-search-box__3l5mJ false">
8577               <div class="MuiGrid-root location-popup_place-icon__jSG0Q">
8578                 <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>
8579               </div>
8580               <div class="MuiGrid-root location-popup_cancel-icon__FHujU false">
8581                 <i class="material-icons location-popup_clear-pin__s1dRc">close</i>
8582               </div>
8583               <div style="width: 100%;">
8584                 <select id="choose-location" class="form-control">
8585                   <option value="">Choose Location</option>
8586                   <option value="jakarta">Jakarta</option>
8587                   <option value="bogor">Bogor</option>
8588                   <option value="depok">Depok</option>
8589                   <option value="tangerang">Tangerang</option>
8590                   <option value="bekasi">Bekasi</option>
8591                 </select>
8592               </div>
8593             </div>
8594           </div>
8595         </div>
8596         <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="">
8597           <span class="MuiButton-label">
8598             <span class=""></span>
8599             <span id="location-lock-continue-btn" class="cartButton_login_content__2j1f7" style="font-weight: 500;" data-content="">Continue Shopping</span>
8600           </span>
8601         </button>
8602       </div>
8603     </div>
8604   </div>
8605   <div tabindex="0" data-test="sentinelEnd"></div>
8606 </div>
8607 
8608 
8608<script>
8609   const jabodetabek = [
8610     {
8611       "code": "jakarta",
8612       "city": "jakarta",
8613       "zip": []
8614     },
8615     {
8616       "code": "bogor",
8617       "city": "bogor",
8618       "zip": []
8619     },
8620     {
8621       "code": "depok",
8622       "city": "depok",
8623       "zip": []
8624     },
8625     {
8626       "code": "tangerang",
8627       "city": "tangerang",
8628       "zip": []
8629     },
8630     {
8631       "code": "bekasi",
8632       "city": "bekasi",
8633       "zip": []
8634     }
8635   ]
8636   let cityNonJabodetabek = [
8637     
8638     
8639     
8640     
8641     
8642     
8643     
8644     
8645     
8646     
8647     
8648     
8649     
8650     
8651     
8652     
8653     
8654     
8655     
8656     
8657     
8658     
8659     
8660     
8661     
8662     
8663     
8664     
8665     
8666     
8667     
8668     
8669     
8670     
8671     
8672     
8673     
8674     
8675     
8676     
8677     
8678     
8679     
8680     
8681     
8682     
8683     
8684     
8685     
8686     
8687     
8688     
8689     
8690     
8691     
8692     
8693     
8694     
8695     
8696     
8697     
8698     
8699     
8700     
8701     
8702     
8703     
8704     
8705     
8706     
8707     
8708     
8709     
8710     
8711     
8712     
8713     
8714     
8715     
8716     
8717     
8718     
8719     
8720     
8721     
8722     
8723     
8724     
8725     
8726     
8727     
8728     
8729     
8730     
8731     
8732     
8733     
8734     
8735     
8736     
8737     
8738     
8739     
8740     
8741     
8742     
8743     
8744     
8745     
8746     
8747     
8748     
8749     
8750     
8751     
8752     
8753     
8754     
8755     
8756     
8757     
8758     
8759     
8760     
8761     
8762     
8763     
8764     
8765     
8766     
8767     
8768     
8769     
8770     
8771     
8772     
8773     
8774     
8775     
8776     
8777     
8778     
8779     
8780     
8781     
8782     
8783     
8784     
8785     
8786     
8787     
8788     
8789     
8790     
8791     
8792     
8793     
8794     
8795     
8796     
8797     
8798     
8799     
8800     
8801     
8802     
8803     
8804     
8805     
8806     
8807     
8808     
8809     
8810     
8811     
8812     
8813     
8814     
8815     
8816     
8817     
8818     
8819     
8820     
8821     
8822     
8823     
8824     
8825     
8826     
8827     
8828     
8829     
8830     
8831     
8832     
8833     
8834     
8835     
8836     
8837     
8838     
8839     
8840     
8841     
8842     
8843     
8844     
8845     
8846     
8847     
8848     
8849     
8850     
8851     
8852     
8853     
8854     
8855     
8856     
8857     
8858     
8859     
8860     
8861     
8862     
8863     
8864     
8865     
8866     
8867     
8868     
8869     
8870     
8871     
8872     
8873     
8874     
8875     
8876     
8877     
8878     
8879     
8880     
8881     
8882     
8883     
8884     
8885     
8886     
8887     
8888     
8889     
8890     
8891     
8892     
8893     
8894     
8895     
8896     
8897     
8898     
8899     
8900     
8901     
8902     
8903     
8904     
8905     
8906     
8907     
8908     
8909     
8910     
8911     
8912     
8913     
8914     
8915     
8916     
8917     
8918     
8919     
8920     
8921     
8922     
8923     
8924     
8925     
8926     
8927     
8928     
8929     
8930     
8931     
8932     
8933     
8934     
8935     
8936     
8937     
8938     
8939     
8940     
8941     
8942     
8943     
8944     
8945     
8946     
8947     
8948     
8949     
8950     
8951     
8952     
8953     
8954     
8955     
8956     
8957     
8958     
8959     
8960     
8961     
8962     
8963     
8964     
8965     
8966     
8967     
8968     
8969     
8970     
8971     
8972     
8973     
8974     
8975     
8976     
8977     
8978     
8979     
8980     
8981     
8982     
8983     
8984     
8985     
8986     
8987     
8988     
8989     
8990     
8991     
8992     
8993     
8994     
8995     
8996     
8997     
8998     
8999     
9000     
9001     
9002     
9003     
9004     
9005     
9006     
9007     
9008     
9009     
9010     
9011     
9012     
9013     
9014     
9015     
9016     
9017     
9018     
9019     
9020     
9021     
9022     
9023     
9024     
9025     
9026     
9027     
9028     
9029     
9030     
9031     
9032     
9033     
9034     
9035     
9036     
9037     
9038     
9039     
9040     
9041     
9042     
9043     
9044     
9045     
9046     
9047     
9048     
9049     
9050     
9051     
9052     
9053     
9054     
9055     
9056     
9057     
9058     
9059     
9060     
9061     
9062     
9063     
9064     
9065     
9066     
9067     
9068     
9069     
9070     
9071     
9072     
9073     
9074     
9075     
9076     
9077     
9078     
9079     
9080     
9081     
9082     
9083     
9084     
9085     
9086     
9087     
9088     
9089     
9090     
9091     
9092     
9093     
9094     
9095     
9096     
9097     
9098     
9099     
9100     
9101     
9102     
9103     
9104     
9105     
9106     
9107     
9108     
9109     
9110     
9111     
9112     
9113     
9114     
9115     
9116     
9117     
9118     
9119     
9120     
9121     
9122     
9123     
9124     
9125     
9126     
9127     
9128     
9129     
9130     
9131     
9132     
9133     
9134     
9135     
9136     
9137     
9138     
9139     
9140     
9141     
9142     
9143     
9144     
9145     
9146     
9147     
9148     
9149     
9150     
9151     
9152     
9153     
9154     
9155     
9156     
9157     
9158     
9159     
9160     
9161     
9162     
9163     
9164     
9165     
9166     
9167     
9168     
9169     
9170     
9171     
9172     
9173     
9174     
9175     
9176     
9177     
9178     
9179     
9180     
9181     
9182     
9183     
9184     
9185     
9186     
9187     
9188     
9189     
9190     
9191     
9192     
9193     
9194     
9195     
9196     
9197     
9198     
9199     
9200     
9201     
9202     
9203     
9204     
9205     
9206     
9207     
9208     
9209     
9210     
9211     
9212     
9213     
9214     
9215     
9216     
9217     
9218     
9219     
9220     
9221     
9222     
9223     
9224     
9225     
9226     
9227     
9228     
9229     
9230     
9231     
9232     
9233     
9234     
9235     
9236     
9237     
9238     
9239     
9240     
9241     
9242     
9243     
9244     
9245     
9246     
9247     
9248     
9249     
9250     
9251     
9252     
9253     
9254     
9255     
9256     
9257     
9258     
9259     
9260     
9261     
9262     
9263     
9264     
9265     
9266     
9267     
9268     
9269     
9270     
9271     
9272     
9273     
9274     
9275     
9276     
9277     
9278     
9279     
9280     
9281     
9282     
9283     
9284     
9285     
9286     
9287     
9288     
9289     
9290     
9291     
9292     
9293     
9294     
9295     
9296     
9297     
9298     
9299     
9300     
9301     
9302     
9303     
9304     
9305     
9306     
9307     
9308     
9309     
9310     
9311     
9312     
9313     
9314     
9315     
9316     
9317     
9318     
9319     
9320     
9321     
9322     
9323     
9324     
9325     
9326     
9327     
9328     
9329     
9330     
9331     
9332     
9333     
9334     
9335     
9336     
9337     
9338     
9339     
9340     
9341     
9342     
9343     
9344     
9345     
9346     
9347     
9348     
9349     
9350     
9351     
9352     
9353     
9354     
9355     
9356     
9357     
9358     
9359     
9360     
9361     
9362     
9363     
9364     
9365     
9366     
9367     
9368     
9369     
9370     
9371     
9372     
9373     
9374     
9375     
9376     
9377     
9378     
9379     
9380     
9381     
9382     
9383     
9384     
9385     
9386     
9387     
9388     
9389     
9390     
9391     
9392     
9393     
9394     
9395     
9396     
9397     
9398     
9399     
9400     
9401     
9402     
9403     
9404     
9405     
9406     
9407     
9408     
9409     
9410     
9411     
9412     
9413     
9414     
9415     
9416     
9417     
9418     
9419     
9420     
9421     
9422     
9423     
9424     
9425     
9426     
9427     
9428     
9429     
9430     
9431     
9432     
9433     
9434     
9435     
9436     
9437     
9438     
9439     
9440     
9441     
9442     
9443     
9444     
9445     
9446     
9447     
9448     
9449     
9450     
9451     
9452     
9453     
9454     
9455     
9456     
9457     
9458     
9459     
9460     
9461     
9462     
9463     
9464     
9465     
9466     
9467     
9468     
9469     
9470     
9471     
9472     
9473     
9474     
9475     
9476     
9477     
9478     
9479     
9480     
9481     
9482     
9483     
9484     
9485     
9486     
9487     
9488     
9489     
9490     
9491     
9492     
9493     
9494     
9495     
9496     
9497     
9498     
9499     
9500     
9501     
9502     
9503     
9504     
9505     
9506     
9507     
9508     
9509     
9510     
9511     
9512     
9513     
9514     
9515     
9516     
9517     
9518     
9519     
9520     
9521     
9522     
9523     
9524     
9525     
9526     
9527     
9528     
9529     
9530     
9531     
9532     
9533     
9534     
9535     
9536     
9537     
9538     
9539     
9540     
9541     
9542     
9543     
9544     
9545     
9546     
9547     
9548     
9549     
9550     
9551     
9552     
9553     
9554     
9555     
9556     
9557     
9558     
9559     
9560     
9561     
9562     
9563     
9564     
9565     
9566     
9567     
9568     
9569     
9570     
9571     
9572     
9573     
9574     
9575     
9576     
9577     
9578     
9579     
9580     
9581     
9582     
9583     
9584     
9585     
9586     
9587     
9588     
9589     
9590     
9591     
9592     
9593     
9594     
9595     
9596     
9597     
9598     
9599     
9600     
9601     
9602     
9603     
9604     
9605     
9606     
9607     
9608     
9609     
9610     
9611     
9612     
9613     
9614     
9615     
9616     
9617     
9618     
9619     
9620     
9621     
9622     
9623     
9624     
9625     
9626     
9627     
9628     
9629     
9630     
9631     
9632     
9633     
9634     
9635     
9636     
9637     
9638     
9639     
9640     
9641     
9642     
9643     
9644     
9645     
9646     
9647     
9648     
9649     
9650     
9651     
9652     
9653     
9654     
9655     
9656     
9657     
9658     
9659     
9660     
9661     
9662     
9663     
9664     
9665     
9666     
9667     
9668     
9669     
9670     
9671     
9672     
9673     
9674     
9675     
9676     
9677     
9678     
9679     
9680     
9681     
9682     
9683     
9684     
9685     
9686     
9687     
9688     
9689     
9690     
9691     
9692     
9693     
9694     
9695     
9696     
9697     
9698     
9699     
9700     
9701     
9702     
9703     
9704     
9705     
9706     
9707     
9708     
9709     
9710     
9711     
9712     
9713     
9714     
9715     
9716     
9717     
9718     
9719     
9720     
9721     
9722     
9723     
9724     
9725     
9726     
9727     
9728     
9729     
9730     
9731     
9732     
9733     
9734     
9735     
9736     
9737     
9738     
9739     
9740     
9741     
9742     
9743     
9744     
9745     
9746     
9747     
9748     
9749     
9750     
9751     
9752     
9753     
9754     
9755     
9756     
9757     
9758     
9759     
9760     
9761     
9762     
9763     
9764     
9765     
9766     
9767     
9768     
9769     
9770     
9771     
9772     
9773     
9774     
9775     
9776     
9777     
9778     
9779     
9780     
9781     
9782     
9783     
9784     
9785     
9786     
9787     
9788     
9789     
9790     
9791     
9792     
9793     
9794     
9795     
9796     
9797     
9798     
9799     
9800     
9801     
9802     
9803     
9804     
9805     
9806     
9807     
9808     
9809     
9810     "pengiriman_aceh",
9811     
9812     
9813     
9814     
9815     
9816     "pengiriman_ambon",
9817     
9818     
9819     
9820     
9821     
9822     "pengiriman_atambua",
9823     
9824     
9825     
9826     
9827     
9828     "pengiriman_badung",
9829     
9830     
9831     
9832     
9833     
9834     "pengiriman_bali",
9835     
9836     
9837     
9838     
9839     
9840     "pengiriman_balikpapan",
9841     
9842     
9843     
9844     
9845     
9846     "pengiriman_bandar lampung",
9847     
9848     
9849     
9850     
9851     
9852     "pengiriman_bandung",
9853     
9854     
9855     
9856     
9857     
9858     "pengiriman_bandung barat",
9859     
9860     
9861     
9862     
9863     
9864     "pengiriman_banjarmasin",
9865     
9866     
9867     
9868     
9869     
9870     "pengiriman_banyumas",
9871     
9872     
9873     
9874     
9875     
9876     "pengiriman_banyuwangi",
9877     
9878     
9879     
9880     
9881     
9882     "pengiriman_batam",
9883     
9884     
9885     
9886     
9887     
9888     
9889     
9890     
9891     
9892     "pengiriman_biak",
9893     
9894     
9895     
9896     
9897     
9898     "pengiriman_binjai",
9899     
9900     
9901     
9902     
9903     
9904     "pengiriman_blitar",
9905     
9906     
9907     
9908     
9909     
9910     "pengiriman_blora",
9911     
9912     
9913     
9914     
9915     
9916     
9917     
9918     
9919     
9920     "pengiriman_bojonegoro",
9921     
9922     
9923     
9924     
9925     
9926     "pengiriman_boyolali",
9927     
9928     
9929     
9930     
9931     
9932     "pengiriman_bukittinggi",
9933     
9934     
9935     
9936     
9937     
9938     "pengiriman_buleleng",
9939     
9940     
9941     
9942     
9943     
9944     "pengiriman_ciamis",
9945     
9946     
9947     
9948     
9949     
9950     "pengiriman_cianjur",
9951     
9952     
9953     
9954     
9955     
9956     "pengiriman_cibinong",
9957     
9958     
9959     
9960     
9961     
9962     "pengiriman_cikarang",
9963     
9964     
9965     
9966     
9967     
9968     "pengiriman_cikupa",
9969     
9970     
9971     
9972     
9973     
9974     "pengiriman_cilacap",
9975     
9976     
9977     
9978     
9979     
9980     "pengiriman_cileunyi",
9981     
9982     
9983     
9984     
9985     
9986     "pengiriman_cimahi",
9987     
9988     
9989     
9990     
9991     
9992     "pengiriman_cirebon",
9993     
9994     
9995     
9996     
9997     
9998     "pengiriman_ciwidey",
9999     
10000     
10001     
10002     
10003     
10004     "pengiriman_deli serdang",
10005     
10006     
10007     
10008     
10009     
10010     "pengiriman_demak",
10011     
10012     
10013     
10014     
10015     
10016     "pengiriman_denpasar",
10017     
10018     
10019     
10020     
10021     
10022     
10023     
10024     
10025     
10026     "pengiriman_garut",
10027     
10028     
10029     
10030     
10031     
10032     "pengiriman_gianyar",
10033     
10034     
10035     
10036     
10037     
10038     "pengiriman_gresik",
10039     
10040     
10041     
10042     
10043     
10044     "pengiriman_gunung kidul",
10045     
10046     
10047     
10048     
10049     
10050     
10051     
10052     
10053     
10054     "pengiriman_jambi",
10055     
10056     
10057     
10058     
10059     
10060     "pengiriman_jayapura",
10061     
10062     
10063     
10064     
10065     
10066     "pengiriman_jember",
10067     
10068     
10069     
10070     
10071     
10072     "pengiriman_jepara",
10073     
10074     
10075     
10076     
10077     
10078     "pengiriman_jombang",
10079     
10080     
10081     
10082     
10083     
10084     "pengiriman_karanganyar",
10085     
10086     
10087     
10088     
10089     
10090     "pengiriman_karawang",
10091     
10092     
10093     
10094     
10095     
10096     "pengiriman_karo",
10097     
10098     
10099     
10100     
10101     
10102     "pengiriman_kebumen",
10103     
10104     
10105     
10106     
10107     
10108     "pengiriman_kediri",
10109     
10110     
10111     
10112     
10113     
10114     "pengiriman_keerom",
10115     
10116     
10117     
10118     
10119     
10120     "pengiriman_kendal",
10121     
10122     
10123     
10124     
10125     
10126     "pengiriman_klaten",
10127     
10128     
10129     
10130     
10131     
10132     
10133     
10134     
10135     
10136     "pengiriman_kudus",
10137     
10138     
10139     
10140     
10141     
10142     "pengiriman_kupang",
10143     
10144     
10145     
10146     
10147     
10148     "pengiriman_lainnya",
10149     
10150     
10151     
10152     
10153     
10154     "pengiriman_lamongan",
10155     
10156     
10157     
10158     
10159     
10160     "pengiriman_lampung",
10161     
10162     
10163     
10164     
10165     
10166     "pengiriman_lampung barat",
10167     
10168     
10169     
10170     
10171     
10172     "pengiriman_lembang",
10173     
10174     
10175     
10176     
10177     
10178     "pengiriman_lombok",
10179     
10180     
10181     
10182     
10183     
10184     "pengiriman_lumajang",
10185     
10186     
10187     
10188     
10189     
10190     "pengiriman_madiun",
10191     
10192     
10193     
10194     
10195     
10196     "pengiriman_magelang",
10197     
10198     
10199     
10200     
10201     
10202     "pengiriman_majalengka",
10203     
10204     
10205     
10206     
10207     
10208     "pengiriman_makassar",
10209     
10210     
10211     
10212     
10213     
10214     "pengiriman_malang",
10215     
10216     
10217     
10218     
10219     
10220     "pengiriman_manado",
10221     
10222     
10223     
10224     
10225     
10226     "pengiriman_medan",
10227     
10228     
10229     
10230     
10231     
10232     "pengiriman_mengwi",
10233     
10234     
10235     
10236     
10237     
10238     "pengiriman_mojokerto",
10239     
10240     
10241     
10242     
10243     
10244     "pengiriman_nganjuk",
10245     
10246     
10247     
10248     
10249     
10250     "pengiriman_ngawi",
10251     
10252     
10253     
10254     
10255     
10256     "pengiriman_padang",
10257     
10258     
10259     
10260     
10261     
10262     "pengiriman_palembang",
10263     
10264     
10265     
10266     
10267     
10268     "pengiriman_pasuruan",
10269     
10270     
10271     
10272     
10273     
10274     "pengiriman_pati",
10275     
10276     
10277     
10278     
10279     
10280     "pengiriman_pekalongan",
10281     
10282     
10283     
10284     
10285     
10286     "pengiriman_pekanbaru",
10287     
10288     
10289     
10290     
10291     
10292     "pengiriman_pemalang",
10293     
10294     
10295     
10296     
10297     
10298     "pengiriman_ponorogo",
10299     
10300     
10301     
10302     
10303     
10304     "pengiriman_pontianak",
10305     
10306     
10307     
10308     
10309     
10310     "pengiriman_probolinggo",
10311     
10312     
10313     
10314     
10315     
10316     "pengiriman_purbalingga",
10317     
10318     
10319     
10320     
10321     
10322     "pengiriman_purwakarta",
10323     
10324     
10325     
10326     
10327     
10328     "pengiriman_purwokerto",
10329     
10330     
10331     
10332     
10333     
10334     "pengiriman_rembang",
10335     
10336     
10337     
10338     
10339     
10340     "pengiriman_riau",
10341     
10342     
10343     
10344     
10345     
10346     "pengiriman_salatiga",
10347     
10348     
10349     
10350     
10351     
10352     "pengiriman_samarinda",
10353     
10354     
10355     
10356     
10357     
10358     "pengiriman_semarang",
10359     
10360     
10361     
10362     
10363     
10364     "pengiriman_sentani",
10365     
10366     
10367     
10368     
10369     
10370     "pengiriman_serang",
10371     
10372     
10373     
10374     
10375     
10376     "pengiriman_sidoarjo",
10377     
10378     
10379     
10380     
10381     
10382     "pengiriman_singkawang",
10383     
10384     
10385     
10386     
10387     
10388     "pengiriman_sragen",
10389     
10390     
10391     
10392     
10393     
10394     "pengiriman_subang",
10395     
10396     
10397     
10398     
10399     
10400     "pengiriman_sukabumi",
10401     
10402     
10403     
10404     
10405     
10406     "pengiriman_sumbawa",
10407     
10408     
10409     
10410     
10411     
10412     "pengiriman_surabaya",
10413     
10414     
10415     
10416     
10417     
10418     "pengiriman_surakarta solo",
10419     
10420     
10421     
10422     
10423     
10424     
10425     
10426     
10427     
10428     "pengiriman_tasikmalaya",
10429     
10430     
10431     
10432     
10433     
10434     "pengiriman_tegal",
10435     
10436     
10437     
10438     
10439     
10440     "pengiriman_timika",
10441     
10442     
10443     
10444     
10445     
10446     "pengiriman_wamena",
10447     
10448     
10449     
10450     
10451     
10452     "pengiriman_wiyung",
10453     
10454     
10455     
10456     
10457     
10458     "pengiriman_wonokromo",
10459     
10460     
10461     
10462     
10463     
10464     "pengiriman_yogyakarta",
10465     
10466     
10467     
10468     
10469     
10470     
10471     
10472     
10473     
10474     
10475     
10476     
10477     
10478     
10479     
10480     
10481     
10482     
10483     
10484     
10485     
10486     
10487     
10488     
10489     
10490     
10491     
10492     
10493     
10494     
10495     
10496     
10497     
10498     
10499     
10500     
10501     
10502     
10503     
10504     
10505     
10506     
10507     
10508     
10509     
10510     
10511     
10512     
10513     
10514     
10515     
10516     
10517     
10518     
10519     
10520     
10521     
10522     
10523     
10524     
10525     
10526     
10527     
10528     
10529     
10530     
10531     
10532     
10533     
10534     
10535     
10536     
10537     
10538     
10539     
10540     
10541     
10542     
10543     
10544     
10545     
10546     
10547     
10548     
10549     
10550     
10551     
10552     
10553     
10554     
10555     
10556     
10557     
10558     
10559     
10560     
10561     
10562     
10563     
10564     
10565     
10566     
10567     
10568     
10569     
10570     
10571     
10572     
10573     
10574     
10575     
10576     
10577     
10578     
10579     
10580     
10581     
10582     
10583     
10584     
10585     
10586     
10587     
10588     
10589     
10590     
10591     
10592     
10593     
10594     
10595     
10596     
10597     
10598     
10599     
10600     
10601     
10602     
10603     
10604     
10605     
10606     
10607     
10608     
10609     
10610     
10611     
10612     
10613     
10614     
10615     
10616     
10617     
10618     
10619     
10620     
10621     
10622     
10623     
10624     
10625     
10626     
10627     
10628     
10629     
10630     
10631     
10632     
10633     
10634     
10635     
10636     
10637     
10638     
10639     
10640     
10641     
10642     
10643     
10644     
10645     
10646     
10647     
10648     
10649     
10650     
10651     
10652     
10653     
10654     
10655     
10656     
10657     
10658     
10659     
10660     
10661     
10662     
10663     
10664     
10665     
10666     
10667     
10668     
10669     
10670     
10671     
10672     
10673     
10674     
10675     
10676     
10677     
10678     
10679     
10680     
10681     
10682     
10683     
10684     
10685     
10686     
10687     
10688     
10689     
10690     
10691     
10692     
10693     
10694     
10695     
10696     
10697     
10698     
10699     
10700     
10701     
10702     
10703     
10704     
10705     
10706     
10707     
10708     
10709     
10710     
10711     
10712     
10713     
10714     
10715     
10716     
10717     
10718     
10719     
10720     
10721     
10722     
10723     
10724     
10725     
10726     
10727     
10728     
10729     
10730     
10731     
10732     
10733     
10734     
10735     
10736     
10737     
10738     
10739     
10740     
10741     
10742     
10743     
10744     
10745     
10746     
10747     
10748     
10749     
10750     
10751     
10752     
10753     
10754     
10755     
10756     
10757     
10758     
10759     
10760     
10761     
10762     
10763     
10764     
10765     
10766     
10767     
10768     
10769     
10770     
10771     
10772     
10773     
10774     
10775     
10776     
10777     
10778     
10779     
10780     
10781     
10782     
10783     
10784     
10785     
10786     
10787     
10788     
10789     
10790     
10791     
10792     
10793     
10794     
10795     
10796     
10797     
10798     
10799     
10800     
10801     
10802     
10803     
10804     
10805     
10806     
10807     
10808     
10809     
10810     
10811     
10812     
10813     
10814     
10815     
10816     
10817     
10818     
10819     
10820     
10821     
10822     
10823     
10824     
10825     
10826     
10827     
10828     
10829     
10830     
10831     
10832     
10833     
10834     
10835     
10836     
10837     
10838     
10839     
10840     
10841     
10842     
10843     
10844     
10845     
10846     
10847     
10848     
10849     
10850     
10851     
10852     
10853     
10854     
10855     
10856     
10857     
10858     
10859     
10860     
10861     
10862     
10863     
10864     
10865     
10866     
10867     
10868     
10869     
10870     
10871     
10872     
10873     
10874     
10875     
10876     
10877     
10878     
10879     
10880     
10881     
10882     
10883     
10884     
10885     
10886     
10887     
10888     
10889     
10890     
10891     
10892     
10893     
10894     
10895     
10896     
10897     
10898     
10899     
10900     
10901     
10902     
10903     
10904     
10905     
10906     
10907     
10908     
10909     
10910     
10911     
10912     
10913     
10914     
10915     
10916     
10917     
10918     
10919     
10920     
10921     
10922     
10923     
10924     
10925     
10926     
10927     
10928     
10929     
10930     
10931     
10932     
10933     
10934     
10935     
10936     
10937     
10938     
10939     
10940     
10941     
10942     
10943     
10944     
10945     
10946     
10947     
10948     
10949     
10950     
10951     
10952     
10953     
10954     
10955     
10956     
10957     
10958     
10959     
10960     
10961     
10962     
10963     
10964     
10965     
10966     
10967     
10968     
10969     
10970     
10971     
10972     
10973     
10974     
10975     
10976     
10977     
10978     
10979     
10980     
10981     
10982     
10983     
10984     
10985     
10986     
10987     
10988     
10989     
10990     
10991     
10992     
10993     
10994     
10995     
10996     
10997     
10998     
10999     
11000     
11001     
11002     
11003     
11004     
11005     
11006     
11007     
11008     
11009     
11010     
11011     
11012     
11013     
11014     
11015     
11016     
11017     
11018     
11019     
11020     
11021     
11022     
11023     
11024     
11025     
11026     
11027     
11028     
11029     
11030     
11031     
11032     
11033     
11034     
11035     
11036     
11037     
11038     
11039     
11040     
11041     
11042     
11043     
11044     
11045     
11046     
11047     
11048     
11049     
11050     
11051     
11052     
11053     
11054     
11055     
11056     
11057     
11058     
11059     
11060     
11061     
11062     
11063     
11064     
11065     
11066     
11067     
11068     
11069     
11070     
11071     
11072     
11073     
11074   ]
11075   console.log(cityNonJabodetabek)
11076   let non_jabodetabek = []
11077   for(var i=0;i<cityNonJabodetabek.length;i++) {
11078     const obj = {
11079       "code": cityNonJabodetabek[i].toLowerCase().replace('pengiriman_', '').replace(' ','-'),
11080       "city": cityNonJabodetabek[i].replace('pengiriman_', '').replace(' ','-'),
11081       "zip": []
11082     }
11083     non_jabodetabek.push(obj)
11084   }
11085   let current_location = getCookie("location_delivery")
11086   $("[name=location]").change(function(){
11087     let v = $(this).val()
11088     let option = []
11089     if(v == 'Jabodetabek') {
11090       for(var i=0;i<jabodetabek.length;i++) {
11091         const jabodetabekHtml = `<option value=${jabodetabek[i].city}>${jabodetabek[i].city}</option>`
11092         option.push(jabodetabekHtml)
11093       }
11094       $("#choose-location").html(`<option value="">Choose Location</option>${option}`)
11095     } else {
11096       for(var i=0;i<non_jabodetabek.length;i++) {
11097         const nonjabodetabekHtml = `<option value=${non_jabodetabek[i].city}>${non_jabodetabek[i].city}</option>`
11098         option.push(nonjabodetabekHtml)
11099       }
11100       $("#choose-location").html(`<option value="">Choose Location</option>${option}`)
11101     }
11102   })
11103 
11104   $("#location-lock-submit").click(function(e){
11105     let select = $("#choose-location")
11106     let value = select.val().toLowerCase()
11107     console.log(value)
11108     if(select.val() == "") {
11109       return alert("Choose Your Location")
11110       e.preventDefault()
11111     }
11112     setCookie("location_delivery",value,1000000);
11113     
11114     location.reload();
11115     
11116   })
11117 
11118   $("#close-popup-delivery").click(function(){
11119     $(".MuiDialog-root").hide()
11120     if(!current_location){
11121       setCookie("location_delivery","jakarta",1000000);
11122       $("#loc_delivery_city, #loc_delivery_city_mobile").text("Jakarta")
11123     }
11124   })
11125   $("#loc_delivery, #loc_delivery_mobile").click(function(){
11126     $(".MuiDialog-root").show()
11127   })
11128 
11129   
11130   if(!current_location){
11131     
11132   } else {
11133     $("#loc_delivery_city, #loc_delivery_city_mobile").text(current_location)
11134     console.log(current_location)
11135     $("#choose-location").each(function(){
11136       if(current_location == 'jakarta' || current_location == 'depok' || current_location == 'bogor' || current_location == 'tangerang' || current_location == 'bekasi'){
11137         $("#jabodetabek").trigger("click")
11138       } else {
11139         $("#non-jabodetabek").trigger("click")
11140       }
11141       $("#choose-location").find("option[value="+current_location+"]").attr("selected", "selected")
11142     })
11143   }
11144 
11145   // 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'){
11146   //   $("#timeMalam").attr("disabled", false)
11147   // } else {
11148   //   $("#timeMalam").attr("disabled", true)
11149   // }
11150 
11151   if(current_location && current_location != 'jakarta') {
11152     $("#self-pickup").attr("disabled", true)
11153   }
11154 
11155   function setCookie(name,value,days) {
11156     var expires = "";
11157     if (days) {
11158       var date = new Date();
11159       date.setTime(date.getTime() + (days*24*60*60*1000));
11160       expires = "; expires=" + date.toUTCString();
11161     }
11162     document.cookie = name + "=" + (value || "")  + expires + "; path=/";
11163   }
11164   function getCookie(name) {
11165     var nameEQ = name + "=";
11166     var ca = document.cookie.split(';');
11167     for(var i=0;i < ca.length;i++) {
11168       var c = ca[i];
11169       while (c.charAt(0)==' ') c = c.substring(1,c.length);
11170       if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
11171     }
11172     return null;
11173   }
11174 </script>
11174
11175 <!-- One Tap -->
11176     
11176<script>
11177       console.log("Outerbloom...");
11178     </script>
11178
11179   <div id="shopify-block-ANVEzSUcxTUxZOGpwZ__9703700522657871012" class="shopify-block shopify-app-block">
11180 
11181 
11182 
11183 
11184 
11185 
11186 
11187 
11188 
11189 
11190 
11191 
11192 
11193 
11194 
11195 
11196 
11197 
11198 
11199 
11200 
11201 
11202 
11203 
11204 
11205 
11206 
11207 
11208 
11209 
11210 
11211 
11212 
11213 
11214 
11215 
11216 
11217 
11218 
11219 
11220 
11221 
11222 
11223 
11224 
11225 
11226 <link rel="stylesheet" href="https://cdn1.bitbybit.studio/bitbybit/static/bitChat_widget/widget.css" />
11227 
11227<script src="https://cdn1.bitbybit.studio/bitbybit/static/bitChat_widget/widget.js" defer></script>
11227
11228 
11228<script>
11229   const widgetConfig = {
11230     id: "clz7897za002cz7otleaz0d3d",
11231     showQuickResponse: false,
11232     quickResponsesData: [],
11233     themeColor: "#ffffff",
11234     widgetText: "",
11235     radiusType: "circle",
11236     widgetIconType: "whatsapp",
11237     position: "right",
11238     storeLogo: "",
11239     storeName: "Outerbloom",
11240     storeDescription: "",
11241     size: "small",
11242     showCard: false,
11243     widgetColorType: "solid",
11244     widgetColor1: "#008069",
11245     widgetColor2: "#008069",
11246     social: {
11247       socialOrders: ["instagram","tiktok","facebook","x","youtube","linkedin","email"],
11248       values: {
11249         instagram: {
11250           enabled: false,
11251           value: "",
11252         },
11253         facebook: {
11254           enabled: false,
11255           value: "",
11256         },
11257         email: {
11258           enabled: false,
11259           value: "",
11260         },
11261         x: {
11262           enabled: false,
11263           value: "",
11264         },
11265         tiktok: {
11266           enabled: false,
11267           value: "",
11268         },
11269         linkedin: {
11270           enabled: false,
11271           value: "",
11272         },
11273         youtube: {
11274           enabled: false,
11275           value: "",
11276         },
11277       },
11278     },
11279   };
11280 
11281   function initializeWidget() {
11282     if (typeof BBBWidget !== 'undefined') {
11283       BBBWidget.init(widgetConfig);
11284     } else {
11285       setTimeout(initializeWidget, 100);
11286     }
11287   }
11288 
11289   initializeWidget();</script>
11289
11290 
11291 
11292 </div><div id="shopify-block-ATzRpVTBPU3k1R2pnW__286197278318599166" class="shopify-block shopify-app-block">
11293 
11294 
11295 <div style="position: fixed; bottom: 0; right: 0"></div>
11296 
11297 
11297<script>
11298 console.info("bitlogin extension version: v2.5.7");
11299 
11300 const googleScript = document.createElement("script");
11301 googleScript.setAttribute("src", "https://accounts.google.com/gsi/client");
11302 document.head.append(googleScript);
11303 
11304 const bitLoginBaseUrl = "https://api.bitbybit.studio";
11305 const apiUrl = `${bitLoginBaseUrl}/bitlogin/api`;
11306 
11307 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"}};
11308 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
11308n1.oa2-cs.v1.1cb5f9085a202341f60daf5a7be16c570ccc0b4bd5908b3afd080f34e9b8935d","appleTeamId":null,"applePrivateKey":null,"usePersonalOauth":false,"position":null}];
11309 const redirectUrl = appearance.redirectLink;
11310 
11311 let locationCacheSet = false;
11312 let errorLocation = false;
11313 let oneTapSet = false;
11314 
11315 let bitloginCache = {
11316   appearance: appearance,
11317   config: config
11318 };
11319 
11320 let isInitializing = false;
11321 const queue = [];
11322 
11323 // Add CSS for the popup
11324 const popupStyles = document.createElement('style');
11325 popupStyles.textContent = `
11326   /* Styles for login popup */
11327   .bitlogin-popup-overlay {
11328     position: fixed;
11329     top: 0;
11330     left: 0;
11331     width: 100%;
11332     height: 100%;
11333     background: rgba(0, 0, 0, 0.45);
11334     backdrop-filter: blur(4px);
11335     display: flex;
11336     align-items: center;
11337     justify-content: center;
11338     opacity: 0;
11339     transition: opacity 0.3s ease-in-out;
11340     z-index: 999999;
11341   }
11342   
11343   .bitlogin-popup-overlay.visible {
11344     opacity: 1;
11345   }
11346   
11347   .bitlogin-popup {
11348     background: #FFFFFF;
11349     box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
11350     border-radius: 16px;
11351     width: 100%;
11352     max-width: 560px;
11353     display: flex;
11354     overflow: hidden;
11355     position: relative;
11356     opacity: 0;
11357     transform: translateY(20px) scale(0.98);
11358     transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
11359   }
11360   
11361   .bitlogin-popup.visible {
11362     opacity: 1;
11363     transform: translateY(0) scale(1);
11364   }
11365   
11366   .bitlogin-popup-with-image {
11367     max-width: 640px;
11368   }
11369   
11370   .bitlogin-popup-right-image {
11371     flex-direction: row-reverse;
11372   }
11373   
11374   .bitlogin-popup-image {
11375     object-fit: cover;
11376     width: 50%;
11377     height: auto;
11378   }
11379   
11380   .bitlogin-popup-content {
11381     padding: 32px;
11382     position: relative;
11383     width: 50%;
11384   }
11385   
11386   .bitlogin-popup-close {
11387     position: absolute;
11388     top: 16px;
11389     right: 16px;
11390     background: white;
11391     border: none;
11392     width: 30px;
11393     height: 30px;
11394     display: flex;
11395     align-items: center;
11396     justify-content: center;
11397     cursor: pointer;
11398     transition: background-color 0.2s;
11399     color: inherit;
11400     padding: 0;
11401   }
11402   
11403   .bitlogin-popup-close:hover {
11404     background-color: #e5e5e5;
11405   }
11406   
11407   .bitlogin-popup-buttons {
11408     display: flex;
11409     flex-direction: column;
11410     gap: 12px;
11411     margin-top: 24px;
11412   }
11413   
11414   /* Button styles within popup - override width for popup buttons */
11415   .bitlogin-popup-buttons #google-login,
11416   .bitlogin-popup-buttons #facebook-login,
11417   .bitlogin-popup-buttons #apple-login,
11418   .bitlogin-popup-buttons #whatsapp-login,
11419   .bitlogin-popup-buttons #microsoft-login,
11420   .bitlogin-popup-buttons #twitter-login,
11421   .bitlogin-popup-buttons #amazon-login,
11422   .bitlogin-popup-buttons #instagram-login,
11423   .bitlogin-popup-buttons #magic-link-login,
11424   .bitlogin-popup-buttons #mobile-app-login {
11425     width: 100% !important;
11426     font-family: inherit !important;
11427   }
11428   
11429   .bitlogin-popup-footer {
11430     margin-top: 32px;
11431     text-align: center;
11432     font-size: 14px;
11433     opacity: 0.6;
11434   }
11435   
11436   /* Modern Typography */
11437   .bitlogin-popup h2 {
11438     margin-top: 12px;
11439     font-size: 21px !important;
11440     line-height: 1.2 !important;
11441     font-weight: 700 !important;
11442     letter-spacing: -0.02em !important;
11443     margin-bottom: 16px !important;
11444   }
11445   
11446   .bitlogin-popup-header {
11447     position: relative;
11448     margin-bottom: 24px;
11449   }
11450   
11451   /* Modern gradient accent */
11452   .bitlogin-popup-content > div {
11453     font-size: 16px !important;
11454     line-height: 1.2 !important;
11455     opacity: 0.85 !important;
11456   }
11457   
11458   /* Enhanced button interactions */
11459   .bitlogin-popup-buttons button {
11460     position: relative;
11461     overflow: hidden;
11462   }
11463   
11464   @keyframes ripple {
11465     0% {
11466       transform: scale(0, 0);
11467       opacity: 0.5;
11468     }
11469     100% {
11470       transform: scale(100, 100);
11471       opacity: 0;
11472     }
11473   }
11474   
11475   /* Responsive adjustments */
11476   @media (max-width: 640px) {
11477     .bitlogin-popup {
11478       max-width: 90%;
11479       width: 90%;
11480       margin: 0 16px;
11481     }
11482     
11483     .bitlogin-popup-with-image {
11484       flex-direction: column !important;
11485     }
11486     
11487     .bitlogin-popup-image {
11488       width: 100%;
11489       height: 180px;
11490     }
11491     
11492     .bitlogin-popup-content {
11493       padding: 24px;
11494     }
11495     
11496     .bitlogin-popup h2 {
11497       font-size: 24px !important;
11498     }
11499   }
11500 `;
11501 
11502 document.head.appendChild(popupStyles);
11503 
11504 // Add fonts link for different font options
11505 const fontsLink = document.createElement('link');
11506 fontsLink.rel = 'stylesheet';
11507 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';
11508 document.head.appendChild(fontsLink);
11509 
11510 (async () => {
11511   try {
11512     let host = window.location.host;
11513     if (host === "admin.shopify.com") {
11514       host = `${window.location.pathname.split("/")[2]}.myshopify.com`;
11515     }
11516 
11517     const urlSearchParams = new URLSearchParams(window.location.search);
11518     const checkoutUrl = urlSearchParams.get("checkout_url");
11519 
11520     async function init({ inputRef, index }) {
11521       if (isInitializing) {
11522         queue.push(() => init({ inputRef, index }));
11523         return;
11524       }
11525 
11526       isInitializing = true;
11527 
11528       try {
11529         let bitLoginSectionRoot = document.querySelector(
11530           `.bitlogin-root[data-index="${index}"]`
11531         );
11532 
11533         const formRef = inputRef?.closest(
11534           "form:not([action='/account/recover'])"
11535         );
11536 
11537         if (formRef && !bitLoginSectionRoot) {
11538           await getLocation();
11539 
11540           bitLoginSectionRoot = document.createElement(`div`);
11541 
11542           bitLoginSectionRoot.setAttribute("class", "bitlogin-root");
11543           bitLoginSectionRoot.setAttribute("data-index", `${index}`);
11544 
11545           updateAppearance({
11546             formRef,
11547             rootRef: bitLoginSectionRoot,
11548             host,
11549           });
11550         }
11551       } catch (err) {
11552         console.error(`error while initiating bitlogin extensions`, err);
11553       } finally {
11554         // Release the lock
11555         isInitializing = false;
11556 
11557         // Check if there are pending items in the queue
11558         if (queue.length > 0) {
11559           // Process the next function in the queue
11560           const nextFunction = queue.shift();
11561           nextFunction();
11562         }
11563       }
11564     }
11565 
11566     function initAll() {
11567       return new Promise((resolve, reject) => {
11568         setTimeout(async () => {
11569           const inputRefs = document.querySelectorAll(
11570             'input[name="customer[email]"]'
11571           );
11572 
11573           for (let i = 0; i < inputRefs.length; i++) {
11574             const currentInputRef = inputRefs[i];
11575             const isVisible = isElementVisible(currentInputRef);
11576 
11577             if (isVisible) {
11578               await init({ inputRef: currentInputRef, index: i });
11579             }
11580           }
11581 
11582           resolve("ok");
11583         }, 100);
11584       });
11585     }
11586 
11587     const observer = new MutationObserver((mutationsList) => {
11588       for (let mutation of mutationsList) {
11589         initAll();
11590       }
11591     });
11592 
11593     observer.observe(document.body, {
11594       childList: true,
11595       subtree: true,
11596       attributes: true,
11597     });
11598 
11599     initAll();
11600 
11601     if (appearance.googleOneTap) {
11602       setupOneTap({ host, checkoutUrl });
11603     }
11604 
11605     // Initialize popup
11606     await initPopup(host);
11607   } catch (error) {
11608     console.error("Error initializing BitLogin:", error);
11609   }
11610 })();
11611 
11612 async function initPopup(host) {
11613   // Check if user is already logged in using Liquid checks properly
11614   const isLoggedIn = false || 
11615                     document.querySelector('.customer-logout-link') || 
11616                     document.querySelector('.account-link') || 
11617                     window.location.pathname.includes('/account');
11618   
11619   if (isLoggedIn) {
11620     return; // User is logged in, don't show popup
11621   }
11622 
11623   try {
11624     // Fetch the popup configuration
11625     const popupConfig = await fetch(`${apiUrl}/appearance/popup/domain/${host}`)
11626       .then(res => res.json())
11627       .catch(err => {
11628         console.error('Error fetching popup configuration:', err);
11629         return null;
11630       });
11631 
11632     if (!popupConfig || !popupConfig.enabled) {
11633       return;
11633 // Don't show popup if disabled or config not found
11634     }
11635 
11636     // Create popup after 10 seconds
11637     setTimeout(() => {
11638       // Check if user is still on the page and still not logged in
11639       if (document.visibilityState === 'visible') {
11640         // Additional check in case user logged in during the 10 second wait
11641         const currentlyLoggedIn = false || 
11642                               document.querySelector('.customer-logout-link') || 
11643                               document.querySelector('.account-link');
11644         
11645         if (!currentlyLoggedIn) {
11646           createLoginPopup(popupConfig, host);
11647         }
11648       }
11649     }, 10000);
11650   } catch (error) {
11651     console.error('Error initializing popup:', error);
11652   }
11653 }
11654 
11655 function createLoginPopup(popupConfig, host) {
11656   // Font mapping
11657   const fontFamilyMap = {
11658     system_fonts: 'system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',
11659     montserrat: 'Montserrat, sans-serif',
11660     roboto: 'Roboto, sans-serif',
11661     open_sans: 'Open Sans, sans-serif',
11662     noto_sans: 'Noto Sans, sans-serif',
11663     lato: 'Lato, sans-serif',
11664     poppins: 'Poppins, sans-serif',
11665     quicksand: 'Quicksand, sans-serif',
11666     raleway: 'Raleway, sans-serif',
11667     pt_sans: 'PT Sans, sans-serif',
11668     oswald: 'Oswald, sans-serif',
11669   };
11670 
11671   // Create overlay
11672   const overlay = document.createElement('div');
11673   overlay.className = 'bitlogin-popup-overlay';
11674   
11675   // Create popup container with appropriate styling
11676   const popup = document.createElement('div');
11677   popup.className = 'bitlogin-popup';
11678 
11679   if (popupConfig.layout === 'default') {
11680     popup.style.maxWidth = '400px';
11681   }
11682   
11683   // Function to close the popup
11684   const closePopup = () => {
11685     overlay.classList.remove('visible');
11686     popup.classList.remove('visible');
11687     setTimeout(() => {
11688       if (document.body.contains(overlay)) {
11689         document.body.removeChild(overlay);
11690       }
11691     }, 300);
11692   };
11693   
11694   // Add click handler to the overlay to close when clicking outside
11695   overlay.addEventListener('click', (event) => {
11696     // Close only if clicking directly on the overlay, not its children
11697     if (event.target === overlay) {
11698       closePopup();
11699     }
11700   });
11701   
11702   // Add escape key handler to close popup
11703   document.addEventListener('keydown', (event) => {
11704     if (event.key === 'Escape' && document.body.contains(overlay)) {
11705       closePopup();
11706     }
11707   });
11708 
11709   // Create layout with image if specified
11710   let contentWrapper;
11711   if (popupConfig.layout !== 'default' && popupConfig.popupImage) {
11712     popup.classList.add('bitlogin-popup-with-image');
11713     
11714     if (popupConfig.layout === 'right') {
11715       popup.classList.add('bitlogin-popup-right-image');
11716     }
11717     
11718     // Add image
11719     const image = document.createElement('img');
11720     image.className = 'bitlogin-popup-image';
11721     image.src = popupConfig.popupImage;
11722     image.alt = 'Login';
11723     image.loading = 'lazy';
11724     popup.appendChild(image);
11725     
11726     // Create content container
11727     contentWrapper = document.createElement('div');
11728     contentWrapper.className = 'bitlogin-popup-content';
11729 
11730     if (popupConfig.layout === 'right') {
11731       const closeButton = document.createElement('button');
11732       closeButton.className = 'bitlogin-popup-close';
11733       closeButton.innerHTML = `<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif">
11734         <path d="M13 1L1 13M1 1L13 13" stroke="${popupConfig.fontColor}" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
11735       </svg>`;
11736       closeButton.setAttribute('aria-label', 'Close');
11737       closeButton.onclick = closePopup;
11738   
11739       popup.appendChild(closeButton);
11740     }
11741   } else {
11742     contentWrapper = document.createElement('div');
11743     contentWrapper.className = 'bitlogin-popup-content';
11744     contentWrapper.style.width = '100%';
11745   }
11746 
11747   // Set background style
11748   if (popupConfig.backgroundTheme === 'gradient') {
11749     contentWrapper.style.background = `linear-gradient(135deg, ${popupConfig.backgroundPopupColor}, ${popupConfig.gradientColor})`;
11750   } else {
11751     contentWrapper.style.backgroundColor = popupConfig.backgroundPopupColor;
11752   }
11753 
11754   // Apply font family
11755   contentWrapper.style.setProperty('font-family', fontFamilyMap[popupConfig.font] || fontFamilyMap.system_fonts, 'important');
11756 
11757   if (popupConfig.layout !== 'right') {
11758     const closeButton = document.createElement('button');
11759     closeButton.className = 'bitlogin-popup-close';
11760     closeButton.innerHTML = `<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif">
11761       <path d="M13 1L1 13M1 1L13 13" stroke="${popupConfig.fontColor}" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
11762     </svg>`;
11763     closeButton.setAttribute('aria-label', 'Close');
11764     closeButton.onclick = closePopup;
11765   
11766     contentWrapper.appendChild(closeButton);
11767   }
11768 
11769   // Add heading with subtle animation effect
11770   const header = document.createElement('div');
11771   header.className = 'bitlogin-popup-header';
11772   
11773   const heading = document.createElement('h2');
11774   heading.textContent = popupConfig.headingText || 'Sign in for exclusive benef
11774its';
11775   heading.style.color = popupConfig.fontColor;
11776   header.appendChild(heading);
11777 
11778   // Add body text with improved formatting
11779   const bodyText = document.createElement('div');
11780   bodyText.innerHTML = popupConfig.bodyText || 'Join our community to access exclusive offers and a personalized shopping experience.';
11781   bodyText.style.color = popupConfig.fontColor;
11782   header.appendChild(bodyText);
11783   
11784   contentWrapper.appendChild(header);
11785 
11786   // Create buttons container with modern styling
11787   const buttonsContainer = document.createElement('div');
11788   buttonsContainer.className = 'bitlogin-popup-buttons';
11789   
11790   // Add social buttons
11791   const providerLabels = {
11792     'GOOGLE': 'Continue with Google',
11793     'FACEBOOK': 'Continue with Facebook',
11794     'APPLE': 'Continue with Apple',
11795     'WHATSAPP': 'Continue with WhatsApp',
11796     'MAGIC_LINK': 'Continue with Email',
11797   };
11798 
11799   // Add first login provider button
11800   if (popupConfig.loginProvider1 !== 'NONE') {
11801     const buttonConfig = {
11802       theme: popupConfig.colorScheme || 'match',
11803       customColor: popupConfig.textColor,
11804       format: 'contentFlex',
11805       buttonText: bitloginCache.appearance.buttonList[popupConfig.loginProvider1.toLowerCase()],
11806       hasShadow: popupConfig.hasShadow !== undefined ? popupConfig.hasShadow : true,
11807       style: popupConfig.style || 'rounded',
11808       size: popupConfig.size || 'medium',
11809       colorScheme: popupConfig.colorScheme || 'match',
11810       backgroundColor: popupConfig.backgroundColor || '#3B82F6',
11811       textColor: popupConfig.textColor || '#FFFFFF',
11812       outlineColor: popupConfig.outlineColor || '#3B82F6',
11813       host: host
11814     };
11815     
11816     const button1 = createSocialLoginButton(popupConfig.loginProvider1, buttonConfig);
11817     
11818     // Handle click event - this overrides the default click handler in createSocialLoginButton
11819     button1.onclick = () => {
11820       onClickSocialLogin({ provider: popupConfig.loginProvider1.toLowerCase(), host });
11821       closePopup();
11822     };
11823     
11824     buttonsContainer.appendChild(button1);
11825   }
11826 
11827   // Add second login provider button if enabled
11828   if (popupConfig.loginProvider2 !== 'NONE') {
11829     const buttonConfig = {
11830       theme: popupConfig.colorScheme || 'match',
11831       customColor: popupConfig.textColor,
11832       format: 'contentFlex',
11833       buttonText: bitloginCache.appearance.buttonList[popupConfig.loginProvider2.toLowerCase()],
11834       hasShadow: popupConfig.hasShadow !== undefined ? popupConfig.hasShadow : true,
11835       style: popupConfig.style || 'rounded',
11836       size: popupConfig.size || 'medium',
11837       colorScheme: popupConfig.colorScheme || 'match',
11838       backgroundColor: popupConfig.backgroundColor || '#3B82F6',
11839       textColor: popupConfig.textColor || '#FFFFFF',
11840       outlineColor: popupConfig.outlineColor || '#3B82F6',
11841       host: host
11842     };
11843     
11844     const button2 = createSocialLoginButton(popupConfig.loginProvider2, buttonConfig);
11845     
11846     // Handle click event - this overrides the default click handler in createSocialLoginButton
11847     button2.onclick = () => {
11848       onClickSocialLogin({ provider: popupConfig.loginProvider2.toLowerCase(), host });
11849       closePopup();
11850     };
11851     
11852     buttonsContainer.appendChild(button2);
11853   }
11854 
11855   contentWrapper.appendChild(buttonsContainer);
11856 
11857   // Append content to popup
11858   popup.appendChild(contentWrapper);
11859   
11860   // Append popup to overlay
11861   overlay.appendChild(popup);
11862   
11863   // Append overlay to body
11864   document.body.appendChild(overlay);
11865   
11866   // Trigger animation with slight delay for better perceived performance
11867   setTimeout(() => {
11868     overlay.classList.add('visible');
11869     setTimeout(() => {
11870       popup.classList.add('visible');
11871     }, 50);
11872   }, 10);
11873 }
11874 
11875 window.addEventListener("load", () => {
11876   window.addEventListener("message", (event) => {
11877     const receivedData = event.data;
11878 
11879     if (receivedData.type === "authorize") {
11880       post(
11881         JSON.parse(
11882           JSON.stringify({
11883             "customer[email]": receivedData.email,
11884             "customer[password]": receivedData.password,
11885             form_type: "customer_login",
11886             utf8: "✓",
11887             return_url: redirectUrl,
11888           })
11889         )
11890       );
11891     } else if (receivedData.type === "rejected") {
11892       if (receivedData.reason === "customer_account_disabled") {
11893         showAlert(
11894           "Your account needs to be activated. We've sent you an activation link - please check your email to complete this step."
11895         );
11896       } else if (receivedData.reason === "customer_entry_created_email_not_set") {
11897         showAlert(
11898           "A new account was created but requires an email address. Please update your account with a valid email address to continue."
11899         );
11900       } else if (receivedData.reason === "customer_exist_email_not_set") {
11901         showAlert(
11902           "Your existing account is missing an email address. Please contact support to update your account with a valid email address."
11903         );
11904       }
11905     }
11906 
11907     if (receivedData.type === "customer_authenticated") {
11908       // Dispatch a custom event that merchants can listen for to implement their custom logic
11909       const customerAuthEvent = new CustomEvent('bitlogin:customer_authenticated', {
11910         detail: {
11911           provider: receivedData.provider,
11912           customer: receivedData.customer,
11913           shopifyCustomerCreated: receivedData.shopifyCustomerCreated
11914         }
11915       });
11916       
11917       // Dispatch the event on the window object so merchants can listen for it
11918       window.dispatchEvent(customerAuthEvent);
11919       
11920     }
11921   });
11922 });
11923 
11924 // Reusable functions for social login buttons
11925 function createSocialLoginButton(provider, config = {}) {
11926   const {
11927     theme = 'match',
11928     customColor = null,
11929     format = 'contentFlex',
11930     buttonText = null,
11931     hasShadow = true,
11932     style = 'rounded',
11933     size = 'medium',
11934     colorScheme = 'match',
11935     backgroundColor = '#3B82F6',
11936     textColor = '#FFFFFF',
11937     outlineColor = '#3B82F6',
11938     rootRef = null,
11939     host = null
11940   } = config;
11941   
11942   // Create button element with appropriate ID and attributes
11943   const button = document.createElement('button');
11944   button.id = `${provider.toLowerCase()}-login`;
11945   button.type = 'button';
11946   
11947   // Set the inner SVG based on provider
11948   switch (provider.toUpperCase()) {
11949     case 'GOOGLE':
11950       button.innerHTML = googleLoginIcon(theme, customColor);
11951       break;
11952     case 'FACEBOOK':
11953       button.innerHTML = facebookLoginIcon(theme, customColor);
11954       break;
11955     case 'APPLE':
11956       button.innerHTML = appleLoginIcon(theme, customColor);
11957       break;
11958     case 'WHATSAPP':
11959       button.innerHTML = whatsappLoginIcon(theme, customColor);
11960       break;
11961     case 'MICROSOFT':
11962       button.innerHTML = microsoftLoginIcon(theme, customColor);
11963       break;
11964     case 'TWITTER':
11965       button.innerHTML = twitterLoginIcon(theme, customColor);
11966       break;
11967     case 'AMAZON':
11968       button.innerHTML = amazonLoginIcon(theme, customColor);
11969       break;
11970     case 'INSTAGRAM':
11971       button.innerHTML = instagramLoginIcon(theme, customColor);
11972       break;
11973     case 'MAGIC_LINK':
11974       button.innerHTML = magicLinkLoginIcon(theme, customColor);
11975       break;
11976     case 'MOBILE_APP':
11977       button.innerHTML = mobileAppLoginIcon(theme, customColor);
11978       break;
11979     case 'LINKEDIN':
11980       button.innerHTML = linkedinLoginIcon(theme, customColor);
11981       break;
11982   }
11983   
11984   // Add text if format isn't icon-only and buttonText is provided
11985   if (format !== "wrapperFlexContainerOnlyLogo" && buttonText) {
11986     button.innerHTML += `<p>${buttonText}</p>`;
11987   }
11988   
11989   // Apply styling
11990   // Shadow
11991   if (hasShadow) {
11992     const shadowProperties = `0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)`;
11993     button.style["box-shadow"] = shadowProperties;
11994   }
11995   
11996   // Border radius
11997   const radiusProperties =
11998     style === "rounded"
11999       ? "8px"
12000       : style === "square"
12001       ? "0px"
12002       : style === "fullRounded"
12003       ? format === "wrapperFlexContainerOnlyLogo"
12004         ? "50%"
12005         : "50px"
12006       : undefined;
12007   button.style["border-radius"] = radiusProperties;
12008   
12009   // Size
12010   const sizeProperties =
12011     size === "medium"
12012       ? "12px"
12013       : size === "small"
12014       ? "8px"
12015       : size === "large"
12016       ? "16px"
12017       : "8px";
12018 
12019   button.style["padding-block"] = sizeProperties;
12020 
12021   // Format styling
12022   if (format) {
12023     if (
12024       format === "contentFlexReverse" ||
12025       format === "contentFlexCenterReverse"
12026     ) {
12027       const flexDir = `row-reverse`;
12028       button.style["flex-direction"] = flexDir;
12029     }
12030     
12031     if (
12032       format === "contentFlexCenter" ||
12033       format === "contentFlexCenterReverse"
12034     ) {
12035       const justifyContent = `center`;
12036       button.style["justify-content"] = justifyContent;
12037     } else if (
12038       format === "contentFlex" ||
12039       format === "contentFlexReverse"
12040     ) {
12041       const buttonTextElement = button.querySelector("p");
12042       if (buttonTextElement) {
12043         buttonTextElement.style["flex-grow"] = 1;
12044         buttonTextElement.style["text-align"] = "center";
12045       }
12046     }
12047 
12048     if (format === "wrapperFlexContainerOnlyLogo" && rootRef) {
12049       rootRef.style["flex-direction"] = "row";
12050       rootRef.style["gap"] = "8px";
12051       rootRef.style["display"] = "flex";
12052       rootRef.style["flex-wrap"] = "wrap";
12053 
12054       const sizeMapping = {
12055         small: "52px",
12056         medium: "62px",
12057         large: "72px",
12058       };
12059       const buttonSize = sizeMapping[size] || "52px";
12060 
12061       button.style["margin"] = 0;
12062       button.style["width"] = buttonSize;
12063       button.style["height"] = buttonSize;
12064       button.style["display"] = "flex";
12065       button.style["align-items"] = "center";
12066       button.style["justify-content"] = "center";
12067 
12068       const svgElement = button.querySelector("svg");
12069       if (svgElement) {
12070         svgElement.style["flex"] = "none";
12071       }
12072     }
12073   }
12074 
12075   // Color scheme styling
12076   if (colorScheme === "black") {
12077     button.classList.add("scheme-black");
12078   } else if (colorScheme === "white") {
12079     button.classList.add("scheme-white");
12080   } else if (colorScheme === "custom") {
12081     button.style["background-color"] = backgroundColor;
12082     button.style["color"] = textColor;
12083     button.style["border-color"] = outlineColor;
12084 
12085     const darkenColor = (color, percentage) => {
12086       const value = parseInt(color.slice(1), 16);
12087       const r = Math.max(0, ((value >> 16) & 0xff) - (0xff * percentage));
12088       const g = Math.max(0, ((value >> 8) & 0xff) - (0xff * percentage));
12089       const b = Math.max(0, (value & 0xff) - (0xff * percentage));
12090       return `rgb(${Math.round(r)}, ${Math.round(g)}, ${Math.round(b)})`;
12091     };
12092 
12093     button.addEventListener("mouseover", () => {
12094       button.style["background-color"] = darkenColor(backgroundColor, 0.2);
12095     });
12096     button.addEventListener("mouseout", () => {
12097       button.style["background-color"] = backgroundColor;
12098     });
12099   } else if (colorScheme === "match") {
12100     button.classList.add("scheme-match");
12101   } else if (colorScheme === "matchOutline") {
12102     button.classList.add("scheme-match-outline");
12103   }
12104   
12105   // Add click event listener if host is provided
12106   if (host) {
12107     button.addEventListener("click", () => 
12108       onClickSocialLogin({ provider: provider.toLowerCase(), host })
12109     );
12110   }
12111   
12112   return button;
12113 }
12114 
12115 function setupSocialLoginButtons(config, rootRef, data, host) {
12116   // Clear any existing content
12117   rootRef.innerHTML = '';
12118 
12119   const sortedEnabledProviders = config
12120     .filter(c => c.enabledWeb)
12121     .sort((a, b) => a.position - b.position);
12122 
12123   sortedEnabledProviders.forEach(provider => {
12124     const key = provider.provider;
12125     const lowerKey = key.toLowerCase();
12126 
12127     const buttonText = data.format !== "wrapperFlexContainerOnlyLogo"
12128       ? (lowerKey === 'twitter'
12129           ? data.buttonList.twitter.replace('Twitter', 'X')
12130           : data.buttonList[lowerKey])
12131       : null;
12132 
12133     const button = createSocialLoginButton(key, {
12134       theme: data.colorScheme || 'match',
12135       customColor: data.textColor,
12136       format: data.format,
12137       buttonText: buttonText,
12138       hasShadow: data.hasShadow !== undefined ? data.hasShadow : true,
12139       style: data.style,
12140       size: data.size,
12141       colorScheme: data.colorScheme,
12142       backgroundColor: data.backgroundColor,
12143       textColor: data.textColor,
12144       outlineColor: data.outlineColor,
12145       rootRef: rootRef,
12146       host: host
12147     });
12148 
12149     rootRef.appendChild(button);
12150   });
12151 
12152   return rootRef;
12153 }
12154 
12155 function updateAppearance({ formRef, rootRef, host }) {
12156   if (!formRef) return;
12157 
12158   const data = bitloginCache.appearance || {
12159     style: "square",
12160     hasShadow: false,
12161     colorScheme: "match",
12162     backgroundColor: "#FFFFFF",
12163     outlineColor: "#000000",
12164     textColor: "#000000",
12165     position: "bottom",
12166     hideDivider: "false",
12167     dividerText: "OR",
12168     size: "small",
12169     format: "contentFlex",
12170     language: "en",
12171     buttonText: "Continue with",
12172     redirectLink: "/account",
12173     googleOneTap: true,
12174     googleOneTapBanner: true,
12175     customerTag: "bitLogin",
12176     redirectOneTapDesktop: null,
12177     redirectOneTapMobile: null,
12178     buttonList: {
12179       google: "Continue with Google",
12180       facebook: "Continue with Facebook",
12181       apple: "Continue with Apple",
12182       whatsapp: "Continue with WhatsApp",
12183       microsoft: "Continue with Microsoft",
12184       twitter: "Continue with X",
12185       amazon: "Continue with Amazon",
12186       instagram: "Continue with Instagram",
12187       magic_link: "Continue with Magic Link",
12188       mobile_app: "Continue with Mobile App",
12189       linkedin: "Continue with LinkedIn",
12190     },
12191   };
12192 
12193   // Use the new setupSocialLoginButtons function to create and configure all buttons
12194   setupSocialLoginButtons(bitloginCache.config, rootRef, data, host);
12195 
12196   let divider;
12197 
12198   if (!data.hideDivider) {
12199     divider = document.createElement("div");
12200     const dividerStyle = "text-align:center;margin-block:16px";
12201     divider.setAttribute("style", dividerStyle);
12202     divider.innerHTML = data.dividerText;
12203   }
12204 
12205   if (data.position === "bottom") {
12206     if (divider) {
12207       formRef.appendChild(divider);
12208     }
12209     formRef.appendChild(rootRef);
12210   } else if (data.position === "top") {
12211     if (divider) {
12212       formRef.prepend(divider);
12213     }
12214     formRef.prepend(rootRef);
12215   }
12216 }
12217 
12218 
12219 async function onClickSocialLogin({ provider, host }) {
12220   const rand = Math.random().toString();
12221 
12222   const locationQueryString = bitloginCache.location
12223     ? `&${objectToQueryString(bitloginCache.location)}`
12224     : "";
12225 
12226   const width = 800;
12227   const height = 600;
12228   const left = (window.screen.width / 2) - (width / 2);
12229   const top = (window.screen.height / 2) - (height / 2) - 50;
12230 
12231   if(provider === 'whatsapp') {
12232     window.open(
12233       `/apps/bitlogin/whatsapp${locationQueryString ? `?${locationQueryString}` : ''}`,
12234       "mywindow",
12235       `menubar=1,resizable=1,width=${width},height=${height},top=${top},left=${left}`
12236     );
12237   } else {
12238     window.open(
12239       `${apiUrl}/login/${provider}?referrerId=${rand}&shop=${host}${locationQueryString}`,
12240       "mywindow",
12241       `menubar=1,resizable=1,width=${width},height=${height},top=${top},left=${left}`
12242     );
12243   }
12244 }
12245 
12246 function objectToQueryString(obj) {
12247   return Object.keys(obj)
12248     .map((key) => {
12249       return encodeURIComponent(key) + "=" + encodeURIComponent(obj[key]);
12250     })
12251     .join("&");
12252 }
12253 
12254 async function getLocation() {
12255   if (locationCacheSet) return;
12256 
12257   try {
12258     const response = await fetch("https://ipapi.co/json/");
12259 
12260     if (!response.ok) {
12261       console.error(`error retrieving location...`, response.status);
12262       errorLocation = true;
12263     } else {
12264       const data = await response.json();
12265 
12266       const { city, region, country_name, country_code } = data;
12267 
12268       const formattedLocationData = {
12269         city,
12270         region,
12271         country_name,
12272         country_code,
12273       };
12274 
12275       bitloginCache.location = formattedLocationData;
12276       locationCacheSet = true;
12277       errorLocation = false;
12278     }
12279   } catch (err) {
12280     console.error(`error fetching location`, err);
12281     errorLocation = true;
12282   }
12283 }
12284 
12285 function post(params) {
12286   // The rest of this code assumes you are not using a library.
12287   // It can be made less verbose if you use one.
12288   const form = document.createElement("form");
12289   form.method = "post";
12290   form.action = `/account/login`;
12291   form.acceptCharset = "UTF-8";
12292   form.setAttribute("data-login-with-shop-sign-in", "true");
12293   form.setAttribute("novalidate", "novalidate");
12294 
12295   for (const key in params) {
12296     if (params.hasOwnProperty(key)) {
12297       const hiddenField = document.createElement("input");
12298       hiddenField.type = "hidden";
12299       hiddenField.name = key;
12300       hiddenField.value = params[key];
12301 
12302       form.appendChild(hiddenField);
12303     }
12304   }
12305 
12306   document.body.appendChild(form);
12307   form.submit();
12308 }
12309 
12310 async function setupOneTap({ host, checkoutUrl }) {
12311   if (oneTapSet) return;
12312 
12313   const redirectOneTapDesktop = JSON.parse(JSON.stringify(bitloginCache.appearance.redirectOneTapDesktop || '[]'));
12314   const redirectOneTapMobile = JSON.parse(JSON.stringify(bitloginCache.appearance.redirectOneTapMobile || '[]'));
12315 
12316   const isMobile = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent);
12317   const redirectList = JSON.parse(isMobile ? redirectOneTapMobile : redirectOneTapDesktop);
12318 
12319   const currentPath = window.location.pathname.toLowerCase();
12320   const currentUrl = window.location.href.toLowerCase();
12321 
12322   const shouldHideGoogleOneTap = redirectList.some(({ value }) => {
12323     switch (value) {
12324       case 'home':
12325         return currentPath === '/';
12326       case 'product':
12327         return currentPath.startsWith('/products/');
12328       case 'collections':
12329         return currentPath.startsWith('/collections');
12330       case 'cart':
12331         return currentPath === '/cart';
12332       case 'checkout':
12333         return currentPath.startsWith('/checkouts') && !currentPath.includes('thank_you');
12334       case 'thank_you':
12335         return currentPath.includes('/thank_you');
12336       case 'account':
12337         return currentPath.startsWith('/account');
12338       case 'pages':
12339         return currentPath.startsWith('/pages');
12340       case 'blogs':
12341         return currentPath === '/blogs' || currentPath === '/blogs/news';
12342       case 'blog_post':
12343         return currentPath.startsWith('/blogs/') && currentPath.split('/').length > 3;
12344       default:
12345         return false;
12346     }
12347   });
12348 
12349   if (shouldHideGoogleOneTap) return;
12350 
12351   const oneTapClientId = bitloginCache.config.find(
12352     (config) => config.provider === "GOOGLE"
12353   )?.clientId;
12354 
12355   const isLoggedIn = false;
12356 
12357   if (bitloginCache.appearance.googleOneTap && oneTapClientId && !isLoggedIn) {
12358     const googleOneTapButton = document.createElement("div");
12359     googleOneTapButton.setAttribute("id", "g_id_onload");
12360     googleOneTapButton.setAttribute("data-client_id", oneTapClientId);
12361     googleOneTapButton.setAttribute("data-context", "signin");
12362     googleOneTapButton.setAttribute(
12363       "data-callback",
12364       "handleGoogleOneTapResponse"
12365     );
12366     googleOneTapButton.setAttribute("data-itp_support", "true");
12367 
12368     const googleOneTapScript = document.createElement("script");
12369 
12370     googleOneTapScript.innerHTML += `
12371           function handleGoogleOneTapResponse(response) {
12372               if (response.credential) {
12373                   const idToken = response.credential;
12374                   fetch('${bitLoginBaseUrl}/bitlogin/api/login/google-one-tap', {
12375                       method: 'POST',
12376                       headers: { 'Content-Type': 'application/json' },
12377                       body: JSON.stringify({ idToken, shop: "${host}", ...bitloginCache.location })
12378                   }).then(response => {
12379                       response.json().then((data) => {
12380                         post(
12381                           JSON.parse(
12382                             JSON.stringify({
12383                               "customer[email]": data.email,
12384                               "customer[password]": data.password,
12385                               form_type: "customer_login",
12386                               utf8: "✓",
12387                               return_url: redirectUrl,
12388                             })
12389                           )
12390                         );
12391                       });  
12392                   }).catch(error => {
12393                       console.error('Error occurred:', error);
12394                   });
12395               } else {
12396                   console.error('No credential available');
12397               }
12398           }
12399        `;
12400 
12401     document.body.append(googleOneTapButton);
12402     document.body.append(googleOneTapScript);
12403   }
12404 
12405   oneTapSet = true;
12406 }
12407 
12408 const googleLoginIcon = (
12409   theme,
12410   customColor
12411 ) => `
12412 ${
12413   theme === "match" || theme === "matchOutline" || theme === "custom"
12414     ? `<svg
12415     xmlns='https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif'
12416     xmlns:v='https://vecta.io/nano'
12417     width='24'
12418     height='24'
12419     viewBox='0 0 186.69 190.5'
12420   >
12421     <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="${
12422       theme === "custom" ? customColor : "#4285f4"
12423     }"/><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="${
12424         theme === "custom" ? customColor : "#34a853"
12425       }"/><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="${
12426         theme === "custom" ? customColor : "#fbbc05"
12427       }"/><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="${
12428         theme === "custom" ? customColor : "#ea4335"
12429       }" clip-path="none" mask="none"/></g>
12430   </svg>`
12431     : `<svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="25" height="25" viewBox="0 0 25 25" fill="none">
12432 <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="${
12433         theme !== "black" ? "black" : "white"
12434       }"/>
12435 <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="${
12436         theme !== "black" ? "black" : "white"
12437       }"/>
12438 <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="${
12439         theme !== "black" ? "black" : "white"
12440       }"/>
12441 <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="${
12442         theme !== "black" ? "black" : "white"
12443       }"/>
12444 </svg>`
12445 }`;
12446 
12447 const appleLoginIcon = (
12448   theme,
12449   customColor
12450 ) => `<svg width="24" height="24" viewBox="0 0 19 24" fill="none" xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif">
12451 <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="${
12452   theme === "custom"
12453     ? customColor
12454     : theme === "match" || theme === "black"
12455     ? "white"
12456     : "black"
12457 }"/>
12458 </svg>`;
12459 
12460 const facebookLoginIcon = (
12461   theme,
12462   customColor
12463 ) => `
12464 ${
12465   theme === "match" || theme === "matchOutline" || theme === "custom"
12466     ? `<svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="24" height="25" viewBox="0 0 24 25" fill="none">
12467     <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="${
12468       theme === "custom" ? customColor : theme === "match" ? "white" : "#1977F3"
12469     }"/>
12470     <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="${
12471       theme === "match" ? "#1778f2" : "transparent"
12472     }"/>
12473     </svg>`
12474     : `<svg xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif" width="24" height="25" viewB
12474ox="0 0 24 25" fill="none">
12475 <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="${
12476         theme === "black" ? "white" : "black"
12477       }"/>
12478 <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="${
12479         theme === "black" ? "black" : "white"
12480       }"/>
12481 </svg>`
12482 }`;
12483 
12484 const whatsappLoginIcon = (
12485   theme,
12486   customColor
12487 ) => `<svg
12488   viewBox="0 0 24 24"
12489   fill="none"
12490   width="24"
12491   height="25"
12492   xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif"
12493 >
12494   <g id="SVGRepo_bgCarrier" stroke-width="0"></g>
12495   <g
12496     id="SVGRepo_tracerCarrier"
12497     stroke-linecap="round"
12498     stroke-linejoin="round"
12499   ></g>
12500   <g id="SVGRepo_iconCarrier">
12501     <path
12502       fill-rule="evenodd"
12503       clip-rule="evenodd"
12504       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"
12505       fill="${
12506         theme === "match" || theme === "black"
12507           ? "#ffffff"
12508           : theme === "white"
12509           ? "#000000"
12510           : theme === "matchOutline"
12511           ? "#25d366"
12512           : customColor
12513       }"
12514     ></path>
12515   </g>
12516 </svg>`;
12517 
12518 const microsoftLoginIcon = (
12519   theme,
12520   customColor
12521 ) => `<svg
12522 xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif"
12523 width="25"
12524 height="25"
12525 viewBox="0 0 48 48">
12526 <path fill="${
12527   theme === "match" || theme == "matchOutline"
12528     ? "#ff5722"
12529     : theme === "black"
12530     ? "#ffffff"
12531     : theme === "white"
12532     ? "#000000"
12533     : customColor
12534 }" d="M6 6H22V22H6z" transform="rotate(-180 14 14)"></path>
12535 <path
12536   fill="${
12537     theme === "match" || theme == "matchOutline"
12538       ? "#4caf50"
12539       : theme === "black"
12540       ? "#ffffff"
12541       : theme === "white"
12542       ? "#000000"
12543       : customColor
12544   }"
12545   d="M26 6H42V22H26z"
12546   transform="rotate(-180 34 14)"></path>
12547 <path
12548   fill="${
12549     theme === "match" || theme == "matchOutline"
12550       ? "#ffc107"
12551       : theme === "black"
12552       ? "#ffffff"
12553       : theme === "white"
12554       ? "#000000"
12555       : customColor
12556   }"
12557   d="M26 26H42V42H26z"
12558   transform="rotate(-180 34 34)"></path>
12559 <path fill="${
12560   theme === "match" || theme == "matchOutline"
12561     ? "#03a9f4"
12562     : theme === "black"
12563     ? "#ffffff"
12564     : theme === "white"
12565     ? "#000000"
12566     : customColor
12567 }" d="M6 26H22V42H6z" transform="rotate(-180 14 34)"></path>
12568 </svg>`;
12569 
12570 const twitterLoginIcon = (
12571   theme,
12572   customColor
12573 ) => `<svg
12574 xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif"
12575 width="25"
12576 height="25"
12577 viewBox="0 0 48 48">
12578 <polygon fill="${
12579   theme === "match" || theme === "black"
12580     ? "#ffffff"
12581     : theme === "matchOutline" || theme === "white"
12582     ? "#000000"
12583     : customColor
12584 }" points="41,6 9.929,42 6.215,42 37.287,6"></polygon>
12585 <polygon
12586   fill="${
12587     theme === "match" || theme === "black"
12588       ? "#000000"
12589       : theme === "matchOutline" || theme === "white"
12590       ? "#ffffff"
12591       : customColor
12592   }"
12593   fill-rule="evenodd"
12594   points="31.143,41 7.82,7 16.777,7 40.1,41"
12595   clip-rule="evenodd"></polygon>
12596 <path
12597   fill="${
12598     theme === "match" || theme === "black"
12599       ? "#ffffff"
12600       : theme === "matchOutline" || theme === "white"
12601       ? "#000000"
12602       : customColor
12603   }"
12604   d="M15.724,9l20.578,30h-4.106L11.618,9H15.724 M17.304,6H5.922l24.694,36h11.382L17.304,6L17.304,6z"></path>
12605 </svg>`;
12606 
12607 const amazonLoginIcon = (theme, customColor) => `
12608  <svg
12609       xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif"
12610       x="0px"
12611       y="0px"
12612       width="25"
12613       height="25"
12614       viewBox="0 0 50 50"
12615     >
12616       <path
12617         fill="${
12618           theme === "black"
12619             ? "#ffffff"
12620             : theme === "matchOutline"
12621             ? "#FF9900"
12622             : theme === "white" || theme === "match"
12623             ? "#000000"
12624             : customColor
12625         }"
12626         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"
12627       ></path>
12628     </svg>`;
12629 
12630 const instagramLoginIcon= (theme, customColor) => `
12631     <svg
12632       width="25"
12633       height="25"
12634       viewBox="0 0 25 24"
12635       fill="none"
12636       xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif">
12637       <path
12638         fill-rule="evenodd"
12639         clip-rule="evenodd"
12640         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.
1264064321C8.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"
12641         fill="url(#paint0_radial_378_3535)" />
12642       <path
12643         fill-rule="evenodd"
12644         clip-rule="evenodd"
12645         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"
12646         fill="url(#paint0_radial_378_3535)" />
12647       <path
12648         fill-rule="evenodd"
12649         clip-rule="evenodd"
12650         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.
1265064321C8.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"
12651         fill="url(#paint0_radial_378_3535)" />
12652       <path
12653         fill-rule="evenodd"
12654         clip-rule="evenodd"
12655         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"
12656         fill="url(#paint1_radial_378_3535)" />
12657       <defs>
12658         <radialGradient
12659           id="paint0_radial_378_3535"
12660           cx="0"
12661           cy="0"
12662           r="1"
12663           gradientUnits="userSpaceOnUse"
12664           gradientTransform="translate(17.4 22.7) rotate(-115.776) scale(27.2737 40.5665)">
12665           <stop offset="0.24392" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FF1B90' : customColor}" />
12666           <stop offset="0.436673" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#F80261' : customColor}" />
12667           <stop offset="0.688476" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#ED00C0' : customColor}" />
12668           <stop offset="0.776787" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#C500E9' : customColor}" />
12669           <stop offset="0.893155" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#7017FF' : customColor}" />
12670         </radialGradient>
12671         <radialGradient
12672           id="paint1_radial_378_3535"
12673           cx="0"
12674           cy="0"
12675           r="1"
12676           gradientUnits="userSpaceOnUse"
12677           gradientTransform="translate(7.75 19.31) rotate(-57.4396) scale(11.8174 12.2918)">
12678           <stop stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FFD600' : customColor}" />
12679           <stop offset="0.484375" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FF6930' : customColor}" />
12680           <stop offset="0.734375" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FE3B36' : customColor}" />
12681           <stop offset="1" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FE3B36' : customColor}" stop-opacity="0" />
12682         </radialGradient>
12683       </defs>
12684     </svg>`;
12685 
12686 const magicLinkLoginIcon = (theme, customColor) => `
12687   <svg
12688     xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif"
12689     width="25"
12690     height="25"
12691     fill="none"
12692     viewBox="0 0 25 25"
12693   >
12694     <path
12695       fill="${
12696         theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' || theme === 'white' ? '#000000' : customColor
12697       }"
12698       fillRule="evenodd"
12699       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"
12700       clipRule="evenodd"
12701     ></path>
12702   </svg>`;
12703 
12704 const mobileAppLoginIcon = (theme, customColor) => `
12705   <svg
12706     width="20"
12707     height="24"
12708     viewBox="0 0 12 16"
12709     fill="none"
12710     xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif"
12711   >
12712     <path
12713       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"
12714       fill=${
12715         theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' ? '#FD823E' : theme === 'white' ? '#000000' : customColor
12716       }
12717     />
12718   </svg>
12719 `;
12720 
12721 const linkedinLoginIcon = (theme, customColor) => `
12722   <svg
12723     xmlns="https://duagalery.com/images/2025/11/20/ezgif.com-gif-maker-1.gif"
12724     width="25"
12725     height="24"
12726     viewBox="0 0 25 24"
12727     fill="none"
12728   >
12729     <path
12730       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"
12731       fill=${
12732         theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' ? '#0A66C2' : theme === 'white' ? '#000000' : customColor
12733       }
12734     />
12735   </svg>
12736 `;
12737 
12738 function isElementVisible(element) {
12739   return (
12740     document.body.contains(element) &&
12741     getComputedStyle(element).display !== "none" &&
12742     getComputedStyle(element).visibility !== "hidden" &&
12743     getComputedStyle(element).opacity !== "0" &&
12744     !element.hasAttribute("hidden") &&
12745     !isAncestorHidden(element)
12746   );
12747 }
12748 
12749 function isAncestorHidden(element) {
12750   let parent = element.parentElement;
12751   while (parent) {
12752     if (
12753       getComputedStyle(parent).display === "none" ||
12754       getComputedStyle(parent).visibility === "hidden" ||
12755       getComputedStyle(parent).opacity === "0" ||
12756       parent.hasAttribute("hidden")
12757     ) {
12758       return true;
12759     }
12760     parent = parent.parentElement;
12761   }
12762   return false;
12763 }
12764 
12765 function showAlert(message) {
12766   const alertBox = document.createElement("div");
12767   alertBox.textContent = message;
12768   alertBox.style.position = "fixed";
12769   alertBox.style.top = "20px";
12770   alertBox.style.right = "-300px"; // Start off-screen
12771   alertBox.style.backgroundColor = "#000000"; // Black background
12772   alertBox.style.color = "#ffffff"; // White text
12773   alertBox.style.padding = "15px";
12774   alertBox.style.borderRadius = "8px";
12775   alertBox.style.zIndex = "1000";
12776   alertBox.style.transition =
12777     "right 0.5s ease-in-out, opacity 0.5s ease-in-out"; // Transition for sliding and fading
12778   alertBox.style.boxShadow = "0 2px 5px rgba(0, 0, 0, 0.2)"; // Optional shadow for depth
12779 
12780   document.body.appendChild(alertBox);
12781 
12782   // Slide in
12783   requestAnimationFrame(() => {
12784     alertBox.style.right = "20px"; // Move into view
12785     alertBox.style.opacity = "1"; // Ensure opacity is set to 1
12786   });
12787 
12788   // Slide out and remove the alert after a few seconds
12789   setTimeout(() => {
12790     alertBox.style.opacity = "0"; // Fade out
12791     alertBox.style.right = "-300px"; // Move out of view
12792 
12793     // Wait for the transition to finish before removing the element
12794     setTimeout(() => {
12795       document.body.removeChild(alertBox);
12796     }, 500); // Match this duration with the exit transition duration
12797   }, 3000);
12798 }
12799 </script>
12799
12800 
12801 <style>
12802     .daftarku-fixed-footer {
12803             display: flex;
12804             justify-content: space-around;
12805             position: fixed;
12806             background: linear-gradient(to bottom, #000000 0%, #ff4d7a 50%, #cbba3e 100%);
12807             box-shadow: 0 0 12px rgb(255, 2000, 0);
12808             outline: none;
12809             padding: 5px 0;
12810             box-shadow: 0 0 0 0 2px 2px #198f01;
12811             left: 0;
12812             right: 0;
12813             bottom: 0;
12814             z-index: 99;
12815             border-radius: 40px 40px 0px 0px;
12816             border-style:dashed;
12817             
12818         }
12819 
12820         .daftarku-fixed-footer a {
12821             flex-basis: calc((100% - 15px*6)/ 5);
12822             text-decoration: none;
12823             display: flex;
12824             flex-direction: column;
12825             justify-content: center;
12826             align-items: center;
12827             color: #fff;
12828             max-width: 75px;
12829             font-size: 12px;
12830             font-family: Ubuntu, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
12831         }
12832 
12833         .daftarku-fixed-footer a:hover {
12834             font-weight: bold;
12835         }
12836 
12837         .daftarku-fixed-footer .center {
12838             transform: scale(1.5) translateY(-5px);
12839             background: center no-repeat;
12840             background-size: contain;
12841             background-color: inherit;
12842             border-radius: 50%;
12843         }
12844 
12845         .daftarku-fixed-footer img {
12846             max-width: 30px;
12847             margin-bottom: 0;
12848             max-height: 30px;
12849         }
12850 </style>
12851
12852 <style>
12853p {
12854    padding: 10px 0px;
12855    color: white;
12856}
12857.footer-cta{
12858    position:fixed;
12859    bottom:0;
12860    left:0;
12861    right:0;
12862    background:#000000;
12863    border-top:3px solid #ff4d7a ;
12864    padding:12px 18px;
12865    z-index:9999
12866}
12867.cta-footer{
12868    display:flex;
12869    justify-content:space-between;
12870    align-items:center;
12871    max-width:900px;
12872    margin:0 auto;
12873    gap:10px
12874}
12875.cta-footer .btn{
12876    flex:1;
12877    padding:12px 0;
12878    font-size:15px;
12879    font-weight:700;
12880    border-radius:50px;
12881    text-decoration:none;
12882    text-align:center;
12883    color:#000000;
12884    transition:all .3s ease;
12885    margin:0 4px
12886}
12887.cta-footer .login,.cta-footer .daftar,.cta-footer .bonus{
12888    background: linear-gradient(to bottom, #ff4d7a  0%, #ff4d7a  50%, #ff4d7a  100%);
12889    animation:pulse 1.2s infinite ease-in-out;
12890    border-radius:8px;
12891    box-shadow:0 0 15px #ff4d7a ;
12892    transition:transform .3s ease , box-shadow .3s ease
12893}
12894.cta-footer .login:hover,.cta-footer .daftar:hover,.cta-footer .bonus:hover{
12895    transform:scale(1.08);
12896    box-shadow:0 0 25px #ff4d7a }
12897    
12898@keyframes pulse {
12899    0% { transform: scale(1); }
12900    50% { transform: scale(1.05); }
12901    100% { transform: scale(1); }
12902}
12903</style>
12904<footer class="footer-cta">
12905  <div class="cta-footer">
12906    <a href="https://duaperak-amp02.firehostapp.com/" class="btn login">LOGIN</a>
12907    <a href="https://duaperak-amp02.firehostapp.com/" class="btn daftar">DAFTAR</a>
12908    <a href="https://duaperak-amp02.firehostapp.com/" class="btn bonus">PROMOSI</a>
12909  </div>
12910</footer>
12911</script>
12911
12912<div class="sakura-wrap" id="fx-overlay"><span class="sakura" style="left: 8.33673%; width: 13.9353px; height: 13.9353px; animation-duration: 11.7471s;"></span><span class="sakura" style="left: 39.9151%; width: 19.9413px; height: 19.9413px; animation-duration: 9.15548s;"></span><span class="sakura" style="left: 8.1489%; width: 18.0575px; height: 18.0575px; animation-duration: 10.9147s;"></span><span class="sakura" style="left: 41.3834%; width: 11.1452px; height: 11.1452px; animation-duration: 11.8376s;"></span><span class="sakura" style="left: 45.6507%; width: 13.1771px; height: 13.1771px; animation-duration: 11.5161s;"></span><span class="sakura" style="left: 74.007%; width: 10.7108px; height: 10.7108px; animation-duration: 11.0828s;"></span><span class="sakura" style="left: 50.456%; width: 14.7333px; height: 14.7333px; animation-duration: 8.42356s;"></span><span class="sakura" style="left: 17.9919%; width: 10.1596px; height: 10.1596px; animation-duration: 11.1029s;"></span><span class="sakura" style="left: 56.9117%; width: 16.3866px; height: 16.3866px; animation-duration: 10.1356s;"></span><span class="sakura" style="left: 2.07437%; width: 18.3289px; height: 18.3289px; animation-duration: 11.9125s;"></span><span class="sakura" style="left: 31.3249%; width: 14.3474px; height: 14.3474px; animation-duration: 11.611s;"></span><span class="sakura" style="left: 65.8214%; width: 19.8396px; height: 19.8396px; animation-duration: 8.70193s;"></span><span class="sakura" style="left: 96.9679%; width: 18.3263px; height: 18.3263px; animation-duration: 9.18885s;"></span><span class="sakura" style="left: 70.7%; width: 12.9467px; height: 12.9467px; animation-duration: 9.94633s;"></span><span class="sakura" style="left: 87.5448%; width: 17.2037px; height: 17.2037px; animation-duration: 10.7154s;"></span><span class="sakura" style="left: 44.0627%; width: 16.7461px; height: 16.7461px; animation-duration: 6.24355s;"></span><span class="sakura" style="left: 83.9884%; width: 17.9184px; height: 17.9184px; animation-duration: 10.1592s;"></span><span class="sakura" style="left: 88.8778%; width: 10.4576px; height: 10.4576px; animation-duration: 8.05502s;"></span><span class="sakura" style="left: 61.4321%; width: 12.4374px; height: 12.4374px; animation-duration: 7.16604s;"></span><span class="sakura" style="left: 60.1798%; width: 16.8192px; height: 16.8192px; animation-duration: 11.3929s;"></span><span class="sakura" style="left: 69.3523%; width: 11.9424px; height: 11.9424px; animation-duration: 9.56126s;"></span><span class="sakura" style="left: 33.5176%; width: 12.4715px; height: 12.4715px; animation-duration: 6.41601s;"></span><span class="sakura" style="left: 68.5617%; width: 17.9926px; height: 17.9926px; animation-duration: 6.22752s;"></span><span class="sakura" style="left: 90.2375%; width: 12.1702px; height: 12.1702px; animation-duration: 10.3906s;"></span><span class="sakura" style="left: 45.4244%; width: 17.7472px; height: 17.7472px; animation-duration: 6.05659s;"></span><span class="sakura" style="left: 21.5935%; width: 18.233px; height: 18.233px; animation-duration: 9.74681s;"></span><span class="sakura" style="left: 47.6822%; width: 18.4046px; height: 18.4046px; animation-duration: 6.06566s;"></span><span class="sakura" style="left: 3.88357%; width: 16.6403px; height: 16.6403px; animation-duration: 10.5135s;"></span><span class="sakura" style="left: 41.7388%; width: 17.7288px; height: 17.7288px; animation-duration: 10.8393s;"></span><span class="sakura" style="left: 91.1867%; width: 15.3204px; height: 15.3204px; animation-duration: 7.96145s;"></span></div>
12913
12914<style>
12915/* === LAYER GLOBAL === */
12916.sakura-wrap{
12917  position:fixed;
12918  inset:0;
12919  pointer-events:none;
12920  overflow:hidden;
12921  z-index:9999;
12922}
12923
12924/* === PETAL SAKURA === */
12925.sakura{
12926  position:absolute;
12927  top:-10vh;
12928  width:14px;
12929  height:14px;
12930
12931  background:radial-gradient(circle at 30% 30%,
12932      #e00922,
12933      #de3554 70%,
12934      #ed0c2e);
12935
12936  border-radius:60% 40% 60% 40%;
12937  opacity:.9;
12938
12939  filter:drop-shadow(0 0 6px #f03e4a);
12940
12941  animation:sakuraFall linear forwards;
12942}
12943
12944/* ANIMASI JATUH */
12945@keyframes sakuraFall{
12946
12947  0%{
12948    transform:translateY(-10vh) translateX(0) rotate(0deg);
12949    opacity:0;
12950  }
12951
12952  10%{
12953    opacity:1;
12954  }
12955
12956  50%{
12957    transform:translateY(40vh) translateX(-20px) rotate(180deg);
12958  }
12959
12960  100%{
12961    transform:translateY(110vh) translateX(40px) rotate(360deg);
12962    opacity:.9;
12963  }
12964
12965}
12966</style>
12967 </div>
12968<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"a5b066f8175148719f6d1819493fb27d","r":1}' crossorigin="anonymous"></script>
vendor: 1 bytes, line 12968
12968
12969<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v3d52b47920f24c319d37e2661827c42b1787588026925" integrity="sha512-d9sL6GJLXn6fInD1+TVXhTcQOsmxeHfmHAvwGDIxp5TO+uo1fiWW7mHomMj4MLRlCsJDTqXzWLHJFFlPCEIj/A==" data-cf-beacon='{"version":"2024.11.0","token":"a5b066f8175148719f6d1819493fb27d","r":1}' crossorigin="anonymous"></script>
vendor: 1 bytes, line 12969
12969
12970<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":"a5b066f8175148719f6d1819493fb27d","r":1,"spa":2}' crossorigin="anonymous"></script>
12970
12971</body>
12972</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.