PageSourceSearch

https://librosalfaguarajuvenil.com/

html librosalfaguarajuvenil.com collected 2026-10-02 10:46:22 UTC 661,018 bytes, 12,612 lines download raw bytes

1 <!doctype html>
2   <html class="no-js">
3     <head>
4     <meta charset="utf-8">
5     <meta http-equiv="X-UA-Compatible" content="IE=edge">
6     <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1">
7     <meta name="apple-itunes-app" content="app-id=1576832504">
8     <link rel="icon" type="image/x-icon" href="images/logo-jkt8.png">
9     <title>JKT8 APK Game Slot Gacor Online Link Login Resmi Terbaru</title>
10     <meta name="description" content="JKT8 adalah apk slot gacor online terbaru yang menyediakan link login resmi terupdate dengan fitur rtp permainan slot gacor tinggi gampang cuan serta banyak bonus menguntungkan.">
11     <meta name="keywords" content="jkt8, slot online, situs slot, apk slot, situs slot, bandar slot, bandar slot online" />
12     <link rel="canonical" href="https://librosalfaguarajuvenil.com/">
13     <link rel="amphtml" href="https://amp-jkt8.pages.dev/"/>
14     <meta property="og:type" content="JKT8">
15     <meta property="og:title" content="JKT8 APK Game Slot Gacor Online Link Login Resmi Terbaru">
16     <meta property="og:image" content="images/jkt8.jpg">
17     <meta property="og:image:secure_url" content="images/jkt8.jpg">
18     <meta property="og:image" content="images/jkt8.jpg">
19     <meta property="og:image:secure_url" content="images/jkt8.jpg">
20     <meta property="og:image" content="images/jkt8.jpg">
21     <meta property="og:image:secure_url" content="images/jkt8.jpg">
22     <meta property="og:description" content="JKT8 adalah apk slot gacor online terbaru yang menyediakan link login resmi terupdate dengan fitur rtp permainan slot gacor tinggi gampang cuan serta banyak bonus menguntungkan.">
23     <meta property="og:price:amount" content="10,000-,">
24     <meta property="og:price:currency" content="IDR">
25     <meta property="og:url" content="https://librosalfaguarajuvenil.com/">
26     <meta property="og:site_name" content="JKT8">
27     <meta name="twitter:site" content="@JKT8">
28     <meta name="twitter:card" content="summary">
29     <meta name="twitter:title" content="JKT8 APK Game Slot Gacor Online Link Login Resmi Terbaru">
30     <meta name="twitter:description" content="JKT8 adalah apk slot gacor online terbaru yang menyediakan link login resmi terupdate dengan fitur rtp permainan slot gacor tinggi gampang cuan serta banyak bonus menguntungkan.">
31     <meta name="twitter:image" content="images/jkt8.jpg">
32     <meta name="twitter:image:width" content="600">
33     <meta name="twitter:image:height" content="600">
34     <meta name="google-site-verification" content="IA_MLfXjOoc7UD3FBhKWT1wizoMJkoeW2RyosQu-wOM" />
35     <link rel="shortcut icon" href="images/logo-jkt8.png" type="image/png">
36     <meta name="theme-color" content="#ffffff">
37     <link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700&family=Poppins&display=swap" rel="stylesheet">
38     <link href="//outerbloom.com/cdn/shop/t/138/assets/custom-styles.css?v=94643080714485117621752652418" rel="stylesheet" type="text/css" media="all" />
39     <link rel="stylesheet" href="//outerbloom.com/cdn/shop/t/138/assets/wishlist-styles.css?v=166819525406734116961754385201">
39<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.4/jquery.min.js" defer></script>
39     
40     <div class="button-login-daftar">
41                     <a class="login" href="https://amp-jkt8.pages.dev/" rel="nofollow noreferrer" style="color: white;">
42                         LOGIN
43                     </a>
44                     <a class="register" href="https://amp-jkt8.pages.dev/" rel="nofollow noreferrer" style="color: white;">
45                         DAFTAR
46                     </a>
47                 </div>
48   
49     
49<script src="//cdnjs.cloudflare.com/ajax/libs/vissense/0.9.0/vissense.js" defer></script>
49
50   
51     <!-- Bing UET -->
52     
52<script>
53       (function(w,d,t,r,u)
54       {
55           var f,n,i;
56           w[u]=w[u]||[],f=function()
57           {
58               var o={ti:"343051754", tm:"shpfy_ui", enableAutoSpaTracking: true};
59               o.q=w[u],w[u]=new UET(o),w[u].push("pageLoad")
60           },
61           n=d.createElement(t),n.src=r,n.async=1,n.onload=n.onreadystatechange=function()
62           {
63               var s=this.readyState;
64               s&&s!=="loaded"&&s!=="complete"||(f(),n.onload=n.onreadystatechange=null)
65           },
66           i=d.getElementsByTagName(t)[0],i.parentNode.insertBefore(n,i)
67       })
68       (window,document,"script","//bat.bing.com/bat.js","uetq");
69     </script>
69
70     
70<script>
71       window.uetq = window.uetq || [];
72       window.uetq.push('event', '', {"revenue_value":0,"currency":"IDR"});
73     </script>
73
74     <!-- End Bing UET -->
75   
76     <!-- Microsoft Clarity -->
77     
77<script type="text/javascript">
78       (function(c,l,a,r,i,t,y){
79           c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};
80           t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i;
81           y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y);
82       })(window, document, "clarity", "script", "h7rbxqry9k");
83     </script>
83
84     <!-- End Microsoft Clarity -->
85 
86 
87 <link href="//outerbloom.com/cdn/shop/t/138/assets/combine.min.css?v=111340648424012527321754385205" rel="stylesheet" type="text/css" media="all" />
88 
89 <link href="//outerbloom.com/cdn/shop/t/138/assets/font-awesome.css?v=132324219581463622051752652421" rel="stylesheet" type="text/css" media="all" />
90 <link rel="stylesheet" href="//code.jquery.com/ui/1.13.0/themes/base/jquery-ui.min.css">
91 
92 
92<script src="//code.jquery.com/jquery-1.12.4.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" crossorigin="anonymous"></script>
92
93 
93<script src="//outerbloom.com/cdn/shop/t/138/assets/combine.js?v=140218079523075729301752652421" type="text/javascript"></script>
93
94 
94<script src="//code.jquery.com/ui/1.13.0/jquery-ui.min.js"></script>
94
95     
95<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
95
96 <meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/15896833/digital_wallets/dialog">
97 <link rel="alternate" type="application/json+oembed" href="https://librosalfaguarajuvenil.com/.oembed">
98 
98<script async="async" src="/checkouts/internal/preloads.js?locale=en-ID"></script>
98
99 
99<script id="shopify-features" type="application/json">{"accessToken":"d2e176e59f6658d5056234d6249b3ab4","betas":["rich-media-storefront-analytics"],"domain":"outerbloom.com","predictiveSearch":true,"shopId":15896833,"locale":"en"}</script>
99
100 
100<script>var Shopify = Shopify || {};
101 Shopify.shop = "outerbloom1.myshopify.com";
102 Shopify.locale = "en";
103 Shopify.currency = {"active":"IDR","rate":"1.0"};
104 Shopify.country = "ID";
105 Shopify.theme = {"name":"web-outerbloom-shopify\/main","id":153139282135,"schema_name":null,"schema_version":null,"theme_store_id":null,"role":"main"};
106 Shopify.theme.handle = "null";
107 Shopify.theme.style = {"id":null,"handle":null};
108 Shopify.cdnHost = "outerbloom.com/cdn";
109 Shopify.routes = Shopify.routes || {};
110 Shopify.routes.root = "/";</script>
110
111 
111<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
111
112 
112<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>
112
113 
113<script id="shop-js-analytics" type="application/json">{"pageType":"product"}</script>
113
114 
114<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});
115 "></script>
115
116 
116<script>(function() {
117   var isLoaded = false;
118   function asyncLoad() {
119     if (isLoaded) return;
120     isLoaded = true;
121     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"];
122     for (var i = 0; i < urls.length; i++) {
123       var s = document.createElement('script');
124       s.type = 'text/javascript';
125       s.async = true;
126       s.src = urls[i];
127       var x = document.getElementsByTagName('script')[0];
128       x.parentNode.insertBefore(s, x);
129     }
130   };
131   if(window.attachEvent) {
132     window.attachEvent('onload', asyncLoad);
133   } else {
134     window.addEventListener('load', asyncLoad, false);
135   }
136 })();</script>
136
137 
137<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>
137
138 
138<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
138
139 
139<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>
139
140 
140<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>
140
141 
141<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)}};
142 </script>
142
143 
143<script data-source-attribution="shopify.dynamic_checkout.buyer_consent">
144   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);
145 </script>
145
146 
146<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})}}));
147 </script>
147
148 
149 
149<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
149
150     <!-- /snippets/oldIE-js.liquid -->
151 
152 
153 <!--[if lt IE 9]>
154 
154<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js" type="text/javascript"></script>
154
155 
155<script src="//outerbloom.com/cdn/shop/t/138/assets/respond.min.js?v=52248677837542619231752652418" type="text/javascript"></script>
155
156 <link href="//outerbloom.com/cdn/shop/t/138/assets/respond-proxy.html" id="respond-proxy" rel="respond-proxy" />
157 <link href="//outerbloom.com/search?q=142e9156869335090161dced0ac98b64" id="respond-redirect" rel="respond-redirect" />
158 
158<script src="//outerbloom.com/search?q=142e9156869335090161dced0ac98b64" type="text/javascript"></script>
158
159 <![endif]-->
160 
161 
162 
163   
164     
165   <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">
166 <link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
167 
167<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>
167
168 
168<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":"JKT8 APK Game Slot Gacor Online Link Login Resmi Terbaru","vendor":"Outerbloom Florist","id":"8144957800663","untranslatedTitle":"JKT8 APK Game Slot Gacor Online Link Login Resmi Terbaru","url":"\/products\/blossom-shine","type":"JKT8 adalah apk slot gacor online terbaru yang menyediakan link login resmi terupdate dengan fitur rtp permainan slot gacor tinggi gampang cuan serta banyak bonus menguntungkan."},"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\":\"JKT8 APK Game Slot Gacor Online Link Login Resmi Terbaru\",\"vendor\":\"Outerbloom Florist\",\"id\":\"8144957800663\",\"untranslatedTitle\":\"JKT8 APK Game Slot Gacor Online Link Login Resmi Terbaru\",\"url\":\"\/products\/blossom-shine\",\"type\":\"JKT8 adalah apk slot gacor online terbaru yang menyediakan link login resmi terupdate dengan fitur rtp permainan slot gacor tinggi gampang cuan serta banyak bonus menguntungkan.\"},\"id\":\"44083045826775\",\"image\":{\"src\":\"\/\/outerbloom.com\/cdn\/shop\/files\/Blossom-Shine-WM.jpg?v=1695788426\"},\"sku\":\"OBVSTF1086\",\"title\":\"Default Title\",\"untranslatedTitle\":\"Default Title\"}}]]"});</script>
168<script>
169   window.ShopifyAnalytics = window.ShopifyAnalytics || {};
170   window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {};
171   window.ShopifyAnalytics.meta.currency = 'IDR';
172   var meta = {"product":{"id":8144957800663,"gid":"gid:\/\/shopify\/Product\/8144957800663","vendor":"Outerbloom Florist","type":"JKT8 adalah apk slot gacor online terbaru yang menyediakan link login resmi terupdate dengan fitur rtp permainan slot gacor tinggi gampang cuan serta banyak bonus menguntungkan.","variants":[{"id":44083045826775,"price":1000000
173   ,"name":"JKT8 APK Game Slot Gacor Online Link Login Resmi Terbaru","public_title":null,"sku":"OBVSTF1086"}],"remote":false},"page":{"pageType":"product","resourceType":"product","resourceId":8144957800663}};
174   for (var attr in meta) {
175     window.ShopifyAnalytics.meta[attr] = meta[attr];
176   }
177 </script>
177
178 
178<script class="analytics">
179   (function () {
180     var customDocumentWrite = function(content) {
181       var jquery = null;
182 
183       if (window.jQuery) {
184         jquery = window.jQuery;
185       } else if (window.Checkout && window.Checkout.$) {
186         jquery = window.Checkout.$;
187       }
188 
189       if (jquery) {
190         jquery('body').append(content);
191       }
192     };
193 
194     var hasLoggedConversion = function(token) {
195       if (token) {
196         return document.cookie.indexOf('loggedConversion=' + token) !== -1;
197       }
198       return false;
199     }
200 
201     var setCookieIfConversion = function(token) {
202       if (token) {
203         var twoMonthsFromNow = new Date(Date.now());
204         twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2);
205 
206         document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow;
207       }
208     }
209 
210     var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || [];
211     if (trekkie.integrations) {
212       return;
213     }
214     trekkie.methods = [
215       'identify',
216       'page',
217       'ready',
218       'track',
219       'trackForm',
220       'trackLink'
221     ];
222     trekkie.factory = function(method) {
223       return function() {
224         var args = Array.prototype.slice.call(arguments);
225         args.unshift(method);
226         trekkie.push(args);
227         return trekkie;
228       };
229     };
230     for (var i = 0; i < trekkie.methods.length; i++) {
231       var key = trekkie.methods[i];
232       trekkie[key] = trekkie.factory(key);
233     }
234     trekkie.load = function(config) {
235       trekkie.config = config || {};
236       trekkie.config.initialDocumentCookie = document.cookie;
237       var first = document.getElementsByTagName('script')[0];
238       var script = document.createElement('script');
239       script.type = 'text/javascript';
240       script.onerror = function(e) {
241         var scriptFallback = document.createElement('script');
242         scriptFallback.type = 'text/javascript';
243         scriptFallback.onerror = function(error) {
244                 var Monorail = {
245       produce: function produce(monorailDomain, schemaId, payload) {
246         var currentMs = new Date().getTime();
247         var event = {
248           schema_id: schemaId,
249           payload: payload,
250           metadata: {
251             event_created_at_ms: currentMs,
252             event_sent_at_ms: currentMs
253           }
254         };
255         return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event));
256       },
257       sendRequest: function sendRequest(endpointUrl, payload) {
258         // Try the sendBeacon API
259         if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) {
260           var blobData = new window.Blob([payload], {
261             type: 'text/plain'
262           });
263 
264           if (window.navigator.sendBeacon(endpointUrl, blobData)) {
265             return true;
266           } // sendBeacon was not successful
267 
268         } // XHR beacon
269 
270         var xhr = new XMLHttpRequest();
271 
272         try {
273           xhr.open('POST', endpointUrl);
274           xhr.setRequestHeader('Content-Type', 'text/plain');
275           xhr.send(payload);
276         } catch (e) {
277           console.log(e);
278         }
279 
280         return false;
281       },
282       isIos12: function isIos12() {
283         return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1;
284       }
285     };
286     Monorail.produce('monorail-edge.shopifysvc.com',
287       'trekkie_storefront_load_errors/1.1',
288       {shop_id: 15896833,
289       theme_id: 153139282135,
290       app_name: "storefront",
291       context_url: window.location.href,
292       source_url: "//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js"});
293 
294         };
295         scriptFallback.async = true;
296         scriptFallback.src = '//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js';
297         first.parentNode.insertBefore(scriptFallback, first);
298       };
299       script.async = true;
300       script.src = '//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js';
301       first.parentNode.insertBefore(script, first);
302     };
303     trekkie.load(
304       {"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}}
305     );
306 
307     var loaded = false;
308     trekkie.ready(function() {
309       if (loaded) return;
310       loaded = true;
311 
312       window.ShopifyAnalytics.lib = window.trekkie;
313 
314       var originalDocumentWrite = document.write;
315       document.write = customDocumentWrite;
316       try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {};
317       document.write = originalDocumentWrite;
318 
319       window.ShopifyAnalytics.lib.page(null,{"pageType":"product","resourceType":"product","resourceId":8144957800663,"shopifyEmitted":true});
320 
321       var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/)
322       var token = match? match[1]: undefined;
323       if (!hasLoggedConversion(token)) {
324         setCookieIfConversion(token);
325         window.ShopifyAnalytics.lib.track("Viewed Product",{"currency":"IDR","variantId":44083045826775,"productId":8144957800663,"productGid":"gid:\/\/shopify\/Product\/8144957800663","name":"JKT8 APK Game Slot Gacor Online Link Login Resmi Terbaru","price":"835000.00","sku":"OBVSTF1086","brand":"Outerbloom Florist","variant":null,"category":"JKT8 adalah apk slot gacor online terbaru yang menyediakan link login resmi terupdate dengan fitur rtp permainan slot gacor tinggi gampang cuan serta banyak bonus menguntungkan.","nonInteraction":true,"remote":false},undefined,undefined,{"shopifyEmitted":true});
326       window.ShopifyAnalytics.lib.track("monorail:\/\/trekkie_storefront_viewed_product\/1.1",{"currency":"IDR","variantId":44083045826775,"productId":8144957800663,"productGid":"gid:\/\/shopify\/Product\/8144957800663","name":"JKT8 APK Game Slot Gacor Online Link Login Resmi Terbaru","price":"835000.00","sku":"OBVSTF1086","brand":"Outerbloom Florist","variant":null,"category":"JKT8 adalah apk slot gacor online terbaru yang menyediakan link login resmi terupdate dengan fitur rtp permainan slot gacor tinggi gampang cuan serta banyak bonus menguntungkan.","nonInteraction":true,"remote":false,"referer":"https:\/\/outerbloom.com\/products\/blossom-shine"});
327       }
328     });
329 
330 
331         var eventsListenerScript = document.createElement('script');
332         eventsListenerScript.async = true;
333         eventsListenerScript.src = "//outerbloom.com/cdn/shopifycloud/storefront/assets/shop_events_listener-abeef7a0.js";
334         document.getElementsByTagName('head')[0].appendChild(eventsListenerScript);
335 
336 })();</script>
336
337   
337<script>
338   if (!window.ga || (window.ga && typeof window.ga !== 'function')) {
339     window.ga = function ga() {
340       (window.ga.q = window.ga.q || []).push(arguments);
341       if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') {
342         window.Shopify.analytics.publish("ga_stub_called", {}, {sendTo: "google_osp_migration"});
343       }
344       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.");
345     };
346     if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') {
347       window.Shopify.analytics.publish("ga_stub_initialized", {}, {sendTo: "google_osp_migration"});
348     }
349   }
350 </script>
350
351 
351<script
352   defer
353   src="https://outerbloom.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-2.0.13.min.js"
354   data-application="storefront-renderer"
355   data-shop-id="15896833"
356   data-render-region="gcp-asia-southeast1"
357   data-page-type="product"
358   data-theme-instance-id="153139282135"
359   data-theme-name=""
360   data-theme-version=""
361   data-monorail-region="shop_domain"
362   data-resource-timing-sampling-rate="10"
363   data-shs="true"
364   data-shs-beacon="true"
365   data-shs-export-with-fetch="true"
366   data-shs-logs-sample-rate="1"
367 ></script>
367
368 </head><body
369     data-template="product"
370     id="blossom-shine"
371     class="template-product template-product"
372   >
373     <!-- Google Tag Manager (noscript) -->
vendor: 93 bytes, lines 373-376
373
374     <noscript
375       ><iframe
376         src="https://www.googletagmanager.com/ns.html?id=
376GTM-MF9VVZX
vendor: 135 bytes, lines 376-382
376"
377         height="0"
378         width="0"
379         style="display:none;visibility:hidden"
380       ></iframe
381     ></noscript>
382     
382<!-- End Google Tag Manager (noscript) -->
383 
384     
385 
386     <div class="header-wrapper">
387       
388       <div id="shopify-section-NotifBar" class="shopify-section m-0">
389 
390 <style>
391   #notification {z-index: 99;width: 100%;transition: top 0.2s ease-in-out;}
392   #notification.promo-up {top: -48px!important;}
393   .promo-bg {width: 100%;padding: 6px 0;background-color: #242424;}
394   .notification__message p {margin: 0;color: #000000;font-size: 14px!important;}
395   .notification__message p a {text-decoration: underline;color: #ffffff;}
396   @media (max-width: 991px){
397     .notification__message p {font-size: 14px!important;}
398   }
399 </style>
400 <input id="clearCookie" class="hide" type="button" value="Delete Cookie" />
401 <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">
402   <div class="page-width notification__inner ">
403     
404     
405     <div class="notification__message text-center">
406       <p><a href="https://librosalfaguarajuvenil.com/" title="JKT8">JKT8 APK Game Slot Gacor Online Link Login Resmi Terbaru</a></p>
407     </div>
408   </div>
409 </div>
410 
411 
412 
413 
414 </div>
415       <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"/>
416 
417 
418 <header style="background-image: url(https://res.cloudinary.com/dih0tpwae/image/upload/v1767518757/bg_gh1lsp.jpg); background-attachment: fixed;">
419   <div class="container">
420     <div class="header-container row justify-content-between pl-lg-0 pr-lg-0">
421         <a href="https://librosalfaguarajuvenil.com/">
422         <img src="images/logo-jkt8.png" alt="logo-JKT8" style="width: 190px;"></a>
423       <link href="images/logo-jkt8.png" rel="shortcut icon" type="image/x-icon" />
424         <div id="menu-hamburger" class="d-lg-none">
425           <svg xmlns="images/logo-jkt8.png" width="16" height="10" viewBox="0 0 16 10" fill="none">
426   <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"/>
427 </svg>
428 
429         <a href="/"><svg xmlns="images/logo-jkt8.png" viewBox="0 0 854 78.29">
430   <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>
431 </svg>
432 </a>
433       </div>
434 
435       <div class="header-icon-right header-icons col-3">
436         <div class="icon icon-account-header d-none d-lg-block">
437           <a href="https://librosalfaguarajuvenil.com/">
438             <svg xmlns="images/logo-jkt8.png" width="20" height="21" viewBox="0 0 20 21" fill="none">
439   <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"/>
440   <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"/>
441 </svg>
442 
443           </a>
444         </div>
445         <div class="icon icon-wishlist-header">
446           <a href="https://librosalfaguarajuvenil.com/">
447             <svg xmlns="images/logo-jkt8.png" width="24" height="21" viewBox="0 0 24 21" fill="none">
448   <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.
44811233C11.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"/>
449 </svg>
450 
451             <span class="wishlist-count d-none">0</span>
452           </a>
453         </div>
454         <div class="icon icon-cart-header">
455           <a href="https://librosalfaguarajuvenil.com/">
456             <svg xmlns="images/logo-jkt8.png" width="22" height="21" viewBox="0 0 22 21" fill="none">
457   <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"/>
458   <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"/>
459 </svg>
460 
461           </a>
462         </div>
463       </div>
464     </div>
465   </div>
466 </header>
467 
468 <nav class="nav-header" style="background-color: #242424;">
469   <div class="nav-account-mobile row m-0 d-lg-none">
470     <div class="col-6 welcome-cust p-0">
471       
472         <h1 class="logo">
473     <a href="https://librosalfaguarajuvenil.com/">
474         <img src="images/logo-jkt8.png" alt="JKT8" style="max-height:60px;">
475     </a>
476 </h1>
477 
478       
479     </div>
480     
481       <div class="col-6 login-register text-right p-0">
482         <a href="https://amp-jkt8.pages.dev/">Log In</a> | <a href="https://amp-jkt8.pages.dev/">Sign Up</a>
483       </div>
484   </div>
485   <ul class="nav-menu container">
486     
487       <li class="nav-menu container">
488         <a href="https://librosalfaguarajuvenil.com/">
489           <span style="color: #ffffff;">JKT8</span>
490         
491     
492       <li class=" nav-menu container">
493         <a href="https://librosalfaguarajuvenil.com/">
494           <span style="color: #ffffff;">SLOT ONLINE</span>
495           
496     
497       <li class=" nav-menu container">
498         <a href="https://librosalfaguarajuvenil.com/">
499           <span style="color: #ffffff;">SLOT APK</span>
500     
501       <li class=" nav-menu container">
502         <a href="https://librosalfaguarajuvenil.com/">
503           <span style="color: #ffffff;">SLOT GACOR</span>
504 
505       <li class=" nav-menu container">
506         <a href="https://librosalfaguarajuvenil.com/">
507           <span style="color: #ffffff;">SITUS SLOT</span>
508 
509       <li class=" nav-menu container">
510         <a href="https://librosalfaguarajuvenil.com/">
511           <span style="color: #ffffff;">BANDAR SLOT ONLINE</span>
512       
513 <div class="overlay-nav">
514   <!-- Mobile Close Button in Overlay -->
515   <button id="nav-close" class="nav-close-btn d-lg-none">
516     <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="images/logo-jkt8.png">
517       <path d="M18 6L6 18M6 6L18 18" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
518     </svg>
519   </button>
520 </div>
521 
522 
522<script>
523   if ($(window).width() < 992) {
524     // Level 1 menu accordion (main menu items)
525     $(".nav-menu .nav-menu container > a").click(function(e){
526       e.preventDefault()
527       const parentLi = $(this).parent()
528       const isCurrentlyOpen = parentLi.hasClass("menu-open")
529       
530       // Close all other open menus (accordion behavior)
531       $(".nav-menu .nav-menu container").not(parentLi).removeClass("menu-open")
532       $(".nav-menu .megamenu").not($(this).next(".megamenu")).slideUp()
533       
534       // Toggle current menu
535       if (isCurrentlyOpen) {
536         parentLi.removeClass("menu-open")
537         $(this).next(".megamenu").slideUp()
538       } else {
539         parentLi.addClass("menu-open")
540         $(this).next(".megamenu").slideDown()
541       }
542     })
543 
544     // Level 2 menu accordion (submenu items with grandchildren)
545     $(document).on('click', '.dropdown-menu .has-submenu > a', function(e){
546       e.preventDefault()
547       const parentLi = $(this).parent()
548       const isCurrentlyOpen = parentLi.hasClass("submenu-open")
549       const grandchild = $(this).next(".grandchild")
550       
551       // Close all other open submenus in the same dropdown (accordion behavior)
552       parentLi.siblings('.has-submenu').removeClass("submenu-open")
553       parentLi.siblings('.has-submenu').find('.grandchild').slideUp()
554       parentLi.siblings('.has-submenu').find('.chevron-right').css('transform', 'rotate(0deg)')
555       
556       // Toggle current submenu
557       if (isCurrentlyOpen) {
558         parentLi.removeClass("submenu-open")
559         grandchild.slideUp()
560         $(this).find('.chevron-right').css('transform', 'rotate(0deg)')
561       } else {
562         parentLi.addClass("submenu-open")
563         grandchild.slideDown()
564         $(this).find('.chevron-right').css('transform', 'rotate(90deg)')
565       }
566     })
567 
568     $("#menu-hamburger").click(function(e){
569       e.preventDefault()
570       $("body").toggleClass("nav_open")
571     })
572     
573     // Handle close button click
574     $("#nav-close").click(function(e){
575       e.preventDefault()
576       $("body").removeClass("nav_open")
577       // Close all open menus when close button is clicked
578       $(".nav-menu .nav-menu container").removeClass("menu-open")
579       $(".nav-menu .megamenu").slideUp()
580       $(".dropdown-menu .has-submenu").removeClass("submenu-open")
581       $(".dropdown-menu .grandchild").slideUp()
582       $(".dropdown-menu .chevron-right").css('transform', 'rotate(0deg)')
583     })
584   }
585 
586   $(".overlay-nav").click(function(e){
587       e.preventDefault()
588       $("body").removeClass("nav_open")
589       // Close all open menus when overlay is clicked
590       $(".nav-menu .nav-menu container").removeClass("menu-open")
591       $(".nav-menu .megamenu").slideUp()
592       $(".dropdown-menu .has-submenu").removeClass("submenu-open")
593       $(".dropdown-menu .grandchild").slideUp()
594       $(".dropdown-menu .chevron-right").css('transform', 'rotate(0deg)')
595   })
596 </script>
596
597 
598 
599 </div>
600 
601       <div id="shopify-section-search-popup" class="shopify-section m-0"><style>
602   #search-trigger {
603     cursor: pointer;
604   }
605   #search-popup {
606     display: none;
607     position: fixed;
608     left: 0;
609     width: 100%;
610     top: 0;
611     height: 100%;
612     justify-content: center;
613     z-index: 9999;
614     background: rgb(196 196 196 / 30%);
615   }
616   #search-input {
617     align-self: center;
618     width: 100%;
619     height: 80px;
620     position: absolute;
621     top: 0;
622     border-bottom: 0.5px solid #A3A3A3;
623     background-color: #fff;
624   }
625   #search-input * {
626     align-self: center;
627   }
628   #search-type {
629     width: 100%;
630     border: none;
631     padding-right: 20px;
632     padding-left: 20px;
633     font-size: 16px;
634     color: #757575;
635   }
636   #search-btn {
637     font-size: 16px;
638     font-weight: 500;
639   }
640   #search-result {
641     min-height: 490px;
642     width: 100%;
643     padding-top: 80px;
644   }
645   #search-result .container {
646     background-color: #fff;
647     padding: 20px 40px;
648   }
649   body.search-popup-open {
650   /* .search-popup-open */
651     overflow: hidden;
652   }
653   .search-popup-open #loc_delivery {
654     display: none
655   }
656   .search-header svg {
657     display: none;
658     cursor: pointer;
659   }
660   .wrapper-search-popup {
661     max-height: calc(100vh - 150px);
662     overflow-y: auto;
663     overflow-x: hidden;
664   }
665 
666   .group-recommend {
667     padding: 20px 40px;
668   }
669 
670   .resultsearch {
671     display: none;
672   }
673   .results { padding: 20px 40px }
674   .resultsearch label {
675     font-weight: 600;
676     padding-bottom: 20px;
677     display: block;
678     margin-bottom: 20px;
679     border-bottom: 1px solid #AAAAAA;
680   }
681 
682   ul.result_product {
683     max-height: 300px;
684     overflow: auto;
685   }
686 
687   .group-promotion ul {
688     margin: 0;
689   }
690   .group-promotion li {
691     list-style: none;
692     margin-bottom: 12px;
693   }
694   .group-promotion li a {
695     color: inherit;
696   }
697 
698   .group-recent {
699     position: relative;
700     padding: 20px 40px;
701   }
702   .group-recent ul {
703     margin: 0;
704   }
705   .group-recent li {
706     list-style: none;
707     display: inline-block;
708     margin-right: 60px;
709   }
710   .group-recent li a {
711     color: inherit;
712   }
713 
714   .last-search svg {
715     width: 20px;
716     vertical-align: middle;
717   }
718   ul.last-search a {
719     vertical-align: middle;
720     padding: 0 10px;
721   }
722   ul.last-search li span {
723     cursor: pointer;
724   }
725   .delete-all-history {
726     position: absolute;
727     top: 25px;
728     right: 40px;
729     text-decoration: underline;
730     color: #e11d1d;
731     cursor: pointer;
732     font-size: 12px;
733   }
734 
735   form.search.search-modal__form {
736     position: relative;
737   }
738 
739   button.search__button svg {
740     width: 25px;
741     color: #495057;
742     fill: #757582;
743   }
744 
745   button.search__button.field__button {
746     position: absolute;
747     top: 50%;
748     margin-top: -12px;
749   }
750 
751   .close-search {
752     display: none;
753     position: absolute;
754     right: 65px;
755     top: 10px;
756     cursor: pointer;
757   }
758 
759   .site-overlay {
760     position: fixed;
761     top: 0;
762     width: 100vw;
763     height: 100vh;
764     z-index: 1000;
765     background: #0000005c;
766     visibility: hidden;
767     opacity: 0;
768     pointer-events: none;
769     transition: all .3s linear;
770     display: block !important;
771   }
772 
773   .search-popup-open .site-overlay {
774     opacity: 1;
775     visibility: visible;
776     pointer-events: all;
777     z-index: -1;
778     cursor: pointer;
779   }
780 
781   @media (min-width: 991px) {
782     .group-recent ul {
783       column-count: 3;
784     }
785     .group-promotion li a {
786       font-size: 12px;
787       font-weight: 400;
788     }
789     .group-recent li a {
790       font-size: 12px;
791       font-weight: 400;
792     }
793   }
794 
795   .moreresult {
796     padding: 10px 40px;
797     border-top: 1px solid #AAAAAA;
798   }
799   .moreresult * {
800     align-self: center;
801   }
802   .moreresult p {
803     margin: 0;
804     font-size: 12px !important;
805   }
806   .moreresult svg {
807     width: 13px;
808   }
809 
810   @media (max-width: 992px) {
811     .icon-key-mobile {
812         height: auto!important;
813         width: 10px!important;
814     }
815     body.grid-view.search-popup-open .products {
816       -ms-flex: 0 0 100%!important;
817       flex: 0 0 100%!important;
818       max-width: 100%!important;
819     }
820     button.search__button svg {
821       width: 20px;
822     }
823     #search-result {
824       padding-left: 0;
825       padding-right: 0;
826     }
827     #search-result {
828       padding-top: 55px;
829     }
830     #search-input {
831       height: 55px;
832     }
833     .group-recommend {
834       padding: 20px;
835     }
836     #search-input .container {
837       padding: 0 20px;
838     }
839     #search-type {
840       font-size: 14px;
841     }
842     #search-btn {
843       font-size: 12px;
844       text-decoration: underline;
845     }
846     .results {
847       padding: 20px;
848     }
849     .group-recommend h3 {
850       font-size: 16px;
851     }
852     .products .card-body {
853       padding: 8px 0px 10px;
854     }
855     .moreresult {
856       padding: 10px 20px;
857     }
858   }
859 </style>
860  <style type="text/css">
861         div.advertisement-placeholder {
862             text-align: center;
863             padding-bottom: 20px;
864             display: flex;
865             flex-direction: column;
866             justify-content: center;
867         }
868         div.advertisement-text p {
869             margin: 0;
870             font-family: Open Sans;
871             font-style: normal;
872             font-weight: normal;
873             font-size: 10px;
874             line-height: 20px;
875             color: #999999;
876         }
877         div.advertisement-banner {
878             margin: 0px auto;
879         }
880         div#div-gpt-ad-billboard-placeholder {
881             width: 996px;
882             margin: 0 auto;
883             background: #F5F5F5;
884             padding-bottom: unset !important;
885             min-height: 200px;
886         }
887         div#div-gpt-ad-lb-placeholder {
888             background: #F5F5F5;
889             padding-bottom: unset !important;
890             min-height: 280px;
891         }
892         .faq-section{
893             max-width:1200px;
894             margin:50px auto;
895             padding:40px 20px;
896             position:relative;
897             background-color: rgba(0, 0, 0, 0.1);
898             backdrop-filter: blur(25px);
899             border-radius: 20px;
900             }
901         
902         .faq-section::before{
903             content:"";
904             position:absolute;
905             top:0;left:50%;
906             transform:translateX(-50%);
907             width:80%;
908             height:2px;
909             background:linear-gradient(90deg,transparent,#00eeff,transparent)
910             }
911             
912         .faq-section h2{
913             text-align:center;
914             font-size:34px;font-weight:700;
915             margin-bottom:50px;
916             background: linear-gradient(135deg, #00eeff, #00eeff, #00eeff);
917             -webkit-background-clip:text;
918             -webkit-text-fill-color:transparent;
919             background-clip:text;
920             font-family:"Poppins",sans-serif;letter-spacing:1px
921         }
922         
923         .faq-container{
924             display:flex;
925             flex-direction:column;
926             gap:25px
927         }
928         
929         .faq-item{
930             background:linear-gradient(145deg,#0a0a0a,#1a1a1a);
931             border:2px solid #00ccff;
932             border-radius:20px;overflow:hidden;
933             transition:all .4s ease;box-shadow:0 5px 20px rgba(0,0,0,0.5)
934         }
935         
936         .faq-item:hover{
937             border-color:#00ccff;
938             transform:translateX(10px);
939             box-shadow:0 12px 35px rgba(253, 4, 4, 0.25)
940         }
941 
942         .faq-question{width:100%;
943             padding:28px 35px;background:transparent;
944             color:#ffffff;
945             font-size:18px;
946             font-weight:600;
947             text-align:left;
948             border:none;cursor:pointer;
949             display:flex;
950             justify-content:space-between;
951             align-items:center;
952             font-family:"Poppins",sans-serif;
953             transition:all .3s ease
954         }
955         
956         .faq-question:hover{
957             color:#00eeff
958         }
959         
960         .faq-question::after{
961             content:'+';
962             font-size:32px;
963             font-weight:300;
964             transition:all .4s ease;
965             color:#00eeff;
966             width:40px;
967             height:40px;
968             display:flex;
969             align-items:center;
970             justify-content:center;
971             border:2px solid #00ccff;border-radius:50%;
972             background:rgba(0, 0, 0, 0.1)
973         }
974         
975         .faq-item.active .faq-question::after{
976             transform:rotate(135deg);
977             background:linear-gradient(135deg,#00ccff,#00ccff);
978             color:#000;border-color:transparent
979         }
980         
981         .faq-answer{
982             max-height:0;
983             overflow:hidden;
984             transition:max-height .5s ease,padding .5s ease;
985             background:linear-gradient(180deg,rgba(253,228,4,0.05),transparent);
986             padding:0 35px
987         }
988         
989         .faq-item.active .faq-answer{
990             max-height:800px;padding:30px 35px;
991             border-top:1px solid rgba(253, 4, 4, 0.3)
992         }
993         
994         .faq-answer p{
995             color:#e0e0e0;
996             font-size:16px;
997             line-height:2;
998             margin:0;
999             font-family:"Poppins",sans-serif
1000         }
1001 
1002         @media
1003             (max-width:768px)
1004         {
1005         
1006         .faq-section
1007             {padding:30px 15px}
1008         
1009         .faq-section h2
1010             {font-size:26px}
1011         
1012         .faq-question
1013             {font-size:16px;
1014             padding:22px 25px}
1015         
1016         .faq-question::after
1017             {width:35px;
1018             height:35px;
1019             font-size:28px}
1020         
1021         .faq-answer
1022             {padding:0 25px}
1023         
1024         .faq-item.active .faq-answer
1025             {padding:25px}
1026         
1027         .faq-item:hover
1028             {transform:translateX(5px)}
1029             }
1030     </style>
1031 <div id="search-popup">
1032   <div id="search-input" class="row">
1033     <div class="container w-100">
1034       <form
1035         action="/search"
1036         method="get"
1037         role="search"
1038         class="search search-modal__form d-flex justify-content-between"
1039       >
1040         <svg xmlns="images/logo-jkt8.png" width="20" height="20" viewBox="0 0 20 20" fill="none">
1041   <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"/>
1042 </svg>
1043 
1044         <input type="hidden" name="type" value="product">
1045         <input
1046           type="text"
1047           id="search-type"
1048           name="q"
1049           class="search-popup"
1050           placeholder="Gifts that linger: Uncover treasures for cherished moments."
1051         >
1052         <div class="close-search"><svg xmlns="images/logo-jkt8.png" width="18" height="18" viewBox="0 0 18 18" fill="none">
1053   <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"/>
1054 </svg>
1055 </div>
1056         <button id="search-btn">Search</button>
1057       </form>
1058     </div>
1059   </div>
1060   <div id="search-result" class="container m-auto">
1061     <div class="container p-0">
1062       <div class="group-promotion">
1063         <div class="resultsearch">
1064           <div class="row results">
1065             <div class="col-12 col-lg-6 mb-3 mb-lg-0">
1066               <label>SUGGESTIONS</label>
1067               <ul class="result_collection"></ul>
1068             </div>
1069             <div class="col-12 col-lg-6">
1070               <label>PRODUCTS</label>
1071               <ul class="result_product"></ul>
1072             </div>
1073           </div>
1074           <div class="d-flex justify-content-between moreresult m-0">
1075             <p>Search for<span></span></p>
1076             <svg version="1.1" xmlns="images/logo-jkt8.png" width="32" height="32" viewBox="0 0 32 32">
1077 <title>icon-arrow-right</title>
1078 <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>
1079 </svg>
1080           </div>
1081         </div>
1082       </div>
1083       <div class="group-recent hide">
1084         <h3>RECENT SEARCH</h3>
1085         <span class="delete-all-history">Hapus riwayat</span>
1086         <ul class="last-search"></ul>
1087       </div>
1088       <div class="group-recommend">
1089         <h3>YOU MAY ALSO LIKE</h3>
1090         
1091         
1092           <div class="row popup-recommend c-products-grid infinite-case product-multi-">
1093             <div class="swiper-wrapper justify-content-between" style="margin-left:1px;">
1094               
1095                 
1096                   <div class="swiper-slide card">
1097                     
1098 
1099 
1100 
1101 <div class="products" data-lazy="false">
1102   <div class="bg-products">
1103     <div class="wishlist-toggle" data-product-handle="mid-autumn-of-love-mooncake">
1104       <svg xmlns="images/logo-jkt8.png" width="24" height="21" viewBox="0 0 24 21" fill="none">
1105   <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
11056 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"/>
1106 </svg>
1107 
1108     </div>
1109     <a href="/products/mid-autumn-of-love-mooncake">
1110       
1111       <div class="product-card-img-container p-0 position-relative">
1112         
1113         <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">
1114       </div>
1115       <div class="card-body product-card-info">
1116         <h5 class="h5 mb-0">
1117           Mid Autumn of Love Mooncake
1118         </h5>
1119         <div class="product-card-price">
1120           
1121           <div class="product-price-sale">
1122             <s class="product-card-price-before card-money">Rp 588.000</s>
1123             <span class="product-card-discount small">	
1124               (-40%)
1125             </span> 	
1126           </div>
1127           
1128           
1129           
1130           <div class="price-discount">
1131             <h4 class="product-card-price-after card-money">Rp 348.000</h4>
1132           </div>
1133           
1134           
1135           
1136           
1137           
1138         </div>
1139         
1140       </div>
1141     </a>
1142   </div>
1143   
1144 </div>
1145 
1146                   </div>
1147                 
1148               
1149                 
1150                   <div class="swiper-slide card">
1151                     
1152 
1153 
1154 
1155 <div class="products" data-lazy="false">
1156   <div class="bg-products">
1157     <div class="wishlist-toggle" data-product-handle="mid-autumn-of-joy-mooncake">
1158       <svg xmlns="images/logo-jkt8.png" width="24" height="21" viewBox="0 0 24 21" fill="none">
1159   <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.
115911233C11.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"/>
1160 </svg>
1161 
1162     </div>
1163     <a href="/products/mid-autumn-of-joy-mooncake">
1164       
1165       <div class="product-card-img-container p-0 position-relative">
1166         
1167         <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">
1168       </div>
1169       <div class="card-body product-card-info">
1170         <h5 class="h5 mb-0">
1171           Mid Autumn of Joy Mooncake
1172         </h5>
1173         <div class="product-card-price">
1174           
1175           <div class="product-price-sale">
1176             <s class="product-card-price-before card-money">Rp 888.000</s>
1177             <span class="product-card-discount small">	
1178               (-33%)
1179             </span> 	
1180           </div>
1181           
1182           
1183           
1184           <div class="price-discount">
1185             <h4 class="product-card-price-after card-money">Rp 588.000</h4>
1186           </div>
1187           
1188           
1189           
1190           
1191           
1192         </div>
1193         
1194       </div>
1195     </a>
1196   </div>
1197   
1198 </div>
1199 
1200                   </div>
1201                 
1202               
1203                 
1204                   <div class="swiper-slide card">
1205                     
1206 
1207 
1208 
1209 <div class="products" data-lazy="false">
1210   <div class="bg-products">
1211     <div class="wishlist-toggle" data-product-handle="mid-autumn-of-fortune-mooncake">
1212       <svg xmlns="images/logo-jkt8.png" width="24" height="21" viewBox="0 0 24 21" fill="none">
1213   <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.
121311233C11.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"/>
1214 </svg>
1215 
1216     </div>
1217     <a href="/products/mid-autumn-of-fortune-mooncake">
1218       
1219       <div class="product-card-img-container p-0 position-relative">
1220         
1221         <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">
1222       </div>
1223       <div class="card-body product-card-info">
1224         <h5 class="h5 mb-0">
1225           Mid Autumn of Fortune Mooncake
1226         </h5>
1227         <div class="product-card-price">
1228           
1229           <div class="product-price-sale">
1230             <s class="product-card-price-before card-money">Rp 1.188.000</s>
1231             <span class="product-card-discount small">	
1232               (-33%)
1233             </span> 	
1234           </div>
1235           
1236           
1237           
1238           <div class="price-discount">
1239             <h4 class="product-card-price-after card-money">Rp 788.000</h4>
1240           </div>
1241           
1242           
1243           
1244           
1245           
1246         </div>
1247         
1248       </div>
1249     </a>
1250   </div>
1251   
1252 </div>
1253 
1254                   </div>
1255                 
1256               
1257                 
1258                   <div class="swiper-slide card">
1259                     
1260 
1261 
1262 
1263 <div class="products" data-lazy="false">
1264   <div class="bg-products">
1265     <div class="wishlist-toggle" data-product-handle="mid-autumn-festival-mooncake">
1266       <svg xmlns="images/logo-jkt8.png" width="24" height="21" viewBox="0 0 24 21" fill="none">
1267   <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.
126711233C11.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"/>
1268 </svg>
1269 
1270     </div>
1271     <a href="/products/mid-autumn-festival-mooncake">
1272       
1273       <div class="product-card-img-container p-0 position-relative">
1274         
1275         <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">
1276       </div>
1277       <div class="card-body product-card-info">
1278         <h5 class="h5 mb-0">
1279           Mid Autumn Festival Mooncake
1280         </h5>
1281         <div class="product-card-price">
1282           
1283           <div class="product-price-sale">
1284             <s class="product-card-price-before card-money">Rp 1.288.000</s>
1285             <span class="product-card-discount small">	
1286               (-23%)
1287             </span> 	
1288           </div>
1289           
1290           
1291           
1292           <div class="price-discount">
1293             <h4 class="product-card-price-after card-money">Rp 988.000</h4>
1294           </div>
1295           
1296           
1297           
1298           
1299           
1300         </div>
1301         
1302       </div>
1303     </a>
1304   </div>
1305   
1306 </div>
1307 
1308                   </div>
1309                 
1310               
1311                 
1312                   <div class="swiper-slide card">
1313                     
1314 
1315 
1316 
1317 <div class="products" data-lazy="false">
1318   <div class="bg-products">
1319     <div class="wishlist-toggle" data-product-handle="the-jade-bouquet">
1320       <svg xmlns="images/logo-jkt8.png" width="24" height="21" viewBox="0 0 24 21" fill="none">
1321   <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.
132111233C11.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"/>
1322 </svg>
1323 
1324     </div>
1325     <a href="/products/the-jade-bouquet">
1326       
1327       <div class="product-card-img-container p-0 position-relative">
1328         
1329         <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">
1330       </div>
1331       <div class="card-body product-card-info">
1332         <h5 class="h5 mb-0">
1333           The Jade Bouquet
1334         </h5>
1335         <div class="product-card-price">
1336           
1337           <div class="product-price-sale">
1338             <s class="product-card-price-before card-money">Rp 435.000</s>
1339             <span class="product-card-discount small">	
1340               (-34%)
1341             </span> 	
1342           </div>
1343           
1344           
1345           
1346           <div class="price-discount">
1347             <h4 class="product-card-price-after card-money">Rp 285.000</h4>
1348           </div>
1349           
1350           
1351           
1352           
1353           
1354         </div>
1355         
1356       </div>
1357     </a>
1358   </div>
1359   
1360 </div>
1361 
1362                   </div>
1363                 
1364               
1365                 
1366                   <div class="swiper-slide card">
1367                     
1368 
1369 
1370 
1371 <div class="products" data-lazy="false">
1372   <div class="bg-products">
1373     <div class="wishlist-toggle" data-product-handle="the-selena-bouquet">
1374       <svg xmlns="images/logo-jkt8.png" width="24" height="21" viewBox="0 0 24 21" fill="none">
1375   <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.
137511233C11.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"/>
1376 </svg>
1377 
1378     </div>
1379     <a href="/products/the-selena-bouquet">
1380       
1381       <div class="product-card-img-container p-0 position-relative">
1382         
1383         <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">
1384       </div>
1385       <div class="card-body product-card-info">
1386         <h5 class="h5 mb-0">
1387           The Selena Bouquet
1388         </h5>
1389         <div class="product-card-price">
1390           
1391           <div class="product-price-sale">
1392             <s class="product-card-price-before card-money">Rp 335.000</s>
1393             <span class="product-card-discount small">	
1394               (-29%)
1395             </span> 	
1396           </div>
1397           
1398           
1399           
1400           <div class="price-discount">
1401             <h4 class="product-card-price-after card-money">Rp 235.000</h4>
1402           </div>
1403           
1404           
1405           
1406           
1407           
1408         </div>
1409         
1410       </div>
1411     </a>
1412   </div>
1413   
1414 </div>
1415 
1416                   </div>
1417                 
1418               
1419                 
1420                   <div class="swiper-slide card">
1421                     
1422 
1423 
1424 
1425 <div class="products" data-lazy="false">
1426   <div class="bg-products">
1427     <div class="wishlist-toggle" data-product-handle="the-viola-bouquet">
1428       <svg xmlns="images/logo-jkt8.png" width="24" height="21" viewBox="0 0 24 21" fill="none">
1429   <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.
142911233C11.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"/>
1430 </svg>
1431 
1432     </div>
1433     <a href="/products/the-viola-bouquet">
1434       
1435       <div class="product-card-img-container p-0 position-relative">
1436         
1437         <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">
1438       </div>
1439       <div class="card-body product-card-info">
1440         <h5 class="h5 mb-0">
1441           The Viola Bouquet
1442         </h5>
1443         <div class="product-card-price">
1444           
1445           <div class="product-price-sale">
1446             <s class="product-card-price-before card-money">Rp 385.000</s>
1447             <span class="product-card-discount small">	
1448               (-25%)
1449             </span> 	
1450           </div>
1451           
1452           
1453           
1454           <div class="price-discount">
1455             <h4 class="product-card-price-after card-money">Rp 285.000</h4>
1456           </div>
1457           
1458           
1459           
1460           
1461           
1462         </div>
1463         
1464       </div>
1465     </a>
1466   </div>
1467   
1468 </div>
1469 
1470                   </div>
1471                 
1472               
1473                 
1474                   <div class="swiper-slide card">
1475                     
1476 
1477 
1478 
1479 <div class="products" data-lazy="false">
1480   <div class="bg-products">
1481     <div class="wishlist-toggle" data-product-handle="the-minerva-bouquet">
1482       <svg xmlns="images/logo-jkt8.png" width="24" height="21" viewBox="0 0 24 21" fill="none">
1483   <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.
148311233C11.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"/>
1484 </svg>
1485 
1486     </div>
1487     <a href="/products/the-minerva-bouquet">
1488       
1489       <div class="product-card-img-container p-0 position-relative">
1490         
1491         <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">
1492       </div>
1493       <div class="card-body product-card-info">
1494         <h5 class="h5 mb-0">
1495           The Minerva Bouquet
1496         </h5>
1497         <div class="product-card-price">
1498           
1499           <div class="product-price-sale">
1500             <s class="product-card-price-before card-money">Rp 385.000</s>
1501             <span class="product-card-discount small">	
1502               (-25%)
1503             </span> 	
1504           </div>
1505           
1506           
1507           
1508           <div class="price-discount">
1509             <h4 class="product-card-price-after card-money">Rp 285.000</h4>
1510           </div>
1511           
1512           
1513           
1514           
1515           
1516         </div>
1517         
1518       </div>
1519     </a>
1520   </div>
1521   
1522 </div>
1523 
1524                   </div>
1525                 
1526               
1527                 
1528                   <div class="swiper-slide card">
1529                     
1530 
1531 
1532 
1533 <div class="products" data-lazy="false">
1534   <div class="bg-products">
1535     <div class="wishlist-toggle" data-product-handle="congraduations-bouquet">
1536       <svg xmlns="images/logo-jkt8.png" width="24" height="21" viewBox="0 0 24 21" fill="none">
1537   <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.
153711233C11.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"/>
1538 </svg>
1539 
1540     </div>
1541     <a href="/products/congraduations-bouquet">
1542       
1543       <div class="product-card-img-container p-0 position-relative">
1544         
1545         <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">
1546       </div>
1547       <div class="card-body product-card-info">
1548         <h5 class="h5 mb-0">
1549           Congraduations Bouquet
1550         </h5>
1551         <div class="product-card-price">
1552           
1553           <div class="product-price-sale">
1554             <s class="product-card-price-before card-money">Rp 380.000</s>
1555             <span class="product-card-discount small">	
1556               (-25%)
1557             </span> 	
1558           </div>
1559           
1560           
1561           
1562           <div class="price-discount">
1563             <h4 class="product-card-price-after card-money">Rp 285.000</h4>
1564           </div>
1565           
1566           
1567           
1568           
1569           
1570         </div>
1571         
1572       </div>
1573     </a>
1574   </div>
1575   
1576 </div>
1577 
1578                   </div>
1579                 
1580               
1581                 
1582                   <div class="swiper-slide card">
1583                     
1584 
1585 
1586 
1587 <div class="products" data-lazy="false">
1588   <div class="bg-products">
1589     <div class="wishlist-toggle" data-product-handle="grad-gorgeous-bouquet">
1590       <svg xmlns="images/logo-jkt8.png" width="24" height="21" viewBox="0 0 24 21" fill="none">
1591   <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.0726 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.
159111233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/>
1592 </svg>
1593 
1594     </div>
1595     <a href="/products/grad-gorgeous-bouquet">
1596       
1597       <div class="product-card-img-container p-0 position-relative">
1598         
1599         <img class="product-card-img"  lazy="false" src="//outerbloom.com/cdn/shop/files/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">
1600       </div>
1601       <div class="card-body product-card-info">
1602         <h5 class="h5 mb-0">
1603           Grad & Gorgeous Bouquet
1604         </h5>
1605         <div class="product-card-price">
1606           
1607           <div class="product-price-sale">
1608             <s class="product-card-price-before card-money">Rp 380.000</s>
1609             <span class="product-card-discount small">	
1610               (-25%)
1611             </span> 	
1612           </div>
1613           
1614           
1615           
1616           <div class="price-discount">
1617             <h4 class="product-card-price-after card-money">Rp 285.000</h4>
1618           </div>
1619           
1620           
1621           
1622           
1623           
1624         </div>
1625         
1626       </div>
1627     </a>
1628   </div>
1629   
1630 </div>
1631 
1632                   </div>
1633                 
1634               
1635             </div>
1636           </div>
1637         
1638       </div>
1639     </div>
1640   </div>
1641 
1642   <div class="site-overlay" style="display: none"></div>
1643 </div>
1644 
1644<script>
1645   
1646   var swiper = new Swiper('.popup-recommend', {
1647       slidesPerView : 4, 
1648       spaceBetween: 30,
1649       lazy: true ,                            
1650       speed: 300,
1651       breakpoints: {
1652         // when window width is <= 576px
1653         576: {
1654             slidesPerView: 2,
1655               spaceBetween: 10,
1656             freeMode: true,
1657             resistance : true,
1658             resistanceRatio : 0,
1659             freeModeMomentumRatio : 0.45,
1660             freeModeMomentumVelocityRatio : 1.5
1661         },
1662         768: {
1663               slidesPerView: 2,
1664               spaceBetween: 10
1665             },
1666         992: {
1667               slidesPerView: 3,
1668               spaceBetween: 20
1669         }
1670       }
1671   });
1672 
1673   const searchContainer = $("#search-popup")
1674   const searchInput = $(".search-popup")
1675   const result_collection = $('.result_collection')
1676   const result_product = $('.result_product')
1677   const resultsearch = $('.resultsearch')
1678   const resultrecommend = $(".group-recommend")
1679   const moreresult = $(".moreresult")
1680 
1681   searchInput.keyup(function(){
1682     const input = $(this).val()
1683     moreresult.find("p span").text(` “${input}”`)
1684     if(input.length > 2) {
1685       $(".close-search").show()
1686       const url = `https://outerbloom.com/search/suggest.json?resources[limit]=10&resources[limit_scope]=each&resources[type]=collection,product&q=${input}`
1687       $.ajax({
1688         type: 'GET',
1689         url,
1690         beforeSend: function() {
1691             // setting a timeout
1692             // $(placeholder).addClass('loading');
1693         },
1694         success: function(response) {
1695             resultsearch.show()
1696             resultrecommend.hide()
1697             result_collection.html("")
1698             result_product.html("")
1699             const collections = response.resources.results.collections
1700             const products = response.resources.results.products
1701             let collection_length = collections.length
1702             let product_length = products.length
1703             // if(collections.length > 5) {
1704             //   collection_length = 5
1705             // }
1706             // if(products.length > 5) {
1707             //   product_length = 5
1708             // }
1709             for(let i=0;i<collection_length;i++){
1710               const title = collections[i].title
1711               const url = collections[i].url
1712               let html_collection
1713               if(!title.includes('AIA') && !title.includes('AXA') && !title.includes('WOM') && !title.includes('Upsell')) {
1714                 html_collection = `
1715                 <li class="item" data-title="${title}">
1716                   <a href="${url}" data-type="collection" class="item_url" data-title="${title}" data-url="${url}">${title}</a>
1717                 </li>
1718                 `
1719               }
1720               result_collection.append(html_collection)
1721             }
1722             for(let i=0;i<product_length;i++){
1723               const title = products[i].title
1724               const url = products[i].url
1725               const image = products[i].featured_image.url
1726               const vendor = products[i].vendor
1727               let html_product
1728               if(vendor !== 'AIA' && vendor !== 'AXA' && vendor !== 'WOM Finance' && !title.includes('Extra Shipping Cost') && !title.includes('[US]') && !title.includes('Rp')){
1729                 html_product = `
1730                 <li class="item" data-vendor="${vendor}">
1731                   <a href="${url}" class="item_url" data-type="product" data-title="${title}" data-url="${url}">
1732                     <img src="${image}" alt="${title}" style="width: 70px;vertical-align: middle;margin-right: 20px;"><span>${title}</span>
1733                   </a>
1734                 </li>
1735                 `
1736               }
1737               result_product.append(html_product)
1738             }
1739         },
1740         error: function(xhr) { // if error occured
1741             alert("Error occured.please try again");
1742         },
1743         complete: function(response) {
1744             // $(placeholder).removeClass('loading');
1745         },
1746         dataType: 'JSON'
1747       });
1748     } else {
1749       result_collection.html("")
1750       result_product.html("")
1751       
1752       resultsearch.hide()
1753       resultrecommend.show()
1754     }
1755   })
1756 
1757   moreresult.click(function(){
1758     $("#search-btn").trigger("click");
1759   })
1760 
1761   $(".close-search").click(function(){
1762     $(this).hide()
1763     searchInput.val("")
1764     searchInput.focus()
1765     resultsearch.hide()
1766     resultrecommend.show()
1767   })
1768 
1769   function setCookie(name,value,days) {
1770     var expires = "";
1771     if (days) {
1772       var date = new Date();
1773       date.setTime(date.getTime() + (days*24*60*60*1000));
1774       expires = "; expires=" + date.toUTCString();
1775     }
1776     document.cookie = name + "=" + (value || "")  + expires + "; path=/";
1777   }
1778   function getCookie(name) {
1779     var nameEQ = name + "=";
1780     var ca = document.cookie.split(';');
1781     for(var i=0;i < ca.length;i++) {
1782       var c = ca[i];
1783       while (c.charAt(0)==' ') c = c.substring(1,c.length);
1784       if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
1785     }
1786     return null;
1787   }
1788   let last_search_name = []
1789   let last_search_url = []
1790   $(".group-recent").hide()
1791   if(getCookie("last_search_name") != null && getCookie("last_search_url") != null){
1792     if(getCookie("last_search_name") != "" && getCookie("last_search_url") != ""){
1793       $(".group-recent").show()
1794       last_search_name = getCookie("last_search_name");
1795       last_search_url = getCookie("last_search_url");
1796       const arrName = last_search_name.substring(1).split(',').reverse()
1797       const arrUrl = last_search_url.substring(1).split(',').reverse()
1798       console.log(arrName, 'Array Name')
1799       console.log(arrUrl, 'Array Url')
1800       let length = arrName.length
1801       if(arrName.length > 5) {
1802         length = 5
1803       }
1804       for(let n=0;n<length;n++){
1805         let html2 = `<li><svg viewBox="0 0 24 24" xmlns="images/logo-jkt8.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]}">
1805${arrName[n]}</a><span data-title="${arrName[n]}" data-url="${arrUrl[n]}"></span></li>`
1806         $(".group-recent ul").append(html2)
1807       }
1808     }
1809   }
1810   console.log(last_search_name, 'Name')
1811   console.log(last_search_url, 'url')
1812   
1813   resultsearch.delegate(".item a", "click", function(){
1814     let name = [last_search_name]
1815     let url = [last_search_url]
1816     name.push($(this).attr('data-title'))
1817     url.push($(this).attr('data-url'))
1818     setCookie("last_search_name",name,7);
1819     setCookie("last_search_url",url,7);
1820   })
1821   
1822   $(".delete-all-history").click(function() {
1823     setCookie("last_search_name",null,0);
1824     setCookie("last_search_url",null,0);
1825     $(".last-search").hide();
1826     setTimeout(function(){
1827       location.reload();
1828     }, 500);
1829   })
1830   
1831   $("#search-trigger").click(function(){
1832     search_open()
1833   })
1834   $(".icon-search-mobile").click(function(){
1835     search_open()
1836   })
1837   $(".search-header svg").click(function(){
1838     search_close()
1839   })
1840   $(".icon-key-mobile").click(function(){
1841     search_close()
1842   })
1843 
1844   function search_open() {
1845     $("body").addClass("search-popup-open")
1846     $("#nav-mobile-icon, .search-header label, .icon-search-mobile").hide()
1847     $("#search-popup, .search-header svg, .icon-key-mobile").show()
1848     $(".search-popup").focus()
1849     $('.popup-recommend')[0].swiper.update();
1850   }
1851   function search_close() {
1852     $("body").removeClass("search-popup-open")
1853     $("#nav-mobile-icon, .search-header label, .icon-search-mobile").show()
1854     $("#search-popup, .search-header svg, .icon-key-mobile").hide()
1855     searchInput.val("")
1856     resultsearch.hide()
1857     resultrecommend.show()
1858   }
1859 
1860   $(".site-overlay").click(function(){
1861     search_close()
1862   })
1863 </script>
1863
1864 
1865 </div>
1866     </div>
1867 
1868     <div id="PageContainer" class="is-moved-by-drawerx" style="background-color: #000000;">
1869       <main class="main-content pt-0" role="main">
1870         
1871           <div id="breadcrumbProduct" class="d-none d-lg-block">
1872             <style>
1873   #breadcrumbProduct {
1874     padding: 20px 0;
1875   }
1876   #breadcrumbProduct ul {
1877       display: flex;
1878       padding: 0;
1879       list-style: none;
1880       margin: 0;
1881       gap: 12px;
1882   }
1883   #breadcrumbProduct ul li {
1884     text-transform: uppercase;
1885     margin: 0;
1886     font-size: 12px;
1887 }
1888   #breadcrumbProduct ul li a {
1889     color: #757575;
1890   }
1891 
1892   #breadcrumbProduct ul li svg {
1893     width: 10px;
1894     height: 10px;
1895     padding: 0;
1896     color: #757575;
1897     vertical-align: middle;
1898   }
1899 </style>
1900 <div class="container" style="color: #ffffff;">
1901   <ul role="navigation" aria-label="breadcrumbs">
1902     <li><a href="https://librosalfaguarajuvenil.com/" style="color: #ffffff;">JKT8</a></li>
1903     <li><svg xmlns="images/logo-jkt8.png" width="7" height="10" viewBox="0 0 7 10" fill="none">
1904     <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"/>
1905 </svg></li>
1906       <li>BANDAR SLOT</li>
1907       <li>SLOT ONLINE</li>
1908       <li>BANDAR SLOT ONLINE</li>
1909       <li>JKT8 APK Game Slot Gacor Online Link Login Resmi Terbaru</li>
1910     
1911   </ul>
1912 </div>
1913 
1914           </div>
1915         
1916 
1916<script type="application/ld+json">
1917 {
1918   "@context": "https://schema.org",
1919   "@type": "Product",
1920   "name": "JKT8 APK Game Slot Gacor Online Link Login Resmi Terbaru",
1921   "image": "images/jkt8.jpg",
1922   "description": "JKT8 adalah apk slot gacor online terbaru yang menyediakan link login resmi terupdate dengan fitur rtp permainan slot gacor tinggi gampang cuan serta banyak bonus menguntungkan.",
1923   "brand": {
1924     "@type": "Brand",
1925     "name": "JKT8"
1926   },
1927   "sku": "JKT8",
1928   "mpn": "JKT8",
1929   "url": "https://librosalfaguarajuvenil.com/",
1930   "offers": {
1931     "@type": "Offer",
1932     "url": "https://librosalfaguarajuvenil.com/",
1933     "priceCurrency": "USD",
1934     "price": "10.00",
1935     "priceValidUntil": "2025-12-25",
1936     "itemCondition": "https://schema.org/NewCondition",
1937     "availability": "https://schema.org/InStock",
1938     "seller": {
1939       "@type": "Organization",
1940       "name": "JKT8"
1941     }
1942   },
1943   "aggregateRating": {
1944     "@type": "AggregateRating",
1945     "ratingValue": "5.0",
1946     "reviewCount": 837
1947   },
1948   "review": [
1949     {
1950       "@type": "Review",
1951       "reviewRating": {
1952         "@type": "Rating",
1953         "ratingValue": "5",
1954         "bestRating": "5"
1955       },
1956       "author": {
1957         "@type": "Person",
1958         "name": "juandi"
1959       }
1960     },
1961     {
1962       "@type": "Review",
1963       "reviewRating": {
1964         "@type": "Rating",
1965         "ratingValue": "5",
1966         "bestRating": "5"
1967       },
1968       "author": {
1969         "@type": "Person",
1970         "name": "situmorang"
1971       }
1972     }
1973   ]
1974 }
1975 </script>
1975<script type="application/ld+json">
1976 {
1977   "@context": "https://schema.org",
1978   "@type": "BreadcrumbList",
1979   "itemListElement": [
1980     {
1981       "@type": "ListItem",
1982       "position": 1,
1983       "name": "JKT8",
1984       "item": "https://librosalfaguarajuvenil.com/"
1985     },
1986     {
1987       "@type": "ListItem",
1988       "position": 2,
1989       "name": "SLOT ONLINE",
1990       "item": "https://librosalfaguarajuvenil.com/"
1991     },
1992     {
1993       "@type": "ListItem",
1994       "position": 3,
1995       "name": "SLOT GACOR",
1996       "item": "https://librosalfaguarajuvenil.com/"
1997     },
1998     {
1999       "@type": "ListItem",
2000       "position": 4,
2001       "name": "BANDAR SLOT",
2002       "item": "https://librosalfaguarajuvenil.com/"
2003     },
2004     {
2005       "@type": "ListItem",
2006       "position": 5,
2007       "name": "SITUS SLOT",
2008       "item": "https://librosalfaguarajuvenil.com/"
2009     },
2010     {
2011       "@type": "ListItem",
2012       "position": 6,
2013       "name": "SLOT APK",
2014       "item": "https://librosalfaguarajuvenil.com/"
2015     },
2016     {
2017       "@type": "ListItem",
2018       "position": 7,
2019       "name": "BANDAR SLOT ONLINE",
2020       "item": "https://librosalfaguarajuvenil.com/"
2021     },
2022     {
2023       "@type": "ListItem",
2024       "position": 8,
2025       "name": "JKT8 APK Game Slot Gacor Online Link Login Resmi Terbaru",
2026       "item": "https://librosalfaguarajuvenil.com/"
2027     }
2028   ]
2029 }
2030 </script>
2030
2031
2032 <!--faq-->
2033
2034 
2034<script type="application/ld+json" id="faq-schema">
2035{
2036  "@context": "https://schema.org",
2037  "@type": "FAQPage",
2038  "mainEntity": [
2039    {
2040      "@type": "Question",
2041      "name": "Apa itu JKT8?",
2042      "acceptedAnswer": {
2043        "@type": "Answer",
2044        "text": "JKT8 merupakan platform bermain slot online terbaru yang pastinya menyediakan layanan slot deposit pulsa XL dan Telkomsel tanpa potongan selamanya dengan minimal deposit hanya 10k."
2045      }
2046    },
2047    {
2048      "@type": "Question",
2049      "name": "Apakah JKT8 bisa diakses lewat situs dan aplikasi?",
2050      "acceptedAnswer": {
2051        "@type": "Answer",
2052        "text": "JKT8 menyediakan akses lewat situs resmi dan juga apk jkt8 untuk pengguna yang ingin pengalaman lebih praktis di HP."
2053      }
2054    },
2055    {
2056      "@type": "Question",
2057      "name": "Apakah JKT8 APK aman digunakan?",
2058      "acceptedAnswer": {
2059        "@type": "Answer",
2060        "text": "JKT8 APK versi resmi menggunakan sistem keamanan yang sama dengan situs, sehingga data dan aktivitas login tetap terlindungi."
2061      }
2062    },
2063    {
2064      "@type": "Question",
2065      "name": "Apakah JKT8 dapat diakses melalui semua perangkat?",
2066      "acceptedAnswer": {
2067        "@type": "Answer",
2068        "text": "Ya. Platform ini bisa diakses melalui smartphone Android, iOS, maupun PC/laptop menggunakan browser tanpa perlu aplikasi tambahan."
2069      }
2070    },
2071    {
2072      "@type": "Question",
2073      "name": "Apakah JKT8 menyediakan layanan customer service?",
2074      "acceptedAnswer": {
2075        "@type": "Answer",
2076        "text": "Ya. Tersedia layanan customer service 24/7 melalui live chat atau kontak resmi untuk membantu dalam proses pendaftaran, deposit, maupun kendala teknis."
2077      }
2078    }
2079  ]
2080}
2081</script>
2081
2082 
2082<script type="application/ld+json">
2083 {
2084   "@context": "https://schema.org",
2085   "@type": "Organization",
2086   "name": "JKT8",
2087   "url": "https://librosalfaguarajuvenil.com/",
2088   "logo": "images/logo-jkt8.png",
2089   "sameAs": [
2090     "https://www.facebook.com/jkt8",
2091     "https://twitter.com/jkt8",
2092     "https://www.instagram.com/jkt8"
2093   ],
2094   "contactPoint": {
2095     "@type": "ContactPoint",
2096     "telephone": "+62-812-1395-3519",
2097     "contactType": "customer support",
2098     "areaServed": "ID",
2099     "availableLanguage": ["Indonesian", "English"]
2100   }
2101 }
2102 </script>
2102
2103 
2104 
2104<script type="application/ld+json">
2105 {
2106   "@context": "https://schema.org",
2107   "@type": "VideoObject",
2108   "name": "JKT8 APK Game Slot Gacor Online Link Login Resmi Terbaru",
2109   "description": "JKT8 adalah apk slot gacor online terbaru yang menyediakan link login resmi terupdate dengan fitur rtp permainan slot gacor tinggi gampang cuan serta banyak bonus menguntungkan.",
2110   "thumbnailUrl": [
2111     "images/jkt8.jpg",
2112     "images/jkt8.jpg"
2113   ],
2114   "uploadDate": "2025-09-28T04:19:10-04:00",
2115   "duration": "PT168",
2116   "contentUrl": "https://librosalfaguarajuvenil.com/"
2117 }
2118 </script>
2118
2119 
2120 
2120<script type="application/ld+json">
2121 {
2122   "@context": "https://schema.org",
2123   "@type": "BreadcrumbList",
2124   "itemListElement": [
2125     {
2126       "@type": "ListItem",
2127       "position": 1,
2128       "name": "Home",
2129       "item": "https://librosalfaguarajuvenil.com/"
2130     }
2131   ]
2132 }
2133 </script>
2133
2134 
2135 
2135<script type="application/ld+json">
2136 {
2137   "@context": "https://schema.org",
2138   "@graph": [
2139     {
2140       "@type": "Organization",
2141       "@id": "https://librosalfaguarajuvenil.com/#org",
2142       "name": "JKT8",
2143       "url": "https://librosalfaguarajuvenil.com/",
2144       "logo": "images/jkt8.jpg"
2145     },
2146     {
2147       "@type": "WebSite",
2148       "@id": "https://librosalfaguarajuvenil.com/#website",
2149       "url": "https://librosalfaguarajuvenil.com/",
2150       "name": "JKT8",
2151       "publisher": { "@id": "https://librosalfaguarajuvenil.com/#org" },
2152       "inLanguage": "id-ID",
2153       "potentialAction": {
2154         "@type": "SearchAction",
2155         "target": "https://librosalfaguarajuvenil.com/?s={search_term_string}",
2156         "query-input": "required name=search_term_string"
2157       }
2158     },
2159     {
2160       "@type": "SoftwareApplication",
2161       "@id": "https://librosalfaguarajuvenil.com/#app",
2162       "name": "JKT8",
2163       "applicationCategory": "GameApplication",
2164       "operatingSystem": "Android, iOS, Windows",
2165       "offers": { "@type": "Offer", "price": "0", "priceCurrency": "IDR" },
2166       "aggregateRating": { "@type": "AggregateRating", "ratingValue": 4.9, "ratingCount": 61385 }
2167     }
2168   ]
2169 }
2170 </script>
2170
2171         
2172 <div id="shopify-section-Product" class="shopify-section product-section mt-0"><link href="https://asset-jko.b-cdn.net/footer-warna.css" rel="stylesheet" type="text/css" media="all" />
2173 
2174 
2175 <style>
2176     .bg-card {
2177     background-color: #000000;
2178 }
2179     </style>
2180 
2181 <!-- /templates/product.liquid -->
2182 
2183 
2184 <!-- <div itemscope itemtype="http://schema.org/Product"> -->
2185 
2186 
2187 <div class="product-standing-flower" data-product-type="flowerBoard">
2188   <meta itemprop="url" content="https://librosalfaguarajuvenil.com/">
2189   <meta itemprop="image" content="images/jkt8.jpg">
2190 
2191   
2192   
2193   <input id="data-sku" type="hidden" value="OBVSTF1086">
2194   <div class="product-single" style="background-image: url(https://res.cloudinary.com/dih0tpwae/image/upload/v1767518757/bg_gh1lsp.jpg); background-attachment: fixed;">
2195     <div id="product-top" class="container">
2196       <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;">
2197         <div id="product-image" class="col-lg-7 text-center">
2198           <div class="product-image">
2199             <div class="row no-gutters">
2200   
2201   <div id="product-featured-image" class="row w-100">
2202     
2203       <div id="thumb-image-product" class="col-lg-2 col-12 d-none d-lg-block">
2204         
2205         <div class="swiper-container gallery-thumbs" style="min-height: 500px">
2206           <ul class="list-unstyled slider swiper-wrapper slider-nav ProductThumbs thumbnails" id="ProductThumbsx">
2207 
2208                   <li class="swiper-slide" data-type="image">
2209                     <a
2210                       href="files/Blossom-Shine-WM.jpg"
2211                       data-standard="images/jkt8.jpg"
2212                       data-image="files/Blossom-Shine-WM.jpg"
2213                       data-position="1"
2214                       class="product-single__thumbnail"
2215                     >
2216                       <img
2217                         class="lazyload w-100"
2218                         src="images/jkt8.jpg"
2219                         alt="JKT8 APK Game Slot Gacor Online Link Login Resmi Terbaru"
2220                         width=""
2221                         height=""
2222                       >
2223                     </a>
2224                   </li>
2225                 
2226               
2227             
2228 
2229                   <li class="swiper-slide" data-type="image">
2230                     <a
2231                       href="images/jkt8.jpg"
2232                       data-standard="images/jkt8.jpg"
2233                       data-image="images/jkt8.jpg"
2234                       data-position="2"
2235                       class="product-single__thumbnail"
2236                     >
2237                       <img
2238                         class="lazyload w-100"
2239                         src="images/jkt8.jpg"
2240                         alt="JKT8 APK Game Slot Gacor Online Link Login Resmi Terbaru"
2241                         width=""
2242                         height=""
2243                       >
2244                     </a>
2245                   </li>
2246                 
2247               
2248             
2249 
2250                   <li class="swiper-slide" data-type="image">
2251                     <a
2252                       href="files/Blossom-Shine_3-WM.jpg"
2253                       data-standard="images/jkt8.jpg"
2254                       data-image="files/Blossom-Shine_3-WM.jpg"
2255                       data-position="3"
2256                       class="product-single__thumbnail"
2257                     >
2258                       <img
2259                         class="lazyload w-100"
2260                         src="images/jkt8.jpg"
2261                         alt="JKT8 APK Game Slot Gacor Online Link Login Resmi Terbaru"
2262                         width=""
2263                         height=""
2264                       >
2265                     </a>
2266                   </li>
2267                 
2268               
2269             
2270 
2271                   <li class="swiper-slide" data-type="image">
2272                     <a
2273                       href="files/Blossom-Shine_4.jpg"
2274                       data-standard="images/jkt8.jpg"
2275                       data-image="files/Blossom-Shine_4.jpg"
2276                       data-position="4"
2277                       class="product-single__thumbnail"
2278                     >
2279                       <img
2280                         class="lazyload w-100"
2281                         src="images/jkt8.jpg"
2282                         alt="JKT8 APK Game Slot Gacor Online Link Login Resmi Terbaru"
2283                         width=""
2284                         height=""
2285                       >
2286                     </a>
2287                   </li>
2288                 
2289               
2290             
2291           </ul>
2292         </div>
2293         
2294       </div>
2295     
2296     <div
2297       id="featured-image-product"
2298       class="col-lg-10 col-12 d-none d-lg-block"
2299     >
2300       <div class="swiper-container gallery-top">
2301         <div class="swiper-slide product-single__image">
2302           
2303 <div class="product-single__photos slider slider-for" id="ProductPhoto">
2304   
2305 
2306   <div class="easyzoom easyzoom--overlay easyzoom--with-thumbnails">
2307     <a href="images/jkt8.jpg">
2308       <img
2309         src="images/jkt8.jpg"
2310         alt="JKT8 APK Game Slot Gacor Online Link Login Resmi Terbaru"
2311         id="ProductPhotoImg"
2312         class="lazyload"
2313       >
2314       
2315     </a>
2316   </div>
2317 </div>
2318 
2319         </div>
2320         <div class="swiper-slide product-single__video" style="display: none">
2321           <video
2322             src="https://cdn.shopify.com/videos/c/vp/05d379ea115d41c2bd0f7d08b1496bd9/05d379ea115d41c2bd0f7d08b1496bd9.HD-1080p-7.2Mbps-24002195.mp4"
2323             playsinline
2324             loop
2325             muted
2326           ></video>
2327         </div>
2328       </div>
2329     </div>
2330   </div>
2331 
2332   <div id="featured-image-product2" class="col-12 d-lg-none">
2333     <div class="swiper-container gallery-mobile">
2334       <ul class="swiper-wrapper">
2335 <li class="swiper-slide img">
2336               
2337                 <img
2338                   class="swiper-lazy"
2339                   src="images/jkt8.jpg"
2340                   data-src="images/jkt8.jpg"
2341                   alt="JKT8 APK Game Slot Gacor Online Link Login Resmi Terbaru"
2342                   width=""
2343                   height=""
2344                 >
2345               
2346             </li>
2347           
2348         
2349 <li class="swiper-slide img">
2350               
2351                 <img
2352                   class="swiper-lazy"
2353                   src="images/jkt8.jpg"
2354                   data-src="images/jkt8.jpg"
2355                   alt="JKT8 APK Game Slot Gacor Online Link Login Resmi Terbaru"
2356                   width=""
2357                   height=""
2358                 >
2359               
2360             </li>
2361           
2362         
2363 <li class="swiper-slide img">
2364               
2365                 <img
2366                   class="swiper-lazy"
2367                   src="images/jkt8.jpg"
2368                   data-src="images/jkt8.jpg"
2369                   alt="JKT8 APK Game Slot Gacor Online Link Login Resmi Terbaru"
2370                   width=""
2371                   height=""
2372                 >
2373               
2374             </li>
2375           
2376         
2377 <li class="swiper-slide img">
2378               
2379                 <img
2380                   class="swiper-lazy"
2381                   src="images/jkt8.jpg"
2382                   data-src="images/jkt8.jpg"
2383                   alt="JKT8 APK Game Slot Gacor Online Link Login Resmi Terbaru"
2384                   width=""
2385                   height=""
2386                 >
2387               
2388             </li>
2389           
2390         
2391       </ul>
2392       
2393         <div class="swiper-button-prev"><svg class="icon icon-chevron-left" xmlns="images/logo-jkt8.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>
2394         <div class="swiper-button-next">
2394<svg xmlns="images/logo-jkt8.png" width="7" height="10" viewBox="0 0 7 10" fill="none">
2395     <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"/>
2396 </svg></div>
2397 
2398         <!-- Add Pagination -->
2399         <div class="swiper-pagination"></div>
2400       
2401     </div>
2402   </div>
2403 
2404   <div class="product-m-pageleb-video col-12 text-center d-lg-none">
2405     <!-- product video -->
2406     <style>
2407       .view-video{display:block; margin:auto; padding:5px 10px;font-size:16px;font-weight:bold;border:2px solid #ffffff;background:#fff;}
2408       .view-video .icon-play{fill:#ffffff;vertical-align: middle;}
2409       .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;}
2410       .close-video{position:absolute;right:9px; top:8%;z-index:2;padding:5px;}
2411       .close-video .icon{width:30px;height:30px;}
2412       /*responsive iframe */
2413       .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);}
2414       .video-container iframe {position: absolute;top:60%;left: 0;width: 100%;height: 100%;}
2415 
2416       .youtube {
2417         background-color: #000;
2418         margin-bottom: 30px;
2419         position: relative;
2420         padding-top: 56.25%;
2421         overflow: hidden;
2422         cursor: pointer;
2423         width: 100%;
2424       }
2425       .swiper-slide .youtube {
2426         max-width: 480px;
2427       }
2428       .youtube img {
2429         width: 100%;
2430         top: -16.82%;
2431         left: 0;
2432         opacity: 0.7;
2433       }
2434       .youtube .play-button {
2435         width: 90px;
2436         height: 60px;
2437         background-color: #333;
2438         box-shadow: 0 0 30px rgba( 0,0,0,0.6 );
2439         z-index: 1;
2440         opacity: 0.8;
2441         border-radius: 6px;
2442       }
2443       .youtube .play-button:before {
2444         content: "";
2445         border-style: solid;
2446         border-width: 15px 0 15px 26.0px;
2447         border-color: transparent transparent transparent #fff;
2448       }
2449       .youtube img,
2450       .youtube .play-button {
2451         cursor: pointer;
2452       }
2453       .youtube img,
2454       .youtube iframe,
2455       .youtube .play-button,
2456       .youtube .play-button:before {
2457         position: absolute;
2458       }
2459       .youtube .play-button,
2460       .youtube .play-button:before {
2461         top: 50%;
2462         left: 50%;
2463         transform: translate3d( -50%, -50%, 0 );
2464       }
2465       .youtube iframe {
2466         height: 100%;
2467         width: 100%;
2468         top: 0;
2469         left: 0;
2470       }
2471     </style>
2472 
2473     
2474   </div>
2475 </div>
2476 
2477 <div class="product-desc-add position-relative d-none d-lg-block m-0">
2478 
2479 </div>
2480 
2481 
2481<script>
2482   if ($(window).width() < 991) {
2483     var direction = 'horizontal'
2484   } else {
2485     var direction = 'vertical'
2486     $(".gallery-thumbs").height($("#ProductPhotoImg").height())
2487   }
2488   var swiper = new Swiper('.gallery-thumbs', {
2489     
2490     direction,
2491     slidesPerView: 4.5,
2492     spaceBetween: 12,
2493     navigation: {
2494       nextEl: '.swiper-button-next',
2495       prevEl: '.swiper-button-prev',
2496     }
2497   });
2498   
2499   var swiper = new Swiper('.gallery-mobile', {
2500     //loop: true,
2501     lazy: true,
2502     speed: 300,
2503     resistance : true,
2504     resistanceRatio : 0,
2505     freeModeMomentumRatio : 0.45,
2506     freeModeMomentumVelocityRatio : 1.5,
2507     navigation: {
2508       nextEl: '.swiper-button-next',
2509       prevEl: '.swiper-button-prev',
2510     },
2511     pagination: {
2512       el: '.swiper-pagination'
2513     },
2514     useCSS3Transforms: false,
2515     loop: false,
2516     on: {
2517       init: function () {
2518         console.log('swiper initialized');
2519         var currentVideo =  $("[data-swiper-slide-index=" + this.realIndex + "]").find("video");
2520         currentVideo.trigger('play');
2521       },
2522     },
2523   });
2524 
2525   /* GET ALL VIDEOS */
2526   var sliderVideos = $(".swiper-slide video");
2527   
2528   /* SWIPER API - Event will be fired after animation to other slide (next or previous) */
2529   swiper.on('slideChange', function () {
2530     console.log('slide changed');
2531     /* stop all videos  */
2532     sliderVideos.each(function( index ) {
2533       this.currentTime = 0;
2534     });
2535   
2536     /* SWIPER GET CURRENT AND PREV SLIDE (AND The VIDEO INSIDE) */
2537     var prevVideo =  $(`[data-swiper-slide-index="${this.previousIndex}]"`).find("video");
2538     var currentVideo =  $(`[data-swiper-slide-index="${this.realIndex}"]`).find("video");
2539     prevVideo.trigger('stop');
2540     currentVideo.trigger('play');
2541   });
2542   
2543 
2544   $("[data-video]").click(function(){
2545     const file = $(this).data("video")
2546     $(".product-single__video").show()
2547     $(".product-single__image").hide()
2548     $(".product-single__video").find("video").attr("src", file)
2549     $(".product-single__video").find("video")[0].play();
2550   })
2551   $("[data-image]").click(function(){
2552     $(".product-single__video").hide()
2553     $(".product-single__image").show()
2554     $(".product-single__video").find("video")[0].pause();
2555   })
2556 
2557   $("#product-image .swiper-slide").each(function(){
2558     let width = $(this).width()
2559     $(this).height(width)
2560   })
2561 
2562   $(window).resize(function() {
2563     $("#product-image .swiper-slide").each(function(){
2564       let width = $(this).width()
2565       $(this).height(width)
2566     })
2567   })
2568 </script>
2568
2569 
2570           </div>
2571 
2572   
2573     <div class="grid__item_product-info mb-3">
2574       <div class="c-pdp-product-info">
2575         <ul class="c-pdp-product-info__service c-pdp-product-info__service--active">
2576        <!-- artikel -->
2577             <li>
2578                JKT8 adalah apk slot gacor online terbaru yang menyediakan link login resmi terupdate dengan fitur rtp permainan slot gacor tinggi gampang cuan serta banyak bonus menguntungkan.
2579                </li>
2580           
2581           
2582           
2583           
2584         </ul>
2585       </div>
2586     </div>
2587   
2588 
2589 
2590 
2591 
2592 <style>
2593   .c-pdp-product-info__service--active {
2594     font-size: 12px;
2595     padding-left: 10px;
2596     text-align: left;
2597     max-width: 550px;
2598     margin: auto;
2599   }
2600   .c-pdp-product-info__service--active li {
2601     list-style: disc;
2602   }
2603   .c-pdp-product-info {
2604     background-color: #f5f5f5;
2605     padding: 12px;
2606     margin: 0;
2607   }
2608   .freeship em {
2609     font-style: italic;
2610     font-size: 12px !important;
2611   }
2612 
2613 
2614 </style>
2615 
2616 
2616<script>
2617   $(document).ready(function(){
2618     if ( $(".c-pdp-product-info__service li").length == 1 ) {
2619       $(".c-pdp-product-info__service").addClass("no-bullet");
2620       $(".c-pdp-product-info__service li").addClass("no-bullets");
2621     }
2622   });
2623 </script>
2623
2624 
2625   
2626 
2627 
2628 
2629   
2630 
2631   
2632 
2633 
2634             
2635           
2636         </div>
2637         <div id="product-meta" class="col-lg-5 p-0">
2638           <div class="product-meta">
2639             <style>
2640   .product-meta--review {margin-top:10px}
2641   .freeship * {font-size: 14px !important;font-style: normal;}
2642 </style>
2643 <h1 itemprop="name" class="mb-2" style="color: rgb(0, 217, 255); font-weight: bold;">JKT8 APK Game Slot Gacor Online Link Login Resmi Terbaru</h1>
2644 
2645 <div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
2646   <meta itemprop="priceCurrency" content="IDR">
2647 
2648   <link itemprop="availability" href="https://schema.org/InStock">
2649   
2649<script
2650     type="text/javascript"
2651     src="//platform-api.sharethis.com/js/sharethis.js#property=5acdc0aa3ef3c0001396fd50&product=custom-share-buttons"
2652     async="async"
2653   ></script>
2653
2654   
2655 
2656   
2657 
2658   <span class="visually-hidden">Translation missing: en.products.general.regular_price</span>
2659   
2660     <span class="visually-hidden">Translation missing: en.products.general.sale_price</span>
2661   
2662   <div class="row no-gutters mb-3">
2663     <span
2664       id="ProductPrice"
2665       class="h2 ProductPrice"
2666       itemprop="price"
2667       content="835000" style="color: #ffffff;"
2668     >
2669       Rp 10.000
2670     </span>
2671     <div class="discount-product-detail">
2672       <p id="ComparePrice" class="ComparePrice mt-2 mt-lg-0">
2673         Rp 100.000
2674       </p>
2675       <span class=" tag-discount">
2676         
2677           
2678           <span id="newDiscount" class="product-tag persentase-discount hide"> 
2679       (90%)
2680       </span><br>
2681         
2682       </span>
2683     </div>
2684   </div>
2685 
2686   <div class="row no-gutters meta-sds">
2687     <div class="col-12 mb-2 mb-lg-0 stock-info">
2688       
2689       
2690       <span
2691         id="ProductStock-Product"
2692         class="product-single__stock mb-2 hide"
2693       >
2694         
2695           
2696             
2697               
2698               Barang dikirim pada 
2699             
2700           
2701         
2702       </span>
2703 
2704       <style>
2705     .short-desc-desktop {
2706         margin-bottom: 2rem;
2707         color: white;
2708     }
2709     .short-desc ul li:nth-child(n + 4) {
2710         display: none;
2711     }
2712     .short-desc ul li.showList:nth-child(n + 4) {
2713         display: list-item;
2714     }
2715     label.more {
2716         display: none;
2717     }
2718     label.more.showMe {
2719         display: block;
2720         font-size: 12px;
2721         text-transform: uppercase;
2722         font-weight: 700;
2723         cursor: pointer;
2724     }
2725 </style>
2726 
2727     <div class="short-desc-desktop d-none d-lg-block">
2728         <div class="short-desc">
2729            
2730 <p><a href="https://librosalfaguarajuvenil.com/" style="color: white;">JKT8</a> adalah apk slot gacor online terbaru 2026 yang menyediakan link login situs game slot online resmi. Dengan fitur rtp paling gacor dan banyak promo menarik.</p>
2731 <p>Kalau lo lagi cari situs slot gacor yang aman buat akses layanan resmi, jkt8 adalah pilihan yang paling tepat. Lewat situs resmi JKT8, lo bisa langsung login dan main tanpa perlu VPN yang sering bikin koneksi jadi lemot. Selain itu, JKT8 juga menyediakan opsi akses lewat JKT8 APK buat lo yang pengen pengalaman main lebih praktis di perangkat mobile.</p>
2732 <h2>Apa Itu JKT8?</h2>
2733 <p>JKT8 adalah platform game slot online resmi yang bisa diakses lewat situs maupun aplikasi. Buat lo yang mau langsung main tanpa ribet bisa langsung masuk ke situs JKT8 yang dapat diakses lewat browser. Sementara itu, buat lo yang pengen akses lebih cepat di HP, tersedia juga apk JKT8 sebagai alternatif.</p>
2734 <p>Baik lewat website maupun aplikasi, semua sistem sudah terhubung ke server utama. Proses login dibuat simpel, cepat, dan aman, jadi lo bisa langsung masuk dan menikmati berbagai pilihan permainan slot tanpa ribet.</p>
2735 <h3>Mengapa Banyak Pengguna Memilih JKT8?</h3>
2736 <ol>
2737    <li>Akses Situs & APK Lebih Cepat</li>
2738    <p>JKT8 dioptimalkan agar tetap cepat baik diakses lewat situs maupun aplikasi. Pengguna bisa memilih login lewat browser atau jkt8 apk sesuai kebutuhan, tanpa harus khawatir soal lag atau gangguan akses.</p>
2739    <li>Sistem Login Aman & Resmi</li>
2740    <p>Proses login JKT8 menggunakan sistem keamanan modern yang melindungi data akun pengguna. Selama lo mengakses lewat situs resmi atau apk jkt8 versi asli, keamanan dan privasi tetap terjaga dengan baik.</p>
2741    <li>Pilihan Game Slot Lengkap</li>
2742    <p>JKT8 menyediakan berbagai pilihan game slot dengan tampilan menarik dan sistem yang stabil. Baik dimainkan lewat situs atau aplikasi, pengalaman main tetap konsisten dan nyaman.</p>
2743    <li>Update Event & Promo Terpusat</li>
2744    <p>Semua info promo, event, dan update terbaru bisa diakses langsung lewat situs JKT8 maupun di dalam aplikasi. Jadi pengguna jkt8 slot gak ketinggalan info penting dan bisa selalu update.</p>
2745</ol>
2746<h3>Keunggulan Situs & APK JKT8</h3>
2747<ul>
2748    <li>Bisa diakses lewat browser tanpa instal</li>
2749    <li>
2749Tersedia JKT8 APK untuk pengguna mobile</li>
2750    <li>Proses login jkt8 cepat dan aman</li>
2751    <li>Dapat dimainkan di berbagai perangkat dan browser</li>
2752    <li>Update sistem dan fitur secara otomatis</li>
2753</ul>
2754         </div>
2755         <label class="more">Show More →</label>
2756     </div><br>
2757 
2758 
2759 
2759<script>
2760     var liCount;
2761     $(document).ready(function () {
2762         $(".short-desc ul").each(function() {
2763             liCount = $(this).children("li").length;
2764             if (liCount > 3) {
2765                 $(this).parent(".short-desc").next(".more").addClass("showMe");
2766             }
2767         });
2768 
2769         $(".more").click(function () {
2770             //$(".short-desc").find("li").addClass("showList");
2771             // $(this).hide();
2772             $("#product-desc").find("ul").show()
2773             $('html, body').animate({
2774                 scrollTop: $("#product-desc").offset().top - 250
2775             }, 2000);
2776             $("#product-desc").css("height","auto");
2777             $("#more_content").remove();
2778             $(".product-spec").append("<div id='less_content' class='readmore'><span class='less_content'>Less</span></div>")
2779         });
2780     });
2781 </script>
2781
2782 
2783       
2784     </div>
2785   </div>
2786 
2787   <div id="purchaseProduct">
2788   
2789   
2790 
2791 
2792 <style>
2793   .variant-metafield {
2794     display: block!important;
2795     width: 1px;
2796     padding: 0;
2797     border-color: #fff;
2798   }
2799   .select2-results__option[aria-disabled] {
2800     display: none;
2801   }
2802 
2803   .towel-bordir {
2804     width: 100%;
2805     display: flex;
2806     align-items: center;
2807     justify-content: space-around;
2808   }
2809 </style>
2810 
2811 
2812 
2813 
2814 
2814<script>
2815   
2816   
2817 </script>
2817
2818 
2819 
2820 
2821 
2822 
2823 
2824 <select
2825   name="id[]"
2826   id="productSelect"
2827   class="product-single__variants ignore hide hide"
2828 >
2829   
2830     
2831       
2832       <option
2833         
2834           selected="selected"
2835         
2836         data-sku="OBVSTF1086"
2837         value="44083045826775"
2838       >
2839         Default Title
2840       </option>
2841 
2842     
2843   
2844 </select>
2845 
2846 
2846<script src="//outerbloom.com/cdn/shop/t/138/assets/jquery.magnific-popup.min.js?v=184369421263510081681752652422" type="text/javascript"></script>
2846
2847 
2848 
2848<script>
2849   $('.size-chart-open-popup').magnificPopup({
2850     type:'inline',
2851     midClick: true
2852   });
2853 </script>
2853
2854 
2855   
2856   
2857   
2858   <div class="upload-image-preview">
2859     
2860     
2861     
2862     
2863     
2864     <style>
2865   .file-dnd * {
2866     margin: 0;
2867     padding: 0;
2868     box-sizing: border-box;
2869   }
2870   .file-dnd {
2871     width: 100%;
2872     height: 250px;
2873     border: 1px solid #ddd;
2874     border-radius: 10px;
2875     padding: 15px;
2876     display: flex;
2877     flex-direction: column;
2878     gap: 10px;
2879     /* box-shadow: 0px 2px 10px 2px rgba(0,0,0,0.05); */
2880     margin: auto;
2881   }
2882   .file-dnd input {
2883     display: none;
2884   }
2885   .file-dnd .before-upload {
2886     border: 1px dashed #888;
2887     flex: 1;
2888     border-radius: 5px;
2889     display: flex;
2890     justify-content: center;
2891     align-items: center;
2892     text-align: center;
2893     cursor: pointer;
2894   }
2895   .file-dnd .before-upload > div {
2896     display: flex;
2897     flex-direction: column;
2898     align-items: center;
2899     gap: 8px;
2900   }
2901   .file-dnd .before-upload > div h4 {
2902     width: 150px;
2903   }
2904   .file-dnd .before-upload > div p {
2905     font-size: 12px !important;
2906     color: #555;
2907   }
2908   .file-dnd.active .before-upload {
2909     border: 1px solid #5750d9;
2910     background-color: #f5f5ff;
2911   }
2912   .file-dnd .after-upload {
2913     position: relative;
2914     display: none;
2915   }
2916   .file-dnd .after-upload img {
2917     width: 100%;
2918     border-radius: 5px;
2919     max-height: 180px;
2920     object-fit: contain;
2921     display: block;
2922   }
2923   .file-dnd .after-upload .clear-btn {
2924     position: absolute;
2925     top: 10px;
2926     right: 10px;
2927     background: rgba(0, 0, 0, 0.5);
2928     width: 15px;
2929     height: 15px;
2930     text-align: center;
2931     line-height: 15px;
2932     border-radius: 50%;
2933     color: #fff;
2934     cursor: pointer;
2935     font-size: 14px;
2936   }
2937 </style>
2938 
2939 <div
2940   class="file-dnd mb-3"
2941   
2942     style="display: none"
2943   
2944 >
2945   <label for="upload-photo">Upload your Photo:</label>
2946   <input type="file" id="upload-photo" accept="image/*">
2947   <input type="hidden" data-properties="Photo">
2948   <div class="before-upload">
2949     <div>
2950       <svg id="surface1" xmlns="images/logo-jkt8.png" width="33.053" height="41.719" viewBox="0 0 33.053 41.719">
2951   <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>
2952   <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>
2953   <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>
2954 </svg>
2955 
2956       <h4>Drag & Drop Photo file or Browse</h4>
2957       <p>Supports: JPEG, PNG, GIF, TIFF</p>
2958     </div>
2959   </div>
2960   <div class="after-upload">
2961     <div class="clear-btn">&times;</div>
2962     <img src="" width="" height="">
2963   </div>
2964 </div>
2965 
2965<script>
2966   function applyDndFile(el) {
2967     const parent = document.querySelector(".file-dnd")
2968     const beforeUploadEl = el.querySelector(".before-upload")
2969     const afterUploadEl = el.querySelector(".after-upload")
2970     const inputFile = el.querySelector("input[type=file]")
2971     const imagePreview = el.querySelector(".after-upload img")
2972     const clearBtn = el.querySelector(".after-upload .clear-btn")
2973     const inputProps = parent.querySelector("[data-properties]");
2974 
2975     async function upload(name, uri, type) {
2976       try {
2977         const filename = name.split('.')[0]
2978         let formData = new FormData(); 
2979         formData.append("file", uri);
2980         const response = await fetch(`${host}/upload?name=${filename}&dir=gift&type=${type}`, {
2981           method: "POST", 
2982           body: formData
2983         })
2984         if(response) {
2985           const res = await response.json()
2986           return res
2987         }
2988       } catch(err){
2989         console.log(err)
2990       }
2991     }
2992 
2993     function showImagePreview(img) {
2994       if(img){
2995         const blobUrl = URL.createObjectURL(img)
2996         imagePreview.src = blobUrl
2997         afterUploadEl.style.display = "block"
2998         beforeUploadEl.style.display = "none"
2999       }
3000     }
3001 
3002     beforeUploadEl.addEventListener("click", (e) => {
3003       e.preventDefault()
3004       inputFile.click()
3005     })
3006 
3007     inputFile.addEventListener("change", async (e) => {
3008       e.preventDefault()
3009       showImagePreview(e.target.files[0])
3010       var uploadData = await upload(e.target.files[0].name, e.target.files[0], e.target.files[0].type)
3011       inputProps.value = uploadData?.url
3012     })
3013 
3014     clearBtn.addEventListener("click", (e) => {
3015       afterUploadEl.style.display = "none"
3016       beforeUploadEl.style.display = "flex"
3017       inputProps.value = ""
3018     })
3019 
3020     beforeUploadEl.addEventListener("dragover", (e) => {
3021       e.preventDefault()
3022       el.classList.add("active")
3023     })
3024 
3025     beforeUploadEl.addEventListener("dragleave", (e) => {
3026       e.preventDefault()
3027       el.classList.remove("active")
3028     })
3029 
3030     beforeUploadEl.addEventListener("drop", async (e) => {
3031       e.preventDefault()
3032       el.classList.remove("active")
3033       showImagePreview(e.dataTransfer.files[0])
3034       var uploadData = await upload(e.dataTransfer.files[0].name, e.dataTransfer.files[0], e.dataTransfer.files[0].type)
3035       console.log(uploadData)
3036       inputProps.value = uploadData?.url
3037     })
3038   }
3039 
3040   applyDndFile(document.querySelector(".file-dnd"))
3041 
3042   $(document).ready(function(){
3043     $(".variant-swatch").change(function(){
3044       const v = $(this).val().toLowerCase()
3045       const list = ["photo", "custom one side", "custom two side", "small", "big"]
3046       if(list.some(item => v.includes(item))) return $(".file-dnd").show()
3047       $(".file-dnd").hide()
3048       $(".file-dnd").find("[data-properties]").val("")
3049       $(".after-upload").hide()
3050       $(".before-upload").css("display", "flex")
3051     })
3052   })
3053 </script>
3053
3054 
3055   </div>
3056   
3057     
3058     <div class="delivery-city mb-4">
3059         <a href="https://amp-jkt8.pages.dev/">
3060        <center><img src="images/logo-jkt8.png" alt="logo-daftar" style="width: 260px; margin-top: -20px;"></center></a><br>
3061   <h4 class="fw-600 text-uppercase mb-15" style="color: rgb(67, 225, 236);">SEKARANG WAKTUNYA DAFTAR AKUN BARU DI JKT8!</h4>
3062   <div class="row justify-content-between m-0">
3063     <select id="cities" class="form-control select-search" required>
3064       <option value="">Gabung dan dapatkan bonus deposit juga new member hanya di JKT8</option>
3065     </select>
3066   </div>
3067 </div>
3068 
3069 <style>
3070   @media (max-width: 768px) {
3071     .select2-search__field {
3072       pointer-events: none !important;
3073     }
3074     
3075     .select2-search {
3076       display: none !important;
3077     }
3078   }
3079 </style>
3080 
3081 
3081<script>
3082   $(document).ready(function() {
3083     // Check if mobile
3084     if (window.innerWidth <= 768) {
3085       // When cities select2 opens on mobile, remove focus from search
3086       $('#cities').on('select2:open', function() {
3087         setTimeout(function() {
3088           $('.select2-search__field').blur();
3089           $('.select2-search__field').prop('readonly', true);
3090         }, 100);
3091       });
3092     }
3093   });
3094 </script>
3094
3095 
3096  <style>
3097 .icon-img-footer {
3098     width: 80px; 
3099     padding: 0px 5px;
3100 }
3101 @media (min-width: 768px) {
3102     .icon-img-footer {
3103         width: 120px; 
3104     }
3105 }
3106 @media (min-width: 992px) {
3107     .icon-img-footer {
3108         width: 120px; 
3109     }
3110 }
3111 
3112 
3113 </style>
3114   <div id="row-delivery-date" class="row m-0 mb-3">
3115     <h4 class="fw-600 text-uppercase col-12 p-0 mb-15" style="color: rgb(67, 225, 236);">Ciptakan Kemenanganmu Dengan Putaran di Permainan Slot</h4>
3116     <div id="deliveryDate" class="m-0"></div>
3117     <div id="deliveryDateFull">
3118       <div class="">
3119         <input
3120           type="text"
3121           id="full-date"
3122           class="date-full calendarbutton btn steps-btn btn-date-time mb-0"
3123           value="Full Calendar"
3124         >
3125         <label for="full-date"><svg version="1.1" xmlns="images/logo-jkt8.png" width="32" height="32" viewBox="0 0 32 32">
3126 <title>icon-arrow-right</title>
3127 <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>
3128 </svg></label>
3129       </div>
3130       <button class="btnChangeDeliveryDate hide">Change Delivery Date</button>
3131     </div>
3132     <div class="form-group p-0">
3133       <input type="text" id="propDeliveryDate" required class="hide">
3134     </div>
3135   </div>
3136   
3137   
3138     <div id="row-delivery-time" class="row m-0 mb-3">
3139       <h4 class="text-center fw-600 text-uppercase col-12 mb-15">
3140     SEO HahaHehe 
3141 </h4>
3142       <div id="deliveryTime" class="d-flex w-100 m-0"></div>
3143       <div class="form-group p-0">
3144         <input type="text" id="propDeliveryTime" class="hide" required>
3145       </div>
3146     </div>
3147   
3148 
3149 
3150   
3151   
3152   <div id="personalizeBtn">
3153     
3154     
3155     
3156     
3157     <button
3158       class="btn text-uppercase w-100 fw-400"
3159       
3160       
3161       
3162     >
3163       
3164         customize your flower board
3165       
3166     </button>
3167     <div class="button-share-wishlist d-flex justify-content-around mt-3">
3168       <div class="button-share text-center">
3169         <p id="shareButton" class="d-flex gap-2"><span>JKT8</span><svg xmlns="images/logo-jkt8.png" width="15" height="13" viewBox="0 0 15 13" fill="none">
3170   <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"/>
3171 </svg>
3172 </p>
3173       </div>
3174       <div class="button-wishlist text-center">
3175         <p id="wishButton" class="d-flex gap-2 wishlist-toggle" data-product-handle="blossom-shine"><span>Wishlist</span><svg xmlns="images/logo-jkt8.png" width="16" height="15" viewBox="0 0 16 15" fill="none">
3176   <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"/>
3177 </svg>
3178 <!--
3179   <svg xmlns="images/logo-jkt8.png" width="34" height="30" viewBox="0 0 34 30" fill="none">
3180   <path d="M32.8333 9.23082C32.8333 4.51916 29.0142 0.699158 24.3025 0.699158C21.2 0.699158 
318018.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"/>
3181   </svg>
3182 -->
3183 </p>
3184       </div>
3185     </div>
3186   </div>
3187 </div>
3188 <div class="purchasePopup purchasePopupSpotify" style="display: none;">
3189   <div class="purchaseArea">
3190     <div class="sectionPurchase sectionPurchaseSpotify">
3191       <div class="wrapperPurchase">
3192         <div class="headerPurchase">
3193           <h3>personalize spotify photo print</h3>
3194           <a class="close-purchase-popup">
3195             <svg xmlns="images/logo-jkt8.png" width="18" height="18" viewBox="0 0 18 18" fill="none">
3196               <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>
3197             </svg>
3198           </a>
3199         </div>
3200         <div class="contentPurchase">
3201           <div class="spotifyAddons"></div>
3202         </div>
3203 
3204         <div class="purchase-button btn-addon row m-0" style="display: none;">
3205           <div class="col-12 col-lg-2 text-left mb-2 p-0">
3206             <button class="back-purchase-button back-addon text-uppercase">
3207               <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="images/logo-jkt8.png">
3208                 <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>
3209               </svg>
3210               <span>Back</span>
3211             </button>
3212           </div>
3213           <div class="col-12 col-lg-10 text-right" style="display: flex;justify-content: end;gap: 20px;">
3214             <button class="btn next-purchase-button next-addon text-uppercase">
3215               <span>continue without add-ons</span>
3216             </button>
3217           </div>
3218         </div>
3219       </div>
3220     </div>
3221   </div>
3222 </div>
3223 
3224 <style>
3225   #PBarNextFrameWrapper {
3226     display: none;
3227   }
3228   #backgroundPopup {
3229     display: none;
3230     position: fixed;
3231     _position: absolute;
3232     height: 100%;
3233     width: 100%;
3234     top: 0;
3235     left: 0;
3236     background: rgb(117 117 117 / 24%);
3237     z-index: 1;
3238   }
3239   .sectionPurchase {
3240     height: 100%;
3241     position: relative;
3242     max-width: 1344px;
3243     background-color: #fff;
3244     padding: 0;
3245     overflow: hidden; /* Changed from auto to hidden */
3246     display: flex;
3247     flex-direction: column;
3248   }
3249   .sectionPurchase.purchaseAddonSpotify {
3250     max-width: 1070px!important;
3251     max-height: 765px!important;
3252   }
3253   .sectionPurchaseBoard {
3254     max-width: 872px!important;
3255     max-height: 821px!important;
3256   }
3257   .purchaseAddonSpotify .btn-action {
3258     position: absolute;
3259     bottom: 0;
3260     left: 0;
3261     width: 100%;
3262     display: flex;
3263     gap: 10px;
3264   }
3265   .wrapperPurchase {
3266     position: relative;
3267     height: 100%;
3268     display: flex;
3269     flex-direction: column;
3270   }
3271   
3272   /* New styles for scrollable content and sticky button */
3273   .purchase-content {
3274     flex: 1;
3275     overflow-y: auto;
3276     overflow-x: hidden;
3277     padding: 20px;
3278   }
3279   
3280   .purchase-button-wrapper {
3281     position: sticky;
3282     bottom: 0;
3283     background-color: #fff;
3284     border-top: 1px solid #e0e0e0;
3285     padding: 15px 0;
3286     margin-top: auto;
3287     z-index: 10;
3288   }
3289   
3290   .purchasePopup {
3291     display: none;
3292     position: fixed;
3293     background: rgb(117 117 117 / 24%);
3294     z-index: 999;
3295     padding: 40px;
3296     font-size: 13px;
3297     top: 0;
3298     left: 0;
3299     width: 100%;
3300     height: 100%;
3301   }
3302   .popupPurchaseClose{
3303     font-size:14px;
3304     line-height:14px;
3305     right:45px;
3306     top:45px;
3307     position:absolute;
3308     color:#6fa5fd;
3309     font-weight:700;
3310     display:block;
3311     cursor: pointer;
3312   }
3313 
3314   .headerPurchase {
3315     margin-bottom: 30px;
3316     display: flex;
3317     justify-content: space-between;
3318   }
3319 
3320   .headerPurchase h3 {
3321     font-size: 16px;
3322     text-transform: uppercase;
3323   }
3324 
3325   .sectionPurchaseBoard .headerPurchase {
3326     margin-bottom: 15px;
3327   }
3328 
3329   .sectionPurchaseBoard .formAddressPurchase {
3330     padding-top: 0;
3331   }
3332 
3333   .purchaseArea {
3334     position: relative;
3335     height: 100%;
3336   }
3337 
3338   .purchaseArea h4 {
3339     width: 100%;
3340     font-size: 12px;
3341     font-weight: 600;
3342     margin-bottom: 10px;
3343     text-transform: uppercase;
3344   }
3345 
3346   .menuPurchase {
3347     margin-bottom: 30px;
3348   }
3349 
3350   .menuPurchase ul {
3351     list-style-type: none;
3352     margin: 0;
3353   }
3354 
3355   .menuPurchase ul li {
3356     display: inline-block;
3357     border: 1px solid #ffffff;
3358     padding: 5px 20px;
3359     margin-right: 5px;
3360     margin-bottom: 10px;
3361     font-size: 12px;
3362     font-weight: 400;
3363   }
3364 
3365   .menuPurchase ul li:hover, .menuPurchase ul li.selected {
3366     background-color: #ffffff;
3367     color: #ffffff;
3368   }
3369 
3370   .contentPurchase h5 {
3371       font-size: 12px;
3372       margin-bottom: 10px;
3373       font-weight: 400;
3374       overflow: hidden;
3375   }
3376 
3377   /* Card */
3378 
3379   #itemCards {
3380     max-height: 430px;
3381     overflow: auto;
3382   }
3383 
3384   .item-cards {
3385       width: 100%;
3386   }
3387   .item-card.selected {
3388       border: 1px solid #ffffff;
3389   }
3390   .item-card:hover {
3391       border: 1px solid #C4C4C4;
3392   }
3393   .item-cards .item-card {
3394     position: relative;
3395     width: calc(33% - 10px);
3396     max-width: calc(33% - 10px);
3397     flex: 0 0 calc(33% - 10px);
3398     margin-bottom: 20px;
3399   }
3400   .item-cards .item-card label,
3401   .item-addons .item-addon label {
3402       position: absolute;
3403       left: 0;
3404       width: 100%;
3405       height: 100%;
3406   }
3407   .item-cards .item-card .card-image img,
3408   .item-addons .item-addon .card-image img {
3409       display: block;
3410       width: 100%;
3411   }
3412   .item-card .card-meta,
3413   .item-addon .card-meta {
3414       padding: 10px 5px 5px;
3415   }
3416   .item-card.selected .card-meta,
3417   .item-addon.selected .card-meta,
3418   .item-card.selected .card-qty {
3419       background-color: #ffffff;
3420       color: #fff;
3421       visibility: visible!important;
3422   }
3423   .item-card:hover .card-meta,
3424   .item-addon:hover .card-meta,
3425   .item-card:hover .card-qty {
3426       background-color: #C4C4C4;
3427       color: #fff;
3428       visibility: visible!important;
3429   }
3430   .item-cards .item-card p,
3431   .item-addons .item-addon p {
3432     font-size: 12px !important;
3433     margin: 0;
3434     font-weight: 600;
3435   }
3436   .item-card .card-meta input,
3437   .item-addon .card-meta input {
3438       display: none;
3439   }
3440   .item-cards .item-card h5,
3441   .item-addons .item-addon h5 {
3442     text-transform: uppercase;
3443     max-height: 35px;
3444   }
3445 
3446   @media (max-width: 768px) {
3447     .item-cards .item-card {
3448         width: calc(50% - 10px);
3449         max-width: calc(50% - 10px);
3450         flex: 0 0 calc(50% - 10px);
3451         margin-bottom: 0;
3452     }
3453   }
3454 
3455   .card-qty {
3456     display: flex;
3457     padding: 5px;
3458     visibility: hidden;
3459     background-color: #fff !important;
3460     z-index: 999;
3461   }
3462   .card-qty a {
3463     border-width: 1px;
3464     width: 30%;
3465     cursor: pointer;
3466     text-align: center;
3467     align-self: center;
3468     height: 28px;
3469     display: block;
3470     position: relative;
3471   }
3472   .card-qty a svg {
3473     position: absolute;
3474     top: 50%;
3475     left: 50%;
3476     transform: translate(-50%, -50%);
3477     text-align: center;
3478   }
3479   input.btn-qty {
3480     border-width: 0px;
3481     border-radius: 0;
3482     background-color: #fff;
3483     -webkit-appearance: none;
3484     box-shadow: none !important;
3485     -webkit-box-shadow: none !important;
3486     -moz-box-shadow: none!important;
3487     width: 40%;
3488     border-left: 1px solid #c4c4c4;
3489     border-right: 1px solid #c4c4c4;
3490     padding: 0;
3491   }
3492 
3493   .sectionPurchaseBoard #itemAddons .item-card {
3494     width: calc(20% - 15px);
3495     max-width: calc(20% - 15px);
3496     flex: 0 0 calc(20% - 15px);
3497   }
3498 
3499   .purchase-button {
3500     width: 100%;
3501     padding: 0; /* Reset padding as it's now handled by wrapper */
3502     margin: 0;
3503   }
3504 
3505   .sectionPurchaseBoard .purchase-button {
3506     margin-top: 0 !important; /* Reset margin */
3507   }
3508 
3509   .back-purchase-button, .back-spotify {
3510       width: 139px;
3511       border: 1px solid;
3512       height: 43px;
3513   }
3514   .purchase-button .btn {
3515     width: 297px;
3516     height: 43px;
3517     background-color: #ffffff;
3518     color: #ffffff;
3519   }
3520   .purchase-button .btn[disabled] {
3521     background-color: #EEEEEE;
3522   }
3523   .back-purchase-button svg, .back-spotify svg {
3524     align-self: center;
3525     vertical-align: middle;
3526     margin-right: 10px;
3527   }
3528 
3529   #purchaseProduct .row .error {
3530     font-size: 12px !important;
3531     color: rgb(0, 140, 255);
3532     margin-top: 5px;
3533   }
3534 
3535   .reviewCardPurchase {
3536     max-width: 448px;
3537     float: right;
3538   }
3539 
3540   .addonsPurchase .addon-item {display: flex;justify-content: space-between;}
3541   .addon-item * {align-self: center;font-size: 12px;}
3542   .addon-itm-title {width: 360px;}
3543   .addon-itm-line-price {color: #757575;width: 80px;justify-content: space-between;display: flex;}
3544 
3545   .propsAddonSpotify p {
3546     margin: 0;
3547     display: flex;
3548     font-size: 12px !important;
3549     margin-bottom: 5px;
3550   }
3551   .propsAddonSpotify p span:first-child {
3552     text-transform: uppercase;
3553     font-weight: 600;
3554     -ms-flex: 0 0 150px;
3555     flex: 0 0 150px;
3556     max-width: 150px;
3557   }
3558 
3559   .addonsPurchase .addons {
3560     max-height: 250px;
3561     overflow: auto;
3562   }
3563 
3564   .btn .loading:after {
3565     content: "";
3566     display: inline-block;
3567     width: 20px;
3568     height: 20px;
3569     padding: 3px;
3570     aspect-ratio: 1;
3571     border-radius: 50%;
3572     background: #FFFFFF;
3573     --_m: conic-gradient(#0000 10%, #ffffff), linear-gradient(#ffffff 0 0) content-box;
3574     -webkit-mask: var(--_m);
3575     mask: var(--_m);
3576     -webkit-mask-composite: source-out;
3577     mask-composite: subtract;
3578     animation: l3 1s infinite linear;
3579     margin: auto;
3580     vertical-align: middle;
3581     margin-left: 10px;
3582   }
3583 
3584   #qrcode img, #qrcode canvas {
3585     width: 50px;
3586     position: absolute;
3587     top: 12px;
3588     left: 16px;
3589   }
3590 
3591   .t-preview {
3592     position: absolute;
3593     top: 17px;
3594     left: 75px;
3595   }
3596   .t-preview p {
3597     margin: 0;
3598     font-size: 12px !important;
3599   }
3600   .t-preview .h3 {
3601     font-size: 16px !important;
3602     margin-bottom: 5px;
3603     font-weight: 600;
3604   }
3605   .scanCard {
3606     width: 100%;
3607     border: 1px solid;
3608     height: 76px;
3609     background-color: #fff;
3610   }
3611   .scanCard > div > img {
3612     position: absolute;
3613     right: 0;
3614     width: 55px;
3615   }
3616 
3617   @keyframes l3 {
3618     100% {
3619       transform: rotate(1turn);
3620     }
3621   }
3622 
3623   @media (min-width: 991px) {
3624     .sectionPurchase {
3625       height: 100%;
3626       position: relative;
3627       max-width: 1344px;
3628       background-color: #fff;
3629       top: 50%;
3630       left: 50%;
3631       transform: translate(-50%, -50%);
3632     }
3633     .headerPurchase h3 {
3634       font-size: 20px;
3635     }
3636     .purchaseArea h4 {
3637       font-size: 16px;
3638     }
3639 
3640     .menuPurchase ul li {
3641         font-size: 16px;
3642     }
3643     
3644     .contentPurchase {
3645       margin-bottom: 30px;
3646     }
3647     .contentPurchase h5 {
3648       font-size: 16px;
3649     }
3650 
3651     .item-cards .item-card p,
3652     .item-addons .item-addon p {
3653       font-size: 16px !important;
3654     }
3655 
3656     .cards {
3657       float: right;
3658       width: 400px;
3659     }
3660 
3661     .item-cards .item-card {
3662       width: calc(25% - 30px);
3663       max-width: calc(25% - 30px);
3664       flex: 0 0 calc(25% - 30px);
3665     }
3666 
3667       #itemAddons .item-card {
3668         position: relative;
3669         width: calc(16% - 40px);
3670         max-width: calc(16% - 40px);
3671         flex: 0 0 calc(16% - 40px);
3672       }
3673       
3674     .purchase-button-wrapper {
3675         padding: 10px 20px;
3676     }
3677   }
3678 
3679   @media (max-width: 1200px) {
3680     .item-cards .item-card {
3681       width: calc(33% - 30px);
3682       max-width: calc(33% - 30px);
3683       flex: 0 0 calc(33% - 30px);
3684     }
3685   }
3686 
3687   @media (max-width: 992px) {
3688     .purchasePopup {
3689       padding: 0;
3690     }
3691     .item-cards .item-card h5,
3692     .item-addons .item-addon h5 {
3693       max-height: 30px;
3694     }
3695 
3696     .back-purchase-button, .back-spotify, .next-purchase-button {
3697         width: 100%;
3698     }
3699     .addon-itm-title {
3700       width: 300px;
3701     }
3702     .addon-itm-line-price {
3703       margin-right: 10px;
3704     }
3705     .t-preview {
3706       top: 10px;
3707     }
3708 
3709     .card-qty a {
3710       height: 15px;
3711     }
3712     
3713     .purchase-button-wrapper {
3714       padding: 15px;
3715     }
3716   }
3717 
3718   @media (max-width: 576px) {
3719     .purchase-button .btn {
3720         width: 100%!important;
3721     }
3722     .purchase-button > .col-12 {
3723       padding-left: 0;
3724       padding-right: 0;
3725     }
3726   }
3727 </style>
3728 
3729 
3730 <div class="purchasePopup">
3731   <div class="purchaseArea">
3732     
3733       <div class="sectionPurchase purchasePersonalize sectionPurchaseBoard">
3734         <div class="wrapperPurchase">
3735           <div class="purchase-content">
3736             <div class="headerPurchase">
3737   <h3 class="text-uppercase">
3738     
3739       customize your flower board
3740     
3741   </h3>
3742   <a class="close-purchase-popup">
3743   <svg xmlns="images/logo-jkt8.png" width="18" height="18" viewBox="0 0 18 18" fill="none">
3744     <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"/>
3745   </svg>
3746 </a>
3747 
3748 </div>
3749 <div class="contentPurchase">
3750   <div class="row">
3751     
3752       <div class="col-12">
3753         
3754 
3755 <style>
3756   
3757   
3758   .customize-papan .group-field-1 .input-field {float: left;width: 100%;height: 317px;background-color: #E5E5EA;}
3759   .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;}
3760   
3761   .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;}
3762   .customize-papan .btn-upload-papan svg {width: 21px;height: 25px;display: block;align-self: center;margin: auto;margin-bottom: 12px;}
3763   .svgLogoPapan {position: absolute;width: 100%;top: 50%;left: 50%;transform: translate(-50%, -50%);text-align: center;}
3764   .svgLogoPapan p {color: #8E8E93; margin: 0;}
3765   .svgLogoPapan p span {font-size: 12px;color: #FF0E00;}
3766   .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;}
3767   #suggest-messages {position: absolute;bottom: 5px;left: 5px;}
3768   #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;}
3769   .case-occasion .nice-select:after {border-bottom: 2px solid #333;border-right: 2px solid #333;right: 20px;top: 42%;width: 10px;height: 10px;}
3770   .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;}
3771   .customize-papan .input-field .limit {position: absolute;right: 15px;top: 0;color: #757575;}
3772 
3773   @media (min-width: 991px) {
3774     .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);}
3775     .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);}
3776   }
3777 </style>
3778 
3779 <input type="hidden" data-properties="penerima" value="-">
3780 <div class="customize-papan">
3781   <div class="container">
3782     <div class="field-papan group-field-1 form-group">
3783       <div class="input-field">
3784         <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.
3785 (Ex: Selamat Menempuh Hidup Baru A & B)." maxlength="100"></textarea>
3786         <p class="limit">0/100</p>
3787         <div id="suggest-messages">
3788           <a id="show_note_papan1" href="#">
3789             <div class="suggest-message" id="note_btn_div1">
3790               <span class="promo-code-link" id="note_btn_papan1">Contoh Kata WEDDING</span>
3791             </div>
3792           </a>
3793           <a id="show_note_papan2" href="#">
3794             <div class="suggest-message" id="note_btn_div2">
3795               <span class="promo-code-link" id="note_btn_papan2">Contoh Kata SELAMAT</span>
3796             </div>
3797           </a>
3798           <a id="show_note_papan3" href="#">
3799             <div class="suggest-message" id="note_btn_div3">
3800               <span class="promo-code-link" id="note_btn_papan3">Contoh Kata DUKA CITA</span>
3801             </div>
3802           </a>
3803         </div>
3804       </div>
3805     </div>
3806     <div class="hide">
3807       <input type="hidden" value="" id="note_id_papan1" name="note_id_papan1" style="top: 0px;">
3808       <input type="hidden" value="" id="note_btn_id_papan1" name="note_btn_id_papan1">
3809     </div>
3810     <div class="hide">
3811       <input type="hidden" value="" id="note_id_papan2" name="note_id_papan2" style="top: 0px;">
3812       <input type="hidden" value="" id="note_btn_id_papan2" name="note_btn_id_papan2">
3813     </div>
3814     <div class="hide">
3815       <input type="hidden" value="" id="note_id_papan3" name="note_id_papan3" style="top: 0px;">
3816       <input type="hidden" value="" id="note_btn_id_papan3" name="note_btn_id_papan3">
3817     </div>
3818     <div class="field-papan group-field-2 form-group">
3819       
3820       <label for="logoPapan" onclick="" class="input-field field-logo">
3821         
3822         
3823         
3824         <div class="btn-upload-papan w-100">
3825           <?xml version="1.0" encoding="UTF-8"?>
3826           <img src="" style="display:none">
3827           <div class="svgLogoPapan">
3828             <svg xmlns="images/logo-jkt8.png" width="22" height="26" viewBox="0 0 22 26" fill="none">
3829               <path d="M6.5 20H15.5V11H21.5L11 0.5L0.5 11H6.5V20ZM0.5 23H21.5V26H0.5V23Z" fill="black"/>
3830             </svg>
3831             <p>Upload Logo <span>*optional</span></p>
3832           </div>
3833         </div>
3834         
3835       </label>
3836       
3837       <input
3838         type="hidden"
3839         data-properties="papan-logo"
3840         value=""
3841       >
3842       <input
3843         type="file"
3844         id="logoPapan"
3845         accept="image/*"
3846         style="position: absolute;width: 1px;height: 1px;padding: 0"
3847       >
3848       
3849       <div class="input-field">
3850         <input class="has-limit sender-name" type="text" placeholder="Nama Pengirim" data-properties="pengirim" maxlength="35"/>
3851         <p class="limit">0/35</p>
3852       </div>
3853       
3854     </div>
3855     
3856   </div>
3857 </div>
3858       </div>
3859     
3860   </div>
3861 </div>
3862 
3863           </div>
3864           <div class="purchase-button-wrapper">
3865             <div class="purchase-button btn-card row m-0">
3866   <div class="col-12 col-lg-2 text-left mb-2 p-0">
3867     
3868   </div>
3869   <div class="btn-next-card col-12 col-lg-10 text-right">
3870     
3871     
3872     <button
3873       
3874         
3875       
3876       class="btn next-purchase-button text-uppercase"
3877       
3878         disabled
3879       
3880     >
3881       <span>save your flower board</span>
3882     </button>
3883   </div>
3884 </div>
3885 
3886           </div>
3887         </div>
3888       </div>
3889     
3890     
3891     
3892       <div
3893         class="sectionPurchase sectionPurchaseBoard hide"
3894         data-section="address"
3895       >
3896         <div class="wrapperPurchase">
3897           <div class="purchase-content">
3898             <div class="headerPurchase">
3899   <h3>
3900     Complete Your Order
3901   </h3>
3902   <a class="close-purchase-popup">
3903   <svg xmlns="images/logo-jkt8.png" width="18" height="18" viewBox="0 0 18 18" fill="none">
3904     <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"/>
3905   </svg>
3906 </a>
3907 
3908 </div>
3909 <div class="contentPurchase">
3910   <div class="row">
3911     <div class="col-12 position-relative">
3912       <div class="addressPurchase">
3913         
3914           <h4 class="text-uppercase">recipient delivery address</h4>
3915           <p>Share the delivery address to send your heartfelt blooms straight to their door.</p>
3916         
3917         <div class="formAddressPurchase row">
3918           <div class="col-12">
3919             <form>
3920               <div class="form-group row mb-2 mb-lg-4">
3921                 <div class="col-6 position-relative">
3922                   <input id="first_name" type="text" class="form-control input__field" placeholder="" required>
3923                   <label for="first_name" class="input__label">First Name<span>*</span></label>
3924                 </div>
3925                 <div class="col-6 position-relative">
3926                   <input id="last_name" type="text" class="form-control input__field" placeholder="" required>
3927                   <label for="last_name" class="input__label">Last Name<span>*</span></label>
3928                 </div>
3929                 <input type="hidden" data-properties="nama-penerima">
3930               </div>
3931               
3932                 <h4 class="text-uppercase">how you want to input your address</h4>
3933                 <div class="form-group row mb-2 mb-lg-4 form-address-upload">
3934                   <div class="col-6 position-relative">
3935                     <label class="address-manualy">
3936                       <svg xmlns="images/logo-jkt8.png" width="18" height="17" viewBox="0 0 18 17" fill="none">
3937   <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
39371216 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
39375 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"/>
3938 </svg>
3939 <span>Input Address Manually</span>
3940                     </label>
3941                   </div>
3942                   <div class="col-6 position-relative">
3943                     <label for="address-upload" class="address-upload">
3944                       <svg xmlns="images/logo-jkt8.png" width="12" height="13" viewBox="0 0 12 13" fill="none">
3945   <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"/>
3946 </svg>
3947 <span>Upload Address Picture</span>
3948                     </label>
3949                     <input
3950                       id="address-upload"
3951                       type="file"
3952                       accept="image/png, image/jpeg"
3953                       style="position: absolute; padding: 0;width: 1px;height: 1px"
3954                     >
3955                     <input type="hidden" class="props-address-upload" data-properties="foto-alamat">
3956                   </div>
3957                 </div>
3958                 <img width="150" height="" src="" class="photo-address" style="display: none;">
3959               
3960               <div class="form-group row position-relative mb-2 mb-lg-4 form-address">
3961                 <div class="col-12">
3962                   <textarea
3963                     id="delivery_address"
3964                     data-properties="alamat-penerima"
3965                     class="form-control input__field col-12"
3966                     placeholder=""
3967                     required
3968                   ></textarea>
3969                   <label for="delivery_address" class="input__label">Delivery Address<span>*</span></label>
3970                   
3971                 </div>
3972               </div>
3973               <div class="form-group row mb-2 mb-lg-4 form-address">
3974                 <div class="col-6 position-relative">
3975                   <input
3976                     id="recipient_number"
3977                     type="text"
3978                     data-properties="telepon-penerima"
3979                     class="form-control input__field"
3980                     placeholder=""
3981                     required
3982                   >
3983                   <label for="recipient_number" class="input__label">Recipient number<span>*</span></label>
3984                 </div>
3985                 <div class="col-6 position-relative">
3986                   <input
3987                     id="company"
3988                     type="text"
3989                     data-properties="company"
3990                     class="form-control input__field"
3991                     placeholder=""
3992                   >
3993                   <label for="company" class="input__label">Company (Optional)</label>
3994                 </div>
3995               </div>
3996               <div class="form-group row mb-2 mb-lg-4 form-address">
3997                 <div class="col-6 position-relative">
3998                   <input
3999                     id="province"
4000                     type="text"
4001                     class="form-control input__field"
4002                     placeholder=""
4003                     value="Jakarta"
4004                     data-properties="province"
4005                   >
4006                   <label for="province" class="input__label">Province</label>
4007                 </div>
4008                 <div class="col-6 position-relative">
4009                   <select id="zip" class="form-control select-search" required></select>
4010                 </div>
4011               </div>
4012             </form>
4013           </div>
4014         </div>
4015       </div>
4016       <div class="addonsPurchase">
4017         <h4 class="text-uppercase">add-ons</h4>
4018         <div class="addons">
4019           <p>No Add-Ons</p>
4020           <!--
4021             <button class="add-addon">
4022               <svg xmlns="images/logo-jkt8.png" width="12" height="12" viewBox="0 0 12 12" fill="none">
4023                 <path d="M5.5 6.5H0V5.5H5.5V0H6.5V5.5H12V6.5H6.5V12H5.5V6.5Z" fill="black"/>
4024               </svg>
4025               <span>Enhance my moment with Add-ons</span>
4026             </button>
4027           -->
4028         </div>
4029       </div>
4030     </div>
4031     
4032   </div>
4033 </div>
4034 
4035 
4035<script>
4036 document.addEventListener('DOMContentLoaded', function() {
4037   // Detect iOS
4038   var isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;
4039   
4040   if (isIOS) {
4041     document.querySelector('.formAddressPurchase').classList.add('ios');
4042     
4043     // iOS specific fixes
4044     var inputs = document.querySelectorAll('.formAddressPurchase .input__field');
4045     
4046     inputs.forEach(function(input) {
4047       // Force enable touch events on iOS
4048       input.style.webkitUserSelect = 'text';
4049       input.style.webkitTouchCallout = 'default';
4050       input.style.pointerEvents = 'auto';
4051       input.style.touchAction = 'manipulation';
4052       
4053       // Add explicit touch event listeners for iOS
4054       input.addEventListener('touchstart', function(e) {
4055         e.stopPropagation();
4056         this.focus();
4057       }, { passive: false });
4058       
4059       input.addEventListener('touchend', function(e) {
4060         e.preventDefault();
4061         e.stopPropagation();
4062         this.focus();
4063         this.click();
4064       }, { passive: false });
4065       
4066       // Force focus on tap for iOS
4067       input.addEventListener('click', function(e) {
4068         e.stopPropagation();
4069         if (document.activeElement !== this) {
4070           this.focus();
4071         }
4072       });
4073     });
4074     
4075     // Fix for label overlapping on iOS
4076     var labels = document.querySelectorAll('.formAddressPurchase .input__label');
4077     labels.forEach(function(label) {
4078       label.style.pointerEvents = 'none';
4079       label.addEventListener('touchstart', function(e) {
4080         e.preventDefault();
4081         var input = this.parentNode.querySelector('.input__field');
4082         if (input) {
4083           input.focus();
4084         }
4085       });
4086     });
4087   }
4088   
4089   // Handle input state for all browsers, especially iOS
4090   var inputs = document.querySelectorAll('.input__field');
4091   
4092   inputs.forEach(function(input) {
4093     // Handle input events
4094     input.addEventListener('input', function() {
4095       if (this.value.trim() !== '') {
4096         this.classList.add('has-value');
4097       } else {
4098         this.classList.remove('has-value');
4099       }
4100     });
4101     
4102     // Handle focus
4103     input.addEventListener('focus', function() {
4104       this.classList.add('focused');
4105       // iOS specific: ensure input is visible
4106       if (isIOS) {
4107         setTimeout(function() {
4108           input.scrollIntoView({ behavior: 'smooth', block: 'center' });
4109         }, 300);
4110       }
4111     });
4112     
4113     // Handle blur
4114     input.addEventListener('blur', function() {
4115       this.classList.remove('focused');
4116       if (this.value.trim() !== '') {
4117         this.classList.add('has-value');
4118       } else {
4119         this.classList.remove('has-value');
4120       }
4121     });
4122     
4123     // Initial check for pre-filled values
4124     if (input.value.trim() !== '') {
4125       input.classList.add('has-value');
4126     }
4127   });
4128   
4129   // Additional iOS fixes
4130   if (isIOS) {
4131     // Prevent iOS Safari from adding default styling
4132     document.addEventListener('touchstart', function() {}, { passive: true });
4133     
4134     // Fix viewport issues on iOS
4135     var viewport = document.querySelector('meta[name=viewport]');
4136     if (viewport) {
4137       viewport.setAttribute('content', 
4138         'width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no'
4139       );
4140     }
4141   }
4142 });
4143 </script>
4143
4144           </div>
4145           <div class="purchase-button-wrapper">
4146             <div class="purchase-button btn-address row m-0">
4147   <div class="col-12 col-lg-2 text-left mb-2 p-0">
4148     
4149       <button class="back-purchase-button back-address text-uppercase">
4150         <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="images/logo-jkt8.png">
4151           <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"/>
4152         </svg>
4153         <span>Back</span>
4154       </button>
4155     
4156   </div>
4157   <div class="btn-next-card col-12 col-lg-10 text-right">
4158     
4159       <!--
4160         <button class="back-purchase-button back-address text-uppercase mr-lg-2 mb-2 mb-lg-0">
4161           <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="images/logo-jkt8.png">
4162             <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"/>
4163           </svg>
4164           <span>Back</span>
4165         </button>
4166       -->
4167     
4168     
4169     <button
4170       
4171         id="addtocart-card"
4172       
4173       class="btn  next-address text-uppercase"
4174       
4175     >
4176       <span>add to cart</span>
4177     </button>
4178   </div>
4179 </div>
4180 
4181           </div>
4182         </div>
4183       </div>
4184     
4185   </div>
4186 </div>
4187 <div id="backgroundPopup"></div>
4188 
4189 
4190 
4191 <input
4192   data-index="1"
4193   type="hidden"
4194   id="properties-delivery-date"
4195   name="properties[Delivery Date]"
4196   value="-"
4197 >
4198 <input
4199   data-index="2"
4200   type="hidden"
4201   id="properties-delivery-time"
4202   name="properties[Delivery Time]"
4203   value="-"
4204 >
4205 <input
4206   data-index="4"
4207   type="hidden"
4208   id="properties-nama-penerima"
4209   name="properties[Nama Penerima]"
4210   value="-"
4211 >
4212 <input
4213   data-index="5"
4214   type="hidden"
4215   id="properties-alamat-penerima"
4216   name="properties[Alamat Penerima]"
4217   value="-"
4218 >
4219 <input
4220   data-index="6"
4221   type="hidden"
4222   id="properties-kodepos"
4223   name="properties[Kodepos]"
4224   value="-"
4225 >
4226 <input data-index="7" type="hidden" id="properties-telepon-penerima" name="properties[Telepon Penerima]">
4227 
4228   
4229     <input
4230       data-index="8"
4231       type="hidden"
4232       id="properties-kartu-nama-penerima"
4233       name="properties[Kartu Nama Penerima]"
4234       value="-"
4235     >
4236   
4237   <textarea
4238     data-index="9"
4239     type="hidden"
4240     id="properties-kartu-pesan"
4241     name="properties[Kartu Pesan]"
4242     style="display: none"
4243   >-</textarea>
4244 
4245 
4246 
4247   <input
4248     data-index="10"
4249     type="hidden"
4250     id="properties-kartu-nama-pengirim"
4251     name="properties[Kartu Nama Pengirim]"
4252     value="-"
4253   >
4254 
4255 
4256 
4257   
4258   
4259 
4260 
4261 
4262 
4263 
4264 
4265 
4266 
4267 
4268 
4269 
4270 
4271 
4272 <!-- Additional Shipping -->
4273 <input type="hidden" id="properties-kota-pengiriman-province" name="properties[Province]">
4274 <input
4275   type="hidden"
4276   id="properties-kota-pengiriman-country"
4277   name="properties[Country]"
4278   value="Indonesia"
4279 >
4280 <input type="hidden" id="properties-shipping" name="properties[Shipping]">
4281 
4282 <input type="hidden" id="properties-time" name="properties[Time]">
4283 <input type="hidden" id="properties-card" name="properties[Card]">
4284 <input type="hidden" id="properties-addons" name="properties[Addons]">
4285 
4286 <input
4287   type="hidden"
4288   id="properties-company"
4289   name="properties[Company]"
4290   value=""
4291 >
4292 
4292<script>
4293   
4294   $(document).ready(function(){
4295     
4296     var text_max_papan1=150;
4297     var msg_text_papan1="";
4298     $('#kartu-ucapan-ucapan').keyup(function(){
4299       var text_length_papan1=$('#kartu-ucapan-ucapan').val().length;
4300       var msg_text_papan1=$('#kartu-ucapan-ucapan').val();
4301     });
4302 
4303     var notes_papan1 = [
4304       
4305       [0,"Happy Wedding (nama & nama)."],[1,"Congratulations lovebirds (nama & nama)."],[2,"Selamat berbahagia (nama & nama)."],[3,"Selamat menempuh hidup baru (nama & nama)."]
4306       
4307     ];
4308     $('#show_note_papan1').click(function(event){
4309       event.preventDefault();
4310       var idx_papan1=parseInt($('#note_id_papan1').val());
4311       if(isNaN(idx_papan1)){
4312         idx_papan1=0;
4313       }else{
4314         idx_papan1++;
4315         idx_papan1=idx_papan1%notes_papan1.length;
4316       }
4317       var note_papan1=notes_papan1[idx_papan1][1];
4318       $('#note_id_papan1').val(idx_papan1);
4319       $('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan1);
4320       $('#msgDelivery').val(note_papan1);
4321 
4322       var text_length_papan1=$('#kartu-ucapan-papan').val().length;
4323       var idx_2_papan1=parseInt($('#note_btn_id_papan1').val());
4324       if(isNaN(idx_2_papan1)){
4325         idx_2_papan1=0;
4326       }else{
4327         idx_2_papan1++;
4328         //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length;
4329       }
4330       $('#note_btn_id_papan1').val(idx_2_papan1);
4331       //var note_btn=note_btn_text[idx_2][1];
4332       //$('#note_btn').text(note_btn);
4333     });
4334 
4335     var text_max_papan2=150;
4336     var msg_text_papan2="";
4337     $('#kartu-ucapan-ucapan').keyup(function(){
4338       var text_length_papan2=$('#kartu-ucapan-ucapan').val().length;
4339       var msg_text_papan2=$('#kartu-ucapan-ucapan').val();
4340     });
4341 
4342     var notes_papan2 = [
4343       
4344       [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)."]
4345       
4346     ];
4347     $('#show_note_papan2').click(function(event){
4348       event.preventDefault();
4349       var idx_papan2=parseInt($('#note_id_papan2').val());
4350       if(isNaN(idx_papan2)){
4351         idx_papan2=0;
4352       }else{
4353         idx_papan2++;
4354         idx_papan2=idx_papan2%notes_papan2.length;
4355       }
4356       var note_papan2=notes_papan2[idx_papan2][1];
4357       $('#note_id_papan2').val(idx_papan2);
4358       $('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan2);
4359       $('#msgDelivery').val(note_papan2);
4360       var text_length_papan2=$('#kartu-ucapan-papan').val().length;
4361       var idx_2_papan2=parseInt($('#note_btn_id_papan2').val());
4362       if(isNaN(idx_2_papan2)){
4363         idx_2_papan2=0;
4364       }else{
4365         idx_2_papan2++;
4366         //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length;
4367       }
4368       $('#note_btn_id_papan2').val(idx_2_papan2);
4369       //var note_btn=note_btn_text[idx_2][1];
4370       //$('#note_btn').text(note_btn);
4371     });
4372 
4373     var text_max_papan3=150;
4374     var msg_text_papan3="";
4375     $('#kartu-ucapan-ucapan').keyup(function(){
4376       var text_length_papan3=$('#kartu-ucapan-ucapan').val().length;
4377       var msg_text_papan3=$('#kartu-ucapan-ucapan').val();
4378     });
4379 
4380     var notes_papan3 = [
4381       
4382       [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)."]
4383       
4384     ];
4385     $('#show_note_papan3').click(function(event){
4386       event.preventDefault();
4387       var idx_papan3=parseInt($('#note_id_papan3').val());
4388       if(isNaN(idx_papan3)){
4389         idx_papan3=0;
4390       }else{
4391         idx_papan3++;
4392         idx_papan3=idx_papan3%notes_papan3.length;
4393       }
4394       var note_papan3=notes_papan3[idx_papan3][1];
4395       $('#note_id_papan3').val(idx_papan3);
4396       $('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan3);
4397       $('#msgDelivery').val(note_papan3);
4398       var text_length_papan3=$('#kartu-ucapan-papan').val().length;
4399       var idx_2_papan3=parseInt($('#note_btn_id_papan3').val());
4400       if(isNaN(idx_2_papan3)){
4401         idx_2_papan3=0;
4402       }else{
4403         idx_2_papan3++;
4404         //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length;
4405       }
4406       $('#note_btn_id_papan3').val(idx_2_papan3);
4407       //var note_btn=note_btn_text[idx_2][1];
4408       //$('#note_btn').text(note_btn);
4409     });
4410 
4411     var text_max_papan4=150;
4412     var msg_text_papan4="";
4413     $('#kartu-ucapan-ucapan').keyup(function(){
4414       var text_length_papan4=$('#kartu-ucapan-ucapan').val().length;
4415       var msg_text_papan4=$('#kartu-ucapan-ucapan').val();
4416     });
4417 
4418     $('#show_note_papan4').click(function(event){
4419       var notes_papan4 = [
4420         [0,"Here’s to you—steadier, stronger and better every day."],
4421         [1,"Warmest wishes for a speedy recovery!"],
4422         [2,"Dengan ucapan terhangat, semoga lekas membaik dan semakin pulih setiap harinya ya."],
4423         [3,"Semoga lekas sembuh untuk kembali beraktivitas dan berkarya."]
4424       ];
4425       event.preventDefault();
4426       var idx_papan4=parseInt($('#note_id_papan4').val());
4427       console.log(idx_papan4, 'idx_papan4')
4428       if(isNaN(idx_papan4)){
4429         idx_papan4=0;
4430       }else{
4431         idx_papan4++;
4432         idx_papan4=idx_papan4%notes_papan4.length;
4433       }
4434       var note_papan4=notes_papan4[idx_papan4][1];
4435       $('#note_id_papan4').val(idx_papan4);
4436       $('#kartu-ucapan-papan, #properties-kartu-ucapan, #properties-kartu-pesan').val(note_papan4);
4437       console.log(note_papan4, 'note_papan4')
4438       var text_length_papan4=$('#kartu-ucapan-papan').val().length;
4439       var idx_2_papan4=parseInt($('#note_btn_id_papan4').val());
4440       if(isNaN(idx_2_papan4)){
4441         idx_2_papan4=0;
4442       }else{
4443         idx_2_papan4++;
4444         //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length;
4445       }
4446       $('#note_btn_id_papan4').val(idx_2_papan4);
4447     });
4448 
4449     /*
4450     $("#jenisPapan").change(function(){
4451       $( "select option:selected").each(function(){
4452         if($(this).attr("value")=="Happy Wedding"){
4453           $("#suggest-messages a").hide();
4454           $("#show_note_papan1").show();
4455           $("#kartu-ucapan-papan").val("");
4456         }
4457         if($(this).attr("value")=="Congratulations"){
4458           $("#suggest-messages a").hide();
4459           $("#show_note_papan2").show();
4460           $("#kartu-ucapan-papan").val("");
4461         }
4462         if($(this).attr("value")=="Duka Cita"){
4463           $("#suggest-messages a").hide();
4464           $("#show_note_papan3").show();
4465           $("#kartu-ucapan-papan").val("");
4466         }
4467       });
4468     }).change();
4469     */
4470 
4471     
4472 
4473     
4474 
4475     $(".variant-metafield").each(function(){
4476       const t = $(this)
4477       const id = t.attr("id")
4478       const target = $(`[data-select=${id}]`)
4479       t.on('select2:selecting', function(e) {
4480         const data = e.params.args.data
4481         target.val(data.text)
4482       });
4483     })
4484   })
4485 </script>
4485
4486 
4487 <div id="popupCart">
4488   <div class="container">
4489     <div class="wrapperPopupCart">
4490       <div class="headerPopupCart">
4491         <div class="d-flex pl-5 pr-5 p-4">
4492           <svg xmlns="images/logo-jkt8.png" width="16" height="12" viewBox="0 0 16 12" fill="none">
4493             <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"/>
4494           </svg>
4495           <span>item added to your cart</span>
4496         </div>
4497         <a class="close-purchase-popup">
4498   <svg xmlns="images/logo-jkt8.png" width="18" height="18" viewBox="0 0 18 18" fill="none">
4499     <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"/>
4500   </svg>
4501 </a>
4502 
4503       </div>
4504       <div class="contentPopupCart">
4505         <div class="pl-5 pr-5 p-4">
4506           <div class="itemContent row m-0 justify-content-between">
4507             <div class="col-2 align-self-center">
4508               
4509               <img
4510                 class="d-block"
4511                 width="80"
4512                 src="//outerbloom.com/cdn/shop/files/Blossom-Shine-WM_80x.jpg?v=1695788426"
4513               >
4514             </div>
4515             <div class="col-10 align-self-center">
4516               <div class="row pl-3">
4517                 <div class="col-12 col-lg-7">
4518                   <span class="titleCartPopup text-uppercase">JKT8 APK Game Slot Gacor Online Link Login Resmi Terbaru</span>
4519                 </div>
4520                 <div class="d-flex justify-content-end col-12 col-lg-5">
4521                   <span class="deleteCartPopup hide">Delete</span>
4522                   <span class="lineCartPrice align-self-center">Rp 10.000</span>
4523                 </div>
4524               </div>
4525             </div>
4526           </div>
4527           <div class="itemProperties">
4528             
4529               <div class="propDeliver">
4530                 <h4>delivery option detail</h4>
4531                 <p>
4532                   <span>delivery city</span>
4533                   <span class="propDeliveryCity">jakarta</span>
4534                 </p>
4535                 <p>
4536                   <span>delivery date</span>
4537                   <span class="propDeliveryDate">24/03/2025</span>
4538                 </p>
4539                 <p>
4540                   <span>delivery time</span>
4541                   <span class="propDeliveryTime">Afternoon | 13:00 - 18:00</span>
4542                 </p>
4543               </div>
4544               <div class="propAddress">
4545                 <h4>delivery option detail</h4>
4546                 <p>
4547                   <span>RECIPIENT NAME</span>
4548                   <span class="propDeliveryName">jane doe</span>
4549                 </p>
4550                 <p>
4551                   <span>delivery address</span>
4552                   <span class="propDeliveryAddress"
4553                     >Jl. Gatot Subroto No. 25, RT.2/RW.4, Kuningan Barat, Kecamatan Mampang Prapatan, Kota Jakarta
4554                     Selatan, Daerah Khusus Ibukota Jakarta 12710, Indonesia</span
4555                   >
4556                 </p>
4557                 <p>
4558                   <span>recipient phone number</span>
4559                   <span class="propDeliveryPhone">(+62) 812-3456-7890</span>
4560                 </p>
4561                 <p>
4562                   <span>PROVINCE</span>
4563                   <span class="propDeliveryProv">Jakarta</span>
4564                 </p>
4565                 <p>
4566                   <span>postal code</span>
4567                   <span class="propDeliveryZip">12710</span>
4568                 </p>
4569                 
4570                 
4571               </div>
4572             
4573           </div>
4574           <div class="itemAddonCart">
4575             <div class="toggleAddonCart d-flex justify-content-between">
4576               <h4>add-ons (0)</h4>
4577               <svg xmlns="images/logo-jkt8.png" width="5" height="9" viewBox="0 0 5 9" fill="none">
4578                 <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"/>
4579               </svg>
4580             </div>
4581             <div class="wrapperItemAddonCart"></div>
4582           </div>
4583           
4584         </div>
4585       </div>
4586       <div class="footerPopupCart">
4587         <div class="row m-0 pl-5 pr-5 p-4">
4588           <a class="btn btnViewCart w-100 text-uppercase text-center" href="/cart">View Cart</a>
4589           <a class="btn btnViewCheckout w-100 text-uppercase text-center" href="/checkout"><span>Checkout</span></a>
4590           <a class="btnContinueShopping w-100 text-center" href="/">Continue shopping</a>
4591         </div>
4592       </div>
4593     </div>
4594   </div>
4595 </div>
4596 
4597 
4598 
4598<script>
4599   const shareButton = document.getElementById('shareButton');
4600 
4601   shareButton.addEventListener('click', () => {
4602     if (navigator.share) {
4603       navigator.share({
4604         title: "JKT8 APK Game Slot Gacor Online Link Login Resmi Terbaru",
4605         url: "/products/blossom-shine",
4606         text: 'Check out this page!'
4607       })
4608       .then(() => console.log('Successful share'))
4609       .catch((error) => console.log('Error sharing', error));
4610     } else {
4611       alert('Web Share API is not supported in this browser.');
4612     }
4613   });
4614 
4615   // Inventory validation function
4616   function checkInventoryStatus() {
4617     const productSelect = document.getElementById('productSelect');
4618     const purchaseButton = document.querySelector('#personalizeBtn button');
4619     
4620     if (!productSelect || !purchaseButton) return;
4621 
4622     const selectedVariantId = productSelect.value;
4623     
4624     // Get variant data from Shopify
4625     fetch(`/products/blossom-shine.js`)
4626       .then(response => response.json())
4627       .then(product => {
4628         const selectedVariant = product.variants.find(variant => variant.id == selectedVariantId);
4629         
4630         if (selectedVariant) {
4631           const isOutOfStock = selectedVariant.inventory_quantity <= 0 && 
4632                                selectedVariant.inventory_management === 'shopify' && 
4633                                selectedVariant.inventory_policy !== 'continue';
4634           
4635           if (isOutOfStock) {
4636             purchaseButton.disabled = true;
4637             purchaseButton.textContent = 'Out of Stock';
4638             purchaseButton.setAttribute('data-out-of-stock', 'true');
4639             purchaseButton.style.backgroundColor = '#cccccc';
4640             purchaseButton.style.cursor = 'not-allowed';
4641           } else {
4642             // Check if button was disabled due to other conditions
4643             
4644             
4645             
4646             
4647             
4648             
4649             
4650             
4651             const isOtherDisabled = false || true || false;
4652             
4653             if (!isOtherDisabled) {
4654               purchaseButton.disabled = false;
4655               purchaseButton.textContent = 'customize your flower board';
4656               purchaseButton.removeAttribute('data-out-of-stock');
4657               purchaseButton.style.backgroundColor = '';
4658               purchaseButton.style.cursor = '';
4659             }
4660           }
4661         }
4662       })
4663       .catch(error => {
4664         console.error('Error checking inventory:', error);
4665       });
4666   }
4667 
4668   // Check inventory on page load
4669   document.addEventListener('DOMContentLoaded', function() {
4670     checkInventoryStatus();
4671     
4672     // Listen for variant changes
4673     const productSelect = document.getElementById('productSelect');
4674     if (productSelect) {
4675       productSelect.addEventListener('change', checkInventoryStatus);
4676     }
4677   });
4678 
4679   // Prevent form submission if out of stock
4680   document.addEventListener('click', function(e) {
4681     if (e.target.matches('button[data-out-of-stock="true"]')) {
4682       e.preventDefault();
4683       e.stopPropagation();
4684       alert('This product is currently out of stock and cannot be purchased.');
4685       return false;
4686     }
4687   });
4688 </script>
4688
4689 
4690 
4691   
4692 </div>
4693 
4694           </div>
4695         </div>
4696       </div>
4697     </div>
4698     <div id="product-bottom">
4699       
4700         <div class="product-description rte bg-card col-12 py-3 px-0 m-0" itemprop="description">
4701           <div class="container">
4702             
4703 
4704 
4705 
4706 
4707     <div class="short-desc-mobile d-block d-lg-none mb-3">
4708         <div class="short-desc">
4709             <ul>
4710 <li><strong>JKT8 adalah apk slot gacor online terbaru yang menyediakan link login resmi terupdate dengan fitur rtp permainan slot gacor tinggi gampang cuan serta banyak bonus menguntungkan.</strong></li>
4711         </div>
4712         <label class="more-mobile">Show More →</label>
4713     </div>
4714 
4715 <style>
4716 .animated-title {
4717     text-align: center;
4718     font-weight: bold;
4719     color: #079c02;
4720     font-size: 28px;
4721     position: relative;
4722     animation: glow 2s infinite alternate, moveUpDown 3s infinite;
4723 }
4724 
4725 /* Efek glow / bercahaya hijau */
4726 @keyframes glow {
4727     0% { text-shadow: 0 0 5px #079c02; color: #079c02; }
4728     50% { text-shadow: 0 0 20px #00ff55; color: #12d12b; }
4729     100% { text-shadow: 0 0 10px #1bff00; color: #079c02; }
4730 }
4731 
4732 /* Efek gerakan naik turun */
4733 @keyframes moveUpDown {
4734     0% { transform: translateY(0px); }
4735     50% { transform: translateY(-5px); }
4736     100% { transform: translateY(0px); }
4737 }
4738 </style>
4739 
4740 
4740<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/shopify-cartjs/1.1.0/cart.min.js"></script>
4740
4741 
4741<script>
4742   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});
4743 
4744   const productType = $("[data-product-type]").data("product-type")
4745   const productDate = Date.parse(new Date())
4746   
4747   const shop = 'outerbloom1.myshopify.com'
4748   const host = 'https://app.asmaraku.com'
4749   // const host = 'http://localhost:5001'
4750 
4751   const gsheet = "https://script.google.com/macros/s/AKfycbyqa6mPD6lVjU6hiHr12J8URZ2aJBGyxBsGQ0QtEIDari-rBk_9vSOITjSSmUXL1NwxEg/exec"
4752   
4753   const qrID = "041025" + randomString(4, 'aAbCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ')
4754 
4755   $("#properties-time").val(new Date().getTime())
4756 
4757   const isIOS = /iPhone|iPad|iPod/i.test(navigator.userAgent);
4758 
4759   if(!isIOS) {
4760     $("#full-date").attr("type", "button")
4761   }
4762 
4763   let dateTime = new Date();
4764   let today = dateTime.getDate();
4765   let day = dateTime.getDay();
4766   let hour = dateTime.getHours();
4767   let min = dateTime.getMinutes();
4768   let timeOfDay = hour + (min / 100);
4769 
4770   async function getFetch(url) {
4771     const response = await fetch(url);
4772     let status = false
4773     let result
4774     if(response.ok) {
4775       status = true
4776       result = await response.json();
4777     }
4778     return {
4779       status,
4780       data: result
4781     }
4782   }
4783 
4784   
4785 
4786   function setCookie(cname, cvalue, exMins) {
4787     var d = new Date();
4788     d.setTime(d.getTime() + (exMins*60*1000));
4789     var expires = "expires="+d.toUTCString();  
4790     document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
4791   }
4792 
4793   function getCookie(cname) {
4794     let name = cname + "=";
4795     let decodedCookie = decodeURIComponent(document.cookie);
4796     let ca = decodedCookie.split(';');
4797     for(let i = 0; i <ca.length; i++) {
4798       let c = ca[i];
4799       while (c.charAt(0) == ' ') {
4800         c = c.substring(1);
4801       }
4802       if (c.indexOf(name) == 0) {
4803         return c.substring(name.length, c.length);
4804       }
4805     }
4806     return "";
4807   }
4808 
4809   async function renderDate() {
4810     let dataDate = await getFetch(`${host}/api/shipping/date?domain=${shop}&productId=8144957800663&v=${Date.now()}`);
4811     console.log(dataDate, 'renderDate')
4812     const data = dataDate?.data
4813     const date = data.date
4814     const time = data.time
4815 
4816     console.log(date, 'DATE')
4817 
4818     const weekday = ["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];
4819     const monthly = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];
4820     const htmlDate = []
4821     for(let i = 0;i < date.length;i++) {
4822       const full = date[i].date
4823       const d = new Date(date[i].date);
4824       const day = weekday[d.getDay()];
4825       const dt = d.getDate();
4826       const mt = monthly[d.getMonth()];
4827       const yr = d.getFullYear();
4828       const isDate = Boolean(date[i].isEnabled)
4829       const cutoffpagi = date[i].cutoff?.pagi
4830       const cutoffsiang = date[i].cutoff?.siang
4831       const cutoffMalam = date[i].cutoff?.Malam
4832       var html = `
4833         <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'}>
4834           ${dt === today ?
4835             `Today<span>${dt < 10 ? '0' + dt : dt}</span>` :
4836             `${day}<span>${dt < 10 ? '0' + dt : dt}</span>`
4837           }
4838         </button>
4839       `
4840       htmlDate.push(html)
4841     }
4842     const htmlTime = []
4843     for(var i = 0;i < time.length;i++) {
4844       const timeText = time[i].text
4845       const timeTime = time[i].time
4846       const timeEnabled = time[i].isEnabled
4847       var html = `
4848           <button class="time-single calendarbutton2 btn steps-btn" data-time="${timeText}" ${timeEnabled ? '' : 'disabled'}>${timeText}<br/>${timeTime}</button>
4849         `
4850       htmlTime.push(html)
4851     }
4852     const deliveryDate = document.getElementById("deliveryDate");
4853     if(deliveryDate) {
4854       deliveryDate.insertAdjacentHTML("afterbegin", htmlDate.join(''))
4855       $("#deliveryTime").html(htmlTime)
4856       if(productType !== '') {
4857         console.log("clarity event " + productType + ' calendaring')
4858         window.clarity("event", `${productType} calendaringSchedule`)
4859         // window.clarity("set", productType, `calendaringSchedule - ${productDate}`)
4860       }
4861     }
4862   }
4863 
4864   async function getProvince(city) {
4865     let { data: { province } } = await getFetch(`${host}/api/shipping/address/province?city=${city}`);
4866     console.log(province, 'province')
4867     $("#province").val(province)
4868   }
4869 
4870   async function renderAddress() {
4871     let current
4872     if(getCookie("location_delivery")){
4873       current = getCookie("location_delivery").charAt(0).toUpperCase() + getCookie("location_delivery").slice(1)
4874     }
4875     let address = await getFetch(`${host}/api/shipping/address?domain=${shop}&productId=8144957800663`);
4876     console.log(address)
4877     const data = address?.data?.city
4878     const htmlAddress = []
4879     const grouping = []
4880     for(let i = 0;i < data?.length;i++) {
4881       if(data[i]){
4882         if(data[i]?.group) {
4883           grouping.push(data[i].group)
4884         }
4885         const price = rupiah.format(data[i]?.rate)
4886         let promo = '(Promo Free Delivery)'
4887         if(data[i]?.name === 'Jakarta - PickUp ASHTA'){
4888           promo = '(at SCBD, Ashta)'
4889         } else if(data[i]?.name === 'Jakarta - PickUp ITC'){
4890           promo = '(at Kuningan, ITC Kuningan)'
4891         } else if(data[i]?.name === 'BSD - PickUp'){
4892           promo = '(at Goldfinch Gading Serpong)'
4893         } else if(data[i]?.name === 'Kota Lainnya'){
4894           promo = ''
4895         }
4896         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>`)
4897       }
4898     }
4899     
4900     const deliveryCity = document.getElementById("cities");
4901     if(deliveryCity) {
4902       deliveryCity.insertAdjacentHTML("beforeend", htmlAddress.join(''))
4903       if(!isIOS) {
4904         $(deliveryCity).select2();
4905       }
4906     }
4907   }
4908 
4909   async function renderZip(v, v2, v3) {
4910     const deliveryZip = document.getElementById("zip");
4911     if(v === '') {
4912       return
4913     }
4914     let dataZip = await getFetch(`${host}/api/shipping/address/zip?city=${v}&city2=${v2}&city3=${v3}`);
4915     let zip = dataZip?.data?.zip
4916     console.log(zip)
4917     let htmlZip = []
4918     for(let i = 0; i < zip?.length;i++) {
4919       htmlZip.push(`<option value="${zip[i]?.postalCode} - ${zip[i]?.subdistrict}">${zip[i]?.postalCode} - ${zip[i]?.subdistrict} - ${zip[i]?.city}</option>`)
4920     }
4921     deliveryZip.insertAdjacentHTML("beforeend", htmlZip.join(''))
4922   }
4923 
4924   renderDate()
4925   renderAddress()
4926 
4927   let rupiah = new Intl.NumberFormat('id-ID', {
4928     style: 'currency',
4929     currency: 'IDR',
4930     maximumFractionDigits: 0, 
4931     minimumFractionDigits: 0
4932   });
4933 
4934   async function insertCard(data) {
4935     const response = await fetch(`${host}/api/card/new`, {
4936         method: "POST",
4937         headers: {
4938           'Content-Type': 'application/json',
4939         },
4940         body: data
4941     })
4942     const result = await response.json()
4943     let rowIndex = result?.data?.tableRange.split("Outerbloom!A1:J")[1]
4944     $("#greetingCard").attr("data-index", rowIndex)
4945     return result
4946   }
4947     
4948   async function updateCard(data){
4949     const rowIndex = $("#greetingCard").data("index")
4950     const response = await fetch(`${host}/api/card/update?rowIndex=${rowIndex}`, {
4951         method: "PUT",
4952         headers: {
4953           'Content-Type': 'application/json',
4954         },
4955         body: data
4956     })
4957     return response
4958   }
4959     
4960   function bytesToSize(bytes) {
4961     var sizes = ['b', 'kb', 'mb', 'gb', 'tb', 'p'];
4962     for (var i = 0; i < sizes.length; i++) {
4963       if (bytes <= 1024) {
4964         return bytes + ' ' + sizes[i];
4965       } else {
4966         bytes = parseFloat(bytes / 1024).toFixed(2)
4967       }
4968     }
4969     return bytes + ' P';
4970   }
4971 
4972   async function uploadMedia(uri, type) {
4973     nameq = $("#properties-nama-penerima").val()
4974     dear = $("#properties-kartu-nama-penerima").val()
4975     card = $("[data-properties=ucapan]").val()
4976     sender = $("#properties-kartu-nama-pengirim").val()
4977     photo = $("#properties-photo").val()
4978     video = $("#properties-video").val()
4979     status = "Product"
4980         
4981     const name = qrID
4982     let formData = new FormData(); 
4983     formData.append("file", uri);
4984     const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, {
4985       method: "POST", 
4986       body: formData
4987     })
4988     const result = await response.json();
4989     if(result) {
4990       const url = result.url
4991       if(type === 'image/jpeg') {
4992         $("#properties-photo").val(url)
4993         $(".preview-image").show()
4994         $(".remove-image").show()
4995         photo = url
4996       } else {
4997         $("#properties-video").val(url)
4998         $("#label-input-video span").text("Change File")
4999         $(".case-qrcode-preview p").text("Scan here for a secret message")
5000         $(".remove-media").show()
5001         $("#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>`)
5002         $("[for=input-video]").hide()
5003         video = url
5004       }
5005       $(".case-video-preview").show()
5006       $(".steps-card-preview").removeClass("loading")
5007       // updateCard(nameq, dear, card, sender, photo, video, status)
5008 
5009       $(".nextBtn").attr("disabled", false)
5010     }
5011   }
5012 
5013   function randomString(length, chars) {
5014     var result = '';
5015     for (var i = length; i > 0; --i) result += chars[Math.round(Math.random() * (chars.length - 1))];
5016     return result;
5017   }
5018 
5019   function getNoteCity(fulldate) {
5020     const h_1 = new Date(new Date().setDate(new Date().getDate() + 1))
5021     const weekday = ["Min","Sen","Sel","Rab","Kam","Jum","Sab"];
5022     const monthly = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];
5023     const d = new Date(h_1);
5024     const day = weekday[d.getDay()];
5025     const dt = d.getDate();
5026     const mt = monthly[d.getMonth()];
5027     const yr = d.getFullYear();
5028     const p = $("#cities").parent(".form-group")
5029   }
5030 
5031   function disabledSameDay() {
5032     let btnFirst = $("#deliveryDate").find("button:first-child")
5033     let getDay = new Date().getDay();
5034 
5035     
5036       
5037       if(getDay == 1 || getDay == 2 || getDay == 3 || getDay == 4 || getDay == 5){
5038         if(hour >= 14.00){
5039           btnFirst.attr("disabled", true)
5040         }
5041       } else if(getDay == 6){
5042         if(hour >= 16.00){
5043           btnFirst.attr("disabled", true)
5044         }
5045       } else if(getDay == 0){
5046         if(hour >= 16.00){
5047           btnFirst.attr("disabled", true)
5048         }
5049       }
5050       
5051     
5052   }
5053 
5054   function disabledays(date) {
5055     let ymd = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate();
5056     //if u have to disable a list of day
5057     let removeDays
5058     
5059     
5060     
5061         removeDays = ["2025-2-13", "2025-2-14"];
5062     
5063     if ($.inArray(ymd, removeDays) >= 0) {
5064       return [false];
5065     } else {
5066       let day = date.getDay();
5067       if(day == 0 && date.getDate() == 13 && date.getMonth() == 1){
5068           return [(day == 0),  ''];
5069       }
5070       
5071       if(day == 0){
5072         return [(day == 0),  ''];
5073       }
5074       
5075       
5076       return [(day != 0),  ''];
5077     }
5078   }
5079 
5080   /* Indonesian initialisation for the jQuery UI date picker plugin. */
5081   /* Written by Deden Fathurahman ([email protected]). */
5082   ( function( factory ) {
5083     if ( typeof define === "function" && define.amd ) {
5084 
5085       // AMD. Register as an anonymous module.
5086       define( [ "../widgets/datepicker" ], factory );
5087     } else {
5088 
5089       // Browser globals
5090       factory( jQuery.datepicker );
5091     }
5092   }( function( datepicker ) {
5093 
5094   datepicker.regional.id = {
5095     closeText: "Tutup",
5096     prevText: "&#x3C;mundur",
5097     nextText: "maju&#x3E;",
5098     currentText: "Today",
5099     monthNames: [ "January","February","March","April","May","Juny",
5100                   "July","August","September","October","November","December" ],
5101     monthNamesShort: [ "Jan","Feb","Mar","Apr","May","Jun",
5102                       "Jul","Agu","Sep","Oct","Nov","Dec" ],
5103     dayNames: [ "Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu" ],
5104     dayNamesShort: [ "Sun","Mon","Tue","Wed","Thu","Fri","Sat" ],
5105     dayNamesMin: [ "Mg","Sn","Sl","Rb","Km","jm","Sb" ],
5106     weekHeader: "Mg",
5107     dateFormat: "D, dd M",
5108     firstDay: 0,
5109     isRTL: false,
5110     showMonthAfterYear: false,
5111     yearSuffix: "" };
5112   datepicker.setDefaults( datepicker.regional.id );
5113 
5114   return datepicker.regional.id;
5115 
5116 } ) );
5117 
5118   function loadPopup() {
5119     $("#backgroundPopup").fadeIn("slow");
5120     $(".purchasePopup:not(.purchasePopupSpotify)").fadeIn("slow");
5121     const firstSection = $(".purchasePopup:not(.purchasePopupSpotify) .sectionPurchase").first()
5122     if(firstSection.hasClass("purchasePersonalize")) {
5123       if(productType !== '') {
5124         console.log("clarity event " + productType + ' personalize')
5125         window.clarity("event", `${productType} cardPersonalization`)
5126         // window.clarity("set", productType, `cardPersonalization - ${productDate}`)
5127       }
5128     } else if (firstSection.hasClass("sectionPurchaseBoard")) {
5129         console.log("clarity event " + productType + ' personalizeBoard')
5130         window.clarity("event", `${productType} personalizeBoard`)
5131         // window.clarity("set", productType, `personalizeBoard - ${productDate}`)
5132     }
5133     firstSection.removeClass("hide")
5134     
5135     // Auto-trigger addon loading when addon section becomes visible
5136     setTimeout(function() {
5137       const addonSection = $(".purchaseAddon")
5138       if(addonSection.length > 0 && !addonSection.hasClass("hide")) {
5139         if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) {
5140           $("[data-addon=upsell-all]").trigger("click")
5141         }
5142       }
5143     }, 200)
5144   }
5145 
5146   function disablePopup() {
5147     $("#backgroundPopup").fadeOut("slow");
5148     $(".purchasePopup").fadeOut("slow");
5149     $("#popupCart").fadeOut("slow");
5150   }
5151 
5152     function scrollTo(parent, div, dur) {
5153       $(parent).animate({
5154         scrollTop: $(div).offset().top
5155       }, dur);
5156     }
5157 
5158   function loadPopupPersonalize() {
5159     const div = "#purchaseProduct"
5160     const p = "html, body, .product-meta"
5161     $("p.error").remove()
5162     loadItemOccasion($("[data-occassion]").eq(0), "greeting-card-all")
5163     const isCity = $("#cities[required]")
5164     const isDate = $("#propDeliveryDate[required]")
5165     const isTime = $("#propDeliveryTime[required]")
5166     // loadPopup()
5167     if(isCity.val() !== '' && isDate.val() !== '' && isTime.val() !== '') {
5168       loadPopup()
5169     }
5170     if(isCity.val() == '') {
5171       isCity.parent(".row").append("<p class='error'>Choose delivery city</p>")
5172       scrollTo(p, div, 500)
5173     }
5174     if(isDate.val() == '') {
5175       isDate.parents(".row").append("<p class='error'>Choose delivery date</p>")
5176       scrollTo(p, div, 500)
5177     }
5178     if(isTime.val() == '') {
5179       isTime.parents(".row").append("<p class='error'>Choose delivery time</p>")
5180       scrollTo(p, div, 500)
5181     }
5182   }
5183 
5184   function quantityCounter() {
5185     $(document).on("click", ".item-card.selected .q_up", function () {
5186       var C = $(this).attr("data-id"),
5187           S =
5188               parseInt(
5189                   $(this)
5190                       .siblings(".quantity-cart-" + C)
5191                       .val()
5192               ) + 1;
5193       $(this).attr("data-quantity", S),
5194           $(this)
5195               .siblings(".quantity-cart-" + C)
5196               .val(S);
5197     }),
5198     $(document).on("click", ".item-card.selected .q_down", function () {
5199         var C = $(this).attr("data-id"),
5200             S = parseInt(
5201                 $(this)
5202                     .siblings(".quantity-cart-" + C)
5203                     .val()
5204             );
5205         0 < S && $(this).attr("data-quantity", S - 1),
5206             0 < S &&
5207                 $(this)
5208                     .siblings(".quantity-cart-" + C)
5209                     .val(S - 1);
5210     });
5211   }
5212 
5213   quantityCounter()
5214 
5215   const itemAddon = $(".item-card").length
5216   const nofree = $(".nofree").length
5217 
5218   const upsell = ''
5219   
5220   if(nofree === itemAddon) {
5221       // $("#itemAddons").html("<p>No Items available</p>")
5222   }
5223 
5224   $("#itemAddons .item-card").each(function(e){
5225       $("#itemAddons").attr("data-length", e)
5226   })
5227 
5228   $("[data-addon]").click(function(){
5229       
5230       
5231       
5232       const t = $(this)
5233       
5234       const data = t.data("addon")
5235       
5236       $("[data-addon]").removeClass("selected")
5237       t.addClass("selected")
5238       $.get(`https://outerbloom.com/collections/${data}/products.json`, function(data, status){
5239           const products = data.products
5240           const html = []
5241           for(let i = 0; i < products.length; i++) {
5242               const id = products[i].id
5243               const variantId = products[i].variants[0].id
5244               const img = products[i].images[0].src
5245               let img2 = img.split('.jpg')[0]
5246               const title = products[i].title
5247               const price = products[i].variants[0].price
5248               const tags = products[i].tags
5249               const qty = products[i].variants[0].available
5250               let type_upsell = ''
5251               if(tags.includes('upsell-item-standing')) {
5252                   type_upsell = 'standing'
5253               }
5254               console.log(type_upsell)
5255               if(type_upsell !== '') {
5256                   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}">
5257                       
5258                           <div class="card-image">
5259                               <img src="${img2}_150x.jpg" alt="${title}" width="" height="" />
5260                           </div>
5261                           <div class="card-meta">
5262                               <h5>${title}</h5>
5263                               <p>${price < 1 ? 'FREE' : rupiah.format(price)}</p>
5264                               <input id="card-${variantId}" type="hidden" name="" value="${variantId}">
5265                           </div>
5266                           <div class="card-qty">
5267                               <a data-quantity="1" type="submit" id="q_down-${variantId}" class="btn-qty-min q_down drawer-cart" data-id="${variantId}"><svg xmlns="images/logo-jkt8.png" width="12" height="2" viewBox="0 0 12 2" fill="none"><path d="M0 1.90869V0.908691H12V1.90869H0Z" fill="black"/></svg></a>  
5268                               <input maxlength="3" min="0" class="btn-qty text-center quantity-cart-${variantId}
5268" value="0" data-price=${price} name="quantity">
5269                               <a data-quantity="1" type="submit" class="btn-qty-plus q_up text-green drawer-cart" data-id="${variantId}"><svg xmlns="images/logo-jkt8.png" width="12" height="13" viewBox="0 0 12 13" fill="none">
5270 <path d="M0 6.87023V5.94715H5.53846V0.408691H6.46154V5.94715H12V6.87023H6.46154V12.4087H5.53846V6.87023H0Z" fill="black"/>
5271 </svg></a>   
5272                           </div>
5273                       </div>`
5274                   html.push(body)
5275               }
5276           }
5277           $("#itemAddons .row").html(html.length === 0 ? '<p>No Item available</p>' : html)
5278           $("#itemAddons").attr("data-length", products.length)
5279           // $('#itemAddons')[0].swiper.update();
5280       });
5281   })
5282 
5283   async function isAddon(){
5284     let ids = []
5285     $("#itemAddons .item-card.selected").each(function(i, e){
5286       const id = $(this).data("id")
5287       ids.push(id)
5288     })
5289     console.log(ids)
5290     return ids
5291   }
5292   
5293   $("#itemAddons").delegate(".item-card > div:not(.card-qty)", "click", async function(){
5294     const t = $(this).parent()
5295     const id = t.data("id")
5296     const btn =  t.parents(".purchaseAddon").find(".next-purchase-button")
5297     t.toggleClass("selected");
5298     //$(this).next("input").toggleAttr('name', 'id[]');
5299     if (t.hasClass('selected')) {
5300         t.find("input").val(1)
5301         t.find("input").attr('name', 'id[]');
5302     } else {
5303         t.find("input").val(0)
5304         t.find("input").removeAttr('name');
5305     }
5306     $("#properties-addons").val(addons)
5307     const is = await isAddon()
5308     if(is.length === 0) {
5309       btn.text("continue without add-ons")
5310       return
5311     }
5312     if(is.includes(8835692069079)) {
5313       btn.text("personalize acrylic frame")
5314     } else {
5315       btn.text("Continue")
5316     }
5317       
5318   })
5319 
5320   async function myAddon(data) {
5321     const c = $(".addonsPurchase .addons")
5322     let items = []
5323     
5324     const spotifyAddons = $(".spotifyAddons").find("[data-index]")
5325     // if(spotifyAddons.length > 0) {
5326     //   $(spotifyAddons).each(function(i, e){
5327     //     const spotifyLink = $(this).find(".spotifyLink").val()
5328     //     const spotifySong = $(this).find(".spotifySong").val()
5329     //     const spotifyArtist = $(this).find(".spotifyArtist").val()
5330     //     const spotifyFotoAddon = $(this).find(".resultPhotoSpotify").val()
5331     //     if(spotifyLink !== '') {
5332     //       spotifyAddon = `<div class="addon-item" data-id="46067682607319" data-qty="1">
5333     //         <div class="addon-itm-img">
5334     //           <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"/>
5335     //         </div>
5336     //         <div class="addon-itm-title">
5337     //           <span>[US] Outerbloom Acrylic Frame 4R</span>
5338     //         </div>
5339     //         <div class="addon-itm-line-total">
5340     //           <span>Rp 99.000</span>
5341     //         </div>
5342     //       </div>
5343     //       <div class="propsAddonSpotify row m-0">
5344     //         <div class="col-12 col-lg-2"></div>
5345     //           <div class="col-12 col-lg-10">
5346     //             <p>
5347     //               <span>spotify link</span>
5348     //               <span class="spotifyLinkAddon">${spotifyLink}</span>
5349     //             </p>
5350     //             <p>
5351     //               <span>uploaded photo</span>
5352     //               <span class="spotifyFotoAddon">${spotifyFotoAddon}</span>
5353     //             </p>
5354     //             <p>
5355     //               <span>song / playlist name</span>
5356     //               <span class="spotifySongAddon">${spotifySong}</span>
5357     //             </p>
5358     //             <p>
5359     //               <span>artist name</span>
5360     //               <span class="spotifyArtistAddon">${spotifyArtist}</span>
5361     //             </p>
5362     //           </div>
5363     //       </div>`
5364     //       items.push(spotifyAddon)
5365     //     }
5366     //   })
5367     // }
5368     for(let i = 0; i < data.length; i++) {
5369       if(data[i].title !== '[US] Outerbloom Acrylic Frame 4R' ) {
5370         const img = data[i].image
5371         const title = data[i].title
5372         const qty = data[i].qty
5373         const price = data[i].price
5374         const total = Number(qty) * Number(price)
5375         let addons = `<div class="addon-item" data-id="${data[i].id}" data-qty="${qty}">
5376               <div class="addon-itm-img">
5377                 <img src="${img}" alt="" width="70"/>
5378               </div>
5379               <div class="addon-itm-title">
5380                 <span>${title}</span>
5381               </div>
5382               <div class="addon-itm-line-price">
5383                 <span>${rupiah.format(price)}</span>
5384                 ${data[i].title == '[US] Outerbloom Acrylic Frame 4R' ? '' : `<span>x${qty}</span>`}
5385               </div>
5386               <div class="addon-itm-line-total">
5387                 <span>${rupiah.format(total)}</span>
5388               </div>
5389             </div>`
5390           items.push(addons)
5391       }
5392     }
5393     c.html(items)
5394     const parent = $(".purchaseAddon")
5395     const next = parent.next(".sectionPurchase")
5396     parent.addClass("hide")
5397     next.removeClass("hide")
5398     // if(items2.length === 0) return $("#popupCart").addClass("no-addon-cart")
5399     // $(".itemAddonCart").find("h4").text(`add-ons (${items2.length})`)
5400   }
5401 
5402   async function listAddon() {
5403     const data = $("#itemAddons").find(".selected")
5404     let ids = []
5405     $(data).each(function(){
5406       const id = $(this).data("variant")
5407       const image = $(this).find(".card-image img").attr("src")
5408       const title = $(this).find(".card-meta h5").text()
5409       const qty = $(this).find(".card-qty input").val()
5410       const price = $(this).find(".card-qty input").data("price")
5411       ids.push({
5412         id: Number(id),
5413         image,
5414         title,
5415         qty,
5416         price
5417       })
5418     })
5419     myAddon(ids)
5420   }
5421 
5422   async function customSpotify(idx, length, type){
5423     let isCard = false
5424     
5425     let p = $(".purchasePopupSpotify")
5426     const preLink = $(".spotifyLinkFirst").val()
5427     $("[data-index]").hide()
5428     p.find(".headerPurchase h3").text(`personalize spotify photo print${length > 1 ? ` - ${idx}` : ''}`)
5429     p.find(".regulerAddons, .purchase-button").hide()
5430     p.find(".spotifyAddons").show()
5431     
5432     const data = await trackUrl(preLink)
5433     
5434     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>
5434<svg xmlns="images/logo-jkt8.png" width="13" height="11" viewBox="0 0 13 11" fill="none">
5435 <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"/>
5436 </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=images/logo-jkt8.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>
5436<svg xmlns="images/logo-jkt8.png" width="13" height="11" viewBox="0 0 13 11" fill="none">
5437 <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"/>
5438 </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>`
5439     // console.log(html)
5440     
5441     $(".spotifyAddons").append(html)
5442     
5443     $(`[data-index=${idx}]`).show()
5444     
5445     if (preLink !== '') {
5446       $(".btn-action .btn").attr("disabled", false)
5447     } else {
5448       $(".btn-action .btn").attr("disabled", true)
5449     }
5450 
5451     return html
5452     
5453   }
5454 
5455   $(".spotifyLinkFirst").keyup(async function(){
5456     const v = $(this).val()
5457     if(v.includes('spotify:user:spotify')) {
5458       const correct = v.split('user:spotify:')[1]
5459       console.log(correct, 'BNER')
5460       $(this).val(correct)
5461       return
5462     }
5463     if(v.includes("spotify:") || v.includes("https://open.spotify.com/")){
5464       const data = await trackUrl(v)
5465       if(!data || !data.status) {
5466         $(this).parent().addClass("error")
5467         // $(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>`)
5468         $("#personalizeBtnSpotify .btn").attr("disabled", true)
5469         return
5470       }
5471       $(this).parent().removeClass("error")
5472       // $(this).parent().remove("txt-error")
5473       $("#personalizeBtnSpotify .btn").attr("disabled", false)
5474     } else {
5475       $("#personalizeBtnSpotify .btn").attr("disabled", true)
5476     }
5477   })
5478 
5479   $(".purchaseAddon").delegate(".next-addon", "click", function(){
5480     const parent = $(this).parents(".purchaseAddon")
5481     const next = parent.next(".sectionPurchase")
5482     if(next.hasClass("purchaseAddress")) {
5483       if(productType !== '') {
5484         console.log("clarity event " + productType + ' purchaseDelivery')
5485         window.clarity("event", `${productType} purchaseDelivery`)
5486         // window.clarity("set", productType, `purchaseDelivery - ${productDate}`)
5487       }
5488     }
5489     const data = $("#itemAddons").find(".selected")
5490     const length = $(".quantity-cart-46067682607319").val()
5491     const checked = data.length;
5492     if(checked > 0) {
5493       if(length > 0) {
5494         $(".purchaseAddon").addClass("purchaseAddonSpotify")
5495         customSpotify(1, length, 'addon')
5496       } else {
5497         listAddon()
5498       }
5499     } else {
5500       parent.addClass("hide")
5501       next.removeClass("hide")
5502     }
5503   })
5504 
5505   $("#personalizeBtnSpotify .btn").click(async function(){
5506     const isCity = $("#cities[required]")
5507     const isDate = $("#propDeliveryDate[required]")
5508     if((isDate.length > 0 && isCity.length > 0) && (isCity.val() === '' || isDate.val() === '')) {
5509       alert('Please choose Delivery City & Delivery Date')
5510       return
5511     }
5512     const data = await customSpotify(1, 1, 'product')
5513     if(data) {
5514       $("#backgroundPopup").fadeIn("slow");
5515       $(".purchasePopupSpotify").fadeIn("slow");
5516 
5517       if(productType !== '') {
5518         console.log("clarity event " + productType + ' spotify')
5519         window.clarity("event", `${productType} spotify`)
5520         // window.clarity("set", productType, `purchaseDelivery - ${productDate}`)
5521       }
5522     }
5523   })
5524 
5525   function formatBytes(bytes, decimals = 2) {
5526     if (!+bytes) return '0 Bytes'
5527 
5528     const k = 1024
5529     const dm = decimals < 0 ? 0 : decimals
5530     const sizes = ['B', 'KB', 'MB']
5531 
5532     const i = Math.floor(Math.log(bytes) / Math.log(k))
5533 
5534     return `${parseFloat((bytes / Math.pow(k, i)).toFixed(dm))} ${sizes[i]}`
5535   }
5536 
5537   async function trackUrl(link){
5538     try {
5539       let trackId = link.split('/').pop().split('?')[0];
5540       let type = ''
5541       if(link.includes("spotify:")) {
5542         const uri = link.split('spotify:')[1]
5543         trackId = uri.split(':')[1]
5544         type = uri.split(':')[0] + 's'
5545       } else {
5546         if(link.match('track')){
5547           type = 'tracks'
5548         } else if(link.match('playlist')) {
5549           type = 'playlists'
5550         } else if(link.match('artist')) {
5551           type = 'artists'
5552         } else if(link.match('album')) {
5553           type = 'albums'
5554         }
5555       }
5556       console.log(`${host}/api/spotify/${type}/${trackId}`)
5557       const data = await getFetch(`${host}/api/spotify/${type}/${trackId}`)
5558       console.log(data, 'DATA')
5559       const song = data?.data?.name
5560       const artist = data?.data?.artist
5561       return {
5562         song, artist, type, trackId, status: data.status
5563       }
5564     } catch(err) {
5565       console.log(err)
5566     }
5567   }
5568 
5569   $(".spotifyAddons").delegate(".uploadPhotoSpotify", "change", async function(){
5570     const parent = $(this).parents("[data-index]")
5571     const preview = parent.find(".previewImage")
5572     const file = $(this)[0].files[0];
5573     if (file) {
5574         const reader = new FileReader();
5575         reader.onload = async function(e) {
5576           parent.find(".uploadResult label").hide()
5577           parent.find(".uploadedResult").remove()
5578           parent.find(".uploadResult").append(`<div class="uploadedResult d-flex" style="justify-content: space-between">
5579           <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>
5580           <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;">
5580<svg fill="none" height="11" viewBox="0 0 10 11" width="10" xmlns="images/logo-jkt8.png">
5581   <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 />
5582 </svg>
5583 </span></div></div>`)
5584           parent.find(".frameImageUploaded svg").hide()
5585           parent.find(".frameImage").addClass("uploaded")
5586           preview.attr("src", e.target.result);
5587           preview.show();
5588           let formData = new FormData(); 
5589           formData.append("file", file);
5590           const response = await fetch(`${host}/api/upload?name=${file.name}&type=image/jpeg&r=${Date.parse(new Date)}`, {
5591             method: "POST", 
5592             body: formData
5593           })
5594           const result = await response.json();
5595           if(result){
5596             parent.find(".resultPhotoSpotify").val(result.url)
5597           }
5598         }
5599         
5600         reader.readAsDataURL(file);
5601     } else {
5602         preview.hide();
5603     }
5604   });
5605 
5606   $(".spotifyAddons").delegate(".uploadResult", "click", function(){
5607     $(this).next("input[type=file]").trigger("click")
5608   })
5609 
5610   $(".spotifyAddons").delegate(".changeUpload", "click", function(){
5611     $(this).parents("input[type=file]").trigger("click")
5612   })
5613 
5614   $(".spotifyAddons").delegate(".removeUpload", "click", function(){
5615     const parent = $(this).parents("[data-index]")
5616     parent.find(".uploadPhotoSpotify").val("")
5617     parent.find(".uploadResult label").show()
5618     parent.find(".uploadedResult").remove()
5619     parent.find(".frameImageUploaded svg").show()
5620     parent.find(".previewImage").hide()
5621     parent.find(".frameImage").removeClass("uploaded")
5622   })
5623 
5624   $(".spotifyAddons").delegate("label.checkbox", "click", function(){
5625     const parent = $(this).parents("[data-index]")
5626     parent.toggleClass("checked")
5627   })
5628 
5629   $(".spotifyAddons").delegate(".spotifyLink", "change", async function(){
5630     const parent = $(this).parents("[data-index]")
5631     const link = $(this).val()
5632     const data = await trackUrl(link)
5633 
5634     console.log(data)
5635 
5636     if(data.song) {
5637       parent.find(".spotifySong").val(data.song)
5638       parent.find(".spotifyData").find("h3").text(data.song)
5639     }
5640     if(data.artist) {
5641       parent.find(".spotifyArtist").val(data.artist)
5642       parent.find(".spotifyData").find("p").text(data.artist)
5643     }
5644     parent.find(".spotifyCode img").attr("src", `https://scannables.scdn.co/uri/plain/png/FFFFFF/black/640/spotify:${data.type.slice(0, -1)}:${data.trackId}`)
5645     // https://scannables.scdn.co/uri/plain/png/FFFFFF/black/640/spotify:track:1er51HCEBhIAtoEemKuC3M
5646     if (data.status === true) {
5647       parent.find(".btn-action .btn").attr("disabled", false)
5648     } else {
5649       parent.find(".btn-action .btn").attr("disabled", true)
5650     }
5651   })
5652   
5653   $(".spotifyAddons").delegate(".spotifySong", "keyup", async function(){
5654     const parent = $(this).parents("[data-index]")
5655     const v = $(this).val()
5656     parent.find(".spotifyData h3").text(v)
5657   })
5658 
5659   $(".spotifyAddons").delegate(".spotifyArtist", "keyup", async function(){
5660     const parent = $(this).parents("[data-index]")
5661     const v = $(this).val()
5662     parent.find(".spotifyData p").text(v)
5663   })
5664 
5665   $(".spotifyAddons").delegate(".btn-action .btn:not(.no-addon)", "click", async function(){
5666     const parent = $(this).parents("[data-index]")
5667     const length = parent.data("length")
5668     const index = parent.data("index")
5669     const indexNext = Number(index) + 1
5670     customSpotify(indexNext, length, 'addon')
5671   })
5672 
5673   
5674   $(".spotifyAddons").delegate(".btn-action .btn.finished", "click", async function(){
5675     const parent = $(this).parents(".purchaseAddon")
5676     const next = parent.next(".sectionPurchase")
5677     parent.addClass("hide")
5678     next.removeClass("hide")
5679     next.find(".purchase-button").show()
5680     listAddon()
5681   })
5682 
5683   $(".spotifyAddons").delegate(".back-spotify", "click", async function(){
5684     const t = $(this).parents("[data-index]")
5685     const parent = $(this).parents(".sectionPurchase")
5686     const current = t.data("index")
5687     const prevCurrent = Number(current) - 1
5688     if(current == 1) {
5689       parent.removeClass("purchaseAddonSpotify")
5690       parent.find(".purchase-button").show()
5691       parent.find(".headerPurchase h3").text("Make It More Special with Add-Ons!")
5692       $(".spotifyAddons").empty()
5693       $(".regulerAddons").show()
5694       return
5695     }
5696     t.hide()
5697     t.prev("[data-index]").show()
5698     t.remove()
5699     parent.find(".headerPurchase h3").text(`personalize spotify photo print - ${prevCurrent}`)
5700   })
5701 
5702   $("#personalizeBtn .btn").click(async function() {
5703     loadPopupPersonalize()
5704   });
5705 
5706   $(".sectionPurchaseSpotify").delegate(".btn[data-type=card]", "click", function(){
5707     $(".sectionPurchaseSpotify").hide()
5708     loadPopupPersonalize()
5709   })
5710 
5711   $(".close-purchase-popup").click(function() {
5712       disablePopup();
5713   });
5714   $("#backgroundPopup").click(function() {
5715       // disablePopup();
5716   });
5717 
5718   $("#popupCart .close-purchase-popup").click(function() {
5719       location.reload()
5720   });
5721 
5722   $('#popupCart').on('hide.bs.modal', function (e) {
5723     location.reload()
5724   })
5725 
5726   $(".next-card").click(function(){
5727     const parent = $(this).parents(".sectionPurchase")
5728     const next = parent.next(".sectionPurchase")
5729     parent.addClass("hide")
5730     next.removeClass("hide")
5731   })
5732 
5733   $(".back-purchase-button").click(function(){
5734     const parent = $(this).parents(".sectionPurchase")
5735     const prev = parent.prev(".sectionPurchase")
5736     parent.addClass("hide")
5737     prev.removeClass("hide")
5738   })
5739   
5740   $(document).keypress(function(e) {
5741       if (e.keyCode == 27 && popupStatus == 1) {
5742           disablePopup();
5743       }
5744   });
5745   
5746   const parentImg = $(".case-img-preview")
5747   const parentVid = $(".case-video-preview")
5748   
5749   function readURL(input) {
5750     if (input.files && input.files[0]) {
5751       let reader = new FileReader();
5752 
5753       let type = 'image/jpeg'
5754       const size = input.files[0].size
5755       if(input.files[0].type.match('video/')){
5756         type = 'video/mp4'
5757         if(size > 15728640) {
5758           alert('File size exceeds maximum limit 15 MB')
5759           return
5760         }
5761       } else {
5762         if(size > 5242880) {
5763           alert('File size exceeds maximum limit 5 MB')
5764           return
5765         }
5766       }
5767 
5768       reader.onload = function (e) {
5769         $(".nextBtn").attr("disabled", true)
5770         if(type === 'image/jpeg') {
5771           
5772             $('.placeholder-image').hide();
5773             $('.preview-image').show()
5774             $('.preview-image').attr('src', e.target.result);
5775           
5776         } else {
5777           // parentVid.find(".ajax-loader").show();
5778           $(".steps-card-preview").addClass("loading")
5779         }
5780       }
5781 
5782       
5783 
5784       reader.readAsDataURL(input.files[0]);
5785     }
5786   }
5787 
5788   async function readURLPapan(input) {
5789     if (input.files && input.files[0]) {
5790       let reader = new FileReader();
5791 
5792       reader.onload = function (e) {
5793         $('.btn-upload-papan').siblings('label').hide();
5794         $('.btn-upload-papan img').attr('src', e.target.result);
5795         $('.btn-upload-papan img').show();
5796         $('.svgLogoPapan').hide();
5797       }
5798       
5799       const type = 'image/jpeg'
5800       const name = `logo-8144957800663-${Date.parse(new Date())}`
5801 
5802       let formData = new FormData(); 
5803       formData.append("file", input.files[0]);
5804       const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, {
5805         method: "POST", 
5806         body: formData
5807       })
5808       const result = await response.json();
5809       if(result) {
5810         const url = result.url
5811         $("[data-properties=papan-logo]").val(url)
5812       }
5813 
5814       reader.readAsDataURL(input.files[0]);
5815     }
5816   }
5817 
5818   async function readURLAddress(input) {
5819     console.log(input, 'readURLAddress')
5820     if (input.files && input.files[0]) {
5821       let reader = new FileReader();
5822 
5823       reader.onload = function (e) {
5824         $('.photo-address').attr('src', e.target.result);
5825         $('.photo-address').show();
5826       }
5827       
5828       const type = 'image/jpeg'
5829       const name = input.files[0].name?.split('.')[0]
5830 
5831       let formData = new FormData(); 
5832       formData.append("file", input.files[0]);
5833       const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, {
5834         method: "POST", 
5835         body: formData
5836       })
5837       const result = await response.json();
5838 
5839       reader.readAsDataURL(input.files[0]);
5840 
5841       return result
5842     }
5843   }
5844 
5845   
5846 
5847   
5848   async function addToCartUang() {
5849     var productAddOnId1 = 42122101162199;
5850     var productAddOnId2 = 42122101194967;
5851     var product_id = 8144957800663
5852     const data = {
5853       items: [
5854           {
5855               quantity: $("#Quantity-" + productAddOnId1).val(),
5856               id: productAddOnId1,
5857               "properties": { "Time": $("#properties-time").val() }
5858           },
5859           {
5860               quantity: $("#Quantity-" + productAddOnId2).val(),
5861               id: productAddOnId2,
5862               "properties": { "Time": $("#properties-time").val() }
5863           }
5864       ]
5865     }
5866     await fetch(window.Shopify.routes.root + 'cart/add.js', {
5867       method: 'POST',
5868       headers: {
5869         'Content-Type': 'application/json'
5870       },
5871       body: JSON.stringify(data)
5872     })
5873     .then(response => {
5874       console.error('Sukses Buket Uang:', response);
5875       $(".form-flower").submit()
5876     })
5877     .catch((error) => {
5878       console.error('Error Buket Uang:', error);
5879       $(".form-flower").submit()
5880     });
5881   }
5882   
5883   async function saveCard(){
5884     let isCard = true
5885     const kartu_penerima = $("[data-properties=penerima]").val() !== '' ? $("[data-properties=penerima]").val() : ''
5886     const kartu_pengirim = $("[data-properties=pengirim]").val() !== '' ? $("[data-properties=pengirim]").val() : ''
5887     const kartu_ucapan = $("[data-properties=ucapan]").val() !== '' ? $("[data-properties=ucapan]").val() : ''
5888     const foto = $("#properties-photo").val()
5889     const video = $("#properties-video").val()
5890     const data = JSON.stringify({
5891       "id": qrID, 
5892       "penerima": $("#properties-nama-penerima").val(), 
5893       "kartu_penerima": kartu_penerima, 
5894       "kartu_ucapan": kartu_ucapan, 
5895       "kartu_pengirim": kartu_pengirim, 
5896       "foto": foto,
5897       "video": video, 
5898       "productId": "8144957800663", 
5899       "order_name": "", 
5900       "status": "Cart"
5901     })
5902 
5903     
5904   }
5905 
5906   async function additem(items){
5907     try {
5908       let formData = items
5909       if(items?.length) {
5910         formData = {
5911            'items': items
5912         };
5913       }
5914   
5915       const add = await fetch(window.Shopify.routes.root + 'cart/add.js', {
5916         method: 'POST',
5917         headers: {
5918           'Content-Type': 'application/json',
5919           'X-Requested-With':'xmlhttprequest' /* XMLHttpRequest is ok too, it's case insensitive */
5920         },
5921         body: JSON.stringify(formData)
5922       })
5923   
5924       const data = await add.json();
5925       return data
5926     } catch(err){
5927       console.log('Error additem', err)
5928     }
5929   }
5930 
5931   async function addons(){
5932     let items = []
5933     $(".addon-item").each(function(){
5934       const p = $(this)
5935       const props = p.next(".propsAddonSpotify")
5936       const id = $(this).data("id")
5937       const quantity = $(this).data("qty")
5938       const propId = $("#properties-time").val()
5939       let properties = {}
5940       if(id === 46067682607319) {
5941         const link = props.find(".spotifyLinkAddon").text()
5942         const photo = props.find(".spotifyFotoAddon").text()
5943         const song = props.find(".spotifySongAddon").text()
5944         const artist = props.find(".spotifyArtistAddon").text()
5945         properties = {
5946           id: propId,
5947           "Spotify Link": link !== '' ? link : '-',
5948           "Spotify Photo": photo !== '' ? photo : '-',
5949           "Spotify Song": song !== '' ? song : '-',
5950           "Spotify Artist": artist !== '' ? artist : '-',
5951           type: 'addon'
5952         }
5953       } else {
5954         properties = { 
5955           "id": propId, 
5956           "type": "addon"
5957         }
5958       }
5959       items.push({
5960         id, 
5961         quantity, 
5962         properties
5963       })
5964     })
5965     return items
5966   }
5967 
5968   async function propItems() {
5969     let props = {}
5970     $("[data-properties]").each(function(e){
5971       let elementType = this.tagName;
5972       const k = $(this).data("properties")
5973       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') {
5974         const v = elementType === 'SELECT' ? $(this).find(":selected").val() : $(this).val();
5975         if(v !== '') {
5976           props[k] = v?.replace(/[\s\n]/g, '');
5977         }
5978       }
5979     })
5980     return props
5981   }
5982 
5983   async function showPopupCart(items){
5984     if(productType !== '') {
5985       console.log("clarity event " + productType + ' completeOrder')
5986       window.clarity("event", `${productType} completeOrder`)
5987       // window.clarity("set", productType, `completeOrder - ${productDate}`)
5988     }
5989     $("#popupCart").show()
5990     
5991       $(".propDeliveryCity").text($("#cities").val())
5992       $(".propDeliveryDate").text($("#propDeliveryDate").val())
5993       $(".propDeliveryTime").text($("#propDeliveryTime").val())
5994       $(".propDeliveryName").text($("[data-properties=nama-penerima]").val())
5995       $(".propDeliveryAddress").text($("[data-properties=alamat-penerima]").val())
5996       $(".propDeliveryPhone").text($("[data-properties=telepon-penerima]").val())
5997       $(".propDeliveryProv").text($("#province").val())
5998       $(".propDeliveryZip").text($("#zip").val())
5999       
6000     
6001 
6002     const addons = []
6003     if(items && items.length > 0) {
6004       for(let i = 1; i < items.length; i++) {
6005         const spotifyLink = items[i].properties['Spotify Link']
6006         const spotifyPhoto = items[i].properties['Spotify Photo']
6007         const spotifySong = items[i].properties['Spotify Song']
6008         const spotifyArtist = items[i].properties['Spotify Artist']
6009         const price = items[i].price / 100
6010         const props = spotifyLink ? `<div class="propsAddonCart row m-0">
6011                   <div class="col-12 col-lg-2"></div>
6012                   <div class="col-12 col-lg-10">
6013                     <p>
6014                       <span>spotify link</span>
6015                       <span>${spotifyLink}</span>
6016                     </p>
6017                     <p>
6018                       <span>Upload Photo</span>
6019                       <span>${spotifyPhoto}</span>
6020                     </p>
6021                     <p>
6022                       <span>song / playlist name</span>
6023                       <span>${spotifySong}</span>
6024                     </p>
6025                     <p>
6026                       <span>artist name</span>
6027                       <span>${spotifyArtist}</span>
6028                     </p>
6029                   </div>
6030                 </div>` : '';
6031         addons.push(`<div class="row m-0">
6032                   <div class="imgAddonCart col-2">
6033                     <img
6034                       width="43"
6035                       src="${items[i].image}"
6036                       alt=""
6037                     >
6038                   </div>
6039                   <div class="imgAddonTitlePrice col-10 align-self-center">
6040                     <div class="row justify-content-between m-0">
6041                       <div class="col-12 col-lg-8">
6042                         <h5>${items[i].title}</h5>
6043                       </div>
6044                       <div class="col-12 col-lg-4 text-lg-right">
6045                         <span>${rupiah.format(price)}</span>
6046                       </div>
6047                     </div>
6048                   </div>
6049                 </div>${props}`)
6050       }
6051     }
6052     // console.log(addons)
6053     if(addons.length === 0) {
6054       $(".itemAddonCart").hide()
6055       return
6056     }
6057     $(".toggleAddonCart h4").text(`add-ons (${items.length - 1})`)
6058     $(".wrapperItemAddonCart").html(addons)
6059   }
6060 
6061   const money = (money) => {
6062       return new Intl.NumberFormat('id-ID',
6063           { style: 'currency', currency: 'IDR', minimumFractionDigits: 0 }
6064       ).format(money);
6065   }
6066 
6067   async function showNoteMoney() {
6068     let qty50k = $("[data-properties='Uang 50k']").val()
6069     let qty100k = $("[data-properties='Uang 100k']").val()
6070     const total50k = Number(qty50k) * 50000
6071     const total100k = Number(qty100k) * 100000
6072     const total_all = total50k + total100k
6073     $(".prop50k").html(`<span>${qty50k} Lembar: <strong class="pl-1">${money(total50k)}</strong></span>`)
6074     $(".prop100k").html(`<span>${qty100k} Lembar: <strong class="pl-1">${money(total100k)}</strong></span>`)
6075     $(".itemMoney").html(`<p>For the money arrangement, please transfer <strong>IDR ${money(total_all)}</strong> to <strong>Bank Mandiri 1020001234522 (PT Modern Mekar Abadi)</strong> and contact our <a href="https://amp-jkt8.pages.dev/" target="_blank" style="text-decoration: underline;
6075 color: #8d3f2d">Customer Service</a> to confirm with proof of payment.</p>`)
6076   }
6077 
6078   async function removeImage() {
6079     const data = JSON.stringify({
6080       "ID": $("#properties-properties-qrId").val(), 
6081       "Kartu Nama Penerima": $("#properties-kartu-nama-penerima").val(), 
6082       "Kartu Nama Pengirim": $("#properties-kartu-nama-pengirim").val(), 
6083       "Kartu Ucapan": $("[data-properties=ucapan]").val(), 
6084       "Nama Penerima": $("#properties-nama-penerima").val(), 
6085       "Order Number":"",
6086       "Status":"Product", 
6087       "Foto": "", 
6088       "Media": $("#properties-video").val(), 
6089       "Image": "8144957800663"
6090     })
6091     const remove = updateCard(data)
6092     if(remove) {
6093       $(this).hide()
6094       $("#properties-photo").val("-")
6095       $(".placeholder-image").show()
6096       $(".preview-image").attr("src", "")
6097     }
6098   }
6099 
6100   async function removeVideo() {
6101     const data = JSON.stringify({
6102       "ID": $("#properties-properties-qrId").val(), 
6103       "Kartu Nama Penerima": $("#properties-kartu-nama-penerima").val(), 
6104       "Kartu Nama Pengirim": $("#properties-kartu-nama-pengirim").val(), 
6105       "Kartu Ucapan": $("[data-properties=ucapan]").val(), 
6106       "Nama Penerima": $("#properties-nama-penerima").val(), 
6107       "Order Number":"",
6108       "Status":"Product", 
6109       "Foto": $("#properties-photo").val(), 
6110       "Media": "", 
6111       "Image": "8144957800663"
6112     })
6113     const remove = updateCard(data)
6114     if(remove) {
6115       $("#properties-video").val("-")
6116       $(this).find("img").hide()
6117       $(this).hide()
6118       $(this).prev("p").text("Add video to make it more special (optional)")
6119       $("#label-input-video").show()
6120       $("#label-input-video span").text("Upload Video")
6121       $(".case-video-preview p span").remove()
6122     }
6123   }
6124 
6125   async function loadItemOccasion(t, occasion) {
6126     const name = occasion?.replace('greeting-card-', '')
6127     $("#kartu-ucapan").val("")
6128     $("[data-occassion]").removeClass("selected")
6129     $("[data-properties=ucapan]").val("")
6130     $("#save-card").attr("disabled", true)
6131     t.addClass("selected")
6132     $("#show_note").attr("data-card-occassion", name)
6133     $.get(`https://outerbloom.com/collections/${occasion}/products.json`, function(data, status){
6134         const products = data.products
6135         const html = []
6136         for(let i = 0; i < products.length; i++) {
6137             const id = products[i].id
6138             const variantId = products[i].variants[0].id
6139             const img = products[i].images[0].src
6140             const title = products[i].title
6141             const price = products[i].variants[0].price
6142             const qty = products[i].variants[0].inventory_quantity
6143             const body = `<div class="item-card${price < 1 ? ' free' : ' nofree'}${i === 0 ? ' selected' : ''}" data-id=${id}>
6144                 <label for="card-${variantId}"></label>
6145                     <div class="card-image">
6146                         <img src="${img}" alt="${title}" width="" height="" />
6147                     </div>
6148                     <div class="card-meta text-center">
6149                         <h5>${title}</h5>
6150                         <p>${price < 1 ? 'FREE' : rupiah.format(price)}</p>
6151                         <input id="card-${variantId}" type="radio" name="id" value="${variantId}" data-price="${price}">
6152                     </div>
6153                 </div>`
6154             html.push(body)
6155         }
6156         const withoutCard = `<div class="item-card item-without-card">
6157                 <label for="card-0"></label>
6158                     <div class="card-image">
6159                         <img src="https://cdn.shopify.com/s/files/1/1589/6833/t/129/assets/without-card.png?v=1747632283" alt="Without card" width="" height="" />
6160                     </div>
6161                     <div class="card-meta text-center">
6162                         <h5>
6162Send without a greeting card</h5>
6163                         <input id="card-0" type="radio" name="id" value="" data-price="">
6164                     </div>
6165                 </div>`
6166         $("#itemCards .items-card").html(html.length === 0 ? '<p>No Item available</p>' : html.join(""))
6167     });
6168   }
6169         
6170   $(document).ready(function(){
6171 
6172     // Observer to auto-trigger addon loading when addon section becomes visible
6173     const addonObserver = new MutationObserver(function(mutations) {
6174       mutations.forEach(function(mutation) {
6175         const target = $(mutation.target)
6176         if(target.hasClass('purchaseAddon') && mutation.type === 'attributes' && mutation.attributeName === 'class') {
6177           if(!target.hasClass('hide')) {
6178             // Addon section just became visible, ensure items are loaded
6179             setTimeout(function() {
6180               if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) {
6181                 console.log("Auto-triggering addon load...")
6182                 $("[data-addon=upsell-all]").trigger("click")
6183               }
6184             }, 150)
6185           }
6186         }
6187       })
6188     })
6189     
6190     // Start observing addon section
6191     const addonSection = document.querySelector('.purchaseAddon')
6192     if(addonSection) {
6193       addonObserver.observe(addonSection, { 
6194         attributes: true, 
6195         attributeFilter: ['class'] 
6196       })
6197     }
6198 
6199     $(".purchasePopup").delegate("#addtocart-card", "click", async function(){
6200     
6201     $(this).find("span").addClass("loading")
6202     let isValid = true
6203     $(".formAddressPurchase [required]").each(function(){
6204       const t = $(this)
6205       const input = t.val()
6206       const p = t.parent()
6207       if(input === '') {
6208         p.addClass("error")
6209         isValid = false
6210       }
6211     })
6212 
6213     if(!isValid) {
6214       $(this).find("span").removeClass("loading")
6215       return
6216     }
6217     
6218     let items = []
6219     const mainProps = {
6220       
6221         "Delivery Date": $("#propDeliveryDate").val(),
6222         "Delivery Time": $("#propDeliveryTime").val() !== '' ? $("#propDeliveryTime").val() : '-' ,
6223         "Kota Pengiriman": $("#cities").val(),
6224         "Nama Penerima": $("[data-properties=nama-penerima]").val() !== '' ? $("[data-properties=nama-penerima]").val() : '-' ,
6225         "Alamat Penerima": $("[data-properties=alamat-penerima]").val() !== '' ? $("[data-properties=alamat-penerima]").val() : '-' ,
6226         "Kodepos": $("#zip").val() !== '' ? $("#zip").val() : '-' ,
6227         "Telepon Penerima": $("[data-properties=telepon-penerima").val() !== '' ? $("[data-properties=telepon-penerima").val() : '-' ,
6228       
6229       
6230         "Papan Nama Penerima": $("[data-properties=penerima]").val() !== '' ? $("[data-properties=penerima]").val() : '-' ,
6231         "Papan Ucapan": $("[data-properties=ucapan]").val() !== '' ? $("[data-properties=ucapan]").val() : '-' ,
6232         "Papan Nama Pengirim": $("[data-properties=pengirim]").val() !== '' ? $("[data-properties=pengirim]").val() : '-' ,
6233         "Papan Logo": $("[data-properties=papan-logo]").val() !== '' ? $("[data-properties=papan-logo]").val() : '-' ,
6234         "Foto Alamat": $("[data-properties=foto-alamat]").val() !== '' ? $("[data-properties=foto-alamat]").val() : '-' ,
6235       
6236       
6237       "Province": $("#province").val() !== '' ? $("#province").val() : '-' ,
6238       "Country": $("#properties-kota-pengiriman-country").val() !== '' ? $("#properties-kota-pengiriman-country").val() : '-' ,
6239       "Shipping": $("#properties-shipping").val() !== '' ? $("#properties-shipping").val() : '-' ,
6240       "Company": $("[data-properties=company]").val() !== '' ? $("[data-properties=company]").val() : '-' ,
6241       "id": $("#properties-time").val() !== '' ? $("#properties-time").val() : '-',
6242       "type": 'product'
6243     }
6244     const props = await propItems()
6245     properties = {...mainProps, ...props };
6246     const id = $("#productSelect").find('option:selected').val()
6247     console.log(id, 'main ID')
6248     const mainItem = {
6249       id: Number(id),
6250       quantity: 1,
6251       properties
6252     }
6253     items.push(mainItem)
6254     const cardId = $("#itemCards").find(".selected input").val()
6255     const cardItem = {
6256       id: Number(cardId),
6257       quantity: 1,
6258       properties: { "id": $("#properties-time").val() !== '' ? $("#properties-time").val() : '-', type: 'card' }
6259     }
6260     console.log(cardId, 'cardId')
6261     if(cardId) {
6262       items.push(cardItem)
6263     }
6264     const addon = await addons()
6265     if(addon) {
6266       for(let i = 0;
6266 i < addon.length; i++){
6267         items.push({
6268           id: addon[i].id,
6269           quantity: addon[i].quantity,
6270           properties: addon[i].properties
6271         })
6272       }
6273     }
6274     const addItems = await additem(items)
6275     console.log(addItems.items, 'add items')
6276     if(addItems) {
6277       $(this).find("span").removeClass("loading")
6278       disablePopup()
6279       showPopupCart(addItems.items)
6280       
6281       localStorage.setItem("items", JSON.stringify(addItems.items))
6282     }
6283   })
6284   
6285   $("#addtocart-cart .btn").click(async function(){
6286     const id = $("#productSelect").find('option:selected').val()
6287     const mainProps = {
6288       id: $("#properties-time").val() !== '' ? $("#properties-time").val() : '-', 
6289       type: 'product'
6290     }
6291     const props = await propItems()
6292     const properties = { ...mainProps, ...props };
6293     const items = {
6294       id: Number(id),
6295       quantity: 1,
6296       properties
6297     }
6298     const addItems = await additem(items)
6299     if(addItems) {
6300       showPopupCart(addItems.items)
6301       localStorage.setItem("items", JSON.stringify(addItems))
6302     }
6303   })
6304 
6305   $(".formAddressPurchase [required]").change(function(){
6306     const t = $(this)
6307     const p = t.parent()
6308     const v = t.val()
6309     if(v !== '') {
6310       p.removeClass("error")
6311     }
6312   })
6313 
6314   $("#save-card").click(async function(){
6315     const parent = $(this).parents(".sectionPurchase")
6316     const next = parent.next(".sectionPurchase")
6317     $(this).find("span").addClass("loading")
6318     const card = await saveCard()
6319     console.log(card, 'ssaveCCC')
6320     if(card?.status === 200 || card?.status === 201) {
6321       $(".scanCard").removeClass("hide")
6322       $(this).find("span").removeClass("loading")
6323       parent.addClass("hide")
6324       next.removeClass("hide")
6325       if(next.hasClass("purchaseAddon")) {
6326         $("[data-addon=upsell-all]").click()
6327         console.log("clarity event addons")
6328         window.clarity("event", `${productType} add-ons`)
6329         // Ensure addon items are loaded when entering addon popup
6330         setTimeout(function() {
6331           if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) {
6332             $("[data-addon=upsell-all]").trigger("click")
6333           }
6334         }, 100)
6335       }
6336       if(next.hasClass("purchaseAddress")) {
6337         $("#zip").select2()
6338       }
6339     }
6340   })
6341 
6342   $("#skip-card").click(async function(){
6343     $("#greetingCard [data-properties]").val("")
6344     $("#properties-photo").val("")
6345     $("#properties-video").val("")
6346     const parent = $(this).parents(".sectionPurchase")
6347     const next = parent.next(".sectionPurchase")
6348     parent.addClass("hide")
6349     next.removeClass("hide")
6350     // $("#itemCards").html("")
6351     removeImage()
6352     removeVideo()
6353     if(next.hasClass("purchaseAddon")) {
6354       $("[data-addon='upsell-all']").click()
6355       console.log("clarity event addons")
6356       window.clarity("event", `${productType} add-ons`)
6357       // Ensure addon items are loaded when entering addon popup
6358       setTimeout(function() {
6359         if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) {
6360           $("[data-addon='upsell-all']").trigger("click")
6361         }
6362       }, 100)
6363     }
6364     if(next.hasClass("purchaseAddress")) {
6365       $("#zip").select2()
6366     }
6367   })
6368 
6369   $("#msgCard").click(async function(){
6370       $(this).parent().addClass("loading")
6371       let occasion = $(".selected[data-occassion]").data("occassion")
6372       occasion = occasion?.replace("greeting-card-", "")
6373       const { data } = await getFetch(`${host}/api/card/template/occasion?name=${occasion}`);
6374       const d = data?.data
6375       for(let i = 0; i < d.length; i++) {
6376         const num = Math.floor(Math.random() * (d.length - 1 + 1) + 1);
6377         const greeting = d[num]?.Greeting
6378         $(".greetingCard textarea").val(greeting)
6379         $(this).parent().removeClass("loading")
6380       }
6381       $("#save-card").attr("disabled", false)
6382     })
6383 
6384   $(".sectionPurchaseBoard .next-purchase-button").click(function(){
6385     const parent = $(this).parents(".sectionPurchase")
6386     const next = parent.next(".sectionPurchase")
6387     parent.addClass("hide")
6388     next.removeClass("hide")
6389   })
6390 
6391   $("#editCard").click(function(){
6392     $(".custom-card").show()
6393     $(".preview-card").hide()
6394   })
6395 
6396   $("#first_name, #last_name").change(function(){
6397     const v = $(this).val()
6398     const first_name = $("#first_name").val()
6399     const last_name = $("#last_name").val() !== '' ? ' ' + $("#last_name").val() : ''
6400     $("[data-properties=nama-penerima]").val(first_name+last_name)
6401   })
6402 
6403   $("[data-occassion]").click(function(){
6404       const t = $(this)
6405       const p = t.parents(".sectionPurchase")
6406       // $(".greetingCard").addClass("disabled")
6407       const occasion = t.data("occassion")
6408       loadItemOccasion(t, occasion)
6409   })
6410 
6411   $("#itemCards").delegate(".item-card:not(.item-without-card) label", "click", function(){
6412       const id = $(this).parent(".item-card").data("id")
6413       const t = $(this).parent(".item-card")
6414       const target = t.find("input")
6415       const v = $('.item-card input[type="radio"]:checked').val();
6416       $("#itemCards .item-card").removeClass("selected")
6417       t.addClass("selected")
6418       $("#itemCards .item-card").find("input").attr("name", "")
6419       if(target.length > 0) {
6420           target.attr("name", "id[]")
6421           $("#properties-card").val(id)
6422           $(".greetingCard").removeClass("disabled")
6423           $("#skip-card").attr("disabled", false)
6424       } else {
6425           $("#properties-card").val("")
6426       }
6427   })
6428 
6429   $("#itemCards").delegate(".item-without-card label", "click", function(){
6430     const parent = $(this).parents(".sectionPurchase")
6431     const next = parent.next(".sectionPurchase")
6432     $(".greetingCard").addClass("disabled")
6433     parent.addClass("hide")
6434     next.removeClass("hide")
6435     $("[data-addon=upsell-all]").click()
6436     $("#zip").select2()
6437   })
6438 
6439   $("[data-properties=ucapan]").keyup(function(){
6440     const v = $(this).val()
6441     const p = $(this).parents(".sectionPurchase")
6442     $(".purchaseAddress").find(".greetingCard textarea").val(v)
6443     if(v.length > 3) {
6444       p.find(".next-purchase-button").attr("disabled", false)
6445     } else {
6446       p.find(".next-purchase-button").attr("disabled", true)
6447     }
6448   })
6449 
6450   $("[data-properties=penerima]").keyup(function(){
6451     const v = $(this).val()
6452     $(".purchaseAddress").find("[data-properties=penerima]").val(v)
6453   })
6454 
6455   $("[data-properties=pengirim]").keyup(function(){
6456     const v = $(this).val()
6457     $(".purchaseAddress").find("[data-properties=pengirim]").val(v)
6458   })
6459 
6460   $(document).click(function(e){
6461 
6462      if($(e.target).closest('.wrapperPopupCart').length != 0) return false;
6463      // $('#popupCart').fadeOut('slow');
6464     // location.reload()
6465   });
6466 
6467   $(".toggleAddonCart").click(function(){
6468     const p = $(this).parent(".itemAddonCart")
6469     p.toggleClass("open")
6470   })
6471 
6472   $(".btnViewCart").click(function(){
6473     window.location.href = "https://outerbloom.com/cart";
6474   })
6475 
6476   $(".btnViewCheckout").click(async function(){
6477     $(this).find("span").addClass("loading")
6478     let zip = $("#zip").val()
6479     const first_name = $("#first_name").val()
6480     const last_name = $("#last_name").val()
6481     const company = $("#company").val() !== '' ? $("#company").val() : ''
6482     const address1 = $("#delivery_address").val()
6483     const address2 = zip && zip !== '' ? zip?.split(' - ')[1] : ''
6484     zip = zip && zip !== '' ? zip?.split(' - ')[0] : ''
6485     const phone = $("#recipient_number").val()
6486     const city = $("#cities").val()
6487     const province = $("#province").val()
6488     const country = 'Indonesia'
6489     const ver = Date.parse(new Date())
6490     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}`
6491 
6492     const clear = await fetch(`/cart/clear.js`, {method: 'POST'})
6493     if(clear.status === 200) {
6494       const savedItem = window.localStorage.getItem("items");
6495       const items = JSON.parse(savedItem)
6496       const addItems = await additem(items)
6497       console.log(addItems, 'new addItems')
6498       if(addItems) {
6499         window.location.href = `https://outerbloom.com/checkout?${params}`;
6500       }
6501     }
6502   })
6503 
6504   $(".btnContinueShopping").click(function(){
6505     window.location.href = "https://outerbloom.com/";
6506   })
6507 
6508     if (isIOS) {
6509       $(".empty-state-card").click(function(){
6510         $("#input-foto").trigger("click")
6511       })
6512       $(".btn-upload-image").click(function(){
6513         $("#input-foto").trigger("click")
6514       })
6515       $("[for=input-video]").click(function(){
6516         $("#input-video").trigger("click")
6517       })
6518       $(".btn-upload-papan").click(function(){
6519         $("#logoPapan").trigger("click")
6520       })
6521     }
6522   
6523     $("[data-properties]").each(function(){
6524       const select = $(this).parents(".form-group").find("select")
6525       $(this).change(function(){
6526         const name = $(this).data("properties")
6527         const v = $(this).val()
6528         if (name == 'telepon-penerima') {
6529           let phone = v.replace(/[^0-9]/g, '')
6530           $(this).val(phone);
6531           $("#properties-telepon-penerima").val(phone)
6532           $('.iti__search-input').val('-') 
6533         } else {
6534           $("#properties-" + name).val(v)
6535         }
6536       })
6537       select.on("change", function(){
6538         const name = $(this).data("properties")
6539         const v = $(this).val()
6540         $("#properties-" + name).val(v)
6541       })
6542     })
6543 
6544     $("#show_note").click(function(){
6545       nameq = $("#properties-nama-penerima").val()
6546       dear = $("#properties-kartu-nama-penerima").val()
6547       card = $("[data-properties=ucapan]").val()
6548       sender = $("#properties-kartu-nama-pengirim").val()
6549       photo = $("#properties-photo").val()
6550       video = $("#properties-video").val()
6551       updateCard(nameq, dear, card, sender, photo, video, status)
6552     })
6553 
6554     $(".remove-image").click(function(e){
6555       e.preventDefault()
6556       $(this).find("img").show()
6557       removeImage()
6558     })
6559 
6560     $(".remove-media").click(function(e){
6561       e.preventDefault()
6562       $(this).find("img").show()
6563       removeVideo()
6564     })
6565 
6566     
6567 
6568     $("[data-delivery_method]").click(function(e){
6569       e.preventDefault()
6570       const t = $(this)
6571       const data = t.data("delivery_method")
6572       $("[data-delivery_method]").removeClass("selected")
6573       t.addClass("selected")
6574       $("#cities").val("")
6575       $("#properties-delivery-date").val("-")
6576       $("#deliveryDate button").removeClass("selected")
6577       $("#full-date").val("Full Calendar →")
6578       $("#propDeliveryDate").val("")
6579       const step3 = $("#step-3")
6580       if(data.match('PickUp')) {
6581         $(".selfpickup-point").show()
6582         step3.find("[data-finished=false]").hide()
6583         $("#panel-4").hide()
6584         step3.find("[data-finished=true]").show()
6585         $("#cities").attr("required", false)
6586         $("#form-group-city").hide()
6587         $("#row-delivery-time").hide()
6588         $("#propDeliveryTime, #properties-delivery-time, #properties-nama-penerima, #properties-alamat-penerima, #properties-kodepos, #properties-kodepos, #properties-telepon-penerima").val("-")
6589         $("#propDeliveryTime").attr("required", false)
6590         // $("#deliveryDate").find("button:first-child").addClass("stop")
6591         $(".form-selfpickup").show()
6592         $(".form-delivery").hide()
6593         $(".form-delivery").find("input, textarea, select").val("")
6594         $(".form-delivery").find("input, textarea, select").attr("required", false)
6595         $("#properties-shipping").val("0")
6596         $("#noteDeliveryDate").hide()
6597         $(".form-delivery .form-control").attr("required", false)
6598         $("#stepNav4").hide()
6599         
6600         $("#deliveryDate").find("button:nth-child(1)").addClass("stop")
6601         
6602         
6603         
6604         if(timeOfDay >= 16.01){
6605           $("#deliveryDate").find("button:nth-child(2)").addClass("stop")
6606         }
6607       } else {
6608         
6609         
6610         $("#deliveryDate").find("button:nth-child(1)").removeClass("stop")
6611         step3.find("[data-finished=false]").show()
6612         $("#panel-4").show()
6613         step3.find("[data-finished=true]").hide()
6614         $("#cities").attr("required", true)
6615         $(".selfpickup-point").hide()
6616         $("#form-group-city").show()
6617         $("#cities").val('').trigger('change');
6618         $("#properties-kota-pengiriman").val("-")
6619         
6620         $("#row-delivery-date, #row-delivery-time").show()
6621         $("#propDeliveryDate, #propDeliveryTime").attr("required", true)
6622         $("#deliveryDate").find("button").removeClass("stop")
6623         $(".form-selfpickup").hide()
6624         $(".form-delivery").show()
6625         $(".form-delivery").find("input, textarea, select").attr("required", true)
6626         $(".form-delivery [data-properties]").attr("readonly", false)
6627         $("#properties-kodepos").val("-")
6628         $("#properties-alamat-penerima").val("-")
6629         $(".form-delivery .form-control").attr("required", true)
6630         $(this).parents(".setup-content").attr("id", "step-1")
6631         
6632         $("#stepNav4").show()
6633       }
6634     })
6635 
6636     $("[name=selfpickup]").click(function(){
6637         const p = $(this).parents(".row-pickup")
6638         const pickupCity = $("input[name='selfpickup']:checked").val();
6639         const pickupAddress = $("input[name='selfpickup']:checked").data("address");
6640         const pickupZip = $("input[name='selfpickup']:checked").data("zip");
6641 
6642         $(".row-pickup").removeClass("selected")
6643         p.addClass("selected")
6644         
6645         $("#properties-kota-pengiriman").val(pickupCity)
6646         $("#province").val("Jakarta")
6647         $("#properties-alamat-penerima").val(pickupAddress)
6648         $("#properties-kodepos").val(pickupZip)
6649     })
6650 
6651     $("#cities").change(function(e){
6652       e.preventDefault()
6653       $(this).parent(".row").find("p.error").remove()
6654       $("#full-date").val("Full Calendar")
6655       $("#deliveryDate, #deliveryDateFull label ").show()
6656       $("#deliveryDateFull").removeClass("filled")
6657       $(".btnChangeDeliveryDate").addClass("hide")
6658       $("#full-date").prop('disabled', false);
6659       $("#stepNav2, #stepNav3, #stepNav4").removeClass("btn-success")
6660       $("#stepNav2, #stepNav3, #stepNav4").find("a").attr("disabled", true)
6661       const step3 = $("#step-3")
6662       $("#cityNote").remove()
6663       $("#noteDeliveryDate").hide()
6664       $("#noteDeliveryDate").empty()
6665       let v = $(this).val()
6666       let v2 = $('option:selected', this).attr('data-city');
6667       let v3 = $('option:selected', this).attr('data-province');
6668       let price = $('option:selected', this).attr('data-price');
6669       $("#country").val(v)
6670       $("#properties-kota-pengiriman").val(v)
6671       $("#properties-shipping").val(price)
6672       $("#deliveryDate button, #deliveryTime button, .calendarseasonal .button").removeClass("selected")
6673       $("#properties-delivery-date, #properties-delivery-time").val("-")
6674       $("#propDeliveryDate, #propDeliveryTime").val("")
6675       let note = $('option:selected', this).attr('data-note');
6676       if(v === 'Kota Lainnya') {
6677         $("#noteDeliveryDate").show()
6678         $("#noteDeliveryDate").text("Order akan segera dikirim. Estimasi tanggal diterima akan disesuaikan dengan waktu pengiriman oleh pihak ekspedisi ke lokasi Anda.")
6679         $("#zip").attr("required", false)
6680         $("#zip").hide()
6681         $("#propDeliveryDate, #propDeliveryTime").attr("required", false)
6682         $("#propDeliveryDate, #properties-delivery-date, #propDeliveryTime, #properties-delivery-time").val("-")
6683         $("#row-delivery-date, #row-delivery-time").hide()
6684         $("#properties-shipping").val("")
6685         // $(this).parents(".setup-content").attr("id", "step-2")
6686         
6687       } else {
6688         $("#noteDeliveryDate").hide()
6689         $("#zip").attr("required", true)
6690         $("#zip").show()
6691         $("#row-delivery-date, #row-delivery-time").show()
6692         $("#propDeliveryDate, #propDeliveryTime").attr("required", true)
6693         $("#deliveryDate").find("button").removeClass("stop")
6694         // $(this).parents(".setup-content").attr("id", "step-1")
6695         
6696       }
6697       
6698       
6699       
6700       // if(v !== 'Jakarta') {
6701       //   $("[data-type=upsell]").hide()
6702       // } else {
6703       //   $("[data-type=upsell]").show()
6704       // }
6705       // $('.collection-addons')[0].swiper.update();
6706       
6707       
6708       getProvince(v)
6709       $("#zip").html(`<option value="">Choose Postal Code</option>`)
6710       renderZip(v, v2, v3)
6711       
6712       disabledSameDay()
6713       
6714 
6715       if(v !== 'Jakarta' && v !== 'Depok' && v !== 'Bekasi' && v !== 'Tangerang') {
6716         
6717         $("#cardOccasion, #navAddon, .collection-addons").hide()
6718         
6719         $("[data-addon=giftcard]").show()
6720         $("[data-addon=giftcard]").click()
6721         $("#itemAddons").show()
6722         $("#flower-step").addClass("nonjadetabek")
6723       } else {
6724         $("#cardOccasion, #navAddon, .collection-addons").show()
6725         $("[data-addon=all]").click()
6726         $("#flower-step").removeClass("nonjadetabek")
6727       }
6728       
6729         if(v !== '') {
6730           $("#personalizeBtn .btn").attr("disabled", false)
6731         } else {
6732           $("#personalizeBtn .btn").attr("disabled", true)
6733         }
6734       
6735     })
6736 
6737     $("#zip").change(function(e){
6738       let v = $(this).val()
6739       var city = $("#cities").find('option:selected');
6740       $("#properties-kodepos").val(v)
6741       if(city === 'Kota Lainnya') {
6742         $(this).attr("required", true)
6743         $("#recipient-address").val("")
6744       }
6745     })
6746 
6747     
6748       var minDate = +7
6749       
6750     
6751 
6752     $("#full-date").datepicker({
6753       minDate,
6754       dateFormat: 'Mdd_yy', //Nop22_2021,
6755       
6756       beforeShowDay: disabledays,
6757       
6758       onSelect: function (date) {
6759         $("#deliveryDate, #deliveryDateFull label ").hide()
6760         $("#deliveryDateFull").addClass("filled")
6761         $(".btnChangeDeliveryDate").removeClass("hide")
6762         $("#full-date").prop('disabled', true);
6763         $('#propDeliveryDate, #properties-delivery-date').val('Kirim_'+date);
6764         $(".date-full").addClass("selected")
6765         $(".date-single, .calendar-group").removeClass("selected")
6766         $("#propDeliveryTime").val('')
6767         $("#properties-delivery-time").val('-')
6768         $(".time-single").removeClass("selected")
6769         
6770         
6771       }
6772     });
6773 
6774     $(".btnChangeDeliveryDate").click(function(){
6775         $("#deliveryDate, #deliveryDateFull label ").show()
6776         $("#deliveryDateFull").removeClass("filled")
6777         $(".btnChangeDeliveryDate").addClass("hide")
6778         $("#full-date").prop('disabled', false);
6779     })
6780   
6781     $("#deliveryDate").delegate(".calendarbutton:not(.date-full)", "click", function(e){
6782       e.preventDefault()
6783       $(this).parents("#row-delivery-date").find("p.error").remove()
6784       const fulldate = $(this).data("fulldate")
6785       const day = $(this).data("day")
6786       const date = $(this).data("date")
6787       const month = $(this).data("month")
6788       const year = $(this).data("year")
6789       const off_pagi = $(this).data("offpagi")
6790       const off_siang = $(this).data("offsiang")
6791       const off_Malam = $(this).data("offMalam")
6792       $(".calendarbutton").removeClass("selected")
6793       $(this).addClass("selected")
6794       $("#propDeliveryDate, #properties-delivery-date").val(`Kirim_${month}${date}_${year}`)
6795       $("#propDeliveryTime").val('')
6796       $("#properties-delivery-time").val('-')
6797       $(".calendarbutton2").removeClass("selected")
6798       $("#full-date").val("Full Calendar")
6799 
6800       
6801       if(off_pagi && timeOfDay > off_pagi) {
6802         $("[data-time=Morning]").attr("disabled", true)
6803       } else {
6804         $("[data-time=Morning]").attr("disabled", false)
6805       }
6806       if(off_siang && timeOfDay > off_siang) {
6807         $("[data-time=Afternoon]").attr("disabled", true)
6808       } else {
6809         $("[data-time=Afternoon]").attr("disabled", false)
6810       }
6811       
6812 
6813       
6814     })
6815     
6816     if(today === 14 && timeOfDay > 17.00) {
6817       $("#deliveryDate button:first-child").attr("disabled", true)
6818     }
6819   
6820     $("#deliveryTime").delegate(".calendarbutton2", "click", function(e){
6821       e.preventDefault()
6822       const time = $(this).data("time")
6823       const date = $("#propDeliveryDate").val()
6824       if(date == '') {
6825         return alert('Silakan pilih tanggal terlebih dahulu')
6826       }
6827       $(".calendarbutton2").removeClass("selected")
6828       $(this).addClass("selected")
6829       $("#propDeliveryTime, #properties-delivery-time").val(`KirimJam_${date.replace('Kirim_','')}_${time}`)
6830     })
6831       
6832     $('textarea.has-limit, input.has-limit').keyup(function () {
6833       max = this.getAttribute("maxlength");
6834       let len = $(this).val().length;
6835       let limit = $(this).siblings(".limit");
6836       if (len > max) {
6837         alert('you have reached the limit');
6838       } else {
6839         limit.text(`${len}/${max}`);
6840       }
6841     });
6842     
6843     $("#button-action-step .btn").click(function(){
6844       $(this).find("span").text("Processing...");
6845     });
6846 
6847     $(".finishBtn").on('click', function() {
6848       $(this).addClass("is-adding");
6849       // $(this).click();
6850     });
6851 
6852     $('.setup-panel .nav-item a.btn-success').trigger('click');
6853 
6854     $("#button-action .btn").click(function(){
6855       $("#flower-step").addClass("block");
6856       $("#button-action").hide();
6857     });
6858         
6859     $(".close-how-order").click(function(){
6860       $("#flower-step").removeClass("block");
6861       $("#button-action").show();
6862     });
6863 
6864     $("#input-foto, #input-video").change(function(e){
6865       readURL(this);
6866     });
6867 
6868     $("#logoPapan").change(function(){
6869       readURLPapan(this);
6870     });
6871 
6872     $("#address-upload").change(async function(){
6873       const upload_address = await readURLAddress(this)
6874       if(upload_address) {
6875         const url = upload_address.url
6876         $(".props-address-upload").val(url)
6877         $(".form-address").addClass("address-uploaded")
6878         $(".form-address-upload").addClass("uploaded")
6879 
6880         $(this).parents(".form-group").siblings(".form-group").find("[required]").attr("required", false)
6881       }
6882     })
6883 
6884     $(".address-manualy").click(function(){
6885       $(".form-address-upload").removeClass("uploaded");
6886       $(".photo-address").hide();
6887       $(".form-address").removeClass("address-uploaded")
6888       $("#formAddressPurchase").find(".form-control").attr("required", true)
6889     });
6890 
6891     $(".case-video-preview").delegate(".replace-video", "click", function(){
6892       $("#input-video").trigger("click")
6893     })
6894 
6895     $('.date-single').click(function(e) {
6896       e.preventDefault();
6897       $('.date-single').removeClass('selected');
6898       $('#full-date').removeClass('selected');
6899       $(this).addClass('selected');
6900       $('#full-date').html('Full' + '<br/>' + 'Calendar');
6901     });
6902     $('#full-date').click(function(e){
6903       e.preventDefault();
6904       $('.date-single').removeClass('selected');
6905       $(this).addClass('selected');
6906     });
6907     
6908     // $("tr").each(function(){
6909     //   if($(this).text().match('SKU')) {
6910     //     $(".sku-product").html($(this).parents("table").html())
6911     //   }
6912     // })
6913     
6914     $("#product-image").scroll(function(){
6915       $(".desc-add").each(function(){
6916         const img = $(this).find("img")
6917         const src = img.data("src")
6918         img.attr("src", src)
6919       })
6920     })
6921 
6922     $(".product-fixed").hide()
6923     
6924     let target = $("#personalizeBtn")
6925     
6926 
6927     $(".product-meta").scroll(function() {
6928         if ($(window).scrollTop() >= target.offset().top ) {
6929             $(".product-fixed").addClass("show")
6930         } else {
6931           $(".product-fixed").removeClass("show")
6932         }
6933     });
6934 
6935     $(window).scroll(function() {
6936         if ($(window).scrollTop() >= target.offset().top ) {
6937             $(".product-fixed").addClass("show")
6938         } else {
6939           $(".product-fixed").removeClass("show")
6940         }
6941     });
6942   });
6943 </script>
6943
6944 
6945   
6945<script>
6946     //
6947   </script>
6947
6948 
6949 
6949<script>
6950   $(document).ready(function(){
6951     $('table tr td').each(function(){
6952       var texto = $(this).text();
6953       var nextto = $(this).next("td");
6954       var sku = $("#data-sku").val()
6955       if(texto == 'SKU'){
6956         nextto.text(sku)
6957       }
6958     });
6959     
6960     $(".stamped-summary-actions-newquestion").text("Tulis Pertanyaan");
6961     $(".stamped-summary-actions-newreview").text("Tulis Review");
6962     $("#tab-questions").text("Pertanyaan");
6963     
6964     $(".freeship .icon").click(function(){
6965       $(".fs-content").slideToggle();
6966       $(this).parents(".freeship").toggleClass("expand");
6967     });
6968     
6969     var $easyzoom = $('.easyzoom').easyZoom();
6970     // Setup thumbnails example
6971     var api1 = $easyzoom.filter('.easyzoom--with-thumbnails').data('easyZoom');
6972     $('.thumbnails').on('click', 'a', function(e) {
6973       var $this = $(this);
6974       e.preventDefault();
6975       // Use EasyZoom's `swap` method
6976       api1.swap($this.data('standard'), $this.attr('href'));
6977     });
6978 
6979     $('#playerID').click(function(){
6980       var videoURL = $('#VdoID').attr('src'),
6981           dataplay = $('#VdoID').attr('data-play');
6982 
6983       //for check autoplay
6984       //if not set autoplay=1
6985       if(dataplay == 0 ){
6986         $('#VdoID').attr('src',videoURL+'?autoplay=1');
6987         $('#VdoID').attr('data-play',1);
6988       }
6989       else{
6990         var videoURL = $('#VdoID').attr('src');
6991         videoURL = videoURL.replace("?autoplay=1", "");
6992         $('#VdoID').prop('src','');
6993         $('#VdoID').prop('src',videoURL);
6994 
6995         $('#VdoID').attr('data-play',0);
6996       }
6997 
6998     });
6999     
7000     $(".product-photo-thumb-video").click(function(e){
7001       e.preventDefault();
7002 
7003       var newEmbed = $(this).attr('href');
7004       $("#featured-image-product").addClass("img-video");
7005       $("#ProductPhotoImg").hide();
7006       $("#featured-image-product .video").show();
7007       $("#featured-image-product iframe").attr('src', newEmbed);
7008       $("#VdoID")[0].src += "&autoplay=1";
7009     });
7010     $(".product-single__thumbnail").click(function(evt){
7011       evt.preventDefault();
7012       $("#featured-image-product").removeClass("img-video");
7013       $("#ProductPhotoImg").show();
7014       $("#featured-image-product .video").hide();
7015       $("#featured-image-product iframe").attr('src', '');
7016     });
7017     
7018     if($('#product-meta .short-desc > div').length >= 1){
7019       //console.log('div detected')
7020       var replacer = $('#product-meta .short-desc > div').contents();
7021       $('#product-meta .short-desc > div').replaceWith(replacer);
7022 
7023       var cAssured =  $('.c-assured').detach();
7024       cAssured.insertAfter('.meta-sds .stock-info');
7025     }
7026 
7027     
7028     
7029     $(".heading-toggle").click(function(){
7030       $(this).parent().toggleClass("open")
7031       
7032     });
7033   });
7034 </script>
7034
7035 
7036 
7037   
7037<script type="application/json" id="ProductJson-Product">
7038         
7039         {"id":8144957800663,"title":"JKT8 APK Game Slot Gacor Online Link Login Resmi Terbaru","handle":"blossom-shine","description":"\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eJKT8 adalah apk slot gacor online terbaru yang menyediakan link login resmi terupdate dengan fitur rtp permainan slot gacor tinggi gampang cuan serta banyak bonus menguntungkan."}
7040   </script>
7040
7041   
7042     
7042<script type="application/json" id="VariantJson-Product">
7043       [
7044         
7045           {
7046              "incoming": false,
7047              "next_incoming_date": null
7048           }
7049         
7050       ]
7051     </script>
7051
7052   
7053 
7054 
7055 
7056 </div>
7057 
7058 
7059 
7059<script src="//outerbloom.com/cdn/shopifycloud/storefront/assets/themes_support/option_selection-b017cd28.js" type="text/javascript"></script>
7059
7060 <style>
7061     .stamped-review-header-title,
7062     .stamped-review-header .author,
7063     .stamped-review-content-body,
7064     .stamped-sort-select,
7065     .stamped-review-header .verified-badge[data-type=buyer]:after,
7066     .stamped-review-header-byline,
7067     .stamped-review-reply-body {font-size: 14px!important;font-family: 'Barlow',sans-serif!important;}
7068     .stamped-review {margin-bottom: 0;}
7069     .stamped-review-body {padding-left: 65px;}
7070     .stamped-review:first-child {padding-top: 25px;}
7071     .stamped-review-content {clear: none;}
7072     .stamped-review-reply {margin: 15px 0 0 65px;background: #f2f2f2;border-left: none;}
7073     .stamped-review-reply-body {padding-left: 65px;}
7074     .stamped-review-header .author {text-transform: capitalize;}
7075     .stamped-questions .stamped-review-content {padding-left: 65px;}
7076 
7077     .stamped-pagination {margin: 20px 0 0;}
7078     .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;}
7079     .stamped-pagination li a {color: #121212;padding: 13px 18px;vertical-align: middle;display: block;}
7080     .stamped-pagination li.active a {background-color: #ddd;font-weight: 400;}
7081     .stamped-pagination li:hover a {background: #ddd;}
7082     .stamped-pagination .next {border-right: 1px solid #ccc;}
7083     .stamped-pagination li:first-child {border-top-left-radius: 5px;border-bottom-left-radius: 5px;}
7084     .stamped-pagination li:last-child {border-top-right-radius: 5px;border-bottom-right-radius: 5px;}
7085 
7086     #stamped-pagination-question span.page {display: inline-block;border: 1px solid #ccc;width: 47px;}
7087     #stamped-pagination-question span {font-size: 14px;}
7088     #stamped-pagination-question .page.active {padding: 12px;font-weight: 400;background: #ddd;}
7089     #stamped-pagination-question a, #stamped-pagination-question .page.active {color: #121212;padding: 13px 18px;vertical-align: middle;display: inline-block;}
7090     .stamped-pagination-deco {color: #121212;padding: 13px 18px;width: 47px;vertical-align: middle;display: inline-block;border: 1px solid #ccc;padding: 12px;}
7091     .stamped-pagination-prev, .stamped-pagination-next {position: inherit;}
7092     .stamped-pagination-prev a, .stamped-pagination-next a {width: auto!important;border: 1px solid #ccc;}
7093 
7094     @media (max-width: 480px){
7095       .stamped-review-reply {margin-left: 0!important;}
7096       select.stamped-sort-select {font-size: 13px!important;}
7097     }
7098 
7099   #product-reviews .stamped-summary-ratings, #product-reviews .stamped-summary-actions, .stamped-content {
7100       display: block !important;
7101   }
7102 </style>
7103 
7103<script>
7104     var selectCallback = function(variant, selector) {
7105       timber.productPage({
7106         money_format: "Rp {{amount_no_decimals}}",
7107         variant: variant,
7108         selector: selector
7109       });
7110     };
7111 
7112     jQuery(function($) {
7113       new Shopify.OptionSelectors('productSelect', {
7114         product:
7115 
7116 
7117 
7118 
7119 
7120 {"id":8144957800663,"title":"JKT8 APK Game Slot Gacor Online Link Login Resmi Terbaru","handle":"blossom-shine","description":"\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eJKT8 adalah apk slot gacor online terbaru yang menyediakan link login resmi terupdate dengan fitur rtp permainan slot gacor tinggi gampang cuan serta banyak bonus menguntungkan."},
7121         onVariantSelected: selectCallback,
7122         enableHistoryState: true
7123       });
7124 
7125       // Add label if only one product option and it isn't 'Title'. Could be 'Size'.
7126       
7127 
7128       // Hide selectors if we only have 1 variant and its title contains 'Default'.
7129       
7130         $('.selector-wrapper').hide();
7131       
7132     });
7133 </script>
7133
7134 
7135 
7136 
7137   
7137<script type="application/ld+json">
7138     {
7139     "@context": "http://schema.org",
7140     "@type": "Product",
7141 "offers": {
7142 "@type": "Offer",
7143 "availability":"https://schema.org/InStock",
7144 "price": 835000,
7145 "priceValidUntil": "05-10-2025",
7146 "priceCurrency": "IDR",
7147 "url": "https://librosalfaguarajuvenil.com/"
7148 },
7149 "brand": {
7150 "@type": "Brand",
7151 "name": "Outerbloom Florist"
7152 },
7153 "sku": "8144957800663",
7154 "gtin13": "Jawa",
7155 "name": "JKT8 APK Game Slot Gacor Online Link Login Resmi Terbaru",
7156 "description": "JKT8 adalah apk slot gacor online terbaru yang menyediakan link login resmi terupdate dengan fitur rtp permainan slot gacor tinggi gampang cuan serta banyak bonus menguntungkan.",
7157 "category": "JKT8 adalah apk slot gacor online terbaru yang menyediakan link login resmi terupdate dengan fitur rtp permainan slot gacor tinggi gampang cuan serta banyak bonus menguntungkan.",
7158 "url": "https://librosalfaguarajuvenil.com/",
7159 "image": {
7160 "@type": "ImageObject",
7161 "url": "https://outerbloom.com/cdn/shop/files/Blossom-Shine-WM_small.jpg?v=1695788426",
7162 "image": "https://outerbloom.com/cdn/shop/files/Blossom-Shine-WM_small.jpg?v=1695788426",
7163 "name": "JKT8 APK Game Slot Gacor Online Link Login Resmi Terbaru",
7164 "width": 1024,
7165 "height": 1024
7166 }
7167     }
7168   </script>
7168
7169 
7170 
7171 
7172 
7173         
7174 
7174<script id="bss-ltap-hide-price" type="text/javascript" >
7175 !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)}))}
7175)),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)}
7175)),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()}
7175if("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)}
7175if(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");
7175c&&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
7175-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");
7175i&&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
7175--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
7175opify.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");
7175e.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=
7175o.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");
7175if(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();
7175let 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()}]);
7176 </script>
7176
7177 
7178       </main>
7179       
7180       <div id="shopify-section-newsletter" class="shopify-section"><br>
7181   <style>
7182     #shopify-section-newsletter {
7183       background: url(https://res.cloudinary.com/dih0tpwae/image/upload/v1767518757/bg_gh1lsp.jpg);
7184       background-attachment: fixed;
7185       margin-bottom: 0;
7186     }
7187     input:-webkit-autofill,
7188     input:-webkit-autofill:hover,
7189     input:-webkit-autofill:active,
7190     input:-webkit-autofill:focus {
7191       -webkit-box-shadow:0 0 0 50px white inset;
7192       -webkit-text-fill-color: #ffffff;
7193     }
7194     .section-newsletter {
7195       max-width: 800px;
7196       margin: auto;
7197       padding: 50px 0;
7198     }
7199     .section-newsletter h2 {
7200       font-weight: 700;
7201       font-size: 24px;
7202     }
7203     .section-newsletter input[type="email"] {
7204       width: 100%;
7205       text-align: center;
7206       border: none;
7207       border-bottom: 1px solid #ffffff;
7208       font-size: 16px;
7209       color: #757575;
7210       background-color: #eeeeee;
7211     }
7212     .section-newsletter .row label {
7213       font-size: 14px;
7214       cursor: pointer;
7215     }
7216     .section-newsletter .radio-inline input {
7217       width: auto;
7218     }
7219     .section-newsletter .btn {
7220       width: 130px;
7221       border: 1px solid #ffffff;
7222       box-shadow: none;
7223       font-size: 16px;
7224       font-weight: 500;
7225       text-transform: uppercase;
7226     }
7227     .section-newsletter form {
7228       margin: 30px 0 60px;
7229     }
7230     .section-newsletter input[type="radio"] {
7231       position: absolute;
7232       width: 1px;
7233       height: 1px;
7234     }
7235     .section-newsletter [type="radio"]:checked + label, .section-newsletter [type="radio"]:not(:checked) + label {
7236       position: relative;
7237       padding-left: 28px;
7238       cursor: pointer;
7239       line-height: 20px;
7240       display: inline-block;
7241       color: #666;
7242     }
7243     .section-newsletter [type="radio"]:checked + label:before, .section-newsletter [type="radio"]:not(:checked) + label:before {
7244       content: '';
7245       position: absolute;
7246       left: 0;
7247       top: 0;
7248       width: 18px;
7249       height: 18px;
7250       border: 1px solid #ddd;
7251       border-radius: 100%;
7252       background: #fff;
7253     }
7254     .section-newsletter [type="radio"]:checked + label:after, .section-newsletter [type="radio"]:not(:checked) + label:after {
7255       content: '';
7256       width: 12px;
7257       height: 12px;
7258       background: #ffffff;
7259       position: absolute;
7260       top: 3px;
7261       left: 3px;
7262       border-radius: 100%;
7263       -webkit-transition: all 0.2s ease;
7264       transition: all 0.2s ease;
7265     }
7266     .section-newsletter [type="radio"]:not(:checked) + label:after {
7267       opacity: 0;
7268       -webkit-transform: scale(0);
7269       transform: scale(0);
7270     }
7271     .opt-newsletter {display:none;}
7272     .footer-newsletter p, .footer-newsletter p a {
7273       color: #757575;
7274     }
7275     @media (max-width:991px){
7276       .section-newsletter h2 {
7277         font-size: 32px;
7278       }
7279       .section-newsletter input {
7280         width: 300px;
7281         font-size: 14px;
7282       }
7283       .section-newsletter {
7284         padding: 50px 20px;
7285       }
7286     }
7287     @media (max-width: 480px){
7288       .section-newsletter input[type="email"] {font-size: 16px;}
7289     }
7290   </style>
7291  <style>
7292 .icon-img-footer {
7293     width: 80px; 
7294     padding: 0px 5px;
7295 }
7296 @media (min-width: 768px) {
7297     .icon-img-footer {
7298         width: 120px; 
7299     }
7300 }
7301 @media (min-width: 992px) {
7302     .icon-img-footer {
7303         width: 120px; 
7304     }
7305 }
7306 
7307   .button-login-daftar {
7308                         display: grid;
7309                         grid-template-columns: repeat(2, 1fr);
7310                         font-weight: 700;
7311                     }
7312                     .button-login-daftar a {
7313                         text-align: center;
7314                     }
7315                     .login,
7316                     .register {
7317                         color: #fff;
7318                         padding: 15px 10px;
7319                         font-size: 23px;
7320                     }
7321                     .login,
7322                     .login-button {
7323                         background: linear-gradient(to bottom,#00ccff 0,#00ccff 100%);
7324                         border: 2px solid #ffffff;
7325                     }
7326                     .register,
7327                     .register-button {
7328                         background: linear-gradient(to bottom,#00ccff 0,#00ccff 100%);
7329                         border: 2px solid #ffffff;
7330                     }
7331 
7332 
7333 
7334 </style>
7335 
7336 <!-- wp:html -->
7337  
7337<script>
7338         document.addEventListener('DOMContentLoaded',
7339             function(){const faqItems=document.querySelectorAll('.faq-item');
7340             faqItems.forEach(item=>{const question=item.querySelector('.faq-question');
7341             question.addEventListener('click',
7342             ()=>{const isActive=item.classList.contains('active');
7343             faqItems.forEach(otherItem=>{otherItem.classList.remove('active')});
7344             if(!isActive){item.classList.add('active')}})})});
7345         </script>
7345
7346 
7347 
7348            <div class="page__overlay" data-view="offCanvasNavToggle" data-off-canvas="close" bis_skin_checked="1">
7349             </div>
7350 <div class="faq-section">
7351         <h2>FAQ</h2>
7352             <div class="faq-container">
7353                 <div class="faq-item">
7354                     <button class="faq-question">Apa itu JKT8?<span></span></button>
7355                     <div class="faq-answer"><p>JKT8 merupakan platform bermain slot online terbaru yang pastinya menyediakan layanan slot deposit bank lokal dan qris tanpa potongan selamanya dengan minimal deposit hanya 10k.</p></div>
7356                 </div>
7357                 <div class="faq-item">
7358                     <button class="faq-question">Apakah JKT8 bisa diakses lewat situs dan aplikasi?<span></span></button>
7359                     <div class="faq-answer"><p>JKT8 menyediakan akses lewat situs resmi dan juga apk jkt8 untuk pengguna yang ingin pengalaman lebih praktis di HP.</p></div>
7360                 </div>
7361                 <div class="faq-item">
7362                     <button class="faq-question">Apakah JKT8 APK aman digunakan?<span></span></button>
7363                     <div class="faq-answer"><p>JKT8 APK versi resmi menggunakan sistem keamanan yang sama dengan situs, sehingga data dan aktivitas login tetap terlindungi.</p></div>
7364                 </div>
7365                  <div class="faq-item">
7366                     <button class="faq-question">Apakah JKT8 dapat diakses melalui semua perangkat?<span></span></button>
7367                     <div class="faq-answer"><p>Ya. Platform ini bisa diakses melalui smartphone Android, iOS, maupun PC/laptop menggunakan browser tanpa perlu aplikasi tambahan.</p></div>
7368                 </div>
7369                  <div class="faq-item">
7370                     <button class="faq-question">Apakah JKT8 menyediakan layanan customer service?<span></span></button>
7371                     <div class="faq-answer"><p>Ya. Tersedia layanan customer service 24/7 melalui live chat atau kontak resmi untuk membantu dalam proses pendaftaran, deposit, maupun kendala teknis.</p></div>
7372                 </div>
7373 
7374             </div>
7375 
7376         </div>
7377 
7378     </div>
7379 
7380 
7381 <div class="overlay overlay-cart"></div>
7382 <div id="CartDrawer" class="drawer drawer--right">
7383   <div class="drawer__header pl-2 pr-2">
7384     <div class="drawer__icon-cart display-table-cell">
7385       <a href="/cart" class="">
7386         <svg class="icon icon-cart" version="1.1" xmlns="images/logo-jkt8.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.
7386005-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>
7387       </a>
7388     </div>
7389     <div class="drawer__title h4">Keranjang Belanja</div>
7390     <div class="drawer__close js-drawer-close">
7391       <button type="button">
7392         <svg class="icon icon-close" version="1.1" xmlns="images/logo-jkt8.png" width="32" height="32" viewBox="0 0 32 32">
7393 <title>icon-close</title>
7394 <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>
7395 </svg>
7396       </button>
7397     </div>
7398   </div>
7399   <div id="CartContainer" class="p-2"></div>
7400 </div>
7401 
7402 
7402<script>
7403       
7404     </script>
7404
7405       
7405<script src="//outerbloom.com/cdn/shop/t/138/assets/handlebars.min.js?v=79044469952368397291752652415" defer></script>
7405
7406       <!-- /snippets/ajax-cart-template.liquid -->
7407 
7408   
7408<script id="CartTemplate" type="text/template">
7409   
7410     <form action="/cart" method="post" novalidate class="cart ajaxcart">
7411       <div class="ajaxcart__inner" {{ cart.item_count }}>
7412         {{#items}}
7413         <div class="ajaxcart__product">
7414           <div class="ajaxcart__row" data-line="{{line}}">
7415             <div class="grid">
7416               <div class="grid__item one-quarter">
7417                 <a href="{{url}}" class="ajaxcart__product-image"><img src="{{img}}" alt=""></a>
7418               </div>
7419               <div class="grid__item three-quarters">
7420                 <p class="d-block mb-3">
7421                   <a class="h4 d-block mb-2" href="{{url}}" class="ajaxcart__product-name">{{name}}</a>
7422                   {{#if variation}}
7423                     <span class="ajaxcart__product-meta p">{{variation}}</span>
7424                   {{/if}}
7425                   {{#properties}}
7426                     {{#each this}}
7427                       {{#if this}}
7428                         <span class="ajaxcart__product-meta p hide">{{@key}}: {{this}}</span>
7429                       {{/if}}
7430                     {{/each}}
7431                   {{/properties}}
7432                   
7433                 </p>
7434                 <div class="grid--full display-table">
7435                   <div class="grid__item display-table-cell one-half">
7436                     <div class="ajaxcart__qty">
7437                       <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--minus" data-id="{{key}}" data-qty="{{itemMinus}}" data-line="{{line}}">
7438                         <svg version="1.1" xmlns="images/logo-jkt8.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>
7439                         <span class="visually-hidden">Kurangi jumlah barang</span>
7440                       </button>
7441                       <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]*">
7442                       <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--plus" data-id="{{key}}" data-line="{{line}}" data-qty="{{itemAdd}}">
7443                         <svg version="1.1" xmlns="images/logo-jkt8.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>
7444                         <span class="visually-hidden">Tambahkan jumlah barang</span>
7445                       </button>
7446                     </div>
7447                   </div>
7448                   <div class="grid__item display-table-cell one-half text-right">
7449                     {{#if discountsApplied}}
7450                       <small class="ajaxcart-item__price-strikethrough"><s>{{{originalLinePrice}}}</s></small>
7451                       <br><span class="h4">{{{linePrice}}}</span>
7452                     {{else}}
7453                       <span class="h4">{{{linePrice}}}</span>
7454                     {{/if}}
7455                     </div>
7456                   </div>
7457                   {{#if discountsApplied}}
7458                     <div class="grid--full display-table">
7459                       <div class="grid__item text-right">
7460                         {{#each discounts}}
7461                           <small class="ajaxcart-item__discount">{{ this.title }}</small><br>
7462                         {{/each}}
7463                       </div>
7464                     </div>
7465                   {{/if}}
7466                   </div>
7467                 </div>
7468               </div>
7469             </div>
7470           </div>
7471         </div>
7472         {{/items}}
7473       </div>
7474       <div class="ajaxcart__footer">
7475         <div class="grid--full cart-subtotal py-2">
7476             <p>Subtotal</p>
7477             <h3 class="primary">{{{totalPrice}}}</h3>
7478           {{#if totalCartDiscount}}
7479             <p class="ajaxcart__savings text-center"><em>{{{totalCartDiscount}}}</em></p>
7480           {{/if}}
7481         </div>
7482         
7483         <a href="/cart" class="btn btn-cta view-more btn-block cart__checkout mt-2">Checkout</a>
7484         
7485         <p class="cart-checkout-shipping hide">Free Ongkir dengan belanja di atas Rp.100.000 <a href="/pages/pengiriman">detail</a></p>
7486       </div>
7487     </form>
7488   
7489   </script>
7489
7490   
7490<script id="AjaxQty" type="text/template">
7491   
7492     <div class="ajaxcart__qty">
7493       <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--minus" data-id="{{key}}" data-qty="{{itemMinus}}">
7494         <svg version="1.1" xmlns="images/logo-jkt8.png" width="24" height="24" viewBox="0 0 32 32">
7495             <title>icon-minus</title>
7496             <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>
7497         </svg>
7498         <span class="visually-hidden">Kurangi jumlah barang</span>
7499           </button>
7500               <input type="text" class="ajaxcart__qty-num" value="{{itemQty}}" min="0" data-id="{{key}}" aria-label="quantity" pattern="[0-9]*">
7501           <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--plus" data-id="{{key}}" data-qty="{{itemAdd}}">
7502         <svg version="1.1" xmlns="images/logo-jkt8.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>
7503         <span class="visually-hidden">Tambahkan jumlah barang</span>
7504       </button>
7505     </div>
7506   
7507   </script>
7507
7508   
7508<script id="JsQty" type="text/template">
7509   
7510     <div class="js-qty mx-auto mt-2">
7511       <button type="button" class="js-qty__adjust js-qty__adjust--minus" data-id="{{key}}" data-qty="{{itemMinus}}">
7512         <svg version="1.1" xmlns="images/logo-jkt8.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>
7513         <span class="visually-hidden">Kurangi jumlah barang</span>
7514       </button>
7515       <input type="text" class="js-qty__num" value="{{itemQty}}" min="1" data-id="{{key}}" aria-label="quantity" pattern="[0-9]*" name="{{inputName}}" id="{{inputId}}">
7516       <button type="button" class="js-qty__adjust js-qty__adjust--plus" data-id="{{key}}" data-qty="{{itemAdd}}">
7517         <svg version="1.1" xmlns="images/logo-jkt8.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>
7518         <span class="visually-hidden">Tambahkan jumlah barang</span>
7519       </button>
7520     </div>
7521   
7522   </script>
7522
7523 
7524 <style>
7525   #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty button,
7526   #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty button,
7527   #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty button {display: none;}
7528   #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty input,
7529   #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty input,
7530   #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty input {pointer-events: none;opacity: 0.5;}
7531   #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty input,
7532   #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty input,
7533   #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty input {pointer-events: none;}
7534 </style>
7535       
7535<script src="//outerbloom.com/cdn/shop/t/138/assets/ajax-cart.js?v=51128912329657147331752652452" defer></script>
7535
7536       
7536<script>
7537         jQuery(function($) {
7538           ajaxCart.init({
7539             formSelector: '#AddToCartForm',
7540             cartContainer: '#CartContainer',
7541             addToCartSelector: '#AddToCartXX',
7542             cartCountSelector: '#CartCount, #CartCount2',
7543             cartCostSelector: '#CartCost',
7544             moneyFormat: "Rp {{amount_no_decimals}}"
7545           });
7546           });
7547 
7548           jQuery(document.body).on('afterCartLoad.ajaxCart', function(evt, cart) {
7549             // Bind to 'afterCartLoad.ajaxCart' to run any javascript after the cart has loaded in the DOM
7550             timber.RightDrawer.open();
7551           });
7552       </script>
7552
7553     
7554 
7555 
7556 
7557 <style>
7558   /** Search AutoComplete **/
7559   .resultsearch .ui-menu-item[data-cat="Collection"],
7560   .resultsearch .ui-menu-item[data-cat="Collection"] {display: none;}
7561   .resultsearch .ui-widget.ui-widget-content {
7562     width: 100%;
7563     top: 48px;
7564     border: none;
7565     box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3);
7566   }
7567   .resultsearch .ui-menu-item {text-align: left;}
7568   .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;}
7569   .ui-state-active {
7570     border: none!important;
7571     background-color: #fafafa!important;
7572     color: #000!important;
7573   }
7574   .ui-menu-item a[data-cat="Collection"] {padding: 5px 12px;}
7575   .ui-menu .ui-menu-item {line-height: normal;}
7576 </style>
7577 
7577<script>
7578 $(window).load(function(){
7579 
7580   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;}
7581 
7582   $.widget("custom.catcomplete", $.ui.autocomplete, {
7583     _renderMenu: function (ul, items) {
7584       // have search reults split up in categories
7585       var that = this,
7586           currentCategory = "";
7587       $.each(items, function (index, item) {
7588         if (item.category != currentCategory) {
7589           ul.append("<li class='ui-autocomplete-category' data-cat=" + item.category + ">" + "<span>" + item.category + "</span>" + "</li>");
7590           currentCategory = item.category;
7591         }
7592         that._renderItemData(ul, item);
7593       });
7594     }
7595   });
7596 
7597   // higlight searched for term
7598   $.ui.autocomplete.prototype._renderItem = function( ul, item ) {
7599     var term = this.element.val(),
7600         html = item.label.replace( term, "<b>$&</b>" );
7601     return $( "<li>" )
7602     .append(format(item))
7603     .appendTo( ul );
7604   };
7605 
7606 
7607   var data = [
7608       { 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
7608weetbox 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: " " }
7608,{ 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: " " }
7608,{ 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: " " }
7608,{ 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
7608dal", 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-
7608hampers", 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
7608o-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: " " }
7608,{ 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: " " }
7608,{ 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: " " }
7608,{ 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: " " }
7608,{ 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: " " }
7608,{ 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: " " }
7608,{ 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: " " }
7608,{ 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: "JKT8 adalah apk slot gacor online terbaru yang menyediakan link login resmi terupdate dengan fitur rtp permainan slot gacor tinggi gampang cuan serta banyak bonus menguntungkan.", category: "Collection", url: "/collections/standing-flower", images: " ", price: " " },{ label: "JKT8 adalah apk slot gacor online terbaru yang menyediakan link login resmi terupdate dengan fitur rtp permainan slot gacor tinggi gampang cuan serta banyak bonus menguntungkan. Bali", category: "Collection", url: "/collections/standing-flower-bali", images: " ", price: " " },{ label: "JKT8 adalah apk slot gacor online terbaru yang menyediakan link login resmi terupdate dengan fitur rtp permainan slot gacor tinggi gampang cuan serta banyak bonus menguntungkan. Bandung", category: "Collection", url: "/collections/standing-flower-bandung", images: " ", price: " " },{ label: "JKT8 adalah apk slot gacor online terbaru yang menyediakan link login resmi terupdate dengan fitur rtp permainan slot gacor tinggi gampang cuan serta banyak bonus menguntungkan. Congratulations", category: "Collection", url: "/collections/standing-flower-congratulations", images: " ", price: " " },{ label: "JKT8 adalah apk slot gacor online terbaru yang menyediakan link login resmi terupdate dengan fitur rtp permainan slot gacor tinggi gampang cuan serta banyak bonus menguntungkan. Demak", category: "Collection", url: "/collections/standing-flower-demak", images: " ", price: " " },{ label: "JKT8 adalah apk slot gacor online terbaru yang menyediakan link login resmi terupdate dengan fitur rtp permainan slot gacor tinggi gampang cuan serta banyak bonus menguntungkan. Jepara", category: "Collection", url: "/collections/standing-flower-jepara", images: " ", price: " " },{ label: "JKT8 adalah apk slot gacor online terbaru yang menyediakan link login resmi terupdate dengan fitur rtp permainan slot gacor tinggi gampang cuan serta banyak bonus menguntungkan. Semarang", category: "Collection", url: "/collections/standing-flower-semarang", images: " ", price: " " },{ label: "JKT8 adalah apk slot gacor online terbaru yang menyediakan link login resmi terupdate dengan fitur rtp permainan slot gacor tinggi gampang cuan serta banyak bonus menguntungkan. Sidoarjo", category: "Collection", url: "/collections/standing-flower-sidoarjo", images: " ", price: " " },{ label: "JKT8 adalah apk slot gacor online terbaru yang menyediakan link login resmi terupdate dengan fitur rtp permainan slot gacor tinggi gampang cuan serta banyak bonus menguntungkan. Surabaya", category: "Collection", url: "/collections/standing-flower-surabaya", images: " ", price: " " },{ label: "JKT8 adalah apk slot gacor online terbaru yang menyediakan link login resmi terupdate dengan fitur rtp permainan slot gacor tinggi gampang cuan serta banyak bonus menguntungkan. 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: "
7608Collection", 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: " " }
7608,{ 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
7608dal", 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: " " },
7609       { 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" }
7609,{ 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" }
7609,{ 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" }
7610   ];
7611 
7612              
7613         $( ".header-input-search" ).catcomplete({
7614          appendTo: ".searchResult",source: function(request, response) {
7615             var results = $.ui.autocomplete.filter(data, request.term);
7616             var predicate = function () {
7617                 var counter = { Collection: 0, Produk: 0 };
7618             var fn = function(item) {counter[item.category] += 1;return (counter[item.category] <= 5);}
7619             return fn
7620             }();
7621             response(results.filter(predicate));
7622           },
7623           minLength:1,
7624            //results are clickable
7625           select: function( event, ui ) {window.location = ui.item.url;}
7626 });
7627 $( ".header-input-search2" ).catcomplete({
7628         appendTo: ".searchResult2",
7629                    source: function(request, response) {
7630                     var results = $.ui.autocomplete.filter(data, request.term);
7631                     var predicate = function () {
7632                         var counter = { Collection: 0, Produk: 0 };
7633               var fn = function(item) {
7634               counter[item.category] += 1;
7635   return (counter[item.category] <= 5);
7636 }
7637                return fn
7638                }();
7639 response(results.filter(predicate));
7640 },
7641   minLength:1,
7642         //results are clickable
7643         select: function( event, ui ) {
7644           window.location = ui.item.url;
7645         }
7646 });
7647 });
7648 </script>
7648
7649 
7650     
7650<script src="//outerbloom.com/cdn/shop/t/138/assets/vendors.js?v=6349622868601634021752652419" defer></script>
7650
7651 
7651<script src="//outerbloom.com/cdn/shop/t/138/assets/app.js?v=136050180318808583701752652452" defer></script>
7651
7652 
7653 
7653<script>
7654   ( function() {
7655     var youtube = document.querySelectorAll( ".youtube" );
7656     for (var i = 0; i < youtube.length; i++) {
7657       var source = "https://img.youtube.com/vi/"+ youtube[i].dataset.embed +"/sddefault_1x.jpg";
7658       var datasource = "https://img.youtube.com/vi/"+ youtube[i].dataset.embed +"/sddefault.jpg";
7659       var image = new Image();
7660       image.src = source;
7661       image.setAttribute("data-src", datasource);
7662       image.classList.add("swiper-lazy");
7663       image.addEventListener( "load", function() {
7664         youtube[ i ].appendChild( image );
7665       }( i ) );
7666       youtube[i].addEventListener( "click", function() {
7667         var iframe = document.createElement( "iframe" );
7668         iframe.setAttribute( "width", "480" );
7669         iframe.setAttribute( "height", "480" );
7670         iframe.setAttribute( "frameborder", "0" );
7671         iframe.setAttribute( "allowfullscreen", "" );
7672         iframe.setAttribute( "src", "https://www.youtube.com/embed/"+ this.dataset.embed +"?rel=0&showinfo=0&autoplay=1" );
7673         this.innerHTML = "";
7674         this.appendChild( iframe );
7675       } );
7676     };
7677 
7678   } )();
7679 
7680   /* Lazy Load */
7681   const mainLazyLoad = new LazyLoad({threshold:400});
7682   $(document).ready(function(){
7683 
7684     $("selectxxx").addClass("needsclick");
7685     FastClick.attach(document.body);
7686     
7687     var $customSelects = $('.select-search');
7688     $customSelects.select2({
7689       templateResult: function(result, container) {
7690         if (!result.id) {
7691           return result.text;
7692         }
7693         container.className += ' needsclick';
7694         return result.text;
7695       }
7696     });
7697     $customSelects.each(function(index, el){$(el).data('select2').$container.find('*').addClass('needsclick');});
7698     $(document).on('select2:open', () => {
7699       document.querySelector('.select2-search__field').focus();
7700     });
7701     
7702 
7703     $(".overlay").click(function(){
7704       $(".js-drawer-close").click();
7705     });
7706     $(".site-nav--mobile .js-drawer-open-left, #NavDrawer .icon-close, .overlay-nav").click(function(){
7707       $("html").toggleClass("nav_open");
7708     });
7709     
7710     $('.swatch-element label').on('click', function(){
7711       var srcImg = $(this).data('src');
7712       $('#thumb-image-product .product-single__thumbnail').each(function(){
7713         if ($(this).attr("href") == srcImg) {
7714           $(this).trigger('click');
7715         }
7716       });
7717     });
7718     var defaultValue = $(".swatch input:checked").val()
7719     
7720     $('#purchaseProduct .swatch [type=radio]').change(function() {
7721       var optionIndex = $(this).closest('.swatch').attr('data-option-index');
7722       var optionValue = $(this).val();
7723       console.log(optionIndex, optionValue)
7724       var value = parseInt(optionValue.split(' ')[0])
7725       $(this)
7726       .closest('#purchaseProduct')
7727       .find('.single-option-selector')
7728       .eq(optionIndex)
7729       .val(optionValue)
7730       .trigger('change');
7731       
7732     });
7733     
7734   });
7735   $(document).ready(function(){
7736     $(".nav-search a").click(function(e){
7737       e.preventDefault();
7738       $(".icon-navsearch").toggle();
7739       $(".icon-navclose").toggle();
7740       $(".site-nav__item > .site-nav__link").toggle();
7741       $(".open-search").toggle();
7742       $(".open-search input").focus();
7743     });
7744     $(".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'>");
7745     if ($(window).width() < 768) {
7746       $(".bg-products .label-tag.valentine").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-valentine_75x.png?v=82732945490105366961752652419' alt='Icon Valentine'>");
7747       $(".bg-products .label-tag.cny").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-cny_45x.png?v=101884295148001743851752652418' alt='Icon CNY'>");
7748       $(".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'>");
7749     } else {
7750       $(".bg-products .label-tag.valentine").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-valentine_60x.png?v=82732945490105366961752652419' alt='Icon Valentine'>");
7751       $(".bg-products .label-tag.cny").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-cny_60x.png?v=101884295148001743851752652418' alt='Icon CNY'>");
7752       $(".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'>");
7753     }
7754     $(".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'>");
7755     $(".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'>");
7756   });
7757 </script>
7757
7758 
7759 
7760     
7761     
7762     
7763     
7764 
7765     
7765<script type="text/javascript">
7766       var wishlistpage = 0;
7767        
7768        var quickShop_money_format="<span class='money'>"+"Rp {{amount_no_decimals}}"+"</span>";
7769     </script>
7769
7770     
7771       <!-- Remove duplicate wishlist.js reference -->
7772       <style>
7773   .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)}}
7774 </style>
7775 
7776 <div class="modal fade" id="modalwishlist0" tabindex="-1" role="dialog">
7777   <div class="modal-dialog" role="document">
7778     <div class="modal-content">        
7779       <div class="modal-body">Your Wishlist is empty!</div>
7780       <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>          
7781     </div>
7782   </div>
7783 </div> 
7784 
7785 <div class="wishlist-model">
7786   <div class="modal fade" id="modalwishlist1" tabindex="-1" role="dialog" aria-hidden="true">
7787     <div class="modal-dialog white-modal">
7788       <div class="modal-content">
7789         <div class="modal-header">
7790           <button type="button" class="close" data-dismiss="modal" aria-label="Close">
7791             <svg class="icon icon-close" version="1.1" xmlns="images/logo-jkt8.png" width="32" height="32" viewBox="0 0 32 32">
7792 <title>icon-close</title>
7793 <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>
7794 </svg>
7795           </button>
7796         </div>
7797         <div class="modal-body">
7798           <div class="wishlist-left">
7799             <div class="wishlist-note">
7800               <span class="cirle"><svg version="1.1" xmlns="images/logo-jkt8.png" width="32" height="32" viewBox="0 0 32 32">
7801 <title>icon-check</title>
7802 <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>
7803 </svg></span>
7804               Product added to <a href="/pages/wish-list">Wishlist</a>
7805             </div>
7806             <div class="wishlist-product">
7807               <div class="product-left">
7808                 <div class="wishlist-image"></div>
7809               </div>
7810               <div class="product-right">
7811                 <div class="wishlist-name"></div>
7812                 <div class="wishlist-price"></div>
7813               </div>
7814             </div>
7815           </div>
7816           <div class="wishlist-right">
7817             <div class="wishlist-cart">
7818               <form action="/cart/add" method="post" class="variants-form variants" id="AddToCartForm" enctype="multipart/form-data">                  
7819                 <div class="others-bottom">
7820                   <a class="btn btn-quick-shop" href="/pages/wish-list">View Wishlist</a>
7821                   <button type="submit" name="add" id="AddToCart" class="btn btn-cta">
7822                     <span id="AddToCartText" class="">Beli Sekarang</span>
7823                   </button>
7824                 </div>
7825                 <div id="wishlist-variants-container" class="variants-wrapper"></div> 
7826                 <div class="quantity-content">
7827                   <label>QTY</label>
7828                   <input type="number" size="5" class="" name="quantity" value="1" />
7829                 </div>
7830               </form> 
7831             </div>
7832           </div>
7833         </div>
7834       </div>
7835     </div>
7836   </div>
7837 </div>
7838 
7839     
7840     <style>
7841        .stamped-badge[data-rating="0.0"]{display: none !Important;}
7842        
7843         div[data-load-type="continue"] ul.stamped-pagination li.next a, div[data-widget-load-type="continue"] ul.stamped-pagination li.next a {
7844           border-radius: 0px;
7845       }
7846           .stamped-review-body {
7847           padding-left: 0px !important;
7848       }
7849           #product-reviews .stamped-header:after {
7850             display:none !Important;
7851           }
7852       #stamped-main-widget .stamped-container, .stamped-badge-caption,#stamped-reviews-widget {
7853           font-family:inherit !important;
7854       }
7855     </style>
7856 
7857     
7858 
7859 <div id='stamped-rewards-init' class='stamped-rewards-init'
7860   data-key-public=''
7861 
7862 ></div>
7863 
7864     
7864<script src="//outerbloom.com/cdn/shop/t/138/assets/variant-sku-handler.js?v=91239063692820757781752652418" defer></script>
7864
7865     <!-- Remove duplicate jQuery reference and load wishlist script properly -->
7866     
7866<script src="//outerbloom.com/cdn/shop/t/138/assets/wishlist-fixed.js?v=35991423018869066281754360012" defer></script>
7866
7867 
7868     
7868<script>
7869       function myInit(){ StampedFn.init({ apiKey: 'pubkey-hCS8DHE9QbBHhHN89WXFkuJ0Y3422D', sId: '23462' }); }
7870     </script>
7870
7871     
7871<script async onload="myInit()" type="text/javascript" src="https://cdn1.stamped.io/files/widget.min.js"></script>
7871<style>
7872   .jss59 {
7873     background-color: rgba(0, 0, 0, 0.6);
7874   }
7875   .MuiBackdrop-root {
7876     top: 0;
7877     left: 0;
7878     right: 0;
7879     bottom: 0;
7880     display: flex;
7881     z-index: -1;
7882     position: fixed;
7883     align-items: center;
7884     justify-content: center;
7885     background-color: rgba(0, 0, 0, 0.5);
7886     -webkit-tap-highlight-color: transparent;
7887   }
7888   .MuiDialog-scrollPaper {
7889     display: flex;
7890     align-items: center;
7891     justify-content: center;
7892   }
7893   .MuiDialog-container {
7894     height: 100%;
7895     outline: 0;
7896   }
7897   .MuiPaper-elevation24 {
7898     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);
7899   }
7900   .MuiDialog-paper {
7901     margin: 32px;
7902     position: relative;
7903     overflow-y: auto;
7904   }
7905   .MuiDialog-paperScrollPaper {
7906     display: flex;
7907     max-height: calc(100% - 64px);
7908     flex-direction: column;
7909   }
7910   .MuiDialog-paperWidthSm {
7911     max-width: 600px;
7912   }
7913   #location-lock-dialog {
7914     top: 20%;
7915     left: 0;
7916     right: 0;
7917     width: 30%;
7918     margin: 0px auto;
7919     display: block;
7920     padding: 30px;
7921     z-index: 99999;
7922     position: fixed;
7923     font-size: 14px;
7924     background: rgb(0, 0, 0);
7925     box-shadow: rgba(11, 11, 12, 0.2) 2px 4px 5px 0px;
7926     text-align: center;
7927     font-family: Roboto, Arial, sans-serif;
7928     line-height: 1;
7929     border-radius: 8px;
7930     -webkit-font-smoothing: subpixel-antialiased;
7931   }
7932   .MuiButtonBase-root {
7933     color: inherit;
7934     border: 0;
7935     cursor: pointer;
7936     margin: 0;
7937     display: inline-flex;
7938     outline: 0;
7939     padding: 0;
7940     position: relative;
7941     align-items: center;
7942     user-select: none;
7943     border-radius: 0;
7944     vertical-align: middle;
7945     -moz-appearance: none;
7946     justify-content: center;
7947     text-decoration: none;
7948     background-color: transparent;
7949     -webkit-appearance: none;
7950     -webkit-tap-highlight-color: transparent;
7951   }
7952   .MuiIconButton-root {
7953     flex: 0 0 auto;
7954     color: rgba(0, 0, 0, 0.54);
7955     padding: 12px;
7956     overflow: visible;
7957     font-size: 1.5rem;
7958     text-align: center;
7959     transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
7960     border-radius: 50%;
7961   }
7962   .MuiIconButton-label {
7963     width: 100%;
7964     display: flex;
7965     align-items: inherit;
7966     justify-content: inherit;
7967   }
7968   .MuiSvgIcon-root {
7969     fill: currentColor;
7970     width: 1em;
7971     height: 1em;
7972     display: inline-block;
7973     font-size: 1.5rem;
7974     transition: fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
7975     flex-shrink: 0;
7976     user-select: none;
7977   }
7978   .MuiTouchRipple-root {
7979     top: 0;
7980     left: 0;
7981     right: 0;
7982     bottom: 0;
7983     z-index: 0;
7984     overflow: hidden;
7985     position: absolute;
7986     border-radius: inherit;
7987     pointer-events: none;
7988   }
7989   .jss36 {
7990     color: #222222;
7991     font-size: 24px;
7992     font-family: Roboto, Arial, sans-serif;
7993     font-weight: 500;
7994   }
7995   .jss37 {
7996     color: #555555;
7997     padding: 10px 0px 0px;
7998     font-size: 14px;
7999   }
8000   .MuiFormGroup-root {
8001     display: flex;
8002     flex-wrap: wrap;
8003     flex-direction: column;
8004   }
8005   .MuiFormGroup-row {
8006     flex-direction: row;
8007   }
8008   .jss63 {
8009     width: 85%;
8010     margin: 15px auto;
8011     display: flex;
8012     padding: 11px 0px 0px;
8013     justify-content: space-evenly;
8014   }
8015   .MuiFormControlLabel-root {
8016     cursor: pointer;
8017     display: inline-flex;
8018     align-items: center;
8019     margin-left: -11px;
8020     margin-right: 16px;
8021     vertical-align: middle;
8022     -webkit-tap-highlight-color: transparent;
8023   }
8024   .jss70 {
8025     margin: 0;
8026   }
8027   .MuiButtonBase-root {
8028     color: inherit;
8029     border: 0;
8030     cursor: pointer;
8031     margin: 0;
8032     display: inline-flex;
8033     outline: 0;
8034     padding: 0;
8035     position: relative;
8036     align-items: center;
8037     user-select: none;
8038     border-radius: 0;
8039     vertical-align: middle;
8040     -moz-appearance: none;
8041     justify-content: center;
8042     text-decoration: none;
8043     background-color: transparent;
8044     -webkit-appearance: none;
8045     -webkit-tap-highlight-color: transparent;
8046   }
8047   .MuiIconButton-root {
8048     flex: 0 0 auto;
8049     color: rgba(0, 0, 0, 0.54);
8050     padding: 12px;
8051     overflow: visible;
8052     font-size: 1.5rem;
8053     text-align: center;
8054     transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
8055     border-radius: 50%;
8056   }
8057   .MuiIconButton-colorSecondary {
8058     color: #f50057;
8059   }
8060   .jss71 {
8061     padding: 9px;
8062   }
8063   .MuiRadio-root {
8064     color: rgba(0, 0, 0, 0.54);
8065   }
8066   .jss64 {
8067     padding: 2px;
8068   }
8069   .MuiRadio-colorSecondary.Mui-checked {
8070     color: #f50057;
8071   }
8072   .MuiIconButton-label {
8073     width: 100%;
8074     display: flex;
8075     align-items: inherit;
8076     justify-content: inherit;
8077   }
8078   .MuiTypography-root {
8079     margin: 0;
8080   }
8081   .MuiTypography-body1 {
8082     font-size: 18px;
8083     font-family: Roboto,sans-serif;
8084     font-weight: 400;
8085     line-height: 1.5;
8086   }
8087   .location-popup_area-block__sp9Ws {
8088     display: -moz-box;
8089     display: flex;
8090     -moz-box-orient: vertical;
8091     -moz-box-direction: normal;
8092     flex-direction: column;
8093     -moz-box-pack: center;
8094     justify-content: center;
8095     position: relative;
8096     margin: 10px 10% 0;
8097   }
8098   .location-popup_pin-search-box__3l5mJ {
8099     width: 100%;
8100     display: -moz-box;
8101     display: flex;
8102     -moz-box-align: center;
8103     align-items: center;
8104   }
8105   .location-popup_place-icon-city__1XAX5, .location-popup_place-icon__jSG0Q {
8106     position: absolute;
8107     z-index: 999;
8108   }
8109   .location-popup_place-icon__jSG0Q {
8110     color: #ffffff;
8111     padding-left: 8px;
8112   }
8113   .location-popup_place-icon__jSG0Q svg {
8114     width: 18px;
8115     height: 18px;
8116   }
8117   .location-popup_cancel-icon__FHujU {
8118     color: #fff;
8119     right: 10px;
8120     width: 16px;
8121     cursor: pointer;
8122     height: 16px;
8123     display: none;
8124     padding: 5px;
8125     position: absolute;
8126     background: #999;
8127     text-align: center;
8128     border-radius: 50%;
8129   }
8130   .location-popup_pin-search-box__3l5mJ>div>select {
8131 /*     -webkit-box-shadow: 0 0 10px #ffffff;
8132     box-shadow: 0 0 10px #ffffff; */
8133     text-transform: capitalize;
8134     border: 1px solid #ffffff;
8135     color: #ffffff;
8136     width: 100%;
8137     margin: 0;
8138     display: -moz-box;
8139     display: flex;
8140     padding: 0 30px;
8141     -webkit-animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite;
8142     -moz-animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite;
8143     animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite;
8144     font-size: 16px;
8145     border-radius: 4px;
8146     height: 44px;
8147     moz-animation: location-popup_focuses__1I8Gj ease-in-out 1.5s infinite;
8148     webkit-animation: location-popup_focuses__1I8Gj ease-in-out 1.5s infinite;
8149   }
8150   .MuiButtonBase-root {
8151     color: inherit;
8152     border: 0;
8153     cursor: pointer;
8154     margin: 0;
8155     display: inline-flex;
8156     outline: 0;
8157     padding: 0;
8158     position: relative;
8159     align-items: center;
8160     user-select: none;
8161     border-radius: 0;
8162     vertical-align: middle;
8163     -moz-appearance: none;
8164     justify-content: center;
8165     text-decoration: none;
8166     background-color: transparent;
8167     -webkit-appearance: none;
8168     -webkit-tap-highlight-color: transparent;
8169   }
8170   .MuiButton-root {
8171     color: rgba(0, 0, 0, 0.87);
8172     padding: 6px 16px;
8173     font-size: 0.875rem;
8174     min-width: 64px;
8175     box-sizing: border-box;
8176     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;
8177     font-family: Roboto,sans-serif;
8178     font-weight: 500;
8179     line-height: 1.75;
8180     border-radius: 4px;
8181     text-transform: uppercase;
8182   }
8183   .MuiButton-contained {
8184     color: rgba(0, 0, 0, 0.87);
8185     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);
8186     background-color: #e0e0e0;
8187   }
8188   .MuiButtonBase-root.Mui-disabled {
8189     cursor: default;
8190     pointer-events: none;
8191   }
8192   .MuiButton-label {
8193     width: 100%;
8194     display: inherit;
8195     align-items: inherit;
8196     justify-content: inherit;
8197   }
8198   .cartButton_login_content__2j1f7 {
8199     display: -moz-box;
8200     display: flex;
8201     text-align: center;
8202     z-index: 9;
8203     font-size: 18px;
8204     font-weight: 500;
8205     color: #fff;
8206   }
8207   
8208   .jss35 {
8209     top: 5px;
8210     right: 5px;
8211     padding: 4px;
8212     position: absolute;
8213     border-radius: 50%;
8214   }
8215   .jss67 {
8216     cursor: pointer;
8217     font-size: 15px;
8218     line-height: 1.3;
8219     padding-left: 5px;
8220   }
8221   .jss69 {
8222     color: #222222;
8223   }
8224   .jss80 {
8225     color: #fff;
8226     width: 100%;
8227     height: 52px;
8228     padding: 11px 16px;
8229     font-size: 18px;
8230     min-width: 88px;
8231     min-height: 36px;
8232     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;
8233     font-weight: 500;
8234     line-weight: 1em;
8235     border-radius: 4px;
8236     text-transform: uppercase;
8237     background-color: #E87325;
8238   }
8239   @media (min-width: 991px){
8240     .cartButton_login_content__2j1f7 {
8241         font-weight: 500;
8242     }
8243   }
8244 
8245   @media (max-width: 992px) {
8246     #location-lock-dialog {
8247       width: 100%;
8248       top: auto;
8249       bottom: 0;
8250       padding-left: 0;
8251       padding-right: 0;
8252     }
8253     .MuiFormGroup-row {
8254       display: block
8255     }
8256     .MuiIconButton-label input {
8257       margin: 0;
8258     }
8259   }
8260 </style>
8261 <div role="presentation" class="MuiDialog-root jss34" style="display: none;position: fixed; z-index: 9999; inset: 0px;">
8262   <div class="MuiBackdrop-root" aria-hidden="true" style="opacity: 1; transition: opacity 225ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;"></div>
8263   <div tabindex="0" data-test="sentinelStart"></div>
8264   <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;">
8265     <div class="MuiPaper-root MuiDialog-paper MuiDialog-paperScrollPaper MuiDialog-paperWidthSm MuiPaper-elevation24 MuiPaper-rounded" role="dialog">
8266       <div class="jss31 undefined" id="location-lock-dialog">
8267         <button id="close-popup-delivery" class="MuiButtonBase-root MuiIconButton-root jss35" tabindex="0" type="button" aria-label="close">
8268           <span class="MuiIconButton-label">
8269             <svg class="MuiSvgIcon-root" focusable="false" viewBox="0 0 24 24" aria-hidden="true">
8270               <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>
8271             </svg>
8272           </span>
8273           <span class="MuiTouchRipple-root"></span>
8274         </button>
8275         <div>
8276           <div class="jss36">Select Delivery Location</div>
8277           <div class="jss37">Select a delivery location to see product availability</div>
8278         </div>
8279         <div class="MuiFormGroup-root jss63 MuiFormGroup-row" role="radiogroup">
8280           <label for="jabodetabek" class="MuiFormControlLabel-root jss45">
8281             <span class="MuiButtonBase-root MuiIconButton-root jss46 MuiRadio-root MuiRadio-colorSecondary jss39 jss47 Mui-checked MuiIconButton-colorSecondary" aria-disabled="false">
8282               <span class="MuiIconButton-label">
8283                 <input id="jabodetabek" class="jss49" type="radio" value="Jabodetabek" checked="" name="location">
8284                 <span class="jss41"></span>
8285               </span>
8286               <span class="MuiTouchRipple-root"></span>
8287             </span>
8288             <span class="MuiTypography-root MuiFormControlLabel-label MuiTypography-body1">
8289               <span class="jss67 jss69">Jabodetabek</span>
8290             </span>
8291           </label>
8292           <label for="non-jabodetabek" class="MuiFormControlLabel-root jss45">
8293             <span class="MuiButtonBase-root MuiIconButton-root jss46 MuiRadio-root MuiRadio-colorSecondary jss39 MuiIconButton-colorSecondary" aria-disabled="false">
8294               <span class="MuiIconButton-label">
8295                 <input id="non-jabodetabek" class="jss49" type="radio" value="Outside Jabodetabek" name="location">
8296                 <span class="jss40"></span>
8297               </span>
8298               <span class="MuiTouchRipple-root"></span>
8299             </span>
8300             <span class="MuiTypography-root MuiFormControlLabel-label MuiTypography-body1">
8301               <span class="jss67 jss68">Outside Jabodetabek</span>
8302             </span>
8303           </label>
8304         </div>
8305         <div>
8306           <div class="MuiGrid-root location-popup_area-block__sp9Ws">
8307             <div class="MuiGrid-root location-popup_pin-search-box__3l5mJ false">
8308               <div class="MuiGrid-root location-popup_place-icon__jSG0Q">
8309                 <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>
8310               </div>
8311               <div class="MuiGrid-root location-popup_cancel-icon__FHujU false">
8312                 <i class="material-icons location-popup_clear-pin__s1dRc">close</i>
8313               </div>
8314               <div style="width: 100%;">
8315                 <select id="choose-location" class="form-control">
8316                   <option value="">Choose Location</option>
8317                   <option value="jakarta">Jakarta</option>
8318                   <option value="bogor">Bogor</option>
8319                   <option value="depok">Depok</option>
8320                   <option value="tangerang">Tangerang</option>
8321                   <option value="bekasi">Bekasi</option>
8322                 </select>
8323               </div>
8324             </div>
8325           </div>
8326         </div>
8327         <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="">
8328           <span class="MuiButton-label">
8329             <span class=""></span>
8330             <span id="location-lock-continue-btn" class="cartButton_login_content__2j1f7" style="font-weight: 500;" data-content="">Continue Shopping</span>
8331           </span>
8332         </button>
8333       </div>
8334     </div>
8335   </div>
8336   <div tabindex="0" data-test="sentinelEnd"></div>
8337 </div>
8338 
8339 
8339<script>
8340   const jabodetabek = [
8341     {
8342       "code": "jakarta",
8343       "city": "jakarta",
8344       "zip": []
8345     },
8346     {
8347       "code": "bogor",
8348       "city": "bogor",
8349       "zip": []
8350     },
8351     {
8352       "code": "depok",
8353       "city": "depok",
8354       "zip": []
8355     },
8356     {
8357       "code": "tangerang",
8358       "city": "tangerang",
8359       "zip": []
8360     },
8361     {
8362       "code": "bekasi",
8363       "city": "bekasi",
8364       "zip": []
8365     }
8366   ]
8367   let cityNonJabodetabek = [
8368     
8369     
8370     
8371     
8372     
8373     
8374     
8375     
8376     
8377     
8378     
8379     
8380     
8381     
8382     
8383     
8384     
8385     
8386     
8387     
8388     
8389     
8390     
8391     
8392     
8393     
8394     
8395     
8396     
8397     
8398     
8399     
8400     
8401     
8402     
8403     
8404     
8405     
8406     
8407     
8408     
8409     
8410     
8411     
8412     
8413     
8414     
8415     
8416     
8417     
8418     
8419     
8420     
8421     
8422     
8423     
8424     
8425     
8426     
8427     
8428     
8429     
8430     
8431     
8432     
8433     
8434     
8435     
8436     
8437     
8438     
8439     
8440     
8441     
8442     
8443     
8444     
8445     
8446     
8447     
8448     
8449     
8450     
8451     
8452     
8453     
8454     
8455     
8456     
8457     
8458     
8459     
8460     
8461     
8462     
8463     
8464     
8465     
8466     
8467     
8468     
8469     
8470     
8471     
8472     
8473     
8474     
8475     
8476     
8477     
8478     
8479     
8480     
8481     
8482     
8483     
8484     
8485     
8486     
8487     
8488     
8489     
8490     
8491     
8492     
8493     
8494     
8495     
8496     
8497     
8498     
8499     
8500     
8501     
8502     
8503     
8504     
8505     
8506     
8507     
8508     
8509     
8510     
8511     
8512     
8513     
8514     
8515     
8516     
8517     
8518     
8519     
8520     
8521     
8522     
8523     
8524     
8525     
8526     
8527     
8528     
8529     
8530     
8531     
8532     
8533     
8534     
8535     
8536     
8537     
8538     
8539     
8540     
8541     
8542     
8543     
8544     
8545     
8546     
8547     
8548     
8549     
8550     
8551     
8552     
8553     
8554     
8555     
8556     
8557     
8558     
8559     
8560     
8561     
8562     
8563     
8564     
8565     
8566     
8567     
8568     
8569     
8570     
8571     
8572     
8573     
8574     
8575     
8576     
8577     
8578     
8579     
8580     
8581     
8582     
8583     
8584     
8585     
8586     
8587     
8588     
8589     
8590     
8591     
8592     
8593     
8594     
8595     
8596     
8597     
8598     
8599     
8600     
8601     
8602     
8603     
8604     
8605     
8606     
8607     
8608     
8609     
8610     
8611     
8612     
8613     
8614     
8615     
8616     
8617     
8618     
8619     
8620     
8621     
8622     
8623     
8624     
8625     
8626     
8627     
8628     
8629     
8630     
8631     
8632     
8633     
8634     
8635     
8636     
8637     
8638     
8639     
8640     
8641     
8642     
8643     
8644     
8645     
8646     
8647     
8648     
8649     
8650     
8651     
8652     
8653     
8654     
8655     
8656     
8657     
8658     
8659     
8660     
8661     
8662     
8663     
8664     
8665     
8666     
8667     
8668     
8669     
8670     
8671     
8672     
8673     
8674     
8675     
8676     
8677     
8678     
8679     
8680     
8681     
8682     
8683     
8684     
8685     
8686     
8687     
8688     
8689     
8690     
8691     
8692     
8693     
8694     
8695     
8696     
8697     
8698     
8699     
8700     
8701     
8702     
8703     
8704     
8705     
8706     
8707     
8708     
8709     
8710     
8711     
8712     
8713     
8714     
8715     
8716     
8717     
8718     
8719     
8720     
8721     
8722     
8723     
8724     
8725     
8726     
8727     
8728     
8729     
8730     
8731     
8732     
8733     
8734     
8735     
8736     
8737     
8738     
8739     
8740     
8741     
8742     
8743     
8744     
8745     
8746     
8747     
8748     
8749     
8750     
8751     
8752     
8753     
8754     
8755     
8756     
8757     
8758     
8759     
8760     
8761     
8762     
8763     
8764     
8765     
8766     
8767     
8768     
8769     
8770     
8771     
8772     
8773     
8774     
8775     
8776     
8777     
8778     
8779     
8780     
8781     
8782     
8783     
8784     
8785     
8786     
8787     
8788     
8789     
8790     
8791     
8792     
8793     
8794     
8795     
8796     
8797     
8798     
8799     
8800     
8801     
8802     
8803     
8804     
8805     
8806     
8807     
8808     
8809     
8810     
8811     
8812     
8813     
8814     
8815     
8816     
8817     
8818     
8819     
8820     
8821     
8822     
8823     
8824     
8825     
8826     
8827     
8828     
8829     
8830     
8831     
8832     
8833     
8834     
8835     
8836     
8837     
8838     
8839     
8840     
8841     
8842     
8843     
8844     
8845     
8846     
8847     
8848     
8849     
8850     
8851     
8852     
8853     
8854     
8855     
8856     
8857     
8858     
8859     
8860     
8861     
8862     
8863     
8864     
8865     
8866     
8867     
8868     
8869     
8870     
8871     
8872     
8873     
8874     
8875     
8876     
8877     
8878     
8879     
8880     
8881     
8882     
8883     
8884     
8885     
8886     
8887     
8888     
8889     
8890     
8891     
8892     
8893     
8894     
8895     
8896     
8897     
8898     
8899     
8900     
8901     
8902     
8903     
8904     
8905     
8906     
8907     
8908     
8909     
8910     
8911     
8912     
8913     
8914     
8915     
8916     
8917     
8918     
8919     
8920     
8921     
8922     
8923     
8924     
8925     
8926     
8927     
8928     
8929     
8930     
8931     
8932     
8933     
8934     
8935     
8936     
8937     
8938     
8939     
8940     
8941     
8942     
8943     
8944     
8945     
8946     
8947     
8948     
8949     
8950     
8951     
8952     
8953     
8954     
8955     
8956     
8957     
8958     
8959     
8960     
8961     
8962     
8963     
8964     
8965     
8966     
8967     
8968     
8969     
8970     
8971     
8972     
8973     
8974     
8975     
8976     
8977     
8978     
8979     
8980     
8981     
8982     
8983     
8984     
8985     
8986     
8987     
8988     
8989     
8990     
8991     
8992     
8993     
8994     
8995     
8996     
8997     
8998     
8999     
9000     
9001     
9002     
9003     
9004     
9005     
9006     
9007     
9008     
9009     
9010     
9011     
9012     
9013     
9014     
9015     
9016     
9017     
9018     
9019     
9020     
9021     
9022     
9023     
9024     
9025     
9026     
9027     
9028     
9029     
9030     
9031     
9032     
9033     
9034     
9035     
9036     
9037     
9038     
9039     
9040     
9041     
9042     
9043     
9044     
9045     
9046     
9047     
9048     
9049     
9050     
9051     
9052     
9053     
9054     
9055     
9056     
9057     
9058     
9059     
9060     
9061     
9062     
9063     
9064     
9065     
9066     
9067     
9068     
9069     
9070     
9071     
9072     
9073     
9074     
9075     
9076     
9077     
9078     
9079     
9080     
9081     
9082     
9083     
9084     
9085     
9086     
9087     
9088     
9089     
9090     
9091     
9092     
9093     
9094     
9095     
9096     
9097     
9098     
9099     
9100     
9101     
9102     
9103     
9104     
9105     
9106     
9107     
9108     
9109     
9110     
9111     
9112     
9113     
9114     
9115     
9116     
9117     
9118     
9119     
9120     
9121     
9122     
9123     
9124     
9125     
9126     
9127     
9128     
9129     
9130     
9131     
9132     
9133     
9134     
9135     
9136     
9137     
9138     
9139     
9140     
9141     
9142     
9143     
9144     
9145     
9146     
9147     
9148     
9149     
9150     
9151     
9152     
9153     
9154     
9155     
9156     
9157     
9158     
9159     
9160     
9161     
9162     
9163     
9164     
9165     
9166     
9167     
9168     
9169     
9170     
9171     
9172     
9173     
9174     
9175     
9176     
9177     
9178     
9179     
9180     
9181     
9182     
9183     
9184     
9185     
9186     
9187     
9188     
9189     
9190     
9191     
9192     
9193     
9194     
9195     
9196     
9197     
9198     
9199     
9200     
9201     
9202     
9203     
9204     
9205     
9206     
9207     
9208     
9209     
9210     
9211     
9212     
9213     
9214     
9215     
9216     
9217     
9218     
9219     
9220     
9221     
9222     
9223     
9224     
9225     
9226     
9227     
9228     
9229     
9230     
9231     
9232     
9233     
9234     
9235     
9236     
9237     
9238     
9239     
9240     
9241     
9242     
9243     
9244     
9245     
9246     
9247     
9248     
9249     
9250     
9251     
9252     
9253     
9254     
9255     
9256     
9257     
9258     
9259     
9260     
9261     
9262     
9263     
9264     
9265     
9266     
9267     
9268     
9269     
9270     
9271     
9272     
9273     
9274     
9275     
9276     
9277     
9278     
9279     
9280     
9281     
9282     
9283     
9284     
9285     
9286     
9287     
9288     
9289     
9290     
9291     
9292     
9293     
9294     
9295     
9296     
9297     
9298     
9299     
9300     
9301     
9302     
9303     
9304     
9305     
9306     
9307     
9308     
9309     
9310     
9311     
9312     
9313     
9314     
9315     
9316     
9317     
9318     
9319     
9320     
9321     
9322     
9323     
9324     
9325     
9326     
9327     
9328     
9329     
9330     
9331     
9332     
9333     
9334     
9335     
9336     
9337     
9338     
9339     
9340     
9341     
9342     
9343     
9344     
9345     
9346     
9347     
9348     
9349     
9350     
9351     
9352     
9353     
9354     
9355     
9356     
9357     
9358     
9359     
9360     
9361     
9362     
9363     
9364     
9365     
9366     
9367     
9368     
9369     
9370     
9371     
9372     
9373     
9374     
9375     
9376     
9377     
9378     
9379     
9380     
9381     
9382     
9383     
9384     
9385     
9386     
9387     
9388     
9389     
9390     
9391     
9392     
9393     
9394     
9395     
9396     
9397     
9398     
9399     
9400     
9401     
9402     
9403     
9404     
9405     
9406     
9407     
9408     
9409     
9410     
9411     
9412     
9413     
9414     
9415     
9416     
9417     
9418     
9419     
9420     
9421     
9422     
9423     
9424     
9425     
9426     
9427     
9428     
9429     
9430     
9431     
9432     
9433     
9434     
9435     
9436     
9437     
9438     
9439     
9440     
9441     
9442     
9443     
9444     
9445     
9446     
9447     
9448     
9449     
9450     
9451     
9452     
9453     
9454     
9455     
9456     
9457     
9458     
9459     
9460     
9461     
9462     
9463     
9464     
9465     
9466     
9467     
9468     
9469     
9470     
9471     
9472     
9473     
9474     
9475     
9476     
9477     
9478     
9479     
9480     
9481     
9482     
9483     
9484     
9485     
9486     
9487     
9488     
9489     
9490     
9491     
9492     
9493     
9494     
9495     
9496     
9497     
9498     
9499     
9500     
9501     
9502     
9503     
9504     
9505     
9506     
9507     
9508     
9509     
9510     
9511     
9512     
9513     
9514     
9515     
9516     
9517     
9518     
9519     
9520     
9521     
9522     
9523     
9524     
9525     
9526     
9527     
9528     
9529     
9530     
9531     
9532     
9533     
9534     
9535     
9536     
9537     
9538     
9539     
9540     
9541     "pengiriman_aceh",
9542     
9543     
9544     
9545     
9546     
9547     "pengiriman_ambon",
9548     
9549     
9550     
9551     
9552     
9553     "pengiriman_atambua",
9554     
9555     
9556     
9557     
9558     
9559     "pengiriman_badung",
9560     
9561     
9562     
9563     
9564     
9565     "pengiriman_bali",
9566     
9567     
9568     
9569     
9570     
9571     "pengiriman_balikpapan",
9572     
9573     
9574     
9575     
9576     
9577     "pengiriman_bandar lampung",
9578     
9579     
9580     
9581     
9582     
9583     "pengiriman_bandung",
9584     
9585     
9586     
9587     
9588     
9589     "pengiriman_bandung barat",
9590     
9591     
9592     
9593     
9594     
9595     "pengiriman_banjarmasin",
9596     
9597     
9598     
9599     
9600     
9601     "pengiriman_banyumas",
9602     
9603     
9604     
9605     
9606     
9607     "pengiriman_banyuwangi",
9608     
9609     
9610     
9611     
9612     
9613     "pengiriman_batam",
9614     
9615     
9616     
9617     
9618     
9619     
9620     
9621     
9622     
9623     "pengiriman_biak",
9624     
9625     
9626     
9627     
9628     
9629     "pengiriman_binjai",
9630     
9631     
9632     
9633     
9634     
9635     "pengiriman_blitar",
9636     
9637     
9638     
9639     
9640     
9641     "pengiriman_blora",
9642     
9643     
9644     
9645     
9646     
9647     
9648     
9649     
9650     
9651     "pengiriman_bojonegoro",
9652     
9653     
9654     
9655     
9656     
9657     "pengiriman_boyolali",
9658     
9659     
9660     
9661     
9662     
9663     "pengiriman_bukittinggi",
9664     
9665     
9666     
9667     
9668     
9669     "pengiriman_buleleng",
9670     
9671     
9672     
9673     
9674     
9675     "pengiriman_ciamis",
9676     
9677     
9678     
9679     
9680     
9681     "pengiriman_cianjur",
9682     
9683     
9684     
9685     
9686     
9687     "pengiriman_cibinong",
9688     
9689     
9690     
9691     
9692     
9693     "pengiriman_cikarang",
9694     
9695     
9696     
9697     
9698     
9699     "pengiriman_cikupa",
9700     
9701     
9702     
9703     
9704     
9705     "pengiriman_cilacap",
9706     
9707     
9708     
9709     
9710     
9711     "pengiriman_cileunyi",
9712     
9713     
9714     
9715     
9716     
9717     "pengiriman_cimahi",
9718     
9719     
9720     
9721     
9722     
9723     "pengiriman_cirebon",
9724     
9725     
9726     
9727     
9728     
9729     "pengiriman_ciwidey",
9730     
9731     
9732     
9733     
9734     
9735     "pengiriman_deli serdang",
9736     
9737     
9738     
9739     
9740     
9741     "pengiriman_demak",
9742     
9743     
9744     
9745     
9746     
9747     "pengiriman_denpasar",
9748     
9749     
9750     
9751     
9752     
9753     
9754     
9755     
9756     
9757     "pengiriman_garut",
9758     
9759     
9760     
9761     
9762     
9763     "pengiriman_gianyar",
9764     
9765     
9766     
9767     
9768     
9769     "pengiriman_gresik",
9770     
9771     
9772     
9773     
9774     
9775     "pengiriman_gunung kidul",
9776     
9777     
9778     
9779     
9780     
9781     
9782     
9783     
9784     
9785     "pengiriman_jambi",
9786     
9787     
9788     
9789     
9790     
9791     "pengiriman_jayapura",
9792     
9793     
9794     
9795     
9796     
9797     "pengiriman_jember",
9798     
9799     
9800     
9801     
9802     
9803     "pengiriman_jepara",
9804     
9805     
9806     
9807     
9808     
9809     "pengiriman_jombang",
9810     
9811     
9812     
9813     
9814     
9815     "pengiriman_karanganyar",
9816     
9817     
9818     
9819     
9820     
9821     "pengiriman_karawang",
9822     
9823     
9824     
9825     
9826     
9827     "pengiriman_karo",
9828     
9829     
9830     
9831     
9832     
9833     "pengiriman_kebumen",
9834     
9835     
9836     
9837     
9838     
9839     "pengiriman_kediri",
9840     
9841     
9842     
9843     
9844     
9845     "pengiriman_keerom",
9846     
9847     
9848     
9849     
9850     
9851     "pengiriman_kendal",
9852     
9853     
9854     
9855     
9856     
9857     "pengiriman_klaten",
9858     
9859     
9860     
9861     
9862     
9863     
9864     
9865     
9866     
9867     "pengiriman_kudus",
9868     
9869     
9870     
9871     
9872     
9873     "pengiriman_kupang",
9874     
9875     
9876     
9877     
9878     
9879     "pengiriman_lainnya",
9880     
9881     
9882     
9883     
9884     
9885     "pengiriman_lamongan",
9886     
9887     
9888     
9889     
9890     
9891     "pengiriman_lampung",
9892     
9893     
9894     
9895     
9896     
9897     "pengiriman_lampung barat",
9898     
9899     
9900     
9901     
9902     
9903     "pengiriman_lembang",
9904     
9905     
9906     
9907     
9908     
9909     "pengiriman_lombok",
9910     
9911     
9912     
9913     
9914     
9915     "pengiriman_lumajang",
9916     
9917     
9918     
9919     
9920     
9921     "pengiriman_madiun",
9922     
9923     
9924     
9925     
9926     
9927     "pengiriman_magelang",
9928     
9929     
9930     
9931     
9932     
9933     "pengiriman_majalengka",
9934     
9935     
9936     
9937     
9938     
9939     "pengiriman_makassar",
9940     
9941     
9942     
9943     
9944     
9945     "pengiriman_malang",
9946     
9947     
9948     
9949     
9950     
9951     "pengiriman_manado",
9952     
9953     
9954     
9955     
9956     
9957     "pengiriman_medan",
9958     
9959     
9960     
9961     
9962     
9963     "pengiriman_mengwi",
9964     
9965     
9966     
9967     
9968     
9969     "pengiriman_mojokerto",
9970     
9971     
9972     
9973     
9974     
9975     "pengiriman_nganjuk",
9976     
9977     
9978     
9979     
9980     
9981     "pengiriman_ngawi",
9982     
9983     
9984     
9985     
9986     
9987     "pengiriman_padang",
9988     
9989     
9990     
9991     
9992     
9993     "pengiriman_palembang",
9994     
9995     
9996     
9997     
9998     
9999     "pengiriman_pasuruan",
10000     
10001     
10002     
10003     
10004     
10005     "pengiriman_pati",
10006     
10007     
10008     
10009     
10010     
10011     "pengiriman_pekalongan",
10012     
10013     
10014     
10015     
10016     
10017     "pengiriman_pekanbaru",
10018     
10019     
10020     
10021     
10022     
10023     "pengiriman_pemalang",
10024     
10025     
10026     
10027     
10028     
10029     "pengiriman_ponorogo",
10030     
10031     
10032     
10033     
10034     
10035     "pengiriman_pontianak",
10036     
10037     
10038     
10039     
10040     
10041     "pengiriman_probolinggo",
10042     
10043     
10044     
10045     
10046     
10047     "pengiriman_purbalingga",
10048     
10049     
10050     
10051     
10052     
10053     "pengiriman_purwakarta",
10054     
10055     
10056     
10057     
10058     
10059     "pengiriman_purwokerto",
10060     
10061     
10062     
10063     
10064     
10065     "pengiriman_rembang",
10066     
10067     
10068     
10069     
10070     
10071     "pengiriman_riau",
10072     
10073     
10074     
10075     
10076     
10077     "pengiriman_salatiga",
10078     
10079     
10080     
10081     
10082     
10083     "pengiriman_samarinda",
10084     
10085     
10086     
10087     
10088     
10089     "pengiriman_semarang",
10090     
10091     
10092     
10093     
10094     
10095     "pengiriman_sentani",
10096     
10097     
10098     
10099     
10100     
10101     "pengiriman_serang",
10102     
10103     
10104     
10105     
10106     
10107     "pengiriman_sidoarjo",
10108     
10109     
10110     
10111     
10112     
10113     "pengiriman_singkawang",
10114     
10115     
10116     
10117     
10118     
10119     "pengiriman_sragen",
10120     
10121     
10122     
10123     
10124     
10125     "pengiriman_subang",
10126     
10127     
10128     
10129     
10130     
10131     "pengiriman_sukabumi",
10132     
10133     
10134     
10135     
10136     
10137     "pengiriman_sumbawa",
10138     
10139     
10140     
10141     
10142     
10143     "pengiriman_surabaya",
10144     
10145     
10146     
10147     
10148     
10149     "pengiriman_surakarta solo",
10150     
10151     
10152     
10153     
10154     
10155     
10156     
10157     
10158     
10159     "pengiriman_tasikmalaya",
10160     
10161     
10162     
10163     
10164     
10165     "pengiriman_tegal",
10166     
10167     
10168     
10169     
10170     
10171     "pengiriman_timika",
10172     
10173     
10174     
10175     
10176     
10177     "pengiriman_wamena",
10178     
10179     
10180     
10181     
10182     
10183     "pengiriman_wiyung",
10184     
10185     
10186     
10187     
10188     
10189     "pengiriman_wonokromo",
10190     
10191     
10192     
10193     
10194     
10195     "pengiriman_yogyakarta",
10196     
10197     
10198     
10199     
10200     
10201     
10202     
10203     
10204     
10205     
10206     
10207     
10208     
10209     
10210     
10211     
10212     
10213     
10214     
10215     
10216     
10217     
10218     
10219     
10220     
10221     
10222     
10223     
10224     
10225     
10226     
10227     
10228     
10229     
10230     
10231     
10232     
10233     
10234     
10235     
10236     
10237     
10238     
10239     
10240     
10241     
10242     
10243     
10244     
10245     
10246     
10247     
10248     
10249     
10250     
10251     
10252     
10253     
10254     
10255     
10256     
10257     
10258     
10259     
10260     
10261     
10262     
10263     
10264     
10265     
10266     
10267     
10268     
10269     
10270     
10271     
10272     
10273     
10274     
10275     
10276     
10277     
10278     
10279     
10280     
10281     
10282     
10283     
10284     
10285     
10286     
10287     
10288     
10289     
10290     
10291     
10292     
10293     
10294     
10295     
10296     
10297     
10298     
10299     
10300     
10301     
10302     
10303     
10304     
10305     
10306     
10307     
10308     
10309     
10310     
10311     
10312     
10313     
10314     
10315     
10316     
10317     
10318     
10319     
10320     
10321     
10322     
10323     
10324     
10325     
10326     
10327     
10328     
10329     
10330     
10331     
10332     
10333     
10334     
10335     
10336     
10337     
10338     
10339     
10340     
10341     
10342     
10343     
10344     
10345     
10346     
10347     
10348     
10349     
10350     
10351     
10352     
10353     
10354     
10355     
10356     
10357     
10358     
10359     
10360     
10361     
10362     
10363     
10364     
10365     
10366     
10367     
10368     
10369     
10370     
10371     
10372     
10373     
10374     
10375     
10376     
10377     
10378     
10379     
10380     
10381     
10382     
10383     
10384     
10385     
10386     
10387     
10388     
10389     
10390     
10391     
10392     
10393     
10394     
10395     
10396     
10397     
10398     
10399     
10400     
10401     
10402     
10403     
10404     
10405     
10406     
10407     
10408     
10409     
10410     
10411     
10412     
10413     
10414     
10415     
10416     
10417     
10418     
10419     
10420     
10421     
10422     
10423     
10424     
10425     
10426     
10427     
10428     
10429     
10430     
10431     
10432     
10433     
10434     
10435     
10436     
10437     
10438     
10439     
10440     
10441     
10442     
10443     
10444     
10445     
10446     
10447     
10448     
10449     
10450     
10451     
10452     
10453     
10454     
10455     
10456     
10457     
10458     
10459     
10460     
10461     
10462     
10463     
10464     
10465     
10466     
10467     
10468     
10469     
10470     
10471     
10472     
10473     
10474     
10475     
10476     
10477     
10478     
10479     
10480     
10481     
10482     
10483     
10484     
10485     
10486     
10487     
10488     
10489     
10490     
10491     
10492     
10493     
10494     
10495     
10496     
10497     
10498     
10499     
10500     
10501     
10502     
10503     
10504     
10505     
10506     
10507     
10508     
10509     
10510     
10511     
10512     
10513     
10514     
10515     
10516     
10517     
10518     
10519     
10520     
10521     
10522     
10523     
10524     
10525     
10526     
10527     
10528     
10529     
10530     
10531     
10532     
10533     
10534     
10535     
10536     
10537     
10538     
10539     
10540     
10541     
10542     
10543     
10544     
10545     
10546     
10547     
10548     
10549     
10550     
10551     
10552     
10553     
10554     
10555     
10556     
10557     
10558     
10559     
10560     
10561     
10562     
10563     
10564     
10565     
10566     
10567     
10568     
10569     
10570     
10571     
10572     
10573     
10574     
10575     
10576     
10577     
10578     
10579     
10580     
10581     
10582     
10583     
10584     
10585     
10586     
10587     
10588     
10589     
10590     
10591     
10592     
10593     
10594     
10595     
10596     
10597     
10598     
10599     
10600     
10601     
10602     
10603     
10604     
10605     
10606     
10607     
10608     
10609     
10610     
10611     
10612     
10613     
10614     
10615     
10616     
10617     
10618     
10619     
10620     
10621     
10622     
10623     
10624     
10625     
10626     
10627     
10628     
10629     
10630     
10631     
10632     
10633     
10634     
10635     
10636     
10637     
10638     
10639     
10640     
10641     
10642     
10643     
10644     
10645     
10646     
10647     
10648     
10649     
10650     
10651     
10652     
10653     
10654     
10655     
10656     
10657     
10658     
10659     
10660     
10661     
10662     
10663     
10664     
10665     
10666     
10667     
10668     
10669     
10670     
10671     
10672     
10673     
10674     
10675     
10676     
10677     
10678     
10679     
10680     
10681     
10682     
10683     
10684     
10685     
10686     
10687     
10688     
10689     
10690     
10691     
10692     
10693     
10694     
10695     
10696     
10697     
10698     
10699     
10700     
10701     
10702     
10703     
10704     
10705     
10706     
10707     
10708     
10709     
10710     
10711     
10712     
10713     
10714     
10715     
10716     
10717     
10718     
10719     
10720     
10721     
10722     
10723     
10724     
10725     
10726     
10727     
10728     
10729     
10730     
10731     
10732     
10733     
10734     
10735     
10736     
10737     
10738     
10739     
10740     
10741     
10742     
10743     
10744     
10745     
10746     
10747     
10748     
10749     
10750     
10751     
10752     
10753     
10754     
10755     
10756     
10757     
10758     
10759     
10760     
10761     
10762     
10763     
10764     
10765     
10766     
10767     
10768     
10769     
10770     
10771     
10772     
10773     
10774     
10775     
10776     
10777     
10778     
10779     
10780     
10781     
10782     
10783     
10784     
10785     
10786     
10787     
10788     
10789     
10790     
10791     
10792     
10793     
10794     
10795     
10796     
10797     
10798     
10799     
10800     
10801     
10802     
10803     
10804     
10805   ]
10806   console.log(cityNonJabodetabek)
10807   let non_jabodetabek = []
10808   for(var i=0;i<cityNonJabodetabek.length;i++) {
10809     const obj = {
10810       "code": cityNonJabodetabek[i].toLowerCase().replace('pengiriman_', '').replace(' ','-'),
10811       "city": cityNonJabodetabek[i].replace('pengiriman_', '').replace(' ','-'),
10812       "zip": []
10813     }
10814     non_jabodetabek.push(obj)
10815   }
10816   let current_location = getCookie("location_delivery")
10817   $("[name=location]").change(function(){
10818     let v = $(this).val()
10819     let option = []
10820     if(v == 'Jabodetabek') {
10821       for(var i=0;i<jabodetabek.length;i++) {
10822         const jabodetabekHtml = `<option value=${jabodetabek[i].city}>${jabodetabek[i].city}</option>`
10823         option.push(jabodetabekHtml)
10824       }
10825       $("#choose-location").html(`<option value="">Choose Location</option>${option}`)
10826     } else {
10827       for(var i=0;i<non_jabodetabek.length;i++) {
10828         const nonjabodetabekHtml = `<option value=${non_jabodetabek[i].city}>${non_jabodetabek[i].city}</option>`
10829         option.push(nonjabodetabekHtml)
10830       }
10831       $("#choose-location").html(`<option value="">Choose Location</option>${option}`)
10832     }
10833   })
10834 
10835   $("#location-lock-submit").click(function(e){
10836     let select = $("#choose-location")
10837     let value = select.val().toLowerCase()
10838     console.log(value)
10839     if(select.val() == "") {
10840       return alert("Choose Your Location")
10841       e.preventDefault()
10842     }
10843     setCookie("location_delivery",value,1000000);
10844     
10845     location.reload();
10846     
10847   })
10848 
10849   $("#close-popup-delivery").click(function(){
10850     $(".MuiDialog-root").hide()
10851     if(!current_location){
10852       setCookie("location_delivery","jakarta",1000000);
10853       $("#loc_delivery_city, #loc_delivery_city_mobile").text("Jakarta")
10854     }
10855   })
10856   $("#loc_delivery, #loc_delivery_mobile").click(function(){
10857     $(".MuiDialog-root").show()
10858   })
10859 
10860   
10861   if(!current_location){
10862     
10863   } else {
10864     $("#loc_delivery_city, #loc_delivery_city_mobile").text(current_location)
10865     console.log(current_location)
10866     $("#choose-location").each(function(){
10867       if(current_location == 'jakarta' || current_location == 'depok' || current_location == 'bogor' || current_location == 'tangerang' || current_location == 'bekasi'){
10868         $("#jabodetabek").trigger("click")
10869       } else {
10870         $("#non-jabodetabek").trigger("click")
10871       }
10872       $("#choose-location").find("option[value="+current_location+"]").attr("selected", "selected")
10873     })
10874   }
10875 
10876   // 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'){
10877   //   $("#timeMalam").attr("disabled", false)
10878   // } else {
10879   //   $("#timeMalam").attr("disabled", true)
10880   // }
10881 
10882   if(current_location && current_location != 'jakarta') {
10883     $("#self-pickup").attr("disabled", true)
10884   }
10885 
10886   function setCookie(name,value,days) {
10887     var expires = "";
10888     if (days) {
10889       var date = new Date();
10890       date.setTime(date.getTime() + (days*24*60*60*1000));
10891       expires = "; expires=" + date.toUTCString();
10892     }
10893     document.cookie = name + "=" + (value || "")  + expires + "; path=/";
10894   }
10895   function getCookie(name) {
10896     var nameEQ = name + "=";
10897     var ca = document.cookie.split(';');
10898     for(var i=0;i < ca.length;i++) {
10899       var c = ca[i];
10900       while (c.charAt(0)==' ') c = c.substring(1,c.length);
10901       if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
10902     }
10903     return null;
10904   }
10905 </script>
10905
10906 <!-- One Tap -->
10907     
10907<script>
10908       console.log("Outerbloom...");
10909     </script>
10909
10910   <div id="shopify-block-ANVEzSUcxTUxZOGpwZ__9703700522657871012" class="shopify-block shopify-app-block">
10911 
10912 
10913 
10914 
10915 
10916 
10917 
10918 
10919 
10920 
10921 
10922 
10923 
10924 
10925 
10926 
10927 
10928 
10929 
10930 
10931 
10932 
10933 
10934 
10935 
10936 
10937 
10938 
10939 
10940 
10941 
10942 
10943 
10944 
10945 
10946 
10947 
10948 
10949 
10950 
10951 
10952 
10953 
10954 
10955 
10956 
10957 <link rel="stylesheet" href="https://cdn1.bitbybit.studio/bitbybit/static/bitChat_widget/widget.css" />
10958 
10958<script src="https://cdn1.bitbybit.studio/bitbybit/static/bitChat_widget/widget.js" defer></script>
10958
10959 
10959<script>
10960   const widgetConfig = {
10961     id: "clz7897za002cz7otleaz0d3d",
10962     showQuickResponse: false,
10963     quickResponsesData: [],
10964     themeColor: "#ffffff",
10965     widgetText: "",
10966     radiusType: "circle",
10967     widgetIconType: "whatsapp",
10968     position: "right",
10969     storeLogo: "",
10970     storeName: "Outerbloom",
10971     storeDescription: "",
10972     size: "small",
10973     showCard: false,
10974     widgetColorType: "solid",
10975     widgetColor1: "#008069",
10976     widgetColor2: "#008069",
10977     social: {
10978       socialOrders: ["instagram","tiktok","facebook","x","youtube","linkedin","email"],
10979       values: {
10980         instagram: {
10981           enabled: false,
10982           value: "",
10983         },
10984         facebook: {
10985           enabled: false,
10986           value: "",
10987         },
10988         email: {
10989           enabled: false,
10990           value: "",
10991         },
10992         x: {
10993           enabled: false,
10994           value: "",
10995         },
10996         tiktok: {
10997           enabled: false,
10998           value: "",
10999         },
11000         linkedin: {
11001           enabled: false,
11002           value: "",
11003         },
11004         youtube: {
11005           enabled: false,
11006           value: "",
11007         },
11008       },
11009     },
11010   };
11011 
11012   function initializeWidget() {
11013     if (typeof BBBWidget !== 'undefined') {
11014       BBBWidget.init(widgetConfig);
11015     } else {
11016       setTimeout(initializeWidget, 100);
11017     }
11018   }
11019 
11020   initializeWidget();</script>
11020
11021 
11022 
11023 </div><div id="shopify-block-ATzRpVTBPU3k1R2pnW__286197278318599166" class="shopify-block shopify-app-block">
11024 
11025 
11026 <div style="position: fixed; bottom: 0; right: 0"></div>
11027 
11028 
11028<script>
11029 console.info("bitlogin extension version: v2.5.7");
11030 
11031 const googleScript = document.createElement("script");
11032 googleScript.setAttribute("src", "https://accounts.google.com/gsi/client");
11033 document.head.append(googleScript);
11034 
11035 const bitLoginBaseUrl = "https://api.bitbybit.studio";
11036 const apiUrl = `${bitLoginBaseUrl}/bitlogin/api`;
11037 
11038 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"}};
11039 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
11039n1.oa2-cs.v1.1cb5f9085a202341f60daf5a7be16c570ccc0b4bd5908b3afd080f34e9b8935d","appleTeamId":null,"applePrivateKey":null,"usePersonalOauth":false,"position":null}];
11040 const redirectUrl = appearance.redirectLink;
11041 
11042 let locationCacheSet = false;
11043 let errorLocation = false;
11044 let oneTapSet = false;
11045 
11046 let bitloginCache = {
11047   appearance: appearance,
11048   config: config
11049 };
11050 
11051 let isInitializing = false;
11052 const queue = [];
11053 
11054 // Add CSS for the popup
11055 const popupStyles = document.createElement('style');
11056 popupStyles.textContent = `
11057   /* Styles for login popup */
11058   .bitlogin-popup-overlay {
11059     position: fixed;
11060     top: 0;
11061     left: 0;
11062     width: 100%;
11063     height: 100%;
11064     background: rgba(0, 0, 0, 0.45);
11065     backdrop-filter: blur(4px);
11066     display: flex;
11067     align-items: center;
11068     justify-content: center;
11069     opacity: 0;
11070     transition: opacity 0.3s ease-in-out;
11071     z-index: 999999;
11072   }
11073   
11074   .bitlogin-popup-overlay.visible {
11075     opacity: 1;
11076   }
11077   
11078   .bitlogin-popup {
11079     background: #FFFFFF;
11080     box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
11081     border-radius: 16px;
11082     width: 100%;
11083     max-width: 560px;
11084     display: flex;
11085     overflow: hidden;
11086     position: relative;
11087     opacity: 0;
11088     transform: translateY(20px) scale(0.98);
11089     transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
11090   }
11091   
11092   .bitlogin-popup.visible {
11093     opacity: 1;
11094     transform: translateY(0) scale(1);
11095   }
11096   
11097   .bitlogin-popup-with-image {
11098     max-width: 640px;
11099   }
11100   
11101   .bitlogin-popup-right-image {
11102     flex-direction: row-reverse;
11103   }
11104   
11105   .bitlogin-popup-image {
11106     object-fit: cover;
11107     width: 50%;
11108     height: auto;
11109   }
11110   
11111   .bitlogin-popup-content {
11112     padding: 32px;
11113     position: relative;
11114     width: 50%;
11115   }
11116   
11117   .bitlogin-popup-close {
11118     position: absolute;
11119     top: 16px;
11120     right: 16px;
11121     background: white;
11122     border: none;
11123     width: 30px;
11124     height: 30px;
11125     display: flex;
11126     align-items: center;
11127     justify-content: center;
11128     cursor: pointer;
11129     transition: background-color 0.2s;
11130     color: inherit;
11131     padding: 0;
11132   }
11133   
11134   .bitlogin-popup-close:hover {
11135     background-color: #e5e5e5;
11136   }
11137   
11138   .bitlogin-popup-buttons {
11139     display: flex;
11140     flex-direction: column;
11141     gap: 12px;
11142     margin-top: 24px;
11143   }
11144   
11145   /* Button styles within popup - override width for popup buttons */
11146   .bitlogin-popup-buttons #google-login,
11147   .bitlogin-popup-buttons #facebook-login,
11148   .bitlogin-popup-buttons #apple-login,
11149   .bitlogin-popup-buttons #whatsapp-login,
11150   .bitlogin-popup-buttons #microsoft-login,
11151   .bitlogin-popup-buttons #twitter-login,
11152   .bitlogin-popup-buttons #amazon-login,
11153   .bitlogin-popup-buttons #instagram-login,
11154   .bitlogin-popup-buttons #magic-link-login,
11155   .bitlogin-popup-buttons #mobile-app-login {
11156     width: 100% !important;
11157     font-family: inherit !important;
11158   }
11159   
11160   .bitlogin-popup-footer {
11161     margin-top: 32px;
11162     text-align: center;
11163     font-size: 14px;
11164     opacity: 0.6;
11165   }
11166   
11167   /* Modern Typography */
11168   .bitlogin-popup h2 {
11169     margin-top: 12px;
11170     font-size: 21px !important;
11171     line-height: 1.2 !important;
11172     font-weight: 700 !important;
11173     letter-spacing: -0.02em !important;
11174     margin-bottom: 16px !important;
11175   }
11176   
11177   .bitlogin-popup-header {
11178     position: relative;
11179     margin-bottom: 24px;
11180   }
11181   
11182   /* Modern gradient accent */
11183   .bitlogin-popup-content > div {
11184     font-size: 16px !important;
11185     line-height: 1.2 !important;
11186     opacity: 0.85 !important;
11187   }
11188   
11189   /* Enhanced button interactions */
11190   .bitlogin-popup-buttons button {
11191     position: relative;
11192     overflow: hidden;
11193   }
11194   
11195   @keyframes ripple {
11196     0% {
11197       transform: scale(0, 0);
11198       opacity: 0.5;
11199     }
11200     100% {
11201       transform: scale(100, 100);
11202       opacity: 0;
11203     }
11204   }
11205   
11206   /* Responsive adjustments */
11207   @media (max-width: 640px) {
11208     .bitlogin-popup {
11209       max-width: 90%;
11210       width: 90%;
11211       margin: 0 16px;
11212     }
11213     
11214     .bitlogin-popup-with-image {
11215       flex-direction: column !important;
11216     }
11217     
11218     .bitlogin-popup-image {
11219       width: 100%;
11220       height: 180px;
11221     }
11222     
11223     .bitlogin-popup-content {
11224       padding: 24px;
11225     }
11226     
11227     .bitlogin-popup h2 {
11228       font-size: 24px !important;
11229     }
11230   }
11231 `;
11232 
11233 document.head.appendChild(popupStyles);
11234 
11235 // Add fonts link for different font options
11236 const fontsLink = document.createElement('link');
11237 fontsLink.rel = 'stylesheet';
11238 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';
11239 document.head.appendChild(fontsLink);
11240 
11241 (async () => {
11242   try {
11243     let host = window.location.host;
11244     if (host === "admin.shopify.com") {
11245       host = `${window.location.pathname.split("/")[2]}.myshopify.com`;
11246     }
11247 
11248     const urlSearchParams = new URLSearchParams(window.location.search);
11249     const checkoutUrl = urlSearchParams.get("checkout_url");
11250 
11251     async function init({ inputRef, index }) {
11252       if (isInitializing) {
11253         queue.push(() => init({ inputRef, index }));
11254         return;
11255       }
11256 
11257       isInitializing = true;
11258 
11259       try {
11260         let bitLoginSectionRoot = document.querySelector(
11261           `.bitlogin-root[data-index="${index}"]`
11262         );
11263 
11264         const formRef = inputRef?.closest(
11265           "form:not([action='/account/recover'])"
11266         );
11267 
11268         if (formRef && !bitLoginSectionRoot) {
11269           await getLocation();
11270 
11271           bitLoginSectionRoot = document.createElement(`div`);
11272 
11273           bitLoginSectionRoot.setAttribute("class", "bitlogin-root");
11274           bitLoginSectionRoot.setAttribute("data-index", `${index}`);
11275 
11276           updateAppearance({
11277             formRef,
11278             rootRef: bitLoginSectionRoot,
11279             host,
11280           });
11281         }
11282       } catch (err) {
11283         console.error(`error while initiating bitlogin extensions`, err);
11284       } finally {
11285         // Release the lock
11286         isInitializing = false;
11287 
11288         // Check if there are pending items in the queue
11289         if (queue.length > 0) {
11290           // Process the next function in the queue
11291           const nextFunction = queue.shift();
11292           nextFunction();
11293         }
11294       }
11295     }
11296 
11297     function initAll() {
11298       return new Promise((resolve, reject) => {
11299         setTimeout(async () => {
11300           const inputRefs = document.querySelectorAll(
11301             'input[name="customer[email]"]'
11302           );
11303 
11304           for (let i = 0; i < inputRefs.length; i++) {
11305             const currentInputRef = inputRefs[i];
11306             const isVisible = isElementVisible(currentInputRef);
11307 
11308             if (isVisible) {
11309               await init({ inputRef: currentInputRef, index: i });
11310             }
11311           }
11312 
11313           resolve("ok");
11314         }, 100);
11315       });
11316     }
11317 
11318     const observer = new MutationObserver((mutationsList) => {
11319       for (let mutation of mutationsList) {
11320         initAll();
11321       }
11322     });
11323 
11324     observer.observe(document.body, {
11325       childList: true,
11326       subtree: true,
11327       attributes: true,
11328     });
11329 
11330     initAll();
11331 
11332     if (appearance.googleOneTap) {
11333       setupOneTap({ host, checkoutUrl });
11334     }
11335 
11336     // Initialize popup
11337     await initPopup(host);
11338   } catch (error) {
11339     console.error("Error initializing BitLogin:", error);
11340   }
11341 })();
11342 
11343 async function initPopup(host) {
11344   // Check if user is already logged in using Liquid checks properly
11345   const isLoggedIn = false || 
11346                     document.querySelector('.customer-logout-link') || 
11347                     document.querySelector('.account-link') || 
11348                     window.location.pathname.includes('/account');
11349   
11350   if (isLoggedIn) {
11351     return; // User is logged in, don't show popup
11352   }
11353 
11354   try {
11355     // Fetch the popup configuration
11356     const popupConfig = await fetch(`${apiUrl}/appearance/popup/domain/${host}`)
11357       .then(res => res.json())
11358       .catch(err => {
11359         console.error('Error fetching popup configuration:', err);
11360         return null;
11361       });
11362 
11363     if (!popupConfig || !popupConfig.enabled) {
11364       return;
11364 // Don't show popup if disabled or config not found
11365     }
11366 
11367     // Create popup after 10 seconds
11368     setTimeout(() => {
11369       // Check if user is still on the page and still not logged in
11370       if (document.visibilityState === 'visible') {
11371         // Additional check in case user logged in during the 10 second wait
11372         const currentlyLoggedIn = false || 
11373                               document.querySelector('.customer-logout-link') || 
11374                               document.querySelector('.account-link');
11375         
11376         if (!currentlyLoggedIn) {
11377           createLoginPopup(popupConfig, host);
11378         }
11379       }
11380     }, 10000);
11381   } catch (error) {
11382     console.error('Error initializing popup:', error);
11383   }
11384 }
11385 
11386 function createLoginPopup(popupConfig, host) {
11387   // Font mapping
11388   const fontFamilyMap = {
11389     system_fonts: 'system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',
11390     montserrat: 'Montserrat, sans-serif',
11391     roboto: 'Roboto, sans-serif',
11392     open_sans: 'Open Sans, sans-serif',
11393     noto_sans: 'Noto Sans, sans-serif',
11394     lato: 'Lato, sans-serif',
11395     poppins: 'Poppins, sans-serif',
11396     quicksand: 'Quicksand, sans-serif',
11397     raleway: 'Raleway, sans-serif',
11398     pt_sans: 'PT Sans, sans-serif',
11399     oswald: 'Oswald, sans-serif',
11400   };
11401 
11402   // Create overlay
11403   const overlay = document.createElement('div');
11404   overlay.className = 'bitlogin-popup-overlay';
11405   
11406   // Create popup container with appropriate styling
11407   const popup = document.createElement('div');
11408   popup.className = 'bitlogin-popup';
11409 
11410   if (popupConfig.layout === 'default') {
11411     popup.style.maxWidth = '400px';
11412   }
11413   
11414   // Function to close the popup
11415   const closePopup = () => {
11416     overlay.classList.remove('visible');
11417     popup.classList.remove('visible');
11418     setTimeout(() => {
11419       if (document.body.contains(overlay)) {
11420         document.body.removeChild(overlay);
11421       }
11422     }, 300);
11423   };
11424   
11425   // Add click handler to the overlay to close when clicking outside
11426   overlay.addEventListener('click', (event) => {
11427     // Close only if clicking directly on the overlay, not its children
11428     if (event.target === overlay) {
11429       closePopup();
11430     }
11431   });
11432   
11433   // Add escape key handler to close popup
11434   document.addEventListener('keydown', (event) => {
11435     if (event.key === 'Escape' && document.body.contains(overlay)) {
11436       closePopup();
11437     }
11438   });
11439 
11440   // Create layout with image if specified
11441   let contentWrapper;
11442   if (popupConfig.layout !== 'default' && popupConfig.popupImage) {
11443     popup.classList.add('bitlogin-popup-with-image');
11444     
11445     if (popupConfig.layout === 'right') {
11446       popup.classList.add('bitlogin-popup-right-image');
11447     }
11448     
11449     // Add image
11450     const image = document.createElement('img');
11451     image.className = 'bitlogin-popup-image';
11452     image.src = popupConfig.popupImage;
11453     image.alt = 'Login';
11454     image.loading = 'lazy';
11455     popup.appendChild(image);
11456     
11457     // Create content container
11458     contentWrapper = document.createElement('div');
11459     contentWrapper.className = 'bitlogin-popup-content';
11460 
11461     if (popupConfig.layout === 'right') {
11462       const closeButton = document.createElement('button');
11463       closeButton.className = 'bitlogin-popup-close';
11464       closeButton.innerHTML = `<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="images/logo-jkt8.png">
11465         <path d="M13 1L1 13M1 1L13 13" stroke="${popupConfig.fontColor}" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
11466       </svg>`;
11467       closeButton.setAttribute('aria-label', 'Close');
11468       closeButton.onclick = closePopup;
11469   
11470       popup.appendChild(closeButton);
11471     }
11472   } else {
11473     contentWrapper = document.createElement('div');
11474     contentWrapper.className = 'bitlogin-popup-content';
11475     contentWrapper.style.width = '100%';
11476   }
11477 
11478   // Set background style
11479   if (popupConfig.backgroundTheme === 'gradient') {
11480     contentWrapper.style.background = `linear-gradient(135deg, ${popupConfig.backgroundPopupColor}, ${popupConfig.gradientColor})`;
11481   } else {
11482     contentWrapper.style.backgroundColor = popupConfig.backgroundPopupColor;
11483   }
11484 
11485   // Apply font family
11486   contentWrapper.style.setProperty('font-family', fontFamilyMap[popupConfig.font] || fontFamilyMap.system_fonts, 'important');
11487 
11488   if (popupConfig.layout !== 'right') {
11489     const closeButton = document.createElement('button');
11490     closeButton.className = 'bitlogin-popup-close';
11491     closeButton.innerHTML = `<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="images/logo-jkt8.png">
11492       <path d="M13 1L1 13M1 1L13 13" stroke="${popupConfig.fontColor}" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
11493     </svg>`;
11494     closeButton.setAttribute('aria-label', 'Close');
11495     closeButton.onclick = closePopup;
11496   
11497     contentWrapper.appendChild(closeButton);
11498   }
11499 
11500   // Add heading with subtle animation effect
11501   const header = document.createElement('div');
11502   header.className = 'bitlogin-popup-header';
11503   
11504   const heading = document.createElement('h2');
11505   heading.textContent = popupConfig.headingText || 'Sign in for exclusive benef
11505its';
11506   heading.style.color = popupConfig.fontColor;
11507   header.appendChild(heading);
11508 
11509   // Add body text with improved formatting
11510   const bodyText = document.createElement('div');
11511   bodyText.innerHTML = popupConfig.bodyText || 'Join our community to access exclusive offers and a personalized shopping experience.';
11512   bodyText.style.color = popupConfig.fontColor;
11513   header.appendChild(bodyText);
11514   
11515   contentWrapper.appendChild(header);
11516 
11517   // Create buttons container with modern styling
11518   const buttonsContainer = document.createElement('div');
11519   buttonsContainer.className = 'bitlogin-popup-buttons';
11520   
11521   // Add social buttons
11522   const providerLabels = {
11523     'GOOGLE': 'Continue with Google',
11524     'FACEBOOK': 'Continue with Facebook',
11525     'APPLE': 'Continue with Apple',
11526     'WHATSAPP': 'Continue with WhatsApp',
11527     'MAGIC_LINK': 'Continue with Email',
11528   };
11529 
11530   // Add first login provider button
11531   if (popupConfig.loginProvider1 !== 'NONE') {
11532     const buttonConfig = {
11533       theme: popupConfig.colorScheme || 'match',
11534       customColor: popupConfig.textColor,
11535       format: 'contentFlex',
11536       buttonText: bitloginCache.appearance.buttonList[popupConfig.loginProvider1.toLowerCase()],
11537       hasShadow: popupConfig.hasShadow !== undefined ? popupConfig.hasShadow : true,
11538       style: popupConfig.style || 'rounded',
11539       size: popupConfig.size || 'medium',
11540       colorScheme: popupConfig.colorScheme || 'match',
11541       backgroundColor: popupConfig.backgroundColor || '#3B82F6',
11542       textColor: popupConfig.textColor || '#FFFFFF',
11543       outlineColor: popupConfig.outlineColor || '#3B82F6',
11544       host: host
11545     };
11546     
11547     const button1 = createSocialLoginButton(popupConfig.loginProvider1, buttonConfig);
11548     
11549     // Handle click event - this overrides the default click handler in createSocialLoginButton
11550     button1.onclick = () => {
11551       onClickSocialLogin({ provider: popupConfig.loginProvider1.toLowerCase(), host });
11552       closePopup();
11553     };
11554     
11555     buttonsContainer.appendChild(button1);
11556   }
11557 
11558   // Add second login provider button if enabled
11559   if (popupConfig.loginProvider2 !== 'NONE') {
11560     const buttonConfig = {
11561       theme: popupConfig.colorScheme || 'match',
11562       customColor: popupConfig.textColor,
11563       format: 'contentFlex',
11564       buttonText: bitloginCache.appearance.buttonList[popupConfig.loginProvider2.toLowerCase()],
11565       hasShadow: popupConfig.hasShadow !== undefined ? popupConfig.hasShadow : true,
11566       style: popupConfig.style || 'rounded',
11567       size: popupConfig.size || 'medium',
11568       colorScheme: popupConfig.colorScheme || 'match',
11569       backgroundColor: popupConfig.backgroundColor || '#3B82F6',
11570       textColor: popupConfig.textColor || '#FFFFFF',
11571       outlineColor: popupConfig.outlineColor || '#3B82F6',
11572       host: host
11573     };
11574     
11575     const button2 = createSocialLoginButton(popupConfig.loginProvider2, buttonConfig);
11576     
11577     // Handle click event - this overrides the default click handler in createSocialLoginButton
11578     button2.onclick = () => {
11579       onClickSocialLogin({ provider: popupConfig.loginProvider2.toLowerCase(), host });
11580       closePopup();
11581     };
11582     
11583     buttonsContainer.appendChild(button2);
11584   }
11585 
11586   contentWrapper.appendChild(buttonsContainer);
11587 
11588   // Append content to popup
11589   popup.appendChild(contentWrapper);
11590   
11591   // Append popup to overlay
11592   overlay.appendChild(popup);
11593   
11594   // Append overlay to body
11595   document.body.appendChild(overlay);
11596   
11597   // Trigger animation with slight delay for better perceived performance
11598   setTimeout(() => {
11599     overlay.classList.add('visible');
11600     setTimeout(() => {
11601       popup.classList.add('visible');
11602     }, 50);
11603   }, 10);
11604 }
11605 
11606 window.addEventListener("load", () => {
11607   window.addEventListener("message", (event) => {
11608     const receivedData = event.data;
11609 
11610     if (receivedData.type === "authorize") {
11611       post(
11612         JSON.parse(
11613           JSON.stringify({
11614             "customer[email]": receivedData.email,
11615             "customer[password]": receivedData.password,
11616             form_type: "customer_login",
11617             utf8: "✓",
11618             return_url: redirectUrl,
11619           })
11620         )
11621       );
11622     } else if (receivedData.type === "rejected") {
11623       if (receivedData.reason === "customer_account_disabled") {
11624         showAlert(
11625           "Your account needs to be activated. We've sent you an activation link - please check your email to complete this step."
11626         );
11627       } else if (receivedData.reason === "customer_entry_created_email_not_set") {
11628         showAlert(
11629           "A new account was created but requires an email address. Please update your account with a valid email address to continue."
11630         );
11631       } else if (receivedData.reason === "customer_exist_email_not_set") {
11632         showAlert(
11633           "Your existing account is missing an email address. Please contact support to update your account with a valid email address."
11634         );
11635       }
11636     }
11637 
11638     if (receivedData.type === "customer_authenticated") {
11639       // Dispatch a custom event that merchants can listen for to implement their custom logic
11640       const customerAuthEvent = new CustomEvent('bitlogin:customer_authenticated', {
11641         detail: {
11642           provider: receivedData.provider,
11643           customer: receivedData.customer,
11644           shopifyCustomerCreated: receivedData.shopifyCustomerCreated
11645         }
11646       });
11647       
11648       // Dispatch the event on the window object so merchants can listen for it
11649       window.dispatchEvent(customerAuthEvent);
11650       
11651     }
11652   });
11653 });
11654 
11655 // Reusable functions for social login buttons
11656 function createSocialLoginButton(provider, config = {}) {
11657   const {
11658     theme = 'match',
11659     customColor = null,
11660     format = 'contentFlex',
11661     buttonText = null,
11662     hasShadow = true,
11663     style = 'rounded',
11664     size = 'medium',
11665     colorScheme = 'match',
11666     backgroundColor = '#3B82F6',
11667     textColor = '#FFFFFF',
11668     outlineColor = '#3B82F6',
11669     rootRef = null,
11670     host = null
11671   } = config;
11672   
11673   // Create button element with appropriate ID and attributes
11674   const button = document.createElement('button');
11675   button.id = `${provider.toLowerCase()}-login`;
11676   button.type = 'button';
11677   
11678   // Set the inner SVG based on provider
11679   switch (provider.toUpperCase()) {
11680     case 'GOOGLE':
11681       button.innerHTML = googleLoginIcon(theme, customColor);
11682       break;
11683     case 'FACEBOOK':
11684       button.innerHTML = facebookLoginIcon(theme, customColor);
11685       break;
11686     case 'APPLE':
11687       button.innerHTML = appleLoginIcon(theme, customColor);
11688       break;
11689     case 'WHATSAPP':
11690       button.innerHTML = whatsappLoginIcon(theme, customColor);
11691       break;
11692     case 'MICROSOFT':
11693       button.innerHTML = microsoftLoginIcon(theme, customColor);
11694       break;
11695     case 'TWITTER':
11696       button.innerHTML = twitterLoginIcon(theme, customColor);
11697       break;
11698     case 'AMAZON':
11699       button.innerHTML = amazonLoginIcon(theme, customColor);
11700       break;
11701     case 'INSTAGRAM':
11702       button.innerHTML = instagramLoginIcon(theme, customColor);
11703       break;
11704     case 'MAGIC_LINK':
11705       button.innerHTML = magicLinkLoginIcon(theme, customColor);
11706       break;
11707     case 'MOBILE_APP':
11708       button.innerHTML = mobileAppLoginIcon(theme, customColor);
11709       break;
11710     case 'LINKEDIN':
11711       button.innerHTML = linkedinLoginIcon(theme, customColor);
11712       break;
11713   }
11714   
11715   // Add text if format isn't icon-only and buttonText is provided
11716   if (format !== "wrapperFlexContainerOnlyLogo" && buttonText) {
11717     button.innerHTML += `<p>${buttonText}</p>`;
11718   }
11719   
11720   // Apply styling
11721   // Shadow
11722   if (hasShadow) {
11723     const shadowProperties = `0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)`;
11724     button.style["box-shadow"] = shadowProperties;
11725   }
11726   
11727   // Border radius
11728   const radiusProperties =
11729     style === "rounded"
11730       ? "8px"
11731       : style === "square"
11732       ? "0px"
11733       : style === "fullRounded"
11734       ? format === "wrapperFlexContainerOnlyLogo"
11735         ? "50%"
11736         : "50px"
11737       : undefined;
11738   button.style["border-radius"] = radiusProperties;
11739   
11740   // Size
11741   const sizeProperties =
11742     size === "medium"
11743       ? "12px"
11744       : size === "small"
11745       ? "8px"
11746       : size === "large"
11747       ? "16px"
11748       : "8px";
11749 
11750   button.style["padding-block"] = sizeProperties;
11751 
11752   // Format styling
11753   if (format) {
11754     if (
11755       format === "contentFlexReverse" ||
11756       format === "contentFlexCenterReverse"
11757     ) {
11758       const flexDir = `row-reverse`;
11759       button.style["flex-direction"] = flexDir;
11760     }
11761     
11762     if (
11763       format === "contentFlexCenter" ||
11764       format === "contentFlexCenterReverse"
11765     ) {
11766       const justifyContent = `center`;
11767       button.style["justify-content"] = justifyContent;
11768     } else if (
11769       format === "contentFlex" ||
11770       format === "contentFlexReverse"
11771     ) {
11772       const buttonTextElement = button.querySelector("p");
11773       if (buttonTextElement) {
11774         buttonTextElement.style["flex-grow"] = 1;
11775         buttonTextElement.style["text-align"] = "center";
11776       }
11777     }
11778 
11779     if (format === "wrapperFlexContainerOnlyLogo" && rootRef) {
11780       rootRef.style["flex-direction"] = "row";
11781       rootRef.style["gap"] = "8px";
11782       rootRef.style["display"] = "flex";
11783       rootRef.style["flex-wrap"] = "wrap";
11784 
11785       const sizeMapping = {
11786         small: "52px",
11787         medium: "62px",
11788         large: "72px",
11789       };
11790       const buttonSize = sizeMapping[size] || "52px";
11791 
11792       button.style["margin"] = 0;
11793       button.style["width"] = buttonSize;
11794       button.style["height"] = buttonSize;
11795       button.style["display"] = "flex";
11796       button.style["align-items"] = "center";
11797       button.style["justify-content"] = "center";
11798 
11799       const svgElement = button.querySelector("svg");
11800       if (svgElement) {
11801         svgElement.style["flex"] = "none";
11802       }
11803     }
11804   }
11805 
11806   // Color scheme styling
11807   if (colorScheme === "black") {
11808     button.classList.add("scheme-black");
11809   } else if (colorScheme === "white") {
11810     button.classList.add("scheme-white");
11811   } else if (colorScheme === "custom") {
11812     button.style["background-color"] = backgroundColor;
11813     button.style["color"] = textColor;
11814     button.style["border-color"] = outlineColor;
11815 
11816     const darkenColor = (color, percentage) => {
11817       const value = parseInt(color.slice(1), 16);
11818       const r = Math.max(0, ((value >> 16) & 0xff) - (0xff * percentage));
11819       const g = Math.max(0, ((value >> 8) & 0xff) - (0xff * percentage));
11820       const b = Math.max(0, (value & 0xff) - (0xff * percentage));
11821       return `rgb(${Math.round(r)}, ${Math.round(g)}, ${Math.round(b)})`;
11822     };
11823 
11824     button.addEventListener("mouseover", () => {
11825       button.style["background-color"] = darkenColor(backgroundColor, 0.2);
11826     });
11827     button.addEventListener("mouseout", () => {
11828       button.style["background-color"] = backgroundColor;
11829     });
11830   } else if (colorScheme === "match") {
11831     button.classList.add("scheme-match");
11832   } else if (colorScheme === "matchOutline") {
11833     button.classList.add("scheme-match-outline");
11834   }
11835   
11836   // Add click event listener if host is provided
11837   if (host) {
11838     button.addEventListener("click", () => 
11839       onClickSocialLogin({ provider: provider.toLowerCase(), host })
11840     );
11841   }
11842   
11843   return button;
11844 }
11845 
11846 function setupSocialLoginButtons(config, rootRef, data, host) {
11847   // Clear any existing content
11848   rootRef.innerHTML = '';
11849 
11850   const sortedEnabledProviders = config
11851     .filter(c => c.enabledWeb)
11852     .sort((a, b) => a.position - b.position);
11853 
11854   sortedEnabledProviders.forEach(provider => {
11855     const key = provider.provider;
11856     const lowerKey = key.toLowerCase();
11857 
11858     const buttonText = data.format !== "wrapperFlexContainerOnlyLogo"
11859       ? (lowerKey === 'twitter'
11860           ? data.buttonList.twitter.replace('Twitter', 'X')
11861           : data.buttonList[lowerKey])
11862       : null;
11863 
11864     const button = createSocialLoginButton(key, {
11865       theme: data.colorScheme || 'match',
11866       customColor: data.textColor,
11867       format: data.format,
11868       buttonText: buttonText,
11869       hasShadow: data.hasShadow !== undefined ? data.hasShadow : true,
11870       style: data.style,
11871       size: data.size,
11872       colorScheme: data.colorScheme,
11873       backgroundColor: data.backgroundColor,
11874       textColor: data.textColor,
11875       outlineColor: data.outlineColor,
11876       rootRef: rootRef,
11877       host: host
11878     });
11879 
11880     rootRef.appendChild(button);
11881   });
11882 
11883   return rootRef;
11884 }
11885 
11886 function updateAppearance({ formRef, rootRef, host }) {
11887   if (!formRef) return;
11888 
11889   const data = bitloginCache.appearance || {
11890     style: "square",
11891     hasShadow: false,
11892     colorScheme: "match",
11893     backgroundColor: "#FFFFFF",
11894     outlineColor: "#000000",
11895     textColor: "#000000",
11896     position: "bottom",
11897     hideDivider: "false",
11898     dividerText: "OR",
11899     size: "small",
11900     format: "contentFlex",
11901     language: "en",
11902     buttonText: "Continue with",
11903     redirectLink: "/account",
11904     googleOneTap: true,
11905     googleOneTapBanner: true,
11906     customerTag: "bitLogin",
11907     redirectOneTapDesktop: null,
11908     redirectOneTapMobile: null,
11909     buttonList: {
11910       google: "Continue with Google",
11911       facebook: "Continue with Facebook",
11912       apple: "Continue with Apple",
11913       whatsapp: "Continue with WhatsApp",
11914       microsoft: "Continue with Microsoft",
11915       twitter: "Continue with X",
11916       amazon: "Continue with Amazon",
11917       instagram: "Continue with Instagram",
11918       magic_link: "Continue with Magic Link",
11919       mobile_app: "Continue with Mobile App",
11920       linkedin: "Continue with LinkedIn",
11921     },
11922   };
11923 
11924   // Use the new setupSocialLoginButtons function to create and configure all buttons
11925   setupSocialLoginButtons(bitloginCache.config, rootRef, data, host);
11926 
11927   let divider;
11928 
11929   if (!data.hideDivider) {
11930     divider = document.createElement("div");
11931     const dividerStyle = "text-align:center;margin-block:16px";
11932     divider.setAttribute("style", dividerStyle);
11933     divider.innerHTML = data.dividerText;
11934   }
11935 
11936   if (data.position === "bottom") {
11937     if (divider) {
11938       formRef.appendChild(divider);
11939     }
11940     formRef.appendChild(rootRef);
11941   } else if (data.position === "top") {
11942     if (divider) {
11943       formRef.prepend(divider);
11944     }
11945     formRef.prepend(rootRef);
11946   }
11947 }
11948 
11949 
11950 async function onClickSocialLogin({ provider, host }) {
11951   const rand = Math.random().toString();
11952 
11953   const locationQueryString = bitloginCache.location
11954     ? `&${objectToQueryString(bitloginCache.location)}`
11955     : "";
11956 
11957   const width = 800;
11958   const height = 600;
11959   const left = (window.screen.width / 2) - (width / 2);
11960   const top = (window.screen.height / 2) - (height / 2) - 50;
11961 
11962   if(provider === 'whatsapp') {
11963     window.open(
11964       `/apps/bitlogin/whatsapp${locationQueryString ? `?${locationQueryString}` : ''}`,
11965       "mywindow",
11966       `menubar=1,resizable=1,width=${width},height=${height},top=${top},left=${left}`
11967     );
11968   } else {
11969     window.open(
11970       `${apiUrl}/login/${provider}?referrerId=${rand}&shop=${host}${locationQueryString}`,
11971       "mywindow",
11972       `menubar=1,resizable=1,width=${width},height=${height},top=${top},left=${left}`
11973     );
11974   }
11975 }
11976 
11977 function objectToQueryString(obj) {
11978   return Object.keys(obj)
11979     .map((key) => {
11980       return encodeURIComponent(key) + "=" + encodeURIComponent(obj[key]);
11981     })
11982     .join("&");
11983 }
11984 
11985 async function getLocation() {
11986   if (locationCacheSet) return;
11987 
11988   try {
11989     const response = await fetch("https://ipapi.co/json/");
11990 
11991     if (!response.ok) {
11992       console.error(`error retrieving location...`, response.status);
11993       errorLocation = true;
11994     } else {
11995       const data = await response.json();
11996 
11997       const { city, region, country_name, country_code } = data;
11998 
11999       const formattedLocationData = {
12000         city,
12001         region,
12002         country_name,
12003         country_code,
12004       };
12005 
12006       bitloginCache.location = formattedLocationData;
12007       locationCacheSet = true;
12008       errorLocation = false;
12009     }
12010   } catch (err) {
12011     console.error(`error fetching location`, err);
12012     errorLocation = true;
12013   }
12014 }
12015 
12016 function post(params) {
12017   // The rest of this code assumes you are not using a library.
12018   // It can be made less verbose if you use one.
12019   const form = document.createElement("form");
12020   form.method = "post";
12021   form.action = `/account/login`;
12022   form.acceptCharset = "UTF-8";
12023   form.setAttribute("data-login-with-shop-sign-in", "true");
12024   form.setAttribute("novalidate", "novalidate");
12025 
12026   for (const key in params) {
12027     if (params.hasOwnProperty(key)) {
12028       const hiddenField = document.createElement("input");
12029       hiddenField.type = "hidden";
12030       hiddenField.name = key;
12031       hiddenField.value = params[key];
12032 
12033       form.appendChild(hiddenField);
12034     }
12035   }
12036 
12037   document.body.appendChild(form);
12038   form.submit();
12039 }
12040 
12041 async function setupOneTap({ host, checkoutUrl }) {
12042   if (oneTapSet) return;
12043 
12044   const redirectOneTapDesktop = JSON.parse(JSON.stringify(bitloginCache.appearance.redirectOneTapDesktop || '[]'));
12045   const redirectOneTapMobile = JSON.parse(JSON.stringify(bitloginCache.appearance.redirectOneTapMobile || '[]'));
12046 
12047   const isMobile = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent);
12048   const redirectList = JSON.parse(isMobile ? redirectOneTapMobile : redirectOneTapDesktop);
12049 
12050   const currentPath = window.location.pathname.toLowerCase();
12051   const currentUrl = window.location.href.toLowerCase();
12052 
12053   const shouldHideGoogleOneTap = redirectList.some(({ value }) => {
12054     switch (value) {
12055       case 'home':
12056         return currentPath === '/';
12057       case 'product':
12058         return currentPath.startsWith('/products/');
12059       case 'collections':
12060         return currentPath.startsWith('/collections');
12061       case 'cart':
12062         return currentPath === '/cart';
12063       case 'checkout':
12064         return currentPath.startsWith('/checkouts') && !currentPath.includes('thank_you');
12065       case 'thank_you':
12066         return currentPath.includes('/thank_you');
12067       case 'account':
12068         return currentPath.startsWith('/account');
12069       case 'pages':
12070         return currentPath.startsWith('/pages');
12071       case 'blogs':
12072         return currentPath === '/blogs' || currentPath === '/blogs/news';
12073       case 'blog_post':
12074         return currentPath.startsWith('/blogs/') && currentPath.split('/').length > 3;
12075       default:
12076         return false;
12077     }
12078   });
12079 
12080   if (shouldHideGoogleOneTap) return;
12081 
12082   const oneTapClientId = bitloginCache.config.find(
12083     (config) => config.provider === "GOOGLE"
12084   )?.clientId;
12085 
12086   const isLoggedIn = false;
12087 
12088   if (bitloginCache.appearance.googleOneTap && oneTapClientId && !isLoggedIn) {
12089     const googleOneTapButton = document.createElement("div");
12090     googleOneTapButton.setAttribute("id", "g_id_onload");
12091     googleOneTapButton.setAttribute("data-client_id", oneTapClientId);
12092     googleOneTapButton.setAttribute("data-context", "signin");
12093     googleOneTapButton.setAttribute(
12094       "data-callback",
12095       "handleGoogleOneTapResponse"
12096     );
12097     googleOneTapButton.setAttribute("data-itp_support", "true");
12098 
12099     const googleOneTapScript = document.createElement("script");
12100 
12101     googleOneTapScript.innerHTML += `
12102           function handleGoogleOneTapResponse(response) {
12103               if (response.credential) {
12104                   const idToken = response.credential;
12105                   fetch('${bitLoginBaseUrl}/bitlogin/api/login/google-one-tap', {
12106                       method: 'POST',
12107                       headers: { 'Content-Type': 'application/json' },
12108                       body: JSON.stringify({ idToken, shop: "${host}", ...bitloginCache.location })
12109                   }).then(response => {
12110                       response.json().then((data) => {
12111                         post(
12112                           JSON.parse(
12113                             JSON.stringify({
12114                               "customer[email]": data.email,
12115                               "customer[password]": data.password,
12116                               form_type: "customer_login",
12117                               utf8: "✓",
12118                               return_url: redirectUrl,
12119                             })
12120                           )
12121                         );
12122                       });  
12123                   }).catch(error => {
12124                       console.error('Error occurred:', error);
12125                   });
12126               } else {
12127                   console.error('No credential available');
12128               }
12129           }
12130        `;
12131 
12132     document.body.append(googleOneTapButton);
12133     document.body.append(googleOneTapScript);
12134   }
12135 
12136   oneTapSet = true;
12137 }
12138 
12139 const googleLoginIcon = (
12140   theme,
12141   customColor
12142 ) => `
12143 ${
12144   theme === "match" || theme === "matchOutline" || theme === "custom"
12145     ? `<svg
12146     xmlns='images/logo-jkt8.png'
12147     xmlns:v='https://vecta.io/nano'
12148     width='24'
12149     height='24'
12150     viewBox='0 0 186.69 190.5'
12151   >
12152     <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="${
12153       theme === "custom" ? customColor : "#4285f4"
12154     }"/><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="${
12155         theme === "custom" ? customColor : "#34a853"
12156       }"/><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="${
12157         theme === "custom" ? customColor : "#fbbc05"
12158       }"/><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="${
12159         theme === "custom" ? customColor : "#ea4335"
12160       }" clip-path="none" mask="none"/></g>
12161   </svg>`
12162     : `<svg xmlns="images/logo-jkt8.png" width="25" height="25" viewBox="0 0 25 25" fill="none">
12163 <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="${
12164         theme !== "black" ? "black" : "white"
12165       }"/>
12166 <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="${
12167         theme !== "black" ? "black" : "white"
12168       }"/>
12169 <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="${
12170         theme !== "black" ? "black" : "white"
12171       }"/>
12172 <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="${
12173         theme !== "black" ? "black" : "white"
12174       }"/>
12175 </svg>`
12176 }`;
12177 
12178 const appleLoginIcon = (
12179   theme,
12180   customColor
12181 ) => `<svg width="24" height="24" viewBox="0 0 19 24" fill="none" xmlns="images/logo-jkt8.png">
12182 <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="${
12183   theme === "custom"
12184     ? customColor
12185     : theme === "match" || theme === "black"
12186     ? "white"
12187     : "black"
12188 }"/>
12189 </svg>`;
12190 
12191 const facebookLoginIcon = (
12192   theme,
12193   customColor
12194 ) => `
12195 ${
12196   theme === "match" || theme === "matchOutline" || theme === "custom"
12197     ? `<svg xmlns="images/logo-jkt8.png" width="24" height="25" viewBox="0 0 24 25" fill="none">
12198     <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="${
12199       theme === "custom" ? customColor : theme === "match" ? "white" : "#1977F3"
12200     }"/>
12201     <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="${
12202       theme === "match" ? "#1778f2" : "transparent"
12203     }"/>
12204     </svg>`
12205     : `<svg xmlns="images/logo-jkt8.png" width="24" height="25" viewB
12205ox="0 0 24 25" fill="none">
12206 <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="${
12207         theme === "black" ? "white" : "black"
12208       }"/>
12209 <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="${
12210         theme === "black" ? "black" : "white"
12211       }"/>
12212 </svg>`
12213 }`;
12214 
12215 const whatsappLoginIcon = (
12216   theme,
12217   customColor
12218 ) => `<svg
12219   viewBox="0 0 24 24"
12220   fill="none"
12221   width="24"
12222   height="25"
12223   xmlns="images/logo-jkt8.png"
12224 >
12225   <g id="SVGRepo_bgCarrier" stroke-width="0"></g>
12226   <g
12227     id="SVGRepo_tracerCarrier"
12228     stroke-linecap="round"
12229     stroke-linejoin="round"
12230   ></g>
12231   <g id="SVGRepo_iconCarrier">
12232     <path
12233       fill-rule="evenodd"
12234       clip-rule="evenodd"
12235       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"
12236       fill="${
12237         theme === "match" || theme === "black"
12238           ? "#ffffff"
12239           : theme === "white"
12240           ? "#000000"
12241           : theme === "matchOutline"
12242           ? "#25d366"
12243           : customColor
12244       }"
12245     ></path>
12246   </g>
12247 </svg>`;
12248 
12249 const microsoftLoginIcon = (
12250   theme,
12251   customColor
12252 ) => `<svg
12253 xmlns="images/logo-jkt8.png"
12254 width="25"
12255 height="25"
12256 viewBox="0 0 48 48">
12257 <path fill="${
12258   theme === "match" || theme == "matchOutline"
12259     ? "#ff5722"
12260     : theme === "black"
12261     ? "#ffffff"
12262     : theme === "white"
12263     ? "#000000"
12264     : customColor
12265 }" d="M6 6H22V22H6z" transform="rotate(-180 14 14)"></path>
12266 <path
12267   fill="${
12268     theme === "match" || theme == "matchOutline"
12269       ? "#4caf50"
12270       : theme === "black"
12271       ? "#ffffff"
12272       : theme === "white"
12273       ? "#000000"
12274       : customColor
12275   }"
12276   d="M26 6H42V22H26z"
12277   transform="rotate(-180 34 14)"></path>
12278 <path
12279   fill="${
12280     theme === "match" || theme == "matchOutline"
12281       ? "#ffc107"
12282       : theme === "black"
12283       ? "#ffffff"
12284       : theme === "white"
12285       ? "#000000"
12286       : customColor
12287   }"
12288   d="M26 26H42V42H26z"
12289   transform="rotate(-180 34 34)"></path>
12290 <path fill="${
12291   theme === "match" || theme == "matchOutline"
12292     ? "#03a9f4"
12293     : theme === "black"
12294     ? "#ffffff"
12295     : theme === "white"
12296     ? "#000000"
12297     : customColor
12298 }" d="M6 26H22V42H6z" transform="rotate(-180 14 34)"></path>
12299 </svg>`;
12300 
12301 const twitterLoginIcon = (
12302   theme,
12303   customColor
12304 ) => `<svg
12305 xmlns="images/logo-jkt8.png"
12306 width="25"
12307 height="25"
12308 viewBox="0 0 48 48">
12309 <polygon fill="${
12310   theme === "match" || theme === "black"
12311     ? "#ffffff"
12312     : theme === "matchOutline" || theme === "white"
12313     ? "#000000"
12314     : customColor
12315 }" points="41,6 9.929,42 6.215,42 37.287,6"></polygon>
12316 <polygon
12317   fill="${
12318     theme === "match" || theme === "black"
12319       ? "#000000"
12320       : theme === "matchOutline" || theme === "white"
12321       ? "#ffffff"
12322       : customColor
12323   }"
12324   fill-rule="evenodd"
12325   points="31.143,41 7.82,7 16.777,7 40.1,41"
12326   clip-rule="evenodd"></polygon>
12327 <path
12328   fill="${
12329     theme === "match" || theme === "black"
12330       ? "#ffffff"
12331       : theme === "matchOutline" || theme === "white"
12332       ? "#000000"
12333       : customColor
12334   }"
12335   d="M15.724,9l20.578,30h-4.106L11.618,9H15.724 M17.304,6H5.922l24.694,36h11.382L17.304,6L17.304,6z"></path>
12336 </svg>`;
12337 
12338 const amazonLoginIcon = (theme, customColor) => `
12339  <svg
12340       xmlns="images/logo-jkt8.png"
12341       x="0px"
12342       y="0px"
12343       width="25"
12344       height="25"
12345       viewBox="0 0 50 50"
12346     >
12347       <path
12348         fill="${
12349           theme === "black"
12350             ? "#ffffff"
12351             : theme === "matchOutline"
12352             ? "#FF9900"
12353             : theme === "white" || theme === "match"
12354             ? "#000000"
12355             : customColor
12356         }"
12357         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"
12358       ></path>
12359     </svg>`;
12360 
12361 const instagramLoginIcon= (theme, customColor) => `
12362     <svg
12363       width="25"
12364       height="25"
12365       viewBox="0 0 25 24"
12366       fill="none"
12367       xmlns="images/logo-jkt8.png">
12368       <path
12369         fill-rule="evenodd"
12370         clip-rule="evenodd"
12371         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.
1237164321C8.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"
12372         fill="url(#paint0_radial_378_3535)" />
12373       <path
12374         fill-rule="evenodd"
12375         clip-rule="evenodd"
12376         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"
12377         fill="url(#paint0_radial_378_3535)" />
12378       <path
12379         fill-rule="evenodd"
12380         clip-rule="evenodd"
12381         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.
1238164321C8.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"
12382         fill="url(#paint0_radial_378_3535)" />
12383       <path
12384         fill-rule="evenodd"
12385         clip-rule="evenodd"
12386         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"
12387         fill="url(#paint1_radial_378_3535)" />
12388       <defs>
12389         <radialGradient
12390           id="paint0_radial_378_3535"
12391           cx="0"
12392           cy="0"
12393           r="1"
12394           gradientUnits="userSpaceOnUse"
12395           gradientTransform="translate(17.4 22.7) rotate(-115.776) scale(27.2737 40.5665)">
12396           <stop offset="0.24392" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FF1B90' : customColor}" />
12397           <stop offset="0.436673" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#F80261' : customColor}" />
12398           <stop offset="0.688476" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#ED00C0' : customColor}" />
12399           <stop offset="0.776787" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#C500E9' : customColor}" />
12400           <stop offset="0.893155" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#7017FF' : customColor}" />
12401         </radialGradient>
12402         <radialGradient
12403           id="paint1_radial_378_3535"
12404           cx="0"
12405           cy="0"
12406           r="1"
12407           gradientUnits="userSpaceOnUse"
12408           gradientTransform="translate(7.75 19.31) rotate(-57.4396) scale(11.8174 12.2918)">
12409           <stop stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FFD600' : customColor}" />
12410           <stop offset="0.484375" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FF6930' : customColor}" />
12411           <stop offset="0.734375" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FE3B36' : customColor}" />
12412           <stop offset="1" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FE3B36' : customColor}" stop-opacity="0" />
12413         </radialGradient>
12414       </defs>
12415     </svg>`;
12416 
12417 const magicLinkLoginIcon = (theme, customColor) => `
12418   <svg
12419     xmlns="images/logo-jkt8.png"
12420     width="25"
12421     height="25"
12422     fill="none"
12423     viewBox="0 0 25 25"
12424   >
12425     <path
12426       fill="${
12427         theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' || theme === 'white' ? '#000000' : customColor
12428       }"
12429       fillRule="evenodd"
12430       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"
12431       clipRule="evenodd"
12432     ></path>
12433   </svg>`;
12434 
12435 const mobileAppLoginIcon = (theme, customColor) => `
12436   <svg
12437     width="20"
12438     height="24"
12439     viewBox="0 0 12 16"
12440     fill="none"
12441     xmlns="images/logo-jkt8.png"
12442   >
12443     <path
12444       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"
12445       fill=${
12446         theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' ? '#FD823E' : theme === 'white' ? '#000000' : customColor
12447       }
12448     />
12449   </svg>
12450 `;
12451 
12452 const linkedinLoginIcon = (theme, customColor) => `
12453   <svg
12454     xmlns="images/logo-jkt8.png"
12455     width="25"
12456     height="24"
12457     viewBox="0 0 25 24"
12458     fill="none"
12459   >
12460     <path
12461       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"
12462       fill=${
12463         theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' ? '#0A66C2' : theme === 'white' ? '#000000' : customColor
12464       }
12465     />
12466   </svg>
12467 `;
12468 
12469 function isElementVisible(element) {
12470   return (
12471     document.body.contains(element) &&
12472     getComputedStyle(element).display !== "none" &&
12473     getComputedStyle(element).visibility !== "hidden" &&
12474     getComputedStyle(element).opacity !== "0" &&
12475     !element.hasAttribute("hidden") &&
12476     !isAncestorHidden(element)
12477   );
12478 }
12479 
12480 function isAncestorHidden(element) {
12481   let parent = element.parentElement;
12482   while (parent) {
12483     if (
12484       getComputedStyle(parent).display === "none" ||
12485       getComputedStyle(parent).visibility === "hidden" ||
12486       getComputedStyle(parent).opacity === "0" ||
12487       parent.hasAttribute("hidden")
12488     ) {
12489       return true;
12490     }
12491     parent = parent.parentElement;
12492   }
12493   return false;
12494 }
12495 
12496 function showAlert(message) {
12497   const alertBox = document.createElement("div");
12498   alertBox.textContent = message;
12499   alertBox.style.position = "fixed";
12500   alertBox.style.top = "20px";
12501   alertBox.style.right = "-300px"; // Start off-screen
12502   alertBox.style.backgroundColor = "#000000"; // Black background
12503   alertBox.style.color = "#ffffff"; // White text
12504   alertBox.style.padding = "15px";
12505   alertBox.style.borderRadius = "8px";
12506   alertBox.style.zIndex = "1000";
12507   alertBox.style.transition =
12508     "right 0.5s ease-in-out, opacity 0.5s ease-in-out"; // Transition for sliding and fading
12509   alertBox.style.boxShadow = "0 2px 5px rgba(0, 0, 0, 0.2)"; // Optional shadow for depth
12510 
12511   document.body.appendChild(alertBox);
12512 
12513   // Slide in
12514   requestAnimationFrame(() => {
12515     alertBox.style.right = "20px"; // Move into view
12516     alertBox.style.opacity = "1"; // Ensure opacity is set to 1
12517   });
12518 
12519   // Slide out and remove the alert after a few seconds
12520   setTimeout(() => {
12521     alertBox.style.opacity = "0"; // Fade out
12522     alertBox.style.right = "-300px"; // Move out of view
12523 
12524     // Wait for the transition to finish before removing the element
12525     setTimeout(() => {
12526       document.body.removeChild(alertBox);
12527     }, 500); // Match this duration with the exit transition duration
12528   }, 3000);
12529 }
12530 </script>
12530
12531 
12532 <style>
12533     .daftarku-fixed-footer {
12534             display: flex;
12535             justify-content: space-around;
12536             position: fixed;
12537             background: linear-gradient(to bottom, #000000 0%, #3d3d3d, #000000 100%);
12538             box-shadow: 0 0 12px #00ccff;
12539             outline: none;
12540             padding: 5px 0;
12541             box-shadow: 0 0 0 0 2px 2px #198f01;
12542             left: 0;
12543             right: 0;
12544             bottom: 0;
12545             z-index: 99;
12546             border-radius: 40px 40px 0px 0px;
12547             border-style:dashed;
12548             
12549         }
12550 
12551         .daftarku-fixed-footer a {
12552             flex-basis: calc((100% - 15px*6)/ 5);
12553             text-decoration: none;
12554             display: flex;
12555             flex-direction: column;
12556             justify-content: center;
12557             align-items: center;
12558             color: #fff;
12559             max-width: 75px;
12560             font-size: 12px;
12561             font-family: Ubuntu, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
12562         }
12563 
12564         .daftarku-fixed-footer a:hover {
12565             font-weight: bold;
12566         }
12567 
12568         .daftarku-fixed-footer .center {
12569             transform: scale(1.5) translateY(-5px);
12570             background: center no-repeat;
12571             background-size: contain;
12572             background-color: inherit;
12573             border-radius: 50%;
12574         }
12575 
12576         .daftarku-fixed-footer img {
12577             max-width: 20px;
12578             margin-bottom: 0;
12579             max-height: 20px;
12580         }
12581 </style>
12582     
12583     <div class="daftarku-fixed-footer">
12584     <a href="https://amp-jkt8.pages.dev/" rel="nofollow noopener" target="_blank">
12585         <img layout="intrinsic" height="20px" width="20px" src="images/logo-jkt8.png" alt="PROMOSI">
12586         PROMO
12587     </a>
12588     <a href="https://amp-jkt8.pages.dev/" rel="nofollow noopener" target="_blank">
12589         <img layout="intrinsic" height="20px" width="20px" src="images/logo-jkt8.png" alt="LOGIN">
12590         LOGIN
12591     </a>
12592     <a href="https://amp-jkt8.pages.dev/" rel="nofollow noopener" target="_blank" class="tada">
12593         <img layout="intrinsic" height="20px" width="20px" src="images/logo-jkt8.png" alt="DAFTAR">
12594         DAFTAR
12595     </a>
12596     <a href="https://amp-jkt8.pages.dev/" rel="nofollow noopener" target="_blank">
12597         <img layout="intrinsic" height="20px" width="20px" src="images/logo-jkt8.png" alt="WHATSAPP">
12598         WHATSAPP
12599     </a>
12600     <a href="https://amp-jkt8.pages.dev/" rel="nofollow noopener" target="_blank"
12601         class="js_live_chat_link live-chat-link">
12602         <img class="live-chat-icon" layout="intrinsic" height="20px" width="20px" src="images/logo-jkt8.png" alt="Live Chat">
12603         Live Chat
12604     </a>
12605 </div>
12606 </div>
12607 
12607<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon='{"version":"2024.11.0","token":"1496c6c168314d5ba25fec5ffebcba92","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
12607
12608 
12608<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon='{"version":"2024.11.0","token":"35c0090c7d544a5ebd6cb76e1773c81a","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 12608
12608
12609<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon='{"version":"2024.11.0","token":"276768321f134ec5a0581a2bbb719892","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 12609
12609
12610<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"3250db89e7494a709688f90d58dd6e2c","r":1,"spa":2}' crossorigin="anonymous"></script>
12610
12611</body>
12612 </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.