PageSourceSearch

https://koitigan.com/

html koitigan.com collected 2026-10-10 02:35:01 UTC 686,905 bytes, 12,012 lines download raw bytes

1<!doctype html>
2   <html class="no-js">
3     <head>
4     <meta charset="utf-8">
5     <meta name="pinterest" content="nopin"/>
6     <meta name="pinterest" content="nosearch">
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     <meta name="pinterest" content="nopin"/>
11     <meta name="robots" content="index, follow">
12     <link rel="icon" type="image/x-icon" href="https://imagekoi.io/images/2025/03/07/favicon-koi-2025.png">
13     <title>KOITOTO :  21 Cara Akses Bandar Togel Online Resmi Tanpa Jalur Belakang</title>
14     <meta name="description" content="KOITOTO menghadirkan 21 cara akses bandar togel online resmi tanpa jalur belakang. Prosesnya aman, mudah, dan terpercaya. Manfaatnya akses lebih lancar, data akurat, serta pengalaman bermain yang nyaman dan profesional setiap saat.">
15     <link rel="canonical" href="https://koitigan.com/">
16     <link rel="alternate" href="https://amp.koitoto-tigan.com/"> 
17     <link rel="alternate" href="https://amp.koitoto-tigan.com/" hreflang="id">
18     <link rel="alternate" href="https://amp.koitoto-tigan.com/" hreflang="en">
19     <link rel="alternate" href="https://amp.koitoto-tigan.com/" hreflang="en">
20     <link rel="alternate" href="https://amp.koitoto-tigan.com/" hreflang="x-default">
21     <link rel="alternate" hreflang="id-ID" href="https://amp.koitoto-tigan.com/" />
22     <link rel="alternate" hreflang="en-US" href="https://amp.koitoto-tigan.com/" />
23     <link rel="alternate" hreflang="en-SG" href="https://amp.koitoto-tigan.com/" />
24     <link rel="amphtml" href="https://amp.koitoto-tigan.com/"/>
25     <meta property="og:type" content="KOITOTO">
26     <meta property="og:title" content="KOITOTO :  21 Cara Akses Bandar Togel Online Resmi Tanpa Jalur Belakang">
27     <meta property="og:image" content="https://imgmahasuhu.io/images/2026/08/21/21-cara-akses.jpeg">
28     <meta property="og:image:secure_url" content="https://imgmahasuhu.io/images/2026/08/21/21-cara-akses.jpeg">
29     <meta property="og:image" content="https://imgmahasuhu.io/images/2026/08/21/21-cara-akses.jpeg">
30     <meta property="og:image:secure_url" content="https://imgmahasuhu.io/images/2026/08/21/21-cara-akses.jpeg">
31     <meta property="og:image" content="https://imgmahasuhu.io/images/2026/08/21/21-cara-akses.jpeg">
32     <meta property="og:image:secure_url" content="https://imgmahasuhu.io/images/2026/08/21/21-cara-akses.jpeg">
33     <meta property="og:description" content="KOITOTO menghadirkan 21 cara akses bandar togel online resmi tanpa jalur belakang. Prosesnya aman, mudah, dan terpercaya. Manfaatnya akses lebih lancar, data akurat, serta pengalaman bermain yang nyaman dan profesional setiap saat.">
34     <meta name="google-site-verification" content="5QsPyxOIxjmdk6WiPCF_cnChe_St6wzkUl6H3RdNb5o" />
35     <meta property="og:price:amount" content="10,000-,">
36     <meta property="og:price:currency" content="IDR">
37     <meta property="og:url" content="https://koitigan.com/">
38     <meta property="og:site_name" content="KOITOTO">
39     <meta name="twitter:site" content="@KOITOTO">
40     <meta name="twitter:card" content="summary">
41     <meta name="twitter:title" content="KOITOTO :  21 Cara Akses Bandar Togel Online Resmi Tanpa Jalur Belakang">
42     <meta name="twitter:description" content="KOITOTO menghadirkan 21 cara akses bandar togel online resmi tanpa jalur belakang. Prosesnya aman, mudah, dan terpercaya. Manfaatnya akses lebih lancar, data akurat, serta pengalaman bermain yang nyaman dan profesional setiap saat.">
43     <meta name="twitter:image" content="https://imgmahasuhu.io/images/2026/08/21/21-cara-akses.jpeg">
44     <meta name="twitter:image:width" content="600">
45     <meta name="twitter:image:height" content="600">
46     <link rel="shortcut icon" href="https://imagekoi.io/images/2025/03/07/favicon-koi-2025.png" type="image/png">
47     <meta name="theme-color" content="#ffffff">
48     <link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700&family=Poppins&display=swap" rel="stylesheet">
49     <link href="//outerbloom.com/cdn/shop/t/138/assets/custom-styles.css?v=94643080714485117621752652418" rel="stylesheet" type="text/css" media="all" />
50     <link rel="stylesheet" href="//outerbloom.com/cdn/shop/t/138/assets/wishlist-styles.css?v=166819525406734116961754385201">
50<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.4/jquery.min.js" defer></script>
50
51
52     
52<script src="https://cdnjs.cloudflare.com/ajax/libs/qrcodejs/1.0.0/qrcode.min.js" async="async"></script>
52
53     
53<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/select2.min.js" defer></script>
53
54     
55     <div class="button-login-daftar">
56                     <a class="login" href="//mikale.me/login-koi" rel="nofollow noreferrer" style="color: #111111;">
57                         LOGIN
58                     </a>
59                     <a class="register"
60                     href="//mikale.me/seotegerta77"
61                     rel="nofollow noreferrer"
62                     style="
63                         color:#111111;
64                         text-shadow:
65                             0 1px 0 #555,
66                             0 2px 3px rgba(0,0,0,.8),
67                             0 0 8px rgba(255,255,255,.35);
68                     ">
69                      DAFTAR
70                     </a>
71                 </div>
72   
73     
73<script src="//cdnjs.cloudflare.com/ajax/libs/vissense/0.9.0/vissense.js" defer></script>
73
74   
75     <!-- Bing UET -->
76     
76<script>
77       (function(w,d,t,r,u)
78       {
79           var f,n,i;
80           w[u]=w[u]||[],f=function()
81           {
82               var o={ti:"343051754", tm:"shpfy_ui", enableAutoSpaTracking: true};
83               o.q=w[u],w[u]=new UET(o),w[u].push("pageLoad")
84           },
85           n=d.createElement(t),n.src=r,n.async=1,n.onload=n.onreadystatechange=function()
86           {
87               var s=this.readyState;
88               s&&s!=="loaded"&&s!=="complete"||(f(),n.onload=n.onreadystatechange=null)
89           },
90           i=d.getElementsByTagName(t)[0],i.parentNode.insertBefore(n,i)
91       })
92       (window,document,"script","//bat.bing.com/bat.js","uetq");
93     </script>
93
94     
94<script>
95       window.uetq = window.uetq || [];
96       window.uetq.push('event', '', {"revenue_value":0,"currency":"IDR"});
97     </script>
97
98     <!-- End Bing UET -->
99   
100     <!-- Microsoft Clarity -->
101     
101<script type="text/javascript">
102       (function(c,l,a,r,i,t,y){
103           c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};
104           t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i;
105           y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y);
106       })(window, document, "clarity", "script", "h7rbxqry9k");
107     </script>
107
108     <!-- End Microsoft Clarity -->
109 
110 
111 <link href="//outerbloom.com/cdn/shop/t/138/assets/combine.min.css?v=111340648424012527321754385205" rel="stylesheet" type="text/css" media="all" />
112 
113 <link href="//outerbloom.com/cdn/shop/t/138/assets/font-awesome.css?v=132324219581463622051752652421" rel="stylesheet" type="text/css" media="all" />
114 <link rel="stylesheet" href="//code.jquery.com/ui/1.13.0/themes/base/jquery-ui.min.css">
115 
116 
116<script src="//code.jquery.com/jquery-1.12.4.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" crossorigin="anonymous"></script>
116
117 
117<script src="//outerbloom.com/cdn/shop/t/138/assets/combine.js?v=140218079523075729301752652421" type="text/javascript"></script>
117
118 
118<script src="//code.jquery.com/ui/1.13.0/jquery-ui.min.js"></script>
118
119     
119<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
119
120 <meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/15896833/digital_wallets/dialog">
121 <link rel="alternate" type="application/json+oembed" href="https://koitigan.com/.oembed">
122 
122<script async="async" src="/checkouts/internal/preloads.js?locale=en-ID"></script>
122
123 
123<script id="shopify-features" type="application/json">{"accessToken":"d2e176e59f6658d5056234d6249b3ab4","betas":["rich-media-storefront-analytics"],"domain":"outerbloom.com","predictiveSearch":true,"shopId":15896833,"locale":"en"}</script>
123
124 
124<script>var Shopify = Shopify || {};
125 Shopify.shop = "outerbloom1.myshopify.com";
126 Shopify.locale = "en";
127 Shopify.currency = {"active":"IDR","rate":"1.0"};
128 Shopify.country = "ID";
129 Shopify.theme = {"name":"web-outerbloom-shopify\/main","id":153139282135,"schema_name":null,"schema_version":null,"theme_store_id":null,"role":"main"};
130 Shopify.theme.handle = "null";
131 Shopify.theme.style = {"id":null,"handle":null};
132 Shopify.cdnHost = "outerbloom.com/cdn";
133 Shopify.routes = Shopify.routes || {};
134 Shopify.routes.root = "/";</script>
134
135 
135<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
135
136 
136<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>
136
137 
137<script id="shop-js-analytics" type="application/json">{"pageType":"product"}</script>
137
138 
138<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});
139 "></script>
139
140 
140<script>(function() {
141   var isLoaded = false;
142   function asyncLoad() {
143     if (isLoaded) return;
144     isLoaded = true;
145     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"];
146     for (var i = 0; i < urls.length; i++) {
147       var s = document.createElement('script');
148       s.type = 'text/javascript';
149       s.async = true;
150       s.src = urls[i];
151       var x = document.getElementsByTagName('script')[0];
152       x.parentNode.insertBefore(s, x);
153     }
154   };
155   if(window.attachEvent) {
156     window.attachEvent('onload', asyncLoad);
157   } else {
158     window.addEventListener('load', asyncLoad, false);
159   }
160 })();</script>
160
161 
161<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":8359546319899};</script>
161
162 
162<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
162
163 
163<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>
163
164 
164<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>
164
165 
165<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)}};
166 </script>
166
167 
167<script data-source-attribution="shopify.dynamic_checkout.buyer_consent">
168   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);
169 </script>
169
170 
170<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})}}));
171 </script>
171
172 
173 
173<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
173
174     <!-- /snippets/oldIE-js.liquid -->
175 
176 
177 <!--[if lt IE 9]>
178 
178<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js" type="text/javascript"></script>
178
179 
179<script src="//outerbloom.com/cdn/shop/t/138/assets/respond.min.js?v=52248677837542619231752652418" type="text/javascript"></script>
179
180 <link href="//outerbloom.com/cdn/shop/t/138/assets/respond-proxy.html" id="respond-proxy" rel="respond-proxy" />
181 <link href="//outerbloom.com/search?q=142e9156869335090161dced0ac98b64" id="respond-redirect" rel="respond-redirect" />
182 
182<script src="//outerbloom.com/search?q=142e9156869335090161dced0ac98b64" type="text/javascript"></script>
182
183 <![endif]-->
184 
185 
186 
187   
188     
189   <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">
190 <link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
191 
191<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>
191
192 
192<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":"KOITOTO :  21 Cara Akses Bandar Togel Online Resmi Tanpa Jalur Belakang","vendor":"Outerbloom Florist","id":"8359546319899","untranslatedTitle":"KOITOTO :  21 Cara Akses Bandar Togel Online Resmi Tanpa Jalur Belakang","url":"\/products\/blossom-shine","type":"KOITOTO menghadirkan 21 cara akses bandar togel online resmi tanpa jalur belakang. Prosesnya aman, mudah, dan terpercaya. Manfaatnya akses lebih lancar, data akurat, serta pengalaman bermain yang nyaman dan profesional setiap saat."},"id":"44083045826775","image":{"src":"\/\/outerbloom.com\/cdn\/shop\/files\/Blossom-Shine-WM.jpg?v=1695788426"},"sku":"GOJSTRU2598","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\":\"KOITOTO :  21 Cara Akses Bandar Togel Online Resmi Tanpa Jalur Belakang\",\"vendor\":\"Outerbloom Florist\",\"id\":\"8359546319899\",\"untranslatedTitle\":\"KOITOTO :  21 Cara Akses Bandar Togel Online Resmi Tanpa Jalur Belakang\",\"url\":\"\/products\/blossom-shine\",\"type\":\"KOITOTO menghadirkan 21 cara akses bandar togel online resmi tanpa jalur belakang. Prosesnya aman, mudah, dan terpercaya. Manfaatnya akses lebih lancar, data akurat, serta pengalaman bermain yang nyaman dan profesional setiap saat.\"},\"id\":\"44083045826775\",\"image\":{\"src\":\"\/\/outerbloom.com\/cdn\/shop\/files\/Blossom-Shine-WM.jpg?v=1695788426\"},\"sku\":\"GOJSTRU2598\",\"title\":\"Default Title\",\"untranslatedTitle\":\"Default Title\"}}]]"});</script>
192<script>
193   window.ShopifyAnalytics = window.ShopifyAnalytics || {};
194   window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {};
195   window.ShopifyAnalytics.meta.currency = 'IDR';
196   var meta = {"product":{"id":8359546319899,"gid":"gid:\/\/shopify\/Product\/8359546319899","vendor":"Outerbloom Florist","type":"KOITOTO menghadirkan 21 cara akses bandar togel online resmi tanpa jalur belakang. Prosesnya aman, mudah, dan terpercaya. Manfaatnya akses lebih lancar, data akurat, serta pengalaman bermain yang nyaman dan profesional setiap saat.","variants":[{"id":44083045826775,"price":1000000
197   ,"name":"KOITOTO :  21 Cara Akses Bandar Togel Online Resmi Tanpa Jalur Belakang","public_title":null,"sku":"GOJSTRU2598"}],"remote":false},"page":{"pageType":"product","resourceType":"product","resourceId":8359546319899}};
198   for (var attr in meta) {
199     window.ShopifyAnalytics.meta[attr] = meta[attr];
200   }
201 </script>
201
202 
202<script class="analytics">
203   (function () {
204     var customDocumentWrite = function(content) {
205       var jquery = null;
206 
207       if (window.jQuery) {
208         jquery = window.jQuery;
209       } else if (window.Checkout && window.Checkout.$) {
210         jquery = window.Checkout.$;
211       }
212 
213       if (jquery) {
214         jquery('body').append(content);
215       }
216     };
217 
218     var hasLoggedConversion = function(token) {
219       if (token) {
220         return document.cookie.indexOf('loggedConversion=' + token) !== -1;
221       }
222       return false;
223     }
224 
225     var setCookieIfConversion = function(token) {
226       if (token) {
227         var twoMonthsFromNow = new Date(Date.now());
228         twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2);
229 
230         document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow;
231       }
232     }
233 
234     var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || [];
235     if (trekkie.integrations) {
236       return;
237     }
238     trekkie.methods = [
239       'identify',
240       'page',
241       'ready',
242       'track',
243       'trackForm',
244       'trackLink'
245     ];
246     trekkie.factory = function(method) {
247       return function() {
248         var args = Array.prototype.slice.call(arguments);
249         args.unshift(method);
250         trekkie.push(args);
251         return trekkie;
252       };
253     };
254     for (var i = 0; i < trekkie.methods.length; i++) {
255       var key = trekkie.methods[i];
256       trekkie[key] = trekkie.factory(key);
257     }
258     trekkie.load = function(config) {
259       trekkie.config = config || {};
260       trekkie.config.initialDocumentCookie = document.cookie;
261       var first = document.getElementsByTagName('script')[0];
262       var script = document.createElement('script');
263       script.type = 'text/javascript';
264       script.onerror = function(e) {
265         var scriptFallback = document.createElement('script');
266         scriptFallback.type = 'text/javascript';
267         scriptFallback.onerror = function(error) {
268                 var Monorail = {
269       produce: function produce(monorailDomain, schemaId, payload) {
270         var currentMs = new Date().getTime();
271         var event = {
272           schema_id: schemaId,
273           payload: payload,
274           metadata: {
275             event_created_at_ms: currentMs,
276             event_sent_at_ms: currentMs
277           }
278         };
279         return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event));
280       },
281       sendRequest: function sendRequest(endpointUrl, payload) {
282         // Try the sendBeacon API
283         if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) {
284           var blobData = new window.Blob([payload], {
285             type: 'text/plain'
286           });
287 
288           if (window.navigator.sendBeacon(endpointUrl, blobData)) {
289             return true;
290           } // sendBeacon was not successful
291 
292         } // XHR beacon
293 
294         var xhr = new XMLHttpRequest();
295 
296         try {
297           xhr.open('POST', endpointUrl);
298           xhr.setRequestHeader('Content-Type', 'text/plain');
299           xhr.send(payload);
300         } catch (e) {
301           console.log(e);
302         }
303 
304         return false;
305       },
306       isIos12: function isIos12() {
307         return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1;
308       }
309     };
310     Monorail.produce('monorail-edge.shopifysvc.com',
311       'trekkie_storefront_load_errors/1.1',
312       {shop_id: 15896833,
313       theme_id: 153139282135,
314       app_name: "storefront",
315       context_url: window.location.href,
316       source_url: "//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js"});
317 
318         };
319         scriptFallback.async = true;
320         scriptFallback.src = '//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js';
321         first.parentNode.insertBefore(scriptFallback, first);
322       };
323       script.async = true;
324       script.src = '//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js';
325       first.parentNode.insertBefore(script, first);
326     };
327     trekkie.load(
328       {"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}}
329     );
330 
331     var loaded = false;
332     trekkie.ready(function() {
333       if (loaded) return;
334       loaded = true;
335 
336       window.ShopifyAnalytics.lib = window.trekkie;
337 
338       var originalDocumentWrite = document.write;
339       document.write = customDocumentWrite;
340       try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {};
341       document.write = originalDocumentWrite;
342 
343       window.ShopifyAnalytics.lib.page(null,{"pageType":"product","resourceType":"product","resourceId":8359546319899,"shopifyEmitted":true});
344 
345       var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/)
346       var token = match? match[1]: undefined;
347       if (!hasLoggedConversion(token)) {
348         setCookieIfConversion(token);
349         window.ShopifyAnalytics.lib.track("Viewed Product",{"currency":"IDR","variantId":44083045826775,"productId":8359546319899,"productGid":"gid:\/\/shopify\/Product\/8359546319899","name":"KOITOTO :  21 Cara Akses Bandar Togel Online Resmi Tanpa Jalur Belakang","price":"835000.00","sku":"GOJSTRU2598","brand":"Outerbloom Florist","variant":null,"category":"KOITOTO menghadirkan 21 cara akses bandar togel online resmi tanpa jalur belakang. Prosesnya aman, mudah, dan terpercaya. Manfaatnya akses lebih lancar, data akurat, serta pengalaman bermain yang nyaman dan profesional setiap saat.","nonInteraction":true,"remote":false},undefined,undefined,{"shopifyEmitted":true});
350       window.ShopifyAnalytics.lib.track("monorail:\/\/trekkie_storefront_viewed_product\/1.1",{"currency":"IDR","variantId":44083045826775,"productId":8359546319899,"productGid":"gid:\/\/shopify\/Product\/8359546319899","name":"KOITOTO :  21 Cara Akses Bandar Togel Online Resmi Tanpa Jalur Belakang","price":"835000.00","sku":"GOJSTRU2598","brand":"Outerbloom Florist","variant":null,"category":"KOITOTO menghadirkan 21 cara akses bandar togel online resmi tanpa jalur belakang. Prosesnya aman, mudah, dan terpercaya. Manfaatnya akses lebih lancar, data akurat, serta pengalaman bermain yang nyaman dan profesional setiap saat.","nonInteraction":true,"remote":false,"referer":"https:\/\/outerbloom.com\/products\/blossom-shine"});
351       }
352     });
353 
354 
355         var eventsListenerScript = document.createElement('script');
356         eventsListenerScript.async = true;
357         eventsListenerScript.src = "//outerbloom.com/cdn/shopifycloud/storefront/assets/shop_events_listener-abeef7a0.js";
358         document.getElementsByTagName('head')[0].appendChild(eventsListenerScript);
359 
360 })();</script>
360
361   
361<script>
362   if (!window.ga || (window.ga && typeof window.ga !== 'function')) {
363     window.ga = function ga() {
364       (window.ga.q = window.ga.q || []).push(arguments);
365       if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') {
366         window.Shopify.analytics.publish("ga_stub_called", {}, {sendTo: "google_osp_migration"});
367       }
368       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.");
369     };
370     if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') {
371       window.Shopify.analytics.publish("ga_stub_initialized", {}, {sendTo: "google_osp_migration"});
372     }
373   }
374 </script>
374
375 
375<script
376   defer
377   src="https://outerbloom.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-2.0.13.min.js"
378   data-application="storefront-renderer"
379   data-shop-id="15896833"
380   data-render-region="gcp-asia-southeast1"
381   data-page-type="product"
382   data-theme-instance-id="153139282135"
383   data-theme-name=""
384   data-theme-version=""
385   data-monorail-region="shop_domain"
386   data-resource-timing-sampling-rate="10"
387   data-shs="true"
388   data-shs-beacon="true"
389   data-shs-export-with-fetch="true"
390   data-shs-logs-sample-rate="1"
391 ></script>
391
392 </head><body
393     data-template="product"
394     id="blossom-shine"
395     class="template-product template-product"
396   >
397     <!-- Google Tag Manager (noscript) -->
vendor: 90 bytes, lines 397-400
397
398     <noscript
399       ><iframe
400         src="https://www.googletagmanager.com/ns.html?id=
400GTM-MF9VVZX
vendor: 129 bytes, lines 400-406
400"
401         height="0"
402         width="0"
403         style="display:none;visibility:hidden"
404       ></iframe
405     ></noscript>
406     
406<!-- End Google Tag Manager (noscript) -->
407 
408     
409 
410     <div class="header-wrapper">
411       
412       <div id="shopify-section-NotifBar" class="shopify-section m-0">
413 
414 <style>
415   #notification {z-index: 99;width: 100%;transition: top 0.2s ease-in-out;}
416   #notification.promo-up {top: -48px!important;}
417   .promo-bg {width: 100%;padding: 6px 0;background-color: #242424;}
418   .notification__message p {margin: 0;color: #000000;font-size: 14px!important;}
419   .notification__message p a {text-decoration: underline;color: #ffffff;}
420   @media (max-width: 991px){
421     .notification__message p {font-size: 14px!important;}
422   }
423 </style>
424 <input id="clearCookie" class="hide" type="button" value="Delete Cookie" />
425 <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">
426   <div class="page-width notification__inner ">
427     
428     
429     <div class="notification__message text-center">
430       <p><a href="https://koitigan.com/" title="KOITOTO">KOITOTO :  21 Cara Akses Bandar Togel Online Resmi Tanpa Jalur Belakang</a></p>
431     </div>
432   </div>
433 </div>
434 
435 
436 
437 
438 </div>
439       <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"/>
440 
441 
442 <header style="background-image: url(https://imgmahasuhu.io/images/2026/08/21/21-cara-akses.jpeg); background-attachment: fixed;">
443   <div class="container">
444     <div class="header-container row justify-content-between pl-lg-0 pr-lg-0">
445         <a href="https://koitigan.com/">
446         <img src="https://imgmahasuhu.io/images/2026/08/11/giflogo_koi1.gif" alt="LOGO SITUS KOITOTO" style="width: 190px;"></a>
447       <link href="https://imagekoi.io/images/2025/03/07/favicon-koi-2025.png" rel="shortcut icon" type="image/x-icon" />
448         <div id="menu-hamburger" class="d-lg-none">
449           <svg xmlns="https://imgmahasuhu.io/images/2026/08/11/giflogo_koi1.gif" width="16" height="10" viewBox="0 0 16 10" fill="none">
450   <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"/>
451 </svg>
452 
453         <a href="/"><svg xmlns="https://imgmahasuhu.io/images/2026/08/11/giflogo_koi1.gif" viewBox="0 0 854 78.29">
454   <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>
455 </svg>
456 </a>
457       </div>
458 
459       <div class="header-icon-right header-icons col-3">
460         <div class="icon icon-account-header d-none d-lg-block">
461           <a href="https://koitigan.com/">
462             <svg xmlns="https://imgmahasuhu.io/images/2026/08/11/giflogo_koi1.gif" width="20" height="21" viewBox="0 0 20 21" fill="none">
463   <path d="M19.015 19.8549C18.4842 18.3662 17.3117 17.0514 15.6819 16.1134C14.052 15.1754 12.0547 14.6667 5.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"/>
464   <path d="M5.0002 10C12.5775 10 14.6668 7.91068 14.6668 5.33335C14.6668 2.75602 12.5775 0.666687 5.0002 0.666687C7.42283 0.666687 5.3335 2.75602 5.3335 5.33335C5.3335 7.91068 7.42283 10 5.0002 10Z" stroke="#ffffff" stroke-linecap="round"/>
465 </svg>
466 
467           </a>
468         </div>
469         <div class="icon icon-wishlist-header">
470           <a href="https://koitigan.com/">
471             <svg xmlns="https://imgmahasuhu.io/images/2026/08/11/giflogo_koi1.gif" width="24" height="21" viewBox="0 0 24 21" fill="none">
472   <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.
47211233C11.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"/>
473 </svg>
474 
475             <span class="wishlist-count d-none">0</span>
476           </a>
477         </div>
478         <div class="icon icon-cart-header">
479           <a href="https://koitigan.com/">
480             <svg xmlns="https://imgmahasuhu.io/images/2026/08/11/giflogo_koi1.gif" width="22" height="21" viewBox="0 0 22 21" fill="none">
481   <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"/>
482   <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"/>
483 </svg>
484 
485           </a>
486         </div>
487       </div>
488     </div>
489   </div>
490 </header>
491 
492 <nav class="nav-header" style="background: linear-gradient(to bottom, #9e0d0d 0%, #e60002 70%, #e60002 100%);">
493   <div class="nav-account-mobile row m-0 d-lg-none">
494     <div class="col-6 welcome-cust p-0">
495       
496         <h1 class="logo">
497     <a href="https://koitigan.com/">
498         <img src="https://imgmahasuhu.io/images/2026/08/11/giflogo_koi1.gif" alt="KOITOTO" style="max-height:60px;">
499     </a>
500 </h1>
501 
502       
503     </div>
504     
505       <div class="col-6 login-register text-right p-0">
506         <a href="https://amp.koitoto-tigan.com/">Log In</a> | <a href="https://amp.koitoto-tigan.com/">Sign Up</a>
507       </div>
508   </div>
509   <ul class="nav-menu container">
510     
511      <style>
512/* =========================================
513   RUNNING TEXT MERAH HITAM
514========================================= */
515
516.red-running-bar {
517  width: 100%;
518  overflow: hidden;
519  background: #050505;
520  border-top: 2px solid #ff0000;
521  border-bottom: 2px solid #ff0000;
522  box-shadow: 0 0 12px rgba(255, 0, 0, 0.35);
523  box-sizing: border-box;
524}
525
526.red-running-track {
527  display: flex;
528  align-items: center;
529  width: max-content;
530  white-space: nowrap;
531
532  animation: redRunning 22s linear infinite;
533}
534
535.red-running-group {
536  display: flex;
537  align-items: center;
538  flex-shrink: 0;
539}
540
541.red-running-item {
542  display: inline-block;
543  padding: 13px 20px;
544
545  color: #ff2020 !important;
546  font-size: 14px;
547  font-weight: 800;
548  text-decoration: none !important;
549
550  white-space: nowrap;
551
552  text-shadow:
553    0 0 5px rgba(255, 0, 0, 0.7),
554    0 0 10px rgba(255, 0, 0, 0.4);
555}
556
557/* Pemisah merah terang */
558.red-running-item::after {
559  content: "◆";
560  margin-left: 20px;
561  color: #ffffff;
562  font-size: 8px;
563  text-shadow: none;
564}
565
566/* Animasi kanan ke kiri */
567@keyframes redRunning {
568  0% {
569    transform: translateX(0);
570  }
571
572  100% {
573    transform: translateX(-50%);
574  }
575}
576
577/* Pause saat diarahkan mouse */
578.red-running-bar:hover .red-running-track {
579  animation-play-state: paused;
580}
581
582/* =========================================
583   MOBILE
584========================================= */
585
586@media (max-width: 600px) {
587
588  .red-running-track {
589    animation-duration: 18s;
590  }
591
592  .red-running-item {
593    padding: 11px 15px;
594    font-size: 12px;
595  }
596
597  .red-running-item::after {
598    margin-left: 15px;
599  }
600}
601</style>
602
603
604<!-- =========================================
605     RUNNING TEXT
606========================================= -->
607
608<div class="red-running-bar">
609
610  <div class="red-running-track">
611
612    <!-- GROUP 1 -->
613    <div class="red-running-group">
614
615      <a class="red-running-item" href="https://koitigan.com/">
616        KOITOTO
617      </a>
618
619      <a class="red-running-item" href="https://koitigan.com/">
620        KOI TOTO
621      </a>
622
623      <a class="red-running-item" href="https://koitigan.com/">
624        BANDAR TOGEL
625      </a>
626
627      <a class="red-running-item" href="https://koitigan.com/">
628        TOGEL ONLINE
629      </a>
630
631      <a class="red-running-item" href="https://koitigan.com/">
632        TOGEL RESMI
633      </a>
634
635      <a class="red-running-item" href="https://koitigan.com/">
636        KOITOTO DAFTAR
637      </a>
638
639      <a class="red-running-item" href="https://koitigan.com/">
640        KOITOTO LOGIN
641      </a>
642
643      <a class="red-running-item" href="https://koitigan.com/">
644        KOITOTO TOGEL
645      </a>
646
647      <a class="red-running-item" href="https://koitigan.com/">
648        BANDAR TOGEL ONLINE
649      </a>
650
651    </div>
652
653
654    <!-- GROUP 2 UNTUK LOOP -->
655    <div class="red-running-group">
656
657      <a class="red-running-item" href="https://koitigan.com/">
658        KOITOTO
659      </a>
660
661      <a class="red-running-item" href="https://koitigan.com/">
662        KOI TOTO
663      </a>
664
665      <a class="red-running-item" href="https://koitigan.com/">
666        BANDAR TOGEL
667      </a>
668
669      <a class="red-running-item" href="https://koitigan.com/">
670        TOGEL ONLINE
671      </a>
672
673      <a class="red-running-item" href="https://koitigan.com/">
674        TOGEL RESMI
675      </a>
676
677      <a class="red-running-item" href="https://koitigan.com/">
678        KOITOTO DAFTAR
679      </a>
680
681      <a class="red-running-item" href="https://koitigan.com/">
682        KOITOTO LOGIN
683      </a>
684
685      <a class="red-running-item" href="https://koitigan.com/">
686        KOITOTO TOGEL
687      </a>
688
689      <a class="red-running-item" href="https://koitigan.com/">
690        BANDAR TOGEL ONLINE
691      </a>
692
693    </div>
694
695  </div>
696
697</div>
698       
699 <div class="overlay-nav">
700   <!-- Mobile Close Button in Overlay -->
701   <button id="nav-close" class="nav-close-btn d-lg-none">
702     <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="https://imgmahasuhu.io/images/2026/08/11/giflogo_koi1.gif">
703       <path d="M18 6L6 18M6 6L18 18" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
704     </svg>
705   </button>
706 </div>
707 <!-- =========================================
708     OVERLAY GAMBAR BERJATUHAN
709     KOITOTO + KOI GROUP
710========================================= -->
711
712<style>
713/* LAYER OVERLAY */
714.falling-overlay {
715  position: fixed;
716  top: 0;
717  left: 0;
718
719  width: 100vw;
720  height: 100vh;
721
722  overflow: hidden;
723  pointer-events: none;
724
725  z-index: 999999;
726
727  /* Jangan sampai membuat scrollbar */
728  max-width: 100%;
729}
730
731/* ITEM GAMBAR / UANG DOLAR */
732.falling-logo {
733  position: absolute;
734  top: -120px;
735
736  display: flex;
737  align-items: center;
738  justify-content: center;
739
740  background-repeat: no-repeat;
741  background-position: center;
742  background-size: contain;
743
744  opacity: 0;
745
746  animation-name: fallingDollar;
747  animation-timing-function: linear;
748  animation-iteration-count: infinite;
749
750  will-change: transform, opacity;
751
752  /* Style untuk Teks/Icon Dolar */
753  font-size: 40px;
754  font-weight: bold;
755  color: #85bb65;
756  text-shadow: 0 0 8px rgba(0, 255, 100, 0.6), 0 2px 4px rgba(0,0,0,0.5);
757  user-select: none;
758}
759
760/* ANIMASI JATUH & BERPUTAR */
761@keyframes fallingDollar {
762  0% {
763    transform: translate3d(0, -150px, 0) rotate(0deg);
764    opacity: 0;
765  }
766
767  8% {
768    opacity: 0.9;
769  }
770
771  30% {
772    transform: translate3d(45px, 30vh, 0) rotate(90deg);
773  }
774
775  55% {
776    transform: translate3d(-35px, 60vh, 0) rotate(180deg);
777  }
778
779  80% {
780    transform: translate3d(50px, 90vh, 0) rotate(270deg);
781    opacity: 0.8;
782  }
783
784  100% {
785    transform: translate3d(-30px, 120vh, 0) rotate(360deg);
786    opacity: 0;
787  }
788}
789
790/* =========================================
791   VARIASI DUIT DOLAR (POSISI & POSISI WAKTU)
792========================================= */
793
794.falling-logo.logo-1 { left: 3%;  font-size: 45px; animation-duration: 8s;  animation-delay: 0s; }
795.falling-logo.logo-2 { left: 14%; font-size: 35px; animation-duration: 11s; animation-delay: 2.5s; }
796.falling-logo.logo-3 { left: 25%; font-size: 50px; animation-duration: 9s;  animation-delay: 4s; }
797.falling-logo.logo-4 { left: 36%; font-size: 38px; animation-duration: 12s; animation-delay: 1s; }
798.falling-logo.logo-5 { left: 48%; font-size: 48px; animation-duration: 10s; animation-delay: 5s; }
799.falling-logo.logo-6 { left: 59%; font-size: 36px; animation-duration: 13s; animation-delay: 2s; }
800.falling-logo.logo-7 { left: 70%; font-size: 44px; animation-duration: 9.5s;animation-delay: 6s; }
801.falling-logo.logo-8 { left: 81%; font-size: 38px; animation-duration: 11.5s;animation-delay: 3.5s; }
802.falling-logo.logo-9 { left: 91%; font-size: 52px; animation-duration: 14s; animation-delay: 0.5s; }
803.falling-logo.logo-10{ left: 96%; font-size: 32px; animation-duration: 10.5s;animation-delay: 4.5s; }
804
805/* =========================================
806   RESPONSIVE MOBILE
807========================================= */
808@media (max-width: 600px) {
809  .falling-logo {
810    font-size: 28px !important;
811  }
812}
813</style>
814
815<!-- =========================================
816     OVERLAY HUJAN DUIT DOLAR
817========================================= -->
818<div class="falling-overlay">
819  <div class="falling-logo logo-1">💵</div>
820  <div class="falling-logo logo-2">💲</div>
821  <div class="falling-logo logo-3">💵</div>
822  <div class="falling-logo logo-4">💰</div>
823  <div class="falling-logo logo-5">💵</div>
824  <div class="falling-logo logo-6">💲</div>
825  <div class="falling-logo logo-7">💵</div>
826  <div class="falling-logo logo-8">💰</div>
827  <div class="falling-logo logo-9">💵</div>
828  <div class="falling-logo logo-10">💲</div>
829</div>
830 
831 
832<script>
833  if ($(window).width() < 992) {
834    // Level 1 menu accordion (main menu items)
835    $(".nav-menu .nav-menu container > a").click(function(e){
836      e.preventDefault()
837      const parentLi = $(this).parent()
838      const isCurrentlyOpen = parentLi.hasClass("menu-open")
839      
840      // Close all other open menus (accordion behavior)
841      $(".nav-menu .nav-menu container").not(parentLi).removeClass("menu-open")
842      $(".nav-menu .megamenu").not($(this).next(".megamenu")).slideUp()
843      
844      // Toggle current menu
845      if (isCurrentlyOpen) {
846        parentLi.removeClass("menu-open")
847        $(this).next(".megamenu").slideUp()
848      } else {
849        parentLi.addClass("menu-open")
850        $(this).next(".megamenu").slideDown()
851      }
852    })
853
854    // Level 2 menu accordion (submenu items with grandchildren)
855    $(document).on('click', '.dropdown-menu .has-submenu > a', function(e){
856      e.preventDefault()
857      const parentLi = $(this).parent()
858      const isCurrentlyOpen = parentLi.hasClass("submenu-open")
859      const grandchild = $(this).next(".grandchild")
860      
861      // Close all other open submenus in the same dropdown (accordion behavior)
862      parentLi.siblings('.has-submenu').removeClass("submenu-open")
863      parentLi.siblings('.has-submenu').find('.grandchild').slideUp()
864      parentLi.siblings('.has-submenu').find('.chevron-right').css('transform', 'rotate(0deg)')
865      
866      // Toggle current submenu
867      if (isCurrentlyOpen) {
868        parentLi.removeClass("submenu-open")
869        grandchild.slideUp()
870        $(this).find('.chevron-right').css('transform', 'rotate(0deg)')
871      } else {
872        parentLi.addClass("submenu-open")
873        grandchild.slideDown()
874        $(this).find('.chevron-right').css('transform', 'rotate(90deg)')
875      }
876    })
877
878    $("#menu-hamburger").click(function(e){
879      e.preventDefault()
880      $("body").toggleClass("nav_open")
881    })
882    
883    // Handle close button click
884    $("#nav-close").click(function(e){
885      e.preventDefault()
886      $("body").removeClass("nav_open")
887      // Close all open menus when close button is clicked
888      $(".nav-menu .nav-menu container").removeClass("menu-open")
889      $(".nav-menu .megamenu").slideUp()
890      $(".dropdown-menu .has-submenu").removeClass("submenu-open")
891      $(".dropdown-menu .grandchild").slideUp()
892      $(".dropdown-menu .chevron-right").css('transform', 'rotate(0deg)')
893    })
894  }
895
896  $(".overlay-nav").click(function(e){
897      e.preventDefault()
898      $("body").removeClass("nav_open")
899      // Close all open menus when overlay is clicked
900      $(".nav-menu .nav-menu container").removeClass("menu-open")
901      $(".nav-menu .megamenu").slideUp()
902      $(".dropdown-menu .has-submenu").removeClass("submenu-open")
903      $(".dropdown-menu .grandchild").slideUp()
904      $(".dropdown-menu .chevron-right").css('transform', 'rotate(0deg)')
905  })
906</script>
906
907 
908       <div id="shopify-section-search-popup" class="shopify-section m-0"><style>
909   #search-trigger {
910     cursor: pointer;
911   }
912   #search-popup {
913     display: none;
914     position: fixed;
915     left: 0;
916     width: 100%;
917     top: 0;
918     height: 100%;
919     justify-content: center;
920     z-index: 9999;
921     background: rgb(196 196 196 / 30%);
922   }
923   #search-input {
924     align-self: center;
925     width: 100%;
926     height: 80px;
927     position: absolute;
928     top: 0;
929     border-bottom: 0.5px solid #A3A3A3;
930     background-color: #fff;
931   }
932   #search-input * {
933     align-self: center;
934   }
935   #search-type {
936     width: 100%;
937     border: none;
938     padding-right: 20px;
939     padding-left: 20px;
940     font-size: 16px;
941     color: #757575;
942   }
943   #search-btn {
944     font-size: 16px;
945     font-weight: 500;
946   }
947   #search-result {
948     min-height: 490px;
949     width: 100%;
950     padding-top: 80px;
951   }
952   #search-result .container {
953     background-color: #fff;
954     padding: 20px 40px;
955   }
956   body.search-popup-open {
957   /* .search-popup-open */
958     overflow: hidden;
959   }
960   .search-popup-open #loc_delivery {
961     display: none
962   }
963   .search-header svg {
964     display: none;
965     cursor: pointer;
966   }
967   .wrapper-search-popup {
968     max-height: calc(100vh - 150px);
969     overflow-y: auto;
970     overflow-x: hidden;
971   }
972 
973   .group-recommend {
974     padding: 20px 40px;
975   }
976 
977   .resultsearch {
978     display: none;
979   }
980   .results { padding: 20px 40px }
981   .resultsearch label {
982     font-weight: 600;
983     padding-bottom: 20px;
984     display: block;
985     margin-bottom: 20px;
986     border-bottom: 1px solid #AAAAAA;
987   }
988 
989   ul.result_product {
990     max-height: 300px;
991     overflow: auto;
992   }
993 
994   .group-promotion ul {
995     margin: 0;
996   }
997   .group-promotion li {
998     list-style: none;
999     margin-bottom: 12px;
1000   }
1001   .group-promotion li a {
1002     color: inherit;
1003   }
1004 
1005   .group-recent {
1006     position: relative;
1007     padding: 20px 40px;
1008   }
1009   .group-recent ul {
1010     margin: 0;
1011   }
1012   .group-recent li {
1013     list-style: none;
1014     display: inline-block;
1015     margin-right: 60px;
1016   }
1017   .group-recent li a {
1018     color: inherit;
1019   }
1020 
1021   .last-search svg {
1022     width: 20px;
1023     vertical-align: middle;
1024   }
1025   ul.last-search a {
1026     vertical-align: middle;
1027     padding: 0 10px;
1028   }
1029   ul.last-search li span {
1030     cursor: pointer;
1031   }
1032   .delete-all-history {
1033     position: absolute;
1034     top: 25px;
1035     right: 40px;
1036     text-decoration: underline;
1037     color: #e11d1d;
1038     cursor: pointer;
1039     font-size: 12px;
1040   }
1041 
1042   form.search.search-modal__form {
1043     position: relative;
1044   }
1045 
1046   button.search__button svg {
1047     width: 25px;
1048     color: #495057;
1049     fill: #757582;
1050   }
1051 
1052   button.search__button.field__button {
1053     position: absolute;
1054     top: 50%;
1055     margin-top: -12px;
1056   }
1057 
1058   .close-search {
1059     display: none;
1060     position: absolute;
1061     right: 65px;
1062     top: 10px;
1063     cursor: pointer;
1064   }
1065 
1066   .site-overlay {
1067     position: fixed;
1068     top: 0;
1069     width: 100vw;
1070     height: 100vh;
1071     z-index: 1000;
1072     background: #0000005c;
1073     visibility: hidden;
1074     opacity: 0;
1075     pointer-events: none;
1076     transition: all .3s linear;
1077     display: block !important;
1078   }
1079 
1080   .search-popup-open .site-overlay {
1081     opacity: 1;
1082     visibility: visible;
1083     pointer-events: all;
1084     z-index: -1;
1085     cursor: pointer;
1086   }
1087 
1088   @media (min-width: 991px) {
1089     .group-recent ul {
1090       column-count: 3;
1091     }
1092     .group-promotion li a {
1093       font-size: 12px;
1094       font-weight: 400;
1095     }
1096     .group-recent li a {
1097       font-size: 12px;
1098       font-weight: 400;
1099     }
1100   }
1101 
1102   .moreresult {
1103     padding: 10px 40px;
1104     border-top: 1px solid #AAAAAA;
1105   }
1106   .moreresult * {
1107     align-self: center;
1108   }
1109   .moreresult p {
1110     margin: 0;
1111     font-size: 12px !important;
1112   }
1113   .moreresult svg {
1114     width: 13px;
1115   }
1116 
1117   @media (max-width: 992px) {
1118     .icon-key-mobile {
1119         height: auto!important;
1120         width: 10px!important;
1121     }
1122     body.grid-view.search-popup-open .products {
1123       -ms-flex: 0 0 100%!important;
1124       flex: 0 0 100%!important;
1125       max-width: 100%!important;
1126     }
1127     button.search__button svg {
1128       width: 20px;
1129     }
1130     #search-result {
1131       padding-left: 0;
1132       padding-right: 0;
1133     }
1134     #search-result {
1135       padding-top: 55px;
1136     }
1137     #search-input {
1138       height: 55px;
1139     }
1140     .group-recommend {
1141       padding: 20px;
1142     }
1143     #search-input .container {
1144       padding: 0 20px;
1145     }
1146     #search-type {
1147       font-size: 14px;
1148     }
1149     #search-btn {
1150       font-size: 12px;
1151       text-decoration: underline;
1152     }
1153     .results {
1154       padding: 20px;
1155     }
1156     .group-recommend h3 {
1157       font-size: 16px;
1158     }
1159     .products .card-body {
1160       padding: 8px 0px 10px;
1161     }
1162     .moreresult {
1163       padding: 10px 20px;
1164     }
1165   }
1166 </style>
1167<style type="text/css">
1168    div.advertisement-placeholder {
1169        text-align: center;
1170        padding-bottom: 20px;
1171        display: flex;
1172        flex-direction: column;
1173        justify-content: center;
1174    }
1175
1176    div.advertisement-text p {
1177        margin: 0;
1178        font-family: Open Sans;
1179        font-style: normal;
1180        font-weight: normal;
1181        font-size: 10px;
1182        line-height: 20px;
1183        color: #c91414;
1184    }
1185
1186    div.advertisement-banner {
1187        margin: 0px auto;
1188    }
1189
1190    div#div-gpt-ad-billboard-placeholder {
1191        width: 996px;
1192        margin: 0 auto;
1193        background: #f0f2f8;
1194        padding-bottom: unset !important;
1195        min-height: 200px;
1196    }
1197
1198    div#div-gpt-ad-lb-placeholder {
1199        background: #f0f2f8;
1200        padding-bottom: unset !important;
1201        min-height: 280px;
1202    }
1203
1204    :root {
1205        --fx-red: #cd1f1f;
1206        --fx-red: #cd1f1f;
1207        --fx-silver: #c91414;
1208        --fx-text: #f5f7ff;
1209        --fx-border: rgba(192, 192, 192, .45);
1210        --fx-bg: rgba(230 13 13 / 72%);
1211        --fx-shadow: 0 20px 60px rgba(206 18 18 / 28%);
1212        --purple: #cd1f1f;
1213        --accent: #c91414;
1214        --white: #ffffff;
1215    }
1216
1217    .fx-video-bg {
1218        position: relative;
1219        width: 100%;
1220        min-height: 100vh;
1221        overflow: hidden;
1222    }
1223
1224    .fx-video-bg video {
1225        position: absolute;
1226        top: 50%;
1227        left: 50%;
1228        min-width: 100%;
1229        min-height: 100%;
1230        width: auto;
1231        height: auto;
1232        transform: translate(-50%, -50%);
1233        object-fit: cover;
1234        z-index: 1;
1235    }
1236
1237    .fx-video-overlay {
1238        position: absolute;
1239        inset: 0;
1240        z-index: 2;
1241        background:
1242            radial-gradient(circle at 30% 20%, rgba(176 7 7), transparent 55%),
1243            radial-gradient(circle at 70% 80%, rgba(230, 0, 2, .35), transparent 60%),
1244            linear-gradient(180deg, rgba(176 7 7), rgba(230, 0, 2, .18));
1245    }
1246
1247    .fx-article-wrap {
1248        position: relative;
1249        z-index: 3;
1250        max-width: 1280px;
1251        margin: 0 auto;
1252        padding: 60px 14px;
1253    }
1254
1255    .fx-article {
1256        position: relative;
1257        border-radius: 22px;
1258        padding: 26px 22px;
1259        color: var(--fx-text);
1260        background: rgba(211 11 11 / 42%);
1261        border: 1px solid var(--fx-border);
1262        box-shadow: var(--fx-shadow);
1263        backdrop-filter: blur(6px);
1264    }
1265
1266    .fx-badge {
1267        display: inline-block;
1268        margin-bottom: 12px;
1269        padding: 6px 12px;
1270        font-size: 12px;
1271        font-weight: 700;
1272        letter-spacing: .6px;
1273        border-radius: 999px;
1274        color: #fff;
1275        background: linear-gradient(90deg, #cd1f1f, #c91414);
1276        box-shadow: 0 0 18px rgba(192, 192, 192, .45);
1277    }
1278
1279    .fx-article h1 {
1280        font-size: 1.8rem;
1281        margin-bottom: 14px;
1282        text-shadow: 0 0 18px rgba(192, 192, 192, .45);
1283    }
1284
1285    .fx-article h2 {
1286        font-size: 1.3rem;
1287        margin: 18px 0 10px;
1288        border-left: 4px solid var(--fx-red);
1289        padding-left: 10px;
1290    }
1291
1292    .fx-article p {
1293        line-height: 1.75;
1294        margin-bottom: 14px;
1295        color: rgba(255, 255, 255, .92);
1296    }
1297
1298    .fx-article a {
1299        color: #dce6ff;
1300        border-bottom: 1px dashed rgba(192, 192, 192, .75);
1301        text-decoration: none;
1302    }
1303
1304    .fx-article a:hover {
1305        color: #ffffff;
1306        text-shadow: 0 0 12px rgba(192, 192, 192, .7);
1307    }
1308
1309    .fx-callout {
1310        margin: 18px 0;
1311        padding: 14px;
1312        border-radius: 14px;
1313        background: rgba(65, 105, 225, .16);
1314        border: 1px solid rgba(192, 192, 192, .45);
1315    }
1316
1317    @media (max-width: 768px) {
1318        .fx-article-wrap {
1319            padding: 40px 12px;
1320        }
1321
1322        .fx-article h1 {
1323            font-size: 1.5rem;
1324        }
1325    }
1326
1327    .faq-review-section {
1328        position: relative;
1329        max-width: 1190px;
1330        margin: 60px auto;
1331        padding: 40px 30px;
1332        border-radius: 25px;
1333        background: linear-gradient(145deg, rgba(65, 105, 225, .08), rgba(192, 192, 192, .05));
1334        overflow: hidden;
1335        box-shadow: 0 0 40px rgba(65, 105, 225, .85);
1336    }
1337
1338    .faq-review-section::before {
1339        content: "";
1340        position: absolute;
1341        width: 150%;
1342        height: 150%;
1343        background: radial-gradient(circle at center, rgba(192, 192, 192, .10), transparent 70%);
1344        animation: spinAura 15s linear infinite;
1345        top: -25%;
1346        left: -25%;
1347    }
1348
1349    @keyframes spinAura {
1350        to {
1351            transform: rotate(360deg);
1352        }
1353    }
1354
1355    .section-title {
1356        text-align: center;
1357        color: var(--fx-silver);
1358        font-size: 1.9rem;
1359        letter-spacing: 1px;
1360        font-weight: 700;
1361        text-shadow: 0 0 20px rgba(65, 105, 225, .75);
1362        position: relative;
1363        z-index: 2;
1364        margin-bottom: 25px;
1365    }
1366
1367    .section-title::after {
1368        content: '';
1369        width: 100px;
1370        height: 3px;
1371        background: linear-gradient(90deg, var(--fx-red), var(--fx-silver));
1372        display: block;
1373        margin: 10px auto;
1374        border-radius: 2px;
1375        box-shadow: 0 0 10px rgba(192, 192, 192, .55);
1376        animation: pulseLine 2s infinite alternate;
1377    }
1378
1379    @keyframes pulseLine {
1380        from {
1381            opacity: .6;
1382            transform: scaleX(.7);
1383        }
1384
1385        to {
1386            opacity: 1;
1387            transform: scaleX(1);
1388        }
1389    }
1390
1391    .faq-item,
1392    .review-item {
1393        background: rgba(65, 105, 225, .45);
1394        border: 1px solid rgba(192, 192, 192, .35);
1395        border-radius: 18px;
1396        padding: 18px 20px;
1397        margin: 18px 0;
1398        color: var(--white);
1399        box-shadow: inset 0 0 0 rgba(65, 105, 225, 0);
1400        transform: perspective(800px) rotateX(15deg) scale(0.95);
1401        opacity: 0;
1402        transition: all 0.7s ease, box-shadow 0.4s ease;
1403    }
1404
1405    .faq-item.show,
1406    .review-item.show {
1407        opacity: 1;
1408        transform: perspective(800px) rotateX(0deg) scale(1);
1409    }
1410
1411    .faq-item:hover,
1412    .review-item:hover {
1413        background: rgba(192, 192, 192, .32);
1414        box-shadow: 0 0 25px rgba(65, 105, 225, .55);
1415        transform: scale(1.02);
1416    }
1417
1418    .faq-question {
1419        cursor: pointer;
1420        font-weight: 600;
1421        color: var(--fx-silver);
1422        position: relative;
1423        font-size: 1.9rem;
1424        padding-right: 25px;
1425        text-shadow: 0 0 10px rgba(65, 105, 225, .85);
1426    }
1427
1428    .faq-question::after {
1429        content: "+";
1430        position: absolute;
1431        right: 0;
1432        top: 0;
1433        color: #ffffff;
1434        font-weight: bold;
1435        font-size: 1.4rem;
1436        transition: transform .3s;
1437    }
1438
1439    .faq-item.active .faq-question::after {
1440        transform: rotate(45deg);
1441    }
1442
1443    .faq-answer {
1444        display: none;
1445        color: #ffffff;
1446        line-height: 1.6em;
1447        padding-top: 10px;
1448        border-top: 1px dashed rgba(192, 192, 192, .45);
1449        margin-top: 10px;
1450    }
1451
1452    .faq-item.active .faq-answer {
1453        display: block;
1454        animation: fadeUp .4s ease;
1455    }
1456
1457    @keyframes fadeUp {
1458        from {
1459            opacity: 0;
1460            transform: translateY(10px);
1461        }
1462
1463        to {
1464            opacity: 1;
1465            transform: translateY(0);
1466        }
1467    }
1468
1469    .review-author {
1470        font-weight: 700;
1471        color: var(--fx-silver);
1472        font-size: 1.9rem;
1473        text-shadow: 0 0 10px rgba(65, 105, 225, .85);
1474    }
1475
1476    .review-text {
1477        color: #ffffff;
1478        margin: 6px 0;
1479        font-style: italic;
1480    }
1481
1482    .review-rating {
1483        color: var(--fx-silver);
1484        font-weight: bold;
1485        font-size: 1rem;
1486        text-shadow: 0 0 8px rgba(255, 255, 255, .45);
1487    }
1488
1489    .faq-item::before {
1490        content: '';
1491        position: absolute;
1492        inset: 0;
1493        border-radius: inherit;
1494        border: 2px solid transparent;
1495        background: linear-gradient(120deg, var(--fx-red), var(--fx-silver), var(--fx-red)) border-box;
1496        mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0);
1497        opacity: 0;
1498        transition: opacity .3s ease;
1499    }
1500
1501    @keyframes borderGlow {
1502        to {
1503            transform: rotate(360deg);
1504        }
1505    }
1506
1507    @media (max-width:768px) {
1508        .faq-review-section {
1509            padding: 28px 18px;
1510        }
1511
1512        .section-title {
1513            font-size: 1.5rem;
1514        }
1515    }
1516</style>
1517 <div id="search-popup">
1518   <div id="search-input" class="row">
1519     <div class="container w-100">
1520       <form
1521         action="/search"
1522         method="get"
1523         role="search"
1524         class="search search-modal__form d-flex justify-content-between"
1525       >
1526         <svg xmlns="https://imgmahasuhu.io/images/2026/08/11/giflogo_koi1.gif" width="20" height="20" viewBox="0 0 20 20" fill="none">
1527   <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"/>
1528 </svg>
1529 
1530         <input type="hidden" name="type" value="product">
1531         <input
1532           type="text"
1533           id="search-type"
1534           name="q"
1535           class="search-popup"
1536           placeholder="Gifts that linger: Uncover treasures for cherished moments."
1537         >
1538         <div class="close-search"><svg xmlns="https://imgmahasuhu.io/images/2026/08/11/giflogo_koi1.gif" width="18" height="18" viewBox="0 0 18 18" fill="none">
1539   <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 
153912.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"/>
1540 </svg>
1541 </div>
1542         <button id="search-btn">Search</button>
1543       </form>
1544     </div>
1545   </div>
1546   <div id="search-result" class="container m-auto">
1547     <div class="container p-0">
1548       <div class="group-promotion">
1549         <div class="resultsearch">
1550           <div class="row results">
1551             <div class="col-12 col-lg-6 mb-3 mb-lg-0">
1552               <label>SUGGESTIONS</label>
1553               <ul class="result_collection"></ul>
1554             </div>
1555             <div class="col-12 col-lg-6">
1556               <label>PRODUCTS</label>
1557               <ul class="result_product"></ul>
1558             </div>
1559           </div>
1560           <div class="d-flex justify-content-between moreresult m-0">
1561             <p>Search for<span></span></p>
1562             <svg version="1.1" xmlns="https://imgmahasuhu.io/images/2026/08/11/giflogo_koi1.gif" width="32" height="32" viewBox="0 0 32 32">
1563 <title>icon-arrow-right</title>
1564 <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>
1565 </svg>
1566           </div>
1567         </div>
1568       </div>
1569       <div class="group-recent hide">
1570         <h3>RECENT SEARCH</h3>
1571         <span class="delete-all-history">Hapus riwayat</span>
1572         <ul class="last-search"></ul>
1573       </div>
1574       <div class="group-recommend">
1575         <h3>YOU MAY ALSO LIKE</h3>
1576         
1577         
1578           <div class="row popup-recommend c-products-grid infinite-case product-multi-">
1579             <div class="swiper-wrapper justify-content-between" style="margin-left:1px;">
1580               
1581                 
1582                   <div class="swiper-slide card">
1583                     
1584 
1585 
1586 
1587 <div class="products" data-lazy="false">
1588   <div class="bg-products">
1589     <div class="wishlist-toggle" data-product-handle="mid-autumn-of-love-mooncake">
1590       <svg xmlns="https://imgmahasuhu.io/images/2026/08/11/giflogo_koi1.gif" width="24" height="21" viewBox="0 0 24 21" fill="none">
1591   <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.
159111233C11.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"/>
1592 </svg>
1593 
1594     </div>
1595     <a href="/products/mid-autumn-of-love-mooncake">
1596       
1597       <div class="product-card-img-container p-0 position-relative">
1598         
1599         <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">
1600       </div>
1601       <div class="card-body product-card-info">
1602         <h5 class="h5 mb-0">
1603           Mid Autumn of Love Mooncake
1604         </h5>
1605         <div class="product-card-price">
1606           
1607           <div class="product-price-sale">
1608             <s class="product-card-price-before card-money">Rp 588.000</s>
1609             <span class="product-card-discount small">	
1610               (-40%)
1611             </span> 	
1612           </div>
1613           
1614           
1615           
1616           <div class="price-discount">
1617             <h4 class="product-card-price-after card-money">Rp 348.000</h4>
1618           </div>
1619           
1620           
1621           
1622           
1623           
1624         </div>
1625         
1626       </div>
1627     </a>
1628   </div>
1629   
1630 </div>
1631 
1632                   </div>
1633                 
1634               
1635                 
1636                   <div class="swiper-slide card">
1637                     
1638 
1639 
1640 
1641 <div class="products" data-lazy="false">
1642   <div class="bg-products">
1643     <div class="wishlist-toggle" data-product-handle="mid-autumn-of-joy-mooncake">
1644       <svg xmlns="https://imgmahasuhu.io/images/2026/08/11/giflogo_koi1.gif" width="24" height="21" viewBox="0 0 24 21" fill="none">
1645   <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.
164511233C11.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"/>
1646 </svg>
1647 
1648     </div>
1649     <a href="/products/mid-autumn-of-joy-mooncake">
1650       
1651       <div class="product-card-img-container p-0 position-relative">
1652         
1653         <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">
1654       </div>
1655       <div class="card-body product-card-info">
1656         <h5 class="h5 mb-0">
1657           Mid Autumn of Joy Mooncake
1658         </h5>
1659         <div class="product-card-price">
1660           
1661           <div class="product-price-sale">
1662             <s class="product-card-price-before card-money">Rp 888.000</s>
1663             <span class="product-card-discount small">	
1664               (-33%)
1665             </span> 	
1666           </div>
1667           
1668           
1669           
1670           <div class="price-discount">
1671             <h4 class="product-card-price-after card-money">Rp 588.000</h4>
1672           </div>
1673           
1674           
1675           
1676           
1677           
1678         </div>
1679         
1680       </div>
1681     </a>
1682   </div>
1683   
1684 </div>
1685 
1686                   </div>
1687                 
1688               
1689                 
1690                   <div class="swiper-slide card">
1691                     
1692 
1693 
1694 
1695 <div class="products" data-lazy="false">
1696   <div class="bg-products">
1697     <div class="wishlist-toggle" data-product-handle="mid-autumn-of-fortune-mooncake">
1698       <svg xmlns="https://imgmahasuhu.io/images/2026/08/11/giflogo_koi1.gif" width="24" height="21" viewBox="0 0 24 21" fill="none">
1699   <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.
169911233C11.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"/>
1700 </svg>
1701 
1702     </div>
1703     <a href="/products/mid-autumn-of-fortune-mooncake">
1704       
1705       <div class="product-card-img-container p-0 position-relative">
1706         
1707         <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">
1708       </div>
1709       <div class="card-body product-card-info">
1710         <h5 class="h5 mb-0">
1711           Mid Autumn of Fortune Mooncake
1712         </h5>
1713         <div class="product-card-price">
1714           
1715           <div class="product-price-sale">
1716             <s class="product-card-price-before card-money">Rp 1.188.000</s>
1717             <span class="product-card-discount small">	
1718               (-33%)
1719             </span> 	
1720           </div>
1721           
1722           
1723           
1724           <div class="price-discount">
1725             <h4 class="product-card-price-after card-money">Rp 788.000</h4>
1726           </div>
1727           
1728           
1729           
1730           
1731           
1732         </div>
1733         
1734       </div>
1735     </a>
1736   </div>
1737   
1738 </div>
1739 
1740                   </div>
1741                 
1742               
1743                 
1744                   <div class="swiper-slide card">
1745                     
1746 
1747 
1748 
1749 <div class="products" data-lazy="false">
1750   <div class="bg-products">
1751     <div class="wishlist-toggle" data-product-handle="mid-autumn-festival-mooncake">
1752       <svg xmlns="https://imgmahasuhu.io/images/2026/08/11/giflogo_koi1.gif" width="24" height="21" viewBox="0 0 24 21" fill="none">
1753   <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.
175311233C11.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"/>
1754 </svg>
1755 
1756     </div>
1757     <a href="/products/mid-autumn-festival-mooncake">
1758       
1759       <div class="product-card-img-container p-0 position-relative">
1760         
1761         <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">
1762       </div>
1763       <div class="card-body product-card-info">
1764         <h5 class="h5 mb-0">
1765           Mid Autumn Festival Mooncake
1766         </h5>
1767         <div class="product-card-price">
1768           
1769           <div class="product-price-sale">
1770             <s class="product-card-price-before card-money">Rp 1.288.000</s>
1771             <span class="product-card-discount small">	
1772               (-23%)
1773             </span> 	
1774           </div>
1775           
1776           
1777           
1778           <div class="price-discount">
1779             <h4 class="product-card-price-after card-money">Rp 988.000</h4>
1780           </div>
1781           
1782           
1783           
1784           
1785           
1786         </div>
1787         
1788       </div>
1789     </a>
1790   </div>
1791   
1792 </div>
1793 
1794                   </div>
1795                 
1796               
1797                 
1798                   <div class="swiper-slide card">
1799                     
1800 
1801 
1802 
1803 <div class="products" data-lazy="false">
1804   <div class="bg-products">
1805     <div class="wishlist-toggle" data-product-handle="the-jade-bouquet">
1806       <svg xmlns="https://imgmahasuhu.io/images/2026/08/11/giflogo_koi1.gif" width="24" height="21" viewBox="0 0 24 21" fill="none">
1807   <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.
180711233C11.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"/>
1808 </svg>
1809 
1810     </div>
1811     <a href="/products/the-jade-bouquet">
1812       
1813       <div class="product-card-img-container p-0 position-relative">
1814         
1815         <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">
1816       </div>
1817       <div class="card-body product-card-info">
1818         <h5 class="h5 mb-0">
1819           The Jade Bouquet
1820         </h5>
1821         <div class="product-card-price">
1822           
1823           <div class="product-price-sale">
1824             <s class="product-card-price-before card-money">Rp 435.000</s>
1825             <span class="product-card-discount small">	
1826               (-34%)
1827             </span> 	
1828           </div>
1829           
1830           
1831           
1832           <div class="price-discount">
1833             <h4 class="product-card-price-after card-money">Rp 285.000</h4>
1834           </div>
1835           
1836           
1837           
1838           
1839           
1840         </div>
1841         
1842       </div>
1843     </a>
1844   </div>
1845   
1846 </div>
1847 
1848                   </div>
1849                 
1850               
1851                 
1852                   <div class="swiper-slide card">
1853                     
1854 
1855 
1856 
1857 <div class="products" data-lazy="false">
1858   <div class="bg-products">
1859     <div class="wishlist-toggle" data-product-handle="the-selena-bouquet">
1860       <svg xmlns="https://imgmahasuhu.io/images/2026/08/11/giflogo_koi1.gif" width="24" height="21" viewBox="0 0 24 21" fill="none">
1861   <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.
186111233C11.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"/>
1862 </svg>
1863 
1864     </div>
1865     <a href="/products/the-selena-bouquet">
1866       
1867       <div class="product-card-img-container p-0 position-relative">
1868         
1869         <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">
1870       </div>
1871       <div class="card-body product-card-info">
1872         <h5 class="h5 mb-0">
1873           The Selena Bouquet
1874         </h5>
1875         <div class="product-card-price">
1876           
1877           <div class="product-price-sale">
1878             <s class="product-card-price-before card-money">Rp 335.000</s>
1879             <span class="product-card-discount small">	
1880               (-29%)
1881             </span> 	
1882           </div>
1883           
1884           
1885           
1886           <div class="price-discount">
1887             <h4 class="product-card-price-after card-money">Rp 235.000</h4>
1888           </div>
1889           
1890           
1891           
1892           
1893           
1894         </div>
1895         
1896       </div>
1897     </a>
1898   </div>
1899   
1900 </div>
1901 
1902                   </div>
1903                 
1904               
1905                 
1906                   <div class="swiper-slide card">
1907                     
1908 
1909 
1910 
1911 <div class="products" data-lazy="false">
1912   <div class="bg-products">
1913     <div class="wishlist-toggle" data-product-handle="the-viola-bouquet">
1914       <svg xmlns="https://imgmahasuhu.io/images/2026/08/11/giflogo_koi1.gif" width="24" height="21" viewBox="0 0 24 21" fill="none">
1915   <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.
191511233C11.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"/>
1916 </svg>
1917 
1918     </div>
1919     <a href="/products/the-viola-bouquet">
1920       
1921       <div class="product-card-img-container p-0 position-relative">
1922         
1923         <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">
1924       </div>
1925       <div class="card-body product-card-info">
1926         <h5 class="h5 mb-0">
1927           The Viola Bouquet
1928         </h5>
1929         <div class="product-card-price">
1930           
1931           <div class="product-price-sale">
1932             <s class="product-card-price-before card-money">Rp 385.000</s>
1933             <span class="product-card-discount small">	
1934               (-25%)
1935             </span> 	
1936           </div>
1937           
1938           
1939           
1940           <div class="price-discount">
1941             <h4 class="product-card-price-after card-money">Rp 285.000</h4>
1942           </div>
1943           
1944           
1945           
1946           
1947           
1948         </div>
1949         
1950       </div>
1951     </a>
1952   </div>
1953   
1954 </div>
1955 
1956                   </div>
1957                 
1958               
1959                 
1960                   <div class="swiper-slide card">
1961                     
1962 
1963 
1964 
1965 <div class="products" data-lazy="false">
1966   <div class="bg-products">
1967     <div class="wishlist-toggle" data-product-handle="the-minerva-bouquet">
1968       <svg xmlns="https://imgmahasuhu.io/images/2026/08/11/giflogo_koi1.gif" width="24" height="21" viewBox="0 0 24 21" fill="none">
1969   <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.
196911233C11.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"/>
1970 </svg>
1971 
1972     </div>
1973     <a href="/products/the-minerva-bouquet">
1974       
1975       <div class="product-card-img-container p-0 position-relative">
1976         
1977         <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">
1978       </div>
1979       <div class="card-body product-card-info">
1980         <h5 class="h5 mb-0">
1981           The Minerva Bouquet
1982         </h5>
1983         <div class="product-card-price">
1984           
1985           <div class="product-price-sale">
1986             <s class="product-card-price-before card-money">Rp 385.000</s>
1987             <span class="product-card-discount small">	
1988               (-25%)
1989             </span> 	
1990           </div>
1991           
1992           
1993           
1994           <div class="price-discount">
1995             <h4 class="product-card-price-after card-money">Rp 285.000</h4>
1996           </div>
1997           
1998           
1999           
2000           
2001           
2002         </div>
2003         
2004       </div>
2005     </a>
2006   </div>
2007   
2008 </div>
2009 
2010                   </div>
2011                 
2012               
2013                 
2014                   <div class="swiper-slide card">
2015                     
2016 
2017 
2018 
2019 <div class="products" data-lazy="false">
2020   <div class="bg-products">
2021     <div class="wishlist-toggle" data-product-handle="congraduations-bouquet">
2022       <svg xmlns="https://imgmahasuhu.io/images/2026/08/11/giflogo_koi1.gif" width="24" height="21" viewBox="0 0 24 21" fill="none">
2023   <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.
202311233C11.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"/>
2024 </svg>
2025 
2026     </div>
2027     <a href="/products/congraduations-bouquet">
2028       
2029       <div class="product-card-img-container p-0 position-relative">
2030         
2031         <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">
2032       </div>
2033       <div class="card-body product-card-info">
2034         <h5 class="h5 mb-0">
2035           Congraduations Bouquet
2036         </h5>
2037         <div class="product-card-price">
2038           
2039           <div class="product-price-sale">
2040             <s class="product-card-price-before card-money">Rp 380.000</s>
2041             <span class="product-card-discount small">	
2042               (-25%)
2043             </span> 	
2044           </div>
2045           
2046           
2047           
2048           <div class="price-discount">
2049             <h4 class="product-card-price-after card-money">Rp 285.000</h4>
2050           </div>
2051           
2052           
2053           
2054           
2055           
2056         </div>
2057         
2058       </div>
2059     </a>
2060   </div>
2061   
2062 </div>
2063 
2064                   </div>
2065                 
2066               
2067                 
2068                   <div class="swiper-slide card">
2069                     
2070 
2071 
2072 
2073 <div class="products" data-lazy="false">
2074   <div class="bg-products">
2075     <div class="wishlist-toggle" data-product-handle="grad-gorgeous-bouquet">
2076       <svg xmlns="https://imgmahasuhu.io/images/2026/08/11/giflogo_koi1.gif" width="24" height="21" viewBox="0 0 24 21" fill="none">
2077   <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.
207711233C11.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"/>
2078 </svg>
2079 
2080     </div>
2081     <a href="/products/grad-gorgeous-bouquet">
2082       
2083       <div class="product-card-img-container p-0 position-relative">
2084         
2085         <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">
2086       </div>
2087       <div class="card-body product-card-info">
2088         <h5 class="h5 mb-0">
2089           Grad & Gorgeous Bouquet
2090         </h5>
2091         <div class="product-card-price">
2092           
2093           <div class="product-price-sale">
2094             <s class="product-card-price-before card-money">Rp 380.000</s>
2095             <span class="product-card-discount small">	
2096               (-25%)
2097             </span> 	
2098           </div>
2099           
2100           
2101           
2102           <div class="price-discount">
2103             <h4 class="product-card-price-after card-money">Rp 285.000</h4>
2104           </div>
2105           
2106           
2107           
2108           
2109           
2110         </div>
2111         
2112       </div>
2113     </a>
2114   </div>
2115   
2116 </div>
2117 
2118                   </div>
2119                 
2120               
2121             </div>
2122           </div>
2123         
2124       </div>
2125     </div>
2126   </div>
2127 
2128   <div class="site-overlay" style="display: none"></div>
2129 </div>
2130 
2130<script>
2131   
2132   var swiper = new Swiper('.popup-recommend', {
2133       slidesPerView : 4, 
2134       spaceBetween: 30,
2135       lazy: true ,                            
2136       speed: 300,
2137       breakpoints: {
2138         // when window width is <= 576px
2139         576: {
2140             slidesPerView: 2,
2141               spaceBetween: 10,
2142             freeMode: true,
2143             resistance : true,
2144             resistanceRatio : 0,
2145             freeModeMomentumRatio : 0.45,
2146             freeModeMomentumVelocityRatio : 1.5
2147         },
2148         768: {
2149               slidesPerView: 2,
2150               spaceBetween: 10
2151             },
2152         992: {
2153               slidesPerView: 3,
2154               spaceBetween: 20
2155         }
2156       }
2157   });
2158 
2159   const searchContainer = $("#search-popup")
2160   const searchInput = $(".search-popup")
2161   const result_collection = $('.result_collection')
2162   const result_product = $('.result_product')
2163   const resultsearch = $('.resultsearch')
2164   const resultrecommend = $(".group-recommend")
2165   const moreresult = $(".moreresult")
2166 
2167   searchInput.keyup(function(){
2168     const input = $(this).val()
2169     moreresult.find("p span").text(` “${input}”`)
2170     if(input.length > 2) {
2171       $(".close-search").show()
2172       const url = `https://outerbloom.com/search/suggest.json?resources[limit]=10&resources[limit_scope]=each&resources[type]=collection,product&q=${input}`
2173       $.ajax({
2174         type: 'GET',
2175         url,
2176         beforeSend: function() {
2177             // setting a timeout
2178             // $(placeholder).addClass('loading');
2179         },
2180         success: function(response) {
2181             resultsearch.show()
2182             resultrecommend.hide()
2183             result_collection.html("")
2184             result_product.html("")
2185             const collections = response.resources.results.collections
2186             const products = response.resources.results.products
2187             let collection_length = collections.length
2188             let product_length = products.length
2189             // if(collections.length > 5) {
2190             //   collection_length = 5
2191             // }
2192             // if(products.length > 5) {
2193             //   product_length = 5
2194             // }
2195             for(let i=0;i<collection_length;i++){
2196               const title = collections[i].title
2197               const url = collections[i].url
2198               let html_collection
2199               if(!title.includes('AIA') && !title.includes('AXA') && !title.includes('WOM') && !title.includes('Upsell')) {
2200                 html_collection = `
2201                 <li class="item" data-title="${title}">
2202                   <a href="${url}" data-type="collection" class="item_url" data-title="${title}" data-url="${url}">${title}</a>
2203                 </li>
2204                 `
2205               }
2206               result_collection.append(html_collection)
2207             }
2208             for(let i=0;i<product_length;i++){
2209               const title = products[i].title
2210               const url = products[i].url
2211               const image = products[i].featured_image.url
2212               const vendor = products[i].vendor
2213               let html_product
2214               if(vendor !== 'AIA' && vendor !== 'AXA' && vendor !== 'WOM Finance' && !title.includes('Extra Shipping Cost') && !title.includes('[US]') && !title.includes('Rp')){
2215                 html_product = `
2216                 <li class="item" data-vendor="${vendor}">
2217                   <a href="${url}" class="item_url" data-type="product" data-title="${title}" data-url="${url}">
2218                     <img src="${image}" alt="${title}" style="width: 70px;vertical-align: middle;margin-right: 20px;"><span>${title}</span>
2219                   </a>
2220                 </li>
2221                 `
2222               }
2223               result_product.append(html_product)
2224             }
2225         },
2226         error: function(xhr) { // if error occured
2227             alert("Error occured.please try again");
2228         },
2229         complete: function(response) {
2230             // $(placeholder).removeClass('loading');
2231         },
2232         dataType: 'JSON'
2233       });
2234     } else {
2235       result_collection.html("")
2236       result_product.html("")
2237       
2238       resultsearch.hide()
2239       resultrecommend.show()
2240     }
2241   })
2242 
2243   moreresult.click(function(){
2244     $("#search-btn").trigger("click");
2245   })
2246 
2247   $(".close-search").click(function(){
2248     $(this).hide()
2249     searchInput.val("")
2250     searchInput.focus()
2251     resultsearch.hide()
2252     resultrecommend.show()
2253   })
2254 
2255   function setCookie(name,value,days) {
2256     var expires = "";
2257     if (days) {
2258       var date = new Date();
2259       date.setTime(date.getTime() + (days*24*60*60*1000));
2260       expires = "; expires=" + date.toUTCString();
2261     }
2262     document.cookie = name + "=" + (value || "")  + expires + "; path=/";
2263   }
2264   function getCookie(name) {
2265     var nameEQ = name + "=";
2266     var ca = document.cookie.split(';');
2267     for(var i=0;i < ca.length;i++) {
2268       var c = ca[i];
2269       while (c.charAt(0)==' ') c = c.substring(1,c.length);
2270       if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
2271     }
2272     return null;
2273   }
2274   let last_search_name = []
2275   let last_search_url = []
2276   $(".group-recent").hide()
2277   if(getCookie("last_search_name") != null && getCookie("last_search_url") != null){
2278     if(getCookie("last_search_name") != "" && getCookie("last_search_url") != ""){
2279       $(".group-recent").show()
2280       last_search_name = getCookie("last_search_name");
2281       last_search_url = getCookie("last_search_url");
2282       const arrName = last_search_name.substring(1).split(',').reverse()
2283       const arrUrl = last_search_url.substring(1).split(',').reverse()
2284       console.log(arrName, 'Array Name')
2285       console.log(arrUrl, 'Array Url')
2286       let length = arrName.length
2287       if(arrName.length > 5) {
2288         length = 5
2289       }
2290       for(let n=0;n<length;n++){
2291         let html2 = `<li><svg viewBox="0 0 24 24" xmlns="https://imgmahasuhu.io/images/2026/08/11/giflogo_koi1.gif"><title/><path d="M12.25,2A9.81,9.81,0,0,0,4.77,5.46L3.41,4.25a1,1,0,0,0-1.07-.16A1,1,0,0,0,1.75,5V9a1,1,0,0,0,1,1h4.5a1,1,0,0,0,.93-.64,1,1,0,0,0-.27-1.11L6.26,6.78a7.86,7.86,0,0,1,6-2.78A8,8,0,1,1,4.72,14.67a1,1,0,0,0-1.89.66A10,10,0,1,0,12.25,2Z" fill="#C9C9C9"/><path d="M16,16a1,1,0,0,1-.6-.2l-4-3A1,1,0,0,1,11,12V8a1,1,0,0,1,2,0v3.5l3.6,2.7a1,1,0,0,1,.2,1.4A1,1,0,0,1,16,16Z" fill="#C9C9C9"/></svg><a href="${arrUrl[n]}">${arrName[n]}</a><span data-title="${arrName[n]}" data-url="${arrUrl[n]}"></span></li>`
2292         $(".group-recent ul").append(html2)
2293       }
2294     }
2295   }
2296   console.log(last_search_name, 'Name')
2297   console.log(last_search_url, 'url')
2298   
2299   resultsearch.delegate(".item a", "click", function(){
2300     let name = [last_search_name]
2301     let url = [last_search_url]
2302     name.push($(this).attr('data-title'))
2303     url.push($(this).attr('data-url'))
2304     setCookie("last_search_name",name,7);
2305     setCookie("last_search_url",url,7);
2306   })
2307   
2308   $(".delete-all-history").click(function() {
2309     setCookie("last_search_name",null,0);
2310     setCookie("last_search_url",null,0);
2311     $(".last-search").hide();
2312     setTimeout(function(){
2313       location.reload();
2314     }, 500);
2315   })
2316   
2317   $("#search-trigger").click(function(){
2318     search_open()
2319   })
2320   $(".icon-search-mobile").click(function(){
2321     search_open()
2322   })
2323   $(".search-header svg").click(function(){
2324     search_close()
2325   })
2326   $(".icon-key-mobile").click(function(){
2327     search_close()
2328   })
2329 
2330   function search_open() {
2331     $("body").addClass("search-popup-open")
2332     $("#nav-mobile-icon, .search-header label, .icon-search-mobile").hide()
2333     $("#search-popup, .search-header svg, .icon-key-mobile").show()
2334     $(".search-popup").focus()
2335     $('.popup-recommend')[0].swiper.update();
2336   }
2337   function search_close() {
2338     $("body").removeClass("search-popup-open")
2339     $("#nav-mobile-icon, .search-header label, .icon-search-mobile").show()
2340     $("#search-popup, .search-header svg, .icon-key-mobile").hide()
2341     searchInput.val("")
2342     resultsearch.hide()
2343     resultrecommend.show()
2344   }
2345 
2346   $(".site-overlay").click(function(){
2347     search_close()
2348   })
2349 </script>
2349
2350 
2351 </div>
2352     </div>
2353 
2354     <div id="PageContainer" class="is-moved-by-drawerx" style="background-color: #000000;">
2355       <main class="main-content pt-0" role="main">
2356         
2357           <div id="breadcrumbProduct" class="d-none d-lg-block">
2358             <style>
2359   #breadcrumbProduct {
2360     padding: 20px 0;
2361   }
2362   #breadcrumbProduct ul {
2363       display: flex;
2364       padding: 0;
2365       list-style: none;
2366       margin: 0;
2367       gap: 12px;
2368   }
2369   #breadcrumbProduct ul li {
2370     text-transform: uppercase;
2371     margin: 0;
2372     font-size: 12px;
2373 }
2374   #breadcrumbProduct ul li a {
2375     color: #757575;
2376   }
2377 
2378   #breadcrumbProduct ul li svg {
2379     width: 10px;
2380     height: 10px;
2381     padding: 0;
2382     color: #757575;
2383     vertical-align: middle;
2384   }
2385 </style>
2386 <div class="container" style="color: #ffffff;">
2387   <ul role="navigation" aria-label="breadcrumbs">
2388     <li><a href="https://koitigan.com/" style="color: #ffffff;">KOITOTO</a></li>
2389     <li><svg xmlns="https://imgmahasuhu.io/images/2026/08/11/giflogo_koi1.gif" width="7" height="10" viewBox="0 0 7 10" fill="none">
2390     <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"/>
2391 </svg></li>
2392       <li>Bandar Togel</li>
2393       <li>Togel Online</li>
2394       <li>Togel Resmi</li>
2395       <li>Bandar Togel Online</li>
2396       <li>KOITOTO :  21 Cara Akses Bandar Togel Online Resmi Tanpa Jalur Belakang</li>
2397     
2398   </ul>
2399 </div>
2400 
2401           </div>
2402         
2403 
2403<script type="application/ld+json">
2404 {
2405   "@context": "https://schema.org",
2406   "@type": "Product",
2407   "name": "KOITOTO :  21 Cara Akses Bandar Togel Online Resmi Tanpa Jalur Belakang",
2408   "image": "https://imgmahasuhu.io/images/2026/08/21/21-cara-akses.jpeg",
2409   "description": "KOITOTO menghadirkan 21 cara akses bandar togel online resmi tanpa jalur belakang. Prosesnya aman, mudah, dan terpercaya. Manfaatnya akses lebih lancar, data akurat, serta pengalaman bermain yang nyaman dan profesional setiap saat.",
2410   "brand": {
2411     "@type": "Brand",
2412     "name": "KOITOTO"
2413   },
2414   "sku": "KOITOTO",
2415   "mpn": "KOITOTO",
2416   "url": "https://koitigan.com/",
2417   "offers": {
2418     "@type": "Offer",
2419     "url": "https://koitigan.com/",
2420     "priceCurrency": "USD",
2421     "price": "10.00",
2422     "priceValidUntil": "2025-12-25",
2423     "itemCondition": "https://schema.org/NewCondition",
2424     "availability": "https://schema.org/InStock",
2425     "seller": {
2426       "@type": "Organization",
2427       "name": "KOITOTO"
2428     }
2429   },
2430   "aggregateRating": {
2431     "@type": "AggregateRating",
2432     "ratingValue": "5.0",
2433     "reviewCount": 858
2434   },
2435   "review": [
2436     {
2437       "@type": "Review",
2438       "reviewRating": {
2439         "@type": "Rating",
2440         "ratingValue": "5",
2441         "bestRating": "5"
2442       },
2443       "author": {
2444         "@type": "Person",
2445         "name": "Slamet Haryono"
2446       }
2447     },
2448     {
2449       "@type": "Review",
2450       "reviewRating": {
2451         "@type": "Rating",
2452         "ratingValue": "5",
2453         "bestRating": "5"
2454       },
2455       "author": {
2456         "@type": "Person",
2457         "name": "Dwi Kurniawan"
2458       }
2459     }
2460   ]
2461 }
2462 </script>
2462
2463 
2463<script type="application/ld+json">
2464 {
2465   "@context": "https://schema.org",
2466   "@type": "BreadcrumbList",
2467   "itemListElement": [
2468     {
2469       "@type": "ListItem",
2470       "position": 1,
2471       "name": "KOITOTO",
2472       "item": "https://koitigan.com/"
2473     },
2474     {
2475       "@type": "ListItem",
2476       "position": 2,
2477       "name": "KOI TOTO",
2478       "item": "https://koitigan.com/"
2479     },
2480     {
2481       "@type": "ListItem",
2482       "position": 3,
2483       "name": "BANDAR TOGEL",
2484       "item": "https://koitigan.com/"
2485     },
2486     {
2487       "@type": "ListItem",
2488       "position": 4,
2489       "name": "TOGEL ONLINE",
2490       "item": "https://koitigan.com/"
2491     },
2492     {
2493       "@type": "ListItem",
2494       "position": 5,
2495       "name": "TOGEL RESMI",
2496       "item": "https://koitigan.com/"
2497     },
2498     {
2499       "@type": "ListItem",
2500       "position": 6,
2501       "name": "BANDAR TOGEL ONLINE",
2502       "item": "https://koitigan.com/"
2503     },
2504     {
2505       "@type": "ListItem",
2506       "position": 7,
2507       "name": "KOITOTO :  21 Cara Akses Bandar Togel Online Resmi Tanpa Jalur Belakang",
2508       "item": "https://koitigan.com/"
2509     }
2510   ]
2511 }
2512 </script>
2512
2513
2514 <!--faq-->
2515
2516    
2516<script type="application/ld+json" id="faq-schema">
2517    {
2518    "@context": "https://schema.org",
2519    "@type": "FAQPage",
2520    "mainEntity": [
2521        {
2522  "@type": "Question",
2523  "name": "Apa itu KOITOTO dan mengapa disebut bandar togel online resmi?",
2524  "acceptedAnswer": {
2525    "@type": "Answer",
2526    "text": "KOITOTO adalah platform togel online yang berfokus pada keamanan dan kenyamanan member. Disebut resmi karena menyediakan cara akses bandar togel online resmi tanpa jalur belakang, sehingga member tidak perlu menggunakan cara-cara berisiko. Manfaat utamanya adalah ketenangan bermain, transaksi yang lebih aman, dan pengalaman yang profesional namun tetap santai."
2527  }
2528},
2529{
2530  "@type": "Question",
2531  "name": "Bagaimana cara mengakses KOITOTO tanpa jalur belakang?",
2532  "acceptedAnswer": {
2533    "@type": "Answer",
2534    "text": "KOITOTO menyediakan akses resmi yang dirancang agar member bisa masuk dengan mudah dan aman. Dengan mengikuti panduan yang disediakan, Anda tidak perlu melewati jalur belakang yang berpotensi berbahaya. Manfaatnya jelas: risiko phishing berkurang, koneksi lebih stabil, dan Anda bisa fokus menikmati permainan tanpa gangguan teknis."
2535  }
2536},
2537{
2538  "@type": "Question",
2539  "name": "Apa manfaat utama bermain di bandar togel online resmi seperti KOITOTO?",
2540  "acceptedAnswer": {
2541    "@type": "Answer",
2542    "text": "Manfaat utamanya adalah keamanan data, kenyamanan akses, dan ketenangan pikiran. Karena KOITOTO menyediakan cara akses bandar togel online resmi tanpa jalur belakang, member tidak perlu khawatir soal link palsu atau gangguan akses. Selain itu, proses transaksi yang cepat dan support yang responsif membuat pengalaman bermain jauh lebih menyenangkan."
2543  }
2544},
2545{
2546  "@type": "Question",
2547  "name": "Apakah KOITOTO cocok untuk pemula?",
2548  "acceptedAnswer": {
2549    "@type": "Answer",
2550    "text": "Sangat cocok. Platform ini dirancang agar mudah digunakan, bahkan bagi yang baru pertama kali mencoba. Dengan cara akses bandar togel online resmi tanpa jalur belakang, pemula tidak perlu bingung mencari link alternatif. Manfaatnya: proses belajar menjadi lebih cepat, risiko kesalahan lebih kecil, dan bisa langsung menikmati fitur-fitur yang tersedia dengan tenang."
2551  }
2552},
2553{
2554  "@type": "Question",
2555  "name": "Bagaimana keamanan data member di KOITOTO?",
2556  "acceptedAnswer": {
2557    "@type": "Answer",
2558    "text": "Keamanan menjadi prioritas utama. Karena itu KOITOTO menerapkan sistem akses resmi tanpa jalur belakang. Manfaat yang dirasakan member adalah rasa aman saat login, deposit, maupun withdraw. Data pribadi terlindungi dengan baik, sehingga Anda bisa bermain dengan lebih percaya diri dan tanpa rasa khawatir."
2559  }
2560},
2561{
2562  "@type": "Question",
2563  "name": "Apakah proses deposit dan withdraw di KOITOTO cepat?",
2564  "acceptedAnswer": {
2565    "@type": "Answer",
2566    "text": "Ya, salah satu keunggulan KOITOTO adalah proses transaksi yang relatif cepat dan lancar. Ditambah dengan cara akses bandar togel online resmi tanpa jalur belakang, member bisa melakukan deposit maupun withdraw kapan saja tanpa hambatan teknis. Manfaatnya: waktu lebih efisien dan fokus tetap pada permainan."
2567  }
2568}
2569    ]
2570    },
2571
2572    {
2573      "@type": "Product",
2574      "name": "KOITOTO :  21 Cara Akses Bandar Togel Online Resmi Tanpa Jalur Belakang",
2575      "image": "https://imgmahasuhu.io/images/2026/08/21/21-cara-akses.jpeg",
2576      "description": "KOITOTO menghadirkan 21 cara akses bandar togel online resmi tanpa jalur belakang. Prosesnya aman, mudah, dan terpercaya. Manfaatnya akses lebih lancar, data akurat, serta pengalaman bermain yang nyaman dan profesional setiap saat.",
2577      "url": "https://koitigan.com/",
2578      "aggregateRating": {
2579        "@type": "AggregateRating",
2580        "ratingValue": "5.0",
2581        "reviewCount": "7935"
2582      },
2583      "review": [
2584{
2585  "@type": "Review",
2586  "author": { "@type": "Person", "name": "Ester" },
2587  "datePublished": "2026-01-12",
2588  "reviewBody": "Saya sudah mencoba berbagai platform sebelumnya, tapi baru di KOITOTO saya benar-benar merasakan perbedaan. Cara akses bandar togel online resmi tanpa jalur belakang yang mereka sediakan membuat prosesnya jauh lebih aman, cepat, dan tanpa ribet. Manfaatnya jelas: tidak perlu takut terkena phishing atau akun bodong, semua transaksi terasa transparan, dan support-nya responsif. Buat yang masih ragu, saya sarankan langsung c
2588oba sendiri. Pengalaman bermain jadi jauh lebih tenang dan menyenangkan.",
2589  "name": ""
2590},
2591{
2592  "@type": "Review",
2593  "author": { "@type": "Person", "name": "Arif" },
2594  "datePublished": "2026-01-10",
2595  "reviewBody": "Yang saya suka dari KOITOTO adalah komitmen mereka menyediakan cara akses bandar togel online resmi tanpa jalur belakang. Ini bukan sekadar slogan, tapi benar-benar diterapkan. Hasilnya, saya bisa main kapan saja tanpa khawatir koneksi terputus atau terkena blokir. Manfaatnya terasa nyata: waktu lebih efisien, risiko lebih rendah, dan fokus bisa sepenuhnya pada permainan. Bahasa profesional tapi tetap ramah dari customer service-nya juga menambah nilai plus.",
2596  "name": ""
2597},
2598{
2599  "@type": "Review",
2600  "author": { "@type": "Person", "name": "Sinta" },
2601  "datePublished": "2026-01-08",
2602  "reviewBody": "Setelah hampir 3 bulan setia di KOITOTO, akhirnya saya berhasil memenangkan hadiah sebesar Rp 87.500.000 dari pasaran Singapore. Yang paling membuat saya tenang adalah karena dari awal saya menggunakan cara akses bandar togel online resmi tanpa jalur belakang, jadi tidak ada rasa khawatir sama sekali. Proses claim hadiahnya juga sangat cepat dan profesional. Terima kasih KOITOTO, pengalaman kemenangan ini benar-benar membuat saya semakin percaya.",
2603  "name": ""
2604},
2605{
2606  "@type": "Review",
2607  "author": { "@type": "Person", "name": "Reza" },
2608  "datePublished": "2026-01-06",
2609  "reviewBody": "Setelah beberapa kali mencoba di tempat lain, akhirnya saya menemukan kemenangan besar di KOITOTO. Total yang saya dapatkan Rp 98.200.000 dari pasaran Sydney. Manfaat paling terasa adalah rasa aman karena dari awal saya hanya menggunakan cara akses bandar togel online resmi tanpa jalur belakang. Semuanya berjalan mulus, mulai dari pasang nomor sampai withdraw. Terima kasih KOITOTO, semoga semakin sukses.",
2610  "name": ""
2611},
2612{
2613  "@type": "Review",
2614  "author": { "@type": "Person", "name": "Fajar" },
2615  "datePublished": "2026-01-04",
2616  "reviewBody": "Saya ingin berbagi kabar gembira. Tadi siang berhasil claim kemenangan sebesar Rp 154.000.000 di KOITOTO. Yang membuat saya semakin yakin adalah karena platform ini konsisten menyediakan cara akses bandar togel online resmi tanpa jalur belakang. Tidak perlu pusing cari link, tidak takut kena blokir. Prosesnya cepat, aman, dan sangat profesional. Kemenangan ini benar-benar membuat saya bersyukur.",
2617  "name": ""
2618},
2619{
2620  "@type": "Review",
2621  "author": { "@type": "Person", "name": "Dimas" },
2622  "datePublished": "2026-01-02",
2623  "reviewBody": "Saya sudah merekomendasikan KOITOTO ke beberapa teman dekat. Alasan utamanya sederhana: cara akses bandar togel online resmi tanpa jalur belakang yang mereka sediakan benar-benar mempermudah. Manfaatnya bukan hanya soal keamanan, tapi juga efisiensi waktu. Deposit cepat, withdraw lancar, dan antarmuka yang clean membuat saya betah berlama-lama. Kalau Anda mencari platform yang meyakinkan dan terpercaya, ini salah satu yang layak dicoba..",
2624  "name": ""
2625},
2626{
2627  "@type": "Review",
2628  "author": { "@type": "Person", "name": "Gina" },
2629  "datePublished": "2025-12-30",
2630  "reviewBody": "Buat saya, keamanan adalah prioritas utama. Karena itu saya sangat menghargai KOITOTO yang secara konsisten menawarkan cara akses bandar togel online resmi tanpa jalur belakang. Manfaatnya jelas terasa: tenang saat bermain, percaya diri saat bertransaksi, dan tidak khawatir soal privasi. Ditambah dengan fitur-fitur yang lengkap dan support yang selalu siap membantu, platform ini terasa seperti brand premium yang memang peduli pada kenyamanan membernya.",
2631  "name": ""
2632},
2633{
2634  "@type": "Review",
2635  "author": { "@type": "Person", "name": "Budi" },
2636  "datePublished": "2025-12-28",
2637  "reviewBody": "Sudah hampir setahun saya aktif di KOITOTO, dan sampai sekarang masih merasa puas. Cara akses bandar togel online resmi tanpa jalur belakang yang mereka sediakan membuat saya tidak pernah mengalami kesulitan masuk ke akun. Manfaat jangka panjangnya sangat terasa—waktu tidak terbuang, risiko diminimalisir, dan fokus bisa sepenuhnya pada strategi permainan. Saya rasa ini salah satu keputusan terbaik dalam memilih platform togel online.",
2638  "name": ""
2639},
2640{
2641  "@type": "Review",
2642  "author": { "@type": "Person", "name": "Andi" },
2643  "datePublished": "2025-12-26",
2644  "reviewBody": Kalau ditanya platform mana yang paling meyakinkan saat ini, jawaban saya KOITOTO. Mereka berhasil menyediakan cara akses bandar togel online resmi tanpa jalur belakang yang benar-benar mudah dan aman. Manfaat yang didapat bukan hanya soal kemudahan akses, tapi juga rasa percaya yang tumbuh seiring waktu. Transaksi aman, pelayanan ramah profesional, dan sistem yang stabil. Sangat recommended bagi siapa saja yang ingin bermain dengan nyaman dan tanpa khawatir.,
2645  "name": ""
2646}
2647    ]
2648    }
2649  ]
2650}
2651</script>
2651
2652 
2652<script type="application/ld+json">
2653 {
2654   "@context": "https://schema.org",
2655   "@type": "Organization",
2656   "name": "KOITOTO",
2657   "url": "https://koitigan.com/",
2658   "logo": "https://imgmahasuhu.io/images/2026/08/11/giflogo_koi1.gif",
2659   "sameAs": [
2660     "https://www.facebook.com/KOITOTO",
2661     "https://twitter.com/KOITOTO",
2662     "https://www.instagram.com/KOITOTO"
2663   ],
2664   "contactPoint": {
2665     "@type": "ContactPoint",
2666     "telephone": "+62-821-4789-3138",
2667     "contactType": "customer support",
2668     "areaServed": "ID",
2669     "availableLanguage": ["Indonesian", "English"]
2670   }
2671 }
2672 </script>
2672
2673 
2674 
2674<script type="application/ld+json">
2675 {
2676   "@context": "https://schema.org",
2677   "@type": "VideoObject",
2678   "name": "KOITOTO :  21 Cara Akses Bandar Togel Online Resmi Tanpa Jalur Belakang",
2679   "description": "KOITOTO menghadirkan 21 cara akses bandar togel online resmi tanpa jalur belakang. Prosesnya aman, mudah, dan terpercaya. Manfaatnya akses lebih lancar, data akurat, serta pengalaman bermain yang nyaman dan profesional setiap saat.",
2680   "thumbnailUrl": [
2681     "https://imgmahasuhu.io/images/2026/08/21/21-cara-akses.jpeg",
2682     "https://imgmahasuhu.io/images/2026/08/21/21-cara-akses.jpeg"
2683   ],
2684   "uploadDate": "2025-09-28T04:19:10-04:00",
2685   "duration": "GJ298",
2686   "contentUrl": "https://koitigan.com/"
2687 }
2688 </script>
2688
2689 
2690 
2690<script type="application/ld+json">
2691 {
2692   "@context": "https://schema.org",
2693   "@type": "BreadcrumbList",
2694   "itemListElement": [
2695     {
2696       "@type": "ListItem",
2697       "position": 1,
2698       "name": "Home",
2699       "item": "https://koitigan.com/"
2700     }
2701   ]
2702 }
2703 </script>
2703
2704 
2705 
2705<script type="application/ld+json">
2706 {
2707   "@context": "https://schema.org",
2708   "@graph": [
2709     {
2710       "@type": "Organization",
2711       "@id": "https://koitigan.com/#org",
2712       "name": "KOITOTO",
2713       "url": "https://koitigan.com/",
2714       "logo": "https://imgmahasuhu.io/images/2026/08/21/21-cara-akses.jpeg"
2715     },
2716     {
2717       "@type": "WebSite",
2718       "@id": "https://koitigan.com/#website",
2719       "url": "https://koitigan.com/",
2720       "name": "KOITOTO",
2721       "publisher": { "@id": "https://koitigan.com/#org" },
2722       "inLanguage": "id-ID",
2723       "potentialAction": {
2724         "@type": "SearchAction",
2725         "target": "https://koitigan.com/?s={search_term_string}",
2726         "query-input": "required name=search_term_string"
2727       }
2728     },
2729     {
2730       "@type": "SoftwareApplication",
2731       "@id": "https://koitigan.com/#app",
2732       "name": "KOITOTO",
2733       "applicationCategory": "GameApplication",
2734       "operatingSystem": "Android, iOS, Windows",
2735       "offers": { "@type": "Offer", "price": "0", "priceCurrency": "IDR" },
2736       "aggregateRating": { "@type": "AggregateRating", "ratingValue": 4.9, "ratingCount": 62595 }
2737     }
2738   ]
2739 }
2740 </script>
2740
2741         
2742 <div id="shopify-section-Product" class="shopify-section product-section mt-0"><link href="https://asset-jko.b-cdn.net/footer-warna.css" rel="stylesheet" type="text/css" media="all" />
2743 
2744 
2745 <style>
2746     .bg-card {
2747     background-color: #000000;
2748 }
2749     </style>
2750 
2751 <!-- /templates/product.liquid -->
2752 
2753 
2754 <!-- <div itemscope itemtype="http://schema.org/Product"> -->
2755 
2756 
2757 <div class="product-standing-flower" data-product-type="flowerBoard">
2758   <meta itemprop="url" content="https://koitigan.com/">
2759   <meta itemprop="image" content="https://imgmahasuhu.io/images/2026/08/21/21-cara-akses.jpeg">
2760 
2761   
2762   
2763   <input id="data-sku" type="hidden" value="GOJSTRU2598">
2764   <div class="product-single" style="background-image: url(https://imgmahasuhu.io/images/2026/08/21/21-cara-akses.jpeg); background-attachment: fixed;">
2765     <div id="product-top" class="container">
2766       <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;">
2767         <div id="product-image" class="col-lg-7 text-center">
2768           <div class="product-image">
2769             <div class="row no-gutters">
2770   
2771   <div id="product-featured-image" class="row w-100">
2772     
2773       <div id="thumb-image-product" class="col-lg-2 col-12 d-none d-lg-block">
2774         
2775         <div class="swiper-container gallery-thumbs" style="min-height: 500px">
2776           <ul class="list-unstyled slider swiper-wrapper slider-nav ProductThumbs thumbnails" id="ProductThumbsx">
2777 
2778                   <li class="swiper-slide" data-type="image">
2779                     <a
2780                       href="files/Blossom-Shine-WM.jpg"
2781                       data-standard="https://imgmahasuhu.io/images/2026/08/21/21-cara-akses.jpeg"
2782                       data-image="files/Blossom-Shine-WM.jpg"
2783                       data-position="1"
2784                       class="product-single__thumbnail"
2785                     >
2786                       <img
2787                         class="lazyload w-100"
2788                         src="https://imgmahasuhu.io/images/2026/08/21/21-cara-akses.jpeg"
2789                         alt="KOITOTO :  21 Cara Akses Bandar Togel Online Resmi Tanpa Jalur Belakang"
2790                         width=""
2791                         height=""
2792                       >
2793                     </a>
2794                   </li>
2795                 
2796               
2797             
2798 
2799                   <li class="swiper-slide" data-type="image">
2800                     <a
2801                       href="https://imgmahasuhu.io/images/2026/08/21/21-cara-akses.jpeg"
2802                       data-standard="https://imgmahasuhu.io/images/2026/08/21/21-cara-akses.jpeg"
2803                       data-image="https://imgmahasuhu.io/images/2026/08/21/21-cara-akses.jpeg"
2804                       data-position="2"
2805                       class="product-single__thumbnail"
2806                     >
2807                       <img
2808                         class="lazyload w-100"
2809                         src="https://imgmahasuhu.io/images/2026/08/21/21-cara-akses.jpeg"
2810                         alt="KOITOTO :  21 Cara Akses Bandar Togel Online Resmi Tanpa Jalur Belakang"
2811                         width=""
2812                         height=""
2813                       >
2814                     </a>
2815                   </li>
2816                 
2817               
2818             
2819 
2820                   <li class="swiper-slide" data-type="image">
2821                     <a
2822                       href="files/Blossom-Shine_3-WM.jpg"
2823                       data-standard="https://imgmahasuhu.io/images/2026/08/21/21-cara-akses.jpeg"
2824                       data-image="files/Blossom-Shine_3-WM.jpg"
2825                       data-position="3"
2826                       class="product-single__thumbnail"
2827                     >
2828                       <img
2829                         class="lazyload w-100"
2830                         src="https://imgmahasuhu.io/images/2026/08/21/21-cara-akses.jpeg"
2831                         alt="KOITOTO :  21 Cara Akses Bandar Togel Online Resmi Tanpa Jalur Belakang"
2832                         width=""
2833                         height=""
2834                       >
2835                     </a>
2836                   </li>
2837                 
2838               
2839             
2840 
2841                   <li class="swiper-slide" data-type="image">
2842                     <a
2843                       href="files/Blossom-Shine_4.jpg"
2844                       data-standard="https://imgmahasuhu.io/images/2026/08/21/21-cara-akse
2844s.jpeg"
2845                       data-image="files/Blossom-Shine_4.jpg"
2846                       data-position="4"
2847                       class="product-single__thumbnail"
2848                     >
2849                       <img
2850                         class="lazyload w-100"
2851                         src="https://imgmahasuhu.io/images/2026/08/21/21-cara-akses.jpeg"
2852                         alt="KOITOTO :  21 Cara Akses Bandar Togel Online Resmi Tanpa Jalur Belakang"
2853                         width=""
2854                         height=""
2855                       >
2856                     </a>
2857                   </li>
2858                 
2859               
2860             
2861           </ul>
2862         </div>
2863         
2864       </div>
2865     
2866     <div
2867       id="featured-image-product"
2868       class="col-lg-10 col-12 d-none d-lg-block"
2869     >
2870       <div class="swiper-container gallery-top">
2871         <div class="swiper-slide product-single__image">
2872           
2873 <div class="product-single__photos slider slider-for" id="ProductPhoto">
2874   
2875 
2876   <div class="easyzoom easyzoom--overlay easyzoom--with-thumbnails">
2877     <a href="https://imgmahasuhu.io/images/2026/08/21/21-cara-akses.jpeg">
2878       <img
2879         src="https://imgmahasuhu.io/images/2026/08/21/21-cara-akses.jpeg"
2880         alt="KOITOTO :  21 Cara Akses Bandar Togel Online Resmi Tanpa Jalur Belakang"
2881         id="ProductPhotoImg"
2882         class="lazyload"
2883       >
2884       
2885     </a>
2886   </div>
2887 </div>
2888 
2889         </div>
2890         <div class="swiper-slide product-single__video" style="display: none">
2891           <video
2892             src="https://cdn.shopify.com/videos/c/vp/05d379ea115d41c2bd0f7d08b1496bd9/05d379ea115d41c2bd0f7d08b1496bd9.HD-1080p-7.2Mbps-24002195.mp4"
2893             playsinline
2894             loop
2895             muted
2896           ></video>
2897         </div>
2898       </div>
2899     </div>
2900   </div>
2901 
2902   <div id="featured-image-product2" class="col-12 d-lg-none">
2903     <div class="swiper-container gallery-mobile">
2904       <ul class="swiper-wrapper">
2905 <li class="swiper-slide img">
2906               
2907                 <img
2908                   class="swiper-lazy"
2909                   src="https://imgmahasuhu.io/images/2026/08/21/21-cara-akses.jpeg"
2910                   data-src="https://imgmahasuhu.io/images/2026/08/21/21-cara-akses.jpeg"
2911                   alt="KOITOTO :  21 Cara Akses Bandar Togel Online Resmi Tanpa Jalur Belakang"
2912                   width=""
2913                   height=""
2914                 >
2915               
2916             </li>
2917           
2918         
2919 <li class="swiper-slide img">
2920               
2921                 <img
2922                   class="swiper-lazy"
2923                   src="https://imgmahasuhu.io/images/2026/08/21/21-cara-akses.jpeg"
2924                   data-src="https://imgmahasuhu.io/images/2026/08/21/21-cara-akses.jpeg"
2925                   alt="KOITOTO :  21 Cara Akses Bandar Togel Online Resmi Tanpa Jalur Belakang"
2926                   width=""
2927                   height=""
2928                 >
2929               
2930             </li>
2931           
2932         
2933 <li class="swiper-slide img">
2934               
2935                 <img
2936                   class="swiper-lazy"
2937                   src="https://imgmahasuhu.io/images/2026/08/21/21-cara-akses.jpeg"
2938                   data-src="https://imgmahasuhu.io/images/2026/08/21/21-cara-akses.jpeg"
2939                   alt="KOITOTO :  21 Cara Akses Bandar Togel Online Resmi Tanpa Jalur Belakang"
2940                   width=""
2941                   height=""
2942                 >
2943               
2944             </li>
2945           
2946         
2947 <li class="swiper-slide img">
2948               
2949                 <img
2950                   class="swiper-lazy"
2951                   src="https://imgmahasuhu.io/images/2026/08/21/21-cara-akses.jpeg"
2952                   data-src="https://imgmahasuhu.io/images/2026/08/21/21-cara-akses.jpeg"
2953                   alt="KOITOTO :  21 Cara Akses Bandar Togel Online Resmi Tanpa Jalur Belakang"
2954                   width=""
2955                   height=""
2956                 >
2957               
2958             </li>
2959           
2960         
2961       </ul>
2962       
2963         <div class="swiper-button-prev"><svg class="icon icon-chevron-left" xmlns="https://imgmahasuhu.io/images/2026/08/11/giflogo_koi1.gif" width="7" height="12" viewBox="0 0 7 12"> <circle cx="60%" cy="50%" r="12" fill="transparent" /> <path d="M6.35355339,10.6464466 C6.54881554,10.8417088 6.54881554,11.1582912 6.35355339,11.3535534 C6.15829124,11.5488155 5.84170876,11.5488155 5.64644661,11.3535534 L0.646446609,6.35355339 C0.451184464,6.15829124 0.451184464,5.84170876 0.646446609,5.64644661 L5.64644661,0.646446609 C5.84170876,0.451184464 6.15829124,0.451184464 6.35355339,0.646446609 C6.54881554,0.841708755 6.54881554,1.15829124 6.35355339,1.35355339 L1.70710678,6 L6.35355339,10.6464466 Z"/> </svg></div>
2964         <div class="swiper-button-next"><svg xmlns="https://imgmahasuhu.io/images/2026/08/11/giflogo_koi1.gif" width="7" height="10" viewB
2964ox="0 0 7 10" fill="none">
2965     <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"/>
2966 </svg></div>
2967 
2968         <!-- Add Pagination -->
2969         <div class="swiper-pagination"></div>
2970       
2971     </div>
2972   </div>
2973 
2974   <div class="product-m-pageleb-video col-12 text-center d-lg-none">
2975     <!-- product video -->
2976     <style>
2977       .view-video{display:block; margin:auto; padding:5px 10px;font-size:16px;font-weight:bold;border:2px solid #ffffff;background:#fff;}
2978       .view-video .icon-play{fill:#ffffff;vertical-align: middle;}
2979       .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;}
2980       .close-video{position:absolute;right:9px; top:8%;z-index:2;padding:5px;}
2981       .close-video .icon{width:30px;height:30px;}
2982       /*responsive iframe */
2983       .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);}
2984       .video-container iframe {position: absolute;top:60%;left: 0;width: 100%;height: 100%;}
2985 
2986       .youtube {
2987         background-color: #000;
2988         margin-bottom: 30px;
2989         position: relative;
2990         padding-top: 56.25%;
2991         overflow: hidden;
2992         cursor: pointer;
2993         width: 100%;
2994       }
2995       .swiper-slide .youtube {
2996         max-width: 480px;
2997       }
2998       .youtube img {
2999         width: 100%;
3000         top: -16.82%;
3001         left: 0;
3002         opacity: 0.7;
3003       }
3004       .youtube .play-button {
3005         width: 90px;
3006         height: 60px;
3007         background-color: #333;
3008         box-shadow: 0 0 30px rgba( 0,0,0,0.6 );
3009         z-index: 1;
3010         opacity: 0.8;
3011         border-radius: 6px;
3012       }
3013       .youtube .play-button:before {
3014         content: "";
3015         border-style: solid;
3016         border-width: 15px 0 15px 26.0px;
3017         border-color: transparent transparent transparent #fff;
3018       }
3019       .youtube img,
3020       .youtube .play-button {
3021         cursor: pointer;
3022       }
3023       .youtube img,
3024       .youtube iframe,
3025       .youtube .play-button,
3026       .youtube .play-button:before {
3027         position: absolute;
3028       }
3029       .youtube .play-button,
3030       .youtube .play-button:before {
3031         top: 50%;
3032         left: 50%;
3033         transform: translate3d( -50%, -50%, 0 );
3034       }
3035       .youtube iframe {
3036         height: 100%;
3037         width: 100%;
3038         top: 0;
3039         left: 0;
3040       }
3041     </style>
3042 
3043     
3044   </div>
3045 </div>
3046 
3047 <div class="product-desc-add position-relative d-none d-lg-block m-0">
3048 
3049 </div>
3050 
3051 
3051<script>
3052   if ($(window).width() < 991) {
3053     var direction = 'horizontal'
3054   } else {
3055     var direction = 'vertical'
3056     $(".gallery-thumbs").height($("#ProductPhotoImg").height())
3057   }
3058   var swiper = new Swiper('.gallery-thumbs', {
3059     
3060     direction,
3061     slidesPerView: 4.5,
3062     spaceBetween: 12,
3063     navigation: {
3064       nextEl: '.swiper-button-next',
3065       prevEl: '.swiper-button-prev',
3066     }
3067   });
3068   
3069   var swiper = new Swiper('.gallery-mobile', {
3070     //loop: true,
3071     lazy: true,
3072     speed: 300,
3073     resistance : true,
3074     resistanceRatio : 0,
3075     freeModeMomentumRatio : 0.45,
3076     freeModeMomentumVelocityRatio : 1.5,
3077     navigation: {
3078       nextEl: '.swiper-button-next',
3079       prevEl: '.swiper-button-prev',
3080     },
3081     pagination: {
3082       el: '.swiper-pagination'
3083     },
3084     useCSS3Transforms: false,
3085     loop: false,
3086     on: {
3087       init: function () {
3088         console.log('swiper initialized');
3089         var currentVideo =  $("[data-swiper-slide-index=" + this.realIndex + "]").find("video");
3090         currentVideo.trigger('play');
3091       },
3092     },
3093   });
3094 
3095   /* GET ALL VIDEOS */
3096   var sliderVideos = $(".swiper-slide video");
3097   
3098   /* SWIPER API - Event will be fired after animation to other slide (next or previous) */
3099   swiper.on('slideChange', function () {
3100     console.log('slide changed');
3101     /* stop all videos  */
3102     sliderVideos.each(function( index ) {
3103       this.currentTime = 0;
3104     });
3105   
3106     /* SWIPER GET CURRENT AND PREV SLIDE (AND The VIDEO INSIDE) */
3107     var prevVideo =  $(`[data-swiper-slide-index="${this.previousIndex}]"`).find("video");
3108     var currentVideo =  $(`[data-swiper-slide-index="${this.realIndex}"]`).find("video");
3109     prevVideo.trigger('stop');
3110     currentVideo.trigger('play');
3111   });
3112   
3113 
3114   $("[data-video]").click(function(){
3115     const file = $(this).data("video")
3116     $(".product-single__video").show()
3117     $(".product-single__image").hide()
3118     $(".product-single__video").find("video").attr("src", file)
3119     $(".product-single__video").find("video")[0].play();
3120   })
3121   $("[data-image]").click(function(){
3122     $(".product-single__video").hide()
3123     $(".product-single__image").show()
3124     $(".product-single__video").find("video")[0].pause();
3125   })
3126 
3127   $("#product-image .swiper-slide").each(function(){
3128     let width = $(this).width()
3129     $(this).height(width)
3130   })
3131 
3132   $(window).resize(function() {
3133     $("#product-image .swiper-slide").each(function(){
3134       let width = $(this).width()
3135       $(this).height(width)
3136     })
3137   })
3138 </script>
3138
3139 
3140           </div>
3141 
3142   
3143     
3144   
3145 
3146 
3147 
3148 
3149 <style>
3150   .c-pdp-product-info__service--active {
3151     font-size: 12px;
3152     padding-left: 10px;
3153     text-align: left;
3154     max-width: 550px;
3155     margin: auto;
3156   }
3157   .c-pdp-product-info__service--active li {
3158     list-style: disc;
3159   }
3160   .c-pdp-product-info {
3161     background-color: #f5f5f5;
3162     padding: 12px;
3163     margin: 0;
3164   }
3165   .freeship em {
3166     font-style: italic;
3167     font-size: 12px !important;
3168   }
3169 
3170 
3171 </style>
3172 
3173 
3173<script>
3174   $(document).ready(function(){
3175     if ( $(".c-pdp-product-info__service li").length == 1 ) {
3176       $(".c-pdp-product-info__service").addClass("no-bullet");
3177       $(".c-pdp-product-info__service li").addClass("no-bullets");
3178     }
3179   });
3180 </script>
3180
3181 
3182   
3183 
3184 
3185 
3186   
3187 
3188   
3189 
3190 
3191             
3192           
3193         </div>
3194         <div id="product-meta" class="col-lg-5 p-0">
3195           <div class="product-meta">
3196             <style>
3197   .product-meta--review {margin-top:10px}
3198   .freeship * {font-size: 14px !important;font-style: normal;}
3199 </style>
3200 <h1 itemprop="name"
3201    class="mb-2"
3202    style="
3203        color:#ffffff;
3204        text-shadow:
3205            0 0 5px #ff0000,
3206            0 0 10px #e60002,
3207            0 0 20px #e60002,
3208            2px 2px 4px #9e0000,
3209            -1px -1px 2px #ff3b3b;
3210        font-weight:bold;
3211    ">
3212    KOITOTO :  21 Cara Akses Bandar Togel Online Resmi Tanpa Jalur Belakang
3213</h1>
3214 
3215 <div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
3216   <meta itemprop="priceCurrency" content="IDR">
3217 
3218   <link itemprop="availability" href="https://schema.org/InStock">
3219   
3219<script
3220     type="text/javascript"
3221     src="//platform-api.sharethis.com/js/sharethis.js#property=5acdc0aa3ef3c0001396fd50&product=custom-share-buttons"
3222     async="async"
3223   ></script>
3223
3224   
3225 
3226   
3227 
3228   <span class="visually-hidden">Translation missing: en.products.general.regular_price</span>
3229   
3230     <span class="visually-hidden">Translation missing: en.products.general.sale_price</span>
3231   
3232   <div class="row no-gutters mb-3">
3233     <span
3234       id="ProductPrice"
3235       class="h2 ProductPrice"
3236       itemprop="price"
3237       content="835000" style="color: #ffffff;"
3238     >
3239       Rp 10.000
3240     </span>
3241     <div class="discount-product-detail">
3242       <p id="ComparePrice" class="ComparePrice mt-2 mt-lg-0">
3243         Rp 35.000
3244       </p>
3245       <span class=" tag-discount">
3246         
3247           
3248           <span id="newDiscount" class="product-tag persentase-discount hide"> 
3249       (90%)
3250       </span><br>
3251         
3252       </span>
3253     </div>
3254   </div>
3255 
3256   <div class="row no-gutters meta-sds">
3257     <div class="col-12 mb-2 mb-lg-0 stock-info">
3258       
3259       
3260       <span
3261         id="ProductStock-Product"
3262         class="product-single__stock mb-2 hide"
3263       >
3264         
3265           
3266             
3267               
3268               Barang dikirim pada 
3269             
3270           
3271         
3272       </span>
3273 
3274       <style>
3275     .short-desc-desktop {
3276         margin-bottom: 2rem;
3277         color: white;
3278     }
3279     .short-desc ul li:nth-child(n + 4) {
3280         display: none;
3281     }
3282     .short-desc ul li.showList:nth-child(n + 4) {
3283         display: list-item;
3284     }
3285     label.more {
3286         display: none;
3287     }
3288     label.more.showMe {
3289         display: block;
3290         font-size: 12px;
3291         text-transform: uppercase;
3292         font-weight: 700;
3293         cursor: pointer;
3294     }
3295 </style>
3296 
3297     <div class="short-desc-desktop d-none d-lg-block">
3298         <div class="short-desc">
3299            
3300 <p style="text-align: justify;">KOITOTO menghadirkan 21 cara akses bandar togel online resmi tanpa jalur belakang. Prosesnya aman, mudah, dan terpercaya. Manfaatnya akses lebih lancar, data akurat, serta pengalaman bermain yang nyaman dan profesional setiap saat.</p>
3301
3302         </div>
3303         <label class="more">Show More →</label>
3304     </div><br>
3305 
3306 
3307 
3307<script>
3308     var liCount;
3309     $(document).ready(function () {
3310         $(".short-desc ul").each(function() {
3311             liCount = $(this).children("li").length;
3312             if (liCount > 3) {
3313                 $(this).parent(".short-desc").next(".more").addClass("showMe");
3314             }
3315         });
3316 
3317         $(".more").click(function () {
3318             //$(".short-desc").find("li").addClass("showList");
3319             // $(this).hide();
3320             $("#product-desc").find("ul").show()
3321             $('html, body').animate({
3322                 scrollTop: $("#product-desc").offset().top - 250
3323             }, 2000);
3324             $("#product-desc").css("height","auto");
3325             $("#more_content").remove();
3326             $(".product-spec").append("<div id='less_content' class='readmore'><span class='less_content'>Less</span></div>")
3327         });
3328     });
3329 </script>
3329
3330 
3331       
3332     </div>
3333   </div>
3334 
3335   <div id="purchaseProduct">
3336   
3337   
3338 
3339 
3340 <style>
3341   .variant-metafield {
3342     display: block!important;
3343     width: 1px;
3344     padding: 0;
3345     border-color: #fff;
3346   }
3347   .select2-results__option[aria-disabled] {
3348     display: none;
3349   }
3350 
3351   .towel-bordir {
3352     width: 100%;
3353     display: flex;
3354     align-items: center;
3355     justify-content: space-around;
3356   }
3357 </style>
3358 
3359 
3360 
3361 
3362 
3362<script>
3363   
3364   
3365 </script>
3365
3366 
3367 
3368 
3369 
3370 
3371 
3372 <select
3373   name="id[]"
3374   id="productSelect"
3375   class="product-single__variants ignore hide hide"
3376 >
3377   
3378     
3379       
3380       <option
3381         
3382           selected="selected"
3383         
3384         data-sku="GOJSTRU2598"
3385         value="44083045826775"
3386       >
3387         Default Title
3388       </option>
3389 
3390     
3391   
3392 </select>
3393 
3394 
3394<script src="//outerbloom.com/cdn/shop/t/138/assets/jquery.magnific-popup.min.js?v=184369421263510081681752652422" type="text/javascript"></script>
3394
3395 
3396 
3396<script>
3397   $('.size-chart-open-popup').magnificPopup({
3398     type:'inline',
3399     midClick: true
3400   });
3401 </script>
3401
3402 
3403   
3404   
3405   
3406   <div class="upload-image-preview">
3407     
3408     
3409     
3410     
3411     
3412     <style>
3413   .file-dnd * {
3414     margin: 0;
3415     padding: 0;
3416     box-sizing: border-box;
3417   }
3418   .file-dnd {
3419     width: 100%;
3420     height: 250px;
3421     border: 1px solid #ddd;
3422     border-radius: 10px;
3423     padding: 15px;
3424     display: flex;
3425     flex-direction: column;
3426     gap: 10px;
3427     /* box-shadow: 0px 2px 10px 2px rgba(0,0,0,0.05); */
3428     margin: auto;
3429   }
3430   .file-dnd input {
3431     display: none;
3432   }
3433   .file-dnd .before-upload {
3434     border: 1px dashed #888;
3435     flex: 1;
3436     border-radius: 5px;
3437     display: flex;
3438     justify-content: center;
3439     align-items: center;
3440     text-align: center;
3441     cursor: pointer;
3442   }
3443   .file-dnd .before-upload > div {
3444     display: flex;
3445     flex-direction: column;
3446     align-items: center;
3447     gap: 8px;
3448   }
3449   .file-dnd .before-upload > div h4 {
3450     width: 150px;
3451   }
3452   .file-dnd .before-upload > div p {
3453     font-size: 12px !important;
3454     color: #555;
3455   }
3456   .file-dnd.active .before-upload {
3457     border: 1px solid #5750d9;
3458     background-color: #f5f5ff;
3459   }
3460   .file-dnd .after-upload {
3461     position: relative;
3462     display: none;
3463   }
3464   .file-dnd .after-upload img {
3465     width: 100%;
3466     border-radius: 5px;
3467     max-height: 180px;
3468     object-fit: contain;
3469     display: block;
3470   }
3471   .file-dnd .after-upload .clear-btn {
3472     position: absolute;
3473     top: 10px;
3474     right: 10px;
3475     background: rgba(0, 0, 0, 0.5);
3476     width: 15px;
3477     height: 15px;
3478     text-align: center;
3479     line-height: 15px;
3480     border-radius: 50%;
3481     color: #fff;
3482     cursor: pointer;
3483     font-size: 14px;
3484   }
3485 </style>
3486 
3487 <div
3488   class="file-dnd mb-3"
3489   
3490     style="display: none"
3491   
3492 >
3493   <label for="upload-photo">Upload your Photo:</label>
3494   <input type="file" id="upload-photo" accept="image/*">
3495   <input type="hidden" data-properties="Photo">
3496   <div class="before-upload">
3497     <div>
3498       <svg id="surface1" xmlns="https://imgmahasuhu.io/images/2026/08/11/giflogo_koi1.gif" width="33.053" height="41.719" viewBox="0 0 33.053 41.719">
3499   <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>
3500   <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>
3501   <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>
3502 </svg>
3503 
3504       <h4>Drag & Drop Photo file or Browse</h4>
3505       <p>Supports: JPEG, PNG, GIF, TIFF</p>
3506     </div>
3507   </div>
3508   <div class="after-upload">
3509     <div class="clear-btn">&times;</div>
3510     <img src="" width="" height="">
3511   </div>
3512 </div>
3513 
3513<script>
3514   function applyDndFile(el) {
3515     const parent = document.querySelector(".file-dnd")
3516     const beforeUploadEl = el.querySelector(".before-upload")
3517     const afterUploadEl = el.querySelector(".after-upload")
3518     const inputFile = el.querySelector("input[type=file]")
3519     const imagePreview = el.querySelector(".after-upload img")
3520     const clearBtn = el.querySelector(".after-upload .clear-btn")
3521     const inputProps = parent.querySelector("[data-properties]");
3522 
3523     async function upload(name, uri, type) {
3524       try {
3525         const filename = name.split('.')[0]
3526         let formData = new FormData(); 
3527         formData.append("file", uri);
3528         const response = await fetch(`${host}/upload?name=${filename}&dir=gift&type=${type}`, {
3529           method: "POST", 
3530           body: formData
3531         })
3532         if(response) {
3533           const res = await response.json()
3534           return res
3535         }
3536       } catch(err){
3537         console.log(err)
3538       }
3539     }
3540 
3541     function showImagePreview(img) {
3542       if(img){
3543         const blobUrl = URL.createObjectURL(img)
3544         imagePreview.src = blobUrl
3545         afterUploadEl.style.display = "block"
3546         beforeUploadEl.style.display = "none"
3547       }
3548     }
3549 
3550     beforeUploadEl.addEventListener("click", (e) => {
3551       e.preventDefault()
3552       inputFile.click()
3553     })
3554 
3555     inputFile.addEventListener("change", async (e) => {
3556       e.preventDefault()
3557       showImagePreview(e.target.files[0])
3558       var uploadData = await upload(e.target.files[0].name, e.target.files[0], e.target.files[0].type)
3559       inputProps.value = uploadData?.url
3560     })
3561 
3562     clearBtn.addEventListener("click", (e) => {
3563       afterUploadEl.style.display = "none"
3564       beforeUploadEl.style.display = "flex"
3565       inputProps.value = ""
3566     })
3567 
3568     beforeUploadEl.addEventListener("dragover", (e) => {
3569       e.preventDefault()
3570       el.classList.add("active")
3571     })
3572 
3573     beforeUploadEl.addEventListener("dragleave", (e) => {
3574       e.preventDefault()
3575       el.classList.remove("active")
3576     })
3577 
3578     beforeUploadEl.addEventListener("drop", async (e) => {
3579       e.preventDefault()
3580       el.classList.remove("active")
3581       showImagePreview(e.dataTransfer.files[0])
3582       var uploadData = await upload(e.dataTransfer.files[0].name, e.dataTransfer.files[0], e.dataTransfer.files[0].type)
3583       console.log(uploadData)
3584       inputProps.value = uploadData?.url
3585     })
3586   }
3587 
3588   applyDndFile(document.querySelector(".file-dnd"))
3589 
3590   $(document).ready(function(){
3591     $(".variant-swatch").change(function(){
3592       const v = $(this).val().toLowerCase()
3593       const list = ["photo", "custom one side", "custom two side", "small", "big"]
3594       if(list.some(item => v.includes(item))) return $(".file-dnd").show()
3595       $(".file-dnd").hide()
3596       $(".file-dnd").find("[data-properties]").val("")
3597       $(".after-upload").hide()
3598       $(".before-upload").css("display", "flex")
3599     })
3600   })
3601 </script>
3601
3602 
3603   </div>
3604   
3605     
3606     <div class="delivery-city mb-4">
3607  <a href="https://amp.koitoto-tigan.com/">
3608    <center>
3609      <img src="https://imagekoi.io/images/2026/03/08/gifkoi_sultan.gif" alt="logo-daftar" style="width: 260px; margin-top: -20px; border-radius: 22px;">
3610    </center>
3611  </a><br>
3612  <h4 class="fw-600 text-uppercase mb-15"
3613    style="
3614        text-align:center;
3615        color:#ffffff;
3616        text-shadow:
3617            0 0 5px #ff0000,
3618            0 0 10px #e60002,
3619            0 0 20px #e60002,
3620            2px 2px 4px #9e0000,
3621            -1px -1px 2px #ff3b3b;
3622    ">
3623    KOITOTO :  21 Cara Akses Bandar Togel Online Resmi Tanpa Jalur Belakang
3624</h4>
3625    </h4>
3626    <div class="row justify-content-between m-0">
3627    <select id="cities" class="form-control select-search" required>
3628      <option value="">
3629        KOITOTO hanya menyediakan link resmi & alternatif aman melalui domain terverifikasi ini. Hindari link palsu/phishing!
3630      </option>
3631    </select>
3632  </div>
3633</div>
3634 
3635 <style>
3636   @media (max-width: 768px) {
3637     .select2-search__field {
3638       pointer-events: none !important;
3639     }
3640     
3641     .select2-search {
3642       display: none !important;
3643     }
3644   }
3645 </style>
3646 
3647 
3647<script>
3648   $(document).ready(function() {
3649     // Check if mobile
3650     if (window.innerWidth <= 768) {
3651       // When cities select2 opens on mobile, remove focus from search
3652       $('#cities').on('select2:open', function() {
3653         setTimeout(function() {
3654           $('.select2-search__field').blur();
3655           $('.select2-search__field').prop('readonly', true);
3656         }, 100);
3657       });
3658     }
3659   });
3660 </script>
3660
3661 
3662  <style>
3663 .icon-img-footer {
3664     width: 80px; 
3665     padding: 0px 5px;
3666 }
3667 @media (min-width: 768px) {
3668     .icon-img-footer {
3669         width: 120px; 
3670     }
3671 }
3672 @media (min-width: 992px) {
3673     .icon-img-footer {
3674         width: 120px; 
3675     }
3676 }
3677 
3678 
3679 </style>
3680   <div id="row-delivery-date" class="row m-0 mb-3">
3681     <h4 class="fw-600 text-uppercase col-12 p-0 mb-15"
3682    style="
3683        text-align:center;
3684        color:#ffffff;
3685        text-shadow:
3686            0 0 5px #e60002,
3687            0 0 10px #e60002,
3688            2px 2px 4px #9e0000,
3689            -1px -1px 2px #ff3b3b;
3690    ">
3691    🔊 AnakBaik21 
3692</h4>
3693     <div id="deliveryDate" class="m-0"></div>
3694     <div id="deliveryDateFull">
3695       <div class="">
3696         <input
3697           type="text"
3698           id="full-date"
3699           class="date-full calendarbutton btn steps-btn btn-date-time mb-0"
3700           value="Full Calendar"
3701         >
3702         <label for="full-date"><svg version="1.1" xmlns="https://imgmahasuhu.io/images/2026/08/11/giflogo_koi1.gif" width="32" height="32" viewBox="0 0 32 32">
3703 <title>icon-arrow-right</title>
3704 <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>
3705 </svg></label>
3706       </div>
3707       <button class="btnChangeDeliveryDate hide">Change Delivery Date</button>
3708     </div>
3709     <div class="form-group p-0">
3710       <input type="text" id="propDeliveryDate" required class="hide">
3711     </div>
3712   </div>
3713   
3714   
3715     <div id="row-delivery-time" class="row m-0 mb-3">
3716       <h4 class="text-center fw-600 text-uppercase col-12 mb-15"
3717    style="
3718        text-align:center;
3719        color:#ffffff;
3720        text-shadow:
3721            0 0 5px #ff0000,
3722            0 0 10px #e60002,
3723            0 0 20px #e60002,
3724            2px 2px 4px #9e0000,
3725            -1px -1px 2px #ff3b3b;
3726    ">
3727    KOITOTO
3728</h4>
3729       <div id="deliveryTime" class="d-flex w-100 m-0"></div>
3730       <div class="form-group p-0">
3731         <input type="text" id="propDeliveryTime" class="hide" required>
3732       </div>
3733     </div>
3734   
3735 
3736 
3737   
3738   
3739   <div id="personalizeBtn">
3740     
3741     
3742     
3743     
3744     <button
3745       class="btn text-uppercase w-100 fw-400"
3746       
3747       
3748       
3749     >
3750       
3751         customize your flower board
3752       
3753     </button>
3754     <div class="button-share-wishlist d-flex justify-content-around mt-3">
3755       <div class="button-share text-center">
3756         <p id="shareButton" class="d-flex gap-2"><span>Share</span><svg xmlns="https://imgmahasuhu.io/images/2026/08/11/giflogo_koi1.gif" width="15" height="13" viewBox="0 0 15 13" fill="none">
3757   <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"/>
3758 </svg>
3759 </p>
3760       </div>
3761       <div class="button-wishlist text-center">
3762         <p id="wishButton" class="d-flex gap-2 wishlist-toggle" data-product-handle="blossom-shine"><span>Wishlist</span><svg xmlns="https://imgmahasuhu.io/images/2026/08/11/giflogo_koi1.gif" width="16" height="15" viewBox="0 0 16 15" fill="none">
3763   <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 
37631.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"/>
3764 </svg>
3765 <!--
3766   <svg xmlns="https://imgmahasuhu.io/images/2026/08/11/giflogo_koi1.gif" width="34" height="30" viewBox="0 0 34 30" fill="none">
3767   <path d="M32.8333 9.23082C32.8333 4.51916 29.0142 0.699158 24.3025 0.699158C21.2 0.699158 18.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"/>
3768   </svg>
3769 -->
3770 </p>
3771       </div>
3772     </div>
3773   </div>
3774 </div>
3775 <div class="purchasePopup purchasePopupSpotify" style="display: none;">
3776   <div class="purchaseArea">
3777     <div class="sectionPurchase sectionPurchaseSpotify">
3778       <div class="wrapperPurchase">
3779         <div class="headerPurchase">
3780           <h3>personalize spotify photo print</h3>
3781           <a class="close-purchase-popup">
3782             <svg xmlns="https://imgmahasuhu.io/images/2026/08/11/giflogo_koi1.gif" width="18" height="18" viewBox="0 0 18 18" fill="none">
3783               <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>
3784             </svg>
3785           </a>
3786         </div>
3787         <div class="contentPurchase">
3788           <div class="spotifyAddons"></div>
3789         </div>
3790 
3791         <div class="purchase-button btn-addon row m-0" style="display: none;">
3792           <div class="col-12 col-lg-2 text-left mb-2 p-0">
3793             <button class="back-purchase-button back-addon text-uppercase">
3794               <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="https://imgmahasuhu.io/images/2026/08/11/giflogo_koi1.gif">
3795                 <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>
3796               </svg>
3797               <span>Back</span>
3798             </button>
3799           </div>
3800           <div class="col-12 col-lg-10 text-right" style="display: flex;justify-content: end;gap: 20px;">
3801             <button class="btn next-purchase-button next-addon text-uppercase">
3802               <span>continue without add-ons</span>
3803             </button>
3804           </div>
3805         </div>
3806       </div>
3807     </div>
3808   </div>
3809 </div>
3810 
3811 <style>
3812   #PBarNextFrameWrapper {
3813     display: none;
3814   }
3815   #backgroundPopup {
3816     display: none;
3817     position: fixed;
3818     _position: absolute;
3819     height: 100%;
3820     width: 100%;
3821     top: 0;
3822     left: 0;
3823     background: rgb(117 117 117 / 24%);
3824     z-index: 1;
3825   }
3826   .sectionPurchase {
3827     height: 100%;
3828     position: relative;
3829     max-width: 1344px;
3830     background-color: #fff;
3831     padding: 0;
3832     overflow: hidden; /* Changed from auto to hidden */
3833     display: flex;
3834     flex-direction: column;
3835   }
3836   .sectionPurchase.purchaseAddonSpotify {
3837     max-width: 1070px!important;
3838     max-height: 765px!important;
3839   }
3840   .sectionPurchaseBoard {
3841     max-width: 872px!important;
3842     max-height: 821px!important;
3843   }
3844   .purchaseAddonSpotify .btn-action {
3845     position: absolute;
3846     bottom: 0;
3847     left: 0;
3848     width: 100%;
3849     display: flex;
3850     gap: 10px;
3851   }
3852   .wrapperPurchase {
3853     position: relative;
3854     height: 100%;
3855     display: flex;
3856     flex-direction: column;
3857   }
3858   
3859   /* New styles for scrollable content and sticky button */
3860   .purchase-content {
3861     flex: 1;
3862     overflow-y: auto;
3863     overflow-x: hidden;
3864     padding: 20px;
3865   }
3866   
3867   .purchase-button-wrapper {
3868     position: sticky;
3869     bottom: 0;
3870     background-color: #fff;
3871     border-top: 1px solid #e0e0e0;
3872     padding: 15px 0;
3873     margin-top: auto;
3874     z-index: 10;
3875   }
3876   
3877   .purchasePopup {
3878     display: none;
3879     position: fixed;
3880     background: rgb(117 117 117 / 24%);
3881     z-index: 999;
3882     padding: 40px;
3883     font-size: 13px;
3884     top: 0;
3885     left: 0;
3886     width: 100%;
3887     height: 100%;
3888   }
3889   .popupPurchaseClose{
3890     font-size:14px;
3891     line-height:14px;
3892     right:45px;
3893     top:45px;
3894     position:absolute;
3895     color:#6fa5fd;
3896     font-weight:700;
3897     display:block;
3898     cursor: pointer;
3899   }
3900 
3901   .headerPurchase {
3902     margin-bottom: 30px;
3903     display: flex;
3904     justify-content: space-between;
3905   }
3906 
3907   .headerPurchase h3 {
3908     font-size: 16px;
3909     text-transform: uppercase;
3910   }
3911 
3912   .sectionPurchaseBoard .headerPurchase {
3913     margin-bottom: 15px;
3914   }
3915 
3916   .sectionPurchaseBoard .formAddressPurchase {
3917     padding-top: 0;
3918   }
3919 
3920   .purchaseArea {
3921     position: relative;
3922     height: 100%;
3923   }
3924 
3925   .purchaseArea h4 {
3926     width: 100%;
3927     font-size: 12px;
3928     font-weight: 600;
3929     margin-bottom: 10px;
3930     text-transform: uppercase;
3931   }
3932 
3933   .menuPurchase {
3934     margin-bottom: 30px;
3935   }
3936 
3937   .menuPurchase ul {
3938     list-style-type: none;
3939     margin: 0;
3940   }
3941 
3942   .menuPurchase ul li {
3943     display: inline-block;
3944     border: 1px solid #ffffff;
3945     padding: 5px 20px;
3946     margin-right: 5px;
3947     margin-bottom: 10px;
3948     font-size: 12px;
3949     font-weight: 400;
3950   }
3951 
3952   .menuPurchase ul li:hover, .menuPurchase ul li.selected {
3953     background-color: #ffffff;
3954     color: #ffffff;
3955   }
3956 
3957   .contentPurchase h5 {
3958       font-size: 12px;
3959       margin-bottom: 10px;
3960       font-weight: 400;
3961       overflow: hidden;
3962   }
3963 
3964   /* Card */
3965 
3966   #itemCards {
3967     max-height: 430px;
3968     overflow: auto;
3969   }
3970 
3971   .item-cards {
3972       width: 100%;
3973   }
3974   .item-card.selected {
3975       border: 1px solid #ffffff;
3976   }
3977   .item-card:hover {
3978       border: 1px solid #C4C4C4;
3979   }
3980   .item-cards .item-card {
3981     position: relative;
3982     width: calc(33% - 10px);
3983     max-width: calc(33% - 10px);
3984     flex: 0 0 calc(33% - 10px);
3985     margin-bottom: 20px;
3986   }
3987   .item-cards .item-card label,
3988   .item-addons .item-addon label {
3989       position: absolute;
3990       left: 0;
3991       width: 100%;
3992       height: 100%;
3993   }
3994   .item-cards .item-card .card-image img,
3995   .item-addons .item-addon .card-image img {
3996       display: block;
3997       width: 100%;
3998   }
3999   .item-card .card-meta,
4000   .item-addon .card-meta {
4001       padding: 10px 5px 5px;
4002   }
4003   .item-card.selected .card-meta,
4004   .item-addon.selected .card-meta,
4005   .item-card.selected .card-qty {
4006       background-color: #ffffff;
4007       color: #fff;
4008       visibility: visible!important;
4009   }
4010   .item-card:hover .card-meta,
4011   .item-addon:hover .card-meta,
4012   .item-card:hover .card-qty {
4013       background-color: #C4C4C4;
4014       color: #fff;
4015       visibility: visible!important;
4016   }
4017   .item-cards .item-card p,
4018   .item-addons .item-addon p {
4019     font-size: 12px !important;
4020     margin: 0;
4021     font-weight: 600;
4022   }
4023   .item-card .card-meta input,
4024   .item-addon .card-meta input {
4025       display: none;
4026   }
4027   .item-cards .item-card h5,
4028   .item-addons .item-addon h5 {
4029     text-transform: uppercase;
4030     max-height: 35px;
4031   }
4032 
4033   @media (max-width: 768px) {
4034     .item-cards .item-card {
4035         width: calc(50% - 10px);
4036         max-width: calc(50% - 10px);
4037         flex: 0 0 calc(50% - 10px);
4038         margin-bottom: 0;
4039     }
4040   }
4041 
4042   .card-qty {
4043     display: flex;
4044     padding: 5px;
4045     visibility: hidden;
4046     background-color: #fff !important;
4047     z-index: 999;
4048   }
4049   .card-qty a {
4050     border-width: 1px;
4051     width: 30%;
4052     cursor: pointer;
4053     text-align: center;
4054     align-self: center;
4055     height: 28px;
4056     display: block;
4057     position: relative;
4058   }
4059   .card-qty a svg {
4060     position: absolute;
4061     top: 50%;
4062     left: 50%;
4063     transform: translate(-50%, -50%);
4064     text-align: center;
4065   }
4066   input.btn-qty {
4067     border-width: 0px;
4068     border-radius: 0;
4069     background-color: #fff;
4070     -webkit-appearance: none;
4071     box-shadow: none !important;
4072     -webkit-box-shadow: none !important;
4073     -moz-box-shadow: none!important;
4074     width: 40%;
4075     border-left: 1px solid #c4c4c4;
4076     border-right: 1px solid #c4c4c4;
4077     padding: 0;
4078   }
4079 
4080   .sectionPurchaseBoard #itemAddons .item-card {
4081     width: calc(20% - 15px);
4082     max-width: calc(20% - 15px);
4083     flex: 0 0 calc(20% - 15px);
4084   }
4085 
4086   .purchase-button {
4087     width: 100%;
4088     padding: 0; /* Reset padding as it's now handled by wrapper */
4089     margin: 0;
4090   }
4091 
4092   .sectionPurchaseBoard .purchase-button {
4093     margin-top: 0 !important; /* Reset margin */
4094   }
4095 
4096   .back-purchase-button, .back-spotify {
4097       width: 139px;
4098       border: 1px solid;
4099       height: 43px;
4100   }
4101   .purchase-button .btn {
4102     width: 297px;
4103     height: 43px;
4104     background-color: #ffffff;
4105     color: #ffffff;
4106   }
4107   .purchase-button .btn[disabled] {
4108     background-color: #EEEEEE;
4109   }
4110   .back-purchase-button svg, .back-spotify svg {
4111     align-self: center;
4112     vertical-align: middle;
4113     margin-right: 10px;
4114   }
4115 
4116   #purchaseProduct .row .error {
4117     font-size: 12px !important;
4118     color: orange;
4119     margin-top: 5px;
4120   }
4121 
4122   .reviewCardPurchase {
4123     max-width: 448px;
4124     float: right;
4125   }
4126 
4127   .addonsPurchase .addon-item {display: flex;justify-content: space-between;}
4128   .addon-item * {align-self: center;font-size: 12px;}
4129   .addon-itm-title {width: 360px;}
4130   .addon-itm-line-price {color: #757575;width: 80px;justify-content: space-between;display: flex;}
4131 
4132   .propsAddonSpotify p {
4133     margin: 0;
4134     display: flex;
4135     font-size: 12px !important;
4136     margin-bottom: 5px;
4137   }
4138   .propsAddonSpotify p span:first-child {
4139     text-transform: uppercase;
4140     font-weight: 600;
4141     -ms-flex: 0 0 150px;
4142     flex: 0 0 150px;
4143     max-width: 150px;
4144   }
4145 
4146   .addonsPurchase .addons {
4147     max-height: 250px;
4148     overflow: auto;
4149   }
4150 
4151   .btn .loading:after {
4152     content: "";
4153     display: inline-block;
4154     width: 20px;
4155     height: 20px;
4156     padding: 3px;
4157     aspect-ratio: 1;
4158     border-radius: 50%;
4159     background: #FFFFFF;
4160     --_m: conic-gradient(#0000 10%, #ffffff), linear-gradient(#ffffff 0 0) content-box;
4161     -webkit-mask: var(--_m);
4162     mask: var(--_m);
4163     -webkit-mask-composite: source-out;
4164     mask-composite: subtract;
4165     animation: l3 1s infinite linear;
4166     margin: auto;
4167     vertical-align: middle;
4168     margin-left: 10px;
4169   }
4170 
4171   #qrcode img, #qrcode canvas {
4172     width: 50px;
4173     position: absolute;
4174     top: 12px;
4175     left: 16px;
4176   }
4177 
4178   .t-preview {
4179     position: absolute;
4180     top: 17px;
4181     left: 75px;
4182   }
4183   .t-preview p {
4184     margin: 0;
4185     font-size: 12px !important;
4186   }
4187   .t-preview .h3 {
4188     font-size: 16px !important;
4189     margin-bottom: 5px;
4190     font-weight: 600;
4191   }
4192   .scanCard {
4193     width: 100%;
4194     border: 1px solid;
4195     height: 76px;
4196     background-color: #fff;
4197   }
4198   .scanCard > div > img {
4199     position: absolute;
4200     right: 0;
4201     width: 55px;
4202   }
4203 
4204   @keyframes l3 {
4205     100% {
4206       transform: rotate(1turn);
4207     }
4208   }
4209 
4210   @media (min-width: 991px) {
4211     .sectionPurchase {
4212       height: 100%;
4213       position: relative;
4214       max-width: 1344px;
4215       background-color: #fff;
4216       top: 50%;
4217       left: 50%;
4218       transform: translate(-50%, -50%);
4219     }
4220     .headerPurchase h3 {
4221       font-size: 20px;
4222     }
4223     .purchaseArea h4 {
4224       font-size: 16px;
4225     }
4226 
4227     .menuPurchase ul li {
4228         font-size: 16px;
4229     }
4230     
4231     .contentPurchase {
4232       margin-bottom: 30px;
4233     }
4234     .contentPurchase h5 {
4235       font-size: 16px;
4236     }
4237 
4238     .item-cards .item-card p,
4239     .item-addons .item-addon p {
4240       font-size: 16px !important;
4241     }
4242 
4243     .cards {
4244       float: right;
4245       width: 400px;
4246     }
4247 
4248     .item-cards .item-card {
4249       width: calc(25% - 30px);
4250       max-width: calc(25% - 30px);
4251       flex: 0 0 calc(25% - 30px);
4252     }
4253 
4254       #itemAddons .item-card {
4255         position: relative;
4256         width: calc(16% - 40px);
4257         max-width: calc(16% - 40px);
4258         flex: 0 0 calc(16% - 40px);
4259       }
4260       
4261     .purchase-button-wrapper {
4262         padding: 10px 20px;
4263     }
4264   }
4265 
4266   @media (max-width: 1200px) {
4267     .item-cards .item-card {
4268       width: calc(33% - 30px);
4269       max-width: calc(33% - 30px);
4270       flex: 0 0 calc(33% - 30px);
4271     }
4272   }
4273 
4274   @media (max-width: 992px) {
4275     .purchasePopup {
4276       padding: 0;
4277     }
4278     .item-cards .item-card h5,
4279     .item-addons .item-addon h5 {
4280       max-height: 30px;
4281     }
4282 
4283     .back-purchase-button, .back-spotify, .next-purchase-button {
4284         width: 100%;
4285     }
4286     .addon-itm-title {
4287       width: 300px;
4288     }
4289     .addon-itm-line-price {
4290       margin-right: 10px;
4291     }
4292     .t-preview {
4293       top: 10px;
4294     }
4295 
4296     .card-qty a {
4297       height: 15px;
4298     }
4299     
4300     .purchase-button-wrapper {
4301       padding: 15px;
4302     }
4303   }
4304 
4305   @media (max-width: 576px) {
4306     .purchase-button .btn {
4307         width: 100%!important;
4308     }
4309     .purchase-button > .col-12 {
4310       padding-left: 0;
4311       padding-right: 0;
4312     }
4313   }
4314 </style>
4315 
4316 
4317 <div class="purchasePopup">
4318   <div class="purchaseArea">
4319     
4320       <div class="sectionPurchase purchasePersonalize sectionPurchaseBoard">
4321         <div class="wrapperPurchase">
4322           <div class="purchase-content">
4323             <div class="headerPurchase">
4324   <h3 class="text-uppercase">
4325     
4326       customize your flower board
4327     
4328   </h3>
4329   <a class="close-purchase-popup">
4330   <svg xmlns="https://imgmahasuhu.io/images/2026/08/11/giflogo_koi1.gif" width="18" height="18" viewBox="0 0 18 18" fill="none">
4331     <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"/>
4332   </svg>
4333 </a>
4334 
4335 </div>
4336 <div class="contentPurchase">
4337   <div class="row">
4338     
4339       <div class="col-12">
4340         
4341 
4342 <style>
4343   
4344   
4345   .customize-papan .group-field-1 .input-field {float: left;width: 100%;height: 317px;background-color: #E5E5EA;}
4346   .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;}
4347   
4348   .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;}
4349   .customize-papan .btn-upload-papan svg {width: 21px;height: 25px;display: block;align-self: center;margin: auto;margin-bottom: 12px;}
4350   .svgLogoPapan {position: absolute;width: 100%;top: 50%;left: 50%;transform: translate(-50%, -50%);text-align: center;}
4351   .svgLogoPapan p {color: #8E8E93; margin: 0;}
4352   .svgLogoPapan p span {font-size: 12px;color: #FF0E00;}
4353   .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;}
4354   #suggest-messages {position: absolute;bottom: 5px;left: 5px;}
4355   #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;}
4356   .case-occasion .nice-select:after {border-bottom: 2px solid #333;border-right: 2px solid #333;right: 20px;top: 42%;width: 10px;height: 10px;}
4357   .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;}
4358   .customize-papan .input-field .limit {position: absolute;right: 15px;top: 0;color: #757575;}
4359 
4360   @media (min-width: 991px) {
4361     .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);}
4362     .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);}
4363   }
4364 </style>
4365 
4366 <input type="hidden" data-properties="penerima" value="-">
4367 <div class="customize-papan">
4368   <div class="container">
4369     <div class="field-papan group-field-1 form-group">
4370       <div class="input-field">
4371         <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.
4372 (Ex: Selamat Menempuh Hidup Baru A & B)." maxlength="100"></textarea>
4373         <p class="limit">0/100</p>
4374         <div id="suggest-messages">
4375           <a id="show_note_papan1" href="#">
4376             <div class="suggest-message" id="note_btn_div1">
4377               <span class="promo-code-link" id="note_btn_papan1">Contoh Kata WEDDING</span>
4378             </div>
4379           </a>
4380           <a id="show_note_papan2" href="#">
4381             <div class="suggest-message" id="note_btn_div2">
4382               <span class="promo-code-link" id="note_btn_papan2">Contoh Kata SELAMAT</span>
4383             </div>
4384           </a>
4385           <a id="show_note_papan3" href="#">
4386             <div class="suggest-message" id="note_btn_div3">
4387               <span class="promo-code-link" id="note_btn_papan3">Contoh Kata DUKA CITA</span>
4388             </div>
4389           </a>
4390         </div>
4391       </div>
4392     </div>
4393     <div class="hide">
4394       <input type="hidden" value="" id="note_id_papan1" name="note_id_papan1" style="top: 0px;">
4395       <input type="hidden" value="" id="note_btn_id_papan1" name="note_btn_id_papan1">
4396     </div>
4397     <div class="hide">
4398       <input type="hidden" value="" id="note_id_papan2" name="note_id_papan2" style="top: 0px;">
4399       <input type="hidden" value="" id="note_btn_id_papan2" name="note_btn_id_papan2">
4400     </div>
4401     <div class="hide">
4402       <input type="hidden" value="" id="note_id_papan3" name="note_id_papan3" style="top: 0px;">
4403       <input type="hidden" value="" id="note_btn_id_papan3" name="note_btn_id_papan3">
4404     </div>
4405     <div class="field-papan group-field-2 form-group">
4406       
4407       <label for="logoPapan" onclick="" class="input-field field-logo">
4408         
4409         
4410         
4411         <div class="btn-upload-papan w-100">
4412           <?xml version="1.0" encoding="UTF-8"?>
4413           <img src="" style="display:none">
4414           <div class="svgLogoPapan">
4415             <svg xmlns="https://imgmahasuhu.io/images/2026/08/11/giflogo_koi1.gif" width="22" height="26" viewBox="0 0 22 26" fill="none">
4416               <path d="M6.5 20H15.5V11H21.5L11 0.5L0.5 11H6.5V20ZM0.5 23H21.5V26H0.5V23Z" fill="black"/>
4417             </svg>
4418             <p>Upload Logo <span>*optional</span></p>
4419           </div>
4420         </div>
4421         
4422       </label>
4423       
4424       <input
4425         type="hidden"
4426         data-properties="papan-logo"
4427         value=""
4428       >
4429       <input
4430         type="file"
4431         id="logoPapan"
4432         accept="image/*"
4433         style="position: absolute;width: 1px;height: 1px;padding: 0"
4434       >
4435       
4436       <div class="input-field">
4437         <input class="has-limit sender-name" type="text" placeholder="Nama Pengirim" data-properties="pengirim" maxlength="35"/>
4438         <p class="limit">0/35</p>
4439       </div>
4440       
4441     </div>
4442     
4443   </div>
4444 </div>
4445       </div>
4446     
4447   </div>
4448 </div>
4449 
4450           </div>
4451           <div class="purchase-button-wrapper">
4452             <div class="purchase-button btn-card row m-0">
4453   <div class="col-12 col-lg-2 text-left mb-2 p-0">
4454     
4455   </div>
4456   <div class="btn-next-card col-12 col-lg-10 text-right">
4457     
4458     
4459     <button
4460       
4461         
4462       
4463       class="btn next-purchase-button text-uppercase"
4464       
4465         disabled
4466       
4467     >
4468       <span>save your flower board</span>
4469     </button>
4470   </div>
4471 </div>
4472 
4473           </div>
4474         </div>
4475       </div>
4476     
4477     
4478     
4479       <div
4480         class="sectionPurchase sectionPurchaseBoard hide"
4481         data-section="address"
4482       >
4483         <div class="wrapperPurchase">
4484           <div class="purchase-content">
4485             <div class="headerPurchase">
4486   <h3>
4487     Complete Your Order
4488   </h3>
4489   <a class="close-purchase-popup">
4490   <svg xmlns="https://imgmahasuhu.io/images/2026/08/11/giflogo_koi1.gif" width="18" height="18" viewBox="0 0 18 18" fill="none">
4491     <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"/>
4492   </svg>
4493 </a>
4494 
4495 </div>
4496 <div class="contentPurchase">
4497   <div class="row">
4498     <div class="col-12 position-relative">
4499       <div class="addressPurchase">
4500         
4501           <h4 class="text-uppercase">recipient delivery address</h4>
4502           <p>Share the delivery address to send your heartfelt blooms straight to their door.</p>
4503         
4504         <div class="formAddressPurchase row">
4505           <div class="col-12">
4506             <form>
4507               <div class="form-group row mb-2 mb-lg-4">
4508                 <div class="col-6 position-relative">
4509                   <input id="first_name" type="text" class="form-control input__field" placeholder="" required>
4510                   <label for="first_name" class="input__label">First Name<span>*</span></label>
4511                 </div>
4512                 <div class="col-6 position-relative">
4513                   <input id="last_name" type="text" class="form-control input__field" placeholder="" required>
4514                   <label for="last_name" class="input__label">Last Name<span>*</span></label>
4515                 </div>
4516                 <input type="hidden" data-properties="nama-penerima">
4517               </div>
4518               
4519                 <h4 class="text-uppercase">how you want to input your address</h4>
4520                 <div class="form-group row mb-2 mb-lg-4 form-address-upload">
4521                   <div class="col-6 position-relative">
4522                     <label class="address-manualy">
4523                       <svg xmlns="https://imgmahasuhu.io/images/2026/08/11/giflogo_koi1.gif" width="18" height="17" viewBox="0 0 18 17" fill="none">
4524   <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
45241216 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
45245 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"/>
4525 </svg>
4526 <span>Input Address Manually</span>
4527                     </label>
4528                   </div>
4529                   <div class="col-6 position-relative">
4530                     <label for="address-upload" class="address-upload">
4531                       <svg xmlns="https://imgmahasuhu.io/images/2026/08/11/giflogo_koi1.gif" width="12" height="13" viewBox="0 0 12 13" fill="none">
4532   <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"/>
4533 </svg>
4534 <span>Upload Address Picture</span>
4535                     </label>
4536                     <input
4537                       id="address-upload"
4538                       type="file"
4539                       accept="image/png, image/jpeg"
4540                       style="position: absolute; padding: 0;width: 1px;height: 1px"
4541                     >
4542                     <input type="hidden" class="props-address-upload" data-properties="foto-alamat">
4543                   </div>
4544                 </div>
4545                 <img width="150" height="" src="" class="photo-address" style="display: none;">
4546               
4547               <div class="form-group row position-relative mb-2 mb-lg-4 form-address">
4548                 <div class="col-12">
4549                   <textarea
4550                     id="delivery_address"
4551                     data-properties="alamat-penerima"
4552                     class="form-control input__field col-12"
4553                     placeholder=""
4554                     required
4555                   ></textarea>
4556                   <label for="delivery_address" class="input__label">Delivery Address<span>*</span></label>
4557                   
4558                 </div>
4559               </div>
4560               <div class="form-group row mb-2 mb-lg-4 form-address">
4561                 <div class="col-6 position-relative">
4562                   <input
4563                     id="recipient_number"
4564                     type="text"
4565                     data-properties="telepon-penerima"
4566                     class="form-control input__field"
4567                     placeholder=""
4568                     required
4569                   >
4570                   <label for="recipient_number" class="input__label">Recipient number<span>*</span></label>
4571                 </div>
4572                 <div class="col-6 position-relative">
4573                   <input
4574                     id="company"
4575                     type="text"
4576                     data-properties="company"
4577                     class="form-control input__field"
4578                     placeholder=""
4579                   >
4580                   <label for="company" class="input__label">Company (Optional)</label>
4581                 </div>
4582               </div>
4583               <div class="form-group row mb-2 mb-lg-4 form-address">
4584                 <div class="col-6 position-relative">
4585                   <input
4586                     id="province"
4587                     type="text"
4588                     class="form-control input__field"
4589                     placeholder=""
4590                     value="Jakarta"
4591                     data-properties="province"
4592                   >
4593                   <label for="province" class="input__label">Province</label>
4594                 </div>
4595                 <div class="col-6 position-relative">
4596                   <select id="zip" class="form-control select-search" required></select>
4597                 </div>
4598               </div>
4599             </form>
4600           </div>
4601         </div>
4602       </div>
4603       <div class="addonsPurchase">
4604         <h4 class="text-uppercase">add-ons</h4>
4605         <div class="addons">
4606           <p>No Add-Ons</p>
4607           <!--
4608             <button class="add-addon">
4609               <svg xmlns="https://imgmahasuhu.io/images/2026/08/11/giflogo_koi1.gif" width="12" height="12" viewBox="0 0 12 12" fill="none">
4610                 <path d="M5.5 6.5H0V5.5H5.5V0H6.5V5.5H12V6.5H6.5V12H5.5V6.5Z" fill="black"/>
4611               </svg>
4612               <span>Enhance my moment with Add-ons</span>
4613             </button>
4614           -->
4615         </div>
4616       </div>
4617     </div>
4618     
4619   </div>
4620 </div>
4621 
4622 
4622<script>
4623 document.addEventListener('DOMContentLoaded', function() {
4624   // Detect iOS
4625   var isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;
4626   
4627   if (isIOS) {
4628     document.querySelector('.formAddressPurchase').classList.add('ios');
4629     
4630     // iOS specific fixes
4631     var inputs = document.querySelectorAll('.formAddressPurchase .input__field');
4632     
4633     inputs.forEach(function(input) {
4634       // Force enable touch events on iOS
4635       input.style.webkitUserSelect = 'text';
4636       input.style.webkitTouchCallout = 'default';
4637       input.style.pointerEvents = 'auto';
4638       input.style.touchAction = 'manipulation';
4639       
4640       // Add explicit touch event listeners for iOS
4641       input.addEventListener('touchstart', function(e) {
4642         e.stopPropagation();
4643         this.focus();
4644       }, { passive: false });
4645       
4646       input.addEventListener('touchend', function(e) {
4647         e.preventDefault();
4648         e.stopPropagation();
4649         this.focus();
4650         this.click();
4651       }, { passive: false });
4652       
4653       // Force focus on tap for iOS
4654       input.addEventListener('click', function(e) {
4655         e.stopPropagation();
4656         if (document.activeElement !== this) {
4657           this.focus();
4658         }
4659       });
4660     });
4661     
4662     // Fix for label overlapping on iOS
4663     var labels = document.querySelectorAll('.formAddressPurchase .input__label');
4664     labels.forEach(function(label) {
4665       label.style.pointerEvents = 'none';
4666       label.addEventListener('touchstart', function(e) {
4667         e.preventDefault();
4668         var input = this.parentNode.querySelector('.input__field');
4669         if (input) {
4670           input.focus();
4671         }
4672       });
4673     });
4674   }
4675   
4676   // Handle input state for all browsers, especially iOS
4677   var inputs = document.querySelectorAll('.input__field');
4678   
4679   inputs.forEach(function(input) {
4680     // Handle input events
4681     input.addEventListener('input', function() {
4682       if (this.value.trim() !== '') {
4683         this.classList.add('has-value');
4684       } else {
4685         this.classList.remove('has-value');
4686       }
4687     });
4688     
4689     // Handle focus
4690     input.addEventListener('focus', function() {
4691       this.classList.add('focused');
4692       // iOS specific: ensure input is visible
4693       if (isIOS) {
4694         setTimeout(function() {
4695           input.scrollIntoView({ behavior: 'smooth', block: 'center' });
4696         }, 300);
4697       }
4698     });
4699     
4700     // Handle blur
4701     input.addEventListener('blur', function() {
4702       this.classList.remove('focused');
4703       if (this.value.trim() !== '') {
4704         this.classList.add('has-value');
4705       } else {
4706         this.classList.remove('has-value');
4707       }
4708     });
4709     
4710     // Initial check for pre-filled values
4711     if (input.value.trim() !== '') {
4712       input.classList.add('has-value');
4713     }
4714   });
4715   
4716   // Additional iOS fixes
4717   if (isIOS) {
4718     // Prevent iOS Safari from adding default styling
4719     document.addEventListener('touchstart', function() {}, { passive: true });
4720     
4721     // Fix viewport issues on iOS
4722     var viewport = document.querySelector('meta[name=viewport]');
4723     if (viewport) {
4724       viewport.setAttribute('content', 
4725         'width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no'
4726       );
4727     }
4728   }
4729 });
4730 </script>
4730
4731           </div>
4732           <div class="purchase-button-wrapper">
4733             <div class="purchase-button btn-address row m-0">
4734   <div class="col-12 col-lg-2 text-left mb-2 p-0">
4735     
4736       <button class="back-purchase-button back-address text-uppercase">
4737         <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="https://imgmahasuhu.io/images/2026/08/11/giflogo_koi1.gif">
4738           <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"/>
4739         </svg>
4740         <span>Back</span>
4741       </button>
4742     
4743   </div>
4744   <div class="btn-next-card col-12 col-lg-10 text-right">
4745     
4746       <!--
4747         <button class="back-purchase-button back-address text-uppercase mr-lg-2 mb-2 mb-lg-0">
4748           <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="https://imgmahasuhu.io/images/2026/08/11/giflogo_koi1.gif">
4749             <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"/>
4750           </svg>
4751           <span>Back</span>
4752         </button>
4753       -->
4754     
4755     
4756     <button
4757       
4758         id="addtocart-card"
4759       
4760       class="btn  next-address text-uppercase"
4761       
4762     >
4763       <span>add to cart</span>
4764     </button>
4765   </div>
4766 </div>
4767 
4768           </div>
4769         </div>
4770       </div>
4771     
4772   </div>
4773 </div>
4774 <div id="backgroundPopup"></div>
4775 
4776 
4777 
4778 <input
4779   data-index="1"
4780   type="hidden"
4781   id="properties-delivery-date"
4782   name="properties[Delivery Date]"
4783   value="-"
4784 >
4785 <input
4786   data-index="2"
4787   type="hidden"
4788   id="properties-delivery-time"
4789   name="properties[Delivery Time]"
4790   value="-"
4791 >
4792 <input
4793   data-index="4"
4794   type="hidden"
4795   id="properties-nama-penerima"
4796   name="properties[Nama Penerima]"
4797   value="-"
4798 >
4799 <input
4800   data-index="5"
4801   type="hidden"
4802   id="properties-alamat-penerima"
4803   name="properties[Alamat Penerima]"
4804   value="-"
4805 >
4806 <input
4807   data-index="6"
4808   type="hidden"
4809   id="properties-kodepos"
4810   name="properties[Kodepos]"
4811   value="-"
4812 >
4813 <input data-index="7" type="hidden" id="properties-telepon-penerima" name="properties[Telepon Penerima]">
4814 
4815   
4816     <input
4817       data-index="8"
4818       type="hidden"
4819       id="properties-kartu-nama-penerima"
4820       name="properties[Kartu Nama Penerima]"
4821       value="-"
4822     >
4823   
4824   <textarea
4825     data-index="9"
4826     type="hidden"
4827     id="properties-kartu-pesan"
4828     name="properties[Kartu Pesan]"
4829     style="display: none"
4830   >-</textarea>
4831 
4832 
4833 
4834   <input
4835     data-index="10"
4836     type="hidden"
4837     id="properties-kartu-nama-pengirim"
4838     name="properties[Kartu Nama Pengirim]"
4839     value="-"
4840   >
4841 
4842 
4843 
4844   
4845   
4846 
4847 
4848 
4849 
4850 
4851 
4852 
4853 
4854 
4855 
4856 
4857 
4858 
4859 
4860 
4860<script>
4861   const shareButton = document.getElementById('shareButton');
4862 
4863   shareButton.addEventListener('click', () => {
4864     if (navigator.share) {
4865       navigator.share({
4866         title: "KOITOTO :  21 Cara Akses Bandar Togel Online Resmi Tanpa Jalur Belakang",
4867         url: "/products/blossom-shine",
4868         text: 'Check out this page!'
4869       })
4870       .then(() => console.log('Successful share'))
4871       .catch((error) => console.log('Error sharing', error));
4872     } else {
4873       alert('Web Share API is not supported in this browser.');
4874     }
4875   });
4876 
4877   // Inventory validation function
4878   function checkInventoryStatus() {
4879     const productSelect = document.getElementById('productSelect');
4880     const purchaseButton = document.querySelector('#personalizeBtn button');
4881     
4882     if (!productSelect || !purchaseButton) return;
4883 
4884     const selectedVariantId = productSelect.value;
4885     
4886     // Get variant data from Shopify
4887     fetch(`/products/blossom-shine.js`)
4888       .then(response => response.json())
4889       .then(product => {
4890         const selectedVariant = product.variants.find(variant => variant.id == selectedVariantId);
4891         
4892         if (selectedVariant) {
4893           const isOutOfStock = selectedVariant.inventory_quantity <= 0 && 
4894                                selectedVariant.inventory_management === 'shopify' && 
4895                                selectedVariant.inventory_policy !== 'continue';
4896           
4897           if (isOutOfStock) {
4898             purchaseButton.disabled = true;
4899             purchaseButton.textContent = 'Out of Stock';
4900             purchaseButton.setAttribute('data-out-of-stock', 'true');
4901             purchaseButton.style.backgroundColor = '#cccccc';
4902             purchaseButton.style.cursor = 'not-allowed';
4903           } else {
4904             // Check if button was disabled due to other conditions
4905             
4906             
4907             
4908             
4909             
4910             
4911             
4912             
4913             const isOtherDisabled = false || true || false;
4914             
4915             if (!isOtherDisabled) {
4916               purchaseButton.disabled = false;
4917               purchaseButton.textContent = 'customize your flower board';
4918               purchaseButton.removeAttribute('data-out-of-stock');
4919               purchaseButton.style.backgroundColor = '';
4920               purchaseButton.style.cursor = '';
4921             }
4922           }
4923         }
4924       })
4925       .catch(error => {
4926         console.error('Error checking inventory:', error);
4927       });
4928   }
4929 
4930   // Check inventory on page load
4931   document.addEventListener('DOMContentLoaded', function() {
4932     checkInventoryStatus();
4933     
4934     // Listen for variant changes
4935     const productSelect = document.getElementById('productSelect');
4936     if (productSelect) {
4937       productSelect.addEventListener('change', checkInventoryStatus);
4938     }
4939   });
4940 
4941   // Prevent form submission if out of stock
4942   document.addEventListener('click', function(e) {
4943     if (e.target.matches('button[data-out-of-stock="true"]')) {
4944       e.preventDefault();
4945       e.stopPropagation();
4946       alert('This product is currently out of stock and cannot be purchased.');
4947       return false;
4948     }
4949   });
4950 </script>
4950
4951 
4952 
4953   
4954 </div>
4955 
4956           </div>
4957         </div>
4958       </div>
4959     </div>
4960     <div id="product-bottom">
4961       
4962         <div class="product-description rte bg-card col-12 py-3 px-0 m-0" itemprop="description">
4963           <div class="container">
4964             
4965 
4966 
4967 
4968 
4969     <div class="short-desc-mobile d-block d-lg-none mb-3">
4970         <div class="short-desc">
4971             <ul>
4972 <li><strong>KOITOTO menghadirkan 21 cara akses bandar togel online resmi tanpa jalur belakang. Prosesnya aman, mudah, dan terpercaya. Manfaatnya akses lebih lancar, data akurat, serta pengalaman bermain yang nyaman dan profesional setiap saat.</strong></li>
4973         </div>
4974         <label class="more-mobile">Show More →</label>
4975     </div>
4976 
4977 <style>
4978 .animated-title {
4979     text-align: center;
4980     font-weight: bold;
4981     color: #079c02;
4982     font-size: 28px;
4983     position: relative;
4984     animation: glow 2s infinite alternate, moveUpDown 3s infinite;
4985 }
4986 
4987 /* Efek glow / bercahaya hijau */
4988 @keyframes glow {
4989     0% { text-shadow: 0 0 5px #079c02; color: #079c02; }
4990     50% { text-shadow: 0 0 20px #00ff55; color: #12d12b; }
4991     100% { text-shadow: 0 0 10px #1bff00; color: #079c02; }
4992 }
4993 
4994 /* Efek gerakan naik turun */
4995 @keyframes moveUpDown {
4996     0% { transform: translateY(0px); }
4997     50% { transform: translateY(-5px); }
4998     100% { transform: translateY(0px); }
4999 }
5000 </style>
5001 
5002 
5002<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/shopify-cartjs/1.1.0/cart.min.js"></script>
5002
5003 
5003<script>
5004   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});
5005 
5006   const productType = $("[data-product-type]").data("product-type")
5007   const productDate = Date.parse(new Date())
5008   
5009   const shop = 'outerbloom1.myshopify.com'
5010   const host = 'https://app.asmaraku.com'
5011   // const host = 'http://localhost:5001'
5012 
5013   const gsheet = "https://script.google.com/macros/s/AKfycbyqa6mPD6lVjU6hiHr12J8URZ2aJBGyxBsGQ0QtEIDari-rBk_9vSOITjSSmUXL1NwxEg/exec"
5014   
5015   const qrID = "041025" + randomString(4, 'aAbCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ')
5016 
5017   $("#properties-time").val(new Date().getTime())
5018 
5019   const isIOS = /iPhone|iPad|iPod/i.test(navigator.userAgent);
5020 
5021   if(!isIOS) {
5022     $("#full-date").attr("type", "button")
5023   }
5024 
5025   let dateTime = new Date();
5026   let today = dateTime.getDate();
5027   let day = dateTime.getDay();
5028   let hour = dateTime.getHours();
5029   let min = dateTime.getMinutes();
5030   let timeOfDay = hour + (min / 100);
5031 
5032   async function getFetch(url) {
5033     const response = await fetch(url);
5034     let status = false
5035     let result
5036     if(response.ok) {
5037       status = true
5038       result = await response.json();
5039     }
5040     return {
5041       status,
5042       data: result
5043     }
5044   }
5045 
5046   
5047 
5048   function setCookie(cname, cvalue, exMins) {
5049     var d = new Date();
5050     d.setTime(d.getTime() + (exMins*60*1000));
5051     var expires = "expires="+d.toUTCString();  
5052     document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
5053   }
5054 
5055   function getCookie(cname) {
5056     let name = cname + "=";
5057     let decodedCookie = decodeURIComponent(document.cookie);
5058     let ca = decodedCookie.split(';');
5059     for(let i = 0; i <ca.length; i++) {
5060       let c = ca[i];
5061       while (c.charAt(0) == ' ') {
5062         c = c.substring(1);
5063       }
5064       if (c.indexOf(name) == 0) {
5065         return c.substring(name.length, c.length);
5066       }
5067     }
5068     return "";
5069   }
5070 
5071   async function renderDate() {
5072     let dataDate = await getFetch(`${host}/api/shipping/date?domain=${shop}&productId=8359546319899&v=${Date.now()}`);
5073     console.log(dataDate, 'renderDate')
5074     const data = dataDate?.data
5075     const date = data.date
5076     const time = data.time
5077 
5078     console.log(date, 'DATE')
5079 
5080     const weekday = ["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];
5081     const monthly = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];
5082     const htmlDate = []
5083     for(let i = 0;i < date.length;i++) {
5084       const full = date[i].date
5085       const d = new Date(date[i].date);
5086       const day = weekday[d.getDay()];
5087       const dt = d.getDate();
5088       const mt = monthly[d.getMonth()];
5089       const yr = d.getFullYear();
5090       const isDate = Boolean(date[i].isEnabled)
5091       const cutoffpagi = date[i].cutoff?.pagi
5092       const cutoffsiang = date[i].cutoff?.siang
5093       const cutoffMalam = date[i].cutoff?.Malam
5094       var html = `
5095         <button data-id="8359546319899" 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'}>
5096           ${dt === today ?
5097             `Today<span>${dt < 10 ? '0' + dt : dt}</span>` :
5098             `${day}<span>${dt < 10 ? '0' + dt : dt}</span>`
5099           }
5100         </button>
5101       `
5102       htmlDate.push(html)
5103     }
5104     const htmlTime = []
5105     for(var i = 0;i < time.length;i++) {
5106       const timeText = time[i].text
5107       const timeTime = time[i].time
5108       const timeEnabled = time[i].isEnabled
5109       var html = `
5110           <button class="time-single calendarbutton2 btn steps-btn" data-time="${timeText}" ${timeEnabled ? '' : 'disabled'}>${timeText}<br/>${timeTime}</button>
5111         `
5112       htmlTime.push(html)
5113     }
5114     const deliveryDate = document.getElementById("deliveryDate");
5115     if(deliveryDate) {
5116       deliveryDate.insertAdjacentHTML("afterbegin", htmlDate.join(''))
5117       $("#deliveryTime").html(htmlTime)
5118       if(productType !== '') {
5119         console.log("clarity event " + productType + ' calendaring')
5120         window.clarity("event", `${productType} calendaringSchedule`)
5121         // window.clarity("set", productType, `calendaringSchedule - ${productDate}`)
5122       }
5123     }
5124   }
5125 
5126   async function getProvince(city) {
5127     let { data: { province } } = await getFetch(`${host}/api/shipping/address/province?city=${city}`);
5128     console.log(province, 'province')
5129     $("#province").val(province)
5130   }
5131 
5132   async function renderAddress() {
5133     let current
5134     if(getCookie("location_delivery")){
5135       current = getCookie("location_delivery").charAt(0).toUpperCase() + getCookie("location_delivery").slice(1)
5136     }
5137     let address = await getFetch(`${host}/api/shipping/address?domain=${shop}&productId=8359546319899`);
5138     console.log(address)
5139     const data = address?.data?.city
5140     const htmlAddress = []
5141     const grouping = []
5142     for(let i = 0;i < data?.length;i++) {
5143       if(data[i]){
5144         if(data[i]?.group) {
5145           grouping.push(data[i].group)
5146         }
5147         const price = rupiah.format(data[i]?.rate)
5148         let promo = '(Promo Free Delivery)'
5149         if(data[i]?.name === 'Jakarta - PickUp ASHTA'){
5150           promo = '(at SCBD, Ashta)'
5151         } else if(data[i]?.name === 'Jakarta - PickUp ITC'){
5152           promo = '(at Kuningan, ITC Kuningan)'
5153         } else if(data[i]?.name === 'BSD - PickUp'){
5154           promo = '(at Goldfinch Gading Serpong)'
5155         } else if(data[i]?.name === 'Kota Lainnya'){
5156           promo = ''
5157         }
5158         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>`)
5159       }
5160     }
5161     
5162     const deliveryCity = document.getElementById("cities");
5163     if(deliveryCity) {
5164       deliveryCity.insertAdjacentHTML("beforeend", htmlAddress.join(''))
5165       if(!isIOS) {
5166         $(deliveryCity).select2();
5167       }
5168     }
5169   }
5170 
5171   async function renderZip(v, v2, v3) {
5172     const deliveryZip = document.getElementById("zip");
5173     if(v === '') {
5174       return
5175     }
5176     let dataZip = await getFetch(`${host}/api/shipping/address/zip?city=${v}&city2=${v2}&city3=${v3}`);
5177     let zip = dataZip?.data?.zip
5178     console.log(zip)
5179     let htmlZip = []
5180     for(let i = 0; i < zip?.length;i++) {
5181       htmlZip.push(`<option value="${zip[i]?.postalCode} - ${zip[i]?.subdistrict}">${zip[i]?.postalCode} - ${zip[i]?.subdistrict} - ${zip[i]?.city}</option>`)
5182     }
5183     deliveryZip.insertAdjacentHTML("beforeend", htmlZip.join(''))
5184   }
5185 
5186   renderDate()
5187   renderAddress()
5188 
5189   let rupiah = new Intl.NumberFormat('id-ID', {
5190     style: 'currency',
5191     currency: 'IDR',
5192     maximumFractionDigits: 0, 
5193     minimumFractionDigits: 0
5194   });
5195 
5196   async function insertCard(data) {
5197     const response = await fetch(`${host}/api/card/new`, {
5198         method: "POST",
5199         headers: {
5200           'Content-Type': 'application/json',
5201         },
5202         body: data
5203     })
5204     const result = await response.json()
5205     let rowIndex = result?.data?.tableRange.split("Outerbloom!A1:J")[1]
5206     $("#greetingCard").attr("data-index", rowIndex)
5207     return result
5208   }
5209     
5210   async function updateCard(data){
5211     const rowIndex = $("#greetingCard").data("index")
5212     const response = await fetch(`${host}/api/card/update?rowIndex=${rowIndex}`, {
5213         method: "PUT",
5214         headers: {
5215           'Content-Type': 'application/json',
5216         },
5217         body: data
5218     })
5219     return response
5220   }
5221     
5222   function bytesToSize(bytes) {
5223     var sizes = ['b', 'kb', 'mb', 'gb', 'tb', 'p'];
5224     for (var i = 0; i < sizes.length; i++) {
5225       if (bytes <= 1024) {
5226         return bytes + ' ' + sizes[i];
5227       } else {
5228         bytes = parseFloat(bytes / 1024).toFixed(2)
5229       }
5230     }
5231     return bytes + ' P';
5232   }
5233 
5234   async function uploadMedia(uri, type) {
5235     nameq = $("#properties-nama-penerima").val()
5236     dear = $("#properties-kartu-nama-penerima").val()
5237     card = $("[data-properties=ucapan]").val()
5238     sender = $("#properties-kartu-nama-pengirim").val()
5239     photo = $("#properties-photo").val()
5240     video = $("#properties-video").val()
5241     status = "Product"
5242         
5243     const name = qrID
5244     let formData = new FormData(); 
5245     formData.append("file", uri);
5246     const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, {
5247       method: "POST", 
5248       body: formData
5249     })
5250     const result = await response.json();
5251     if(result) {
5252       const url = result.url
5253       if(type === 'image/jpeg') {
5254         $("#properties-photo").val(url)
5255         $(".preview-image").show()
5256         $(".remove-image").show()
5257         photo = url
5258       } else {
5259         $("#properties-video").val(url)
5260         $("#label-input-video span").text("Change File")
5261         $(".case-qrcode-preview p").text("Scan here for a secret message")
5262         $(".remove-media").show()
5263         $("#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>`)
5264         $("[for=input-video]").hide()
5265         video = url
5266       }
5267       $(".case-video-preview").show()
5268       $(".steps-card-preview").removeClass("loading")
5269       // updateCard(nameq, dear, card, sender, photo, video, status)
5270 
5271       $(".nextBtn").attr("disabled", false)
5272     }
5273   }
5274 
5275   function randomString(length, chars) {
5276     var result = '';
5277     for (var i = length; i > 0; --i) result += chars[Math.round(Math.random() * (chars.length - 1))];
5278     return result;
5279   }
5280 
5281   function getNoteCity(fulldate) {
5282     const h_1 = new Date(new Date().setDate(new Date().getDate() + 1))
5283     const weekday = ["Min","Sen","Sel","Rab","Kam","Jum","Sab"];
5284     const monthly = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];
5285     const d = new Date(h_1);
5286     const day = weekday[d.getDay()];
5287     const dt = d.getDate();
5288     const mt = monthly[d.getMonth()];
5289     const yr = d.getFullYear();
5290     const p = $("#cities").parent(".form-group")
5291   }
5292 
5293   function disabledSameDay() {
5294     let btnFirst = $("#deliveryDate").find("button:first-child")
5295     let getDay = new Date().getDay();
5296 
5297     
5298       
5299       if(getDay == 1 || getDay == 2 || getDay == 3 || getDay == 4 || getDay == 5){
5300         if(hour >= 14.00){
5301           btnFirst.attr("disabled", true)
5302         }
5303       } else if(getDay == 6){
5304         if(hour >= 16.00){
5305           btnFirst.attr("disabled", true)
5306         }
5307       } else if(getDay == 0){
5308         if(hour >= 16.00){
5309           btnFirst.attr("disabled", true)
5310         }
5311       }
5312       
5313     
5314   }
5315 
5316   function disabledays(date) {
5317     let ymd = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate();
5318     //if u have to disable a list of day
5319     let removeDays
5320     
5321     
5322     
5323         removeDays = ["2025-2-13", "2025-2-14"];
5324     
5325     if ($.inArray(ymd, removeDays) >= 0) {
5326       return [false];
5327     } else {
5328       let day = date.getDay();
5329       if(day == 0 && date.getDate() == 13 && date.getMonth() == 1){
5330           return [(day == 0),  ''];
5331       }
5332       
5333       if(day == 0){
5334         return [(day == 0),  ''];
5335       }
5336       
5337       
5338       return [(day != 0),  ''];
5339     }
5340   }
5341 
5342   /* Indonesian initialisation for the jQuery UI date picker plugin. */
5343   /* Written by Deden Fathurahman ([email protected]). */
5344   ( function( factory ) {
5345     if ( typeof define === "function" && define.amd ) {
5346 
5347       // AMD. Register as an anonymous module.
5348       define( [ "../widgets/datepicker" ], factory );
5349     } else {
5350 
5351       // Browser globals
5352       factory( jQuery.datepicker );
5353     }
5354   }( function( datepicker ) {
5355 
5356   datepicker.regional.id = {
5357     closeText: "Tutup",
5358     prevText: "&#x3C;mundur",
5359     nextText: "maju&#x3E;",
5360     currentText: "Today",
5361     monthNames: [ "January","February","March","April","May","Juny",
5362                   "July","August","September","October","November","December" ],
5363     monthNamesShort: [ "Jan","Feb","Mar","Apr","May","Jun",
5364                       "Jul","Agu","Sep","Oct","Nov","Dec" ],
5365     dayNames: [ "Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu" ],
5366     dayNamesShort: [ "Sun","Mon","Tue","Wed","Thu","Fri","Sat" ],
5367     dayNamesMin: [ "Mg","Sn","Sl","Rb","Km","jm","Sb" ],
5368     weekHeader: "Mg",
5369     dateFormat: "D, dd M",
5370     firstDay: 0,
5371     isRTL: false,
5372     showMonthAfterYear: false,
5373     yearSuffix: "" };
5374   datepicker.setDefaults( datepicker.regional.id );
5375 
5376   return datepicker.regional.id;
5377 
5378 } ) );
5379 
5380   function loadPopup() {
5381     $("#backgroundPopup").fadeIn("slow");
5382     $(".purchasePopup:not(.purchasePopupSpotify)").fadeIn("slow");
5383     const firstSection = $(".purchasePopup:not(.purchasePopupSpotify) .sectionPurchase").first()
5384     if(firstSection.hasClass("purchasePersonalize")) {
5385       if(productType !== '') {
5386         console.log("clarity event " + productType + ' personalize')
5387         window.clarity("event", `${productType} cardPersonalization`)
5388         // window.clarity("set", productType, `cardPersonalization - ${productDate}`)
5389       }
5390     } else if (firstSection.hasClass("sectionPurchaseBoard")) {
5391         console.log("clarity event " + productType + ' personalizeBoard')
5392         window.clarity("event", `${productType} personalizeBoard`)
5393         // window.clarity("set", productType, `personalizeBoard - ${productDate}`)
5394     }
5395     firstSection.removeClass("hide")
5396     
5397     // Auto-trigger addon loading when addon section becomes visible
5398     setTimeout(function() {
5399       const addonSection = $(".purchaseAddon")
5400       if(addonSection.length > 0 && !addonSection.hasClass("hide")) {
5401         if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) {
5402           $("[data-addon=upsell-all]").trigger("click")
5403         }
5404       }
5405     }, 200)
5406   }
5407 
5408   function disablePopup() {
5409     $("#backgroundPopup").fadeOut("slow");
5410     $(".purchasePopup").fadeOut("slow");
5411     $("#popupCart").fadeOut("slow");
5412   }
5413 
5414     function scrollTo(parent, div, dur) {
5415       $(parent).animate({
5416         scrollTop: $(div).offset().top
5417       }, dur);
5418     }
5419 
5420   function loadPopupPersonalize() {
5421     const div = "#purchaseProduct"
5422     const p = "html, body, .product-meta"
5423     $("p.error").remove()
5424     loadItemOccasion($("[data-occassion]").eq(0), "greeting-card-all")
5425     const isCity = $("#cities[required]")
5426     const isDate = $("#propDeliveryDate[required]")
5427     const isTime = $("#propDeliveryTime[required]")
5428     // loadPopup()
5429     if(isCity.val() !== '' && isDate.val() !== '' && isTime.val() !== '') {
5430       loadPopup()
5431     }
5432     if(isCity.val() == '') {
5433       isCity.parent(".row").append("<p class='error'>Choose delivery city</p>")
5434       scrollTo(p, div, 500)
5435     }
5436     if(isDate.val() == '') {
5437       isDate.parents(".row").append("<p class='error'>Choose delivery date</p>")
5438       scrollTo(p, div, 500)
5439     }
5440     if(isTime.val() == '') {
5441       isTime.parents(".row").append("<p class='error'>Choose delivery time</p>")
5442       scrollTo(p, div, 500)
5443     }
5444   }
5445 
5446   function quantityCounter() {
5447     $(document).on("click", ".item-card.selected .q_up", function () {
5448       var C = $(this).attr("data-id"),
5449           S =
5450               parseInt(
5451                   $(this)
5452                       .siblings(".quantity-cart-" + C)
5453                       .val()
5454               ) + 1;
5455       $(this).attr("data-quantity", S),
5456           $(this)
5457               .siblings(".quantity-cart-" + C)
5458               .val(S);
5459     }),
5460     $(document).on("click", ".item-card.selected .q_down", function () {
5461         var C = $(this).attr("data-id"),
5462             S = parseInt(
5463                 $(this)
5464                     .siblings(".quantity-cart-" + C)
5465                     .val()
5466             );
5467         0 < S && $(this).attr("data-quantity", S - 1),
5468             0 < S &&
5469                 $(this)
5470                     .siblings(".quantity-cart-" + C)
5471                     .val(S - 1);
5472     });
5473   }
5474 
5475   quantityCounter()
5476 
5477   const itemAddon = $(".item-card").length
5478   const nofree = $(".nofree").length
5479 
5480   const upsell = ''
5481   
5482   if(nofree === itemAddon) {
5483       // $("#itemAddons").html("<p>No Items available</p>")
5484   }
5485 
5486   $("#itemAddons .item-card").each(function(e){
5487       $("#itemAddons").attr("data-length", e)
5488   })
5489 
5490   $("[data-addon]").click(function(){
5491       
5492       
5493       
5494       const t = $(this)
5495       
5496       const data = t.data("addon")
5497       
5498       $("[data-addon]").removeClass("selected")
5499       t.addClass("selected")
5500       $.get(`https://outerbloom.com/collections/${data}/products.json`, function(data, status){
5501           const products = data.products
5502           const html = []
5503           for(let i = 0; i < products.length; i++) {
5504               const id = products[i].id
5505               const variantId = products[i].variants[0].id
5506               const img = products[i].images[0].src
5507               let img2 = img.split('.jpg')[0]
5508               const title = products[i].title
5509               const price = products[i].variants[0].price
5510               const tags = products[i].tags
5511               const qty = products[i].variants[0].available
5512               let type_upsell = ''
5513               if(tags.includes('upsell-item-standing')) {
5514                   type_upsell = 'standing'
5515               }
5516               console.log(type_upsell)
5517               if(type_upsell !== '') {
5518                   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}">
5519                       
5520                           <div class="card-image">
5521                               <img src="${img2}_150x.jpg" alt="${title}" width="" height="" />
5522                           </div>
5523                           <div class="card-meta">
5524                               <h5>${title}</h5>
5525                               <p>${price < 1 ? 'FREE' : rupiah.format(price)}</p>
5526                               <input id="card-${variantId}" type="hidden" name="" value="${variantId}">
5527                           </div>
5528                           <div class="card-qty">
5529                               <a data-quantity="1" type="submit" id="q_down-${variantId}" class="btn-qty-min q_down drawer-cart" data-id="${variantId}"><svg xmlns="https://imgmahasuhu.io/images/2026/08/11/giflogo_koi1.gif" width="12" height="2" viewBox="0 0 12 2" fill="none"><path d="M0 1.90869V0.908691H12V1.90869H0Z" fill="black"/></svg></a>  
5530                               <input maxlength="3" min="0" class="btn-qty text-center quantity-cart-${variantId}
5530" value="0" data-price=${price} name="quantity">
5531                               <a data-quantity="1" type="submit" class="btn-qty-plus q_up text-green drawer-cart" data-id="${variantId}"><svg xmlns="https://imgmahasuhu.io/images/2026/08/11/giflogo_koi1.gif" width="12" height="13" viewBox="0 0 12 13" fill="none">
5532 <path d="M0 6.87023V5.94715H5.53846V0.408691H6.46154V5.94715H12V6.87023H6.46154V12.4087H5.53846V6.87023H0Z" fill="black"/>
5533 </svg></a>   
5534                           </div>
5535                       </div>`
5536                   html.push(body)
5537               }
5538           }
5539           $("#itemAddons .row").html(html.length === 0 ? '<p>No Item available</p>' : html)
5540           $("#itemAddons").attr("data-length", products.length)
5541           // $('#itemAddons')[0].swiper.update();
5542       });
5543   })
5544 
5545   async function isAddon(){
5546     let ids = []
5547     $("#itemAddons .item-card.selected").each(function(i, e){
5548       const id = $(this).data("id")
5549       ids.push(id)
5550     })
5551     console.log(ids)
5552     return ids
5553   }
5554   
5555   $("#itemAddons").delegate(".item-card > div:not(.card-qty)", "click", async function(){
5556     const t = $(this).parent()
5557     const id = t.data("id")
5558     const btn =  t.parents(".purchaseAddon").find(".next-purchase-button")
5559     t.toggleClass("selected");
5560     //$(this).next("input").toggleAttr('name', 'id[]');
5561     if (t.hasClass('selected')) {
5562         t.find("input").val(1)
5563         t.find("input").attr('name', 'id[]');
5564     } else {
5565         t.find("input").val(0)
5566         t.find("input").removeAttr('name');
5567     }
5568     $("#properties-addons").val(addons)
5569     const is = await isAddon()
5570     if(is.length === 0) {
5571       btn.text("continue without add-ons")
5572       return
5573     }
5574     if(is.includes(8835692069079)) {
5575       btn.text("personalize acrylic frame")
5576     } else {
5577       btn.text("Continue")
5578     }
5579       
5580   })
5581 
5582   async function myAddon(data) {
5583     const c = $(".addonsPurchase .addons")
5584     let items = []
5585     
5586     const spotifyAddons = $(".spotifyAddons").find("[data-index]")
5587     // if(spotifyAddons.length > 0) {
5588     //   $(spotifyAddons).each(function(i, e){
5589     //     const spotifyLink = $(this).find(".spotifyLink").val()
5590     //     const spotifySong = $(this).find(".spotifySong").val()
5591     //     const spotifyArtist = $(this).find(".spotifyArtist").val()
5592     //     const spotifyFotoAddon = $(this).find(".resultPhotoSpotify").val()
5593     //     if(spotifyLink !== '') {
5594     //       spotifyAddon = `<div class="addon-item" data-id="46067682607319" data-qty="1">
5595     //         <div class="addon-itm-img">
5596     //           <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"/>
5597     //         </div>
5598     //         <div class="addon-itm-title">
5599     //           <span>[US] Outerbloom Acrylic Frame 4R</span>
5600     //         </div>
5601     //         <div class="addon-itm-line-total">
5602     //           <span>Rp 99.000</span>
5603     //         </div>
5604     //       </div>
5605     //       <div class="propsAddonSpotify row m-0">
5606     //         <div class="col-12 col-lg-2"></div>
5607     //           <div class="col-12 col-lg-10">
5608     //             <p>
5609     //               <span>spotify link</span>
5610     //               <span class="spotifyLinkAddon">${spotifyLink}</span>
5611     //             </p>
5612     //             <p>
5613     //               <span>uploaded photo</span>
5614     //               <span class="spotifyFotoAddon">${spotifyFotoAddon}</span>
5615     //             </p>
5616     //             <p>
5617     //               <span>song / playlist name</span>
5618     //               <span class="spotifySongAddon">${spotifySong}</span>
5619     //             </p>
5620     //             <p>
5621     //               <span>artist name</span>
5622     //               <span class="spotifyArtistAddon">${spotifyArtist}</span>
5623     //             </p>
5624     //           </div>
5625     //       </div>`
5626     //       items.push(spotifyAddon)
5627     //     }
5628     //   })
5629     // }
5630     for(let i = 0; i < data.length; i++) {
5631       if(data[i].title !== '[US] Outerbloom Acrylic Frame 4R' ) {
5632         const img = data[i].image
5633         const title = data[i].title
5634         const qty = data[i].qty
5635         const price = data[i].price
5636         const total = Number(qty) * Number(price)
5637         let addons = `<div class="addon-item" data-id="${data[i].id}" data-qty="${qty}">
5638               <div class="addon-itm-img">
5639                 <img src="${img}" alt="" width="70"/>
5640               </div>
5641               <div class="addon-itm-title">
5642                 <span>${title}</span>
5643               </div>
5644               <div class="addon-itm-line-price">
5645                 <span>${rupiah.format(price)}</span>
5646                 ${data[i].title == '[US] Outerbloom Acrylic Frame 4R' ? '' : `<span>x${qty}</span>`}
5647               </div>
5648               <div class="addon-itm-line-total">
5649                 <span>${rupiah.format(total)}</span>
5650               </div>
5651             </div>`
5652           items.push(addons)
5653       }
5654     }
5655     c.html(items)
5656     const parent = $(".purchaseAddon")
5657     const next = parent.next(".sectionPurchase")
5658     parent.addClass("hide")
5659     next.removeClass("hide")
5660     // if(items2.length === 0) return $("#popupCart").addClass("no-addon-cart")
5661     // $(".itemAddonCart").find("h4").text(`add-ons (${items2.length})`)
5662   }
5663 
5664   async function listAddon() {
5665     const data = $("#itemAddons").find(".selected")
5666     let ids = []
5667     $(data).each(function(){
5668       const id = $(this).data("variant")
5669       const image = $(this).find(".card-image img").attr("src")
5670       const title = $(this).find(".card-meta h5").text()
5671       const qty = $(this).find(".card-qty input").val()
5672       const price = $(this).find(".card-qty input").data("price")
5673       ids.push({
5674         id: Number(id),
5675         image,
5676         title,
5677         qty,
5678         price
5679       })
5680     })
5681     myAddon(ids)
5682   }
5683 
5684   async function customSpotify(idx, length, type){
5685     let isCard = false
5686     
5687     let p = $(".purchasePopupSpotify")
5688     const preLink = $(".spotifyLinkFirst").val()
5689     $("[data-index]").hide()
5690     p.find(".headerPurchase h3").text(`personalize spotify photo print${length > 1 ? ` - ${idx}` : ''}`)
5691     p.find(".regulerAddons, .purchase-button").hide()
5692     p.find(".spotifyAddons").show()
5693     
5694     const data = await trackUrl(preLink)
5695     
5696     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://imgmahasuhu.io/images/2026/08/11/giflogo_koi1.gif" width="13" height="11" viewB
5696ox="0 0 13 11" fill="none">
5697 <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"/>
5698 </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://imgmahasuhu.io/images/2026/08/11/giflogo_koi1.gif><path d="M14.5799 7.41992L2.32992 7.41992L7.57992 12.6699L6.91992 13.4199L0.419922 6.91992L6.91992 0.419922L7.57992 1.16992L2.32992 6.41992L14.5799 6.41992V7.41992Z"fill=black /></svg> <span>Back</span></button><button data-type="${isCard ? 'card' : ''}" ${isCard ? '' : 'id=addtocart-card'} class="text-uppercase btn w-100${type == 'addon' && idx == length ? ' finished' : ' no-addon'}" disabled>${isCard ? 'Continue Personalizing' : 'add to cart'}</button></div></div></div><div class="col-12 col-lg-6 columnRight"><div class=frame-spotify><div class=frameImage><div class=frameImageUploaded><svg xmlns="https://imgmahasuhu.io/images/2026/08/11/giflogo_koi1.gif" width="13" height="11" viewB
5698ox="0 0 13 11" fill="none">
5699 <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"/>
5700 </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>`
5701     // console.log(html)
5702     
5703     $(".spotifyAddons").append(html)
5704     
5705     $(`[data-index=${idx}]`).show()
5706     
5707     if (preLink !== '') {
5708       $(".btn-action .btn").attr("disabled", false)
5709     } else {
5710       $(".btn-action .btn").attr("disabled", true)
5711     }
5712 
5713     return html
5714     
5715   }
5716 
5717   $(".spotifyLinkFirst").keyup(async function(){
5718     const v = $(this).val()
5719     if(v.includes('spotify:user:spotify')) {
5720       const correct = v.split('user:spotify:')[1]
5721       console.log(correct, 'BNER')
5722       $(this).val(correct)
5723       return
5724     }
5725     if(v.includes("spotify:") || v.includes("https://open.spotify.com/")){
5726       const data = await trackUrl(v)
5727       if(!data || !data.status) {
5728         $(this).parent().addClass("error")
5729         // $(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>`)
5730         $("#personalizeBtnSpotify .btn").attr("disabled", true)
5731         return
5732       }
5733       $(this).parent().removeClass("error")
5734       // $(this).parent().remove("txt-error")
5735       $("#personalizeBtnSpotify .btn").attr("disabled", false)
5736     } else {
5737       $("#personalizeBtnSpotify .btn").attr("disabled", true)
5738     }
5739   })
5740 
5741   $(".purchaseAddon").delegate(".next-addon", "click", function(){
5742     const parent = $(this).parents(".purchaseAddon")
5743     const next = parent.next(".sectionPurchase")
5744     if(next.hasClass("purchaseAddress")) {
5745       if(productType !== '') {
5746         console.log("clarity event " + productType + ' purchaseDelivery')
5747         window.clarity("event", `${productType} purchaseDelivery`)
5748         // window.clarity("set", productType, `purchaseDelivery - ${productDate}`)
5749       }
5750     }
5751     const data = $("#itemAddons").find(".selected")
5752     const length = $(".quantity-cart-46067682607319").val()
5753     const checked = data.length;
5754     if(checked > 0) {
5755       if(length > 0) {
5756         $(".purchaseAddon").addClass("purchaseAddonSpotify")
5757         customSpotify(1, length, 'addon')
5758       } else {
5759         listAddon()
5760       }
5761     } else {
5762       parent.addClass("hide")
5763       next.removeClass("hide")
5764     }
5765   })
5766 
5767   $("#personalizeBtnSpotify .btn").click(async function(){
5768     const isCity = $("#cities[required]")
5769     const isDate = $("#propDeliveryDate[required]")
5770     if((isDate.length > 0 && isCity.length > 0) && (isCity.val() === '' || isDate.val() === '')) {
5771       alert('Please choose Delivery City & Delivery Date')
5772       return
5773     }
5774     const data = await customSpotify(1, 1, 'product')
5775     if(data) {
5776       $("#backgroundPopup").fadeIn("slow");
5777       $(".purchasePopupSpotify").fadeIn("slow");
5778 
5779       if(productType !== '') {
5780         console.log("clarity event " + productType + ' spotify')
5781         window.clarity("event", `${productType} spotify`)
5782         // window.clarity("set", productType, `purchaseDelivery - ${productDate}`)
5783       }
5784     }
5785   })
5786 
5787   function formatBytes(bytes, decimals = 2) {
5788     if (!+bytes) return '0 Bytes'
5789 
5790     const k = 1024
5791     const dm = decimals < 0 ? 0 : decimals
5792     const sizes = ['B', 'KB', 'MB']
5793 
5794     const i = Math.floor(Math.log(bytes) / Math.log(k))
5795 
5796     return `${parseFloat((bytes / Math.pow(k, i)).toFixed(dm))} ${sizes[i]}`
5797   }
5798 
5799   async function trackUrl(link){
5800     try {
5801       let trackId = link.split('/').pop().split('?')[0];
5802       let type = ''
5803       if(link.includes("spotify:")) {
5804         const uri = link.split('spotify:')[1]
5805         trackId = uri.split(':')[1]
5806         type = uri.split(':')[0] + 's'
5807       } else {
5808         if(link.match('track')){
5809           type = 'tracks'
5810         } else if(link.match('playlist')) {
5811           type = 'playlists'
5812         } else if(link.match('artist')) {
5813           type = 'artists'
5814         } else if(link.match('album')) {
5815           type = 'albums'
5816         }
5817       }
5818       console.log(`${host}/api/spotify/${type}/${trackId}`)
5819       const data = await getFetch(`${host}/api/spotify/${type}/${trackId}`)
5820       console.log(data, 'DATA')
5821       const song = data?.data?.name
5822       const artist = data?.data?.artist
5823       return {
5824         song, artist, type, trackId, status: data.status
5825       }
5826     } catch(err) {
5827       console.log(err)
5828     }
5829   }
5830 
5831   $(".spotifyAddons").delegate(".uploadPhotoSpotify", "change", async function(){
5832     const parent = $(this).parents("[data-index]")
5833     const preview = parent.find(".previewImage")
5834     const file = $(this)[0].files[0];
5835     if (file) {
5836         const reader = new FileReader();
5837         reader.onload = async function(e) {
5838           parent.find(".uploadResult label").hide()
5839           parent.find(".uploadedResult").remove()
5840           parent.find(".uploadResult").append(`<div class="uploadedResult d-flex" style="justify-content: space-between">
5841           <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>
5842           <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;">
5842<svg fill="none" height="11" viewBox="0 0 10 11" width="10" xmlns="https://imgmahasuhu.io/images/2026/08/11/giflogo_koi1.gif">
5843   <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 />
5844 </svg>
5845 </span></div></div>`)
5846           parent.find(".frameImageUploaded svg").hide()
5847           parent.find(".frameImage").addClass("uploaded")
5848           preview.attr("src", e.target.result);
5849           preview.show();
5850           let formData = new FormData(); 
5851           formData.append("file", file);
5852           const response = await fetch(`${host}/api/upload?name=${file.name}&type=image/jpeg&r=${Date.parse(new Date)}`, {
5853             method: "POST", 
5854             body: formData
5855           })
5856           const result = await response.json();
5857           if(result){
5858             parent.find(".resultPhotoSpotify").val(result.url)
5859           }
5860         }
5861         
5862         reader.readAsDataURL(file);
5863     } else {
5864         preview.hide();
5865     }
5866   });
5867 
5868   $(".spotifyAddons").delegate(".uploadResult", "click", function(){
5869     $(this).next("input[type=file]").trigger("click")
5870   })
5871 
5872   $(".spotifyAddons").delegate(".changeUpload", "click", function(){
5873     $(this).parents("input[type=file]").trigger("click")
5874   })
5875 
5876   $(".spotifyAddons").delegate(".removeUpload", "click", function(){
5877     const parent = $(this).parents("[data-index]")
5878     parent.find(".uploadPhotoSpotify").val("")
5879     parent.find(".uploadResult label").show()
5880     parent.find(".uploadedResult").remove()
5881     parent.find(".frameImageUploaded svg").show()
5882     parent.find(".previewImage").hide()
5883     parent.find(".frameImage").removeClass("uploaded")
5884   })
5885 
5886   $(".spotifyAddons").delegate("label.checkbox", "click", function(){
5887     const parent = $(this).parents("[data-index]")
5888     parent.toggleClass("checked")
5889   })
5890 
5891   $(".spotifyAddons").delegate(".spotifyLink", "change", async function(){
5892     const parent = $(this).parents("[data-index]")
5893     const link = $(this).val()
5894     const data = await trackUrl(link)
5895 
5896     console.log(data)
5897 
5898     if(data.song) {
5899       parent.find(".spotifySong").val(data.song)
5900       parent.find(".spotifyData").find("h3").text(data.song)
5901     }
5902     if(data.artist) {
5903       parent.find(".spotifyArtist").val(data.artist)
5904       parent.find(".spotifyData").find("p").text(data.artist)
5905     }
5906     parent.find(".spotifyCode img").attr("src", `https://scannables.scdn.co/uri/plain/png/FFFFFF/black/640/spotify:${data.type.slice(0, -1)}:${data.trackId}`)
5907     // https://scannables.scdn.co/uri/plain/png/FFFFFF/black/640/spotify:track:1er51HCEBhIAtoEemKuC3M
5908     if (data.status === true) {
5909       parent.find(".btn-action .btn").attr("disabled", false)
5910     } else {
5911       parent.find(".btn-action .btn").attr("disabled", true)
5912     }
5913   })
5914   
5915   $(".spotifyAddons").delegate(".spotifySong", "keyup", async function(){
5916     const parent = $(this).parents("[data-index]")
5917     const v = $(this).val()
5918     parent.find(".spotifyData h3").text(v)
5919   })
5920 
5921   $(".spotifyAddons").delegate(".spotifyArtist", "keyup", async function(){
5922     const parent = $(this).parents("[data-index]")
5923     const v = $(this).val()
5924     parent.find(".spotifyData p").text(v)
5925   })
5926 
5927   $(".spotifyAddons").delegate(".btn-action .btn:not(.no-addon)", "click", async function(){
5928     const parent = $(this).parents("[data-index]")
5929     const length = parent.data("length")
5930     const index = parent.data("index")
5931     const indexNext = Number(index) + 1
5932     customSpotify(indexNext, length, 'addon')
5933   })
5934 
5935   
5936   $(".spotifyAddons").delegate(".btn-action .btn.finished", "click", async function(){
5937     const parent = $(this).parents(".purchaseAddon")
5938     const next = parent.next(".sectionPurchase")
5939     parent.addClass("hide")
5940     next.removeClass("hide")
5941     next.find(".purchase-button").show()
5942     listAddon()
5943   })
5944 
5945   $(".spotifyAddons").delegate(".back-spotify", "click", async function(){
5946     const t = $(this).parents("[data-index]")
5947     const parent = $(this).parents(".sectionPurchase")
5948     const current = t.data("index")
5949     const prevCurrent = Number(current) - 1
5950     if(current == 1) {
5951       parent.removeClass("purchaseAddonSpotify")
5952       parent.find(".purchase-button").show()
5953       parent.find(".headerPurchase h3").text("Make It More Special with Add-Ons!")
5954       $(".spotifyAddons").empty()
5955       $(".regulerAddons").show()
5956       return
5957     }
5958     t.hide()
5959     t.prev("[data-index]").show()
5960     t.remove()
5961     parent.find(".headerPurchase h3").text(`personalize spotify photo print - ${prevCurrent}`)
5962   })
5963 
5964   $("#personalizeBtn .btn").click(async function() {
5965     loadPopupPersonalize()
5966   });
5967 
5968   $(".sectionPurchaseSpotify").delegate(".btn[data-type=card]", "click", function(){
5969     $(".sectionPurchaseSpotify").hide()
5970     loadPopupPersonalize()
5971   })
5972 
5973   $(".close-purchase-popup").click(function() {
5974       disablePopup();
5975   });
5976   $("#backgroundPopup").click(function() {
5977       // disablePopup();
5978   });
5979 
5980   $("#popupCart .close-purchase-popup").click(function() {
5981       location.reload()
5982   });
5983 
5984   $('#popupCart').on('hide.bs.modal', function (e) {
5985     location.reload()
5986   })
5987 
5988   $(".next-card").click(function(){
5989     const parent = $(this).parents(".sectionPurchase")
5990     const next = parent.next(".sectionPurchase")
5991     parent.addClass("hide")
5992     next.removeClass("hide")
5993   })
5994 
5995   $(".back-purchase-button").click(function(){
5996     const parent = $(this).parents(".sectionPurchase")
5997     const prev = parent.prev(".sectionPurchase")
5998     parent.addClass("hide")
5999     prev.removeClass("hide")
6000   })
6001   
6002   $(document).keypress(function(e) {
6003       if (e.keyCode == 27 && popupStatus == 1) {
6004           disablePopup();
6005       }
6006   });
6007   
6008   const parentImg = $(".case-img-preview")
6009   const parentVid = $(".case-video-preview")
6010   
6011   function readURL(input) {
6012     if (input.files && input.files[0]) {
6013       let reader = new FileReader();
6014 
6015       let type = 'image/jpeg'
6016       const size = input.files[0].size
6017       if(input.files[0].type.match('video/')){
6018         type = 'video/mp4'
6019         if(size > 15728640) {
6020           alert('File size exceeds maximum limit 15 MB')
6021           return
6022         }
6023       } else {
6024         if(size > 5242880) {
6025           alert('File size exceeds maximum limit 5 MB')
6026           return
6027         }
6028       }
6029 
6030       reader.onload = function (e) {
6031         $(".nextBtn").attr("disabled", true)
6032         if(type === 'image/jpeg') {
6033           
6034             $('.placeholder-image').hide();
6035             $('.preview-image').show()
6036             $('.preview-image').attr('src', e.target.result);
6037           
6038         } else {
6039           // parentVid.find(".ajax-loader").show();
6040           $(".steps-card-preview").addClass("loading")
6041         }
6042       }
6043 
6044       
6045 
6046       reader.readAsDataURL(input.files[0]);
6047     }
6048   }
6049 
6050   async function readURLPapan(input) {
6051     if (input.files && input.files[0]) {
6052       let reader = new FileReader();
6053 
6054       reader.onload = function (e) {
6055         $('.btn-upload-papan').siblings('label').hide();
6056         $('.btn-upload-papan img').attr('src', e.target.result);
6057         $('.btn-upload-papan img').show();
6058         $('.svgLogoPapan').hide();
6059       }
6060       
6061       const type = 'image/jpeg'
6062       const name = `logo-8359546319899-${Date.parse(new Date())}`
6063 
6064       let formData = new FormData(); 
6065       formData.append("file", input.files[0]);
6066       const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, {
6067         method: "POST", 
6068         body: formData
6069       })
6070       const result = await response.json();
6071       if(result) {
6072         const url = result.url
6073         $("[data-properties=papan-logo]").val(url)
6074       }
6075 
6076       reader.readAsDataURL(input.files[0]);
6077     }
6078   }
6079 
6080   async function readURLAddress(input) {
6081     console.log(input, 'readURLAddress')
6082     if (input.files && input.files[0]) {
6083       let reader = new FileReader();
6084 
6085       reader.onload = function (e) {
6086         $('.photo-address').attr('src', e.target.result);
6087         $('.photo-address').show();
6088       }
6089       
6090       const type = 'image/jpeg'
6091       const name = input.files[0].name?.split('.')[0]
6092 
6093       let formData = new FormData(); 
6094       formData.append("file", input.files[0]);
6095       const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, {
6096         method: "POST", 
6097         body: formData
6098       })
6099       const result = await response.json();
6100 
6101       reader.readAsDataURL(input.files[0]);
6102 
6103       return result
6104     }
6105   }
6106 
6107   
6108 
6109   
6110   async function addToCartUang() {
6111     var productAddOnId1 = 42122101162199;
6112     var productAddOnId2 = 42122101194967;
6113     var product_id = 8359546319899
6114     const data = {
6115       items: [
6116           {
6117               quantity: $("#Quantity-" + productAddOnId1).val(),
6118               id: productAddOnId1,
6119               "properties": { "Time": $("#properties-time").val() }
6120           },
6121           {
6122               quantity: $("#Quantity-" + productAddOnId2).val(),
6123               id: productAddOnId2,
6124               "properties": { "Time": $("#properties-time").val() }
6125           }
6126       ]
6127     }
6128     await fetch(window.Shopify.routes.root + 'cart/add.js', {
6129       method: 'POST',
6130       headers: {
6131         'Content-Type': 'application/json'
6132       },
6133       body: JSON.stringify(data)
6134     })
6135     .then(response => {
6136       console.error('Sukses Buket Uang:', response);
6137       $(".form-flower").submit()
6138     })
6139     .catch((error) => {
6140       console.error('Error Buket Uang:', error);
6141       $(".form-flower").submit()
6142     });
6143   }
6144   
6145   async function saveCard(){
6146     let isCard = true
6147     const kartu_penerima = $("[data-properties=penerima]").val() !== '' ? $("[data-properties=penerima]").val() : ''
6148     const kartu_pengirim = $("[data-properties=pengirim]").val() !== '' ? $("[data-properties=pengirim]").val() : ''
6149     const kartu_ucapan = $("[data-properties=ucapan]").val() !== '' ? $("[data-properties=ucapan]").val() : ''
6150     const foto = $("#properties-photo").val()
6151     const video = $("#properties-video").val()
6152     const data = JSON.stringify({
6153       "id": qrID, 
6154       "penerima": $("#properties-nama-penerima").val(), 
6155       "kartu_penerima": kartu_penerima, 
6156       "kartu_ucapan": kartu_ucapan, 
6157       "kartu_pengirim": kartu_pengirim, 
6158       "foto": foto,
6159       "video": video, 
6160       "productId": "8359546319899", 
6161       "order_name": "", 
6162       "status": "Cart"
6163     })
6164 
6165     
6166   }
6167 
6168   async function additem(items){
6169     try {
6170       let formData = items
6171       if(items?.length) {
6172         formData = {
6173            'items': items
6174         };
6175       }
6176   
6177       const add = await fetch(window.Shopify.routes.root + 'cart/add.js', {
6178         method: 'POST',
6179         headers: {
6180           'Content-Type': 'application/json',
6181           'X-Requested-With':'xmlhttprequest' /* XMLHttpRequest is ok too, it's case insensitive */
6182         },
6183         body: JSON.stringify(formData)
6184       })
6185   
6186       const data = await add.json();
6187       return data
6188     } catch(err){
6189       console.log('Error additem', err)
6190     }
6191   }
6192 
6193   async function addons(){
6194     let items = []
6195     $(".addon-item").each(function(){
6196       const p = $(this)
6197       const props = p.next(".propsAddonSpotify")
6198       const id = $(this).data("id")
6199       const quantity = $(this).data("qty")
6200       const propId = $("#properties-time").val()
6201       let properties = {}
6202       if(id === 46067682607319) {
6203         const link = props.find(".spotifyLinkAddon").text()
6204         const photo = props.find(".spotifyFotoAddon").text()
6205         const song = props.find(".spotifySongAddon").text()
6206         const artist = props.find(".spotifyArtistAddon").text()
6207         properties = {
6208           id: propId,
6209           "Spotify Link": link !== '' ? link : '-',
6210           "Spotify Photo": photo !== '' ? photo : '-',
6211           "Spotify Song": song !== '' ? song : '-',
6212           "Spotify Artist": artist !== '' ? artist : '-',
6213           type: 'addon'
6214         }
6215       } else {
6216         properties = { 
6217           "id": propId, 
6218           "type": "addon"
6219         }
6220       }
6221       items.push({
6222         id, 
6223         quantity, 
6224         properties
6225       })
6226     })
6227     return items
6228   }
6229 
6230   async function propItems() {
6231     let props = {}
6232     $("[data-properties]").each(function(e){
6233       let elementType = this.tagName;
6234       const k = $(this).data("properties")
6235       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') {
6236         const v = elementType === 'SELECT' ? $(this).find(":selected").val() : $(this).val();
6237         if(v !== '') {
6238           props[k] = v?.replace(/[\s\n]/g, '');
6239         }
6240       }
6241     })
6242     return props
6243   }
6244 
6245   async function showPopupCart(items){
6246     if(productType !== '') {
6247       console.log("clarity event " + productType + ' completeOrder')
6248       window.clarity("event", `${productType} completeOrder`)
6249       // window.clarity("set", productType, `completeOrder - ${productDate}`)
6250     }
6251     $("#popupCart").show()
6252     
6253       $(".propDeliveryCity").text($("#cities").val())
6254       $(".propDeliveryDate").text($("#propDeliveryDate").val())
6255       $(".propDeliveryTime").text($("#propDeliveryTime").val())
6256       $(".propDeliveryName").text($("[data-properties=nama-penerima]").val())
6257       $(".propDeliveryAddress").text($("[data-properties=alamat-penerima]").val())
6258       $(".propDeliveryPhone").text($("[data-properties=telepon-penerima]").val())
6259       $(".propDeliveryProv").text($("#province").val())
6260       $(".propDeliveryZip").text($("#zip").val())
6261       
6262     
6263 
6264     const addons = []
6265     if(items && items.length > 0) {
6266       for(let i = 1; i < items.length; i++) {
6267         const spotifyLink = items[i].properties['Spotify Link']
6268         const spotifyPhoto = items[i].properties['Spotify Photo']
6269         const spotifySong = items[i].properties['Spotify Song']
6270         const spotifyArtist = items[i].properties['Spotify Artist']
6271         const price = items[i].price / 100
6272         const props = spotifyLink ? `<div class="propsAddonCart row m-0">
6273                   <div class="col-12 col-lg-2"></div>
6274                   <div class="col-12 col-lg-10">
6275                     <p>
6276                       <span>spotify link</span>
6277                       <span>${spotifyLink}</span>
6278                     </p>
6279                     <p>
6280                       <span>Upload Photo</span>
6281                       <span>${spotifyPhoto}</span>
6282                     </p>
6283                     <p>
6284                       <span>song / playlist name</span>
6285                       <span>${spotifySong}</span>
6286                     </p>
6287                     <p>
6288                       <span>artist name</span>
6289                       <span>${spotifyArtist}</span>
6290                     </p>
6291                   </div>
6292                 </div>` : '';
6293         addons.push(`<div class="row m-0">
6294                   <div class="imgAddonCart col-2">
6295                     <img
6296                       width="43"
6297                       src="${items[i].image}"
6298                       alt=""
6299                     >
6300                   </div>
6301                   <div class="imgAddonTitlePrice col-10 align-self-center">
6302                     <div class="row justify-content-between m-0">
6303                       <div class="col-12 col-lg-8">
6304                         <h5>${items[i].title}</h5>
6305                       </div>
6306                       <div class="col-12 col-lg-4 text-lg-right">
6307                         <span>${rupiah.format(price)}</span>
6308                       </div>
6309                     </div>
6310                   </div>
6311                 </div>${props}`)
6312       }
6313     }
6314     // console.log(addons)
6315     if(addons.length === 0) {
6316       $(".itemAddonCart").hide()
6317       return
6318     }
6319     $(".toggleAddonCart h4").text(`add-ons (${items.length - 1})`)
6320     $(".wrapperItemAddonCart").html(addons)
6321   }
6322 
6323   const money = (money) => {
6324       return new Intl.NumberFormat('id-ID',
6325           { style: 'currency', currency: 'IDR', minimumFractionDigits: 0 }
6326       ).format(money);
6327   }
6328 
6329   async function showNoteMoney() {
6330     let qty50k = $("[data-properties='Uang 50k']").val()
6331     let qty100k = $("[data-properties='Uang 100k']").val()
6332     const total50k = Number(qty50k) * 50000
6333     const total100k = Number(qty100k) * 100000
6334     const total_all = total50k + total100k
6335     $(".prop50k").html(`<span>${qty50k} Lembar: <strong class="pl-1">${money(total50k)}</strong></span>`)
6336     $(".prop100k").html(`<span>${qty100k} Lembar: <strong class="pl-1">${money(total100k)}</strong></span>`)
6337     $(".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://amp.koitoto-tigan.com/" target="_blank" style="text-decoration: underline;
6337 color: #8d3f2d">Customer Service</a> to confirm with proof of payment.</p>`)
6338   }
6339 
6340   async function removeImage() {
6341     const data = JSON.stringify({
6342       "ID": $("#properties-properties-qrId").val(), 
6343       "Kartu Nama Penerima": $("#properties-kartu-nama-penerima").val(), 
6344       "Kartu Nama Pengirim": $("#properties-kartu-nama-pengirim").val(), 
6345       "Kartu Ucapan": $("[data-properties=ucapan]").val(), 
6346       "Nama Penerima": $("#properties-nama-penerima").val(), 
6347       "Order Number":"",
6348       "Status":"Product", 
6349       "Foto": "", 
6350       "Media": $("#properties-video").val(), 
6351       "Image": "8359546319899"
6352     })
6353     const remove = updateCard(data)
6354     if(remove) {
6355       $(this).hide()
6356       $("#properties-photo").val("-")
6357       $(".placeholder-image").show()
6358       $(".preview-image").attr("src", "")
6359     }
6360   }
6361 
6362   async function removeVideo() {
6363     const data = JSON.stringify({
6364       "ID": $("#properties-properties-qrId").val(), 
6365       "Kartu Nama Penerima": $("#properties-kartu-nama-penerima").val(), 
6366       "Kartu Nama Pengirim": $("#properties-kartu-nama-pengirim").val(), 
6367       "Kartu Ucapan": $("[data-properties=ucapan]").val(), 
6368       "Nama Penerima": $("#properties-nama-penerima").val(), 
6369       "Order Number":"",
6370       "Status":"Product", 
6371       "Foto": $("#properties-photo").val(), 
6372       "Media": "", 
6373       "Image": "8359546319899"
6374     })
6375     const remove = updateCard(data)
6376     if(remove) {
6377       $("#properties-video").val("-")
6378       $(this).find("img").hide()
6379       $(this).hide()
6380       $(this).prev("p").text("Add video to make it more special (optional)")
6381       $("#label-input-video").show()
6382       $("#label-input-video span").text("Upload Video")
6383       $(".case-video-preview p span").remove()
6384     }
6385   }
6386 
6387   async function loadItemOccasion(t, occasion) {
6388     const name = occasion?.replace('greeting-card-', '')
6389     $("#kartu-ucapan").val("")
6390     $("[data-occassion]").removeClass("selected")
6391     $("[data-properties=ucapan]").val("")
6392     $("#save-card").attr("disabled", true)
6393     t.addClass("selected")
6394     $("#show_note").attr("data-card-occassion", name)
6395     $.get(`https://outerbloom.com/collections/${occasion}/products.json`, function(data, status){
6396         const products = data.products
6397         const html = []
6398         for(let i = 0; i < products.length; i++) {
6399             const id = products[i].id
6400             const variantId = products[i].variants[0].id
6401             const img = products[i].images[0].src
6402             const title = products[i].title
6403             const price = products[i].variants[0].price
6404             const qty = products[i].variants[0].inventory_quantity
6405             const body = `<div class="item-card${price < 1 ? ' free' : ' nofree'}${i === 0 ? ' selected' : ''}" data-id=${id}>
6406                 <label for="card-${variantId}"></label>
6407                     <div class="card-image">
6408                         <img src="${img}" alt="${title}" width="" height="" />
6409                     </div>
6410                     <div class="card-meta text-center">
6411                         <h5>${title}</h5>
6412                         <p>${price < 1 ? 'FREE' : rupiah.format(price)}</p>
6413                         <input id="card-${variantId}" type="radio" name="id" value="${variantId}" data-price="${price}">
6414                     </div>
6415                 </div>`
6416             html.push(body)
6417         }
6418         const withoutCard = `<div class="item-card item-without-card">
6419                 <label for="card-0"></label>
6420                     <div class="card-image">
6421                         <img src="https://cdn.shopify.com/s/files/1/1589/6833/t/129/assets/without-card.png?v=1747632283" alt="Without card" width="" height="" />
6422                     </div>
6423                     <div class="card-meta text-center">
6424                         <h5>
6424Send without a greeting card</h5>
6425                         <input id="card-0" type="radio" name="id" value="" data-price="">
6426                     </div>
6427                 </div>`
6428         $("#itemCards .items-card").html(html.length === 0 ? '<p>No Item available</p>' : html.join(""))
6429     });
6430   }
6431         
6432   $(document).ready(function(){
6433 
6434     // Observer to auto-trigger addon loading when addon section becomes visible
6435     const addonObserver = new MutationObserver(function(mutations) {
6436       mutations.forEach(function(mutation) {
6437         const target = $(mutation.target)
6438         if(target.hasClass('purchaseAddon') && mutation.type === 'attributes' && mutation.attributeName === 'class') {
6439           if(!target.hasClass('hide')) {
6440             // Addon section just became visible, ensure items are loaded
6441             setTimeout(function() {
6442               if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) {
6443                 console.log("Auto-triggering addon load...")
6444                 $("[data-addon=upsell-all]").trigger("click")
6445               }
6446             }, 150)
6447           }
6448         }
6449       })
6450     })
6451     
6452     // Start observing addon section
6453     const addonSection = document.querySelector('.purchaseAddon')
6454     if(addonSection) {
6455       addonObserver.observe(addonSection, { 
6456         attributes: true, 
6457         attributeFilter: ['class'] 
6458       })
6459     }
6460 
6461     $(".purchasePopup").delegate("#addtocart-card", "click", async function(){
6462     
6463     $(this).find("span").addClass("loading")
6464     let isValid = true
6465     $(".formAddressPurchase [required]").each(function(){
6466       const t = $(this)
6467       const input = t.val()
6468       const p = t.parent()
6469       if(input === '') {
6470         p.addClass("error")
6471         isValid = false
6472       }
6473     })
6474 
6475     if(!isValid) {
6476       $(this).find("span").removeClass("loading")
6477       return
6478     }
6479     
6480     let items = []
6481     const mainProps = {
6482       
6483         "Delivery Date": $("#propDeliveryDate").val(),
6484         "Delivery Time": $("#propDeliveryTime").val() !== '' ? $("#propDeliveryTime").val() : '-' ,
6485         "Kota Pengiriman": $("#cities").val(),
6486         "Nama Penerima": $("[data-properties=nama-penerima]").val() !== '' ? $("[data-properties=nama-penerima]").val() : '-' ,
6487         "Alamat Penerima": $("[data-properties=alamat-penerima]").val() !== '' ? $("[data-properties=alamat-penerima]").val() : '-' ,
6488         "Kodepos": $("#zip").val() !== '' ? $("#zip").val() : '-' ,
6489         "Telepon Penerima": $("[data-properties=telepon-penerima").val() !== '' ? $("[data-properties=telepon-penerima").val() : '-' ,
6490       
6491       
6492         "Papan Nama Penerima": $("[data-properties=penerima]").val() !== '' ? $("[data-properties=penerima]").val() : '-' ,
6493         "Papan Ucapan": $("[data-properties=ucapan]").val() !== '' ? $("[data-properties=ucapan]").val() : '-' ,
6494         "Papan Nama Pengirim": $("[data-properties=pengirim]").val() !== '' ? $("[data-properties=pengirim]").val() : '-' ,
6495         "Papan Logo": $("[data-properties=papan-logo]").val() !== '' ? $("[data-properties=papan-logo]").val() : '-' ,
6496         "Foto Alamat": $("[data-properties=foto-alamat]").val() !== '' ? $("[data-properties=foto-alamat]").val() : '-' ,
6497       
6498       
6499       "Province": $("#province").val() !== '' ? $("#province").val() : '-' ,
6500       "Country": $("#properties-kota-pengiriman-country").val() !== '' ? $("#properties-kota-pengiriman-country").val() : '-' ,
6501       "Shipping": $("#properties-shipping").val() !== '' ? $("#properties-shipping").val() : '-' ,
6502       "Company": $("[data-properties=company]").val() !== '' ? $("[data-properties=company]").val() : '-' ,
6503       "id": $("#properties-time").val() !== '' ? $("#properties-time").val() : '-',
6504       "type": 'product'
6505     }
6506     const props = await propItems()
6507     properties = {...mainProps, ...props };
6508     const id = $("#productSelect").find('option:selected').val()
6509     console.log(id, 'main ID')
6510     const mainItem = {
6511       id: Number(id),
6512       quantity: 1,
6513       properties
6514     }
6515     items.push(mainItem)
6516     const cardId = $("#itemCards").find(".selected input").val()
6517     const cardItem = {
6518       id: Number(cardId),
6519       quantity: 1,
6520       properties: { "id": $("#properties-time").val() !== '' ? $("#properties-time").val() : '-', type: 'card' }
6521     }
6522     console.log(cardId, 'cardId')
6523     if(cardId) {
6524       items.push(cardItem)
6525     }
6526     const addon = await addons()
6527     if(addon) {
6528       for(let i = 0;
6528 i < addon.length; i++){
6529         items.push({
6530           id: addon[i].id,
6531           quantity: addon[i].quantity,
6532           properties: addon[i].properties
6533         })
6534       }
6535     }
6536     const addItems = await additem(items)
6537     console.log(addItems.items, 'add items')
6538     if(addItems) {
6539       $(this).find("span").removeClass("loading")
6540       disablePopup()
6541       showPopupCart(addItems.items)
6542       
6543       localStorage.setItem("items", JSON.stringify(addItems.items))
6544     }
6545   })
6546   
6547   $("#addtocart-cart .btn").click(async function(){
6548     const id = $("#productSelect").find('option:selected').val()
6549     const mainProps = {
6550       id: $("#properties-time").val() !== '' ? $("#properties-time").val() : '-', 
6551       type: 'product'
6552     }
6553     const props = await propItems()
6554     const properties = { ...mainProps, ...props };
6555     const items = {
6556       id: Number(id),
6557       quantity: 1,
6558       properties
6559     }
6560     const addItems = await additem(items)
6561     if(addItems) {
6562       showPopupCart(addItems.items)
6563       localStorage.setItem("items", JSON.stringify(addItems))
6564     }
6565   })
6566 
6567   $(".formAddressPurchase [required]").change(function(){
6568     const t = $(this)
6569     const p = t.parent()
6570     const v = t.val()
6571     if(v !== '') {
6572       p.removeClass("error")
6573     }
6574   })
6575 
6576   $("#save-card").click(async function(){
6577     const parent = $(this).parents(".sectionPurchase")
6578     const next = parent.next(".sectionPurchase")
6579     $(this).find("span").addClass("loading")
6580     const card = await saveCard()
6581     console.log(card, 'ssaveCCC')
6582     if(card?.status === 200 || card?.status === 201) {
6583       $(".scanCard").removeClass("hide")
6584       $(this).find("span").removeClass("loading")
6585       parent.addClass("hide")
6586       next.removeClass("hide")
6587       if(next.hasClass("purchaseAddon")) {
6588         $("[data-addon=upsell-all]").click()
6589         console.log("clarity event addons")
6590         window.clarity("event", `${productType} add-ons`)
6591         // Ensure addon items are loaded when entering addon popup
6592         setTimeout(function() {
6593           if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) {
6594             $("[data-addon=upsell-all]").trigger("click")
6595           }
6596         }, 100)
6597       }
6598       if(next.hasClass("purchaseAddress")) {
6599         $("#zip").select2()
6600       }
6601     }
6602   })
6603 
6604   $("#skip-card").click(async function(){
6605     $("#greetingCard [data-properties]").val("")
6606     $("#properties-photo").val("")
6607     $("#properties-video").val("")
6608     const parent = $(this).parents(".sectionPurchase")
6609     const next = parent.next(".sectionPurchase")
6610     parent.addClass("hide")
6611     next.removeClass("hide")
6612     // $("#itemCards").html("")
6613     removeImage()
6614     removeVideo()
6615     if(next.hasClass("purchaseAddon")) {
6616       $("[data-addon='upsell-all']").click()
6617       console.log("clarity event addons")
6618       window.clarity("event", `${productType} add-ons`)
6619       // Ensure addon items are loaded when entering addon popup
6620       setTimeout(function() {
6621         if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) {
6622           $("[data-addon='upsell-all']").trigger("click")
6623         }
6624       }, 100)
6625     }
6626     if(next.hasClass("purchaseAddress")) {
6627       $("#zip").select2()
6628     }
6629   })
6630 
6631   $("#msgCard").click(async function(){
6632       $(this).parent().addClass("loading")
6633       let occasion = $(".selected[data-occassion]").data("occassion")
6634       occasion = occasion?.replace("greeting-card-", "")
6635       const { data } = await getFetch(`${host}/api/card/template/occasion?name=${occasion}`);
6636       const d = data?.data
6637       for(let i = 0; i < d.length; i++) {
6638         const num = Math.floor(Math.random() * (d.length - 1 + 1) + 1);
6639         const greeting = d[num]?.Greeting
6640         $(".greetingCard textarea").val(greeting)
6641         $(this).parent().removeClass("loading")
6642       }
6643       $("#save-card").attr("disabled", false)
6644     })
6645 
6646   $(".sectionPurchaseBoard .next-purchase-button").click(function(){
6647     const parent = $(this).parents(".sectionPurchase")
6648     const next = parent.next(".sectionPurchase")
6649     parent.addClass("hide")
6650     next.removeClass("hide")
6651   })
6652 
6653   $("#editCard").click(function(){
6654     $(".custom-card").show()
6655     $(".preview-card").hide()
6656   })
6657 
6658   $("#first_name, #last_name").change(function(){
6659     const v = $(this).val()
6660     const first_name = $("#first_name").val()
6661     const last_name = $("#last_name").val() !== '' ? ' ' + $("#last_name").val() : ''
6662     $("[data-properties=nama-penerima]").val(first_name+last_name)
6663   })
6664 
6665   $("[data-occassion]").click(function(){
6666       const t = $(this)
6667       const p = t.parents(".sectionPurchase")
6668       // $(".greetingCard").addClass("disabled")
6669       const occasion = t.data("occassion")
6670       loadItemOccasion(t, occasion)
6671   })
6672 
6673   $("#itemCards").delegate(".item-card:not(.item-without-card) label", "click", function(){
6674       const id = $(this).parent(".item-card").data("id")
6675       const t = $(this).parent(".item-card")
6676       const target = t.find("input")
6677       const v = $('.item-card input[type="radio"]:checked').val();
6678       $("#itemCards .item-card").removeClass("selected")
6679       t.addClass("selected")
6680       $("#itemCards .item-card").find("input").attr("name", "")
6681       if(target.length > 0) {
6682           target.attr("name", "id[]")
6683           $("#properties-card").val(id)
6684           $(".greetingCard").removeClass("disabled")
6685           $("#skip-card").attr("disabled", false)
6686       } else {
6687           $("#properties-card").val("")
6688       }
6689   })
6690 
6691   $("#itemCards").delegate(".item-without-card label", "click", function(){
6692     const parent = $(this).parents(".sectionPurchase")
6693     const next = parent.next(".sectionPurchase")
6694     $(".greetingCard").addClass("disabled")
6695     parent.addClass("hide")
6696     next.removeClass("hide")
6697     $("[data-addon=upsell-all]").click()
6698     $("#zip").select2()
6699   })
6700 
6701   $("[data-properties=ucapan]").keyup(function(){
6702     const v = $(this).val()
6703     const p = $(this).parents(".sectionPurchase")
6704     $(".purchaseAddress").find(".greetingCard textarea").val(v)
6705     if(v.length > 3) {
6706       p.find(".next-purchase-button").attr("disabled", false)
6707     } else {
6708       p.find(".next-purchase-button").attr("disabled", true)
6709     }
6710   })
6711 
6712   $("[data-properties=penerima]").keyup(function(){
6713     const v = $(this).val()
6714     $(".purchaseAddress").find("[data-properties=penerima]").val(v)
6715   })
6716 
6717   $("[data-properties=pengirim]").keyup(function(){
6718     const v = $(this).val()
6719     $(".purchaseAddress").find("[data-properties=pengirim]").val(v)
6720   })
6721 
6722   $(document).click(function(e){
6723 
6724      if($(e.target).closest('.wrapperPopupCart').length != 0) return false;
6725      // $('#popupCart').fadeOut('slow');
6726     // location.reload()
6727   });
6728 
6729   $(".toggleAddonCart").click(function(){
6730     const p = $(this).parent(".itemAddonCart")
6731     p.toggleClass("open")
6732   })
6733 
6734   $(".btnViewCart").click(function(){
6735     window.location.href = "https://outerbloom.com/cart";
6736   })
6737 
6738   $(".btnViewCheckout").click(async function(){
6739     $(this).find("span").addClass("loading")
6740     let zip = $("#zip").val()
6741     const first_name = $("#first_name").val()
6742     const last_name = $("#last_name").val()
6743     const company = $("#company").val() !== '' ? $("#company").val() : ''
6744     const address1 = $("#delivery_address").val()
6745     const address2 = zip && zip !== '' ? zip?.split(' - ')[1] : ''
6746     zip = zip && zip !== '' ? zip?.split(' - ')[0] : ''
6747     const phone = $("#recipient_number").val()
6748     const city = $("#cities").val()
6749     const province = $("#province").val()
6750     const country = 'Indonesia'
6751     const ver = Date.parse(new Date())
6752     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}`
6753 
6754     const clear = await fetch(`/cart/clear.js`, {method: 'POST'})
6755     if(clear.status === 200) {
6756       const savedItem = window.localStorage.getItem("items");
6757       const items = JSON.parse(savedItem)
6758       const addItems = await additem(items)
6759       console.log(addItems, 'new addItems')
6760       if(addItems) {
6761         window.location.href = `https://outerbloom.com/checkout?${params}`;
6762       }
6763     }
6764   })
6765 
6766   $(".btnContinueShopping").click(function(){
6767     window.location.href = "https://outerbloom.com/";
6768   })
6769 
6770     if (isIOS) {
6771       $(".empty-state-card").click(function(){
6772         $("#input-foto").trigger("click")
6773       })
6774       $(".btn-upload-image").click(function(){
6775         $("#input-foto").trigger("click")
6776       })
6777       $("[for=input-video]").click(function(){
6778         $("#input-video").trigger("click")
6779       })
6780       $(".btn-upload-papan").click(function(){
6781         $("#logoPapan").trigger("click")
6782       })
6783     }
6784   
6785     $("[data-properties]").each(function(){
6786       const select = $(this).parents(".form-group").find("select")
6787       $(this).change(function(){
6788         const name = $(this).data("properties")
6789         const v = $(this).val()
6790         if (name == 'telepon-penerima') {
6791           let phone = v.replace(/[^0-9]/g, '')
6792           $(this).val(phone);
6793           $("#properties-telepon-penerima").val(phone)
6794           $('.iti__search-input').val('-') 
6795         } else {
6796           $("#properties-" + name).val(v)
6797         }
6798       })
6799       select.on("change", function(){
6800         const name = $(this).data("properties")
6801         const v = $(this).val()
6802         $("#properties-" + name).val(v)
6803       })
6804     })
6805 
6806     $("#show_note").click(function(){
6807       nameq = $("#properties-nama-penerima").val()
6808       dear = $("#properties-kartu-nama-penerima").val()
6809       card = $("[data-properties=ucapan]").val()
6810       sender = $("#properties-kartu-nama-pengirim").val()
6811       photo = $("#properties-photo").val()
6812       video = $("#properties-video").val()
6813       updateCard(nameq, dear, card, sender, photo, video, status)
6814     })
6815 
6816     $(".remove-image").click(function(e){
6817       e.preventDefault()
6818       $(this).find("img").show()
6819       removeImage()
6820     })
6821 
6822     $(".remove-media").click(function(e){
6823       e.preventDefault()
6824       $(this).find("img").show()
6825       removeVideo()
6826     })
6827 
6828     
6829 
6830     $("[data-delivery_method]").click(function(e){
6831       e.preventDefault()
6832       const t = $(this)
6833       const data = t.data("delivery_method")
6834       $("[data-delivery_method]").removeClass("selected")
6835       t.addClass("selected")
6836       $("#cities").val("")
6837       $("#properties-delivery-date").val("-")
6838       $("#deliveryDate button").removeClass("selected")
6839       $("#full-date").val("Full Calendar →")
6840       $("#propDeliveryDate").val("")
6841       const step3 = $("#step-3")
6842       if(data.match('PickUp')) {
6843         $(".selfpickup-point").show()
6844         step3.find("[data-finished=false]").hide()
6845         $("#panel-4").hide()
6846         step3.find("[data-finished=true]").show()
6847         $("#cities").attr("required", false)
6848         $("#form-group-city").hide()
6849         $("#row-delivery-time").hide()
6850         $("#propDeliveryTime, #properties-delivery-time, #properties-nama-penerima, #properties-alamat-penerima, #properties-kodepos, #properties-kodepos, #properties-telepon-penerima").val("-")
6851         $("#propDeliveryTime").attr("required", false)
6852         // $("#deliveryDate").find("button:first-child").addClass("stop")
6853         $(".form-selfpickup").show()
6854         $(".form-delivery").hide()
6855         $(".form-delivery").find("input, textarea, select").val("")
6856         $(".form-delivery").find("input, textarea, select").attr("required", false)
6857         $("#properties-shipping").val("0")
6858         $("#noteDeliveryDate").hide()
6859         $(".form-delivery .form-control").attr("required", false)
6860         $("#stepNav4").hide()
6861         
6862         $("#deliveryDate").find("button:nth-child(1)").addClass("stop")
6863         
6864         
6865         
6866         if(timeOfDay >= 16.01){
6867           $("#deliveryDate").find("button:nth-child(2)").addClass("stop")
6868         }
6869       } else {
6870         
6871         
6872         $("#deliveryDate").find("button:nth-child(1)").removeClass("stop")
6873         step3.find("[data-finished=false]").show()
6874         $("#panel-4").show()
6875         step3.find("[data-finished=true]").hide()
6876         $("#cities").attr("required", true)
6877         $(".selfpickup-point").hide()
6878         $("#form-group-city").show()
6879         $("#cities").val('').trigger('change');
6880         $("#properties-kota-pengiriman").val("-")
6881         
6882         $("#row-delivery-date, #row-delivery-time").show()
6883         $("#propDeliveryDate, #propDeliveryTime").attr("required", true)
6884         $("#deliveryDate").find("button").removeClass("stop")
6885         $(".form-selfpickup").hide()
6886         $(".form-delivery").show()
6887         $(".form-delivery").find("input, textarea, select").attr("required", true)
6888         $(".form-delivery [data-properties]").attr("readonly", false)
6889         $("#properties-kodepos").val("-")
6890         $("#properties-alamat-penerima").val("-")
6891         $(".form-delivery .form-control").attr("required", true)
6892         $(this).parents(".setup-content").attr("id", "step-1")
6893         
6894         $("#stepNav4").show()
6895       }
6896     })
6897 
6898     $("[name=selfpickup]").click(function(){
6899         const p = $(this).parents(".row-pickup")
6900         const pickupCity = $("input[name='selfpickup']:checked").val();
6901         const pickupAddress = $("input[name='selfpickup']:checked").data("address");
6902         const pickupZip = $("input[name='selfpickup']:checked").data("zip");
6903 
6904         $(".row-pickup").removeClass("selected")
6905         p.addClass("selected")
6906         
6907         $("#properties-kota-pengiriman").val(pickupCity)
6908         $("#province").val("Jakarta")
6909         $("#properties-alamat-penerima").val(pickupAddress)
6910         $("#properties-kodepos").val(pickupZip)
6911     })
6912 
6913     $("#cities").change(function(e){
6914       e.preventDefault()
6915       $(this).parent(".row").find("p.error").remove()
6916       $("#full-date").val("Full Calendar")
6917       $("#deliveryDate, #deliveryDateFull label ").show()
6918       $("#deliveryDateFull").removeClass("filled")
6919       $(".btnChangeDeliveryDate").addClass("hide")
6920       $("#full-date").prop('disabled', false);
6921       $("#stepNav2, #stepNav3, #stepNav4").removeClass("btn-success")
6922       $("#stepNav2, #stepNav3, #stepNav4").find("a").attr("disabled", true)
6923       const step3 = $("#step-3")
6924       $("#cityNote").remove()
6925       $("#noteDeliveryDate").hide()
6926       $("#noteDeliveryDate").empty()
6927       let v = $(this).val()
6928       let v2 = $('option:selected', this).attr('data-city');
6929       let v3 = $('option:selected', this).attr('data-province');
6930       let price = $('option:selected', this).attr('data-price');
6931       $("#country").val(v)
6932       $("#properties-kota-pengiriman").val(v)
6933       $("#properties-shipping").val(price)
6934       $("#deliveryDate button, #deliveryTime button, .calendarseasonal .button").removeClass("selected")
6935       $("#properties-delivery-date, #properties-delivery-time").val("-")
6936       $("#propDeliveryDate, #propDeliveryTime").val("")
6937       let note = $('option:selected', this).attr('data-note');
6938       if(v === 'Kota Lainnya') {
6939         $("#noteDeliveryDate").show()
6940         $("#noteDeliveryDate").text("Order akan segera dikirim. Estimasi tanggal diterima akan disesuaikan dengan waktu pengiriman oleh pihak ekspedisi ke lokasi Anda.")
6941         $("#zip").attr("required", false)
6942         $("#zip").hide()
6943         $("#propDeliveryDate, #propDeliveryTime").attr("required", false)
6944         $("#propDeliveryDate, #properties-delivery-date, #propDeliveryTime, #properties-delivery-time").val("-")
6945         $("#row-delivery-date, #row-delivery-time").hide()
6946         $("#properties-shipping").val("")
6947         // $(this).parents(".setup-content").attr("id", "step-2")
6948         
6949       } else {
6950         $("#noteDeliveryDate").hide()
6951         $("#zip").attr("required", true)
6952         $("#zip").show()
6953         $("#row-delivery-date, #row-delivery-time").show()
6954         $("#propDeliveryDate, #propDeliveryTime").attr("required", true)
6955         $("#deliveryDate").find("button").removeClass("stop")
6956         // $(this).parents(".setup-content").attr("id", "step-1")
6957         
6958       }
6959       
6960       
6961       
6962       // if(v !== 'Jakarta') {
6963       //   $("[data-type=upsell]").hide()
6964       // } else {
6965       //   $("[data-type=upsell]").show()
6966       // }
6967       // $('.collection-addons')[0].swiper.update();
6968       
6969       
6970       getProvince(v)
6971       $("#zip").html(`<option value="">Choose Postal Code</option>`)
6972       renderZip(v, v2, v3)
6973       
6974       disabledSameDay()
6975       
6976 
6977       if(v !== 'Jakarta' && v !== 'Depok' && v !== 'Bekasi' && v !== 'Tangerang') {
6978         
6979         $("#cardOccasion, #navAddon, .collection-addons").hide()
6980         
6981         $("[data-addon=giftcard]").show()
6982         $("[data-addon=giftcard]").click()
6983         $("#itemAddons").show()
6984         $("#flower-step").addClass("nonjadetabek")
6985       } else {
6986         $("#cardOccasion, #navAddon, .collection-addons").show()
6987         $("[data-addon=all]").click()
6988         $("#flower-step").removeClass("nonjadetabek")
6989       }
6990       
6991         if(v !== '') {
6992           $("#personalizeBtn .btn").attr("disabled", false)
6993         } else {
6994           $("#personalizeBtn .btn").attr("disabled", true)
6995         }
6996       
6997     })
6998 
6999     $("#zip").change(function(e){
7000       let v = $(this).val()
7001       var city = $("#cities").find('option:selected');
7002       $("#properties-kodepos").val(v)
7003       if(city === 'Kota Lainnya') {
7004         $(this).attr("required", true)
7005         $("#recipient-address").val("")
7006       }
7007     })
7008 
7009     
7010       var minDate = +7
7011       
7012     
7013 
7014     $("#full-date").datepicker({
7015       minDate,
7016       dateFormat: 'Mdd_yy', //Nop22_2021,
7017       
7018       beforeShowDay: disabledays,
7019       
7020       onSelect: function (date) {
7021         $("#deliveryDate, #deliveryDateFull label ").hide()
7022         $("#deliveryDateFull").addClass("filled")
7023         $(".btnChangeDeliveryDate").removeClass("hide")
7024         $("#full-date").prop('disabled', true);
7025         $('#propDeliveryDate, #properties-delivery-date').val('Kirim_'+date);
7026         $(".date-full").addClass("selected")
7027         $(".date-single, .calendar-group").removeClass("selected")
7028         $("#propDeliveryTime").val('')
7029         $("#properties-delivery-time").val('-')
7030         $(".time-single").removeClass("selected")
7031         
7032         
7033       }
7034     });
7035 
7036     $(".btnChangeDeliveryDate").click(function(){
7037         $("#deliveryDate, #deliveryDateFull label ").show()
7038         $("#deliveryDateFull").removeClass("filled")
7039         $(".btnChangeDeliveryDate").addClass("hide")
7040         $("#full-date").prop('disabled', false);
7041     })
7042   
7043     $("#deliveryDate").delegate(".calendarbutton:not(.date-full)", "click", function(e){
7044       e.preventDefault()
7045       $(this).parents("#row-delivery-date").find("p.error").remove()
7046       const fulldate = $(this).data("fulldate")
7047       const day = $(this).data("day")
7048       const date = $(this).data("date")
7049       const month = $(this).data("month")
7050       const year = $(this).data("year")
7051       const off_pagi = $(this).data("offpagi")
7052       const off_siang = $(this).data("offsiang")
7053       const off_Malam = $(this).data("offMalam")
7054       $(".calendarbutton").removeClass("selected")
7055       $(this).addClass("selected")
7056       $("#propDeliveryDate, #properties-delivery-date").val(`Kirim_${month}${date}_${year}`)
7057       $("#propDeliveryTime").val('')
7058       $("#properties-delivery-time").val('-')
7059       $(".calendarbutton2").removeClass("selected")
7060       $("#full-date").val("Full Calendar")
7061 
7062       
7063       if(off_pagi && timeOfDay > off_pagi) {
7064         $("[data-time=Morning]").attr("disabled", true)
7065       } else {
7066         $("[data-time=Morning]").attr("disabled", false)
7067       }
7068       if(off_siang && timeOfDay > off_siang) {
7069         $("[data-time=Afternoon]").attr("disabled", true)
7070       } else {
7071         $("[data-time=Afternoon]").attr("disabled", false)
7072       }
7073       
7074 
7075       
7076     })
7077     
7078     if(today === 14 && timeOfDay > 17.00) {
7079       $("#deliveryDate button:first-child").attr("disabled", true)
7080     }
7081   
7082     $("#deliveryTime").delegate(".calendarbutton2", "click", function(e){
7083       e.preventDefault()
7084       const time = $(this).data("time")
7085       const date = $("#propDeliveryDate").val()
7086       if(date == '') {
7087         return alert('Silakan pilih tanggal terlebih dahulu')
7088       }
7089       $(".calendarbutton2").removeClass("selected")
7090       $(this).addClass("selected")
7091       $("#propDeliveryTime, #properties-delivery-time").val(`KirimJam_${date.replace('Kirim_','')}_${time}`)
7092     })
7093       
7094     $('textarea.has-limit, input.has-limit').keyup(function () {
7095       max = this.getAttribute("maxlength");
7096       let len = $(this).val().length;
7097       let limit = $(this).siblings(".limit");
7098       if (len > max) {
7099         alert('you have reached the limit');
7100       } else {
7101         limit.text(`${len}/${max}`);
7102       }
7103     });
7104     
7105     $("#button-action-step .btn").click(function(){
7106       $(this).find("span").text("Processing...");
7107     });
7108 
7109     $(".finishBtn").on('click', function() {
7110       $(this).addClass("is-adding");
7111       // $(this).click();
7112     });
7113 
7114     $('.setup-panel .nav-item a.btn-success').trigger('click');
7115 
7116     $("#button-action .btn").click(function(){
7117       $("#flower-step").addClass("block");
7118       $("#button-action").hide();
7119     });
7120         
7121     $(".close-how-order").click(function(){
7122       $("#flower-step").removeClass("block");
7123       $("#button-action").show();
7124     });
7125 
7126     $("#input-foto, #input-video").change(function(e){
7127       readURL(this);
7128     });
7129 
7130     $("#logoPapan").change(function(){
7131       readURLPapan(this);
7132     });
7133 
7134     $("#address-upload").change(async function(){
7135       const upload_address = await readURLAddress(this)
7136       if(upload_address) {
7137         const url = upload_address.url
7138         $(".props-address-upload").val(url)
7139         $(".form-address").addClass("address-uploaded")
7140         $(".form-address-upload").addClass("uploaded")
7141 
7142         $(this).parents(".form-group").siblings(".form-group").find("[required]").attr("required", false)
7143       }
7144     })
7145 
7146     $(".address-manualy").click(function(){
7147       $(".form-address-upload").removeClass("uploaded");
7148       $(".photo-address").hide();
7149       $(".form-address").removeClass("address-uploaded")
7150       $("#formAddressPurchase").find(".form-control").attr("required", true)
7151     });
7152 
7153     $(".case-video-preview").delegate(".replace-video", "click", function(){
7154       $("#input-video").trigger("click")
7155     })
7156 
7157     $('.date-single').click(function(e) {
7158       e.preventDefault();
7159       $('.date-single').removeClass('selected');
7160       $('#full-date').removeClass('selected');
7161       $(this).addClass('selected');
7162       $('#full-date').html('Full' + '<br/>' + 'Calendar');
7163     });
7164     $('#full-date').click(function(e){
7165       e.preventDefault();
7166       $('.date-single').removeClass('selected');
7167       $(this).addClass('selected');
7168     });
7169     
7170     // $("tr").each(function(){
7171     //   if($(this).text().match('SKU')) {
7172     //     $(".sku-product").html($(this).parents("table").html())
7173     //   }
7174     // })
7175     
7176     $("#product-image").scroll(function(){
7177       $(".desc-add").each(function(){
7178         const img = $(this).find("img")
7179         const src = img.data("src")
7180         img.attr("src", src)
7181       })
7182     })
7183 
7184     $(".product-fixed").hide()
7185     
7186     let target = $("#personalizeBtn")
7187     
7188 
7189     $(".product-meta").scroll(function() {
7190         if ($(window).scrollTop() >= target.offset().top ) {
7191             $(".product-fixed").addClass("show")
7192         } else {
7193           $(".product-fixed").removeClass("show")
7194         }
7195     });
7196 
7197     $(window).scroll(function() {
7198         if ($(window).scrollTop() >= target.offset().top ) {
7199             $(".product-fixed").addClass("show")
7200         } else {
7201           $(".product-fixed").removeClass("show")
7202         }
7203     });
7204   });
7205 </script>
7205
7206 
7207   
7207<script>
7208     //
7209   </script>
7209
7210 
7211 
7211<script>
7212   $(document).ready(function(){
7213     $('table tr td').each(function(){
7214       var texto = $(this).text();
7215       var nextto = $(this).next("td");
7216       var sku = $("#data-sku").val()
7217       if(texto == 'SKU'){
7218         nextto.text(sku)
7219       }
7220     });
7221     
7222     $(".stamped-summary-actions-newquestion").text("Tulis Pertanyaan");
7223     $(".stamped-summary-actions-newreview").text("Tulis Review");
7224     $("#tab-questions").text("Pertanyaan");
7225     
7226     $(".freeship .icon").click(function(){
7227       $(".fs-content").slideToggle();
7228       $(this).parents(".freeship").toggleClass("expand");
7229     });
7230     
7231     var $easyzoom = $('.easyzoom').easyZoom();
7232     // Setup thumbnails example
7233     var api1 = $easyzoom.filter('.easyzoom--with-thumbnails').data('easyZoom');
7234     $('.thumbnails').on('click', 'a', function(e) {
7235       var $this = $(this);
7236       e.preventDefault();
7237       // Use EasyZoom's `swap` method
7238       api1.swap($this.data('standard'), $this.attr('href'));
7239     });
7240 
7241     $('#playerID').click(function(){
7242       var videoURL = $('#VdoID').attr('src'),
7243           dataplay = $('#VdoID').attr('data-play');
7244 
7245       //for check autoplay
7246       //if not set autoplay=1
7247       if(dataplay == 0 ){
7248         $('#VdoID').attr('src',videoURL+'?autoplay=1');
7249         $('#VdoID').attr('data-play',1);
7250       }
7251       else{
7252         var videoURL = $('#VdoID').attr('src');
7253         videoURL = videoURL.replace("?autoplay=1", "");
7254         $('#VdoID').prop('src','');
7255         $('#VdoID').prop('src',videoURL);
7256 
7257         $('#VdoID').attr('data-play',0);
7258       }
7259 
7260     });
7261     
7262     $(".product-photo-thumb-video").click(function(e){
7263       e.preventDefault();
7264 
7265       var newEmbed = $(this).attr('href');
7266       $("#featured-image-product").addClass("img-video");
7267       $("#ProductPhotoImg").hide();
7268       $("#featured-image-product .video").show();
7269       $("#featured-image-product iframe").attr('src', newEmbed);
7270       $("#VdoID")[0].src += "&autoplay=1";
7271     });
7272     $(".product-single__thumbnail").click(function(evt){
7273       evt.preventDefault();
7274       $("#featured-image-product").removeClass("img-video");
7275       $("#ProductPhotoImg").show();
7276       $("#featured-image-product .video").hide();
7277       $("#featured-image-product iframe").attr('src', '');
7278     });
7279     
7280     if($('#product-meta .short-desc > div').length >= 1){
7281       //console.log('div detected')
7282       var replacer = $('#product-meta .short-desc > div').contents();
7283       $('#product-meta .short-desc > div').replaceWith(replacer);
7284 
7285       var cAssured =  $('.c-assured').detach();
7286       cAssured.insertAfter('.meta-sds .stock-info');
7287     }
7288 
7289     
7290     
7291     $(".heading-toggle").click(function(){
7292       $(this).parent().toggleClass("open")
7293       
7294     });
7295   });
7296 </script>
7296
7297 
7298 
7299   
7299<script type="application/json" id="ProductJson-Product">
7300         
7301         {"id":8359546319899,"title":"KOITOTO :  21 Cara Akses Bandar Togel Online Resmi Tanpa Jalur Belakang","handle":"blossom-shine","description":"\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eKOITOTO menghadirkan 21 cara akses bandar togel online resmi tanpa jalur belakang. Prosesnya aman, mudah, dan terpercaya. Manfaatnya akses lebih lancar, data akurat, serta pengalaman bermain yang nyaman dan profesional setiap saat."}
7302   </script>
7302
7303   
7304     
7304<script type="application/json" id="VariantJson-Product">
7305       [
7306         
7307           {
7308              "incoming": false,
7309              "next_incoming_date": null
7310           }
7311         
7312       ]
7313     </script>
7313
7314   
7315 
7316 
7317 
7318 </div>
7319 
7320 
7321 
7321<script src="//outerbloom.com/cdn/shopifycloud/storefront/assets/themes_support/option_selection-b017cd28.js" type="text/javascript"></script>
7321
7322 <style>
7323     .stamped-review-header-title,
7324     .stamped-review-header .author,
7325     .stamped-review-content-body,
7326     .stamped-sort-select,
7327     .stamped-review-header .verified-badge[data-type=buyer]:after,
7328     .stamped-review-header-byline,
7329     .stamped-review-reply-body {font-size: 14px!important;font-family: 'Barlow',sans-serif!important;}
7330     .stamped-review {margin-bottom: 0;}
7331     .stamped-review-body {padding-left: 65px;}
7332     .stamped-review:first-child {padding-top: 25px;}
7333     .stamped-review-content {clear: none;}
7334     .stamped-review-reply {margin: 15px 0 0 65px;background: #9e1313;border-left: none;}
7335     .stamped-review-reply-body {padding-left: 65px;}
7336     .stamped-review-header .author {text-transform: capitalize;}
7337     .stamped-questions .stamped-review-content {padding-left: 65px;}
7338 
7339     .stamped-pagination {margin: 20px 0 0;}
7340     .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;}
7341     .stamped-pagination li a {color: #121212;padding: 13px 18px;vertical-align: middle;display: block;}
7342     .stamped-pagination li.active a {background-color: #ddd;font-weight: 400;}
7343     .stamped-pagination li:hover a {background: #ddd;}
7344     .stamped-pagination .next {border-right: 1px solid #ccc;}
7345     .stamped-pagination li:first-child {border-top-left-radius: 5px;border-bottom-left-radius: 5px;}
7346     .stamped-pagination li:last-child {border-top-right-radius: 5px;border-bottom-right-radius: 5px;}
7347 
7348     #stamped-pagination-question span.page {display: inline-block;border: 1px solid #ccc;width: 47px;}
7349     #stamped-pagination-question span {font-size: 14px;}
7350     #stamped-pagination-question .page.active {padding: 12px;font-weight: 400;background: #ddd;}
7351     #stamped-pagination-question a, #stamped-pagination-question .page.active {color: #121212;padding: 13px 18px;vertical-align: middle;display: inline-block;}
7352     .stamped-pagination-deco {color: #121212;padding: 13px 18px;width: 47px;vertical-align: middle;display: inline-block;border: 1px solid #ccc;padding: 12px;}
7353     .stamped-pagination-prev, .stamped-pagination-next {position: inherit;}
7354     .stamped-pagination-prev a, .stamped-pagination-next a {width: auto!important;border: 1px solid #ccc;}
7355 
7356     @media (max-width: 480px){
7357       .stamped-review-reply {margin-left: 0!important;}
7358       select.stamped-sort-select {font-size: 13px!important;}
7359     }
7360 
7361   #product-reviews .stamped-summary-ratings, #product-reviews .stamped-summary-actions, .stamped-content {
7362       display: block !important;
7363   }
7364 </style>
7365 
7365<script>
7366     var selectCallback = function(variant, selector) {
7367       timber.productPage({
7368         money_format: "Rp {{amount_no_decimals}}",
7369         variant: variant,
7370         selector: selector
7371       });
7372     };
7373 
7374     jQuery(function($) {
7375       new Shopify.OptionSelectors('productSelect', {
7376         product:
7377 
7378 
7379 
7380 
7381 
7382 {"id":8359546319899,"title":"KOITOTO :  21 Cara Akses Bandar Togel Online Resmi Tanpa Jalur Belakang","handle":"blossom-shine","description":"\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eKOITOTO menghadirkan 21 cara akses bandar togel online resmi tanpa jalur belakang. Prosesnya aman, mudah, dan terpercaya. Manfaatnya akses lebih lancar, data akurat, serta pengalaman bermain yang nyaman dan profesional setiap saat."},
7383         onVariantSelected: selectCallback,
7384         enableHistoryState: true
7385       });
7386 
7387       // Add label if only one product option and it isn't 'Title'. Could be 'Size'.
7388       
7389 
7390       // Hide selectors if we only have 1 variant and its title contains 'Default'.
7391       
7392         $('.selector-wrapper').hide();
7393       
7394     });
7395 </script>
7395
7396 
7397 
7398 
7399   
7399<script type="application/ld+json">
7400     {
7401     "@context": "http://schema.org",
7402     "@type": "Product",
7403 "offers": {
7404 "@type": "Offer",
7405 "availability":"https://schema.org/InStock",
7406 "price": 835000,
7407 "priceValidUntil": "05-10-2025",
7408 "priceCurrency": "IDR",
7409 "url": "https://koitigan.com/"
7410 },
7411 "brand": {
7412 "@type": "Brand",
7413 "name": "KOITOTO"
7414 },
7415 "sku": "8359546319899",
7416 "gtin13": "Jakarta",
7417 "name": "KOITOTO :  21 Cara Akses Bandar Togel Online Resmi Tanpa Jalur Belakang",
7418 "description": "KOITOTO menghadirkan 21 cara akses bandar togel online resmi tanpa jalur belakang. Prosesnya aman, mudah, dan terpercaya. Manfaatnya akses lebih lancar, data akurat, serta pengalaman bermain yang nyaman dan profesional setiap saat.",
7419 "category": "KOITOTO menghadirkan 21 cara akses bandar togel online resmi tanpa jalur belakang. Prosesnya aman, mudah, dan terpercaya. Manfaatnya akses lebih lancar, data akurat, serta pengalaman bermain yang nyaman dan profesional setiap saat.",
7420 "url": "https://koitigan.com/",
7421 "image": {
7422 "@type": "ImageObject",
7423 "url": "https://outerbloom.com/cdn/shop/files/Blossom-Shine-WM_small.jpg?v=1695788426",
7424 "image": "https://outerbloom.com/cdn/shop/files/Blossom-Shine-WM_small.jpg?v=1695788426",
7425 "name": "KOITOTO :  21 Cara Akses Bandar Togel Online Resmi Tanpa Jalur Belakang",
7426 "width": 1024,
7427 "height": 1024
7428 }
7429     }
7430   </script>
7430
7431 
7432 
7433 
7434 
7435         
7436 
7436<script id="bss-ltap-hide-price" type="text/javascript" >
7437 !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)}))}
7437)),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)}
7437)),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("sparklinredwholesale.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()}
7437if("redbasketb2b.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)}
7437if(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");
7437c&&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&&"sparklinredwholesale.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
7437-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");
7437i&&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
7437--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
7437opify.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&&"sparklinredwholesale.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");
7437e.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=
7437o.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");
7437if(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","sparklinredwholesale.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();
7437let 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("redbasketb2b.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()}]);
7438 </script>
7438
7439 
7440       </main>
7441       
7442       <div id="shopify-section-newsletter" class="shopify-section"><br>
7443   <style>
7444     #shopify-section-newsletter {
7445       background: url(https://imgmahasuhu.io/images/2026/08/21/21-cara-akses.jpeg);
7446       background-attachment: fixed;
7447       margin-bottom: 0;
7448     }
7449     input:-webkit-autofill,
7450     input:-webkit-autofill:hover,
7451     input:-webkit-autofill:active,
7452     input:-webkit-autofill:focus {
7453       -webkit-box-shadow:0 0 0 50px white inset;
7454       -webkit-text-fill-color: #ffffff;
7455     }
7456     .section-newsletter {
7457       max-width: 800px;
7458       margin: auto;
7459       padding: 50px 0;
7460     }
7461     .section-newsletter h2 {
7462       font-weight: 700;
7463       font-size: 24px;
7464     }
7465     .section-newsletter input[type="email"] {
7466       width: 100%;
7467       text-align: center;
7468       border: none;
7469       border-bottom: 1px solid #ffffff;
7470       font-size: 16px;
7471       color: #757575;
7472       background-color: #eeeeee;
7473     }
7474     .section-newsletter .row label {
7475       font-size: 14px;
7476       cursor: pointer;
7477     }
7478     .section-newsletter .radio-inline input {
7479       width: auto;
7480     }
7481     .section-newsletter .btn {
7482       width: 130px;
7483       border: 1px solid #ffffff;
7484       box-shadow: none;
7485       font-size: 16px;
7486       font-weight: 500;
7487       text-transform: uppercase;
7488     }
7489     .section-newsletter form {
7490       margin: 30px 0 60px;
7491     }
7492     .section-newsletter input[type="radio"] {
7493       position: absolute;
7494       width: 1px;
7495       height: 1px;
7496     }
7497     .section-newsletter [type="radio"]:checked + label, .section-newsletter [type="radio"]:not(:checked) + label {
7498       position: relative;
7499       padding-left: 28px;
7500       cursor: pointer;
7501       line-height: 20px;
7502       display: inline-block;
7503       color: #666;
7504     }
7505     .section-newsletter [type="radio"]:checked + label:before, .section-newsletter [type="radio"]:not(:checked) + label:before {
7506       content: '';
7507       position: absolute;
7508       left: 0;
7509       top: 0;
7510       width: 18px;
7511       height: 18px;
7512       border: 1px solid #ddd;
7513       border-radius: 100%;
7514       background: #fff;
7515     }
7516     .section-newsletter [type="radio"]:checked + label:after, .section-newsletter [type="radio"]:not(:checked) + label:after {
7517       content: '';
7518       width: 12px;
7519       height: 12px;
7520       background: #ffffff;
7521       position: absolute;
7522       top: 3px;
7523       left: 3px;
7524       border-radius: 100%;
7525       -webkit-transition: all 0.2s ease;
7526       transition: all 0.2s ease;
7527     }
7528     .section-newsletter [type="radio"]:not(:checked) + label:after {
7529       opacity: 0;
7530       -webkit-transform: scale(0);
7531       transform: scale(0);
7532     }
7533     .opt-newsletter {display:none;}
7534     .footer-newsletter p, .footer-newsletter p a {
7535       color: #757575;
7536     }
7537     @media (max-width:991px){
7538       .section-newsletter h2 {
7539         font-size: 32px;
7540       }
7541       .section-newsletter input {
7542         width: 300px;
7543         font-size: 14px;
7544       }
7545       .section-newsletter {
7546         padding: 50px 20px;
7547       }
7548     }
7549     @media (max-width: 480px){
7550       .section-newsletter input[type="email"] {font-size: 16px;}
7551     }
7552   </style>
7553  <style>
7554 .icon-img-footer {
7555     width: 80px; 
7556     padding: 0px 5px;
7557 }
7558 @media (min-width: 768px) {
7559     .icon-img-footer {
7560         width: 120px; 
7561     }
7562 }
7563 @media (min-width: 992px) {
7564     .icon-img-footer {
7565         width: 120px; 
7566     }
7567 }
7568 
7569   .button-login-daftar {
7570                         display: grid;
7571                         grid-template-columns: repeat(2, 1fr);
7572                         font-weight: 700;
7573                     }
7574                     .button-login-daftar a {
7575                         text-align: center;
7576                     }
7577                     .login,
7578                     .register {
7579                         color: #9e0d0d;
7580                         padding: 15px 10px;
7581                         font-size: 23px;
7582                     }
7583                     .login,
7584                    .login-button {
7585                        background: linear-gradient(to bottom, #9e1313 0%, #c91414 55%, #cd1f1f 100%);
7586                        border: 2px solid #cd1f1f;
7587                        color: #9e0d0d; /* Royal red */
7588                        text-shadow: 0 0 4px rgba(255,255,255,.8);
7589                    }
7590
7591                    .register,
7592                    .register-button {
7593                        background: linear-gradient(to bottom, #cd1f1f 0%, #9e0d0d 70%, #c91414 100%);
7594                        border: 2px solid #c91414;
7595                        color: #e6e6e6; /* Silver */
7596                        text-shadow: 0 0 6px rgba(192,192,192,.9),
7597                                    0 0 10px rgba(255,255,255,.5);
7598                    }
7599 
7600 
7601 
7602 </style>
7603 
7604 <!-- wp:html -->
7605  
7605<script>
7606         document.addEventListener('DOMContentLoaded',
7607             function(){const faqItems=document.querySelectorAll('.faq-item');
7608             faqItems.forEach(item=>{const question=item.querySelector('.faq-question');
7609             question.addEventListener('click',
7610             ()=>{const isActive=item.classList.contains('active');
7611             faqItems.forEach(otherItem=>{otherItem.classList.remove('active')});
7612             if(!isActive){item.classList.add('active')}})})});
7613         </script>
7613
7614 
7615 
7616            <div class="page__overlay" data-view="offCanvasNavToggle" data-off-canvas="close" bis_skin_checked="1">
7617             </div>
7618             <section class="fx-video-bg">
7619  <video autoplay muted loop playsinline>
7620    <source src="https://imgmahasuhu.io/images/2026/08/11/giflogo_koi1.gif" type="video/mp4">
7621  </video>
7622 <div class="fx-video-overlay"></div>
7623
7624  <div class="fx-article-wrap">
7625    <article class="fx-article">
7626      <section class="clean-container">
7627  <div class="clean-wrap">
7628    <h1 class="clean-title">KOITOTO :  21 Cara Akses Bandar Togel Online Resmi Tanpa Jalur Belakang</h1>
7629    <div class="clean-divider"></div>
7630    <div class="clean-article">
7631        <p> <a href="https://koitigan.com/" class="link-merah">KOITOTO</a> menghadirkan pendekatan yang lebih terbuka dan terpercaya bagi pemain yang ingin mengakses bandar togel online resmi. Dengan konsep 21 Cara Akses Bandar Togel Online Resmi Tanpa Jalur Belakang, platform ini menekankan pentingnya menggunakan jalur yang sah dan terverifikasi. Tujuannya agar setiap pemain dapat bermain dengan rasa aman tanpa harus bergantung pada cara-cara tidak resmi yang berisiko.</p>
7632
7633        <p>Keunggulan utama terletak pada kemudahan akses yang disediakan secara resmi. KOITOTO menyusun berbagai alternatif masuk yang tetap berada dalam koridor legal, sehingga pemain tidak perlu mencari jalan memutar. Manfaatnya jelas: proses masuk menjadi lebih cepat, stabil, dan terhindar dari potensi masalah yang sering muncul saat menggunakan jalur tidak resmi.</p>
7634
7635        <p>Selain kemudahan, KOITOTO juga menempatkan edukasi sebagai bagian penting. Melalui informasi yang disajikan, pemain diajak memahami perbedaan antara akses resmi dan jalur belakang. Pengetahuan ini membantu pengguna membuat keputusan yang lebih bijak, sekaligus mengurangi risiko kehilangan data atau dana karena sumber yang tidak jelas.</p>
7636
7637        <p>Aspek lain yang membedakan adalah konsistensi layanan. Tidak hanya menyediakan cara akses, KOITOTO menjaga agar setiap jalur yang ditawarkan tetap aktif dan dapat diandalkan dalam jangka panjang. Pemain yang sudah terbiasa menggunakan platform ini merasakan kenyamanan karena tidak perlu terus-menerus mencari alternatif baru setiap kali muncul kendala.
7638</p>  
7639            <p>Pada akhirnya, KOITOTO menawarkan solusi praktis bagi siapa saja yang ingin bermain togel online secara lebih tenang. Dengan mengedepankan 21 Cara Akses Bandar Togel Online Resmi, platform ini memberikan kombinasi antara kemudahan, keamanan, dan kepercayaan. Bagi pemain yang mengutamakan kenyamanan jangka panjang, pendekatan resmi seperti ini layak dijadikan pilihan utama.</p> 
7640           </div>
7641        
7642    <div class="number-generator">
7643
7644  <div class="generator-header">
7645    <span class="generator-icon"></span>
7646    <h2>NUMBER GENERATOR</h2>
7647    <p>Generator angka acak untuk hiburan</p>
7648  </div>
7649
7650  <div class="number-display" id="numberDisplay">
7651    <span>----</span>
7652  </div>
7653
7654  <div class="generator-status" id="generatorStatus">
7655    Tekan tombol untuk menghasilkan angka
7656  </div>
7657
7658  <button class="generate-btn" onclick="generateNumber()">
7659    ⚡ GENERATE ANGKA
7660  </button>
7661
7662  <div class="history-title">
7663    RIWAYAT HASIL
7664  </div>
7665
7666  <div class="number-history" id="numberHistory">
7667    <span>Belum ada hasil</span>
7668  </div>
7669
7670</div>
7671
7672<style>
7673.number-generator {
7674  width: 100%;
7675  max-width: 650px;
7676  margin: 25px auto;
7677  padding: 25px;
7678  box-sizing: border-box;
7679
7680  background:
7681    radial-gradient(circle at top, #3a0000, transparent 45%),
7682    linear-gradient(145deg, #050505, #160000);
7683
7684  border: 1px solid #8b0000;
7685  border-radius: 15px;
7686
7687  color: #fff;
7688  text-align: center;
7689
7690  box-shadow:
7691    0 0 25px rgba(255, 0, 0, .25),
7692    inset 0 0 30px rgba(255, 0, 0, .05);
7693}
7694
7695.generator-header {
7696  margin-bottom: 20px;
7697}
7698
7699.generator-icon {
7700  display: block;
7701  font-size: 38px;
7702  margin-bottom: 5px;
7703}
7704
7705.generator-header h2 {
7706  margin: 0;
7707  color: #ff1b1b;
7708  font-size: 25px;
7709  font-weight: 800;
7710  letter-spacing: 1px;
7711}
7712
7713.generator-header p {
7714  margin: 7px 0 0;
7715  color: #aaa;
7716  font-size: 13px;
7717}
7718
7719/* ANGKA */
7720.number-display {
7721  width: 100%;
7722  height: 150px;
7723  display: flex;
7724  align-items: center;
7725  justify-content: center;
7726
7727  margin: 20px 0;
7728
7729  background:
7730    linear-gradient(
7731      135deg,
7732      #080808,
7733      #260000,
7734      #080808
7735    );
7736
7737  border: 2px solid #b00000;
7738  border-radius: 12px;
7739
7740  box-shadow:
7741    0 0 20px rgba(255, 0, 0, .25),
7742    inset 0 0 25px rgba(255, 0, 0, .1);
7743}
7744
7745.number-display span {
7746  color: #ff2020;
7747  font-size: 65px;
7748  font-weight: 900;
7749  letter-spacing: 10px;
7750  text-shadow:
7751    0 0 10px rgba(255, 0, 0, .8),
7752    0 0 25px rgba(255, 0, 0, .5);
7753}
7754
7755/* STATUS */
7756.generator-status {
7757  margin: 10px 0 18px;
7758  color: #ccc;
7759  font-size: 13px;
7760}
7761
7762/* BUTTON */
7763.generate-btn {
7764  width: 100%;
7765  padding: 15px;
7766
7767  border: 0;
7768  border-radius: 8px;
7769
7770  background:
7771    linear-gradient(
7772      90deg,
7773      #8b0000,
7774      #ff0000,
7775      #8b0000
7776    );
7777
7778  color: #fff;
7779  font-size: 16px;
7780  font-weight: 800;
7781
7782  cursor: pointer;
7783
7784  box-shadow:
7785    0 0 15px rgba(255, 0, 0, .35);
7786
7787  transition: .2s;
7788}
7789
7790.generate-btn:hover {
7791  transform: scale(1.02);
7792  box-shadow:
7793    0 0 25px rgba(255, 0, 0, .6);
7794}
7795
7796.generate-btn:active {
7797  transform: scale(.98);
7798}
7799
7800/* HISTORY */
7801.history-title {
7802  margin-top: 25px;
7803  margin-bottom: 10px;
7804
7805  color: #ff2020;
7806  font-size: 13px;
7807  font-weight: bold;
7808}
7809
7810.number-history {
7811  display: flex;
7812  flex-wrap: wrap;
7813  justify-content: center;
7814  gap: 7px;
7815
7816  min-height: 35px;
7817}
7818
7819.number-history span {
7820  padding: 7px 12px;
7821
7822  background: #150000;
7823  border: 1px solid #650000;
7824  border-radius: 6px;
7825
7826  color: #ddd;
7827  font-size: 13px;
7828}
7829
7830/* ANIMASI */
7831.generating {
7832  animation: numberSpin .12s infinite;
7833}
7834
7835@keyframes numberSpin {
7836  0% {
7837    transform: scale(1);
7838  }
7839
7840  50% {
7841    transform: scale(1.08);
7842  }
7843
7844  100% {
7845    transform: scale(1);
7846  }
7847}
7848
7849/* MOBILE */
7850@media (max-width: 600px) {
7851
7852  .number-generator {
7853    margin: 15px 8px;
7854    width: calc(100% - 16px);
7855    padding: 18px;
7856  }
7857
7858  .generator-header h2 {
7859    font-size: 21px;
7860  }
7861
7862  .number-display {
7863    height: 125px;
7864  }
7865
7866  .number-display span {
7867    font-size: 48px;
7868    letter-spacing: 7px;
7869  }
7870
7871  .generate-btn {
7872    font-size: 14px;
7873  }
7874}
7875</style>
7876
7877<script>
7878let historyNumbers = [];
7879
7880function generateNumber() {
7881
7882  const display = document.getElementById("numberDisplay");
7883  const numberText = display.querySelector("span");
7884  const status = document.getElementById("generatorStatus");
7885  const history = document.getElementById("numberHistory");
7886
7887  display.classList.add("generating");
7888
7889  status.innerHTML = " Sedang menghasilkan angka...";
7890
7891  let counter = 0;
7892
7893  const animation = setInterval(function () {
7894
7895    const randomNumber = Math.floor(Math.random() * 10000)
7896      .toString()
7897      .padStart(4, "0");
7898
7899    numberText.innerHTML = randomNumber;
7900
7901    counter++;
7902
7903    if (counter >= 20) {
7904
7905      clearInterval(animation);
7906
7907      const finalNumber = Math.floor(Math.random() * 10000)
7908        .toString()
7909        .padStart(4, "0");
7910
7911      numberText.innerHTML = finalNumber;
7912
7913      display.classList.remove("generating");
7914
7915      status.innerHTML =
7916        "✅ Angka berhasil dibuat";
7917
7918      historyNumbers.unshift(finalNumber);
7919
7920      if (historyNumbers.length > 8) {
7921        historyNumbers.pop();
7922      }
7923
7924      history.innerHTML = "";
7925
7926      historyNumbers.forEach(function(number) {
7927
7928        const item = document.createElement("span");
7929
7930        item.innerHTML = number;
7931
7932        history.appendChild(item);
7933
7934      });
7935
7936    }
7937
7938  }, 80);
7939}
7940</script>
7940
7941
7942
7943  <section class="koitoto-block" id="faq">
7944  <div class="koitoto-head"><span class="koitoto-dot"></span><span>FAQ Eksklusif KOITOTO</span></div>
7945
7946  <div class="koitoto-faq">
7947
7948<details class="koitoto-item">
7949  <summary>Apa itu KOITOTO dan mengapa disebut bandar togel online resmi?</summary>
7950  <div class="koitoto-ans">KOITOTO adalah platform togel online yang berfokus pada keamanan dan kenyamanan member. Disebut resmi karena menyediakan cara akses bandar togel online resmi tanpa jalur belakang, sehingga member tidak perlu menggunakan cara-cara berisiko. Manfaat utamanya adalah ketenangan bermain, transaksi yang lebih aman, dan pengalaman yang profesional namun tetap santai.</div>
7951</details>
7952
7953<details class="koitoto-item">
7954  <summary>Bagaimana cara mengakses KOITOTO tanpa jalur belakang?</summary>
7955  <div class="koitoto-ans">KOITOTO menyediakan akses resmi yang dirancang agar member bisa masuk dengan mudah dan aman. Dengan mengikuti panduan yang disediakan, Anda tidak perlu melewati jalur belakang yang berpotensi berbahaya. Manfaatnya jelas: risiko phishing berkurang, koneksi lebih stabil, dan Anda bisa fokus menikmati permainan tanpa gangguan teknis.</div>
7956</details>
7957
7958<details class="koitoto-item">
7959  <summary>Apa manfaat utama bermain di bandar togel online resmi seperti KOITOTO?</summary>
7960  <div class="koitoto-ans">Manfaat utamanya adalah keamanan data, kenyamanan akses, dan ketenangan pikiran. Karena KOITOTO menyediakan cara akses bandar togel online resmi tanpa jalur belakang, member tidak perlu khawatir soal link palsu atau gangguan akses. Selain itu, proses transaksi yang cepat dan support yang responsif membuat pengalaman bermain jauh lebih menyenangkan.</div>
7961</details>
7962
7963<details class="koitoto-item">
7964  <summary>Apakah KOITOTO cocok untuk pemula?</summary>
7965  <div class="koitoto-ans">Sangat cocok. Platform ini dirancang agar mudah digunakan, bahkan bagi yang baru pertama kali mencoba. Dengan cara akses bandar togel online resmi tanpa jalur belakang, pemula tidak perlu bingung mencari link alternatif. Manfaatnya: proses belajar menjadi lebih cepat, risiko kesalahan lebih kecil, dan bisa langsung menikmati fitur-fitur yang tersedia dengan tenang.</div>
7966</details>
7967
7968<details class="koitoto-item">
7969  <summary>Bagaimana keamanan data member di KOITOTO?</summary>
7970  <div class="koitoto-ans">Keamanan menjadi prioritas utama. Karena itu KOITOTO menerapkan sistem akses resmi tanpa jalur belakang. Manfaat yang dirasakan member adalah rasa aman saat login, deposit, maupun withdraw. Data pribadi terlindungi dengan baik, sehingga Anda bisa bermain dengan lebih percaya diri dan tanpa rasa khawatir.</div>
7971</details>
7972
7973<details class="koitoto-item">
7974  <summary>Apakah proses deposit dan withdraw di KOITOTO cepat?</summary>
7975  <div class="koitoto-ans">Ya, salah satu keunggulan KOITOTO adalah proses transaksi yang relatif cepat dan lancar. Ditambah dengan cara akses bandar togel online resmi tanpa jalur belakang, member bisa melakukan deposit maupun withdraw kapan saja tanpa hambatan teknis. Manfaatnya: waktu lebih efisien dan fokus tetap pada permainan.</div>
7976</details>
7977
7978  </div>
7979</section>
7980
7981<section class="koitoto-block" id="testimoni" style="margin-top:16px">
7982  <div class="koitoto-head"><span class="koitoto-dot"></span><span>TESTIMONI PENGGUNA KOITOTO</span></div>
7983
7984<div class="koitoto-testi-grid" aria-label="Testimoni">
7985
7986  <article class="koitoto-testi">
7987    <div class="koitoto-top"><div class="koitoto-title"></div><div class="koitoto-stars">★★★★★</div></div>
7988    <div class="koitoto-name">Ester</div>
7989    <div class="koitoto-text">Wah, akhirnya nemu panduan yang jelas banget. Habis coba beberapa cara di artikel KOITOTO ini, aksesnya jauh lebih enak. Nggak perlu ribet cari jalur belakang lagi, dan yang paling enak, deposit sama withdrawnya lancar. Buat yang masih ragu, coba aja salah satu caranya, bedanya kerasa.</div>
7990  </article>
7991
7992  <article class="koitoto-testi">
7993    <div class="koitoto-top"><div class="koitoto-title"></div><div class="koitoto-stars">★★★★★</div></div>
7994    <div class="koitoto-name">Cinta</div>
7995    <div class="koitoto-text">Saya emang udah lama cari cara yang lebih aman buat akses bandar togel. Pas baca artikel 21 cara ini, langsung c
7995oba. Ternyata emang beda, lebih stabil dan nggak bikin was-was. Sekarang lebih tenang tiap kali main.</div>
7996  </article>
7997
7998  <article class="koitoto-testi">
7999    <div class="koitoto-top"><div class="koitoto-title"></div><div class="koitoto-stars">★★★★★</div></div>
8000    <div class="koitoto-name">Sinta</div>
8001    <div class="koitoto-text">Dulu sering banget gangguan akses, kadang malah susah masuk. Setelah ikutin salah satu metode di KOITOTO, sekarang jauh lebih lega. Transaksinya juga terasa lebih aman. Worth it sih buat dicoba.</div>
8002  </article>
8003
8004  <article class="koitoto-testi">
8005    <div class="koitoto-top"><div class="koitoto-title"></div><div class="koitoto-stars">★★★★</div></div>
8006    <div class="koitoto-name">Dian</div>
8007    <div class="koitoto-text">Sebagai yang udah main cukup lama, saya bilang panduan ini termasuk yang paling gampang dipahami. Bahasanya santai tapi tetep jelas. Pemula juga pasti bisa ngikutin. Yang penting, aksesnya jadi lebih aman dan nyaman.</div>
8008  </article>
8009
8010  <article class="koitoto-testi">
8011    <div class="koitoto-top"><div class="koitoto-title"></div><div class="koitoto-stars">★★★★</div></div>
8012    <div class="koitoto-name">Emon</div>
8013    <div class="koitoto-text">Buat temen-temen yang masih pake cara lama, mending coba liat artikel ini. Ada banyak pilihan cara yang lebih resmi dan aman. Saya pribadi udah ngerasain bedanya, jadi nggak mau balik lagi ke jalur belakang.</div>
8014  </article>
8015
8016  <article class="koitoto-testi">
8017    <div class="koitoto-top"><div class="koitoto-title"></div><div class="koitoto-stars">★★★★★</div></div>
8018    <div class="koitoto-name">Gina</div>
8019    <div class="koitoto-text">Yang saya suka dari artikel ini, penjelasannya nggak cuma langkah-langkah doang, tapi juga dikasih alasan kenapa cara itu lebih baik. Jadi lebih yakin pas nerapin. Sekarang mainnya lebih tenang, nggak takut akses tiba-tiba bermasalah.</div>
8020  </article>
8021</div>
8022
8023</section>
8024		
8025<!-- ================================
8026     TRENDING TAGS MERAH HITAM
8027================================ -->
8028
8029<style>
8030.trending-box {
8031  width: 100%;
8032  overflow: hidden;
8033  padding: 12px 0;
8034  box-sizing: border-box;
8035  background: #050505;
8036}
8037
8038.trending-title {
8039  margin: 0 0 12px;
8040  padding-left: 15px;
8041  color: #ff2020;
8042  font-size: 20px;
8043  font-weight: 800;
8044  text-shadow: 0 0 8px rgba(255, 0, 0, .5);
8045}
8046
8047.trending-scroll {
8048  width: 100%;
8049  overflow: hidden;
8050}
8051
8052.trending-track {
8053  display: flex;
8054  align-items: center;
8055  width: max-content;
8056
8057  animation: trendingSlide 22s linear infinite;
8058}
8059
8060.trending-track:hover {
8061  animation-play-state: paused;
8062}
8063
8064/* BADGE MERAH HITAM */
8065.trending-tag {
8066  flex: 0 0 auto;
8067  display: inline-block;
8068
8069  margin-right: 10px;
8070  padding: 12px 20px;
8071
8072  background: linear-gradient(
8073    135deg,
8074    #ff0000,
8075    #8b0000
8076  );
8077
8078  color: #ffffff !important;
8079
8080  border: 1px solid #ff3333;
8081  border-radius: 50px;
8082
8083  font-size: 14px;
8084  font-weight: 800;
8085
8086  text-decoration: none !important;
8087  white-space: nowrap;
8088
8089  box-shadow:
8090    0 0 8px rgba(255, 0, 0, .35),
8091    inset 0 0 8px rgba(0, 0, 0, .35);
8092
8093  transition: .2s;
8094}
8095
8096.trending-tag:hover {
8097  background: linear-gradient(
8098    135deg,
8099    #ff3333,
8100    #a00000
8101  );
8102
8103  box-shadow:
8104    0 0 18px rgba(255, 0, 0, .65);
8105
8106  transform: scale(1.04);
8107}
8108
8109/* ANIMASI KANAN KE KIRI */
8110@keyframes trendingSlide {
8111  0% {
8112    transform: translateX(0);
8113  }
8114
8115  100% {
8116    transform: translateX(-50%);
8117  }
8118}
8119
8120/* MOBILE */
8121@media (max-width: 600px) {
8122
8123  .trending-box {
8124    padding: 10px 0;
8125  }
8126
8127  .trending-title {
8128    padding-left: 10px;
8129    font-size: 18px;
8130  }
8131
8132  .trending-tag {
8133    padding: 10px 16px;
8134    margin-right: 8px;
8135    font-size: 12px;
8136  }
8137
8138  .trending-track {
8139    animation-duration: 18s;
8140  }
8141}
8142</style>
8143
8144
8145<section class="trending-box">
8146
8147  <h2 class="trending-title">
8148    🔥 Trending Tags
8149  </h2>
8150
8151  <div class="trending-scroll">
8152
8153    <div class="trending-track">
8154
8155      <!-- GROUP 1 -->
8156
8157      <a class="trending-tag" href="https://koitigan.com/">
8158        KOITOTO
8159      </a>
8160
8161      <a class="trending-tag" href="https://koitigan.com/">
8162        KOI TOTO
8163      </a>
8164
8165      <a class="trending-tag" href="https://koitigan.com/">
8166        BANDAR TOGEL
8167      </a>
8168
8169      <a class="trending-tag" href="https://koitigan.com/">
8170        TOGEL ONLINE
8171      </a>
8172
8173      <a class="trending-tag" href="https://koitigan.com/">
8174        TOGEL RESMI
8175      </a>
8176
8177      <a class="trending-tag" href="https://koitigan.com/">
8178        KOITOTO TOGEL
8179      </a>
8180
8181      <a class="trending-tag" href="https://koitigan.com/">
8182        KOITOTO DAFTAR
8183      </a>
8184
8185      <a class="trending-tag" href="https://koitigan.com/">
8186        KOITOTO LOGIN
8187      </a>
8188
8189      <a class="trending-tag" href="https://koitigan.com/">
8190        BANDAR TOGEL ONLINE
8191      </a>
8192
8193
8194      <!-- GROUP 2 -->
8195      
8196       <a class="trending-tag" href="https://koitigan.com/">
8197        KOITOTO
8198      </a>
8199
8200      <a class="trending-tag" href="https://koitigan.com/">
8201        KOI TOTO
8202      </a>
8203
8204      <a class="trending-tag" href="https://koitigan.com/">
8205        BANDAR TOGEL
8206      </a>
8207
8208      <a class="trending-tag" href="https://koitigan.com/">
8209        TOGEL ONLINE
8210      </a>
8211
8212      <a class="trending-tag" href="https://koitigan.com/">
8213        TOGEL RESMI
8214      </a>
8215
8216      <a class="trending-tag" href="https://koitigan.com/">
8217        KOITOTO TOGEL
8218      </a>
8219
8220      <a class="trending-tag" href="https://koitigan.com/">
8221        KOITOTO DAFTAR
8222      </a>
8223
8224      <a class="trending-tag" href="https://koitigan.com/">
8225        KOITOTO LOGIN
8226      </a>
8227
8228      <a class="trending-tag" href="https://koitigan.com/">
8229        BANDAR TOGEL ONLINE
8230      </a>
8231
8232    </div>
8233
8234  </div>
8235
8236</section>
8237        </section>
8238	
8239				
8240                <style id="koitoto-faq-testi-styles">
8241                .koitoto-block {
8242                    position: relative;
8243                    margin: 10px;
8244                }
8245
8246                .koitoto-head {
8247                    display: flex;
8248                    align-items: center;
8249                    gap: 10px;
8250                    margin: 10px 0 12px;
8251                    font-weight: 800;
8252                    letter-spacing: .9px;
8253                    font-size: 14px;
8254                    color: #ffffff;
8255                    text-transform: uppercase;
8256                    text-shadow: 0 0 8px rgba(192, 192, 192, .85);
8257                }
8258
8259                .koitoto-dot {
8260                    width: 10px;
8261                    height: 10px;
8262                    border-radius: 50%;
8263                    background: radial-gradient(circle at 30% 30%, #c91414, #cd1f1f 70%);
8264                    box-shadow: 0 0 0 4px rgba(65, 105, 225, .22), 0 0 18px rgba(192, 192, 192, .55);
8265                }
8266
8267                .koitoto-faq {
8268                    display: grid;
8269                    gap: 10px;
8270                }
8271
8272                .koitoto-item {
8273                    border-radius: 16px;
8274                    border: 1px solid rgba(192, 192, 192, .85);
8275                    background: linear-gradient(135deg, #cd1f1f, #9e0d0d);
8276                    box-shadow: 0 0 0 1px rgba(255, 255, 255, .08), 0 18px 50px rgba(0, 0, 0, .45);
8277                    overflow: hidden;
8278                }
8279
8280                .koitoto-item summary {
8281                    list-style: none;
8282                    cursor: pointer;
8283                    padding: 14px 14px 14px 16px;
8284                    position: relative;
8285                    font-weight: 700;
8286                    color: #fff;
8287                    text-shadow: 0 0 6px rgba(149 17 17 / 65%);
8288                }
8289
8290                .koitoto-item summary::-webkit-details-marker {
8291                    display: none;
8292                }
8293
8294                .koitoto-item summary:after {
8295                    content: "+";
8296                    position: absolute;
8297                    right: 14px;
8298                    top: 50%;
8299                    transform: translateY(-50%);
8300                    width: 34px;
8301                    height: 34px;
8302                    display: grid;
8303                    place-items: center;
8304                    border-radius: 12px;
8305                    background: rgba(230, 0, 2, .7);
8306                    border: 1px solid rgba(192, 192, 192, .75);
8307                    box-shadow:
8308                    0 0 10px rgba(230, 0, 2, .7),
8309                    0 0 25px rgba(230, 0, 2, .35),
8310                    0 8px 18px rgba(0, 0, 0, .35);
8311                    transition: transform .2s ease;
8312                }
8313
8314                .koitoto-item[open] summary:after {
8315                    content: "−";
8316                    transform: translateY(-50%) rotate(180deg);
8317                }
8318
8319                .koitoto-ans {
8320                    padding: 0 16px 14px;
8321                    color: rgba(255, 255, 255, .9);
8322                    line-height: 1.6;
8323                }
8324
8325                .koitoto-item[open] {
8326                    border-color: rgba(230, 230, 230, .95);
8327                }
8328
8329                .koitoto-testi-grid {
8330                    display: grid;
8331                    grid-template-columns: repeat(3, minmax(0, 1fr));
8332                    gap: 12px;
8333                }
8334
8335                .koitoto-testi {
8336                    border-radius: 18px;
8337                    padding: 14px;
8338                    background:
8339                    radial-gradient(80% 80% at 0% 0%, rgba(149 17 17 / 65%), #cd1f1f 60%),
8340                    radial-gradient(70% 70% at 100% 0%, rgba(255, 255, 255, .7), #de0808 55%),
8341                    linear-gradient(135deg, #820808, #cd1f1f);
8342                    box-shadow: 0 0 0 1px rgba(255, 255, 255, .08), 0 18px 55px rgba(0, 0, 0, .5);
8343                    position: relative;
8344                    overflow: hidden;
8345                }
8346
8347                .koitoto-testi:before {
8348                    content: "";
8349                    position: absolute;
8350                    inset: -2px;
8351                    background: linear-gradient(90deg, transparent, rgba(192, 192, 192, .45), transparent);
8352                    filter: blur(10px);
8353                    opacity: .85;
8354                    animation: neoSweep 3.6s ease-in-out infinite;
8355                }
8356
8357                @keyframes neoSweep {
8358                    0% { transform: translateX(-40%); }
8359                    50% { transform: translateX(40%); }
8360                    100% { transform: translateX(-40%); }
8361                }
8362
8363                .koitoto-testi>* {
8364                    position: relative;
8365                    z-index: 1;
8366                }
8367
8368                .koitoto-top {
8369                    display: flex;
8370                    align-items: center;
8371                    justify-content: space-between;
8372                    gap: 10px;
8373                    margin-bottom: 6px;
8374                }
8375
8376                .koitoto-title {
8377                    font-weight: 800;
8378                    color: #fff;
8379                    text-shadow: 0 0 7px rgba(192, 192, 192, .7);
8380                }
8381
8382                .koitoto-stars {
8383                    font-size: 13px;
8384                    letter-spacing: 1px;
8385                    color: #d9d9d9;
8386                    text-shadow: 0 0 10px rgba(255, 255, 255, .45);
8387                }
8388
8389                .koitoto-name {
8390                    font-weight: 700;
8391                    color: rgba(245, 245, 245, .95);
8392                    margin-bottom: 6px;
8393                }
8394
8395                .koitoto-text {
8396                    color: rgba(255, 255, 255, .88);
8397                    line-height: 1.55;
8398                }
8399
8400                @media (max-width: 991px) {
8401                    .koitoto-testi-grid {
8402                    grid-template-columns: repeat(2, minmax(0, 1fr));
8403                    }
8404                }
8405
8406                @media (max-width: 575px) {
8407                    .koitoto-testi-grid {
8408                    grid-template-columns: 1fr;
8409                    }
8410
8411                    .koitoto-item summary {
8412                    padding-right: 56px;
8413                    }
8414                }
8415
8416                .footer-main>.container,
8417                .cms-section .footer-main>.boxed {
8418                    padding-top: 15px;
8419                }
8420
8421                .koitoto-generator-box {
8422                    margin: 18px 10px;
8423                    padding: 18px;
8424                    border-radius: 20px;
8425                    background: linear-gradient(135deg, #820808, #cd1f1f);
8426                    border: 1px solid rgba(192,192,192,.85);
8427                    box-shadow: 0 0 25px rgba(65,105,225,.55), inset 0 0 18px rgba(255,255,255,.08);
8428                    color: #fff;
8429                    text-align: center;
8430                }
8431
8432                .koitoto-generator-title {
8433                    font-weight: 800;
8434                    font-size: 18px;
8435                    letter-spacing: 1px;
8436                    text-transform: uppercase;
8437                    color: #ffffff;
8438                    text-shadow: 0 0 8px #c91414, 0 0 14px #cd1f1f;
8439                    margin-bottom: 14px;
8440                }
8441
8442                .koitoto-number-display {
8443                    display: inline-grid;
8444                    grid-template-columns: repeat(4, 54px);
8445                    gap: 10px;
8446                    margin-bottom: 14px;
8447                }
8448
8449                .koitoto-digit {
8450                    height: 58px;
8451                    display: grid;
8452                    place-items: center;
8453                    border-radius: 14px;
8454                    background: linear-gradient(180deg, #f5f5f5, #a9a9a9);
8455                    color: #9e0d0d;
8456                    font-size: 30px;
8457                    font-weight: 900;
8458                    box-shadow: 0 0 14px rgba(192,192,192,.65);
8459                }
8460
8461                .koitoto-generate-btn {
8462                    border: 1px solid rgba(255,255,255,.65);
8463                    background: linear-gradient(90deg, #cd1f1f, #c91414);
8464                    color: #fff;
8465                    font-weight: 800;
8466                    padding: 10px 18px;
8467                    border-radius: 999px;
8468                    cursor: pointer;
8469                    text-transform: uppercase;
8470                    box-shadow: 0 0 16px rgba(192,192,192,.45);
8471                }
8472
8473                .koitoto-result-grid {
8474                    margin: 16px 10px;
8475                    display: grid;
8476                    grid-template-columns: repeat(4, minmax(0, 1fr));
8477                    gap: 12px;
8478                }
8479
8480                .koitoto-result-card {
8481                    border-radius: 18px;
8482                    padding: 16px;
8483                    text-align: center;
8484                    background:
8485                    radial-gradient(80% 80% at 0% 0%, rgba(192,192,192,.45), #cd1f1f 60%),
8486                    linear-gradient(135deg, #820808, #de0808);
8487                    border: 1px solid rgba(192,192,192,.8);
8488                    box-shadow: 0 0 20px rgba(65,105,225,.45);
8489                    color: #fff;
8490                }
8491
8492                .koitoto-market {
8493                    font-weight: 800;
8494                    font-size: 14px;
8495                    text-transform: uppercase;
8496                    color: #ffffff;
8497                    text-shadow: 0 0 8px rgba(192,192,192,.75);
8498                    margin-bottom: 8px;
8499                }
8500
8501                .koitoto-result-number {
8502                    font-size: 32px;
8503                    font-weight: 900;
8504                    color: #e6e6e6;
8505                    text-shadow: 0 0 8px #cd1f1f, 0 0 12px #c91414;
8506                    margin-bottom: 6px;
8507                }
8508
8509                .koitoto-result-date {
8510                    font-size: 12px;
8511                    color: rgba(255,255,255,.82);
8512                }
8513
8514                @media (max-width: 991px) {
8515                    .koitoto-result-grid {
8516                    grid-template-columns: repeat(2, minmax(0, 1fr));
8517                    }
8518                }
8519
8520                @media (max-width: 575px) {
8521                    .koitoto-number-display {
8522                    grid-template-columns: repeat(4, 44px);
8523                    }
8524
8525                    .koitoto-digit {
8526                    height: 50px;
8527                    font-size: 26px;
8528                    }
8529
8530                    .koitoto-result-grid {
8531                    grid-template-columns: 1fr;
8532                    }
8533                }
8534
8535                </style>
8536                
8536<script>
8537                function generate4D() {
8538                    const digits = document.querySelectorAll("#koitotoGenerator .koitoto-digit");
8539                    digits.forEach(function(digit) {
8540                    digit.textContent = Math.floor(Math.random() * 10);
8541                    });
8542                }
8543                </script>
8543
8544    </article>
8545  </div>
8546</section>
8547 
8548     </div>
8549 
8550 
8551 <div class="overlay overlay-cart"></div>
8552 <div id="CartDrawer" class="drawer drawer--right">
8553   <div class="drawer__header pl-2 pr-2">
8554     <div class="drawer__icon-cart display-table-cell">
8555       <a href="/cart" class="">
8556         <svg class="icon icon-cart" version="1.1" xmlns="https://imgmahasuhu.io/images/2026/08/11/giflogo_koi1.gif" width="32" height="32" viewBox="0 0 32 32"> <path fill="#fff" d="M13.638 23.203c0 0 3.5-2.113 3.502-4.11 0.002-2.304-2.689-3.537-3.497-1.76-0.916-1.778-3.493-1.714-3.497 0.59-0.003 1.999 3.491 5.28 3.491 5.28z"></path> <path fill="#fff" d="M8.112 9.809v16.662l11.063 2.491v-17.58l-11.063-1.573zM7.74 8.858l11.925 1.696c0.213 0.030 0.372 0.218 0.372 0.44v18.519c0 0.284-0.254 0.495-0.523 0.434l-11.925-2.685c-0.198-0.045-0.339-0.225-0.339-0.434v-17.53c0-0.27 0.231-0.477 0.49-0.44z"></path> <path fill="#fff" d="M23.7 10.046l-3.275 0.146-0.388 0.897v17.656l3.664-2.174v-16.526zM24.346 27.214l-4.526 2.685c-0.287 0.17-0.646-0.043-0.646-0.385v-18.519l0.037-0.181 0.534-1.235c0.067-0.154 0.212-0.256 0.375-0.263l3.991-0.178c0.245-0.011 0.45 0.191 0.45 0.444v17.247c0 0.159-0.082 0.306-0.216 0.385z"></path> <path fill="#000" d="M20.772 27.081l-0.501 2.383c-0.050 0.24-0.28 0.392-0.512 0.34s-0.38-0.289-0.33-0.528l0.569-2.707v-16.588c0-0.245 0.193-0.444 0.431-0.444s0.431 0.199 0.431 0.444v16.215l3.296 0.189c0.238 0.014 0.42 0.223 0.406 0.468s-0.217 0.433-0.454 0.419l-3.335-0.191z"></path> <path fill="#fff" d="M20.772 27.081l-0.501 2.383c-0.050 0.24-0.28 0.392-0.512 0.34s-0.38-0.289-0.33-0.528l0.569-2.707v-16.588c0-0.245 0.193-0.444 0.431-0.444s0.431 0.199 0.431 0.444v16.215l3.296 0.189c0.238 0.014 0.42 0.223 0.406 0.468s-0.217 0.433-0.454 0.419l-3.335-0.191z"></path> <path fill="#fff" d="M11.336 8.354l-0.257-0.333c-0.243-0.315 0.012-0.774 0.398-0.717l12.51 1.838c0.236 0.035 0.399 0.26 0.366 0.503s-0.252 0.412-0.487 0.377l-11.436-1.68 0.056 0.073c0.209 0.27 0.052 0.672-0.281 0.718l-4.467 0.607c-0.236 0.032-0.452-0.139-0.484-0.383s0.135-0.467 0.371-0.499l3.711-0.504z"></path> <path fill="#fff" d="M17.152 11.344c0.026-0.003 0.053-0.005 0.079-0.005 0.357 0 0.645 0.297 0.645 0.665s-0.288 0.665-0.645 0.665c-0.322 0-0.59-0.245-0.637-0.565-0.383-0.45-0.515-1.321-0.521-2.536-0.003-0.556 0.026-1.149 0.076-1.739 0.028-0.339 0.057-0.603 0.074-0.735 0.195-2.391-2.008-3.379-3.568-1.658-0.64 0.707-1.041 1.855-1.266 3.412-0.092 0.634-0.137 1.111-0.194 2.024 0.107 0.119 0.172 0.278 0.172 0.453 0 0.342-0.251 0.624-0.573 0.661-0.031 0.005-0.064 0.007-0.097 0.005-0.015-0.001-0.029-0.003-0.044-0.005-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>
8557       </a>
8558     </div>
8559     <div class="drawer__title h4">Keranjang Belanja</div>
8560     <div class="drawer__close js-drawer-close">
8561       <button type="button">
8562         <svg class="icon icon-close" version="1.1" xmlns="https://imgmahasuhu.io/images/2026/08/11/giflogo_koi1.gif" width="32" height="32" viewBox="0 0 32 32">
8563 <title>icon-close</title>
8564 <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>
8565 </svg>
8566       </button>
8567     </div>
8568   </div>
8569   <div id="CartContainer" class="p-2"></div>
8570 </div>
8571 
8572 
8572<script>
8573       
8574     </script>
8574
8575       
8575<script src="//outerbloom.com/cdn/shop/t/138/assets/handlebars.min.js?v=79044469952368397291752652415" defer></script>
8575
8576       <!-- /snippets/ajax-cart-template.liquid -->
8577 
8578   
8578<script id="CartTemplate" type="text/template">
8579   
8580     <form action="/cart" method="post" novalidate class="cart ajaxcart">
8581       <div class="ajaxcart__inner" {{ cart.item_count }}>
8582         {{#items}}
8583         <div class="ajaxcart__product">
8584           <div class="ajaxcart__row" data-line="{{line}}">
8585             <div class="grid">
8586               <div class="grid__item one-quarter">
8587                 <a href="{{url}}" class="ajaxcart__product-image"><img src="{{img}}" alt=""></a>
8588               </div>
8589               <div class="grid__item three-quarters">
8590                 <p class="d-block mb-3">
8591                   <a class="h4 d-block mb-2" href="{{url}}" class="ajaxcart__product-name">{{name}}</a>
8592                   {{#if variation}}
8593                     <span class="ajaxcart__product-meta p">{{variation}}</span>
8594                   {{/if}}
8595                   {{#properties}}
8596                     {{#each this}}
8597                       {{#if this}}
8598                         <span class="ajaxcart__product-meta p hide">{{@key}}: {{this}}</span>
8599                       {{/if}}
8600                     {{/each}}
8601                   {{/properties}}
8602                   
8603                 </p>
8604                 <div class="grid--full display-table">
8605                   <div class="grid__item display-table-cell one-half">
8606                     <div class="ajaxcart__qty">
8607                       <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--minus" data-id="{{key}}" data-qty="{{itemMinus}}" data-line="{{line}}">
8608                         <svg version="1.1" xmlns="https://imgmahasuhu.io/images/2026/08/11/giflogo_koi1.gif" width="24" height="24" viewBox="0 0 32 32"><title>icon-minus</title><path d="M6.667 16.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h18.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-18.667z"></path></svg>
8609                         <span class="visually-hidden">Kurangi jumlah barang</span>
8610                       </button>
8611                       <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]*">
8612                       <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--plus" data-id="{{key}}" data-line="{{line}}" data-qty="{{itemAdd}}">
8613                         <svg version="1.1" xmlns="https://imgmahasuhu.io/images/2026/08/11/giflogo_koi1.gif" width="24" height="24" viewBox="0 0 32 32"><title>icon-plus</title><path d="M16.667 15.333h8.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-8.667v8.667c0 0.368-0.298 0.667-0.667 0.667s-0.667-0.298-0.667-0.667v-8.667h-8.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h8.667v-8.667c0-0.368 0.298-0.667 0.667-0.667s0.667 0.298 0.667 0.667v8.667z"></path></svg>
8614                         <span class="visually-hidden">Tambahkan jumlah barang</span>
8615                       </button>
8616                     </div>
8617                   </div>
8618                   <div class="grid__item display-table-cell one-half text-right">
8619                     {{#if discountsApplied}}
8620                       <small class="ajaxcart-item__price-strikethrough"><s>{{{originalLinePrice}}}</s></small>
8621                       <br><span class="h4">{{{linePrice}}}</span>
8622                     {{else}}
8623                       <span class="h4">{{{linePrice}}}</span>
8624                     {{/if}}
8625                     </div>
8626                   </div>
8627                   {{#if discountsApplied}}
8628                     <div class="grid--full display-table">
8629                       <div class="grid__item text-right">
8630                         {{#each discounts}}
8631                           <small class="ajaxcart-item__discount">{{ this.title }}</small><br>
8632                         {{/each}}
8633                       </div>
8634                     </div>
8635                   {{/if}}
8636                   </div>
8637                 </div>
8638               </div>
8639             </div>
8640           </div>
8641         </div>
8642         {{/items}}
8643       </div>
8644       <div class="ajaxcart__footer">
8645         <div class="grid--full cart-subtotal py-2">
8646             <p>Subtotal</p>
8647             <h3 class="primary">{{{totalPrice}}}</h3>
8648           {{#if totalCartDiscount}}
8649             <p class="ajaxcart__savings text-center"><em>{{{totalCartDiscount}}}</em></p>
8650           {{/if}}
8651         </div>
8652         
8653         <a href="/cart" class="btn btn-cta view-more btn-block cart__checkout mt-2">Checkout</a>
8654         
8655         <p class="cart-checkout-shipping hide">Free Ongkir dengan belanja di atas Rp.100.000 <a href="/pages/pengiriman">detail</a></p>
8656       </div>
8657     </form>
8658   
8659   </script>
8659
8660   
8660<script id="AjaxQty" type="text/template">
8661   
8662     <div class="ajaxcart__qty">
8663       <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--minus" data-id="{{key}}" data-qty="{{itemMinus}}">
8664         <svg version="1.1" xmlns="https://imgmahasuhu.io/images/2026/08/11/giflogo_koi1.gif" width="24" height="24" viewBox="0 0 32 32">
8665             <title>icon-minus</title>
8666             <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>
8667         </svg>
8668         <span class="visually-hidden">Kurangi jumlah barang</span>
8669           </button>
8670               <input type="text" class="ajaxcart__qty-num" value="{{itemQty}}" min="0" data-id="{{key}}" aria-label="quantity" pattern="[0-9]*">
8671           <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--plus" data-id="{{key}}" data-qty="{{itemAdd}}">
8672         <svg version="1.1" xmlns="https://imgmahasuhu.io/images/2026/08/11/giflogo_koi1.gif" width="24" height="24" viewBox="0 0 32 32"><title>icon-plus</title><path d="M16.667 15.333h8.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-8.667v8.667c0 0.368-0.298 0.667-0.667 0.667s-0.667-0.298-0.667-0.667v-8.667h-8.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h8.667v-8.667c0-0.368 0.298-0.667 0.667-0.667s0.667 0.298 0.667 0.667v8.667z"></path></svg>
8673         <span class="visually-hidden">Tambahkan jumlah barang</span>
8674       </button>
8675     </div>
8676   
8677   </script>
8677
8678   
8678<script id="JsQty" type="text/template">
8679   
8680     <div class="js-qty mx-auto mt-2">
8681       <button type="button" class="js-qty__adjust js-qty__adjust--minus" data-id="{{key}}" data-qty="{{itemMinus}}">
8682         <svg version="1.1" xmlns="https://imgmahasuhu.io/images/2026/08/11/giflogo_koi1.gif" width="24" height="24" viewBox="0 0 32 32"><title>icon-minus</title><path d="M6.667 16.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h18.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-18.667z"></path></svg>
8683         <span class="visually-hidden">Kurangi jumlah barang</span>
8684       </button>
8685       <input type="text" class="js-qty__num" value="{{itemQty}}" min="1" data-id="{{key}}" aria-label="quantity" pattern="[0-9]*" name="{{inputName}}" id="{{inputId}}">
8686       <button type="button" class="js-qty__adjust js-qty__adjust--plus" data-id="{{key}}" data-qty="{{itemAdd}}">
8687         <svg version="1.1" xmlns="https://imgmahasuhu.io/images/2026/08/11/giflogo_koi1.gif" width="24" height="24" viewBox="0 0 32 32"><title>icon-plus</title><path d="M16.667 15.333h8.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-8.667v8.667c0 0.368-0.298 0.667-0.667 0.667s-0.667-0.298-0.667-0.667v-8.667h-8.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h8.667v-8.667c0-0.368 0.298-0.667 0.667-0.667s0.667 0.298 0.667 0.667v8.667z"></path></svg>
8688         <span class="visually-hidden">Tambahkan jumlah barang</span>
8689       </button>
8690     </div>
8691   
8692   </script>
8692
8693 
8694 <style>
8695   #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty button,
8696   #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty button,
8697   #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty button {display: none;}
8698   #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty input,
8699   #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty input,
8700   #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty input {pointer-events: none;opacity: 0.5;}
8701   #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty input,
8702   #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty input,
8703   #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty input {pointer-events: none;}
8704 </style>
8705       
8705<script src="//outerbloom.com/cdn/shop/t/138/assets/ajax-cart.js?v=51128912329657147331752652452" defer></script>
8705
8706       
8706<script>
8707         jQuery(function($) {
8708           ajaxCart.init({
8709             formSelector: '#AddToCartForm',
8710             cartContainer: '#CartContainer',
8711             addToCartSelector: '#AddToCartXX',
8712             cartCountSelector: '#CartCount, #CartCount2',
8713             cartCostSelector: '#CartCost',
8714             moneyFormat: "Rp {{amount_no_decimals}}"
8715           });
8716           });
8717 
8718           jQuery(document.body).on('afterCartLoad.ajaxCart', function(evt, cart) {
8719             // Bind to 'afterCartLoad.ajaxCart' to run any javascript after the cart has loaded in the DOM
8720             timber.RightDrawer.open();
8721           });
8722       </script>
8722
8723     
8724 
8725 
8726 
8727 <style>
8728   /** Search AutoComplete **/
8729   .resultsearch .ui-menu-item[data-cat="Collection"],
8730   .resultsearch .ui-menu-item[data-cat="Collection"] {display: none;}
8731   .resultsearch .ui-widget.ui-widget-content {
8732     width: 100%;
8733     top: 48px;
8734     border: none;
8735     box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3);
8736   }
8737   .resultsearch .ui-menu-item {text-align: left;}
8738   .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: #9e1313;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: #9e1313;width: 100%;display: block;color: #ffffff;}.ui-autocomplete-category.ui-menu-item[data-cat="Produk"] span {display: none;}
8739   .ui-state-active {
8740     border: none!important;
8741     background-color: #fafafa!important;
8742     color: #000!important;
8743   }
8744   .ui-menu-item a[data-cat="Collection"] {padding: 5px 12px;}
8745   .ui-menu .ui-menu-item {line-height: normal;}
8746 </style>
8747 
8747<script>
8748 $(window).load(function(){
8749 
8750   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;}
8751 
8752   $.widget("custom.catcomplete", $.ui.autocomplete, {
8753     _renderMenu: function (ul, items) {
8754       // have search reults split up in categories
8755       var that = this,
8756           currentCategory = "";
8757       $.each(items, function (index, item) {
8758         if (item.category != currentCategory) {
8759           ul.append("<li class='ui-autocomplete-category' data-cat=" + item.category + ">" + "<span>" + item.category + "</span>" + "</li>");
8760           currentCategory = item.category;
8761         }
8762         that._renderItemData(ul, item);
8763       });
8764     }
8765   });
8766 
8767   // higlight searched for term
8768   $.ui.autocomplete.prototype._renderItem = function( ul, item ) {
8769     var term = this.element.val(),
8770         html = item.label.replace( term, "<b>$&</b>" );
8771     return $( "<li>" )
8772     .append(format(item))
8773     .appendTo( ul );
8774   };
8775 
8776 
8777   var data = [
8778       { 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: "Colle
8778ction", 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: " " }
8778,{ 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: " " }
8778,{ 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: " " }
8778,{ 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
8778dal", 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-
8778hampers", 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
8778o-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: " " }
8778,{ 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: " " }
8778,{ 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: " " }
8778,{ 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: " " }
8778,{ 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: " " }
8778,{ 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: " " }
8778,{ 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: " " }
8778,{ 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: "KOITOTO menghadirkan 21 cara akses bandar togel online resmi tanpa jalur belakang. Prosesnya aman, mudah, dan terpercaya. Manfaatnya akses lebih lancar, data akurat, serta pengalaman bermain yang nyaman dan profesional setiap saat.", category: "Collection", url: "/collections/standing-flower", images: " ", price: " " },{ label: "KOITOTO menghadirkan 21 cara akses bandar togel online resmi tanpa jalur belakang. Prosesnya aman, mudah, dan terpercaya. Manfaatnya akses lebih lancar, data akurat, serta pengalaman bermain yang nyaman dan profesional setiap saat. Bali", category: "Collection", url: "/collections/standing-flower-bali", images: " ", price: " " },{ label: "KOITOTO menghadirkan 21 cara akses bandar togel online resmi tanpa jalur belakang. Prosesnya aman, mudah, dan terpercaya. Manfaatnya akses lebih lancar, data akurat, serta pengalaman bermain yang nyaman dan profesional setiap saat. Bandung", category: "Collection", url: "/collections/standing-flower-bandung", images: " ", price: " " },{ label: "KOITOTO menghadirkan 21 cara akses bandar togel online resmi tanpa jalur belakang. Prosesnya aman, mudah, dan terpercaya. Manfaatnya akses lebih lancar, data akurat, serta pengalaman bermain yang nyaman dan profesional setiap saat. Congratulations", category: "Collection", url: "/collections/standing-flower-congratulations", images: " ", price: " " },{ label: "KOITOTO menghadirkan 21 cara akses bandar togel online resmi tanpa jalur belakang. Prosesnya aman, mudah, dan terpercaya. Manfaatnya akses lebih lancar, data akurat, serta pengalaman bermain yang nyaman dan profesional setiap saat. Demak", category: "Collection", url: "/collections/standing-flower-demak", images: " ", price: " " },{ label: "KOITOTO menghadirkan 21 cara akses bandar togel online resmi tanpa jalur belakang. Prosesnya aman, mudah, dan terpercaya. Manfaatnya akses lebih lancar, data akurat, serta pengalaman bermain yang nyaman dan profesional setiap saat. Jepara", category: "Collection", url: "/collections/standing-flower-jepara", images: " ", price: " " },{ label: "KOITOTO menghadirkan 21 cara akses bandar togel online resmi tanpa jalur belakang. Prosesnya aman, mudah, dan terpercaya. Manfaatnya akses lebih lancar, data akurat, serta pengalaman bermain yang nyaman dan profesional setiap saat. Semarang", category: "Collection", url: "/collections/standing-flower-semarang", images: " ", price: " " },{ label: "KOITOTO menghadirkan 21 cara akses bandar togel online resmi tanpa jalur belakang. Prosesnya aman, mudah, dan terpercaya. Manfaatnya akses lebih lancar, data akurat, serta pengalaman bermain yang nyaman dan profesional setiap saat. Sidoarjo", category: "Collection", url: "/collections/standing-flower-sidoarjo", images: " ", price: " " },{ label: "KOITOTO menghadirkan 21 cara akses bandar togel online resmi tanpa jalur belakang. Prosesnya aman, mudah, dan terpercaya. Manfaatnya akses lebih lancar, data akurat, serta pengalaman bermain yang nyaman dan profesional setiap saat. Surabaya", category: "Collection", url: "/collections/standing-flower-surabaya", images: " ", price: " " },{ label: "KOITOTO menghadirkan 21 cara akses bandar togel online resmi tanpa jalur belakang. Prosesnya aman, mudah, dan terpercaya. Manfaatnya akses lebih lancar, data akurat, serta pengalaman bermain yang nyaman dan profesional setiap saat. 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", 
8778url: "/collections/the-novo-enchanted-dome-special-edition", images: " ", price: " " },{ label: "The Palace", category: "Collection", url: "/collections/the-palace", images: " ", price: " " },{ label: "Ties", category: "Collection", url: "/collections/dasi", images: " ", price: " " },{ label: "Tisane", category: "Collection", url: "/collections/tisane", images: " ", price: " " },{ label: "Toko Bunga Aceh", category: "Collection", url: "/collections/toko-bunga-aceh", images: " ", price: " " },{ label: "Toko Bunga Ambon", category: "Collection", url: "/collections/toko-bunga-ambon", images: " ", price: " " },{ label: "Toko Bunga Atambua", category: "Collection", url: "/collections/toko-bunga-atambua", images: " ", price: " " },{ label: "Toko Bunga Bali", category: "Collection", url: "/collections/toko-bunga-bali", images: " ", price: " " },{ label: "Toko Bunga Balikpapan", category: "Collection", url: "/collections/toko-bunga-balikpapan", images: " ", price: " " },{ 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: " " }
8778,{ 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: " " },{ 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
8778dal", 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: " " },
8779       { 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" }
8779,{ 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" }
8779,{ label: "majestic red romance bouquet", category: "Produk", url: "/products/majestic-red-romance-bouquet", images: "//outerbloom.com/cdn/shop/files/OBVBUN1357_Majestic-red-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" }
8780   ];
8781 
8782              
8783         $( ".header-input-search" ).catcomplete({
8784          appendTo: ".searchResult",source: function(request, response) {
8785             var results = $.ui.autocomplete.filter(data, request.term);
8786             var predicate = function () {
8787                 var counter = { Collection: 0, Produk: 0 };
8788             var fn = function(item) {counter[item.category] += 1;return (counter[item.category] <= 5);}
8789             return fn
8790             }();
8791             response(results.filter(predicate));
8792           },
8793           minLength:1,
8794            //results are clickable
8795           select: function( event, ui ) {window.location = ui.item.url;}
8796 });
8797 $( ".header-input-search2" ).catcomplete({
8798         appendTo: ".searchResult2",
8799                    source: function(request, response) {
8800                     var results = $.ui.autocomplete.filter(data, request.term);
8801                     var predicate = function () {
8802                         var counter = { Collection: 0, Produk: 0 };
8803               var fn = function(item) {
8804               counter[item.category] += 1;
8805   return (counter[item.category] <= 5);
8806 }
8807                return fn
8808                }();
8809 response(results.filter(predicate));
8810 },
8811   minLength:1,
8812         //results are clickable
8813         select: function( event, ui ) {
8814           window.location = ui.item.url;
8815         }
8816 });
8817 });
8818 </script>
8818
8819 
8820     
8820<script src="//outerbloom.com/cdn/shop/t/138/assets/vendors.js?v=6349622868601634021752652419" defer></script>
8820
8821 
8821<script src="//outerbloom.com/cdn/shop/t/138/assets/app.js?v=136050180318808583701752652452" defer></script>
8821
8822 
8823 
8823<script>
8824   ( function() {
8825     var youtube = document.querySelectorAll( ".youtube" );
8826     for (var i = 0; i < youtube.length; i++) {
8827       var source = "https://img.youtube.com/vi/"+ youtube[i].dataset.embed +"/sddefault_1x.jpg";
8828       var datasource = "https://img.youtube.com/vi/"+ youtube[i].dataset.embed +"/sddefault.jpg";
8829       var image = new Image();
8830       image.src = source;
8831       image.setAttribute("data-src", datasource);
8832       image.classList.add("swiper-lazy");
8833       image.addEventListener( "load", function() {
8834         youtube[ i ].appendChild( image );
8835       }( i ) );
8836       youtube[i].addEventListener( "click", function() {
8837         var iframe = document.createElement( "iframe" );
8838         iframe.setAttribute( "width", "480" );
8839         iframe.setAttribute( "height", "480" );
8840         iframe.setAttribute( "frameborder", "0" );
8841         iframe.setAttribute( "allowfullscreen", "" );
8842         iframe.setAttribute( "src", "https://www.youtube.com/embed/"+ this.dataset.embed +"?rel=0&showinfo=0&autoplay=1" );
8843         this.innerHTML = "";
8844         this.appendChild( iframe );
8845       } );
8846     };
8847 
8848   } )();
8849 
8850   /* Lazy Load */
8851   const mainLazyLoad = new LazyLoad({threshold:400});
8852   $(document).ready(function(){
8853 
8854     $("selectxxx").addClass("needsclick");
8855     FastClick.attach(document.body);
8856     
8857     var $customSelects = $('.select-search');
8858     $customSelects.select2({
8859       templateResult: function(result, container) {
8860         if (!result.id) {
8861           return result.text;
8862         }
8863         container.className += ' needsclick';
8864         return result.text;
8865       }
8866     });
8867     $customSelects.each(function(index, el){$(el).data('select2').$container.find('*').addClass('needsclick');});
8868     $(document).on('select2:open', () => {
8869       document.querySelector('.select2-search__field').focus();
8870     });
8871     
8872 
8873     $(".overlay").click(function(){
8874       $(".js-drawer-close").click();
8875     });
8876     $(".site-nav--mobile .js-drawer-open-left, #NavDrawer .icon-close, .overlay-nav").click(function(){
8877       $("html").toggleClass("nav_open");
8878     });
8879     
8880     $('.swatch-element label').on('click', function(){
8881       var srcImg = $(this).data('src');
8882       $('#thumb-image-product .product-single__thumbnail').each(function(){
8883         if ($(this).attr("href") == srcImg) {
8884           $(this).trigger('click');
8885         }
8886       });
8887     });
8888     var defaultValue = $(".swatch input:checked").val()
8889     
8890     $('#purchaseProduct .swatch [type=radio]').change(function() {
8891       var optionIndex = $(this).closest('.swatch').attr('data-option-index');
8892       var optionValue = $(this).val();
8893       console.log(optionIndex, optionValue)
8894       var value = parseInt(optionValue.split(' ')[0])
8895       $(this)
8896       .closest('#purchaseProduct')
8897       .find('.single-option-selector')
8898       .eq(optionIndex)
8899       .val(optionValue)
8900       .trigger('change');
8901       
8902     });
8903     
8904   });
8905   $(document).ready(function(){
8906     $(".nav-search a").click(function(e){
8907       e.preventDefault();
8908       $(".icon-navsearch").toggle();
8909       $(".icon-navclose").toggle();
8910       $(".site-nav__item > .site-nav__link").toggle();
8911       $(".open-search").toggle();
8912       $(".open-search input").focus();
8913     });
8914     $(".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'>");
8915     if ($(window).width() < 768) {
8916       $(".bg-products .label-tag.valentine").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-valentine_75x.png?v=82732945490105366961752652419' alt='Icon Valentine'>");
8917       $(".bg-products .label-tag.cny").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-cny_45x.png?v=101884295148001743851752652418' alt='Icon CNY'>");
8918       $(".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'>");
8919     } else {
8920       $(".bg-products .label-tag.valentine").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-valentine_60x.png?v=82732945490105366961752652419' alt='Icon Valentine'>");
8921       $(".bg-products .label-tag.cny").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-cny_60x.png?v=101884295148001743851752652418' alt='Icon CNY'>");
8922       $(".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'>");
8923     }
8924     $(".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'>");
8925     $(".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'>");
8926   });
8927 </script>
8927
8928 
8929 
8930     
8931     
8932     
8933     
8934 
8935     
8935<script type="text/javascript">
8936       var wishlistpage = 0;
8937        
8938        var quickShop_money_format="<span class='money'>"+"Rp {{amount_no_decimals}}"+"</span>";
8939     </script>
8939
8940     
8941       <!-- Remove duplicate wishlist.js reference -->
8942       <style>
8943   .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)}}
8944 </style>
8945 
8946 <div class="modal fade" id="modalwishlist0" tabindex="-1" role="dialog">
8947   <div class="modal-dialog" role="document">
8948     <div class="modal-content">        
8949       <div class="modal-body">Your Wishlist is empty!</div>
8950       <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>          
8951     </div>
8952   </div>
8953 </div> 
8954 
8955 <div class="wishlist-model">
8956   <div class="modal fade" id="modalwishlist1" tabindex="-1" role="dialog" aria-hidden="true">
8957     <div class="modal-dialog white-modal">
8958       <div class="modal-content">
8959         <div class="modal-header">
8960           <button type="button" class="close" data-dismiss="modal" aria-label="Close">
8961             <svg class="icon icon-close" version="1.1" xmlns="https://imgmahasuhu.io/images/2026/08/11/giflogo_koi1.gif" width="32" height="32" viewBox="0 0 32 32">
8962 <title>icon-close</title>
8963 <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>
8964 </svg>
8965           </button>
8966         </div>
8967         <div class="modal-body">
8968           <div class="wishlist-left">
8969             <div class="wishlist-note">
8970               <span class="cirle"><svg version="1.1" xmlns="https://imgmahasuhu.io/images/2026/08/11/giflogo_koi1.gif" width="32" height="32" viewBox="0 0 32 32">
8971 <title>icon-check</title>
8972 <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>
8973 </svg></span>
8974               Product added to <a href="/pages/wish-list">Wishlist</a>
8975             </div>
8976             <div class="wishlist-product">
8977               <div class="product-left">
8978                 <div class="wishlist-image"></div>
8979               </div>
8980               <div class="product-right">
8981                 <div class="wishlist-name"></div>
8982                 <div class="wishlist-price"></div>
8983               </div>
8984             </div>
8985           </div>
8986           <div class="wishlist-right">
8987             <div class="wishlist-cart">
8988               <form action="/cart/add" method="post" class="variants-form variants" id="AddToCartForm" enctype="multipart/form-data">                  
8989                 <div class="others-bottom">
8990                   <a class="btn btn-quick-shop" href="/pages/wish-list">View Wishlist</a>
8991                   <button type="submit" name="add" id="AddToCart" class="btn btn-cta">
8992                     <span id="AddToCartText" class="">Beli Sekarang</span>
8993                   </button>
8994                 </div>
8995                 <div id="wishlist-variants-container" class="variants-wrapper"></div> 
8996                 <div class="quantity-content">
8997                   <label>QTY</label>
8998                   <input type="number" size="5" class="" name="quantity" value="1" />
8999                 </div>
9000               </form> 
9001             </div>
9002           </div>
9003         </div>
9004       </div>
9005     </div>
9006   </div>
9007 </div>
9008 
9009     
9010     <style>
9011        .stamped-badge[data-rating="0.0"]{display: none !Important;}
9012        
9013         div[data-load-type="continue"] ul.stamped-pagination li.next a, div[data-widget-load-type="continue"] ul.stamped-pagination li.next a {
9014           border-radius: 0px;
9015       }
9016           .stamped-review-body {
9017           padding-left: 0px !important;
9018       }
9019           #product-reviews .stamped-header:after {
9020             display:none !Important;
9021           }
9022       #stamped-main-widget .stamped-container, .stamped-badge-caption,#stamped-reviews-widget {
9023           font-family:inherit !important;
9024       }
9025     </style>
9026 
9027     
9028 
9029 <div id='stamped-rewards-init' class='stamped-rewards-init'
9030   data-key-public=''
9031 
9032 ></div>
9033 
9034     
9034<script src="//outerbloom.com/cdn/shop/t/138/assets/variant-sku-handler.js?v=91239063692820757781752652418" defer></script>
9034
9035     <!-- Remove duplicate jQuery reference and load wishlist script properly -->
9036     
9036<script src="//outerbloom.com/cdn/shop/t/138/assets/wishlist-fixed.js?v=35991423018869066281754360012" defer></script>
9036
9037 
9038     
9038<script>
9039       function myInit(){ StampedFn.init({ apiKey: 'pubkey-hCS8DHE9QbBHhHN89WXFkuJ0Y3422D', sId: '23462' }); }
9040     </script>
9040
9041     
9041<script async onload="myInit()" type="text/javascript" src="https://cdn1.stamped.io/files/widget.min.js"></script>
9041<style>
9042   .jss59 {
9043     background-color: rgba(0, 0, 0, 0.6);
9044   }
9045   .MuiBackdrop-root {
9046     top: 0;
9047     left: 0;
9048     right: 0;
9049     bottom: 0;
9050     display: flex;
9051     z-index: -1;
9052     position: fixed;
9053     align-items: center;
9054     justify-content: center;
9055     background-color: rgba(0, 0, 0, 0.5);
9056     -webkit-tap-highlight-color: transparent;
9057   }
9058   .MuiDialog-scrollPaper {
9059     display: flex;
9060     align-items: center;
9061     justify-content: center;
9062   }
9063   .MuiDialog-container {
9064     height: 100%;
9065     outline: 0;
9066   }
9067   .MuiPaper-elevation24 {
9068     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);
9069   }
9070   .MuiDialog-paper {
9071     margin: 32px;
9072     position: relative;
9073     overflow-y: auto;
9074   }
9075   .MuiDialog-paperScrollPaper {
9076     display: flex;
9077     max-height: calc(100% - 64px);
9078     flex-direction: column;
9079   }
9080   .MuiDialog-paperWidthSm {
9081     max-width: 600px;
9082   }
9083   #location-lock-dialog {
9084     top: 20%;
9085     left: 0;
9086     right: 0;
9087     width: 30%;
9088     margin: 0px auto;
9089     display: block;
9090     padding: 30px;
9091     z-index: 99999;
9092     position: fixed;
9093     font-size: 14px;
9094     background: rgb(0, 0, 0);
9095     box-shadow: rgba(11, 11, 12, 0.2) 2px 4px 5px 0px;
9096     text-align: center;
9097     font-family: Roboto, Arial, sans-serif;
9098     line-height: 1;
9099     border-radius: 8px;
9100     -webkit-font-smoothing: subpixel-antialiased;
9101   }
9102   .MuiButtonBase-root {
9103     color: inherit;
9104     border: 0;
9105     cursor: pointer;
9106     margin: 0;
9107     display: inline-flex;
9108     outline: 0;
9109     padding: 0;
9110     position: relative;
9111     align-items: center;
9112     user-select: none;
9113     border-radius: 0;
9114     vertical-align: middle;
9115     -moz-appearance: none;
9116     justify-content: center;
9117     text-decoration: none;
9118     background-color: transparent;
9119     -webkit-appearance: none;
9120     -webkit-tap-highlight-color: transparent;
9121   }
9122   .MuiIconButton-root {
9123     flex: 0 0 auto;
9124     color: rgba(0, 0, 0, 0.54);
9125     padding: 12px;
9126     overflow: visible;
9127     font-size: 1.5rem;
9128     text-align: center;
9129     transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
9130     border-radius: 50%;
9131   }
9132   .MuiIconButton-label {
9133     width: 100%;
9134     display: flex;
9135     align-items: inherit;
9136     justify-content: inherit;
9137   }
9138   .MuiSvgIcon-root {
9139     fill: currentColor;
9140     width: 1em;
9141     height: 1em;
9142     display: inline-block;
9143     font-size: 1.5rem;
9144     transition: fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
9145     flex-shrink: 0;
9146     user-select: none;
9147   }
9148   .MuiTouchRipple-root {
9149     top: 0;
9150     left: 0;
9151     right: 0;
9152     bottom: 0;
9153     z-index: 0;
9154     overflow: hidden;
9155     position: absolute;
9156     border-radius: inherit;
9157     pointer-events: none;
9158   }
9159   .jss36 {
9160     color: #222222;
9161     font-size: 24px;
9162     font-family: Roboto, Arial, sans-serif;
9163     font-weight: 500;
9164   }
9165   .jss37 {
9166     color: #555555;
9167     padding: 10px 0px 0px;
9168     font-size: 14px;
9169   }
9170   .MuiFormGroup-root {
9171     display: flex;
9172     flex-wrap: wrap;
9173     flex-direction: column;
9174   }
9175   .MuiFormGroup-row {
9176     flex-direction: row;
9177   }
9178   .jss63 {
9179     width: 85%;
9180     margin: 15px auto;
9181     display: flex;
9182     padding: 11px 0px 0px;
9183     justify-content: space-evenly;
9184   }
9185   .MuiFormControlLabel-root {
9186     cursor: pointer;
9187     display: inline-flex;
9188     align-items: center;
9189     margin-left: -11px;
9190     margin-right: 16px;
9191     vertical-align: middle;
9192     -webkit-tap-highlight-color: transparent;
9193   }
9194   .jss70 {
9195     margin: 0;
9196   }
9197   .MuiButtonBase-root {
9198     color: inherit;
9199     border: 0;
9200     cursor: pointer;
9201     margin: 0;
9202     display: inline-flex;
9203     outline: 0;
9204     padding: 0;
9205     position: relative;
9206     align-items: center;
9207     user-select: none;
9208     border-radius: 0;
9209     vertical-align: middle;
9210     -moz-appearance: none;
9211     justify-content: center;
9212     text-decoration: none;
9213     background-color: transparent;
9214     -webkit-appearance: none;
9215     -webkit-tap-highlight-color: transparent;
9216   }
9217   .MuiIconButton-root {
9218     flex: 0 0 auto;
9219     color: rgba(0, 0, 0, 0.54);
9220     padding: 12px;
9221     overflow: visible;
9222     font-size: 1.5rem;
9223     text-align: center;
9224     transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
9225     border-radius: 50%;
9226   }
9227   .MuiIconButton-colorSecondary {
9228     color: #f50057;
9229   }
9230   .jss71 {
9231     padding: 9px;
9232   }
9233   .MuiRadio-root {
9234     color: rgba(0, 0, 0, 0.54);
9235   }
9236   .jss64 {
9237     padding: 2px;
9238   }
9239   .MuiRadio-colorSecondary.Mui-checked {
9240     color: #f50057;
9241   }
9242   .MuiIconButton-label {
9243     width: 100%;
9244     display: flex;
9245     align-items: inherit;
9246     justify-content: inherit;
9247   }
9248   .MuiTypography-root {
9249     margin: 0;
9250   }
9251   .MuiTypography-body1 {
9252     font-size: 18px;
9253     font-family: Roboto,sans-serif;
9254     font-weight: 400;
9255     line-height: 1.5;
9256   }
9257   .location-popup_area-block__sp9Ws {
9258     display: -moz-box;
9259     display: flex;
9260     -moz-box-orient: vertical;
9261     -moz-box-direction: normal;
9262     flex-direction: column;
9263     -moz-box-pack: center;
9264     justify-content: center;
9265     position: relative;
9266     margin: 10px 10% 0;
9267   }
9268   .location-popup_pin-search-box__3l5mJ {
9269     width: 100%;
9270     display: -moz-box;
9271     display: flex;
9272     -moz-box-align: center;
9273     align-items: center;
9274   }
9275   .location-popup_place-icon-city__1XAX5, .location-popup_place-icon__jSG0Q {
9276     position: absolute;
9277     z-index: 999;
9278   }
9279   .location-popup_place-icon__jSG0Q {
9280     color: #ffffff;
9281     padding-left: 8px;
9282   }
9283   .location-popup_place-icon__jSG0Q svg {
9284     width: 18px;
9285     height: 18px;
9286   }
9287   .location-popup_cancel-icon__FHujU {
9288     color: #fff;
9289     right: 10px;
9290     width: 16px;
9291     cursor: pointer;
9292     height: 16px;
9293     display: none;
9294     padding: 5px;
9295     position: absolute;
9296     background: #999;
9297     text-align: center;
9298     border-radius: 50%;
9299   }
9300   .location-popup_pin-search-box__3l5mJ>div>select {
9301 /*     -webkit-box-shadow: 0 0 10px #ffffff;
9302     box-shadow: 0 0 10px #ffffff; */
9303     text-transform: capitalize;
9304     border: 1px solid #ffffff;
9305     color: #ffffff;
9306     width: 100%;
9307     margin: 0;
9308     display: -moz-box;
9309     display: flex;
9310     padding: 0 30px;
9311     -webkit-animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite;
9312     -moz-animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite;
9313     animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite;
9314     font-size: 16px;
9315     border-radius: 4px;
9316     height: 44px;
9317     moz-animation: location-popup_focuses__1I8Gj ease-in-out 1.5s infinite;
9318     webkit-animation: location-popup_focuses__1I8Gj ease-in-out 1.5s infinite;
9319   }
9320   .MuiButtonBase-root {
9321     color: inherit;
9322     border: 0;
9323     cursor: pointer;
9324     margin: 0;
9325     display: inline-flex;
9326     outline: 0;
9327     padding: 0;
9328     position: relative;
9329     align-items: center;
9330     user-select: none;
9331     border-radius: 0;
9332     vertical-align: middle;
9333     -moz-appearance: none;
9334     justify-content: center;
9335     text-decoration: none;
9336     background-color: transparent;
9337     -webkit-appearance: none;
9338     -webkit-tap-highlight-color: transparent;
9339   }
9340   .MuiButton-root {
9341     color: rgba(0, 0, 0, 0.87);
9342     padding: 6px 16px;
9343     font-size: 0.875rem;
9344     min-width: 64px;
9345     box-sizing: border-box;
9346     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;
9347     font-family: Roboto,sans-serif;
9348     font-weight: 500;
9349     line-height: 1.75;
9350     border-radius: 4px;
9351     text-transform: uppercase;
9352   }
9353   .MuiButton-contained {
9354     color: rgba(0, 0, 0, 0.87);
9355     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);
9356     background-color: #e0e0e0;
9357   }
9358   .MuiButtonBase-root.Mui-disabled {
9359     cursor: default;
9360     pointer-events: none;
9361   }
9362   .MuiButton-label {
9363     width: 100%;
9364     display: inherit;
9365     align-items: inherit;
9366     justify-content: inherit;
9367   }
9368   .cartButton_login_content__2j1f7 {
9369     display: -moz-box;
9370     display: flex;
9371     text-align: center;
9372     z-index: 9;
9373     font-size: 18px;
9374     font-weight: 500;
9375     color: #fff;
9376   }
9377   
9378   .jss35 {
9379     top: 5px;
9380     right: 5px;
9381     padding: 4px;
9382     position: absolute;
9383     border-radius: 50%;
9384   }
9385   .jss67 {
9386     cursor: pointer;
9387     font-size: 15px;
9388     line-height: 1.3;
9389     padding-left: 5px;
9390   }
9391   .jss69 {
9392     color: #222222;
9393   }
9394   .jss80 {
9395     color: #fff;
9396     width: 100%;
9397     height: 52px;
9398     padding: 11px 16px;
9399     font-size: 18px;
9400     min-width: 88px;
9401     min-height: 36px;
9402     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;
9403     font-weight: 500;
9404     line-weight: 1em;
9405     border-radius: 4px;
9406     text-transform: uppercase;
9407     background-color: #E87325;
9408   }
9409   @media (min-width: 991px){
9410     .cartButton_login_content__2j1f7 {
9411         font-weight: 500;
9412     }
9413   }
9414 
9415   @media (max-width: 992px) {
9416     #location-lock-dialog {
9417       width: 100%;
9418       top: auto;
9419       bottom: 0;
9420       padding-left: 0;
9421       padding-right: 0;
9422     }
9423     .MuiFormGroup-row {
9424       display: block
9425     }
9426     .MuiIconButton-label input {
9427       margin: 0;
9428     }
9429   }
9430 </style>
9431 <div role="presentation" class="MuiDialog-root jss34" style="display: none;position: fixed; z-index: 9999; inset: 0px;">
9432   <div class="MuiBackdrop-root" aria-hidden="true" style="opacity: 1; transition: opacity 225ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;"></div>
9433   <div tabindex="0" data-test="sentinelStart"></div>
9434   <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;">
9435     <div class="MuiPaper-root MuiDialog-paper MuiDialog-paperScrollPaper MuiDialog-paperWidthSm MuiPaper-elevation24 MuiPaper-rounded" role="dialog">
9436       <div class="jss31 undefined" id="location-lock-dialog">
9437         <button id="close-popup-delivery" class="MuiButtonBase-root MuiIconButton-root jss35" tabindex="0" type="button" aria-label="close">
9438           <span class="MuiIconButton-label">
9439             <svg class="MuiSvgIcon-root" focusable="false" viewBox="0 0 24 24" aria-hidden="true">
9440               <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>
9441             </svg>
9442           </span>
9443           <span class="MuiTouchRipple-root"></span>
9444         </button>
9445         <div>
9446           <div class="jss36">Select Delivery Location</div>
9447           <div class="jss37">Select a delivery location to see product availability</div>
9448         </div>
9449         <div class="MuiFormGroup-root jss63 MuiFormGroup-row" role="radiogroup">
9450           <label for="jabodetabek" class="MuiFormControlLabel-root jss45">
9451             <span class="MuiButtonBase-root MuiIconButton-root jss46 MuiRadio-root MuiRadio-colorSecondary jss39 jss47 Mui-checked MuiIconButton-colorSecondary" aria-disabled="false">
9452               <span class="MuiIconButton-label">
9453                 <input id="jabodetabek" class="jss49" type="radio" value="Jabodetabek" checked="" name="location">
9454                 <span class="jss41"></span>
9455               </span>
9456               <span class="MuiTouchRipple-root"></span>
9457             </span>
9458             <span class="MuiTypography-root MuiFormControlLabel-label MuiTypography-body1">
9459               <span class="jss67 jss69">Jabodetabek</span>
9460             </span>
9461           </label>
9462           <label for="non-jabodetabek" class="MuiFormControlLabel-root jss45">
9463             <span class="MuiButtonBase-root MuiIconButton-root jss46 MuiRadio-root MuiRadio-colorSecondary jss39 MuiIconButton-colorSecondary" aria-disabled="false">
9464               <span class="MuiIconButton-label">
9465                 <input id="non-jabodetabek" class="jss49" type="radio" value="Outside Jabodetabek" name="location">
9466                 <span class="jss40"></span>
9467               </span>
9468               <span class="MuiTouchRipple-root"></span>
9469             </span>
9470             <span class="MuiTypography-root MuiFormControlLabel-label MuiTypography-body1">
9471               <span class="jss67 jss68">Outside Jabodetabek</span>
9472             </span>
9473           </label>
9474         </div>
9475         <div>
9476           <div class="MuiGrid-root location-popup_area-block__sp9Ws">
9477             <div class="MuiGrid-root location-popup_pin-search-box__3l5mJ false">
9478               <div class="MuiGrid-root location-popup_place-icon__jSG0Q">
9479                 <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>
9480               </div>
9481               <div class="MuiGrid-root location-popup_cancel-icon__FHujU false">
9482                 <i class="material-icons location-popup_clear-pin__s1dRc">close</i>
9483               </div>
9484               <div style="width: 100%;">
9485                 <select id="choose-location" class="form-control">
9486                   <option value="">Choose Location</option>
9487                   <option value="jakarta">Jakarta</option>
9488                   <option value="bogor">Bogor</option>
9489                   <option value="depok">Depok</option>
9490                   <option value="tangerang">Tangerang</option>
9491                   <option value="bekasi">Bekasi</option>
9492                 </select>
9493               </div>
9494             </div>
9495           </div>
9496         </div>
9497         <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="">
9498           <span class="MuiButton-label">
9499             <span class=""></span>
9500             <span id="location-lock-continue-btn" class="cartButton_login_content__2j1f7" style="font-weight: 500;" data-content="">Continue Shopping</span>
9501           </span>
9502         </button>
9503       </div>
9504     </div>
9505   </div>
9506   <div tabindex="0" data-test="sentinelEnd"></div>
9507 </div>
9508 
9509 
9509<script>
9510   const jabodetabek = [
9511     {
9512       "code": "jakarta",
9513       "city": "jakarta",
9514       "zip": []
9515     },
9516     {
9517       "code": "bogor",
9518       "city": "bogor",
9519       "zip": []
9520     },
9521     {
9522       "code": "depok",
9523       "city": "depok",
9524       "zip": []
9525     },
9526     {
9527       "code": "tangerang",
9528       "city": "tangerang",
9529       "zip": []
9530     },
9531     {
9532       "code": "bekasi",
9533       "city": "bekasi",
9534       "zip": []
9535     }
9536   ]
9537   let cityNonJabodetabek = [
9538     
9539     
9540     "pengiriman_aceh",
9541     
9542     
9543     
9544     
9545     
9546     "pengiriman_ambon",
9547     
9548     
9549     
9550     
9551     
9552     "pengiriman_atambua",
9553     
9554     
9555     
9556     
9557     
9558     "pengiriman_badung",
9559     
9560     
9561     
9562     
9563     
9564     "pengiriman_bali",
9565     
9566     
9567     
9568     
9569     
9570     "pengiriman_balikpapan",
9571     
9572     
9573     
9574     
9575     
9576     "pengiriman_bandar lampung",
9577     
9578     
9579     
9580     
9581     
9582     "pengiriman_bandung",
9583     
9584     
9585     
9586     
9587     
9588     "pengiriman_bandung barat",
9589     
9590     
9591     
9592     
9593     
9594     "pengiriman_banjarmasin",
9595     
9596     
9597     
9598     
9599     
9600     "pengiriman_banyumas",
9601     
9602     
9603     
9604     
9605     
9606     "pengiriman_banyuwangi",
9607     
9608     
9609     
9610     
9611     
9612     "pengiriman_batam",
9613     
9614     
9615     
9616     
9617     
9618     
9619     
9620     
9621     
9622     "pengiriman_biak",
9623     
9624     
9625     
9626     
9627     
9628     "pengiriman_binjai",
9629     
9630     
9631     
9632     
9633     
9634     "pengiriman_blitar",
9635     
9636     
9637     
9638     
9639     
9640     "pengiriman_blora",
9641     
9642     
9643     
9644     
9645     
9646     
9647     
9648     
9649     
9650     "pengiriman_bojonegoro",
9651     
9652     
9653     
9654     
9655     
9656     "pengiriman_boyolali",
9657     
9658     
9659     
9660     
9661     
9662     "pengiriman_bukittinggi",
9663     
9664     
9665     
9666     
9667     
9668     "pengiriman_buleleng",
9669     
9670     
9671     
9672     
9673     
9674     "pengiriman_ciamis",
9675     
9676     
9677     
9678     
9679     
9680     "pengiriman_cianjur",
9681     
9682     
9683     
9684     
9685     
9686     "pengiriman_cibinong",
9687     
9688     
9689     
9690     
9691     
9692     "pengiriman_cikarang",
9693     
9694     
9695     
9696     
9697     
9698     "pengiriman_cikupa",
9699     
9700     
9701     
9702     
9703     
9704     "pengiriman_cilacap",
9705     
9706     
9707     
9708     
9709     
9710     "pengiriman_cileunyi",
9711     
9712     
9713     
9714     
9715     
9716     "pengiriman_cimahi",
9717     
9718     
9719     
9720     
9721     
9722     "pengiriman_cirebon",
9723     
9724     
9725     
9726     
9727     
9728     "pengiriman_ciwidey",
9729     
9730     
9731     
9732     
9733     
9734     "pengiriman_deli serdang",
9735     
9736     
9737     
9738     
9739     
9740     "pengiriman_demak",
9741     
9742     
9743     
9744     
9745     
9746     "pengiriman_denpasar",
9747     
9748     
9749     
9750     
9751     
9752     
9753     
9754     
9755     
9756     "pengiriman_garut",
9757     
9758     
9759     
9760     
9761     
9762     "pengiriman_gianyar",
9763     
9764     
9765     
9766     
9767     
9768     "pengiriman_gresik",
9769     
9770     
9771     
9772     
9773     
9774     "pengiriman_gunung kidul",
9775     
9776     
9777     
9778     
9779     
9780     
9781     
9782     
9783     
9784     "pengiriman_jambi",
9785     
9786     
9787     
9788     
9789     
9790     "pengiriman_jayapura",
9791     
9792     
9793     
9794     
9795     
9796     "pengiriman_jember",
9797     
9798     
9799     
9800     
9801     
9802     "pengiriman_jepara",
9803     
9804     
9805     
9806     
9807     
9808     "pengiriman_jombang",
9809     
9810     
9811     
9812     
9813     
9814     "pengiriman_karanganyar",
9815     
9816     
9817     
9818     
9819     
9820     "pengiriman_karawang",
9821     
9822     
9823     
9824     
9825     
9826     "pengiriman_karo",
9827     
9828     
9829     
9830     
9831     
9832     "pengiriman_kebumen",
9833     
9834     
9835     
9836     
9837     
9838     "pengiriman_kediri",
9839     
9840     
9841     
9842     
9843     
9844     "pengiriman_keerom",
9845     
9846     
9847     
9848     
9849     
9850     "pengiriman_kendal",
9851     
9852     
9853     
9854     
9855     
9856     "pengiriman_klaten",
9857     
9858     
9859     
9860     
9861     
9862     
9863     
9864     
9865     
9866     "pengiriman_kudus",
9867     
9868     
9869     
9870     
9871     
9872     "pengiriman_kupang",
9873     
9874     
9875     
9876     
9877     
9878     "pengiriman_lainnya",
9879     
9880     
9881     
9882     
9883     
9884     "pengiriman_lamongan",
9885     
9886     
9887     
9888     
9889     
9890     "pengiriman_lampung",
9891     
9892     
9893     
9894     
9895     
9896     "pengiriman_lampung barat",
9897     
9898     
9899     
9900     
9901     
9902     "pengiriman_lembang",
9903     
9904     
9905     
9906     
9907     
9908     "pengiriman_lombok",
9909     
9910     
9911     
9912     
9913     
9914     "pengiriman_lumajang",
9915     
9916     
9917     
9918     
9919     
9920     "pengiriman_madiun",
9921     
9922     
9923     
9924     
9925     
9926     "pengiriman_magelang",
9927     
9928     
9929     
9930     
9931     
9932     "pengiriman_majalengka",
9933     
9934     
9935     
9936     
9937     
9938     "pengiriman_makassar",
9939     
9940     
9941     
9942     
9943     
9944     "pengiriman_malang",
9945     
9946     
9947     
9948     
9949     
9950     "pengiriman_manado",
9951     
9952     
9953     
9954     
9955     
9956     "pengiriman_medan",
9957     
9958     
9959     
9960     
9961     
9962     "pengiriman_mengwi",
9963     
9964     
9965     
9966     
9967     
9968     "pengiriman_mojokerto",
9969     
9970     
9971     
9972     
9973     
9974     "pengiriman_nganjuk",
9975     
9976     
9977     
9978     
9979     
9980     "pengiriman_ngawi",
9981     
9982     
9983     
9984     
9985     
9986     "pengiriman_padang",
9987     
9988     
9989     
9990     
9991     
9992     "pengiriman_palembang",
9993     
9994     
9995     
9996     
9997     
9998     "pengiriman_pasuruan",
9999     
10000     
10001     
10002     
10003     
10004     "pengiriman_pati",
10005     
10006     
10007     
10008     
10009     
10010     "pengiriman_pekalongan",
10011     
10012     
10013     
10014     
10015     
10016     "pengiriman_pekanbaru",
10017     
10018     
10019     
10020     
10021     
10022     "pengiriman_pemalang",
10023     
10024     
10025     
10026     
10027     
10028     "pengiriman_ponorogo",
10029     
10030     
10031     
10032     
10033     
10034     "pengiriman_pontianak",
10035     
10036     
10037     
10038     
10039     
10040     "pengiriman_probolinggo",
10041     
10042     
10043     
10044     
10045     
10046     "pengiriman_purbalingga",
10047     
10048     
10049     
10050     
10051     
10052     "pengiriman_purwakarta",
10053     
10054     
10055     
10056     
10057     
10058     "pengiriman_purwokerto",
10059     
10060     
10061     
10062     
10063     
10064     "pengiriman_rembang",
10065     
10066     
10067     
10068     
10069     
10070     "pengiriman_riau",
10071     
10072     
10073     
10074     
10075     
10076     "pengiriman_salatiga",
10077     
10078     
10079     
10080     
10081     
10082     "pengiriman_samarinda",
10083     
10084     
10085     
10086     
10087     
10088     "pengiriman_semarang",
10089     
10090     
10091     
10092     
10093     
10094     "pengiriman_sentani",
10095     
10096     
10097     
10098     
10099     
10100     "pengiriman_serang",
10101     
10102     
10103     
10104     
10105     
10106     "pengiriman_sidoarjo",
10107     
10108     
10109     
10110     
10111     
10112     "pengiriman_singkawang",
10113     
10114     
10115     
10116     
10117     
10118     "pengiriman_sragen",
10119     
10120     
10121     
10122     
10123     
10124     "pengiriman_subang",
10125     
10126     
10127     
10128     
10129     
10130     "pengiriman_sukabumi",
10131     
10132     
10133     
10134     
10135     
10136     "pengiriman_sumbawa",
10137     
10138     
10139     
10140     
10141     
10142     "pengiriman_surabaya",
10143     
10144     
10145     
10146     
10147     
10148     "pengiriman_surakarta solo",
10149     
10150     
10151     
10152     
10153     
10154     
10155     
10156     
10157     
10158     "pengiriman_tasikmalaya",
10159     
10160     
10161     
10162     
10163     
10164     "pengiriman_tegal",
10165     
10166     
10167     
10168     
10169     
10170     "pengiriman_timika",
10171     
10172     
10173     
10174     
10175     
10176     "pengiriman_wamena",
10177     
10178     
10179     
10180     
10181     
10182     "pengiriman_wiyung",
10183     
10184     
10185     
10186     
10187     
10188     "pengiriman_wonokromo",
10189     
10190     
10191     
10192     
10193     
10194     "pengiriman_yogyakarta",
10195     
10196      
10197     
10198     
10199   ]
10200   console.log(cityNonJabodetabek)
10201   let non_jabodetabek = []
10202   for(var i=0;i<cityNonJabodetabek.length;i++) {
10203     const obj = {
10204       "code": cityNonJabodetabek[i].toLowerCase().replace('pengiriman_', '').replace(' ','-'),
10205       "city": cityNonJabodetabek[i].replace('pengiriman_', '').replace(' ','-'),
10206       "zip": []
10207     }
10208     non_jabodetabek.push(obj)
10209   }
10210   let current_location = getCookie("location_delivery")
10211   $("[name=location]").change(function(){
10212     let v = $(this).val()
10213     let option = []
10214     if(v == 'Jabodetabek') {
10215       for(var i=0;i<jabodetabek.length;i++) {
10216         const jabodetabekHtml = `<option value=${jabodetabek[i].city}>${jabodetabek[i].city}</option>`
10217         option.push(jabodetabekHtml)
10218       }
10219       $("#choose-location").html(`<option value="">Choose Location</option>${option}`)
10220     } else {
10221       for(var i=0;i<non_jabodetabek.length;i++) {
10222         const nonjabodetabekHtml = `<option value=${non_jabodetabek[i].city}>${non_jabodetabek[i].city}</option>`
10223         option.push(nonjabodetabekHtml)
10224       }
10225       $("#choose-location").html(`<option value="">Choose Location</option>${option}`)
10226     }
10227   })
10228 
10229   $("#location-lock-submit").click(function(e){
10230     let select = $("#choose-location")
10231     let value = select.val().toLowerCase()
10232     console.log(value)
10233     if(select.val() == "") {
10234       return alert("Choose Your Location")
10235       e.preventDefault()
10236     }
10237     setCookie("location_delivery",value,1000000);
10238     
10239     location.reload();
10240     
10241   })
10242 
10243   $("#close-popup-delivery").click(function(){
10244     $(".MuiDialog-root").hide()
10245     if(!current_location){
10246       setCookie("location_delivery","jakarta",1000000);
10247       $("#loc_delivery_city, #loc_delivery_city_mobile").text("Jakarta")
10248     }
10249   })
10250   $("#loc_delivery, #loc_delivery_mobile").click(function(){
10251     $(".MuiDialog-root").show()
10252   })
10253 
10254   
10255   if(!current_location){
10256     
10257   } else {
10258     $("#loc_delivery_city, #loc_delivery_city_mobile").text(current_location)
10259     console.log(current_location)
10260     $("#choose-location").each(function(){
10261       if(current_location == 'jakarta' || current_location == 'depok' || current_location == 'bogor' || current_location == 'tangerang' || current_location == 'bekasi'){
10262         $("#jabodetabek").trigger("click")
10263       } else {
10264         $("#non-jabodetabek").trigger("click")
10265       }
10266       $("#choose-location").find("option[value="+current_location+"]").attr("selected", "selected")
10267     })
10268   }
10269 
10270   // 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'){
10271   //   $("#timeMalam").attr("disabled", false)
10272   // } else {
10273   //   $("#timeMalam").attr("disabled", true)
10274   // }
10275 
10276   if(current_location && current_location != 'jakarta') {
10277     $("#self-pickup").attr("disabled", true)
10278   }
10279 
10280   function setCookie(name,value,days) {
10281     var expires = "";
10282     if (days) {
10283       var date = new Date();
10284       date.setTime(date.getTime() + (days*24*60*60*1000));
10285       expires = "; expires=" + date.toUTCString();
10286     }
10287     document.cookie = name + "=" + (value || "")  + expires + "; path=/";
10288   }
10289   function getCookie(name) {
10290     var nameEQ = name + "=";
10291     var ca = document.cookie.split(';');
10292     for(var i=0;i < ca.length;i++) {
10293       var c = ca[i];
10294       while (c.charAt(0)==' ') c = c.substring(1,c.length);
10295       if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
10296     }
10297     return null;
10298   }
10299 </script>
10299
10300 <!-- One Tap -->
10301     
10301<script>
10302       console.log("Outerbloom...");
10303     </script>
10303
10304   <div id="shopify-block-ANVEzSUcxTUxZOGpwZ__9703700522657871012" class="shopify-block shopify-app-block">
10305 
10306 
10307 
10308 <link rel="stylesheet" href="https://cdn1.bitbybit.studio/bitbybit/static/bitChat_widget/widget.css" />
10309 
10309<script src="https://cdn1.bitbybit.studio/bitbybit/static/bitChat_widget/widget.js" defer></script>
10309
10310 
10310<script>
10311   const widgetConfig = {
10312     id: "clz7897za002cz7otleaz0d3d",
10313     showQuickResponse: false,
10314     quickResponsesData: [],
10315     themeColor: "#ffffff",
10316     widgetText: "",
10317     radiusType: "circle",
10318     widgetIconType: "whatsapp",
10319     position: "right",
10320     storeLogo: "",
10321     storeName: "Outerbloom",
10322     storeDescription: "",
10323     size: "small",
10324     showCard: false,
10325     widgetColorType: "solid",
10326     widgetColor1: "#008069",
10327     widgetColor2: "#008069",
10328     social: {
10329       socialOrders: ["instagram","tiktok","facebook","x","youtube","linkedin","email"],
10330       values: {
10331         instagram: {
10332           enabled: false,
10333           value: "",
10334         },
10335         facebook: {
10336           enabled: false,
10337           value: "",
10338         },
10339         email: {
10340           enabled: false,
10341           value: "",
10342         },
10343         x: {
10344           enabled: false,
10345           value: "",
10346         },
10347         tiktok: {
10348           enabled: false,
10349           value: "",
10350         },
10351         linkedin: {
10352           enabled: false,
10353           value: "",
10354         },
10355         youtube: {
10356           enabled: false,
10357           value: "",
10358         },
10359       },
10360     },
10361   };
10362 
10363   function initializeWidget() {
10364     if (typeof BBBWidget !== 'undefined') {
10365       BBBWidget.init(widgetConfig);
10366     } else {
10367       setTimeout(initializeWidget, 100);
10368     }
10369   }
10370 
10371   initializeWidget();</script>
10371
10372 
10373 
10374 </div><div id="shopify-block-ATzRpVTBPU3k1R2pnW__286197278318599166" class="shopify-block shopify-app-block">
10375 
10376 
10377 <div style="position: fixed; bottom: 0; right: 0"></div>
10378 
10379 
10379<script>
10380 console.info("bitlogin extension version: v2.5.7");
10381 
10382 const googleScript = document.createElement("script");
10383 googleScript.setAttribute("src", "https://accounts.google.com/gsi/client");
10384 document.head.append(googleScript);
10385 
10386 const bitLoginBaseUrl = "https://api.bitbybit.studio";
10387 const apiUrl = `${bitLoginBaseUrl}/bitlogin/api`;
10388 
10389 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"}};
10390 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
10390n1.oa2-cs.v1.1cb5f9085a202341f60daf5a7be16c570ccc0b4bd5908b3afd080f34e9b8935d","appleTeamId":null,"applePrivateKey":null,"usePersonalOauth":false,"position":null}];
10391 const redirectUrl = appearance.redirectLink;
10392 
10393 let locationCacheSet = false;
10394 let errorLocation = false;
10395 let oneTapSet = false;
10396 
10397 let bitloginCache = {
10398   appearance: appearance,
10399   config: config
10400 };
10401 
10402 let isInitializing = false;
10403 const queue = [];
10404 
10405 // Add CSS for the popup
10406 const popupStyles = document.createElement('style');
10407 popupStyles.textContent = `
10408   /* Styles for login popup */
10409   .bitlogin-popup-overlay {
10410     position: fixed;
10411     top: 0;
10412     left: 0;
10413     width: 100%;
10414     height: 100%;
10415     background: rgba(0, 0, 0, 0.45);
10416     backdrop-filter: blur(4px);
10417     display: flex;
10418     align-items: center;
10419     justify-content: center;
10420     opacity: 0;
10421     transition: opacity 0.3s ease-in-out;
10422     z-index: 999999;
10423   }
10424   
10425   .bitlogin-popup-overlay.visible {
10426     opacity: 1;
10427   }
10428   
10429   .bitlogin-popup {
10430     background: #FFFFFF;
10431     box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
10432     border-radius: 16px;
10433     width: 100%;
10434     max-width: 560px;
10435     display: flex;
10436     overflow: hidden;
10437     position: relative;
10438     opacity: 0;
10439     transform: translateY(20px) scale(0.98);
10440     transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
10441   }
10442   
10443   .bitlogin-popup.visible {
10444     opacity: 1;
10445     transform: translateY(0) scale(1);
10446   }
10447   
10448   .bitlogin-popup-with-image {
10449     max-width: 640px;
10450   }
10451   
10452   .bitlogin-popup-right-image {
10453     flex-direction: row-reverse;
10454   }
10455   
10456   .bitlogin-popup-image {
10457     object-fit: cover;
10458     width: 50%;
10459     height: auto;
10460   }
10461   
10462   .bitlogin-popup-content {
10463     padding: 32px;
10464     position: relative;
10465     width: 50%;
10466   }
10467   
10468   .bitlogin-popup-close {
10469     position: absolute;
10470     top: 16px;
10471     right: 16px;
10472     background: white;
10473     border: none;
10474     width: 30px;
10475     height: 30px;
10476     display: flex;
10477     align-items: center;
10478     justify-content: center;
10479     cursor: pointer;
10480     transition: background-color 0.2s;
10481     color: inherit;
10482     padding: 0;
10483   }
10484   
10485   .bitlogin-popup-close:hover {
10486     background-color: #e5e5e5;
10487   }
10488   
10489   .bitlogin-popup-buttons {
10490     display: flex;
10491     flex-direction: column;
10492     gap: 12px;
10493     margin-top: 24px;
10494   }
10495   
10496   /* Button styles within popup - override width for popup buttons */
10497   .bitlogin-popup-buttons #google-login,
10498   .bitlogin-popup-buttons #facebook-login,
10499   .bitlogin-popup-buttons #apple-login,
10500   .bitlogin-popup-buttons #whatsapp-login,
10501   .bitlogin-popup-buttons #microsoft-login,
10502   .bitlogin-popup-buttons #twitter-login,
10503   .bitlogin-popup-buttons #amazon-login,
10504   .bitlogin-popup-buttons #instagram-login,
10505   .bitlogin-popup-buttons #magic-link-login,
10506   .bitlogin-popup-buttons #mobile-app-login {
10507     width: 100% !important;
10508     font-family: inherit !important;
10509   }
10510   
10511   .bitlogin-popup-footer {
10512     margin-top: 32px;
10513     text-align: center;
10514     font-size: 14px;
10515     opacity: 0.6;
10516   }
10517   
10518   /* Modern Typography */
10519   .bitlogin-popup h2 {
10520     margin-top: 12px;
10521     font-size: 21px !important;
10522     line-height: 1.2 !important;
10523     font-weight: 700 !important;
10524     letter-spacing: -0.02em !important;
10525     margin-bottom: 16px !important;
10526   }
10527   
10528   .bitlogin-popup-header {
10529     position: relative;
10530     margin-bottom: 24px;
10531   }
10532   
10533   /* Modern gradient accent */
10534   .bitlogin-popup-content > div {
10535     font-size: 16px !important;
10536     line-height: 1.2 !important;
10537     opacity: 0.85 !important;
10538   }
10539   
10540   /* Enhanced button interactions */
10541   .bitlogin-popup-buttons button {
10542     position: relative;
10543     overflow: hidden;
10544   }
10545   
10546   @keyframes ripple {
10547     0% {
10548       transform: scale(0, 0);
10549       opacity: 0.5;
10550     }
10551     100% {
10552       transform: scale(100, 100);
10553       opacity: 0;
10554     }
10555   }
10556   
10557   /* Responsive adjustments */
10558   @media (max-width: 640px) {
10559     .bitlogin-popup {
10560       max-width: 90%;
10561       width: 90%;
10562       margin: 0 16px;
10563     }
10564     
10565     .bitlogin-popup-with-image {
10566       flex-direction: column !important;
10567     }
10568     
10569     .bitlogin-popup-image {
10570       width: 100%;
10571       height: 180px;
10572     }
10573     
10574     .bitlogin-popup-content {
10575       padding: 24px;
10576     }
10577     
10578     .bitlogin-popup h2 {
10579       font-size: 24px !important;
10580     }
10581   }
10582 `;
10583 
10584 document.head.appendChild(popupStyles);
10585 
10586 // Add fonts link for different font options
10587 const fontsLink = document.createElement('link');
10588 fontsLink.rel = 'stylesheet';
10589 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';
10590 document.head.appendChild(fontsLink);
10591 
10592 (async () => {
10593   try {
10594     let host = window.location.host;
10595     if (host === "admin.shopify.com") {
10596       host = `${window.location.pathname.split("/")[2]}.myshopify.com`;
10597     }
10598 
10599     const urlSearchParams = new URLSearchParams(window.location.search);
10600     const checkoutUrl = urlSearchParams.get("checkout_url");
10601 
10602     async function init({ inputRef, index }) {
10603       if (isInitializing) {
10604         queue.push(() => init({ inputRef, index }));
10605         return;
10606       }
10607 
10608       isInitializing = true;
10609 
10610       try {
10611         let bitLoginSectionRoot = document.querySelector(
10612           `.bitlogin-root[data-index="${index}"]`
10613         );
10614 
10615         const formRef = inputRef?.closest(
10616           "form:not([action='/account/recover'])"
10617         );
10618 
10619         if (formRef && !bitLoginSectionRoot) {
10620           await getLocation();
10621 
10622           bitLoginSectionRoot = document.createElement(`div`);
10623 
10624           bitLoginSectionRoot.setAttribute("class", "bitlogin-root");
10625           bitLoginSectionRoot.setAttribute("data-index", `${index}`);
10626 
10627           updateAppearance({
10628             formRef,
10629             rootRef: bitLoginSectionRoot,
10630             host,
10631           });
10632         }
10633       } catch (err) {
10634         console.error(`error while initiating bitlogin extensions`, err);
10635       } finally {
10636         // Release the lock
10637         isInitializing = false;
10638 
10639         // Check if there are pending items in the queue
10640         if (queue.length > 0) {
10641           // Process the next function in the queue
10642           const nextFunction = queue.shift();
10643           nextFunction();
10644         }
10645       }
10646     }
10647 
10648     function initAll() {
10649       return new Promise((resolve, reject) => {
10650         setTimeout(async () => {
10651           const inputRefs = document.querySelectorAll(
10652             'input[name="customer[email]"]'
10653           );
10654 
10655           for (let i = 0; i < inputRefs.length; i++) {
10656             const currentInputRef = inputRefs[i];
10657             const isVisible = isElementVisible(currentInputRef);
10658 
10659             if (isVisible) {
10660               await init({ inputRef: currentInputRef, index: i });
10661             }
10662           }
10663 
10664           resolve("ok");
10665         }, 100);
10666       });
10667     }
10668 
10669     const observer = new MutationObserver((mutationsList) => {
10670       for (let mutation of mutationsList) {
10671         initAll();
10672       }
10673     });
10674 
10675     observer.observe(document.body, {
10676       childList: true,
10677       subtree: true,
10678       attributes: true,
10679     });
10680 
10681     initAll();
10682 
10683     if (appearance.googleOneTap) {
10684       setupOneTap({ host, checkoutUrl });
10685     }
10686 
10687     // Initialize popup
10688     await initPopup(host);
10689   } catch (error) {
10690     console.error("Error initializing BitLogin:", error);
10691   }
10692 })();
10693 
10694 async function initPopup(host) {
10695   // Check if user is already logged in using Liquid checks properly
10696   const isLoggedIn = false || 
10697                     document.querySelector('.customer-logout-link') || 
10698                     document.querySelector('.account-link') || 
10699                     window.location.pathname.includes('/account');
10700   
10701   if (isLoggedIn) {
10702     return; // User is logged in, don't show popup
10703   }
10704 
10705   try {
10706     // Fetch the popup configuration
10707     const popupConfig = await fetch(`${apiUrl}/appearance/popup/domain/${host}`)
10708       .then(res => res.json())
10709       .catch(err => {
10710         console.error('Error fetching popup configuration:', err);
10711         return null;
10712       });
10713 
10714     if (!popupConfig || !popupConfig.enabled) {
10715       return;
10715 // Don't show popup if disabled or config not found
10716     }
10717 
10718     // Create popup after 10 seconds
10719     setTimeout(() => {
10720       // Check if user is still on the page and still not logged in
10721       if (document.visibilityState === 'visible') {
10722         // Additional check in case user logged in during the 10 second wait
10723         const currentlyLoggedIn = false || 
10724                               document.querySelector('.customer-logout-link') || 
10725                               document.querySelector('.account-link');
10726         
10727         if (!currentlyLoggedIn) {
10728           createLoginPopup(popupConfig, host);
10729         }
10730       }
10731     }, 10000);
10732   } catch (error) {
10733     console.error('Error initializing popup:', error);
10734   }
10735 }
10736 
10737 function createLoginPopup(popupConfig, host) {
10738   // Font mapping
10739   const fontFamilyMap = {
10740     system_fonts: 'system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',
10741     montserrat: 'Montserrat, sans-serif',
10742     roboto: 'Roboto, sans-serif',
10743     open_sans: 'Open Sans, sans-serif',
10744     noto_sans: 'Noto Sans, sans-serif',
10745     lato: 'Lato, sans-serif',
10746     poppins: 'Poppins, sans-serif',
10747     quicksand: 'Quicksand, sans-serif',
10748     raleway: 'Raleway, sans-serif',
10749     pt_sans: 'PT Sans, sans-serif',
10750     oswald: 'Oswald, sans-serif',
10751   };
10752 
10753   // Create overlay
10754   const overlay = document.createElement('div');
10755   overlay.className = 'bitlogin-popup-overlay';
10756   
10757   // Create popup container with appropriate styling
10758   const popup = document.createElement('div');
10759   popup.className = 'bitlogin-popup';
10760 
10761   if (popupConfig.layout === 'default') {
10762     popup.style.maxWidth = '400px';
10763   }
10764   
10765   // Function to close the popup
10766   const closePopup = () => {
10767     overlay.classList.remove('visible');
10768     popup.classList.remove('visible');
10769     setTimeout(() => {
10770       if (document.body.contains(overlay)) {
10771         document.body.removeChild(overlay);
10772       }
10773     }, 300);
10774   };
10775   
10776   // Add click handler to the overlay to close when clicking outside
10777   overlay.addEventListener('click', (event) => {
10778     // Close only if clicking directly on the overlay, not its children
10779     if (event.target === overlay) {
10780       closePopup();
10781     }
10782   });
10783   
10784   // Add escape key handler to close popup
10785   document.addEventListener('keydown', (event) => {
10786     if (event.key === 'Escape' && document.body.contains(overlay)) {
10787       closePopup();
10788     }
10789   });
10790 
10791   // Create layout with image if specified
10792   let contentWrapper;
10793   if (popupConfig.layout !== 'default' && popupConfig.popupImage) {
10794     popup.classList.add('bitlogin-popup-with-image');
10795     
10796     if (popupConfig.layout === 'right') {
10797       popup.classList.add('bitlogin-popup-right-image');
10798     }
10799     
10800     // Add image
10801     const image = document.createElement('img');
10802     image.className = 'bitlogin-popup-image';
10803     image.src = popupConfig.popupImage;
10804     image.alt = 'Login';
10805     image.loading = 'lazy';
10806     popup.appendChild(image);
10807     
10808     // Create content container
10809     contentWrapper = document.createElement('div');
10810     contentWrapper.className = 'bitlogin-popup-content';
10811 
10812     if (popupConfig.layout === 'right') {
10813       const closeButton = document.createElement('button');
10814       closeButton.className = 'bitlogin-popup-close';
10815       closeButton.innerHTML = `<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="https://imgmahasuhu.io/images/2026/08/11/giflogo_koi1.gif">
10816         <path d="M13 1L1 13M1 1L13 13" stroke="${popupConfig.fontColor}" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
10817       </svg>`;
10818       closeButton.setAttribute('aria-label', 'Close');
10819       closeButton.onclick = closePopup;
10820   
10821       popup.appendChild(closeButton);
10822     }
10823   } else {
10824     contentWrapper = document.createElement('div');
10825     contentWrapper.className = 'bitlogin-popup-content';
10826     contentWrapper.style.width = '100%';
10827   }
10828 
10829   // Set background style
10830   if (popupConfig.backgroundTheme === 'gradient') {
10831     contentWrapper.style.background = `linear-gradient(135deg, ${popupConfig.backgroundPopupColor}, ${popupConfig.gradientColor})`;
10832   } else {
10833     contentWrapper.style.backgroundColor = popupConfig.backgroundPopupColor;
10834   }
10835 
10836   // Apply font family
10837   contentWrapper.style.setProperty('font-family', fontFamilyMap[popupConfig.font] || fontFamilyMap.system_fonts, 'important');
10838 
10839   if (popupConfig.layout !== 'right') {
10840     const closeButton = document.createElement('button');
10841     closeButton.className = 'bitlogin-popup-close';
10842     closeButton.innerHTML = `<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="https://imgmahasuhu.io/images/2026/08/11/giflogo_koi1.gif">
10843       <path d="M13 1L1 13M1 1L13 13" stroke="${popupConfig.fontColor}" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
10844     </svg>`;
10845     closeButton.setAttribute('aria-label', 'Close');
10846     closeButton.onclick = closePopup;
10847   
10848     contentWrapper.appendChild(closeButton);
10849   }
10850 
10851   // Add heading with subtle animation effect
10852   const header = document.createElement('div');
10853   header.className = 'bitlogin-popup-header';
10854   
10855   const heading = document.createElement('h2');
10856   heading.textContent = popupConfig.headingText || 'Sign in for exclusive benef
10856its';
10857   heading.style.color = popupConfig.fontColor;
10858   header.appendChild(heading);
10859 
10860   // Add body text with improved formatting
10861   const bodyText = document.createElement('div');
10862   bodyText.innerHTML = popupConfig.bodyText || 'Join our community to access exclusive offers and a personalized shopping experience.';
10863   bodyText.style.color = popupConfig.fontColor;
10864   header.appendChild(bodyText);
10865   
10866   contentWrapper.appendChild(header);
10867 
10868   // Create buttons container with modern styling
10869   const buttonsContainer = document.createElement('div');
10870   buttonsContainer.className = 'bitlogin-popup-buttons';
10871   
10872   // Add social buttons
10873   const providerLabels = {
10874     'GOOGLE': 'Continue with Google',
10875     'FACEBOOK': 'Continue with Facebook',
10876     'APPLE': 'Continue with Apple',
10877     'WHATSAPP': 'Continue with WhatsApp',
10878     'MAGIC_LINK': 'Continue with Email',
10879   };
10880 
10881   // Add first login provider button
10882   if (popupConfig.loginProvider1 !== 'NONE') {
10883     const buttonConfig = {
10884       theme: popupConfig.colorScheme || 'match',
10885       customColor: popupConfig.textColor,
10886       format: 'contentFlex',
10887       buttonText: bitloginCache.appearance.buttonList[popupConfig.loginProvider1.toLowerCase()],
10888       hasShadow: popupConfig.hasShadow !== undefined ? popupConfig.hasShadow : true,
10889       style: popupConfig.style || 'rounded',
10890       size: popupConfig.size || 'medium',
10891       colorScheme: popupConfig.colorScheme || 'match',
10892       backgroundColor: popupConfig.backgroundColor || '#3B82F6',
10893       textColor: popupConfig.textColor || '#FFFFFF',
10894       outlineColor: popupConfig.outlineColor || '#3B82F6',
10895       host: host
10896     };
10897     
10898     const button1 = createSocialLoginButton(popupConfig.loginProvider1, buttonConfig);
10899     
10900     // Handle click event - this overrides the default click handler in createSocialLoginButton
10901     button1.onclick = () => {
10902       onClickSocialLogin({ provider: popupConfig.loginProvider1.toLowerCase(), host });
10903       closePopup();
10904     };
10905     
10906     buttonsContainer.appendChild(button1);
10907   }
10908 
10909   // Add second login provider button if enabled
10910   if (popupConfig.loginProvider2 !== 'NONE') {
10911     const buttonConfig = {
10912       theme: popupConfig.colorScheme || 'match',
10913       customColor: popupConfig.textColor,
10914       format: 'contentFlex',
10915       buttonText: bitloginCache.appearance.buttonList[popupConfig.loginProvider2.toLowerCase()],
10916       hasShadow: popupConfig.hasShadow !== undefined ? popupConfig.hasShadow : true,
10917       style: popupConfig.style || 'rounded',
10918       size: popupConfig.size || 'medium',
10919       colorScheme: popupConfig.colorScheme || 'match',
10920       backgroundColor: popupConfig.backgroundColor || '#3B82F6',
10921       textColor: popupConfig.textColor || '#FFFFFF',
10922       outlineColor: popupConfig.outlineColor || '#3B82F6',
10923       host: host
10924     };
10925     
10926     const button2 = createSocialLoginButton(popupConfig.loginProvider2, buttonConfig);
10927     
10928     // Handle click event - this overrides the default click handler in createSocialLoginButton
10929     button2.onclick = () => {
10930       onClickSocialLogin({ provider: popupConfig.loginProvider2.toLowerCase(), host });
10931       closePopup();
10932     };
10933     
10934     buttonsContainer.appendChild(button2);
10935   }
10936 
10937   contentWrapper.appendChild(buttonsContainer);
10938 
10939   // Append content to popup
10940   popup.appendChild(contentWrapper);
10941   
10942   // Append popup to overlay
10943   overlay.appendChild(popup);
10944   
10945   // Append overlay to body
10946   document.body.appendChild(overlay);
10947   
10948   // Trigger animation with slight delay for better perceived performance
10949   setTimeout(() => {
10950     overlay.classList.add('visible');
10951     setTimeout(() => {
10952       popup.classList.add('visible');
10953     }, 50);
10954   }, 10);
10955 }
10956 
10957 window.addEventListener("load", () => {
10958   window.addEventListener("message", (event) => {
10959     const receivedData = event.data;
10960 
10961     if (receivedData.type === "authorize") {
10962       post(
10963         JSON.parse(
10964           JSON.stringify({
10965             "customer[email]": receivedData.email,
10966             "customer[password]": receivedData.password,
10967             form_type: "customer_login",
10968             utf8: "✓",
10969             return_url: redirectUrl,
10970           })
10971         )
10972       );
10973     } else if (receivedData.type === "rejected") {
10974       if (receivedData.reason === "customer_account_disabled") {
10975         showAlert(
10976           "Your account needs to be activated. We've sent you an activation link - please check your email to complete this step."
10977         );
10978       } else if (receivedData.reason === "customer_entry_created_email_not_set") {
10979         showAlert(
10980           "A new account was created but requires an email address. Please update your account with a valid email address to continue."
10981         );
10982       } else if (receivedData.reason === "customer_exist_email_not_set") {
10983         showAlert(
10984           "Your existing account is missing an email address. Please contact support to update your account with a valid email address."
10985         );
10986       }
10987     }
10988 
10989     if (receivedData.type === "customer_authenticated") {
10990       // Dispatch a custom event that merchants can listen for to implement their custom logic
10991       const customerAuthEvent = new CustomEvent('bitlogin:customer_authenticated', {
10992         detail: {
10993           provider: receivedData.provider,
10994           customer: receivedData.customer,
10995           shopifyCustomerCreated: receivedData.shopifyCustomerCreated
10996         }
10997       });
10998       
10999       // Dispatch the event on the window object so merchants can listen for it
11000       window.dispatchEvent(customerAuthEvent);
11001       
11002     }
11003   });
11004 });
11005 
11006 // Reusable functions for social login buttons
11007 function createSocialLoginButton(provider, config = {}) {
11008   const {
11009     theme = 'match',
11010     customColor = null,
11011     format = 'contentFlex',
11012     buttonText = null,
11013     hasShadow = true,
11014     style = 'rounded',
11015     size = 'medium',
11016     colorScheme = 'match',
11017     backgroundColor = '#3B82F6',
11018     textColor = '#FFFFFF',
11019     outlineColor = '#3B82F6',
11020     rootRef = null,
11021     host = null
11022   } = config;
11023   
11024   // Create button element with appropriate ID and attributes
11025   const button = document.createElement('button');
11026   button.id = `${provider.toLowerCase()}-login`;
11027   button.type = 'button';
11028   
11029   // Set the inner SVG based on provider
11030   switch (provider.toUpperCase()) {
11031     case 'GOOGLE':
11032       button.innerHTML = googleLoginIcon(theme, customColor);
11033       break;
11034     case 'FACEBOOK':
11035       button.innerHTML = facebookLoginIcon(theme, customColor);
11036       break;
11037     case 'APPLE':
11038       button.innerHTML = appleLoginIcon(theme, customColor);
11039       break;
11040     case 'WHATSAPP':
11041       button.innerHTML = whatsappLoginIcon(theme, customColor);
11042       break;
11043     case 'MICROSOFT':
11044       button.innerHTML = microsoftLoginIcon(theme, customColor);
11045       break;
11046     case 'TWITTER':
11047       button.innerHTML = twitterLoginIcon(theme, customColor);
11048       break;
11049     case 'AMAZON':
11050       button.innerHTML = amazonLoginIcon(theme, customColor);
11051       break;
11052     case 'INSTAGRAM':
11053       button.innerHTML = instagramLoginIcon(theme, customColor);
11054       break;
11055     case 'MAGIC_LINK':
11056       button.innerHTML = magicLinkLoginIcon(theme, customColor);
11057       break;
11058     case 'MOBILE_APP':
11059       button.innerHTML = mobileAppLoginIcon(theme, customColor);
11060       break;
11061     case 'LINKEDIN':
11062       button.innerHTML = linkedinLoginIcon(theme, customColor);
11063       break;
11064   }
11065   
11066   // Add text if format isn't icon-only and buttonText is provided
11067   if (format !== "wrapperFlexContainerOnlyLogo" && buttonText) {
11068     button.innerHTML += `<p>${buttonText}</p>`;
11069   }
11070   
11071   // Apply styling
11072   // Shadow
11073   if (hasShadow) {
11074     const shadowProperties = `0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)`;
11075     button.style["box-shadow"] = shadowProperties;
11076   }
11077   
11078   // Border radius
11079   const radiusProperties =
11080     style === "rounded"
11081       ? "8px"
11082       : style === "square"
11083       ? "0px"
11084       : style === "fullRounded"
11085       ? format === "wrapperFlexContainerOnlyLogo"
11086         ? "50%"
11087         : "50px"
11088       : undefined;
11089   button.style["border-radius"] = radiusProperties;
11090   
11091   // Size
11092   const sizeProperties =
11093     size === "medium"
11094       ? "12px"
11095       : size === "small"
11096       ? "8px"
11097       : size === "large"
11098       ? "16px"
11099       : "8px";
11100 
11101   button.style["padding-block"] = sizeProperties;
11102 
11103   // Format styling
11104   if (format) {
11105     if (
11106       format === "contentFlexReverse" ||
11107       format === "contentFlexCenterReverse"
11108     ) {
11109       const flexDir = `row-reverse`;
11110       button.style["flex-direction"] = flexDir;
11111     }
11112     
11113     if (
11114       format === "contentFlexCenter" ||
11115       format === "contentFlexCenterReverse"
11116     ) {
11117       const justifyContent = `center`;
11118       button.style["justify-content"] = justifyContent;
11119     } else if (
11120       format === "contentFlex" ||
11121       format === "contentFlexReverse"
11122     ) {
11123       const buttonTextElement = button.querySelector("p");
11124       if (buttonTextElement) {
11125         buttonTextElement.style["flex-grow"] = 1;
11126         buttonTextElement.style["text-align"] = "center";
11127       }
11128     }
11129 
11130     if (format === "wrapperFlexContainerOnlyLogo" && rootRef) {
11131       rootRef.style["flex-direction"] = "row";
11132       rootRef.style["gap"] = "8px";
11133       rootRef.style["display"] = "flex";
11134       rootRef.style["flex-wrap"] = "wrap";
11135 
11136       const sizeMapping = {
11137         small: "52px",
11138         medium: "62px",
11139         large: "72px",
11140       };
11141       const buttonSize = sizeMapping[size] || "52px";
11142 
11143       button.style["margin"] = 0;
11144       button.style["width"] = buttonSize;
11145       button.style["height"] = buttonSize;
11146       button.style["display"] = "flex";
11147       button.style["align-items"] = "center";
11148       button.style["justify-content"] = "center";
11149 
11150       const svgElement = button.querySelector("svg");
11151       if (svgElement) {
11152         svgElement.style["flex"] = "none";
11153       }
11154     }
11155   }
11156 
11157   // Color scheme styling
11158   if (colorScheme === "black") {
11159     button.classList.add("scheme-black");
11160   } else if (colorScheme === "white") {
11161     button.classList.add("scheme-white");
11162   } else if (colorScheme === "custom") {
11163     button.style["background-color"] = backgroundColor;
11164     button.style["color"] = textColor;
11165     button.style["border-color"] = outlineColor;
11166 
11167     const darkenColor = (color, percentage) => {
11168       const value = parseInt(color.slice(1), 16);
11169       const r = Math.max(0, ((value >> 16) & 0xff) - (0xff * percentage));
11170       const g = Math.max(0, ((value >> 8) & 0xff) - (0xff * percentage));
11171       const b = Math.max(0, (value & 0xff) - (0xff * percentage));
11172       return `rgb(${Math.round(r)}, ${Math.round(g)}, ${Math.round(b)})`;
11173     };
11174 
11175     button.addEventListener("mouseover", () => {
11176       button.style["background-color"] = darkenColor(backgroundColor, 0.2);
11177     });
11178     button.addEventListener("mouseout", () => {
11179       button.style["background-color"] = backgroundColor;
11180     });
11181   } else if (colorScheme === "match") {
11182     button.classList.add("scheme-match");
11183   } else if (colorScheme === "matchOutline") {
11184     button.classList.add("scheme-match-outline");
11185   }
11186   
11187   // Add click event listener if host is provided
11188   if (host) {
11189     button.addEventListener("click", () => 
11190       onClickSocialLogin({ provider: provider.toLowerCase(), host })
11191     );
11192   }
11193   
11194   return button;
11195 }
11196 
11197 function setupSocialLoginButtons(config, rootRef, data, host) {
11198   // Clear any existing content
11199   rootRef.innerHTML = '';
11200 
11201   const sortedEnabledProviders = config
11202     .filter(c => c.enabledWeb)
11203     .sort((a, b) => a.position - b.position);
11204 
11205   sortedEnabledProviders.forEach(provider => {
11206     const key = provider.provider;
11207     const lowerKey = key.toLowerCase();
11208 
11209     const buttonText = data.format !== "wrapperFlexContainerOnlyLogo"
11210       ? (lowerKey === 'twitter'
11211           ? data.buttonList.twitter.replace('Twitter', 'X')
11212           : data.buttonList[lowerKey])
11213       : null;
11214 
11215     const button = createSocialLoginButton(key, {
11216       theme: data.colorScheme || 'match',
11217       customColor: data.textColor,
11218       format: data.format,
11219       buttonText: buttonText,
11220       hasShadow: data.hasShadow !== undefined ? data.hasShadow : true,
11221       style: data.style,
11222       size: data.size,
11223       colorScheme: data.colorScheme,
11224       backgroundColor: data.backgroundColor,
11225       textColor: data.textColor,
11226       outlineColor: data.outlineColor,
11227       rootRef: rootRef,
11228       host: host
11229     });
11230 
11231     rootRef.appendChild(button);
11232   });
11233 
11234   return rootRef;
11235 }
11236 
11237 function updateAppearance({ formRef, rootRef, host }) {
11238   if (!formRef) return;
11239 
11240   const data = bitloginCache.appearance || {
11241     style: "square",
11242     hasShadow: false,
11243     colorScheme: "match",
11244     backgroundColor: "#FFFFFF",
11245     outlineColor: "#000000",
11246     textColor: "#000000",
11247     position: "bottom",
11248     hideDivider: "false",
11249     dividerText: "OR",
11250     size: "small",
11251     format: "contentFlex",
11252     language: "en",
11253     buttonText: "Continue with",
11254     redirectLink: "/account",
11255     googleOneTap: true,
11256     googleOneTapBanner: true,
11257     customerTag: "bitLogin",
11258     redirectOneTapDesktop: null,
11259     redirectOneTapMobile: null,
11260     buttonList: {
11261       google: "Continue with Google",
11262       facebook: "Continue with Facebook",
11263       apple: "Continue with Apple",
11264       whatsapp: "Continue with WhatsApp",
11265       microsoft: "Continue with Microsoft",
11266       twitter: "Continue with X",
11267       amazon: "Continue with Amazon",
11268       instagram: "Continue with Instagram",
11269       magic_link: "Continue with Magic Link",
11270       mobile_app: "Continue with Mobile App",
11271       linkedin: "Continue with LinkedIn",
11272     },
11273   };
11274 
11275   // Use the new setupSocialLoginButtons function to create and configure all buttons
11276   setupSocialLoginButtons(bitloginCache.config, rootRef, data, host);
11277 
11278   let divider;
11279 
11280   if (!data.hideDivider) {
11281     divider = document.createElement("div");
11282     const dividerStyle = "text-align:center;margin-block:16px";
11283     divider.setAttribute("style", dividerStyle);
11284     divider.innerHTML = data.dividerText;
11285   }
11286 
11287   if (data.position === "bottom") {
11288     if (divider) {
11289       formRef.appendChild(divider);
11290     }
11291     formRef.appendChild(rootRef);
11292   } else if (data.position === "top") {
11293     if (divider) {
11294       formRef.prepend(divider);
11295     }
11296     formRef.prepend(rootRef);
11297   }
11298 }
11299 
11300 
11301 async function onClickSocialLogin({ provider, host }) {
11302   const rand = Math.random().toString();
11303 
11304   const locationQueryString = bitloginCache.location
11305     ? `&${objectToQueryString(bitloginCache.location)}`
11306     : "";
11307 
11308   const width = 800;
11309   const height = 600;
11310   const left = (window.screen.width / 2) - (width / 2);
11311   const top = (window.screen.height / 2) - (height / 2) - 50;
11312 
11313   if(provider === 'whatsapp') {
11314     window.open(
11315       `/apps/bitlogin/whatsapp${locationQueryString ? `?${locationQueryString}` : ''}`,
11316       "mywindow",
11317       `menubar=1,resizable=1,width=${width},height=${height},top=${top},left=${left}`
11318     );
11319   } else {
11320     window.open(
11321       `${apiUrl}/login/${provider}?referrerId=${rand}&shop=${host}${locationQueryString}`,
11322       "mywindow",
11323       `menubar=1,resizable=1,width=${width},height=${height},top=${top},left=${left}`
11324     );
11325   }
11326 }
11327 
11328 function objectToQueryString(obj) {
11329   return Object.keys(obj)
11330     .map((key) => {
11331       return encodeURIComponent(key) + "=" + encodeURIComponent(obj[key]);
11332     })
11333     .join("&");
11334 }
11335 
11336 async function getLocation() {
11337   if (locationCacheSet) return;
11338 
11339   try {
11340     const response = await fetch("https://ipapi.co/json/");
11341 
11342     if (!response.ok) {
11343       console.error(`error retrieving location...`, response.status);
11344       errorLocation = true;
11345     } else {
11346       const data = await response.json();
11347 
11348       const { city, region, country_name, country_code } = data;
11349 
11350       const formattedLocationData = {
11351         city,
11352         region,
11353         country_name,
11354         country_code,
11355       };
11356 
11357       bitloginCache.location = formattedLocationData;
11358       locationCacheSet = true;
11359       errorLocation = false;
11360     }
11361   } catch (err) {
11362     console.error(`error fetching location`, err);
11363     errorLocation = true;
11364   }
11365 }
11366 
11367 function post(params) {
11368   // The rest of this code assumes you are not using a library.
11369   // It can be made less verbose if you use one.
11370   const form = document.createElement("form");
11371   form.method = "post";
11372   form.action = `/account/login`;
11373   form.acceptCharset = "UTF-8";
11374   form.setAttribute("data-login-with-shop-sign-in", "true");
11375   form.setAttribute("novalidate", "novalidate");
11376 
11377   for (const key in params) {
11378     if (params.hasOwnProperty(key)) {
11379       const hiddenField = document.createElement("input");
11380       hiddenField.type = "hidden";
11381       hiddenField.name = key;
11382       hiddenField.value = params[key];
11383 
11384       form.appendChild(hiddenField);
11385     }
11386   }
11387 
11388   document.body.appendChild(form);
11389   form.submit();
11390 }
11391 
11392 async function setupOneTap({ host, checkoutUrl }) {
11393   if (oneTapSet) return;
11394 
11395   const redirectOneTapDesktop = JSON.parse(JSON.stringify(bitloginCache.appearance.redirectOneTapDesktop || '[]'));
11396   const redirectOneTapMobile = JSON.parse(JSON.stringify(bitloginCache.appearance.redirectOneTapMobile || '[]'));
11397 
11398   const isMobile = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent);
11399   const redirectList = JSON.parse(isMobile ? redirectOneTapMobile : redirectOneTapDesktop);
11400 
11401   const currentPath = window.location.pathname.toLowerCase();
11402   const currentUrl = window.location.href.toLowerCase();
11403 
11404   const shouldHideGoogleOneTap = redirectList.some(({ value }) => {
11405     switch (value) {
11406       case 'home':
11407         return currentPath === '/';
11408       case 'product':
11409         return currentPath.startsWith('/products/');
11410       case 'collections':
11411         return currentPath.startsWith('/collections');
11412       case 'cart':
11413         return currentPath === '/cart';
11414       case 'checkout':
11415         return currentPath.startsWith('/checkouts') && !currentPath.includes('thank_you');
11416       case 'thank_you':
11417         return currentPath.includes('/thank_you');
11418       case 'account':
11419         return currentPath.startsWith('/account');
11420       case 'pages':
11421         return currentPath.startsWith('/pages');
11422       case 'blogs':
11423         return currentPath === '/blogs' || currentPath === '/blogs/news';
11424       case 'blog_post':
11425         return currentPath.startsWith('/blogs/') && currentPath.split('/').length > 3;
11426       default:
11427         return false;
11428     }
11429   });
11430 
11431   if (shouldHideGoogleOneTap) return;
11432 
11433   const oneTapClientId = bitloginCache.config.find(
11434     (config) => config.provider === "GOOGLE"
11435   )?.clientId;
11436 
11437   const isLoggedIn = false;
11438 
11439   if (bitloginCache.appearance.googleOneTap && oneTapClientId && !isLoggedIn) {
11440     const googleOneTapButton = document.createElement("div");
11441     googleOneTapButton.setAttribute("id", "g_id_onload");
11442     googleOneTapButton.setAttribute("data-client_id", oneTapClientId);
11443     googleOneTapButton.setAttribute("data-context", "signin");
11444     googleOneTapButton.setAttribute(
11445       "data-callback",
11446       "handleGoogleOneTapResponse"
11447     );
11448     googleOneTapButton.setAttribute("data-itp_support", "true");
11449 
11450     const googleOneTapScript = document.createElement("script");
11451 
11452     googleOneTapScript.innerHTML += `
11453           function handleGoogleOneTapResponse(response) {
11454               if (response.credential) {
11455                   const idToken = response.credential;
11456                   fetch('${bitLoginBaseUrl}/bitlogin/api/login/google-one-tap', {
11457                       method: 'POST',
11458                       headers: { 'Content-Type': 'application/json' },
11459                       body: JSON.stringify({ idToken, shop: "${host}", ...bitloginCache.location })
11460                   }).then(response => {
11461                       response.json().then((data) => {
11462                         post(
11463                           JSON.parse(
11464                             JSON.stringify({
11465                               "customer[email]": data.email,
11466                               "customer[password]": data.password,
11467                               form_type: "customer_login",
11468                               utf8: "✓",
11469                               return_url: redirectUrl,
11470                             })
11471                           )
11472                         );
11473                       });  
11474                   }).catch(error => {
11475                       console.error('Error occurred:', error);
11476                   });
11477               } else {
11478                   console.error('No credential available');
11479               }
11480           }
11481        `;
11482 
11483     document.body.append(googleOneTapButton);
11484     document.body.append(googleOneTapScript);
11485   }
11486 
11487   oneTapSet = true;
11488 }
11489 
11490 const googleLoginIcon = (
11491   theme,
11492   customColor
11493 ) => `
11494 ${
11495   theme === "match" || theme === "matchOutline" || theme === "custom"
11496     ? `<svg
11497     xmlns='https://imgmahasuhu.io/images/2026/08/11/giflogo_koi1.gif'
11498     xmlns:v='https://vecta.io/nano'
11499     width='24'
11500     height='24'
11501     viewBox='0 0 186.69 190.5'
11502   >
11503     <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="${
11504       theme === "custom" ? customColor : "#4285f4"
11505     }"/><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="${
11506         theme === "custom" ? customColor : "#34a853"
11507       }"/><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="${
11508         theme === "custom" ? customColor : "#fbbc05"
11509       }"/><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="${
11510         theme === "custom" ? customColor : "#ea4335"
11511       }" clip-path="none" mask="none"/></g>
11512   </svg>`
11513     : `<svg xmlns="https://imgmahasuhu.io/images/2026/08/11/giflogo_koi1.gif" width="25" height="25" viewBox="0 0 25 25" fill="none">
11514 <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="${
11515         theme !== "black" ? "black" : "white"
11516       }"/>
11517 <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="${
11518         theme !== "black" ? "black" : "white"
11519       }"/>
11520 <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="${
11521         theme !== "black" ? "black" : "white"
11522       }"/>
11523 <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="${
11524         theme !== "black" ? "black" : "white"
11525       }"/>
11526 </svg>`
11527 }`;
11528 
11529 const appleLoginIcon = (
11530   theme,
11531   customColor
11532 ) => `<svg width="24" height="24" viewBox="0 0 19 24" fill="none" xmlns="https://imgmahasuhu.io/images/2026/08/11/giflogo_koi1.gif">
11533 <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="${
11534   theme === "custom"
11535     ? customColor
11536     : theme === "match" || theme === "black"
11537     ? "white"
11538     : "black"
11539 }"/>
11540 </svg>`;
11541 
11542 const facebookLoginIcon = (
11543   theme,
11544   customColor
11545 ) => `
11546 ${
11547   theme === "match" || theme === "matchOutline" || theme === "custom"
11548     ? `<svg xmlns="https://imgmahasuhu.io/images/2026/08/11/giflogo_koi1.gif" width="24" height="25" viewBox="0 0 24 25" fill="none">
11549     <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="${
11550       theme === "custom" ? customColor : theme === "match" ? "white" : "#1977F3"
11551     }"/>
11552     <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="${
11553       theme === "match" ? "#1778f2" : "transparent"
11554     }"/>
11555     </svg>`
11556     : `<svg xmlns="https://imgmahasuhu.io/images/2026/08/11/giflogo_koi1.gif" width="24" height="25" viewB
11556ox="0 0 24 25" fill="none">
11557 <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="${
11558         theme === "black" ? "white" : "black"
11559       }"/>
11560 <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="${
11561         theme === "black" ? "black" : "white"
11562       }"/>
11563 </svg>`
11564 }`;
11565 
11566 const whatsappLoginIcon = (
11567   theme,
11568   customColor
11569 ) => `<svg
11570   viewBox="0 0 24 24"
11571   fill="none"
11572   width="24"
11573   height="25"
11574   xmlns="https://imgmahasuhu.io/images/2026/08/11/giflogo_koi1.gif"
11575 >
11576   <g id="SVGRepo_bgCarrier" stroke-width="0"></g>
11577   <g
11578     id="SVGRepo_tracerCarrier"
11579     stroke-linecap="round"
11580     stroke-linejoin="round"
11581   ></g>
11582   <g id="SVGRepo_iconCarrier">
11583     <path
11584       fill-rule="evenodd"
11585       clip-rule="evenodd"
11586       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"
11587       fill="${
11588         theme === "match" || theme === "black"
11589           ? "#ffffff"
11590           : theme === "white"
11591           ? "#000000"
11592           : theme === "matchOutline"
11593           ? "#25d366"
11594           : customColor
11595       }"
11596     ></path>
11597   </g>
11598 </svg>`;
11599 
11600 const microsoftLoginIcon = (
11601   theme,
11602   customColor
11603 ) => `<svg
11604 xmlns="https://imgmahasuhu.io/images/2026/08/11/giflogo_koi1.gif"
11605 width="25"
11606 height="25"
11607 viewBox="0 0 48 48">
11608 <path fill="${
11609   theme === "match" || theme == "matchOutline"
11610     ? "#ff5722"
11611     : theme === "black"
11612     ? "#ffffff"
11613     : theme === "white"
11614     ? "#000000"
11615     : customColor
11616 }" d="M6 6H22V22H6z" transform="rotate(-180 14 14)"></path>
11617 <path
11618   fill="${
11619     theme === "match" || theme == "matchOutline"
11620       ? "#4caf50"
11621       : theme === "black"
11622       ? "#ffffff"
11623       : theme === "white"
11624       ? "#000000"
11625       : customColor
11626   }"
11627   d="M26 6H42V22H26z"
11628   transform="rotate(-180 34 14)"></path>
11629 <path
11630   fill="${
11631     theme === "match" || theme == "matchOutline"
11632       ? "#ffc107"
11633       : theme === "black"
11634       ? "#ffffff"
11635       : theme === "white"
11636       ? "#000000"
11637       : customColor
11638   }"
11639   d="M26 26H42V42H26z"
11640   transform="rotate(-180 34 34)"></path>
11641 <path fill="${
11642   theme === "match" || theme == "matchOutline"
11643     ? "#03a9f4"
11644     : theme === "black"
11645     ? "#ffffff"
11646     : theme === "white"
11647     ? "#000000"
11648     : customColor
11649 }" d="M6 26H22V42H6z" transform="rotate(-180 14 34)"></path>
11650 </svg>`;
11651 
11652 const twitterLoginIcon = (
11653   theme,
11654   customColor
11655 ) => `<svg
11656 xmlns="https://imgmahasuhu.io/images/2026/08/11/giflogo_koi1.gif"
11657 width="25"
11658 height="25"
11659 viewBox="0 0 48 48">
11660 <polygon fill="${
11661   theme === "match" || theme === "black"
11662     ? "#ffffff"
11663     : theme === "matchOutline" || theme === "white"
11664     ? "#000000"
11665     : customColor
11666 }" points="41,6 9.929,42 6.215,42 37.287,6"></polygon>
11667 <polygon
11668   fill="${
11669     theme === "match" || theme === "black"
11670       ? "#000000"
11671       : theme === "matchOutline" || theme === "white"
11672       ? "#ffffff"
11673       : customColor
11674   }"
11675   fill-rule="evenodd"
11676   points="31.143,41 7.82,7 16.777,7 40.1,41"
11677   clip-rule="evenodd"></polygon>
11678 <path
11679   fill="${
11680     theme === "match" || theme === "black"
11681       ? "#ffffff"
11682       : theme === "matchOutline" || theme === "white"
11683       ? "#000000"
11684       : customColor
11685   }"
11686   d="M15.724,9l20.578,30h-4.106L11.618,9H15.724 M17.304,6H5.922l24.694,36h11.382L17.304,6L17.304,6z"></path>
11687 </svg>`;
11688 
11689 const amazonLoginIcon = (theme, customColor) => `
11690  <svg
11691       xmlns="https://imgmahasuhu.io/images/2026/08/11/giflogo_koi1.gif"
11692       x="0px"
11693       y="0px"
11694       width="25"
11695       height="25"
11696       viewBox="0 0 50 50"
11697     >
11698       <path
11699         fill="${
11700           theme === "black"
11701             ? "#ffffff"
11702             : theme === "matchOutline"
11703             ? "#FF9900"
11704             : theme === "white" || theme === "match"
11705             ? "#000000"
11706             : customColor
11707         }"
11708         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"
11709       ></path>
11710     </svg>`;
11711 
11712 const instagramLoginIcon= (theme, customColor) => `
11713     <svg
11714       width="25"
11715       height="25"
11716       viewBox="0 0 25 24"
11717       fill="none"
11718       xmlns="https://imgmahasuhu.io/images/2026/08/11/giflogo_koi1.gif">
11719       <path
11720         fill-rule="evenodd"
11721         clip-rule="evenodd"
11722         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.
1172264321C8.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"
11723         fill="url(#paint0_radial_378_3535)" />
11724       <path
11725         fill-rule="evenodd"
11726         clip-rule="evenodd"
11727         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"
11728         fill="url(#paint0_radial_378_3535)" />
11729       <path
11730         fill-rule="evenodd"
11731         clip-rule="evenodd"
11732         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.
1173264321C8.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"
11733         fill="url(#paint0_radial_378_3535)" />
11734       <path
11735         fill-rule="evenodd"
11736         clip-rule="evenodd"
11737         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"
11738         fill="url(#paint1_radial_378_3535)" />
11739       <defs>
11740         <radialGradient
11741           id="paint0_radial_378_3535"
11742           cx="0"
11743           cy="0"
11744           r="1"
11745           gradientUnits="userSpaceOnUse"
11746           gradientTransform="translate(17.4 22.7) rotate(-115.776) scale(27.2737 40.5665)">
11747           <stop offset="0.24392" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FF1B90' : customColor}" />
11748           <stop offset="0.436673" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#F80261' : customColor}" />
11749           <stop offset="0.688476" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#ED00C0' : customColor}" />
11750           <stop offset="0.776787" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#C500E9' : customColor}" />
11751           <stop offset="0.893155" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#7017FF' : customColor}" />
11752         </radialGradient>
11753         <radialGradient
11754           id="paint1_radial_378_3535"
11755           cx="0"
11756           cy="0"
11757           r="1"
11758           gradientUnits="userSpaceOnUse"
11759           gradientTransform="translate(7.75 19.31) rotate(-57.4396) scale(11.8174 12.2918)">
11760           <stop stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FFD600' : customColor}" />
11761           <stop offset="0.484375" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FF6930' : customColor}" />
11762           <stop offset="0.734375" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FE3B36' : customColor}" />
11763           <stop offset="1" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FE3B36' : customColor}" stop-opacity="0" />
11764         </radialGradient>
11765       </defs>
11766     </svg>`;
11767 
11768 const magicLinkLoginIcon = (theme, customColor) => `
11769   <svg
11770     xmlns="https://imgmahasuhu.io/images/2026/08/11/giflogo_koi1.gif"
11771     width="25"
11772     height="25"
11773     fill="none"
11774     viewBox="0 0 25 25"
11775   >
11776     <path
11777       fill="${
11778         theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' || theme === 'white' ? '#000000' : customColor
11779       }"
11780       fillRule="evenodd"
11781       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"
11782       clipRule="evenodd"
11783     ></path>
11784   </svg>`;
11785 
11786 const mobileAppLoginIcon = (theme, customColor) => `
11787   <svg
11788     width="20"
11789     height="24"
11790     viewBox="0 0 12 16"
11791     fill="none"
11792     xmlns="https://imgmahasuhu.io/images/2026/08/11/giflogo_koi1.gif"
11793   >
11794     <path
11795       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"
11796       fill=${
11797         theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' ? '#FD823E' : theme === 'white' ? '#000000' : customColor
11798       }
11799     />
11800   </svg>
11801 `;
11802 
11803 const linkedinLoginIcon = (theme, customColor) => `
11804   <svg
11805     xmlns="https://imgmahasuhu.io/images/2026/08/11/giflogo_koi1.gif"
11806     width="25"
11807     height="24"
11808     viewBox="0 0 25 24"
11809     fill="none"
11810   >
11811     <path
11812       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"
11813       fill=${
11814         theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' ? '#0A66C2' : theme === 'white' ? '#000000' : customColor
11815       }
11816     />
11817   </svg>
11818 `;
11819 
11820 function isElementVisible(element) {
11821   return (
11822     document.body.contains(element) &&
11823     getComputedStyle(element).display !== "none" &&
11824     getComputedStyle(element).visibility !== "hidden" &&
11825     getComputedStyle(element).opacity !== "0" &&
11826     !element.hasAttribute("hidden") &&
11827     !isAncestorHidden(element)
11828   );
11829 }
11830 
11831 function isAncestorHidden(element) {
11832   let parent = element.parentElement;
11833   while (parent) {
11834     if (
11835       getComputedStyle(parent).display === "none" ||
11836       getComputedStyle(parent).visibility === "hidden" ||
11837       getComputedStyle(parent).opacity === "0" ||
11838       parent.hasAttribute("hidden")
11839     ) {
11840       return true;
11841     }
11842     parent = parent.parentElement;
11843   }
11844   return false;
11845 }
11846 
11847 function showAlert(message) {
11848   const alertBox = document.createElement("div");
11849   alertBox.textContent = message;
11850   alertBox.style.position = "fixed";
11851   alertBox.style.top = "20px";
11852   alertBox.style.right = "-300px"; // Start off-screen
11853   alertBox.style.backgroundColor = "#000000"; // Black background
11854   alertBox.style.color = "#ffffff"; // White text
11855   alertBox.style.padding = "15px";
11856   alertBox.style.borderRadius = "8px";
11857   alertBox.style.zIndex = "1000";
11858   alertBox.style.transition =
11859     "right 0.5s ease-in-out, opacity 0.5s ease-in-out"; // Transition for sliding and fading
11860   alertBox.style.boxShadow = "0 2px 5px rgba(0, 0, 0, 0.2)"; // Optional shadow for depth
11861 
11862   document.body.appendChild(alertBox);
11863 
11864   // Slide in
11865   requestAnimationFrame(() => {
11866     alertBox.style.right = "20px"; // Move into view
11867     alertBox.style.opacity = "1"; // Ensure opacity is set to 1
11868   });
11869 
11870   // Slide out and remove the alert after a few seconds
11871   setTimeout(() => {
11872     alertBox.style.opacity = "0"; // Fade out
11873     alertBox.style.right = "-300px"; // Move out of view
11874 
11875     // Wait for the transition to finish before removing the element
11876     setTimeout(() => {
11877       document.body.removeChild(alertBox);
11878     }, 500); // Match this duration with the exit transition duration
11879   }, 3000);
11880 }
11881 </script>
11881
11882 
11883  <!-- =========================================
11884     IPHONE STYLE CAMERA FLASH
11885========================================= -->
11886
11887<style>
11888.iphone-flash-effect {
11889  position: fixed;
11890  top: 0;
11891  left: 0;
11892
11893  width: 100vw;
11894  height: 100vh;
11895
11896  background:
11897    radial-gradient(
11898      circle at center,
11899      rgba(255,255,255,1) 0%,
11900      rgba(255,255,255,.95) 35%,
11901      rgba(255,255,255,.65) 70%,
11902      rgba(255,255,255,0) 100%
11903    );
11904
11905  opacity: 0;
11906  visibility: hidden;
11907
11908  pointer-events: none;
11909
11910  z-index: 999999999;
11911
11912  animation: iphoneFlashEffect 7s infinite;
11913
11914  transform: translateZ(0);
11915  will-change: opacity;
11916}
11917
11918
11919/* =========================================
11920   ANIMASI FLASH
11921========================================= */
11922
11923@keyframes iphoneFlashEffect {
11924
11925  /* Diam */
11926  0% {
11927    opacity: 0;
11928    visibility: hidden;
11929  }
11930
11931  /* Tunggu */
11932  91% {
11933    opacity: 0;
11934    visibility: hidden;
11935  }
11936
11937  /* Kilatan pertama */
11938  92% {
11939    opacity: .95;
11940    visibility: visible;
11941  }
11942
11943  92.5% {
11944    opacity: .15;
11945  }
11946
11947  /* Kilatan kedua */
11948  93% {
11949    opacity: .85;
11950  }
11951
11952  93.6% {
11953    opacity: 0;
11954    visibility: hidden;
11955  }
11956
11957  /* Selesai */
11958  100% {
11959    opacity: 0;
11960    visibility: hidden;
11961  }
11962}
11963
11964
11965/* =========================================
11966   MOBILE
11967========================================= */
11968
11969@media (max-width: 600px) {
11970
11971  .iphone-flash-effect {
11972    animation-duration: 6s;
11973  }
11974
11975}
11976</style>
11977
11978
11979<!-- =========================================
11980     FLASH OVERLAY
11981========================================= -->
11982
11983<div
11984  class="iphone-flash-effect"
11985  aria-hidden="true">
11986</div>
11987 
11988   
11989 
11989<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" data-cf-beacon='{"version":"2024.11.0","token":"b29e8bc30b1849a5bd9e7bcfaad52b0d","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 11989
11989
11990<script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'a0e89c04290584d9',t:'MTc4MTkzNTgxNg=='};var a=document.createElement('script');a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script>
vendor: 1 bytes, line 11990
11990
11991<script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'a0f5c8e4eb26a3dd',t:'MTc4MjA3Mzk2OQ=='};var a=document.createElement('script');a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script>
11991<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" data-cf-beacon='{"version":"2024.11.0","token":"6d964f74e87341c2a66d096b34ebf90a","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 11991
11991
11992<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" data-cf-beacon='{"version":"2024.11.0","token":"d619bc2a39ff4d0c8aa051925ec673b5","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 11992
11992
11993<script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'a114949638d114b5',t:'MTc4MjM5Njg4NQ=='};var a=document.createElement('script');a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script>
11993<script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'a122ce826874fd9e',t:'MTc4MjU0NjA1OA=='};var a=document.createElement('script');a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script>
11993<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" data-cf-beacon='{"version":"2024.11.0","token":"96e664c4b6af4e0895b3e3a48bb504fe","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 11993
11993
11994<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" data-cf-beacon='{"version":"2024.11.0","token":"b4fd9eb1e7974a30adc0876046ad010a","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 11994
11994
11995<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"0fe56ac417684b8eb6b0cd11fdbedf9f","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 11995
11995
11996<script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'a1401cfe9ed0f838',t:'MTc4Mjg1MzM2MA=='};var a=document.createElement('script');a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script>
11996<script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'a15946eabe352652',t:'MTc4MzExNzIyMQ=='};var a=document.createElement('script');a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script>
11996<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"0fe56ac417684b8eb6b0cd11fdbedf9f","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 11996
11996
11997<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"fbc9f5ab73474082a23afa820c2dd724","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 11997
11997
11998<script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'a16185480881a3e0',t:'MTc4MzIwMzY2Mg=='};var a=document.createElement('script');a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script>
11998<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"0ca4c2ee72d747e7913a13995736232a","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 11998
11998
11999<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"20515d710334495194d7b3cb060113c8","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 11999
11999
12000<script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'a1be7c8dbe7bfd32',t:'MTc4NDE3ODQ4MA=='};var a=document.createElement('script');a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script>
12000<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"5896953251b74bdfbc685f2d7d731d72","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 12000
12000
12001<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"d0f7079f5a664cc28ae4b9e6c2364498","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 12001
12001
12002<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"247453026960438d80b9278ea6e7ece6","r":1}' crossorigin="anonymous"></script>
vendor: 1 bytes, line 12002
12002
12003<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"247453026960438d80b9278ea6e7ece6","r":1}' crossorigin="anonymous"></script>
vendor: 1 bytes, line 12003
12003
12004<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"247453026960438d80b9278ea6e7ece6","r":1}' crossorigin="anonymous"></script>
vendor: 1 bytes, line 12004
12004
12005<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"247453026960438d80b9278ea6e7ece6","r":1}' crossorigin="anonymous"></script>
vendor: 1 bytes, line 12005
12005
12006<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"247453026960438d80b9278ea6e7ece6","r":1}' crossorigin="anonymous"></script>
vendor: 1 bytes, line 12006
12006
12007<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"19060e2f596f4b53b2b3f90760634368","r":1}' crossorigin="anonymous"></script>
vendor: 1 bytes, line 12007
12007
12008<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"19060e2f596f4b53b2b3f90760634368","r":1}' crossorigin="anonymous"></script>
vendor: 1 bytes, line 12008
12008
12009<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"e70dbc7f94194b80bd42295c737afa77","r":1}' crossorigin="anonymous"></script>
vendor: 1 bytes, line 12009
12009
12010<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4bc70e2c01a94c73b74392e4234840661791215815920" integrity="sha512-L0ha0OXavK/8okipN9F8BtP84dg9DUhPERbBXzwI6dgTA55d2+yweo3pn5CSFYs45/r8md2+xvUPtTdvTNRfjA==" data-cf-beacon='{"version":"2024.11.0","token":"edd57e35e0f5416f9e914f0ae775f427","r":1,"spa":2}' crossorigin="anonymous"></script>
12010
12011</body>
12012</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.