PageSourceSearch

https://islamic-books.org/

html islamic-books.org collected 2026-10-02 14:28:16 UTC 653,245 bytes, 10,851 lines download raw bytes

1
2
3
4
5<!doctype html>
6 <!--Brumm Brumm ngenggggg-->
7   <html class="no-js">
8     <head>
9     <meta charset="utf-8">
10     <meta http-equiv="X-UA-Compatible" content="IE=edge">
11     <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1">
12     <meta name="apple-itunes-app" content="app-id=1576832504">
13     <link rel="icon" type="image/x-icon" href="favicon.png">
14      <!-- Title and description -->
15     <title>RSLOT77 | Bandar Togel Toto Macau Dengan Sistem Aman Akses Mudah</title>
16     <meta name="description" content="RSLOT77 menyediakan akses Bandar Togel Toto Macau dengan sistem terlindungi, proses masuk praktis, tampilan ringan, serta informasi yang tersusun rapi untuk kenyamanan pengguna.">
17     <link rel="canonical" href="https://islamic-books.org/">
18     <link rel="amphtml" href="https://ruang.islamic-books.org/"/>
19     <link rel="alternate" hreflang="id-id" href="https://ruang.islamic-books.org/"/>
20     <link rel="alternate" href="https://ruang.islamic-books.org/"/>
21     <link rel="alternate" hreflang="id" href="https://ruang.islamic-books.org/"/>
22     <link rel="alternate" hreflang="en" href="https://ruang.islamic-books.org/"/>
23     <link rel="alternate" hreflang="x-default" href="https://ruang.islamic-books.org/"/>
24     <!-- /snippets/social-meta-tags.liquid -->
25     <meta property="og:type" content="RSLOT77">
26     <meta property="og:title" content="RSLOT77 | Bandar Togel Toto Macau Dengan Sistem Aman Akses Mudah">
27     <meta property="og:image" content="rslot77.webp">
28     <meta property="og:image:secure_url" content="rslot77.webp">
29     <meta property="og:image" content="rslot77.webp">
30     <meta property="og:image:secure_url" content="rslot77.webp">
31     <meta property="og:image" content="rslot77.webp">
32     <meta property="og:image:secure_url" content="rslot77.webp">
33     <meta property="og:description" content="RSLOT77 menyediakan akses Bandar Togel Toto Macau dengan sistem terlindungi, proses masuk praktis, tampilan ringan, serta informasi yang tersusun rapi untuk kenyamanan pengguna.">
34     <meta name="google-site-verification" content="rdm_owxn341NRbGpn7O59HLsC11qmW7R5vdGSHoTOBs" />
35     <meta name="google-site-verification" content="TlslKfbnrKYTjWu65XphpRtxRr5UgS5mCgImRHUWuhA" />
36     <meta name="google-site-verification" content="W3UmWOrN5T0xRWm4K4S6vJF5nFD0hrwh6tX1lk3DFrA" />
37     <meta name="google-site-verification" content="7na77dnbYgDPrxee-045aWLAogMxOGtC4xLBeCbveso" />
38     <meta property="og:price:amount" content="5,000-,">
39     <meta property="og:price:currency" content="IDR">
40     <meta property="og:url" content="https://islamic-books.org/">
41     <meta property="og:site_name" content="RSLOT77">
42     <meta name="twitter:site" content="@RSLOT77">
43     <meta name="twitter:card" content="summary">
44     <meta name="twitter:title" content="RSLOT77 | Bandar Togel Toto Macau Dengan Sistem Aman Akses Mudah">
45     <meta name="twitter:description" content="RSLOT77 menyediakan akses Bandar Togel Toto Macau dengan sistem terlindungi, proses masuk praktis, tampilan ringan, serta informasi yang tersusun rapi untuk kenyamanan pengguna.">
46     <meta name="twitter:image" content="rslot77.webp">
47     <meta name="twitter:image:width" content="600">
48     <meta name="twitter:image:height" content="600">
49     <link rel="shortcut icon" href="favicon.png" type="image/png">
50     <meta name="theme-color" content="#ffffff">
51     <link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700&family=Poppins&display=swap" rel="stylesheet">
52     <link href="//outerbloom.com/cdn/shop/t/138/assets/custom-styles.css?v=94643080714485117621752652418" rel="stylesheet" type="text/css" media="all" />
53     <link rel="stylesheet" href="//outerbloom.com/cdn/shop/t/138/assets/wishlist-styles.css?v=166819525406734116961754385201">
53<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.4/jquery.min.js" defer></script>
53
54     
54<script
55       src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.13.2/jquery-ui.min.js"
56       integrity="sha512-57oZ/vW8ANMjR/KQ6Be9v/+/h6bq9/l3f0Oc7vn6qMqyhvPd1cvKBRWWpzu0QoneImqr2SkmO4MSqU+RpHom3Q=="
57       crossorigin="anonymous"
58       referrerpolicy="no-referrer"
59       defer
60     ></script>
60
61     
61<script src="https://cdnjs.cloudflare.com/ajax/libs/qrcodejs/1.0.0/qrcode.min.js" async="async"></script>
61
62     
62<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/select2.min.js" defer></script>
62<!-- Facebook Pixel Code -->
63     
63<script>
vendor: 471 bytes, lines 63-72
63
64       !function(f,b,e,v,n,t,s)
65       {if(f.fbq)return;n=f.fbq=function(){n.callMethod?
66       n.callMethod.apply(n,arguments):n.queue.push(arguments)};
67       if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
68       n.queue=[];t=b.createElement(e);t.async=!0;
69       t.src=v;s=b.getElementsByTagName(e)[0];
70       s.parentNode.insertBefore(t,s)}(window, document,'script',
71       'https://connect.facebook.net/en_US/fbevents.js');
72       fbq('init', '
72165971065669324
vendor: 44 bytes, lines 72-74
72');
73       fbq('track', 'PageView');
74     
74</script>
74
75     <noscript
76       ><img
77         height="1"
78         width="1"
79         style="display:none"
80         src="https://www.facebook.com/tr?id=165971065669324&ev=PageView&noscript=1"
81     ></noscript>
82     <!-- End Facebook Pixel Code -->
83 
84     <!-- Google G4 Script - Disabled by developer (William) to prioritize Mobile App tracking -->
85     <!--
86      Global site tag (gtag.js) - Google Analytics -->
vendor: 76 bytes, lines 86-87
86
87           <script async src="https://www.googletagmanager.com/gtag/js?id=
87G-X26HYP4083
vendor: 24 bytes, lines 87-88
87"></script>
88           
88<script>
89             
vendor: 174 bytes, lines 89-93
89window.dataLayer = window.dataLayer || [];
90             function gtag(){dataLayer.push(arguments);}
91             gtag('js', new Date());
92   
93             gtag('config', '
93G-X26HYP4083
vendor: 16 bytes, lines 93-94
93');
94           
94</script>
94
95       <!-- Global site tag (gtag.js) - Google Analytics -->
96     
97     <div class="button-login-daftar">
98                     <a class="login" href="https://ruang.islamic-books.org/" rel="nofollow noreferrer">
99                         LOGIN
100                     </a>
101                     <a class="register" href="https://ruang.islamic-books.org/" rel="nofollow noreferrer">
102                         DAFTAR
103                     </a>
104                 </div>
105   
106     
106<script src="//cdnjs.cloudflare.com/ajax/libs/vissense/0.9.0/vissense.js" defer></script>
106
107   
108     <!-- Bing UET -->
109     
109<script>
110       (function(w,d,t,r,u)
111       {
112           var f,n,i;
113           w[u]=w[u]||[],f=function()
114           {
115               var o={ti:"343051754", tm:"shpfy_ui", enableAutoSpaTracking: true};
116               o.q=w[u],w[u]=new UET(o),w[u].push("pageLoad")
117           },
118           n=d.createElement(t),n.src=r,n.async=1,n.onload=n.onreadystatechange=function()
119           {
120               var s=this.readyState;
121               s&&s!=="loaded"&&s!=="complete"||(f(),n.onload=n.onreadystatechange=null)
122           },
123           i=d.getElementsByTagName(t)[0],i.parentNode.insertBefore(n,i)
124       })
125       (window,document,"script","//bat.bing.com/bat.js","uetq");
126     </script>
126
127     
127<script>
128       window.uetq = window.uetq || [];
129       window.uetq.push('event', '', {"revenue_value":0,"currency":"IDR"});
130     </script>
130
131     <!-- End Bing UET -->
132   
133     <!-- Microsoft Clarity -->
134     
134<script type="text/javascript">
135       (function(c,l,a,r,i,t,y){
136           c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};
137           t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i;
138           y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y);
139       })(window, document, "clarity", "script", "h7rbxqry9k");
140     </script>
140
141     <!-- End Microsoft Clarity -->
142 
143 
144 <link href="//outerbloom.com/cdn/shop/t/138/assets/combine.min.css?v=111340648424012527321754385205" rel="stylesheet" type="text/css" media="all" />
145 
146 <link href="//outerbloom.com/cdn/shop/t/138/assets/font-awesome.css?v=132324219581463622051752652421" rel="stylesheet" type="text/css" media="all" />
147 <link rel="stylesheet" href="//code.jquery.com/ui/1.13.0/themes/base/jquery-ui.min.css">
148 
149 
149<script src="//code.jquery.com/jquery-1.12.4.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" crossorigin="anonymous"></script>
149
150 
150<script src="//outerbloom.com/cdn/shop/t/138/assets/combine.js?v=140218079523075729301752652421" type="text/javascript"></script>
150
151 
151<script src="//code.jquery.com/ui/1.13.0/jquery-ui.min.js"></script>
151
152     
152<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
152
153 <meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/15896833/digital_wallets/dialog">
154 <link rel="alternate" type="application/json+oembed" href="https://datatellers.info.oembed">
155 
155<script async="async" src="/checkouts/internal/preloads.js?locale=en-ID"></script>
155
156 
156<script id="shopify-features" type="application/json">{"accessToken":"d2e176e59f6658d5056234d6249b3ab4","betas":["rich-media-storefront-analytics"],"domain":"outerbloom.com","predictiveSearch":true,"shopId":15896833,"locale":"en"}</script>
156
157 
157<script>var Shopify = Shopify || {};
158 Shopify.shop = "outerbloom1.myshopify.com";
159 Shopify.locale = "en";
160 Shopify.currency = {"active":"IDR","rate":"1.0"};
161 Shopify.country = "ID";
162 Shopify.theme = {"name":"web-outerbloom-shopify\/main","id":153139282135,"schema_name":null,"schema_version":null,"theme_store_id":null,"role":"main"};
163 Shopify.theme.handle = "null";
164 Shopify.theme.style = {"id":null,"handle":null};
165 Shopify.cdnHost = "outerbloom.com/cdn";
166 Shopify.routes = Shopify.routes || {};
167 Shopify.routes.root = "/";</script>
167
168 
168<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
168
169 
169<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>
169
170 
170<script id="shop-js-analytics" type="application/json">{"pageType":"product"}</script>
170
171 
171<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});
172 "></script>
172
173 
173<script>(function() {
174   var isLoaded = false;
175   function asyncLoad() {
176     if (isLoaded) return;
177     isLoaded = true;
178     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"];
179     for (var i = 0; i < urls.length; i++) {
180       var s = document.createElement('script');
181       s.type = 'text/javascript';
182       s.async = true;
183       s.src = urls[i];
184       var x = document.getElementsByTagName('script')[0];
185       x.parentNode.insertBefore(s, x);
186     }
187   };
188   if(window.attachEvent) {
189     window.attachEvent('onload', asyncLoad);
190   } else {
191     window.addEventListener('load', asyncLoad, false);
192   }
193 })();</script>
193
194 
194<script id="__st">var __st={"a":15896833,"offset":25200,"reqid":"78149bf2-9ab6-43c0-b2ce-821afbfe5bd0-1759566675","pageurl":"outerbloom.com\/products\/blossom-shine","u":"381e6a1da038","p":"product","rtyp":"product","rid":8144957800663};</script>
194
195 
195<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
195
196 
196<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>
196
197 
197<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>
197
198 
198<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)}};
199 </script>
199
200 
200<script data-source-attribution="shopify.dynamic_checkout.buyer_consent">
201   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);
202 </script>
202
203 
203<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})}}));
204 </script>
204
205 
206 
206<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
206
207     <!-- /snippets/oldIE-js.liquid -->
208 
209 
210 <!--[if lt IE 9]>
211 
211<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js" type="text/javascript"></script>
211
212 
212<script src="//outerbloom.com/cdn/shop/t/138/assets/respond.min.js?v=52248677837542619231752652418" type="text/javascript"></script>
212
213 <link href="//outerbloom.com/cdn/shop/t/138/assets/respond-proxy.html" id="respond-proxy" rel="respond-proxy" />
214 <link href="//outerbloom.com/search?q=142e9156869335090161dced0ac98b64" id="respond-redirect" rel="respond-redirect" />
215 
215<script src="//outerbloom.com/search?q=142e9156869335090161dced0ac98b64" type="text/javascript"></script>
215
216 <![endif]-->
217 
218 
219 
220   
221     
222   <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">
223 <link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
224 
224<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>
224
225 
225<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":"RSLOT77 | Bandar Togel Toto Macau Dengan Sistem Aman Akses Mudah","vendor":"Outerbloom Florist","id":"8144957800663","untranslatedTitle":"RSLOT77 | Bandar Togel Toto Macau Dengan Sistem Aman Akses Mudah","url":"\/products\/blossom-shine","type":"RSLOT77 menyediakan akses Bandar Togel Toto Macau dengan sistem terlindungi, proses masuk praktis, tampilan ringan, serta informasi yang tersusun rapi untuk kenyamanan pengguna."},"id":"44083045826775","image":{"src":"\/\/outerbloom.com\/cdn\/shop\/files\/Blossom-Shine-WM.jpg?v=1695788426"},"sku":"OBVSTF1086","title":"Default Title","untranslatedTitle":"Default Title"}],"purchasingCompany":null},},"https://outerbloom.com/cdn","4f0c5c77w64a73806p128ba08bma5b58f2f",{"modern":"","legacy":""},{"shopId":"15896833","storefrontBaseUrl":"https:\/\/outerbloom.com","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[]","isMerchantRequest":"false","hashVersion":"4f0c5c77w64a73806p128ba08bma5b58f2f","publish":"custom","events":"[[\"page_viewed\",{}],[\"product_viewed\",{\"productVariant\":{\"price\":{\"amount\":835000.0,\"currencyCode\":\"IDR\"},\"product\":{\"title\":\"RSLOT77 | Bandar Togel Toto Macau Dengan Sistem Aman Akses Mudah\",\"vendor\":\"Outerbloom Florist\",\"id\":\"8144957800663\",\"untranslatedTitle\":\"RSLOT77 | Bandar Togel Toto Macau Dengan Sistem Aman Akses Mudah\",\"url\":\"\/products\/blossom-shine\",\"type\":\"RSLOT77 menyediakan akses Bandar Togel Toto Macau dengan sistem terlindungi, proses masuk praktis, tampilan ringan, serta informasi yang tersusun rapi untuk kenyamanan pengguna.\"},\"id\":\"44083045826775\",\"image\":{\"src\":\"\/\/outerbloom.com\/cdn\/shop\/files\/Blossom-Shine-WM.jpg?v=1695788426\"},\"sku\":\"OBVSTF1086\",\"title\":\"Default Title\",\"untranslatedTitle\":\"Default Title\"}}]]"});</script>
225<script>
226   window.ShopifyAnalytics = window.ShopifyAnalytics || {};
227   window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {};
228   window.ShopifyAnalytics.meta.currency = 'IDR';
229   var meta = {"product":{"id":8144957800663,"gid":"gid:\/\/shopify\/Product\/8144957800663","vendor":"Outerbloom Florist","type":"RSLOT77 menyediakan akses Bandar Togel Toto Macau dengan sistem terlindungi, proses masuk praktis, tampilan ringan, serta informasi yang tersusun rapi untuk kenyamanan pengguna.","variants":[{"id":44083045826775,"price":1000000
230   ,"name":"RSLOT77 | Bandar Togel Toto Macau Dengan Sistem Aman Akses Mudah","public_title":null,"sku":"OBVSTF1086"}],"remote":false},"page":{"pageType":"product","resourceType":"product","resourceId":8144957800663}};
231   for (var attr in meta) {
232     window.ShopifyAnalytics.meta[attr] = meta[attr];
233   }
234 </script>
234
235 
235<script class="analytics">
236   (function () {
237     var customDocumentWrite = function(content) {
238       var jquery = null;
239 
240       if (window.jQuery) {
241         jquery = window.jQuery;
242       } else if (window.Checkout && window.Checkout.$) {
243         jquery = window.Checkout.$;
244       }
245 
246       if (jquery) {
247         jquery('body').append(content);
248       }
249     };
250 
251     var hasLoggedConversion = function(token) {
252       if (token) {
253         return document.cookie.indexOf('loggedConversion=' + token) !== -1;
254       }
255       return false;
256     }
257 
258     var setCookieIfConversion = function(token) {
259       if (token) {
260         var twoMonthsFromNow = new Date(Date.now());
261         twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2);
262 
263         document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow;
264       }
265     }
266 
267     var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || [];
268     if (trekkie.integrations) {
269       return;
270     }
271     trekkie.methods = [
272       'identify',
273       'page',
274       'ready',
275       'track',
276       'trackForm',
277       'trackLink'
278     ];
279     trekkie.factory = function(method) {
280       return function() {
281         var args = Array.prototype.slice.call(arguments);
282         args.unshift(method);
283         trekkie.push(args);
284         return trekkie;
285       };
286     };
287     for (var i = 0; i < trekkie.methods.length; i++) {
288       var key = trekkie.methods[i];
289       trekkie[key] = trekkie.factory(key);
290     }
291     trekkie.load = function(config) {
292       trekkie.config = config || {};
293       trekkie.config.initialDocumentCookie = document.cookie;
294       var first = document.getElementsByTagName('script')[0];
295       var script = document.createElement('script');
296       script.type = 'text/javascript';
297       script.onerror = function(e) {
298         var scriptFallback = document.createElement('script');
299         scriptFallback.type = 'text/javascript';
300         scriptFallback.onerror = function(error) {
301                 var Monorail = {
302       produce: function produce(monorailDomain, schemaId, payload) {
303         var currentMs = new Date().getTime();
304         var event = {
305           schema_id: schemaId,
306           payload: payload,
307           metadata: {
308             event_created_at_ms: currentMs,
309             event_sent_at_ms: currentMs
310           }
311         };
312         return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event));
313       },
314       sendRequest: function sendRequest(endpointUrl, payload) {
315         // Try the sendBeacon API
316         if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) {
317           var blobData = new window.Blob([payload], {
318             type: 'text/plain'
319           });
320 
321           if (window.navigator.sendBeacon(endpointUrl, blobData)) {
322             return true;
323           } // sendBeacon was not successful
324 
325         } // XHR beacon
326 
327         var xhr = new XMLHttpRequest();
328 
329         try {
330           xhr.open('POST', endpointUrl);
331           xhr.setRequestHeader('Content-Type', 'text/plain');
332           xhr.send(payload);
333         } catch (e) {
334           console.log(e);
335         }
336 
337         return false;
338       },
339       isIos12: function isIos12() {
340         return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1;
341       }
342     };
343     Monorail.produce('monorail-edge.shopifysvc.com',
344       'trekkie_storefront_load_errors/1.1',
345       {shop_id: 15896833,
346       theme_id: 153139282135,
347       app_name: "storefront",
348       context_url: window.location.href,
349       source_url: "//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js"});
350 
351         };
352         scriptFallback.async = true;
353         scriptFallback.src = '//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js';
354         first.parentNode.insertBefore(scriptFallback, first);
355       };
356       script.async = true;
357       script.src = '//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js';
358       first.parentNode.insertBefore(script, first);
359     };
360     trekkie.load(
361       {"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}}
362     );
363 
364     var loaded = false;
365     trekkie.ready(function() {
366       if (loaded) return;
367       loaded = true;
368 
369       window.ShopifyAnalytics.lib = window.trekkie;
370 
371       var originalDocumentWrite = document.write;
372       document.write = customDocumentWrite;
373       try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {};
374       document.write = originalDocumentWrite;
375 
376       window.ShopifyAnalytics.lib.page(null,{"pageType":"product","resourceType":"product","resourceId":8144957800663,"shopifyEmitted":true});
377 
378       var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/)
379       var token = match? match[1]: undefined;
380       if (!hasLoggedConversion(token)) {
381         setCookieIfConversion(token);
382         window.ShopifyAnalytics.lib.track("Viewed Product",{"currency":"IDR","variantId":44083045826775,"productId":8144957800663,"productGid":"gid:\/\/shopify\/Product\/8144957800663","name":"RSLOT77 | Bandar Togel Toto Macau Dengan Sistem Aman Akses Mudah","price":"835000.00","sku":"OBVSTF1086","brand":"Outerbloom Florist","variant":null,"category":"RSLOT77 menyediakan akses Bandar Togel Toto Macau dengan sistem terlindungi, proses masuk praktis, tampilan ringan, serta informasi yang tersusun rapi untuk kenyamanan pengguna.","nonInteraction":true,"remote":false},undefined,undefined,{"shopifyEmitted":true});
383       window.ShopifyAnalytics.lib.track("monorail:\/\/trekkie_storefront_viewed_product\/1.1",{"currency":"IDR","variantId":44083045826775,"productId":8144957800663,"productGid":"gid:\/\/shopify\/Product\/8144957800663","name":"RSLOT77 | Bandar Togel Toto Macau Dengan Sistem Aman Akses Mudah","price":"835000.00","sku":"OBVSTF1086","brand":"Outerbloom Florist","variant":null,"category":"RSLOT77 menyediakan akses Bandar Togel Toto Macau dengan sistem terlindungi, proses masuk praktis, tampilan ringan, serta informasi yang tersusun rapi untuk kenyamanan pengguna.","nonInteraction":true,"remote":false,"referer":"https:\/\/outerbloom.com\/products\/blossom-shine"});
384       }
385     });
386 
387 
388         var eventsListenerScript = document.createElement('script');
389         eventsListenerScript.async = true;
390         eventsListenerScript.src = "//outerbloom.com/cdn/shopifycloud/storefront/assets/shop_events_listener-abeef7a0.js";
391         document.getElementsByTagName('head')[0].appendChild(eventsListenerScript);
392 
393 })();</script>
393
394   
394<script>
395   if (!window.ga || (window.ga && typeof window.ga !== 'function')) {
396     window.ga = function ga() {
397       (window.ga.q = window.ga.q || []).push(arguments);
398       if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') {
399         window.Shopify.analytics.publish("ga_stub_called", {}, {sendTo: "google_osp_migration"});
400       }
401       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.");
402     };
403     if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') {
404       window.Shopify.analytics.publish("ga_stub_initialized", {}, {sendTo: "google_osp_migration"});
405     }
406   }
407 </script>
407
408 
408<script
409   defer
410   src="https://outerbloom.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-2.0.13.min.js"
411   data-application="storefront-renderer"
412   data-shop-id="15896833"
413   data-render-region="gcp-asia-southeast1"
414   data-page-type="product"
415   data-theme-instance-id="153139282135"
416   data-theme-name=""
417   data-theme-version=""
418   data-monorail-region="shop_domain"
419   data-resource-timing-sampling-rate="10"
420   data-shs="true"
421   data-shs-beacon="true"
422   data-shs-export-with-fetch="true"
423   data-shs-logs-sample-rate="1"
424 ></script>
424
425 </head><body
426     data-template="product"
427     id="blossom-shine"
428     class="template-product template-product"
429   >
430     <!-- Google Tag Manager (noscript) -->
vendor: 93 bytes, lines 430-433
430
431     <noscript
432       ><iframe
433         src="https://www.googletagmanager.com/ns.html?id=
433GTM-MF9VVZX
vendor: 135 bytes, lines 433-439
433"
434         height="0"
435         width="0"
436         style="display:none;visibility:hidden"
437       ></iframe
438     ></noscript>
439     
439<!-- End Google Tag Manager (noscript) -->
440 
441     
442 
443     <div class="header-wrapper">
444       
445       <div id="shopify-section-NotifBar" class="shopify-section m-0">
446 
447 <style>
448   #notification {z-index: 99;width: 100%;transition: top 0.2s ease-in-out;}
449   #notification.promo-up {top: -48px!important;}
450   .promo-bg {width: 100%;padding: 6px 0;background-color: #242424;}
451   .notification__message p {margin: 0;color: #000000;font-size: 14px!important;}
452   .notification__message p a {text-decoration: underline;color: #fed804;}
453   @media (max-width: 991px){
454     .notification__message p {font-size: 14px!important;}
455   }
456 </style>
457 <input id="clearCookie" class="hide" type="button" value="Delete Cookie" />
458 <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">
459   <div class="page-width notification__inner ">
460     
461     
462     <div class="notification__message text-center">
463       <p><a href="https://islamic-books.org/" title="RSLOT77">RSLOT77 | Bandar Togel Toto Macau Dengan Sistem Aman Akses Mudah</a></p>
464     </div>
465   </div>
466 </div>
467 
468 
469 
470 
471 </div>
472       <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"/>
473 
474 
475 <header style="background-image: url(rslot77.webp); background-attachment: fixed;">
476   <div class="container">
477     <div class="header-container row justify-content-between pl-lg-0 pr-lg-0">
478         <a href="https://islamic-books.org/">
479         <img src="logoweb.png" alt="logo-RSLOT77" style="width: 190px;"></a>
480       <link href="favicon.png" rel="shortcut icon" type="image/x-icon" />
481         <div id="menu-hamburger" class="d-lg-none">
482           <svg xmlns="logoweb.png" width="16" height="10" viewBox="0 0 16 10" fill="none">
483   <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"/>
484 </svg>
485 
486         <a href="/"><svg xmlns="logoweb.png" viewBox="0 0 854 78.29">
487   <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>
488 </svg>
489 </a>
490       </div>
491 
492       <div class="header-icon-right header-icons col-3">
493         <div class="icon icon-account-header d-none d-lg-block">
494           <a href="https://islamic-books.org/">
495             <svg xmlns="logoweb.png" width="20" height="21" viewBox="0 0 20 21" fill="none">
496   <path d="M19.015 19.8549C18.4842 18.3662 17.3117 17.0514 15.6819 16.1134C14.052 15.1754 12.0547 14.6667 10.0002 14.6667C7.94569 14.6667 5.94835 15.1754 4.31852 16.1134C2.68869 17.0514 1.51618 18.3662 0.985352 19.8549" stroke="#ffffff" stroke-linecap="round"/>
497   <path d="M10.0002 10C12.5775 10 14.6668 7.91068 14.6668 5.33335C14.6668 2.75602 12.5775 0.666687 10.0002 0.666687C7.42283 0.666687 5.3335 2.75602 5.3335 5.33335C5.3335 7.91068 7.42283 10 10.0002 10Z" stroke="#ffffff" stroke-linecap="round"/>
498 </svg>
499 
500           </a>
501         </div>
502         <div class="icon icon-wishlist-header">
503           <a href="https://islamic-books.org/">
504             <svg xmlns="logoweb.png" width="24" height="21" viewBox="0 0 24 21" fill="none">
505   <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.
50511233C11.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"/>
506 </svg>
507 
508             <span class="wishlist-count d-none">0</span>
509           </a>
510         </div>
511         <div class="icon icon-cart-header">
512           <a href="https://islamic-books.org/">
513             <svg xmlns="logoweb.png" width="22" height="21" viewBox="0 0 22 21" fill="none">
514   <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"/>
515   <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"/>
516 </svg>
517 
518           </a>
519         </div>
520       </div>
521     </div>
522   </div>
523 </header>
524 
525 <nav class="nav-header" style="background-color: #242424;">
526   <div class="nav-account-mobile row m-0 d-lg-none">
527     <div class="col-6 welcome-cust p-0">
528       
529         <h1 class="logo">
530     <a href="https://islamic-books.org/">
531         <img src="logoweb.png" alt="RSLOT77" style="max-height:60px;">
532     </a>
533 </h1>
534 
535       
536     </div>
537     
538       <div class="col-6 login-register text-right p-0">
539         <a href="https://ruang.islamic-books.org/">Log In</a> | <a href="https://ruang.islamic-books.org/">Sign Up</a>
540       </div>
541   </div>
542   <ul class="nav-menu container">
543     
544       <li class="nav-menu container">
545         <a href="https://islamic-books.org/">
546           <span style="color: #fed804;">RSLOT77</span>
547         
548     
549       <li class=" nav-menu container">
550         <a href="https://islamic-books.org/">
551           <span style="color: #fed804;">BANDAR TOTO MACAU</span>
552           
553     
554       <li class=" nav-menu container">
555         <a href="https://islamic-books.org/">
556           <span style="color: #fed804;">AKSES MUDAH RSLOT77</span>
557     
558       <li class=" nav-menu container">
559         <a href="https://islamic-books.org/">
560           <span style="color: #fed804;">SISTEM AMAN TOTO MACAU</span>
561 
562       <li class=" nav-menu container">
563         <a href="https://islamic-books.org/">
564           <span style="color: #fed804;">INFORMASI TOTO MACAU</span>
565 
566       <li class=" nav-menu container">
567         <a href="https://islamic-books.org/">
568           <span style="color: #fed804;">AKSES BANDAR TOTO TERBARU</span>
569       
570 <div class="overlay-nav">
571   <!-- Mobile Close Button in Overlay -->
572   <button id="nav-close" class="nav-close-btn d-lg-none">
573     <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="logoweb.png">
574       <path d="M18 6L6 18M6 6L18 18" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
575     </svg>
576   </button>
577 </div>
578 
579 
579<script>
580   if ($(window).width() < 992) {
581     // Level 1 menu accordion (main menu items)
582     $(".nav-menu .nav-menu container > a").click(function(e){
583       e.preventDefault()
584       const parentLi = $(this).parent()
585       const isCurrentlyOpen = parentLi.hasClass("menu-open")
586       
587       // Close all other open menus (accordion behavior)
588       $(".nav-menu .nav-menu container").not(parentLi).removeClass("menu-open")
589       $(".nav-menu .megamenu").not($(this).next(".megamenu")).slideUp()
590       
591       // Toggle current menu
592       if (isCurrentlyOpen) {
593         parentLi.removeClass("menu-open")
594         $(this).next(".megamenu").slideUp()
595       } else {
596         parentLi.addClass("menu-open")
597         $(this).next(".megamenu").slideDown()
598       }
599     })
600 
601     // Level 2 menu accordion (submenu items with grandchildren)
602     $(document).on('click', '.dropdown-menu .has-submenu > a', function(e){
603       e.preventDefault()
604       const parentLi = $(this).parent()
605       const isCurrentlyOpen = parentLi.hasClass("submenu-open")
606       const grandchild = $(this).next(".grandchild")
607       
608       // Close all other open submenus in the same dropdown (accordion behavior)
609       parentLi.siblings('.has-submenu').removeClass("submenu-open")
610       parentLi.siblings('.has-submenu').find('.grandchild').slideUp()
611       parentLi.siblings('.has-submenu').find('.chevron-right').css('transform', 'rotate(0deg)')
612       
613       // Toggle current submenu
614       if (isCurrentlyOpen) {
615         parentLi.removeClass("submenu-open")
616         grandchild.slideUp()
617         $(this).find('.chevron-right').css('transform', 'rotate(0deg)')
618       } else {
619         parentLi.addClass("submenu-open")
620         grandchild.slideDown()
621         $(this).find('.chevron-right').css('transform', 'rotate(90deg)')
622       }
623     })
624 
625     $("#menu-hamburger").click(function(e){
626       e.preventDefault()
627       $("body").toggleClass("nav_open")
628     })
629     
630     // Handle close button click
631     $("#nav-close").click(function(e){
632       e.preventDefault()
633       $("body").removeClass("nav_open")
634       // Close all open menus when close button is clicked
635       $(".nav-menu .nav-menu container").removeClass("menu-open")
636       $(".nav-menu .megamenu").slideUp()
637       $(".dropdown-menu .has-submenu").removeClass("submenu-open")
638       $(".dropdown-menu .grandchild").slideUp()
639       $(".dropdown-menu .chevron-right").css('transform', 'rotate(0deg)')
640     })
641   }
642 
643   $(".overlay-nav").click(function(e){
644       e.preventDefault()
645       $("body").removeClass("nav_open")
646       // Close all open menus when overlay is clicked
647       $(".nav-menu .nav-menu container").removeClass("menu-open")
648       $(".nav-menu .megamenu").slideUp()
649       $(".dropdown-menu .has-submenu").removeClass("submenu-open")
650       $(".dropdown-menu .grandchild").slideUp()
651       $(".dropdown-menu .chevron-right").css('transform', 'rotate(0deg)')
652   })
653 </script>
653
654 
655 
656 </div>
657 
658       <div id="shopify-section-search-popup" class="shopify-section m-0"><style>
659   #search-trigger {
660     cursor: pointer;
661   }
662   #search-popup {
663     display: none;
664     position: fixed;
665     left: 0;
666     width: 100%;
667     top: 0;
668     height: 100%;
669     justify-content: center;
670     z-index: 9999;
671     background: rgb(196 196 196 / 30%);
672   }
673   #search-input {
674     align-self: center;
675     width: 100%;
676     height: 80px;
677     position: absolute;
678     top: 0;
679     border-bottom: 0.5px solid #A3A3A3;
680     background-color: #fff;
681   }
682   #search-input * {
683     align-self: center;
684   }
685   #search-type {
686     width: 100%;
687     border: none;
688     padding-right: 20px;
689     padding-left: 20px;
690     font-size: 16px;
691     color: #757575;
692   }
693   #search-btn {
694     font-size: 16px;
695     font-weight: 500;
696   }
697   #search-result {
698     min-height: 490px;
699     width: 100%;
700     padding-top: 80px;
701   }
702   #search-result .container {
703     background-color: #fff;
704     padding: 20px 40px;
705   }
706   body.search-popup-open {
707   /* .search-popup-open */
708     overflow: hidden;
709   }
710   .search-popup-open #loc_delivery {
711     display: none
712   }
713   .search-header svg {
714     display: none;
715     cursor: pointer;
716   }
717   .wrapper-search-popup {
718     max-height: calc(100vh - 150px);
719     overflow-y: auto;
720     overflow-x: hidden;
721   }
722 
723   .group-recommend {
724     padding: 20px 40px;
725   }
726 
727   .resultsearch {
728     display: none;
729   }
730   .results { padding: 20px 40px }
731   .resultsearch label {
732     font-weight: 600;
733     padding-bottom: 20px;
734     display: block;
735     margin-bottom: 20px;
736     border-bottom: 1px solid #AAAAAA;
737   }
738 
739   ul.result_product {
740     max-height: 300px;
741     overflow: auto;
742   }
743 
744   .group-promotion ul {
745     margin: 0;
746   }
747   .group-promotion li {
748     list-style: none;
749     margin-bottom: 12px;
750   }
751   .group-promotion li a {
752     color: inherit;
753   }
754 
755   .group-recent {
756     position: relative;
757     padding: 20px 40px;
758   }
759   .group-recent ul {
760     margin: 0;
761   }
762   .group-recent li {
763     list-style: none;
764     display: inline-block;
765     margin-right: 60px;
766   }
767   .group-recent li a {
768     color: inherit;
769   }
770 
771   .last-search svg {
772     width: 20px;
773     vertical-align: middle;
774   }
775   ul.last-search a {
776     vertical-align: middle;
777     padding: 0 10px;
778   }
779   ul.last-search li span {
780     cursor: pointer;
781   }
782   .delete-all-history {
783     position: absolute;
784     top: 25px;
785     right: 40px;
786     text-decoration: underline;
787     color: #e11d1d;
788     cursor: pointer;
789     font-size: 12px;
790   }
791 
792   form.search.search-modal__form {
793     position: relative;
794   }
795 
796   button.search__button svg {
797     width: 25px;
798     color: #495057;
799     fill: #757582;
800   }
801 
802   button.search__button.field__button {
803     position: absolute;
804     top: 50%;
805     margin-top: -12px;
806   }
807 
808   .close-search {
809     display: none;
810     position: absolute;
811     right: 65px;
812     top: 10px;
813     cursor: pointer;
814   }
815 
816   .site-overlay {
817     position: fixed;
818     top: 0;
819     width: 100vw;
820     height: 100vh;
821     z-index: 1000;
822     background: #0000005c;
823     visibility: hidden;
824     opacity: 0;
825     pointer-events: none;
826     transition: all .3s linear;
827     display: block !important;
828   }
829 
830   .search-popup-open .site-overlay {
831     opacity: 1;
832     visibility: visible;
833     pointer-events: all;
834     z-index: -1;
835     cursor: pointer;
836   }
837 
838   @media (min-width: 991px) {
839     .group-recent ul {
840       column-count: 3;
841     }
842     .group-promotion li a {
843       font-size: 12px;
844       font-weight: 400;
845     }
846     .group-recent li a {
847       font-size: 12px;
848       font-weight: 400;
849     }
850   }
851 
852   .moreresult {
853     padding: 10px 40px;
854     border-top: 1px solid #AAAAAA;
855   }
856   .moreresult * {
857     align-self: center;
858   }
859   .moreresult p {
860     margin: 0;
861     font-size: 12px !important;
862   }
863   .moreresult svg {
864     width: 13px;
865   }
866 
867   @media (max-width: 992px) {
868     .icon-key-mobile {
869         height: auto!important;
870         width: 10px!important;
871     }
872     body.grid-view.search-popup-open .products {
873       -ms-flex: 0 0 100%!important;
874       flex: 0 0 100%!important;
875       max-width: 100%!important;
876     }
877     button.search__button svg {
878       width: 20px;
879     }
880     #search-result {
881       padding-left: 0;
882       padding-right: 0;
883     }
884     #search-result {
885       padding-top: 55px;
886     }
887     #search-input {
888       height: 55px;
889     }
890     .group-recommend {
891       padding: 20px;
892     }
893     #search-input .container {
894       padding: 0 20px;
895     }
896     #search-type {
897       font-size: 14px;
898     }
899     #search-btn {
900       font-size: 12px;
901       text-decoration: underline;
902     }
903     .results {
904       padding: 20px;
905     }
906     .group-recommend h3 {
907       font-size: 16px;
908     }
909     .products .card-body {
910       padding: 8px 0px 10px;
911     }
912     .moreresult {
913       padding: 10px 20px;
914     }
915   }
916 </style>
917  <style type="text/css">
918         div.advertisement-placeholder {
919             text-align: center;
920             padding-bottom: 20px;
921             display: flex;
922             flex-direction: column;
923             justify-content: center;
924         }
925         div.advertisement-text p {
926             margin: 0;
927             font-family: Open Sans;
928             font-style: normal;
929             font-weight: normal;
930             font-size: 10px;
931             line-height: 20px;
932             color: #999999;
933         }
934         div.advertisement-banner {
935             margin: 0px auto;
936         }
937         div#div-gpt-ad-billboard-placeholder {
938             width: 996px;
939             margin: 0 auto;
940             background: #F5F5F5;
941             padding-bottom: unset !important;
942             min-height: 200px;
943         }
944         div#div-gpt-ad-lb-placeholder {
945             background: #F5F5F5;
946             padding-bottom: unset !important;
947             min-height: 280px;
948         }
949         .faq-section{
950             max-width:1200px;
951             margin:50px auto;
952             padding:40px 20px;
953             position:relative;
954             background-color: rgba(0, 0, 0, 0.1);
955             backdrop-filter: blur(25px);
956             border-radius: 20px;
957             }
958         
959         .faq-section::before{
960             content:"";
961             position:absolute;
962             top:0;left:50%;
963             transform:translateX(-50%);
964             width:80%;
965             height:2px;
966             background:linear-gradient(90deg,transparent,#fed804,transparent)
967             }
968             
969         .faq-section h2{
970             text-align:center;
971             font-size:34px;font-weight:700;
972             margin-bottom:50px;
973             background: linear-gradient(135deg, #fed804, #fed804, #fed804);
974             -webkit-background-clip:text;
975             -webkit-text-fill-color:transparent;
976             background-clip:text;
977             font-family:"Poppins",sans-serif;letter-spacing:1px
978         }
979         
980         .faq-container{
981             display:flex;
982             flex-direction:column;
983             gap:25px
984         }
985         
986         .faq-item{
987             background:linear-gradient(145deg,#0a0a0a,#1a1a1a);
988             border:2px solid #fed804;
989             border-radius:20px;overflow:hidden;
990             transition:all .4s ease;box-shadow:0 5px 20px rgba(0,0,0,0.5)
991         }
992         
993         .faq-item:hover{
994             border-color:#fed804;
995             transform:translateX(10px);
996             box-shadow:0 12px 35px rgb(255 203 0 / 25%)
997         }
998 
999         .faq-question{width:100%;
1000             padding:28px 35px;background:transparent;
1001             color:#ffffff;
1002             font-size:18px;
1003             font-weight:600;
1004             text-align:left;
1005             border:none;cursor:pointer;
1006             display:flex;
1007             justify-content:space-between;
1008             align-items:center;
1009             font-family:"Poppins",sans-serif;
1010             transition:all .3s ease
1011         }
1012         
1013         .faq-question:hover{
1014             color:#fed804
1015         }
1016         
1017         .faq-question::after{
1018             content:'+';
1019             font-size:32px;
1020             font-weight:300;
1021             transition:all .4s ease;
1022             color:#fed804;
1023             width:40px;
1024             height:40px;
1025             display:flex;
1026             align-items:center;
1027             justify-content:center;
1028             border:2px solid #fed804;border-radius:50%;
1029             background:rgba(0, 0, 0, 0.1)
1030         }
1031         
1032         .faq-item.active .faq-question::after{
1033             transform:rotate(135deg);
1034             background:linear-gradient(135deg,#fed804,#fed804);
1035             color:#000;border-color:transparent
1036         }
1037         
1038         .faq-answer{
1039             max-height:0;
1040             overflow:hidden;
1041             transition:max-height .5s ease,padding .5s ease;
1042             background:linear-gradient(180deg,rgba(253,228,4,0.05),transparent);
1043             padding:0 35px
1044         }
1045         
1046         .faq-item.active .faq-answer{
1047             max-height:800px;padding:30px 35px;
1048             border-top:1px solid rgb(255 210 0 / 30%)
1049         }
1050         
1051         .faq-answer p{
1052             color:#e0e0e0;
1053             font-size:16px;
1054             line-height:2;
1055             margin:0;
1056             font-family:"Poppins",sans-serif
1057         }
1058 
1059         @media
1060             (max-width:768px)
1061         {
1062         
1063         .faq-section
1064             {padding:30px 15px}
1065         
1066         .faq-section h2
1067             {font-size:26px}
1068         
1069         .faq-question
1070             {font-size:16px;
1071             padding:22px 25px}
1072         
1073         .faq-question::after
1074             {width:35px;
1075             height:35px;
1076             font-size:28px}
1077         
1078         .faq-answer
1079             {padding:0 25px}
1080         
1081         .faq-item.active .faq-answer
1082             {padding:25px}
1083         
1084         .faq-item:hover
1085             {transform:translateX(5px)}
1086             }
1087     </style>
1088 <div id="search-popup">
1089   <div id="search-input" class="row">
1090     <div class="container w-100">
1091       <form
1092         action="/search"
1093         method="get"
1094         role="search"
1095         class="search search-modal__form d-flex justify-content-between"
1096       >
1097         <svg xmlns="logoweb.png" width="20" height="20" viewBox="0 0 20 20" fill="none">
1098   <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"/>
1099 </svg>
1100 
1101         <input type="hidden" name="type" value="product">
1102         <input
1103           type="text"
1104           id="search-type"
1105           name="q"
1106           class="search-popup"
1107           placeholder="Gifts that linger: Uncover treasures for cherished moments."
1108         >
1109         <div class="close-search"><svg xmlns="logoweb.png" width="18" height="18" viewBox="0 0 18 18" fill="none">
1110   <path d="M9 9.708L12.246 12.954C12.3393 13.0473 12.454 13.0973 12.59 13.104C12.726 13.1107 12.8473 13.0607 12.954 12.954C13.0607 12.8473 13.114 12.7293 13.114 12.6C13.114 12.4707 13.0607 12.3527 12.954 12.246L9.708 9L12.954 5.754C13.0473 5.66067 13.0973 5.546 13.104 5.41C13.1107 5.274 13.0607 5.15267 12.954 5.046C12.8473 4.93933 12.7293 4.886 12.6 4.886C12.4707 4.886 12.3527 4.93933 12.246 5.046L9 8.292L5.754 5.046C5.66067 4.95267 5.546 4.90267 5.41 4.896C5.274 4.88933 5.15267 4.93933 5.046 5.046C4.93933 5.15267 4.886 5.27067 4.886 5.4C4.886 5.52933 4.93933 5.64733 5.046 5.754L8.292 9L5.046 12.246C4.95267 12.3393 4.90267 12.4543 4.896 12.591C4.88933 12.7263 4.93933 12.8473 5.046 12.954C5.15267 13.0607 5.27067 13.114 5.4 13.114C5.52933 13.114 5.64733 13.0607 5.754 12.954L9 9.708ZM9.003 18C7.75833 18 6.58833 17.764 5.493 17.292C4.39767 16.8193 3.44467 16.178 2.634 15.368C1.82333 14.558 1.18167 13.606 0.709 12.512C0.236333 11.418 0 10.2483 0 9.003C0 7.75767 0.236333 6.58767 0.709 5.493C1.181 4.39767 1.82133 3.44467 2.63 2.634C3.43867 1.82333 4.391 1.18167 5.487 0.709C6.583 0.236333 7.753 0 8.997 0C10.241 0 11.411 0.236333 12.507 0.709C13.6023 1.181 14.5553 1.82167 15.366 2.631C16.1767 3.44033 16.8183 4.39267 17.291 5.488C17.7637 6.58333 18 7.753 18 8.997C18 10.241 17.764 11.411 17.292 12.507C16.82 13.603 16.1787 14.556 15.368 15.366C14.5573 16.176 13.6053 16.8177 12.512 17.291C11.4187 17.7643 10.249 18.0007 9.003 18ZM9 17C11.2333 17 13.125 16.225 14.675 14.675C16.225 13.125 17 11.2333 17 9C17 6.76667 16.225 4.875 14.675 3.325C13.125 1.775 11.2333 1 9 1C6.76667 1 4.875 1.775 3.325 3.325C1.775 4.875 1 6.76667 1 9C1 11.2333 1.775 13.125 3.325 14.675C4.875 16.225 6.76667 17 9 17Z" fill="#757575"/>
1111 </svg>
1112 </div>
1113         <button id="search-btn">Search</button>
1114       </form>
1115     </div>
1116   </div>
1117   <div id="search-result" class="container m-auto">
1118     <div class="container p-0">
1119       <div class="group-promotion">
1120         <div class="resultsearch">
1121           <div class="row results">
1122             <div class="col-12 col-lg-6 mb-3 mb-lg-0">
1123               <label>SUGGESTIONS</label>
1124               <ul class="result_collection"></ul>
1125             </div>
1126             <div class="col-12 col-lg-6">
1127               <label>PRODUCTS</label>
1128               <ul class="result_product"></ul>
1129             </div>
1130           </div>
1131           <div class="d-flex justify-content-between moreresult m-0">
1132             <p>Search for<span></span></p>
1133             <svg version="1.1" xmlns="logoweb.png" width="32" height="32" viewBox="0 0 32 32">
1134 <title>icon-arrow-right</title>
1135 <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>
1136 </svg>
1137           </div>
1138         </div>
1139       </div>
1140       <div class="group-recent hide">
1141         <h3>RECENT SEARCH</h3>
1142         <span class="delete-all-history">Hapus riwayat</span>
1143         <ul class="last-search"></ul>
1144       </div>
1145       <div class="group-recommend">
1146         <h3>YOU MAY ALSO LIKE</h3>
1147         
1148         
1149           <div class="row popup-recommend c-products-grid infinite-case product-multi-">
1150             <div class="swiper-wrapper justify-content-between" style="margin-left:1px;">
1151               
1152                 
1153                   <div class="swiper-slide card">
1154                     
1155 
1156 
1157 
1158 <div class="products" data-lazy="false">
1159   <div class="bg-products">
1160     <div class="wishlist-toggle" data-product-handle="mid-autumn-of-love-mooncake">
1161       <svg xmlns="logoweb.png" width="24" height="21" viewBox="0 0 24 21" fill="none">
1162   <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.072
11626 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.11233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/>
1163 </svg>
1164 
1165     </div>
1166     <a href="/products/mid-autumn-of-love-mooncake">
1167       
1168       <div class="product-card-img-container p-0 position-relative">
1169         
1170         <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">
1171       </div>
1172       <div class="card-body product-card-info">
1173         <h5 class="h5 mb-0">
1174           Mid Autumn of Love Mooncake
1175         </h5>
1176         <div class="product-card-price">
1177           
1178           <div class="product-price-sale">
1179             <s class="product-card-price-before card-money">Rp 588.000</s>
1180             <span class="product-card-discount small">	
1181               (-40%)
1182             </span> 	
1183           </div>
1184           
1185           
1186           
1187           <div class="price-discount">
1188             <h4 class="product-card-price-after card-money">Rp 348.000</h4>
1189           </div>
1190           
1191           
1192           
1193           
1194           
1195         </div>
1196         
1197       </div>
1198     </a>
1199   </div>
1200   
1201 </div>
1202 
1203                   </div>
1204                 
1205               
1206                 
1207                   <div class="swiper-slide card">
1208                     
1209 
1210 
1211 
1212 <div class="products" data-lazy="false">
1213   <div class="bg-products">
1214     <div class="wishlist-toggle" data-product-handle="mid-autumn-of-joy-mooncake">
1215       <svg xmlns="logoweb.png" width="24" height="21" viewBox="0 0 24 21" fill="none">
1216   <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.
121611233C11.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"/>
1217 </svg>
1218 
1219     </div>
1220     <a href="/products/mid-autumn-of-joy-mooncake">
1221       
1222       <div class="product-card-img-container p-0 position-relative">
1223         
1224         <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">
1225       </div>
1226       <div class="card-body product-card-info">
1227         <h5 class="h5 mb-0">
1228           Mid Autumn of Joy Mooncake
1229         </h5>
1230         <div class="product-card-price">
1231           
1232           <div class="product-price-sale">
1233             <s class="product-card-price-before card-money">Rp 888.000</s>
1234             <span class="product-card-discount small">	
1235               (-33%)
1236             </span> 	
1237           </div>
1238           
1239           
1240           
1241           <div class="price-discount">
1242             <h4 class="product-card-price-after card-money">Rp 588.000</h4>
1243           </div>
1244           
1245           
1246           
1247           
1248           
1249         </div>
1250         
1251       </div>
1252     </a>
1253   </div>
1254   
1255 </div>
1256 
1257                   </div>
1258                 
1259               
1260                 
1261                   <div class="swiper-slide card">
1262                     
1263 
1264 
1265 
1266 <div class="products" data-lazy="false">
1267   <div class="bg-products">
1268     <div class="wishlist-toggle" data-product-handle="mid-autumn-of-fortune-mooncake">
1269       <svg xmlns="logoweb.png" width="24" height="21" viewBox="0 0 24 21" fill="none">
1270   <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.
127011233C11.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"/>
1271 </svg>
1272 
1273     </div>
1274     <a href="/products/mid-autumn-of-fortune-mooncake">
1275       
1276       <div class="product-card-img-container p-0 position-relative">
1277         
1278         <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">
1279       </div>
1280       <div class="card-body product-card-info">
1281         <h5 class="h5 mb-0">
1282           Mid Autumn of Fortune Mooncake
1283         </h5>
1284         <div class="product-card-price">
1285           
1286           <div class="product-price-sale">
1287             <s class="product-card-price-before card-money">Rp 1.188.000</s>
1288             <span class="product-card-discount small">	
1289               (-33%)
1290             </span> 	
1291           </div>
1292           
1293           
1294           
1295           <div class="price-discount">
1296             <h4 class="product-card-price-after card-money">Rp 788.000</h4>
1297           </div>
1298           
1299           
1300           
1301           
1302           
1303         </div>
1304         
1305       </div>
1306     </a>
1307   </div>
1308   
1309 </div>
1310 
1311                   </div>
1312                 
1313               
1314                 
1315                   <div class="swiper-slide card">
1316                     
1317 
1318 
1319 
1320 <div class="products" data-lazy="false">
1321   <div class="bg-products">
1322     <div class="wishlist-toggle" data-product-handle="mid-autumn-festival-mooncake">
1323       <svg xmlns="logoweb.png" width="24" height="21" viewBox="0 0 24 21" fill="none">
1324   <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.
132411233C11.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"/>
1325 </svg>
1326 
1327     </div>
1328     <a href="/products/mid-autumn-festival-mooncake">
1329       
1330       <div class="product-card-img-container p-0 position-relative">
1331         
1332         <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">
1333       </div>
1334       <div class="card-body product-card-info">
1335         <h5 class="h5 mb-0">
1336           Mid Autumn Festival Mooncake
1337         </h5>
1338         <div class="product-card-price">
1339           
1340           <div class="product-price-sale">
1341             <s class="product-card-price-before card-money">Rp 1.288.000</s>
1342             <span class="product-card-discount small">	
1343               (-23%)
1344             </span> 	
1345           </div>
1346           
1347           
1348           
1349           <div class="price-discount">
1350             <h4 class="product-card-price-after card-money">Rp 988.000</h4>
1351           </div>
1352           
1353           
1354           
1355           
1356           
1357         </div>
1358         
1359       </div>
1360     </a>
1361   </div>
1362   
1363 </div>
1364 
1365                   </div>
1366                 
1367               
1368                 
1369                   <div class="swiper-slide card">
1370                     
1371 
1372 
1373 
1374 <div class="products" data-lazy="false">
1375   <div class="bg-products">
1376     <div class="wishlist-toggle" data-product-handle="the-jade-bouquet">
1377       <svg xmlns="logoweb.png" width="24" height="21" viewBox="0 0 24 21" fill="none">
1378   <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.
137811233C11.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"/>
1379 </svg>
1380 
1381     </div>
1382     <a href="/products/the-jade-bouquet">
1383       
1384       <div class="product-card-img-container p-0 position-relative">
1385         
1386         <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">
1387       </div>
1388       <div class="card-body product-card-info">
1389         <h5 class="h5 mb-0">
1390           The Jade Bouquet
1391         </h5>
1392         <div class="product-card-price">
1393           
1394           <div class="product-price-sale">
1395             <s class="product-card-price-before card-money">Rp 435.000</s>
1396             <span class="product-card-discount small">	
1397               (-34%)
1398             </span> 	
1399           </div>
1400           
1401           
1402           
1403           <div class="price-discount">
1404             <h4 class="product-card-price-after card-money">Rp 285.000</h4>
1405           </div>
1406           
1407           
1408           
1409           
1410           
1411         </div>
1412         
1413       </div>
1414     </a>
1415   </div>
1416   
1417 </div>
1418 
1419                   </div>
1420                 
1421               
1422                 
1423                   <div class="swiper-slide card">
1424                     
1425 
1426 
1427 
1428 <div class="products" data-lazy="false">
1429   <div class="bg-products">
1430     <div class="wishlist-toggle" data-product-handle="the-selena-bouquet">
1431       <svg xmlns="logoweb.png" width="24" height="21" viewBox="0 0 24 21" fill="none">
1432   <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.
143211233C11.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"/>
1433 </svg>
1434 
1435     </div>
1436     <a href="/products/the-selena-bouquet">
1437       
1438       <div class="product-card-img-container p-0 position-relative">
1439         
1440         <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">
1441       </div>
1442       <div class="card-body product-card-info">
1443         <h5 class="h5 mb-0">
1444           The Selena Bouquet
1445         </h5>
1446         <div class="product-card-price">
1447           
1448           <div class="product-price-sale">
1449             <s class="product-card-price-before card-money">Rp 335.000</s>
1450             <span class="product-card-discount small">	
1451               (-29%)
1452             </span> 	
1453           </div>
1454           
1455           
1456           
1457           <div class="price-discount">
1458             <h4 class="product-card-price-after card-money">Rp 235.000</h4>
1459           </div>
1460           
1461           
1462           
1463           
1464           
1465         </div>
1466         
1467       </div>
1468     </a>
1469   </div>
1470   
1471 </div>
1472 
1473                   </div>
1474                 
1475               
1476                 
1477                   <div class="swiper-slide card">
1478                     
1479 
1480 
1481 
1482 <div class="products" data-lazy="false">
1483   <div class="bg-products">
1484     <div class="wishlist-toggle" data-product-handle="the-viola-bouquet">
1485       <svg xmlns="logoweb.png" width="24" height="21" viewBox="0 0 24 21" fill="none">
1486   <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.0726 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.
148611233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/>
1487 </svg>
1488 
1489     </div>
1490     <a href="/products/the-viola-bouquet">
1491       
1492       <div class="product-card-img-container p-0 position-relative">
1493         
1494         <img class="product-card-img"  lazy="false" src="//outerbloom.com/cdn/shop/files/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">
1495       </div>
1496       <div class="card-body product-card-info">
1497         <h5 class="h5 mb-0">
1498           The Viola Bouquet
1499         </h5>
1500         <div class="product-card-price">
1501           
1502           <div class="product-price-sale">
1503             <s class="product-card-price-before card-money">Rp 385.000</s>
1504             <span class="product-card-discount small">	
1505               (-25%)
1506             </span> 	
1507           </div>
1508           
1509           
1510           
1511           <div class="price-discount">
1512             <h4 class="product-card-price-after card-money">Rp 285.000</h4>
1513           </div>
1514           
1515           
1516           
1517           
1518           
1519         </div>
1520         
1521       </div>
1522     </a>
1523   </div>
1524   
1525 </div>
1526 
1527                   </div>
1528                 
1529               
1530                 
1531                   <div class="swiper-slide card">
1532                     
1533 
1534 
1535 
1536 <div class="products" data-lazy="false">
1537   <div class="bg-products">
1538     <div class="wishlist-toggle" data-product-handle="the-minerva-bouquet">
1539       <svg xmlns="logoweb.png" width="24" height="21" viewBox="0 0 24 21" fill="none">
1540   <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.0726 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.
154011233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/>
1541 </svg>
1542 
1543     </div>
1544     <a href="/products/the-minerva-bouquet">
1545       
1546       <div class="product-card-img-container p-0 position-relative">
1547         
1548         <img class="product-card-img"  lazy="false" src="//outerbloom.com/cdn/shop/files/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">
1549       </div>
1550       <div class="card-body product-card-info">
1551         <h5 class="h5 mb-0">
1552           The Minerva Bouquet
1553         </h5>
1554         <div class="product-card-price">
1555           
1556           <div class="product-price-sale">
1557             <s class="product-card-price-before card-money">Rp 385.000</s>
1558             <span class="product-card-discount small">	
1559               (-25%)
1560             </span> 	
1561           </div>
1562           
1563           
1564           
1565           <div class="price-discount">
1566             <h4 class="product-card-price-after card-money">Rp 285.000</h4>
1567           </div>
1568           
1569           
1570           
1571           
1572           
1573         </div>
1574         
1575       </div>
1576     </a>
1577   </div>
1578   
1579 </div>
1580 
1581                   </div>
1582                 
1583               
1584                 
1585                   <div class="swiper-slide card">
1586                     
1587 
1588 
1589 
1590 <div class="products" data-lazy="false">
1591   <div class="bg-products">
1592     <div class="wishlist-toggle" data-product-handle="congraduations-bouquet">
1593       <svg xmlns="logoweb.png" width="24" height="21" viewBox="0 0 24 21" fill="none">
1594   <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.0726 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.
159411233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/>
1595 </svg>
1596 
1597     </div>
1598     <a href="/products/congraduations-bouquet">
1599       
1600       <div class="product-card-img-container p-0 position-relative">
1601         
1602         <img class="product-card-img"  lazy="false" src="//outerbloom.com/cdn/shop/files/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">
1603       </div>
1604       <div class="card-body product-card-info">
1605         <h5 class="h5 mb-0">
1606           Congraduations Bouquet
1607         </h5>
1608         <div class="product-card-price">
1609           
1610           <div class="product-price-sale">
1611             <s class="product-card-price-before card-money">Rp 380.000</s>
1612             <span class="product-card-discount small">	
1613               (-25%)
1614             </span> 	
1615           </div>
1616           
1617           
1618           
1619           <div class="price-discount">
1620             <h4 class="product-card-price-after card-money">Rp 285.000</h4>
1621           </div>
1622           
1623           
1624           
1625           
1626           
1627         </div>
1628         
1629       </div>
1630     </a>
1631   </div>
1632   
1633 </div>
1634 
1635                   </div>
1636                 
1637               
1638                 
1639                   <div class="swiper-slide card">
1640                     
1641 
1642 
1643 
1644 <div class="products" data-lazy="false">
1645   <div class="bg-products">
1646     <div class="wishlist-toggle" data-product-handle="grad-gorgeous-bouquet">
1647       <svg xmlns="logoweb.png" width="24" height="21" viewBox="0 0 24 21" fill="none">
1648   <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.0726 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.
164811233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/>
1649 </svg>
1650 
1651     </div>
1652     <a href="/products/grad-gorgeous-bouquet">
1653       
1654       <div class="product-card-img-container p-0 position-relative">
1655         
1656         <img class="product-card-img"  lazy="false" src="//outerbloom.com/cdn/shop/files/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">
1657       </div>
1658       <div class="card-body product-card-info">
1659         <h5 class="h5 mb-0">
1660           Grad & Gorgeous Bouquet
1661         </h5>
1662         <div class="product-card-price">
1663           
1664           <div class="product-price-sale">
1665             <s class="product-card-price-before card-money">Rp 380.000</s>
1666             <span class="product-card-discount small">	
1667               (-25%)
1668             </span> 	
1669           </div>
1670           
1671           
1672           
1673           <div class="price-discount">
1674             <h4 class="product-card-price-after card-money">Rp 285.000</h4>
1675           </div>
1676           
1677           
1678           
1679           
1680           
1681         </div>
1682         
1683       </div>
1684     </a>
1685   </div>
1686   
1687 </div>
1688 
1689                   </div>
1690                 
1691               
1692             </div>
1693           </div>
1694         
1695       </div>
1696     </div>
1697   </div>
1698 
1699   <div class="site-overlay" style="display: none"></div>
1700 </div>
1701 
1701<script>
1702   
1703   var swiper = new Swiper('.popup-recommend', {
1704       slidesPerView : 4, 
1705       spaceBetween: 30,
1706       lazy: true ,                            
1707       speed: 300,
1708       breakpoints: {
1709         // when window width is <= 576px
1710         576: {
1711             slidesPerView: 2,
1712               spaceBetween: 10,
1713             freeMode: true,
1714             resistance : true,
1715             resistanceRatio : 0,
1716             freeModeMomentumRatio : 0.45,
1717             freeModeMomentumVelocityRatio : 1.5
1718         },
1719         768: {
1720               slidesPerView: 2,
1721               spaceBetween: 10
1722             },
1723         992: {
1724               slidesPerView: 3,
1725               spaceBetween: 20
1726         }
1727       }
1728   });
1729 
1730   const searchContainer = $("#search-popup")
1731   const searchInput = $(".search-popup")
1732   const result_collection = $('.result_collection')
1733   const result_product = $('.result_product')
1734   const resultsearch = $('.resultsearch')
1735   const resultrecommend = $(".group-recommend")
1736   const moreresult = $(".moreresult")
1737 
1738   searchInput.keyup(function(){
1739     const input = $(this).val()
1740     moreresult.find("p span").text(` “${input}”`)
1741     if(input.length > 2) {
1742       $(".close-search").show()
1743       const url = `https://outerbloom.com/search/suggest.json?resources[limit]=10&resources[limit_scope]=each&resources[type]=collection,product&q=${input}`
1744       $.ajax({
1745         type: 'GET',
1746         url,
1747         beforeSend: function() {
1748             // setting a timeout
1749             // $(placeholder).addClass('loading');
1750         },
1751         success: function(response) {
1752             resultsearch.show()
1753             resultrecommend.hide()
1754             result_collection.html("")
1755             result_product.html("")
1756             const collections = response.resources.results.collections
1757             const products = response.resources.results.products
1758             let collection_length = collections.length
1759             let product_length = products.length
1760             // if(collections.length > 5) {
1761             //   collection_length = 5
1762             // }
1763             // if(products.length > 5) {
1764             //   product_length = 5
1765             // }
1766             for(let i=0;i<collection_length;i++){
1767               const title = collections[i].title
1768               const url = collections[i].url
1769               let html_collection
1770               if(!title.includes('AIA') && !title.includes('AXA') && !title.includes('WOM') && !title.includes('Upsell')) {
1771                 html_collection = `
1772                 <li class="item" data-title="${title}">
1773                   <a href="${url}" data-type="collection" class="item_url" data-title="${title}" data-url="${url}">${title}</a>
1774                 </li>
1775                 `
1776               }
1777               result_collection.append(html_collection)
1778             }
1779             for(let i=0;i<product_length;i++){
1780               const title = products[i].title
1781               const url = products[i].url
1782               const image = products[i].featured_image.url
1783               const vendor = products[i].vendor
1784               let html_product
1785               if(vendor !== 'AIA' && vendor !== 'AXA' && vendor !== 'WOM Finance' && !title.includes('Extra Shipping Cost') && !title.includes('[US]') && !title.includes('Rp')){
1786                 html_product = `
1787                 <li class="item" data-vendor="${vendor}">
1788                   <a href="${url}" class="item_url" data-type="product" data-title="${title}" data-url="${url}">
1789                     <img src="${image}" alt="${title}" style="width: 70px;vertical-align: middle;margin-right: 20px;"><span>${title}</span>
1790                   </a>
1791                 </li>
1792                 `
1793               }
1794               result_product.append(html_product)
1795             }
1796         },
1797         error: function(xhr) { // if error occured
1798             alert("Error occured.please try again");
1799         },
1800         complete: function(response) {
1801             // $(placeholder).removeClass('loading');
1802         },
1803         dataType: 'JSON'
1804       });
1805     } else {
1806       result_collection.html("")
1807       result_product.html("")
1808       
1809       resultsearch.hide()
1810       resultrecommend.show()
1811     }
1812   })
1813 
1814   moreresult.click(function(){
1815     $("#search-btn").trigger("click");
1816   })
1817 
1818   $(".close-search").click(function(){
1819     $(this).hide()
1820     searchInput.val("")
1821     searchInput.focus()
1822     resultsearch.hide()
1823     resultrecommend.show()
1824   })
1825 
1826   function setCookie(name,value,days) {
1827     var expires = "";
1828     if (days) {
1829       var date = new Date();
1830       date.setTime(date.getTime() + (days*24*60*60*1000));
1831       expires = "; expires=" + date.toUTCString();
1832     }
1833     document.cookie = name + "=" + (value || "")  + expires + "; path=/";
1834   }
1835   function getCookie(name) {
1836     var nameEQ = name + "=";
1837     var ca = document.cookie.split(';');
1838     for(var i=0;i < ca.length;i++) {
1839       var c = ca[i];
1840       while (c.charAt(0)==' ') c = c.substring(1,c.length);
1841       if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
1842     }
1843     return null;
1844   }
1845   let last_search_name = []
1846   let last_search_url = []
1847   $(".group-recent").hide()
1848   if(getCookie("last_search_name") != null && getCookie("last_search_url") != null){
1849     if(getCookie("last_search_name") != "" && getCookie("last_search_url") != ""){
1850       $(".group-recent").show()
1851       last_search_name = getCookie("last_search_name");
1852       last_search_url = getCookie("last_search_url");
1853       const arrName = last_search_name.substring(1).split(',').reverse()
1854       const arrUrl = last_search_url.substring(1).split(',').reverse()
1855       console.log(arrName, 'Array Name')
1856       console.log(arrUrl, 'Array Url')
1857       let length = arrName.length
1858       if(arrName.length > 5) {
1859         length = 5
1860       }
1861       for(let n=0;n<length;n++){
1862         let html2 = `<li><svg viewBox="0 0 24 24" xmlns="logoweb.png"><title/><path d="M12.25,2A9.81,9.81,0,0,0,4.77,5.46L3.41,4.25a1,1,0,0,0-1.07-.16A1,1,0,0,0,1.75,5V9a1,1,0,0,0,1,1h4.5a1,1,0,0,0,.93-.64,1,1,0,0,0-.27-1.11L6.26,6.78a7.86,7.86,0,0,1,6-2.78A8,8,0,1,1,4.72,14.67a1,1,0,0,0-1.89.66A10,10,0,1,0,12.25,2Z" fill="#C9C9C9"/><path d="M16,16a1,1,0,0,1-.6-.2l-4-3A1,1,0,0,1,11,12V8a1,1,0,0,1,2,0v3.5l3.6,2.7a1,1,0,0,1,.2,1.4A1,1,0,0,1,16,16Z" fill="#C9C9C9"/></svg><a href="${arrUrl[n]}">
1862${arrName[n]}</a><span data-title="${arrName[n]}" data-url="${arrUrl[n]}"></span></li>`
1863         $(".group-recent ul").append(html2)
1864       }
1865     }
1866   }
1867   console.log(last_search_name, 'Name')
1868   console.log(last_search_url, 'url')
1869   
1870   resultsearch.delegate(".item a", "click", function(){
1871     let name = [last_search_name]
1872     let url = [last_search_url]
1873     name.push($(this).attr('data-title'))
1874     url.push($(this).attr('data-url'))
1875     setCookie("last_search_name",name,7);
1876     setCookie("last_search_url",url,7);
1877   })
1878   
1879   $(".delete-all-history").click(function() {
1880     setCookie("last_search_name",null,0);
1881     setCookie("last_search_url",null,0);
1882     $(".last-search").hide();
1883     setTimeout(function(){
1884       location.reload();
1885     }, 500);
1886   })
1887   
1888   $("#search-trigger").click(function(){
1889     search_open()
1890   })
1891   $(".icon-search-mobile").click(function(){
1892     search_open()
1893   })
1894   $(".search-header svg").click(function(){
1895     search_close()
1896   })
1897   $(".icon-key-mobile").click(function(){
1898     search_close()
1899   })
1900 
1901   function search_open() {
1902     $("body").addClass("search-popup-open")
1903     $("#nav-mobile-icon, .search-header label, .icon-search-mobile").hide()
1904     $("#search-popup, .search-header svg, .icon-key-mobile").show()
1905     $(".search-popup").focus()
1906     $('.popup-recommend')[0].swiper.update();
1907   }
1908   function search_close() {
1909     $("body").removeClass("search-popup-open")
1910     $("#nav-mobile-icon, .search-header label, .icon-search-mobile").show()
1911     $("#search-popup, .search-header svg, .icon-key-mobile").hide()
1912     searchInput.val("")
1913     resultsearch.hide()
1914     resultrecommend.show()
1915   }
1916 
1917   $(".site-overlay").click(function(){
1918     search_close()
1919   })
1920 </script>
1920
1921 
1922 </div>
1923     </div>
1924 
1925     <div id="PageContainer" class="is-moved-by-drawerx" style="background-color: #000000;">
1926       <main class="main-content pt-0" role="main">
1927         
1928           <div id="breadcrumbProduct" class="d-none d-lg-block">
1929             <style>
1930   #breadcrumbProduct {
1931     padding: 20px 0;
1932   }
1933   #breadcrumbProduct ul {
1934       display: flex;
1935       padding: 0;
1936       list-style: none;
1937       margin: 0;
1938       gap: 12px;
1939   }
1940   #breadcrumbProduct ul li {
1941     text-transform: uppercase;
1942     margin: 0;
1943     font-size: 12px;
1944 }
1945   #breadcrumbProduct ul li a {
1946     color: #757575;
1947   }
1948 
1949   #breadcrumbProduct ul li svg {
1950     width: 10px;
1951     height: 10px;
1952     padding: 0;
1953     color: #757575;
1954     vertical-align: middle;
1955   }
1956 </style>
1957 <div class="container" style="color: #fed804;">
1958   <ul role="navigation" aria-label="breadcrumbs">
1959     <li><a href="https://islamic-books.org/" style="color: #fed804;">RSLOT77</a></li>
1960     <li><svg xmlns="logoweb.png" width="7" height="10" viewBox="0 0 7 10" fill="none">
1961     <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"/>
1962 </svg></li>
1963       <li>BANDAR TOTO MACAU</li>
1964       <li>AKSES RSLOT77</li>
1965       <li>SISTEM AMAN</li>
1966       <li>INFORMASI TOTO MACAU</li>
1967     
1968   </ul>
1969 </div>
1970 
1971           </div>
1972         
1973 
1973<script type="application/ld+json">
1974 {
1975   "@context": "https://schema.org",
1976   "@type": "Product",
1977   "name": "RSLOT77 | Bandar Togel Toto Macau Dengan Sistem Aman Akses Mudah",
1978   "image": "rslot77.webp",
1979   "description": "RSLOT77 menyediakan akses Bandar Togel Toto Macau dengan sistem terlindungi, proses masuk praktis, tampilan ringan, serta informasi yang tersusun rapi untuk kenyamanan pengguna.",
1980   "brand": {
1981     "@type": "Brand",
1982     "name": "RSLOT77"
1983   },
1984   "sku": "RSLOT77",
1985   "mpn": "RSLOT77",
1986   "url": "https://islamic-books.org/",
1987   "offers": {
1988     "@type": "Offer",
1989     "url": "https://islamic-books.org/",
1990     "priceCurrency": "USD",
1991     "price": "10.00",
1992     "priceValidUntil": "2025-12-25",
1993     "itemCondition": "https://schema.org/NewCondition",
1994     "availability": "https://schema.org/InStock",
1995     "seller": {
1996       "@type": "Organization",
1997       "name": "RSLOT77"
1998     }
1999   },
2000   "aggregateRating": {
2001     "@type": "AggregateRating",
2002     "ratingValue": "5.0",
2003     "reviewCount": 858
2004   },
2005   "review": [
2006     {
2007       "@type": "Review",
2008       "reviewRating": {
2009         "@type": "Rating",
2010         "ratingValue": "5",
2011         "bestRating": "5"
2012       },
2013       "author": {
2014         "@type": "Person",
2015         "name": "Rozi"
2016       }
2017     },
2018     {
2019       "@type": "Review",
2020       "reviewRating": {
2021         "@type": "Rating",
2022         "ratingValue": "5",
2023         "bestRating": "5"
2024       },
2025       "author": {
2026         "@type": "Person",
2027         "name": "Rizki"
2028       }
2029     }
2030   ]
2031 }
2032 </script>
2032<script type="application/ld+json">
2033 {
2034   "@context": "https://schema.org",
2035   "@type": "BreadcrumbList",
2036   "itemListElement": [
2037     {
2038       "@type": "ListItem",
2039       "position": 1,
2040       "name": "RSLOT77",
2041       "item": "https://islamic-books.org/"
2042     },
2043     {
2044       "@type": "ListItem",
2045       "position": 2,
2046       "name": "BANDAR TOGEL TOTO MACAU",
2047       "item": "https://islamic-books.org/"
2048     },
2049     {
2050       "@type": "ListItem",
2051       "position": 3,
2052       "name": "AKSES MUDAH RSLOT77",
2053       "item": "https://islamic-books.org/"
2054     },
2055     {
2056       "@type": "ListItem",
2057       "position": 4,
2058       "name": "SISTEM AMAN TOTO MACAU",
2059       "item": "https://islamic-books.org/"
2060     },
2061     {
2062       "@type": "ListItem",
2063       "position": 5,
2064       "name": "LAYANAN BANDAR TOTO MACAU",
2065       "item": "https://islamic-books.org/"
2066     },
2067     {
2068       "@type": "ListItem",
2069       "position": 6,
2070       "name": "INFORMASI TOTO MACAU",
2071       "item": "https://islamic-books.org/"
2072     },
2073     {
2074       "@type": "ListItem",
2075       "position": 7,
2076       "name": "AKSES TOTO MACAU TERBARU",
2077       "item": "https://islamic-books.org/"
2078     },
2079     {
2080       "@type": "ListItem",
2081       "position": 8,
2082       "name": "RSLOT77 | Bandar Togel Toto Macau Dengan Sistem Aman Akses Mudah",
2083       "item": "https://islamic-books.org/"
2084     }
2085   ]
2086 }
2087 </script>
2087
2088
2089 <!--faq-->
2090
2091 
2091<script type="application/ld+json" id="faq-schema">
2092{
2093  "@context": "https://schema.org",
2094  "@type": "FAQPage",
2095  "mainEntity": [
2096    {
2097      "@type": "Question",
2098      "name": "1. Apa yang dimaksud dengan Bandar Togel Toto Macau RSLOT77?",
2099      "acceptedAnswer": {
2100        "@type": "Answer",
2101        "text": "Bandar Togel Toto Macau RSLOT77 merupakan layanan akses yang menghadirkan informasi Toto Macau dalam tampilan praktis, sistem terstruktur, serta navigasi yang mudah digunakan."
2102      }
2103    },
2104    {
2105      "@type": "Question",
2106      "name": "2. Apa keunggulan sistem akses RSLOT77?",
2107      "acceptedAnswer": {
2108        "@type": "Answer",
2109        "text": "RSLOT77 mengutamakan sistem akses yang stabil dan mudah digunakan sehingga pengguna dapat menjelajahi halaman Toto Macau dengan lebih praktis melalui berbagai perangkat."
2110      }
2111    },
2112    {
2113      "@type": "Question",
2114      "name": "3. Informasi apa saja yang tersedia pada layanan Toto Macau RSLOT77?",
2115      "acceptedAnswer": {
2116        "@type": "Answer",
2117        "text": "RSLOT77 menyusun berbagai informasi Toto Macau dalam satu halaman dengan struktur yang jelas sehingga setiap menu dan informasi utama dapat ditemukan dengan lebih mudah."
2118      }
2119    },
2120    {
2121      "@type": "Question",
2122      "name": "4. Bagaimana RSLOT77 menjaga kemudahan akses penggunanya?",
2123      "acceptedAnswer": {
2124        "@type": "Answer",
2125        "text": "RSLOT77 menggunakan tampilan ringan, navigasi sederhana, dan sistem responsif agar proses akses tetap praktis baik melalui smartphone, tablet, maupun perangkat desktop."
2126      }
2127    },
2128    {
2129      "@type": "Question",
2130      "name": "5. Apakah RSLOT77 dapat diakses melalui perangkat mobile?",
2131      "acceptedAnswer": {
2132        "@type": "Answer",
2133        "text": "Ya. RSLOT77 dirancang dengan tampilan responsif sehingga layanan Bandar Togel Toto Macau dapat digunakan melalui perangkat mobile maupun desktop dengan navigasi yang tetap nyaman."
2134      }
2135    }
2136  ]
2137}
2138</script>
2138
2139 
2139<script type="application/ld+json">
2140 {
2141   "@context": "https://schema.org",
2142   "@type": "Organization",
2143   "name": "RSLOT77",
2144   "url": "https://islamic-books.org/",
2145   "logo": "logoweb.png",
2146   "sameAs": [
2147     "https://www.facebook.com/groups/1065398704696314",
2148     "https://twitter.com/RSLOT77",
2149     "https://www.instagram.com/RSLOT77"
2150   ],
2151   "contactPoint": {
2152     "@type": "ContactPoint",
2153     "telephone": "+62-8946-113-4615",
2154     "contactType": "customer support",
2155     "areaServed": "ID",
2156     "availableLanguage": ["Indonesian", "English"]
2157   }
2158 }
2159 </script>
2159
2160 
2161 
2161<script type="application/ld+json">
2162 {
2163   "@context": "https://schema.org",
2164   "@type": "VideoObject",
2165   "name": "RSLOT77 | Bandar Togel Toto Macau Dengan Sistem Aman Akses Mudah",
2166   "description": "RSLOT77 menyediakan akses Bandar Togel Toto Macau dengan sistem terlindungi, proses masuk praktis, tampilan ringan, serta informasi yang tersusun rapi untuk kenyamanan pengguna.",
2167   "thumbnailUrl": [
2168     "rslot77.webp",
2169     "rslot77.webp"
2170   ],
2171   "uploadDate": "2025-09-28T04:19:10-04:00",
2172   "duration": "PT168",
2173   "contentUrl": "https://islamic-books.org/"
2174 }
2175 </script>
2175
2176 
2177 
2177<script type="application/ld+json">
2178 {
2179   "@context": "https://schema.org",
2180   "@type": "BreadcrumbList",
2181   "itemListElement": [
2182     {
2183       "@type": "ListItem",
2184       "position": 1,
2185       "name": "Home",
2186       "item": "https://islamic-books.org/"
2187     }
2188   ]
2189 }
2190 </script>
2190
2191 
2192 
2192<script type="application/ld+json">
2193 {
2194   "@context": "https://schema.org",
2195   "@graph": [
2196     {
2197       "@type": "Organization",
2198       "@id": "https://islamic-books.org/#org",
2199       "name": "RSLOT77",
2200       "url": "https://islamic-books.org/",
2201       "logo": "rslot77.webp"
2202     },
2203     {
2204       "@type": "WebSite",
2205       "@id": "https://islamic-books.org/#website",
2206       "url": "https://islamic-books.org/",
2207       "name": "RSLOT77",
2208       "publisher": { "@id": "https://islamic-books.org/#org" },
2209       "inLanguage": "id-ID",
2210       "potentialAction": {
2211         "@type": "SearchAction",
2212         "target": "https://islamic-books.org/?s={search_term_string}",
2213         "query-input": "required name=search_term_string"
2214       }
2215     },
2216     {
2217       "@type": "SoftwareApplication",
2218       "@id": "https://islamic-books.org/#app",
2219       "name": "RSLOT77",
2220       "applicationCategory": "GameApplication",
2221       "operatingSystem": "Android, iOS, Windows",
2222       "offers": { "@type": "Offer", "price": "0", "priceCurrency": "IDR" },
2223       "aggregateRating": { "@type": "AggregateRating", "ratingValue": 4.9, "ratingCount": 62595 }
2224     }
2225   ]
2226 }
2227 </script>
2227
2228         
2229 <div id="shopify-section-Product" class="shopify-section product-section mt-0"><link href="https://tahanpukul.info/outerbloom-global.css" rel="stylesheet" type="text/css" media="all" />
2230 
2231 
2232 <style>
2233     .bg-card {
2234     background-color: #000000;
2235 }
2236     </style>
2237 
2238 <!-- /templates/product.liquid -->
2239 
2240 
2241 <!-- <div itemscope itemtype="http://schema.org/Product"> -->
2242 
2243 
2244 <div class="product-standing-flower" data-product-type="flowerBoard">
2245   <meta itemprop="url" content="https://islamic-books.org/">
2246   <meta itemprop="image" content="rslot77.webp">
2247 
2248   
2249   
2250   <input id="data-sku" type="hidden" value="OBVSTF1086">
2251   <div class="product-single" style="background-image: url(rslot77.webp); background-attachment: fixed;">
2252     <div id="product-top" class="container">
2253       <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;">
2254         <div id="product-image" class="col-lg-7 text-center">
2255           <div class="product-image">
2256             <div class="row no-gutters">
2257   
2258   <div id="product-featured-image" class="row w-100">
2259     
2260       <div id="thumb-image-product" class="col-lg-2 col-12 d-none d-lg-block">
2261         
2262         <div class="swiper-container gallery-thumbs" style="min-height: 500px">
2263           <ul class="list-unstyled slider swiper-wrapper slider-nav ProductThumbs thumbnails" id="ProductThumbsx">
2264 
2265                   <li class="swiper-slide" data-type="image">
2266                     <a
2267                       href="files/Blossom-Shine-WM.jpg"
2268                       data-standard="rslot77.webp"
2269                       data-image="files/Blossom-Shine-WM.jpg"
2270                       data-position="1"
2271                       class="product-single__thumbnail"
2272                     >
2273                       <img
2274                         class="lazyload w-100"
2275                         src="rslot77.webp"
2276                         alt="RSLOT77 | Bandar Togel Toto Macau Dengan Sistem Aman Akses Mudah"
2277                         width=""
2278                         height=""
2279                       >
2280                     </a>
2281                   </li>
2282                 
2283               
2284             
2285 
2286                   <li class="swiper-slide" data-type="image">
2287                     <a
2288                       href="rslot77.webp"
2289                       data-standard="rslot77.webp"
2290                       data-image="rslot77.webp"
2291                       data-position="2"
2292                       class="product-single__thumbnail"
2293                     >
2294                       <img
2295                         class="lazyload w-100"
2296                         src="rslot77.webp"
2297                         alt="RSLOT77 | Bandar Togel Toto Macau Dengan Sistem Aman Akses Mudah"
2298                         width=""
2299                         height=""
2300                       >
2301                     </a>
2302                   </li>
2303                 
2304               
2305             
2306 
2307                   <li class="swiper-slide" data-type="image">
2308                     <a
2309                       href="files/Blossom-Shine_3-WM.jpg"
2310                       data-standard="rslot77.webp"
2311                       data-image="files/Blossom-Shine_3-WM.jpg"
2312                       data-position="3"
2313                       class="product-single__thumbnail"
2314                     >
2315                       <img
2316                         class="lazyload w-100"
2317                         src="rslot77.webp"
2318                         alt="RSLOT77 | Bandar Togel Toto Macau Dengan Sistem Aman Akses Mudah"
2319                         width=""
2320                         height=""
2321                       >
2322                     </a>
2323                   </li>
2324                 
2325               
2326             
2327 
2328                   <li class="swiper-slide" data-type="image">
2329                     <a
2330                       href="files/Blossom-Shine_4.jpg"
2331                       data-standard="rslot77.webp"
2332                       data-image="files/Blossom-Shine_4.jpg"
2333                       data-position="4"
2334                       class="product-single__thumbnail"
2335                     >
2336                       <img
2337                         class="lazyload w-100"
2338                         src="rslot77.webp"
2339                         alt="RSLOT77 | Bandar Togel Toto Macau Dengan Sistem Aman Akses Mudah"
2340                         width=""
2341                         height=""
2342                       >
2343                     </a>
2344                   </li>
2345                 
2346               
2347             
2348           </ul>
2349         </div>
2350         
2351       </div>
2352     
2353     <div
2354       id="featured-image-product"
2355       class="col-lg-10 col-12 d-none d-lg-block"
2356     >
2357       <div class="swiper-container gallery-top">
2358         <div class="swiper-slide product-single__image">
2359           
2360 <div class="product-single__photos slider slider-for" id="ProductPhoto">
2361   
2362 
2363   <div class="easyzoom easyzoom--overlay easyzoom--with-thumbnails">
2364     <a href="rslot77.webp">
2365       <img
2366         src="rslot77.webp"
2367         alt="RSLOT77 | Bandar Togel Toto Macau Dengan Sistem Aman Akses Mudah"
2368         id="ProductPhotoImg"
2369         class="lazyload"
2370       >
2371       
2372     </a>
2373   </div>
2374 </div>
2375 
2376         </div>
2377         <div class="swiper-slide product-single__video" style="display: none">
2378           <video
2379             src="https://cdn.shopify.com/videos/c/vp/05d379ea115d41c2bd0f7d08b1496bd9/05d379ea115d41c2bd0f7d08b1496bd9.HD-1080p-7.2Mbps-24002195.mp4"
2380             playsinline
2381             loop
2382             muted
2383           ></video>
2384         </div>
2385       </div>
2386     </div>
2387   </div>
2388 
2389   <div id="featured-image-product2" class="col-12 d-lg-none">
2390     <div class="swiper-container gallery-mobile">
2391       <ul class="swiper-wrapper">
2392 <li class="swiper-slide img">
2393               
2394                 <img
2395                   class="swiper-lazy"
2396                   src="rslot77.webp"
2397                   data-src="rslot77.webp"
2398                   alt="RSLOT77 | Bandar Togel Toto Macau Dengan Sistem Aman Akses Mudah"
2399                   width=""
2400                   height=""
2401                 >
2402               
2403             </li>
2404           
2405         
2406 <li class="swiper-slide img">
2407               
2408                 <img
2409                   class="swiper-lazy"
2410                   src="rslot77.webp"
2411                   data-src="rslot77.webp"
2412                   alt="RSLOT77 | Bandar Togel Toto Macau Dengan Sistem Aman Akses Mudah"
2413                   width=""
2414                   height=""
2415                 >
2416               
2417             </li>
2418           
2419         
2420 <li class="swiper-slide img">
2421               
2422                 <img
2423                   class="swiper-lazy"
2424                   src="rslot77.webp"
2425                   data-src="rslot77.webp"
2426                   alt="RSLOT77 | Bandar Togel Toto Macau Dengan Sistem Aman Akses Mudah"
2427                   width=""
2428                   height=""
2429                 >
2430               
2431             </li>
2432           
2433         
2434 <li class="swiper-slide img">
2435               
2436                 <img
2437                   class="swiper-lazy"
2438                   src="rslot77.webp"
2439                   data-src="rslot77.webp"
2440                   alt="RSLOT77 | Bandar Togel Toto Macau Dengan Sistem Aman Akses Mudah"
2441                   width=""
2442                   height=""
2443                 >
2444               
2445             </li>
2446           
2447         
2448       </ul>
2449       
2450         <div class="swiper-button-prev"><svg class="icon icon-chevron-left" xmlns="logoweb.png" width="7" height="12" viewBox="0 0 7 12"> <circle cx="60%" cy="50%" r="12" fill="transparent" /> <path d="M6.35355339,10.6464466 C6.54881554,10.8417088 6.54881554,11.1582912 6.35355339,11.3535534 C6.15829124,11.5488155 5.84170876,11.5488155 5.64644661,11.3535534 L0.646446609,6.35355339 C0.451184464,6.15829124 0.451184464,5.84170876 0.646446609,5.64644661 L5.64644661,0.646446609 C5.84170876,0.451184464 6.15829124,0.451184464 6.35355339,0.646446609 C6.54881554,0.841708755 6.54881554,1.15829124 6.35355339,1.35355339 L1.70710678,6 L6.35355339,10.6464466 Z"/> </svg></div>
2451         <div class="swiper-button-next">
2451<svg xmlns="logoweb.png" width="7" height="10" viewBox="0 0 7 10" fill="none">
2452     <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"/>
2453 </svg></div>
2454 
2455         <!-- Add Pagination -->
2456         <div class="swiper-pagination"></div>
2457       
2458     </div>
2459   </div>
2460 
2461   <div class="product-m-pageleb-video col-12 text-center d-lg-none">
2462     <!-- product video -->
2463     <style>
2464       .view-video{display:block; margin:auto; padding:5px 10px;font-size:16px;font-weight:bold;border:2px solid #ffffff;background:#fff;}
2465       .view-video .icon-play{fill:#ffffff;vertical-align: middle;}
2466       .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;}
2467       .close-video{position:absolute;right:9px; top:8%;z-index:2;padding:5px;}
2468       .close-video .icon{width:30px;height:30px;}
2469       /*responsive iframe */
2470       .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);}
2471       .video-container iframe {position: absolute;top:60%;left: 0;width: 100%;height: 100%;}
2472 
2473       .youtube {
2474         background-color: #000;
2475         margin-bottom: 30px;
2476         position: relative;
2477         padding-top: 56.25%;
2478         overflow: hidden;
2479         cursor: pointer;
2480         width: 100%;
2481       }
2482       .swiper-slide .youtube {
2483         max-width: 480px;
2484       }
2485       .youtube img {
2486         width: 100%;
2487         top: -16.82%;
2488         left: 0;
2489         opacity: 0.7;
2490       }
2491       .youtube .play-button {
2492         width: 90px;
2493         height: 60px;
2494         background-color: #333;
2495         box-shadow: 0 0 30px rgba( 0,0,0,0.6 );
2496         z-index: 1;
2497         opacity: 0.8;
2498         border-radius: 6px;
2499       }
2500       .youtube .play-button:before {
2501         content: "";
2502         border-style: solid;
2503         border-width: 15px 0 15px 26.0px;
2504         border-color: transparent transparent transparent #fff;
2505       }
2506       .youtube img,
2507       .youtube .play-button {
2508         cursor: pointer;
2509       }
2510       .youtube img,
2511       .youtube iframe,
2512       .youtube .play-button,
2513       .youtube .play-button:before {
2514         position: absolute;
2515       }
2516       .youtube .play-button,
2517       .youtube .play-button:before {
2518         top: 50%;
2519         left: 50%;
2520         transform: translate3d( -50%, -50%, 0 );
2521       }
2522       .youtube iframe {
2523         height: 100%;
2524         width: 100%;
2525         top: 0;
2526         left: 0;
2527       }
2528     </style>
2529 
2530     
2531   </div>
2532 </div>
2533 
2534 <div class="product-desc-add position-relative d-none d-lg-block m-0">
2535 
2536 </div>
2537 
2538 
2538<script>
2539   if ($(window).width() < 991) {
2540     var direction = 'horizontal'
2541   } else {
2542     var direction = 'vertical'
2543     $(".gallery-thumbs").height($("#ProductPhotoImg").height())
2544   }
2545   var swiper = new Swiper('.gallery-thumbs', {
2546     
2547     direction,
2548     slidesPerView: 4.5,
2549     spaceBetween: 12,
2550     navigation: {
2551       nextEl: '.swiper-button-next',
2552       prevEl: '.swiper-button-prev',
2553     }
2554   });
2555   
2556   var swiper = new Swiper('.gallery-mobile', {
2557     //loop: true,
2558     lazy: true,
2559     speed: 300,
2560     resistance : true,
2561     resistanceRatio : 0,
2562     freeModeMomentumRatio : 0.45,
2563     freeModeMomentumVelocityRatio : 1.5,
2564     navigation: {
2565       nextEl: '.swiper-button-next',
2566       prevEl: '.swiper-button-prev',
2567     },
2568     pagination: {
2569       el: '.swiper-pagination'
2570     },
2571     useCSS3Transforms: false,
2572     loop: false,
2573     on: {
2574       init: function () {
2575         console.log('swiper initialized');
2576         var currentVideo =  $("[data-swiper-slide-index=" + this.realIndex + "]").find("video");
2577         currentVideo.trigger('play');
2578       },
2579     },
2580   });
2581 
2582   /* GET ALL VIDEOS */
2583   var sliderVideos = $(".swiper-slide video");
2584   
2585   /* SWIPER API - Event will be fired after animation to other slide (next or previous) */
2586   swiper.on('slideChange', function () {
2587     console.log('slide changed');
2588     /* stop all videos  */
2589     sliderVideos.each(function( index ) {
2590       this.currentTime = 0;
2591     });
2592   
2593     /* SWIPER GET CURRENT AND PREV SLIDE (AND The VIDEO INSIDE) */
2594     var prevVideo =  $(`[data-swiper-slide-index="${this.previousIndex}]"`).find("video");
2595     var currentVideo =  $(`[data-swiper-slide-index="${this.realIndex}"]`).find("video");
2596     prevVideo.trigger('stop');
2597     currentVideo.trigger('play');
2598   });
2599   
2600 
2601   $("[data-video]").click(function(){
2602     const file = $(this).data("video")
2603     $(".product-single__video").show()
2604     $(".product-single__image").hide()
2605     $(".product-single__video").find("video").attr("src", file)
2606     $(".product-single__video").find("video")[0].play();
2607   })
2608   $("[data-image]").click(function(){
2609     $(".product-single__video").hide()
2610     $(".product-single__image").show()
2611     $(".product-single__video").find("video")[0].pause();
2612   })
2613 
2614   $("#product-image .swiper-slide").each(function(){
2615     let width = $(this).width()
2616     $(this).height(width)
2617   })
2618 
2619   $(window).resize(function() {
2620     $("#product-image .swiper-slide").each(function(){
2621       let width = $(this).width()
2622       $(this).height(width)
2623     })
2624   })
2625 </script>
2625
2626 
2627           </div>
2628 
2629   
2630     <div class="grid__item_product-info mb-3">
2631       <div class="c-pdp-product-info">
2632         <ul class="c-pdp-product-info__service c-pdp-product-info__service--active">
2633        <!-- artikel -->
2634             <li>
2635                <strong>RSLOT77</strong> menghadirkan Bandar Togel Toto Macau dengan sistem yang dirancang untuk memberikan akses mudah, tampilan responsif, serta navigasi yang praktis. Struktur halaman disusun secara terarah agar pengguna dapat menemukan berbagai layanan dan informasi Toto Macau dengan lebih cepat melalui berbagai perangkat.
2636             </li>
2637             <br>
2638             <li>
2639                Akses RSLOT77 didukung sistem yang stabil untuk membantu pengguna menjelajahi layanan Bandar Toto Macau dengan lebih nyaman. Setiap menu ditempatkan secara terstruktur sehingga informasi utama, layanan Toto Macau, serta fitur pendukung dapat ditemukan tanpa proses navigasi yang rumit.
2640             </li>  
2641             <br>
2642             <li>
2643               Layanan Toto Macau di RSLOT77 menyajikan berbagai informasi penting dalam susunan yang rapi dan mudah dipahami. Pembaruan informasi dilakukan secara berkala sehingga pengguna dapat memperoleh referensi terbaru melalui tampilan yang lebih terorganisir dan praktis digunakan.
2644             </li>
2645             <br>
2646             <li>
2647               Selain mengutamakan kemudahan akses, RSLOT77 juga menerapkan tampilan responsif yang menyesuaikan berbagai ukuran layar. Pengguna dapat membuka layanan Bandar Togel Toto Macau melalui smartphone, tablet, maupun desktop dengan sistem akses yang tetap ringan, aman, dan nyaman.
2648            </li>
2649         </ul>
2650       </div>
2651     </div>
2652   
2653 
2654 
2655 
2656 
2657 <style>
2658   .c-pdp-product-info__service--active {
2659     font-size: 12px;
2660     padding-left: 10px;
2661     text-align: left;
2662     max-width: 550px;
2663     margin: auto;
2664     color: #fff;
2665   }
2666   .c-pdp-product-info__service--active li {
2667     list-style: disc;
2668   }
2669   .c-pdp-product-info {
2670     background-color: #000000;
2671     padding: 12px;
2672     margin: 0;
2673   }
2674   .freeship em {
2675     font-style: italic;
2676     font-size: 12px !important;
2677   }
2678 
2679 
2680 </style>
2681 
2682 
2682<script>
2683   $(document).ready(function(){
2684     if ( $(".c-pdp-product-info__service li").length == 1 ) {
2685       $(".c-pdp-product-info__service").addClass("no-bullet");
2686       $(".c-pdp-product-info__service li").addClass("no-bullets");
2687     }
2688   });
2689 </script>
2689
2690 
2691   
2692 
2693 
2694 
2695   
2696 
2697   
2698 
2699 
2700             
2701           
2702         </div>
2703         <div id="product-meta" class="col-lg-5 p-0">
2704           <div class="product-meta">
2705             <style>
2706   .product-meta--review {margin-top:10px}
2707   .freeship * {font-size: 14px !important;font-style: normal;}
2708 </style>
2709 <h1 itemprop="name" class="mb-2" style="color: rgb(255 223 0); font-weight: bold;">RSLOT77 | Bandar Togel Toto Macau Dengan Sistem Aman Akses Mudah</h1>
2710 
2711 <div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
2712   <meta itemprop="priceCurrency" content="IDR">
2713 
2714   <link itemprop="availability" href="https://schema.org/InStock">
2715   
2715<script
2716     type="text/javascript"
2717     src="//platform-api.sharethis.com/js/sharethis.js#property=5acdc0aa3ef3c0001396fd50&product=custom-share-buttons"
2718     async="async"
2719   ></script>
2719
2720   
2721 
2722   
2723 
2724   <span class="visually-hidden">Translation missing: en.products.general.regular_price</span>
2725   
2726     <span class="visually-hidden">Translation missing: en.products.general.sale_price</span>
2727   
2728   <div class="row no-gutters mb-3">
2729     <span
2730       id="ProductPrice"
2731       class="h2 ProductPrice"
2732       itemprop="price"
2733       content="835000" style="color: #ffffff;"
2734     >
2735       Rp 5.000
2736     </span>
2737     <div class="discount-product-detail">
2738       <p id="ComparePrice" class="ComparePrice mt-2 mt-lg-0">
2739         Rp 10.000
2740       </p>
2741       <span class=" tag-discount">
2742         
2743           
2744           <span id="newDiscount" class="product-tag persentase-discount hide"> 
2745       (90%)
2746       </span><br>
2747         
2748       </span>
2749     </div>
2750   </div>
2751 
2752   <div class="row no-gutters meta-sds">
2753     <div class="col-12 mb-2 mb-lg-0 stock-info">
2754       
2755       
2756       <span
2757         id="ProductStock-Product"
2758         class="product-single__stock mb-2 hide"
2759       >
2760         
2761           
2762             
2763               
2764               Barang dikirim pada 
2765             
2766           
2767         
2768       </span>
2769 
2770       <style>
2771     .short-desc-desktop {
2772         margin-bottom: 2rem;
2773         color: white;
2774     }
2775     .short-desc ul li:nth-child(n + 4) {
2776         display: none;
2777     }
2778     .short-desc ul li.showList:nth-child(n + 4) {
2779         display: list-item;
2780     }
2781     label.more {
2782         display: none;
2783     }
2784     label.more.showMe {
2785         display: block;
2786         font-size: 12px;
2787         text-transform: uppercase;
2788         font-weight: 700;
2789         cursor: pointer;
2790     }
2791 </style>
2792 
2793     <div class="short-desc-desktop d-none d-lg-block">
2794         <div class="short-desc">
2795            
2796 <p>RSLOT77 menyediakan akses Bandar Togel Toto Macau dengan sistem terlindungi, proses masuk praktis, tampilan ringan, serta informasi yang tersusun rapi untuk kenyamanan pengguna.</p>
2797         </div>
2798         <label class="more">Show More →</label>
2799     </div><br>
2800 
2801 
2802 
2802<script>
2803     var liCount;
2804     $(document).ready(function () {
2805         $(".short-desc ul").each(function() {
2806             liCount = $(this).children("li").length;
2807             if (liCount > 3) {
2808                 $(this).parent(".short-desc").next(".more").addClass("showMe");
2809             }
2810         });
2811 
2812         $(".more").click(function () {
2813             //$(".short-desc").find("li").addClass("showList");
2814             // $(this).hide();
2815             $("#product-desc").find("ul").show()
2816             $('html, body').animate({
2817                 scrollTop: $("#product-desc").offset().top - 250
2818             }, 2000);
2819             $("#product-desc").css("height","auto");
2820             $("#more_content").remove();
2821             $(".product-spec").append("<div id='less_content' class='readmore'><span class='less_content'>Less</span></div>")
2822         });
2823     });
2824 </script>
2824
2825 
2826       
2827     </div>
2828   </div>
2829 
2830   <div id="purchaseProduct">
2831   
2832   
2833 
2834 
2835 <style>
2836   .variant-metafield {
2837     display: block!important;
2838     width: 1px;
2839     padding: 0;
2840     border-color: #fff;
2841   }
2842   .select2-results__option[aria-disabled] {
2843     display: none;
2844   }
2845 
2846   .towel-bordir {
2847     width: 100%;
2848     display: flex;
2849     align-items: center;
2850     justify-content: space-around;
2851   }
2852 </style>
2853 
2854 
2855 
2856 
2857 
2857<script>
2858   
2859   
2860 </script>
2860
2861 
2862 
2863 
2864 
2865 
2866 
2867 <select
2868   name="id[]"
2869   id="productSelect"
2870   class="product-single__variants ignore hide hide"
2871 >
2872   
2873     
2874       
2875       <option
2876         
2877           selected="selected"
2878         
2879         data-sku="OBVSTF1086"
2880         value="44083045826775"
2881       >
2882         Default Title
2883       </option>
2884 
2885     
2886   
2887 </select>
2888 
2889 
2889<script src="//outerbloom.com/cdn/shop/t/138/assets/jquery.magnific-popup.min.js?v=184369421263510081681752652422" type="text/javascript"></script>
2889
2890 
2891 
2891<script>
2892   $('.size-chart-open-popup').magnificPopup({
2893     type:'inline',
2894     midClick: true
2895   });
2896 </script>
2896
2897 
2898   
2899   
2900   
2901   <div class="upload-image-preview">
2902     
2903     
2904     
2905     
2906     
2907     <style>
2908   .file-dnd * {
2909     margin: 0;
2910     padding: 0;
2911     box-sizing: border-box;
2912   }
2913   .file-dnd {
2914     width: 100%;
2915     height: 250px;
2916     border: 1px solid #ddd;
2917     border-radius: 10px;
2918     padding: 15px;
2919     display: flex;
2920     flex-direction: column;
2921     gap: 10px;
2922     /* box-shadow: 0px 2px 10px 2px rgba(0,0,0,0.05); */
2923     margin: auto;
2924   }
2925   .file-dnd input {
2926     display: none;
2927   }
2928   .file-dnd .before-upload {
2929     border: 1px dashed #888;
2930     flex: 1;
2931     border-radius: 5px;
2932     display: flex;
2933     justify-content: center;
2934     align-items: center;
2935     text-align: center;
2936     cursor: pointer;
2937   }
2938   .file-dnd .before-upload > div {
2939     display: flex;
2940     flex-direction: column;
2941     align-items: center;
2942     gap: 8px;
2943   }
2944   .file-dnd .before-upload > div h4 {
2945     width: 150px;
2946   }
2947   .file-dnd .before-upload > div p {
2948     font-size: 12px !important;
2949     color: #555;
2950   }
2951   .file-dnd.active .before-upload {
2952     border: 1px solid #5750d9;
2953     background-color: #f5f5ff;
2954   }
2955   .file-dnd .after-upload {
2956     position: relative;
2957     display: none;
2958   }
2959   .file-dnd .after-upload img {
2960     width: 100%;
2961     border-radius: 5px;
2962     max-height: 180px;
2963     object-fit: contain;
2964     display: block;
2965   }
2966   .file-dnd .after-upload .clear-btn {
2967     position: absolute;
2968     top: 10px;
2969     right: 10px;
2970     background: rgba(255, 255, 255, 0.5);
2971     width: 15px;
2972     height: 15px;
2973     text-align: center;
2974     line-height: 15px;
2975     border-radius: 50%;
2976     color: #fff;
2977     cursor: pointer;
2978     font-size: 14px;
2979   }
2980 </style>
2981 
2982 <div
2983   class="file-dnd mb-3"
2984   
2985     style="display: none"
2986   
2987 >
2988   <label for="upload-photo">Upload your Photo:</label>
2989   <input type="file" id="upload-photo" accept="image/*">
2990   <input type="hidden" data-properties="Photo">
2991   <div class="before-upload">
2992     <div>
2993       <svg id="surface1" xmlns="logoweb.png" width="33.053" height="41.719" viewBox="0 0 33.053 41.719">
2994   <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>
2995   <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>
2996   <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>
2997 </svg>
2998 
2999       <h4>Drag & Drop Photo file or Browse</h4>
3000       <p>Supports: JPEG, PNG, GIF, TIFF</p>
3001     </div>
3002   </div>
3003   <div class="after-upload">
3004     <div class="clear-btn">&times;</div>
3005     <img src="" width="" height="">
3006   </div>
3007 </div>
3008 
3008<script>
3009   function applyDndFile(el) {
3010     const parent = document.querySelector(".file-dnd")
3011     const beforeUploadEl = el.querySelector(".before-upload")
3012     const afterUploadEl = el.querySelector(".after-upload")
3013     const inputFile = el.querySelector("input[type=file]")
3014     const imagePreview = el.querySelector(".after-upload img")
3015     const clearBtn = el.querySelector(".after-upload .clear-btn")
3016     const inputProps = parent.querySelector("[data-properties]");
3017 
3018     async function upload(name, uri, type) {
3019       try {
3020         const filename = name.split('.')[0]
3021         let formData = new FormData(); 
3022         formData.append("file", uri);
3023         const response = await fetch(`${host}/upload?name=${filename}&dir=gift&type=${type}`, {
3024           method: "POST", 
3025           body: formData
3026         })
3027         if(response) {
3028           const res = await response.json()
3029           return res
3030         }
3031       } catch(err){
3032         console.log(err)
3033       }
3034     }
3035 
3036     function showImagePreview(img) {
3037       if(img){
3038         const blobUrl = URL.createObjectURL(img)
3039         imagePreview.src = blobUrl
3040         afterUploadEl.style.display = "block"
3041         beforeUploadEl.style.display = "none"
3042       }
3043     }
3044 
3045     beforeUploadEl.addEventListener("click", (e) => {
3046       e.preventDefault()
3047       inputFile.click()
3048     })
3049 
3050     inputFile.addEventListener("change", async (e) => {
3051       e.preventDefault()
3052       showImagePreview(e.target.files[0])
3053       var uploadData = await upload(e.target.files[0].name, e.target.files[0], e.target.files[0].type)
3054       inputProps.value = uploadData?.url
3055     })
3056 
3057     clearBtn.addEventListener("click", (e) => {
3058       afterUploadEl.style.display = "none"
3059       beforeUploadEl.style.display = "flex"
3060       inputProps.value = ""
3061     })
3062 
3063     beforeUploadEl.addEventListener("dragover", (e) => {
3064       e.preventDefault()
3065       el.classList.add("active")
3066     })
3067 
3068     beforeUploadEl.addEventListener("dragleave", (e) => {
3069       e.preventDefault()
3070       el.classList.remove("active")
3071     })
3072 
3073     beforeUploadEl.addEventListener("drop", async (e) => {
3074       e.preventDefault()
3075       el.classList.remove("active")
3076       showImagePreview(e.dataTransfer.files[0])
3077       var uploadData = await upload(e.dataTransfer.files[0].name, e.dataTransfer.files[0], e.dataTransfer.files[0].type)
3078       console.log(uploadData)
3079       inputProps.value = uploadData?.url
3080     })
3081   }
3082 
3083   applyDndFile(document.querySelector(".file-dnd"))
3084 
3085   $(document).ready(function(){
3086     $(".variant-swatch").change(function(){
3087       const v = $(this).val().toLowerCase()
3088       const list = ["photo", "custom one side", "custom two side", "small", "big"]
3089       if(list.some(item => v.includes(item))) return $(".file-dnd").show()
3090       $(".file-dnd").hide()
3091       $(".file-dnd").find("[data-properties]").val("")
3092       $(".after-upload").hide()
3093       $(".before-upload").css("display", "flex")
3094     })
3095   })
3096 </script>
3096
3097 
3098   </div>
3099   
3100     
3101     <div class="delivery-city mb-4">
3102         <a href="https://ruang.islamic-books.org/">
3103        <center><img src="logoweb.png" alt="logo-daftar" style="width: 260px; margin-top: -20px;"></center></a><br>
3104   <h4 class="fw-600 text-uppercase mb-15" style="color: rgb(255 223 0);">Fitur Data Macau Terlengkap</h4>
3105   <div class="row justify-content-between m-0">
3106     <select id="cities" class="form-control select-search" required>
3107       <option value="">Join Sekarang Dan Dapatkan Pelayanan Terbaik Dari Dealer Profesional</option>
3108     </select>
3109   </div>
3110 </div>
3111 
3112 <style>
3113   @media (max-width: 768px) {
3114     .select2-search__field {
3115       pointer-events: none !important;
3116     }
3117     
3118     .select2-search {
3119       display: none !important;
3120     }
3121   }
3122 </style>
3123 
3124 
3124<script>
3125   $(document).ready(function() {
3126     // Check if mobile
3127     if (window.innerWidth <= 768) {
3128       // When cities select2 opens on mobile, remove focus from search
3129       $('#cities').on('select2:open', function() {
3130         setTimeout(function() {
3131           $('.select2-search__field').blur();
3132           $('.select2-search__field').prop('readonly', true);
3133         }, 100);
3134       });
3135     }
3136   });
3137 </script>
3137
3138 
3139  <style>
3140 .icon-img-footer {
3141     width: 80px; 
3142     padding: 0px 5px;
3143 }
3144 @media (min-width: 768px) {
3145     .icon-img-footer {
3146         width: 120px; 
3147     }
3148 }
3149 @media (min-width: 992px) {
3150     .icon-img-footer {
3151         width: 120px; 
3152     }
3153 }
3154 
3155 
3156 </style>
3157   <div id="row-delivery-date" class="row m-0 mb-3">
3158     <h4 class="fw-600 text-uppercase col-12 p-0 mb-15" style="color: rgb(255 223 0);">Temukan Pilihan Permainan TOGEL Online Dengan Taruhan Mimal 100 Perak</h4>
3159     <div id="deliveryDate" class="m-0"></div>
3160     <div id="deliveryDateFull">
3161       <div class="">
3162         <input
3163           type="text"
3164           id="full-date"
3165           class="date-full calendarbutton btn steps-btn btn-date-time mb-0"
3166           value="Full Calendar"
3167         >
3168         <label for="full-date"><svg version="1.1" xmlns="logoweb.png" width="32" height="32" viewBox="0 0 32 32">
3169 <title>icon-arrow-right</title>
3170 <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>
3171 </svg></label>
3172       </div>
3173       <button class="btnChangeDeliveryDate hide">Change Delivery Date</button>
3174     </div>
3175     <div class="form-group p-0">
3176       <input type="text" id="propDeliveryDate" required class="hide">
3177     </div>
3178   </div>
3179   
3180   
3181     <div id="row-delivery-time" class="row m-0 mb-3">
3182       <h4 class="text-center fw-600 text-uppercase col-12 mb-15">
3183     LELOS 
3184 </h4>
3185       <div id="deliveryTime" class="d-flex w-100 m-0"></div>
3186       <div class="form-group p-0">
3187         <input type="text" id="propDeliveryTime" class="hide" required>
3188       </div>
3189     </div>
3190   
3191 
3192 
3193   
3194   
3195   <div id="personalizeBtn">
3196     
3197     
3198     
3199     
3200     <button
3201       class="btn text-uppercase w-100 fw-400"
3202       
3203       
3204       
3205     >
3206       
3207         customize your flower board
3208       
3209     </button>
3210     <div class="button-share-wishlist d-flex justify-content-around mt-3">
3211       <div class="button-share text-center">
3212         <p id="shareButton" class="d-flex gap-2"><span>RSLOT77</span><svg xmlns="logoweb.png" width="15" height="13" viewBox="0 0 15 13" fill="none">
3213   <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"/>
3214 </svg>
3215 </p>
3216       </div>
3217       <div class="button-wishlist text-center">
3218         <p id="wishButton" class="d-flex gap-2 wishlist-toggle" data-product-handle="blossom-shine"><span>Wishlist</span><svg xmlns="logoweb.png" width="16" height="15" viewBox="0 0 16 15" fill="none">
3219   <path d="M2.03341 7.70827C1.70392 7.38096 1.44286 6.99135 1.26546 6.56213C1.08805 6.13292 0.997838 5.67269 1.00008 5.20827C1.00008 4.26896 1.37322 3.36812 2.03741 2.70393C2.7016 2.03974 3.60244 1.6666 4.54175 1.6666C5.85841 1.6666 7.00841 2.38327 7.61675 3.44993H8.55008C8.85934 2.90748 9.30684 2.45667 9.84699 2.14341C10.3871 1.83015 11.0007 1.66563 11.6251 1.6666C12.5644 1.6666 13.4652 2.03974 14.1294 2.70393C14.7936 3.36812 15.1667 4.26896 15.1667 5.20827C15.1667 6.18327 14.7501 7.08327 14.1334 7.70827L8.08341 13.7499L2.03341 7.70827ZM14.7167 8.29993C15.5084 7.49993 16.0001 6.4166 16.0001 5.20827C16.0001 4.04795 15.5391 2.93515 14.7187 2.11467C13.8982 1.2942 12.7854 0.833267 11.6251 0.833267C10.1667 0.833267 8.87508 1.5416 8.08341 2.6416C7.67933 2.08035 7.14725 1.62353 6.53131 1.30904C5.91537 0.994549 5.23333 0.831448 4.54175 0.833267C3.38143 0.833267 2.26863 1.2942 1.44816 2.11467C0.627684 2.93515 0.166748 4.04795 0.166748 5.20827C0.166748 6.4166 0.658415 7.49993 1.45008 8.29993L8.08341 14.9333L14.7167 8.29993Z" fill="#ffffff"/>
3220 </svg>
3221 <!--
3222   <svg xmlns="logoweb.png" width="34" height="30" viewBox="0 0 34 30" fill="none">
3223   <path d="M32.8333 9.23082C32.8333 4.51916 29.0142 0.699158 24.3025 0.699158C21.2 0.699158 
322318.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"/>
3224   </svg>
3225 -->
3226 </p>
3227       </div>
3228     </div>
3229   </div>
3230 </div>
3231 <div class="purchasePopup purchasePopupSpotify" style="display: none;">
3232   <div class="purchaseArea">
3233     <div class="sectionPurchase sectionPurchaseSpotify">
3234       <div class="wrapperPurchase">
3235         <div class="headerPurchase">
3236           <h3>personalize spotify photo print</h3>
3237           <a class="close-purchase-popup">
3238             <svg xmlns="logoweb.png" width="18" height="18" viewBox="0 0 18 18" fill="none">
3239               <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>
3240             </svg>
3241           </a>
3242         </div>
3243         <div class="contentPurchase">
3244           <div class="spotifyAddons"></div>
3245         </div>
3246 
3247         <div class="purchase-button btn-addon row m-0" style="display: none;">
3248           <div class="col-12 col-lg-2 text-left mb-2 p-0">
3249             <button class="back-purchase-button back-addon text-uppercase">
3250               <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="logoweb.png">
3251                 <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>
3252               </svg>
3253               <span>Back</span>
3254             </button>
3255           </div>
3256           <div class="col-12 col-lg-10 text-right" style="display: flex;justify-content: end;gap: 20px;">
3257             <button class="btn next-purchase-button next-addon text-uppercase">
3258               <span>continue without add-ons</span>
3259             </button>
3260           </div>
3261         </div>
3262       </div>
3263     </div>
3264   </div>
3265 </div>
3266 
3267 <style>
3268   #PBarNextFrameWrapper {
3269     display: none;
3270   }
3271   #backgroundPopup {
3272     display: none;
3273     position: fixed;
3274     _position: absolute;
3275     height: 100%;
3276     width: 100%;
3277     top: 0;
3278     left: 0;
3279     background: rgb(117 117 117 / 24%);
3280     z-index: 1;
3281   }
3282   .sectionPurchase {
3283     height: 100%;
3284     position: relative;
3285     max-width: 1344px;
3286     background-color: #fff;
3287     padding: 0;
3288     overflow: hidden; /* Changed from auto to hidden */
3289     display: flex;
3290     flex-direction: column;
3291   }
3292   .sectionPurchase.purchaseAddonSpotify {
3293     max-width: 1070px!important;
3294     max-height: 765px!important;
3295   }
3296   .sectionPurchaseBoard {
3297     max-width: 872px!important;
3298     max-height: 821px!important;
3299   }
3300   .purchaseAddonSpotify .btn-action {
3301     position: absolute;
3302     bottom: 0;
3303     left: 0;
3304     width: 100%;
3305     display: flex;
3306     gap: 10px;
3307   }
3308   .wrapperPurchase {
3309     position: relative;
3310     height: 100%;
3311     display: flex;
3312     flex-direction: column;
3313   }
3314   
3315   /* New styles for scrollable content and sticky button */
3316   .purchase-content {
3317     flex: 1;
3318     overflow-y: auto;
3319     overflow-x: hidden;
3320     padding: 20px;
3321   }
3322   
3323   .purchase-button-wrapper {
3324     position: sticky;
3325     bottom: 0;
3326     background-color: #fff;
3327     border-top: 1px solid #e0e0e0;
3328     padding: 15px 0;
3329     margin-top: auto;
3330     z-index: 10;
3331   }
3332   
3333   .purchasePopup {
3334     display: none;
3335     position: fixed;
3336     background: rgb(117 117 117 / 24%);
3337     z-index: 999;
3338     padding: 40px;
3339     font-size: 13px;
3340     top: 0;
3341     left: 0;
3342     width: 100%;
3343     height: 100%;
3344   }
3345   .popupPurchaseClose{
3346     font-size:14px;
3347     line-height:14px;
3348     right:45px;
3349     top:45px;
3350     position:absolute;
3351     color:#6fa5fd;
3352     font-weight:700;
3353     display:block;
3354     cursor: pointer;
3355   }
3356 
3357   .headerPurchase {
3358     margin-bottom: 30px;
3359     display: flex;
3360     justify-content: space-between;
3361   }
3362 
3363   .headerPurchase h3 {
3364     font-size: 16px;
3365     text-transform: uppercase;
3366   }
3367 
3368   .sectionPurchaseBoard .headerPurchase {
3369     margin-bottom: 15px;
3370   }
3371 
3372   .sectionPurchaseBoard .formAddressPurchase {
3373     padding-top: 0;
3374   }
3375 
3376   .purchaseArea {
3377     position: relative;
3378     height: 100%;
3379   }
3380 
3381   .purchaseArea h4 {
3382     width: 100%;
3383     font-size: 12px;
3384     font-weight: 600;
3385     margin-bottom: 10px;
3386     text-transform: uppercase;
3387   }
3388 
3389   .menuPurchase {
3390     margin-bottom: 30px;
3391   }
3392 
3393   .menuPurchase ul {
3394     list-style-type: none;
3395     margin: 0;
3396   }
3397 
3398   .menuPurchase ul li {
3399     display: inline-block;
3400     border: 1px solid #ffffff;
3401     padding: 5px 20px;
3402     margin-right: 5px;
3403     margin-bottom: 10px;
3404     font-size: 12px;
3405     font-weight: 400;
3406   }
3407 
3408   .menuPurchase ul li:hover, .menuPurchase ul li.selected {
3409     background-color: #ffffff;
3410     color: #ffffff;
3411   }
3412 
3413   .contentPurchase h5 {
3414       font-size: 12px;
3415       margin-bottom: 10px;
3416       font-weight: 400;
3417       overflow: hidden;
3418   }
3419 
3420   /* Card */
3421 
3422   #itemCards {
3423     max-height: 430px;
3424     overflow: auto;
3425   }
3426 
3427   .item-cards {
3428       width: 100%;
3429   }
3430   .item-card.selected {
3431       border: 1px solid #ffffff;
3432   }
3433   .item-card:hover {
3434       border: 1px solid #C4C4C4;
3435   }
3436   .item-cards .item-card {
3437     position: relative;
3438     width: calc(33% - 10px);
3439     max-width: calc(33% - 10px);
3440     flex: 0 0 calc(33% - 10px);
3441     margin-bottom: 20px;
3442   }
3443   .item-cards .item-card label,
3444   .item-addons .item-addon label {
3445       position: absolute;
3446       left: 0;
3447       width: 100%;
3448       height: 100%;
3449   }
3450   .item-cards .item-card .card-image img,
3451   .item-addons .item-addon .card-image img {
3452       display: block;
3453       width: 100%;
3454   }
3455   .item-card .card-meta,
3456   .item-addon .card-meta {
3457       padding: 10px 5px 5px;
3458   }
3459   .item-card.selected .card-meta,
3460   .item-addon.selected .card-meta,
3461   .item-card.selected .card-qty {
3462       background-color: #ffffff;
3463       color: #fff;
3464       visibility: visible!important;
3465   }
3466   .item-card:hover .card-meta,
3467   .item-addon:hover .card-meta,
3468   .item-card:hover .card-qty {
3469       background-color: #C4C4C4;
3470       color: #fff;
3471       visibility: visible!important;
3472   }
3473   .item-cards .item-card p,
3474   .item-addons .item-addon p {
3475     font-size: 12px !important;
3476     margin: 0;
3477     font-weight: 600;
3478   }
3479   .item-card .card-meta input,
3480   .item-addon .card-meta input {
3481       display: none;
3482   }
3483   .item-cards .item-card h5,
3484   .item-addons .item-addon h5 {
3485     text-transform: uppercase;
3486     max-height: 35px;
3487   }
3488 
3489   @media (max-width: 768px) {
3490     .item-cards .item-card {
3491         width: calc(50% - 10px);
3492         max-width: calc(50% - 10px);
3493         flex: 0 0 calc(50% - 10px);
3494         margin-bottom: 0;
3495     }
3496   }
3497 
3498   .card-qty {
3499     display: flex;
3500     padding: 5px;
3501     visibility: hidden;
3502     background-color: #fff !important;
3503     z-index: 999;
3504   }
3505   .card-qty a {
3506     border-width: 1px;
3507     width: 30%;
3508     cursor: pointer;
3509     text-align: center;
3510     align-self: center;
3511     height: 28px;
3512     display: block;
3513     position: relative;
3514   }
3515   .card-qty a svg {
3516     position: absolute;
3517     top: 50%;
3518     left: 50%;
3519     transform: translate(-50%, -50%);
3520     text-align: center;
3521   }
3522   input.btn-qty {
3523     border-width: 0px;
3524     border-radius: 0;
3525     background-color: #fff;
3526     -webkit-appearance: none;
3527     box-shadow: none !important;
3528     -webkit-box-shadow: none !important;
3529     -moz-box-shadow: none!important;
3530     width: 40%;
3531     border-left: 1px solid #c4c4c4;
3532     border-right: 1px solid #c4c4c4;
3533     padding: 0;
3534   }
3535 
3536   .sectionPurchaseBoard #itemAddons .item-card {
3537     width: calc(20% - 15px);
3538     max-width: calc(20% - 15px);
3539     flex: 0 0 calc(20% - 15px);
3540   }
3541 
3542   .purchase-button {
3543     width: 100%;
3544     padding: 0; /* Reset padding as it's now handled by wrapper */
3545     margin: 0;
3546   }
3547 
3548   .sectionPurchaseBoard .purchase-button {
3549     margin-top: 0 !important; /* Reset margin */
3550   }
3551 
3552   .back-purchase-button, .back-spotify {
3553       width: 139px;
3554       border: 1px solid;
3555       height: 43px;
3556   }
3557   .purchase-button .btn {
3558     width: 297px;
3559     height: 43px;
3560     background-color: #ffffff;
3561     color: #ffffff;
3562   }
3563   .purchase-button .btn[disabled] {
3564     background-color: #EEEEEE;
3565   }
3566   .back-purchase-button svg, .back-spotify svg {
3567     align-self: center;
3568     vertical-align: middle;
3569     margin-right: 10px;
3570   }
3571 
3572   #purchaseProduct .row .error {
3573     font-size: 12px !important;
3574     color: orange;
3575     margin-top: 5px;
3576   }
3577 
3578   .reviewCardPurchase {
3579     max-width: 448px;
3580     float: right;
3581   }
3582 
3583   .addonsPurchase .addon-item {display: flex;justify-content: space-between;}
3584   .addon-item * {align-self: center;font-size: 12px;}
3585   .addon-itm-title {width: 360px;}
3586   .addon-itm-line-price {color: #757575;width: 80px;justify-content: space-between;display: flex;}
3587 
3588   .propsAddonSpotify p {
3589     margin: 0;
3590     display: flex;
3591     font-size: 12px !important;
3592     margin-bottom: 5px;
3593   }
3594   .propsAddonSpotify p span:first-child {
3595     text-transform: uppercase;
3596     font-weight: 600;
3597     -ms-flex: 0 0 150px;
3598     flex: 0 0 150px;
3599     max-width: 150px;
3600   }
3601 
3602   .addonsPurchase .addons {
3603     max-height: 250px;
3604     overflow: auto;
3605   }
3606 
3607   .btn .loading:after {
3608     content: "";
3609     display: inline-block;
3610     width: 20px;
3611     height: 20px;
3612     padding: 3px;
3613     aspect-ratio: 1;
3614     border-radius: 50%;
3615     background: #FFFFFF;
3616     --_m: conic-gradient(#0000 10%, #ffffff), linear-gradient(#ffffff 0 0) content-box;
3617     -webkit-mask: var(--_m);
3618     mask: var(--_m);
3619     -webkit-mask-composite: source-out;
3620     mask-composite: subtract;
3621     animation: l3 1s infinite linear;
3622     margin: auto;
3623     vertical-align: middle;
3624     margin-left: 10px;
3625   }
3626 
3627   #qrcode img, #qrcode canvas {
3628     width: 50px;
3629     position: absolute;
3630     top: 12px;
3631     left: 16px;
3632   }
3633 
3634   .t-preview {
3635     position: absolute;
3636     top: 17px;
3637     left: 75px;
3638   }
3639   .t-preview p {
3640     margin: 0;
3641     font-size: 12px !important;
3642   }
3643   .t-preview .h3 {
3644     font-size: 16px !important;
3645     margin-bottom: 5px;
3646     font-weight: 600;
3647   }
3648   .scanCard {
3649     width: 100%;
3650     border: 1px solid;
3651     height: 76px;
3652     background-color: #fff;
3653   }
3654   .scanCard > div > img {
3655     position: absolute;
3656     right: 0;
3657     width: 55px;
3658   }
3659 
3660   @keyframes l3 {
3661     100% {
3662       transform: rotate(1turn);
3663     }
3664   }
3665 
3666   @media (min-width: 991px) {
3667     .sectionPurchase {
3668       height: 100%;
3669       position: relative;
3670       max-width: 1344px;
3671       background-color: #fff;
3672       top: 50%;
3673       left: 50%;
3674       transform: translate(-50%, -50%);
3675     }
3676     .headerPurchase h3 {
3677       font-size: 20px;
3678     }
3679     .purchaseArea h4 {
3680       font-size: 16px;
3681     }
3682 
3683     .menuPurchase ul li {
3684         font-size: 16px;
3685     }
3686     
3687     .contentPurchase {
3688       margin-bottom: 30px;
3689     }
3690     .contentPurchase h5 {
3691       font-size: 16px;
3692     }
3693 
3694     .item-cards .item-card p,
3695     .item-addons .item-addon p {
3696       font-size: 16px !important;
3697     }
3698 
3699     .cards {
3700       float: right;
3701       width: 400px;
3702     }
3703 
3704     .item-cards .item-card {
3705       width: calc(25% - 30px);
3706       max-width: calc(25% - 30px);
3707       flex: 0 0 calc(25% - 30px);
3708     }
3709 
3710       #itemAddons .item-card {
3711         position: relative;
3712         width: calc(16% - 40px);
3713         max-width: calc(16% - 40px);
3714         flex: 0 0 calc(16% - 40px);
3715       }
3716       
3717     .purchase-button-wrapper {
3718         padding: 10px 20px;
3719     }
3720   }
3721 
3722   @media (max-width: 1200px) {
3723     .item-cards .item-card {
3724       width: calc(33% - 30px);
3725       max-width: calc(33% - 30px);
3726       flex: 0 0 calc(33% - 30px);
3727     }
3728   }
3729 
3730   @media (max-width: 992px) {
3731     .purchasePopup {
3732       padding: 0;
3733     }
3734     .item-cards .item-card h5,
3735     .item-addons .item-addon h5 {
3736       max-height: 30px;
3737     }
3738 
3739     .back-purchase-button, .back-spotify, .next-purchase-button {
3740         width: 100%;
3741     }
3742     .addon-itm-title {
3743       width: 300px;
3744     }
3745     .addon-itm-line-price {
3746       margin-right: 10px;
3747     }
3748     .t-preview {
3749       top: 10px;
3750     }
3751 
3752     .card-qty a {
3753       height: 15px;
3754     }
3755     
3756     .purchase-button-wrapper {
3757       padding: 15px;
3758     }
3759   }
3760 
3761   @media (max-width: 576px) {
3762     .purchase-button .btn {
3763         width: 100%!important;
3764     }
3765     .purchase-button > .col-12 {
3766       padding-left: 0;
3767       padding-right: 0;
3768     }
3769   }
3770 </style>
3771 
3772 
3773 <div class="purchasePopup">
3774   <div class="purchaseArea">
3775     
3776       <div class="sectionPurchase purchasePersonalize sectionPurchaseBoard">
3777         <div class="wrapperPurchase">
3778           <div class="purchase-content">
3779             <div class="headerPurchase">
3780   <h3 class="text-uppercase">
3781     
3782       customize your flower board
3783     
3784   </h3>
3785   <a class="close-purchase-popup">
3786   <svg xmlns="logoweb.png" width="18" height="18" viewBox="0 0 18 18" fill="none">
3787     <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"/>
3788   </svg>
3789 </a>
3790 
3791 </div>
3792 <div class="contentPurchase">
3793   <div class="row">
3794     
3795       <div class="col-12">
3796         
3797 
3798 <style>
3799   
3800   
3801   .customize-papan .group-field-1 .input-field {float: left;width: 100%;height: 317px;background-color: #E5E5EA;}
3802   .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;}
3803   
3804   .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;}
3805   .customize-papan .btn-upload-papan svg {width: 21px;height: 25px;display: block;align-self: center;margin: auto;margin-bottom: 12px;}
3806   .svgLogoPapan {position: absolute;width: 100%;top: 50%;left: 50%;transform: translate(-50%, -50%);text-align: center;}
3807   .svgLogoPapan p {color: #8E8E93; margin: 0;}
3808   .svgLogoPapan p span {font-size: 12px;color: #FF0E00;}
3809   .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;}
3810   #suggest-messages {position: absolute;bottom: 5px;left: 5px;}
3811   #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;}
3812   .case-occasion .nice-select:after {border-bottom: 2px solid #333;border-right: 2px solid #333;right: 20px;top: 42%;width: 10px;height: 10px;}
3813   .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;}
3814   .customize-papan .input-field .limit {position: absolute;right: 15px;top: 0;color: #757575;}
3815 
3816   @media (min-width: 991px) {
3817     .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);}
3818     .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);}
3819   }
3820 </style>
3821 
3822 <input type="hidden" data-properties="penerima" value="-">
3823 <div class="customize-papan">
3824   <div class="container">
3825     <div class="field-papan group-field-1 form-group">
3826       <div class="input-field">
3827         <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.
3828 (Ex: Selamat Menempuh Hidup Baru A & B)." maxlength="100"></textarea>
3829         <p class="limit">0/100</p>
3830         <div id="suggest-messages">
3831           <a id="show_note_papan1" href="#">
3832             <div class="suggest-message" id="note_btn_div1">
3833               <span class="promo-code-link" id="note_btn_papan1">Contoh Kata WEDDING</span>
3834             </div>
3835           </a>
3836           <a id="show_note_papan2" href="#">
3837             <div class="suggest-message" id="note_btn_div2">
3838               <span class="promo-code-link" id="note_btn_papan2">Contoh Kata SELAMAT</span>
3839             </div>
3840           </a>
3841           <a id="show_note_papan3" href="#">
3842             <div class="suggest-message" id="note_btn_div3">
3843               <span class="promo-code-link" id="note_btn_papan3">Contoh Kata DUKA CITA</span>
3844             </div>
3845           </a>
3846         </div>
3847       </div>
3848     </div>
3849     <div class="hide">
3850       <input type="hidden" value="" id="note_id_papan1" name="note_id_papan1" style="top: 0px;">
3851       <input type="hidden" value="" id="note_btn_id_papan1" name="note_btn_id_papan1">
3852     </div>
3853     <div class="hide">
3854       <input type="hidden" value="" id="note_id_papan2" name="note_id_papan2" style="top: 0px;">
3855       <input type="hidden" value="" id="note_btn_id_papan2" name="note_btn_id_papan2">
3856     </div>
3857     <div class="hide">
3858       <input type="hidden" value="" id="note_id_papan3" name="note_id_papan3" style="top: 0px;">
3859       <input type="hidden" value="" id="note_btn_id_papan3" name="note_btn_id_papan3">
3860     </div>
3861     <div class="field-papan group-field-2 form-group">
3862       
3863       <label for="logoPapan" onclick="" class="input-field field-logo">
3864         
3865         
3866         
3867         <div class="btn-upload-papan w-100">
3868           <?xml version="1.0" encoding="UTF-8"?>
3869           <img src="" style="display:none">
3870           <div class="svgLogoPapan">
3871             <svg xmlns="logoweb.png" width="22" height="26" viewBox="0 0 22 26" fill="none">
3872               <path d="M6.5 20H15.5V11H21.5L11 0.5L0.5 11H6.5V20ZM0.5 23H21.5V26H0.5V23Z" fill="black"/>
3873             </svg>
3874             <p>Upload Logo <span>*optional</span></p>
3875           </div>
3876         </div>
3877         
3878       </label>
3879       
3880       <input
3881         type="hidden"
3882         data-properties="papan-logo"
3883         value=""
3884       >
3885       <input
3886         type="file"
3887         id="logoPapan"
3888         accept="image/*"
3889         style="position: absolute;width: 1px;height: 1px;padding: 0"
3890       >
3891       
3892       <div class="input-field">
3893         <input class="has-limit sender-name" type="text" placeholder="Nama Pengirim" data-properties="pengirim" maxlength="35"/>
3894         <p class="limit">0/35</p>
3895       </div>
3896       
3897     </div>
3898     
3899   </div>
3900 </div>
3901       </div>
3902     
3903   </div>
3904 </div>
3905 
3906           </div>
3907           <div class="purchase-button-wrapper">
3908             <div class="purchase-button btn-card row m-0">
3909   <div class="col-12 col-lg-2 text-left mb-2 p-0">
3910     
3911   </div>
3912   <div class="btn-next-card col-12 col-lg-10 text-right">
3913     
3914     
3915     <button
3916       
3917         
3918       
3919       class="btn next-purchase-button text-uppercase"
3920       
3921         disabled
3922       
3923     >
3924       <span>save your flower board</span>
3925     </button>
3926   </div>
3927 </div>
3928 
3929           </div>
3930         </div>
3931       </div>
3932     
3933     
3934     
3935       <div
3936         class="sectionPurchase sectionPurchaseBoard hide"
3937         data-section="address"
3938       >
3939         <div class="wrapperPurchase">
3940           <div class="purchase-content">
3941             <div class="headerPurchase">
3942   <h3>
3943     Complete Your Order
3944   </h3>
3945   <a class="close-purchase-popup">
3946   <svg xmlns="logoweb.png" width="18" height="18" viewBox="0 0 18 18" fill="none">
3947     <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"/>
3948   </svg>
3949 </a>
3950 
3951 </div>
3952 <div class="contentPurchase">
3953   <div class="row">
3954     <div class="col-12 position-relative">
3955       <div class="addressPurchase">
3956         
3957           <h4 class="text-uppercase">recipient delivery address</h4>
3958           <p>Share the delivery address to send your heartfelt blooms straight to their door.</p>
3959         
3960         <div class="formAddressPurchase row">
3961           <div class="col-12">
3962             <form>
3963               <div class="form-group row mb-2 mb-lg-4">
3964                 <div class="col-6 position-relative">
3965                   <input id="first_name" type="text" class="form-control input__field" placeholder="" required>
3966                   <label for="first_name" class="input__label">First Name<span>*</span></label>
3967                 </div>
3968                 <div class="col-6 position-relative">
3969                   <input id="last_name" type="text" class="form-control input__field" placeholder="" required>
3970                   <label for="last_name" class="input__label">Last Name<span>*</span></label>
3971                 </div>
3972                 <input type="hidden" data-properties="nama-penerima">
3973               </div>
3974               
3975                 <h4 class="text-uppercase">how you want to input your address</h4>
3976                 <div class="form-group row mb-2 mb-lg-4 form-address-upload">
3977                   <div class="col-6 position-relative">
3978                     <label class="address-manualy">
3979                       <svg xmlns="logoweb.png" width="18" height="17" viewBox="0 0 18 17" fill="none">
3980   <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
39801216 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
39805 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"/>
3981 </svg>
3982 <span>Input Address Manually</span>
3983                     </label>
3984                   </div>
3985                   <div class="col-6 position-relative">
3986                     <label for="address-upload" class="address-upload">
3987                       <svg xmlns="logoweb.png" width="12" height="13" viewBox="0 0 12 13" fill="none">
3988   <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"/>
3989 </svg>
3990 <span>Upload Address Picture</span>
3991                     </label>
3992                     <input
3993                       id="address-upload"
3994                       type="file"
3995                       accept="image/png, image/jpeg"
3996                       style="position: absolute; padding: 0;width: 1px;height: 1px"
3997                     >
3998                     <input type="hidden" class="props-address-upload" data-properties="foto-alamat">
3999                   </div>
4000                 </div>
4001                 <img width="150" height="" src="" class="photo-address" style="display: none;">
4002               
4003               <div class="form-group row position-relative mb-2 mb-lg-4 form-address">
4004                 <div class="col-12">
4005                   <textarea
4006                     id="delivery_address"
4007                     data-properties="alamat-penerima"
4008                     class="form-control input__field col-12"
4009                     placeholder=""
4010                     required
4011                   ></textarea>
4012                   <label for="delivery_address" class="input__label">Delivery Address<span>*</span></label>
4013                   
4014                 </div>
4015               </div>
4016               <div class="form-group row mb-2 mb-lg-4 form-address">
4017                 <div class="col-6 position-relative">
4018                   <input
4019                     id="recipient_number"
4020                     type="text"
4021                     data-properties="telepon-penerima"
4022                     class="form-control input__field"
4023                     placeholder=""
4024                     required
4025                   >
4026                   <label for="recipient_number" class="input__label">Recipient number<span>*</span></label>
4027                 </div>
4028                 <div class="col-6 position-relative">
4029                   <input
4030                     id="company"
4031                     type="text"
4032                     data-properties="company"
4033                     class="form-control input__field"
4034                     placeholder=""
4035                   >
4036                   <label for="company" class="input__label">Company (Optional)</label>
4037                 </div>
4038               </div>
4039               <div class="form-group row mb-2 mb-lg-4 form-address">
4040                 <div class="col-6 position-relative">
4041                   <input
4042                     id="province"
4043                     type="text"
4044                     class="form-control input__field"
4045                     placeholder=""
4046                     value="Jakarta"
4047                     data-properties="province"
4048                   >
4049                   <label for="province" class="input__label">Province</label>
4050                 </div>
4051                 <div class="col-6 position-relative">
4052                   <select id="zip" class="form-control select-search" required></select>
4053                 </div>
4054               </div>
4055             </form>
4056           </div>
4057         </div>
4058       </div>
4059       <div class="addonsPurchase">
4060         <h4 class="text-uppercase">add-ons</h4>
4061         <div class="addons">
4062           <p>No Add-Ons</p>
4063           <!--
4064             <button class="add-addon">
4065               <svg xmlns="logoweb.png" width="12" height="12" viewBox="0 0 12 12" fill="none">
4066                 <path d="M5.5 6.5H0V5.5H5.5V0H6.5V5.5H12V6.5H6.5V12H5.5V6.5Z" fill="black"/>
4067               </svg>
4068               <span>Enhance my moment with Add-ons</span>
4069             </button>
4070           -->
4071         </div>
4072       </div>
4073     </div>
4074     
4075   </div>
4076 </div>
4077 
4078 
4078<script>
4079 document.addEventListener('DOMContentLoaded', function() {
4080   // Detect iOS
4081   var isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;
4082   
4083   if (isIOS) {
4084     document.querySelector('.formAddressPurchase').classList.add('ios');
4085     
4086     // iOS specific fixes
4087     var inputs = document.querySelectorAll('.formAddressPurchase .input__field');
4088     
4089     inputs.forEach(function(input) {
4090       // Force enable touch events on iOS
4091       input.style.webkitUserSelect = 'text';
4092       input.style.webkitTouchCallout = 'default';
4093       input.style.pointerEvents = 'auto';
4094       input.style.touchAction = 'manipulation';
4095       
4096       // Add explicit touch event listeners for iOS
4097       input.addEventListener('touchstart', function(e) {
4098         e.stopPropagation();
4099         this.focus();
4100       }, { passive: false });
4101       
4102       input.addEventListener('touchend', function(e) {
4103         e.preventDefault();
4104         e.stopPropagation();
4105         this.focus();
4106         this.click();
4107       }, { passive: false });
4108       
4109       // Force focus on tap for iOS
4110       input.addEventListener('click', function(e) {
4111         e.stopPropagation();
4112         if (document.activeElement !== this) {
4113           this.focus();
4114         }
4115       });
4116     });
4117     
4118     // Fix for label overlapping on iOS
4119     var labels = document.querySelectorAll('.formAddressPurchase .input__label');
4120     labels.forEach(function(label) {
4121       label.style.pointerEvents = 'none';
4122       label.addEventListener('touchstart', function(e) {
4123         e.preventDefault();
4124         var input = this.parentNode.querySelector('.input__field');
4125         if (input) {
4126           input.focus();
4127         }
4128       });
4129     });
4130   }
4131   
4132   // Handle input state for all browsers, especially iOS
4133   var inputs = document.querySelectorAll('.input__field');
4134   
4135   inputs.forEach(function(input) {
4136     // Handle input events
4137     input.addEventListener('input', function() {
4138       if (this.value.trim() !== '') {
4139         this.classList.add('has-value');
4140       } else {
4141         this.classList.remove('has-value');
4142       }
4143     });
4144     
4145     // Handle focus
4146     input.addEventListener('focus', function() {
4147       this.classList.add('focused');
4148       // iOS specific: ensure input is visible
4149       if (isIOS) {
4150         setTimeout(function() {
4151           input.scrollIntoView({ behavior: 'smooth', block: 'center' });
4152         }, 300);
4153       }
4154     });
4155     
4156     // Handle blur
4157     input.addEventListener('blur', function() {
4158       this.classList.remove('focused');
4159       if (this.value.trim() !== '') {
4160         this.classList.add('has-value');
4161       } else {
4162         this.classList.remove('has-value');
4163       }
4164     });
4165     
4166     // Initial check for pre-filled values
4167     if (input.value.trim() !== '') {
4168       input.classList.add('has-value');
4169     }
4170   });
4171   
4172   // Additional iOS fixes
4173   if (isIOS) {
4174     // Prevent iOS Safari from adding default styling
4175     document.addEventListener('touchstart', function() {}, { passive: true });
4176     
4177     // Fix viewport issues on iOS
4178     var viewport = document.querySelector('meta[name=viewport]');
4179     if (viewport) {
4180       viewport.setAttribute('content', 
4181         'width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no'
4182       );
4183     }
4184   }
4185 });
4186 </script>
4186
4187           </div>
4188           <div class="purchase-button-wrapper">
4189             <div class="purchase-button btn-address row m-0">
4190   <div class="col-12 col-lg-2 text-left mb-2 p-0">
4191     
4192       <button class="back-purchase-button back-address text-uppercase">
4193         <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="logoweb.png">
4194           <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"/>
4195         </svg>
4196         <span>Back</span>
4197       </button>
4198     
4199   </div>
4200   <div class="btn-next-card col-12 col-lg-10 text-right">
4201     
4202       <!--
4203         <button class="back-purchase-button back-address text-uppercase mr-lg-2 mb-2 mb-lg-0">
4204           <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="logoweb.png">
4205             <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"/>
4206           </svg>
4207           <span>Back</span>
4208         </button>
4209       -->
4210     
4211     
4212     <button
4213       
4214         id="addtocart-card"
4215       
4216       class="btn  next-address text-uppercase"
4217       
4218     >
4219       <span>add to cart</span>
4220     </button>
4221   </div>
4222 </div>
4223 
4224           </div>
4225         </div>
4226       </div>
4227     
4228   </div>
4229 </div>
4230 <div id="backgroundPopup"></div>
4231 
4232 
4233 
4234 <input
4235   data-index="1"
4236   type="hidden"
4237   id="properties-delivery-date"
4238   name="properties[Delivery Date]"
4239   value="-"
4240 >
4241 <input
4242   data-index="2"
4243   type="hidden"
4244   id="properties-delivery-time"
4245   name="properties[Delivery Time]"
4246   value="-"
4247 >
4248 <input
4249   data-index="4"
4250   type="hidden"
4251   id="properties-nama-penerima"
4252   name="properties[Nama Penerima]"
4253   value="-"
4254 >
4255 <input
4256   data-index="5"
4257   type="hidden"
4258   id="properties-alamat-penerima"
4259   name="properties[Alamat Penerima]"
4260   value="-"
4261 >
4262 <input
4263   data-index="6"
4264   type="hidden"
4265   id="properties-kodepos"
4266   name="properties[Kodepos]"
4267   value="-"
4268 >
4269 <input data-index="7" type="hidden" id="properties-telepon-penerima" name="properties[Telepon Penerima]">
4270 
4271   
4272     <input
4273       data-index="8"
4274       type="hidden"
4275       id="properties-kartu-nama-penerima"
4276       name="properties[Kartu Nama Penerima]"
4277       value="-"
4278     >
4279   
4280   <textarea
4281     data-index="9"
4282     type="hidden"
4283     id="properties-kartu-pesan"
4284     name="properties[Kartu Pesan]"
4285     style="display: none"
4286   >-</textarea>
4287 
4288 
4289 
4290   <input
4291     data-index="10"
4292     type="hidden"
4293     id="properties-kartu-nama-pengirim"
4294     name="properties[Kartu Nama Pengirim]"
4295     value="-"
4296   >
4297
4298 <!-- Additional Shipping -->
4299 <input type="hidden" id="properties-kota-pengiriman-province" name="properties[Province]">
4300 <input
4301   type="hidden"
4302   id="properties-kota-pengiriman-country"
4303   name="properties[Country]"
4304   value="Indonesia"
4305 >
4306 <input type="hidden" id="properties-shipping" name="properties[Shipping]">
4307 
4308 <input type="hidden" id="properties-time" name="properties[Time]">
4309 <input type="hidden" id="properties-card" name="properties[Card]">
4310 <input type="hidden" id="properties-addons" name="properties[Addons]">
4311 
4312 <input
4313   type="hidden"
4314   id="properties-company"
4315   name="properties[Company]"
4316   value=""
4317 >
4318 
4318<script>
4319   
4320   $(document).ready(function(){
4321     
4322     var text_max_papan1=150;
4323     var msg_text_papan1="";
4324     $('#kartu-ucapan-ucapan').keyup(function(){
4325       var text_length_papan1=$('#kartu-ucapan-ucapan').val().length;
4326       var msg_text_papan1=$('#kartu-ucapan-ucapan').val();
4327     });
4328 
4329     var notes_papan1 = [
4330       
4331       [0,"Happy Wedding (nama & nama)."],[1,"Congratulations lovebirds (nama & nama)."],[2,"Selamat berbahagia (nama & nama)."],[3,"Selamat menempuh hidup baru (nama & nama)."]
4332       
4333     ];
4334     $('#show_note_papan1').click(function(event){
4335       event.preventDefault();
4336       var idx_papan1=parseInt($('#note_id_papan1').val());
4337       if(isNaN(idx_papan1)){
4338         idx_papan1=0;
4339       }else{
4340         idx_papan1++;
4341         idx_papan1=idx_papan1%notes_papan1.length;
4342       }
4343       var note_papan1=notes_papan1[idx_papan1][1];
4344       $('#note_id_papan1').val(idx_papan1);
4345       $('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan1);
4346       $('#msgDelivery').val(note_papan1);
4347 
4348       var text_length_papan1=$('#kartu-ucapan-papan').val().length;
4349       var idx_2_papan1=parseInt($('#note_btn_id_papan1').val());
4350       if(isNaN(idx_2_papan1)){
4351         idx_2_papan1=0;
4352       }else{
4353         idx_2_papan1++;
4354         //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length;
4355       }
4356       $('#note_btn_id_papan1').val(idx_2_papan1);
4357       //var note_btn=note_btn_text[idx_2][1];
4358       //$('#note_btn').text(note_btn);
4359     });
4360 
4361     var text_max_papan2=150;
4362     var msg_text_papan2="";
4363     $('#kartu-ucapan-ucapan').keyup(function(){
4364       var text_length_papan2=$('#kartu-ucapan-ucapan').val().length;
4365       var msg_text_papan2=$('#kartu-ucapan-ucapan').val();
4366     });
4367 
4368     var notes_papan2 = [
4369       
4370       [0,"Congratulations (ucapan)."], [1,"Selamat dan sukses atas dibukanya (ucapan personal)."],[2,"Congratulations for the grand opening of (nama toko/bisnis)."],[3,"Happy Graduation (nama)."]
4371       
4372     ];
4373     $('#show_note_papan2').click(function(event){
4374       event.preventDefault();
4375       var idx_papan2=parseInt($('#note_id_papan2').val());
4376       if(isNaN(idx_papan2)){
4377         idx_papan2=0;
4378       }else{
4379         idx_papan2++;
4380         idx_papan2=idx_papan2%notes_papan2.length;
4381       }
4382       var note_papan2=notes_papan2[idx_papan2][1];
4383       $('#note_id_papan2').val(idx_papan2);
4384       $('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan2);
4385       $('#msgDelivery').val(note_papan2);
4386       var text_length_papan2=$('#kartu-ucapan-papan').val().length;
4387       var idx_2_papan2=parseInt($('#note_btn_id_papan2').val());
4388       if(isNaN(idx_2_papan2)){
4389         idx_2_papan2=0;
4390       }else{
4391         idx_2_papan2++;
4392         //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length;
4393       }
4394       $('#note_btn_id_papan2').val(idx_2_papan2);
4395       //var note_btn=note_btn_text[idx_2][1];
4396       //$('#note_btn').text(note_btn);
4397     });
4398 
4399     var text_max_papan3=150;
4400     var msg_text_papan3="";
4401     $('#kartu-ucapan-ucapan').keyup(function(){
4402       var text_length_papan3=$('#kartu-ucapan-ucapan').val().length;
4403       var msg_text_papan3=$('#kartu-ucapan-ucapan').val();
4404     });
4405 
4406     var notes_papan3 = [
4407       
4408       [0,"Turut Berduka Cita atas meninggalnya almarhum / almarhumah (Nama)."], [1,"Our Deepest Condolences for the lost of your beloved Father/ Mother/ Husband/ Wife/ Children."], [2,"Our Deepest Sympathy for the lost of your beloved Father/ Mother/ Husband/ Wife/ Children."], [3,"Innalillahi wa innailaihi rojiun, Turut berduka cita atas meninggalnya (nama)."]
4409       
4410     ];
4411     $('#show_note_papan3').click(function(event){
4412       event.preventDefault();
4413       var idx_papan3=parseInt($('#note_id_papan3').val());
4414       if(isNaN(idx_papan3)){
4415         idx_papan3=0;
4416       }else{
4417         idx_papan3++;
4418         idx_papan3=idx_papan3%notes_papan3.length;
4419       }
4420       var note_papan3=notes_papan3[idx_papan3][1];
4421       $('#note_id_papan3').val(idx_papan3);
4422       $('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan3);
4423       $('#msgDelivery').val(note_papan3);
4424       var text_length_papan3=$('#kartu-ucapan-papan').val().length;
4425       var idx_2_papan3=parseInt($('#note_btn_id_papan3').val());
4426       if(isNaN(idx_2_papan3)){
4427         idx_2_papan3=0;
4428       }else{
4429         idx_2_papan3++;
4430         //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length;
4431       }
4432       $('#note_btn_id_papan3').val(idx_2_papan3);
4433       //var note_btn=note_btn_text[idx_2][1];
4434       //$('#note_btn').text(note_btn);
4435     });
4436 
4437     var text_max_papan4=150;
4438     var msg_text_papan4="";
4439     $('#kartu-ucapan-ucapan').keyup(function(){
4440       var text_length_papan4=$('#kartu-ucapan-ucapan').val().length;
4441       var msg_text_papan4=$('#kartu-ucapan-ucapan').val();
4442     });
4443 
4444     $('#show_note_papan4').click(function(event){
4445       var notes_papan4 = [
4446         [0,"Here’s to you—steadier, stronger and better every day."],
4447         [1,"Warmest wishes for a speedy recovery!"],
4448         [2,"Dengan ucapan terhangat, semoga lekas membaik dan semakin pulih setiap harinya ya."],
4449         [3,"Semoga lekas sembuh untuk kembali beraktivitas dan berkarya."]
4450       ];
4451       event.preventDefault();
4452       var idx_papan4=parseInt($('#note_id_papan4').val());
4453       console.log(idx_papan4, 'idx_papan4')
4454       if(isNaN(idx_papan4)){
4455         idx_papan4=0;
4456       }else{
4457         idx_papan4++;
4458         idx_papan4=idx_papan4%notes_papan4.length;
4459       }
4460       var note_papan4=notes_papan4[idx_papan4][1];
4461       $('#note_id_papan4').val(idx_papan4);
4462       $('#kartu-ucapan-papan, #properties-kartu-ucapan, #properties-kartu-pesan').val(note_papan4);
4463       console.log(note_papan4, 'note_papan4')
4464       var text_length_papan4=$('#kartu-ucapan-papan').val().length;
4465       var idx_2_papan4=parseInt($('#note_btn_id_papan4').val());
4466       if(isNaN(idx_2_papan4)){
4467         idx_2_papan4=0;
4468       }else{
4469         idx_2_papan4++;
4470         //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length;
4471       }
4472       $('#note_btn_id_papan4').val(idx_2_papan4);
4473     });
4474 
4475     /*
4476     $("#jenisPapan").change(function(){
4477       $( "select option:selected").each(function(){
4478         if($(this).attr("value")=="Happy Wedding"){
4479           $("#suggest-messages a").hide();
4480           $("#show_note_papan1").show();
4481           $("#kartu-ucapan-papan").val("");
4482         }
4483         if($(this).attr("value")=="Congratulations"){
4484           $("#suggest-messages a").hide();
4485           $("#show_note_papan2").show();
4486           $("#kartu-ucapan-papan").val("");
4487         }
4488         if($(this).attr("value")=="Duka Cita"){
4489           $("#suggest-messages a").hide();
4490           $("#show_note_papan3").show();
4491           $("#kartu-ucapan-papan").val("");
4492         }
4493       });
4494     }).change();
4495     */
4496 
4497     
4498 
4499     
4500 
4501     $(".variant-metafield").each(function(){
4502       const t = $(this)
4503       const id = t.attr("id")
4504       const target = $(`[data-select=${id}]`)
4505       t.on('select2:selecting', function(e) {
4506         const data = e.params.args.data
4507         target.val(data.text)
4508       });
4509     })
4510   })
4511 </script>
4511
4512 
4513 <div id="popupCart">
4514   <div class="container">
4515     <div class="wrapperPopupCart">
4516       <div class="headerPopupCart">
4517         <div class="d-flex pl-5 pr-5 p-4">
4518           <svg xmlns="logoweb.png" width="16" height="12" viewBox="0 0 16 12" fill="none">
4519             <path d="M5.55008 11.3076L0.580078 6.33761L1.29408 5.62461L5.55008 9.88061L14.7061 0.724609L15.4191 1.43861L5.55008 11.3076Z" fill="black"/>
4520           </svg>
4521           <span>item added to your cart</span>
4522         </div>
4523         <a class="close-purchase-popup">
4524   <svg xmlns="logoweb.png" width="18" height="18" viewBox="0 0 18 18" fill="none">
4525     <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"/>
4526   </svg>
4527 </a>
4528 
4529       </div>
4530       <div class="contentPopupCart">
4531         <div class="pl-5 pr-5 p-4">
4532           <div class="itemContent row m-0 justify-content-between">
4533             <div class="col-2 align-self-center">
4534               
4535               <img
4536                 class="d-block"
4537                 width="80"
4538                 src="//outerbloom.com/cdn/shop/files/Blossom-Shine-WM_80x.jpg?v=1695788426"
4539               >
4540             </div>
4541             <div class="col-10 align-self-center">
4542               <div class="row pl-3">
4543                 <div class="col-12 col-lg-7">
4544                   <span class="titleCartPopup text-uppercase">RSLOT77 | Bandar Togel Toto Macau Dengan Sistem Aman Akses Mudah</span>
4545                 </div>
4546                 <div class="d-flex justify-content-end col-12 col-lg-5">
4547                   <span class="deleteCartPopup hide">Delete</span>
4548                   <span class="lineCartPrice align-self-center">Rp 10.101</span>
4549                 </div>
4550               </div>
4551             </div>
4552           </div>
4553           <div class="itemProperties">
4554             
4555               <div class="propDeliver">
4556                 <h4>delivery option detail</h4>
4557                 <p>
4558                   <span>delivery city</span>
4559                   <span class="propDeliveryCity">jakarta</span>
4560                 </p>
4561                 <p>
4562                   <span>delivery date</span>
4563                   <span class="propDeliveryDate">24/03/2025</span>
4564                 </p>
4565                 <p>
4566                   <span>delivery time</span>
4567                   <span class="propDeliveryTime">Afternoon | 13:00 - 18:00</span>
4568                 </p>
4569               </div>
4570               <div class="propAddress">
4571                 <h4>delivery option detail</h4>
4572                 <p>
4573                   <span>RECIPIENT NAME</span>
4574                   <span class="propDeliveryName">jane doe</span>
4575                 </p>
4576                 <p>
4577                   <span>delivery address</span>
4578                   <span class="propDeliveryAddress"
4579                     >Jl. Gatot Subroto No. 25, RT.2/RW.4, Kuningan Barat, Kecamatan Mampang Prapatan, Kota Jakarta
4580                     Selatan, Daerah Khusus Ibukota Jakarta 12710, Indonesia</span
4581                   >
4582                 </p>
4583                 <p>
4584                   <span>recipient phone number</span>
4585                   <span class="propDeliveryPhone">(+62) 812-3456-7890</span>
4586                 </p>
4587                 <p>
4588                   <span>PROVINCE</span>
4589                   <span class="propDeliveryProv">Jakarta</span>
4590                 </p>
4591                 <p>
4592                   <span>postal code</span>
4593                   <span class="propDeliveryZip">12710</span>
4594                 </p>
4595                 
4596                 
4597               </div>
4598             
4599           </div>
4600           <div class="itemAddonCart">
4601             <div class="toggleAddonCart d-flex justify-content-between">
4602               <h4>add-ons (0)</h4>
4603               <svg xmlns="logoweb.png" width="5" height="9" viewBox="0 0 5 9" fill="none">
4604                 <path d="M1.0128 0.84668L4.78613 4.62001L1.0128 8.39335L0.546133 7.92001L3.84613 4.62001L0.546133 1.32001L1.0128 0.84668Z" fill="black"/>
4605               </svg>
4606             </div>
4607             <div class="wrapperItemAddonCart"></div>
4608           </div>
4609           
4610         </div>
4611       </div>
4612       <div class="footerPopupCart">
4613         <div class="row m-0 pl-5 pr-5 p-4">
4614           <a class="btn btnViewCart w-100 text-uppercase text-center" href="/cart">View Cart</a>
4615           <a class="btn btnViewCheckout w-100 text-uppercase text-center" href="/checkout"><span>Checkout</span></a>
4616           <a class="btnContinueShopping w-100 text-center" href="/">Continue shopping</a>
4617         </div>
4618       </div>
4619     </div>
4620   </div>
4621 </div>
4622 
4623 
4624 
4624<script>
4625   const shareButton = document.getElementById('shareButton');
4626 
4627   shareButton.addEventListener('click', () => {
4628     if (navigator.share) {
4629       navigator.share({
4630         title: "RSLOT77 | Bandar Togel Toto Macau Dengan Sistem Aman Akses Mudah",
4631         url: "/products/blossom-shine",
4632         text: 'Check out this page!'
4633       })
4634       .then(() => console.log('Successful share'))
4635       .catch((error) => console.log('Error sharing', error));
4636     } else {
4637       alert('Web Share API is not supported in this browser.');
4638     }
4639   });
4640 
4641   // Inventory validation function
4642   function checkInventoryStatus() {
4643     const productSelect = document.getElementById('productSelect');
4644     const purchaseButton = document.querySelector('#personalizeBtn button');
4645     
4646     if (!productSelect || !purchaseButton) return;
4647 
4648     const selectedVariantId = productSelect.value;
4649     
4650     // Get variant data from Shopify
4651     fetch(`/products/blossom-shine.js`)
4652       .then(response => response.json())
4653       .then(product => {
4654         const selectedVariant = product.variants.find(variant => variant.id == selectedVariantId);
4655         
4656         if (selectedVariant) {
4657           const isOutOfStock = selectedVariant.inventory_quantity <= 0 && 
4658                                selectedVariant.inventory_management === 'shopify' && 
4659                                selectedVariant.inventory_policy !== 'continue';
4660           
4661           if (isOutOfStock) {
4662             purchaseButton.disabled = true;
4663             purchaseButton.textContent = 'Out of Stock';
4664             purchaseButton.setAttribute('data-out-of-stock', 'true');
4665             purchaseButton.style.backgroundColor = '#cccccc';
4666             purchaseButton.style.cursor = 'not-allowed';
4667           } else {
4668             // Check if button was disabled due to other conditions
4669             
4670             
4671             
4672             
4673             
4674             
4675             
4676             
4677             const isOtherDisabled = false || true || false;
4678             
4679             if (!isOtherDisabled) {
4680               purchaseButton.disabled = false;
4681               purchaseButton.textContent = 'customize your flower board';
4682               purchaseButton.removeAttribute('data-out-of-stock');
4683               purchaseButton.style.backgroundColor = '';
4684               purchaseButton.style.cursor = '';
4685             }
4686           }
4687         }
4688       })
4689       .catch(error => {
4690         console.error('Error checking inventory:', error);
4691       });
4692   }
4693 
4694   // Check inventory on page load
4695   document.addEventListener('DOMContentLoaded', function() {
4696     checkInventoryStatus();
4697     
4698     // Listen for variant changes
4699     const productSelect = document.getElementById('productSelect');
4700     if (productSelect) {
4701       productSelect.addEventListener('change', checkInventoryStatus);
4702     }
4703   });
4704 
4705   // Prevent form submission if out of stock
4706   document.addEventListener('click', function(e) {
4707     if (e.target.matches('button[data-out-of-stock="true"]')) {
4708       e.preventDefault();
4709       e.stopPropagation();
4710       alert('This product is currently out of stock and cannot be purchased.');
4711       return false;
4712     }
4713   });
4714 </script>
4714
4715 
4716 
4717   
4718 </div>
4719 
4720           </div>
4721         </div>
4722       </div>
4723     </div>
4724     <div id="product-bottom">
4725       
4726         <div class="product-description rte bg-card col-12 py-3 px-0 m-0" itemprop="description">
4727           <div class="container">
4728             
4729 
4730 
4731 
4732 
4733     <div class="short-desc-mobile d-block d-lg-none mb-3">
4734         <div class="short-desc">
4735             <ul>
4736 <li><strong>RSLOT77 menyediakan akses Bandar Togel Toto Macau dengan sistem terlindungi, proses masuk praktis, tampilan ringan, serta informasi yang tersusun rapi untuk kenyamanan pengguna.</strong></li>
4737         </div>
4738         <label class="more-mobile">Show More →</label>
4739     </div>
4740 
4741 <style>
4742 .animated-title {
4743     text-align: center;
4744     font-weight: bold;
4745     color: #079c02;
4746     font-size: 28px;
4747     position: relative;
4748     animation: glow 2s infinite alternate, moveUpDown 3s infinite;
4749 }
4750 
4751 /* Efek glow / bercahaya hijau */
4752 @keyframes glow {
4753     0% { text-shadow: 0 0 5px #079c02; color: #079c02; }
4754     50% { text-shadow: 0 0 20px #00ff55; color: #12d12b; }
4755     100% { text-shadow: 0 0 10px #1bff00; color: #079c02; }
4756 }
4757 
4758 /* Efek gerakan naik turun */
4759 @keyframes moveUpDown {
4760     0% { transform: translateY(0px); }
4761     50% { transform: translateY(-5px); }
4762     100% { transform: translateY(0px); }
4763 }
4764 </style>
4765 
4766 
4766<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/shopify-cartjs/1.1.0/cart.min.js"></script>
4766
4767 
4767<script>
4768   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});
4769 
4770   const productType = $("[data-product-type]").data("product-type")
4771   const productDate = Date.parse(new Date())
4772   
4773   const shop = 'outerbloom1.myshopify.com'
4774   const host = 'https://app.asmaraku.com'
4775   // const host = 'http://localhost:5001'
4776 
4777   const gsheet = "https://script.google.com/macros/s/AKfycbyqa6mPD6lVjU6hiHr12J8URZ2aJBGyxBsGQ0QtEIDari-rBk_9vSOITjSSmUXL1NwxEg/exec"
4778   
4779   const qrID = "041025" + randomString(4, 'aAbCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ')
4780 
4781   $("#properties-time").val(new Date().getTime())
4782 
4783   const isIOS = /iPhone|iPad|iPod/i.test(navigator.userAgent);
4784 
4785   if(!isIOS) {
4786     $("#full-date").attr("type", "button")
4787   }
4788 
4789   let dateTime = new Date();
4790   let today = dateTime.getDate();
4791   let day = dateTime.getDay();
4792   let hour = dateTime.getHours();
4793   let min = dateTime.getMinutes();
4794   let timeOfDay = hour + (min / 100);
4795 
4796   async function getFetch(url) {
4797     const response = await fetch(url);
4798     let status = false
4799     let result
4800     if(response.ok) {
4801       status = true
4802       result = await response.json();
4803     }
4804     return {
4805       status,
4806       data: result
4807     }
4808   }
4809 
4810   
4811 
4812   function setCookie(cname, cvalue, exMins) {
4813     var d = new Date();
4814     d.setTime(d.getTime() + (exMins*60*1000));
4815     var expires = "expires="+d.toUTCString();  
4816     document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
4817   }
4818 
4819   function getCookie(cname) {
4820     let name = cname + "=";
4821     let decodedCookie = decodeURIComponent(document.cookie);
4822     let ca = decodedCookie.split(';');
4823     for(let i = 0; i <ca.length; i++) {
4824       let c = ca[i];
4825       while (c.charAt(0) == ' ') {
4826         c = c.substring(1);
4827       }
4828       if (c.indexOf(name) == 0) {
4829         return c.substring(name.length, c.length);
4830       }
4831     }
4832     return "";
4833   }
4834 
4835   async function renderDate() {
4836     let dataDate = await getFetch(`${host}/api/shipping/date?domain=${shop}&productId=8144957800663&v=${Date.now()}`);
4837     console.log(dataDate, 'renderDate')
4838     const data = dataDate?.data
4839     const date = data.date
4840     const time = data.time
4841 
4842     console.log(date, 'DATE')
4843 
4844     const weekday = ["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];
4845     const monthly = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];
4846     const htmlDate = []
4847     for(let i = 0;i < date.length;i++) {
4848       const full = date[i].date
4849       const d = new Date(date[i].date);
4850       const day = weekday[d.getDay()];
4851       const dt = d.getDate();
4852       const mt = monthly[d.getMonth()];
4853       const yr = d.getFullYear();
4854       const isDate = Boolean(date[i].isEnabled)
4855       const cutoffpagi = date[i].cutoff?.pagi
4856       const cutoffsiang = date[i].cutoff?.siang
4857       const cutoffMalam = date[i].cutoff?.Malam
4858       var html = `
4859         <button data-id="8144957800663" class="date-single calendarbutton btn steps-btn col col-3 btn-date-time" data-day="${day}" data-fulldate="${full}" data-date="${dt < 10 ? '0' + dt : dt}" data-month="${mt}" data-year="${yr}" data-offpagi="${cutoffpagi}" data-offsiang="${cutoffsiang}" data-offMalam="${cutoffMalam}" ${isDate === true ? '' : 'disabled'}>
4860           ${dt === today ?
4861             `Today<span>${dt < 10 ? '0' + dt : dt}</span>` :
4862             `${day}<span>${dt < 10 ? '0' + dt : dt}</span>`
4863           }
4864         </button>
4865       `
4866       htmlDate.push(html)
4867     }
4868     const htmlTime = []
4869     for(var i = 0;i < time.length;i++) {
4870       const timeText = time[i].text
4871       const timeTime = time[i].time
4872       const timeEnabled = time[i].isEnabled
4873       var html = `
4874           <button class="time-single calendarbutton2 btn steps-btn" data-time="${timeText}" ${timeEnabled ? '' : 'disabled'}>${timeText}<br/>${timeTime}</button>
4875         `
4876       htmlTime.push(html)
4877     }
4878     const deliveryDate = document.getElementById("deliveryDate");
4879     if(deliveryDate) {
4880       deliveryDate.insertAdjacentHTML("afterbegin", htmlDate.join(''))
4881       $("#deliveryTime").html(htmlTime)
4882       if(productType !== '') {
4883         console.log("clarity event " + productType + ' calendaring')
4884         window.clarity("event", `${productType} calendaringSchedule`)
4885         // window.clarity("set", productType, `calendaringSchedule - ${productDate}`)
4886       }
4887     }
4888   }
4889 
4890   async function getProvince(city) {
4891     let { data: { province } } = await getFetch(`${host}/api/shipping/address/province?city=${city}`);
4892     console.log(province, 'province')
4893     $("#province").val(province)
4894   }
4895 
4896   async function renderAddress() {
4897     let current
4898     if(getCookie("location_delivery")){
4899       current = getCookie("location_delivery").charAt(0).toUpperCase() + getCookie("location_delivery").slice(1)
4900     }
4901     let address = await getFetch(`${host}/api/shipping/address?domain=${shop}&productId=8144957800663`);
4902     console.log(address)
4903     const data = address?.data?.city
4904     const htmlAddress = []
4905     const grouping = []
4906     for(let i = 0;i < data?.length;i++) {
4907       if(data[i]){
4908         if(data[i]?.group) {
4909           grouping.push(data[i].group)
4910         }
4911         const price = rupiah.format(data[i]?.rate)
4912         let promo = '(Promo Free Delivery)'
4913         if(data[i]?.name === 'Jakarta - PickUp ASHTA'){
4914           promo = '(at SCBD, Ashta)'
4915         } else if(data[i]?.name === 'Jakarta - PickUp ITC'){
4916           promo = '(at Kuningan, ITC Kuningan)'
4917         } else if(data[i]?.name === 'BSD - PickUp'){
4918           promo = '(at Goldfinch Gading Serpong)'
4919         } else if(data[i]?.name === 'Kota Lainnya'){
4920           promo = ''
4921         }
4922         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>`)
4923       }
4924     }
4925     
4926     const deliveryCity = document.getElementById("cities");
4927     if(deliveryCity) {
4928       deliveryCity.insertAdjacentHTML("beforeend", htmlAddress.join(''))
4929       if(!isIOS) {
4930         $(deliveryCity).select2();
4931       }
4932     }
4933   }
4934 
4935   async function renderZip(v, v2, v3) {
4936     const deliveryZip = document.getElementById("zip");
4937     if(v === '') {
4938       return
4939     }
4940     let dataZip = await getFetch(`${host}/api/shipping/address/zip?city=${v}&city2=${v2}&city3=${v3}`);
4941     let zip = dataZip?.data?.zip
4942     console.log(zip)
4943     let htmlZip = []
4944     for(let i = 0; i < zip?.length;i++) {
4945       htmlZip.push(`<option value="${zip[i]?.postalCode} - ${zip[i]?.subdistrict}">${zip[i]?.postalCode} - ${zip[i]?.subdistrict} - ${zip[i]?.city}</option>`)
4946     }
4947     deliveryZip.insertAdjacentHTML("beforeend", htmlZip.join(''))
4948   }
4949 
4950   renderDate()
4951   renderAddress()
4952 
4953   let rupiah = new Intl.NumberFormat('id-ID', {
4954     style: 'currency',
4955     currency: 'IDR',
4956     maximumFractionDigits: 0, 
4957     minimumFractionDigits: 0
4958   });
4959 
4960   async function insertCard(data) {
4961     const response = await fetch(`${host}/api/card/new`, {
4962         method: "POST",
4963         headers: {
4964           'Content-Type': 'application/json',
4965         },
4966         body: data
4967     })
4968     const result = await response.json()
4969     let rowIndex = result?.data?.tableRange.split("Outerbloom!A1:J")[1]
4970     $("#greetingCard").attr("data-index", rowIndex)
4971     return result
4972   }
4973     
4974   async function updateCard(data){
4975     const rowIndex = $("#greetingCard").data("index")
4976     const response = await fetch(`${host}/api/card/update?rowIndex=${rowIndex}`, {
4977         method: "PUT",
4978         headers: {
4979           'Content-Type': 'application/json',
4980         },
4981         body: data
4982     })
4983     return response
4984   }
4985     
4986   function bytesToSize(bytes) {
4987     var sizes = ['b', 'kb', 'mb', 'gb', 'tb', 'p'];
4988     for (var i = 0; i < sizes.length; i++) {
4989       if (bytes <= 1024) {
4990         return bytes + ' ' + sizes[i];
4991       } else {
4992         bytes = parseFloat(bytes / 1024).toFixed(2)
4993       }
4994     }
4995     return bytes + ' P';
4996   }
4997 
4998   async function uploadMedia(uri, type) {
4999     nameq = $("#properties-nama-penerima").val()
5000     dear = $("#properties-kartu-nama-penerima").val()
5001     card = $("[data-properties=ucapan]").val()
5002     sender = $("#properties-kartu-nama-pengirim").val()
5003     photo = $("#properties-photo").val()
5004     video = $("#properties-video").val()
5005     status = "Product"
5006         
5007     const name = qrID
5008     let formData = new FormData(); 
5009     formData.append("file", uri);
5010     const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, {
5011       method: "POST", 
5012       body: formData
5013     })
5014     const result = await response.json();
5015     if(result) {
5016       const url = result.url
5017       if(type === 'image/jpeg') {
5018         $("#properties-photo").val(url)
5019         $(".preview-image").show()
5020         $(".remove-image").show()
5021         photo = url
5022       } else {
5023         $("#properties-video").val(url)
5024         $("#label-input-video span").text("Change File")
5025         $(".case-qrcode-preview p").text("Scan here for a secret message")
5026         $(".remove-media").show()
5027         $("#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>`)
5028         $("[for=input-video]").hide()
5029         video = url
5030       }
5031       $(".case-video-preview").show()
5032       $(".steps-card-preview").removeClass("loading")
5033       // updateCard(nameq, dear, card, sender, photo, video, status)
5034 
5035       $(".nextBtn").attr("disabled", false)
5036     }
5037   }
5038 
5039   function randomString(length, chars) {
5040     var result = '';
5041     for (var i = length; i > 0; --i) result += chars[Math.round(Math.random() * (chars.length - 1))];
5042     return result;
5043   }
5044 
5045   function getNoteCity(fulldate) {
5046     const h_1 = new Date(new Date().setDate(new Date().getDate() + 1))
5047     const weekday = ["Min","Sen","Sel","Rab","Kam","Jum","Sab"];
5048     const monthly = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];
5049     const d = new Date(h_1);
5050     const day = weekday[d.getDay()];
5051     const dt = d.getDate();
5052     const mt = monthly[d.getMonth()];
5053     const yr = d.getFullYear();
5054     const p = $("#cities").parent(".form-group")
5055   }
5056 
5057   function disabledSameDay() {
5058     let btnFirst = $("#deliveryDate").find("button:first-child")
5059     let getDay = new Date().getDay();
5060 
5061     
5062       
5063       if(getDay == 1 || getDay == 2 || getDay == 3 || getDay == 4 || getDay == 5){
5064         if(hour >= 14.00){
5065           btnFirst.attr("disabled", true)
5066         }
5067       } else if(getDay == 6){
5068         if(hour >= 16.00){
5069           btnFirst.attr("disabled", true)
5070         }
5071       } else if(getDay == 0){
5072         if(hour >= 16.00){
5073           btnFirst.attr("disabled", true)
5074         }
5075       }
5076       
5077     
5078   }
5079 
5080   function disabledays(date) {
5081     let ymd = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate();
5082     //if u have to disable a list of day
5083     let removeDays
5084     
5085     
5086     
5087         removeDays = ["2025-2-13", "2025-2-14"];
5088     
5089     if ($.inArray(ymd, removeDays) >= 0) {
5090       return [false];
5091     } else {
5092       let day = date.getDay();
5093       if(day == 0 && date.getDate() == 13 && date.getMonth() == 1){
5094           return [(day == 0),  ''];
5095       }
5096       
5097       if(day == 0){
5098         return [(day == 0),  ''];
5099       }
5100       
5101       
5102       return [(day != 0),  ''];
5103     }
5104   }
5105 
5106   /* Indonesian initialisation for the jQuery UI date picker plugin. */
5107   /* Written by Deden Fathurahman ([email protected]). */
5108   ( function( factory ) {
5109     if ( typeof define === "function" && define.amd ) {
5110 
5111       // AMD. Register as an anonymous module.
5112       define( [ "../widgets/datepicker" ], factory );
5113     } else {
5114 
5115       // Browser globals
5116       factory( jQuery.datepicker );
5117     }
5118   }( function( datepicker ) {
5119 
5120   datepicker.regional.id = {
5121     closeText: "Tutup",
5122     prevText: "&#x3C;mundur",
5123     nextText: "maju&#x3E;",
5124     currentText: "Today",
5125     monthNames: [ "January","February","March","April","May","Juny",
5126                   "July","August","September","October","November","December" ],
5127     monthNamesShort: [ "Jan","Feb","Mar","Apr","May","Jun",
5128                       "Jul","Agu","Sep","Oct","Nov","Dec" ],
5129     dayNames: [ "Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu" ],
5130     dayNamesShort: [ "Sun","Mon","Tue","Wed","Thu","Fri","Sat" ],
5131     dayNamesMin: [ "Mg","Sn","Sl","Rb","Km","jm","Sb" ],
5132     weekHeader: "Mg",
5133     dateFormat: "D, dd M",
5134     firstDay: 0,
5135     isRTL: false,
5136     showMonthAfterYear: false,
5137     yearSuffix: "" };
5138   datepicker.setDefaults( datepicker.regional.id );
5139 
5140   return datepicker.regional.id;
5141 
5142 } ) );
5143 
5144   function loadPopup() {
5145     $("#backgroundPopup").fadeIn("slow");
5146     $(".purchasePopup:not(.purchasePopupSpotify)").fadeIn("slow");
5147     const firstSection = $(".purchasePopup:not(.purchasePopupSpotify) .sectionPurchase").first()
5148     if(firstSection.hasClass("purchasePersonalize")) {
5149       if(productType !== '') {
5150         console.log("clarity event " + productType + ' personalize')
5151         window.clarity("event", `${productType} cardPersonalization`)
5152         // window.clarity("set", productType, `cardPersonalization - ${productDate}`)
5153       }
5154     } else if (firstSection.hasClass("sectionPurchaseBoard")) {
5155         console.log("clarity event " + productType + ' personalizeBoard')
5156         window.clarity("event", `${productType} personalizeBoard`)
5157         // window.clarity("set", productType, `personalizeBoard - ${productDate}`)
5158     }
5159     firstSection.removeClass("hide")
5160     
5161     // Auto-trigger addon loading when addon section becomes visible
5162     setTimeout(function() {
5163       const addonSection = $(".purchaseAddon")
5164       if(addonSection.length > 0 && !addonSection.hasClass("hide")) {
5165         if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) {
5166           $("[data-addon=upsell-all]").trigger("click")
5167         }
5168       }
5169     }, 200)
5170   }
5171 
5172   function disablePopup() {
5173     $("#backgroundPopup").fadeOut("slow");
5174     $(".purchasePopup").fadeOut("slow");
5175     $("#popupCart").fadeOut("slow");
5176   }
5177 
5178     function scrollTo(parent, div, dur) {
5179       $(parent).animate({
5180         scrollTop: $(div).offset().top
5181       }, dur);
5182     }
5183 
5184   function loadPopupPersonalize() {
5185     const div = "#purchaseProduct"
5186     const p = "html, body, .product-meta"
5187     $("p.error").remove()
5188     loadItemOccasion($("[data-occassion]").eq(0), "greeting-card-all")
5189     const isCity = $("#cities[required]")
5190     const isDate = $("#propDeliveryDate[required]")
5191     const isTime = $("#propDeliveryTime[required]")
5192     // loadPopup()
5193     if(isCity.val() !== '' && isDate.val() !== '' && isTime.val() !== '') {
5194       loadPopup()
5195     }
5196     if(isCity.val() == '') {
5197       isCity.parent(".row").append("<p class='error'>Choose delivery city</p>")
5198       scrollTo(p, div, 500)
5199     }
5200     if(isDate.val() == '') {
5201       isDate.parents(".row").append("<p class='error'>Choose delivery date</p>")
5202       scrollTo(p, div, 500)
5203     }
5204     if(isTime.val() == '') {
5205       isTime.parents(".row").append("<p class='error'>Choose delivery time</p>")
5206       scrollTo(p, div, 500)
5207     }
5208   }
5209 
5210   function quantityCounter() {
5211     $(document).on("click", ".item-card.selected .q_up", function () {
5212       var C = $(this).attr("data-id"),
5213           S =
5214               parseInt(
5215                   $(this)
5216                       .siblings(".quantity-cart-" + C)
5217                       .val()
5218               ) + 1;
5219       $(this).attr("data-quantity", S),
5220           $(this)
5221               .siblings(".quantity-cart-" + C)
5222               .val(S);
5223     }),
5224     $(document).on("click", ".item-card.selected .q_down", function () {
5225         var C = $(this).attr("data-id"),
5226             S = parseInt(
5227                 $(this)
5228                     .siblings(".quantity-cart-" + C)
5229                     .val()
5230             );
5231         0 < S && $(this).attr("data-quantity", S - 1),
5232             0 < S &&
5233                 $(this)
5234                     .siblings(".quantity-cart-" + C)
5235                     .val(S - 1);
5236     });
5237   }
5238 
5239   quantityCounter()
5240 
5241   const itemAddon = $(".item-card").length
5242   const nofree = $(".nofree").length
5243 
5244   const upsell = ''
5245   
5246   if(nofree === itemAddon) {
5247       // $("#itemAddons").html("<p>No Items available</p>")
5248   }
5249 
5250   $("#itemAddons .item-card").each(function(e){
5251       $("#itemAddons").attr("data-length", e)
5252   })
5253 
5254   $("[data-addon]").click(function(){
5255       
5256       
5257       
5258       const t = $(this)
5259       
5260       const data = t.data("addon")
5261       
5262       $("[data-addon]").removeClass("selected")
5263       t.addClass("selected")
5264       $.get(`https://outerbloom.com/collections/${data}/products.json`, function(data, status){
5265           const products = data.products
5266           const html = []
5267           for(let i = 0; i < products.length; i++) {
5268               const id = products[i].id
5269               const variantId = products[i].variants[0].id
5270               const img = products[i].images[0].src
5271               let img2 = img.split('.jpg')[0]
5272               const title = products[i].title
5273               const price = products[i].variants[0].price
5274               const tags = products[i].tags
5275               const qty = products[i].variants[0].available
5276               let type_upsell = ''
5277               if(tags.includes('upsell-item-standing')) {
5278                   type_upsell = 'standing'
5279               }
5280               console.log(type_upsell)
5281               if(type_upsell !== '') {
5282                   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}">
5283                       
5284                           <div class="card-image">
5285                               <img src="${img2}_150x.jpg" alt="${title}" width="" height="" />
5286                           </div>
5287                           <div class="card-meta">
5288                               <h5>${title}</h5>
5289                               <p>${price < 1 ? 'FREE' : rupiah.format(price)}</p>
5290                               <input id="card-${variantId}" type="hidden" name="" value="${variantId}">
5291                           </div>
5292                           <div class="card-qty">
5293                               <a data-quantity="1" type="submit" id="q_down-${variantId}" class="btn-qty-min q_down drawer-cart" data-id="${variantId}"><svg xmlns="logoweb.png" width="12" height="2" viewBox="0 0 12 2" fill="none"><path d="M0 1.90869V0.908691H12V1.90869H0Z" fill="black"/></svg></a>  
5294                               <input maxlength="3" min="0" class="btn-qty text-center quantity-cart-${variantId}
5294" value="0" data-price=${price} name="quantity">
5295                               <a data-quantity="1" type="submit" class="btn-qty-plus q_up text-green drawer-cart" data-id="${variantId}"><svg xmlns="logoweb.png" width="12" height="13" viewBox="0 0 12 13" fill="none">
5296 <path d="M0 6.87023V5.94715H5.53846V0.408691H6.46154V5.94715H12V6.87023H6.46154V12.4087H5.53846V6.87023H0Z" fill="black"/>
5297 </svg></a>   
5298                           </div>
5299                       </div>`
5300                   html.push(body)
5301               }
5302           }
5303           $("#itemAddons .row").html(html.length === 0 ? '<p>No Item available</p>' : html)
5304           $("#itemAddons").attr("data-length", products.length)
5305           // $('#itemAddons')[0].swiper.update();
5306       });
5307   })
5308 
5309   async function isAddon(){
5310     let ids = []
5311     $("#itemAddons .item-card.selected").each(function(i, e){
5312       const id = $(this).data("id")
5313       ids.push(id)
5314     })
5315     console.log(ids)
5316     return ids
5317   }
5318   
5319   $("#itemAddons").delegate(".item-card > div:not(.card-qty)", "click", async function(){
5320     const t = $(this).parent()
5321     const id = t.data("id")
5322     const btn =  t.parents(".purchaseAddon").find(".next-purchase-button")
5323     t.toggleClass("selected");
5324     //$(this).next("input").toggleAttr('name', 'id[]');
5325     if (t.hasClass('selected')) {
5326         t.find("input").val(1)
5327         t.find("input").attr('name', 'id[]');
5328     } else {
5329         t.find("input").val(0)
5330         t.find("input").removeAttr('name');
5331     }
5332     $("#properties-addons").val(addons)
5333     const is = await isAddon()
5334     if(is.length === 0) {
5335       btn.text("continue without add-ons")
5336       return
5337     }
5338     if(is.includes(8835692069079)) {
5339       btn.text("personalize acrylic frame")
5340     } else {
5341       btn.text("Continue")
5342     }
5343       
5344   })
5345 
5346   async function myAddon(data) {
5347     const c = $(".addonsPurchase .addons")
5348     let items = []
5349     
5350     const spotifyAddons = $(".spotifyAddons").find("[data-index]")
5351     // if(spotifyAddons.length > 0) {
5352     //   $(spotifyAddons).each(function(i, e){
5353     //     const spotifyLink = $(this).find(".spotifyLink").val()
5354     //     const spotifySong = $(this).find(".spotifySong").val()
5355     //     const spotifyArtist = $(this).find(".spotifyArtist").val()
5356     //     const spotifyFotoAddon = $(this).find(".resultPhotoSpotify").val()
5357     //     if(spotifyLink !== '') {
5358     //       spotifyAddon = `<div class="addon-item" data-id="46067682607319" data-qty="1">
5359     //         <div class="addon-itm-img">
5360     //           <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"/>
5361     //         </div>
5362     //         <div class="addon-itm-title">
5363     //           <span>[US] Outerbloom Acrylic Frame 4R</span>
5364     //         </div>
5365     //         <div class="addon-itm-line-total">
5366     //           <span>Rp 99.000</span>
5367     //         </div>
5368     //       </div>
5369     //       <div class="propsAddonSpotify row m-0">
5370     //         <div class="col-12 col-lg-2"></div>
5371     //           <div class="col-12 col-lg-10">
5372     //             <p>
5373     //               <span>spotify link</span>
5374     //               <span class="spotifyLinkAddon">${spotifyLink}</span>
5375     //             </p>
5376     //             <p>
5377     //               <span>uploaded photo</span>
5378     //               <span class="spotifyFotoAddon">${spotifyFotoAddon}</span>
5379     //             </p>
5380     //             <p>
5381     //               <span>song / playlist name</span>
5382     //               <span class="spotifySongAddon">${spotifySong}</span>
5383     //             </p>
5384     //             <p>
5385     //               <span>artist name</span>
5386     //               <span class="spotifyArtistAddon">${spotifyArtist}</span>
5387     //             </p>
5388     //           </div>
5389     //       </div>`
5390     //       items.push(spotifyAddon)
5391     //     }
5392     //   })
5393     // }
5394     for(let i = 0; i < data.length; i++) {
5395       if(data[i].title !== '[US] Outerbloom Acrylic Frame 4R' ) {
5396         const img = data[i].image
5397         const title = data[i].title
5398         const qty = data[i].qty
5399         const price = data[i].price
5400         const total = Number(qty) * Number(price)
5401         let addons = `<div class="addon-item" data-id="${data[i].id}" data-qty="${qty}">
5402               <div class="addon-itm-img">
5403                 <img src="${img}" alt="" width="70"/>
5404               </div>
5405               <div class="addon-itm-title">
5406                 <span>${title}</span>
5407               </div>
5408               <div class="addon-itm-line-price">
5409                 <span>${rupiah.format(price)}</span>
5410                 ${data[i].title == '[US] Outerbloom Acrylic Frame 4R' ? '' : `<span>x${qty}</span>`}
5411               </div>
5412               <div class="addon-itm-line-total">
5413                 <span>${rupiah.format(total)}</span>
5414               </div>
5415             </div>`
5416           items.push(addons)
5417       }
5418     }
5419     c.html(items)
5420     const parent = $(".purchaseAddon")
5421     const next = parent.next(".sectionPurchase")
5422     parent.addClass("hide")
5423     next.removeClass("hide")
5424     // if(items2.length === 0) return $("#popupCart").addClass("no-addon-cart")
5425     // $(".itemAddonCart").find("h4").text(`add-ons (${items2.length})`)
5426   }
5427 
5428   async function listAddon() {
5429     const data = $("#itemAddons").find(".selected")
5430     let ids = []
5431     $(data).each(function(){
5432       const id = $(this).data("variant")
5433       const image = $(this).find(".card-image img").attr("src")
5434       const title = $(this).find(".card-meta h5").text()
5435       const qty = $(this).find(".card-qty input").val()
5436       const price = $(this).find(".card-qty input").data("price")
5437       ids.push({
5438         id: Number(id),
5439         image,
5440         title,
5441         qty,
5442         price
5443       })
5444     })
5445     myAddon(ids)
5446   }
5447 
5448   async function customSpotify(idx, length, type){
5449     let isCard = false
5450     
5451     let p = $(".purchasePopupSpotify")
5452     const preLink = $(".spotifyLinkFirst").val()
5453     $("[data-index]").hide()
5454     p.find(".headerPurchase h3").text(`personalize spotify photo print${length > 1 ? ` - ${idx}` : ''}`)
5455     p.find(".regulerAddons, .purchase-button").hide()
5456     p.find(".spotifyAddons").show()
5457     
5458     const data = await trackUrl(preLink)
5459     
5460     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>
5460<svg xmlns="logoweb.png" width="13" height="11" viewBox="0 0 13 11" fill="none">
5461 <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"/>
5462 </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=logoweb.png><path d="M14.5799 7.41992L2.32992 7.41992L7.57992 12.6699L6.91992 13.4199L0.419922 6.91992L6.91992 0.419922L7.57992 1.16992L2.32992 6.41992L14.5799 6.41992V7.41992Z"fill=black /></svg> <span>Back</span></button><button data-type="${isCard ? 'card' : ''}" ${isCard ? '' : 'id=addtocart-card'} class="text-uppercase btn w-100${type == 'addon' && idx == length ? ' finished' : ' no-addon'}" disabled>${isCard ? 'Continue Personalizing' : 'add to cart'}</button></div></div></div><div class="col-12 col-lg-6 columnRight"><div class=frame-spotify><div class=frameImage><div class=frameImageUploaded>
5462<svg xmlns="logoweb.png" width="13" height="11" viewBox="0 0 13 11" fill="none">
5463 <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"/>
5464 </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>`
5465     // console.log(html)
5466     
5467     $(".spotifyAddons").append(html)
5468     
5469     $(`[data-index=${idx}]`).show()
5470     
5471     if (preLink !== '') {
5472       $(".btn-action .btn").attr("disabled", false)
5473     } else {
5474       $(".btn-action .btn").attr("disabled", true)
5475     }
5476 
5477     return html
5478     
5479   }
5480 
5481   $(".spotifyLinkFirst").keyup(async function(){
5482     const v = $(this).val()
5483     if(v.includes('spotify:user:spotify')) {
5484       const correct = v.split('user:spotify:')[1]
5485       console.log(correct, 'BNER')
5486       $(this).val(correct)
5487       return
5488     }
5489     if(v.includes("spotify:") || v.includes("https://open.spotify.com/")){
5490       const data = await trackUrl(v)
5491       if(!data || !data.status) {
5492         $(this).parent().addClass("error")
5493         // $(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>`)
5494         $("#personalizeBtnSpotify .btn").attr("disabled", true)
5495         return
5496       }
5497       $(this).parent().removeClass("error")
5498       // $(this).parent().remove("txt-error")
5499       $("#personalizeBtnSpotify .btn").attr("disabled", false)
5500     } else {
5501       $("#personalizeBtnSpotify .btn").attr("disabled", true)
5502     }
5503   })
5504 
5505   $(".purchaseAddon").delegate(".next-addon", "click", function(){
5506     const parent = $(this).parents(".purchaseAddon")
5507     const next = parent.next(".sectionPurchase")
5508     if(next.hasClass("purchaseAddress")) {
5509       if(productType !== '') {
5510         console.log("clarity event " + productType + ' purchaseDelivery')
5511         window.clarity("event", `${productType} purchaseDelivery`)
5512         // window.clarity("set", productType, `purchaseDelivery - ${productDate}`)
5513       }
5514     }
5515     const data = $("#itemAddons").find(".selected")
5516     const length = $(".quantity-cart-46067682607319").val()
5517     const checked = data.length;
5518     if(checked > 0) {
5519       if(length > 0) {
5520         $(".purchaseAddon").addClass("purchaseAddonSpotify")
5521         customSpotify(1, length, 'addon')
5522       } else {
5523         listAddon()
5524       }
5525     } else {
5526       parent.addClass("hide")
5527       next.removeClass("hide")
5528     }
5529   })
5530 
5531   $("#personalizeBtnSpotify .btn").click(async function(){
5532     const isCity = $("#cities[required]")
5533     const isDate = $("#propDeliveryDate[required]")
5534     if((isDate.length > 0 && isCity.length > 0) && (isCity.val() === '' || isDate.val() === '')) {
5535       alert('Please choose Delivery City & Delivery Date')
5536       return
5537     }
5538     const data = await customSpotify(1, 1, 'product')
5539     if(data) {
5540       $("#backgroundPopup").fadeIn("slow");
5541       $(".purchasePopupSpotify").fadeIn("slow");
5542 
5543       if(productType !== '') {
5544         console.log("clarity event " + productType + ' spotify')
5545         window.clarity("event", `${productType} spotify`)
5546         // window.clarity("set", productType, `purchaseDelivery - ${productDate}`)
5547       }
5548     }
5549   })
5550 
5551   function formatBytes(bytes, decimals = 2) {
5552     if (!+bytes) return '0 Bytes'
5553 
5554     const k = 1024
5555     const dm = decimals < 0 ? 0 : decimals
5556     const sizes = ['B', 'KB', 'MB']
5557 
5558     const i = Math.floor(Math.log(bytes) / Math.log(k))
5559 
5560     return `${parseFloat((bytes / Math.pow(k, i)).toFixed(dm))} ${sizes[i]}`
5561   }
5562 
5563   async function trackUrl(link){
5564     try {
5565       let trackId = link.split('/').pop().split('?')[0];
5566       let type = ''
5567       if(link.includes("spotify:")) {
5568         const uri = link.split('spotify:')[1]
5569         trackId = uri.split(':')[1]
5570         type = uri.split(':')[0] + 's'
5571       } else {
5572         if(link.match('track')){
5573           type = 'tracks'
5574         } else if(link.match('playlist')) {
5575           type = 'playlists'
5576         } else if(link.match('artist')) {
5577           type = 'artists'
5578         } else if(link.match('album')) {
5579           type = 'albums'
5580         }
5581       }
5582       console.log(`${host}/api/spotify/${type}/${trackId}`)
5583       const data = await getFetch(`${host}/api/spotify/${type}/${trackId}`)
5584       console.log(data, 'DATA')
5585       const song = data?.data?.name
5586       const artist = data?.data?.artist
5587       return {
5588         song, artist, type, trackId, status: data.status
5589       }
5590     } catch(err) {
5591       console.log(err)
5592     }
5593   }
5594 
5595   $(".spotifyAddons").delegate(".uploadPhotoSpotify", "change", async function(){
5596     const parent = $(this).parents("[data-index]")
5597     const preview = parent.find(".previewImage")
5598     const file = $(this)[0].files[0];
5599     if (file) {
5600         const reader = new FileReader();
5601         reader.onload = async function(e) {
5602           parent.find(".uploadResult label").hide()
5603           parent.find(".uploadedResult").remove()
5604           parent.find(".uploadResult").append(`<div class="uploadedResult d-flex" style="justify-content: space-between">
5605           <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>
5606           <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;">
5606<svg fill="none" height="11" viewBox="0 0 10 11" width="10" xmlns="logoweb.png">
5607   <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 />
5608 </svg>
5609 </span></div></div>`)
5610           parent.find(".frameImageUploaded svg").hide()
5611           parent.find(".frameImage").addClass("uploaded")
5612           preview.attr("src", e.target.result);
5613           preview.show();
5614           let formData = new FormData(); 
5615           formData.append("file", file);
5616           const response = await fetch(`${host}/api/upload?name=${file.name}&type=image/jpeg&r=${Date.parse(new Date)}`, {
5617             method: "POST", 
5618             body: formData
5619           })
5620           const result = await response.json();
5621           if(result){
5622             parent.find(".resultPhotoSpotify").val(result.url)
5623           }
5624         }
5625         
5626         reader.readAsDataURL(file);
5627     } else {
5628         preview.hide();
5629     }
5630   });
5631 
5632   $(".spotifyAddons").delegate(".uploadResult", "click", function(){
5633     $(this).next("input[type=file]").trigger("click")
5634   })
5635 
5636   $(".spotifyAddons").delegate(".changeUpload", "click", function(){
5637     $(this).parents("input[type=file]").trigger("click")
5638   })
5639 
5640   $(".spotifyAddons").delegate(".removeUpload", "click", function(){
5641     const parent = $(this).parents("[data-index]")
5642     parent.find(".uploadPhotoSpotify").val("")
5643     parent.find(".uploadResult label").show()
5644     parent.find(".uploadedResult").remove()
5645     parent.find(".frameImageUploaded svg").show()
5646     parent.find(".previewImage").hide()
5647     parent.find(".frameImage").removeClass("uploaded")
5648   })
5649 
5650   $(".spotifyAddons").delegate("label.checkbox", "click", function(){
5651     const parent = $(this).parents("[data-index]")
5652     parent.toggleClass("checked")
5653   })
5654 
5655   $(".spotifyAddons").delegate(".spotifyLink", "change", async function(){
5656     const parent = $(this).parents("[data-index]")
5657     const link = $(this).val()
5658     const data = await trackUrl(link)
5659 
5660     console.log(data)
5661 
5662     if(data.song) {
5663       parent.find(".spotifySong").val(data.song)
5664       parent.find(".spotifyData").find("h3").text(data.song)
5665     }
5666     if(data.artist) {
5667       parent.find(".spotifyArtist").val(data.artist)
5668       parent.find(".spotifyData").find("p").text(data.artist)
5669     }
5670     parent.find(".spotifyCode img").attr("src", `https://scannables.scdn.co/uri/plain/png/FFFFFF/black/640/spotify:${data.type.slice(0, -1)}:${data.trackId}`)
5671     // https://scannables.scdn.co/uri/plain/png/FFFFFF/black/640/spotify:track:1er51HCEBhIAtoEemKuC3M
5672     if (data.status === true) {
5673       parent.find(".btn-action .btn").attr("disabled", false)
5674     } else {
5675       parent.find(".btn-action .btn").attr("disabled", true)
5676     }
5677   })
5678   
5679   $(".spotifyAddons").delegate(".spotifySong", "keyup", async function(){
5680     const parent = $(this).parents("[data-index]")
5681     const v = $(this).val()
5682     parent.find(".spotifyData h3").text(v)
5683   })
5684 
5685   $(".spotifyAddons").delegate(".spotifyArtist", "keyup", async function(){
5686     const parent = $(this).parents("[data-index]")
5687     const v = $(this).val()
5688     parent.find(".spotifyData p").text(v)
5689   })
5690 
5691   $(".spotifyAddons").delegate(".btn-action .btn:not(.no-addon)", "click", async function(){
5692     const parent = $(this).parents("[data-index]")
5693     const length = parent.data("length")
5694     const index = parent.data("index")
5695     const indexNext = Number(index) + 1
5696     customSpotify(indexNext, length, 'addon')
5697   })
5698 
5699   
5700   $(".spotifyAddons").delegate(".btn-action .btn.finished", "click", async function(){
5701     const parent = $(this).parents(".purchaseAddon")
5702     const next = parent.next(".sectionPurchase")
5703     parent.addClass("hide")
5704     next.removeClass("hide")
5705     next.find(".purchase-button").show()
5706     listAddon()
5707   })
5708 
5709   $(".spotifyAddons").delegate(".back-spotify", "click", async function(){
5710     const t = $(this).parents("[data-index]")
5711     const parent = $(this).parents(".sectionPurchase")
5712     const current = t.data("index")
5713     const prevCurrent = Number(current) - 1
5714     if(current == 1) {
5715       parent.removeClass("purchaseAddonSpotify")
5716       parent.find(".purchase-button").show()
5717       parent.find(".headerPurchase h3").text("Make It More Special with Add-Ons!")
5718       $(".spotifyAddons").empty()
5719       $(".regulerAddons").show()
5720       return
5721     }
5722     t.hide()
5723     t.prev("[data-index]").show()
5724     t.remove()
5725     parent.find(".headerPurchase h3").text(`personalize spotify photo print - ${prevCurrent}`)
5726   })
5727 
5728   $("#personalizeBtn .btn").click(async function() {
5729     loadPopupPersonalize()
5730   });
5731 
5732   $(".sectionPurchaseSpotify").delegate(".btn[data-type=card]", "click", function(){
5733     $(".sectionPurchaseSpotify").hide()
5734     loadPopupPersonalize()
5735   })
5736 
5737   $(".close-purchase-popup").click(function() {
5738       disablePopup();
5739   });
5740   $("#backgroundPopup").click(function() {
5741       // disablePopup();
5742   });
5743 
5744   $("#popupCart .close-purchase-popup").click(function() {
5745       location.reload()
5746   });
5747 
5748   $('#popupCart').on('hide.bs.modal', function (e) {
5749     location.reload()
5750   })
5751 
5752   $(".next-card").click(function(){
5753     const parent = $(this).parents(".sectionPurchase")
5754     const next = parent.next(".sectionPurchase")
5755     parent.addClass("hide")
5756     next.removeClass("hide")
5757   })
5758 
5759   $(".back-purchase-button").click(function(){
5760     const parent = $(this).parents(".sectionPurchase")
5761     const prev = parent.prev(".sectionPurchase")
5762     parent.addClass("hide")
5763     prev.removeClass("hide")
5764   })
5765   
5766   $(document).keypress(function(e) {
5767       if (e.keyCode == 27 && popupStatus == 1) {
5768           disablePopup();
5769       }
5770   });
5771   
5772   const parentImg = $(".case-img-preview")
5773   const parentVid = $(".case-video-preview")
5774   
5775   function readURL(input) {
5776     if (input.files && input.files[0]) {
5777       let reader = new FileReader();
5778 
5779       let type = 'image/jpeg'
5780       const size = input.files[0].size
5781       if(input.files[0].type.match('video/')){
5782         type = 'video/mp4'
5783         if(size > 15728640) {
5784           alert('File size exceeds maximum limit 15 MB')
5785           return
5786         }
5787       } else {
5788         if(size > 5242880) {
5789           alert('File size exceeds maximum limit 5 MB')
5790           return
5791         }
5792       }
5793 
5794       reader.onload = function (e) {
5795         $(".nextBtn").attr("disabled", true)
5796         if(type === 'image/jpeg') {
5797           
5798             $('.placeholder-image').hide();
5799             $('.preview-image').show()
5800             $('.preview-image').attr('src', e.target.result);
5801           
5802         } else {
5803           // parentVid.find(".ajax-loader").show();
5804           $(".steps-card-preview").addClass("loading")
5805         }
5806       }
5807 
5808       
5809 
5810       reader.readAsDataURL(input.files[0]);
5811     }
5812   }
5813 
5814   async function readURLPapan(input) {
5815     if (input.files && input.files[0]) {
5816       let reader = new FileReader();
5817 
5818       reader.onload = function (e) {
5819         $('.btn-upload-papan').siblings('label').hide();
5820         $('.btn-upload-papan img').attr('src', e.target.result);
5821         $('.btn-upload-papan img').show();
5822         $('.svgLogoPapan').hide();
5823       }
5824       
5825       const type = 'image/jpeg'
5826       const name = `logo-8144957800663-${Date.parse(new Date())}`
5827 
5828       let formData = new FormData(); 
5829       formData.append("file", input.files[0]);
5830       const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, {
5831         method: "POST", 
5832         body: formData
5833       })
5834       const result = await response.json();
5835       if(result) {
5836         const url = result.url
5837         $("[data-properties=papan-logo]").val(url)
5838       }
5839 
5840       reader.readAsDataURL(input.files[0]);
5841     }
5842   }
5843 
5844   async function readURLAddress(input) {
5845     console.log(input, 'readURLAddress')
5846     if (input.files && input.files[0]) {
5847       let reader = new FileReader();
5848 
5849       reader.onload = function (e) {
5850         $('.photo-address').attr('src', e.target.result);
5851         $('.photo-address').show();
5852       }
5853       
5854       const type = 'image/jpeg'
5855       const name = input.files[0].name?.split('.')[0]
5856 
5857       let formData = new FormData(); 
5858       formData.append("file", input.files[0]);
5859       const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, {
5860         method: "POST", 
5861         body: formData
5862       })
5863       const result = await response.json();
5864 
5865       reader.readAsDataURL(input.files[0]);
5866 
5867       return result
5868     }
5869   }
5870 
5871   
5872 
5873   
5874   async function addToCartUang() {
5875     var productAddOnId1 = 42122101162199;
5876     var productAddOnId2 = 42122101194967;
5877     var product_id = 8144957800663
5878     const data = {
5879       items: [
5880           {
5881               quantity: $("#Quantity-" + productAddOnId1).val(),
5882               id: productAddOnId1,
5883               "properties": { "Time": $("#properties-time").val() }
5884           },
5885           {
5886               quantity: $("#Quantity-" + productAddOnId2).val(),
5887               id: productAddOnId2,
5888               "properties": { "Time": $("#properties-time").val() }
5889           }
5890       ]
5891     }
5892     await fetch(window.Shopify.routes.root + 'cart/add.js', {
5893       method: 'POST',
5894       headers: {
5895         'Content-Type': 'application/json'
5896       },
5897       body: JSON.stringify(data)
5898     })
5899     .then(response => {
5900       console.error('Sukses Buket Uang:', response);
5901       $(".form-flower").submit()
5902     })
5903     .catch((error) => {
5904       console.error('Error Buket Uang:', error);
5905       $(".form-flower").submit()
5906     });
5907   }
5908   
5909   async function saveCard(){
5910     let isCard = true
5911     const kartu_penerima = $("[data-properties=penerima]").val() !== '' ? $("[data-properties=penerima]").val() : ''
5912     const kartu_pengirim = $("[data-properties=pengirim]").val() !== '' ? $("[data-properties=pengirim]").val() : ''
5913     const kartu_ucapan = $("[data-properties=ucapan]").val() !== '' ? $("[data-properties=ucapan]").val() : ''
5914     const foto = $("#properties-photo").val()
5915     const video = $("#properties-video").val()
5916     const data = JSON.stringify({
5917       "id": qrID, 
5918       "penerima": $("#properties-nama-penerima").val(), 
5919       "kartu_penerima": kartu_penerima, 
5920       "kartu_ucapan": kartu_ucapan, 
5921       "kartu_pengirim": kartu_pengirim, 
5922       "foto": foto,
5923       "video": video, 
5924       "productId": "8144957800663", 
5925       "order_name": "", 
5926       "status": "Cart"
5927     })
5928 
5929     
5930   }
5931 
5932   async function additem(items){
5933     try {
5934       let formData = items
5935       if(items?.length) {
5936         formData = {
5937            'items': items
5938         };
5939       }
5940   
5941       const add = await fetch(window.Shopify.routes.root + 'cart/add.js', {
5942         method: 'POST',
5943         headers: {
5944           'Content-Type': 'application/json',
5945           'X-Requested-With':'xmlhttprequest' /* XMLHttpRequest is ok too, it's case insensitive */
5946         },
5947         body: JSON.stringify(formData)
5948       })
5949   
5950       const data = await add.json();
5951       return data
5952     } catch(err){
5953       console.log('Error additem', err)
5954     }
5955   }
5956 
5957   async function addons(){
5958     let items = []
5959     $(".addon-item").each(function(){
5960       const p = $(this)
5961       const props = p.next(".propsAddonSpotify")
5962       const id = $(this).data("id")
5963       const quantity = $(this).data("qty")
5964       const propId = $("#properties-time").val()
5965       let properties = {}
5966       if(id === 46067682607319) {
5967         const link = props.find(".spotifyLinkAddon").text()
5968         const photo = props.find(".spotifyFotoAddon").text()
5969         const song = props.find(".spotifySongAddon").text()
5970         const artist = props.find(".spotifyArtistAddon").text()
5971         properties = {
5972           id: propId,
5973           "Spotify Link": link !== '' ? link : '-',
5974           "Spotify Photo": photo !== '' ? photo : '-',
5975           "Spotify Song": song !== '' ? song : '-',
5976           "Spotify Artist": artist !== '' ? artist : '-',
5977           type: 'addon'
5978         }
5979       } else {
5980         properties = { 
5981           "id": propId, 
5982           "type": "addon"
5983         }
5984       }
5985       items.push({
5986         id, 
5987         quantity, 
5988         properties
5989       })
5990     })
5991     return items
5992   }
5993 
5994   async function propItems() {
5995     let props = {}
5996     $("[data-properties]").each(function(e){
5997       let elementType = this.tagName;
5998       const k = $(this).data("properties")
5999       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') {
6000         const v = elementType === 'SELECT' ? $(this).find(":selected").val() : $(this).val();
6001         if(v !== '') {
6002           props[k] = v?.replace(/[\s\n]/g, '');
6003         }
6004       }
6005     })
6006     return props
6007   }
6008 
6009   async function showPopupCart(items){
6010     if(productType !== '') {
6011       console.log("clarity event " + productType + ' completeOrder')
6012       window.clarity("event", `${productType} completeOrder`)
6013       // window.clarity("set", productType, `completeOrder - ${productDate}`)
6014     }
6015     $("#popupCart").show()
6016     
6017       $(".propDeliveryCity").text($("#cities").val())
6018       $(".propDeliveryDate").text($("#propDeliveryDate").val())
6019       $(".propDeliveryTime").text($("#propDeliveryTime").val())
6020       $(".propDeliveryName").text($("[data-properties=nama-penerima]").val())
6021       $(".propDeliveryAddress").text($("[data-properties=alamat-penerima]").val())
6022       $(".propDeliveryPhone").text($("[data-properties=telepon-penerima]").val())
6023       $(".propDeliveryProv").text($("#province").val())
6024       $(".propDeliveryZip").text($("#zip").val())
6025       
6026     
6027 
6028     const addons = []
6029     if(items && items.length > 0) {
6030       for(let i = 1; i < items.length; i++) {
6031         const spotifyLink = items[i].properties['Spotify Link']
6032         const spotifyPhoto = items[i].properties['Spotify Photo']
6033         const spotifySong = items[i].properties['Spotify Song']
6034         const spotifyArtist = items[i].properties['Spotify Artist']
6035         const price = items[i].price / 100
6036         const props = spotifyLink ? `<div class="propsAddonCart row m-0">
6037                   <div class="col-12 col-lg-2"></div>
6038                   <div class="col-12 col-lg-10">
6039                     <p>
6040                       <span>spotify link</span>
6041                       <span>${spotifyLink}</span>
6042                     </p>
6043                     <p>
6044                       <span>Upload Photo</span>
6045                       <span>${spotifyPhoto}</span>
6046                     </p>
6047                     <p>
6048                       <span>song / playlist name</span>
6049                       <span>${spotifySong}</span>
6050                     </p>
6051                     <p>
6052                       <span>artist name</span>
6053                       <span>${spotifyArtist}</span>
6054                     </p>
6055                   </div>
6056                 </div>` : '';
6057         addons.push(`<div class="row m-0">
6058                   <div class="imgAddonCart col-2">
6059                     <img
6060                       width="43"
6061                       src="${items[i].image}"
6062                       alt=""
6063                     >
6064                   </div>
6065                   <div class="imgAddonTitlePrice col-10 align-self-center">
6066                     <div class="row justify-content-between m-0">
6067                       <div class="col-12 col-lg-8">
6068                         <h5>${items[i].title}</h5>
6069                       </div>
6070                       <div class="col-12 col-lg-4 text-lg-right">
6071                         <span>${rupiah.format(price)}</span>
6072                       </div>
6073                     </div>
6074                   </div>
6075                 </div>${props}`)
6076       }
6077     }
6078     // console.log(addons)
6079     if(addons.length === 0) {
6080       $(".itemAddonCart").hide()
6081       return
6082     }
6083     $(".toggleAddonCart h4").text(`add-ons (${items.length - 1})`)
6084     $(".wrapperItemAddonCart").html(addons)
6085   }
6086 
6087   const money = (money) => {
6088       return new Intl.NumberFormat('id-ID',
6089           { style: 'currency', currency: 'IDR', minimumFractionDigits: 0 }
6090       ).format(money);
6091   }
6092 
6093   async function showNoteMoney() {
6094     let qty50k = $("[data-properties='Uang 50k']").val()
6095     let qty100k = $("[data-properties='Uang 100k']").val()
6096     const total50k = Number(qty50k) * 50000
6097     const total100k = Number(qty100k) * 100000
6098     const total_all = total50k + total100k
6099     $(".prop50k").html(`<span>${qty50k} Lembar: <strong class="pl-1">${money(total50k)}</strong></span>`)
6100     $(".prop100k").html(`<span>${qty100k} Lembar: <strong class="pl-1">${money(total100k)}</strong></span>`)
6101     $(".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://ruang.islamic-books.org/" target="_blank" style="text-decoration: underline;
6101 color: #8d3f2d">Customer Service</a> to confirm with proof of payment.</p>`)
6102   }
6103 
6104   async function removeImage() {
6105     const data = JSON.stringify({
6106       "ID": $("#properties-properties-qrId").val(), 
6107       "Kartu Nama Penerima": $("#properties-kartu-nama-penerima").val(), 
6108       "Kartu Nama Pengirim": $("#properties-kartu-nama-pengirim").val(), 
6109       "Kartu Ucapan": $("[data-properties=ucapan]").val(), 
6110       "Nama Penerima": $("#properties-nama-penerima").val(), 
6111       "Order Number":"",
6112       "Status":"Product", 
6113       "Foto": "", 
6114       "Media": $("#properties-video").val(), 
6115       "Image": "8144957800663"
6116     })
6117     const remove = updateCard(data)
6118     if(remove) {
6119       $(this).hide()
6120       $("#properties-photo").val("-")
6121       $(".placeholder-image").show()
6122       $(".preview-image").attr("src", "")
6123     }
6124   }
6125 
6126   async function removeVideo() {
6127     const data = JSON.stringify({
6128       "ID": $("#properties-properties-qrId").val(), 
6129       "Kartu Nama Penerima": $("#properties-kartu-nama-penerima").val(), 
6130       "Kartu Nama Pengirim": $("#properties-kartu-nama-pengirim").val(), 
6131       "Kartu Ucapan": $("[data-properties=ucapan]").val(), 
6132       "Nama Penerima": $("#properties-nama-penerima").val(), 
6133       "Order Number":"",
6134       "Status":"Product", 
6135       "Foto": $("#properties-photo").val(), 
6136       "Media": "", 
6137       "Image": "8144957800663"
6138     })
6139     const remove = updateCard(data)
6140     if(remove) {
6141       $("#properties-video").val("-")
6142       $(this).find("img").hide()
6143       $(this).hide()
6144       $(this).prev("p").text("Add video to make it more special (optional)")
6145       $("#label-input-video").show()
6146       $("#label-input-video span").text("Upload Video")
6147       $(".case-video-preview p span").remove()
6148     }
6149   }
6150 
6151   async function loadItemOccasion(t, occasion) {
6152     const name = occasion?.replace('greeting-card-', '')
6153     $("#kartu-ucapan").val("")
6154     $("[data-occassion]").removeClass("selected")
6155     $("[data-properties=ucapan]").val("")
6156     $("#save-card").attr("disabled", true)
6157     t.addClass("selected")
6158     $("#show_note").attr("data-card-occassion", name)
6159     $.get(`https://outerbloom.com/collections/${occasion}/products.json`, function(data, status){
6160         const products = data.products
6161         const html = []
6162         for(let i = 0; i < products.length; i++) {
6163             const id = products[i].id
6164             const variantId = products[i].variants[0].id
6165             const img = products[i].images[0].src
6166             const title = products[i].title
6167             const price = products[i].variants[0].price
6168             const qty = products[i].variants[0].inventory_quantity
6169             const body = `<div class="item-card${price < 1 ? ' free' : ' nofree'}${i === 0 ? ' selected' : ''}" data-id=${id}>
6170                 <label for="card-${variantId}"></label>
6171                     <div class="card-image">
6172                         <img src="${img}" alt="${title}" width="" height="" />
6173                     </div>
6174                     <div class="card-meta text-center">
6175                         <h5>${title}</h5>
6176                         <p>${price < 1 ? 'FREE' : rupiah.format(price)}</p>
6177                         <input id="card-${variantId}" type="radio" name="id" value="${variantId}" data-price="${price}">
6178                     </div>
6179                 </div>`
6180             html.push(body)
6181         }
6182         const withoutCard = `<div class="item-card item-without-card">
6183                 <label for="card-0"></label>
6184                     <div class="card-image">
6185                         <img src="https://cdn.shopify.com/s/files/1/1589/6833/t/129/assets/without-card.png?v=1747632283" alt="Without card" width="" height="" />
6186                     </div>
6187                     <div class="card-meta text-center">
6188                         <h5>
6188Send without a greeting card</h5>
6189                         <input id="card-0" type="radio" name="id" value="" data-price="">
6190                     </div>
6191                 </div>`
6192         $("#itemCards .items-card").html(html.length === 0 ? '<p>No Item available</p>' : html.join(""))
6193     });
6194   }
6195         
6196   $(document).ready(function(){
6197 
6198     // Observer to auto-trigger addon loading when addon section becomes visible
6199     const addonObserver = new MutationObserver(function(mutations) {
6200       mutations.forEach(function(mutation) {
6201         const target = $(mutation.target)
6202         if(target.hasClass('purchaseAddon') && mutation.type === 'attributes' && mutation.attributeName === 'class') {
6203           if(!target.hasClass('hide')) {
6204             // Addon section just became visible, ensure items are loaded
6205             setTimeout(function() {
6206               if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) {
6207                 console.log("Auto-triggering addon load...")
6208                 $("[data-addon=upsell-all]").trigger("click")
6209               }
6210             }, 150)
6211           }
6212         }
6213       })
6214     })
6215     
6216     // Start observing addon section
6217     const addonSection = document.querySelector('.purchaseAddon')
6218     if(addonSection) {
6219       addonObserver.observe(addonSection, { 
6220         attributes: true, 
6221         attributeFilter: ['class'] 
6222       })
6223     }
6224 
6225     $(".purchasePopup").delegate("#addtocart-card", "click", async function(){
6226     
6227     $(this).find("span").addClass("loading")
6228     let isValid = true
6229     $(".formAddressPurchase [required]").each(function(){
6230       const t = $(this)
6231       const input = t.val()
6232       const p = t.parent()
6233       if(input === '') {
6234         p.addClass("error")
6235         isValid = false
6236       }
6237     })
6238 
6239     if(!isValid) {
6240       $(this).find("span").removeClass("loading")
6241       return
6242     }
6243     
6244     let items = []
6245     const mainProps = {
6246       
6247         "Delivery Date": $("#propDeliveryDate").val(),
6248         "Delivery Time": $("#propDeliveryTime").val() !== '' ? $("#propDeliveryTime").val() : '-' ,
6249         "Kota Pengiriman": $("#cities").val(),
6250         "Nama Penerima": $("[data-properties=nama-penerima]").val() !== '' ? $("[data-properties=nama-penerima]").val() : '-' ,
6251         "Alamat Penerima": $("[data-properties=alamat-penerima]").val() !== '' ? $("[data-properties=alamat-penerima]").val() : '-' ,
6252         "Kodepos": $("#zip").val() !== '' ? $("#zip").val() : '-' ,
6253         "Telepon Penerima": $("[data-properties=telepon-penerima").val() !== '' ? $("[data-properties=telepon-penerima").val() : '-' ,
6254       
6255       
6256         "Papan Nama Penerima": $("[data-properties=penerima]").val() !== '' ? $("[data-properties=penerima]").val() : '-' ,
6257         "Papan Ucapan": $("[data-properties=ucapan]").val() !== '' ? $("[data-properties=ucapan]").val() : '-' ,
6258         "Papan Nama Pengirim": $("[data-properties=pengirim]").val() !== '' ? $("[data-properties=pengirim]").val() : '-' ,
6259         "Papan Logo": $("[data-properties=papan-logo]").val() !== '' ? $("[data-properties=papan-logo]").val() : '-' ,
6260         "Foto Alamat": $("[data-properties=foto-alamat]").val() !== '' ? $("[data-properties=foto-alamat]").val() : '-' ,
6261       
6262       
6263       "Province": $("#province").val() !== '' ? $("#province").val() : '-' ,
6264       "Country": $("#properties-kota-pengiriman-country").val() !== '' ? $("#properties-kota-pengiriman-country").val() : '-' ,
6265       "Shipping": $("#properties-shipping").val() !== '' ? $("#properties-shipping").val() : '-' ,
6266       "Company": $("[data-properties=company]").val() !== '' ? $("[data-properties=company]").val() : '-' ,
6267       "id": $("#properties-time").val() !== '' ? $("#properties-time").val() : '-',
6268       "type": 'product'
6269     }
6270     const props = await propItems()
6271     properties = {...mainProps, ...props };
6272     const id = $("#productSelect").find('option:selected').val()
6273     console.log(id, 'main ID')
6274     const mainItem = {
6275       id: Number(id),
6276       quantity: 1,
6277       properties
6278     }
6279     items.push(mainItem)
6280     const cardId = $("#itemCards").find(".selected input").val()
6281     const cardItem = {
6282       id: Number(cardId),
6283       quantity: 1,
6284       properties: { "id": $("#properties-time").val() !== '' ? $("#properties-time").val() : '-', type: 'card' }
6285     }
6286     console.log(cardId, 'cardId')
6287     if(cardId) {
6288       items.push(cardItem)
6289     }
6290     const addon = await addons()
6291     if(addon) {
6292       for(let i = 0;
6292 i < addon.length; i++){
6293         items.push({
6294           id: addon[i].id,
6295           quantity: addon[i].quantity,
6296           properties: addon[i].properties
6297         })
6298       }
6299     }
6300     const addItems = await additem(items)
6301     console.log(addItems.items, 'add items')
6302     if(addItems) {
6303       $(this).find("span").removeClass("loading")
6304       disablePopup()
6305       showPopupCart(addItems.items)
6306       
6307       localStorage.setItem("items", JSON.stringify(addItems.items))
6308     }
6309   })
6310   
6311   $("#addtocart-cart .btn").click(async function(){
6312     const id = $("#productSelect").find('option:selected').val()
6313     const mainProps = {
6314       id: $("#properties-time").val() !== '' ? $("#properties-time").val() : '-', 
6315       type: 'product'
6316     }
6317     const props = await propItems()
6318     const properties = { ...mainProps, ...props };
6319     const items = {
6320       id: Number(id),
6321       quantity: 1,
6322       properties
6323     }
6324     const addItems = await additem(items)
6325     if(addItems) {
6326       showPopupCart(addItems.items)
6327       localStorage.setItem("items", JSON.stringify(addItems))
6328     }
6329   })
6330 
6331   $(".formAddressPurchase [required]").change(function(){
6332     const t = $(this)
6333     const p = t.parent()
6334     const v = t.val()
6335     if(v !== '') {
6336       p.removeClass("error")
6337     }
6338   })
6339 
6340   $("#save-card").click(async function(){
6341     const parent = $(this).parents(".sectionPurchase")
6342     const next = parent.next(".sectionPurchase")
6343     $(this).find("span").addClass("loading")
6344     const card = await saveCard()
6345     console.log(card, 'ssaveCCC')
6346     if(card?.status === 200 || card?.status === 201) {
6347       $(".scanCard").removeClass("hide")
6348       $(this).find("span").removeClass("loading")
6349       parent.addClass("hide")
6350       next.removeClass("hide")
6351       if(next.hasClass("purchaseAddon")) {
6352         $("[data-addon=upsell-all]").click()
6353         console.log("clarity event addons")
6354         window.clarity("event", `${productType} add-ons`)
6355         // Ensure addon items are loaded when entering addon popup
6356         setTimeout(function() {
6357           if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) {
6358             $("[data-addon=upsell-all]").trigger("click")
6359           }
6360         }, 100)
6361       }
6362       if(next.hasClass("purchaseAddress")) {
6363         $("#zip").select2()
6364       }
6365     }
6366   })
6367 
6368   $("#skip-card").click(async function(){
6369     $("#greetingCard [data-properties]").val("")
6370     $("#properties-photo").val("")
6371     $("#properties-video").val("")
6372     const parent = $(this).parents(".sectionPurchase")
6373     const next = parent.next(".sectionPurchase")
6374     parent.addClass("hide")
6375     next.removeClass("hide")
6376     // $("#itemCards").html("")
6377     removeImage()
6378     removeVideo()
6379     if(next.hasClass("purchaseAddon")) {
6380       $("[data-addon='upsell-all']").click()
6381       console.log("clarity event addons")
6382       window.clarity("event", `${productType} add-ons`)
6383       // Ensure addon items are loaded when entering addon popup
6384       setTimeout(function() {
6385         if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) {
6386           $("[data-addon='upsell-all']").trigger("click")
6387         }
6388       }, 100)
6389     }
6390     if(next.hasClass("purchaseAddress")) {
6391       $("#zip").select2()
6392     }
6393   })
6394 
6395   $("#msgCard").click(async function(){
6396       $(this).parent().addClass("loading")
6397       let occasion = $(".selected[data-occassion]").data("occassion")
6398       occasion = occasion?.replace("greeting-card-", "")
6399       const { data } = await getFetch(`${host}/api/card/template/occasion?name=${occasion}`);
6400       const d = data?.data
6401       for(let i = 0; i < d.length; i++) {
6402         const num = Math.floor(Math.random() * (d.length - 1 + 1) + 1);
6403         const greeting = d[num]?.Greeting
6404         $(".greetingCard textarea").val(greeting)
6405         $(this).parent().removeClass("loading")
6406       }
6407       $("#save-card").attr("disabled", false)
6408     })
6409 
6410   $(".sectionPurchaseBoard .next-purchase-button").click(function(){
6411     const parent = $(this).parents(".sectionPurchase")
6412     const next = parent.next(".sectionPurchase")
6413     parent.addClass("hide")
6414     next.removeClass("hide")
6415   })
6416 
6417   $("#editCard").click(function(){
6418     $(".custom-card").show()
6419     $(".preview-card").hide()
6420   })
6421 
6422   $("#first_name, #last_name").change(function(){
6423     const v = $(this).val()
6424     const first_name = $("#first_name").val()
6425     const last_name = $("#last_name").val() !== '' ? ' ' + $("#last_name").val() : ''
6426     $("[data-properties=nama-penerima]").val(first_name+last_name)
6427   })
6428 
6429   $("[data-occassion]").click(function(){
6430       const t = $(this)
6431       const p = t.parents(".sectionPurchase")
6432       // $(".greetingCard").addClass("disabled")
6433       const occasion = t.data("occassion")
6434       loadItemOccasion(t, occasion)
6435   })
6436 
6437   $("#itemCards").delegate(".item-card:not(.item-without-card) label", "click", function(){
6438       const id = $(this).parent(".item-card").data("id")
6439       const t = $(this).parent(".item-card")
6440       const target = t.find("input")
6441       const v = $('.item-card input[type="radio"]:checked').val();
6442       $("#itemCards .item-card").removeClass("selected")
6443       t.addClass("selected")
6444       $("#itemCards .item-card").find("input").attr("name", "")
6445       if(target.length > 0) {
6446           target.attr("name", "id[]")
6447           $("#properties-card").val(id)
6448           $(".greetingCard").removeClass("disabled")
6449           $("#skip-card").attr("disabled", false)
6450       } else {
6451           $("#properties-card").val("")
6452       }
6453   })
6454 
6455   $("#itemCards").delegate(".item-without-card label", "click", function(){
6456     const parent = $(this).parents(".sectionPurchase")
6457     const next = parent.next(".sectionPurchase")
6458     $(".greetingCard").addClass("disabled")
6459     parent.addClass("hide")
6460     next.removeClass("hide")
6461     $("[data-addon=upsell-all]").click()
6462     $("#zip").select2()
6463   })
6464 
6465   $("[data-properties=ucapan]").keyup(function(){
6466     const v = $(this).val()
6467     const p = $(this).parents(".sectionPurchase")
6468     $(".purchaseAddress").find(".greetingCard textarea").val(v)
6469     if(v.length > 3) {
6470       p.find(".next-purchase-button").attr("disabled", false)
6471     } else {
6472       p.find(".next-purchase-button").attr("disabled", true)
6473     }
6474   })
6475 
6476   $("[data-properties=penerima]").keyup(function(){
6477     const v = $(this).val()
6478     $(".purchaseAddress").find("[data-properties=penerima]").val(v)
6479   })
6480 
6481   $("[data-properties=pengirim]").keyup(function(){
6482     const v = $(this).val()
6483     $(".purchaseAddress").find("[data-properties=pengirim]").val(v)
6484   })
6485 
6486   $(document).click(function(e){
6487 
6488      if($(e.target).closest('.wrapperPopupCart').length != 0) return false;
6489      // $('#popupCart').fadeOut('slow');
6490     // location.reload()
6491   });
6492 
6493   $(".toggleAddonCart").click(function(){
6494     const p = $(this).parent(".itemAddonCart")
6495     p.toggleClass("open")
6496   })
6497 
6498   $(".btnViewCart").click(function(){
6499     window.location.href = "https://outerbloom.com/cart";
6500   })
6501 
6502   $(".btnViewCheckout").click(async function(){
6503     $(this).find("span").addClass("loading")
6504     let zip = $("#zip").val()
6505     const first_name = $("#first_name").val()
6506     const last_name = $("#last_name").val()
6507     const company = $("#company").val() !== '' ? $("#company").val() : ''
6508     const address1 = $("#delivery_address").val()
6509     const address2 = zip && zip !== '' ? zip?.split(' - ')[1] : ''
6510     zip = zip && zip !== '' ? zip?.split(' - ')[0] : ''
6511     const phone = $("#recipient_number").val()
6512     const city = $("#cities").val()
6513     const province = $("#province").val()
6514     const country = 'Indonesia'
6515     const ver = Date.parse(new Date())
6516     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}`
6517 
6518     const clear = await fetch(`/cart/clear.js`, {method: 'POST'})
6519     if(clear.status === 200) {
6520       const savedItem = window.localStorage.getItem("items");
6521       const items = JSON.parse(savedItem)
6522       const addItems = await additem(items)
6523       console.log(addItems, 'new addItems')
6524       if(addItems) {
6525         window.location.href = `https://outerbloom.com/checkout?${params}`;
6526       }
6527     }
6528   })
6529 
6530   $(".btnContinueShopping").click(function(){
6531     window.location.href = "https://outerbloom.com/";
6532   })
6533 
6534     if (isIOS) {
6535       $(".empty-state-card").click(function(){
6536         $("#input-foto").trigger("click")
6537       })
6538       $(".btn-upload-image").click(function(){
6539         $("#input-foto").trigger("click")
6540       })
6541       $("[for=input-video]").click(function(){
6542         $("#input-video").trigger("click")
6543       })
6544       $(".btn-upload-papan").click(function(){
6545         $("#logoPapan").trigger("click")
6546       })
6547     }
6548   
6549     $("[data-properties]").each(function(){
6550       const select = $(this).parents(".form-group").find("select")
6551       $(this).change(function(){
6552         const name = $(this).data("properties")
6553         const v = $(this).val()
6554         if (name == 'telepon-penerima') {
6555           let phone = v.replace(/[^0-9]/g, '')
6556           $(this).val(phone);
6557           $("#properties-telepon-penerima").val(phone)
6558           $('.iti__search-input').val('-') 
6559         } else {
6560           $("#properties-" + name).val(v)
6561         }
6562       })
6563       select.on("change", function(){
6564         const name = $(this).data("properties")
6565         const v = $(this).val()
6566         $("#properties-" + name).val(v)
6567       })
6568     })
6569 
6570     $("#show_note").click(function(){
6571       nameq = $("#properties-nama-penerima").val()
6572       dear = $("#properties-kartu-nama-penerima").val()
6573       card = $("[data-properties=ucapan]").val()
6574       sender = $("#properties-kartu-nama-pengirim").val()
6575       photo = $("#properties-photo").val()
6576       video = $("#properties-video").val()
6577       updateCard(nameq, dear, card, sender, photo, video, status)
6578     })
6579 
6580     $(".remove-image").click(function(e){
6581       e.preventDefault()
6582       $(this).find("img").show()
6583       removeImage()
6584     })
6585 
6586     $(".remove-media").click(function(e){
6587       e.preventDefault()
6588       $(this).find("img").show()
6589       removeVideo()
6590     })
6591 
6592     
6593 
6594     $("[data-delivery_method]").click(function(e){
6595       e.preventDefault()
6596       const t = $(this)
6597       const data = t.data("delivery_method")
6598       $("[data-delivery_method]").removeClass("selected")
6599       t.addClass("selected")
6600       $("#cities").val("")
6601       $("#properties-delivery-date").val("-")
6602       $("#deliveryDate button").removeClass("selected")
6603       $("#full-date").val("Full Calendar →")
6604       $("#propDeliveryDate").val("")
6605       const step3 = $("#step-3")
6606       if(data.match('PickUp')) {
6607         $(".selfpickup-point").show()
6608         step3.find("[data-finished=false]").hide()
6609         $("#panel-4").hide()
6610         step3.find("[data-finished=true]").show()
6611         $("#cities").attr("required", false)
6612         $("#form-group-city").hide()
6613         $("#row-delivery-time").hide()
6614         $("#propDeliveryTime, #properties-delivery-time, #properties-nama-penerima, #properties-alamat-penerima, #properties-kodepos, #properties-kodepos, #properties-telepon-penerima").val("-")
6615         $("#propDeliveryTime").attr("required", false)
6616         // $("#deliveryDate").find("button:first-child").addClass("stop")
6617         $(".form-selfpickup").show()
6618         $(".form-delivery").hide()
6619         $(".form-delivery").find("input, textarea, select").val("")
6620         $(".form-delivery").find("input, textarea, select").attr("required", false)
6621         $("#properties-shipping").val("0")
6622         $("#noteDeliveryDate").hide()
6623         $(".form-delivery .form-control").attr("required", false)
6624         $("#stepNav4").hide()
6625         
6626         $("#deliveryDate").find("button:nth-child(1)").addClass("stop")
6627         
6628         
6629         
6630         if(timeOfDay >= 16.01){
6631           $("#deliveryDate").find("button:nth-child(2)").addClass("stop")
6632         }
6633       } else {
6634         
6635         
6636         $("#deliveryDate").find("button:nth-child(1)").removeClass("stop")
6637         step3.find("[data-finished=false]").show()
6638         $("#panel-4").show()
6639         step3.find("[data-finished=true]").hide()
6640         $("#cities").attr("required", true)
6641         $(".selfpickup-point").hide()
6642         $("#form-group-city").show()
6643         $("#cities").val('').trigger('change');
6644         $("#properties-kota-pengiriman").val("-")
6645         
6646         $("#row-delivery-date, #row-delivery-time").show()
6647         $("#propDeliveryDate, #propDeliveryTime").attr("required", true)
6648         $("#deliveryDate").find("button").removeClass("stop")
6649         $(".form-selfpickup").hide()
6650         $(".form-delivery").show()
6651         $(".form-delivery").find("input, textarea, select").attr("required", true)
6652         $(".form-delivery [data-properties]").attr("readonly", false)
6653         $("#properties-kodepos").val("-")
6654         $("#properties-alamat-penerima").val("-")
6655         $(".form-delivery .form-control").attr("required", true)
6656         $(this).parents(".setup-content").attr("id", "step-1")
6657         
6658         $("#stepNav4").show()
6659       }
6660     })
6661 
6662     $("[name=selfpickup]").click(function(){
6663         const p = $(this).parents(".row-pickup")
6664         const pickupCity = $("input[name='selfpickup']:checked").val();
6665         const pickupAddress = $("input[name='selfpickup']:checked").data("address");
6666         const pickupZip = $("input[name='selfpickup']:checked").data("zip");
6667 
6668         $(".row-pickup").removeClass("selected")
6669         p.addClass("selected")
6670         
6671         $("#properties-kota-pengiriman").val(pickupCity)
6672         $("#province").val("Jakarta")
6673         $("#properties-alamat-penerima").val(pickupAddress)
6674         $("#properties-kodepos").val(pickupZip)
6675     })
6676 
6677     $("#cities").change(function(e){
6678       e.preventDefault()
6679       $(this).parent(".row").find("p.error").remove()
6680       $("#full-date").val("Full Calendar")
6681       $("#deliveryDate, #deliveryDateFull label ").show()
6682       $("#deliveryDateFull").removeClass("filled")
6683       $(".btnChangeDeliveryDate").addClass("hide")
6684       $("#full-date").prop('disabled', false);
6685       $("#stepNav2, #stepNav3, #stepNav4").removeClass("btn-success")
6686       $("#stepNav2, #stepNav3, #stepNav4").find("a").attr("disabled", true)
6687       const step3 = $("#step-3")
6688       $("#cityNote").remove()
6689       $("#noteDeliveryDate").hide()
6690       $("#noteDeliveryDate").empty()
6691       let v = $(this).val()
6692       let v2 = $('option:selected', this).attr('data-city');
6693       let v3 = $('option:selected', this).attr('data-province');
6694       let price = $('option:selected', this).attr('data-price');
6695       $("#country").val(v)
6696       $("#properties-kota-pengiriman").val(v)
6697       $("#properties-shipping").val(price)
6698       $("#deliveryDate button, #deliveryTime button, .calendarseasonal .button").removeClass("selected")
6699       $("#properties-delivery-date, #properties-delivery-time").val("-")
6700       $("#propDeliveryDate, #propDeliveryTime").val("")
6701       let note = $('option:selected', this).attr('data-note');
6702       if(v === 'Kota Lainnya') {
6703         $("#noteDeliveryDate").show()
6704         $("#noteDeliveryDate").text("Order akan segera dikirim. Estimasi tanggal diterima akan disesuaikan dengan waktu pengiriman oleh pihak ekspedisi ke lokasi Anda.")
6705         $("#zip").attr("required", false)
6706         $("#zip").hide()
6707         $("#propDeliveryDate, #propDeliveryTime").attr("required", false)
6708         $("#propDeliveryDate, #properties-delivery-date, #propDeliveryTime, #properties-delivery-time").val("-")
6709         $("#row-delivery-date, #row-delivery-time").hide()
6710         $("#properties-shipping").val("")
6711         // $(this).parents(".setup-content").attr("id", "step-2")
6712         
6713       } else {
6714         $("#noteDeliveryDate").hide()
6715         $("#zip").attr("required", true)
6716         $("#zip").show()
6717         $("#row-delivery-date, #row-delivery-time").show()
6718         $("#propDeliveryDate, #propDeliveryTime").attr("required", true)
6719         $("#deliveryDate").find("button").removeClass("stop")
6720         // $(this).parents(".setup-content").attr("id", "step-1")
6721         
6722       }
6723       
6724       
6725       
6726       // if(v !== 'Jakarta') {
6727       //   $("[data-type=upsell]").hide()
6728       // } else {
6729       //   $("[data-type=upsell]").show()
6730       // }
6731       // $('.collection-addons')[0].swiper.update();
6732       
6733       
6734       getProvince(v)
6735       $("#zip").html(`<option value="">Choose Postal Code</option>`)
6736       renderZip(v, v2, v3)
6737       
6738       disabledSameDay()
6739       
6740 
6741       if(v !== 'Jakarta' && v !== 'Depok' && v !== 'Bekasi' && v !== 'Tangerang') {
6742         
6743         $("#cardOccasion, #navAddon, .collection-addons").hide()
6744         
6745         $("[data-addon=giftcard]").show()
6746         $("[data-addon=giftcard]").click()
6747         $("#itemAddons").show()
6748         $("#flower-step").addClass("nonjadetabek")
6749       } else {
6750         $("#cardOccasion, #navAddon, .collection-addons").show()
6751         $("[data-addon=all]").click()
6752         $("#flower-step").removeClass("nonjadetabek")
6753       }
6754       
6755         if(v !== '') {
6756           $("#personalizeBtn .btn").attr("disabled", false)
6757         } else {
6758           $("#personalizeBtn .btn").attr("disabled", true)
6759         }
6760       
6761     })
6762 
6763     $("#zip").change(function(e){
6764       let v = $(this).val()
6765       var city = $("#cities").find('option:selected');
6766       $("#properties-kodepos").val(v)
6767       if(city === 'Kota Lainnya') {
6768         $(this).attr("required", true)
6769         $("#recipient-address").val("")
6770       }
6771     })
6772 
6773     
6774       var minDate = +7
6775       
6776     
6777 
6778     $("#full-date").datepicker({
6779       minDate,
6780       dateFormat: 'Mdd_yy', //Nop22_2021,
6781       
6782       beforeShowDay: disabledays,
6783       
6784       onSelect: function (date) {
6785         $("#deliveryDate, #deliveryDateFull label ").hide()
6786         $("#deliveryDateFull").addClass("filled")
6787         $(".btnChangeDeliveryDate").removeClass("hide")
6788         $("#full-date").prop('disabled', true);
6789         $('#propDeliveryDate, #properties-delivery-date').val('Kirim_'+date);
6790         $(".date-full").addClass("selected")
6791         $(".date-single, .calendar-group").removeClass("selected")
6792         $("#propDeliveryTime").val('')
6793         $("#properties-delivery-time").val('-')
6794         $(".time-single").removeClass("selected")
6795         
6796         
6797       }
6798     });
6799 
6800     $(".btnChangeDeliveryDate").click(function(){
6801         $("#deliveryDate, #deliveryDateFull label ").show()
6802         $("#deliveryDateFull").removeClass("filled")
6803         $(".btnChangeDeliveryDate").addClass("hide")
6804         $("#full-date").prop('disabled', false);
6805     })
6806   
6807     $("#deliveryDate").delegate(".calendarbutton:not(.date-full)", "click", function(e){
6808       e.preventDefault()
6809       $(this).parents("#row-delivery-date").find("p.error").remove()
6810       const fulldate = $(this).data("fulldate")
6811       const day = $(this).data("day")
6812       const date = $(this).data("date")
6813       const month = $(this).data("month")
6814       const year = $(this).data("year")
6815       const off_pagi = $(this).data("offpagi")
6816       const off_siang = $(this).data("offsiang")
6817       const off_Malam = $(this).data("offMalam")
6818       $(".calendarbutton").removeClass("selected")
6819       $(this).addClass("selected")
6820       $("#propDeliveryDate, #properties-delivery-date").val(`Kirim_${month}${date}_${year}`)
6821       $("#propDeliveryTime").val('')
6822       $("#properties-delivery-time").val('-')
6823       $(".calendarbutton2").removeClass("selected")
6824       $("#full-date").val("Full Calendar")
6825 
6826       
6827       if(off_pagi && timeOfDay > off_pagi) {
6828         $("[data-time=Morning]").attr("disabled", true)
6829       } else {
6830         $("[data-time=Morning]").attr("disabled", false)
6831       }
6832       if(off_siang && timeOfDay > off_siang) {
6833         $("[data-time=Afternoon]").attr("disabled", true)
6834       } else {
6835         $("[data-time=Afternoon]").attr("disabled", false)
6836       }
6837       
6838 
6839       
6840     })
6841     
6842     if(today === 14 && timeOfDay > 17.00) {
6843       $("#deliveryDate button:first-child").attr("disabled", true)
6844     }
6845   
6846     $("#deliveryTime").delegate(".calendarbutton2", "click", function(e){
6847       e.preventDefault()
6848       const time = $(this).data("time")
6849       const date = $("#propDeliveryDate").val()
6850       if(date == '') {
6851         return alert('Silakan pilih tanggal terlebih dahulu')
6852       }
6853       $(".calendarbutton2").removeClass("selected")
6854       $(this).addClass("selected")
6855       $("#propDeliveryTime, #properties-delivery-time").val(`KirimJam_${date.replace('Kirim_','')}_${time}`)
6856     })
6857       
6858     $('textarea.has-limit, input.has-limit').keyup(function () {
6859       max = this.getAttribute("maxlength");
6860       let len = $(this).val().length;
6861       let limit = $(this).siblings(".limit");
6862       if (len > max) {
6863         alert('you have reached the limit');
6864       } else {
6865         limit.text(`${len}/${max}`);
6866       }
6867     });
6868     
6869     $("#button-action-step .btn").click(function(){
6870       $(this).find("span").text("Processing...");
6871     });
6872 
6873     $(".finishBtn").on('click', function() {
6874       $(this).addClass("is-adding");
6875       // $(this).click();
6876     });
6877 
6878     $('.setup-panel .nav-item a.btn-success').trigger('click');
6879 
6880     $("#button-action .btn").click(function(){
6881       $("#flower-step").addClass("block");
6882       $("#button-action").hide();
6883     });
6884         
6885     $(".close-how-order").click(function(){
6886       $("#flower-step").removeClass("block");
6887       $("#button-action").show();
6888     });
6889 
6890     $("#input-foto, #input-video").change(function(e){
6891       readURL(this);
6892     });
6893 
6894     $("#logoPapan").change(function(){
6895       readURLPapan(this);
6896     });
6897 
6898     $("#address-upload").change(async function(){
6899       const upload_address = await readURLAddress(this)
6900       if(upload_address) {
6901         const url = upload_address.url
6902         $(".props-address-upload").val(url)
6903         $(".form-address").addClass("address-uploaded")
6904         $(".form-address-upload").addClass("uploaded")
6905 
6906         $(this).parents(".form-group").siblings(".form-group").find("[required]").attr("required", false)
6907       }
6908     })
6909 
6910     $(".address-manualy").click(function(){
6911       $(".form-address-upload").removeClass("uploaded");
6912       $(".photo-address").hide();
6913       $(".form-address").removeClass("address-uploaded")
6914       $("#formAddressPurchase").find(".form-control").attr("required", true)
6915     });
6916 
6917     $(".case-video-preview").delegate(".replace-video", "click", function(){
6918       $("#input-video").trigger("click")
6919     })
6920 
6921     $('.date-single').click(function(e) {
6922       e.preventDefault();
6923       $('.date-single').removeClass('selected');
6924       $('#full-date').removeClass('selected');
6925       $(this).addClass('selected');
6926       $('#full-date').html('Full' + '<br/>' + 'Calendar');
6927     });
6928     $('#full-date').click(function(e){
6929       e.preventDefault();
6930       $('.date-single').removeClass('selected');
6931       $(this).addClass('selected');
6932     });
6933     
6934     // $("tr").each(function(){
6935     //   if($(this).text().match('SKU')) {
6936     //     $(".sku-product").html($(this).parents("table").html())
6937     //   }
6938     // })
6939     
6940     $("#product-image").scroll(function(){
6941       $(".desc-add").each(function(){
6942         const img = $(this).find("img")
6943         const src = img.data("src")
6944         img.attr("src", src)
6945       })
6946     })
6947 
6948     $(".product-fixed").hide()
6949     
6950     let target = $("#personalizeBtn")
6951     
6952 
6953     $(".product-meta").scroll(function() {
6954         if ($(window).scrollTop() >= target.offset().top ) {
6955             $(".product-fixed").addClass("show")
6956         } else {
6957           $(".product-fixed").removeClass("show")
6958         }
6959     });
6960 
6961     $(window).scroll(function() {
6962         if ($(window).scrollTop() >= target.offset().top ) {
6963             $(".product-fixed").addClass("show")
6964         } else {
6965           $(".product-fixed").removeClass("show")
6966         }
6967     });
6968   });
6969 </script>
6969
6970 
6971   
6971<script>
6972     //
6973   </script>
6973
6974 
6975 
6975<script>
6976   $(document).ready(function(){
6977     $('table tr td').each(function(){
6978       var texto = $(this).text();
6979       var nextto = $(this).next("td");
6980       var sku = $("#data-sku").val()
6981       if(texto == 'SKU'){
6982         nextto.text(sku)
6983       }
6984     });
6985     
6986     $(".stamped-summary-actions-newquestion").text("Tulis Pertanyaan");
6987     $(".stamped-summary-actions-newreview").text("Tulis Review");
6988     $("#tab-questions").text("Pertanyaan");
6989     
6990     $(".freeship .icon").click(function(){
6991       $(".fs-content").slideToggle();
6992       $(this).parents(".freeship").toggleClass("expand");
6993     });
6994     
6995     var $easyzoom = $('.easyzoom').easyZoom();
6996     // Setup thumbnails example
6997     var api1 = $easyzoom.filter('.easyzoom--with-thumbnails').data('easyZoom');
6998     $('.thumbnails').on('click', 'a', function(e) {
6999       var $this = $(this);
7000       e.preventDefault();
7001       // Use EasyZoom's `swap` method
7002       api1.swap($this.data('standard'), $this.attr('href'));
7003     });
7004 
7005     $('#playerID').click(function(){
7006       var videoURL = $('#VdoID').attr('src'),
7007           dataplay = $('#VdoID').attr('data-play');
7008 
7009       //for check autoplay
7010       //if not set autoplay=1
7011       if(dataplay == 0 ){
7012         $('#VdoID').attr('src',videoURL+'?autoplay=1');
7013         $('#VdoID').attr('data-play',1);
7014       }
7015       else{
7016         var videoURL = $('#VdoID').attr('src');
7017         videoURL = videoURL.replace("?autoplay=1", "");
7018         $('#VdoID').prop('src','');
7019         $('#VdoID').prop('src',videoURL);
7020 
7021         $('#VdoID').attr('data-play',0);
7022       }
7023 
7024     });
7025     
7026     $(".product-photo-thumb-video").click(function(e){
7027       e.preventDefault();
7028 
7029       var newEmbed = $(this).attr('href');
7030       $("#featured-image-product").addClass("img-video");
7031       $("#ProductPhotoImg").hide();
7032       $("#featured-image-product .video").show();
7033       $("#featured-image-product iframe").attr('src', newEmbed);
7034       $("#VdoID")[0].src += "&autoplay=1";
7035     });
7036     $(".product-single__thumbnail").click(function(evt){
7037       evt.preventDefault();
7038       $("#featured-image-product").removeClass("img-video");
7039       $("#ProductPhotoImg").show();
7040       $("#featured-image-product .video").hide();
7041       $("#featured-image-product iframe").attr('src', '');
7042     });
7043     
7044     if($('#product-meta .short-desc > div').length >= 1){
7045       //console.log('div detected')
7046       var replacer = $('#product-meta .short-desc > div').contents();
7047       $('#product-meta .short-desc > div').replaceWith(replacer);
7048 
7049       var cAssured =  $('.c-assured').detach();
7050       cAssured.insertAfter('.meta-sds .stock-info');
7051     }
7052 
7053     
7054     
7055     $(".heading-toggle").click(function(){
7056       $(this).parent().toggleClass("open")
7057       
7058     });
7059   });
7060 </script>
7060
7061 
7062 
7063   
7063<script type="application/json" id="ProductJson-Product">
7064         
7065         {"id":8144957800663,"title":"RSLOT77 | Bandar Togel Toto Macau Dengan Sistem Aman Akses Mudah","handle":"blossom-shine","description":"\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eRSLOT77 menyediakan akses Bandar Togel Toto Macau dengan sistem terlindungi, proses masuk praktis, tampilan ringan, serta informasi yang tersusun rapi untuk kenyamanan pengguna."}
7066   </script>
7066
7067   
7068     
7068<script type="application/json" id="VariantJson-Product">
7069       [
7070         
7071           {
7072              "incoming": false,
7073              "next_incoming_date": null
7074           }
7075         
7076       ]
7077     </script>
7077
7078   
7079 
7080 
7081 
7082 </div>
7083 
7084 
7085 
7085<script src="//outerbloom.com/cdn/shopifycloud/storefront/assets/themes_support/option_selection-b017cd28.js" type="text/javascript"></script>
7085
7086 <style>
7087     .stamped-review-header-title,
7088     .stamped-review-header .author,
7089     .stamped-review-content-body,
7090     .stamped-sort-select,
7091     .stamped-review-header .verified-badge[data-type=buyer]:after,
7092     .stamped-review-header-byline,
7093     .stamped-review-reply-body {font-size: 14px!important;font-family: 'Barlow',sans-serif!important;}
7094     .stamped-review {margin-bottom: 0;}
7095     .stamped-review-body {padding-left: 65px;}
7096     .stamped-review:first-child {padding-top: 25px;}
7097     .stamped-review-content {clear: none;}
7098     .stamped-review-reply {margin: 15px 0 0 65px;background: #f2f2f2;border-left: none;}
7099     .stamped-review-reply-body {padding-left: 65px;}
7100     .stamped-review-header .author {text-transform: capitalize;}
7101     .stamped-questions .stamped-review-content {padding-left: 65px;}
7102 
7103     .stamped-pagination {margin: 20px 0 0;}
7104     .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;}
7105     .stamped-pagination li a {color: #121212;padding: 13px 18px;vertical-align: middle;display: block;}
7106     .stamped-pagination li.active a {background-color: #ddd;font-weight: 400;}
7107     .stamped-pagination li:hover a {background: #ddd;}
7108     .stamped-pagination .next {border-right: 1px solid #ccc;}
7109     .stamped-pagination li:first-child {border-top-left-radius: 5px;border-bottom-left-radius: 5px;}
7110     .stamped-pagination li:last-child {border-top-right-radius: 5px;border-bottom-right-radius: 5px;}
7111 
7112     #stamped-pagination-question span.page {display: inline-block;border: 1px solid #ccc;width: 47px;}
7113     #stamped-pagination-question span {font-size: 14px;}
7114     #stamped-pagination-question .page.active {padding: 12px;font-weight: 400;background: #ddd;}
7115     #stamped-pagination-question a, #stamped-pagination-question .page.active {color: #121212;padding: 13px 18px;vertical-align: middle;display: inline-block;}
7116     .stamped-pagination-deco {color: #121212;padding: 13px 18px;width: 47px;vertical-align: middle;display: inline-block;border: 1px solid #ccc;padding: 12px;}
7117     .stamped-pagination-prev, .stamped-pagination-next {position: inherit;}
7118     .stamped-pagination-prev a, .stamped-pagination-next a {width: auto!important;border: 1px solid #ccc;}
7119 
7120     @media (max-width: 480px){
7121       .stamped-review-reply {margin-left: 0!important;}
7122       select.stamped-sort-select {font-size: 13px!important;}
7123     }
7124 
7125   #product-reviews .stamped-summary-ratings, #product-reviews .stamped-summary-actions, .stamped-content {
7126       display: block !important;
7127   }
7128 </style>
7129 
7129<script>
7130     var selectCallback = function(variant, selector) {
7131       timber.productPage({
7132         money_format: "Rp {{amount_no_decimals}}",
7133         variant: variant,
7134         selector: selector
7135       });
7136     };
7137 
7138     jQuery(function($) {
7139       new Shopify.OptionSelectors('productSelect', {
7140         product:
7141 
7142 
7143 
7144 
7145 
7146 {"id":8144957800663,"title":"RSLOT77 | Bandar Togel Toto Macau Dengan Sistem Aman Akses Mudah","handle":"blossom-shine","description":"\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eRSLOT77 menyediakan akses Bandar Togel Toto Macau dengan sistem terlindungi, proses masuk praktis, tampilan ringan, serta informasi yang tersusun rapi untuk kenyamanan pengguna."},
7147         onVariantSelected: selectCallback,
7148         enableHistoryState: true
7149       });
7150 
7151       // Add label if only one product option and it isn't 'Title'. Could be 'Size'.
7152       
7153 
7154       // Hide selectors if we only have 1 variant and its title contains 'Default'.
7155       
7156         $('.selector-wrapper').hide();
7157       
7158     });
7159 </script>
7159
7160 
7161 
7162 
7163   
7163<script type="application/ld+json">
7164     {
7165     "@context": "http://schema.org",
7166     "@type": "Product",
7167 "offers": {
7168 "@type": "Offer",
7169 "availability":"https://schema.org/InStock",
7170 "price": 835000,
7171 "priceValidUntil": "05-10-2025",
7172 "priceCurrency": "IDR",
7173 "url": "https://islamic-books.org/"
7174 },
7175 "brand": {
7176 "@type": "Brand",
7177 "name": "Outerbloom Florist"
7178 },
7179 "sku": "8144957800663",
7180 "gtin13": "Jawa",
7181 "name": "RSLOT77 | Bandar Togel Toto Macau Dengan Sistem Aman Akses Mudah",
7182 "description": "RSLOT77 menyediakan akses Bandar Togel Toto Macau dengan sistem terlindungi, proses masuk praktis, tampilan ringan, serta informasi yang tersusun rapi untuk kenyamanan pengguna.",
7183 "category": "RSLOT77 menyediakan akses Bandar Togel Toto Macau dengan sistem terlindungi, proses masuk praktis, tampilan ringan, serta informasi yang tersusun rapi untuk kenyamanan pengguna.",
7184 "url": "https://islamic-books.org/",
7185 "image": {
7186 "@type": "ImageObject",
7187 "url": "https://outerbloom.com/cdn/shop/files/Blossom-Shine-WM_small.jpg?v=1695788426",
7188 "image": "https://outerbloom.com/cdn/shop/files/Blossom-Shine-WM_small.jpg?v=1695788426",
7189 "name": "RSLOT77 | Bandar Togel Toto Macau Dengan Sistem Aman Akses Mudah",
7190 "width": 1024,
7191 "height": 1024
7192 }
7193     }
7194   </script>
7194
7195 
7196 
7197 
7198 
7199         
7200 
7200<script id="bss-ltap-hide-price" type="text/javascript" >
7201 !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)}))}
7201)),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)}
7201)),o=!1),e=c<=0?0:c};if(c(),t){const e=function(){const e=c;let t;return()=>{clearTimeout(t),t=setTimeout(()=>{e.apply(this)},3e3)}};window.addEventListener("scroll",e())}}}}(e),function(e){e.ltsp.removeElementByLTSPMessage=function(){let e=document.getElementsByClassName("bsscommerce-ltsp-message"),t=[],o=window.Shopify.shop;for(let r=0;r<e.length;r++){let c=e[r],l=[".grid-product__on-sale",".product-unit-price",".product-price-unit",".grid-link__sale_price","s",".price__compare",".product__compare-price",".price__unit",".card__price--regular",".sale-tag",".compare-price",".old-price",".savings",".was_price",".price--compare",".price-compare",".was"];if("stark-hockey.myshopify.com"===o){const e=c.closest(".product-index");if(e){const t=e.querySelector(".product-modal");t&&t.remove()}continue}let s=c.closest(".product-parent");if(s){let e=s.querySelector("form .tt-btn-addtocart");e&&t.push(e);let o=s.querySelector(".tt-btn-quickview");o&&t.push(o)}if(s=c.closest(".ProductItem"),s){let e=s.querySelector(".quickshop-btn");if(e&&t.push(e),"shrimptoncouture-com.myshopify.com"===o){let e=s.querySelector(".ProductItem__PriceList");e&&e.classList.remove("ProductItem__PriceList")}}if(s=c.closest(".product-item--vertical"),s){if("sparklinbluewholesale.myshopify.com"===o){let e=s.querySelector(".product-item__info .product-item__price-list");e&&t.push(e)}let e=s.querySelector(".product-item__info .product-item__action-button");e&&t.push(e),e=s.querySelector(".product-form__payment-container"),e&&t.push(e)}if(s=c.closest(".card-wrapper.underline-links-hover"),s&&"friends-forever-pets.myshopify.com"===o){let e=s.querySelector(".card__content .quick-add");e&&t.push(e);let o=s.querySelector(".card-information .price__sale .price-item.price-item--regular");o&&t.push(o)}if(s=c.closest(".modal_price"),s&&window.Shopify&&"casa-barba.myshopify.com"!==window.Shopify.shop&&"prideandgroom-wholesale.myshopify.com"!==window.Shopify.shop){let e=s.querySelector(".price-ui");e&&t.push(e)}if(s=c.closest(".info.has-padding-top"),s){let e=s.querySelector(".compare-at-price");e&&t.push(e)}if(s=c.closest(".product-thumbnail__price.price"),s){let e=s.querySelector(".money");e&&t.push(e)}if(s=c.closest(".search-result__description"),s){let e=s.querySelector(".money");e&&t.push(e)}if(s=c.closest(".product__price"),s){let e=s.querySelector("[data-product-price][bss-custom-ltsp-attribute]");e&&t.push(e)}if(s=c.closest("#template-product"),s){let e=s.querySelector(".product-form.cart-bar__form");e&&t.push(e)}if("showroom1-ducanero.myshopify.com"===o){if(s=c.closest(".product-area")||c.closest(".price"),s){let e=s.querySelector(".price-area")||s.querySelector(".theme-money");e&&t.push(e)}}else if(s=c.closest(".product-area__details"),s){let e=s.querySelector(".product-detail__form__action");e&&t.push(e);let o=s.querySelector(".quantity-wrapper");o&&t.push(o)}if("quincaillerie-euroline.myshopify.com"===o&&(s=c.closest(".product-form__info-content"),s)){let e=s.querySelector(".price-list");e&&t.push(e)}if(s=c.closest(".product-form__buttons"),s&&t.push(s),s=c.closest(".product-wrap-2"),s){let e=s.querySelector(".product-action-2");e&&t.push(e)}if(s=c.closest(".span6"),s){let e=s.querySelector(".purchase>input"),o=s.querySelector(".price-container>#price-preview"),r=s.querySelector(".price-container>.vat-price");e&&t.push(e),o&&t.push(o),r&&t.push(r)}if(s=c.closest(".product__page"),s){let e=s.querySelector(".quantity-selector");e&&t.push(e)}if(s=c.closest(".product_details_info"),s){let e=s.querySelector(".pro-detail-button"),o=s.querySelector(".price-box");e&&t.push(e),o&&t.push(o)}if(s=c.closest(".product-content"),s){let e=s.querySelector(".product-action");e&&t.push(e)}if(s=c.closest(".product-view .single-product-wrap"),s){let e=s.querySelector(".add-to-cart");e&&t.push(e)}if(s=c.closest(".collection-category .owl-stage .owl-item"),s){let e=s.querySelector(".add-to-cart");e&&t.push(e)}if(s=c.closest(".product__details"),s){let e=s.querySelector(".product-wrap .thumbnail-overlay .info .price ");e&&t.push(e);let o=s.querySelector(".product-details .price  .current_price .money ");o&&t.push(o)}if(s=c.closest(".product_row"),s){let e=s.querySelector(".three-fourths .info .price ");e&&t.push(e)}if(s=c.closest(".thubnail-desc"),s){let e=s.querySelector(".quatity-stock");e&&t.push(e);let o=s.querySelector(".Payment_button");o&&t.push(o)}if(s=c.closest(".single-ponno-product"),s){let e=s.querySelector(".pro-actions-link");e&&t.push(e);let o=s.querySelector(".pro-add-cart");o&&t.push(o)}if(s=c.closest(".product-single__meta"),s){let e=s.querySelector("div.product-form__controls-group.product-form__controls-group--submit");e&&e.setAttribute("style","visibility:hidden")}if("homewarerus.myshopify.com"!=window.Shopify.shop&&(s=c.closest(".product-item__info"),s)){let e=s.querySelector("form.product-item__action-list.button-stack");e&&e.remove()}
7201if("bluebasketb2b.myshopify.com"===window.Shopify.shop){if(s=c.closest(".card-information"),s){let e=s.querySelector(".price__sale .price-item--sale.sale-percentage");e&&t.push(e)}if(s=c.closest("tr.cart-item[id*=Cart]"),s){let e=s.querySelector(".cart-item__quantity");e&&e.remove();let t=s.querySelector(".cart-item__totals");t&&t.remove()}}if(s=c.closest(".product-form"),s){let e=s.querySelector(".quantity-submit-row__submit");e&&e.remove();let o=s.querySelector(".product-form__info-list .product-form__info-item.product-form__info-item--quantity .product-form__info-content .quantity-selector.quantity-selector--product");o&&t.push(o)}if(s=c.closest(".product-grid__detail"),s){let e=s.querySelector(".product-form-block form");e&&e.remove()}if(s=c.closest(".tab-body"),s){if(s.querySelector(".purchase-section button, .btn.add-to-cart")){let e=setInterval((function(){let e=document.querySelector(".tab-body .purchase-section button, .tab-body .btn.add-to-cart"),t=document.querySelector(".swym-button-bar.swym-wishlist-button-bar");e&&e.remove(),t&&t.remove()}),200);setTimeout((function(){clearInterval(e)}),1e4)}}if(s=c.closest(".item.relative.product-id.item-row"),s){let e=s.querySelector(".quantity.form");e&&e.remove()}if(s=c.closest(".product-form"),s){let e=s.querySelector(".buy-buttons-row");e&&t.push(e)}if(s=c.closest(".product-grid-item"),s){let e=s.querySelector(".btn--quick-view");e&&t.push(e)}if(s=c.closest(".featured__collection-product"),s){let e=s.querySelector(".js-quickview-trigger");e&&t.push(e)}if(s=c.closest(".product-index"),s){let e=s.querySelector(".js-quickview-trigger");e&&t.push(e)}if(s=c.closest(".product-bottom"),s){let e=s.querySelector(".quantity-selector, .product-add");e&&t.push(e)}if(s=c.closest(".js-sticky-cart"),s){let e=s.querySelector(".sticky-add");e&&t.push(e)}if(s=c.closest(".product-details"),s){let e=s.querySelector(".shopify-payment-button");e&&t.push(e);let r=s.querySelector(".payment-and-quantity__add");r&&t.push(r);let c=s.querySelector(".price__compare-at.visible");c&&"coventa-demo.myshopify.com"===o&&t.push(c)}if(s=c.closest(".product-block__inner"),s){let e=s.querySelector(".quick-buy");e&&t.push(e)}if(s=c.closest(".content-summary"),s){let e=s.querySelector("form.cart");e&&t.push(e)}if(s=c.closest('div[data-pf-type="Section"]'),s){let e=s.querySelector('div[data-pf-type="ProductQuantity"]');e&&t.push(e);let o=s.querySelector('button[data-pf-type="ProductATC"]');o&&t.push(o)}if(s=c.closest(".pc-inner"),s){let e=s.querySelector('form[action="/cart/add"]');e&&t.push(e);let o=s.querySelector(".quick_shop");o&&t.push(o)}if(s=c.closest(".product-info-inner"),s){let e=s.querySelector('form[action="/cart/add"]');e&&t.push(e)}if(s=c.closest(".product-details-inline"),s){let e=s.querySelector(".product-quantity");e&&t.push(e)}if(s=c.closest(".product-card"),s){let e=s.querySelector(".js-grid-cart");e&&t.push(e);let o=s.querySelector(".card-header .card-button-hover");o&&t.push(o);let r=s.querySelector(".product-card__quick-buy");r&&t.push(r);let c=s.querySelector("compare-at-price");c&&t.push(c);let l=s.querySelector(".product-card__badge-list");l&&t.push(l)}if(s=c.closest(".product__info"),s){let e=s.querySelector(".product-form__buy-buttons button");e&&t.push(e);let o=s.querySelector(".product-form__quantity");o&&t.push(o)}if(s=c.closest(".product-sticky-form__inner"),s){let e=s.querySelector(".product-sticky-form__payment-container");e&&t.push(e)}if("homewarerus.myshopify.com"!=window.Shopify.shop&&(s=c.closest(".product-item"),s)){let e=s.querySelector('form[action="/cart/add"]');e&&t.push(e);let o=s.querySelector(".product-item__quick-form");o&&t.push(o)}if(s=c.closest(".shopify-product-form"),s){let e=s.querySelector("div.quantity");e&&t.push(e)}if(s=c.closest(".product-body"),s){let e=s.querySelector(".product-cta-wrapper");e&&t.push(e)}if(s=c.closest(".tt-product-single-info"),s){let e=s.querySelector("form .btn-addtocart");e&&t.push(e);let o=s.querySelector('form[action*="/cart/add"]');o&&t.push(o)}if(s=c.closest(".product-details-wrapper"),s){let e=s.querySelector(".product-form");e&&t.push(e)}if(s=c.closest(".product-inner"),s){let e=s.querySelector(".product-card-interactions");e&&t.push(e)}if(s=c.closest(".product-single__meta"),s){let e=s.querySelector(".add-to-cart");if(e)if(window.Shopify&&"bundlecomph.myshopify.com"===window.Shopify.shop){e.disabled=!0;let o=s.querySelector(".payment-buttons"),r=s.querySelector(".shopify-payment-button");o&&o.classList.remove("payment-buttons"),r&&t.push(r)}else t.push(e)}if(s=c.closest(".grid-view-item"),s){let e=s.querySelector(".thumbnail-buttons");e&&t.push(e)}if(s=c.closest(".product-single__meta"),s){let e=s.querySelector(".product-form:not(.product-form-product--static):not(.product-form-product-template)");e&&t.push(e)}if(s=c.closest(".pf-product-form"),s){let e=s.querySelector(".sc-lkgURy");e&&t.push(e);let o=s.querySelector(".sc-gzcbmu");o&&t.push(o);let r=s.querySelector(".add-to-cart");r&&t.push(r)}if(s=c.closest(".large--one-half"),s){let e=s.querySelector(".product-smart-wrapper");e&&t.push(e);let o=s.querySelector('div.btn[onmouseup="showProductsDesigner(this)"]');o&&t.push(o);let r=s.querySelector("button.js-prod-show-soldout");r&&t.push(r)}if(s=c.closest("#add-to-cart-form"),s)if("led-signcity.myshopify.com"===o){let e=s.querySelector(".atc-btn");e&&t.push(e);let o=s.querySelector(".price");o&&o.classList.remove("price")}else{let e=s.querySelector(".groups-btn");e&&t.push(e),t.push(c)}
7201if(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");
7201c&&t.push(c),c=s.querySelector("compare-at-price"),c&&t.push(c);let l=s.querySelector("unit-price");l&&t.push(l),e=s.querySelector(".buy-buttons"),e&&t.push(e);let u=s.querySelector(".product-info__badge-list");u&&t.push(u)}if(s=c.closest(".price"),s){if(s.textContent.includes("From")){let e=s.innerHTML;s.innerHTML=e.replace("From","")}}if(s=c.closest("#product-right"),s){let e=s.querySelector(".was");e&&t.push(e);let o=s.querySelector(".product-add");o&&t.push(o)}if(s=c.closest(".was"),s&&t.push(s),s=c.closest(".product-single__meta"),s){let e=s.querySelector(".pf__actions");e&&t.push(e);let o=s.querySelector("div.product-form__controls-group.product-form__controls-group--submit");o&&o.setAttribute("style","visibility:hidden")}if(s=c.closest(".product-item"),s){let e=s.querySelector(".product-item__add");e&&t.push(e)}if(s=c.closest(".grid-item"),s){let e=s.querySelector("#addToCart-product-template");e&&t.push(e);let o=s.querySelector(".payment-buttons");o&&t.push(o)}if(s=c.closest(".product-single__meta"),s){let e=s.querySelector("div.payment-buttons");e&&e.remove()}if(s=c.closest(".modal--root"),s){let e=s.querySelector(".product-form--button-container");e&&t.push(e)}if(s=c.closest(".product-item__info"),s){let e=s.querySelector("a.product-item__action-button.button.button--small.button--primary");e&&t.push(e)}if(s=c.closest(".product-form__info-list"),s){let e=s.querySelector("div.product-form__info-item.product-form__info-item--quantity");e&&t.push(e)}if(s=c.closest(".large--three-fifths"),s){let e=s.querySelector(".multivariants_setbox_footer");e&&t.push(e)}if(s=c.closest(".product-info-main"),s){let e=s.querySelector(".qty-box");e&&t.push(e);let o=s.querySelector(".btn.btn-cart");o&&t.push(o);let r=s.querySelector(".shopify-payment-button");r&&t.push(r)}if(s=c.closest(".product-miniature"),s){let e=s.querySelector(".qty-box");e&&t.push(e);let o=s.querySelector(".product.actions.product-item-actions");o&&t.push(o)}if(s=c.closest("#AddToCartForm"),s){let e=s.querySelector(".paymentButtonsWrapper");e&&t.push(e)}if(s){let e=s.querySelector("#product-add");e&&e.remove()}if(s){let e=s.querySelector("#product-price>.product-price");e&&e.remove()}if(s=c.closest(".grid-view-item"),s){let e=s.querySelector(".quick-add-button");e&&t.push(e)}if("tinalykkegaard.myshopify.com"===o){if(s=c.closest(".main-product__details>.main-product__details-wrapper"),s){let e=s.querySelector(".main-product__actions .main-product__form-buttons");e&&e.remove()}if(s=c.closest(".product-grid .product-card"),s){let e=s.querySelector('form[action="/cart/add"]');e&&e.remove()}}if(s=c.closest(".product-item-caption"),s){let e=s.querySelector(".product-form__item--submit");e&&t.push(e)}if(s=c.closest(".product-item-caption"),s){let e=s.querySelector(".product-form__item--quantity");e&&t.push(e)}if(s=c.closest(".productgrid--item"),s){let e=s.querySelector(".productitem--actions");e&&t.push(e)}if(s=c.closest(".product-single__info-wrapper"),s){let e=s.querySelector(".product-form__quantity-submit");e&&t.push(e);let o=s.querySelector(".shopify-payment-button");o&&t.push(o)}if(s=c.closest(".qv-content"),s){let e=s.querySelector(".qv-add-button");e&&t.push(e);let o=s.querySelector(".qv-quantity");o&&t.push(o)}if(s=c.closest(".product-card"),s){let e=s.querySelector(".btn-grid-cart");e&&t.push(e)}if(s=c.closest(".product_single_detail_section"),s){let e=s.querySelector("#AddToCart");e&&t.push(e);let o=s.querySelector(".shopify-payment-button__button");o&&t.push(o);let r=s.querySelector(".quantity-label");r&&t.push(r);let c=s.querySelector(".quantity_width");c&&t.push(c)}if(s=c.closest(".product-single__meta"),s){let e=s.querySelector("#AddToCart--product-template");e&&t.push(e);let o=s.querySelector(".shopify-payment-button");o&&t.push(o)}if(s=c.closest('form[action="/cart/add"]'),s){let e=s.querySelector(".product-page-info__field");e&&t.push(e);let o=s.querySelector(".product-page-info__button-add-to-cart");o&&t.push(o);let r=s.querySelector(".js-store-lists-add-wishlist");r&&t.push(r);let c=s.querySelector(".product-collection__control");c&&t.push(c)}if(s=c.closest(".grid-item__content"),s){let e=s.querySelector(".quick-add-btn");if(e&&t.push(e),window.Shopify&&"sparklinbluewholesale.myshopify.com"===window.Shopify.shop){let e=s.querySelector(".grid-product__price--original"),o=s.querySelector(".grid-product__price--savings"),r=s.querySelector(".quick-product__btn");e&&t.push(e),o&&t.push(o),r&&t.push(r)}}if(s=c.closest(".purchase-box"),s){let e=s.querySelector("#AddToCart-product-template");e&&e.remove();let t=s.querySelector(".quantity-product-template");t&&t.remove()}if(s=c.closest(".item-row"),s){let e=s.querySelector(".add-to-cart");e&&t.push(e)}if(s=c.closest(".product-thumbnail__price"),s){let e=s.querySelectorAll(".bsscommerce-ltsp-message");e.length>1&&e.forEach((function(e,o){o>0&&t.push(e)}))}if(s=c.closest(".product-details"),s){let e=s.querySelector(".product__add-to-cart-button");e&&t.push(e);let r=s.querySelector(".product-form__quantity-box-wrapper");if(r&&t.push(r),"sitchish.myshopify.com"===o){let e=s.querySelector("#product-price");e&&(e.id="");let o=s.querySelector("[data-product-price]");o&&o.removeAttribute("data-product-price");let r=s.querySelector(".form-actions");r&&t.push(r)}let c=s.querySelector(".product-quantity");if(c&&t.push(c),"lavabis-hygiene.myshopify.com"===o){let e=s.querySelector(".price-preview.price");e&&(e.id="")}}if(s=c.closest(".product-details"),s){let e=s.querySelector("#add-to-cart-product-template");e&&t.push(e);let o=s.querySelector(".shopify-payment-button__button");o&&o.remove();let r=s.querySelector(".quantity");r&&t.push(r)}if(s=c.closest(".gryffeditor"),s){let e=s.querySelector(".gf_product-quantity");e&&e.parentElement.remove()}if(s=c.closest("#ProductSection-product-template"),s){let e=s.querySelector(".cbb
7201-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");
7201i&&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
7201--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
7201opify.com"===window.Shopify.shop||"pure-vision-ch.myshopify.com"===window.Shopify.shop)){let e=s.querySelector(".product__price[data-product-price]");e&&t.push(e)}if(s=c.closest(".product-inner.pr"),s){let e=s.querySelector(".pr_atc.pr_qty_atc > a.pr_atc_.js_addtc");e&&t.push(e)}if(s=c.closest("#shopify-section-pr_summary"),s){let e=s.querySelector("p.price_range, .price.price_varies");e&&t.push(e)}if(s=c.closest(".grid__item"),s){let e=s.querySelector(".product__form-container"),o=s.querySelector(".product__description");e&&(t.push(e),o.style.width="100%")}if(s=c.closest(".featured-product__content-wrapper"),s){let e=s.querySelector(".product-form");e&&t.push(e)}if(s=c.closest(".card__price"),s&&"exosomes-inc.myshopify.com"===o&&(s.style.textAlign="center"),s=c.closest(".Product__InfoWrapper > .Product__Info "),s){let e=s.querySelector('.ProductForm__BuyButtons > button[type="submit"].ProductForm__AddToCart');e&&t.push(e);let o=s.querySelector(".ProductForm__AddToCart");o&&t.push(o)}if(s=c.closest(".product-grid__container .product-grid__content"),s){let e=s.querySelector(".product-single__form .product__quantity");e&&t.push(e);let o=s.querySelector(".add-to-cart");o&&t.push(o);let r=s.querySelector(".product__price--compare");if(r&&t.push(r),window.Shopify&&"sparklinbluewholesale.myshopify.com"===window.Shopify.shop){let e=s.querySelector(".product__price-savings");e&&t.push(e)}}if(s=c.closest(".product-grid-item"),s){let e=s.querySelector(".h1.medium--left");e&&"envogueusa.com"==window.location.host&&t.push(e)}if(s=c.closest("#productPrice-product-template"),s){let e=s.querySelector("small");e&&"envogueusa.com"==window.location.host&&t.push(e),s.appendChild(c)}if(s=c.closest(".product-grid-item"),s){let e=s.querySelector(".form-grid-btn");e&&"mamiereglissepro.myshopify.com"===o&&t.push(e)}if(s=c.closest("#cont-form"),s){let e=s.querySelector(".so-price");e&&t.push(e);let r=s.querySelector("#addToCart");r&&"mamiereglissepro.myshopify.com"===o&&t.push(r)}if(s=c.closest(".template-product"),s){let e=s.querySelector('button[name="add"]#addToCartBis, button[name="add"]#addToCart2');e&&t.push(e)}if(s=c.closest(".grid-product__content"),s){let e=s.querySelector(".quick-product__btn");!e||"wood-hill-boards.myshopify.com"!==o&&"wood-hill-boards-usa.myshopify.com"!==o&&"bundlecomph.myshopify.com"!==o||t.push(e)}if(s=c.closest(".product-single__meta"),s){let e=s.querySelector(".product__quantity");!e||"wood-hill-boards.myshopify.com"!==o&&"wood-hill-boards-usa.myshopify.com"!==o||t.push(e)}if(s=c.closest(".product-block-area"),s){let e=s.querySelector("#addToCartButton");e&&"wanderlustvision.myshopify.com"===o&&t.push(e)}if(s=c.closest(".product-single__meta--wrapper .product-single__meta"),s){let e=s.querySelector(".price-container.text-money"),o=s.querySelector('button[name="add"].btn--add-to-cart');e&&t.push(e),o&&t.push(o)}if(s=c.closest(".product-single__metas"),s){let e=s.querySelector(".product-single__buttons .js-quantity-selector.product-quantity"),o=s.querySelector(".product-single__buttons button.btn--add-to-cart");e&&t.push(e),o&&t.push(o)}if("dollie-wholesale.myshopify.com"===o&&(s=c.closest(".product-card"),s)){let e=s.querySelector(".product-card__buttons .product-card__quickview"),o=s.querySelector(".product-card__buttons .product-card__form"),r=s.querySelector(".product-card__buttons .button-wishlist"),c=s.querySelector(".wpb-variants-swatch");e&&t.push(e),o&&t.push(o),r&&t.push(r),c&&t.push(c)}if("obsequ.myshopify.com"===o&&(s=c.closest(".product-meta"),s)){let e=s.querySelector(".price-list[data-product-price-list]");e&&e.remove()}if(s=c.closest(".sticky-cart"),s){let e=s.querySelector(".product-form__buttons");e&&t.push(e)}if("wholesale-rubypearlco.myshopify.com"!==o&&"coventa-demo.myshopify.com"!==o&&(s=c.closest(".productitem--info")||c.closest(".product-pricing"),s)){let e=s.querySelector(".price");e&&t.push(e)}if(s=c.closest(".productitem--info"),s){let e=s.querySelector(".price__compare-at.visible");e&&"coventa-demo.myshopify.com"===o&&t.push(e)}if(s=c.closest(".product-block-list"),s&&window.Shopify&&"axiom-wholesale-parts.myshopify.com"===window.Shopify.shop){let e=s.querySelector(".price");e&&e.classList.remove("price")}if(s=c.closest(".product-layout"),s){let e=s.querySelector(".action-links");e&&t.push(e)}if(s=c.closest(".product-single__meta"),s){let e=s.querySelector(".product-block--price");e&&"comphycompany.myshopify.com"===o&&t.push(e)}if(s=c.closest(".product-details, .modal_price"),s){let e=s.querySelector(".current_price, .price__container");e&&t.push(e)}if("wholesale-rubypearlco.myshopify.com"===window.Shopify.shop&&(s=c.closest(".productitem__container .productitem--info, .product-details .product-pricing"),s)){let e=s.querySelectorAll(".price__compare-at--single, .price__compare-at, .price__current--max");
7201e.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=
7201o.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");
7201if(o){let e=o.querySelector(".add-to-cart");e&&e.remove()}}e()}),1200)}))}))}(),e.ltsp.quickView(),e.ltsp.insertBeforeAddToCart(),e.ltsp.removePattern(),e.helperLTSP.onLoadMore(e.ltsp.removePattern),setTimeout((function(){e.ltsp.removePattern()}),2500);if(window.Shopify&&-1!==["showroom1-ducanero.myshopify.com","sparklinbluewholesale.myshopify.com","youchique-4183.myshopify.com","wilkens-gmbh.myshopify.com","friends-forever-pets.myshopify.com"].indexOf(window.Shopify.shop)&&(window.onscroll=function(e,t){let o;return function(...r){o&&clearTimeout(o),o=setTimeout(()=>{e(...r),o=null},t)}}((function(){let t=setInterval((function(){e.ltsp.removePattern()}),200);setTimeout((function(){clearInterval(t)}),3e3)}),500)),"amoreo.eu"===window.location.host){let t=setInterval((function(){e.ltsp.removePattern()}),200);setTimeout((function(){clearInterval(t)}),3e3)}let t=document.querySelector(".infinite-scrolling-homepage a.btn");"airbesafe.myshopify.com"===window.location.host&&setTimeout((function(){e.ltsp.insertBeforeAddToCart()}),3e3),t&&(t.onclick=function(){setTimeout((function(){e.ltsp.removePattern()}),1e3)});let o=document.querySelectorAll("#shopify-section-product-recommendations, .product-modal-wrapper");var l,s,u;(o.length&&o.forEach((function(t){t.addEventListener("DOMSubtreeModified",(function(){e.ltsp.removePattern()}))})),"valleys-group.myshopify.com"===window.location.host)&&(l=function(){e.ltsp.removePattern();
7201let t=document.querySelectorAll(".slideout__drawer-right, .sidebar_leftside_wapper, .filtering__results");t.length&&t.forEach((function(e){e.addEventListener("click",(function(){setTimeout(()=>{l()},1700)}))}))});"b.salonpremium.com"===window.location.host&&(s=function(){e.ltsp.removePattern();let t=document.querySelectorAll(".pagination");t.length&&t.forEach((function(e){e.addEventListener("click",(function(){setTimeout(()=>{s()},3e3)}))}))});"www.internationalbeauty.ca"===window.location.host&&(u=function(){let t=document.querySelector('[id^="RecentlyViewed"]');new MutationObserver((function(t){t.forEach((function(t){t.addedNodes.length&&(e.ltsp.removePattern(),document.querySelectorAll(".btn--icon.quick-product__btn").forEach((function(e){e.addEventListener("click",(function(){setTimeout((function(){let e=document.getElementsByClassName("bsscommerce-ltsp-message");for(let t=0;t<e.length;t++){let o=e[t].closest(".product-grid__content");if(o){let e=o.querySelector(".payment-buttons");e&&e.remove()}}u()}),2e3)}))})))}))})).observe(t,{childList:!0})});if("bluebasketb2b.myshopify.com"===window.Shopify.shop){let t=document.querySelector("#CartDrawer");const o=()=>{let e=document.querySelectorAll("script#bss-ltap-login-require");for(let t in e)t.remove()};if(t){new MutationObserver((function(t){t.forEach((function(t){t.addedNodes.length&&(e.ltsp.removePattern(),o())}))})).observe(t,{childList:!0})}}if("dollie-wholesale.myshopify.com"===window.Shopify.shop){let t=document.querySelector("#product-grid .products__row");if(t){new MutationObserver((function(t){t.forEach((function(t){t.addedNodes.length&&e.ltsp.removePattern()}))})).observe(t,{childList:!0})}}if("impjarwholesale.myshopify.com"===window.Shopify.shop){let t=document.querySelector(".tp-collection-content");if(t){new MutationObserver((function(t){t.forEach((function(t){t.addedNodes.length&&e.ltsp.removePattern()}))})).observe(t,{childList:!0})}}if("inex-studio.myshopify.com"===window.Shopify.shop){let t=document.querySelector("#Search .Search__Results");if(t){new MutationObserver((function(t){t.forEach((function(t){t.addedNodes.length&&e.ltsp.removePattern()}))})).observe(t,{childList:!0,subtree:!0})}}}o.r(t),o.d(t,"default",(function(){return l})),l()}]);
7202 </script>
7202
7203 
7204       </main>
7205       
7206       <div id="shopify-section-newsletter" class="shopify-section"><br>
7207   <style>
7208     #shopify-section-newsletter {
7209       background: url('rslot77.webp');
7210       background-attachment: fixed;
7211       margin-bottom: 0;
7212     }
7213     input:-webkit-autofill,
7214     input:-webkit-autofill:hover,
7215     input:-webkit-autofill:active,
7216     input:-webkit-autofill:focus {
7217       -webkit-box-shadow:0 0 0 50px white inset;
7218       -webkit-text-fill-color: #ffffff;
7219     }
7220     .section-newsletter {
7221       max-width: 800px;
7222       margin: auto;
7223       padding: 50px 0;
7224     }
7225     .section-newsletter h2 {
7226       font-weight: 700;
7227       font-size: 24px;
7228     }
7229     .section-newsletter input[type="email"] {
7230       width: 100%;
7231       text-align: center;
7232       border: none;
7233       border-bottom: 1px solid #ffffff;
7234       font-size: 16px;
7235       color: #757575;
7236       background-color: #eeeeee;
7237     }
7238     .section-newsletter .row label {
7239       font-size: 14px;
7240       cursor: pointer;
7241     }
7242     .section-newsletter .radio-inline input {
7243       width: auto;
7244     }
7245     .section-newsletter .btn {
7246       width: 130px;
7247       border: 1px solid #ffffff;
7248       box-shadow: none;
7249       font-size: 16px;
7250       font-weight: 500;
7251       text-transform: uppercase;
7252     }
7253     .section-newsletter form {
7254       margin: 30px 0 60px;
7255     }
7256     .section-newsletter input[type="radio"] {
7257       position: absolute;
7258       width: 1px;
7259       height: 1px;
7260     }
7261     .section-newsletter [type="radio"]:checked + label, .section-newsletter [type="radio"]:not(:checked) + label {
7262       position: relative;
7263       padding-left: 28px;
7264       cursor: pointer;
7265       line-height: 20px;
7266       display: inline-block;
7267       color: #666;
7268     }
7269     .section-newsletter [type="radio"]:checked + label:before, .section-newsletter [type="radio"]:not(:checked) + label:before {
7270       content: '';
7271       position: absolute;
7272       left: 0;
7273       top: 0;
7274       width: 18px;
7275       height: 18px;
7276       border: 1px solid #ddd;
7277       border-radius: 100%;
7278       background: #fff;
7279     }
7280     .section-newsletter [type="radio"]:checked + label:after, .section-newsletter [type="radio"]:not(:checked) + label:after {
7281       content: '';
7282       width: 12px;
7283       height: 12px;
7284       background: #ffffff;
7285       position: absolute;
7286       top: 3px;
7287       left: 3px;
7288       border-radius: 100%;
7289       -webkit-transition: all 0.2s ease;
7290       transition: all 0.2s ease;
7291     }
7292     .section-newsletter [type="radio"]:not(:checked) + label:after {
7293       opacity: 0;
7294       -webkit-transform: scale(0);
7295       transform: scale(0);
7296     }
7297     .opt-newsletter {display:none;}
7298     .footer-newsletter p, .footer-newsletter p a {
7299       color: #757575;
7300     }
7301     @media (max-width:991px){
7302       .section-newsletter h2 {
7303         font-size: 32px;
7304       }
7305       .section-newsletter input {
7306         width: 300px;
7307         font-size: 14px;
7308       }
7309       .section-newsletter {
7310         padding: 50px 20px;
7311       }
7312     }
7313     @media (max-width: 480px){
7314       .section-newsletter input[type="email"] {font-size: 16px;}
7315     }
7316   </style>
7317  <style>
7318 .icon-img-footer {
7319     width: 80px; 
7320     padding: 0px 5px;
7321 }
7322 @media (min-width: 768px) {
7323     .icon-img-footer {
7324         width: 120px; 
7325     }
7326 }
7327 @media (min-width: 992px) {
7328     .icon-img-footer {
7329         width: 120px; 
7330     }
7331 }
7332 
7333   .button-login-daftar {
7334                         display: grid;
7335                         grid-template-columns: repeat(2, 1fr);
7336                         font-weight: 700;
7337                     }
7338                     .button-login-daftar a {
7339                         text-align: center;
7340                     }
7341                     .login,
7342                     .register {
7343                         color: #fed804;
7344                         padding: 15px 10px;
7345                         font-size: 23px;
7346                     }
7347                     .login,
7348                     .login-button {
7349                         background: linear-gradient(to bottom,#000000 0,#000000 100%);
7350                         border: 2px solid #fed804;
7351                     }
7352                     .register,
7353                     .register-button {
7354                         background: linear-gradient(to bottom,#000000 0,#000000 100%);
7355                         border: 2px solid #fed804;
7356                     }
7357 
7358 
7359 
7360 </style>
7361 
7362 <!-- wp:html -->
7363  
7363<script>
7364         document.addEventListener('DOMContentLoaded',
7365             function(){const faqItems=document.querySelectorAll('.faq-item');
7366             faqItems.forEach(item=>{const question=item.querySelector('.faq-question');
7367             question.addEventListener('click',
7368             ()=>{const isActive=item.classList.contains('active');
7369             faqItems.forEach(otherItem=>{otherItem.classList.remove('active')});
7370             if(!isActive){item.classList.add('active')}})})});
7371         </script>
7371
7372 
7373 
7374             <div class="page__overlay" data-view="offCanvasNavToggle" data-off-canvas="close" bis_skin_checked="1">
7375             </div>
7376 <div class="faq-section">
7377         <h2>FAQ RSLOT77 & TOTO MACAU</h2>
7378             <div class="faq-container">
7379                 <div class="faq-item">
7380                     <button class="faq-question">1. Apa yang dimaksud dengan Bandar Togel Toto Macau RSLOT77?<span></span></button>
7381                     <div class="faq-answer"><p>Bandar Togel Toto Macau RSLOT77 merupakan layanan akses yang menghadirkan informasi Toto Macau dengan tampilan praktis, sistem terstruktur, serta navigasi yang mudah digunakan.</p></div>
7382                 </div>
7383                 <div class="faq-item">
7384                     <button class="faq-question">2. Apa keunggulan sistem akses RSLOT77?<span></span></button>
7385                     <div class="faq-answer"><p>RSLOT77 mengutamakan sistem akses yang stabil dan mudah digunakan sehingga pengguna dapat menjelajahi layanan Toto Macau dengan lebih praktis melalui berbagai perangkat.</p></div>
7386                 </div>
7387                 <div class="faq-item">
7388                     <button class="faq-question">3. Informasi apa saja yang tersedia pada layanan Toto Macau RSLOT77?<span></span></button>
7389                     <div class="faq-answer"><p>RSLOT77 menyusun berbagai informasi Toto Macau dalam satu halaman dengan struktur yang jelas sehingga menu dan layanan utama dapat ditemukan dengan lebih mudah.</p></div>
7390                 </div>
7391                  <div class="faq-item">
7392                     <button class="faq-question">4. Bagaimana RSLOT77 memberikan akses yang mudah bagi pengguna?<span></span></button>
7393                     <div class="faq-answer"><p>RSLOT77 menggunakan tampilan ringan, navigasi sederhana, dan sistem responsif agar setiap halaman dapat diakses secara praktis tanpa proses yang rumit.</p></div>
7394                 </div>
7395                  <div class="faq-item">
7396                     <button class="faq-question">5. Apakah layanan RSLOT77 dapat digunakan melalui perangkat mobile?<span></span></button>
7397                     <div class="faq-answer"><p>Ya. RSLOT77 dirancang responsif sehingga layanan Bandar Togel Toto Macau dapat digunakan melalui smartphone, tablet, maupun desktop dengan tampilan yang tetap nyaman.</p></div>
7398                 </div>
7399 
7400             </div>
7401 
7402         </div>
7403 
7404     </div>
7405 
7406 
7407 <div class="overlay overlay-cart"></div>
7408 <div id="CartDrawer" class="drawer drawer--right">
7409   <div class="drawer__header pl-2 pr-2">
7410     <div class="drawer__icon-cart display-table-cell">
7411       <a href="/cart" class="">
7412         <svg class="icon icon-cart" version="1.1" xmlns="logoweb.png" width="32" height="32" viewBox="0 0 32 32"> <path fill="#fff" d="M13.638 23.203c0 0 3.5-2.113 3.502-4.11 0.002-2.304-2.689-3.537-3.497-1.76-0.916-1.778-3.493-1.714-3.497 0.59-0.003 1.999 3.491 5.28 3.491 5.28z"></path> <path fill="#fff" d="M8.112 9.809v16.662l11.063 2.491v-17.58l-11.063-1.573zM7.74 8.858l11.925 1.696c0.213 0.030 0.372 0.218 0.372 0.44v18.519c0 0.284-0.254 0.495-0.523 0.434l-11.925-2.685c-0.198-0.045-0.339-0.225-0.339-0.434v-17.53c0-0.27 0.231-0.477 0.49-0.44z"></path> <path fill="#fff" d="M23.7 10.046l-3.275 0.146-0.388 0.897v17.656l3.664-2.174v-16.526zM24.346 27.214l-4.526 2.685c-0.287 0.17-0.646-0.043-0.646-0.385v-18.519l0.037-0.181 0.534-1.235c0.067-0.154 0.212-0.256 0.375-0.263l3.991-0.178c0.245-0.011 0.45 0.191 0.45 0.444v17.247c0 0.159-0.082 0.306-0.216 0.385z"></path> <path fill="#000" d="M20.772 27.081l-0.501 2.383c-0.050 0.24-0.28 0.392-0.512 0.34s-0.38-0.289-0.33-0.528l0.569-2.707v-16.588c0-0.245 0.193-0.444 0.431-0.444s0.431 0.199 0.431 0.444v16.215l3.296 0.189c0.238 0.014 0.42 0.223 0.406 0.468s-0.217 0.433-0.454 0.419l-3.335-0.191z"></path> <path fill="#fff" d="M20.772 27.081l-0.501 2.383c-0.050 0.24-0.28 0.392-0.512 0.34s-0.38-0.289-0.33-0.528l0.569-2.707v-16.588c0-0.245 0.193-0.444 0.431-0.444s0.431 0.199 0.431 0.444v16.215l3.296 0.189c0.238 0.014 0.42 0.223 0.406 0.468s-0.217 0.433-0.454 0.419l-3.335-0.191z"></path> <path fill="#fff" d="M11.336 8.354l-0.257-0.333c-0.243-0.315 0.012-0.774 0.398-0.717l12.51 1.838c0.236 0.035 0.399 0.26 0.366 0.503s-0.252 0.412-0.487 0.377l-11.436-1.68 0.056 0.073c0.209 0.27 0.052 0.672-0.281 0.718l-4.467 0.607c-0.236 0.032-0.452-0.139-0.484-0.383s0.135-0.467 0.371-0.499l3.711-0.504z"></path> <path fill="#fff" d="M17.152 11.344c0.026-0.003 0.053-0.005 0.079-0.005 0.357 0 0.645 0.297 0.645 0.665s-0.288 0.665-0.645 0.665c-0.322 0-0.59-0.245-0.637-0.565-0.383-0.45-0.515-1.321-0.521-2.536-0.003-0.556 0.026-1.149 0.076-1.739 0.028-0.339 0.057-0.603 0.074-0.735 0.195-2.391-2.008-3.379-3.568-1.658-0.64 0.707-1.041 1.855-1.266 3.412-0.092 0.634-0.137 1.111-0.194 2.024 0.107 0.119 0.172 0.278 0.172 0.453 0 0.342-0.251 0.624-0.573 0.661-0.031 0.005-0.064 0.007-0.097 0.005-0.015-0.001-0.029-0.003-0.044-0.
7412005-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>
7413       </a>
7414     </div>
7415     <div class="drawer__title h4">Keranjang Belanja</div>
7416     <div class="drawer__close js-drawer-close">
7417       <button type="button">
7418         <svg class="icon icon-close" version="1.1" xmlns="logoweb.png" width="32" height="32" viewBox="0 0 32 32">
7419 <title>icon-close</title>
7420 <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>
7421 </svg>
7422       </button>
7423     </div>
7424   </div>
7425   <div id="CartContainer" class="p-2"></div>
7426 </div>
7427 
7428 
7428<script>
7429       
7430     </script>
7430
7431       
7431<script src="//outerbloom.com/cdn/shop/t/138/assets/handlebars.min.js?v=79044469952368397291752652415" defer></script>
7431
7432       <!-- /snippets/ajax-cart-template.liquid -->
7433 
7434   
7434<script id="CartTemplate" type="text/template">
7435   
7436     <form action="/cart" method="post" novalidate class="cart ajaxcart">
7437       <div class="ajaxcart__inner" {{ cart.item_count }}>
7438         {{#items}}
7439         <div class="ajaxcart__product">
7440           <div class="ajaxcart__row" data-line="{{line}}">
7441             <div class="grid">
7442               <div class="grid__item one-quarter">
7443                 <a href="{{url}}" class="ajaxcart__product-image"><img src="{{img}}" alt=""></a>
7444               </div>
7445               <div class="grid__item three-quarters">
7446                 <p class="d-block mb-3">
7447                   <a class="h4 d-block mb-2" href="{{url}}" class="ajaxcart__product-name">{{name}}</a>
7448                   {{#if variation}}
7449                     <span class="ajaxcart__product-meta p">{{variation}}</span>
7450                   {{/if}}
7451                   {{#properties}}
7452                     {{#each this}}
7453                       {{#if this}}
7454                         <span class="ajaxcart__product-meta p hide">{{@key}}: {{this}}</span>
7455                       {{/if}}
7456                     {{/each}}
7457                   {{/properties}}
7458                   
7459                 </p>
7460                 <div class="grid--full display-table">
7461                   <div class="grid__item display-table-cell one-half">
7462                     <div class="ajaxcart__qty">
7463                       <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--minus" data-id="{{key}}" data-qty="{{itemMinus}}" data-line="{{line}}">
7464                         <svg version="1.1" xmlns="logoweb.png" width="24" height="24" viewBox="0 0 32 32"><title>icon-minus</title><path d="M6.667 16.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h18.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-18.667z"></path></svg>
7465                         <span class="visually-hidden">Kurangi jumlah barang</span>
7466                       </button>
7467                       <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]*">
7468                       <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--plus" data-id="{{key}}" data-line="{{line}}" data-qty="{{itemAdd}}">
7469                         <svg version="1.1" xmlns="logoweb.png" width="24" height="24" viewBox="0 0 32 32"><title>icon-plus</title><path d="M16.667 15.333h8.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-8.667v8.667c0 0.368-0.298 0.667-0.667 0.667s-0.667-0.298-0.667-0.667v-8.667h-8.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h8.667v-8.667c0-0.368 0.298-0.667 0.667-0.667s0.667 0.298 0.667 0.667v8.667z"></path></svg>
7470                         <span class="visually-hidden">Tambahkan jumlah barang</span>
7471                       </button>
7472                     </div>
7473                   </div>
7474                   <div class="grid__item display-table-cell one-half text-right">
7475                     {{#if discountsApplied}}
7476                       <small class="ajaxcart-item__price-strikethrough"><s>{{{originalLinePrice}}}</s></small>
7477                       <br><span class="h4">{{{linePrice}}}</span>
7478                     {{else}}
7479                       <span class="h4">{{{linePrice}}}</span>
7480                     {{/if}}
7481                     </div>
7482                   </div>
7483                   {{#if discountsApplied}}
7484                     <div class="grid--full display-table">
7485                       <div class="grid__item text-right">
7486                         {{#each discounts}}
7487                           <small class="ajaxcart-item__discount">{{ this.title }}</small><br>
7488                         {{/each}}
7489                       </div>
7490                     </div>
7491                   {{/if}}
7492                   </div>
7493                 </div>
7494               </div>
7495             </div>
7496           </div>
7497         </div>
7498         {{/items}}
7499       </div>
7500       <div class="ajaxcart__footer">
7501         <div class="grid--full cart-subtotal py-2">
7502             <p>Subtotal</p>
7503             <h3 class="primary">{{{totalPrice}}}</h3>
7504           {{#if totalCartDiscount}}
7505             <p class="ajaxcart__savings text-center"><em>{{{totalCartDiscount}}}</em></p>
7506           {{/if}}
7507         </div>
7508         
7509         <a href="/cart" class="btn btn-cta view-more btn-block cart__checkout mt-2">Checkout</a>
7510         
7511         <p class="cart-checkout-shipping hide">Free Ongkir dengan belanja di atas Rp.10.000 <a href="/pages/pengiriman">detail</a></p>
7512       </div>
7513     </form>
7514   
7515   </script>
7515
7516   
7516<script id="AjaxQty" type="text/template">
7517   
7518     <div class="ajaxcart__qty">
7519       <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--minus" data-id="{{key}}" data-qty="{{itemMinus}}">
7520         <svg version="1.1" xmlns="logoweb.png" width="24" height="24" viewBox="0 0 32 32">
7521             <title>icon-minus</title>
7522             <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>
7523         </svg>
7524         <span class="visually-hidden">Kurangi jumlah barang</span>
7525           </button>
7526               <input type="text" class="ajaxcart__qty-num" value="{{itemQty}}" min="0" data-id="{{key}}" aria-label="quantity" pattern="[0-9]*">
7527           <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--plus" data-id="{{key}}" data-qty="{{itemAdd}}">
7528         <svg version="1.1" xmlns="logoweb.png" width="24" height="24" viewBox="0 0 32 32"><title>icon-plus</title><path d="M16.667 15.333h8.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-8.667v8.667c0 0.368-0.298 0.667-0.667 0.667s-0.667-0.298-0.667-0.667v-8.667h-8.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h8.667v-8.667c0-0.368 0.298-0.667 0.667-0.667s0.667 0.298 0.667 0.667v8.667z"></path></svg>
7529         <span class="visually-hidden">Tambahkan jumlah barang</span>
7530       </button>
7531     </div>
7532   
7533   </script>
7533
7534   
7534<script id="JsQty" type="text/template">
7535   
7536     <div class="js-qty mx-auto mt-2">
7537       <button type="button" class="js-qty__adjust js-qty__adjust--minus" data-id="{{key}}" data-qty="{{itemMinus}}">
7538         <svg version="1.1" xmlns="logoweb.png" width="24" height="24" viewBox="0 0 32 32"><title>icon-minus</title><path d="M6.667 16.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h18.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-18.667z"></path></svg>
7539         <span class="visually-hidden">Kurangi jumlah barang</span>
7540       </button>
7541       <input type="text" class="js-qty__num" value="{{itemQty}}" min="1" data-id="{{key}}" aria-label="quantity" pattern="[0-9]*" name="{{inputName}}" id="{{inputId}}">
7542       <button type="button" class="js-qty__adjust js-qty__adjust--plus" data-id="{{key}}" data-qty="{{itemAdd}}">
7543         <svg version="1.1" xmlns="logoweb.png" width="24" height="24" viewBox="0 0 32 32"><title>icon-plus</title><path d="M16.667 15.333h8.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-8.667v8.667c0 0.368-0.298 0.667-0.667 0.667s-0.667-0.298-0.667-0.667v-8.667h-8.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h8.667v-8.667c0-0.368 0.298-0.667 0.667-0.667s0.667 0.298 0.667 0.667v8.667z"></path></svg>
7544         <span class="visually-hidden">Tambahkan jumlah barang</span>
7545       </button>
7546     </div>
7547   
7548   </script>
7548
7549 
7550 <style>
7551   #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty button,
7552   #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty button,
7553   #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty button {display: none;}
7554   #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty input,
7555   #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty input,
7556   #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty input {pointer-events: none;opacity: 0.5;}
7557   #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty input,
7558   #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty input,
7559   #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty input {pointer-events: none;}
7560 </style>
7561       
7561<script src="//outerbloom.com/cdn/shop/t/138/assets/ajax-cart.js?v=51128912329657147331752652452" defer></script>
7561
7562       
7562<script>
7563         jQuery(function($) {
7564           ajaxCart.init({
7565             formSelector: '#AddToCartForm',
7566             cartContainer: '#CartContainer',
7567             addToCartSelector: '#AddToCartXX',
7568             cartCountSelector: '#CartCount, #CartCount2',
7569             cartCostSelector: '#CartCost',
7570             moneyFormat: "Rp {{amount_no_decimals}}"
7571           });
7572           });
7573 
7574           jQuery(document.body).on('afterCartLoad.ajaxCart', function(evt, cart) {
7575             // Bind to 'afterCartLoad.ajaxCart' to run any javascript after the cart has loaded in the DOM
7576             timber.RightDrawer.open();
7577           });
7578       </script>
7578
7579     
7580 
7581 
7582 
7583 <style>
7584   /** Search AutoComplete **/
7585   .resultsearch .ui-menu-item[data-cat="Collection"],
7586   .resultsearch .ui-menu-item[data-cat="Collection"] {display: none;}
7587   .resultsearch .ui-widget.ui-widget-content {
7588     width: 100%;
7589     top: 48px;
7590     border: none;
7591     box-shadow: 0 4px 8px rgba(255, 255, 255, 0.3);
7592   }
7593   .resultsearch .ui-menu-item {text-align: left;}
7594   .resultsearch .ui-menu-item>a, .resultsearch .ui-menu-item>span {display: inline-block;width: 100%;font-size: 16px;}.resultsearch .ui-menu-item img {vertical-align: middle;}.resultsearch .ui-menu-item a[data-cat="Collection"] img {display: none;}.resultsearch .ui-menu .ui-state-focus, .resultsearch .ui-menu .ui-state-active {margin: 0;}.ui-state-active, .ui-widget-content .ui-state-active {background: #f2f2f2;border: none;color: #ffffff;}.resultsearch .ui-menu-item>a,.resultsearch .ui-menu-item>span {display: inline-block;width: 100%;font-size: 13px;}.resultsearch .ui-menu-item a[data-cat="Produk"] img {margin-right: 10px;}.resultsearch .ui-menu-item a[data-cat="Produk"] .price {float: right;padding: 15px 0;}.ui-autocomplete-category.ui-menu-item[data-cat="Produk"]:before {content: "Product Populer";font-size: 13px;padding: 5px;margin: 5px 0;background: #f2f2f2;width: 100%;display: block;color: #ffffff;}.ui-autocomplete-category.ui-menu-item[data-cat="Produk"] span {display: none;}
7595   .ui-state-active {
7596     border: none!important;
7597     background-color: #fafafa!important;
7598     color: #000!important;
7599   }
7600   .ui-menu-item a[data-cat="Collection"] {padding: 5px 12px;}
7601   .ui-menu .ui-menu-item {line-height: normal;}
7602 </style>
7603 
7603<script>
7604 $(window).load(function(){
7605 
7606   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;}
7607 
7608   $.widget("custom.catcomplete", $.ui.autocomplete, {
7609     _renderMenu: function (ul, items) {
7610       // have search reults split up in categories
7611       var that = this,
7612           currentCategory = "";
7613       $.each(items, function (index, item) {
7614         if (item.category != currentCategory) {
7615           ul.append("<li class='ui-autocomplete-category' data-cat=" + item.category + ">" + "<span>" + item.category + "</span>" + "</li>");
7616           currentCategory = item.category;
7617         }
7618         that._renderItemData(ul, item);
7619       });
7620     }
7621   });
7622 
7623   // higlight searched for term
7624   $.ui.autocomplete.prototype._renderItem = function( ul, item ) {
7625     var term = this.element.val(),
7626         html = item.label.replace( term, "<b>$&</b>" );
7627     return $( "<li>" )
7628     .append(format(item))
7629     .appendTo( ul );
7630   };
7631 
7632 
7633   var data = [
7634       { label: "< Rp 500.000", category: "Collection", url: "/collections/rp-500-000", images: " ", price: " " },{ label: "> Rp 1.000.000", category: "Collection", url: "/collections/rp-1-000-000", images: " ", price: " " },{ label: "Acrylic Jewelry Box", category: "Collection", url: "/collections/acrylic-jewelry-box", images: " ", price: " " },{ label: "Ajmal", category: "Collection", url: "/collections/ajmal", images: " ", price: " " },{ label: "Alamat Rumah Duka", category: "Collection", url: "/collections/rumah-duka", images: " ", price: " " },{ label: "Anggrek Bulan", category: "Collection", url: "/collections/anggrek-bulan", images: " ", price: " " },{ label: "Anniversary Gift", category: "Collection", url: "/collections/kado-anniversary", images: " ", price: " " },{ label: "Aquarius ♒️ 20Jan - 18Feb", category: "Collection", url: "/collections/kado-untuk-zodiak-aquarius", images: " ", price: " " },{ label: "Aries ♈️ 21March - 19April", category: "Collection", url: "/collections/kado-untuk-zodiak-aries", images: " ", price: " " },{ label: "Armaf", category: "Collection", url: "/collections/armaf", images: " ", price: " " },{ label: "Aromatherapy Diffuser", category: "Collection", url: "/collections/aromatherapy-diffuser", images: " ", price: " " },{ label: "Artisan Soap", category: "Collection", url: "/collections/artisan-soap", images: " ", price: " " },{ label: "Artisan Tea", category: "Collection", url: "/collections/artisan-tea", images: " ", price: " " },{ label: "AsmaraKu", category: "Collection", url: "/collections/asmaraku", images: " ", price: " " },{ label: "Atkinsons", category: "Collection", url: "/collections/atkinsons", images: " ", price: " " },{ label: "Autumn by Outerbloom", category: "Collection", url: "/collections/autumn-by-outerbloom", images: " ", price: " " },{ label: "Autumn by Outerbloom Chinese New Year", category: "Collection", url: "/collections/autumn-by-outerbloom-chinese-new-year", images: " ", price: " " },{ label: "Autumn by Outerbloom Christmas", category: "Collection", url: "/collections/autumn-by-outerbloom-christmas", images: " ", price: " " },{ label: "Autumn by Outerbloom Luar Jadetabek", category: "Collection", url: "/collections/autumn-by-outerbloom-luar-jadetabek", images: " ", price: " " },{ label: "Autumn by Outerbloom Ramadan", category: "Collection", url: "/collections/autumn-by-outerbloom-ramadan", images: " ", price: " " },{ label: "Autumn Pop", category: "Collection", url: "/collections/autumn-pop", images: " ", price: " " },{ label: "Bachelorette", category: "Collection", url: "/collections/bachelorette", images: " ", price: " " },{ label: "Bag Newborn Hampers", category: "Collection", url: "/collections/bag-newborn-hampers", images: " ", price: " " },{ label: "Balon", category: "Collection", url: "/collections/balon", images: " ", price: " " },{ label: "Beauty Package", category: "Collection", url: "/collections/beauty-package", images: " ", price: " " },{ label: "Best Deal", category: "Collection", url: "/collections/best-deal", images: " ", price: " " },{ label: "Best Seller", category: "Collection", url: "/collections/best-seller", images: " ", price: " " },{ label: "Best Valentine's Deals", category: "Collection", url: "/collections/bes-valentines-deals", images: " ", price: " " },{ label: "Best Value Newborn Hampers Collection", category: "Collection", url: "/collections/best-value-newborn-hampers-collection", images: " ", price: " " },{ label: "Black Tea", category: "Collection", url: "/collections/black-tea", images: " ", price: " " },{ label: "Blessing Hampers", category: "Collection", url: "/collections/blessing-hampers", images: " ", price: " " },{ label: "Bloom Box", category: "Collection", url: "/collections/bloom-box", images: " ", price: " " },{ label: "Bloomcard", category: "Collection", url: "/collections/bloomcard", images: " ", price: " " },{ label: "Boutonniere", category: "Collection", url: "/collections/boutonniere", images: " ", price: " " },{ label: "Bracelet", category: "Collection", url: "/collections/gelang", images: " ", price: " " },{ label: "Buket Bunga Bali", category: "Collection", url: "/collections/buket-bunga-bali", images: " ", price: " " },{ label: "Buket Bunga Bandung", category: "Collection", url: "/collections/buket-bunga-bandung", images: " ", price: " " },{ label: "Buket Bunga Batam", category: "Collection", url: "/collections/buket-bunga-batam", images: " ", price: " " },{ label: "Buket Bunga Demak", category: "Collection", url: "/collections/buket-bunga-demak", images: " ", price: " " },{ label: "Buket Bunga Fresh", category: "Collection", url: "/collections/buket-bunga", images: " ", price: " " },{ label: "Buket Bunga Jepara", category: "Collection", url: "/collections/buket-bunga-jepara", images: " ", price: " " },{ label: "Buket Bunga Medan", category: "Collection", url: "/collections/buket-bunga-medan", images: " ", price: " " },{ label: "Buket Bunga Nusantara", category: "Collection", url: "/collections/buket-bunga-nusantara", images: " ", price: " " },{ label: "Buket Bunga Semarang", category: "Collection", url: "/collections/buket-bunga-semarang", images: " ", price: " " },{ label: "Buket Bunga Sidoarjo", category: "Collection", url: "/collections/buket-bunga-sidoarjo", images: " ", price: " " },{ label: "Buket Bunga Surabaya", category: "Collection", url: "/collections/buket-bunga-surabaya", images: " ", price: " " },{ label: "Buket Bunga Tangerang", category: "Collection", url: "/collections/buket-bunga-tangerang", images: " ", price: " " },{ label: "Buket Bunga Uang", category: "Collection", url: "/collections/buket-bunga-uang", images: " ", price: " " },{ label: "Buket Bunga Valentine", category: "Collection", url: "/collections/buket-bunga-valentine", images: " ", price: " " },{ label: "Buket Bunga Yogyakarta", category: "Collection", url: "/collections/buket-bunga-jogja", images: " ", price: " " },{ label: "Bunga Anggrek Bali", category: "Collection", url: "/collections/bunga-anggrek-bali", images: " ", price: " " },{ label: "Bunga Anggrek Bandung", category: "Collection", url: "/collections/bunga-anggrek-bandung", images: " ", price: " " },{ label: "Bunga Anggrek Surabaya", category: "Collection", url: "/collections/bunga-anggrek-surabaya", images: " ", price: " " },{ label: "Bunga Anniversary", category: "Collection", url: "/collections/bunga-anniversary", images: " ", price: " " },{ label: "Bunga Artificial", category: "Collection", url: "/collections/bunga-artificial", images: " ", price: " " },{ label: "Bunga Buket", category: "Collection", url: "/collections/bunga-buket", images: " ", price: " " },{ label: "Bunga Carnations Bali", category: "Collection", url: "/collections/bunga-carnations-bali", images: " ", price: " " },{ label: "Bunga Carnations Bandung", category: "Collection", url: "/collections/bunga-carnations-bandung", images: " ", price: " " },{ label: "Bunga Carnations Surabaya", category: "Collection", url: "/collections/bunga-carnations-surabaya", images: " ", price: " " },{ label: "Bunga Daisy Bali", category: "Collection", url: "/collections/bunga-daisy-bali", images: " ", price: " " },{ label: "Bunga Daisy Bandung", category: "Collection", url: "/collections/bunga-daisy-bandung", images: " ", price: " " },{ label: "Bunga Daisy Surabaya", category: "Collection", url: "/collections/bunga-daisy-surabaya", images: " ", price: " " },{ label: "Bunga Gerbera Bali", category: "Collection", url: "/collections/bunga-gerbera-bali", images: " ", price: " " },{ label: "Bunga Gerbera Bandung", category: "Collection", url: "/collections/bunga-gerbera-bandung", images: " ", price: " " },{ label: "Bunga Gerbera Surabaya", category: "Collection", url: "/collections/bunga-gerbera-surabaya", images: " ", price: " " },{ label: "Bunga Imlek", category: "Collection", url: "/collections/rangkaian-bunga-tahun-baru-imlek", images: " ", price: " " },{ label: "Bunga Lebaran", category: "Collection", url: "/collections/rangkaian-bunga-lebaran", images: " ", price: " " },{ label: "Bunga Lily Bali", category: "Collection", url: "/collections/bunga-lily-bali", images: " ", price: " " },{ label: "Bunga Lily Bandung", category: "Collection", url: "/collections/bunga-lily-bandung", images: " ", price: " " },{ label: "Bunga Lily Surabaya", category: "Collection", url: "/collections/bunga-lily-surabaya", images: " ", price: " " },{ label: "Bunga Matahari Bali", category: "Collection", url: "/collections/bunga-matahari-bali", images: " ", price: " " },{ label: "Bunga Matahari Bandung", category: "Collection", url: "/collections/bunga-matahari-bandung", images: " ", price: " " },{ label: "Bunga Matahari Surabaya", category: "Collection", url: "/collections/bunga-matahari-surabaya", images: " ", price: " " },{ label: "Bunga Mawar Bali", category: "Collection", url: "/collections/bunga-mawar-bali", images: " ", price: " " },{ label: "Bunga Mawar Bandung", category: "Collection", url: "/collections/bunga-mawar-bandung", images: " ", price: " " },{ label: "Bunga Mawar Surabaya", category: "Collection", url: "/collections/bunga-mawar-surabaya", images: " ", price: " " },{ label: "Bunga Meja", category: "Collection", url: "/collections/bunga-meja", images: " ", price: " " },{ label: "Bunga Meja Bali", category: "Collection", url: "/collections/bunga-meja-bali", images: " ", price: " " },{ label: "Bunga Meja Bandung", category: "Collection", url: "/collections/bunga-meja-bandung", images: " ", price: " " },{ label: "Bunga Meja Batam", category: "Collection", url: "/collections/bunga-meja-batam", images: " ", price: " " },{ label: "Bunga Meja Jepara", category: "Collection", url: "/collections/bunga-meja-jepara", images: " ", price: " " },{ label: "Bunga Meja Medan", category: "Collection", url: "/collections/bunga-meja-medan", images: " ", price: " " },{ label: "Bunga Meja Semarang", category: "Collection", url: "/collections/bunga-meja-semarang", images: " ", price: " " },{ label: "Bunga Meja Sidoarjo", category: "Collection", url: "/collections/bunga-meja-sidoarjo", images: " ", price: " " },{ label: "Bunga Meja Surabaya", category: "Collection", url: "/collections/bunga-meja-surabaya", images: " ", price: " " },{ label: "Bunga Meja Tangerang", category: "Collection", url: "/collections/bunga-meja-tangerang", images: " ", price: " " },{ label: "Bunga Meja Yogyakarta", category: "Collection", url: "/collections/bunga-meja-jogja", images: " ", price: " " },{ label: "Bunga Modern Pastel Bali", category: "Collection", url: "/collections/bunga-modern-pastel-bali", images: " ", price: " " },{ label: "Bunga Modern Pastel Bandung", category: "Collection", url: "/collections/bunga-modern-pastel-bandung", images: " ", price: " " },{ label: "Bunga Modern Pastel Medan", category: "Collection", url: "/collections/bunga-modern-pastel-medan", images: " ", price: " " },{ label: "Bunga Modern Pastel Semarang", category: "Collection", url: "/collections/bunga-modern-pastel-semarang", images: " ", price: " " },{ label: "Bunga Modern Pastel Surabaya", category: "Collection", url: "/collections/bunga-modern-pastel-surabaya", images: " ", price: " " },{ label: "Bunga Modern Pastel Yogyakarta", category: "Collection", url: "/collections/bunga-modern-pastel-yogyakarta", images: " ", price: " " },{ label: "Bunga Natal", category: "Collection", url: "/collections/rangkaian-bunga-christmas", images: " ", price: " " },{ label: "Bunga Papan", category: "Collection", url: "/collections/bunga-papan", images: " ", price: " " },{ label: "Bunga Pernikahan", category: "Collection", url: "/collections/bunga-pernikahan", images: " ", price: " " },{ label: "Bunga Plastik", category: "Collection", url: "/collections/bunga-plastik", images: " ", price: " " },{ label: "Bunga Tulip", category: "Collection", url: "/collections/bunga-tulip", images: " ", price: " " },{ label: "Bunga Ulang Tahun", category: "Collection", url: "/collections/bunga-ulang-tahun", images: " ", price: " " },{ label: "Bunga Wisuda", category: "Collection", url: "/collections/karangan-bunga-wisuda", images: " ", price: " " },{ label: "Cake", category: "Collection", url: "/collections/kue", images: " ", price: " " },{ label: "Cake", category: "Collection", url: "/collections/cake", images: " ", price: " " },{ label: "Cake Sameday Delivery", category: "Collection", url: "/collections/cake-sameday-delivery", images: " ", price: " " },{ label: "Cake, Hampers & Gifts", category: "Collection", url: "/collections/cake-hampers", images: " ", price: " " },{ label: "Cancer ♋️ 22June - 22July", category: "Collection", url: "/collections/kado-untuk-zodiak-cancer", images: " ", price: " " },{ label: "Capricorn ♑️ 21Dec - 19Jan", category: "Collection", url: "/collections/kado-untuk-zodiak-capricorn", images: " ", price: " " },{ label: "Care Packages", category: "Collection", url: "/collections/toko-parcel-murah", images: " ", price: " " },{ label: "Care Packages (Keluarga, Sahabat, Karyawan)", category: "Collection", url: "/collections/sehat-bebas-corona", images: " ", price: " " },{ label: "Carnations", category: "Collection", url: "/collections/bunga-anyelir", images: " ", price: " " },{ label: "Celebration", category: "Collection", url: "/collections/celebration", images: " ", price: " " },{ label: "Chléa Paperie", category: "Collection", url: "/collections/chlea-paperie", images: " ", price: " " },{ label: "Chocodot", category: "Collection", url: "/collections/chocodot", images: " ", price: " " },{ label: "Christmas", category: "Collection", url: "/collections/christmas", images: " ", price: " " },{ label: "Classic Cake", category: "Collection", url: "/collections/classic-cake", images: " ", price: " " },{ label: "Classic CNY Hampers", category: "Collection", url: "/collections/classic-cny-hampers", images: " ", price: " " },{ label: "Classic CNY Hampers Luar Jabodetabek", category: "Collection", url: "/collections/classic-cny-hampers-luar-jabodetabek", images: " ", price: " " },{ label: "Classic Hampers", category: "Collection", url: "/collections/classic-hampers", images: " ", price: " " },{ label: "Classic Hampers Luar Jadetabek", category: "Collection", url: "/collections/classic-hampers-luar-jadetabek", images: " ", price: " " },{ label: "Classic Style Flowers", category: "Collection", url: "/collections/classic-style-flowers", images: " ", price: " " },{ label: "Cokelat", category: "Collection", url: "/collections/permen-coklat", images: " ", price: " " },{ label: "Collection List", category: "Collection", url: "/collections/collection-list", images: " ", price: " " },{ label: "Condolences", category: "Collection", url: "/collections/axa-condolences", images: " ", price: " " },{ label: "Congratulations", category: "Collection", url: "/collections/rangkaian-bunga-ucapan-selamat", images: " ", price: " " },{ label: "Corporate Gifts", category: "Collection", url: "/collections/corporate-gifts", images: " ", price: " " },{ label: "Corporate Hampers", category: "Collection", url: "/collections/corporate-hampers", images: " ", price: " " },{ label: "Couple Gift", category: "Collection", url: "/collections/couple-gift", images: " ", price: " " },{ label: "Craft S
7634weetbox Newborn", category: "Collection", url: "/collections/craft-sweetbox-newborn", images: " ", price: " " },{ label: "Crystal Florarium", category: "Collection", url: "/collections/crystal-florarium", images: " ", price: " " },{ label: "Cuddlemate Doll", category: "Collection", url: "/collections/boneka-lucu", images: " ", price: " " },{ label: "Cufflinks", category: "Collection", url: "/collections/cufflinks", images: " ", price: " " },{ label: "Cupcakes", category: "Collection", url: "/collections/cupcakes", images: " ", price: " " },{ label: "Custom Alat Tulis", category: "Collection", url: "/collections/alat-tulis", images: " ", price: " " },{ label: "Custom Cake", category: "Collection", url: "/collections/custom-cake", images: " ", price: " " },{ label: "Custom Card Holder", category: "Collection", url: "/collections/custom-card-holder", images: " ", price: " " },{ label: "Custom Coaster", category: "Collection", url: "/collections/custom-coaster", images: " ", price: " " },{ label: "Custom Cutlery", category: "Collection", url: "/collections/custom-cutlery", images: " ", price: " " },{ label: "Custom E-Money", category: "Collection", url: "/collections/custom-e-money", images: " ", price: " " },{ label: "Custom Earpod", category: "Collection", url: "/collections/custom-earpod", images: " ", price: " " },{ label: "Custom Fan", category: "Collection", url: "/collections/custom-fan", images: " ", price: " " },{ label: "Custom Jewelry", category: "Collection", url: "/collections/custom-jewelry", images: " ", price: " " },{ label: "Custom Keychain", category: "Collection", url: "/collections/custom-keychain", images: " ", price: " " },{ label: "Custom Medallion", category: "Collection", url: "/collections/custom-medallion", images: " ", price: " " },{ label: "Custom Mirror", category: "Collection", url: "/collections/custom-mirror", images: " ", price: " " },{ label: "Custom Mug", category: "Collection", url: "/collections/custom-mug", images: " ", price: " " },{ label: "Custom Necklace", category: "Collection", url: "/collections/custom-necklace", images: " ", price: " " },{ label: "Custom Notebook", category: "Collection", url: "/collections/custom-notebook", images: " ", price: " " },{ label: "Custom Pen & Pencil", category: "Collection", url: "/collections/custom-pen-pencil", images: " ", price: " " },{ label: "Custom Photo Frame", category: "Collection", url: "/collections/photo-frame", images: " ", price: " " },{ label: "Custom Pillow", category: "Collection", url: "/collections/bantal-custom", images: " ", price: " " },{ label: "Custom Powerbank", category: "Collection", url: "/collections/custom-powerbank", images: " ", price: " " },{ label: "Custom Scarf", category: "Collection", url: "/collections/custom-scarf", images: " ", price: " " },{ label: "Custom Speaker", category: "Collection", url: "/collections/custom-speaker", images: " ", price: " " },{ label: "Custom T-Shirt", category: "Collection", url: "/collections/custom-t-shirt", images: " ", price: " " },{ label: "Custom Tote Bag", category: "Collection", url: "/collections/custom-tote-bag", images: " ", price: " " },{ label: "Custom Tumbler Minuman", category: "Collection", url: "/collections/custom-tumbler-minuman", images: " ", price: " " },{ label: "D'paris", category: "Collection", url: "/collections/dparis", images: " ", price: " " },{ label: "Daisy", category: "Collection", url: "/collections/bunga-aster", images: " ", price: " " },{ label: "Dekorasi", category: "Collection", url: "/collections/dekorasi", images: " ", price: " " },{ label: "Dekorasi Duka Cita", category: "Collection", url: "/collections/dekorasi-bunga-duka-cita", images: " ", price: " " },{ label: "Dekorasi Pemakaman", category: "Collection", url: "/collections/dekorasi-pemakaman", images: " ", price: " " },{ label: "Dekorasi Pernikahan", category: "Collection", url: "/collections/dekorasi-bunga-pernikahan", images: " ", price: " " },{ label: "Dekorasi Ulang Tahun", category: "Collection", url: "/collections/dekorasi-bunga-ulang-tahun", images: " ", price: " " },{ label: "Delivery", category: "Collection", url: "/collections/delivery", images: " ", price: " " },{ label: "Deluxe Newborn Hampers Collection", category: "Collection", url: "/collections/deluxe-newborn-hampers-collection", images: " ", price: " " },{ label: "Digital Gift", category: "Collection", url: "/collections/digital-gift", images: " ", price: " " },{ label: "Donasi", category: "Collection", url: "/collections/donasi", images: " ", price: " " },{ label: "E-Card", category: "Collection", url: "/collections/ecard", images: " ", price: " " },{ label: "E-Gift Card", category: "Collection", url: "/collections/e-gift-card", images: " ", price: " " },{ label: "Earrings", category: "Collection", url: "/collections/anting", images: " ", price: " " },{ label: "Edible Gift", category: "Collection", url: "/collections/edible-gift", images: " ", price: " " },{ label: "Enchanted Grande Love Pirouette", category: "Collection", url: "/collections/enchanted-grande-love-pirouette", images: " ", price: " " },{ label: "Enchanted Love Pirouette", category: "Collection", url: "/collections/enchanted-love-pirouette", images: " ", price: " " },{ label: "Engagement", category: "Collection", url: "/collections/rangkaian-bunga-lamaran", images: " ", price: " " },{ label: "Expression", category: "Collection", url: "/collections/expression", images: " ", price: " " }
7634,{ 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: " " }
7634,{ 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: " " }
7634,{ 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
7634dal", 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-
7634hampers", 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
7634o-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: " " }
7634,{ 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: " " }
7634,{ 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: " " }
7634,{ 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: " " }
7634,{ 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: " " }
7634,{ 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: " " }
7634,{ 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: " " }
7634,{ 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: "RSLOT77 menyediakan akses Bandar Togel Toto Macau dengan sistem terlindungi, proses masuk praktis, tampilan ringan, serta informasi yang tersusun rapi untuk kenyamanan pengguna.", category: "Collection", url: "/collections/standing-flower", images: " ", price: " " },{ label: "RSLOT77 menyediakan akses Bandar Togel Toto Macau dengan sistem terlindungi, proses masuk praktis, tampilan ringan, serta informasi yang tersusun rapi untuk kenyamanan pengguna. Bali", category: "Collection", url: "/collections/standing-flower-bali", images: " ", price: " " },{ label: "RSLOT77 menyediakan akses Bandar Togel Toto Macau dengan sistem terlindungi, proses masuk praktis, tampilan ringan, serta informasi yang tersusun rapi untuk kenyamanan pengguna. Bandung", category: "Collection", url: "/collections/standing-flower-bandung", images: " ", price: " " },{ label: "RSLOT77 menyediakan akses Bandar Togel Toto Macau dengan sistem terlindungi, proses masuk praktis, tampilan ringan, serta informasi yang tersusun rapi untuk kenyamanan pengguna. Congratulations", category: "Collection", url: "/collections/standing-flower-congratulations", images: " ", price: " " },{ label: "RSLOT77 menyediakan akses Bandar Togel Toto Macau dengan sistem terlindungi, proses masuk praktis, tampilan ringan, serta informasi yang tersusun rapi untuk kenyamanan pengguna. Demak", category: "Collection", url: "/collections/standing-flower-demak", images: " ", price: " " },{ label: "RSLOT77 menyediakan akses Bandar Togel Toto Macau dengan sistem terlindungi, proses masuk praktis, tampilan ringan, serta informasi yang tersusun rapi untuk kenyamanan pengguna. Jepara", category: "Collection", url: "/collections/standing-flower-jepara", images: " ", price: " " },{ label: "RSLOT77 menyediakan akses Bandar Togel Toto Macau dengan sistem terlindungi, proses masuk praktis, tampilan ringan, serta informasi yang tersusun rapi untuk kenyamanan pengguna. Semarang", category: "Collection", url: "/collections/standing-flower-semarang", images: " ", price: " " },{ label: "RSLOT77 menyediakan akses Bandar Togel Toto Macau dengan sistem terlindungi, proses masuk praktis, tampilan ringan, serta informasi yang tersusun rapi untuk kenyamanan pengguna. Sidoarjo", category: "Collection", url: "/collections/standing-flower-sidoarjo", images: " ", price: " " },{ label: "RSLOT77 menyediakan akses Bandar Togel Toto Macau dengan sistem terlindungi, proses masuk praktis, tampilan ringan, serta informasi yang tersusun rapi untuk kenyamanan pengguna. Surabaya", category: "Collection", url: "/collections/standing-flower-surabaya", images: " ", price: " " },{ label: "RSLOT77 menyediakan akses Bandar Togel Toto Macau dengan sistem terlindungi, proses masuk praktis, tampilan ringan, serta informasi yang tersusun rapi untuk kenyamanan pengguna. Yogyakarta", category: "Collection", url: "/collections/standing-flower-yogyakarta", images: " ", price: " " },{ label: "Standing Giant Flower", category: "Collection", url: "/collections/standing-giant-flower", images: " ", price: " " },{ label: "Stationery", category: "Collection", url: "/collections/stationery", images: " ", price: " " },{ label: "Steekwerk", category: "Collection", url: "/collections/steekwerk", images: " ", price: " " },{ label: "Stylish Hampers", category: "Collection", url: "/collections/stylish-hampers", images: " ", price: " " },{ label: "Stylish Hampers Luar Jadetabek", category: "Collection", url: "/collections/stylish-hampers-luar-jadetabek", images: " ", price: " " },{ label: "Succulent", category: "Collection", url: "/collections/succulent", images: " ", price: " " },{ label: "Sunflower", category: "Collection", url: "/collections/bunga-matahari", images: " ", price: " " },{ label: "Sweet & Savoury Hampers", category: "Collection", url: "/collections/sweet-savoury-hampers", images: " ", price: " " },{ label: "Sweet Gracie", category: "Collection", url: "/collections/sweet-gracie", images: " ", price: " " },{ label: "Sweet Pastel Love", category: "Collection", url: "/collections/pastel-love", images: " ", price: " " },{ label: "Sweet Pastel Love Nusantara", category: "Collection", url: "/collections/sweet-pastel-love-nusantara", images: " ", price: " " },{ label: "Sweet Treats", category: "Collection", url: "/collections/sweet-treats", images: " ", price: " " },{ label: "Sweetooth", category: "Collection", url: "/collections/sweetooth", images: " ", price: " " },{ label: "Taurus ♉️ 20April - 20May", category: "Collection", url: "/collections/kado-untuk-zodiak-taurus", images: " ", price: " " },{ label: "Teddy Bear", category: "Collection", url: "/collections/boneka-teddy-bear", images: " ", price: " " },{ label: "Teh", category: "Collection", url: "/collections/teh", images: " ", price: " " },{ label: "Test Error", category: "Collection", url: "/collections/test-error", images: " ", price: " " },{ label: "Testing", category: "Collection", url: "/collections/testing", images: " ", price: " " },{ label: "Thank You", category: "Collection", url: "/collections/rangkaian-bunga-ucapan-terima-kasih", images: " ", price: " " },{ label: "The Classic Astoria", category: "Collection", url: "/collections/astoria", images: " ", price: " " },{ label: "The Classic Enchanted Dome", category: "Collection", url: "/collections/enchanted-dome", images: " ", price: " " },{ label: "The Enchanted Love Pirouette Special Edition", category: "Collection", url: "/collections/the-enchanted-love-pirouette-special-edition", images: " ", price: " " },{ label: "The F Thing", category: "Collection", url: "/collections/the-f-thing", images: " ", price: " " },{ label: "The First", category: "Collection", url: "/collections/the-first", images: " ", price: " " },{ label: "The Novo Astoria", category: "Collection", url: "/collections/the-novo-astoria", images: " ", price: " " },{ label: "The Novo Enchanted Dome", category: "Collection", url: "/collections/the-novo-enchanted-dome", images: " ", price: " " },{ label: "The Novo Enchanted Dome Special Edition", category: "Collection", url: "/collections/the-novo-enchanted-dome-special-edition", images: " ", price: " " },{ label: "The Palace", category: "Collection", url: "/collections/the-palace", images: " ", price: " " },{ label: "Ties", category: "Collection", url: "/collections/dasi", images: " ", price: " " },{ label: "Tisane", category: "Collection", url: "/collections/tisane", images: " ", price: " " },{ label: "Toko Bunga Aceh", category: "Collection", url: "/collections/toko-bunga-aceh", images: " ", price: " " },{ label: "Toko Bunga Ambon", category: "
7634Collection", url: "/collections/toko-bunga-ambon", images: " ", price: " " },{ label: "Toko Bunga Atambua", category: "Collection", url: "/collections/toko-bunga-atambua", images: " ", price: " " },{ label: "Toko Bunga Bali", category: "Collection", url: "/collections/toko-bunga-bali", images: " ", price: " " },{ label: "Toko Bunga Balikpapan", category: "Collection", url: "/collections/toko-bunga-balikpapan", images: " ", price: " " },{ label: "Toko Bunga Bandar Lampung", category: "Collection", url: "/collections/toko-bunga-bandar-lampung", images: " ", price: " " },{ label: "Toko Bunga Bandung", category: "Collection", url: "/collections/toko-bunga-bandung", images: " ", price: " " },{ label: "Toko Bunga Bandung Barat", category: "Collection", url: "/collections/toko-bunga-bandung-barat", images: " ", price: " " },{ label: "Toko Bunga Banjarmasin", category: "Collection", url: "/collections/toko-bunga-banjarmasin", images: " ", price: " " },{ label: "Toko Bunga Banten", category: "Collection", url: "/collections/toko-bunga-banten", images: " ", price: " " },{ label: "Toko Bunga Banyumas", category: "Collection", url: "/collections/toko-bunga-banyumas", images: " ", price: " " },{ label: "Toko Bunga Banyuwangi", category: "Collection", url: "/collections/toko-bunga-banyuwangi", images: " ", price: " " },{ label: "Toko Bunga Batam", category: "Collection", url: "/collections/toko-bunga-batam", images: " ", price: " " },{ label: "Toko Bunga Baubau", category: "Collection", url: "/collections/toko-bunga-baubau", images: " ", price: " " },{ label: "Toko Bunga Bekasi", category: "Collection", url: "/collections/toko-bunga-bekasi", images: " ", price: " " },{ label: "Toko Bunga Bengkalis", category: "Collection", url: "/collections/toko-bunga-bengkalis", images: " ", price: " " },{ label: "Toko Bunga Bengkayang", category: "Collection", url: "/collections/toko-bunga-bengkayang", images: " ", price: " " },{ label: "Toko Bunga Binjai", category: "Collection", url: "/collections/toko-bunga-binjai", images: " ", price: " " },{ label: "Toko Bunga Bintaro", category: "Collection", url: "/collections/toko-bunga-bintaro", images: " ", price: " " },{ label: "Toko Bunga Blitar", category: "Collection", url: "/collections/toko-bunga-blitar", images: " ", price: " " },{ label: "Toko Bunga Blora", category: "Collection", url: "/collections/toko-bunga-blora", images: " ", price: " " },{ label: "Toko Bunga Bogor", category: "Collection", url: "/collections/toko-bunga-bogor", images: " ", price: " " },{ label: "Toko Bunga Bojonegoro", category: "Collection", url: "/collections/toko-bunga-bojonegoro", images: " ", price: " " },{ label: "Toko Bunga Boyolali", category: "Collection", url: "/collections/toko-bunga-boyolali", images: " ", price: " " },{ label: "Toko Bunga Brebes", category: "Collection", url: "/collections/toko-bunga-brebes", images: " ", price: " " },{ label: "Toko Bunga Bukittinggi", category: "Collection", url: "/collections/toko-bunga-bukittinggi", images: " ", price: " " },{ label: "Toko Bunga Buleleng", category: "Collection", url: "/collections/toko-bunga-buleleng", images: " ", price: " " },{ label: "Toko Bunga Cakung", category: "Collection", url: "/collections/toko-bunga-cakung", images: " ", price: " " },{ label: "Toko Bunga Cawang", category: "Collection", url: "/collections/toko-bunga-cawang", images: " ", price: " " },{ label: "Toko Bunga Cempaka Putih", category: "Collection", url: "/collections/toko-bunga-cempaka-putih", images: " ", price: " " },{ label: "Toko Bunga Cengkareng", category: "Collection", url: "/collections/toko-bunga-cengkareng", images: " ", price: " " },{ label: "Toko Bunga Ciamis", category: "Collection", url: "/collections/toko-bunga-ciamis", images: " ", price: " " },{ label: "Toko Bunga Cianjur", category: "Collection", url: "/collections/toko-bunga-cianjur", images: " ", price: " " },{ label: "Toko Bunga Cibinong", category: "Collection", url: "/collections/toko-bunga-cibinong", images: " ", price: " " },{ label: "Toko Bunga Cibubur", category: "Collection", url: "/collections/toko-bunga-cibubur", images: " ", price: " " },{ label: "Toko Bunga Cijantung", category: "Collection", url: "/collections/toko-bunga-cijantung", images: " ", price: " " },{ label: "Toko Bunga Cikarang", category: "Collection", url: "/collections/toko-bunga-cikarang", images: " ", price: " " },{ label: "Toko Bunga Cikini", category: "Collection", url: "/collections/toko-bunga-cikini", images: " ", price: " " },{ label: "Toko Bunga Cilacap", category: "Collection", url: "/collections/toko-bunga-cilacap", images: " ", price: " " },{ label: "Toko Bunga Cilandak", category: "Collection", url: "/collections/toko-bunga-cilandak", images: " ", price: " " },{ label: "Toko Bunga Cileunyi", category: "Collection", url: "/collections/toko-bunga-cileunyi", images: " ", price: " " },{ label: "Toko Bunga Ciracas", category: "Collection", url: "/collections/toko-bunga-ciracas", images: " ", price: " " },{ label: "Toko Bunga Cirebon", category: "Collection", url: "/collections/toko-bunga-cirebon", images: " ", price: " " }
7634,{ 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
7634dal", 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: " " },
7635       { 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" }
7635,{ 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" }
7635,{ label: "majestic blue romance bouquet", category: "Produk", url: "/products/majestic-blue-romance-bouquet", images: "//outerbloom.com/cdn/shop/files/OBVBUN1357_Majestic-Blue-Romance-Bouquet_99b8ba96-0e67-4eef-a00e-b2daedcddb6a_thumb.jpg?v=1757390540", price: "Rp 435.000" },{ label: "sincerely", category: "Produk", url: "/products/sincerely", images: "//outerbloom.com/cdn/shop/files/Sincerely-WM_thumb.jpg?v=1688354677", price: "Rp 585.000" },{ label: "happy days jabodetabek", category: "Produk", url: "/products/happy-days-jabodetabek", images: "//outerbloom.com/cdn/shop/files/Happy-Days-Jabodetabek_WM_thumb.jpg?v=1759224026", price: "Rp 485.000" },{ label: "solemn comfort jabodetabek", category: "Produk", url: "/products/solemn-comfort-jabodetabek", images: "//outerbloom.com/cdn/shop/products/7fe123d8-6bb2-4c0d-bd4c-f8c3032823f2_6b9c33b6-4a23-41cb-8709-fc9223fe096a_thumb.png?v=1590662086", price: "Rp 635.000" },{ label: "big dreams jabodetabek", category: "Produk", url: "/products/big-dreams", images: "//outerbloom.com/cdn/shop/files/JKTCON1002_Big-Dreams-Jabodetabek_thumb.gif?v=1717494603", price: "Rp 485.000" },{ label: "signature ramadan deluxe hampers", category: "Produk", url: "/products/outerbloom-signature-ramadhan-deluxe-hampers", images: "//outerbloom.com/cdn/shop/files/Signature-Deluxe-Hampers_thumb.jpg?v=1739242254", price: "Rp 985.000" },{ label: "amorous amos jabodetabek", category: "Produk", url: "/products/amorous-amos-jabodetabek", images: "//outerbloom.com/cdn/shop/files/Amorous-Amos-Jabodetabek-WM_thumb.jpg?v=1759224071", price: "Rp 485.000" },{ label: "pink darling bouquet", category: "Produk", url: "/products/pink-darling-bouquet", images: "//outerbloom.com/cdn/shop/products/Pink-Darling-Bouquet_thumb.jpg?v=1669969725", price: "Rp 485.000" },{ label: "black pink bouquet", category: "Produk", url: "/products/black-pink-bouquet", images: "//outerbloom.com/cdn/shop/files/Black-Pink-Bouquet_thumb.jpg?v=1756434063", price: "Rp 485.000" },{ label: "profound happiness jabodetabek", category: "Produk", url: "/products/profound-happiness-jabodetabek", images: "//outerbloom.com/cdn/shop/files/profound-happiness_thumb.gif?v=1689940309", price: "Rp 635.000" },{ label: "healing trove", category: "Produk", url: "/products/healing-trove", images: "//outerbloom.com/cdn/shop/products/2ef5379f-27a6-41ba-85c7-c65cf3ec3f08_thumb.jpg?v=1571471845", price: "Rp 485.000" },{ label: "sincerity solace", category: "Produk", url: "/products/sincerity-solace", images: "//outerbloom.com/cdn/shop/products/OUTSTF1038_sincerity-solace-WM_thumb.jpg?v=1612352477", price: "Rp 485.000" },{ label: "bellarosa bloom box", category: "Produk", url: "/products/bellarosa-bloom-box", images: "//outerbloom.com/cdn/shop/files/OBVBUN1783_Bellarosa-Bloom-Box_c0000424-411c-48ed-abf4-0de7d925ea53_thumb.jpg?v=1757316757", price: "Rp 785.000" }
7636   ];
7637 
7638              
7639         $( ".header-input-search" ).catcomplete({
7640          appendTo: ".searchResult",source: function(request, response) {
7641             var results = $.ui.autocomplete.filter(data, request.term);
7642             var predicate = function () {
7643                 var counter = { Collection: 0, Produk: 0 };
7644             var fn = function(item) {counter[item.category] += 1;return (counter[item.category] <= 5);}
7645             return fn
7646             }();
7647             response(results.filter(predicate));
7648           },
7649           minLength:1,
7650            //results are clickable
7651           select: function( event, ui ) {window.location = ui.item.url;}
7652 });
7653 $( ".header-input-search2" ).catcomplete({
7654         appendTo: ".searchResult2",
7655                    source: function(request, response) {
7656                     var results = $.ui.autocomplete.filter(data, request.term);
7657                     var predicate = function () {
7658                         var counter = { Collection: 0, Produk: 0 };
7659               var fn = function(item) {
7660               counter[item.category] += 1;
7661   return (counter[item.category] <= 5);
7662 }
7663                return fn
7664                }();
7665 response(results.filter(predicate));
7666 },
7667   minLength:1,
7668         //results are clickable
7669         select: function( event, ui ) {
7670           window.location = ui.item.url;
7671         }
7672 });
7673 });
7674 </script>
7674
7675 
7676     
7676<script src="//outerbloom.com/cdn/shop/t/138/assets/vendors.js?v=6349622868601634021752652419" defer></script>
7676
7677 
7677<script src="//outerbloom.com/cdn/shop/t/138/assets/app.js?v=136050180318808583701752652452" defer></script>
7677
7678 
7679 
7679<script>
7680   ( function() {
7681     var youtube = document.querySelectorAll( ".youtube" );
7682     for (var i = 0; i < youtube.length; i++) {
7683       var source = "https://img.youtube.com/vi/"+ youtube[i].dataset.embed +"/sddefault_1x.jpg";
7684       var datasource = "https://img.youtube.com/vi/"+ youtube[i].dataset.embed +"/sddefault.jpg";
7685       var image = new Image();
7686       image.src = source;
7687       image.setAttribute("data-src", datasource);
7688       image.classList.add("swiper-lazy");
7689       image.addEventListener( "load", function() {
7690         youtube[ i ].appendChild( image );
7691       }( i ) );
7692       youtube[i].addEventListener( "click", function() {
7693         var iframe = document.createElement( "iframe" );
7694         iframe.setAttribute( "width", "480" );
7695         iframe.setAttribute( "height", "480" );
7696         iframe.setAttribute( "frameborder", "0" );
7697         iframe.setAttribute( "allowfullscreen", "" );
7698         iframe.setAttribute( "src", "https://www.youtube.com/embed/"+ this.dataset.embed +"?rel=0&showinfo=0&autoplay=1" );
7699         this.innerHTML = "";
7700         this.appendChild( iframe );
7701       } );
7702     };
7703 
7704   } )();
7705 
7706   /* Lazy Load */
7707   const mainLazyLoad = new LazyLoad({threshold:400});
7708   $(document).ready(function(){
7709 
7710     $("selectxxx").addClass("needsclick");
7711     FastClick.attach(document.body);
7712     
7713     var $customSelects = $('.select-search');
7714     $customSelects.select2({
7715       templateResult: function(result, container) {
7716         if (!result.id) {
7717           return result.text;
7718         }
7719         container.className += ' needsclick';
7720         return result.text;
7721       }
7722     });
7723     $customSelects.each(function(index, el){$(el).data('select2').$container.find('*').addClass('needsclick');});
7724     $(document).on('select2:open', () => {
7725       document.querySelector('.select2-search__field').focus();
7726     });
7727     
7728 
7729     $(".overlay").click(function(){
7730       $(".js-drawer-close").click();
7731     });
7732     $(".site-nav--mobile .js-drawer-open-left, #NavDrawer .icon-close, .overlay-nav").click(function(){
7733       $("html").toggleClass("nav_open");
7734     });
7735     
7736     $('.swatch-element label').on('click', function(){
7737       var srcImg = $(this).data('src');
7738       $('#thumb-image-product .product-single__thumbnail').each(function(){
7739         if ($(this).attr("href") == srcImg) {
7740           $(this).trigger('click');
7741         }
7742       });
7743     });
7744     var defaultValue = $(".swatch input:checked").val()
7745     
7746     $('#purchaseProduct .swatch [type=radio]').change(function() {
7747       var optionIndex = $(this).closest('.swatch').attr('data-option-index');
7748       var optionValue = $(this).val();
7749       console.log(optionIndex, optionValue)
7750       var value = parseInt(optionValue.split(' ')[0])
7751       $(this)
7752       .closest('#purchaseProduct')
7753       .find('.single-option-selector')
7754       .eq(optionIndex)
7755       .val(optionValue)
7756       .trigger('change');
7757       
7758     });
7759     
7760   });
7761   $(document).ready(function(){
7762     $(".nav-search a").click(function(e){
7763       e.preventDefault();
7764       $(".icon-navsearch").toggle();
7765       $(".icon-navclose").toggle();
7766       $(".site-nav__item > .site-nav__link").toggle();
7767       $(".open-search").toggle();
7768       $(".open-search input").focus();
7769     });
7770     $(".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'>");
7771     if ($(window).width() < 768) {
7772       $(".bg-products .label-tag.valentine").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-valentine_75x.png?v=82732945490105366961752652419' alt='Icon Valentine'>");
7773       $(".bg-products .label-tag.cny").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-cny_45x.png?v=101884295148001743851752652418' alt='Icon CNY'>");
7774       $(".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'>");
7775     } else {
7776       $(".bg-products .label-tag.valentine").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-valentine_60x.png?v=82732945490105366961752652419' alt='Icon Valentine'>");
7777       $(".bg-products .label-tag.cny").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-cny_60x.png?v=101884295148001743851752652418' alt='Icon CNY'>");
7778       $(".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'>");
7779     }
7780     $(".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'>");
7781     $(".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'>");
7782   });
7783 </script>
7783
7784 
7785 
7786     
7787 
7788     
7788<script type="text/javascript">
7789       var wishlistpage = 0;
7790        
7791        var quickShop_money_format="<span class='money'>"+"Rp {{amount_no_decimals}}"+"</span>";
7792     </script>
7792
7793     
7794       <!-- Remove duplicate wishlist.js reference -->
7795       <style>
7796   .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)}}
7797 </style>
7798 
7799 <div class="modal fade" id="modalwishlist0" tabindex="-1" role="dialog">
7800   <div class="modal-dialog" role="document">
7801     <div class="modal-content">        
7802       <div class="modal-body">Your Wishlist is empty!</div>
7803       <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>          
7804     </div>
7805   </div>
7806 </div> 
7807 
7808 <div class="wishlist-model">
7809   <div class="modal fade" id="modalwishlist1" tabindex="-1" role="dialog" aria-hidden="true">
7810     <div class="modal-dialog white-modal">
7811       <div class="modal-content">
7812         <div class="modal-header">
7813           <button type="button" class="close" data-dismiss="modal" aria-label="Close">
7814             <svg class="icon icon-close" version="1.1" xmlns="logoweb.png" width="32" height="32" viewBox="0 0 32 32">
7815 <title>icon-close</title>
7816 <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>
7817 </svg>
7818           </button>
7819         </div>
7820         <div class="modal-body">
7821           <div class="wishlist-left">
7822             <div class="wishlist-note">
7823               <span class="cirle"><svg version="1.1" xmlns="logoweb.png" width="32" height="32" viewBox="0 0 32 32">
7824 <title>icon-check</title>
7825 <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>
7826 </svg></span>
7827               Product added to <a href="/pages/wish-list">Wishlist</a>
7828             </div>
7829             <div class="wishlist-product">
7830               <div class="product-left">
7831                 <div class="wishlist-image"></div>
7832               </div>
7833               <div class="product-right">
7834                 <div class="wishlist-name"></div>
7835                 <div class="wishlist-price"></div>
7836               </div>
7837             </div>
7838           </div>
7839           <div class="wishlist-right">
7840             <div class="wishlist-cart">
7841               <form action="/cart/add" method="post" class="variants-form variants" id="AddToCartForm" enctype="multipart/form-data">                  
7842                 <div class="others-bottom">
7843                   <a class="btn btn-quick-shop" href="/pages/wish-list">View Wishlist</a>
7844                   <button type="submit" name="add" id="AddToCart" class="btn btn-cta">
7845                     <span id="AddToCartText" class="">Beli Sekarang</span>
7846                   </button>
7847                 </div>
7848                 <div id="wishlist-variants-container" class="variants-wrapper"></div> 
7849                 <div class="quantity-content">
7850                   <label>QTY</label>
7851                   <input type="number" size="5" class="" name="quantity" value="1" />
7852                 </div>
7853               </form> 
7854             </div>
7855           </div>
7856         </div>
7857       </div>
7858     </div>
7859   </div>
7860 </div>
7861 
7862     
7863     <style>
7864        .stamped-badge[data-rating="0.0"]{display: none !Important;}
7865        
7866         div[data-load-type="continue"] ul.stamped-pagination li.next a, div[data-widget-load-type="continue"] ul.stamped-pagination li.next a {
7867           border-radius: 0px;
7868       }
7869           .stamped-review-body {
7870           padding-left: 0px !important;
7871       }
7872           #product-reviews .stamped-header:after {
7873             display:none !Important;
7874           }
7875       #stamped-main-widget .stamped-container, .stamped-badge-caption,#stamped-reviews-widget {
7876           font-family:inherit !important;
7877       }
7878     </style>
7879 
7880     
7881 
7882 <div id='stamped-rewards-init' class='stamped-rewards-init'
7883   data-key-public=''
7884 
7885 ></div>
7886 
7887     
7887<script src="//outerbloom.com/cdn/shop/t/138/assets/variant-sku-handler.js?v=91239063692820757781752652418" defer></script>
7887
7888     <!-- Remove duplicate jQuery reference and load wishlist script properly -->
7889     
7889<script src="//outerbloom.com/cdn/shop/t/138/assets/wishlist-fixed.js?v=35991423018869066281754360012" defer></script>
7889
7890 
7891     
7891<script>
7892       function myInit(){ StampedFn.init({ apiKey: 'pubkey-hCS8DHE9QbBHhHN89WXFkuJ0Y3422D', sId: '23462' }); }
7893     </script>
7893
7894     
7894<script async onload="myInit()" type="text/javascript" src="https://cdn1.stamped.io/files/widget.min.js"></script>
7894<style>
7895   .jss59 {
7896     background-color: rgba(0, 0, 0, 0.6);
7897   }
7898   .MuiBackdrop-root {
7899     top: 0;
7900     left: 0;
7901     right: 0;
7902     bottom: 0;
7903     display: flex;
7904     z-index: -1;
7905     position: fixed;
7906     align-items: center;
7907     justify-content: center;
7908     background-color: rgba(0, 0, 0, 0.5);
7909     -webkit-tap-highlight-color: transparent;
7910   }
7911   .MuiDialog-scrollPaper {
7912     display: flex;
7913     align-items: center;
7914     justify-content: center;
7915   }
7916   .MuiDialog-container {
7917     height: 100%;
7918     outline: 0;
7919   }
7920   .MuiPaper-elevation24 {
7921     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);
7922   }
7923   .MuiDialog-paper {
7924     margin: 32px;
7925     position: relative;
7926     overflow-y: auto;
7927   }
7928   .MuiDialog-paperScrollPaper {
7929     display: flex;
7930     max-height: calc(100% - 64px);
7931     flex-direction: column;
7932   }
7933   .MuiDialog-paperWidthSm {
7934     max-width: 600px;
7935   }
7936   #location-lock-dialog {
7937     top: 20%;
7938     left: 0;
7939     right: 0;
7940     width: 30%;
7941     margin: 0px auto;
7942     display: block;
7943     padding: 30px;
7944     z-index: 99999;
7945     position: fixed;
7946     font-size: 14px;
7947     background: rgb(0, 0, 0);
7948     box-shadow: rgba(11, 11, 12, 0.2) 2px 4px 5px 0px;
7949     text-align: center;
7950     font-family: Roboto, Arial, sans-serif;
7951     line-height: 1;
7952     border-radius: 8px;
7953     -webkit-font-smoothing: subpixel-antialiased;
7954   }
7955   .MuiButtonBase-root {
7956     color: inherit;
7957     border: 0;
7958     cursor: pointer;
7959     margin: 0;
7960     display: inline-flex;
7961     outline: 0;
7962     padding: 0;
7963     position: relative;
7964     align-items: center;
7965     user-select: none;
7966     border-radius: 0;
7967     vertical-align: middle;
7968     -moz-appearance: none;
7969     justify-content: center;
7970     text-decoration: none;
7971     background-color: transparent;
7972     -webkit-appearance: none;
7973     -webkit-tap-highlight-color: transparent;
7974   }
7975   .MuiIconButton-root {
7976     flex: 0 0 auto;
7977     color: rgba(0, 0, 0, 0.54);
7978     padding: 12px;
7979     overflow: visible;
7980     font-size: 1.5rem;
7981     text-align: center;
7982     transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
7983     border-radius: 50%;
7984   }
7985   .MuiIconButton-label {
7986     width: 100%;
7987     display: flex;
7988     align-items: inherit;
7989     justify-content: inherit;
7990   }
7991   .MuiSvgIcon-root {
7992     fill: currentColor;
7993     width: 1em;
7994     height: 1em;
7995     display: inline-block;
7996     font-size: 1.5rem;
7997     transition: fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
7998     flex-shrink: 0;
7999     user-select: none;
8000   }
8001   .MuiTouchRipple-root {
8002     top: 0;
8003     left: 0;
8004     right: 0;
8005     bottom: 0;
8006     z-index: 0;
8007     overflow: hidden;
8008     position: absolute;
8009     border-radius: inherit;
8010     pointer-events: none;
8011   }
8012   .jss36 {
8013     color: #222222;
8014     font-size: 24px;
8015     font-family: Roboto, Arial, sans-serif;
8016     font-weight: 500;
8017   }
8018   .jss37 {
8019     color: #555555;
8020     padding: 10px 0px 0px;
8021     font-size: 14px;
8022   }
8023   .MuiFormGroup-root {
8024     display: flex;
8025     flex-wrap: wrap;
8026     flex-direction: column;
8027   }
8028   .MuiFormGroup-row {
8029     flex-direction: row;
8030   }
8031   .jss63 {
8032     width: 85%;
8033     margin: 15px auto;
8034     display: flex;
8035     padding: 11px 0px 0px;
8036     justify-content: space-evenly;
8037   }
8038   .MuiFormControlLabel-root {
8039     cursor: pointer;
8040     display: inline-flex;
8041     align-items: center;
8042     margin-left: -11px;
8043     margin-right: 16px;
8044     vertical-align: middle;
8045     -webkit-tap-highlight-color: transparent;
8046   }
8047   .jss70 {
8048     margin: 0;
8049   }
8050   .MuiButtonBase-root {
8051     color: inherit;
8052     border: 0;
8053     cursor: pointer;
8054     margin: 0;
8055     display: inline-flex;
8056     outline: 0;
8057     padding: 0;
8058     position: relative;
8059     align-items: center;
8060     user-select: none;
8061     border-radius: 0;
8062     vertical-align: middle;
8063     -moz-appearance: none;
8064     justify-content: center;
8065     text-decoration: none;
8066     background-color: transparent;
8067     -webkit-appearance: none;
8068     -webkit-tap-highlight-color: transparent;
8069   }
8070   .MuiIconButton-root {
8071     flex: 0 0 auto;
8072     color: rgba(0, 0, 0, 0.54);
8073     padding: 12px;
8074     overflow: visible;
8075     font-size: 1.5rem;
8076     text-align: center;
8077     transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
8078     border-radius: 50%;
8079   }
8080   .MuiIconButton-colorSecondary {
8081     color: #f50057;
8082   }
8083   .jss71 {
8084     padding: 9px;
8085   }
8086   .MuiRadio-root {
8087     color: rgba(0, 0, 0, 0.54);
8088   }
8089   .jss64 {
8090     padding: 2px;
8091   }
8092   .MuiRadio-colorSecondary.Mui-checked {
8093     color: #f50057;
8094   }
8095   .MuiIconButton-label {
8096     width: 100%;
8097     display: flex;
8098     align-items: inherit;
8099     justify-content: inherit;
8100   }
8101   .MuiTypography-root {
8102     margin: 0;
8103   }
8104   .MuiTypography-body1 {
8105     font-size: 18px;
8106     font-family: Roboto,sans-serif;
8107     font-weight: 400;
8108     line-height: 1.5;
8109   }
8110   .location-popup_area-block__sp9Ws {
8111     display: -moz-box;
8112     display: flex;
8113     -moz-box-orient: vertical;
8114     -moz-box-direction: normal;
8115     flex-direction: column;
8116     -moz-box-pack: center;
8117     justify-content: center;
8118     position: relative;
8119     margin: 10px 10% 0;
8120   }
8121   .location-popup_pin-search-box__3l5mJ {
8122     width: 100%;
8123     display: -moz-box;
8124     display: flex;
8125     -moz-box-align: center;
8126     align-items: center;
8127   }
8128   .location-popup_place-icon-city__1XAX5, .location-popup_place-icon__jSG0Q {
8129     position: absolute;
8130     z-index: 999;
8131   }
8132   .location-popup_place-icon__jSG0Q {
8133     color: #ffffff;
8134     padding-left: 8px;
8135   }
8136   .location-popup_place-icon__jSG0Q svg {
8137     width: 18px;
8138     height: 18px;
8139   }
8140   .location-popup_cancel-icon__FHujU {
8141     color: #fff;
8142     right: 10px;
8143     width: 16px;
8144     cursor: pointer;
8145     height: 16px;
8146     display: none;
8147     padding: 5px;
8148     position: absolute;
8149     background: #999;
8150     text-align: center;
8151     border-radius: 50%;
8152   }
8153   .location-popup_pin-search-box__3l5mJ>div>select {
8154 /*     -webkit-box-shadow: 0 0 10px #ffffff;
8155     box-shadow: 0 0 10px #ffffff; */
8156     text-transform: capitalize;
8157     border: 1px solid #ffffff;
8158     color: #ffffff;
8159     width: 100%;
8160     margin: 0;
8161     display: -moz-box;
8162     display: flex;
8163     padding: 0 30px;
8164     -webkit-animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite;
8165     -moz-animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite;
8166     animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite;
8167     font-size: 16px;
8168     border-radius: 4px;
8169     height: 44px;
8170     moz-animation: location-popup_focuses__1I8Gj ease-in-out 1.5s infinite;
8171     webkit-animation: location-popup_focuses__1I8Gj ease-in-out 1.5s infinite;
8172   }
8173   .MuiButtonBase-root {
8174     color: inherit;
8175     border: 0;
8176     cursor: pointer;
8177     margin: 0;
8178     display: inline-flex;
8179     outline: 0;
8180     padding: 0;
8181     position: relative;
8182     align-items: center;
8183     user-select: none;
8184     border-radius: 0;
8185     vertical-align: middle;
8186     -moz-appearance: none;
8187     justify-content: center;
8188     text-decoration: none;
8189     background-color: transparent;
8190     -webkit-appearance: none;
8191     -webkit-tap-highlight-color: transparent;
8192   }
8193   .MuiButton-root {
8194     color: rgba(0, 0, 0, 0.87);
8195     padding: 6px 16px;
8196     font-size: 0.875rem;
8197     min-width: 64px;
8198     box-sizing: border-box;
8199     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;
8200     font-family: Roboto,sans-serif;
8201     font-weight: 500;
8202     line-height: 1.75;
8203     border-radius: 4px;
8204     text-transform: uppercase;
8205   }
8206   .MuiButton-contained {
8207     color: rgba(0, 0, 0, 0.87);
8208     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);
8209     background-color: #e0e0e0;
8210   }
8211   .MuiButtonBase-root.Mui-disabled {
8212     cursor: default;
8213     pointer-events: none;
8214   }
8215   .MuiButton-label {
8216     width: 100%;
8217     display: inherit;
8218     align-items: inherit;
8219     justify-content: inherit;
8220   }
8221   .cartButton_login_content__2j1f7 {
8222     display: -moz-box;
8223     display: flex;
8224     text-align: center;
8225     z-index: 9;
8226     font-size: 18px;
8227     font-weight: 500;
8228     color: #fff;
8229   }
8230   
8231   .jss35 {
8232     top: 5px;
8233     right: 5px;
8234     padding: 4px;
8235     position: absolute;
8236     border-radius: 50%;
8237   }
8238   .jss67 {
8239     cursor: pointer;
8240     font-size: 15px;
8241     line-height: 1.3;
8242     padding-left: 5px;
8243   }
8244   .jss69 {
8245     color: #222222;
8246   }
8247   .jss80 {
8248     color: #fff;
8249     width: 100%;
8250     height: 52px;
8251     padding: 11px 16px;
8252     font-size: 18px;
8253     min-width: 88px;
8254     min-height: 36px;
8255     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;
8256     font-weight: 500;
8257     line-weight: 1em;
8258     border-radius: 4px;
8259     text-transform: uppercase;
8260     background-color: #ff6600;
8261   }
8262   @media (min-width: 991px){
8263     .cartButton_login_content__2j1f7 {
8264         font-weight: 500;
8265     }
8266   }
8267 
8268   @media (max-width: 992px) {
8269     #location-lock-dialog {
8270       width: 100%;
8271       top: auto;
8272       bottom: 0;
8273       padding-left: 0;
8274       padding-right: 0;
8275     }
8276     .MuiFormGroup-row {
8277       display: block
8278     }
8279     .MuiIconButton-label input {
8280       margin: 0;
8281     }
8282   }
8283 </style>
8284 <div role="presentation" class="MuiDialog-root jss34" style="display: none;position: fixed; z-index: 9999; inset: 0px;">
8285   <div class="MuiBackdrop-root" aria-hidden="true" style="opacity: 1; transition: opacity 225ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;"></div>
8286   <div tabindex="0" data-test="sentinelStart"></div>
8287   <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;">
8288     <div class="MuiPaper-root MuiDialog-paper MuiDialog-paperScrollPaper MuiDialog-paperWidthSm MuiPaper-elevation24 MuiPaper-rounded" role="dialog">
8289       <div class="jss31 undefined" id="location-lock-dialog">
8290         <button id="close-popup-delivery" class="MuiButtonBase-root MuiIconButton-root jss35" tabindex="0" type="button" aria-label="close">
8291           <span class="MuiIconButton-label">
8292             <svg class="MuiSvgIcon-root" focusable="false" viewBox="0 0 24 24" aria-hidden="true">
8293               <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>
8294             </svg>
8295           </span>
8296           <span class="MuiTouchRipple-root"></span>
8297         </button>
8298         <div>
8299           <div class="jss36">Select Delivery Location</div>
8300           <div class="jss37">Select a delivery location to see product availability</div>
8301         </div>
8302         <div class="MuiFormGroup-root jss63 MuiFormGroup-row" role="radiogroup">
8303           <label for="jabodetabek" class="MuiFormControlLabel-root jss45">
8304             <span class="MuiButtonBase-root MuiIconButton-root jss46 MuiRadio-root MuiRadio-colorSecondary jss39 jss47 Mui-checked MuiIconButton-colorSecondary" aria-disabled="false">
8305               <span class="MuiIconButton-label">
8306                 <input id="jabodetabek" class="jss49" type="radio" value="Jabodetabek" checked="" name="location">
8307                 <span class="jss41"></span>
8308               </span>
8309               <span class="MuiTouchRipple-root"></span>
8310             </span>
8311             <span class="MuiTypography-root MuiFormControlLabel-label MuiTypography-body1">
8312               <span class="jss67 jss69">Jabodetabek</span>
8313             </span>
8314           </label>
8315           <label for="non-jabodetabek" class="MuiFormControlLabel-root jss45">
8316             <span class="MuiButtonBase-root MuiIconButton-root jss46 MuiRadio-root MuiRadio-colorSecondary jss39 MuiIconButton-colorSecondary" aria-disabled="false">
8317               <span class="MuiIconButton-label">
8318                 <input id="non-jabodetabek" class="jss49" type="radio" value="Outside Jabodetabek" name="location">
8319                 <span class="jss40"></span>
8320               </span>
8321               <span class="MuiTouchRipple-root"></span>
8322             </span>
8323             <span class="MuiTypography-root MuiFormControlLabel-label MuiTypography-body1">
8324               <span class="jss67 jss68">Outside Jabodetabek</span>
8325             </span>
8326           </label>
8327         </div>
8328         <div>
8329           <div class="MuiGrid-root location-popup_area-block__sp9Ws">
8330             <div class="MuiGrid-root location-popup_pin-search-box__3l5mJ false">
8331               <div class="MuiGrid-root location-popup_place-icon__jSG0Q">
8332                 <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>
8333               </div>
8334               <div class="MuiGrid-root location-popup_cancel-icon__FHujU false">
8335                 <i class="material-icons location-popup_clear-pin__s1dRc">close</i>
8336               </div>
8337               <div style="width: 100%;">
8338                 <select id="choose-location" class="form-control">
8339                   <option value="">Choose Location</option>
8340                   <option value="jakarta">Jakarta</option>
8341                   <option value="bogor">Bogor</option>
8342                   <option value="depok">Depok</option>
8343                   <option value="tangerang">Tangerang</option>
8344                   <option value="bekasi">Bekasi</option>
8345                 </select>
8346               </div>
8347             </div>
8348           </div>
8349         </div>
8350         <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="">
8351           <span class="MuiButton-label">
8352             <span class=""></span>
8353             <span id="location-lock-continue-btn" class="cartButton_login_content__2j1f7" style="font-weight: 500;" data-content="">Continue Shopping</span>
8354           </span>
8355         </button>
8356       </div>
8357     </div>
8358   </div>
8359   <div tabindex="0" data-test="sentinelEnd"></div>
8360 </div>
8361 
8362 
8362<script>
8363   const jabodetabek = [
8364     {
8365       "code": "jakarta",
8366       "city": "jakarta",
8367       "zip": []
8368     },
8369     {
8370       "code": "bogor",
8371       "city": "bogor",
8372       "zip": []
8373     },
8374     {
8375       "code": "depok",
8376       "city": "depok",
8377       "zip": []
8378     },
8379     {
8380       "code": "tangerang",
8381       "city": "tangerang",
8382       "zip": []
8383     },
8384     {
8385       "code": "bekasi",
8386       "city": "bekasi",
8387       "zip": []
8388     }
8389   ]
8390   let cityNonJabodetabek = [
8391     
8392
8393     
8394     
8395     "pengiriman_aceh",
8396     
8397     
8398     
8399     
8400     
8401     "pengiriman_ambon",
8402     
8403     
8404     
8405     
8406     
8407     "pengiriman_atambua",
8408     
8409     
8410     
8411     
8412     
8413     "pengiriman_badung",
8414     
8415     
8416     
8417     
8418     
8419     "pengiriman_bali",
8420     
8421     
8422     
8423     
8424     
8425     "pengiriman_balikpapan",
8426     
8427     
8428     
8429     
8430     
8431     "pengiriman_bandar lampung",
8432     
8433     
8434     
8435     
8436     
8437     "pengiriman_bandung",
8438     
8439     
8440     
8441     
8442     
8443     "pengiriman_bandung barat",
8444     
8445     
8446     
8447     
8448     
8449     "pengiriman_banjarmasin",
8450     
8451     
8452     
8453     
8454     
8455     "pengiriman_banyumas",
8456     
8457     
8458     
8459     
8460     
8461     "pengiriman_banyuwangi",
8462     
8463     
8464     
8465     
8466     
8467     "pengiriman_batam",
8468     
8469     
8470     
8471     
8472     
8473     
8474     
8475     
8476     
8477     "pengiriman_biak",
8478     
8479     
8480     
8481     
8482     
8483     "pengiriman_binjai",
8484     
8485     
8486     
8487     
8488     
8489     "pengiriman_blitar",
8490     
8491     
8492     
8493     
8494     
8495     "pengiriman_blora",
8496     
8497     
8498     
8499     
8500     
8501     
8502     
8503     
8504     
8505     "pengiriman_bojonegoro",
8506     
8507     
8508     
8509     
8510     
8511     "pengiriman_boyolali",
8512     
8513     
8514     
8515     
8516     
8517     "pengiriman_bukittinggi",
8518     
8519     
8520     
8521     
8522     
8523     "pengiriman_buleleng",
8524     
8525     
8526     
8527     
8528     
8529     "pengiriman_ciamis",
8530     
8531     
8532     
8533     
8534     
8535     "pengiriman_cianjur",
8536     
8537     
8538     
8539     
8540     
8541     "pengiriman_cibinong",
8542     
8543     
8544     
8545     
8546     
8547     "pengiriman_cikarang",
8548     
8549     
8550     
8551     
8552     
8553     "pengiriman_cikupa",
8554     
8555     
8556     
8557     
8558     
8559     "pengiriman_cilacap",
8560     
8561     
8562     
8563     
8564     
8565     "pengiriman_cileunyi",
8566     
8567     
8568     
8569     
8570     
8571     "pengiriman_cimahi",
8572     
8573     
8574     
8575     
8576     
8577     "pengiriman_cirebon",
8578     
8579     
8580     
8581     
8582     
8583     "pengiriman_ciwidey",
8584     
8585     
8586     
8587     
8588     
8589     "pengiriman_deli serdang",
8590     
8591     
8592     
8593     
8594     
8595     "pengiriman_demak",
8596     
8597     
8598     
8599     
8600     
8601     "pengiriman_denpasar",
8602     
8603     
8604     
8605
8606     
8607     
8608     "pengiriman_garut",
8609     
8610     
8611     
8612     
8613     
8614     "pengiriman_gianyar",
8615     
8616     
8617     
8618     
8619     
8620     "pengiriman_gresik",
8621     
8622     
8623     
8624     
8625     
8626     "pengiriman_gunung kidul",
8627     
8628     
8629     
8630
8631     
8632     
8633     "pengiriman_jambi",
8634     
8635     
8636     
8637     
8638     
8639     "pengiriman_jayapura",
8640     
8641     
8642     
8643     
8644     
8645     "pengiriman_jember",
8646     
8647     
8648     
8649     
8650     
8651     "pengiriman_jepara",
8652     
8653     
8654     
8655     
8656     
8657     "pengiriman_jombang",
8658     
8659     
8660     
8661     
8662     
8663     "pengiriman_karanganyar",
8664     
8665     
8666     
8667     
8668     
8669     "pengiriman_karawang",
8670     
8671     
8672     
8673     
8674     
8675     "pengiriman_karo",
8676     
8677     
8678     
8679     
8680     
8681     "pengiriman_kebumen",
8682     
8683     
8684     
8685     
8686     
8687     "pengiriman_kediri",
8688     
8689     
8690     
8691     
8692     
8693     "pengiriman_keerom",
8694     
8695     
8696     
8697     
8698     
8699     "pengiriman_kendal",
8700     
8701     
8702     
8703     
8704     
8705     "pengiriman_klaten",
8706     
8707     
8708     
8709     
8710     
8711     "pengiriman_kudus",
8712     
8713     
8714     
8715     
8716     
8717     "pengiriman_kupang",
8718     
8719     
8720     
8721     
8722     
8723     "pengiriman_lainnya",
8724     
8725     
8726     
8727     
8728     
8729     "pengiriman_lamongan",
8730     
8731     
8732     
8733     
8734     
8735     "pengiriman_lampung",
8736     
8737     
8738     
8739     
8740     
8741     "pengiriman_lampung barat",
8742     
8743     
8744     
8745     
8746     
8747     "pengiriman_lembang",
8748     
8749     
8750     
8751     
8752     
8753     "pengiriman_lombok",
8754     
8755     
8756     
8757     
8758     
8759     "pengiriman_lumajang",
8760     
8761     
8762     
8763     
8764     
8765     "pengiriman_madiun",
8766     
8767     
8768     
8769     
8770     
8771     "pengiriman_magelang",
8772     
8773     
8774     
8775     
8776     
8777     "pengiriman_majalengka",
8778     
8779     
8780     
8781     
8782     
8783     "pengiriman_makassar",
8784     
8785     
8786     
8787     
8788     
8789     "pengiriman_malang",
8790     
8791     
8792     
8793     
8794     
8795     "pengiriman_manado",
8796     
8797     
8798     
8799     
8800     
8801     "pengiriman_medan",
8802     
8803     
8804     
8805     
8806     
8807     "pengiriman_mengwi",
8808     
8809     
8810     
8811     
8812     
8813     "pengiriman_mojokerto",
8814     
8815     
8816     
8817     
8818     
8819     "pengiriman_nganjuk",
8820     
8821     
8822     
8823     
8824     
8825     "pengiriman_ngawi",
8826     
8827     
8828     
8829     
8830     
8831     "pengiriman_padang",
8832     
8833     
8834     
8835     
8836     
8837     "pengiriman_palembang",
8838     
8839     
8840     
8841     
8842     
8843     "pengiriman_pasuruan",
8844     
8845     
8846     
8847     
8848     
8849     "pengiriman_pati",
8850     
8851     
8852     
8853     
8854     
8855     "pengiriman_pekalongan",
8856     
8857     
8858     
8859     
8860     
8861     "pengiriman_pekanbaru",
8862     
8863     
8864     
8865     
8866     
8867     "pengiriman_pemalang",
8868     
8869     
8870     
8871     
8872     
8873     "pengiriman_ponorogo",
8874     
8875     
8876     
8877     
8878     
8879     "pengiriman_pontianak",
8880     
8881     
8882     
8883     
8884     
8885     "pengiriman_probolinggo",
8886     
8887     
8888     
8889     
8890     
8891     "pengiriman_purbalingga",
8892     
8893     
8894     
8895     
8896     
8897     "pengiriman_purwakarta",
8898     
8899     
8900     
8901     
8902     
8903     "pengiriman_purwokerto",
8904     
8905     
8906     
8907     
8908     
8909     "pengiriman_rembang",
8910     
8911     
8912     
8913     
8914     
8915     "pengiriman_riau",
8916     
8917     
8918     
8919     
8920     
8921     "pengiriman_salatiga",
8922     
8923     
8924     
8925     
8926     
8927     "pengiriman_samarinda",
8928     
8929     
8930     
8931     
8932     
8933     "pengiriman_semarang",
8934     
8935     
8936     
8937     
8938     
8939     "pengiriman_sentani",
8940     
8941     
8942     
8943     
8944     
8945     "pengiriman_serang",
8946     
8947     
8948     
8949     
8950     
8951     "pengiriman_sidoarjo",
8952     
8953     
8954     
8955     
8956     
8957     "pengiriman_singkawang",
8958     
8959     
8960     
8961     
8962     
8963     "pengiriman_sragen",
8964     
8965     
8966     
8967     
8968     
8969     "pengiriman_subang",
8970     
8971     
8972     
8973     
8974     
8975     "pengiriman_sukabumi",
8976     
8977     
8978     
8979     
8980     
8981     "pengiriman_sumbawa",
8982     
8983     
8984     
8985     
8986     
8987     "pengiriman_surabaya",
8988     
8989     
8990     
8991     
8992     
8993     "pengiriman_surakarta solo",
8994     
8995     
8996
8997     
8998     "pengiriman_tasikmalaya",
8999     
9000     
9001     
9002     
9003     
9004     "pengiriman_tegal",
9005     
9006     
9007     
9008     
9009     
9010     "pengiriman_timika",
9011     
9012     
9013     
9014     
9015     
9016     "pengiriman_wamena",
9017     
9018     
9019     
9020     
9021     
9022     "pengiriman_wiyung",
9023     
9024     
9025     
9026     
9027     
9028     "pengiriman_wonokromo",
9029     
9030     
9031     
9032     
9033     
9034     "pengiriman_yogyakarta",
9035 
9036   ]
9037   console.log(cityNonJabodetabek)
9038   let non_jabodetabek = []
9039   for(var i=0;i<cityNonJabodetabek.length;i++) {
9040     const obj = {
9041       "code": cityNonJabodetabek[i].toLowerCase().replace('pengiriman_', '').replace(' ','-'),
9042       "city": cityNonJabodetabek[i].replace('pengiriman_', '').replace(' ','-'),
9043       "zip": []
9044     }
9045     non_jabodetabek.push(obj)
9046   }
9047   let current_location = getCookie("location_delivery")
9048   $("[name=location]").change(function(){
9049     let v = $(this).val()
9050     let option = []
9051     if(v == 'Jabodetabek') {
9052       for(var i=0;i<jabodetabek.length;i++) {
9053         const jabodetabekHtml = `<option value=${jabodetabek[i].city}>${jabodetabek[i].city}</option>`
9054         option.push(jabodetabekHtml)
9055       }
9056       $("#choose-location").html(`<option value="">Choose Location</option>${option}`)
9057     } else {
9058       for(var i=0;i<non_jabodetabek.length;i++) {
9059         const nonjabodetabekHtml = `<option value=${non_jabodetabek[i].city}>${non_jabodetabek[i].city}</option>`
9060         option.push(nonjabodetabekHtml)
9061       }
9062       $("#choose-location").html(`<option value="">Choose Location</option>${option}`)
9063     }
9064   })
9065 
9066   $("#location-lock-submit").click(function(e){
9067     let select = $("#choose-location")
9068     let value = select.val().toLowerCase()
9069     console.log(value)
9070     if(select.val() == "") {
9071       return alert("Choose Your Location")
9072       e.preventDefault()
9073     }
9074     setCookie("location_delivery",value,1000000);
9075     
9076     location.reload();
9077     
9078   })
9079 
9080   $("#close-popup-delivery").click(function(){
9081     $(".MuiDialog-root").hide()
9082     if(!current_location){
9083       setCookie("location_delivery","jakarta",1000000);
9084       $("#loc_delivery_city, #loc_delivery_city_mobile").text("Jakarta")
9085     }
9086   })
9087   $("#loc_delivery, #loc_delivery_mobile").click(function(){
9088     $(".MuiDialog-root").show()
9089   })
9090 
9091   
9092   if(!current_location){
9093     
9094   } else {
9095     $("#loc_delivery_city, #loc_delivery_city_mobile").text(current_location)
9096     console.log(current_location)
9097     $("#choose-location").each(function(){
9098       if(current_location == 'jakarta' || current_location == 'depok' || current_location == 'bogor' || current_location == 'tangerang' || current_location == 'bekasi'){
9099         $("#jabodetabek").trigger("click")
9100       } else {
9101         $("#non-jabodetabek").trigger("click")
9102       }
9103       $("#choose-location").find("option[value="+current_location+"]").attr("selected", "selected")
9104     })
9105   }
9106 
9107   // 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'){
9108   //   $("#timeMalam").attr("disabled", false)
9109   // } else {
9110   //   $("#timeMalam").attr("disabled", true)
9111   // }
9112 
9113   if(current_location && current_location != 'jakarta') {
9114     $("#self-pickup").attr("disabled", true)
9115   }
9116 
9117   function setCookie(name,value,days) {
9118     var expires = "";
9119     if (days) {
9120       var date = new Date();
9121       date.setTime(date.getTime() + (days*24*60*60*1000));
9122       expires = "; expires=" + date.toUTCString();
9123     }
9124     document.cookie = name + "=" + (value || "")  + expires + "; path=/";
9125   }
9126   function getCookie(name) {
9127     var nameEQ = name + "=";
9128     var ca = document.cookie.split(';');
9129     for(var i=0;i < ca.length;i++) {
9130       var c = ca[i];
9131       while (c.charAt(0)==' ') c = c.substring(1,c.length);
9132       if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
9133     }
9134     return null;
9135   }
9136 </script>
9136
9137 <!-- One Tap -->
9138     
9138<script>
9139       console.log("Outerbloom...");
9140     </script>
9140
9141   <div id="shopify-block-ANVEzSUcxTUxZOGpwZ__9703700522657871012" class="shopify-block shopify-app-block">
9142 
9143 
9144 
9145 
9146 
9147 
9148 
9149 
9150 
9151 
9152 
9153 
9154 
9155 
9156 
9157 
9158 
9159 
9160 
9161 
9162 
9163 
9164 
9165 
9166 
9167 
9168 
9169 
9170 
9171 
9172 
9173 
9174 
9175 
9176 
9177 
9178 
9179 
9180 
9181 
9182 
9183 
9184 
9185 
9186 
9187 
9188 <link rel="stylesheet" href="https://cdn1.bitbybit.studio/bitbybit/static/bitChat_widget/widget.css" />
9189 
9189<script src="https://cdn1.bitbybit.studio/bitbybit/static/bitChat_widget/widget.js" defer></script>
9189
9190 
9190<script>
9191   const widgetConfig = {
9192     id: "clz7897za002cz7otleaz0d3d",
9193     showQuickResponse: false,
9194     quickResponsesData: [],
9195     themeColor: "#ffffff",
9196     widgetText: "",
9197     radiusType: "circle",
9198     widgetIconType: "whatsapp",
9199     position: "right",
9200     storeLogo: "",
9201     storeName: "Outerbloom",
9202     storeDescription: "",
9203     size: "small",
9204     showCard: false,
9205     widgetColorType: "solid",
9206     widgetColor1: "#008069",
9207     widgetColor2: "#008069",
9208     social: {
9209       socialOrders: ["instagram","tiktok","facebook","x","youtube","linkedin","email"],
9210       values: {
9211         instagram: {
9212           enabled: false,
9213           value: "",
9214         },
9215         facebook: {
9216           enabled: false,
9217           value: "",
9218         },
9219         email: {
9220           enabled: false,
9221           value: "",
9222         },
9223         x: {
9224           enabled: false,
9225           value: "",
9226         },
9227         tiktok: {
9228           enabled: false,
9229           value: "",
9230         },
9231         linkedin: {
9232           enabled: false,
9233           value: "",
9234         },
9235         youtube: {
9236           enabled: false,
9237           value: "",
9238         },
9239       },
9240     },
9241   };
9242 
9243   function initializeWidget() {
9244     if (typeof BBBWidget !== 'undefined') {
9245       BBBWidget.init(widgetConfig);
9246     } else {
9247       setTimeout(initializeWidget, 100);
9248     }
9249   }
9250 
9251   initializeWidget();</script>
9251
9252 
9253 
9254 </div><div id="shopify-block-ATzRpVTBPU3k1R2pnW__286197278318599166" class="shopify-block shopify-app-block">
9255 
9256 
9257 <div style="position: fixed; bottom: 0; right: 0"></div>
9258 
9259 
9259<script>
9260 console.info("bitlogin extension version: v2.5.7");
9261 
9262 const googleScript = document.createElement("script");
9263 googleScript.setAttribute("src", "https://accounts.google.com/gsi/client");
9264 document.head.append(googleScript);
9265 
9266 const bitLoginBaseUrl = "https://api.bitbybit.studio";
9267 const apiUrl = `${bitLoginBaseUrl}/bitlogin/api`;
9268 
9269 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"}};
9270 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
9270n1.oa2-cs.v1.1cb5f9085a202341f60daf5a7be16c570ccc0b4bd5908b3afd080f34e9b8935d","appleTeamId":null,"applePrivateKey":null,"usePersonalOauth":false,"position":null}];
9271 const redirectUrl = appearance.redirectLink;
9272 
9273 let locationCacheSet = false;
9274 let errorLocation = false;
9275 let oneTapSet = false;
9276 
9277 let bitloginCache = {
9278   appearance: appearance,
9279   config: config
9280 };
9281 
9282 let isInitializing = false;
9283 const queue = [];
9284 
9285 // Add CSS for the popup
9286 const popupStyles = document.createElement('style');
9287 popupStyles.textContent = `
9288   /* Styles for login popup */
9289   .bitlogin-popup-overlay {
9290     position: fixed;
9291     top: 0;
9292     left: 0;
9293     width: 100%;
9294     height: 100%;
9295     background: rgba(0, 0, 0, 0.45);
9296     backdrop-filter: blur(4px);
9297     display: flex;
9298     align-items: center;
9299     justify-content: center;
9300     opacity: 0;
9301     transition: opacity 0.3s ease-in-out;
9302     z-index: 999999;
9303   }
9304   
9305   .bitlogin-popup-overlay.visible {
9306     opacity: 1;
9307   }
9308   
9309   .bitlogin-popup {
9310     background: #FFFFFF;
9311     box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
9312     border-radius: 16px;
9313     width: 100%;
9314     max-width: 560px;
9315     display: flex;
9316     overflow: hidden;
9317     position: relative;
9318     opacity: 0;
9319     transform: translateY(20px) scale(0.98);
9320     transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
9321   }
9322   
9323   .bitlogin-popup.visible {
9324     opacity: 1;
9325     transform: translateY(0) scale(1);
9326   }
9327   
9328   .bitlogin-popup-with-image {
9329     max-width: 640px;
9330   }
9331   
9332   .bitlogin-popup-right-image {
9333     flex-direction: row-reverse;
9334   }
9335   
9336   .bitlogin-popup-image {
9337     object-fit: cover;
9338     width: 50%;
9339     height: auto;
9340   }
9341   
9342   .bitlogin-popup-content {
9343     padding: 32px;
9344     position: relative;
9345     width: 50%;
9346   }
9347   
9348   .bitlogin-popup-close {
9349     position: absolute;
9350     top: 16px;
9351     right: 16px;
9352     background: white;
9353     border: none;
9354     width: 30px;
9355     height: 30px;
9356     display: flex;
9357     align-items: center;
9358     justify-content: center;
9359     cursor: pointer;
9360     transition: background-color 0.2s;
9361     color: inherit;
9362     padding: 0;
9363   }
9364   
9365   .bitlogin-popup-close:hover {
9366     background-color: #e5e5e5;
9367   }
9368   
9369   .bitlogin-popup-buttons {
9370     display: flex;
9371     flex-direction: column;
9372     gap: 12px;
9373     margin-top: 24px;
9374   }
9375   
9376   /* Button styles within popup - override width for popup buttons */
9377   .bitlogin-popup-buttons #google-login,
9378   .bitlogin-popup-buttons #facebook-login,
9379   .bitlogin-popup-buttons #apple-login,
9380   .bitlogin-popup-buttons #whatsapp-login,
9381   .bitlogin-popup-buttons #microsoft-login,
9382   .bitlogin-popup-buttons #twitter-login,
9383   .bitlogin-popup-buttons #amazon-login,
9384   .bitlogin-popup-buttons #instagram-login,
9385   .bitlogin-popup-buttons #magic-link-login,
9386   .bitlogin-popup-buttons #mobile-app-login {
9387     width: 100% !important;
9388     font-family: inherit !important;
9389   }
9390   
9391   .bitlogin-popup-footer {
9392     margin-top: 32px;
9393     text-align: center;
9394     font-size: 14px;
9395     opacity: 0.6;
9396   }
9397   
9398   /* Modern Typography */
9399   .bitlogin-popup h2 {
9400     margin-top: 12px;
9401     font-size: 21px !important;
9402     line-height: 1.2 !important;
9403     font-weight: 700 !important;
9404     letter-spacing: -0.02em !important;
9405     margin-bottom: 16px !important;
9406   }
9407   
9408   .bitlogin-popup-header {
9409     position: relative;
9410     margin-bottom: 24px;
9411   }
9412   
9413   /* Modern gradient accent */
9414   .bitlogin-popup-content > div {
9415     font-size: 16px !important;
9416     line-height: 1.2 !important;
9417     opacity: 0.85 !important;
9418   }
9419   
9420   /* Enhanced button interactions */
9421   .bitlogin-popup-buttons button {
9422     position: relative;
9423     overflow: hidden;
9424   }
9425   
9426   @keyframes ripple {
9427     0% {
9428       transform: scale(0, 0);
9429       opacity: 0.5;
9430     }
9431     100% {
9432       transform: scale(100, 100);
9433       opacity: 0;
9434     }
9435   }
9436   
9437   /* Responsive adjustments */
9438   @media (max-width: 640px) {
9439     .bitlogin-popup {
9440       max-width: 90%;
9441       width: 90%;
9442       margin: 0 16px;
9443     }
9444     
9445     .bitlogin-popup-with-image {
9446       flex-direction: column !important;
9447     }
9448     
9449     .bitlogin-popup-image {
9450       width: 100%;
9451       height: 180px;
9452     }
9453     
9454     .bitlogin-popup-content {
9455       padding: 24px;
9456     }
9457     
9458     .bitlogin-popup h2 {
9459       font-size: 24px !important;
9460     }
9461   }
9462 `;
9463 
9464 document.head.appendChild(popupStyles);
9465 
9466 // Add fonts link for different font options
9467 const fontsLink = document.createElement('link');
9468 fontsLink.rel = 'stylesheet';
9469 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';
9470 document.head.appendChild(fontsLink);
9471 
9472 (async () => {
9473   try {
9474     let host = window.location.host;
9475     if (host === "admin.shopify.com") {
9476       host = `${window.location.pathname.split("/")[2]}.myshopify.com`;
9477     }
9478 
9479     const urlSearchParams = new URLSearchParams(window.location.search);
9480     const checkoutUrl = urlSearchParams.get("checkout_url");
9481 
9482     async function init({ inputRef, index }) {
9483       if (isInitializing) {
9484         queue.push(() => init({ inputRef, index }));
9485         return;
9486       }
9487 
9488       isInitializing = true;
9489 
9490       try {
9491         let bitLoginSectionRoot = document.querySelector(
9492           `.bitlogin-root[data-index="${index}"]`
9493         );
9494 
9495         const formRef = inputRef?.closest(
9496           "form:not([action='/account/recover'])"
9497         );
9498 
9499         if (formRef && !bitLoginSectionRoot) {
9500           await getLocation();
9501 
9502           bitLoginSectionRoot = document.createElement(`div`);
9503 
9504           bitLoginSectionRoot.setAttribute("class", "bitlogin-root");
9505           bitLoginSectionRoot.setAttribute("data-index", `${index}`);
9506 
9507           updateAppearance({
9508             formRef,
9509             rootRef: bitLoginSectionRoot,
9510             host,
9511           });
9512         }
9513       } catch (err) {
9514         console.error(`error while initiating bitlogin extensions`, err);
9515       } finally {
9516         // Release the lock
9517         isInitializing = false;
9518 
9519         // Check if there are pending items in the queue
9520         if (queue.length > 0) {
9521           // Process the next function in the queue
9522           const nextFunction = queue.shift();
9523           nextFunction();
9524         }
9525       }
9526     }
9527 
9528     function initAll() {
9529       return new Promise((resolve, reject) => {
9530         setTimeout(async () => {
9531           const inputRefs = document.querySelectorAll(
9532             'input[name="customer[email]"]'
9533           );
9534 
9535           for (let i = 0; i < inputRefs.length; i++) {
9536             const currentInputRef = inputRefs[i];
9537             const isVisible = isElementVisible(currentInputRef);
9538 
9539             if (isVisible) {
9540               await init({ inputRef: currentInputRef, index: i });
9541             }
9542           }
9543 
9544           resolve("ok");
9545         }, 100);
9546       });
9547     }
9548 
9549     const observer = new MutationObserver((mutationsList) => {
9550       for (let mutation of mutationsList) {
9551         initAll();
9552       }
9553     });
9554 
9555     observer.observe(document.body, {
9556       childList: true,
9557       subtree: true,
9558       attributes: true,
9559     });
9560 
9561     initAll();
9562 
9563     if (appearance.googleOneTap) {
9564       setupOneTap({ host, checkoutUrl });
9565     }
9566 
9567     // Initialize popup
9568     await initPopup(host);
9569   } catch (error) {
9570     console.error("Error initializing BitLogin:", error);
9571   }
9572 })();
9573 
9574 async function initPopup(host) {
9575   // Check if user is already logged in using Liquid checks properly
9576   const isLoggedIn = false || 
9577                     document.querySelector('.customer-logout-link') || 
9578                     document.querySelector('.account-link') || 
9579                     window.location.pathname.includes('/account');
9580   
9581   if (isLoggedIn) {
9582     return; // User is logged in, don't show popup
9583   }
9584 
9585   try {
9586     // Fetch the popup configuration
9587     const popupConfig = await fetch(`${apiUrl}/appearance/popup/domain/${host}`)
9588       .then(res => res.json())
9589       .catch(err => {
9590         console.error('Error fetching popup configuration:', err);
9591         return null;
9592       });
9593 
9594     if (!popupConfig || !popupConfig.enabled) {
9595       return;
9595 // Don't show popup if disabled or config not found
9596     }
9597 
9598     // Create popup after 10 seconds
9599     setTimeout(() => {
9600       // Check if user is still on the page and still not logged in
9601       if (document.visibilityState === 'visible') {
9602         // Additional check in case user logged in during the 10 second wait
9603         const currentlyLoggedIn = false || 
9604                               document.querySelector('.customer-logout-link') || 
9605                               document.querySelector('.account-link');
9606         
9607         if (!currentlyLoggedIn) {
9608           createLoginPopup(popupConfig, host);
9609         }
9610       }
9611     }, 10000);
9612   } catch (error) {
9613     console.error('Error initializing popup:', error);
9614   }
9615 }
9616 
9617 function createLoginPopup(popupConfig, host) {
9618   // Font mapping
9619   const fontFamilyMap = {
9620     system_fonts: 'system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',
9621     montserrat: 'Montserrat, sans-serif',
9622     roboto: 'Roboto, sans-serif',
9623     open_sans: 'Open Sans, sans-serif',
9624     noto_sans: 'Noto Sans, sans-serif',
9625     lato: 'Lato, sans-serif',
9626     poppins: 'Poppins, sans-serif',
9627     quicksand: 'Quicksand, sans-serif',
9628     raleway: 'Raleway, sans-serif',
9629     pt_sans: 'PT Sans, sans-serif',
9630     oswald: 'Oswald, sans-serif',
9631   };
9632 
9633   // Create overlay
9634   const overlay = document.createElement('div');
9635   overlay.className = 'bitlogin-popup-overlay';
9636   
9637   // Create popup container with appropriate styling
9638   const popup = document.createElement('div');
9639   popup.className = 'bitlogin-popup';
9640 
9641   if (popupConfig.layout === 'default') {
9642     popup.style.maxWidth = '400px';
9643   }
9644   
9645   // Function to close the popup
9646   const closePopup = () => {
9647     overlay.classList.remove('visible');
9648     popup.classList.remove('visible');
9649     setTimeout(() => {
9650       if (document.body.contains(overlay)) {
9651         document.body.removeChild(overlay);
9652       }
9653     }, 300);
9654   };
9655   
9656   // Add click handler to the overlay to close when clicking outside
9657   overlay.addEventListener('click', (event) => {
9658     // Close only if clicking directly on the overlay, not its children
9659     if (event.target === overlay) {
9660       closePopup();
9661     }
9662   });
9663   
9664   // Add escape key handler to close popup
9665   document.addEventListener('keydown', (event) => {
9666     if (event.key === 'Escape' && document.body.contains(overlay)) {
9667       closePopup();
9668     }
9669   });
9670 
9671   // Create layout with image if specified
9672   let contentWrapper;
9673   if (popupConfig.layout !== 'default' && popupConfig.popupImage) {
9674     popup.classList.add('bitlogin-popup-with-image');
9675     
9676     if (popupConfig.layout === 'right') {
9677       popup.classList.add('bitlogin-popup-right-image');
9678     }
9679     
9680     // Add image
9681     const image = document.createElement('img');
9682     image.className = 'bitlogin-popup-image';
9683     image.src = popupConfig.popupImage;
9684     image.alt = 'Login';
9685     image.loading = 'lazy';
9686     popup.appendChild(image);
9687     
9688     // Create content container
9689     contentWrapper = document.createElement('div');
9690     contentWrapper.className = 'bitlogin-popup-content';
9691 
9692     if (popupConfig.layout === 'right') {
9693       const closeButton = document.createElement('button');
9694       closeButton.className = 'bitlogin-popup-close';
9695       closeButton.innerHTML = `<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="logoweb.png">
9696         <path d="M13 1L1 13M1 1L13 13" stroke="${popupConfig.fontColor}" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
9697       </svg>`;
9698       closeButton.setAttribute('aria-label', 'Close');
9699       closeButton.onclick = closePopup;
9700   
9701       popup.appendChild(closeButton);
9702     }
9703   } else {
9704     contentWrapper = document.createElement('div');
9705     contentWrapper.className = 'bitlogin-popup-content';
9706     contentWrapper.style.width = '100%';
9707   }
9708 
9709   // Set background style
9710   if (popupConfig.backgroundTheme === 'gradient') {
9711     contentWrapper.style.background = `linear-gradient(135deg, ${popupConfig.backgroundPopupColor}, ${popupConfig.gradientColor})`;
9712   } else {
9713     contentWrapper.style.backgroundColor = popupConfig.backgroundPopupColor;
9714   }
9715 
9716   // Apply font family
9717   contentWrapper.style.setProperty('font-family', fontFamilyMap[popupConfig.font] || fontFamilyMap.system_fonts, 'important');
9718 
9719   if (popupConfig.layout !== 'right') {
9720     const closeButton = document.createElement('button');
9721     closeButton.className = 'bitlogin-popup-close';
9722     closeButton.innerHTML = `<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="logoweb.png">
9723       <path d="M13 1L1 13M1 1L13 13" stroke="${popupConfig.fontColor}" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
9724     </svg>`;
9725     closeButton.setAttribute('aria-label', 'Close');
9726     closeButton.onclick = closePopup;
9727   
9728     contentWrapper.appendChild(closeButton);
9729   }
9730 
9731   // Add heading with subtle animation effect
9732   const header = document.createElement('div');
9733   header.className = 'bitlogin-popup-header';
9734   
9735   const heading = document.createElement('h2');
9736   heading.textContent = popupConfig.headingText || 'Sign in for exclusive benef
9736its';
9737   heading.style.color = popupConfig.fontColor;
9738   header.appendChild(heading);
9739 
9740   // Add body text with improved formatting
9741   const bodyText = document.createElement('div');
9742   bodyText.innerHTML = popupConfig.bodyText || 'Join our community to access exclusive offers and a personalized shopping experience.';
9743   bodyText.style.color = popupConfig.fontColor;
9744   header.appendChild(bodyText);
9745   
9746   contentWrapper.appendChild(header);
9747 
9748   // Create buttons container with modern styling
9749   const buttonsContainer = document.createElement('div');
9750   buttonsContainer.className = 'bitlogin-popup-buttons';
9751   
9752   // Add social buttons
9753   const providerLabels = {
9754     'GOOGLE': 'Continue with Google',
9755     'FACEBOOK': 'Continue with Facebook',
9756     'APPLE': 'Continue with Apple',
9757     'WHATSAPP': 'Continue with WhatsApp',
9758     'MAGIC_LINK': 'Continue with Email',
9759   };
9760 
9761   // Add first login provider button
9762   if (popupConfig.loginProvider1 !== 'NONE') {
9763     const buttonConfig = {
9764       theme: popupConfig.colorScheme || 'match',
9765       customColor: popupConfig.textColor,
9766       format: 'contentFlex',
9767       buttonText: bitloginCache.appearance.buttonList[popupConfig.loginProvider1.toLowerCase()],
9768       hasShadow: popupConfig.hasShadow !== undefined ? popupConfig.hasShadow : true,
9769       style: popupConfig.style || 'rounded',
9770       size: popupConfig.size || 'medium',
9771       colorScheme: popupConfig.colorScheme || 'match',
9772       backgroundColor: popupConfig.backgroundColor || '#3B82F6',
9773       textColor: popupConfig.textColor || '#FFFFFF',
9774       outlineColor: popupConfig.outlineColor || '#3B82F6',
9775       host: host
9776     };
9777     
9778     const button1 = createSocialLoginButton(popupConfig.loginProvider1, buttonConfig);
9779     
9780     // Handle click event - this overrides the default click handler in createSocialLoginButton
9781     button1.onclick = () => {
9782       onClickSocialLogin({ provider: popupConfig.loginProvider1.toLowerCase(), host });
9783       closePopup();
9784     };
9785     
9786     buttonsContainer.appendChild(button1);
9787   }
9788 
9789   // Add second login provider button if enabled
9790   if (popupConfig.loginProvider2 !== 'NONE') {
9791     const buttonConfig = {
9792       theme: popupConfig.colorScheme || 'match',
9793       customColor: popupConfig.textColor,
9794       format: 'contentFlex',
9795       buttonText: bitloginCache.appearance.buttonList[popupConfig.loginProvider2.toLowerCase()],
9796       hasShadow: popupConfig.hasShadow !== undefined ? popupConfig.hasShadow : true,
9797       style: popupConfig.style || 'rounded',
9798       size: popupConfig.size || 'medium',
9799       colorScheme: popupConfig.colorScheme || 'match',
9800       backgroundColor: popupConfig.backgroundColor || '#3B82F6',
9801       textColor: popupConfig.textColor || '#FFFFFF',
9802       outlineColor: popupConfig.outlineColor || '#3B82F6',
9803       host: host
9804     };
9805     
9806     const button2 = createSocialLoginButton(popupConfig.loginProvider2, buttonConfig);
9807     
9808     // Handle click event - this overrides the default click handler in createSocialLoginButton
9809     button2.onclick = () => {
9810       onClickSocialLogin({ provider: popupConfig.loginProvider2.toLowerCase(), host });
9811       closePopup();
9812     };
9813     
9814     buttonsContainer.appendChild(button2);
9815   }
9816 
9817   contentWrapper.appendChild(buttonsContainer);
9818 
9819   // Append content to popup
9820   popup.appendChild(contentWrapper);
9821   
9822   // Append popup to overlay
9823   overlay.appendChild(popup);
9824   
9825   // Append overlay to body
9826   document.body.appendChild(overlay);
9827   
9828   // Trigger animation with slight delay for better perceived performance
9829   setTimeout(() => {
9830     overlay.classList.add('visible');
9831     setTimeout(() => {
9832       popup.classList.add('visible');
9833     }, 50);
9834   }, 10);
9835 }
9836 
9837 window.addEventListener("load", () => {
9838   window.addEventListener("message", (event) => {
9839     const receivedData = event.data;
9840 
9841     if (receivedData.type === "authorize") {
9842       post(
9843         JSON.parse(
9844           JSON.stringify({
9845             "customer[email]": receivedData.email,
9846             "customer[password]": receivedData.password,
9847             form_type: "customer_login",
9848             utf8: "✓",
9849             return_url: redirectUrl,
9850           })
9851         )
9852       );
9853     } else if (receivedData.type === "rejected") {
9854       if (receivedData.reason === "customer_account_disabled") {
9855         showAlert(
9856           "Your account needs to be activated. We've sent you an activation link - please check your email to complete this step."
9857         );
9858       } else if (receivedData.reason === "customer_entry_created_email_not_set") {
9859         showAlert(
9860           "A new account was created but requires an email address. Please update your account with a valid email address to continue."
9861         );
9862       } else if (receivedData.reason === "customer_exist_email_not_set") {
9863         showAlert(
9864           "Your existing account is missing an email address. Please contact support to update your account with a valid email address."
9865         );
9866       }
9867     }
9868 
9869     if (receivedData.type === "customer_authenticated") {
9870       // Dispatch a custom event that merchants can listen for to implement their custom logic
9871       const customerAuthEvent = new CustomEvent('bitlogin:customer_authenticated', {
9872         detail: {
9873           provider: receivedData.provider,
9874           customer: receivedData.customer,
9875           shopifyCustomerCreated: receivedData.shopifyCustomerCreated
9876         }
9877       });
9878       
9879       // Dispatch the event on the window object so merchants can listen for it
9880       window.dispatchEvent(customerAuthEvent);
9881       
9882     }
9883   });
9884 });
9885 
9886 // Reusable functions for social login buttons
9887 function createSocialLoginButton(provider, config = {}) {
9888   const {
9889     theme = 'match',
9890     customColor = null,
9891     format = 'contentFlex',
9892     buttonText = null,
9893     hasShadow = true,
9894     style = 'rounded',
9895     size = 'medium',
9896     colorScheme = 'match',
9897     backgroundColor = '#3B82F6',
9898     textColor = '#FFFFFF',
9899     outlineColor = '#3B82F6',
9900     rootRef = null,
9901     host = null
9902   } = config;
9903   
9904   // Create button element with appropriate ID and attributes
9905   const button = document.createElement('button');
9906   button.id = `${provider.toLowerCase()}-login`;
9907   button.type = 'button';
9908   
9909   // Set the inner SVG based on provider
9910   switch (provider.toUpperCase()) {
9911     case 'GOOGLE':
9912       button.innerHTML = googleLoginIcon(theme, customColor);
9913       break;
9914     case 'FACEBOOK':
9915       button.innerHTML = facebookLoginIcon(theme, customColor);
9916       break;
9917     case 'APPLE':
9918       button.innerHTML = appleLoginIcon(theme, customColor);
9919       break;
9920     case 'WHATSAPP':
9921       button.innerHTML = whatsappLoginIcon(theme, customColor);
9922       break;
9923     case 'MICROSOFT':
9924       button.innerHTML = microsoftLoginIcon(theme, customColor);
9925       break;
9926     case 'TWITTER':
9927       button.innerHTML = twitterLoginIcon(theme, customColor);
9928       break;
9929     case 'AMAZON':
9930       button.innerHTML = amazonLoginIcon(theme, customColor);
9931       break;
9932     case 'INSTAGRAM':
9933       button.innerHTML = instagramLoginIcon(theme, customColor);
9934       break;
9935     case 'MAGIC_LINK':
9936       button.innerHTML = magicLinkLoginIcon(theme, customColor);
9937       break;
9938     case 'MOBILE_APP':
9939       button.innerHTML = mobileAppLoginIcon(theme, customColor);
9940       break;
9941     case 'LINKEDIN':
9942       button.innerHTML = linkedinLoginIcon(theme, customColor);
9943       break;
9944   }
9945   
9946   // Add text if format isn't icon-only and buttonText is provided
9947   if (format !== "wrapperFlexContainerOnlyLogo" && buttonText) {
9948     button.innerHTML += `<p>${buttonText}</p>`;
9949   }
9950   
9951   // Apply styling
9952   // Shadow
9953   if (hasShadow) {
9954     const shadowProperties = `0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)`;
9955     button.style["box-shadow"] = shadowProperties;
9956   }
9957   
9958   // Border radius
9959   const radiusProperties =
9960     style === "rounded"
9961       ? "8px"
9962       : style === "square"
9963       ? "0px"
9964       : style === "fullRounded"
9965       ? format === "wrapperFlexContainerOnlyLogo"
9966         ? "50%"
9967         : "50px"
9968       : undefined;
9969   button.style["border-radius"] = radiusProperties;
9970   
9971   // Size
9972   const sizeProperties =
9973     size === "medium"
9974       ? "12px"
9975       : size === "small"
9976       ? "8px"
9977       : size === "large"
9978       ? "16px"
9979       : "8px";
9980 
9981   button.style["padding-block"] = sizeProperties;
9982 
9983   // Format styling
9984   if (format) {
9985     if (
9986       format === "contentFlexReverse" ||
9987       format === "contentFlexCenterReverse"
9988     ) {
9989       const flexDir = `row-reverse`;
9990       button.style["flex-direction"] = flexDir;
9991     }
9992     
9993     if (
9994       format === "contentFlexCenter" ||
9995       format === "contentFlexCenterReverse"
9996     ) {
9997       const justifyContent = `center`;
9998       button.style["justify-content"] = justifyContent;
9999     } else if (
10000       format === "contentFlex" ||
10001       format === "contentFlexReverse"
10002     ) {
10003       const buttonTextElement = button.querySelector("p");
10004       if (buttonTextElement) {
10005         buttonTextElement.style["flex-grow"] = 1;
10006         buttonTextElement.style["text-align"] = "center";
10007       }
10008     }
10009 
10010     if (format === "wrapperFlexContainerOnlyLogo" && rootRef) {
10011       rootRef.style["flex-direction"] = "row";
10012       rootRef.style["gap"] = "8px";
10013       rootRef.style["display"] = "flex";
10014       rootRef.style["flex-wrap"] = "wrap";
10015 
10016       const sizeMapping = {
10017         small: "52px",
10018         medium: "62px",
10019         large: "72px",
10020       };
10021       const buttonSize = sizeMapping[size] || "52px";
10022 
10023       button.style["margin"] = 0;
10024       button.style["width"] = buttonSize;
10025       button.style["height"] = buttonSize;
10026       button.style["display"] = "flex";
10027       button.style["align-items"] = "center";
10028       button.style["justify-content"] = "center";
10029 
10030       const svgElement = button.querySelector("svg");
10031       if (svgElement) {
10032         svgElement.style["flex"] = "none";
10033       }
10034     }
10035   }
10036 
10037   // Color scheme styling
10038   if (colorScheme === "black") {
10039     button.classList.add("scheme-black");
10040   } else if (colorScheme === "white") {
10041     button.classList.add("scheme-white");
10042   } else if (colorScheme === "custom") {
10043     button.style["background-color"] = backgroundColor;
10044     button.style["color"] = textColor;
10045     button.style["border-color"] = outlineColor;
10046 
10047     const darkenColor = (color, percentage) => {
10048       const value = parseInt(color.slice(1), 16);
10049       const r = Math.max(0, ((value >> 16) & 0xff) - (0xff * percentage));
10050       const g = Math.max(0, ((value >> 8) & 0xff) - (0xff * percentage));
10051       const b = Math.max(0, (value & 0xff) - (0xff * percentage));
10052       return `rgb(${Math.round(r)}, ${Math.round(g)}, ${Math.round(b)})`;
10053     };
10054 
10055     button.addEventListener("mouseover", () => {
10056       button.style["background-color"] = darkenColor(backgroundColor, 0.2);
10057     });
10058     button.addEventListener("mouseout", () => {
10059       button.style["background-color"] = backgroundColor;
10060     });
10061   } else if (colorScheme === "match") {
10062     button.classList.add("scheme-match");
10063   } else if (colorScheme === "matchOutline") {
10064     button.classList.add("scheme-match-outline");
10065   }
10066   
10067   // Add click event listener if host is provided
10068   if (host) {
10069     button.addEventListener("click", () => 
10070       onClickSocialLogin({ provider: provider.toLowerCase(), host })
10071     );
10072   }
10073   
10074   return button;
10075 }
10076 
10077 function setupSocialLoginButtons(config, rootRef, data, host) {
10078   // Clear any existing content
10079   rootRef.innerHTML = '';
10080 
10081   const sortedEnabledProviders = config
10082     .filter(c => c.enabledWeb)
10083     .sort((a, b) => a.position - b.position);
10084 
10085   sortedEnabledProviders.forEach(provider => {
10086     const key = provider.provider;
10087     const lowerKey = key.toLowerCase();
10088 
10089     const buttonText = data.format !== "wrapperFlexContainerOnlyLogo"
10090       ? (lowerKey === 'twitter'
10091           ? data.buttonList.twitter.replace('Twitter', 'X')
10092           : data.buttonList[lowerKey])
10093       : null;
10094 
10095     const button = createSocialLoginButton(key, {
10096       theme: data.colorScheme || 'match',
10097       customColor: data.textColor,
10098       format: data.format,
10099       buttonText: buttonText,
10100       hasShadow: data.hasShadow !== undefined ? data.hasShadow : true,
10101       style: data.style,
10102       size: data.size,
10103       colorScheme: data.colorScheme,
10104       backgroundColor: data.backgroundColor,
10105       textColor: data.textColor,
10106       outlineColor: data.outlineColor,
10107       rootRef: rootRef,
10108       host: host
10109     });
10110 
10111     rootRef.appendChild(button);
10112   });
10113 
10114   return rootRef;
10115 }
10116 
10117 function updateAppearance({ formRef, rootRef, host }) {
10118   if (!formRef) return;
10119 
10120   const data = bitloginCache.appearance || {
10121     style: "square",
10122     hasShadow: false,
10123     colorScheme: "match",
10124     backgroundColor: "#FFFFFF",
10125     outlineColor: "#000000",
10126     textColor: "#000000",
10127     position: "bottom",
10128     hideDivider: "false",
10129     dividerText: "OR",
10130     size: "small",
10131     format: "contentFlex",
10132     language: "en",
10133     buttonText: "Continue with",
10134     redirectLink: "/account",
10135     googleOneTap: true,
10136     googleOneTapBanner: true,
10137     customerTag: "bitLogin",
10138     redirectOneTapDesktop: null,
10139     redirectOneTapMobile: null,
10140     buttonList: {
10141       google: "Continue with Google",
10142       facebook: "Continue with Facebook",
10143       apple: "Continue with Apple",
10144       whatsapp: "Continue with WhatsApp",
10145       microsoft: "Continue with Microsoft",
10146       twitter: "Continue with X",
10147       amazon: "Continue with Amazon",
10148       instagram: "Continue with Instagram",
10149       magic_link: "Continue with Magic Link",
10150       mobile_app: "Continue with Mobile App",
10151       linkedin: "Continue with LinkedIn",
10152     },
10153   };
10154 
10155   // Use the new setupSocialLoginButtons function to create and configure all buttons
10156   setupSocialLoginButtons(bitloginCache.config, rootRef, data, host);
10157 
10158   let divider;
10159 
10160   if (!data.hideDivider) {
10161     divider = document.createElement("div");
10162     const dividerStyle = "text-align:center;margin-block:16px";
10163     divider.setAttribute("style", dividerStyle);
10164     divider.innerHTML = data.dividerText;
10165   }
10166 
10167   if (data.position === "bottom") {
10168     if (divider) {
10169       formRef.appendChild(divider);
10170     }
10171     formRef.appendChild(rootRef);
10172   } else if (data.position === "top") {
10173     if (divider) {
10174       formRef.prepend(divider);
10175     }
10176     formRef.prepend(rootRef);
10177   }
10178 }
10179 
10180 
10181 async function onClickSocialLogin({ provider, host }) {
10182   const rand = Math.random().toString();
10183 
10184   const locationQueryString = bitloginCache.location
10185     ? `&${objectToQueryString(bitloginCache.location)}`
10186     : "";
10187 
10188   const width = 800;
10189   const height = 600;
10190   const left = (window.screen.width / 2) - (width / 2);
10191   const top = (window.screen.height / 2) - (height / 2) - 50;
10192 
10193   if(provider === 'whatsapp') {
10194     window.open(
10195       `/apps/bitlogin/whatsapp${locationQueryString ? `?${locationQueryString}` : ''}`,
10196       "mywindow",
10197       `menubar=1,resizable=1,width=${width},height=${height},top=${top},left=${left}`
10198     );
10199   } else {
10200     window.open(
10201       `${apiUrl}/login/${provider}?referrerId=${rand}&shop=${host}${locationQueryString}`,
10202       "mywindow",
10203       `menubar=1,resizable=1,width=${width},height=${height},top=${top},left=${left}`
10204     );
10205   }
10206 }
10207 
10208 function objectToQueryString(obj) {
10209   return Object.keys(obj)
10210     .map((key) => {
10211       return encodeURIComponent(key) + "=" + encodeURIComponent(obj[key]);
10212     })
10213     .join("&");
10214 }
10215 
10216 async function getLocation() {
10217   if (locationCacheSet) return;
10218 
10219   try {
10220     const response = await fetch("https://ipapi.co/json/");
10221 
10222     if (!response.ok) {
10223       console.error(`error retrieving location...`, response.status);
10224       errorLocation = true;
10225     } else {
10226       const data = await response.json();
10227 
10228       const { city, region, country_name, country_code } = data;
10229 
10230       const formattedLocationData = {
10231         city,
10232         region,
10233         country_name,
10234         country_code,
10235       };
10236 
10237       bitloginCache.location = formattedLocationData;
10238       locationCacheSet = true;
10239       errorLocation = false;
10240     }
10241   } catch (err) {
10242     console.error(`error fetching location`, err);
10243     errorLocation = true;
10244   }
10245 }
10246 
10247 function post(params) {
10248   // The rest of this code assumes you are not using a library.
10249   // It can be made less verbose if you use one.
10250   const form = document.createElement("form");
10251   form.method = "post";
10252   form.action = `/account/login`;
10253   form.acceptCharset = "UTF-8";
10254   form.setAttribute("data-login-with-shop-sign-in", "true");
10255   form.setAttribute("novalidate", "novalidate");
10256 
10257   for (const key in params) {
10258     if (params.hasOwnProperty(key)) {
10259       const hiddenField = document.createElement("input");
10260       hiddenField.type = "hidden";
10261       hiddenField.name = key;
10262       hiddenField.value = params[key];
10263 
10264       form.appendChild(hiddenField);
10265     }
10266   }
10267 
10268   document.body.appendChild(form);
10269   form.submit();
10270 }
10271 
10272 async function setupOneTap({ host, checkoutUrl }) {
10273   if (oneTapSet) return;
10274 
10275   const redirectOneTapDesktop = JSON.parse(JSON.stringify(bitloginCache.appearance.redirectOneTapDesktop || '[]'));
10276   const redirectOneTapMobile = JSON.parse(JSON.stringify(bitloginCache.appearance.redirectOneTapMobile || '[]'));
10277 
10278   const isMobile = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent);
10279   const redirectList = JSON.parse(isMobile ? redirectOneTapMobile : redirectOneTapDesktop);
10280 
10281   const currentPath = window.location.pathname.toLowerCase();
10282   const currentUrl = window.location.href.toLowerCase();
10283 
10284   const shouldHideGoogleOneTap = redirectList.some(({ value }) => {
10285     switch (value) {
10286       case 'home':
10287         return currentPath === '/';
10288       case 'product':
10289         return currentPath.startsWith('/products/');
10290       case 'collections':
10291         return currentPath.startsWith('/collections');
10292       case 'cart':
10293         return currentPath === '/cart';
10294       case 'checkout':
10295         return currentPath.startsWith('/checkouts') && !currentPath.includes('thank_you');
10296       case 'thank_you':
10297         return currentPath.includes('/thank_you');
10298       case 'account':
10299         return currentPath.startsWith('/account');
10300       case 'pages':
10301         return currentPath.startsWith('/pages');
10302       case 'blogs':
10303         return currentPath === '/blogs' || currentPath === '/blogs/news';
10304       case 'blog_post':
10305         return currentPath.startsWith('/blogs/') && currentPath.split('/').length > 3;
10306       default:
10307         return false;
10308     }
10309   });
10310 
10311   if (shouldHideGoogleOneTap) return;
10312 
10313   const oneTapClientId = bitloginCache.config.find(
10314     (config) => config.provider === "GOOGLE"
10315   )?.clientId;
10316 
10317   const isLoggedIn = false;
10318 
10319   if (bitloginCache.appearance.googleOneTap && oneTapClientId && !isLoggedIn) {
10320     const googleOneTapButton = document.createElement("div");
10321     googleOneTapButton.setAttribute("id", "g_id_onload");
10322     googleOneTapButton.setAttribute("data-client_id", oneTapClientId);
10323     googleOneTapButton.setAttribute("data-context", "signin");
10324     googleOneTapButton.setAttribute(
10325       "data-callback",
10326       "handleGoogleOneTapResponse"
10327     );
10328     googleOneTapButton.setAttribute("data-itp_support", "true");
10329 
10330     const googleOneTapScript = document.createElement("script");
10331 
10332     googleOneTapScript.innerHTML += `
10333           function handleGoogleOneTapResponse(response) {
10334               if (response.credential) {
10335                   const idToken = response.credential;
10336                   fetch('${bitLoginBaseUrl}/bitlogin/api/login/google-one-tap', {
10337                       method: 'POST',
10338                       headers: { 'Content-Type': 'application/json' },
10339                       body: JSON.stringify({ idToken, shop: "${host}", ...bitloginCache.location })
10340                   }).then(response => {
10341                       response.json().then((data) => {
10342                         post(
10343                           JSON.parse(
10344                             JSON.stringify({
10345                               "customer[email]": data.email,
10346                               "customer[password]": data.password,
10347                               form_type: "customer_login",
10348                               utf8: "✓",
10349                               return_url: redirectUrl,
10350                             })
10351                           )
10352                         );
10353                       });  
10354                   }).catch(error => {
10355                       console.error('Error occurred:', error);
10356                   });
10357               } else {
10358                   console.error('No credential available');
10359               }
10360           }
10361        `;
10362 
10363     document.body.append(googleOneTapButton);
10364     document.body.append(googleOneTapScript);
10365   }
10366 
10367   oneTapSet = true;
10368 }
10369 
10370 const googleLoginIcon = (
10371   theme,
10372   customColor
10373 ) => `
10374 ${
10375   theme === "match" || theme === "matchOutline" || theme === "custom"
10376     ? `<svg
10377     xmlns='logoweb.png'
10378     xmlns:v='https://vecta.io/nano'
10379     width='24'
10380     height='24'
10381     viewBox='0 0 186.69 190.5'
10382   >
10383     <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="${
10384       theme === "custom" ? customColor : "#4285f4"
10385     }"/><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="${
10386         theme === "custom" ? customColor : "#34a853"
10387       }"/><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="${
10388         theme === "custom" ? customColor : "#fbbc05"
10389       }"/><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="${
10390         theme === "custom" ? customColor : "#ea4335"
10391       }" clip-path="none" mask="none"/></g>
10392   </svg>`
10393     : `<svg xmlns="logoweb.png" width="25" height="25" viewBox="0 0 25 25" fill="none">
10394 <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="${
10395         theme !== "black" ? "black" : "white"
10396       }"/>
10397 <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="${
10398         theme !== "black" ? "black" : "white"
10399       }"/>
10400 <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="${
10401         theme !== "black" ? "black" : "white"
10402       }"/>
10403 <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="${
10404         theme !== "black" ? "black" : "white"
10405       }"/>
10406 </svg>`
10407 }`;
10408 
10409 const appleLoginIcon = (
10410   theme,
10411   customColor
10412 ) => `<svg width="24" height="24" viewBox="0 0 19 24" fill="none" xmlns="logoweb.png">
10413 <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="${
10414   theme === "custom"
10415     ? customColor
10416     : theme === "match" || theme === "black"
10417     ? "white"
10418     : "black"
10419 }"/>
10420 </svg>`;
10421 
10422 const facebookLoginIcon = (
10423   theme,
10424   customColor
10425 ) => `
10426 ${
10427   theme === "match" || theme === "matchOutline" || theme === "custom"
10428     ? `<svg xmlns="logoweb.png" width="24" height="25" viewBox="0 0 24 25" fill="none">
10429     <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="${
10430       theme === "custom" ? customColor : theme === "match" ? "white" : "#1977F3"
10431     }"/>
10432     <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="${
10433       theme === "match" ? "#1778f2" : "transparent"
10434     }"/>
10435     </svg>`
10436     : `<svg xmlns="logoweb.png" width="24" height="25" viewBox="0 0 24 25" fill="none">
10437 <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="${
10438         theme === "black" ? "white" : "black"
10439       }"/>
10440 <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="${
10441         theme === "black" ? "black" : "white"
10442       }"/>
10443 </svg>`
10444 }`;
10445 
10446 const whatsappLoginIcon = (
10447   theme,
10448   customColor
10449 ) => `<svg
10450   viewBox="0 0 24 24"
10451   fill="none"
10452   width="24"
10453   height="25"
10454   xmlns="logoweb.png"
10455 >
10456   <g id="SVGRepo_bgCarrier" stroke-width="0"></g>
10457   <g
10458     id="SVGRepo_tracerCarrier"
10459     stroke-linecap="round"
10460     stroke-linejoin="round"
10461   ></g>
10462   <g id="SVGRepo_iconCarrier">
10463     <path
10464       fill-rule="evenodd"
10465       clip-rule="evenodd"
10466       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"
10467       fill="${
10468         theme === "match" || theme === "black"
10469           ? "#ffffff"
10470           : theme === "white"
10471           ? "#000000"
10472           : theme === "matchOutline"
10473           ? "#25d366"
10474           : customColor
10475       }"
10476     ></path>
10477   </g>
10478 </svg>`;
10479 
10480 const microsoftLoginIcon = (
10481   theme,
10482   customColor
10483 ) => `<svg
10484 xmlns="logoweb.png"
10485 width="25"
10486 height="25"
10487 viewBox="0 0 48 48">
10488 <path fill="${
10489   theme === "match" || theme == "matchOutline"
10490     ? "#ff5722"
10491     : theme === "black"
10492     ? "#ffffff"
10493     : theme === "white"
10494     ? "#000000"
10495     : customColor
10496 }" d="M6 6H22V22H6z" transform="rotate(-180 14 14)"></path>
10497 <path
10498   fill="${
10499     theme === "match" || theme == "matchOutline"
10500       ? "#4caf50"
10501       : theme === "black"
10502       ? "#ffffff"
10503       : theme === "white"
10504       ? "#000000"
10505       : customColor
10506   }"
10507   d="M26 6H42V22H26z"
10508   transform="rotate(-180 34 14)"></path>
10509 <path
10510   fill="${
10511     theme === "match" || theme == "matchOutline"
10512       ? "#ffc107"
10513       : theme === "black"
10514       ? "#ffffff"
10515       : theme === "white"
10516       ? "#000000"
10517       : customColor
10518   }"
10519   d="M26 26H42V42H26z"
10520   transform="rotate(-180 34 34)"></path>
10521 <path fill="${
10522   theme === "match" || theme == "matchOutline"
10523     ? "#03a9f4"
10524     : theme === "black"
10525     ? "#ffffff"
10526     : theme === "white"
10527     ? "#000000"
10528     : customColor
10529 }" d="M6 26H22V42H6z" transform="rotate(-180 14 34)"></path>
10530 </svg>`;
10531 
10532 const twitterLoginIcon = (
10533   theme,
10534   customColor
10535 ) => `<svg
10536 xmlns="logoweb.png"
10537 width="25"
10538 height="25"
10539 viewBox="0 0 48 48">
10540 <polygon fill="${
10541   theme === "match" || theme === "black"
10542     ? "#ffffff"
10543     : theme === "matchOutline" || theme === "white"
10544     ? "#000000"
10545     : customColor
10546 }" points="41,6 9.929,42 6.215,42 37.287,6"></polygon>
10547 <polygon
10548   fill="${
10549     theme === "match" || theme === "black"
10550       ? "#000000"
10551       : theme === "matchOutline" || theme === "white"
10552       ? "#ffffff"
10553       : customColor
10554   }"
10555   fill-rule="evenodd"
10556   points="31.143,41 7.82,7 16.777,7 40.1,41"
10557   clip-rule="evenodd"></polygon>
10558 <path
10559   fill="${
10560     theme === "match" || theme === "black"
10561       ? "#ffffff"
10562       : theme === "matchOutline" || theme === "white"
10563       ? "#000000"
10564       : customColor
10565   }"
10566   d="M15.724,9l20.578,30h-4.106L11.618,9H15.724 M17.304,6H5.922l24.694,36h11.382L17.304,6L17.304,6z"></path>
10567 </svg>`;
10568 
10569 const amazonLoginIcon = (theme, customColor) => `
10570  <svg
10571       xmlns="logoweb.png"
10572       x="0px"
10573       y="0px"
10574       width="25"
10575       height="25"
10576       viewBox="0 0 50 50"
10577     >
10578       <path
10579         fill="${
10580           theme === "black"
10581             ? "#ffffff"
10582             : theme === "matchOutline"
10583             ? "#FF9900"
10584             : theme === "white" || theme === "match"
10585             ? "#000000"
10586             : customColor
10587         }"
10588         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"
10589       ></path>
10590     </svg>`;
10591 
10592 const instagramLoginIcon= (theme, customColor) => `
10593     <svg
10594       width="25"
10595       height="25"
10596       viewBox="0 0 25 24"
10597       fill="none"
10598       xmlns="logoweb.png">
10599       <path
10600         fill-rule="evenodd"
10601         clip-rule="evenodd"
10602         d="M10.5 0C7.784 0 7.444 0.0119999 6.377 0.0599999C5.313 0.109 4.586 0.278 3.95 0.525C3.28247 0.775816 2.67773 1.16931 2.178 1.678C1.66931 2.17773 1.27582 2.78247 1.025 3.45C0.778 4.086 0.609 4.813 0.56 5.877C0.511 6.944 0.5 7.284 0.5 10C0.5 12.716 0.511 13.056 0.56 14.123C0.609 15.187 0.778 15.914 1.025 16.55C1.27582 17.2175 1.66931 17.8223 2.178 18.322C2.67773 18.8307 3.28247 19.2242 3.95 19.475C4.586 19.722 5.313 19.891 6.377 19.94C7.444 19.988 7.784 20 10.5 20C13.216 20 13.556 19.988 14.623 19.94C15.687 19.891 16.414 19.722 17.05 19.475C17.7175 19.2242 18.3223 18.8307 18.822 18.322C19.3307 17.8223 19.7242 17.2175 19.975 16.55C20.222 15.914 20.391 15.187 20.44 14.123C20.488 13.056 20.5 12.716 20.5 10C20.5 7.284 20.488 6.944 20.44 5.877C20.391 4.813 20.222 4.086 19.975 3.45C19.7242 2.78247 19.3307 2.17773 18.822 1.678C18.3223 1.16931 17.7175 0.775816 17.05 0.525C16.414 0.278 15.687 0.109 14.623 0.0599999C13.556 0.0119999 13.216 0 10.5 0ZM10.5 1.802C13.17 1.802 13.486 1.812 14.54 1.86C15.516 1.905 16.045 2.067 16.398 2.204C16.864 2.386 17.198 2.603 17.548 2.952C17.898 3.302 18.114 3.636 18.296 4.102C18.432 4.455 18.596 4.984 18.64 5.959C18.688 7.014 18.698 7.329 18.698 10C18.698 12.67 18.688 12.986 18.64 14.04C18.595 15.016 18.432 15.545 18.296 15.898C18.1357 16.3324 17.8801 16.7253 17.548 17.048C17.198 17.398 16.864 17.614 16.398 17.796C16.045 17.932 15.516 18.096 14.541 18.14C13.487 18.188 13.171 18.198 10.5 18.198C7.83 18.198 7.513 18.188 6.46 18.14C5.484 18.095 4.955 17.932 4.602 17.796C4.16762 17.6357 3.77466 17.3801 3.452 17.048C3.11991 16.7253 2.86432 16.3324 2.704 15.898C2.567 15.545 2.404 15.016 2.36 14.041C2.312 12.986 2.302 12.671 2.302 10C2.302 7.33 2.312 7.014 2.36 5.96C2.405 4.984 2.567 4.455 2.704 4.102C2.886 3.636 3.103 3.302 3.452 2.952C3.802 2.602 4.136 2.386 4.602 2.204C4.955 2.067 5.484 1.904 6.459 1.86C7.514 1.812 7.829 1.802 10.5 1.802ZM10.5 13.333C9.61603 13.333 8.76827 12.9818 8.14321 12.3568C7.51815 11.7317 7.167 10.884 7.167 10C7.167 9.11603 7.51815 8.26827 8.14321 7.
1060264321C8.76827 7.01815 9.61603 6.667 10.5 6.667C11.384 6.667 12.2317 7.01815 12.8568 7.64321C13.4818 8.26827 13.833 9.11603 13.833 10C13.833 10.884 13.4818 11.7317 12.8568 12.3568C12.2317 12.9818 11.384 13.333 10.5 13.333ZM10.5 4.865C9.82566 4.865 9.15793 4.99782 8.53492 5.25588C7.91191 5.51394 7.34584 5.89218 6.86901 6.36901C6.39218 6.84584 6.01394 7.41191 5.75588 8.03492C5.49782 8.65793 5.365 9.32566 5.365 10C5.365 10.6743 5.49782 11.3421 5.75588 11.9651C6.01394 12.5881 6.39218 13.1542 6.86901 13.631C7.34584 14.1078 7.91191 14.4861 8.53492 14.7441C9.15793 15.0022 9.82566 15.135 10.5 15.135C11.8619 15.135 13.168 14.594 14.131 13.631C15.094 12.668 15.635 11.3619 15.635 10C15.635 8.63811 15.094 7.33201 14.131 6.36901C13.168 5.40601 11.8619 4.865 10.5 4.865ZM17.038 4.662C17.038 4.81959 17.007 4.97563 16.9467 5.12122C16.8863 5.26681 16.798 5.3991 16.6865 5.51053C16.5751 5.62196 16.4428 5.71035 16.2972 5.77066C16.1516 5.83096 15.9956 5.862 15.838 5.862C15.6804 5.862 15.5244 5.83096 15.3788 5.77066C15.2332 5.71035 15.1009 5.62196 14.9895 5.51053C14.878 5.3991 14.7897 5.26681 14.7293 5.12122C14.669 4.97563 14.638 4.81959 14.638 4.662C14.638 4.34374 14.7644 4.03852 14.9895 3.81347C15.2145 3.58843 15.5197 3.462 15.838 3.462C16.1563 3.462 16.4615 3.58843 16.6865 3.81347C16.9116 4.03852 17.038 4.34374 17.038 4.662Z"
10603         fill="url(#paint0_radial_378_3535)" />
10604       <path
10605         fill-rule="evenodd"
10606         clip-rule="evenodd"
10607         d="M10.5 0C7.784 0 7.444 0.0119999 6.377 0.0599999C5.313 0.109 4.586 0.278 3.95 0.525C3.28247 0.775816 2.67773 1.16931 2.178 1.678C1.66931 2.17773 1.27582 2.78247 1.025 3.45C0.778 4.086 0.609 4.813 0.56 5.877C0.511 6.944 0.5 7.284 0.5 10C0.5 12.716 0.511 13.056 0.56 14.123C0.609 15.187 0.778 15.914 1.025 16.55C1.27582 17.2175 1.66931 17.8223 2.178 18.322C2.67773 18.8307 3.28247 19.2242 3.95 19.475C4.586 19.722 5.313 19.891 6.377 19.94C7.444 19.988 7.784 20 10.5 20C13.216 20 13.556 19.988 14.623 19.94C15.687 19.891 16.414 19.722 17.05 19.475C17.7175 19.2242 18.3223 18.8307 18.822 18.322C19.3307 17.8223 19.7242 17.2175 19.975 16.55C20.222 15.914 20.391 15.187 20.44 14.123C20.488 13.056 20.5 12.716 20.5 10C20.5 7.284 20.488 6.944 20.44 5.877C20.391 4.813 20.222 4.086 19.975 3.45C19.7242 2.78247 19.3307 2.17773 18.822 1.678C18.3223 1.16931 17.7175 0.775816 17.05 0.525C16.414 0.278 15.687 0.109 14.623 0.0599999C13.556 0.0119999 13.216 0 10.5 0ZM10.5 1.802C13.17 1.802 13.486 1.812 14.54 1.86C15.516 1.905 16.045 2.067 16.398 2.204C16.864 2.386 17.198 2.603 17.548 2.952C17.898 3.302 18.114 3.636 18.296 4.102C18.432 4.455 18.596 4.984 18.64 5.959C18.688 7.014 18.698 7.329 18.698 10C18.698 12.67 18.688 12.986 18.64 14.04C18.595 15.016 18.432 15.545 18.296 15.898C18.1357 16.3324 17.8801 16.7253 17.548 17.048C17.198 17.398 16.864 17.614 16.398 17.796C16.045 17.932 15.516 18.096 14.541 18.14C13.487 18.188 13.171 18.198 10.5 18.198C7.83 18.198 7.513 18.188 6.46 18.14C5.484 18.095 4.955 17.932 4.602 17.796C4.16762 17.6357 3.77466 17.3801 3.452 17.048C3.11991 16.7253 2.86432 16.3324 2.704 15.898C2.567 15.545 2.404 15.016 2.36 14.041C2.312 12.986 2.302 12.671 2.302 10C2.302 7.33 2.312 7.014 2.36 5.96C2.405 4.984 2.567 4.455 2.704 4.102C2.886 3.636 3.103 3.302 3.452 2.952C3.802 2.602 4.136 2.386 4.602 2.204C4.955 2.067 5.484 1.904 6.459 1.86C7.514 1.812 7.829 1.802 10.5 1.802ZM10.5 13.333C9.61603 13.333 8.76827 12.9818 8.14321 12.3568C7.51815 11.7317 7.167 10.884 7.167 10C7.167 9.11603 7.51815 8.26827 8.14321 7.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"
10608         fill="url(#paint0_radial_378_3535)" />
10609       <path
10610         fill-rule="evenodd"
10611         clip-rule="evenodd"
10612         d="M10.5 0C7.784 0 7.444 0.0119999 6.377 0.0599999C5.313 0.109 4.586 0.278 3.95 0.525C3.28247 0.775816 2.67773 1.16931 2.178 1.678C1.66931 2.17773 1.27582 2.78247 1.025 3.45C0.778 4.086 0.609 4.813 0.56 5.877C0.511 6.944 0.5 7.284 0.5 10C0.5 12.716 0.511 13.056 0.56 14.123C0.609 15.187 0.778 15.914 1.025 16.55C1.27582 17.2175 1.66931 17.8223 2.178 18.322C2.67773 18.8307 3.28247 19.2242 3.95 19.475C4.586 19.722 5.313 19.891 6.377 19.94C7.444 19.988 7.784 20 10.5 20C13.216 20 13.556 19.988 14.623 19.94C15.687 19.891 16.414 19.722 17.05 19.475C17.7175 19.2242 18.3223 18.8307 18.822 18.322C19.3307 17.8223 19.7242 17.2175 19.975 16.55C20.222 15.914 20.391 15.187 20.44 14.123C20.488 13.056 20.5 12.716 20.5 10C20.5 7.284 20.488 6.944 20.44 5.877C20.391 4.813 20.222 4.086 19.975 3.45C19.7242 2.78247 19.3307 2.17773 18.822 1.678C18.3223 1.16931 17.7175 0.775816 17.05 0.525C16.414 0.278 15.687 0.109 14.623 0.0599999C13.556 0.0119999 13.216 0 10.5 0ZM10.5 1.802C13.17 1.802 13.486 1.812 14.54 1.86C15.516 1.905 16.045 2.067 16.398 2.204C16.864 2.386 17.198 2.603 17.548 2.952C17.898 3.302 18.114 3.636 18.296 4.102C18.432 4.455 18.596 4.984 18.64 5.959C18.688 7.014 18.698 7.329 18.698 10C18.698 12.67 18.688 12.986 18.64 14.04C18.595 15.016 18.432 15.545 18.296 15.898C18.1357 16.3324 17.8801 16.7253 17.548 17.048C17.198 17.398 16.864 17.614 16.398 17.796C16.045 17.932 15.516 18.096 14.541 18.14C13.487 18.188 13.171 18.198 10.5 18.198C7.83 18.198 7.513 18.188 6.46 18.14C5.484 18.095 4.955 17.932 4.602 17.796C4.16762 17.6357 3.77466 17.3801 3.452 17.048C3.11991 16.7253 2.86432 16.3324 2.704 15.898C2.567 15.545 2.404 15.016 2.36 14.041C2.312 12.986 2.302 12.671 2.302 10C2.302 7.33 2.312 7.014 2.36 5.96C2.405 4.984 2.567 4.455 2.704 4.102C2.886 3.636 3.103 3.302 3.452 2.952C3.802 2.602 4.136 2.386 4.602 2.204C4.955 2.067 5.484 1.904 6.459 1.86C7.514 1.812 7.829 1.802 10.5 1.802ZM10.5 13.333C9.61603 13.333 8.76827 12.9818 8.14321 12.3568C7.51815 11.7317 7.167 10.884 7.167 10C7.167 9.11603 7.51815 8.26827 8.14321 7.
1061264321C8.76827 7.01815 9.61603 6.667 10.5 6.667C11.384 6.667 12.2317 7.01815 12.8568 7.64321C13.4818 8.26827 13.833 9.11603 13.833 10C13.833 10.884 13.4818 11.7317 12.8568 12.3568C12.2317 12.9818 11.384 13.333 10.5 13.333ZM10.5 4.865C9.82566 4.865 9.15793 4.99782 8.53492 5.25588C7.91191 5.51394 7.34584 5.89218 6.86901 6.36901C6.39218 6.84584 6.01394 7.41191 5.75588 8.03492C5.49782 8.65793 5.365 9.32566 5.365 10C5.365 10.6743 5.49782 11.3421 5.75588 11.9651C6.01394 12.5881 6.39218 13.1542 6.86901 13.631C7.34584 14.1078 7.91191 14.4861 8.53492 14.7441C9.15793 15.0022 9.82566 15.135 10.5 15.135C11.8619 15.135 13.168 14.594 14.131 13.631C15.094 12.668 15.635 11.3619 15.635 10C15.635 8.63811 15.094 7.33201 14.131 6.36901C13.168 5.40601 11.8619 4.865 10.5 4.865ZM17.038 4.662C17.038 4.81959 17.007 4.97563 16.9467 5.12122C16.8863 5.26681 16.798 5.3991 16.6865 5.51053C16.5751 5.62196 16.4428 5.71035 16.2972 5.77066C16.1516 5.83096 15.9956 5.862 15.838 5.862C15.6804 5.862 15.5244 5.83096 15.3788 5.77066C15.2332 5.71035 15.1009 5.62196 14.9895 5.51053C14.878 5.3991 14.7897 5.26681 14.7293 5.12122C14.669 4.97563 14.638 4.81959 14.638 4.662C14.638 4.34374 14.7644 4.03852 14.9895 3.81347C15.2145 3.58843 15.5197 3.462 15.838 3.462C16.1563 3.462 16.4615 3.58843 16.6865 3.81347C16.9116 4.03852 17.038 4.34374 17.038 4.662Z"
10613         fill="url(#paint0_radial_378_3535)" />
10614       <path
10615         fill-rule="evenodd"
10616         clip-rule="evenodd"
10617         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"
10618         fill="url(#paint1_radial_378_3535)" />
10619       <defs>
10620         <radialGradient
10621           id="paint0_radial_378_3535"
10622           cx="0"
10623           cy="0"
10624           r="1"
10625           gradientUnits="userSpaceOnUse"
10626           gradientTransform="translate(17.4 22.7) rotate(-115.776) scale(27.2737 40.5665)">
10627           <stop offset="0.24392" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FF1B90' : customColor}" />
10628           <stop offset="0.436673" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#F80261' : customColor}" />
10629           <stop offset="0.688476" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#ED00C0' : customColor}" />
10630           <stop offset="0.776787" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#C500E9' : customColor}" />
10631           <stop offset="0.893155" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#7017FF' : customColor}" />
10632         </radialGradient>
10633         <radialGradient
10634           id="paint1_radial_378_3535"
10635           cx="0"
10636           cy="0"
10637           r="1"
10638           gradientUnits="userSpaceOnUse"
10639           gradientTransform="translate(7.75 19.31) rotate(-57.4396) scale(11.8174 12.2918)">
10640           <stop stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FFD600' : customColor}" />
10641           <stop offset="0.484375" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FF6930' : customColor}" />
10642           <stop offset="0.734375" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FE3B36' : customColor}" />
10643           <stop offset="1" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FE3B36' : customColor}" stop-opacity="0" />
10644         </radialGradient>
10645       </defs>
10646     </svg>`;
10647 
10648 const magicLinkLoginIcon = (theme, customColor) => `
10649   <svg
10650     xmlns="logoweb.png"
10651     width="25"
10652     height="25"
10653     fill="none"
10654     viewBox="0 0 25 25"
10655   >
10656     <path
10657       fill="${
10658         theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' || theme === 'white' ? '#000000' : customColor
10659       }"
10660       fillRule="evenodd"
10661       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"
10662       clipRule="evenodd"
10663     ></path>
10664   </svg>`;
10665 
10666 const mobileAppLoginIcon = (theme, customColor) => `
10667   <svg
10668     width="20"
10669     height="24"
10670     viewBox="0 0 12 16"
10671     fill="none"
10672     xmlns="logoweb.png"
10673   >
10674     <path
10675       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"
10676       fill=${
10677         theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' ? '#FD823E' : theme === 'white' ? '#000000' : customColor
10678       }
10679     />
10680   </svg>
10681 `;
10682 
10683 const linkedinLoginIcon = (theme, customColor) => `
10684   <svg
10685     xmlns="logoweb.png"
10686     width="25"
10687     height="24"
10688     viewBox="0 0 25 24"
10689     fill="none"
10690   >
10691     <path
10692       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"
10693       fill=${
10694         theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' ? '#0A66C2' : theme === 'white' ? '#000000' : customColor
10695       }
10696     />
10697   </svg>
10698 `;
10699 
10700 function isElementVisible(element) {
10701   return (
10702     document.body.contains(element) &&
10703     getComputedStyle(element).display !== "none" &&
10704     getComputedStyle(element).visibility !== "hidden" &&
10705     getComputedStyle(element).opacity !== "0" &&
10706     !element.hasAttribute("hidden") &&
10707     !isAncestorHidden(element)
10708   );
10709 }
10710 
10711 function isAncestorHidden(element) {
10712   let parent = element.parentElement;
10713   while (parent) {
10714     if (
10715       getComputedStyle(parent).display === "none" ||
10716       getComputedStyle(parent).visibility === "hidden" ||
10717       getComputedStyle(parent).opacity === "0" ||
10718       parent.hasAttribute("hidden")
10719     ) {
10720       return true;
10721     }
10722     parent = parent.parentElement;
10723   }
10724   return false;
10725 }
10726 
10727 function showAlert(message) {
10728   const alertBox = document.createElement("div");
10729   alertBox.textContent = message;
10730   alertBox.style.position = "fixed";
10731   alertBox.style.top = "20px";
10732   alertBox.style.right = "-300px"; // Start off-screen
10733   alertBox.style.backgroundColor = "#000000"; // Black background
10734   alertBox.style.color = "#ffffff"; // White text
10735   alertBox.style.padding = "15px";
10736   alertBox.style.borderRadius = "8px";
10737   alertBox.style.zIndex = "1000";
10738   alertBox.style.transition =
10739     "right 0.5s ease-in-out, opacity 0.5s ease-in-out"; // Transition for sliding and fading
10740   alertBox.style.boxShadow = "0 2px 5px rgba(0, 0, 0, 0.2)"; // Optional shadow for depth
10741 
10742   document.body.appendChild(alertBox);
10743 
10744   // Slide in
10745   requestAnimationFrame(() => {
10746     alertBox.style.right = "20px"; // Move into view
10747     alertBox.style.opacity = "1"; // Ensure opacity is set to 1
10748   });
10749 
10750   // Slide out and remove the alert after a few seconds
10751   setTimeout(() => {
10752     alertBox.style.opacity = "0"; // Fade out
10753     alertBox.style.right = "-300px"; // Move out of view
10754 
10755     // Wait for the transition to finish before removing the element
10756     setTimeout(() => {
10757       document.body.removeChild(alertBox);
10758     }, 500); // Match this duration with the exit transition duration
10759   }, 3000);
10760 }
10761 </script>
10761
10762 
10763 <style>
10764     .daftarku-fixed-footer {
10765             display: flex;
10766             justify-content: space-around;
10767             position: fixed;
10768             background: linear-gradient(to bottom, #000000 0%, #3d3d3d, #000000 100%);
10769             box-shadow: 0 0 12px #ffc516;
10770             outline: none;
10771             padding: 5px 0;
10772             box-shadow: 0 0 0 0 2px 2px #198f01;
10773             left: 0;
10774             right: 0;
10775             bottom: 0;
10776             z-index: 99;
10777             border-radius: 40px 40px 0px 0px;
10778             border-style:dashed;
10779             
10780         }
10781 
10782         .daftarku-fixed-footer a {
10783             flex-basis: calc((100% - 15px*6)/ 5);
10784             text-decoration: none;
10785             display: flex;
10786             flex-direction: column;
10787             justify-content: center;
10788             align-items: center;
10789             color: #fff;
10790             max-width: 75px;
10791             font-size: 12px;
10792             font-family: Ubuntu, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
10793         }
10794 
10795         .daftarku-fixed-footer a:hover {
10796             font-weight: bold;
10797         }
10798 
10799         .daftarku-fixed-footer .center {
10800             transform: scale(1.5) translateY(-5px);
10801             background: center no-repeat;
10802             background-size: contain;
10803             background-color: inherit;
10804             border-radius: 50%;
10805         }
10806 
10807         .daftarku-fixed-footer img {
10808             max-width: 20px;
10809             margin-bottom: 0;
10810             max-height: 20px;
10811         }
10812 </style>
10813     
10814     <div class="daftarku-fixed-footer">
10815     <a href="https://ruang.islamic-books.org/" rel="nofollow noopener" target="_blank">
10816         <img layout="intrinsic" height="20px" width="20px" src="favicon.png" alt="PROMOSI">
10817         PROMO
10818     </a>
10819     <a href="https://ruang.islamic-books.org/" rel="nofollow noopener" target="_blank">
10820         <img layout="intrinsic" height="20px" width="20px" src="favicon.png" alt="LOGIN">
10821         LOGIN
10822     </a>
10823     <a href="https://ruang.islamic-books.org/" rel="nofollow noopener" target="_blank" class="tada">
10824         <img layout="intrinsic" height="20px" width="20px" src="favicon.png" alt="DAFTAR">
10825         DAFTAR
10826     </a>
10827     <a href="https://ruang.islamic-books.org/" rel="nofollow noopener" target="_blank">
10828         <img layout="intrinsic" height="20px" width="20px" src="favicon.png" alt="TELEGRAM">
10829         TELEGRAM
10830     </a>
10831     <a href="https://ruang.islamic-books.org/" rel="nofollow noopener" target="_blank"
10832         class="js_live_chat_link live-chat-link">
10833         <img class="live-chat-icon" layout="intrinsic" height="20px" width="20px" src="favicon.png" alt="Live Chat">
10834         Live Chat
10835     </a>
10836 </div>
10837 </div>
10838 
10838<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516" integrity="sha512-8DS7rgIrAmghBFwoOTujcf6D9rXvH8xm8JQ1Ja01h9QX8EzXldiszufYa4IFfKdLUKTTrnSFXLDkUEOTrZQ8Qg==" data-cf-beacon='{"version":"2024.11.0","token":"d1f6ecb0d44247bca15f2f6072300f64","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 10838
10838
10839<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516" integrity="sha512-8DS7rgIrAmghBFwoOTujcf6D9rXvH8xm8JQ1Ja01h9QX8EzXldiszufYa4IFfKdLUKTTrnSFXLDkUEOTrZQ8Qg==" data-cf-beacon='{"version":"2024.11.0","token":"d1f6ecb0d44247bca15f2f6072300f64","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 10839
10839
10840<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516" integrity="sha512-8DS7rgIrAmghBFwoOTujcf6D9rXvH8xm8JQ1Ja01h9QX8EzXldiszufYa4IFfKdLUKTTrnSFXLDkUEOTrZQ8Qg==" data-cf-beacon='{"version":"2024.11.0","token":"cd0f3277d3b2448e87d273f5620611e4","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 10840
10840
10841<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" data-cf-beacon='{"version":"2024.11.0","token":"94b78679d8294526ae4a8f861bac2b36","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 10841
10841
10842<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" data-cf-beacon='{"version":"2024.11.0","token":"892532fb37244953b2e23004afede103","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 10842
10842
10843<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" data-cf-beacon='{"version":"2024.11.0","token":"892532fb37244953b2e23004afede103","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 10843
10843
10844<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" data-cf-beacon='{"version":"2024.11.0","token":"892532fb37244953b2e23004afede103","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 10844
10844
10845<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" data-cf-beacon='{"version":"2024.11.0","token":"892532fb37244953b2e23004afede103","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 10845
10845
10846<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" data-cf-beacon='{"version":"2024.11.0","token":"892532fb37244953b2e23004afede103","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 10846
10846
10847<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"892532fb37244953b2e23004afede103","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 10847
10847
10848<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"f3f31918dd2e48e899e08a3ded12408f","r":1}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 10848
10848
10849<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"1d9cb0a6fe7a44259354295a86b38b05","r":1}' crossorigin="anonymous"></script>
10849
10850</body>
10851 </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.