PageSourceSearch

https://kvtotomatoa.com/

html kvtotomatoa.com collected 2026-09-30 09:21:40 UTC 643,339 bytes, 10,891 lines download raw bytes

1
2<!doctype html>
3 <!--Brumm Brumm-->
4   <html class="no-js">
5     <head>
6     <meta charset="utf-8">
7     <meta http-equiv="X-UA-Compatible" content="IE=edge">
8     <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1">
9     <meta name="apple-itunes-app" content="app-id=1576832504">
10     <link rel="icon" type="image/x-icon" href="https://photoin.io/images/2025/09/27/FAVICON.png">
11      <!-- Title and description -->
12     <title>KVTOTO : Situs Login Pasaran Togel Online Terlengkap & Terpercaya</title>
13     <meta name="description" content="KVTOTO hadir sebagai situs login pasaran togel online terlengkap dan terpercaya dengan akses cepat, informasi pasaran terbaru, serta layanan yang mudah digunakan setiap hari.">
14     <link rel="canonical" href="https://kvtotomatoa.com/">
15     <link rel="amphtml" href="https://legend.kvtotomat.shop/"/>
16     <link rel="alternate" hreflang="id-id" href="https://legend.kvtotomat.shop/"/>
17     <link rel="alternate" href="https://legend.kvtotomat.shop/"/>
18     <link rel="alternate" hreflang="id" href="https://legend.kvtotomat.shop/"/>
19     <link rel="alternate" hreflang="en" href="https://legend.kvtotomat.shop/"/>
20     <link rel="alternate" hreflang="x-default" href="https://legend.kvtotomat.shop/"/>
21     <!-- /snippets/social-meta-tags.liquid -->
22     <meta property="og:type" content="SPORTGG">
23     <meta property="og:title" content="KVTOTO : Situs Login Pasaran Togel Online Terlengkap & Terpercaya">
24     <meta property="og:image" content="https://photoin.io/images/2026/05/16/deposit-slot-ba.png">
25     <meta property="og:image:secure_url" content="https://photoin.io/images/2026/05/16/deposit-slot-ba.png">
26     <meta property="og:image" content="https://photoin.io/images/2026/05/16/deposit-slot-ba.png">
27     <meta property="og:image:secure_url" content="https://photoin.io/images/2026/05/16/deposit-slot-ba.png">
28     <meta property="og:image" content="https://photoin.io/images/2026/05/16/deposit-slot-ba.png">
29     <meta property="og:image:secure_url" content="https://photoin.io/images/2026/05/16/deposit-slot-ba.png">
30     <meta property="og:description" content="KVTOTO hadir sebagai situs login pasaran togel online terlengkap dan terpercaya dengan akses cepat, informasi pasaran terbaru, serta layanan yang mudah digunakan setiap hari.">
31     <meta property="og:price:amount" content="5,000-,">
32     <meta property="og:price:currency" content="IDR">
33     <meta property="og:url" content="https://kvtotomatoa.com/">
34     <meta property="og:site_name" content="KVTOTO">
35     <meta name="twitter:site" content="@KVTOTO">
36     <meta name="twitter:card" content="summary">
37     <meta name="twitter:title" content="KVTOTO : Situs Login Pasaran Togel Online Terlengkap & Terpercaya">
38     <meta name="twitter:description" content="KVTOTO hadir sebagai situs login pasaran togel online terlengkap dan terpercaya dengan akses cepat, informasi pasaran terbaru, serta layanan yang mudah digunakan setiap hari.">
39     <meta name="twitter:image" content="https://photoin.io/images/2026/05/16/deposit-slot-ba.png">
40     <meta name="twitter:image:width" content="600">
41     <meta name="twitter:image:height" content="600">
42      <meta name="google-site-verification" content="BLoeWAIoWwUsFKjcGtAqY2H1Yf-1LJBJNp2lEqI61Uo" />
43     <link rel="shortcut icon" href="https://photoin.io/images/2025/09/27/FAVICON.png" type="image/png">
44     <meta name="theme-color" content="#ffffff">
45     <link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700&family=Poppins&display=swap" rel="stylesheet">
46     <link href="//outerbloom.com/cdn/shop/t/138/assets/custom-styles.css?v=94643080714485117621752652418" rel="stylesheet" type="text/css" media="all" />
47     <link rel="stylesheet" href="//outerbloom.com/cdn/shop/t/138/assets/wishlist-styles.css?v=166819525406734116961754385201">
47<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.4/jquery.min.js" defer></script>
47
48     
48<script
49       src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.13.2/jquery-ui.min.js"
50       integrity="sha512-57oZ/vW8ANMjR/KQ6Be9v/+/h6bq9/l3f0Oc7vn6qMqyhvPd1cvKBRWWpzu0QoneImqr2SkmO4MSqU+RpHom3Q=="
51       crossorigin="anonymous"
52       referrerpolicy="no-referrer"
53       defer
54     ></script>
54
55     
55<script src="https://cdnjs.cloudflare.com/ajax/libs/qrcodejs/1.0.0/qrcode.min.js" async="async"></script>
55
56     
56<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/select2.min.js" defer></script>
56<!-- Facebook Pixel Code -->
57     
57<script>
vendor: 462 bytes, lines 57-66
57
58       !function(f,b,e,v,n,t,s)
59       {if(f.fbq)return;n=f.fbq=function(){n.callMethod?
60       n.callMethod.apply(n,arguments):n.queue.push(arguments)};
61       if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
62       n.queue=[];t=b.createElement(e);t.async=!0;
63       t.src=v;s=b.getElementsByTagName(e)[0];
64       s.parentNode.insertBefore(t,s)}(window, document,'script',
65       'https://connect.facebook.net/en_US/fbevents.js');
66       fbq('init', '
66165971065669324
vendor: 42 bytes, lines 66-68
66');
67       fbq('track', 'PageView');
68     
68</script>
68
69     <noscript
70       ><img
71         height="1"
72         width="1"
73         style="display:none"
74         src="https://www.facebook.com/tr?id=165971065669324&ev=PageView&noscript=1"
75     ></noscript>
76     <!-- End Facebook Pixel Code -->
77 
78     <!-- Google G4 Script - Disabled by developer (William) to prioritize Mobile App tracking -->
79     <!--
80      Global site tag (gtag.js) - Google Analytics -->
vendor: 75 bytes, lines 80-81
80
81           <script async src="https://www.googletagmanager.com/gtag/js?id=
81G-X26HYP4083
vendor: 23 bytes, lines 81-82
81"></script>
82           
82<script>
83             
vendor: 170 bytes, lines 83-87
83window.dataLayer = window.dataLayer || [];
84             function gtag(){dataLayer.push(arguments);}
85             gtag('js', new Date());
86   
87             gtag('config', '
87G-X26HYP4083
vendor: 15 bytes, lines 87-88
87');
88           
88</script>
88
89       <!-- Global site tag (gtag.js) - Google Analytics -->
90     
91     <div class="button-login-daftar">
92                     <a class="login" href="https://legend.kvtotomat.shop/" rel="nofollow noreferrer">
93                         LOGIN
94                     </a>
95                     <a class="register" href="https://legend.kvtotomat.shop/" rel="nofollow noreferrer">
96                         DAFTAR
97                     </a>
98                 </div>
99   
100     
100<script src="//cdnjs.cloudflare.com/ajax/libs/vissense/0.9.0/vissense.js" defer></script>
100
101   
102     <!-- Bing UET -->
103     
103<script>
104       (function(w,d,t,r,u)
105       {
106           var f,n,i;
107           w[u]=w[u]||[],f=function()
108           {
109               var o={ti:"343051754", tm:"shpfy_ui", enableAutoSpaTracking: true};
110               o.q=w[u],w[u]=new UET(o),w[u].push("pageLoad")
111           },
112           n=d.createElement(t),n.src=r,n.async=1,n.onload=n.onreadystatechange=function()
113           {
114               var s=this.readyState;
115               s&&s!=="loaded"&&s!=="complete"||(f(),n.onload=n.onreadystatechange=null)
116           },
117           i=d.getElementsByTagName(t)[0],i.parentNode.insertBefore(n,i)
118       })
119       (window,document,"script","//bat.bing.com/bat.js","uetq");
120     </script>
120
121     
121<script>
122       window.uetq = window.uetq || [];
123       window.uetq.push('event', '', {"revenue_value":0,"currency":"IDR"});
124     </script>
124
125     <!-- End Bing UET -->
126   
127     <!-- Microsoft Clarity -->
128     
128<script type="text/javascript">
129       (function(c,l,a,r,i,t,y){
130           c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};
131           t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i;
132           y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y);
133       })(window, document, "clarity", "script", "h7rbxqry9k");
134     </script>
134
135     <!-- End Microsoft Clarity -->
136 
137 
138 <link href="//outerbloom.com/cdn/shop/t/138/assets/combine.min.css?v=111340648424012527321754385205" rel="stylesheet" type="text/css" media="all" />
139 
140 <link href="//outerbloom.com/cdn/shop/t/138/assets/font-awesome.css?v=132324219581463622051752652421" rel="stylesheet" type="text/css" media="all" />
141 <link rel="stylesheet" href="//code.jquery.com/ui/1.13.0/themes/base/jquery-ui.min.css">
142 
143 
143<script src="//code.jquery.com/jquery-1.12.4.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" crossorigin="anonymous"></script>
143
144 
144<script src="//outerbloom.com/cdn/shop/t/138/assets/combine.js?v=140218079523075729301752652421" type="text/javascript"></script>
144
145 
145<script src="//code.jquery.com/ui/1.13.0/jquery-ui.min.js"></script>
145
146     
146<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
146
147 <meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/15896833/digital_wallets/dialog">
148 <link rel="alternate" type="application/json+oembed" href="https://datatellers.info.oembed">
149 
149<script async="async" src="/checkouts/internal/preloads.js?locale=en-ID"></script>
149
150 
150<script id="shopify-features" type="application/json">{"accessToken":"d2e176e59f6658d5056234d6249b3ab4","betas":["rich-media-storefront-analytics"],"domain":"outerbloom.com","predictiveSearch":true,"shopId":15896833,"locale":"en"}</script>
150
151 
151<script>var Shopify = Shopify || {};
152 Shopify.shop = "outerbloom1.myshopify.com";
153 Shopify.locale = "en";
154 Shopify.currency = {"active":"IDR","rate":"1.0"};
155 Shopify.country = "ID";
156 Shopify.theme = {"name":"web-outerbloom-shopify\/main","id":153139282135,"schema_name":null,"schema_version":null,"theme_store_id":null,"role":"main"};
157 Shopify.theme.handle = "null";
158 Shopify.theme.style = {"id":null,"handle":null};
159 Shopify.cdnHost = "outerbloom.com/cdn";
160 Shopify.routes = Shopify.routes || {};
161 Shopify.routes.root = "/";</script>
161
162 
162<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
162
163 
163<script>!function(o){function n(){var o=[];function n(){o.push(Array.prototype.slice.apply(arguments))}return n.q=o,n}var t=o.Shopify=o.Shopify||{};t.loadFeatures=n(),t.autoloadFeatures=n()}(window);</script>
163
164 
164<script id="shop-js-analytics" type="application/json">{"pageType":"product"}</script>
164
165 
165<script defer="defer" async="async" src="//outerbloom.com/cdn/shopifycloud/shop-js/client.js" onload="window.Shopify.SignInWithShop?.initShopCartSync?.({&quot;fedCMEnabled&quot;:true,&quot;windoidEnabled&quot;:true});
166 "></script>
166
167 
167<script>(function() {
168   var isLoaded = false;
169   function asyncLoad() {
170     if (isLoaded) return;
171     isLoaded = true;
172     var urls = ["https:\/\/e9e1-180-254-64-204.ngrok.io\/public\/scripts\/shopifyPageScript.js?shop=outerbloom1.myshopify.com","https:\/\/ajax.googleapis.com\/ajax\/libs\/jquery\/3.5.1\/jquery.min.js?shop=outerbloom1.myshopify.com","https:\/\/14e1-180-254-64-204.ngrok.io\/public\/scripts\/shopifyPageScript.js?shop=outerbloom1.myshopify.com","https:\/\/6403-180-254-64-204.ngrok.io\/public\/scripts\/shopify-page-script.js?shop=outerbloom1.myshopify.com","https:\/\/googlesignintest.loca.lt\/public\/scripts\/shopify-page-script.js?shop=outerbloom1.myshopify.com","https:\/\/api-na1.hubapi.com\/scriptloader\/v1\/6800477.js?shop=outerbloom1.myshopify.com"];
173     for (var i = 0; i < urls.length; i++) {
174       var s = document.createElement('script');
175       s.type = 'text/javascript';
176       s.async = true;
177       s.src = urls[i];
178       var x = document.getElementsByTagName('script')[0];
179       x.parentNode.insertBefore(s, x);
180     }
181   };
182   if(window.attachEvent) {
183     window.attachEvent('onload', asyncLoad);
184   } else {
185     window.addEventListener('load', asyncLoad, false);
186   }
187 })();</script>
187
188 
188<script id="__st">var __st={"a":15896833,"offset":25200,"reqid":"78149bf2-9ab6-43c0-b2ce-821afbfe5bd0-1759566675","pageurl":"outerbloom.com\/products\/blossom-shine","u":"381e6a1da038","p":"product","rtyp":"product","rid":8144957800663};</script>
188
189 
189<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
189
190 
190<script id="captcha-bootstrap">!function(){'use strict';const t='contact',e='account',n='new_comment',o=[[t,t],['blogs',n],['comments',n],[t,'customer']],c=[[e,'customer_login'],[e,'guest_login'],[e,'recover_customer_password'],[e,'create_customer']],r=t=>t.map((([t,e])=>`form[action*='/${t}']:not([data-nocaptcha='true']) input[name='form_type'][value='${e}']`)).join(','),a=t=>()=>t?[...document.querySelectorAll(t)].map((t=>t.form)):[];function s(){const t=[...o],e=r(t);return a(e)}const i='password',u='form_key',d=['recaptcha-v3-token','g-recaptcha-response','h-captcha-response',i],f=()=>{try{return window.sessionStorage}catch{return}},m='__shopify_v',_=t=>t.elements[u];function p(t,e,n=!1){try{const o=window.sessionStorage,c=JSON.parse(o.getItem(e)),{data:r}=function(t){const{data:e,action:n}=t;return t[m]||n?{data:e,action:n}:{data:t,action:n}}(c);for(const[e,n]of Object.entries(r))t.elements[e]&&(t.elements[e].value=n);n&&o.removeItem(e)}catch(o){console.error('form repopulation failed',{error:o})}}const l='form_type',E='cptcha';function T(t){t.dataset[E]=!0}const w=window,h=w.document,L='Shopify',v='ce_forms',y='captcha';let A=!1;((t,e)=>{const n=(g='f06e6c50-85a8-45c8-87d0-21a2b65856fe',I='https://cdn.shopify.com/shopifycloud/storefront-forms-hcaptcha/ce_storefront_forms_captcha_hcaptcha.v1.5.2.iife.js',D={infoText:'Protected by hCaptcha',privacyText:'Privacy',termsText:'Terms'},(t,e,n)=>{const o=w[L][v],c=o.bindForm;if(c)return c(t,g,e,D).then(n);var r;o.q.push([[t,g,e,D],n]),r=I,A||(h.body.append(Object.assign(h.createElement('script'),{id:'captcha-provider',async:!0,src:r})),A=!0)});var g,I,D;w[L]=w[L]||{},w[L][v]=w[L][v]||{},w[L][v].q=[],w[L][y]=w[L][y]||{},w[L][y].protect=function(t,e){n(t,void 0,e),T(t)},Object.freeze(w[L][y]),function(t,e,n,w,h,L){const[v,y,A,g]=function(t,e,n){const i=e?o:[],u=t?c:[],d=[...i,...u],f=r(d),m=r(i),_=r(d.filter((([t,e])=>n.includes(e))));return[a(f),a(m),a(_),s()]}(w,h,L),I=t=>{const e=t.target;return e instanceof HTMLFormElement?e:e&&e.form},D=t=>v().includes(t);t.addEventListener('submit',(t=>{const e=I(t);if(!e)return;const n=D(e)&&!e.dataset.hcaptchaBound&&!e.dataset.recaptchaBound,o=_(e),c=g().includes(e)&&(!o||!o.value);(n||c)&&t.preventDefault(),c&&!n&&(function(t){try{if(!f())return;!function(t){const e=f();if(!e)return;const n=_(t);if(!n)return;const o=n.value;o&&e.removeItem(o)}(t);const e=Array.from(Array(32),(()=>Math.random().toString(36)[2])).join('');!function(t,e){_(t)||t.append(Object.assign(document.createElement('input'),{type:'hidden',name:u})),t.elements[u].value=e}(t,e),function(t,e){const n=f();if(!n)return;const o=[...t.querySelectorAll(`input[type='${i}']`)].map((({name:t})=>t)),c=[...d,...o],r={};for(const[a,s]of new FormData(t).entries())c.includes(a)||(r[a]=s);n.setItem(e,JSON.stringify({[m]:1,action:t.action,data:r}))}(t,e)}catch(e){console.error('failed to persist form',e)}}(e),e.submit())}));const S=(t,e)=>{t&&!t.dataset[E]&&(n(t,e.some((e=>e===t))),T(t))};for(const o of['focusin','change'])t.addEventListener(o,(t=>{const e=I(t);D(e)&&S(e,y())}));const B=e.get('form_key'),M=e.get(l),P=B&&M;t.addEventListener('DOMContentLoaded',(()=>{const t=y();if(P)for(const e of t)e.elements[l].value===M&&p(e,B);[...new Set([...A(),...v().filter((t=>'true'===t.dataset.shopifyCaptcha))])].forEach((e=>S(e,t)))}))}(h,new URLSearchParams(w.location.search),n,t,e,['guest_login'])})(!1,!0)}();</script>
190
191 
191<script integrity="sha256-52AcMU7V7pcBOXWImdc/TAGTFKeNjmkeM1Pvks/DTgc=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//outerbloom.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-81c60534.js" crossorigin="anonymous"></script>
191
192 
192<script data-source-attribution="shopify.dynamic_checkout.dynamic.init">var Shopify=Shopify||{};Shopify.PaymentButton=Shopify.PaymentButton||{isStorefrontPortableWallets:!0,init:function(){window.Shopify.PaymentButton.init=function(){};var t=document.createElement("script");t.src="https://outerbloom.com/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}};
193 </script>
193
194 
194<script data-source-attribution="shopify.dynamic_checkout.buyer_consent">
195   function portableWalletsHideBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.add("hidden"),t.setAttribute("aria-hidden","true"),n.removeEventListener("click",e))}function portableWalletsShowBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.remove("hidden"),t.removeAttribute("aria-hidden"),n.addEventListener("click",e))}window.Shopify?.PaymentButton&&(window.Shopify.PaymentButton.hideBuyerConsent=portableWalletsHideBuyerConsent,window.Shopify.PaymentButton.showBuyerConsent=portableWalletsShowBuyerConsent);
196 </script>
196
197 
197<script data-source-attribution="shopify.dynamic_checkout.cart.bootstrap">document.addEventListener("DOMContentLoaded",(function(){function t(){return document.querySelector("shopify-accelerated-checkout-cart, shopify-accelerated-checkout")}if(t())Shopify.PaymentButton.init();else{new MutationObserver((function(e,n){t()&&(Shopify.PaymentButton.init(),n.disconnect())})).observe(document.body,{childList:!0,subtree:!0})}}));
198 </script>
198
199 
200 
200<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
200
201     <!-- /snippets/oldIE-js.liquid -->
202 
203 
204 <!--[if lt IE 9]>
205 
205<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js" type="text/javascript"></script>
205
206 
206<script src="//outerbloom.com/cdn/shop/t/138/assets/respond.min.js?v=52248677837542619231752652418" type="text/javascript"></script>
206
207 <link href="//outerbloom.com/cdn/shop/t/138/assets/respond-proxy.html" id="respond-proxy" rel="respond-proxy" />
208 <link href="//outerbloom.com/search?q=142e9156869335090161dced0ac98b64" id="respond-redirect" rel="respond-redirect" />
209 
209<script src="//outerbloom.com/search?q=142e9156869335090161dced0ac98b64" type="text/javascript"></script>
209
210 <![endif]-->
211 
212 
213 
214   
215     
216   <link href="https://cdn.shopify.com/extensions/5c1bf460-65bd-4bca-82d0-995a5814b48d/bitlogin-social-login-135/assets/app.css" rel="stylesheet" type="text/css" media="all">
217 <link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
218 
218<script>(function(){if ("sendBeacon" in navigator && "performance" in window) {try {var session_token_from_headers = performance.getEntriesByType('navigation')[0].serverTiming.find(x => x.name == '_s').description;} catch {var session_token_from_headers = undefined;}var session_cookie_matches = document.cookie.match(/_shopify_s=([^;]*)/);var session_token_from_cookie = session_cookie_matches && session_cookie_matches.length === 2 ? session_cookie_matches[1] : "";var session_token = session_token_from_headers || session_token_from_cookie || "";function handle_abandonment_event(e) {var entries = performance.getEntries().filter(function(entry) {return /monorail-edge.shopifysvc.com/.test(entry.name);});if (!window.abandonment_tracked && entries.length === 0) {window.abandonment_tracked = true;var currentMs = Date.now();var navigation_start = performance.timing.navigationStart;var payload = {shop_id: 15896833,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "product"};window.navigator.sendBeacon("https://monorail-edge.shopifysvc.com/v1/produce", JSON.stringify({schema_id: "online_store_buyer_site_abandonment/1.1",payload: payload,metadata: {event_created_at_ms: currentMs,event_sent_at_ms: currentMs}}));}}window.addEventListener('pagehide', handle_abandonment_event);}}());</script>
218
219 
219<script id="web-pixels-manager-setup">(function e(e,d,r,n,o){if(void 0===o&&(o={}),!Boolean(null===(a=null===(i=window.Shopify)||void 0===i?void 0:i.analytics)||void 0===a?void 0:a.replayQueue)){var i,a;window.Shopify=window.Shopify||{};var t=window.Shopify;t.analytics=t.analytics||{};var s=t.analytics;s.replayQueue=[],s.publish=function(e,d,r){return s.replayQueue.push([e,d,r]),!0};try{self.performance.mark("wpm:start")}catch(e){}var l=function(){var e={modern:/Edge?\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Firefox\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Chrom(ium|e)\/(9{2}|\d{3,})\.\d+(\.\d+|)|(Maci|X1{2}).+ Version\/(15\.\d+|(1[6-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(9{2}|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(15[._]\d+|(1[6-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](13[3-9]|1[4-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Android.+Firefox\/(13[5-9]|1[4-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(13[3-9]|1[4-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|SamsungBrowser\/([2-9]\d|\d{3,})\.\d+/,legacy:/Edge?\/(1[6-9]|[2-9]\d|\d{3,})\.\d+(\.\d+|)|Firefox\/(5[4-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)|Chrom(ium|e)\/(5[1-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)([\d.]+$|.*Safari\/(?![\d.]+ Edge\/[\d.]+$))|(Maci|X1{2}).+ Version\/(10\.\d+|(1[1-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(3[89]|[4-9]\d|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(10[._]\d+|(1[1-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](13[3-9]|1[4-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Mobile Safari.+OPR\/([89]\d|\d{3,})\.\d+\.\d+|Android.+Firefox\/(13[5-9]|1[4-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(13[3-9]|1[4-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+(UC? ?Browser|UCWEB|U3)[ /]?(15\.([5-9]|\d{2,})|(1[6-9]|[2-9]\d|\d{3,})\.\d+)\.\d+|SamsungBrowser\/(5\.\d+|([6-9]|\d{2,})\.\d+)|Android.+MQ{2}Browser\/(14(\.(9|\d{2,})|)|(1[5-9]|[2-9]\d|\d{3,})(\.\d+|))(\.\d+|)|K[Aa][Ii]OS\/(3\.\d+|([4-9]|\d{2,})\.\d+)(\.\d+|)/},d=e.modern,r=e.legacy,n=navigator.userAgent;return n.match(d)?"modern":n.match(r)?"legacy":"unknown"}(),u="modern"===l?"modern":"legacy",c=(null!=n?n:{modern:"",legacy:""})[u],f=function(e){return[e.baseUrl,"/wpm","/b",e.hashVersion,"modern"===e.buildTarget?"m":"l",".js"].join("")}({baseUrl:d,hashVersion:r,buildTarget:u}),m=function(e){var d=e.version,r=e.bundleTarget,n=e.surface,o=e.pageUrl,i=e.monorailEndpoint;return{emit:function(e){var a=e.status,t=e.errorMsg,s=(new Date).getTime(),l=JSON.stringify({metadata:{event_sent_at_ms:s},events:[{schema_id:"web_pixels_manager_load/3.1",payload:{version:d,bundle_target:r,page_url:o,status:a,surface:n,error_msg:t},metadata:{event_created_at_ms:s}}]});if(!i)return console&&console.warn&&console.warn("[Web Pixels Manager] No Monorail endpoint provided, skipping logging."),!1;try{return self.navigator.sendBeacon.bind(self.navigator)(i,l)}catch(e){}var u=new XMLHttpRequest;try{return u.open("POST",i,!0),u.setRequestHeader("Content-Type","text/plain"),u.send(l),!0}catch(e){return console&&console.warn&&console.warn("[Web Pixels Manager] Got an unhandled error while logging to Monorail."),!1}}}}({version:r,bundleTarget:l,surface:e.surface,pageUrl:self.location.href,monorailEndpoint:e.monorailEndpoint});try{o.browserTarget=l,function(e){var d=e.src,r=e.async,n=void 0===r||r,o=e.onload,i=e.onerror,a=e.sri,t=e.scriptDataAttributes,s=void 0===t?{}:t,l=document.createElement("script"),u=document.querySelector("head"),c=document.querySelector("body");if(l.async=n,l.src=d,a&&(l.integrity=a,l.crossOrigin="anonymous"),s)for(var f in s)if(Object.prototype.hasOwnProperty.call(s,f))try{l.dataset[f]=s[f]}catch(e){}if(o&&l.addEventListener("load",o),i&&l.addEventListener("error",i),u)u.appendChild(l);else{if(!c)throw new Error("Did not find a head or body element to append the script");c.appendChild(l)}}({src:f,async:!0,onload:function(){if(!function(){var e,d;return Boolean(null===(d=null===(e=window.Shopify)||void 0===e?void 0:e.analytics)||void 0===d?void 0:d.initialized)}()){var d=window.webPixelsManager.init(e)||void 0;if(d){var r=window.Shopify.analytics;r.replayQueue.forEach((function(e){var r=e[0],n=e[1],o=e[2];d.publishCustomEvent(r,n,o)})),r.replayQueue=[],r.publish=d.publishCustomEvent,r.visitor=d.visitor,r.initialized=!0}}},onerror:function(){return m.emit({status:"failed",errorMsg:"".concat(f," has failed to load")})},sri:function(e){var d=/^sha384-[A-Za-z0-9+/=]+$/;return"string"==typeof e&&d.test(e)}(c)?c:"",scriptDataAttributes:o}),m.emit({status:"loading"})}catch(e){m.emit({status:"failed",errorMsg:(null==e?void 0:e.message)||"Unknown error"})}}})({shopId: 15896833,storefrontBaseUrl: "https://outerbloom.com",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://monorail-edge.shopifysvc.com/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: [],webPixelsConfigList: [{"id":"870383831","configuration":"{\"accountID\":\"outerbloom1\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"162380e6ffd3e5a2854f1aabf54537bb","type":"APP","apiClientId":32196493313,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"]},{"id":"824574167","configuration":"{\"shop\":\"outerbloom1.myshopify.com\", \"backend\": \"api.bitbybit.studio\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"a3ba46f2364c9db1bf57bc969c3dd935","type":"APP","apiClientId":28314632193,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"]},{"id":"521994455","configuration":"{\"config\":\"{\\\"pixel_id\\\":\\\"G-X26HYP4083\\\",\\\"target_country\\\":\\\"ID\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"search\\\",\\\"action_label\\\":[\\\"G-X26HYP4083\\\",\\\"AW-11020267329\\\/YjjSCKiog9gZEMHe74Yp\\\"]},{\\\"type\\\":\\\"begin_checkout\\\",\\\"action_label\\\":[\\\"G-X26HYP4083\\\",\\\"AW-11020267329\\\/RHfSCK6og9gZEMHe74Yp\\\"]},{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":[\\\"G-X26HYP4083\\\",\\\"AW-11020267329\\\/dMv0CKWog9gZEMHe74Yp\\\",\\\"MC-HY9J2ZJTNZ\\\"]},{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":[\\\"G-X26HYP4083\\\",\\\"AW-11020267329\\\/Y2DbCJ-og9gZEMHe74Yp\\\",\\\"MC-HY9J2ZJTNZ\\\"]},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":[\\\"G-X26HYP4083\\\",\\\"AW-11020267329\\\/xwQ2CKKog9gZEMHe74Yp\\\",\\\"MC-HY9J2ZJTNZ\\\"]},{\\\"type\\\":\\\"add_payment_info\\\",\\\"action_label\\\":[\\\"G-X26HYP4083\\\",\\\"AW-11020267329\\\/i9yRCLGog9gZEMHe74Yp\\\"]},{\\\"type\\\":\\\"add_to_cart\\\",\\\"action_label\\\":[\\\"G-X26HYP4083\\\",\\\"AW-11020267329\\\/T9poCKuog9gZEMHe74Yp\\\"]}],\\\"enable_monitoring_mode\\\":false}\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"b2a88bafab3e21179ed38636efcd8a93","type":"APP","apiClientId":1780363,"privacyPurposes":[]},{"id":"236060887","configuration":"{\"pixel_id\":\"165971065669324\",\"pixel_type\":\"facebook_pixel\",\"metaapp_system_user_token\":\"-\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"6d8c3ef0426b37b2a9b717daeb719f58","type":"APP","apiClientId":2329312,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"]},{"id":"62947543","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["MARKETING"],"name":"Meta pixel (migrated)"},{"id":"shopify-app-pixel","configuration":"{}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"0450","apiClientId":"shopify-pixel","type":"APP","privacyPurposes":["ANALYTICS","MARKETING"]},{"id":"shopify-custom-pixel","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"0450","apiClientId":"shopify-pixel","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING"]}],isMerchantRequest: false,initData: {"shop":{"name":"Outerbloom","paymentSettings":{"currencyCode":"IDR"},"myshopifyDomain":"outerbloom1.myshopify.com","countryCode":"ID","storefrontUrl":"https:\/\/outerbloom.com"},"customer":null,"cart":null,"checkout":null,"productVariants":[{"price":{"amount":835000.0,"currencyCode":"IDR"},"product":{"title":"KVTOTO : Situs Login Pasaran Togel Online Terlengkap & Terpercaya","vendor":"Outerbloom Florist","id":"8144957800663","untranslatedTitle":"KVTOTO : Situs Login Pasaran Togel Online Terlengkap & Terpercaya","url":"\/products\/blossom-shine","type":"KVTOTO hadir sebagai situs login pasaran togel online terlengkap dan terpercaya dengan akses cepat, informasi pasaran terbaru, serta layanan yang mudah digunakan setiap hari."},"id":"44083045826775","image":{"src":"\/\/outerbloom.com\/cdn\/shop\/files\/Blossom-Shine-WM.jpg?v=1695788426"},"sku":"OBVSTF1086","title":"Default Title","untranslatedTitle":"Default Title"}],"purchasingCompany":null},},"https://outerbloom.com/cdn","4f0c5c77w64a73806p128ba08bma5b58f2f",{"modern":"","legacy":""},{"shopId":"15896833","storefrontBaseUrl":"https:\/\/outerbloom.com","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[]","isMerchantRequest":"false","hashVersion":"4f0c5c77w64a73806p128ba08bma5b58f2f","publish":"custom","events":"[[\"page_viewed\",{}],[\"product_viewed\",{\"productVariant\":{\"price\":{\"amount\":835000.0,\"currencyCode\":\"IDR\"},\"product\":{\"title\":\"KVTOTO : Situs Login Pasaran Togel Online Terlengkap & Terpercaya\",\"vendor\":\"Outerbloom Florist\",\"id\":\"8144957800663\",\"untranslatedTitle\":\"KVTOTO : Situs Login Pasaran Togel Online Terlengkap & Terpercaya\",\"url\":\"\/products\/blossom-shine\",\"type\":\"KVTOTO hadir sebagai situs login pasaran togel online terlengkap dan terpercaya dengan akses cepat, informasi pasaran terbaru, serta layanan yang mudah digunakan setiap hari.\"},\"id\":\"44083045826775\",\"image\":{\"src\":\"\/\/outerbloom.com\/cdn\/shop\/files\/Blossom-Shine-WM.jpg?v=1695788426\"},\"sku\":\"OBVSTF1086\",\"title\":\"Default Title\",\"untranslatedTitle\":\"Default Title\"}}]]"});</script>
219<script>
220   window.ShopifyAnalytics = window.ShopifyAnalytics || {};
221   window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {};
222   window.ShopifyAnalytics.meta.currency = 'IDR';
223   var meta = {"product":{"id":8144957800663,"gid":"gid:\/\/shopify\/Product\/8144957800663","vendor":"Outerbloom Florist","type":"KVTOTO hadir sebagai situs login pasaran togel online terlengkap dan terpercaya dengan akses cepat, informasi pasaran terbaru, serta layanan yang mudah digunakan setiap hari.","variants":[{"id":44083045826775,"price":1000000
224   ,"name":"KVTOTO : Situs Login Pasaran Togel Online Terlengkap & Terpercaya","public_title":null,"sku":"OBVSTF1086"}],"remote":false},"page":{"pageType":"product","resourceType":"product","resourceId":8144957800663}};
225   for (var attr in meta) {
226     window.ShopifyAnalytics.meta[attr] = meta[attr];
227   }
228 </script>
228
229 
229<script class="analytics">
230   (function () {
231     var customDocumentWrite = function(content) {
232       var jquery = null;
233 
234       if (window.jQuery) {
235         jquery = window.jQuery;
236       } else if (window.Checkout && window.Checkout.$) {
237         jquery = window.Checkout.$;
238       }
239 
240       if (jquery) {
241         jquery('body').append(content);
242       }
243     };
244 
245     var hasLoggedConversion = function(token) {
246       if (token) {
247         return document.cookie.indexOf('loggedConversion=' + token) !== -1;
248       }
249       return false;
250     }
251 
252     var setCookieIfConversion = function(token) {
253       if (token) {
254         var twoMonthsFromNow = new Date(Date.now());
255         twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2);
256 
257         document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow;
258       }
259     }
260 
261     var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || [];
262     if (trekkie.integrations) {
263       return;
264     }
265     trekkie.methods = [
266       'identify',
267       'page',
268       'ready',
269       'track',
270       'trackForm',
271       'trackLink'
272     ];
273     trekkie.factory = function(method) {
274       return function() {
275         var args = Array.prototype.slice.call(arguments);
276         args.unshift(method);
277         trekkie.push(args);
278         return trekkie;
279       };
280     };
281     for (var i = 0; i < trekkie.methods.length; i++) {
282       var key = trekkie.methods[i];
283       trekkie[key] = trekkie.factory(key);
284     }
285     trekkie.load = function(config) {
286       trekkie.config = config || {};
287       trekkie.config.initialDocumentCookie = document.cookie;
288       var first = document.getElementsByTagName('script')[0];
289       var script = document.createElement('script');
290       script.type = 'text/javascript';
291       script.onerror = function(e) {
292         var scriptFallback = document.createElement('script');
293         scriptFallback.type = 'text/javascript';
294         scriptFallback.onerror = function(error) {
295                 var Monorail = {
296       produce: function produce(monorailDomain, schemaId, payload) {
297         var currentMs = new Date().getTime();
298         var event = {
299           schema_id: schemaId,
300           payload: payload,
301           metadata: {
302             event_created_at_ms: currentMs,
303             event_sent_at_ms: currentMs
304           }
305         };
306         return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event));
307       },
308       sendRequest: function sendRequest(endpointUrl, payload) {
309         // Try the sendBeacon API
310         if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) {
311           var blobData = new window.Blob([payload], {
312             type: 'text/plain'
313           });
314 
315           if (window.navigator.sendBeacon(endpointUrl, blobData)) {
316             return true;
317           } // sendBeacon was not successful
318 
319         } // XHR beacon
320 
321         var xhr = new XMLHttpRequest();
322 
323         try {
324           xhr.open('POST', endpointUrl);
325           xhr.setRequestHeader('Content-Type', 'text/plain');
326           xhr.send(payload);
327         } catch (e) {
328           console.log(e);
329         }
330 
331         return false;
332       },
333       isIos12: function isIos12() {
334         return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1;
335       }
336     };
337     Monorail.produce('monorail-edge.shopifysvc.com',
338       'trekkie_storefront_load_errors/1.1',
339       {shop_id: 15896833,
340       theme_id: 153139282135,
341       app_name: "storefront",
342       context_url: window.location.href,
343       source_url: "//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js"});
344 
345         };
346         scriptFallback.async = true;
347         scriptFallback.src = '//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js';
348         first.parentNode.insertBefore(scriptFallback, first);
349       };
350       script.async = true;
351       script.src = '//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js';
352       first.parentNode.insertBefore(script, first);
353     };
354     trekkie.load(
355       {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":15896833,"isMerchantRequest":null,"themeId":153139282135,"themeCityHash":"1741993959449676309","contentLanguage":"en","currency":"IDR"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain"},"Session Attribution":{},"S2S":{"facebookCapiEnabled":true,"source":"trekkie-storefront-renderer","apiClientId":580111}}
356     );
357 
358     var loaded = false;
359     trekkie.ready(function() {
360       if (loaded) return;
361       loaded = true;
362 
363       window.ShopifyAnalytics.lib = window.trekkie;
364 
365       var originalDocumentWrite = document.write;
366       document.write = customDocumentWrite;
367       try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {};
368       document.write = originalDocumentWrite;
369 
370       window.ShopifyAnalytics.lib.page(null,{"pageType":"product","resourceType":"product","resourceId":8144957800663,"shopifyEmitted":true});
371 
372       var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/)
373       var token = match? match[1]: undefined;
374       if (!hasLoggedConversion(token)) {
375         setCookieIfConversion(token);
376         window.ShopifyAnalytics.lib.track("Viewed Product",{"currency":"IDR","variantId":44083045826775,"productId":8144957800663,"productGid":"gid:\/\/shopify\/Product\/8144957800663","name":"KVTOTO : Situs Login Pasaran Togel Online Terlengkap & Terpercaya","price":"835000.00","sku":"OBVSTF1086","brand":"Outerbloom Florist","variant":null,"category":"KVTOTO hadir sebagai situs login pasaran togel online terlengkap dan terpercaya dengan akses cepat, informasi pasaran terbaru, serta layanan yang mudah digunakan setiap hari.","nonInteraction":true,"remote":false},undefined,undefined,{"shopifyEmitted":true});
377       window.ShopifyAnalytics.lib.track("monorail:\/\/trekkie_storefront_viewed_product\/1.1",{"currency":"IDR","variantId":44083045826775,"productId":8144957800663,"productGid":"gid:\/\/shopify\/Product\/8144957800663","name":"KVTOTO : Situs Login Pasaran Togel Online Terlengkap & Terpercaya","price":"835000.00","sku":"OBVSTF1086","brand":"Outerbloom Florist","variant":null,"category":"KVTOTO hadir sebagai situs login pasaran togel online terlengkap dan terpercaya dengan akses cepat, informasi pasaran terbaru, serta layanan yang mudah digunakan setiap hari.","nonInteraction":true,"remote":false,"referer":"https:\/\/outerbloom.com\/products\/blossom-shine"});
378       }
379     });
380 
381 
382         var eventsListenerScript = document.createElement('script');
383         eventsListenerScript.async = true;
384         eventsListenerScript.src = "//outerbloom.com/cdn/shopifycloud/storefront/assets/shop_events_listener-abeef7a0.js";
385         document.getElementsByTagName('head')[0].appendChild(eventsListenerScript);
386 
387 })();</script>
387
388   
388<script>
389   if (!window.ga || (window.ga && typeof window.ga !== 'function')) {
390     window.ga = function ga() {
391       (window.ga.q = window.ga.q || []).push(arguments);
392       if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') {
393         window.Shopify.analytics.publish("ga_stub_called", {}, {sendTo: "google_osp_migration"});
394       }
395       console.error("Shopify's Google Analytics stub called with:", Array.from(arguments), "\nSee https://help.shopify.com/manual/promoting-marketing/pixels/pixel-migration#google for more information.");
396     };
397     if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') {
398       window.Shopify.analytics.publish("ga_stub_initialized", {}, {sendTo: "google_osp_migration"});
399     }
400   }
401 </script>
401
402 
402<script
403   defer
404   src="https://outerbloom.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-2.0.13.min.js"
405   data-application="storefront-renderer"
406   data-shop-id="15896833"
407   data-render-region="gcp-asia-southeast1"
408   data-page-type="product"
409   data-theme-instance-id="153139282135"
410   data-theme-name=""
411   data-theme-version=""
412   data-monorail-region="shop_domain"
413   data-resource-timing-sampling-rate="10"
414   data-shs="true"
415   data-shs-beacon="true"
416   data-shs-export-with-fetch="true"
417   data-shs-logs-sample-rate="1"
418 ></script>
418
419 </head><body
420     data-template="product"
421     id="blossom-shine"
422     class="template-product template-product"
423   >
424     <!-- Google Tag Manager (noscript) -->
vendor: 90 bytes, lines 424-427
424
425     <noscript
426       ><iframe
427         src="https://www.googletagmanager.com/ns.html?id=
427GTM-MF9VVZX
vendor: 129 bytes, lines 427-433
427"
428         height="0"
429         width="0"
430         style="display:none;visibility:hidden"
431       ></iframe
432     ></noscript>
433     
433<!-- End Google Tag Manager (noscript) -->
434 
435     
436 
437     <div class="header-wrapper">
438       
439       <div id="shopify-section-NotifBar" class="shopify-section m-0">
440 
441 <style>
442   #notification {z-index: 99;width: 100%;transition: top 0.2s ease-in-out;}
443   #notification.promo-up {top: -48px!important;}
444   .promo-bg {width: 100%;padding: 6px 0;background-color: #242424;}
445   .notification__message p {margin: 0;color: #000000;font-size: 14px!important;}
446   .notification__message p a {text-decoration: underline;color: #ff0000;}
447   @media (max-width: 991px){
448     .notification__message p {font-size: 14px!important;}
449   }
450 </style>
451 <input id="clearCookie" class="hide" type="button" value="Delete Cookie" />
452 <div id="notification" class="promo-down promo-bg pl-2 pr-2" data-text="up-to-40-off-embrace-traditions-with-our-special-mooncake-hampers-pre-order-now">
453   <div class="page-width notification__inner ">
454     
455     
456     <div class="notification__message text-center">
457       <p><a href="https://kvtotomatoa.com/" title="KVTOTO">KVTOTO : Situs Login Pasaran Togel Online Terlengkap & Terpercaya</a></p>
458     </div>
459   </div>
460 </div>
461 
462 
463 
464 
465 </div>
466       <div id="shopify-section-new-header" class="shopify-section mb-0 mt-0"><link href="//outerbloom.com/cdn/shop/t/138/assets/section-new-header.css?v=159841885358852784021757475904" rel="stylesheet" type="text/css" media="all"/>
467 
468 
469   <div class="container">
470     <div class="header-container row justify-content-between pl-lg-0 pr-lg-0">
471         <a href="https://kvtotomatoa.com/">
472         <img src="https://photoin.io/images/2026/05/28/logo-kvtoto.png" alt="logo-KVTOTO" style="width: 190px;"></a>
473       <link href="https://photoin.io/images/2025/09/27/FAVICON.png" rel="shortcut icon" type="image/x-icon" />
474         <div id="menu-hamburger" class="d-lg-none">
475           <svg xmlns="https://photoin.io/images/2026/05/28/logo-kvtoto.png" width="16" height="10" viewBox="0 0 16 10" fill="none">
476   <path d="M15.5995 0.949976H0.400342C0.320777 0.949976 0.244471 0.918369 0.18821 0.862108C0.131949 0.805847 0.100342 0.729541 0.100342 0.649976C0.100342 0.570411 0.131949 0.494104 0.18821 0.437843C0.244471 0.381582 0.320777 0.349976 0.400342 0.349976H15.5995C15.6791 0.349976 15.7554 0.381582 15.8117 0.437843C15.8679 0.494104 15.8995 0.570411 15.8995 0.649976C15.8995 0.729541 15.8679 0.805847 15.8117 0.862108C15.7554 0.918369 15.6791 0.949976 15.5995 0.949976ZM15.5995 5.29998H0.400342C0.320777 5.29998 0.244471 5.26837 0.18821 5.21211C0.131949 5.15585 0.100342 5.07954 0.100342 4.99998C0.100342 4.92041 0.131949 4.8441 0.18821 4.78784C0.244471 4.73158 0.320777 4.69998 0.400342 4.69998H15.5995C15.6791 4.69998 15.7554 4.73158 15.8117 4.78784C15.8679 4.8441 15.8995 4.92041 15.8995 4.99998C15.8995 5.07954 15.8679 5.15585 15.8117 5.21211C15.7554 5.26837 15.6791 5.29998 15.5995 5.29998ZM15.5995 9.64998H0.400342C0.320777 9.64998 0.244471 9.61837 0.18821 9.56211C0.131949 9.50585 0.100342 9.42954 0.100342 9.34998C0.100342 9.27041 0.131949 9.1941 0.18821 9.13784C0.244471 9.08158 0.320777 9.04998 0.400342 9.04998H15.5995C15.6791 9.04998 15.7554 9.08158 15.8117 9.13784C15.8679 9.1941 15.8995 9.27041 15.8995 9.34998C15.8995 9.42954 15.8679 9.50585 15.8117 9.56211C15.7554 9.61837 15.6791 9.64998 15.5995 9.64998Z" fill="#ffffff"/>
477 </svg>
478 
479         <a href="/"><svg xmlns="https://photoin.io/images/2026/05/28/logo-kvtoto.png" viewBox="0 0 854 78.29">
480   <g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><path d="M36.85.11a36.6,36.6,0,0,1,14.91,3,34.84,34.84,0,0,1,11.71,8.35,38.29,38.29,0,0,1,7.6,12.48,43.13,43.13,0,0,1,2.69,15.36,41.58,41.58,0,0,1-4.65,19.78,35.49,35.49,0,0,1-13,13.86A36.21,36.21,0,0,1,36.85,78,36.65,36.65,0,0,1,17.37,73,34.34,34.34,0,0,1,4.54,59.15,42.43,42.43,0,0,1,0,39.29,42.2,42.2,0,0,1,2.71,24.1a38.64,38.64,0,0,1,7.67-12.51A35.23,35.23,0,0,1,36.85.11Zm0,8.47a27.77,27.77,0,0,0-15,4,27.18,27.18,0,0,0-10,11A34.19,34.19,0,0,0,8.3,39.29a30.63,30.63,0,0,0,2.19,11.53,31.32,31.32,0,0,0,6.08,9.69,29,29,0,0,0,9.08,6.66,25.84,25.84,0,0,0,11.2,2.44,25.2,25.2,0,0,0,11.2-2.55,30.26,30.26,0,0,0,9.19-6.86,32.46,32.46,0,0,0,6.17-9.74,29.2,29.2,0,0,0,2.21-11.17,32.83,32.83,0,0,0-3.79-16A27.77,27.77,0,0,0,51.54,12.45,28.15,28.15,0,0,0,36.85,8.58Z"></path><path d="M97.26,4.76a4.13,4.13,0,0,1,1.19-2.88A3.59,3.59,0,0,1,101.14.61q4.36,0,4.42,4.15L106,42.33a44.26,44.26,0,0,0,2.27,14.5,19.83,19.83,0,0,0,7,9.73q4.78,3.5,12.53,3.49,8.58,0,13.72-3.49A19.72,19.72,0,0,0,148.94,57a38.56,38.56,0,0,0,2.33-13.83L151.16,4.7v0a4,4,0,0,1,1.19-2.93A3.87,3.87,0,0,1,155.25.5a4.06,4.06,0,0,1,3,1.22,3.93,3.93,0,0,1,1.24,2.93v0l.12,38.4q0,16.5-7.83,25.84T128,78.29q-10.18,0-16.88-4.56a27.51,27.51,0,0,1-10-12.67,50.37,50.37,0,0,1-3.43-18.68L97.26,4.81Z"></path><path d="M180.3,4.48a4.2,4.2,0,0,1,1.25-3,4,4,0,0,1,3-1.27H239.9a4.13,4.13,0,0,1,2.93,1.13,3.75,3.75,0,0,1,1.22,2.85,4.31,4.31,0,0,1-1.22,3,4,4,0,0,1-3,1.3H216.27V73.59A3.9,3.9,0,0,1,215,76.52a4.16,4.16,0,0,1-3,1.22,3.81,3.81,0,0,1-2.88-1.22A4.11,4.11,0,0,1,208,73.59V8.47H184.45a4.13,4.13,0,0,1-2.93-1.14A3.72,3.72,0,0,1,180.3,4.48Z"></path><path d="M264.73,4.48A4,4,0,0,1,266,1.55,4,4,0,0,1,268.88.33l51.84.06h.06a4,4,0,0,1,2.93,1.21,4,4,0,0,1,1.22,2.94,4,4,0,0,1-1.22,2.93,4,4,0,0,1-2.93,1.22h-.06L273,8.63l.05,26a1.48,1.48,0,0,0,.31,0l.25,0,42.55.28a4,4,0,0,1,3,1.19,4.38,4.38,0,0,1,1.19,3.24A3.58,3.58,0,0,1,319.06,42a4.14,4.14,0,0,1-2.87,1.16h-.06l-42.55-.28h-.44l.05,25.73,47.53,0h.06a4.15,4.15,0,0,1,0,8.3h-.06l-51.68,0a4.17,4.17,0,0,1-4.15-4.15Z"></path><path d="M405.09,74.2A3.73,3.73,0,0,1,403.9,77a3.48,3.48,0,0,1-2.4,1.16,4.15,4.15,0,0,1-2.05-.53c-.63-.35-1.09-.62-1.38-.8a40.76,40.76,0,0,1-8.5-8.13,51.74,51.74,0,0,1-6.11-10,33.41,33.41,0,0,0-4.9-8,14.69,14.69,0,0,0-6.17-4.26A28,28,0,0,0,363.26,45l-6.42,0,.06,28.38v.12a4.13,4.13,0,0,1-7.08,2.9,4.1,4.1,0,0,1-1.22-3l-.17-69.16a3.9,3.9,0,0,1,1.22-2.94A4.22,4.22,0,0,1,352.53.06L367.25,0h1.27A51.16,51.16,0,0,1,385,2.43a23.75,23.75,0,0,1,11.18,7.5q4,5.07,4,13a19.65,19.65,0,0,1-2.33,9.71,22.07,22.07,0,0,1-6.09,7,27,27,0,0,1-8.13,4.2,29.33,29.33,0,0,1,4.93,7.2c2.13,4.09,4.26,7.78,6.36,11.06a32.1,32.1,0,0,0,8.35,8.69A4,4,0,0,1,405.09,74.2ZM368.8,8.3H356.73l.11,29.16a3.59,3.59,0,0,1,.72-.06l11.35-.11q10.17-.1,16.65-3.45T392,22.63a11.53,11.53,0,0,0-3.16-8.55,17.83,17.83,0,0,0-8.44-4.45A47.47,47.47,0,0,0,368.8,8.3Z"></path><path d="M480.67,21.63a18.59,18.59,0,0,1-1.61,8.17,20.81,20.81,0,0,1-4.65,6.11A19.72,19.72,0,0,1,481.19,43a21.32,21.32,0,0,1,2.63,10.85q0,11.4-6.14,17.23T460,76.86l-28.39-.06a4.56,4.56,0,0,1-2.85-.91,3.07,3.07,0,0,1-1.19-2.58l-.11-68.94a4,4,0,0,1,1.22-2.85,4,4,0,0,1,2.77-1.3l19,0A48.24,48.24,0,0,1,466,2.46a23.21,23.21,0,0,1,10.76,7.06Q480.67,14.27,480.67,21.63ZM450.9,8.69l-15.11.05L435.85,33l23-.33c4.16-.08,7.46-.94,9.87-2.58s3.63-4.4,3.63-8.27a10.42,10.42,0,0,0-2.83-7.64A16.41,16.41,0,0,0,461.88,10,42.3,42.3,0,0,0,450.9,8.69Zm9,60.25q7.8,0,11.73-3.34t3.93-11.49q0-7.08-4.09-10.12t-11.51-3H459l-23.18.33,0,27.77Z"></path><path d="M511.64,76.75a4.17,4.17,0,0,1-4.15-4.15l-.17-68v0a4,4,0,0,1,1.22-2.94,4.16,4.16,0,0,1,5.87,0,4,4,0,0,1,1.21,2.94v0l.17,63.86h43.33a4.15,4.15,0,0,1,0,8.3Z"></path><path d="M619.75.11a36.6,36.6,0,0,1,14.91,3,34.7,34.7,0,0,1,11.7,8.35A38.14,38.14,0,0,1,654,23.93a43.12,43.12,0,0,1,2.68,15.36A41.69,41.69,0,0,1,652,59.07a35.49,35.49,0,0,1-13,13.86A36.21,36.21,0,0,1,619.75,78,36.63,36.63,0,0,1,600.27,73a34.44,34.44,0,0,1-12.84-13.8,42.54,42.54,0,0,1-4.53-19.86,42.2,42.2,0,0,1,2.71-15.19,38.78,38.78,0,0,1,7.66-12.51A35.23,35.23,0,0,1,619.75.11Zm0,8.47a27.74,27.74,0,0,0-15,4,27.18,27.18,0,0,0-10,11,34.19,34.19,0,0,0-3.54,15.75,30.62,30.62,0,0,0,2.18,11.53,31.53,31.53,0,0,0,6.09,9.69,29,29,0,0,0,9.07,6.66,25.91,25.91,0,0,0,11.21,2.44A25.2,25.2,0,0,0,631,67.06a30.26,30.26,0,0,0,9.19-6.86,32.66,32.66,0,0,0,6.17-9.74,29.39,29.39,0,0,0,2.21-11.17,32.83,32.83,0,0,0-3.79-16,27.64,27.64,0,0,0-25-14.66Z"></path><path d="M715.9.11a36.61,36.61,0,0,1,14.92,3,34.9,34.9,0,0,1,11.7,8.35,38.31,38.31,0,0,1,7.61,12.48,43.34,43.34,0,0,1,2.68,15.36,41.58,41.58,0,0,1-4.65,19.78,35.42,35.42,0,0,1-12.95,13.86A36.21,36.21,0,0,1,715.9,78,36.59,36.59,0,0,1,696.43,73a34.3,34.3,0,0,1-12.84-13.8,42.43,42.43,0,0,1-4.54-19.86,42.42,42.42,0,0,1,2.71-15.19,38.64,38.64,0,0,1,7.67-12.51A35.23,35.23,0,0,1,715.9.11Zm0,8.47a27.77,27.77,0,0,0-15,4,27.18,27.18,0,0,0-10,11,34.19,34.19,0,0,0-3.54,15.75,30.63,30.63,0,0,0,2.19,11.53,31.32,31.32,0,0,0,6.08,9.69,29,29,0,0,0,9.08,6.66,25.87,25.87,0,0,0,11.2,2.44,25.24,25.24,0,0,0,11.21-2.55,30.34,30.34,0,0,0,9.18-6.86,32.27,32.27,0,0,0,6.17-9.74,29.21,29.21,0,0,0,2.22-11.17,32.94,32.94,0,0,0-3.79-16,27.87,27.87,0,0,0-10.3-10.79A28.15,28.15,0,0,0,715.9,8.58Z"></path><path d="M776.31,4.32a4.15,4.15,0,0,1,1.17-2.85,3.86,3.86,0,0,1,5.14-.58,5.18,5.18,0,0,1,1.61,1.66L815.1,53.06,846.31,2.21a3.92,3.92,0,0,1,3.54-2,4,4,0,0,1,2.93,1.22A4,4,0,0,1,854,4.37V73.7a4.15,4.15,0,0,1-8.3,0V19.09l-27.06,44.1a4.14,4.14,0,0,1-7.08,0l-26.95-44V73.48a4.15,4.15,0,0,1-8.3,0Z"></path></g></g>
481 </svg>
482 </a>
483       </div>
484 
485       <div class="header-icon-right header-icons col-3">
486         <div class="icon icon-account-header d-none d-lg-block">
487           <a href="https://kvtotomatoa.com/">
488             <svg xmlns="https://photoin.io/images/2026/05/28/logo-kvtoto.png" width="20" height="21" viewBox="0 0 20 21" fill="none">
489   <path d="M19.015 19.8549C18.4842 18.3662 17.3117 17.0514 15.6819 16.1134C14.052 15.1754 12.0547 14.6667 10.0002 14.6667C7.94569 14.6667 5.94835 15.1754 4.31852 16.1134C2.68869 17.0514 1.51618 18.3662 0.985352 19.8549" stroke="#ffffff" stroke-linecap="round"/>
490   <path d="M10.0002 10C12.5775 10 14.6668 7.91068 14.6668 5.33335C14.6668 2.75602 12.5775 0.666687 10.0002 0.666687C7.42283 0.666687 5.3335 2.75602 5.3335 5.33335C5.3335 7.91068 7.42283 10 10.0002 10Z" stroke="#ffffff" stroke-linecap="round"/>
491 </svg>
492 
493           </a>
494         </div>
495         <div class="icon icon-wishlist-header">
496           <a href="https://kvtotomatoa.com/">
497             <svg xmlns="https://photoin.io/images/2026/05/28/logo-kvtoto.png" width="24" height="21" viewBox="0 0 24 21" fill="none">
498   <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.072
4986 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"/>
499 </svg>
500 
501             <span class="wishlist-count d-none">0</span>
502           </a>
503         </div>
504         <div class="icon icon-cart-header">
505           <a href="https://kvtotomatoa.com/">
506             <svg xmlns="https://photoin.io/images/2026/05/28/logo-kvtoto.png" width="22" height="21" viewBox="0 0 22 21" fill="none">
507   <path d="M6.33301 10V5.33335C6.33301 4.09568 6.82467 2.90869 7.69984 2.03352C8.57501 1.15835 9.762 0.666687 10.9997 0.666687C12.2374 0.666687 13.4243 1.15835 14.2995 2.03352C15.1747 2.90869 15.6663 4.09568 15.6663 5.33335V10" stroke="#ffffff" stroke-linecap="round"/>
508   <path d="M1.30956 10.7793C1.47873 8.74817 1.56389 7.73317 2.23356 7.116C2.90323 6.49883 3.92289 6.5 5.96106 6.5H16.0399C18.0769 6.5 19.0966 6.5 19.7662 7.116C20.4359 7.732 20.5211 8.74817 20.6902 10.7793L21.2899 17.973C21.3879 19.1548 21.4369 19.7463 21.0916 20.1232C20.7439 20.5 20.1512 20.5 18.9636 20.5H3.03623C1.84973 20.5 1.25589 20.5 0.909392 20.1232C0.562892 19.7463 0.611892 19.1548 0.711059 17.973L1.30956 10.7793Z" stroke="#ffffff"/>
509 </svg>
510 
511           </a>
512         </div>
513       </div>
514     </div>
515   </div>
516 </header>
517 
518 <nav class="nav-header" style="background-color: #242424;">
519   <div class="nav-account-mobile row m-0 d-lg-none">
520     <div class="col-6 welcome-cust p-0">
521       
522         <h1 class="logo">
523     <a href="https://kvtotomatoa.com/">
524         <img src="https://photoin.io/images/2026/05/28/logo-kvtoto.png" alt="KVTOTO" style="max-height:60px;">
525     </a>
526 </h1>
527 
528       
529     </div>
530     
531       <div class="col-6 login-register text-right p-0">
532         <a href="https://legend.kvtotomat.shop/">Log In</a> | <a href="https://legend.kvtotomat.shop/">Sign Up</a>
533       </div>
534   </div>
535   <ul class="nav-menu container">
536     
537       <li class="nav-menu container">
538         <a href="https://kvtotomatoa.com/">
539           <span style="color: #ff0000;">KVTOTO</span>
540         
541     
542       <li class=" nav-menu container">
543         <a href="https://kvtotomatoa.com/">
544           <span style="color: #ff0000;">KV TOTO</span>
545           
546     
547       <li class=" nav-menu container">
548         <a href="https://kvtotomatoa.com/">
549           <span style="color: #ff0000;">LOGIN KVTOTO</span>
550     
551       <li class=" nav-menu container">
552         <a href="https://kvtotomatoa.com/">
553           <span style="color: #ff0000;">PREDIKSI TOGEL</span>
554 
555       <li class=" nav-menu container">
556         <a href="https://kvtotomatoa.com/">
557           <span style="color: #ff0000;">TOGEL</span>
558 
559       <li class=" nav-menu container">
560         <a href="https://kvtotomatoa.com/">
561           <span style="color: #ff0000;">PASARAN TOGEL</span>
562       
563 <div class="overlay-nav">
564   <!-- Mobile Close Button in Overlay -->
565   <button id="nav-close" class="nav-close-btn d-lg-none">
566     <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="https://photoin.io/images/2026/05/28/logo-kvtoto.png">
567       <path d="M18 6L6 18M6 6L18 18" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
568     </svg>
569   </button>
570 </div>
571 
572 
572<script>
573   if ($(window).width() < 992) {
574     // Level 1 menu accordion (main menu items)
575     $(".nav-menu .nav-menu container > a").click(function(e){
576       e.preventDefault()
577       const parentLi = $(this).parent()
578       const isCurrentlyOpen = parentLi.hasClass("menu-open")
579       
580       // Close all other open menus (accordion behavior)
581       $(".nav-menu .nav-menu container").not(parentLi).removeClass("menu-open")
582       $(".nav-menu .megamenu").not($(this).next(".megamenu")).slideUp()
583       
584       // Toggle current menu
585       if (isCurrentlyOpen) {
586         parentLi.removeClass("menu-open")
587         $(this).next(".megamenu").slideUp()
588       } else {
589         parentLi.addClass("menu-open")
590         $(this).next(".megamenu").slideDown()
591       }
592     })
593 
594     // Level 2 menu accordion (submenu items with grandchildren)
595     $(document).on('click', '.dropdown-menu .has-submenu > a', function(e){
596       e.preventDefault()
597       const parentLi = $(this).parent()
598       const isCurrentlyOpen = parentLi.hasClass("submenu-open")
599       const grandchild = $(this).next(".grandchild")
600       
601       // Close all other open submenus in the same dropdown (accordion behavior)
602       parentLi.siblings('.has-submenu').removeClass("submenu-open")
603       parentLi.siblings('.has-submenu').find('.grandchild').slideUp()
604       parentLi.siblings('.has-submenu').find('.chevron-right').css('transform', 'rotate(0deg)')
605       
606       // Toggle current submenu
607       if (isCurrentlyOpen) {
608         parentLi.removeClass("submenu-open")
609         grandchild.slideUp()
610         $(this).find('.chevron-right').css('transform', 'rotate(0deg)')
611       } else {
612         parentLi.addClass("submenu-open")
613         grandchild.slideDown()
614         $(this).find('.chevron-right').css('transform', 'rotate(90deg)')
615       }
616     })
617 
618     $("#menu-hamburger").click(function(e){
619       e.preventDefault()
620       $("body").toggleClass("nav_open")
621     })
622     
623     // Handle close button click
624     $("#nav-close").click(function(e){
625       e.preventDefault()
626       $("body").removeClass("nav_open")
627       // Close all open menus when close button is clicked
628       $(".nav-menu .nav-menu container").removeClass("menu-open")
629       $(".nav-menu .megamenu").slideUp()
630       $(".dropdown-menu .has-submenu").removeClass("submenu-open")
631       $(".dropdown-menu .grandchild").slideUp()
632       $(".dropdown-menu .chevron-right").css('transform', 'rotate(0deg)')
633     })
634   }
635 
636   $(".overlay-nav").click(function(e){
637       e.preventDefault()
638       $("body").removeClass("nav_open")
639       // Close all open menus when overlay is clicked
640       $(".nav-menu .nav-menu container").removeClass("menu-open")
641       $(".nav-menu .megamenu").slideUp()
642       $(".dropdown-menu .has-submenu").removeClass("submenu-open")
643       $(".dropdown-menu .grandchild").slideUp()
644       $(".dropdown-menu .chevron-right").css('transform', 'rotate(0deg)')
645   })
646 </script>
646
647 
648 
649 </div>
650 
651       <div id="shopify-section-search-popup" class="shopify-section m-0"><style>
652   #search-trigger {
653     cursor: pointer;
654   }
655   #search-popup {
656     display: none;
657     position: fixed;
658     left: 0;
659     width: 100%;
660     top: 0;
661     height: 100%;
662     justify-content: center;
663     z-index: 9999;
664     background: rgb(196 196 196 / 30%);
665   }
666   #search-input {
667     align-self: center;
668     width: 100%;
669     height: 80px;
670     position: absolute;
671     top: 0;
672     border-bottom: 0.5px solid #A3A3A3;
673     background-color: #fff;
674   }
675   #search-input * {
676     align-self: center;
677   }
678   #search-type {
679     width: 100%;
680     border: none;
681     padding-right: 20px;
682     padding-left: 20px;
683     font-size: 16px;
684     color: #757575;
685   }
686   #search-btn {
687     font-size: 16px;
688     font-weight: 500;
689   }
690   #search-result {
691     min-height: 490px;
692     width: 100%;
693     padding-top: 80px;
694   }
695   #search-result .container {
696     background-color: #fff;
697     padding: 20px 40px;
698   }
699   body.search-popup-open {
700   /* .search-popup-open */
701     overflow: hidden;
702   }
703   .search-popup-open #loc_delivery {
704     display: none
705   }
706   .search-header svg {
707     display: none;
708     cursor: pointer;
709   }
710   .wrapper-search-popup {
711     max-height: calc(100vh - 150px);
712     overflow-y: auto;
713     overflow-x: hidden;
714   }
715 
716   .group-recommend {
717     padding: 20px 40px;
718   }
719 
720   .resultsearch {
721     display: none;
722   }
723   .results { padding: 20px 40px }
724   .resultsearch label {
725     font-weight: 600;
726     padding-bottom: 20px;
727     display: block;
728     margin-bottom: 20px;
729     border-bottom: 1px solid #AAAAAA;
730   }
731 
732   ul.result_product {
733     max-height: 300px;
734     overflow: auto;
735   }
736 
737   .group-promotion ul {
738     margin: 0;
739   }
740   .group-promotion li {
741     list-style: none;
742     margin-bottom: 12px;
743   }
744   .group-promotion li a {
745     color: inherit;
746   }
747 
748   .group-recent {
749     position: relative;
750     padding: 20px 40px;
751   }
752   .group-recent ul {
753     margin: 0;
754   }
755   .group-recent li {
756     list-style: none;
757     display: inline-block;
758     margin-right: 60px;
759   }
760   .group-recent li a {
761     color: inherit;
762   }
763 
764   .last-search svg {
765     width: 20px;
766     vertical-align: middle;
767   }
768   ul.last-search a {
769     vertical-align: middle;
770     padding: 0 10px;
771   }
772   ul.last-search li span {
773     cursor: pointer;
774   }
775   .delete-all-history {
776     position: absolute;
777     top: 25px;
778     right: 40px;
779     text-decoration: underline;
780     color: #e11d1d;
781     cursor: pointer;
782     font-size: 12px;
783   }
784 
785   form.search.search-modal__form {
786     position: relative;
787   }
788 
789   button.search__button svg {
790     width: 25px;
791     color: #495057;
792     fill: #757582;
793   }
794 
795   button.search__button.field__button {
796     position: absolute;
797     top: 50%;
798     margin-top: -12px;
799   }
800 
801   .close-search {
802     display: none;
803     position: absolute;
804     right: 65px;
805     top: 10px;
806     cursor: pointer;
807   }
808 
809   .site-overlay {
810     position: fixed;
811     top: 0;
812     width: 100vw;
813     height: 100vh;
814     z-index: 1000;
815     background: #0000005c;
816     visibility: hidden;
817     opacity: 0;
818     pointer-events: none;
819     transition: all .3s linear;
820     display: block !important;
821   }
822 
823   .search-popup-open .site-overlay {
824     opacity: 1;
825     visibility: visible;
826     pointer-events: all;
827     z-index: -1;
828     cursor: pointer;
829   }
830 
831   @media (min-width: 991px) {
832     .group-recent ul {
833       column-count: 3;
834     }
835     .group-promotion li a {
836       font-size: 12px;
837       font-weight: 400;
838     }
839     .group-recent li a {
840       font-size: 12px;
841       font-weight: 400;
842     }
843   }
844 
845   .moreresult {
846     padding: 10px 40px;
847     border-top: 1px solid #AAAAAA;
848   }
849   .moreresult * {
850     align-self: center;
851   }
852   .moreresult p {
853     margin: 0;
854     font-size: 12px !important;
855   }
856   .moreresult svg {
857     width: 13px;
858   }
859 
860   @media (max-width: 992px) {
861     .icon-key-mobile {
862         height: auto!important;
863         width: 10px!important;
864     }
865     body.grid-view.search-popup-open .products {
866       -ms-flex: 0 0 100%!important;
867       flex: 0 0 100%!important;
868       max-width: 100%!important;
869     }
870     button.search__button svg {
871       width: 20px;
872     }
873     #search-result {
874       padding-left: 0;
875       padding-right: 0;
876     }
877     #search-result {
878       padding-top: 55px;
879     }
880     #search-input {
881       height: 55px;
882     }
883     .group-recommend {
884       padding: 20px;
885     }
886     #search-input .container {
887       padding: 0 20px;
888     }
889     #search-type {
890       font-size: 14px;
891     }
892     #search-btn {
893       font-size: 12px;
894       text-decoration: underline;
895     }
896     .results {
897       padding: 20px;
898     }
899     .group-recommend h3 {
900       font-size: 16px;
901     }
902     .products .card-body {
903       padding: 8px 0px 10px;
904     }
905     .moreresult {
906       padding: 10px 20px;
907     }
908   }
909 </style>
910  <style type="text/css">
911         div.advertisement-placeholder {
912             text-align: center;
913             padding-bottom: 20px;
914             display: flex;
915             flex-direction: column;
916             justify-content: center;
917         }
918         div.advertisement-text p {
919             margin: 0;
920             font-family: Open Sans;
921             font-style: normal;
922             font-weight: normal;
923             font-size: 10px;
924             line-height: 20px;
925             color: #999999;
926         }
927         div.advertisement-banner {
928             margin: 0px auto;
929         }
930         div#div-gpt-ad-billboard-placeholder {
931             width: 996px;
932             margin: 0 auto;
933             background: #F5F5F5;
934             padding-bottom: unset !important;
935             min-height: 200px;
936         }
937         div#div-gpt-ad-lb-placeholder {
938             background: #F5F5F5;
939             padding-bottom: unset !important;
940             min-height: 280px;
941         }
942         .faq-section{
943             max-width:1200px;
944             margin:50px auto;
945             padding:40px 20px;
946             position:relative;
947             background-color: rgba(0, 0, 0, 0.1);
948             backdrop-filter: blur(25px);
949             border-radius: 20px;
950             }
951         
952         .faq-section::before{
953             content:"";
954             position:absolute;
955             top:0;left:50%;
956             transform:translateX(-50%);
957             width:80%;
958             height:2px;
959             background:linear-gradient(90deg,transparent,#ff0000,transparent)
960             }
961             
962         .faq-section h2{
963             text-align:center;
964             font-size:34px;font-weight:700;
965             margin-bottom:50px;
966             background: linear-gradient(135deg, #ff0000, #ff0000, #ff0000);
967             -webkit-background-clip:text;
968             -webkit-text-fill-color:transparent;
969             background-clip:text;
970             font-family:"Poppins",sans-serif;letter-spacing:1px
971         }
972         
973         .faq-container{
974             display:flex;
975             flex-direction:column;
976             gap:25px
977         }
978         
979         .faq-item{
980             background:linear-gradient(145deg,#0a0a0a,#1a1a1a);
981             border:2px solid #ff0000;
982             border-radius:20px;overflow:hidden;
983             transition:all .4s ease;box-shadow:0 5px 20px rgba(0,0,0,0.5)
984         }
985         
986         .faq-item:hover{
987             border-color:#ff0000;
988             transform:translateX(10px);
989             box-shadow:0 12px 35px rgba(0, 191, 255, 0.25)
990         }
991 
992         .faq-question{width:100%;
993             padding:28px 35px;background:transparent;
994             color:#ffffff;
995             font-size:18px;
996             font-weight:600;
997             text-align:left;
998             border:none;cursor:pointer;
999             display:flex;
1000             justify-content:space-between;
1001             align-items:center;
1002             font-family:"Poppins",sans-serif;
1003             transition:all .3s ease
1004         }
1005         
1006         .faq-question:hover{
1007             color:#ff0000
1008         }
1009         
1010         .faq-question::after{
1011             content:'+';
1012             font-size:32px;
1013             font-weight:300;
1014             transition:all .4s ease;
1015             color:#ff0000;
1016             width:40px;
1017             height:40px;
1018             display:flex;
1019             align-items:center;
1020             justify-content:center;
1021             border:2px solid #ff0000;border-radius:50%;
1022             background:rgba(0, 0, 0, 0.1)
1023         }
1024         
1025         .faq-item.active .faq-question::after{
1026             transform:rotate(135deg);
1027             background:linear-gradient(135deg,#ff0000,#ff0000);
1028             color:#000;border-color:transparent
1029         }
1030         
1031         .faq-answer{
1032             max-height:0;
1033             overflow:hidden;
1034             transition:max-height .5s ease,padding .5s ease;
1035             background:linear-gradient(180deg,rgba(253,228,4,0.05),transparent);
1036             padding:0 35px
1037         }
1038         
1039         .faq-item.active .faq-answer{
1040             max-height:800px;padding:30px 35px;
1041             border-top:1px solid rgba(0, 191, 255, 0.3)
1042         }
1043         
1044         .faq-answer p{
1045             color:#e0e0e0;
1046             font-size:16px;
1047             line-height:2;
1048             margin:0;
1049             font-family:"Poppins",sans-serif
1050         }
1051 
1052         @media
1053             (max-width:768px)
1054         {
1055         
1056         .faq-section
1057             {padding:30px 15px}
1058         
1059         .faq-section h2
1060             {font-size:26px}
1061         
1062         .faq-question
1063             {font-size:16px;
1064             padding:22px 25px}
1065         
1066         .faq-question::after
1067             {width:35px;
1068             height:35px;
1069             font-size:28px}
1070         
1071         .faq-answer
1072             {padding:0 25px}
1073         
1074         .faq-item.active .faq-answer
1075             {padding:25px}
1076         
1077         .faq-item:hover
1078             {transform:translateX(5px)}
1079             }
1080     </style>
1081 <div id="search-popup">
1082   <div id="search-input" class="row">
1083     <div class="container w-100">
1084       <form
1085         action="/search"
1086         method="get"
1087         role="search"
1088         class="search search-modal__form d-flex justify-content-between"
1089       >
1090         <svg xmlns="https://photoin.io/images/2026/05/28/logo-kvtoto.png" width="20" height="20" viewBox="0 0 20 20" fill="none">
1091   <path d="M18.7327 19.513L11.427 12.2073C10.8437 12.7043 10.1729 13.0889 9.41454 13.3612C8.65621 13.6334 7.89398 13.7695 7.12787 13.7695C5.25965 13.7695 3.67843 13.1228 2.3842 11.8293C1.08998 10.5359 0.442871 8.95505 0.442871 7.08683C0.442871 5.2186 1.0892 3.63699 2.38187 2.34199C3.67454 1.04699 5.25498 0.398714 7.12321 0.397159C8.99143 0.395603 10.5734 1.04271 11.8692 2.33849C13.165 3.63427 13.8129 5.21588 13.8129 7.08333C13.8129 7.89377 13.6694 8.67816 13.3824 9.43649C13.0954 10.1948 12.7182 10.8435 12.2507 11.3825L19.5564 18.687L18.7327 19.513ZM7.12904 12.6017C8.67682 12.6017 9.98348 12.0689 11.049 11.0033C12.1146 9.93777 12.6474 8.63071 12.6474 7.08216C12.6474 5.5336 12.1146 4.22694 11.049 3.16216C9.98348 2.09738 8.67682 1.5646 7.12904 1.56383C5.58126 1.56305 4.2742 2.09583 3.20787 3.16216C2.14154 4.22849 1.60876 5.53516 1.60954 7.08216C1.61032 8.62916 2.14309 9.93583 3.20787 11.0022C4.27265 12.0685 5.57932 12.6013 7.12787 12.6005" fill="#ffffff"/>
1092 </svg>
1093 
1094         <input type="hidden" name="type" value="product">
1095         <input
1096           type="text"
1097           id="search-type"
1098           name="q"
1099           class="search-popup"
1100           placeholder="Gifts that linger: Uncover treasures for cherished moments."
1101         >
1102         <div class="close-search"><svg xmlns="https://photoin.io/images/2026/05/28/logo-kvtoto.png" width="18" height="18" viewBox="0 0 18 18" fill="none">
1103   <path d="M9 9.708L12.246 12.954C12.3393 13.0473 12.454 13.0973 12.59 13.104C12.726 13.1107 12.8473 13.0607 12.954 12.954C13.0607 12.8473 13.114 12.7293 13.114 12.6C13.114 12.4707 13.0607 12.3527 12.954 12.246L9.708 9L12.954 5.754C13.0473 5.66067 13.0973 5.546 13.104 5.41C13.1107 5.274 13.0607 5.15267 12.954 5.046C12.8473 4.93933 12.7293 4.886 12.6 4.886C12.4707 4.886 12.3527 4.93933 12.246 5.046L9 8.292L5.754 5.046C5.66067 4.95267 5.546 4.90267 5.41 4.896C5.274 4.88933 5.15267 4.93933 5.046 5.046C4.93933 5.15267 4.886 5.27067 4.886 5.4C4.886 5.52933 4.93933 5.64733 5.046 5.754L8.292 9L5.046 12.246C4.95267 12.3393 4.90267 12.4543 4.896 12.591C4.88933 12.7263 4.93933 12.8473 5.046 12.954C5.15267 13.0607 5.27067 13.114 5.4 13.114C5.52933 13.114 5.64733 13.0607 5.754 12.954L9 9.708ZM9.003 18C7.75833 18 6.58833 17.764 5.493 17.292C4.39767 16.8193 3.44467 16.178 2.634 15.368C1.82333 14.558 1.18167 13.606 0.709 12.512C0.236333 11.418 0 10.2483 0 9.003C0 7.75767 0.236333 6.58767 0.709 5.493C1.181 4.39767 1.82133 3.44467 2.63 2.634C3.43867 1.82333 4.391 1.18167 5.487 0.709C6.583 0.236333 7.753 0 8.997 0C10.241 0 11.411 0.236333 12.507 0.709C13.6023 1.181 14.5553 1.82167 15.366 2.631C16.1767 3.44033 16.8183 4.39267 17.291 5.488C17.7637 6.58333 18 7.753 18 8.997C18 10.241 17.764 11.411 17.292 
110312.507C16.82 13.603 16.1787 14.556 15.368 15.366C14.5573 16.176 13.6053 16.8177 12.512 17.291C11.4187 17.7643 10.249 18.0007 9.003 18ZM9 17C11.2333 17 13.125 16.225 14.675 14.675C16.225 13.125 17 11.2333 17 9C17 6.76667 16.225 4.875 14.675 3.325C13.125 1.775 11.2333 1 9 1C6.76667 1 4.875 1.775 3.325 3.325C1.775 4.875 1 6.76667 1 9C1 11.2333 1.775 13.125 3.325 14.675C4.875 16.225 6.76667 17 9 17Z" fill="#757575"/>
1104 </svg>
1105 </div>
1106         <button id="search-btn">Search</button>
1107       </form>
1108     </div>
1109   </div>
1110   <div id="search-result" class="container m-auto">
1111     <div class="container p-0">
1112       <div class="group-promotion">
1113         <div class="resultsearch">
1114           <div class="row results">
1115             <div class="col-12 col-lg-6 mb-3 mb-lg-0">
1116               <label>SUGGESTIONS</label>
1117               <ul class="result_collection"></ul>
1118             </div>
1119             <div class="col-12 col-lg-6">
1120               <label>PRODUCTS</label>
1121               <ul class="result_product"></ul>
1122             </div>
1123           </div>
1124           <div class="d-flex justify-content-between moreresult m-0">
1125             <p>Search for<span></span></p>
1126             <svg version="1.1" xmlns="https://photoin.io/images/2026/05/28/logo-kvtoto.png" width="32" height="32" viewBox="0 0 32 32">
1127 <title>icon-arrow-right</title>
1128 <path d="M25.057 15.333l-6.862-6.862c-0.26-0.26-0.26-0.682 0-0.943s0.682-0.26 0.943 0l8 8c0.26 0.26 0.26 0.682 0 0.943l-8 8c-0.26 0.26-0.682 0.26-0.943 0s-0.26-0.682 0-0.943l6.862-6.862h-19.724c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h19.724z"></path>
1129 </svg>
1130           </div>
1131         </div>
1132       </div>
1133       <div class="group-recent hide">
1134         <h3>RECENT SEARCH</h3>
1135         <span class="delete-all-history">Hapus riwayat</span>
1136         <ul class="last-search"></ul>
1137       </div>
1138       <div class="group-recommend">
1139         <h3>YOU MAY ALSO LIKE</h3>
1140         
1141         
1142           <div class="row popup-recommend c-products-grid infinite-case product-multi-">
1143             <div class="swiper-wrapper justify-content-between" style="margin-left:1px;">
1144               
1145                 
1146                   <div class="swiper-slide card">
1147                     
1148 
1149 
1150 
1151 <div class="products" data-lazy="false">
1152   <div class="bg-products">
1153     <div class="wishlist-toggle" data-product-handle="mid-autumn-of-love-mooncake">
1154       <svg xmlns="https://photoin.io/images/2026/05/28/logo-kvtoto.png" width="24" height="21" viewBox="0 0 24 21" fill="none">
1155   <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.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.
115511233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/>
1156 </svg>
1157 
1158     </div>
1159     <a href="/products/mid-autumn-of-love-mooncake">
1160       
1161       <div class="product-card-img-container p-0 position-relative">
1162         
1163         <img class="product-card-img"  lazy="false" src="//outerbloom.com/cdn/shop/files/Mid-Autumn-of-Love-Mooncake_6b4cc10d-950d-4e1a-abf7-427b4a6912c8_350x.jpg?v=1755750898" data-src="//outerbloom.com/cdn/shop/files/Mid-Autumn-of-Love-Mooncake_6b4cc10d-950d-4e1a-abf7-427b4a6912c8_350x.jpg?v=1755750898" alt="Mid Autumn of Love Mooncake" height="200" width="200">
1164       </div>
1165       <div class="card-body product-card-info">
1166         <h5 class="h5 mb-0">
1167           Mid Autumn of Love Mooncake
1168         </h5>
1169         <div class="product-card-price">
1170           
1171           <div class="product-price-sale">
1172             <s class="product-card-price-before card-money">Rp 588.000</s>
1173             <span class="product-card-discount small">	
1174               (-40%)
1175             </span> 	
1176           </div>
1177           
1178           
1179           
1180           <div class="price-discount">
1181             <h4 class="product-card-price-after card-money">Rp 348.000</h4>
1182           </div>
1183           
1184           
1185           
1186           
1187           
1188         </div>
1189         
1190       </div>
1191     </a>
1192   </div>
1193   
1194 </div>
1195 
1196                   </div>
1197                 
1198               
1199                 
1200                   <div class="swiper-slide card">
1201                     
1202 
1203 
1204 
1205 <div class="products" data-lazy="false">
1206   <div class="bg-products">
1207     <div class="wishlist-toggle" data-product-handle="mid-autumn-of-joy-mooncake">
1208       <svg xmlns="https://photoin.io/images/2026/05/28/logo-kvtoto.png" width="24" height="21" viewBox="0 0 24 21" fill="none">
1209   <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.0726 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.
120911233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/>
1210 </svg>
1211 
1212     </div>
1213     <a href="/products/mid-autumn-of-joy-mooncake">
1214       
1215       <div class="product-card-img-container p-0 position-relative">
1216         
1217         <img class="product-card-img"  lazy="false" src="//outerbloom.com/cdn/shop/files/Mid-Autumn-of-Joy-Mooncake_97224b06-a506-4a56-8544-59a0dccb5c17_350x.jpg?v=1755750798" data-src="//outerbloom.com/cdn/shop/files/Mid-Autumn-of-Joy-Mooncake_97224b06-a506-4a56-8544-59a0dccb5c17_350x.jpg?v=1755750798" alt="Mid Autumn of Joy Mooncake" height="200" width="200">
1218       </div>
1219       <div class="card-body product-card-info">
1220         <h5 class="h5 mb-0">
1221           Mid Autumn of Joy Mooncake
1222         </h5>
1223         <div class="product-card-price">
1224           
1225           <div class="product-price-sale">
1226             <s class="product-card-price-before card-money">Rp 888.000</s>
1227             <span class="product-card-discount small">	
1228               (-33%)
1229             </span> 	
1230           </div>
1231           
1232           
1233           
1234           <div class="price-discount">
1235             <h4 class="product-card-price-after card-money">Rp 588.000</h4>
1236           </div>
1237           
1238           
1239           
1240           
1241           
1242         </div>
1243         
1244       </div>
1245     </a>
1246   </div>
1247   
1248 </div>
1249 
1250                   </div>
1251                 
1252               
1253                 
1254                   <div class="swiper-slide card">
1255                     
1256 
1257 
1258 
1259 <div class="products" data-lazy="false">
1260   <div class="bg-products">
1261     <div class="wishlist-toggle" data-product-handle="mid-autumn-of-fortune-mooncake">
1262       <svg xmlns="https://photoin.io/images/2026/05/28/logo-kvtoto.png" width="24" height="21" viewBox="0 0 24 21" fill="none">
1263   <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.0726 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.
126311233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/>
1264 </svg>
1265 
1266     </div>
1267     <a href="/products/mid-autumn-of-fortune-mooncake">
1268       
1269       <div class="product-card-img-container p-0 position-relative">
1270         
1271         <img class="product-card-img"  lazy="false" src="//outerbloom.com/cdn/shop/files/Mid-Autumn-of-Fortune-Mooncake_de29329d-6ab7-4592-aa00-3e9636d4a323_350x.jpg?v=1755846072" data-src="//outerbloom.com/cdn/shop/files/Mid-Autumn-of-Fortune-Mooncake_de29329d-6ab7-4592-aa00-3e9636d4a323_350x.jpg?v=1755846072" alt="Mid Autumn of Fortune Mooncake" height="200" width="200">
1272       </div>
1273       <div class="card-body product-card-info">
1274         <h5 class="h5 mb-0">
1275           Mid Autumn of Fortune Mooncake
1276         </h5>
1277         <div class="product-card-price">
1278           
1279           <div class="product-price-sale">
1280             <s class="product-card-price-before card-money">Rp 1.188.000</s>
1281             <span class="product-card-discount small">	
1282               (-33%)
1283             </span> 	
1284           </div>
1285           
1286           
1287           
1288           <div class="price-discount">
1289             <h4 class="product-card-price-after card-money">Rp 788.000</h4>
1290           </div>
1291           
1292           
1293           
1294           
1295           
1296         </div>
1297         
1298       </div>
1299     </a>
1300   </div>
1301   
1302 </div>
1303 
1304                   </div>
1305                 
1306               
1307                 
1308                   <div class="swiper-slide card">
1309                     
1310 
1311 
1312 
1313 <div class="products" data-lazy="false">
1314   <div class="bg-products">
1315     <div class="wishlist-toggle" data-product-handle="mid-autumn-festival-mooncake">
1316       <svg xmlns="https://photoin.io/images/2026/05/28/logo-kvtoto.png" width="24" height="21" viewBox="0 0 24 21" fill="none">
1317   <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.0726 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.
131711233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/>
1318 </svg>
1319 
1320     </div>
1321     <a href="/products/mid-autumn-festival-mooncake">
1322       
1323       <div class="product-card-img-container p-0 position-relative">
1324         
1325         <img class="product-card-img"  lazy="false" src="//outerbloom.com/cdn/shop/files/Mid-Autumn-Festival-Mooncake_06ea4f9c-bdaa-49de-b0ba-c3dd60fef351_350x.jpg?v=1755845965" data-src="//outerbloom.com/cdn/shop/files/Mid-Autumn-Festival-Mooncake_06ea4f9c-bdaa-49de-b0ba-c3dd60fef351_350x.jpg?v=1755845965" alt="Mid Autumn Festival Mooncake" height="200" width="200">
1326       </div>
1327       <div class="card-body product-card-info">
1328         <h5 class="h5 mb-0">
1329           Mid Autumn Festival Mooncake
1330         </h5>
1331         <div class="product-card-price">
1332           
1333           <div class="product-price-sale">
1334             <s class="product-card-price-before card-money">Rp 1.288.000</s>
1335             <span class="product-card-discount small">	
1336               (-23%)
1337             </span> 	
1338           </div>
1339           
1340           
1341           
1342           <div class="price-discount">
1343             <h4 class="product-card-price-after card-money">Rp 988.000</h4>
1344           </div>
1345           
1346           
1347           
1348           
1349           
1350         </div>
1351         
1352       </div>
1353     </a>
1354   </div>
1355   
1356 </div>
1357 
1358                   </div>
1359                 
1360               
1361                 
1362                   <div class="swiper-slide card">
1363                     
1364 
1365 
1366 
1367 <div class="products" data-lazy="false">
1368   <div class="bg-products">
1369     <div class="wishlist-toggle" data-product-handle="the-jade-bouquet">
1370       <svg xmlns="https://photoin.io/images/2026/05/28/logo-kvtoto.png" width="24" height="21" viewBox="0 0 24 21" fill="none">
1371   <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.0726 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.
137111233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/>
1372 </svg>
1373 
1374     </div>
1375     <a href="/products/the-jade-bouquet">
1376       
1377       <div class="product-card-img-container p-0 position-relative">
1378         
1379         <img class="product-card-img"  lazy="false" src="//outerbloom.com/cdn/shop/files/The-Jade-Bouquet_350x.jpg?v=1751618030" data-src="//outerbloom.com/cdn/shop/files/The-Jade-Bouquet_350x.jpg?v=1751618030" alt="The Jade Bouquet" height="200" width="200">
1380       </div>
1381       <div class="card-body product-card-info">
1382         <h5 class="h5 mb-0">
1383           The Jade Bouquet
1384         </h5>
1385         <div class="product-card-price">
1386           
1387           <div class="product-price-sale">
1388             <s class="product-card-price-before card-money">Rp 435.000</s>
1389             <span class="product-card-discount small">	
1390               (-34%)
1391             </span> 	
1392           </div>
1393           
1394           
1395           
1396           <div class="price-discount">
1397             <h4 class="product-card-price-after card-money">Rp 285.000</h4>
1398           </div>
1399           
1400           
1401           
1402           
1403           
1404         </div>
1405         
1406       </div>
1407     </a>
1408   </div>
1409   
1410 </div>
1411 
1412                   </div>
1413                 
1414               
1415                 
1416                   <div class="swiper-slide card">
1417                     
1418 
1419 
1420 
1421 <div class="products" data-lazy="false">
1422   <div class="bg-products">
1423     <div class="wishlist-toggle" data-product-handle="the-selena-bouquet">
1424       <svg xmlns="https://photoin.io/images/2026/05/28/logo-kvtoto.png" width="24" height="21" viewBox="0 0 24 21" fill="none">
1425   <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.0726 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.
142511233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/>
1426 </svg>
1427 
1428     </div>
1429     <a href="/products/the-selena-bouquet">
1430       
1431       <div class="product-card-img-container p-0 position-relative">
1432         
1433         <img class="product-card-img"  lazy="false" src="//outerbloom.com/cdn/shop/files/The-Selena-Bouquet_350x.jpg?v=1751618047" data-src="//outerbloom.com/cdn/shop/files/The-Selena-Bouquet_350x.jpg?v=1751618047" alt="The Selena Bouquet" height="200" width="200">
1434       </div>
1435       <div class="card-body product-card-info">
1436         <h5 class="h5 mb-0">
1437           The Selena Bouquet
1438         </h5>
1439         <div class="product-card-price">
1440           
1441           <div class="product-price-sale">
1442             <s class="product-card-price-before card-money">Rp 335.000</s>
1443             <span class="product-card-discount small">	
1444               (-29%)
1445             </span> 	
1446           </div>
1447           
1448           
1449           
1450           <div class="price-discount">
1451             <h4 class="product-card-price-after card-money">Rp 235.000</h4>
1452           </div>
1453           
1454           
1455           
1456           
1457           
1458         </div>
1459         
1460       </div>
1461     </a>
1462   </div>
1463   
1464 </div>
1465 
1466                   </div>
1467                 
1468               
1469                 
1470                   <div class="swiper-slide card">
1471                     
1472 
1473 
1474 
1475 <div class="products" data-lazy="false">
1476   <div class="bg-products">
1477     <div class="wishlist-toggle" data-product-handle="the-viola-bouquet">
1478       <svg xmlns="https://photoin.io/images/2026/05/28/logo-kvtoto.png" width="24" height="21" viewBox="0 0 24 21" fill="none">
1479   <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.0726 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.
147911233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/>
1480 </svg>
1481 
1482     </div>
1483     <a href="/products/the-viola-bouquet">
1484       
1485       <div class="product-card-img-container p-0 position-relative">
1486         
1487         <img class="product-card-img"  lazy="false" src="//outerbloom.com/cdn/shop/files/The-Viola-Bouquet_350x.jpg?v=1751618053" data-src="//outerbloom.com/cdn/shop/files/The-Viola-Bouquet_350x.jpg?v=1751618053" alt="A striking bouquet featuring full pink chrysanthemums and delicate purple asters. It is elegantly wrapped in deep purple paper with a modern black and white striped accent at the base. The arrangement is tied with a pink ribbon bow, creating a full, rounded shape. This sophisticated bouquet is perfect for birthdays, anniversaries, or as a thoughtful thank-you gesture." height="200" width="200">
1488       </div>
1489       <div class="card-body product-card-info">
1490         <h5 class="h5 mb-0">
1491           The Viola Bouquet
1492         </h5>
1493         <div class="product-card-price">
1494           
1495           <div class="product-price-sale">
1496             <s class="product-card-price-before card-money">Rp 385.000</s>
1497             <span class="product-card-discount small">	
1498               (-25%)
1499             </span> 	
1500           </div>
1501           
1502           
1503           
1504           <div class="price-discount">
1505             <h4 class="product-card-price-after card-money">Rp 285.000</h4>
1506           </div>
1507           
1508           
1509           
1510           
1511           
1512         </div>
1513         
1514       </div>
1515     </a>
1516   </div>
1517   
1518 </div>
1519 
1520                   </div>
1521                 
1522               
1523                 
1524                   <div class="swiper-slide card">
1525                     
1526 
1527 
1528 
1529 <div class="products" data-lazy="false">
1530   <div class="bg-products">
1531     <div class="wishlist-toggle" data-product-handle="the-minerva-bouquet">
1532       <svg xmlns="https://photoin.io/images/2026/05/28/logo-kvtoto.png" width="24" height="21" viewBox="0 0 24 21" fill="none">
1533   <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.0726 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.
153311233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/>
1534 </svg>
1535 
1536     </div>
1537     <a href="/products/the-minerva-bouquet">
1538       
1539       <div class="product-card-img-container p-0 position-relative">
1540         
1541         <img class="product-card-img"  lazy="false" src="//outerbloom.com/cdn/shop/files/The-Minerva-Bouquet_350x.jpg?v=1751618061" data-src="//outerbloom.com/cdn/shop/files/The-Minerva-Bouquet_350x.jpg?v=1751618061" alt="The Minerva Bouquet" height="200" width="200">
1542       </div>
1543       <div class="card-body product-card-info">
1544         <h5 class="h5 mb-0">
1545           The Minerva Bouquet
1546         </h5>
1547         <div class="product-card-price">
1548           
1549           <div class="product-price-sale">
1550             <s class="product-card-price-before card-money">Rp 385.000</s>
1551             <span class="product-card-discount small">	
1552               (-25%)
1553             </span> 	
1554           </div>
1555           
1556           
1557           
1558           <div class="price-discount">
1559             <h4 class="product-card-price-after card-money">Rp 285.000</h4>
1560           </div>
1561           
1562           
1563           
1564           
1565           
1566         </div>
1567         
1568       </div>
1569     </a>
1570   </div>
1571   
1572 </div>
1573 
1574                   </div>
1575                 
1576               
1577                 
1578                   <div class="swiper-slide card">
1579                     
1580 
1581 
1582 
1583 <div class="products" data-lazy="false">
1584   <div class="bg-products">
1585     <div class="wishlist-toggle" data-product-handle="congraduations-bouquet">
1586       <svg xmlns="https://photoin.io/images/2026/05/28/logo-kvtoto.png" width="24" height="21" viewBox="0 0 24 21" fill="none">
1587   <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.0726 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.
158711233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/>
1588 </svg>
1589 
1590     </div>
1591     <a href="/products/congraduations-bouquet">
1592       
1593       <div class="product-card-img-container p-0 position-relative">
1594         
1595         <img class="product-card-img"  lazy="false" src="//outerbloom.com/cdn/shop/files/Congraduations-Bouquet_350x.jpg?v=1749545306" data-src="//outerbloom.com/cdn/shop/files/Congraduations-Bouquet_350x.jpg?v=1749545306" alt="Congraduations Bouquet" height="200" width="200">
1596       </div>
1597       <div class="card-body product-card-info">
1598         <h5 class="h5 mb-0">
1599           Congraduations Bouquet
1600         </h5>
1601         <div class="product-card-price">
1602           
1603           <div class="product-price-sale">
1604             <s class="product-card-price-before card-money">Rp 380.000</s>
1605             <span class="product-card-discount small">	
1606               (-25%)
1607             </span> 	
1608           </div>
1609           
1610           
1611           
1612           <div class="price-discount">
1613             <h4 class="product-card-price-after card-money">Rp 285.000</h4>
1614           </div>
1615           
1616           
1617           
1618           
1619           
1620         </div>
1621         
1622       </div>
1623     </a>
1624   </div>
1625   
1626 </div>
1627 
1628                   </div>
1629                 
1630               
1631                 
1632                   <div class="swiper-slide card">
1633                     
1634 
1635 
1636 
1637 <div class="products" data-lazy="false">
1638   <div class="bg-products">
1639     <div class="wishlist-toggle" data-product-handle="grad-gorgeous-bouquet">
1640       <svg xmlns="https://photoin.io/images/2026/05/28/logo-kvtoto.png" width="24" height="21" viewBox="0 0 24 21" fill="none">
1641   <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.0726 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.
164111233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/>
1642 </svg>
1643 
1644     </div>
1645     <a href="/products/grad-gorgeous-bouquet">
1646       
1647       <div class="product-card-img-container p-0 position-relative">
1648         
1649         <img class="product-card-img"  lazy="false" src="//outerbloom.com/cdn/shop/files/Grad-_-Gorgeous-Bouquet_350x.jpg?v=1749545297" data-src="//outerbloom.com/cdn/shop/files/Grad-_-Gorgeous-Bouquet_350x.jpg?v=1749545297" alt="Grad &amp; Gorgeous Bouquet" height="200" width="200">
1650       </div>
1651       <div class="card-body product-card-info">
1652         <h5 class="h5 mb-0">
1653           Grad & Gorgeous Bouquet
1654         </h5>
1655         <div class="product-card-price">
1656           
1657           <div class="product-price-sale">
1658             <s class="product-card-price-before card-money">Rp 380.000</s>
1659             <span class="product-card-discount small">	
1660               (-25%)
1661             </span> 	
1662           </div>
1663           
1664           
1665           
1666           <div class="price-discount">
1667             <h4 class="product-card-price-after card-money">Rp 285.000</h4>
1668           </div>
1669           
1670           
1671           
1672           
1673           
1674         </div>
1675         
1676       </div>
1677     </a>
1678   </div>
1679   
1680 </div>
1681 
1682                   </div>
1683                 
1684               
1685             </div>
1686           </div>
1687         
1688       </div>
1689     </div>
1690   </div>
1691 
1692   <div class="site-overlay" style="display: none"></div>
1693 </div>
1694 
1694<script>
1695   
1696   var swiper = new Swiper('.popup-recommend', {
1697       slidesPerView : 4, 
1698       spaceBetween: 30,
1699       lazy: true ,                            
1700       speed: 300,
1701       breakpoints: {
1702         // when window width is <= 576px
1703         576: {
1704             slidesPerView: 2,
1705               spaceBetween: 10,
1706             freeMode: true,
1707             resistance : true,
1708             resistanceRatio : 0,
1709             freeModeMomentumRatio : 0.45,
1710             freeModeMomentumVelocityRatio : 1.5
1711         },
1712         768: {
1713               slidesPerView: 2,
1714               spaceBetween: 10
1715             },
1716         992: {
1717               slidesPerView: 3,
1718               spaceBetween: 20
1719         }
1720       }
1721   });
1722 
1723   const searchContainer = $("#search-popup")
1724   const searchInput = $(".search-popup")
1725   const result_collection = $('.result_collection')
1726   const result_product = $('.result_product')
1727   const resultsearch = $('.resultsearch')
1728   const resultrecommend = $(".group-recommend")
1729   const moreresult = $(".moreresult")
1730 
1731   searchInput.keyup(function(){
1732     const input = $(this).val()
1733     moreresult.find("p span").text(` “${input}”`)
1734     if(input.length > 2) {
1735       $(".close-search").show()
1736       const url = `https://outerbloom.com/search/suggest.json?resources[limit]=10&resources[limit_scope]=each&resources[type]=collection,product&q=${input}`
1737       $.ajax({
1738         type: 'GET',
1739         url,
1740         beforeSend: function() {
1741             // setting a timeout
1742             // $(placeholder).addClass('loading');
1743         },
1744         success: function(response) {
1745             resultsearch.show()
1746             resultrecommend.hide()
1747             result_collection.html("")
1748             result_product.html("")
1749             const collections = response.resources.results.collections
1750             const products = response.resources.results.products
1751             let collection_length = collections.length
1752             let product_length = products.length
1753             // if(collections.length > 5) {
1754             //   collection_length = 5
1755             // }
1756             // if(products.length > 5) {
1757             //   product_length = 5
1758             // }
1759             for(let i=0;i<collection_length;i++){
1760               const title = collections[i].title
1761               const url = collections[i].url
1762               let html_collection
1763               if(!title.includes('AIA') && !title.includes('AXA') && !title.includes('WOM') && !title.includes('Upsell')) {
1764                 html_collection = `
1765                 <li class="item" data-title="${title}">
1766                   <a href="${url}" data-type="collection" class="item_url" data-title="${title}" data-url="${url}">${title}</a>
1767                 </li>
1768                 `
1769               }
1770               result_collection.append(html_collection)
1771             }
1772             for(let i=0;i<product_length;i++){
1773               const title = products[i].title
1774               const url = products[i].url
1775               const image = products[i].featured_image.url
1776               const vendor = products[i].vendor
1777               let html_product
1778               if(vendor !== 'AIA' && vendor !== 'AXA' && vendor !== 'WOM Finance' && !title.includes('Extra Shipping Cost') && !title.includes('[US]') && !title.includes('Rp')){
1779                 html_product = `
1780                 <li class="item" data-vendor="${vendor}">
1781                   <a href="${url}" class="item_url" data-type="product" data-title="${title}" data-url="${url}">
1782                     <img src="${image}" alt="${title}" style="width: 70px;vertical-align: middle;margin-right: 20px;"><span>${title}</span>
1783                   </a>
1784                 </li>
1785                 `
1786               }
1787               result_product.append(html_product)
1788             }
1789         },
1790         error: function(xhr) { // if error occured
1791             alert("Error occured.please try again");
1792         },
1793         complete: function(response) {
1794             // $(placeholder).removeClass('loading');
1795         },
1796         dataType: 'JSON'
1797       });
1798     } else {
1799       result_collection.html("")
1800       result_product.html("")
1801       
1802       resultsearch.hide()
1803       resultrecommend.show()
1804     }
1805   })
1806 
1807   moreresult.click(function(){
1808     $("#search-btn").trigger("click");
1809   })
1810 
1811   $(".close-search").click(function(){
1812     $(this).hide()
1813     searchInput.val("")
1814     searchInput.focus()
1815     resultsearch.hide()
1816     resultrecommend.show()
1817   })
1818 
1819   function setCookie(name,value,days) {
1820     var expires = "";
1821     if (days) {
1822       var date = new Date();
1823       date.setTime(date.getTime() + (days*24*60*60*1000));
1824       expires = "; expires=" + date.toUTCString();
1825     }
1826     document.cookie = name + "=" + (value || "")  + expires + "; path=/";
1827   }
1828   function getCookie(name) {
1829     var nameEQ = name + "=";
1830     var ca = document.cookie.split(';');
1831     for(var i=0;i < ca.length;i++) {
1832       var c = ca[i];
1833       while (c.charAt(0)==' ') c = c.substring(1,c.length);
1834       if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
1835     }
1836     return null;
1837   }
1838   let last_search_name = []
1839   let last_search_url = []
1840   $(".group-recent").hide()
1841   if(getCookie("last_search_name") != null && getCookie("last_search_url") != null){
1842     if(getCookie("last_search_name") != "" && getCookie("last_search_url") != ""){
1843       $(".group-recent").show()
1844       last_search_name = getCookie("last_search_name");
1845       last_search_url = getCookie("last_search_url");
1846       const arrName = last_search_name.substring(1).split(',').reverse()
1847       const arrUrl = last_search_url.substring(1).split(',').reverse()
1848       console.log(arrName, 'Array Name')
1849       console.log(arrUrl, 'Array Url')
1850       let length = arrName.length
1851       if(arrName.length > 5) {
1852         length = 5
1853       }
1854       for(let n=0;n<length;n++){
1855         let html2 = `<li><svg viewBox="0 0 24 24" xmlns="https://photoin.io/images/2026/05/28/logo-kvtoto.png"><title/><path d="M12.25,2A9.81,9.81,0,0,0,4.77,5.46L3.41,4.25a1,1,0,0,0-1.07-.16A1,1,0,0,0,1.75,5V9a1,1,0,0,0,1,1h4.5a1,1,0,0,0,.93-.64,1,1,0,0,0-.27-1.11L6.26,6.78a7.86,7.86,0,0,1,6-2.78A8,8,0,1,1,4.72,14.67a1,1,0,0,0-1.89.66A10,10,0,1,0,12.25,2Z" fill="#C9C9C9"/><path d="M16,16a1,1,0,0,1-.6-.2l-4-3A1,1,0,0,1,11,12V8a1,1,0,0,1,2,0v3.5l3.6,2.7a1,1,0,0,1,.2,1.4A1,1,0,0,1,16,16Z" fill="#C9C9C9"/></svg><a href="${arrUrl[n]}">${arrName[n]}</a><span data-title="${arrName[n]}" data-url="${arrUrl[n]}"></span></li>`
1856         $(".group-recent ul").append(html2)
1857       }
1858     }
1859   }
1860   console.log(last_search_name, 'Name')
1861   console.log(last_search_url, 'url')
1862   
1863   resultsearch.delegate(".item a", "click", function(){
1864     let name = [last_search_name]
1865     let url = [last_search_url]
1866     name.push($(this).attr('data-title'))
1867     url.push($(this).attr('data-url'))
1868     setCookie("last_search_name",name,7);
1869     setCookie("last_search_url",url,7);
1870   })
1871   
1872   $(".delete-all-history").click(function() {
1873     setCookie("last_search_name",null,0);
1874     setCookie("last_search_url",null,0);
1875     $(".last-search").hide();
1876     setTimeout(function(){
1877       location.reload();
1878     }, 500);
1879   })
1880   
1881   $("#search-trigger").click(function(){
1882     search_open()
1883   })
1884   $(".icon-search-mobile").click(function(){
1885     search_open()
1886   })
1887   $(".search-header svg").click(function(){
1888     search_close()
1889   })
1890   $(".icon-key-mobile").click(function(){
1891     search_close()
1892   })
1893 
1894   function search_open() {
1895     $("body").addClass("search-popup-open")
1896     $("#nav-mobile-icon, .search-header label, .icon-search-mobile").hide()
1897     $("#search-popup, .search-header svg, .icon-key-mobile").show()
1898     $(".search-popup").focus()
1899     $('.popup-recommend')[0].swiper.update();
1900   }
1901   function search_close() {
1902     $("body").removeClass("search-popup-open")
1903     $("#nav-mobile-icon, .search-header label, .icon-search-mobile").show()
1904     $("#search-popup, .search-header svg, .icon-key-mobile").hide()
1905     searchInput.val("")
1906     resultsearch.hide()
1907     resultrecommend.show()
1908   }
1909 
1910   $(".site-overlay").click(function(){
1911     search_close()
1912   })
1913 </script>
1913
1914 
1915 </div>
1916     </div>
1917 
1918     <div id="PageContainer" class="is-moved-by-drawerx" style="background-color: #000000;">
1919       <main class="main-content pt-0" role="main">
1920         
1921           <div id="breadcrumbProduct" class="d-none d-lg-block">
1922             <style>
1923   #breadcrumbProduct {
1924     padding: 20px 0;
1925   }
1926   #breadcrumbProduct ul {
1927       display: flex;
1928       padding: 0;
1929       list-style: none;
1930       margin: 0;
1931       gap: 12px;
1932   }
1933   #breadcrumbProduct ul li {
1934     text-transform: uppercase;
1935     margin: 0;
1936     font-size: 12px;
1937 }
1938   #breadcrumbProduct ul li a {
1939     color: #757575;
1940   }
1941 
1942   #breadcrumbProduct ul li svg {
1943     width: 10px;
1944     height: 10px;
1945     padding: 0;
1946     color: #757575;
1947     vertical-align: middle;
1948   }
1949 </style>
1950 <div class="container" style="color: #ff0000;">
1951   <ul role="navigation" aria-label="breadcrumbs">
1952     <li><a href="https://kvtotomatoa.com/" style="color: #ff0000;">KVTOTO</a></li>
1953     <li><svg xmlns="https://photoin.io/images/2026/05/28/logo-kvtoto.png" width="7" height="10" viewBox="0 0 7 10" fill="none">
1954     <path d="M1.51673 0.0583496L6.2334 4.77502L1.51673 9.49168L0.933398 8.90002L5.0584 4.77502L0.933398 0.650016L1.51673 0.0583496Z" fill="#757575"/>
1955 </svg></li>
1956       <li>KVTOTO</li>
1957       <li>PASARAN TOGEL</li>
1958       <li>PREDIKSI TOGEL</li>
1959       <li>LINK TOGEL</li>
1960     
1961   </ul>
1962 </div>
1963 
1964           </div>
1965         
1966 
1966<script type="application/ld+json">
1967 {
1968   "@context": "https://schema.org",
1969   "@type": "Product",
1970   "name": "KVTOTO : Situs Login Pasaran Togel Online Terlengkap & Terpercaya",
1971   "image": "https://photoin.io/images/2026/05/16/deposit-slot-ba.png",
1972   "description": "KVTOTO hadir sebagai situs login pasaran togel online terlengkap dan terpercaya dengan akses cepat, informasi pasaran terbaru, serta layanan yang mudah digunakan setiap hari.",
1973   "brand": {
1974     "@type": "Brand",
1975     "name": "KVTOTO"
1976   },
1977   "sku": "KVTOTO",
1978   "mpn": "KVTOTO",
1979   "url": "https://kvtotomatoa.com/",
1980   "offers": {
1981     "@type": "Offer",
1982     "url": "https://kvtotomatoa.com/",
1983     "priceCurrency": "USD",
1984     "price": "10.00",
1985     "priceValidUntil": "2025-12-25",
1986     "itemCondition": "https://schema.org/NewCondition",
1987     "availability": "https://schema.org/InStock",
1988     "seller": {
1989       "@type": "Organization",
1990       "name": "KVTOTO"
1991     }
1992   },
1993   "aggregateRating": {
1994     "@type": "AggregateRating",
1995     "ratingValue": "5.0",
1996     "reviewCount": 858
1997   },
1998   "review": [
1999     {
2000       "@type": "Review",
2001       "reviewRating": {
2002         "@type": "Rating",
2003         "ratingValue": "5",
2004         "bestRating": "5"
2005       },
2006       "author": {
2007         "@type": "Person",
2008         "name": "Hanabi"
2009       }
2010     },
2011     {
2012       "@type": "Review",
2013       "reviewRating": {
2014         "@type": "Rating",
2015         "ratingValue": "5",
2016         "bestRating": "5"
2017       },
2018       "author": {
2019         "@type": "Person",
2020         "name": "Hayabusa"
2021       }
2022     }
2023   ]
2024 }
2025 </script>
2025<script type="application/ld+json">
2026 {
2027   "@context": "https://schema.org",
2028   "@type": "BreadcrumbList",
2029   "itemListElement": [
2030     {
2031       "@type": "ListItem",
2032       "position": 1,
2033       "name": "KVTOTO",
2034       "item": "https://kvtotomatoa.com/"
2035     },
2036     {
2037       "@type": "ListItem",
2038       "position": 2,
2039       "name": "KV TOTO",
2040       "item": "https://kvtotomatoa.com/"
2041     },
2042     {
2043       "@type": "ListItem",
2044       "position": 3,
2045       "name": "KVTOTO LOGIN",
2046       "item": "https://kvtotomatoa.com/"
2047     },
2048     {
2049       "@type": "ListItem",
2050       "position": 4,
2051       "name": "TOGEL ONLINE",
2052       "item": "https://kvtotomatoa.com/"
2053     },
2054     {
2055       "@type": "ListItem",
2056       "position": 5,
2057       "name": "PASARAN TOGEL",
2058       "item": "https://kvtotomatoa.com/"
2059     },
2060     {
2061       "@type": "ListItem",
2062       "position": 6,
2063       "name": "TOGEL",
2064       "item": "https://kvtotomatoa.com/"
2065     },
2066     {
2067       "@type": "ListItem",
2068       "position": 7,
2069       "name": "LINK PASARAN TOGEL",
2070       "item": "https://kvtotomatoa.com/"
2071     },
2072     {
2073       "@type": "ListItem",
2074       "position": 8,
2075       "name": "KVTOTO : Situs Login Pasaran Togel Online Terlengkap & Terpercaya",
2076       "item": "https://kvtotomatoa.com/"
2077     }
2078   ]
2079 }
2080 </script>
2080
2081
2082 <!--faq-->
2083
2084 
2084<script type="application/ld+json" id="faq-schema">
2085{
2086  "@context": "https://schema.org",
2087  "@type": "FAQPage",
2088  "mainEntity": [
2089    {
2090      "@type": "Question",
2091      "name": "1. Apa itu KVTOTO?",
2092      "acceptedAnswer": {
2093        "@type": "Answer",
2094        "text": "KVTOTO merupakan situs login pasaran togel online yang menghadirkan beragam informasi pasaran dalam satu akses. Pengguna dapat menemukan jadwal, hasil keluaran terbaru, serta informasi pasaran yang disusun secara praktis dan mudah dipahami."
2095      }
2096    },
2097    {
2098      "@type": "Question",
2099      "name": "2. Mengapa KVTOTO dikenal sebagai situs pasaran togel online terlengkap?",
2100      "acceptedAnswer": {
2101        "@type": "Answer",
2102        "text": "KVTOTO menghadirkan berbagai pilihan pasaran togel online yang diperbarui secara berkala. Informasi jadwal dan hasil keluaran disusun dengan rapi sehingga pengguna lebih mudah mengikuti perkembangan pasaran melalui satu platform."
2103      }
2104    },
2105    {
2106      "@type": "Question",
2107      "name": "3. Apa keunggulan login melalui KVTOTO?",
2108      "acceptedAnswer": {
2109        "@type": "Answer",
2110        "text": "KVTOTO menawarkan proses login yang praktis, tampilan responsif, serta navigasi sederhana. Pengguna dapat mengakses berbagai informasi pasaran melalui perangkat desktop maupun smartphone dengan lebih nyaman."
2111      }
2112    },
2113    {
2114      "@type": "Question",
2115      "name": "4. Apakah KVTOTO dapat diakses selama 24 jam?",
2116      "acceptedAnswer": {
2117        "@type": "Answer",
2118        "text": "Ya, KVTOTO menyediakan akses online selama 24 jam sehingga pengguna dapat memantau jadwal, informasi pasaran, dan pembaruan hasil terbaru kapan saja sesuai kebutuhan."
2119      }
2120    },
2121    {
2122      "@type": "Question",
2123      "name": "5. Mengapa KVTOTO menjadi pilihan untuk mencari informasi pasaran togel online?",
2124      "acceptedAnswer": {
2125        "@type": "Answer",
2126        "text": "KVTOTO mengutamakan kemudahan akses, kelengkapan informasi pasaran, pembaruan rutin, serta tampilan yang sederhana. Kombinasi tersebut membuat informasi penting dapat ditemukan dengan lebih cepat tanpa harus berpindah ke banyak halaman."
2127      }
2128    }
2129  ]
2130}
2131</script>
2131
2132 <!-- ORGANIZATION -->
2133<script type="application/ld+json">
2134{
2135  "@context": "https://schema.org",
2136  "@type": "Organization",
2137  "@id": "https://kvtotomatoa.com/#organization",
2138  "name": "KVTOTO",
2139  "url": "https://kvtotomatoa.com/",
2140  "logo": {
2141    "@type": "ImageObject",
2142    "url": "https://photoin.io/images/2026/05/28/logo-kvtoto.png"
2143  },
2144  "contactPoint": {
2145    "@type": "ContactPoint",
2146    "telephone": "+62-8101-111-1111",
2147    "contactType": "customer support",
2148    "areaServed": "ID",
2149    "availableLanguage": [
2150      "Indonesian",
2151      "English"
2152    ]
2153  }
2154}
2155</script>
2155
2156
2157
2158<!-- VIDEO OBJECT -->
2159<script type="application/ld+json">
2160{
2161  "@context": "https://schema.org",
2162  "@type": "VideoObject",
2163  "name": "KVTOTO : Situs Login Pasaran Togel Online Terlengkap & Terpercaya",
2164  "description": "KVTOTO hadir sebagai situs login pasaran togel online terlengkap dan terpercaya dengan akses cepat, informasi pasaran terbaru, serta layanan yang mudah digunakan setiap hari.",
2165  "thumbnailUrl": [
2166    "https://photoin.io/images/2026/05/16/deposit-slot-ba.png"
2167  ],
2168  "uploadDate": "2025-09-28T04:19:10-04:00",
2169  "duration": "PT2M48S",
2170  "contentUrl": "URL-VIDEO-ASLI-DI-SINI"
2171}
2172</script>
2172
2173
2174
2175<!-- BREADCRUMB -->
2176<script type="application/ld+json">
2177{
2178  "@context": "https://schema.org",
2179  "@type": "BreadcrumbList",
2180  "itemListElement": [
2181    {
2182      "@type": "ListItem",
2183      "position": 1,
2184      "name": "KVTOTO",
2185      "item": "https://kvtotomatoa.com/"
2186    }
2187  ]
2188}
2189</script>
2189
2190
2191
2192<!-- WEBSITE + APPLICATION -->
2193<script type="application/ld+json">
2194{
2195  "@context": "https://schema.org",
2196  "@graph": [
2197    {
2198      "@type": "Organization",
2199      "@id": "https://kvtotomatoa.com/#org",
2200      "name": "KVTOTO",
2201      "url": "https://kvtotomatoa.com/",
2202      "logo": {
2203        "@type": "ImageObject",
2204        "url": "https://photoin.io/images/2026/05/28/logo-kvtoto.png"
2205      }
2206    },
2207    {
2208      "@type": "WebSite",
2209      "@id": "https://kvtotomatoa.com/#website",
2210      "url": "https://kvtotomatoa.com/",
2211      "name": "KVTOTO",
2212      "description": "KVTOTO : Situs Login Pasaran Togel Online Terlengkap & Terpercaya",
2213      "publisher": {
2214        "@id": "https://kvtotomatoa.com/#org"
2215      },
2216      "inLanguage": "id-ID"
2217    },
2218    {
2219      "@type": "SoftwareApplication",
2220      "@id": "https://kvtotomatoa.com/#app",
2221      "name": "KVTOTO",
2222      "url": "https://kvtotomatoa.com/",
2223      "applicationCategory": "GameApplication",
2224      "operatingSystem": "Android, iOS, Windows",
2225      "offers": {
2226        "@type": "Offer",
2227        "price": "0",
2228        "priceCurrency": "IDR"
2229      },
2230      "aggregateRating": {
2231        "@type": "AggregateRating",
2232        "ratingValue": "4.9",
2233        "ratingCount": "62595",
2234        "bestRating": "5",
2235        "worstRating": "1"
2236      }
2237    }
2238  ]
2239}
2240</script>
2240
2241         
2242 <div id="shopify-section-Product" class="shopify-section product-section mt-0"><link href="https://tahanpukul.info/outerbloom-global.css" rel="stylesheet" type="text/css" media="all" />
2243 
2244 
2245 <style>
2246     .bg-card {
2247     background-color: #000000;
2248 }
2249     </style>
2250 
2251 <!-- /templates/product.liquid -->
2252 
2253 
2254 <!-- <div itemscope itemtype="http://schema.org/Product"> -->
2255 
2256 
2257 <div class="product-standing-flower" data-product-type="flowerBoard">
2258   <meta itemprop="url" content="https://kvtotomatoa.com/">
2259   <meta itemprop="image" content="https://photoin.io/images/2026/05/16/deposit-slot-ba.png">
2260 
2261   
2262   
2263   <input id="data-sku" type="hidden" value="OBVSTF1086">
2264     <div id="product-top" class="container">
2265       <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;">
2266         <div id="product-image" class="col-lg-7 text-center">
2267           <div class="product-image">
2268             <div class="row no-gutters">
2269   
2270   <div id="product-featured-image" class="row w-100">
2271     
2272       <div id="thumb-image-product" class="col-lg-2 col-12 d-none d-lg-block">
2273         
2274         <div class="swiper-container gallery-thumbs" style="min-height: 500px">
2275           <ul class="list-unstyled slider swiper-wrapper slider-nav ProductThumbs thumbnails" id="ProductThumbsx">
2276 
2277                   <li class="swiper-slide" data-type="image">
2278                     <a
2279                       href="files/Blossom-Shine-WM.jpg"
2280                       data-standard="https://photoin.io/images/2026/05/16/deposit-slot-ba.png"
2281                       data-image="files/Blossom-Shine-WM.jpg"
2282                       data-position="1"
2283                       class="product-single__thumbnail"
2284                     >
2285                       <img
2286                         class="lazyload w-100"
2287                         src="https://photoin.io/images/2026/05/16/deposit-slot-ba.png"
2288                         alt="KVTOTO : Situs Login Pasaran Togel Online Terlengkap & Terpercaya"
2289                         width=""
2290                         height=""
2291                       >
2292                     </a>
2293                   </li>
2294                 
2295               
2296             
2297 
2298                   <li class="swiper-slide" data-type="image">
2299                     <a
2300                       href="https://photoin.io/images/2026/05/16/deposit-slot-ba.png"
2301                       data-standard="https://photoin.io/images/2026/05/16/deposit-slot-ba.png"
2302                       data-image="https://photoin.io/images/2026/05/16/deposit-slot-ba.png"
2303                       data-position="2"
2304                       class="product-single__thumbnail"
2305                     >
2306                       <img
2307                         class="lazyload w-100"
2308                         src="https://photoin.io/images/2026/05/16/deposit-slot-ba.png"
2309                         alt="KVTOTO : Situs Login Pasaran Togel Online Terlengkap & Terpercaya"
2310                         width=""
2311                         height=""
2312                       >
2313                     </a>
2314                   </li>
2315                 
2316               
2317             
2318 
2319                   <li class="swiper-slide" data-type="image">
2320                     <a
2321                       href="files/Blossom-Shine_3-WM.jpg"
2322                       data-standard="https://photoin.io/images/2026/05/16/deposit-slot-ba.png"
2323                       data-image="files/Blossom-Shine_3-WM.jpg"
2324                       data-position="3"
2325                       class="product-single__thumbnail"
2326                     >
2327                       <img
2328                         class="lazyload w-100"
2329                         src="https://photoin.io/images/2026/05/16/deposit-slot-ba.png"
2330                         alt="KVTOTO : Situs Login Pasaran Togel Online Terlengkap & Terpercaya"
2331                         width=""
2332                         height=""
2333                       >
2334                     </a>
2335                   </li>
2336                 
2337               
2338             
2339 
2340                   <li class="swiper-slide" data-type="image">
2341                     <a
2342                       href="files/Blossom-Shine_4.jpg"
2343                       data-standard="https://photoin.io/images/2026/05/16/deposit-slot-ba.png"
2344                       data-image="files/Blossom-Shine_4.jpg"
2345                       data-position="4"
2346                       class="product-single__thumbnail"
2347                     >
2348                       <img
2349                         class="lazyload w-100"
2350                         src="https://photoin.io/images/2026/05/16/deposit-slot-ba.png"
2351                         alt="KVTOTO : Situs Login Pasaran Togel Online Terlengkap & Terpercaya"
2352                         width=""
2353                         height=""
2354                       >
2355                     </a>
2356                   </li>
2357                 
2358               
2359             
2360           </ul>
2361         </div>
2362         
2363       </div>
2364     
2365     <div
2366       id="featured-image-product"
2367       class="col-lg-10 col-12 d-none d-lg-block"
2368     >
2369       <div class="swiper-container gallery-top">
2370         <div class="swiper-slide product-single__image">
2371           
2372 <div class="product-single__photos slider slider-for" id="ProductPhoto">
2373   
2374 
2375   <div class="easyzoom easyzoom--overlay easyzoom--with-thumbnails">
2376     <a href="https://photoin.io/images/2026/05/16/deposit-slot-ba.png">
2377       <img
2378         src="https://photoin.io/images/2026/05/16/deposit-slot-ba.png"
2379         alt="KVTOTO : Situs Login Pasaran Togel Online Terlengkap & Terpercaya"
2380         id="ProductPhotoImg"
2381         class="lazyload"
2382       >
2383       
2384     </a>
2385   </div>
2386 </div>
2387 
2388         </div>
2389         <div class="swiper-slide product-single__video" style="display: none">
2390           <video
2391             src="https://cdn.shopify.com/videos/c/vp/05d379ea115d41c2bd0f7d08b1496bd9/05d379ea115d41c2bd0f7d08b1496bd9.HD-1080p-7.2Mbps-24002195.mp4"
2392             playsinline
2393             loop
2394             muted
2395           ></video>
2396         </div>
2397       </div>
2398     </div>
2399   </div>
2400 
2401   <div id="featured-image-product2" class="col-12 d-lg-none">
2402     <div class="swiper-container gallery-mobile">
2403       <ul class="swiper-wrapper">
2404 <li class="swiper-slide img">
2405               
2406                 <img
2407                   class="swiper-lazy"
2408                   src="https://photoin.io/images/2026/05/16/deposit-slot-ba.png"
2409                   data-src="https://photoin.io/images/2026/05/16/deposit-slot-ba.png"
2410                   alt="KVTOTO : Situs Login Pasaran Togel Online Terlengkap & Terpercaya"
2411                   width=""
2412                   height=""
2413                 >
2414               
2415             </li>
2416           
2417         
2418 <li class="swiper-slide img">
2419               
2420                 <img
2421                   class="swiper-lazy"
2422                   src="https://photoin.io/images/2026/05/16/deposit-slot-ba.png"
2423                   data-src="https://photoin.io/images/2026/05/16/deposit-slot-ba.png"
2424                   alt="KVTOTO : Situs Login Pasaran Togel Online Terlengkap & Terpercaya"
2425                   width=""
2426                   height=""
2427                 >
2428               
2429             </li>
2430           
2431         
2432 <li class="swiper-slide img">
2433               
2434                 <img
2435                   class="swiper-lazy"
2436                   src="https://photoin.io/images/2026/05/16/deposit-slot-ba.png"
2437                   data-src="https://photoin.io/images/2026/05/16/deposit-slot-ba.png"
2438                   alt="KVTOTO : Situs Login Pasaran Togel Online Terlengkap & Terpercaya"
2439                   width=""
2440                   height=""
2441                 >
2442               
2443             </li>
2444           
2445         
2446 <li class="swiper-slide img">
2447               
2448                 <img
2449                   class="swiper-lazy"
2450                   src="https://photoin.io/images/2026/05/16/deposit-slot-ba.png"
2451                   data-src="https://photoin.io/images/2026/05/16/deposit-slot-ba.png"
2452                   alt="KVTOTO : Situs Login Pasaran Togel Online Terlengkap & Terpercaya"
2453                   width=""
2454                   height=""
2455                 >
2456               
2457             </li>
2458           
2459         
2460       </ul>
2461       
2462         <div class="swiper-button-prev"><svg class="icon icon-chevron-left" xmlns="https://photoin.io/images/2026/05/28/logo-kvtoto.png" width="7" height="12" viewBox="0 0 7 12"> <circle cx="60%" cy="50%" r="12" fill="transparent" /> <path d="M6.35355339,10.6464466 C6.54881554,10.8417088 6.54881554,11.1582912 6.35355339,11.3535534 C6.15829124,11.5488155 5.84170876,11.5488155 5.64644661,11.3535534 L0.646446609,6.35355339 C0.451184464,6.15829124 0.451184464,5.84170876 0.646446609,5.64644661 L5.64644661,0.646446609 C5.84170876,0.451184464 6.15829124,0.451184464 6.35355339,0.646446609 C6.54881554,0.841708755 6.54881554,1.15829124 6.35355339,1.35355339 L1.70710678,6 L6.35355339,10.6464466 Z"/> </svg></div>
2463         <div class="swiper-button-next"><svg xmlns="https://photoin.io/images/2026/05/28/logo-kvtoto.png" width="7" height="10" viewBox="0 0 7 10" fill="none">
2464     <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"/>
2465 </svg></div>
2466 
2467         <!-- Add Pagination -->
2468         <div class="swiper-pagination"></div>
2469       
2470     </div>
2471   </div>
2472 
2473   <div class="product-m-pageleb-video col-12 text-center d-lg-none">
2474     <!-- product video -->
2475     <style>
2476       .view-video{display:block; margin:auto; padding:5px 10px;font-size:16px;font-weight:bold;border:2px solid #ffffff;background:#fff;}
2477       .view-video .icon-play{fill:#ffffff;vertical-align: middle;}
2478       .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;}
2479       .close-video{position:absolute;right:9px; top:8%;z-index:2;padding:5px;}
2480       .close-video .icon{width:30px;height:30px;}
2481       /*responsive iframe */
2482       .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);}
2483       .video-container iframe {position: absolute;top:60%;left: 0;width: 100%;height: 100%;}
2484 
2485       .youtube {
2486         background-color: #000;
2487         margin-bottom: 30px;
2488         position: relative;
2489         padding-top: 56.25%;
2490         overflow: hidden;
2491         cursor: pointer;
2492         width: 100%;
2493       }
2494       .swiper-slide .youtube {
2495         max-width: 480px;
2496       }
2497       .youtube img {
2498         width: 100%;
2499         top: -16.82%;
2500         left: 0;
2501         opacity: 0.7;
2502       }
2503       .youtube .play-button {
2504         width: 90px;
2505         height: 60px;
2506         background-color: #333;
2507         box-shadow: 0 0 30px rgba( 0,0,0,0.6 );
2508         z-index: 1;
2509         opacity: 0.8;
2510         border-radius: 6px;
2511       }
2512       .youtube .play-button:before {
2513         content: "";
2514         border-style: solid;
2515         border-width: 15px 0 15px 26.0px;
2516         border-color: transparent transparent transparent #fff;
2517       }
2518       .youtube img,
2519       .youtube .play-button {
2520         cursor: pointer;
2521       }
2522       .youtube img,
2523       .youtube iframe,
2524       .youtube .play-button,
2525       .youtube .play-button:before {
2526         position: absolute;
2527       }
2528       .youtube .play-button,
2529       .youtube .play-button:before {
2530         top: 50%;
2531         left: 50%;
2532         transform: translate3d( -50%, -50%, 0 );
2533       }
2534       .youtube iframe {
2535         height: 100%;
2536         width: 100%;
2537         top: 0;
2538         left: 0;
2539       }
2540     </style>
2541 
2542     
2543   </div>
2544 </div>
2545 
2546 <div class="product-desc-add position-relative d-none d-lg-block m-0">
2547 
2548 </div>
2549 
2550 
2550<script>
2551   if ($(window).width() < 991) {
2552     var direction = 'horizontal'
2553   } else {
2554     var direction = 'vertical'
2555     $(".gallery-thumbs").height($("#ProductPhotoImg").height())
2556   }
2557   var swiper = new Swiper('.gallery-thumbs', {
2558     
2559     direction,
2560     slidesPerView: 4.5,
2561     spaceBetween: 12,
2562     navigation: {
2563       nextEl: '.swiper-button-next',
2564       prevEl: '.swiper-button-prev',
2565     }
2566   });
2567   
2568   var swiper = new Swiper('.gallery-mobile', {
2569     //loop: true,
2570     lazy: true,
2571     speed: 300,
2572     resistance : true,
2573     resistanceRatio : 0,
2574     freeModeMomentumRatio : 0.45,
2575     freeModeMomentumVelocityRatio : 1.5,
2576     navigation: {
2577       nextEl: '.swiper-button-next',
2578       prevEl: '.swiper-button-prev',
2579     },
2580     pagination: {
2581       el: '.swiper-pagination'
2582     },
2583     useCSS3Transforms: false,
2584     loop: false,
2585     on: {
2586       init: function () {
2587         console.log('swiper initialized');
2588         var currentVideo =  $("[data-swiper-slide-index=" + this.realIndex + "]").find("video");
2589         currentVideo.trigger('play');
2590       },
2591     },
2592   });
2593 
2594   /* GET ALL VIDEOS */
2595   var sliderVideos = $(".swiper-slide video");
2596   
2597   /* SWIPER API - Event will be fired after animation to other slide (next or previous) */
2598   swiper.on('slideChange', function () {
2599     console.log('slide changed');
2600     /* stop all videos  */
2601     sliderVideos.each(function( index ) {
2602       this.currentTime = 0;
2603     });
2604   
2605     /* SWIPER GET CURRENT AND PREV SLIDE (AND The VIDEO INSIDE) */
2606     var prevVideo =  $(`[data-swiper-slide-index="${this.previousIndex}]"`).find("video");
2607     var currentVideo =  $(`[data-swiper-slide-index="${this.realIndex}"]`).find("video");
2608     prevVideo.trigger('stop');
2609     currentVideo.trigger('play');
2610   });
2611   
2612 
2613   $("[data-video]").click(function(){
2614     const file = $(this).data("video")
2615     $(".product-single__video").show()
2616     $(".product-single__image").hide()
2617     $(".product-single__video").find("video").attr("src", file)
2618     $(".product-single__video").find("video")[0].play();
2619   })
2620   $("[data-image]").click(function(){
2621     $(".product-single__video").hide()
2622     $(".product-single__image").show()
2623     $(".product-single__video").find("video")[0].pause();
2624   })
2625 
2626   $("#product-image .swiper-slide").each(function(){
2627     let width = $(this).width()
2628     $(this).height(width)
2629   })
2630 
2631   $(window).resize(function() {
2632     $("#product-image .swiper-slide").each(function(){
2633       let width = $(this).width()
2634       $(this).height(width)
2635     })
2636   })
2637 </script>
2637
2638 
2639           </div>
2640 
2641   
2642     <div class="grid__item_product-info mb-3">
2643       <div class="c-pdp-product-info">
2644         <ul class="c-pdp-product-info__service c-pdp-product-info__service--active">
2645        <!-- artikel -->
2646<li>
2647   <strong>KVTOTO</strong> hadir sebagai salah satu situs login pasaran togel online yang menawarkan akses praktis serta pilihan pasaran yang lengkap dalam satu platform. Pengguna dapat menemukan berbagai informasi penting mulai dari jadwal pasaran, hasil keluaran terbaru, hingga pembaruan data yang disusun secara jelas dan mudah dipahami. Tampilan yang responsif serta navigasi sederhana membuat KVTOTO semakin dikenal sebagai pilihan bagi pengguna yang ingin mengakses informasi pasaran secara cepat melalui desktop maupun perangkat mobile.
2648</li>
2649<br>
2650<li>
2651   Di tengah banyaknya situs pasaran togel online, <strong>KVTOTO</strong> berupaya menghadirkan pengalaman akses yang lebih nyaman melalui informasi pasaran yang terorganisir dan diperbarui secara berkala. Beragam pilihan pasaran tersedia untuk memudahkan pengguna menemukan informasi sesuai kebutuhan, sementara sistem akses yang praktis membantu setiap halaman dapat dijelajahi dengan lebih cepat dan efisien.
2652</li>
2653         </ul>
2654       </div>
2655     </div>
2656   
2657 
2658 
2659 
2660 
2661 <style>
2662   .c-pdp-product-info__service--active {
2663     font-size: 12px;
2664     padding-left: 10px;
2665     text-align: left;
2666     max-width: 550px;
2667     margin: auto;
2668     color: #fff;
2669   }
2670   .c-pdp-product-info__service--active li {
2671     list-style: disc;
2672   }
2673   .c-pdp-product-info {
2674     background-color: #000000;
2675     padding: 12px;
2676     margin: 0;
2677   }
2678   .freeship em {
2679     font-style: italic;
2680     font-size: 12px !important;
2681   }
2682 
2683 
2684 </style>
2685 
2686 
2686<script>
2687   $(document).ready(function(){
2688     if ( $(".c-pdp-product-info__service li").length == 1 ) {
2689       $(".c-pdp-product-info__service").addClass("no-bullet");
2690       $(".c-pdp-product-info__service li").addClass("no-bullets");
2691     }
2692   });
2693 </script>
2693
2694 
2695   
2696 
2697 
2698 
2699   
2700 
2701   
2702 
2703 
2704             
2705           
2706         </div>
2707         <div id="product-meta" class="col-lg-5 p-0">
2708           <div class="product-meta">
2709             <style>
2710   .product-meta--review {margin-top:10px}
2711   .freeship * {font-size: 14px !important;font-style: normal;}
2712 </style>
2713 <h1 itemprop="name" class="mb-2" style="color: rgb(255 14 0); font-weight: bold;">KVTOTO : Situs Login Pasaran Togel Online Terlengkap & Terpercaya</h1>
2714 
2715 <div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
2716   <meta itemprop="priceCurrency" content="IDR">
2717 
2718   <link itemprop="availability" href="https://schema.org/InStock">
2719   
2719<script
2720     type="text/javascript"
2721     src="//platform-api.sharethis.com/js/sharethis.js#property=5acdc0aa3ef3c0001396fd50&product=custom-share-buttons"
2722     async="async"
2723   ></script>
2723
2724   
2725 
2726   
2727 
2728   <span class="visually-hidden">Translation missing: en.products.general.regular_price</span>
2729   
2730     <span class="visually-hidden">Translation missing: en.products.general.sale_price</span>
2731   
2732   <div class="row no-gutters mb-3">
2733     <span
2734       id="ProductPrice"
2735       class="h2 ProductPrice"
2736       itemprop="price"
2737       content="835000" style="color: #ffffff;"
2738     >
2739       Rp 5.000
2740     </span>
2741     <div class="discount-product-detail">
2742       <p id="ComparePrice" class="ComparePrice mt-2 mt-lg-0">
2743         Rp 10.000
2744       </p>
2745       <span class=" tag-discount">
2746         
2747           
2748           <span id="newDiscount" class="product-tag persentase-discount hide"> 
2749       (90%)
2750       </span><br>
2751         
2752       </span>
2753     </div>
2754   </div>
2755 
2756   <div class="row no-gutters meta-sds">
2757     <div class="col-12 mb-2 mb-lg-0 stock-info">
2758       
2759       
2760       <span
2761         id="ProductStock-Product"
2762         class="product-single__stock mb-2 hide"
2763       >
2764         
2765           
2766             
2767               
2768               Barang dikirim pada 
2769             
2770           
2771         
2772       </span>
2773 
2774       <style>
2775     .short-desc-desktop {
2776         margin-bottom: 2rem;
2777         color: white;
2778     }
2779     .short-desc ul li:nth-child(n + 4) {
2780         display: none;
2781     }
2782     .short-desc ul li.showList:nth-child(n + 4) {
2783         display: list-item;
2784     }
2785     label.more {
2786         display: none;
2787     }
2788     label.more.showMe {
2789         display: block;
2790         font-size: 12px;
2791         text-transform: uppercase;
2792         font-weight: 700;
2793         cursor: pointer;
2794     }
2795 </style>
2796 
2797     <div class="short-desc-desktop d-none d-lg-block">
2798         <div class="short-desc">
2799            
2800 <p>KVTOTO hadir sebagai situs login pasaran togel online terlengkap dan terpercaya dengan akses cepat, informasi pasaran terbaru, serta layanan yang mudah digunakan setiap hari.</p>
2801         </div>
2802         <label class="more">Show More →</label>
2803     </div><br>
2804 
2805 
2806 
2806<script>
2807     var liCount;
2808     $(document).ready(function () {
2809         $(".short-desc ul").each(function() {
2810             liCount = $(this).children("li").length;
2811             if (liCount > 3) {
2812                 $(this).parent(".short-desc").next(".more").addClass("showMe");
2813             }
2814         });
2815 
2816         $(".more").click(function () {
2817             //$(".short-desc").find("li").addClass("showList");
2818             // $(this).hide();
2819             $("#product-desc").find("ul").show()
2820             $('html, body').animate({
2821                 scrollTop: $("#product-desc").offset().top - 250
2822             }, 2000);
2823             $("#product-desc").css("height","auto");
2824             $("#more_content").remove();
2825             $(".product-spec").append("<div id='less_content' class='readmore'><span class='less_content'>Less</span></div>")
2826         });
2827     });
2828 </script>
2828
2829 
2830       
2831     </div>
2832   </div>
2833 
2834   <div id="purchaseProduct">
2835   
2836   
2837 
2838 
2839 <style>
2840   .variant-metafield {
2841     display: block!important;
2842     width: 1px;
2843     padding: 0;
2844     border-color: #fff;
2845   }
2846   .select2-results__option[aria-disabled] {
2847     display: none;
2848   }
2849 
2850   .towel-bordir {
2851     width: 100%;
2852     display: flex;
2853     align-items: center;
2854     justify-content: space-around;
2855   }
2856 </style>
2857 
2858 
2859 
2860 
2861 
2861<script>
2862   
2863   
2864 </script>
2864
2865 
2866 
2867 
2868 
2869 
2870 
2871 <select
2872   name="id[]"
2873   id="productSelect"
2874   class="product-single__variants ignore hide hide"
2875 >
2876   
2877     
2878       
2879       <option
2880         
2881           selected="selected"
2882         
2883         data-sku="OBVSTF1086"
2884         value="44083045826775"
2885       >
2886         Default Title
2887       </option>
2888 
2889     
2890   
2891 </select>
2892 
2893 
2893<script src="//outerbloom.com/cdn/shop/t/138/assets/jquery.magnific-popup.min.js?v=184369421263510081681752652422" type="text/javascript"></script>
2893
2894 
2895 
2895<script>
2896   $('.size-chart-open-popup').magnificPopup({
2897     type:'inline',
2898     midClick: true
2899   });
2900 </script>
2900
2901 
2902   
2903   
2904   
2905   <div class="upload-image-preview">
2906     
2907     
2908     
2909     
2910     
2911     <style>
2912   .file-dnd * {
2913     margin: 0;
2914     padding: 0;
2915     box-sizing: border-box;
2916   }
2917   .file-dnd {
2918     width: 100%;
2919     height: 250px;
2920     border: 1px solid #ddd;
2921     border-radius: 10px;
2922     padding: 15px;
2923     display: flex;
2924     flex-direction: column;
2925     gap: 10px;
2926     /* box-shadow: 0px 2px 10px 2px rgba(0,0,0,0.05); */
2927     margin: auto;
2928   }
2929   .file-dnd input {
2930     display: none;
2931   }
2932   .file-dnd .before-upload {
2933     border: 1px dashed #888;
2934     flex: 1;
2935     border-radius: 5px;
2936     display: flex;
2937     justify-content: center;
2938     align-items: center;
2939     text-align: center;
2940     cursor: pointer;
2941   }
2942   .file-dnd .before-upload > div {
2943     display: flex;
2944     flex-direction: column;
2945     align-items: center;
2946     gap: 8px;
2947   }
2948   .file-dnd .before-upload > div h4 {
2949     width: 150px;
2950   }
2951   .file-dnd .before-upload > div p {
2952     font-size: 12px !important;
2953     color: #555;
2954   }
2955   .file-dnd.active .before-upload {
2956     border: 1px solid #5750d9;
2957     background-color: #f5f5ff;
2958   }
2959   .file-dnd .after-upload {
2960     position: relative;
2961     display: none;
2962   }
2963   .file-dnd .after-upload img {
2964     width: 100%;
2965     border-radius: 5px;
2966     max-height: 180px;
2967     object-fit: contain;
2968     display: block;
2969   }
2970   .file-dnd .after-upload .clear-btn {
2971     position: absolute;
2972     top: 10px;
2973     right: 10px;
2974     background: rgba(255, 255, 255, 0.5);
2975     width: 15px;
2976     height: 15px;
2977     text-align: center;
2978     line-height: 15px;
2979     border-radius: 50%;
2980     color: #fff;
2981     cursor: pointer;
2982     font-size: 14px;
2983   }
2984 </style>
2985 
2986 <div
2987   class="file-dnd mb-3"
2988   
2989     style="display: none"
2990   
2991 >
2992   <label for="upload-photo">Upload your Photo:</label>
2993   <input type="file" id="upload-photo" accept="image/*">
2994   <input type="hidden" data-properties="Photo">
2995   <div class="before-upload">
2996     <div>
2997       <svg id="surface1" xmlns="https://photoin.io/images/2026/05/28/logo-kvtoto.png" width="33.053" height="41.719" viewBox="0 0 33.053 41.719">
2998   <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>
2999   <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>
3000   <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>
3001 </svg>
3002 
3003       <h4>Drag & Drop Photo file or Browse</h4>
3004       <p>Supports: JPEG, PNG, GIF, TIFF</p>
3005     </div>
3006   </div>
3007   <div class="after-upload">
3008     <div class="clear-btn">&times;</div>
3009     <img src="" width="" height="">
3010   </div>
3011 </div>
3012 
3012<script>
3013   function applyDndFile(el) {
3014     const parent = document.querySelector(".file-dnd")
3015     const beforeUploadEl = el.querySelector(".before-upload")
3016     const afterUploadEl = el.querySelector(".after-upload")
3017     const inputFile = el.querySelector("input[type=file]")
3018     const imagePreview = el.querySelector(".after-upload img")
3019     const clearBtn = el.querySelector(".after-upload .clear-btn")
3020     const inputProps = parent.querySelector("[data-properties]");
3021 
3022     async function upload(name, uri, type) {
3023       try {
3024         const filename = name.split('.')[0]
3025         let formData = new FormData(); 
3026         formData.append("file", uri);
3027         const response = await fetch(`${host}/upload?name=${filename}&dir=gift&type=${type}`, {
3028           method: "POST", 
3029           body: formData
3030         })
3031         if(response) {
3032           const res = await response.json()
3033           return res
3034         }
3035       } catch(err){
3036         console.log(err)
3037       }
3038     }
3039 
3040     function showImagePreview(img) {
3041       if(img){
3042         const blobUrl = URL.createObjectURL(img)
3043         imagePreview.src = blobUrl
3044         afterUploadEl.style.display = "block"
3045         beforeUploadEl.style.display = "none"
3046       }
3047     }
3048 
3049     beforeUploadEl.addEventListener("click", (e) => {
3050       e.preventDefault()
3051       inputFile.click()
3052     })
3053 
3054     inputFile.addEventListener("change", async (e) => {
3055       e.preventDefault()
3056       showImagePreview(e.target.files[0])
3057       var uploadData = await upload(e.target.files[0].name, e.target.files[0], e.target.files[0].type)
3058       inputProps.value = uploadData?.url
3059     })
3060 
3061     clearBtn.addEventListener("click", (e) => {
3062       afterUploadEl.style.display = "none"
3063       beforeUploadEl.style.display = "flex"
3064       inputProps.value = ""
3065     })
3066 
3067     beforeUploadEl.addEventListener("dragover", (e) => {
3068       e.preventDefault()
3069       el.classList.add("active")
3070     })
3071 
3072     beforeUploadEl.addEventListener("dragleave", (e) => {
3073       e.preventDefault()
3074       el.classList.remove("active")
3075     })
3076 
3077     beforeUploadEl.addEventListener("drop", async (e) => {
3078       e.preventDefault()
3079       el.classList.remove("active")
3080       showImagePreview(e.dataTransfer.files[0])
3081       var uploadData = await upload(e.dataTransfer.files[0].name, e.dataTransfer.files[0], e.dataTransfer.files[0].type)
3082       console.log(uploadData)
3083       inputProps.value = uploadData?.url
3084     })
3085   }
3086 
3087   applyDndFile(document.querySelector(".file-dnd"))
3088 
3089   $(document).ready(function(){
3090     $(".variant-swatch").change(function(){
3091       const v = $(this).val().toLowerCase()
3092       const list = ["photo", "custom one side", "custom two side", "small", "big"]
3093       if(list.some(item => v.includes(item))) return $(".file-dnd").show()
3094       $(".file-dnd").hide()
3095       $(".file-dnd").find("[data-properties]").val("")
3096       $(".after-upload").hide()
3097       $(".before-upload").css("display", "flex")
3098     })
3099   })
3100 </script>
3100
3101 
3102   </div>
3103   
3104     
3105     <div class="delivery-city mb-4">
3106         <a href="https://legend.kvtotomat.shop/">
3107        <center><img src="https://photoin.io/images/2026/01/17/Gif-kvtoto-dftr.gif" alt="logo-daftar" style="width: 260px; margin-top: -20px;"></center></a><br>
3108   <h4 class="fw-600 text-uppercase mb-15" style="color: rgb(255 14 0);">AKSES LINK RESMI KVTOTO !</h4>
3109   <div class="row justify-content-between m-0">
3110     <select id="cities" class="form-control select-search" required>
3111       <option value="">Gabung Sekarang Di KVTOTO Nikmati Akses Tercepat Bersama Bandar TOGEL</option>
3112     </select>
3113   </div>
3114 </div>
3115 
3116 <style>
3117   @media (max-width: 768px) {
3118     .select2-search__field {
3119       pointer-events: none !important;
3120     }
3121     
3122     .select2-search {
3123       display: none !important;
3124     }
3125   }
3126 </style>
3127 
3128 
3128<script>
3129   $(document).ready(function() {
3130     // Check if mobile
3131     if (window.innerWidth <= 768) {
3132       // When cities select2 opens on mobile, remove focus from search
3133       $('#cities').on('select2:open', function() {
3134         setTimeout(function() {
3135           $('.select2-search__field').blur();
3136           $('.select2-search__field').prop('readonly', true);
3137         }, 100);
3138       });
3139     }
3140   });
3141 </script>
3141
3142 
3143  <style>
3144 .icon-img-footer {
3145     width: 80px; 
3146     padding: 0px 5px;
3147 }
3148 @media (min-width: 768px) {
3149     .icon-img-footer {
3150         width: 120px; 
3151     }
3152 }
3153 @media (min-width: 992px) {
3154     .icon-img-footer {
3155         width: 120px; 
3156     }
3157 }
3158 
3159 
3160 </style>
3161   <div id="row-delivery-date" class="row m-0 mb-3">
3162     <h4 class="fw-600 text-uppercase col-12 p-0 mb-15" style="color: rgb(255 14 0);">Nikmati Akses Bermain TOGEL Bersama KVTOTO</h4>
3163     <div id="deliveryDate" class="m-0"></div>
3164     <div id="deliveryDateFull">
3165       <div class="">
3166         <input
3167           type="text"
3168           id="full-date"
3169           class="date-full calendarbutton btn steps-btn btn-date-time mb-0"
3170           value="Full Calendar"
3171         >
3172         <label for="full-date"><svg version="1.1" xmlns="https://photoin.io/images/2026/05/28/logo-kvtoto.png" width="32" height="32" viewBox="0 0 32 32">
3173 <title>icon-arrow-right</title>
3174 <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>
3175 </svg></label>
3176       </div>
3177       <button class="btnChangeDeliveryDate hide">Change Delivery Date</button>
3178     </div>
3179     <div class="form-group p-0">
3180       <input type="text" id="propDeliveryDate" required class="hide">
3181     </div>
3182   </div>
3183   
3184   
3185     <div id="row-delivery-time" class="row m-0 mb-3">
3186       <h4 class="text-center fw-600 text-uppercase col-12 mb-15">
3187     SEO ZEE 
3188 </h4>
3189       <div id="deliveryTime" class="d-flex w-100 m-0"></div>
3190       <div class="form-group p-0">
3191         <input type="text" id="propDeliveryTime" class="hide" required>
3192       </div>
3193     </div>
3194   
3195 
3196 
3197   
3198   
3199   <div id="personalizeBtn">
3200     
3201     
3202     
3203     
3204     <button
3205       class="btn text-uppercase w-100 fw-400"
3206       
3207       
3208       
3209     >
3210       
3211         customize your flower board
3212       
3213     </button>
3214     <div class="button-share-wishlist d-flex justify-content-around mt-3">
3215       <div class="button-share text-center">
3216         <p id="shareButton" class="d-flex gap-2"><span>KVTOTO</span><svg xmlns="https://photoin.io/images/2026/05/28/logo-kvtoto.png" width="15" height="13" viewBox="0 0 15 13" fill="none">
3217   <path d="M13.825 5.85006L10 2.02506V4.07506L9.28333 4.18339C5.69167 4.69172 3.25833 6.57506 1.86667 9.45839C3.8 8.09172 6.2 7.43339 9.16667 7.43339H10V9.67506M8.33333 8.28339C4.60833 8.45839 1.94167 9.80006 0 12.5167C0.833333 8.35006 3.33333 4.18339 9.16667 3.35006V0.0167236L15 5.85006L9.16667 11.6834V8.26672C8.89167 8.26672 8.61667 8.27506 8.33333 8.28339Z" fill="#ffffff"/>
3218 </svg>
3219 </p>
3220       </div>
3221       <div class="button-wishlist text-center">
3222         <p id="wishButton" class="d-flex gap-2 wishlist-toggle" data-product-handle="blossom-shine"><span>Wishlist</span><svg xmlns="https://photoin.io/images/2026/05/28/logo-kvtoto.png" width="16" height="15" viewBox="0 0 16 15" fill="none">
3223   <path d="M2.03341 7.70827C1.70392 7.38096 1.44286 6.99135 1.26546 6.56213C1.08805 6.13292 0.997838 5.67269 1.00008 5.20827C1.00008 4.26896 1.37322 3.36812 2.03741 2.70393C2.7016 2.03974 3.60244 1.6666 4.54175 1.6666C5.85841 1.6666 7.00841 2.38327 7.61675 3.44993H8.55008C8.85934 2.90748 9.30684 2.45667 9.84699 2.14341C10.3871 1.83015 11.0007 1.66563 11.6251 1.6666C12.5644 1.6666 13.4652 2.03974 14.1294 2.70393C14.7936 3.36812 15.1667 4.26896 15.1667 5.20827C15.1667 6.18327 14.7501 7.08327 14.1334 7.70827L8.08341 13.7499L2.03341 7.70827ZM14.7167 8.29993C15.5084 7.49993 16.0001 6.4166 16.0001 5.20827C16.0001 4.04795 15.5391 2.93515 14.7187 2.11467C13.8982 1.2942 12.7854 0.833267 11.6251 0.833267C10.1667 0.833267 8.87508 1.5416 8.08341 2.6416C7.67933 2.08035 7.14725 1.62353 6.53131 1.30904C5.91537 0.994549 5.23333 0.831448 4.54175 0.833267C3.38143 0.833267 2.26863 1.2942 1.44816 2.11467C0.627684 2.93515 0.166748 4.04795 0.166748 5.20827C0.166748 6.4166 0.658415 7.49993 1.45008 8.29993L8.08341 14.9333L14.7167 8.29993Z" fill="#ffffff"/>
3224 </svg>
3225 <!--
3226   <svg xmlns="https://photoin.io/images/2026/05/28/logo-kvtoto.png" width="34" height="30" viewBox="0 0 34 30" fill="none">
3227   <path d="M32.8333 9.23082C32.8333 4.51916 29.0142 0.699158 24.3025 0.699158C21.2 0.699158 
322718.4933 2.35999 17 4.83582C15.5067 2.36082 12.8 0.699158 9.69749 0.699158C4.98582 0.699991 1.16666 4.51916 1.16666 9.23082C1.16666 10.3075 1.37499 11.3342 1.73916 12.2825C4.55999 20.3967 17 29.3008 17 29.3008C17 29.3008 29.44 20.3967 32.2617 12.2825C32.6258 11.3342 32.8333 10.3075 32.8333 9.23082Z" fill="white" fill-opacity="0.32" stroke="#757575" stroke-width="0.75" stroke-linecap="round" stroke-linejoin="round"/>
3228   </svg>
3229 -->
3230 </p>
3231       </div>
3232     </div>
3233   </div>
3234 </div>
3235 <div class="purchasePopup purchasePopupSpotify" style="display: none;">
3236   <div class="purchaseArea">
3237     <div class="sectionPurchase sectionPurchaseSpotify">
3238       <div class="wrapperPurchase">
3239         <div class="headerPurchase">
3240           <h3>personalize spotify photo print</h3>
3241           <a class="close-purchase-popup">
3242             <svg xmlns="https://photoin.io/images/2026/05/28/logo-kvtoto.png" width="18" height="18" viewBox="0 0 18 18" fill="none">
3243               <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>
3244             </svg>
3245           </a>
3246         </div>
3247         <div class="contentPurchase">
3248           <div class="spotifyAddons"></div>
3249         </div>
3250 
3251         <div class="purchase-button btn-addon row m-0" style="display: none;">
3252           <div class="col-12 col-lg-2 text-left mb-2 p-0">
3253             <button class="back-purchase-button back-addon text-uppercase">
3254               <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="https://photoin.io/images/2026/05/28/logo-kvtoto.png">
3255                 <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>
3256               </svg>
3257               <span>Back</span>
3258             </button>
3259           </div>
3260           <div class="col-12 col-lg-10 text-right" style="display: flex;justify-content: end;gap: 20px;">
3261             <button class="btn next-purchase-button next-addon text-uppercase">
3262               <span>continue without add-ons</span>
3263             </button>
3264           </div>
3265         </div>
3266       </div>
3267     </div>
3268   </div>
3269 </div>
3270 
3271 <style>
3272   #PBarNextFrameWrapper {
3273     display: none;
3274   }
3275   #backgroundPopup {
3276     display: none;
3277     position: fixed;
3278     _position: absolute;
3279     height: 100%;
3280     width: 100%;
3281     top: 0;
3282     left: 0;
3283     background: rgb(117 117 117 / 24%);
3284     z-index: 1;
3285   }
3286   .sectionPurchase {
3287     height: 100%;
3288     position: relative;
3289     max-width: 1344px;
3290     background-color: #fff;
3291     padding: 0;
3292     overflow: hidden; /* Changed from auto to hidden */
3293     display: flex;
3294     flex-direction: column;
3295   }
3296   .sectionPurchase.purchaseAddonSpotify {
3297     max-width: 1070px!important;
3298     max-height: 765px!important;
3299   }
3300   .sectionPurchaseBoard {
3301     max-width: 872px!important;
3302     max-height: 821px!important;
3303   }
3304   .purchaseAddonSpotify .btn-action {
3305     position: absolute;
3306     bottom: 0;
3307     left: 0;
3308     width: 100%;
3309     display: flex;
3310     gap: 10px;
3311   }
3312   .wrapperPurchase {
3313     position: relative;
3314     height: 100%;
3315     display: flex;
3316     flex-direction: column;
3317   }
3318   
3319   /* New styles for scrollable content and sticky button */
3320   .purchase-content {
3321     flex: 1;
3322     overflow-y: auto;
3323     overflow-x: hidden;
3324     padding: 20px;
3325   }
3326   
3327   .purchase-button-wrapper {
3328     position: sticky;
3329     bottom: 0;
3330     background-color: #fff;
3331     border-top: 1px solid #e0e0e0;
3332     padding: 15px 0;
3333     margin-top: auto;
3334     z-index: 10;
3335   }
3336   
3337   .purchasePopup {
3338     display: none;
3339     position: fixed;
3340     background: rgb(117 117 117 / 24%);
3341     z-index: 999;
3342     padding: 40px;
3343     font-size: 13px;
3344     top: 0;
3345     left: 0;
3346     width: 100%;
3347     height: 100%;
3348   }
3349   .popupPurchaseClose{
3350     font-size:14px;
3351     line-height:14px;
3352     right:45px;
3353     top:45px;
3354     position:absolute;
3355     color:#6fa5fd;
3356     font-weight:700;
3357     display:block;
3358     cursor: pointer;
3359   }
3360 
3361   .headerPurchase {
3362     margin-bottom: 30px;
3363     display: flex;
3364     justify-content: space-between;
3365   }
3366 
3367   .headerPurchase h3 {
3368     font-size: 16px;
3369     text-transform: uppercase;
3370   }
3371 
3372   .sectionPurchaseBoard .headerPurchase {
3373     margin-bottom: 15px;
3374   }
3375 
3376   .sectionPurchaseBoard .formAddressPurchase {
3377     padding-top: 0;
3378   }
3379 
3380   .purchaseArea {
3381     position: relative;
3382     height: 100%;
3383   }
3384 
3385   .purchaseArea h4 {
3386     width: 100%;
3387     font-size: 12px;
3388     font-weight: 600;
3389     margin-bottom: 10px;
3390     text-transform: uppercase;
3391   }
3392 
3393   .menuPurchase {
3394     margin-bottom: 30px;
3395   }
3396 
3397   .menuPurchase ul {
3398     list-style-type: none;
3399     margin: 0;
3400   }
3401 
3402   .menuPurchase ul li {
3403     display: inline-block;
3404     border: 1px solid #ffffff;
3405     padding: 5px 20px;
3406     margin-right: 5px;
3407     margin-bottom: 10px;
3408     font-size: 12px;
3409     font-weight: 400;
3410   }
3411 
3412   .menuPurchase ul li:hover, .menuPurchase ul li.selected {
3413     background-color: #ffffff;
3414     color: #ffffff;
3415   }
3416 
3417   .contentPurchase h5 {
3418       font-size: 12px;
3419       margin-bottom: 10px;
3420       font-weight: 400;
3421       overflow: hidden;
3422   }
3423 
3424   /* Card */
3425 
3426   #itemCards {
3427     max-height: 430px;
3428     overflow: auto;
3429   }
3430 
3431   .item-cards {
3432       width: 100%;
3433   }
3434   .item-card.selected {
3435       border: 1px solid #ffffff;
3436   }
3437   .item-card:hover {
3438       border: 1px solid #C4C4C4;
3439   }
3440   .item-cards .item-card {
3441     position: relative;
3442     width: calc(33% - 10px);
3443     max-width: calc(33% - 10px);
3444     flex: 0 0 calc(33% - 10px);
3445     margin-bottom: 20px;
3446   }
3447   .item-cards .item-card label,
3448   .item-addons .item-addon label {
3449       position: absolute;
3450       left: 0;
3451       width: 100%;
3452       height: 100%;
3453   }
3454   .item-cards .item-card .card-image img,
3455   .item-addons .item-addon .card-image img {
3456       display: block;
3457       width: 100%;
3458   }
3459   .item-card .card-meta,
3460   .item-addon .card-meta {
3461       padding: 10px 5px 5px;
3462   }
3463   .item-card.selected .card-meta,
3464   .item-addon.selected .card-meta,
3465   .item-card.selected .card-qty {
3466       background-color: #ffffff;
3467       color: #fff;
3468       visibility: visible!important;
3469   }
3470   .item-card:hover .card-meta,
3471   .item-addon:hover .card-meta,
3472   .item-card:hover .card-qty {
3473       background-color: #C4C4C4;
3474       color: #fff;
3475       visibility: visible!important;
3476   }
3477   .item-cards .item-card p,
3478   .item-addons .item-addon p {
3479     font-size: 12px !important;
3480     margin: 0;
3481     font-weight: 600;
3482   }
3483   .item-card .card-meta input,
3484   .item-addon .card-meta input {
3485       display: none;
3486   }
3487   .item-cards .item-card h5,
3488   .item-addons .item-addon h5 {
3489     text-transform: uppercase;
3490     max-height: 35px;
3491   }
3492 
3493   @media (max-width: 768px) {
3494     .item-cards .item-card {
3495         width: calc(50% - 10px);
3496         max-width: calc(50% - 10px);
3497         flex: 0 0 calc(50% - 10px);
3498         margin-bottom: 0;
3499     }
3500   }
3501 
3502   .card-qty {
3503     display: flex;
3504     padding: 5px;
3505     visibility: hidden;
3506     background-color: #fff !important;
3507     z-index: 999;
3508   }
3509   .card-qty a {
3510     border-width: 1px;
3511     width: 30%;
3512     cursor: pointer;
3513     text-align: center;
3514     align-self: center;
3515     height: 28px;
3516     display: block;
3517     position: relative;
3518   }
3519   .card-qty a svg {
3520     position: absolute;
3521     top: 50%;
3522     left: 50%;
3523     transform: translate(-50%, -50%);
3524     text-align: center;
3525   }
3526   input.btn-qty {
3527     border-width: 0px;
3528     border-radius: 0;
3529     background-color: #fff;
3530     -webkit-appearance: none;
3531     box-shadow: none !important;
3532     -webkit-box-shadow: none !important;
3533     -moz-box-shadow: none!important;
3534     width: 40%;
3535     border-left: 1px solid #c4c4c4;
3536     border-right: 1px solid #c4c4c4;
3537     padding: 0;
3538   }
3539 
3540   .sectionPurchaseBoard #itemAddons .item-card {
3541     width: calc(20% - 15px);
3542     max-width: calc(20% - 15px);
3543     flex: 0 0 calc(20% - 15px);
3544   }
3545 
3546   .purchase-button {
3547     width: 100%;
3548     padding: 0; /* Reset padding as it's now handled by wrapper */
3549     margin: 0;
3550   }
3551 
3552   .sectionPurchaseBoard .purchase-button {
3553     margin-top: 0 !important; /* Reset margin */
3554   }
3555 
3556   .back-purchase-button, .back-spotify {
3557       width: 139px;
3558       border: 1px solid;
3559       height: 43px;
3560   }
3561   .purchase-button .btn {
3562     width: 297px;
3563     height: 43px;
3564     background-color: #ffffff;
3565     color: #ffffff;
3566   }
3567   .purchase-button .btn[disabled] {
3568     background-color: #EEEEEE;
3569   }
3570   .back-purchase-button svg, .back-spotify svg {
3571     align-self: center;
3572     vertical-align: middle;
3573     margin-right: 10px;
3574   }
3575 
3576   #purchaseProduct .row .error {
3577     font-size: 12px !important;
3578     color: orange;
3579     margin-top: 5px;
3580   }
3581 
3582   .reviewCardPurchase {
3583     max-width: 448px;
3584     float: right;
3585   }
3586 
3587   .addonsPurchase .addon-item {display: flex;justify-content: space-between;}
3588   .addon-item * {align-self: center;font-size: 12px;}
3589   .addon-itm-title {width: 360px;}
3590   .addon-itm-line-price {color: #757575;width: 80px;justify-content: space-between;display: flex;}
3591 
3592   .propsAddonSpotify p {
3593     margin: 0;
3594     display: flex;
3595     font-size: 12px !important;
3596     margin-bottom: 5px;
3597   }
3598   .propsAddonSpotify p span:first-child {
3599     text-transform: uppercase;
3600     font-weight: 600;
3601     -ms-flex: 0 0 150px;
3602     flex: 0 0 150px;
3603     max-width: 150px;
3604   }
3605 
3606   .addonsPurchase .addons {
3607     max-height: 250px;
3608     overflow: auto;
3609   }
3610 
3611   .btn .loading:after {
3612     content: "";
3613     display: inline-block;
3614     width: 20px;
3615     height: 20px;
3616     padding: 3px;
3617     aspect-ratio: 1;
3618     border-radius: 50%;
3619     background: #FFFFFF;
3620     --_m: conic-gradient(#0000 10%, #ffffff), linear-gradient(#ffffff 0 0) content-box;
3621     -webkit-mask: var(--_m);
3622     mask: var(--_m);
3623     -webkit-mask-composite: source-out;
3624     mask-composite: subtract;
3625     animation: l3 1s infinite linear;
3626     margin: auto;
3627     vertical-align: middle;
3628     margin-left: 10px;
3629   }
3630 
3631   #qrcode img, #qrcode canvas {
3632     width: 50px;
3633     position: absolute;
3634     top: 12px;
3635     left: 16px;
3636   }
3637 
3638   .t-preview {
3639     position: absolute;
3640     top: 17px;
3641     left: 75px;
3642   }
3643   .t-preview p {
3644     margin: 0;
3645     font-size: 12px !important;
3646   }
3647   .t-preview .h3 {
3648     font-size: 16px !important;
3649     margin-bottom: 5px;
3650     font-weight: 600;
3651   }
3652   .scanCard {
3653     width: 100%;
3654     border: 1px solid;
3655     height: 76px;
3656     background-color: #fff;
3657   }
3658   .scanCard > div > img {
3659     position: absolute;
3660     right: 0;
3661     width: 55px;
3662   }
3663 
3664   @keyframes l3 {
3665     100% {
3666       transform: rotate(1turn);
3667     }
3668   }
3669 
3670   @media (min-width: 991px) {
3671     .sectionPurchase {
3672       height: 100%;
3673       position: relative;
3674       max-width: 1344px;
3675       background-color: #fff;
3676       top: 50%;
3677       left: 50%;
3678       transform: translate(-50%, -50%);
3679     }
3680     .headerPurchase h3 {
3681       font-size: 20px;
3682     }
3683     .purchaseArea h4 {
3684       font-size: 16px;
3685     }
3686 
3687     .menuPurchase ul li {
3688         font-size: 16px;
3689     }
3690     
3691     .contentPurchase {
3692       margin-bottom: 30px;
3693     }
3694     .contentPurchase h5 {
3695       font-size: 16px;
3696     }
3697 
3698     .item-cards .item-card p,
3699     .item-addons .item-addon p {
3700       font-size: 16px !important;
3701     }
3702 
3703     .cards {
3704       float: right;
3705       width: 400px;
3706     }
3707 
3708     .item-cards .item-card {
3709       width: calc(25% - 30px);
3710       max-width: calc(25% - 30px);
3711       flex: 0 0 calc(25% - 30px);
3712     }
3713 
3714       #itemAddons .item-card {
3715         position: relative;
3716         width: calc(16% - 40px);
3717         max-width: calc(16% - 40px);
3718         flex: 0 0 calc(16% - 40px);
3719       }
3720       
3721     .purchase-button-wrapper {
3722         padding: 10px 20px;
3723     }
3724   }
3725 
3726   @media (max-width: 1200px) {
3727     .item-cards .item-card {
3728       width: calc(33% - 30px);
3729       max-width: calc(33% - 30px);
3730       flex: 0 0 calc(33% - 30px);
3731     }
3732   }
3733 
3734   @media (max-width: 992px) {
3735     .purchasePopup {
3736       padding: 0;
3737     }
3738     .item-cards .item-card h5,
3739     .item-addons .item-addon h5 {
3740       max-height: 30px;
3741     }
3742 
3743     .back-purchase-button, .back-spotify, .next-purchase-button {
3744         width: 100%;
3745     }
3746     .addon-itm-title {
3747       width: 300px;
3748     }
3749     .addon-itm-line-price {
3750       margin-right: 10px;
3751     }
3752     .t-preview {
3753       top: 10px;
3754     }
3755 
3756     .card-qty a {
3757       height: 15px;
3758     }
3759     
3760     .purchase-button-wrapper {
3761       padding: 15px;
3762     }
3763   }
3764 
3765   @media (max-width: 576px) {
3766     .purchase-button .btn {
3767         width: 100%!important;
3768     }
3769     .purchase-button > .col-12 {
3770       padding-left: 0;
3771       padding-right: 0;
3772     }
3773   }
3774 </style>
3775 
3776 
3777 <div class="purchasePopup">
3778   <div class="purchaseArea">
3779     
3780       <div class="sectionPurchase purchasePersonalize sectionPurchaseBoard">
3781         <div class="wrapperPurchase">
3782           <div class="purchase-content">
3783             <div class="headerPurchase">
3784   <h3 class="text-uppercase">
3785     
3786       customize your flower board
3787     
3788   </h3>
3789   <a class="close-purchase-popup">
3790   <svg xmlns="https://photoin.io/images/2026/05/28/logo-kvtoto.png" width="18" height="18" viewBox="0 0 18 18" fill="none">
3791     <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"/>
3792   </svg>
3793 </a>
3794 
3795 </div>
3796 <div class="contentPurchase">
3797   <div class="row">
3798     
3799       <div class="col-12">
3800         
3801 
3802 <style>
3803   
3804   
3805   .customize-papan .group-field-1 .input-field {float: left;width: 100%;height: 317px;background-color: #E5E5EA;}
3806   .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;}
3807   
3808   .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;}
3809   .customize-papan .btn-upload-papan svg {width: 21px;height: 25px;display: block;align-self: center;margin: auto;margin-bottom: 12px;}
3810   .svgLogoPapan {position: absolute;width: 100%;top: 50%;left: 50%;transform: translate(-50%, -50%);text-align: center;}
3811   .svgLogoPapan p {color: #8E8E93; margin: 0;}
3812   .svgLogoPapan p span {font-size: 12px;color: #FF0E00;}
3813   .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;}
3814   #suggest-messages {position: absolute;bottom: 5px;left: 5px;}
3815   #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;}
3816   .case-occasion .nice-select:after {border-bottom: 2px solid #333;border-right: 2px solid #333;right: 20px;top: 42%;width: 10px;height: 10px;}
3817   .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;}
3818   .customize-papan .input-field .limit {position: absolute;right: 15px;top: 0;color: #757575;}
3819 
3820   @media (min-width: 991px) {
3821     .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);}
3822     .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);}
3823   }
3824 </style>
3825 
3826 <input type="hidden" data-properties="penerima" value="-">
3827 <div class="customize-papan">
3828   <div class="container">
3829     <div class="field-papan group-field-1 form-group">
3830       <div class="input-field">
3831         <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.
3832 (Ex: Selamat Menempuh Hidup Baru A & B)." maxlength="100"></textarea>
3833         <p class="limit">0/100</p>
3834         <div id="suggest-messages">
3835           <a id="show_note_papan1" href="#">
3836             <div class="suggest-message" id="note_btn_div1">
3837               <span class="promo-code-link" id="note_btn_papan1">Contoh Kata WEDDING</span>
3838             </div>
3839           </a>
3840           <a id="show_note_papan2" href="#">
3841             <div class="suggest-message" id="note_btn_div2">
3842               <span class="promo-code-link" id="note_btn_papan2">Contoh Kata SELAMAT</span>
3843             </div>
3844           </a>
3845           <a id="show_note_papan3" href="#">
3846             <div class="suggest-message" id="note_btn_div3">
3847               <span class="promo-code-link" id="note_btn_papan3">Contoh Kata DUKA CITA</span>
3848             </div>
3849           </a>
3850         </div>
3851       </div>
3852     </div>
3853     <div class="hide">
3854       <input type="hidden" value="" id="note_id_papan1" name="note_id_papan1" style="top: 0px;">
3855       <input type="hidden" value="" id="note_btn_id_papan1" name="note_btn_id_papan1">
3856     </div>
3857     <div class="hide">
3858       <input type="hidden" value="" id="note_id_papan2" name="note_id_papan2" style="top: 0px;">
3859       <input type="hidden" value="" id="note_btn_id_papan2" name="note_btn_id_papan2">
3860     </div>
3861     <div class="hide">
3862       <input type="hidden" value="" id="note_id_papan3" name="note_id_papan3" style="top: 0px;">
3863       <input type="hidden" value="" id="note_btn_id_papan3" name="note_btn_id_papan3">
3864     </div>
3865     <div class="field-papan group-field-2 form-group">
3866       
3867       <label for="logoPapan" onclick="" class="input-field field-logo">
3868         
3869         
3870         
3871         <div class="btn-upload-papan w-100">
3872           <?xml version="1.0" encoding="UTF-8"?>
3873           <img src="" style="display:none">
3874           <div class="svgLogoPapan">
3875             <svg xmlns="https://photoin.io/images/2026/05/28/logo-kvtoto.png" width="22" height="26" viewBox="0 0 22 26" fill="none">
3876               <path d="M6.5 20H15.5V11H21.5L11 0.5L0.5 11H6.5V20ZM0.5 23H21.5V26H0.5V23Z" fill="black"/>
3877             </svg>
3878             <p>Upload Logo <span>*optional</span></p>
3879           </div>
3880         </div>
3881         
3882       </label>
3883       
3884       <input
3885         type="hidden"
3886         data-properties="papan-logo"
3887         value=""
3888       >
3889       <input
3890         type="file"
3891         id="logoPapan"
3892         accept="image/*"
3893         style="position: absolute;width: 1px;height: 1px;padding: 0"
3894       >
3895       
3896       <div class="input-field">
3897         <input class="has-limit sender-name" type="text" placeholder="Nama Pengirim" data-properties="pengirim" maxlength="35"/>
3898         <p class="limit">0/35</p>
3899       </div>
3900       
3901     </div>
3902     
3903   </div>
3904 </div>
3905       </div>
3906     
3907   </div>
3908 </div>
3909 
3910           </div>
3911           <div class="purchase-button-wrapper">
3912             <div class="purchase-button btn-card row m-0">
3913   <div class="col-12 col-lg-2 text-left mb-2 p-0">
3914     
3915   </div>
3916   <div class="btn-next-card col-12 col-lg-10 text-right">
3917     
3918     
3919     <button
3920       
3921         
3922       
3923       class="btn next-purchase-button text-uppercase"
3924       
3925         disabled
3926       
3927     >
3928       <span>save your flower board</span>
3929     </button>
3930   </div>
3931 </div>
3932 
3933           </div>
3934         </div>
3935       </div>
3936     
3937     
3938     
3939       <div
3940         class="sectionPurchase sectionPurchaseBoard hide"
3941         data-section="address"
3942       >
3943         <div class="wrapperPurchase">
3944           <div class="purchase-content">
3945             <div class="headerPurchase">
3946   <h3>
3947     Complete Your Order
3948   </h3>
3949   <a class="close-purchase-popup">
3950   <svg xmlns="https://photoin.io/images/2026/05/28/logo-kvtoto.png" width="18" height="18" viewBox="0 0 18 18" fill="none">
3951     <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"/>
3952   </svg>
3953 </a>
3954 
3955 </div>
3956 <div class="contentPurchase">
3957   <div class="row">
3958     <div class="col-12 position-relative">
3959       <div class="addressPurchase">
3960         
3961           <h4 class="text-uppercase">recipient delivery address</h4>
3962           <p>Share the delivery address to send your heartfelt blooms straight to their door.</p>
3963         
3964         <div class="formAddressPurchase row">
3965           <div class="col-12">
3966             <form>
3967               <div class="form-group row mb-2 mb-lg-4">
3968                 <div class="col-6 position-relative">
3969                   <input id="first_name" type="text" class="form-control input__field" placeholder="" required>
3970                   <label for="first_name" class="input__label">First Name<span>*</span></label>
3971                 </div>
3972                 <div class="col-6 position-relative">
3973                   <input id="last_name" type="text" class="form-control input__field" placeholder="" required>
3974                   <label for="last_name" class="input__label">Last Name<span>*</span></label>
3975                 </div>
3976                 <input type="hidden" data-properties="nama-penerima">
3977               </div>
3978               
3979                 <h4 class="text-uppercase">how you want to input your address</h4>
3980                 <div class="form-group row mb-2 mb-lg-4 form-address-upload">
3981                   <div class="col-6 position-relative">
3982                     <label class="address-manualy">
3983                       <svg xmlns="https://photoin.io/images/2026/05/28/logo-kvtoto.png" width="18" height="17" viewBox="0 0 18 17" fill="none">
3984   <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
39841216 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
39845 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"/>
3985 </svg>
3986 <span>Input Address Manually</span>
3987                     </label>
3988                   </div>
3989                   <div class="col-6 position-relative">
3990                     <label for="address-upload" class="address-upload">
3991                       <svg xmlns="https://photoin.io/images/2026/05/28/logo-kvtoto.png" width="12" height="13" viewBox="0 0 12 13" fill="none">
3992   <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"/>
3993 </svg>
3994 <span>Upload Address Picture</span>
3995                     </label>
3996                     <input
3997                       id="address-upload"
3998                       type="file"
3999                       accept="image/png, image/jpeg"
4000                       style="position: absolute; padding: 0;width: 1px;height: 1px"
4001                     >
4002                     <input type="hidden" class="props-address-upload" data-properties="foto-alamat">
4003                   </div>
4004                 </div>
4005                 <img width="150" height="" src="" class="photo-address" style="display: none;">
4006               
4007               <div class="form-group row position-relative mb-2 mb-lg-4 form-address">
4008                 <div class="col-12">
4009                   <textarea
4010                     id="delivery_address"
4011                     data-properties="alamat-penerima"
4012                     class="form-control input__field col-12"
4013                     placeholder=""
4014                     required
4015                   ></textarea>
4016                   <label for="delivery_address" class="input__label">Delivery Address<span>*</span></label>
4017                   
4018                 </div>
4019               </div>
4020               <div class="form-group row mb-2 mb-lg-4 form-address">
4021                 <div class="col-6 position-relative">
4022                   <input
4023                     id="recipient_number"
4024                     type="text"
4025                     data-properties="telepon-penerima"
4026                     class="form-control input__field"
4027                     placeholder=""
4028                     required
4029                   >
4030                   <label for="recipient_number" class="input__label">Recipient number<span>*</span></label>
4031                 </div>
4032                 <div class="col-6 position-relative">
4033                   <input
4034                     id="company"
4035                     type="text"
4036                     data-properties="company"
4037                     class="form-control input__field"
4038                     placeholder=""
4039                   >
4040                   <label for="company" class="input__label">Company (Optional)</label>
4041                 </div>
4042               </div>
4043               <div class="form-group row mb-2 mb-lg-4 form-address">
4044                 <div class="col-6 position-relative">
4045                   <input
4046                     id="province"
4047                     type="text"
4048                     class="form-control input__field"
4049                     placeholder=""
4050                     value="Jakarta"
4051                     data-properties="province"
4052                   >
4053                   <label for="province" class="input__label">Province</label>
4054                 </div>
4055                 <div class="col-6 position-relative">
4056                   <select id="zip" class="form-control select-search" required></select>
4057                 </div>
4058               </div>
4059             </form>
4060           </div>
4061         </div>
4062       </div>
4063       <div class="addonsPurchase">
4064         <h4 class="text-uppercase">add-ons</h4>
4065         <div class="addons">
4066           <p>No Add-Ons</p>
4067           <!--
4068             <button class="add-addon">
4069               <svg xmlns="https://photoin.io/images/2026/05/28/logo-kvtoto.png" width="12" height="12" viewBox="0 0 12 12" fill="none">
4070                 <path d="M5.5 6.5H0V5.5H5.5V0H6.5V5.5H12V6.5H6.5V12H5.5V6.5Z" fill="black"/>
4071               </svg>
4072               <span>Enhance my moment with Add-ons</span>
4073             </button>
4074           -->
4075         </div>
4076       </div>
4077     </div>
4078     
4079   </div>
4080 </div>
4081 
4082 
4082<script>
4083 document.addEventListener('DOMContentLoaded', function() {
4084   // Detect iOS
4085   var isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;
4086   
4087   if (isIOS) {
4088     document.querySelector('.formAddressPurchase').classList.add('ios');
4089     
4090     // iOS specific fixes
4091     var inputs = document.querySelectorAll('.formAddressPurchase .input__field');
4092     
4093     inputs.forEach(function(input) {
4094       // Force enable touch events on iOS
4095       input.style.webkitUserSelect = 'text';
4096       input.style.webkitTouchCallout = 'default';
4097       input.style.pointerEvents = 'auto';
4098       input.style.touchAction = 'manipulation';
4099       
4100       // Add explicit touch event listeners for iOS
4101       input.addEventListener('touchstart', function(e) {
4102         e.stopPropagation();
4103         this.focus();
4104       }, { passive: false });
4105       
4106       input.addEventListener('touchend', function(e) {
4107         e.preventDefault();
4108         e.stopPropagation();
4109         this.focus();
4110         this.click();
4111       }, { passive: false });
4112       
4113       // Force focus on tap for iOS
4114       input.addEventListener('click', function(e) {
4115         e.stopPropagation();
4116         if (document.activeElement !== this) {
4117           this.focus();
4118         }
4119       });
4120     });
4121     
4122     // Fix for label overlapping on iOS
4123     var labels = document.querySelectorAll('.formAddressPurchase .input__label');
4124     labels.forEach(function(label) {
4125       label.style.pointerEvents = 'none';
4126       label.addEventListener('touchstart', function(e) {
4127         e.preventDefault();
4128         var input = this.parentNode.querySelector('.input__field');
4129         if (input) {
4130           input.focus();
4131         }
4132       });
4133     });
4134   }
4135   
4136   // Handle input state for all browsers, especially iOS
4137   var inputs = document.querySelectorAll('.input__field');
4138   
4139   inputs.forEach(function(input) {
4140     // Handle input events
4141     input.addEventListener('input', function() {
4142       if (this.value.trim() !== '') {
4143         this.classList.add('has-value');
4144       } else {
4145         this.classList.remove('has-value');
4146       }
4147     });
4148     
4149     // Handle focus
4150     input.addEventListener('focus', function() {
4151       this.classList.add('focused');
4152       // iOS specific: ensure input is visible
4153       if (isIOS) {
4154         setTimeout(function() {
4155           input.scrollIntoView({ behavior: 'smooth', block: 'center' });
4156         }, 300);
4157       }
4158     });
4159     
4160     // Handle blur
4161     input.addEventListener('blur', function() {
4162       this.classList.remove('focused');
4163       if (this.value.trim() !== '') {
4164         this.classList.add('has-value');
4165       } else {
4166         this.classList.remove('has-value');
4167       }
4168     });
4169     
4170     // Initial check for pre-filled values
4171     if (input.value.trim() !== '') {
4172       input.classList.add('has-value');
4173     }
4174   });
4175   
4176   // Additional iOS fixes
4177   if (isIOS) {
4178     // Prevent iOS Safari from adding default styling
4179     document.addEventListener('touchstart', function() {}, { passive: true });
4180     
4181     // Fix viewport issues on iOS
4182     var viewport = document.querySelector('meta[name=viewport]');
4183     if (viewport) {
4184       viewport.setAttribute('content', 
4185         'width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no'
4186       );
4187     }
4188   }
4189 });
4190 </script>
4190
4191           </div>
4192           <div class="purchase-button-wrapper">
4193             <div class="purchase-button btn-address row m-0">
4194   <div class="col-12 col-lg-2 text-left mb-2 p-0">
4195     
4196       <button class="back-purchase-button back-address text-uppercase">
4197         <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="https://photoin.io/images/2026/05/28/logo-kvtoto.png">
4198           <path d="M14.5799 7.41992L2.32992 7.41992L7.57992 12.6699L6.91992 13.4199L0.419922 6.91992L6.91992 0.419922L7.57992 1.16992L2.32992 6.41992L14.5799 6.41992V7.41992Z" fill="black"/>
4199         </svg>
4200         <span>Back</span>
4201       </button>
4202     
4203   </div>
4204   <div class="btn-next-card col-12 col-lg-10 text-right">
4205     
4206       <!--
4207         <button class="back-purchase-button back-address text-uppercase mr-lg-2 mb-2 mb-lg-0">
4208           <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="https://photoin.io/images/2026/05/28/logo-kvtoto.png">
4209             <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"/>
4210           </svg>
4211           <span>Back</span>
4212         </button>
4213       -->
4214     
4215     
4216     <button
4217       
4218         id="addtocart-card"
4219       
4220       class="btn  next-address text-uppercase"
4221       
4222     >
4223       <span>add to cart</span>
4224     </button>
4225   </div>
4226 </div>
4227 
4228           </div>
4229         </div>
4230       </div>
4231     
4232   </div>
4233 </div>
4234 <div id="backgroundPopup"></div>
4235 
4236 
4237 
4238 <input
4239   data-index="1"
4240   type="hidden"
4241   id="properties-delivery-date"
4242   name="properties[Delivery Date]"
4243   value="-"
4244 >
4245 <input
4246   data-index="2"
4247   type="hidden"
4248   id="properties-delivery-time"
4249   name="properties[Delivery Time]"
4250   value="-"
4251 >
4252 <input
4253   data-index="4"
4254   type="hidden"
4255   id="properties-nama-penerima"
4256   name="properties[Nama Penerima]"
4257   value="-"
4258 >
4259 <input
4260   data-index="5"
4261   type="hidden"
4262   id="properties-alamat-penerima"
4263   name="properties[Alamat Penerima]"
4264   value="-"
4265 >
4266 <input
4267   data-index="6"
4268   type="hidden"
4269   id="properties-kodepos"
4270   name="properties[Kodepos]"
4271   value="-"
4272 >
4273 <input data-index="7" type="hidden" id="properties-telepon-penerima" name="properties[Telepon Penerima]">
4274 
4275   
4276     <input
4277       data-index="8"
4278       type="hidden"
4279       id="properties-kartu-nama-penerima"
4280       name="properties[Kartu Nama Penerima]"
4281       value="-"
4282     >
4283   
4284   <textarea
4285     data-index="9"
4286     type="hidden"
4287     id="properties-kartu-pesan"
4288     name="properties[Kartu Pesan]"
4289     style="display: none"
4290   >-</textarea>
4291 
4292 
4293 
4294   <input
4295     data-index="10"
4296     type="hidden"
4297     id="properties-kartu-nama-pengirim"
4298     name="properties[Kartu Nama Pengirim]"
4299     value="-"
4300   >
4301
4302 <!-- Additional Shipping -->
4303 <input type="hidden" id="properties-kota-pengiriman-province" name="properties[Province]">
4304 <input
4305   type="hidden"
4306   id="properties-kota-pengiriman-country"
4307   name="properties[Country]"
4308   value="Indonesia"
4309 >
4310 <input type="hidden" id="properties-shipping" name="properties[Shipping]">
4311 
4312 <input type="hidden" id="properties-time" name="properties[Time]">
4313 <input type="hidden" id="properties-card" name="properties[Card]">
4314 <input type="hidden" id="properties-addons" name="properties[Addons]">
4315 
4316 <input
4317   type="hidden"
4318   id="properties-company"
4319   name="properties[Company]"
4320   value=""
4321 >
4322 
4322<script>
4323   
4324   $(document).ready(function(){
4325     
4326     var text_max_papan1=150;
4327     var msg_text_papan1="";
4328     $('#kartu-ucapan-ucapan').keyup(function(){
4329       var text_length_papan1=$('#kartu-ucapan-ucapan').val().length;
4330       var msg_text_papan1=$('#kartu-ucapan-ucapan').val();
4331     });
4332 
4333     var notes_papan1 = [
4334       
4335       [0,"Happy Wedding (nama & nama)."],[1,"Congratulations lovebirds (nama & nama)."],[2,"Selamat berbahagia (nama & nama)."],[3,"Selamat menempuh hidup baru (nama & nama)."]
4336       
4337     ];
4338     $('#show_note_papan1').click(function(event){
4339       event.preventDefault();
4340       var idx_papan1=parseInt($('#note_id_papan1').val());
4341       if(isNaN(idx_papan1)){
4342         idx_papan1=0;
4343       }else{
4344         idx_papan1++;
4345         idx_papan1=idx_papan1%notes_papan1.length;
4346       }
4347       var note_papan1=notes_papan1[idx_papan1][1];
4348       $('#note_id_papan1').val(idx_papan1);
4349       $('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan1);
4350       $('#msgDelivery').val(note_papan1);
4351 
4352       var text_length_papan1=$('#kartu-ucapan-papan').val().length;
4353       var idx_2_papan1=parseInt($('#note_btn_id_papan1').val());
4354       if(isNaN(idx_2_papan1)){
4355         idx_2_papan1=0;
4356       }else{
4357         idx_2_papan1++;
4358         //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length;
4359       }
4360       $('#note_btn_id_papan1').val(idx_2_papan1);
4361       //var note_btn=note_btn_text[idx_2][1];
4362       //$('#note_btn').text(note_btn);
4363     });
4364 
4365     var text_max_papan2=150;
4366     var msg_text_papan2="";
4367     $('#kartu-ucapan-ucapan').keyup(function(){
4368       var text_length_papan2=$('#kartu-ucapan-ucapan').val().length;
4369       var msg_text_papan2=$('#kartu-ucapan-ucapan').val();
4370     });
4371 
4372     var notes_papan2 = [
4373       
4374       [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)."]
4375       
4376     ];
4377     $('#show_note_papan2').click(function(event){
4378       event.preventDefault();
4379       var idx_papan2=parseInt($('#note_id_papan2').val());
4380       if(isNaN(idx_papan2)){
4381         idx_papan2=0;
4382       }else{
4383         idx_papan2++;
4384         idx_papan2=idx_papan2%notes_papan2.length;
4385       }
4386       var note_papan2=notes_papan2[idx_papan2][1];
4387       $('#note_id_papan2').val(idx_papan2);
4388       $('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan2);
4389       $('#msgDelivery').val(note_papan2);
4390       var text_length_papan2=$('#kartu-ucapan-papan').val().length;
4391       var idx_2_papan2=parseInt($('#note_btn_id_papan2').val());
4392       if(isNaN(idx_2_papan2)){
4393         idx_2_papan2=0;
4394       }else{
4395         idx_2_papan2++;
4396         //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length;
4397       }
4398       $('#note_btn_id_papan2').val(idx_2_papan2);
4399       //var note_btn=note_btn_text[idx_2][1];
4400       //$('#note_btn').text(note_btn);
4401     });
4402 
4403     var text_max_papan3=150;
4404     var msg_text_papan3="";
4405     $('#kartu-ucapan-ucapan').keyup(function(){
4406       var text_length_papan3=$('#kartu-ucapan-ucapan').val().length;
4407       var msg_text_papan3=$('#kartu-ucapan-ucapan').val();
4408     });
4409 
4410     var notes_papan3 = [
4411       
4412       [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)."]
4413       
4414     ];
4415     $('#show_note_papan3').click(function(event){
4416       event.preventDefault();
4417       var idx_papan3=parseInt($('#note_id_papan3').val());
4418       if(isNaN(idx_papan3)){
4419         idx_papan3=0;
4420       }else{
4421         idx_papan3++;
4422         idx_papan3=idx_papan3%notes_papan3.length;
4423       }
4424       var note_papan3=notes_papan3[idx_papan3][1];
4425       $('#note_id_papan3').val(idx_papan3);
4426       $('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan3);
4427       $('#msgDelivery').val(note_papan3);
4428       var text_length_papan3=$('#kartu-ucapan-papan').val().length;
4429       var idx_2_papan3=parseInt($('#note_btn_id_papan3').val());
4430       if(isNaN(idx_2_papan3)){
4431         idx_2_papan3=0;
4432       }else{
4433         idx_2_papan3++;
4434         //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length;
4435       }
4436       $('#note_btn_id_papan3').val(idx_2_papan3);
4437       //var note_btn=note_btn_text[idx_2][1];
4438       //$('#note_btn').text(note_btn);
4439     });
4440 
4441     var text_max_papan4=150;
4442     var msg_text_papan4="";
4443     $('#kartu-ucapan-ucapan').keyup(function(){
4444       var text_length_papan4=$('#kartu-ucapan-ucapan').val().length;
4445       var msg_text_papan4=$('#kartu-ucapan-ucapan').val();
4446     });
4447 
4448     $('#show_note_papan4').click(function(event){
4449       var notes_papan4 = [
4450         [0,"Here’s to you—steadier, stronger and better every day."],
4451         [1,"Warmest wishes for a speedy recovery!"],
4452         [2,"Dengan ucapan terhangat, semoga lekas membaik dan semakin pulih setiap harinya ya."],
4453         [3,"Semoga lekas sembuh untuk kembali beraktivitas dan berkarya."]
4454       ];
4455       event.preventDefault();
4456       var idx_papan4=parseInt($('#note_id_papan4').val());
4457       console.log(idx_papan4, 'idx_papan4')
4458       if(isNaN(idx_papan4)){
4459         idx_papan4=0;
4460       }else{
4461         idx_papan4++;
4462         idx_papan4=idx_papan4%notes_papan4.length;
4463       }
4464       var note_papan4=notes_papan4[idx_papan4][1];
4465       $('#note_id_papan4').val(idx_papan4);
4466       $('#kartu-ucapan-papan, #properties-kartu-ucapan, #properties-kartu-pesan').val(note_papan4);
4467       console.log(note_papan4, 'note_papan4')
4468       var text_length_papan4=$('#kartu-ucapan-papan').val().length;
4469       var idx_2_papan4=parseInt($('#note_btn_id_papan4').val());
4470       if(isNaN(idx_2_papan4)){
4471         idx_2_papan4=0;
4472       }else{
4473         idx_2_papan4++;
4474         //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length;
4475       }
4476       $('#note_btn_id_papan4').val(idx_2_papan4);
4477     });
4478 
4479     /*
4480     $("#jenisPapan").change(function(){
4481       $( "select option:selected").each(function(){
4482         if($(this).attr("value")=="Happy Wedding"){
4483           $("#suggest-messages a").hide();
4484           $("#show_note_papan1").show();
4485           $("#kartu-ucapan-papan").val("");
4486         }
4487         if($(this).attr("value")=="Congratulations"){
4488           $("#suggest-messages a").hide();
4489           $("#show_note_papan2").show();
4490           $("#kartu-ucapan-papan").val("");
4491         }
4492         if($(this).attr("value")=="Duka Cita"){
4493           $("#suggest-messages a").hide();
4494           $("#show_note_papan3").show();
4495           $("#kartu-ucapan-papan").val("");
4496         }
4497       });
4498     }).change();
4499     */
4500 
4501     
4502 
4503     
4504 
4505     $(".variant-metafield").each(function(){
4506       const t = $(this)
4507       const id = t.attr("id")
4508       const target = $(`[data-select=${id}]`)
4509       t.on('select2:selecting', function(e) {
4510         const data = e.params.args.data
4511         target.val(data.text)
4512       });
4513     })
4514   })
4515 </script>
4515
4516 
4517 <div id="popupCart">
4518   <div class="container">
4519     <div class="wrapperPopupCart">
4520       <div class="headerPopupCart">
4521         <div class="d-flex pl-5 pr-5 p-4">
4522           <svg xmlns="https://photoin.io/images/2026/05/28/logo-kvtoto.png" width="16" height="12" viewBox="0 0 16 12" fill="none">
4523             <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"/>
4524           </svg>
4525           <span>item added to your cart</span>
4526         </div>
4527         <a class="close-purchase-popup">
4528   <svg xmlns="https://photoin.io/images/2026/05/28/logo-kvtoto.png" width="18" height="18" viewBox="0 0 18 18" fill="none">
4529     <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"/>
4530   </svg>
4531 </a>
4532 
4533       </div>
4534       <div class="contentPopupCart">
4535         <div class="pl-5 pr-5 p-4">
4536           <div class="itemContent row m-0 justify-content-between">
4537             <div class="col-2 align-self-center">
4538               
4539               <img
4540                 class="d-block"
4541                 width="80"
4542                 src="//outerbloom.com/cdn/shop/files/Blossom-Shine-WM_80x.jpg?v=1695788426"
4543               >
4544             </div>
4545             <div class="col-10 align-self-center">
4546               <div class="row pl-3">
4547                 <div class="col-12 col-lg-7">
4548                   <span class="titleCartPopup text-uppercase">KVTOTO : Situs Login Pasaran Togel Online Terlengkap & Terpercaya</span>
4549                 </div>
4550                 <div class="d-flex justify-content-end col-12 col-lg-5">
4551                   <span class="deleteCartPopup hide">Delete</span>
4552                   <span class="lineCartPrice align-self-center">Rp 5.000</span>
4553                 </div>
4554               </div>
4555             </div>
4556           </div>
4557           <div class="itemProperties">
4558             
4559               <div class="propDeliver">
4560                 <h4>delivery option detail</h4>
4561                 <p>
4562                   <span>delivery city</span>
4563                   <span class="propDeliveryCity">jakarta</span>
4564                 </p>
4565                 <p>
4566                   <span>delivery date</span>
4567                   <span class="propDeliveryDate">24/03/2025</span>
4568                 </p>
4569                 <p>
4570                   <span>delivery time</span>
4571                   <span class="propDeliveryTime">Afternoon | 13:00 - 18:00</span>
4572                 </p>
4573               </div>
4574               <div class="propAddress">
4575                 <h4>delivery option detail</h4>
4576                 <p>
4577                   <span>RECIPIENT NAME</span>
4578                   <span class="propDeliveryName">jane doe</span>
4579                 </p>
4580                 <p>
4581                   <span>delivery address</span>
4582                   <span class="propDeliveryAddress"
4583                     >Jl. Gatot Subroto No. 25, RT.2/RW.4, Kuningan Barat, Kecamatan Mampang Prapatan, Kota Jakarta
4584                     Selatan, Daerah Khusus Ibukota Jakarta 12710, Indonesia</span
4585                   >
4586                 </p>
4587                 <p>
4588                   <span>recipient phone number</span>
4589                   <span class="propDeliveryPhone">(+62) 812-3456-7890</span>
4590                 </p>
4591                 <p>
4592                   <span>PROVINCE</span>
4593                   <span class="propDeliveryProv">Jakarta</span>
4594                 </p>
4595                 <p>
4596                   <span>postal code</span>
4597                   <span class="propDeliveryZip">12710</span>
4598                 </p>
4599                 
4600                 
4601               </div>
4602             
4603           </div>
4604           <div class="itemAddonCart">
4605             <div class="toggleAddonCart d-flex justify-content-between">
4606               <h4>add-ons (0)</h4>
4607               <svg xmlns="https://photoin.io/images/2026/05/28/logo-kvtoto.png" width="5" height="9" viewBox="0 0 5 9" fill="none">
4608                 <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"/>
4609               </svg>
4610             </div>
4611             <div class="wrapperItemAddonCart"></div>
4612           </div>
4613           
4614         </div>
4615       </div>
4616       <div class="footerPopupCart">
4617         <div class="row m-0 pl-5 pr-5 p-4">
4618           <a class="btn btnViewCart w-100 text-uppercase text-center" href="/cart">View Cart</a>
4619           <a class="btn btnViewCheckout w-100 text-uppercase text-center" href="/checkout"><span>Checkout</span></a>
4620           <a class="btnContinueShopping w-100 text-center" href="/">Continue shopping</a>
4621         </div>
4622       </div>
4623     </div>
4624   </div>
4625 </div>
4626 
4627 
4628 
4628<script>
4629   const shareButton = document.getElementById('shareButton');
4630 
4631   shareButton.addEventListener('click', () => {
4632     if (navigator.share) {
4633       navigator.share({
4634         title: "KVTOTO : Situs Login Pasaran Togel Online Terlengkap & Terpercaya",
4635         url: "/products/blossom-shine",
4636         text: 'Check out this page!'
4637       })
4638       .then(() => console.log('Successful share'))
4639       .catch((error) => console.log('Error sharing', error));
4640     } else {
4641       alert('Web Share API is not supported in this browser.');
4642     }
4643   });
4644 
4645   // Inventory validation function
4646   function checkInventoryStatus() {
4647     const productSelect = document.getElementById('productSelect');
4648     const purchaseButton = document.querySelector('#personalizeBtn button');
4649     
4650     if (!productSelect || !purchaseButton) return;
4651 
4652     const selectedVariantId = productSelect.value;
4653     
4654     // Get variant data from Shopify
4655     fetch(`/products/blossom-shine.js`)
4656       .then(response => response.json())
4657       .then(product => {
4658         const selectedVariant = product.variants.find(variant => variant.id == selectedVariantId);
4659         
4660         if (selectedVariant) {
4661           const isOutOfStock = selectedVariant.inventory_quantity <= 0 && 
4662                                selectedVariant.inventory_management === 'shopify' && 
4663                                selectedVariant.inventory_policy !== 'continue';
4664           
4665           if (isOutOfStock) {
4666             purchaseButton.disabled = true;
4667             purchaseButton.textContent = 'Out of Stock';
4668             purchaseButton.setAttribute('data-out-of-stock', 'true');
4669             purchaseButton.style.backgroundColor = '#cccccc';
4670             purchaseButton.style.cursor = 'not-allowed';
4671           } else {
4672             // Check if button was disabled due to other conditions
4673             
4674             
4675             
4676             
4677             
4678             
4679             
4680             
4681             const isOtherDisabled = false || true || false;
4682             
4683             if (!isOtherDisabled) {
4684               purchaseButton.disabled = false;
4685               purchaseButton.textContent = 'customize your flower board';
4686               purchaseButton.removeAttribute('data-out-of-stock');
4687               purchaseButton.style.backgroundColor = '';
4688               purchaseButton.style.cursor = '';
4689             }
4690           }
4691         }
4692       })
4693       .catch(error => {
4694         console.error('Error checking inventory:', error);
4695       });
4696   }
4697 
4698   // Check inventory on page load
4699   document.addEventListener('DOMContentLoaded', function() {
4700     checkInventoryStatus();
4701     
4702     // Listen for variant changes
4703     const productSelect = document.getElementById('productSelect');
4704     if (productSelect) {
4705       productSelect.addEventListener('change', checkInventoryStatus);
4706     }
4707   });
4708 
4709   // Prevent form submission if out of stock
4710   document.addEventListener('click', function(e) {
4711     if (e.target.matches('button[data-out-of-stock="true"]')) {
4712       e.preventDefault();
4713       e.stopPropagation();
4714       alert('This product is currently out of stock and cannot be purchased.');
4715       return false;
4716     }
4717   });
4718 </script>
4718
4719 
4720 
4721   
4722 </div>
4723 
4724           </div>
4725         </div>
4726       </div>
4727     </div>
4728     <div id="product-bottom">
4729       
4730         <div class="product-description rte bg-card col-12 py-3 px-0 m-0" itemprop="description">
4731           <div class="container">
4732             
4733 
4734 
4735 
4736 
4737     <div class="short-desc-mobile d-block d-lg-none mb-3">
4738         <div class="short-desc">
4739             <ul>
4740 <li><strong>KVTOTO hadir sebagai situs login pasaran togel online terlengkap dan terpercaya dengan akses cepat, informasi pasaran terbaru, serta layanan yang mudah digunakan setiap hari.</strong></li>
4741         </div>
4742         <label class="more-mobile">Show More →</label>
4743     </div>
4744 
4745 <style>
4746 .animated-title {
4747     text-align: center;
4748     font-weight: bold;
4749     color: #079c02;
4750     font-size: 28px;
4751     position: relative;
4752     animation: glow 2s infinite alternate, moveUpDown 3s infinite;
4753 }
4754 
4755 /* Efek glow / bercahaya hijau */
4756 @keyframes glow {
4757     0% { text-shadow: 0 0 5px #079c02; color: #079c02; }
4758     50% { text-shadow: 0 0 20px #00ff55; color: #12d12b; }
4759     100% { text-shadow: 0 0 10px #1bff00; color: #079c02; }
4760 }
4761 
4762 /* Efek gerakan naik turun */
4763 @keyframes moveUpDown {
4764     0% { transform: translateY(0px); }
4765     50% { transform: translateY(-5px); }
4766     100% { transform: translateY(0px); }
4767 }
4768 </style>
4769 
4770 
4770<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/shopify-cartjs/1.1.0/cart.min.js"></script>
4770
4771 
4771<script>
4772   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});
4773 
4774   const productType = $("[data-product-type]").data("product-type")
4775   const productDate = Date.parse(new Date())
4776   
4777   const shop = 'outerbloom1.myshopify.com'
4778   const host = 'https://app.asmaraku.com'
4779   // const host = 'http://localhost:5001'
4780 
4781   const gsheet = "https://script.google.com/macros/s/AKfycbyqa6mPD6lVjU6hiHr12J8URZ2aJBGyxBsGQ0QtEIDari-rBk_9vSOITjSSmUXL1NwxEg/exec"
4782   
4783   const qrID = "041025" + randomString(4, 'aAbCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ')
4784 
4785   $("#properties-time").val(new Date().getTime())
4786 
4787   const isIOS = /iPhone|iPad|iPod/i.test(navigator.userAgent);
4788 
4789   if(!isIOS) {
4790     $("#full-date").attr("type", "button")
4791   }
4792 
4793   let dateTime = new Date();
4794   let today = dateTime.getDate();
4795   let day = dateTime.getDay();
4796   let hour = dateTime.getHours();
4797   let min = dateTime.getMinutes();
4798   let timeOfDay = hour + (min / 100);
4799 
4800   async function getFetch(url) {
4801     const response = await fetch(url);
4802     let status = false
4803     let result
4804     if(response.ok) {
4805       status = true
4806       result = await response.json();
4807     }
4808     return {
4809       status,
4810       data: result
4811     }
4812   }
4813 
4814   
4815 
4816   function setCookie(cname, cvalue, exMins) {
4817     var d = new Date();
4818     d.setTime(d.getTime() + (exMins*60*1000));
4819     var expires = "expires="+d.toUTCString();  
4820     document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
4821   }
4822 
4823   function getCookie(cname) {
4824     let name = cname + "=";
4825     let decodedCookie = decodeURIComponent(document.cookie);
4826     let ca = decodedCookie.split(';');
4827     for(let i = 0; i <ca.length; i++) {
4828       let c = ca[i];
4829       while (c.charAt(0) == ' ') {
4830         c = c.substring(1);
4831       }
4832       if (c.indexOf(name) == 0) {
4833         return c.substring(name.length, c.length);
4834       }
4835     }
4836     return "";
4837   }
4838 
4839   async function renderDate() {
4840     let dataDate = await getFetch(`${host}/api/shipping/date?domain=${shop}&productId=8144957800663&v=${Date.now()}`);
4841     console.log(dataDate, 'renderDate')
4842     const data = dataDate?.data
4843     const date = data.date
4844     const time = data.time
4845 
4846     console.log(date, 'DATE')
4847 
4848     const weekday = ["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];
4849     const monthly = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];
4850     const htmlDate = []
4851     for(let i = 0;i < date.length;i++) {
4852       const full = date[i].date
4853       const d = new Date(date[i].date);
4854       const day = weekday[d.getDay()];
4855       const dt = d.getDate();
4856       const mt = monthly[d.getMonth()];
4857       const yr = d.getFullYear();
4858       const isDate = Boolean(date[i].isEnabled)
4859       const cutoffpagi = date[i].cutoff?.pagi
4860       const cutoffsiang = date[i].cutoff?.siang
4861       const cutoffMalam = date[i].cutoff?.Malam
4862       var html = `
4863         <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'}>
4864           ${dt === today ?
4865             `Today<span>${dt < 10 ? '0' + dt : dt}</span>` :
4866             `${day}<span>${dt < 10 ? '0' + dt : dt}</span>`
4867           }
4868         </button>
4869       `
4870       htmlDate.push(html)
4871     }
4872     const htmlTime = []
4873     for(var i = 0;i < time.length;i++) {
4874       const timeText = time[i].text
4875       const timeTime = time[i].time
4876       const timeEnabled = time[i].isEnabled
4877       var html = `
4878           <button class="time-single calendarbutton2 btn steps-btn" data-time="${timeText}" ${timeEnabled ? '' : 'disabled'}>${timeText}<br/>${timeTime}</button>
4879         `
4880       htmlTime.push(html)
4881     }
4882     const deliveryDate = document.getElementById("deliveryDate");
4883     if(deliveryDate) {
4884       deliveryDate.insertAdjacentHTML("afterbegin", htmlDate.join(''))
4885       $("#deliveryTime").html(htmlTime)
4886       if(productType !== '') {
4887         console.log("clarity event " + productType + ' calendaring')
4888         window.clarity("event", `${productType} calendaringSchedule`)
4889         // window.clarity("set", productType, `calendaringSchedule - ${productDate}`)
4890       }
4891     }
4892   }
4893 
4894   async function getProvince(city) {
4895     let { data: { province } } = await getFetch(`${host}/api/shipping/address/province?city=${city}`);
4896     console.log(province, 'province')
4897     $("#province").val(province)
4898   }
4899 
4900   async function renderAddress() {
4901     let current
4902     if(getCookie("location_delivery")){
4903       current = getCookie("location_delivery").charAt(0).toUpperCase() + getCookie("location_delivery").slice(1)
4904     }
4905     let address = await getFetch(`${host}/api/shipping/address?domain=${shop}&productId=8144957800663`);
4906     console.log(address)
4907     const data = address?.data?.city
4908     const htmlAddress = []
4909     const grouping = []
4910     for(let i = 0;i < data?.length;i++) {
4911       if(data[i]){
4912         if(data[i]?.group) {
4913           grouping.push(data[i].group)
4914         }
4915         const price = rupiah.format(data[i]?.rate)
4916         let promo = '(Promo Free Delivery)'
4917         if(data[i]?.name === 'Jakarta - PickUp ASHTA'){
4918           promo = '(at SCBD, Ashta)'
4919         } else if(data[i]?.name === 'Jakarta - PickUp ITC'){
4920           promo = '(at Kuningan, ITC Kuningan)'
4921         } else if(data[i]?.name === 'BSD - PickUp'){
4922           promo = '(at Goldfinch Gading Serpong)'
4923         } else if(data[i]?.name === 'Kota Lainnya'){
4924           promo = ''
4925         }
4926         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>`)
4927       }
4928     }
4929     
4930     const deliveryCity = document.getElementById("cities");
4931     if(deliveryCity) {
4932       deliveryCity.insertAdjacentHTML("beforeend", htmlAddress.join(''))
4933       if(!isIOS) {
4934         $(deliveryCity).select2();
4935       }
4936     }
4937   }
4938 
4939   async function renderZip(v, v2, v3) {
4940     const deliveryZip = document.getElementById("zip");
4941     if(v === '') {
4942       return
4943     }
4944     let dataZip = await getFetch(`${host}/api/shipping/address/zip?city=${v}&city2=${v2}&city3=${v3}`);
4945     let zip = dataZip?.data?.zip
4946     console.log(zip)
4947     let htmlZip = []
4948     for(let i = 0; i < zip?.length;i++) {
4949       htmlZip.push(`<option value="${zip[i]?.postalCode} - ${zip[i]?.subdistrict}">${zip[i]?.postalCode} - ${zip[i]?.subdistrict} - ${zip[i]?.city}</option>`)
4950     }
4951     deliveryZip.insertAdjacentHTML("beforeend", htmlZip.join(''))
4952   }
4953 
4954   renderDate()
4955   renderAddress()
4956 
4957   let rupiah = new Intl.NumberFormat('id-ID', {
4958     style: 'currency',
4959     currency: 'IDR',
4960     maximumFractionDigits: 0, 
4961     minimumFractionDigits: 0
4962   });
4963 
4964   async function insertCard(data) {
4965     const response = await fetch(`${host}/api/card/new`, {
4966         method: "POST",
4967         headers: {
4968           'Content-Type': 'application/json',
4969         },
4970         body: data
4971     })
4972     const result = await response.json()
4973     let rowIndex = result?.data?.tableRange.split("Outerbloom!A1:J")[1]
4974     $("#greetingCard").attr("data-index", rowIndex)
4975     return result
4976   }
4977     
4978   async function updateCard(data){
4979     const rowIndex = $("#greetingCard").data("index")
4980     const response = await fetch(`${host}/api/card/update?rowIndex=${rowIndex}`, {
4981         method: "PUT",
4982         headers: {
4983           'Content-Type': 'application/json',
4984         },
4985         body: data
4986     })
4987     return response
4988   }
4989     
4990   function bytesToSize(bytes) {
4991     var sizes = ['b', 'kb', 'mb', 'gb', 'tb', 'p'];
4992     for (var i = 0; i < sizes.length; i++) {
4993       if (bytes <= 1024) {
4994         return bytes + ' ' + sizes[i];
4995       } else {
4996         bytes = parseFloat(bytes / 1024).toFixed(2)
4997       }
4998     }
4999     return bytes + ' P';
5000   }
5001 
5002   async function uploadMedia(uri, type) {
5003     nameq = $("#properties-nama-penerima").val()
5004     dear = $("#properties-kartu-nama-penerima").val()
5005     card = $("[data-properties=ucapan]").val()
5006     sender = $("#properties-kartu-nama-pengirim").val()
5007     photo = $("#properties-photo").val()
5008     video = $("#properties-video").val()
5009     status = "Product"
5010         
5011     const name = qrID
5012     let formData = new FormData(); 
5013     formData.append("file", uri);
5014     const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, {
5015       method: "POST", 
5016       body: formData
5017     })
5018     const result = await response.json();
5019     if(result) {
5020       const url = result.url
5021       if(type === 'image/jpeg') {
5022         $("#properties-photo").val(url)
5023         $(".preview-image").show()
5024         $(".remove-image").show()
5025         photo = url
5026       } else {
5027         $("#properties-video").val(url)
5028         $("#label-input-video span").text("Change File")
5029         $(".case-qrcode-preview p").text("Scan here for a secret message")
5030         $(".remove-media").show()
5031         $("#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>`)
5032         $("[for=input-video]").hide()
5033         video = url
5034       }
5035       $(".case-video-preview").show()
5036       $(".steps-card-preview").removeClass("loading")
5037       // updateCard(nameq, dear, card, sender, photo, video, status)
5038 
5039       $(".nextBtn").attr("disabled", false)
5040     }
5041   }
5042 
5043   function randomString(length, chars) {
5044     var result = '';
5045     for (var i = length; i > 0; --i) result += chars[Math.round(Math.random() * (chars.length - 1))];
5046     return result;
5047   }
5048 
5049   function getNoteCity(fulldate) {
5050     const h_1 = new Date(new Date().setDate(new Date().getDate() + 1))
5051     const weekday = ["Min","Sen","Sel","Rab","Kam","Jum","Sab"];
5052     const monthly = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];
5053     const d = new Date(h_1);
5054     const day = weekday[d.getDay()];
5055     const dt = d.getDate();
5056     const mt = monthly[d.getMonth()];
5057     const yr = d.getFullYear();
5058     const p = $("#cities").parent(".form-group")
5059   }
5060 
5061   function disabledSameDay() {
5062     let btnFirst = $("#deliveryDate").find("button:first-child")
5063     let getDay = new Date().getDay();
5064 
5065     
5066       
5067       if(getDay == 1 || getDay == 2 || getDay == 3 || getDay == 4 || getDay == 5){
5068         if(hour >= 14.00){
5069           btnFirst.attr("disabled", true)
5070         }
5071       } else if(getDay == 6){
5072         if(hour >= 16.00){
5073           btnFirst.attr("disabled", true)
5074         }
5075       } else if(getDay == 0){
5076         if(hour >= 16.00){
5077           btnFirst.attr("disabled", true)
5078         }
5079       }
5080       
5081     
5082   }
5083 
5084   function disabledays(date) {
5085     let ymd = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate();
5086     //if u have to disable a list of day
5087     let removeDays
5088     
5089     
5090     
5091         removeDays = ["2025-2-13", "2025-2-14"];
5092     
5093     if ($.inArray(ymd, removeDays) >= 0) {
5094       return [false];
5095     } else {
5096       let day = date.getDay();
5097       if(day == 0 && date.getDate() == 13 && date.getMonth() == 1){
5098           return [(day == 0),  ''];
5099       }
5100       
5101       if(day == 0){
5102         return [(day == 0),  ''];
5103       }
5104       
5105       
5106       return [(day != 0),  ''];
5107     }
5108   }
5109 
5110   /* Indonesian initialisation for the jQuery UI date picker plugin. */
5111   /* Written by Deden Fathurahman ([email protected]). */
5112   ( function( factory ) {
5113     if ( typeof define === "function" && define.amd ) {
5114 
5115       // AMD. Register as an anonymous module.
5116       define( [ "../widgets/datepicker" ], factory );
5117     } else {
5118 
5119       // Browser globals
5120       factory( jQuery.datepicker );
5121     }
5122   }( function( datepicker ) {
5123 
5124   datepicker.regional.id = {
5125     closeText: "Tutup",
5126     prevText: "&#x3C;mundur",
5127     nextText: "maju&#x3E;",
5128     currentText: "Today",
5129     monthNames: [ "January","February","March","April","May","Juny",
5130                   "July","August","September","October","November","December" ],
5131     monthNamesShort: [ "Jan","Feb","Mar","Apr","May","Jun",
5132                       "Jul","Agu","Sep","Oct","Nov","Dec" ],
5133     dayNames: [ "Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu" ],
5134     dayNamesShort: [ "Sun","Mon","Tue","Wed","Thu","Fri","Sat" ],
5135     dayNamesMin: [ "Mg","Sn","Sl","Rb","Km","jm","Sb" ],
5136     weekHeader: "Mg",
5137     dateFormat: "D, dd M",
5138     firstDay: 0,
5139     isRTL: false,
5140     showMonthAfterYear: false,
5141     yearSuffix: "" };
5142   datepicker.setDefaults( datepicker.regional.id );
5143 
5144   return datepicker.regional.id;
5145 
5146 } ) );
5147 
5148   function loadPopup() {
5149     $("#backgroundPopup").fadeIn("slow");
5150     $(".purchasePopup:not(.purchasePopupSpotify)").fadeIn("slow");
5151     const firstSection = $(".purchasePopup:not(.purchasePopupSpotify) .sectionPurchase").first()
5152     if(firstSection.hasClass("purchasePersonalize")) {
5153       if(productType !== '') {
5154         console.log("clarity event " + productType + ' personalize')
5155         window.clarity("event", `${productType} cardPersonalization`)
5156         // window.clarity("set", productType, `cardPersonalization - ${productDate}`)
5157       }
5158     } else if (firstSection.hasClass("sectionPurchaseBoard")) {
5159         console.log("clarity event " + productType + ' personalizeBoard')
5160         window.clarity("event", `${productType} personalizeBoard`)
5161         // window.clarity("set", productType, `personalizeBoard - ${productDate}`)
5162     }
5163     firstSection.removeClass("hide")
5164     
5165     // Auto-trigger addon loading when addon section becomes visible
5166     setTimeout(function() {
5167       const addonSection = $(".purchaseAddon")
5168       if(addonSection.length > 0 && !addonSection.hasClass("hide")) {
5169         if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) {
5170           $("[data-addon=upsell-all]").trigger("click")
5171         }
5172       }
5173     }, 200)
5174   }
5175 
5176   function disablePopup() {
5177     $("#backgroundPopup").fadeOut("slow");
5178     $(".purchasePopup").fadeOut("slow");
5179     $("#popupCart").fadeOut("slow");
5180   }
5181 
5182     function scrollTo(parent, div, dur) {
5183       $(parent).animate({
5184         scrollTop: $(div).offset().top
5185       }, dur);
5186     }
5187 
5188   function loadPopupPersonalize() {
5189     const div = "#purchaseProduct"
5190     const p = "html, body, .product-meta"
5191     $("p.error").remove()
5192     loadItemOccasion($("[data-occassion]").eq(0), "greeting-card-all")
5193     const isCity = $("#cities[required]")
5194     const isDate = $("#propDeliveryDate[required]")
5195     const isTime = $("#propDeliveryTime[required]")
5196     // loadPopup()
5197     if(isCity.val() !== '' && isDate.val() !== '' && isTime.val() !== '') {
5198       loadPopup()
5199     }
5200     if(isCity.val() == '') {
5201       isCity.parent(".row").append("<p class='error'>Choose delivery city</p>")
5202       scrollTo(p, div, 500)
5203     }
5204     if(isDate.val() == '') {
5205       isDate.parents(".row").append("<p class='error'>Choose delivery date</p>")
5206       scrollTo(p, div, 500)
5207     }
5208     if(isTime.val() == '') {
5209       isTime.parents(".row").append("<p class='error'>Choose delivery time</p>")
5210       scrollTo(p, div, 500)
5211     }
5212   }
5213 
5214   function quantityCounter() {
5215     $(document).on("click", ".item-card.selected .q_up", function () {
5216       var C = $(this).attr("data-id"),
5217           S =
5218               parseInt(
5219                   $(this)
5220                       .siblings(".quantity-cart-" + C)
5221                       .val()
5222               ) + 1;
5223       $(this).attr("data-quantity", S),
5224           $(this)
5225               .siblings(".quantity-cart-" + C)
5226               .val(S);
5227     }),
5228     $(document).on("click", ".item-card.selected .q_down", function () {
5229         var C = $(this).attr("data-id"),
5230             S = parseInt(
5231                 $(this)
5232                     .siblings(".quantity-cart-" + C)
5233                     .val()
5234             );
5235         0 < S && $(this).attr("data-quantity", S - 1),
5236             0 < S &&
5237                 $(this)
5238                     .siblings(".quantity-cart-" + C)
5239                     .val(S - 1);
5240     });
5241   }
5242 
5243   quantityCounter()
5244 
5245   const itemAddon = $(".item-card").length
5246   const nofree = $(".nofree").length
5247 
5248   const upsell = ''
5249   
5250   if(nofree === itemAddon) {
5251       // $("#itemAddons").html("<p>No Items available</p>")
5252   }
5253 
5254   $("#itemAddons .item-card").each(function(e){
5255       $("#itemAddons").attr("data-length", e)
5256   })
5257 
5258   $("[data-addon]").click(function(){
5259       
5260       
5261       
5262       const t = $(this)
5263       
5264       const data = t.data("addon")
5265       
5266       $("[data-addon]").removeClass("selected")
5267       t.addClass("selected")
5268       $.get(`https://outerbloom.com/collections/${data}/products.json`, function(data, status){
5269           const products = data.products
5270           const html = []
5271           for(let i = 0; i < products.length; i++) {
5272               const id = products[i].id
5273               const variantId = products[i].variants[0].id
5274               const img = products[i].images[0].src
5275               let img2 = img.split('.jpg')[0]
5276               const title = products[i].title
5277               const price = products[i].variants[0].price
5278               const tags = products[i].tags
5279               const qty = products[i].variants[0].available
5280               let type_upsell = ''
5281               if(tags.includes('upsell-item-standing')) {
5282                   type_upsell = 'standing'
5283               }
5284               console.log(type_upsell)
5285               if(type_upsell !== '') {
5286                   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}">
5287                       
5288                           <div class="card-image">
5289                               <img src="${img2}_150x.jpg" alt="${title}" width="" height="" />
5290                           </div>
5291                           <div class="card-meta">
5292                               <h5>${title}</h5>
5293                               <p>${price < 1 ? 'FREE' : rupiah.format(price)}</p>
5294                               <input id="card-${variantId}" type="hidden" name="" value="${variantId}">
5295                           </div>
5296                           <div class="card-qty">
5297                               <a data-quantity="1" type="submit" id="q_down-${variantId}" class="btn-qty-min q_down drawer-cart" data-id="${variantId}"><svg xmlns="https://photoin.io/images/2026/05/28/logo-kvtoto.png" width="12" height="2" viewBox="0 0 12 2" fill="none"><path d="M0 1.90869V0.908691H12V1.90869H0Z" fill="black"/></svg></a>  
5298                               <input maxlength="3" min="0" class="btn-qty text-center quantity-cart-${variantId}
5298" value="0" data-price=${price} name="quantity">
5299                               <a data-quantity="1" type="submit" class="btn-qty-plus q_up text-green drawer-cart" data-id="${variantId}"><svg xmlns="https://photoin.io/images/2026/05/28/logo-kvtoto.png" width="12" height="13" viewBox="0 0 12 13" fill="none">
5300 <path d="M0 6.87023V5.94715H5.53846V0.408691H6.46154V5.94715H12V6.87023H6.46154V12.4087H5.53846V6.87023H0Z" fill="black"/>
5301 </svg></a>   
5302                           </div>
5303                       </div>`
5304                   html.push(body)
5305               }
5306           }
5307           $("#itemAddons .row").html(html.length === 0 ? '<p>No Item available</p>' : html)
5308           $("#itemAddons").attr("data-length", products.length)
5309           // $('#itemAddons')[0].swiper.update();
5310       });
5311   })
5312 
5313   async function isAddon(){
5314     let ids = []
5315     $("#itemAddons .item-card.selected").each(function(i, e){
5316       const id = $(this).data("id")
5317       ids.push(id)
5318     })
5319     console.log(ids)
5320     return ids
5321   }
5322   
5323   $("#itemAddons").delegate(".item-card > div:not(.card-qty)", "click", async function(){
5324     const t = $(this).parent()
5325     const id = t.data("id")
5326     const btn =  t.parents(".purchaseAddon").find(".next-purchase-button")
5327     t.toggleClass("selected");
5328     //$(this).next("input").toggleAttr('name', 'id[]');
5329     if (t.hasClass('selected')) {
5330         t.find("input").val(1)
5331         t.find("input").attr('name', 'id[]');
5332     } else {
5333         t.find("input").val(0)
5334         t.find("input").removeAttr('name');
5335     }
5336     $("#properties-addons").val(addons)
5337     const is = await isAddon()
5338     if(is.length === 0) {
5339       btn.text("continue without add-ons")
5340       return
5341     }
5342     if(is.includes(8835692069079)) {
5343       btn.text("personalize acrylic frame")
5344     } else {
5345       btn.text("Continue")
5346     }
5347       
5348   })
5349 
5350   async function myAddon(data) {
5351     const c = $(".addonsPurchase .addons")
5352     let items = []
5353     
5354     const spotifyAddons = $(".spotifyAddons").find("[data-index]")
5355     // if(spotifyAddons.length > 0) {
5356     //   $(spotifyAddons).each(function(i, e){
5357     //     const spotifyLink = $(this).find(".spotifyLink").val()
5358     //     const spotifySong = $(this).find(".spotifySong").val()
5359     //     const spotifyArtist = $(this).find(".spotifyArtist").val()
5360     //     const spotifyFotoAddon = $(this).find(".resultPhotoSpotify").val()
5361     //     if(spotifyLink !== '') {
5362     //       spotifyAddon = `<div class="addon-item" data-id="46067682607319" data-qty="1">
5363     //         <div class="addon-itm-img">
5364     //           <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"/>
5365     //         </div>
5366     //         <div class="addon-itm-title">
5367     //           <span>[US] Outerbloom Acrylic Frame 4R</span>
5368     //         </div>
5369     //         <div class="addon-itm-line-total">
5370     //           <span>Rp 99.000</span>
5371     //         </div>
5372     //       </div>
5373     //       <div class="propsAddonSpotify row m-0">
5374     //         <div class="col-12 col-lg-2"></div>
5375     //           <div class="col-12 col-lg-10">
5376     //             <p>
5377     //               <span>spotify link</span>
5378     //               <span class="spotifyLinkAddon">${spotifyLink}</span>
5379     //             </p>
5380     //             <p>
5381     //               <span>uploaded photo</span>
5382     //               <span class="spotifyFotoAddon">${spotifyFotoAddon}</span>
5383     //             </p>
5384     //             <p>
5385     //               <span>song / playlist name</span>
5386     //               <span class="spotifySongAddon">${spotifySong}</span>
5387     //             </p>
5388     //             <p>
5389     //               <span>artist name</span>
5390     //               <span class="spotifyArtistAddon">${spotifyArtist}</span>
5391     //             </p>
5392     //           </div>
5393     //       </div>`
5394     //       items.push(spotifyAddon)
5395     //     }
5396     //   })
5397     // }
5398     for(let i = 0; i < data.length; i++) {
5399       if(data[i].title !== '[US] Outerbloom Acrylic Frame 4R' ) {
5400         const img = data[i].image
5401         const title = data[i].title
5402         const qty = data[i].qty
5403         const price = data[i].price
5404         const total = Number(qty) * Number(price)
5405         let addons = `<div class="addon-item" data-id="${data[i].id}" data-qty="${qty}">
5406               <div class="addon-itm-img">
5407                 <img src="${img}" alt="" width="70"/>
5408               </div>
5409               <div class="addon-itm-title">
5410                 <span>${title}</span>
5411               </div>
5412               <div class="addon-itm-line-price">
5413                 <span>${rupiah.format(price)}</span>
5414                 ${data[i].title == '[US] Outerbloom Acrylic Frame 4R' ? '' : `<span>x${qty}</span>`}
5415               </div>
5416               <div class="addon-itm-line-total">
5417                 <span>${rupiah.format(total)}</span>
5418               </div>
5419             </div>`
5420           items.push(addons)
5421       }
5422     }
5423     c.html(items)
5424     const parent = $(".purchaseAddon")
5425     const next = parent.next(".sectionPurchase")
5426     parent.addClass("hide")
5427     next.removeClass("hide")
5428     // if(items2.length === 0) return $("#popupCart").addClass("no-addon-cart")
5429     // $(".itemAddonCart").find("h4").text(`add-ons (${items2.length})`)
5430   }
5431 
5432   async function listAddon() {
5433     const data = $("#itemAddons").find(".selected")
5434     let ids = []
5435     $(data).each(function(){
5436       const id = $(this).data("variant")
5437       const image = $(this).find(".card-image img").attr("src")
5438       const title = $(this).find(".card-meta h5").text()
5439       const qty = $(this).find(".card-qty input").val()
5440       const price = $(this).find(".card-qty input").data("price")
5441       ids.push({
5442         id: Number(id),
5443         image,
5444         title,
5445         qty,
5446         price
5447       })
5448     })
5449     myAddon(ids)
5450   }
5451 
5452   async function customSpotify(idx, length, type){
5453     let isCard = false
5454     
5455     let p = $(".purchasePopupSpotify")
5456     const preLink = $(".spotifyLinkFirst").val()
5457     $("[data-index]").hide()
5458     p.find(".headerPurchase h3").text(`personalize spotify photo print${length > 1 ? ` - ${idx}` : ''}`)
5459     p.find(".regulerAddons, .purchase-button").hide()
5460     p.find(".spotifyAddons").show()
5461     
5462     const data = await trackUrl(preLink)
5463     
5464     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://photoin.io/images/2026/05/28/logo-kvtoto.png" width="13" height="11" viewB
5464ox="0 0 13 11" fill="none">
5465 <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"/>
5466 </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://photoin.io/images/2026/05/28/logo-kvtoto.png><path d="M14.5799 7.41992L2.32992 7.41992L7.57992 12.6699L6.91992 13.4199L0.419922 6.91992L6.91992 0.419922L7.57992 1.16992L2.32992 6.41992L14.5799 6.41992V7.41992Z"fill=black /></svg> <span>Back</span></button><button data-type="${isCard ? 'card' : ''}" ${isCard ? '' : 'id=addtocart-card'} class="text-uppercase btn w-100${type == 'addon' && idx == length ? ' finished' : ' no-addon'}" disabled>${isCard ? 'Continue Personalizing' : 'add to cart'}</button></div></div></div><div class="col-12 col-lg-6 columnRight"><div class=frame-spotify><div class=frameImage><div class=frameImageUploaded><svg xmlns="https://photoin.io/images/2026/05/28/logo-kvtoto.png" width="13" height="11" viewB
5466ox="0 0 13 11" fill="none">
5467 <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"/>
5468 </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>`
5469     // console.log(html)
5470     
5471     $(".spotifyAddons").append(html)
5472     
5473     $(`[data-index=${idx}]`).show()
5474     
5475     if (preLink !== '') {
5476       $(".btn-action .btn").attr("disabled", false)
5477     } else {
5478       $(".btn-action .btn").attr("disabled", true)
5479     }
5480 
5481     return html
5482     
5483   }
5484 
5485   $(".spotifyLinkFirst").keyup(async function(){
5486     const v = $(this).val()
5487     if(v.includes('spotify:user:spotify')) {
5488       const correct = v.split('user:spotify:')[1]
5489       console.log(correct, 'BNER')
5490       $(this).val(correct)
5491       return
5492     }
5493     if(v.includes("spotify:") || v.includes("https://open.spotify.com/")){
5494       const data = await trackUrl(v)
5495       if(!data || !data.status) {
5496         $(this).parent().addClass("error")
5497         // $(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>`)
5498         $("#personalizeBtnSpotify .btn").attr("disabled", true)
5499         return
5500       }
5501       $(this).parent().removeClass("error")
5502       // $(this).parent().remove("txt-error")
5503       $("#personalizeBtnSpotify .btn").attr("disabled", false)
5504     } else {
5505       $("#personalizeBtnSpotify .btn").attr("disabled", true)
5506     }
5507   })
5508 
5509   $(".purchaseAddon").delegate(".next-addon", "click", function(){
5510     const parent = $(this).parents(".purchaseAddon")
5511     const next = parent.next(".sectionPurchase")
5512     if(next.hasClass("purchaseAddress")) {
5513       if(productType !== '') {
5514         console.log("clarity event " + productType + ' purchaseDelivery')
5515         window.clarity("event", `${productType} purchaseDelivery`)
5516         // window.clarity("set", productType, `purchaseDelivery - ${productDate}`)
5517       }
5518     }
5519     const data = $("#itemAddons").find(".selected")
5520     const length = $(".quantity-cart-46067682607319").val()
5521     const checked = data.length;
5522     if(checked > 0) {
5523       if(length > 0) {
5524         $(".purchaseAddon").addClass("purchaseAddonSpotify")
5525         customSpotify(1, length, 'addon')
5526       } else {
5527         listAddon()
5528       }
5529     } else {
5530       parent.addClass("hide")
5531       next.removeClass("hide")
5532     }
5533   })
5534 
5535   $("#personalizeBtnSpotify .btn").click(async function(){
5536     const isCity = $("#cities[required]")
5537     const isDate = $("#propDeliveryDate[required]")
5538     if((isDate.length > 0 && isCity.length > 0) && (isCity.val() === '' || isDate.val() === '')) {
5539       alert('Please choose Delivery City & Delivery Date')
5540       return
5541     }
5542     const data = await customSpotify(1, 1, 'product')
5543     if(data) {
5544       $("#backgroundPopup").fadeIn("slow");
5545       $(".purchasePopupSpotify").fadeIn("slow");
5546 
5547       if(productType !== '') {
5548         console.log("clarity event " + productType + ' spotify')
5549         window.clarity("event", `${productType} spotify`)
5550         // window.clarity("set", productType, `purchaseDelivery - ${productDate}`)
5551       }
5552     }
5553   })
5554 
5555   function formatBytes(bytes, decimals = 2) {
5556     if (!+bytes) return '0 Bytes'
5557 
5558     const k = 1024
5559     const dm = decimals < 0 ? 0 : decimals
5560     const sizes = ['B', 'KB', 'MB']
5561 
5562     const i = Math.floor(Math.log(bytes) / Math.log(k))
5563 
5564     return `${parseFloat((bytes / Math.pow(k, i)).toFixed(dm))} ${sizes[i]}`
5565   }
5566 
5567   async function trackUrl(link){
5568     try {
5569       let trackId = link.split('/').pop().split('?')[0];
5570       let type = ''
5571       if(link.includes("spotify:")) {
5572         const uri = link.split('spotify:')[1]
5573         trackId = uri.split(':')[1]
5574         type = uri.split(':')[0] + 's'
5575       } else {
5576         if(link.match('track')){
5577           type = 'tracks'
5578         } else if(link.match('playlist')) {
5579           type = 'playlists'
5580         } else if(link.match('artist')) {
5581           type = 'artists'
5582         } else if(link.match('album')) {
5583           type = 'albums'
5584         }
5585       }
5586       console.log(`${host}/api/spotify/${type}/${trackId}`)
5587       const data = await getFetch(`${host}/api/spotify/${type}/${trackId}`)
5588       console.log(data, 'DATA')
5589       const song = data?.data?.name
5590       const artist = data?.data?.artist
5591       return {
5592         song, artist, type, trackId, status: data.status
5593       }
5594     } catch(err) {
5595       console.log(err)
5596     }
5597   }
5598 
5599   $(".spotifyAddons").delegate(".uploadPhotoSpotify", "change", async function(){
5600     const parent = $(this).parents("[data-index]")
5601     const preview = parent.find(".previewImage")
5602     const file = $(this)[0].files[0];
5603     if (file) {
5604         const reader = new FileReader();
5605         reader.onload = async function(e) {
5606           parent.find(".uploadResult label").hide()
5607           parent.find(".uploadedResult").remove()
5608           parent.find(".uploadResult").append(`<div class="uploadedResult d-flex" style="justify-content: space-between">
5609           <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>
5610           <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;">
5610<svg fill="none" height="11" viewBox="0 0 10 11" width="10" xmlns="https://photoin.io/images/2026/05/28/logo-kvtoto.png">
5611   <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 />
5612 </svg>
5613 </span></div></div>`)
5614           parent.find(".frameImageUploaded svg").hide()
5615           parent.find(".frameImage").addClass("uploaded")
5616           preview.attr("src", e.target.result);
5617           preview.show();
5618           let formData = new FormData(); 
5619           formData.append("file", file);
5620           const response = await fetch(`${host}/api/upload?name=${file.name}&type=image/jpeg&r=${Date.parse(new Date)}`, {
5621             method: "POST", 
5622             body: formData
5623           })
5624           const result = await response.json();
5625           if(result){
5626             parent.find(".resultPhotoSpotify").val(result.url)
5627           }
5628         }
5629         
5630         reader.readAsDataURL(file);
5631     } else {
5632         preview.hide();
5633     }
5634   });
5635 
5636   $(".spotifyAddons").delegate(".uploadResult", "click", function(){
5637     $(this).next("input[type=file]").trigger("click")
5638   })
5639 
5640   $(".spotifyAddons").delegate(".changeUpload", "click", function(){
5641     $(this).parents("input[type=file]").trigger("click")
5642   })
5643 
5644   $(".spotifyAddons").delegate(".removeUpload", "click", function(){
5645     const parent = $(this).parents("[data-index]")
5646     parent.find(".uploadPhotoSpotify").val("")
5647     parent.find(".uploadResult label").show()
5648     parent.find(".uploadedResult").remove()
5649     parent.find(".frameImageUploaded svg").show()
5650     parent.find(".previewImage").hide()
5651     parent.find(".frameImage").removeClass("uploaded")
5652   })
5653 
5654   $(".spotifyAddons").delegate("label.checkbox", "click", function(){
5655     const parent = $(this).parents("[data-index]")
5656     parent.toggleClass("checked")
5657   })
5658 
5659   $(".spotifyAddons").delegate(".spotifyLink", "change", async function(){
5660     const parent = $(this).parents("[data-index]")
5661     const link = $(this).val()
5662     const data = await trackUrl(link)
5663 
5664     console.log(data)
5665 
5666     if(data.song) {
5667       parent.find(".spotifySong").val(data.song)
5668       parent.find(".spotifyData").find("h3").text(data.song)
5669     }
5670     if(data.artist) {
5671       parent.find(".spotifyArtist").val(data.artist)
5672       parent.find(".spotifyData").find("p").text(data.artist)
5673     }
5674     parent.find(".spotifyCode img").attr("src", `https://scannables.scdn.co/uri/plain/png/FFFFFF/black/640/spotify:${data.type.slice(0, -1)}:${data.trackId}`)
5675     // https://scannables.scdn.co/uri/plain/png/FFFFFF/black/640/spotify:track:1er51HCEBhIAtoEemKuC3M
5676     if (data.status === true) {
5677       parent.find(".btn-action .btn").attr("disabled", false)
5678     } else {
5679       parent.find(".btn-action .btn").attr("disabled", true)
5680     }
5681   })
5682   
5683   $(".spotifyAddons").delegate(".spotifySong", "keyup", async function(){
5684     const parent = $(this).parents("[data-index]")
5685     const v = $(this).val()
5686     parent.find(".spotifyData h3").text(v)
5687   })
5688 
5689   $(".spotifyAddons").delegate(".spotifyArtist", "keyup", async function(){
5690     const parent = $(this).parents("[data-index]")
5691     const v = $(this).val()
5692     parent.find(".spotifyData p").text(v)
5693   })
5694 
5695   $(".spotifyAddons").delegate(".btn-action .btn:not(.no-addon)", "click", async function(){
5696     const parent = $(this).parents("[data-index]")
5697     const length = parent.data("length")
5698     const index = parent.data("index")
5699     const indexNext = Number(index) + 1
5700     customSpotify(indexNext, length, 'addon')
5701   })
5702 
5703   
5704   $(".spotifyAddons").delegate(".btn-action .btn.finished", "click", async function(){
5705     const parent = $(this).parents(".purchaseAddon")
5706     const next = parent.next(".sectionPurchase")
5707     parent.addClass("hide")
5708     next.removeClass("hide")
5709     next.find(".purchase-button").show()
5710     listAddon()
5711   })
5712 
5713   $(".spotifyAddons").delegate(".back-spotify", "click", async function(){
5714     const t = $(this).parents("[data-index]")
5715     const parent = $(this).parents(".sectionPurchase")
5716     const current = t.data("index")
5717     const prevCurrent = Number(current) - 1
5718     if(current == 1) {
5719       parent.removeClass("purchaseAddonSpotify")
5720       parent.find(".purchase-button").show()
5721       parent.find(".headerPurchase h3").text("Make It More Special with Add-Ons!")
5722       $(".spotifyAddons").empty()
5723       $(".regulerAddons").show()
5724       return
5725     }
5726     t.hide()
5727     t.prev("[data-index]").show()
5728     t.remove()
5729     parent.find(".headerPurchase h3").text(`personalize spotify photo print - ${prevCurrent}`)
5730   })
5731 
5732   $("#personalizeBtn .btn").click(async function() {
5733     loadPopupPersonalize()
5734   });
5735 
5736   $(".sectionPurchaseSpotify").delegate(".btn[data-type=card]", "click", function(){
5737     $(".sectionPurchaseSpotify").hide()
5738     loadPopupPersonalize()
5739   })
5740 
5741   $(".close-purchase-popup").click(function() {
5742       disablePopup();
5743   });
5744   $("#backgroundPopup").click(function() {
5745       // disablePopup();
5746   });
5747 
5748   $("#popupCart .close-purchase-popup").click(function() {
5749       location.reload()
5750   });
5751 
5752   $('#popupCart').on('hide.bs.modal', function (e) {
5753     location.reload()
5754   })
5755 
5756   $(".next-card").click(function(){
5757     const parent = $(this).parents(".sectionPurchase")
5758     const next = parent.next(".sectionPurchase")
5759     parent.addClass("hide")
5760     next.removeClass("hide")
5761   })
5762 
5763   $(".back-purchase-button").click(function(){
5764     const parent = $(this).parents(".sectionPurchase")
5765     const prev = parent.prev(".sectionPurchase")
5766     parent.addClass("hide")
5767     prev.removeClass("hide")
5768   })
5769   
5770   $(document).keypress(function(e) {
5771       if (e.keyCode == 27 && popupStatus == 1) {
5772           disablePopup();
5773       }
5774   });
5775   
5776   const parentImg = $(".case-img-preview")
5777   const parentVid = $(".case-video-preview")
5778   
5779   function readURL(input) {
5780     if (input.files && input.files[0]) {
5781       let reader = new FileReader();
5782 
5783       let type = 'image/jpeg'
5784       const size = input.files[0].size
5785       if(input.files[0].type.match('video/')){
5786         type = 'video/mp4'
5787         if(size > 15728640) {
5788           alert('File size exceeds maximum limit 15 MB')
5789           return
5790         }
5791       } else {
5792         if(size > 5242880) {
5793           alert('File size exceeds maximum limit 5 MB')
5794           return
5795         }
5796       }
5797 
5798       reader.onload = function (e) {
5799         $(".nextBtn").attr("disabled", true)
5800         if(type === 'image/jpeg') {
5801           
5802             $('.placeholder-image').hide();
5803             $('.preview-image').show()
5804             $('.preview-image').attr('src', e.target.result);
5805           
5806         } else {
5807           // parentVid.find(".ajax-loader").show();
5808           $(".steps-card-preview").addClass("loading")
5809         }
5810       }
5811 
5812       
5813 
5814       reader.readAsDataURL(input.files[0]);
5815     }
5816   }
5817 
5818   async function readURLPapan(input) {
5819     if (input.files && input.files[0]) {
5820       let reader = new FileReader();
5821 
5822       reader.onload = function (e) {
5823         $('.btn-upload-papan').siblings('label').hide();
5824         $('.btn-upload-papan img').attr('src', e.target.result);
5825         $('.btn-upload-papan img').show();
5826         $('.svgLogoPapan').hide();
5827       }
5828       
5829       const type = 'image/jpeg'
5830       const name = `logo-8144957800663-${Date.parse(new Date())}`
5831 
5832       let formData = new FormData(); 
5833       formData.append("file", input.files[0]);
5834       const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, {
5835         method: "POST", 
5836         body: formData
5837       })
5838       const result = await response.json();
5839       if(result) {
5840         const url = result.url
5841         $("[data-properties=papan-logo]").val(url)
5842       }
5843 
5844       reader.readAsDataURL(input.files[0]);
5845     }
5846   }
5847 
5848   async function readURLAddress(input) {
5849     console.log(input, 'readURLAddress')
5850     if (input.files && input.files[0]) {
5851       let reader = new FileReader();
5852 
5853       reader.onload = function (e) {
5854         $('.photo-address').attr('src', e.target.result);
5855         $('.photo-address').show();
5856       }
5857       
5858       const type = 'image/jpeg'
5859       const name = input.files[0].name?.split('.')[0]
5860 
5861       let formData = new FormData(); 
5862       formData.append("file", input.files[0]);
5863       const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, {
5864         method: "POST", 
5865         body: formData
5866       })
5867       const result = await response.json();
5868 
5869       reader.readAsDataURL(input.files[0]);
5870 
5871       return result
5872     }
5873   }
5874 
5875   
5876 
5877   
5878   async function addToCartUang() {
5879     var productAddOnId1 = 42122101162199;
5880     var productAddOnId2 = 42122101194967;
5881     var product_id = 8144957800663
5882     const data = {
5883       items: [
5884           {
5885               quantity: $("#Quantity-" + productAddOnId1).val(),
5886               id: productAddOnId1,
5887               "properties": { "Time": $("#properties-time").val() }
5888           },
5889           {
5890               quantity: $("#Quantity-" + productAddOnId2).val(),
5891               id: productAddOnId2,
5892               "properties": { "Time": $("#properties-time").val() }
5893           }
5894       ]
5895     }
5896     await fetch(window.Shopify.routes.root + 'cart/add.js', {
5897       method: 'POST',
5898       headers: {
5899         'Content-Type': 'application/json'
5900       },
5901       body: JSON.stringify(data)
5902     })
5903     .then(response => {
5904       console.error('Sukses Buket Uang:', response);
5905       $(".form-flower").submit()
5906     })
5907     .catch((error) => {
5908       console.error('Error Buket Uang:', error);
5909       $(".form-flower").submit()
5910     });
5911   }
5912   
5913   async function saveCard(){
5914     let isCard = true
5915     const kartu_penerima = $("[data-properties=penerima]").val() !== '' ? $("[data-properties=penerima]").val() : ''
5916     const kartu_pengirim = $("[data-properties=pengirim]").val() !== '' ? $("[data-properties=pengirim]").val() : ''
5917     const kartu_ucapan = $("[data-properties=ucapan]").val() !== '' ? $("[data-properties=ucapan]").val() : ''
5918     const foto = $("#properties-photo").val()
5919     const video = $("#properties-video").val()
5920     const data = JSON.stringify({
5921       "id": qrID, 
5922       "penerima": $("#properties-nama-penerima").val(), 
5923       "kartu_penerima": kartu_penerima, 
5924       "kartu_ucapan": kartu_ucapan, 
5925       "kartu_pengirim": kartu_pengirim, 
5926       "foto": foto,
5927       "video": video, 
5928       "productId": "8144957800663", 
5929       "order_name": "", 
5930       "status": "Cart"
5931     })
5932 
5933     
5934   }
5935 
5936   async function additem(items){
5937     try {
5938       let formData = items
5939       if(items?.length) {
5940         formData = {
5941            'items': items
5942         };
5943       }
5944   
5945       const add = await fetch(window.Shopify.routes.root + 'cart/add.js', {
5946         method: 'POST',
5947         headers: {
5948           'Content-Type': 'application/json',
5949           'X-Requested-With':'xmlhttprequest' /* XMLHttpRequest is ok too, it's case insensitive */
5950         },
5951         body: JSON.stringify(formData)
5952       })
5953   
5954       const data = await add.json();
5955       return data
5956     } catch(err){
5957       console.log('Error additem', err)
5958     }
5959   }
5960 
5961   async function addons(){
5962     let items = []
5963     $(".addon-item").each(function(){
5964       const p = $(this)
5965       const props = p.next(".propsAddonSpotify")
5966       const id = $(this).data("id")
5967       const quantity = $(this).data("qty")
5968       const propId = $("#properties-time").val()
5969       let properties = {}
5970       if(id === 46067682607319) {
5971         const link = props.find(".spotifyLinkAddon").text()
5972         const photo = props.find(".spotifyFotoAddon").text()
5973         const song = props.find(".spotifySongAddon").text()
5974         const artist = props.find(".spotifyArtistAddon").text()
5975         properties = {
5976           id: propId,
5977           "Spotify Link": link !== '' ? link : '-',
5978           "Spotify Photo": photo !== '' ? photo : '-',
5979           "Spotify Song": song !== '' ? song : '-',
5980           "Spotify Artist": artist !== '' ? artist : '-',
5981           type: 'addon'
5982         }
5983       } else {
5984         properties = { 
5985           "id": propId, 
5986           "type": "addon"
5987         }
5988       }
5989       items.push({
5990         id, 
5991         quantity, 
5992         properties
5993       })
5994     })
5995     return items
5996   }
5997 
5998   async function propItems() {
5999     let props = {}
6000     $("[data-properties]").each(function(e){
6001       let elementType = this.tagName;
6002       const k = $(this).data("properties")
6003       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') {
6004         const v = elementType === 'SELECT' ? $(this).find(":selected").val() : $(this).val();
6005         if(v !== '') {
6006           props[k] = v?.replace(/[\s\n]/g, '');
6007         }
6008       }
6009     })
6010     return props
6011   }
6012 
6013   async function showPopupCart(items){
6014     if(productType !== '') {
6015       console.log("clarity event " + productType + ' completeOrder')
6016       window.clarity("event", `${productType} completeOrder`)
6017       // window.clarity("set", productType, `completeOrder - ${productDate}`)
6018     }
6019     $("#popupCart").show()
6020     
6021       $(".propDeliveryCity").text($("#cities").val())
6022       $(".propDeliveryDate").text($("#propDeliveryDate").val())
6023       $(".propDeliveryTime").text($("#propDeliveryTime").val())
6024       $(".propDeliveryName").text($("[data-properties=nama-penerima]").val())
6025       $(".propDeliveryAddress").text($("[data-properties=alamat-penerima]").val())
6026       $(".propDeliveryPhone").text($("[data-properties=telepon-penerima]").val())
6027       $(".propDeliveryProv").text($("#province").val())
6028       $(".propDeliveryZip").text($("#zip").val())
6029       
6030     
6031 
6032     const addons = []
6033     if(items && items.length > 0) {
6034       for(let i = 1; i < items.length; i++) {
6035         const spotifyLink = items[i].properties['Spotify Link']
6036         const spotifyPhoto = items[i].properties['Spotify Photo']
6037         const spotifySong = items[i].properties['Spotify Song']
6038         const spotifyArtist = items[i].properties['Spotify Artist']
6039         const price = items[i].price / 100
6040         const props = spotifyLink ? `<div class="propsAddonCart row m-0">
6041                   <div class="col-12 col-lg-2"></div>
6042                   <div class="col-12 col-lg-10">
6043                     <p>
6044                       <span>spotify link</span>
6045                       <span>${spotifyLink}</span>
6046                     </p>
6047                     <p>
6048                       <span>Upload Photo</span>
6049                       <span>${spotifyPhoto}</span>
6050                     </p>
6051                     <p>
6052                       <span>song / playlist name</span>
6053                       <span>${spotifySong}</span>
6054                     </p>
6055                     <p>
6056                       <span>artist name</span>
6057                       <span>${spotifyArtist}</span>
6058                     </p>
6059                   </div>
6060                 </div>` : '';
6061         addons.push(`<div class="row m-0">
6062                   <div class="imgAddonCart col-2">
6063                     <img
6064                       width="43"
6065                       src="${items[i].image}"
6066                       alt=""
6067                     >
6068                   </div>
6069                   <div class="imgAddonTitlePrice col-10 align-self-center">
6070                     <div class="row justify-content-between m-0">
6071                       <div class="col-12 col-lg-8">
6072                         <h5>${items[i].title}</h5>
6073                       </div>
6074                       <div class="col-12 col-lg-4 text-lg-right">
6075                         <span>${rupiah.format(price)}</span>
6076                       </div>
6077                     </div>
6078                   </div>
6079                 </div>${props}`)
6080       }
6081     }
6082     // console.log(addons)
6083     if(addons.length === 0) {
6084       $(".itemAddonCart").hide()
6085       return
6086     }
6087     $(".toggleAddonCart h4").text(`add-ons (${items.length - 1})`)
6088     $(".wrapperItemAddonCart").html(addons)
6089   }
6090 
6091   const money = (money) => {
6092       return new Intl.NumberFormat('id-ID',
6093           { style: 'currency', currency: 'IDR', minimumFractionDigits: 0 }
6094       ).format(money);
6095   }
6096 
6097   async function showNoteMoney() {
6098     let qty50k = $("[data-properties='Uang 50k']").val()
6099     let qty100k = $("[data-properties='Uang 100k']").val()
6100     const total50k = Number(qty50k) * 50000
6101     const total100k = Number(qty100k) * 100000
6102     const total_all = total50k + total100k
6103     $(".prop50k").html(`<span>${qty50k} Lembar: <strong class="pl-1">${money(total50k)}</strong></span>`)
6104     $(".prop100k").html(`<span>${qty100k} Lembar: <strong class="pl-1">${money(total100k)}</strong></span>`)
6105     $(".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://legend.kvtotomat.shop/" target="_blank" style="text-decoration: underline;
6105 color: #8d3f2d">Customer Service</a> to confirm with proof of payment.</p>`)
6106   }
6107 
6108   async function removeImage() {
6109     const data = JSON.stringify({
6110       "ID": $("#properties-properties-qrId").val(), 
6111       "Kartu Nama Penerima": $("#properties-kartu-nama-penerima").val(), 
6112       "Kartu Nama Pengirim": $("#properties-kartu-nama-pengirim").val(), 
6113       "Kartu Ucapan": $("[data-properties=ucapan]").val(), 
6114       "Nama Penerima": $("#properties-nama-penerima").val(), 
6115       "Order Number":"",
6116       "Status":"Product", 
6117       "Foto": "", 
6118       "Media": $("#properties-video").val(), 
6119       "Image": "8144957800663"
6120     })
6121     const remove = updateCard(data)
6122     if(remove) {
6123       $(this).hide()
6124       $("#properties-photo").val("-")
6125       $(".placeholder-image").show()
6126       $(".preview-image").attr("src", "")
6127     }
6128   }
6129 
6130   async function removeVideo() {
6131     const data = JSON.stringify({
6132       "ID": $("#properties-properties-qrId").val(), 
6133       "Kartu Nama Penerima": $("#properties-kartu-nama-penerima").val(), 
6134       "Kartu Nama Pengirim": $("#properties-kartu-nama-pengirim").val(), 
6135       "Kartu Ucapan": $("[data-properties=ucapan]").val(), 
6136       "Nama Penerima": $("#properties-nama-penerima").val(), 
6137       "Order Number":"",
6138       "Status":"Product", 
6139       "Foto": $("#properties-photo").val(), 
6140       "Media": "", 
6141       "Image": "8144957800663"
6142     })
6143     const remove = updateCard(data)
6144     if(remove) {
6145       $("#properties-video").val("-")
6146       $(this).find("img").hide()
6147       $(this).hide()
6148       $(this).prev("p").text("Add video to make it more special (optional)")
6149       $("#label-input-video").show()
6150       $("#label-input-video span").text("Upload Video")
6151       $(".case-video-preview p span").remove()
6152     }
6153   }
6154 
6155   async function loadItemOccasion(t, occasion) {
6156     const name = occasion?.replace('greeting-card-', '')
6157     $("#kartu-ucapan").val("")
6158     $("[data-occassion]").removeClass("selected")
6159     $("[data-properties=ucapan]").val("")
6160     $("#save-card").attr("disabled", true)
6161     t.addClass("selected")
6162     $("#show_note").attr("data-card-occassion", name)
6163     $.get(`https://outerbloom.com/collections/${occasion}/products.json`, function(data, status){
6164         const products = data.products
6165         const html = []
6166         for(let i = 0; i < products.length; i++) {
6167             const id = products[i].id
6168             const variantId = products[i].variants[0].id
6169             const img = products[i].images[0].src
6170             const title = products[i].title
6171             const price = products[i].variants[0].price
6172             const qty = products[i].variants[0].inventory_quantity
6173             const body = `<div class="item-card${price < 1 ? ' free' : ' nofree'}${i === 0 ? ' selected' : ''}" data-id=${id}>
6174                 <label for="card-${variantId}"></label>
6175                     <div class="card-image">
6176                         <img src="${img}" alt="${title}" width="" height="" />
6177                     </div>
6178                     <div class="card-meta text-center">
6179                         <h5>${title}</h5>
6180                         <p>${price < 1 ? 'FREE' : rupiah.format(price)}</p>
6181                         <input id="card-${variantId}" type="radio" name="id" value="${variantId}" data-price="${price}">
6182                     </div>
6183                 </div>`
6184             html.push(body)
6185         }
6186         const withoutCard = `<div class="item-card item-without-card">
6187                 <label for="card-0"></label>
6188                     <div class="card-image">
6189                         <img src="https://cdn.shopify.com/s/files/1/1589/6833/t/129/assets/without-card.png?v=1747632283" alt="Without card" width="" height="" />
6190                     </div>
6191                     <div class="card-meta text-center">
6192                         <h5>
6192Send without a greeting card</h5>
6193                         <input id="card-0" type="radio" name="id" value="" data-price="">
6194                     </div>
6195                 </div>`
6196         $("#itemCards .items-card").html(html.length === 0 ? '<p>No Item available</p>' : html.join(""))
6197     });
6198   }
6199         
6200   $(document).ready(function(){
6201 
6202     // Observer to auto-trigger addon loading when addon section becomes visible
6203     const addonObserver = new MutationObserver(function(mutations) {
6204       mutations.forEach(function(mutation) {
6205         const target = $(mutation.target)
6206         if(target.hasClass('purchaseAddon') && mutation.type === 'attributes' && mutation.attributeName === 'class') {
6207           if(!target.hasClass('hide')) {
6208             // Addon section just became visible, ensure items are loaded
6209             setTimeout(function() {
6210               if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) {
6211                 console.log("Auto-triggering addon load...")
6212                 $("[data-addon=upsell-all]").trigger("click")
6213               }
6214             }, 150)
6215           }
6216         }
6217       })
6218     })
6219     
6220     // Start observing addon section
6221     const addonSection = document.querySelector('.purchaseAddon')
6222     if(addonSection) {
6223       addonObserver.observe(addonSection, { 
6224         attributes: true, 
6225         attributeFilter: ['class'] 
6226       })
6227     }
6228 
6229     $(".purchasePopup").delegate("#addtocart-card", "click", async function(){
6230     
6231     $(this).find("span").addClass("loading")
6232     let isValid = true
6233     $(".formAddressPurchase [required]").each(function(){
6234       const t = $(this)
6235       const input = t.val()
6236       const p = t.parent()
6237       if(input === '') {
6238         p.addClass("error")
6239         isValid = false
6240       }
6241     })
6242 
6243     if(!isValid) {
6244       $(this).find("span").removeClass("loading")
6245       return
6246     }
6247     
6248     let items = []
6249     const mainProps = {
6250       
6251         "Delivery Date": $("#propDeliveryDate").val(),
6252         "Delivery Time": $("#propDeliveryTime").val() !== '' ? $("#propDeliveryTime").val() : '-' ,
6253         "Kota Pengiriman": $("#cities").val(),
6254         "Nama Penerima": $("[data-properties=nama-penerima]").val() !== '' ? $("[data-properties=nama-penerima]").val() : '-' ,
6255         "Alamat Penerima": $("[data-properties=alamat-penerima]").val() !== '' ? $("[data-properties=alamat-penerima]").val() : '-' ,
6256         "Kodepos": $("#zip").val() !== '' ? $("#zip").val() : '-' ,
6257         "Telepon Penerima": $("[data-properties=telepon-penerima").val() !== '' ? $("[data-properties=telepon-penerima").val() : '-' ,
6258       
6259       
6260         "Papan Nama Penerima": $("[data-properties=penerima]").val() !== '' ? $("[data-properties=penerima]").val() : '-' ,
6261         "Papan Ucapan": $("[data-properties=ucapan]").val() !== '' ? $("[data-properties=ucapan]").val() : '-' ,
6262         "Papan Nama Pengirim": $("[data-properties=pengirim]").val() !== '' ? $("[data-properties=pengirim]").val() : '-' ,
6263         "Papan Logo": $("[data-properties=papan-logo]").val() !== '' ? $("[data-properties=papan-logo]").val() : '-' ,
6264         "Foto Alamat": $("[data-properties=foto-alamat]").val() !== '' ? $("[data-properties=foto-alamat]").val() : '-' ,
6265       
6266       
6267       "Province": $("#province").val() !== '' ? $("#province").val() : '-' ,
6268       "Country": $("#properties-kota-pengiriman-country").val() !== '' ? $("#properties-kota-pengiriman-country").val() : '-' ,
6269       "Shipping": $("#properties-shipping").val() !== '' ? $("#properties-shipping").val() : '-' ,
6270       "Company": $("[data-properties=company]").val() !== '' ? $("[data-properties=company]").val() : '-' ,
6271       "id": $("#properties-time").val() !== '' ? $("#properties-time").val() : '-',
6272       "type": 'product'
6273     }
6274     const props = await propItems()
6275     properties = {...mainProps, ...props };
6276     const id = $("#productSelect").find('option:selected').val()
6277     console.log(id, 'main ID')
6278     const mainItem = {
6279       id: Number(id),
6280       quantity: 1,
6281       properties
6282     }
6283     items.push(mainItem)
6284     const cardId = $("#itemCards").find(".selected input").val()
6285     const cardItem = {
6286       id: Number(cardId),
6287       quantity: 1,
6288       properties: { "id": $("#properties-time").val() !== '' ? $("#properties-time").val() : '-', type: 'card' }
6289     }
6290     console.log(cardId, 'cardId')
6291     if(cardId) {
6292       items.push(cardItem)
6293     }
6294     const addon = await addons()
6295     if(addon) {
6296       for(let i = 0;
6296 i < addon.length; i++){
6297         items.push({
6298           id: addon[i].id,
6299           quantity: addon[i].quantity,
6300           properties: addon[i].properties
6301         })
6302       }
6303     }
6304     const addItems = await additem(items)
6305     console.log(addItems.items, 'add items')
6306     if(addItems) {
6307       $(this).find("span").removeClass("loading")
6308       disablePopup()
6309       showPopupCart(addItems.items)
6310       
6311       localStorage.setItem("items", JSON.stringify(addItems.items))
6312     }
6313   })
6314   
6315   $("#addtocart-cart .btn").click(async function(){
6316     const id = $("#productSelect").find('option:selected').val()
6317     const mainProps = {
6318       id: $("#properties-time").val() !== '' ? $("#properties-time").val() : '-', 
6319       type: 'product'
6320     }
6321     const props = await propItems()
6322     const properties = { ...mainProps, ...props };
6323     const items = {
6324       id: Number(id),
6325       quantity: 1,
6326       properties
6327     }
6328     const addItems = await additem(items)
6329     if(addItems) {
6330       showPopupCart(addItems.items)
6331       localStorage.setItem("items", JSON.stringify(addItems))
6332     }
6333   })
6334 
6335   $(".formAddressPurchase [required]").change(function(){
6336     const t = $(this)
6337     const p = t.parent()
6338     const v = t.val()
6339     if(v !== '') {
6340       p.removeClass("error")
6341     }
6342   })
6343 
6344   $("#save-card").click(async function(){
6345     const parent = $(this).parents(".sectionPurchase")
6346     const next = parent.next(".sectionPurchase")
6347     $(this).find("span").addClass("loading")
6348     const card = await saveCard()
6349     console.log(card, 'ssaveCCC')
6350     if(card?.status === 200 || card?.status === 201) {
6351       $(".scanCard").removeClass("hide")
6352       $(this).find("span").removeClass("loading")
6353       parent.addClass("hide")
6354       next.removeClass("hide")
6355       if(next.hasClass("purchaseAddon")) {
6356         $("[data-addon=upsell-all]").click()
6357         console.log("clarity event addons")
6358         window.clarity("event", `${productType} add-ons`)
6359         // Ensure addon items are loaded when entering addon popup
6360         setTimeout(function() {
6361           if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) {
6362             $("[data-addon=upsell-all]").trigger("click")
6363           }
6364         }, 100)
6365       }
6366       if(next.hasClass("purchaseAddress")) {
6367         $("#zip").select2()
6368       }
6369     }
6370   })
6371 
6372   $("#skip-card").click(async function(){
6373     $("#greetingCard [data-properties]").val("")
6374     $("#properties-photo").val("")
6375     $("#properties-video").val("")
6376     const parent = $(this).parents(".sectionPurchase")
6377     const next = parent.next(".sectionPurchase")
6378     parent.addClass("hide")
6379     next.removeClass("hide")
6380     // $("#itemCards").html("")
6381     removeImage()
6382     removeVideo()
6383     if(next.hasClass("purchaseAddon")) {
6384       $("[data-addon='upsell-all']").click()
6385       console.log("clarity event addons")
6386       window.clarity("event", `${productType} add-ons`)
6387       // Ensure addon items are loaded when entering addon popup
6388       setTimeout(function() {
6389         if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) {
6390           $("[data-addon='upsell-all']").trigger("click")
6391         }
6392       }, 100)
6393     }
6394     if(next.hasClass("purchaseAddress")) {
6395       $("#zip").select2()
6396     }
6397   })
6398 
6399   $("#msgCard").click(async function(){
6400       $(this).parent().addClass("loading")
6401       let occasion = $(".selected[data-occassion]").data("occassion")
6402       occasion = occasion?.replace("greeting-card-", "")
6403       const { data } = await getFetch(`${host}/api/card/template/occasion?name=${occasion}`);
6404       const d = data?.data
6405       for(let i = 0; i < d.length; i++) {
6406         const num = Math.floor(Math.random() * (d.length - 1 + 1) + 1);
6407         const greeting = d[num]?.Greeting
6408         $(".greetingCard textarea").val(greeting)
6409         $(this).parent().removeClass("loading")
6410       }
6411       $("#save-card").attr("disabled", false)
6412     })
6413 
6414   $(".sectionPurchaseBoard .next-purchase-button").click(function(){
6415     const parent = $(this).parents(".sectionPurchase")
6416     const next = parent.next(".sectionPurchase")
6417     parent.addClass("hide")
6418     next.removeClass("hide")
6419   })
6420 
6421   $("#editCard").click(function(){
6422     $(".custom-card").show()
6423     $(".preview-card").hide()
6424   })
6425 
6426   $("#first_name, #last_name").change(function(){
6427     const v = $(this).val()
6428     const first_name = $("#first_name").val()
6429     const last_name = $("#last_name").val() !== '' ? ' ' + $("#last_name").val() : ''
6430     $("[data-properties=nama-penerima]").val(first_name+last_name)
6431   })
6432 
6433   $("[data-occassion]").click(function(){
6434       const t = $(this)
6435       const p = t.parents(".sectionPurchase")
6436       // $(".greetingCard").addClass("disabled")
6437       const occasion = t.data("occassion")
6438       loadItemOccasion(t, occasion)
6439   })
6440 
6441   $("#itemCards").delegate(".item-card:not(.item-without-card) label", "click", function(){
6442       const id = $(this).parent(".item-card").data("id")
6443       const t = $(this).parent(".item-card")
6444       const target = t.find("input")
6445       const v = $('.item-card input[type="radio"]:checked').val();
6446       $("#itemCards .item-card").removeClass("selected")
6447       t.addClass("selected")
6448       $("#itemCards .item-card").find("input").attr("name", "")
6449       if(target.length > 0) {
6450           target.attr("name", "id[]")
6451           $("#properties-card").val(id)
6452           $(".greetingCard").removeClass("disabled")
6453           $("#skip-card").attr("disabled", false)
6454       } else {
6455           $("#properties-card").val("")
6456       }
6457   })
6458 
6459   $("#itemCards").delegate(".item-without-card label", "click", function(){
6460     const parent = $(this).parents(".sectionPurchase")
6461     const next = parent.next(".sectionPurchase")
6462     $(".greetingCard").addClass("disabled")
6463     parent.addClass("hide")
6464     next.removeClass("hide")
6465     $("[data-addon=upsell-all]").click()
6466     $("#zip").select2()
6467   })
6468 
6469   $("[data-properties=ucapan]").keyup(function(){
6470     const v = $(this).val()
6471     const p = $(this).parents(".sectionPurchase")
6472     $(".purchaseAddress").find(".greetingCard textarea").val(v)
6473     if(v.length > 3) {
6474       p.find(".next-purchase-button").attr("disabled", false)
6475     } else {
6476       p.find(".next-purchase-button").attr("disabled", true)
6477     }
6478   })
6479 
6480   $("[data-properties=penerima]").keyup(function(){
6481     const v = $(this).val()
6482     $(".purchaseAddress").find("[data-properties=penerima]").val(v)
6483   })
6484 
6485   $("[data-properties=pengirim]").keyup(function(){
6486     const v = $(this).val()
6487     $(".purchaseAddress").find("[data-properties=pengirim]").val(v)
6488   })
6489 
6490   $(document).click(function(e){
6491 
6492      if($(e.target).closest('.wrapperPopupCart').length != 0) return false;
6493      // $('#popupCart').fadeOut('slow');
6494     // location.reload()
6495   });
6496 
6497   $(".toggleAddonCart").click(function(){
6498     const p = $(this).parent(".itemAddonCart")
6499     p.toggleClass("open")
6500   })
6501 
6502   $(".btnViewCart").click(function(){
6503     window.location.href = "https://outerbloom.com/cart";
6504   })
6505 
6506   $(".btnViewCheckout").click(async function(){
6507     $(this).find("span").addClass("loading")
6508     let zip = $("#zip").val()
6509     const first_name = $("#first_name").val()
6510     const last_name = $("#last_name").val()
6511     const company = $("#company").val() !== '' ? $("#company").val() : ''
6512     const address1 = $("#delivery_address").val()
6513     const address2 = zip && zip !== '' ? zip?.split(' - ')[1] : ''
6514     zip = zip && zip !== '' ? zip?.split(' - ')[0] : ''
6515     const phone = $("#recipient_number").val()
6516     const city = $("#cities").val()
6517     const province = $("#province").val()
6518     const country = 'Indonesia'
6519     const ver = Date.parse(new Date())
6520     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}`
6521 
6522     const clear = await fetch(`/cart/clear.js`, {method: 'POST'})
6523     if(clear.status === 200) {
6524       const savedItem = window.localStorage.getItem("items");
6525       const items = JSON.parse(savedItem)
6526       const addItems = await additem(items)
6527       console.log(addItems, 'new addItems')
6528       if(addItems) {
6529         window.location.href = `https://outerbloom.com/checkout?${params}`;
6530       }
6531     }
6532   })
6533 
6534   $(".btnContinueShopping").click(function(){
6535     window.location.href = "https://outerbloom.com/";
6536   })
6537 
6538     if (isIOS) {
6539       $(".empty-state-card").click(function(){
6540         $("#input-foto").trigger("click")
6541       })
6542       $(".btn-upload-image").click(function(){
6543         $("#input-foto").trigger("click")
6544       })
6545       $("[for=input-video]").click(function(){
6546         $("#input-video").trigger("click")
6547       })
6548       $(".btn-upload-papan").click(function(){
6549         $("#logoPapan").trigger("click")
6550       })
6551     }
6552   
6553     $("[data-properties]").each(function(){
6554       const select = $(this).parents(".form-group").find("select")
6555       $(this).change(function(){
6556         const name = $(this).data("properties")
6557         const v = $(this).val()
6558         if (name == 'telepon-penerima') {
6559           let phone = v.replace(/[^0-9]/g, '')
6560           $(this).val(phone);
6561           $("#properties-telepon-penerima").val(phone)
6562           $('.iti__search-input').val('-') 
6563         } else {
6564           $("#properties-" + name).val(v)
6565         }
6566       })
6567       select.on("change", function(){
6568         const name = $(this).data("properties")
6569         const v = $(this).val()
6570         $("#properties-" + name).val(v)
6571       })
6572     })
6573 
6574     $("#show_note").click(function(){
6575       nameq = $("#properties-nama-penerima").val()
6576       dear = $("#properties-kartu-nama-penerima").val()
6577       card = $("[data-properties=ucapan]").val()
6578       sender = $("#properties-kartu-nama-pengirim").val()
6579       photo = $("#properties-photo").val()
6580       video = $("#properties-video").val()
6581       updateCard(nameq, dear, card, sender, photo, video, status)
6582     })
6583 
6584     $(".remove-image").click(function(e){
6585       e.preventDefault()
6586       $(this).find("img").show()
6587       removeImage()
6588     })
6589 
6590     $(".remove-media").click(function(e){
6591       e.preventDefault()
6592       $(this).find("img").show()
6593       removeVideo()
6594     })
6595 
6596     
6597 
6598     $("[data-delivery_method]").click(function(e){
6599       e.preventDefault()
6600       const t = $(this)
6601       const data = t.data("delivery_method")
6602       $("[data-delivery_method]").removeClass("selected")
6603       t.addClass("selected")
6604       $("#cities").val("")
6605       $("#properties-delivery-date").val("-")
6606       $("#deliveryDate button").removeClass("selected")
6607       $("#full-date").val("Full Calendar →")
6608       $("#propDeliveryDate").val("")
6609       const step3 = $("#step-3")
6610       if(data.match('PickUp')) {
6611         $(".selfpickup-point").show()
6612         step3.find("[data-finished=false]").hide()
6613         $("#panel-4").hide()
6614         step3.find("[data-finished=true]").show()
6615         $("#cities").attr("required", false)
6616         $("#form-group-city").hide()
6617         $("#row-delivery-time").hide()
6618         $("#propDeliveryTime, #properties-delivery-time, #properties-nama-penerima, #properties-alamat-penerima, #properties-kodepos, #properties-kodepos, #properties-telepon-penerima").val("-")
6619         $("#propDeliveryTime").attr("required", false)
6620         // $("#deliveryDate").find("button:first-child").addClass("stop")
6621         $(".form-selfpickup").show()
6622         $(".form-delivery").hide()
6623         $(".form-delivery").find("input, textarea, select").val("")
6624         $(".form-delivery").find("input, textarea, select").attr("required", false)
6625         $("#properties-shipping").val("0")
6626         $("#noteDeliveryDate").hide()
6627         $(".form-delivery .form-control").attr("required", false)
6628         $("#stepNav4").hide()
6629         
6630         $("#deliveryDate").find("button:nth-child(1)").addClass("stop")
6631         
6632         
6633         
6634         if(timeOfDay >= 16.01){
6635           $("#deliveryDate").find("button:nth-child(2)").addClass("stop")
6636         }
6637       } else {
6638         
6639         
6640         $("#deliveryDate").find("button:nth-child(1)").removeClass("stop")
6641         step3.find("[data-finished=false]").show()
6642         $("#panel-4").show()
6643         step3.find("[data-finished=true]").hide()
6644         $("#cities").attr("required", true)
6645         $(".selfpickup-point").hide()
6646         $("#form-group-city").show()
6647         $("#cities").val('').trigger('change');
6648         $("#properties-kota-pengiriman").val("-")
6649         
6650         $("#row-delivery-date, #row-delivery-time").show()
6651         $("#propDeliveryDate, #propDeliveryTime").attr("required", true)
6652         $("#deliveryDate").find("button").removeClass("stop")
6653         $(".form-selfpickup").hide()
6654         $(".form-delivery").show()
6655         $(".form-delivery").find("input, textarea, select").attr("required", true)
6656         $(".form-delivery [data-properties]").attr("readonly", false)
6657         $("#properties-kodepos").val("-")
6658         $("#properties-alamat-penerima").val("-")
6659         $(".form-delivery .form-control").attr("required", true)
6660         $(this).parents(".setup-content").attr("id", "step-1")
6661         
6662         $("#stepNav4").show()
6663       }
6664     })
6665 
6666     $("[name=selfpickup]").click(function(){
6667         const p = $(this).parents(".row-pickup")
6668         const pickupCity = $("input[name='selfpickup']:checked").val();
6669         const pickupAddress = $("input[name='selfpickup']:checked").data("address");
6670         const pickupZip = $("input[name='selfpickup']:checked").data("zip");
6671 
6672         $(".row-pickup").removeClass("selected")
6673         p.addClass("selected")
6674         
6675         $("#properties-kota-pengiriman").val(pickupCity)
6676         $("#province").val("Jakarta")
6677         $("#properties-alamat-penerima").val(pickupAddress)
6678         $("#properties-kodepos").val(pickupZip)
6679     })
6680 
6681     $("#cities").change(function(e){
6682       e.preventDefault()
6683       $(this).parent(".row").find("p.error").remove()
6684       $("#full-date").val("Full Calendar")
6685       $("#deliveryDate, #deliveryDateFull label ").show()
6686       $("#deliveryDateFull").removeClass("filled")
6687       $(".btnChangeDeliveryDate").addClass("hide")
6688       $("#full-date").prop('disabled', false);
6689       $("#stepNav2, #stepNav3, #stepNav4").removeClass("btn-success")
6690       $("#stepNav2, #stepNav3, #stepNav4").find("a").attr("disabled", true)
6691       const step3 = $("#step-3")
6692       $("#cityNote").remove()
6693       $("#noteDeliveryDate").hide()
6694       $("#noteDeliveryDate").empty()
6695       let v = $(this).val()
6696       let v2 = $('option:selected', this).attr('data-city');
6697       let v3 = $('option:selected', this).attr('data-province');
6698       let price = $('option:selected', this).attr('data-price');
6699       $("#country").val(v)
6700       $("#properties-kota-pengiriman").val(v)
6701       $("#properties-shipping").val(price)
6702       $("#deliveryDate button, #deliveryTime button, .calendarseasonal .button").removeClass("selected")
6703       $("#properties-delivery-date, #properties-delivery-time").val("-")
6704       $("#propDeliveryDate, #propDeliveryTime").val("")
6705       let note = $('option:selected', this).attr('data-note');
6706       if(v === 'Kota Lainnya') {
6707         $("#noteDeliveryDate").show()
6708         $("#noteDeliveryDate").text("Order akan segera dikirim. Estimasi tanggal diterima akan disesuaikan dengan waktu pengiriman oleh pihak ekspedisi ke lokasi Anda.")
6709         $("#zip").attr("required", false)
6710         $("#zip").hide()
6711         $("#propDeliveryDate, #propDeliveryTime").attr("required", false)
6712         $("#propDeliveryDate, #properties-delivery-date, #propDeliveryTime, #properties-delivery-time").val("-")
6713         $("#row-delivery-date, #row-delivery-time").hide()
6714         $("#properties-shipping").val("")
6715         // $(this).parents(".setup-content").attr("id", "step-2")
6716         
6717       } else {
6718         $("#noteDeliveryDate").hide()
6719         $("#zip").attr("required", true)
6720         $("#zip").show()
6721         $("#row-delivery-date, #row-delivery-time").show()
6722         $("#propDeliveryDate, #propDeliveryTime").attr("required", true)
6723         $("#deliveryDate").find("button").removeClass("stop")
6724         // $(this).parents(".setup-content").attr("id", "step-1")
6725         
6726       }
6727       
6728       
6729       
6730       // if(v !== 'Jakarta') {
6731       //   $("[data-type=upsell]").hide()
6732       // } else {
6733       //   $("[data-type=upsell]").show()
6734       // }
6735       // $('.collection-addons')[0].swiper.update();
6736       
6737       
6738       getProvince(v)
6739       $("#zip").html(`<option value="">Choose Postal Code</option>`)
6740       renderZip(v, v2, v3)
6741       
6742       disabledSameDay()
6743       
6744 
6745       if(v !== 'Jakarta' && v !== 'Depok' && v !== 'Bekasi' && v !== 'Tangerang') {
6746         
6747         $("#cardOccasion, #navAddon, .collection-addons").hide()
6748         
6749         $("[data-addon=giftcard]").show()
6750         $("[data-addon=giftcard]").click()
6751         $("#itemAddons").show()
6752         $("#flower-step").addClass("nonjadetabek")
6753       } else {
6754         $("#cardOccasion, #navAddon, .collection-addons").show()
6755         $("[data-addon=all]").click()
6756         $("#flower-step").removeClass("nonjadetabek")
6757       }
6758       
6759         if(v !== '') {
6760           $("#personalizeBtn .btn").attr("disabled", false)
6761         } else {
6762           $("#personalizeBtn .btn").attr("disabled", true)
6763         }
6764       
6765     })
6766 
6767     $("#zip").change(function(e){
6768       let v = $(this).val()
6769       var city = $("#cities").find('option:selected');
6770       $("#properties-kodepos").val(v)
6771       if(city === 'Kota Lainnya') {
6772         $(this).attr("required", true)
6773         $("#recipient-address").val("")
6774       }
6775     })
6776 
6777     
6778       var minDate = +7
6779       
6780     
6781 
6782     $("#full-date").datepicker({
6783       minDate,
6784       dateFormat: 'Mdd_yy', //Nop22_2021,
6785       
6786       beforeShowDay: disabledays,
6787       
6788       onSelect: function (date) {
6789         $("#deliveryDate, #deliveryDateFull label ").hide()
6790         $("#deliveryDateFull").addClass("filled")
6791         $(".btnChangeDeliveryDate").removeClass("hide")
6792         $("#full-date").prop('disabled', true);
6793         $('#propDeliveryDate, #properties-delivery-date').val('Kirim_'+date);
6794         $(".date-full").addClass("selected")
6795         $(".date-single, .calendar-group").removeClass("selected")
6796         $("#propDeliveryTime").val('')
6797         $("#properties-delivery-time").val('-')
6798         $(".time-single").removeClass("selected")
6799         
6800         
6801       }
6802     });
6803 
6804     $(".btnChangeDeliveryDate").click(function(){
6805         $("#deliveryDate, #deliveryDateFull label ").show()
6806         $("#deliveryDateFull").removeClass("filled")
6807         $(".btnChangeDeliveryDate").addClass("hide")
6808         $("#full-date").prop('disabled', false);
6809     })
6810   
6811     $("#deliveryDate").delegate(".calendarbutton:not(.date-full)", "click", function(e){
6812       e.preventDefault()
6813       $(this).parents("#row-delivery-date").find("p.error").remove()
6814       const fulldate = $(this).data("fulldate")
6815       const day = $(this).data("day")
6816       const date = $(this).data("date")
6817       const month = $(this).data("month")
6818       const year = $(this).data("year")
6819       const off_pagi = $(this).data("offpagi")
6820       const off_siang = $(this).data("offsiang")
6821       const off_Malam = $(this).data("offMalam")
6822       $(".calendarbutton").removeClass("selected")
6823       $(this).addClass("selected")
6824       $("#propDeliveryDate, #properties-delivery-date").val(`Kirim_${month}${date}_${year}`)
6825       $("#propDeliveryTime").val('')
6826       $("#properties-delivery-time").val('-')
6827       $(".calendarbutton2").removeClass("selected")
6828       $("#full-date").val("Full Calendar")
6829 
6830       
6831       if(off_pagi && timeOfDay > off_pagi) {
6832         $("[data-time=Morning]").attr("disabled", true)
6833       } else {
6834         $("[data-time=Morning]").attr("disabled", false)
6835       }
6836       if(off_siang && timeOfDay > off_siang) {
6837         $("[data-time=Afternoon]").attr("disabled", true)
6838       } else {
6839         $("[data-time=Afternoon]").attr("disabled", false)
6840       }
6841       
6842 
6843       
6844     })
6845     
6846     if(today === 14 && timeOfDay > 17.00) {
6847       $("#deliveryDate button:first-child").attr("disabled", true)
6848     }
6849   
6850     $("#deliveryTime").delegate(".calendarbutton2", "click", function(e){
6851       e.preventDefault()
6852       const time = $(this).data("time")
6853       const date = $("#propDeliveryDate").val()
6854       if(date == '') {
6855         return alert('Silakan pilih tanggal terlebih dahulu')
6856       }
6857       $(".calendarbutton2").removeClass("selected")
6858       $(this).addClass("selected")
6859       $("#propDeliveryTime, #properties-delivery-time").val(`KirimJam_${date.replace('Kirim_','')}_${time}`)
6860     })
6861       
6862     $('textarea.has-limit, input.has-limit').keyup(function () {
6863       max = this.getAttribute("maxlength");
6864       let len = $(this).val().length;
6865       let limit = $(this).siblings(".limit");
6866       if (len > max) {
6867         alert('you have reached the limit');
6868       } else {
6869         limit.text(`${len}/${max}`);
6870       }
6871     });
6872     
6873     $("#button-action-step .btn").click(function(){
6874       $(this).find("span").text("Processing...");
6875     });
6876 
6877     $(".finishBtn").on('click', function() {
6878       $(this).addClass("is-adding");
6879       // $(this).click();
6880     });
6881 
6882     $('.setup-panel .nav-item a.btn-success').trigger('click');
6883 
6884     $("#button-action .btn").click(function(){
6885       $("#flower-step").addClass("block");
6886       $("#button-action").hide();
6887     });
6888         
6889     $(".close-how-order").click(function(){
6890       $("#flower-step").removeClass("block");
6891       $("#button-action").show();
6892     });
6893 
6894     $("#input-foto, #input-video").change(function(e){
6895       readURL(this);
6896     });
6897 
6898     $("#logoPapan").change(function(){
6899       readURLPapan(this);
6900     });
6901 
6902     $("#address-upload").change(async function(){
6903       const upload_address = await readURLAddress(this)
6904       if(upload_address) {
6905         const url = upload_address.url
6906         $(".props-address-upload").val(url)
6907         $(".form-address").addClass("address-uploaded")
6908         $(".form-address-upload").addClass("uploaded")
6909 
6910         $(this).parents(".form-group").siblings(".form-group").find("[required]").attr("required", false)
6911       }
6912     })
6913 
6914     $(".address-manualy").click(function(){
6915       $(".form-address-upload").removeClass("uploaded");
6916       $(".photo-address").hide();
6917       $(".form-address").removeClass("address-uploaded")
6918       $("#formAddressPurchase").find(".form-control").attr("required", true)
6919     });
6920 
6921     $(".case-video-preview").delegate(".replace-video", "click", function(){
6922       $("#input-video").trigger("click")
6923     })
6924 
6925     $('.date-single').click(function(e) {
6926       e.preventDefault();
6927       $('.date-single').removeClass('selected');
6928       $('#full-date').removeClass('selected');
6929       $(this).addClass('selected');
6930       $('#full-date').html('Full' + '<br/>' + 'Calendar');
6931     });
6932     $('#full-date').click(function(e){
6933       e.preventDefault();
6934       $('.date-single').removeClass('selected');
6935       $(this).addClass('selected');
6936     });
6937     
6938     // $("tr").each(function(){
6939     //   if($(this).text().match('SKU')) {
6940     //     $(".sku-product").html($(this).parents("table").html())
6941     //   }
6942     // })
6943     
6944     $("#product-image").scroll(function(){
6945       $(".desc-add").each(function(){
6946         const img = $(this).find("img")
6947         const src = img.data("src")
6948         img.attr("src", src)
6949       })
6950     })
6951 
6952     $(".product-fixed").hide()
6953     
6954     let target = $("#personalizeBtn")
6955     
6956 
6957     $(".product-meta").scroll(function() {
6958         if ($(window).scrollTop() >= target.offset().top ) {
6959             $(".product-fixed").addClass("show")
6960         } else {
6961           $(".product-fixed").removeClass("show")
6962         }
6963     });
6964 
6965     $(window).scroll(function() {
6966         if ($(window).scrollTop() >= target.offset().top ) {
6967             $(".product-fixed").addClass("show")
6968         } else {
6969           $(".product-fixed").removeClass("show")
6970         }
6971     });
6972   });
6973 </script>
6973
6974 
6975   
6975<script>
6976     //
6977   </script>
6977
6978 
6979 
6979<script>
6980   $(document).ready(function(){
6981     $('table tr td').each(function(){
6982       var texto = $(this).text();
6983       var nextto = $(this).next("td");
6984       var sku = $("#data-sku").val()
6985       if(texto == 'SKU'){
6986         nextto.text(sku)
6987       }
6988     });
6989     
6990     $(".stamped-summary-actions-newquestion").text("Tulis Pertanyaan");
6991     $(".stamped-summary-actions-newreview").text("Tulis Review");
6992     $("#tab-questions").text("Pertanyaan");
6993     
6994     $(".freeship .icon").click(function(){
6995       $(".fs-content").slideToggle();
6996       $(this).parents(".freeship").toggleClass("expand");
6997     });
6998     
6999     var $easyzoom = $('.easyzoom').easyZoom();
7000     // Setup thumbnails example
7001     var api1 = $easyzoom.filter('.easyzoom--with-thumbnails').data('easyZoom');
7002     $('.thumbnails').on('click', 'a', function(e) {
7003       var $this = $(this);
7004       e.preventDefault();
7005       // Use EasyZoom's `swap` method
7006       api1.swap($this.data('standard'), $this.attr('href'));
7007     });
7008 
7009     $('#playerID').click(function(){
7010       var videoURL = $('#VdoID').attr('src'),
7011           dataplay = $('#VdoID').attr('data-play');
7012 
7013       //for check autoplay
7014       //if not set autoplay=1
7015       if(dataplay == 0 ){
7016         $('#VdoID').attr('src',videoURL+'?autoplay=1');
7017         $('#VdoID').attr('data-play',1);
7018       }
7019       else{
7020         var videoURL = $('#VdoID').attr('src');
7021         videoURL = videoURL.replace("?autoplay=1", "");
7022         $('#VdoID').prop('src','');
7023         $('#VdoID').prop('src',videoURL);
7024 
7025         $('#VdoID').attr('data-play',0);
7026       }
7027 
7028     });
7029     
7030     $(".product-photo-thumb-video").click(function(e){
7031       e.preventDefault();
7032 
7033       var newEmbed = $(this).attr('href');
7034       $("#featured-image-product").addClass("img-video");
7035       $("#ProductPhotoImg").hide();
7036       $("#featured-image-product .video").show();
7037       $("#featured-image-product iframe").attr('src', newEmbed);
7038       $("#VdoID")[0].src += "&autoplay=1";
7039     });
7040     $(".product-single__thumbnail").click(function(evt){
7041       evt.preventDefault();
7042       $("#featured-image-product").removeClass("img-video");
7043       $("#ProductPhotoImg").show();
7044       $("#featured-image-product .video").hide();
7045       $("#featured-image-product iframe").attr('src', '');
7046     });
7047     
7048     if($('#product-meta .short-desc > div').length >= 1){
7049       //console.log('div detected')
7050       var replacer = $('#product-meta .short-desc > div').contents();
7051       $('#product-meta .short-desc > div').replaceWith(replacer);
7052 
7053       var cAssured =  $('.c-assured').detach();
7054       cAssured.insertAfter('.meta-sds .stock-info');
7055     }
7056 
7057     
7058     
7059     $(".heading-toggle").click(function(){
7060       $(this).parent().toggleClass("open")
7061       
7062     });
7063   });
7064 </script>
7064
7065 
7066 
7067   
7067<script type="application/json" id="ProductJson-Product">
7068         
7069         {"id":8144957800663,"title":"KVTOTO : Situs Login Pasaran Togel Online Terlengkap & Terpercaya","handle":"blossom-shine","description":"\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eKVTOTO hadir sebagai situs login pasaran togel online terlengkap dan terpercaya dengan akses cepat, informasi pasaran terbaru, serta layanan yang mudah digunakan setiap hari."}
7070   </script>
7070
7071   
7072     
7072<script type="application/json" id="VariantJson-Product">
7073       [
7074         
7075           {
7076              "incoming": false,
7077              "next_incoming_date": null
7078           }
7079         
7080       ]
7081     </script>
7081
7082   
7083 
7084 
7085 
7086 </div>
7087 
7088 
7089 
7089<script src="//outerbloom.com/cdn/shopifycloud/storefront/assets/themes_support/option_selection-b017cd28.js" type="text/javascript"></script>
7089
7090 <style>
7091     .stamped-review-header-title,
7092     .stamped-review-header .author,
7093     .stamped-review-content-body,
7094     .stamped-sort-select,
7095     .stamped-review-header .verified-badge[data-type=buyer]:after,
7096     .stamped-review-header-byline,
7097     .stamped-review-reply-body {font-size: 14px!important;font-family: 'Barlow',sans-serif!important;}
7098     .stamped-review {margin-bottom: 0;}
7099     .stamped-review-body {padding-left: 65px;}
7100     .stamped-review:first-child {padding-top: 25px;}
7101     .stamped-review-content {clear: none;}
7102     .stamped-review-reply {margin: 15px 0 0 65px;background: #f2f2f2;border-left: none;}
7103     .stamped-review-reply-body {padding-left: 65px;}
7104     .stamped-review-header .author {text-transform: capitalize;}
7105     .stamped-questions .stamped-review-content {padding-left: 65px;}
7106 
7107     .stamped-pagination {margin: 20px 0 0;}
7108     .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;}
7109     .stamped-pagination li a {color: #121212;padding: 13px 18px;vertical-align: middle;display: block;}
7110     .stamped-pagination li.active a {background-color: #ddd;font-weight: 400;}
7111     .stamped-pagination li:hover a {background: #ddd;}
7112     .stamped-pagination .next {border-right: 1px solid #ccc;}
7113     .stamped-pagination li:first-child {border-top-left-radius: 5px;border-bottom-left-radius: 5px;}
7114     .stamped-pagination li:last-child {border-top-right-radius: 5px;border-bottom-right-radius: 5px;}
7115 
7116     #stamped-pagination-question span.page {display: inline-block;border: 1px solid #ccc;width: 47px;}
7117     #stamped-pagination-question span {font-size: 14px;}
7118     #stamped-pagination-question .page.active {padding: 12px;font-weight: 400;background: #ddd;}
7119     #stamped-pagination-question a, #stamped-pagination-question .page.active {color: #121212;padding: 13px 18px;vertical-align: middle;display: inline-block;}
7120     .stamped-pagination-deco {color: #121212;padding: 13px 18px;width: 47px;vertical-align: middle;display: inline-block;border: 1px solid #ccc;padding: 12px;}
7121     .stamped-pagination-prev, .stamped-pagination-next {position: inherit;}
7122     .stamped-pagination-prev a, .stamped-pagination-next a {width: auto!important;border: 1px solid #ccc;}
7123 
7124     @media (max-width: 480px){
7125       .stamped-review-reply {margin-left: 0!important;}
7126       select.stamped-sort-select {font-size: 13px!important;}
7127     }
7128 
7129   #product-reviews .stamped-summary-ratings, #product-reviews .stamped-summary-actions, .stamped-content {
7130       display: block !important;
7131   }
7132 </style>
7133 
7133<script>
7134     var selectCallback = function(variant, selector) {
7135       timber.productPage({
7136         money_format: "Rp {{amount_no_decimals}}",
7137         variant: variant,
7138         selector: selector
7139       });
7140     };
7141 
7142     jQuery(function($) {
7143       new Shopify.OptionSelectors('productSelect', {
7144         product:
7145 
7146 
7147 
7148 
7149 
7150 
7151 
7152 {"id":8144957800663,"title":"KVTOTO : Situs Login Pasaran Togel Online Terlengkap & Terpercaya","handle":"blossom-shine","description":"\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eKVTOTO hadir sebagai situs login pasaran togel online terlengkap dan terpercaya dengan akses cepat, informasi pasaran terbaru, serta layanan yang mudah digunakan setiap hari."},
7153         onVariantSelected: selectCallback,
7154         enableHistoryState: true
7155       });
7156 
7157       // Add label if only one product option and it isn't 'Title'. Could be 'Size'.
7158       
7159 
7160       // Hide selectors if we only have 1 variant and its title contains 'Default'.
7161       
7162         $('.selector-wrapper').hide();
7163       
7164     });
7165 </script>
7165
7166 
7167 
7168 
7169   
7169<script type="application/ld+json">
7170     {
7171     "@context": "http://schema.org",
7172     "@type": "Product",
7173 "offers": {
7174 "@type": "Offer",
7175 "availability":"https://schema.org/InStock",
7176 "price": 835000,
7177 "priceValidUntil": "05-10-2025",
7178 "priceCurrency": "IDR",
7179 "url": "https://kvtotomatoa.com/"
7180 },
7181 "brand": {
7182 "@type": "Brand",
7183 "name": "Outerbloom Florist"
7184 },
7185 "sku": "8144957800663",
7186 "gtin13": "Jawa",
7187 "name": "KVTOTO : Situs Login Pasaran Togel Online Terlengkap & Terpercaya",
7188 "description": "KVTOTO hadir sebagai situs login pasaran togel online terlengkap dan terpercaya dengan akses cepat, informasi pasaran terbaru, serta layanan yang mudah digunakan setiap hari.",
7189 "category": "KVTOTO hadir sebagai situs login pasaran togel online terlengkap dan terpercaya dengan akses cepat, informasi pasaran terbaru, serta layanan yang mudah digunakan setiap hari.",
7190 "url": "https://kvtotomatoa.com/",
7191 "image": {
7192 "@type": "ImageObject",
7193 "url": "https://outerbloom.com/cdn/shop/files/Blossom-Shine-WM_small.jpg?v=1695788426",
7194 "image": "https://outerbloom.com/cdn/shop/files/Blossom-Shine-WM_small.jpg?v=1695788426",
7195 "name": "KVTOTO : Situs Login Pasaran Togel Online Terlengkap & Terpercaya",
7196 "width": 1024,
7197 "height": 1024
7198 }
7199     }
7200   </script>
7200
7201 
7202 
7203 
7204 
7205         
7206 
7206<script id="bss-ltap-hide-price" type="text/javascript" >
7207 !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)}))}
7207)),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)}
7207)),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()}
7207if("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)}
7207if(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");
7207c&&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
7207-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");
7207i&&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
7207--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
7207opify.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");
7207e.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=
7207o.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");
7207if(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();
7207let 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()}]);
7208 </script>
7208
7209 
7210       </main>
7211       
7212       <div id="shopify-section-newsletter" class="shopify-section"><br>
7213   <style>
7214     #shopify-section-newsletter {
7215       background-attachment: fixed;
7216       margin-bottom: 0;
7217     }
7218     input:-webkit-autofill,
7219     input:-webkit-autofill:hover,
7220     input:-webkit-autofill:active,
7221     input:-webkit-autofill:focus {
7222       -webkit-box-shadow:0 0 0 50px white inset;
7223       -webkit-text-fill-color: #ffffff;
7224     }
7225     .section-newsletter {
7226       max-width: 800px;
7227       margin: auto;
7228       padding: 50px 0;
7229     }
7230     .section-newsletter h2 {
7231       font-weight: 700;
7232       font-size: 24px;
7233     }
7234     .section-newsletter input[type="email"] {
7235       width: 100%;
7236       text-align: center;
7237       border: none;
7238       border-bottom: 1px solid #ffffff;
7239       font-size: 16px;
7240       color: #757575;
7241       background-color: #eeeeee;
7242     }
7243     .section-newsletter .row label {
7244       font-size: 14px;
7245       cursor: pointer;
7246     }
7247     .section-newsletter .radio-inline input {
7248       width: auto;
7249     }
7250     .section-newsletter .btn {
7251       width: 130px;
7252       border: 1px solid #ffffff;
7253       box-shadow: none;
7254       font-size: 16px;
7255       font-weight: 500;
7256       text-transform: uppercase;
7257     }
7258     .section-newsletter form {
7259       margin: 30px 0 60px;
7260     }
7261     .section-newsletter input[type="radio"] {
7262       position: absolute;
7263       width: 1px;
7264       height: 1px;
7265     }
7266     .section-newsletter [type="radio"]:checked + label, .section-newsletter [type="radio"]:not(:checked) + label {
7267       position: relative;
7268       padding-left: 28px;
7269       cursor: pointer;
7270       line-height: 20px;
7271       display: inline-block;
7272       color: #666;
7273     }
7274     .section-newsletter [type="radio"]:checked + label:before, .section-newsletter [type="radio"]:not(:checked) + label:before {
7275       content: '';
7276       position: absolute;
7277       left: 0;
7278       top: 0;
7279       width: 18px;
7280       height: 18px;
7281       border: 1px solid #ddd;
7282       border-radius: 100%;
7283       background: #fff;
7284     }
7285     .section-newsletter [type="radio"]:checked + label:after, .section-newsletter [type="radio"]:not(:checked) + label:after {
7286       content: '';
7287       width: 12px;
7288       height: 12px;
7289       background: #ffffff;
7290       position: absolute;
7291       top: 3px;
7292       left: 3px;
7293       border-radius: 100%;
7294       -webkit-transition: all 0.2s ease;
7295       transition: all 0.2s ease;
7296     }
7297     .section-newsletter [type="radio"]:not(:checked) + label:after {
7298       opacity: 0;
7299       -webkit-transform: scale(0);
7300       transform: scale(0);
7301     }
7302     .opt-newsletter {display:none;}
7303     .footer-newsletter p, .footer-newsletter p a {
7304       color: #757575;
7305     }
7306     @media (max-width:991px){
7307       .section-newsletter h2 {
7308         font-size: 32px;
7309       }
7310       .section-newsletter input {
7311         width: 300px;
7312         font-size: 14px;
7313       }
7314       .section-newsletter {
7315         padding: 50px 20px;
7316       }
7317     }
7318     @media (max-width: 480px){
7319       .section-newsletter input[type="email"] {font-size: 16px;}
7320     }
7321   </style>
7322  <style>
7323 .icon-img-footer {
7324     width: 80px; 
7325     padding: 0px 5px;
7326 }
7327 @media (min-width: 768px) {
7328     .icon-img-footer {
7329         width: 120px; 
7330     }
7331 }
7332 @media (min-width: 992px) {
7333     .icon-img-footer {
7334         width: 120px; 
7335     }
7336 }
7337 
7338   .button-login-daftar {
7339                         display: grid;
7340                         grid-template-columns: repeat(2, 1fr);
7341                         font-weight: 700;
7342                     }
7343                     .button-login-daftar a {
7344                         text-align: center;
7345                     }
7346                     .login,
7347                     .register {
7348                         color: #ff0000;
7349                         padding: 15px 10px;
7350                         font-size: 23px;
7351                     }
7352                     .login,
7353                     .login-button {
7354                         background: linear-gradient(to bottom,#000000 0,#000000 100%);
7355                         border: 2px solid #ff0000;
7356                     }
7357                     .register,
7358                     .register-button {
7359                         background: linear-gradient(to bottom,#000000 0,#000000 100%);
7360                         border: 2px solid #ff0000;
7361                     }
7362 
7363 
7364 
7365 </style>
7366 
7367 <!-- wp:html -->
7368  
7368<script>
7369         document.addEventListener('DOMContentLoaded',
7370             function(){const faqItems=document.querySelectorAll('.faq-item');
7371             faqItems.forEach(item=>{const question=item.querySelector('.faq-question');
7372             question.addEventListener('click',
7373             ()=>{const isActive=item.classList.contains('active');
7374             faqItems.forEach(otherItem=>{otherItem.classList.remove('active')});
7375             if(!isActive){item.classList.add('active')}})})});
7376         </script>
7376
7377 
7378 
7379             <div class="page__overlay" data-view="offCanvasNavToggle" data-off-canvas="close" bis_skin_checked="1">
7380             </div>
7381 <div class="faq-section">
7382    ```html
7383<h2>FAQ TERBAIK KVTOTO</h2>
7384
7385<div class="faq-container">
7386
7387    <div class="faq-item">
7388        <button class="faq-question">
7389            1. Apa itu KVTOTO?
7390            <span></span>
7391        </button>
7392        <div class="faq-answer">
7393            <p>
7394                KVTOTO merupakan situs login pasaran togel online yang menghadirkan berbagai informasi pasaran dalam satu akses. Pengguna dapat menemukan jadwal, hasil keluaran terbaru, serta informasi pasaran yang disusun secara rapi dan mudah dipahami.
7395            </p>
7396        </div>
7397    </div>
7398
7399    <div class="faq-item">
7400        <button class="faq-question">
7401            2. Mengapa KVTOTO dikenal sebagai situs pasaran togel online terlengkap?
7402            <span></span>
7403        </button>
7404        <div class="faq-answer">
7405            <p>
7406                KVTOTO menyediakan beragam pilihan pasaran togel online yang diperbarui secara berkala. Informasi jadwal dan hasil keluaran disajikan secara terstruktur sehingga pengguna dapat menemukan data yang dibutuhkan dengan lebih cepat melalui satu platform.
7407            </p>
7408        </div>
7409    </div>
7410
7411    <div class="faq-item">
7412        <button class="faq-question">
7413            3. Apa keunggulan login melalui KVTOTO?
7414            <span></span>
7415        </button>
7416        <div class="faq-answer">
7417            <p>
7418                KVTOTO menghadirkan proses login yang praktis, tampilan responsif, serta navigasi yang sederhana. Pengguna dapat mengakses berbagai informasi pasaran melalui perangkat desktop maupun smartphone dengan lebih nyaman.
7419            </p>
7420        </div>
7421    </div>
7422
7423    <div class="faq-item">
7424        <button class="faq-question">
7425            4. Apakah KVTOTO menyediakan akses selama 24 jam?
7426            <span></span>
7427        </button>
7428        <div class="faq-answer">
7429            <p>
7430                Ya, KVTOTO dapat diakses selama 24 jam sehingga pengguna dapat memantau jadwal pasaran, informasi terbaru, serta pembaruan hasil keluaran kapan saja sesuai kebutuhan.
7431            </p>
7432        </div>
7433    </div>
7434
7435    <div class="faq-item">
7436        <button class="faq-question">
7437            5. Mengapa KVTOTO menjadi pilihan untuk mencari informasi pasaran togel online?
7438            <span></span>
7439        </button>
7440        <div class="faq-answer">
7441            <p>
7442                KVTOTO mengutamakan kelengkapan informasi, kemudahan akses, pembaruan data secara rutin, serta tampilan yang mudah digunakan. Hal tersebut membantu pengguna memperoleh informasi pasaran togel online secara lebih praktis dalam satu halaman.
7443            </p>
7444        </div>
7445    </div>
7446
7447</div>
7448
7449 
7450     </div>
7451 
7452 
7453 <div class="overlay overlay-cart"></div>
7454 <div id="CartDrawer" class="drawer drawer--right">
7455   <div class="drawer__header pl-2 pr-2">
7456     <div class="drawer__icon-cart display-table-cell">
7457       <a href="/cart" class="">
7458         <svg class="icon icon-cart" version="1.1" xmlns="https://photoin.io/images/2026/05/28/logo-kvtoto.png" width="32" height="32" viewBox="0 0 32 32"> <path fill="#fff" d="M13.638 23.203c0 0 3.5-2.113 3.502-4.11 0.002-2.304-2.689-3.537-3.497-1.76-0.916-1.778-3.493-1.714-3.497 0.59-0.003 1.999 3.491 5.28 3.491 5.28z"></path> <path fill="#fff" d="M8.112 9.809v16.662l11.063 2.491v-17.58l-11.063-1.573zM7.74 8.858l11.925 1.696c0.213 0.030 0.372 0.218 0.372 0.44v18.519c0 0.284-0.254 0.495-0.523 0.434l-11.925-2.685c-0.198-0.045-0.339-0.225-0.339-0.434v-17.53c0-0.27 0.231-0.477 0.49-0.44z"></path> <path fill="#fff" d="M23.7 10.046l-3.275 0.146-0.388 0.897v17.656l3.664-2.174v-16.526zM24.346 27.214l-4.526 2.685c-0.287 0.17-0.646-0.043-0.646-0.385v-18.519l0.037-0.181 0.534-1.235c0.067-0.154 0.212-0.256 0.375-0.263l3.991-0.178c0.245-0.011 0.45 0.191 0.45 0.444v17.247c0 0.159-0.082 0.306-0.216 0.385z"></path> <path fill="#000" d="M20.772 27.081l-0.501 2.383c-0.050 0.24-0.28 0.392-0.512 0.34s-0.38-0.289-0.33-0.528l0.569-2.707v-16.588c0-0.245 0.193-0.444 0.431-0.444s0.431 0.199 0.431 0.444v16.215l3.296 0.189c0.238 0.014 0.42 0.223 0.406 0.468s-0.217 0.433-0.454 0.419l-3.335-0.191z"></path> <path fill="#fff" d="M20.772 27.081l-0.501 2.383c-0.050 0.24-0.28 0.392-0.512 0.34s-0.38-0.289-0.33-0.528l0.569-2.707v-16.588c0-0.245 0.193-0.444 0.431-0.444s0.431 0.199 0.431 0.444v16.215l3.296 0.189c0.238 0.014 0.42 0.223 0.406 0.468s-0.217 0.433-0.454 0.419l-3.335-0.191z"></path> <path fill="#fff" d="M11.336 8.354l-0.257-0.333c-0.243-0.315 0.012-0.774 0.398-0.717l12.51 1.838c0.236 0.035 0.399 0.26 0.366 0.503s-0.252 0.412-0.487 0.377l-11.436-1.68 0.056 0.073c0.209 0.27 0.052 0.672-0.281 0.718l-4.467 0.607c-0.236 0.032-0.452-0.139-0.484-0.383s0.135-0.467 0.371-0.499l3.711-0.504z"></path> <path fill="#fff" d="M17.152 11.344c0.026-0.003 0.053-0.005 0.079-0.005 0.357 0 0.645 0.297 0.645 0.665s-0.288 0.665-0.645 0.665c-0.322 0-0.59-0.245-0.637-0.565-0.383-0.45-0.515-1.321-0.521-2.536-0.003-0.556 0.026-1.149 0.076-1.739 0.028-0.339 0.057-0.603 0.074-0.735 0.195-2.391-2.008-3.379-3.568-1.658-0.64 0.707-1.041 1.855-1.266 3.412-0.092 0.634-0.137 1.111-0.194 2.024 0.107 0.119 0.172 0.278 0.172 0.453 0 0.342-0.251 0.624-0.573 0.661-0.031 0.005-0.064 0.007-0.097 0.005-0.015-0.001-0.029-0.003-0.044-0.
7458005-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>
7459       </a>
7460     </div>
7461     <div class="drawer__title h4">Keranjang Belanja</div>
7462     <div class="drawer__close js-drawer-close">
7463       <button type="button">
7464         <svg class="icon icon-close" version="1.1" xmlns="https://photoin.io/images/2026/05/28/logo-kvtoto.png" width="32" height="32" viewBox="0 0 32 32">
7465 <title>icon-close</title>
7466 <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>
7467 </svg>
7468       </button>
7469     </div>
7470   </div>
7471   <div id="CartContainer" class="p-2"></div>
7472 </div>
7473 
7474 
7474<script>
7475       
7476     </script>
7476
7477       
7477<script src="//outerbloom.com/cdn/shop/t/138/assets/handlebars.min.js?v=79044469952368397291752652415" defer></script>
7477
7478       <!-- /snippets/ajax-cart-template.liquid -->
7479 
7480   
7480<script id="CartTemplate" type="text/template">
7481   
7482     <form action="/cart" method="post" novalidate class="cart ajaxcart">
7483       <div class="ajaxcart__inner" {{ cart.item_count }}>
7484         {{#items}}
7485         <div class="ajaxcart__product">
7486           <div class="ajaxcart__row" data-line="{{line}}">
7487             <div class="grid">
7488               <div class="grid__item one-quarter">
7489                 <a href="{{url}}" class="ajaxcart__product-image"><img src="{{img}}" alt=""></a>
7490               </div>
7491               <div class="grid__item three-quarters">
7492                 <p class="d-block mb-3">
7493                   <a class="h4 d-block mb-2" href="{{url}}" class="ajaxcart__product-name">{{name}}</a>
7494                   {{#if variation}}
7495                     <span class="ajaxcart__product-meta p">{{variation}}</span>
7496                   {{/if}}
7497                   {{#properties}}
7498                     {{#each this}}
7499                       {{#if this}}
7500                         <span class="ajaxcart__product-meta p hide">{{@key}}: {{this}}</span>
7501                       {{/if}}
7502                     {{/each}}
7503                   {{/properties}}
7504                   
7505                 </p>
7506                 <div class="grid--full display-table">
7507                   <div class="grid__item display-table-cell one-half">
7508                     <div class="ajaxcart__qty">
7509                       <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--minus" data-id="{{key}}" data-qty="{{itemMinus}}" data-line="{{line}}">
7510                         <svg version="1.1" xmlns="https://photoin.io/images/2026/05/28/logo-kvtoto.png" width="24" height="24" viewBox="0 0 32 32"><title>icon-minus</title><path d="M6.667 16.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h18.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-18.667z"></path></svg>
7511                         <span class="visually-hidden">Kurangi jumlah barang</span>
7512                       </button>
7513                       <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]*">
7514                       <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--plus" data-id="{{key}}" data-line="{{line}}" data-qty="{{itemAdd}}">
7515                         <svg version="1.1" xmlns="https://photoin.io/images/2026/05/28/logo-kvtoto.png" width="24" height="24" viewBox="0 0 32 32"><title>icon-plus</title><path d="M16.667 15.333h8.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-8.667v8.667c0 0.368-0.298 0.667-0.667 0.667s-0.667-0.298-0.667-0.667v-8.667h-8.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h8.667v-8.667c0-0.368 0.298-0.667 0.667-0.667s0.667 0.298 0.667 0.667v8.667z"></path></svg>
7516                         <span class="visually-hidden">Tambahkan jumlah barang</span>
7517                       </button>
7518                     </div>
7519                   </div>
7520                   <div class="grid__item display-table-cell one-half text-right">
7521                     {{#if discountsApplied}}
7522                       <small class="ajaxcart-item__price-strikethrough"><s>{{{originalLinePrice}}}</s></small>
7523                       <br><span class="h4">{{{linePrice}}}</span>
7524                     {{else}}
7525                       <span class="h4">{{{linePrice}}}</span>
7526                     {{/if}}
7527                     </div>
7528                   </div>
7529                   {{#if discountsApplied}}
7530                     <div class="grid--full display-table">
7531                       <div class="grid__item text-right">
7532                         {{#each discounts}}
7533                           <small class="ajaxcart-item__discount">{{ this.title }}</small><br>
7534                         {{/each}}
7535                       </div>
7536                     </div>
7537                   {{/if}}
7538                   </div>
7539                 </div>
7540               </div>
7541             </div>
7542           </div>
7543         </div>
7544         {{/items}}
7545       </div>
7546       <div class="ajaxcart__footer">
7547         <div class="grid--full cart-subtotal py-2">
7548             <p>Subtotal</p>
7549             <h3 class="primary">{{{totalPrice}}}</h3>
7550           {{#if totalCartDiscount}}
7551             <p class="ajaxcart__savings text-center"><em>{{{totalCartDiscount}}}</em></p>
7552           {{/if}}
7553         </div>
7554         
7555         <a href="/cart" class="btn btn-cta view-more btn-block cart__checkout mt-2">Checkout</a>
7556         
7557         <p class="cart-checkout-shipping hide">Free Ongkir dengan belanja di atas Rp.10.000 <a href="/pages/pengiriman">detail</a></p>
7558       </div>
7559     </form>
7560   
7561   </script>
7561
7562   
7562<script id="AjaxQty" type="text/template">
7563   
7564     <div class="ajaxcart__qty">
7565       <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--minus" data-id="{{key}}" data-qty="{{itemMinus}}">
7566         <svg version="1.1" xmlns="https://photoin.io/images/2026/05/28/logo-kvtoto.png" width="24" height="24" viewBox="0 0 32 32">
7567             <title>icon-minus</title>
7568             <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>
7569         </svg>
7570         <span class="visually-hidden">Kurangi jumlah barang</span>
7571           </button>
7572               <input type="text" class="ajaxcart__qty-num" value="{{itemQty}}" min="0" data-id="{{key}}" aria-label="quantity" pattern="[0-9]*">
7573           <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--plus" data-id="{{key}}" data-qty="{{itemAdd}}">
7574         <svg version="1.1" xmlns="https://photoin.io/images/2026/05/28/logo-kvtoto.png" width="24" height="24" viewBox="0 0 32 32"><title>icon-plus</title><path d="M16.667 15.333h8.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-8.667v8.667c0 0.368-0.298 0.667-0.667 0.667s-0.667-0.298-0.667-0.667v-8.667h-8.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h8.667v-8.667c0-0.368 0.298-0.667 0.667-0.667s0.667 0.298 0.667 0.667v8.667z"></path></svg>
7575         <span class="visually-hidden">Tambahkan jumlah barang</span>
7576       </button>
7577     </div>
7578   
7579   </script>
7579
7580   
7580<script id="JsQty" type="text/template">
7581   
7582     <div class="js-qty mx-auto mt-2">
7583       <button type="button" class="js-qty__adjust js-qty__adjust--minus" data-id="{{key}}" data-qty="{{itemMinus}}">
7584         <svg version="1.1" xmlns="https://photoin.io/images/2026/05/28/logo-kvtoto.png" width="24" height="24" viewBox="0 0 32 32"><title>icon-minus</title><path d="M6.667 16.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h18.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-18.667z"></path></svg>
7585         <span class="visually-hidden">Kurangi jumlah barang</span>
7586       </button>
7587       <input type="text" class="js-qty__num" value="{{itemQty}}" min="1" data-id="{{key}}" aria-label="quantity" pattern="[0-9]*" name="{{inputName}}" id="{{inputId}}">
7588       <button type="button" class="js-qty__adjust js-qty__adjust--plus" data-id="{{key}}" data-qty="{{itemAdd}}">
7589         <svg version="1.1" xmlns="https://photoin.io/images/2026/05/28/logo-kvtoto.png" width="24" height="24" viewBox="0 0 32 32"><title>icon-plus</title><path d="M16.667 15.333h8.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-8.667v8.667c0 0.368-0.298 0.667-0.667 0.667s-0.667-0.298-0.667-0.667v-8.667h-8.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h8.667v-8.667c0-0.368 0.298-0.667 0.667-0.667s0.667 0.298 0.667 0.667v8.667z"></path></svg>
7590         <span class="visually-hidden">Tambahkan jumlah barang</span>
7591       </button>
7592     </div>
7593   
7594   </script>
7594
7595 
7596 <style>
7597   #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty button,
7598   #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty button,
7599   #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty button {display: none;}
7600   #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty input,
7601   #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty input,
7602   #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty input {pointer-events: none;opacity: 0.5;}
7603   #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty input,
7604   #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty input,
7605   #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty input {pointer-events: none;}
7606 </style>
7607       
7607<script src="//outerbloom.com/cdn/shop/t/138/assets/ajax-cart.js?v=51128912329657147331752652452" defer></script>
7607
7608       
7608<script>
7609         jQuery(function($) {
7610           ajaxCart.init({
7611             formSelector: '#AddToCartForm',
7612             cartContainer: '#CartContainer',
7613             addToCartSelector: '#AddToCartXX',
7614             cartCountSelector: '#CartCount, #CartCount2',
7615             cartCostSelector: '#CartCost',
7616             moneyFormat: "Rp {{amount_no_decimals}}"
7617           });
7618           });
7619 
7620           jQuery(document.body).on('afterCartLoad.ajaxCart', function(evt, cart) {
7621             // Bind to 'afterCartLoad.ajaxCart' to run any javascript after the cart has loaded in the DOM
7622             timber.RightDrawer.open();
7623           });
7624       </script>
7624
7625     
7626 
7627 
7628 
7629 <style>
7630   /** Search AutoComplete **/
7631   .resultsearch .ui-menu-item[data-cat="Collection"],
7632   .resultsearch .ui-menu-item[data-cat="Collection"] {display: none;}
7633   .resultsearch .ui-widget.ui-widget-content {
7634     width: 100%;
7635     top: 48px;
7636     border: none;
7637     box-shadow: 0 4px 8px rgba(255, 255, 255, 0.3);
7638   }
7639   .resultsearch .ui-menu-item {text-align: left;}
7640   .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;}
7641   .ui-state-active {
7642     border: none!important;
7643     background-color: #fafafa!important;
7644     color: #000!important;
7645   }
7646   .ui-menu-item a[data-cat="Collection"] {padding: 5px 12px;}
7647   .ui-menu .ui-menu-item {line-height: normal;}
7648 </style>
7649 
7649<script>
7650 $(window).load(function(){
7651 
7652   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;}
7653 
7654   $.widget("custom.catcomplete", $.ui.autocomplete, {
7655     _renderMenu: function (ul, items) {
7656       // have search reults split up in categories
7657       var that = this,
7658           currentCategory = "";
7659       $.each(items, function (index, item) {
7660         if (item.category != currentCategory) {
7661           ul.append("<li class='ui-autocomplete-category' data-cat=" + item.category + ">" + "<span>" + item.category + "</span>" + "</li>");
7662           currentCategory = item.category;
7663         }
7664         that._renderItemData(ul, item);
7665       });
7666     }
7667   });
7668 
7669   // higlight searched for term
7670   $.ui.autocomplete.prototype._renderItem = function( ul, item ) {
7671     var term = this.element.val(),
7672         html = item.label.replace( term, "<b>$&</b>" );
7673     return $( "<li>" )
7674     .append(format(item))
7675     .appendTo( ul );
7676   };
7677 
7678 
7679   var data = [
7680       { 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
7680llection", 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: " " }
7680,{ 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: " " }
7680,{ 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: " " }
7680,{ 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
7680dal", 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-
7680hampers", 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
7680o-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: " " }
7680,{ 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: " " }
7680,{ 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: " " }
7680,{ 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: " " }
7680,{ 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: " " }
7680,{ 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: " " }
7680,{ 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: " " }
7680,{ 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: "KVTOTO hadir sebagai situs login pasaran togel online terlengkap dan terpercaya dengan akses cepat, informasi pasaran terbaru, serta layanan yang mudah digunakan setiap hari.", category: "Collection", url: "/collections/standing-flower", images: " ", price: " " },{ label: "KVTOTO hadir sebagai situs login pasaran togel online terlengkap dan terpercaya dengan akses cepat, informasi pasaran terbaru, serta layanan yang mudah digunakan setiap hari. Bali", category: "Collection", url: "/collections/standing-flower-bali", images: " ", price: " " },{ label: "KVTOTO hadir sebagai situs login pasaran togel online terlengkap dan terpercaya dengan akses cepat, informasi pasaran terbaru, serta layanan yang mudah digunakan setiap hari. Bandung", category: "Collection", url: "/collections/standing-flower-bandung", images: " ", price: " " },{ label: "KVTOTO hadir sebagai situs login pasaran togel online terlengkap dan terpercaya dengan akses cepat, informasi pasaran terbaru, serta layanan yang mudah digunakan setiap hari. Congratulations", category: "Collection", url: "/collections/standing-flower-congratulations", images: " ", price: " " },{ label: "KVTOTO hadir sebagai situs login pasaran togel online terlengkap dan terpercaya dengan akses cepat, informasi pasaran terbaru, serta layanan yang mudah digunakan setiap hari. Demak", category: "Collection", url: "/collections/standing-flower-demak", images: " ", price: " " },{ label: "KVTOTO hadir sebagai situs login pasaran togel online terlengkap dan terpercaya dengan akses cepat, informasi pasaran terbaru, serta layanan yang mudah digunakan setiap hari. Jepara", category: "Collection", url: "/collections/standing-flower-jepara", images: " ", price: " " },{ label: "KVTOTO hadir sebagai situs login pasaran togel online terlengkap dan terpercaya dengan akses cepat, informasi pasaran terbaru, serta layanan yang mudah digunakan setiap hari. Semarang", category: "Collection", url: "/collections/standing-flower-semarang", images: " ", price: " " },{ label: "KVTOTO hadir sebagai situs login pasaran togel online terlengkap dan terpercaya dengan akses cepat, informasi pasaran terbaru, serta layanan yang mudah digunakan setiap hari. Sidoarjo", category: "Collection", url: "/collections/standing-flower-sidoarjo", images: " ", price: " " },{ label: "KVTOTO hadir sebagai situs login pasaran togel online terlengkap dan terpercaya dengan akses cepat, informasi pasaran terbaru, serta layanan yang mudah digunakan setiap hari. Surabaya", category: "Collection", url: "/collections/standing-flower-surabaya", images: " ", price: " " },{ label: "KVTOTO hadir sebagai situs login pasaran togel online terlengkap dan terpercaya dengan akses cepat, informasi pasaran terbaru, serta layanan yang mudah digunakan setiap hari. Yogyakarta", category: "Collection", url: "/collections/standing-flower-yogyakarta", images: " ", price: " " },{ label: "Standing Giant Flower", category: "Collection", url: "/collections/standing-giant-flower", images: " ", price: " " },{ label: "Stationery", category: "Collection", url: "/collections/stationery", images: " ", price: " " },{ label: "Steekwerk", category: "Collection", url: "/collections/steekwerk", images: " ", price: " " },{ label: "Stylish Hampers", category: "Collection", url: "/collections/stylish-hampers", images: " ", price: " " },{ label: "Stylish Hampers Luar Jadetabek", category: "Collection", url: "/collections/stylish-hampers-luar-jadetabek", images: " ", price: " " },{ label: "Succulent", category: "Collection", url: "/collections/succulent", images: " ", price: " " },{ label: "Sunflower", category: "Collection", url: "/collections/bunga-matahari", images: " ", price: " " },{ label: "Sweet & Savoury Hampers", category: "Collection", url: "/collections/sweet-savoury-hampers", images: " ", price: " " },{ label: "Sweet Gracie", category: "Collection", url: "/collections/sweet-gracie", images: " ", price: " " },{ label: "Sweet Pastel Love", category: "Collection", url: "/collections/pastel-love", images: " ", price: " " },{ label: "Sweet Pastel Love Nusantara", category: "Collection", url: "/collections/sweet-pastel-love-nusantara", images: " ", price: " " },{ label: "Sweet Treats", category: "Collection", url: "/collections/sweet-treats", images: " ", price: " " },{ label: "Sweetooth", category: "Collection", url: "/collections/sweetooth", images: " ", price: " " },{ label: "Taurus ♉️ 20April - 20May", category: "Collection", url: "/collections/kado-untuk-zodiak-taurus", images: " ", price: " " },{ label: "Teddy Bear", category: "Collection", url: "/collections/boneka-teddy-bear", images: " ", price: " " },{ label: "Teh", category: "Collection", url: "/collections/teh", images: " ", price: " " },{ label: "Test Error", category: "Collection", url: "/collections/test-error", images: " ", price: " " },{ label: "Testing", category: "Collection", url: "/collections/testing", images: " ", price: " " },{ label: "Thank You", category: "Collection", url: "/collections/rangkaian-bunga-ucapan-terima-kasih", images: " ", price: " " },{ label: "The Classic Astoria", category: "Collection", url: "/collections/astoria", images: " ", price: " " },{ label: "The Classic Enchanted Dome", category: "Collection", url: "/collections/enchanted-dome", images: " ", price: " " },{ label: "The Enchanted Love Pirouette Special Edition", category: "Collection", url: "/collections/the-enchanted-love-pirouette-special-edition", images: " ", price: " " },{ label: "The F Thing", category: "Collection", url: "/collections/the-f-thing", images: " ", price: " " },{ label: "The First", category: "Collection", url: "/collections/the-first", images: " ", price: " " },{ label: "The Novo Astoria", category: "Collection", url: "/collections/the-novo-astoria", images: " ", price: " " },{ label: "The Novo Enchanted Dome", category: "Collection", url: "/collections/the-novo-enchanted-dome", images: " ", price: " " },{ label: "The Novo Enchanted Dome Special Edition", category: "Collection", url: "/collections/the-novo-enchanted-dome-special-edition", images: " ", price: " " },{ label: "The Palace", category: "Collection", url: "/collections/the-palace", images: " ", price: " " },{ label: "Ties", category: "Collection", url: "/collections/dasi", images: " ", price: " " },{ label: "Tisane", category: "Collection", url: "/collections/tisane", images: " ", price: " " },{ label: "Toko Bunga Aceh", category: "Collection", url: "/collections/toko-bunga-aceh", images: " ", price: " " },{ label: "Toko Bunga Ambon", category: "Collection", url: "/collection
7680s/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: " " }
7680,{ 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
7680dal", 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: " " },
7681       { 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" }
7681,{ 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" }
7681,{ 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" }
7682   ];
7683 
7684              
7685         $( ".header-input-search" ).catcomplete({
7686          appendTo: ".searchResult",source: function(request, response) {
7687             var results = $.ui.autocomplete.filter(data, request.term);
7688             var predicate = function () {
7689                 var counter = { Collection: 0, Produk: 0 };
7690             var fn = function(item) {counter[item.category] += 1;return (counter[item.category] <= 5);}
7691             return fn
7692             }();
7693             response(results.filter(predicate));
7694           },
7695           minLength:1,
7696            //results are clickable
7697           select: function( event, ui ) {window.location = ui.item.url;}
7698 });
7699 $( ".header-input-search2" ).catcomplete({
7700         appendTo: ".searchResult2",
7701                    source: function(request, response) {
7702                     var results = $.ui.autocomplete.filter(data, request.term);
7703                     var predicate = function () {
7704                         var counter = { Collection: 0, Produk: 0 };
7705               var fn = function(item) {
7706               counter[item.category] += 1;
7707   return (counter[item.category] <= 5);
7708 }
7709                return fn
7710                }();
7711 response(results.filter(predicate));
7712 },
7713   minLength:1,
7714         //results are clickable
7715         select: function( event, ui ) {
7716           window.location = ui.item.url;
7717         }
7718 });
7719 });
7720 </script>
7720
7721 
7722     
7722<script src="//outerbloom.com/cdn/shop/t/138/assets/vendors.js?v=6349622868601634021752652419" defer></script>
7722
7723 
7723<script src="//outerbloom.com/cdn/shop/t/138/assets/app.js?v=136050180318808583701752652452" defer></script>
7723
7724 
7725 
7725<script>
7726   ( function() {
7727     var youtube = document.querySelectorAll( ".youtube" );
7728     for (var i = 0; i < youtube.length; i++) {
7729       var source = "https://img.youtube.com/vi/"+ youtube[i].dataset.embed +"/sddefault_1x.jpg";
7730       var datasource = "https://img.youtube.com/vi/"+ youtube[i].dataset.embed +"/sddefault.jpg";
7731       var image = new Image();
7732       image.src = source;
7733       image.setAttribute("data-src", datasource);
7734       image.classList.add("swiper-lazy");
7735       image.addEventListener( "load", function() {
7736         youtube[ i ].appendChild( image );
7737       }( i ) );
7738       youtube[i].addEventListener( "click", function() {
7739         var iframe = document.createElement( "iframe" );
7740         iframe.setAttribute( "width", "480" );
7741         iframe.setAttribute( "height", "480" );
7742         iframe.setAttribute( "frameborder", "0" );
7743         iframe.setAttribute( "allowfullscreen", "" );
7744         iframe.setAttribute( "src", "https://www.youtube.com/embed/"+ this.dataset.embed +"?rel=0&showinfo=0&autoplay=1" );
7745         this.innerHTML = "";
7746         this.appendChild( iframe );
7747       } );
7748     };
7749 
7750   } )();
7751 
7752   /* Lazy Load */
7753   const mainLazyLoad = new LazyLoad({threshold:400});
7754   $(document).ready(function(){
7755 
7756     $("selectxxx").addClass("needsclick");
7757     FastClick.attach(document.body);
7758     
7759     var $customSelects = $('.select-search');
7760     $customSelects.select2({
7761       templateResult: function(result, container) {
7762         if (!result.id) {
7763           return result.text;
7764         }
7765         container.className += ' needsclick';
7766         return result.text;
7767       }
7768     });
7769     $customSelects.each(function(index, el){$(el).data('select2').$container.find('*').addClass('needsclick');});
7770     $(document).on('select2:open', () => {
7771       document.querySelector('.select2-search__field').focus();
7772     });
7773     
7774 
7775     $(".overlay").click(function(){
7776       $(".js-drawer-close").click();
7777     });
7778     $(".site-nav--mobile .js-drawer-open-left, #NavDrawer .icon-close, .overlay-nav").click(function(){
7779       $("html").toggleClass("nav_open");
7780     });
7781     
7782     $('.swatch-element label').on('click', function(){
7783       var srcImg = $(this).data('src');
7784       $('#thumb-image-product .product-single__thumbnail').each(function(){
7785         if ($(this).attr("href") == srcImg) {
7786           $(this).trigger('click');
7787         }
7788       });
7789     });
7790     var defaultValue = $(".swatch input:checked").val()
7791     
7792     $('#purchaseProduct .swatch [type=radio]').change(function() {
7793       var optionIndex = $(this).closest('.swatch').attr('data-option-index');
7794       var optionValue = $(this).val();
7795       console.log(optionIndex, optionValue)
7796       var value = parseInt(optionValue.split(' ')[0])
7797       $(this)
7798       .closest('#purchaseProduct')
7799       .find('.single-option-selector')
7800       .eq(optionIndex)
7801       .val(optionValue)
7802       .trigger('change');
7803       
7804     });
7805     
7806   });
7807   $(document).ready(function(){
7808     $(".nav-search a").click(function(e){
7809       e.preventDefault();
7810       $(".icon-navsearch").toggle();
7811       $(".icon-navclose").toggle();
7812       $(".site-nav__item > .site-nav__link").toggle();
7813       $(".open-search").toggle();
7814       $(".open-search input").focus();
7815     });
7816     $(".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'>");
7817     if ($(window).width() < 768) {
7818       $(".bg-products .label-tag.valentine").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-valentine_75x.png?v=82732945490105366961752652419' alt='Icon Valentine'>");
7819       $(".bg-products .label-tag.cny").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-cny_45x.png?v=101884295148001743851752652418' alt='Icon CNY'>");
7820       $(".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'>");
7821     } else {
7822       $(".bg-products .label-tag.valentine").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-valentine_60x.png?v=82732945490105366961752652419' alt='Icon Valentine'>");
7823       $(".bg-products .label-tag.cny").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-cny_60x.png?v=101884295148001743851752652418' alt='Icon CNY'>");
7824       $(".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'>");
7825     }
7826     $(".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'>");
7827     $(".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'>");
7828   });
7829 </script>
7829
7830 
7831 
7832     
7833 
7834     
7834<script type="text/javascript">
7835       var wishlistpage = 0;
7836        
7837        var quickShop_money_format="<span class='money'>"+"Rp {{amount_no_decimals}}"+"</span>";
7838     </script>
7838
7839     
7840       <!-- Remove duplicate wishlist.js reference -->
7841       <style>
7842   .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)}}
7843 </style>
7844 
7845 <div class="modal fade" id="modalwishlist0" tabindex="-1" role="dialog">
7846   <div class="modal-dialog" role="document">
7847     <div class="modal-content">        
7848       <div class="modal-body">Your Wishlist is empty!</div>
7849       <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>          
7850     </div>
7851   </div>
7852 </div> 
7853 
7854 <div class="wishlist-model">
7855   <div class="modal fade" id="modalwishlist1" tabindex="-1" role="dialog" aria-hidden="true">
7856     <div class="modal-dialog white-modal">
7857       <div class="modal-content">
7858         <div class="modal-header">
7859           <button type="button" class="close" data-dismiss="modal" aria-label="Close">
7860             <svg class="icon icon-close" version="1.1" xmlns="https://photoin.io/images/2026/05/28/logo-kvtoto.png" width="32" height="32" viewBox="0 0 32 32">
7861 <title>icon-close</title>
7862 <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>
7863 </svg>
7864           </button>
7865         </div>
7866         <div class="modal-body">
7867           <div class="wishlist-left">
7868             <div class="wishlist-note">
7869               <span class="cirle"><svg version="1.1" xmlns="https://photoin.io/images/2026/05/28/logo-kvtoto.png" width="32" height="32" viewBox="0 0 32 32">
7870 <title>icon-check</title>
7871 <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>
7872 </svg></span>
7873               Product added to <a href="/pages/wish-list">Wishlist</a>
7874             </div>
7875             <div class="wishlist-product">
7876               <div class="product-left">
7877                 <div class="wishlist-image"></div>
7878               </div>
7879               <div class="product-right">
7880                 <div class="wishlist-name"></div>
7881                 <div class="wishlist-price"></div>
7882               </div>
7883             </div>
7884           </div>
7885           <div class="wishlist-right">
7886             <div class="wishlist-cart">
7887               <form action="/cart/add" method="post" class="variants-form variants" id="AddToCartForm" enctype="multipart/form-data">                  
7888                 <div class="others-bottom">
7889                   <a class="btn btn-quick-shop" href="/pages/wish-list">View Wishlist</a>
7890                   <button type="submit" name="add" id="AddToCart" class="btn btn-cta">
7891                     <span id="AddToCartText" class="">Beli Sekarang</span>
7892                   </button>
7893                 </div>
7894                 <div id="wishlist-variants-container" class="variants-wrapper"></div> 
7895                 <div class="quantity-content">
7896                   <label>QTY</label>
7897                   <input type="number" size="5" class="" name="quantity" value="1" />
7898                 </div>
7899               </form> 
7900             </div>
7901           </div>
7902         </div>
7903       </div>
7904     </div>
7905   </div>
7906 </div>
7907 
7908     
7909     <style>
7910        .stamped-badge[data-rating="0.0"]{display: none !Important;}
7911        
7912         div[data-load-type="continue"] ul.stamped-pagination li.next a, div[data-widget-load-type="continue"] ul.stamped-pagination li.next a {
7913           border-radius: 0px;
7914       }
7915           .stamped-review-body {
7916           padding-left: 0px !important;
7917       }
7918           #product-reviews .stamped-header:after {
7919             display:none !Important;
7920           }
7921       #stamped-main-widget .stamped-container, .stamped-badge-caption,#stamped-reviews-widget {
7922           font-family:inherit !important;
7923       }
7924     </style>
7925 
7926     
7927 
7928 <div id='stamped-rewards-init' class='stamped-rewards-init'
7929   data-key-public=''
7930 
7931 ></div>
7932 
7933     
7933<script src="//outerbloom.com/cdn/shop/t/138/assets/variant-sku-handler.js?v=91239063692820757781752652418" defer></script>
7933
7934     <!-- Remove duplicate jQuery reference and load wishlist script properly -->
7935     
7935<script src="//outerbloom.com/cdn/shop/t/138/assets/wishlist-fixed.js?v=35991423018869066281754360012" defer></script>
7935
7936 
7937     
7937<script>
7938       function myInit(){ StampedFn.init({ apiKey: 'pubkey-hCS8DHE9QbBHhHN89WXFkuJ0Y3422D', sId: '23462' }); }
7939     </script>
7939
7940     
7940<script async onload="myInit()" type="text/javascript" src="https://cdn1.stamped.io/files/widget.min.js"></script>
7940<style>
7941   .jss59 {
7942     background-color: rgba(0, 0, 0, 0.6);
7943   }
7944   .MuiBackdrop-root {
7945     top: 0;
7946     left: 0;
7947     right: 0;
7948     bottom: 0;
7949     display: flex;
7950     z-index: -1;
7951     position: fixed;
7952     align-items: center;
7953     justify-content: center;
7954     background-color: rgba(0, 0, 0, 0.5);
7955     -webkit-tap-highlight-color: transparent;
7956   }
7957   .MuiDialog-scrollPaper {
7958     display: flex;
7959     align-items: center;
7960     justify-content: center;
7961   }
7962   .MuiDialog-container {
7963     height: 100%;
7964     outline: 0;
7965   }
7966   .MuiPaper-elevation24 {
7967     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);
7968   }
7969   .MuiDialog-paper {
7970     margin: 32px;
7971     position: relative;
7972     overflow-y: auto;
7973   }
7974   .MuiDialog-paperScrollPaper {
7975     display: flex;
7976     max-height: calc(100% - 64px);
7977     flex-direction: column;
7978   }
7979   .MuiDialog-paperWidthSm {
7980     max-width: 600px;
7981   }
7982   #location-lock-dialog {
7983     top: 20%;
7984     left: 0;
7985     right: 0;
7986     width: 30%;
7987     margin: 0px auto;
7988     display: block;
7989     padding: 30px;
7990     z-index: 99999;
7991     position: fixed;
7992     font-size: 14px;
7993     background: rgb(0, 0, 0);
7994     box-shadow: rgba(11, 11, 12, 0.2) 2px 4px 5px 0px;
7995     text-align: center;
7996     font-family: Roboto, Arial, sans-serif;
7997     line-height: 1;
7998     border-radius: 8px;
7999     -webkit-font-smoothing: subpixel-antialiased;
8000   }
8001   .MuiButtonBase-root {
8002     color: inherit;
8003     border: 0;
8004     cursor: pointer;
8005     margin: 0;
8006     display: inline-flex;
8007     outline: 0;
8008     padding: 0;
8009     position: relative;
8010     align-items: center;
8011     user-select: none;
8012     border-radius: 0;
8013     vertical-align: middle;
8014     -moz-appearance: none;
8015     justify-content: center;
8016     text-decoration: none;
8017     background-color: transparent;
8018     -webkit-appearance: none;
8019     -webkit-tap-highlight-color: transparent;
8020   }
8021   .MuiIconButton-root {
8022     flex: 0 0 auto;
8023     color: rgba(0, 0, 0, 0.54);
8024     padding: 12px;
8025     overflow: visible;
8026     font-size: 1.5rem;
8027     text-align: center;
8028     transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
8029     border-radius: 50%;
8030   }
8031   .MuiIconButton-label {
8032     width: 100%;
8033     display: flex;
8034     align-items: inherit;
8035     justify-content: inherit;
8036   }
8037   .MuiSvgIcon-root {
8038     fill: currentColor;
8039     width: 1em;
8040     height: 1em;
8041     display: inline-block;
8042     font-size: 1.5rem;
8043     transition: fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
8044     flex-shrink: 0;
8045     user-select: none;
8046   }
8047   .MuiTouchRipple-root {
8048     top: 0;
8049     left: 0;
8050     right: 0;
8051     bottom: 0;
8052     z-index: 0;
8053     overflow: hidden;
8054     position: absolute;
8055     border-radius: inherit;
8056     pointer-events: none;
8057   }
8058   .jss36 {
8059     color: #222222;
8060     font-size: 24px;
8061     font-family: Roboto, Arial, sans-serif;
8062     font-weight: 500;
8063   }
8064   .jss37 {
8065     color: #555555;
8066     padding: 10px 0px 0px;
8067     font-size: 14px;
8068   }
8069   .MuiFormGroup-root {
8070     display: flex;
8071     flex-wrap: wrap;
8072     flex-direction: column;
8073   }
8074   .MuiFormGroup-row {
8075     flex-direction: row;
8076   }
8077   .jss63 {
8078     width: 85%;
8079     margin: 15px auto;
8080     display: flex;
8081     padding: 11px 0px 0px;
8082     justify-content: space-evenly;
8083   }
8084   .MuiFormControlLabel-root {
8085     cursor: pointer;
8086     display: inline-flex;
8087     align-items: center;
8088     margin-left: -11px;
8089     margin-right: 16px;
8090     vertical-align: middle;
8091     -webkit-tap-highlight-color: transparent;
8092   }
8093   .jss70 {
8094     margin: 0;
8095   }
8096   .MuiButtonBase-root {
8097     color: inherit;
8098     border: 0;
8099     cursor: pointer;
8100     margin: 0;
8101     display: inline-flex;
8102     outline: 0;
8103     padding: 0;
8104     position: relative;
8105     align-items: center;
8106     user-select: none;
8107     border-radius: 0;
8108     vertical-align: middle;
8109     -moz-appearance: none;
8110     justify-content: center;
8111     text-decoration: none;
8112     background-color: transparent;
8113     -webkit-appearance: none;
8114     -webkit-tap-highlight-color: transparent;
8115   }
8116   .MuiIconButton-root {
8117     flex: 0 0 auto;
8118     color: rgba(0, 0, 0, 0.54);
8119     padding: 12px;
8120     overflow: visible;
8121     font-size: 1.5rem;
8122     text-align: center;
8123     transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
8124     border-radius: 50%;
8125   }
8126   .MuiIconButton-colorSecondary {
8127     color: #f50057;
8128   }
8129   .jss71 {
8130     padding: 9px;
8131   }
8132   .MuiRadio-root {
8133     color: rgba(0, 0, 0, 0.54);
8134   }
8135   .jss64 {
8136     padding: 2px;
8137   }
8138   .MuiRadio-colorSecondary.Mui-checked {
8139     color: #f50057;
8140   }
8141   .MuiIconButton-label {
8142     width: 100%;
8143     display: flex;
8144     align-items: inherit;
8145     justify-content: inherit;
8146   }
8147   .MuiTypography-root {
8148     margin: 0;
8149   }
8150   .MuiTypography-body1 {
8151     font-size: 18px;
8152     font-family: Roboto,sans-serif;
8153     font-weight: 400;
8154     line-height: 1.5;
8155   }
8156   .location-popup_area-block__sp9Ws {
8157     display: -moz-box;
8158     display: flex;
8159     -moz-box-orient: vertical;
8160     -moz-box-direction: normal;
8161     flex-direction: column;
8162     -moz-box-pack: center;
8163     justify-content: center;
8164     position: relative;
8165     margin: 10px 10% 0;
8166   }
8167   .location-popup_pin-search-box__3l5mJ {
8168     width: 100%;
8169     display: -moz-box;
8170     display: flex;
8171     -moz-box-align: center;
8172     align-items: center;
8173   }
8174   .location-popup_place-icon-city__1XAX5, .location-popup_place-icon__jSG0Q {
8175     position: absolute;
8176     z-index: 999;
8177   }
8178   .location-popup_place-icon__jSG0Q {
8179     color: #ffffff;
8180     padding-left: 8px;
8181   }
8182   .location-popup_place-icon__jSG0Q svg {
8183     width: 18px;
8184     height: 18px;
8185   }
8186   .location-popup_cancel-icon__FHujU {
8187     color: #fff;
8188     right: 10px;
8189     width: 16px;
8190     cursor: pointer;
8191     height: 16px;
8192     display: none;
8193     padding: 5px;
8194     position: absolute;
8195     background: #999;
8196     text-align: center;
8197     border-radius: 50%;
8198   }
8199   .location-popup_pin-search-box__3l5mJ>div>select {
8200 /*     -webkit-box-shadow: 0 0 10px #ffffff;
8201     box-shadow: 0 0 10px #ffffff; */
8202     text-transform: capitalize;
8203     border: 1px solid #ffffff;
8204     color: #ffffff;
8205     width: 100%;
8206     margin: 0;
8207     display: -moz-box;
8208     display: flex;
8209     padding: 0 30px;
8210     -webkit-animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite;
8211     -moz-animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite;
8212     animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite;
8213     font-size: 16px;
8214     border-radius: 4px;
8215     height: 44px;
8216     moz-animation: location-popup_focuses__1I8Gj ease-in-out 1.5s infinite;
8217     webkit-animation: location-popup_focuses__1I8Gj ease-in-out 1.5s infinite;
8218   }
8219   .MuiButtonBase-root {
8220     color: inherit;
8221     border: 0;
8222     cursor: pointer;
8223     margin: 0;
8224     display: inline-flex;
8225     outline: 0;
8226     padding: 0;
8227     position: relative;
8228     align-items: center;
8229     user-select: none;
8230     border-radius: 0;
8231     vertical-align: middle;
8232     -moz-appearance: none;
8233     justify-content: center;
8234     text-decoration: none;
8235     background-color: transparent;
8236     -webkit-appearance: none;
8237     -webkit-tap-highlight-color: transparent;
8238   }
8239   .MuiButton-root {
8240     color: rgba(0, 0, 0, 0.87);
8241     padding: 6px 16px;
8242     font-size: 0.875rem;
8243     min-width: 64px;
8244     box-sizing: border-box;
8245     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;
8246     font-family: Roboto,sans-serif;
8247     font-weight: 500;
8248     line-height: 1.75;
8249     border-radius: 4px;
8250     text-transform: uppercase;
8251   }
8252   .MuiButton-contained {
8253     color: rgba(0, 0, 0, 0.87);
8254     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);
8255     background-color: #e0e0e0;
8256   }
8257   .MuiButtonBase-root.Mui-disabled {
8258     cursor: default;
8259     pointer-events: none;
8260   }
8261   .MuiButton-label {
8262     width: 100%;
8263     display: inherit;
8264     align-items: inherit;
8265     justify-content: inherit;
8266   }
8267   .cartButton_login_content__2j1f7 {
8268     display: -moz-box;
8269     display: flex;
8270     text-align: center;
8271     z-index: 9;
8272     font-size: 18px;
8273     font-weight: 500;
8274     color: #fff;
8275   }
8276   
8277   .jss35 {
8278     top: 5px;
8279     right: 5px;
8280     padding: 4px;
8281     position: absolute;
8282     border-radius: 50%;
8283   }
8284   .jss67 {
8285     cursor: pointer;
8286     font-size: 15px;
8287     line-height: 1.3;
8288     padding-left: 5px;
8289   }
8290   .jss69 {
8291     color: #222222;
8292   }
8293   .jss80 {
8294     color: #fff;
8295     width: 100%;
8296     height: 52px;
8297     padding: 11px 16px;
8298     font-size: 18px;
8299     min-width: 88px;
8300     min-height: 36px;
8301     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;
8302     font-weight: 500;
8303     line-weight: 1em;
8304     border-radius: 4px;
8305     text-transform: uppercase;
8306     background-color: #ff6600;
8307   }
8308   @media (min-width: 991px){
8309     .cartButton_login_content__2j1f7 {
8310         font-weight: 500;
8311     }
8312   }
8313 
8314   @media (max-width: 992px) {
8315     #location-lock-dialog {
8316       width: 100%;
8317       top: auto;
8318       bottom: 0;
8319       padding-left: 0;
8320       padding-right: 0;
8321     }
8322     .MuiFormGroup-row {
8323       display: block
8324     }
8325     .MuiIconButton-label input {
8326       margin: 0;
8327     }
8328   }
8329 </style>
8330 <div role="presentation" class="MuiDialog-root jss34" style="display: none;position: fixed; z-index: 9999; inset: 0px;">
8331   <div class="MuiBackdrop-root" aria-hidden="true" style="opacity: 1; transition: opacity 225ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;"></div>
8332   <div tabindex="0" data-test="sentinelStart"></div>
8333   <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;">
8334     <div class="MuiPaper-root MuiDialog-paper MuiDialog-paperScrollPaper MuiDialog-paperWidthSm MuiPaper-elevation24 MuiPaper-rounded" role="dialog">
8335       <div class="jss31 undefined" id="location-lock-dialog">
8336         <button id="close-popup-delivery" class="MuiButtonBase-root MuiIconButton-root jss35" tabindex="0" type="button" aria-label="close">
8337           <span class="MuiIconButton-label">
8338             <svg class="MuiSvgIcon-root" focusable="false" viewBox="0 0 24 24" aria-hidden="true">
8339               <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>
8340             </svg>
8341           </span>
8342           <span class="MuiTouchRipple-root"></span>
8343         </button>
8344         <div>
8345           <div class="jss36">Select Delivery Location</div>
8346           <div class="jss37">Select a delivery location to see product availability</div>
8347         </div>
8348         <div class="MuiFormGroup-root jss63 MuiFormGroup-row" role="radiogroup">
8349           <label for="jabodetabek" class="MuiFormControlLabel-root jss45">
8350             <span class="MuiButtonBase-root MuiIconButton-root jss46 MuiRadio-root MuiRadio-colorSecondary jss39 jss47 Mui-checked MuiIconButton-colorSecondary" aria-disabled="false">
8351               <span class="MuiIconButton-label">
8352                 <input id="jabodetabek" class="jss49" type="radio" value="Jabodetabek" checked="" name="location">
8353                 <span class="jss41"></span>
8354               </span>
8355               <span class="MuiTouchRipple-root"></span>
8356             </span>
8357             <span class="MuiTypography-root MuiFormControlLabel-label MuiTypography-body1">
8358               <span class="jss67 jss69">Jabodetabek</span>
8359             </span>
8360           </label>
8361           <label for="non-jabodetabek" class="MuiFormControlLabel-root jss45">
8362             <span class="MuiButtonBase-root MuiIconButton-root jss46 MuiRadio-root MuiRadio-colorSecondary jss39 MuiIconButton-colorSecondary" aria-disabled="false">
8363               <span class="MuiIconButton-label">
8364                 <input id="non-jabodetabek" class="jss49" type="radio" value="Outside Jabodetabek" name="location">
8365                 <span class="jss40"></span>
8366               </span>
8367               <span class="MuiTouchRipple-root"></span>
8368             </span>
8369             <span class="MuiTypography-root MuiFormControlLabel-label MuiTypography-body1">
8370               <span class="jss67 jss68">Outside Jabodetabek</span>
8371             </span>
8372           </label>
8373         </div>
8374         <div>
8375           <div class="MuiGrid-root location-popup_area-block__sp9Ws">
8376             <div class="MuiGrid-root location-popup_pin-search-box__3l5mJ false">
8377               <div class="MuiGrid-root location-popup_place-icon__jSG0Q">
8378                 <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>
8379               </div>
8380               <div class="MuiGrid-root location-popup_cancel-icon__FHujU false">
8381                 <i class="material-icons location-popup_clear-pin__s1dRc">close</i>
8382               </div>
8383               <div style="width: 100%;">
8384                 <select id="choose-location" class="form-control">
8385                   <option value="">Choose Location</option>
8386                   <option value="jakarta">Jakarta</option>
8387                   <option value="bogor">Bogor</option>
8388                   <option value="depok">Depok</option>
8389                   <option value="tangerang">Tangerang</option>
8390                   <option value="bekasi">Bekasi</option>
8391                 </select>
8392               </div>
8393             </div>
8394           </div>
8395         </div>
8396         <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="">
8397           <span class="MuiButton-label">
8398             <span class=""></span>
8399             <span id="location-lock-continue-btn" class="cartButton_login_content__2j1f7" style="font-weight: 500;" data-content="">Continue Shopping</span>
8400           </span>
8401         </button>
8402       </div>
8403     </div>
8404   </div>
8405   <div tabindex="0" data-test="sentinelEnd"></div>
8406 </div>
8407 
8408 
8408<script>
8409   const jabodetabek = [
8410     {
8411       "code": "jakarta",
8412       "city": "jakarta",
8413       "zip": []
8414     },
8415     {
8416       "code": "bogor",
8417       "city": "bogor",
8418       "zip": []
8419     },
8420     {
8421       "code": "depok",
8422       "city": "depok",
8423       "zip": []
8424     },
8425     {
8426       "code": "tangerang",
8427       "city": "tangerang",
8428       "zip": []
8429     },
8430     {
8431       "code": "bekasi",
8432       "city": "bekasi",
8433       "zip": []
8434     }
8435   ]
8436   let cityNonJabodetabek = [
8437     
8438
8439     
8440     
8441     "pengiriman_aceh",
8442     
8443     
8444     
8445     
8446     
8447     "pengiriman_ambon",
8448     
8449     
8450     
8451     
8452     
8453     "pengiriman_atambua",
8454     
8455     
8456     
8457     
8458     
8459     "pengiriman_badung",
8460     
8461     
8462     
8463     
8464     
8465     "pengiriman_bali",
8466     
8467     
8468     
8469     
8470     
8471     "pengiriman_balikpapan",
8472     
8473     
8474     
8475     
8476     
8477     "pengiriman_bandar lampung",
8478     
8479     
8480     
8481     
8482     
8483     "pengiriman_bandung",
8484     
8485     
8486     
8487     
8488     
8489     "pengiriman_bandung barat",
8490     
8491     
8492     
8493     
8494     
8495     "pengiriman_banjarmasin",
8496     
8497     
8498     
8499     
8500     
8501     "pengiriman_banyumas",
8502     
8503     
8504     
8505     
8506     
8507     "pengiriman_banyuwangi",
8508     
8509     
8510     
8511     
8512     
8513     "pengiriman_batam",
8514     
8515     
8516     
8517     
8518     
8519     
8520     
8521     
8522     
8523     "pengiriman_biak",
8524     
8525     
8526     
8527     
8528     
8529     "pengiriman_binjai",
8530     
8531     
8532     
8533     
8534     
8535     "pengiriman_blitar",
8536     
8537     
8538     
8539     
8540     
8541     "pengiriman_blora",
8542     
8543     
8544     
8545     
8546     
8547     
8548     
8549     
8550     
8551     "pengiriman_bojonegoro",
8552     
8553     
8554     
8555     
8556     
8557     "pengiriman_boyolali",
8558     
8559     
8560     
8561     
8562     
8563     "pengiriman_bukittinggi",
8564     
8565     
8566     
8567     
8568     
8569     "pengiriman_buleleng",
8570     
8571     
8572     
8573     
8574     
8575     "pengiriman_ciamis",
8576     
8577     
8578     
8579     
8580     
8581     "pengiriman_cianjur",
8582     
8583     
8584     
8585     
8586     
8587     "pengiriman_cibinong",
8588     
8589     
8590     
8591     
8592     
8593     "pengiriman_cikarang",
8594     
8595     
8596     
8597     
8598     
8599     "pengiriman_cikupa",
8600     
8601     
8602     
8603     
8604     
8605     "pengiriman_cilacap",
8606     
8607     
8608     
8609     
8610     
8611     "pengiriman_cileunyi",
8612     
8613     
8614     
8615     
8616     
8617     "pengiriman_cimahi",
8618     
8619     
8620     
8621     
8622     
8623     "pengiriman_cirebon",
8624     
8625     
8626     
8627     
8628     
8629     "pengiriman_ciwidey",
8630     
8631     
8632     
8633     
8634     
8635     "pengiriman_deli serdang",
8636     
8637     
8638     
8639     
8640     
8641     "pengiriman_demak",
8642     
8643     
8644     
8645     
8646     
8647     "pengiriman_denpasar",
8648     
8649     
8650     
8651
8652     
8653     
8654     "pengiriman_garut",
8655     
8656     
8657     
8658     
8659     
8660     "pengiriman_gianyar",
8661     
8662     
8663     
8664     
8665     
8666     "pengiriman_gresik",
8667     
8668     
8669     
8670     
8671     
8672     "pengiriman_gunung kidul",
8673     
8674     
8675     
8676
8677     
8678     
8679     "pengiriman_jambi",
8680     
8681     
8682     
8683     
8684     
8685     "pengiriman_jayapura",
8686     
8687     
8688     
8689     
8690     
8691     "pengiriman_jember",
8692     
8693     
8694     
8695     
8696     
8697     "pengiriman_jepara",
8698     
8699     
8700     
8701     
8702     
8703     "pengiriman_jombang",
8704     
8705     
8706     
8707     
8708     
8709     "pengiriman_karanganyar",
8710     
8711     
8712     
8713     
8714     
8715     "pengiriman_karawang",
8716     
8717     
8718     
8719     
8720     
8721     "pengiriman_karo",
8722     
8723     
8724     
8725     
8726     
8727     "pengiriman_kebumen",
8728     
8729     
8730     
8731     
8732     
8733     "pengiriman_kediri",
8734     
8735     
8736     
8737     
8738     
8739     "pengiriman_keerom",
8740     
8741     
8742     
8743     
8744     
8745     "pengiriman_kendal",
8746     
8747     
8748     
8749     
8750     
8751     "pengiriman_klaten",
8752     
8753     
8754     
8755     
8756     
8757     "pengiriman_kudus",
8758     
8759     
8760     
8761     
8762     
8763     "pengiriman_kupang",
8764     
8765     
8766     
8767     
8768     
8769     "pengiriman_lainnya",
8770     
8771     
8772     
8773     
8774     
8775     "pengiriman_lamongan",
8776     
8777     
8778     
8779     
8780     
8781     "pengiriman_lampung",
8782     
8783     
8784     
8785     
8786     
8787     "pengiriman_lampung barat",
8788     
8789     
8790     
8791     
8792     
8793     "pengiriman_lembang",
8794     
8795     
8796     
8797     
8798     
8799     "pengiriman_lombok",
8800     
8801     
8802     
8803     
8804     
8805     "pengiriman_lumajang",
8806     
8807     
8808     
8809     
8810     
8811     "pengiriman_madiun",
8812     
8813     
8814     
8815     
8816     
8817     "pengiriman_magelang",
8818     
8819     
8820     
8821     
8822     
8823     "pengiriman_majalengka",
8824     
8825     
8826     
8827     
8828     
8829     "pengiriman_makassar",
8830     
8831     
8832     
8833     
8834     
8835     "pengiriman_malang",
8836     
8837     
8838     
8839     
8840     
8841     "pengiriman_manado",
8842     
8843     
8844     
8845     
8846     
8847     "pengiriman_medan",
8848     
8849     
8850     
8851     
8852     
8853     "pengiriman_mengwi",
8854     
8855     
8856     
8857     
8858     
8859     "pengiriman_mojokerto",
8860     
8861     
8862     
8863     
8864     
8865     "pengiriman_nganjuk",
8866     
8867     
8868     
8869     
8870     
8871     "pengiriman_ngawi",
8872     
8873     
8874     
8875     
8876     
8877     "pengiriman_padang",
8878     
8879     
8880     
8881     
8882     
8883     "pengiriman_palembang",
8884     
8885     
8886     
8887     
8888     
8889     "pengiriman_pasuruan",
8890     
8891     
8892     
8893     
8894     
8895     "pengiriman_pati",
8896     
8897     
8898     
8899     
8900     
8901     "pengiriman_pekalongan",
8902     
8903     
8904     
8905     
8906     
8907     "pengiriman_pekanbaru",
8908     
8909     
8910     
8911     
8912     
8913     "pengiriman_pemalang",
8914     
8915     
8916     
8917     
8918     
8919     "pengiriman_ponorogo",
8920     
8921     
8922     
8923     
8924     
8925     "pengiriman_pontianak",
8926     
8927     
8928     
8929     
8930     
8931     "pengiriman_probolinggo",
8932     
8933     
8934     
8935     
8936     
8937     "pengiriman_purbalingga",
8938     
8939     
8940     
8941     
8942     
8943     "pengiriman_purwakarta",
8944     
8945     
8946     
8947     
8948     
8949     "pengiriman_purwokerto",
8950     
8951     
8952     
8953     
8954     
8955     "pengiriman_rembang",
8956     
8957     
8958     
8959     
8960     
8961     "pengiriman_riau",
8962     
8963     
8964     
8965     
8966     
8967     "pengiriman_salatiga",
8968     
8969     
8970     
8971     
8972     
8973     "pengiriman_samarinda",
8974     
8975     
8976     
8977     
8978     
8979     "pengiriman_semarang",
8980     
8981     
8982     
8983     
8984     
8985     "pengiriman_sentani",
8986     
8987     
8988     
8989     
8990     
8991     "pengiriman_serang",
8992     
8993     
8994     
8995     
8996     
8997     "pengiriman_sidoarjo",
8998     
8999     
9000     
9001     
9002     
9003     "pengiriman_singkawang",
9004     
9005     
9006     
9007     
9008     
9009     "pengiriman_sragen",
9010     
9011     
9012     
9013     
9014     
9015     "pengiriman_subang",
9016     
9017     
9018     
9019     
9020     
9021     "pengiriman_sukabumi",
9022     
9023     
9024     
9025     
9026     
9027     "pengiriman_sumbawa",
9028     
9029     
9030     
9031     
9032     
9033     "pengiriman_surabaya",
9034     
9035     
9036     
9037     
9038     
9039     "pengiriman_surakarta solo",
9040     
9041     
9042
9043     
9044     "pengiriman_tasikmalaya",
9045     
9046     
9047     
9048     
9049     
9050     "pengiriman_tegal",
9051     
9052     
9053     
9054     
9055     
9056     "pengiriman_timika",
9057     
9058     
9059     
9060     
9061     
9062     "pengiriman_wamena",
9063     
9064     
9065     
9066     
9067     
9068     "pengiriman_wiyung",
9069     
9070     
9071     
9072     
9073     
9074     "pengiriman_wonokromo",
9075     
9076     
9077     
9078     
9079     
9080     "pengiriman_yogyakarta",
9081 
9082   ]
9083   console.log(cityNonJabodetabek)
9084   let non_jabodetabek = []
9085   for(var i=0;i<cityNonJabodetabek.length;i++) {
9086     const obj = {
9087       "code": cityNonJabodetabek[i].toLowerCase().replace('pengiriman_', '').replace(' ','-'),
9088       "city": cityNonJabodetabek[i].replace('pengiriman_', '').replace(' ','-'),
9089       "zip": []
9090     }
9091     non_jabodetabek.push(obj)
9092   }
9093   let current_location = getCookie("location_delivery")
9094   $("[name=location]").change(function(){
9095     let v = $(this).val()
9096     let option = []
9097     if(v == 'Jabodetabek') {
9098       for(var i=0;i<jabodetabek.length;i++) {
9099         const jabodetabekHtml = `<option value=${jabodetabek[i].city}>${jabodetabek[i].city}</option>`
9100         option.push(jabodetabekHtml)
9101       }
9102       $("#choose-location").html(`<option value="">Choose Location</option>${option}`)
9103     } else {
9104       for(var i=0;i<non_jabodetabek.length;i++) {
9105         const nonjabodetabekHtml = `<option value=${non_jabodetabek[i].city}>${non_jabodetabek[i].city}</option>`
9106         option.push(nonjabodetabekHtml)
9107       }
9108       $("#choose-location").html(`<option value="">Choose Location</option>${option}`)
9109     }
9110   })
9111 
9112   $("#location-lock-submit").click(function(e){
9113     let select = $("#choose-location")
9114     let value = select.val().toLowerCase()
9115     console.log(value)
9116     if(select.val() == "") {
9117       return alert("Choose Your Location")
9118       e.preventDefault()
9119     }
9120     setCookie("location_delivery",value,1000000);
9121     
9122     location.reload();
9123     
9124   })
9125 
9126   $("#close-popup-delivery").click(function(){
9127     $(".MuiDialog-root").hide()
9128     if(!current_location){
9129       setCookie("location_delivery","jakarta",1000000);
9130       $("#loc_delivery_city, #loc_delivery_city_mobile").text("Jakarta")
9131     }
9132   })
9133   $("#loc_delivery, #loc_delivery_mobile").click(function(){
9134     $(".MuiDialog-root").show()
9135   })
9136 
9137   
9138   if(!current_location){
9139     
9140   } else {
9141     $("#loc_delivery_city, #loc_delivery_city_mobile").text(current_location)
9142     console.log(current_location)
9143     $("#choose-location").each(function(){
9144       if(current_location == 'jakarta' || current_location == 'depok' || current_location == 'bogor' || current_location == 'tangerang' || current_location == 'bekasi'){
9145         $("#jabodetabek").trigger("click")
9146       } else {
9147         $("#non-jabodetabek").trigger("click")
9148       }
9149       $("#choose-location").find("option[value="+current_location+"]").attr("selected", "selected")
9150     })
9151   }
9152 
9153   // 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'){
9154   //   $("#timeMalam").attr("disabled", false)
9155   // } else {
9156   //   $("#timeMalam").attr("disabled", true)
9157   // }
9158 
9159   if(current_location && current_location != 'jakarta') {
9160     $("#self-pickup").attr("disabled", true)
9161   }
9162 
9163   function setCookie(name,value,days) {
9164     var expires = "";
9165     if (days) {
9166       var date = new Date();
9167       date.setTime(date.getTime() + (days*24*60*60*1000));
9168       expires = "; expires=" + date.toUTCString();
9169     }
9170     document.cookie = name + "=" + (value || "")  + expires + "; path=/";
9171   }
9172   function getCookie(name) {
9173     var nameEQ = name + "=";
9174     var ca = document.cookie.split(';');
9175     for(var i=0;i < ca.length;i++) {
9176       var c = ca[i];
9177       while (c.charAt(0)==' ') c = c.substring(1,c.length);
9178       if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
9179     }
9180     return null;
9181   }
9182 </script>
9182
9183 <!-- One Tap -->
9184     
9184<script>
9185       console.log("Outerbloom...");
9186     </script>
9186
9187   <div id="shopify-block-ANVEzSUcxTUxZOGpwZ__9703700522657871012" class="shopify-block shopify-app-block">
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 <link rel="stylesheet" href="https://cdn1.bitbybit.studio/bitbybit/static/bitChat_widget/widget.css" />
9235 
9235<script src="https://cdn1.bitbybit.studio/bitbybit/static/bitChat_widget/widget.js" defer></script>
9235
9236 
9236<script>
9237   const widgetConfig = {
9238     id: "clz7897za002cz7otleaz0d3d",
9239     showQuickResponse: false,
9240     quickResponsesData: [],
9241     themeColor: "#ffffff",
9242     widgetText: "",
9243     radiusType: "circle",
9244     widgetIconType: "whatsapp",
9245     position: "right",
9246     storeLogo: "",
9247     storeName: "Outerbloom",
9248     storeDescription: "",
9249     size: "small",
9250     showCard: false,
9251     widgetColorType: "solid",
9252     widgetColor1: "#008069",
9253     widgetColor2: "#008069",
9254     social: {
9255       socialOrders: ["instagram","tiktok","facebook","x","youtube","linkedin","email"],
9256       values: {
9257         instagram: {
9258           enabled: false,
9259           value: "",
9260         },
9261         facebook: {
9262           enabled: false,
9263           value: "",
9264         },
9265         email: {
9266           enabled: false,
9267           value: "",
9268         },
9269         x: {
9270           enabled: false,
9271           value: "",
9272         },
9273         tiktok: {
9274           enabled: false,
9275           value: "",
9276         },
9277         linkedin: {
9278           enabled: false,
9279           value: "",
9280         },
9281         youtube: {
9282           enabled: false,
9283           value: "",
9284         },
9285       },
9286     },
9287   };
9288 
9289   function initializeWidget() {
9290     if (typeof BBBWidget !== 'undefined') {
9291       BBBWidget.init(widgetConfig);
9292     } else {
9293       setTimeout(initializeWidget, 100);
9294     }
9295   }
9296 
9297   initializeWidget();</script>
9297
9298 
9299 
9300 </div><div id="shopify-block-ATzRpVTBPU3k1R2pnW__286197278318599166" class="shopify-block shopify-app-block">
9301 
9302 
9303 <div style="position: fixed; bottom: 0; right: 0"></div>
9304 
9305 
9305<script>
9306 console.info("bitlogin extension version: v2.5.7");
9307 
9308 const googleScript = document.createElement("script");
9309 googleScript.setAttribute("src", "https://accounts.google.com/gsi/client");
9310 document.head.append(googleScript);
9311 
9312 const bitLoginBaseUrl = "https://api.bitbybit.studio";
9313 const apiUrl = `${bitLoginBaseUrl}/bitlogin/api`;
9314 
9315 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"}};
9316 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
9316n1.oa2-cs.v1.1cb5f9085a202341f60daf5a7be16c570ccc0b4bd5908b3afd080f34e9b8935d","appleTeamId":null,"applePrivateKey":null,"usePersonalOauth":false,"position":null}];
9317 const redirectUrl = appearance.redirectLink;
9318 
9319 let locationCacheSet = false;
9320 let errorLocation = false;
9321 let oneTapSet = false;
9322 
9323 let bitloginCache = {
9324   appearance: appearance,
9325   config: config
9326 };
9327 
9328 let isInitializing = false;
9329 const queue = [];
9330 
9331 // Add CSS for the popup
9332 const popupStyles = document.createElement('style');
9333 popupStyles.textContent = `
9334   /* Styles for login popup */
9335   .bitlogin-popup-overlay {
9336     position: fixed;
9337     top: 0;
9338     left: 0;
9339     width: 100%;
9340     height: 100%;
9341     background: rgba(0, 0, 0, 0.45);
9342     backdrop-filter: blur(4px);
9343     display: flex;
9344     align-items: center;
9345     justify-content: center;
9346     opacity: 0;
9347     transition: opacity 0.3s ease-in-out;
9348     z-index: 999999;
9349   }
9350   
9351   .bitlogin-popup-overlay.visible {
9352     opacity: 1;
9353   }
9354   
9355   .bitlogin-popup {
9356     background: #FFFFFF;
9357     box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
9358     border-radius: 16px;
9359     width: 100%;
9360     max-width: 560px;
9361     display: flex;
9362     overflow: hidden;
9363     position: relative;
9364     opacity: 0;
9365     transform: translateY(20px) scale(0.98);
9366     transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
9367   }
9368   
9369   .bitlogin-popup.visible {
9370     opacity: 1;
9371     transform: translateY(0) scale(1);
9372   }
9373   
9374   .bitlogin-popup-with-image {
9375     max-width: 640px;
9376   }
9377   
9378   .bitlogin-popup-right-image {
9379     flex-direction: row-reverse;
9380   }
9381   
9382   .bitlogin-popup-image {
9383     object-fit: cover;
9384     width: 50%;
9385     height: auto;
9386   }
9387   
9388   .bitlogin-popup-content {
9389     padding: 32px;
9390     position: relative;
9391     width: 50%;
9392   }
9393   
9394   .bitlogin-popup-close {
9395     position: absolute;
9396     top: 16px;
9397     right: 16px;
9398     background: white;
9399     border: none;
9400     width: 30px;
9401     height: 30px;
9402     display: flex;
9403     align-items: center;
9404     justify-content: center;
9405     cursor: pointer;
9406     transition: background-color 0.2s;
9407     color: inherit;
9408     padding: 0;
9409   }
9410   
9411   .bitlogin-popup-close:hover {
9412     background-color: #e5e5e5;
9413   }
9414   
9415   .bitlogin-popup-buttons {
9416     display: flex;
9417     flex-direction: column;
9418     gap: 12px;
9419     margin-top: 24px;
9420   }
9421   
9422   /* Button styles within popup - override width for popup buttons */
9423   .bitlogin-popup-buttons #google-login,
9424   .bitlogin-popup-buttons #facebook-login,
9425   .bitlogin-popup-buttons #apple-login,
9426   .bitlogin-popup-buttons #whatsapp-login,
9427   .bitlogin-popup-buttons #microsoft-login,
9428   .bitlogin-popup-buttons #twitter-login,
9429   .bitlogin-popup-buttons #amazon-login,
9430   .bitlogin-popup-buttons #instagram-login,
9431   .bitlogin-popup-buttons #magic-link-login,
9432   .bitlogin-popup-buttons #mobile-app-login {
9433     width: 100% !important;
9434     font-family: inherit !important;
9435   }
9436   
9437   .bitlogin-popup-footer {
9438     margin-top: 32px;
9439     text-align: center;
9440     font-size: 14px;
9441     opacity: 0.6;
9442   }
9443   
9444   /* Modern Typography */
9445   .bitlogin-popup h2 {
9446     margin-top: 12px;
9447     font-size: 21px !important;
9448     line-height: 1.2 !important;
9449     font-weight: 700 !important;
9450     letter-spacing: -0.02em !important;
9451     margin-bottom: 16px !important;
9452   }
9453   
9454   .bitlogin-popup-header {
9455     position: relative;
9456     margin-bottom: 24px;
9457   }
9458   
9459   /* Modern gradient accent */
9460   .bitlogin-popup-content > div {
9461     font-size: 16px !important;
9462     line-height: 1.2 !important;
9463     opacity: 0.85 !important;
9464   }
9465   
9466   /* Enhanced button interactions */
9467   .bitlogin-popup-buttons button {
9468     position: relative;
9469     overflow: hidden;
9470   }
9471   
9472   @keyframes ripple {
9473     0% {
9474       transform: scale(0, 0);
9475       opacity: 0.5;
9476     }
9477     100% {
9478       transform: scale(100, 100);
9479       opacity: 0;
9480     }
9481   }
9482   
9483   /* Responsive adjustments */
9484   @media (max-width: 640px) {
9485     .bitlogin-popup {
9486       max-width: 90%;
9487       width: 90%;
9488       margin: 0 16px;
9489     }
9490     
9491     .bitlogin-popup-with-image {
9492       flex-direction: column !important;
9493     }
9494     
9495     .bitlogin-popup-image {
9496       width: 100%;
9497       height: 180px;
9498     }
9499     
9500     .bitlogin-popup-content {
9501       padding: 24px;
9502     }
9503     
9504     .bitlogin-popup h2 {
9505       font-size: 24px !important;
9506     }
9507   }
9508 `;
9509 
9510 document.head.appendChild(popupStyles);
9511 
9512 // Add fonts link for different font options
9513 const fontsLink = document.createElement('link');
9514 fontsLink.rel = 'stylesheet';
9515 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';
9516 document.head.appendChild(fontsLink);
9517 
9518 (async () => {
9519   try {
9520     let host = window.location.host;
9521     if (host === "admin.shopify.com") {
9522       host = `${window.location.pathname.split("/")[2]}.myshopify.com`;
9523     }
9524 
9525     const urlSearchParams = new URLSearchParams(window.location.search);
9526     const checkoutUrl = urlSearchParams.get("checkout_url");
9527 
9528     async function init({ inputRef, index }) {
9529       if (isInitializing) {
9530         queue.push(() => init({ inputRef, index }));
9531         return;
9532       }
9533 
9534       isInitializing = true;
9535 
9536       try {
9537         let bitLoginSectionRoot = document.querySelector(
9538           `.bitlogin-root[data-index="${index}"]`
9539         );
9540 
9541         const formRef = inputRef?.closest(
9542           "form:not([action='/account/recover'])"
9543         );
9544 
9545         if (formRef && !bitLoginSectionRoot) {
9546           await getLocation();
9547 
9548           bitLoginSectionRoot = document.createElement(`div`);
9549 
9550           bitLoginSectionRoot.setAttribute("class", "bitlogin-root");
9551           bitLoginSectionRoot.setAttribute("data-index", `${index}`);
9552 
9553           updateAppearance({
9554             formRef,
9555             rootRef: bitLoginSectionRoot,
9556             host,
9557           });
9558         }
9559       } catch (err) {
9560         console.error(`error while initiating bitlogin extensions`, err);
9561       } finally {
9562         // Release the lock
9563         isInitializing = false;
9564 
9565         // Check if there are pending items in the queue
9566         if (queue.length > 0) {
9567           // Process the next function in the queue
9568           const nextFunction = queue.shift();
9569           nextFunction();
9570         }
9571       }
9572     }
9573 
9574     function initAll() {
9575       return new Promise((resolve, reject) => {
9576         setTimeout(async () => {
9577           const inputRefs = document.querySelectorAll(
9578             'input[name="customer[email]"]'
9579           );
9580 
9581           for (let i = 0; i < inputRefs.length; i++) {
9582             const currentInputRef = inputRefs[i];
9583             const isVisible = isElementVisible(currentInputRef);
9584 
9585             if (isVisible) {
9586               await init({ inputRef: currentInputRef, index: i });
9587             }
9588           }
9589 
9590           resolve("ok");
9591         }, 100);
9592       });
9593     }
9594 
9595     const observer = new MutationObserver((mutationsList) => {
9596       for (let mutation of mutationsList) {
9597         initAll();
9598       }
9599     });
9600 
9601     observer.observe(document.body, {
9602       childList: true,
9603       subtree: true,
9604       attributes: true,
9605     });
9606 
9607     initAll();
9608 
9609     if (appearance.googleOneTap) {
9610       setupOneTap({ host, checkoutUrl });
9611     }
9612 
9613     // Initialize popup
9614     await initPopup(host);
9615   } catch (error) {
9616     console.error("Error initializing BitLogin:", error);
9617   }
9618 })();
9619 
9620 async function initPopup(host) {
9621   // Check if user is already logged in using Liquid checks properly
9622   const isLoggedIn = false || 
9623                     document.querySelector('.customer-logout-link') || 
9624                     document.querySelector('.account-link') || 
9625                     window.location.pathname.includes('/account');
9626   
9627   if (isLoggedIn) {
9628     return; // User is logged in, don't show popup
9629   }
9630 
9631   try {
9632     // Fetch the popup configuration
9633     const popupConfig = await fetch(`${apiUrl}/appearance/popup/domain/${host}`)
9634       .then(res => res.json())
9635       .catch(err => {
9636         console.error('Error fetching popup configuration:', err);
9637         return null;
9638       });
9639 
9640     if (!popupConfig || !popupConfig.enabled) {
9641       return;
9641 // Don't show popup if disabled or config not found
9642     }
9643 
9644     // Create popup after 10 seconds
9645     setTimeout(() => {
9646       // Check if user is still on the page and still not logged in
9647       if (document.visibilityState === 'visible') {
9648         // Additional check in case user logged in during the 10 second wait
9649         const currentlyLoggedIn = false || 
9650                               document.querySelector('.customer-logout-link') || 
9651                               document.querySelector('.account-link');
9652         
9653         if (!currentlyLoggedIn) {
9654           createLoginPopup(popupConfig, host);
9655         }
9656       }
9657     }, 10000);
9658   } catch (error) {
9659     console.error('Error initializing popup:', error);
9660   }
9661 }
9662 
9663 function createLoginPopup(popupConfig, host) {
9664   // Font mapping
9665   const fontFamilyMap = {
9666     system_fonts: 'system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',
9667     montserrat: 'Montserrat, sans-serif',
9668     roboto: 'Roboto, sans-serif',
9669     open_sans: 'Open Sans, sans-serif',
9670     noto_sans: 'Noto Sans, sans-serif',
9671     lato: 'Lato, sans-serif',
9672     poppins: 'Poppins, sans-serif',
9673     quicksand: 'Quicksand, sans-serif',
9674     raleway: 'Raleway, sans-serif',
9675     pt_sans: 'PT Sans, sans-serif',
9676     oswald: 'Oswald, sans-serif',
9677   };
9678 
9679   // Create overlay
9680   const overlay = document.createElement('div');
9681   overlay.className = 'bitlogin-popup-overlay';
9682   
9683   // Create popup container with appropriate styling
9684   const popup = document.createElement('div');
9685   popup.className = 'bitlogin-popup';
9686 
9687   if (popupConfig.layout === 'default') {
9688     popup.style.maxWidth = '400px';
9689   }
9690   
9691   // Function to close the popup
9692   const closePopup = () => {
9693     overlay.classList.remove('visible');
9694     popup.classList.remove('visible');
9695     setTimeout(() => {
9696       if (document.body.contains(overlay)) {
9697         document.body.removeChild(overlay);
9698       }
9699     }, 300);
9700   };
9701   
9702   // Add click handler to the overlay to close when clicking outside
9703   overlay.addEventListener('click', (event) => {
9704     // Close only if clicking directly on the overlay, not its children
9705     if (event.target === overlay) {
9706       closePopup();
9707     }
9708   });
9709   
9710   // Add escape key handler to close popup
9711   document.addEventListener('keydown', (event) => {
9712     if (event.key === 'Escape' && document.body.contains(overlay)) {
9713       closePopup();
9714     }
9715   });
9716 
9717   // Create layout with image if specified
9718   let contentWrapper;
9719   if (popupConfig.layout !== 'default' && popupConfig.popupImage) {
9720     popup.classList.add('bitlogin-popup-with-image');
9721     
9722     if (popupConfig.layout === 'right') {
9723       popup.classList.add('bitlogin-popup-right-image');
9724     }
9725     
9726     // Add image
9727     const image = document.createElement('img');
9728     image.className = 'bitlogin-popup-image';
9729     image.src = popupConfig.popupImage;
9730     image.alt = 'Login';
9731     image.loading = 'lazy';
9732     popup.appendChild(image);
9733     
9734     // Create content container
9735     contentWrapper = document.createElement('div');
9736     contentWrapper.className = 'bitlogin-popup-content';
9737 
9738     if (popupConfig.layout === 'right') {
9739       const closeButton = document.createElement('button');
9740       closeButton.className = 'bitlogin-popup-close';
9741       closeButton.innerHTML = `<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="https://photoin.io/images/2026/05/28/logo-kvtoto.png">
9742         <path d="M13 1L1 13M1 1L13 13" stroke="${popupConfig.fontColor}" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
9743       </svg>`;
9744       closeButton.setAttribute('aria-label', 'Close');
9745       closeButton.onclick = closePopup;
9746   
9747       popup.appendChild(closeButton);
9748     }
9749   } else {
9750     contentWrapper = document.createElement('div');
9751     contentWrapper.className = 'bitlogin-popup-content';
9752     contentWrapper.style.width = '100%';
9753   }
9754 
9755   // Set background style
9756   if (popupConfig.backgroundTheme === 'gradient') {
9757     contentWrapper.style.background = `linear-gradient(135deg, ${popupConfig.backgroundPopupColor}, ${popupConfig.gradientColor})`;
9758   } else {
9759     contentWrapper.style.backgroundColor = popupConfig.backgroundPopupColor;
9760   }
9761 
9762   // Apply font family
9763   contentWrapper.style.setProperty('font-family', fontFamilyMap[popupConfig.font] || fontFamilyMap.system_fonts, 'important');
9764 
9765   if (popupConfig.layout !== 'right') {
9766     const closeButton = document.createElement('button');
9767     closeButton.className = 'bitlogin-popup-close';
9768     closeButton.innerHTML = `<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="https://photoin.io/images/2026/05/28/logo-kvtoto.png">
9769       <path d="M13 1L1 13M1 1L13 13" stroke="${popupConfig.fontColor}" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
9770     </svg>`;
9771     closeButton.setAttribute('aria-label', 'Close');
9772     closeButton.onclick = closePopup;
9773   
9774     contentWrapper.appendChild(closeButton);
9775   }
9776 
9777   // Add heading with subtle animation effect
9778   const header = document.createElement('div');
9779   header.className = 'bitlogin-popup-header';
9780   
9781   const heading = document.createElement('h2');
9782   heading.textContent = popupConfig.headingText || 'Sign in for exclusive benef
9782its';
9783   heading.style.color = popupConfig.fontColor;
9784   header.appendChild(heading);
9785 
9786   // Add body text with improved formatting
9787   const bodyText = document.createElement('div');
9788   bodyText.innerHTML = popupConfig.bodyText || 'Join our community to access exclusive offers and a personalized shopping experience.';
9789   bodyText.style.color = popupConfig.fontColor;
9790   header.appendChild(bodyText);
9791   
9792   contentWrapper.appendChild(header);
9793 
9794   // Create buttons container with modern styling
9795   const buttonsContainer = document.createElement('div');
9796   buttonsContainer.className = 'bitlogin-popup-buttons';
9797   
9798   // Add social buttons
9799   const providerLabels = {
9800     'GOOGLE': 'Continue with Google',
9801     'FACEBOOK': 'Continue with Facebook',
9802     'APPLE': 'Continue with Apple',
9803     'WHATSAPP': 'Continue with WhatsApp',
9804     'MAGIC_LINK': 'Continue with Email',
9805   };
9806 
9807   // Add first login provider button
9808   if (popupConfig.loginProvider1 !== 'NONE') {
9809     const buttonConfig = {
9810       theme: popupConfig.colorScheme || 'match',
9811       customColor: popupConfig.textColor,
9812       format: 'contentFlex',
9813       buttonText: bitloginCache.appearance.buttonList[popupConfig.loginProvider1.toLowerCase()],
9814       hasShadow: popupConfig.hasShadow !== undefined ? popupConfig.hasShadow : true,
9815       style: popupConfig.style || 'rounded',
9816       size: popupConfig.size || 'medium',
9817       colorScheme: popupConfig.colorScheme || 'match',
9818       backgroundColor: popupConfig.backgroundColor || '#3B82F6',
9819       textColor: popupConfig.textColor || '#FFFFFF',
9820       outlineColor: popupConfig.outlineColor || '#3B82F6',
9821       host: host
9822     };
9823     
9824     const button1 = createSocialLoginButton(popupConfig.loginProvider1, buttonConfig);
9825     
9826     // Handle click event - this overrides the default click handler in createSocialLoginButton
9827     button1.onclick = () => {
9828       onClickSocialLogin({ provider: popupConfig.loginProvider1.toLowerCase(), host });
9829       closePopup();
9830     };
9831     
9832     buttonsContainer.appendChild(button1);
9833   }
9834 
9835   // Add second login provider button if enabled
9836   if (popupConfig.loginProvider2 !== 'NONE') {
9837     const buttonConfig = {
9838       theme: popupConfig.colorScheme || 'match',
9839       customColor: popupConfig.textColor,
9840       format: 'contentFlex',
9841       buttonText: bitloginCache.appearance.buttonList[popupConfig.loginProvider2.toLowerCase()],
9842       hasShadow: popupConfig.hasShadow !== undefined ? popupConfig.hasShadow : true,
9843       style: popupConfig.style || 'rounded',
9844       size: popupConfig.size || 'medium',
9845       colorScheme: popupConfig.colorScheme || 'match',
9846       backgroundColor: popupConfig.backgroundColor || '#3B82F6',
9847       textColor: popupConfig.textColor || '#FFFFFF',
9848       outlineColor: popupConfig.outlineColor || '#3B82F6',
9849       host: host
9850     };
9851     
9852     const button2 = createSocialLoginButton(popupConfig.loginProvider2, buttonConfig);
9853     
9854     // Handle click event - this overrides the default click handler in createSocialLoginButton
9855     button2.onclick = () => {
9856       onClickSocialLogin({ provider: popupConfig.loginProvider2.toLowerCase(), host });
9857       closePopup();
9858     };
9859     
9860     buttonsContainer.appendChild(button2);
9861   }
9862 
9863   contentWrapper.appendChild(buttonsContainer);
9864 
9865   // Append content to popup
9866   popup.appendChild(contentWrapper);
9867   
9868   // Append popup to overlay
9869   overlay.appendChild(popup);
9870   
9871   // Append overlay to body
9872   document.body.appendChild(overlay);
9873   
9874   // Trigger animation with slight delay for better perceived performance
9875   setTimeout(() => {
9876     overlay.classList.add('visible');
9877     setTimeout(() => {
9878       popup.classList.add('visible');
9879     }, 50);
9880   }, 10);
9881 }
9882 
9883 window.addEventListener("load", () => {
9884   window.addEventListener("message", (event) => {
9885     const receivedData = event.data;
9886 
9887     if (receivedData.type === "authorize") {
9888       post(
9889         JSON.parse(
9890           JSON.stringify({
9891             "customer[email]": receivedData.email,
9892             "customer[password]": receivedData.password,
9893             form_type: "customer_login",
9894             utf8: "✓",
9895             return_url: redirectUrl,
9896           })
9897         )
9898       );
9899     } else if (receivedData.type === "rejected") {
9900       if (receivedData.reason === "customer_account_disabled") {
9901         showAlert(
9902           "Your account needs to be activated. We've sent you an activation link - please check your email to complete this step."
9903         );
9904       } else if (receivedData.reason === "customer_entry_created_email_not_set") {
9905         showAlert(
9906           "A new account was created but requires an email address. Please update your account with a valid email address to continue."
9907         );
9908       } else if (receivedData.reason === "customer_exist_email_not_set") {
9909         showAlert(
9910           "Your existing account is missing an email address. Please contact support to update your account with a valid email address."
9911         );
9912       }
9913     }
9914 
9915     if (receivedData.type === "customer_authenticated") {
9916       // Dispatch a custom event that merchants can listen for to implement their custom logic
9917       const customerAuthEvent = new CustomEvent('bitlogin:customer_authenticated', {
9918         detail: {
9919           provider: receivedData.provider,
9920           customer: receivedData.customer,
9921           shopifyCustomerCreated: receivedData.shopifyCustomerCreated
9922         }
9923       });
9924       
9925       // Dispatch the event on the window object so merchants can listen for it
9926       window.dispatchEvent(customerAuthEvent);
9927       
9928     }
9929   });
9930 });
9931 
9932 // Reusable functions for social login buttons
9933 function createSocialLoginButton(provider, config = {}) {
9934   const {
9935     theme = 'match',
9936     customColor = null,
9937     format = 'contentFlex',
9938     buttonText = null,
9939     hasShadow = true,
9940     style = 'rounded',
9941     size = 'medium',
9942     colorScheme = 'match',
9943     backgroundColor = '#3B82F6',
9944     textColor = '#FFFFFF',
9945     outlineColor = '#3B82F6',
9946     rootRef = null,
9947     host = null
9948   } = config;
9949   
9950   // Create button element with appropriate ID and attributes
9951   const button = document.createElement('button');
9952   button.id = `${provider.toLowerCase()}-login`;
9953   button.type = 'button';
9954   
9955   // Set the inner SVG based on provider
9956   switch (provider.toUpperCase()) {
9957     case 'GOOGLE':
9958       button.innerHTML = googleLoginIcon(theme, customColor);
9959       break;
9960     case 'FACEBOOK':
9961       button.innerHTML = facebookLoginIcon(theme, customColor);
9962       break;
9963     case 'APPLE':
9964       button.innerHTML = appleLoginIcon(theme, customColor);
9965       break;
9966     case 'WHATSAPP':
9967       button.innerHTML = whatsappLoginIcon(theme, customColor);
9968       break;
9969     case 'MICROSOFT':
9970       button.innerHTML = microsoftLoginIcon(theme, customColor);
9971       break;
9972     case 'TWITTER':
9973       button.innerHTML = twitterLoginIcon(theme, customColor);
9974       break;
9975     case 'AMAZON':
9976       button.innerHTML = amazonLoginIcon(theme, customColor);
9977       break;
9978     case 'INSTAGRAM':
9979       button.innerHTML = instagramLoginIcon(theme, customColor);
9980       break;
9981     case 'MAGIC_LINK':
9982       button.innerHTML = magicLinkLoginIcon(theme, customColor);
9983       break;
9984     case 'MOBILE_APP':
9985       button.innerHTML = mobileAppLoginIcon(theme, customColor);
9986       break;
9987     case 'LINKEDIN':
9988       button.innerHTML = linkedinLoginIcon(theme, customColor);
9989       break;
9990   }
9991   
9992   // Add text if format isn't icon-only and buttonText is provided
9993   if (format !== "wrapperFlexContainerOnlyLogo" && buttonText) {
9994     button.innerHTML += `<p>${buttonText}</p>`;
9995   }
9996   
9997   // Apply styling
9998   // Shadow
9999   if (hasShadow) {
10000     const shadowProperties = `0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)`;
10001     button.style["box-shadow"] = shadowProperties;
10002   }
10003   
10004   // Border radius
10005   const radiusProperties =
10006     style === "rounded"
10007       ? "8px"
10008       : style === "square"
10009       ? "0px"
10010       : style === "fullRounded"
10011       ? format === "wrapperFlexContainerOnlyLogo"
10012         ? "50%"
10013         : "50px"
10014       : undefined;
10015   button.style["border-radius"] = radiusProperties;
10016   
10017   // Size
10018   const sizeProperties =
10019     size === "medium"
10020       ? "12px"
10021       : size === "small"
10022       ? "8px"
10023       : size === "large"
10024       ? "16px"
10025       : "8px";
10026 
10027   button.style["padding-block"] = sizeProperties;
10028 
10029   // Format styling
10030   if (format) {
10031     if (
10032       format === "contentFlexReverse" ||
10033       format === "contentFlexCenterReverse"
10034     ) {
10035       const flexDir = `row-reverse`;
10036       button.style["flex-direction"] = flexDir;
10037     }
10038     
10039     if (
10040       format === "contentFlexCenter" ||
10041       format === "contentFlexCenterReverse"
10042     ) {
10043       const justifyContent = `center`;
10044       button.style["justify-content"] = justifyContent;
10045     } else if (
10046       format === "contentFlex" ||
10047       format === "contentFlexReverse"
10048     ) {
10049       const buttonTextElement = button.querySelector("p");
10050       if (buttonTextElement) {
10051         buttonTextElement.style["flex-grow"] = 1;
10052         buttonTextElement.style["text-align"] = "center";
10053       }
10054     }
10055 
10056     if (format === "wrapperFlexContainerOnlyLogo" && rootRef) {
10057       rootRef.style["flex-direction"] = "row";
10058       rootRef.style["gap"] = "8px";
10059       rootRef.style["display"] = "flex";
10060       rootRef.style["flex-wrap"] = "wrap";
10061 
10062       const sizeMapping = {
10063         small: "52px",
10064         medium: "62px",
10065         large: "72px",
10066       };
10067       const buttonSize = sizeMapping[size] || "52px";
10068 
10069       button.style["margin"] = 0;
10070       button.style["width"] = buttonSize;
10071       button.style["height"] = buttonSize;
10072       button.style["display"] = "flex";
10073       button.style["align-items"] = "center";
10074       button.style["justify-content"] = "center";
10075 
10076       const svgElement = button.querySelector("svg");
10077       if (svgElement) {
10078         svgElement.style["flex"] = "none";
10079       }
10080     }
10081   }
10082 
10083   // Color scheme styling
10084   if (colorScheme === "black") {
10085     button.classList.add("scheme-black");
10086   } else if (colorScheme === "white") {
10087     button.classList.add("scheme-white");
10088   } else if (colorScheme === "custom") {
10089     button.style["background-color"] = backgroundColor;
10090     button.style["color"] = textColor;
10091     button.style["border-color"] = outlineColor;
10092 
10093     const darkenColor = (color, percentage) => {
10094       const value = parseInt(color.slice(1), 16);
10095       const r = Math.max(0, ((value >> 16) & 0xff) - (0xff * percentage));
10096       const g = Math.max(0, ((value >> 8) & 0xff) - (0xff * percentage));
10097       const b = Math.max(0, (value & 0xff) - (0xff * percentage));
10098       return `rgb(${Math.round(r)}, ${Math.round(g)}, ${Math.round(b)})`;
10099     };
10100 
10101     button.addEventListener("mouseover", () => {
10102       button.style["background-color"] = darkenColor(backgroundColor, 0.2);
10103     });
10104     button.addEventListener("mouseout", () => {
10105       button.style["background-color"] = backgroundColor;
10106     });
10107   } else if (colorScheme === "match") {
10108     button.classList.add("scheme-match");
10109   } else if (colorScheme === "matchOutline") {
10110     button.classList.add("scheme-match-outline");
10111   }
10112   
10113   // Add click event listener if host is provided
10114   if (host) {
10115     button.addEventListener("click", () => 
10116       onClickSocialLogin({ provider: provider.toLowerCase(), host })
10117     );
10118   }
10119   
10120   return button;
10121 }
10122 
10123 function setupSocialLoginButtons(config, rootRef, data, host) {
10124   // Clear any existing content
10125   rootRef.innerHTML = '';
10126 
10127   const sortedEnabledProviders = config
10128     .filter(c => c.enabledWeb)
10129     .sort((a, b) => a.position - b.position);
10130 
10131   sortedEnabledProviders.forEach(provider => {
10132     const key = provider.provider;
10133     const lowerKey = key.toLowerCase();
10134 
10135     const buttonText = data.format !== "wrapperFlexContainerOnlyLogo"
10136       ? (lowerKey === 'twitter'
10137           ? data.buttonList.twitter.replace('Twitter', 'X')
10138           : data.buttonList[lowerKey])
10139       : null;
10140 
10141     const button = createSocialLoginButton(key, {
10142       theme: data.colorScheme || 'match',
10143       customColor: data.textColor,
10144       format: data.format,
10145       buttonText: buttonText,
10146       hasShadow: data.hasShadow !== undefined ? data.hasShadow : true,
10147       style: data.style,
10148       size: data.size,
10149       colorScheme: data.colorScheme,
10150       backgroundColor: data.backgroundColor,
10151       textColor: data.textColor,
10152       outlineColor: data.outlineColor,
10153       rootRef: rootRef,
10154       host: host
10155     });
10156 
10157     rootRef.appendChild(button);
10158   });
10159 
10160   return rootRef;
10161 }
10162 
10163 function updateAppearance({ formRef, rootRef, host }) {
10164   if (!formRef) return;
10165 
10166   const data = bitloginCache.appearance || {
10167     style: "square",
10168     hasShadow: false,
10169     colorScheme: "match",
10170     backgroundColor: "#FFFFFF",
10171     outlineColor: "#000000",
10172     textColor: "#000000",
10173     position: "bottom",
10174     hideDivider: "false",
10175     dividerText: "OR",
10176     size: "small",
10177     format: "contentFlex",
10178     language: "en",
10179     buttonText: "Continue with",
10180     redirectLink: "/account",
10181     googleOneTap: true,
10182     googleOneTapBanner: true,
10183     customerTag: "bitLogin",
10184     redirectOneTapDesktop: null,
10185     redirectOneTapMobile: null,
10186     buttonList: {
10187       google: "Continue with Google",
10188       facebook: "Continue with Facebook",
10189       apple: "Continue with Apple",
10190       whatsapp: "Continue with WhatsApp",
10191       microsoft: "Continue with Microsoft",
10192       twitter: "Continue with X",
10193       amazon: "Continue with Amazon",
10194       instagram: "Continue with Instagram",
10195       magic_link: "Continue with Magic Link",
10196       mobile_app: "Continue with Mobile App",
10197       linkedin: "Continue with LinkedIn",
10198     },
10199   };
10200 
10201   // Use the new setupSocialLoginButtons function to create and configure all buttons
10202   setupSocialLoginButtons(bitloginCache.config, rootRef, data, host);
10203 
10204   let divider;
10205 
10206   if (!data.hideDivider) {
10207     divider = document.createElement("div");
10208     const dividerStyle = "text-align:center;margin-block:16px";
10209     divider.setAttribute("style", dividerStyle);
10210     divider.innerHTML = data.dividerText;
10211   }
10212 
10213   if (data.position === "bottom") {
10214     if (divider) {
10215       formRef.appendChild(divider);
10216     }
10217     formRef.appendChild(rootRef);
10218   } else if (data.position === "top") {
10219     if (divider) {
10220       formRef.prepend(divider);
10221     }
10222     formRef.prepend(rootRef);
10223   }
10224 }
10225 
10226 
10227 async function onClickSocialLogin({ provider, host }) {
10228   const rand = Math.random().toString();
10229 
10230   const locationQueryString = bitloginCache.location
10231     ? `&${objectToQueryString(bitloginCache.location)}`
10232     : "";
10233 
10234   const width = 800;
10235   const height = 600;
10236   const left = (window.screen.width / 2) - (width / 2);
10237   const top = (window.screen.height / 2) - (height / 2) - 50;
10238 
10239   if(provider === 'whatsapp') {
10240     window.open(
10241       `/apps/bitlogin/whatsapp${locationQueryString ? `?${locationQueryString}` : ''}`,
10242       "mywindow",
10243       `menubar=1,resizable=1,width=${width},height=${height},top=${top},left=${left}`
10244     );
10245   } else {
10246     window.open(
10247       `${apiUrl}/login/${provider}?referrerId=${rand}&shop=${host}${locationQueryString}`,
10248       "mywindow",
10249       `menubar=1,resizable=1,width=${width},height=${height},top=${top},left=${left}`
10250     );
10251   }
10252 }
10253 
10254 function objectToQueryString(obj) {
10255   return Object.keys(obj)
10256     .map((key) => {
10257       return encodeURIComponent(key) + "=" + encodeURIComponent(obj[key]);
10258     })
10259     .join("&");
10260 }
10261 
10262 async function getLocation() {
10263   if (locationCacheSet) return;
10264 
10265   try {
10266     const response = await fetch("https://ipapi.co/json/");
10267 
10268     if (!response.ok) {
10269       console.error(`error retrieving location...`, response.status);
10270       errorLocation = true;
10271     } else {
10272       const data = await response.json();
10273 
10274       const { city, region, country_name, country_code } = data;
10275 
10276       const formattedLocationData = {
10277         city,
10278         region,
10279         country_name,
10280         country_code,
10281       };
10282 
10283       bitloginCache.location = formattedLocationData;
10284       locationCacheSet = true;
10285       errorLocation = false;
10286     }
10287   } catch (err) {
10288     console.error(`error fetching location`, err);
10289     errorLocation = true;
10290   }
10291 }
10292 
10293 function post(params) {
10294   // The rest of this code assumes you are not using a library.
10295   // It can be made less verbose if you use one.
10296   const form = document.createElement("form");
10297   form.method = "post";
10298   form.action = `/account/login`;
10299   form.acceptCharset = "UTF-8";
10300   form.setAttribute("data-login-with-shop-sign-in", "true");
10301   form.setAttribute("novalidate", "novalidate");
10302 
10303   for (const key in params) {
10304     if (params.hasOwnProperty(key)) {
10305       const hiddenField = document.createElement("input");
10306       hiddenField.type = "hidden";
10307       hiddenField.name = key;
10308       hiddenField.value = params[key];
10309 
10310       form.appendChild(hiddenField);
10311     }
10312   }
10313 
10314   document.body.appendChild(form);
10315   form.submit();
10316 }
10317 
10318 async function setupOneTap({ host, checkoutUrl }) {
10319   if (oneTapSet) return;
10320 
10321   const redirectOneTapDesktop = JSON.parse(JSON.stringify(bitloginCache.appearance.redirectOneTapDesktop || '[]'));
10322   const redirectOneTapMobile = JSON.parse(JSON.stringify(bitloginCache.appearance.redirectOneTapMobile || '[]'));
10323 
10324   const isMobile = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent);
10325   const redirectList = JSON.parse(isMobile ? redirectOneTapMobile : redirectOneTapDesktop);
10326 
10327   const currentPath = window.location.pathname.toLowerCase();
10328   const currentUrl = window.location.href.toLowerCase();
10329 
10330   const shouldHideGoogleOneTap = redirectList.some(({ value }) => {
10331     switch (value) {
10332       case 'home':
10333         return currentPath === '/';
10334       case 'product':
10335         return currentPath.startsWith('/products/');
10336       case 'collections':
10337         return currentPath.startsWith('/collections');
10338       case 'cart':
10339         return currentPath === '/cart';
10340       case 'checkout':
10341         return currentPath.startsWith('/checkouts') && !currentPath.includes('thank_you');
10342       case 'thank_you':
10343         return currentPath.includes('/thank_you');
10344       case 'account':
10345         return currentPath.startsWith('/account');
10346       case 'pages':
10347         return currentPath.startsWith('/pages');
10348       case 'blogs':
10349         return currentPath === '/blogs' || currentPath === '/blogs/news';
10350       case 'blog_post':
10351         return currentPath.startsWith('/blogs/') && currentPath.split('/').length > 3;
10352       default:
10353         return false;
10354     }
10355   });
10356 
10357   if (shouldHideGoogleOneTap) return;
10358 
10359   const oneTapClientId = bitloginCache.config.find(
10360     (config) => config.provider === "GOOGLE"
10361   )?.clientId;
10362 
10363   const isLoggedIn = false;
10364 
10365   if (bitloginCache.appearance.googleOneTap && oneTapClientId && !isLoggedIn) {
10366     const googleOneTapButton = document.createElement("div");
10367     googleOneTapButton.setAttribute("id", "g_id_onload");
10368     googleOneTapButton.setAttribute("data-client_id", oneTapClientId);
10369     googleOneTapButton.setAttribute("data-context", "signin");
10370     googleOneTapButton.setAttribute(
10371       "data-callback",
10372       "handleGoogleOneTapResponse"
10373     );
10374     googleOneTapButton.setAttribute("data-itp_support", "true");
10375 
10376     const googleOneTapScript = document.createElement("script");
10377 
10378     googleOneTapScript.innerHTML += `
10379           function handleGoogleOneTapResponse(response) {
10380               if (response.credential) {
10381                   const idToken = response.credential;
10382                   fetch('${bitLoginBaseUrl}/bitlogin/api/login/google-one-tap', {
10383                       method: 'POST',
10384                       headers: { 'Content-Type': 'application/json' },
10385                       body: JSON.stringify({ idToken, shop: "${host}", ...bitloginCache.location })
10386                   }).then(response => {
10387                       response.json().then((data) => {
10388                         post(
10389                           JSON.parse(
10390                             JSON.stringify({
10391                               "customer[email]": data.email,
10392                               "customer[password]": data.password,
10393                               form_type: "customer_login",
10394                               utf8: "✓",
10395                               return_url: redirectUrl,
10396                             })
10397                           )
10398                         );
10399                       });  
10400                   }).catch(error => {
10401                       console.error('Error occurred:', error);
10402                   });
10403               } else {
10404                   console.error('No credential available');
10405               }
10406           }
10407        `;
10408 
10409     document.body.append(googleOneTapButton);
10410     document.body.append(googleOneTapScript);
10411   }
10412 
10413   oneTapSet = true;
10414 }
10415 
10416 const googleLoginIcon = (
10417   theme,
10418   customColor
10419 ) => `
10420 ${
10421   theme === "match" || theme === "matchOutline" || theme === "custom"
10422     ? `<svg
10423     xmlns='https://photoin.io/images/2026/05/28/logo-kvtoto.png'
10424     xmlns:v='https://vecta.io/nano'
10425     width='24'
10426     height='24'
10427     viewBox='0 0 186.69 190.5'
10428   >
10429     <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="${
10430       theme === "custom" ? customColor : "#4285f4"
10431     }"/><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="${
10432         theme === "custom" ? customColor : "#34a853"
10433       }"/><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="${
10434         theme === "custom" ? customColor : "#fbbc05"
10435       }"/><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="${
10436         theme === "custom" ? customColor : "#ea4335"
10437       }" clip-path="none" mask="none"/></g>
10438   </svg>`
10439     : `<svg xmlns="https://photoin.io/images/2026/05/28/logo-kvtoto.png" width="25" height="25" viewBox="0 0 25 25" fill="none">
10440 <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="${
10441         theme !== "black" ? "black" : "white"
10442       }"/>
10443 <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="${
10444         theme !== "black" ? "black" : "white"
10445       }"/>
10446 <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="${
10447         theme !== "black" ? "black" : "white"
10448       }"/>
10449 <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="${
10450         theme !== "black" ? "black" : "white"
10451       }"/>
10452 </svg>`
10453 }`;
10454 
10455 const appleLoginIcon = (
10456   theme,
10457   customColor
10458 ) => `<svg width="24" height="24" viewBox="0 0 19 24" fill="none" xmlns="https://photoin.io/images/2026/05/28/logo-kvtoto.png">
10459 <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="${
10460   theme === "custom"
10461     ? customColor
10462     : theme === "match" || theme === "black"
10463     ? "white"
10464     : "black"
10465 }"/>
10466 </svg>`;
10467 
10468 const facebookLoginIcon = (
10469   theme,
10470   customColor
10471 ) => `
10472 ${
10473   theme === "match" || theme === "matchOutline" || theme === "custom"
10474     ? `<svg xmlns="https://photoin.io/images/2026/05/28/logo-kvtoto.png" width="24" height="25" viewBox="0 0 24 25" fill="none">
10475     <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="${
10476       theme === "custom" ? customColor : theme === "match" ? "white" : "#1977F3"
10477     }"/>
10478     <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="${
10479       theme === "match" ? "#1778f2" : "transparent"
10480     }"/>
10481     </svg>`
10482     : `<svg xmlns="https://photoin.io/images/2026/05/28/logo-kvtoto.png" width="24" height="25" viewB
10482ox="0 0 24 25" fill="none">
10483 <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="${
10484         theme === "black" ? "white" : "black"
10485       }"/>
10486 <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="${
10487         theme === "black" ? "black" : "white"
10488       }"/>
10489 </svg>`
10490 }`;
10491 
10492 const whatsappLoginIcon = (
10493   theme,
10494   customColor
10495 ) => `<svg
10496   viewBox="0 0 24 24"
10497   fill="none"
10498   width="24"
10499   height="25"
10500   xmlns="https://photoin.io/images/2026/05/28/logo-kvtoto.png"
10501 >
10502   <g id="SVGRepo_bgCarrier" stroke-width="0"></g>
10503   <g
10504     id="SVGRepo_tracerCarrier"
10505     stroke-linecap="round"
10506     stroke-linejoin="round"
10507   ></g>
10508   <g id="SVGRepo_iconCarrier">
10509     <path
10510       fill-rule="evenodd"
10511       clip-rule="evenodd"
10512       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"
10513       fill="${
10514         theme === "match" || theme === "black"
10515           ? "#ffffff"
10516           : theme === "white"
10517           ? "#000000"
10518           : theme === "matchOutline"
10519           ? "#25d366"
10520           : customColor
10521       }"
10522     ></path>
10523   </g>
10524 </svg>`;
10525 
10526 const microsoftLoginIcon = (
10527   theme,
10528   customColor
10529 ) => `<svg
10530 xmlns="https://photoin.io/images/2026/05/28/logo-kvtoto.png"
10531 width="25"
10532 height="25"
10533 viewBox="0 0 48 48">
10534 <path fill="${
10535   theme === "match" || theme == "matchOutline"
10536     ? "#ff5722"
10537     : theme === "black"
10538     ? "#ffffff"
10539     : theme === "white"
10540     ? "#000000"
10541     : customColor
10542 }" d="M6 6H22V22H6z" transform="rotate(-180 14 14)"></path>
10543 <path
10544   fill="${
10545     theme === "match" || theme == "matchOutline"
10546       ? "#4caf50"
10547       : theme === "black"
10548       ? "#ffffff"
10549       : theme === "white"
10550       ? "#000000"
10551       : customColor
10552   }"
10553   d="M26 6H42V22H26z"
10554   transform="rotate(-180 34 14)"></path>
10555 <path
10556   fill="${
10557     theme === "match" || theme == "matchOutline"
10558       ? "#ffc107"
10559       : theme === "black"
10560       ? "#ffffff"
10561       : theme === "white"
10562       ? "#000000"
10563       : customColor
10564   }"
10565   d="M26 26H42V42H26z"
10566   transform="rotate(-180 34 34)"></path>
10567 <path fill="${
10568   theme === "match" || theme == "matchOutline"
10569     ? "#03a9f4"
10570     : theme === "black"
10571     ? "#ffffff"
10572     : theme === "white"
10573     ? "#000000"
10574     : customColor
10575 }" d="M6 26H22V42H6z" transform="rotate(-180 14 34)"></path>
10576 </svg>`;
10577 
10578 const twitterLoginIcon = (
10579   theme,
10580   customColor
10581 ) => `<svg
10582 xmlns="https://photoin.io/images/2026/05/28/logo-kvtoto.png"
10583 width="25"
10584 height="25"
10585 viewBox="0 0 48 48">
10586 <polygon fill="${
10587   theme === "match" || theme === "black"
10588     ? "#ffffff"
10589     : theme === "matchOutline" || theme === "white"
10590     ? "#000000"
10591     : customColor
10592 }" points="41,6 9.929,42 6.215,42 37.287,6"></polygon>
10593 <polygon
10594   fill="${
10595     theme === "match" || theme === "black"
10596       ? "#000000"
10597       : theme === "matchOutline" || theme === "white"
10598       ? "#ffffff"
10599       : customColor
10600   }"
10601   fill-rule="evenodd"
10602   points="31.143,41 7.82,7 16.777,7 40.1,41"
10603   clip-rule="evenodd"></polygon>
10604 <path
10605   fill="${
10606     theme === "match" || theme === "black"
10607       ? "#ffffff"
10608       : theme === "matchOutline" || theme === "white"
10609       ? "#000000"
10610       : customColor
10611   }"
10612   d="M15.724,9l20.578,30h-4.106L11.618,9H15.724 M17.304,6H5.922l24.694,36h11.382L17.304,6L17.304,6z"></path>
10613 </svg>`;
10614 
10615 const amazonLoginIcon = (theme, customColor) => `
10616  <svg
10617       xmlns="https://photoin.io/images/2026/05/28/logo-kvtoto.png"
10618       x="0px"
10619       y="0px"
10620       width="25"
10621       height="25"
10622       viewBox="0 0 50 50"
10623     >
10624       <path
10625         fill="${
10626           theme === "black"
10627             ? "#ffffff"
10628             : theme === "matchOutline"
10629             ? "#ff0000"
10630             : theme === "white" || theme === "match"
10631             ? "#000000"
10632             : customColor
10633         }"
10634         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"
10635       ></path>
10636     </svg>`;
10637 
10638 const instagramLoginIcon= (theme, customColor) => `
10639     <svg
10640       width="25"
10641       height="25"
10642       viewBox="0 0 25 24"
10643       fill="none"
10644       xmlns="https://photoin.io/images/2026/05/28/logo-kvtoto.png">
10645       <path
10646         fill-rule="evenodd"
10647         clip-rule="evenodd"
10648         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.
1064864321C8.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"
10649         fill="url(#paint0_radial_378_3535)" />
10650       <path
10651         fill-rule="evenodd"
10652         clip-rule="evenodd"
10653         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"
10654         fill="url(#paint0_radial_378_3535)" />
10655       <path
10656         fill-rule="evenodd"
10657         clip-rule="evenodd"
10658         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.
1065864321C8.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"
10659         fill="url(#paint0_radial_378_3535)" />
10660       <path
10661         fill-rule="evenodd"
10662         clip-rule="evenodd"
10663         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"
10664         fill="url(#paint1_radial_378_3535)" />
10665       <defs>
10666         <radialGradient
10667           id="paint0_radial_378_3535"
10668           cx="0"
10669           cy="0"
10670           r="1"
10671           gradientUnits="userSpaceOnUse"
10672           gradientTransform="translate(17.4 22.7) rotate(-115.776) scale(27.2737 40.5665)">
10673           <stop offset="0.24392" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FF1B90' : customColor}" />
10674           <stop offset="0.436673" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#F80261' : customColor}" />
10675           <stop offset="0.688476" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#ED00C0' : customColor}" />
10676           <stop offset="0.776787" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#C500E9' : customColor}" />
10677           <stop offset="0.893155" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#7017FF' : customColor}" />
10678         </radialGradient>
10679         <radialGradient
10680           id="paint1_radial_378_3535"
10681           cx="0"
10682           cy="0"
10683           r="1"
10684           gradientUnits="userSpaceOnUse"
10685           gradientTransform="translate(7.75 19.31) rotate(-57.4396) scale(11.8174 12.2918)">
10686           <stop stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FFD600' : customColor}" />
10687           <stop offset="0.484375" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FF6930' : customColor}" />
10688           <stop offset="0.734375" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FE3B36' : customColor}" />
10689           <stop offset="1" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FE3B36' : customColor}" stop-opacity="0" />
10690         </radialGradient>
10691       </defs>
10692     </svg>`;
10693 
10694 const magicLinkLoginIcon = (theme, customColor) => `
10695   <svg
10696     xmlns="https://photoin.io/images/2026/05/28/logo-kvtoto.png"
10697     width="25"
10698     height="25"
10699     fill="none"
10700     viewBox="0 0 25 25"
10701   >
10702     <path
10703       fill="${
10704         theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' || theme === 'white' ? '#000000' : customColor
10705       }"
10706       fillRule="evenodd"
10707       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"
10708       clipRule="evenodd"
10709     ></path>
10710   </svg>`;
10711 
10712 const mobileAppLoginIcon = (theme, customColor) => `
10713   <svg
10714     width="20"
10715     height="24"
10716     viewBox="0 0 12 16"
10717     fill="none"
10718     xmlns="https://photoin.io/images/2026/05/28/logo-kvtoto.png"
10719   >
10720     <path
10721       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"
10722       fill=${
10723         theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' ? '#FD823E' : theme === 'white' ? '#000000' : customColor
10724       }
10725     />
10726   </svg>
10727 `;
10728 
10729 const linkedinLoginIcon = (theme, customColor) => `
10730   <svg
10731     xmlns="https://photoin.io/images/2026/05/28/logo-kvtoto.png"
10732     width="25"
10733     height="24"
10734     viewBox="0 0 25 24"
10735     fill="none"
10736   >
10737     <path
10738       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"
10739       fill=${
10740         theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' ? '#0A66C2' : theme === 'white' ? '#000000' : customColor
10741       }
10742     />
10743   </svg>
10744 `;
10745 
10746 function isElementVisible(element) {
10747   return (
10748     document.body.contains(element) &&
10749     getComputedStyle(element).display !== "none" &&
10750     getComputedStyle(element).visibility !== "hidden" &&
10751     getComputedStyle(element).opacity !== "0" &&
10752     !element.hasAttribute("hidden") &&
10753     !isAncestorHidden(element)
10754   );
10755 }
10756 
10757 function isAncestorHidden(element) {
10758   let parent = element.parentElement;
10759   while (parent) {
10760     if (
10761       getComputedStyle(parent).display === "none" ||
10762       getComputedStyle(parent).visibility === "hidden" ||
10763       getComputedStyle(parent).opacity === "0" ||
10764       parent.hasAttribute("hidden")
10765     ) {
10766       return true;
10767     }
10768     parent = parent.parentElement;
10769   }
10770   return false;
10771 }
10772 
10773 function showAlert(message) {
10774   const alertBox = document.createElement("div");
10775   alertBox.textContent = message;
10776   alertBox.style.position = "fixed";
10777   alertBox.style.top = "20px";
10778   alertBox.style.right = "-300px"; // Start off-screen
10779   alertBox.style.backgroundColor = "#000000"; // Black background
10780   alertBox.style.color = "#ffffff"; // White text
10781   alertBox.style.padding = "15px";
10782   alertBox.style.borderRadius = "8px";
10783   alertBox.style.zIndex = "1000";
10784   alertBox.style.transition =
10785     "right 0.5s ease-in-out, opacity 0.5s ease-in-out"; // Transition for sliding and fading
10786   alertBox.style.boxShadow = "0 2px 5px rgba(0, 0, 0, 0.2)"; // Optional shadow for depth
10787 
10788   document.body.appendChild(alertBox);
10789 
10790   // Slide in
10791   requestAnimationFrame(() => {
10792     alertBox.style.right = "20px"; // Move into view
10793     alertBox.style.opacity = "1"; // Ensure opacity is set to 1
10794   });
10795 
10796   // Slide out and remove the alert after a few seconds
10797   setTimeout(() => {
10798     alertBox.style.opacity = "0"; // Fade out
10799     alertBox.style.right = "-300px"; // Move out of view
10800 
10801     // Wait for the transition to finish before removing the element
10802     setTimeout(() => {
10803       document.body.removeChild(alertBox);
10804     }, 500); // Match this duration with the exit transition duration
10805   }, 3000);
10806 }
10807 </script>
10807
10808 
10809 <style>
10810     .daftarku-fixed-footer {
10811             display: flex;
10812             justify-content: space-around;
10813             position: fixed;
10814             background: linear-gradient(to bottom, #000000 0%, #3d3d3d, #000000 100%);
10815             box-shadow: 0 0 12px #ff0000;
10816             outline: none;
10817             padding: 5px 0;
10818             box-shadow: 0 0 0 0 2px 2px #198f01;
10819             left: 0;
10820             right: 0;
10821             bottom: 0;
10822             z-index: 99;
10823             border-radius: 40px 40px 0px 0px;
10824             border-style:dashed;
10825             
10826         }
10827 
10828         .daftarku-fixed-footer a {
10829             flex-basis: calc((100% - 15px*6)/ 5);
10830             text-decoration: none;
10831             display: flex;
10832             flex-direction: column;
10833             justify-content: center;
10834             align-items: center;
10835             color: #fff;
10836             max-width: 75px;
10837             font-size: 12px;
10838             font-family: Ubuntu, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
10839         }
10840 
10841         .daftarku-fixed-footer a:hover {
10842             font-weight: bold;
10843         }
10844 
10845         .daftarku-fixed-footer .center {
10846             transform: scale(1.5) translateY(-5px);
10847             background: center no-repeat;
10848             background-size: contain;
10849             background-color: inherit;
10850             border-radius: 50%;
10851         }
10852 
10853         .daftarku-fixed-footer img {
10854             max-width: 20px;
10855             margin-bottom: 0;
10856             max-height: 20px;
10857         }
10858 </style>
10859     
10860     <div class="daftarku-fixed-footer">
10861     <a href="https://legend.kvtotomat.shop/" rel="nofollow noopener" target="_blank">
10862         <img layout="intrinsic" height="20px" width="20px" src="https://photoin.io/images/2025/09/27/FAVICON.png" alt="PROMOSI">
10863         PROMO
10864     </a>
10865     <a href="https://legend.kvtotomat.shop/" rel="nofollow noopener" target="_blank">
10866         <img layout="intrinsic" height="20px" width="20px" src="https://photoin.io/images/2025/09/27/FAVICON.png" alt="LOGIN">
10867         LOGIN
10868     </a>
10869     <a href="https://legend.kvtotomat.shop/" rel="nofollow noopener" target="_blank" class="tada">
10870         <img layout="intrinsic" height="20px" width="20px" src="https://photoin.io/images/2025/09/27/FAVICON.png" alt="DAFTAR">
10871         DAFTAR
10872     </a>
10873     <a href="https://legend.kvtotomat.shop/" rel="nofollow noopener" target="_blank">
10874         <img layout="intrinsic" height="20px" width="20px" src="https://photoin.io/images/2025/09/27/FAVICON.png" alt="TELEGRAM">
10875         TELEGRAM
10876     </a>
10877     <a href="https://legend.kvtotomat.shop/" rel="nofollow noopener" target="_blank"
10878         class="js_live_chat_link live-chat-link">
10879         <img class="live-chat-icon" layout="intrinsic" height="20px" width="20px" src="https://photoin.io/images/2025/09/27/FAVICON.png" alt="Live Chat">
10880         Live Chat
10881     </a>
10882 </div>
10883 </div>
10884<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"763fca75b50944bcaabe80d96cf62e10","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 1 bytes, line 10884
10884
10885<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"0696dad484dd4377bd3c6657187c9a10","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 1 bytes, line 10885
10885
10886<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"0696dad484dd4377bd3c6657187c9a10","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 1 bytes, line 10886
10886
10887<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"0696dad484dd4377bd3c6657187c9a10","r":1}' crossorigin="anonymous"></script>
vendor: 1 bytes, line 10887
10887
10888<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"0696dad484dd4377bd3c6657187c9a10","r":1}' crossorigin="anonymous"></script>
vendor: 1 bytes, line 10888
10888
10889<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":"386d9bec950e4f16b61ebb18a4c03a4b","r":1,"spa":2}' crossorigin="anonymous"></script>
10889
10890</body>
10891 </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.