PageSourceSearch

https://www.cabosanfrancisco.ch/

html cabosanfrancisco.ch collected 2026-10-09 22:11:02 UTC 659,764 bytes, 10,849 lines download raw bytes

1
2
3
4<!doctype html>
5 <!--Kang Begal-->
6   <html class="no-js">
7     <head>
8     <meta charset="utf-8">
9     <meta http-equiv="X-UA-Compatible" content="IE=edge">
10     <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1">
11     <meta name="apple-itunes-app" content="app-id=1576832504">
12     <link rel="icon" type="image/x-icon" href="https://www.cabosanfrancisco.ch/image/icon-ompong188-slot.webp">
13      <!-- Title and description -->
14     <title>OMPONG188 >> Situs Hiburan Game Online Kane via QRIS Login Super Fleksibel</title>
15     <meta name="description" content="OMPONG188 jadi situs hiburan game online kane dengan transaksi via QRIS, login super fleksibel, akses responsif, dan berbagai pilihan game online yang menarik untuk dimainkan setiap waktu.">
16      
17     <link rel="canonical" href="https://www.cabosanfrancisco.ch/">
18     <link rel="amphtml" href="https://www.cabosanfrancisco.ch/coffee/"/>
19     <link rel="alternate" hreflang="id-id" href="https://www.cabosanfrancisco.ch/coffee/"/>
20     <link rel="alternate" href="https://www.cabosanfrancisco.ch/coffee/"/>
21     <link rel="alternate" hreflang="id" href="https://www.cabosanfrancisco.ch/coffee/"/>
22     <link rel="alternate" hreflang="en" href="https://www.cabosanfrancisco.ch/coffee/"/>
23     <link rel="alternate" hreflang="x-default" href="https://www.cabosanfrancisco.ch/coffee/"/>
24     <!-- /snippets/social-meta-tags.liquid -->
25     <meta property="og:type" content="OMPONG188">
26     <meta property="og:title" content="OMPONG188 >> Situs Hiburan Game Online Kane via QRIS Login Super Fleksibel">
27     <meta property="og:image" content="https://www.cabosanfrancisco.ch/image/ompong188-qris.webp">
28     <meta property="og:image:secure_url" content="https://www.cabosanfrancisco.ch/image/ompong188-qris.webp">
29     <meta property="og:image" content="https://www.cabosanfrancisco.ch/image/ompong188-qris.webp">
30     <meta property="og:image:secure_url" content="https://www.cabosanfrancisco.ch/image/ompong188-qris.webp">
31     <meta property="og:image" content="https://www.cabosanfrancisco.ch/image/ompong188-qris.webp">
32     <meta property="og:image:secure_url" content="https://www.cabosanfrancisco.ch/image/ompong188-qris.webp">
33     <meta property="og:description" content="OMPONG188 jadi situs hiburan game online kane dengan transaksi via QRIS, login super fleksibel, akses responsif, dan berbagai pilihan game online yang menarik untuk dimainkan setiap waktu.">
34     <meta property="og:price:amount" content="5,000-,">
35     <meta property="og:price:currency" content="IDR">
36     <meta property="og:url" content="https://www.cabosanfrancisco.ch/">
37     <meta property="og:site_name" content="OMPONG188">
38     <meta name="twitter:site" content="@OMPONG188">
39     <meta name="twitter:card" content="summary">
40     <meta name="twitter:title" content="OMPONG188 >> Situs Hiburan Game Online Kane via QRIS Login Super Fleksibel">
41     <meta name="twitter:description" content="OMPONG188 jadi situs hiburan game online kane dengan transaksi via QRIS, login super fleksibel, akses responsif, dan berbagai pilihan game online yang menarik untuk dimainkan setiap waktu.">
42     <meta name="twitter:image" content="https://www.cabosanfrancisco.ch/image/ompong188-qris.webp">
43     <meta name="twitter:image:width" content="600">
44     <meta name="twitter:image:height" content="600">
45     <link rel="shortcut icon" href="https://www.cabosanfrancisco.ch/image/icon-ompong188-slot.webp" 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     <div class="button-login-daftar">
94                     <a class="login" href="https://www.cabosanfrancisco.ch/coffee/" rel="nofollow noreferrer">
95                         LOGIN
96                     </a>
97                     <a class="register" href="https://www.cabosanfrancisco.ch/coffee/" rel="nofollow noreferrer">
98                         DAFTAR
99                     </a>
100                 </div>
101   
102     
102<script src="//cdnjs.cloudflare.com/ajax/libs/vissense/0.9.0/vissense.js" defer></script>
102
103   
104     <!-- Bing UET -->
105     
105<script>
106       (function(w,d,t,r,u)
107       {
108           var f,n,i;
109           w[u]=w[u]||[],f=function()
110           {
111               var o={ti:"343051754", tm:"shpfy_ui", enableAutoSpaTracking: true};
112               o.q=w[u],w[u]=new UET(o),w[u].push("pageLoad")
113           },
114           n=d.createElement(t),n.src=r,n.async=1,n.onload=n.onreadystatechange=function()
115           {
116               var s=this.readyState;
117               s&&s!=="loaded"&&s!=="complete"||(f(),n.onload=n.onreadystatechange=null)
118           },
119           i=d.getElementsByTagName(t)[0],i.parentNode.insertBefore(n,i)
120       })
121       (window,document,"script","//bat.bing.com/bat.js","uetq");
122     </script>
122
123     
123<script>
124       window.uetq = window.uetq || [];
125       window.uetq.push('event', '', {"revenue_value":0,"currency":"IDR"});
126     </script>
126
127     <!-- End Bing UET -->
128   
129     <!-- Microsoft Clarity -->
130     
130<script type="text/javascript">
131       (function(c,l,a,r,i,t,y){
132           c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};
133           t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i;
134           y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y);
135       })(window, document, "clarity", "script", "h7rbxqry9k");
136     </script>
136
137     <!-- End Microsoft Clarity -->
138 
139 
140 <link href="//outerbloom.com/cdn/shop/t/138/assets/combine.min.css?v=111340648424012527321754385205" rel="stylesheet" type="text/css" media="all" />
141 
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 
145 
145<script src="//code.jquery.com/jquery-1.12.4.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" crossorigin="anonymous"></script>
145
146 
146<script src="//outerbloom.com/cdn/shop/t/138/assets/combine.js?v=140218079523075729301752652421" type="text/javascript"></script>
146
147 
147<script src="//code.jquery.com/ui/1.13.0/jquery-ui.min.js"></script>
147
148     
148<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
148
149 <meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/15896833/digital_wallets/dialog">
150 <link rel="alternate" type="application/json+oembed" href="https://datatellers.info.oembed">
151 
151<script async="async" src="/checkouts/internal/preloads.js?locale=en-ID"></script>
151
152 
152<script id="shopify-features" type="application/json">{"accessToken":"d2e176e59f6658d5056234d6249b3ab4","betas":["rich-media-storefront-analytics"],"domain":"outerbloom.com","predictiveSearch":true,"shopId":15896833,"locale":"en"}</script>
152
153 
153<script>var Shopify = Shopify || {};
154 Shopify.shop = "outerbloom1.myshopify.com";
155 Shopify.locale = "en";
156 Shopify.currency = {"active":"IDR","rate":"1.0"};
157 Shopify.country = "ID";
158 Shopify.theme = {"name":"web-outerbloom-shopify\/main","id":153139282135,"schema_name":null,"schema_version":null,"theme_store_id":null,"role":"main"};
159 Shopify.theme.handle = "null";
160 Shopify.theme.style = {"id":null,"handle":null};
161 Shopify.cdnHost = "outerbloom.com/cdn";
162 Shopify.routes = Shopify.routes || {};
163 Shopify.routes.root = "/";</script>
163
164 
164<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
164
165 
165<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>
165
166 
166<script id="shop-js-analytics" type="application/json">{"pageType":"product"}</script>
166
167 
167<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});
168 "></script>
168
169 
169<script>(function() {
170   var isLoaded = false;
171   function asyncLoad() {
172     if (isLoaded) return;
173     isLoaded = true;
174     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"];
175     for (var i = 0; i < urls.length; i++) {
176       var s = document.createElement('script');
177       s.type = 'text/javascript';
178       s.async = true;
179       s.src = urls[i];
180       var x = document.getElementsByTagName('script')[0];
181       x.parentNode.insertBefore(s, x);
182     }
183   };
184   if(window.attachEvent) {
185     window.attachEvent('onload', asyncLoad);
186   } else {
187     window.addEventListener('load', asyncLoad, false);
188   }
189 })();</script>
189
190 
190<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>
190
191 
191<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
191
192 
192<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>
192
193 
193<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>
193
194 
194<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)}};
195 </script>
195
196 
196<script data-source-attribution="shopify.dynamic_checkout.buyer_consent">
197   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);
198 </script>
198
199 
199<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})}}));
200 </script>
200
201 
202 
202<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
202
203     <!-- /snippets/oldIE-js.liquid -->
204 
205 
206 <!--[if lt IE 9]>
207 
207<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js" type="text/javascript"></script>
207
208 
208<script src="//outerbloom.com/cdn/shop/t/138/assets/respond.min.js?v=52248677837542619231752652418" type="text/javascript"></script>
208
209 <link href="//outerbloom.com/cdn/shop/t/138/assets/respond-proxy.html" id="respond-proxy" rel="respond-proxy" />
210 <link href="//outerbloom.com/search?q=142e9156869335090161dced0ac98b64" id="respond-redirect" rel="respond-redirect" />
211 
211<script src="//outerbloom.com/search?q=142e9156869335090161dced0ac98b64" type="text/javascript"></script>
211
212 <![endif]-->
213 
214 
215 
216   
217     
218   <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">
219 <link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
220 
220<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>
220
221 
221<script id="web-pixels-manager-setup">(function e(e,d,r,n,o){if(void 0===o&&(o={}),!Boolean(null===(a=null===(i=window.Shopify)||void 0===i?void 0:i.analytics)||void 0===a?void 0:a.replayQueue)){var i,a;window.Shopify=window.Shopify||{};var t=window.Shopify;t.analytics=t.analytics||{};var s=t.analytics;s.replayQueue=[],s.publish=function(e,d,r){return s.replayQueue.push([e,d,r]),!0};try{self.performance.mark("wpm:start")}catch(e){}var l=function(){var e={modern:/Edge?\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Firefox\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Chrom(ium|e)\/(9{2}|\d{3,})\.\d+(\.\d+|)|(Maci|X1{2}).+ Version\/(15\.\d+|(1[6-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(9{2}|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(15[._]\d+|(1[6-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](13[3-9]|1[4-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Android.+Firefox\/(13[5-9]|1[4-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(13[3-9]|1[4-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|SamsungBrowser\/([2-9]\d|\d{3,})\.\d+/,legacy:/Edge?\/(1[6-9]|[2-9]\d|\d{3,})\.\d+(\.\d+|)|Firefox\/(5[4-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)|Chrom(ium|e)\/(5[1-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)([\d.]+$|.*Safari\/(?![\d.]+ Edge\/[\d.]+$))|(Maci|X1{2}).+ Version\/(10\.\d+|(1[1-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(3[89]|[4-9]\d|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(10[._]\d+|(1[1-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](13[3-9]|1[4-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Mobile Safari.+OPR\/([89]\d|\d{3,})\.\d+\.\d+|Android.+Firefox\/(13[5-9]|1[4-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(13[3-9]|1[4-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+(UC? ?Browser|UCWEB|U3)[ /]?(15\.([5-9]|\d{2,})|(1[6-9]|[2-9]\d|\d{3,})\.\d+)\.\d+|SamsungBrowser\/(5\.\d+|([6-9]|\d{2,})\.\d+)|Android.+MQ{2}Browser\/(14(\.(9|\d{2,})|)|(1[5-9]|[2-9]\d|\d{3,})(\.\d+|))(\.\d+|)|K[Aa][Ii]OS\/(3\.\d+|([4-9]|\d{2,})\.\d+)(\.\d+|)/},d=e.modern,r=e.legacy,n=navigator.userAgent;return n.match(d)?"modern":n.match(r)?"legacy":"unknown"}(),u="modern"===l?"modern":"legacy",c=(null!=n?n:{modern:"",legacy:""})[u],f=function(e){return[e.baseUrl,"/wpm","/b",e.hashVersion,"modern"===e.buildTarget?"m":"l",".js"].join("")}({baseUrl:d,hashVersion:r,buildTarget:u}),m=function(e){var d=e.version,r=e.bundleTarget,n=e.surface,o=e.pageUrl,i=e.monorailEndpoint;return{emit:function(e){var a=e.status,t=e.errorMsg,s=(new Date).getTime(),l=JSON.stringify({metadata:{event_sent_at_ms:s},events:[{schema_id:"web_pixels_manager_load/3.1",payload:{version:d,bundle_target:r,page_url:o,status:a,surface:n,error_msg:t},metadata:{event_created_at_ms:s}}]});if(!i)return console&&console.warn&&console.warn("[Web Pixels Manager] No Monorail endpoint provided, skipping logging."),!1;try{return self.navigator.sendBeacon.bind(self.navigator)(i,l)}catch(e){}var u=new XMLHttpRequest;try{return u.open("POST",i,!0),u.setRequestHeader("Content-Type","text/plain"),u.send(l),!0}catch(e){return console&&console.warn&&console.warn("[Web Pixels Manager] Got an unhandled error while logging to Monorail."),!1}}}}({version:r,bundleTarget:l,surface:e.surface,pageUrl:self.location.href,monorailEndpoint:e.monorailEndpoint});try{o.browserTarget=l,function(e){var d=e.src,r=e.async,n=void 0===r||r,o=e.onload,i=e.onerror,a=e.sri,t=e.scriptDataAttributes,s=void 0===t?{}:t,l=document.createElement("script"),u=document.querySelector("head"),c=document.querySelector("body");if(l.async=n,l.src=d,a&&(l.integrity=a,l.crossOrigin="anonymous"),s)for(var f in s)if(Object.prototype.hasOwnProperty.call(s,f))try{l.dataset[f]=s[f]}catch(e){}if(o&&l.addEventListener("load",o),i&&l.addEventListener("error",i),u)u.appendChild(l);else{if(!c)throw new Error("Did not find a head or body element to append the script");c.appendChild(l)}}({src:f,async:!0,onload:function(){if(!function(){var e,d;return Boolean(null===(d=null===(e=window.Shopify)||void 0===e?void 0:e.analytics)||void 0===d?void 0:d.initialized)}()){var d=window.webPixelsManager.init(e)||void 0;if(d){var r=window.Shopify.analytics;r.replayQueue.forEach((function(e){var r=e[0],n=e[1],o=e[2];d.publishCustomEvent(r,n,o)})),r.replayQueue=[],r.publish=d.publishCustomEvent,r.visitor=d.visitor,r.initialized=!0}}},onerror:function(){return m.emit({status:"failed",errorMsg:"".concat(f," has failed to load")})},sri:function(e){var d=/^sha384-[A-Za-z0-9+/=]+$/;return"string"==typeof e&&d.test(e)}(c)?c:"",scriptDataAttributes:o}),m.emit({status:"loading"})}catch(e){m.emit({status:"failed",errorMsg:(null==e?void 0:e.message)||"Unknown error"})}}})({shopId: 15896833,storefrontBaseUrl: "https://outerbloom.com",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://monorail-edge.shopifysvc.com/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: [],webPixelsConfigList: [{"id":"870383831","configuration":"{\"accountID\":\"outerbloom1\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"162380e6ffd3e5a2854f1aabf54537bb","type":"APP","apiClientId":32196493313,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"]},{"id":"824574167","configuration":"{\"shop\":\"outerbloom1.myshopify.com\", \"backend\": \"api.bitbybit.studio\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"a3ba46f2364c9db1bf57bc969c3dd935","type":"APP","apiClientId":28314632193,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"]},{"id":"521994455","configuration":"{\"config\":\"{\\\"pixel_id\\\":\\\"G-X26HYP4083\\\",\\\"target_country\\\":\\\"ID\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"search\\\",\\\"action_label\\\":[\\\"G-X26HYP4083\\\",\\\"AW-11020267329\\\/YjjSCKiog9gZEMHe74Yp\\\"]},{\\\"type\\\":\\\"begin_checkout\\\",\\\"action_label\\\":[\\\"G-X26HYP4083\\\",\\\"AW-11020267329\\\/RHfSCK6og9gZEMHe74Yp\\\"]},{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":[\\\"G-X26HYP4083\\\",\\\"AW-11020267329\\\/dMv0CKWog9gZEMHe74Yp\\\",\\\"MC-HY9J2ZJTNZ\\\"]},{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":[\\\"G-X26HYP4083\\\",\\\"AW-11020267329\\\/Y2DbCJ-og9gZEMHe74Yp\\\",\\\"MC-HY9J2ZJTNZ\\\"]},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":[\\\"G-X26HYP4083\\\",\\\"AW-11020267329\\\/xwQ2CKKog9gZEMHe74Yp\\\",\\\"MC-HY9J2ZJTNZ\\\"]},{\\\"type\\\":\\\"add_payment_info\\\",\\\"action_label\\\":[\\\"G-X26HYP4083\\\",\\\"AW-11020267329\\\/i9yRCLGog9gZEMHe74Yp\\\"]},{\\\"type\\\":\\\"add_to_cart\\\",\\\"action_label\\\":[\\\"G-X26HYP4083\\\",\\\"AW-11020267329\\\/T9poCKuog9gZEMHe74Yp\\\"]}],\\\"enable_monitoring_mode\\\":false}\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"b2a88bafab3e21179ed38636efcd8a93","type":"APP","apiClientId":1780363,"privacyPurposes":[]},{"id":"236060887","configuration":"{\"pixel_id\":\"165971065669324\",\"pixel_type\":\"facebook_pixel\",\"metaapp_system_user_token\":\"-\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"6d8c3ef0426b37b2a9b717daeb719f58","type":"APP","apiClientId":2329312,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"]},{"id":"62947543","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["MARKETING"],"name":"Meta pixel (migrated)"},{"id":"shopify-app-pixel","configuration":"{}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"0450","apiClientId":"shopify-pixel","type":"APP","privacyPurposes":["ANALYTICS","MARKETING"]},{"id":"shopify-custom-pixel","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"0450","apiClientId":"shopify-pixel","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING"]}],isMerchantRequest: false,initData: {"shop":{"name":"Outerbloom","paymentSettings":{"currencyCode":"IDR"},"myshopifyDomain":"outerbloom1.myshopify.com","countryCode":"ID","storefrontUrl":"https:\/\/outerbloom.com"},"customer":null,"cart":null,"checkout":null,"productVariants":[{"price":{"amount":835000.0,"currencyCode":"IDR"},"product":{"title":"OMPONG188 >> Situs Hiburan Game Online Kane via QRIS Login Super Fleksibel","vendor":"Outerbloom Florist","id":"8144957800663","untranslatedTitle":"OMPONG188 >> Situs Hiburan Game Online Kane via QRIS Login Super Fleksibel","url":"\/products\/blossom-shine","type":"OMPONG188 jadi situs hiburan game online kane dengan transaksi via QRIS, login super fleksibel, akses responsif, dan berbagai pilihan game online yang menarik untuk dimainkan setiap waktu."},"id":"44083045826775","image":{"src":"\/\/outerbloom.com\/cdn\/shop\/files\/Blossom-Shine-WM.jpg?v=1695788426"},"sku":"OBVSTF1086","title":"Default Title","untranslatedTitle":"Default Title"}],"purchasingCompany":null},},"https://outerbloom.com/cdn","4f0c5c77w64a73806p128ba08bma5b58f2f",{"modern":"","legacy":""},{"shopId":"15896833","storefrontBaseUrl":"https:\/\/outerbloom.com","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[]","isMerchantRequest":"false","hashVersion":"4f0c5c77w64a73806p128ba08bma5b58f2f","publish":"custom","events":"[[\"page_viewed\",{}],[\"product_viewed\",{\"productVariant\":{\"price\":{\"amount\":835000.0,\"currencyCode\":\"IDR\"},\"product\":{\"title\":\"OMPONG188 >> Situs Hiburan Game Online Kane via QRIS Login Super Fleksibel\",\"vendor\":\"Outerbloom Florist\",\"id\":\"8144957800663\",\"untranslatedTitle\":\"OMPONG188 >> Situs Hiburan Game Online Kane via QRIS Login Super Fleksibel\",\"url\":\"\/products\/blossom-shine\",\"type\":\"OMPONG188 jadi situs hiburan game online kane dengan transaksi via QRIS, login super fleksibel, akses responsif, dan berbagai pilihan game online yang menarik untuk dimainkan setiap waktu.\"},\"id\":\"44083045826775\",\"image\":{\"src\":\"\/\/outerbloom.com\/cdn\/shop\/files\/Blossom-Shine-WM.jpg?v=1695788426\"},\"sku\":\"OBVSTF1086\",\"title\":\"Default Title\",\"untranslatedTitle\":\"Default Title\"}}]]"});</script>
221<script>
222   window.ShopifyAnalytics = window.ShopifyAnalytics || {};
223   window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {};
224   window.ShopifyAnalytics.meta.currency = 'IDR';
225   var meta = {"product":{"id":8144957800663,"gid":"gid:\/\/shopify\/Product\/8144957800663","vendor":"Outerbloom Florist","type":"OMPONG188 jadi situs hiburan game online kane dengan transaksi via QRIS, login super fleksibel, akses responsif, dan berbagai pilihan game online yang menarik untuk dimainkan setiap waktu.","variants":[{"id":44083045826775,"price":1000000
226   ,"name":"OMPONG188 >> Situs Hiburan Game Online Kane via QRIS Login Super Fleksibel","public_title":null,"sku":"OBVSTF1086"}],"remote":false},"page":{"pageType":"product","resourceType":"product","resourceId":8144957800663}};
227   for (var attr in meta) {
228     window.ShopifyAnalytics.meta[attr] = meta[attr];
229   }
230 </script>
230
231 
231<script class="analytics">
232   (function () {
233     var customDocumentWrite = function(content) {
234       var jquery = null;
235 
236       if (window.jQuery) {
237         jquery = window.jQuery;
238       } else if (window.Checkout && window.Checkout.$) {
239         jquery = window.Checkout.$;
240       }
241 
242       if (jquery) {
243         jquery('body').append(content);
244       }
245     };
246 
247     var hasLoggedConversion = function(token) {
248       if (token) {
249         return document.cookie.indexOf('loggedConversion=' + token) !== -1;
250       }
251       return false;
252     }
253 
254     var setCookieIfConversion = function(token) {
255       if (token) {
256         var twoMonthsFromNow = new Date(Date.now());
257         twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2);
258 
259         document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow;
260       }
261     }
262 
263     var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || [];
264     if (trekkie.integrations) {
265       return;
266     }
267     trekkie.methods = [
268       'identify',
269       'page',
270       'ready',
271       'track',
272       'trackForm',
273       'trackLink'
274     ];
275     trekkie.factory = function(method) {
276       return function() {
277         var args = Array.prototype.slice.call(arguments);
278         args.unshift(method);
279         trekkie.push(args);
280         return trekkie;
281       };
282     };
283     for (var i = 0; i < trekkie.methods.length; i++) {
284       var key = trekkie.methods[i];
285       trekkie[key] = trekkie.factory(key);
286     }
287     trekkie.load = function(config) {
288       trekkie.config = config || {};
289       trekkie.config.initialDocumentCookie = document.cookie;
290       var first = document.getElementsByTagName('script')[0];
291       var script = document.createElement('script');
292       script.type = 'text/javascript';
293       script.onerror = function(e) {
294         var scriptFallback = document.createElement('script');
295         scriptFallback.type = 'text/javascript';
296         scriptFallback.onerror = function(error) {
297                 var Monorail = {
298       produce: function produce(monorailDomain, schemaId, payload) {
299         var currentMs = new Date().getTime();
300         var event = {
301           schema_id: schemaId,
302           payload: payload,
303           metadata: {
304             event_created_at_ms: currentMs,
305             event_sent_at_ms: currentMs
306           }
307         };
308         return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event));
309       },
310       sendRequest: function sendRequest(endpointUrl, payload) {
311         // Try the sendBeacon API
312         if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) {
313           var blobData = new window.Blob([payload], {
314             type: 'text/plain'
315           });
316 
317           if (window.navigator.sendBeacon(endpointUrl, blobData)) {
318             return true;
319           } // sendBeacon was not successful
320 
321         } // XHR beacon
322 
323         var xhr = new XMLHttpRequest();
324 
325         try {
326           xhr.open('POST', endpointUrl);
327           xhr.setRequestHeader('Content-Type', 'text/plain');
328           xhr.send(payload);
329         } catch (e) {
330           console.log(e);
331         }
332 
333         return false;
334       },
335       isIos12: function isIos12() {
336         return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1;
337       }
338     };
339     Monorail.produce('monorail-edge.shopifysvc.com',
340       'trekkie_storefront_load_errors/1.1',
341       {shop_id: 15896833,
342       theme_id: 153139282135,
343       app_name: "storefront",
344       context_url: window.location.href,
345       source_url: "//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js"});
346 
347         };
348         scriptFallback.async = true;
349         scriptFallback.src = '//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js';
350         first.parentNode.insertBefore(scriptFallback, first);
351       };
352       script.async = true;
353       script.src = '//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js';
354       first.parentNode.insertBefore(script, first);
355     };
356     trekkie.load(
357       {"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}}
358     );
359 
360     var loaded = false;
361     trekkie.ready(function() {
362       if (loaded) return;
363       loaded = true;
364 
365       window.ShopifyAnalytics.lib = window.trekkie;
366 
367       var originalDocumentWrite = document.write;
368       document.write = customDocumentWrite;
369       try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {};
370       document.write = originalDocumentWrite;
371 
372       window.ShopifyAnalytics.lib.page(null,{"pageType":"product","resourceType":"product","resourceId":8144957800663,"shopifyEmitted":true});
373 
374       var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/)
375       var token = match? match[1]: undefined;
376       if (!hasLoggedConversion(token)) {
377         setCookieIfConversion(token);
378         window.ShopifyAnalytics.lib.track("Viewed Product",{"currency":"IDR","variantId":44083045826775,"productId":8144957800663,"productGid":"gid:\/\/shopify\/Product\/8144957800663","name":"OMPONG188 >> Situs Hiburan Game Online Kane via QRIS Login Super Fleksibel","price":"835000.00","sku":"OBVSTF1086","brand":"Outerbloom Florist","variant":null,"category":"OMPONG188 jadi situs hiburan game online kane dengan transaksi via QRIS, login super fleksibel, akses responsif, dan berbagai pilihan game online yang menarik untuk dimainkan setiap waktu.","nonInteraction":true,"remote":false},undefined,undefined,{"shopifyEmitted":true});
379       window.ShopifyAnalytics.lib.track("monorail:\/\/trekkie_storefront_viewed_product\/1.1",{"currency":"IDR","variantId":44083045826775,"productId":8144957800663,"productGid":"gid:\/\/shopify\/Product\/8144957800663","name":"OMPONG188 >> Situs Hiburan Game Online Kane via QRIS Login Super Fleksibel","price":"835000.00","sku":"OBVSTF1086","brand":"Outerbloom Florist","variant":null,"category":"OMPONG188 jadi situs hiburan game online kane dengan transaksi via QRIS, login super fleksibel, akses responsif, dan berbagai pilihan game online yang menarik untuk dimainkan setiap waktu.","nonInteraction":true,"remote":false,"referer":"https:\/\/outerbloom.com\/products\/blossom-shine"});
380       }
381     });
382 
383 
384         var eventsListenerScript = document.createElement('script');
385         eventsListenerScript.async = true;
386         eventsListenerScript.src = "//outerbloom.com/cdn/shopifycloud/storefront/assets/shop_events_listener-abeef7a0.js";
387         document.getElementsByTagName('head')[0].appendChild(eventsListenerScript);
388 
389 })();</script>
389
390   
390<script>
391   if (!window.ga || (window.ga && typeof window.ga !== 'function')) {
392     window.ga = function ga() {
393       (window.ga.q = window.ga.q || []).push(arguments);
394       if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') {
395         window.Shopify.analytics.publish("ga_stub_called", {}, {sendTo: "google_osp_migration"});
396       }
397       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.");
398     };
399     if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') {
400       window.Shopify.analytics.publish("ga_stub_initialized", {}, {sendTo: "google_osp_migration"});
401     }
402   }
403 </script>
403
404 
404<script
405   defer
406   src="https://outerbloom.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-2.0.13.min.js"
407   data-application="storefront-renderer"
408   data-shop-id="15896833"
409   data-render-region="gcp-asia-southeast1"
410   data-page-type="product"
411   data-theme-instance-id="153139282135"
412   data-theme-name=""
413   data-theme-version=""
414   data-monorail-region="shop_domain"
415   data-resource-timing-sampling-rate="10"
416   data-shs="true"
417   data-shs-beacon="true"
418   data-shs-export-with-fetch="true"
419   data-shs-logs-sample-rate="1"
420 ></script>
420
421 
422<style id="dark-purple-theme-override">
423/* Visual theme override only: SEO/meta/content/links remain unchanged. */
424:root{--purple-dark:#fff200;--purple:#196c09;--purple-mid:#850000;--purple-accent:#850000;--purple-light:#850000;}
425body{background-color:#16002b!important;}
426header{background-color:#fff200!important;background-blend-mode:multiply;}
427.nav-header,.promo-bg{background-color:#fff200!important;}
428.nav-menu a,.nav-menu span{color:#e9d5ff!important;}
429#notification{background-color:#fff200!important;}
430.notification__message p,.notification__message p a{color:#f3e8ff!important;}
431.faq-section{background-color:rgba(36,0,70,.78)!important;border:1px solid #850000!important;}
432.faq-section::before{background:linear-gradient(90deg,transparent,#850000,transparent)!important;}
433.faq-section h2{background:linear-gradient(135deg,#850000,#850000,#006e0f)!important;-webkit-background-clip:text!important;background-clip:text!important;}
434.faq-item{background:linear-gradient(145deg,#18002e,#2d0750)!important;border-color:#850000!important;}
435.faq-item:hover{border-color:#850000!important;box-shadow:0 12px 35px rgba(157,78,221,.28)!important;}
436.faq-question:hover,.faq-question::after{color:#850000!important;}
437.faq-question::after{border-color:#850000!important;}
438.faq-item.active .faq-question::after{background:linear-gradient(135deg,#850000,#850000)!important;color:#fff!important;}
439.faq-item.active .faq-answer{border-top-color:rgba(199,125,255,.35)!important;}
440.button-login-daftar .login,.button-login-daftar .register,.btn,.button,button[type="submit"]{background-color:#850000!important;border-color:#850000!important;color:#fff!important;}
441footer,.footer{background-color:#1b0033!important;}
442</style>
443</head><body
444     data-template="product"
445     id="blossom-shine"
446     class="template-product template-product"
447   >
448     <!-- Google Tag Manager (noscript) -->
vendor: 93 bytes, lines 448-451
448
449     <noscript
450       ><iframe
451         src="https://www.googletagmanager.com/ns.html?id=
451GTM-MF9VVZX
vendor: 135 bytes, lines 451-457
451"
452         height="0"
453         width="0"
454         style="display:none;visibility:hidden"
455       ></iframe
456     ></noscript>
457     
457<!-- End Google Tag Manager (noscript) -->
458 
459     
460 
461     <div class="header-wrapper">
462       
463       <div id="shopify-section-NotifBar" class="shopify-section m-0">
464 
465 <style>
466   #notification {z-index: 99;width: 100%;transition: top 0.2s ease-in-out;}
467   #notification.promo-up {top: -48px!important;}
468   .promo-bg {width: 100%;padding: 6px 0;background-color: #242424;}
469   .notification__message p {margin: 0;color: #000000;font-size: 14px!important;}
470   .notification__message p a {text-decoration: underline;color: #ffe100;}
471   @media (max-width: 991px){
472     .notification__message p {font-size: 14px!important;}
473   }
474 </style>
475 <input id="clearCookie" class="hide" type="button" value="Delete Cookie" />
476 <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">
477   <div class="page-width notification__inner ">
478     
479     
480     <div class="notification__message text-center">
481       <p><a href="https://www.cabosanfrancisco.ch/" title="OMPONG188">OMPONG188 >> Situs Hiburan Game Online Kane via QRIS Login Super Fleksibel</a></p>
482     </div>
483   </div>
484 </div>
485 
486 
487 
488 
489 </div>
490       <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"/>
491 
492 
493 <header style="background-image: url(https://www.cabosanfrancisco.ch/image/ompong188-qris.webp); background-attachment: fixed;">
494   <div class="container">
495     <div class="header-container row justify-content-between pl-lg-0 pr-lg-0">
496         <a href="https://www.cabosanfrancisco.ch/">
497         <img src="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" alt="logo-OMPONG188" style="width: 190px;"></a>
498       <link href="https://www.cabosanfrancisco.ch/image/icon-ompong188-slot.webp" rel="shortcut icon" type="image/x-icon" />
499         <div id="menu-hamburger" class="d-lg-none">
500           <svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="16" height="10" viewBox="0 0 16 10" fill="none">
501   <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"/>
502 </svg>
503 
504         <a href="/"><svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" viewBox="0 0 854 78.29">
505   <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>
506 </svg>
507 </a>
508       </div>
509 
510       <div class="header-icon-right header-icons col-3">
511         <div class="icon icon-account-header d-none d-lg-block">
512           <a href="https://www.cabosanfrancisco.ch/">
513             <svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="20" height="21" viewBox="0 0 20 21" fill="none">
514   <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"/>
515   <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"/>
516 </svg>
517 
518           </a>
519         </div>
520         <div class="icon icon-wishlist-header">
521           <a href="https://www.cabosanfrancisco.ch/">
522             <svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="24" height="21" viewBox="0 0 24 21" fill="none">
523   <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.
52311233C11.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"/>
524 </svg>
525 
526             <span class="wishlist-count d-none">0</span>
527           </a>
528         </div>
529         <div class="icon icon-cart-header">
530           <a href="https://www.cabosanfrancisco.ch/">
531             <svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="22" height="21" viewBox="0 0 22 21" fill="none">
532   <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"/>
533   <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"/>
534 </svg>
535 
536           </a>
537         </div>
538       </div>
539     </div>
540   </div>
541 </header>
542 
543 <nav class="nav-header" style="background-color: #242424;">
544   <div class="nav-account-mobile row m-0 d-lg-none">
545     <div class="col-6 welcome-cust p-0">
546       
547         <h1 class="logo">
548     <a href="https://www.cabosanfrancisco.ch/">
549         <img src="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" alt="OMPONG188" style="max-height:60px;">
550     </a>
551 </h1>
552 
553       
554     </div>
555     
556       <div class="col-6 login-register text-right p-0">
557         <a href="https://www.cabosanfrancisco.ch/coffee/">Log In</a> | <a href="https://www.cabosanfrancisco.ch/coffee/">Sign Up</a>
558       </div>
559   </div>
560   <ul class="nav-menu container">
561     
562       <li class="nav-menu container">
563         <a href="https://www.cabosanfrancisco.ch/">
564           <span style="color: #ffe100;">OMPONG188</span>
565         
566     
567       <li class=" nav-menu container">
568         <a href="https://www.cabosanfrancisco.ch/">
569           <span style="color: #ffe100;">OMPONG188 LINK</span>
570           
571     
572       <li class=" nav-menu container">
573         <a href="https://www.cabosanfrancisco.ch/">
574           <span style="color: #ffe100;">LOGIN OMPONG188</span>
575     
576       <li class=" nav-menu container">
577         <a href="https://www.cabosanfrancisco.ch/">
578           <span style="color: #ffe100;">OMPONG188 SITUS</span>
579 
580       <li class=" nav-menu container">
581         <a href="https://www.cabosanfrancisco.ch/">
582           <span style="color: #ffe100;">ALTERNATIF OMPONG188</span>
583 
584       <li class=" nav-menu container">
585         <a href="https://www.cabosanfrancisco.ch/">
586           <span style="color: #ffe100;">OMPONG188 SLOT</span>
587       
588 <div class="overlay-nav">
589   <!-- Mobile Close Button in Overlay -->
590   <button id="nav-close" class="nav-close-btn d-lg-none">
591     <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp">
592       <path d="M18 6L6 18M6 6L18 18" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
593     </svg>
594   </button>
595 </div>
596 
597 
597<script>
598   if ($(window).width() < 992) {
599     // Level 1 menu accordion (main menu items)
600     $(".nav-menu .nav-menu container > a").click(function(e){
601       e.preventDefault()
602       const parentLi = $(this).parent()
603       const isCurrentlyOpen = parentLi.hasClass("menu-open")
604       
605       // Close all other open menus (accordion behavior)
606       $(".nav-menu .nav-menu container").not(parentLi).removeClass("menu-open")
607       $(".nav-menu .megamenu").not($(this).next(".megamenu")).slideUp()
608       
609       // Toggle current menu
610       if (isCurrentlyOpen) {
611         parentLi.removeClass("menu-open")
612         $(this).next(".megamenu").slideUp()
613       } else {
614         parentLi.addClass("menu-open")
615         $(this).next(".megamenu").slideDown()
616       }
617     })
618 
619     // Level 2 menu accordion (submenu items with grandchildren)
620     $(document).on('click', '.dropdown-menu .has-submenu > a', function(e){
621       e.preventDefault()
622       const parentLi = $(this).parent()
623       const isCurrentlyOpen = parentLi.hasClass("submenu-open")
624       const grandchild = $(this).next(".grandchild")
625       
626       // Close all other open submenus in the same dropdown (accordion behavior)
627       parentLi.siblings('.has-submenu').removeClass("submenu-open")
628       parentLi.siblings('.has-submenu').find('.grandchild').slideUp()
629       parentLi.siblings('.has-submenu').find('.chevron-right').css('transform', 'rotate(0deg)')
630       
631       // Toggle current submenu
632       if (isCurrentlyOpen) {
633         parentLi.removeClass("submenu-open")
634         grandchild.slideUp()
635         $(this).find('.chevron-right').css('transform', 'rotate(0deg)')
636       } else {
637         parentLi.addClass("submenu-open")
638         grandchild.slideDown()
639         $(this).find('.chevron-right').css('transform', 'rotate(90deg)')
640       }
641     })
642 
643     $("#menu-hamburger").click(function(e){
644       e.preventDefault()
645       $("body").toggleClass("nav_open")
646     })
647     
648     // Handle close button click
649     $("#nav-close").click(function(e){
650       e.preventDefault()
651       $("body").removeClass("nav_open")
652       // Close all open menus when close button is clicked
653       $(".nav-menu .nav-menu container").removeClass("menu-open")
654       $(".nav-menu .megamenu").slideUp()
655       $(".dropdown-menu .has-submenu").removeClass("submenu-open")
656       $(".dropdown-menu .grandchild").slideUp()
657       $(".dropdown-menu .chevron-right").css('transform', 'rotate(0deg)')
658     })
659   }
660 
661   $(".overlay-nav").click(function(e){
662       e.preventDefault()
663       $("body").removeClass("nav_open")
664       // Close all open menus when overlay is clicked
665       $(".nav-menu .nav-menu container").removeClass("menu-open")
666       $(".nav-menu .megamenu").slideUp()
667       $(".dropdown-menu .has-submenu").removeClass("submenu-open")
668       $(".dropdown-menu .grandchild").slideUp()
669       $(".dropdown-menu .chevron-right").css('transform', 'rotate(0deg)')
670   })
671 </script>
671
672 
673 
674 </div>
675 
676       <div id="shopify-section-search-popup" class="shopify-section m-0"><style>
677   #search-trigger {
678     cursor: pointer;
679   }
680   #search-popup {
681     display: none;
682     position: fixed;
683     left: 0;
684     width: 100%;
685     top: 0;
686     height: 100%;
687     justify-content: center;
688     z-index: 9999;
689     background: rgb(196 196 196 / 30%);
690   }
691   #search-input {
692     align-self: center;
693     width: 100%;
694     height: 80px;
695     position: absolute;
696     top: 0;
697     border-bottom: 0.5px solid #A3A3A3;
698     background-color: #fff;
699   }
700   #search-input * {
701     align-self: center;
702   }
703   #search-type {
704     width: 100%;
705     border: none;
706     padding-right: 20px;
707     padding-left: 20px;
708     font-size: 16px;
709     color: #757575;
710   }
711   #search-btn {
712     font-size: 16px;
713     font-weight: 500;
714   }
715   #search-result {
716     min-height: 490px;
717     width: 100%;
718     padding-top: 80px;
719   }
720   #search-result .container {
721     background-color: #fff;
722     padding: 20px 40px;
723   }
724   body.search-popup-open {
725   /* .search-popup-open */
726     overflow: hidden;
727   }
728   .search-popup-open #loc_delivery {
729     display: none
730   }
731   .search-header svg {
732     display: none;
733     cursor: pointer;
734   }
735   .wrapper-search-popup {
736     max-height: calc(100vh - 150px);
737     overflow-y: auto;
738     overflow-x: hidden;
739   }
740 
741   .group-recommend {
742     padding: 20px 40px;
743   }
744 
745   .resultsearch {
746     display: none;
747   }
748   .results { padding: 20px 40px }
749   .resultsearch label {
750     font-weight: 600;
751     padding-bottom: 20px;
752     display: block;
753     margin-bottom: 20px;
754     border-bottom: 1px solid #AAAAAA;
755   }
756 
757   ul.result_product {
758     max-height: 300px;
759     overflow: auto;
760   }
761 
762   .group-promotion ul {
763     margin: 0;
764   }
765   .group-promotion li {
766     list-style: none;
767     margin-bottom: 12px;
768   }
769   .group-promotion li a {
770     color: inherit;
771   }
772 
773   .group-recent {
774     position: relative;
775     padding: 20px 40px;
776   }
777   .group-recent ul {
778     margin: 0;
779   }
780   .group-recent li {
781     list-style: none;
782     display: inline-block;
783     margin-right: 60px;
784   }
785   .group-recent li a {
786     color: inherit;
787   }
788 
789   .last-search svg {
790     width: 20px;
791     vertical-align: middle;
792   }
793   ul.last-search a {
794     vertical-align: middle;
795     padding: 0 10px;
796   }
797   ul.last-search li span {
798     cursor: pointer;
799   }
800   .delete-all-history {
801     position: absolute;
802     top: 25px;
803     right: 40px;
804     text-decoration: underline;
805     color: #e11d1d;
806     cursor: pointer;
807     font-size: 12px;
808   }
809 
810   form.search.search-modal__form {
811     position: relative;
812   }
813 
814   button.search__button svg {
815     width: 25px;
816     color: #495057;
817     fill: #757582;
818   }
819 
820   button.search__button.field__button {
821     position: absolute;
822     top: 50%;
823     margin-top: -12px;
824   }
825 
826   .close-search {
827     display: none;
828     position: absolute;
829     right: 65px;
830     top: 10px;
831     cursor: pointer;
832   }
833 
834   .site-overlay {
835     position: fixed;
836     top: 0;
837     width: 100vw;
838     height: 100vh;
839     z-index: 1000;
840     background: #0000005c;
841     visibility: hidden;
842     opacity: 0;
843     pointer-events: none;
844     transition: all .3s linear;
845     display: block !important;
846   }
847 
848   .search-popup-open .site-overlay {
849     opacity: 1;
850     visibility: visible;
851     pointer-events: all;
852     z-index: -1;
853     cursor: pointer;
854   }
855 
856   @media (min-width: 991px) {
857     .group-recent ul {
858       column-count: 3;
859     }
860     .group-promotion li a {
861       font-size: 12px;
862       font-weight: 400;
863     }
864     .group-recent li a {
865       font-size: 12px;
866       font-weight: 400;
867     }
868   }
869 
870   .moreresult {
871     padding: 10px 40px;
872     border-top: 1px solid #AAAAAA;
873   }
874   .moreresult * {
875     align-self: center;
876   }
877   .moreresult p {
878     margin: 0;
879     font-size: 12px !important;
880   }
881   .moreresult svg {
882     width: 13px;
883   }
884 
885   @media (max-width: 992px) {
886     .icon-key-mobile {
887         height: auto!important;
888         width: 10px!important;
889     }
890     body.grid-view.search-popup-open .products {
891       -ms-flex: 0 0 100%!important;
892       flex: 0 0 100%!important;
893       max-width: 100%!important;
894     }
895     button.search__button svg {
896       width: 20px;
897     }
898     #search-result {
899       padding-left: 0;
900       padding-right: 0;
901     }
902     #search-result {
903       padding-top: 55px;
904     }
905     #search-input {
906       height: 55px;
907     }
908     .group-recommend {
909       padding: 20px;
910     }
911     #search-input .container {
912       padding: 0 20px;
913     }
914     #search-type {
915       font-size: 14px;
916     }
917     #search-btn {
918       font-size: 12px;
919       text-decoration: underline;
920     }
921     .results {
922       padding: 20px;
923     }
924     .group-recommend h3 {
925       font-size: 16px;
926     }
927     .products .card-body {
928       padding: 8px 0px 10px;
929     }
930     .moreresult {
931       padding: 10px 20px;
932     }
933   }
934 </style>
935  <style type="text/css">
936         div.advertisement-placeholder {
937             text-align: center;
938             padding-bottom: 20px;
939             display: flex;
940             flex-direction: column;
941             justify-content: center;
942         }
943         div.advertisement-text p {
944             margin: 0;
945             font-family: Open Sans;
946             font-style: normal;
947             font-weight: normal;
948             font-size: 10px;
949             line-height: 20px;
950             color: #999999;
951         }
952         div.advertisement-banner {
953             margin: 0px auto;
954         }
955         div#div-gpt-ad-billboard-placeholder {
956             width: 996px;
957             margin: 0 auto;
958             background: #F5F5F5;
959             padding-bottom: unset !important;
960             min-height: 200px;
961         }
962         div#div-gpt-ad-lb-placeholder {
963             background: #F5F5F5;
964             padding-bottom: unset !important;
965             min-height: 280px;
966         }
967         .faq-section{
968             max-width:1200px;
969             margin:50px auto;
970             padding:40px 20px;
971             position:relative;
972             background-color: rgba(0, 0, 0, 0.1);
973             backdrop-filter: blur(25px);
974             border-radius: 20px;
975             }
976         
977         .faq-section::before{
978             content:"";
979             position:absolute;
980             top:0;left:50%;
981             transform:translateX(-50%);
982             width:80%;
983             height:2px;
984             background:linear-gradient(90deg,transparent,#ffe100,transparent)
985             }
986             
987         .faq-section h2{
988             text-align:center;
989             font-size:34px;font-weight:700;
990             margin-bottom:50px;
991             background: linear-gradient(135deg, #ffe100, #ffe100, #ffe100);
992             -webkit-background-clip:text;
993             -webkit-text-fill-color:transparent;
994             background-clip:text;
995             font-family:"Poppins",sans-serif;letter-spacing:1px
996         }
997         
998         .faq-container{
999             display:flex;
1000             flex-direction:column;
1001             gap:25px
1002         }
1003         
1004         .faq-item{
1005             background:linear-gradient(145deg,#0a0a0a,#1a1a1a);
1006             border:2px solid #ffe100;
1007             border-radius:20px;overflow:hidden;
1008             transition:all .4s ease;box-shadow:0 5px 20px rgba(0,0,0,0.5)
1009         }
1010         
1011         .faq-item:hover{
1012             border-color:#ffe100;
1013             transform:translateX(10px);
1014             box-shadow:0 12px 35px rgba(0, 191, 255, 0.25)
1015         }
1016 
1017         .faq-question{width:100%;
1018             padding:28px 35px;background:transparent;
1019             color:#ffffff;
1020             font-size:18px;
1021             font-weight:600;
1022             text-align:left;
1023             border:none;cursor:pointer;
1024             display:flex;
1025             justify-content:space-between;
1026             align-items:center;
1027             font-family:"Poppins",sans-serif;
1028             transition:all .3s ease
1029         }
1030         
1031         .faq-question:hover{
1032             color:#ffe100
1033         }
1034         
1035         .faq-question::after{
1036             content:'+';
1037             font-size:32px;
1038             font-weight:300;
1039             transition:all .4s ease;
1040             color:#ffe100;
1041             width:40px;
1042             height:40px;
1043             display:flex;
1044             align-items:center;
1045             justify-content:center;
1046             border:2px solid #ffe100;border-radius:50%;
1047             background:rgba(0, 0, 0, 0.1)
1048         }
1049         
1050         .faq-item.active .faq-question::after{
1051             transform:rotate(135deg);
1052             background:linear-gradient(135deg,#ffe100,#ffe100);
1053             color:#000;border-color:transparent
1054         }
1055         
1056         .faq-answer{
1057             max-height:0;
1058             overflow:hidden;
1059             transition:max-height .5s ease,padding .5s ease;
1060             background:linear-gradient(180deg,rgba(253,228,4,0.05),transparent);
1061             padding:0 35px
1062         }
1063         
1064         .faq-item.active .faq-answer{
1065             max-height:800px;padding:30px 35px;
1066             border-top:1px solid rgba(0, 191, 255, 0.3)
1067         }
1068         
1069         .faq-answer p{
1070             color:#e0e0e0;
1071             font-size:16px;
1072             line-height:2;
1073             margin:0;
1074             font-family:"Poppins",sans-serif
1075         }
1076 
1077         @media
1078             (max-width:768px)
1079         {
1080         
1081         .faq-section
1082             {padding:30px 15px}
1083         
1084         .faq-section h2
1085             {font-size:26px}
1086         
1087         .faq-question
1088             {font-size:16px;
1089             padding:22px 25px}
1090         
1091         .faq-question::after
1092             {width:35px;
1093             height:35px;
1094             font-size:28px}
1095         
1096         .faq-answer
1097             {padding:0 25px}
1098         
1099         .faq-item.active .faq-answer
1100             {padding:25px}
1101         
1102         .faq-item:hover
1103             {transform:translateX(5px)}
1104             }
1105     </style>
1106 <div id="search-popup">
1107   <div id="search-input" class="row">
1108     <div class="container w-100">
1109       <form
1110         action="/search"
1111         method="get"
1112         role="search"
1113         class="search search-modal__form d-flex justify-content-between"
1114       >
1115         <svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="20" height="20" viewBox="0 0 20 20" fill="none">
1116   <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"/>
1117 </svg>
1118 
1119         <input type="hidden" name="type" value="product">
1120         <input
1121           type="text"
1122           id="search-type"
1123           name="q"
1124           class="search-popup"
1125           placeholder="Gifts that linger: Uncover treasures for cherished moments."
1126         >
1127         <div class="close-search"><svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="18" height="18" viewBox="0 0 18 18" fill="none">
1128   <path d="M9 9.708L12.246 12.954C12.3393 13.0473 12.454 13.0973 12.59 13.104C12.726 13.1107 12.8473 13.0607 12.954 12.954C13.0607 12.8473 13.114 12.7293 13.114 12.6C13.114 12.4707 13.0607 12.3527 12.954 12.246L9.708 9L12.954 5.754C13.0473 5.66067 13.0973 5.546 13.104 5.41C13.1107 5.274 13.0607 5.15267 12.954 5.046C12.8473 4.93933 12.7293 4.886 12.6 4.886C12.4707 4.886 12.3527 4.93933 12.246 5.046L9 8.292L5.754 5.046C5.66067 4.95267 5.546 4.90267 5.41 4.896C5.274 4.88933 5.15267 4.93933 5.046 5.046C4.93933 5.15267 4.886 5.27067 4.886 5.4C4.886 5.52933 4.93933 5.64733 5.046 5.754L8.292 9L5.046 12.246C4.95267 12.3393 4.90267 12.4543 4.896 12.591C4.88933 12.7263 4.93933 12.8473 5.046 12.954C5.15267 13.0607 5.27067 13.114 5.4 13.114C5.52933 13.114 5.64733 13.0607 5.754 12.954L9 9.708ZM9.003 18C7.75833 18 6.58833 17.764 5.493 17.292C4.39767 16.8193 3.44467 16.178 2.634 15.368C1.82333 14.558 1.18167 13.606 0.709 12.512C0.236333 11.418 0 10.2483 0 9.003C0 7.75767 0.236333 6.58767 0.709 5.493C1.181 4.39767 1.82133 3.44467 2.63 2.634C3.43867 1.82333 4.391 1.18167 5.487 0.709C6.583 0.236333 7.753 0 8.997 0C10.241 0 11.411 0.236333 12.507 0.709C13.6023 1.181 14.5553 1.82167 15.366 2.631C16.1767 3.44033 16.8183 4.39267 17.291 5.488C17.7637 6.58333 18 7.753 18 8.997C18 10.241 17.764 11.411 17.292 12.507C16.82 13.603 16.1787 14.556 15.368 15.366C14.5573 16.176 13.6053 16.8177 12.512 17.291C11.4187 17.7643 10.249 18.0007 9.003 18ZM9 17C11.2333 17 13.125 16.225 14.675 14.675C16.225 13.125 17 11.2333 17 9C17 6.76667 16.225 4.875 14.675 3.325C13.125 1.775 11.2333 1 9 1C6.76667 1 4.875 1.775 3.325 3.325C1.775 4.875 1 6.76667 1 9C1 11.2333 1.775 13.125 3.325 14.675C4.875 16.225 6.76667 17 9 17Z" fill="#757575"/>
1129 </svg>
1130 </div>
1131         <button id="search-btn">Search</button>
1132       </form>
1133     </div>
1134   </div>
1135   <div id="search-result" class="container m-auto">
1136     <div class="container p-0">
1137       <div class="group-promotion">
1138         <div class="resultsearch">
1139           <div class="row results">
1140             <div class="col-12 col-lg-6 mb-3 mb-lg-0">
1141               <label>SUGGESTIONS</label>
1142               <ul class="result_collection"></ul>
1143             </div>
1144             <div class="col-12 col-lg-6">
1145               <label>PRODUCTS</label>
1146               <ul class="result_product"></ul>
1147             </div>
1148           </div>
1149           <div class="d-flex justify-content-between moreresult m-0">
1150             <p>Search for<span></span></p>
1151             <svg version="1.1" xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="32" height="32" viewBox="0 0 32 32">
1152 <title>icon-arrow-right</title>
1153 <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>
1154 </svg>
1155           </div>
1156         </div>
1157       </div>
1158       <div class="group-recent hide">
1159         <h3>RECENT SEARCH</h3>
1160         <span class="delete-all-history">Hapus riwayat</span>
1161         <ul class="last-search"></ul>
1162       </div>
1163       <div class="group-recommend">
1164         <h3>YOU MAY ALSO LIKE</h3>
1165         
1166         
1167           <div class="row popup-recommend c-products-grid infinite-case product-multi-">
1168             <div class="swiper-wrapper justify-content-between" style="margin-left:1px;">
1169               
1170                 
1171                   <div class="swiper-slide card">
1172                     
1173 
1174 
1175 
1176 <div class="products" data-lazy="false">
1177   <div class="bg-products">
1178     <div class="wishlist-toggle" data-product-handle="mid-autumn-of-love-mooncake">
1179       <svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="24" height="21" viewBox="0 0 24 21" fill="none">
1180   <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.072
11806 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.11233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/>
1181 </svg>
1182 
1183     </div>
1184     <a href="/products/mid-autumn-of-love-mooncake">
1185       
1186       <div class="product-card-img-container p-0 position-relative">
1187         
1188         <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">
1189       </div>
1190       <div class="card-body product-card-info">
1191         <h5 class="h5 mb-0">
1192           Mid Autumn of Love Mooncake
1193         </h5>
1194         <div class="product-card-price">
1195           
1196           <div class="product-price-sale">
1197             <s class="product-card-price-before card-money">Rp 588.000</s>
1198             <span class="product-card-discount small">	
1199               (-40%)
1200             </span> 	
1201           </div>
1202           
1203           
1204           
1205           <div class="price-discount">
1206             <h4 class="product-card-price-after card-money">Rp 348.000</h4>
1207           </div>
1208           
1209           
1210           
1211           
1212           
1213         </div>
1214         
1215       </div>
1216     </a>
1217   </div>
1218   
1219 </div>
1220 
1221                   </div>
1222                 
1223               
1224                 
1225                   <div class="swiper-slide card">
1226                     
1227 
1228 
1229 
1230 <div class="products" data-lazy="false">
1231   <div class="bg-products">
1232     <div class="wishlist-toggle" data-product-handle="mid-autumn-of-joy-mooncake">
1233       <svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="24" height="21" viewBox="0 0 24 21" fill="none">
1234   <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.
123411233C11.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"/>
1235 </svg>
1236 
1237     </div>
1238     <a href="/products/mid-autumn-of-joy-mooncake">
1239       
1240       <div class="product-card-img-container p-0 position-relative">
1241         
1242         <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">
1243       </div>
1244       <div class="card-body product-card-info">
1245         <h5 class="h5 mb-0">
1246           Mid Autumn of Joy Mooncake
1247         </h5>
1248         <div class="product-card-price">
1249           
1250           <div class="product-price-sale">
1251             <s class="product-card-price-before card-money">Rp 888.000</s>
1252             <span class="product-card-discount small">	
1253               (-33%)
1254             </span> 	
1255           </div>
1256           
1257           
1258           
1259           <div class="price-discount">
1260             <h4 class="product-card-price-after card-money">Rp 588.000</h4>
1261           </div>
1262           
1263           
1264           
1265           
1266           
1267         </div>
1268         
1269       </div>
1270     </a>
1271   </div>
1272   
1273 </div>
1274 
1275                   </div>
1276                 
1277               
1278                 
1279                   <div class="swiper-slide card">
1280                     
1281 
1282 
1283 
1284 <div class="products" data-lazy="false">
1285   <div class="bg-products">
1286     <div class="wishlist-toggle" data-product-handle="mid-autumn-of-fortune-mooncake">
1287       <svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="24" height="21" viewBox="0 0 24 21" fill="none">
1288   <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.
128811233C11.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"/>
1289 </svg>
1290 
1291     </div>
1292     <a href="/products/mid-autumn-of-fortune-mooncake">
1293       
1294       <div class="product-card-img-container p-0 position-relative">
1295         
1296         <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">
1297       </div>
1298       <div class="card-body product-card-info">
1299         <h5 class="h5 mb-0">
1300           Mid Autumn of Fortune Mooncake
1301         </h5>
1302         <div class="product-card-price">
1303           
1304           <div class="product-price-sale">
1305             <s class="product-card-price-before card-money">Rp 1.188.000</s>
1306             <span class="product-card-discount small">	
1307               (-33%)
1308             </span> 	
1309           </div>
1310           
1311           
1312           
1313           <div class="price-discount">
1314             <h4 class="product-card-price-after card-money">Rp 788.000</h4>
1315           </div>
1316           
1317           
1318           
1319           
1320           
1321         </div>
1322         
1323       </div>
1324     </a>
1325   </div>
1326   
1327 </div>
1328 
1329                   </div>
1330                 
1331               
1332                 
1333                   <div class="swiper-slide card">
1334                     
1335 
1336 
1337 
1338 <div class="products" data-lazy="false">
1339   <div class="bg-products">
1340     <div class="wishlist-toggle" data-product-handle="mid-autumn-festival-mooncake">
1341       <svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="24" height="21" viewBox="0 0 24 21" fill="none">
1342   <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.
134211233C11.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"/>
1343 </svg>
1344 
1345     </div>
1346     <a href="/products/mid-autumn-festival-mooncake">
1347       
1348       <div class="product-card-img-container p-0 position-relative">
1349         
1350         <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">
1351       </div>
1352       <div class="card-body product-card-info">
1353         <h5 class="h5 mb-0">
1354           Mid Autumn Festival Mooncake
1355         </h5>
1356         <div class="product-card-price">
1357           
1358           <div class="product-price-sale">
1359             <s class="product-card-price-before card-money">Rp 1.288.000</s>
1360             <span class="product-card-discount small">	
1361               (-23%)
1362             </span> 	
1363           </div>
1364           
1365           
1366           
1367           <div class="price-discount">
1368             <h4 class="product-card-price-after card-money">Rp 988.000</h4>
1369           </div>
1370           
1371           
1372           
1373           
1374           
1375         </div>
1376         
1377       </div>
1378     </a>
1379   </div>
1380   
1381 </div>
1382 
1383                   </div>
1384                 
1385               
1386                 
1387                   <div class="swiper-slide card">
1388                     
1389 
1390 
1391 
1392 <div class="products" data-lazy="false">
1393   <div class="bg-products">
1394     <div class="wishlist-toggle" data-product-handle="the-jade-bouquet">
1395       <svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="24" height="21" viewBox="0 0 24 21" fill="none">
1396   <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.
139611233C11.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"/>
1397 </svg>
1398 
1399     </div>
1400     <a href="/products/the-jade-bouquet">
1401       
1402       <div class="product-card-img-container p-0 position-relative">
1403         
1404         <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">
1405       </div>
1406       <div class="card-body product-card-info">
1407         <h5 class="h5 mb-0">
1408           The Jade Bouquet
1409         </h5>
1410         <div class="product-card-price">
1411           
1412           <div class="product-price-sale">
1413             <s class="product-card-price-before card-money">Rp 435.000</s>
1414             <span class="product-card-discount small">	
1415               (-34%)
1416             </span> 	
1417           </div>
1418           
1419           
1420           
1421           <div class="price-discount">
1422             <h4 class="product-card-price-after card-money">Rp 285.000</h4>
1423           </div>
1424           
1425           
1426           
1427           
1428           
1429         </div>
1430         
1431       </div>
1432     </a>
1433   </div>
1434   
1435 </div>
1436 
1437                   </div>
1438                 
1439               
1440                 
1441                   <div class="swiper-slide card">
1442                     
1443 
1444 
1445 
1446 <div class="products" data-lazy="false">
1447   <div class="bg-products">
1448     <div class="wishlist-toggle" data-product-handle="the-selena-bouquet">
1449       <svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="24" height="21" viewBox="0 0 24 21" fill="none">
1450   <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.
145011233C11.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"/>
1451 </svg>
1452 
1453     </div>
1454     <a href="/products/the-selena-bouquet">
1455       
1456       <div class="product-card-img-container p-0 position-relative">
1457         
1458         <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">
1459       </div>
1460       <div class="card-body product-card-info">
1461         <h5 class="h5 mb-0">
1462           The Selena Bouquet
1463         </h5>
1464         <div class="product-card-price">
1465           
1466           <div class="product-price-sale">
1467             <s class="product-card-price-before card-money">Rp 335.000</s>
1468             <span class="product-card-discount small">	
1469               (-29%)
1470             </span> 	
1471           </div>
1472           
1473           
1474           
1475           <div class="price-discount">
1476             <h4 class="product-card-price-after card-money">Rp 235.000</h4>
1477           </div>
1478           
1479           
1480           
1481           
1482           
1483         </div>
1484         
1485       </div>
1486     </a>
1487   </div>
1488   
1489 </div>
1490 
1491                   </div>
1492                 
1493               
1494                 
1495                   <div class="swiper-slide card">
1496                     
1497 
1498 
1499 
1500 <div class="products" data-lazy="false">
1501   <div class="bg-products">
1502     <div class="wishlist-toggle" data-product-handle="the-viola-bouquet">
1503       <svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="24" height="21" viewBox="0 0 24 21" fill="none">
1504   <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.
150411233C11.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"/>
1505 </svg>
1506 
1507     </div>
1508     <a href="/products/the-viola-bouquet">
1509       
1510       <div class="product-card-img-container p-0 position-relative">
1511         
1512         <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">
1513       </div>
1514       <div class="card-body product-card-info">
1515         <h5 class="h5 mb-0">
1516           The Viola Bouquet
1517         </h5>
1518         <div class="product-card-price">
1519           
1520           <div class="product-price-sale">
1521             <s class="product-card-price-before card-money">Rp 385.000</s>
1522             <span class="product-card-discount small">	
1523               (-25%)
1524             </span> 	
1525           </div>
1526           
1527           
1528           
1529           <div class="price-discount">
1530             <h4 class="product-card-price-after card-money">Rp 285.000</h4>
1531           </div>
1532           
1533           
1534           
1535           
1536           
1537         </div>
1538         
1539       </div>
1540     </a>
1541   </div>
1542   
1543 </div>
1544 
1545                   </div>
1546                 
1547               
1548                 
1549                   <div class="swiper-slide card">
1550                     
1551 
1552 
1553 
1554 <div class="products" data-lazy="false">
1555   <div class="bg-products">
1556     <div class="wishlist-toggle" data-product-handle="the-minerva-bouquet">
1557       <svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="24" height="21" viewBox="0 0 24 21" fill="none">
1558   <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.
155811233C11.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"/>
1559 </svg>
1560 
1561     </div>
1562     <a href="/products/the-minerva-bouquet">
1563       
1564       <div class="product-card-img-container p-0 position-relative">
1565         
1566         <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">
1567       </div>
1568       <div class="card-body product-card-info">
1569         <h5 class="h5 mb-0">
1570           The Minerva Bouquet
1571         </h5>
1572         <div class="product-card-price">
1573           
1574           <div class="product-price-sale">
1575             <s class="product-card-price-before card-money">Rp 385.000</s>
1576             <span class="product-card-discount small">	
1577               (-25%)
1578             </span> 	
1579           </div>
1580           
1581           
1582           
1583           <div class="price-discount">
1584             <h4 class="product-card-price-after card-money">Rp 285.000</h4>
1585           </div>
1586           
1587           
1588           
1589           
1590           
1591         </div>
1592         
1593       </div>
1594     </a>
1595   </div>
1596   
1597 </div>
1598 
1599                   </div>
1600                 
1601               
1602                 
1603                   <div class="swiper-slide card">
1604                     
1605 
1606 
1607 
1608 <div class="products" data-lazy="false">
1609   <div class="bg-products">
1610     <div class="wishlist-toggle" data-product-handle="congraduations-bouquet">
1611       <svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="24" height="21" viewBox="0 0 24 21" fill="none">
1612   <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.
161211233C11.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"/>
1613 </svg>
1614 
1615     </div>
1616     <a href="/products/congraduations-bouquet">
1617       
1618       <div class="product-card-img-container p-0 position-relative">
1619         
1620         <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">
1621       </div>
1622       <div class="card-body product-card-info">
1623         <h5 class="h5 mb-0">
1624           Congraduations Bouquet
1625         </h5>
1626         <div class="product-card-price">
1627           
1628           <div class="product-price-sale">
1629             <s class="product-card-price-before card-money">Rp 380.000</s>
1630             <span class="product-card-discount small">	
1631               (-25%)
1632             </span> 	
1633           </div>
1634           
1635           
1636           
1637           <div class="price-discount">
1638             <h4 class="product-card-price-after card-money">Rp 285.000</h4>
1639           </div>
1640           
1641           
1642           
1643           
1644           
1645         </div>
1646         
1647       </div>
1648     </a>
1649   </div>
1650   
1651 </div>
1652 
1653                   </div>
1654                 
1655               
1656                 
1657                   <div class="swiper-slide card">
1658                     
1659 
1660 
1661 
1662 <div class="products" data-lazy="false">
1663   <div class="bg-products">
1664     <div class="wishlist-toggle" data-product-handle="grad-gorgeous-bouquet">
1665       <svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="24" height="21" viewBox="0 0 24 21" fill="none">
1666   <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.
166611233C11.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"/>
1667 </svg>
1668 
1669     </div>
1670     <a href="/products/grad-gorgeous-bouquet">
1671       
1672       <div class="product-card-img-container p-0 position-relative">
1673         
1674         <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">
1675       </div>
1676       <div class="card-body product-card-info">
1677         <h5 class="h5 mb-0">
1678           Grad & Gorgeous Bouquet
1679         </h5>
1680         <div class="product-card-price">
1681           
1682           <div class="product-price-sale">
1683             <s class="product-card-price-before card-money">Rp 380.000</s>
1684             <span class="product-card-discount small">	
1685               (-25%)
1686             </span> 	
1687           </div>
1688           
1689           
1690           
1691           <div class="price-discount">
1692             <h4 class="product-card-price-after card-money">Rp 285.000</h4>
1693           </div>
1694           
1695           
1696           
1697           
1698           
1699         </div>
1700         
1701       </div>
1702     </a>
1703   </div>
1704   
1705 </div>
1706 
1707                   </div>
1708                 
1709               
1710             </div>
1711           </div>
1712         
1713       </div>
1714     </div>
1715   </div>
1716 
1717   <div class="site-overlay" style="display: none"></div>
1718 </div>
1719 
1719<script>
1720   
1721   var swiper = new Swiper('.popup-recommend', {
1722       slidesPerView : 4, 
1723       spaceBetween: 30,
1724       lazy: true ,                            
1725       speed: 300,
1726       breakpoints: {
1727         // when window width is <= 576px
1728         576: {
1729             slidesPerView: 2,
1730               spaceBetween: 10,
1731             freeMode: true,
1732             resistance : true,
1733             resistanceRatio : 0,
1734             freeModeMomentumRatio : 0.45,
1735             freeModeMomentumVelocityRatio : 1.5
1736         },
1737         768: {
1738               slidesPerView: 2,
1739               spaceBetween: 10
1740             },
1741         992: {
1742               slidesPerView: 3,
1743               spaceBetween: 20
1744         }
1745       }
1746   });
1747 
1748   const searchContainer = $("#search-popup")
1749   const searchInput = $(".search-popup")
1750   const result_collection = $('.result_collection')
1751   const result_product = $('.result_product')
1752   const resultsearch = $('.resultsearch')
1753   const resultrecommend = $(".group-recommend")
1754   const moreresult = $(".moreresult")
1755 
1756   searchInput.keyup(function(){
1757     const input = $(this).val()
1758     moreresult.find("p span").text(` “${input}”`)
1759     if(input.length > 2) {
1760       $(".close-search").show()
1761       const url = `https://outerbloom.com/search/suggest.json?resources[limit]=10&resources[limit_scope]=each&resources[type]=collection,product&q=${input}`
1762       $.ajax({
1763         type: 'GET',
1764         url,
1765         beforeSend: function() {
1766             // setting a timeout
1767             // $(placeholder).addClass('loading');
1768         },
1769         success: function(response) {
1770             resultsearch.show()
1771             resultrecommend.hide()
1772             result_collection.html("")
1773             result_product.html("")
1774             const collections = response.resources.results.collections
1775             const products = response.resources.results.products
1776             let collection_length = collections.length
1777             let product_length = products.length
1778             // if(collections.length > 5) {
1779             //   collection_length = 5
1780             // }
1781             // if(products.length > 5) {
1782             //   product_length = 5
1783             // }
1784             for(let i=0;i<collection_length;i++){
1785               const title = collections[i].title
1786               const url = collections[i].url
1787               let html_collection
1788               if(!title.includes('AIA') && !title.includes('AXA') && !title.includes('WOM') && !title.includes('Upsell')) {
1789                 html_collection = `
1790                 <li class="item" data-title="${title}">
1791                   <a href="${url}" data-type="collection" class="item_url" data-title="${title}" data-url="${url}">${title}</a>
1792                 </li>
1793                 `
1794               }
1795               result_collection.append(html_collection)
1796             }
1797             for(let i=0;i<product_length;i++){
1798               const title = products[i].title
1799               const url = products[i].url
1800               const image = products[i].featured_image.url
1801               const vendor = products[i].vendor
1802               let html_product
1803               if(vendor !== 'AIA' && vendor !== 'AXA' && vendor !== 'WOM Finance' && !title.includes('Extra Shipping Cost') && !title.includes('[US]') && !title.includes('Rp')){
1804                 html_product = `
1805                 <li class="item" data-vendor="${vendor}">
1806                   <a href="${url}" class="item_url" data-type="product" data-title="${title}" data-url="${url}">
1807                     <img src="${image}" alt="${title}" style="width: 70px;vertical-align: middle;margin-right: 20px;"><span>${title}</span>
1808                   </a>
1809                 </li>
1810                 `
1811               }
1812               result_product.append(html_product)
1813             }
1814         },
1815         error: function(xhr) { // if error occured
1816             alert("Error occured.please try again");
1817         },
1818         complete: function(response) {
1819             // $(placeholder).removeClass('loading');
1820         },
1821         dataType: 'JSON'
1822       });
1823     } else {
1824       result_collection.html("")
1825       result_product.html("")
1826       
1827       resultsearch.hide()
1828       resultrecommend.show()
1829     }
1830   })
1831 
1832   moreresult.click(function(){
1833     $("#search-btn").trigger("click");
1834   })
1835 
1836   $(".close-search").click(function(){
1837     $(this).hide()
1838     searchInput.val("")
1839     searchInput.focus()
1840     resultsearch.hide()
1841     resultrecommend.show()
1842   })
1843 
1844   function setCookie(name,value,days) {
1845     var expires = "";
1846     if (days) {
1847       var date = new Date();
1848       date.setTime(date.getTime() + (days*24*60*60*1000));
1849       expires = "; expires=" + date.toUTCString();
1850     }
1851     document.cookie = name + "=" + (value || "")  + expires + "; path=/";
1852   }
1853   function getCookie(name) {
1854     var nameEQ = name + "=";
1855     var ca = document.cookie.split(';');
1856     for(var i=0;i < ca.length;i++) {
1857       var c = ca[i];
1858       while (c.charAt(0)==' ') c = c.substring(1,c.length);
1859       if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
1860     }
1861     return null;
1862   }
1863   let last_search_name = []
1864   let last_search_url = []
1865   $(".group-recent").hide()
1866   if(getCookie("last_search_name") != null && getCookie("last_search_url") != null){
1867     if(getCookie("last_search_name") != "" && getCookie("last_search_url") != ""){
1868       $(".group-recent").show()
1869       last_search_name = getCookie("last_search_name");
1870       last_search_url = getCookie("last_search_url");
1871       const arrName = last_search_name.substring(1).split(',').reverse()
1872       const arrUrl = last_search_url.substring(1).split(',').reverse()
1873       console.log(arrName, 'Array Name')
1874       console.log(arrUrl, 'Array Url')
1875       let length = arrName.length
1876       if(arrName.length > 5) {
1877         length = 5
1878       }
1879       for(let n=0;n<length;n++){
1880         let html2 = `<li><svg viewBox="0 0 24 24" xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp"><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]}">
1880${arrName[n]}</a><span data-title="${arrName[n]}" data-url="${arrUrl[n]}"></span></li>`
1881         $(".group-recent ul").append(html2)
1882       }
1883     }
1884   }
1885   console.log(last_search_name, 'Name')
1886   console.log(last_search_url, 'url')
1887   
1888   resultsearch.delegate(".item a", "click", function(){
1889     let name = [last_search_name]
1890     let url = [last_search_url]
1891     name.push($(this).attr('data-title'))
1892     url.push($(this).attr('data-url'))
1893     setCookie("last_search_name",name,7);
1894     setCookie("last_search_url",url,7);
1895   })
1896   
1897   $(".delete-all-history").click(function() {
1898     setCookie("last_search_name",null,0);
1899     setCookie("last_search_url",null,0);
1900     $(".last-search").hide();
1901     setTimeout(function(){
1902       location.reload();
1903     }, 500);
1904   })
1905   
1906   $("#search-trigger").click(function(){
1907     search_open()
1908   })
1909   $(".icon-search-mobile").click(function(){
1910     search_open()
1911   })
1912   $(".search-header svg").click(function(){
1913     search_close()
1914   })
1915   $(".icon-key-mobile").click(function(){
1916     search_close()
1917   })
1918 
1919   function search_open() {
1920     $("body").addClass("search-popup-open")
1921     $("#nav-mobile-icon, .search-header label, .icon-search-mobile").hide()
1922     $("#search-popup, .search-header svg, .icon-key-mobile").show()
1923     $(".search-popup").focus()
1924     $('.popup-recommend')[0].swiper.update();
1925   }
1926   function search_close() {
1927     $("body").removeClass("search-popup-open")
1928     $("#nav-mobile-icon, .search-header label, .icon-search-mobile").show()
1929     $("#search-popup, .search-header svg, .icon-key-mobile").hide()
1930     searchInput.val("")
1931     resultsearch.hide()
1932     resultrecommend.show()
1933   }
1934 
1935   $(".site-overlay").click(function(){
1936     search_close()
1937   })
1938 </script>
1938
1939 
1940 </div>
1941     </div>
1942 
1943     <div id="PageContainer" class="is-moved-by-drawerx" style="background-color: #000000;">
1944       <main class="main-content pt-0" role="main">
1945         
1946           <div id="breadcrumbProduct" class="d-none d-lg-block">
1947             <style>
1948   #breadcrumbProduct {
1949     padding: 20px 0;
1950   }
1951   #breadcrumbProduct ul {
1952       display: flex;
1953       padding: 0;
1954       list-style: none;
1955       margin: 0;
1956       gap: 12px;
1957   }
1958   #breadcrumbProduct ul li {
1959     text-transform: uppercase;
1960     margin: 0;
1961     font-size: 12px;
1962 }
1963   #breadcrumbProduct ul li a {
1964     color: #757575;
1965   }
1966 
1967   #breadcrumbProduct ul li svg {
1968     width: 10px;
1969     height: 10px;
1970     padding: 0;
1971     color: #757575;
1972     vertical-align: middle;
1973   }
1974 </style>
1975 <div class="container" style="color: #ffe100;">
1976   <ul role="navigation" aria-label="breadcrumbs">
1977     <li><a href="https://www.cabosanfrancisco.ch/" style="color: #ffe100;">OMPONG188</a></li>
1978     <li><svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="7" height="10" viewBox="0 0 7 10" fill="none">
1979     <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"/>
1980 </svg></li>
1981       <li>OMPONG188</li>
1982       <li>OMPONG188 SLOT</li>
1983       <li>OMPONG188 SITUS</li>
1984       <li>LOGIN OMPONG188</li>
1985       <li>LINK OMPONG188</li>
1986     
1987   </ul>
1988 </div>
1989 
1990           </div>
1991         
1992 
1992<script type="application/ld+json">
1993 {
1994   "@context": "https://schema.org",
1995   "@type": "Product",
1996   "name": "OMPONG188 >> Situs Hiburan Game Online Kane via QRIS Login Super Fleksibel",
1997   "image": "https://www.cabosanfrancisco.ch/image/ompong188-qris.webp",
1998   "description": "OMPONG188 jadi situs hiburan game online kane dengan transaksi via QRIS, login super fleksibel, akses responsif, dan berbagai pilihan game online yang menarik untuk dimainkan setiap waktu.",
1999   "brand": {
2000     "@type": "Brand",
2001     "name": "OMPONG188"
2002   },
2003   "sku": "OMPONG188",
2004   "mpn": "OMPONG188",
2005   "url": "https://www.cabosanfrancisco.ch/",
2006   "offers": {
2007     "@type": "Offer",
2008     "url": "https://www.cabosanfrancisco.ch/",
2009     "priceCurrency": "USD",
2010     "price": "10.00",
2011     "priceValidUntil": "2025-12-25",
2012     "itemCondition": "https://schema.org/NewCondition",
2013     "availability": "https://schema.org/InStock",
2014     "seller": {
2015       "@type": "Organization",
2016       "name": "OMPONG188"
2017     }
2018   },
2019   "aggregateRating": {
2020     "@type": "AggregateRating",
2021     "ratingValue": "5.0",
2022     "reviewCount": 858
2023   },
2024   "review": [
2025     {
2026       "@type": "Review",
2027       "reviewRating": {
2028         "@type": "Rating",
2029         "ratingValue": "5",
2030         "bestRating": "5"
2031       },
2032       "author": {
2033         "@type": "Person",
2034         "name": "Gita"
2035       }
2036     },
2037     {
2038       "@type": "Review",
2039       "reviewRating": {
2040         "@type": "Rating",
2041         "ratingValue": "5",
2042         "bestRating": "5"
2043       },
2044       "author": {
2045         "@type": "Person",
2046         "name": "Iqmal"
2047       }
2048     }
2049   ]
2050 }
2051 </script>
2051<script type="application/ld+json">
2052 {
2053   "@context": "https://schema.org",
2054   "@type": "BreadcrumbList",
2055   "itemListElement": [
2056     {
2057       "@type": "ListItem",
2058       "position": 1,
2059       "name": "OMPONG188",
2060       "item": "https://www.cabosanfrancisco.ch/"
2061     },
2062     {
2063       "@type": "ListItem",
2064       "position": 2,
2065       "name": "OMPONG188 LINK",
2066       "item": "https://www.cabosanfrancisco.ch/"
2067     },
2068     {
2069       "@type": "ListItem",
2070       "position": 3,
2071       "name": "OMPONG188 LOGIN",
2072       "item": "https://www.cabosanfrancisco.ch/"
2073     },
2074     {
2075       "@type": "ListItem",
2076       "position": 4,
2077       "name": "OMPONG188 SITUS",
2078       "item": "https://www.cabosanfrancisco.ch/"
2079     },
2080     {
2081       "@type": "ListItem",
2082       "position": 5,
2083       "name": "OMPONG188 SLOT",
2084       "item": "https://www.cabosanfrancisco.ch/"
2085     },
2086     {
2087       "@type": "ListItem",
2088       "position": 6,
2089       "name": "ALTERNATIF OMPONG188",
2090       "item": "https://www.cabosanfrancisco.ch/"
2091     },
2092     {
2093       "@type": "ListItem",
2094       "position": 7,
2095       "name": "LINK OMPONG188 SLOT",
2096       "item": "https://www.cabosanfrancisco.ch/"
2097     },
2098     {
2099       "@type": "ListItem",
2100       "position": 8,
2101       "name": "OMPONG188 >> Situs Hiburan Game Online Kane via QRIS Login Super Fleksibel",
2102       "item": "https://www.cabosanfrancisco.ch/"
2103     }
2104   ]
2105 }
2106 </script>
2106
2107
2108 <!--faq-->
2109
2110 
2110<script type="application/ld+json" id="faq-schema">
2111{
2112  "@context": "https://schema.org",
2113  "@type": "FAQPage",
2114  "mainEntity": [
2115    {
2116      "@type": "Question",
2117      "name": "1.  Apa itu OMPONG188?",
2118      "acceptedAnswer": {
2119        "@type": "Answer",
2120        "text": "OMPONG188 merupakan situs hiburan game online kane yang menggabungkan pilihan permainan, akses lintas perangkat, login fleksibel, serta transaksi via QRIS dalam satu tampilan yang ringkas."
2121      }
2122    },
2123    {
2124      "@type": "Question",
2125      "name": "2. Apa maksud login super fleksibel di OMPONG188?",
2126      "acceptedAnswer": {
2127        "@type": "Answer",
2128        "text": "Login super fleksibel menggambarkan alur masuk yang dibuat sederhana dan responsif. Pengguna dapat mengakses halaman melalui smartphone maupun desktop tanpa harus melewati navigasi yang terlalu panjang."
2129      }
2130    },
2131    {
2132      "@type": "Question",
2133      "name": "3. Bagaimana transaksi via QRIS di OMPONG188?",
2134      "acceptedAnswer": {
2135        "@type": "Answer",
2136        "text": "QRIS memberikan alternatif transaksi digital melalui aplikasi pembayaran y
2136ang kompatibel. Pengguna tetap perlu memeriksa nominal, status transaksi, dan ketentuan yang ditampilkan sebelum mengonfirmasi pembayaran."
2137      }
2138    },
2139    {
2140      "@type": "Question",
2141      "name": "4. Game seperti apa yang tersedia di OMPONG188?",
2142      "acceptedAnswer": {
2143        "@type": "Answer",
2144        "text": "OMPONG188 menghadirkan beragam permainan dengan tema, visual, fitur, serta mekanisme berbeda. Pengguna dapat menjelajahi katalog dan mengenali karakter setiap game untuk menemukan permainan sesuai preferensi."
2145      }
2146    },
2147    {
2148      "@type": "Question",
2149      "name": "5. Apakah OMPONG188 nyaman diakses melalui HP?",
2150      "acceptedAnswer": {
2151        "@type": "Answer",
2152        "text": "Tampilan OMPONG188 dirancang responsif sehingga halaman login, menu transaksi, dan katalog permainan tetap mudah dijelajahi pada berbagai ukuran layar."
2153      }
2154    }
2155  ]
2156}
2157</script>
2157
2158 
2158<script type="application/ld+json">
2159 {
2160   "@context": "https://schema.org",
2161   "@type": "Organization",
2162   "name": "OMPONG188",
2163   "url": "https://www.cabosanfrancisco.ch/",
2164   "logo": "https://www.cabosanfrancisco.ch/image/logo-ompong188.webp",
2165   "sameAs": [
2166     "https://www.facebook.com/OMPONG188",
2167     "https://twitter.com/OMPONG188",
2168     "https://www.instagram.com/OMPONG188"
2169   ],
2170   "contactPoint": {
2171     "@type": "ContactPoint",
2172     "telephone": "+62-8101-111-1111",
2173     "contactType": "customer support",
2174     "areaServed": "ID",
2175     "availableLanguage": ["Indonesian", "English"]
2176   }
2177 }
2178 </script>
2178
2179 
2180 
2180<script type="application/ld+json">
2181 {
2182   "@context": "https://schema.org",
2183   "@type": "VideoObject",
2184   "name": "OMPONG188 >> Situs Hiburan Game Online Kane via QRIS Login Super Fleksibel",
2185   "description": "OMPONG188 jadi situs hiburan game online kane dengan transaksi via QRIS, login super fleksibel, akses responsif, dan berbagai pilihan game online yang menarik untuk dimainkan setiap waktu.",
2186   "thumbnailUrl": [
2187     "https://www.cabosanfrancisco.ch/image/ompong188-qris.webp",
2188     "https://www.cabosanfrancisco.ch/image/ompong188-qris.webp"
2189   ],
2190   "uploadDate": "2025-09-28T04:19:10-04:00",
2191   "duration": "PT168",
2192   "contentUrl": "https://www.cabosanfrancisco.ch/"
2193 }
2194 </script>
2194
2195 
2196 
2196<script type="application/ld+json">
2197 {
2198   "@context": "https://schema.org",
2199   "@type": "BreadcrumbList",
2200   "itemListElement": [
2201     {
2202       "@type": "ListItem",
2203       "position": 1,
2204       "name": "Home",
2205       "item": "https://www.cabosanfrancisco.ch/"
2206     }
2207   ]
2208 }
2209 </script>
2209
2210 
2211 
2211<script type="application/ld+json">
2212 {
2213   "@context": "https://schema.org",
2214   "@graph": [
2215     {
2216       "@type": "Organization",
2217       "@id": "https://www.cabosanfrancisco.ch/#org",
2218       "name": "OMPONG188",
2219       "url": "https://www.cabosanfrancisco.ch/",
2220       "logo": "https://www.cabosanfrancisco.ch/image/ompong188-qris.webp"
2221     },
2222     {
2223       "@type": "WebSite",
2224       "@id": "https://www.cabosanfrancisco.ch/#website",
2225       "url": "https://www.cabosanfrancisco.ch/",
2226       "name": "OMPONG188",
2227       "publisher": { "@id": "https://www.cabosanfrancisco.ch/#org" },
2228       "inLanguage": "id-ID",
2229       "potentialAction": {
2230         "@type": "SearchAction",
2231         "target": "https://www.cabosanfrancisco.ch/?s={search_term_string}",
2232         "query-input": "required name=search_term_string"
2233       }
2234     },
2235     {
2236       "@type": "SoftwareApplication",
2237       "@id": "https://www.cabosanfrancisco.ch/#app",
2238       "name": "OMPONG188",
2239       "applicationCategory": "GameApplication",
2240       "operatingSystem": "Android, iOS, Windows",
2241       "offers": { "@type": "Offer", "price": "0", "priceCurrency": "IDR" },
2242       "aggregateRating": { "@type": "AggregateRating", "ratingValue": 4.9, "ratingCount": 62595 }
2243     }
2244   ]
2245 }
2246 </script>
2246
2247         
2248 <div id="shopify-section-Product" class="shopify-section product-section mt-0"><link href="https://tahanpukul.info/outerbloom-global.css" rel="stylesheet" type="text/css" media="all" />
2249 
2250 
2251 <style>
2252     .bg-card {
2253     background-color: #000000;
2254 }
2255     </style>
2256 
2257 <!-- /templates/product.liquid -->
2258 
2259 
2260 <!-- <div itemscope itemtype="http://schema.org/Product"> -->
2261 
2262 
2263 <div class="product-standing-flower" data-product-type="flowerBoard">
2264   <meta itemprop="url" content="https://www.cabosanfrancisco.ch/">
2265   <meta itemprop="image" content="https://www.cabosanfrancisco.ch/image/ompong188-qris.webp">
2266 
2267   
2268   
2269   <input id="data-sku" type="hidden" value="OBVSTF1086">
2270   <div class="product-single" style="background-image: url(https://www.cabosanfrancisco.ch/image/ompong188-qris.webp); background-attachment: fixed;">
2271     <div id="product-top" class="container">
2272       <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;">
2273         <div id="product-image" class="col-lg-7 text-center">
2274           <div class="product-image">
2275             <div class="row no-gutters">
2276   
2277   <div id="product-featured-image" class="row w-100">
2278     
2279       <div id="thumb-image-product" class="col-lg-2 col-12 d-none d-lg-block">
2280         
2281         <div class="swiper-container gallery-thumbs" style="min-height: 500px">
2282           <ul class="list-unstyled slider swiper-wrapper slider-nav ProductThumbs thumbnails" id="ProductThumbsx">
2283 
2284                   <li class="swiper-slide" data-type="image">
2285                     <a
2286                       href="files/Blossom-Shine-WM.jpg"
2287                       data-standard="https://www.cabosanfrancisco.ch/image/ompong188-qris.webp"
2288                       data-image="files/Blossom-Shine-WM.jpg"
2289                       data-position="1"
2290                       class="product-single__thumbnail"
2291                     >
2292                       <img
2293                         class="lazyload w-100"
2294                         src="https://www.cabosanfrancisco.ch/image/ompong188-qris.webp"
2295                         alt="OMPONG188 >> Situs Hiburan Game Online Kane via QRIS Login Super Fleksibel"
2296                         width=""
2297                         height=""
2298                       >
2299                     </a>
2300                   </li>
2301                 
2302               
2303             
2304 
2305                   <li class="swiper-slide" data-type="image">
2306                     <a
2307                       href="https://www.cabosanfrancisco.ch/image/ompong188-qris.webp"
2308                       data-standard="https://www.cabosanfrancisco.ch/image/ompong188-qris.webp"
2309                       data-image="https://www.cabosanfrancisco.ch/image/ompong188-qris.webp"
2310                       data-position="2"
2311                       class="product-single__thumbnail"
2312                     >
2313                       <img
2314                         class="lazyload w-100"
2315                         src="https://www.cabosanfrancisco.ch/image/ompong188-qris.webp"
2316                         alt="OMPONG188 >> Situs Hiburan Game Online Kane via QRIS Login Super Fleksibel"
2317                         width=""
2318                         height=""
2319                       >
2320                     </a>
2321                   </li>
2322                 
2323               
2324             
2325 
2326                   <li class="swiper-slide" data-type="image">
2327                     <a
2328                       href="files/Blossom-Shine_3-WM.jpg"
2329                       data-standard="https://www.cabosanfrancisco.ch/image/ompong188-qris.webp"
2330                       data-image="files/Blossom-Shine_3-WM.jpg"
2331                       data-position="3"
2332                       class="product-single__thumbnail"
2333                     >
2334                       <img
2335                         class="lazyload w-100"
2336                         src="https://www.cabosanfrancisco.ch/image/ompong188-qris.webp"
2337                         alt="OMPONG188 >> Situs Hiburan Game Online Kane via QRIS Login Super Fleksibel"
2338                         width=""
2339                         height=""
2340                       >
2341                     </a>
2342                   </li>
2343                 
2344               
2345             
2346 
2347                   <li class="swiper-slide" data-type="image">
2348                     <a
2349                       href="files/Blossom-Shine_4.jpg"
2350                       data-standard="https://www.cabosanfrancisco.ch/image/ompong188-qris.webp"
2351                       data-image="files/Blossom-Shine_4.jpg"
2352                       data-position="4"
2353                       class="product-single__thumbnail"
2354                     >
2355                       <img
2356                         class="lazyload w-100"
2357                         src="https://www.cabosanfrancisco.ch/image/ompong188-qris.webp"
2358                         alt="OMPONG188 >> Situs Hiburan Game Online Kane via QRIS Login Super Fleksibel"
2359                         width=""
2360                         height=""
2361                       >
2362                     </a>
2363                   </li>
2364                 
2365               
2366             
2367           </ul>
2368         </div>
2369         
2370       </div>
2371     
2372     <div
2373       id="featured-image-product"
2374       class="col-lg-10 col-12 d-none d-lg-block"
2375     >
2376       <div class="swiper-container gallery-top">
2377         <div class="swiper-slide product-single__image">
2378           
2379 <div class="product-single__photos slider slider-for" id="ProductPhoto">
2380   
2381 
2382   <div class="easyzoom easyzoom--overlay easyzoom--with-thumbnails">
2383     <a href="https://www.cabosanfrancisco.ch/image/ompong188-qris.webp">
2384       <img
2385         src="https://www.cabosanfrancisco.ch/image/ompong188-qris.webp"
2386         alt="OMPONG188 >> Situs Hiburan Game Online Kane via QRIS Login Super Fleksibel"
2387         id="ProductPhotoImg"
2388         class="lazyload"
2389       >
2390       
2391     </a>
2392   </div>
2393 </div>
2394 
2395         </div>
2396         <div class="swiper-slide product-single__video" style="display: none">
2397           <video
2398             src="https://cdn.shopify.com/videos/c/vp/05d379ea115d41c2bd0f7d08b1496bd9/05d379ea115d41c2bd0f7d08b1496bd9.HD-1080p-7.2Mbps-24002195.mp4"
2399             playsinline
2400             loop
2401             muted
2402           ></video>
2403         </div>
2404       </div>
2405     </div>
2406   </div>
2407 
2408   <div id="featured-image-product2" class="col-12 d-lg-none">
2409     <div class="swiper-container gallery-mobile">
2410       <ul class="swiper-wrapper">
2411 <li class="swiper-slide img">
2412               
2413                 <img
2414                   class="swiper-lazy"
2415                   src="https://www.cabosanfrancisco.ch/image/ompong188-qris.webp"
2416                   data-src="https://www.cabosanfrancisco.ch/image/ompong188-qris.webp"
2417                   alt="OMPONG188 >> Situs Hiburan Game Online Kane via QRIS Login Super Fleksibel"
2418                   width=""
2419                   height=""
2420                 >
2421               
2422             </li>
2423           
2424         
2425 <li class="swiper-slide img">
2426               
2427                 <img
2428                   class="swiper-lazy"
2429                   src="https://www.cabosanfrancisco.ch/image/ompong188-qris.webp"
2430                   data-src="https://www.cabosanfrancisco.ch/image/ompong188-qris.webp"
2431                   alt="OMPONG188 >> Situs Hiburan Game Online Kane via QRIS Login Super Fleksibel"
2432                   width=""
2433                   height=""
2434                 >
2435               
2436             </li>
2437           
2438         
2439 <li class="swiper-slide img">
2440               
2441                 <img
2442                   class="swiper-lazy"
2443                   src="https://www.cabosanfrancisco.ch/image/ompong188-qris.webp"
2444                   data-src="https://www.cabosanfrancisco.ch/image/ompong188-qris.webp"
2445                   alt="OMPONG188 >> Situs Hiburan Game Online Kane via QRIS Login Super Fleksibel"
2446                   width=""
2447                   height=""
2448                 >
2449               
2450             </li>
2451           
2452         
2453 <li class="swiper-slide img">
2454               
2455                 <img
2456                   class="swiper-lazy"
2457                   src="https://www.cabosanfrancisco.ch/image/ompong188-qris.webp"
2458                   data-src="https://www.cabosanfrancisco.ch/image/ompong188-qris.webp"
2459                   alt="OMPONG188 >> Situs Hiburan Game Online Kane via QRIS Login Super Fleksibel"
2460                   width=""
2461                   height=""
2462                 >
2463               
2464             </li>
2465           
2466         
2467       </ul>
2468       
2469         <div class="swiper-button-prev"><svg class="icon icon-chevron-left" xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" 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>
2470         <div class="swiper-button-next"><svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="7" height="10" viewB
2470ox="0 0 7 10" fill="none">
2471     <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"/>
2472 </svg></div>
2473 
2474         <!-- Add Pagination -->
2475         <div class="swiper-pagination"></div>
2476       
2477     </div>
2478   </div>
2479 
2480   <div class="product-m-pageleb-video col-12 text-center d-lg-none">
2481     <!-- product video -->
2482     <style>
2483       .view-video{display:block; margin:auto; padding:5px 10px;font-size:16px;font-weight:bold;border:2px solid #ffffff;background:#fff;}
2484       .view-video .icon-play{fill:#ffffff;vertical-align: middle;}
2485       .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;}
2486       .close-video{position:absolute;right:9px; top:8%;z-index:2;padding:5px;}
2487       .close-video .icon{width:30px;height:30px;}
2488       /*responsive iframe */
2489       .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);}
2490       .video-container iframe {position: absolute;top:60%;left: 0;width: 100%;height: 100%;}
2491 
2492       .youtube {
2493         background-color: #000;
2494         margin-bottom: 30px;
2495         position: relative;
2496         padding-top: 56.25%;
2497         overflow: hidden;
2498         cursor: pointer;
2499         width: 100%;
2500       }
2501       .swiper-slide .youtube {
2502         max-width: 480px;
2503       }
2504       .youtube img {
2505         width: 100%;
2506         top: -16.82%;
2507         left: 0;
2508         opacity: 0.7;
2509       }
2510       .youtube .play-button {
2511         width: 90px;
2512         height: 60px;
2513         background-color: #333;
2514         box-shadow: 0 0 30px rgba( 0,0,0,0.6 );
2515         z-index: 1;
2516         opacity: 0.8;
2517         border-radius: 6px;
2518       }
2519       .youtube .play-button:before {
2520         content: "";
2521         border-style: solid;
2522         border-width: 15px 0 15px 26.0px;
2523         border-color: transparent transparent transparent #fff;
2524       }
2525       .youtube img,
2526       .youtube .play-button {
2527         cursor: pointer;
2528       }
2529       .youtube img,
2530       .youtube iframe,
2531       .youtube .play-button,
2532       .youtube .play-button:before {
2533         position: absolute;
2534       }
2535       .youtube .play-button,
2536       .youtube .play-button:before {
2537         top: 50%;
2538         left: 50%;
2539         transform: translate3d( -50%, -50%, 0 );
2540       }
2541       .youtube iframe {
2542         height: 100%;
2543         width: 100%;
2544         top: 0;
2545         left: 0;
2546       }
2547     </style>
2548 
2549     
2550   </div>
2551 </div>
2552 
2553 <div class="product-desc-add position-relative d-none d-lg-block m-0">
2554 
2555 </div>
2556 
2557 
2557<script>
2558   if ($(window).width() < 991) {
2559     var direction = 'horizontal'
2560   } else {
2561     var direction = 'vertical'
2562     $(".gallery-thumbs").height($("#ProductPhotoImg").height())
2563   }
2564   var swiper = new Swiper('.gallery-thumbs', {
2565     
2566     direction,
2567     slidesPerView: 4.5,
2568     spaceBetween: 12,
2569     navigation: {
2570       nextEl: '.swiper-button-next',
2571       prevEl: '.swiper-button-prev',
2572     }
2573   });
2574   
2575   var swiper = new Swiper('.gallery-mobile', {
2576     //loop: true,
2577     lazy: true,
2578     speed: 300,
2579     resistance : true,
2580     resistanceRatio : 0,
2581     freeModeMomentumRatio : 0.45,
2582     freeModeMomentumVelocityRatio : 1.5,
2583     navigation: {
2584       nextEl: '.swiper-button-next',
2585       prevEl: '.swiper-button-prev',
2586     },
2587     pagination: {
2588       el: '.swiper-pagination'
2589     },
2590     useCSS3Transforms: false,
2591     loop: false,
2592     on: {
2593       init: function () {
2594         console.log('swiper initialized');
2595         var currentVideo =  $("[data-swiper-slide-index=" + this.realIndex + "]").find("video");
2596         currentVideo.trigger('play');
2597       },
2598     },
2599   });
2600 
2601   /* GET ALL VIDEOS */
2602   var sliderVideos = $(".swiper-slide video");
2603   
2604   /* SWIPER API - Event will be fired after animation to other slide (next or previous) */
2605   swiper.on('slideChange', function () {
2606     console.log('slide changed');
2607     /* stop all videos  */
2608     sliderVideos.each(function( index ) {
2609       this.currentTime = 0;
2610     });
2611   
2612     /* SWIPER GET CURRENT AND PREV SLIDE (AND The VIDEO INSIDE) */
2613     var prevVideo =  $(`[data-swiper-slide-index="${this.previousIndex}]"`).find("video");
2614     var currentVideo =  $(`[data-swiper-slide-index="${this.realIndex}"]`).find("video");
2615     prevVideo.trigger('stop');
2616     currentVideo.trigger('play');
2617   });
2618   
2619 
2620   $("[data-video]").click(function(){
2621     const file = $(this).data("video")
2622     $(".product-single__video").show()
2623     $(".product-single__image").hide()
2624     $(".product-single__video").find("video").attr("src", file)
2625     $(".product-single__video").find("video")[0].play();
2626   })
2627   $("[data-image]").click(function(){
2628     $(".product-single__video").hide()
2629     $(".product-single__image").show()
2630     $(".product-single__video").find("video")[0].pause();
2631   })
2632 
2633   $("#product-image .swiper-slide").each(function(){
2634     let width = $(this).width()
2635     $(this).height(width)
2636   })
2637 
2638   $(window).resize(function() {
2639     $("#product-image .swiper-slide").each(function(){
2640       let width = $(this).width()
2641       $(this).height(width)
2642     })
2643   })
2644 </script>
2644
2645 
2646           </div>
2647 
2648   
2649     <div class="grid__item_product-info mb-3">
2650       <div class="c-pdp-product-info">
2651         <ul class="c-pdp-product-info__service c-pdp-product-info__service--active">
2652        <!-- artikel -->
2653             <li>
2654                <p class="PDq2pG_selectionAnchorContainer" data-end="503" data-start="64"><a href="https://www.cabosanfrancisco.ch/">OMPONG188</a> hadir sebagai situs hiburan game online kane yang menggabungkan kemudahan akses dengan pengalaman penggunaan yang lebih fleksibel. Sistem login dibuat ringkas agar nyaman digunakan melalui berbagai perangkat, sementara transaksi via QRIS memberikan alternatif pembayaran digital yang praktis. Susunan menu yang sederhana turut membantu pengguna menemukan permainan maupun fitur utama tanpa melewati alur yang terasa panjang.</p>
2655                <p data-end="840" data-start="505">Konsep login super fleksibel OMPONG188 diperkuat dengan tampilan responsif dan pilihan permainan yang beragam dalam satu akses. Pengguna dapat menjelajahi game berdasarkan tema, karakter, maupun mekanisme yang disukai tanpa kesulitan berpindah menu. Dukungan sistem yang diperbarui secara berkala juga ditujukan untuk menjaga performa halaman tetap optimal. Perpaduan QRIS, navigasi ringan, dan akses lintas perangkat membuat OMPONG188 menjadi portal hiburan digital yang praktis untuk digunakan sehari-h
2655ari.</p>
2656         </ul>
2657       </div>
2658     </div>
2659   
2660 
2661 
2662 
2663 
2664 <style>
2665   .c-pdp-product-info__service--active {
2666     font-size: 12px;
2667     padding-left: 10px;
2668     text-align: left;
2669     max-width: 550px;
2670     margin: auto;
2671     color: #fff;
2672   }
2673   .c-pdp-product-info__service--active li {
2674     list-style: disc;
2675   }
2676   .c-pdp-product-info {
2677     background-color: #000000;
2678     padding: 12px;
2679     margin: 0;
2680   }
2681   .freeship em {
2682     font-style: italic;
2683     font-size: 12px !important;
2684   }
2685 
2686 
2687 </style>
2688 
2689 
2689<script>
2690   $(document).ready(function(){
2691     if ( $(".c-pdp-product-info__service li").length == 1 ) {
2692       $(".c-pdp-product-info__service").addClass("no-bullet");
2693       $(".c-pdp-product-info__service li").addClass("no-bullets");
2694     }
2695   });
2696 </script>
2696
2697
2698         </div>
2699         <div id="product-meta" class="col-lg-5 p-0">
2700           <div class="product-meta">
2701             <style>
2702   .product-meta--review {margin-top:10px}
2703   .freeship * {font-size: 14px !important;font-style: normal;}
2704 </style>
2705 <h1 itemprop="name" class="mb-2" style="color: rgb(0, 191, 255); font-weight: bold;">OMPONG188 >> Situs Hiburan Game Online Kane via QRIS Login Super Fleksibel</h1>
2706 
2707 <div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
2708   <meta itemprop="priceCurrency" content="IDR">
2709 
2710   <link itemprop="availability" href="https://schema.org/InStock">
2711   
2711<script
2712     type="text/javascript"
2713     src="//platform-api.sharethis.com/js/sharethis.js#property=5acdc0aa3ef3c0001396fd50&product=custom-share-buttons"
2714     async="async"
2715   ></script>
2715
2716   
2717 
2718   
2719 
2720   <span class="visually-hidden">Translation missing: en.products.general.regular_price</span>
2721   
2722     <span class="visually-hidden">Translation missing: en.products.general.sale_price</span>
2723   
2724   <div class="row no-gutters mb-3">
2725     <span
2726       id="ProductPrice"
2727       class="h2 ProductPrice"
2728       itemprop="price"
2729       content="835000" style="color: #ffffff;"
2730     >
2731       Rp 5.000
2732     </span>
2733     <div class="discount-product-detail">
2734       <p id="ComparePrice" class="ComparePrice mt-2 mt-lg-0">
2735         Rp 10.000
2736       </p>
2737       <span class=" tag-discount">
2738         
2739           
2740           <span id="newDiscount" class="product-tag persentase-discount hide"> 
2741       (90%)
2742       </span><br>
2743         
2744       </span>
2745     </div>
2746   </div>
2747 
2748   <div class="row no-gutters meta-sds">
2749     <div class="col-12 mb-2 mb-lg-0 stock-info">
2750       
2751       
2752       <span
2753         id="ProductStock-Product"
2754         class="product-single__stock mb-2 hide"
2755       >
2756         
2757           
2758             
2759               
2760               Barang dikirim pada 
2761             
2762           
2763         
2764       </span>
2765 
2766       <style>
2767     .short-desc-desktop {
2768         margin-bottom: 2rem;
2769         color: white;
2770     }
2771     .short-desc ul li:nth-child(n + 4) {
2772         display: none;
2773     }
2774     .short-desc ul li.showList:nth-child(n + 4) {
2775         display: list-item;
2776     }
2777     label.more {
2778         display: none;
2779     }
2780     label.more.showMe {
2781         display: block;
2782         font-size: 12px;
2783         text-transform: uppercase;
2784         font-weight: 700;
2785         cursor: pointer;
2786     }
2787 </style>
2788 
2789     <div class="short-desc-desktop d-none d-lg-block">
2790         <div class="short-desc">
2791            
2792 <p>OMPONG188 jadi situs hiburan game online kane dengan transaksi via QRIS, login super fleksibel, akses responsif, dan berbagai pilihan game online yang menarik untuk dimainkan setiap waktu.</p>
2793         </div>
2794         <label class="more">Show More →</label>
2795     </div><br>
2796 
2797 
2798 
2798<script>
2799     var liCount;
2800     $(document).ready(function () {
2801         $(".short-desc ul").each(function() {
2802             liCount = $(this).children("li").length;
2803             if (liCount > 3) {
2804                 $(this).parent(".short-desc").next(".more").addClass("showMe");
2805             }
2806         });
2807 
2808         $(".more").click(function () {
2809             //$(".short-desc").find("li").addClass("showList");
2810             // $(this).hide();
2811             $("#product-desc").find("ul").show()
2812             $('html, body').animate({
2813                 scrollTop: $("#product-desc").offset().top - 250
2814             }, 2000);
2815             $("#product-desc").css("height","auto");
2816             $("#more_content").remove();
2817             $(".product-spec").append("<div id='less_content' class='readmore'><span class='less_content'>Less</span></div>")
2818         });
2819     });
2820 </script>
2820
2821 
2822       
2823     </div>
2824   </div>
2825 
2826   <div id="purchaseProduct">
2827   
2828   
2829 
2830 
2831 <style>
2832   .variant-metafield {
2833     display: block!important;
2834     width: 1px;
2835     padding: 0;
2836     border-color: #fff;
2837   }
2838   .select2-results__option[aria-disabled] {
2839     display: none;
2840   }
2841 
2842   .towel-bordir {
2843     width: 100%;
2844     display: flex;
2845     align-items: center;
2846     justify-content: space-around;
2847   }
2848 </style>
2849 
2850 
2851 
2852 
2853 
2853<script>
2854   
2855   
2856 </script>
2856
2857 
2858 
2859 
2860 
2861 
2862 
2863 <select
2864   name="id[]"
2865   id="productSelect"
2866   class="product-single__variants ignore hide hide"
2867 >
2868   
2869     
2870       
2871       <option
2872         
2873           selected="selected"
2874         
2875         data-sku="OBVSTF1086"
2876         value="44083045826775"
2877       >
2878         Default Title
2879       </option>
2880 
2881     
2882   
2883 </select>
2884 
2885 
2885<script src="//outerbloom.com/cdn/shop/t/138/assets/jquery.magnific-popup.min.js?v=184369421263510081681752652422" type="text/javascript"></script>
2885
2886 
2887 
2887<script>
2888   $('.size-chart-open-popup').magnificPopup({
2889     type:'inline',
2890     midClick: true
2891   });
2892 </script>
2892
2893 
2894   
2895   
2896   
2897   <div class="upload-image-preview">
2898     
2899     
2900     
2901     
2902     
2903     <style>
2904   .file-dnd * {
2905     margin: 0;
2906     padding: 0;
2907     box-sizing: border-box;
2908   }
2909   .file-dnd {
2910     width: 100%;
2911     height: 250px;
2912     border: 1px solid #ddd;
2913     border-radius: 10px;
2914     padding: 15px;
2915     display: flex;
2916     flex-direction: column;
2917     gap: 10px;
2918     /* box-shadow: 0px 2px 10px 2px rgba(0,0,0,0.05); */
2919     margin: auto;
2920   }
2921   .file-dnd input {
2922     display: none;
2923   }
2924   .file-dnd .before-upload {
2925     border: 1px dashed #888;
2926     flex: 1;
2927     border-radius: 5px;
2928     display: flex;
2929     justify-content: center;
2930     align-items: center;
2931     text-align: center;
2932     cursor: pointer;
2933   }
2934   .file-dnd .before-upload > div {
2935     display: flex;
2936     flex-direction: column;
2937     align-items: center;
2938     gap: 8px;
2939   }
2940   .file-dnd .before-upload > div h4 {
2941     width: 150px;
2942   }
2943   .file-dnd .before-upload > div p {
2944     font-size: 12px !important;
2945     color: #555;
2946   }
2947   .file-dnd.active .before-upload {
2948     border: 1px solid #5750d9;
2949     background-color: #f5f5ff;
2950   }
2951   .file-dnd .after-upload {
2952     position: relative;
2953     display: none;
2954   }
2955   .file-dnd .after-upload img {
2956     width: 100%;
2957     border-radius: 5px;
2958     max-height: 180px;
2959     object-fit: contain;
2960     display: block;
2961   }
2962   .file-dnd .after-upload .clear-btn {
2963     position: absolute;
2964     top: 10px;
2965     right: 10px;
2966     background: rgba(255, 255, 255, 0.5);
2967     width: 15px;
2968     height: 15px;
2969     text-align: center;
2970     line-height: 15px;
2971     border-radius: 50%;
2972     color: #fff;
2973     cursor: pointer;
2974     font-size: 14px;
2975   }
2976 </style>
2977 
2978 <div
2979   class="file-dnd mb-3"
2980   
2981     style="display: none"
2982   
2983 >
2984   <label for="upload-photo">Upload your Photo:</label>
2985   <input type="file" id="upload-photo" accept="image/*">
2986   <input type="hidden" data-properties="Photo">
2987   <div class="before-upload">
2988     <div>
2989       <svg id="surface1" xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="33.053" height="41.719" viewBox="0 0 33.053 41.719">
2990   <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>
2991   <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>
2992   <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>
2993 </svg>
2994 
2995       <h4>Drag & Drop Photo file or Browse</h4>
2996       <p>Supports: JPEG, PNG, GIF, TIFF</p>
2997     </div>
2998   </div>
2999   <div class="after-upload">
3000     <div class="clear-btn">&times;</div>
3001     <img src="" width="" height="">
3002   </div>
3003 </div>
3004 
3004<script>
3005   function applyDndFile(el) {
3006     const parent = document.querySelector(".file-dnd")
3007     const beforeUploadEl = el.querySelector(".before-upload")
3008     const afterUploadEl = el.querySelector(".after-upload")
3009     const inputFile = el.querySelector("input[type=file]")
3010     const imagePreview = el.querySelector(".after-upload img")
3011     const clearBtn = el.querySelector(".after-upload .clear-btn")
3012     const inputProps = parent.querySelector("[data-properties]");
3013 
3014     async function upload(name, uri, type) {
3015       try {
3016         const filename = name.split('.')[0]
3017         let formData = new FormData(); 
3018         formData.append("file", uri);
3019         const response = await fetch(`${host}/upload?name=${filename}&dir=gift&type=${type}`, {
3020           method: "POST", 
3021           body: formData
3022         })
3023         if(response) {
3024           const res = await response.json()
3025           return res
3026         }
3027       } catch(err){
3028         console.log(err)
3029       }
3030     }
3031 
3032     function showImagePreview(img) {
3033       if(img){
3034         const blobUrl = URL.createObjectURL(img)
3035         imagePreview.src = blobUrl
3036         afterUploadEl.style.display = "block"
3037         beforeUploadEl.style.display = "none"
3038       }
3039     }
3040 
3041     beforeUploadEl.addEventListener("click", (e) => {
3042       e.preventDefault()
3043       inputFile.click()
3044     })
3045 
3046     inputFile.addEventListener("change", async (e) => {
3047       e.preventDefault()
3048       showImagePreview(e.target.files[0])
3049       var uploadData = await upload(e.target.files[0].name, e.target.files[0], e.target.files[0].type)
3050       inputProps.value = uploadData?.url
3051     })
3052 
3053     clearBtn.addEventListener("click", (e) => {
3054       afterUploadEl.style.display = "none"
3055       beforeUploadEl.style.display = "flex"
3056       inputProps.value = ""
3057     })
3058 
3059     beforeUploadEl.addEventListener("dragover", (e) => {
3060       e.preventDefault()
3061       el.classList.add("active")
3062     })
3063 
3064     beforeUploadEl.addEventListener("dragleave", (e) => {
3065       e.preventDefault()
3066       el.classList.remove("active")
3067     })
3068 
3069     beforeUploadEl.addEventListener("drop", async (e) => {
3070       e.preventDefault()
3071       el.classList.remove("active")
3072       showImagePreview(e.dataTransfer.files[0])
3073       var uploadData = await upload(e.dataTransfer.files[0].name, e.dataTransfer.files[0], e.dataTransfer.files[0].type)
3074       console.log(uploadData)
3075       inputProps.value = uploadData?.url
3076     })
3077   }
3078 
3079   applyDndFile(document.querySelector(".file-dnd"))
3080 
3081   $(document).ready(function(){
3082     $(".variant-swatch").change(function(){
3083       const v = $(this).val().toLowerCase()
3084       const list = ["photo", "custom one side", "custom two side", "small", "big"]
3085       if(list.some(item => v.includes(item))) return $(".file-dnd").show()
3086       $(".file-dnd").hide()
3087       $(".file-dnd").find("[data-properties]").val("")
3088       $(".after-upload").hide()
3089       $(".before-upload").css("display", "flex")
3090     })
3091   })
3092 </script>
3092
3093 
3094   </div>
3095   
3096     
3097     <div class="delivery-city mb-4">
3098         <a href="https://www.cabosanfrancisco.ch/coffee/">
3099        <center><img src="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" alt="logo-daftar" style="width: 260px; margin-top: -20px;"></center></a><br>
3100   <h4 class="fw-600 text-uppercase mb-15" style="color: rgb(0, 191, 255);">AKSES LINK RESMI OMPONG188 !</h4>
3101   <div class="row justify-content-between m-0">
3102     <select id="cities" class="form-control select-search" required>
3103       <option value="">Gabung Sekarang Di OMPONG188 Nikmati Akses Tercepat Bersama Bandar ALTERNATIF OMPONG188</option>
3104     </select>
3105   </div>
3106 </div>
3107 
3108 <style>
3109   @media (max-width: 768px) {
3110     .select2-search__field {
3111       pointer-events: none !important;
3112     }
3113     
3114     .select2-search {
3115       display: none !important;
3116     }
3117   }
3118 </style>
3119 
3120 
3120<script>
3121   $(document).ready(function() {
3122     // Check if mobile
3123     if (window.innerWidth <= 768) {
3124       // When cities select2 opens on mobile, remove focus from search
3125       $('#cities').on('select2:open', function() {
3126         setTimeout(function() {
3127           $('.select2-search__field').blur();
3128           $('.select2-search__field').prop('readonly', true);
3129         }, 100);
3130       });
3131     }
3132   });
3133 </script>
3133
3134 
3135  <style>
3136 .icon-img-footer {
3137     width: 80px; 
3138     padding: 0px 5px;
3139 }
3140 @media (min-width: 768px) {
3141     .icon-img-footer {
3142         width: 120px; 
3143     }
3144 }
3145 @media (min-width: 992px) {
3146     .icon-img-footer {
3147         width: 120px; 
3148     }
3149 }
3150 
3151 
3152 </style>
3153   <div id="row-delivery-date" class="row m-0 mb-3">
3154     <h4 class="fw-600 text-uppercase col-12 p-0 mb-15" style="color: rgb(0, 191, 255);">Nikmati Akses Bermain ALTERNATIF OMPONG188 Bersama OMPONG188</h4>
3155     <div id="deliveryDate" class="m-0"></div>
3156     <div id="deliveryDateFull">
3157       <div class="">
3158         <input
3159           type="text"
3160           id="full-date"
3161           class="date-full calendarbutton btn steps-btn btn-date-time mb-0"
3162           value="Full Calendar"
3163         >
3164         <label for="full-date"><svg version="1.1" xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="32" height="32" viewBox="0 0 32 32">
3165 <title>icon-arrow-right</title>
3166 <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>
3167 </svg></label>
3168       </div>
3169       <button class="btnChangeDeliveryDate hide">Change Delivery Date</button>
3170     </div>
3171     <div class="form-group p-0">
3172       <input type="text" id="propDeliveryDate" required class="hide">
3173     </div>
3174   </div>
3175   
3176   
3177     <div id="row-delivery-time" class="row m-0 mb-3">
3178       <h4 class="text-center fw-600 text-uppercase col-12 mb-15">
3179     SEO RZKY 
3180 </h4>
3181       <div id="deliveryTime" class="d-flex w-100 m-0"></div>
3182       <div class="form-group p-0">
3183         <input type="text" id="propDeliveryTime" class="hide" required>
3184       </div>
3185     </div>
3186   
3187 
3188 
3189   
3190   
3191   <div id="personalizeBtn">
3192     
3193     
3194     
3195     
3196     <button
3197       class="btn text-uppercase w-100 fw-400"
3198       
3199       
3200       
3201     >
3202       
3203         customize your flower board
3204       
3205     </button>
3206     <div class="button-share-wishlist d-flex justify-content-around mt-3">
3207       <div class="button-share text-center">
3208         <p id="shareButton" class="d-flex gap-2"><span>OMPONG188</span><svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="15" height="13" viewBox="0 0 15 13" fill="none">
3209   <path d="M13.825 5.85006L10 2.02506V4.07506L9.28333 4.18339C5.69167 4.69172 3.25833 6.57506 1.86667 9.45839C3.8 8.09172 6.2 7.43339 9.16667 7.43339H10V9.67506M8.33333 8.28339C4.60833 8.45839 1.94167 9.80006 0 12.5167C0.833333 8.35006 3.33333 4.18339 9.16667 3.35006V0.0167236L15 5.85006L9.16667 11.6834V8.26672C8.89167 8.26672 8.61667 8.27506 8.33333 8.28339Z" fill="#ffffff"/>
3210 </svg>
3211 </p>
3212       </div>
3213       <div class="button-wishlist text-center">
3214         <p id="wishButton" class="d-flex gap-2 wishlist-toggle" data-product-handle="blossom-shine"><span>Wishlist</span><svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="16" height="15" viewBox="0 0 16 15" fill="none">
3215   <path d="M2.03341 7.70827C1.70392 7.38096 1.44286 6.99135 1.26546 6.56213C1.08805 6.13292 0.997838 5.67269 1.00008 5.20827C1.00008 4.26896 1.37322 3.36812 2.03741 2.70393C2.7016 2.03974 3.60244 1.6666 4.54175 1.6666C5.85841 1.6666 7.00841 2.38327 7.61675 3.44993H8.55008C8.85934 2.90748 9.30684 2.45667 9.84699 2.14341C10.3871 1.83015 11.0007 1.66563 11.6251 1.6666C12.5644 1.6666 13.4652 2.03974 14.1294 2.70393C14.7936 3.36812 15.1667 4.26896 15.1667 5.20827C15.1667 6.18327 14.7501 7.08327 14.1334 7.70827L8.08341 13.7499L2.03341 7.70827ZM14.7167 8.29993C15.5084 7.49993 16.0001 6.4166 16.0001 5.20827C16.0001 4.04795 15.5391 2.93515 14.7187 2.11467C13.8982 1.2942 12.7854 0.833267 11.6251 0.833267C10.1667 0.833267 8.87508 1.5416 8.08341 2.6416C7.67933 2.08035 7.14725 1.62353 6.53131 1.30904C5.91537 0.994549 5.23333 0.831448 4.54175 0.833267C3.38143 0.833267 2.26863 1.2942 1.44816 2.11467C0.627684 2.93515 0.166748 4.04795 0.166748 5.20827C0.166748 6.4166 0.658415 7.49993 1.45008 8.29993L8.08341 14.9333L14.7167 8.29993Z" fill="#ffffff"/>
3216 </svg>
3217 <!--
3218   <svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="34" height="30" viewBox="0 0 34 30" fill="none">
3219   <path d="M32.8333 9.23082C32.8333 4.51916 29.0142 0.699158 24.3025 0.699158C21.2 0.699158 
321918.4933 2.35999 17 4.83582C15.5067 2.36082 12.8 0.699158 9.69749 0.699158C4.98582 0.699991 1.16666 4.51916 1.16666 9.23082C1.16666 10.3075 1.37499 11.3342 1.73916 12.2825C4.55999 20.3967 17 29.3008 17 29.3008C17 29.3008 29.44 20.3967 32.2617 12.2825C32.6258 11.3342 32.8333 10.3075 32.8333 9.23082Z" fill="white" fill-opacity="0.32" stroke="#757575" stroke-width="0.75" stroke-linecap="round" stroke-linejoin="round"/>
3220   </svg>
3221 -->
3222 </p>
3223       </div>
3224     </div>
3225   </div>
3226 </div>
3227 <div class="purchasePopup purchasePopupSpotify" style="display: none;">
3228   <div class="purchaseArea">
3229     <div class="sectionPurchase sectionPurchaseSpotify">
3230       <div class="wrapperPurchase">
3231         <div class="headerPurchase">
3232           <h3>personalize spotify photo print</h3>
3233           <a class="close-purchase-popup">
3234             <svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="18" height="18" viewBox="0 0 18 18" fill="none">
3235               <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>
3236             </svg>
3237           </a>
3238         </div>
3239         <div class="contentPurchase">
3240           <div class="spotifyAddons"></div>
3241         </div>
3242 
3243         <div class="purchase-button btn-addon row m-0" style="display: none;">
3244           <div class="col-12 col-lg-2 text-left mb-2 p-0">
3245             <button class="back-purchase-button back-addon text-uppercase">
3246               <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp">
3247                 <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>
3248               </svg>
3249               <span>Back</span>
3250             </button>
3251           </div>
3252           <div class="col-12 col-lg-10 text-right" style="display: flex;justify-content: end;gap: 20px;">
3253             <button class="btn next-purchase-button next-addon text-uppercase">
3254               <span>continue without add-ons</span>
3255             </button>
3256           </div>
3257         </div>
3258       </div>
3259     </div>
3260   </div>
3261 </div>
3262 
3263 <style>
3264   #PBarNextFrameWrapper {
3265     display: none;
3266   }
3267   #backgroundPopup {
3268     display: none;
3269     position: fixed;
3270     _position: absolute;
3271     height: 100%;
3272     width: 100%;
3273     top: 0;
3274     left: 0;
3275     background: rgb(117 117 117 / 24%);
3276     z-index: 1;
3277   }
3278   .sectionPurchase {
3279     height: 100%;
3280     position: relative;
3281     max-width: 1344px;
3282     background-color: #fff;
3283     padding: 0;
3284     overflow: hidden; /* Changed from auto to hidden */
3285     display: flex;
3286     flex-direction: column;
3287   }
3288   .sectionPurchase.purchaseAddonSpotify {
3289     max-width: 1070px!important;
3290     max-height: 765px!important;
3291   }
3292   .sectionPurchaseBoard {
3293     max-width: 872px!important;
3294     max-height: 821px!important;
3295   }
3296   .purchaseAddonSpotify .btn-action {
3297     position: absolute;
3298     bottom: 0;
3299     left: 0;
3300     width: 100%;
3301     display: flex;
3302     gap: 10px;
3303   }
3304   .wrapperPurchase {
3305     position: relative;
3306     height: 100%;
3307     display: flex;
3308     flex-direction: column;
3309   }
3310   
3311   /* New styles for scrollable content and sticky button */
3312   .purchase-content {
3313     flex: 1;
3314     overflow-y: auto;
3315     overflow-x: hidden;
3316     padding: 20px;
3317   }
3318   
3319   .purchase-button-wrapper {
3320     position: sticky;
3321     bottom: 0;
3322     background-color: #fff;
3323     border-top: 1px solid #e0e0e0;
3324     padding: 15px 0;
3325     margin-top: auto;
3326     z-index: 10;
3327   }
3328   
3329   .purchasePopup {
3330     display: none;
3331     position: fixed;
3332     background: rgb(117 117 117 / 24%);
3333     z-index: 999;
3334     padding: 40px;
3335     font-size: 13px;
3336     top: 0;
3337     left: 0;
3338     width: 100%;
3339     height: 100%;
3340   }
3341   .popupPurchaseClose{
3342     font-size:14px;
3343     line-height:14px;
3344     right:45px;
3345     top:45px;
3346     position:absolute;
3347     color:#6fa5fd;
3348     font-weight:700;
3349     display:block;
3350     cursor: pointer;
3351   }
3352 
3353   .headerPurchase {
3354     margin-bottom: 30px;
3355     display: flex;
3356     justify-content: space-between;
3357   }
3358 
3359   .headerPurchase h3 {
3360     font-size: 16px;
3361     text-transform: uppercase;
3362   }
3363 
3364   .sectionPurchaseBoard .headerPurchase {
3365     margin-bottom: 15px;
3366   }
3367 
3368   .sectionPurchaseBoard .formAddressPurchase {
3369     padding-top: 0;
3370   }
3371 
3372   .purchaseArea {
3373     position: relative;
3374     height: 100%;
3375   }
3376 
3377   .purchaseArea h4 {
3378     width: 100%;
3379     font-size: 12px;
3380     font-weight: 600;
3381     margin-bottom: 10px;
3382     text-transform: uppercase;
3383   }
3384 
3385   .menuPurchase {
3386     margin-bottom: 30px;
3387   }
3388 
3389   .menuPurchase ul {
3390     list-style-type: none;
3391     margin: 0;
3392   }
3393 
3394   .menuPurchase ul li {
3395     display: inline-block;
3396     border: 1px solid #ffffff;
3397     padding: 5px 20px;
3398     margin-right: 5px;
3399     margin-bottom: 10px;
3400     font-size: 12px;
3401     font-weight: 400;
3402   }
3403 
3404   .menuPurchase ul li:hover, .menuPurchase ul li.selected {
3405     background-color: #ffffff;
3406     color: #ffffff;
3407   }
3408 
3409   .contentPurchase h5 {
3410       font-size: 12px;
3411       margin-bottom: 10px;
3412       font-weight: 400;
3413       overflow: hidden;
3414   }
3415 
3416   /* Card */
3417 
3418   #itemCards {
3419     max-height: 430px;
3420     overflow: auto;
3421   }
3422 
3423   .item-cards {
3424       width: 100%;
3425   }
3426   .item-card.selected {
3427       border: 1px solid #ffffff;
3428   }
3429   .item-card:hover {
3430       border: 1px solid #C4C4C4;
3431   }
3432   .item-cards .item-card {
3433     position: relative;
3434     width: calc(33% - 10px);
3435     max-width: calc(33% - 10px);
3436     flex: 0 0 calc(33% - 10px);
3437     margin-bottom: 20px;
3438   }
3439   .item-cards .item-card label,
3440   .item-addons .item-addon label {
3441       position: absolute;
3442       left: 0;
3443       width: 100%;
3444       height: 100%;
3445   }
3446   .item-cards .item-card .card-image img,
3447   .item-addons .item-addon .card-image img {
3448       display: block;
3449       width: 100%;
3450   }
3451   .item-card .card-meta,
3452   .item-addon .card-meta {
3453       padding: 10px 5px 5px;
3454   }
3455   .item-card.selected .card-meta,
3456   .item-addon.selected .card-meta,
3457   .item-card.selected .card-qty {
3458       background-color: #ffffff;
3459       color: #fff;
3460       visibility: visible!important;
3461   }
3462   .item-card:hover .card-meta,
3463   .item-addon:hover .card-meta,
3464   .item-card:hover .card-qty {
3465       background-color: #C4C4C4;
3466       color: #fff;
3467       visibility: visible!important;
3468   }
3469   .item-cards .item-card p,
3470   .item-addons .item-addon p {
3471     font-size: 12px !important;
3472     margin: 0;
3473     font-weight: 600;
3474   }
3475   .item-card .card-meta input,
3476   .item-addon .card-meta input {
3477       display: none;
3478   }
3479   .item-cards .item-card h5,
3480   .item-addons .item-addon h5 {
3481     text-transform: uppercase;
3482     max-height: 35px;
3483   }
3484 
3485   @media (max-width: 768px) {
3486     .item-cards .item-card {
3487         width: calc(50% - 10px);
3488         max-width: calc(50% - 10px);
3489         flex: 0 0 calc(50% - 10px);
3490         margin-bottom: 0;
3491     }
3492   }
3493 
3494   .card-qty {
3495     display: flex;
3496     padding: 5px;
3497     visibility: hidden;
3498     background-color: #fff !important;
3499     z-index: 999;
3500   }
3501   .card-qty a {
3502     border-width: 1px;
3503     width: 30%;
3504     cursor: pointer;
3505     text-align: center;
3506     align-self: center;
3507     height: 28px;
3508     display: block;
3509     position: relative;
3510   }
3511   .card-qty a svg {
3512     position: absolute;
3513     top: 50%;
3514     left: 50%;
3515     transform: translate(-50%, -50%);
3516     text-align: center;
3517   }
3518   input.btn-qty {
3519     border-width: 0px;
3520     border-radius: 0;
3521     background-color: #fff;
3522     -webkit-appearance: none;
3523     box-shadow: none !important;
3524     -webkit-box-shadow: none !important;
3525     -moz-box-shadow: none!important;
3526     width: 40%;
3527     border-left: 1px solid #c4c4c4;
3528     border-right: 1px solid #c4c4c4;
3529     padding: 0;
3530   }
3531 
3532   .sectionPurchaseBoard #itemAddons .item-card {
3533     width: calc(20% - 15px);
3534     max-width: calc(20% - 15px);
3535     flex: 0 0 calc(20% - 15px);
3536   }
3537 
3538   .purchase-button {
3539     width: 100%;
3540     padding: 0; /* Reset padding as it's now handled by wrapper */
3541     margin: 0;
3542   }
3543 
3544   .sectionPurchaseBoard .purchase-button {
3545     margin-top: 0 !important; /* Reset margin */
3546   }
3547 
3548   .back-purchase-button, .back-spotify {
3549       width: 139px;
3550       border: 1px solid;
3551       height: 43px;
3552   }
3553   .purchase-button .btn {
3554     width: 297px;
3555     height: 43px;
3556     background-color: #ffffff;
3557     color: #ffffff;
3558   }
3559   .purchase-button .btn[disabled] {
3560     background-color: #EEEEEE;
3561   }
3562   .back-purchase-button svg, .back-spotify svg {
3563     align-self: center;
3564     vertical-align: middle;
3565     margin-right: 10px;
3566   }
3567 
3568   #purchaseProduct .row .error {
3569     font-size: 12px !important;
3570     color: orange;
3571     margin-top: 5px;
3572   }
3573 
3574   .reviewCardPurchase {
3575     max-width: 448px;
3576     float: right;
3577   }
3578 
3579   .addonsPurchase .addon-item {display: flex;justify-content: space-between;}
3580   .addon-item * {align-self: center;font-size: 12px;}
3581   .addon-itm-title {width: 360px;}
3582   .addon-itm-line-price {color: #757575;width: 80px;justify-content: space-between;display: flex;}
3583 
3584   .propsAddonSpotify p {
3585     margin: 0;
3586     display: flex;
3587     font-size: 12px !important;
3588     margin-bottom: 5px;
3589   }
3590   .propsAddonSpotify p span:first-child {
3591     text-transform: uppercase;
3592     font-weight: 600;
3593     -ms-flex: 0 0 150px;
3594     flex: 0 0 150px;
3595     max-width: 150px;
3596   }
3597 
3598   .addonsPurchase .addons {
3599     max-height: 250px;
3600     overflow: auto;
3601   }
3602 
3603   .btn .loading:after {
3604     content: "";
3605     display: inline-block;
3606     width: 20px;
3607     height: 20px;
3608     padding: 3px;
3609     aspect-ratio: 1;
3610     border-radius: 50%;
3611     background: #FFFFFF;
3612     --_m: conic-gradient(#0000 10%, #ffffff), linear-gradient(#ffffff 0 0) content-box;
3613     -webkit-mask: var(--_m);
3614     mask: var(--_m);
3615     -webkit-mask-composite: source-out;
3616     mask-composite: subtract;
3617     animation: l3 1s infinite linear;
3618     margin: auto;
3619     vertical-align: middle;
3620     margin-left: 10px;
3621   }
3622 
3623   #qrcode img, #qrcode canvas {
3624     width: 50px;
3625     position: absolute;
3626     top: 12px;
3627     left: 16px;
3628   }
3629 
3630   .t-preview {
3631     position: absolute;
3632     top: 17px;
3633     left: 75px;
3634   }
3635   .t-preview p {
3636     margin: 0;
3637     font-size: 12px !important;
3638   }
3639   .t-preview .h3 {
3640     font-size: 16px !important;
3641     margin-bottom: 5px;
3642     font-weight: 600;
3643   }
3644   .scanCard {
3645     width: 100%;
3646     border: 1px solid;
3647     height: 76px;
3648     background-color: #fff;
3649   }
3650   .scanCard > div > img {
3651     position: absolute;
3652     right: 0;
3653     width: 55px;
3654   }
3655 
3656   @keyframes l3 {
3657     100% {
3658       transform: rotate(1turn);
3659     }
3660   }
3661 
3662   @media (min-width: 991px) {
3663     .sectionPurchase {
3664       height: 100%;
3665       position: relative;
3666       max-width: 1344px;
3667       background-color: #fff;
3668       top: 50%;
3669       left: 50%;
3670       transform: translate(-50%, -50%);
3671     }
3672     .headerPurchase h3 {
3673       font-size: 20px;
3674     }
3675     .purchaseArea h4 {
3676       font-size: 16px;
3677     }
3678 
3679     .menuPurchase ul li {
3680         font-size: 16px;
3681     }
3682     
3683     .contentPurchase {
3684       margin-bottom: 30px;
3685     }
3686     .contentPurchase h5 {
3687       font-size: 16px;
3688     }
3689 
3690     .item-cards .item-card p,
3691     .item-addons .item-addon p {
3692       font-size: 16px !important;
3693     }
3694 
3695     .cards {
3696       float: right;
3697       width: 400px;
3698     }
3699 
3700     .item-cards .item-card {
3701       width: calc(25% - 30px);
3702       max-width: calc(25% - 30px);
3703       flex: 0 0 calc(25% - 30px);
3704     }
3705 
3706       #itemAddons .item-card {
3707         position: relative;
3708         width: calc(16% - 40px);
3709         max-width: calc(16% - 40px);
3710         flex: 0 0 calc(16% - 40px);
3711       }
3712       
3713     .purchase-button-wrapper {
3714         padding: 10px 20px;
3715     }
3716   }
3717 
3718   @media (max-width: 1200px) {
3719     .item-cards .item-card {
3720       width: calc(33% - 30px);
3721       max-width: calc(33% - 30px);
3722       flex: 0 0 calc(33% - 30px);
3723     }
3724   }
3725 
3726   @media (max-width: 992px) {
3727     .purchasePopup {
3728       padding: 0;
3729     }
3730     .item-cards .item-card h5,
3731     .item-addons .item-addon h5 {
3732       max-height: 30px;
3733     }
3734 
3735     .back-purchase-button, .back-spotify, .next-purchase-button {
3736         width: 100%;
3737     }
3738     .addon-itm-title {
3739       width: 300px;
3740     }
3741     .addon-itm-line-price {
3742       margin-right: 10px;
3743     }
3744     .t-preview {
3745       top: 10px;
3746     }
3747 
3748     .card-qty a {
3749       height: 15px;
3750     }
3751     
3752     .purchase-button-wrapper {
3753       padding: 15px;
3754     }
3755   }
3756 
3757   @media (max-width: 576px) {
3758     .purchase-button .btn {
3759         width: 100%!important;
3760     }
3761     .purchase-button > .col-12 {
3762       padding-left: 0;
3763       padding-right: 0;
3764     }
3765   }
3766 </style>
3767 
3768 
3769 <div class="purchasePopup">
3770   <div class="purchaseArea">
3771     
3772       <div class="sectionPurchase purchasePersonalize sectionPurchaseBoard">
3773         <div class="wrapperPurchase">
3774           <div class="purchase-content">
3775             <div class="headerPurchase">
3776   <h3 class="text-uppercase">
3777     
3778       customize your flower board
3779     
3780   </h3>
3781   <a class="close-purchase-popup">
3782   <svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="18" height="18" viewBox="0 0 18 18" fill="none">
3783     <path d="M1.53287 17.4107L0.588867 16.4667L8.05553 9.00002L0.588867 1.53336L1.53287 0.589355L8.99953 8.05602L16.4662 0.589355L17.4102 1.53336L9.94353 9.00002L17.4102 16.4667L16.4662 17.4107L8.99953 9.94402L1.53287 17.4107Z" fill="black"/>
3784   </svg>
3785 </a>
3786 
3787 </div>
3788 <div class="contentPurchase">
3789   <div class="row">
3790     
3791       <div class="col-12">
3792         
3793 
3794 <style>
3795   
3796   
3797   .customize-papan .group-field-1 .input-field {float: left;width: 100%;height: 317px;background-color: #E5E5EA;}
3798   .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;}
3799   
3800   .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;}
3801   .customize-papan .btn-upload-papan svg {width: 21px;height: 25px;display: block;align-self: center;margin: auto;margin-bottom: 12px;}
3802   .svgLogoPapan {position: absolute;width: 100%;top: 50%;left: 50%;transform: translate(-50%, -50%);text-align: center;}
3803   .svgLogoPapan p {color: #8E8E93; margin: 0;}
3804   .svgLogoPapan p span {font-size: 12px;color: #FF0E00;}
3805   .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;}
3806   #suggest-messages {position: absolute;bottom: 5px;left: 5px;}
3807   #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;}
3808   .case-occasion .nice-select:after {border-bottom: 2px solid #333;border-right: 2px solid #333;right: 20px;top: 42%;width: 10px;height: 10px;}
3809   .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;}
3810   .customize-papan .input-field .limit {position: absolute;right: 15px;top: 0;color: #757575;}
3811 
3812   @media (min-width: 991px) {
3813     .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);}
3814     .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);}
3815   }
3816 </style>
3817 
3818 <input type="hidden" data-properties="penerima" value="-">
3819 <div class="customize-papan">
3820   <div class="container">
3821     <div class="field-papan group-field-1 form-group">
3822       <div class="input-field">
3823         <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.
3824 (Ex: Selamat Menempuh Hidup Baru A & B)." maxlength="100"></textarea>
3825         <p class="limit">0/100</p>
3826         <div id="suggest-messages">
3827           <a id="show_note_papan1" href="#">
3828             <div class="suggest-message" id="note_btn_div1">
3829               <span class="promo-code-link" id="note_btn_papan1">Contoh Kata WEDDING</span>
3830             </div>
3831           </a>
3832           <a id="show_note_papan2" href="#">
3833             <div class="suggest-message" id="note_btn_div2">
3834               <span class="promo-code-link" id="note_btn_papan2">Contoh Kata SELAMAT</span>
3835             </div>
3836           </a>
3837           <a id="show_note_papan3" href="#">
3838             <div class="suggest-message" id="note_btn_div3">
3839               <span class="promo-code-link" id="note_btn_papan3">Contoh Kata DUKA CITA</span>
3840             </div>
3841           </a>
3842         </div>
3843       </div>
3844     </div>
3845     <div class="hide">
3846       <input type="hidden" value="" id="note_id_papan1" name="note_id_papan1" style="top: 0px;">
3847       <input type="hidden" value="" id="note_btn_id_papan1" name="note_btn_id_papan1">
3848     </div>
3849     <div class="hide">
3850       <input type="hidden" value="" id="note_id_papan2" name="note_id_papan2" style="top: 0px;">
3851       <input type="hidden" value="" id="note_btn_id_papan2" name="note_btn_id_papan2">
3852     </div>
3853     <div class="hide">
3854       <input type="hidden" value="" id="note_id_papan3" name="note_id_papan3" style="top: 0px;">
3855       <input type="hidden" value="" id="note_btn_id_papan3" name="note_btn_id_papan3">
3856     </div>
3857     <div class="field-papan group-field-2 form-group">
3858       
3859       <label for="logoPapan" onclick="" class="input-field field-logo">
3860         
3861         
3862         
3863         <div class="btn-upload-papan w-100">
3864           <?xml version="1.0" encoding="UTF-8"?>
3865           <img src="" style="display:none">
3866           <div class="svgLogoPapan">
3867             <svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="22" height="26" viewBox="0 0 22 26" fill="none">
3868               <path d="M6.5 20H15.5V11H21.5L11 0.5L0.5 11H6.5V20ZM0.5 23H21.5V26H0.5V23Z" fill="black"/>
3869             </svg>
3870             <p>Upload Logo <span>*optional</span></p>
3871           </div>
3872         </div>
3873         
3874       </label>
3875       
3876       <input
3877         type="hidden"
3878         data-properties="papan-logo"
3879         value=""
3880       >
3881       <input
3882         type="file"
3883         id="logoPapan"
3884         accept="image/*"
3885         style="position: absolute;width: 1px;height: 1px;padding: 0"
3886       >
3887       
3888       <div class="input-field">
3889         <input class="has-limit sender-name" type="text" placeholder="Nama Pengirim" data-properties="pengirim" maxlength="35"/>
3890         <p class="limit">0/35</p>
3891       </div>
3892       
3893     </div>
3894     
3895   </div>
3896 </div>
3897       </div>
3898     
3899   </div>
3900 </div>
3901 
3902           </div>
3903           <div class="purchase-button-wrapper">
3904             <div class="purchase-button btn-card row m-0">
3905   <div class="col-12 col-lg-2 text-left mb-2 p-0">
3906     
3907   </div>
3908   <div class="btn-next-card col-12 col-lg-10 text-right">
3909     
3910     
3911     <button
3912       
3913         
3914       
3915       class="btn next-purchase-button text-uppercase"
3916       
3917         disabled
3918       
3919     >
3920       <span>save your flower board</span>
3921     </button>
3922   </div>
3923 </div>
3924 
3925           </div>
3926         </div>
3927       </div>
3928     
3929     
3930     
3931       <div
3932         class="sectionPurchase sectionPurchaseBoard hide"
3933         data-section="address"
3934       >
3935         <div class="wrapperPurchase">
3936           <div class="purchase-content">
3937             <div class="headerPurchase">
3938   <h3>
3939     Complete Your Order
3940   </h3>
3941   <a class="close-purchase-popup">
3942   <svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="18" height="18" viewBox="0 0 18 18" fill="none">
3943     <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"/>
3944   </svg>
3945 </a>
3946 
3947 </div>
3948 <div class="contentPurchase">
3949   <div class="row">
3950     <div class="col-12 position-relative">
3951       <div class="addressPurchase">
3952         
3953           <h4 class="text-uppercase">recipient delivery address</h4>
3954           <p>Share the delivery address to send your heartfelt blooms straight to their door.</p>
3955         
3956         <div class="formAddressPurchase row">
3957           <div class="col-12">
3958             <form>
3959               <div class="form-group row mb-2 mb-lg-4">
3960                 <div class="col-6 position-relative">
3961                   <input id="first_name" type="text" class="form-control input__field" placeholder="" required>
3962                   <label for="first_name" class="input__label">First Name<span>*</span></label>
3963                 </div>
3964                 <div class="col-6 position-relative">
3965                   <input id="last_name" type="text" class="form-control input__field" placeholder="" required>
3966                   <label for="last_name" class="input__label">Last Name<span>*</span></label>
3967                 </div>
3968                 <input type="hidden" data-properties="nama-penerima">
3969               </div>
3970               
3971                 <h4 class="text-uppercase">how you want to input your address</h4>
3972                 <div class="form-group row mb-2 mb-lg-4 form-address-upload">
3973                   <div class="col-6 position-relative">
3974                     <label class="address-manualy">
3975                       <svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="18" height="17" viewBox="0 0 18 17" fill="none">
3976   <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
39761216 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
39765 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"/>
3977 </svg>
3978 <span>Input Address Manually</span>
3979                     </label>
3980                   </div>
3981                   <div class="col-6 position-relative">
3982                     <label for="address-upload" class="address-upload">
3983                       <svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="12" height="13" viewBox="0 0 12 13" fill="none">
3984   <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"/>
3985 </svg>
3986 <span>Upload Address Picture</span>
3987                     </label>
3988                     <input
3989                       id="address-upload"
3990                       type="file"
3991                       accept="image/png, image/jpeg"
3992                       style="position: absolute; padding: 0;width: 1px;height: 1px"
3993                     >
3994                     <input type="hidden" class="props-address-upload" data-properties="foto-alamat">
3995                   </div>
3996                 </div>
3997                 <img width="150" height="" src="" class="photo-address" style="display: none;">
3998               
3999               <div class="form-group row position-relative mb-2 mb-lg-4 form-address">
4000                 <div class="col-12">
4001                   <textarea
4002                     id="delivery_address"
4003                     data-properties="alamat-penerima"
4004                     class="form-control input__field col-12"
4005                     placeholder=""
4006                     required
4007                   ></textarea>
4008                   <label for="delivery_address" class="input__label">Delivery Address<span>*</span></label>
4009                   
4010                 </div>
4011               </div>
4012               <div class="form-group row mb-2 mb-lg-4 form-address">
4013                 <div class="col-6 position-relative">
4014                   <input
4015                     id="recipient_number"
4016                     type="text"
4017                     data-properties="telepon-penerima"
4018                     class="form-control input__field"
4019                     placeholder=""
4020                     required
4021                   >
4022                   <label for="recipient_number" class="input__label">Recipient number<span>*</span></label>
4023                 </div>
4024                 <div class="col-6 position-relative">
4025                   <input
4026                     id="company"
4027                     type="text"
4028                     data-properties="company"
4029                     class="form-control input__field"
4030                     placeholder=""
4031                   >
4032                   <label for="company" class="input__label">Company (Optional)</label>
4033                 </div>
4034               </div>
4035               <div class="form-group row mb-2 mb-lg-4 form-address">
4036                 <div class="col-6 position-relative">
4037                   <input
4038                     id="province"
4039                     type="text"
4040                     class="form-control input__field"
4041                     placeholder=""
4042                     value="Jakarta"
4043                     data-properties="province"
4044                   >
4045                   <label for="province" class="input__label">Province</label>
4046                 </div>
4047                 <div class="col-6 position-relative">
4048                   <select id="zip" class="form-control select-search" required></select>
4049                 </div>
4050               </div>
4051             </form>
4052           </div>
4053         </div>
4054       </div>
4055       <div class="addonsPurchase">
4056         <h4 class="text-uppercase">add-ons</h4>
4057         <div class="addons">
4058           <p>No Add-Ons</p>
4059           <!--
4060             <button class="add-addon">
4061               <svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="12" height="12" viewBox="0 0 12 12" fill="none">
4062                 <path d="M5.5 6.5H0V5.5H5.5V0H6.5V5.5H12V6.5H6.5V12H5.5V6.5Z" fill="black"/>
4063               </svg>
4064               <span>Enhance my moment with Add-ons</span>
4065             </button>
4066           -->
4067         </div>
4068       </div>
4069     </div>
4070     
4071   </div>
4072 </div>
4073 
4074 
4074<script>
4075 document.addEventListener('DOMContentLoaded', function() {
4076   // Detect iOS
4077   var isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;
4078   
4079   if (isIOS) {
4080     document.querySelector('.formAddressPurchase').classList.add('ios');
4081     
4082     // iOS specific fixes
4083     var inputs = document.querySelectorAll('.formAddressPurchase .input__field');
4084     
4085     inputs.forEach(function(input) {
4086       // Force enable touch events on iOS
4087       input.style.webkitUserSelect = 'text';
4088       input.style.webkitTouchCallout = 'default';
4089       input.style.pointerEvents = 'auto';
4090       input.style.touchAction = 'manipulation';
4091       
4092       // Add explicit touch event listeners for iOS
4093       input.addEventListener('touchstart', function(e) {
4094         e.stopPropagation();
4095         this.focus();
4096       }, { passive: false });
4097       
4098       input.addEventListener('touchend', function(e) {
4099         e.preventDefault();
4100         e.stopPropagation();
4101         this.focus();
4102         this.click();
4103       }, { passive: false });
4104       
4105       // Force focus on tap for iOS
4106       input.addEventListener('click', function(e) {
4107         e.stopPropagation();
4108         if (document.activeElement !== this) {
4109           this.focus();
4110         }
4111       });
4112     });
4113     
4114     // Fix for label overlapping on iOS
4115     var labels = document.querySelectorAll('.formAddressPurchase .input__label');
4116     labels.forEach(function(label) {
4117       label.style.pointerEvents = 'none';
4118       label.addEventListener('touchstart', function(e) {
4119         e.preventDefault();
4120         var input = this.parentNode.querySelector('.input__field');
4121         if (input) {
4122           input.focus();
4123         }
4124       });
4125     });
4126   }
4127   
4128   // Handle input state for all browsers, especially iOS
4129   var inputs = document.querySelectorAll('.input__field');
4130   
4131   inputs.forEach(function(input) {
4132     // Handle input events
4133     input.addEventListener('input', function() {
4134       if (this.value.trim() !== '') {
4135         this.classList.add('has-value');
4136       } else {
4137         this.classList.remove('has-value');
4138       }
4139     });
4140     
4141     // Handle focus
4142     input.addEventListener('focus', function() {
4143       this.classList.add('focused');
4144       // iOS specific: ensure input is visible
4145       if (isIOS) {
4146         setTimeout(function() {
4147           input.scrollIntoView({ behavior: 'smooth', block: 'center' });
4148         }, 300);
4149       }
4150     });
4151     
4152     // Handle blur
4153     input.addEventListener('blur', function() {
4154       this.classList.remove('focused');
4155       if (this.value.trim() !== '') {
4156         this.classList.add('has-value');
4157       } else {
4158         this.classList.remove('has-value');
4159       }
4160     });
4161     
4162     // Initial check for pre-filled values
4163     if (input.value.trim() !== '') {
4164       input.classList.add('has-value');
4165     }
4166   });
4167   
4168   // Additional iOS fixes
4169   if (isIOS) {
4170     // Prevent iOS Safari from adding default styling
4171     document.addEventListener('touchstart', function() {}, { passive: true });
4172     
4173     // Fix viewport issues on iOS
4174     var viewport = document.querySelector('meta[name=viewport]');
4175     if (viewport) {
4176       viewport.setAttribute('content', 
4177         'width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no'
4178       );
4179     }
4180   }
4181 });
4182 </script>
4182
4183           </div>
4184           <div class="purchase-button-wrapper">
4185             <div class="purchase-button btn-address row m-0">
4186   <div class="col-12 col-lg-2 text-left mb-2 p-0">
4187     
4188       <button class="back-purchase-button back-address text-uppercase">
4189         <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp">
4190           <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"/>
4191         </svg>
4192         <span>Back</span>
4193       </button>
4194     
4195   </div>
4196   <div class="btn-next-card col-12 col-lg-10 text-right">
4197     
4198       <!--
4199         <button class="back-purchase-button back-address text-uppercase mr-lg-2 mb-2 mb-lg-0">
4200           <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp">
4201             <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"/>
4202           </svg>
4203           <span>Back</span>
4204         </button>
4205       -->
4206     
4207     
4208     <button
4209       
4210         id="addtocart-card"
4211       
4212       class="btn  next-address text-uppercase"
4213       
4214     >
4215       <span>add to cart</span>
4216     </button>
4217   </div>
4218 </div>
4219 
4220           </div>
4221         </div>
4222       </div>
4223     
4224   </div>
4225 </div>
4226 <div id="backgroundPopup"></div>
4227 
4228 
4229 
4230 <input
4231   data-index="1"
4232   type="hidden"
4233   id="properties-delivery-date"
4234   name="properties[Delivery Date]"
4235   value="-"
4236 >
4237 <input
4238   data-index="2"
4239   type="hidden"
4240   id="properties-delivery-time"
4241   name="properties[Delivery Time]"
4242   value="-"
4243 >
4244 <input
4245   data-index="4"
4246   type="hidden"
4247   id="properties-nama-penerima"
4248   name="properties[Nama Penerima]"
4249   value="-"
4250 >
4251 <input
4252   data-index="5"
4253   type="hidden"
4254   id="properties-alamat-penerima"
4255   name="properties[Alamat Penerima]"
4256   value="-"
4257 >
4258 <input
4259   data-index="6"
4260   type="hidden"
4261   id="properties-kodepos"
4262   name="properties[Kodepos]"
4263   value="-"
4264 >
4265 <input data-index="7" type="hidden" id="properties-telepon-penerima" name="properties[Telepon Penerima]">
4266 
4267   
4268     <input
4269       data-index="8"
4270       type="hidden"
4271       id="properties-kartu-nama-penerima"
4272       name="properties[Kartu Nama Penerima]"
4273       value="-"
4274     >
4275   
4276   <textarea
4277     data-index="9"
4278     type="hidden"
4279     id="properties-kartu-pesan"
4280     name="properties[Kartu Pesan]"
4281     style="display: none"
4282   >-</textarea>
4283 
4284 
4285 
4286   <input
4287     data-index="10"
4288     type="hidden"
4289     id="properties-kartu-nama-pengirim"
4290     name="properties[Kartu Nama Pengirim]"
4291     value="-"
4292   >
4293
4294 <!-- Additional Shipping -->
4295 <input type="hidden" id="properties-kota-pengiriman-province" name="properties[Province]">
4296 <input
4297   type="hidden"
4298   id="properties-kota-pengiriman-country"
4299   name="properties[Country]"
4300   value="Indonesia"
4301 >
4302 <input type="hidden" id="properties-shipping" name="properties[Shipping]">
4303 
4304 <input type="hidden" id="properties-time" name="properties[Time]">
4305 <input type="hidden" id="properties-card" name="properties[Card]">
4306 <input type="hidden" id="properties-addons" name="properties[Addons]">
4307 
4308 <input
4309   type="hidden"
4310   id="properties-company"
4311   name="properties[Company]"
4312   value=""
4313 >
4314 
4314<script>
4315   
4316   $(document).ready(function(){
4317     
4318     var text_max_papan1=150;
4319     var msg_text_papan1="";
4320     $('#kartu-ucapan-ucapan').keyup(function(){
4321       var text_length_papan1=$('#kartu-ucapan-ucapan').val().length;
4322       var msg_text_papan1=$('#kartu-ucapan-ucapan').val();
4323     });
4324 
4325     var notes_papan1 = [
4326       
4327       [0,"Happy Wedding (nama & nama)."],[1,"Congratulations lovebirds (nama & nama)."],[2,"Selamat berbahagia (nama & nama)."],[3,"Selamat menempuh hidup baru (nama & nama)."]
4328       
4329     ];
4330     $('#show_note_papan1').click(function(event){
4331       event.preventDefault();
4332       var idx_papan1=parseInt($('#note_id_papan1').val());
4333       if(isNaN(idx_papan1)){
4334         idx_papan1=0;
4335       }else{
4336         idx_papan1++;
4337         idx_papan1=idx_papan1%notes_papan1.length;
4338       }
4339       var note_papan1=notes_papan1[idx_papan1][1];
4340       $('#note_id_papan1').val(idx_papan1);
4341       $('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan1);
4342       $('#msgDelivery').val(note_papan1);
4343 
4344       var text_length_papan1=$('#kartu-ucapan-papan').val().length;
4345       var idx_2_papan1=parseInt($('#note_btn_id_papan1').val());
4346       if(isNaN(idx_2_papan1)){
4347         idx_2_papan1=0;
4348       }else{
4349         idx_2_papan1++;
4350         //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length;
4351       }
4352       $('#note_btn_id_papan1').val(idx_2_papan1);
4353       //var note_btn=note_btn_text[idx_2][1];
4354       //$('#note_btn').text(note_btn);
4355     });
4356 
4357     var text_max_papan2=150;
4358     var msg_text_papan2="";
4359     $('#kartu-ucapan-ucapan').keyup(function(){
4360       var text_length_papan2=$('#kartu-ucapan-ucapan').val().length;
4361       var msg_text_papan2=$('#kartu-ucapan-ucapan').val();
4362     });
4363 
4364     var notes_papan2 = [
4365       
4366       [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)."]
4367       
4368     ];
4369     $('#show_note_papan2').click(function(event){
4370       event.preventDefault();
4371       var idx_papan2=parseInt($('#note_id_papan2').val());
4372       if(isNaN(idx_papan2)){
4373         idx_papan2=0;
4374       }else{
4375         idx_papan2++;
4376         idx_papan2=idx_papan2%notes_papan2.length;
4377       }
4378       var note_papan2=notes_papan2[idx_papan2][1];
4379       $('#note_id_papan2').val(idx_papan2);
4380       $('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan2);
4381       $('#msgDelivery').val(note_papan2);
4382       var text_length_papan2=$('#kartu-ucapan-papan').val().length;
4383       var idx_2_papan2=parseInt($('#note_btn_id_papan2').val());
4384       if(isNaN(idx_2_papan2)){
4385         idx_2_papan2=0;
4386       }else{
4387         idx_2_papan2++;
4388         //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length;
4389       }
4390       $('#note_btn_id_papan2').val(idx_2_papan2);
4391       //var note_btn=note_btn_text[idx_2][1];
4392       //$('#note_btn').text(note_btn);
4393     });
4394 
4395     var text_max_papan3=150;
4396     var msg_text_papan3="";
4397     $('#kartu-ucapan-ucapan').keyup(function(){
4398       var text_length_papan3=$('#kartu-ucapan-ucapan').val().length;
4399       var msg_text_papan3=$('#kartu-ucapan-ucapan').val();
4400     });
4401 
4402     var notes_papan3 = [
4403       
4404       [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)."]
4405       
4406     ];
4407     $('#show_note_papan3').click(function(event){
4408       event.preventDefault();
4409       var idx_papan3=parseInt($('#note_id_papan3').val());
4410       if(isNaN(idx_papan3)){
4411         idx_papan3=0;
4412       }else{
4413         idx_papan3++;
4414         idx_papan3=idx_papan3%notes_papan3.length;
4415       }
4416       var note_papan3=notes_papan3[idx_papan3][1];
4417       $('#note_id_papan3').val(idx_papan3);
4418       $('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan3);
4419       $('#msgDelivery').val(note_papan3);
4420       var text_length_papan3=$('#kartu-ucapan-papan').val().length;
4421       var idx_2_papan3=parseInt($('#note_btn_id_papan3').val());
4422       if(isNaN(idx_2_papan3)){
4423         idx_2_papan3=0;
4424       }else{
4425         idx_2_papan3++;
4426         //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length;
4427       }
4428       $('#note_btn_id_papan3').val(idx_2_papan3);
4429       //var note_btn=note_btn_text[idx_2][1];
4430       //$('#note_btn').text(note_btn);
4431     });
4432 
4433     var text_max_papan4=150;
4434     var msg_text_papan4="";
4435     $('#kartu-ucapan-ucapan').keyup(function(){
4436       var text_length_papan4=$('#kartu-ucapan-ucapan').val().length;
4437       var msg_text_papan4=$('#kartu-ucapan-ucapan').val();
4438     });
4439 
4440     $('#show_note_papan4').click(function(event){
4441       var notes_papan4 = [
4442         [0,"Here’s to you—steadier, stronger and better every day."],
4443         [1,"Warmest wishes for a speedy recovery!"],
4444         [2,"Dengan ucapan terhangat, semoga lekas membaik dan semakin pulih setiap harinya ya."],
4445         [3,"Semoga lekas sembuh untuk kembali beraktivitas dan berkarya."]
4446       ];
4447       event.preventDefault();
4448       var idx_papan4=parseInt($('#note_id_papan4').val());
4449       console.log(idx_papan4, 'idx_papan4')
4450       if(isNaN(idx_papan4)){
4451         idx_papan4=0;
4452       }else{
4453         idx_papan4++;
4454         idx_papan4=idx_papan4%notes_papan4.length;
4455       }
4456       var note_papan4=notes_papan4[idx_papan4][1];
4457       $('#note_id_papan4').val(idx_papan4);
4458       $('#kartu-ucapan-papan, #properties-kartu-ucapan, #properties-kartu-pesan').val(note_papan4);
4459       console.log(note_papan4, 'note_papan4')
4460       var text_length_papan4=$('#kartu-ucapan-papan').val().length;
4461       var idx_2_papan4=parseInt($('#note_btn_id_papan4').val());
4462       if(isNaN(idx_2_papan4)){
4463         idx_2_papan4=0;
4464       }else{
4465         idx_2_papan4++;
4466         //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length;
4467       }
4468       $('#note_btn_id_papan4').val(idx_2_papan4);
4469     });
4470 
4471     /*
4472     $("#jenisPapan").change(function(){
4473       $( "select option:selected").each(function(){
4474         if($(this).attr("value")=="Happy Wedding"){
4475           $("#suggest-messages a").hide();
4476           $("#show_note_papan1").show();
4477           $("#kartu-ucapan-papan").val("");
4478         }
4479         if($(this).attr("value")=="Congratulations"){
4480           $("#suggest-messages a").hide();
4481           $("#show_note_papan2").show();
4482           $("#kartu-ucapan-papan").val("");
4483         }
4484         if($(this).attr("value")=="Duka Cita"){
4485           $("#suggest-messages a").hide();
4486           $("#show_note_papan3").show();
4487           $("#kartu-ucapan-papan").val("");
4488         }
4489       });
4490     }).change();
4491     */
4492 
4493     
4494 
4495     
4496 
4497     $(".variant-metafield").each(function(){
4498       const t = $(this)
4499       const id = t.attr("id")
4500       const target = $(`[data-select=${id}]`)
4501       t.on('select2:selecting', function(e) {
4502         const data = e.params.args.data
4503         target.val(data.text)
4504       });
4505     })
4506   })
4507 </script>
4507
4508 
4509 <div id="popupCart">
4510   <div class="container">
4511     <div class="wrapperPopupCart">
4512       <div class="headerPopupCart">
4513         <div class="d-flex pl-5 pr-5 p-4">
4514           <svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="16" height="12" viewBox="0 0 16 12" fill="none">
4515             <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"/>
4516           </svg>
4517           <span>item added to your cart</span>
4518         </div>
4519         <a class="close-purchase-popup">
4520   <svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="18" height="18" viewBox="0 0 18 18" fill="none">
4521     <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"/>
4522   </svg>
4523 </a>
4524 
4525       </div>
4526       <div class="contentPopupCart">
4527         <div class="pl-5 pr-5 p-4">
4528           <div class="itemContent row m-0 justify-content-between">
4529             <div class="col-2 align-self-center">
4530               
4531               <img
4532                 class="d-block"
4533                 width="80"
4534                 src="//outerbloom.com/cdn/shop/files/Blossom-Shine-WM_80x.jpg?v=1695788426"
4535               >
4536             </div>
4537             <div class="col-10 align-self-center">
4538               <div class="row pl-3">
4539                 <div class="col-12 col-lg-7">
4540                   <span class="titleCartPopup text-uppercase">OMPONG188 >> Situs Hiburan Game Online Kane via QRIS Login Super Fleksibel</span>
4541                 </div>
4542                 <div class="d-flex justify-content-end col-12 col-lg-5">
4543                   <span class="deleteCartPopup hide">Delete</span>
4544                   <span class="lineCartPrice align-self-center">Rp 5.000</span>
4545                 </div>
4546               </div>
4547             </div>
4548           </div>
4549           <div class="itemProperties">
4550             
4551               <div class="propDeliver">
4552                 <h4>delivery option detail</h4>
4553                 <p>
4554                   <span>delivery city</span>
4555                   <span class="propDeliveryCity">jakarta</span>
4556                 </p>
4557                 <p>
4558                   <span>delivery date</span>
4559                   <span class="propDeliveryDate">24/03/2025</span>
4560                 </p>
4561                 <p>
4562                   <span>delivery time</span>
4563                   <span class="propDeliveryTime">Afternoon | 13:00 - 18:00</span>
4564                 </p>
4565               </div>
4566               <div class="propAddress">
4567                 <h4>delivery option detail</h4>
4568                 <p>
4569                   <span>RECIPIENT NAME</span>
4570                   <span class="propDeliveryName">jane doe</span>
4571                 </p>
4572                 <p>
4573                   <span>delivery address</span>
4574                   <span class="propDeliveryAddress"
4575                     >Jl. Gatot Subroto No. 25, RT.2/RW.4, Kuningan Barat, Kecamatan Mampang Prapatan, Kota Jakarta
4576                     Selatan, Daerah Khusus Ibukota Jakarta 12710, Indonesia</span
4577                   >
4578                 </p>
4579                 <p>
4580                   <span>recipient phone number</span>
4581                   <span class="propDeliveryPhone">(+62) 812-3456-7890</span>
4582                 </p>
4583                 <p>
4584                   <span>PROVINCE</span>
4585                   <span class="propDeliveryProv">Jakarta</span>
4586                 </p>
4587                 <p>
4588                   <span>postal code</span>
4589                   <span class="propDeliveryZip">12710</span>
4590                 </p>
4591                 
4592                 
4593               </div>
4594             
4595           </div>
4596           <div class="itemAddonCart">
4597             <div class="toggleAddonCart d-flex justify-content-between">
4598               <h4>add-ons (0)</h4>
4599               <svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="5" height="9" viewBox="0 0 5 9" fill="none">
4600                 <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"/>
4601               </svg>
4602             </div>
4603             <div class="wrapperItemAddonCart"></div>
4604           </div>
4605           
4606         </div>
4607       </div>
4608       <div class="footerPopupCart">
4609         <div class="row m-0 pl-5 pr-5 p-4">
4610           <a class="btn btnViewCart w-100 text-uppercase text-center" href="/cart">View Cart</a>
4611           <a class="btn btnViewCheckout w-100 text-uppercase text-center" href="/checkout"><span>Checkout</span></a>
4612           <a class="btnContinueShopping w-100 text-center" href="/">Continue shopping</a>
4613         </div>
4614       </div>
4615     </div>
4616   </div>
4617 </div>
4618 
4619 
4620 
4620<script>
4621   const shareButton = document.getElementById('shareButton');
4622 
4623   shareButton.addEventListener('click', () => {
4624     if (navigator.share) {
4625       navigator.share({
4626         title: "OMPONG188 >> Situs Hiburan Game Online Kane via QRIS Login Super Fleksibel",
4627         url: "/products/blossom-shine",
4628         text: 'Check out this page!'
4629       })
4630       .then(() => console.log('Successful share'))
4631       .catch((error) => console.log('Error sharing', error));
4632     } else {
4633       alert('Web Share API is not supported in this browser.');
4634     }
4635   });
4636 
4637   // Inventory validation function
4638   function checkInventoryStatus() {
4639     const productSelect = document.getElementById('productSelect');
4640     const purchaseButton = document.querySelector('#personalizeBtn button');
4641     
4642     if (!productSelect || !purchaseButton) return;
4643 
4644     const selectedVariantId = productSelect.value;
4645     
4646     // Get variant data from Shopify
4647     fetch(`/products/blossom-shine.js`)
4648       .then(response => response.json())
4649       .then(product => {
4650         const selectedVariant = product.variants.find(variant => variant.id == selectedVariantId);
4651         
4652         if (selectedVariant) {
4653           const isOutOfStock = selectedVariant.inventory_quantity <= 0 && 
4654                                selectedVariant.inventory_management === 'shopify' && 
4655                                selectedVariant.inventory_policy !== 'continue';
4656           
4657           if (isOutOfStock) {
4658             purchaseButton.disabled = true;
4659             purchaseButton.textContent = 'Out of Stock';
4660             purchaseButton.setAttribute('data-out-of-stock', 'true');
4661             purchaseButton.style.backgroundColor = '#cccccc';
4662             purchaseButton.style.cursor = 'not-allowed';
4663           } else {
4664             // Check if button was disabled due to other conditions
4665             
4666             
4667             
4668             
4669             
4670             
4671             
4672             
4673             const isOtherDisabled = false || true || false;
4674             
4675             if (!isOtherDisabled) {
4676               purchaseButton.disabled = false;
4677               purchaseButton.textContent = 'customize your flower board';
4678               purchaseButton.removeAttribute('data-out-of-stock');
4679               purchaseButton.style.backgroundColor = '';
4680               purchaseButton.style.cursor = '';
4681             }
4682           }
4683         }
4684       })
4685       .catch(error => {
4686         console.error('Error checking inventory:', error);
4687       });
4688   }
4689 
4690   // Check inventory on page load
4691   document.addEventListener('DOMContentLoaded', function() {
4692     checkInventoryStatus();
4693     
4694     // Listen for variant changes
4695     const productSelect = document.getElementById('productSelect');
4696     if (productSelect) {
4697       productSelect.addEventListener('change', checkInventoryStatus);
4698     }
4699   });
4700 
4701   // Prevent form submission if out of stock
4702   document.addEventListener('click', function(e) {
4703     if (e.target.matches('button[data-out-of-stock="true"]')) {
4704       e.preventDefault();
4705       e.stopPropagation();
4706       alert('This product is currently out of stock and cannot be purchased.');
4707       return false;
4708     }
4709   });
4710 </script>
4710
4711 
4712 
4713   
4714 </div>
4715 
4716           </div>
4717         </div>
4718       </div>
4719     </div>
4720     <div id="product-bottom">
4721       
4722         <div class="product-description rte bg-card col-12 py-3 px-0 m-0" itemprop="description">
4723           <div class="container">
4724             
4725 
4726 
4727 
4728 
4729     <div class="short-desc-mobile d-block d-lg-none mb-3">
4730         <div class="short-desc">
4731             <ul>
4732 <li><strong>OMPONG188 jadi situs hiburan game online kane dengan transaksi via QRIS, login super fleksibel, akses responsif, dan berbagai pilihan game online yang menarik untuk dimainkan setiap waktu.</strong></li>
4733         </div>
4734         <label class="more-mobile">Show More →</label>
4735     </div>
4736 
4737 <style>
4738 .animated-title {
4739     text-align: center;
4740     font-weight: bold;
4741     color: #079c02;
4742     font-size: 28px;
4743     position: relative;
4744     animation: glow 2s infinite alternate, moveUpDown 3s infinite;
4745 }
4746 
4747 /* Efek glow / bercahaya hijau */
4748 @keyframes glow {
4749     0% { text-shadow: 0 0 5px #079c02; color: #079c02; }
4750     50% { text-shadow: 0 0 20px #00ff55; color: #12d12b; }
4751     100% { text-shadow: 0 0 10px #1bff00; color: #079c02; }
4752 }
4753 
4754 /* Efek gerakan naik turun */
4755 @keyframes moveUpDown {
4756     0% { transform: translateY(0px); }
4757     50% { transform: translateY(-5px); }
4758     100% { transform: translateY(0px); }
4759 }
4760 </style>
4761 
4762 
4762<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/shopify-cartjs/1.1.0/cart.min.js"></script>
4762
4763 
4763<script>
4764   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});
4765 
4766   const productType = $("[data-product-type]").data("product-type")
4767   const productDate = Date.parse(new Date())
4768   
4769   const shop = 'outerbloom1.myshopify.com'
4770   const host = 'https://app.asmaraku.com'
4771   // const host = 'http://localhost:5001'
4772 
4773   const gsheet = "https://script.google.com/macros/s/AKfycbyqa6mPD6lVjU6hiHr12J8URZ2aJBGyxBsGQ0QtEIDari-rBk_9vSOITjSSmUXL1NwxEg/exec"
4774   
4775   const qrID = "041025" + randomString(4, 'aAbCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ')
4776 
4777   $("#properties-time").val(new Date().getTime())
4778 
4779   const isIOS = /iPhone|iPad|iPod/i.test(navigator.userAgent);
4780 
4781   if(!isIOS) {
4782     $("#full-date").attr("type", "button")
4783   }
4784 
4785   let dateTime = new Date();
4786   let today = dateTime.getDate();
4787   let day = dateTime.getDay();
4788   let hour = dateTime.getHours();
4789   let min = dateTime.getMinutes();
4790   let timeOfDay = hour + (min / 100);
4791 
4792   async function getFetch(url) {
4793     const response = await fetch(url);
4794     let status = false
4795     let result
4796     if(response.ok) {
4797       status = true
4798       result = await response.json();
4799     }
4800     return {
4801       status,
4802       data: result
4803     }
4804   }
4805 
4806   
4807 
4808   function setCookie(cname, cvalue, exMins) {
4809     var d = new Date();
4810     d.setTime(d.getTime() + (exMins*60*1000));
4811     var expires = "expires="+d.toUTCString();  
4812     document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
4813   }
4814 
4815   function getCookie(cname) {
4816     let name = cname + "=";
4817     let decodedCookie = decodeURIComponent(document.cookie);
4818     let ca = decodedCookie.split(';');
4819     for(let i = 0; i <ca.length; i++) {
4820       let c = ca[i];
4821       while (c.charAt(0) == ' ') {
4822         c = c.substring(1);
4823       }
4824       if (c.indexOf(name) == 0) {
4825         return c.substring(name.length, c.length);
4826       }
4827     }
4828     return "";
4829   }
4830 
4831   async function renderDate() {
4832     let dataDate = await getFetch(`${host}/api/shipping/date?domain=${shop}&productId=8144957800663&v=${Date.now()}`);
4833     console.log(dataDate, 'renderDate')
4834     const data = dataDate?.data
4835     const date = data.date
4836     const time = data.time
4837 
4838     console.log(date, 'DATE')
4839 
4840     const weekday = ["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];
4841     const monthly = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];
4842     const htmlDate = []
4843     for(let i = 0;i < date.length;i++) {
4844       const full = date[i].date
4845       const d = new Date(date[i].date);
4846       const day = weekday[d.getDay()];
4847       const dt = d.getDate();
4848       const mt = monthly[d.getMonth()];
4849       const yr = d.getFullYear();
4850       const isDate = Boolean(date[i].isEnabled)
4851       const cutoffpagi = date[i].cutoff?.pagi
4852       const cutoffsiang = date[i].cutoff?.siang
4853       const cutoffMalam = date[i].cutoff?.Malam
4854       var html = `
4855         <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'}>
4856           ${dt === today ?
4857             `Today<span>${dt < 10 ? '0' + dt : dt}</span>` :
4858             `${day}<span>${dt < 10 ? '0' + dt : dt}</span>`
4859           }
4860         </button>
4861       `
4862       htmlDate.push(html)
4863     }
4864     const htmlTime = []
4865     for(var i = 0;i < time.length;i++) {
4866       const timeText = time[i].text
4867       const timeTime = time[i].time
4868       const timeEnabled = time[i].isEnabled
4869       var html = `
4870           <button class="time-single calendarbutton2 btn steps-btn" data-time="${timeText}" ${timeEnabled ? '' : 'disabled'}>${timeText}<br/>${timeTime}</button>
4871         `
4872       htmlTime.push(html)
4873     }
4874     const deliveryDate = document.getElementById("deliveryDate");
4875     if(deliveryDate) {
4876       deliveryDate.insertAdjacentHTML("afterbegin", htmlDate.join(''))
4877       $("#deliveryTime").html(htmlTime)
4878       if(productType !== '') {
4879         console.log("clarity event " + productType + ' calendaring')
4880         window.clarity("event", `${productType} calendaringSchedule`)
4881         // window.clarity("set", productType, `calendaringSchedule - ${productDate}`)
4882       }
4883     }
4884   }
4885 
4886   async function getProvince(city) {
4887     let { data: { province } } = await getFetch(`${host}/api/shipping/address/province?city=${city}`);
4888     console.log(province, 'province')
4889     $("#province").val(province)
4890   }
4891 
4892   async function renderAddress() {
4893     let current
4894     if(getCookie("location_delivery")){
4895       current = getCookie("location_delivery").charAt(0).toUpperCase() + getCookie("location_delivery").slice(1)
4896     }
4897     let address = await getFetch(`${host}/api/shipping/address?domain=${shop}&productId=8144957800663`);
4898     console.log(address)
4899     const data = address?.data?.city
4900     const htmlAddress = []
4901     const grouping = []
4902     for(let i = 0;i < data?.length;i++) {
4903       if(data[i]){
4904         if(data[i]?.group) {
4905           grouping.push(data[i].group)
4906         }
4907         const price = rupiah.format(data[i]?.rate)
4908         let promo = '(Promo Free Delivery)'
4909         if(data[i]?.name === 'Jakarta - PickUp ASHTA'){
4910           promo = '(at SCBD, Ashta)'
4911         } else if(data[i]?.name === 'Jakarta - PickUp ITC'){
4912           promo = '(at Kuningan, ITC Kuningan)'
4913         } else if(data[i]?.name === 'BSD - PickUp'){
4914           promo = '(at Goldfinch Gading Serpong)'
4915         } else if(data[i]?.name === 'Kota Lainnya'){
4916           promo = ''
4917         }
4918         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>`)
4919       }
4920     }
4921     
4922     const deliveryCity = document.getElementById("cities");
4923     if(deliveryCity) {
4924       deliveryCity.insertAdjacentHTML("beforeend", htmlAddress.join(''))
4925       if(!isIOS) {
4926         $(deliveryCity).select2();
4927       }
4928     }
4929   }
4930 
4931   async function renderZip(v, v2, v3) {
4932     const deliveryZip = document.getElementById("zip");
4933     if(v === '') {
4934       return
4935     }
4936     let dataZip = await getFetch(`${host}/api/shipping/address/zip?city=${v}&city2=${v2}&city3=${v3}`);
4937     let zip = dataZip?.data?.zip
4938     console.log(zip)
4939     let htmlZip = []
4940     for(let i = 0; i < zip?.length;i++) {
4941       htmlZip.push(`<option value="${zip[i]?.postalCode} - ${zip[i]?.subdistrict}">${zip[i]?.postalCode} - ${zip[i]?.subdistrict} - ${zip[i]?.city}</option>`)
4942     }
4943     deliveryZip.insertAdjacentHTML("beforeend", htmlZip.join(''))
4944   }
4945 
4946   renderDate()
4947   renderAddress()
4948 
4949   let rupiah = new Intl.NumberFormat('id-ID', {
4950     style: 'currency',
4951     currency: 'IDR',
4952     maximumFractionDigits: 0, 
4953     minimumFractionDigits: 0
4954   });
4955 
4956   async function insertCard(data) {
4957     const response = await fetch(`${host}/api/card/new`, {
4958         method: "POST",
4959         headers: {
4960           'Content-Type': 'application/json',
4961         },
4962         body: data
4963     })
4964     const result = await response.json()
4965     let rowIndex = result?.data?.tableRange.split("Outerbloom!A1:J")[1]
4966     $("#greetingCard").attr("data-index", rowIndex)
4967     return result
4968   }
4969     
4970   async function updateCard(data){
4971     const rowIndex = $("#greetingCard").data("index")
4972     const response = await fetch(`${host}/api/card/update?rowIndex=${rowIndex}`, {
4973         method: "PUT",
4974         headers: {
4975           'Content-Type': 'application/json',
4976         },
4977         body: data
4978     })
4979     return response
4980   }
4981     
4982   function bytesToSize(bytes) {
4983     var sizes = ['b', 'kb', 'mb', 'gb', 'tb', 'p'];
4984     for (var i = 0; i < sizes.length; i++) {
4985       if (bytes <= 1024) {
4986         return bytes + ' ' + sizes[i];
4987       } else {
4988         bytes = parseFloat(bytes / 1024).toFixed(2)
4989       }
4990     }
4991     return bytes + ' P';
4992   }
4993 
4994   async function uploadMedia(uri, type) {
4995     nameq = $("#properties-nama-penerima").val()
4996     dear = $("#properties-kartu-nama-penerima").val()
4997     card = $("[data-properties=ucapan]").val()
4998     sender = $("#properties-kartu-nama-pengirim").val()
4999     photo = $("#properties-photo").val()
5000     video = $("#properties-video").val()
5001     status = "Product"
5002         
5003     const name = qrID
5004     let formData = new FormData(); 
5005     formData.append("file", uri);
5006     const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, {
5007       method: "POST", 
5008       body: formData
5009     })
5010     const result = await response.json();
5011     if(result) {
5012       const url = result.url
5013       if(type === 'image/jpeg') {
5014         $("#properties-photo").val(url)
5015         $(".preview-image").show()
5016         $(".remove-image").show()
5017         photo = url
5018       } else {
5019         $("#properties-video").val(url)
5020         $("#label-input-video span").text("Change File")
5021         $(".case-qrcode-preview p").text("Scan here for a secret message")
5022         $(".remove-media").show()
5023         $("#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>`)
5024         $("[for=input-video]").hide()
5025         video = url
5026       }
5027       $(".case-video-preview").show()
5028       $(".steps-card-preview").removeClass("loading")
5029       // updateCard(nameq, dear, card, sender, photo, video, status)
5030 
5031       $(".nextBtn").attr("disabled", false)
5032     }
5033   }
5034 
5035   function randomString(length, chars) {
5036     var result = '';
5037     for (var i = length; i > 0; --i) result += chars[Math.round(Math.random() * (chars.length - 1))];
5038     return result;
5039   }
5040 
5041   function getNoteCity(fulldate) {
5042     const h_1 = new Date(new Date().setDate(new Date().getDate() + 1))
5043     const weekday = ["Min","Sen","Sel","Rab","Kam","Jum","Sab"];
5044     const monthly = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];
5045     const d = new Date(h_1);
5046     const day = weekday[d.getDay()];
5047     const dt = d.getDate();
5048     const mt = monthly[d.getMonth()];
5049     const yr = d.getFullYear();
5050     const p = $("#cities").parent(".form-group")
5051   }
5052 
5053   function disabledSameDay() {
5054     let btnFirst = $("#deliveryDate").find("button:first-child")
5055     let getDay = new Date().getDay();
5056 
5057     
5058       
5059       if(getDay == 1 || getDay == 2 || getDay == 3 || getDay == 4 || getDay == 5){
5060         if(hour >= 14.00){
5061           btnFirst.attr("disabled", true)
5062         }
5063       } else if(getDay == 6){
5064         if(hour >= 16.00){
5065           btnFirst.attr("disabled", true)
5066         }
5067       } else if(getDay == 0){
5068         if(hour >= 16.00){
5069           btnFirst.attr("disabled", true)
5070         }
5071       }
5072       
5073     
5074   }
5075 
5076   function disabledays(date) {
5077     let ymd = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate();
5078     //if u have to disable a list of day
5079     let removeDays
5080     
5081     
5082     
5083         removeDays = ["2025-2-13", "2025-2-14"];
5084     
5085     if ($.inArray(ymd, removeDays) >= 0) {
5086       return [false];
5087     } else {
5088       let day = date.getDay();
5089       if(day == 0 && date.getDate() == 13 && date.getMonth() == 1){
5090           return [(day == 0),  ''];
5091       }
5092       
5093       if(day == 0){
5094         return [(day == 0),  ''];
5095       }
5096       
5097       
5098       return [(day != 0),  ''];
5099     }
5100   }
5101 
5102   /* Indonesian initialisation for the jQuery UI date picker plugin. */
5103   /* Written by Deden Fathurahman ([email protected]). */
5104   ( function( factory ) {
5105     if ( typeof define === "function" && define.amd ) {
5106 
5107       // AMD. Register as an anonymous module.
5108       define( [ "../widgets/datepicker" ], factory );
5109     } else {
5110 
5111       // Browser globals
5112       factory( jQuery.datepicker );
5113     }
5114   }( function( datepicker ) {
5115 
5116   datepicker.regional.id = {
5117     closeText: "Tutup",
5118     prevText: "&#x3C;mundur",
5119     nextText: "maju&#x3E;",
5120     currentText: "Today",
5121     monthNames: [ "January","February","March","April","May","Juny",
5122                   "July","August","September","October","November","December" ],
5123     monthNamesShort: [ "Jan","Feb","Mar","Apr","May","Jun",
5124                       "Jul","Agu","Sep","Oct","Nov","Dec" ],
5125     dayNames: [ "Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu" ],
5126     dayNamesShort: [ "Sun","Mon","Tue","Wed","Thu","Fri","Sat" ],
5127     dayNamesMin: [ "Mg","Sn","Sl","Rb","Km","jm","Sb" ],
5128     weekHeader: "Mg",
5129     dateFormat: "D, dd M",
5130     firstDay: 0,
5131     isRTL: false,
5132     showMonthAfterYear: false,
5133     yearSuffix: "" };
5134   datepicker.setDefaults( datepicker.regional.id );
5135 
5136   return datepicker.regional.id;
5137 
5138 } ) );
5139 
5140   function loadPopup() {
5141     $("#backgroundPopup").fadeIn("slow");
5142     $(".purchasePopup:not(.purchasePopupSpotify)").fadeIn("slow");
5143     const firstSection = $(".purchasePopup:not(.purchasePopupSpotify) .sectionPurchase").first()
5144     if(firstSection.hasClass("purchasePersonalize")) {
5145       if(productType !== '') {
5146         console.log("clarity event " + productType + ' personalize')
5147         window.clarity("event", `${productType} cardPersonalization`)
5148         // window.clarity("set", productType, `cardPersonalization - ${productDate}`)
5149       }
5150     } else if (firstSection.hasClass("sectionPurchaseBoard")) {
5151         console.log("clarity event " + productType + ' personalizeBoard')
5152         window.clarity("event", `${productType} personalizeBoard`)
5153         // window.clarity("set", productType, `personalizeBoard - ${productDate}`)
5154     }
5155     firstSection.removeClass("hide")
5156     
5157     // Auto-trigger addon loading when addon section becomes visible
5158     setTimeout(function() {
5159       const addonSection = $(".purchaseAddon")
5160       if(addonSection.length > 0 && !addonSection.hasClass("hide")) {
5161         if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) {
5162           $("[data-addon=upsell-all]").trigger("click")
5163         }
5164       }
5165     }, 200)
5166   }
5167 
5168   function disablePopup() {
5169     $("#backgroundPopup").fadeOut("slow");
5170     $(".purchasePopup").fadeOut("slow");
5171     $("#popupCart").fadeOut("slow");
5172   }
5173 
5174     function scrollTo(parent, div, dur) {
5175       $(parent).animate({
5176         scrollTop: $(div).offset().top
5177       }, dur);
5178     }
5179 
5180   function loadPopupPersonalize() {
5181     const div = "#purchaseProduct"
5182     const p = "html, body, .product-meta"
5183     $("p.error").remove()
5184     loadItemOccasion($("[data-occassion]").eq(0), "greeting-card-all")
5185     const isCity = $("#cities[required]")
5186     const isDate = $("#propDeliveryDate[required]")
5187     const isTime = $("#propDeliveryTime[required]")
5188     // loadPopup()
5189     if(isCity.val() !== '' && isDate.val() !== '' && isTime.val() !== '') {
5190       loadPopup()
5191     }
5192     if(isCity.val() == '') {
5193       isCity.parent(".row").append("<p class='error'>Choose delivery city</p>")
5194       scrollTo(p, div, 500)
5195     }
5196     if(isDate.val() == '') {
5197       isDate.parents(".row").append("<p class='error'>Choose delivery date</p>")
5198       scrollTo(p, div, 500)
5199     }
5200     if(isTime.val() == '') {
5201       isTime.parents(".row").append("<p class='error'>Choose delivery time</p>")
5202       scrollTo(p, div, 500)
5203     }
5204   }
5205 
5206   function quantityCounter() {
5207     $(document).on("click", ".item-card.selected .q_up", function () {
5208       var C = $(this).attr("data-id"),
5209           S =
5210               parseInt(
5211                   $(this)
5212                       .siblings(".quantity-cart-" + C)
5213                       .val()
5214               ) + 1;
5215       $(this).attr("data-quantity", S),
5216           $(this)
5217               .siblings(".quantity-cart-" + C)
5218               .val(S);
5219     }),
5220     $(document).on("click", ".item-card.selected .q_down", function () {
5221         var C = $(this).attr("data-id"),
5222             S = parseInt(
5223                 $(this)
5224                     .siblings(".quantity-cart-" + C)
5225                     .val()
5226             );
5227         0 < S && $(this).attr("data-quantity", S - 1),
5228             0 < S &&
5229                 $(this)
5230                     .siblings(".quantity-cart-" + C)
5231                     .val(S - 1);
5232     });
5233   }
5234 
5235   quantityCounter()
5236 
5237   const itemAddon = $(".item-card").length
5238   const nofree = $(".nofree").length
5239 
5240   const upsell = ''
5241   
5242   if(nofree === itemAddon) {
5243       // $("#itemAddons").html("<p>No Items available</p>")
5244   }
5245 
5246   $("#itemAddons .item-card").each(function(e){
5247       $("#itemAddons").attr("data-length", e)
5248   })
5249 
5250   $("[data-addon]").click(function(){
5251       
5252       
5253       
5254       const t = $(this)
5255       
5256       const data = t.data("addon")
5257       
5258       $("[data-addon]").removeClass("selected")
5259       t.addClass("selected")
5260       $.get(`https://outerbloom.com/collections/${data}/products.json`, function(data, status){
5261           const products = data.products
5262           const html = []
5263           for(let i = 0; i < products.length; i++) {
5264               const id = products[i].id
5265               const variantId = products[i].variants[0].id
5266               const img = products[i].images[0].src
5267               let img2 = img.split('.jpg')[0]
5268               const title = products[i].title
5269               const price = products[i].variants[0].price
5270               const tags = products[i].tags
5271               const qty = products[i].variants[0].available
5272               let type_upsell = ''
5273               if(tags.includes('upsell-item-standing')) {
5274                   type_upsell = 'standing'
5275               }
5276               console.log(type_upsell)
5277               if(type_upsell !== '') {
5278                   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}">
5279                       
5280                           <div class="card-image">
5281                               <img src="${img2}_150x.jpg" alt="${title}" width="" height="" />
5282                           </div>
5283                           <div class="card-meta">
5284                               <h5>${title}</h5>
5285                               <p>${price < 1 ? 'FREE' : rupiah.format(price)}</p>
5286                               <input id="card-${variantId}" type="hidden" name="" value="${variantId}">
5287                           </div>
5288                           <div class="card-qty">
5289                               <a data-quantity="1" type="submit" id="q_down-${variantId}" class="btn-qty-min q_down drawer-cart" data-id="${variantId}"><svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="12" height="2" viewBox="0 0 12 2" fill="none"><path d="M0 1.90869V0.908691H12V1.90869H0Z" fill="black"/></svg></a>  
5290                               <input maxlength="3" min="0" class="btn-qty text-center quantity-cart-${variantId}
5290" value="0" data-price=${price} name="quantity">
5291                               <a data-quantity="1" type="submit" class="btn-qty-plus q_up text-green drawer-cart" data-id="${variantId}"><svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="12" height="13" viewBox="0 0 12 13" fill="none">
5292 <path d="M0 6.87023V5.94715H5.53846V0.408691H6.46154V5.94715H12V6.87023H6.46154V12.4087H5.53846V6.87023H0Z" fill="black"/>
5293 </svg></a>   
5294                           </div>
5295                       </div>`
5296                   html.push(body)
5297               }
5298           }
5299           $("#itemAddons .row").html(html.length === 0 ? '<p>No Item available</p>' : html)
5300           $("#itemAddons").attr("data-length", products.length)
5301           // $('#itemAddons')[0].swiper.update();
5302       });
5303   })
5304 
5305   async function isAddon(){
5306     let ids = []
5307     $("#itemAddons .item-card.selected").each(function(i, e){
5308       const id = $(this).data("id")
5309       ids.push(id)
5310     })
5311     console.log(ids)
5312     return ids
5313   }
5314   
5315   $("#itemAddons").delegate(".item-card > div:not(.card-qty)", "click", async function(){
5316     const t = $(this).parent()
5317     const id = t.data("id")
5318     const btn =  t.parents(".purchaseAddon").find(".next-purchase-button")
5319     t.toggleClass("selected");
5320     //$(this).next("input").toggleAttr('name', 'id[]');
5321     if (t.hasClass('selected')) {
5322         t.find("input").val(1)
5323         t.find("input").attr('name', 'id[]');
5324     } else {
5325         t.find("input").val(0)
5326         t.find("input").removeAttr('name');
5327     }
5328     $("#properties-addons").val(addons)
5329     const is = await isAddon()
5330     if(is.length === 0) {
5331       btn.text("continue without add-ons")
5332       return
5333     }
5334     if(is.includes(8835692069079)) {
5335       btn.text("personalize acrylic frame")
5336     } else {
5337       btn.text("Continue")
5338     }
5339       
5340   })
5341 
5342   async function myAddon(data) {
5343     const c = $(".addonsPurchase .addons")
5344     let items = []
5345     
5346     const spotifyAddons = $(".spotifyAddons").find("[data-index]")
5347     // if(spotifyAddons.length > 0) {
5348     //   $(spotifyAddons).each(function(i, e){
5349     //     const spotifyLink = $(this).find(".spotifyLink").val()
5350     //     const spotifySong = $(this).find(".spotifySong").val()
5351     //     const spotifyArtist = $(this).find(".spotifyArtist").val()
5352     //     const spotifyFotoAddon = $(this).find(".resultPhotoSpotify").val()
5353     //     if(spotifyLink !== '') {
5354     //       spotifyAddon = `<div class="addon-item" data-id="46067682607319" data-qty="1">
5355     //         <div class="addon-itm-img">
5356     //           <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"/>
5357     //         </div>
5358     //         <div class="addon-itm-title">
5359     //           <span>[US] Outerbloom Acrylic Frame 4R</span>
5360     //         </div>
5361     //         <div class="addon-itm-line-total">
5362     //           <span>Rp 99.000</span>
5363     //         </div>
5364     //       </div>
5365     //       <div class="propsAddonSpotify row m-0">
5366     //         <div class="col-12 col-lg-2"></div>
5367     //           <div class="col-12 col-lg-10">
5368     //             <p>
5369     //               <span>spotify link</span>
5370     //               <span class="spotifyLinkAddon">${spotifyLink}</span>
5371     //             </p>
5372     //             <p>
5373     //               <span>uploaded photo</span>
5374     //               <span class="spotifyFotoAddon">${spotifyFotoAddon}</span>
5375     //             </p>
5376     //             <p>
5377     //               <span>song / playlist name</span>
5378     //               <span class="spotifySongAddon">${spotifySong}</span>
5379     //             </p>
5380     //             <p>
5381     //               <span>artist name</span>
5382     //               <span class="spotifyArtistAddon">${spotifyArtist}</span>
5383     //             </p>
5384     //           </div>
5385     //       </div>`
5386     //       items.push(spotifyAddon)
5387     //     }
5388     //   })
5389     // }
5390     for(let i = 0; i < data.length; i++) {
5391       if(data[i].title !== '[US] Outerbloom Acrylic Frame 4R' ) {
5392         const img = data[i].image
5393         const title = data[i].title
5394         const qty = data[i].qty
5395         const price = data[i].price
5396         const total = Number(qty) * Number(price)
5397         let addons = `<div class="addon-item" data-id="${data[i].id}" data-qty="${qty}">
5398               <div class="addon-itm-img">
5399                 <img src="${img}" alt="" width="70"/>
5400               </div>
5401               <div class="addon-itm-title">
5402                 <span>${title}</span>
5403               </div>
5404               <div class="addon-itm-line-price">
5405                 <span>${rupiah.format(price)}</span>
5406                 ${data[i].title == '[US] Outerbloom Acrylic Frame 4R' ? '' : `<span>x${qty}</span>`}
5407               </div>
5408               <div class="addon-itm-line-total">
5409                 <span>${rupiah.format(total)}</span>
5410               </div>
5411             </div>`
5412           items.push(addons)
5413       }
5414     }
5415     c.html(items)
5416     const parent = $(".purchaseAddon")
5417     const next = parent.next(".sectionPurchase")
5418     parent.addClass("hide")
5419     next.removeClass("hide")
5420     // if(items2.length === 0) return $("#popupCart").addClass("no-addon-cart")
5421     // $(".itemAddonCart").find("h4").text(`add-ons (${items2.length})`)
5422   }
5423 
5424   async function listAddon() {
5425     const data = $("#itemAddons").find(".selected")
5426     let ids = []
5427     $(data).each(function(){
5428       const id = $(this).data("variant")
5429       const image = $(this).find(".card-image img").attr("src")
5430       const title = $(this).find(".card-meta h5").text()
5431       const qty = $(this).find(".card-qty input").val()
5432       const price = $(this).find(".card-qty input").data("price")
5433       ids.push({
5434         id: Number(id),
5435         image,
5436         title,
5437         qty,
5438         price
5439       })
5440     })
5441     myAddon(ids)
5442   }
5443 
5444   async function customSpotify(idx, length, type){
5445     let isCard = false
5446     
5447     let p = $(".purchasePopupSpotify")
5448     const preLink = $(".spotifyLinkFirst").val()
5449     $("[data-index]").hide()
5450     p.find(".headerPurchase h3").text(`personalize spotify photo print${length > 1 ? ` - ${idx}` : ''}`)
5451     p.find(".regulerAddons, .purchase-button").hide()
5452     p.find(".spotifyAddons").show()
5453     
5454     const data = await trackUrl(preLink)
5455     
5456     const html = `<div class="row" data-index=${idx} data-length=${length}><div class="col-12 col-lg-6"><div class="form-vertical position-relative"><div class="form-group mb-4"><h4>upload photo</h4><div class=uploadResult><label class=btn for=uploadPhotoSpotify><svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="13" height="11" viewB
5456ox="0 0 13 11" fill="none">
5457 <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"/>
5458 </svg><span>Upload your file</span></label></div><input class="uploadPhotoSpotify form-control d-none" accept=image/* type=file><input class="resultPhotoSpotify" type="hidden"></div><div class="form-group mb-5"><h4>Add your Spotify link here</h4> <input class="spotifyLink2 form-control spotifyLink" value="${preLink}" placeholder=https://open.spotify.com/ ></div><div class="form-group mb-4 text-left"><label class=checkbox for=isCustomMessage><span>Personalized Message</span><span class=checkmark></span></label></div><div class="form-group mb-4 form-personalize"><label class="text-left d-block mb-2 text-uppercase"for=spotifySong>Song / playlist name</label> ${data?.song ? `<input class="form-control spotifySong" value="${data?.song}">` : '<input class="form-control spotifySong" value="">'}</div><div class="form-group form-personalize"><label class="text-left d-block mb-2 text-uppercase"for=spotifyArtist>Artist name</label> ${data?.artist ? `<input class="form-control spotifyArtist" value="${data?.artist}">` : '<input class="form-control spotifyArtist" value="">'}</div><div class=btn-action><button class="back-spotify"><svg fill=none height=14 viewBox="0 0 15 14"width=15 xmlns=https://www.cabosanfrancisco.ch/image/logo-ompong188.webp><path d="M14.5799 7.41992L2.32992 7.41992L7.57992 12.6699L6.91992 13.4199L0.419922 6.91992L6.91992 0.419922L7.57992 1.16992L2.32992 6.41992L14.5799 6.41992V7.41992Z"fill=black /></svg> <span>Back</span></button><button data-type="${isCard ? 'card' : ''}" ${isCard ? '' : 'id=addtocart-card'} class="text-uppercase btn w-100${type == 'addon' && idx == length ? ' finished' : ' no-addon'}" disabled>${isCard ? 'Continue Personalizing' : 'add to cart'}</button></div></div></div><div class="col-12 col-lg-6 columnRight"><div class=frame-spotify><div class=frameImage><div class=frameImageUploaded><svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="13" height="11" viewB
5458ox="0 0 13 11" fill="none">
5459 <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"/>
5460 </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>`
5461     // console.log(html)
5462     
5463     $(".spotifyAddons").append(html)
5464     
5465     $(`[data-index=${idx}]`).show()
5466     
5467     if (preLink !== '') {
5468       $(".btn-action .btn").attr("disabled", false)
5469     } else {
5470       $(".btn-action .btn").attr("disabled", true)
5471     }
5472 
5473     return html
5474     
5475   }
5476 
5477   $(".spotifyLinkFirst").keyup(async function(){
5478     const v = $(this).val()
5479     if(v.includes('spotify:user:spotify')) {
5480       const correct = v.split('user:spotify:')[1]
5481       console.log(correct, 'BNER')
5482       $(this).val(correct)
5483       return
5484     }
5485     if(v.includes("spotify:") || v.includes("https://open.spotify.com/")){
5486       const data = await trackUrl(v)
5487       if(!data || !data.status) {
5488         $(this).parent().addClass("error")
5489         // $(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>`)
5490         $("#personalizeBtnSpotify .btn").attr("disabled", true)
5491         return
5492       }
5493       $(this).parent().removeClass("error")
5494       // $(this).parent().remove("txt-error")
5495       $("#personalizeBtnSpotify .btn").attr("disabled", false)
5496     } else {
5497       $("#personalizeBtnSpotify .btn").attr("disabled", true)
5498     }
5499   })
5500 
5501   $(".purchaseAddon").delegate(".next-addon", "click", function(){
5502     const parent = $(this).parents(".purchaseAddon")
5503     const next = parent.next(".sectionPurchase")
5504     if(next.hasClass("purchaseAddress")) {
5505       if(productType !== '') {
5506         console.log("clarity event " + productType + ' purchaseDelivery')
5507         window.clarity("event", `${productType} purchaseDelivery`)
5508         // window.clarity("set", productType, `purchaseDelivery - ${productDate}`)
5509       }
5510     }
5511     const data = $("#itemAddons").find(".selected")
5512     const length = $(".quantity-cart-46067682607319").val()
5513     const checked = data.length;
5514     if(checked > 0) {
5515       if(length > 0) {
5516         $(".purchaseAddon").addClass("purchaseAddonSpotify")
5517         customSpotify(1, length, 'addon')
5518       } else {
5519         listAddon()
5520       }
5521     } else {
5522       parent.addClass("hide")
5523       next.removeClass("hide")
5524     }
5525   })
5526 
5527   $("#personalizeBtnSpotify .btn").click(async function(){
5528     const isCity = $("#cities[required]")
5529     const isDate = $("#propDeliveryDate[required]")
5530     if((isDate.length > 0 && isCity.length > 0) && (isCity.val() === '' || isDate.val() === '')) {
5531       alert('Please choose Delivery City & Delivery Date')
5532       return
5533     }
5534     const data = await customSpotify(1, 1, 'product')
5535     if(data) {
5536       $("#backgroundPopup").fadeIn("slow");
5537       $(".purchasePopupSpotify").fadeIn("slow");
5538 
5539       if(productType !== '') {
5540         console.log("clarity event " + productType + ' spotify')
5541         window.clarity("event", `${productType} spotify`)
5542         // window.clarity("set", productType, `purchaseDelivery - ${productDate}`)
5543       }
5544     }
5545   })
5546 
5547   function formatBytes(bytes, decimals = 2) {
5548     if (!+bytes) return '0 Bytes'
5549 
5550     const k = 1024
5551     const dm = decimals < 0 ? 0 : decimals
5552     const sizes = ['B', 'KB', 'MB']
5553 
5554     const i = Math.floor(Math.log(bytes) / Math.log(k))
5555 
5556     return `${parseFloat((bytes / Math.pow(k, i)).toFixed(dm))} ${sizes[i]}`
5557   }
5558 
5559   async function trackUrl(link){
5560     try {
5561       let trackId = link.split('/').pop().split('?')[0];
5562       let type = ''
5563       if(link.includes("spotify:")) {
5564         const uri = link.split('spotify:')[1]
5565         trackId = uri.split(':')[1]
5566         type = uri.split(':')[0] + 's'
5567       } else {
5568         if(link.match('track')){
5569           type = 'tracks'
5570         } else if(link.match('playlist')) {
5571           type = 'playlists'
5572         } else if(link.match('artist')) {
5573           type = 'artists'
5574         } else if(link.match('album')) {
5575           type = 'albums'
5576         }
5577       }
5578       console.log(`${host}/api/spotify/${type}/${trackId}`)
5579       const data = await getFetch(`${host}/api/spotify/${type}/${trackId}`)
5580       console.log(data, 'DATA')
5581       const song = data?.data?.name
5582       const artist = data?.data?.artist
5583       return {
5584         song, artist, type, trackId, status: data.status
5585       }
5586     } catch(err) {
5587       console.log(err)
5588     }
5589   }
5590 
5591   $(".spotifyAddons").delegate(".uploadPhotoSpotify", "change", async function(){
5592     const parent = $(this).parents("[data-index]")
5593     const preview = parent.find(".previewImage")
5594     const file = $(this)[0].files[0];
5595     if (file) {
5596         const reader = new FileReader();
5597         reader.onload = async function(e) {
5598           parent.find(".uploadResult label").hide()
5599           parent.find(".uploadedResult").remove()
5600           parent.find(".uploadResult").append(`<div class="uploadedResult d-flex" style="justify-content: space-between">
5601           <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>
5602           <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;">
5602<svg fill="none" height="11" viewBox="0 0 10 11" width="10" xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp">
5603   <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 />
5604 </svg>
5605 </span></div></div>`)
5606           parent.find(".frameImageUploaded svg").hide()
5607           parent.find(".frameImage").addClass("uploaded")
5608           preview.attr("src", e.target.result);
5609           preview.show();
5610           let formData = new FormData(); 
5611           formData.append("file", file);
5612           const response = await fetch(`${host}/api/upload?name=${file.name}&type=image/jpeg&r=${Date.parse(new Date)}`, {
5613             method: "POST", 
5614             body: formData
5615           })
5616           const result = await response.json();
5617           if(result){
5618             parent.find(".resultPhotoSpotify").val(result.url)
5619           }
5620         }
5621         
5622         reader.readAsDataURL(file);
5623     } else {
5624         preview.hide();
5625     }
5626   });
5627 
5628   $(".spotifyAddons").delegate(".uploadResult", "click", function(){
5629     $(this).next("input[type=file]").trigger("click")
5630   })
5631 
5632   $(".spotifyAddons").delegate(".changeUpload", "click", function(){
5633     $(this).parents("input[type=file]").trigger("click")
5634   })
5635 
5636   $(".spotifyAddons").delegate(".removeUpload", "click", function(){
5637     const parent = $(this).parents("[data-index]")
5638     parent.find(".uploadPhotoSpotify").val("")
5639     parent.find(".uploadResult label").show()
5640     parent.find(".uploadedResult").remove()
5641     parent.find(".frameImageUploaded svg").show()
5642     parent.find(".previewImage").hide()
5643     parent.find(".frameImage").removeClass("uploaded")
5644   })
5645 
5646   $(".spotifyAddons").delegate("label.checkbox", "click", function(){
5647     const parent = $(this).parents("[data-index]")
5648     parent.toggleClass("checked")
5649   })
5650 
5651   $(".spotifyAddons").delegate(".spotifyLink", "change", async function(){
5652     const parent = $(this).parents("[data-index]")
5653     const link = $(this).val()
5654     const data = await trackUrl(link)
5655 
5656     console.log(data)
5657 
5658     if(data.song) {
5659       parent.find(".spotifySong").val(data.song)
5660       parent.find(".spotifyData").find("h3").text(data.song)
5661     }
5662     if(data.artist) {
5663       parent.find(".spotifyArtist").val(data.artist)
5664       parent.find(".spotifyData").find("p").text(data.artist)
5665     }
5666     parent.find(".spotifyCode img").attr("src", `https://scannables.scdn.co/uri/plain/png/FFFFFF/black/640/spotify:${data.type.slice(0, -1)}:${data.trackId}`)
5667     // https://scannables.scdn.co/uri/plain/png/FFFFFF/black/640/spotify:track:1er51HCEBhIAtoEemKuC3M
5668     if (data.status === true) {
5669       parent.find(".btn-action .btn").attr("disabled", false)
5670     } else {
5671       parent.find(".btn-action .btn").attr("disabled", true)
5672     }
5673   })
5674   
5675   $(".spotifyAddons").delegate(".spotifySong", "keyup", async function(){
5676     const parent = $(this).parents("[data-index]")
5677     const v = $(this).val()
5678     parent.find(".spotifyData h3").text(v)
5679   })
5680 
5681   $(".spotifyAddons").delegate(".spotifyArtist", "keyup", async function(){
5682     const parent = $(this).parents("[data-index]")
5683     const v = $(this).val()
5684     parent.find(".spotifyData p").text(v)
5685   })
5686 
5687   $(".spotifyAddons").delegate(".btn-action .btn:not(.no-addon)", "click", async function(){
5688     const parent = $(this).parents("[data-index]")
5689     const length = parent.data("length")
5690     const index = parent.data("index")
5691     const indexNext = Number(index) + 1
5692     customSpotify(indexNext, length, 'addon')
5693   })
5694 
5695   
5696   $(".spotifyAddons").delegate(".btn-action .btn.finished", "click", async function(){
5697     const parent = $(this).parents(".purchaseAddon")
5698     const next = parent.next(".sectionPurchase")
5699     parent.addClass("hide")
5700     next.removeClass("hide")
5701     next.find(".purchase-button").show()
5702     listAddon()
5703   })
5704 
5705   $(".spotifyAddons").delegate(".back-spotify", "click", async function(){
5706     const t = $(this).parents("[data-index]")
5707     const parent = $(this).parents(".sectionPurchase")
5708     const current = t.data("index")
5709     const prevCurrent = Number(current) - 1
5710     if(current == 1) {
5711       parent.removeClass("purchaseAddonSpotify")
5712       parent.find(".purchase-button").show()
5713       parent.find(".headerPurchase h3").text("Make It More Special with Add-Ons!")
5714       $(".spotifyAddons").empty()
5715       $(".regulerAddons").show()
5716       return
5717     }
5718     t.hide()
5719     t.prev("[data-index]").show()
5720     t.remove()
5721     parent.find(".headerPurchase h3").text(`personalize spotify photo print - ${prevCurrent}`)
5722   })
5723 
5724   $("#personalizeBtn .btn").click(async function() {
5725     loadPopupPersonalize()
5726   });
5727 
5728   $(".sectionPurchaseSpotify").delegate(".btn[data-type=card]", "click", function(){
5729     $(".sectionPurchaseSpotify").hide()
5730     loadPopupPersonalize()
5731   })
5732 
5733   $(".close-purchase-popup").click(function() {
5734       disablePopup();
5735   });
5736   $("#backgroundPopup").click(function() {
5737       // disablePopup();
5738   });
5739 
5740   $("#popupCart .close-purchase-popup").click(function() {
5741       location.reload()
5742   });
5743 
5744   $('#popupCart').on('hide.bs.modal', function (e) {
5745     location.reload()
5746   })
5747 
5748   $(".next-card").click(function(){
5749     const parent = $(this).parents(".sectionPurchase")
5750     const next = parent.next(".sectionPurchase")
5751     parent.addClass("hide")
5752     next.removeClass("hide")
5753   })
5754 
5755   $(".back-purchase-button").click(function(){
5756     const parent = $(this).parents(".sectionPurchase")
5757     const prev = parent.prev(".sectionPurchase")
5758     parent.addClass("hide")
5759     prev.removeClass("hide")
5760   })
5761   
5762   $(document).keypress(function(e) {
5763       if (e.keyCode == 27 && popupStatus == 1) {
5764           disablePopup();
5765       }
5766   });
5767   
5768   const parentImg = $(".case-img-preview")
5769   const parentVid = $(".case-video-preview")
5770   
5771   function readURL(input) {
5772     if (input.files && input.files[0]) {
5773       let reader = new FileReader();
5774 
5775       let type = 'image/jpeg'
5776       const size = input.files[0].size
5777       if(input.files[0].type.match('video/')){
5778         type = 'video/mp4'
5779         if(size > 15728640) {
5780           alert('File size exceeds maximum limit 15 MB')
5781           return
5782         }
5783       } else {
5784         if(size > 5242880) {
5785           alert('File size exceeds maximum limit 5 MB')
5786           return
5787         }
5788       }
5789 
5790       reader.onload = function (e) {
5791         $(".nextBtn").attr("disabled", true)
5792         if(type === 'image/jpeg') {
5793           
5794             $('.placeholder-image').hide();
5795             $('.preview-image').show()
5796             $('.preview-image').attr('src', e.target.result);
5797           
5798         } else {
5799           // parentVid.find(".ajax-loader").show();
5800           $(".steps-card-preview").addClass("loading")
5801         }
5802       }
5803 
5804       
5805 
5806       reader.readAsDataURL(input.files[0]);
5807     }
5808   }
5809 
5810   async function readURLPapan(input) {
5811     if (input.files && input.files[0]) {
5812       let reader = new FileReader();
5813 
5814       reader.onload = function (e) {
5815         $('.btn-upload-papan').siblings('label').hide();
5816         $('.btn-upload-papan img').attr('src', e.target.result);
5817         $('.btn-upload-papan img').show();
5818         $('.svgLogoPapan').hide();
5819       }
5820       
5821       const type = 'image/jpeg'
5822       const name = `logo-8144957800663-${Date.parse(new Date())}`
5823 
5824       let formData = new FormData(); 
5825       formData.append("file", input.files[0]);
5826       const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, {
5827         method: "POST", 
5828         body: formData
5829       })
5830       const result = await response.json();
5831       if(result) {
5832         const url = result.url
5833         $("[data-properties=papan-logo]").val(url)
5834       }
5835 
5836       reader.readAsDataURL(input.files[0]);
5837     }
5838   }
5839 
5840   async function readURLAddress(input) {
5841     console.log(input, 'readURLAddress')
5842     if (input.files && input.files[0]) {
5843       let reader = new FileReader();
5844 
5845       reader.onload = function (e) {
5846         $('.photo-address').attr('src', e.target.result);
5847         $('.photo-address').show();
5848       }
5849       
5850       const type = 'image/jpeg'
5851       const name = input.files[0].name?.split('.')[0]
5852 
5853       let formData = new FormData(); 
5854       formData.append("file", input.files[0]);
5855       const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, {
5856         method: "POST", 
5857         body: formData
5858       })
5859       const result = await response.json();
5860 
5861       reader.readAsDataURL(input.files[0]);
5862 
5863       return result
5864     }
5865   }
5866 
5867   
5868 
5869   
5870   async function addToCartUang() {
5871     var productAddOnId1 = 42122101162199;
5872     var productAddOnId2 = 42122101194967;
5873     var product_id = 8144957800663
5874     const data = {
5875       items: [
5876           {
5877               quantity: $("#Quantity-" + productAddOnId1).val(),
5878               id: productAddOnId1,
5879               "properties": { "Time": $("#properties-time").val() }
5880           },
5881           {
5882               quantity: $("#Quantity-" + productAddOnId2).val(),
5883               id: productAddOnId2,
5884               "properties": { "Time": $("#properties-time").val() }
5885           }
5886       ]
5887     }
5888     await fetch(window.Shopify.routes.root + 'cart/add.js', {
5889       method: 'POST',
5890       headers: {
5891         'Content-Type': 'application/json'
5892       },
5893       body: JSON.stringify(data)
5894     })
5895     .then(response => {
5896       console.error('Sukses Buket Uang:', response);
5897       $(".form-flower").submit()
5898     })
5899     .catch((error) => {
5900       console.error('Error Buket Uang:', error);
5901       $(".form-flower").submit()
5902     });
5903   }
5904   
5905   async function saveCard(){
5906     let isCard = true
5907     const kartu_penerima = $("[data-properties=penerima]").val() !== '' ? $("[data-properties=penerima]").val() : ''
5908     const kartu_pengirim = $("[data-properties=pengirim]").val() !== '' ? $("[data-properties=pengirim]").val() : ''
5909     const kartu_ucapan = $("[data-properties=ucapan]").val() !== '' ? $("[data-properties=ucapan]").val() : ''
5910     const foto = $("#properties-photo").val()
5911     const video = $("#properties-video").val()
5912     const data = JSON.stringify({
5913       "id": qrID, 
5914       "penerima": $("#properties-nama-penerima").val(), 
5915       "kartu_penerima": kartu_penerima, 
5916       "kartu_ucapan": kartu_ucapan, 
5917       "kartu_pengirim": kartu_pengirim, 
5918       "foto": foto,
5919       "video": video, 
5920       "productId": "8144957800663", 
5921       "order_name": "", 
5922       "status": "Cart"
5923     })
5924 
5925     
5926   }
5927 
5928   async function additem(items){
5929     try {
5930       let formData = items
5931       if(items?.length) {
5932         formData = {
5933            'items': items
5934         };
5935       }
5936   
5937       const add = await fetch(window.Shopify.routes.root + 'cart/add.js', {
5938         method: 'POST',
5939         headers: {
5940           'Content-Type': 'application/json',
5941           'X-Requested-With':'xmlhttprequest' /* XMLHttpRequest is ok too, it's case insensitive */
5942         },
5943         body: JSON.stringify(formData)
5944       })
5945   
5946       const data = await add.json();
5947       return data
5948     } catch(err){
5949       console.log('Error additem', err)
5950     }
5951   }
5952 
5953   async function addons(){
5954     let items = []
5955     $(".addon-item").each(function(){
5956       const p = $(this)
5957       const props = p.next(".propsAddonSpotify")
5958       const id = $(this).data("id")
5959       const quantity = $(this).data("qty")
5960       const propId = $("#properties-time").val()
5961       let properties = {}
5962       if(id === 46067682607319) {
5963         const link = props.find(".spotifyLinkAddon").text()
5964         const photo = props.find(".spotifyFotoAddon").text()
5965         const song = props.find(".spotifySongAddon").text()
5966         const artist = props.find(".spotifyArtistAddon").text()
5967         properties = {
5968           id: propId,
5969           "Spotify Link": link !== '' ? link : '-',
5970           "Spotify Photo": photo !== '' ? photo : '-',
5971           "Spotify Song": song !== '' ? song : '-',
5972           "Spotify Artist": artist !== '' ? artist : '-',
5973           type: 'addon'
5974         }
5975       } else {
5976         properties = { 
5977           "id": propId, 
5978           "type": "addon"
5979         }
5980       }
5981       items.push({
5982         id, 
5983         quantity, 
5984         properties
5985       })
5986     })
5987     return items
5988   }
5989 
5990   async function propItems() {
5991     let props = {}
5992     $("[data-properties]").each(function(e){
5993       let elementType = this.tagName;
5994       const k = $(this).data("properties")
5995       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') {
5996         const v = elementType === 'SELECT' ? $(this).find(":selected").val() : $(this).val();
5997         if(v !== '') {
5998           props[k] = v?.replace(/[\s\n]/g, '');
5999         }
6000       }
6001     })
6002     return props
6003   }
6004 
6005   async function showPopupCart(items){
6006     if(productType !== '') {
6007       console.log("clarity event " + productType + ' completeOrder')
6008       window.clarity("event", `${productType} completeOrder`)
6009       // window.clarity("set", productType, `completeOrder - ${productDate}`)
6010     }
6011     $("#popupCart").show()
6012     
6013       $(".propDeliveryCity").text($("#cities").val())
6014       $(".propDeliveryDate").text($("#propDeliveryDate").val())
6015       $(".propDeliveryTime").text($("#propDeliveryTime").val())
6016       $(".propDeliveryName").text($("[data-properties=nama-penerima]").val())
6017       $(".propDeliveryAddress").text($("[data-properties=alamat-penerima]").val())
6018       $(".propDeliveryPhone").text($("[data-properties=telepon-penerima]").val())
6019       $(".propDeliveryProv").text($("#province").val())
6020       $(".propDeliveryZip").text($("#zip").val())
6021       
6022     
6023 
6024     const addons = []
6025     if(items && items.length > 0) {
6026       for(let i = 1; i < items.length; i++) {
6027         const spotifyLink = items[i].properties['Spotify Link']
6028         const spotifyPhoto = items[i].properties['Spotify Photo']
6029         const spotifySong = items[i].properties['Spotify Song']
6030         const spotifyArtist = items[i].properties['Spotify Artist']
6031         const price = items[i].price / 100
6032         const props = spotifyLink ? `<div class="propsAddonCart row m-0">
6033                   <div class="col-12 col-lg-2"></div>
6034                   <div class="col-12 col-lg-10">
6035                     <p>
6036                       <span>spotify link</span>
6037                       <span>${spotifyLink}</span>
6038                     </p>
6039                     <p>
6040                       <span>Upload Photo</span>
6041                       <span>${spotifyPhoto}</span>
6042                     </p>
6043                     <p>
6044                       <span>song / playlist name</span>
6045                       <span>${spotifySong}</span>
6046                     </p>
6047                     <p>
6048                       <span>artist name</span>
6049                       <span>${spotifyArtist}</span>
6050                     </p>
6051                   </div>
6052                 </div>` : '';
6053         addons.push(`<div class="row m-0">
6054                   <div class="imgAddonCart col-2">
6055                     <img
6056                       width="43"
6057                       src="${items[i].image}"
6058                       alt=""
6059                     >
6060                   </div>
6061                   <div class="imgAddonTitlePrice col-10 align-self-center">
6062                     <div class="row justify-content-between m-0">
6063                       <div class="col-12 col-lg-8">
6064                         <h5>${items[i].title}</h5>
6065                       </div>
6066                       <div class="col-12 col-lg-4 text-lg-right">
6067                         <span>${rupiah.format(price)}</span>
6068                       </div>
6069                     </div>
6070                   </div>
6071                 </div>${props}`)
6072       }
6073     }
6074     // console.log(addons)
6075     if(addons.length === 0) {
6076       $(".itemAddonCart").hide()
6077       return
6078     }
6079     $(".toggleAddonCart h4").text(`add-ons (${items.length - 1})`)
6080     $(".wrapperItemAddonCart").html(addons)
6081   }
6082 
6083   const money = (money) => {
6084       return new Intl.NumberFormat('id-ID',
6085           { style: 'currency', currency: 'IDR', minimumFractionDigits: 0 }
6086       ).format(money);
6087   }
6088 
6089   async function showNoteMoney() {
6090     let qty50k = $("[data-properties='Uang 50k']").val()
6091     let qty100k = $("[data-properties='Uang 100k']").val()
6092     const total50k = Number(qty50k) * 50000
6093     const total100k = Number(qty100k) * 100000
6094     const total_all = total50k + total100k
6095     $(".prop50k").html(`<span>${qty50k} Lembar: <strong class="pl-1">${money(total50k)}</strong></span>`)
6096     $(".prop100k").html(`<span>${qty100k} Lembar: <strong class="pl-1">${money(total100k)}</strong></span>`)
6097     $(".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://www.cabosanfrancisco.ch/coffee/" target="_blank" style="text-decoration: underline;
6097 color: #8d3f2d">Customer Service</a> to confirm with proof of payment.</p>`)
6098   }
6099 
6100   async function removeImage() {
6101     const data = JSON.stringify({
6102       "ID": $("#properties-properties-qrId").val(), 
6103       "Kartu Nama Penerima": $("#properties-kartu-nama-penerima").val(), 
6104       "Kartu Nama Pengirim": $("#properties-kartu-nama-pengirim").val(), 
6105       "Kartu Ucapan": $("[data-properties=ucapan]").val(), 
6106       "Nama Penerima": $("#properties-nama-penerima").val(), 
6107       "Order Number":"",
6108       "Status":"Product", 
6109       "Foto": "", 
6110       "Media": $("#properties-video").val(), 
6111       "Image": "8144957800663"
6112     })
6113     const remove = updateCard(data)
6114     if(remove) {
6115       $(this).hide()
6116       $("#properties-photo").val("-")
6117       $(".placeholder-image").show()
6118       $(".preview-image").attr("src", "")
6119     }
6120   }
6121 
6122   async function removeVideo() {
6123     const data = JSON.stringify({
6124       "ID": $("#properties-properties-qrId").val(), 
6125       "Kartu Nama Penerima": $("#properties-kartu-nama-penerima").val(), 
6126       "Kartu Nama Pengirim": $("#properties-kartu-nama-pengirim").val(), 
6127       "Kartu Ucapan": $("[data-properties=ucapan]").val(), 
6128       "Nama Penerima": $("#properties-nama-penerima").val(), 
6129       "Order Number":"",
6130       "Status":"Product", 
6131       "Foto": $("#properties-photo").val(), 
6132       "Media": "", 
6133       "Image": "8144957800663"
6134     })
6135     const remove = updateCard(data)
6136     if(remove) {
6137       $("#properties-video").val("-")
6138       $(this).find("img").hide()
6139       $(this).hide()
6140       $(this).prev("p").text("Add video to make it more special (optional)")
6141       $("#label-input-video").show()
6142       $("#label-input-video span").text("Upload Video")
6143       $(".case-video-preview p span").remove()
6144     }
6145   }
6146 
6147   async function loadItemOccasion(t, occasion) {
6148     const name = occasion?.replace('greeting-card-', '')
6149     $("#kartu-ucapan").val("")
6150     $("[data-occassion]").removeClass("selected")
6151     $("[data-properties=ucapan]").val("")
6152     $("#save-card").attr("disabled", true)
6153     t.addClass("selected")
6154     $("#show_note").attr("data-card-occassion", name)
6155     $.get(`https://outerbloom.com/collections/${occasion}/products.json`, function(data, status){
6156         const products = data.products
6157         const html = []
6158         for(let i = 0; i < products.length; i++) {
6159             const id = products[i].id
6160             const variantId = products[i].variants[0].id
6161             const img = products[i].images[0].src
6162             const title = products[i].title
6163             const price = products[i].variants[0].price
6164             const qty = products[i].variants[0].inventory_quantity
6165             const body = `<div class="item-card${price < 1 ? ' free' : ' nofree'}${i === 0 ? ' selected' : ''}" data-id=${id}>
6166                 <label for="card-${variantId}"></label>
6167                     <div class="card-image">
6168                         <img src="${img}" alt="${title}" width="" height="" />
6169                     </div>
6170                     <div class="card-meta text-center">
6171                         <h5>${title}</h5>
6172                         <p>${price < 1 ? 'FREE' : rupiah.format(price)}</p>
6173                         <input id="card-${variantId}" type="radio" name="id" value="${variantId}" data-price="${price}">
6174                     </div>
6175                 </div>`
6176             html.push(body)
6177         }
6178         const withoutCard = `<div class="item-card item-without-card">
6179                 <label for="card-0"></label>
6180                     <div class="card-image">
6181                         <img src="https://cdn.shopify.com/s/files/1/1589/6833/t/129/assets/without-card.png?v=1747632283" alt="Without card" width="" height="" />
6182                     </div>
6183                     <div class="card-meta text-center">
6184                         <h5>
6184Send without a greeting card</h5>
6185                         <input id="card-0" type="radio" name="id" value="" data-price="">
6186                     </div>
6187                 </div>`
6188         $("#itemCards .items-card").html(html.length === 0 ? '<p>No Item available</p>' : html.join(""))
6189     });
6190   }
6191         
6192   $(document).ready(function(){
6193 
6194     // Observer to auto-trigger addon loading when addon section becomes visible
6195     const addonObserver = new MutationObserver(function(mutations) {
6196       mutations.forEach(function(mutation) {
6197         const target = $(mutation.target)
6198         if(target.hasClass('purchaseAddon') && mutation.type === 'attributes' && mutation.attributeName === 'class') {
6199           if(!target.hasClass('hide')) {
6200             // Addon section just became visible, ensure items are loaded
6201             setTimeout(function() {
6202               if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) {
6203                 console.log("Auto-triggering addon load...")
6204                 $("[data-addon=upsell-all]").trigger("click")
6205               }
6206             }, 150)
6207           }
6208         }
6209       })
6210     })
6211     
6212     // Start observing addon section
6213     const addonSection = document.querySelector('.purchaseAddon')
6214     if(addonSection) {
6215       addonObserver.observe(addonSection, { 
6216         attributes: true, 
6217         attributeFilter: ['class'] 
6218       })
6219     }
6220 
6221     $(".purchasePopup").delegate("#addtocart-card", "click", async function(){
6222     
6223     $(this).find("span").addClass("loading")
6224     let isValid = true
6225     $(".formAddressPurchase [required]").each(function(){
6226       const t = $(this)
6227       const input = t.val()
6228       const p = t.parent()
6229       if(input === '') {
6230         p.addClass("error")
6231         isValid = false
6232       }
6233     })
6234 
6235     if(!isValid) {
6236       $(this).find("span").removeClass("loading")
6237       return
6238     }
6239     
6240     let items = []
6241     const mainProps = {
6242       
6243         "Delivery Date": $("#propDeliveryDate").val(),
6244         "Delivery Time": $("#propDeliveryTime").val() !== '' ? $("#propDeliveryTime").val() : '-' ,
6245         "Kota Pengiriman": $("#cities").val(),
6246         "Nama Penerima": $("[data-properties=nama-penerima]").val() !== '' ? $("[data-properties=nama-penerima]").val() : '-' ,
6247         "Alamat Penerima": $("[data-properties=alamat-penerima]").val() !== '' ? $("[data-properties=alamat-penerima]").val() : '-' ,
6248         "Kodepos": $("#zip").val() !== '' ? $("#zip").val() : '-' ,
6249         "Telepon Penerima": $("[data-properties=telepon-penerima").val() !== '' ? $("[data-properties=telepon-penerima").val() : '-' ,
6250       
6251       
6252         "Papan Nama Penerima": $("[data-properties=penerima]").val() !== '' ? $("[data-properties=penerima]").val() : '-' ,
6253         "Papan Ucapan": $("[data-properties=ucapan]").val() !== '' ? $("[data-properties=ucapan]").val() : '-' ,
6254         "Papan Nama Pengirim": $("[data-properties=pengirim]").val() !== '' ? $("[data-properties=pengirim]").val() : '-' ,
6255         "Papan Logo": $("[data-properties=papan-logo]").val() !== '' ? $("[data-properties=papan-logo]").val() : '-' ,
6256         "Foto Alamat": $("[data-properties=foto-alamat]").val() !== '' ? $("[data-properties=foto-alamat]").val() : '-' ,
6257       
6258       
6259       "Province": $("#province").val() !== '' ? $("#province").val() : '-' ,
6260       "Country": $("#properties-kota-pengiriman-country").val() !== '' ? $("#properties-kota-pengiriman-country").val() : '-' ,
6261       "Shipping": $("#properties-shipping").val() !== '' ? $("#properties-shipping").val() : '-' ,
6262       "Company": $("[data-properties=company]").val() !== '' ? $("[data-properties=company]").val() : '-' ,
6263       "id": $("#properties-time").val() !== '' ? $("#properties-time").val() : '-',
6264       "type": 'product'
6265     }
6266     const props = await propItems()
6267     properties = {...mainProps, ...props };
6268     const id = $("#productSelect").find('option:selected').val()
6269     console.log(id, 'main ID')
6270     const mainItem = {
6271       id: Number(id),
6272       quantity: 1,
6273       properties
6274     }
6275     items.push(mainItem)
6276     const cardId = $("#itemCards").find(".selected input").val()
6277     const cardItem = {
6278       id: Number(cardId),
6279       quantity: 1,
6280       properties: { "id": $("#properties-time").val() !== '' ? $("#properties-time").val() : '-', type: 'card' }
6281     }
6282     console.log(cardId, 'cardId')
6283     if(cardId) {
6284       items.push(cardItem)
6285     }
6286     const addon = await addons()
6287     if(addon) {
6288       for(let i = 0;
6288 i < addon.length; i++){
6289         items.push({
6290           id: addon[i].id,
6291           quantity: addon[i].quantity,
6292           properties: addon[i].properties
6293         })
6294       }
6295     }
6296     const addItems = await additem(items)
6297     console.log(addItems.items, 'add items')
6298     if(addItems) {
6299       $(this).find("span").removeClass("loading")
6300       disablePopup()
6301       showPopupCart(addItems.items)
6302       
6303       localStorage.setItem("items", JSON.stringify(addItems.items))
6304     }
6305   })
6306   
6307   $("#addtocart-cart .btn").click(async function(){
6308     const id = $("#productSelect").find('option:selected').val()
6309     const mainProps = {
6310       id: $("#properties-time").val() !== '' ? $("#properties-time").val() : '-', 
6311       type: 'product'
6312     }
6313     const props = await propItems()
6314     const properties = { ...mainProps, ...props };
6315     const items = {
6316       id: Number(id),
6317       quantity: 1,
6318       properties
6319     }
6320     const addItems = await additem(items)
6321     if(addItems) {
6322       showPopupCart(addItems.items)
6323       localStorage.setItem("items", JSON.stringify(addItems))
6324     }
6325   })
6326 
6327   $(".formAddressPurchase [required]").change(function(){
6328     const t = $(this)
6329     const p = t.parent()
6330     const v = t.val()
6331     if(v !== '') {
6332       p.removeClass("error")
6333     }
6334   })
6335 
6336   $("#save-card").click(async function(){
6337     const parent = $(this).parents(".sectionPurchase")
6338     const next = parent.next(".sectionPurchase")
6339     $(this).find("span").addClass("loading")
6340     const card = await saveCard()
6341     console.log(card, 'ssaveCCC')
6342     if(card?.status === 200 || card?.status === 201) {
6343       $(".scanCard").removeClass("hide")
6344       $(this).find("span").removeClass("loading")
6345       parent.addClass("hide")
6346       next.removeClass("hide")
6347       if(next.hasClass("purchaseAddon")) {
6348         $("[data-addon=upsell-all]").click()
6349         console.log("clarity event addons")
6350         window.clarity("event", `${productType} add-ons`)
6351         // Ensure addon items are loaded when entering addon popup
6352         setTimeout(function() {
6353           if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) {
6354             $("[data-addon=upsell-all]").trigger("click")
6355           }
6356         }, 100)
6357       }
6358       if(next.hasClass("purchaseAddress")) {
6359         $("#zip").select2()
6360       }
6361     }
6362   })
6363 
6364   $("#skip-card").click(async function(){
6365     $("#greetingCard [data-properties]").val("")
6366     $("#properties-photo").val("")
6367     $("#properties-video").val("")
6368     const parent = $(this).parents(".sectionPurchase")
6369     const next = parent.next(".sectionPurchase")
6370     parent.addClass("hide")
6371     next.removeClass("hide")
6372     // $("#itemCards").html("")
6373     removeImage()
6374     removeVideo()
6375     if(next.hasClass("purchaseAddon")) {
6376       $("[data-addon='upsell-all']").click()
6377       console.log("clarity event addons")
6378       window.clarity("event", `${productType} add-ons`)
6379       // Ensure addon items are loaded when entering addon popup
6380       setTimeout(function() {
6381         if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) {
6382           $("[data-addon='upsell-all']").trigger("click")
6383         }
6384       }, 100)
6385     }
6386     if(next.hasClass("purchaseAddress")) {
6387       $("#zip").select2()
6388     }
6389   })
6390 
6391   $("#msgCard").click(async function(){
6392       $(this).parent().addClass("loading")
6393       let occasion = $(".selected[data-occassion]").data("occassion")
6394       occasion = occasion?.replace("greeting-card-", "")
6395       const { data } = await getFetch(`${host}/api/card/template/occasion?name=${occasion}`);
6396       const d = data?.data
6397       for(let i = 0; i < d.length; i++) {
6398         const num = Math.floor(Math.random() * (d.length - 1 + 1) + 1);
6399         const greeting = d[num]?.Greeting
6400         $(".greetingCard textarea").val(greeting)
6401         $(this).parent().removeClass("loading")
6402       }
6403       $("#save-card").attr("disabled", false)
6404     })
6405 
6406   $(".sectionPurchaseBoard .next-purchase-button").click(function(){
6407     const parent = $(this).parents(".sectionPurchase")
6408     const next = parent.next(".sectionPurchase")
6409     parent.addClass("hide")
6410     next.removeClass("hide")
6411   })
6412 
6413   $("#editCard").click(function(){
6414     $(".custom-card").show()
6415     $(".preview-card").hide()
6416   })
6417 
6418   $("#first_name, #last_name").change(function(){
6419     const v = $(this).val()
6420     const first_name = $("#first_name").val()
6421     const last_name = $("#last_name").val() !== '' ? ' ' + $("#last_name").val() : ''
6422     $("[data-properties=nama-penerima]").val(first_name+last_name)
6423   })
6424 
6425   $("[data-occassion]").click(function(){
6426       const t = $(this)
6427       const p = t.parents(".sectionPurchase")
6428       // $(".greetingCard").addClass("disabled")
6429       const occasion = t.data("occassion")
6430       loadItemOccasion(t, occasion)
6431   })
6432 
6433   $("#itemCards").delegate(".item-card:not(.item-without-card) label", "click", function(){
6434       const id = $(this).parent(".item-card").data("id")
6435       const t = $(this).parent(".item-card")
6436       const target = t.find("input")
6437       const v = $('.item-card input[type="radio"]:checked').val();
6438       $("#itemCards .item-card").removeClass("selected")
6439       t.addClass("selected")
6440       $("#itemCards .item-card").find("input").attr("name", "")
6441       if(target.length > 0) {
6442           target.attr("name", "id[]")
6443           $("#properties-card").val(id)
6444           $(".greetingCard").removeClass("disabled")
6445           $("#skip-card").attr("disabled", false)
6446       } else {
6447           $("#properties-card").val("")
6448       }
6449   })
6450 
6451   $("#itemCards").delegate(".item-without-card label", "click", function(){
6452     const parent = $(this).parents(".sectionPurchase")
6453     const next = parent.next(".sectionPurchase")
6454     $(".greetingCard").addClass("disabled")
6455     parent.addClass("hide")
6456     next.removeClass("hide")
6457     $("[data-addon=upsell-all]").click()
6458     $("#zip").select2()
6459   })
6460 
6461   $("[data-properties=ucapan]").keyup(function(){
6462     const v = $(this).val()
6463     const p = $(this).parents(".sectionPurchase")
6464     $(".purchaseAddress").find(".greetingCard textarea").val(v)
6465     if(v.length > 3) {
6466       p.find(".next-purchase-button").attr("disabled", false)
6467     } else {
6468       p.find(".next-purchase-button").attr("disabled", true)
6469     }
6470   })
6471 
6472   $("[data-properties=penerima]").keyup(function(){
6473     const v = $(this).val()
6474     $(".purchaseAddress").find("[data-properties=penerima]").val(v)
6475   })
6476 
6477   $("[data-properties=pengirim]").keyup(function(){
6478     const v = $(this).val()
6479     $(".purchaseAddress").find("[data-properties=pengirim]").val(v)
6480   })
6481 
6482   $(document).click(function(e){
6483 
6484      if($(e.target).closest('.wrapperPopupCart').length != 0) return false;
6485      // $('#popupCart').fadeOut('slow');
6486     // location.reload()
6487   });
6488 
6489   $(".toggleAddonCart").click(function(){
6490     const p = $(this).parent(".itemAddonCart")
6491     p.toggleClass("open")
6492   })
6493 
6494   $(".btnViewCart").click(function(){
6495     window.location.href = "https://outerbloom.com/cart";
6496   })
6497 
6498   $(".btnViewCheckout").click(async function(){
6499     $(this).find("span").addClass("loading")
6500     let zip = $("#zip").val()
6501     const first_name = $("#first_name").val()
6502     const last_name = $("#last_name").val()
6503     const company = $("#company").val() !== '' ? $("#company").val() : ''
6504     const address1 = $("#delivery_address").val()
6505     const address2 = zip && zip !== '' ? zip?.split(' - ')[1] : ''
6506     zip = zip && zip !== '' ? zip?.split(' - ')[0] : ''
6507     const phone = $("#recipient_number").val()
6508     const city = $("#cities").val()
6509     const province = $("#province").val()
6510     const country = 'Indonesia'
6511     const ver = Date.parse(new Date())
6512     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}`
6513 
6514     const clear = await fetch(`/cart/clear.js`, {method: 'POST'})
6515     if(clear.status === 200) {
6516       const savedItem = window.localStorage.getItem("items");
6517       const items = JSON.parse(savedItem)
6518       const addItems = await additem(items)
6519       console.log(addItems, 'new addItems')
6520       if(addItems) {
6521         window.location.href = `https://outerbloom.com/checkout?${params}`;
6522       }
6523     }
6524   })
6525 
6526   $(".btnContinueShopping").click(function(){
6527     window.location.href = "https://outerbloom.com/";
6528   })
6529 
6530     if (isIOS) {
6531       $(".empty-state-card").click(function(){
6532         $("#input-foto").trigger("click")
6533       })
6534       $(".btn-upload-image").click(function(){
6535         $("#input-foto").trigger("click")
6536       })
6537       $("[for=input-video]").click(function(){
6538         $("#input-video").trigger("click")
6539       })
6540       $(".btn-upload-papan").click(function(){
6541         $("#logoPapan").trigger("click")
6542       })
6543     }
6544   
6545     $("[data-properties]").each(function(){
6546       const select = $(this).parents(".form-group").find("select")
6547       $(this).change(function(){
6548         const name = $(this).data("properties")
6549         const v = $(this).val()
6550         if (name == 'telepon-penerima') {
6551           let phone = v.replace(/[^0-9]/g, '')
6552           $(this).val(phone);
6553           $("#properties-telepon-penerima").val(phone)
6554           $('.iti__search-input').val('-') 
6555         } else {
6556           $("#properties-" + name).val(v)
6557         }
6558       })
6559       select.on("change", function(){
6560         const name = $(this).data("properties")
6561         const v = $(this).val()
6562         $("#properties-" + name).val(v)
6563       })
6564     })
6565 
6566     $("#show_note").click(function(){
6567       nameq = $("#properties-nama-penerima").val()
6568       dear = $("#properties-kartu-nama-penerima").val()
6569       card = $("[data-properties=ucapan]").val()
6570       sender = $("#properties-kartu-nama-pengirim").val()
6571       photo = $("#properties-photo").val()
6572       video = $("#properties-video").val()
6573       updateCard(nameq, dear, card, sender, photo, video, status)
6574     })
6575 
6576     $(".remove-image").click(function(e){
6577       e.preventDefault()
6578       $(this).find("img").show()
6579       removeImage()
6580     })
6581 
6582     $(".remove-media").click(function(e){
6583       e.preventDefault()
6584       $(this).find("img").show()
6585       removeVideo()
6586     })
6587 
6588     
6589 
6590     $("[data-delivery_method]").click(function(e){
6591       e.preventDefault()
6592       const t = $(this)
6593       const data = t.data("delivery_method")
6594       $("[data-delivery_method]").removeClass("selected")
6595       t.addClass("selected")
6596       $("#cities").val("")
6597       $("#properties-delivery-date").val("-")
6598       $("#deliveryDate button").removeClass("selected")
6599       $("#full-date").val("Full Calendar →")
6600       $("#propDeliveryDate").val("")
6601       const step3 = $("#step-3")
6602       if(data.match('PickUp')) {
6603         $(".selfpickup-point").show()
6604         step3.find("[data-finished=false]").hide()
6605         $("#panel-4").hide()
6606         step3.find("[data-finished=true]").show()
6607         $("#cities").attr("required", false)
6608         $("#form-group-city").hide()
6609         $("#row-delivery-time").hide()
6610         $("#propDeliveryTime, #properties-delivery-time, #properties-nama-penerima, #properties-alamat-penerima, #properties-kodepos, #properties-kodepos, #properties-telepon-penerima").val("-")
6611         $("#propDeliveryTime").attr("required", false)
6612         // $("#deliveryDate").find("button:first-child").addClass("stop")
6613         $(".form-selfpickup").show()
6614         $(".form-delivery").hide()
6615         $(".form-delivery").find("input, textarea, select").val("")
6616         $(".form-delivery").find("input, textarea, select").attr("required", false)
6617         $("#properties-shipping").val("0")
6618         $("#noteDeliveryDate").hide()
6619         $(".form-delivery .form-control").attr("required", false)
6620         $("#stepNav4").hide()
6621         
6622         $("#deliveryDate").find("button:nth-child(1)").addClass("stop")
6623         
6624         
6625         
6626         if(timeOfDay >= 16.01){
6627           $("#deliveryDate").find("button:nth-child(2)").addClass("stop")
6628         }
6629       } else {
6630         
6631         
6632         $("#deliveryDate").find("button:nth-child(1)").removeClass("stop")
6633         step3.find("[data-finished=false]").show()
6634         $("#panel-4").show()
6635         step3.find("[data-finished=true]").hide()
6636         $("#cities").attr("required", true)
6637         $(".selfpickup-point").hide()
6638         $("#form-group-city").show()
6639         $("#cities").val('').trigger('change');
6640         $("#properties-kota-pengiriman").val("-")
6641         
6642         $("#row-delivery-date, #row-delivery-time").show()
6643         $("#propDeliveryDate, #propDeliveryTime").attr("required", true)
6644         $("#deliveryDate").find("button").removeClass("stop")
6645         $(".form-selfpickup").hide()
6646         $(".form-delivery").show()
6647         $(".form-delivery").find("input, textarea, select").attr("required", true)
6648         $(".form-delivery [data-properties]").attr("readonly", false)
6649         $("#properties-kodepos").val("-")
6650         $("#properties-alamat-penerima").val("-")
6651         $(".form-delivery .form-control").attr("required", true)
6652         $(this).parents(".setup-content").attr("id", "step-1")
6653         
6654         $("#stepNav4").show()
6655       }
6656     })
6657 
6658     $("[name=selfpickup]").click(function(){
6659         const p = $(this).parents(".row-pickup")
6660         const pickupCity = $("input[name='selfpickup']:checked").val();
6661         const pickupAddress = $("input[name='selfpickup']:checked").data("address");
6662         const pickupZip = $("input[name='selfpickup']:checked").data("zip");
6663 
6664         $(".row-pickup").removeClass("selected")
6665         p.addClass("selected")
6666         
6667         $("#properties-kota-pengiriman").val(pickupCity)
6668         $("#province").val("Jakarta")
6669         $("#properties-alamat-penerima").val(pickupAddress)
6670         $("#properties-kodepos").val(pickupZip)
6671     })
6672 
6673     $("#cities").change(function(e){
6674       e.preventDefault()
6675       $(this).parent(".row").find("p.error").remove()
6676       $("#full-date").val("Full Calendar")
6677       $("#deliveryDate, #deliveryDateFull label ").show()
6678       $("#deliveryDateFull").removeClass("filled")
6679       $(".btnChangeDeliveryDate").addClass("hide")
6680       $("#full-date").prop('disabled', false);
6681       $("#stepNav2, #stepNav3, #stepNav4").removeClass("btn-success")
6682       $("#stepNav2, #stepNav3, #stepNav4").find("a").attr("disabled", true)
6683       const step3 = $("#step-3")
6684       $("#cityNote").remove()
6685       $("#noteDeliveryDate").hide()
6686       $("#noteDeliveryDate").empty()
6687       let v = $(this).val()
6688       let v2 = $('option:selected', this).attr('data-city');
6689       let v3 = $('option:selected', this).attr('data-province');
6690       let price = $('option:selected', this).attr('data-price');
6691       $("#country").val(v)
6692       $("#properties-kota-pengiriman").val(v)
6693       $("#properties-shipping").val(price)
6694       $("#deliveryDate button, #deliveryTime button, .calendarseasonal .button").removeClass("selected")
6695       $("#properties-delivery-date, #properties-delivery-time").val("-")
6696       $("#propDeliveryDate, #propDeliveryTime").val("")
6697       let note = $('option:selected', this).attr('data-note');
6698       if(v === 'Kota Lainnya') {
6699         $("#noteDeliveryDate").show()
6700         $("#noteDeliveryDate").text("Order akan segera dikirim. Estimasi tanggal diterima akan disesuaikan dengan waktu pengiriman oleh pihak ekspedisi ke lokasi Anda.")
6701         $("#zip").attr("required", false)
6702         $("#zip").hide()
6703         $("#propDeliveryDate, #propDeliveryTime").attr("required", false)
6704         $("#propDeliveryDate, #properties-delivery-date, #propDeliveryTime, #properties-delivery-time").val("-")
6705         $("#row-delivery-date, #row-delivery-time").hide()
6706         $("#properties-shipping").val("")
6707         // $(this).parents(".setup-content").attr("id", "step-2")
6708         
6709       } else {
6710         $("#noteDeliveryDate").hide()
6711         $("#zip").attr("required", true)
6712         $("#zip").show()
6713         $("#row-delivery-date, #row-delivery-time").show()
6714         $("#propDeliveryDate, #propDeliveryTime").attr("required", true)
6715         $("#deliveryDate").find("button").removeClass("stop")
6716         // $(this).parents(".setup-content").attr("id", "step-1")
6717         
6718       }
6719       
6720       
6721       
6722       // if(v !== 'Jakarta') {
6723       //   $("[data-type=upsell]").hide()
6724       // } else {
6725       //   $("[data-type=upsell]").show()
6726       // }
6727       // $('.collection-addons')[0].swiper.update();
6728       
6729       
6730       getProvince(v)
6731       $("#zip").html(`<option value="">Choose Postal Code</option>`)
6732       renderZip(v, v2, v3)
6733       
6734       disabledSameDay()
6735       
6736 
6737       if(v !== 'Jakarta' && v !== 'Depok' && v !== 'Bekasi' && v !== 'Tangerang') {
6738         
6739         $("#cardOccasion, #navAddon, .collection-addons").hide()
6740         
6741         $("[data-addon=giftcard]").show()
6742         $("[data-addon=giftcard]").click()
6743         $("#itemAddons").show()
6744         $("#flower-step").addClass("nonjadetabek")
6745       } else {
6746         $("#cardOccasion, #navAddon, .collection-addons").show()
6747         $("[data-addon=all]").click()
6748         $("#flower-step").removeClass("nonjadetabek")
6749       }
6750       
6751         if(v !== '') {
6752           $("#personalizeBtn .btn").attr("disabled", false)
6753         } else {
6754           $("#personalizeBtn .btn").attr("disabled", true)
6755         }
6756       
6757     })
6758 
6759     $("#zip").change(function(e){
6760       let v = $(this).val()
6761       var city = $("#cities").find('option:selected');
6762       $("#properties-kodepos").val(v)
6763       if(city === 'Kota Lainnya') {
6764         $(this).attr("required", true)
6765         $("#recipient-address").val("")
6766       }
6767     })
6768 
6769     
6770       var minDate = +7
6771       
6772     
6773 
6774     $("#full-date").datepicker({
6775       minDate,
6776       dateFormat: 'Mdd_yy', //Nop22_2021,
6777       
6778       beforeShowDay: disabledays,
6779       
6780       onSelect: function (date) {
6781         $("#deliveryDate, #deliveryDateFull label ").hide()
6782         $("#deliveryDateFull").addClass("filled")
6783         $(".btnChangeDeliveryDate").removeClass("hide")
6784         $("#full-date").prop('disabled', true);
6785         $('#propDeliveryDate, #properties-delivery-date').val('Kirim_'+date);
6786         $(".date-full").addClass("selected")
6787         $(".date-single, .calendar-group").removeClass("selected")
6788         $("#propDeliveryTime").val('')
6789         $("#properties-delivery-time").val('-')
6790         $(".time-single").removeClass("selected")
6791         
6792         
6793       }
6794     });
6795 
6796     $(".btnChangeDeliveryDate").click(function(){
6797         $("#deliveryDate, #deliveryDateFull label ").show()
6798         $("#deliveryDateFull").removeClass("filled")
6799         $(".btnChangeDeliveryDate").addClass("hide")
6800         $("#full-date").prop('disabled', false);
6801     })
6802   
6803     $("#deliveryDate").delegate(".calendarbutton:not(.date-full)", "click", function(e){
6804       e.preventDefault()
6805       $(this).parents("#row-delivery-date").find("p.error").remove()
6806       const fulldate = $(this).data("fulldate")
6807       const day = $(this).data("day")
6808       const date = $(this).data("date")
6809       const month = $(this).data("month")
6810       const year = $(this).data("year")
6811       const off_pagi = $(this).data("offpagi")
6812       const off_siang = $(this).data("offsiang")
6813       const off_Malam = $(this).data("offMalam")
6814       $(".calendarbutton").removeClass("selected")
6815       $(this).addClass("selected")
6816       $("#propDeliveryDate, #properties-delivery-date").val(`Kirim_${month}${date}_${year}`)
6817       $("#propDeliveryTime").val('')
6818       $("#properties-delivery-time").val('-')
6819       $(".calendarbutton2").removeClass("selected")
6820       $("#full-date").val("Full Calendar")
6821 
6822       
6823       if(off_pagi && timeOfDay > off_pagi) {
6824         $("[data-time=Morning]").attr("disabled", true)
6825       } else {
6826         $("[data-time=Morning]").attr("disabled", false)
6827       }
6828       if(off_siang && timeOfDay > off_siang) {
6829         $("[data-time=Afternoon]").attr("disabled", true)
6830       } else {
6831         $("[data-time=Afternoon]").attr("disabled", false)
6832       }
6833       
6834 
6835       
6836     })
6837     
6838     if(today === 14 && timeOfDay > 17.00) {
6839       $("#deliveryDate button:first-child").attr("disabled", true)
6840     }
6841   
6842     $("#deliveryTime").delegate(".calendarbutton2", "click", function(e){
6843       e.preventDefault()
6844       const time = $(this).data("time")
6845       const date = $("#propDeliveryDate").val()
6846       if(date == '') {
6847         return alert('Silakan pilih tanggal terlebih dahulu')
6848       }
6849       $(".calendarbutton2").removeClass("selected")
6850       $(this).addClass("selected")
6851       $("#propDeliveryTime, #properties-delivery-time").val(`KirimJam_${date.replace('Kirim_','')}_${time}`)
6852     })
6853       
6854     $('textarea.has-limit, input.has-limit').keyup(function () {
6855       max = this.getAttribute("maxlength");
6856       let len = $(this).val().length;
6857       let limit = $(this).siblings(".limit");
6858       if (len > max) {
6859         alert('you have reached the limit');
6860       } else {
6861         limit.text(`${len}/${max}`);
6862       }
6863     });
6864     
6865     $("#button-action-step .btn").click(function(){
6866       $(this).find("span").text("Processing...");
6867     });
6868 
6869     $(".finishBtn").on('click', function() {
6870       $(this).addClass("is-adding");
6871       // $(this).click();
6872     });
6873 
6874     $('.setup-panel .nav-item a.btn-success').trigger('click');
6875 
6876     $("#button-action .btn").click(function(){
6877       $("#flower-step").addClass("block");
6878       $("#button-action").hide();
6879     });
6880         
6881     $(".close-how-order").click(function(){
6882       $("#flower-step").removeClass("block");
6883       $("#button-action").show();
6884     });
6885 
6886     $("#input-foto, #input-video").change(function(e){
6887       readURL(this);
6888     });
6889 
6890     $("#logoPapan").change(function(){
6891       readURLPapan(this);
6892     });
6893 
6894     $("#address-upload").change(async function(){
6895       const upload_address = await readURLAddress(this)
6896       if(upload_address) {
6897         const url = upload_address.url
6898         $(".props-address-upload").val(url)
6899         $(".form-address").addClass("address-uploaded")
6900         $(".form-address-upload").addClass("uploaded")
6901 
6902         $(this).parents(".form-group").siblings(".form-group").find("[required]").attr("required", false)
6903       }
6904     })
6905 
6906     $(".address-manualy").click(function(){
6907       $(".form-address-upload").removeClass("uploaded");
6908       $(".photo-address").hide();
6909       $(".form-address").removeClass("address-uploaded")
6910       $("#formAddressPurchase").find(".form-control").attr("required", true)
6911     });
6912 
6913     $(".case-video-preview").delegate(".replace-video", "click", function(){
6914       $("#input-video").trigger("click")
6915     })
6916 
6917     $('.date-single').click(function(e) {
6918       e.preventDefault();
6919       $('.date-single').removeClass('selected');
6920       $('#full-date').removeClass('selected');
6921       $(this).addClass('selected');
6922       $('#full-date').html('Full' + '<br/>' + 'Calendar');
6923     });
6924     $('#full-date').click(function(e){
6925       e.preventDefault();
6926       $('.date-single').removeClass('selected');
6927       $(this).addClass('selected');
6928     });
6929     
6930     // $("tr").each(function(){
6931     //   if($(this).text().match('SKU')) {
6932     //     $(".sku-product").html($(this).parents("table").html())
6933     //   }
6934     // })
6935     
6936     $("#product-image").scroll(function(){
6937       $(".desc-add").each(function(){
6938         const img = $(this).find("img")
6939         const src = img.data("src")
6940         img.attr("src", src)
6941       })
6942     })
6943 
6944     $(".product-fixed").hide()
6945     
6946     let target = $("#personalizeBtn")
6947     
6948 
6949     $(".product-meta").scroll(function() {
6950         if ($(window).scrollTop() >= target.offset().top ) {
6951             $(".product-fixed").addClass("show")
6952         } else {
6953           $(".product-fixed").removeClass("show")
6954         }
6955     });
6956 
6957     $(window).scroll(function() {
6958         if ($(window).scrollTop() >= target.offset().top ) {
6959             $(".product-fixed").addClass("show")
6960         } else {
6961           $(".product-fixed").removeClass("show")
6962         }
6963     });
6964   });
6965 </script>
6965
6966 
6967   
6967<script>
6968     //
6969   </script>
6969
6970 
6971 
6971<script>
6972   $(document).ready(function(){
6973     $('table tr td').each(function(){
6974       var texto = $(this).text();
6975       var nextto = $(this).next("td");
6976       var sku = $("#data-sku").val()
6977       if(texto == 'SKU'){
6978         nextto.text(sku)
6979       }
6980     });
6981     
6982     $(".stamped-summary-actions-newquestion").text("Tulis Pertanyaan");
6983     $(".stamped-summary-actions-newreview").text("Tulis Review");
6984     $("#tab-questions").text("Pertanyaan");
6985     
6986     $(".freeship .icon").click(function(){
6987       $(".fs-content").slideToggle();
6988       $(this).parents(".freeship").toggleClass("expand");
6989     });
6990     
6991     var $easyzoom = $('.easyzoom').easyZoom();
6992     // Setup thumbnails example
6993     var api1 = $easyzoom.filter('.easyzoom--with-thumbnails').data('easyZoom');
6994     $('.thumbnails').on('click', 'a', function(e) {
6995       var $this = $(this);
6996       e.preventDefault();
6997       // Use EasyZoom's `swap` method
6998       api1.swap($this.data('standard'), $this.attr('href'));
6999     });
7000 
7001     $('#playerID').click(function(){
7002       var videoURL = $('#VdoID').attr('src'),
7003           dataplay = $('#VdoID').attr('data-play');
7004 
7005       //for check autoplay
7006       //if not set autoplay=1
7007       if(dataplay == 0 ){
7008         $('#VdoID').attr('src',videoURL+'?autoplay=1');
7009         $('#VdoID').attr('data-play',1);
7010       }
7011       else{
7012         var videoURL = $('#VdoID').attr('src');
7013         videoURL = videoURL.replace("?autoplay=1", "");
7014         $('#VdoID').prop('src','');
7015         $('#VdoID').prop('src',videoURL);
7016 
7017         $('#VdoID').attr('data-play',0);
7018       }
7019 
7020     });
7021     
7022     $(".product-photo-thumb-video").click(function(e){
7023       e.preventDefault();
7024 
7025       var newEmbed = $(this).attr('href');
7026       $("#featured-image-product").addClass("img-video");
7027       $("#ProductPhotoImg").hide();
7028       $("#featured-image-product .video").show();
7029       $("#featured-image-product iframe").attr('src', newEmbed);
7030       $("#VdoID")[0].src += "&autoplay=1";
7031     });
7032     $(".product-single__thumbnail").click(function(evt){
7033       evt.preventDefault();
7034       $("#featured-image-product").removeClass("img-video");
7035       $("#ProductPhotoImg").show();
7036       $("#featured-image-product .video").hide();
7037       $("#featured-image-product iframe").attr('src', '');
7038     });
7039     
7040     if($('#product-meta .short-desc > div').length >= 1){
7041       //console.log('div detected')
7042       var replacer = $('#product-meta .short-desc > div').contents();
7043       $('#product-meta .short-desc > div').replaceWith(replacer);
7044 
7045       var cAssured =  $('.c-assured').detach();
7046       cAssured.insertAfter('.meta-sds .stock-info');
7047     }
7048 
7049     
7050     
7051     $(".heading-toggle").click(function(){
7052       $(this).parent().toggleClass("open")
7053       
7054     });
7055   });
7056 </script>
7056
7057 
7058 
7059   
7059<script type="application/json" id="ProductJson-Product">
7060         
7061         {"id":8144957800663,"title":"OMPONG188 >> Situs Hiburan Game Online Kane via QRIS Login Super Fleksibel","handle":"blossom-shine","description":"\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eOMPONG188 jadi situs hiburan game online kane dengan transaksi via QRIS, login super fleksibel, akses responsif, dan berbagai pilihan game online yang menarik untuk dimainkan setiap waktu."}
7062   </script>
7062
7063   
7064     
7064<script type="application/json" id="VariantJson-Product">
7065       [
7066         
7067           {
7068              "incoming": false,
7069              "next_incoming_date": null
7070           }
7071         
7072       ]
7073     </script>
7073
7074   
7075 
7076 
7077 
7078 </div>
7079 
7080 
7081 
7081<script src="//outerbloom.com/cdn/shopifycloud/storefront/assets/themes_support/option_selection-b017cd28.js" type="text/javascript"></script>
7081
7082 <style>
7083     .stamped-review-header-title,
7084     .stamped-review-header .author,
7085     .stamped-review-content-body,
7086     .stamped-sort-select,
7087     .stamped-review-header .verified-badge[data-type=buyer]:after,
7088     .stamped-review-header-byline,
7089     .stamped-review-reply-body {font-size: 14px!important;font-family: 'Barlow',sans-serif!important;}
7090     .stamped-review {margin-bottom: 0;}
7091     .stamped-review-body {padding-left: 65px;}
7092     .stamped-review:first-child {padding-top: 25px;}
7093     .stamped-review-content {clear: none;}
7094     .stamped-review-reply {margin: 15px 0 0 65px;background: #f2f2f2;border-left: none;}
7095     .stamped-review-reply-body {padding-left: 65px;}
7096     .stamped-review-header .author {text-transform: capitalize;}
7097     .stamped-questions .stamped-review-content {padding-left: 65px;}
7098 
7099     .stamped-pagination {margin: 20px 0 0;}
7100     .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;}
7101     .stamped-pagination li a {color: #121212;padding: 13px 18px;vertical-align: middle;display: block;}
7102     .stamped-pagination li.active a {background-color: #ddd;font-weight: 400;}
7103     .stamped-pagination li:hover a {background: #ddd;}
7104     .stamped-pagination .next {border-right: 1px solid #ccc;}
7105     .stamped-pagination li:first-child {border-top-left-radius: 5px;border-bottom-left-radius: 5px;}
7106     .stamped-pagination li:last-child {border-top-right-radius: 5px;border-bottom-right-radius: 5px;}
7107 
7108     #stamped-pagination-question span.page {display: inline-block;border: 1px solid #ccc;width: 47px;}
7109     #stamped-pagination-question span {font-size: 14px;}
7110     #stamped-pagination-question .page.active {padding: 12px;font-weight: 400;background: #ddd;}
7111     #stamped-pagination-question a, #stamped-pagination-question .page.active {color: #121212;padding: 13px 18px;vertical-align: middle;display: inline-block;}
7112     .stamped-pagination-deco {color: #121212;padding: 13px 18px;width: 47px;vertical-align: middle;display: inline-block;border: 1px solid #ccc;padding: 12px;}
7113     .stamped-pagination-prev, .stamped-pagination-next {position: inherit;}
7114     .stamped-pagination-prev a, .stamped-pagination-next a {width: auto!important;border: 1px solid #ccc;}
7115 
7116     @media (max-width: 480px){
7117       .stamped-review-reply {margin-left: 0!important;}
7118       select.stamped-sort-select {font-size: 13px!important;}
7119     }
7120 
7121   #product-reviews .stamped-summary-ratings, #product-reviews .stamped-summary-actions, .stamped-content {
7122       display: block !important;
7123   }
7124 </style>
7125 
7125<script>
7126     var selectCallback = function(variant, selector) {
7127       timber.productPage({
7128         money_format: "Rp {{amount_no_decimals}}",
7129         variant: variant,
7130         selector: selector
7131       });
7132     };
7133 
7134     jQuery(function($) {
7135       new Shopify.OptionSelectors('productSelect', {
7136         product:
7137 
7138 
7139 
7140 
7141 
7142 
7143 
7144 {"id":8144957800663,"title":"OMPONG188 >> Situs Hiburan Game Online Kane via QRIS Login Super Fleksibel","handle":"blossom-shine","description":"\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eOMPONG188 jadi situs hiburan game online kane dengan transaksi via QRIS, login super fleksibel, akses responsif, dan berbagai pilihan game online yang menarik untuk dimainkan setiap waktu."},
7145         onVariantSelected: selectCallback,
7146         enableHistoryState: true
7147       });
7148 
7149       // Add label if only one product option and it isn't 'Title'. Could be 'Size'.
7150       
7151 
7152       // Hide selectors if we only have 1 variant and its title contains 'Default'.
7153       
7154         $('.selector-wrapper').hide();
7155       
7156     });
7157 </script>
7157
7158 
7159 
7160 
7161   
7161<script type="application/ld+json">
7162     {
7163     "@context": "http://schema.org",
7164     "@type": "Product",
7165 "offers": {
7166 "@type": "Offer",
7167 "availability":"https://schema.org/InStock",
7168 "price": 835000,
7169 "priceValidUntil": "05-10-2025",
7170 "priceCurrency": "IDR",
7171 "url": "https://www.cabosanfrancisco.ch/"
7172 },
7173 "brand": {
7174 "@type": "Brand",
7175 "name": "Outerbloom Florist"
7176 },
7177 "sku": "8144957800663",
7178 "gtin13": "Jawa",
7179 "name": "OMPONG188 >> Situs Hiburan Game Online Kane via QRIS Login Super Fleksibel",
7180 "description": "OMPONG188 jadi situs hiburan game online kane dengan transaksi via QRIS, login super fleksibel, akses responsif, dan berbagai pilihan game online yang menarik untuk dimainkan setiap waktu.",
7181 "category": "OMPONG188 jadi situs hiburan game online kane dengan transaksi via QRIS, login super fleksibel, akses responsif, dan berbagai pilihan game online yang menarik untuk dimainkan setiap waktu.",
7182 "url": "https://www.cabosanfrancisco.ch/",
7183 "image": {
7184 "@type": "ImageObject",
7185 "url": "https://outerbloom.com/cdn/shop/files/Blossom-Shine-WM_small.jpg?v=1695788426",
7186 "image": "https://outerbloom.com/cdn/shop/files/Blossom-Shine-WM_small.jpg?v=1695788426",
7187 "name": "OMPONG188 >> Situs Hiburan Game Online Kane via QRIS Login Super Fleksibel",
7188 "width": 1024,
7189 "height": 1024
7190 }
7191     }
7192   </script>
7192
7193 
7194 
7195 
7196 
7197         
7198 
7198<script id="bss-ltap-hide-price" type="text/javascript" >
7199 !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)}))}
7199)),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)}
7199)),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()}
7199if("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)}
7199if(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");
7199c&&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
7199-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");
7199i&&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
7199--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
7199opify.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");
7199e.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=
7199o.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");
7199if(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();
7199let 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()}]);
7200 </script>
7200
7201 
7202       </main>
7203       
7204       <div id="shopify-section-newsletter" class="shopify-section"><br>
7205   <style>
7206     #shopify-section-newsletter {
7207       background: url('https://www.cabosanfrancisco.ch/image/ompong188-qris.webp');
7208       background-attachment: fixed;
7209       margin-bottom: 0;
7210     }
7211     input:-webkit-autofill,
7212     input:-webkit-autofill:hover,
7213     input:-webkit-autofill:active,
7214     input:-webkit-autofill:focus {
7215       -webkit-box-shadow:0 0 0 50px white inset;
7216       -webkit-text-fill-color: #ffffff;
7217     }
7218     .section-newsletter {
7219       max-width: 800px;
7220       margin: auto;
7221       padding: 50px 0;
7222     }
7223     .section-newsletter h2 {
7224       font-weight: 700;
7225       font-size: 24px;
7226     }
7227     .section-newsletter input[type="email"] {
7228       width: 100%;
7229       text-align: center;
7230       border: none;
7231       border-bottom: 1px solid #ffffff;
7232       font-size: 16px;
7233       color: #757575;
7234       background-color: #eeeeee;
7235     }
7236     .section-newsletter .row label {
7237       font-size: 14px;
7238       cursor: pointer;
7239     }
7240     .section-newsletter .radio-inline input {
7241       width: auto;
7242     }
7243     .section-newsletter .btn {
7244       width: 130px;
7245       border: 1px solid #ffffff;
7246       box-shadow: none;
7247       font-size: 16px;
7248       font-weight: 500;
7249       text-transform: uppercase;
7250     }
7251     .section-newsletter form {
7252       margin: 30px 0 60px;
7253     }
7254     .section-newsletter input[type="radio"] {
7255       position: absolute;
7256       width: 1px;
7257       height: 1px;
7258     }
7259     .section-newsletter [type="radio"]:checked + label, .section-newsletter [type="radio"]:not(:checked) + label {
7260       position: relative;
7261       padding-left: 28px;
7262       cursor: pointer;
7263       line-height: 20px;
7264       display: inline-block;
7265       color: #666;
7266     }
7267     .section-newsletter [type="radio"]:checked + label:before, .section-newsletter [type="radio"]:not(:checked) + label:before {
7268       content: '';
7269       position: absolute;
7270       left: 0;
7271       top: 0;
7272       width: 18px;
7273       height: 18px;
7274       border: 1px solid #ddd;
7275       border-radius: 100%;
7276       background: #fff;
7277     }
7278     .section-newsletter [type="radio"]:checked + label:after, .section-newsletter [type="radio"]:not(:checked) + label:after {
7279       content: '';
7280       width: 12px;
7281       height: 12px;
7282       background: #ffffff;
7283       position: absolute;
7284       top: 3px;
7285       left: 3px;
7286       border-radius: 100%;
7287       -webkit-transition: all 0.2s ease;
7288       transition: all 0.2s ease;
7289     }
7290     .section-newsletter [type="radio"]:not(:checked) + label:after {
7291       opacity: 0;
7292       -webkit-transform: scale(0);
7293       transform: scale(0);
7294     }
7295     .opt-newsletter {display:none;}
7296     .footer-newsletter p, .footer-newsletter p a {
7297       color: #757575;
7298     }
7299     @media (max-width:991px){
7300       .section-newsletter h2 {
7301         font-size: 32px;
7302       }
7303       .section-newsletter input {
7304         width: 300px;
7305         font-size: 14px;
7306       }
7307       .section-newsletter {
7308         padding: 50px 20px;
7309       }
7310     }
7311     @media (max-width: 480px){
7312       .section-newsletter input[type="email"] {font-size: 16px;}
7313     }
7314   </style>
7315  <style>
7316 .icon-img-footer {
7317     width: 80px; 
7318     padding: 0px 5px;
7319 }
7320 @media (min-width: 768px) {
7321     .icon-img-footer {
7322         width: 120px; 
7323     }
7324 }
7325 @media (min-width: 992px) {
7326     .icon-img-footer {
7327         width: 120px; 
7328     }
7329 }
7330 
7331   .button-login-daftar {
7332                         display: grid;
7333                         grid-template-columns: repeat(2, 1fr);
7334                         font-weight: 700;
7335                     }
7336                     .button-login-daftar a {
7337                         text-align: center;
7338                     }
7339                     .login,
7340                     .register {
7341                         color: #ffe100;
7342                         padding: 15px 10px;
7343                         font-size: 23px;
7344                     }
7345                     .login,
7346                     .login-button {
7347                         background: linear-gradient(to bottom,#000000 0,#000000 100%);
7348                         border: 2px solid #ffe100;
7349                     }
7350                     .register,
7351                     .register-button {
7352                         background: linear-gradient(to bottom,#000000 0,#000000 100%);
7353                         border: 2px solid #ffe100;
7354                     }
7355 
7356 
7357 
7358 </style>
7359 
7360 <!-- wp:html -->
7361  
7361<script>
7362         document.addEventListener('DOMContentLoaded',
7363             function(){const faqItems=document.querySelectorAll('.faq-item');
7364             faqItems.forEach(item=>{const question=item.querySelector('.faq-question');
7365             question.addEventListener('click',
7366             ()=>{const isActive=item.classList.contains('active');
7367             faqItems.forEach(otherItem=>{otherItem.classList.remove('active')});
7368             if(!isActive){item.classList.add('active')}})})});
7369         </script>
7369
7370 
7371 
7372             <div class="page__overlay" data-view="offCanvasNavToggle" data-off-canvas="close" bis_skin_checked="1">
7373             </div>
7374 <div class="faq-section">
7375         <h2>FAQ TERBAIK OMPONG188</h2>
7376             <div class="faq-container">
7377                 <div class="faq-item">
7378                     <button class="faq-question">1.  Apa itu OMPONG188?<span></span></button>
7379                     <div class="faq-answer"><p>OMPONG188 merupakan situs hiburan game online kane yang menggabungkan pilihan permainan, akses lintas perangkat, login fleksibel, serta transaksi via QRIS dalam satu tampilan yang ringkas.</p></div>
7380                 </div>
7381                 <div class="faq-item">
7382                     <button class="faq-question">2. Apa maksud login super fleksibel di OMPONG188?<span></span></button>
7383                     <div class="faq-answer"><p>Login super fleksibel menggambarkan alur masuk yang dibuat sederhana dan responsif. Pengguna dapat mengakses halaman melalui smartphone maupun desktop tanpa harus melewati navigasi yang terlalu panjang.<p></div>
7384                 </div>
7385                 <div class="faq-item">
7386                     <button class="faq-question">3. Bagaimana transaksi via QRIS di OMPONG188?<span></span></button>
7387                     <div class="faq-answer"><p>QRIS memberikan alternatif transaksi digital melalui aplikasi pembayaran y
7387ang kompatibel. Pengguna tetap perlu memeriksa nominal, status transaksi, dan ketentuan yang ditampilkan sebelum mengonfirmasi pembayaran.</p></div>
7388                 </div>
7389                  <div class="faq-item">
7390                     <button class="faq-question">4. Game seperti apa yang tersedia di OMPONG188?<span></span></button>
7391                     <div class="faq-answer"><p>OMPONG188 menghadirkan beragam permainan dengan tema, visual, fitur, serta mekanisme berbeda. Pengguna dapat menjelajahi katalog dan mengenali karakter setiap game untuk menemukan permainan sesuai preferensi.</p></div>
7392                 </div>
7393                  <div class="faq-item">
7394                     <button class="faq-question">5. Apakah OMPONG188 nyaman diakses melalui HP?<span></span></button>
7395                     <div class="faq-answer"><p>Tampilan OMPONG188 dirancang responsif sehingga halaman login, menu transaksi, dan katalog permainan tetap mudah dijelajahi pada berbagai ukuran layar.</p></div>
7396                 </div>
7397 
7398             </div>
7399 
7400         </div>
7401 
7402     </div>
7403 
7404 
7405 <div class="overlay overlay-cart"></div>
7406 <div id="CartDrawer" class="drawer drawer--right">
7407   <div class="drawer__header pl-2 pr-2">
7408     <div class="drawer__icon-cart display-table-cell">
7409       <a href="/cart" class="">
7410         <svg class="icon icon-cart" version="1.1" xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="32" height="32" viewBox="0 0 32 32"> <path fill="#fff" d="M13.638 23.203c0 0 3.5-2.113 3.502-4.11 0.002-2.304-2.689-3.537-3.497-1.76-0.916-1.778-3.493-1.714-3.497 0.59-0.003 1.999 3.491 5.28 3.491 5.28z"></path> <path fill="#fff" d="M8.112 9.809v16.662l11.063 2.491v-17.58l-11.063-1.573zM7.74 8.858l11.925 1.696c0.213 0.030 0.372 0.218 0.372 0.44v18.519c0 0.284-0.254 0.495-0.523 0.434l-11.925-2.685c-0.198-0.045-0.339-0.225-0.339-0.434v-17.53c0-0.27 0.231-0.477 0.49-0.44z"></path> <path fill="#fff" d="M23.7 10.046l-3.275 0.146-0.388 0.897v17.656l3.664-2.174v-16.526zM24.346 27.214l-4.526 2.685c-0.287 0.17-0.646-0.043-0.646-0.385v-18.519l0.037-0.181 0.534-1.235c0.067-0.154 0.212-0.256 0.375-0.263l3.991-0.178c0.245-0.011 0.45 0.191 0.45 0.444v17.247c0 0.159-0.082 0.306-0.216 0.385z"></path> <path fill="#000" d="M20.772 27.081l-0.501 2.383c-0.050 0.24-0.28 0.392-0.512 0.34s-0.38-0.289-0.33-0.528l0.569-2.707v-16.588c0-0.245 0.193-0.444 0.431-0.444s0.431 0.199 0.431 0.444v16.215l3.296 0.189c0.238 0.014 0.42 0.223 0.406 0.468s-0.217 0.433-0.454 0.419l-3.335-0.191z"></path> <path fill="#fff" d="M20.772 27.081l-0.501 2.383c-0.050 0.24-0.28 0.392-0.512 0.34s-0.38-0.289-0.33-0.528l0.569-2.707v-16.588c0-0.245 0.193-0.444 0.431-0.444s0.431 0.199 0.431 0.444v16.215l3.296 0.189c0.238 0.014 0.42 0.223 0.406 0.468s-0.217 0.433-0.454 0.419l-3.335-0.191z"></path> <path fill="#fff" d="M11.336 8.354l-0.257-0.333c-0.243-0.315 0.012-0.774 0.398-0.717l12.51 1.838c0.236 0.035 0.399 0.26 0.366 0.503s-0.252 0.412-0.487 0.377l-11.436-1.68 0.056 0.073c0.209 0.27 0.052 0.672-0.281 0.718l-4.467 0.607c-0.236 0.032-0.452-0.139-0.484-0.383s0.135-0.467 0.371-0.499l3.711-0.504z"></path> <path fill="#fff" d="M17.152 11.344c0.026-0.003 0.053-0.005 0.079-0.005 0.357 0 0.645 0.297 0.645 0.665s-0.288 0.665-0.645 0.665c-0.322 0-0.59-0.245-0.637-0.565-0.383-0.45-0.515-1.321-0.521-2.536-0.003-0.556 0.026-1.149 0.076-1.739 0.028-0.339 0.057-0.603 0.074-0.735 0.195-2.391-2.008-3.379-3.568-1.658-0.64 0.707-1.041 1.855-1.266 3.412-0.092 0.634-0.137 1.111-0.194 2.024 0.107 0.119 0.172 0.278 0.172 0.453 0 0.342-0.251 0.624-0.573 0.661-0.031 0.005-0.064 0.007-0.097 0.005-0.015-0.001-0.029-0.003-0.044-0.005-0.324-0.036-0.576-0.318-0.576-0.661 0-0.218 0.102-0.412 0.259-0.533 0.058-0.924 0.105-1.415 0.201-2.075 0.249-1.719 0.703-3.020 1.489-3.888 2.114-2.335 5.321-0.897 5.054 2.359-0.018 0.141-0.045 0.392-0.072 0.717-0.047 0.566-0.075 1.133-0.073 1.658 0.004 0.839 0.098 1.47 0.216 1.78z"></path> <path fill="#fff" d="M14.43 8.138c-0.008 0.245-0.207 0.438-0.445 0.43s-0.424-0.213-0.417-0.459c0.001-0.026 0.001-0.026 0.002-0.051 0.029-0.909 0.047-1.282 0.102-1.792 0.164-1.528 0.58-2.665 1.434-3.481 2.037-1.949 5.235-0.623 5.066 2.208-0.007 0.119-0.018 0.331-0.029 0.608-0.022 0.539-0.033 1.084-0.029 1.59 0.007 0.797 0.053 1.412 0.139 1.744 0.062 0.237-0.075 0.481-0.305 0.544s-0.466-0.077-0.528-0.314c-0.111-0.427-0.161-1.097-0.168-1.966-0.004-0.523 0.007-1.081 0.029-1.634 0.011-0.284 0.023-0.502 0.030-0.626 0.119-1.995-2.13-2.927-3.619-1.501-0.673 0.644-1.021 1.591-1.164 2.927-0.051 0.479-0.069 0.838-0.097 1.723-0.001 0.026-0.001 0.026-0.002 0.052z"></path> </svg>
7411       </a>
7412     </div>
7413     <div class="drawer__title h4">Keranjang Belanja</div>
7414     <div class="drawer__close js-drawer-close">
7415       <button type="button">
7416         <svg class="icon icon-close" version="1.1" xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="32" height="32" viewBox="0 0 32 32">
7417 <title>icon-close</title>
7418 <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>
7419 </svg>
7420       </button>
7421     </div>
7422   </div>
7423   <div id="CartContainer" class="p-2"></div>
7424 </div>
7425 
7426 
7426<script>
7427       
7428     </script>
7428
7429       
7429<script src="//outerbloom.com/cdn/shop/t/138/assets/handlebars.min.js?v=79044469952368397291752652415" defer></script>
7429
7430       <!-- /snippets/ajax-cart-template.liquid -->
7431 
7432   
7432<script id="CartTemplate" type="text/template">
7433   
7434     <form action="/cart" method="post" novalidate class="cart ajaxcart">
7435       <div class="ajaxcart__inner" {{ cart.item_count }}>
7436         {{#items}}
7437         <div class="ajaxcart__product">
7438           <div class="ajaxcart__row" data-line="{{line}}">
7439             <div class="grid">
7440               <div class="grid__item one-quarter">
7441                 <a href="{{url}}" class="ajaxcart__product-image"><img src="{{img}}" alt=""></a>
7442               </div>
7443               <div class="grid__item three-quarters">
7444                 <p class="d-block mb-3">
7445                   <a class="h4 d-block mb-2" href="{{url}}" class="ajaxcart__product-name">{{name}}</a>
7446                   {{#if variation}}
7447                     <span class="ajaxcart__product-meta p">{{variation}}</span>
7448                   {{/if}}
7449                   {{#properties}}
7450                     {{#each this}}
7451                       {{#if this}}
7452                         <span class="ajaxcart__product-meta p hide">{{@key}}: {{this}}</span>
7453                       {{/if}}
7454                     {{/each}}
7455                   {{/properties}}
7456                   
7457                 </p>
7458                 <div class="grid--full display-table">
7459                   <div class="grid__item display-table-cell one-half">
7460                     <div class="ajaxcart__qty">
7461                       <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--minus" data-id="{{key}}" data-qty="{{itemMinus}}" data-line="{{line}}">
7462                         <svg version="1.1" xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" 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>
7463                         <span class="visually-hidden">Kurangi jumlah barang</span>
7464                       </button>
7465                       <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]*">
7466                       <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--plus" data-id="{{key}}" data-line="{{line}}" data-qty="{{itemAdd}}">
7467                         <svg version="1.1" xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" 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>
7468                         <span class="visually-hidden">Tambahkan jumlah barang</span>
7469                       </button>
7470                     </div>
7471                   </div>
7472                   <div class="grid__item display-table-cell one-half text-right">
7473                     {{#if discountsApplied}}
7474                       <small class="ajaxcart-item__price-strikethrough"><s>{{{originalLinePrice}}}</s></small>
7475                       <br><span class="h4">{{{linePrice}}}</span>
7476                     {{else}}
7477                       <span class="h4">{{{linePrice}}}</span>
7478                     {{/if}}
7479                     </div>
7480                   </div>
7481                   {{#if discountsApplied}}
7482                     <div class="grid--full display-table">
7483                       <div class="grid__item text-right">
7484                         {{#each discounts}}
7485                           <small class="ajaxcart-item__discount">{{ this.title }}</small><br>
7486                         {{/each}}
7487                       </div>
7488                     </div>
7489                   {{/if}}
7490                   </div>
7491                 </div>
7492               </div>
7493             </div>
7494           </div>
7495         </div>
7496         {{/items}}
7497       </div>
7498       <div class="ajaxcart__footer">
7499         <div class="grid--full cart-subtotal py-2">
7500             <p>Subtotal</p>
7501             <h3 class="primary">{{{totalPrice}}}</h3>
7502           {{#if totalCartDiscount}}
7503             <p class="ajaxcart__savings text-center"><em>{{{totalCartDiscount}}}</em></p>
7504           {{/if}}
7505         </div>
7506         
7507         <a href="/cart" class="btn btn-cta view-more btn-block cart__checkout mt-2">Checkout</a>
7508         
7509         <p class="cart-checkout-shipping hide">Free Ongkir dengan belanja di atas Rp.10.000 <a href="/pages/pengiriman">detail</a></p>
7510       </div>
7511     </form>
7512   
7513   </script>
7513
7514   
7514<script id="AjaxQty" type="text/template">
7515   
7516     <div class="ajaxcart__qty">
7517       <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--minus" data-id="{{key}}" data-qty="{{itemMinus}}">
7518         <svg version="1.1" xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="24" height="24" viewBox="0 0 32 32">
7519             <title>icon-minus</title>
7520             <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>
7521         </svg>
7522         <span class="visually-hidden">Kurangi jumlah barang</span>
7523           </button>
7524               <input type="text" class="ajaxcart__qty-num" value="{{itemQty}}" min="0" data-id="{{key}}" aria-label="quantity" pattern="[0-9]*">
7525           <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--plus" data-id="{{key}}" data-qty="{{itemAdd}}">
7526         <svg version="1.1" xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" 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>
7527         <span class="visually-hidden">Tambahkan jumlah barang</span>
7528       </button>
7529     </div>
7530   
7531   </script>
7531
7532   
7532<script id="JsQty" type="text/template">
7533   
7534     <div class="js-qty mx-auto mt-2">
7535       <button type="button" class="js-qty__adjust js-qty__adjust--minus" data-id="{{key}}" data-qty="{{itemMinus}}">
7536         <svg version="1.1" xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" 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>
7537         <span class="visually-hidden">Kurangi jumlah barang</span>
7538       </button>
7539       <input type="text" class="js-qty__num" value="{{itemQty}}" min="1" data-id="{{key}}" aria-label="quantity" pattern="[0-9]*" name="{{inputName}}" id="{{inputId}}">
7540       <button type="button" class="js-qty__adjust js-qty__adjust--plus" data-id="{{key}}" data-qty="{{itemAdd}}">
7541         <svg version="1.1" xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" 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>
7542         <span class="visually-hidden">Tambahkan jumlah barang</span>
7543       </button>
7544     </div>
7545   
7546   </script>
7546
7547 
7548 <style>
7549   #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty button,
7550   #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty button,
7551   #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty button {display: none;}
7552   #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty input,
7553   #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty input,
7554   #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty input {pointer-events: none;opacity: 0.5;}
7555   #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty input,
7556   #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty input,
7557   #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty input {pointer-events: none;}
7558 </style>
7559       
7559<script src="//outerbloom.com/cdn/shop/t/138/assets/ajax-cart.js?v=51128912329657147331752652452" defer></script>
7559
7560       
7560<script>
7561         jQuery(function($) {
7562           ajaxCart.init({
7563             formSelector: '#AddToCartForm',
7564             cartContainer: '#CartContainer',
7565             addToCartSelector: '#AddToCartXX',
7566             cartCountSelector: '#CartCount, #CartCount2',
7567             cartCostSelector: '#CartCost',
7568             moneyFormat: "Rp {{amount_no_decimals}}"
7569           });
7570           });
7571 
7572           jQuery(document.body).on('afterCartLoad.ajaxCart', function(evt, cart) {
7573             // Bind to 'afterCartLoad.ajaxCart' to run any javascript after the cart has loaded in the DOM
7574             timber.RightDrawer.open();
7575           });
7576       </script>
7576
7577     
7578 
7579 
7580 
7581 <style>
7582   /** Search AutoComplete **/
7583   .resultsearch .ui-menu-item[data-cat="Collection"],
7584   .resultsearch .ui-menu-item[data-cat="Collection"] {display: none;}
7585   .resultsearch .ui-widget.ui-widget-content {
7586     width: 100%;
7587     top: 48px;
7588     border: none;
7589     box-shadow: 0 4px 8px rgba(255, 255, 255, 0.3);
7590   }
7591   .resultsearch .ui-menu-item {text-align: left;}
7592   .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;}
7593   .ui-state-active {
7594     border: none!important;
7595     background-color: #fafafa!important;
7596     color: #000!important;
7597   }
7598   .ui-menu-item a[data-cat="Collection"] {padding: 5px 12px;}
7599   .ui-menu .ui-menu-item {line-height: normal;}
7600 </style>
7601 
7601<script>
7602 $(window).load(function(){
7603 
7604   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;}
7605 
7606   $.widget("custom.catcomplete", $.ui.autocomplete, {
7607     _renderMenu: function (ul, items) {
7608       // have search reults split up in categories
7609       var that = this,
7610           currentCategory = "";
7611       $.each(items, function (index, item) {
7612         if (item.category != currentCategory) {
7613           ul.append("<li class='ui-autocomplete-category' data-cat=" + item.category + ">" + "<span>" + item.category + "</span>" + "</li>");
7614           currentCategory = item.category;
7615         }
7616         that._renderItemData(ul, item);
7617       });
7618     }
7619   });
7620 
7621   // higlight searched for term
7622   $.ui.autocomplete.prototype._renderItem = function( ul, item ) {
7623     var term = this.element.val(),
7624         html = item.label.replace( term, "<b>$&</b>" );
7625     return $( "<li>" )
7626     .append(format(item))
7627     .appendTo( ul );
7628   };
7629 
7630 
7631   var data = [
7632       { label: "< Rp 500.000", category: "Collection", url: "/collections/rp-500-000", images: " ", price: " " },{ label: "> Rp 1.000.000", category: "Collection", url: "/collections/rp-1-000-000", images: " ", price: " " },{ label: "Acrylic Jewelry Box", category: "Collection", url: "/collections/acrylic-jewelry-box", images: " ", price: " " },{ label: "Ajmal", category: "Collection", url: "/collections/ajmal", images: " ", price: " " },{ label: "Alamat Rumah Duka", category: "Collection", url: "/collections/rumah-duka", images: " ", price: " " },{ label: "Anggrek Bulan", category: "Collection", url: "/collections/anggrek-bulan", images: " ", price: " " },{ label: "Anniversary Gift", category: "Collection", url: "/collections/kado-anniversary", images: " ", price: " " },{ label: "Aquarius ♒️ 20Jan - 18Feb", category: "Collection", url: "/collections/kado-untuk-zodiak-aquarius", images: " ", price: " " },{ label: "Aries ♈️ 21March - 19April", category: "Collection", url: "/collections/kado-untuk-zodiak-aries", images: " ", price: " " },{ label: "Armaf", category: "Collection", url: "/collections/armaf", images: " ", price: " " },{ label: "Aromatherapy Diffuser", category: "Collection", url: "/collections/aromatherapy-diffuser", images: " ", price: " " },{ label: "Artisan Soap", category: "Collection", url: "/collections/artisan-soap", images: " ", price: " " },{ label: "Artisan Tea", category: "Collection", url: "/collections/artisan-tea", images: " ", price: " " },{ label: "AsmaraKu", category: "Collection", url: "/collections/asmaraku", images: " ", price: " " },{ label: "Atkinsons", category: "Collection", url: "/collections/atkinsons", images: " ", price: " " },{ label: "Autumn by Outerbloom", category: "Collection", url: "/collections/autumn-by-outerbloom", images: " ", price: " " },{ label: "Autumn by Outerbloom Chinese New Year", category: "Collection", url: "/collections/autumn-by-outerbloom-chinese-new-year", images: " ", price: " " },{ label: "Autumn by Outerbloom Christmas", category: "Collection", url: "/collections/autumn-by-outerbloom-christmas", images: " ", price: " " },{ label: "Autumn by Outerbloom Luar Jadetabek", category: "Collection", url: "/collections/autumn-by-outerbloom-luar-jadetabek", images: " ", price: " " },{ label: "Autumn by Outerbloom Ramadan", category: "Collection", url: "/collections/autumn-by-outerbloom-ramadan", images: " ", price: " " },{ label: "Autumn Pop", category: "Collection", url: "/collections/autumn-pop", images: " ", price: " " },{ label: "Bachelorette", category: "Collection", url: "/collections/bachelorette", images: " ", price: " " },{ label: "Bag Newborn Hampers", category: "Collection", url: "/collections/bag-newborn-hampers", images: " ", price: " " },{ label: "Balon", category: "Collection", url: "/collections/balon", images: " ", price: " " },{ label: "Beauty Package", category: "Collection", url: "/collections/beauty-package", images: " ", price: " " },{ label: "Best Deal", category: "Collection", url: "/collections/best-deal", images: " ", price: " " },{ label: "Best Seller", category: "Collection", url: "/collections/best-seller", images: " ", price: " " },{ label: "Best Valentine's Deals", category: "Collection", url: "/collections/bes-valentines-deals", images: " ", price: " " },{ label: "Best Value Newborn Hampers Collection", category: "Collection", url: "/collections/best-value-newborn-hampers-collection", images: " ", price: " " },{ label: "Black Tea", category: "Collection", url: "/collections/black-tea", images: " ", price: " " },{ label: "Blessing Hampers", category: "Collection", url: "/collections/blessing-hampers", images: " ", price: " " },{ label: "Bloom Box", category: "Collection", url: "/collections/bloom-box", images: " ", price: " " },{ label: "Bloomcard", category: "Collection", url: "/collections/bloomcard", images: " ", price: " " },{ label: "Boutonniere", category: "Collection", url: "/collections/boutonniere", images: " ", price: " " },{ label: "Bracelet", category: "Collection", url: "/collections/gelang", images: " ", price: " " },{ label: "Buket Bunga Bali", category: "Collection", url: "/collections/buket-bunga-bali", images: " ", price: " " },{ label: "Buket Bunga Bandung", category: "Collection", url: "/collections/buket-bunga-bandung", images: " ", price: " " },{ label: "Buket Bunga Batam", category: "Collection", url: "/collections/buket-bunga-batam", images: " ", price: " " },{ label: "Buket Bunga Demak", category: "Collection", url: "/collections/buket-bunga-demak", images: " ", price: " " },{ label: "Buket Bunga Fresh", category: "Collection", url: "/collections/buket-bunga", images: " ", price: " " },{ label: "Buket Bunga Jepara", category: "Collection", url: "/collections/buket-bunga-jepara", images: " ", price: " " },{ label: "Buket Bunga Medan", category: "Collection", url: "/collections/buket-bunga-medan", images: " ", price: " " },{ label: "Buket Bunga Nusantara", category: "Collection", url: "/collections/buket-bunga-nusantara", images: " ", price: " " },{ label: "Buket Bunga Semarang", category: "Collection", url: "/collections/buket-bunga-semarang", images: " ", price: " " },{ label: "Buket Bunga Sidoarjo", category: "Collection", url: "/collections/buket-bunga-sidoarjo", images: " ", price: " " },{ label: "Buket Bunga Surabaya", category: "Collection", url: "/collections/buket-bunga-surabaya", images: " ", price: " " },{ label: "Buket Bunga Tangerang", category: "Collection", url: "/collections/buket-bunga-tangerang", images: " ", price: " " },{ label: "Buket Bunga Uang", category: "Collection", url: "/collections/buket-bunga-uang", images: " ", price: " " },{ label: "Buket Bunga Valentine", category: "Collection", url: "/collections/buket-bunga-valentine", images: " ", price: " " },{ label: "Buket Bunga Yogyakarta", category: "Collection", url: "/collections/buket-bunga-jogja", images: " ", price: " " },{ label: "Bunga Anggrek Bali", category: "Collection", url: "/collections/bunga-anggrek-bali", images: " ", price: " " },{ label: "Bunga Anggrek Bandung", category: "Collection", url: "/collections/bunga-anggrek-bandung", images: " ", price: " " },{ label: "Bunga Anggrek Surabaya", category: "Collection", url: "/collections/bunga-anggrek-surabaya", images: " ", price: " " },{ label: "Bunga Anniversary", category: "Collection", url: "/collections/bunga-anniversary", images: " ", price: " " },{ label: "Bunga Artificial", category: "Collection", url: "/collections/bunga-artificial", images: " ", price: " " },{ label: "Bunga Buket", category: "Collection", url: "/collections/bunga-buket", images: " ", price: " " },{ label: "Bunga Carnations Bali", category: "Collection", url: "/collections/bunga-carnations-bali", images: " ", price: " " },{ label: "Bunga Carnations Bandung", category: "Collection", url: "/collections/bunga-carnations-bandung", images: " ", price: " " },{ label: "Bunga Carnations Surabaya", category: "Collection", url: "/collections/bunga-carnations-surabaya", images: " ", price: " " },{ label: "Bunga Daisy Bali", category: "Collection", url: "/collections/bunga-daisy-bali", images: " ", price: " " },{ label: "Bunga Daisy Bandung", category: "Collection", url: "/collections/bunga-daisy-bandung", images: " ", price: " " },{ label: "Bunga Daisy Surabaya", category: "Collection", url: "/collections/bunga-daisy-surabaya", images: " ", price: " " },{ label: "Bunga Gerbera Bali", category: "Collection", url: "/collections/bunga-gerbera-bali", images: " ", price: " " },{ label: "Bunga Gerbera Bandung", category: "Collection", url: "/collections/bunga-gerbera-bandung", images: " ", price: " " },{ label: "Bunga Gerbera Surabaya", category: "Collection", url: "/collections/bunga-gerbera-surabaya", images: " ", price: " " },{ label: "Bunga Imlek", category: "Collection", url: "/collections/rangkaian-bunga-tahun-baru-imlek", images: " ", price: " " },{ label: "Bunga Lebaran", category: "Collection", url: "/collections/rangkaian-bunga-lebaran", images: " ", price: " " },{ label: "Bunga Lily Bali", category: "Collection", url: "/collections/bunga-lily-bali", images: " ", price: " " },{ label: "Bunga Lily Bandung", category: "Collection", url: "/collections/bunga-lily-bandung", images: " ", price: " " },{ label: "Bunga Lily Surabaya", category: "Collection", url: "/collections/bunga-lily-surabaya", images: " ", price: " " },{ label: "Bunga Matahari Bali", category: "Collection", url: "/collections/bunga-matahari-bali", images: " ", price: " " },{ label: "Bunga Matahari Bandung", category: "Collection", url: "/collections/bunga-matahari-bandung", images: " ", price: " " },{ label: "Bunga Matahari Surabaya", category: "Collection", url: "/collections/bunga-matahari-surabaya", images: " ", price: " " },{ label: "Bunga Mawar Bali", category: "Collection", url: "/collections/bunga-mawar-bali", images: " ", price: " " },{ label: "Bunga Mawar Bandung", category: "Collection", url: "/collections/bunga-mawar-bandung", images: " ", price: " " },{ label: "Bunga Mawar Surabaya", category: "Collection", url: "/collections/bunga-mawar-surabaya", images: " ", price: " " },{ label: "Bunga Meja", category: "Collection", url: "/collections/bunga-meja", images: " ", price: " " },{ label: "Bunga Meja Bali", category: "Collection", url: "/collections/bunga-meja-bali", images: " ", price: " " },{ label: "Bunga Meja Bandung", category: "Collection", url: "/collections/bunga-meja-bandung", images: " ", price: " " },{ label: "Bunga Meja Batam", category: "Collection", url: "/collections/bunga-meja-batam", images: " ", price: " " },{ label: "Bunga Meja Jepara", category: "Collection", url: "/collections/bunga-meja-jepara", images: " ", price: " " },{ label: "Bunga Meja Medan", category: "Collection", url: "/collections/bunga-meja-medan", images: " ", price: " " },{ label: "Bunga Meja Semarang", category: "Collection", url: "/collections/bunga-meja-semarang", images: " ", price: " " },{ label: "Bunga Meja Sidoarjo", category: "Collection", url: "/collections/bunga-meja-sidoarjo", images: " ", price: " " },{ label: "Bunga Meja Surabaya", category: "Collection", url: "/collections/bunga-meja-surabaya", images: " ", price: " " },{ label: "Bunga Meja Tangerang", category: "Collection", url: "/collections/bunga-meja-tangerang", images: " ", price: " " },{ label: "Bunga Meja Yogyakarta", category: "Collection", url: "/collections/bunga-meja-jogja", images: " ", price: " " },{ label: "Bunga Modern Pastel Bali", category: "Collection", url: "/collections/bunga-modern-pastel-bali", images: " ", price: " " },{ label: "Bunga Modern Pastel Bandung", category: "Collection", url: "/collections/bunga-modern-pastel-bandung", images: " ", price: " " },{ label: "Bunga Modern Pastel Medan", category: "Collection", url: "/collections/bunga-modern-pastel-medan", images: " ", price: " " },{ label: "Bunga Modern Pastel Semarang", category: "Collection", url: "/collections/bunga-modern-pastel-semarang", images: " ", price: " " },{ label: "Bunga Modern Pastel Surabaya", category: "Collection", url: "/collections/bunga-modern-pastel-surabaya", images: " ", price: " " },{ label: "Bunga Modern Pastel Yogyakarta", category: "Collection", url: "/collections/bunga-modern-pastel-yogyakarta", images: " ", price: " " },{ label: "Bunga Natal", category: "Collection", url: "/collections/rangkaian-bunga-christmas", images: " ", price: " " },{ label: "Bunga Papan", category: "Collection", url: "/collections/bunga-papan", images: " ", price: " " },{ label: "Bunga Pernikahan", category: "Collection", url: "/collections/bunga-pernikahan", images: " ", price: " " },{ label: "Bunga Plastik", category: "Collection", url: "/collections/bunga-plastik", images: " ", price: " " },{ label: "Bunga Tulip", category: "Collection", url: "/collections/bunga-tulip", images: " ", price: " " },{ label: "Bunga Ulang Tahun", category: "Collection", url: "/collections/bunga-ulang-tahun", images: " ", price: " " },{ label: "Bunga Wisuda", category: "Collection", url: "/collections/karangan-bunga-wisuda", images: " ", price: " " },{ label: "Cake", category: "Collection", url: "/collections/kue", images: " ", price: " " },{ label: "Cake", category: "Collection", url: "/collections/cake", images: " ", price: " " },{ label: "Cake Sameday Delivery", category: "Collection", url: "/collections/cake-sameday-delivery", images: " ", price: " " },{ label: "Cake, Hampers & Gifts", category: "Collection", url: "/collections/cake-hampers", images: " ", price: " " },{ label: "Cancer ♋️ 22June - 22July", category: "Collection", url: "/collections/kado-untuk-zodiak-cancer", images: " ", price: " " },{ label: "Capricorn ♑️ 21Dec - 19Jan", category: "Collection", url: "/collections/kado-untuk-zodiak-capricorn", images: " ", price: " " },{ label: "Care Packages", category: "Collection", url: "/collections/toko-parcel-murah", images: " ", price: " " },{ label: "Care Packages (Keluarga, Sahabat, Karyawan)", category: "Collection", url: "/collections/sehat-bebas-corona", images: " ", price: " " },{ label: "Carnations", category: "Collection", url: "/collections/bunga-anyelir", images: " ", price: " " },{ label: "Celebration", category: "Collection", url: "/collections/celebration", images: " ", price: " " },{ label: "Chléa Paperie", category: "Collection", url: "/collections/chlea-paperie", images: " ", price: " " },{ label: "Chocodot", category: "Collection", url: "/collections/chocodot", images: " ", price: " " },{ label: "Christmas", category: "Collection", url: "/collections/christmas", images: " ", price: " " },{ label: "Classic Cake", category: "Collection", url: "/collections/classic-cake", images: " ", price: " " },{ label: "Classic CNY Hampers", category: "Collection", url: "/collections/classic-cny-hampers", images: " ", price: " " },{ label: "Classic CNY Hampers Luar Jabodetabek", category: "Collection", url: "/collections/classic-cny-hampers-luar-jabodetabek", images: " ", price: " " },{ label: "Classic Hampers", category: "Collection", url: "/collections/classic-hampers", images: " ", price: " " },{ label: "Classic Hampers Luar Jadetabek", category: "Collection", url: "/collections/classic-hampers-luar-jadetabek", images: " ", price: " " },{ label: "Classic Style Flowers", category: "Collection", url: "/collections/classic-style-flowers", images: " ", price: " " },{ label: "Cokelat", category: "Collection", url: "/collections/permen-coklat", images: " ", price: " " },{ label: "Collection List", category: "Collection", url: "/collections/collection-list", images: " ", price: " " },{ label: "Condolences", category: "Collection", url: "/collections/axa-condolences", images: " ", price: " " },{ label: "Congratulations", category: "Collection", url: "/collections/rangkaian-bunga-ucapan-selamat", images: " ", price: " " },{ label: "Corporate Gifts", category: "Collection", url: "/collections/corporate-gifts", images: " ", price: " " },{ label: "Corporate Hampers", category: "Collection", url: "/collections/corporate-hampers", images: " ", price: " " },{ label: "Couple Gift", category: "Collection", url: "/collections/couple-gift", images: " ", price: " " },{ label: "Craft S
7632weetbox 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: " " }
7632,{ 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: " " }
7632,{ 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: " " }
7632,{ 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
7632dal", 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-
7632hampers", 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
7632o-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: " " }
7632,{ 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: " " }
7632,{ 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: " " }
7632,{ 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: " " }
7632,{ 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: " " }
7632,{ 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: " " }
7632,{ 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: " " }
7632,{ 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: "OMPONG188 jadi situs hiburan game online kane dengan transaksi via QRIS, login super fleksibel, akses responsif, dan berbagai pilihan game online yang menarik untuk dimainkan setiap waktu.", category: "Collection", url: "/collections/standing-flower", images: " ", price: " " },{ label: "OMPONG188 jadi situs hiburan game online kane dengan transaksi via QRIS, login super fleksibel, akses responsif, dan berbagai pilihan game online yang menarik untuk dimainkan setiap waktu. Bali", category: "Collection", url: "/collections/standing-flower-bali", images: " ", price: " " },{ label: "OMPONG188 jadi situs hiburan game online kane dengan transaksi via QRIS, login super fleksibel, akses responsif, dan berbagai pilihan game online yang menarik untuk dimainkan setiap waktu. Bandung", category: "Collection", url: "/collections/standing-flower-bandung", images: " ", price: " " },{ label: "OMPONG188 jadi situs hiburan game online kane dengan transaksi via QRIS, login super fleksibel, akses responsif, dan berbagai pilihan game online yang menarik untuk dimainkan setiap waktu. C
7632ongratulations", category: "Collection", url: "/collections/standing-flower-congratulations", images: " ", price: " " },{ label: "OMPONG188 jadi situs hiburan game online kane dengan transaksi via QRIS, login super fleksibel, akses responsif, dan berbagai pilihan game online yang menarik untuk dimainkan setiap waktu. Demak", category: "Collection", url: "/collections/standing-flower-demak", images: " ", price: " " },{ label: "OMPONG188 jadi situs hiburan game online kane dengan transaksi via QRIS, login super fleksibel, akses responsif, dan berbagai pilihan game online yang menarik untuk dimainkan setiap waktu. Jepara", category: "Collection", url: "/collections/standing-flower-jepara", images: " ", price: " " },{ label: "OMPONG188 jadi situs hiburan game online kane dengan transaksi via QRIS, login super fleksibel, akses responsif, dan berbagai pilihan game online yang menarik untuk dimainkan setiap waktu. Semarang", category: "Collection", url: "/collections/standing-flower-semarang", images: " ", price: " " },{ label: "OMPONG188 jadi situs hiburan game online kane dengan transaksi via QRIS, login super fleksibel, akses responsif, dan berbagai pilihan game online yang menarik untuk dimainkan setiap waktu. Sidoarjo", category: "Collection", url: "/collections/standing-flower-sidoarjo", images: " ", price: " " },{ label: "OMPONG188 jadi situs hiburan game online kane dengan transaksi via QRIS, login super fleksibel, akses responsif, dan berbagai pilihan game online yang menarik untuk dimainkan setiap waktu. Surabaya", category: "Collection", url: "/collections/standing-flower-surabaya", images: " ", price: " " },{ label: "OMPONG188 jadi situs hiburan game online kane dengan transaksi via QRIS, login super fleksibel, akses responsif, dan berbagai pilihan game online yang menarik untuk dimainkan setiap waktu. 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-bunga-atambua", images: " ", price: " " },{ label: "Toko Bunga Bali", category: "Collection", url: "/collections/toko-bunga-bali", images: " ", price: " " },{ label: "Toko Bunga Balikpapan", category: "Collection", url: "/collections/toko-bunga-balikpapan", images: " ", price: " " }
7632,{ 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: " " }
7632,{ 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
7632dal", 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: " " },
7633       { label: "grand salutation jabodetabek", category: "Produk", url: "/products/grand-salutation", images: "//outerbloom.com/cdn/shop/files/JKTCON1005_Grand-Salutation-Jabodetabek-WM_thumb.jpg?v=1703241523", price: "Rp 435.000" },{ label: "consolantibus jabodetabek", category: "Produk", url: "/products/consolantibus", images: "//outerbloom.com/cdn/shop/files/JKTDUK1011_Consolantibus-Jabodetabek-WM_thumb.jpg?v=1703239823", price: "Rp 435.000" },{ label: "classic midnight hand bouquet fiery red", category: "Produk", url: "/products/the-classic-midnight-hand-bouquet-fiery-red", images: "//outerbloom.com/cdn/shop/files/OBVBUN1422_Classic-Midnight-Hand-Bouquet---Fiery-Red-large_thumb.jpg?v=1757302521", price: "Rp 385.000" },{ label: "enchanted dome passionate red", category: "Produk", url: "/products/enchanted-dome-passionate-red", images: "//outerbloom.com/cdn/shop/files/Enchanted-dome-red-new-box_3_2_26c081bf-f2a5-42b4-9ce4-3c0304c498e5_thumb.jpg?v=1712639476", price: "Rp 1.435.000" },{ label: "endearing ruby", category: "Produk", url: "/products/endearing-ruby", images: "//outerbloom.com/cdn/shop/products/OUTSTF1003_Endearing-Ruby_thumb.jpg?v=1631296611", price: "Rp 585.000" },{ label: "gentle soul jabodetabek", category: "Produk", url: "/products/gentle-soul-jabodetabek", images: "//outerbloom.com/cdn/shop/files/JKTDUK1030_Gentle-Soul-Jabodetabek-WM_thumb.jpg?v=1703239894", price: "Rp 435.000" },{ label: "belleza jabodetabek", category: "Produk", url: "/products/belleza", images: "//outerbloom.com/cdn/shop/files/Belleza-Jabodetabek-LED_aecb756a-0737-45cc-8bfb-008515ca0a37_thumb.gif?v=1759229680", price: "Rp 435.000" }
7633,{ label: "majestic pink roses with baby breath bouquet", category: "Produk", url: "/products/majestic-pink-roses-with-baby-breath-bouquet", images: "//outerbloom.com/cdn/shop/products/ef4a3be9-c938-4c70-98ac-4873e7da82bf_90820a66-923a-463d-a464-81bcbe6e6644_thumb.jpg?v=1581413440", price: "Rp 485.000" },{ label: "sentiments jabodetabek", category: "Produk", url: "/products/sentiments", images: "//outerbloom.com/cdn/shop/files/Sentiments-Jabodetabek-WM_thumb.jpg?v=1759224099", price: "Rp 485.000" },{ label: "rose poetry bouquet", category: "Produk", url: "/products/rose-poetry-bouquet", images: "//outerbloom.com/cdn/shop/products/Rose-Poetry-Bouquet-20-tangkai_thumb.jpg?v=1675151039", price: "Rp 385.000" },{ label: "genuine feeling", category: "Produk", url: "/products/genuine-feeling", images: "//outerbloom.com/cdn/shop/products/OUTSTF1004Genuine-Feeling_981ade89-af27-433e-81aa-8d76175a0e4d_thumb.jpg?v=1612352389", price: "Rp 585.000" },{ label: "eternal fidelity jabodetabek", category: "Produk", url: "/products/eternal-fidelity-jabodetabek", images: "//outerbloom.com/cdn/shop/products/0b89df45-dcc1-4876-820e-61b2243a1945_964e211d-2972-46c9-8593-976210929089_thumb.jpg?v=1590491458", price: "Rp 435.000" },{ label: "rosabelle hand bouquet", category: "Produk", url: "/products/rosabelle-hand-bouquet", images: "//outerbloom.com/cdn/shop/files/OBVBUN1429_Rosabelle-Hand-Bouquet-Medium_thumb.jpg?v=1756971848", price: "Rp 385.000" },{ label: "dreaming in pink luxury in vase", category: "Produk", url: "/products/dreaming-in-pink-luxury-in-vase", images: "//outerbloom.com/cdn/shop/products/OBVBUN1051_Dreaming-In-Pink-Luxury-In-Vase_3_thumb.jpg?v=1614594504", price: "Rp 735.000" },{ label: "excito jabodetabek", category: "Produk", url: "/products/excito", images: "//outerbloom.com/cdn/shop/files/JKTCON1010_Excito-Jabodetabek-2023_thumb.gif?v=1717494677", price: "Rp 485.000" },{ label: "golden toast jabodetabek", category: "Produk", url: "/products/golden-toast", images: "//outerbloom.com/cdn/shop/products/LED-GoldenToast_thumb.gif?v=1579249585", price: "Rp 485.000" },{ label: "spirit of eminance jabodetabek", category: "Produk", url: "/products/spirit-of-eminance-jabodetabek", images: "//outerbloom.com/cdn/shop/files/JKTCON1026_Spirit-of-Eminance-Jabodetabek-newest-WM_thumb.jpg?v=1693297526", price: "Rp 485.000" },{ label: "white elysian bloom box", category: "Produk", url: "/products/white-elysian-bloom-box", images: "//outerbloom.com/cdn/shop/files/OBVBUN1704_White-Elysian-Bloom-Box_thumb.jpg?v=1757328247", price: "Rp 685.000" },{ label: "charming forevermore jabodetabek", category: "Produk", url: "/products/charming-forevermore-jabodetabek", images: "//outerbloom.com/cdn/shop/files/JKTWED1036_Charming-Forevermore-Jabodetabek-WM_thumb.jpg?v=1703239534", price: "Rp 485.000" },{ label: "moment of glory jabodetabek", category: "Produk", url: "/products/moment-of-glory-jabodetabek", images: "//outerbloom.com/cdn/shop/products/JKTCON1051_Moment-of-Glory-Jabodetabek_2_thumb.jpg?v=1596614663", price: "Rp 385.000" },{ label: "sweet romance jabodetabek", category: "Produk", url: "/products/sweet-romance", images: "//outerbloom.com/cdn/shop/products/JKTWED1005_Sweet-Romance-Jabodetabek_thumb.gif?v=1677134791", price: "Rp 635.000" },{ label: "with love bouquet", category: "Produk", url: "/products/with-love-bouquet", images: "//outerbloom.com/cdn/shop/products/c5d6fed6-8ada-4c38-ae0f-36d395aacb19_613f78f0-d52c-443b-9e13-63a151cd8ec5_thumb.jpg?v=1590748429", price: "Rp 535.000" },{ label: "sunflower yellow and with white daisies in vase", category: "Produk", url: "/products/sunflower-yellow-roses-with-white-and-yellow-daisies-in-a-glass-vase", images: "//outerbloom.com/cdn/shop/files/OBVBUN1132_Sunflower-Yellow-And-With-White-Daisies-in-Vase_thumb.jpg?v=1757930628", price: "Rp 435.000" },{ label: "everlasting peace jabodetabek", category: "Produk", url: "/products/everlasting-peace-jabodetabek", images: "//outerbloom.com/cdn/shop/products/JKTDUK1034_Everlasting-Peace-Jabodetabek_2_thumb.jpg?v=1596614613", price: "Rp 385.000" },{ label: "astoria passionate red", category: "Produk", url: "/products/astoria-passionate-red", images: "//outerbloom.com/cdn/shop/products/Astoria-passionate-red_b59b26f6-c39d-46d3-adcb-262c675bb16f_thumb.jpg?v=1633502742", price: "Rp 685.000" },{ label: "classic purple orchid majesty in vase", category: "Produk", url: "/products/classic-purple-orchid-majesty-in-vase", images: "//outerbloom.com/cdn/shop/products/Classic-Purple-Orchid-Majesty-in-Vase---White---4-Tangkai_40a5e337-283f-40f5-911c-5df9b506b9da_thumb.jpg?v=1639981404", price: "Rp 435.000" },{ label: "passion rouge bloom box", category: "Produk", url: "/products/passion-rouge-bloom-box", images: "//outerbloom.com/cdn/shop/files/OBVBUN1725_Passion-Rouge-Bloom-Box_thumb.jpg?v=1756972410", price: "Rp 385.000" },{ label: "classic white orchid majesty in vase", category: "Produk", url: "/products/classic-white-orchid-majesty-in-vase", images: "//outerbloom.com/cdn/shop/products/Classic-white-Orchid-Majesty-in-Vase---white---4-Tangkai_thumb.jpg?v=1644205542", price: "Rp 435.000" }
7633,{ 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" }
7634   ];
7635 
7636              
7637         $( ".header-input-search" ).catcomplete({
7638          appendTo: ".searchResult",source: function(request, response) {
7639             var results = $.ui.autocomplete.filter(data, request.term);
7640             var predicate = function () {
7641                 var counter = { Collection: 0, Produk: 0 };
7642             var fn = function(item) {counter[item.category] += 1;return (counter[item.category] <= 5);}
7643             return fn
7644             }();
7645             response(results.filter(predicate));
7646           },
7647           minLength:1,
7648            //results are clickable
7649           select: function( event, ui ) {window.location = ui.item.url;}
7650 });
7651 $( ".header-input-search2" ).catcomplete({
7652         appendTo: ".searchResult2",
7653                    source: function(request, response) {
7654                     var results = $.ui.autocomplete.filter(data, request.term);
7655                     var predicate = function () {
7656                         var counter = { Collection: 0, Produk: 0 };
7657               var fn = function(item) {
7658               counter[item.category] += 1;
7659   return (counter[item.category] <= 5);
7660 }
7661                return fn
7662                }();
7663 response(results.filter(predicate));
7664 },
7665   minLength:1,
7666         //results are clickable
7667         select: function( event, ui ) {
7668           window.location = ui.item.url;
7669         }
7670 });
7671 });
7672 </script>
7672
7673 
7674     
7674<script src="//outerbloom.com/cdn/shop/t/138/assets/vendors.js?v=6349622868601634021752652419" defer></script>
7674
7675 
7675<script src="//outerbloom.com/cdn/shop/t/138/assets/app.js?v=136050180318808583701752652452" defer></script>
7675
7676 
7677 
7677<script>
7678   ( function() {
7679     var youtube = document.querySelectorAll( ".youtube" );
7680     for (var i = 0; i < youtube.length; i++) {
7681       var source = "https://img.youtube.com/vi/"+ youtube[i].dataset.embed +"/sddefault_1x.jpg";
7682       var datasource = "https://img.youtube.com/vi/"+ youtube[i].dataset.embed +"/sddefault.jpg";
7683       var image = new Image();
7684       image.src = source;
7685       image.setAttribute("data-src", datasource);
7686       image.classList.add("swiper-lazy");
7687       image.addEventListener( "load", function() {
7688         youtube[ i ].appendChild( image );
7689       }( i ) );
7690       youtube[i].addEventListener( "click", function() {
7691         var iframe = document.createElement( "iframe" );
7692         iframe.setAttribute( "width", "480" );
7693         iframe.setAttribute( "height", "480" );
7694         iframe.setAttribute( "frameborder", "0" );
7695         iframe.setAttribute( "allowfullscreen", "" );
7696         iframe.setAttribute( "src", "https://www.youtube.com/embed/"+ this.dataset.embed +"?rel=0&showinfo=0&autoplay=1" );
7697         this.innerHTML = "";
7698         this.appendChild( iframe );
7699       } );
7700     };
7701 
7702   } )();
7703 
7704   /* Lazy Load */
7705   const mainLazyLoad = new LazyLoad({threshold:400});
7706   $(document).ready(function(){
7707 
7708     $("selectxxx").addClass("needsclick");
7709     FastClick.attach(document.body);
7710     
7711     var $customSelects = $('.select-search');
7712     $customSelects.select2({
7713       templateResult: function(result, container) {
7714         if (!result.id) {
7715           return result.text;
7716         }
7717         container.className += ' needsclick';
7718         return result.text;
7719       }
7720     });
7721     $customSelects.each(function(index, el){$(el).data('select2').$container.find('*').addClass('needsclick');});
7722     $(document).on('select2:open', () => {
7723       document.querySelector('.select2-search__field').focus();
7724     });
7725     
7726 
7727     $(".overlay").click(function(){
7728       $(".js-drawer-close").click();
7729     });
7730     $(".site-nav--mobile .js-drawer-open-left, #NavDrawer .icon-close, .overlay-nav").click(function(){
7731       $("html").toggleClass("nav_open");
7732     });
7733     
7734     $('.swatch-element label').on('click', function(){
7735       var srcImg = $(this).data('src');
7736       $('#thumb-image-product .product-single__thumbnail').each(function(){
7737         if ($(this).attr("href") == srcImg) {
7738           $(this).trigger('click');
7739         }
7740       });
7741     });
7742     var defaultValue = $(".swatch input:checked").val()
7743     
7744     $('#purchaseProduct .swatch [type=radio]').change(function() {
7745       var optionIndex = $(this).closest('.swatch').attr('data-option-index');
7746       var optionValue = $(this).val();
7747       console.log(optionIndex, optionValue)
7748       var value = parseInt(optionValue.split(' ')[0])
7749       $(this)
7750       .closest('#purchaseProduct')
7751       .find('.single-option-selector')
7752       .eq(optionIndex)
7753       .val(optionValue)
7754       .trigger('change');
7755       
7756     });
7757     
7758   });
7759   $(document).ready(function(){
7760     $(".nav-search a").click(function(e){
7761       e.preventDefault();
7762       $(".icon-navsearch").toggle();
7763       $(".icon-navclose").toggle();
7764       $(".site-nav__item > .site-nav__link").toggle();
7765       $(".open-search").toggle();
7766       $(".open-search input").focus();
7767     });
7768     $(".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'>");
7769     if ($(window).width() < 768) {
7770       $(".bg-products .label-tag.valentine").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-valentine_75x.png?v=82732945490105366961752652419' alt='Icon Valentine'>");
7771       $(".bg-products .label-tag.cny").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-cny_45x.png?v=101884295148001743851752652418' alt='Icon CNY'>");
7772       $(".bg-products .label-tag.free-valentine").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/free-valentine_150x.png?v=171641187769238175351752652421' alt='Icon Free Valentine'>");
7773     } else {
7774       $(".bg-products .label-tag.valentine").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-valentine_60x.png?v=82732945490105366961752652419' alt='Icon Valentine'>");
7775       $(".bg-products .label-tag.cny").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-cny_60x.png?v=101884295148001743851752652418' alt='Icon CNY'>");
7776       $(".bg-products .label-tag.free-valentine").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/free-valentine_200x.png?v=171641187769238175351752652421' alt='Icon Free Valentine'>");
7777     }
7778     $(".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'>");
7779     $(".bg-products .label-tag.mothersday").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/mothers-day_70x.png?v=171373711354766377891752652419' alt='Icon Mothers day'>");
7780   });
7781 </script>
7781
7782 
7783 
7784     
7785 
7786     
7786<script type="text/javascript">
7787       var wishlistpage = 0;
7788        
7789        var quickShop_money_format="<span class='money'>"+"Rp {{amount_no_decimals}}"+"</span>";
7790     </script>
7790
7791     
7792       <!-- Remove duplicate wishlist.js reference -->
7793       <style>
7794   .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)}}
7795 </style>
7796 
7797 <div class="modal fade" id="modalwishlist0" tabindex="-1" role="dialog">
7798   <div class="modal-dialog" role="document">
7799     <div class="modal-content">        
7800       <div class="modal-body">Your Wishlist is empty!</div>
7801       <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>          
7802     </div>
7803   </div>
7804 </div> 
7805 
7806 <div class="wishlist-model">
7807   <div class="modal fade" id="modalwishlist1" tabindex="-1" role="dialog" aria-hidden="true">
7808     <div class="modal-dialog white-modal">
7809       <div class="modal-content">
7810         <div class="modal-header">
7811           <button type="button" class="close" data-dismiss="modal" aria-label="Close">
7812             <svg class="icon icon-close" version="1.1" xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="32" height="32" viewBox="0 0 32 32">
7813 <title>icon-close</title>
7814 <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>
7815 </svg>
7816           </button>
7817         </div>
7818         <div class="modal-body">
7819           <div class="wishlist-left">
7820             <div class="wishlist-note">
7821               <span class="cirle"><svg version="1.1" xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="32" height="32" viewBox="0 0 32 32">
7822 <title>icon-check</title>
7823 <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>
7824 </svg></span>
7825               Product added to <a href="/pages/wish-list">Wishlist</a>
7826             </div>
7827             <div class="wishlist-product">
7828               <div class="product-left">
7829                 <div class="wishlist-image"></div>
7830               </div>
7831               <div class="product-right">
7832                 <div class="wishlist-name"></div>
7833                 <div class="wishlist-price"></div>
7834               </div>
7835             </div>
7836           </div>
7837           <div class="wishlist-right">
7838             <div class="wishlist-cart">
7839               <form action="/cart/add" method="post" class="variants-form variants" id="AddToCartForm" enctype="multipart/form-data">                  
7840                 <div class="others-bottom">
7841                   <a class="btn btn-quick-shop" href="/pages/wish-list">View Wishlist</a>
7842                   <button type="submit" name="add" id="AddToCart" class="btn btn-cta">
7843                     <span id="AddToCartText" class="">Beli Sekarang</span>
7844                   </button>
7845                 </div>
7846                 <div id="wishlist-variants-container" class="variants-wrapper"></div> 
7847                 <div class="quantity-content">
7848                   <label>QTY</label>
7849                   <input type="number" size="5" class="" name="quantity" value="1" />
7850                 </div>
7851               </form> 
7852             </div>
7853           </div>
7854         </div>
7855       </div>
7856     </div>
7857   </div>
7858 </div>
7859 
7860     
7861     <style>
7862        .stamped-badge[data-rating="0.0"]{display: none !Important;}
7863        
7864         div[data-load-type="continue"] ul.stamped-pagination li.next a, div[data-widget-load-type="continue"] ul.stamped-pagination li.next a {
7865           border-radius: 0px;
7866       }
7867           .stamped-review-body {
7868           padding-left: 0px !important;
7869       }
7870           #product-reviews .stamped-header:after {
7871             display:none !Important;
7872           }
7873       #stamped-main-widget .stamped-container, .stamped-badge-caption,#stamped-reviews-widget {
7874           font-family:inherit !important;
7875       }
7876     </style>
7877 
7878     
7879 
7880 <div id='stamped-rewards-init' class='stamped-rewards-init'
7881   data-key-public=''
7882 
7883 ></div>
7884 
7885     
7885<script src="//outerbloom.com/cdn/shop/t/138/assets/variant-sku-handler.js?v=91239063692820757781752652418" defer></script>
7885
7886     <!-- Remove duplicate jQuery reference and load wishlist script properly -->
7887     
7887<script src="//outerbloom.com/cdn/shop/t/138/assets/wishlist-fixed.js?v=35991423018869066281754360012" defer></script>
7887
7888 
7889     
7889<script>
7890       function myInit(){ StampedFn.init({ apiKey: 'pubkey-hCS8DHE9QbBHhHN89WXFkuJ0Y3422D', sId: '23462' }); }
7891     </script>
7891
7892     
7892<script async onload="myInit()" type="text/javascript" src="https://cdn1.stamped.io/files/widget.min.js"></script>
7892<style>
7893   .jss59 {
7894     background-color: rgba(0, 0, 0, 0.6);
7895   }
7896   .MuiBackdrop-root {
7897     top: 0;
7898     left: 0;
7899     right: 0;
7900     bottom: 0;
7901     display: flex;
7902     z-index: -1;
7903     position: fixed;
7904     align-items: center;
7905     justify-content: center;
7906     background-color: rgba(0, 0, 0, 0.5);
7907     -webkit-tap-highlight-color: transparent;
7908   }
7909   .MuiDialog-scrollPaper {
7910     display: flex;
7911     align-items: center;
7912     justify-content: center;
7913   }
7914   .MuiDialog-container {
7915     height: 100%;
7916     outline: 0;
7917   }
7918   .MuiPaper-elevation24 {
7919     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);
7920   }
7921   .MuiDialog-paper {
7922     margin: 32px;
7923     position: relative;
7924     overflow-y: auto;
7925   }
7926   .MuiDialog-paperScrollPaper {
7927     display: flex;
7928     max-height: calc(100% - 64px);
7929     flex-direction: column;
7930   }
7931   .MuiDialog-paperWidthSm {
7932     max-width: 600px;
7933   }
7934   #location-lock-dialog {
7935     top: 20%;
7936     left: 0;
7937     right: 0;
7938     width: 30%;
7939     margin: 0px auto;
7940     display: block;
7941     padding: 30px;
7942     z-index: 99999;
7943     position: fixed;
7944     font-size: 14px;
7945     background: rgb(0, 0, 0);
7946     box-shadow: rgba(11, 11, 12, 0.2) 2px 4px 5px 0px;
7947     text-align: center;
7948     font-family: Roboto, Arial, sans-serif;
7949     line-height: 1;
7950     border-radius: 8px;
7951     -webkit-font-smoothing: subpixel-antialiased;
7952   }
7953   .MuiButtonBase-root {
7954     color: inherit;
7955     border: 0;
7956     cursor: pointer;
7957     margin: 0;
7958     display: inline-flex;
7959     outline: 0;
7960     padding: 0;
7961     position: relative;
7962     align-items: center;
7963     user-select: none;
7964     border-radius: 0;
7965     vertical-align: middle;
7966     -moz-appearance: none;
7967     justify-content: center;
7968     text-decoration: none;
7969     background-color: transparent;
7970     -webkit-appearance: none;
7971     -webkit-tap-highlight-color: transparent;
7972   }
7973   .MuiIconButton-root {
7974     flex: 0 0 auto;
7975     color: rgba(0, 0, 0, 0.54);
7976     padding: 12px;
7977     overflow: visible;
7978     font-size: 1.5rem;
7979     text-align: center;
7980     transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
7981     border-radius: 50%;
7982   }
7983   .MuiIconButton-label {
7984     width: 100%;
7985     display: flex;
7986     align-items: inherit;
7987     justify-content: inherit;
7988   }
7989   .MuiSvgIcon-root {
7990     fill: currentColor;
7991     width: 1em;
7992     height: 1em;
7993     display: inline-block;
7994     font-size: 1.5rem;
7995     transition: fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
7996     flex-shrink: 0;
7997     user-select: none;
7998   }
7999   .MuiTouchRipple-root {
8000     top: 0;
8001     left: 0;
8002     right: 0;
8003     bottom: 0;
8004     z-index: 0;
8005     overflow: hidden;
8006     position: absolute;
8007     border-radius: inherit;
8008     pointer-events: none;
8009   }
8010   .jss36 {
8011     color: #222222;
8012     font-size: 24px;
8013     font-family: Roboto, Arial, sans-serif;
8014     font-weight: 500;
8015   }
8016   .jss37 {
8017     color: #555555;
8018     padding: 10px 0px 0px;
8019     font-size: 14px;
8020   }
8021   .MuiFormGroup-root {
8022     display: flex;
8023     flex-wrap: wrap;
8024     flex-direction: column;
8025   }
8026   .MuiFormGroup-row {
8027     flex-direction: row;
8028   }
8029   .jss63 {
8030     width: 85%;
8031     margin: 15px auto;
8032     display: flex;
8033     padding: 11px 0px 0px;
8034     justify-content: space-evenly;
8035   }
8036   .MuiFormControlLabel-root {
8037     cursor: pointer;
8038     display: inline-flex;
8039     align-items: center;
8040     margin-left: -11px;
8041     margin-right: 16px;
8042     vertical-align: middle;
8043     -webkit-tap-highlight-color: transparent;
8044   }
8045   .jss70 {
8046     margin: 0;
8047   }
8048   .MuiButtonBase-root {
8049     color: inherit;
8050     border: 0;
8051     cursor: pointer;
8052     margin: 0;
8053     display: inline-flex;
8054     outline: 0;
8055     padding: 0;
8056     position: relative;
8057     align-items: center;
8058     user-select: none;
8059     border-radius: 0;
8060     vertical-align: middle;
8061     -moz-appearance: none;
8062     justify-content: center;
8063     text-decoration: none;
8064     background-color: transparent;
8065     -webkit-appearance: none;
8066     -webkit-tap-highlight-color: transparent;
8067   }
8068   .MuiIconButton-root {
8069     flex: 0 0 auto;
8070     color: rgba(0, 0, 0, 0.54);
8071     padding: 12px;
8072     overflow: visible;
8073     font-size: 1.5rem;
8074     text-align: center;
8075     transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
8076     border-radius: 50%;
8077   }
8078   .MuiIconButton-colorSecondary {
8079     color: #f50057;
8080   }
8081   .jss71 {
8082     padding: 9px;
8083   }
8084   .MuiRadio-root {
8085     color: rgba(0, 0, 0, 0.54);
8086   }
8087   .jss64 {
8088     padding: 2px;
8089   }
8090   .MuiRadio-colorSecondary.Mui-checked {
8091     color: #f50057;
8092   }
8093   .MuiIconButton-label {
8094     width: 100%;
8095     display: flex;
8096     align-items: inherit;
8097     justify-content: inherit;
8098   }
8099   .MuiTypography-root {
8100     margin: 0;
8101   }
8102   .MuiTypography-body1 {
8103     font-size: 18px;
8104     font-family: Roboto,sans-serif;
8105     font-weight: 400;
8106     line-height: 1.5;
8107   }
8108   .location-popup_area-block__sp9Ws {
8109     display: -moz-box;
8110     display: flex;
8111     -moz-box-orient: vertical;
8112     -moz-box-direction: normal;
8113     flex-direction: column;
8114     -moz-box-pack: center;
8115     justify-content: center;
8116     position: relative;
8117     margin: 10px 10% 0;
8118   }
8119   .location-popup_pin-search-box__3l5mJ {
8120     width: 100%;
8121     display: -moz-box;
8122     display: flex;
8123     -moz-box-align: center;
8124     align-items: center;
8125   }
8126   .location-popup_place-icon-city__1XAX5, .location-popup_place-icon__jSG0Q {
8127     position: absolute;
8128     z-index: 999;
8129   }
8130   .location-popup_place-icon__jSG0Q {
8131     color: #ffffff;
8132     padding-left: 8px;
8133   }
8134   .location-popup_place-icon__jSG0Q svg {
8135     width: 18px;
8136     height: 18px;
8137   }
8138   .location-popup_cancel-icon__FHujU {
8139     color: #fff;
8140     right: 10px;
8141     width: 16px;
8142     cursor: pointer;
8143     height: 16px;
8144     display: none;
8145     padding: 5px;
8146     position: absolute;
8147     background: #999;
8148     text-align: center;
8149     border-radius: 50%;
8150   }
8151   .location-popup_pin-search-box__3l5mJ>div>select {
8152 /*     -webkit-box-shadow: 0 0 10px #ffffff;
8153     box-shadow: 0 0 10px #ffffff; */
8154     text-transform: capitalize;
8155     border: 1px solid #ffffff;
8156     color: #ffffff;
8157     width: 100%;
8158     margin: 0;
8159     display: -moz-box;
8160     display: flex;
8161     padding: 0 30px;
8162     -webkit-animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite;
8163     -moz-animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite;
8164     animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite;
8165     font-size: 16px;
8166     border-radius: 4px;
8167     height: 44px;
8168     moz-animation: location-popup_focuses__1I8Gj ease-in-out 1.5s infinite;
8169     webkit-animation: location-popup_focuses__1I8Gj ease-in-out 1.5s infinite;
8170   }
8171   .MuiButtonBase-root {
8172     color: inherit;
8173     border: 0;
8174     cursor: pointer;
8175     margin: 0;
8176     display: inline-flex;
8177     outline: 0;
8178     padding: 0;
8179     position: relative;
8180     align-items: center;
8181     user-select: none;
8182     border-radius: 0;
8183     vertical-align: middle;
8184     -moz-appearance: none;
8185     justify-content: center;
8186     text-decoration: none;
8187     background-color: transparent;
8188     -webkit-appearance: none;
8189     -webkit-tap-highlight-color: transparent;
8190   }
8191   .MuiButton-root {
8192     color: rgba(0, 0, 0, 0.87);
8193     padding: 6px 16px;
8194     font-size: 0.875rem;
8195     min-width: 64px;
8196     box-sizing: border-box;
8197     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;
8198     font-family: Roboto,sans-serif;
8199     font-weight: 500;
8200     line-height: 1.75;
8201     border-radius: 4px;
8202     text-transform: uppercase;
8203   }
8204   .MuiButton-contained {
8205     color: rgba(0, 0, 0, 0.87);
8206     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);
8207     background-color: #e0e0e0;
8208   }
8209   .MuiButtonBase-root.Mui-disabled {
8210     cursor: default;
8211     pointer-events: none;
8212   }
8213   .MuiButton-label {
8214     width: 100%;
8215     display: inherit;
8216     align-items: inherit;
8217     justify-content: inherit;
8218   }
8219   .cartButton_login_content__2j1f7 {
8220     display: -moz-box;
8221     display: flex;
8222     text-align: center;
8223     z-index: 9;
8224     font-size: 18px;
8225     font-weight: 500;
8226     color: #fff;
8227   }
8228   
8229   .jss35 {
8230     top: 5px;
8231     right: 5px;
8232     padding: 4px;
8233     position: absolute;
8234     border-radius: 50%;
8235   }
8236   .jss67 {
8237     cursor: pointer;
8238     font-size: 15px;
8239     line-height: 1.3;
8240     padding-left: 5px;
8241   }
8242   .jss69 {
8243     color: #222222;
8244   }
8245   .jss80 {
8246     color: #fff;
8247     width: 100%;
8248     height: 52px;
8249     padding: 11px 16px;
8250     font-size: 18px;
8251     min-width: 88px;
8252     min-height: 36px;
8253     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;
8254     font-weight: 500;
8255     line-weight: 1em;
8256     border-radius: 4px;
8257     text-transform: uppercase;
8258     background-color: #ff6600;
8259   }
8260   @media (min-width: 991px){
8261     .cartButton_login_content__2j1f7 {
8262         font-weight: 500;
8263     }
8264   }
8265 
8266   @media (max-width: 992px) {
8267     #location-lock-dialog {
8268       width: 100%;
8269       top: auto;
8270       bottom: 0;
8271       padding-left: 0;
8272       padding-right: 0;
8273     }
8274     .MuiFormGroup-row {
8275       display: block
8276     }
8277     .MuiIconButton-label input {
8278       margin: 0;
8279     }
8280   }
8281 </style>
8282 <div role="presentation" class="MuiDialog-root jss34" style="display: none;position: fixed; z-index: 9999; inset: 0px;">
8283   <div class="MuiBackdrop-root" aria-hidden="true" style="opacity: 1; transition: opacity 225ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;"></div>
8284   <div tabindex="0" data-test="sentinelStart"></div>
8285   <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;">
8286     <div class="MuiPaper-root MuiDialog-paper MuiDialog-paperScrollPaper MuiDialog-paperWidthSm MuiPaper-elevation24 MuiPaper-rounded" role="dialog">
8287       <div class="jss31 undefined" id="location-lock-dialog">
8288         <button id="close-popup-delivery" class="MuiButtonBase-root MuiIconButton-root jss35" tabindex="0" type="button" aria-label="close">
8289           <span class="MuiIconButton-label">
8290             <svg class="MuiSvgIcon-root" focusable="false" viewBox="0 0 24 24" aria-hidden="true">
8291               <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>
8292             </svg>
8293           </span>
8294           <span class="MuiTouchRipple-root"></span>
8295         </button>
8296         <div>
8297           <div class="jss36">Select Delivery Location</div>
8298           <div class="jss37">Select a delivery location to see product availability</div>
8299         </div>
8300         <div class="MuiFormGroup-root jss63 MuiFormGroup-row" role="radiogroup">
8301           <label for="jabodetabek" class="MuiFormControlLabel-root jss45">
8302             <span class="MuiButtonBase-root MuiIconButton-root jss46 MuiRadio-root MuiRadio-colorSecondary jss39 jss47 Mui-checked MuiIconButton-colorSecondary" aria-disabled="false">
8303               <span class="MuiIconButton-label">
8304                 <input id="jabodetabek" class="jss49" type="radio" value="Jabodetabek" checked="" name="location">
8305                 <span class="jss41"></span>
8306               </span>
8307               <span class="MuiTouchRipple-root"></span>
8308             </span>
8309             <span class="MuiTypography-root MuiFormControlLabel-label MuiTypography-body1">
8310               <span class="jss67 jss69">Jabodetabek</span>
8311             </span>
8312           </label>
8313           <label for="non-jabodetabek" class="MuiFormControlLabel-root jss45">
8314             <span class="MuiButtonBase-root MuiIconButton-root jss46 MuiRadio-root MuiRadio-colorSecondary jss39 MuiIconButton-colorSecondary" aria-disabled="false">
8315               <span class="MuiIconButton-label">
8316                 <input id="non-jabodetabek" class="jss49" type="radio" value="Outside Jabodetabek" name="location">
8317                 <span class="jss40"></span>
8318               </span>
8319               <span class="MuiTouchRipple-root"></span>
8320             </span>
8321             <span class="MuiTypography-root MuiFormControlLabel-label MuiTypography-body1">
8322               <span class="jss67 jss68">Outside Jabodetabek</span>
8323             </span>
8324           </label>
8325         </div>
8326         <div>
8327           <div class="MuiGrid-root location-popup_area-block__sp9Ws">
8328             <div class="MuiGrid-root location-popup_pin-search-box__3l5mJ false">
8329               <div class="MuiGrid-root location-popup_place-icon__jSG0Q">
8330                 <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>
8331               </div>
8332               <div class="MuiGrid-root location-popup_cancel-icon__FHujU false">
8333                 <i class="material-icons location-popup_clear-pin__s1dRc">close</i>
8334               </div>
8335               <div style="width: 100%;">
8336                 <select id="choose-location" class="form-control">
8337                   <option value="">Choose Location</option>
8338                   <option value="jakarta">Jakarta</option>
8339                   <option value="bogor">Bogor</option>
8340                   <option value="depok">Depok</option>
8341                   <option value="tangerang">Tangerang</option>
8342                   <option value="bekasi">Bekasi</option>
8343                 </select>
8344               </div>
8345             </div>
8346           </div>
8347         </div>
8348         <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="">
8349           <span class="MuiButton-label">
8350             <span class=""></span>
8351             <span id="location-lock-continue-btn" class="cartButton_login_content__2j1f7" style="font-weight: 500;" data-content="">Continue Shopping</span>
8352           </span>
8353         </button>
8354       </div>
8355     </div>
8356   </div>
8357   <div tabindex="0" data-test="sentinelEnd"></div>
8358 </div>
8359 
8360 
8360<script>
8361   const jabodetabek = [
8362     {
8363       "code": "jakarta",
8364       "city": "jakarta",
8365       "zip": []
8366     },
8367     {
8368       "code": "bogor",
8369       "city": "bogor",
8370       "zip": []
8371     },
8372     {
8373       "code": "depok",
8374       "city": "depok",
8375       "zip": []
8376     },
8377     {
8378       "code": "tangerang",
8379       "city": "tangerang",
8380       "zip": []
8381     },
8382     {
8383       "code": "bekasi",
8384       "city": "bekasi",
8385       "zip": []
8386     }
8387   ]
8388   let cityNonJabodetabek = [
8389     
8390
8391     
8392     
8393     "pengiriman_aceh",
8394     
8395     
8396     
8397     
8398     
8399     "pengiriman_ambon",
8400     
8401     
8402     
8403     
8404     
8405     "pengiriman_atambua",
8406     
8407     
8408     
8409     
8410     
8411     "pengiriman_badung",
8412     
8413     
8414     
8415     
8416     
8417     "pengiriman_bali",
8418     
8419     
8420     
8421     
8422     
8423     "pengiriman_balikpapan",
8424     
8425     
8426     
8427     
8428     
8429     "pengiriman_bandar lampung",
8430     
8431     
8432     
8433     
8434     
8435     "pengiriman_bandung",
8436     
8437     
8438     
8439     
8440     
8441     "pengiriman_bandung barat",
8442     
8443     
8444     
8445     
8446     
8447     "pengiriman_banjarmasin",
8448     
8449     
8450     
8451     
8452     
8453     "pengiriman_banyumas",
8454     
8455     
8456     
8457     
8458     
8459     "pengiriman_banyuwangi",
8460     
8461     
8462     
8463     
8464     
8465     "pengiriman_batam",
8466     
8467     
8468     
8469     
8470     
8471     
8472     
8473     
8474     
8475     "pengiriman_biak",
8476     
8477     
8478     
8479     
8480     
8481     "pengiriman_binjai",
8482     
8483     
8484     
8485     
8486     
8487     "pengiriman_blitar",
8488     
8489     
8490     
8491     
8492     
8493     "pengiriman_blora",
8494     
8495     
8496     
8497     
8498     
8499     
8500     
8501     
8502     
8503     "pengiriman_bojonegoro",
8504     
8505     
8506     
8507     
8508     
8509     "pengiriman_boyolali",
8510     
8511     
8512     
8513     
8514     
8515     "pengiriman_bukittinggi",
8516     
8517     
8518     
8519     
8520     
8521     "pengiriman_buleleng",
8522     
8523     
8524     
8525     
8526     
8527     "pengiriman_ciamis",
8528     
8529     
8530     
8531     
8532     
8533     "pengiriman_cianjur",
8534     
8535     
8536     
8537     
8538     
8539     "pengiriman_cibinong",
8540     
8541     
8542     
8543     
8544     
8545     "pengiriman_cikarang",
8546     
8547     
8548     
8549     
8550     
8551     "pengiriman_cikupa",
8552     
8553     
8554     
8555     
8556     
8557     "pengiriman_cilacap",
8558     
8559     
8560     
8561     
8562     
8563     "pengiriman_cileunyi",
8564     
8565     
8566     
8567     
8568     
8569     "pengiriman_cimahi",
8570     
8571     
8572     
8573     
8574     
8575     "pengiriman_cirebon",
8576     
8577     
8578     
8579     
8580     
8581     "pengiriman_ciwidey",
8582     
8583     
8584     
8585     
8586     
8587     "pengiriman_deli serdang",
8588     
8589     
8590     
8591     
8592     
8593     "pengiriman_demak",
8594     
8595     
8596     
8597     
8598     
8599     "pengiriman_denpasar",
8600     
8601     
8602     
8603
8604     
8605     
8606     "pengiriman_garut",
8607     
8608     
8609     
8610     
8611     
8612     "pengiriman_gianyar",
8613     
8614     
8615     
8616     
8617     
8618     "pengiriman_gresik",
8619     
8620     
8621     
8622     
8623     
8624     "pengiriman_gunung kidul",
8625     
8626     
8627     
8628
8629     
8630     
8631     "pengiriman_jambi",
8632     
8633     
8634     
8635     
8636     
8637     "pengiriman_jayapura",
8638     
8639     
8640     
8641     
8642     
8643     "pengiriman_jember",
8644     
8645     
8646     
8647     
8648     
8649     "pengiriman_jepara",
8650     
8651     
8652     
8653     
8654     
8655     "pengiriman_jombang",
8656     
8657     
8658     
8659     
8660     
8661     "pengiriman_karanganyar",
8662     
8663     
8664     
8665     
8666     
8667     "pengiriman_karawang",
8668     
8669     
8670     
8671     
8672     
8673     "pengiriman_karo",
8674     
8675     
8676     
8677     
8678     
8679     "pengiriman_kebumen",
8680     
8681     
8682     
8683     
8684     
8685     "pengiriman_kediri",
8686     
8687     
8688     
8689     
8690     
8691     "pengiriman_keerom",
8692     
8693     
8694     
8695     
8696     
8697     "pengiriman_kendal",
8698     
8699     
8700     
8701     
8702     
8703     "pengiriman_klaten",
8704     
8705     
8706     
8707     
8708     
8709     "pengiriman_kudus",
8710     
8711     
8712     
8713     
8714     
8715     "pengiriman_kupang",
8716     
8717     
8718     
8719     
8720     
8721     "pengiriman_lainnya",
8722     
8723     
8724     
8725     
8726     
8727     "pengiriman_lamongan",
8728     
8729     
8730     
8731     
8732     
8733     "pengiriman_lampung",
8734     
8735     
8736     
8737     
8738     
8739     "pengiriman_lampung barat",
8740     
8741     
8742     
8743     
8744     
8745     "pengiriman_lembang",
8746     
8747     
8748     
8749     
8750     
8751     "pengiriman_lombok",
8752     
8753     
8754     
8755     
8756     
8757     "pengiriman_lumajang",
8758     
8759     
8760     
8761     
8762     
8763     "pengiriman_madiun",
8764     
8765     
8766     
8767     
8768     
8769     "pengiriman_magelang",
8770     
8771     
8772     
8773     
8774     
8775     "pengiriman_majalengka",
8776     
8777     
8778     
8779     
8780     
8781     "pengiriman_makassar",
8782     
8783     
8784     
8785     
8786     
8787     "pengiriman_malang",
8788     
8789     
8790     
8791     
8792     
8793     "pengiriman_manado",
8794     
8795     
8796     
8797     
8798     
8799     "pengiriman_medan",
8800     
8801     
8802     
8803     
8804     
8805     "pengiriman_mengwi",
8806     
8807     
8808     
8809     
8810     
8811     "pengiriman_mojokerto",
8812     
8813     
8814     
8815     
8816     
8817     "pengiriman_nganjuk",
8818     
8819     
8820     
8821     
8822     
8823     "pengiriman_ngawi",
8824     
8825     
8826     
8827     
8828     
8829     "pengiriman_padang",
8830     
8831     
8832     
8833     
8834     
8835     "pengiriman_palembang",
8836     
8837     
8838     
8839     
8840     
8841     "pengiriman_pasuruan",
8842     
8843     
8844     
8845     
8846     
8847     "pengiriman_pati",
8848     
8849     
8850     
8851     
8852     
8853     "pengiriman_pekalongan",
8854     
8855     
8856     
8857     
8858     
8859     "pengiriman_pekanbaru",
8860     
8861     
8862     
8863     
8864     
8865     "pengiriman_pemalang",
8866     
8867     
8868     
8869     
8870     
8871     "pengiriman_ponorogo",
8872     
8873     
8874     
8875     
8876     
8877     "pengiriman_pontianak",
8878     
8879     
8880     
8881     
8882     
8883     "pengiriman_probolinggo",
8884     
8885     
8886     
8887     
8888     
8889     "pengiriman_purbalingga",
8890     
8891     
8892     
8893     
8894     
8895     "pengiriman_purwakarta",
8896     
8897     
8898     
8899     
8900     
8901     "pengiriman_purwokerto",
8902     
8903     
8904     
8905     
8906     
8907     "pengiriman_rembang",
8908     
8909     
8910     
8911     
8912     
8913     "pengiriman_riau",
8914     
8915     
8916     
8917     
8918     
8919     "pengiriman_salatiga",
8920     
8921     
8922     
8923     
8924     
8925     "pengiriman_samarinda",
8926     
8927     
8928     
8929     
8930     
8931     "pengiriman_semarang",
8932     
8933     
8934     
8935     
8936     
8937     "pengiriman_sentani",
8938     
8939     
8940     
8941     
8942     
8943     "pengiriman_serang",
8944     
8945     
8946     
8947     
8948     
8949     "pengiriman_sidoarjo",
8950     
8951     
8952     
8953     
8954     
8955     "pengiriman_singkawang",
8956     
8957     
8958     
8959     
8960     
8961     "pengiriman_sragen",
8962     
8963     
8964     
8965     
8966     
8967     "pengiriman_subang",
8968     
8969     
8970     
8971     
8972     
8973     "pengiriman_sukabumi",
8974     
8975     
8976     
8977     
8978     
8979     "pengiriman_sumbawa",
8980     
8981     
8982     
8983     
8984     
8985     "pengiriman_surabaya",
8986     
8987     
8988     
8989     
8990     
8991     "pengiriman_surakarta solo",
8992     
8993     
8994
8995     
8996     "pengiriman_tasikmalaya",
8997     
8998     
8999     
9000     
9001     
9002     "pengiriman_tegal",
9003     
9004     
9005     
9006     
9007     
9008     "pengiriman_timika",
9009     
9010     
9011     
9012     
9013     
9014     "pengiriman_wamena",
9015     
9016     
9017     
9018     
9019     
9020     "pengiriman_wiyung",
9021     
9022     
9023     
9024     
9025     
9026     "pengiriman_wonokromo",
9027     
9028     
9029     
9030     
9031     
9032     "pengiriman_yogyakarta",
9033 
9034   ]
9035   console.log(cityNonJabodetabek)
9036   let non_jabodetabek = []
9037   for(var i=0;i<cityNonJabodetabek.length;i++) {
9038     const obj = {
9039       "code": cityNonJabodetabek[i].toLowerCase().replace('pengiriman_', '').replace(' ','-'),
9040       "city": cityNonJabodetabek[i].replace('pengiriman_', '').replace(' ','-'),
9041       "zip": []
9042     }
9043     non_jabodetabek.push(obj)
9044   }
9045   let current_location = getCookie("location_delivery")
9046   $("[name=location]").change(function(){
9047     let v = $(this).val()
9048     let option = []
9049     if(v == 'Jabodetabek') {
9050       for(var i=0;i<jabodetabek.length;i++) {
9051         const jabodetabekHtml = `<option value=${jabodetabek[i].city}>${jabodetabek[i].city}</option>`
9052         option.push(jabodetabekHtml)
9053       }
9054       $("#choose-location").html(`<option value="">Choose Location</option>${option}`)
9055     } else {
9056       for(var i=0;i<non_jabodetabek.length;i++) {
9057         const nonjabodetabekHtml = `<option value=${non_jabodetabek[i].city}>${non_jabodetabek[i].city}</option>`
9058         option.push(nonjabodetabekHtml)
9059       }
9060       $("#choose-location").html(`<option value="">Choose Location</option>${option}`)
9061     }
9062   })
9063 
9064   $("#location-lock-submit").click(function(e){
9065     let select = $("#choose-location")
9066     let value = select.val().toLowerCase()
9067     console.log(value)
9068     if(select.val() == "") {
9069       return alert("Choose Your Location")
9070       e.preventDefault()
9071     }
9072     setCookie("location_delivery",value,1000000);
9073     
9074     location.reload();
9075     
9076   })
9077 
9078   $("#close-popup-delivery").click(function(){
9079     $(".MuiDialog-root").hide()
9080     if(!current_location){
9081       setCookie("location_delivery","jakarta",1000000);
9082       $("#loc_delivery_city, #loc_delivery_city_mobile").text("Jakarta")
9083     }
9084   })
9085   $("#loc_delivery, #loc_delivery_mobile").click(function(){
9086     $(".MuiDialog-root").show()
9087   })
9088 
9089   
9090   if(!current_location){
9091     
9092   } else {
9093     $("#loc_delivery_city, #loc_delivery_city_mobile").text(current_location)
9094     console.log(current_location)
9095     $("#choose-location").each(function(){
9096       if(current_location == 'jakarta' || current_location == 'depok' || current_location == 'bogor' || current_location == 'tangerang' || current_location == 'bekasi'){
9097         $("#jabodetabek").trigger("click")
9098       } else {
9099         $("#non-jabodetabek").trigger("click")
9100       }
9101       $("#choose-location").find("option[value="+current_location+"]").attr("selected", "selected")
9102     })
9103   }
9104 
9105   // 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'){
9106   //   $("#timeMalam").attr("disabled", false)
9107   // } else {
9108   //   $("#timeMalam").attr("disabled", true)
9109   // }
9110 
9111   if(current_location && current_location != 'jakarta') {
9112     $("#self-pickup").attr("disabled", true)
9113   }
9114 
9115   function setCookie(name,value,days) {
9116     var expires = "";
9117     if (days) {
9118       var date = new Date();
9119       date.setTime(date.getTime() + (days*24*60*60*1000));
9120       expires = "; expires=" + date.toUTCString();
9121     }
9122     document.cookie = name + "=" + (value || "")  + expires + "; path=/";
9123   }
9124   function getCookie(name) {
9125     var nameEQ = name + "=";
9126     var ca = document.cookie.split(';');
9127     for(var i=0;i < ca.length;i++) {
9128       var c = ca[i];
9129       while (c.charAt(0)==' ') c = c.substring(1,c.length);
9130       if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
9131     }
9132     return null;
9133   }
9134 </script>
9134
9135 <!-- One Tap -->
9136     
9136<script>
9137       console.log("Outerbloom...");
9138     </script>
9138
9139   <div id="shopify-block-ANVEzSUcxTUxZOGpwZ__9703700522657871012" class="shopify-block shopify-app-block">
9140 
9141 
9142 
9143 
9144 
9145 
9146 
9147 
9148 
9149 
9150 
9151 
9152 
9153 
9154 
9155 
9156 
9157 
9158 
9159 
9160 
9161 
9162 
9163 
9164 
9165 
9166 
9167 
9168 
9169 
9170 
9171 
9172 
9173 
9174 
9175 
9176 
9177 
9178 
9179 
9180 
9181 
9182 
9183 
9184 
9185 
9186 <link rel="stylesheet" href="https://cdn1.bitbybit.studio/bitbybit/static/bitChat_widget/widget.css" />
9187 
9187<script src="https://cdn1.bitbybit.studio/bitbybit/static/bitChat_widget/widget.js" defer></script>
9187
9188 
9188<script>
9189   const widgetConfig = {
9190     id: "clz7897za002cz7otleaz0d3d",
9191     showQuickResponse: false,
9192     quickResponsesData: [],
9193     themeColor: "#ffffff",
9194     widgetText: "",
9195     radiusType: "circle",
9196     widgetIconType: "whatsapp",
9197     position: "right",
9198     storeLogo: "",
9199     storeName: "Outerbloom",
9200     storeDescription: "",
9201     size: "small",
9202     showCard: false,
9203     widgetColorType: "solid",
9204     widgetColor1: "#008069",
9205     widgetColor2: "#008069",
9206     social: {
9207       socialOrders: ["instagram","tiktok","facebook","x","youtube","linkedin","email"],
9208       values: {
9209         instagram: {
9210           enabled: false,
9211           value: "",
9212         },
9213         facebook: {
9214           enabled: false,
9215           value: "",
9216         },
9217         email: {
9218           enabled: false,
9219           value: "",
9220         },
9221         x: {
9222           enabled: false,
9223           value: "",
9224         },
9225         tiktok: {
9226           enabled: false,
9227           value: "",
9228         },
9229         linkedin: {
9230           enabled: false,
9231           value: "",
9232         },
9233         youtube: {
9234           enabled: false,
9235           value: "",
9236         },
9237       },
9238     },
9239   };
9240 
9241   function initializeWidget() {
9242     if (typeof BBBWidget !== 'undefined') {
9243       BBBWidget.init(widgetConfig);
9244     } else {
9245       setTimeout(initializeWidget, 100);
9246     }
9247   }
9248 
9249   initializeWidget();</script>
9249
9250 
9251 
9252 </div><div id="shopify-block-ATzRpVTBPU3k1R2pnW__286197278318599166" class="shopify-block shopify-app-block">
9253 
9254 
9255 <div style="position: fixed; bottom: 0; right: 0"></div>
9256 
9257 
9257<script>
9258 console.info("bitlogin extension version: v2.5.7");
9259 
9260 const googleScript = document.createElement("script");
9261 googleScript.setAttribute("src", "https://accounts.google.com/gsi/client");
9262 document.head.append(googleScript);
9263 
9264 const bitLoginBaseUrl = "https://api.bitbybit.studio";
9265 const apiUrl = `${bitLoginBaseUrl}/bitlogin/api`;
9266 
9267 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"}};
9268 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
9268n1.oa2-cs.v1.1cb5f9085a202341f60daf5a7be16c570ccc0b4bd5908b3afd080f34e9b8935d","appleTeamId":null,"applePrivateKey":null,"usePersonalOauth":false,"position":null}];
9269 const redirectUrl = appearance.redirectLink;
9270 
9271 let locationCacheSet = false;
9272 let errorLocation = false;
9273 let oneTapSet = false;
9274 
9275 let bitloginCache = {
9276   appearance: appearance,
9277   config: config
9278 };
9279 
9280 let isInitializing = false;
9281 const queue = [];
9282 
9283 // Add CSS for the popup
9284 const popupStyles = document.createElement('style');
9285 popupStyles.textContent = `
9286   /* Styles for login popup */
9287   .bitlogin-popup-overlay {
9288     position: fixed;
9289     top: 0;
9290     left: 0;
9291     width: 100%;
9292     height: 100%;
9293     background: rgba(0, 0, 0, 0.45);
9294     backdrop-filter: blur(4px);
9295     display: flex;
9296     align-items: center;
9297     justify-content: center;
9298     opacity: 0;
9299     transition: opacity 0.3s ease-in-out;
9300     z-index: 999999;
9301   }
9302   
9303   .bitlogin-popup-overlay.visible {
9304     opacity: 1;
9305   }
9306   
9307   .bitlogin-popup {
9308     background: #FFFFFF;
9309     box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
9310     border-radius: 16px;
9311     width: 100%;
9312     max-width: 560px;
9313     display: flex;
9314     overflow: hidden;
9315     position: relative;
9316     opacity: 0;
9317     transform: translateY(20px) scale(0.98);
9318     transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
9319   }
9320   
9321   .bitlogin-popup.visible {
9322     opacity: 1;
9323     transform: translateY(0) scale(1);
9324   }
9325   
9326   .bitlogin-popup-with-image {
9327     max-width: 640px;
9328   }
9329   
9330   .bitlogin-popup-right-image {
9331     flex-direction: row-reverse;
9332   }
9333   
9334   .bitlogin-popup-image {
9335     object-fit: cover;
9336     width: 50%;
9337     height: auto;
9338   }
9339   
9340   .bitlogin-popup-content {
9341     padding: 32px;
9342     position: relative;
9343     width: 50%;
9344   }
9345   
9346   .bitlogin-popup-close {
9347     position: absolute;
9348     top: 16px;
9349     right: 16px;
9350     background: white;
9351     border: none;
9352     width: 30px;
9353     height: 30px;
9354     display: flex;
9355     align-items: center;
9356     justify-content: center;
9357     cursor: pointer;
9358     transition: background-color 0.2s;
9359     color: inherit;
9360     padding: 0;
9361   }
9362   
9363   .bitlogin-popup-close:hover {
9364     background-color: #e5e5e5;
9365   }
9366   
9367   .bitlogin-popup-buttons {
9368     display: flex;
9369     flex-direction: column;
9370     gap: 12px;
9371     margin-top: 24px;
9372   }
9373   
9374   /* Button styles within popup - override width for popup buttons */
9375   .bitlogin-popup-buttons #google-login,
9376   .bitlogin-popup-buttons #facebook-login,
9377   .bitlogin-popup-buttons #apple-login,
9378   .bitlogin-popup-buttons #whatsapp-login,
9379   .bitlogin-popup-buttons #microsoft-login,
9380   .bitlogin-popup-buttons #twitter-login,
9381   .bitlogin-popup-buttons #amazon-login,
9382   .bitlogin-popup-buttons #instagram-login,
9383   .bitlogin-popup-buttons #magic-link-login,
9384   .bitlogin-popup-buttons #mobile-app-login {
9385     width: 100% !important;
9386     font-family: inherit !important;
9387   }
9388   
9389   .bitlogin-popup-footer {
9390     margin-top: 32px;
9391     text-align: center;
9392     font-size: 14px;
9393     opacity: 0.6;
9394   }
9395   
9396   /* Modern Typography */
9397   .bitlogin-popup h2 {
9398     margin-top: 12px;
9399     font-size: 21px !important;
9400     line-height: 1.2 !important;
9401     font-weight: 700 !important;
9402     letter-spacing: -0.02em !important;
9403     margin-bottom: 16px !important;
9404   }
9405   
9406   .bitlogin-popup-header {
9407     position: relative;
9408     margin-bottom: 24px;
9409   }
9410   
9411   /* Modern gradient accent */
9412   .bitlogin-popup-content > div {
9413     font-size: 16px !important;
9414     line-height: 1.2 !important;
9415     opacity: 0.85 !important;
9416   }
9417   
9418   /* Enhanced button interactions */
9419   .bitlogin-popup-buttons button {
9420     position: relative;
9421     overflow: hidden;
9422   }
9423   
9424   @keyframes ripple {
9425     0% {
9426       transform: scale(0, 0);
9427       opacity: 0.5;
9428     }
9429     100% {
9430       transform: scale(100, 100);
9431       opacity: 0;
9432     }
9433   }
9434   
9435   /* Responsive adjustments */
9436   @media (max-width: 640px) {
9437     .bitlogin-popup {
9438       max-width: 90%;
9439       width: 90%;
9440       margin: 0 16px;
9441     }
9442     
9443     .bitlogin-popup-with-image {
9444       flex-direction: column !important;
9445     }
9446     
9447     .bitlogin-popup-image {
9448       width: 100%;
9449       height: 180px;
9450     }
9451     
9452     .bitlogin-popup-content {
9453       padding: 24px;
9454     }
9455     
9456     .bitlogin-popup h2 {
9457       font-size: 24px !important;
9458     }
9459   }
9460 `;
9461 
9462 document.head.appendChild(popupStyles);
9463 
9464 // Add fonts link for different font options
9465 const fontsLink = document.createElement('link');
9466 fontsLink.rel = 'stylesheet';
9467 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';
9468 document.head.appendChild(fontsLink);
9469 
9470 (async () => {
9471   try {
9472     let host = window.location.host;
9473     if (host === "admin.shopify.com") {
9474       host = `${window.location.pathname.split("/")[2]}.myshopify.com`;
9475     }
9476 
9477     const urlSearchParams = new URLSearchParams(window.location.search);
9478     const checkoutUrl = urlSearchParams.get("checkout_url");
9479 
9480     async function init({ inputRef, index }) {
9481       if (isInitializing) {
9482         queue.push(() => init({ inputRef, index }));
9483         return;
9484       }
9485 
9486       isInitializing = true;
9487 
9488       try {
9489         let bitLoginSectionRoot = document.querySelector(
9490           `.bitlogin-root[data-index="${index}"]`
9491         );
9492 
9493         const formRef = inputRef?.closest(
9494           "form:not([action='/account/recover'])"
9495         );
9496 
9497         if (formRef && !bitLoginSectionRoot) {
9498           await getLocation();
9499 
9500           bitLoginSectionRoot = document.createElement(`div`);
9501 
9502           bitLoginSectionRoot.setAttribute("class", "bitlogin-root");
9503           bitLoginSectionRoot.setAttribute("data-index", `${index}`);
9504 
9505           updateAppearance({
9506             formRef,
9507             rootRef: bitLoginSectionRoot,
9508             host,
9509           });
9510         }
9511       } catch (err) {
9512         console.error(`error while initiating bitlogin extensions`, err);
9513       } finally {
9514         // Release the lock
9515         isInitializing = false;
9516 
9517         // Check if there are pending items in the queue
9518         if (queue.length > 0) {
9519           // Process the next function in the queue
9520           const nextFunction = queue.shift();
9521           nextFunction();
9522         }
9523       }
9524     }
9525 
9526     function initAll() {
9527       return new Promise((resolve, reject) => {
9528         setTimeout(async () => {
9529           const inputRefs = document.querySelectorAll(
9530             'input[name="customer[email]"]'
9531           );
9532 
9533           for (let i = 0; i < inputRefs.length; i++) {
9534             const currentInputRef = inputRefs[i];
9535             const isVisible = isElementVisible(currentInputRef);
9536 
9537             if (isVisible) {
9538               await init({ inputRef: currentInputRef, index: i });
9539             }
9540           }
9541 
9542           resolve("ok");
9543         }, 100);
9544       });
9545     }
9546 
9547     const observer = new MutationObserver((mutationsList) => {
9548       for (let mutation of mutationsList) {
9549         initAll();
9550       }
9551     });
9552 
9553     observer.observe(document.body, {
9554       childList: true,
9555       subtree: true,
9556       attributes: true,
9557     });
9558 
9559     initAll();
9560 
9561     if (appearance.googleOneTap) {
9562       setupOneTap({ host, checkoutUrl });
9563     }
9564 
9565     // Initialize popup
9566     await initPopup(host);
9567   } catch (error) {
9568     console.error("Error initializing BitLogin:", error);
9569   }
9570 })();
9571 
9572 async function initPopup(host) {
9573   // Check if user is already logged in using Liquid checks properly
9574   const isLoggedIn = false || 
9575                     document.querySelector('.customer-logout-link') || 
9576                     document.querySelector('.account-link') || 
9577                     window.location.pathname.includes('/account');
9578   
9579   if (isLoggedIn) {
9580     return; // User is logged in, don't show popup
9581   }
9582 
9583   try {
9584     // Fetch the popup configuration
9585     const popupConfig = await fetch(`${apiUrl}/appearance/popup/domain/${host}`)
9586       .then(res => res.json())
9587       .catch(err => {
9588         console.error('Error fetching popup configuration:', err);
9589         return null;
9590       });
9591 
9592     if (!popupConfig || !popupConfig.enabled) {
9593       return;
9593 // Don't show popup if disabled or config not found
9594     }
9595 
9596     // Create popup after 10 seconds
9597     setTimeout(() => {
9598       // Check if user is still on the page and still not logged in
9599       if (document.visibilityState === 'visible') {
9600         // Additional check in case user logged in during the 10 second wait
9601         const currentlyLoggedIn = false || 
9602                               document.querySelector('.customer-logout-link') || 
9603                               document.querySelector('.account-link');
9604         
9605         if (!currentlyLoggedIn) {
9606           createLoginPopup(popupConfig, host);
9607         }
9608       }
9609     }, 10000);
9610   } catch (error) {
9611     console.error('Error initializing popup:', error);
9612   }
9613 }
9614 
9615 function createLoginPopup(popupConfig, host) {
9616   // Font mapping
9617   const fontFamilyMap = {
9618     system_fonts: 'system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',
9619     montserrat: 'Montserrat, sans-serif',
9620     roboto: 'Roboto, sans-serif',
9621     open_sans: 'Open Sans, sans-serif',
9622     noto_sans: 'Noto Sans, sans-serif',
9623     lato: 'Lato, sans-serif',
9624     poppins: 'Poppins, sans-serif',
9625     quicksand: 'Quicksand, sans-serif',
9626     raleway: 'Raleway, sans-serif',
9627     pt_sans: 'PT Sans, sans-serif',
9628     oswald: 'Oswald, sans-serif',
9629   };
9630 
9631   // Create overlay
9632   const overlay = document.createElement('div');
9633   overlay.className = 'bitlogin-popup-overlay';
9634   
9635   // Create popup container with appropriate styling
9636   const popup = document.createElement('div');
9637   popup.className = 'bitlogin-popup';
9638 
9639   if (popupConfig.layout === 'default') {
9640     popup.style.maxWidth = '400px';
9641   }
9642   
9643   // Function to close the popup
9644   const closePopup = () => {
9645     overlay.classList.remove('visible');
9646     popup.classList.remove('visible');
9647     setTimeout(() => {
9648       if (document.body.contains(overlay)) {
9649         document.body.removeChild(overlay);
9650       }
9651     }, 300);
9652   };
9653   
9654   // Add click handler to the overlay to close when clicking outside
9655   overlay.addEventListener('click', (event) => {
9656     // Close only if clicking directly on the overlay, not its children
9657     if (event.target === overlay) {
9658       closePopup();
9659     }
9660   });
9661   
9662   // Add escape key handler to close popup
9663   document.addEventListener('keydown', (event) => {
9664     if (event.key === 'Escape' && document.body.contains(overlay)) {
9665       closePopup();
9666     }
9667   });
9668 
9669   // Create layout with image if specified
9670   let contentWrapper;
9671   if (popupConfig.layout !== 'default' && popupConfig.popupImage) {
9672     popup.classList.add('bitlogin-popup-with-image');
9673     
9674     if (popupConfig.layout === 'right') {
9675       popup.classList.add('bitlogin-popup-right-image');
9676     }
9677     
9678     // Add image
9679     const image = document.createElement('img');
9680     image.className = 'bitlogin-popup-image';
9681     image.src = popupConfig.popupImage;
9682     image.alt = 'Login';
9683     image.loading = 'lazy';
9684     popup.appendChild(image);
9685     
9686     // Create content container
9687     contentWrapper = document.createElement('div');
9688     contentWrapper.className = 'bitlogin-popup-content';
9689 
9690     if (popupConfig.layout === 'right') {
9691       const closeButton = document.createElement('button');
9692       closeButton.className = 'bitlogin-popup-close';
9693       closeButton.innerHTML = `<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp">
9694         <path d="M13 1L1 13M1 1L13 13" stroke="${popupConfig.fontColor}" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
9695       </svg>`;
9696       closeButton.setAttribute('aria-label', 'Close');
9697       closeButton.onclick = closePopup;
9698   
9699       popup.appendChild(closeButton);
9700     }
9701   } else {
9702     contentWrapper = document.createElement('div');
9703     contentWrapper.className = 'bitlogin-popup-content';
9704     contentWrapper.style.width = '100%';
9705   }
9706 
9707   // Set background style
9708   if (popupConfig.backgroundTheme === 'gradient') {
9709     contentWrapper.style.background = `linear-gradient(135deg, ${popupConfig.backgroundPopupColor}, ${popupConfig.gradientColor})`;
9710   } else {
9711     contentWrapper.style.backgroundColor = popupConfig.backgroundPopupColor;
9712   }
9713 
9714   // Apply font family
9715   contentWrapper.style.setProperty('font-family', fontFamilyMap[popupConfig.font] || fontFamilyMap.system_fonts, 'important');
9716 
9717   if (popupConfig.layout !== 'right') {
9718     const closeButton = document.createElement('button');
9719     closeButton.className = 'bitlogin-popup-close';
9720     closeButton.innerHTML = `<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp">
9721       <path d="M13 1L1 13M1 1L13 13" stroke="${popupConfig.fontColor}" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
9722     </svg>`;
9723     closeButton.setAttribute('aria-label', 'Close');
9724     closeButton.onclick = closePopup;
9725   
9726     contentWrapper.appendChild(closeButton);
9727   }
9728 
9729   // Add heading with subtle animation effect
9730   const header = document.createElement('div');
9731   header.className = 'bitlogin-popup-header';
9732   
9733   const heading = document.createElement('h2');
9734   heading.textContent = popupConfig.headingText || 'Sign in for exclusive benef
9734its';
9735   heading.style.color = popupConfig.fontColor;
9736   header.appendChild(heading);
9737 
9738   // Add body text with improved formatting
9739   const bodyText = document.createElement('div');
9740   bodyText.innerHTML = popupConfig.bodyText || 'Join our community to access exclusive offers and a personalized shopping experience.';
9741   bodyText.style.color = popupConfig.fontColor;
9742   header.appendChild(bodyText);
9743   
9744   contentWrapper.appendChild(header);
9745 
9746   // Create buttons container with modern styling
9747   const buttonsContainer = document.createElement('div');
9748   buttonsContainer.className = 'bitlogin-popup-buttons';
9749   
9750   // Add social buttons
9751   const providerLabels = {
9752     'GOOGLE': 'Continue with Google',
9753     'FACEBOOK': 'Continue with Facebook',
9754     'APPLE': 'Continue with Apple',
9755     'WHATSAPP': 'Continue with WhatsApp',
9756     'MAGIC_LINK': 'Continue with Email',
9757   };
9758 
9759   // Add first login provider button
9760   if (popupConfig.loginProvider1 !== 'NONE') {
9761     const buttonConfig = {
9762       theme: popupConfig.colorScheme || 'match',
9763       customColor: popupConfig.textColor,
9764       format: 'contentFlex',
9765       buttonText: bitloginCache.appearance.buttonList[popupConfig.loginProvider1.toLowerCase()],
9766       hasShadow: popupConfig.hasShadow !== undefined ? popupConfig.hasShadow : true,
9767       style: popupConfig.style || 'rounded',
9768       size: popupConfig.size || 'medium',
9769       colorScheme: popupConfig.colorScheme || 'match',
9770       backgroundColor: popupConfig.backgroundColor || '#3B82F6',
9771       textColor: popupConfig.textColor || '#FFFFFF',
9772       outlineColor: popupConfig.outlineColor || '#3B82F6',
9773       host: host
9774     };
9775     
9776     const button1 = createSocialLoginButton(popupConfig.loginProvider1, buttonConfig);
9777     
9778     // Handle click event - this overrides the default click handler in createSocialLoginButton
9779     button1.onclick = () => {
9780       onClickSocialLogin({ provider: popupConfig.loginProvider1.toLowerCase(), host });
9781       closePopup();
9782     };
9783     
9784     buttonsContainer.appendChild(button1);
9785   }
9786 
9787   // Add second login provider button if enabled
9788   if (popupConfig.loginProvider2 !== 'NONE') {
9789     const buttonConfig = {
9790       theme: popupConfig.colorScheme || 'match',
9791       customColor: popupConfig.textColor,
9792       format: 'contentFlex',
9793       buttonText: bitloginCache.appearance.buttonList[popupConfig.loginProvider2.toLowerCase()],
9794       hasShadow: popupConfig.hasShadow !== undefined ? popupConfig.hasShadow : true,
9795       style: popupConfig.style || 'rounded',
9796       size: popupConfig.size || 'medium',
9797       colorScheme: popupConfig.colorScheme || 'match',
9798       backgroundColor: popupConfig.backgroundColor || '#3B82F6',
9799       textColor: popupConfig.textColor || '#FFFFFF',
9800       outlineColor: popupConfig.outlineColor || '#3B82F6',
9801       host: host
9802     };
9803     
9804     const button2 = createSocialLoginButton(popupConfig.loginProvider2, buttonConfig);
9805     
9806     // Handle click event - this overrides the default click handler in createSocialLoginButton
9807     button2.onclick = () => {
9808       onClickSocialLogin({ provider: popupConfig.loginProvider2.toLowerCase(), host });
9809       closePopup();
9810     };
9811     
9812     buttonsContainer.appendChild(button2);
9813   }
9814 
9815   contentWrapper.appendChild(buttonsContainer);
9816 
9817   // Append content to popup
9818   popup.appendChild(contentWrapper);
9819   
9820   // Append popup to overlay
9821   overlay.appendChild(popup);
9822   
9823   // Append overlay to body
9824   document.body.appendChild(overlay);
9825   
9826   // Trigger animation with slight delay for better perceived performance
9827   setTimeout(() => {
9828     overlay.classList.add('visible');
9829     setTimeout(() => {
9830       popup.classList.add('visible');
9831     }, 50);
9832   }, 10);
9833 }
9834 
9835 window.addEventListener("load", () => {
9836   window.addEventListener("message", (event) => {
9837     const receivedData = event.data;
9838 
9839     if (receivedData.type === "authorize") {
9840       post(
9841         JSON.parse(
9842           JSON.stringify({
9843             "customer[email]": receivedData.email,
9844             "customer[password]": receivedData.password,
9845             form_type: "customer_login",
9846             utf8: "✓",
9847             return_url: redirectUrl,
9848           })
9849         )
9850       );
9851     } else if (receivedData.type === "rejected") {
9852       if (receivedData.reason === "customer_account_disabled") {
9853         showAlert(
9854           "Your account needs to be activated. We've sent you an activation link - please check your email to complete this step."
9855         );
9856       } else if (receivedData.reason === "customer_entry_created_email_not_set") {
9857         showAlert(
9858           "A new account was created but requires an email address. Please update your account with a valid email address to continue."
9859         );
9860       } else if (receivedData.reason === "customer_exist_email_not_set") {
9861         showAlert(
9862           "Your existing account is missing an email address. Please contact support to update your account with a valid email address."
9863         );
9864       }
9865     }
9866 
9867     if (receivedData.type === "customer_authenticated") {
9868       // Dispatch a custom event that merchants can listen for to implement their custom logic
9869       const customerAuthEvent = new CustomEvent('bitlogin:customer_authenticated', {
9870         detail: {
9871           provider: receivedData.provider,
9872           customer: receivedData.customer,
9873           shopifyCustomerCreated: receivedData.shopifyCustomerCreated
9874         }
9875       });
9876       
9877       // Dispatch the event on the window object so merchants can listen for it
9878       window.dispatchEvent(customerAuthEvent);
9879       
9880     }
9881   });
9882 });
9883 
9884 // Reusable functions for social login buttons
9885 function createSocialLoginButton(provider, config = {}) {
9886   const {
9887     theme = 'match',
9888     customColor = null,
9889     format = 'contentFlex',
9890     buttonText = null,
9891     hasShadow = true,
9892     style = 'rounded',
9893     size = 'medium',
9894     colorScheme = 'match',
9895     backgroundColor = '#3B82F6',
9896     textColor = '#FFFFFF',
9897     outlineColor = '#3B82F6',
9898     rootRef = null,
9899     host = null
9900   } = config;
9901   
9902   // Create button element with appropriate ID and attributes
9903   const button = document.createElement('button');
9904   button.id = `${provider.toLowerCase()}-login`;
9905   button.type = 'button';
9906   
9907   // Set the inner SVG based on provider
9908   switch (provider.toUpperCase()) {
9909     case 'GOOGLE':
9910       button.innerHTML = googleLoginIcon(theme, customColor);
9911       break;
9912     case 'FACEBOOK':
9913       button.innerHTML = facebookLoginIcon(theme, customColor);
9914       break;
9915     case 'APPLE':
9916       button.innerHTML = appleLoginIcon(theme, customColor);
9917       break;
9918     case 'WHATSAPP':
9919       button.innerHTML = whatsappLoginIcon(theme, customColor);
9920       break;
9921     case 'MICROSOFT':
9922       button.innerHTML = microsoftLoginIcon(theme, customColor);
9923       break;
9924     case 'TWITTER':
9925       button.innerHTML = twitterLoginIcon(theme, customColor);
9926       break;
9927     case 'AMAZON':
9928       button.innerHTML = amazonLoginIcon(theme, customColor);
9929       break;
9930     case 'INSTAGRAM':
9931       button.innerHTML = instagramLoginIcon(theme, customColor);
9932       break;
9933     case 'MAGIC_LINK':
9934       button.innerHTML = magicLinkLoginIcon(theme, customColor);
9935       break;
9936     case 'MOBILE_APP':
9937       button.innerHTML = mobileAppLoginIcon(theme, customColor);
9938       break;
9939     case 'LINKEDIN':
9940       button.innerHTML = linkedinLoginIcon(theme, customColor);
9941       break;
9942   }
9943   
9944   // Add text if format isn't icon-only and buttonText is provided
9945   if (format !== "wrapperFlexContainerOnlyLogo" && buttonText) {
9946     button.innerHTML += `<p>${buttonText}</p>`;
9947   }
9948   
9949   // Apply styling
9950   // Shadow
9951   if (hasShadow) {
9952     const shadowProperties = `0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)`;
9953     button.style["box-shadow"] = shadowProperties;
9954   }
9955   
9956   // Border radius
9957   const radiusProperties =
9958     style === "rounded"
9959       ? "8px"
9960       : style === "square"
9961       ? "0px"
9962       : style === "fullRounded"
9963       ? format === "wrapperFlexContainerOnlyLogo"
9964         ? "50%"
9965         : "50px"
9966       : undefined;
9967   button.style["border-radius"] = radiusProperties;
9968   
9969   // Size
9970   const sizeProperties =
9971     size === "medium"
9972       ? "12px"
9973       : size === "small"
9974       ? "8px"
9975       : size === "large"
9976       ? "16px"
9977       : "8px";
9978 
9979   button.style["padding-block"] = sizeProperties;
9980 
9981   // Format styling
9982   if (format) {
9983     if (
9984       format === "contentFlexReverse" ||
9985       format === "contentFlexCenterReverse"
9986     ) {
9987       const flexDir = `row-reverse`;
9988       button.style["flex-direction"] = flexDir;
9989     }
9990     
9991     if (
9992       format === "contentFlexCenter" ||
9993       format === "contentFlexCenterReverse"
9994     ) {
9995       const justifyContent = `center`;
9996       button.style["justify-content"] = justifyContent;
9997     } else if (
9998       format === "contentFlex" ||
9999       format === "contentFlexReverse"
10000     ) {
10001       const buttonTextElement = button.querySelector("p");
10002       if (buttonTextElement) {
10003         buttonTextElement.style["flex-grow"] = 1;
10004         buttonTextElement.style["text-align"] = "center";
10005       }
10006     }
10007 
10008     if (format === "wrapperFlexContainerOnlyLogo" && rootRef) {
10009       rootRef.style["flex-direction"] = "row";
10010       rootRef.style["gap"] = "8px";
10011       rootRef.style["display"] = "flex";
10012       rootRef.style["flex-wrap"] = "wrap";
10013 
10014       const sizeMapping = {
10015         small: "52px",
10016         medium: "62px",
10017         large: "72px",
10018       };
10019       const buttonSize = sizeMapping[size] || "52px";
10020 
10021       button.style["margin"] = 0;
10022       button.style["width"] = buttonSize;
10023       button.style["height"] = buttonSize;
10024       button.style["display"] = "flex";
10025       button.style["align-items"] = "center";
10026       button.style["justify-content"] = "center";
10027 
10028       const svgElement = button.querySelector("svg");
10029       if (svgElement) {
10030         svgElement.style["flex"] = "none";
10031       }
10032     }
10033   }
10034 
10035   // Color scheme styling
10036   if (colorScheme === "black") {
10037     button.classList.add("scheme-black");
10038   } else if (colorScheme === "white") {
10039     button.classList.add("scheme-white");
10040   } else if (colorScheme === "custom") {
10041     button.style["background-color"] = backgroundColor;
10042     button.style["color"] = textColor;
10043     button.style["border-color"] = outlineColor;
10044 
10045     const darkenColor = (color, percentage) => {
10046       const value = parseInt(color.slice(1), 16);
10047       const r = Math.max(0, ((value >> 16) & 0xff) - (0xff * percentage));
10048       const g = Math.max(0, ((value >> 8) & 0xff) - (0xff * percentage));
10049       const b = Math.max(0, (value & 0xff) - (0xff * percentage));
10050       return `rgb(${Math.round(r)}, ${Math.round(g)}, ${Math.round(b)})`;
10051     };
10052 
10053     button.addEventListener("mouseover", () => {
10054       button.style["background-color"] = darkenColor(backgroundColor, 0.2);
10055     });
10056     button.addEventListener("mouseout", () => {
10057       button.style["background-color"] = backgroundColor;
10058     });
10059   } else if (colorScheme === "match") {
10060     button.classList.add("scheme-match");
10061   } else if (colorScheme === "matchOutline") {
10062     button.classList.add("scheme-match-outline");
10063   }
10064   
10065   // Add click event listener if host is provided
10066   if (host) {
10067     button.addEventListener("click", () => 
10068       onClickSocialLogin({ provider: provider.toLowerCase(), host })
10069     );
10070   }
10071   
10072   return button;
10073 }
10074 
10075 function setupSocialLoginButtons(config, rootRef, data, host) {
10076   // Clear any existing content
10077   rootRef.innerHTML = '';
10078 
10079   const sortedEnabledProviders = config
10080     .filter(c => c.enabledWeb)
10081     .sort((a, b) => a.position - b.position);
10082 
10083   sortedEnabledProviders.forEach(provider => {
10084     const key = provider.provider;
10085     const lowerKey = key.toLowerCase();
10086 
10087     const buttonText = data.format !== "wrapperFlexContainerOnlyLogo"
10088       ? (lowerKey === 'twitter'
10089           ? data.buttonList.twitter.replace('Twitter', 'X')
10090           : data.buttonList[lowerKey])
10091       : null;
10092 
10093     const button = createSocialLoginButton(key, {
10094       theme: data.colorScheme || 'match',
10095       customColor: data.textColor,
10096       format: data.format,
10097       buttonText: buttonText,
10098       hasShadow: data.hasShadow !== undefined ? data.hasShadow : true,
10099       style: data.style,
10100       size: data.size,
10101       colorScheme: data.colorScheme,
10102       backgroundColor: data.backgroundColor,
10103       textColor: data.textColor,
10104       outlineColor: data.outlineColor,
10105       rootRef: rootRef,
10106       host: host
10107     });
10108 
10109     rootRef.appendChild(button);
10110   });
10111 
10112   return rootRef;
10113 }
10114 
10115 function updateAppearance({ formRef, rootRef, host }) {
10116   if (!formRef) return;
10117 
10118   const data = bitloginCache.appearance || {
10119     style: "square",
10120     hasShadow: false,
10121     colorScheme: "match",
10122     backgroundColor: "#FFFFFF",
10123     outlineColor: "#000000",
10124     textColor: "#000000",
10125     position: "bottom",
10126     hideDivider: "false",
10127     dividerText: "OR",
10128     size: "small",
10129     format: "contentFlex",
10130     language: "en",
10131     buttonText: "Continue with",
10132     redirectLink: "/account",
10133     googleOneTap: true,
10134     googleOneTapBanner: true,
10135     customerTag: "bitLogin",
10136     redirectOneTapDesktop: null,
10137     redirectOneTapMobile: null,
10138     buttonList: {
10139       google: "Continue with Google",
10140       facebook: "Continue with Facebook",
10141       apple: "Continue with Apple",
10142       whatsapp: "Continue with WhatsApp",
10143       microsoft: "Continue with Microsoft",
10144       twitter: "Continue with X",
10145       amazon: "Continue with Amazon",
10146       instagram: "Continue with Instagram",
10147       magic_link: "Continue with Magic Link",
10148       mobile_app: "Continue with Mobile App",
10149       linkedin: "Continue with LinkedIn",
10150     },
10151   };
10152 
10153   // Use the new setupSocialLoginButtons function to create and configure all buttons
10154   setupSocialLoginButtons(bitloginCache.config, rootRef, data, host);
10155 
10156   let divider;
10157 
10158   if (!data.hideDivider) {
10159     divider = document.createElement("div");
10160     const dividerStyle = "text-align:center;margin-block:16px";
10161     divider.setAttribute("style", dividerStyle);
10162     divider.innerHTML = data.dividerText;
10163   }
10164 
10165   if (data.position === "bottom") {
10166     if (divider) {
10167       formRef.appendChild(divider);
10168     }
10169     formRef.appendChild(rootRef);
10170   } else if (data.position === "top") {
10171     if (divider) {
10172       formRef.prepend(divider);
10173     }
10174     formRef.prepend(rootRef);
10175   }
10176 }
10177 
10178 
10179 async function onClickSocialLogin({ provider, host }) {
10180   const rand = Math.random().toString();
10181 
10182   const locationQueryString = bitloginCache.location
10183     ? `&${objectToQueryString(bitloginCache.location)}`
10184     : "";
10185 
10186   const width = 800;
10187   const height = 600;
10188   const left = (window.screen.width / 2) - (width / 2);
10189   const top = (window.screen.height / 2) - (height / 2) - 50;
10190 
10191   if(provider === 'whatsapp') {
10192     window.open(
10193       `/apps/bitlogin/whatsapp${locationQueryString ? `?${locationQueryString}` : ''}`,
10194       "mywindow",
10195       `menubar=1,resizable=1,width=${width},height=${height},top=${top},left=${left}`
10196     );
10197   } else {
10198     window.open(
10199       `${apiUrl}/login/${provider}?referrerId=${rand}&shop=${host}${locationQueryString}`,
10200       "mywindow",
10201       `menubar=1,resizable=1,width=${width},height=${height},top=${top},left=${left}`
10202     );
10203   }
10204 }
10205 
10206 function objectToQueryString(obj) {
10207   return Object.keys(obj)
10208     .map((key) => {
10209       return encodeURIComponent(key) + "=" + encodeURIComponent(obj[key]);
10210     })
10211     .join("&");
10212 }
10213 
10214 async function getLocation() {
10215   if (locationCacheSet) return;
10216 
10217   try {
10218     const response = await fetch("https://ipapi.co/json/");
10219 
10220     if (!response.ok) {
10221       console.error(`error retrieving location...`, response.status);
10222       errorLocation = true;
10223     } else {
10224       const data = await response.json();
10225 
10226       const { city, region, country_name, country_code } = data;
10227 
10228       const formattedLocationData = {
10229         city,
10230         region,
10231         country_name,
10232         country_code,
10233       };
10234 
10235       bitloginCache.location = formattedLocationData;
10236       locationCacheSet = true;
10237       errorLocation = false;
10238     }
10239   } catch (err) {
10240     console.error(`error fetching location`, err);
10241     errorLocation = true;
10242   }
10243 }
10244 
10245 function post(params) {
10246   // The rest of this code assumes you are not using a library.
10247   // It can be made less verbose if you use one.
10248   const form = document.createElement("form");
10249   form.method = "post";
10250   form.action = `/account/login`;
10251   form.acceptCharset = "UTF-8";
10252   form.setAttribute("data-login-with-shop-sign-in", "true");
10253   form.setAttribute("novalidate", "novalidate");
10254 
10255   for (const key in params) {
10256     if (params.hasOwnProperty(key)) {
10257       const hiddenField = document.createElement("input");
10258       hiddenField.type = "hidden";
10259       hiddenField.name = key;
10260       hiddenField.value = params[key];
10261 
10262       form.appendChild(hiddenField);
10263     }
10264   }
10265 
10266   document.body.appendChild(form);
10267   form.submit();
10268 }
10269 
10270 async function setupOneTap({ host, checkoutUrl }) {
10271   if (oneTapSet) return;
10272 
10273   const redirectOneTapDesktop = JSON.parse(JSON.stringify(bitloginCache.appearance.redirectOneTapDesktop || '[]'));
10274   const redirectOneTapMobile = JSON.parse(JSON.stringify(bitloginCache.appearance.redirectOneTapMobile || '[]'));
10275 
10276   const isMobile = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent);
10277   const redirectList = JSON.parse(isMobile ? redirectOneTapMobile : redirectOneTapDesktop);
10278 
10279   const currentPath = window.location.pathname.toLowerCase();
10280   const currentUrl = window.location.href.toLowerCase();
10281 
10282   const shouldHideGoogleOneTap = redirectList.some(({ value }) => {
10283     switch (value) {
10284       case 'home':
10285         return currentPath === '/';
10286       case 'product':
10287         return currentPath.startsWith('/products/');
10288       case 'collections':
10289         return currentPath.startsWith('/collections');
10290       case 'cart':
10291         return currentPath === '/cart';
10292       case 'checkout':
10293         return currentPath.startsWith('/checkouts') && !currentPath.includes('thank_you');
10294       case 'thank_you':
10295         return currentPath.includes('/thank_you');
10296       case 'account':
10297         return currentPath.startsWith('/account');
10298       case 'pages':
10299         return currentPath.startsWith('/pages');
10300       case 'blogs':
10301         return currentPath === '/blogs' || currentPath === '/blogs/news';
10302       case 'blog_post':
10303         return currentPath.startsWith('/blogs/') && currentPath.split('/').length > 3;
10304       default:
10305         return false;
10306     }
10307   });
10308 
10309   if (shouldHideGoogleOneTap) return;
10310 
10311   const oneTapClientId = bitloginCache.config.find(
10312     (config) => config.provider === "GOOGLE"
10313   )?.clientId;
10314 
10315   const isLoggedIn = false;
10316 
10317   if (bitloginCache.appearance.googleOneTap && oneTapClientId && !isLoggedIn) {
10318     const googleOneTapButton = document.createElement("div");
10319     googleOneTapButton.setAttribute("id", "g_id_onload");
10320     googleOneTapButton.setAttribute("data-client_id", oneTapClientId);
10321     googleOneTapButton.setAttribute("data-context", "signin");
10322     googleOneTapButton.setAttribute(
10323       "data-callback",
10324       "handleGoogleOneTapResponse"
10325     );
10326     googleOneTapButton.setAttribute("data-itp_support", "true");
10327 
10328     const googleOneTapScript = document.createElement("script");
10329 
10330     googleOneTapScript.innerHTML += `
10331           function handleGoogleOneTapResponse(response) {
10332               if (response.credential) {
10333                   const idToken = response.credential;
10334                   fetch('${bitLoginBaseUrl}/bitlogin/api/login/google-one-tap', {
10335                       method: 'POST',
10336                       headers: { 'Content-Type': 'application/json' },
10337                       body: JSON.stringify({ idToken, shop: "${host}", ...bitloginCache.location })
10338                   }).then(response => {
10339                       response.json().then((data) => {
10340                         post(
10341                           JSON.parse(
10342                             JSON.stringify({
10343                               "customer[email]": data.email,
10344                               "customer[password]": data.password,
10345                               form_type: "customer_login",
10346                               utf8: "✓",
10347                               return_url: redirectUrl,
10348                             })
10349                           )
10350                         );
10351                       });  
10352                   }).catch(error => {
10353                       console.error('Error occurred:', error);
10354                   });
10355               } else {
10356                   console.error('No credential available');
10357               }
10358           }
10359        `;
10360 
10361     document.body.append(googleOneTapButton);
10362     document.body.append(googleOneTapScript);
10363   }
10364 
10365   oneTapSet = true;
10366 }
10367 
10368 const googleLoginIcon = (
10369   theme,
10370   customColor
10371 ) => `
10372 ${
10373   theme === "match" || theme === "matchOutline" || theme === "custom"
10374     ? `<svg
10375     xmlns='https://www.cabosanfrancisco.ch/image/logo-ompong188.webp'
10376     xmlns:v='https://vecta.io/nano'
10377     width='24'
10378     height='24'
10379     viewBox='0 0 186.69 190.5'
10380   >
10381     <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="${
10382       theme === "custom" ? customColor : "#4285f4"
10383     }"/><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="${
10384         theme === "custom" ? customColor : "#34a853"
10385       }"/><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="${
10386         theme === "custom" ? customColor : "#fbbc05"
10387       }"/><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="${
10388         theme === "custom" ? customColor : "#ea4335"
10389       }" clip-path="none" mask="none"/></g>
10390   </svg>`
10391     : `<svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="25" height="25" viewBox="0 0 25 25" fill="none">
10392 <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="${
10393         theme !== "black" ? "black" : "white"
10394       }"/>
10395 <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="${
10396         theme !== "black" ? "black" : "white"
10397       }"/>
10398 <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="${
10399         theme !== "black" ? "black" : "white"
10400       }"/>
10401 <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="${
10402         theme !== "black" ? "black" : "white"
10403       }"/>
10404 </svg>`
10405 }`;
10406 
10407 const appleLoginIcon = (
10408   theme,
10409   customColor
10410 ) => `<svg width="24" height="24" viewBox="0 0 19 24" fill="none" xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp">
10411 <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="${
10412   theme === "custom"
10413     ? customColor
10414     : theme === "match" || theme === "black"
10415     ? "white"
10416     : "black"
10417 }"/>
10418 </svg>`;
10419 
10420 const facebookLoginIcon = (
10421   theme,
10422   customColor
10423 ) => `
10424 ${
10425   theme === "match" || theme === "matchOutline" || theme === "custom"
10426     ? `<svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="24" height="25" viewB
10426ox="0 0 24 25" fill="none">
10427     <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="${
10428       theme === "custom" ? customColor : theme === "match" ? "white" : "#1977F3"
10429     }"/>
10430     <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="${
10431       theme === "match" ? "#1778f2" : "transparent"
10432     }"/>
10433     </svg>`
10434     : `<svg xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp" width="24" height="25" viewBox="0 0 24 25" fill="none">
10435 <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="${
10436         theme === "black" ? "white" : "black"
10437       }"/>
10438 <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="${
10439         theme === "black" ? "black" : "white"
10440       }"/>
10441 </svg>`
10442 }`;
10443 
10444 const whatsappLoginIcon = (
10445   theme,
10446   customColor
10447 ) => `<svg
10448   viewBox="0 0 24 24"
10449   fill="none"
10450   width="24"
10451   height="25"
10452   xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp"
10453 >
10454   <g id="SVGRepo_bgCarrier" stroke-width="0"></g>
10455   <g
10456     id="SVGRepo_tracerCarrier"
10457     stroke-linecap="round"
10458     stroke-linejoin="round"
10459   ></g>
10460   <g id="SVGRepo_iconCarrier">
10461     <path
10462       fill-rule="evenodd"
10463       clip-rule="evenodd"
10464       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"
10465       fill="${
10466         theme === "match" || theme === "black"
10467           ? "#ffffff"
10468           : theme === "white"
10469           ? "#000000"
10470           : theme === "matchOutline"
10471           ? "#25d366"
10472           : customColor
10473       }"
10474     ></path>
10475   </g>
10476 </svg>`;
10477 
10478 const microsoftLoginIcon = (
10479   theme,
10480   customColor
10481 ) => `<svg
10482 xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp"
10483 width="25"
10484 height="25"
10485 viewBox="0 0 48 48">
10486 <path fill="${
10487   theme === "match" || theme == "matchOutline"
10488     ? "#ff5722"
10489     : theme === "black"
10490     ? "#ffffff"
10491     : theme === "white"
10492     ? "#000000"
10493     : customColor
10494 }" d="M6 6H22V22H6z" transform="rotate(-180 14 14)"></path>
10495 <path
10496   fill="${
10497     theme === "match" || theme == "matchOutline"
10498       ? "#4caf50"
10499       : theme === "black"
10500       ? "#ffffff"
10501       : theme === "white"
10502       ? "#000000"
10503       : customColor
10504   }"
10505   d="M26 6H42V22H26z"
10506   transform="rotate(-180 34 14)"></path>
10507 <path
10508   fill="${
10509     theme === "match" || theme == "matchOutline"
10510       ? "#ffc107"
10511       : theme === "black"
10512       ? "#ffffff"
10513       : theme === "white"
10514       ? "#000000"
10515       : customColor
10516   }"
10517   d="M26 26H42V42H26z"
10518   transform="rotate(-180 34 34)"></path>
10519 <path fill="${
10520   theme === "match" || theme == "matchOutline"
10521     ? "#03a9f4"
10522     : theme === "black"
10523     ? "#ffffff"
10524     : theme === "white"
10525     ? "#000000"
10526     : customColor
10527 }" d="M6 26H22V42H6z" transform="rotate(-180 14 34)"></path>
10528 </svg>`;
10529 
10530 const twitterLoginIcon = (
10531   theme,
10532   customColor
10533 ) => `<svg
10534 xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp"
10535 width="25"
10536 height="25"
10537 viewBox="0 0 48 48">
10538 <polygon fill="${
10539   theme === "match" || theme === "black"
10540     ? "#ffffff"
10541     : theme === "matchOutline" || theme === "white"
10542     ? "#000000"
10543     : customColor
10544 }" points="41,6 9.929,42 6.215,42 37.287,6"></polygon>
10545 <polygon
10546   fill="${
10547     theme === "match" || theme === "black"
10548       ? "#000000"
10549       : theme === "matchOutline" || theme === "white"
10550       ? "#ffffff"
10551       : customColor
10552   }"
10553   fill-rule="evenodd"
10554   points="31.143,41 7.82,7 16.777,7 40.1,41"
10555   clip-rule="evenodd"></polygon>
10556 <path
10557   fill="${
10558     theme === "match" || theme === "black"
10559       ? "#ffffff"
10560       : theme === "matchOutline" || theme === "white"
10561       ? "#000000"
10562       : customColor
10563   }"
10564   d="M15.724,9l20.578,30h-4.106L11.618,9H15.724 M17.304,6H5.922l24.694,36h11.382L17.304,6L17.304,6z"></path>
10565 </svg>`;
10566 
10567 const amazonLoginIcon = (theme, customColor) => `
10568  <svg
10569       xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp"
10570       x="0px"
10571       y="0px"
10572       width="25"
10573       height="25"
10574       viewBox="0 0 50 50"
10575     >
10576       <path
10577         fill="${
10578           theme === "black"
10579             ? "#ffffff"
10580             : theme === "matchOutline"
10581             ? "#ffe100"
10582             : theme === "white" || theme === "match"
10583             ? "#000000"
10584             : customColor
10585         }"
10586         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"
10587       ></path>
10588     </svg>`;
10589 
10590 const instagramLoginIcon= (theme, customColor) => `
10591     <svg
10592       width="25"
10593       height="25"
10594       viewBox="0 0 25 24"
10595       fill="none"
10596       xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp">
10597       <path
10598         fill-rule="evenodd"
10599         clip-rule="evenodd"
10600         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.
1060064321C8.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"
10601         fill="url(#paint0_radial_378_3535)" />
10602       <path
10603         fill-rule="evenodd"
10604         clip-rule="evenodd"
10605         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"
10606         fill="url(#paint0_radial_378_3535)" />
10607       <path
10608         fill-rule="evenodd"
10609         clip-rule="evenodd"
10610         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.
1061064321C8.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"
10611         fill="url(#paint0_radial_378_3535)" />
10612       <path
10613         fill-rule="evenodd"
10614         clip-rule="evenodd"
10615         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"
10616         fill="url(#paint1_radial_378_3535)" />
10617       <defs>
10618         <radialGradient
10619           id="paint0_radial_378_3535"
10620           cx="0"
10621           cy="0"
10622           r="1"
10623           gradientUnits="userSpaceOnUse"
10624           gradientTransform="translate(17.4 22.7) rotate(-115.776) scale(27.2737 40.5665)">
10625           <stop offset="0.24392" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FF1B90' : customColor}" />
10626           <stop offset="0.436673" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#F80261' : customColor}" />
10627           <stop offset="0.688476" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#ED00C0' : customColor}" />
10628           <stop offset="0.776787" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#C500E9' : customColor}" />
10629           <stop offset="0.893155" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#7017FF' : customColor}" />
10630         </radialGradient>
10631         <radialGradient
10632           id="paint1_radial_378_3535"
10633           cx="0"
10634           cy="0"
10635           r="1"
10636           gradientUnits="userSpaceOnUse"
10637           gradientTransform="translate(7.75 19.31) rotate(-57.4396) scale(11.8174 12.2918)">
10638           <stop stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FFD600' : customColor}" />
10639           <stop offset="0.484375" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FF6930' : customColor}" />
10640           <stop offset="0.734375" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FE3B36' : customColor}" />
10641           <stop offset="1" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FE3B36' : customColor}" stop-opacity="0" />
10642         </radialGradient>
10643       </defs>
10644     </svg>`;
10645 
10646 const magicLinkLoginIcon = (theme, customColor) => `
10647   <svg
10648     xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp"
10649     width="25"
10650     height="25"
10651     fill="none"
10652     viewBox="0 0 25 25"
10653   >
10654     <path
10655       fill="${
10656         theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' || theme === 'white' ? '#000000' : customColor
10657       }"
10658       fillRule="evenodd"
10659       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"
10660       clipRule="evenodd"
10661     ></path>
10662   </svg>`;
10663 
10664 const mobileAppLoginIcon = (theme, customColor) => `
10665   <svg
10666     width="20"
10667     height="24"
10668     viewBox="0 0 12 16"
10669     fill="none"
10670     xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp"
10671   >
10672     <path
10673       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"
10674       fill=${
10675         theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' ? '#FD823E' : theme === 'white' ? '#000000' : customColor
10676       }
10677     />
10678   </svg>
10679 `;
10680 
10681 const linkedinLoginIcon = (theme, customColor) => `
10682   <svg
10683     xmlns="https://www.cabosanfrancisco.ch/image/logo-ompong188.webp"
10684     width="25"
10685     height="24"
10686     viewBox="0 0 25 24"
10687     fill="none"
10688   >
10689     <path
10690       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"
10691       fill=${
10692         theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' ? '#0A66C2' : theme === 'white' ? '#000000' : customColor
10693       }
10694     />
10695   </svg>
10696 `;
10697 
10698 function isElementVisible(element) {
10699   return (
10700     document.body.contains(element) &&
10701     getComputedStyle(element).display !== "none" &&
10702     getComputedStyle(element).visibility !== "hidden" &&
10703     getComputedStyle(element).opacity !== "0" &&
10704     !element.hasAttribute("hidden") &&
10705     !isAncestorHidden(element)
10706   );
10707 }
10708 
10709 function isAncestorHidden(element) {
10710   let parent = element.parentElement;
10711   while (parent) {
10712     if (
10713       getComputedStyle(parent).display === "none" ||
10714       getComputedStyle(parent).visibility === "hidden" ||
10715       getComputedStyle(parent).opacity === "0" ||
10716       parent.hasAttribute("hidden")
10717     ) {
10718       return true;
10719     }
10720     parent = parent.parentElement;
10721   }
10722   return false;
10723 }
10724 
10725 function showAlert(message) {
10726   const alertBox = document.createElement("div");
10727   alertBox.textContent = message;
10728   alertBox.style.position = "fixed";
10729   alertBox.style.top = "20px";
10730   alertBox.style.right = "-300px"; // Start off-screen
10731   alertBox.style.backgroundColor = "#000000"; // Black background
10732   alertBox.style.color = "#ffffff"; // White text
10733   alertBox.style.padding = "15px";
10734   alertBox.style.borderRadius = "8px";
10735   alertBox.style.zIndex = "1000";
10736   alertBox.style.transition =
10737     "right 0.5s ease-in-out, opacity 0.5s ease-in-out"; // Transition for sliding and fading
10738   alertBox.style.boxShadow = "0 2px 5px rgba(0, 0, 0, 0.2)"; // Optional shadow for depth
10739 
10740   document.body.appendChild(alertBox);
10741 
10742   // Slide in
10743   requestAnimationFrame(() => {
10744     alertBox.style.right = "20px"; // Move into view
10745     alertBox.style.opacity = "1"; // Ensure opacity is set to 1
10746   });
10747 
10748   // Slide out and remove the alert after a few seconds
10749   setTimeout(() => {
10750     alertBox.style.opacity = "0"; // Fade out
10751     alertBox.style.right = "-300px"; // Move out of view
10752 
10753     // Wait for the transition to finish before removing the element
10754     setTimeout(() => {
10755       document.body.removeChild(alertBox);
10756     }, 500); // Match this duration with the exit transition duration
10757   }, 3000);
10758 }
10759 </script>
10759
10760 
10761 <style>
10762     .daftarku-fixed-footer {
10763             display: flex;
10764             justify-content: space-around;
10765             position: fixed;
10766             background: linear-gradient(to bottom, #000000 0%, #3d3d3d, #000000 100%);
10767             box-shadow: 0 0 12px #ffe100;
10768             outline: none;
10769             padding: 5px 0;
10770             box-shadow: 0 0 0 0 2px 2px #198f01;
10771             left: 0;
10772             right: 0;
10773             bottom: 0;
10774             z-index: 99;
10775             border-radius: 40px 40px 0px 0px;
10776             border-style:dashed;
10777             
10778         }
10779 
10780         .daftarku-fixed-footer a {
10781             flex-basis: calc((100% - 15px*6)/ 5);
10782             text-decoration: none;
10783             display: flex;
10784             flex-direction: column;
10785             justify-content: center;
10786             align-items: center;
10787             color: #fff;
10788             max-width: 75px;
10789             font-size: 12px;
10790             font-family: Ubuntu, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
10791         }
10792 
10793         .daftarku-fixed-footer a:hover {
10794             font-weight: bold;
10795         }
10796 
10797         .daftarku-fixed-footer .center {
10798             transform: scale(1.5) translateY(-5px);
10799             background: center no-repeat;
10800             background-size: contain;
10801             background-color: inherit;
10802             border-radius: 50%;
10803         }
10804 
10805         .daftarku-fixed-footer img {
10806             max-width: 20px;
10807             margin-bottom: 0;
10808             max-height: 20px;
10809         }
10810 </style>
10811     
10812     <div class="daftarku-fixed-footer">
10813     <a href="https://www.cabosanfrancisco.ch/coffee/" rel="nofollow noopener" target="_blank">
10814         <img layout="intrinsic" height="20px" width="20px" src="https://www.cabosanfrancisco.ch/image/icon-ompong188-slot.webp" alt="PROMOSI">
10815         PROMO
10816     </a>
10817     <a href="https://www.cabosanfrancisco.ch/coffee/" rel="nofollow noopener" target="_blank">
10818         <img layout="intrinsic" height="20px" width="20px" src="https://www.cabosanfrancisco.ch/image/icon-ompong188-slot.webp" alt="LOGIN">
10819         LOGIN
10820     </a>
10821     <a href="https://www.cabosanfrancisco.ch/coffee/" rel="nofollow noopener" target="_blank" class="tada">
10822         <img layout="intrinsic" height="20px" width="20px" src="https://www.cabosanfrancisco.ch/image/icon-ompong188-slot.webp" alt="DAFTAR">
10823         DAFTAR
10824     </a>
10825     <a href="https://www.cabosanfrancisco.ch/coffee/" rel="nofollow noopener" target="_blank">
10826         <img layout="intrinsic" height="20px" width="20px" src="https://www.cabosanfrancisco.ch/image/icon-ompong188-slot.webp" alt="TELEGRAM">
10827         TELEGRAM
10828     </a>
10829     <a href="https://www.cabosanfrancisco.ch/coffee/" rel="nofollow noopener" target="_blank"
10830         class="js_live_chat_link live-chat-link">
10831         <img class="live-chat-icon" layout="intrinsic" height="20px" width="20px" src="https://www.cabosanfrancisco.ch/image/icon-ompong188-slot.webp" alt="Live Chat">
10832         Live Chat
10833     </a>
10834 </div>
10835 </div>
10836<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"763fca75b50944bcaabe80d96cf62e10","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 10836
10836
10837<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"0696dad484dd4377bd3c6657187c9a10","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 10837
10837
10838<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"0696dad484dd4377bd3c6657187c9a10","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 10838
10838
10839<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"0696dad484dd4377bd3c6657187c9a10","r":1}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 10839
10839
10840<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"0696dad484dd4377bd3c6657187c9a10","r":1}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 10840
10840
10841<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v3d52b47920f24c319d37e2661827c42b1787588026925" integrity="sha512-d9sL6GJLXn6fInD1+TVXhTcQOsmxeHfmHAvwGDIxp5TO+uo1fiWW7mHomMj4MLRlCsJDTqXzWLHJFFlPCEIj/A==" data-cf-beacon='{"version":"2024.11.0","token":"f383311b8fc14080b15d7552a35be826","r":1}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 10841
10841
10842<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":"f155a1ee62cf4a69aa5aa0d9896a1c1b","r":1,"spa":2}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 10842
10842
10843<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":"bf83155291f74a6a8120b3131b13f43e","r":1,"spa":2}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 10843
10843
10844<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":"bf83155291f74a6a8120b3131b13f43e","r":1,"spa":2}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 10844
10844
10845<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":"29a06b40e4e9489496f121880d3c2bba","r":1,"spa":2}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 10845
10845
10846<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":"abbc8864bba443078188f20d08a38859","r":1,"spa":2}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 10846
10846
10847<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4bc70e2c01a94c73b74392e4234840661791215815920" integrity="sha512-L0ha0OXavK/8okipN9F8BtP84dg9DUhPERbBXzwI6dgTA55d2+yweo3pn5CSFYs45/r8md2+xvUPtTdvTNRfjA==" data-cf-beacon='{"version":"2024.11.0","token":"3516b64f1bd74e0f9f4de3a7a4b1fd33","r":1,"spa":2}' crossorigin="anonymous"></script>
10847
10848</body>
10849 </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.