PageSourceSearch

https://unidosporelautismo.org/kontak-kami

html unidosporelautismo.org collected 2026-09-30 06:26:32 UTC 277,018 bytes, 6,058 lines download raw bytes

1<!DOCTYPE html>
2<html lang="id">
3  <head>
4    <meta charset="UTF-8">
5    <title>TAKERU365 - Link Daftar ID VIP, Bocoran RTP 98%, Buka 24/7</title>
6    <meta name="description" content="TAKERU365 menyediakan link daftar ID VIP dengan akses mudah, bocoran RTP 98% terbaru, layanan buka 24/7, serta pengalaman bermain yang aman dan nyaman setiap hari.">
7    <meta name="robots" content="index, follow, nosnippet" />
8    <meta name="keywords" content="takeru365, takeru365, takeru365 link, takeru365 daftar, takeru365 login, takeru365 main, takeru365 vip, situs takeru365" />
9    <meta name="publisher" content="TAKERU365" />
10    <link rel="canonical" href="https://unidosporelautismo.org/">
11    <link rel="amphtml" href="https://unidosporelautismo.org/amilosa-en-la-atencion-sanitaria-neonatal/">
12    <link rel="alternate" hreflang="id-id" href="https://unidosporelautismo.org/amilosa-en-la-atencion-sanitaria-neonatal/"/>
13    <link rel="alternate" href="https://unidosporelautismo.org/"/>
14    <link rel="alternate" hreflang="id" href="https://unidosporelautismo.org/amilosa-en-la-atencion-sanitaria-neonatal/"/>
15    <link rel="alternate" hreflang="en" href="https://unidosporelautismo.org/"/>
16    <link rel="alternate" hreflang="x-default" href="https://unidosporelautismo.org/"/>
17    <!-- [DISABLED] Google Analytics 4 GA4 G-0LSM1YJSPZ
18    <link rel="preconnect" href="https://www.googletagmanager.com" crossorigin>
vendor: 68 bytes, lines 18-19
18
19    <script async src="https://www.googletagmanager.com/gtag/js?id=
19G-0LSM1YJSPZ
vendor: 49 bytes, lines 19-20
19" nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
20    
20<script nonce="se3iyzEHMc9FQEB4wSyd0w=="> window.dataLayer = window.dataLayer || []; function gtag() { dataLayer.push(arguments) } gtag("consent", "default", { ad_storage: "denied", ad_user_data: "denied", ad_personalization: "denied", analytics_storage: "granted", wait_for_update: 500 }); gtag("js", new Date); gtag("config", "G-0LSM1YJSPZ", { send_page_view: !0, linker: { domains: ["plazait.co.id", "www.plazait.co.id"] } }); window.ga4Ecomm = { viewItem: function(e) { if (!window.gtag) return; try { gtag("event", "view_item", { currency: e.currency || "IDR", value: e.value || 0, items: [{ item_id: e.item_id || "", item_name: e.item_name || "", item_brand: e.item_brand || "", item_category: e.item_category || "", price: e.price || 0, quantity: 1 }] }) } catch (t) {} }, addToCart: function(e) { if (!window.gtag) return; try { gtag("event", "add_to_cart", { currency: e.currency || "IDR", value: (e.price || 0) * (e.quantity || 1), items: [{ item_id: e.item_id || "", item_name: e.item_name || "", item_brand: e.item_brand || "", item_category: e.item_category || "", price: e.price || 0, quantity: e.quantity || 1 }] }) } catch (t) {} } };</script>
20
21    -->
22    <meta property="og:locale" content="id_ID">
23    <meta property="og:site_name" content="TAKERU365">
24    <meta property="og:type" content="product">
25    <meta property="og:title" content="TAKERU365 - Link Daftar ID VIP, Bocoran RTP 98%, Buka 24/7">
26    <meta property="og:description" content="TAKERU365 menyediakan link daftar ID VIP dengan akses mudah, bocoran RTP 98% terbaru, layanan buka 24/7, serta pengalaman bermain yang aman dan nyaman setiap hari.">
27    <meta property="og:url" content="https://unidosporelautismo.org/">
28    <meta property="og:image" content="https://unidosporelautismo.org/img/banner_takeru365.webp">
29    <meta property="og:image:alt" content="TAKERU365 - Link Daftar ID VIP, Bocoran RTP 98%, Buka 24/7">
30    <meta property="product:price:amount" content="10000">
31    <meta property="product:price:currency" content="IDR">
32    <meta property="product:availability" content="out of stock">
33    <meta name="twitter:card" content="summary_large_image">
34    <meta name="twitter:title" content="TAKERU365 - Link Daftar ID VIP, Bocoran RTP 98%, Buka 24/7">
35    <meta name="twitter:description" content="TAKERU365 menyediakan link daftar ID VIP dengan akses mudah, bocoran RTP 98% terbaru, layanan buka 24/7, serta pengalaman bermain yang aman dan nyaman setiap hari.">
36    <meta name="twitter:image" content="https://unidosporelautismo.org/img/banner_takeru365.webp">
37    
37<script type="application/ld+json">
38    {
39      "@context": "https://schema.org",
40      "@type": "WebSite",
41      "@id": "/#website",
42      "url": "https://unidosporelautismo.org/",
43      "name": "TAKERU365",
44      "inLanguage": "id",
45      "potentialAction": {
46        "@type": "SearchAction",
47        "target": "https://unidosporelautismo.org/",
48        "query-input": "required name=search_term_string"
49      }
50    }
51    </script>
51
52
53    
53<script type="application/ld+json">
54    {
55      "@context": "https://schema.org",
56      "@type": "Organization",
57      "@id": "/#organization",
58      "name": "TAKERU365",
59      "url": "https://unidosporelautismo.org/",
60      "logo": "https://asset01.source-static.us/assets/rajaplay/takeru365/components/logo-1000px.png"
61    }
62    </script>
62
63
64    
64<script type="application/ld+json">
65    {
66      "@context": "https://schema.org",
67      "@type": "Product",
68      "name": "TAKERU365 - Link Daftar ID VIP, Bocoran RTP 98%, Buka 24/7",
69      "sku": "1S83N0880RID",
70      "image": [
71        "https://unidosporelautismo.org/img/banner_takeru365.webp"
72      ],
73      "url": "https://unidosporelautismo.org/",
74      "description": "TAKERU365 menyediakan link daftar ID VIP dengan akses mudah, bocoran RTP 98% terbaru, layanan buka 24/7, serta pengalaman bermain yang aman dan nyaman setiap hari.",
75      "category": "TAKERU365",
76      "brand": {
77        "@type": "Brand",
78        "name": "TAKERU365"
79      },
80      "offers": {
81        "@type": "Offer",
82        "url": "https://unidosporelautismo.org/",
83        "priceCurrency": "IDR",
84        "price": "10000",
85        "priceValidUntil": "2027-03-01",
86        "availability": "https://schema.org/OutOfStock",
87        "itemCondition": "https://schema.org/NewCondition",
88        "seller": {
89          "@type": "Organization",
90          "name": "TAKERU365",
91          "url": "https://unidosporelautismo.org/"
92        }
93      },
94      "aggregateRating": {
95        "@type": "AggregateRating",
96        "ratingValue": "4.8",
97        "reviewCount": "6",
98        "bestRating": "5",
99        "worstRating": "1"
100      },
101      "review": [
102        {
103          "@type": "Review",
104          "author": {
105            "@type": "Person",
106            "name": "Rafli Nugraha"
107          },
108          "reviewBody": "Daftarnya cepat dan tampilannya gampang dipahami. Pelayanannya juga responsif setiap kali saya butuh bantuan.",
109          "reviewRating": {
110            "@type": "Rating",
111            "ratingValue": "5",
112            "bestRating": "5",
113            "worstRating": "1"
114          }
115        },
116        {
117          "@type": "Review",
118          "author": {
119            "@type": "Person",
120            "name": "Sinta Maharani"
121          },
122          "reviewBody": "Link resminya selalu lancar dibuka. Sudah beberapa kali login tanpa kendala, sangat memudahkan.",
123          "reviewRating": {
124            "@type": "Rating",
125            "ratingValue": "4",
126            "bestRating": "5",
127            "worstRating": "1"
128          }
129        },
130        {
131          "@type": "Review",
132          "author": {
133            "@type": "Person",
134            "name": "Dimas Prasetyo"
135          },
136          "reviewBody": "CS aktif 24 jam benar-benar membantu. Setiap pertanyaan saya dijawab dengan cepat dan ramah.",
137          "reviewRating": {
138            "@type": "Rating",
139            "ratingValue": "5",
140            "bestRating": "5",
141            "worstRating": "1"
142          }
143        },
144        {
145          "@type": "Review",
146          "author": {
147            "@type": "Person",
148            "name": "Nadia Permata"
149          },
150          "reviewBody": "Suka karena informasinya selalu diperbarui. Platformnya ringan dipakai di HP maupun laptop.",
151          "reviewRating": {
152            "@type": "Rating",
153            "ratingValue": "5",
154            "bestRating": "5",
155            "worstRating": "1"
156          }
157        },
158        {
159          "@type": "Review",
160          "author": {
161            "@type": "Person",
162            "name": "Aurel Valencia"
163          },
164          "reviewBody": "Proses daftar ID VIP tidak ribet. Dalam hitungan menit akun sudah siap digunakan.",
165          "reviewRating": {
166            "@type": "Rating",
167            "ratingValue": "5",
168            "bestRating": "5",
169            "worstRating": "1"
170          }
171        },
172        {
173          "@type": "Review",
174          "author": {
175            "@type": "Person",
176            "name": "Selma Prameswari"
177          },
178          "reviewBody": "Perpaduan tema Emily Grosholz dan pembahasan hiburan online membuat TAKERU365 memiliki karakter yang berbeda. Bahasa yang digunakan terasa ringan, sementara informasi pentingnya tetap tersampaikan secara teratur.",
179          "reviewRating": {
180            "@type": "Rating",
181            "ratingValue": "5",
182            "bestRating": "5",
183            "worstRating": "1"
184          }
185        }
186      ]
187    }
188    </script>
188
189
190    
190<script type="application/ld+json">
191    {
192      "@context": "https://schema.org",
193      "@type": "BreadcrumbList",
194      "itemListElement": [
195        {
196          "@type": "ListItem",
197          "position": 1,
198          "name": "TAKERU365",
199          "item": "https://unidosporelautismo.org/"
200        },
201        {
202          "@type": "ListItem",
203          "position": 2,
204          "name": "TAKERU365 LINK",
205          "item": "https://unidosporelautismo.org/"
206        },
207        {
208          "@type": "ListItem",
209          "position": 3,
210          "name": "TAKERU365 LOGIN",
211          "item": "https://unidosporelautismo.org/"
212        },
213        {
214          "@type": "ListItem",
215          "position": 4,
216          "name": "TAKERU365 DAFTAR",
217          "item": "https://unidosporelautismo.org/"
218        },
219        {
220          "@type": "ListItem",
221          "position": 5,
222          "name": "TAKERU365 - Link Daftar ID VIP, Bocoran RTP 98%, Buka 24/7",
223          "item": "https://unidosporelautismo.org/"
224        }
225      ]
226    }
227    </script>
227
228
229
230    
230<script type="application/ld+json">
231    {
232      "@context": "https://schema.org",
233      "@type": "FAQPage",
234      "mainEntity": [
235        {
236          "@type": "Question",
237          "name": "Apa itu TAKERU365?",
238          "acceptedAnswer": {
239            "@type": "Answer",
240            "text": "TAKERU365TAKERU365 adalah platform hiburan digital yang menyediakan akses mudah untuk pendaftaran ID VIP, layanan 24 jam, serta berbagai fitur yang dirancang agar pengalaman pengguna lebih nyaman.  2. Apakah B"
241          }
242        },
243        {
244          "@type": "Question",
245          "name": "Bagaimana cara mendaftar akun di TAKERU365?",
246          "acceptedAnswer": {
247            "@type": "Answer",
248            "text": "Anda hanya perlu membuka link resmi TAKERU365, mengisi formulir pendaftaran dengan data yang diperlukan, lalu mengikuti proses verifikasi hingga akun aktif."
249          }
250        },
251        {
252          "@type": "Question",
253          "name": "Apakah layanan TAKERU365 tersedia selama 24 jam?",
254          "acceptedAnswer": {
255            "@type": "Answer",
256            "text": "Ya. TAKERU365 beroperasi 24 jam sehari sehingga pengguna dapat mengakses layanan maupun menghubungi customer service kapan saja."
257          }
258        },
259        {
260          "@type": "Question",
261          "name": "Apa yang dimaksud dengan bocoran RTP 98% di TAKERU365?",
262          "acceptedAnswer": {
263            "@type": "Answer",
264            "text": "Bocoran RTP 98% merupakan informasi persentase pengembalian yang dijadikan referensi oleh pengguna untuk menentukan pilihan permainan."
265          }
266        },
267        {
268          "@type": "Question",
269          "name": "Apakah TAKERU365 dapat diakses melalui smartphone?",
270          "acceptedAnswer": {
271            "@type": "Answer",
272            "text": "Tentu. Platform TAKERU365 telah dioptimalkan untuk perangkat Android, iPhone, tablet, maupun komputer sehingga tetap nyaman digunakan."
273          }
274        },
275        {
276          "@type": "Question",
277          "name": "Apa keunggulan menjadi member VIP di TAKERU365?",
278          "acceptedAnswer": {
279            "@type": "Answer",
280            "text": "Member VIP berkesempatan menikmati akses yang lebih praktis, berbagai promo menarik, layanan prioritas, serta pengalaman bermain yang lebih nyaman."
281          }
282        }
283      ]
284    }
285    </script>
285
286    
286<script type="application/ld+json">
287{
288  "@context": "https://schema.org",
289  "@graph": [
290    {
291      "@type": "WebSite",
292      "@id": "https://unidosporelautismo.org/#website",
293      "url": "https://unidosporelautismo.org/",
294      "name": "TAKERU365",
295      "inLanguage": "id-ID"
296    },
297    {
298      "@type": "Organization",
299      "@id": "https://unidosporelautismo.org/#organization",
300      "name": "TAKERU365",
301      "url": "https://unidosporelautismo.org/",
302      "logo": {
303        "@type": "ImageObject",
304        "url": "https://asset01.source-static.us/assets/rajaplay/takeru365/components/logo-1000px.png"
305      }
306    },
307    {
308      "@type": "Article",
309      "@id": "https://unidosporelautismo.org/#article",
310      "isPartOf": {
311        "@id": "https://unidosporelautismo.org/#website"
312      },
313      "headline": "TAKERU365 - Link Daftar ID VIP, Bocoran RTP 98%, Buka 24/7",
314      "description": "TAKERU365 menyediakan link daftar ID VIP dengan akses mudah, bocoran RTP 98% terbaru, layanan buka 24/7, serta pengalaman bermain yang aman dan nyaman setiap hari.",
315      "image": [
316        "https://unidosporelautismo.org/img/banner_takeru365.webp"
317      ],
318      "datePublished": "2026-01-15T08:00:00+07:00",
319      "dateModified": "2026-07-29T16:00:00+07:00",
320      "author": {
321        "@type": "Person",
322        "name": "TAKERU365",
323        "url": "https://unidosporelautismo.org/"
324      },
325      "publisher": {
326        "@id": "https://unidosporelautismo.org/#organization"
327      },
328      "inLanguage": "id-ID",
329      "mainEntityOfPage": "https://unidosporelautismo.org/"
330    }
331  ]
332}
333</script>
333
334
335    <!-- User Session Data -->
336    <meta name="csrf-token" content="9ce6e4a17f7cc189893df9e47789b13e98829450d516a0cae5ca7b5f43e5dadc">
337    <meta name="user-logged-in" content="false">
338    <meta name="user-id" content="0">
339    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
340    <link rel="shortcut icon" href="https://asset01.source-static.us/assets/rajaplay/takeru365/components/fav.png" type="image/x-icon">
341    <link rel="stylesheet" href="https://mobileplay.shop/assets/css/style.css">
342    <link rel="stylesheet" href="https://mobileplay.shop/assets/css/bottom-nav.css">
343    <link rel="stylesheet" href="https://mobileplay.shop/assets/css/search-suggest.css">
344    <link rel="stylesheet" href="https://mobileplay.shop/assets/css/product-detail.css">
345    <link rel="stylesheet" href="https://mobileplay.shop/assets/css/product-grid.css">
346    <link rel="stylesheet" href="https://mobileplay.shop/assets/css/site-notice.css">
347    <link rel="stylesheet" href="https://mobileplay.shop/assets/css/benchmark.css">
348    <link rel="stylesheet" href="https://mobileplay.shop/assets/css/product-filters.css">
349    <link rel="stylesheet" href="https://mobileplay.shop/assets/css/mega-menu-tiles.css">
350    <link rel="stylesheet" href="https://mobileplay.shop/assets/css/product-compare.css">
351    <link rel="stylesheet" href="https://mobileplay.shop/assets/css/product-card-actions.css">
352    <link rel="stylesheet" href="https://mobileplay.shop/assets/css/modal.css">
353    <link rel="stylesheet" href="https://mobileplay.shop/assets/css/reviews-points.css">
354  </head>
355  <body>
356    <header class="topbar">
357      <div class="container topbar-inner">
358        <div class="topbar-left"> TAKERU365 - Link Daftar ID VIP, Bocoran RTP 98%, Buka 24/7 </div>
359        <div class="topbar-right">
360          <a href="https://unidosporelautismo.org/">TAKERU365</a>
361          <a href="https://unidosporelautismo.org/">TAKERU365 BONUS</a>
362          <a href="https://unidosporelautismo.org/">Daftar</a>
363          <a href="https://unidosporelautismo.org/">Masuk</a>
364        </div>
365      </div>
366    </header>
367    <nav class="navbar">
368      <nav class="navbar-logo" style="width: 100%;">
369        <div class="container nav-inner" style="justify-items: center; justify-content: center;">
370          <a href="/" class="logo-mobile">
371            <img src="https://asset01.source-static.us/assets/rajaplay/takeru365/components/logo-1000px.png" alt="TAKERU365" height="40">
372          </a>
373        </div>
374      </nav>
375      <div class="container nav-inner">
376        <a href="/" class="logo">
377          <img src="https://asset01.source-static.us/assets/rajaplay/takeru365/components/logo-1000px.png" alt="TAKERU365" height="40">
378        </a>
379        <form class="search" method="get" action="#">
380          <input type="hidden" name="page" value="produk">
381          <!-- Search Icon (Desktop) -->
382          <button type="submit" class="search-icon-btn" id="searchBtn" aria-label="Cari">
383            <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">
384              <circle cx="11" cy="11" r="8"/>
385              <path d="m21 21-4.35-4.35"/>
386            </svg>
387          </button>
388          <input type="text" name="q" id="searchInput" placeholder="Cari Kami di Google: TAKERU365" value="" autocomplete="off">
389          <div class="search-suggest" id="searchSuggest" hidden></div>
390        </form>
391        <div class="nav-actions">
392          <!--<button class="icon-btn" id="notifBtn" title="Notifikasi">🔔</button>-->
393          <button class="icon-btn cart-indicator" id="cartBtn" title="Keranjang"> 🛒 <span id="cartCount" class="badge" data-role="cart-badge" aria-live="polite">0</span>
394          </button>
395          <span id="compareCount" class="badge" data-role="compare-badge" aria-live="polite">0</span>
396          </button>
397          <!-- Dynamic login/logout button -->
398          <button class="login-btn" id="loginBtn" aria-label="Masuk">
399            <span class="login-text">Masuk</span>
400            <span class="login-ico" aria-hidden="true">😊</span>
401          </button>
402        </div>
403      </div>
404      <div class="container" style="display: flex; align-items: center;">
405        <div class="mega-cats-wrapper">
406          <div class="mega-cats container" id="megaCatsScroll" style="padding-left: 5px !important;">
407            <a class="" href="https://unidosporelautismo.org/"> TAKERU365 </a>
408            <a class="" href="https://unidosporelautismo.org/"> TAKERU365 LINK </a>
409            <a class="" href="https://unidosporelautismo.org/"> TAKERU365 LOGIN </a>
410            <a class="" href="https://unidosporelautismo.org/"> TAKERU365 DAFTAR </a>
411            <a class="" href="https://unidosporelautismo.org/"> GAME ONLINE </a>
412            <a class="" href="https://unidosporelautismo.org/"> TAKERU365 ALTERNATIF </a>
413            <a class="" href="https://unidosporelautismo.org/"> SITUS TAKERU365 </a>
414          </div>
415          <div class="mega-cats-fade" id="megaCatsFade"></div>
416        </div>
417      </div>
418    </nav>
419    <!-- Panel Mega Menu - Outside navbar for full-screen -->
420    <div class="mm2-panel" data-mm2="panel" role="dialog" aria-label="Kategori">
421      <div class="mm2-view is-active" data-mm2="top"></div>
422      <div class="mm2-view" data-mm2="detail"></div>
423    </div>
424    <!-- Backdrop - Outside navbar for full-screen -->
425    <div class="mm2-backdrop" data-mm2="backdrop"></div>
426    <!-- Mobile Bottom Navigation -->
427    <nav class="bottom-nav">
428      <div class="bottom-nav-inner">
429        <!-- Home -->
430        <a href="/" class="bottom-nav-item" id="bottomHomeBtn" data-page="home">
431          <div class="bottom-nav-item-icon">
432            <!-- Outlined icon (default) -->
433            <svg class="icon-outlined" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
434              <path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"/>
435              <polyline points="9 22 9 12 15 12 15 22"/>
436            </svg>
437            <!-- Filled icon (active) -->
438            <svg class="icon-filled" viewBox="0 0 24 24" fill="currentColor">
439              <path d="M11.47 3.84a.75.75 0 011.06 0l8.69 8.69a.75.75 0 010 1.06l-.03.03a.75.75 0 01-1.06 0l-8.16-8.16-8.16 8.16a.75.75 0 01-1.06 0l-.03-.03a.75.75 0 010-1.06l8.69-8.69z"/>
440              <path d="M12 5.5l-7.5 7.5v8.25c0 .414.336.75.75.75h3.75v-6h6v6h3.75a.75.75 0 00.75-.75V13l-7.5-7.5z"/>
441            </svg>
442          </div>
443          <span class="bottom-nav-item-label">Home</span>
444        </a>
445        <!-- Kategori -->
446        <button class="bottom-nav-item" id="bottomCategoryBtn" data-mm2="trigger" aria-label="Kategori">
447          <div class="bottom-nav-item-icon">
448            <!-- Outlined icon (default) -->
449            <svg class="icon-outlined" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
450              <line x1="3" y1="12" x2="21" y2="12"/>
451              <line x1="3" y1="6" x2="21" y2="6"/>
452              <line x1="3" y1="18" x2="21" y2="18"/>
453            </svg>
454            <!-- Filled icon (active) -->
455            <svg class="icon-filled" viewBox="0 0 24 24" fill="currentColor">
456              <path d="M3 5.25A.75.75 0 013.75 4.5h16.5a.75.75 0 010 1.5H3.75A.75.75 0 013 5.25zM3 12a.75.75 0 01.75-.75h16.5a.75.75 0 010 1.5H3.75A.75.75 0 013 12zm0 6.75a.75.75 0 01.75-.75h16.5a.75.75 0 010 1.5H3.75a.75.75 0 01-.75-.75z"/>
457            </svg>
458          </div>
459          <span class="bottom-nav-item-label">Kategori</span>
460        </button>
461        <!-- Keranjang -->
462        <button class="bottom-nav-item" id="bottomCartBtn">
463          <div class="bottom-nav-item-icon">
464            <!-- Outlined icon (default) -->
465            <svg class="icon-outlined" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
466              <circle cx="9" cy="21" r="1"/>
467              <circle cx="20" cy="21" r="1"/>
468              <path d="M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6"/>
469            </svg>
470            <!-- Filled icon (active) -->
471            <svg class="icon-filled" viewBox="0 0 24 24" fill="currentColor">
472              <path d="M2.25 2.25a.75.75 0 000 1.5h1.386c.17 0 .318.114.362.278l2.558 9.592a3.752 3.752 0 00-2.806 3.63c0 .414.336.75.75.75h15.75a.75.75 0 000-1.5H5.378A2.25 2.25 0 017.5 15h11.218a.75.75 0 00.674-.421 60.358 60.358 0 002.96-7.228.75.75 0 00-.525-.965A60.864 60.864 0 005.68 4.509l-.232-.867A1.875 1.875 0 003.636 2.25H2.25zM3.75 20.25a1.5 1.5 0 113 0 1.5 1.5 0 01-3 0zM16.5 20.25a1.5 1.5 0 113 0 1.5 1.5 0 01-3 0z"/>
473            </svg>
474            <span class="bottom-nav-item-badge" id="bottomCartCount">0</span>
475          </div>
476          <span class="bottom-nav-item-label">Keranjang</span>
477        </button>
478        <!-- Compare -->
479        <button class="bottom-nav-item" id="bottomCompareBtn">
480          <div class="bottom-nav-item-icon">
481            <!-- Outlined icon (default) -->
482            <svg class="icon-outlined" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
483              <polyline points="17 11 21 7 17 3"/>
484              <path d="M21 7H9"/>
485              <polyline points="7 21 3 17 7 13"/>
486              <path d="M15 17H3"/>
487            </svg>
488            <!-- Filled icon (active) -->
489            <svg class="icon-filled" viewBox="0 0 24 24" fill="currentColor">
490              <path d="M21.75 6.75a.75.75 0 00-.75-.75H9a.75.75 0 000 1.5h10.19L15.22 11.47a.75.75 0 001.06 1.06l4.5-4.5a.75.75 0 00.22-.53.75.75 0 00-.22-.53l-.03-.03zM8.78 12.47L4.28 16.97a.75.75 0 000 1.06l4.5 4.5a.75.75 0 001.06-1.06L6.06 18H15a.75.75 0 000-1.5H4.81l3.97-3.97a.75.75 0 00-1.06-1.06z"/>
491            </svg>
492            <span class="bottom-nav-item-badge" id="bottomCompareCount" style="display:none;">0</span>
493          </div>
494          <span class="bottom-nav-item-label">Compare</span>
495        </button>
496        <!-- Chat - Always show, check login in JavaScript -->
497        <button class="bottom-nav-item" id="bottomChatBtn" data-page="chat">
498          <div class="bottom-nav-item-icon">
499            <!-- Outlined icon (default) -->
500            <svg class="icon-outlined" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" opacity="0.85">
501              <path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/>
502            </svg>
503            <!-- Filled icon (active) -->
504            <svg class="icon-filled" viewBox="0 0 24 24" fill="currentColor">
505              <path d="M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2z"/>
506            </svg>
507            <span class="bottom-nav-item-badge" id="bottomChatCount" style="display:none;">0</span>
508          </div>
509          <span class="bottom-nav-item-label">Chat</span>
510        </button>
511        <!-- Akun -->
512        <button class="bottom-nav-item" id="bottomLoginBtn">
513          <div class="bottom-nav-item-icon">
514            <!-- Outlined icon (default) -->
515            <svg class="icon-outlined" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
516              <path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"/>
517              <circle cx="12" cy="7" r="4"/>
518            </svg>
519            <!-- Filled icon (active) -->
520            <svg class="icon-filled" viewBox="0 0 24 24" fill="currentColor">
521              <path fill-rule="evenodd" d="M7.5 6a4.5 4.5 0 119 0 4.5 4.5 0 01-9 0zM3.751 20.105a8.25 8.25 0 0116.498 0 .75.75 0 01-.437.695A18.683 18.683 0 0112 22.5c-2.786 0-5.433-.608-7.812-1.7a.75.75 0 01-.437-.695z" clip-rule="evenodd"/>
522            </svg>
523          </div>
524          <span class="bottom-nav-item-label">Login</span>
525        </button>
526        </svg>
527      </div>
528      </button>
529      </div>
530    </nav>
531    <!-- Mobile User Menu Bottom Sheet -->
532    
532<script nonce="se3iyzEHMc9FQEB4wSyd0w==">
533      (function() {
534        const btn = document.getElementById('megaMoreBtn');
535        const dd = document.getElementById('megaMoreDropdown');
536        if (!btn || !dd) return;
537
538        function openDD() {
539          dd.hidden = false;
540          btn.setAttribute('aria-expanded', 'true');
541          document.addEventListener('click', outside, {
542            capture: true
543          });
544          document.addEventListener('keydown', esc);
545        }
546
547        function closeDD() {
548          if (dd.hidden) return;
549          dd.hidden = true;
550          btn.setAttribute('aria-expanded', 'false');
551          document.removeEventListener('click', outside, {
552            capture: true
553          });
554          document.removeEventListener('keydown', esc);
555        }
556
557        function toggle() {
558          dd.hidden ? openDD() : closeDD();
559        }
560
561        function outside(e) {
562          if (!dd.contains(e.target) && e.target !== btn) {
563            closeDD();
564          }
565        }
566
567        function esc(e) {
568          if (e.key === 'Escape') {
569            closeDD();
570            btn.focus();
571          }
572        }
573        btn.addEventListener('click', toggle);
574      })();
575      // ========== HORIZONTAL SCROLL FADE INDICATOR ==========
576      (function() {
577        const megaCats = document.getElementById('megaCatsScroll');
578        const fade = document.getElementById('megaCatsFade');
579        if (!megaCats || !fade) return;
580
581        function updateFade() {
582          const scrollLeft = megaCats.scrollLeft;
583          const scrollWidth = megaCats.scrollWidth;
584          const clientWidth = megaCats.clientWidth;
585          const maxScroll = scrollWidth - clientWidth;
586          // Hide fade when scrolled to end (within 10px tolerance)
587          if (maxScroll - scrollLeft <= 10) {
588            fade.style.opacity = '0';
589          } else {
590            fade.style.opacity = '1';
591          }
592        }
593        // Update on scroll
594        megaCats.addEventListener('scroll', updateFade, {
595          passive: true
596        });
597        // Update on resize
598        window.addEventListener('resize', updateFade, {
599          passive: true
600        });
601        // Initial check
602        setTimeout(updateFade, 100);
603      })();
604      document.addEventListener('DOMContentLoaded', function() {
605        var input = document.getElementById('searchInput');
606        if (!input) return;
607        input.addEventListener('keydown', function(e) {
608          if (e.key === 'Enter') {
609            e.preventDefault();
610            var form = input.form;
611            if (!form) return;
612            if (typeof form.requestSubmit === 'function') form.requestSubmit();
613            else form.submit();
614          }
615        });
616      });
617      (function() {
618        const cartBtn = document.getElementById('cartBtn');
619        if (cartBtn) {
620          cartBtn.addEventListener('click', function(e) {
621            e.preventDefault();
622            const checkLogin = () => {
623              return window.isUserLoggedIn ? window.isUserLoggedIn() : false;
624            };
625            if (checkLogin()) {
626              window.location.href = '/keranjang';
627            } else {
628              showCartLoginModal();
629            }
630          });
631        }
632        const loginBtn = document.getElementById('loginBtn');
633        if (loginBtn) {
634          loginBtn.addEventListener('click', function(e) {
635            e.preventDefault();
636            window.location.href = 'https://unidosporelautismo.org/';
637          });
638        }
639        const userMenuBtn = document.getElementById('userMenuBtn');
640        const userDropdown = document.getElementById('userDropdown');
641        if (userMenuBtn && userDropdown) {
642          function openDropdown() {
643            userDropdown.hidden = false;
644            userMenuBtn.setAttribute('aria-expanded', 'true');
645            document.addEventListener('click', closeOnOutside, {
646              capture: true
647            });
648            document.addEventListener('keydown', closeOnEscape);
649          }
650
651          function closeDropdown() {
652            if (userDropdown.hidden) return;
653            userDropdown.hidden = true;
654            userMenuBtn.setAttribute('aria-expanded', 'false');
655            document.removeEventListener('click', closeOnOutside, {
656              capture: true
657            });
658            document.removeEventListener('keydown', closeOnEscape);
659          }
660
661          function closeOnOutside(e) {
662            if (!userDropdown.contains(e.target) && e.target !== userMenuBtn) {
663              closeDropdown();
664            }
665          }
666
667          function closeOnEscape(e) {
668            if (e.key === 'Escape') {
669              closeDropdown();
670              userMenuBtn.focus();
671            }
672          }
673          userMenuBtn.addEventListener('click', function(e) {
674            e.preventDefault();
675            userDropdown.hidden ? openDropdown() : closeDropdown();
676          });
677          // Close dropdown when clicking profile links
678          userDropdown.querySelectorAll('[data-close-dropdown]').forEach(link => {
679            link.addEventListener('click', function() {
680              closeDropdown();
681            });
682          });
683        }
684        // Bottom nav profile button - toggle mobile bottom sheet
685        const bottomProfileBtn = document.getElementById('bottomProfileBtn');
686        const mobileUserSheet = document.getElementById('mobileUserSheet');
687        const mobileUserSheetBackdrop = document.getElementById('mobileUserSheetBackdrop');
688        if (bottomProfileBtn && mobileUserSheet) {
689          function openMobileSheet() {
690            mobileUserSheet.hidden = false;
691            document.body.style.overflow = 'hidden';
692            // Trigger animation
693            requestAnimationFrame(() => {
694              mobileUserSheet.classList.add('active');
695            });
696          }
697
698          function closeMobileSheet() {
699            mobileUserSheet.classList.remove('active');
700            document.body.style.overflow = '';
701            setTimeout(() => {
702              mobileUserSheet.hidden = true;
703            }, 300);
704          }
705          bottomProfileBtn.addEventListener('click', function(e) {
706            e.preventDefault();
707            openMobileSheet();
708          });
709          if (mobileUserSheetBackdrop) {
710            mobileUserSheetBackdrop.addEventListener('click', closeMobileSheet);
711          }
712          // Close on escape key
713          document.addEventListener('keydown', function(e) {
714            if (e.key === 'Escape' && !mobileUserSheet.hidden) {
715              closeMobileSheet();
716            }
717          });
718          // Close sheet when clicking profile links
719          mobileUserSheet.querySelectorAll('[data-close-sheet]').forEach(link => {
720            link.addEventListener('click', function() {
721              closeMobileSheet();
722            });
723          });
724        }
725        // Handle Google avatar error in bottom-nav (fallback to initials)
726        const bottomNavAvatar = document.querySelector('.bottom-nav-avatar-img');
727        if (bottomNavAvatar) {
728          bottomNavAvatar.addEventListener('error', function() {
729            const initials = this.getAttribute('data-fallback-initials') || 'U';
730            const initialsDiv = document.createElement('div');
731            initialsDiv.className = 'bottom-nav-avatar-initials';
732            initialsDiv.textContent = initials;
733            this.parentNode.replaceChild(initialsDiv, this);
734          });
735        }
736        // Mobile logout button
737        const mobileLogoutBtn = document.getElementById('mobileLogoutBtn');
738        if (mobileLogoutBtn) {
739          mobileLogoutBtn.addEventListener('click', async function(e) {
740            e.preventDefault();
741            // Check push notification before logout
742            if (window.ChatNotification && typeof window.ChatNotification.confirmLogoutWithPushNotification === 'function') {
743              const confirmLogout = await window.ChatNotification.confirmLogoutWithPushNotification();
744              if (!confirmLogout) {
745                return; // User cancelled logout
746              }
747            }
748            const getCsrfToken = () => document.querySelector('meta[name="csrf-token"]')?.getAttribute('content') || '';
749            try {
750              const response = await fetch('/auth/logout', {
751                method: 'POST',
752                credentials: 'same-origin',
753                headers: {
754                  'Content-Type': 'application/json',
755                  'X-CSRF-Token': getCsrfToken()
756                },
757                body: JSON.stringify({
758                  csrf_token: getCsrfToken()
759                })
760              });
761              if (response.ok) {
762                if (window.guestCart && typeof window.guestCart.clear === 'function') {
763                  window.guestCart.clear();
764                }
765                window.location.href = '/login?logged_out=1';
766              } else {
767                console.error('Logout failed');
768                window.location.href = '/logout';
769              }
770            } catch (error) {
771              console.error('Logout error:', error);
772              window.location.href = '/logout';
773            }
774          });
775        }
776        const logoutBtn = document.getElementById('logoutBtn');
777        if (logoutBtn) {
778          logoutBtn.addEventListener('click', async function(e) {
779            e.preventDefault();
780            // Check push notification before logout
781            if (window.ChatNotification && typeof window.ChatNotification.confirmLogoutWithPushNotification === 'function') {
782              const confirmLogout = await window.ChatNotification.confirmLogoutWithPushNotification();
783              if (!confirmLogout) {
784                return; // User cancelled logout
785              }
786            }
787            const getCsrfToken = () => document.querySelector('meta[name="csrf-token"]')?.getAttribute('content') || '';
788            try {
789              const response = await fetch('/auth/logout', {
790                method: 'POST',
791                credentials: 'same-origin',
792                headers: {
793                  'Content-Type': 'application/json',
794                  'X-CSRF-Token': getCsrfToken()
795                },
796                body: JSON.stringify({
797                  csrf_token: getCsrfToken()
798                })
799              });
800              if (response.ok) {
801                if (window.guestCart && typeof window.guestCart.clear === 'function') {
802                  window.guestCart.clear();
803                }
804                window.location.href = '/login?logged_out=1';
805              } else {
806                console.error('Logout failed');
807                window.location.href = '/logout';
808              }
809            } catch (error) {
810              console.error('Logout error:', error);
811              window.location.href = '/logout';
812            }
813          });
814        }
815        const wishlistBtn = document.getElementById('wishlistBtn');
816        const notifBtn = document.getElementById('notifBtn');
817        if (wishlistBtn) {
818          wishlistBtn.addEventListener('click', function(e) {
819            e.preventDefault();
820            alert('Fitur wishlist akan segera tersedia!');
821          });
822        }
823        if (notifBtn) {
824          notifBtn.addEventListener('click', function(e) {
825            e.preventDefault();
826            alert('Fitur notifikasi akan segera tersedia!');
827          });
828        }
829      })();
830      // ========== MOBILE BOTTOM NAVIGATION ==========
831      (function initBottomNav() {
832        // Sync cart badge with bottom nav
833        function syncBottomCartBadge() {
834          const mainBadge = document.getElementById('cartCount');
835          const bottomBadge = document.getElementById('bottomCartCount');
836          if (mainBadge && bottomBadge) {
837            const count = mainBadge.textContent;
838            bottomBadge.textContent = count;
839            bottomBadge.style.display = parseInt(count) > 0 ? 'flex' : 'none';
840          }
841        }
842        // Sync compare badge with bottom nav
843        function syncBottomCompareBadge() {
844          const mainBadge = document.getElementById('compareCount');
845          const bottomBadge = document.getElementById('bottomCompareCount');
846          if (mainBadge && bottomBadge) {
847            const count = mainBadge.textContent;
848            bottomBadge.textContent = count;
849            bottomBadge.style.display = parseInt(count) > 0 ? 'flex' : 'none';
850          }
851        }
852        // Initial sync
853        syncBottomCartBadge();
854        syncBottomCompareBadge();
855        // Observe badge changes
856        const observer = new MutationObserver(function() {
857          syncBottomCartBadge();
858          syncBottomCompareBadge();
859        });
860        const cartBadge = document.getElementById('cartCount');
861        const compareBadge = document.getElementById('compareCount');
862        if (cartBadge) observer.observe(cartBadge, {
863          childList: true,
864          characterData: true,
865          subtree: true
866        });
867        if (compareBadge) observer.observe(compareBadge, {
868          childList: true,
869          characterData: true,
870          subtree: true
871        });
872        // Bottom Cart Button
873        const bottomCartBtn = document.getElementById('bottomCartBtn');
874        if (bottomCartBtn) {
875          bottomCartBtn.addEventListener('click', function(e) {
876            e.preventDefault();
877            const checkLogin = () => {
878              return window.isUserLoggedIn ? window.isUserLoggedIn() : false;
879            };
880            if (checkLogin()) {
881              window.location.href = '/keranjang';
882            } else {
883              showCartLoginModal();
884            }
885          });
886        }
887        // Bottom Compare Button
888        const bottomCompareBtn = document.getElementById('bottomCompareBtn');
889        if (bottomCompareBtn) {
890          bottomCompareBtn.addEventListener('click', function(e) {
891            e.preventDefault();
892            // Close chat widget if open
893            if (window.plazaChat && window.plazaChat.isWidgetOpen) {
894              window.plazaChat.closeWidget();
895            }
896            const mainCompareBtn = document.getElementById('compareBtn');
897            if (mainCompareBtn) {
898              mainCompareBtn.click();
899            }
900          });
901        }
902        // Bottom Category Button - triggers mega menu
903        const bottomCategoryBtn = document.getElementById('bottomCategoryBtn');
904        if (bottomCategoryBtn) {
905          bottomCategoryBtn.addEventListener('click', function(e) {
906            e.preventDefault();
907            // Trigger desktop mega menu
908            const desktopTrigger = document.querySelector('.mm2-trigger:not(#bottomCategoryBtn)');
909            if (desktopTrigger) {
910              desktopTrigger.click();
911            }
912          });
913        }
914        // Bottom Login Button
915        const bottomLoginBtn = document.getElementById('bottomLoginBtn');
916        if (bottomLoginBtn) {
917          bottomLoginBtn.addEventListener('click', function(e) {
918            e.preventDefault();
919            window.location.href = '/login';
920          });
921        }
922        // Bottom Chat Button
923        const bottomChatBtn = document.getElementById('bottomChatBtn');
924        if (bottomChatBtn) {
925          bottomChatBtn.addEventListener('click', function(e) {
926            e.preventDefault();
927            // Trigger chat widget (try multiple times if needed)
928            const triggerChat = () => {
929              const chatToggle = document.getElementById('chat-toggle-btn');
930              if (chatToggle) {
931                chatToggle.click();
932                return true;
933              }
934              return false;
935            };
936            // Immediate attempt
937            if (!triggerChat()) {
938              // Retry after 100ms if not found
939              setTimeout(() => {
940                if (!triggerChat()) {
941                  // Last resort: manually show popup
942                  const popup = document.getElementById('chat-popup');
943                  if (popup) {
944                    popup.style.display = 'block';
945                  }
946                }
947              }, 100);
948            }
949          });
950        }
951        // Sync chat unread badge
952        function syncBottomChatBadge() {
953          const chatBadge = document.getElementById('chat-unread-badge');
954          const bottomChatBadge = document.getElementById('bottomChatCount');
955          if (chatBadge && bottomChatBadge) {
956            const count = chatBadge.textContent;
957            bottomChatBadge.textContent = count;
958            bottomChatBadge.style.display = chatBadge.style.display;
959          }
960        }
961        // Observe chat badge changes
962        const chatBadge = document.getElementById('chat-unread-badge');
963        if (chatBadge) {
964          observer.observe(chatBadge, {
965            attributes: true,
966            childList: true,
967            characterData: true,
968            subtree: true
969          });
970          syncBottomChatBadge();
971        }
972        // Active state management based on current page
973        function updateActiveState() {
974          const currentPath = window.location.pathname;
975          const bottomNavItems = document.querySelectorAll('.bottom-nav-item');
976          bottomNavItems.forEach(item => {
977            item.classList.remove('active');
978            const itemId = item.id;
979            const page = item.getAttribute('data-page');
980            const href = item.getAttribute('href');
981            // Check by ID for specific pages
982            if (itemId === 'bottomHomeBtn' && currentPath === '/') {
983              item.classList.add('active');
984            } else if (itemId === 'bottomCartBtn' && (currentPath === '/keranjang' || currentPath === '/cart')) {
985              item.classList.add('active');
986            } else if (itemId === 'bottomProfileBtn' && currentPath.startsWith('/profile')) {
987              item.classList.add('active');
988            } else if (itemId === 'bottomCategoryBtn' && currentPath.startsWith('/kategori')) {
989              item.classList.add('active');
990            } else if (itemId === 'bottomCompareBtn' && currentPath === '/compare') {
991              item.classList.add('active');
992            } else if (itemId === 'bottomChatBtn' && currentPath === '/chat') {
993              item.classList.add('active');
994            }
995            // Fallback: check by data-page attribute
996            else if (page === 'home' && currentPath === '/') {
997              item.classList.add('active');
998            } else if (page === 'profile' && currentPath.startsWith('/profile')) {
999              item.classList.add('active');
1000            }
1001            // Fallback: check by href
1002            else if (href && currentPath === href) {
1003              item.classList.add('active');
1004            }
1005          });
1006        }
1007        // Update active state on load
1008        updateActiveState();
1009        // Bottom nav always visible - auto-hide disabled for better UX
1010        // const bottomNav = document.querySelector('.bottom-nav');
1011        // if (bottomNav && window.innerWidth <= 640) {
1012        //   // Auto-hide feature disabled
1013        // }
1014      })();
1015      // Cart Login Modal Handler (Global scope)
1016      function showCartLoginModal() {
1017        const modal = document.getElementById('cartLoginModal');
1018        if (!modal) return;
1019        modal.classList.add('show');
1020        const confirmBtn = document.getElementById('cartLoginConfirm');
1021        const registerBtn = document.getElementById('cartRegisterBtn');
1022        const cancelBtn = document.getElementById('cartLoginCancel');
1023        const handleLogin = () => {
1024          window.location.href = '/login?return=' + encodeURIComponent('/keranjang');
1025        };
1026        const handleRegister = () => {
1027          window.location.href = '/register?return=' + encodeURIComponent('/keranjang');
1028        };
1029        const handleCancel = () => {
1030          modal.classList.remove('show');
1031          confirmBtn.removeEventListener('click', handleLogin);
1032          registerBtn.removeEventListener('click', handleRegister);
1033          cancelBtn.removeEventListener('click', handleCancel);
1034        };
1035        confirmBtn.removeEventListener('click', handleLogin);
1036        registerBtn.removeEventListener('click', handleRegister);
1037        cancelBtn.removeEventListener('click', handleCancel);
1038        confirmBtn.addEventListener('click', handleLogin);
1039        registerBtn.addEventListener('click', handleRegister);
1040        cancelBtn.addEventListener('click', handleCancel);
1041        modal.addEventListener('click', (e) => {
1042          if (e.target === modal) {
1043            handleCancel();
1044          }
1045        });
1046      }
1047    </script>
1047
1048    <!-- Product Compare Sidebar -->
1049    <div class="compare-sidebar" id="compareSidebar">
1050      <div class="compare-header">
1051        <h4 class="compare-title">
1052          <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
1053            <path d="M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z"/>
1054          </svg> Bandingkan Produk <span class="compare-count" id="compareCountSidebar">(0)</span>
1055        </h4>
1056        <button class="compare-close" id="compareClose" aria-label="Tutup">
1057          <svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor">
1058            <path d="M18.3 5.7a1 1 0 0 0-1.4 0L12 10.6 7.1 5.7a1 1 0 1 0-1.4 1.4L10.6 12l-4.9 4.9a1 1 0 0 0 1.4 1.4L12 13.4l4.9 4.9a1 1 0 0 0 1.4-1.4L13.4 12l4.9-4.9a1 1 0 0 0 0-1.4z"/>
1059          </svg>
1060        </button>
1061      </div>
1062      <div class="compare-content">
1063        <div class="compare-empty" id="compareEmpty">
1064          <div class="empty-icon">
1065            <svg width="48" height="48" viewBox="0 0 24 24" fill="currentColor" opacity="0.3">
1066              <path d="M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z"/>
1067            </svg>
1068          </div>
1069          <h5> Belum Ada Produk Dipilih </h5>
1070          <p> Pilih Produk Yang Ingin Dibandingkan Dengan Klik Tombol "Bandingkan Produk" Di Halaman Produk. </p>
1071        </div>
1072        <div class="compare-list" id="compareList">
1073          <!-- Products will be populated here -->
1074        </div>
1075      </div>
1076      <div class="compare-actions" id="compareActions">
1077        <button class="btn btn-outline-danger btn-sm" id="compareClearAll">
1078          <svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor">
1079            <path d="M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z"/>
1080          </svg> Hapus Semua </button>
1081        <button class="btn btn-primary btn-sm" id="compareAnalyze" disabled>
1082          <svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor">
1083            <path d="M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4M11,16.5L18,9.5L16.59,8.09L11,13.67L7.91,10.59L6.5,12L11,16.5Z"/>
1084          </svg> Analisis AI </button>
1085      </div>
1086      <!-- AI Disclaimer in Sidebar -->
1087      <div class="compare-disclaimer">
1088        <div class="ai-disclaimer">
1089          <div class="disclaimer-text">
1090            <strong>💡 Catatan:</strong> Analisis ini dihasilkan secara otomatis dan dapat memiliki keterbatasan. Gunakan sebagai referensi tambahan dengan tetap mempertimbangkan kebutuhan Anda. Untuk informasi lebih lanjut, silakan hubungi tim TAKERU365.
1091          </div>
1092        </div>
1093      </div>
1094    </div>
1095    <link rel="stylesheet" href="https://mobileplay.shop/assets/css/pd-lightbox.css">
1096    <style>
1097      .paylater-promo { display: inline-flex; align-items: center; gap: 8px; background: linear-gradient(135deg, #f0fdf4 0, #dcfce7 100%); border: 1px solid #86efac; border-radius: 8px; padding: 8px 12px; font-size: 13px; line-height: 1.4; margin: 8px 0 } .paylater-promo-sm { padding: 6px 10px; font-size: 11px; gap: 6px } .paylater-promo-md { padding: 8px 12px; font-size: 13px; gap: 8px } .paylater-promo-lg { padding: 10px 16px; font-size: 14px; gap: 10px } .paylater-icon { font-size: 1.2em; flex-shrink: 0 } .paylater-text { display: flex; flex-direction: column; gap: 2px } .paylater-text strong { color: #15803d; font-weight: 600 } .paylater-text small { color: #16a34a; font-size: .85em; opacity: .9 } .paylater-desktop-only { display: none } .paylater-mobile-only { display: flex } @media (min-width:641px) { .paylater-desktop-only { display: flex } .paylater-mobile-only { display: none } } @media (max-width:640px) { .paylater-promo { font-size: 12px; padding: 7px 10px } .paylater-promo-lg { font-size: 13px; padding: 8px 12px } } @media print { .paylater-promo { display: none !important } } .paylater-compact { display: inline-block; font-size: 11px; font-weight: 600; color: #059669; background: #d1fae5; padding: 3px 8px; border-radius: 4px; margin: 6px 0 4px; line-height: 1.3 } @media (max-width:640px) { .paylater-compact { font-size: 10px; padding: 2px 6px; margin: 5px 0 3px } } @media print { .paylater-compact { display: none !important } }
1098    </style>
1099    <style nonce="se3iyzEHMc9FQEB4wSyd0w==">
1100      .pd-voucher-minimal { margin: 10px 0; display: flex; flex-direction: column; gap: 6px } .pdv-min-item { display: flex; align-items: center; gap: 8px; padding: 0; height: 32px; transition: all .2s ease } .pdv-min-hidden { display: none } .pdv-min-disabled { opacity: .5 } .pdv-badge-btn { display: inline-flex; align-items: center; gap: 8px; background: linear-gradient(135deg, #667eea 0, #764ba2 100%); border: none; border-radius: 8px; padding: 3px; cursor: pointer; transition: all .2s ease; width: auto } .pdv-badge-btn:hover:not(:disabled) { transform: translateY(-1px); box-shadow: 0 4px 12px rgba(102, 126, 234, .3) } .pdv-badge-btn:disabled { opacity: .6;
1100 cursor: not-allowed } .pdv-badge-icon { color: #fff; flex-shrink: 0 } .pdv-badge-text { font-size: 14px; font-weight: 700; color: #fff; white-space: nowrap } .pdv-badge-code { font-family: 'Courier New', monospace; font-size: 13px; font-weight: 700; color: #fff; background: rgba(255, 255, 255, .2); padding: 4px 8px; border-radius: 4px; border: none; white-space: nowrap } .pdv-min-copy, .pdv-min-more { padding: 4px 12px; font-size: 12px; font-weight: 600; border-radius: 5px; border: 1px solid #e2e8f0; background: #fff; color: #667eea; cursor: pointer; transition: all .2s ease; white-space: nowrap } .pdv-min-copy:hover:not(:disabled), .pdv-min-more:hover { background: #667eea; color: #fff; border-color: #667eea } .pdv-min-copy:disabled { opacity: .4; cursor: not-allowed } .pdv-min-copy.copied { background: #22c55e; color: #fff; border-color: #22c55e } .pdv-min-more { margin-left: auto } .modal-close { position: absolute; top: 20px; right: 20px; background: none; border: none; cursor: pointer; color: #64748b; padding: 4px; transition: color .2s ease }
1100 .modal-close:hover { color: #1e293b } .modal-body { margin-bottom: 8px } .voucher-modal-content { text-align: center } .voucher-modal-badge { display: inline-flex; flex-direction: row; align-items: center; gap: 6px; background: linear-gradient(135deg, #667eea 0, #764ba2 100%); border-radius: 10px; padding: 8px 16px; margin-bottom: 12px } .vmb-value { font-size: 18px; font-weight: 700; color: #fff; line-height: 1 } .vmb-label { font-size: 18px; font-weight: 700; color: #fff; text-transform: uppercase; letter-spacing: .5px } .voucher-modal-code { font-family: 'Courier New', monospace; font-size: 14px; font-weight: 700; color: #667eea; background: rgba(102, 126, 234, .1); padding: 6px 12px; border-radius: 6px; border: 2px dashed rgba(102, 126, 234, .3); display: inline-block; margin-bottom: 10px } .voucher-modal-name { font-size: 14px; font-weight: 600; color: #1e293b; margin-bottom: 16px } .voucher-modal-details { text-align: left; background: #f8fafc; border-radius: 8px; padding: 12px; margin-bottom: 16px } .vmd-item { display: flex; align-items: flex-start; gap: 8px; padding: 6px 0; font-size: 13px; color: #64748b; border-bottom: 1px solid #e2e8f0 } .vmd-item:last-child { border-bottom: none } .vmd-item svg { color: #667eea; flex-shrink: 0; margin-top: 2px } .vmd-item strong { color: #1e293b } .modal-actions { padding: 20px } .modal-btn-primary { background: linear-gradient(135deg, #667eea 0, #764ba2 100%); color: #fff } .modal-btn-primary:hover { opacity: .9; transform: translateY(-1px) } @media (max-width:640px) { .pdv-min-item { gap: 6px } .pdv-badge-btn { padding: 3px; gap: 6px } .pdv-badge-text { font-size: 13px } .pdv-badge-code { font-size: 12px; padding: 3px 6px } .pdv-min-copy, .pdv-min-more { padding: 3px 10px; font-size: 11px } .modal-dialog { max-width: 95%; margin: 20px } .vmb-value { font-size: 16px } .vmb-label { font-size: 16px } .voucher-modal-code { font-size: 13px; padding: 5px 10px } }
1101    </style>
1102    <style nonce="se3iyzEHMc9FQEB4wSyd0w==">
1103      .promo-endyear-mini-banner { display: flex; align-items: center; gap: 12px; padding: 12px 16px; background: rgba(255, 255, 255, .8); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border: 2px solid rgba(242, 140, 26, .2); border-radius: 12px; margin: 16px 0; box-shadow: 0 4px 16px rgba(0, 0, 0, .08); transition: all .3s ease } .promo-endyear-mini-banner:hover { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(0, 0, 0, .12); border-color: rgba(242, 140, 26, .4) } .pey-icon { font-size: 32px; line-height: 1; flex-shrink: 0 } .pey-content { flex: 1; min-width: 0 } .pey-content strong { display: block; font-size: 14px; font-weight: 700; color: #F28C1A; margin-bottom: 2px } .pey-content span { display: block; font-size: 13px; color: #64748b; line-height: 1.4 } .pey-link { flex-shrink: 0; padding: 8px 16px; background: linear-gradient(135deg, #F28C1A, #FFB84D); color: #fff; text-decoration: none; font-size: 13px; font-weight: 700; border-radius: 8px; white-space: nowrap; transition: all .2s ease; box-shadow: 0 2px 8px rgba(242, 140, 26, .25) } .pey-link:hover { transform: translateX(2px); box-shadow: 0 4px 12px rgba(242, 140, 26, .35) } @media(max-width:640px) { .promo-endyear-mini-banner { flex-wrap: wrap; gap: 8px; padding: 10px 12px } .pey-icon { font-size: 28px; align-self: flex-start } .pey-content { flex: 1; min-width: 0 } .pey-content strong { font-size: 12px } .pey-content span { font-size: 11px; line-height: 1.3 } .pey-link { width: 100%; flex-basis: 100%; font-size: 11px; padding: 6px 12px; text-align: center } } @media print { .promo-endyear-mini-banner { display: none !important } }
1104    </style>
1105    <style nonce="se3iyzEHMc9FQEB4wSyd0w==">
1106      .pd-title-row { position: relative; margin-bottom: 12px; padding-right: 52px } .pd-title { margin: 0 !important } .pd-share-btn { position: absolute; top: 0; right: 0; width: 40px; height: 40px; display: inline-flex; align-items: center; justify-content: center; border-radius: 10px; border: 1px solid #e2e8f0; background: #fff; color: #64748b; cursor: pointer; transition: all .2s ease; -webkit-tap-highlight-color: transparent } .pd-share-btn:hover { background: #f8fafc; border-color: #cbd5e1; color: #2a0f0f; transform: translateY(-1px) } .pd-share-btn:active { transform: translateY(0) } .pd-share-btn svg { display: block } .pd-share-modal-overlay { position: fixed; inset: 0; background: rgba(15, 23, 42, .75); backdrop-filter: blur(4px); z-index: 99999; display: none; align-items: center; justify-content: center; padding: 0; animation: fadeIn .2s ease } .pd-share-modal-overlay.show { display: flex } .pd-share-modal { background: #fff; border-radius: 20px; box-shadow: 0 25px 50px -12px rgba(0, 0, 0, .25); max-width: 480px; width: 100%; max-height: 90vh; overflow: hidden; display: flex; flex-direction: column; animation: slideUp .3s cubic-bezier(.16, 1, .3, 1) } @keyframes fadeIn { from { opacity: 0 } to { opacity: 1 } } @keyframes slideUp { from { opacity: 0; transform: translateY(20px) scale(.95) } to { opacity: 1; transform: translateY(0) scale(1) } } .pd-share-header { display: flex; align-items: center; justify-content: space-between; padding: 20px 24px; border-bottom: 1px solid #f1f5f9 } .pd-share-title { font-size: 18px; font-weight: 700; color: #2a0f0f; margin: 0 } .pd-share-close { width: 32px; height: 32px; border-radius: 8px; border: 0; background: transparent; color: #64748b; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; transition: all .15s ease } .pd-share-close:hover { background: #f1f5f9; color: #2a0f0f } .pd-share-body { padding: 24px; overflow-y: auto } .pd-share-preview { display: flex; gap: 12px; padding: 16px; background: #f8fafc; border-radius: 12px; margin-bottom: 24px } .pd-share-preview-img { width: 64px; height: 64px; border-radius: 8px; object-fit: cover; flex-shrink: 0; border: 1px solid #e2e8f0 } .pd-share-preview-info { flex: 1; min-width: 0 } .pd-share-preview-name { font-size: 14px; font-weight: 600; color: #2a0f0f; margin: 0 0 4px 0; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden } .pd-share-preview-price { font-size: 16px; font-weight: 700; color: #0ea5e9; margin: 0 } .pd-share-label { font-size: 13px; font-weight: 600; color: #475569; margin: 0 0 12px 0; text-transform: uppercase; letter-spacing: .5px } .pd-share-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 24px } .pd-share-option { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 16px 8px; border: 1.5px solid #e2e8f0; border-radius: 12px; background: #fff; cursor: pointer; transition: all .2s ease; text-decoration: none; color: inherit } .pd-share-option:hover { border-color: #94a3b8; background: #f8fafc; transform: translateY(-2px) } .pd-share-option:active { transform: translateY(0) } .pd-share-icon { width: 40px; height: 40px; border-radius: 10px; display: inline-flex; align-items: center; justify-content: center; position: relative } .pd-share-icon svg { width: 24px; height: 24px; display: block } .pd-share-icon-whatsapp { background: linear-gradient(135deg, #25D366 0%, #128C7E 100%); color: #fff } .pd-share-icon-facebook { background: linear-gradient(135deg, #1877F2 0%, #0c63d4 100%); color: #fff } .pd-share-icon-twitter { background: linear-gradient(135deg, #1DA1F2 0%, #0d8bd9 100%); color: #fff } .pd-share-icon-telegram { background: linear-gradient(135deg, #0088cc 0%, #0077b3 100%); color: #fff } .pd-share-icon-email { background: linear-gradient(135deg, #EA4335 0%, #c5331f 100%); color: #fff } .pd-share-icon-copy { background: linear-gradient(135deg, #f1db63 0%, #e5d146 100%); color: #fff } .pd-share-icon-pdf { background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%); color: #fff } .pd-share-name { font-size: 12px; font-weight: 600; color: #475569; text-align: center } .pd-share-copy-section { background: #f8fafc; padding: 16px; border-radius: 12px } .pd-share-copy-input-wrap { display: flex; gap: 8px } .pd-share-copy-input { flex: 1; padding: 12px 14px; border: 1px solid #e2e8f0; border-radius: 10px; font-size: 14px; color: #2a0f0f; background: #fff; font-family: 'Segoe UI', system-ui, sans-serif } .pd-share-copy-input:focus { outline: 0; border-color: #0ea5e9; box-shadow: 0 0 0 3px rgba(14, 165, 233, .1) } .pd-share-copy-btn { padding: 12px 20px; border: 0; border-radius: 10px; background: linear-gradient(135deg, #0ea5e9 0%, #0284c7 100%); color: #fff; font-size: 14px; font-weight: 600; cursor: pointer; transition: all .2s ease; white-space: nowrap; display: inline-flex; align-items: center; gap: 6px } .pd-share-copy-btn:hover { background: linear-gradient(135deg, #0284c7 0%, #0369a1 100%); transform: translateY(-1px); box-shadow: 0 4px 12px rgba(14, 165, 233, .3) } .pd-share-copy-btn:active { transform: translateY(0) } .pd-share-copy-btn svg { width: 16px; height: 16px } .pd-share-copy-btn.copied { background: linear-gradient(135deg, #22c55e 0%, #16a34a 100%); pointer-events: none } @media(max-width:640px) { .pd-share-modal { border-radius: 20px 20px 0 0; margin-top: auto; max-height: 85vh } .pd-share-grid { grid-template-columns: repeat(3, 1fr) } .pd-share-header { padding: 16px 20px } .pd-share-body { padding: 20px } .pd-share-btn { width: 36px; height: 36px } .pd-share-btn svg { width: 18px; height: 18px } } @media(max-width:480px) { .pd-share-grid { grid-template-columns: repeat(3, 1fr); gap: 10px } .pd-share-option { padding: 12px 6px } .pd-share-icon { width: 36px; height: 36px }
1106 .pd-share-icon svg { width: 20px; height: 20px } .pd-share-name { font-size: 11px } } .mf-share { background: #fff; color: #fb923c; border: 2px solid #fb923c; display: inline-flex; align-items: center; justify-content: center } .mf-share:active { transform: scale(.95) } .mf-share svg { display: block } @media(max-width:640px) { .pd-share-btn { display: none !important } } .stock-badge.in { background: #e6f9ec; color: #15803d; border-radius: 999px; padding: 4px 10px; font-weight: 700 } .stock-badge.out { background: #fee2e2; color: #b91c1c; border-radius: 999px; padding: 4px 10px; font-weight: 700 } .stock-info-btn { --c: #0ea5e9; --b: #bae6fd; --bg: #f0f9ff; --bg-h: #e0f2fe; --b-h: #0ea5e9; margin-left: 0; display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem; padding: 4px 10px; border-radius: 999px; border: 1.5px solid var(--b); background: var(--bg); color: var(--c); cursor: pointer; font-size: 12px; font-weight: 600; transition: all .2s ease; -webkit-tap-highlight-color: transparent } .stock-info-btn:hover { background: var(--bg-h); border-color: var(--b-h); color: #0284c7; transform: translateY(-1px); box-shadow: 0 2px 8px rgba(14, 165, 233, .15) } .stock-info-btn:active { transform: translateY(0) } .stock-info-btn:focus-visible { outline: 0; box-shadow: 0 0 0 3px rgba(14, 165, 233, .2) } .stock-info-btn svg { width: 14px; height: 14px; flex-shrink: 0 } .stock-info-btn .btn-text { white-space: nowrap } .stock-popover { position: absolute; z-index: 9999; min-width: 280px; max-width: 92vw; background: #0b1220; color: #eef3ff; border: 1px solid rgba(255, 255, 255, .08); border-radius: 14px; box-shadow: 0 20px 40px rgba(12, 12, 20, .45); padding: 12px 12px 8px; display: none } .stock-popover.show { display: block } .stock-popover::before { content: ""; position: absolute; top: -8px; left: 24px; width: 14px; height: 14px; background: #0b1220; border-left: 1px solid rgba(255, 255, 255, .08); border-top: 1px solid rgba(255, 255, 255, .08); transform: rotate(45deg) } .sp-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px } .sp-title { font-weight: 800; font-size: 14px } .sp-close { background: transparent; border: 0; color: #98a2b3; cursor: pointer } .sp-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px } .sp-item { display: grid; grid-template-columns: 1fr auto 32px; column-gap: 12px; align-items: center; padding: 10px 10px; min-height: 44px; border-radius: 10px; background: rgba(255, 255, 255, .03) } .sp-left { display: flex; align-items: center; gap: 10px } .sp-dot { width: 10px; height: 10px; border-radius: 999px; background: var(--dot, #60a5fa); display: inline-block } .sp-label { font-weight: 600; font-size: 13px } .sp-qty { grid-column: 2; justify-self: end; min-width: 40px; text-align: right; font-weight: 800; font-size: 13px; color: #cfe4ff; font-variant-numeric: tabular-nums } .sp-wa { grid-column: 3; justify-self: end; width: 32px; height: 32px; min-width: 32px; min-height: 32px; box-sizing: border-box; padding: 0; line-height: 0; text-decoration: none; outline: 0; display: inline-flex; align-items: center; justify-content: center; border-radius: 999px; border: 1px solid rgba(37, 211, 102, .60); /* 1px untuk hasil “crisp” */ background: rgba(37, 211, 102, .08); color: #25D366; transition: background-color .15s ease, border-color .15s ease, transform .05s ease; -webkit-tap-highlight-color: transparent; } .sp-wa:hover { background: rgba(37, 211, 102, .16); border-color: rgba(37, 211, 102, .75) } .sp-wa:active { transform: translateY(.5px) scale(.98) } .sp-wa svg { width: 18px; height: 18px; display: block; vertical-align: middle } .stock-popover a { text-decoration: none } #deskripsi img { max-width: 450px !important; height: unset !important } @media(max-width:640px) { .stock-popover { position: fixed; left: 0; right: 0; bottom: max(12px, env(safe-area-inset-bottom, 12px)); margin: 0 10px; padding: 14px 12px 10px; border-radius: 16px } .stock-popover::before { display: none } .stock-info-btn { padding: 4px 8px; gap: 4px; border: 0; background: transparent } .stock-info-btn:hover { background: transparent; box-shadow: none; transform: none } .stock-info-btn .btn-text { display: none } .stock-info-btn svg { width: 16px; height: 16px } .sp-item { grid-template-columns: 1fr auto 36px } .sp-wa { width: 36px; height: 36px; min-width: 36px; min-height: 36px } .sp-wa svg { width: 19px; height: 19px } } .stock-dot { position: absolute; bottom: 8px; right: 8px; width: 8px; height: 8px; border-radius: 50%; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4); z-index: 2; cursor: help } .stock-dot.ready { background: #10b981 } .stock-dot.low { background: #f59e0b } .stock-dot.out { background: #ef4444 } .stock-dot:hover { transform: scale(1.2); transition: transform 0.2s ease } @media(max-width:640px) { .stock-dot { width: 7px; height: 7px; bottom: 6px; right: 6px } } .pd-related-card .spec-chips { font-size: 11px; color: #64748b; margin: 4px 0 6px 0; line-height: 1.3; font-weight: 500 } .pd-related-card .spec-chips .spec-divider { margin: 0 4px; opacity: 0.6 } @media(max-width:640px) { .pd-related-card .spec-chips { font-size: 10px; margin: 3px 0 5px 0 } #deskripsi img { max-width: 300px !important; height: unset !important; justify-self: center !important } } .pwp-trigger-badge { display: inline-flex; align-items: center; gap: 4px; padding: 3px 8px 4px; background: linear-gradient(135deg, #fbbf24 0%, #f59e0b 100%); color: #78350f; border-radius: 6px; font-size: .65rem; font-weight: 600; border: 0 } .pwp-trigger-badge svg { flex-shrink: 0; width: 12px; height: 12px } .pwp-deals-section { margin: 0; padding: 12px; background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%); border-radius: 12px; border: 2px solid #fbbf24 } .pwp-deals-header { display: flex; gap: 10px; margin-bottom: 10px } .pwp-icon { flex-shrink: 0; color: #f59e0b; width: 18px; height: 18px } .pwp-text .pwp-title { margin: 0 0 2px 0; font-size: 14px; font-weight: 700; color: #78350f } .pwp-text .pwp-subtitle { margin: 0; font-size: 11px; color: #92400e; opacity: 0.9 } .pwp-deals-loading { text-align: center; padding: 40px 0; color: #92400e } .pwp-spinner { width: 40px; height: 40px; border: 3px solid #fbbf24; border-top-color: #f59e0b; border-radius: 50%; animation: spin 0.8s linear infinite; margin: 0 auto 12px } @keyframes spin { to { transform: rotate(360deg) } } .pwp-deals-grid { display: flex; flex-direction: column; gap: 6px } .pwp-deal-card { background: #fff; border-radius: 6px; overflow: hidden; border: 1px solid #fbbf24; display: flex; align-items: center; padding: 8px; gap: 10px } .pwp-deal-card:hover { background: #fef3c7 } .pwp-deal-thumb { flex-shrink: 0; width: 50px; height: 50px; background: #f8fafc; overflow: hidden; border-radius: 4px } .pwp-deal-thumb img { width: 100%; height: 100%; object-fit: cover } .pwp-deal-badge { background: #dc2626;
1106 color: #fff; padding: 2px 5px; border-radius: 3px; font-size: 9px; font-weight: 700; margin-left: auto } .pwp-deal-info { flex: 1; display: flex; flex-direction: column; gap: 4px } .pwp-deal-name { font-size: 12px; font-weight: 600; color: #2a0f0f; margin: 0; line-height: 1.2 } .pwp-deal-prices { display: flex; align-items: center; gap: 6px; flex-wrap: wrap } .pwp-deal-price { font-size: 14px; font-weight: 800; color: #dc2626; white-space: nowrap } .pwp-deal-original { font-size: 11px; color: #64748b; text-decoration: line-through; white-space: nowrap } .pwp-cart-note { margin-top: 8px; padding: 6px 10px; background: #e0f2fe; border-left: 2px solid#0ea5e9; font-size: 11px; color: #0c4a6e; border-radius: 4px } @media(max-width:640px) { .pwp-deals-section { margin: 12px 0; padding: 10px; border-radius: 10px } .pwp-deals-header { gap: 8px } .pwp-text .pwp-title { font-size: 13px } .pwp-text .pwp-subtitle { font-size: 10px } .pwp-deal-card { padding: 6px; gap: 8px } .pwp-deal-thumb { width: 45px; height: 45px } .pwp-deal-name { font-size: 11px } .pwp-deal-price { font-size: 13px } .pwp-deal-original { font-size: 10px } } .preorder-badge { display: inline-flex; align-items: center; gap: 5px; padding: 6px 12px; background: linear-gradient(135deg, #8b5cf6 0%, #7c3aed 100%); color: #fff; border-radius: 8px; font-size: 13px; font-weight: 700; border: 0; box-shadow: 0 2px 8px rgba(139, 92, 246, .25) } .preorder-badge svg { width: 16px; height: 16px; flex-shrink: 0 } .preorder-info { margin: 12px 0; padding: 14px; background: linear-gradient(135deg, #f5f3ff 0%, #ede9fe 100%); border: 1.5px solid #c4b5fd; border-radius: 12px } .preorder-info-header { display: flex; align-items: center; gap: 8px; margin-bottom: 10px } .preorder-info-icon { width: 20px; height: 20px; color: #7c3aed; flex-shrink: 0 } .preorder-info-title { font-size: 14px; font-weight: 700; color: #5b21b6; margin: 0 } .preorder-info-items { display: flex; flex-direction: column; gap: 8px } .preorder-info-row { display: flex; align-items: center; justify-content: space-between; font-size: 13px } .preorder-info-label { color: #6b21a8; font-weight: 600 } .preorder-info-value { color: #5b21b6; font-weight: 700 } .preorder-info-value.highlight { color: #dc2626; font-size: 14px } .preorder-info-note { margin-top: 10px; padding: 8px 10px; background: #fef3c7; border-left: 2px solid #f59e0b; font-size: 12px; color: #78350f; border-radius: 6px; line-height: 1.4 } @media(max-width:640px) { .preorder-badge { font-size: 12px; padding: 5px 10px } .preorder-info { margin: 10px 0; padding: 12px } .preorder-info-title { font-size: 13px } .preorder-info-row { font-size: 12px } .preorder-info-note { font-size: 11px; padding: 6px 8px } }
1107    </style>
1108    <div class="pd-sticky-header" id="pd-sticky-header">
1109      <div class="pd-sticky-header-container">
1110        <div class="pd-sticky-thumb">
1111          <img src="https://unidosporelautismo.org/img/banner_takeru365.webp" alt="TAKERU365" id="pd-sticky-thumb-img">
1112        </div>
1113        <div class="pd-sticky-info">
1114          <h2 class="pd-sticky-title" id="pd-sticky-title">TAKERU365 - Link Daftar ID VIP, Bocoran RTP 98%, Buka 24/7</h2>
1115          <div class="pd-sticky-price-row">
1116            <span class="pd-sticky-price" id="pd-sticky-price">Rp 10.000,-</span>
1117            <span class="pd-sticky-price-original" id="pd-sticky-price-original">Rp 100.000</span>
1118            <span class="pd-sticky-discount" id="pd-sticky-discount">-90%</span>
1119          </div>
1120        </div>
1121        <div class="pd-sticky-actions">
1122          <button type="button" class="pd-sticky-share-btn" id="pd-sticky-share-btn" aria-label="Bagikan produk" title="Bagikan">
1123            <svg viewBox="0 0 24 24" width="16" height="16" aria-hidden="true">
1124              <path fill="currentColor" d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81 1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9c-1.66 0-3 1.34-3 3s1.34 3 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.16c-.05.21-.08.43-.08.65 0 1.61 1.31 2.92 2.92 2.92s2.92-1.31 2.92-2.92-1.31-2.92-2.92-2.92z"/>
1124
1125            </svg>
1126          </button>
1127          <button type="button" class="pd-sticky-btn pd-sticky-btn-chat" id="pd-sticky-chat">
1128            <svg viewBox="0 0 640 640" fill="currentColor" aria-hidden="true">
1129              <path d="M320 128C241 128 175.3 185.3 162.3 260.7C171.6 257.7 181.6 256 192 256L208 256C234.5 256 256 277.5 256 304L256 400C256 426.5 234.5 448 208 448L192 448C139 448 96 405 96 352L96 288C96 164.3 196.3 64 320 64C443.7 64 544 164.3 544 288L544 456.1C544 522.4 490.2 576.1 423.9 576.1L336 576L304 576C277.5 576 256 554.5 256 528C256 501.5 277.5 480 304 480L336 480C362.5 480 384 501.5 384 528L384 528L424 528C463.8 528 496 495.8 496 456L496 435.1C481.9 443.3 465.5 447.9 448 447.9L432 447.9C405.5 447.9 384 426.4 384 399.9L384 303.9C384 277.4 405.5 255.9 432 255.9L448 255.9C458.4 255.9 468.3 257.5 477.7 260.6C464.7 185.3 399.1 127.9 320 127.9z"/>
1130            </svg>Tanya </button>
1131          <button type="button" class="pd-sticky-btn pd-sticky-btn-cart" id="pd-sticky-add-cart" disabled>+ Keranjang</button>
1132          <button type="button" class="pd-sticky-btn pd-sticky-btn-buy" id="pd-sticky-buy" disabled>Beli Sekarang</button>
1133        </div>
1134      </div>
1135    </div>
1136    <main class="product-single product-single--v3">
1137      <nav class="pd-breadcrumb" aria-label="breadcrumb">
1138        <a href="https://unidosporelautismo.org/">TAKERU365</a>
1139        <span>/</span>
1140        <a href="https://unidosporelautismo.org/">TAKERU365 LINK</a>
1141        <span>/</span>
1142        <a href="https://unidosporelautismo.org/">TAKERU365 LOGIN</a>
1143        <span>/</span>
1144        <a href="https://unidosporelautismo.org/">SITUS TAKERU365</a>
1145        <span>/</span>
1146        <strong>TAKERU365 - Link Daftar ID VIP, Bocoran RTP 98%, Buka 24/7</strong>
1147        <span></span>
1148      </nav>
1149      <div class="pd-top-layout">
1150        <section class="pd-media-card">
1151          <figure class="pd-main-image" id="pd-main-figure">
1152            <img id="pd-main-img" src="https://unidosporelautismo.org/img/banner_takeru365.webp" alt="TAKERU365 - Link Daftar ID VIP, Bocoran RTP 98%, Buka 24/7" data-slug="" loading="eager">
1153          </figure>
1154          <div class="pd-mobile-slider-wrapper">
1155            <div class="pd-mobile-slider" id="pd-mobile-slider" aria-label="Galeri gambar (geser)">
1156              <div class="pd-mslide">
1157                <img src="https://unidosporelautismo.org/img/banner_takeru365.webp" alt="TAKERU365" loading="eager">
1158              </div>
1159              <div class="pd-mslide">
1160                <img src="https://unidosporelautismo.org/img/banner_takeru365.webp" alt="TAKERU365" loading="lazy">
1161              </div>
1162              <div class="pd-mslide">
1163                <img src="https://unidosporelautismo.org/img/banner_takeru365.webp" alt="TAKERU365" loading="lazy">
1164              </div>
1165              <div class="pd-mslide">
1166                <img src="https://unidosporelautismo.org/img/banner_takeru365.webp" alt="TAKERU365" loading="lazy">
1167              </div>
1168              <div class="pd-mslide">
1169                <img src="https://unidosporelautismo.org/img/banner_takeru365.webp" alt="TAKERU365" loading="lazy">
1170              </div>
1171              <div class="pd-mslide">
1172                <img src="https://unidosporelautismo.org/img/banner_takeru365.webp" alt="TAKERU365" loading="lazy">
1173              </div>
1174            </div>
1175            <div class="pd-gallery-counter" id="pd-gallery-counter">1/6</div>
1176          </div>
1177
1178          <div class="pd-thumb-gallery" id="pd-thumb-gallery" aria-label="Galeri gambar produk">
1179            <button type="button" class="pd-thumb-btn active" data-full="https://unidosporelautismo.org/img/banner_takeru365.webp" data-alt="Banner" data-slug="" aria-label="Gambar 1">
1180              <img src="https://unidosporelautismo.org/img/banner_takeru365.webp" alt="Banner" loading="lazy">
1181            </button>
1182            <button type="button" class="pd-thumb-btn " data-full="https://unidosporelautismo.org/img/banner_takeru365.webp" data-alt="Banner-1" data-slug="https://unidosporelautismo.org/img/banner_takeru365.webp" aria-label="Gambar 2">
1183              <img src="https://unidosporelautismo.org/img/banner_takeru365.webp" alt="Banner
1183-1" loading="lazy">
1184            </button>
1185            <button type="button" class="pd-thumb-btn " data-full="https://unidosporelautismo.org/img/banner_takeru365.webp" data-alt="Banner-2" data-slug="lenovo-legion-go-8asp2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-b-1761796941-223.webp" aria-label="Gambar 3">
1186              <img src="https://unidosporelautismo.org/img/banner_takeru365.webp" alt="Banner-2" loading="lazy">
1187            </button>
1188            <button type="button" class="pd-thumb-btn " data-full="https://unidosporelautismo.org/img/banner_takeru365.webp" data-alt="Banner-3" data-slug="lenovo-legion-go-8asp2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-b-1761796941-776.webp" aria-label="Gambar 4">
1189              <img src="https://unidosporelautismo.org/img/banner_takeru365.webp" alt="Banner-3" loading="lazy">
1190            </button>
1191            <button type="button" class="pd-thumb-btn " data-full="https://unidosporelautismo.org/img/banner_takeru365.webp" data-alt="Banner-4" data-slug="lenovo-legion-go-8asp2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-b-1761796941-634.webp" aria-label="Gambar 5">
1192              <img src="https://unidosporelautismo.org/img/banner_takeru365.webp" alt="Banner-4" loading="lazy">
1193            </button>
1194            <button type="button" class="pd-thumb-btn " data-full="https://unidosporelautismo.org/img/banner_takeru365.webp" data-alt="Banner-5" data-slug="lenovo-legion-go-8asp2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-b-1761796941-892.webp" aria-label="Gambar 6">
1195              <img src="https://unidosporelautismo.org/img/banner_takeru365.webp" alt="Banner-5" loading="lazy">
1196            </button>
1197          </div>
1198        </section>
1199        <section class="pd-info-card">
1200          <div id="pd-variant-combined" class="pd-variant-combined" hidden></div>
1201          <div class="pd-title-row">
1202            <h1 class="pd-title" id="pd-title">TAKERU365 - Link Daftar ID VIP, Bocoran RTP 98%, Buka 24/7</h1>
1203            <button type="button" class="pd-share-btn" id="pd-share-btn" aria-label="Bagikan produk" title="Bagikan">
1204              <svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true">
1205                <path fill="currentColor" d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81 1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9c-1.66 0-3 1.34-3 3s1.34 3 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.16c-.05.21-.08.43-.08.65 0 1.61 1.31 2.92 2.92 2.92s2.92-1.31 2.92-2.92-1.31-2.92-2.92-2.92z"/>
1206              </svg>
1207            </button>
1208          </div>
1209          <div id="pd-price-anchor"></div>
1210          <div class="pd-price-qr-container">
1211            <div class="pd-price-block" id="pd-price-block">
1212              <div class="pd-price-row">
1213                <span class="pd-price-current" id="pd-price-current">Rp 10.000</span>
1214                <span class="pd-price-original" id="pd-price-original">Rp 100.000</span>
1215                <span class="pd-discount-badge" id="pd-discount-badge">-90%</span>
1216              </div>
1217              <div class="pd-meta-row">
1218                <span class="sold-inline" id="pd-sold-inline" data-role="sold-chip">Terjual Terjual 1191</span>
1219                <span class="pwp-trigger-badge" id="pwp-trigger-badge" hidden>
1220                  <svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor">
1221                    <path d="M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"/>
1222                  </svg>Bisa PWP </span>
1223              </div>
1224              <div class="pd-meta-inline">
1225                <span class="stock-badge out" id="pd-stock-badge"> TAKERU365</span>
1226                <span class="sku">SKU: <span id="pd-sku">1S83N0880RID</span>
1227                </span>
1228              </div>
1229              <div class="paylater-promo paylater-promo-sm paylater-mobile-only">
1230                <span class="paylater-icon">💳</span>
1231                <span class="paylater-text">
1232                  <strong>Autorized Access</strong>
1233                  <small>LINK RESMI TAKERU365</small>
1234                </span>
1235              </div>
1236              <div class="stock-popover" id="pd-stock-popover" role="dialog" aria-hidden="true" aria-label="Informasi stok cabang">
1237                <div class="sp-head">
1238                  <div class="sp-title">Stok Cabang</div>
1239                  <button type="button" class="sp-close" id="pd-stock-popover-close" aria-label="Tutup">
1240                    <svg width="18" height="18" viewBox="0 0 24 24">
1241                      <path fill="currentColor" d="M18.3 5.71L12 12.01l-6.3-6.3-1.4 1.41 6.3 6.3-6.3 6.3 1.4 1.41 6.3-6.3 6.3 6.3 1.41-1.41-6.3-6.3 6.3-6.3z"/>
1242                    </svg>
1243                  </button>
1244                </div>
1245                <ul class="sp-list">
1246                  <li class="sp-item">
1247                    <div class="sp-left">
1248                      <span class="sp-dot" style="--dot:#60a5fa;"></span>
1249                      <span class="sp-label">Asia Mega Mas</span>
1250                    </div>
1251                    <span class="sp-qty" id="sp-qty-meg">0</span>
1252                    <a class="sp-wa" href="https://wa.me/6281380009898?text=Halo%2C%20saya%20ingin%20tanya%20stok%20di%20Asia%20Mega%20Mas%20untuk%20produk%20https%3A%2F%2Fplazait.co.id%2Fproduct%2Flenovo-legion-go-8asp2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-black" target="_blank" rel="noopener" aria-label="WhatsApp Asia Mega Mas">
1253                      <svg class="ico-wa" viewBox="0 0 24 24" aria-hidden="true" focusable="false">
1254                        <path fill="currentColor" d="M17.472 14.382c-.297-.149-1.758-.867-2.029-.967-.273-.099-.471-.148-.669.149-.198.297-.767.966-.94 1.164-.173.198-.347.223-.644.074-.297-.149-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.297-.347.446-.52.149-.173.198-.297.298-.495.099-.198.05-.372-.025-.521-.075-.149-.669-1.612-.916-2.206-.242-.579-.487-.5-.669-.51l-.57-.01c-.198 0-.52.074-.792.372s-1.04 1.016-1.04 2.479 1.065 2.876 1.213 3.074c.149.198 2.095 3.2 5.076 4.487.709.306 1.262.489 1.694.626.712.226 1.36.194 1.872.118.571-.085 1.758-.718 2.006-1.411.248-.694.248-1.29.173-1.411-.074-.123-.272-.198-.57-.347m-5.421 7.403h-.002a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.263c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.887 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.158 11.892c0 2.096.547 4.142 1.588 5.945L0 24l6.305-1.654a11.86 11.86 0 005.67 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.485-8.413"/>
1255                      </svg>
1256                    </a>
1257                  </li>
1258                  <li class="sp-item">
1259                    <div class="sp-left">
1260                      <span class="sp-dot" style="--dot:#34d399;"></span>
1261                      <span class="sp-label">Medan Fair</span>
1262                    </div>
1263                    <span class="sp-qty" id="sp-qty-mdf">0</span>
1264                    <a class="sp-wa" href="https://wa.me/6285388992009?text=Halo%2C%20saya%20ingin%20tanya%20stok%20di%20Medan%20Fair%20untuk%20produk%20https%3A%2F%2Fplazait.co.id%2Fproduct%2Flenovo-legion-go-8asp2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-black" target="_blank" rel="noopener" aria-label="WhatsApp Medan Fair">
1265                      <svg class="ico-wa" viewBox="0 0 24 24" aria-hidden="true" focusable="false">
1266                        <path fill="currentColor" d="M17.472 14.382c-.297-.149-1.758-.867-2.029-.967-.273-.099-.471-.148-.669.149-.198.297-.767.966-.94 1.164-.173.198-.347.223-.644.074-.297-.149-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.297-.347.446-.52.149-.173.198-.297.298-.495.099-.198.05-.372-.025-.521-.075-.149-.669-1.612-.916-2.206-.242-.579-.487-.5-.669-.51l-.57-.01c-.198 0-.52.074-.792.372s-1.04 1.016-1.04 2.479 1.065 2.876 1.213 3.074c.149.198 2.095 3.2 5.076 4.487.709.306 1.262.489 1.694.626.712.226 1.36.194 1.872.118.571-.085 1.758-.718 2.006-1.411.248-.694.248-1.29.173-1.411-.074-.123-.272-.198-.57-.347m-5.421 7.403h-.002a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.263c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.887 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.158 11.892c0 2.096.547 4.142 1.588 5.945L0 24l6.305-1.654a11.86 11.86 0 005.67 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.485-8.413"/>
1267                      </svg>
1268                    </a>
1269                  </li>
1270                  <li class="sp-item">
1271                    <div class="sp-left">
1272                      <span class="sp-dot" style="--dot:#f59e0b;"></span>
1273                      <span class="sp-label">Banda Aceh</span>
1274                    </div>
1275                    <span class="sp-qty" id="sp-qty-bda">0</span>
1276                    <a class="sp-wa" href="https://wa.me/628116833411?text=Halo%2C%20saya%20ingin%20tanya%20stok%20di%20Banda%20Aceh%20untuk%20produk%20https%3A%2F%2Fplazait.co.id%2Fproduct%2Flenovo-legion-go-8asp2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-black" target="_blank" rel="noopener" aria-label="WhatsApp Banda Aceh">
1277                      <svg class="ico-wa" viewBox="0 0 24 24" aria-hidden="true" focusable="false">
1278                        <path fill="currentColor" d="M17.472 14.382c-.297-.149-1.758-.867-2.029-.967-.273-.099-.471-.148-.669.149-.198.297-.767.966-.94 1.164-.173.198-.347.223-.644.074-.297-.149-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.297-.347.446-.52.149-.173.198-.297.298-.495.099-.198.05-.372-.025-.521-.075-.149-.669-1.612-.916-2.206-.242-.579-.487-.5-.669-.51l-.57-.01c-.198 0-.52.074-.792.372s-1.04 1.016-1.04 2.479 1.065 2.876 1.213 3.074c.149.198 2.095 3.2 5.076 4.487.709.306 1.262.489 1.694.626.712.226 1.36.194 1.872.118.571-.085 1.758-.718 2.006-1.411.248-.694.248-1.29.173-1.411-.074-.123-.272-.198-.57-.347m-5.421 7.403h-.002a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.263c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.887 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.158 11.892c0 2.096.547 4.142 1.588 5.945L0 24l6.305-1.654a11.86 11.86 0 005.67 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.485-8.413"/>
1279                      </svg>
1280                    </a>
1281                  </li>
1282                </ul>
1283              </div>
1284            </div>
1285            <div class="pd-qr-print" style="display:none;">
1286              <div class="pd-qr-label"> Scan Untuk Lihat Produk : </div>
1287              <img src="https://api.qrserver.com/v1/create-qr-code/?size=120x120&data=https%3A%2F%2Fplazait.co.id%2Fproduct%2Flenovo-legion-go-8asp2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-black" alt="QR Code" class="pd-qr-image">
1288            </div>
1289          </div>
1290          <div id="pd-variants-anchor"></div>
1291          <div class="pd-compare-section">
1292            <button type="button" class="pd-compare-btn" id="pd-compare-btn" data-product-id="325">
1293              <svg class="compare-icon" width="18" height="18" viewBox="0 0 24 24" fill="currentColor">
1294                <path d="M21,9L17,5V8H10V10H17V13M7,11L3,15L7,19V16H14V14H7V11Z"/>
1295              </svg>
1296              <span class="compare-text">Bandingkan Produk</span>
1297              <span class="compare-remove" hidden>
1298                <svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor">
1299                  <path d="M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z"/>
1300                </svg> Hapus Dari Perbandingan </span>
1301            </button>
1302            <div class="pd-compare-info">
1303              <small class="compare-note" id="compare-note"> Bandingkan Hingga 5 Produk Dengan Bantuan AI </small>
1304            </div>
1305          </div>
1306          <div class="pd-short-desc">
1307            <p>
1308              <strong>Informasi TAKERU365 :</strong>
1309            </p>
1310            <ul>
1311              <li>Minimal Deposit: Rp. 10.000,-</li>
1312              <li>Minimal Withdraw: Rp. 25.000,-</li>
1313              <li>Jenis Permainan: Live Casino, Togel, Slot Online</li>
1314              <li>Metode Pembayaran: Bank, QRIS, E-Wallet, Pulsa</li>
1315              <li>Mata Uang: IDR (Indonesian Rupiah)</li>
1316              <li>Jam Operasional: 24 Jam Nonstop</li>
1317              <li>Total Rating: 1.191.101</li>
1318              <li>Rating: ⭐⭐⭐⭐⭐</li>
1319              <li>Daftar Sekarang : <a href="https://unidosporelautismo.org/amilosa-en-la-atencion-sanitaria-neonatal/">Klik Disini</a>
1320              </li>
1321            </ul>
1322          </div>
1323  
1324            <div class="pwp-deals-section" id="pwp-deals-section" hidden data-product-id="325" data-variant-id="0" data-category-path="Komputer &amp; Laptop/Laptop/Gaming">
1325              <div class="pwp-deals-header">
1326                <svg class="pwp-icon" width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
1327                  <path d="M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59
1327-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"/>
1328                </svg>
1329                <div class="pwp-text">
1330                  <h3 class="pwp-title">Penawaran Spesial PWP (Purchase with Purchase)</h3>
1331                  <p class="pwp-subtitle">Beli produk ini dan dapatkan produk pilihan dengan harga spesial</p>
1332                </div>
1333              </div>
1334              <div class="pwp-deals-loading">
1335                <div class="pwp-spinner"></div>
1336                <p>Memuat penawaran...</p>
1337              </div>
1338              <div class="pwp-deals-grid" id="pwp-deals-grid"></div>
1339              <p class="pwp-cart-note">💡 Produk PWP dapat ditambahkan di halaman keranjang setelah produk ini dimasukkan</p>
1340            </div>
1341        </section>
1342        <aside class="pd-sidebar">
1343          <div class="pd-side-card pd-buy-card">
1344            <form class="pd-buy-form" id="pd-buy-form" data-pid="325">
1345              <input type="hidden" name="variant_id" id="pd-variant-id" value="0">
1346              <div>
1347                <label for="qty" class="qty-label">Qty</label>
1348                <input type="number" id="qty" name="qty" value="0" min="1" max="0" disabled>
1349              </div>
1350              <div class="pd-actions">
1351                <button type="submit" class="btn-add-cart" id="btn-add-cart" disabled>+ Keranjang</button>
1352                <button type="button" class="btn-buy" id="btn-buy" data-id="278426" disabled>Beli</button>
1353                <button type="button" class="btn-chat-icon" id="btn-chat-icon" aria-label="Tanya Produk" title="Tanya Produk">
1354                  <svg viewBox="0 0 640 640" fill="currentColor">
1355                    <path d="M320 128C241 128 175.3 185.3 162.3 260.7C171.6 257.7 181.6 256 192 256L208 256C234.5 256 256 277.5 256 304L256 400C256 426.5 234.5 448 208 448L192 448C139 448 96 405 96 352L96 288C96 164.3 196.3 64 320 64C443.7 64 544 164.3 544 288L544 456.1C544 522.4 490.2 576.1 423.9 576.1L336 576L304 576C277.5 576 256 554.5 256 528C256 501.5 277.5 480 304 480L336 480C362.5 480 384 501.5 384 528L384 528L424 528C463.8 528 496 495.8 496 456L496 435.1C481.9 443.3 465.5 447.9 448 447.9L432 447.9C405.5 447.9 384 426.4 384 399.9L384 303.9C384 277.4 405.5 255.9 432 255.9L448 255.9C458.4 255.9 468.3 257.5 477.7 260.6C464.7 185.3 399.1 127.9 320 127.9z"/>
1356                  </svg>
1357                </button>
1358              </div>
1359            </form>
1360            <div class="paylater-promo paylater-promo-md paylater-desktop-only">
1361              <span class="paylater-icon">💳</span>
1362              <span class="paylater-text">
1363                <strong>Autorized Access</strong>
1364                <small>TAKERU365 RESMI</small>
1365              </span>
1366            </div>
1367          </div>
1368          <div class="pd-side-card qoala-banner-card">
1369            <div class="qoala-banner">
1370              <div class="qoala-banner-content">
1371                <div class="qoala-icon">
1372                  <center>
1373                    <img src="https://asset01.source-static.us/assets/rajaplay/takeru365/components/fav.png" alt="TAKERU365" class="qoala-shield-img">
1374                  </center>
1375                </div>
1376                <div class="qoala-text">
1377                  <div class="qoala-title">TAKERU365</div>
1378                  <div class="qoala-subtitle">Verified</div>
1379                </div>
1380              </div>
1381              <a href="https://unidosporelautismo.org/" class="qoala-cta" data-ga-event="qoala_banner_click" data-product-id="325" data-product-name="TAKERU365" data-category-path="Komputer &amp; Laptop/Laptop/Gaming" target="_blank">Info</a>
1382            </div>
1383            <style>
1384              .qoala-banner-card {
1385                padding: 0;
1386                overflow: hidden;
1387              }
1388
1389              /* MAIN BANNER */
1390              .qoala-banner {
1391                  background: linear-gradient(135deg,
1392                      #081b3c 0%,
1393                      #0c2d66 35%,
1394                      #154b92 70%,
1395                      #1d6dd9 100%);
1396                  padding: 12px 16px;
1397                  display: flex;
1398                  align-items: center;
1399                  justify-content: space-between;
1400                  color: #eaf7ff;
1401                  text-decoration: none;
1402                  min-height: 60px;
1403                  border: 1px solid rgba(110, 180, 255, .28);
1404                  box-shadow:
1405                      0 0 18px rgba(8,27,60,.55),
1406                      0 0 30px rgba(33,150,243,.15),
1407                      inset 0 0 18px rgba(255,255,255,.04);
1408              }
1409
1410              /* CONTENT */
1411              .qoala-banner-content {
1412                  display: flex;
1413                  align-items: center;
1414                  gap: 12px;
1415              }
1416
1417              .qoala-icon {
1418                  display: flex;
1419                  align-items: center;
1420                  justify-content: center;
1421              }
1422
1423              .qoala-shield-img {
1424                  width: 36px;
1425                  height: 36px;
1426                  object-fit: contain;
1427                  opacity: .95;
1428                  filter: drop-shadow(0 0 10px rgba(120,190,255,.75));
1429              }
1430
1431              /* TEXT */
1432              .qoala-title {
1433                  font-weight: 600;
1434                  font-size: 14px;
1435                  line-height: 1.2;
1436                  color: #8fd7ff;
1437                  text-shadow: 0 0 10px rgba(120,190,255,.7);
1438              }
1439
1440              .qoala-subtitle {
1441                  font-size: 12px;
1442                  line-height: 1.2;
1443                  color: #d9efff;
1444                  opacity: .95;
1445              }
1446
1447              /* BUTTON */
1448              .qoala-cta {
1449                  background: rgba(120,190,255,.12);
1450                  color: #fff;
1451                  padding: 6px 12px;
1452                  border-radius: 6px;
1453                  font-size: 12px;
1454                  font-weight: 600;
1455                  text-decoration: none;
1456                  transition: .25s ease;
1457                  border: 1px solid rgba(120,190,255,.35);
1458                  box-shadow: 0 0 12px rgba(120,190,255,.25);
1459              }
1460
1461              .qoala-cta:hover {
1462                  background: rgba(120,190,255,.25);
1463                  box-shadow: 0 0 18px rgba(120,190,255,.5);
1464              }
1465
1466              /* MOBILE */
1467              @media (max-width:768px){
1468                  .qoala-banner{
1469                      padding:10px 12px;
1470                  }
1471
1472                  .qoala-title{
1473                      font-size:17px;
1474                  }
1475
1476                  .qoala-subtitle{
1477                      font-size:11px;
1478                  }
1479              }
1480            </style>
1481          </div>
1482          <div class="pd-side-card pd-installment-card2" id="inst-card" data-base-price="20789000" data-zero-smart="0">
1483            <div class="inst-head">
1484              <h3>Promo & Fitur TAKERU365</h3>
1485            </div>
1486            <div class="inst-bank-tabs" role="tablist" aria-label="Bank">
1487              <button type="button" class="bank-tab active" data-bank="Server Tercepat" aria-selected="true">Server Tercepat</button>
1488              <button type="button" class="bank-tab" data-bank="Ratusan Game Online" aria-selected="false">Ratusan Game Online</button>
1489              <button type="button" class="bank-tab" data-bank="Event Buyspin & Freespin" aria-selected="false">Event Buyspin & Freespin</button>
1490            </div>
1491            <ul class="inst-month-list" id="inst-month-list" aria-label="Daftar cicilan per bulan"></ul>
1492            <div class="inst-note" id="inst-zero-note" style="display:none;">0% Cicilan khusus bank terpilih*</div>
1493            <div class="inst-disclaimer">Angka estimasi. Bisa berlaku sesuai kebijakan bank / penyedia.</div>
1494          </div>
1495          <!-- MECHA BLUE FINAL BOSS REVIEW SLIDER -->
1496          <div class="tnt-review-mecha">
1497            <div class="tnt-header">
1498              <p>Apa Kata Mereka tentang TAKERU365?</p>
1499            </div>
1500            <div class="tnt-slider" id="tntSlider">
1501              <div class="tnt-slide active">
1502                <div class="tnt-name">Rafli Nugraha</div>
1503                <div class="tnt-comment">"Daftarnya cepat dan tampilannya gampang dipahami. Pelayanannya juga responsif setiap kali saya butuh bantuan."</div>
1504              </div>
1505              <div class="tnt-slide">
1506                <div class="tnt-name">Sinta Maharani</div>
1507                <div class="tnt-comment">"Link resminya selalu lancar dibuka. Sudah beberapa kali login tanpa kendala, sangat memudahkan."</div>
1508              </div>
1509              <div class="tnt-slide">
1510                <div class="tnt-name">Dimas Prasetyo</div>
1511                <div class="tnt-comment">"CS aktif 24 jam benar-benar membantu. Setiap pertanyaan saya dijawab dengan cepat dan ramah."</div>
1512              </div>
1513              <div class="tnt-slide">
1514                <div class="tnt-name">Nadia Permata</div>
1515                <div class="tnt-comment">"Suka karena informasinya selalu diperbarui. Platformnya ringan dipakai di HP maupun laptop."</div>
1516              </div>
1517              <div class="tnt-slide">
1518                <div class="tnt-name">Aurel Valencia</div>
1519                <div class="tnt-comment">"Proses daftar ID VIP tidak ribet. Dalam hitungan menit akun sudah siap digunakan."</div>
1520              </div>
1521              <div class="tnt-slide">
1522                <div class="tnt-name">Fikri Ramadhan</div>
1523                <div class="tnt-comment">"Pengalaman menggunakan TAKERU365 sejauh ini memuaskan. Akses stabil, fitur lengkap, dan pelayanannya profesional."</div>
1524              </div>
1525            </div>
1526          </div>
1527          <a href="https://unidosporelautismo.org/amilosa-en-la-atencion-sanitaria-neonatal/" target="_blank">
1528            <img style="display:block;margin-left:auto;margin-right:auto;height: 250px;border: 2px solid rgb(0, 0, 0);border-radius: 20px;box-shadow: 1px 1px 1px black;" alt="TAKERU365" src="https://unidosporelautismo.org/img/banner_takeru365.webp" width="250" height="300"/>
1529          </a>
1530      </div>
1531      <style>
1532      .tnt-review-mecha {
1533          background: radial-gradient(circle at center, #103a73 0%, #081b3c 45%, #020b18 100%);
1534          border: 2px solid rgba(120,190,255,.35);
1535          border-radius: 14px;
1536          padding: 20px;
1537          color: #eaf7ff;
1538          font-family: 'Orbitron', sans-serif;
1539          position: relative;
1540          overflow: hidden;
1541          box-shadow:
1542              0 0 25px rgba(8,27,60,.55),
1543              0 0 40px rgba(80,170,255,.18),
1544              inset 0 0 18px rgba(120,190,255,.08);
1545      }
1546
1547      /* scanline */
1548      .tnt-review-mecha::before{
1549          content:"";
1550          position:absolute;
1551          inset:0;
1552          background:repeating-linear-gradient(
1553              to bottom,
1554              rgba(120,190,255,.05),
1555              rgba(120,190,255,.05) 1px,
1556              transparent 2px,
1557              transparent 4px
1558          );
1559          pointer-events:none;
1560      }
1561
1562      /* HEADER */
1563      .tnt-header h2{
1564          font-size:18px;
1565          color:#8fd7ff;
1566          text-shadow:
1567              0 0 8px rgba(120,190,255,.7),
1568              0 0 18px rgba(120,190,255,.45);
1569          margin-bottom:5px;
1570      }
1571
1572      .tnt-header p{
1573          font-size:12px;
1574          opacity:.9;
1575          margin-bottom:15px;
1576          color:#d6efff;
1577      }
1578
1579      /* SLIDER */
1580      .tnt-slider{
1581          position:relative;
1582          height:90px;
1583      }
1584
1585      .tnt-slide{
1586          position:absolute;
1587          width:100%;
1588          opacity:0;
1589          transform:translateX(40px);
1590          transition:all .6s ease;
1591      }
1592
1593      .tnt-slide.active{
1594          opacity:1;
1595          transform:translateX(0);
1596      }
1597
1598      /* NAME */
1599      .tnt-name{
1600          font-size:14px;
1601          color:#6fc8ff;
1602          margin-bottom:5px;
1603          text-shadow:0 0 8px rgba(120,190,255,.65);
1604      }
1605
1606      /* COMMENT */
1607      .tnt-comment{
1608          font-size:13px;
1609          line-height:1.5;
1610          color:#e3f5ff;
1611      }
1612
1613      /* glowing border animation */
1614      @keyframes pulseGlow{
1615          0%{
1616              box-shadow:
1617                  0 0 12px rgba(120,190,255,.25),
1618                  inset 0 0 12px rgba(120,190,255,.05);
1619          }
1620
1621          50%{
1622              box-shadow:
1623                  0 0 28px rgba(120,190,255,.55),
1624                  0 0 45px rgba(60,150,255,.22),
1625                  inset 0 0 18px rgba(120,190,255,.10);
1626          }
1627
1628          100%{
1629              box-shadow:
1630                  0 0 12px rgba(120,190,255,.25),
1631                  inset 0 0 12px rgba(120,190,255,.05);
1632          }
1633      }
1634
1635      .tnt-review-mecha{
1636          animation:pulseGlow 2.8s infinite;
1637      }
1638      </style>
1639      
1639<script>
1640        let slides = document.querySelectorAll('.tnt-slide'); let index = 0; setInterval(() => { slides[index].classList.remove('active'); index = (index + 1) % slides.length; slides[index].classList.add('active'); }, 3000);
1641      </script>
1641
1642      <section class="pd-full-description cyber-mecha" id="deskripsi">
1643        <h2 class="pd-full-desc-title"></h2>
1644        <div class="pd-full-desc-body">
1645          <div class="mecha-header">
1646            <h1>TAKERU365 - Link Daftar ID VIP, Bocoran RTP 98%, Buka 24/7</h1>
1647          </div>
1648          </div>
1649          <div class="mecha-content">
1650            <div class="article-content">
1651                <h2><a href="https://unidosporelautismo.org/">TAKERU365 Hadir dengan Akses Mudah dan Layanan Nonstop</a></h2>
1652<p>TAKERU365 menjadi salah satu pilihan platform hiburan digital yang menawarkan proses daftar ID VIP dengan langkah yang praktis dan cepat. Pengguna dapat mengakses layanan kapan saja melalui link resmi yang tersedia, sehingga tidak perlu khawatir mengalami kendala saat ingin masuk ke akun. Dengan dukungan layanan pelanggan yang aktif 24 jam setiap hari, setiap pertanyaan maupun kebutuhan pengguna dapat ditangani secara responsif. Selain itu, TAKERU365 juga menghadirkan informasi bocoran RTP 98% sebagai referensi tambahan bagi pengguna yang ingin menentukan waktu bermain secara lebih terarah.</p>
1653<h2><a href="https://unidosporelautismo.org/">Fitur Lengkap dan Pengalaman Bermain yang Nyaman</a></h2>
1654<p>Selain menghadirkan akses yang stabil, TAKERU365 juga mengutamakan kenyamanan pengguna melalui tampilan yang sederhana, navigasi yang mudah dipahami, serta kompatibel di berbagai perangkat, baik desktop maupun smartphone. Proses pendaftaran yang singkat memungkinkan pengguna baru memperoleh ID VIP tanpa prosedur yang rumit. Didukung sistem keamanan yang terus diperbarui dan performa server yang stabil, TAKERU365 memberikan pengalaman bermain yang aman, lancar, dan nyaman kapan pun dibutuhkan. Kombinasi layanan 24/7, akses cepat, serta informasi RTP terbaru menjadikan TAKERU365 sebagai salah satu platform yang banyak dipilih oleh para penggemar hiburan digital.</p>
1655          </div>
1656          </div>
1657      </section>
1658      <style>
1659        @import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@400;600;800&display=swap');
1660
1661        .cyber-mecha {
1662          font-family: 'Orbitron', sans-serif;
1663          max-width: 900px;
1664          margin: 40px auto;
1665          padding: 25px;
1666          border-radius: 18px;
1667          background: radial-gradient(circle at top, #123b73 0%, #081b3c 45%, #020914 100%);
1668          border: 1px solid rgba(90, 170, 255, 0.4);
1669          box-shadow:
1670            0 0 25px rgba(30, 120, 220, 0.35),
1671            inset 0 0 25px rgba(90, 170, 255, 0.12);
1672          position: relative;
1673          overflow: hidden;
1674        }
1675
1676        /* scanline effect */
1677        .cyber-mecha::before {
1678          content: "";
1679          position: absolute;
1680          inset: 0;
1681          background: repeating-linear-gradient(
1682            to bottom,
1683            rgba(90, 170, 255, 0.04),
1684            rgba(90, 170, 255, 0.04) 1px,
1685            transparent 1px,
1686            transparent 3px
1687          );
1688          pointer-events: none;
1689        }
1690
1691        /* TITLE */
1692        .pd-full-desc-title {
1693          text-align: center;
1694          font-size: 22px;
1695          font-weight: 800;
1696          color: #8fd3ff;
1697          margin-bottom: 25px;
1698          text-shadow:
1699            0 0 10px rgba(90, 170, 255, 0.75),
1700            0 0 25px rgba(30, 120, 220, 0.55);
1701          letter-spacing: 1px;
1702        }
1703
1704        /* FAQ BOX */
1705        .faq-item {
1706          margin-bottom: 15px;
1707          border-radius: 12px;
1708          border: 1px solid rgba(90, 170, 255, 0.3);
1709          background: rgba(8, 27, 60, 0.55);
1710          backdrop-filter: blur(8px);
1711          transition: all 0.3s ease;
1712          overflow: hidden;
1713        }
1714
1715        .faq-item:hover {
1716          border-color: rgba(90, 170, 255, 0.8);
1717          box-shadow: 0 0 15px rgba(50, 145, 255, 0.45);
1718        }
1719
1720        /* QUESTION */
1721        .faq-question {
1722          padding: 14px 18px;
1723          cursor: pointer;
1724          font-size: 14px;
1725          color: #c7e8ff;
1726          position: relative;
1727        }
1728
1729        .faq-question::after {
1730          content: "+";
1731          position: absolute;
1732          right: 15px;
1733          color: #56b5ff;
1734          font-weight: bold;
1735          text-shadow: 0 0 8px rgba(86, 181, 255, 0.7);
1736          transition: 0.3s;
1737        }
1738
1739        /* ACTIVE */
1740        .faq-item.active .faq-question::after {
1741          content: "−";
1742        }
1743
1744        /* ANSWER */
1745        .faq-answer {
1746          max-height: 0;
1747          overflow: hidden;
1748          padding: 0 18px;
1749          font-size: 13px;
1750          color: #dcefff;
1751          line-height: 1.6;
1752          transition: all 0.35s ease;
1753        }
1754
1755        .faq-item.active .faq-answer {
1756          max-height: 200px;
1757          padding: 10px 18px 18px;
1758        }
1759
1760        /* glow text */
1761        .glow {
1762          color: #56b5ff;
1763          text-shadow:
1764            0 0 8px rgba(86, 181, 255, 0.75),
1765            0 0 18px rgba(30, 120, 220, 0.55);
1766        }
1767
1768        .glow-strong {
1769          color: #9cdbff;
1770          text-shadow:
1771            0 0 10px rgba(90, 170, 255, 0.8),
1772            0 0 25px rgba(30, 120, 220, 0.6);
1773        }
1774      </style>
1775      <section class="pd-full-description cyber-mecha" id="deskripsi">
1776        <h2 class="pd-full-desc-title"> FAQ TAKERU365 </h2>
1777        <div class="pd-full-desc-body">
1778          <div class="faq-item">
1779            <div class="faq-question">Apa itu TAKERU365?</div>
1780            <div class="faq-answer">TAKERU365TAKERU365 adalah platform hiburan digital yang menyediakan akses mudah untuk pendaftaran ID VIP, layanan 24 jam, serta berbagai fitur yang dirancang agar pengalaman pengguna lebih nyaman.
1781            </div>
1782          </div>
1783          <div class="faq-item">
1784            <div class="faq-question">Bagaimana cara mendaftar akun di TAKERU365?</div>
1785            <div class="faq-answer">Anda hanya perlu membuka link resmi TAKERU365, mengisi formulir pendaftaran dengan data yang diperlukan, lalu mengikuti proses verifikasi hingga akun aktif.</div>
1786          </div>
1787          <div class="faq-item">
1788            <div class="faq-question">Apakah layanan TAKERU365 tersedia selama 24 jam?</div>
1789            <div class="faq-answer">Ya. TAKERU365 beroperasi 24 jam sehari sehingga pengguna dapat mengakses layanan maupun menghubungi customer service kapan saja.</div>
1790          </div>
1791          <div class="faq-item">
1792            <div class="faq-question">Apa yang dimaksud dengan bocoran RTP 98% di TAKERU365?</div>
1793            <div class="faq-answer">Bocoran RTP 98% merupakan informasi persentase pengembalian yang dijadikan referensi oleh pengguna untuk menentukan pilihan permainan.</div>
1794          </div>
1795          <div class="faq-item">
1796            <div class="faq-question">Apakah TAKERU365 dapat diakses melalui smartphone?</div>
1797            <div class="faq-answer">Tentu. Platform TAKERU365 telah dioptimalkan untuk perangkat Android, iPhone, tablet, maupun komputer sehingga tetap nyaman digunakan.</div>
1798          </div>
1799          <div class="faq-item">
1800            <div class="faq-question">Apa keunggulan menjadi member VIP di TAKERU365?</div>
1801            <div class="faq-answer">Member VIP berkesempatan menikmati akses yang lebih praktis, berbagai promo menarik, layanan prioritas, serta pengalaman bermain yang lebih nyaman.</div>
1802          </div>
1803        </div>
1804      </section>
1805      
1805<script>document.querySelectorAll(".faq-question").forEach(q => { q.addEventListener("click", () => { const item = q.parentElement; item.classList.toggle("active"); }); });</script>
1805
1806      <style>
1807        @import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@500;700;900&display=swap');
1808
1809        .cyber-mecha {
1810    max-width: 800px;
1811    margin: 40px auto;
1812    background: radial-gradient(circle at top,
1813        #123b73 0%,
1814        #081b3c 45%,
1815        #020914 100%);
1816    border-radius: 16px;
1817    border: 1px solid rgba(100,180,255,.35);
1818    box-shadow:
1819        0 0 25px rgba(8,27,60,.55),
1820        0 0 35px rgba(70,160,255,.18),
1821        inset 0 0 20px rgba(100,180,255,.08);
1822    padding: 25px;
1823    font-family: 'Orbitron', sans-serif;
1824    color: #e8f7ff;
1825    position: relative;
1826    overflow: hidden;
1827        }
1828
1829        /* scanline overlay */
1830        .cyber-mecha::before{
1831            content:"";
1832            position:absolute;
1833            inset:0;
1834            background:repeating-linear-gradient(
1835                to bottom,
1836                rgba(100,180,255,.04),
1837                rgba(100,180,255,.04) 1px,
1838                transparent 1px,
1839                transparent 3px
1840            );
1841            pointer-events:none;
1842        }
1843
1844        /* TITLE */
1845        .pd-full-desc-title{
1846            text-align:center;
1847            font-size:22px;
1848            color:#8fd8ff;
1849            letter-spacing:2px;
1850            text-shadow:
1851                0 0 12px rgba(100,180,255,.8),
1852                0 0 25px rgba(50,140,255,.45);
1853            margin-bottom:20px;
1854        }
1855
1856        /* SUB HEADER */
1857        .mecha-header h3{
1858            text-align:center;
1859            font-size:18px;
1860            color:#b7e7ff;
1861            text-shadow:0 0 10px rgba(100,180,255,.7);
1862            margin-bottom:15px;
1863        }
1864
1865        /* IMAGE */
1866        .mecha-image img{
1867            width:100%;
1868            border-radius:10px;
1869            border:1px solid rgba(100,180,255,.35);
1870            box-shadow:
1871                0 0 18px rgba(50,140,255,.22),
1872                inset 0 0 10px rgba(255,255,255,.04);
1873            margin-bottom:20px;
1874        }
1875
1876        /* CONTENT */
1877        .mecha-content p{
1878            font-size:14px;
1879            line-height:1.8;
1880            margin-bottom:14px;
1881            color:#dff3ff;
1882        }
1883
1884        /* GLOW TEXT */
1885        .glow{
1886            color:#69c7ff;
1887            text-shadow:
1888                0 0 8px rgba(100,180,255,.7),
1889                0 0 18px rgba(50,140,255,.45);
1890            font-weight:600;
1891        }
1892
1893        .glow-strong{
1894            color:#9fddff;
1895            text-shadow:
1896                0 0 10px rgba(100,180,255,.8),
1897                0 0 25px rgba(50,140,255,.55);
1898            font-weight:700;
1899        }
1900
1901        /* FINAL LINE */
1902        .final-line{
1903            margin-top:18px;
1904            padding:10px;
1905            border:1px solid rgba(100,180,255,.35);
1906            background:rgba(8,27,60,.45);
1907            border-radius:8px;
1908            text-align:center;
1909            box-shadow:
1910                0 0 15px rgba(50,140,255,.18),
1911                inset 0 0 10px rgba(100,180,255,.05);
1912        }
1913        </style>
1914      <section class="pd-related-full">
1915        <h2 class="pd-related-title">Produk Terkait</h2>
1916        <div class="pd-related-grid pd-related-grid--full">
1917          <a class="pd-related-card" href="https://unidosporelautismo.org/">
1918            <div class="thumb">
1919              <img src="https://unidosporelautismo.org/img/banner_takeru365.webp" alt="TAKERU365">
1920              <span class="mini-disc">-2%</span>
1921            </div>
1922            <div class="info">
1923              <h3>TAKERU365</h3>
1924              <div class="spec-chips">I5 <span class="spec-divider">|</span> 16GB <span class="spec-divider">|</span> 512GB <span class="spec-divider">|</span> RTX3050 </div>
1925              <span class="price">
1926                <span class="final">Rp 11.500.000</span>
1927                <span class="ori">Rp 12.799.000</span>
1928              </span>
1929              <span class="sold">Terjual 200+</span>
1930              <span class="stock-dot low" title="Stok Terbatas"></span>
1931            </div>
1932          </a>
1933          <a class="pd-related-card" href="https://unidosporelautismo.org/">
1934            <div class="thumb">
1935              <img src="https://unidosporelautismo.org/img/banner_takeru365.webp" alt="TAKERU365 LINK">
1936              <span class="mini-disc">-1%</span>
1937            </div>
1938            <div class="info">
1939              <h3>TAKERU365 LINK</h3>
1940              <div class="spec-chips">I7 <span class="spec-divider">|</span> 16GB <span class="spec-divider">|</span> 512GB <span class="spec-divider">|</span> RTX5050 </div>
1941              <span class="price">
1942                <span class="final">Rp 22.887.000</span>
1943                <span class="ori">Rp 21.999.000</span>
1944              </span>
1945              <span class="sold">Terjual 20+</span>
1946              <span class="stock-dot out" title="Habis"></span>
1947            </div>
1948          </a>
1949          <a class="pd-related-card" href="https://unidosporelautismo.org/">
1950            <div class="thumb">
1951              <img src="https://unidosporelautismo.org/img/banner_takeru365.webp" alt="TAKERU365 LOGIN">
1952              <span class="mini-disc">-1%</span>
1953            </div>
1954            <div class="info">
1955              <h3>TAKERU365 LOGIN</h3>
1956              <div class="spec-chips">R7AI <span class="spec-divider">|</span> 16GB <span class="spec-divider">|</span> 1TB <span class="spec-divider">|</span> RTX5060 </div>
1957              <span class="price">
1958                <span class="final">Rp 23.600.000</span>
1959                <span class="ori">Rp 21.399.000</span>
1960              </span>
1961              <span class="sold">Terjual 6</span>
1962              <span class="stock-dot ready" title="Ready"></span>
1963            </div>
1964          </a>
1965          <a class="pd-related-card" href="https://unidosporelautismo.org/">
1966            <div class="thumb">
1967              <img src="https://unidosporelautismo.org/img/banner_takeru365.webp" alt="TAKERU365 DAFTAR">
1968              <span class="mini-disc">-1%</span>
1969            </div>
1970            <div class="info">
1971              <h3>TAKERU365 DAFTAR</h3>
1972              <div class="spec-chips">R5AI <span class="spec-divider">|</span> 16GB <span class="spec-divider">|</span> 1TB <span class="spec-divider">|</span> RTX5060 </div>
1973              <span class="price">
1974                <span class="final">Rp 18.800.000</span>
1975                <span class="ori">Rp 19.799.000</span>
1976              </span>
1977              <span class="sold">Terjual 5</span>
1978              <span class="stock-dot ready" title="Ready"></span>
1979            </div>
1980          </a>
1981          <a class="pd-related-card" href="https://unidosporelautismo.org/">
1982            <div class="thumb">
1983              <img src="https://unidosporelautismo.org/img/banner_takeru365.webp" alt="GAME ONLINE">
1984              <span class="mini-disc">-1%</span>
1985            </div>
1986            <div class="info">
1987              <h3>GAME ONLINE</h3>
1988              <div class="spec-chips">I7 <span class="spec-divider">|</span> 16GB <span class="spec-divider">|</span> 512GB <span class="spec-divider">|</span> RTX5050 </div>
1989              <span class="price">
1990                <span class="final">Rp 28.600.080</span>
1991                <span class="ori">Rp 27.999.000</span>
1992              </span>
1993              <span class="sold">Terjual 6</span>
1994              <span class="stock-dot low" title="Stok Terbatas"></span>
1995            </div>
1996          </a>
1997          <a class="pd-related-card" href="https://unidosporelautismo.org/">
1998            <div class="thumb">
1999              <img src="https://unidosporelautismo.org/img/banner_takeru365.webp" alt="SITUS TAKERU365">
2000              <span class="mini-disc">-1%</span>
2001            </div>
2002            <div class="info">
2003              <h3>SITUS TAKERU365</h3>
2004              <div class="spec-chips">CORE5 <span class="spec-divider">|</span> 16GB <span class="spec-divider">|</span> 512GB <span class="spec-divider">|</span> RTX4050 </div>
2005              <span class="price">
2006                <span class="final">Rp 17.888.000</span>
2007                <span class="ori">Rp 18.499.000</span>
2008              </span>
2009              <span class="stock-dot low" title="Stok Terbatas"></span>
2010            </div>
2011          </a>
2012        </div>
2013      </section>
2014      <div class="pd-mobile-fab" id="pd-mobile-fab" data-pid="325" data-price="20789000" data-voucher-code="" data-voucher-value="0">
2015        <div class="mf-actions">
2016          <button type="button" class="mf-btn mf-share" id="mf-share" aria-label="Bagikan">
2017            <svg viewBox="0 0 24 24" width="18" height="18" aria-hidden="true">
2018              <path fill="currentColor" d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81 1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9c-1.66 0-3 1.34-3 3s1.34 3 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.16c-.05.21-.08.43-.08.65 0 1.61 1.31 2.92 2.92 2.92s2.92-1.31 2.92-2.92-1.31-2.92-2.92-2.92z"/>
2019            </svg>
2020          </button>
2021          <button type="button" class="mf-btn mf-chat" id="mf-chat" aria-label="Tanya Produk">
2022            <svg viewBox="0 0 640 640" fill="currentColor">
2023              <path d="M320 128C241 128 175.3 185.3 162.3 260.7C171.6 257.7 181.6 256 192 256L208 256C234.5 256 256 277.5 256 304L256 400C256 426.5 234.5 448 208 448L192 448C139 448 96 405 96 352L96 288C96 164.3 196.3 64 320 64C443.7 64 544 164.3 544 288L544 456.1C544 522.4 490.2 576.1 423.9 576.1L336 576L304 576C277.5 576 256 554.5 256 528C256 501.5 277.5 480 304 480L336 480C362.5 480 384 501.5 384 528L384 528L424 528C463.8 528 496 495.8 496 456L496 435.1C481.9 443.3 465.5 447.9 448 447.9L432 447.9C405.5 447.9 384 426.4 384 399.9L384 303.9C384 277.4 405.5 255.9 432 255.9L448 255.9C458.4 255.9 468.3 257.5 477.7 260.6C464.7 185.3 399.1 127.9 320 127.9z"/>
2024            </svg>
2025          </button>
2026          <button type="button" class="mf-btn mf-cart" id="mf-cart" disabled aria-label="Tambah ke keranjang">
2027            <svg viewBox="0 0 24 24" width="18" height="18" aria-hidden="true">
2028              <path fill="currentColor" d="M7 18c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2zM1 2v2h2l3.6 7.59-1.35 2.45c-.16.28-.25.61-.25.96 0 1.1.9 2 2 2h12v-2H7.42c-.14 0-.25-.11-.25-.25l.03-.12.9-1.63h7.45c.75 0 1.41-.41 1.75-1.03l3.58-6.49c.08-.14.12-.31.12-.48 0-.55-.45-1-1-1H5.21l-.94-2H1zm16 16c-1.1 0-1.99.9-1.99 2s.89 2 1.99 2 2-.9 2-2-.9-2-2-2z"/>
2029            </svg>
2030          </button>
2031          <button type="button" class="mf-btn mf-buy" id="mf-buy" disabled>
2032            <span class="mf-buy-text">Beli Sekarang</span>
2033            <span class="mf-buy-price">Rp 20.789.000</span>
2034          </button>
2035        </div>
2036      </div>
2037      <button type="button" class="pd-scroll-top" id="pd-scroll-top" aria-label="Kembali ke atas" title="Kembali ke atas">
2038        <svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true">
2039          <path fill="currentColor" d="M7.41 14.59 12 10l4.59 4.59L18 13.17l-6-6-6 6z"/>
2040        </svg>
2041      </button>
2042    </main>
2043    <div class="pd-share-modal-overlay" id="pd-share-modal-overlay">
2044      <div class="pd-share-modal">
2045        <div class="pd-share-header">
2046          <h2 class="pd-share-title">Bagikan Produk</h2>
2047          <button type="button" class="pd-share-close" id="pd-share-close" aria-label="Tutup">
2048            <svg width="20" height="20" viewBox="0 0 24 24">
2049              <path fill="currentColor" 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"/>
2050            </svg>
2051          </button>
2052        </div>
2053        <div class="pd-share-body">
2054          <div class="pd-share-preview">
2055            <img src="https://unidosporelautismo.org/img/banner_takeru365.webp" alt="TAKERU365" class="pd-share-preview-img">
2056            <div class="pd-share-preview-info">
2057              <h3 class="pd-share-preview-name">TAKERU365</h3>
2058              <p class="pd-share-preview-price">Rp 20.789.000</p>
2059            </div>
2060          </div>
2061          <p class="pd-share-label">Bagikan Ke</p>
2062          <div class="pd-share-grid">
2063            <a href="#" class="pd-share-option" data-share="whatsapp" target="_blank" rel="noopener">
2064              <span class="pd-share-icon pd-share-icon-whatsapp">
2065                <svg viewBox="0 0 24 24">
2066                  <path fill="currentColor" d="M17.472 14.382c-.297-.149-1.758-.867-2.029-.967-.273-.099-.471-.148-.669.149-.198.297-.767.966-.94 1.164-.173.198-.347.223-.644.074-.297-.149-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.297-.347.446-.52.149-.173.198-.297.298-.495.099-.198.05-.372-.025-.521-.075-.149-.669-1.612-.916-2.206-.242-.579-.487-.5-.669-.51l-.57-.01c-.198 0-.52.074-.792.372s-1.04 1.016-1.04 2.479 1.065 2.876 1.213 3.074c.149.198 2.095 3.2 5.076 4.487.709.306 1.262.489 1.694.626.712.226 1.36.194 1.872.118.571-.085 1.758-.718 2.006-1.411.248-.694.248-1.29.173-1.411-.074-.123-.272-.198-.57-.347m-5.421 7.403h-.002a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.263c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.887 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.158 11.892c0 2.096.547 4.142 1.588 5.945L0 24l6.305-1.654a11.86 11.86 0 005.67 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.485-8.413"/>
2067                </svg>
2068              </span>
2069              <span class="pd-share-name">WhatsApp</span>
2070            </a>
2071            <a href="#" class="pd-share-option" data-share="facebook" target="_blank" rel="noopener">
2072              <span class="pd-share-icon pd-share-icon-facebook">
2073                <svg viewBox="0 0 24 24">
2074                  <path fill="currentColor" d="M24 12.073c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.99 4.388 10.954 10.125 11.854v-8.385H7.078v-3.47h3.047V9.43c0-3.007 1.792-4.669 4.533-4.669 1.312 0 2.686.235 2.686.235v2.953H15.83c-1.491 0-1.956.925-1.956 1.874v2.25h3.328l-.532 3.47h-2.796v8.385C19.612 23.027 24 18.062 24 12.073z"/>
2075                </svg>
2076              </span>
2077              <span class="pd-share-name">Facebook</span>
2078            </a>
2079            <a href="#" class="pd-share-option" data-share="twitter" target="_blank" rel="noopener">
2080              <span class="pd-share-icon pd-share-icon-twitter">
2081                <svg viewBox="0 0 24 24">
2082                  <path fill="currentColor" d="M23.953 4.57a10 10 0 01-2.825.775 4.958 4.958 0 002.163-2.723c-.951.555-2.005.959-3.127 1.184a4.92 4.92 0 00-8.384 4.482C7.69 8.095 4.067 6.13 1.64 3.162a4.822 4.822 0 00-.666 2.475c0 1.71.87 3.213 2.188 4.096a4.904 4.904 0 01-2.228-.616v.06a4.923 4.923 0 003.946 4.827 4.996 4.996 0 01-2.212.085 4.936 4.936 0 004.604 3.417 9.867 9.867 0 01-6.102 2.105c-.39 0-.779-.023-1.17-.067a13.995 13.995 0 007.557 2.209c9.053 0 13.998-7.496 13.998-13.985 0-.21 0-.42-.015-.63A9.935 9.935 0 0024 4.59z"/>
2083                </svg>
2084              </span>
2085              <span class="pd-share-name">Twitter</span>
2086            </a>
2087            <a href="#" class="pd-share-option" data-share="telegram" target="_blank" rel="noopener">
2088              <span class="pd-share-icon pd-share-icon-telegram">
2089                <svg viewBox="0 0 24 24">
2090                  <path fill="currentColor" d="M11.944 0A12 12 0 0 0 0 12a12 12 0 0 0 12 12 12 12 0 0 0 12-12A12 12 0 0 0 12 0a12 12 0 0 0-.056 0zm4.962 7.224c.1-.002.321.023.465.14a.506.506 0 0 1 .171.325c.016.093.036.306.02.472-.18 1.898-.962 6.502-1.36 8.627-.168.9-.499 1.201-.82 1.23-.696.065-1.225-.46-1.9-.902-1.056-.693-1.653-1.124-2.678-1.8-1.185-.78-.417-1.21.258-1.91.177-.184 3.247-2.977 3.307-3.23.007-.032.014-.15-.056-.212s-.174-.041-.249-.024c-.106.024-1.793 1.14-5.061 3.345-.48.33-.913.49-1.302.48-.428-.008-1.252-.241-1.865-.44-.752-.245-1.349-.374-1.297-.789.027-.216.325-.437.893-.663 3.498-1.524 5.83-2.529 6.998-3.014 3.332-1.386 4.025-1.627 4.476-1.635z"/>
2091                </svg>
2092              </span>
2093              <span class="pd-share-name">Telegram</span>
2094            </a>
2095            <a href="#" class="pd-share-option" data-share="email">
2096              <span class="pd-share-icon pd-share-icon-email">
2097                <svg viewBox="0 0 24 24">
2098                  <path fill="currentColor" d="M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z"/>
2099                </svg>
2100              </span>
2101              <span class="pd-share-name">Email</span>
2102            </a>
2103            <button type="button" class="pd-share-option" data-share="copy">
2104              <span class="pd-share-icon pd-share-icon-copy">
2105                <svg viewBox="0 0 24 24">
2106                  <path fill="currentColor" d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/>
2107                </svg>
2108              </span>
2109              <span class="pd-share-name">Salin Link</span>
2110            </button>
2111            <button type="button" class="pd-share-option" data-share="pdf">
2112              <span class="pd-share-icon pd-share-icon-pdf">
2113                <svg viewBox="0 0 24 24">
2114                  <path fill="currentColor" d="M14 2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V8l-6-6zm4 18H6V4h7v5h5v11zM8 15.5h1.5c.83 0 1.5-.67 1.5-1.5v-1c0-.83-.67-1.5-1.5-1.5H8v4zm6 0h1c1.1 0 2-.9 2-2v-2c0-1.1-.9-2-2-2h-1v6zm-4.5-1.5H8v-1h1.5v1zM14 13h1v1h-1v-1z"/>
2115                </svg>
2116              </span>
2117              <span class="pd-share-name">Export PDF</span>
2118            </button>
2119          </div>
2120          <div class="pd-share-copy-section">
2121            <div class="pd-share-copy-input-wrap">
2122              <input type="text" class="pd-share-copy-input" id="pd-share-url-input" value="https://unidosporelautismo.org/" readonly>
2123              <button type="button" class="pd-share-copy-btn" id="pd-share-copy-url-btn">
2124                <svg viewBox="0 0 24 24" width="16" height="16">
2125                  <path fill="currentColor" d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/>
2126                </svg>
2127                <span class="pd-share-copy-text">Salin</span>
2128              </button>
2129            </div>
2130          </div>
2131        </div>
2132      </div>
2133    </div>
2134    <style>
2135      .toast-root {
2136        position: fixed;
2137        left: 50%;
2138        bottom: 18px;
2139        transform: translateX(-50%);
2140        display: flex;
2141        flex-direction: column;
2142        gap: 10px;
2143        z-index: 99999;
2144        pointer-events: none;
2145        max-width: min(92vw, 540px)
2146      }
2147
2148      .toast {
2149        display: grid;
2150        grid-template-columns: 28px 1fr auto;
2151        gap: 12px;
2152        background: #0b1220;
2153        color: #eef3ff;
2154        border: 1px solid rgba(255, 255, 255, .08);
2155        padding: 12px 14px;
2156        border-radius: 12px;
2157        box-shadow: 0 10px 30px rgba(10, 10, 20, .35);
2158        pointer-events: auto;
2159        overflow: hidden
2160      }
2161
2162      .toast .ico {
2163        align-self: start;
2164        margin-top: 2px
2165      }
2166
2167      .toast .ttl {
2168        font-weight: 700;
2169        line-height: 1.25;
2170        font-size: 14px;
2171        margin-bottom: 4px
2172      }
2173
2174      .toast .msg {
2175        opacity: .95;
2176        line-height: 1.45;
2177        font-size: 13px
2178      }
2179
2180      .toast .actions {
2181        display: flex;
2182        gap: 8px;
2183        align-self: center
2184      }
2185
2186      .toast .btn {
2187        background: #0ea5e9;
2188        color: #fff;
2189        border: 0;
2190        border-radius: 999px;
2191        padding: 8px 12px;
2192        font-size: 12px;
2193        font-weight: 700;
2194        cursor: pointer
2195      }
2196
2197      .toast .btn.alt {
2198        background: transparent;
2199        color: #8fb5ff;
2200        border: 1px solid rgba(143, 181, 255, .35)
2201      }
2202
2203      .toast .close {
2204        background: transparent;
2205        border: 0;
2206        color: #98a2b3;
2207        cursor: pointer;
2208        padding: 4px;
2209        margin-left: 6px
2210      }
2211
2212      .toast.success {
2213        border-left: 4px solid #22c55e
2214      }
2215
2216      .toast.info {
2217        border-left: 4px solid #0ea5e9
2218      }
2219
2220      .toast.warn {
2221        border-left: 4px solid #f59e0b
2222      }
2223
2224      .toast .progress {
2225        position: absolute;
2226        left: 0;
2227        bottom: 0;
2228        height: 3px;
2229        background: linear-gradient(90deg, #60a5fa, #22c55e);
2230        width: 100%;
2231        transform-origin: left;
2232        animation: toastBar linear forwards
2233      }
2234
2235      @keyframes toastBar {
2236        from {
2237          transform: scaleX(1)
2238        }
2239
2240        to {
2241          transform: scaleX(0)
2242        }
2243      }
2244
2245      @media(max-width:640px) {
2246        .toast {
2247          grid-template-columns: 24px 1fr auto;
2248          padding: 12px
2249        }
2250
2251        .toast .btn {
2252          padding: 7px 10px
2253        }
2254      }
2255    </style>
2256    <style>
2257      .toast .msg { word-break: break-word; overflow-wrap: anywhere; } .toast-root { bottom: max(12px, env(safe-area-inset-bottom, 12px)); } @media (max-width: 540px) { .toast-root { left: 0; right: 0; transform: none; padding: 0 12px; bottom: calc(max(12px, env(safe-area-inset-bottom, 12px)) + var(--fab-offset, 72px)); max-width: none; } .toast { grid-template-columns: 1fr; /* 1 kolom */ position: relative; padding: 14px 14px 12px 14px; border-radius: 16px; } .toast .ico { position: absolute; left: 14px; top: 14px; margin: 0; transform: translateY(1px); } .toast .cnt { padding-left: 34px; } .toast .ttl { font-size: 15px; margin-bottom: 6px; } .toast .msg { font-size: 13px; opacity: .96; } .toast .actions { margin-top: 12px; gap: 10px; width: 100%; display: grid; grid-template-columns: 1fr 1fr; } .toast .btn { width: 100%; min-width: 0; padding: 10px 0; } .toast .close { position: absolute; right: 6px; top: 6px; } }
2258    </style>
2259    
2259<script nonce="se3iyzEHMc9FQEB4wSyd0w==">
2260      (function adjustToastFabOffset() {
2261        const root = document.getElementById('toastRoot');
2262        if (!root) return;
2263
2264        function isVisible(el) {
2265          if (!el) return false;
2266          const cs = getComputedStyle(el);
2267          if (cs.display === 'none' || cs.visibility === 'hidden' || cs.opacity === '0') return false;
2268          const r = el.getBoundingClientRect();
2269          return r.width > 0 && r.height > 0;
2270        }
2271
2272        function update() {
2273          const fab = document.getElementById('pd-mobile-fab');
2274          let extra = 16;
2275          if (isVisible(fab)) {
2276            const h = Math.round(fab.getBoundingClientRect().height) || 56;
2277            extra = h + 16; // FAB height + margin
2278          }
2279          root.style.setProperty('--fab-offset', extra + 'px');
2280        }
2281        window.addEventListener('resize', update, {
2282          passive: true
2283        });
2284        const fab = document.getElementById('pd-mobile-fab');
2285        if (window.ResizeObserver && fab) {
2286          const ro = new ResizeObserver(update);
2287          ro.observe(fab);
2288        }
2289        update();
2290      })();
2291    </script>
2291
2292    <div class="toast-root" id="toastRoot" aria-live="polite" aria-atomic="true"></div>
2293    
2293<script nonce="se3iyzEHMc9FQEB4wSyd0w==">
2294      (function() {
2295        const root = document.getElementById('toastRoot');
2296
2297        function svgIcon(kind) {
2298          if (kind === 'success') return ' < svg width = "24"
2299          height = "24"
2300          viewBox = "0 0 24 24"
2301          fill = "#22c55e" > < path d = "M9 16.2l-3.5-3.5 1.4-1.4L9 13.4l7.7-7.7 1.4 1.4z" / > < /svg>';
2302          if (kind === 'warn') return ' < svg width = "24"
2303          height = "24"
2304          viewBox = "0 0 24 24"
2305          fill = "#f59e0b" > < path d = "M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z" / > < /svg>';
2306          return ' < svg width = "24"
2307          height = "24"
2308          viewBox = "0 0 24 24"
2309          fill = "#0ea5e9" > < path d = "M11 7h2v2h-2zm0 4h2v6h-2z" / > < path d = "M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2z"
2310          fill = "none"
2311          stroke = "#0ea5e9" / > < /svg>'
2312        }
2313        window.showToast = function(opts) {
2314          const o = Object.assign({
2315            title: '',
2316            message: '',
2317            type: 'info',
2318            duration: 4000,
2319            actions: []
2320          }, opts || {});
2321          const el = document.createElement('div');
2322          el.className = 'toast ' + (o.type || 'info');
2323          el.setAttribute('role', 'status');
2324          el.style.position = 'relative';
2325          const acts = (o.actions || []).map(a => {
2326            const lab = a.label || 'OK';
2327            const cls = 'btn' + (a.variant === 'alt' ? ' alt' : '');
2328            return `
2329            <button type="button" class="${cls}" data-act="${lab}">${lab}</button>`
2330          }).join('');
2331          el.innerHTML = `
2332          <div class="ico" aria-hidden="true">${svgIcon(o.type)}</div>
2333          <div class="cnt">${o.title?`
2334            <div class="ttl">${o.title}</div>`:''}${o.message?`
2335            <div class="msg">${o.message}</div>`:''}
2336          </div>
2337          <div class="actions">${acts}</div>
2338          <button type="button" class="close" aria-label="Tutup" title="Tutup">
2339            <svg width="18" height="18" viewBox="0 0 24 24">
2340              <path fill="currentColor" d="M18.3 5.71L12 12.01l-6.3-6.3-1.4 1.41 6.3 6.3-6.3 6.3 1.4 1.41 6.3-6.3 6.3 6.3 1.41-1.41-6.3-6.3 6.3-6.3z"/>
2341            </svg>
2342          </button>
2343          <div class="progress" style="animation-duration:${Math.max(1500,o.duration)}ms"></div>`;
2344          const close = () => {
2345            if (!el.parentNode) return;
2346            el.style.transition = 'transform .2s ease, opacity .2s ease';
2347            el.style.opacity = '0';
2348            el.style.transform = 'translateY(10px)';
2349            setTimeout(() => {
2350              if (el.parentNode) el.parentNode.removeChild(el);
2351            }, 220);
2352          };
2353          el.querySelector('.close').addEventListener('click', close);
2354          el.querySelectorAll('.actions .btn').forEach(btn => {
2355            btn.addEventListener('click', () => {
2356              const lab = btn.getAttribute('data-act');
2357              try {
2358                (o.actions || []).forEach(a => {
2359                  if (a.label === lab && typeof a.onClick === 'function') a.onClick();
2360                });
2361              } catch (_) {}
2362              close();
2363            });
2364          });
2365          root.appendChild(el);
2366          setTimeout(close, o.duration);
2367          return el;
2368        };
2369      })();
2370      const _0x1a2b = [{
2371          "url": "https://unidosporelautismo.org/img/banner_takeru365.webp",
2372          "alt": "Lenovo Legion Go 8ASP2 - 83N0000RID /AMD Ryzen Z2 Extreme/32GB/1TB SSD/AMD Radeon Graphics/8.8\" WUXGA OLED Touch/Win 11 Home/Eclipse Black/3Y",
2373          "slug": ""
2374        }, {
2375          "url": "https://unidosporelautismo.org/img/banner_takeru365.webp",
2376          "alt": "Lenovo Lenovo Legion Go 8ASP2 - 83N0000RID /AMD Ryzen Z2 Extreme/32GB/1TB SSD/AMD Radeon Graphics/8.8\" WUXGA OLED Touch/Wi...",
2377          "slug": "https://unidosporelautismo.org/img/banner_takeru365.webp"
2378        }, {
2379          "url": "https://unidosporelautismo.org/img/banner_takeru365.webp",
2380          "alt": "Lenovo Lenovo Legion Go 8ASP2 - 83N0000RID /AMD Ryzen Z2 Extreme/32GB/1TB SSD/AMD Radeon Graphics/8.8\" WUXGA OLED Touch/Wi...",
2381          "slug": "lenovo-legion-go-8asp2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-b-1761796941-223.webp"
2382        }, {
2383          "url": "https://unidosporelautismo.org/img/banner_takeru365.webp",
2384          "alt": "Lenovo Lenovo Legion Go 8ASP2 - 83N0000RID /AMD Ryzen Z2 Extreme/32GB/1TB SSD/AMD Radeon Graphics/8.8\" WUXGA OLED Touch/Wi...",
2385          "slug": "lenovo-legion-go-8asp2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-b-1761796941-776.webp"
2386        }, {
2387          "url": "https://unidosporelautismo.org/img/banner_takeru365.webp",
2388          "alt": "Lenovo Lenovo Legion Go 8ASP2 - 83N0000RID /AMD Ryzen Z2 Extreme/32GB/1TB SSD/AMD Radeon Graphics/8.8\" WUXGA OLED Touch/Wi...",
2389          "slug": "lenovo-legion-go-8asp2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-b-1761796941-634.webp"
2390        }, {
2391          "url": "https://unidosporelautismo.org/img/banner_takeru365.webp",
2392          "alt": "Lenovo Lenovo Legion Go 8ASP2 - 83N0000RID /AMD Ryzen Z2 Extreme/32GB/1TB SSD/AMD Radeon Graphics/8.8\" WUXGA OLED Touch/Wi...",
2393          "slug": "lenovo-legion-go-8asp2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-b-1761796941-892.webp"
2394        }],
2395        _0x3c4d = "Lenovo Legion Go 8ASP2 - 83N0000RID /AMD Ryzen Z2 Extreme/32GB/1TB SSD/AMD Radeon Graphics/8.8\" WUXGA OLED Touch/Win 11 Home/Eclipse Black/3Y",
2396        _0x5e6f = "1S83N0880RID";
2397
2398      function getVariantSummaryText() {
2399        const a = document.getElementById('pd-variant-summary');
2400        if (!a) return '';
2401        const b = Array.from(a.querySelectorAll('.vs-item strong')).map(c => c.textContent.trim()).filter(Boolean);
2402        return b.length ? b.join(' / ') : ''
2403      }
2404
2405      function encodeVariantHash(id) {
2406        if (!id || id <= 0) return '';
2407        const xor = id ^ 0x4A5D;
2408        return xor.toString(36)
2409      }
2410
2411      function decodeVariantHash(hash) {
2412        if (!hash) return 0;
2413        const xor = parseInt(hash, 36);
2414        return isNaN(xor) ? 0 : xor ^ 0x4A5D
2415      }
2416
2417      function showSuccessToast(productId, qty, variantId) {
2418        const variantText = getVariantSummaryText();
2419        const skuText = (function() {
2420          const el = document.getElementById('pd-sku');
2421          return el ? el.textContent.trim() : PD_SKU
2422        })();
2423        showToast({
2424          type: 'warn',
2425          title: 'Fitur Segera Hadir',
2426          message: `
2427          <strong>${escapeHtml(PD_NAME)}</strong>${variantText?` · 
2428          <em>${escapeHtml(variantText)}</em>`:''}
2429          <br>SKU: ${escapeHtml(skuText)} · Qty: ${qty}`,
2430          duration: 5000,
2431          actions: [{
2432            label: 'Lihat Keranjang',
2433            onClick: () => {}
2434          }, {
2435            label: 'Lanjut Belanja',
2436            variant: 'alt',
2437            onClick: () => {}
2438          }]
2439        });
2440        try {
2441          if (window.ga4Ecomm) {
2442            const qtySend = qty || 1;
2443            window.ga4Ecomm.addToCart({
2444              currency: 'IDR',
2445              price: 20789000,
2446              quantity: qtySend,
2447              item_id: "1S83N0880RID",
2448              item_name: "Lenovo Legion Go 8ASP2 - 83N0000RID /AMD Ryzen Z2 Extreme/32GB/1TB SSD/AMD Radeon Graphics/8.8\" WUXGA OLED Touch/Win 11 Home/Eclipse Black/3Y",
2449              item_brand: "Lenovo ",
2450              item_category: (["Komputer & Laptop", "Laptop", "Gaming"] || []).join(' / ')
2451            })
2452          }
2453        } catch (_) {}
2454        return false
2455      }
2456
2457      function showErrorToast() {
2458        showToast({
2459          type: 'error',
2460          title: 'Gagal Menambah ke Keranjang',
2461          message: 'Terjadi kesalahan saat memproses permintaan. Silakan coba lagi.',
2462          duration: 5000
2463        })
2464      }
2465
2466      function executeBuyNowLegacy(id, variantId) {
2467        const a = getVariantSummaryText(),
2468          b = (function() {
2469            const c = document.getElementById('pd-sku');
2470            return c ? c.textContent.trim() : _0x5e6f
2471          })();
2472        let willRedirect = false;
2473        try {
2474          if (window.addToCart) {
2475            window.addToCart(id, 1, variantId);
2476            willRedirect = false;
2477          }
2478        } catch (_) {}
2479        if (willRedirect) {
2480          showToast({
2481            type: 'info',
2482            title: 'Menuju Keranjang',
2483            message: `
2484            <strong>${escapeHtml(PD_NAME)}</strong>${variantText?` · 
2485            <em>${escapeHtml(variantText)}</em>`:''}
2486            <br>SKU: ${escapeHtml(skuText)} · Qty: 1`,
2487            duration: 1800
2488          });
2489          setTimeout(() => {
2490            window.location.href = '/keranjang';
2491          }, 1200);
2492        } else {
2493          showToast({
2494            type: 'warn',
2495            title: 'Fitur Beli Langsung Segera Hadir',
2496            message: `Sementara ini Anda bisa menambahkan produk ke keranjang terlebih dahulu.
2497            <br>
2498            <strong>${escapeHtml(PD_NAME)}</strong>${variantText?` · 
2499            <em>${escapeHtml(variantText)}</em>`:''}`,
2500            duration: 6000,
2501            actions: [{
2502              label: '+ Keranjang',
2503              onClick: () => {
2504                try {
2505                  if (window.addToCart) window.addToCart(id, 1, variantId);
2506                } catch (_) {}
2507              }
2508            }, {
2509              label: 'Hubungi CS',
2510              variant: 'alt',
2511              onClick: () => {
2512                window.open('https://wa.me/6281380009898', '_blank');
2513              }
2514            }]
2515          });
2516        }
2517      }
2518      document.addEventListener('DOMContentLoaded', function() {
2519        var a = document.getElementById('pd-buy-form');
2520        if (a) {
2521          a.addEventListener('submit', function(e) {
2522            var b = parseInt(a.getAttribute('data-pid'), 10) || 0;
2523            if (window.addToCartSubmit) {
2524              return window.addToCartSubmit(e, b)
2525            }
2526          })
2527        }
2528      });
2529      document.addEventListener('DOMContentLoaded', function() {
2530        var a = document.getElementById('btn-buy');
2531        if (a) {
2532          a.addEventListener('click', function() {
2533            var b = a.getAttribute('data-id');
2534            buyNow(b)
2535          })
2536        }
2537      });
2538
2539      function _0x2m3n(s) {
2540        return String(s || '').replace(/[&<>"']/g, m => ({
2541          '&': '&amp;',
2542          '<': '&lt;',
2543          '>': '&gt;',
2544          '"': '&quot;',
2545          "'": '&#039;'
2546        } [m]))
2547      }
2548      (function initGallery() {
2549        const mainImg = document.getElementById('pd-main-img');
2550        const gallery = document.getElementById('pd-thumb-gallery');
2551        if (!mainImg || !gallery) return;
2552        gallery.addEventListener('click', function(ev) {
2553          const btn = ev.target.closest('.pd-thumb-btn');
2554          if (!btn) return;
2555          const full = btn.getAttribute('data-full');
2556          if (full) {
2557            mainImg.src = full;
2558            const alt = btn.getAttribute('data-alt') || '';
2559            if (alt) mainImg.alt = alt;
2560            const slug = btn.getAttribute('data-slug') || '';
2561            if (slug) mainImg.dataset.slug = slug;
2562            gallery.querySelectorAll('.pd-thumb-btn').forEach(b => b.classList.remove('active'));
2563            btn.classList.add('active')
2564          }
2565        })
2566      })();
2567      (function initMobileSliderCounter() {
2568        const slider = document.getElementById('pd-mobile-slider');
2569        const counter = document.getElementById('pd-gallery-counter');
2570        if (!slider || !counter) return;
2571        let ticking = false;
2572        slider.addEventListener('scroll', function() {
2573          if (!ticking) {
2574            window.requestAnimationFrame(function() {
2575              const slides = slider.querySelectorAll('.pd-mslide');
2576              if (!slides.length) return;
2577              const containerRect = slider.getBoundingClientRect();
2578              const containerCenter = containerRect.left + containerRect.width / 2;
2579              let currentIdx = 0;
2580              let minDist = Infinity;
2581              slides.forEach((slide, idx) => {
2582                const slideRect = slide.getBoundingClientRect();
2583                const slideCenter = slideRect.left + slideRect.width / 2;
2584                const dist = Math.abs(slideCenter - containerCenter);
2585                if (dist < minDist) {
2586                  minDist = dist;
2587                  currentIdx = idx
2588                }
2589              });
2590              counter.textContent = (currentIdx + 1) + '/' + slides.length;
2591              ticking = false
2592            });
2593            ticking = true
2594          }
2595        }, {
2596          passive: true
2597        })
2598      })();
2599      /* ================= Simulasi Cicilan ================= */
2600      (function initInstallmentList() {
2601        const card = document.getElementById('inst-card');
2602        if (!card) return;
2603
2604        function getBasePrice() {
2605          return parseInt(card.getAttribute('data-base-price') || '0', 10) || 0
2606        }
2607
2608        function setBasePrice(v) {
2609          card.setAttribute('data-base-price', String(parseInt(v || '0', 10) || 0))
2610        }
2611        const zeroEligible = card.getAttribute('data-zero-smart') === '1';
2612        window.initMobile = zeroEligible;
2613        const listEl = document.getElementById('inst-month-list');
2614        const zeroNote = document.getElementById('inst-zero-note');
2615        const tenors = [3, 6, 12];
2616        const rates = {
2617          BRI: {
2618            3: 0.975,
2619            6: 0.975,
2620            12: 0.975
2621          },
2622          Mandiri: {
2623            3: 0.984,
2624            6: 0.9725,
2625            12: 0.96
2626          },
2627          BCA: {
2628            3: 0.97,
2629            6: 0.94,
2630            12: 0.91
2631          }
2632        };
2633
2634        function formatRupiah(num) {
2635          return 'Rp ' + (Math.round(num)).toString().replace(/\B(?=(\d{3})+(?!\d))/g, '.')
2636        }
2637
2638        function activeBank() {
2639          const tab = card.querySelector('.bank-tab.active');
2640          return tab ? tab.dataset.bank : 'BRI'
2641        }
2642
2643        function _0x4o5p(bank) {
2644          const a = getBasePrice();
2645          listEl.innerHTML = '';
2646          const b = rates[bank] || {};
2647          let c = false;
2648          tenors.forEach(m => {
2649            let d = b[m] ?? 1;
2650            if (zeroEligible && (bank === 'BRI' || bank === 'Mandiri')) {
2651              d = 1;
2652              c = true
2653            }
2654            const e = a / d;
2655            const f = m > 0 ? Math.ceil((e / m) / 100) * 100 : 0;
2656            const g = document.createElement('li');
2657            g.className = 'inst-month-item';
2658            g.innerHTML = `
2659																																																																											<span class="tenor-badge">${m}x</span>
2660																																																																											<span class="amount">${formatRupiah(f)} / bln</span>${zeroEligible&&(bank==='BRI'||bank==='Mandiri')?'
2661																																																																											<span class="tag tag-zero">0%</span>':''}`;
2662            listEl.appendChild(g)
2663          });
2664          zeroNote.style.display = c ? 'block' : 'none'
2665        }
2666        card.addEventListener('click', function(ev) {
2667          const a = ev.target.closest('.bank-tab');
2668          if (!a) return;
2669          card.querySelectorAll('.bank-tab').forEach(b => {
2670            b.classList.remove('active');
2671            b.setAttribute('aria-selected', 'false')
2672          });
2673          a.classList.add('active');
2674          a.setAttribute('aria-selected', 'true');
2675          _0x4o5p(a.dataset.bank)
2676        });
2677        window.instSetBasePrice = function(newPrice) {
2678          setBasePrice(newPrice);
2679          _0x4o5p(activeBank())
2680        };
2681        _0x4o5p(activeBank());
2682      })();
2683      /* ====== Fokus gambar varian ====== */
2684      function _0x6q7r(s) {
2685        return String(s || '').toLowerCase().replace(/[^a-z0-9]+/g, '')
2686      }
2687
2688      function _0x8s9t(u) {
2689        try {
2690          return new URL(u, window.location.origin).pathname.split('/').pop().toLowerCase()
2691        } catch (e) {
2692          try {
2693            return (u || '').split('/').pop().toLowerCase()
2694          } catch (_) {
2695            return ''
2696          }
2697        }
2698      }
2699
2700      function _0xau1v(url, altOpt) {
2701        const a = document.getElementById('pd-main-img'),
2702          b = document.getElementById('pd-thumb-gallery'),
2703          c = document.getElementById('pd-mobile-slider');
2704        if (a && url) {
2705          a.src = url;
2706          if (altOpt) a.alt = altOpt
2707        }
2708        if (b) {
2709          const d = _0x8s9t(url);
2710          let e = null;
2711          b.querySelectorAll('.pd-thumb-btn').forEach(btn => {
2712            const f = btn.getAttribute('data-full') || '',
2713              g = _0x8s9t(f) === d;
2714            if (g) e = btn;
2715            btn.classList.toggle('active', g)
2716          });
2717          if (e) {
2718            const h = e.getAttribute('data-alt') || '',
2719              i = e.getAttribute('data-slug') || '';
2720            if (h && a) a.alt = h;
2721            if (i && a) a.dataset.slug = i
2722          }
2723        }
2724        if (c) {
2725          const targetName = _0x8s9t(url);
2726          const slideImg = Array.from(c.querySelectorAll('img')).find(im => _0x8s9t(im.src) === targetName);
2727          if (slideImg) {
2728            try {
2729              const container = c;
2730              const imgRect = slideImg.getBoundingClientRect();
2731              const contRect = container.getBoundingClientRect();
2732              const offsetLeft = slideImg.offsetLeft - container.offsetLeft;
2733              const center = offsetLeft - (container.clientWidth - slideImg.clientWidth) / 2;
2734              container.scrollTo({
2735                left: Math.max(0, center),
2736                behavior: 'smooth'
2737              });
2738            } catch (_) {
2739              slideImg.scrollIntoView({
2740                behavior: 'smooth',
2741                inline: 'center',
2742                block: 'nearest'
2743              });
2744            }
2745          }
2746        }
2747      }
2748
2749      function findImageForVariant(variant) {
2750        if (!variant || !variant.attrs) return null;
2751        const tokens = [];
2752        try {
2753          Object.values(variant.attrs).forEach(v => {
2754            if (!v) return;
2755            const raw = String(v);
2756            tokens.push(raw);
2757            tokens.push(normalize(raw));
2758          });
2759        } catch (_) {}
2760        if (variant.sku) {
2761          tokens.push(String(variant.sku));
2762          tokens.push(normalize(String(variant.sku)));
2763        }
2764        if (variant.image_url) {
2765          tokens.push(String(variant.image_url));
2766        }
2767        let best = null;
2768        let bestScore = -1;
2769        for (const g of (galleryData || [])) {
2770          const slugN = normalize(g.slug || '');
2771          const altN = normalize(g.alt || '');
2772          const file = _0x8s9t(g.url || '');
2773          const fileN = normalize(file);
2774          const imgU = g.url;
2775          for (const t of tokens) {
2776            const tN = normalize(t);
2777            if (!tN) continue;
2778            let score = -1;
2779            if (imgU === tN) score = 300;
2780            if (slugN && slugN === tN) score = 300;
2781            else if (fileN && fileN.includes(tN)) score = 200;
2782            else if (altN && altN.includes(tN)) score = 120;
2783            if (score > bestScore) {
2784              bestScore = score;
2785              best = g;
2786            }
2787            if (bestScore >= 300) break;
2788          }
2789          if (bestScore >= 300) break;
2790        }
2791        return bestScore >= 120 ? best : null;
2792      }
2793
2794      function _0xey3z(variant) {
2795        const a = _0xcw2x(variant);
2796        if (a && a.url) {
2797          _0xau1v(a.url, a.alt || '')
2798        }
2799      }
2800      /* ====== Layout mobile ====== */
2801      (function _0xg04h() {
2802        const a = document.querySelector('.pd-media-card'),
2803          b = document.getElementById('pd-price-block'),
2804          c = document.getElementById('pd-price-anchor'),
2805          d = document.querySelector('.pd-info-card'),
2806          e = document.getElementById('pd-title'),
2807          f = document.getElementById('pd-variant-combined'),
2808          g = document.getElementById('pd-variants'),
2809          h = document.getElementById('pd-variants-anchor'),
2810          i = document.getElementById('pd-variant-summary'),
2811          j = document.getElementById('pd-summary-anchor'),
2812          titleRow = document.querySelector('.pd-title-row'),
2813          promoBanner = document.querySelector('.promo-endyear-mini-banner'),
2814          compareSection = document.querySelector('.pd-compare-section');
2815        if (!a || !b || !c || !d || !e) return;
2816        let pricePlaced = false;
2817        let varPlaced = false;
2818        let titlePlaced = false;
2819        let promoPlaced = false;
2820        const mq = window.matchMedia('(max-width: 640px)');
2821
2822        function apply() {
2823          if (mq.matches) {
2824            if (!titlePlaced && a && titleRow && d.contains(titleRow)) {
2825              try {
2826                a.appendChild(titleRow);
2827                titlePlaced = true;
2828              } catch (_) {}
2829            }
2830            if (!pricePlaced && a && b) {
2831              try {
2832                a.appendChild(b);
2833                pricePlaced = true;
2834              } catch (_) {}
2835            }
2836            if (!varPlaced && f && d && e) {
2837              try {
2838                f.hidden = false;
2839                if (i && !f.contains(i)) f.appendChild(i);
2840                if (g && !f.contains(g)) f.appendChild(g);
2841                if (d.contains(e)) d.insertBefore(f, e);
2842                varPlaced = true;
2843              } catch (_) {}
2844            }
2845            if (!promoPlaced && promoBanner && compareSection && compareSection.parentNode) {
2846              try {
2847                compareSection.parentNode.insertBefore(promoBanner, compareSection);
2848                promoPlaced = true;
2849              } catch (_) {}
2850            }
2851          } else {
2852            if (titlePlaced && titleRow && d) {
2853              try {
2854                const vcombined = document.getElementById('pd-variant-combined');
2855                if (vcombined && d.contains(vcombined)) {
2856                  d.insertBefore(titleRow, vcombined);
2857                } else {
2858                  d.insertBefore(titleRow, d.firstChild);
2859                }
2860                titlePlaced = false;
2861              } catch (_) {}
2862            }
2863            if (pricePlaced && b && c && c.parentNode) {
2864              try {
2865                c.parentNode.insertBefore(b, c.nextSibling);
2866                pricePlaced = false;
2867              } catch (_) {}
2868            }
2869            if (varPlaced) {
2870              try {
2871                if (i && j && j.parentNode && !j.parentNode.contains(i)) j.parentNode.insertBefore(i, j.nextSibling);
2872                if (g && h && h.parentNode && !h.parentNode.contains(g)) h.parentNode.insertBefore(g, h.nextSibling);
2873                if (f) {
2874                  f.hidden = true;
2875                  f.innerHTML = '';
2876                }
2877                varPlaced = false;
2878              } catch (_) {}
2879            }
2880            if (promoPlaced && promoBanner && b) {
2881              try {
2882                b.appendChild(promoBanner);
2883                promoPlaced = false;
2884              } catch (_) {}
2885            }
2886          }
2887        }
2888        mq.addEventListener ? mq.addEventListener('change', apply) : mq.addListener(apply);
2889        apply();
2890        const fab = document.getElementById('pd-mobile-fab');
2891        if (fab) {
2892          const pid = parseInt(fab.getAttribute('data-pid') || '0', 10) || 325;
2893          const btnCart = document.getElementById('mf-cart');
2894          if (btnCart) btnCart.addEventListener('click', function() {
2895            const varInput = document.getElementById('pd-variant-id');
2896            const variantId = varInput ? parseInt(varInput.value || '0', 10) : 0;
2897            try {
2898              if (window.addToCart) addToCart(pid, 1, variantId);
2899            } catch (_) {}
2900            const variantText = getVariantSummaryText();
2901            const skuText = (function() {
2902              const el = document.getElementById('pd-sku');
2903              return el ? el.textContent.trim() : PD_SKU;
2904            })();
2905            showToast({
2906              type: 'success',
2907              title: 'Berhasil ditambahkan ke Keranjang',
2908              message: `
2909																																																																											<strong>${escapeHtml(PD_NAME)}</strong>${variantText?` · 
2910																																																																											<em>${escapeHtml(variantText)}</em>`:''}
2911																																																																											<br>SKU: ${escapeHtml(skuText)} · Qty: 1`,
2912              duration: 5000,
2913              actions: [{
2914                label: 'Lihat Keranjang',
2915                onClick: () => {
2916                  window.location.href = '/keranjang';
2917                }
2918              }, {
2919                label: 'Lanjut Belanja',
2920                variant: 'alt',
2921                onClick: () => {}
2922              }]
2923            });
2924          });
2925        }
2926      })();
2927      /* ====== Auto-hide installment banner if sidebar too tall (Desktop only) ====== */
2928      (function() {
2929        function adjustSidebarBanner() {
2930          if (window.innerWidth <= 768) return;
2931          const sidebar = document.querySelector('.pd-sidebar');
2932          const infoCard = document.querySelector('.pd-info-card');
2933          const banner = document.querySelector('.pd-side-card.inst-alt-banner.inst-alt-banner--compact');
2934          if (!sidebar || !infoCard || !banner) return;
2935          const sidebarHeight = sidebar.offsetHeight;
2936          const infoCardHeight = infoCard.offsetHeight;
2937          if (sidebarHeight > infoCardHeight) {
2938            banner.style.display = 'none';
2939          } else {
2940            banner.style.display = '';
2941          }
2942        }
2943        if (document.readyState === 'loading') {
2944          document.addEventListener('DOMContentLoaded', adjustSidebarBanner);
2945        } else {
2946          adjustSidebarBanner();
2947        }
2948        let resizeTimer;
2949        window.addEventListener('resize', function() {
2950          clearTimeout(resizeTimer);
2951          resizeTimer = setTimeout(adjustSidebarBanner, 250);
2952        });
2953        const pwpSection = document.getElementById('pwp-deals-section');
2954        if (pwpSection) {
2955          const observer = new MutationObserver(function(mutations) {
2956            let shouldRecheck = false;
2957            mutations.forEach(function(mutation) {
2958              if (mutation.type === 'attributes' && mutation.attributeName === 'hidden') {
2959                shouldRecheck = true;
2960              } else if (mutation.type === 'childList' && mutation.addedNodes.length > 0) {
2961                shouldRecheck = true;
2962              }
2963            });
2964            if (shouldRecheck) {
2965              setTimeout(adjustSidebarBanner, 100);
2966            }
2967          });
2968          observer.observe(pwpSection, {
2969            attributes: true,
2970            childList: true,
2971            subtree: true
2972          });
2973        }
2974        window.adjustSidebarBanner = adjustSidebarBanner;
2975      })();
2976      /* ====== Global constants ====== */
2977      const IS_DIGITAL = false;
2978      const IS_PREORDER = false;
2979      /* ====== Variants state (REVISED) ====== */
2980      (function initVariants() {
2981        const _0x7g8h = [];
2982        window.variants = _0x7g8h;
2983        window.isPreorderProduct = false;
2984        const attrOrder = [];
2985        if (!variants.length || !attrOrder.length) return;
2986
2987        function comboKey(sel) {
2988          return attrOrder.map(a => a + '=' + (sel[a] ?? '')).join('|');
2989        }
2990        const variantMap = {};
2991        variants.forEach(v => {
2992          const key = comboKey(v.attrs);
2993          variantMap[key] = v;
2994        });
2995
2996        function readSelection() {
2997          const sel = {};
2998          attrOrder.forEach(a => {
2999            const r = document.querySelector(`.v-group[data-attr="${CSS.escape(a)}"] input[type=radio]:checked`);
3000            sel[a] = r ? r.value : '';
3001          });
3002          return sel;
3003        }
3004
3005        function findVariant(sel) {
3006          return variantMap[comboKey(sel)] || null;
3007        }
3008
3009        function autoFillMissing(sel) {
3010          let changed = false;
3011          for (const a of attrOrder) {
3012            if (sel[a]) continue;
3013            const possible = [];
3014            const seen = new Set();
3015            variants.forEach(v => {
3016              let ok = true;
3017              for (const a2 of attrOrder) {
3018                if (a2 === a) continue;
3019                if (sel[a2] && v.attrs[a2] !== sel[a2]) {
3020                  ok = false;
3021                  break;
3022                }
3023              }
3024              if (ok) {
3025                const val = v.attrs[a];
3026                if (!seen.has(val)) {
3027                  seen.add(val);
3028                  possible.push(val);
3029                }
3030              }
3031            });
3032            if (possible.length === 1) {
3033              const val = possible[0];
3034              const input = document.querySelector(`.v-group[data-attr="${CSS.escape(a)}"] input[type=radio][value="${CSS.escape(val)}"]`);
3035              if (input && !input.checked) {
3036                input.checked = true;
3037                sel[a] = val;
3038                changed = true;
3039              }
3040            }
3041          }
3042          return changed;
3043        }
3044
3045        function rupiah(n) {
3046          n = parseInt(n || 0, 10) || 0;
3047          return 'Rp ' + n.toString().replace(/\B(?=(\d{3})+(?!\d))/g, '.');
3048        }
3049
3050        function focusGalleryByUrl(imageUrl) {
3051          const isMobile = window.matchMedia && window.matchMedia('(max-width: 640px)').matches;
3052          if (isMobile) {
3053            _0xau1v(imageUrl);
3054            return;
3055          }
3056          const gallery = document.getElementById('pd-thumb-gallery');
3057          const targetName = _0x8s9t(imageUrl);
3058          if (gallery) {
3059            const btns = Array.from(gallery.querySelectorAll('.pd-thumb-btn'));
3060            const btn = btns.find(b => _0x8s9t(b.getAttribute('data-full') || '') === targetName);
3061            if (btn) {
3062              btn.click();
3063              return;
3064            }
3065          }
3066          _0xau1v(imageUrl);
3067        }
3068
3069        function formatStockLabel(n) {
3070          n = parseInt(n || 0, 10) || 0;
3071          return (n > 10) ? '10+' : String(n)
3072        }
3073
3074        function updateBranchPopover(v) {
3075          try {
3076            if (!v) return;
3077            const a = document.getElementById('sp-qty-meg'),
3078              b = document.getElementById('sp-qty-mdf'),
3079              c = document.getElementById('sp-qty-bda');
3080            if (a) a.textContent = formatStockLabel(Math.max(0, v.smm | 0));
3081            if (b) b.textContent = formatStockLabel(Math.max(0, v.smf | 0));
3082            if (c) c.textContent = formatStockLabel(Math.max(0, v.sba | 0))
3083          } catch (_) {}
3084        }
3085
3086        function calcVoucherDisc(type, value, price, maxDisc) {
3087          if (type === 'PERCENTAGE') {
3088            let d = (price * value) / 100;
3089            if (maxDisc > 0 && d > maxDisc) d = maxDisc;
3090            return Math.round(d)
3091          }
3092          return Math.round(value)
3093        }
3094
3095        function applyVariant(v, focusImage = true) {
3096          const elCur = document.getElementById('pd-price-current');
3097          const elOri = document.getElementById('pd-price-original');
3098          const elDisc = document.getElementById('pd-discount-badge');
3099          const elSku = document.getElementById('pd-sku');
3100          const elStock = document.getElementById('pd-stock-badge');
3101          const elQty = document.getElementById('qty');
3102          const btnAdd = document.getElementById('btn-add-cart');
3103          const btnBuy = document.getElementById('btn-buy');
3104          const hidVar = document.getElementById('pd-variant-id');
3105          const mfCart = document.getElementById('mf-cart');
3106          const mfBuy = document.getElementById('mf-buy');
3107          const fab = document.getElementById('pd-mobile-fab');
3108          if (hidVar) hidVar.value = v ? v.id : 0;
3109          if (elCur) elCur.textContent = rupiah(v ? v.final : 0);
3110          if (elSku && v && v.sku) elSku.textContent = v.sku;
3111          if (v && v.ori > v.final) {
3112            if (elOri) {
3113              elOri.style.display = 'inline';
3114              elOri.textContent = rupiah(v.ori);
3115            }
3116            if (elDisc) {
3117              elDisc.style.display = 'inline';
3118              elDisc.textContent = '-' + (v.disc || 0) + '%';
3119            }
3120          } else {
3121            if (elOri) elOri.style.display = 'none';
3122            if (elDisc) elDisc.style.display = 'none';
3123          }
3124          const stock = v ? (parseInt(v.stock || 0, 10) || 0) : 0;
3125          let effectiveStock = stock;
3126          let isActivePreorder = false;
3127          if (window.isPreorderProduct && v && 'preorder_remaining' in v && v.preorder_remaining !== null) {
3128            effectiveStock = parseInt(v.preorder_remaining, 10);
3129            if (isNaN(effectiveStock)) effectiveStock = 0;
3130            isActivePreorder = true;
3131          }
3132          if (elStock) {
3133            elStock.classList.remove('in', 'out');
3134            if (effectiveStock > 0) {
3135              elStock.classList.add('in');
3136              elStock.textContent = IS_DIGITAL ? 'Tersedia' : (isActivePreorder ? 'Sisa Slot: ' + effectiveStock : 'Stok: ' + formatStockLabel(effectiveStock));
3137            } else {
3138              elStock.classList.add('out');
3139              elStock.textContent = 'Habis';
3140            }
3141          }
3142          if (elQty) {
3143            elQty.max = String(effectiveStock > 0 ? effectiveStock : 0);
3144            if (effectiveStock <= 0) {
3145              elQty.value = '0';
3146              elQty.disabled = true;
3147            } else {
3148              if (parseInt(elQty.value || '1', 10) < 1) elQty.value = '1';
3149              elQty.disabled = false;
3150            }
3151          }
3152          const shouldDisable = !(v && effectiveStock > 0);
3153          const updateButtons = () => {
3154            const btnAddCart = document.getElementById('btn-add-cart');
3155            const btnBuyNow = document.getElementById('btn-buy');
3156            const mobileCart = document.getElementById('mf-cart');
3157            const mobileBuy = document.getElementById('mf-buy');
3158            [btnAddCart, btnBuyNow, mobileCart, mobileBuy].forEach(btn => {
3159              if (!btn) return;
3160              if (shouldDisable) {
3161                btn.disabled = true;
3162                btn.setAttribute('disabled', 'disabled');
3163                btn.classList.add('stock-disabled');
3164                btn.setAttribute('data-stock-blocked', 'true');
3165                btn.setAttribute('data-stock-reason', window.isPreorderProduct ? 'Pre-order habis' : 'Stok habis');
3166              } else {
3167                btn.disabled = false;
3168                btn.removeAttribute('disabled');
3169                btn.classList.remove('stock-disabled');
3170                btn.removeAttribute('data-stock-blocked');
3171                btn.removeAttribute('data-stock-reason');
3172              }
3173            });
3174          };
3175          updateButtons();
3176          setTimeout(updateButtons, 10);
3177          setTimeout(updateButtons, 50);
3178          setTimeout(updateButtons, 100);
3179          if (mfBuy && v) {
3180            const voucherBtn = document.getElementById('btn-buy-voucher');
3181            const voucherCode = fab ? fab.dataset.voucherCode : '';
3182            let voucherDiscount = 0;
3183            if (voucherBtn && voucherCode) {
3184              const vType = voucherBtn.dataset.voucherType;
3185              const vValue = parseFloat(voucherBtn.dataset.voucherValue) || 0;
3186              const vMax = parseFloat(voucherBtn.dataset.voucherMax) || 0;
3187              const finalPrice = v.final || 0;
3188              if (vType && vValue > 0) {
3189                voucherDiscount = calcVoucherDisc(vType, vValue, finalPrice, vMax);
3190                if (fab) fab.dataset.voucherValue = voucherDiscount.toString();
3191              }
3192            }
3193            const finalPrice = v.final || 0;
3194            const textEl = mfBuy.querySelector('.mf-buy-text');
3195            const priceEl = mfBuy.querySelector('.mf-buy-price');
3196            if (effectiveStock > 0) {
3197              if (IS_PREORDER) {
3198                if (textEl) textEl.textContent = 'Pre Order Sekarang';
3199                if (priceEl) priceEl.textContent = rupiah(finalPrice);
3200              } else if (voucherCode && voucherDiscount > 0) {
3201                if (textEl) textEl.textContent = 'Beli dengan Voucher';
3202                if (priceEl) priceEl.textContent = rupiah(Math.max(0, finalPrice - voucherDiscount));
3203              } else {
3204                if (textEl) textEl.textContent = 'Beli Sekarang';
3205                if (priceEl) priceEl.textContent = rupiah(finalPrice);
3206              }
3207            } else {
3208              if (textEl) textEl.textContent = 'Stok Habis';
3209              if (priceEl) priceEl.textContent = rupiah(finalPrice);
3210            }
3211          }
3212          const isMobile = window.initMobile ?? 0;
3213          if (window.instSetBasePrice) window.instSetBasePrice(v ? (isMobile == '1' ? v.ori : v.final) : 0);
3214          if (window.updateSoldBySku) window.updateSoldBySku(v.sku);
3215          updateBranchPopover(v);
3216          if (v && v.image_url && focusImage) focusGalleryByUrl(v.image_url);
3217          if (v) {
3218            window.dispatchEvent(new CustomEvent('pd-variant-changed', {
3219              detail: {
3220                price: v.final,
3221                originalPrice: v.ori,
3222                discount: v.disc,
3223                stock: effectiveStock,
3224                sku: v.sku,
3225                variant_id: v.id
3226              }
3227            }));
3228            const encodedHash = encodeVariantHash(v.id);
3229            if (encodedHash && window.history && window.history.replaceState) {
3230              const newHash = '#v=' + encodedHash;
3231              const newUrl = window.location.pathname + window.location.search + newHash;
3232              window.history.replaceState(null, '', newUrl);
3233            }
3234          }
3235        }
3236        let sel = readSelection();
3237        if (autoFillMissing(sel)) sel = readSelection();
3238        let v = findVariant(sel);
3239        if (!v) {
3240          const candidates = variants.filter(variant => {
3241            return attrOrder.every(a => {
3242              if (!sel[a]) return true;
3243              return variant.attrs[a] === sel[a];
3244            });
3245          });
3246          if (candidates.length >= 1) {
3247            v = candidates[0];
3248            attrOrder.forEach(a => sel[a] = v.attrs[a]);
3249            attrOrder.forEach(a => {
3250              const val = sel[a];
3251              const input = document.querySelector(`.v-group[data-attr="${CSS.escape(a)}"] input[type=radio][value="${CSS.escape(val)}"]`);
3252              if (input) input.checked = true;
3253            });
3254          }
3255        }
3256        const initSel = readSelection();
3257        const initVar = findVariant(initSel) || variants[0] || null;
3258        if (document.readyState === 'loading') {
3259          document.addEventListener('DOMContentLoaded', () => applyVariant(initVar, false));
3260        } else {
3261          applyVariant(initVar, false);
3262        }
3263
3264        function updateSummary(sel) {
3265          Object.entries(sel).forEach(([a, val]) => {
3266            const el = document.getElementById('vs-' + a);
3267            if (el) el.textContent = val || '-'
3268          })
3269        }
3270
3271        function refreshOptions(sel) {
3272          attrOrder.forEach(a => {
3273            const group = document.querySelector(`.v-group[data-attr="${CSS.escape(a)}"]`);
3274            if (!group) return;
3275            const chips = group.querySelectorAll('.v-chip');
3276            chips.forEach(ch => {
3277              const val = ch.getAttribute('data-value');
3278              const possible = variants.some(v => {
3279                if (v.attrs[a] !== val) return false;
3280                for (const a2 of attrOrder) {
3281                  if (a2 === a) continue;
3282                  if (sel[a2] && v.attrs[a2] !== sel[a2]) return false;
3283                }
3284                return true;
3285              });
3286              const input = ch.querySelector('input[type=radio]');
3287              const disabled = !possible;
3288              if (input) input.disabled = disabled;
3289              ch.classList.toggle('disabled', disabled);
3290              let candidateVariant = null;
3291              if (possible) {
3292                candidateVariant = variants.find(v => {
3293                  if (v.attrs[a] !== val) return false;
3294                  for (const a2 of attrOrder) {
3295                    if (a2 === a) continue;
3296                    if (sel[a2] && v.attrs[a2] !== sel[a2]) return false;
3297                  }
3298                  return true;
3299                });
3300              }
3301              const outOfStock = candidateVariant ? (window.isPreorderProduct && candidateVariant.preorder_remaining !== null ? candidateVariant.preorder_remaining <= 0 : candidateVariant.stock <= 0) : false;
3302              ch.classList.toggle('out', !disabled && outOfStock);
3303              const badge = ch.querySelector('.chip-badge');
3304              if (badge) badge.hidden = !(candidateVariant && outOfStock);
3305            });
3306            group.querySelectorAll('.v-chip').forEach(ch => {
3307              const input = ch.querySelector('input[type=radio]');
3308              ch.classList.toggle('selected', input && input.checked);
3309            });
3310          });
3311        }
3312        updateSummary(sel);
3313        refreshOptions(sel);
3314        document.querySelectorAll('.v-chip').forEach(chip => {
3315          const input = chip.querySelector('input[type=radio]');
3316          if (input && input.checked) {
3317            chip.classList.add('selected');
3318          }
3319        });
3320        const container = document.getElementById('pd-variants');
3321        container && container.addEventListener('change', function(ev) {
3322          const radio = ev.target.closest('input[type=radio]');
3323          if (!radio) return;
3324          sel = readSelection();
3325          if (autoFillMissing(sel)) sel = readSelection();
3326          const chosen = findVariant(sel);
3327          applyVariant(chosen || null, true);
3328          updateSummary(sel);
3329          refreshOptions(sel);
3330        });
3331        window.applyVariant = applyVariant;
3332      })();
3333      (function cleanBrokenDescImages() {
3334        const containers = [
3335          document.querySelector('.pd-full-desc-body'),
3336          document.querySelector('.pd-short-desc')
3337        ].filter(Boolean);
3338        containers.forEach(root => {
3339          const imgs = root.querySelectorAll('img');
3340          imgs.forEach(img => {
3341            if (img.complete && img.naturalWidth === 0) {
3342              img.remove();
3343              return;
3344            }
3345            img.addEventListener('error', () => {
3346              img.remove();
3347            }, {
3348              once: true
3349            });
3350          });
3351        });
3352      })();
3353      /* ====== Scroll To Top ====== */
3354      (function _0xi25j() {
3355        const a = document.getElementById('pd-scroll-top');
3356        if (!a) return;
3357
3358        function b() {
3359          if (window.matchMedia('(max-width:640px)').matches) {
3360            const d = document.querySelector('.bottom-nav'),
3361              e = document.querySelector('.pd-mobile-fab');
3362            if (!d && !e) {
3363              setTimeout(b, 100);
3364              return
3365            }
3366            const f = d && window.getComputedStyle(d).display !== 'none' && window.getComputedStyle(d).visibility !== 'hidden',
3367              g = e && window.getComputedStyle(e).display !== 'none' && window.getComputedStyle(e).visibility !== 'hidden';
3368            let h;
3369            if (f && g) {
3370              h = 'calc(68px + 54px + env(safe-area-inset-bottom))'
3371            } else if (g) {
3372              h = 'calc(68px + 8px + env(safe-area-inset-bottom))'
3373            } else if (f) {
3374              h = 'calc(60px + env(safe-area-inset-bottom))'
3375            } else {
3376              h = 'calc(20px + env(safe-area-inset-bottom))'
3377            }
3378            a.style.setProperty('--scroll-top-bottom', h)
3379          } else {
3380            a.style.removeProperty('--scroll-top-bottom')
3381          }
3382        }
3383
3384        function c() {
3385          const d = window.pageYOffset || document.documentElement.scrollTop || 0,
3386            e = d > 300;
3387          a.classList.toggle('visible', e);
3388          a.setAttribute('aria-hidden', e ? 'false' : 'true');
3389          b()
3390        }
3391        window.addEventListener('scroll', c, {
3392          passive: !0
3393        });
3394        window.addEventListener('resize', b, {
3395          passive: !0
3396        });
3397        setTimeout(b, 100);
3398        c();
3399        a.addEventListener('click', function() {
3400          window.scrollTo({
3401            top: 0,
3402            behavior: 'smooth'
3403          })
3404        })
3405      })();
3406      /* Format stok 10+ */
3407      function _0xk67l(n) {
3408        n = parseInt(n || 0, 10) || 0;
3409        return n > 10 ? '10+' : String(n)
3410      }
3411      /* Toggle popover stok per cabang */
3412      (function _0xm89n() {
3413        const a = document.getElementById('pd-stock-info-btn'),
3414          b = document.getElementById('pd-stock-popover'),
3415          c = document.getElementById('pd-stock-popover-close');
3416        if (!a || !b) return;
3417
3418        function d() {
3419          if (window.matchMedia('(min-width: 641px)').matches) {
3420            const e = document.getElementById('pd-stock-badge');
3421            if (!e) return;
3422            const f = e.getBoundingClientRect(),
3423              g = window.pageXOffset || document.documentElement.scrollLeft || 0,
3424              h = window.pageYOffset || document.documentElement.scrollTop || 0;
3425            b.style.left = (f.left + g - 10) + 'px';
3426            b.style.top = (f.bottom + h + 10) + 'px'
3427          } else {
3428            b.style.left = '';
3429            b.style.top = ''
3430          }
3431        }
3432
3433        function e() {
3434          d();
3435          b.classList.add('show');
3436          a.setAttribute('aria-expanded', 'true');
3437          b.setAttribute('aria-hidden', 'false');
3438          document.addEventListener('click', g, {
3439            capture: true
3440          });
3441          window.addEventListener('resize', d, {
3442            passive: true
3443          });
3444          window.addEventListener('scroll', d, {
3445            passive: true
3446          })
3447        }
3448
3449        function f() {
3450          b.classList.remove('show');
3451          a.setAttribute('aria-expanded', 'false');
3452          b.setAttribute('aria-hidden', 'true');
3453          document.removeEventListener('click', g, {
3454            capture: true
3455          });
3456          window.removeEventListener('resize', d);
3457          window.removeEventListener('scroll', d)
3458        }
3459
3460        function g(h) {
3461          if (b.contains(h.target) || a.contains(h.target)) return;
3462          f()
3463        }
3464        a.addEventListener('click', function(h) {
3465          h.preventDefault();
3466          b.classList.contains('show') ? f() : e()
3467        });
3468        if (c) c.addEventListener('click', f)
3469      })();
3470      /* ===== Share Product Modal ===== */
3471      (function() {
3472        const a = document.getElementById('pd-share-btn'),
3473          z = document.getElementById('mf-share'),
3474          b = document.getElementById('pd-share-modal-overlay'),
3475          c = document.getElementById('pd-share-close'),
3476          d = document.getElementById('pd-share-copy-url-btn'),
3477          e = document.getElementById('pd-share-url-input');
3478        if ((!a && !z) || !b) return;
3479        const f = "https://unidosporelautismo.org/",
3480          g = "Lenovo Legion Go 8ASP2 - 83N0000RID /AMD Ryzen Z2 Extreme/32GB/1TB SSD/AMD Radeon Graphics/8.8\" WUXGA OLED Touch/Win 11 Home/Eclipse Black/3Y",
3481          h = "Rp 20.789.000";
3482        const discountPercent = 1;
3483        let i = '';
3484        if (discountPercent > 0) {
3485          i = `🔥 Lagi Promo Nih! Diskon ${discountPercent}%\n\n✨ ${g}\n💰 Cuma ${h} aja!\n\n🛒 Buruan cek sebelum kehabisan!\n👉 `
3486        } else {
3487          i = `✨ Ada barang bagus nih!\n\n📦 ${g}\n💸 Harga: ${h}\n\n🛍️ Yuk, langsung cek!\n👉 `
3488        }
3489
3490        function j() {
3491          b.classList.add('show');
3492          document.body.style.overflow = 'hidden'
3493        }
3494
3495        function k() {
3496          b.classList.remove('show');
3497          document.body.style.overflow = ''
3498        }
3499        if (a) a.addEventListener('click', j);
3500        if (z) z.addEventListener('click', j);
3501        if (c) c.addEventListener('click', k);
3502        b.addEventListener('click', function(l) {
3503          if (l.target === b) k()
3504        });
3505        document.addEventListener('keydown', function(l) {
3506          if (l.key === 'Escape' && b.classList.contains('show')) k()
3507        });
3508        b.addEventListener('click', function(l) {
3509          const m = l.target.closest('[data-share]');
3510          if (!m) return;
3511          const n = m.getAttribute('data-share'),
3512            o = encodeURIComponent(f),
3513            p = encodeURIComponent(i),
3514            q = encodeURIComponent(g);
3515          let r = '';
3516          switch (n) {
3517            case 'whatsapp':
3518              r = `https://wa.me/?text=${p}${o}`;
3519              break;
3520            case 'facebook':
3521              r = `https://www.facebook.com/sharer/sharer.php?u=${o}`;
3522              break;
3523            case 'twitter':
3524              r = `https://twitter.com/intent/tweet?text=${p}${o}`;
3525              break;
3526            case 'telegram':
3527              r = `https://t.me/share/url?url=${o}&text=${p}`;
3528              break;
3529            case 'email':
3530              r = `mailto:?subject=${encodeURIComponent('🔥 Cek Produk Keren Ini!')}&body=${p}${o}`;
3531              window.location.href = r;
3532              k();
3533              return;
3534            case 'copy':
3535              s();
3536              return;
3537            case 'pdf':
3538              const ps = document.querySelector('.product-single');
3539              if (ps) {
3540                ps.setAttribute('data-print-date', new Date().toLocaleDateString('id-ID', {
3541                  year: 'numeric',
3542                  month: 'long',
3543                  day: 'numeric'
3544                }))
3545              }
3546              k();
3547              setTimeout(function() {
3548                window.print();
3549                try {
3550                  if (window.ga4Ecomm && window.ga4Ecomm.trackEvent) window.ga4Ecomm.trackEvent('share', {
3551                    method: 'pdf_export',
3552                    content_type: 'product',
3553                    item_id: "1S83N0880RID"
3554                  })
3555                } catch (_) {}
3556              }, 300);
3557              return
3558          }
3559          if (r) {
3560            window.open(r, '_blank', 'noopener,noreferrer');
3561            try {
3562              if (window.ga4Ecomm && window.ga4Ecomm.trackEvent) window.ga4Ecomm.trackEvent('share', {
3563                method: n,
3564                content_type: 'product',
3565                item_id: "1S83N0880RID"
3566              })
3567            } catch (_) {}
3568          }
3569        });
3570
3571        function s() {
3572          if (!e) return;
3573          e.select();
3574          e.setSelectionRange(0, 99999);
3575          try {
3576            if (navigator.clipboard && navigator.clipboard.writeText) {
3577              navigator.clipboard.writeText(f).then(function() {
3578                t()
3579              }).catch(function() {
3580                document.execCommand('copy');
3581                t()
3582              })
3583            } else {
3584              document.execCommand('copy');
3585              t()
3586            }
3587          } catch (u) {
3588            console.error('Failed to copy:', u)
3589          }
3590        }
3591
3592        function t() {
3593          if (!d) return;
3594          const v = d.innerHTML;
3595          d.classList.add('copied');
3596          d.innerHTML = ' < svg viewBox = "0 0 24 24"
3597          width = "16"
3598          height = "16" > < path fill = "currentColor"
3599          d = "M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z" / > < /svg> < span class = "pd-share-copy-text" > Tersalin! < /span>';
3600          if (window.showToast) showToast({
3601            type: 'success',
3602            title: '✨ Link Tersalin!',
3603            message: 'Link produk berhasil disalin. Yuk bagikan ke teman!',
3604            duration: 3000
3605          });
3606          setTimeout(function() {
3607            d.classList.remove('copied');
3608            d.innerHTML = v
3609          }, 2000)
3610        }
3611        if (d) d.addEventListener('click', s);
3612        if (navigator.share) {
3613          const shareHandler = function(w) {
3614            w.preventDefault();
3615            navigator.share({
3616              title: g,
3617              text: i + f,
3618              url: f
3619            }).catch(function(x) {
3620              console.log('Native share cancelled or failed:', x)
3621            })
3622          };
3623          if (a) a.addEventListener('dblclick', shareHandler);
3624          if (z) z.addEventListener('dblclick', shareHandler)
3625        }
3626      })();
3627      /* ===== Embedding variants (server → client) ===== */
3628      (function() {
3629        window.__PD_VARIANTS_WITH_BRANCH__ = [];
3630      })();
3631      /* ===== Helper: update angka popover ===== */
3632      function updateStockPopoverForVariant(v) {
3633        try {
3634          const elMeg = document.getElementById('sp-qty-meg');
3635          const elMdf = document.getElementById('sp-qty-mdf');
3636          const elBda = document.getElementById('sp-qty-bda');
3637          if (typeof v?.smm === 'number' && elMeg) elMeg.textContent = formatStockLabel(Math.max(0, v.smm | 0));
3638          if (typeof v?.smf === 'number' && elMdf) elMdf.textContent = formatStockLabel(Math.max(0, v.smf | 0));
3639          if (typeof v?.sba === 'number' && elBda) elBda.textContent = formatStockLabel(Math.max(0, v.sba | 0));
3640        } catch (_) {}
3641      }
3642      /* ===== applyVariant: 10+ dan update popover ===== */
3643      (function patchApplyVariant() {
3644        if (typeof applyVariant !== 'function') return;
3645        const original = applyVariant;
3646        window.applyVariant = function(v) {
3647          original(v);
3648          try {
3649            const elStock = document.getElementById('pd-stock-badge');
3650            if (elStock) {
3651              let txt = elStock.textContent || '';
3652              let m = txt.match(/\d+/);
3653              if (m) {
3654                const n = parseInt(m[0] || '0', 10) || 0;
3655                elStock.textContent = (n > 0) ? ('Stok: ' + formatStockLabel(n)) : 'Habis';
3656              }
3657            }
3658          } catch (_) {}
3659          if (window.__PD_VARIANTS_WITH_BRANCH__ && v) {
3660            const vv = window.__PD_VARIANTS_WITH_BRANCH__.find(x => x.id === v.id) || v;
3661            updateStockPopoverForVariant(vv)
3662          }
3663        };
3664      })();
3665      (function initCurrentVariantBranch() {
3666        const list = window.__PD_VARIANTS_WITH_BRANCH__ || [];
3667        if (!list.length) return;
3668        const hid = document.getElementById('pd-variant-id');
3669        const vid = hid ? parseInt(hid.value || '0', 10) : 0;
3670        const current = list.find(x => x.id === vid) || list[0] || null;
3671        if (current) updateStockPopoverForVariant(current);
3672      })();
3673      (function() {
3674        if (!window.ga4Ecomm) return;
3675        const catSegs = ["Komputer & Laptop", "Laptop", "Gaming"];
3676        window.ga4Ecomm.viewItem({
3677          currency: 'IDR',
3678          value: 20789000,
3679          item_id: "1S83N0880RID",
3680          item_name: "Lenovo Legion Go 8ASP2 - 83N0000RID /AMD Ryzen Z2 Extreme/32GB/1TB SSD/AMD Radeon Graphics/8.8\" WUXGA OLED Touch/Win 11 Home/Eclipse Black/3Y",
3681          item_brand: "Lenovo ",
3682          item_category: catSegs && catSegs.length ? catSegs.join(' / ') : ''
3683        });
3684      })();
3685      (function patchApplyVariantFocus() {
3686        if (typeof applyVariant !== 'function') return;
3687        const original = applyVariant;
3688        window.applyVariant = function(v, focusImage = true) {
3689          original(v, focusImage);
3690          if (focusImage && v && v.image_url) {
3691            _0xau1v(v.image_url);
3692          }
3693        };
3694      })();
3695      (function() {
3696        var soldMap = [];
3697        var soldTotalLabel = "Terjual 2";
3698
3699        function formatSoldLabel(qty) {
3700          if (qty >= 1000000) {
3701            var v = Math.floor((qty / 100000)) / 10;
3702            return 'Terjual ' + (String(v).replace('.', ',')) + 'jt+';
3703          }
3704          if (qty >= 1000) {
3705            var v2 = Math.floor((qty / 100)) / 10;
3706            return 'Terjual ' + (String(v2).replace('.', ',')) + 'rb+';
3707          }
3708          if (qty >= 100) {
3709            var v2 = Math.floor((qty / 100)) * 100;
3710            return 'Terjual ' + (String(v2).replace('.', ',')) + '+';
3711          }
3712          if (qty >= 10) {
3713            var v2 = Math.floor((qty / 10)) * 10;
3714            return 'Terjual ' + (String(v2).replace('.', ',')) + '+';
3715          }
3716          return 'Terjual ' + (qty.toLocaleString('id-ID'));
3717        }
3718
3719        function updateSoldLabel(labelText) {
3720          var el = document.querySelector('#pd-sold-inline, [data-role="sold-chip"]');
3721          if (el) el.textContent = labelText;
3722        }
3723        window.updateSoldBySku = function(sku) {
3724          if (!sku || typeof sku !== 'string') {
3725            updateSoldLabel(soldTotalLabel);
3726            return;
3727          }
3728          var qty = soldMap[sku] || 0;
3729          updateSoldLabel(formatSoldLabel(qty));
3730        };
3731        updateSoldLabel(soldTotalLabel);
3732      })();
3733      (function() {
3734        const h = document.getElementById('pd-sticky-header');
3735        if (!h) return;
3736        const p = document.getElementById('pd-price-anchor');
3737        const ac = document.getElementById('pd-sticky-add-cart');
3738        const by = document.getElementById('pd-sticky-buy');
3739        let lt = window.scrollY;
3740        let tk = false;
3741
3742        function u() {
3743          if (!p) return;
3744          const r = p.getBoundingClientRect();
3745          const s = window.scrollY;
3746          if (r.top < 0) {
3747            h.classList.add('visible')
3748          } else {
3749            h.classList.remove('visible')
3750          }
3751          lt = s;
3752          tk = false
3753        }
3754
3755        function rt() {
3756          if (!tk) {
3757            window.requestAnimationFrame(u);
3758            tk = true
3759          }
3760        }
3761        window.addEventListener('scroll', rt, {
3762          passive: true
3763        });
3764        u();
3765
3766        function sy() {
3767          const ma = document.getElementById('btn-add-cart');
3768          const mb = document.getElementById('btn-buy');
3769          if (ac && ma) {
3770            ac.disabled = ma.disabled
3771          }
3772          if (by && mb) {
3773            by.disabled = mb.disabled
3774          }
3775        }
3776        sy();
3777        const ob = new MutationObserver(sy);
3778        const ma = document.getElementById('btn-add-cart');
3779        const mb = document.getElementById('btn-buy');
3780        if (ma) ob.observe(ma, {
3781          attributes: true,
3782          attributeFilter: ['disabled']
3783        });
3784        if (mb) ob.observe(mb, {
3785          attributes: true,
3786          attributeFilter: ['disabled']
3787        });
3788        const ss = document.getElementById('pd-sticky-share-btn');
3789        const ms = document.getElementById('pd-share-btn');
3790        if (ss && ms) {
3791          ss.addEventListener('click', function(e) {
3792            e.preventDefault();
3793            ms.click()
3794          })
3795        }
3796        if (ac) {
3797          ac.addEventListener('click', function(e) {
3798            e.preventDefault();
3799            if (ac.disabled) return;
3800            const m = document.getElementById('btn-add-cart');
3801            if (m && !m.disabled) {
3802              m.click()
3803            }
3804          })
3805        }
3806        if (by) {
3807          by.addEventListener('click', function(e) {
3808            e.preventDefault();
3809            if (by.disabled) return;
3810            const m = document.getElementById('btn-buy');
3811            if (m && !m.disabled && window.buyNow) {
3812              window.buyNow(e)
3813            }
3814          })
3815        }
3816
3817        function getChatProductData() {
3818          const varInput = document.getElementById('pd-variant-id');
3819          const variantId = varInput ? parseInt(varInput.value || '0', 10) : 0;
3820          const variantSummary = getVariantSummaryText();
3821          const priceEl = document.getElementById('pd-price-current');
3822          const currentPrice = priceEl ? priceEl.textContent.trim() : 'Rp 20.789.000';
3823          const pd = {
3824            id: 325,
3825            name: "Lenovo Legion Go 8ASP2 - 83N0000RID \/AMD Ryzen Z2 Extreme\/32GB\/1TB SSD\/AMD Radeon Graphics\/8.8\" WUXGA OLED Touch\/Win 11 Home\/Ecl
3825ipse Black\/3Y",
3826            price: currentPrice,
3827            image: "\/uploads\/products\/lenovo-legion-go-8asp2-83n0000rid.webp",
3828            url: window.location.href
3829          };
3830          if (variantId > 0) {
3831            pd.variant_id = variantId
3832          }
3833          if (variantSummary) {
3834            pd.variant_summary = variantSummary
3835          }
3836          return pd
3837        }
3838        const ch = document.getElementById('pd-sticky-chat');
3839        if (ch) {
3840          ch.addEventListener('click', function(e) {
3841            e.preventDefault();
3842            if (!window.plazaChat) {
3843              console.warn('Chat widget not loaded');
3844              return
3845            }
3846            window.plazaChat.attachProduct(getChatProductData());
3847            window.plazaChat.openWidget()
3848          })
3849        }
3850        const dch = document.getElementById('btn-chat-icon');
3851        if (dch) {
3852          dch.addEventListener('click', function(e) {
3853            e.preventDefault();
3854            if (!window.plazaChat) {
3855              console.warn('Chat widget not loaded');
3856              return
3857            }
3858            window.plazaChat.attachProduct(getChatProductData());
3859            window.plazaChat.openWidget()
3860          })
3861        }
3862        const mch = document.getElementById('mf-chat');
3863        if (mch) {
3864          mch.addEventListener('click', function(e) {
3865            e.preventDefault();
3866            if (!window.plazaChat) {
3867              console.warn('Chat widget not loaded');
3868              return
3869            }
3870            window.plazaChat.attachProduct(getChatProductData());
3871            window.plazaChat.openWidget()
3872          })
3873        }
3874        window.addEventListener('pd-variant-changed', function(e) {
3875          const d = e.detail || {};
3876          if (d.price !== undefined) {
3877            const sp = document.getElementById('pd-sticky-price');
3878            if (sp) {
3879              sp.textContent = formatRupiah(d.price)
3880            }
3881          }
3882          if (d.originalPrice !== undefined && d.originalPrice > d.price) {
3883            const so = document.getElementById('pd-sticky-price-original');
3884            if (so) {
3885              so.textContent = formatRupiah(d.originalPrice);
3886              so.style.display = ''
3887            }
3888          } else {
3889            const so = document.getElementById('pd-sticky-price-original');
3890            if (so) {
3891              so.style.display = 'none'
3892            }
3893          }
3894          if (d.discount !== undefined && d.discount > 0) {
3895            const sd = document.getElementById('pd-sticky-discount');
3896            if (sd) {
3897              sd.textContent = '-' + d.discount + '%';
3898              sd.style.display = ''
3899            }
3900          } else {
3901            const sd = document.getElementById('pd-sticky-discount');
3902            if (sd) {
3903              sd.style.display = 'none'
3904            }
3905          }
3906          const hs = d.stock > 0;
3907          if (ac) {
3908            ac.disabled = !hs
3909          }
3910          if (by) {
3911            by.disabled = !hs
3912          }
3913        });
3914
3915        function formatRupiah(n) {
3916          return 'Rp' + Math.floor(n).toLocaleString('id-ID')
3917        }
3918      })();
3919      (function() {
3920        const t = document.getElementById('pdv-toggle-btn');
3921        const v = document.getElementById('pd-voucher-section');
3922        if (t && v) {
3923          const h = v.querySelectorAll('.pdv-min-hidden');
3924          const n = h.length;
3925          t.addEventListener('click', function() {
3926            const e = t.classList.toggle('expanded');
3927            h.forEach(function(i) {
3928              if (e) {
3929                i.classList.remove('pdv-min-hidden')
3930              } else {
3931                i.classList.add('pdv-min-hidden')
3932              }
3933            });
3934            t.textContent = e ? 'Tutup' : '+' + n
3935          })
3936        }
3937        const m = document.getElementById('voucher-detail-modal');
3938        const mc = document.getElementById('voucher-modal-close');
3939        const ma = document.getElementById('voucher-modal-cancel');
3940        const mcp = document.getElementById('voucher-modal-copy');
3941        if (m) {
3942          const bb = document.querySelectorAll('.pdv-badge-btn');
3943          bb.forEach(function(btn) {
3944            btn.addEventListener('click', function() {
3945              if (btn.disabled) return;
3946              const c = btn.getAttribute('data-voucher-code');
3947              const nm = btn.getAttribute('data-voucher-name');
3948              const dl = btn.getAttribute('data-discount-label');
3949              const bl = btn.getAttribute('data-badge-label');
3950              const mp = parseInt(btn.getAttribute('data-min-purchase'));
3951              const md = parseInt(btn.getAttribute('data-max-discount'));
3952              const vu = btn.getAttribute('data-valid-until');
3953              document.getElementById('voucher-modal-badge').innerHTML = ' < span class = "vmb-value" > ' + dl + ' < /span> < span class = "vmb-label" > ' + bl + ' < /span>';
3954              document.getElementById('voucher-modal-code').textContent = c;
3955              document.getElementById('voucher-modal-name').textContent = nm;
3956              const me = document.getElementById('voucher-modal-min');
3957              if (mp > 0) {
3958                me.style.display = '';
3959                document.getElementById('voucher-modal-min-val').textContent = fr(mp)
3960              } else {
3961                me.style.display = 'none'
3962              }
3963              const xe = document.getElementById('voucher-modal-max');
3964              if (md > 0) {
3965                xe.style.display = '';
3966                document.getElementById('voucher-modal-max-val').textContent = fr(md)
3967              } else {
3968                xe.style.display = 'none'
3969              }
3970              if (vu) {
3971                const d = new Date(vu);
3972                const ft = d.toLocaleDateString('id-ID', {
3973                  day: 'numeric',
3974                  month: 'long',
3975                  year: 'numeric',
3976                  hour: '2-digit',
3977                  minute: '2-digit'
3978                });
3979                document.getElementById('voucher-modal-valid-val').textContent = ft
3980              }
3981              mcp.setAttribute('data-code', c);
3982              m.classList.add('show');
3983              document.body.style.overflow = 'hidden'
3984            })
3985          });
3986
3987          function cm() {
3988            m.classList.remove('show');
3989            document.body.style.overflow = ''
3990          }
3991          if (mc) mc.addEventListener('click', cm);
3992          if (ma) ma.addEventListener('click', cm);
3993          m.addEventListener('click', function(e) {
3994            if (e.target === m) cm()
3995          });
3996          if (mcp) {
3997            mcp.addEventListener('click', function() {
3998              const c = mcp.getAttribute('data-code');
3999              if (!c) return;
4000              if (navigator.clipboard && navigator.clipboard.writeText) {
4001                navigator.clipboard.writeText(c).then(function() {
4002                  smc()
4003                }).catch(function(err) {
4004                  fc(c)
4005                })
4006              } else {
4007                fc(c)
4008              }
4009            })
4010          }
4011        }
4012        const b = document.querySelectorAll('.pdv-min-copy');
4013        b.forEach(function(btn) {
4014          btn.addEventListener('click', function() {
4015            if (btn.disabled) return;
4016            const code = btn.getAttribute('data-code');
4017            if (!code) return;
4018            if (navigator.clipboard && navigator.clipboard.writeText) {
4019              navigator.clipboard.writeText(code).then(function() {
4020                sc(btn)
4021              }).catch(function(err) {
4022                fc(code, btn)
4023              })
4024            } else {
4025              fc(code, btn)
4026            }
4027          })
4028        });
4029
4030        function fc(text, btn) {
4031          const tx = document.createElement('textarea');
4032          tx.value = text;
4033          tx.style.position = 'fixed';
4034          tx.style.opacity = '0';
4035          document.body.appendChild(tx);
4036          tx.select();
4037          try {
4038            document.execCommand('copy');
4039            if (btn) sc(btn);
4040            else smc()
4041          } catch (err) {}
4042          document.body.removeChild(tx)
4043        }
4044
4045        function sc(btn) {
4046          const o = btn.textContent;
4047          btn.classList.add('copied');
4048          btn.textContent = '✓ Tersalin';
4049          setTimeout(function() {
4050            btn.classList.remove('copied');
4051            btn.textContent = o
4052          }, 2000)
4053        }
4054
4055        function smc() {
4056          const o = mcp.textContent;
4057          mcp.textContent = '✓ Kode Tersalin';
4058          mcp.style.background = '#22c55e';
4059          setTimeout(function() {
4060            mcp.textContent = o;
4061            mcp.style.background = ''
4062          }, 2000)
4063        }
4064
4065        function fr(a) {
4066          return 'Rp' + Math.floor(a).toLocaleString('id-ID')
4067        }
4068      })();
4069    </script>
4069
4070    
4070<script nonce="se3iyzEHMc9FQEB4wSyd0w==">
4071      window.PD_ID = 325; window.PD_NAME = _0x3c4d; window.PD_SKU = _0x5e6f; window.PD_CATEGORY_PATH = "Komputer & Laptop/Laptop/Gaming"; window.PD_BEST_VOUCHER = null; window.IS_DIGITAL = IS_DIGITAL; window.isPreorderProduct = false; window.PD_PREORDER_DATA = null;
4072    </script>
4072
4073    
4073<script nonce="se3iyzEHMc9FQEB4wSyd0w==">
4074      document.addEventListener('DOMContentLoaded', function() { if (typeof ProductReviews !== 'undefined') { ProductReviews.init(325); } const r = document.getElementById('pd-rating-inline'); if (r) { r.addEventListener('click', function(e) { e.preventDefault(); const s = document.getElementById('reviews'); if (s) { s.scrollIntoView({ behavior: 'smooth', block: 'start' }); s.classList.add('highlight-flash'); setTimeout(() => { s.classList.remove('highlight-flash') }, 1500) } }); } });
4075    </script>
4075
4076    
4076<script nonce="se3iyzEHMc9FQEB4wSyd0w==">
4077      (function() { function _0x9i0j(el) { if (typeof gtag === 'function') { gtag('event', 'qoala_insurance_click', { event_category: 'Insurance', event_label: 'Qoala Banner Click - Product Detail', link_url: '/plazait-protect', page_location: window.location.href, product_id: parseInt(el.getAttribute('data-product-id')) || 0, product_name: el.getAttribute('data-product-name') || '', category_path: el.getAttribute('data-category-path') || '', custom_map: { custom_parameter_1: 'qoala_banner_product_detail' } }) } } function _0x1k2l() { var a = document.querySelector('.qoala-cta[data-ga-event="qoala_banner_click"]'); if (a) { a.addEventListener('click', function(e) { _0x9i0j(this) }) } } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', _0x1k2l) } else { _0x1k2l() } })(); (function() { const pwpSection = document.getElementById('pwp-deals-section'); const pwpBadge = document.getElementById('pwp-trigger-badge'); if (!pwpSection) return; const productId = parseInt(pwpSection.getAttribute('data-product-id')) || 0; const variantId = parseInt(pwpSection.getAttribute('data-variant-id')) || 0; const categoryPath = pwpSection.getAttribute('data-category-path') || ''; if (!productId) return; function formatRupiah(n) { return 'Rp' + Math.floor(n).toLocaleString('id-ID') } function loadPWPDeals() { const url = `/api/pwp/get_by_product.php?product_id=${productId}${variantId?`&variant_id=${variantId}`:''}${categoryPath?`&category_path=${encodeURIComponent(categoryPath)}`:''}`; fetch(url).then(r => r.json()).then(data => { if (data.success && data.promotions && data.promotions.length > 0) { renderPWPDeals(data.promotions); pwpSection.hidden = false; if (pwpBadge) pwpBadge.hidden = false; setTimeout(function() { if (typeof window.adjustSidebarBanner === 'function') { window.adjustSidebarBanner() } }, 150) } else { pwpSection.hidden = true; if (pwpBadge) pwpBadge.hidden = true } }).catch(err => { console.error('PWP load error:', err); pwpSection.hidden = true; if (pwpBadge) pwpBadge.hidden = true }) } function renderPWPDeals(promotions) { const loading = pwpSection.querySelector('.pwp-deals-loading'); const grid = document.getElementById('pwp-deals-grid'); if (loading) loading.hidden = true; if (!grid) return; grid.innerHTML = ''; promotions.forEach(promo => { promo.bundled_products.forEach(product => { const card = document.createElement('div'); card.className = 'pwp-deal-card'; const discount = product.discount > 0 ? product.discount : 0; const discountPercent = product.regular_price > 0 ? Math.round((discount / product.regular_price) * 100) : 0; const imgUrl = product.image_url ? `/uploads/products/${product.image_url}` : '/assets/img/no-image.png'; card.innerHTML = `<div class="pwp-deal-thumb"><img src="${imgUrl}" alt="${escapeHtml(product.name)}" loading="lazy"></div><div class="pwp-deal-info"><h4 class="pwp-deal-name">${escapeHtml(product.name)}</h4><div class="pwp-deal-prices"><span class="pwp-deal-price">${formatRupiah(product.pwp_price)}</span>${product.regular_price>product.pwp_price?`<span class="pwp-deal-original">${formatRupiah(product.regular_price)}</span>`:''}</div></div>${discountPercent>0?`<span class="pwp-deal-badge">-${discountPercent}%</span>`:''}`; grid.appendChild(card) }) }) } function escapeHtml(str) { const div = document.createElement('div'); div.textContent = str || ''; return div.innerHTML } loadPWPDeals(); window.addEventListener('pd-variant-changed', function(e) { const detail = e.detail || {}; const newVid = detail.variant_id || 0; const currentVid = parseInt(pwpSection.getAttribute('data-variant-id')) || 0; if (newVid !== currentVid) { pwpSection.setAttribute('data-variant-id', newVid); loadPWPDeals() } }) })();
4078    </script>
4078
4079    <footer class="site-footer footer-compact variant-stripes" role="contentinfo">
4080      <div class="ft-top ft-collapsible" id="ftTop">
4081        <div class="container ft-grid">
4082          <div class="ft-col ft-help">
4083            <h4 class="ft-title">Butuh Bantuan?</h4>
4084            <p class="ft-desc">Hubungi kami melalui Official WhatsApp interaktif sekarang.</p>
4085            <a class="ft-wa-btn" href="#" target="_blank" rel="nofollow noopener">
4086              <span class="ico" aria-hidden="true">
4087                <svg viewBox="0 0 24 24" width="18" height="18">
4088                  <path fill="#25D366" d="M12.04 2c-5.52 0-10 4.43-10 9.9 0 1.75.47 3.45 1.38 4.94L2 22l5.3-1.38c1.43.78 3.05 1.19 4.7 1.19 5.52 0 10-4.43 10-9.9S17.56 2 12.04 2Zm5.86 13.9c-.25.7-1.23 1.28-1.7 1.33-.45.06-1.02.08-1.65-.1-.38-.12-.88-.29-1.52-.56-2.66-1.15-4.4-3.83-4.53-4.01-.13-.18-1.08-1.44-1.08-2.75 0-1.31.68-1.95.92-2.22.25-.27.54-.33.72-.33.18 0 .36.01.52.01.17 0 .39-.06.62.47.25.6.85 2.07.92 2.22.07.15.12.33.02.53-.1.2-.15.33-.3.5-.15.17-.32.39-.46.53-.15.15-.3.31-.13.6.18.3.8 1.31 1.73 2.12 1.19 1.03 2.17 1.36 2.48 1.5.31.14.49.12.67-.07.18-.18.77-.82.98-1.1.21-.27.42-.23.7-.14.27.09 1.72.81 2.02.95.3.14.5.22.58.35.08.13.08.72-.17 1.42Z"/>
4089                </svg>
4090              </span> Kirim Pesan </a>
4091            <p class="ft-desc sm-gap">Ikuti kami:</p>
4092            <div class="ft-social">
4093              <a aria-label="Facebook" href="https://facebook.com/PlazaIt/">
4094                <svg viewBox="0 0 24 24" width="18" height="18">
4095                  <path fill="currentColor" d="M13.5 22v-8.2h2.7l.4-3.2h-3.1V8c0-.9.3-1.5 1.6-1.5H17V3.7c-.3 0-1.2-.1-2.2-.1-2.2 0-3.8 1.3-3.8 3.9v2.2H8v3.2h3v8.1h2.5Z"/>
4096                </svg>
4097              </a>
4098              <a aria-label="Instagram" href="https://www.instagram.com/plazait">
4099                <svg viewBox="0 0 24 24" width="18" height="18">
4100                  <path fill="currentColor" d="M7.8 2h8.4A5.8 5.8 0 0 1 22 7.8v8.4A5.8 5.8 0 0 1 16.2 22H7.8A5.8 5.8 0 0 1 2 16.2V7.8A5.8 5.8 0 0 1 7.8 2Zm0 2A3.8 3.8 0 0 0 4 7.8v8.4A3.8 3.8 0 0 0 7.8 20h8.4a3.8 3.8 0 0 0 3.8-3.8
4100V7.8A3.8 3.8 0 0 0 16.2 4H7.8Zm9.9 1.7a1.1 1.1 0 1 1 0 2.3 1.1 1.1 0 0 1 0-2.3ZM12 7a5 5 0 1 1 0 10 5 5 0 0 1 0-10Zm0 2a3 3 0 1 0 0 6 3 3 0 0 0 0-6Z"/>
4101                </svg>
4102              </a>
4103              <a aria-label="TikTok" href="https://www.tiktok.com/@plazait">
4104                <svg viewBox="0 0 24 24" width="18" height="18">
4105                  <path fill="currentColor" d="M18.9 7.4a6.4 6.4 0 0 1-3.2-1.2v6.3a5.47 5.47 0 1 1-5.5-5.5c.2 0 .4 0 .6.02v2.37a2.92 2.92 0 0 0-.6-.07 2.8 2.8 0 1 0 2.8 2.8V2h2.3a4.6 4.6 0 0 0 4.5 4.1v2.3Z"/>
4106                </svg>
4107              </a>
4108            </div>
4109          </div>
4110          <!-- Collapsible Content Wrapper (Non-Homepage Only) -->
4111          <div class="ft-collapsible-content" id="ftCollapsible">
4112            <div class="ft-col">
4113              <h4 class="ft-title">Tentang TAKERU365</h4>
4114              <ul class="ft-links">
4115                <li>
4116                  <a href="/tentang-kami">Tentang Kami</a>
4117                </li>
4118                <li>
4119                  <a href="/kontak-kami">Kontak Kami</a>
4120                </li>
4121                <li>
4122                  <a href="/lokasi-toko">Lokasi Toko</a>
4123                </li>
4124                <li>
4125                  <a href="/faq">FAQ</a>
4126                </li>
4127              </ul>
4128              <div class="ft-address">
4129                <p class="company">PT PRIMAJAYA MULTI TECHNOLOGY</p>
4130                <p>Jl. Progo No.16, Citarum</p>
4131                <p>Kec. Bandung, Kota Bandung, Jawa Barat 40116</p>
4132              </div>
4133            </div>
4134            <div class="ft-col">
4135              <h4 class="ft-title">Informasi</h4>
4136              <ul class="ft-links">
4137                <li>
4138                  <a href="/syarat-dan-ketentuan">Syarat &amp; Ketentuan</a>
4139                </li>
4140                <li>
4141                  <a href="/kebijakan-privasi">Kebijakan Privasi</a>
4142                </li>
4143                <li>
4144                  <a href="/kebijakan-cookie">Kebijakan Cookie</a>
4145                </li>
4146                <li>
4147                  <a href="/pengiriman-dan-pengembalian">Pengiriman &amp; Pengembalian</a>
4148                </li>
4149                <li>
4150                  <a href="/pembayaran-dan-cicilan">Pembayaran &amp; Cicilan</a>
4151                </li>
4152                <li>
4153                  <a href="/garansi-dan-layanan">Garansi &amp; Layanan</a>
4154                </li>
4155              </ul>
4156              <div class="ft-payments payments-small" aria-label="Metode Pembayaran">
4157                <div class="pay-row">
4158                  <img src="https://mobileplay.shop/assets/img/Payments/mandiri.svg" alt="Mandiri" loading="lazy">
4159                  <img src="https://mobileplay.shop/assets/img/Payments/bni.svg" alt="BNI" loading="lazy">
4160                  <img src="https://mobileplay.shop/assets/img/Payments/bri.svg" alt="BRI" loading="lazy">
4161                  <img src="https://mobileplay.shop/assets/img/Payments/bsi.svg" alt="BSI" loading="lazy">
4162                  <img src="https://mobileplay.shop/assets/img/Payments/cimb-logo.svg" alt="ShopeePay" loading="lazy">
4163                </div>
4164              </div>
4165            </div>
4166          </div>
4167          <!-- End Collapsible Content -->
4168          <!-- Expand Button (Mobile Only) -->
4169          <button class="ft-expand-btn" id="ftExpandBtn" aria-label="Lihat semua informasi footer">
4170            <span class="expand-text">Selengkapnya</span>
4171            <svg viewBox="0 0 24 24" width="18" height="18" fill="currentColor">
4172              <path d="M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z"/>
4173            </svg>
4174          </button>
4175        </div>
4176      </div>
4177      <div class="ft-bottom">
4178        <div class="container ft-bottom-inner">
4179          <div class="ft-copy">
4180            <span>TAKERU365 &copy; <span id="yearNow">2026</span>
4181            </span>
4182            <span>PT TAKERU365. All rights reserved.</span>
4183          </div>
4184        </div>
4185      </div>
4186      <style nonce="se3iyzEHMc9FQEB4wSyd0w==">
4187        /* Chat Widget Styles - Lightweight & Minimal */
4188        .chat-widget {
4189          position: fixed;
4190          bottom: 20px;
4191          right: 20px;
4192          z-index: 9999;
4193          font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
4194        }
4195
4196        /* Hide floating button on mobile - use bottom nav instead */
4197        @media (max-width: 640px) {
4198          .chat-toggle-btn {
4199            display: none !important;
4200          }
4201
4202          /* Ensure popup is still visible on mobile even when button is hidden */
4203          .chat-widget {
4204            display: block !important;
4205          }
4206
4207          .chat-popup {
4208            display: none;
4209            /* Hidden by default, shown via JS */
4210          }
4211
4212          .chat-popup[style*="display: block"],
4213          .chat-popup[style*="display:block"] {
4214            display: block !important;
4215          }
4216        }
4217
4218        .chat-toggle-btn {
4219          width: 60px;
4220          height: 60px;
4221          border-radius: 50%;
4222          background: linear-gradient(135deg, #F28C1A 0%, #D97809 100%);
4223          border: none;
4224          color: white;
4225          cursor: pointer;
4226          box-shadow: 0 4px 12px rgba(242, 140, 26, 0.3);
4227          position: relative;
4228          transition: transform 0.2s, box-shadow 0.2s;
4229        }
4230
4231        .chat-toggle-btn:hover {
4232          transform: scale(1.05);
4233          box-shadow: 0 6px 20px rgba(242, 140, 26, 0.4);
4234        }
4235
4236        #chat-toggle-btn .chat-icon {
4237          position: absolute;
4238          top: 50%;
4239          left: 50%;
4240          transform: translate(-50%, -50%);
4241          width: 28px !important;
4242          height: 28px !important;
4243        }
4244
4245        .chat-unread-badge {
4246          position: absolute;
4247          top: -5px;
4248          right: -5px;
4249          background: #ef4444;
4250          color: white;
4251          border-radius: 12px;
4252          padding: 2px 6px;
4253          font-size: 11px;
4254          font-weight: 600;
4255          min-width: 20px;
4256          text-align: center;
4257        }
4258
4259        .chat-popup {
4260          position: absolute;
4261          bottom: 80px;
4262          right: 0;
4263          width: 380px;
4264          max-width: calc(100vw - 40px);
4265          height: 500px;
4266          max-height: calc(100vh - 120px);
4267          background: white;
4268          border-radius: 12px;
4269          box-shadow: 0 10px 40px rgba(0, 0, 0, 0.2);
4270          display: flex;
4271          flex-direction: column;
4272          overflow: hidden;
4273        }
4274
4275        .chat-popup-header {
4276          background: linear-gradient(135deg, #F28C1A 0%, #D97809 100%);
4277          color: white;
4278          padding: 16px 20px;
4279          display: flex;
4280          justify-content: space-between;
4281          align-items: center;
4282          flex-shrink: 0;
4283        }
4284
4285        .chat-header-title {
4286          display: flex;
4287          flex-direction: column;
4288          gap: 2px;
4289          min-height: 0;
4290        }
4291
4292        .chat-popup-header h3 {
4293          margin: 0;
4294          font-size: 18px;
4295          font-weight: 600;
4296          line-height: 1.2;
4297        }
4298
4299        .chat-operating-hours {
4300          font-size: 11px;
4301          opacity: 0.9;
4302          font-weight: 400;
4303          display: flex;
4304          align-items: center;
4305          gap: 4px;
4306          line-height: 1.2;
4307        }
4308
4309        .chat-operating-hours svg {
4310          width: 12px;
4311          height: 12px;
4312          opacity: 0.8;
4313          flex-shrink: 0;
4314        }
4315
4316        .chat-header-actions {
4317          display: flex;
4318          align-items: center;
4319          gap: 8px;
4320        }
4321
4322        /* Notification Toggle Button */
4323        .btn-notif-toggle {
4324          background: none;
4325          border: none;
4326          color: white;
4327          font-size: 18px;
4328          cursor: pointer;
4329          padding: 4px 8px;
4330          transition: all 0.2s;
4331          opacity: 0.8;
4332        }
4333
4334        .btn-notif-toggle:hover {
4335          opacity: 1;
4336          transform: scale(1.1);
4337        }
4338
4339        /* Icon states */
4340        .btn-notif-toggle[data-status="not-subscribed"] svg {
4341          opacity: 0.7;
4342        }
4343
4344        .btn-notif-toggle[data-status="not-subscribed"]:hover svg {
4345          opacity: 1;
4346        }
4347
4348        .btn-notif-toggle[data-status="subscribed"] svg {
4349          opacity: 1;
4350          animation: bellRing 2s ease-in-out;
4351        }
4352
4353        .btn-notif-toggle[data-status="blocked"] svg {
4354          color: #ff6b6b;
4355        }
4356
4357        .btn-notif-toggle[data-status="not-supported"] {
4358          display: none !important;
4359        }
4360
4361        @keyframes bellRing {
4362
4363          0%,
4364          100% {
4365            transform: rotate(0deg);
4366          }
4367
4368          10%,
4369          30% {
4370            transform: rotate(-10deg);
4371          }
4372
4373          20%,
4374          40% {
4375            transform: rotate(10deg);
4376          }
4377        }
4378
4379        /* Notification Info Bar */
4380        .chat-notif-info-bar {
4381          position: absolute;
4382          top: 64px;
4383          left: 0;
4384          right: 0;
4385          background: linear-gradient(to right, #e3f2fd, #f5f5f5);
4386          border-bottom: 1px solid #bbdefb;
4387          padding: 8px 12px;
4388          display: flex;
4389          align-items: center;
4390          gap: 8px;
4391          font-size: 12px;
4392          color: #616161;
4393          z-index: 10;
4394          animation: slideDown 0.3s ease;
4395        }
4396
4397        .chat-notif-info-bar svg {
4398          flex-shrink: 0;
4399        }
4400
4401        .chat-notif-info-bar .small {
4402          flex: 1;
4403          line-height: 1.4;
4404        }
4405
4406        .chat-notif-info-bar .btn-dismiss {
4407          background: none;
4408          border: none;
4409          color: #9e9e9e;
4410          cursor: pointer;
4411          padding: 0 4px;
4412          font-size: 16px;
4413          transition: color 0.2s;
4414        }
4415
4416        .chat-notif-info-bar .btn-dismiss:hover {
4417          color: #616161;
4418        }
4419
4420        @keyframes slideDown {
4421          from {
4422            max-height: 0;
4423            opacity: 0;
4424          }
4425
4426          to {
4427            max-height: 50px;
4428            opacity: 1;
4429          }
4430        }
4431
4432        .chat-close-btn {
4433          background: none;
4434          border: none;
4435          color: white;
4436          font-size: 28px;
4437          line-height: 1;
4438          cursor: pointer;
4439          padding: 0;
4440          width: 30px;
4441          height: 30px;
4442        }
4443
4444        .chat-popup-body {
4445          flex: 1 1 auto;
4446          display: flex;
4447          flex-direction: column;
4448          min-height: 0;
4449          overflow: hidden;
4450          height: calc(100% - 64px);
4451          position: relative;
4452          transition: padding-top 0.3s ease;
4453        }
4454
4455        /* Add padding when info bar is visible */
4456        .chat-popup-body.has-info-bar {
4457          padding-top: 40px;
4458        }
4459
4460        .chat-view {
4461          flex: 1 1 auto;
4462          display: none;
4463          flex-direction: column;
4464          min-height: 0;
4465          overflow: hidden;
4466        }
4467
4468        #chat-list-view {
4469          display: flex;
4470        }
4471
4472        #chat-messages-view {
4473          display: none;
4474        }
4475
4476        #chat-messages-view.active {
4477          display: flex;
4478          flex-direction: column;
4479        }
4480
4481        #chat-new-view {
4482          display: none;
4483        }
4484
4485        #chat-new-view.active {
4486          display: flex;
4487        }
4488
4489        .chat-conversations-list {
4490          flex: 1;
4491          overflow-y: auto;
4492          padding: 0;
4493          background: white;
4494        }
4495
4496        /* Custom Scrollbar for Conversations List */
4497        .chat-conversations-list::-webkit-scrollbar {
4498          width: 6px;
4499        }
4500
4501        .chat-conversations-list::-webkit-scrollbar-track {
4502          background: #f1f1f1;
4503        }
4504
4505        .chat-conversations-list::-webkit-scrollbar-thumb {
4506          background: #F28C1A;
4507          border-radius: 3px;
4508        }
4509
4510        .chat-conversations-list::-webkit-scrollbar-thumb:hover {
4511          background: #D97809;
4512        }
4513
4514        /* Firefox */
4515        .chat-conversations-list {
4516          scrollbar-width: thin;
4517          scrollbar-color: #F28C1A #f1f1f1;
4518        }
4519
4520        .chat-conversation-item {
4521          padding: 12px 16px;
4522          cursor: pointer;
4523          display: flex;
4524          gap: 12px;
4525          align-items: flex-start;
4526          transition: background 0.15s ease;
4527          color: #33371f;
4528          border-bottom: 1px solid #f0f0f0;
4529        }
4530
4531        .chat-conversation-item:hover {
4532          background: #f5f5f5;
4533        }
4534
4535        .chat-conversation-item.active {
4536          background: #FFF5EB;
4537        }
4538
4539        /* WhatsApp-like Avatar */
4540        .conversation-avatar {
4541          width: 48px;
4542          height: 48px;
4543          border-radius: 50%;
4544          background: linear-gradient(135deg, #F28C1A 0%, #D97809 100%);
4545          flex-shrink: 0;
4546          display: flex;
4547          align-items: center;
4548          justify-content: center;
4549          color: white;
4550          font-weight: 600;
4551          font-size: 18px;
4552        }
4553
4554        .conversation-avatar svg {
4555          width: 24px;
4556          height: 24px;
4557        }
4558
4559        /* WhatsApp-like Content */
4560        .conversation-content {
4561          flex: 1;
4562          min-width: 0;
4563          display: flex;
4564          flex-direction: column;
4565          gap: 4px;
4566        }
4567
4568        .conversation-header {
4569          display: flex;
4570          justify-content: space-between;
4571          align-items: center;
4572          gap: 8px;
4573        }
4574
4575        .conversation-name {
4576          font-weight: 600;
4577          font-size: 15px;
4578          color: #111;
4579          white-space: nowrap;
4580          overflow: hidden;
4581          text-overflow: ellipsis;
4582        }
4583
4584        .conversation-time {
4585          font-size: 12px;
4586          color: #7d8166;
4587          flex-shrink: 0;
4588        }
4589
4590        .conversation-preview {
4591          display: flex;
4592          justify-content: space-between;
4593          align-items: center;
4594          gap: 8px;
4595        }
4596
4597        .conversation-message {
4598          font-size: 14px;
4599          color: #667781;
4600          white-space: nowrap;
4601          overflow: hidden;
4602          text-overflow: ellipsis;
4603          margin: 0;
4604          flex: 1;
4605        }
4606
4607        .conversation-unread {
4608          background: #25D366;
4609          color: white;
4610          border-radius: 12px;
4611          padding: 2px 8px;
4612          font-size: 12px;
4613          font-weight: 600;
4614          min-width: 20px;
4615          text-align: center;
4616          flex-shrink: 0;
4617        }
4618
4619        /* Active item styling */
4620        .chat-conversation-item.active .conversation-name {
4621          color: #F28C1A;
4622        }
4623
4624        .chat-conversation-item.active .conversation-time {
4625          color: #F28C1A;
4626        }
4627
4628        .chat-new-btn {
4629          margin: 12px;
4630          padding: 12px;
4631          background: linear-gradient(135deg, #F28C1A 0%, #D97809 100%);
4632          color: white;
4633          border: none;
4634          border-radius: 8px;
4635          cursor: pointer;
4636          font-weight: 500;
4637          font-size: 14px;
4638          display: flex;
4639          align-items: center;
4640          justify-content: center;
4641          gap: 8px;
4642          transition: all 0.2s;
4643          flex-shrink: 0;
4644        }
4645
4646        .chat-new-btn:hover {
4647          transform: translateY(-1px);
4648          box-shadow: 0 4px 8px rgba(242, 140, 26, 0.3);
4649        }
4650
4651        .chat-conversation-title {
4652          flex: 1;
4653          font-weight: 600;
4654          font-size: 16px;
4655          color: #1f2937;
4656        }
4657
4658        .chat-messages-container {
4659          flex: 1;
4660          overflow-y: auto;
4661          padding: 16px;
4662          display: flex;
4663          flex-direction: column;
4664          gap: 8px;
4665          min-height: 0;
4666          background: #E5DDD5;
4667        }
4668
4669        /* Custom Scrollbar for Messages Container */
4670        .chat-messages-container::-webkit-scrollbar {
4671          width: 6px;
4672        }
4673
4674        .chat-messages-container::-webkit-scrollbar-track {
4675          background: rgba(0, 0, 0, 0.05);
4676        }
4677
4678        .chat-messages-container::-webkit-scrollbar-thumb {
4679          background: rgba(242, 140, 26, 0.6);
4680          border-radius: 3px;
4681        }
4682
4683        .chat-messages-container::-webkit-scrollbar-thumb:hover {
4684          background: #F28C1A;
4685        }
4686
4687        /* Firefox */
4688        .chat-messages-container {
4689          scrollbar-width: thin;
4690          scrollbar-color: rgba(242, 140, 26, 0.6) rgba(0, 0, 0, 0.05);
4691        }
4692
4693        /* WhatsApp Group-like Messages */
4694        .chat-message {
4695          display: flex;
4696          margin-bottom: 4px;
4697          animation: fadeIn 0.2s ease;
4698        }
4699
4700        @keyframes fadeIn {
4701          from {
4702            opacity: 0;
4703            transform: translateY(10px);
4704          }
4705
4706          to {
4707            opacity: 1;
4708            transform: translateY(0);
4709          }
4710        }
4711
4712        .chat-message.mine {
4713          justify-content: flex-end;
4714        }
4715
4716        .chat-message-bubble {
4717          max-width: 80%;
4718          padding: 6px 8px 8px 10px;
4719          border-radius: 8px;
4720          position: relative;
4721          box-shadow: 0 1px 0.5px rgba(0, 0, 0, 0.13);
4722        }
4723
4724        /* Bubble from others (Admin/CS) */
4725        .chat-message:not(.mine) .chat-message-bubble {
4726          background: #FFFFFF;
4727          border-radius: 0 8px 8px 8px;
4728        }
4729
4730        /* Bubble tail for others */
4731        .chat-message:not(.mine) .chat-message-bubble::before {
4732          content: '';
4733          position: absolute;
4734          top: 0;
4735          left: -8px;
4736          width: 0;
4737          height: 0;
4738          border-style: solid;
4739          border-width: 0 8px 13px 0;
4740          border-color: transparent #FFFFFF transparent transparent;
4741        }
4742
4743        /* Bubble from user (mine) */
4744        .chat-message.mine .chat-message-bubble {
4745          background: #e4f5d0;
4746          /* Light blue for user messages */
4747          border-radius: 8px 0 8px 8px;
4748        }
4749
4750        /* Bubble tail for mine */
4751        .chat-message.mine .chat-message-bubble::before {
4752          content: '';
4753          position: absolute;
4754          top: 0;
4755          right: -8px;
4756          width: 0;
4757          height: 0;
4758          border-style: solid;
4759          border-width: 0 0 13px 8px;
4760          border-color: transparent transparent transparent #eaf5d0;
4761        }
4762
4763        .message-sender {
4764          font-size: 12.5px;
4765          font-weight: 600;
4766          color: #F28C1A !important;
4767          margin-bottom: 4px;
4768        }
4769
4770        .chat-message.mine .message-sender {
4771          display: none;
4772        }
4773
4774        /* Message text */
4775        .message-text {
4776          font-size: 14px;
4777          line-height: 19px;
4778          color: #000000 !important;
4779          word-wrap: break-word;
4780          white-space: pre-wrap;
4781          margin-bottom: 4px;
4782        }
4783
4784        /* Message metadata (time + status) */
4785        .message-meta {
4786          display: flex;
4787          align-items: center;
4788          justify-content: flex-end;
4789          gap: 4px;
4790          margin-top: 2px;
4791        }
4792
4793        .message-time {
4794          font-size: 11px;
4795          color: #728166 !important;
4796          line-height: 15px;
4797        }
4798
4799        /* Use multiple selectors to override global styles */
4800        .chat-message-bubble .message-status,
4801        .message-meta .message-status,
4802        .chat-message .message-status {
4803          width: 16px !important;
4804          height: 16px !important;
4805          min-width: 16px !important;
4806          min-height: 16px !important;
4807          max-width: 16px !important;
4808          max-height: 16px !important;
4809          flex-shrink: 0;
4810          color: #728166 !important;
4811          fill: currentColor !important;
4812        }
4813
4814        .chat-message:not(.mine) .message-status {
4815          display: none;
4816        }
4817
4818        /* Loading dots animation */
4819        @keyframes loadingDots {
4820
4821          0%,
4822          20% {
4823            content: '.';
4824          }
4825
4826          40% {
4827            content: '..';
4828          }
4829
4830          60%,
4831          100% {
4832            content: '...';
4833          }
4834        }
4835
4836        .message-status.loading::after {
4837          content: '...';
4838          animation: loadingDots 1.5s infinite;
4839          font-size: 16px;
4840          line-height: 16px;
4841        }
4842
4843        .message-status.loading path {
4844          display: none;
4845        }
4846
4847        .message-status.failed {
4848          color: #ef4444 !important;
4849          cursor: pointer;
4850        }
4851
4852        .message-status.sent {
4853          color: #667781 !important;
4854        }
4855
4856        .chat-new-form {
4857          flex: 1;
4858          overflow-y: auto;
4859          padding: 16px;
4860          display: flex;
4861          flex-direction: column;
4862        }
4863
4864        .chat-new-form form {
4865          display: flex;
4866          flex-direction: column;
4867          gap: 16px;
4868          flex: 1;
4869        }
4870
4871        .chat-new-form .form-group {
4872          display: flex;
4873          flex-direction: column;
4874          gap: 6px;
4875        }
4876
4877        .chat-new-form label {
4878          font-size: 14px;
4879          font-weight: 500;
4880          color: #374151;
4881        }
4882
4883        .chat-new-form .form-control {
4884          width: 100%;
4885          padding: 10px 12px;
4886          border: 1px solid #d1d5db;
4887          border-radius: 8px;
4888          font-size: 14px;
4889          font-family: inherit;
4890          transition: border-color 0.2s;
4891          box-sizing: border-box;
4892        }
4893
4894        .chat-new-form .form-control:focus {
4895          outline: none;
4896          border-color: #F28C1A;
4897          box-shadow: 0 0 0 3px rgba(242, 140, 26, 0.1);
4898        }
4899
4900        .chat-new-form textarea.form-control {
4901          resize: vertical;
4902          min-height: 100px;
4903        }
4904
4905        .chat-new-form .btn {
4906          padding: 12px 20px;
4907          border: none;
4908          border-radius: 8px;
4909          font-size: 15px;
4910          font-weight: 500;
4911          cursor: pointer;
4912          transition: all 0.2s;
4913          text-align: center;
4914        }
4915
4916        .chat-new-form .btn-primary {
4917          background: linear-gradient(135deg, #F28C1A 0%, #D97809 100%);
4918          color: white;
4919        }
4920
4921        .chat-new-form .btn-primary:hover {
4922          transform: translateY(-1px);
4923          box-shadow: 0 4px 8px rgba(242, 140, 26, 0.3);
4924        }
4925
4926        .chat-new-form .btn-primary:active {
4927          transform: scale(0.98);
4928        }
4929
4930        .chat-new-form .btn-block {
4931          width: 100%;
4932          margin-top: auto;
4933        }
4934
4935        .chat-message-form {
4936          padding: 12px;
4937          border-top: 1px solid #e5e7eb;
4938          display: flex;
4939          flex-wrap: wrap;
4940          gap: 8px;
4941          align-items: flex-end;
4942          flex-shrink: 0;
4943          background: white;
4944        }
4945
4946        .chat-product-card {
4947          flex: 1 1 100%;
4948          max-width: 100%;
4949          display: flex;
4950          gap: 12px;
4951          padding: 12px;
4952          background: #f3f4f6;
4953          border-radius: 8px;
4954          margin-bottom: 4px;
4955          border: 1px solid #e5e7eb;
4956        }
4957
4958        .chat-product-card img {
4959          width: 60px;
4960          height: 60px;
4961          object-fit: cover;
4962          border-radius: 6px;
4963          flex-shrink: 0;
4964        }
4965
4966        .chat-product-card-content {
4967          flex: 1;
4968          min-width: 0;
4969        }
4970
4971        .chat-product-card-name {
4972          font-weight: 500;
4973          font-size: 14px;
4974          color: #1f2937;
4975          margin-bottom: 4px;
4976          white-space: nowrap;
4977          overflow: hidden;
4978          text-overflow: ellipsis;
4979        }
4980
4981        .chat-product-card-variant {
4982          font-size: 12px;
4983          color: #74806b;
4984          margin-bottom: 4px;
4985        }
4986
4987        .chat-product-card-price {
4988          font-size: 13px;
4989          color: #8bea66;
4990          font-weight: 600;
4991        }
4992
4993        .chat-product-card-remove {
4994          align-self: flex-start;
4995          background: none;
4996          border: none;
4997          color: #9ca3af;
4998          cursor: pointer;
4999          padding: 4px;
5000          font-size: 18px;
5001          line-height: 1;
5002          transition: color 0.2s;
5003        }
5004
5005        .chat-product-card-remove:hover {
5006          color: #ef4444;
5007        }
5008
5009        /* Product card in messages (read-only display) */
5010        .message-product-card {
5011          display: flex;
5012          gap: 10px;
5013          padding: 10px;
5014          background: rgba(255, 255, 255, 0.5);
5015          border-radius: 8px;
5016          margin-bottom: 6px;
5017          border: 1px solid rgba(0, 0, 0, 0.08);
5018          align-items: center;
5019        }
5020
5021        .chat-message.mine .message-product-card {
5022          background: rgba(255, 255, 255, 0.7);
5023        }
5024
5025        .message-product-card img {
5026          width: 50px;
5027          height: 50px;
5028          object-fit: cover;
5029          border-radius: 6px;
5030          flex-shrink: 0;
5031        }
5032
5033        .message-product-info {
5034          flex: 1;
5035          min-width: 0;
5036        }
5037
5038        .message-product-name {
5039          font-weight: 500;
5040          font-size: 13px;
5041          color: #33371f;
5042          margin-bottom: 2px;
5043          overflow: hidden;
5044          text-overflow: ellipsis;
5045          display: -webkit-box;
5046          -webkit-line-clamp: 2;
5047          -webkit-box-orient: vertical;
5048          line-height: 1.3;
5049        }
5050
5051        .message-product-variant {
5052          font-size: 11px;
5053          color: #78806b;
5054          margin-bottom: 2px;
5055        }
5056
5057        .message-product-price {
5058          font-size: 12px;
5059          color: #c7ea66;
5060          font-weight: 600;
5061        }
5062
5063        .message-product-link {
5064          flex-shrink: 0;
5065          width: 32px;
5066          height: 32px;
5067          display: flex;
5068          align-items: center;
5069          justify-content: center;
5070          background: rgba(102, 126, 234, 0.1);
5071          border-radius: 6px;
5072          color: #c7ea66;
5073          text-decoration: none;
5074          transition: all 0.2s;
5075        }
5076
5077        .message-product-link:hover {
5078          background: #b7ea66;
5079          color: white;
5080        }
5081
5082        .message-product-link svg {
5083          width: 16px;
5084          height: 16px;
5085        }
5086
5087        .chat-message-input {
5088          flex: 1;
5089          border: 1px solid #d1d5db;
5090          border-radius: 20px;
5091          padding: 10px 16px;
5092          resize: none;
5093          max-height: 100px;
5094          font-family: inherit;
5095          font-size: 14px;
5096          line-height: 1.5;
5097          box-sizing: border-box;
5098          overflow-y: hidden;
5099        }
5100
5101        .chat-message-input:focus {
5102          outline: none;
5103          border-color: #F28C1A;
5104          box-shadow: 0 0 0 3px rgba(242, 140, 26, 0.1);
5105        }
5106
5107        .chat-send-btn {
5108          width: 40px;
5109          height: 40px;
5110          border-radius: 50%;
5111          background: linear-gradient(135deg, #F28C1A 0%, #D97809 100%);
5112          border: none;
5113          color: white;
5114          cursor: pointer;
5115          flex-shrink: 0;
5116          display: flex;
5117          align-items: center;
5118          justify-content: center;
5119          transition: all 0.2s;
5120        }
5121
5122        .chat-send-btn:hover {
5123          transform: scale(1.05);
5124          box-shadow: 0 2px 8px rgba(242, 140, 26, 0.3);
5125        }
5126
5127        .chat-send-btn:active {
5128          transform: scale(0.95);
5129        }
5130
5131        .chat-loading {
5132          text-align: center;
5133          padding: 20px;
5134          color: #6b7280;
5135        }
5136
5137        /* Date Separator (WhatsApp-style) */
5138        .date-separator {
5139          display: flex;
5140          align-items: center;
5141          gap: 12px;
5142          margin: 24px 0 16px;
5143          opacity: 0;
5144          animation: fadeInSeparator 0.3s ease forwards;
5145        }
5146
5147        @keyframes fadeInSeparator {
5148          from {
5149            opacity: 0;
5150            transform: translateY(-10px);
5151          }
5152
5153          to {
5154            opacity: 1;
5155            transform: translateY(0);
5156          }
5157        }
5158
5159        .date-separator-line {
5160          flex: 1;
5161          height: 1px;
5162          background: linear-gradient(90deg, transparent, rgba(0, 0, 0, 0.1) 50%, transparent);
5163        }
5164
5165        .date-separator-text {
5166          flex-shrink: 0;
5167          padding: 4px 12px;
5168          background: #e9ecef;
5169          color: #6c757d;
5170          font-size: 11px;
5171          font-weight: 600;
5172          text-transform: uppercase;
5173          letter-spacing: 0.5px;
5174          border-radius: 12px;
5175          box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
5176        }
5177
5178        /* Mobile responsive */
5179        @media (max-width: 640px) {
5180          .chat-popup {
5181            position: fixed !important;
5182            /* Override absolute positioning */
5183            bottom: 45px !important;
5184            /* Above bottom nav */
5185            right: 0 !important;
5186            left: 0 !important;
5187            width: 100% !important;
5188            max-width: 100% !important;
5189            /* Use dvh (dynamic viewport height) for browser UI awareness */
5190            height: calc(100dvh - 45px) !important;
5191            max-height: calc(100dvh - 45px) !important;
5192            /* Fallback for browsers that don't support dvh */
5193            height: calc(var(--viewport-height, 100vh) - 45px) !important;
5194            max-height: calc(var(--viewport-height, 100vh) - 45px) !important;
5195            border-radius: 0 !important;
5196            z-index: 9999 !important;
5197          }
5198
5199          .chat-popup-header {
5200            border-radius: 0;
5201          }
5202
5203          .chat-messages-container,
5204          .chat-conversations-list {
5205            /* Adjust for mobile keyboard using dynamic viewport */
5206            max-height: calc(100dvh - 190px);
5207            /* Fallback for browsers that don't support dvh */
5208            max-height: calc(var(--viewport-height, 100vh) - 190px);
5209          }
5210        }
5211      </style>
5212      <!-- Chat Widget Button -->
5213      <div id="chat-widget" class="chat-widget" data-user-id="" data-is-logged-in="false" data-csrf-token="df5d776748b1ed8c8dd0d987bae99b1ee3dea6c6dcbe0eedb1bea766c56d569a">
5214        <button id="chat-toggle-btn" class="chat-toggle-btn" aria-label="Toggle chat">
5215          <svg class="chat-icon" width="28" height="28" viewBox="0 0 640 640" fill="currentColor">
5216            <path d="M320 128C241 128 175.3 185.3 162.3 260.7C171.6 257.7 181.6 256 192 256L208 256C234.5 256 256 277.5 256 304L256 400C256 426.5 234.5 448 208 448L192 448C139 448 96 405 96 352L96 288C96 164.3 196.3 64 320 64
5216C443.7 64 544 164.3 544 288L544 456.1C544 522.4 490.2 576.1 423.9 576.1L336 576L304 576C277.5 576 256 554.5 256 528C256 501.5 277.5 480 304 480L336 480C362.5 480 384 501.5 384 528L384 528L424 528C463.8 528 496 495.8 496 456L496 435.1C481.9 443.3 465.5 447.9 448 447.9L432 447.9C405.5 447.9 384 426.4 384 399.9L384 303.9C384 277.4 405.5 255.9 432 255.9L448 255.9C458.4 255.9 468.3 257.5 477.7 260.6C464.7 185.3 399.1 127.9 320 127.9z"/>
5217          </svg>
5218          <span id="chat-unread-badge" class="chat-unread-badge" style="display: none;">0</span>
5219        </button>
5220        <div id="chat-popup" class="chat-popup" style="display: none;">
5221          <div class="chat-popup-header">
5222            <div class="chat-header-title">
5223              <h3>Bantuan</h3>
5224              <span id="chatOperatingHours" class="chat-operating-hours" style="display: none;"></span>
5225            </div>
5226            <div class="chat-header-actions">
5227              <button id="chatNotifToggle" class="btn-notif-toggle" data-status="not-supported" title="Push notification" style="display: none;">
5228                <svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor">
5229                  <path d="M12 22c1.1 0 2-.9 2-2h-4c0 1.1.89 2 2 2zm6-6v-5c0-3.07-1.64-5.64-4.5-6.32V4c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5v.68C7.63 5.36 6 7.92 6 11v5l-2 2v1h16v-1l-2-2z"/>
5230                </svg>
5231              </button>
5232              <button id="chat-close-btn" class="chat-close-btn" aria-label="Close chat">×</button>
5233            </div>
5234          </div>
5235          <!-- Notification Info Bar (conditional) -->
5236          <div class="chat-notif-info-bar" id="chatNotifInfoBar" style="display:none;">
5237            <svg width="14" height="14" viewBox="0 0 24 24" fill="#ffc107">
5238              <path d="M9 21c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-1H9v1zm3-19C8.14 2 5 5.14 5 9c0 2.38 1.19 4.47 3 5.74V17c0 .55.45 1 1 1h6c.55 0 1-.45 1-1v-2.26c1.81-1.27 3-3.36 3-5.74 0-3.86-3.14-7-7-7zm2.85 11.1l-.85.6V16h-4v-2.3l-.85-.6C7.8 12.16 7 10.63 7 9c0-2.76 2.24-5 5-5s5 2.24 5 5c0 1.63-.8 3.16-2.15 4.1z"/>
5239            </svg>
5240            <span class="small">Aktifkan notifikasi untuk pemberitahuan balasan</span>
5241            <button class="btn-dismiss" onclick="ChatNotification.dismissInfo()">✕</button>
5242          </div>
5243          <div class="chat-popup-body">
5244            <!-- Conversations List View -->
5245            <div id="chat-list-view" class="chat-view">
5246              <div id="chat-conversations-list" class="chat-conversations-list">
5247                <div class="chat-loading">Memuat...</div>
5248                <!-- Conversation Item Structure (rendered by JS):
5249                            <div class="chat-conversation-item"><div class="conversation-avatar"><svg>...</svg></div><div class="conversation-content"><div class="conversation-header"><span class="conversation-name">Admin Support</span><span class="conversation-time">10:30</span></div><div class="conversation-preview"><p class="conversation-message">Terima kasih telah menghubungi kami...</p><span class="conversation-unread">2</span></div></div></div>
5250                            -->
5251              </div>
5252              <button id="chat-new-btn" class="chat-new-btn">
5253                <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
5254                  <line x1="12" y1="5" x2="12" y2="19"></line>
5255                  <line x1="5" y1="12" x2="19" y2="12"></line>
5256                </svg> Percakapan Baru </button>
5257            </div>
5258            <!-- Chat Messages View -->
5259            <div id="chat-messages-view" class="chat-view" style="display: none;">
5260              <div id="chat-messages-container" class="chat-messages-container">
5261                <div class="chat-loading">Memuat pesan...</div>
5262                <!-- Message Structure (rendered by JS):
5263                            <div class="chat-message"> (or .chat-message.mine)
5264                                <div class="chat-message-bubble"><div class="message-sender">Admin Support</div> (only for non-mine)
5265                                    <div class="message-text">
5265Halo, ada yang bisa dibantu?</div><div class="message-meta"><span class="message-time">10:30</span><svg class="message-status">...</svg> (only for mine)
5266                                    </div></div></div>
5267                            -->
5268              </div>
5269              <form id="chat-message-form" class="chat-message-form">
5270                <input type="hidden" id="chat-current-conversation-id" value="">
5271                <textarea id="chat-message-input" class="chat-message-input" placeholder="Ketik pesan..." rows="1" maxlength="5000"></textarea>
5272                <button type="submit" class="chat-send-btn" aria-label="Send message">
5273                  <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
5274                    <line x1="22" y1="2" x2="11" y2="13"></line>
5275                    <polygon points="22 2 15 22 11 13 2 9 22 2"></polygon>
5276                  </svg>
5277                </button>
5278              </form>
5279            </div>
5280            <!-- New Chat View -->
5281            <div id="chat-new-view" class="chat-view" style="display: none;">
5282              <div class="chat-messages-header">
5283                <button id="chat-new-back-btn" class="chat-back-btn" aria-label="Back to list">
5284                  <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
5285                    <path d="M19 12H5M12 19l-7-7 7-7"/>
5286                  </svg>
5287                </button>
5288                <div class="chat-conversation-title">Percakapan Baru</div>
5289              </div>
5290              <div class="chat-new-form">
5291                <form id="chat-start-form">
5292                  <div class="form-group">
5293                    <label for="chat-new-subject">Subjek</label>
5294                    <input type="text" id="chat-new-subject" class="form-control" placeholder="Bantuan Pelanggan" maxlength="255">
5295                  </div>
5296                  <div class="form-group">
5297                    <label for="chat-new-message">Pesan</label>
5298                    <textarea id="chat-new-message" class="form-control" rows="4" placeholder="Tulis pertanyaan Anda..." required maxlength="5000"></textarea>
5299                  </div>
5300                  <button type="submit" class="btn btn-primary btn-block">Kirim</button>
5301                </form>
5302              </div>
5303            </div>
5304          </div>
5305        </div>
5306      </div>
5307      <!-- Login Required Modal -->
5308      <div class="modal-overlay" id="chatLoginModal">
5309        <div class="modal-dialog">
5310          <div class="modal-header">
5311            <h3 class="modal-title">
5312              <div class="modal-icon info">
5313                <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
5314                  <path d="M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M11,17H13V11H11V17Z"/>
5315                </svg>
5316              </div> Login Diperlukan
5317            </h3>
5318          </div>
5319          <div class="modal-body">
5320            <p class="modal-message">Anda harus login terlebih dahulu untuk menggunakan fitur chat bantuan pelanggan.</p>
5321            <div class="modal-actions">
5322              <button class="modal-btn modal-btn-secondary" id="chatLoginCancel">Batal</button>
5323              <button class="modal-btn modal-btn-primary" id="chatLoginConfirm">Login Sekarang</button>
5324            </div>
5325          </div>
5326        </div>
5327      </div>
5328      <!-- Footer Collapse Toggle Script -->
5329      
5329<script nonce="se3iyzEHMc9FQEB4wSyd0w==">
5330        document.addEventListener('DOMContentLoaded', function() { const ftTop = document.getElementById('ftTop'); const expandBtn = document.getElementById('ftExpandBtn'); if (ftTop && expandBtn) { const expandText = expandBtn.querySelector('.expand-text'); expandBtn.addEventListener('click', function() { ftTop.classList.toggle('expanded'); const isExpanded = ftTop.classList.contains('expanded'); if (expandText) { expandText.textContent = isExpanded ? 'Sembunyikan' : 'Selengkapnya'; } }); } });
5331      </script>
5331
5332    </footer>
5333    <!-- Compare Sidebar Overlay -->
5334    <div class="compare-overlay" id="compareOverlay"></div>
5335    <!-- Floating Compare Badge (Sticky) -->
5336    <button class="compare-floating-badge" id="compareFloatingBadge" aria-label="Lihat produk yang dibandingkan" style="display:none;">
5337      <svg class="cfb-icon" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true">
5338        <path d="M9.01 14H2v2h7.01v3L13 15l-3.99-4v3zm5.98-1v-3H22V8h-7.01V5L11 9l3.99 4z"/>
5339      </svg>
5340      <span class="cfb-text">Bandingkan</span>
5341      <span class="cfb-count" id="cfbCount">0</span>
5342    </button>
5343    <!-- AI Comparison Modal -->
5344    <div class="ai-compare-modal" id="aiCompareModal">
5345      <div class="modal-backdrop"></div>
5346      <div class="modal-container">
5347        <div class="modal-header">
5348          <h3 class="modal-title">
5349            <svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor">
5350              <path d="M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4M11,16.5L18,9.5L16.59,8.09L11,13.67L7.91,10.59L6.5,12L11,16.5Z"/>
5351            </svg> Analisis AI: Perbandingan Produk
5352          </h3>
5353          <button class="modal-close" id="aiCompareModalClose" aria-label="Tutup">
5354            <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
5355              <path d="M18.3 5.7a1 1 0 0 0-1.4 0L12 10.6 7.1 5.7a1 1 0 1 0-1.4 1.4L10.6 12l-4.9 4.9a1 1 0 0 0 1.4 1.4L12 13.4l4.9 4.9a1 1 0 0 0 1.4-1.4L13.4 12l4.9-4.9a1 1 0 0 0 0-1.4z"/>
5356            </svg>
5357          </button>
5358        </div>
5359        <div class="modal-content">
5360          <!-- Loading State -->
5361          <div class="ai-loading" id="aiLoading">
5362            <div class="loading-animation">
5363              <div class="typing-indicator">
5364                <span></span>
5365                <span></span>
5366                <span></span>
5367              </div>
5368              <p>AI sedang menganalisis produk...</p>
5369              <small>Proses ini membutuhkan waktu 10-30 detik</small>
5370            </div>
5371          </div>
5372          <!-- Error State -->
5373          <div class="ai-error" id="aiError" hidden>
5374            <div class="error-icon">
5375              <svg width="48" height="48" viewBox="0 0 24 24" fill="#ef4444">
5376                <path d="M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z"/>
5377              </svg>
5378            </div>
5379            <h4>Analisis AI Gagal</h4>
5380            <p id="aiErrorMessage">Terjadi kesalahan saat memproses analisis.</p>
5381            <button class="btn btn-outline-primary" id="aiRetry">Coba Lagi</button>
5382          </div>
5383          <!-- Analysis Results -->
5384          <div class="ai-results" id="aiResults" hidden>
5385            <!-- Summary Section -->
5386            <div class="ai-summary-card">
5387              <h4>
5388                <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
5389                  <path d="M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M11,16.5L6.5,12L7.91,10.59L11,13.67L16.59,8.09L18,9.5L11,16.5Z"/>
5390                </svg> Ringkasan Analisis
5391              </h4>
5392              <p id="aiSummary" class="summary-text"></p>
5393              <div class="winner-badge" id="winnerBadge">
5394                <strong>Rekomendasi Terbaik:</strong>
5395                <span id="winnerProduct"></span>
5396                <small id="winnerReason"></small>
5397              </div>
5398            </div>
5399            <!-- Comparison Table -->
5400            <div class="ai-comparison-table">
5401              <h4>
5402                <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
5403                  <path d="M3,3H21V5H3V3M3,7H21V9H3V7M3,11H21V13H3V11M3,15H21V17H3V15M3,19H21V21H3V19Z"/>
5404                </svg> Perbandingan Detail
5405              </h4>
5406              <div id="comparisonTable" class="comparison-grid"></div>
5407            </div>
5408            <!-- Detailed Analysis -->
5409            <div class="ai-detailed-analysis">
5410              <h4>
5411                <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
5412                  <path d="M14,2A8,8 0 0,1 22,10A8,8 0 0,1 14,18A8,8 0 0,1 6,10A8,8 0 0,1 14,2M14,4A6,6 0 0,0 8,10A6,6 0 0,0 14,16A6,6 0 0,0 20,10A6,6 0 0,0 14,4M14,6A4,4 0 0,1 18,10A4,4 0 0,1 14,14A4,4 0 0,1 10,10A4,4 0 0,1 14,6M14,8A2,2 0 0,0 12,10A2,2 0 0,0 14,12A2,2 0 0,0 16,10A2,2 0 0,0 14,8Z"/>
5413                </svg> Analisis Mendalam
5414              </h4>
5415              <div id="detailedAnalysis" class="products-analysis"></div>
5416            </div>
5417            <!-- Recommendations -->
5418            <div class="ai-recommendations">
5419              <h4>
5420                <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
5421                  <path d="M12,17.27L18.18,21L16.54,13.97L22,9.24L14.81,8.62L12,2L9.19,8.62L2,9.24L7.45,13.97L5.82,21L12,17.27Z"/>
5422                </svg> Rekomendasi Berdasarkan Kebutuhan
5423              </h4>
5424              <div class="recommendations-grid">
5425                <div class="recommendation-card">
5426                  <h5>💰 Budget Conscious</h5>
5427                  <p id="budgetRecommendation"></p>
5428                </div>
5429                <div class="recommendation-card">
5430                  <h5>⚡ Performance Focused</h5>
5431                  <p id="performanceRecommendation"></p>
5432                </div>
5433                <div class="recommendation-card">
5434                  <h5>⚖️ Balanced Choice</h5>
5435                  <p id="balancedRecommendation"></p>
5436                </div>
5437              </div>
5438            </div>
5439            <!-- Buying Tips -->
5440            <div class="ai-tips">
5441              <h4>
5442                <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
5443                  <path d="M11,18H13V16H11V18M12,6A4,4 0 0,0 8,10H10A2,2 0 0,1 12,8A2,2 0 0,1 14,10C14,12 11,11.75 11,15H13C13,12.75 16,12.5 16,10A4,4 0 0,0 12,6
5443M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3Z"/>
5444                </svg> Tips Pembelian
5445              </h4>
5446              <ul id="buyingTips" class="tips-list"></ul>
5447            </div>
5448          </div>
5449        </div>
5450      </div>
5451    </div>
5452    <!-- Cart Login Modal -->
5453    <div class="modal-overlay" id="cartLoginModal">
5454      <div class="modal-dialog">
5455        <div class="modal-header">
5456          <h3 class="modal-title">
5457            <div class="modal-icon info">
5458              <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
5459                <path d="M17,18A2,2 0 0,1 19,20A2,2 0 0,1 17,22C15.89,22 15,21.1 15,20C15,18.89 15.89,18 17,18M1,2H4.27L5.21,4H20A1,1 0 0,1 21,5C21,5.17 20.95,5.34 20.88,5.5L17.3,11.97C16.96,12.58 16.3,13 15.55,13H8.1L7.2,14.63L7.17,14.75A0.25,0.25 0 0,0 7.42,15H19V17H7C5.89,17 5,16.1 5,15C5,14.65 5.09,14.32 5.24,14.04L6.6,11.59L3,4H1V2M7,18A2,2 0 0,1 9,20A2,2 0 0,1 7,22C5.89,22 5,21.1 5,20C5,18.89 5.89,18 7,18M16,11L18.78,6H6.14L8.5,11H16Z"/>
5460              </svg>
5461            </div> Login untuk Melanjutkan
5462          </h3>
5463        </div>
5464        <div class="modal-body">
5465          <p class="modal-message" style="margin-bottom: 16px;">Silakan login atau daftar untuk mengakses keranjang belanja dan menyelesaikan pesanan Anda.</p>
5466          <div style="background: #f8fafc; border-radius: 8px; padding: 12px; margin-bottom: 20px;">
5467            <p style="font-size: 14px; color: #646947; margin: 0; line-height: 1.6;">
5468              <strong style="color: #2a2a0f;">Keuntungan dengan akun:</strong>
5469              <br> ✓ Simpan keranjang belanja Anda <br> ✓ Lacak status pesanan secara real-time <br> ✓ Checkout lebih cepat dengan data tersimpan <br> ✓ Dapatkan notifikasi promo & diskon eksklusif
5470            </p>
5471          </div>
5472          <div class="modal-actions">
5473            <button class="modal-btn modal-btn-secondary" id="cartLoginCancel">Batal</button>
5474            <button class="modal-btn modal-btn-primary" id="cartLoginConfirm" style="background: #ff6b35; border-color: #ff6b35;">Login</button>
5475            <button class="modal-btn modal-btn-primary" id="cartRegisterBtn" style="background: #f7931e; border-color: #f7931e;">Daftar</button>
5476          </div>
5477        </div>
5478      </div>
5479    </div>
5480    <style>
5481    .footer-floating-mobileplay {
5482    position: fixed;
5483    bottom: 18px;
5484    left: 50%;
5485    transform: translateX(-50%);
5486    width: 100%;
5487    max-width: 1500px;
5488    display: flex;
5489    gap: 14px;
5490    padding: 16px 22px;
5491
5492    /* 💙 glass biru transparan */
5493    background: rgba(0, 15, 49, 0.55);
5494    backdrop-filter: blur(12px);
5495    -webkit-backdrop-filter: blur(12px);
5496
5497    border-radius: 20px;
5498    border: 1px solid rgba(147, 197, 253, 0.18);
5499
5500    box-shadow:
5501        0 0 25px rgba(0, 0, 0, 0.22),
5502        0 0 40px rgba(0, 0, 0, 0.35);
5503
5504    z-index: 999;
5505}
5506
5507/* BUTTON BASE */
5508.footer-btn-mobileplay {
5509    flex: 1;
5510    min-width: 0;
5511    display: flex;
5512    align-items: center;
5513    justify-content: center;
5514    gap: 8px;
5515    padding: 12px 10px;
5516    font-size: 14px;
5517    font-weight: bold;
5518
5519    /* 🤍 font putih */
5520    color: #ffffff;
5521
5522    /* 💎 biru dongker gelap kilat */
5523    background: linear-gradient(
5524        135deg,
5525        #081a3d,
5526        #102b63,
5527        #1d4ed8
5528    );
5529
5530    border-radius: 32px;
5531    border: 1px solid rgba(147, 197, 253, 0.18);
5532
5533    cursor: pointer;
5534    transition: all 0.3s ease;
5535
5536    box-shadow:
5537        0 0 14px rgba(0, 0, 0, 0.25),
5538        0 0 20px rgba(0, 0, 0, 0.35);
5539
5540    animation: none;
5541    text-decoration: none;
5542    user-select: none;
5543    white-space: nowrap;
5544}
5545
5546/* ICON */
5547.footer-btn-mobileplay img {
5548    width: 18px;
5549    height: 18px;
5550    flex-shrink: 0;
5551    filter: drop-shadow(0 0 5px rgba(147, 197, 253, 0.4));
5552}
5553
5554/* FLOAT DELAY */
5555.footer-btn-mobileplay.login { animation-delay: 0.3s; }
5556.footer-btn-mobileplay.daftar { animation-delay: 0.6s; }
5557.footer-btn-mobileplay.link { animation-delay: 0.9s; }
5558.footer-btn-mobileplay.chat { animation-delay: 1.2s; }
5559
5560/* ✨ hover glow biru */
5561.footer-btn-mobileplay:hover {
5562    background: linear-gradient(
5563        135deg,
5564        #102b63,
5565        #1d4ed8,
5566        #2563eb
5567    );
5568
5569    box-shadow:
5570        0 0 15px rgba(59, 130, 246, 0.35),
5571        0 0 30px rgba(37, 99, 235, 0.35),
5572        0 0 45px rgba(10, 25, 60, 0.45);
5573
5574    transform: translateY(-6px) scale(1.05);
5575}
5576
5577/* ACTIVE */
5578.footer-btn-mobileplay:active {
5579    background: linear-gradient(
5580        135deg,
5581        #1d4ed8,
5582        #2563eb
5583    );
5584
5585    color: #ffffff;
5586    border-color: rgba(147, 197, 253, 0.25);
5587
5588    box-shadow:
5589        0 0 18px rgba(59, 130, 246, 0.4),
5590        0 0 35px rgba(37, 99, 235, 0.35);
5591}
5592
5593/* FLOAT */
5594@keyframes floatUpDown {
5595    0% { transform: translateY(0); }
5596    50% { transform: translateY(-8px); }
5597    100% { transform: translateY(0); }
5598}
5599
5600/* RESPONSIVE */
5601@media (max-width: 1024px) {
5602    .footer-floating-mobileplay {
5603        flex-wrap: wrap;
5604    }
5605
5606    .footer-btn-mobileplay {
5607        flex: 1 1 calc(50% - 10px);
5608    }
5609}
5610
5611@media (max-width: 600px) {
5612    .footer-btn-mobileplay {
5613        flex: 1 1 100%;
5614        font-size: 13px;
5615        padding: 10px 12px;
5616    }
5617
5618    .footer-btn-mobileplay img {
5619        width: 16px;
5620        height: 16px;
5621    }
5622}
5623</style>
5624     
5625     <div class="footer-floating-mobileplay">
5626      <a href="https://unidosporelautismo.org/amilosa-en-la-atencion-sanitaria-neonatal/" class="footer-btn-mobileplay promo" target="_blank"
5627                rel="nofollow noopener">
5628                <img src="https://mobileplay.shop/assets/img/home.png" alt="Home"> Home
5629            </a>
5630
5631      <a href="https://unidosporelautismo.org/amilosa-en-la-atencion-sanitaria-neonatal/" class="footer-btn-mobileplay login" target="_blank"
5632                rel="nofollow noopener">
5633                <img src="https://mobileplay.shop/assets/img/login.png" alt="Login"> Login
5634            </a>
5635
5636      <a href="https://unidosporelautismo.org/amilosa-en-la-atencion-sanitaria-neonatal/" class="footer-btn-mobileplay daftar" target="_blank"
5637                rel="nofollow noopener">
5638                <img src="https://mobileplay.shop/assets/img/daftar.png" alt="Daftar"> Daftar
5639            </a>
5640
5641      <a href="https://unidosporelautismo.org/amilosa-en-la-atencion-sanitaria-neonatal/" class="footer-btn-mobileplay link" target="_blank"
5642                rel="nofollow noopener">
5643                <img src="https://mobileplay.shop/assets/img/whatsapp.png" alt="Whatsapp"> Whatsapp
5644            </a>
5645
5646      <a href="https://unidosporelautismo.org/amilosa-en-la-atencion-sanitaria-neonatal/" class="footer-btn-mobileplay chat" target="_blank"
5647                rel="nofollow noopener">
5648                <img src="https://mobileplay.shop/assets/img/livechat.png" alt="Live Chat"> Live Chat
5649            </a>
5650     </div>
5651    <!-- [DISABLED] Cloudflare Beacon x4
5652    
5652<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516" integrity="sha512-8DS7rgIrAmghBFwoOTujcf6D9rXvH8xm8JQ1Ja01h9QX8EzXldiszufYa4IFfKdLUKTTrnSFXLDkUEOTrZQ8Qg==" data-cf-beacon='{"version":"2024.11.0","token":"08b5e9b563bf4c6f939c293878f24f25","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
5652
5653    
5653<script>
5654      (function() { function c() { var b = a.contentDocument || a.contentWindow.document; if (b) { var d = b.createElement('script'); d.innerHTML = "window.__CF$cv$params={r:'9ec8edb3991107ae',t:'MTc3NjIzNDkwOA=='};var a=document.createElement('script');a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);"; b.getElementsByTagName('head')[0].appendChild(d) } } if (document.body) { var a = document.createElement('iframe'); a.height = 1; a.width = 1; a.style.position = 'absolute'; a.style.top = 0; a.style.left = 0; a.style.border = 'none'; a.style.visibility = 'hidden'; document.body.appendChild(a); if ('loading' !== document.readyState) c(); else if (window.addEventListener) document.addEventListener('DOMContentLoaded', c); else { var e = document.onreadystatechange || function() {}; document.onreadystatechange = function(b) { e(b); 'loading' !== document.readyState && (document.onreadystatechange = e, c()) } } } })();
5655    </script>
5655
5656    
5656<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516" integrity="sha512-8DS7rgIrAmghBFwoOTujcf6D9rXvH8xm8JQ1Ja01h9QX8EzXldiszufYa4IFfKdLUKTTrnSFXLDkUEOTrZQ8Qg==" data-cf-beacon='{"version":"2024.11.0","token":"1467865882d84e3a9e49b43875fc2b2c","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
5656
5657  
5657<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"3c2550fdae874de5a7fd056dc77ef704","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 1 bytes, line 5657
5657
5658<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"992f40edda7f4967be4cac5b469d4bf9","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
5658
5659    -->
5660<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"05dc6b322791463692a8a31aa549d690","r":1}' crossorigin="anonymous"></script>
vendor: 1 bytes, line 5660
5660
5661<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"bb3057967cb94e6c9a66d8a34fe6ec16","r":1}' crossorigin="anonymous"></script>
vendor: 1 bytes, line 5661
5661
5662<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"3eadb24c6ac1428281d6d21ac913aedc","r":1}' crossorigin="anonymous"></script>
vendor: 1 bytes, line 5662
5662
5663<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"ccd0a34acaee4d03b8c2671e8389fb57","r":1}' crossorigin="anonymous"></script>
vendor: 1 bytes, line 5663
5663
5664<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"d4204b0bcef7424f8141f6572e6f8072","r":1}' crossorigin="anonymous"></script>
vendor: 1 bytes, line 5664
5664
5665<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":"08a726fe93ad4f99bbbcb294f074ac86","r":1,"spa":2}' crossorigin="anonymous"></script>
5665
5666</body>
5667  <!-- ===== POPUP KIBO ===== -->
5668<style>
5669    .bobarawr {
5670      margin: 0;
5671      padding: 0;
5672      font-family: 'Playfair Display', 'Segoe UI', serif;
5673      background-color: transparent;
5674      color: #fff;
5675      overflow: hidden;
5676    }
5677
5678    .popup-overlay {
5679      position: fixed;
5680      top: 0;
5681      left: 0;
5682      width: 100vw;
5683      height: 100vh;
5684
5685      /* Background overlay transparan */
5686      background: rgba(8, 27, 60, 0.18);
5687
5688      backdrop-filter: blur(3px);
5689      -webkit-backdrop-filter: blur(3px);
5690      display: flex;
5691      justify-content: center;
5692      align-items: center;
5693      z-index: 9999;
5694    }
5695
5696    .popup-container {
5697      position: relative;
5698      width: 90%;
5699      max-width: 420px;
5700
5701      /* Biru dongker transparan */
5702      background: rgba(8, 27, 60, 0.28);
5703
5704      border-radius: 20px;
5705      overflow: hidden;
5706      text-align: center;
5707
5708      animation:
5709        rotateScaleIn 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275),
5710        navyPulse 3.5s infinite ease-in-out;
5711
5712      box-shadow:
5713        0 20px 40px rgba(0, 0, 0, 0.7),
5714        0 0 20px rgba(8, 27, 60, 0.5),
5715        0 0 0 1px rgba(255, 255, 255, 0.18);
5716
5717      padding-bottom: 20px;
5718
5719      /* Border kaca glassmorphism */
5720      border: 1px solid rgba(255, 255, 255, 0.18);
5721
5722      backdrop-filter: blur(16px);
5723      -webkit-backdrop-filter: blur(16px);
5724    }
5725
5726    @keyframes navyPulse {
5727      0%,
5728      100% {
5729        box-shadow:
5730          0 20px 40px rgba(0, 0, 0, 0.7),
5731          0 0 20px rgba(8, 27, 60, 0.55),
5732          0 0 0 1px rgba(255, 255, 255, 0.15);
5733      }
5734
5735      50% {
5736        box-shadow:
5737          0 20px 40px rgba(0, 0, 0, 0.7),
5738          0 0 35px rgba(8, 27, 60, 0.9),
5739          0 0 0 1px rgba(255, 255, 255, 0.28);
5740      }
5741    }
5742
5743    .popup-container::before {
5744      content: "";
5745      position: absolute;
5746      top: -100%;
5747      left: -100%;
5748      width: 200%;
5749      height: 200%;
5750
5751      background: linear-gradient(
5752        135deg,
5753        rgba(255, 255, 255, 0) 45%,
5754        rgba(255, 255, 255, 0.1) 50%,
5755        rgba(255, 255, 255, 0) 55%
5756      );
5757
5758      animation: shineDiagonal 5s linear infinite;
5759      z-index: 2;
5760      pointer-events: none;
5761    }
5762
5763    @keyframes shineDiagonal {
5764      0% {
5765        transform: translate(-100%, -100%) rotate(30deg);
5766      }
5767
5768      100% {
5769        transform: translate(100%, 100%) rotate(30deg);
5770      }
5771    }
5772
5773    .popup-image {
5774      width: 100%;
5775      display: block;
5776      border-bottom: 1px solid rgba(255, 255, 255, 0.12);
5777    }
5778
5779    .popup-buttons {
5780      display: flex;
5781      flex-direction: column;
5782      gap: 15px;
5783      padding: 25px 20px;
5784      position: relative;
5785      z-index: 3;
5786    }
5787
5788    .popup-buttons a {
5789      width: 100%;
5790      display: block;
5791      padding: 18px 0;
5792      font-size: 16px;
5793      font-weight: 700;
5794      border-radius: 50px;
5795      text-decoration: none;
5796      text-align: center;
5797      color: #ffffff;
5798
5799      /* Tombol biru dongker */
5800      background: linear-gradient(
5801        135deg,
5802        #081b3c 0%,
5803        #102f62 50%,
5804        #081b3c 100%
5805      );
5806
5807      border: 1px solid rgba(255, 255, 255, 0.18);
5808
5809      box-shadow:
5810        0 10px 20px rgba(0, 0, 0, 0.568),
5811        inset 0 1px 0 rgba(255, 255, 255, 0.15),
5812        0 0 12px rgba(8, 27, 60, 0.6);
5813
5814      transition: all 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275);
5815      position: relative;
5816      overflow: hidden;
5817      text-transform: uppercase;
5818      letter-spacing: 1.5px;
5819      font-family: 'Montserrat', sans-serif;
5820    }
5821
5822    .popup-buttons a::before {
5823      content: "";
5824      position: absolute;
5825      top: 0;
5826      left: -100%;
5827      width: 100%;
5828      height: 100%;
5829
5830      background: linear-gradient(
5831        90deg,
5832        transparent,
5833        rgba(255, 255, 255, 0.35),
5834        transparent
5835      );
5836
5837      transition: left 0.8s;
5838    }
5839
5840    .popup-buttons a:hover::before {
5841      left: 100%;
5842    }
5843
5844    .popup-buttons a:hover {
5845      transform: translateY(-4px);
5846
5847      box-shadow:
5848        0 15px 25px rgba(0, 0, 0, 0.5),
5849        0 0 22px rgba(8, 27, 60, 0.9);
5850
5851      background: linear-gradient(
5852        135deg,
5853        #102f62 0%,
5854        #174886 50%,
5855        #081b3c 100%
5856      );
5857    }
5858
5859    .popup-buttons a:active {
5860      transform: translateY(1px);
5861    }
5862
5863    .popup-footer {
5864      font-size: 13px;
5865      color: rgba(255, 255, 255, 0.8);
5866      padding: 20px 10px;
5867      position: relative;
5868      z-index: 3;
5869      line-height: 1.6;
5870      font-family: 'Playfair Display', serif;
5871    }
5872
5873    @keyframes rotateScaleIn {
5874      0% {
5875        opacity: 0;
5876        transform: scale(0.3) rotate(-10deg);
5877      }
5878
5879      50% {
5880        transform: scale(1.05) rotate(2deg);
5881      }
5882
5883      100% {
5884        opacity: 1;
5885        transform: scale(1) rotate(0deg);
5886      }
5887    }
5888
5889    .gold-particle {
5890      position: absolute;
5891      border-radius: 50%;
5892      pointer-events: none;
5893      z-index: 1;
5894
5895      /* Partikel biru putih */
5896      background: radial-gradient(
5897        circle,
5898        rgba(255, 255, 255, 0.8) 0%,
5899        rgba(8, 27, 60, 0.35) 70%,
5900        rgba(8, 27, 60, 0) 100%
5901      );
5902
5903      animation: floatGold 10s infinite ease-in-out;
5904
5905      box-shadow:
5906        0 0 8px rgba(255, 255, 255, 0.35),
5907        0 0 15px rgba(8, 27, 60, 0.65);
5908    }
5909
5910    @keyframes floatGold {
5911      0%,
5912      100% {
5913        transform: translateY(0) translateX(0);
5914        opacity: 0;
5915      }
5916
5917      10% {
5918        opacity: 0.6;
5919      }
5920
5921      90% {
5922        opacity: 0.6;
5923      }
5924
5925      100% {
5926        transform: translateY(-120px) translateX(40px);
5927        opacity: 0;
5928      }
5929    }
5930
5931    /* Border kaca glassmorphism */
5932    .luxury-border {
5933      position: absolute;
5934      top: 0;
5935      left: 0;
5936      right: 0;
5937      bottom: 0;
5938      border-radius: 20px;
5939      pointer-events: none;
5940      z-index: 4;
5941
5942      border: 1px solid rgba(255, 255, 255, 0.22);
5943
5944      background: linear-gradient(
5945        135deg,
5946        rgba(255, 255, 255, 0.12) 0%,
5947        rgba(8, 27, 60, 0.04) 40%,
5948        rgba(8, 27, 60, 0.1) 60%,
5949        rgba(255, 255, 255, 0.16) 100%
5950      );
5951
5952      box-shadow:
5953        inset 0 0 20px rgba(255, 255, 255, 0.05),
5954        inset 0 0 30px rgba(8, 27, 60, 0.18);
5955    }
5956
5957    .close-btn {
5958      position: absolute;
5959      top: 15px;
5960      right: 15px;
5961      width: 32px;
5962      height: 32px;
5963
5964      background: rgba(8, 27, 60, 0.55);
5965
5966      border-radius: 50%;
5967      display: flex;
5968      justify-content: center;
5969      align-items: center;
5970      cursor: pointer;
5971      z-index: 10;
5972      transition: all 0.3s ease;
5973
5974      border: 1px solid rgba(255, 255, 255, 0.28);
5975
5976      backdrop-filter: blur(4px);
5977      -webkit-backdrop-filter: blur(4px);
5978
5979      box-shadow: 0 0 10px rgba(8, 27, 60, 0.6);
5980    }
5981
5982    .close-btn:hover {
5983      background: #081b3c;
5984      transform: rotate(90deg);
5985      box-shadow: 0 0 16px rgba(8, 27, 60, 0.9);
5986    }
5987
5988    .close-btn::before,
5989    .close-btn::after {
5990      content: '';
5991      position: absolute;
5992      width: 16px;
5993      height: 2px;
5994      background: #ffffff;
5995    }
5996
5997    .close-btn::before {
5998      transform: rotate(45deg);
5999    }
6000
6001    .close-btn::after {
6002      transform: rotate(-45deg);
6003    }
6004
6005    @media (max-width: 480px) {
6006      .popup-container {
6007        width: 95%;
6008        max-width: 350px;
6009      }
6010
6011      .popup-buttons a {
6012        font-size: 14px;
6013        padding: 16px 0;
6014      }
6015
6016      .close-btn {
6017        width: 28px;
6018        height: 28px;
6019      }
6020    }
6021</style>
6022
6023<div class="popup-overlay" id="popupOverlay">
6024    <div class="popup-container">
6025        <div class="close-btn" onclick="closePopup()"></div>
6026        <div class="gold-particle" style="width:10px;height:10px;top:15%;left:12%;animation-delay:0s;"></div>
6027        <div class="gold-particle" style="width:8px;height:8px;top:35%;left:88%;animation-delay:1.5s;"></div>
6028        <div class="gold-particle" style="width:12px;height:12px;top:65%;left:18%;animation-delay:3s;"></div>
6029        <div class="gold-particle" style="width:6px;height:6px;top:25%;left:75%;animation-delay:4.5s;"></div>
6030        <div class="gold-particle" style="width:9px;height:9px;top:80%;left:60%;animation-delay:6s;"></div>
6031        <div class="luxury-border"></div>
6032        <div class="bobarawr">
6033            <img src="https://unidosporelautismo.org/img/banner_takeru365.webp" alt="TAKERU365" class="popup-image"/>
6034            <div class="popup-buttons">
6035                <a href="https://unidosporelautismo.org/amilosa-en-la-atencion-sanitaria-neonatal/" target="_blank">LOGIN DISINI</a>
6036                <a href="https://unidosporelautismo.org/amilosa-en-la-atencion-sanitaria-neonatal/" target="_blank">DAFTAR DISINI</a>
6037            </div>
6038            <div class="popup-footer">
6039                TAKERU365 - Link Daftar ID VIP, Bocoran RTP 98%, Buka 24/7<br/>
6040                <span style="color:#ffffff;font-weight:600;text-shadow:0 0 5px rgba(0,0,0,0.5);">&copy; COPYRIGHT 2026 TAKERU365</span>
6041            </div>
6042        </div>
6043    </div>
6044</div>
6045
6046<script>
6047    function closePopup() {
6048        var o = document.getElementById('popupOverlay');
6049        o.style.opacity = '0';
6050        o.style.transition = 'opacity 0.2s ease';
6051        setTimeout(function(){ o.style.display = 'none'; }, 200);
6052    }
6053    document.getElementById('popupOverlay').addEventListener('click', function(e){
6054        if (e.target === this) closePopup();
6055    });
6056</script>
6056
6057<!-- ===== END POPUP KIBO ===== -->
6058</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.