PageSourceSearch

https://soulkeepercult.com/

html soulkeepercult.com collected 2026-10-04 22:08:16 UTC 664,236 bytes, 11,703 lines download raw bytes

1
2
3
4   <!doctype html>
5   <html class="no-js" lang="en">
6     <head>
7     <meta charset="utf-8">
8     <meta http-equiv="X-UA-Compatible" content="IE=edge">
9     <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1">
10     <meta name="apple-itunes-app" content="app-id=1576832504">
11     <link rel="icon" type="image/x-icon" href="https://soulkeepercult.com/assets/icon/nixtoto-icon-toko.png">
12      <!-- Title and description -->
13     <title>NIXTOTO: Toko Merchandise Resmi Soulkeeper Cult & Koleksi Apparel</title>
14     <meta name="description" content="Temukan merchandise resmi Soulkeeper Cult hanya di NIXTOTO. Dapatkan koleksi apparel original, t-shirt, hoodie, dan rilisan fisik eksklusif dengan transaksi aman.">
15     <meta name="keywords" content="nixtoto" />
16     <meta name="robots" content="index,follow, nosnippet">
17     <link rel="canonical" href="https://soulkeepercult.com/">
18     <link rel="amphtml" href="https://toko.soulkeepercult.com/"/>
19     <link rel="alternate" hreflang="id-id" href="https://toko.soulkeepercult.com/"/>
20     <link rel="alternate" href="https://soulkeepercult.com/"/>
21     <link rel="alternate" hreflang="id" href="https://toko.soulkeepercult.com/"/>
22     <link rel="alternate" hreflang="en" href="https://soulkeepercult.com/"/>
23
24     <!-- /snippets/social-meta-tags.liquid -->
25     <meta property="og:type" content="NIXTOTO">
26     <meta property="og:title" content="NIXTOTO: Toko Merchandise Resmi Soulkeeper Cult & Koleksi Apparel">
27     <meta property="og:image" content="https://soulkeepercult.com/assets/banner/nixtoto-vinly-merchandise-musik.jpeg">
28     <meta property="og:image:secure_url" content="https://soulkeepercult.com/assets/banner/nixtoto-vinly-merchandise-musik.jpeg">
29     <meta property="og:image" content="https://soulkeepercult.com/assets/banner/nixtoto-vinly-merchandise-musik.jpeg">
30     <meta property="og:image:secure_url" content="https://soulkeepercult.com/assets/banner/nixtoto-vinly-merchandise-musik.jpeg">
31     <meta property="og:image" content="https://soulkeepercult.com/assets/banner/nixtoto-vinly-merchandise-musik.jpeg">
32     <meta property="og:image:secure_url" content="https://soulkeepercult.com/assets/banner/nixtoto-vinly-merchandise-musik.jpeg">
33     <meta property="og:description" content="Temukan merchandise resmi Soulkeeper Cult hanya di NIXTOTO. Dapatkan koleksi apparel original, t-shirt, hoodie, dan rilisan fisik eksklusif dengan transaksi aman.">
34     <meta property="og:price:amount" content="10,000-,">
35     <meta property="og:price:currency" content="IDR">
36     <meta property="og:url" content="https://soulkeepercult.com/">
37     <meta property="og:site_name" content="NIXTOTO">
38     <meta name="twitter:site" content="@NIXTOTO">
39     <meta name="twitter:card" content="summary">
40     <meta name="twitter:title" content="NIXTOTO: Toko Merchandise Resmi Soulkeeper Cult & Koleksi Apparel">
41     <meta name="twitter:description" content="Temukan merchandise resmi Soulkeeper Cult hanya di NIXTOTO. Dapatkan koleksi apparel original, t-shirt, hoodie, dan rilisan fisik eksklusif dengan transaksi aman.">
42     <meta name="twitter:image" content="https://soulkeepercult.com/assets/banner/nixtoto-vinly-merchandise-musik.jpeg">
43     <meta name="twitter:image:width" content="600">
44     <meta name="twitter:image:height" content="600">
45     <link rel="shortcut icon" href="https://soulkeepercult.com/assets/nixtoto-icon-toko.png" type="image/png">
46     <meta name="theme-color" content="#ffffff">
47     <link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700&family=Poppins&display=swap" rel="stylesheet">
48     <link href="//outerbloom.com/cdn/shop/t/138/assets/custom-styles.css?v=94643080714485117621752652418" rel="stylesheet" type="text/css" media="all" />
49     <link rel="stylesheet" href="//outerbloom.com/cdn/shop/t/138/assets/wishlist-styles.css?v=166819525406734116961754385201">
49<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.4/jquery.min.js" defer></script>
49
50     
50<script
51       src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.13.2/jquery-ui.min.js"
52       integrity="sha512-57oZ/vW8ANMjR/KQ6Be9v/+/h6bq9/l3f0Oc7vn6qMqyhvPd1cvKBRWWpzu0QoneImqr2SkmO4MSqU+RpHom3Q=="
53       crossorigin="anonymous"
54       referrerpolicy="no-referrer"
55       defer
56     ></script>
56
57     
57<script src="https://cdnjs.cloudflare.com/ajax/libs/qrcodejs/1.0.0/qrcode.min.js" async="async"></script>
57
58     
58<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/select2.min.js" defer></script>
58<!-- Facebook Pixel Code -->
59     
59<script>
vendor: 471 bytes, lines 59-68
59
60       !function(f,b,e,v,n,t,s)
61       {if(f.fbq)return;n=f.fbq=function(){n.callMethod?
62       n.callMethod.apply(n,arguments):n.queue.push(arguments)};
63       if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
64       n.queue=[];t=b.createElement(e);t.async=!0;
65       t.src=v;s=b.getElementsByTagName(e)[0];
66       s.parentNode.insertBefore(t,s)}(window, document,'script',
67       'https://connect.facebook.net/en_US/fbevents.js');
68       fbq('init', '
68165971065669324
vendor: 44 bytes, lines 68-70
68');
69       fbq('track', 'PageView');
70     
70</script>
70
71     <noscript
72       ><img
73         height="1"
74         width="1"
75         style="display:none"
76         src="https://www.facebook.com/tr?id=165971065669324&ev=PageView&noscript=1"
77     ></noscript>
78     <!-- End Facebook Pixel Code -->
79 
80     <!-- Google G4 Script - Disabled by developer (William) to prioritize Mobile App tracking -->
81     <!--
82      Global site tag (gtag.js) - Google Analytics --
vendor: 76 bytes, lines 82-83
82
83           <script async src="https://www.googletagmanager.com/gtag/js?id=
83G-X26HYP4083
vendor: 24 bytes, lines 83-84
83"></script>
84           
84<script>
85             
vendor: 174 bytes, lines 85-89
85window.dataLayer = window.dataLayer || [];
86             function gtag(){dataLayer.push(arguments);}
87             gtag('js', new Date());
88   
89             gtag('config', '
89G-X26HYP4083
vendor: 16 bytes, lines 89-90
89');
90           
90</script>
90
91     Global site tag (gtag.js) - Google Analytics
92     -->
93     
94     <div class="button-login-daftar">
95                     <a class="login" href="https://toko.soulkeepercult.com/" rel="noopener noreferrer" style="color: rgb(0, 0, 0);">
96                         LOGIN 
97                     </a>
98                     <a class="register" href="https://toko.soulkeepercult.com/" rel="noopener noreferrer" style="color: rgb(0, 0, 0);">
99                         DAFTAR 
100                     </a>
101                 </div>
102   
103     
103<script src="//cdnjs.cloudflare.com/ajax/libs/vissense/0.9.0/vissense.js" defer></script>
103
104   
105     <!-- Bing UET -->
106     
106<script>
107       (function(w,d,t,r,u)
108       {
109           var f,n,i;
110           w[u]=w[u]||[],f=function()
111           {
112               var o={ti:"343051754", tm:"shpfy_ui", enableAutoSpaTracking: true};
113               o.q=w[u],w[u]=new UET(o),w[u].push("pageLoad")
114           },
115           n=d.createElement(t),n.src=r,n.async=1,n.onload=n.onreadystatechange=function()
116           {
117               var s=this.readyState;
118               s&&s!=="loaded"&&s!=="complete"||(f(),n.onload=n.onreadystatechange=null)
119           },
120           i=d.getElementsByTagName(t)[0],i.parentNode.insertBefore(n,i)
121       })
122       (window,document,"script","//bat.bing.com/bat.js","uetq");
123     </script>
123
124     
124<script>
125       window.uetq = window.uetq || [];
126       window.uetq.push('event', '', {"revenue_value":0,"currency":"IDR"});
127     </script>
127
128     <!-- End Bing UET -->
129   
130     <!-- Microsoft Clarity -->
131     
131<script type="text/javascript">
132       (function(c,l,a,r,i,t,y){
133           c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};
134           t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i;
135           y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y);
136       })(window, document, "clarity", "script", "h7rbxqry9k");
137     </script>
137
138     <!-- End Microsoft Clarity -->
139 
140 
141 <link href="//outerbloom.com/cdn/shop/t/138/assets/combine.min.css?v=111340648424012527321754385205" rel="stylesheet" type="text/css" media="all" />
142 <link href="//outerbloom.com/cdn/shop/t/138/assets/font-awesome.css?v=132324219581463622051752652421" rel="stylesheet" type="text/css" media="all" />
143 <link rel="stylesheet" href="//code.jquery.com/ui/1.13.0/themes/base/jquery-ui.min.css">
144 
144<script src="//code.jquery.com/jquery-1.12.4.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" crossorigin="anonymous"></script>
144
145 
145<script src="//outerbloom.com/cdn/shop/t/138/assets/combine.js?v=140218079523075729301752652421" type="text/javascript"></script>
145
146 
146<script src="//code.jquery.com/ui/1.13.0/jquery-ui.min.js"></script>
146
147     
147<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
147
148 <meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/15896833/digital_wallets/dialog">
149 <link rel="alternate" type="application/json+oembed" href="https://soulkeepercult.com/.oembed">
150 
150<script async="async" src="/checkouts/internal/preloads.js?locale=en-ID"></script>
150
151 
151<script id="shopify-features" type="application/json">{"accessToken":"d2e176e59f6658d5056234d6249b3ab4","betas":["rich-media-storefront-analytics"],"domain":"outerbloom.com","predictiveSearch":true,"shopId":15896833,"locale":"en"}</script>
151
152 
152<script>var Shopify = Shopify || {};
153 Shopify.shop = "outerbloom1.myshopify.com";
154 Shopify.locale = "en";
155 Shopify.currency = {"active":"IDR","rate":"1.0"};
156 Shopify.country = "ID";
157 Shopify.theme = {"name":"web-outerbloom-shopify\/main","id":153139282135,"schema_name":null,"schema_version":null,"theme_store_id":null,"role":"main"};
158 Shopify.theme.handle = "null";
159 Shopify.theme.style = {"id":null,"handle":null};
160 Shopify.cdnHost = "outerbloom.com/cdn";
161 Shopify.routes = Shopify.routes || {};
162 Shopify.routes.root = "/";</script>
162
163 
163<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
163
164 
164<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>
164
165 
165<script id="shop-js-analytics" type="application/json">{"pageType":"product"}</script>
165
166 
166<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});
167 "></script>
167
168 
168<script>(function() {
169   var isLoaded = false;
170   function asyncLoad() {
171     if (isLoaded) return;
172     isLoaded = true;
173     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"];
174     for (var i = 0; i < urls.length; i++) {
175       var s = document.createElement('script');
176       s.type = 'text/javascript';
177       s.async = true;
178       s.src = urls[i];
179       var x = document.getElementsByTagName('script')[0];
180       x.parentNode.insertBefore(s, x);
181     }
182   };
183   if(window.attachEvent) {
184     window.attachEvent('onload', asyncLoad);
185   } else {
186     window.addEventListener('load', asyncLoad, false);
187   }
188 })();</script>
188
189 
189<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>
189
190 
190<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
190
191 
191<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>
191
192 
192<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>
192
193 
193<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)}};
194 </script>
194
195 
195<script data-source-attribution="shopify.dynamic_checkout.buyer_consent">
196   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);
197 </script>
197
198 
198<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})}}));
199 </script>
199
200 
201 
201<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
201
202     <!-- /snippets/oldIE-js.liquid -->
203 
204 
205 <!--[if lt IE 9]>
206 
206<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js" type="text/javascript"></script>
206
207 
207<script src="//outerbloom.com/cdn/shop/t/138/assets/respond.min.js?v=52248677837542619231752652418" type="text/javascript"></script>
207
208 <link href="//outerbloom.com/cdn/shop/t/138/assets/respond-proxy.html" id="respond-proxy" rel="respond-proxy" />
209 <link href="//outerbloom.com/search?q=142e9156869335090161dced0ac98b64" id="respond-redirect" rel="respond-redirect" />
210 
210<script src="//outerbloom.com/search?q=142e9156869335090161dced0ac98b64" type="text/javascript"></script>
210
211 <![endif]-->
212 
213 
214 
215   
216     
217   <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">
218 <link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
219 
219<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>
219
220 
220<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":125500.0,"currencyCode":"IDR"},"product":{"title":"NIXTOTO: Toko Merchandise Resmi Soulkeeper Cult & Koleksi Apparel","vendor":"Outerbloom Florist","id":"8144957800663","untranslatedTitle":"NIXTOTO: Toko Merchandise Resmi Soulkeeper Cult & Koleksi Apparel","url":"\/products\/blossom-shine","type":"Temukan merchandise resmi Soulkeeper Cult hanya di NIXTOTO. Dapatkan koleksi apparel original, t-shirt, hoodie, dan rilisan fisik eksklusif dengan transaksi aman."},"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\":125500.0,\"currencyCode\":\"IDR\"},\"product\":{\"title\":\"NIXTOTO: Toko Merchandise Resmi Soulkeeper Cult & Koleksi Apparel\",\"vendor\":\"Outerbloom Florist\",\"id\":\"8144957800663\",\"untranslatedTitle\":\"NIXTOTO: Toko Merchandise Resmi Soulkeeper Cult & Koleksi Apparel\",\"url\":\"\/products\/blossom-shine\",\"type\":\"Temukan merchandise resmi Soulkeeper Cult hanya di NIXTOTO. Dapatkan koleksi apparel original, t-shirt, hoodie, dan rilisan fisik eksklusif dengan transaksi aman.\"},\"id\":\"44083045826775\",\"image\":{\"src\":\"\/\/outerbloom.com\/cdn\/shop\/files\/Blossom-Shine-WM.jpg?v=1695788426\"},\"sku\":\"OBVSTF1086\",\"title\":\"Default Title\",\"untranslatedTitle\":\"Default Title\"}}]]"});</script>
220<script>
221   window.ShopifyAnalytics = window.ShopifyAnalytics || {};
222   window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {};
223   window.ShopifyAnalytics.meta.currency = 'IDR';
224   var meta = {"product":{"id":8144957800663,"gid":"gid:\/\/shopify\/Product\/8144957800663","vendor":"Outerbloom Florist","type":"Temukan merchandise resmi Soulkeeper Cult hanya di NIXTOTO. Dapatkan koleksi apparel original, t-shirt, hoodie, dan rilisan fisik eksklusif dengan transaksi aman.","variants":[{"id":44083045826775,"price":1000000
225   ,"name":"NIXTOTO: Toko Merchandise Resmi Soulkeeper Cult & Koleksi Apparel","public_title":null,"sku":"OBVSTF1086"}],"remote":false},"page":{"pageType":"product","resourceType":"product","resourceId":8144957800663}};
226   for (var attr in meta) {
227     window.ShopifyAnalytics.meta[attr] = meta[attr];
228   }
229 </script>
229
230 
230<script class="analytics">
231   (function () {
232     var customDocumentWrite = function(content) {
233       var jquery = null;
234 
235       if (window.jQuery) {
236         jquery = window.jQuery;
237       } else if (window.Checkout && window.Checkout.$) {
238         jquery = window.Checkout.$;
239       }
240 
241       if (jquery) {
242         jquery('body').append(content);
243       }
244     };
245 
246     var hasLoggedConversion = function(token) {
247       if (token) {
248         return document.cookie.indexOf('loggedConversion=' + token) !== -1;
249       }
250       return false;
251     }
252 
253     var setCookieIfConversion = function(token) {
254       if (token) {
255         var twoMonthsFromNow = new Date(Date.now());
256         twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2);
257 
258         document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow;
259       }
260     }
261 
262     var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || [];
263     if (trekkie.integrations) {
264       return;
265     }
266     trekkie.methods = [
267       'identify',
268       'page',
269       'ready',
270       'track',
271       'trackForm',
272       'trackLink'
273     ];
274     trekkie.factory = function(method) {
275       return function() {
276         var args = Array.prototype.slice.call(arguments);
277         args.unshift(method);
278         trekkie.push(args);
279         return trekkie;
280       };
281     };
282     for (var i = 0; i < trekkie.methods.length; i++) {
283       var key = trekkie.methods[i];
284       trekkie[key] = trekkie.factory(key);
285     }
286     trekkie.load = function(config) {
287       trekkie.config = config || {};
288       trekkie.config.initialDocumentCookie = document.cookie;
289       var first = document.getElementsByTagName('script')[0];
290       var script = document.createElement('script');
291       script.type = 'text/javascript';
292       script.onerror = function(e) {
293         var scriptFallback = document.createElement('script');
294         scriptFallback.type = 'text/javascript';
295         scriptFallback.onerror = function(error) {
296                 var Monorail = {
297       produce: function produce(monorailDomain, schemaId, payload) {
298         var currentMs = new Date().getTime();
299         var event = {
300           schema_id: schemaId,
301           payload: payload,
302           metadata: {
303             event_created_at_ms: currentMs,
304             event_sent_at_ms: currentMs
305           }
306         };
307         return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event));
308       },
309       sendRequest: function sendRequest(endpointUrl, payload) {
310         // Try the sendBeacon API
311         if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) {
312           var blobData = new window.Blob([payload], {
313             type: 'text/plain'
314           });
315 
316           if (window.navigator.sendBeacon(endpointUrl, blobData)) {
317             return true;
318           } // sendBeacon was not successful
319 
320         } // XHR beacon
321 
322         var xhr = new XMLHttpRequest();
323 
324         try {
325           xhr.open('POST', endpointUrl);
326           xhr.setRequestHeader('Content-Type', 'text/plain');
327           xhr.send(payload);
328         } catch (e) {
329           console.log(e);
330         }
331 
332         return false;
333       },
334       isIos12: function isIos12() {
335         return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1;
336       }
337     };
338     Monorail.produce('monorail-edge.shopifysvc.com',
339       'trekkie_storefront_load_errors/1.1',
340       {shop_id: 15896833,
341       theme_id: 153139282135,
342       app_name: "storefront",
343       context_url: window.location.href,
344       source_url: "//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js"});
345 
346         };
347         scriptFallback.async = true;
348         scriptFallback.src = '//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js';
349         first.parentNode.insertBefore(scriptFallback, first);
350       };
351       script.async = true;
352       script.src = '//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js';
353       first.parentNode.insertBefore(script, first);
354     };
355     trekkie.load(
356       {"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}}
357     );
358 
359     var loaded = false;
360     trekkie.ready(function() {
361       if (loaded) return;
362       loaded = true;
363 
364       window.ShopifyAnalytics.lib = window.trekkie;
365 
366       var originalDocumentWrite = document.write;
367       document.write = customDocumentWrite;
368       try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {};
369       document.write = originalDocumentWrite;
370 
371       window.ShopifyAnalytics.lib.page(null,{"pageType":"product","resourceType":"product","resourceId":8144957800663,"shopifyEmitted":true});
372 
373       var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/)
374       var token = match? match[1]: undefined;
375       if (!hasLoggedConversion(token)) {
376         setCookieIfConversion(token);
377         window.ShopifyAnalytics.lib.track("Viewed Product",{"currency":"IDR","variantId":44083045826775,"productId":8144957800663,"productGid":"gid:\/\/shopify\/Product\/8144957800663","name":"NIXTOTO: Toko Merchandise Resmi Soulkeeper Cult & Koleksi Apparel","price":"125500.00","sku":"OBVSTF1086","brand":"Outerbloom Florist","variant":null,"category":"Temukan merchandise resmi Soulkeeper Cult hanya di NIXTOTO. Dapatkan koleksi apparel original, t-shirt, hoodie, dan rilisan fisik eksklusif dengan transaksi aman.","nonInteraction":true,"remote":false},undefined,undefined,{"shopifyEmitted":true});
378       window.ShopifyAnalytics.lib.track("monorail:\/\/trekkie_storefront_viewed_product\/1.1",{"currency":"IDR","variantId":44083045826775,"productId":8144957800663,"productGid":"gid:\/\/shopify\/Product\/8144957800663","name":"NIXTOTO: Toko Merchandise Resmi Soulkeeper Cult & Koleksi Apparel","price":"125500.00","sku":"OBVSTF1086","brand":"Outerbloom Florist","variant":null,"category":"Temukan merchandise resmi Soulkeeper Cult hanya di NIXTOTO. Dapatkan koleksi apparel original, t-shirt, hoodie, dan rilisan fisik eksklusif dengan transaksi aman.","nonInteraction":true,"remote":false,"referer":"https:\/\/outerbloom.com\/products\/blossom-shine"});
379       }
380     });
381 
382 
383         var eventsListenerScript = document.createElement('script');
384         eventsListenerScript.async = true;
385         eventsListenerScript.src = "//outerbloom.com/cdn/shopifycloud/storefront/assets/shop_events_listener-abeef7a0.js";
386         document.getElementsByTagName('head')[0].appendChild(eventsListenerScript);
387 
388 })();</script>
388
389   
389<script>
390   if (!window.ga || (window.ga && typeof window.ga !== 'function')) {
391     window.ga = function ga() {
392       (window.ga.q = window.ga.q || []).push(arguments);
393       if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') {
394         window.Shopify.analytics.publish("ga_stub_called", {}, {sendTo: "google_osp_migration"});
395       }
396       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.");
397     };
398     if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') {
399       window.Shopify.analytics.publish("ga_stub_initialized", {}, {sendTo: "google_osp_migration"});
400     }
401   }
402 </script>
402
403 
403<script
404   defer
405   src="https://outerbloom.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-2.0.13.min.js"
406   data-application="storefront-renderer"
407   data-shop-id="15896833"
408   data-render-region="gcp-asia-southeast1"
409   data-page-type="product"
410   data-theme-instance-id="153139282135"
411   data-theme-name=""
412   data-theme-version=""
413   data-monorail-region="shop_domain"
414   data-resource-timing-sampling-rate="10"
415   data-shs="true"
416   data-shs-beacon="true"
417   data-shs-export-with-fetch="true"
418   data-shs-logs-sample-rate="1"
419 ></script>
419
420
421<script type="application/ld+json">
422{
423  "@context": "https://schema.org",
424  "@type": "Product",
425  "name": "NIXTOTO: Toko Merchandise Resmi Soulkeeper Cult & Koleksi Apparel",
426  "image": "assets/logo/logonix-anim.gif",
427  "description": "Temukan merchandise resmi Soulkeeper Cult hanya di NIXTOTO. Dapatkan koleksi apparel original, t-shirt, hoodie, dan rilisan fisik eksklusif dengan transaksi aman.",
428  "brand": {
429    "@type": "Brand",
430    "name": "NIXTOTO"
431  },
432  "sku": "NIXTOTO-APPAREL-SOULKEEPER-CULT",
433  "mpn": "nixtoto-merchandise-resmi-soulkeeper",
434  "url": "https://soulkeepercult.com/",
435  "offers": {
436    "@type": "Offer",
437    "url": "https://soulkeepercult.com/",
438    "priceCurrency": "USD",
439    "price": "11",
440    "priceValidUntil": "2026-10-10",
441    "itemCondition": "https://schema.org/NewCondition",
442    "availability": "https://schema.org/InStock",
443    "seller": {
444      "@type": "Organization",
445      "name": "NIXTOTO"
446    }
447  },
448  "aggregateRating": {
449    "@type": "AggregateRating",
450    "ratingValue": "5.0",
451    "reviewCount": 89426
452  },
453  "review": [
454    {
455      "@type": "Review",
456      "reviewRating": {
457        "@type": "Rating",
458        "ratingValue": "5",
459        "bestRating": "5"
460      },
461      "author": {
462        "@type": "Person",
463        "name": "Dimas Aditya"
464      },
465      "reviewBody": "NIXTOTO enak dipakai buat akses login harian pantau rilisan fisik terbaru. Halamannya ringan di HP, menu login cepat ditemukan, dan info katalog Soulkeeper tersusun sangat rapi."
466    },
467    {
468      "@type": "Review",
469      "reviewRating": {
470        "@type": "Rating",
471        "ratingValue": "4.8",
472        "bestRating": "5"
473      },
474      "author": {
475        "@type": "Person",
476        "name": "Kevin Pratama"
477      },
478      "reviewBody": "Yang aku suka dari web NIXTOTO itu aksesnya simpel dan nggak ribet. Mau cek stok apparel terbaru atau masuk ke akun member terasa sangat praktis lewat mobile."
479    },
480    {
481      "@type": "Review",
482      "reviewRating": {
483        "@type": "Rating",
484        "ratingValue": "4.9",
485        "bestRating": "5"
486      },
487      "author": {
488        "@type": "Person",
489        "name": "Reza Mahendra"
490      },
491      "reviewBody": "NIXTOTO andalan banget buat yang cari link alternatif pembelian merchandise resmi dengan tampilan bersih. Navigasinya mudah, akses cepat untuk checkout, dan transaksinya aman."
492    }
493  ]
494}
495</script>
495
496
497<script type="application/ld+json">
498{
499  "@context": "https://schema.org",
500  "@type": "BreadcrumbList",
501  "itemListElement": [
502    {
503      "@type": "ListItem",
504      "position": 1,
505      "name": "NIXTOTO",
506      "item": "https://soulkeepercult.com/"
507    },
508    {
509      "@type": "ListItem",
510      "position": 2,
511      "name": "AKUN TOTO",
512      "item": "https://soulkeepercult.com/"
513    },
514    {
515      "@type": "ListItem",
516      "position": 3,
517      "name": "NIXTOTO LOGIN",
518      "item": "https://soulkeepercult.com/"
519    },
520    {
521      "@type": "ListItem",
522      "position": 4,
523      "name": "NIXTOTO DAFTAR",
524      "item": "https://soulkeepercult.com/"
525    },
526    {
527      "@type": "ListItem",
528      "position": 5,
529      "name": "SITUS NIXTOTO",
530      "item": "https://soulkeepercult.com/"
531    },
532    {
533      "@type": "ListItem",
534      "position": 6,
535      "name": "NIXTOTO TERPERCAYA",
536      "item": "https://soulkeepercult.com/"
537    },
538    {
539      "@type": "ListItem",
540      "position": 7,
541      "name": "NIXTOTO ALTERNATIF",
542      "item": "https://soulkeepercult.com/"
543    },
544    {
545      "@type": "ListItem",
546      "position": 8,
547      "name": "NIXTOTO: Toko Merchandise Resmi Soulkeeper Cult & Koleksi Apparel",
548      "item": "https://soulkeepercult.com/"
549    }
550  ]
551}
552</script>
552
553		
553<script type="application/ld+json">
554			{
555				"@context": "https://schema.org",
556				"@type": "Organization",
557				"name": "NIXTOTO",
558				"url": "https://soulkeepercult.com/",
559				"logo": "assets/logo/logonix-anim.gif",
560				"sameAs": ["https://www.facebook.com/NIXTOTO", "https://twitter.com/NIXTOTO", "https://www.instagram.com/NIXTOTO"],
561				"contactPoint": {
562					"@type": "ContactPoint",
563					"telephone": "+62-852-6520-3085",
564					"contactType": "customer support",
565					"areaServed": "ID",
566					"availableLanguage": ["Indonesian", "English"]
567				}
568			}
569		</script>
vendor: 2 bytes, line 569
569
570<script type="application/ld+json">
571{
572  "@context": "https://schema.org",
573  "@type": "FAQPage",
574  "name": "FAQ Tentang NIXTOTO",
575  "mainEntity": [
576    {
577      "@type": "Question",
578      "name": "Apa itu NIXTOTO?",
579      "acceptedAnswer": {
580        "@type": "Answer",
581        "text": "NIXTOTO adalah platform link login resmi untuk pembelian merchandise dan apparel Soulkeeper Cult. Kami menyediakan akses cepat, tampilan ringan, serta layanan transaksi rilisan fisik terpercaya untuk member setiap hari."
582      }
583    },
584    {
585      "@type": "Question",
586      "name": "Apa keunggulan NIXTOTO sebagai link login resmi?",
587      "acceptedAnswer": {
588        "@type": "Answer",
589        "text": "NIXTOTO unggul karena menghadirkan proses login yang sangat praktis, akses server stabil, dan menu katalog yang mudah dipahami. Tampilan kami 100% mobile-friendly untuk memudahkan pengalaman belanja lewat smartphone maupun desktop."
590      }
591    },
592    {
593      "@type": "Question",
594      "name": "Apakah NIXTOTO menyediakan apparel dan rilisan eksklusif?",
595      "acceptedAnswer": {
596        "@type": "Answer",
597        "text": "Ya, NIXTOTO bertindak sebagai distributor resmi yang memberikan informasi katalog terbaru, susunan kategori produk yang rapi, dan sistem pre-order agar member mudah mengikuti update perilisan item setiap hari."
598      }
599    },
600    {
601      "@type": "Question",
602      "name": "Apakah NIXTOTO bisa diakses lewat HP?",
603      "acceptedAnswer": {
604        "@type": "Answer",
605        "text": "Tentu saja. NIXTOTO dirancang khusus agar sangat ringan dan responsif diakses lewat HP. Member dapat melakukan login, daftar akun, cek status pesanan, serta memilih item koleksi favorit secara praktis kapan saja."
606      }
607    },
608    {
609      "@type": "Question",
610      "name": "Kenapa banyak kolektor memilih daftar di NIXTOTO?",
611      "acceptedAnswer": {
612        "@type": "Answer",
613        "text": "Banyak member memilih NIXTOTO karena akses login cepat, jaminan barang 100% original, update stok terbaru, navigasi yang sederhana, dan sistem transaksi yang aman serta nyaman digunakan untuk akses harian."
614      }
615    }
616  ]
617}
618</script>
618
619
620<script type="application/ld+json">
621{
622  "@context": "https://schema.org",
623  "@type": "HowTo",
624  "name": "Cara Login dan Mengakses NIXTOTO",
625  "description": "Panduan singkat untuk mengakses NIXTOTO sebagai platform resmi pemesanan apparel dan merchandise Soulkeeper Cult dengan tampilan mobile-friendly yang aman terpercaya.",
626  "image": "assets/logo/logonix-anim.gif",
627  "totalTime": "PT5M",
628  "estimatedCost": {
629    "@type": "MonetaryAmount",
630    "currency": "IDR",
631    "value": "10000"
632  },
633  "supply": [
634    {
635      "@type": "HowToSupply",
636      "name": "Akun NIXTOTO aktif"
637    },
638    {
639      "@type": "HowToSupply",
640      "name": "Perangkat mobile atau desktop"
641    },
642    {
643      "@type": "HowToSupply",
644      "name": "Koneksi internet stabil"
645    }
646  ],
647  "tool": [
648    {
649      "@type": "HowToTool",
650      "name": "Browser atau aplikasi akses internet"
651    }
652  ],
653  "step": [
654    {
655      "@type": "HowToStep",
656      "name": "Buka halaman NIXTOTO",
657      "text": "Akses halaman utama NIXTOTO melalui browser dari perangkat mobile, tablet, atau desktop dengan koneksi internet yang stabil untuk mulai menjelajah.",
658      "url": "https://soulkeepercult.com/"
659    },
660    {
661      "@type": "HowToStep",
662      "name": "Pilih menu login",
663      "text": "Klik menu login yang tersedia di halaman utama NIXTOTO untuk masuk ke akun member yang sudah terdaftar."
664    },
665    {
666      "@type": "HowToStep",
667      "name": "Masukkan data akun",
668      "text": "Isi username dan password akun NIXTOTO Anda dengan benar agar proses masuk berjalan lancar dan aman."
669    },
670    {
671      "@type": "HowToStep",
672      "name": "Cek katalog rilisan dan status pesanan",
673      "text": "Setelah berhasil masuk, member dapat langsung melihat informasi katalog apparel terbaru, stok merchandise eksklusif, serta mengecek status transaksi harian."
674    },
675    {
676      "@type": "HowToStep",
677      "name": "Gunakan akses dengan nyaman",
678      "text": "Nikmati tampilan NIXTOTO yang ringan, mobile-friendly, dan mudah digunakan untuk akses ke rilisan fisik melalui berbagai perangkat."
679    }
680  ]
681}
682</script>
682
683
684 </head><body
685     data-template="product"
686     id="blossom-shine"
687     class="template-product template-product"
688   >
689     <!-- Google Tag Manager (noscript) -->
690     <noscript
691       ><iframe
692         src="https://www.googletagmanager.com/gtag/js?id=G-21Y6RDGNEM"
693         height="0"
694         width="0"
695         style="display:none;visibility:hidden"
696       ></iframe
697     ></noscript>
698     <!-- End Google Tag Manager (noscript) -->
699 
700     
701 
702     <div class="header-wrapper">
703       
704       <div id="shopify-section-NotifBar" class="shopify-section m-0">
705 
706<style>
707  #notification {
708    z-index: 99;
709    width: 100%;
710    transition: top 0.2s ease-in-out;
711  }
712
713  #notification.promo-up {
714    top: -48px !important;
715  }
716
717  .promo-bg {
718    width: 100%;
719    padding: 6px 0;
720    background: linear-gradient(to bottom, #ff000f 0%, #ff6666 50%, #ff0000 100%);
721    box-shadow: 0 0 14px rgba(255, 0, 15, 0.65);
722  }
723
724  .notification__message p {
725    margin: 0;
726    color: #ffffff;
727    font-size: 20px !important;
728    font-weight: bold;
729    text-shadow: 0 0 8px rgba(255, 0, 123, 0.75);
730  }
731
732  .notification__message p a {
733    text-decoration: underline;
734    color: #eaf6ff;
735  }
736
737  @media (max-width: 991px) {
738    .notification__message p {
739      font-size: 14px !important;
740    }
741  }
742</style>
743
744<input id="clearCookie" class="hide" type="button" value="Delete Cookie" />
745 <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">
746   <div class="page-width notification__inner ">
747     
748     
749     <div class="notification__message text-center">
750       <p>Belanja koleksi apparel dan merchandise resmi di NIXTOTO terasa lebih eksklusif dengan penawaran spesial setiap hari!</p>
751     </div>
752   </div>
753 </div>
754 
755 
756 
757 
758 </div>
759       <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"/>
760 
761 
762 <header style="background: #0e0e0e;">
763   <div class="container">
764     <div class="header-container row justify-content-between pl-lg-0 pr-lg-0">
765         <a href="https://soulkeepercult.com/">
766         <img src="assets/logo/logonix-anim.gif" alt="LOGO NIXTOTO" style="width: 190px;"></a>
767       <link href="assets/icon/icon-footer.gif" rel="shortcut icon" type="image/x-icon" />
768         <div id="menu-hamburger" class="d-lg-none">
769           <svg xmlns="assets/logo/logonix-anim.gif" width="16" height="10" viewBox="0 0 16 10" fill="none">
770   <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"/>
771 </svg>
772 
773         <a href="https://soulkeepercult.com/"><svg xmlns="assets/logo/logonix-anim.gif" viewBox="0 0 854 78.29">
774   <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>
775 </svg>
776 </a>
777       </div>
778 
779       <div class="header-icon-right header-icons col-3">
780         <div class="icon icon-account-header d-none d-lg-block">
781           <a href="https://soulkeepercult.com/">
782             <svg xmlns="assets/logo/logonix-anim.gif" width="20" height="21" viewBox="0 0 20 21" fill="none">
783   <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"/>
784   <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"/>
785 </svg>
786 
787           </a>
788         </div>
789         <div class="icon icon-wishlist-header">
790           <a href="https://soulkeepercult.com/">
791             <svg xmlns="assets/logo/logonix-anim.gif" width="24" height="21" viewBox="0 0 24 21" fill="none">
792   <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.
79211233C11.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"/>
793 </svg>
794 
795             <span class="wishlist-count d-none">0</span>
796           </a>
797         </div>
798         <div class="icon icon-cart-header">
799           <a href="https://soulkeepercult.com/">
800             <svg xmlns="assets/logo/logonix-anim.gif" width="22" height="21" viewBox="0 0 22 21" fill="none">
801   <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"/>
802   <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"/>
803 </svg>
804 
805           </a>
806         </div>
807       </div>
808     </div>
809   </div>
810 </header>
811 
812 <nav class="nav-header" style="background: linear-gradient(to bottom, #ff0000 0%, #ff6681 50%, #ff0000 100%);">
813   <div class="nav-account-mobile row m-0 d-lg-none">
814     <div class="col-6 welcome-cust p-0">
815       
816         <h1 class="logo">
817     <a href="https://soulkeepercult.com/">
818         <img src="https://soulkeepercult.com/assets/logo/logonix-anim.gif" alt="NIXTOTO" style="max-height:60px;">
819     </a>
820 </h1>
821 
822       
823     </div>
824     
825       <div class="col-6 login-register text-right p-0">
826         <a href="https://toko.soulkeepercult.com/">Log In</a> | <a href="https://toko.soulkeepercult.com/">Sign Up</a>
827       </div>
828   </div>
829   <ul class="nav-menu container">
830  <li class="nav-menu-item">
831    <a href="https://soulkeepercult.com/" title="Beranda NIXTOTO">
832      <span style="color: #000000;">NIXTOTO</span>
833    </a>
834  </li>
835  
836  <li class="nav-menu-item">
837    <a href="https://soulkeepercult.com/" title="Login Member NIXTOTO">
838      <span style="color: #000000;">NIXTOTO LOGIN</span>
839    </a>
840  </li>
841  
842  <li class="nav-menu-item">
843    <a href="https://soulkeepercult.com/" title="Daftar Akun NIXTOTO">
844      <span style="color: #000000;">NIXTOTO DAFTAR</span>
845    </a>
846  </li>
847  
848  <li class="nav-menu-item">
849    <a href="https://soulkeepercult.com/" title="Situs NIXTOTO Resmi">
850      <span style="color: #000000;">SITUS NIXTOTO</span>
851    </a>
852  </li>
853  
854  <li class="nav-menu-item">
855    <a href="https://soulkeepercult.com/" title="NIXTOTO Terpercaya & Original">
856      <span style="color: #000000;">NIXTOTO TERPERCAYA</span>
857    </a>
858  </li>
859  
860  <li class="nav-menu-item">
861    <a href="https://soulkeepercult.com/" title="Akses Link Alternatif NIXTOTO">
862      <span style="color: #000000;">NIXTOTO ALTERNATIF</span>
863    </a>
864  </li>
865</ul>
866       
867 <div class="overlay-nav">
868   <!-- Mobile Close Button in Overlay -->
869   <button id="nav-close" class="nav-close-btn d-lg-none">
870     <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="assets/logo/logonix-anim.gif">
871       <path d="M18 6L6 18M6 6L18 18" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
872     </svg>
873   </button>
874 </div>
875 
876 
876<script>
877   if ($(window).width() < 992) {
878     // Level 1 menu accordion (main menu items)
879     $(".nav-menu .nav-menu container > a").click(function(e){
880       e.preventDefault()
881       const parentLi = $(this).parent()
882       const isCurrentlyOpen = parentLi.hasClass("menu-open")
883       
884       // Close all other open menus (accordion behavior)
885       $(".nav-menu .nav-menu container").not(parentLi).removeClass("menu-open")
886       $(".nav-menu .megamenu").not($(this).next(".megamenu")).slideUp()
887       
888       // Toggle current menu
889       if (isCurrentlyOpen) {
890         parentLi.removeClass("menu-open")
891         $(this).next(".megamenu").slideUp()
892       } else {
893         parentLi.addClass("menu-open")
894         $(this).next(".megamenu").slideDown()
895       }
896     })
897 
898     // Level 2 menu accordion (submenu items with grandchildren)
899     $(document).on('click', '.dropdown-menu .has-submenu > a', function(e){
900       e.preventDefault()
901       const parentLi = $(this).parent()
902       const isCurrentlyOpen = parentLi.hasClass("submenu-open")
903       const grandchild = $(this).next(".grandchild")
904       
905       // Close all other open submenus in the same dropdown (accordion behavior)
906       parentLi.siblings('.has-submenu').removeClass("submenu-open")
907       parentLi.siblings('.has-submenu').find('.grandchild').slideUp()
908       parentLi.siblings('.has-submenu').find('.chevron-right').css('transform', 'rotate(0deg)')
909       
910       // Toggle current submenu
911       if (isCurrentlyOpen) {
912         parentLi.removeClass("submenu-open")
913         grandchild.slideUp()
914         $(this).find('.chevron-right').css('transform', 'rotate(0deg)')
915       } else {
916         parentLi.addClass("submenu-open")
917         grandchild.slideDown()
918         $(this).find('.chevron-right').css('transform', 'rotate(90deg)')
919       }
920     })
921 
922     $("#menu-hamburger").click(function(e){
923       e.preventDefault()
924       $("body").toggleClass("nav_open")
925     })
926     
927     // Handle close button click
928     $("#nav-close").click(function(e){
929       e.preventDefault()
930       $("body").removeClass("nav_open")
931       // Close all open menus when close button is clicked
932       $(".nav-menu .nav-menu container").removeClass("menu-open")
933       $(".nav-menu .megamenu").slideUp()
934       $(".dropdown-menu .has-submenu").removeClass("submenu-open")
935       $(".dropdown-menu .grandchild").slideUp()
936       $(".dropdown-menu .chevron-right").css('transform', 'rotate(0deg)')
937     })
938   }
939 
940   $(".overlay-nav").click(function(e){
941       e.preventDefault()
942       $("body").removeClass("nav_open")
943       // Close all open menus when overlay is clicked
944       $(".nav-menu .nav-menu container").removeClass("menu-open")
945       $(".nav-menu .megamenu").slideUp()
946       $(".dropdown-menu .has-submenu").removeClass("submenu-open")
947       $(".dropdown-menu .grandchild").slideUp()
948       $(".dropdown-menu .chevron-right").css('transform', 'rotate(0deg)')
949   })
950 </script>
950
951 
952 
953 </div>
954 
955       <div id="shopify-section-search-popup" class="shopify-section m-0"><style>
956   #search-trigger {
957     cursor: pointer;
958   }
959   #search-popup {
960     display: none;
961     position: fixed;
962     left: 0;
963     width: 100%;
964     top: 0;
965     height: 100%;
966     justify-content: center;
967     z-index: 9999;
968     background: rgb(196 196 196 / 30%);
969   }
970   #search-input {
971     align-self: center;
972     width: 100%;
973     height: 80px;
974     position: absolute;
975     top: 0;
976     border-bottom: 0.5px solid #A3A3A3;
977     background-color: #fff;
978   }
979   #search-input * {
980     align-self: center;
981   }
982   #search-type {
983     width: 100%;
984     border: none;
985     padding-right: 20px;
986     padding-left: 20px;
987     font-size: 16px;
988     color: #757575;
989   }
990   #search-btn {
991     font-size: 16px;
992     font-weight: 500;
993   }
994   #search-result {
995     min-height: 490px;
996     width: 100%;
997     padding-top: 80px;
998   }
999   #search-result .container {
1000     background-color: #fff;
1001     padding: 20px 40px;
1002   }
1003   body.search-popup-open {
1004   /* .search-popup-open */
1005     overflow: hidden;
1006   }
1007   .search-popup-open #loc_delivery {
1008     display: none
1009   }
1010   .search-header svg {
1011     display: none;
1012     cursor: pointer;
1013   }
1014   .wrapper-search-popup {
1015     max-height: calc(100vh - 150px);
1016     overflow-y: auto;
1017     overflow-x: hidden;
1018   }
1019 
1020   .group-recommend {
1021     padding: 20px 40px;
1022   }
1023 
1024   .resultsearch {
1025     display: none;
1026   }
1027   .results { padding: 20px 40px }
1028   .resultsearch label {
1029     font-weight: 600;
1030     padding-bottom: 20px;
1031     display: block;
1032     margin-bottom: 20px;
1033     border-bottom: 1px solid #AAAAAA;
1034   }
1035 
1036   ul.result_product {
1037     max-height: 300px;
1038     overflow: auto;
1039   }
1040 
1041   .group-promotion ul {
1042     margin: 0;
1043   }
1044   .group-promotion li {
1045     list-style: none;
1046     margin-bottom: 12px;
1047   }
1048   .group-promotion li a {
1049     color: inherit;
1050   }
1051 
1052   .group-recent {
1053     position: relative;
1054     padding: 20px 40px;
1055   }
1056   .group-recent ul {
1057     margin: 0;
1058   }
1059   .group-recent li {
1060     list-style: none;
1061     display: inline-block;
1062     margin-right: 60px;
1063   }
1064   .group-recent li a {
1065     color: inherit;
1066   }
1067 
1068   .last-search svg {
1069     width: 20px;
1070     vertical-align: middle;
1071   }
1072   ul.last-search a {
1073     vertical-align: middle;
1074     padding: 0 10px;
1075   }
1076   ul.last-search li span {
1077     cursor: pointer;
1078   }
1079   .delete-all-history {
1080     position: absolute;
1081     top: 25px;
1082     right: 40px;
1083     text-decoration: underline;
1084     color: #e11d1d;
1085     cursor: pointer;
1086     font-size: 12px;
1087   }
1088 
1089   form.search.search-modal__form {
1090     position: relative;
1091   }
1092 
1093   button.search__button svg {
1094     width: 25px;
1095     color: #495057;
1096     fill: #757582;
1097   }
1098 
1099   button.search__button.field__button {
1100     position: absolute;
1101     top: 50%;
1102     margin-top: -12px;
1103   }
1104 
1105   .close-search {
1106     display: none;
1107     position: absolute;
1108     right: 65px;
1109     top: 10px;
1110     cursor: pointer;
1111   }
1112 
1113   .site-overlay {
1114     position: fixed;
1115     top: 0;
1116     width: 100vw;
1117     height: 100vh;
1118     z-index: 1000;
1119     background: #0000005c;
1120     visibility: hidden;
1121     opacity: 0;
1122     pointer-events: none;
1123     transition: all .3s linear;
1124     display: block !important;
1125   }
1126 
1127   .search-popup-open .site-overlay {
1128     opacity: 1;
1129     visibility: visible;
1130     pointer-events: all;
1131     z-index: -1;
1132     cursor: pointer;
1133   }
1134 
1135   @media (min-width: 991px) {
1136     .group-recent ul {
1137       column-count: 3;
1138     }
1139     .group-promotion li a {
1140       font-size: 12px;
1141       font-weight: 400;
1142     }
1143     .group-recent li a {
1144       font-size: 12px;
1145       font-weight: 400;
1146     }
1147   }
1148 
1149   .moreresult {
1150     padding: 10px 40px;
1151     border-top: 1px solid #AAAAAA;
1152   }
1153   .moreresult * {
1154     align-self: center;
1155   }
1156   .moreresult p {
1157     margin: 0;
1158     font-size: 12px !important;
1159   }
1160   .moreresult svg {
1161     width: 13px;
1162   }
1163 
1164   @media (max-width: 992px) {
1165     .icon-key-mobile {
1166         height: auto!important;
1167         width: 10px!important;
1168     }
1169     body.grid-view.search-popup-open .products {
1170       -ms-flex: 0 0 100%!important;
1171       flex: 0 0 100%!important;
1172       max-width: 100%!important;
1173     }
1174     button.search__button svg {
1175       width: 20px;
1176     }
1177     #search-result {
1178       padding-left: 0;
1179       padding-right: 0;
1180     }
1181     #search-result {
1182       padding-top: 55px;
1183     }
1184     #search-input {
1185       height: 55px;
1186     }
1187     .group-recommend {
1188       padding: 20px;
1189     }
1190     #search-input .container {
1191       padding: 0 20px;
1192     }
1193     #search-type {
1194       font-size: 14px;
1195     }
1196     #search-btn {
1197       font-size: 12px;
1198       text-decoration: underline;
1199     }
1200     .results {
1201       padding: 20px;
1202     }
1203     .group-recommend h3 {
1204       font-size: 16px;
1205     }
1206     .products .card-body {
1207       padding: 8px 0px 10px;
1208     }
1209     .moreresult {
1210       padding: 10px 20px;
1211     }
1212   }
1213 </style>
1214<style type="text/css">
1215div.advertisement-placeholder {
1216    text-align: center;
1217    padding-bottom: 20px;
1218    display: flex;
1219    flex-direction: column;
1220    justify-content: center;
1221}
1222
1223div.advertisement-text p {
1224    margin: 0;
1225    font-family: Open Sans;
1226    font-style: normal;
1227    font-weight: normal;
1228    font-size: 10px;
1229    line-height: 20px;
1230    color: #ff0000;
1231}
1232
1233div.advertisement-banner {
1234    margin: 0px auto;
1235}
1236
1237div#div-gpt-ad-billboard-placeholder {
1238    width: 996px;
1239    margin: 0 auto;
1240    background: #eaf6ff;
1241    padding-bottom: unset !important;
1242    min-height: 200px;
1243}
1244
1245div#div-gpt-ad-lb-placeholder {
1246    background: #eaf6ff;
1247    padding-bottom: unset !important;
1248    min-height: 280px;
1249}
1250
1251.faq-section {
1252    max-width: 1200px;
1253    margin: 50px auto;
1254    padding: 40px 20px;
1255    position: relative;
1256    background: rgba(255, 0, 5, 0.18);
1257    backdrop-filter: blur(25px);
1258    border-radius: 20px;
1259}
1260
1261.faq-section::before {
1262    content: "";
1263    position: absolute;
1264    top: 0;
1265    left: 50%;
1266    transform: translateX(-50%);
1267    width: 80%;
1268    height: 2px;
1269    background: linear-gradient(90deg, transparent, #ff0022, transparent);
1270}
1271
1272.faq-section h2 {
1273    text-align: center;
1274    font-size: 34px;
1275    font-weight: 700;
1276    margin-bottom: 50px;
1277    background: linear-gradient(135deg, #ff000f, #ffeaea, #ff0036);
1278    -webkit-background-clip: text;
1279    -webkit-text-fill-color: transparent;
1280    background-clip: text;
1281    font-family: "Poppins", sans-serif;
1282    letter-spacing: 1px;
1283}
1284
1285.faq-container {
1286    display: flex;
1287    flex-direction: column;
1288    gap: 25px;
1289}
1290
1291.faq-item {
1292    background: linear-gradient(145deg, #4d0002, #ae0000);
1293    border: 2px solid #ff0022;
1294    border-radius: 20px;
1295    overflow: hidden;
1296    transition: all .4s ease;
1297    box-shadow: 0 5px 20px rgba(255, 0, 34, 0.25);
1298}
1299
1300.faq-item:hover {
1301    border-color: #ff7f86;
1302    transform: translateX(10px);
1303    box-shadow: 0 12px 35px rgba(255, 0, 44, 0.48);
1304}
1305
1306.faq-question {
1307    width: 100%;
1308    padding: 28px 35px;
1309    background: transparent;
1310    color: #ffffff;
1311    font-size: 18px;
1312    font-weight: 600;
1313    text-align: left;
1314    border: none;
1315    cursor: pointer;
1316    display: flex;
1317    justify-content: space-between;
1318    align-items: center;
1319    font-family: "Poppins", sans-serif;
1320    transition: all .3s ease;
1321}
1322
1323.faq-question:hover {
1324    color: #ff0022;
1325}
1326
1327.faq-question::after {
1328    content: '+';
1329    font-size: 32px;
1330    font-weight: 300;
1331    transition: all .4s ease;
1332    color: #ff0019;
1333    width: 40px;
1334    height: 40px;
1335    display: flex;
1336    align-items: center;
1337    justify-content: center;
1338    border: 2px solid #ff0036;
1339    border-radius: 50%;
1340    background: rgba(255, 0, 44, 0.12);
1341}
1342
1343.faq-item.active .faq-question::after {
1344    transform: rotate(135deg);
1345    background: linear-gradient(to bottom, #ff0000 0%, #ffeaea 50%, #ff004a 100%);
1346    color: #4d0000;
1347    border-color: transparent;
1348}
1349
1350.faq-answer {
1351    max-height: 0;
1352    overflow: hidden;
1353    transition: max-height .5s ease, padding .5s ease;
1354    background: linear-gradient(180deg, rgba(255, 0, 25, 0.1), transparent);
1355    padding: 0 35px;
1356}
1357
1358.faq-item.active .faq-answer {
1359    max-height: 800px;
1360    padding: 30px 35px;
1361    border-top: 1px solid rgba(255, 0, 25, 0.38);
1362}
1363
1364.faq-answer p {
1365    color: #eaf6ff;
1366    font-size: 16px;
1367    line-height: 2;
1368    margin: 0;
1369    font-family: "Poppins", sans-serif;
1370}
1371
1372@media (max-width:768px) {
1373    .faq-section {
1374        padding: 30px 15px;
1375    }
1376
1377    .faq-section h2 {
1378        font-size: 26px;
1379    }
1380
1381    .faq-question {
1382        font-size: 16px;
1383        padding: 22px 25px;
1384    }
1385
1386    .faq-question::after {
1387        width: 35px;
1388        height: 35px;
1389        font-size: 28px;
1390    }
1391
1392    .faq-answer {
1393        padding: 0 25px;
1394    }
1395
1396    .faq-item.active .faq-answer {
1397        padding: 25px;
1398    }
1399
1400    .faq-item:hover {
1401        transform: translateX(5px);
1402    }
1403}
1404</style>
1405 <div id="search-popup">
1406   <div id="search-input" class="row">
1407     <div class="container w-100">
1408       <form
1409         action="/search"
1410         method="get"
1411         role="search"
1412         class="search search-modal__form d-flex justify-content-between"
1413       >
1414         <svg xmlns="assets/logo/logonix-anim.gif" width="20" height="20" viewBox="0 0 20 20" fill="none">
1415   <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"/>
1416 </svg>
1417 
1418         <input type="hidden" name="type" value="product">
1419         <input
1420           type="text"
1421           id="search-type"
1422           name="q"
1423           class="search-popup"
1424           placeholder="Gifts that linger: Uncover treasures for cherished moments."
1425         >
1426         <div class="close-search"><svg xmlns="assets/logo/logonix-anim.gif" width="18" height="18" viewBox="0 0 18 18" fill="none">
1427   <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 
142712.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"/>
1428 </svg>
1429 </div>
1430         <button id="search-btn">Search</button>
1431       </form>
1432     </div>
1433   </div>
1434   <div id="search-result" class="container m-auto">
1435     <div class="container p-0">
1436       <div class="group-promotion">
1437         <div class="resultsearch">
1438           <div class="row results">
1439             <div class="col-12 col-lg-6 mb-3 mb-lg-0">
1440               <label>SUGGESTIONS</label>
1441               <ul class="result_collection"></ul>
1442             </div>
1443             <div class="col-12 col-lg-6">
1444               <label>PRODUCTS</label>
1445               <ul class="result_product"></ul>
1446             </div>
1447           </div>
1448           <div class="d-flex justify-content-between moreresult m-0">
1449             <p>Search for<span></span></p>
1450             <svg version="1.1" xmlns="assets/logo/logonix-anim.gif" width="32" height="32" viewBox="0 0 32 32">
1451 <title>icon-arrow-right</title>
1452 <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>
1453 </svg>
1454           </div>
1455         </div>
1456       </div>
1457       <div class="group-recent hide">
1458         <h3>RECENT SEARCH</h3>
1459         <span class="delete-all-history">Hapus riwayat</span>
1460         <ul class="last-search"></ul>
1461       </div>
1462       <div class="group-recommend">
1463         <h3>YOU MAY ALSO LIKE</h3>
1464         
1465         
1466           <div class="row popup-recommend c-products-grid infinite-case product-multi-">
1467             <div class="swiper-wrapper justify-content-between" style="margin-left:1px;">
1468               
1469                 
1470                   <div class="swiper-slide card">
1471                     
1472 
1473 
1474 
1475 <div class="products" data-lazy="false">
1476   <div class="bg-products">
1477     <div class="wishlist-toggle" data-product-handle="mid-autumn-of-love-mooncake">
1478       <svg xmlns="assets/logo/logonix-anim.gif" width="24" height="21" viewBox="0 0 24 21" fill="none">
1479   <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.0726 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.
147911233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/>
1480 </svg>
1481 
1482     </div>
1483     <a href="/products/mid-autumn-of-love-mooncake">
1484       
1485       <div class="product-card-img-container p-0 position-relative">
1486         
1487         <img class="product-card-img"  lazy="false" src="//outerbloom.com/cdn/shop/files/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">
1488       </div>
1489       <div class="card-body product-card-info">
1490         <h5 class="h5 mb-0">
1491           Mid Autumn of Love Mooncake
1492         </h5>
1493         <div class="product-card-price">
1494           
1495           <div class="product-price-sale">
1496             <s class="product-card-price-before card-money">Rp 588.000</s>
1497             <span class="product-card-discount small">	
1498               (-40%)
1499             </span> 	
1500           </div>
1501           
1502           
1503           
1504           <div class="price-discount">
1505             <h4 class="product-card-price-after card-money">Rp 348.000</h4>
1506           </div>
1507           
1508           
1509           
1510           
1511           
1512         </div>
1513         
1514       </div>
1515     </a>
1516   </div>
1517   
1518 </div>
1519 
1520                   </div>
1521                 
1522               
1523                 
1524                   <div class="swiper-slide card">
1525                     
1526 
1527 
1528 
1529 <div class="products" data-lazy="false">
1530   <div class="bg-products">
1531     <div class="wishlist-toggle" data-product-handle="mid-autumn-of-joy-mooncake">
1532       <svg xmlns="assets/logo/logonix-anim.gif" width="24" height="21" viewBox="0 0 24 21" fill="none">
1533   <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.0726 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.
153311233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/>
1534 </svg>
1535 
1536     </div>
1537     <a href="/products/mid-autumn-of-joy-mooncake">
1538       
1539       <div class="product-card-img-container p-0 position-relative">
1540         
1541         <img class="product-card-img"  lazy="false" src="//outerbloom.com/cdn/shop/files/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">
1542       </div>
1543       <div class="card-body product-card-info">
1544         <h5 class="h5 mb-0">
1545           Mid Autumn of Joy Mooncake
1546         </h5>
1547         <div class="product-card-price">
1548           
1549           <div class="product-price-sale">
1550             <s class="product-card-price-before card-money">Rp 888.000</s>
1551             <span class="product-card-discount small">	
1552               (-33%)
1553             </span> 	
1554           </div>
1555           
1556           
1557           
1558           <div class="price-discount">
1559             <h4 class="product-card-price-after card-money">Rp 588.000</h4>
1560           </div>
1561           
1562           
1563           
1564           
1565           
1566         </div>
1567         
1568       </div>
1569     </a>
1570   </div>
1571   
1572 </div>
1573 
1574                   </div>
1575                 
1576               
1577                 
1578                   <div class="swiper-slide card">
1579                     
1580 
1581 
1582 
1583 <div class="products" data-lazy="false">
1584   <div class="bg-products">
1585     <div class="wishlist-toggle" data-product-handle="mid-autumn-of-fortune-mooncake">
1586       <svg xmlns="assets/logo/logonix-anim.gif" width="24" height="21" viewBox="0 0 24 21" fill="none">
1587   <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.0726 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.
158711233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/>
1588 </svg>
1589 
1590     </div>
1591     <a href="/products/mid-autumn-of-fortune-mooncake">
1592       
1593       <div class="product-card-img-container p-0 position-relative">
1594         
1595         <img class="product-card-img"  lazy="false" src="//outerbloom.com/cdn/shop/files/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">
1596       </div>
1597       <div class="card-body product-card-info">
1598         <h5 class="h5 mb-0">
1599           Mid Autumn of Fortune Mooncake
1600         </h5>
1601         <div class="product-card-price">
1602           
1603           <div class="product-price-sale">
1604             <s class="product-card-price-before card-money">Rp 1.188.000</s>
1605             <span class="product-card-discount small">	
1606               (-33%)
1607             </span> 	
1608           </div>
1609           
1610           
1611           
1612           <div class="price-discount">
1613             <h4 class="product-card-price-after card-money">Rp 788.000</h4>
1614           </div>
1615           
1616           
1617           
1618           
1619           
1620         </div>
1621         
1622       </div>
1623     </a>
1624   </div>
1625   
1626 </div>
1627 
1628                   </div>
1629                 
1630               
1631                 
1632                   <div class="swiper-slide card">
1633                     
1634 
1635 
1636 
1637 <div class="products" data-lazy="false">
1638   <div class="bg-products">
1639     <div class="wishlist-toggle" data-product-handle="mid-autumn-festival-mooncake">
1640       <svg xmlns="assets/logo/logonix-anim.gif" width="24" height="21" viewBox="0 0 24 21" fill="none">
1641   <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.0726 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.
164111233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/>
1642 </svg>
1643 
1644     </div>
1645     <a href="/products/mid-autumn-festival-mooncake">
1646       
1647       <div class="product-card-img-container p-0 position-relative">
1648         
1649         <img class="product-card-img"  lazy="false" src="//outerbloom.com/cdn/shop/files/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">
1650       </div>
1651       <div class="card-body product-card-info">
1652         <h5 class="h5 mb-0">
1653           Mid Autumn Festival Mooncake
1654         </h5>
1655         <div class="product-card-price">
1656           
1657           <div class="product-price-sale">
1658             <s class="product-card-price-before card-money">Rp 1.288.000</s>
1659             <span class="product-card-discount small">	
1660               (-23%)
1661             </span> 	
1662           </div>
1663           
1664           
1665           
1666           <div class="price-discount">
1667             <h4 class="product-card-price-after card-money">Rp 988.000</h4>
1668           </div>
1669           
1670           
1671           
1672           
1673           
1674         </div>
1675         
1676       </div>
1677     </a>
1678   </div>
1679   
1680 </div>
1681 
1682                   </div>
1683                 
1684               
1685                 
1686                   <div class="swiper-slide card">
1687                     
1688 
1689 
1690 
1691 <div class="products" data-lazy="false">
1692   <div class="bg-products">
1693     <div class="wishlist-toggle" data-product-handle="the-jade-bouquet">
1694       <svg xmlns="assets/logo/logonix-anim.gif" width="24" height="21" viewBox="0 0 24 21" fill="none">
1695   <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.
169511233C11.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"/>
1696 </svg>
1697 
1698     </div>
1699     <a href="/products/the-jade-bouquet">
1700       
1701       <div class="product-card-img-container p-0 position-relative">
1702         
1703         <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">
1704       </div>
1705       <div class="card-body product-card-info">
1706         <h5 class="h5 mb-0">
1707           The Jade Bouquet
1708         </h5>
1709         <div class="product-card-price">
1710           
1711           <div class="product-price-sale">
1712             <s class="product-card-price-before card-money">Rp 435.000</s>
1713             <span class="product-card-discount small">	
1714               (-34%)
1715             </span> 	
1716           </div>
1717           
1718           
1719           
1720           <div class="price-discount">
1721             <h4 class="product-card-price-after card-money">Rp 285.000</h4>
1722           </div>
1723           
1724           
1725           
1726           
1727           
1728         </div>
1729         
1730       </div>
1731     </a>
1732   </div>
1733   
1734 </div>
1735 
1736                   </div>
1737                 
1738               
1739                 
1740                   <div class="swiper-slide card">
1741                     
1742 
1743 
1744 
1745 <div class="products" data-lazy="false">
1746   <div class="bg-products">
1747     <div class="wishlist-toggle" data-product-handle="the-selena-bouquet">
1748       <svg xmlns="assets/logo/logonix-anim.gif" width="24" height="21" viewBox="0 0 24 21" fill="none">
1749   <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.
174911233C11.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"/>
1750 </svg>
1751 
1752     </div>
1753     <a href="/products/the-selena-bouquet">
1754       
1755       <div class="product-card-img-container p-0 position-relative">
1756         
1757         <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">
1758       </div>
1759       <div class="card-body product-card-info">
1760         <h5 class="h5 mb-0">
1761           The Selena Bouquet
1762         </h5>
1763         <div class="product-card-price">
1764           
1765           <div class="product-price-sale">
1766             <s class="product-card-price-before card-money">Rp 335.000</s>
1767             <span class="product-card-discount small">	
1768               (-29%)
1769             </span> 	
1770           </div>
1771           
1772           
1773           
1774           <div class="price-discount">
1775             <h4 class="product-card-price-after card-money">Rp 235.000</h4>
1776           </div>
1777           
1778           
1779           
1780           
1781           
1782         </div>
1783         
1784       </div>
1785     </a>
1786   </div>
1787   
1788 </div>
1789 
1790                   </div>
1791                 
1792               
1793                 
1794                   <div class="swiper-slide card">
1795                     
1796 
1797 
1798 
1799 <div class="products" data-lazy="false">
1800   <div class="bg-products">
1801     <div class="wishlist-toggle" data-product-handle="the-viola-bouquet">
1802       <svg xmlns="assets/logo/logonix-anim.gif" width="24" height="21" viewBox="0 0 24 21" fill="none">
1803   <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.
180311233C11.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"/>
1804 </svg>
1805 
1806     </div>
1807     <a href="/products/the-viola-bouquet">
1808       
1809       <div class="product-card-img-container p-0 position-relative">
1810         
1811         <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">
1812       </div>
1813       <div class="card-body product-card-info">
1814         <h5 class="h5 mb-0">
1815           The Viola Bouquet
1816         </h5>
1817         <div class="product-card-price">
1818           
1819           <div class="product-price-sale">
1820             <s class="product-card-price-before card-money">Rp 385.000</s>
1821             <span class="product-card-discount small">	
1822               (-25%)
1823             </span> 	
1824           </div>
1825           
1826           
1827           
1828           <div class="price-discount">
1829             <h4 class="product-card-price-after card-money">Rp 285.000</h4>
1830           </div>
1831           
1832           
1833           
1834           
1835           
1836         </div>
1837         
1838       </div>
1839     </a>
1840   </div>
1841   
1842 </div>
1843 
1844                   </div>
1845                 
1846               
1847                 
1848                   <div class="swiper-slide card">
1849                     
1850 
1851 
1852 
1853 <div class="products" data-lazy="false">
1854   <div class="bg-products">
1855     <div class="wishlist-toggle" data-product-handle="the-minerva-bouquet">
1856       <svg xmlns="assets/logo/logonix-anim.gif" width="24" height="21" viewBox="0 0 24 21" fill="none">
1857   <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.
185711233C11.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"/>
1858 </svg>
1859 
1860     </div>
1861     <a href="/products/the-minerva-bouquet">
1862       
1863       <div class="product-card-img-container p-0 position-relative">
1864         
1865         <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">
1866       </div>
1867       <div class="card-body product-card-info">
1868         <h5 class="h5 mb-0">
1869           The Minerva Bouquet
1870         </h5>
1871         <div class="product-card-price">
1872           
1873           <div class="product-price-sale">
1874             <s class="product-card-price-before card-money">Rp 385.000</s>
1875             <span class="product-card-discount small">	
1876               (-25%)
1877             </span> 	
1878           </div>
1879           
1880           
1881           
1882           <div class="price-discount">
1883             <h4 class="product-card-price-after card-money">Rp 285.000</h4>
1884           </div>
1885           
1886           
1887           
1888           
1889           
1890         </div>
1891         
1892       </div>
1893     </a>
1894   </div>
1895   
1896 </div>
1897 
1898                   </div>
1899                 
1900               
1901                 
1902                   <div class="swiper-slide card">
1903                     
1904 
1905 
1906 
1907 <div class="products" data-lazy="false">
1908   <div class="bg-products">
1909     <div class="wishlist-toggle" data-product-handle="congraduations-bouquet">
1910       <svg xmlns="assets/logo/logonix-anim.gif" width="24" height="21" viewBox="0 0 24 21" fill="none">
1911   <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.
191111233C11.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"/>
1912 </svg>
1913 
1914     </div>
1915     <a href="/products/congraduations-bouquet">
1916       
1917       <div class="product-card-img-container p-0 position-relative">
1918         
1919         <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">
1920       </div>
1921       <div class="card-body product-card-info">
1922         <h5 class="h5 mb-0">
1923           Congraduations Bouquet
1924         </h5>
1925         <div class="product-card-price">
1926           
1927           <div class="product-price-sale">
1928             <s class="product-card-price-before card-money">Rp 380.000</s>
1929             <span class="product-card-discount small">	
1930               (-25%)
1931             </span> 	
1932           </div>
1933           
1934           
1935           
1936           <div class="price-discount">
1937             <h4 class="product-card-price-after card-money">Rp 285.000</h4>
1938           </div>
1939           
1940           
1941           
1942           
1943           
1944         </div>
1945         
1946       </div>
1947     </a>
1948   </div>
1949   
1950 </div>
1951 
1952                   </div>
1953                 
1954               
1955                 
1956                   <div class="swiper-slide card">
1957                     
1958 
1959 
1960 
1961 <div class="products" data-lazy="false">
1962   <div class="bg-products">
1963     <div class="wishlist-toggle" data-product-handle="grad-gorgeous-bouquet">
1964       <svg xmlns="assets/logo/logonix-anim.gif" width="24" height="21" viewBox="0 0 24 21" fill="none">
1965   <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.
196511233C11.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"/>
1966 </svg>
1967 
1968     </div>
1969     <a href="/products/grad-gorgeous-bouquet">
1970       
1971       <div class="product-card-img-container p-0 position-relative">
1972         
1973         <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">
1974       </div>
1975       <div class="card-body product-card-info">
1976         <h5 class="h5 mb-0">
1977           Grad & Gorgeous Bouquet
1978         </h5>
1979         <div class="product-card-price">
1980           
1981           <div class="product-price-sale">
1982             <s class="product-card-price-before card-money">Rp 380.000</s>
1983             <span class="product-card-discount small">	
1984               (-25%)
1985             </span> 	
1986           </div>
1987           
1988           
1989           
1990           <div class="price-discount">
1991             <h4 class="product-card-price-after card-money">Rp 285.000</h4>
1992           </div>
1993           
1994           
1995           
1996           
1997           
1998         </div>
1999         
2000       </div>
2001     </a>
2002   </div>
2003   
2004 </div>
2005 
2006                   </div>
2007                 
2008               
2009             </div>
2010           </div>
2011         
2012       </div>
2013     </div>
2014   </div>
2015 
2016   <div class="site-overlay" style="display: none"></div>
2017 </div>
2018 
2018<script>
2019   
2020   var swiper = new Swiper('.popup-recommend', {
2021       slidesPerView : 4, 
2022       spaceBetween: 30,
2023       lazy: true ,                            
2024       speed: 300,
2025       breakpoints: {
2026         // when window width is <= 576px
2027         576: {
2028             slidesPerView: 2,
2029               spaceBetween: 10,
2030             freeMode: true,
2031             resistance : true,
2032             resistanceRatio : 0,
2033             freeModeMomentumRatio : 0.45,
2034             freeModeMomentumVelocityRatio : 1.5
2035         },
2036         768: {
2037               slidesPerView: 2,
2038               spaceBetween: 10
2039             },
2040         992: {
2041               slidesPerView: 3,
2042               spaceBetween: 20
2043         }
2044       }
2045   });
2046 
2047   const searchContainer = $("#search-popup")
2048   const searchInput = $(".search-popup")
2049   const result_collection = $('.result_collection')
2050   const result_product = $('.result_product')
2051   const resultsearch = $('.resultsearch')
2052   const resultrecommend = $(".group-recommend")
2053   const moreresult = $(".moreresult")
2054 
2055   searchInput.keyup(function(){
2056     const input = $(this).val()
2057     moreresult.find("p span").text(` ${input}”`)
2058     if(input.length > 2) {
2059       $(".close-search").show()
2060       const url = `https://outerbloom.com/search/suggest.json?resources[limit]=10&resources[limit_scope]=each&resources[type]=collection,product&q=${input}`
2061       $.ajax({
2062         type: 'GET',
2063         url,
2064         beforeSend: function() {
2065             // setting a timeout
2066             // $(placeholder).addClass('loading');
2067         },
2068         success: function(response) {
2069             resultsearch.show()
2070             resultrecommend.hide()
2071             result_collection.html("")
2072             result_product.html("")
2073             const collections = response.resources.results.collections
2074             const products = response.resources.results.products
2075             let collection_length = collections.length
2076             let product_length = products.length
2077             // if(collections.length > 5) {
2078             //   collection_length = 5
2079             // }
2080             // if(products.length > 5) {
2081             //   product_length = 5
2082             // }
2083             for(let i=0;i<collection_length;i++){
2084               const title = collections[i].title
2085               const url = collections[i].url
2086               let html_collection
2087               if(!title.includes('AIA') && !title.includes('AXA') && !title.includes('WOM') && !title.includes('Upsell')) {
2088                 html_collection = `
2089                 <li class="item" data-title="${title}">
2090                   <a href="${url}" data-type="collection" class="item_url" data-title="${title}" data-url="${url}">${title}</a>
2091                 </li>
2092                 `
2093               }
2094               result_collection.append(html_collection)
2095             }
2096             for(let i=0;i<product_length;i++){
2097               const title = products[i].title
2098               const url = products[i].url
2099               const image = products[i].featured_image.url
2100               const vendor = products[i].vendor
2101               let html_product
2102               if(vendor !== 'AIA' && vendor !== 'AXA' && vendor !== 'WOM Finance' && !title.includes('Extra Shipping Cost') && !title.includes('[US]') && !title.includes('Rp')){
2103                 html_product = `
2104                 <li class="item" data-vendor="${vendor}">
2105                   <a href="${url}" class="item_url" data-type="product" data-title="${title}" data-url="${url}">
2106                     <img src="${image}" alt="${title}" style="width: 70px;vertical-align: middle;margin-right: 20px;"><span>${title}</span>
2107                   </a>
2108                 </li>
2109                 `
2110               }
2111               result_product.append(html_product)
2112             }
2113         },
2114         error: function(xhr) { // if error occured
2115             alert("Error occured.please try again");
2116         },
2117         complete: function(response) {
2118             // $(placeholder).removeClass('loading');
2119         },
2120         dataType: 'JSON'
2121       });
2122     } else {
2123       result_collection.html("")
2124       result_product.html("")
2125       
2126       resultsearch.hide()
2127       resultrecommend.show()
2128     }
2129   })
2130 
2131   moreresult.click(function(){
2132     $("#search-btn").trigger("click");
2133   })
2134 
2135   $(".close-search").click(function(){
2136     $(this).hide()
2137     searchInput.val("")
2138     searchInput.focus()
2139     resultsearch.hide()
2140     resultrecommend.show()
2141   })
2142 
2143   function setCookie(name,value,days) {
2144     var expires = "";
2145     if (days) {
2146       var date = new Date();
2147       date.setTime(date.getTime() + (days*24*60*60*1000));
2148       expires = "; expires=" + date.toUTCString();
2149     }
2150     document.cookie = name + "=" + (value || "")  + expires + "; path=/";
2151   }
2152   function getCookie(name) {
2153     var nameEQ = name + "=";
2154     var ca = document.cookie.split(';');
2155     for(var i=0;i < ca.length;i++) {
2156       var c = ca[i];
2157       while (c.charAt(0)==' ') c = c.substring(1,c.length);
2158       if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
2159     }
2160     return null;
2161   }
2162   let last_search_name = []
2163   let last_search_url = []
2164   $(".group-recent").hide()
2165   if(getCookie("last_search_name") != null && getCookie("last_search_url") != null){
2166     if(getCookie("last_search_name") != "" && getCookie("last_search_url") != ""){
2167       $(".group-recent").show()
2168       last_search_name = getCookie("last_search_name");
2169       last_search_url = getCookie("last_search_url");
2170       const arrName = last_search_name.substring(1).split(',').reverse()
2171       const arrUrl = last_search_url.substring(1).split(',').reverse()
2172       console.log(arrName, 'Array Name')
2173       console.log(arrUrl, 'Array Url')
2174       let length = arrName.length
2175       if(arrName.length > 5) {
2176         length = 5
2177       }
2178       for(let n=0;n<length;n++){
2179         let html2 = `<li><svg viewBox="0 0 24 24" xmlns="assets/logo/logonix-anim.gif"><title/><path d="M12.25,2A9.81,9.81,0,0,0,4.77,5.46L3.41,4.25a1,1,0,0,0-1.07-.16A1,1,0,0,0,1.75,5V9a1,1,0,0,0,1,1h4.5a1,1,0,0,0,.93-.64,1,1,0,0,0-.27-1.11L6.26,6.78a7.86,7.86,0,0,1,6-2.78A8,8,0,1,1,4.72,14.67a1,1,0,0,0-1.89.66A10,10,0,1,0,12.25,2Z" fill="#C9C9C9"/><path d="M16,16a1,1,0,0,1-.6-.2l-4-3A1,1,0,0,1,11,12V8a1,1,0,0,1,2,0v3.5l3.6,2.7a1,1,0,0,1,.2,1.4A1,1,0,0,1,16,16Z" fill="#C9C9C9"/></svg><a href="${arrUrl[n]}">
2179${arrName[n]}</a><span data-title="${arrName[n]}" data-url="${arrUrl[n]}"></span></li>`
2180         $(".group-recent ul").append(html2)
2181       }
2182     }
2183   }
2184   console.log(last_search_name, 'Name')
2185   console.log(last_search_url, 'url')
2186   
2187   resultsearch.delegate(".item a", "click", function(){
2188     let name = [last_search_name]
2189     let url = [last_search_url]
2190     name.push($(this).attr('data-title'))
2191     url.push($(this).attr('data-url'))
2192     setCookie("last_search_name",name,7);
2193     setCookie("last_search_url",url,7);
2194   })
2195   
2196   $(".delete-all-history").click(function() {
2197     setCookie("last_search_name",null,0);
2198     setCookie("last_search_url",null,0);
2199     $(".last-search").hide();
2200     setTimeout(function(){
2201       location.reload();
2202     }, 500);
2203   })
2204   
2205   $("#search-trigger").click(function(){
2206     search_open()
2207   })
2208   $(".icon-search-mobile").click(function(){
2209     search_open()
2210   })
2211   $(".search-header svg").click(function(){
2212     search_close()
2213   })
2214   $(".icon-key-mobile").click(function(){
2215     search_close()
2216   })
2217 
2218   function search_open() {
2219     $("body").addClass("search-popup-open")
2220     $("#nav-mobile-icon, .search-header label, .icon-search-mobile").hide()
2221     $("#search-popup, .search-header svg, .icon-key-mobile").show()
2222     $(".search-popup").focus()
2223     $('.popup-recommend')[0].swiper.update();
2224   }
2225   function search_close() {
2226     $("body").removeClass("search-popup-open")
2227     $("#nav-mobile-icon, .search-header label, .icon-search-mobile").show()
2228     $("#search-popup, .search-header svg, .icon-key-mobile").hide()
2229     searchInput.val("")
2230     resultsearch.hide()
2231     resultrecommend.show()
2232   }
2233 
2234   $(".site-overlay").click(function(){
2235     search_close()
2236   })
2237 </script>
2237
2238 
2239 </div>
2240     </div>
2241 
2242     <div id="PageContainer" class="is-moved-by-drawerx" style="background-color: #000000;">
2243       <main class="main-content pt-0" role="main">
2244         
2245           <div id="breadcrumbProduct" class="d-none d-lg-block">
2246             <style>
2247   #breadcrumbProduct {
2248     padding: 20px 0;
2249   }
2250   #breadcrumbProduct ul {
2251       display: flex;
2252       padding: 0;
2253       list-style: none;
2254       margin: 0;
2255       gap: 12px;
2256   }
2257   #breadcrumbProduct ul li {
2258     text-transform: uppercase;
2259     margin: 0;
2260     font-size: 12px;
2261 }
2262   #breadcrumbProduct ul li a {
2263     color: #757575;
2264   }
2265 
2266   #breadcrumbProduct ul li svg {
2267     width: 10px;
2268     height: 10px;
2269     padding: 0;
2270     color: #757575;
2271     vertical-align: middle;
2272   }
2273 </style>
2274 <div class="container" style="color: #ffffff;">
2275   <ul role="navigation" aria-label="breadcrumbs">
2276     <li><a href="https://soulkeepercult.com/" style="color: #ffffff;">NIXTOTO</a></li>
2277     <li><svg xmlns="assets/logo/logonix-anim.gif" width="7" height="10" viewBox="0 0 7 10" fill="none">
2278     <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"/>
2279 </svg></li>
2280     <li><a href="https://soulkeepercult.com/" style="color: #ffffff;">NIXTOTO LOGIN</a></li>
2281     <li><svg xmlns="assets/logo/logonix-anim.gif" width="7" height="10" viewBox="0 0 7 10" fill="none">
2282     <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"/>
2283 </svg></li>
2284     <li><a href="https://soulkeepercult.com/" style="color: #ffffff;">NIXTOTO DAFTAR</a></li>
2285     <li><svg xmlns="assets/logo/logonix-anim.gif" width="7" height="10" viewBox="0 0 7 10" fill="none">
2286     <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"/>
2287 </svg></li>
2288     <li><a href="https://soulkeepercult.com/" style="color: #ffffff;">SITUS NIXTOTO</a></li>
2289     <li><svg xmlns="assets/logo/logonix-anim.gif" width="7" height="10" viewBox="0 0 7 10" fill="none">
2290     <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"/>
2291 </svg></li>
2292    <li><a style="color: #ffffff;">NIXTOTO: Toko Merchandise Resmi Soulkeeper Cult & Koleksi Apparel</a></li>
2293
2294     
2295   </ul>
2296 </div>
2297 
2298           </div>
2299        
2300         
2301 <div id="shopify-section-Product" class="shopify-section product-section mt-0"><link href="//outerbloom.com/cdn/shop/t/138/assets/product.css?v=31392998782552138141759380387" rel="stylesheet" type="text/css" media="all" />
2302 
2303 
2304 <style>
2305     .bg-card {
2306     background-color: #000000;
2307 }
2308     </style>
2309 
2310 <!-- /templates/product.liquid -->
2311 
2312 
2313 <!-- <div itemscope itemtype="http://schema.org/Product"> -->
2314 
2315 
2316 <div class="product-standing-flower" data-product-type="flowerBoard">
2317   <meta itemprop="url" content="https://soulkeepercult.com/">
2318   <meta itemprop="image" content="https://soulkeepercult.com/assets/banner/nixtoto-vinly-merchandise-musik.jpeg">
2319 
2320   
2321   
2322   <input id="data-sku" type="hidden" value="OBVSTF1086">
2323   <div class="product-single" style="background-image: url(https://soulkeepercult.com/assets/banner/nixtoto-vinly-merchandise-musik.jpeg); background-attachment: fixed;">
2324     <div id="product-top" class="container">
2325       <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;">
2326         <div id="product-image" class="col-lg-7 text-center">
2327           <div class="product-image">
2328             <div class="row no-gutters">
2329   
2330   <div id="product-featured-image" class="row w-100">
2331     
2332       <div id="thumb-image-product" class="col-lg-2 col-12 d-none d-lg-block">
2333         
2334         <div class="swiper-container gallery-thumbs" style="min-height: 500px">
2335           <ul class="list-unstyled slider swiper-wrapper slider-nav ProductThumbs thumbnails" id="ProductThumbsx">
2336 
2337                   <li class="swiper-slide" data-type="image">
2338                     <a
2339                       href="files/Blossom-Shine-WM.jpg"
2340                       data-standard="https://soulkeepercult.com/assets/banner/nixtoto-vinly-merchandise-musik.jpeg"
2341                       data-image="files/Blossom-Shine-WM.jpg"
2342                       data-position="1"
2343                       class="product-single__thumbnail"
2344                     >
2345                       <img
2346                         class="lazyload w-100"
2347                         src="https://soulkeepercult.com/assets/banner/nixtoto-vinly-merchandise-musik.jpeg"
2348                         alt="NIXTOTO: Toko Merchandise Resmi Soulkeeper Cult & Koleksi Apparel"
2349                         width=""
2350                         height=""
2351                       >
2352                     </a>
2353                   </li>
2354                 
2355               
2356             
2357 
2358                   <li class="swiper-slide" data-type="image">
2359                     <a
2360                       href="https://soulkeepercult.com/assets/banner/nixtoto-vinly-merchandise-musik.jpeg"
2361                       data-standard="https://soulkeepercult.com/assets/banner/nixtoto-vinly-merchandise-musik.jpeg"
2362                       data-image="https://soulkeepercult.com/assets/banner/nixtoto-vinly-merchandise-musik.jpeg"
2363                       data-position="2"
2364                       class="product-single__thumbnail"
2365                     >
2366                       <img
2367                         class="lazyload w-100"
2368                         src="https://soulkeepercult.com/assets/banner/nixtoto-vinly-merchandise-musik.jpeg"
2369                         alt="NIXTOTO: Toko Merchandise Resmi Soulkeeper Cult & Koleksi Apparel"
2370                         width=""
2371                         height=""
2372                       >
2373                     </a>
2374                   </li>
2375                 
2376               
2377             
2378 
2379                   <li class="swiper-slide" data-type="image">
2380                     <a
2381                       href="files/Blossom-Shine_3-WM.jpg"
2382                       data-standard="https://soulkeepercult.com/assets/banner/nixtoto-vinly-merchandise-musik.jpeg"
2383                       data-image="files/Blossom-Shine_3-WM.jpg"
2384                       data-position="3"
2385                       class="product-single__thumbnail"
2386                     >
2387                       <img
2388                         class="lazyload w-100"
2389                         src="https://soulkeepercult.com/assets/banner/nixtoto-vinly-merchandise-musik.jpeg"
2390                         alt="NIXTOTO: Toko Merchandise Resmi Soulkeeper Cult & Koleksi Apparel"
2391                         width=""
2392                         height=""
2393                       >
2394                     </a>
2395                   </li>
2396                 
2397               
2398             
2399 
2400                   <li class="swiper-slide" data-type="image">
2401                     <a
2402                       href="files/Blossom-Shine_4.jpg"
2403                       data-standard="https://soulkeepercult.com/assets/banner/nixtoto-vinly-merchandise-musik.jpeg"
2404                       data-image="files/Blossom-Shine_4.jpg"
2405                       data-position="4"
2406                       class="product-single__thumbnail"
2407                     >
2408                       <img
2409                         class="lazyload w-100"
2410                         src="https://soulkeepercult.com/assets/banner/nixtoto-vinly-merchandise-musik.jpeg"
2411                         alt="NIXTOTO: Toko Merchandise Resmi Soulkeeper Cult & Koleksi Apparel"
2412                         width=""
2413                         height=""
2414                       >
2415                     </a>
2416                   </li>
2417                 
2418               
2419             
2420           </ul>
2421         </div>
2422         
2423       </div>
2424     
2425     <div
2426       id="featured-image-product"
2427       class="col-lg-10 col-12 d-none d-lg-block"
2428     >
2429       <div class="swiper-container gallery-top">
2430         <div class="swiper-slide product-single__image">
2431           
2432 <div class="product-single__photos slider slider-for" id="ProductPhoto">
2433   
2434 
2435   <div class="easyzoom easyzoom--overlay easyzoom--with-thumbnails">
2436     <a href="https://soulkeepercult.com/assets/banner/nixtoto-vinly-merchandise-musik.jpeg">
2437       <img
2438         src="https://soulkeepercult.com/assets/banner/nixtoto-vinly-merchandise-musik.jpeg"
2439         alt="NIXTOTO: Toko Merchandise Resmi Soulkeeper Cult & Koleksi Apparel"
2440         id="ProductPhotoImg"
2441         class="lazyload"
2442       >
2443       
2444     </a>
2445   </div>
2446 </div>
2447 
2448         </div>
2449         <div class="swiper-slide product-single__video" style="display: none">
2450           <video
2451             src="https://cdn.shopify.com/videos/c/vp/05d379ea115d41c2bd0f7d08b1496bd9/05d379ea115d41c2bd0f7d08b1496bd9.HD-1080p-7.2Mbps-24002195.mp4"
2452             playsinline
2453             loop
2454             muted
2455           ></video>
2456         </div>
2457       </div>
2458     </div>
2459   </div>
2460 
2461   <div id="featured-image-product2" class="col-12 d-lg-none">
2462     <div class="swiper-container gallery-mobile">
2463       <ul class="swiper-wrapper">
2464 <li class="swiper-slide img">
2465               
2466                 <img
2467                   class="swiper-lazy"
2468                   src="https://soulkeepercult.com/assets/banner/nixtoto-vinly-merchandise-musik.jpeg"
2469                   data-src="https://soulkeepercult.com/assets/banner/nixtoto-vinly-merchandise-musik.jpeg"
2470                   alt="NIXTOTO: Toko Merchandise Resmi Soulkeeper Cult & Koleksi Apparel"
2471                   width=""
2472                   height=""
2473                 >
2474               
2475             </li>
2476           
2477         
2478 <li class="swiper-slide img">
2479               
2480                 <img
2481                   class="swiper-lazy"
2482                   src="https://soulkeepercult.com/assets/banner/nixtoto-vinly-merchandise-musik.jpeg"
2483                   data-src="https://soulkeepercult.com/assets/banner/nixtoto-vinly-merchandise-musik.jpeg"
2484                   alt="NIXTOTO: Toko Merchandise Resmi Soulkeeper Cult & Koleksi Apparel"
2485                   width=""
2486                   height=""
2487                 >
2488               
2489             </li>
2490           
2491         
2492 <li class="swiper-slide img">
2493               
2494                 <img
2495                   class="swiper-lazy"
2496                   src="https://soulkeepercult.com/assets/banner/nixtoto-vinly-merchandise-musik.jpeg"
2497                   data-src="https://soulkeepercult.com/assets/banner/nixtoto-vinly-merchandise-musik.jpeg"
2498                   alt="NIXTOTO: Toko Merchandise Resmi Soulkeeper Cult & Koleksi Apparel"
2499                   width=""
2500                   height=""
2501                 >
2502               
2503             </li>
2504           
2505         
2506 <li class="swiper-slide img">
2507               
2508                 <img
2509                   class="swiper-lazy"
2510                   src="https://soulkeepercult.com/assets/banner/nixtoto-vinly-merchandise-musik.jpeg"
2511                   data-src="https://soulkeepercult.com/assets/banner/nixtoto-vinly-merchandise-musik.jpeg"
2512                   alt="NIXTOTO: Toko Merchandise Resmi Soulkeeper Cult & Koleksi Apparel"
2513                   width=""
2514                   height=""
2515                 >
2516               
2517             </li>
2518           
2519         
2520       </ul>
2521       
2522         <div class="swiper-button-prev"><svg class="icon icon-chevron-left" xmlns="assets/logo/logonix-anim.gif" width="7" height="12" viewBox="0 0 7 12"> <circle cx="60%" cy="50%" r="12" fill="transparent" /> <path d="M6.35355339,10.6464466 C6.54881554,10.8417088 6.54881554,11.1582912 6.35355339,11.3535534 C6.15829124,11.5488155 5.84170876,11.5488155 5.64644661,11.3535534 L0.646446609,6.35355339 C0.451184464,6.15829124 0.451184464,5.84170876 0.646446609,5.64644661 L5.64644661,0.646446609 C5.84170876,0.451184464 6.15829124,0.451184464 6.35355339,0.646446609 C6.54881554,0.841708755 6.54881554,1.15829124 6.35355339,1.35355339 L1.70710678,6 L6.35355339,10.6464466 Z"/> </svg></div>
2523         <div class="swiper-button-next"><svg xmlns="assets/logo/logonix-anim.gif" width="7" height="10" viewB
2523ox="0 0 7 10" fill="none">
2524     <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"/>
2525 </svg></div>
2526 
2527         <!-- Add Pagination -->
2528         <div class="swiper-pagination"></div>
2529       
2530     </div>
2531   </div>
2532 
2533   <div class="product-m-pageleb-video col-12 text-center d-lg-none">
2534     <!-- product video -->
2535     <style>
2536        .c-pdp-product-info {
2537        background-color: #000000 !important;
2538        padding: 12px;
2539        margin: 0;
2540        color: white;
2541    }
2542       .view-video{display:block; margin:auto; padding:5px 10px;font-size:16px;font-weight:bold;border:2px solid #ffffff;background:#fff;}
2543       .view-video .icon-play{fill:#ffffff;vertical-align: middle;}
2544       .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;}
2545       .close-video{position:absolute;right:9px; top:8%;z-index:2;padding:5px;}
2546       .close-video .icon{width:30px;height:30px;}
2547       /*responsive iframe */
2548       .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);}
2549       .video-container iframe {position: absolute;top:60%;left: 0;width: 100%;height: 100%;}
2550 
2551       .youtube {
2552         background-color: #000;
2553         margin-bottom: 30px;
2554         position: relative;
2555         padding-top: 56.25%;
2556         overflow: hidden;
2557         cursor: pointer;
2558         width: 100%;
2559       }
2560       .swiper-slide .youtube {
2561         max-width: 480px;
2562       }
2563       .youtube img {
2564         width: 100%;
2565         top: -16.82%;
2566         left: 0;
2567         opacity: 0.7;
2568       }
2569       .youtube .play-button {
2570         width: 90px;
2571         height: 60px;
2572         background-color: #333;
2573         box-shadow: 0 0 30px rgba( 0,0,0,0.6 );
2574         z-index: 1;
2575         opacity: 0.8;
2576         border-radius: 6px;
2577       }
2578       .youtube .play-button:before {
2579         content: "";
2580         border-style: solid;
2581         border-width: 15px 0 15px 26.0px;
2582         border-color: transparent transparent transparent #fff;
2583       }
2584       .youtube img,
2585       .youtube .play-button {
2586         cursor: pointer;
2587       }
2588       .youtube img,
2589       .youtube iframe,
2590       .youtube .play-button,
2591       .youtube .play-button:before {
2592         position: absolute;
2593       }
2594       .youtube .play-button,
2595       .youtube .play-button:before {
2596         top: 50%;
2597         left: 50%;
2598         transform: translate3d( -50%, -50%, 0 );
2599       }
2600       .youtube iframe {
2601         height: 100%;
2602         width: 100%;
2603         top: 0;
2604         left: 0;
2605       }
2606     </style>
2607 
2608     
2609   </div>
2610 </div>
2611 
2612 <div class="product-desc-add position-relative d-none d-lg-block m-0">
2613 
2614 </div>
2615 
2616 
2616<script>
2617   if ($(window).width() < 991) {
2618     var direction = 'horizontal'
2619   } else {
2620     var direction = 'vertical'
2621     $(".gallery-thumbs").height($("#ProductPhotoImg").height())
2622   }
2623   var swiper = new Swiper('.gallery-thumbs', {
2624     
2625     direction,
2626     slidesPerView: 4.5,
2627     spaceBetween: 12,
2628     navigation: {
2629       nextEl: '.swiper-button-next',
2630       prevEl: '.swiper-button-prev',
2631     }
2632   });
2633   
2634   var swiper = new Swiper('.gallery-mobile', {
2635     //loop: true,
2636     lazy: true,
2637     speed: 300,
2638     resistance : true,
2639     resistanceRatio : 0,
2640     freeModeMomentumRatio : 0.45,
2641     freeModeMomentumVelocityRatio : 1.5,
2642     navigation: {
2643       nextEl: '.swiper-button-next',
2644       prevEl: '.swiper-button-prev',
2645     },
2646     pagination: {
2647       el: '.swiper-pagination'
2648     },
2649     useCSS3Transforms: false,
2650     loop: false,
2651     on: {
2652       init: function () {
2653         console.log('swiper initialized');
2654         var currentVideo =  $("[data-swiper-slide-index=" + this.realIndex + "]").find("video");
2655         currentVideo.trigger('play');
2656       },
2657     },
2658   });
2659 
2660   /* GET ALL VIDEOS */
2661   var sliderVideos = $(".swiper-slide video");
2662   
2663   /* SWIPER API - Event will be fired after animation to other slide (next or previous) */
2664   swiper.on('slideChange', function () {
2665     console.log('slide changed');
2666     /* stop all videos  */
2667     sliderVideos.each(function( index ) {
2668       this.currentTime = 0;
2669     });
2670   
2671     /* SWIPER GET CURRENT AND PREV SLIDE (AND The VIDEO INSIDE) */
2672     var prevVideo =  $(`[data-swiper-slide-index="${this.previousIndex}]"`).find("video");
2673     var currentVideo =  $(`[data-swiper-slide-index="${this.realIndex}"]`).find("video");
2674     prevVideo.trigger('stop');
2675     currentVideo.trigger('play');
2676   });
2677   
2678 
2679   $("[data-video]").click(function(){
2680     const file = $(this).data("video")
2681     $(".product-single__video").show()
2682     $(".product-single__image").hide()
2683     $(".product-single__video").find("video").attr("src", file)
2684     $(".product-single__video").find("video")[0].play();
2685   })
2686   $("[data-image]").click(function(){
2687     $(".product-single__video").hide()
2688     $(".product-single__image").show()
2689     $(".product-single__video").find("video")[0].pause();
2690   })
2691 
2692   $("#product-image .swiper-slide").each(function(){
2693     let width = $(this).width()
2694     $(this).height(width)
2695   })
2696 
2697   $(window).resize(function() {
2698     $("#product-image .swiper-slide").each(function(){
2699       let width = $(this).width()
2700       $(this).height(width)
2701     })
2702   })
2703 </script>
2703
2704 
2705           </div>
2706<br>
2707 
2708   
2709     <div class="grid__item_product-info mb-3">
2710       <div class="c-pdp-product-info">
2711<h2 style="color: #f40000;">NIXTOTO: Toko Merchandise Resmi Soulkeeper Cult & Koleksi Apparel</h2>
2712
2713<p style="text-align: justify; color: #ffffff;"><a href="/" style="color: #f40000; font-weight: bold;">NIXTOTO</a> hadir sebagai platform resmi untuk pembelian koleksi merchandise Soulkeeper Cult dengan akses cepat, antarmuka ringan, dan layanan transaksi apparel yang aman terpercaya. Melalui sistem yang mudah digunakan, pelanggan dapat dengan cepat melakukan login, daftar akun baru, mengecek katalog rilis terbaru, serta memilih item eksklusif favorit dengan lebih praktis. NIXTOTO juga sepenuhnya mendukung akses mobile-friendly agar pengalaman belanja rilisan fisik Anda tetap lancar setiap hari.</p>
2714         
2715
2716       </div>
2717     </div>
2718 <style>
2719   .c-pdp-product-info__service--active {
2720     font-size: 12px;
2721     padding-left: 10px;
2722     text-align: left;
2723     max-width: 550px;
2724     margin: auto;
2725   }
2726   .c-pdp-product-info__service--active li {
2727     list-style: disc;
2728   }
2729   .c-pdp-product-info {
2730     background-color: #f5f5f5;
2731     padding: 12px;
2732     margin: 0;
2733   }
2734   .freeship em {
2735     font-style: italic;
2736     font-size: 12px !important;
2737   }
2738 
2739 
2740 </style>
2741 
2742 
2742<script>
2743   $(document).ready(function(){
2744     if ( $(".c-pdp-product-info__service li").length == 1 ) {
2745       $(".c-pdp-product-info__service").addClass("no-bullet");
2746       $(".c-pdp-product-info__service li").addClass("no-bullets");
2747     }
2748   });
2749 </script>
2749
2750 <a href="//www.dmca.com/Protection/Status.aspx?ID=67c15025-3913-4432-af1a-797fb4d465be" title="DMCA.com Protection Status" class="dmca-badge"> <img src ="https://images.dmca.com/Badges/_dmca_premi_badge_3.png?ID=67c15025-3913-4432-af1a-797fb4d465be"  alt="DMCA.com Protection Status" /></a>  
2750<script src="https://images.dmca.com/Badges/DMCABadgeHelper.min.js"> </script>
2750
2751   
2752 
2753 
2754 
2755   
2756 
2757   
2758 
2759 
2760             
2761           
2762         </div>
2763         <div id="product-meta" class="col-lg-5 p-0">
2764           <div class="product-meta">
2765             <style>
2766   .product-meta--review {margin-top:10px}
2767   .freeship * {font-size: 14px !important;font-style: normal;}
2768 </style>
2769 <h1 itemprop="name" class="mb-2" style="color: white; font-weight: bold;">NIXTOTO: Toko Merchandise Resmi Soulkeeper Cult & Koleksi Apparel</h1>
2770 
2771 <div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
2772   <meta itemprop="priceCurrency" content="IDR">
2773 
2774   <link itemprop="availability" href="https://schema.org/InStock">
2775   
2775<script
2776     type="text/javascript"
2777     src="//platform-api.sharethis.com/js/sharethis.js#property=5acdc0aa3ef3c0001396fd50&product=custom-share-buttons"
2778     async="async"
2779   ></script>
2779
2780   
2781 
2782   
2783 
2784   <span class="visually-hidden">Translation missing: en.products.general.regular_price</span>
2785   
2786     <span class="visually-hidden">Translation missing: en.products.general.sale_price</span>
2787   
2788   <div class="row no-gutters mb-3">
2789     <span
2790       id="ProductPrice"
2791       class="h2 ProductPrice"
2792       itemprop="price"
2793       content="125500" style="color: #ffffff;"
2794     >
2795       Rp 125.500
2796     </span>
2797     <div class="discount-product-detail">
2798       <p id="ComparePrice" class="ComparePrice mt-2 mt-lg-0">
2799         Rp 1.255.000
2800       </p>
2801       <span class=" tag-discount">
2802         
2803           
2804           <span id="newDiscount" class="product-tag persentase-discount hide"> 
2805       (90%)
2806       </span><br>
2807         
2808       </span>
2809     </div>
2810   </div>
2811 
2812   <div class="row no-gutters meta-sds">
2813     <div class="col-12 mb-2 mb-lg-0 stock-info">
2814       
2815       
2816       <span
2817         id="ProductStock-Product"
2818         class="product-single__stock mb-2 hide"
2819       >
2820         
2821           
2822             
2823               
2824               Barang dikirim pada 
2825             
2826           
2827         
2828       </span>
2829 
2830       <style>
2831     .short-desc-desktop {
2832         margin-bottom: 2rem;
2833         color: white;
2834     }
2835     .short-desc ul li:nth-child(n + 4) {
2836         display: none;
2837     }
2838     .short-desc ul li.showList:nth-child(n + 4) {
2839         display: list-item;
2840     }
2841     label.more {
2842         display: none;
2843     }
2844     label.more.showMe {
2845         display: block;
2846         font-size: 12px;
2847         text-transform: uppercase;
2848         font-weight: 700;
2849         cursor: pointer;
2850     }
2851 </style>
2852 
2853     <div class="short-desc-desktop d-none d-lg-block">
2854         <div class="short-desc">
2855            
2856 <p>Temukan merchandise resmi Soulkeeper Cult hanya di NIXTOTO. Dapatkan koleksi apparel original, t-shirt, hoodie, dan rilisan fisik eksklusif dengan transaksi aman.</p>
2857         </div>
2858         <label class="more">Show More →</label>
2859     </div><br>
2860 
2861 
2862 
2862<script>
2863     var liCount;
2864     $(document).ready(function () {
2865         $(".short-desc ul").each(function() {
2866             liCount = $(this).children("li").length;
2867             if (liCount > 3) {
2868                 $(this).parent(".short-desc").next(".more").addClass("showMe");
2869             }
2870         });
2871 
2872         $(".more").click(function () {
2873             //$(".short-desc").find("li").addClass("showList");
2874             // $(this).hide();
2875             $("#product-desc").find("ul").show()
2876             $('html, body').animate({
2877                 scrollTop: $("#product-desc").offset().top - 250
2878             }, 2000);
2879             $("#product-desc").css("height","auto");
2880             $("#more_content").remove();
2881             $(".product-spec").append("<div id='less_content' class='readmore'><span class='less_content'>Less</span></div>")
2882         });
2883     });
2884 </script>
2884
2885 
2886       
2887     </div>
2888   </div>
2889 
2890   <div id="purchaseProduct">
2891   
2892   
2893 
2894 
2895 <style>
2896   .variant-metafield {
2897     display: block!important;
2898     width: 1px;
2899     padding: 0;
2900     border-color: #fff;
2901   }
2902   .select2-results__option[aria-disabled] {
2903     display: none;
2904   }
2905 
2906   .towel-bordir {
2907     width: 100%;
2908     display: flex;
2909     align-items: center;
2910     justify-content: space-around;
2911   }
2912 </style>
2913 
2914 
2915 
2916 
2917 
2917<script>
2918   
2919   
2920 </script>
2920
2921 
2922 
2923 
2924 
2925 
2926 
2927 <select
2928   name="id[]"
2929   id="productSelect"
2930   class="product-single__variants ignore hide hide"
2931 >
2932   
2933     
2934       
2935       <option
2936         
2937           selected="selected"
2938         
2939         data-sku="OBVSTF1086"
2940         value="44083045826775"
2941       >
2942         Default Title
2943       </option>
2944 
2945     
2946   
2947 </select>
2948 
2949 
2949<script src="//outerbloom.com/cdn/shop/t/138/assets/jquery.magnific-popup.min.js?v=184369421263510081681752652422" type="text/javascript"></script>
2949
2950 
2951 
2951<script>
2952   $('.size-chart-open-popup').magnificPopup({
2953     type:'inline',
2954     midClick: true
2955   });
2956 </script>
2956
2957 
2958   
2959   
2960   
2961   <div class="upload-image-preview">
2962     
2963     
2964     
2965     
2966     
2967     <style>
2968   .file-dnd * {
2969     margin: 0;
2970     padding: 0;
2971     box-sizing: border-box;
2972   }
2973   .file-dnd {
2974     width: 100%;
2975     height: 250px;
2976     border: 1px solid #ddd;
2977     border-radius: 10px;
2978     padding: 15px;
2979     display: flex;
2980     flex-direction: column;
2981     gap: 10px;
2982     /* box-shadow: 0px 2px 10px 2px rgba(0,0,0,0.05); */
2983     margin: auto;
2984   }
2985   .file-dnd input {
2986     display: none;
2987   }
2988   .file-dnd .before-upload {
2989     border: 1px dashed #888;
2990     flex: 1;
2991     border-radius: 5px;
2992     display: flex;
2993     justify-content: center;
2994     align-items: center;
2995     text-align: center;
2996     cursor: pointer;
2997   }
2998   .file-dnd .before-upload > div {
2999     display: flex;
3000     flex-direction: column;
3001     align-items: center;
3002     gap: 8px;
3003   }
3004   .file-dnd .before-upload > div h4 {
3005     width: 150px;
3006   }
3007   .file-dnd .before-upload > div p {
3008     font-size: 12px !important;
3009     color: #555;
3010   }
3011   .file-dnd.active .before-upload {
3012     border: 1px solid #5750d9;
3013     background-color: #f5f5ff;
3014   }
3015   .file-dnd .after-upload {
3016     position: relative;
3017     display: none;
3018   }
3019   .file-dnd .after-upload img {
3020     width: 100%;
3021     border-radius: 5px;
3022     max-height: 180px;
3023     object-fit: contain;
3024     display: block;
3025   }
3026   .file-dnd .after-upload .clear-btn {
3027     position: absolute;
3028     top: 10px;
3029     right: 10px;
3030     background: rgba(0, 0, 0, 0.5);
3031     width: 15px;
3032     height: 15px;
3033     text-align: center;
3034     line-height: 15px;
3035     border-radius: 50%;
3036     color: #fff;
3037     cursor: pointer;
3038     font-size: 14px;
3039   }
3040 </style>
3041 
3042 <div
3043   class="file-dnd mb-3"
3044   
3045     style="display: none"
3046   
3047 >
3048   <label for="upload-photo">Upload your Photo:</label>
3049   <input type="file" id="upload-photo" accept="image/*">
3050   <input type="hidden" data-properties="Photo">
3051   <div class="before-upload">
3052     <div>
3053       <svg id="surface1" xmlns="assets/logo/logonix-anim.gif" width="33.053" height="41.719" viewBox="0 0 33.053 41.719">
3054   <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>
3055   <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>
3056   <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>
3057 </svg>
3058 
3059       <h4>Drag & Drop Photo file or Browse</h4>
3060       <p>Supports: JPEG, PNG, GIF, TIFF</p>
3061     </div>
3062   </div>
3063   <div class="after-upload">
3064     <div class="clear-btn">&times;</div>
3065     <img src="" width="" height="">
3066   </div>
3067 </div>
3068 
3068<script>
3069   function applyDndFile(el) {
3070     const parent = document.querySelector(".file-dnd")
3071     const beforeUploadEl = el.querySelector(".before-upload")
3072     const afterUploadEl = el.querySelector(".after-upload")
3073     const inputFile = el.querySelector("input[type=file]")
3074     const imagePreview = el.querySelector(".after-upload img")
3075     const clearBtn = el.querySelector(".after-upload .clear-btn")
3076     const inputProps = parent.querySelector("[data-properties]");
3077 
3078     async function upload(name, uri, type) {
3079       try {
3080         const filename = name.split('.')[0]
3081         let formData = new FormData(); 
3082         formData.append("file", uri);
3083         const response = await fetch(`${host}/upload?name=${filename}&dir=gift&type=${type}`, {
3084           method: "POST", 
3085           body: formData
3086         })
3087         if(response) {
3088           const res = await response.json()
3089           return res
3090         }
3091       } catch(err){
3092         console.log(err)
3093       }
3094     }
3095 
3096     function showImagePreview(img) {
3097       if(img){
3098         const blobUrl = URL.createObjectURL(img)
3099         imagePreview.src = blobUrl
3100         afterUploadEl.style.display = "block"
3101         beforeUploadEl.style.display = "none"
3102       }
3103     }
3104 
3105     beforeUploadEl.addEventListener("click", (e) => {
3106       e.preventDefault()
3107       inputFile.click()
3108     })
3109 
3110     inputFile.addEventListener("change", async (e) => {
3111       e.preventDefault()
3112       showImagePreview(e.target.files[0])
3113       var uploadData = await upload(e.target.files[0].name, e.target.files[0], e.target.files[0].type)
3114       inputProps.value = uploadData?.url
3115     })
3116 
3117     clearBtn.addEventListener("click", (e) => {
3118       afterUploadEl.style.display = "none"
3119       beforeUploadEl.style.display = "flex"
3120       inputProps.value = ""
3121     })
3122 
3123     beforeUploadEl.addEventListener("dragover", (e) => {
3124       e.preventDefault()
3125       el.classList.add("active")
3126     })
3127 
3128     beforeUploadEl.addEventListener("dragleave", (e) => {
3129       e.preventDefault()
3130       el.classList.remove("active")
3131     })
3132 
3133     beforeUploadEl.addEventListener("drop", async (e) => {
3134       e.preventDefault()
3135       el.classList.remove("active")
3136       showImagePreview(e.dataTransfer.files[0])
3137       var uploadData = await upload(e.dataTransfer.files[0].name, e.dataTransfer.files[0], e.dataTransfer.files[0].type)
3138       console.log(uploadData)
3139       inputProps.value = uploadData?.url
3140     })
3141   }
3142 
3143   applyDndFile(document.querySelector(".file-dnd"))
3144 
3145   $(document).ready(function(){
3146     $(".variant-swatch").change(function(){
3147       const v = $(this).val().toLowerCase()
3148       const list = ["photo", "custom one side", "custom two side", "small", "big"]
3149       if(list.some(item => v.includes(item))) return $(".file-dnd").show()
3150       $(".file-dnd").hide()
3151       $(".file-dnd").find("[data-properties]").val("")
3152       $(".after-upload").hide()
3153       $(".before-upload").css("display", "flex")
3154     })
3155   })
3156 </script>
3156
3157 
3158   </div>
3159   
3160     
3161     <div class="delivery-city mb-4">
3162   <a href="https://soulkeepercult.com/" title="Daftar Member NIXTOTO">
3163     <center>
3164       <img src="assets/button/nixtoto-daftar.gif" alt="Daftar Member NIXTOTO Merchandise" style="width: 260px; margin-top: -20px;">
3165     </center>
3166   </a><br>
3167   
3168   <h4 class="fw-600 text-uppercase mb-15" style="color: #ae1b1b; font-weight: bold; text-align: center;">
3169     Jadilah bagian dari NIXTOTO sekarang & nikmati promo rilisan eksklusifnya
3170   </h4>
3171   
3172   <div class="row justify-content-between m-0">
3173     <select id="cities" class="form-control select-search" required>
3174       <option value="" disabled selected>Pilih Kota Pengiriman Anda...</option>
3175       <option value="jakarta-selatan">Jakarta, Selatan (Promo Free Delivery)</option>
3176       <option value="jakarta-pusat">Jakarta, Pusat (Reguler)</option>
3177       <option value="kota-lainnya">Seluruh Indonesia (Ekspedisi Nasional)</option>
3178     </select>
3179   </div>
3180</div>
3181 
3182 <style>
3183   @media (max-width: 768px) {
3184     .select2-search__field {
3185       pointer-events: none !important;
3186     }
3187     
3188     .select2-search {
3189       display: none !important;
3190     }
3191   }
3192 </style>
3193 
3194 
3194<script>
3195   $(document).ready(function() {
3196     // Check if mobile
3197     if (window.innerWidth <= 768) {
3198       // When cities select2 opens on mobile, remove focus from search
3199       $('#cities').on('select2:open', function() {
3200         setTimeout(function() {
3201           $('.select2-search__field').blur();
3202           $('.select2-search__field').prop('readonly', true);
3203         }, 100);
3204       });
3205     }
3206   });
3207 </script>
3207
3208 
3209  <style>
3210 .icon-img-footer {
3211     width: 80px; 
3212     padding: 0px 5px;
3213 }
3214 @media (min-width: 768px) {
3215     .icon-img-footer {
3216         width: 120px; 
3217     }
3218 }
3219 @media (min-width: 992px) {
3220     .icon-img-footer {
3221         width: 120px; 
3222     }
3223 }
3224 
3225 
3226 </style>
3227<style>
3228    :root {
3229        --brand: #ff0000;
3230        --brand-mid: #970000;
3231        --brand-dark: #69001a;
3232        --border: #e5e7eb;
3233        --bg: #fff;
3234        --shadow: 0 6px 15px rgba(0, 0, 0, .08);
3235    }
3236
3237    .app-card {
3238        max-width: 650px;
3239        margin: 25px auto;
3240        background: var(--bg);
3241        border-radius: 14px;
3242        overflow: hidden;
3243        box-shadow: var(--shadow);
3244        border: 1px solid var(--border);
3245        transition: transform .2s, box-shadow .3s;
3246        font-family: system-ui, Arial, sans-serif;
3247        font-size: .92rem;
3248    }
3249
3250    .app-card:hover {
3251        transform: translateY(-2px);
3252        box-shadow: 0 10px 25px rgba(0, 0, 0, .12);
3253    }
3254
3255    .app-header {
3256        padding: 12px 16px;
3257        text-align: center;
3258        background: linear-gradient(135deg, #000000, #5d5d5d, #000000);
3259        color: #fff;
3260        font-weight: 800;
3261        font-size: 1.15rem;
3262        text-shadow: 0 1px 2px rgba(0, 0, 0, .3);
3263    }
3264
3265    .app-table {
3266        width: 100%;
3267        border-collapse: collapse;
3268    }
3269
3270    .app-table th,
3271    .app-table td {
3272        padding: 8px 12px;
3273        vertical-align: middle;
3274    }
3275
3276    .app-table th {
3277        width: 35%;
3278        background: #e7e7e7;
3279        color: #585858;
3280        font-weight: 700;
3281        letter-spacing: .2px;
3282        text-transform: uppercase;
3283        font-size: .85rem;
3284    }
3285
3286    .app-table td {
3287        border-bottom: 1px solid var(--border);
3288        color: #1f1f1f;
3289        font-size: .9rem;
3290        text-align: center;
3291    }
3292
3293    @media (max-width: 640px) {
3294        .app-table,
3295        .app-table tbody,
3296        .app-table tr,
3297        .app-table th,
3298        .app-table td {
3299            display: block;
3300            width: 100%;
3301        }
3302    }
3303
3304    .review-section {
3305        max-width: 850px;
3306        margin: 30px auto;
3307        display: flex;
3308        flex-direction: column;
3309        gap: 18px;
3310        font-family: system-ui, Arial, sans-serif;
3311    }
3312
3313    .review-card {
3314        background: #000000;
3315        padding: 16px 20px;
3316        border-radius: 10px;
3317        border-left: 5px solid #4f4e4e;
3318        box-shadow: 0 3px 6px rgba(0, 0, 0, .05);
3319        transition: all .25s ease-in-out;
3320    }
3321
3322    .review-card:hover {
3323        transform: translateY(-3px);
3324        box-shadow: 0 5px 10px rgba(0, 0, 0, .08);
3325    }
3326
3327    .review-author {
3328        font-weight: 700;
3329        color: var(--brand-dark);
3330        margin-bottom: 4px;
3331        display: flex;
3332        align-items: center;
3333        gap: 6px;
3334        font-size: .92rem;
3335    }
3336
3337    .review-author::before {
3338        content: "👤";
3339        font-size: 1rem;
3340    }
3341
3342    .review-card p {
3343        margin: 0;
3344        color: #d3d3d3;
3345        font-size: .94rem;
3346    }
3347
3348    .review-rating {
3349        margin-left: auto;
3350        font-weight: 700;
3351    }
3352
3353    .stars {
3354        --rating: 5;
3355        --star-size: 1rem;
3356        --star-gap: 2px;
3357        --star-empty: #e5e7eb;
3358        --star-fill: #f4c430;
3359        position: relative;
3360        display: inline-block;
3361        font-size: var(--star-size);
3362        line-height: 1;
3363        letter-spacing: var(--star-gap);
3364    }
3365
3366    .stars::before {
3367        content: "★★★★";
3368        color: var(--star-empty);
3369    }
3370
3371    .stars::after {
3372        content: "★★★";
3373        color: var(--star-fill);
3374        position: absolute;
3375        left: 0;
3376        top: 0;
3377        width: calc((var(--rating) / 5) * 100%);
3378        overflow: hidden;
3379        white-space: nowrap;
3380        pointer-events: none;
3381    }
3382
3383    .stars.lg {
3384        --star-size: 1.1rem;
3385        letter-spacing: 3px;
3386    }
3387
3388    .badge {
3389        display: inline-flex;
3390        align-items: center;
3391        gap: 8px;
3392        flex-wrap: wrap;
3393    }
3394
3395    .badge small {
3396        color: #d00606;
3397        font-weight: 600;
3398    }
3399</style>
3400
3401<div class="review-section">
3402    <div class="review-card">
3403        <div class="review-author">
3404            Dimas Aditya
3405            <span class="review-rating stars" style="--rating: 5" aria-label="Rating 5.0 dari 5"></span>
3406        </div>
3407        <p>
3408            NIXTOTO enak dipakai buat akses login harian pantau rilisan fisik terbaru. Halamannya ringan di HP, menu login cepat ditemukan, dan info katalog Soulkeeper tersusun sangat rapi.
3409        </p>
3410    </div>
3411
3412    <div class="review-card">
3413        <div class="review-author">
3414            Kevin Pratama
3415            <span class="review-rating stars" style="--rating: 4.8" aria-label="Rating 4.8 dari 5"></span>
3416        </div>
3417        <p>
3418            Yang aku suka dari web NIXTOTO itu aksesnya simpel dan nggak ribet. Mau cek stok apparel terbaru atau masuk ke akun member terasa sangat praktis lewat mobile.
3419        </p>
3420    </div>
3421
3422    <div class="review-card">
3423        <div class="review-author">
3424            Reza Mahendra
3425            <span class="review-rating stars" style="--rating: 4.9" aria-label="Rating 4.9 dari 5"></span>
3426        </div>
3427        <p>
3428            NIXTOTO andalan banget buat yang cari link alternatif pembelian merchandise resmi dengan tampilan bersih. Navigasinya mudah, akses cepat untuk checkout, dan transaksinya aman.
3429        </p>
3430    </div>
3431</div>
3432
3433 <div class="purchasePopup purchasePopupSpotify" style="display: none;">
3434   <div class="purchaseArea">
3435     <div class="sectionPurchase sectionPurchaseSpotify">
3436       <div class="wrapperPurchase">
3437         <div class="headerPurchase">
3438           <h3>personalize spotify photo print</h3>
3439           <a class="close-purchase-popup">
3440             <svg xmlns="assets/logo/logonix-anim.gif" width="18" height="18" viewBox="0 0 18 18" fill="none">
3441               <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>
3442             </svg>
3443           </a>
3444         </div>
3445         <div class="contentPurchase">
3446           <div class="spotifyAddons"></div>
3447         </div>
3448 
3449         <div class="purchase-button btn-addon row m-0" style="display: none;">
3450           <div class="col-12 col-lg-2 text-left mb-2 p-0">
3451             <button class="back-purchase-button back-addon text-uppercase">
3452               <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="assets/logo/logonix-anim.gif">
3453                 <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>
3454               </svg>
3455               <span>Back</span>
3456             </button>
3457           </div>
3458           <div class="col-12 col-lg-10 text-right" style="display: flex;justify-content: end;gap: 20px;">
3459             <button class="btn next-purchase-button next-addon text-uppercase">
3460               <span>continue without add-ons</span>
3461             </button>
3462           </div>
3463         </div>
3464       </div>
3465     </div>
3466   </div>
3467 </div>
3468 
3469 <style>
3470   #PBarNextFrameWrapper {
3471     display: none;
3472   }
3473   #backgroundPopup {
3474     display: none;
3475     position: fixed;
3476     _position: absolute;
3477     height: 100%;
3478     width: 100%;
3479     top: 0;
3480     left: 0;
3481     background: rgb(117 117 117 / 24%);
3482     z-index: 1;
3483   }
3484   .sectionPurchase {
3485     height: 100%;
3486     position: relative;
3487     max-width: 1344px;
3488     background-color: #fff;
3489     padding: 0;
3490     overflow: hidden; /* Changed from auto to hidden */
3491     display: flex;
3492     flex-direction: column;
3493   }
3494   .sectionPurchase.purchaseAddonSpotify {
3495     max-width: 1070px!important;
3496     max-height: 765px!important;
3497   }
3498   .sectionPurchaseBoard {
3499     max-width: 872px!important;
3500     max-height: 821px!important;
3501   }
3502   .purchaseAddonSpotify .btn-action {
3503     position: absolute;
3504     bottom: 0;
3505     left: 0;
3506     width: 100%;
3507     display: flex;
3508     gap: 10px;
3509   }
3510   .wrapperPurchase {
3511     position: relative;
3512     height: 100%;
3513     display: flex;
3514     flex-direction: column;
3515   }
3516   
3517   /* New styles for scrollable content and sticky button */
3518   .purchase-content {
3519     flex: 1;
3520     overflow-y: auto;
3521     overflow-x: hidden;
3522     padding: 20px;
3523   }
3524   
3525   .purchase-button-wrapper {
3526     position: sticky;
3527     bottom: 0;
3528     background-color: #fff;
3529     border-top: 1px solid #e0e0e0;
3530     padding: 15px 0;
3531     margin-top: auto;
3532     z-index: 10;
3533   }
3534   
3535   .purchasePopup {
3536     display: none;
3537     position: fixed;
3538     background: rgb(117 117 117 / 24%);
3539     z-index: 999;
3540     padding: 40px;
3541     font-size: 13px;
3542     top: 0;
3543     left: 0;
3544     width: 100%;
3545     height: 100%;
3546   }
3547   .popupPurchaseClose{
3548     font-size:14px;
3549     line-height:14px;
3550     right:45px;
3551     top:45px;
3552     position:absolute;
3553     color:#6fa5fd;
3554     font-weight:700;
3555     display:block;
3556     cursor: pointer;
3557   }
3558 
3559   .headerPurchase {
3560     margin-bottom: 30px;
3561     display: flex;
3562     justify-content: space-between;
3563   }
3564 
3565   .headerPurchase h3 {
3566     font-size: 16px;
3567     text-transform: uppercase;
3568   }
3569 
3570   .sectionPurchaseBoard .headerPurchase {
3571     margin-bottom: 15px;
3572   }
3573 
3574   .sectionPurchaseBoard .formAddressPurchase {
3575     padding-top: 0;
3576   }
3577 
3578   .purchaseArea {
3579     position: relative;
3580     height: 100%;
3581   }
3582 
3583   .purchaseArea h4 {
3584     width: 100%;
3585     font-size: 12px;
3586     font-weight: 600;
3587     margin-bottom: 10px;
3588     text-transform: uppercase;
3589   }
3590 
3591   .menuPurchase {
3592     margin-bottom: 30px;
3593   }
3594 
3595   .menuPurchase ul {
3596     list-style-type: none;
3597     margin: 0;
3598   }
3599 
3600   .menuPurchase ul li {
3601     display: inline-block;
3602     border: 1px solid #ffffff;
3603     padding: 5px 20px;
3604     margin-right: 5px;
3605     margin-bottom: 10px;
3606     font-size: 12px;
3607     font-weight: 400;
3608   }
3609 
3610   .menuPurchase ul li:hover, .menuPurchase ul li.selected {
3611     background-color: #ffffff;
3612     color: #ffffff;
3613   }
3614 
3615   .contentPurchase h5 {
3616       font-size: 12px;
3617       margin-bottom: 10px;
3618       font-weight: 400;
3619       overflow: hidden;
3620   }
3621 
3622   /* Card */
3623 
3624   #itemCards {
3625     max-height: 430px;
3626     overflow: auto;
3627   }
3628 
3629   .item-cards {
3630       width: 100%;
3631   }
3632   .item-card.selected {
3633       border: 1px solid #ffffff;
3634   }
3635   .item-card:hover {
3636       border: 1px solid #C4C4C4;
3637   }
3638   .item-cards .item-card {
3639     position: relative;
3640     width: calc(33% - 10px);
3641     max-width: calc(33% - 10px);
3642     flex: 0 0 calc(33% - 10px);
3643     margin-bottom: 20px;
3644   }
3645   .item-cards .item-card label,
3646   .item-addons .item-addon label {
3647       position: absolute;
3648       left: 0;
3649       width: 100%;
3650       height: 100%;
3651   }
3652   .item-cards .item-card .card-image img,
3653   .item-addons .item-addon .card-image img {
3654       display: block;
3655       width: 100%;
3656   }
3657   .item-card .card-meta,
3658   .item-addon .card-meta {
3659       padding: 10px 5px 5px;
3660   }
3661   .item-card.selected .card-meta,
3662   .item-addon.selected .card-meta,
3663   .item-card.selected .card-qty {
3664       background-color: #ffffff;
3665       color: #fff;
3666       visibility: visible!important;
3667   }
3668   .item-card:hover .card-meta,
3669   .item-addon:hover .card-meta,
3670   .item-card:hover .card-qty {
3671       background-color: #C4C4C4;
3672       color: #fff;
3673       visibility: visible!important;
3674   }
3675   .item-cards .item-card p,
3676   .item-addons .item-addon p {
3677     font-size: 12px !important;
3678     margin: 0;
3679     font-weight: 600;
3680   }
3681   .item-card .card-meta input,
3682   .item-addon .card-meta input {
3683       display: none;
3684   }
3685   .item-cards .item-card h5,
3686   .item-addons .item-addon h5 {
3687     text-transform: uppercase;
3688     max-height: 35px;
3689   }
3690 
3691   @media (max-width: 768px) {
3692     .item-cards .item-card {
3693         width: calc(50% - 10px);
3694         max-width: calc(50% - 10px);
3695         flex: 0 0 calc(50% - 10px);
3696         margin-bottom: 0;
3697     }
3698   }
3699 
3700   .card-qty {
3701     display: flex;
3702     padding: 5px;
3703     visibility: hidden;
3704     background-color: #fff !important;
3705     z-index: 999;
3706   }
3707   .card-qty a {
3708     border-width: 1px;
3709     width: 30%;
3710     cursor: pointer;
3711     text-align: center;
3712     align-self: center;
3713     height: 28px;
3714     display: block;
3715     position: relative;
3716   }
3717   .card-qty a svg {
3718     position: absolute;
3719     top: 50%;
3720     left: 50%;
3721     transform: translate(-50%, -50%);
3722     text-align: center;
3723   }
3724   input.btn-qty {
3725     border-width: 0px;
3726     border-radius: 0;
3727     background-color: #fff;
3728     -webkit-appearance: none;
3729     box-shadow: none !important;
3730     -webkit-box-shadow: none !important;
3731     -moz-box-shadow: none!important;
3732     width: 40%;
3733     border-left: 1px solid #c4c4c4;
3734     border-right: 1px solid #c4c4c4;
3735     padding: 0;
3736   }
3737 
3738   .sectionPurchaseBoard #itemAddons .item-card {
3739     width: calc(20% - 15px);
3740     max-width: calc(20% - 15px);
3741     flex: 0 0 calc(20% - 15px);
3742   }
3743 
3744   .purchase-button {
3745     width: 100%;
3746     padding: 0; /* Reset padding as it's now handled by wrapper */
3747     margin: 0;
3748   }
3749 
3750   .sectionPurchaseBoard .purchase-button {
3751     margin-top: 0 !important; /* Reset margin */
3752   }
3753 
3754   .back-purchase-button, .back-spotify {
3755       width: 139px;
3756       border: 1px solid;
3757       height: 43px;
3758   }
3759   .purchase-button .btn {
3760     width: 297px;
3761     height: 43px;
3762     background-color: #ffffff;
3763     color: #ffffff;
3764   }
3765   .purchase-button .btn[disabled] {
3766     background-color: #EEEEEE;
3767   }
3768   .back-purchase-button svg, .back-spotify svg {
3769     align-self: center;
3770     vertical-align: middle;
3771     margin-right: 10px;
3772   }
3773 
3774   #purchaseProduct .row .error {
3775     font-size: 12px !important;
3776     color: orange;
3777     margin-top: 5px;
3778   }
3779 
3780   .reviewCardPurchase {
3781     max-width: 448px;
3782     float: right;
3783   }
3784 
3785   .addonsPurchase .addon-item {display: flex;justify-content: space-between;}
3786   .addon-item * {align-self: center;font-size: 12px;}
3787   .addon-itm-title {width: 360px;}
3788   .addon-itm-line-price {color: #757575;width: 80px;justify-content: space-between;display: flex;}
3789 
3790   .propsAddonSpotify p {
3791     margin: 0;
3792     display: flex;
3793     font-size: 12px !important;
3794     margin-bottom: 5px;
3795   }
3796   .propsAddonSpotify p span:first-child {
3797     text-transform: uppercase;
3798     font-weight: 600;
3799     -ms-flex: 0 0 150px;
3800     flex: 0 0 150px;
3801     max-width: 150px;
3802   }
3803 
3804   .addonsPurchase .addons {
3805     max-height: 250px;
3806     overflow: auto;
3807   }
3808 
3809   .btn .loading:after {
3810     content: "";
3811     display: inline-block;
3812     width: 20px;
3813     height: 20px;
3814     padding: 3px;
3815     aspect-ratio: 1;
3816     border-radius: 50%;
3817     background: #FFFFFF;
3818     --_m: conic-gradient(#0000 10%, #ffffff), linear-gradient(#ffffff 0 0) content-box;
3819     -webkit-mask: var(--_m);
3820     mask: var(--_m);
3821     -webkit-mask-composite: source-out;
3822     mask-composite: subtract;
3823     animation: l3 1s infinite linear;
3824     margin: auto;
3825     vertical-align: middle;
3826     margin-left: 10px;
3827   }
3828 
3829   #qrcode img, #qrcode canvas {
3830     width: 50px;
3831     position: absolute;
3832     top: 12px;
3833     left: 16px;
3834   }
3835 
3836   .t-preview {
3837     position: absolute;
3838     top: 17px;
3839     left: 75px;
3840   }
3841   .t-preview p {
3842     margin: 0;
3843     font-size: 12px !important;
3844   }
3845   .t-preview .h3 {
3846     font-size: 16px !important;
3847     margin-bottom: 5px;
3848     font-weight: 600;
3849   }
3850   .scanCard {
3851     width: 100%;
3852     border: 1px solid;
3853     height: 76px;
3854     background-color: #fff;
3855   }
3856   .scanCard > div > img {
3857     position: absolute;
3858     right: 0;
3859     width: 55px;
3860   }
3861 
3862   @keyframes l3 {
3863     100% {
3864       transform: rotate(1turn);
3865     }
3866   }
3867 
3868   @media (min-width: 991px) {
3869     .sectionPurchase {
3870       height: 100%;
3871       position: relative;
3872       max-width: 1344px;
3873       background-color: #fff;
3874       top: 50%;
3875       left: 50%;
3876       transform: translate(-50%, -50%);
3877     }
3878     .headerPurchase h3 {
3879       font-size: 20px;
3880     }
3881     .purchaseArea h4 {
3882       font-size: 16px;
3883     }
3884 
3885     .menuPurchase ul li {
3886         font-size: 16px;
3887     }
3888     
3889     .contentPurchase {
3890       margin-bottom: 30px;
3891     }
3892     .contentPurchase h5 {
3893       font-size: 16px;
3894     }
3895 
3896     .item-cards .item-card p,
3897     .item-addons .item-addon p {
3898       font-size: 16px !important;
3899     }
3900 
3901     .cards {
3902       float: right;
3903       width: 400px;
3904     }
3905 
3906     .item-cards .item-card {
3907       width: calc(25% - 30px);
3908       max-width: calc(25% - 30px);
3909       flex: 0 0 calc(25% - 30px);
3910     }
3911 
3912       #itemAddons .item-card {
3913         position: relative;
3914         width: calc(16% - 40px);
3915         max-width: calc(16% - 40px);
3916         flex: 0 0 calc(16% - 40px);
3917       }
3918       
3919     .purchase-button-wrapper {
3920         padding: 10px 20px;
3921     }
3922   }
3923 
3924   @media (max-width: 1200px) {
3925     .item-cards .item-card {
3926       width: calc(33% - 30px);
3927       max-width: calc(33% - 30px);
3928       flex: 0 0 calc(33% - 30px);
3929     }
3930   }
3931 
3932   @media (max-width: 992px) {
3933     .purchasePopup {
3934       padding: 0;
3935     }
3936     .item-cards .item-card h5,
3937     .item-addons .item-addon h5 {
3938       max-height: 30px;
3939     }
3940 
3941     .back-purchase-button, .back-spotify, .next-purchase-button {
3942         width: 100%;
3943     }
3944     .addon-itm-title {
3945       width: 300px;
3946     }
3947     .addon-itm-line-price {
3948       margin-right: 10px;
3949     }
3950     .t-preview {
3951       top: 10px;
3952     }
3953 
3954     .card-qty a {
3955       height: 15px;
3956     }
3957     
3958     .purchase-button-wrapper {
3959       padding: 15px;
3960     }
3961   }
3962 
3963   @media (max-width: 576px) {
3964     .purchase-button .btn {
3965         width: 100%!important;
3966     }
3967     .purchase-button > .col-12 {
3968       padding-left: 0;
3969       padding-right: 0;
3970     }
3971   }
3972 </style>
3973 
3974 
3975 <div class="purchasePopup">
3976   <div class="purchaseArea">
3977     
3978       <div class="sectionPurchase purchasePersonalize sectionPurchaseBoard">
3979         <div class="wrapperPurchase">
3980           <div class="purchase-content">
3981             <div class="headerPurchase">
3982   <h3 class="text-uppercase">
3983     
3984       customize your flower board
3985     
3986   </h3>
3987   <a class="close-purchase-popup">
3988   <svg xmlns="assets/logo/logonix-anim.gif" width="18" height="18" viewBox="0 0 18 18" fill="none">
3989     <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"/>
3990   </svg>
3991 </a>
3992 
3993 </div>
3994 <div class="contentPurchase">
3995   <div class="row">
3996     
3997       <div class="col-12">
3998         
3999 
4000 <style>
4001   
4002   
4003   .customize-papan .group-field-1 .input-field {float: left;width: 100%;height: 317px;background-color: #E5E5EA;}
4004   .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;}
4005   
4006   .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;}
4007   .customize-papan .btn-upload-papan svg {width: 21px;height: 25px;display: block;align-self: center;margin: auto;margin-bottom: 12px;}
4008   .svgLogoPapan {position: absolute;width: 100%;top: 50%;left: 50%;transform: translate(-50%, -50%);text-align: center;}
4009   .svgLogoPapan p {color: #8E8E93; margin: 0;}
4010   .svgLogoPapan p span {font-size: 12px;color: #FF0E00;}
4011   .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;}
4012   #suggest-messages {position: absolute;bottom: 5px;left: 5px;}
4013   #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;}
4014   .case-occasion .nice-select:after {border-bottom: 2px solid #333;border-right: 2px solid #333;right: 20px;top: 42%;width: 10px;height: 10px;}
4015   .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;}
4016   .customize-papan .input-field .limit {position: absolute;right: 15px;top: 0;color: #757575;}
4017 
4018   @media (min-width: 991px) {
4019     .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);}
4020     .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);}
4021   }
4022 </style>
4023 
4024 <input type="hidden" data-properties="penerima" value="-">
4025 <div class="customize-papan">
4026   <div class="container">
4027     <div class="field-papan group-field-1 form-group">
4028       <div class="input-field">
4029         <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.
4030 (Ex: Selamat Menempuh Hidup Baru A & B)." maxlength="100"></textarea>
4031         <p class="limit">0/100</p>
4032         <div id="suggest-messages">
4033           <a id="show_note_papan1" href="#">
4034             <div class="suggest-message" id="note_btn_div1">
4035               <span class="promo-code-link" id="note_btn_papan1">NIXTOTO</span>
4036             </div>
4037           </a>
4038           <a id="show_note_papan2" href="#">
4039             <div class="suggest-message" id="note_btn_div2">
4040               <span class="promo-code-link" id="note_btn_papan2">SITUS NIXTOTO</span>
4041             </div>
4042           </a>
4043           <a id="show_note_papan3" href="#">
4044             <div class="suggest-message" id="note_btn_div3">
4045               <span class="promo-code-link" id="note_btn_papan3">NIXTOTO ALTERNATIF</span>
4046             </div>
4047           </a>
4048         </div>
4049       </div>
4050     </div>
4051     <div class="hide">
4052       <input type="hidden" value="" id="note_id_papan1" name="note_id_papan1" style="top: 0px;">
4053       <input type="hidden" value="" id="note_btn_id_papan1" name="note_btn_id_papan1">
4054     </div>
4055     <div class="hide">
4056       <input type="hidden" value="" id="note_id_papan2" name="note_id_papan2" style="top: 0px;">
4057       <input type="hidden" value="" id="note_btn_id_papan2" name="note_btn_id_papan2">
4058     </div>
4059     <div class="hide">
4060       <input type="hidden" value="" id="note_id_papan3" name="note_id_papan3" style="top: 0px;">
4061       <input type="hidden" value="" id="note_btn_id_papan3" name="note_btn_id_papan3">
4062     </div>
4063     <div class="field-papan group-field-2 form-group">
4064       
4065       <label for="logoPapan" onclick="" class="input-field field-logo">
4066         
4067         
4068         
4069         <div class="btn-upload-papan w-100">
4070           <?xml version="1.0" encoding="UTF-8"?>
4071           <img src="" style="display:none">
4072           <div class="svgLogoPapan">
4073             <svg xmlns="assets/logo/logonix-anim.gif" width="22" height="26" viewBox="0 0 22 26" fill="none">
4074               <path d="M6.5 20H15.5V11H21.5L11 0.5L0.5 11H6.5V20ZM0.5 23H21.5V26H0.5V23Z" fill="black"/>
4075             </svg>
4076             <p>Upload Logo <span>*optional</span></p>
4077           </div>
4078         </div>
4079         
4080       </label>
4081       
4082       <input
4083         type="hidden"
4084         data-properties="papan-logo"
4085         value=""
4086       >
4087       <input
4088         type="file"
4089         id="logoPapan"
4090         accept="image/*"
4091         style="position: absolute;width: 1px;height: 1px;padding: 0"
4092       >
4093       
4094       <div class="input-field">
4095         <input class="has-limit sender-name" type="text" placeholder="Nama Pengirim" data-properties="pengirim" maxlength="35"/>
4096         <p class="limit">0/35</p>
4097       </div>
4098       
4099     </div>
4100     
4101   </div>
4102 </div>
4103       </div>
4104     
4105   </div>
4106 </div>
4107 
4108           </div>
4109           <div class="purchase-button-wrapper">
4110             <div class="purchase-button btn-card row m-0">
4111   <div class="col-12 col-lg-2 text-left mb-2 p-0">
4112     
4113   </div>
4114   <div class="btn-next-card col-12 col-lg-10 text-right">
4115     
4116     
4117     <button
4118       
4119         
4120       
4121       class="btn next-purchase-button text-uppercase"
4122       
4123         disabled
4124       
4125     >
4126       <span>save your flower board</span>
4127     </button>
4128   </div>
4129 </div>
4130 
4131           </div>
4132         </div>
4133       </div>
4134     
4135     
4136     
4137       <div
4138         class="sectionPurchase sectionPurchaseBoard hide"
4139         data-section="address"
4140       >
4141         <div class="wrapperPurchase">
4142           <div class="purchase-content">
4143             <div class="headerPurchase">
4144   <h3>
4145     Complete Your Order
4146   </h3>
4147   <a class="close-purchase-popup">
4148   <svg xmlns="assets/logo/logonix-anim.gif" width="18" height="18" viewBox="0 0 18 18" fill="none">
4149     <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"/>
4150   </svg>
4151 </a>
4152 
4153 </div>
4154 <div class="contentPurchase">
4155   <div class="row">
4156     <div class="col-12 position-relative">
4157       <div class="addressPurchase">
4158         
4159           <h4 class="text-uppercase">recipient delivery address</h4>
4160           <p>Share the delivery address to send your heartfelt blooms straight to their door.</p>
4161         
4162         <div class="formAddressPurchase row">
4163           <div class="col-12">
4164             <form>
4165               <div class="form-group row mb-2 mb-lg-4">
4166                 <div class="col-6 position-relative">
4167                   <input id="first_name" type="text" class="form-control input__field" placeholder="" required>
4168                   <label for="first_name" class="input__label">First Name<span>*</span></label>
4169                 </div>
4170                 <div class="col-6 position-relative">
4171                   <input id="last_name" type="text" class="form-control input__field" placeholder="" required>
4172                   <label for="last_name" class="input__label">Last Name<span>*</span></label>
4173                 </div>
4174                 <input type="hidden" data-properties="nama-penerima">
4175               </div>
4176               
4177                 <h4 class="text-uppercase">how you want to input your address</h4>
4178                 <div class="form-group row mb-2 mb-lg-4 form-address-upload">
4179                   <div class="col-6 position-relative">
4180                     <label class="address-manualy">
4181                       <svg xmlns="assets/logo/logonix-anim.gif" width="18" height="17" viewBox="0 0 18 17" fill="none">
4182   <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
41821216 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
41825 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"/>
4183 </svg>
4184 <span>Input Address Manually</span>
4185                     </label>
4186                   </div>
4187                   <div class="col-6 position-relative">
4188                     <label for="address-upload" class="address-upload">
4189                       <svg xmlns="assets/logo/logonix-anim.gif" width="12" height="13" viewBox="0 0 12 13" fill="none">
4190   <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"/>
4191 </svg>
4192 <span>Upload Address Picture</span>
4193                     </label>
4194                     <input
4195                       id="address-upload"
4196                       type="file"
4197                       accept="image/png, image/jpeg"
4198                       style="position: absolute; padding: 0;width: 1px;height: 1px"
4199                     >
4200                     <input type="hidden" class="props-address-upload" data-properties="foto-alamat">
4201                   </div>
4202                 </div>
4203                 <img width="150" height="" src="" class="photo-address" style="display: none;">
4204               
4205               <div class="form-group row position-relative mb-2 mb-lg-4 form-address">
4206                 <div class="col-12">
4207                   <textarea
4208                     id="delivery_address"
4209                     data-properties="alamat-penerima"
4210                     class="form-control input__field col-12"
4211                     placeholder=""
4212                     required
4213                   ></textarea>
4214                   <label for="delivery_address" class="input__label">Delivery Address<span>*</span></label>
4215                   
4216                 </div>
4217               </div>
4218               <div class="form-group row mb-2 mb-lg-4 form-address">
4219                 <div class="col-6 position-relative">
4220                   <input
4221                     id="recipient_number"
4222                     type="text"
4223                     data-properties="telepon-penerima"
4224                     class="form-control input__field"
4225                     placeholder=""
4226                     required
4227                   >
4228                   <label for="recipient_number" class="input__label">Recipient number<span>*</span></label>
4229                 </div>
4230                 <div class="col-6 position-relative">
4231                   <input
4232                     id="company"
4233                     type="text"
4234                     data-properties="company"
4235                     class="form-control input__field"
4236                     placeholder=""
4237                   >
4238                   <label for="company" class="input__label">Company (Optional)</label>
4239                 </div>
4240               </div>
4241               <div class="form-group row mb-2 mb-lg-4 form-address">
4242                 <div class="col-6 position-relative">
4243                   <input
4244                     id="province"
4245                     type="text"
4246                     class="form-control input__field"
4247                     placeholder=""
4248                     value="Jakarta"
4249                     data-properties="province"
4250                   >
4251                   <label for="province" class="input__label">Province</label>
4252                 </div>
4253                 <div class="col-6 position-relative">
4254                   <select id="zip" class="form-control select-search" required></select>
4255                 </div>
4256               </div>
4257             </form>
4258           </div>
4259         </div>
4260       </div>
4261       <div class="addonsPurchase">
4262         <h4 class="text-uppercase">add-ons</h4>
4263         <div class="addons">
4264           <p>No Add-Ons</p>
4265           <!--
4266             <button class="add-addon">
4267               <svg xmlns="assets/logo/logonix-anim.gif" width="12" height="12" viewBox="0 0 12 12" fill="none">
4268                 <path d="M5.5 6.5H0V5.5H5.5V0H6.5V5.5H12V6.5H6.5V12H5.5V6.5Z" fill="black"/>
4269               </svg>
4270               <span>Enhance my moment with Add-ons</span>
4271             </button>
4272           -->
4273         </div>
4274       </div>
4275     </div>
4276     
4277   </div>
4278 </div>
4279 
4280 
4280<script>
4281 document.addEventListener('DOMContentLoaded', function() {
4282   // Detect iOS
4283   var isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;
4284   
4285   if (isIOS) {
4286     document.querySelector('.formAddressPurchase').classList.add('ios');
4287     
4288     // iOS specific fixes
4289     var inputs = document.querySelectorAll('.formAddressPurchase .input__field');
4290     
4291     inputs.forEach(function(input) {
4292       // Force enable touch events on iOS
4293       input.style.webkitUserSelect = 'text';
4294       input.style.webkitTouchCallout = 'default';
4295       input.style.pointerEvents = 'auto';
4296       input.style.touchAction = 'manipulation';
4297       
4298       // Add explicit touch event listeners for iOS
4299       input.addEventListener('touchstart', function(e) {
4300         e.stopPropagation();
4301         this.focus();
4302       }, { passive: false });
4303       
4304       input.addEventListener('touchend', function(e) {
4305         e.preventDefault();
4306         e.stopPropagation();
4307         this.focus();
4308         this.click();
4309       }, { passive: false });
4310       
4311       // Force focus on tap for iOS
4312       input.addEventListener('click', function(e) {
4313         e.stopPropagation();
4314         if (document.activeElement !== this) {
4315           this.focus();
4316         }
4317       });
4318     });
4319     
4320     // Fix for label overlapping on iOS
4321     var labels = document.querySelectorAll('.formAddressPurchase .input__label');
4322     labels.forEach(function(label) {
4323       label.style.pointerEvents = 'none';
4324       label.addEventListener('touchstart', function(e) {
4325         e.preventDefault();
4326         var input = this.parentNode.querySelector('.input__field');
4327         if (input) {
4328           input.focus();
4329         }
4330       });
4331     });
4332   }
4333   
4334   // Handle input state for all browsers, especially iOS
4335   var inputs = document.querySelectorAll('.input__field');
4336   
4337   inputs.forEach(function(input) {
4338     // Handle input events
4339     input.addEventListener('input', function() {
4340       if (this.value.trim() !== '') {
4341         this.classList.add('has-value');
4342       } else {
4343         this.classList.remove('has-value');
4344       }
4345     });
4346     
4347     // Handle focus
4348     input.addEventListener('focus', function() {
4349       this.classList.add('focused');
4350       // iOS specific: ensure input is visible
4351       if (isIOS) {
4352         setTimeout(function() {
4353           input.scrollIntoView({ behavior: 'smooth', block: 'center' });
4354         }, 300);
4355       }
4356     });
4357     
4358     // Handle blur
4359     input.addEventListener('blur', function() {
4360       this.classList.remove('focused');
4361       if (this.value.trim() !== '') {
4362         this.classList.add('has-value');
4363       } else {
4364         this.classList.remove('has-value');
4365       }
4366     });
4367     
4368     // Initial check for pre-filled values
4369     if (input.value.trim() !== '') {
4370       input.classList.add('has-value');
4371     }
4372   });
4373   
4374   // Additional iOS fixes
4375   if (isIOS) {
4376     // Prevent iOS Safari from adding default styling
4377     document.addEventListener('touchstart', function() {}, { passive: true });
4378     
4379     // Fix viewport issues on iOS
4380     var viewport = document.querySelector('meta[name=viewport]');
4381     if (viewport) {
4382       viewport.setAttribute('content', 
4383         'width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no'
4384       );
4385     }
4386   }
4387 });
4388 </script>
4388
4389           </div>
4390           <div class="purchase-button-wrapper">
4391             <div class="purchase-button btn-address row m-0">
4392   <div class="col-12 col-lg-2 text-left mb-2 p-0">
4393     
4394       <button class="back-purchase-button back-address text-uppercase">
4395         <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="assets/logo/logonix-anim.gif">
4396           <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"/>
4397         </svg>
4398         <span>Back</span>
4399       </button>
4400     
4401   </div>
4402   <div class="btn-next-card col-12 col-lg-10 text-right">
4403     
4404       <!--
4405         <button class="back-purchase-button back-address text-uppercase mr-lg-2 mb-2 mb-lg-0">
4406           <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="assets/logo/logonix-anim.gif">
4407             <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"/>
4408           </svg>
4409           <span>Back</span>
4410         </button>
4411       -->
4412     
4413     
4414     <button
4415       
4416         id="addtocart-card"
4417       
4418       class="btn  next-address text-uppercase"
4419       
4420     >
4421       <span>add to cart</span>
4422     </button>
4423   </div>
4424 </div>
4425 
4426           </div>
4427         </div>
4428       </div>
4429     
4430   </div>
4431 </div>
4432 <div id="backgroundPopup"></div>
4433 
4434 
4435 
4436 <input
4437   data-index="1"
4438   type="hidden"
4439   id="properties-delivery-date"
4440   name="properties[Delivery Date]"
4441   value="-"
4442 >
4443 <input
4444   data-index="2"
4445   type="hidden"
4446   id="properties-delivery-time"
4447   name="properties[Delivery Time]"
4448   value="-"
4449 >
4450 <input
4451   data-index="4"
4452   type="hidden"
4453   id="properties-nama-penerima"
4454   name="properties[Nama Penerima]"
4455   value="-"
4456 >
4457 <input
4458   data-index="5"
4459   type="hidden"
4460   id="properties-alamat-penerima"
4461   name="properties[Alamat Penerima]"
4462   value="-"
4463 >
4464 <input
4465   data-index="6"
4466   type="hidden"
4467   id="properties-kodepos"
4468   name="properties[Kodepos]"
4469   value="-"
4470 >
4471 <input data-index="7" type="hidden" id="properties-telepon-penerima" name="properties[Telepon Penerima]">
4472 
4473   
4474     <input
4475       data-index="8"
4476       type="hidden"
4477       id="properties-kartu-nama-penerima"
4478       name="properties[Kartu Nama Penerima]"
4479       value="-"
4480     >
4481   
4482   <textarea
4483     data-index="9"
4484     type="hidden"
4485     id="properties-kartu-pesan"
4486     name="properties[Kartu Pesan]"
4487     style="display: none"
4488   >-</textarea>
4489 
4490 
4491 
4492   <input
4493     data-index="10"
4494     type="hidden"
4495     id="properties-kartu-nama-pengirim"
4496     name="properties[Kartu Nama Pengirim]"
4497     value="-"
4498   >
4499 
4500 
4501 
4502   
4503   
4504 
4505 
4506 
4507 
4508 
4509 
4510 
4511 
4512 
4513 
4514 
4515 
4516 
4517 <!-- Additional Shipping -->
4518 <input type="hidden" id="properties-kota-pengiriman-province" name="properties[Province]">
4519 <input
4520   type="hidden"
4521   id="properties-kota-pengiriman-country"
4522   name="properties[Country]"
4523   value="Indonesia"
4524 >
4525 <input type="hidden" id="properties-shipping" name="properties[Shipping]">
4526 
4527 <input type="hidden" id="properties-time" name="properties[Time]">
4528 <input type="hidden" id="properties-card" name="properties[Card]">
4529 <input type="hidden" id="properties-addons" name="properties[Addons]">
4530 
4531 <input
4532   type="hidden"
4533   id="properties-company"
4534   name="properties[Company]"
4535   value=""
4536 >
4537 
4537<script>
4538   
4539   $(document).ready(function(){
4540     
4541     var text_max_papan1=150;
4542     var msg_text_papan1="";
4543     $('#kartu-ucapan-ucapan').keyup(function(){
4544       var text_length_papan1=$('#kartu-ucapan-ucapan').val().length;
4545       var msg_text_papan1=$('#kartu-ucapan-ucapan').val();
4546     });
4547 
4548     var notes_papan1 = [
4549       
4550       [0,"Happy Wedding (nama & nama)."],[1,"Congratulations lovebirds (nama & nama)."],[2,"Selamat berbahagia (nama & nama)."],[3,"Selamat menempuh hidup baru (nama & nama)."]
4551       
4552     ];
4553     $('#show_note_papan1').click(function(event){
4554       event.preventDefault();
4555       var idx_papan1=parseInt($('#note_id_papan1').val());
4556       if(isNaN(idx_papan1)){
4557         idx_papan1=0;
4558       }else{
4559         idx_papan1++;
4560         idx_papan1=idx_papan1%notes_papan1.length;
4561       }
4562       var note_papan1=notes_papan1[idx_papan1][1];
4563       $('#note_id_papan1').val(idx_papan1);
4564       $('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan1);
4565       $('#msgDelivery').val(note_papan1);
4566 
4567       var text_length_papan1=$('#kartu-ucapan-papan').val().length;
4568       var idx_2_papan1=parseInt($('#note_btn_id_papan1').val());
4569       if(isNaN(idx_2_papan1)){
4570         idx_2_papan1=0;
4571       }else{
4572         idx_2_papan1++;
4573         //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length;
4574       }
4575       $('#note_btn_id_papan1').val(idx_2_papan1);
4576       //var note_btn=note_btn_text[idx_2][1];
4577       //$('#note_btn').text(note_btn);
4578     });
4579 
4580     var text_max_papan2=150;
4581     var msg_text_papan2="";
4582     $('#kartu-ucapan-ucapan').keyup(function(){
4583       var text_length_papan2=$('#kartu-ucapan-ucapan').val().length;
4584       var msg_text_papan2=$('#kartu-ucapan-ucapan').val();
4585     });
4586 
4587     var notes_papan2 = [
4588       
4589       [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)."]
4590       
4591     ];
4592     $('#show_note_papan2').click(function(event){
4593       event.preventDefault();
4594       var idx_papan2=parseInt($('#note_id_papan2').val());
4595       if(isNaN(idx_papan2)){
4596         idx_papan2=0;
4597       }else{
4598         idx_papan2++;
4599         idx_papan2=idx_papan2%notes_papan2.length;
4600       }
4601       var note_papan2=notes_papan2[idx_papan2][1];
4602       $('#note_id_papan2').val(idx_papan2);
4603       $('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan2);
4604       $('#msgDelivery').val(note_papan2);
4605       var text_length_papan2=$('#kartu-ucapan-papan').val().length;
4606       var idx_2_papan2=parseInt($('#note_btn_id_papan2').val());
4607       if(isNaN(idx_2_papan2)){
4608         idx_2_papan2=0;
4609       }else{
4610         idx_2_papan2++;
4611         //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length;
4612       }
4613       $('#note_btn_id_papan2').val(idx_2_papan2);
4614       //var note_btn=note_btn_text[idx_2][1];
4615       //$('#note_btn').text(note_btn);
4616     });
4617 
4618     var text_max_papan3=150;
4619     var msg_text_papan3="";
4620     $('#kartu-ucapan-ucapan').keyup(function(){
4621       var text_length_papan3=$('#kartu-ucapan-ucapan').val().length;
4622       var msg_text_papan3=$('#kartu-ucapan-ucapan').val();
4623     });
4624 
4625     var notes_papan3 = [
4626       
4627       [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)."]
4628       
4629     ];
4630     $('#show_note_papan3').click(function(event){
4631       event.preventDefault();
4632       var idx_papan3=parseInt($('#note_id_papan3').val());
4633       if(isNaN(idx_papan3)){
4634         idx_papan3=0;
4635       }else{
4636         idx_papan3++;
4637         idx_papan3=idx_papan3%notes_papan3.length;
4638       }
4639       var note_papan3=notes_papan3[idx_papan3][1];
4640       $('#note_id_papan3').val(idx_papan3);
4641       $('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan3);
4642       $('#msgDelivery').val(note_papan3);
4643       var text_length_papan3=$('#kartu-ucapan-papan').val().length;
4644       var idx_2_papan3=parseInt($('#note_btn_id_papan3').val());
4645       if(isNaN(idx_2_papan3)){
4646         idx_2_papan3=0;
4647       }else{
4648         idx_2_papan3++;
4649         //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length;
4650       }
4651       $('#note_btn_id_papan3').val(idx_2_papan3);
4652       //var note_btn=note_btn_text[idx_2][1];
4653       //$('#note_btn').text(note_btn);
4654     });
4655 
4656     var text_max_papan4=150;
4657     var msg_text_papan4="";
4658     $('#kartu-ucapan-ucapan').keyup(function(){
4659       var text_length_papan4=$('#kartu-ucapan-ucapan').val().length;
4660       var msg_text_papan4=$('#kartu-ucapan-ucapan').val();
4661     });
4662 
4663     $('#show_note_papan4').click(function(event){
4664       var notes_papan4 = [
4665         [0,"Here’s to you—steadier, stronger and better every day."],
4666         [1,"Warmest wishes for a speedy recovery!"],
4667         [2,"Dengan ucapan terhangat, semoga lekas membaik dan semakin pulih setiap harinya ya."],
4668         [3,"Semoga lekas sembuh untuk kembali beraktivitas dan berkarya."]
4669       ];
4670       event.preventDefault();
4671       var idx_papan4=parseInt($('#note_id_papan4').val());
4672       console.log(idx_papan4, 'idx_papan4')
4673       if(isNaN(idx_papan4)){
4674         idx_papan4=0;
4675       }else{
4676         idx_papan4++;
4677         idx_papan4=idx_papan4%notes_papan4.length;
4678       }
4679       var note_papan4=notes_papan4[idx_papan4][1];
4680       $('#note_id_papan4').val(idx_papan4);
4681       $('#kartu-ucapan-papan, #properties-kartu-ucapan, #properties-kartu-pesan').val(note_papan4);
4682       console.log(note_papan4, 'note_papan4')
4683       var text_length_papan4=$('#kartu-ucapan-papan').val().length;
4684       var idx_2_papan4=parseInt($('#note_btn_id_papan4').val());
4685       if(isNaN(idx_2_papan4)){
4686         idx_2_papan4=0;
4687       }else{
4688         idx_2_papan4++;
4689         //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length;
4690       }
4691       $('#note_btn_id_papan4').val(idx_2_papan4);
4692     });
4693 
4694     /*
4695     $("#jenisPapan").change(function(){
4696       $( "select option:selected").each(function(){
4697         if($(this).attr("value")=="Happy Wedding"){
4698           $("#suggest-messages a").hide();
4699           $("#show_note_papan1").show();
4700           $("#kartu-ucapan-papan").val("");
4701         }
4702         if($(this).attr("value")=="Congratulations"){
4703           $("#suggest-messages a").hide();
4704           $("#show_note_papan2").show();
4705           $("#kartu-ucapan-papan").val("");
4706         }
4707         if($(this).attr("value")=="Duka Cita"){
4708           $("#suggest-messages a").hide();
4709           $("#show_note_papan3").show();
4710           $("#kartu-ucapan-papan").val("");
4711         }
4712       });
4713     }).change();
4714     */
4715 
4716     
4717 
4718     
4719 
4720     $(".variant-metafield").each(function(){
4721       const t = $(this)
4722       const id = t.attr("id")
4723       const target = $(`[data-select=${id}]`)
4724       t.on('select2:selecting', function(e) {
4725         const data = e.params.args.data
4726         target.val(data.text)
4727       });
4728     })
4729   })
4730 </script>
4730
4731 
4732 <div id="popupCart">
4733   <div class="container">
4734     <div class="wrapperPopupCart">
4735       <div class="headerPopupCart">
4736         <div class="d-flex pl-5 pr-5 p-4">
4737           <svg xmlns="assets/logo/logonix-anim.gif" width="16" height="12" viewBox="0 0 16 12" fill="none">
4738             <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"/>
4739           </svg>
4740           <span>item added to your cart</span>
4741         </div>
4742         <a class="close-purchase-popup">
4743   <svg xmlns="assets/logo/logonix-anim.gif" width="18" height="18" viewBox="0 0 18 18" fill="none">
4744     <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"/>
4745   </svg>
4746 </a>
4747 
4748       </div>
4749       <div class="contentPopupCart">
4750         <div class="pl-5 pr-5 p-4">
4751           <div class="itemContent row m-0 justify-content-between">
4752             <div class="col-2 align-self-center">
4753               
4754               <img
4755                 class="d-block"
4756                 width="80"
4757                 src="//outerbloom.com/cdn/shop/files/Blossom-Shine-WM_80x.jpg?v=1695788426"
4758               >
4759             </div>
4760             <div class="col-10 align-self-center">
4761               <div class="row pl-3">
4762                 <div class="col-12 col-lg-7">
4763                   <span class="titleCartPopup text-uppercase">NIXTOTO: Toko Merchandise Resmi Soulkeeper Cult & Koleksi Apparel</span>
4764                 </div>
4765                 <div class="d-flex justify-content-end col-12 col-lg-5">
4766                   <span class="deleteCartPopup hide">Delete</span>
4767                   <span class="lineCartPrice align-self-center">Rp 5.000</span>
4768                 </div>
4769               </div>
4770             </div>
4771           </div>
4772           <div class="itemProperties">
4773             
4774               <div class="propDeliver">
4775                 <h4>delivery option detail</h4>
4776                 <p>
4777                   <span>delivery city</span>
4778                   <span class="propDeliveryCity">jakarta</span>
4779                 </p>
4780                 <p>
4781                   <span>delivery date</span>
4782                   <span class="propDeliveryDate">24/03/2025</span>
4783                 </p>
4784                 <p>
4785                   <span>delivery time</span>
4786                   <span class="propDeliveryTime">Afternoon | 13:00 - 18:00</span>
4787                 </p>
4788               </div>
4789               <div class="propAddress">
4790                 <h4>delivery option detail</h4>
4791                 <p>
4792                   <span>RECIPIENT NAME</span>
4793                   <span class="propDeliveryName">jane doe</span>
4794                 </p>
4795                 <p>
4796                   <span>delivery address</span>
4797                   <span class="propDeliveryAddress"
4798                     >Jl. Gatot Subroto No. 25, RT.2/RW.4, Kuningan Barat, Kecamatan Mampang Prapatan, Kota Jakarta
4799                     Selatan, Daerah Khusus Ibukota Jakarta 12710, Indonesia</span
4800                   >
4801                 </p>
4802                 <p>
4803                   <span>recipient phone number</span>
4804                   <span class="propDeliveryPhone">(+62) 812-3456-7890</span>
4805                 </p>
4806                 <p>
4807                   <span>PROVINCE</span>
4808                   <span class="propDeliveryProv">Jakarta</span>
4809                 </p>
4810                 <p>
4811                   <span>postal code</span>
4812                   <span class="propDeliveryZip">12710</span>
4813                 </p>
4814                 
4815                 
4816               </div>
4817             
4818           </div>
4819           <div class="itemAddonCart">
4820             <div class="toggleAddonCart d-flex justify-content-between">
4821               <h4>add-ons (0)</h4>
4822               <svg xmlns="assets/logo/logonix-anim.gif" width="5" height="9" viewBox="0 0 5 9" fill="none">
4823                 <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"/>
4824               </svg>
4825             </div>
4826             <div class="wrapperItemAddonCart"></div>
4827           </div>
4828           
4829         </div>
4830       </div>
4831       <div class="footerPopupCart">
4832         <div class="row m-0 pl-5 pr-5 p-4">
4833           <a class="btn btnViewCart w-100 text-uppercase text-center" href="/cart">View Cart</a>
4834           <a class="btn btnViewCheckout w-100 text-uppercase text-center" href="/checkout"><span>Checkout</span></a>
4835           <a class="btnContinueShopping w-100 text-center" href="/">Continue shopping</a>
4836         </div>
4837       </div>
4838     </div>
4839   </div>
4840 </div>
4841 
4842 
4843 
4843<script>
4844   const shareButton = document.getElementById('shareButton');
4845 
4846   shareButton.addEventListener('click', () => {
4847     if (navigator.share) {
4848       navigator.share({
4849         title: "NIXTOTO: Toko Merchandise Resmi Soulkeeper Cult & Koleksi Apparel",
4850         url: "/products/blossom-shine",
4851         text: 'Check out this page!'
4852       })
4853       .then(() => console.log('Successful share'))
4854       .catch((error) => console.log('Error sharing', error));
4855     } else {
4856       alert('Web Share API is not supported in this browser.');
4857     }
4858   });
4859 
4860   // Inventory validation function
4861   function checkInventoryStatus() {
4862     const productSelect = document.getElementById('productSelect');
4863     const purchaseButton = document.querySelector('#personalizeBtn button');
4864     
4865     if (!productSelect || !purchaseButton) return;
4866 
4867     const selectedVariantId = productSelect.value;
4868     
4869     // Get variant data from Shopify
4870     fetch(`/products/blossom-shine.js`)
4871       .then(response => response.json())
4872       .then(product => {
4873         const selectedVariant = product.variants.find(variant => variant.id == selectedVariantId);
4874         
4875         if (selectedVariant) {
4876           const isOutOfStock = selectedVariant.inventory_quantity <= 0 && 
4877                                selectedVariant.inventory_management === 'shopify' && 
4878                                selectedVariant.inventory_policy !== 'continue';
4879           
4880           if (isOutOfStock) {
4881             purchaseButton.disabled = true;
4882             purchaseButton.textContent = 'Out of Stock';
4883             purchaseButton.setAttribute('data-out-of-stock', 'true');
4884             purchaseButton.style.backgroundColor = '#cccccc';
4885             purchaseButton.style.cursor = 'not-allowed';
4886           } else {
4887             // Check if button was disabled due to other conditions
4888             
4889             
4890             
4891             
4892             
4893             
4894             
4895             
4896             const isOtherDisabled = false || true || false;
4897             
4898             if (!isOtherDisabled) {
4899               purchaseButton.disabled = false;
4900               purchaseButton.textContent = 'customize your flower board';
4901               purchaseButton.removeAttribute('data-out-of-stock');
4902               purchaseButton.style.backgroundColor = '';
4903               purchaseButton.style.cursor = '';
4904             }
4905           }
4906         }
4907       })
4908       .catch(error => {
4909         console.error('Error checking inventory:', error);
4910       });
4911   }
4912 
4913   // Check inventory on page load
4914   document.addEventListener('DOMContentLoaded', function() {
4915     checkInventoryStatus();
4916     
4917     // Listen for variant changes
4918     const productSelect = document.getElementById('productSelect');
4919     if (productSelect) {
4920       productSelect.addEventListener('change', checkInventoryStatus);
4921     }
4922   });
4923 
4924   // Prevent form submission if out of stock
4925   document.addEventListener('click', function(e) {
4926     if (e.target.matches('button[data-out-of-stock="true"]')) {
4927       e.preventDefault();
4928       e.stopPropagation();
4929       alert('This product is currently out of stock and cannot be purchased.');
4930       return false;
4931     }
4932   });
4933 </script>
4933
4934 
4935 
4936   
4937 </div>
4938 
4939           </div>
4940         </div>
4941       </div>
4942     </div>
4943     <div id="product-bottom">
4944       
4945           <div class="container">
4946             
4947 
4948 
4949 
4950 
4951     <div class="short-desc-mobile d-block d-lg-none mb-3">
4952         <div class="short-desc">
4953             <ul>
4954 <li><strong>Temukan merchandise resmi Soulkeeper Cult hanya di NIXTOTO. Dapatkan koleksi apparel original, t-shirt, hoodie, dan rilisan fisik eksklusif dengan transaksi aman.</strong></li>
4955         </div>
4956         <label class="more-mobile">Show More →</label>
4957     </div>
4958 
4959 <style>
4960 .animated-title {
4961     text-align: center;
4962     font-weight: bold;
4963     color: #079c02;
4964     font-size: 28px;
4965     position: relative;
4966     animation: glow 2s infinite alternate, moveUpDown 3s infinite;
4967 }
4968 
4969 /* Efek glow / bercahaya hijau */
4970 @keyframes glow {
4971     0% { text-shadow: 0 0 5px #079c02; color: #079c02; }
4972     50% { text-shadow: 0 0 20px #00ff55; color: #12d12b; }
4973     100% { text-shadow: 0 0 10px #1bff00; color: #079c02; }
4974 }
4975 
4976 /* Efek gerakan naik turun */
4977 @keyframes moveUpDown {
4978     0% { transform: translateY(0px); }
4979     50% { transform: translateY(-5px); }
4980     100% { transform: translateY(0px); }
4981 }
4982 </style>
4983 
4984 
4984<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/shopify-cartjs/1.1.0/cart.min.js"></script>
4984
4985 
4985<script>
4986   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});
4987 
4988   const productType = $("[data-product-type]").data("product-type")
4989   const productDate = Date.parse(new Date())
4990   
4991   const shop = 'outerbloom1.myshopify.com'
4992   const host = 'https://app.asmaraku.com'
4993   // const host = 'http://localhost:5001'
4994 
4995   const gsheet = "https://script.google.com/macros/s/AKfycbyqa6mPD6lVjU6hiHr12J8URZ2aJBGyxBsGQ0QtEIDari-rBk_9vSOITjSSmUXL1NwxEg/exec"
4996   
4997   const qrID = "041025" + randomString(4, 'aAbCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ')
4998 
4999   $("#properties-time").val(new Date().getTime())
5000 
5001   const isIOS = /iPhone|iPad|iPod/i.test(navigator.userAgent);
5002 
5003   if(!isIOS) {
5004     $("#full-date").attr("type", "button")
5005   }
5006 
5007   let dateTime = new Date();
5008   let today = dateTime.getDate();
5009   let day = dateTime.getDay();
5010   let hour = dateTime.getHours();
5011   let min = dateTime.getMinutes();
5012   let timeOfDay = hour + (min / 100);
5013 
5014   async function getFetch(url) {
5015     const response = await fetch(url);
5016     let status = false
5017     let result
5018     if(response.ok) {
5019       status = true
5020       result = await response.json();
5021     }
5022     return {
5023       status,
5024       data: result
5025     }
5026   }
5027 
5028   
5029 
5030   function setCookie(cname, cvalue, exMins) {
5031     var d = new Date();
5032     d.setTime(d.getTime() + (exMins*60*1000));
5033     var expires = "expires="+d.toUTCString();  
5034     document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
5035   }
5036 
5037   function getCookie(cname) {
5038     let name = cname + "=";
5039     let decodedCookie = decodeURIComponent(document.cookie);
5040     let ca = decodedCookie.split(';');
5041     for(let i = 0; i <ca.length; i++) {
5042       let c = ca[i];
5043       while (c.charAt(0) == ' ') {
5044         c = c.substring(1);
5045       }
5046       if (c.indexOf(name) == 0) {
5047         return c.substring(name.length, c.length);
5048       }
5049     }
5050     return "";
5051   }
5052 
5053   async function renderDate() {
5054     let dataDate = await getFetch(`${host}/api/shipping/date?domain=${shop}&productId=8144957800663&v=${Date.now()}`);
5055     console.log(dataDate, 'renderDate')
5056     const data = dataDate?.data
5057     const date = data.date
5058     const time = data.time
5059 
5060     console.log(date, 'DATE')
5061 
5062     const weekday = ["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];
5063     const monthly = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];
5064     const htmlDate = []
5065     for(let i = 0;i < date.length;i++) {
5066       const full = date[i].date
5067       const d = new Date(date[i].date);
5068       const day = weekday[d.getDay()];
5069       const dt = d.getDate();
5070       const mt = monthly[d.getMonth()];
5071       const yr = d.getFullYear();
5072       const isDate = Boolean(date[i].isEnabled)
5073       const cutoffpagi = date[i].cutoff?.pagi
5074       const cutoffsiang = date[i].cutoff?.siang
5075       const cutoffMalam = date[i].cutoff?.Malam
5076       var html = `
5077         <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'}>
5078           ${dt === today ?
5079             `Today<span>${dt < 10 ? '0' + dt : dt}</span>` :
5080             `${day}<span>${dt < 10 ? '0' + dt : dt}</span>`
5081           }
5082         </button>
5083       `
5084       htmlDate.push(html)
5085     }
5086     const htmlTime = []
5087     for(var i = 0;i < time.length;i++) {
5088       const timeText = time[i].text
5089       const timeTime = time[i].time
5090       const timeEnabled = time[i].isEnabled
5091       var html = `
5092           <button class="time-single calendarbutton2 btn steps-btn" data-time="${timeText}" ${timeEnabled ? '' : 'disabled'}>${timeText}<br/>${timeTime}</button>
5093         `
5094       htmlTime.push(html)
5095     }
5096     const deliveryDate = document.getElementById("deliveryDate");
5097     if(deliveryDate) {
5098       deliveryDate.insertAdjacentHTML("afterbegin", htmlDate.join(''))
5099       $("#deliveryTime").html(htmlTime)
5100       if(productType !== '') {
5101         console.log("clarity event " + productType + ' calendaring')
5102         window.clarity("event", `${productType} calendaringSchedule`)
5103         // window.clarity("set", productType, `calendaringSchedule - ${productDate}`)
5104       }
5105     }
5106   }
5107 
5108   async function getProvince(city) {
5109     let { data: { province } } = await getFetch(`${host}/api/shipping/address/province?city=${city}`);
5110     console.log(province, 'province')
5111     $("#province").val(province)
5112   }
5113 
5114   async function renderAddress() {
5115     let current
5116     if(getCookie("location_delivery")){
5117       current = getCookie("location_delivery").charAt(0).toUpperCase() + getCookie("location_delivery").slice(1)
5118     }
5119     let address = await getFetch(`${host}/api/shipping/address?domain=${shop}&productId=8144957800663`);
5120     console.log(address)
5121     const data = address?.data?.city
5122     const htmlAddress = []
5123     const grouping = []
5124     for(let i = 0;i < data?.length;i++) {
5125       if(data[i]){
5126         if(data[i]?.group) {
5127           grouping.push(data[i].group)
5128         }
5129         const price = rupiah.format(data[i]?.rate)
5130         let promo = '(Promo Free Delivery)'
5131         if(data[i]?.name === 'Jakarta - PickUp ASHTA'){
5132           promo = '(at SCBD, Ashta)'
5133         } else if(data[i]?.name === 'Jakarta - PickUp ITC'){
5134           promo = '(at Kuningan, ITC Kuningan)'
5135         } else if(data[i]?.name === 'BSD - PickUp'){
5136           promo = '(at Goldfinch Gading Serpong)'
5137         } else if(data[i]?.name === 'Kota Lainnya'){
5138           promo = ''
5139         }
5140         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>`)
5141       }
5142     }
5143     
5144     const deliveryCity = document.getElementById("cities");
5145     if(deliveryCity) {
5146       deliveryCity.insertAdjacentHTML("beforeend", htmlAddress.join(''))
5147       if(!isIOS) {
5148         $(deliveryCity).select2();
5149       }
5150     }
5151   }
5152 
5153   async function renderZip(v, v2, v3) {
5154     const deliveryZip = document.getElementById("zip");
5155     if(v === '') {
5156       return
5157     }
5158     let dataZip = await getFetch(`${host}/api/shipping/address/zip?city=${v}&city2=${v2}&city3=${v3}`);
5159     let zip = dataZip?.data?.zip
5160     console.log(zip)
5161     let htmlZip = []
5162     for(let i = 0; i < zip?.length;i++) {
5163       htmlZip.push(`<option value="${zip[i]?.postalCode} - ${zip[i]?.subdistrict}">${zip[i]?.postalCode} - ${zip[i]?.subdistrict} - ${zip[i]?.city}</option>`)
5164     }
5165     deliveryZip.insertAdjacentHTML("beforeend", htmlZip.join(''))
5166   }
5167 
5168   renderDate()
5169   renderAddress()
5170 
5171   let rupiah = new Intl.NumberFormat('id-ID', {
5172     style: 'currency',
5173     currency: 'IDR',
5174     maximumFractionDigits: 0, 
5175     minimumFractionDigits: 0
5176   });
5177 
5178   async function insertCard(data) {
5179     const response = await fetch(`${host}/api/card/new`, {
5180         method: "POST",
5181         headers: {
5182           'Content-Type': 'application/json',
5183         },
5184         body: data
5185     })
5186     const result = await response.json()
5187     let rowIndex = result?.data?.tableRange.split("Outerbloom!A1:J")[1]
5188     $("#greetingCard").attr("data-index", rowIndex)
5189     return result
5190   }
5191     
5192   async function updateCard(data){
5193     const rowIndex = $("#greetingCard").data("index")
5194     const response = await fetch(`${host}/api/card/update?rowIndex=${rowIndex}`, {
5195         method: "PUT",
5196         headers: {
5197           'Content-Type': 'application/json',
5198         },
5199         body: data
5200     })
5201     return response
5202   }
5203     
5204   function bytesToSize(bytes) {
5205     var sizes = ['b', 'kb', 'mb', 'gb', 'tb', 'p'];
5206     for (var i = 0; i < sizes.length; i++) {
5207       if (bytes <= 1024) {
5208         return bytes + ' ' + sizes[i];
5209       } else {
5210         bytes = parseFloat(bytes / 1024).toFixed(2)
5211       }
5212     }
5213     return bytes + ' P';
5214   }
5215 
5216   async function uploadMedia(uri, type) {
5217     nameq = $("#properties-nama-penerima").val()
5218     dear = $("#properties-kartu-nama-penerima").val()
5219     card = $("[data-properties=ucapan]").val()
5220     sender = $("#properties-kartu-nama-pengirim").val()
5221     photo = $("#properties-photo").val()
5222     video = $("#properties-video").val()
5223     status = "Product"
5224         
5225     const name = qrID
5226     let formData = new FormData(); 
5227     formData.append("file", uri);
5228     const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, {
5229       method: "POST", 
5230       body: formData
5231     })
5232     const result = await response.json();
5233     if(result) {
5234       const url = result.url
5235       if(type === 'image/jpeg') {
5236         $("#properties-photo").val(url)
5237         $(".preview-image").show()
5238         $(".remove-image").show()
5239         photo = url
5240       } else {
5241         $("#properties-video").val(url)
5242         $("#label-input-video span").text("Change File")
5243         $(".case-qrcode-preview p").text("Scan here for a secret message")
5244         $(".remove-media").show()
5245         $("#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>`)
5246         $("[for=input-video]").hide()
5247         video = url
5248       }
5249       $(".case-video-preview").show()
5250       $(".steps-card-preview").removeClass("loading")
5251       // updateCard(nameq, dear, card, sender, photo, video, status)
5252 
5253       $(".nextBtn").attr("disabled", false)
5254     }
5255   }
5256 
5257   function randomString(length, chars) {
5258     var result = '';
5259     for (var i = length; i > 0; --i) result += chars[Math.round(Math.random() * (chars.length - 1))];
5260     return result;
5261   }
5262 
5263   function getNoteCity(fulldate) {
5264     const h_1 = new Date(new Date().setDate(new Date().getDate() + 1))
5265     const weekday = ["Min","Sen","Sel","Rab","Kam","Jum","Sab"];
5266     const monthly = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];
5267     const d = new Date(h_1);
5268     const day = weekday[d.getDay()];
5269     const dt = d.getDate();
5270     const mt = monthly[d.getMonth()];
5271     const yr = d.getFullYear();
5272     const p = $("#cities").parent(".form-group")
5273   }
5274 
5275   function disabledSameDay() {
5276     let btnFirst = $("#deliveryDate").find("button:first-child")
5277     let getDay = new Date().getDay();
5278 
5279     
5280       
5281       if(getDay == 1 || getDay == 2 || getDay == 3 || getDay == 4 || getDay == 5){
5282         if(hour >= 14.00){
5283           btnFirst.attr("disabled", true)
5284         }
5285       } else if(getDay == 6){
5286         if(hour >= 16.00){
5287           btnFirst.attr("disabled", true)
5288         }
5289       } else if(getDay == 0){
5290         if(hour >= 16.00){
5291           btnFirst.attr("disabled", true)
5292         }
5293       }
5294       
5295     
5296   }
5297 
5298   function disabledays(date) {
5299     let ymd = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate();
5300     //if u have to disable a list of day
5301     let removeDays
5302     
5303     
5304     
5305         removeDays = ["2025-2-13", "2025-2-14"];
5306     
5307     if ($.inArray(ymd, removeDays) >= 0) {
5308       return [false];
5309     } else {
5310       let day = date.getDay();
5311       if(day == 0 && date.getDate() == 13 && date.getMonth() == 1){
5312           return [(day == 0),  ''];
5313       }
5314       
5315       if(day == 0){
5316         return [(day == 0),  ''];
5317       }
5318       
5319       
5320       return [(day != 0),  ''];
5321     }
5322   }
5323 
5324   /* Indonesian initialisation for the jQuery UI date picker plugin. */
5325   /* Written by Deden Fathurahman ([email protected]). */
5326   ( function( factory ) {
5327     if ( typeof define === "function" && define.amd ) {
5328 
5329       // AMD. Register as an anonymous module.
5330       define( [ "../widgets/datepicker" ], factory );
5331     } else {
5332 
5333       // Browser globals
5334       factory( jQuery.datepicker );
5335     }
5336   }( function( datepicker ) {
5337 
5338   datepicker.regional.id = {
5339     closeText: "Tutup",
5340     prevText: "&#x3C;mundur",
5341     nextText: "maju&#x3E;",
5342     currentText: "Today",
5343     monthNames: [ "January","February","March","April","May","Juny",
5344                   "July","August","September","October","November","December" ],
5345     monthNamesShort: [ "Jan","Feb","Mar","Apr","May","Jun",
5346                       "Jul","Agu","Sep","Oct","Nov","Dec" ],
5347     dayNames: [ "Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu" ],
5348     dayNamesShort: [ "Sun","Mon","Tue","Wed","Thu","Fri","Sat" ],
5349     dayNamesMin: [ "Mg","Sn","Sl","Rb","Km","jm","Sb" ],
5350     weekHeader: "Mg",
5351     dateFormat: "D, dd M",
5352     firstDay: 0,
5353     isRTL: false,
5354     showMonthAfterYear: false,
5355     yearSuffix: "" };
5356   datepicker.setDefaults( datepicker.regional.id );
5357 
5358   return datepicker.regional.id;
5359 
5360 } ) );
5361 
5362   function loadPopup() {
5363     $("#backgroundPopup").fadeIn("slow");
5364     $(".purchasePopup:not(.purchasePopupSpotify)").fadeIn("slow");
5365     const firstSection = $(".purchasePopup:not(.purchasePopupSpotify) .sectionPurchase").first()
5366     if(firstSection.hasClass("purchasePersonalize")) {
5367       if(productType !== '') {
5368         console.log("clarity event " + productType + ' personalize')
5369         window.clarity("event", `${productType} cardPersonalization`)
5370         // window.clarity("set", productType, `cardPersonalization - ${productDate}`)
5371       }
5372     } else if (firstSection.hasClass("sectionPurchaseBoard")) {
5373         console.log("clarity event " + productType + ' personalizeBoard')
5374         window.clarity("event", `${productType} personalizeBoard`)
5375         // window.clarity("set", productType, `personalizeBoard - ${productDate}`)
5376     }
5377     firstSection.removeClass("hide")
5378     
5379     // Auto-trigger addon loading when addon section becomes visible
5380     setTimeout(function() {
5381       const addonSection = $(".purchaseAddon")
5382       if(addonSection.length > 0 && !addonSection.hasClass("hide")) {
5383         if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) {
5384           $("[data-addon=upsell-all]").trigger("click")
5385         }
5386       }
5387     }, 200)
5388   }
5389 
5390   function disablePopup() {
5391     $("#backgroundPopup").fadeOut("slow");
5392     $(".purchasePopup").fadeOut("slow");
5393     $("#popupCart").fadeOut("slow");
5394   }
5395 
5396     function scrollTo(parent, div, dur) {
5397       $(parent).animate({
5398         scrollTop: $(div).offset().top
5399       }, dur);
5400     }
5401 
5402   function loadPopupPersonalize() {
5403     const div = "#purchaseProduct"
5404     const p = "html, body, .product-meta"
5405     $("p.error").remove()
5406     loadItemOccasion($("[data-occassion]").eq(0), "greeting-card-all")
5407     const isCity = $("#cities[required]")
5408     const isDate = $("#propDeliveryDate[required]")
5409     const isTime = $("#propDeliveryTime[required]")
5410     // loadPopup()
5411     if(isCity.val() !== '' && isDate.val() !== '' && isTime.val() !== '') {
5412       loadPopup()
5413     }
5414     if(isCity.val() == '') {
5415       isCity.parent(".row").append("<p class='error'>Choose delivery city</p>")
5416       scrollTo(p, div, 500)
5417     }
5418     if(isDate.val() == '') {
5419       isDate.parents(".row").append("<p class='error'>Choose delivery date</p>")
5420       scrollTo(p, div, 500)
5421     }
5422     if(isTime.val() == '') {
5423       isTime.parents(".row").append("<p class='error'>Choose delivery time</p>")
5424       scrollTo(p, div, 500)
5425     }
5426   }
5427 
5428   function quantityCounter() {
5429     $(document).on("click", ".item-card.selected .q_up", function () {
5430       var C = $(this).attr("data-id"),
5431           S =
5432               parseInt(
5433                   $(this)
5434                       .siblings(".quantity-cart-" + C)
5435                       .val()
5436               ) + 1;
5437       $(this).attr("data-quantity", S),
5438           $(this)
5439               .siblings(".quantity-cart-" + C)
5440               .val(S);
5441     }),
5442     $(document).on("click", ".item-card.selected .q_down", function () {
5443         var C = $(this).attr("data-id"),
5444             S = parseInt(
5445                 $(this)
5446                     .siblings(".quantity-cart-" + C)
5447                     .val()
5448             );
5449         0 < S && $(this).attr("data-quantity", S - 1),
5450             0 < S &&
5451                 $(this)
5452                     .siblings(".quantity-cart-" + C)
5453                     .val(S - 1);
5454     });
5455   }
5456 
5457   quantityCounter()
5458 
5459   const itemAddon = $(".item-card").length
5460   const nofree = $(".nofree").length
5461 
5462   const upsell = ''
5463   
5464   if(nofree === itemAddon) {
5465       // $("#itemAddons").html("<p>No Items available</p>")
5466   }
5467 
5468   $("#itemAddons .item-card").each(function(e){
5469       $("#itemAddons").attr("data-length", e)
5470   })
5471 
5472   $("[data-addon]").click(function(){
5473       
5474       
5475       
5476       const t = $(this)
5477       
5478       const data = t.data("addon")
5479       
5480       $("[data-addon]").removeClass("selected")
5481       t.addClass("selected")
5482       $.get(`https://outerbloom.com/collections/${data}/products.json`, function(data, status){
5483           const products = data.products
5484           const html = []
5485           for(let i = 0; i < products.length; i++) {
5486               const id = products[i].id
5487               const variantId = products[i].variants[0].id
5488               const img = products[i].images[0].src
5489               let img2 = img.split('.jpg')[0]
5490               const title = products[i].title
5491               const price = products[i].variants[0].price
5492               const tags = products[i].tags
5493               const qty = products[i].variants[0].available
5494               let type_upsell = ''
5495               if(tags.includes('upsell-item-standing')) {
5496                   type_upsell = 'standing'
5497               }
5498               console.log(type_upsell)
5499               if(type_upsell !== '') {
5500                   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}">
5501                       
5502                           <div class="card-image">
5503                               <img src="${img2}_150x.jpg" alt="${title}" width="" height="" />
5504                           </div>
5505                           <div class="card-meta">
5506                               <h5>${title}</h5>
5507                               <p>${price < 1 ? 'FREE' : rupiah.format(price)}</p>
5508                               <input id="card-${variantId}" type="hidden" name="" value="${variantId}">
5509                           </div>
5510                           <div class="card-qty">
5511                               <a data-quantity="1" type="submit" id="q_down-${variantId}" class="btn-qty-min q_down drawer-cart" data-id="${variantId}"><svg xmlns="assets/logo/logonix-anim.gif" width="12" height="2" viewBox="0 0 12 2" fill="none"><path d="M0 1.90869V0.908691H12V1.90869H0Z" fill="black"/></svg></a>  
5512                               <input maxlength="3" min="0" class="btn-qty text-center quantity-cart-${variantId}
5512" value="0" data-price=${price} name="quantity">
5513                               <a data-quantity="1" type="submit" class="btn-qty-plus q_up text-green drawer-cart" data-id="${variantId}"><svg xmlns="assets/logo/logonix-anim.gif" width="12" height="13" viewBox="0 0 12 13" fill="none">
5514 <path d="M0 6.87023V5.94715H5.53846V0.408691H6.46154V5.94715H12V6.87023H6.46154V12.4087H5.53846V6.87023H0Z" fill="black"/>
5515 </svg></a>   
5516                           </div>
5517                       </div>`
5518                   html.push(body)
5519               }
5520           }
5521           $("#itemAddons .row").html(html.length === 0 ? '<p>No Item available</p>' : html)
5522           $("#itemAddons").attr("data-length", products.length)
5523           // $('#itemAddons')[0].swiper.update();
5524       });
5525   })
5526 
5527   async function isAddon(){
5528     let ids = []
5529     $("#itemAddons .item-card.selected").each(function(i, e){
5530       const id = $(this).data("id")
5531       ids.push(id)
5532     })
5533     console.log(ids)
5534     return ids
5535   }
5536   
5537   $("#itemAddons").delegate(".item-card > div:not(.card-qty)", "click", async function(){
5538     const t = $(this).parent()
5539     const id = t.data("id")
5540     const btn =  t.parents(".purchaseAddon").find(".next-purchase-button")
5541     t.toggleClass("selected");
5542     //$(this).next("input").toggleAttr('name', 'id[]');
5543     if (t.hasClass('selected')) {
5544         t.find("input").val(1)
5545         t.find("input").attr('name', 'id[]');
5546     } else {
5547         t.find("input").val(0)
5548         t.find("input").removeAttr('name');
5549     }
5550     $("#properties-addons").val(addons)
5551     const is = await isAddon()
5552     if(is.length === 0) {
5553       btn.text("continue without add-ons")
5554       return
5555     }
5556     if(is.includes(8835692069079)) {
5557       btn.text("personalize acrylic frame")
5558     } else {
5559       btn.text("Continue")
5560     }
5561       
5562   })
5563 
5564   async function myAddon(data) {
5565     const c = $(".addonsPurchase .addons")
5566     let items = []
5567     
5568     const spotifyAddons = $(".spotifyAddons").find("[data-index]")
5569     // if(spotifyAddons.length > 0) {
5570     //   $(spotifyAddons).each(function(i, e){
5571     //     const spotifyLink = $(this).find(".spotifyLink").val()
5572     //     const spotifySong = $(this).find(".spotifySong").val()
5573     //     const spotifyArtist = $(this).find(".spotifyArtist").val()
5574     //     const spotifyFotoAddon = $(this).find(".resultPhotoSpotify").val()
5575     //     if(spotifyLink !== '') {
5576     //       spotifyAddon = `<div class="addon-item" data-id="46067682607319" data-qty="1">
5577     //         <div class="addon-itm-img">
5578     //           <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"/>
5579     //         </div>
5580     //         <div class="addon-itm-title">
5581     //           <span>[US] Outerbloom Acrylic Frame 4R</span>
5582     //         </div>
5583     //         <div class="addon-itm-line-total">
5584     //           <span>Rp 99.000</span>
5585     //         </div>
5586     //       </div>
5587     //       <div class="propsAddonSpotify row m-0">
5588     //         <div class="col-12 col-lg-2"></div>
5589     //           <div class="col-12 col-lg-10">
5590     //             <p>
5591     //               <span>spotify link</span>
5592     //               <span class="spotifyLinkAddon">${spotifyLink}</span>
5593     //             </p>
5594     //             <p>
5595     //               <span>uploaded photo</span>
5596     //               <span class="spotifyFotoAddon">${spotifyFotoAddon}</span>
5597     //             </p>
5598     //             <p>
5599     //               <span>song / playlist name</span>
5600     //               <span class="spotifySongAddon">${spotifySong}</span>
5601     //             </p>
5602     //             <p>
5603     //               <span>artist name</span>
5604     //               <span class="spotifyArtistAddon">${spotifyArtist}</span>
5605     //             </p>
5606     //           </div>
5607     //       </div>`
5608     //       items.push(spotifyAddon)
5609     //     }
5610     //   })
5611     // }
5612     for(let i = 0; i < data.length; i++) {
5613       if(data[i].title !== '[US] Outerbloom Acrylic Frame 4R' ) {
5614         const img = data[i].image
5615         const title = data[i].title
5616         const qty = data[i].qty
5617         const price = data[i].price
5618         const total = Number(qty) * Number(price)
5619         let addons = `<div class="addon-item" data-id="${data[i].id}" data-qty="${qty}">
5620               <div class="addon-itm-img">
5621                 <img src="${img}" alt="" width="70"/>
5622               </div>
5623               <div class="addon-itm-title">
5624                 <span>${title}</span>
5625               </div>
5626               <div class="addon-itm-line-price">
5627                 <span>${rupiah.format(price)}</span>
5628                 ${data[i].title == '[US] Outerbloom Acrylic Frame 4R' ? '' : `<span>x${qty}</span>`}
5629               </div>
5630               <div class="addon-itm-line-total">
5631                 <span>${rupiah.format(total)}</span>
5632               </div>
5633             </div>`
5634           items.push(addons)
5635       }
5636     }
5637     c.html(items)
5638     const parent = $(".purchaseAddon")
5639     const next = parent.next(".sectionPurchase")
5640     parent.addClass("hide")
5641     next.removeClass("hide")
5642     // if(items2.length === 0) return $("#popupCart").addClass("no-addon-cart")
5643     // $(".itemAddonCart").find("h4").text(`add-ons (${items2.length})`)
5644   }
5645 
5646   async function listAddon() {
5647     const data = $("#itemAddons").find(".selected")
5648     let ids = []
5649     $(data).each(function(){
5650       const id = $(this).data("variant")
5651       const image = $(this).find(".card-image img").attr("src")
5652       const title = $(this).find(".card-meta h5").text()
5653       const qty = $(this).find(".card-qty input").val()
5654       const price = $(this).find(".card-qty input").data("price")
5655       ids.push({
5656         id: Number(id),
5657         image,
5658         title,
5659         qty,
5660         price
5661       })
5662     })
5663     myAddon(ids)
5664   }
5665 
5666   async function customSpotify(idx, length, type){
5667     let isCard = false
5668     
5669     let p = $(".purchasePopupSpotify")
5670     const preLink = $(".spotifyLinkFirst").val()
5671     $("[data-index]").hide()
5672     p.find(".headerPurchase h3").text(`personalize spotify photo print${length > 1 ? ` - ${idx}` : ''}`)
5673     p.find(".regulerAddons, .purchase-button").hide()
5674     p.find(".spotifyAddons").show()
5675     
5676     const data = await trackUrl(preLink)
5677     
5678     const html = `<div class="row" data-index=${idx} data-length=${length}><div class="col-12 col-lg-6"><div class="form-vertical position-relative"><div class="form-group mb-4"><h4>upload photo</h4><div class=uploadResult><label class=btn for=uploadPhotoSpotify><svg xmlns="assets/logo/logonix-anim.gif" width="13" height="11" viewB
5678ox="0 0 13 11" fill="none">
5679 <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"/>
5680 </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=assets/logo/logonix-anim.gif><path d="M14.5799 7.41992L2.32992 7.41992L7.57992 12.6699L6.91992 13.4199L0.419922 6.91992L6.91992 0.419922L7.57992 1.16992L2.32992 6.41992L14.5799 6.41992V7.41992Z"fill=black /></svg> <span>Back</span></button><button data-type="${isCard ? 'card' : ''}" ${isCard ? '' : 'id=addtocart-card'} class="text-uppercase btn w-100${type == 'addon' && idx == length ? ' finished' : ' no-addon'}" disabled>${isCard ? 'Continue Personalizing' : 'add to cart'}</button></div></div></div><div class="col-12 col-lg-6 columnRight"><div class=frame-spotify><div class=frameImage><div class=frameImageUploaded><svg xmlns="assets/logo/logonix-anim.gif" width="13" height="11" viewB
5680ox="0 0 13 11" fill="none">
5681 <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"/>
5682 </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>`
5683     // console.log(html)
5684     
5685     $(".spotifyAddons").append(html)
5686     
5687     $(`[data-index=${idx}]`).show()
5688     
5689     if (preLink !== '') {
5690       $(".btn-action .btn").attr("disabled", false)
5691     } else {
5692       $(".btn-action .btn").attr("disabled", true)
5693     }
5694 
5695     return html
5696     
5697   }
5698 
5699   $(".spotifyLinkFirst").keyup(async function(){
5700     const v = $(this).val()
5701     if(v.includes('spotify:user:spotify')) {
5702       const correct = v.split('user:spotify:')[1]
5703       console.log(correct, 'BNER')
5704       $(this).val(correct)
5705       return
5706     }
5707     if(v.includes("spotify:") || v.includes("https://open.spotify.com/")){
5708       const data = await trackUrl(v)
5709       if(!data || !data.status) {
5710         $(this).parent().addClass("error")
5711         // $(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>`)
5712         $("#personalizeBtnSpotify .btn").attr("disabled", true)
5713         return
5714       }
5715       $(this).parent().removeClass("error")
5716       // $(this).parent().remove("txt-error")
5717       $("#personalizeBtnSpotify .btn").attr("disabled", false)
5718     } else {
5719       $("#personalizeBtnSpotify .btn").attr("disabled", true)
5720     }
5721   })
5722 
5723   $(".purchaseAddon").delegate(".next-addon", "click", function(){
5724     const parent = $(this).parents(".purchaseAddon")
5725     const next = parent.next(".sectionPurchase")
5726     if(next.hasClass("purchaseAddress")) {
5727       if(productType !== '') {
5728         console.log("clarity event " + productType + ' purchaseDelivery')
5729         window.clarity("event", `${productType} purchaseDelivery`)
5730         // window.clarity("set", productType, `purchaseDelivery - ${productDate}`)
5731       }
5732     }
5733     const data = $("#itemAddons").find(".selected")
5734     const length = $(".quantity-cart-46067682607319").val()
5735     const checked = data.length;
5736     if(checked > 0) {
5737       if(length > 0) {
5738         $(".purchaseAddon").addClass("purchaseAddonSpotify")
5739         customSpotify(1, length, 'addon')
5740       } else {
5741         listAddon()
5742       }
5743     } else {
5744       parent.addClass("hide")
5745       next.removeClass("hide")
5746     }
5747   })
5748 
5749   $("#personalizeBtnSpotify .btn").click(async function(){
5750     const isCity = $("#cities[required]")
5751     const isDate = $("#propDeliveryDate[required]")
5752     if((isDate.length > 0 && isCity.length > 0) && (isCity.val() === '' || isDate.val() === '')) {
5753       alert('Please choose Delivery City & Delivery Date')
5754       return
5755     }
5756     const data = await customSpotify(1, 1, 'product')
5757     if(data) {
5758       $("#backgroundPopup").fadeIn("slow");
5759       $(".purchasePopupSpotify").fadeIn("slow");
5760 
5761       if(productType !== '') {
5762         console.log("clarity event " + productType + ' spotify')
5763         window.clarity("event", `${productType} spotify`)
5764         // window.clarity("set", productType, `purchaseDelivery - ${productDate}`)
5765       }
5766     }
5767   })
5768 
5769   function formatBytes(bytes, decimals = 2) {
5770     if (!+bytes) return '0 Bytes'
5771 
5772     const k = 1024
5773     const dm = decimals < 0 ? 0 : decimals
5774     const sizes = ['B', 'KB', 'MB']
5775 
5776     const i = Math.floor(Math.log(bytes) / Math.log(k))
5777 
5778     return `${parseFloat((bytes / Math.pow(k, i)).toFixed(dm))} ${sizes[i]}`
5779   }
5780 
5781   async function trackUrl(link){
5782     try {
5783       let trackId = link.split('/').pop().split('?')[0];
5784       let type = ''
5785       if(link.includes("spotify:")) {
5786         const uri = link.split('spotify:')[1]
5787         trackId = uri.split(':')[1]
5788         type = uri.split(':')[0] + 's'
5789       } else {
5790         if(link.match('track')){
5791           type = 'tracks'
5792         } else if(link.match('playlist')) {
5793           type = 'playlists'
5794         } else if(link.match('artist')) {
5795           type = 'artists'
5796         } else if(link.match('album')) {
5797           type = 'albums'
5798         }
5799       }
5800       console.log(`${host}/api/spotify/${type}/${trackId}`)
5801       const data = await getFetch(`${host}/api/spotify/${type}/${trackId}`)
5802       console.log(data, 'DATA')
5803       const song = data?.data?.name
5804       const artist = data?.data?.artist
5805       return {
5806         song, artist, type, trackId, status: data.status
5807       }
5808     } catch(err) {
5809       console.log(err)
5810     }
5811   }
5812 
5813   $(".spotifyAddons").delegate(".uploadPhotoSpotify", "change", async function(){
5814     const parent = $(this).parents("[data-index]")
5815     const preview = parent.find(".previewImage")
5816     const file = $(this)[0].files[0];
5817     if (file) {
5818         const reader = new FileReader();
5819         reader.onload = async function(e) {
5820           parent.find(".uploadResult label").hide()
5821           parent.find(".uploadedResult").remove()
5822           parent.find(".uploadResult").append(`<div class="uploadedResult d-flex" style="justify-content: space-between">
5823           <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>
5824           <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;">
5824<svg fill="none" height="11" viewBox="0 0 10 11" width="10" xmlns="assets/logo/logonix-anim.gif">
5825   <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 />
5826 </svg>
5827 </span></div></div>`)
5828           parent.find(".frameImageUploaded svg").hide()
5829           parent.find(".frameImage").addClass("uploaded")
5830           preview.attr("src", e.target.result);
5831           preview.show();
5832           let formData = new FormData(); 
5833           formData.append("file", file);
5834           const response = await fetch(`${host}/api/upload?name=${file.name}&type=image/jpeg&r=${Date.parse(new Date)}`, {
5835             method: "POST", 
5836             body: formData
5837           })
5838           const result = await response.json();
5839           if(result){
5840             parent.find(".resultPhotoSpotify").val(result.url)
5841           }
5842         }
5843         
5844         reader.readAsDataURL(file);
5845     } else {
5846         preview.hide();
5847     }
5848   });
5849 
5850   $(".spotifyAddons").delegate(".uploadResult", "click", function(){
5851     $(this).next("input[type=file]").trigger("click")
5852   })
5853 
5854   $(".spotifyAddons").delegate(".changeUpload", "click", function(){
5855     $(this).parents("input[type=file]").trigger("click")
5856   })
5857 
5858   $(".spotifyAddons").delegate(".removeUpload", "click", function(){
5859     const parent = $(this).parents("[data-index]")
5860     parent.find(".uploadPhotoSpotify").val("")
5861     parent.find(".uploadResult label").show()
5862     parent.find(".uploadedResult").remove()
5863     parent.find(".frameImageUploaded svg").show()
5864     parent.find(".previewImage").hide()
5865     parent.find(".frameImage").removeClass("uploaded")
5866   })
5867 
5868   $(".spotifyAddons").delegate("label.checkbox", "click", function(){
5869     const parent = $(this).parents("[data-index]")
5870     parent.toggleClass("checked")
5871   })
5872 
5873   $(".spotifyAddons").delegate(".spotifyLink", "change", async function(){
5874     const parent = $(this).parents("[data-index]")
5875     const link = $(this).val()
5876     const data = await trackUrl(link)
5877 
5878     console.log(data)
5879 
5880     if(data.song) {
5881       parent.find(".spotifySong").val(data.song)
5882       parent.find(".spotifyData").find("h3").text(data.song)
5883     }
5884     if(data.artist) {
5885       parent.find(".spotifyArtist").val(data.artist)
5886       parent.find(".spotifyData").find("p").text(data.artist)
5887     }
5888     parent.find(".spotifyCode img").attr("src", `https://scannables.scdn.co/uri/plain/png/FFFFFF/black/640/spotify:${data.type.slice(0, -1)}:${data.trackId}`)
5889     // https://scannables.scdn.co/uri/plain/png/FFFFFF/black/640/spotify:track:1er51HCEBhIAtoEemKuC3M
5890     if (data.status === true) {
5891       parent.find(".btn-action .btn").attr("disabled", false)
5892     } else {
5893       parent.find(".btn-action .btn").attr("disabled", true)
5894     }
5895   })
5896   
5897   $(".spotifyAddons").delegate(".spotifySong", "keyup", async function(){
5898     const parent = $(this).parents("[data-index]")
5899     const v = $(this).val()
5900     parent.find(".spotifyData h3").text(v)
5901   })
5902 
5903   $(".spotifyAddons").delegate(".spotifyArtist", "keyup", async function(){
5904     const parent = $(this).parents("[data-index]")
5905     const v = $(this).val()
5906     parent.find(".spotifyData p").text(v)
5907   })
5908 
5909   $(".spotifyAddons").delegate(".btn-action .btn:not(.no-addon)", "click", async function(){
5910     const parent = $(this).parents("[data-index]")
5911     const length = parent.data("length")
5912     const index = parent.data("index")
5913     const indexNext = Number(index) + 1
5914     customSpotify(indexNext, length, 'addon')
5915   })
5916 
5917   
5918   $(".spotifyAddons").delegate(".btn-action .btn.finished", "click", async function(){
5919     const parent = $(this).parents(".purchaseAddon")
5920     const next = parent.next(".sectionPurchase")
5921     parent.addClass("hide")
5922     next.removeClass("hide")
5923     next.find(".purchase-button").show()
5924     listAddon()
5925   })
5926 
5927   $(".spotifyAddons").delegate(".back-spotify", "click", async function(){
5928     const t = $(this).parents("[data-index]")
5929     const parent = $(this).parents(".sectionPurchase")
5930     const current = t.data("index")
5931     const prevCurrent = Number(current) - 1
5932     if(current == 1) {
5933       parent.removeClass("purchaseAddonSpotify")
5934       parent.find(".purchase-button").show()
5935       parent.find(".headerPurchase h3").text("Make It More Special with Add-Ons!")
5936       $(".spotifyAddons").empty()
5937       $(".regulerAddons").show()
5938       return
5939     }
5940     t.hide()
5941     t.prev("[data-index]").show()
5942     t.remove()
5943     parent.find(".headerPurchase h3").text(`personalize spotify photo print - ${prevCurrent}`)
5944   })
5945 
5946   $("#personalizeBtn .btn").click(async function() {
5947     loadPopupPersonalize()
5948   });
5949 
5950   $(".sectionPurchaseSpotify").delegate(".btn[data-type=card]", "click", function(){
5951     $(".sectionPurchaseSpotify").hide()
5952     loadPopupPersonalize()
5953   })
5954 
5955   $(".close-purchase-popup").click(function() {
5956       disablePopup();
5957   });
5958   $("#backgroundPopup").click(function() {
5959       // disablePopup();
5960   });
5961 
5962   $("#popupCart .close-purchase-popup").click(function() {
5963       location.reload()
5964   });
5965 
5966   $('#popupCart').on('hide.bs.modal', function (e) {
5967     location.reload()
5968   })
5969 
5970   $(".next-card").click(function(){
5971     const parent = $(this).parents(".sectionPurchase")
5972     const next = parent.next(".sectionPurchase")
5973     parent.addClass("hide")
5974     next.removeClass("hide")
5975   })
5976 
5977   $(".back-purchase-button").click(function(){
5978     const parent = $(this).parents(".sectionPurchase")
5979     const prev = parent.prev(".sectionPurchase")
5980     parent.addClass("hide")
5981     prev.removeClass("hide")
5982   })
5983   
5984   $(document).keypress(function(e) {
5985       if (e.keyCode == 27 && popupStatus == 1) {
5986           disablePopup();
5987       }
5988   });
5989   
5990   const parentImg = $(".case-img-preview")
5991   const parentVid = $(".case-video-preview")
5992   
5993   function readURL(input) {
5994     if (input.files && input.files[0]) {
5995       let reader = new FileReader();
5996 
5997       let type = 'image/jpeg'
5998       const size = input.files[0].size
5999       if(input.files[0].type.match('video/')){
6000         type = 'video/mp4'
6001         if(size > 15728640) {
6002           alert('File size exceeds maximum limit 15 MB')
6003           return
6004         }
6005       } else {
6006         if(size > 5242880) {
6007           alert('File size exceeds maximum limit 5 MB')
6008           return
6009         }
6010       }
6011 
6012       reader.onload = function (e) {
6013         $(".nextBtn").attr("disabled", true)
6014         if(type === 'image/jpeg') {
6015           
6016             $('.placeholder-image').hide();
6017             $('.preview-image').show()
6018             $('.preview-image').attr('src', e.target.result);
6019           
6020         } else {
6021           // parentVid.find(".ajax-loader").show();
6022           $(".steps-card-preview").addClass("loading")
6023         }
6024       }
6025 
6026       
6027 
6028       reader.readAsDataURL(input.files[0]);
6029     }
6030   }
6031 
6032   async function readURLPapan(input) {
6033     if (input.files && input.files[0]) {
6034       let reader = new FileReader();
6035 
6036       reader.onload = function (e) {
6037         $('.btn-upload-papan').siblings('label').hide();
6038         $('.btn-upload-papan img').attr('src', e.target.result);
6039         $('.btn-upload-papan img').show();
6040         $('.svgLogoPapan').hide();
6041       }
6042       
6043       const type = 'image/jpeg'
6044       const name = `logo-8144957800663-${Date.parse(new Date())}`
6045 
6046       let formData = new FormData(); 
6047       formData.append("file", input.files[0]);
6048       const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, {
6049         method: "POST", 
6050         body: formData
6051       })
6052       const result = await response.json();
6053       if(result) {
6054         const url = result.url
6055         $("[data-properties=papan-logo]").val(url)
6056       }
6057 
6058       reader.readAsDataURL(input.files[0]);
6059     }
6060   }
6061 
6062   async function readURLAddress(input) {
6063     console.log(input, 'readURLAddress')
6064     if (input.files && input.files[0]) {
6065       let reader = new FileReader();
6066 
6067       reader.onload = function (e) {
6068         $('.photo-address').attr('src', e.target.result);
6069         $('.photo-address').show();
6070       }
6071       
6072       const type = 'image/jpeg'
6073       const name = input.files[0].name?.split('.')[0]
6074 
6075       let formData = new FormData(); 
6076       formData.append("file", input.files[0]);
6077       const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, {
6078         method: "POST", 
6079         body: formData
6080       })
6081       const result = await response.json();
6082 
6083       reader.readAsDataURL(input.files[0]);
6084 
6085       return result
6086     }
6087   }
6088 
6089   
6090 
6091   
6092   async function addToCartUang() {
6093     var productAddOnId1 = 42122101162199;
6094     var productAddOnId2 = 42122101194967;
6095     var product_id = 8144957800663
6096     const data = {
6097       items: [
6098           {
6099               quantity: $("#Quantity-" + productAddOnId1).val(),
6100               id: productAddOnId1,
6101               "properties": { "Time": $("#properties-time").val() }
6102           },
6103           {
6104               quantity: $("#Quantity-" + productAddOnId2).val(),
6105               id: productAddOnId2,
6106               "properties": { "Time": $("#properties-time").val() }
6107           }
6108       ]
6109     }
6110     await fetch(window.Shopify.routes.root + 'cart/add.js', {
6111       method: 'POST',
6112       headers: {
6113         'Content-Type': 'application/json'
6114       },
6115       body: JSON.stringify(data)
6116     })
6117     .then(response => {
6118       console.error('Sukses Buket Uang:', response);
6119       $(".form-flower").submit()
6120     })
6121     .catch((error) => {
6122       console.error('Error Buket Uang:', error);
6123       $(".form-flower").submit()
6124     });
6125   }
6126   
6127   async function saveCard(){
6128     let isCard = true
6129     const kartu_penerima = $("[data-properties=penerima]").val() !== '' ? $("[data-properties=penerima]").val() : ''
6130     const kartu_pengirim = $("[data-properties=pengirim]").val() !== '' ? $("[data-properties=pengirim]").val() : ''
6131     const kartu_ucapan = $("[data-properties=ucapan]").val() !== '' ? $("[data-properties=ucapan]").val() : ''
6132     const foto = $("#properties-photo").val()
6133     const video = $("#properties-video").val()
6134     const data = JSON.stringify({
6135       "id": qrID, 
6136       "penerima": $("#properties-nama-penerima").val(), 
6137       "kartu_penerima": kartu_penerima, 
6138       "kartu_ucapan": kartu_ucapan, 
6139       "kartu_pengirim": kartu_pengirim, 
6140       "foto": foto,
6141       "video": video, 
6142       "productId": "8144957800663", 
6143       "order_name": "", 
6144       "status": "Cart"
6145     })
6146 
6147     
6148   }
6149 
6150   async function additem(items){
6151     try {
6152       let formData = items
6153       if(items?.length) {
6154         formData = {
6155            'items': items
6156         };
6157       }
6158   
6159       const add = await fetch(window.Shopify.routes.root + 'cart/add.js', {
6160         method: 'POST',
6161         headers: {
6162           'Content-Type': 'application/json',
6163           'X-Requested-With':'xmlhttprequest' /* XMLHttpRequest is ok too, it's case insensitive */
6164         },
6165         body: JSON.stringify(formData)
6166       })
6167   
6168       const data = await add.json();
6169       return data
6170     } catch(err){
6171       console.log('Error additem', err)
6172     }
6173   }
6174 
6175   async function addons(){
6176     let items = []
6177     $(".addon-item").each(function(){
6178       const p = $(this)
6179       const props = p.next(".propsAddonSpotify")
6180       const id = $(this).data("id")
6181       const quantity = $(this).data("qty")
6182       const propId = $("#properties-time").val()
6183       let properties = {}
6184       if(id === 46067682607319) {
6185         const link = props.find(".spotifyLinkAddon").text()
6186         const photo = props.find(".spotifyFotoAddon").text()
6187         const song = props.find(".spotifySongAddon").text()
6188         const artist = props.find(".spotifyArtistAddon").text()
6189         properties = {
6190           id: propId,
6191           "Spotify Link": link !== '' ? link : '-',
6192           "Spotify Photo": photo !== '' ? photo : '-',
6193           "Spotify Song": song !== '' ? song : '-',
6194           "Spotify Artist": artist !== '' ? artist : '-',
6195           type: 'addon'
6196         }
6197       } else {
6198         properties = { 
6199           "id": propId, 
6200           "type": "addon"
6201         }
6202       }
6203       items.push({
6204         id, 
6205         quantity, 
6206         properties
6207       })
6208     })
6209     return items
6210   }
6211 
6212   async function propItems() {
6213     let props = {}
6214     $("[data-properties]").each(function(e){
6215       let elementType = this.tagName;
6216       const k = $(this).data("properties")
6217       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') {
6218         const v = elementType === 'SELECT' ? $(this).find(":selected").val() : $(this).val();
6219         if(v !== '') {
6220           props[k] = v?.replace(/[\s\n]/g, '');
6221         }
6222       }
6223     })
6224     return props
6225   }
6226 
6227   async function showPopupCart(items){
6228     if(productType !== '') {
6229       console.log("clarity event " + productType + ' completeOrder')
6230       window.clarity("event", `${productType} completeOrder`)
6231       // window.clarity("set", productType, `completeOrder - ${productDate}`)
6232     }
6233     $("#popupCart").show()
6234     
6235       $(".propDeliveryCity").text($("#cities").val())
6236       $(".propDeliveryDate").text($("#propDeliveryDate").val())
6237       $(".propDeliveryTime").text($("#propDeliveryTime").val())
6238       $(".propDeliveryName").text($("[data-properties=nama-penerima]").val())
6239       $(".propDeliveryAddress").text($("[data-properties=alamat-penerima]").val())
6240       $(".propDeliveryPhone").text($("[data-properties=telepon-penerima]").val())
6241       $(".propDeliveryProv").text($("#province").val())
6242       $(".propDeliveryZip").text($("#zip").val())
6243       
6244     
6245 
6246     const addons = []
6247     if(items && items.length > 0) {
6248       for(let i = 1; i < items.length; i++) {
6249         const spotifyLink = items[i].properties['Spotify Link']
6250         const spotifyPhoto = items[i].properties['Spotify Photo']
6251         const spotifySong = items[i].properties['Spotify Song']
6252         const spotifyArtist = items[i].properties['Spotify Artist']
6253         const price = items[i].price / 100
6254         const props = spotifyLink ? `<div class="propsAddonCart row m-0">
6255                   <div class="col-12 col-lg-2"></div>
6256                   <div class="col-12 col-lg-10">
6257                     <p>
6258                       <span>spotify link</span>
6259                       <span>${spotifyLink}</span>
6260                     </p>
6261                     <p>
6262                       <span>Upload Photo</span>
6263                       <span>${spotifyPhoto}</span>
6264                     </p>
6265                     <p>
6266                       <span>song / playlist name</span>
6267                       <span>${spotifySong}</span>
6268                     </p>
6269                     <p>
6270                       <span>artist name</span>
6271                       <span>${spotifyArtist}</span>
6272                     </p>
6273                   </div>
6274                 </div>` : '';
6275         addons.push(`<div class="row m-0">
6276                   <div class="imgAddonCart col-2">
6277                     <img
6278                       width="43"
6279                       src="${items[i].image}"
6280                       alt=""
6281                     >
6282                   </div>
6283                   <div class="imgAddonTitlePrice col-10 align-self-center">
6284                     <div class="row justify-content-between m-0">
6285                       <div class="col-12 col-lg-8">
6286                         <h5>${items[i].title}</h5>
6287                       </div>
6288                       <div class="col-12 col-lg-4 text-lg-right">
6289                         <span>${rupiah.format(price)}</span>
6290                       </div>
6291                     </div>
6292                   </div>
6293                 </div>${props}`)
6294       }
6295     }
6296     // console.log(addons)
6297     if(addons.length === 0) {
6298       $(".itemAddonCart").hide()
6299       return
6300     }
6301     $(".toggleAddonCart h4").text(`add-ons (${items.length - 1})`)
6302     $(".wrapperItemAddonCart").html(addons)
6303   }
6304 
6305   const money = (money) => {
6306       return new Intl.NumberFormat('id-ID',
6307           { style: 'currency', currency: 'IDR', minimumFractionDigits: 0 }
6308       ).format(money);
6309   }
6310 
6311   async function showNoteMoney() {
6312     let qty50k = $("[data-properties='Uang 50k']").val()
6313     let qty100k = $("[data-properties='Uang 100k']").val()
6314     const total50k = Number(qty50k) * 50000
6315     const total100k = Number(qty100k) * 100000
6316     const total_all = total50k + total100k
6317     $(".prop50k").html(`<span>${qty50k} Lembar: <strong class="pl-1">${money(total50k)}</strong></span>`)
6318     $(".prop100k").html(`<span>${qty100k} Lembar: <strong class="pl-1">${money(total100k)}</strong></span>`)
6319     $(".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://toko.soulkeepercult.com/" target="_blank" style="text-decoration: underline;
6319 color: #8d3f2d">Customer Service</a> to confirm with proof of payment.</p>`)
6320   }
6321 
6322   async function removeImage() {
6323     const data = JSON.stringify({
6324       "ID": $("#properties-properties-qrId").val(), 
6325       "Kartu Nama Penerima": $("#properties-kartu-nama-penerima").val(), 
6326       "Kartu Nama Pengirim": $("#properties-kartu-nama-pengirim").val(), 
6327       "Kartu Ucapan": $("[data-properties=ucapan]").val(), 
6328       "Nama Penerima": $("#properties-nama-penerima").val(), 
6329       "Order Number":"",
6330       "Status":"Product", 
6331       "Foto": "", 
6332       "Media": $("#properties-video").val(), 
6333       "Image": "8144957800663"
6334     })
6335     const remove = updateCard(data)
6336     if(remove) {
6337       $(this).hide()
6338       $("#properties-photo").val("-")
6339       $(".placeholder-image").show()
6340       $(".preview-image").attr("src", "")
6341     }
6342   }
6343 
6344   async function removeVideo() {
6345     const data = JSON.stringify({
6346       "ID": $("#properties-properties-qrId").val(), 
6347       "Kartu Nama Penerima": $("#properties-kartu-nama-penerima").val(), 
6348       "Kartu Nama Pengirim": $("#properties-kartu-nama-pengirim").val(), 
6349       "Kartu Ucapan": $("[data-properties=ucapan]").val(), 
6350       "Nama Penerima": $("#properties-nama-penerima").val(), 
6351       "Order Number":"",
6352       "Status":"Product", 
6353       "Foto": $("#properties-photo").val(), 
6354       "Media": "", 
6355       "Image": "8144957800663"
6356     })
6357     const remove = updateCard(data)
6358     if(remove) {
6359       $("#properties-video").val("-")
6360       $(this).find("img").hide()
6361       $(this).hide()
6362       $(this).prev("p").text("Add video to make it more special (optional)")
6363       $("#label-input-video").show()
6364       $("#label-input-video span").text("Upload Video")
6365       $(".case-video-preview p span").remove()
6366     }
6367   }
6368 
6369   async function loadItemOccasion(t, occasion) {
6370     const name = occasion?.replace('greeting-card-', '')
6371     $("#kartu-ucapan").val("")
6372     $("[data-occassion]").removeClass("selected")
6373     $("[data-properties=ucapan]").val("")
6374     $("#save-card").attr("disabled", true)
6375     t.addClass("selected")
6376     $("#show_note").attr("data-card-occassion", name)
6377     $.get(`https://outerbloom.com/collections/${occasion}/products.json`, function(data, status){
6378         const products = data.products
6379         const html = []
6380         for(let i = 0; i < products.length; i++) {
6381             const id = products[i].id
6382             const variantId = products[i].variants[0].id
6383             const img = products[i].images[0].src
6384             const title = products[i].title
6385             const price = products[i].variants[0].price
6386             const qty = products[i].variants[0].inventory_quantity
6387             const body = `<div class="item-card${price < 1 ? ' free' : ' nofree'}${i === 0 ? ' selected' : ''}" data-id=${id}>
6388                 <label for="card-${variantId}"></label>
6389                     <div class="card-image">
6390                         <img src="${img}" alt="${title}" width="" height="" />
6391                     </div>
6392                     <div class="card-meta text-center">
6393                         <h5>${title}</h5>
6394                         <p>${price < 1 ? 'FREE' : rupiah.format(price)}</p>
6395                         <input id="card-${variantId}" type="radio" name="id" value="${variantId}" data-price="${price}">
6396                     </div>
6397                 </div>`
6398             html.push(body)
6399         }
6400         const withoutCard = `<div class="item-card item-without-card">
6401                 <label for="card-0"></label>
6402                     <div class="card-image">
6403                         <img src="https://cdn.shopify.com/s/files/1/1589/6833/t/129/assets/without-card.png?v=1747632283" alt="Without card" width="" height="" />
6404                     </div>
6405                     <div class="card-meta text-center">
6406                         <h5>
6406Send without a greeting card</h5>
6407                         <input id="card-0" type="radio" name="id" value="" data-price="">
6408                     </div>
6409                 </div>`
6410         $("#itemCards .items-card").html(html.length === 0 ? '<p>No Item available</p>' : html.join(""))
6411     });
6412   }
6413         
6414   $(document).ready(function(){
6415 
6416     // Observer to auto-trigger addon loading when addon section becomes visible
6417     const addonObserver = new MutationObserver(function(mutations) {
6418       mutations.forEach(function(mutation) {
6419         const target = $(mutation.target)
6420         if(target.hasClass('purchaseAddon') && mutation.type === 'attributes' && mutation.attributeName === 'class') {
6421           if(!target.hasClass('hide')) {
6422             // Addon section just became visible, ensure items are loaded
6423             setTimeout(function() {
6424               if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) {
6425                 console.log("Auto-triggering addon load...")
6426                 $("[data-addon=upsell-all]").trigger("click")
6427               }
6428             }, 150)
6429           }
6430         }
6431       })
6432     })
6433     
6434     // Start observing addon section
6435     const addonSection = document.querySelector('.purchaseAddon')
6436     if(addonSection) {
6437       addonObserver.observe(addonSection, { 
6438         attributes: true, 
6439         attributeFilter: ['class'] 
6440       })
6441     }
6442 
6443     $(".purchasePopup").delegate("#addtocart-card", "click", async function(){
6444     
6445     $(this).find("span").addClass("loading")
6446     let isValid = true
6447     $(".formAddressPurchase [required]").each(function(){
6448       const t = $(this)
6449       const input = t.val()
6450       const p = t.parent()
6451       if(input === '') {
6452         p.addClass("error")
6453         isValid = false
6454       }
6455     })
6456 
6457     if(!isValid) {
6458       $(this).find("span").removeClass("loading")
6459       return
6460     }
6461     
6462     let items = []
6463     const mainProps = {
6464       
6465         "Delivery Date": $("#propDeliveryDate").val(),
6466         "Delivery Time": $("#propDeliveryTime").val() !== '' ? $("#propDeliveryTime").val() : '-' ,
6467         "Kota Pengiriman": $("#cities").val(),
6468         "Nama Penerima": $("[data-properties=nama-penerima]").val() !== '' ? $("[data-properties=nama-penerima]").val() : '-' ,
6469         "Alamat Penerima": $("[data-properties=alamat-penerima]").val() !== '' ? $("[data-properties=alamat-penerima]").val() : '-' ,
6470         "Kodepos": $("#zip").val() !== '' ? $("#zip").val() : '-' ,
6471         "Telepon Penerima": $("[data-properties=telepon-penerima").val() !== '' ? $("[data-properties=telepon-penerima").val() : '-' ,
6472       
6473       
6474         "Papan Nama Penerima": $("[data-properties=penerima]").val() !== '' ? $("[data-properties=penerima]").val() : '-' ,
6475         "Papan Ucapan": $("[data-properties=ucapan]").val() !== '' ? $("[data-properties=ucapan]").val() : '-' ,
6476         "Papan Nama Pengirim": $("[data-properties=pengirim]").val() !== '' ? $("[data-properties=pengirim]").val() : '-' ,
6477         "Papan Logo": $("[data-properties=papan-logo]").val() !== '' ? $("[data-properties=papan-logo]").val() : '-' ,
6478         "Foto Alamat": $("[data-properties=foto-alamat]").val() !== '' ? $("[data-properties=foto-alamat]").val() : '-' ,
6479       
6480       
6481       "Province": $("#province").val() !== '' ? $("#province").val() : '-' ,
6482       "Country": $("#properties-kota-pengiriman-country").val() !== '' ? $("#properties-kota-pengiriman-country").val() : '-' ,
6483       "Shipping": $("#properties-shipping").val() !== '' ? $("#properties-shipping").val() : '-' ,
6484       "Company": $("[data-properties=company]").val() !== '' ? $("[data-properties=company]").val() : '-' ,
6485       "id": $("#properties-time").val() !== '' ? $("#properties-time").val() : '-',
6486       "type": 'product'
6487     }
6488     const props = await propItems()
6489     properties = {...mainProps, ...props };
6490     const id = $("#productSelect").find('option:selected').val()
6491     console.log(id, 'main ID')
6492     const mainItem = {
6493       id: Number(id),
6494       quantity: 1,
6495       properties
6496     }
6497     items.push(mainItem)
6498     const cardId = $("#itemCards").find(".selected input").val()
6499     const cardItem = {
6500       id: Number(cardId),
6501       quantity: 1,
6502       properties: { "id": $("#properties-time").val() !== '' ? $("#properties-time").val() : '-', type: 'card' }
6503     }
6504     console.log(cardId, 'cardId')
6505     if(cardId) {
6506       items.push(cardItem)
6507     }
6508     const addon = await addons()
6509     if(addon) {
6510       for(let i = 0;
6510 i < addon.length; i++){
6511         items.push({
6512           id: addon[i].id,
6513           quantity: addon[i].quantity,
6514           properties: addon[i].properties
6515         })
6516       }
6517     }
6518     const addItems = await additem(items)
6519     console.log(addItems.items, 'add items')
6520     if(addItems) {
6521       $(this).find("span").removeClass("loading")
6522       disablePopup()
6523       showPopupCart(addItems.items)
6524       
6525       localStorage.setItem("items", JSON.stringify(addItems.items))
6526     }
6527   })
6528   
6529   $("#addtocart-cart .btn").click(async function(){
6530     const id = $("#productSelect").find('option:selected').val()
6531     const mainProps = {
6532       id: $("#properties-time").val() !== '' ? $("#properties-time").val() : '-', 
6533       type: 'product'
6534     }
6535     const props = await propItems()
6536     const properties = { ...mainProps, ...props };
6537     const items = {
6538       id: Number(id),
6539       quantity: 1,
6540       properties
6541     }
6542     const addItems = await additem(items)
6543     if(addItems) {
6544       showPopupCart(addItems.items)
6545       localStorage.setItem("items", JSON.stringify(addItems))
6546     }
6547   })
6548 
6549   $(".formAddressPurchase [required]").change(function(){
6550     const t = $(this)
6551     const p = t.parent()
6552     const v = t.val()
6553     if(v !== '') {
6554       p.removeClass("error")
6555     }
6556   })
6557 
6558   $("#save-card").click(async function(){
6559     const parent = $(this).parents(".sectionPurchase")
6560     const next = parent.next(".sectionPurchase")
6561     $(this).find("span").addClass("loading")
6562     const card = await saveCard()
6563     console.log(card, 'ssaveCCC')
6564     if(card?.status === 200 || card?.status === 201) {
6565       $(".scanCard").removeClass("hide")
6566       $(this).find("span").removeClass("loading")
6567       parent.addClass("hide")
6568       next.removeClass("hide")
6569       if(next.hasClass("purchaseAddon")) {
6570         $("[data-addon=upsell-all]").click()
6571         console.log("clarity event addons")
6572         window.clarity("event", `${productType} add-ons`)
6573         // Ensure addon items are loaded when entering addon popup
6574         setTimeout(function() {
6575           if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) {
6576             $("[data-addon=upsell-all]").trigger("click")
6577           }
6578         }, 100)
6579       }
6580       if(next.hasClass("purchaseAddress")) {
6581         $("#zip").select2()
6582       }
6583     }
6584   })
6585 
6586   $("#skip-card").click(async function(){
6587     $("#greetingCard [data-properties]").val("")
6588     $("#properties-photo").val("")
6589     $("#properties-video").val("")
6590     const parent = $(this).parents(".sectionPurchase")
6591     const next = parent.next(".sectionPurchase")
6592     parent.addClass("hide")
6593     next.removeClass("hide")
6594     // $("#itemCards").html("")
6595     removeImage()
6596     removeVideo()
6597     if(next.hasClass("purchaseAddon")) {
6598       $("[data-addon='upsell-all']").click()
6599       console.log("clarity event addons")
6600       window.clarity("event", `${productType} add-ons`)
6601       // Ensure addon items are loaded when entering addon popup
6602       setTimeout(function() {
6603         if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) {
6604           $("[data-addon='upsell-all']").trigger("click")
6605         }
6606       }, 100)
6607     }
6608     if(next.hasClass("purchaseAddress")) {
6609       $("#zip").select2()
6610     }
6611   })
6612 
6613   $("#msgCard").click(async function(){
6614       $(this).parent().addClass("loading")
6615       let occasion = $(".selected[data-occassion]").data("occassion")
6616       occasion = occasion?.replace("greeting-card-", "")
6617       const { data } = await getFetch(`${host}/api/card/template/occasion?name=${occasion}`);
6618       const d = data?.data
6619       for(let i = 0; i < d.length; i++) {
6620         const num = Math.floor(Math.random() * (d.length - 1 + 1) + 1);
6621         const greeting = d[num]?.Greeting
6622         $(".greetingCard textarea").val(greeting)
6623         $(this).parent().removeClass("loading")
6624       }
6625       $("#save-card").attr("disabled", false)
6626     })
6627 
6628   $(".sectionPurchaseBoard .next-purchase-button").click(function(){
6629     const parent = $(this).parents(".sectionPurchase")
6630     const next = parent.next(".sectionPurchase")
6631     parent.addClass("hide")
6632     next.removeClass("hide")
6633   })
6634 
6635   $("#editCard").click(function(){
6636     $(".custom-card").show()
6637     $(".preview-card").hide()
6638   })
6639 
6640   $("#first_name, #last_name").change(function(){
6641     const v = $(this).val()
6642     const first_name = $("#first_name").val()
6643     const last_name = $("#last_name").val() !== '' ? ' ' + $("#last_name").val() : ''
6644     $("[data-properties=nama-penerima]").val(first_name+last_name)
6645   })
6646 
6647   $("[data-occassion]").click(function(){
6648       const t = $(this)
6649       const p = t.parents(".sectionPurchase")
6650       // $(".greetingCard").addClass("disabled")
6651       const occasion = t.data("occassion")
6652       loadItemOccasion(t, occasion)
6653   })
6654 
6655   $("#itemCards").delegate(".item-card:not(.item-without-card) label", "click", function(){
6656       const id = $(this).parent(".item-card").data("id")
6657       const t = $(this).parent(".item-card")
6658       const target = t.find("input")
6659       const v = $('.item-card input[type="radio"]:checked').val();
6660       $("#itemCards .item-card").removeClass("selected")
6661       t.addClass("selected")
6662       $("#itemCards .item-card").find("input").attr("name", "")
6663       if(target.length > 0) {
6664           target.attr("name", "id[]")
6665           $("#properties-card").val(id)
6666           $(".greetingCard").removeClass("disabled")
6667           $("#skip-card").attr("disabled", false)
6668       } else {
6669           $("#properties-card").val("")
6670       }
6671   })
6672 
6673   $("#itemCards").delegate(".item-without-card label", "click", function(){
6674     const parent = $(this).parents(".sectionPurchase")
6675     const next = parent.next(".sectionPurchase")
6676     $(".greetingCard").addClass("disabled")
6677     parent.addClass("hide")
6678     next.removeClass("hide")
6679     $("[data-addon=upsell-all]").click()
6680     $("#zip").select2()
6681   })
6682 
6683   $("[data-properties=ucapan]").keyup(function(){
6684     const v = $(this).val()
6685     const p = $(this).parents(".sectionPurchase")
6686     $(".purchaseAddress").find(".greetingCard textarea").val(v)
6687     if(v.length > 3) {
6688       p.find(".next-purchase-button").attr("disabled", false)
6689     } else {
6690       p.find(".next-purchase-button").attr("disabled", true)
6691     }
6692   })
6693 
6694   $("[data-properties=penerima]").keyup(function(){
6695     const v = $(this).val()
6696     $(".purchaseAddress").find("[data-properties=penerima]").val(v)
6697   })
6698 
6699   $("[data-properties=pengirim]").keyup(function(){
6700     const v = $(this).val()
6701     $(".purchaseAddress").find("[data-properties=pengirim]").val(v)
6702   })
6703 
6704   $(document).click(function(e){
6705 
6706      if($(e.target).closest('.wrapperPopupCart').length != 0) return false;
6707      // $('#popupCart').fadeOut('slow');
6708     // location.reload()
6709   });
6710 
6711   $(".toggleAddonCart").click(function(){
6712     const p = $(this).parent(".itemAddonCart")
6713     p.toggleClass("open")
6714   })
6715 
6716   $(".btnViewCart").click(function(){
6717     window.location.href = "https://outerbloom.com/cart";
6718   })
6719 
6720   $(".btnViewCheckout").click(async function(){
6721     $(this).find("span").addClass("loading")
6722     let zip = $("#zip").val()
6723     const first_name = $("#first_name").val()
6724     const last_name = $("#last_name").val()
6725     const company = $("#company").val() !== '' ? $("#company").val() : ''
6726     const address1 = $("#delivery_address").val()
6727     const address2 = zip && zip !== '' ? zip?.split(' - ')[1] : ''
6728     zip = zip && zip !== '' ? zip?.split(' - ')[0] : ''
6729     const phone = $("#recipient_number").val()
6730     const city = $("#cities").val()
6731     const province = $("#province").val()
6732     const country = 'Indonesia'
6733     const ver = Date.parse(new Date())
6734     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}`
6735 
6736     const clear = await fetch(`/cart/clear.js`, {method: 'POST'})
6737     if(clear.status === 200) {
6738       const savedItem = window.localStorage.getItem("items");
6739       const items = JSON.parse(savedItem)
6740       const addItems = await additem(items)
6741       console.log(addItems, 'new addItems')
6742       if(addItems) {
6743         window.location.href = `https://outerbloom.com/checkout?${params}`;
6744       }
6745     }
6746   })
6747 
6748   $(".btnContinueShopping").click(function(){
6749     window.location.href = "https://outerbloom.com/";
6750   })
6751 
6752     if (isIOS) {
6753       $(".empty-state-card").click(function(){
6754         $("#input-foto").trigger("click")
6755       })
6756       $(".btn-upload-image").click(function(){
6757         $("#input-foto").trigger("click")
6758       })
6759       $("[for=input-video]").click(function(){
6760         $("#input-video").trigger("click")
6761       })
6762       $(".btn-upload-papan").click(function(){
6763         $("#logoPapan").trigger("click")
6764       })
6765     }
6766   
6767     $("[data-properties]").each(function(){
6768       const select = $(this).parents(".form-group").find("select")
6769       $(this).change(function(){
6770         const name = $(this).data("properties")
6771         const v = $(this).val()
6772         if (name == 'telepon-penerima') {
6773           let phone = v.replace(/[^0-9]/g, '')
6774           $(this).val(phone);
6775           $("#properties-telepon-penerima").val(phone)
6776           $('.iti__search-input').val('-') 
6777         } else {
6778           $("#properties-" + name).val(v)
6779         }
6780       })
6781       select.on("change", function(){
6782         const name = $(this).data("properties")
6783         const v = $(this).val()
6784         $("#properties-" + name).val(v)
6785       })
6786     })
6787 
6788     $("#show_note").click(function(){
6789       nameq = $("#properties-nama-penerima").val()
6790       dear = $("#properties-kartu-nama-penerima").val()
6791       card = $("[data-properties=ucapan]").val()
6792       sender = $("#properties-kartu-nama-pengirim").val()
6793       photo = $("#properties-photo").val()
6794       video = $("#properties-video").val()
6795       updateCard(nameq, dear, card, sender, photo, video, status)
6796     })
6797 
6798     $(".remove-image").click(function(e){
6799       e.preventDefault()
6800       $(this).find("img").show()
6801       removeImage()
6802     })
6803 
6804     $(".remove-media").click(function(e){
6805       e.preventDefault()
6806       $(this).find("img").show()
6807       removeVideo()
6808     })
6809 
6810     
6811 
6812     $("[data-delivery_method]").click(function(e){
6813       e.preventDefault()
6814       const t = $(this)
6815       const data = t.data("delivery_method")
6816       $("[data-delivery_method]").removeClass("selected")
6817       t.addClass("selected")
6818       $("#cities").val("")
6819       $("#properties-delivery-date").val("-")
6820       $("#deliveryDate button").removeClass("selected")
6821       $("#full-date").val("Full Calendar ")
6822       $("#propDeliveryDate").val("")
6823       const step3 = $("#step-3")
6824       if(data.match('PickUp')) {
6825         $(".selfpickup-point").show()
6826         step3.find("[data-finished=false]").hide()
6827         $("#panel-4").hide()
6828         step3.find("[data-finished=true]").show()
6829         $("#cities").attr("required", false)
6830         $("#form-group-city").hide()
6831         $("#row-delivery-time").hide()
6832         $("#propDeliveryTime, #properties-delivery-time, #properties-nama-penerima, #properties-alamat-penerima, #properties-kodepos, #properties-kodepos, #properties-telepon-penerima").val("-")
6833         $("#propDeliveryTime").attr("required", false)
6834         // $("#deliveryDate").find("button:first-child").addClass("stop")
6835         $(".form-selfpickup").show()
6836         $(".form-delivery").hide()
6837         $(".form-delivery").find("input, textarea, select").val("")
6838         $(".form-delivery").find("input, textarea, select").attr("required", false)
6839         $("#properties-shipping").val("0")
6840         $("#noteDeliveryDate").hide()
6841         $(".form-delivery .form-control").attr("required", false)
6842         $("#stepNav4").hide()
6843         
6844         $("#deliveryDate").find("button:nth-child(1)").addClass("stop")
6845         
6846
6847         
6848         
6849         if(timeOfDay >= 16.01){
6850           $("#deliveryDate").find("button:nth-child(2)").addClass("stop")
6851         }
6852       } else {
6853         
6854         
6855         $("#deliveryDate").find("button:nth-child(1)").removeClass("stop")
6856         step3.find("[data-finished=false]").show()
6857         $("#panel-4").show()
6858         step3.find("[data-finished=true]").hide()
6859         $("#cities").attr("required", true)
6860         $(".selfpickup-point").hide()
6861         $("#form-group-city").show()
6862         $("#cities").val('').trigger('change');
6863         $("#properties-kota-pengiriman").val("-")
6864         
6865         $("#row-delivery-date, #row-delivery-time").show()
6866         $("#propDeliveryDate, #propDeliveryTime").attr("required", true)
6867         $("#deliveryDate").find("button").removeClass("stop")
6868         $(".form-selfpickup").hide()
6869         $(".form-delivery").show()
6870         $(".form-delivery").find("input, textarea, select").attr("required", true)
6871         $(".form-delivery [data-properties]").attr("readonly", false)
6872         $("#properties-kodepos").val("-")
6873         $("#properties-alamat-penerima").val("-")
6874         $(".form-delivery .form-control").attr("required", true)
6875         $(this).parents(".setup-content").attr("id", "step-1")
6876         
6877         $("#stepNav4").show()
6878       }
6879     })
6880 
6881     $("[name=selfpickup]").click(function(){
6882         const p = $(this).parents(".row-pickup")
6883         const pickupCity = $("input[name='selfpickup']:checked").val();
6884         const pickupAddress = $("input[name='selfpickup']:checked").data("address");
6885         const pickupZip = $("input[name='selfpickup']:checked").data("zip");
6886 
6887         $(".row-pickup").removeClass("selected")
6888         p.addClass("selected")
6889         
6890         $("#properties-kota-pengiriman").val(pickupCity)
6891         $("#province").val("Jakarta")
6892         $("#properties-alamat-penerima").val(pickupAddress)
6893         $("#properties-kodepos").val(pickupZip)
6894     })
6895 
6896     $("#cities").change(function(e){
6897       e.preventDefault()
6898       $(this).parent(".row").find("p.error").remove()
6899       $("#full-date").val("Full Calendar")
6900       $("#deliveryDate, #deliveryDateFull label ").show()
6901       $("#deliveryDateFull").removeClass("filled")
6902       $(".btnChangeDeliveryDate").addClass("hide")
6903       $("#full-date").prop('disabled', false);
6904       $("#stepNav2, #stepNav3, #stepNav4").removeClass("btn-success")
6905       $("#stepNav2, #stepNav3, #stepNav4").find("a").attr("disabled", true)
6906       const step3 = $("#step-3")
6907       $("#cityNote").remove()
6908       $("#noteDeliveryDate").hide()
6909       $("#noteDeliveryDate").empty()
6910       let v = $(this).val()
6911       let v2 = $('option:selected', this).attr('data-city');
6912       let v3 = $('option:selected', this).attr('data-province');
6913       let price = $('option:selected', this).attr('data-price');
6914       $("#country").val(v)
6915       $("#properties-kota-pengiriman").val(v)
6916       $("#properties-shipping").val(price)
6917       $("#deliveryDate button, #deliveryTime button, .calendarseasonal .button").removeClass("selected")
6918       $("#properties-delivery-date, #properties-delivery-time").val("-")
6919       $("#propDeliveryDate, #propDeliveryTime").val("")
6920       let note = $('option:selected', this).attr('data-note');
6921       if(v === 'Kota Lainnya') {
6922         $("#noteDeliveryDate").show()
6923         $("#noteDeliveryDate").text("Order akan segera dikirim. Estimasi tanggal diterima akan disesuaikan dengan waktu pengiriman oleh pihak ekspedisi ke lokasi Anda.")
6924         $("#zip").attr("required", false)
6925         $("#zip").hide()
6926         $("#propDeliveryDate, #propDeliveryTime").attr("required", false)
6927         $("#propDeliveryDate, #properties-delivery-date, #propDeliveryTime, #properties-delivery-time").val("-")
6928         $("#row-delivery-date, #row-delivery-time").hide()
6929         $("#properties-shipping").val("")
6930         // $(this).parents(".setup-content").attr("id", "step-2")
6931         
6932       } else {
6933         $("#noteDeliveryDate").hide()
6934         $("#zip").attr("required", true)
6935         $("#zip").show()
6936         $("#row-delivery-date, #row-delivery-time").show()
6937         $("#propDeliveryDate, #propDeliveryTime").attr("required", true)
6938         $("#deliveryDate").find("button").removeClass("stop")
6939         // $(this).parents(".setup-content").attr("id", "step-1")
6940         
6941       }
6942       
6943       
6944       
6945       // if(v !== 'Jakarta') {
6946       //   $("[data-type=upsell]").hide()
6947       // } else {
6948       //   $("[data-type=upsell]").show()
6949       // }
6950       // $('.collection-addons')[0].swiper.update();
6951       
6952       
6953       getProvince(v)
6954       $("#zip").html(`<option value="">Choose Postal Code</option>`)
6955       renderZip(v, v2, v3)
6956       
6957       disabledSameDay()
6958       
6959 
6960       if(v !== 'Jakarta' && v !== 'Depok' && v !== 'Bekasi' && v !== 'Tangerang') {
6961         
6962         $("#cardOccasion, #navAddon, .collection-addons").hide()
6963         
6964         $("[data-addon=giftcard]").show()
6965         $("[data-addon=giftcard]").click()
6966         $("#itemAddons").show()
6967         $("#flower-step").addClass("nonjadetabek")
6968       } else {
6969         $("#cardOccasion, #navAddon, .collection-addons").show()
6970         $("[data-addon=all]").click()
6971         $("#flower-step").removeClass("nonjadetabek")
6972       }
6973       
6974         if(v !== '') {
6975           $("#personalizeBtn .btn").attr("disabled", false)
6976         } else {
6977           $("#personalizeBtn .btn").attr("disabled", true)
6978         }
6979       
6980     })
6981 
6982     $("#zip").change(function(e){
6983       let v = $(this).val()
6984       var city = $("#cities").find('option:selected');
6985       $("#properties-kodepos").val(v)
6986       if(city === 'Kota Lainnya') {
6987         $(this).attr("required", true)
6988         $("#recipient-address").val("")
6989       }
6990     })
6991 
6992     
6993       var minDate = +7
6994       
6995     
6996 
6997     $("#full-date").datepicker({
6998       minDate,
6999       dateFormat: 'Mdd_yy', //Nop22_2021,
7000       
7001       beforeShowDay: disabledays,
7002       
7003       onSelect: function (date) {
7004         $("#deliveryDate, #deliveryDateFull label ").hide()
7005         $("#deliveryDateFull").addClass("filled")
7006         $(".btnChangeDeliveryDate").removeClass("hide")
7007         $("#full-date").prop('disabled', true);
7008         $('#propDeliveryDate, #properties-delivery-date').val('Kirim_'+date);
7009         $(".date-full").addClass("selected")
7010         $(".date-single, .calendar-group").removeClass("selected")
7011         $("#propDeliveryTime").val('')
7012         $("#properties-delivery-time").val('-')
7013         $(".time-single").removeClass("selected")
7014         
7015         
7016       }
7017     });
7018 
7019     $(".btnChangeDeliveryDate").click(function(){
7020         $("#deliveryDate, #deliveryDateFull label ").show()
7021         $("#deliveryDateFull").removeClass("filled")
7022         $(".btnChangeDeliveryDate").addClass("hide")
7023         $("#full-date").prop('disabled', false);
7024     })
7025   
7026     $("#deliveryDate").delegate(".calendarbutton:not(.date-full)", "click", function(e){
7027       e.preventDefault()
7028       $(this).parents("#row-delivery-date").find("p.error").remove()
7029       const fulldate = $(this).data("fulldate")
7030       const day = $(this).data("day")
7031       const date = $(this).data("date")
7032       const month = $(this).data("month")
7033       const year = $(this).data("year")
7034       const off_pagi = $(this).data("offpagi")
7035       const off_siang = $(this).data("offsiang")
7036       const off_Malam = $(this).data("offMalam")
7037       $(".calendarbutton").removeClass("selected")
7038       $(this).addClass("selected")
7039       $("#propDeliveryDate, #properties-delivery-date").val(`Kirim_${month}${date}_${year}`)
7040       $("#propDeliveryTime").val('')
7041       $("#properties-delivery-time").val('-')
7042       $(".calendarbutton2").removeClass("selected")
7043       $("#full-date").val("Full Calendar")
7044 
7045       
7046       if(off_pagi && timeOfDay > off_pagi) {
7047         $("[data-time=Morning]").attr("disabled", true)
7048       } else {
7049         $("[data-time=Morning]").attr("disabled", false)
7050       }
7051       if(off_siang && timeOfDay > off_siang) {
7052         $("[data-time=Afternoon]").attr("disabled", true)
7053       } else {
7054         $("[data-time=Afternoon]").attr("disabled", false)
7055       }
7056       
7057 
7058       
7059     })
7060     
7061     if(today === 14 && timeOfDay > 17.00) {
7062       $("#deliveryDate button:first-child").attr("disabled", true)
7063     }
7064   
7065     $("#deliveryTime").delegate(".calendarbutton2", "click", function(e){
7066       e.preventDefault()
7067       const time = $(this).data("time")
7068       const date = $("#propDeliveryDate").val()
7069       if(date == '') {
7070         return alert('Silakan pilih tanggal terlebih dahulu')
7071       }
7072       $(".calendarbutton2").removeClass("selected")
7073       $(this).addClass("selected")
7074       $("#propDeliveryTime, #properties-delivery-time").val(`KirimJam_${date.replace('Kirim_','')}_${time}`)
7075     })
7076       
7077     $('textarea.has-limit, input.has-limit').keyup(function () {
7078       max = this.getAttribute("maxlength");
7079       let len = $(this).val().length;
7080       let limit = $(this).siblings(".limit");
7081       if (len > max) {
7082         alert('you have reached the limit');
7083       } else {
7084         limit.text(`${len}/${max}`);
7085       }
7086     });
7087     
7088     $("#button-action-step .btn").click(function(){
7089       $(this).find("span").text("Processing...");
7090     });
7091 
7092     $(".finishBtn").on('click', function() {
7093       $(this).addClass("is-adding");
7094       // $(this).click();
7095     });
7096 
7097     $('.setup-panel .nav-item a.btn-success').trigger('click');
7098 
7099     $("#button-action .btn").click(function(){
7100       $("#flower-step").addClass("block");
7101       $("#button-action").hide();
7102     });
7103         
7104     $(".close-how-order").click(function(){
7105       $("#flower-step").removeClass("block");
7106       $("#button-action").show();
7107     });
7108 
7109     $("#input-foto, #input-video").change(function(e){
7110       readURL(this);
7111     });
7112 
7113     $("#logoPapan").change(function(){
7114       readURLPapan(this);
7115     });
7116 
7117     $("#address-upload").change(async function(){
7118       const upload_address = await readURLAddress(this)
7119       if(upload_address) {
7120         const url = upload_address.url
7121         $(".props-address-upload").val(url)
7122         $(".form-address").addClass("address-uploaded")
7123         $(".form-address-upload").addClass("uploaded")
7124 
7125         $(this).parents(".form-group").siblings(".form-group").find("[required]").attr("required", false)
7126       }
7127     })
7128 
7129     $(".address-manualy").click(function(){
7130       $(".form-address-upload").removeClass("uploaded");
7131       $(".photo-address").hide();
7132       $(".form-address").removeClass("address-uploaded")
7133       $("#formAddressPurchase").find(".form-control").attr("required", true)
7134     });
7135 
7136     $(".case-video-preview").delegate(".replace-video", "click", function(){
7137       $("#input-video").trigger("click")
7138     })
7139 
7140     $('.date-single').click(function(e) {
7141       e.preventDefault();
7142       $('.date-single').removeClass('selected');
7143       $('#full-date').removeClass('selected');
7144       $(this).addClass('selected');
7145       $('#full-date').html('Full' + '<br/>' + 'Calendar');
7146     });
7147     $('#full-date').click(function(e){
7148       e.preventDefault();
7149       $('.date-single').removeClass('selected');
7150       $(this).addClass('selected');
7151     });
7152     
7153     // $("tr").each(function(){
7154     //   if($(this).text().match('SKU')) {
7155     //     $(".sku-product").html($(this).parents("table").html())
7156     //   }
7157     // })
7158     
7159     $("#product-image").scroll(function(){
7160       $(".desc-add").each(function(){
7161         const img = $(this).find("img")
7162         const src = img.data("src")
7163         img.attr("src", src)
7164       })
7165     })
7166 
7167     $(".product-fixed").hide()
7168     
7169     let target = $("#personalizeBtn")
7170     
7171 
7172     $(".product-meta").scroll(function() {
7173         if ($(window).scrollTop() >= target.offset().top ) {
7174             $(".product-fixed").addClass("show")
7175         } else {
7176           $(".product-fixed").removeClass("show")
7177         }
7178     });
7179 
7180     $(window).scroll(function() {
7181         if ($(window).scrollTop() >= target.offset().top ) {
7182             $(".product-fixed").addClass("show")
7183         } else {
7184           $(".product-fixed").removeClass("show")
7185         }
7186     });
7187   });
7188 </script>
7188
7189 
7190   
7190<script>
7191     //
7192   </script>
7192
7193 
7194 
7194<script>
7195   $(document).ready(function(){
7196     $('table tr td').each(function(){
7197       var texto = $(this).text();
7198       var nextto = $(this).next("td");
7199       var sku = $("#data-sku").val()
7200       if(texto == 'SKU'){
7201         nextto.text(sku)
7202       }
7203     });
7204     
7205     $(".stamped-summary-actions-newquestion").text("Tulis Pertanyaan");
7206     $(".stamped-summary-actions-newreview").text("Tulis Review");
7207     $("#tab-questions").text("Pertanyaan");
7208     
7209     $(".freeship .icon").click(function(){
7210       $(".fs-content").slideToggle();
7211       $(this).parents(".freeship").toggleClass("expand");
7212     });
7213     
7214     var $easyzoom = $('.easyzoom').easyZoom();
7215     // Setup thumbnails example
7216     var api1 = $easyzoom.filter('.easyzoom--with-thumbnails').data('easyZoom');
7217     $('.thumbnails').on('click', 'a', function(e) {
7218       var $this = $(this);
7219       e.preventDefault();
7220       // Use EasyZoom's `swap` method
7221       api1.swap($this.data('standard'), $this.attr('href'));
7222     });
7223 
7224     $('#playerID').click(function(){
7225       var videoURL = $('#VdoID').attr('src'),
7226           dataplay = $('#VdoID').attr('data-play');
7227 
7228       //for check autoplay
7229       //if not set autoplay=1
7230       if(dataplay == 0 ){
7231         $('#VdoID').attr('src',videoURL+'?autoplay=1');
7232         $('#VdoID').attr('data-play',1);
7233       }
7234       else{
7235         var videoURL = $('#VdoID').attr('src');
7236         videoURL = videoURL.replace("?autoplay=1", "");
7237         $('#VdoID').prop('src','');
7238         $('#VdoID').prop('src',videoURL);
7239 
7240         $('#VdoID').attr('data-play',0);
7241       }
7242 
7243     });
7244     
7245     $(".product-photo-thumb-video").click(function(e){
7246       e.preventDefault();
7247 
7248       var newEmbed = $(this).attr('href');
7249       $("#featured-image-product").addClass("img-video");
7250       $("#ProductPhotoImg").hide();
7251       $("#featured-image-product .video").show();
7252       $("#featured-image-product iframe").attr('src', newEmbed);
7253       $("#VdoID")[0].src += "&autoplay=1";
7254     });
7255     $(".product-single__thumbnail").click(function(evt){
7256       evt.preventDefault();
7257       $("#featured-image-product").removeClass("img-video");
7258       $("#ProductPhotoImg").show();
7259       $("#featured-image-product .video").hide();
7260       $("#featured-image-product iframe").attr('src', '');
7261     });
7262     
7263     if($('#product-meta .short-desc > div').length >= 1){
7264       //console.log('div detected')
7265       var replacer = $('#product-meta .short-desc > div').contents();
7266       $('#product-meta .short-desc > div').replaceWith(replacer);
7267 
7268       var cAssured =  $('.c-assured').detach();
7269       cAssured.insertAfter('.meta-sds .stock-info');
7270     }
7271 
7272     
7273     
7274     $(".heading-toggle").click(function(){
7275       $(this).parent().toggleClass("open")
7276       
7277     });
7278   });
7279 </script>
7279
7280 
7281 
7282   
7282<script type="application/json" id="ProductJson-Product">
7283         
7284         {"id":8144957800663,"title":"NIXTOTO: Toko Merchandise Resmi Soulkeeper Cult & Koleksi Apparel","handle":"blossom-shine","description":"\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eTemukan merchandise resmi Soulkeeper Cult hanya di NIXTOTO. Dapatkan koleksi apparel original, t-shirt, hoodie, dan rilisan fisik eksklusif dengan transaksi aman."}
7285   </script>
7285
7286   
7287     
7287<script type="application/json" id="VariantJson-Product">
7288       [
7289         
7290           {
7291              "incoming": false,
7292              "next_incoming_date": null
7293           }
7294         
7295       ]
7296     </script>
7296
7297   
7298 
7299 
7300 
7301 </div>
7302 
7303 
7304 
7304<script src="//outerbloom.com/cdn/shopifycloud/storefront/assets/themes_support/option_selection-b017cd28.js" type="text/javascript"></script>
7304
7305 <style>
7306     .stamped-review-header-title,
7307     .stamped-review-header .author,
7308     .stamped-review-content-body,
7309     .stamped-sort-select,
7310     .stamped-review-header .verified-badge[data-type=buyer]:after,
7311     .stamped-review-header-byline,
7312     .stamped-review-reply-body {font-size: 14px!important;font-family: 'Barlow',sans-serif!important;}
7313     .stamped-review {margin-bottom: 0;}
7314     .stamped-review-body {padding-left: 65px;}
7315     .stamped-review:first-child {padding-top: 25px;}
7316     .stamped-review-content {clear: none;}
7317     .stamped-review-reply {margin: 15px 0 0 65px;background: #f2f2f2;border-left: none;}
7318     .stamped-review-reply-body {padding-left: 65px;}
7319     .stamped-review-header .author {text-transform: capitalize;}
7320     .stamped-questions .stamped-review-content {padding-left: 65px;}
7321 
7322     .stamped-pagination {margin: 20px 0 0;}
7323     .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;}
7324     .stamped-pagination li a {color: #121212;padding: 13px 18px;vertical-align: middle;display: block;}
7325     .stamped-pagination li.active a {background-color: #ddd;font-weight: 400;}
7326     .stamped-pagination li:hover a {background: #ddd;}
7327     .stamped-pagination .next {border-right: 1px solid #ccc;}
7328     .stamped-pagination li:first-child {border-top-left-radius: 5px;border-bottom-left-radius: 5px;}
7329     .stamped-pagination li:last-child {border-top-right-radius: 5px;border-bottom-right-radius: 5px;}
7330 
7331     #stamped-pagination-question span.page {display: inline-block;border: 1px solid #ccc;width: 47px;}
7332     #stamped-pagination-question span {font-size: 14px;}
7333     #stamped-pagination-question .page.active {padding: 12px;font-weight: 400;background: #ddd;}
7334     #stamped-pagination-question a, #stamped-pagination-question .page.active {color: #121212;padding: 13px 18px;vertical-align: middle;display: inline-block;}
7335     .stamped-pagination-deco {color: #121212;padding: 13px 18px;width: 47px;vertical-align: middle;display: inline-block;border: 1px solid #ccc;padding: 12px;}
7336     .stamped-pagination-prev, .stamped-pagination-next {position: inherit;}
7337     .stamped-pagination-prev a, .stamped-pagination-next a {width: auto!important;border: 1px solid #ccc;}
7338 
7339     @media (max-width: 480px){
7340       .stamped-review-reply {margin-left: 0!important;}
7341       select.stamped-sort-select {font-size: 13px!important;}
7342     }
7343 
7344   #product-reviews .stamped-summary-ratings, #product-reviews .stamped-summary-actions, .stamped-content {
7345       display: block !important;
7346   }
7347 </style>
7348 
7348<script>
7349     var selectCallback = function(variant, selector) {
7350       timber.productPage({
7351         money_format: "Rp {{amount_no_decimals}}",
7352         variant: variant,
7353         selector: selector
7354       });
7355     };
7356 
7357     jQuery(function($) {
7358       new Shopify.OptionSelectors('productSelect', {
7359         product:
7360 
7361 
7362 
7363 
7364 
7365 {"id":8144957800663,"title":"NIXTOTO: Toko Merchandise Resmi Soulkeeper Cult & Koleksi Apparel","handle":"blossom-shine","description":"\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eTemukan merchandise resmi Soulkeeper Cult hanya di NIXTOTO. Dapatkan koleksi apparel original, t-shirt, hoodie, dan rilisan fisik eksklusif dengan transaksi aman."},
7366         onVariantSelected: selectCallback,
7367         enableHistoryState: true
7368       });
7369 
7370       // Add label if only one product option and it isn't 'Title'. Could be 'Size'.
7371       
7372 
7373       // Hide selectors if we only have 1 variant and its title contains 'Default'.
7374       
7375         $('.selector-wrapper').hide();
7376       
7377     });
7378 </script>
7378
7379 
7380 
7381 
7382   
7382<script type="application/ld+json">
7383     {
7384     "@context": "http://schema.org",
7385     "@type": "Product",
7386 "offers": {
7387 "@type": "Offer",
7388 "availability":"https://schema.org/InStock",
7389 "price": 125500,
7390 "priceValidUntil": "05-10-2025",
7391 "priceCurrency": "IDR",
7392 "url": "https://soulkeepercult.com/"
7393 },
7394 "brand": {
7395 "@type": "Brand",
7396 "name": "Outerbloom Florist"
7397 },
7398 "sku": "8144957800663",
7399 "gtin13": "Jawa",
7400 "name": "NIXTOTO: Toko Merchandise Resmi Soulkeeper Cult & Koleksi Apparel",
7401 "description": "Temukan merchandise resmi Soulkeeper Cult hanya di NIXTOTO. Dapatkan koleksi apparel original, t-shirt, hoodie, dan rilisan fisik eksklusif dengan transaksi aman.",
7402 "category": "Temukan merchandise resmi Soulkeeper Cult hanya di NIXTOTO. Dapatkan koleksi apparel original, t-shirt, hoodie, dan rilisan fisik eksklusif dengan transaksi aman.",
7403 "url": "https://soulkeepercult.com/",
7404 "image": {
7405 "@type": "ImageObject",
7406 "url": "https://soulkeepercult.com/banner/nixtoto-vinly-merchandise-musik.jpeg?v=1695788426",
7407 "image": "https://soulkeepercult.com/banner/nixtoto-vinly-merchandise-musik.jpeg?v=1695788426",
7408 "name": "NIXTOTO: Toko Merchandise Resmi Soulkeeper Cult & Koleksi Apparel",
7409 "width": 1024,
7410 "height": 1024
7411 }
7412     }
7413   </script>
7413
7414 
7415 
7416 
7417 
7418         
7419 
7419<script id="bss-ltap-hide-price" type="text/javascript" >
7420 !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)}))}
7420)),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)}
7420)),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()}
7420if("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)}
7420if(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");
7420c&&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
7420-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");
7420i&&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
7420--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
7420opify.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");
7420e.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=
7420o.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");
7420if(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();
7420let 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()}]);
7421 </script>
7421
7422 
7423       </main>
7424       
7425       <div id="shopify-section-newsletter" class="shopify-section"><br>
7426   <style>
7427     #shopify-section-newsletter {
7428       background: url(#);
7429       background-attachment: fixed;
7430       margin-bottom: 0;
7431     }
7432     input:-webkit-autofill,
7433     input:-webkit-autofill:hover,
7434     input:-webkit-autofill:active,
7435     input:-webkit-autofill:focus {
7436       -webkit-box-shadow:0 0 0 50px white inset;
7437       -webkit-text-fill-color: #ffffff;
7438     }
7439     .section-newsletter {
7440       max-width: 800px;
7441       margin: auto;
7442       padding: 50px 0;
7443     }
7444     .section-newsletter h2 {
7445       font-weight: 700;
7446       font-size: 24px;
7447     }
7448     .section-newsletter input[type="email"] {
7449       width: 100%;
7450       text-align: center;
7451       border: none;
7452       border-bottom: 1px solid #ffffff;
7453       font-size: 16px;
7454       color: #757575;
7455       background-color: #eeeeee;
7456     }
7457     .section-newsletter .row label {
7458       font-size: 14px;
7459       cursor: pointer;
7460     }
7461     .section-newsletter .radio-inline input {
7462       width: auto;
7463     }
7464     .section-newsletter .btn {
7465       width: 130px;
7466       border: 1px solid #ffffff;
7467       box-shadow: none;
7468       font-size: 16px;
7469       font-weight: 500;
7470       text-transform: uppercase;
7471     }
7472     .section-newsletter form {
7473       margin: 30px 0 60px;
7474     }
7475     .section-newsletter input[type="radio"] {
7476       position: absolute;
7477       width: 1px;
7478       height: 1px;
7479     }
7480     .section-newsletter [type="radio"]:checked + label, .section-newsletter [type="radio"]:not(:checked) + label {
7481       position: relative;
7482       padding-left: 28px;
7483       cursor: pointer;
7484       line-height: 20px;
7485       display: inline-block;
7486       color: #666;
7487     }
7488     .section-newsletter [type="radio"]:checked + label:before, .section-newsletter [type="radio"]:not(:checked) + label:before {
7489       content: '';
7490       position: absolute;
7491       left: 0;
7492       top: 0;
7493       width: 18px;
7494       height: 18px;
7495       border: 1px solid #ddd;
7496       border-radius: 100%;
7497       background: #fff;
7498     }
7499     .section-newsletter [type="radio"]:checked + label:after, .section-newsletter [type="radio"]:not(:checked) + label:after {
7500       content: '';
7501       width: 12px;
7502       height: 12px;
7503       background: #ffffff;
7504       position: absolute;
7505       top: 3px;
7506       left: 3px;
7507       border-radius: 100%;
7508       -webkit-transition: all 0.2s ease;
7509       transition: all 0.2s ease;
7510     }
7511     .section-newsletter [type="radio"]:not(:checked) + label:after {
7512       opacity: 0;
7513       -webkit-transform: scale(0);
7514       transform: scale(0);
7515     }
7516     .opt-newsletter {display:none;}
7517     .footer-newsletter p, .footer-newsletter p a {
7518       color: #757575;
7519     }
7520     @media (max-width:991px){
7521       .section-newsletter h2 {
7522         font-size: 32px;
7523       }
7524       .section-newsletter input {
7525         width: 300px;
7526         font-size: 14px;
7527       }
7528       .section-newsletter {
7529         padding: 50px 20px;
7530       }
7531     }
7532     @media (max-width: 480px){
7533       .section-newsletter input[type="email"] {font-size: 16px;}
7534     }
7535   </style>
7536<style>
7537.icon-img-footer {
7538    width: 80px; 
7539    padding: 0px 5px;
7540}
7541
7542@media (min-width: 768px) {
7543    .icon-img-footer {
7544        width: 120px; 
7545    }
7546}
7547
7548@media (min-width: 992px) {
7549    .icon-img-footer {
7550        width: 120px; 
7551    }
7552}
7553
7554.button-login-daftar {
7555    display: grid;
7556    grid-template-columns: repeat(2, 1fr);
7557    font-weight: 700;
7558}
7559
7560.button-login-daftar a {
7561    text-align: center;
7562    text-decoration: none;
7563}
7564
7565.login,
7566.register {
7567    color: #ffffff;
7568    padding: 15px 10px;
7569    font-size: 23px;
7570    text-shadow: 0 0 8px rgba(255, 0, 0, 0.75);
7571}
7572
7573.login,
7574.login-button {
7575    background: linear-gradient(to bottom, #ff0000 0%, #ff0000 50%, #ae0000 100%);
7576    border: 2px solid #eaf6ff;
7577    box-shadow: 0 0 14px rgba(255, 0, 13, 0.65);
7578}
7579
7580.register,
7581.register-button {
7582    background: linear-gradient(to bottom, #ff6666 0%, #ff0000 50%, #ff0000 100%);
7583    border: 2px solid #eaf6ff;
7584    box-shadow: 0 0 14px rgba(255, 0, 0, 0.65);
7585}
7586</style>
7587 
7588 <!-- wp:html -->
7589  
7589<script>
7590         document.addEventListener('DOMContentLoaded',
7591             function(){const faqItems=document.querySelectorAll('.faq-item');
7592             faqItems.forEach(item=>{const question=item.querySelector('.faq-question');
7593             question.addEventListener('click',
7594             ()=>{const isActive=item.classList.contains('active');
7595             faqItems.forEach(otherItem=>{otherItem.classList.remove('active')});
7596             if(!isActive){item.classList.add('active')}})})});
7597         </script>
7597
7598 
7599 
7600             <div class="page__overlay" data-view="offCanvasNavToggle" data-off-canvas="close" bis_skin_checked="1">
7601             </div>
7602<div class="faq-section">
7603  <h2 style="text-align: center;">FAQ TENTANG NIXTOTO</h2>
7604  <div class="faq-container">
7605
7606    <div class="faq-item">
7607      <button class="faq-question">
7608        Apa itu NIXTOTO?
7609        <span></span>
7610      </button>
7611      <div class="faq-answer">
7612        <p>
7613          NIXTOTO adalah platform link login resmi untuk pembelian merchandise dan apparel Soulkeeper Cult. Kami menyediakan akses cepat, tampilan ringan, serta layanan transaksi rilisan fisik terpercaya untuk member setiap hari.
7614        </p>
7615      </div>
7616    </div>
7617
7618    <div class="faq-item">
7619      <button class="faq-question">
7620        Apa keunggulan NIXTOTO sebagai link login resmi?
7621        <span></span>
7622      </button>
7623      <div class="faq-answer">
7624        <p>
7625          NIXTOTO unggul karena menghadirkan proses login yang sangat praktis, akses server stabil, dan menu katalog yang mudah dipahami. Tampilan kami 100% mobile-friendly untuk memudahkan pengalaman belanja lewat smartphone maupun desktop.
7626        </p>
7627      </div>
7628    </div>
7629
7630    <div class="faq-item">
7631      <button class="faq-question">
7632        Apakah NIXTOTO menyediakan apparel dan rilisan eksklusif?
7633        <span></span>
7634      </button>
7635      <div class="faq-answer">
7636        <p>
7637          Ya, NIXTOTO bertindak sebagai distributor resmi yang memberikan informasi katalog terbaru, susunan kategori produk yang rapi, dan sistem pre-order agar member mudah mengikuti update perilisan item setiap hari.
7638        </p>
7639      </div>
7640    </div>
7641
7642    <div class="faq-item">
7643      <button class="faq-question">
7644        Apakah web NIXTOTO bisa diakses lewat HP?
7645        <span></span>
7646      </button>
7647      <div class="faq-answer">
7648        <p>
7649          Tentu saja. NIXTOTO dirancang khusus agar sangat ringan dan responsif diakses lewat HP. Member dapat melakukan login, daftar akun, cek status pesanan, serta memilih item koleksi favorit secara praktis kapan saja.
7650        </p>
7651      </div>
7652    </div>
7653
7654    <div class="faq-item">
7655      <button class="faq-question">
7656        Kenapa banyak kolektor memilih daftar di NIXTOTO?
7657        <span></span>
7658      </button>
7659      <div class="faq-answer">
7660        <p>
7661          Banyak member memilih NIXTOTO karena akses login cepat, jaminan barang 100% original, update stok terbaru, navigasi yang sederhana, dan sistem transaksi yang aman serta nyaman digunakan untuk akses harian.
7662        </p>
7663      </div>
7664    </div>
7665
7666  </div>
7667</div>
7668  </div>
7669
7670 
7671 
7672 
7673 <div class="overlay overlay-cart"></div>
7674 <div id="CartDrawer" class="drawer drawer--right">
7675   <div class="drawer__header pl-2 pr-2">
7676     <div class="drawer__icon-cart display-table-cell">
7677       <a href="/cart" class="">
7678         <svg class="icon icon-cart" version="1.1" xmlns="assets/logo/logonix-anim.gif" width="32" height="32" viewBox="0 0 32 32"> <path fill="#fff" d="M13.638 23.203c0 0 3.5-2.113 3.502-4.11 0.002-2.304-2.689-3.537-3.497-1.76-0.916-1.778-3.493-1.714-3.497 0.59-0.003 1.999 3.491 5.28 3.491 5.28z"></path> <path fill="#fff" d="M8.112 9.809v16.662l11.063 2.491v-17.58l-11.063-1.573zM7.74 8.858l11.925 1.696c0.213 0.030 0.372 0.218 0.372 0.44v18.519c0 0.284-0.254 0.495-0.523 0.434l-11.925-2.685c-0.198-0.045-0.339-0.225-0.339-0.434v-17.53c0-0.27 0.231-0.477 0.49-0.44z"></path> <path fill="#fff" d="M23.7 10.046l-3.275 0.146-0.388 0.897v17.656l3.664-2.174v-16.526zM24.346 27.214l-4.526 2.685c-0.287 0.17-0.646-0.043-0.646-0.385v-18.519l0.037-0.181 0.534-1.235c0.067-0.154 0.212-0.256 0.375-0.263l3.991-0.178c0.245-0.011 0.45 0.191 0.45 0.444v17.247c0 0.159-0.082 0.306-0.216 0.385z"></path> <path fill="#000" d="M20.772 27.081l-0.501 2.383c-0.050 0.24-0.28 0.392-0.512 0.34s-0.38-0.289-0.33-0.528l0.569-2.707v-16.588c0-0.245 0.193-0.444 0.431-0.444s0.431 0.199 0.431 0.444v16.215l3.296 0.189c0.238 0.014 0.42 0.223 0.406 0.468s-0.217 0.433-0.454 0.419l-3.335-0.191z"></path> <path fill="#fff" d="M20.772 27.081l-0.501 2.383c-0.050 0.24-0.28 0.392-0.512 0.34s-0.38-0.289-0.33-0.528l0.569-2.707v-16.588c0-0.245 0.193-0.444 0.431-0.444s0.431 0.199 0.431 0.444v16.215l3.296 0.189c0.238 0.014 0.42 0.223 0.406 0.468s-0.217 0.433-0.454 0.419l-3.335-0.191z"></path> <path fill="#fff" d="M11.336 8.354l-0.257-0.333c-0.243-0.315 0.012-0.774 0.398-0.717l12.51 1.838c0.236 0.035 0.399 0.26 0.366 0.503s-0.252 0.412-0.487 0.377l-11.436-1.68 0.056 0.073c0.209 0.27 0.052 0.672-0.281 0.718l-4.467 0.607c-0.236 0.032-0.452-0.139-0.484-0.383s0.135-0.467 0.371-0.499l3.711-0.504z"></path> <path fill="#fff" d="M17.152 11.344c0.026-0.003 0.053-0.005 0.079-0.005 0.357 0 0.645 0.297 0.645 0.665s-0.288 0.665-0.645 0.665c-0.322 0-0.59-0.245-0.637-0.565-0.383-0.45-0.515-1.321-0.521-2.536-0.003-0.556 0.026-1.149 0.076-1.739 0.028-0.339 0.057-0.603 0.074-0.735 0.195-2.391-2.008-3.379-3.568-1.658-0.64 0.707-1.041 1.855-1.266 3.412-0.092 0.634-0.137 1.111-0.194 2.024 0.107 0.119 0.172 0.278 0.172 0.453 0 0.342-0.251 0.624-0.573 0.661-0.031 0.005-0.064 0.007-0.097 0.005-0.015-0.001-0.029-0.003-0.044-0.
7678005-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>
7679       </a>
7680     </div>
7681     <div class="drawer__title h4">Keranjang Belanja</div>
7682     <div class="drawer__close js-drawer-close">
7683       <button type="button">
7684
7685         <svg class="icon icon-close" version="1.1" xmlns="assets/logo/logonix-anim.gif" width="32" height="32" viewBox="0 0 32 32">
7686 <title>icon-close</title>
7687 <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>
7688 </svg>
7689       </button>
7690     </div>
7691   </div>
7692   <div id="CartContainer" class="p-2"></div>
7693 </div>
7694 
7695 
7695<script>
7696       
7697     </script>
7697
7698       
7698<script src="//outerbloom.com/cdn/shop/t/138/assets/handlebars.min.js?v=79044469952368397291752652415" defer></script>
7698
7699       <!-- /snippets/ajax-cart-template.liquid -->
7700 
7701   
7701<script id="CartTemplate" type="text/template">
7702   
7703     <form action="/cart" method="post" novalidate class="cart ajaxcart">
7704       <div class="ajaxcart__inner" {{ cart.item_count }}>
7705         {{#items}}
7706         <div class="ajaxcart__product">
7707           <div class="ajaxcart__row" data-line="{{line}}">
7708             <div class="grid">
7709               <div class="grid__item one-quarter">
7710                 <a href="{{url}}" class="ajaxcart__product-image"><img src="{{img}}" alt=""></a>
7711               </div>
7712               <div class="grid__item three-quarters">
7713                 <p class="d-block mb-3">
7714                   <a class="h4 d-block mb-2" href="{{url}}" class="ajaxcart__product-name">{{name}}</a>
7715                   {{#if variation}}
7716                     <span class="ajaxcart__product-meta p">{{variation}}</span>
7717                   {{/if}}
7718                   {{#properties}}
7719                     {{#each this}}
7720                       {{#if this}}
7721                         <span class="ajaxcart__product-meta p hide">{{@key}}: {{this}}</span>
7722                       {{/if}}
7723                     {{/each}}
7724                   {{/properties}}
7725                   
7726                 </p>
7727                 <div class="grid--full display-table">
7728                   <div class="grid__item display-table-cell one-half">
7729                     <div class="ajaxcart__qty">
7730                       <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--minus" data-id="{{key}}" data-qty="{{itemMinus}}" data-line="{{line}}">
7731                         <svg version="1.1" xmlns="assets/logo/logonix-anim.gif" width="24" height="24" viewBox="0 0 32 32"><title>icon-minus</title><path d="M6.667 16.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h18.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-18.667z"></path></svg>
7732                         <span class="visually-hidden">Kurangi jumlah barang</span>
7733                       </button>
7734                       <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]*">
7735                       <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--plus" data-id="{{key}}" data-line="{{line}}" data-qty="{{itemAdd}}">
7736                         <svg version="1.1" xmlns="assets/logo/logonix-anim.gif" width="24" height="24" viewBox="0 0 32 32"><title>icon-plus</title><path d="M16.667 15.333h8.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-8.667v8.667c0 0.368-0.298 0.667-0.667 0.667s-0.667-0.298-0.667-0.667v-8.667h-8.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h8.667v-8.667c0-0.368 0.298-0.667 0.667-0.667s0.667 0.298 0.667 0.667v8.667z"></path></svg>
7737                         <span class="visually-hidden">Tambahkan jumlah barang</span>
7738                       </button>
7739                     </div>
7740                   </div>
7741                   <div class="grid__item display-table-cell one-half text-right">
7742                     {{#if discountsApplied}}
7743                       <small class="ajaxcart-item__price-strikethrough"><s>{{{originalLinePrice}}}</s></small>
7744                       <br><span class="h4">{{{linePrice}}}</span>
7745                     {{else}}
7746                       <span class="h4">{{{linePrice}}}</span>
7747                     {{/if}}
7748                     </div>
7749                   </div>
7750                   {{#if discountsApplied}}
7751                     <div class="grid--full display-table">
7752                       <div class="grid__item text-right">
7753                         {{#each discounts}}
7754                           <small class="ajaxcart-item__discount">{{ this.title }}</small><br>
7755                         {{/each}}
7756                       </div>
7757                     </div>
7758                   {{/if}}
7759                   </div>
7760                 </div>
7761               </div>
7762             </div>
7763           </div>
7764         </div>
7765         {{/items}}
7766       </div>
7767       <div class="ajaxcart__footer">
7768         <div class="grid--full cart-subtotal py-2">
7769             <p>Subtotal</p>
7770             <h3 class="primary">{{{totalPrice}}}</h3>
7771           {{#if totalCartDiscount}}
7772             <p class="ajaxcart__savings text-center"><em>{{{totalCartDiscount}}}</em></p>
7773           {{/if}}
7774         </div>
7775         
7776         <a href="/cart" class="btn btn-cta view-more btn-block cart__checkout mt-2">Checkout</a>
7777         
7778         <p class="cart-checkout-shipping hide">Free Ongkir dengan belanja di atas Rp.100.000 <a href="/pages/pengiriman">detail</a></p>
7779       </div>
7780     </form>
7781   
7782   </script>
7782
7783   
7783<script id="AjaxQty" type="text/template">
7784   
7785     <div class="ajaxcart__qty">
7786       <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--minus" data-id="{{key}}" data-qty="{{itemMinus}}">
7787         <svg version="1.1" xmlns="assets/logo/logonix-anim.gif" width="24" height="24" viewBox="0 0 32 32">
7788             <title>icon-minus</title>
7789             <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>
7790         </svg>
7791         <span class="visually-hidden">Kurangi jumlah barang</span>
7792           </button>
7793               <input type="text" class="ajaxcart__qty-num" value="{{itemQty}}" min="0" data-id="{{key}}" aria-label="quantity" pattern="[0-9]*">
7794           <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--plus" data-id="{{key}}" data-qty="{{itemAdd}}">
7795         <svg version="1.1" xmlns="assets/logo/logonix-anim.gif" width="24" height="24" viewBox="0 0 32 32"><title>icon-plus</title><path d="M16.667 15.333h8.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-8.667v8.667c0 0.368-0.298 0.667-0.667 0.667s-0.667-0.298-0.667-0.667v-8.667h-8.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h8.667v-8.667c0-0.368 0.298-0.667 0.667-0.667s0.667 0.298 0.667 0.667v8.667z"></path></svg>
7796         <span class="visually-hidden">Tambahkan jumlah barang</span>
7797       </button>
7798     </div>
7799   
7800   </script>
7800
7801   
7801<script id="JsQty" type="text/template">
7802   
7803     <div class="js-qty mx-auto mt-2">
7804       <button type="button" class="js-qty__adjust js-qty__adjust--minus" data-id="{{key}}" data-qty="{{itemMinus}}">
7805         <svg version="1.1" xmlns="assets/logo/logonix-anim.gif" width="24" height="24" viewBox="0 0 32 32"><title>icon-minus</title><path d="M6.667 16.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h18.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-18.667z"></path></svg>
7806         <span class="visually-hidden">Kurangi jumlah barang</span>
7807       </button>
7808       <input type="text" class="js-qty__num" value="{{itemQty}}" min="1" data-id="{{key}}" aria-label="quantity" pattern="[0-9]*" name="{{inputName}}" id="{{inputId}}">
7809       <button type="button" class="js-qty__adjust js-qty__adjust--plus" data-id="{{key}}" data-qty="{{itemAdd}}">
7810         <svg version="1.1" xmlns="assets/logo/logonix-anim.gif" width="24" height="24" viewBox="0 0 32 32"><title>icon-plus</title><path d="M16.667 15.333h8.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-8.667v8.667c0 0.368-0.298 0.667-0.667 0.667s-0.667-0.298-0.667-0.667v-8.667h-8.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h8.667v-8.667c0-0.368 0.298-0.667 0.667-0.667s0.667 0.298 0.667 0.667v8.667z"></path></svg>
7811         <span class="visually-hidden">Tambahkan jumlah barang</span>
7812       </button>
7813     </div>
7814   
7815   </script>
7815
7816 
7817 <style>
7818   #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty button,
7819   #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty button,
7820   #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty button {display: none;}
7821   #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty input,
7822   #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty input,
7823   #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty input {pointer-events: none;opacity: 0.5;}
7824   #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty input,
7825   #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty input,
7826   #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty input {pointer-events: none;}
7827 </style>
7828       
7828<script src="//outerbloom.com/cdn/shop/t/138/assets/ajax-cart.js?v=5113GmLkaZvKbncgXkNj9hL8cQJCSCjXscK" defer></script>
7828
7829       
7829<script>
7830         jQuery(function($) {
7831           ajaxCart.init({
7832             formSelector: '#AddToCartForm',
7833             cartContainer: '#CartContainer',
7834             addToCartSelector: '#AddToCartXX',
7835             cartCountSelector: '#CartCount, #CartCount2',
7836             cartCostSelector: '#CartCost',
7837             moneyFormat: "Rp {{amount_no_decimals}}"
7838           });
7839           });
7840 
7841           jQuery(document.body).on('afterCartLoad.ajaxCart', function(evt, cart) {
7842             // Bind to 'afterCartLoad.ajaxCart' to run any javascript after the cart has loaded in the DOM
7843             timber.RightDrawer.open();
7844           });
7845       </script>
7845
7846     
7847 
7848 
7849 
7850 <style>
7851   /** Search AutoComplete **/
7852   .resultsearch .ui-menu-item[data-cat="Collection"],
7853   .resultsearch .ui-menu-item[data-cat="Collection"] {display: none;}
7854   .resultsearch .ui-widget.ui-widget-content {
7855     width: 100%;
7856     top: 48px;
7857     border: none;
7858     box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3);
7859   }
7860   .resultsearch .ui-menu-item {text-align: left;}
7861   .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;}
7862   .ui-state-active {
7863     border: none!important;
7864     background-color: #fafafa!important;
7865     color: #000!important;
7866   }
7867   .ui-menu-item a[data-cat="Collection"] {padding: 5px 12px;}
7868   .ui-menu .ui-menu-item {line-height: normal;}
7869 </style>
7870 
7870<script>
7871 $(window).load(function(){
7872 
7873   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;}
7874 
7875   $.widget("custom.catcomplete", $.ui.autocomplete, {
7876     _renderMenu: function (ul, items) {
7877       // have search reults split up in categories
7878       var that = this,
7879           currentCategory = "";
7880       $.each(items, function (index, item) {
7881         if (item.category != currentCategory) {
7882           ul.append("<li class='ui-autocomplete-category' data-cat=" + item.category + ">" + "<span>" + item.category + "</span>" + "</li>");
7883           currentCategory = item.category;
7884         }
7885         that._renderItemData(ul, item);
7886       });
7887     }
7888   });
7889 
7890   // higlight searched for term
7891   $.ui.autocomplete.prototype._renderItem = function( ul, item ) {
7892     var term = this.element.val(),
7893         html = item.label.replace( term, "<b>$&</b>" );
7894     return $( "<li>" )
7895     .append(format(item))
7896     .appendTo( ul );
7897   };
7898 
7899 
7900   var data = [
7901       { 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 Sweetbo
7901x 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: " " }
7901,{ 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: " " }
7901,{ 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: " " }
7901,{ 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
7901dal", 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-
7901hampers", 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
7901o-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: " " }
7901,{ 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: " " }
7901,{ 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: " " }
7901,{ 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: " " }
7901,{ 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: " " }
7901,{ 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: " " }
7901,{ 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: " " }
7901,{ 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: "Temukan merchandise resmi Soulkeeper Cult hanya di NIXTOTO. Dapatkan koleksi apparel original, t-shirt, hoodie, dan rilisan fisik eksklusif dengan transaksi aman.", category: "Collection", url: "/collections/standing-flower", images: " ", price: " " },{ label: "Temukan merchandise resmi Soulkeeper Cult hanya di NIXTOTO. Dapatkan koleksi apparel original, t-shirt, hoodie, dan rilisan fisik eksklusif dengan transaksi aman. Bali", category: "Collection", url: "/collections/standing-flower-bali", images: " ", price: " " },{ label: "Temukan merchandise resmi Soulkeeper Cult hanya di NIXTOTO. Dapatkan koleksi apparel original, t-shirt, hoodie, dan rilisan fisik eksklusif dengan transaksi aman. Bandung", category: "Collection", url: "/collections/standing-flower-bandung", images: " ", price: " " },{ label: "Temukan merchandise resmi Soulkeeper Cult hanya di NIXTOTO. Dapatkan koleksi apparel original, t-shirt, hoodie, dan rilisan fisik eksklusif dengan transaksi aman. Congratulations", category: "Collection", url: "/collections/standing-flower-congratulations", images: " ", price: " " },{ label: "Temukan merchandise resmi Soulkeeper Cult hanya di NIXTOTO. Dapatkan koleksi apparel original, t-shirt, hoodie, dan rilisan fisik eksklusif dengan transaksi aman. Demak", category: "Collection", url: "/collections/standing-flower-demak", images: " ", price: " " },{ label: "Temukan merchandise resmi Soulkeeper Cult hanya di NIXTOTO. Dapatkan koleksi apparel original, t-shirt, hoodie, dan rilisan fisik eksklusif dengan transaksi aman. Jepara", category: "Collection", url: "/collections/standing-flower-jepara", images: " ", price: " " },{ label: "Temukan merchandise resmi Soulkeeper Cult hanya di NIXTOTO. Dapatkan koleksi apparel original, t-shirt, hoodie, dan rilisan fisik eksklusif dengan transaksi aman. Semarang", category: "Collection", url: "/collections/standing-flower-semarang", images: " ", price: " " },{ label: "Temukan merchandise resmi Soulkeeper Cult hanya di NIXTOTO. Dapatkan koleksi apparel original, t-shirt, hoodie, dan rilisan fisik eksklusif dengan transaksi aman. Sidoarjo", category: "Collection", url: "/collections/standing-flower-sidoarjo", images: " ", price: " " },{ label: "Temukan merchandise resmi Soulkeeper Cult hanya di NIXTOTO. Dapatkan koleksi apparel original, t-shirt, hoodie, dan rilisan fisik eksklusif dengan transaksi aman. Surabaya", category: "Collection", url: "/collections/standing-flower-surabaya", images: " ", price: " " },{ label: "Temukan merchandise resmi Soulkeeper Cult hanya di NIXTOTO. Dapatkan koleksi apparel original, t-shirt, hoodie, dan rilisan fisik eksklusif dengan transaksi aman. Yogyakarta", category: "Collection", url: "/collections/standing-flower-yogyakarta", images: " ", price: " " },{ label: "Standing Giant Flower", category: "Collection", url: "/collections/standing-giant-flower", images: " ", price: " " },{ label: "Stationery", category: "Collection", url: "/collections/stationery", images: " ", price: " " },{ label: "Steekwerk", category: "Collection", url: "/collections/steekwerk", images: " ", price: " " },{ label: "Stylish Hampers", category: "Collection", url: "/collections/stylish-hampers", images: " ", price: " " },{ label: "Stylish Hampers Luar Jadetabek", category: "Collection", url: "/collections/stylish-hampers-luar-jadetabek", images: " ", price: " " },{ label: "Succulent", category: "Collection", url: "/collections/succulent", images: " ", price: " " },{ label: "Sunflower", category: "Collection", url: "/collections/bunga-matahari", images: " ", price: " " },{ label: "Sweet & Savoury Hampers", category: "Collection", url: "/collections/sweet-savoury-hampers", images: " ", price: " " },{ label: "Sweet Gracie", category: "Collection", url: "/collections/sweet-gracie", images: " ", price: " " },{ label: "Sweet Pastel Love", category: "Collection", url: "/collections/pastel-love", images: " ", price: " " },{ label: "Sweet Pastel Love Nusantara", category: "Collection", url: "/collections/sweet-pastel-love-nusantara", images: " ", price: " " },{ label: "Sweet Treats", category: "Collection", url: "/collections/sweet-treats", images: " ", price: " " },{ label: "Sweetooth", category: "Collection", url: "/collections/sweetooth", images: " ", price: " " },{ label: "Taurus ️ 20April - 20May", category: "Collection", url: "/collections/kado-untuk-zodiak-taurus", images: " ", price: " " },{ label: "Teddy Bear", category: "Collection", url: "/collections/boneka-teddy-bear", images: " ", price: " " },{ label: "Teh", category: "Collection", url: "/collections/teh", images: " ", price: " " },{ label: "Test Error", category: "Collection", url: "/collections/test-error", images: " ", price: " " },{ label: "Testing", category: "Collection", url: "/collections/testing", images: " ", price: " " },{ label: "Thank You", category: "Collection", url: "/collections/rangkaian-bunga-ucapan-terima-kasih", images: " ", price: " " },{ label: "The Classic Astoria", category: "Collection", url: "/collections/astoria", images: " ", price: " " },{ label: "The Classic Enchanted Dome", category: "Collection", url: "/collections/enchanted-dome", images: " ", price: " " },{ label: "The Enchanted Love Pirouette Special Edition", category: "Collection", url: "/collections/the-enchanted-love-pirouette-special-edition", images: " ", price: " " },{ label: "The F Thing", category: "Collection", url: "/collections/the-f-thing", images: " ", price: " " },{ label: "The First", category: "Collection", url: "/collections/the-first", images: " ", price: " " },{ label: "The Novo Astoria", category: "Collection", url: "/collections/the-novo-astoria", images: " ", price: " " },{ label: "The Novo Enchanted Dome", category: "Collection", url: "/collections/the-novo-enchanted-dome", images: " ", price: " " },{ label: "The Novo Enchanted Dome Special Edition", category: "Collection", url: "/collections/the-novo-enchanted-dome-special-edition", images: " ", price: " " },{ label: "The Palace", category: "Collection", url: "/collections/the-palace", images: " ", price: " " },{ label: "Ties", category: "Collection", url: "/collections/dasi", images: " ", price: " " },{ label: "Tisane", category: "Collection", url: "/collections/tisane", images: " ", price: " " },{ label: "Toko Bunga Aceh", category: "Collection", url: "/collections/toko-bunga-aceh", images: " ", price: " " },{ label: "Toko Bunga Ambon", category: "Collection", url: "/collections/toko-bunga-ambon", images: " ", price: " " },{ label: "Toko Bunga Atambua", category: "Collection", url: "/collections/toko-
7901bunga-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: " " }
7901,{ 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
7901dal", 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: " " },
7902       { 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/OBVBUQBNOrnQlzo3ftqm0Jj5Sf9zEHlPApapd-rWsAHREzkweiTw-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" }
7902,{ 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/OUQBNOrnQlzo3ftqm0Jj5Sf9zEHlPApapd-rWsAHREzkweiTw-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/JKTWUQBNOrnQlzo3ftqm0Jj5Sf9zEHlPApapd-rWsAHREzkweiTw.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" }
7902,{ 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" }
7903   ];
7904 
7905              
7906         $( ".header-input-search" ).catcomplete({
7907          appendTo: ".searchResult",source: function(request, response) {
7908             var results = $.ui.autocomplete.filter(data, request.term);
7909             var predicate = function () {
7910                 var counter = { Collection: 0, Produk: 0 };
7911             var fn = function(item) {counter[item.category] += 1;return (counter[item.category] <= 5);}
7912             return fn
7913             }();
7914             response(results.filter(predicate));
7915           },
7916           minLength:1,
7917            //results are clickable
7918           select: function( event, ui ) {window.location = ui.item.url;}
7919 });
7920 $( ".header-input-search2" ).catcomplete({
7921         appendTo: ".searchResult2",
7922                    source: function(request, response) {
7923                     var results = $.ui.autocomplete.filter(data, request.term);
7924                     var predicate = function () {
7925                         var counter = { Collection: 0, Produk: 0 };
7926               var fn = function(item) {
7927               counter[item.category] += 1;
7928   return (counter[item.category] <= 5);
7929 }
7930                return fn
7931                }();
7932 response(results.filter(predicate));
7933 },
7934   minLength:1,
7935         //results are clickable
7936         select: function( event, ui ) {
7937           window.location = ui.item.url;
7938         }
7939 });
7940 });
7941 </script>
7941
7942 
7943     
7943<script src="//outerbloom.com/cdn/shop/t/138/assets/vendors.js?v=6349622868601634021752652419" defer></script>
7943
7944 
7944<script src="//outerbloom.com/cdn/shop/t/138/assets/app.js?v=136050180318808583701752652452" defer></script>
7944
7945 
7946 
7946<script>
7947   ( function() {
7948     var youtube = document.querySelectorAll( ".youtube" );
7949     for (var i = 0; i < youtube.length; i++) {
7950       var source = "https://img.youtube.com/vi/"+ youtube[i].dataset.embed +"/sddefault_1x.jpg";
7951       var datasource = "https://img.youtube.com/vi/"+ youtube[i].dataset.embed +"/sddefault.jpg";
7952       var image = new Image();
7953       image.src = source;
7954       image.setAttribute("data-src", datasource);
7955       image.classList.add("swiper-lazy");
7956       image.addEventListener( "load", function() {
7957         youtube[ i ].appendChild( image );
7958       }( i ) );
7959       youtube[i].addEventListener( "click", function() {
7960         var iframe = document.createElement( "iframe" );
7961         iframe.setAttribute( "width", "480" );
7962         iframe.setAttribute( "height", "480" );
7963         iframe.setAttribute( "frameborder", "0" );
7964         iframe.setAttribute( "allowfullscreen", "" );
7965         iframe.setAttribute( "src", "https://www.youtube.com/embed/"+ this.dataset.embed +"?rel=0&showinfo=0&autoplay=1" );
7966         this.innerHTML = "";
7967         this.appendChild( iframe );
7968       } );
7969     };
7970 
7971   } )();
7972 
7973   /* Lazy Load */
7974   const mainLazyLoad = new LazyLoad({threshold:400});
7975   $(document).ready(function(){
7976 
7977     $("selectxxx").addClass("needsclick");
7978     FastClick.attach(document.body);
7979     
7980     var $customSelects = $('.select-search');
7981     $customSelects.select2({
7982       templateResult: function(result, container) {
7983         if (!result.id) {
7984           return result.text;
7985         }
7986         container.className += ' needsclick';
7987         return result.text;
7988       }
7989     });
7990     $customSelects.each(function(index, el){$(el).data('select2').$container.find('*').addClass('needsclick');});
7991     $(document).on('select2:open', () => {
7992       document.querySelector('.select2-search__field').focus();
7993     });
7994     
7995 
7996     $(".overlay").click(function(){
7997       $(".js-drawer-close").click();
7998     });
7999     $(".site-nav--mobile .js-drawer-open-left, #NavDrawer .icon-close, .overlay-nav").click(function(){
8000       $("html").toggleClass("nav_open");
8001     });
8002     
8003     $('.swatch-element label').on('click', function(){
8004       var srcImg = $(this).data('src');
8005       $('#thumb-image-product .product-single__thumbnail').each(function(){
8006         if ($(this).attr("href") == srcImg) {
8007           $(this).trigger('click');
8008         }
8009       });
8010     });
8011     var defaultValue = $(".swatch input:checked").val()
8012     
8013     $('#purchaseProduct .swatch [type=radio]').change(function() {
8014       var optionIndex = $(this).closest('.swatch').attr('data-option-index');
8015       var optionValue = $(this).val();
8016       console.log(optionIndex, optionValue)
8017       var value = parseInt(optionValue.split(' ')[0])
8018       $(this)
8019       .closest('#purchaseProduct')
8020       .find('.single-option-selector')
8021       .eq(optionIndex)
8022       .val(optionValue)
8023       .trigger('change');
8024       
8025     });
8026     
8027   });
8028   $(document).ready(function(){
8029     $(".nav-search a").click(function(e){
8030       e.preventDefault();
8031       $(".icon-navsearch").toggle();
8032       $(".icon-navclose").toggle();
8033       $(".site-nav__item > .site-nav__link").toggle();
8034       $(".open-search").toggle();
8035       $(".open-search input").focus();
8036     });
8037     $(".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'>");
8038     if ($(window).width() < 768) {
8039       $(".bg-products .label-tag.valentine").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-valentine_75x.png?v=82732945490105366961752652419' alt='Icon Valentine'>");
8040       $(".bg-products .label-tag.cny").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-cny_45x.png?v=101884295148001743851752652418' alt='Icon CNY'>");
8041       $(".bg-products .label-tag.free-valentine").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/free-valentine_150x.png?v=113GmLkaZvKbncgXkNj9hL8cQJCSCjXscK' alt='Icon Free Valentine'>");
8042     } else {
8043       $(".bg-products .label-tag.valentine").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-valentine_60x.png?v=82732945490105366961752652419' alt='Icon Valentine'>");
8044       $(".bg-products .label-tag.cny").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-cny_60x.png?v=101884295148001743851752652418' alt='Icon CNY'>");
8045       $(".bg-products .label-tag.free-valentine").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/free-valentine_200x.png?v=113GmLkaZvKbncgXkNj9hL8cQJCSCjXscK' alt='Icon Free Valentine'>");
8046     }
8047     $(".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'>");
8048     $(".bg-products .label-tag.mothersday").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/mothers-day_70x.png?v=113GmLkaZvKbncgXkNj9hL8cQJCSCjXscK' alt='Icon Mothers day'>");
8049   });
8050 </script>
8050
8051 
8052 
8053     
8054     
8055     
8056     
8057 
8058     
8058<script type="text/javascript">
8059       var wishlistpage = 0;
8060        
8061        var quickShop_money_format="<span class='money'>"+"Rp {{amount_no_decimals}}"+"</span>";
8062     </script>
8062
8063     
8064       <!-- Remove duplicate wishlist.js reference -->
8065       <style>
8066   .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)}}
8067 </style>
8068 
8069 <div class="modal fade" id="modalwishlist0" tabindex="-1" role="dialog">
8070   <div class="modal-dialog" role="document">
8071     <div class="modal-content">        
8072       <div class="modal-body">Your Wishlist is empty!</div>
8073       <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>          
8074     </div>
8075   </div>
8076 </div> 
8077 
8078 <div class="wishlist-model">
8079   <div class="modal fade" id="modalwishlist1" tabindex="-1" role="dialog" aria-hidden="true">
8080     <div class="modal-dialog white-modal">
8081       <div class="modal-content">
8082         <div class="modal-header">
8083           <button type="button" class="close" data-dismiss="modal" aria-label="Close">
8084             <svg class="icon icon-close" version="1.1" xmlns="assets/logo/logonix-anim.gif" width="32" height="32" viewBox="0 0 32 32">
8085 <title>icon-close</title>
8086 <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>
8087 </svg>
8088           </button>
8089         </div>
8090         <div class="modal-body">
8091           <div class="wishlist-left">
8092             <div class="wishlist-note">
8093               <span class="cirle"><svg version="1.1" xmlns="assets/logo/logonix-anim.gif" width="32" height="32" viewBox="0 0 32 32">
8094 <title>icon-check</title>
8095 <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>
8096 </svg></span>
8097               Product added to <a href="/pages/wish-list">Wishlist</a>
8098             </div>
8099             <div class="wishlist-product">
8100               <div class="product-left">
8101                 <div class="wishlist-image"></div>
8102               </div>
8103               <div class="product-right">
8104                 <div class="wishlist-name"></div>
8105                 <div class="wishlist-price"></div>
8106               </div>
8107             </div>
8108           </div>
8109           <div class="wishlist-right">
8110             <div class="wishlist-cart">
8111               <form action="/cart/add" method="post" class="variants-form variants" id="AddToCartForm" enctype="multipart/form-data">                  
8112                 <div class="others-bottom">
8113                   <a class="btn btn-quick-shop" href="/pages/wish-list">View Wishlist</a>
8114                   <button type="submit" name="add" id="AddToCart" class="btn btn-cta">
8115                     <span id="AddToCartText" class="">Beli Sekarang</span>
8116                   </button>
8117                 </div>
8118                 <div id="wishlist-variants-container" class="variants-wrapper"></div> 
8119                 <div class="quantity-content">
8120                   <label>QTY</label>
8121                   <input type="number" size="5" class="" name="quantity" value="1" />
8122                 </div>
8123               </form> 
8124             </div>
8125           </div>
8126         </div>
8127       </div>
8128     </div>
8129   </div>
8130 </div>
8131 
8132     
8133     <style>
8134        .stamped-badge[data-rating="0.0"]{display: none !Important;}
8135        
8136         div[data-load-type="continue"] ul.stamped-pagination li.next a, div[data-widget-load-type="continue"] ul.stamped-pagination li.next a {
8137           border-radius: 0px;
8138       }
8139           .stamped-review-body {
8140           padding-left: 0px !important;
8141       }
8142           #product-reviews .stamped-header:after {
8143             display:none !Important;
8144           }
8145       #stamped-main-widget .stamped-container, .stamped-badge-caption,#stamped-reviews-widget {
8146           font-family:inherit !important;
8147       }
8148     </style>
8149 
8150     
8151 
8152 <div id='stamped-rewards-init' class='stamped-rewards-init'
8153   data-key-public=''
8154 
8155 ></div>
8156 
8157     
8157<script src="//outerbloom.com/cdn/shop/t/138/assets/variant-sku-handler.js?v=91239063692820757781752652418" defer></script>
8157
8158     <!-- Remove duplicate jQuery reference and load wishlist script properly -->
8159     
8159<script src="//outerbloom.com/cdn/shop/t/138/assets/wishlist-fixed.js?v=35991423018869066281754360012" defer></script>
8159
8160 
8161     
8161<script>
8162       function myInit(){ StampedFn.init({ apiKey: 'pubkey-hCS8DHE9QbBHhHN89WXFkuJ0Y3422D', sId: '23462' }); }
8163     </script>
8163
8164     
8164<script async onload="myInit()" type="text/javascript" src="https://cdn1.stamped.io/files/widget.min.js"></script>
8164<style>
8165   .jss59 {
8166     background-color: rgba(0, 0, 0, 0.6);
8167   }
8168   .MuiBackdrop-root {
8169     top: 0;
8170     left: 0;
8171     right: 0;
8172     bottom: 0;
8173     display: flex;
8174     z-index: -1;
8175     position: fixed;
8176     align-items: center;
8177     justify-content: center;
8178     background-color: rgba(0, 0, 0, 0.5);
8179     -webkit-tap-highlight-color: transparent;
8180   }
8181   .MuiDialog-scrollPaper {
8182     display: flex;
8183     align-items: center;
8184     justify-content: center;
8185   }
8186   .MuiDialog-container {
8187     height: 100%;
8188     outline: 0;
8189   }
8190   .MuiPaper-elevation24 {
8191     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);
8192   }
8193   .MuiDialog-paper {
8194     margin: 32px;
8195     position: relative;
8196     overflow-y: auto;
8197   }
8198   .MuiDialog-paperScrollPaper {
8199     display: flex;
8200     max-height: calc(100% - 64px);
8201     flex-direction: column;
8202   }
8203   .MuiDialog-paperWidthSm {
8204     max-width: 600px;
8205   }
8206   #location-lock-dialog {
8207     top: 20%;
8208     left: 0;
8209     right: 0;
8210     width: 30%;
8211     margin: 0px auto;
8212     display: block;
8213     padding: 30px;
8214     z-index: 99999;
8215     position: fixed;
8216     font-size: 14px;
8217     background: rgb(0, 0, 0);
8218     box-shadow: rgba(11, 11, 12, 0.2) 2px 4px 5px 0px;
8219     text-align: center;
8220     font-family: Roboto, Arial, sans-serif;
8221     line-height: 1;
8222     border-radius: 8px;
8223     -webkit-font-smoothing: subpixel-antialiased;
8224   }
8225   .MuiButtonBase-root {
8226     color: inherit;
8227     border: 0;
8228     cursor: pointer;
8229     margin: 0;
8230     display: inline-flex;
8231     outline: 0;
8232     padding: 0;
8233     position: relative;
8234     align-items: center;
8235     user-select: none;
8236     border-radius: 0;
8237     vertical-align: middle;
8238     -moz-appearance: none;
8239     justify-content: center;
8240     text-decoration: none;
8241     background-color: transparent;
8242     -webkit-appearance: none;
8243     -webkit-tap-highlight-color: transparent;
8244   }
8245   .MuiIconButton-root {
8246     flex: 0 0 auto;
8247     color: rgba(0, 0, 0, 0.54);
8248     padding: 12px;
8249     overflow: visible;
8250     font-size: 1.5rem;
8251     text-align: center;
8252     transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
8253     border-radius: 50%;
8254   }
8255   .MuiIconButton-label {
8256     width: 100%;
8257     display: flex;
8258     align-items: inherit;
8259     justify-content: inherit;
8260   }
8261   .MuiSvgIcon-root {
8262     fill: currentColor;
8263     width: 1em;
8264     height: 1em;
8265     display: inline-block;
8266     font-size: 1.5rem;
8267     transition: fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
8268     flex-shrink: 0;
8269     user-select: none;
8270   }
8271   .MuiTouchRipple-root {
8272     top: 0;
8273     left: 0;
8274     right: 0;
8275     bottom: 0;
8276     z-index: 0;
8277     overflow: hidden;
8278     position: absolute;
8279     border-radius: inherit;
8280     pointer-events: none;
8281   }
8282   .jss36 {
8283     color: #222222;
8284     font-size: 24px;
8285     font-family: Roboto, Arial, sans-serif;
8286     font-weight: 500;
8287   }
8288   .jss37 {
8289     color: #555555;
8290     padding: 10px 0px 0px;
8291     font-size: 14px;
8292   }
8293   .MuiFormGroup-root {
8294     display: flex;
8295     flex-wrap: wrap;
8296     flex-direction: column;
8297   }
8298   .MuiFormGroup-row {
8299     flex-direction: row;
8300   }
8301   .jss63 {
8302     width: 85%;
8303     margin: 15px auto;
8304     display: flex;
8305     padding: 11px 0px 0px;
8306     justify-content: space-evenly;
8307   }
8308   .MuiFormControlLabel-root {
8309     cursor: pointer;
8310     display: inline-flex;
8311     align-items: center;
8312     margin-left: -11px;
8313     margin-right: 16px;
8314     vertical-align: middle;
8315     -webkit-tap-highlight-color: transparent;
8316   }
8317   .jss70 {
8318     margin: 0;
8319   }
8320   .MuiButtonBase-root {
8321     color: inherit;
8322     border: 0;
8323     cursor: pointer;
8324     margin: 0;
8325     display: inline-flex;
8326     outline: 0;
8327     padding: 0;
8328     position: relative;
8329     align-items: center;
8330     user-select: none;
8331     border-radius: 0;
8332     vertical-align: middle;
8333     -moz-appearance: none;
8334     justify-content: center;
8335     text-decoration: none;
8336     background-color: transparent;
8337     -webkit-appearance: none;
8338     -webkit-tap-highlight-color: transparent;
8339   }
8340   .MuiIconButton-root {
8341     flex: 0 0 auto;
8342     color: rgba(0, 0, 0, 0.54);
8343     padding: 12px;
8344     overflow: visible;
8345     font-size: 1.5rem;
8346     text-align: center;
8347     transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
8348     border-radius: 50%;
8349   }
8350   .MuiIconButton-colorSecondary {
8351     color: #f50057;
8352   }
8353   .jss71 {
8354     padding: 9px;
8355   }
8356   .MuiRadio-root {
8357     color: rgba(0, 0, 0, 0.54);
8358   }
8359   .jss64 {
8360     padding: 2px;
8361   }
8362   .MuiRadio-colorSecondary.Mui-checked {
8363     color: #f50057;
8364   }
8365   .MuiIconButton-label {
8366     width: 100%;
8367     display: flex;
8368     align-items: inherit;
8369     justify-content: inherit;
8370   }
8371   .MuiTypography-root {
8372     margin: 0;
8373   }
8374   .MuiTypography-body1 {
8375     font-size: 18px;
8376     font-family: Roboto,sans-serif;
8377     font-weight: 400;
8378     line-height: 1.5;
8379   }
8380   .location-popup_area-block__sp9Ws {
8381     display: -moz-box;
8382     display: flex;
8383     -moz-box-orient: vertical;
8384     -moz-box-direction: normal;
8385     flex-direction: column;
8386     -moz-box-pack: center;
8387     justify-content: center;
8388     position: relative;
8389     margin: 10px 10% 0;
8390   }
8391   .location-popup_pin-search-box__3l5mJ {
8392     width: 100%;
8393     display: -moz-box;
8394     display: flex;
8395     -moz-box-align: center;
8396     align-items: center;
8397   }
8398   .location-popup_place-icon-city__1XAX5, .location-popup_place-icon__jSG0Q {
8399     position: absolute;
8400     z-index: 999;
8401   }
8402   .location-popup_place-icon__jSG0Q {
8403     color: #ffffff;
8404     padding-left: 8px;
8405   }
8406   .location-popup_place-icon__jSG0Q svg {
8407     width: 18px;
8408     height: 18px;
8409   }
8410   .location-popup_cancel-icon__FHujU {
8411     color: #fff;
8412     right: 10px;
8413     width: 16px;
8414     cursor: pointer;
8415     height: 16px;
8416     display: none;
8417     padding: 5px;
8418     position: absolute;
8419     background: #999;
8420     text-align: center;
8421     border-radius: 50%;
8422   }
8423   .location-popup_pin-search-box__3l5mJ>div>select {
8424 /*     -webkit-box-shadow: 0 0 10px #ffffff;
8425     box-shadow: 0 0 10px #ffffff; */
8426     text-transform: capitalize;
8427     border: 1px solid #ffffff;
8428     color: #ffffff;
8429     width: 100%;
8430     margin: 0;
8431     display: -moz-box;
8432     display: flex;
8433     padding: 0 30px;
8434     -webkit-animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite;
8435     -moz-animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite;
8436     animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite;
8437     font-size: 16px;
8438     border-radius: 4px;
8439     height: 44px;
8440     moz-animation: location-popup_focuses__1I8Gj ease-in-out 1.5s infinite;
8441     webkit-animation: location-popup_focuses__1I8Gj ease-in-out 1.5s infinite;
8442   }
8443   .MuiButtonBase-root {
8444     color: inherit;
8445     border: 0;
8446     cursor: pointer;
8447     margin: 0;
8448     display: inline-flex;
8449     outline: 0;
8450     padding: 0;
8451     position: relative;
8452     align-items: center;
8453     user-select: none;
8454     border-radius: 0;
8455     vertical-align: middle;
8456     -moz-appearance: none;
8457     justify-content: center;
8458     text-decoration: none;
8459     background-color: transparent;
8460     -webkit-appearance: none;
8461     -webkit-tap-highlight-color: transparent;
8462   }
8463   .MuiButton-root {
8464     color: rgba(0, 0, 0, 0.87);
8465     padding: 6px 16px;
8466     font-size: 0.875rem;
8467     min-width: 64px;
8468     box-sizing: border-box;
8469     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;
8470     font-family: Roboto,sans-serif;
8471     font-weight: 500;
8472     line-height: 1.75;
8473     border-radius: 4px;
8474     text-transform: uppercase;
8475   }
8476   .MuiButton-contained {
8477     color: rgba(0, 0, 0, 0.87);
8478     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);
8479     background-color: #e0e0e0;
8480   }
8481   .MuiButtonBase-root.Mui-disabled {
8482     cursor: default;
8483     pointer-events: none;
8484   }
8485   .MuiButton-label {
8486     width: 100%;
8487     display: inherit;
8488     align-items: inherit;
8489     justify-content: inherit;
8490   }
8491   .cartButton_login_content__2j1f7 {
8492     display: -moz-box;
8493     display: flex;
8494     text-align: center;
8495     z-index: 9;
8496     font-size: 18px;
8497     font-weight: 500;
8498     color: #fff;
8499   }
8500   
8501   .jss35 {
8502     top: 5px;
8503     right: 5px;
8504     padding: 4px;
8505     position: absolute;
8506     border-radius: 50%;
8507   }
8508   .jss67 {
8509     cursor: pointer;
8510     font-size: 15px;
8511     line-height: 1.3;
8512     padding-left: 5px;
8513   }
8514   .jss69 {
8515     color: #222222;
8516   }
8517   .jss80 {
8518     color: #fff;
8519     width: 100%;
8520     height: 52px;
8521     padding: 11px 16px;
8522     font-size: 18px;
8523     min-width: 88px;
8524     min-height: 36px;
8525     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;
8526     font-weight: 500;
8527     line-weight: 1em;
8528     border-radius: 4px;
8529     text-transform: uppercase;
8530     background-color: #E87325;
8531   }
8532   @media (min-width: 991px){
8533     .cartButton_login_content__2j1f7 {
8534         font-weight: 500;
8535     }
8536   }
8537 
8538   @media (max-width: 992px) {
8539     #location-lock-dialog {
8540       width: 100%;
8541       top: auto;
8542       bottom: 0;
8543       padding-left: 0;
8544       padding-right: 0;
8545     }
8546     .MuiFormGroup-row {
8547       display: block
8548     }
8549     .MuiIconButton-label input {
8550       margin: 0;
8551     }
8552   }
8553 </style>
8554 <div role="presentation" class="MuiDialog-root jss34" style="display: none;position: fixed; z-index: 9999; inset: 0px;">
8555   <div class="MuiBackdrop-root" aria-hidden="true" style="opacity: 1; transition: opacity 225ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;"></div>
8556   <div tabindex="0" data-test="sentinelStart"></div>
8557   <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;">
8558     <div class="MuiPaper-root MuiDialog-paper MuiDialog-paperScrollPaper MuiDialog-paperWidthSm MuiPaper-elevation24 MuiPaper-rounded" role="dialog">
8559       <div class="jss31 undefined" id="location-lock-dialog">
8560         <button id="close-popup-delivery" class="MuiButtonBase-root MuiIconButton-root jss35" tabindex="0" type="button" aria-label="close">
8561           <span class="MuiIconButton-label">
8562             <svg class="MuiSvgIcon-root" focusable="false" viewBox="0 0 24 24" aria-hidden="true">
8563               <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>
8564             </svg>
8565           </span>
8566           <span class="MuiTouchRipple-root"></span>
8567         </button>
8568         <div>
8569           <div class="jss36">Select Delivery Location</div>
8570           <div class="jss37">Select a delivery location to see product availability</div>
8571         </div>
8572         <div class="MuiFormGroup-root jss63 MuiFormGroup-row" role="radiogroup">
8573           <label for="jabodetabek" class="MuiFormControlLabel-root jss45">
8574             <span class="MuiButtonBase-root MuiIconButton-root jss46 MuiRadio-root MuiRadio-colorSecondary jss39 jss47 Mui-checked MuiIconButton-colorSecondary" aria-disabled="false">
8575               <span class="MuiIconButton-label">
8576                 <input id="jabodetabek" class="jss49" type="radio" value="Jabodetabek" checked="" name="location">
8577                 <span class="jss41"></span>
8578               </span>
8579               <span class="MuiTouchRipple-root"></span>
8580             </span>
8581             <span class="MuiTypography-root MuiFormControlLabel-label MuiTypography-body1">
8582               <span class="jss67 jss69">Jabodetabek</span>
8583             </span>
8584           </label>
8585           <label for="non-jabodetabek" class="MuiFormControlLabel-root jss45">
8586             <span class="MuiButtonBase-root MuiIconButton-root jss46 MuiRadio-root MuiRadio-colorSecondary jss39 MuiIconButton-colorSecondary" aria-disabled="false">
8587               <span class="MuiIconButton-label">
8588                 <input id="non-jabodetabek" class="jss49" type="radio" value="Outside Jabodetabek" name="location">
8589                 <span class="jss40"></span>
8590               </span>
8591               <span class="MuiTouchRipple-root"></span>
8592             </span>
8593             <span class="MuiTypography-root MuiFormControlLabel-label MuiTypography-body1">
8594               <span class="jss67 jss68">Outside Jabodetabek</span>
8595             </span>
8596           </label>
8597         </div>
8598         <div>
8599           <div class="MuiGrid-root location-popup_area-block__sp9Ws">
8600             <div class="MuiGrid-root location-popup_pin-search-box__3l5mJ false">
8601               <div class="MuiGrid-root location-popup_place-icon__jSG0Q">
8602                 <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>
8603               </div>
8604               <div class="MuiGrid-root location-popup_cancel-icon__FHujU false">
8605                 <i class="material-icons location-popup_clear-pin__s1dRc">close</i>
8606               </div>
8607               <div style="width: 100%;">
8608                 <select id="choose-location" class="form-control">
8609                   <option value="">Choose Location</option>
8610                   <option value="jakarta">Jakarta</option>
8611                   <option value="bogor">Bogor</option>
8612                   <option value="depok">Depok</option>
8613                   <option value="tangerang">Tangerang</option>
8614                   <option value="bekasi">Bekasi</option>
8615                 </select>
8616               </div>
8617             </div>
8618           </div>
8619         </div>
8620         <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="">
8621           <span class="MuiButton-label">
8622             <span class=""></span>
8623             <span id="location-lock-continue-btn" class="cartButton_login_content__2j1f7" style="font-weight: 500;" data-content="">Continue Shopping</span>
8624           </span>
8625         </button>
8626       </div>
8627     </div>
8628   </div>
8629   <div tabindex="0" data-test="sentinelEnd"></div>
8630 </div>
8631 
8632 
8632<script>
8633   const jabodetabek = [
8634     {
8635       "code": "jakarta",
8636       "city": "jakarta",
8637       "zip": []
8638     },
8639     {
8640       "code": "bogor",
8641       "city": "bogor",
8642       "zip": []
8643     },
8644     {
8645       "code": "depok",
8646       "city": "depok",
8647       "zip": []
8648     },
8649     {
8650       "code": "tangerang",
8651       "city": "tangerang",
8652       "zip": []
8653     },
8654     {
8655       "code": "bekasi",
8656       "city": "bekasi",
8657       "zip": []
8658     }
8659   ]
8660   let cityNonJabodetabek = [
8661
8662     "pengiriman_aceh",
8663     
8664     
8665     
8666     
8667     
8668     "pengiriman_ambon",
8669     
8670     
8671     
8672     
8673     
8674     "pengiriman_atambua",
8675     
8676     
8677     
8678     
8679     
8680     "pengiriman_badung",
8681     
8682     
8683     
8684     
8685     
8686     "pengiriman_bali",
8687     
8688     
8689     
8690     
8691     
8692     "pengiriman_balikpapan",
8693     
8694     
8695     
8696     
8697     
8698     "pengiriman_bandar lampung",
8699     
8700     
8701     
8702     
8703     
8704     "pengiriman_bandung",
8705     
8706     
8707     
8708     
8709     
8710     "pengiriman_bandung barat",
8711     
8712     
8713     
8714     
8715     
8716     "pengiriman_banjarmasin",
8717     
8718     
8719     
8720     
8721     
8722     "pengiriman_banyumas",
8723     
8724     
8725     
8726     
8727     
8728     "pengiriman_banyuwangi",
8729     
8730     
8731     
8732     
8733     
8734     "pengiriman_batam",
8735     
8736     
8737     
8738     
8739     
8740     
8741     
8742     
8743     
8744     "pengiriman_biak",
8745     
8746     
8747     
8748     
8749     
8750     "pengiriman_binjai",
8751     
8752     
8753     
8754     
8755     
8756     "pengiriman_blitar",
8757     
8758     
8759     
8760     
8761     
8762     "pengiriman_blora",
8763     
8764     
8765     
8766     
8767     
8768     
8769     
8770     
8771     
8772     "pengiriman_bojonegoro",
8773     
8774     
8775     
8776     
8777     
8778     "pengiriman_boyolali",
8779     
8780     
8781     
8782     
8783     
8784     "pengiriman_bukittinggi",
8785     
8786     
8787     
8788     
8789     
8790     "pengiriman_buleleng",
8791     
8792     
8793     
8794     
8795     
8796     "pengiriman_ciamis",
8797     
8798     
8799     
8800     
8801     
8802     "pengiriman_cianjur",
8803     
8804     
8805     
8806     
8807     
8808     "pengiriman_cibinong",
8809     
8810     
8811     
8812     
8813     
8814     "pengiriman_cikarang",
8815     
8816     
8817     
8818     
8819     
8820     "pengiriman_cikupa",
8821     
8822     
8823     
8824     
8825     
8826     "pengiriman_cilacap",
8827     
8828     
8829     
8830     
8831     
8832     "pengiriman_cileunyi",
8833     
8834     
8835     
8836     
8837     
8838     "pengiriman_cimahi",
8839     
8840     
8841     
8842     
8843     
8844     "pengiriman_cirebon",
8845     
8846     
8847     
8848     
8849     
8850     "pengiriman_ciwidey",
8851     
8852     
8853     
8854     
8855     
8856     "pengiriman_deli serdang",
8857     
8858     
8859     
8860     
8861     
8862     "pengiriman_demak",
8863     
8864     
8865     
8866     
8867     
8868     "pengiriman_denpasar",
8869     
8870     
8871     
8872     
8873     
8874     
8875     
8876     
8877     
8878     "pengiriman_garut",
8879     
8880     
8881     
8882     
8883     
8884     "pengiriman_gianyar",
8885     
8886     
8887     
8888     
8889     
8890     "pengiriman_gresik",
8891     
8892     
8893     
8894     
8895     
8896     "pengiriman_gunung kidul",
8897     
8898     
8899     
8900     
8901     
8902     
8903     
8904     
8905     
8906     "pengiriman_jambi",
8907     
8908     
8909     
8910     
8911     
8912     "pengiriman_jayapura",
8913     
8914     
8915     
8916     
8917     
8918     "pengiriman_jember",
8919     
8920     
8921     
8922     
8923     
8924     "pengiriman_jepara",
8925     
8926     
8927     
8928     
8929     
8930     "pengiriman_jombang",
8931     
8932     
8933     
8934     
8935     
8936     "pengiriman_karanganyar",
8937     
8938     
8939     
8940     
8941     
8942     "pengiriman_karawang",
8943     
8944     
8945     
8946     
8947     
8948     "pengiriman_karo",
8949     
8950     
8951     
8952     
8953     
8954     "pengiriman_kebumen",
8955     
8956     
8957     
8958     
8959     
8960     "pengiriman_kediri",
8961     
8962     
8963     
8964     
8965     
8966     "pengiriman_keerom",
8967     
8968     
8969     
8970     
8971     
8972     "pengiriman_kendal",
8973     
8974     
8975     
8976     
8977     
8978     "pengiriman_klaten",
8979     
8980     
8981     
8982     
8983     
8984     
8985     
8986     
8987     
8988     "pengiriman_kudus",
8989     
8990     
8991     
8992     
8993     
8994     "pengiriman_kupang",
8995     
8996     
8997     
8998     
8999     
9000     "pengiriman_lainnya",
9001     
9002     
9003     
9004     
9005     
9006     "pengiriman_lamongan",
9007     
9008     
9009     
9010     
9011     
9012     "pengiriman_lampung",
9013     
9014     
9015     
9016     
9017     
9018     "pengiriman_lampung barat",
9019     
9020     
9021     
9022     
9023     
9024     "pengiriman_lembang",
9025     
9026     
9027     
9028     
9029     
9030     "pengiriman_lombok",
9031     
9032     
9033     
9034     
9035     
9036     "pengiriman_lumajang",
9037     
9038     
9039     
9040     
9041     
9042     "pengiriman_madiun",
9043     
9044     
9045     
9046     
9047     
9048     "pengiriman_magelang",
9049     
9050     
9051     
9052     
9053     
9054     "pengiriman_majalengka",
9055     
9056     
9057     
9058     
9059     
9060     "pengiriman_makassar",
9061     
9062     
9063     
9064     
9065     
9066     "pengiriman_malang",
9067     
9068     
9069     
9070     
9071     
9072     "pengiriman_manado",
9073     
9074     
9075     
9076     
9077     
9078     "pengiriman_medan",
9079     
9080     
9081     
9082     
9083     
9084     "pengiriman_mengwi",
9085     
9086     
9087     
9088     
9089     
9090     "pengiriman_mojokerto",
9091     
9092     
9093     
9094     
9095     
9096     "pengiriman_nganjuk",
9097     
9098     
9099     
9100     
9101     
9102     "pengiriman_ngawi",
9103     
9104     
9105     
9106     
9107     
9108     "pengiriman_padang",
9109     
9110     
9111     
9112     
9113     
9114     "pengiriman_palembang",
9115     
9116     
9117     
9118     
9119     
9120     "pengiriman_pasuruan",
9121     
9122     
9123     
9124     
9125     
9126     "pengiriman_pati",
9127     
9128     
9129     
9130     
9131     
9132     "pengiriman_pekalongan",
9133     
9134     
9135     
9136     
9137     
9138     "pengiriman_pekanbaru",
9139     
9140     
9141     
9142     
9143     
9144     "pengiriman_pemalang",
9145     
9146     
9147     
9148     
9149     
9150     "pengiriman_ponorogo",
9151     
9152     
9153     
9154     
9155     
9156     "pengiriman_pontianak",
9157     
9158     
9159     
9160     
9161     
9162     "pengiriman_probolinggo",
9163     
9164     
9165     
9166     
9167     
9168     "pengiriman_purbalingga",
9169     
9170     
9171     
9172     
9173     
9174     "pengiriman_purwakarta",
9175     
9176     
9177     
9178     
9179     
9180     "pengiriman_purwokerto",
9181     
9182     
9183     
9184     
9185     
9186     "pengiriman_rembang",
9187     
9188     
9189     
9190     
9191     
9192     "pengiriman_riau",
9193     
9194     
9195     
9196     
9197     
9198     "pengiriman_salatiga",
9199     
9200     
9201     
9202     
9203     
9204     "pengiriman_samarinda",
9205     
9206     
9207     
9208     
9209     
9210     "pengiriman_semarang",
9211     
9212     
9213     
9214     
9215     
9216     "pengiriman_sentani",
9217     
9218     
9219     
9220     
9221     
9222     "pengiriman_serang",
9223     
9224     
9225     
9226     
9227     
9228     "pengiriman_sidoarjo",
9229     
9230     
9231     
9232     
9233     
9234     "pengiriman_singkawang",
9235     
9236     
9237     
9238     
9239     
9240     "pengiriman_sragen",
9241     
9242     
9243     
9244     
9245     
9246     "pengiriman_subang",
9247     
9248     
9249     
9250     
9251     
9252     "pengiriman_sukabumi",
9253     
9254     
9255     
9256     
9257     
9258     "pengiriman_sumbawa",
9259     
9260     
9261     
9262     
9263     
9264     "pengiriman_surabaya",
9265     
9266     
9267     
9268     
9269     
9270     "pengiriman_surakarta solo",
9271     
9272     
9273     
9274     
9275     
9276     
9277     
9278     
9279     
9280     "pengiriman_tasikmalaya",
9281     
9282     
9283     
9284     
9285     
9286     "pengiriman_tegal",
9287     
9288     
9289     
9290     
9291     
9292     "pengiriman_timika",
9293     
9294     
9295     
9296     
9297     
9298     "pengiriman_wamena",
9299     
9300     
9301     
9302     
9303     
9304     "pengiriman_wiyung",
9305     
9306     
9307     
9308     
9309     
9310     "pengiriman_wonokromo",
9311     
9312     
9313     
9314     
9315     
9316     "pengiriman_yogyakarta",
9317     
9318     
9319     
9320     
9321     
9322     
9323     
9324     
9325     
9326     
9327     
9328     
9329     
9330     
9331     
9332     
9333     
9334     
9335     
9336     
9337     
9338     
9339     
9340     
9341     
9342     
9343     
9344     
9345     
9346     
9347     
9348     
9349     
9350     
9351     
9352     
9353     
9354     
9355     
9356     
9357     
9358     
9359     
9360     
9361     
9362     
9363     
9364     
9365     
9366     
9367     
9368     
9369     
9370     
9371     
9372     
9373     
9374     
9375     
9376     
9377     
9378     
9379     
9380     
9381     
9382     
9383     
9384     
9385     
9386     
9387     
9388     
9389     
9390     
9391     
9392     
9393     
9394     
9395     
9396     
9397     
9398     
9399     
9400     
9401     
9402     
9403     
9404     
9405     
9406     
9407     
9408     
9409     
9410     
9411     
9412     
9413     
9414     
9415     
9416     
9417     
9418     
9419     
9420     
9421     
9422     
9423     
9424     
9425     
9426     
9427     
9428     
9429     
9430     
9431     
9432     
9433     
9434     
9435     
9436     
9437     
9438     
9439     
9440     
9441     
9442     
9443     
9444     
9445     
9446     
9447     
9448     
9449     
9450     
9451     
9452     
9453     
9454     
9455     
9456     
9457     
9458     
9459     
9460     
9461     
9462     
9463     
9464     
9465     
9466     
9467     
9468     
9469     
9470     
9471     
9472     
9473     
9474     
9475     
9476     
9477     
9478     
9479     
9480     
9481     
9482     
9483     
9484     
9485     
9486     
9487     
9488     
9489     
9490     
9491     
9492     
9493     
9494     
9495     
9496     
9497     
9498     
9499     
9500     
9501     
9502     
9503     
9504     
9505     
9506     
9507     
9508     
9509     
9510     
9511     
9512     
9513     
9514     
9515     
9516     
9517     
9518     
9519     
9520     
9521     
9522     
9523     
9524     
9525     
9526     
9527     
9528     
9529     
9530     
9531     
9532     
9533     
9534     
9535     
9536     
9537     
9538     
9539     
9540     
9541     
9542     
9543     
9544     
9545     
9546     
9547     
9548     
9549     
9550     
9551     
9552     
9553     
9554     
9555     
9556     
9557     
9558     
9559     
9560     
9561     
9562     
9563     
9564     
9565     
9566     
9567     
9568     
9569     
9570     
9571     
9572     
9573     
9574     
9575     
9576     
9577     
9578     
9579     
9580     
9581     
9582     
9583     
9584     
9585     
9586     
9587     
9588     
9589     
9590     
9591     
9592     
9593     
9594     
9595     
9596     
9597     
9598     
9599     
9600     
9601     
9602     
9603     
9604     
9605     
9606     
9607     
9608     
9609     
9610     
9611     
9612     
9613     
9614     
9615     
9616     
9617     
9618     
9619     
9620     
9621     
9622     
9623     
9624     
9625     
9626     
9627     
9628     
9629     
9630     
9631     
9632     
9633     
9634     
9635     
9636     
9637     
9638     
9639     
9640     
9641     
9642     
9643     
9644     
9645     
9646     
9647     
9648     
9649     
9650     
9651     
9652     
9653     
9654     
9655     
9656     
9657     
9658     
9659     
9660     
9661     
9662     
9663     
9664     
9665     
9666     
9667     
9668     
9669     
9670     
9671     
9672     
9673     
9674     
9675     
9676     
9677     
9678     
9679     
9680     
9681     
9682     
9683     
9684     
9685     
9686     
9687     
9688     
9689     
9690     
9691     
9692     
9693     
9694     
9695     
9696     
9697     
9698     
9699     
9700     
9701     
9702     
9703     
9704     
9705     
9706     
9707     
9708     
9709     
9710     
9711     
9712     
9713     
9714     
9715     
9716     
9717     
9718     
9719     
9720     
9721     
9722     
9723     
9724     
9725     
9726     
9727     
9728     
9729     
9730     
9731     
9732     
9733     
9734     
9735     
9736     
9737     
9738     
9739     
9740     
9741     
9742     
9743     
9744     
9745     
9746     
9747     
9748     
9749     
9750     
9751     
9752     
9753     
9754     
9755     
9756     
9757     
9758     
9759     
9760     
9761     
9762     
9763     
9764     
9765     
9766     
9767     
9768     
9769     
9770     
9771     
9772     
9773     
9774     
9775     
9776     
9777     
9778     
9779     
9780     
9781     
9782     
9783     
9784     
9785     
9786     
9787     
9788     
9789     
9790     
9791     
9792     
9793     
9794     
9795     
9796     
9797     
9798     
9799     
9800     
9801     
9802     
9803     
9804     
9805     
9806     
9807     
9808     
9809     
9810     
9811     
9812     
9813     
9814     
9815     
9816     
9817     
9818     
9819     
9820     
9821     
9822     
9823     
9824     
9825     
9826     
9827     
9828     
9829     
9830     
9831     
9832     
9833     
9834     
9835     
9836     
9837     
9838     
9839     
9840     
9841     
9842     
9843     
9844     
9845     
9846     
9847     
9848     
9849     
9850     
9851     
9852     
9853     
9854     
9855     
9856     
9857     
9858     
9859     
9860     
9861     
9862     
9863     
9864     
9865     
9866     
9867     
9868     
9869     
9870     
9871     
9872     
9873     
9874     
9875     
9876     
9877     
9878     
9879     
9880     
9881     
9882     
9883     
9884     
9885     
9886     
9887     
9888     
9889     
9890     
9891     
9892     
9893     
9894     
9895     
9896     
9897     
9898     
9899     
9900     
9901     
9902     
9903     
9904     
9905     
9906     
9907     
9908     
9909     
9910     
9911     
9912     
9913     
9914     
9915     
9916     
9917     
9918     
9919     
9920     
9921     
9922     
9923     
9924     
9925     
9926   ]
9927   console.log(cityNonJabodetabek)
9928   let non_jabodetabek = []
9929   for(var i=0;i<cityNonJabodetabek.length;i++) {
9930     const obj = {
9931       "code": cityNonJabodetabek[i].toLowerCase().replace('pengiriman_', '').replace(' ','-'),
9932       "city": cityNonJabodetabek[i].replace('pengiriman_', '').replace(' ','-'),
9933       "zip": []
9934     }
9935     non_jabodetabek.push(obj)
9936   }
9937   let current_location = getCookie("location_delivery")
9938   $("[name=location]").change(function(){
9939     let v = $(this).val()
9940     let option = []
9941     if(v == 'Jabodetabek') {
9942       for(var i=0;i<jabodetabek.length;i++) {
9943         const jabodetabekHtml = `<option value=${jabodetabek[i].city}>${jabodetabek[i].city}</option>`
9944         option.push(jabodetabekHtml)
9945       }
9946       $("#choose-location").html(`<option value="">Choose Location</option>${option}`)
9947     } else {
9948       for(var i=0;i<non_jabodetabek.length;i++) {
9949         const nonjabodetabekHtml = `<option value=${non_jabodetabek[i].city}>${non_jabodetabek[i].city}</option>`
9950         option.push(nonjabodetabekHtml)
9951       }
9952       $("#choose-location").html(`<option value="">Choose Location</option>${option}`)
9953     }
9954   })
9955 
9956   $("#location-lock-submit").click(function(e){
9957     let select = $("#choose-location")
9958     let value = select.val().toLowerCase()
9959     console.log(value)
9960     if(select.val() == "") {
9961       return alert("Choose Your Location")
9962       e.preventDefault()
9963     }
9964     setCookie("location_delivery",value,1000000);
9965     
9966     location.reload();
9967     
9968   })
9969 
9970   $("#close-popup-delivery").click(function(){
9971     $(".MuiDialog-root").hide()
9972     if(!current_location){
9973       setCookie("location_delivery","jakarta",1000000);
9974       $("#loc_delivery_city, #loc_delivery_city_mobile").text("Jakarta")
9975     }
9976   })
9977   $("#loc_delivery, #loc_delivery_mobile").click(function(){
9978     $(".MuiDialog-root").show()
9979   })
9980 
9981   
9982   if(!current_location){
9983     
9984   } else {
9985     $("#loc_delivery_city, #loc_delivery_city_mobile").text(current_location)
9986     console.log(current_location)
9987     $("#choose-location").each(function(){
9988       if(current_location == 'jakarta' || current_location == 'depok' || current_location == 'bogor' || current_location == 'tangerang' || current_location == 'bekasi'){
9989         $("#jabodetabek").trigger("click")
9990       } else {
9991         $("#non-jabodetabek").trigger("click")
9992       }
9993       $("#choose-location").find("option[value="+current_location+"]").attr("selected", "selected")
9994     })
9995   }
9996 
9997   // 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'){
9998   //   $("#timeMalam").attr("disabled", false)
9999   // } else {
10000   //   $("#timeMalam").attr("disabled", true)
10001   // }
10002 
10003   if(current_location && current_location != 'jakarta') {
10004     $("#self-pickup").attr("disabled", true)
10005   }
10006 
10007   function setCookie(name,value,days) {
10008     var expires = "";
10009     if (days) {
10010       var date = new Date();
10011       date.setTime(date.getTime() + (days*24*60*60*1000));
10012       expires = "; expires=" + date.toUTCString();
10013     }
10014     document.cookie = name + "=" + (value || "")  + expires + "; path=/";
10015   }
10016   function getCookie(name) {
10017     var nameEQ = name + "=";
10018     var ca = document.cookie.split(';');
10019     for(var i=0;i < ca.length;i++) {
10020       var c = ca[i];
10021       while (c.charAt(0)==' ') c = c.substring(1,c.length);
10022       if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
10023     }
10024     return null;
10025   }
10026 </script>
10026
10027 <!-- One Tap -->
10028     
10028<script>
10029       console.log("Outerbloom...");
10030     </script>
10030
10031   <div id="shopify-block-ANVEzSUcxTUxZOGpwZ__9703700522657871012" class="shopify-block shopify-app-block">
10032 <link rel="stylesheet" href="https://cdn1.bitbybit.studio/bitbybit/static/bitChat_widget/widget.css" />
10033 
10033<script src="https://cdn1.bitbybit.studio/bitbybit/static/bitChat_widget/widget.js" defer></script>
10033
10034 
10034<script>
10035   const widgetConfig = {
10036     id: "clz7897za002cz7otleaz0d3d",
10037     showQuickResponse: false,
10038     quickResponsesData: [],
10039     themeColor: "#ffffff",
10040     widgetText: "",
10041     radiusType: "circle",
10042     widgetIconType: "whatsapp",
10043     position: "right",
10044     storeLogo: "",
10045     storeName: "Outerbloom",
10046     storeDescription: "",
10047     size: "small",
10048     showCard: false,
10049     widgetColorType: "solid",
10050     widgetColor1: "#008069",
10051     widgetColor2: "#008069",
10052     social: {
10053       socialOrders: ["instagram","tiktok","facebook","x","youtube","linkedin","email"],
10054       values: {
10055         instagram: {
10056           enabled: false,
10057           value: "",
10058         },
10059         facebook: {
10060           enabled: false,
10061           value: "",
10062         },
10063         email: {
10064           enabled: false,
10065           value: "",
10066         },
10067         x: {
10068           enabled: false,
10069           value: "",
10070         },
10071         tiktok: {
10072           enabled: false,
10073           value: "",
10074         },
10075         linkedin: {
10076           enabled: false,
10077           value: "",
10078         },
10079         youtube: {
10080           enabled: false,
10081           value: "",
10082         },
10083       },
10084     },
10085   };
10086 
10087   function initializeWidget() {
10088     if (typeof BBBWidget !== 'undefined') {
10089       BBBWidget.init(widgetConfig);
10090     } else {
10091       setTimeout(initializeWidget, 100);
10092     }
10093   }
10094 
10095   initializeWidget();</script>
10095
10096 
10097 
10098 </div><div id="shopify-block-ATzRpVTBPU3k1R2pnW__286197278318599166" class="shopify-block shopify-app-block">
10099 
10100 
10101 <div style="position: fixed; bottom: 0; right: 0"></div>
10102 
10103 
10103<script>
10104 console.info("bitlogin extension version: v2.5.7");
10105 
10106 const googleScript = document.createElement("script");
10107 googleScript.setAttribute("src", "https://accounts.google.com/gsi/client");
10108 document.head.append(googleScript);
10109 
10110 const bitLoginBaseUrl = "https://api.bitbybit.studio";
10111 const apiUrl = `${bitLoginBaseUrl}/bitlogin/api`;
10112 
10113 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"}};
10114 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
10114n1.oa2-cs.v1.1cb5f9085a202341f60daf5a7be16c570ccc0b4bd5908b3afd080f34e9b8935d","appleTeamId":null,"applePrivateKey":null,"usePersonalOauth":false,"position":null}];
10115 const redirectUrl = appearance.redirectLink;
10116 
10117 let locationCacheSet = false;
10118 let errorLocation = false;
10119 let oneTapSet = false;
10120 
10121 let bitloginCache = {
10122   appearance: appearance,
10123   config: config
10124 };
10125 
10126 let isInitializing = false;
10127 const queue = [];
10128 
10129 // Add CSS for the popup
10130 const popupStyles = document.createElement('style');
10131 popupStyles.textContent = `
10132   /* Styles for login popup */
10133   .bitlogin-popup-overlay {
10134     position: fixed;
10135     top: 0;
10136     left: 0;
10137     width: 100%;
10138     height: 100%;
10139     background: rgba(0, 0, 0, 0.45);
10140     backdrop-filter: blur(4px);
10141     display: flex;
10142     align-items: center;
10143     justify-content: center;
10144     opacity: 0;
10145     transition: opacity 0.3s ease-in-out;
10146     z-index: 999999;
10147   }
10148   
10149   .bitlogin-popup-overlay.visible {
10150     opacity: 1;
10151   }
10152   
10153   .bitlogin-popup {
10154     background: #FFFFFF;
10155     box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
10156     border-radius: 16px;
10157     width: 100%;
10158     max-width: 560px;
10159     display: flex;
10160     overflow: hidden;
10161     position: relative;
10162     opacity: 0;
10163     transform: translateY(20px) scale(0.98);
10164     transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
10165   }
10166   
10167   .bitlogin-popup.visible {
10168     opacity: 1;
10169     transform: translateY(0) scale(1);
10170   }
10171   
10172   .bitlogin-popup-with-image {
10173     max-width: 640px;
10174   }
10175   
10176   .bitlogin-popup-right-image {
10177     flex-direction: row-reverse;
10178   }
10179   
10180   .bitlogin-popup-image {
10181     object-fit: cover;
10182     width: 50%;
10183     height: auto;
10184   }
10185   
10186   .bitlogin-popup-content {
10187     padding: 32px;
10188     position: relative;
10189     width: 50%;
10190   }
10191   
10192   .bitlogin-popup-close {
10193     position: absolute;
10194     top: 16px;
10195     right: 16px;
10196     background: white;
10197     border: none;
10198     width: 30px;
10199     height: 30px;
10200     display: flex;
10201     align-items: center;
10202     justify-content: center;
10203     cursor: pointer;
10204     transition: background-color 0.2s;
10205     color: inherit;
10206     padding: 0;
10207   }
10208   
10209   .bitlogin-popup-close:hover {
10210     background-color: #e5e5e5;
10211   }
10212   
10213   .bitlogin-popup-buttons {
10214     display: flex;
10215     flex-direction: column;
10216     gap: 12px;
10217     margin-top: 24px;
10218   }
10219   
10220   /* Button styles within popup - override width for popup buttons */
10221   .bitlogin-popup-buttons #google-login,
10222   .bitlogin-popup-buttons #facebook-login,
10223   .bitlogin-popup-buttons #apple-login,
10224   .bitlogin-popup-buttons #whatsapp-login,
10225   .bitlogin-popup-buttons #microsoft-login,
10226   .bitlogin-popup-buttons #twitter-login,
10227   .bitlogin-popup-buttons #amazon-login,
10228   .bitlogin-popup-buttons #instagram-login,
10229   .bitlogin-popup-buttons #magic-link-login,
10230   .bitlogin-popup-buttons #mobile-app-login {
10231     width: 100% !important;
10232     font-family: inherit !important;
10233   }
10234   
10235   .bitlogin-popup-footer {
10236     margin-top: 32px;
10237     text-align: center;
10238     font-size: 14px;
10239     opacity: 0.6;
10240   }
10241   
10242   /* Modern Typography */
10243   .bitlogin-popup h2 {
10244     margin-top: 12px;
10245     font-size: 21px !important;
10246     line-height: 1.2 !important;
10247     font-weight: 700 !important;
10248     letter-spacing: -0.02em !important;
10249     margin-bottom: 16px !important;
10250   }
10251   
10252   .bitlogin-popup-header {
10253     position: relative;
10254     margin-bottom: 24px;
10255   }
10256   
10257   /* Modern gradient accent */
10258   .bitlogin-popup-content > div {
10259     font-size: 16px !important;
10260     line-height: 1.2 !important;
10261     opacity: 0.85 !important;
10262   }
10263   
10264   /* Enhanced button interactions */
10265   .bitlogin-popup-buttons button {
10266     position: relative;
10267     overflow: hidden;
10268   }
10269   
10270   @keyframes ripple {
10271     0% {
10272       transform: scale(0, 0);
10273       opacity: 0.5;
10274     }
10275     100% {
10276       transform: scale(100, 100);
10277       opacity: 0;
10278     }
10279   }
10280   
10281   /* Responsive adjustments */
10282   @media (max-width: 640px) {
10283     .bitlogin-popup {
10284       max-width: 90%;
10285       width: 90%;
10286       margin: 0 16px;
10287     }
10288     
10289     .bitlogin-popup-with-image {
10290       flex-direction: column !important;
10291     }
10292     
10293     .bitlogin-popup-image {
10294       width: 100%;
10295       height: 180px;
10296     }
10297     
10298     .bitlogin-popup-content {
10299       padding: 24px;
10300     }
10301     
10302     .bitlogin-popup h2 {
10303       font-size: 24px !important;
10304     }
10305   }
10306 `;
10307 
10308 document.head.appendChild(popupStyles);
10309 
10310 // Add fonts link for different font options
10311 const fontsLink = document.createElement('link');
10312 fontsLink.rel = 'stylesheet';
10313 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';
10314 document.head.appendChild(fontsLink);
10315 
10316 (async () => {
10317   try {
10318     let host = window.location.host;
10319     if (host === "admin.shopify.com") {
10320       host = `${window.location.pathname.split("/")[2]}.myshopify.com`;
10321     }
10322 
10323     const urlSearchParams = new URLSearchParams(window.location.search);
10324     const checkoutUrl = urlSearchParams.get("checkout_url");
10325 
10326     async function init({ inputRef, index }) {
10327       if (isInitializing) {
10328         queue.push(() => init({ inputRef, index }));
10329         return;
10330       }
10331 
10332       isInitializing = true;
10333 
10334       try {
10335         let bitLoginSectionRoot = document.querySelector(
10336           `.bitlogin-root[data-index="${index}"]`
10337         );
10338 
10339         const formRef = inputRef?.closest(
10340           "form:not([action='/account/recover'])"
10341         );
10342 
10343         if (formRef && !bitLoginSectionRoot) {
10344           await getLocation();
10345 
10346           bitLoginSectionRoot = document.createElement(`div`);
10347 
10348           bitLoginSectionRoot.setAttribute("class", "bitlogin-root");
10349           bitLoginSectionRoot.setAttribute("data-index", `${index}`);
10350 
10351           updateAppearance({
10352             formRef,
10353             rootRef: bitLoginSectionRoot,
10354             host,
10355           });
10356         }
10357       } catch (err) {
10358         console.error(`error while initiating bitlogin extensions`, err);
10359       } finally {
10360         // Release the lock
10361         isInitializing = false;
10362 
10363         // Check if there are pending items in the queue
10364         if (queue.length > 0) {
10365           // Process the next function in the queue
10366           const nextFunction = queue.shift();
10367           nextFunction();
10368         }
10369       }
10370     }
10371 
10372     function initAll() {
10373       return new Promise((resolve, reject) => {
10374         setTimeout(async () => {
10375           const inputRefs = document.querySelectorAll(
10376             'input[name="customer[email]"]'
10377           );
10378 
10379           for (let i = 0; i < inputRefs.length; i++) {
10380             const currentInputRef = inputRefs[i];
10381             const isVisible = isElementVisible(currentInputRef);
10382 
10383             if (isVisible) {
10384               await init({ inputRef: currentInputRef, index: i });
10385             }
10386           }
10387 
10388           resolve("ok");
10389         }, 100);
10390       });
10391     }
10392 
10393     const observer = new MutationObserver((mutationsList) => {
10394       for (let mutation of mutationsList) {
10395         initAll();
10396       }
10397     });
10398 
10399     observer.observe(document.body, {
10400       childList: true,
10401       subtree: true,
10402       attributes: true,
10403     });
10404 
10405     initAll();
10406 
10407     if (appearance.googleOneTap) {
10408       setupOneTap({ host, checkoutUrl });
10409     }
10410 
10411     // Initialize popup
10412     await initPopup(host);
10413   } catch (error) {
10414     console.error("Error initializing BitLogin:", error);
10415   }
10416 })();
10417 
10418 async function initPopup(host) {
10419   // Check if user is already logged in using Liquid checks properly
10420   const isLoggedIn = false || 
10421                     document.querySelector('.customer-logout-link') || 
10422                     document.querySelector('.account-link') || 
10423                     window.location.pathname.includes('/account');
10424   
10425   if (isLoggedIn) {
10426     return; // User is logged in, don't show popup
10427   }
10428 
10429   try {
10430     // Fetch the popup configuration
10431     const popupConfig = await fetch(`${apiUrl}/appearance/popup/domain/${host}`)
10432       .then(res => res.json())
10433       .catch(err => {
10434         console.error('Error fetching popup configuration:', err);
10435         return null;
10436       });
10437 
10438     if (!popupConfig || !popupConfig.enabled) {
10439       return;
10439 // Don't show popup if disabled or config not found
10440     }
10441 
10442     // Create popup after 10 seconds
10443     setTimeout(() => {
10444       // Check if user is still on the page and still not logged in
10445       if (document.visibilityState === 'visible') {
10446         // Additional check in case user logged in during the 10 second wait
10447         const currentlyLoggedIn = false || 
10448                               document.querySelector('.customer-logout-link') || 
10449                               document.querySelector('.account-link');
10450         
10451         if (!currentlyLoggedIn) {
10452           createLoginPopup(popupConfig, host);
10453         }
10454       }
10455     }, 10000);
10456   } catch (error) {
10457     console.error('Error initializing popup:', error);
10458   }
10459 }
10460 
10461 function createLoginPopup(popupConfig, host) {
10462   // Font mapping
10463   const fontFamilyMap = {
10464     system_fonts: 'system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',
10465     montserrat: 'Montserrat, sans-serif',
10466     roboto: 'Roboto, sans-serif',
10467     open_sans: 'Open Sans, sans-serif',
10468     noto_sans: 'Noto Sans, sans-serif',
10469     lato: 'Lato, sans-serif',
10470     poppins: 'Poppins, sans-serif',
10471     quicksand: 'Quicksand, sans-serif',
10472     raleway: 'Raleway, sans-serif',
10473     pt_sans: 'PT Sans, sans-serif',
10474     oswald: 'Oswald, sans-serif',
10475   };
10476 
10477   // Create overlay
10478   const overlay = document.createElement('div');
10479   overlay.className = 'bitlogin-popup-overlay';
10480   
10481   // Create popup container with appropriate styling
10482   const popup = document.createElement('div');
10483   popup.className = 'bitlogin-popup';
10484 
10485   if (popupConfig.layout === 'default') {
10486     popup.style.maxWidth = '400px';
10487   }
10488   
10489   // Function to close the popup
10490   const closePopup = () => {
10491     overlay.classList.remove('visible');
10492     popup.classList.remove('visible');
10493     setTimeout(() => {
10494       if (document.body.contains(overlay)) {
10495         document.body.removeChild(overlay);
10496       }
10497     }, 300);
10498   };
10499   
10500   // Add click handler to the overlay to close when clicking outside
10501   overlay.addEventListener('click', (event) => {
10502     // Close only if clicking directly on the overlay, not its children
10503     if (event.target === overlay) {
10504       closePopup();
10505     }
10506   });
10507   
10508   // Add escape key handler to close popup
10509   document.addEventListener('keydown', (event) => {
10510     if (event.key === 'Escape' && document.body.contains(overlay)) {
10511       closePopup();
10512     }
10513   });
10514 
10515   // Create layout with image if specified
10516   let contentWrapper;
10517   if (popupConfig.layout !== 'default' && popupConfig.popupImage) {
10518     popup.classList.add('bitlogin-popup-with-image');
10519     
10520     if (popupConfig.layout === 'right') {
10521       popup.classList.add('bitlogin-popup-right-image');
10522     }
10523     
10524     // Add image
10525     const image = document.createElement('img');
10526     image.className = 'bitlogin-popup-image';
10527     image.src = popupConfig.popupImage;
10528     image.alt = 'Login';
10529     image.loading = 'lazy';
10530     popup.appendChild(image);
10531     
10532     // Create content container
10533     contentWrapper = document.createElement('div');
10534     contentWrapper.className = 'bitlogin-popup-content';
10535 
10536     if (popupConfig.layout === 'right') {
10537       const closeButton = document.createElement('button');
10538       closeButton.className = 'bitlogin-popup-close';
10539       closeButton.innerHTML = `<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="assets/logo/logonix-anim.gif">
10540         <path d="M13 1L1 13M1 1L13 13" stroke="${popupConfig.fontColor}" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
10541       </svg>`;
10542       closeButton.setAttribute('aria-label', 'Close');
10543       closeButton.onclick = closePopup;
10544   
10545       popup.appendChild(closeButton);
10546     }
10547   } else {
10548     contentWrapper = document.createElement('div');
10549     contentWrapper.className = 'bitlogin-popup-content';
10550     contentWrapper.style.width = '100%';
10551   }
10552 
10553   // Set background style
10554   if (popupConfig.backgroundTheme === 'gradient') {
10555     contentWrapper.style.background = `linear-gradient(135deg, ${popupConfig.backgroundPopupColor}, ${popupConfig.gradientColor})`;
10556   } else {
10557     contentWrapper.style.backgroundColor = popupConfig.backgroundPopupColor;
10558   }
10559 
10560   // Apply font family
10561   contentWrapper.style.setProperty('font-family', fontFamilyMap[popupConfig.font] || fontFamilyMap.system_fonts, 'important');
10562 
10563   if (popupConfig.layout !== 'right') {
10564     const closeButton = document.createElement('button');
10565     closeButton.className = 'bitlogin-popup-close';
10566     closeButton.innerHTML = `<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="assets/logo/logonix-anim.gif">
10567       <path d="M13 1L1 13M1 1L13 13" stroke="${popupConfig.fontColor}" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
10568     </svg>`;
10569     closeButton.setAttribute('aria-label', 'Close');
10570     closeButton.onclick = closePopup;
10571   
10572     contentWrapper.appendChild(closeButton);
10573   }
10574 
10575   // Add heading with subtle animation effect
10576   const header = document.createElement('div');
10577   header.className = 'bitlogin-popup-header';
10578   
10579   const heading = document.createElement('h2');
10580   heading.textContent = popupConfig.headingText || 'Sign in for exclusive benef
10580its';
10581   heading.style.color = popupConfig.fontColor;
10582   header.appendChild(heading);
10583 
10584   // Add body text with improved formatting
10585   const bodyText = document.createElement('div');
10586   bodyText.innerHTML = popupConfig.bodyText || 'Join our community to access exclusive offers and a personalized shopping experience.';
10587   bodyText.style.color = popupConfig.fontColor;
10588   header.appendChild(bodyText);
10589   
10590   contentWrapper.appendChild(header);
10591 
10592   // Create buttons container with modern styling
10593   const buttonsContainer = document.createElement('div');
10594   buttonsContainer.className = 'bitlogin-popup-buttons';
10595   
10596   // Add social buttons
10597   const providerLabels = {
10598     'GOOGLE': 'Continue with Google',
10599     'FACEBOOK': 'Continue with Facebook',
10600     'APPLE': 'Continue with Apple',
10601     'WHATSAPP': 'Continue with WhatsApp',
10602     'MAGIC_LINK': 'Continue with Email',
10603   };
10604 
10605   // Add first login provider button
10606   if (popupConfig.loginProvider1 !== 'NONE') {
10607     const buttonConfig = {
10608       theme: popupConfig.colorScheme || 'match',
10609       customColor: popupConfig.textColor,
10610       format: 'contentFlex',
10611       buttonText: bitloginCache.appearance.buttonList[popupConfig.loginProvider1.toLowerCase()],
10612       hasShadow: popupConfig.hasShadow !== undefined ? popupConfig.hasShadow : true,
10613       style: popupConfig.style || 'rounded',
10614       size: popupConfig.size || 'medium',
10615       colorScheme: popupConfig.colorScheme || 'match',
10616       backgroundColor: popupConfig.backgroundColor || '#3B82F6',
10617       textColor: popupConfig.textColor || '#FFFFFF',
10618       outlineColor: popupConfig.outlineColor || '#3B82F6',
10619       host: host
10620     };
10621     
10622     const button1 = createSocialLoginButton(popupConfig.loginProvider1, buttonConfig);
10623     
10624     // Handle click event - this overrides the default click handler in createSocialLoginButton
10625     button1.onclick = () => {
10626       onClickSocialLogin({ provider: popupConfig.loginProvider1.toLowerCase(), host });
10627       closePopup();
10628     };
10629     
10630     buttonsContainer.appendChild(button1);
10631   }
10632 
10633   // Add second login provider button if enabled
10634   if (popupConfig.loginProvider2 !== 'NONE') {
10635     const buttonConfig = {
10636       theme: popupConfig.colorScheme || 'match',
10637       customColor: popupConfig.textColor,
10638       format: 'contentFlex',
10639       buttonText: bitloginCache.appearance.buttonList[popupConfig.loginProvider2.toLowerCase()],
10640       hasShadow: popupConfig.hasShadow !== undefined ? popupConfig.hasShadow : true,
10641       style: popupConfig.style || 'rounded',
10642       size: popupConfig.size || 'medium',
10643       colorScheme: popupConfig.colorScheme || 'match',
10644       backgroundColor: popupConfig.backgroundColor || '#3B82F6',
10645       textColor: popupConfig.textColor || '#FFFFFF',
10646       outlineColor: popupConfig.outlineColor || '#3B82F6',
10647       host: host
10648     };
10649     
10650     const button2 = createSocialLoginButton(popupConfig.loginProvider2, buttonConfig);
10651     
10652     // Handle click event - this overrides the default click handler in createSocialLoginButton
10653     button2.onclick = () => {
10654       onClickSocialLogin({ provider: popupConfig.loginProvider2.toLowerCase(), host });
10655       closePopup();
10656     };
10657     
10658     buttonsContainer.appendChild(button2);
10659   }
10660 
10661   contentWrapper.appendChild(buttonsContainer);
10662 
10663   // Append content to popup
10664   popup.appendChild(contentWrapper);
10665   
10666   // Append popup to overlay
10667   overlay.appendChild(popup);
10668   
10669   // Append overlay to body
10670   document.body.appendChild(overlay);
10671   
10672   // Trigger animation with slight delay for better perceived performance
10673   setTimeout(() => {
10674     overlay.classList.add('visible');
10675     setTimeout(() => {
10676       popup.classList.add('visible');
10677     }, 50);
10678   }, 10);
10679 }
10680 
10681 window.addEventListener("load", () => {
10682   window.addEventListener("message", (event) => {
10683     const receivedData = event.data;
10684 
10685     if (receivedData.type === "authorize") {
10686       post(
10687         JSON.parse(
10688           JSON.stringify({
10689             "customer[email]": receivedData.email,
10690             "customer[password]": receivedData.password,
10691             form_type: "customer_login",
10692             utf8: "✓",
10693             return_url: redirectUrl,
10694           })
10695         )
10696       );
10697     } else if (receivedData.type === "rejected") {
10698       if (receivedData.reason === "customer_account_disabled") {
10699         showAlert(
10700           "Your account needs to be activated. We've sent you an activation link - please check your email to complete this step."
10701         );
10702       } else if (receivedData.reason === "customer_entry_created_email_not_set") {
10703         showAlert(
10704           "A new account was created but requires an email address. Please update your account with a valid email address to continue."
10705         );
10706       } else if (receivedData.reason === "customer_exist_email_not_set") {
10707         showAlert(
10708           "Your existing account is missing an email address. Please contact support to update your account with a valid email address."
10709         );
10710       }
10711     }
10712 
10713     if (receivedData.type === "customer_authenticated") {
10714       // Dispatch a custom event that merchants can listen for to implement their custom logic
10715       const customerAuthEvent = new CustomEvent('bitlogin:customer_authenticated', {
10716         detail: {
10717           provider: receivedData.provider,
10718           customer: receivedData.customer,
10719           shopifyCustomerCreated: receivedData.shopifyCustomerCreated
10720         }
10721       });
10722       
10723       // Dispatch the event on the window object so merchants can listen for it
10724       window.dispatchEvent(customerAuthEvent);
10725       
10726     }
10727   });
10728 });
10729 
10730 // Reusable functions for social login buttons
10731 function createSocialLoginButton(provider, config = {}) {
10732   const {
10733     theme = 'match',
10734     customColor = null,
10735     format = 'contentFlex',
10736     buttonText = null,
10737     hasShadow = true,
10738     style = 'rounded',
10739     size = 'medium',
10740     colorScheme = 'match',
10741     backgroundColor = '#3B82F6',
10742     textColor = '#FFFFFF',
10743     outlineColor = '#3B82F6',
10744     rootRef = null,
10745     host = null
10746   } = config;
10747   
10748   // Create button element with appropriate ID and attributes
10749   const button = document.createElement('button');
10750   button.id = `${provider.toLowerCase()}-login`;
10751   button.type = 'button';
10752   
10753   // Set the inner SVG based on provider
10754   switch (provider.toUpperCase()) {
10755     case 'GOOGLE':
10756       button.innerHTML = googleLoginIcon(theme, customColor);
10757       break;
10758     case 'FACEBOOK':
10759       button.innerHTML = facebookLoginIcon(theme, customColor);
10760       break;
10761     case 'APPLE':
10762       button.innerHTML = appleLoginIcon(theme, customColor);
10763       break;
10764     case 'WHATSAPP':
10765       button.innerHTML = whatsappLoginIcon(theme, customColor);
10766       break;
10767     case 'MICROSOFT':
10768       button.innerHTML = microsoftLoginIcon(theme, customColor);
10769       break;
10770     case 'TWITTER':
10771       button.innerHTML = twitterLoginIcon(theme, customColor);
10772       break;
10773     case 'AMAZON':
10774       button.innerHTML = amazonLoginIcon(theme, customColor);
10775       break;
10776     case 'INSTAGRAM':
10777       button.innerHTML = instagramLoginIcon(theme, customColor);
10778       break;
10779     case 'MAGIC_LINK':
10780       button.innerHTML = magicLinkLoginIcon(theme, customColor);
10781       break;
10782     case 'MOBILE_APP':
10783       button.innerHTML = mobileAppLoginIcon(theme, customColor);
10784       break;
10785     case 'LINKEDIN':
10786       button.innerHTML = linkedinLoginIcon(theme, customColor);
10787       break;
10788   }
10789   
10790   // Add text if format isn't icon-only and buttonText is provided
10791   if (format !== "wrapperFlexContainerOnlyLogo" && buttonText) {
10792     button.innerHTML += `<p>${buttonText}</p>`;
10793   }
10794   
10795   // Apply styling
10796   // Shadow
10797   if (hasShadow) {
10798     const shadowProperties = `0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)`;
10799     button.style["box-shadow"] = shadowProperties;
10800   }
10801   
10802   // Border radius
10803   const radiusProperties =
10804     style === "rounded"
10805       ? "8px"
10806       : style === "square"
10807       ? "0px"
10808       : style === "fullRounded"
10809       ? format === "wrapperFlexContainerOnlyLogo"
10810         ? "50%"
10811         : "50px"
10812       : undefined;
10813   button.style["border-radius"] = radiusProperties;
10814   
10815   // Size
10816   const sizeProperties =
10817     size === "medium"
10818       ? "12px"
10819       : size === "small"
10820       ? "8px"
10821       : size === "large"
10822       ? "16px"
10823       : "8px";
10824 
10825   button.style["padding-block"] = sizeProperties;
10826 
10827   // Format styling
10828   if (format) {
10829     if (
10830       format === "contentFlexReverse" ||
10831       format === "contentFlexCenterReverse"
10832     ) {
10833       const flexDir = `row-reverse`;
10834       button.style["flex-direction"] = flexDir;
10835     }
10836     
10837     if (
10838       format === "contentFlexCenter" ||
10839       format === "contentFlexCenterReverse"
10840     ) {
10841       const justifyContent = `center`;
10842       button.style["justify-content"] = justifyContent;
10843     } else if (
10844       format === "contentFlex" ||
10845       format === "contentFlexReverse"
10846     ) {
10847       const buttonTextElement = button.querySelector("p");
10848       if (buttonTextElement) {
10849         buttonTextElement.style["flex-grow"] = 1;
10850         buttonTextElement.style["text-align"] = "center";
10851       }
10852     }
10853 
10854     if (format === "wrapperFlexContainerOnlyLogo" && rootRef) {
10855       rootRef.style["flex-direction"] = "row";
10856       rootRef.style["gap"] = "8px";
10857       rootRef.style["display"] = "flex";
10858       rootRef.style["flex-wrap"] = "wrap";
10859 
10860       const sizeMapping = {
10861         small: "52px",
10862         medium: "62px",
10863         large: "72px",
10864       };
10865       const buttonSize = sizeMapping[size] || "52px";
10866 
10867       button.style["margin"] = 0;
10868       button.style["width"] = buttonSize;
10869       button.style["height"] = buttonSize;
10870       button.style["display"] = "flex";
10871       button.style["align-items"] = "center";
10872       button.style["justify-content"] = "center";
10873 
10874       const svgElement = button.querySelector("svg");
10875       if (svgElement) {
10876         svgElement.style["flex"] = "none";
10877       }
10878     }
10879   }
10880 
10881   // Color scheme styling
10882   if (colorScheme === "black") {
10883     button.classList.add("scheme-black");
10884   } else if (colorScheme === "white") {
10885     button.classList.add("scheme-white");
10886   } else if (colorScheme === "custom") {
10887     button.style["background-color"] = backgroundColor;
10888     button.style["color"] = textColor;
10889     button.style["border-color"] = outlineColor;
10890 
10891     const darkenColor = (color, percentage) => {
10892       const value = parseInt(color.slice(1), 16);
10893       const r = Math.max(0, ((value >> 16) & 0xff) - (0xff * percentage));
10894       const g = Math.max(0, ((value >> 8) & 0xff) - (0xff * percentage));
10895       const b = Math.max(0, (value & 0xff) - (0xff * percentage));
10896       return `rgb(${Math.round(r)}, ${Math.round(g)}, ${Math.round(b)})`;
10897     };
10898 
10899     button.addEventListener("mouseover", () => {
10900       button.style["background-color"] = darkenColor(backgroundColor, 0.2);
10901     });
10902     button.addEventListener("mouseout", () => {
10903       button.style["background-color"] = backgroundColor;
10904     });
10905   } else if (colorScheme === "match") {
10906     button.classList.add("scheme-match");
10907   } else if (colorScheme === "matchOutline") {
10908     button.classList.add("scheme-match-outline");
10909   }
10910   
10911   // Add click event listener if host is provided
10912   if (host) {
10913     button.addEventListener("click", () => 
10914       onClickSocialLogin({ provider: provider.toLowerCase(), host })
10915     );
10916   }
10917   
10918   return button;
10919 }
10920 
10921 function setupSocialLoginButtons(config, rootRef, data, host) {
10922   // Clear any existing content
10923   rootRef.innerHTML = '';
10924 
10925   const sortedEnabledProviders = config
10926     .filter(c => c.enabledWeb)
10927     .sort((a, b) => a.position - b.position);
10928 
10929   sortedEnabledProviders.forEach(provider => {
10930     const key = provider.provider;
10931     const lowerKey = key.toLowerCase();
10932 
10933     const buttonText = data.format !== "wrapperFlexContainerOnlyLogo"
10934       ? (lowerKey === 'twitter'
10935           ? data.buttonList.twitter.replace('Twitter', 'X')
10936           : data.buttonList[lowerKey])
10937       : null;
10938 
10939     const button = createSocialLoginButton(key, {
10940       theme: data.colorScheme || 'match',
10941       customColor: data.textColor,
10942       format: data.format,
10943       buttonText: buttonText,
10944       hasShadow: data.hasShadow !== undefined ? data.hasShadow : true,
10945       style: data.style,
10946       size: data.size,
10947       colorScheme: data.colorScheme,
10948       backgroundColor: data.backgroundColor,
10949       textColor: data.textColor,
10950       outlineColor: data.outlineColor,
10951       rootRef: rootRef,
10952       host: host
10953     });
10954 
10955     rootRef.appendChild(button);
10956   });
10957 
10958   return rootRef;
10959 }
10960 
10961 function updateAppearance({ formRef, rootRef, host }) {
10962   if (!formRef) return;
10963 
10964   const data = bitloginCache.appearance || {
10965     style: "square",
10966     hasShadow: false,
10967     colorScheme: "match",
10968     backgroundColor: "#FFFFFF",
10969     outlineColor: "#000000",
10970     textColor: "#000000",
10971     position: "bottom",
10972     hideDivider: "false",
10973     dividerText: "OR",
10974     size: "small",
10975     format: "contentFlex",
10976     language: "en",
10977     buttonText: "Continue with",
10978     redirectLink: "/account",
10979     googleOneTap: true,
10980     googleOneTapBanner: true,
10981     customerTag: "bitLogin",
10982     redirectOneTapDesktop: null,
10983     redirectOneTapMobile: null,
10984     buttonList: {
10985       google: "Continue with Google",
10986       facebook: "Continue with Facebook",
10987       apple: "Continue with Apple",
10988       whatsapp: "Continue with WhatsApp",
10989       microsoft: "Continue with Microsoft",
10990       twitter: "Continue with X",
10991       amazon: "Continue with Amazon",
10992       instagram: "Continue with Instagram",
10993       magic_link: "Continue with Magic Link",
10994       mobile_app: "Continue with Mobile App",
10995       linkedin: "Continue with LinkedIn",
10996     },
10997   };
10998 
10999   // Use the new setupSocialLoginButtons function to create and configure all buttons
11000   setupSocialLoginButtons(bitloginCache.config, rootRef, data, host);
11001 
11002   let divider;
11003 
11004   if (!data.hideDivider) {
11005     divider = document.createElement("div");
11006     const dividerStyle = "text-align:center;margin-block:16px";
11007     divider.setAttribute("style", dividerStyle);
11008     divider.innerHTML = data.dividerText;
11009   }
11010 
11011   if (data.position === "bottom") {
11012     if (divider) {
11013       formRef.appendChild(divider);
11014     }
11015     formRef.appendChild(rootRef);
11016   } else if (data.position === "top") {
11017     if (divider) {
11018       formRef.prepend(divider);
11019     }
11020     formRef.prepend(rootRef);
11021   }
11022 }
11023 
11024 
11025 async function onClickSocialLogin({ provider, host }) {
11026   const rand = Math.random().toString();
11027 
11028   const locationQueryString = bitloginCache.location
11029     ? `&${objectToQueryString(bitloginCache.location)}`
11030     : "";
11031 
11032   const width = 800;
11033   const height = 600;
11034   const left = (window.screen.width / 2) - (width / 2);
11035   const top = (window.screen.height / 2) - (height / 2) - 50;
11036 
11037   if(provider === 'whatsapp') {
11038     window.open(
11039       `/apps/bitlogin/whatsapp${locationQueryString ? `?${locationQueryString}` : ''}`,
11040       "mywindow",
11041       `menubar=1,resizable=1,width=${width},height=${height},top=${top},left=${left}`
11042     );
11043   } else {
11044     window.open(
11045       `${apiUrl}/login/${provider}?referrerId=${rand}&shop=${host}${locationQueryString}`,
11046       "mywindow",
11047       `menubar=1,resizable=1,width=${width},height=${height},top=${top},left=${left}`
11048     );
11049   }
11050 }
11051 
11052 function objectToQueryString(obj) {
11053   return Object.keys(obj)
11054     .map((key) => {
11055       return encodeURIComponent(key) + "=" + encodeURIComponent(obj[key]);
11056     })
11057     .join("&");
11058 }
11059 
11060 async function getLocation() {
11061   if (locationCacheSet) return;
11062 
11063   try {
11064     const response = await fetch("https://ipapi.co/json/");
11065 
11066     if (!response.ok) {
11067       console.error(`error retrieving location...`, response.status);
11068       errorLocation = true;
11069     } else {
11070       const data = await response.json();
11071 
11072       const { city, region, country_name, country_code } = data;
11073 
11074       const formattedLocationData = {
11075         city,
11076         region,
11077         country_name,
11078         country_code,
11079       };
11080 
11081       bitloginCache.location = formattedLocationData;
11082       locationCacheSet = true;
11083       errorLocation = false;
11084     }
11085   } catch (err) {
11086     console.error(`error fetching location`, err);
11087     errorLocation = true;
11088   }
11089 }
11090 
11091 function post(params) {
11092   // The rest of this code assumes you are not using a library.
11093   // It can be made less verbose if you use one.
11094   const form = document.createElement("form");
11095   form.method = "post";
11096   form.action = `/account/login`;
11097   form.acceptCharset = "UTF-8";
11098   form.setAttribute("data-login-with-shop-sign-in", "true");
11099   form.setAttribute("novalidate", "novalidate");
11100 
11101   for (const key in params) {
11102     if (params.hasOwnProperty(key)) {
11103       const hiddenField = document.createElement("input");
11104       hiddenField.type = "hidden";
11105       hiddenField.name = key;
11106       hiddenField.value = params[key];
11107 
11108       form.appendChild(hiddenField);
11109     }
11110   }
11111 
11112   document.body.appendChild(form);
11113   form.submit();
11114 }
11115 
11116 async function setupOneTap({ host, checkoutUrl }) {
11117   if (oneTapSet) return;
11118 
11119   const redirectOneTapDesktop = JSON.parse(JSON.stringify(bitloginCache.appearance.redirectOneTapDesktop || '[]'));
11120   const redirectOneTapMobile = JSON.parse(JSON.stringify(bitloginCache.appearance.redirectOneTapMobile || '[]'));
11121 
11122   const isMobile = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent);
11123   const redirectList = JSON.parse(isMobile ? redirectOneTapMobile : redirectOneTapDesktop);
11124 
11125   const currentPath = window.location.pathname.toLowerCase();
11126   const currentUrl = window.location.href.toLowerCase();
11127 
11128   const shouldHideGoogleOneTap = redirectList.some(({ value }) => {
11129     switch (value) {
11130       case 'home':
11131         return currentPath === '/';
11132       case 'product':
11133         return currentPath.startsWith('/products/');
11134       case 'collections':
11135         return currentPath.startsWith('/collections');
11136       case 'cart':
11137         return currentPath === '/cart';
11138       case 'checkout':
11139         return currentPath.startsWith('/checkouts') && !currentPath.includes('thank_you');
11140       case 'thank_you':
11141         return currentPath.includes('/thank_you');
11142       case 'account':
11143         return currentPath.startsWith('/account');
11144       case 'pages':
11145         return currentPath.startsWith('/pages');
11146       case 'blogs':
11147         return currentPath === '/blogs' || currentPath === '/blogs/news';
11148       case 'blog_post':
11149         return currentPath.startsWith('/blogs/') && currentPath.split('/').length > 3;
11150       default:
11151         return false;
11152     }
11153   });
11154 
11155   if (shouldHideGoogleOneTap) return;
11156 
11157   const oneTapClientId = bitloginCache.config.find(
11158     (config) => config.provider === "GOOGLE"
11159   )?.clientId;
11160 
11161   const isLoggedIn = false;
11162 
11163   if (bitloginCache.appearance.googleOneTap && oneTapClientId && !isLoggedIn) {
11164     const googleOneTapButton = document.createElement("div");
11165     googleOneTapButton.setAttribute("id", "g_id_onload");
11166     googleOneTapButton.setAttribute("data-client_id", oneTapClientId);
11167     googleOneTapButton.setAttribute("data-context", "signin");
11168     googleOneTapButton.setAttribute(
11169       "data-callback",
11170       "handleGoogleOneTapResponse"
11171     );
11172     googleOneTapButton.setAttribute("data-itp_support", "true");
11173 
11174     const googleOneTapScript = document.createElement("script");
11175 
11176     googleOneTapScript.innerHTML += `
11177           function handleGoogleOneTapResponse(response) {
11178               if (response.credential) {
11179                   const idToken = response.credential;
11180                   fetch('${bitLoginBaseUrl}/bitlogin/api/login/google-one-tap', {
11181                       method: 'POST',
11182                       headers: { 'Content-Type': 'application/json' },
11183                       body: JSON.stringify({ idToken, shop: "${host}", ...bitloginCache.location })
11184                   }).then(response => {
11185                       response.json().then((data) => {
11186                         post(
11187                           JSON.parse(
11188                             JSON.stringify({
11189                               "customer[email]": data.email,
11190                               "customer[password]": data.password,
11191                               form_type: "customer_login",
11192                               utf8: "✓",
11193                               return_url: redirectUrl,
11194                             })
11195                           )
11196                         );
11197                       });  
11198                   }).catch(error => {
11199                       console.error('Error occurred:', error);
11200                   });
11201               } else {
11202                   console.error('No credential available');
11203               }
11204           }
11205        `;
11206 
11207     document.body.append(googleOneTapButton);
11208     document.body.append(googleOneTapScript);
11209   }
11210 
11211   oneTapSet = true;
11212 }
11213 
11214 const googleLoginIcon = (
11215   theme,
11216   customColor
11217 ) => `
11218 ${
11219   theme === "match" || theme === "matchOutline" || theme === "custom"
11220     ? `<svg
11221     xmlns='assets/logo/logonix-anim.gif'
11222     xmlns:v='https://vecta.io/nano'
11223     width='24'
11224     height='24'
11225     viewBox='0 0 186.69 190.5'
11226   >
11227     <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="${
11228       theme === "custom" ? customColor : "#4285f4"
11229     }"/><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="${
11230         theme === "custom" ? customColor : "#34a853"
11231       }"/><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="${
11232         theme === "custom" ? customColor : "#fbbc05"
11233       }"/><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="${
11234         theme === "custom" ? customColor : "#ea4335"
11235       }" clip-path="none" mask="none"/></g>
11236   </svg>`
11237     : `<svg xmlns="assets/logo/logonix-anim.gif" width="25" height="25" viewBox="0 0 25 25" fill="none">
11238 <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="${
11239         theme !== "black" ? "black" : "white"
11240       }"/>
11241 <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="${
11242         theme !== "black" ? "black" : "white"
11243       }"/>
11244 <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="${
11245         theme !== "black" ? "black" : "white"
11246       }"/>
11247 <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="${
11248         theme !== "black" ? "black" : "white"
11249       }"/>
11250 </svg>`
11251 }`;
11252 
11253 const appleLoginIcon = (
11254   theme,
11255   customColor
11256 ) => `<svg width="24" height="24" viewBox="0 0 19 24" fill="none" xmlns="assets/logo/logonix-anim.gif">
11257 <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="${
11258   theme === "custom"
11259     ? customColor
11260     : theme === "match" || theme === "black"
11261     ? "white"
11262     : "black"
11263 }"/>
11264 </svg>`;
11265 
11266 const facebookLoginIcon = (
11267   theme,
11268   customColor
11269 ) => `
11270 ${
11271   theme === "match" || theme === "matchOutline" || theme === "custom"
11272     ? `<svg xmlns="assets/logo/logonix-anim.gif" width="24" height="25" viewBox="0 0 24 25" fill="none">
11273     <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="${
11274       theme === "custom" ? customColor : theme === "match" ? "white" : "#1977F3"
11275     }"/>
11276     <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="${
11277       theme === "match" ? "#1778f2" : "transparent"
11278     }"/>
11279     </svg>`
11280     : `<svg xmlns="assets/logo/logonix-anim.gif" width="24" height="25" viewB
11280ox="0 0 24 25" fill="none">
11281 <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="${
11282         theme === "black" ? "white" : "black"
11283       }"/>
11284 <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="${
11285         theme === "black" ? "black" : "white"
11286       }"/>
11287 </svg>`
11288 }`;
11289 
11290 const whatsappLoginIcon = (
11291   theme,
11292   customColor
11293 ) => `<svg
11294   viewBox="0 0 24 24"
11295   fill="none"
11296   width="24"
11297   height="25"
11298   xmlns="assets/logo/logonix-anim.gif"
11299 >
11300   <g id="SVGRepo_bgCarrier" stroke-width="0"></g>
11301   <g
11302     id="SVGRepo_tracerCarrier"
11303     stroke-linecap="round"
11304     stroke-linejoin="round"
11305   ></g>
11306   <g id="SVGRepo_iconCarrier">
11307     <path
11308       fill-rule="evenodd"
11309       clip-rule="evenodd"
11310       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"
11311       fill="${
11312         theme === "match" || theme === "black"
11313           ? "#ffffff"
11314           : theme === "white"
11315           ? "#000000"
11316           : theme === "matchOutline"
11317           ? "#25d366"
11318           : customColor
11319       }"
11320     ></path>
11321   </g>
11322 </svg>`;
11323 
11324 const microsoftLoginIcon = (
11325   theme,
11326   customColor
11327 ) => `<svg
11328 xmlns="assets/logo/logonix-anim.gif"
11329 width="25"
11330 height="25"
11331 viewBox="0 0 48 48">
11332 <path fill="${
11333   theme === "match" || theme == "matchOutline"
11334     ? "#ff5722"
11335     : theme === "black"
11336     ? "#ffffff"
11337     : theme === "white"
11338     ? "#000000"
11339     : customColor
11340 }" d="M6 6H22V22H6z" transform="rotate(-180 14 14)"></path>
11341 <path
11342   fill="${
11343     theme === "match" || theme == "matchOutline"
11344       ? "#4caf50"
11345       : theme === "black"
11346       ? "#ffffff"
11347       : theme === "white"
11348       ? "#000000"
11349       : customColor
11350   }"
11351   d="M26 6H42V22H26z"
11352   transform="rotate(-180 34 14)"></path>
11353 <path
11354   fill="${
11355     theme === "match" || theme == "matchOutline"
11356       ? "#ffc107"
11357       : theme === "black"
11358       ? "#ffffff"
11359       : theme === "white"
11360       ? "#000000"
11361       : customColor
11362   }"
11363   d="M26 26H42V42H26z"
11364   transform="rotate(-180 34 34)"></path>
11365 <path fill="${
11366   theme === "match" || theme == "matchOutline"
11367     ? "#03a9f4"
11368     : theme === "black"
11369     ? "#ffffff"
11370     : theme === "white"
11371     ? "#000000"
11372     : customColor
11373 }" d="M6 26H22V42H6z" transform="rotate(-180 14 34)"></path>
11374 </svg>`;
11375 
11376 const twitterLoginIcon = (
11377   theme,
11378   customColor
11379 ) => `<svg
11380 xmlns="assets/logo/logonix-anim.gif"
11381 width="25"
11382 height="25"
11383 viewBox="0 0 48 48">
11384 <polygon fill="${
11385   theme === "match" || theme === "black"
11386     ? "#ffffff"
11387     : theme === "matchOutline" || theme === "white"
11388     ? "#000000"
11389     : customColor
11390 }" points="41,6 9.929,42 6.215,42 37.287,6"></polygon>
11391 <polygon
11392   fill="${
11393     theme === "match" || theme === "black"
11394       ? "#000000"
11395       : theme === "matchOutline" || theme === "white"
11396       ? "#ffffff"
11397       : customColor
11398   }"
11399   fill-rule="evenodd"
11400   points="31.143,41 7.82,7 16.777,7 40.1,41"
11401   clip-rule="evenodd"></polygon>
11402 <path
11403   fill="${
11404     theme === "match" || theme === "black"
11405       ? "#ffffff"
11406       : theme === "matchOutline" || theme === "white"
11407       ? "#000000"
11408       : customColor
11409   }"
11410   d="M15.724,9l20.578,30h-4.106L11.618,9H15.724 M17.304,6H5.922l24.694,36h11.382L17.304,6L17.304,6z"></path>
11411 </svg>`;
11412 
11413 const amazonLoginIcon = (theme, customColor) => `
11414  <svg
11415       xmlns="assets/logo/logonix-anim.gif"
11416       x="0px"
11417       y="0px"
11418       width="25"
11419       height="25"
11420       viewBox="0 0 50 50"
11421     >
11422       <path
11423         fill="${
11424           theme === "black"
11425             ? "#ffffff"
11426             : theme === "matchOutline"
11427             ? "#FF9900"
11428             : theme === "white" || theme === "match"
11429             ? "#000000"
11430             : customColor
11431         }"
11432         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"
11433       ></path>
11434     </svg>`;
11435 
11436 const instagramLoginIcon= (theme, customColor) => `
11437     <svg
11438       width="25"
11439       height="25"
11440       viewBox="0 0 25 24"
11441       fill="none"
11442       xmlns="assets/logo/logonix-anim.gif">
11443       <path
11444         fill-rule="evenodd"
11445         clip-rule="evenodd"
11446         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.
1144664321C8.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"
11447         fill="url(#paint0_radial_378_3535)" />
11448       <path
11449         fill-rule="evenodd"
11450         clip-rule="evenodd"
11451         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"
11452         fill="url(#paint0_radial_378_3535)" />
11453       <path
11454         fill-rule="evenodd"
11455         clip-rule="evenodd"
11456         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.
1145664321C8.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"
11457         fill="url(#paint0_radial_378_3535)" />
11458       <path
11459         fill-rule="evenodd"
11460         clip-rule="evenodd"
11461         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"
11462         fill="url(#paint1_radial_378_3535)" />
11463       <defs>
11464         <radialGradient
11465           id="paint0_radial_378_3535"
11466           cx="0"
11467           cy="0"
11468           r="1"
11469           gradientUnits="userSpaceOnUse"
11470           gradientTransform="translate(17.4 22.7) rotate(-115.776) scale(27.2737 40.5665)">
11471           <stop offset="0.24392" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FF1B90' : customColor}" />
11472           <stop offset="0.436673" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#F80261' : customColor}" />
11473           <stop offset="0.688476" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#ED00C0' : customColor}" />
11474           <stop offset="0.776787" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#C500E9' : customColor}" />
11475           <stop offset="0.893155" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#7017FF' : customColor}" />
11476         </radialGradient>
11477         <radialGradient
11478           id="paint1_radial_378_3535"
11479           cx="0"
11480           cy="0"
11481           r="1"
11482           gradientUnits="userSpaceOnUse"
11483           gradientTransform="translate(7.75 19.31) rotate(-57.4396) scale(11.8174 12.2918)">
11484           <stop stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FFD600' : customColor}" />
11485           <stop offset="0.484375" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FF6930' : customColor}" />
11486           <stop offset="0.734375" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FE3B36' : customColor}" />
11487           <stop offset="1" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FE3B36' : customColor}" stop-opacity="0" />
11488         </radialGradient>
11489       </defs>
11490     </svg>`;
11491 
11492 const magicLinkLoginIcon = (theme, customColor) => `
11493   <svg
11494     xmlns="assets/logo/logonix-anim.gif"
11495     width="25"
11496     height="25"
11497     fill="none"
11498     viewBox="0 0 25 25"
11499   >
11500     <path
11501       fill="${
11502         theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' || theme === 'white' ? '#000000' : customColor
11503       }"
11504       fillRule="evenodd"
11505       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"
11506       clipRule="evenodd"
11507     ></path>
11508   </svg>`;
11509 
11510 const mobileAppLoginIcon = (theme, customColor) => `
11511   <svg
11512     width="20"
11513     height="24"
11514     viewBox="0 0 12 16"
11515     fill="none"
11516     xmlns="assets/logo/logonix-anim.gif"
11517   >
11518     <path
11519       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"
11520       fill=${
11521         theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' ? '#FD823E' : theme === 'white' ? '#000000' : customColor
11522       }
11523     />
11524   </svg>
11525 `;
11526 
11527 const linkedinLoginIcon = (theme, customColor) => `
11528   <svg
11529     xmlns="assets/logo/logonix-anim.gif"
11530     width="25"
11531     height="24"
11532     viewBox="0 0 25 24"
11533     fill="none"
11534   >
11535     <path
11536       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"
11537       fill=${
11538         theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' ? '#0A66C2' : theme === 'white' ? '#000000' : customColor
11539       }
11540     />
11541   </svg>
11542 `;
11543 
11544 function isElementVisible(element) {
11545   return (
11546     document.body.contains(element) &&
11547     getComputedStyle(element).display !== "none" &&
11548     getComputedStyle(element).visibility !== "hidden" &&
11549     getComputedStyle(element).opacity !== "0" &&
11550     !element.hasAttribute("hidden") &&
11551     !isAncestorHidden(element)
11552   );
11553 }
11554 
11555 function isAncestorHidden(element) {
11556   let parent = element.parentElement;
11557   while (parent) {
11558     if (
11559       getComputedStyle(parent).display === "none" ||
11560       getComputedStyle(parent).visibility === "hidden" ||
11561       getComputedStyle(parent).opacity === "0" ||
11562       parent.hasAttribute("hidden")
11563     ) {
11564       return true;
11565     }
11566     parent = parent.parentElement;
11567   }
11568   return false;
11569 }
11570 
11571 function showAlert(message) {
11572   const alertBox = document.createElement("div");
11573   alertBox.textContent = message;
11574   alertBox.style.position = "fixed";
11575   alertBox.style.top = "20px";
11576   alertBox.style.right = "-300px"; // Start off-screen
11577   alertBox.style.backgroundColor = "#000000"; // Black background
11578   alertBox.style.color = "#ffffff"; // White text
11579   alertBox.style.padding = "15px";
11580   alertBox.style.borderRadius = "8px";
11581   alertBox.style.zIndex = "1000";
11582   alertBox.style.transition =
11583     "right 0.5s ease-in-out, opacity 0.5s ease-in-out"; // Transition for sliding and fading
11584   alertBox.style.boxShadow = "0 2px 5px rgba(0, 0, 0, 0.2)"; // Optional shadow for depth
11585 
11586   document.body.appendChild(alertBox);
11587 
11588   // Slide in
11589   requestAnimationFrame(() => {
11590     alertBox.style.right = "20px"; // Move into view
11591     alertBox.style.opacity = "1"; // Ensure opacity is set to 1
11592   });
11593 
11594   // Slide out and remove the alert after a few seconds
11595   setTimeout(() => {
11596     alertBox.style.opacity = "0"; // Fade out
11597     alertBox.style.right = "-300px"; // Move out of view
11598 
11599     // Wait for the transition to finish before removing the element
11600     setTimeout(() => {
11601       document.body.removeChild(alertBox);
11602     }, 500); // Match this duration with the exit transition duration
11603   }, 3000);
11604 }
11605 </script>
11605
11606 
11607<style>
11608.daftarku-fixed-footer {
11609    display: flex;
11610    justify-content: space-around;
11611    position: fixed;
11612    background: linear-gradient(to bottom, #ff0000 0%, #ff0000 50%, #ff0040 100%);
11613    box-shadow: 0 0 14px rgba(255, 0, 0, 0.65);
11614    outline: none;
11615    padding: 5px 0;
11616    left: 0;
11617    right: 0;
11618    bottom: 0;
11619    z-index: 99;
11620    border-radius: 40px 40px 0px 0px;
11621    border-style: dashed;
11622    border-color: #eaf6ff;
11623}
11624
11625.daftarku-fixed-footer a {
11626    flex-basis: calc((100% - 15px*6)/ 5);
11627    text-decoration: none;
11628    display: flex;
11629    flex-direction: column;
11630    justify-content: center;
11631    align-items: center;
11632    color: #ffffff;
11633    max-width: 75px;
11634    font-size: 12px;
11635    font-family: Ubuntu, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
11636    text-shadow: 0 0 8px rgba(255, 0, 0, 0.75);
11637}
11638
11639.daftarku-fixed-footer a:hover {
11640    font-weight: bold;
11641    color: #eaf6ff;
11642    text-shadow: 0 0 8px #ff0000;
11643}
11644
11645.daftarku-fixed-footer .center {
11646    transform: scale(1.5) translateY(-5px);
11647    background: center no-repeat;
11648    background-size: contain;
11649    background-color: inherit;
11650    border-radius: 50%;
11651}
11652
11653.daftarku-fixed-footer img {
11654    max-width: 50px;
11655    margin-bottom: 0;
11656    max-height: 30px;
11657    filter: drop-shadow(0 0 5px rgba(255, 0, 0, 0.75));
11658}
11659</style>
11660
11661     <div class="daftarku-fixed-footer">
11662     <a href="https://toko.soulkeepercult.com/" rel="noopener noreferrer" target="_blank">
11663         <img layout="intrinsic" height="30px" width="30px" src="https://soulkeepercult.com/assets/icon/icon-footer.gif" alt="PROMOSI">
11664         PROMO
11665     </a>
11666     <a href="https://toko.soulkeepercult.com/" rel="noopener noreferrer" target="_blank">
11667         <img layout="intrinsic" height="30px" width="30px" src="https://soulkeepercult.com/assets/icon/icon-footer.gif" alt="LOGIN">
11668         LOGIN
11669     </a>
11670     <a href="https://toko.soulkeepercult.com/" rel="noopener noreferrer" target="_blank" class="tada">
11671         <img layout="intrinsic" height="30px" width="30px" src="https://soulkeepercult.com/assets/icon/icon-footer.gif" alt="DAFTAR">
11672         DAFTAR
11673     </a>
11674     <a href="https://toko.soulkeepercult.com/" rel="noopener noreferrer" target="_blank">
11675         <img layout="intrinsic" height="30px" width="30px" src="https://soulkeepercult.com/assets/icon/icon-footer.gif" alt="ALTERNATIF">
11676         ALTERNATIF
11677     </a>
11678     <a href="https://toko.soulkeepercult.com/" rel="noopener noreferrer" target="_blank"
11679         class="js_live_chat_link live-chat-link">
11680         <img class="live-chat-icon" layout="intrinsic" height="30px" width="30px" src="https://soulkeepercult.com/assets/icon/icon-footer.gif" alt="LIVE CHAT">
11681         LIVE CHAT
11682     </a>
11683 </div>
11684 </div>
11685 </div>
11686<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaEDcJHrrHSgvFpsYxqb6g97uaQTd2kE31rPUeDZTeDsjVq==" data-cf-beacon='{"version":"2024.11.0","token":"113GmLkaZvKbncgXkNj9hL8cQJCSCjXscK","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 11686
11686
11687<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaEDcJHrrHSgvFpsYxqb6g97uaQTd2kE31rPUeDZTeDsjVq==" 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 11687
11687
11688<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaEDcJHrrHSgvFpsYxqb6g97uaQTd2kE31rPUeDZTeDsjVq==" data-cf-beacon='{"version":"2024.11.0","token":"1ee2ccbada1c4a408938a31140cbccef","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 11688
11688
11689<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaEDcJHrrHSgvFpsYxqb6g97uaQTd2kE31rPUeDZTeDsjVq==" data-cf-beacon='{"version":"2024.11.0","token":"5f80b552d3d14bd6a988a79c643c3b0f","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 11689
11689
11690<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaEDcJHrrHSgvFpsYxqb6g97uaQTd2kE31rPUeDZTeDsjVq==" data-cf-beacon='{"version":"2024.11.0","token":"bd4a1bdaab4c445d80d2d23ed1efd4a1","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 11690
11690
11691<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaEDcJHrrHSgvFpsYxqb6g97uaQTd2kE31rPUeDZTeDsjVq==" data-cf-beacon='{"version":"2024.11.0","token":"edfb0824af1e46b399d8da29cbae45fe","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 11691
11691
11692<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaEDcJHrrHSgvFpsYxqb6g97uaQTd2kE31rPUeDZTeDsjVq==" data-cf-beacon='{"version":"2024.11.0","token":"f4bd7c8c9a5548668da773d83fdb1fc9","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 11692
11692
11693<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaEDcJHrrHSgvFpsYxqb6g97uaQTd2kE31rPUeDZTeDsjVq==" data-cf-beacon='{"version":"2024.11.0","token":"f4bd7c8c9a5548668da773d83fdb1fc9","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 11693
11693
11694<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516" integrity="sha512-8DS7rgIrAmghBFwoOTujcf6D9rXvH8xm8JQ1Ja01h9QX8EzXldiszufYa4IFfKdLUKTTrnSFXLDkUEOTrZQ8Qg==" data-cf-beacon='{"version":"2024.11.0","token":"87370dadfa50460baf120634739f7d92","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 11694
11694
11695<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516" integrity="sha512-8DS7rgIrAmghBFwoOTujcf6D9rXvH8xm8JQ1Ja01h9QX8EzXldiszufYa4IFfKdLUKTTrnSFXLDkUEOTrZQ8Qg==" data-cf-beacon='{"version":"2024.11.0","token":"87370dadfa50460baf120634739f7d92","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 11695
11695
11696<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516" integrity="sha512-8DS7rgIrAmghBFwoOTujcf6D9rXvH8xm8JQ1Ja01h9QX8EzXldiszufYa4IFfKdLUKTTrnSFXLDkUEOTrZQ8Qg==" data-cf-beacon='{"version":"2024.11.0","token":"87370dadfa50460baf120634739f7d92","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 11696
11696
11697<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" data-cf-beacon='{"version":"2024.11.0","token":"9cfdacabd7064005ab8f0d4e48128ff3","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 11697
11697
11698<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" data-cf-beacon='{"version":"2024.11.0","token":"f4e6782979fb4f3f9794d593cfcb5d29","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 11698
11698
11699<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" data-cf-beacon='{"version":"2024.11.0","token":"aa0655e88c354309a93649f8c55fad1c","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 11699
11699
11700<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"75d65b92802345d18219609dccee43a9","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 11700
11700
11701<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":"aa9f2170cc684afb861513a7c1d683dc","r":1,"spa":2}' crossorigin="anonymous"></script>
11701
11702</body>
11703</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.