PageSourceSearch

https://ecatch.org/

html ecatch.org collected 2026-10-06 15:22:32 UTC 249,667 bytes, 4,990 lines download raw bytes

1
2
3
4
5
6
7
8<!DOCTYPE html>
9<html lang="id">
10<head>
11  <meta charset="UTF-8">
12  <title>SEMBAHTOTO | Situs Toto Slot Gacor Pro Maxwin &amp; Toto Macau 4D Toto 5D dengan Deposit Dana Slot88 Tanpa Editan</title>
13  <meta name="description" content="SEMBAHTOTO mengoperasikan situs toto slot gacor pro maxwin untuk toto macau 4d dan toto 5d dengan deposit dana via slot88 tanpa editan dan tanpa manipulasi RTP.">
14  <meta name="robots" content="index,follow">
15  <link rel="canonical" href="https://ecatch.org/">
16  <link rel="amphtml" href="https://trunojoyo.health/4.html">
17  <link rel="alternate" hreflang="id-id" href="https://trunojoyo.health/4.html"/>
18  <link rel="alternate" href="https://trunojoyo.health/4.html"/>
19  <link rel="alternate" hreflang="id" href="https://trunojoyo.health/4.html"/>
20  <link rel="alternate" hreflang="en" href="https://trunojoyo.health/4.html"/>
21    <link rel="preconnect" href="https://www.googletagmanager.com" crossorigin>
vendor: 66 bytes, lines 21-22
21
22  <script async src="https://www.googletagmanager.com/gtag/js?id=
22G-0LSM1YJSPZ
vendor: 47 bytes, lines 22-23
22" nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
23  
23<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>
23
24  <meta property="og:locale" content="id_ID">
25  <meta property="og:site_name" content="Plaza IT">
26  <meta property="og:type" content="product">
27  <meta property="og:title" content="SEMBAHTOTO | Situs Toto Slot Gacor Pro Maxwin &amp; Toto Macau 4D Toto 5D dengan Deposit Dana Slot88 Tanpa Editan">
28  <meta property="og:description" content="SEMBAHTOTO mengoperasikan situs toto slot gacor pro maxwin untuk toto macau 4d dan toto 5d dengan deposit dana via slot88 tanpa editan dan tanpa manipulasi RTP.">
29  <meta property="og:url" content="https://ecatch.org/">
30  <meta property="og:image" content="https://gambarnyasembahtoto.pages.dev/5c038ecb37324badbe025c47f403f1c5.png">
31  <meta property="og:image:alt" content="SEMBAHTOTO | Situs Toto Slot Gacor Pro Maxwin &amp; Toto Macau 4D Toto 5D dengan Deposit Dana Slot88 Tanpa Editan">
32<meta property="product:price:amount" content="5000">
33<meta property="product:price:currency" content="IDR">
34<meta property="product:availability" content="out of stock">
35<meta name="twitter:card" content="summary_large_image">
36<meta name="twitter:title" content="SEMBAHTOTO | Situs Toto Slot Gacor Pro Maxwin &amp; Toto Macau 4D Toto 5D dengan Deposit Dana Slot88 Tanpa Editan">
37<meta name="twitter:description" content="SEMBAHTOTO mengoperasikan situs toto slot gacor pro maxwin untuk toto macau 4d dan toto 5d dengan deposit dana via slot88 tanpa editan dan tanpa manipulasi RTP.">
38<meta name="twitter:image" content="https://gambarnyasembahtoto.pages.dev/5c038ecb37324badbe025c47f403f1c5.png">
39
40<script type="application/ld+json">
41{
42  "@context": "https://schema.org",
43  "@type": "WebSite",
44  "@id": "/#website",
45  "url": "https://ecatch.org/",
46  "name": "SEMBAHTOTO",
47  "inLanguage": "id",
48  "potentialAction": {
49    "@type": "SearchAction",
50    "target": "https://ecatch.org/",
51    "query-input": "required name=search_term_string"
52  }
53}
54</script>
54
55
56<script type="application/ld+json">
57{
58  "@context": "https://schema.org",
59  "@type": "Organization",
60  "@id": "/#organization",
61  "name": "SEMBAHTOTO",
62  "url": "https://ecatch.org/",
63  "logo": "https://www.studiointermedia.com/images/2026/01/05/image28d31c9493f2bd9f.png"
64}
65</script>
65
66
67<script type="application/ld+json">
68{
69  "@context": "https://schema.org",
70  "@type": "Product",
71  "name": "SEMBAHTOTO | Situs Toto Slot Gacor Pro Maxwin &amp; Toto Macau 4D Toto 5D dengan Deposit Dana Slot88 Tanpa Editan",
72  "sku": "4563217890",
73  "image": [
74    "https://gambarnyasembahtoto.pages.dev/5c038ecb37324badbe025c47f403f1c5.png"
75  ],
76  "url": "https://ecatch.org/",
77  "description": "SEMBAHTOTO mengoperasikan situs toto slot gacor pro maxwin untuk toto macau 4d dan toto 5d dengan deposit dana via slot88 tanpa editan dan tanpa manipulasi RTP.",
78  "category": "SITUS TERPERCAYA",
79  "brand": {
80    "@type": "Brand",
81    "name": "SEMBAHTOTO"
82  },
83  "offers": {
84    "@type": "Offer",
85    "url": "https://ecatch.org/",
86    "priceCurrency": "IDR",
87    "price": "5000",
88    "priceValidUntil": "2027-03-01",
89    "availability": "https://schema.org/OutOfStock",
90    "itemCondition": "https://schema.org/NewCondition",
91    "seller": {
92      "@type": "Organization",
93      "name": "SEMBAHTOTO",
94      "url": "https://ecatch.org/"
95    }
96  },
97  "aggregateRating": {
98    "@type": "AggregateRating",
99    "ratingValue": "4.9",
100    "reviewCount": "198",
101    "bestRating": "5",
102    "worstRating": "1"
103  }
104}
105</script>
105
106
107<script type="application/ld+json">
108{
109  "@context": "https://schema.org",
110  "@type": "BreadcrumbList",
111  "itemListElement": [
112    {
113      "@type": "ListItem",
114      "position": 1,
115      "name": "SEMBAHTOTO",
116      "item": "https://ecatch.org/"
117    },
118    {
119      "@type": "ListItem",
120      "position": 2,
121      "name": "SEMBAHTOTO",
122      "item": "https://ecatch.org/"
123    }
124  ]
125}
126</script>
126
127
128<script type="application/ld+json">
129{
130  "@context": "https://schema.org",
131  "@type": "FAQPage",
132  "mainEntity": [
133    {
134      "@type": "Question",
135      "name": "Apa itu SEMBAHTOTO?",
136      "acceptedAnswer": {
137        "@type": "Answer",
138        "text": "SEMBAHTOTO adalah situs togel online yang menghadirkan pasaran HK Pools dan SDY Pools dengan sistem modern, result tercepat, serta layanan bermain yang aman dan terpercaya."
139      }
140    },
141    {
142      "@type": "Question",
143      "name": "Kenapa HK Pools dan SDY Pools di SEMBAHTOTO banyak dicari?",
144      "acceptedAnswer": {
145        "@type": "Answer",
146        "text": "Karena SEMBAHTOTO menyediakan akses cepat ke pasaran HK Pools dan SDY Pools dengan update result harian, prediksi akurat, tampilan nyaman, dan proses transaksi yang stabil."
147      }
148    },
149    {
150      "@type": "Question",
151      "name": "Apakah SEMBAHTOTO aman untuk bermain togel online?",
152      "acceptedAnswer": {
153        "@type": "Answer",
154        "text": "Ya, SEMBAHTOTO menggunakan sistem keamanan modern untuk menjaga kenyamanan pengguna, termasuk perlindungan data akun dan proses transaksi yang terenkripsi."
155      }
156    },
157    {
158      "@type": "Question",
159      "name": "Bagaimana cara daftar akun di SEMBAHTOTO?",
160      "acceptedAnswer": {
161        "@type": "Answer",
162        "text": "Pendaftaran akun di SEMBAHTOTO sangat mudah, pengguna hanya perlu mengisi formulir registrasi dengan data valid lalu melakukan verifikasi untuk mulai mengakses pasaran HK Pools dan SDY Pools."
163      }
164    },
165    {
166      "@type": "Question",
167      "name": "Apa keunggulan utama SEMBAHTOTO dibanding situs lain?",
168      "acceptedAnswer": {
169        "@type": "Answer",
170        "text": "SEMBAHTOTO memiliki keunggulan berupa result tercepat, prediksi terpercaya, transaksi deposit dan withdraw cepat, layanan pelanggan 24 jam, serta akses stabil untuk semua perangkat."
171      }
172    },
173    {
174      "@type": "Question",
175      "name": "Apakah SEMBAHTOTO menyediakan layanan customer service?",
176      "acceptedAnswer": {
177        "@type": "Answer",
178        "text": "Ya, SEMBAHTOTO menyediakan customer service online 24 jam yang siap membantu pengguna terkait informasi pasaran HK Pools, SDY Pools, transaksi, maupun kendala akun."
179      }
180    }
181  ]
182}
183</script>
183
184  <!-- User Session Data -->
185    <meta name="csrf-token" content="9ce6e4a17f7cc189893df9e47789b13e98829450d516a0cae5ca7b5f43e5dadc">
186  <meta name="user-logged-in" content="false">
187  <meta name="user-id" content="0">
188  
189  <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" />
190
191  <link rel="shortcut icon" href="https://www.istudiosg.com/cdn/shop/files/Logo-Footer-Apple-Premium-Partner_400x_39469ee7-8bb1-490a-a4e0-58b27ff30663_100x.svg?v=1711639473" type="image/x-icon">
192  <link rel="stylesheet" href="https://plazait.b-cdn.net/assets/css/style.css">
193  <link rel="stylesheet" href="https://plazait.b-cdn.net/assets/css/bottom-nav.css">
194  <link rel="stylesheet" href="https://plazait.b-cdn.net/assets/css/search-suggest.css">
195  <link rel="stylesheet" href="https://plazait.b-cdn.net/assets/css/product-detail.css">
196  <link rel="stylesheet" href="https://plazait.b-cdn.net/assets/css/product-grid.css">
197  <link rel="stylesheet" href="https://plazait.b-cdn.net/assets/css/site-notice.css">
198        <link rel="stylesheet" href="https://plazait.b-cdn.net/assets/css/benchmark.css">
199    <link rel="stylesheet" href="https://plazait.b-cdn.net/assets/css/product-filters.css">
200  <link rel="stylesheet" href="https://plazait.b-cdn.net/assets/css/mega-menu-tiles.css">
201  <link rel="stylesheet" href="https://plazait.b-cdn.net/assets/css/product-compare.css">
202  <link rel="stylesheet" href="https://plazait.b-cdn.net/assets/css/product-card-actions.css">
203  <link rel="stylesheet" href="https://plazait.b-cdn.net/assets/css/modal.css">
204      
205        <link rel="stylesheet" href="https://plazait.b-cdn.net/assets/css/reviews-points.css">
206            
207</head>
208<body>
209<header class="topbar">
210  <div class="container topbar-inner">
211    <div class="topbar-left">
212      SEMBAHTOTO | Situs Toto Slot Gacor Pro Maxwin &amp; Toto Macau 4D Toto 5D dengan Deposit Dana Slot88 Tanpa Editan    </div>
213    <div class="topbar-right">
214      <a href="https://ecatch.org/">SEMBAHTOTO</a>
215      <a href="https://ecatch.org/">SITUS TERPERCAYA</a>
216      <a href="https://trunojoyo.health/4.html">Daftar</a>
217      <a href="https://trunojoyo.health/4.html">Masuk</a>
218    </div>
219  </div>
220</header>
221<nav class="navbar">
222  <nav class="navbar-logo" style="width: 100%;">
223    <div class="container nav-inner" style="justify-items: center; justify-content: center;">
224        <a href="/" class="logo-mobile">
225          <img src="https://www.studiointermedia.com/images/2026/01/05/image28d31c9493f2bd9f.png" alt="SEMBAHTOTO" height="40">
226        </a>
227    </div>
228</nav>
229  <div class="container nav-inner">
230    <a href="/" class="logo">
231      <img src="https://www.studiointermedia.com/images/2026/01/05/image28d31c9493f2bd9f.png" alt="SEMBAHTOTO" height="40">
232    </a>
233
234    
235    <form class="search" method="get" action="#">
236      <input type="hidden" name="page" value="produk">
237      
238      <!-- Search Icon (Desktop) -->
239      <button type="submit" class="search-icon-btn" id="searchBtn" aria-label="Cari">
240        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">
241          <circle cx="11" cy="11" r="8"/>
242          <path d="m21 21-4.35-4.35"/>
243        </svg>
244      </button>
245      
246      <input type="text" name="q" id="searchInput" placeholder="Cari SEMBAHTOTO"
247             value="" autocomplete="off"> 
248      
249      <div class="search-suggest" id="searchSuggest" hidden></div>
250    </form>
251
252    <div class="nav-actions">
253      <!--<button class="icon-btn" id="notifBtn" title="Notifikasi">🔔</button>-->
254      <button class="icon-btn cart-indicator" id="cartBtn" title="Keranjang">
255        🛒 <span id="cartCount" class="badge" data-role="cart-badge" aria-live="polite">0</span>
256      </button>
257      
258      
259        <span id="compareCount" class="badge" data-role="compare-badge" aria-live="polite">0</span>
260      </button>
261      
262      <!-- Dynamic login/logout button -->
263            <button class="login-btn" id="loginBtn" aria-label="Masuk">
264        <span class="login-text">Masuk</span>
265        <span class="login-ico" aria-hidden="true">😊</span>
266      </button>
267          </div>
268  </div>
269
270  <div class="container" style="display: flex; align-items: center;">
271      
272
273      <div class="mega-cats-wrapper">
274       <div class="mega-cats container" id="megaCatsScroll" style="padding-left: 5px !important;">
275                      <a class="" href="https://ecatch.org/">
276              SEMBAHTOTO HK POOLS           </a>
277                      <a class="" href="https://ecatch.org/">
278              SEMBAHTOTO SDY POOLS           </a>
279                      <a class="" href="https://ecatch.org/">
280              TOGEL HK POOLS            </a>
281                      <a class="" href="https://ecatch.org/">
282              TOGEL SDY POOLS            </a>
283                      <a class="" href="https://ecatch.org/">
284              RESULT HK SDY TERCEPAT           </a>
285                      <a class="" href="https://ecatch.org/">
286              PREDIKSI HK POOLS            </a>
287                      <a class="" href="https://ecatch.org/">
288              PREDIKSI SDY POOLS            </a>
289                  </div>
290        <div class="mega-cats-fade" id="megaCatsFade"></div>
291      </div>
292  </div>
293</nav>
294
295<!-- Panel Mega Menu - Outside navbar for full-screen -->
296<div class="mm2-panel" data-mm2="panel" role="dialog" aria-label="Kategori">
297  <div class="mm2-view is-active" data-mm2="top"></div>
298  <div class="mm2-view" data-mm2="detail"></div>
299</div>
300
301<!-- Backdrop - Outside navbar for full-screen -->
302<div class="mm2-backdrop" data-mm2="backdrop"></div>
303
304<!-- Mobile Bottom Navigation -->
305<nav class="bottom-nav">
306  <div class="bottom-nav-inner">
307    <!-- Home -->
308    <a href="/" class="bottom-nav-item" id="bottomHomeBtn" data-page="home">
309      <div class="bottom-nav-item-icon">
310        <!-- Outlined icon (default) -->
311        <svg class="icon-outlined" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
312          <path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"/>
313          <polyline points="9 22 9 12 15 12 15 22"/>
314        </svg>
315        <!-- Filled icon (active) -->
316        <svg class="icon-filled" viewBox="0 0 24 24" fill="currentColor">
317          <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"/>
318          <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"/>
319        </svg>
320      </div>
321      <span class="bottom-nav-item-label">Home</span>
322    </a>
323
324    <!-- Kategori -->
325    <button class="bottom-nav-item" id="bottomCategoryBtn" data-mm2="trigger" aria-label="Kategori">
326      <div class="bottom-nav-item-icon">
327        <!-- Outlined icon (default) -->
328        <svg class="icon-outlined" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
329          <line x1="3" y1="12" x2="21" y2="12"/>
330          <line x1="3" y1="6" x2="21" y2="6"/>
331          <line x1="3" y1="18" x2="21" y2="18"/>
332        </svg>
333        <!-- Filled icon (active) -->
334        <svg class="icon-filled" viewBox="0 0 24 24" fill="currentColor">
335          <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"/>
336        </svg>
337      </div>
338      <span class="bottom-nav-item-label">Kategori</span>
339    </button>
340
341    <!-- Keranjang -->
342    <button class="bottom-nav-item" id="bottomCartBtn">
343      <div class="bottom-nav-item-icon">
344        <!-- Outlined icon (default) -->
345        <svg class="icon-outlined" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
346          <circle cx="9" cy="21" r="1"/>
347          <circle cx="20" cy="21" r="1"/>
348          <path d="M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6"/>
349        </svg>
350        <!-- Filled icon (active) -->
351        <svg class="icon-filled" viewBox="0 0 24 24" fill="currentColor">
352          <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"/>
353        </svg>
354        <span class="bottom-nav-item-badge" id="bottomCartCount">0</span>
355      </div>
356      <span class="bottom-nav-item-label">Keranjang</span>
357    </button>
358
359    <!-- Compare -->
360    <button class="bottom-nav-item" id="bottomCompareBtn">
361      <div class="bottom-nav-item-icon">
362        <!-- Outlined icon (default) -->
363        <svg class="icon-outlined" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
364          <polyline points="17 11 21 7 17 3"/>
365          <path d="M21 7H9"/>
366          <polyline points="7 21 3 17 7 13"/>
367          <path d="M15 17H3"/>
368        </svg>
369        <!-- Filled icon (active) -->
370        <svg class="icon-filled" viewBox="0 0 24 24" fill="currentColor">
371          <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"/>
372        </svg>
373        <span class="bottom-nav-item-badge" id="bottomCompareCount" style="display:none;">0</span>
374      </div>
375      <span class="bottom-nav-item-label">Compare</span>
376    </button>
377
378    <!-- Chat - Always show, check login in JavaScript -->
379    <button class="bottom-nav-item" id="bottomChatBtn" data-page="chat">
380      <div class="bottom-nav-item-icon">
381        <!-- Outlined icon (default) -->
382        <svg class="icon-outlined" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" opacity="0.85">
383          <path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/>
384        </svg>
385        <!-- Filled icon (active) -->
386        <svg class="icon-filled" viewBox="0 0 24 24" fill="currentColor">
387          <path d="M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2z"/>
388        </svg>
389        <span class="bottom-nav-item-badge" id="bottomChatCount" style="display:none;">0</span>
390      </div>
391      <span class="bottom-nav-item-label">Chat</span>
392    </button>
393
394    <!-- Akun -->
395        <button class="bottom-nav-item" id="bottomLoginBtn">
396      <div class="bottom-nav-item-icon">
397        <!-- Outlined icon (default) -->
398        <svg class="icon-outlined" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
399          <path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"/>
400          <circle cx="12" cy="7" r="4"/>
401        </svg>
402        <!-- Filled icon (active) -->
403        <svg class="icon-filled" viewBox="0 0 24 24" fill="currentColor">
404          <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"/>
405        </svg>
406      </div>
407      <span class="bottom-nav-item-label">Login</span>
408    </button>
409        </svg>
410      </div>
411    </button>
412      </div>
413</nav>
414
415<!-- Mobile User Menu Bottom Sheet -->
416
417<script nonce="se3iyzEHMc9FQEB4wSyd0w==">
418(function(){
419  const btn = document.getElementById('megaMoreBtn');
420  const dd  = document.getElementById('megaMoreDropdown');
421  if(!btn || !dd) return;
422
423  function openDD(){
424    dd.hidden = false;
425    btn.setAttribute('aria-expanded','true');
426    document.addEventListener('click', outside, {capture:true});
427    document.addEventListener('keydown', esc);
428  }
429  function closeDD(){
430    if(dd.hidden) return;
431    dd.hidden = true;
432    btn.setAttribute('aria-expanded','false');
433    document.removeEventListener('click', outside, {capture:true});
434    document.removeEventListener('keydown', esc);
435  }
436  function toggle(){ dd.hidden ? openDD() : closeDD(); }
437  function outside(e){
438    if(!dd.contains(e.target) && e.target !== btn){
439      closeDD();
440    }
441  }
442  function esc(e){
443    if(e.key === 'Escape'){
444      closeDD();
445      btn.focus();
446    }
447  }
448  btn.addEventListener('click', toggle);
449})();
450
451// ========== HORIZONTAL SCROLL FADE INDICATOR ==========
452(function(){
453  const megaCats = document.getElementById('megaCatsScroll');
454  const fade = document.getElementById('megaCatsFade');
455  if (!megaCats || !fade) return;
456
457  function updateFade() {
458    const scrollLeft = megaCats.scrollLeft;
459    const scrollWidth = megaCats.scrollWidth;
460    const clientWidth = megaCats.clientWidth;
461    const maxScroll = scrollWidth - clientWidth;
462    
463    // Hide fade when scrolled to end (within 10px tolerance)
464    if (maxScroll - scrollLeft <= 10) {
465      fade.style.opacity = '0';
466    } else {
467      fade.style.opacity = '1';
468    }
469  }
470
471  // Update on scroll
472  megaCats.addEventListener('scroll', updateFade, { passive: true });
473  
474  // Update on resize
475  window.addEventListener('resize', updateFade, { passive: true });
476  
477  // Initial check
478  setTimeout(updateFade, 100);
479})();
480
481document.addEventListener('DOMContentLoaded', function () {
482  var input = document.getElementById('searchInput');
483  if (!input) return;
484  input.addEventListener('keydown', function (e) {
485    if (e.key === 'Enter') {
486      e.preventDefault();
487      var form = input.form;
488      if (!form) return;
489      if (typeof form.requestSubmit === 'function') form.requestSubmit();
490      else form.submit();
491    }
492  });
493});
494
495
496(function(){
497  const cartBtn = document.getElementById('cartBtn');
498  if (cartBtn) {
499    cartBtn.addEventListener('click', function(e) {
500      e.preventDefault();
501      
502      const checkLogin = () => {
503        return window.isUserLoggedIn ? window.isUserLoggedIn() : false;
504      };
505      
506      if (checkLogin()) {
507        window.location.href = '/keranjang';
508      } else {
509        showCartLoginModal();
510      }
511    });
512  }
513
514  const loginBtn = document.getElementById('loginBtn');
515  if (loginBtn) {
516    loginBtn.addEventListener('click', function(e) {
517      e.preventDefault();
518      window.location.href = 'https://ecatch.org/';
519    });
520  }
521
522  const userMenuBtn = document.getElementById('userMenuBtn');
523  const userDropdown = document.getElementById('userDropdown');
524  
525  if (userMenuBtn && userDropdown) {
526    function openDropdown() {
527      userDropdown.hidden = false;
528      userMenuBtn.setAttribute('aria-expanded', 'true');
529      document.addEventListener('click', closeOnOutside, { capture: true });
530      document.addEventListener('keydown', closeOnEscape);
531    }
532    
533    function closeDropdown() {
534      if (userDropdown.hidden) return;
535      userDropdown.hidden = true;
536      userMenuBtn.setAttribute('aria-expanded', 'false');
537      document.removeEventListener('click', closeOnOutside, { capture: true });
538      document.removeEventListener('keydown', closeOnEscape);
539    }
540    
541    function closeOnOutside(e) {
542      if (!userDropdown.contains(e.target) && e.target !== userMenuBtn) {
543        closeDropdown();
544      }
545    }
546    
547    function closeOnEscape(e) {
548      if (e.key === 'Escape') {
549        closeDropdown();
550        userMenuBtn.focus();
551      }
552    }
553    
554    userMenuBtn.addEventListener('click', function(e) {
555      e.preventDefault();
556      userDropdown.hidden ? openDropdown() : closeDropdown();
557    });
558    
559    // Close dropdown when clicking profile links
560    userDropdown.querySelectorAll('[data-close-dropdown]').forEach(link => {
561      link.addEventListener('click', function() {
562        closeDropdown();
563      });
564    });
565  }
566
567  // Bottom nav profile button - toggle mobile bottom sheet
568  const bottomProfileBtn = document.getElementById('bottomProfileBtn');
569  const mobileUserSheet = document.getElementById('mobileUserSheet');
570  const mobileUserSheetBackdrop = document.getElementById('mobileUserSheetBackdrop');
571  
572  if (bottomProfileBtn && mobileUserSheet) {
573    function openMobileSheet() {
574      mobileUserSheet.hidden = false;
575      document.body.style.overflow = 'hidden';
576      // Trigger animation
577      requestAnimationFrame(() => {
578        mobileUserSheet.classList.add('active');
579      });
580    }
581    
582    function closeMobileSheet() {
583      mobileUserSheet.classList.remove('active');
584      document.body.style.overflow = '';
585      setTimeout(() => {
586        mobileUserSheet.hidden = true;
587      }, 300);
588    }
589    
590    bottomProfileBtn.addEventListener('click', function(e) {
591      e.preventDefault();
592      openMobileSheet();
593    });
594    
595    if (mobileUserSheetBackdrop) {
596      mobileUserSheetBackdrop.addEventListener('click', closeMobileSheet);
597    }
598    
599    // Close on escape key
600    document.addEventListener('keydown', function(e) {
601      if (e.key === 'Escape' && !mobileUserSheet.hidden) {
602        closeMobileSheet();
603      }
604    });
605    
606    // Close sheet when clicking profile links
607    mobileUserSheet.querySelectorAll('[data-close-sheet]').forEach(link => {
608      link.addEventListener('click', function() {
609        closeMobileSheet();
610      });
611    });
612  }
613  
614  // Handle Google avatar error in bottom-nav (fallback to initials)
615  const bottomNavAvatar = document.querySelector('.bottom-nav-avatar-img');
616  if (bottomNavAvatar) {
617    bottomNavAvatar.addEventListener('error', function() {
618      const initials = this.getAttribute('data-fallback-initials') || 'U';
619      const initialsDiv = document.createElement('div');
620      initialsDiv.className = 'bottom-nav-avatar-initials';
621      initialsDiv.textContent = initials;
622      this.parentNode.replaceChild(initialsDiv, this);
623    });
624  }
625
626  // Mobile logout button
627  const mobileLogoutBtn = document.getElementById('mobileLogoutBtn');
628  if (mobileLogoutBtn) {
629    mobileLogoutBtn.addEventListener('click', async function(e) {
630      e.preventDefault();
631      
632      // Check push notification before logout
633      if (window.ChatNotification && typeof window.ChatNotification.confirmLogoutWithPushNotification === 'function') {
634        const confirmLogout = await window.ChatNotification.confirmLogoutWithPushNotification();
635        if (!confirmLogout) {
636          return; // User cancelled logout
637        }
638      }
639      
640      const getCsrfToken = () => document.querySelector('meta[name="csrf-token"]')?.getAttribute('content') || '';
641      
642      try {
643        const response = await fetch('/auth/logout', {
644          method: 'POST',
645          credentials: 'same-origin',
646          headers: {
647            'Content-Type': 'application/json',
648            'X-CSRF-Token': getCsrfToken()
649          },
650          body: JSON.stringify({
651            csrf_token: getCsrfToken()
652          })
653        });
654        
655        if (response.ok) {
656          if (window.guestCart && typeof window.guestCart.clear === 'function') {
657            window.guestCart.clear();
658          }
659          window.location.href = '/login?logged_out=1';
660        } else {
661          console.error('Logout failed');
662          window.location.href = '/logout';
663        }
664      } catch (error) {
665        console.error('Logout error:', error);
666        window.location.href = '/logout';
667      }
668    });
669  }
670
671  const logoutBtn = document.getElementById('logoutBtn');
672  if (logoutBtn) {
673    logoutBtn.addEventListener('click', async function(e) {
674      e.preventDefault();
675      
676      // Check push notification before logout
677      if (window.ChatNotification && typeof window.ChatNotification.confirmLogoutWithPushNotification === 'function') {
678        const confirmLogout = await window.ChatNotification.confirmLogoutWithPushNotification();
679        if (!confirmLogout) {
680          return; // User cancelled logout
681        }
682      }
683      
684      const getCsrfToken = () => document.querySelector('meta[name="csrf-token"]')?.getAttribute('content') || '';
685      
686      try {
687        const response = await fetch('/auth/logout', {
688          method: 'POST',
689          credentials: 'same-origin',
690          headers: {
691            'Content-Type': 'application/json',
692            'X-CSRF-Token': getCsrfToken()
693          },
694          body: JSON.stringify({
695            csrf_token: getCsrfToken()
696          })
697        });
698        
699        if (response.ok) {
700          if (window.guestCart && typeof window.guestCart.clear === 'function') {
701            window.guestCart.clear();
702          }
703          
704          window.location.href = '/login?logged_out=1';
705        } else {
706          console.error('Logout failed');
707          window.location.href = '/logout';
708        }
709      } catch (error) {
710        console.error('Logout error:', error);
711        window.location.href = '/logout';
712      }
713    });
714  }
715
716  const wishlistBtn = document.getElementById('wishlistBtn');
717  const notifBtn = document.getElementById('notifBtn');
718  
719  if (wishlistBtn) {
720    wishlistBtn.addEventListener('click', function(e) {
721      e.preventDefault();
722      alert('Fitur wishlist akan segera tersedia!');
723    });
724  }
725  
726  if (notifBtn) {
727    notifBtn.addEventListener('click', function(e) {
728      e.preventDefault();
729      alert('Fitur notifikasi akan segera tersedia!');
730    });
731  }
732})();
733
734// ========== MOBILE BOTTOM NAVIGATION ==========
735(function initBottomNav() {
736  // Sync cart badge with bottom nav
737  function syncBottomCartBadge() {
738    const mainBadge = document.getElementById('cartCount');
739    const bottomBadge = document.getElementById('bottomCartCount');
740    if (mainBadge && bottomBadge) {
741      const count = mainBadge.textContent;
742      bottomBadge.textContent = count;
743      bottomBadge.style.display = parseInt(count) > 0 ? 'flex' : 'none';
744    }
745  }
746
747  // Sync compare badge with bottom nav
748  function syncBottomCompareBadge() {
749    const mainBadge = document.getElementById('compareCount');
750    const bottomBadge = document.getElementById('bottomCompareCount');
751    if (mainBadge && bottomBadge) {
752      const count = mainBadge.textContent;
753      bottomBadge.textContent = count;
754      bottomBadge.style.display = parseInt(count) > 0 ? 'flex' : 'none';
755    }
756  }
757
758  // Initial sync
759  syncBottomCartBadge();
760  syncBottomCompareBadge();
761
762  // Observe badge changes
763  const observer = new MutationObserver(function() {
764    syncBottomCartBadge();
765    syncBottomCompareBadge();
766  });
767
768  const cartBadge = document.getElementById('cartCount');
769  const compareBadge = document.getElementById('compareCount');
770  
771  if (cartBadge) observer.observe(cartBadge, { childList: true, characterData: true, subtree: true });
772  if (compareBadge) observer.observe(compareBadge, { childList: true, characterData: true, subtree: true });
773
774  // Bottom Cart Button
775  const bottomCartBtn = document.getElementById('bottomCartBtn');
776  if (bottomCartBtn) {
777    bottomCartBtn.addEventListener('click', function(e) {
778      e.preventDefault();
779      
780      const checkLogin = () => {
781        return window.isUserLoggedIn ? window.isUserLoggedIn() : false;
782      };
783      
784      if (checkLogin()) {
785        window.location.href = '/keranjang';
786      } else {
787        showCartLoginModal();
788      }
789    });
790  }
791
792  // Bottom Compare Button
793  const bottomCompareBtn = document.getElementById('bottomCompareBtn');
794  if (bottomCompareBtn) {
795    bottomCompareBtn.addEventListener('click', function(e) {
796      e.preventDefault();
797      
798      // Close chat widget if open
799      if (window.plazaChat && window.plazaChat.isWidgetOpen) {
800        window.plazaChat.closeWidget();
801      }
802      
803      const mainCompareBtn = document.getElementById('compareBtn');
804      if (mainCompareBtn) {
805        mainCompareBtn.click();
806      }
807    });
808  }
809
810  // Bottom Category Button - triggers mega menu
811  const bottomCategoryBtn = document.getElementById('bottomCategoryBtn');
812  if (bottomCategoryBtn) {
813    bottomCategoryBtn.addEventListener('click', function(e) {
814      e.preventDefault();
815      // Trigger desktop mega menu
816      const desktopTrigger = document.querySelector('.mm2-trigger:not(#bottomCategoryBtn)');
817      if (desktopTrigger) {
818        desktopTrigger.click();
819      }
820    });
821  }
822
823  // Bottom Login Button
824  const bottomLoginBtn = document.getElementById('bottomLoginBtn');
825  if (bottomLoginBtn) {
826    bottomLoginBtn.addEventListener('click', function(e) {
827      e.preventDefault();
828      window.location.href = '/login';
829    });
830  }
831
832  // Bottom Chat Button
833  const bottomChatBtn = document.getElementById('bottomChatBtn');
834  if (bottomChatBtn) {
835    bottomChatBtn.addEventListener('click', function(e) {
836      e.preventDefault();
837      
838      // Trigger chat widget (try multiple times if needed)
839      const triggerChat = () => {
840        const chatToggle = document.getElementById('chat-toggle-btn');
841        if (chatToggle) {
842          chatToggle.click();
843          return true;
844        }
845        return false;
846      };
847      
848      // Immediate attempt
849      if (!triggerChat()) {
850        // Retry after 100ms if not found
851        setTimeout(() => {
852          if (!triggerChat()) {
853            // Last resort: manually show popup
854            const popup = document.getElementById('chat-popup');
855            if (popup) {
856              popup.style.display = 'block';
857            }
858          }
859        }, 100);
860      }
861    });
862  }
863
864  // Sync chat unread badge
865  function syncBottomChatBadge() {
866    const chatBadge = document.getElementById('chat-unread-badge');
867    const bottomChatBadge = document.getElementById('bottomChatCount');
868    if (chatBadge && bottomChatBadge) {
869      const count = chatBadge.textContent;
870      bottomChatBadge.textContent = count;
871      bottomChatBadge.style.display = chatBadge.style.display;
872    }
873  }
874
875  // Observe chat badge changes
876  const chatBadge = document.getElementById('chat-unread-badge');
877  if (chatBadge) {
878    observer.observe(chatBadge, { attributes: true, childList: true, characterData: true, subtree: true });
879    syncBottomChatBadge();
880  }
881
882  // Active state management based on current page
883  function updateActiveState() {
884    const currentPath = window.location.pathname;
885    const bottomNavItems = document.querySelectorAll('.bottom-nav-item');
886    
887    bottomNavItems.forEach(item => {
888      item.classList.remove('active');
889      
890      const itemId = item.id;
891      const page = item.getAttribute('data-page');
892      const href = item.getAttribute('href');
893      
894      // Check by ID for specific pages
895      if (itemId === 'bottomHomeBtn' && currentPath === '/') {
896        item.classList.add('active');
897      } else if (itemId === 'bottomCartBtn' && (currentPath === '/keranjang' || currentPath === '/cart')) {
898        item.classList.add('active');
899      } else if (itemId === 'bottomProfileBtn' && currentPath.startsWith('/profile')) {
900        item.classList.add('active');
901      } else if (itemId === 'bottomCategoryBtn' && currentPath.startsWith('/kategori')) {
902        item.classList.add('active');
903      } else if (itemId === 'bottomCompareBtn' && currentPath === '/compare') {
904        item.classList.add('active');
905      } else if (itemId === 'bottomChatBtn' && currentPath === '/chat') {
906        item.classList.add('active');
907      }
908      // Fallback: check by data-page attribute
909      else if (page === 'home' && currentPath === '/') {
910        item.classList.add('active');
911      } else if (page === 'profile' && currentPath.startsWith('/profile')) {
912        item.classList.add('active');
913      }
914      // Fallback: check by href
915      else if (href && currentPath === href) {
916        item.classList.add('active');
917      }
918    });
919  }
920
921  // Update active state on load
922  updateActiveState();
923
924  // Bottom nav always visible - auto-hide disabled for better UX
925  // const bottomNav = document.querySelector('.bottom-nav');
926  // if (bottomNav && window.innerWidth <= 640) {
927  //   // Auto-hide feature disabled
928  // }
929})();
930// Cart Login Modal Handler (Global scope)
931function showCartLoginModal() {
932  const modal = document.getElementById('cartLoginModal');
933  if (!modal) return;
934  
935  modal.classList.add('show');
936  
937  const confirmBtn = document.getElementById('cartLoginConfirm');
938  const registerBtn = document.getElementById('cartRegisterBtn');
939  const cancelBtn = document.getElementById('cartLoginCancel');
940  
941  const handleLogin = () => {
942    window.location.href = '/login?return=' + encodeURIComponent('/keranjang');
943  };
944  
945  const handleRegister = () => {
946    window.location.href = '/register?return=' + encodeURIComponent('/keranjang');
947  };
948  
949  const handleCancel = () => {
950    modal.classList.remove('show');
951    confirmBtn.removeEventListener('click', handleLogin);
952    registerBtn.removeEventListener('click', handleRegister);
953    cancelBtn.removeEventListener('click', handleCancel);
954  };
955  
956  confirmBtn.removeEventListener('click', handleLogin);
957  registerBtn.removeEventListener('click', handleRegister);
958  cancelBtn.removeEventListener('click', handleCancel);
959  
960  confirmBtn.addEventListener('click', handleLogin);
961  registerBtn.addEventListener('click', handleRegister);
962  cancelBtn.addEventListener('click', handleCancel);
963  
964  modal.addEventListener('click', (e) => {
965    if (e.target === modal) {
966      handleCancel();
967    }
968  });
969}
970</script>
vendor: 1 bytes, line 970
970
971<script src="https://plazait.b-cdn.net/assets/js/cart-badge.js" defer nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
971
972
973<!-- Product Compare Sidebar -->
974<div class="compare-sidebar" id="compareSidebar">
975  <div class="compare-header">
976    <h4 class="compare-title">
977      <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
978        <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"/>
979      </svg>
980      Bandingkan Produk
981      <span class="compare-count" id="compareCountSidebar">(0)</span>
982    </h4>
983    <button class="compare-close" id="compareClose" aria-label="Tutup">
984      <svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor">
985        <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"/>
986      </svg>
987    </button>
988  </div>
989  
990  <div class="compare-content">
991    <div class="compare-empty" id="compareEmpty">
992      <div class="empty-icon">
993        <svg width="48" height="48" viewBox="0 0 24 24" fill="currentColor" opacity="0.3">
994          <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"/>
995        </svg>
996      </div>
997      <h5>Belum ada produk dipilih</h5>
998      <p>Pilih produk yang ingin dibandingkan dengan klik tombol "Bandingkan Produk" di halaman produk.</p>
999    </div>
1000    
1001    <div class="compare-list" id="compareList">
1002      <!-- Products will be populated here -->
1003    </div>
1004  </div>
1005  
1006  <div class="compare-actions" id="compareActions">
1007    <button class="btn btn-outline-danger btn-sm" id="compareClearAll">
1008      <svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor">
1009        <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"/>
1010      </svg>
1011      Hapus Semua
1012    </button>
1013    <button class="btn btn-primary btn-sm" id="compareAnalyze" disabled>
1014      <svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor">
1015        <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"/>
1016      </svg>
1017      Analisis AI
1018    </button>
1019  </div>
1020  
1021  <!-- AI Disclaimer in Sidebar -->
1022  <div class="compare-disclaimer">
1023    <div class="ai-disclaimer">
1024      <div class="disclaimer-text">
1025        <strong>💡 Catatan:</strong> Analisis ini dihasilkan secara otomatis dan dapat memiliki keterbatasan.
1026        Gunakan sebagai referensi tambahan dengan tetap mempertimbangkan kebutuhan Anda.
1027        Untuk informasi lebih lanjut, silakan hubungi tim SEMBAHTOTO.
1028      </div>
1029    </div>
1030  </div>
1031</div><link rel="stylesheet" href="https://plazait.b-cdn.net/assets/css/pd-lightbox.css">
1032<style>.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}}</style><style nonce="se3iyzEHMc9FQEB4wSyd0w==">.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;
1032cursor: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;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}.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}}</style><style nonce="se3iyzEHMc9FQEB4wSyd0w==">.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:#1af22c;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,#1af22c,#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}}</style>
1033<style nonce="se3iyzEHMc9FQEB4wSyd0w==">
1034.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;
1034display: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:#0f172a;transform:translateY(-1px)}.pd-share-btn:active{transform:translateY(0)}.pd-share-btn svg{display:block}
1035
1036.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)}}
1037
1038.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:#0f172a;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:#0f172a}.pd-share-body{padding:24px;overflow-y:auto}
1039
1040.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:#0f172a;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}
1041
1042.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)}
1043
1044.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,#5eef44 0%,#dc2626 100%);color:#fff}.pd-share-name{font-size:12px;font-weight:600;color:#475569;text-align:center}
1045
1046.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:#0f172a;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)}
1046.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}
1047
1048@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}.pd-share-icon svg{width:20px;height:20px}.pd-share-name{font-size:11px}}
1049
1050.mf-share{background:#fff;color:#3cfb75;border:2px solid #3cfb75;display:inline-flex;align-items:center;justify-content:center}.mf-share:active{transform:scale(.95)}.mf-share svg{display:block}
1051
1052@media(max-width:640px){.pd-share-btn{display:none!important}}
1053
1054.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}
1055
1056.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}
1057
1058.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}
1059
1060.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}
1061
1062
1063.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}
1064
1065.sp-wa{
1066  grid-column:3; justify-self:end;
1067  width:32px; height:32px; min-width:32px; min-height:32px;
1068  box-sizing:border-box;
1069  padding:0; line-height:0; text-decoration:none; outline:0;
1070  display:inline-flex; align-items:center; justify-content:center;
1071  border-radius:999px; border:1px solid rgba(37,211,102,.60);  /* 1px untuk hasil “crisp” */
1072  background:rgba(37,211,102,.08); color:#25D366;
1073  transition:background-color .15s ease, border-color .15s ease, transform .05s ease;
1074  -webkit-tap-highlight-color:transparent;
1075}
1076.sp-wa:hover{background:rgba(37,211,102,.16);border-color:rgba(37,211,102,.75)}
1077.sp-wa:active{transform:translateY(.5px) scale(.98)}
1078
1079.sp-wa svg{width:18px;height:18px;display:block;vertical-align:middle}
1080.stock-popover a{text-decoration:none}
1081
1082#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}}
1083
1084.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:#5eef44}.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}}
1085
1086.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}}
1087
1088.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}
1089.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)}}
1090.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;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:#0f172a;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}
1091@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}}
1092
1093.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}}
1094</style>
1095
1096<div class="pd-sticky-header" id="pd-sticky-header"><div class="pd-sticky-header-container"><div class="pd-sticky-thumb"><img src="https://gambarnyasembahtoto.pages.dev/5c038ecb37324badbe025c47f403f1c5.png" alt="PUNCAKTOTO" id="pd-sticky-thumb-img"></div><div class="pd-sticky-info"><h2 class="pd-sticky-title" id="pd-sticky-title">SEMBAHTOTO | Situs Toto Slot Gacor Pro Maxwin &amp; Toto Macau 4D Toto 5D dengan Deposit Dana Slot88 Tanpa Editan</h2><div class="pd-sticky-price-row"><span class="pd-sticky-price" id="pd-sticky-price">Rp 1.000.000,-</span><span class="pd-sticky-price-original" id="pd-sticky-price-original">Rp 1.000.000</span><span class="pd-sticky-discount" id="pd-sticky-discount">-99.5%</span></div></div><div class="pd-sticky-actions"><button type="button" class="pd-sticky-share-btn" id="pd-sticky-share-btn" aria-label="Bagikan produk" title="Bagikan"><svg viewBox="0 0 24 24" width="16" height="16" aria-hidden="true">
1096<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"/></svg></button><button type="button" class="pd-sticky-btn pd-sticky-btn-chat" id="pd-sticky-chat"><svg viewBox="0 0 640 640" fill="currentColor" aria-hidden="true"><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"/></svg>Tanya</button><button type="button" class="pd-sticky-btn pd-sticky-btn-cart" id="pd-sticky-add-cart" disabled>+ Keranjang</button><button type="button" class="pd-sticky-btn pd-sticky-btn-buy" id="pd-sticky-buy" disabled>Beli Sekarang</button></div></div></div>
1097
1098<main class="product-single product-single--v3"><nav class="pd-breadcrumb" aria-label="breadcrumb"><a href="https://ecatch.org/">SEMBAHTOTO</a><span>/</span><a href="https://ecatch.org/">SEMBAHTOTO LOGIN</a><span>/</span><a href="https://ecatch.org/">SEMBAHTOTO DAFTAR</a><span>/</span><a href="https://ecatch.org/">SEMBAHTOTO TERPERCAYA</a><span>/</span><a href="https://ecatch.org/">SEMBAHTOTO SITUS</a><span>/</span><span class="current">SEMBAHTOTO | Situs Toto Slot Gacor Pro Maxwin &amp; Toto Macau 4D Toto 5D dengan Deposit Dana Slot88 Tanpa Editan
1099</span></nav>
1100
1101<div class="pd-top-layout"><section class="pd-media-card"><figure class="pd-main-image" id="pd-main-figure"><img id="pd-main-img" src="https://gambarnyasembahtoto.pages.dev/5c038ecb37324badbe025c47f403f1c5.png" alt="SEMBAHTOTO" data-slug="" loading="eager">
1102</figure>
1103
1104<div class="pd-mobile-slider-wrapper">
1105<div class="pd-mobile-slider" id="pd-mobile-slider" aria-label="Galeri gambar (geser)"><div class="pd-mslide"><img src="https://gambarnyasembahtoto.pages.dev/5c038ecb37324badbe025c47f403f1c5.png" alt="SEMBAHTOTO" loading="eager"></div><div class="pd-mslide"><img src="https://gambarnyasembahtoto.pages.dev/5c038ecb37324badbe025c47f403f1c5.png" alt="SEMBAHTOTO" loading="lazy"></div><div class="pd-mslide"><img src="https://gambarnyasembahtoto.pages.dev/5c038ecb37324badbe025c47f403f1c5.png" alt="SEMBAHTOTO" loading="lazy"></div><div class="pd-mslide"><img src="https://gambarnyasembahtoto.pages.dev/5c038ecb37324badbe025c47f403f1c5.png" alt="SEMBAHTOTO" loading="lazy"></div><div class="pd-mslide"><img src="https://gambarnyasembahtoto.pages.dev/5c038ecb37324badbe025c47f403f1c5.png" alt="SEMBAHTOTO" loading="lazy"></div><div class="pd-mslide"><img src="https://gambarnyasembahtoto.pages.dev/5c038ecb37324badbe025c47f403f1c5.png" alt="SEMBAHTOTO" loading="lazy"></div></div><div class="pd-gallery-counter" id="pd-gallery-counter">1/6</div></div>
1106<div class="pd-thumb-gallery" id="pd-thumb-gallery" aria-label="Galeri gambar produk"><button type="button" class="pd-thumb-btn active" data-full="https://gambarnyasembahtoto.pages.dev/5c038ecb37324badbe025c47f403f1c5.png" data-alt="PUNCAKTOTO" data-slug="" aria-label="Gambar 1"><img src="https://gambarnyasembahtoto.pages.dev/5c038ecb37324badbe025c47f403f1c5.png" alt="PUNCAKTOTO" loading="lazy"></button><button type="button" class="pd-thumb-btn " data-full="https://gambarnyasembahtoto.pages.dev/5c038ecb37324badbe025c47f403f1c5.png" data-alt="PUNCAKTOTO" data-slug="https://gambarnyasembahtoto.pages.dev/5c038ecb37324badbe025c47f403f1c5.png" aria-label="Gambar 2"><img src="https://gambarnyasembahtoto.pages.dev/5c038ecb37324badbe025c47f403f1c5.png" alt="PUNCAKTOTO" loading="lazy"></button><button type="button" class="pd-thumb-btn " data-full="https://gambarnyasembahtoto.pages.dev/5c038ecb37324badbe025c47f403f1c5.png" data-alt
1106="SEMBAHTOTO" data-slug="lenovo-legion-go-8asp2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-b-1761796941-223.webp" aria-label="Gambar 3"><img src="https://gambarnyasembahtoto.pages.dev/5c038ecb37324badbe025c47f403f1c5.png" alt="SEMBAHTOTO" loading="lazy"></button><button type="button" class="pd-thumb-btn " data-full="https://gambarnyasembahtoto.pages.dev/5c038ecb37324badbe025c47f403f1c5.png" data-alt="SEMBAHTOTO" data-slug="lenovo-legion-go-8asp2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-b-1761796941-776.webp" aria-label="Gambar 4"><img src="https://gambarnyasembahtoto.pages.dev/5c038ecb37324badbe025c47f403f1c5.png" alt="SEMBAHTOTO" loading="lazy"></button><button type="button" class="pd-thumb-btn " data-full="https://gambarnyasembahtoto.pages.dev/5c038ecb37324badbe025c47f403f1c5.png" data-alt="SEMBAHTOTO" data-slug="lenovo-legion-go-8asp2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-b-1761796941-634.webp" aria-label="Gambar 5"><img src="https://gambarnyasembahtoto.pages.dev/5c038ecb37324badbe025c47f403f1c5.png" alt="SEMBAHTOTO" loading="lazy"></button><button type="button" class="pd-thumb-btn " data-full="https://gambarnyasembahtoto.pages.dev/5c038ecb37324badbe025c47f403f1c5.png" data-alt="SEMBAHTOTO" data-slug="lenovo-legion-go-8asp2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-b-1761796941-892.webp" aria-label="Gambar 6"><img src="https://gambarnyasembahtoto.pages.dev/5c038ecb37324badbe025c47f403f1c5.png" alt="SEMBAHTOTO" loading="lazy"></button></div></section><section class="pd-info-card"><div id="pd-variant-combined" class="pd-variant-combined" hidden></div><div class="pd-title-row">
1107        <h1 class="pd-title" id="pd-title">SEMBAHTOTO | Situs Toto Slot Gacor Pro Maxwin &amp; Toto Macau 4D Toto 5D dengan Deposit Dana Slot88 Tanpa Editan</h1><button type="button" class="pd-share-btn" id="pd-share-btn" aria-label="Bagikan produk" title="Bagikan"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true"><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"/></svg></button></div>
1108<div id="pd-price-anchor">
1109</div>
1110<div class="pd-price-qr-container">
1111        <div class="pd-price-block" id="pd-price-block">
1112                <div class="pd-price-row">
1113                        <span class="pd-price-current" id="pd-price-current" >Rp 1.000.000</span>
1114                        <span class="pd-price-original" id="pd-price-original">Rp 10.000.000</span>
1115                        <span class="pd-discount-badge" id="pd-discount-badge">-90%</span></div>
1116                        <div class="pd-meta-row">
1117                                <span class="sold-inline" id="pd-sold-inline" data-role="sold-chip">Terjual Terjual 1.000+</span>
1118                                <span class="pwp-trigger-badge" id="pwp-trigger-badge" hidden>
1119                                        <svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor">
1120                                                <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"/></svg>Bisa PWP</span></div>
1121                                                <div class="pd-meta-inline"><span class="stock-badge out" id="pd-stock-badge">SEMBAHTOTO</span>
1122                                                        <span class="sku">SKU: <span id="pd-sku">4563217890</span></span></div>
1123<div class="paylater-promo paylater-promo-sm paylater-mobile-only">
1124    <span class="paylater-icon">💳</span>
1125    <span class="paylater-text">
1126        <strong>Autorized SITUS TEPERCAYA</strong>
1127        <small>SEMBAHTOTO SITUS TERPERCAYA</small>
1128    </span>
1129</div>
1130
1131<div class="stock-popover" id="pd-stock-popover" role="dialog" aria-hidden="true" aria-label="Informasi stok cabang"><div class="sp-head"><div class="sp-title">Stok Cabang</div><button type="button" class="sp-close" id="pd-stock-popover-close" aria-label="Tutup"><svg width="18" height="18" viewBox="0 0 24 24">
1131<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"/></svg></button></div><ul class="sp-list">
1132<li class="sp-item"><div class="sp-left"><span class="sp-dot" style="--dot:#3389f3;"></span><span class="sp-label">SITUS TERPERCAYA</span></div><span class="sp-qty" id="sp-qty-meg">0</span><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"><svg class="ico-wa" viewBox="0 0 24 24" aria-hidden="true" focusable="false"><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"/></svg></a></li>
1133                
1134                    <li class="sp-item">
1135                      <div class="sp-left">
1136                        <span class="sp-dot" style="--dot:#3456d3;"></span>
1137                        <span class="sp-label">JAKARTA Fair</span>
1138                      </div>
1139                      <span class="sp-qty" id="sp-qty-mdf">0</span>
1140                      <a class="sp-wa"
1141                         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"
1142                         target="_blank" rel="noopener" aria-label="WhatsApp Medan Fair">
1143                        <svg class="ico-wa" viewBox="0 0 24 24" aria-hidden="true" focusable="false">
1144                            <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"/>
1145                          </svg>
1146                      </a>
1147                    </li>
1148                
1149                    <li class="sp-item">
1150                      <div class="sp-left">
1151                        <span class="sp-dot" style="--dot:#f50be5;"></span>
1152                        <span class="sp-label">BATAM</span>
1153                      </div>
1154                      <span class="sp-qty" id="sp-qty-bda">0</span>
1155                      <a class="sp-wa"
1156                         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"
1157                         target="_blank" rel="noopener" aria-label="WhatsApp Banda Aceh">
1158                        <svg class="ico-wa" viewBox="0 0 24 24" aria-hidden="true" focusable="false">
1159                            <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"/>
1160                          </svg>
1161                      </a>
1162                    </li>
1163                  </ul>
1164                </div>
1165
1166                            </div>
1167            <div class="pd-qr-print" style="display:none;"><div class="pd-qr-label">Scan untuk lihat produk:</div><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"></div>
1168            </div>
1169                                    <div id="pd-variants-anchor"></div>
1170
1171                        
1172
1173            <div class="pd-compare-section">
1174                <button type="button" class="pd-compare-btn" id="pd-compare-btn" data-product-id="325">
1175                    <svg class="compare-icon" width="18" height="18" viewBox="0 0 24 24" fill="currentColor">
1176                        <path d="M21,9L17,5V8H10V10H17V13M7,11L3,15L7,19V16H14V14H7V11Z"/>
1177                    </svg>
1178                    <span class="compare-text">Bandingkan Produk</span>
1179                    <span class="compare-remove" hidden>
1180                        <svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor">
1181                            <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"/>
1182                        </svg>
1183                        Hapus dari Perbandingan
1184                    </span>
1185                </button>
1186                <div class="pd-compare-info">
1187                    <small class="compare-note" id="compare-note">Bandingkan hingga 5 produk dengan bantuan AI</small>
1188                </div>
1189            </div>
1190            
1191           <div class="pd-short-desc"><p><strong>Informasi SEMBAHTOTO HK POOLS & SDY POOLS:</strong></p>
1192
1193<ul>
1194    <li>Minimal Deposit: Mulai dari Rp10.000,-</li>
1195    <li>Pasaran Favorit: HK Pools, SDY Pools, Toto Macau, Togel Online</li>
1196    <li>Metode Pembayaran: Bank Lokal, QRIS, Dana, OVO, Gopay</li>
1197    <li>Mata Uang: Rupiah (IDR)</li>
1198    <li>Jam Operasional: Online 24 Jam Nonstop</li>
1199    <li>Rating Pengguna: ⭐⭐⭐⭐⭐ (9.8/10)</li>
1200    <li>Akses Mudah: Login Cepat & Anti Lemot</li>
1201    <li>Daftar Sekarang: <a href="https://ecatch.org/">SEMBAHTOTO TERPERCAYA</a></li>
1202</ul>
1203</div>
1204
1205<div class="togel-container-v3 mini">
1206  <div class="togel-machine-v3">
1207    <h2 class="togel-title-v3">🎯 PREDIKSI HK POOLS & SDY POOLS 🎯</h2>
1208
1209    <div class="togel-controls-v3">
1210      <label>
1211        PASARAN
1212        <select id="marketFilter">
1213          <option value="ALL">ALL PASARAN</option>
1214        </select>
1215      </label>
1216
1217      <label>
1218        TIPE
1219        <select id="typeFilter">
1220          <option value="5D">5D</option>
1221          <option value="4D">4D</option>
1222          <option value="3D">3D</option>
1223          <option value="2D">2D</option>
1224        </select>
1225      </label>
1226
1227      <label>
1228        MIN CONF
1229        <input id="minConf" type="number" min="50" max="99" step="1" value="99">
1230      </label>
1231
1232      <button id="btnTogelRandom" type="button">
1233        <span class="icon">🎲</span> PUTAR PREDIKSI..!
1234      </button>
1235    </div>
1236
1237    <div class="togel-main-result-v3" id="togelResult">
1238      <div class="togel-status-v3" id="togelStatus">— SIAP DIGUNAKAN —</div>
1239
1240      <div class="togel-highlight-box">
1241        <div class="togel-col-left">
1242          <div class="k">Pasaran Pilihan</div>
1243          <div class="v-game" id="rMarket">-</div>
1244
1245          <div class="provider-info">
1246            <span class="k-small">Tipe:</span>
1247            <span class="v-small" id="rType">-</span>
1248            <span class="k-small" style="margin-left:10px;">Conf:</span>
1249            <span class="v-small" id="rConf">-</span>
1250          </div>
1251        </div>
1252
1253        <div class="togel-col-right">
1254          <div class="k-rtp">Angka Prediksi</div>
1255          <div class="v-rtp-huge" id="rAngka">-</div>
1256        </div>
1257      </div>
1258
1259      <div class="togel-details-v3">
1260        <div class="togel-detail-item">
1261          <div class="k-detail">BBFS</div>
1262          <div class="v-detail" id="rBBFS">-</div>
1263        </div>
1264        <div class="togel-detail-item">
1265          <div class="k-detail">ANGKA IKUT</div>
1266          <div class="v-detail" id="rIkut">-</div>
1267        </div>
1268        <div class="togel-detail-item">
1269          <div class="k-detail">SHIO</div>
1270          <div class="v-detail" id="rShio">-</div>
1271        </div>
1272      </div>
1273
1274      <div class="togel-tip-v3" id="rTip">
1275        Tips: Gunakan prediksi HK Pools dan SDY Pools ini sebagai referensi tambahan sebelum bermain.
1276      </div>
1277    </div>
1278
1279    <div class="togel-alts-v3">
1280      <div class="togel-alts-title-v3">3 Alternatif Angka</div>
1281      <div class="togel-alt-list-v3" id="togelAltList"></div>
1282    </div>
1283
1284    <div class="togel-note-v3">
1285      Disclaimer: Prediksi ini dibuat untuk hiburan dan referensi tambahan.
1286    </div>
1287  </div>
1288</div>
1289
1290<style>
1291@import url("https://fonts.googleapis.com/css2?family=Orbitron:wght@600;700;800&display=swap");
1292
1293/* ===============================
1294   WRAPPER
1295================================ */
1296.togel-container-v3{
1297  display:flex;
1298  justify-content:center;
1299  padding:16px 10px;
1300  font-family:"Orbitron","Poppins",system-ui,sans-serif;
1301}
1302
1303/* ===============================
1304   MACHINE CORE (GOLD)
1305================================ */
1306.togel-machine-v3{
1307  position:relative;
1308  width:100%;
1309  max-width:520px;
1310  padding:16px;
1311  border-radius:16px;
1312  overflow:hidden;
1313  isolation:isolate;
1314
1315  background:
1316    radial-gradient(circle at 15% 0%, rgba(4, 255, 0, 0.15), transparent 48%),
1317    radial-gradient(circle at 85% 100%, rgba(17, 255, 0, 0.12), transparent 55%),
1318    linear-gradient(145deg,#001a02,#010b00);
1319
1320  border:1px solid rgba(13, 255, 0, 0.45);
1321
1322  box-shadow:
1323    inset 0 0 18px rgba(51, 255, 0, 0.25),
1324    0 0 18px rgba(0, 255, 21, 0.35);
1325
1326  color:#dddcff;
1327}
1328
1329/* HUD SWEEP */
1330.togel-machine-v3::before{
1331  content:"";
1332  position:absolute;
1333  inset:0;
1334  background:linear-gradient(120deg, transparent 40%, rgba(55, 255, 0, 0.08), transparent 65%);
1335  animation:hudSweep 7s linear infinite;
1336  pointer-events:none;
1337  opacity:.8;
1338}
1339
1340/* ===============================
1341   TITLE
1342================================ */
1343.togel-title-v3{
1344  text-align:center;
1345  margin:0 0 12px;
1346  font-size:15px;
1347  font-weight:900;
1348  letter-spacing:1px;
1349  color:#22c50d;
1350  text-shadow:0 0 8px #03c71ae6;
1351}
1352
1353/* ===============================
1354   CONTROLS
1355================================ */
1356.togel-controls-v3{
1357  display:grid;
1358  grid-template-columns:1fr 1fr;
1359  gap:10px;
1360  padding:12px;
1361  border-radius:14px;
1362
1363  background:rgba(0, 0, 0, 0.45);
1364  border:1px solid rgba(0, 255, 8, 0.35);
1365  box-shadow: inset 0 0 14px rgba(21, 255, 0, 0.22);
1366}
1367
1368.togel-controls-v3 label{
1369  display:grid;
1370  gap:6px;
1371  font-size:10px;
1372  letter-spacing:.8px;
1373  text-transform:uppercase;
1374  color:#7aff95;
1375}
1376
1377.togel-controls-v3 select,
1378.togel-controls-v3 input{
1379  background:rgba(32, 28, 0, 0.92);
1380  color:#e1dcff;
1381  border:1px solid rgba(0, 255, 13, 0.5);
1382  border-radius:10px;
1383  padding:7px 9px;
1384  font-weight:700;
1385  font-size:12px;
1386  outline:none;
1387  box-shadow: inset 0 0 10px rgba(0, 255, 0, 0.2);
1388}
1389
1390/* BUTTON */
1391#btnTogelRandom{
1392  grid-column:span 2;
1393  display:flex;
1394  align-items:center;
1395  justify-content:center;
1396  gap:8px;
1397
1398  background:linear-gradient(145deg,#17ca35,#008004);
1399  border:none;
1400  color:#e6e6e6;
1401  font-weight:900;
1402  letter-spacing:.8px;
1403  border-radius:14px;
1404  cursor:pointer;
1405  padding:10px 12px;
1406  font-size:12px;
1407
1408  box-shadow:0 0 16px #00ff26b3;
1409  transition:.2s ease;
1410}
1411
1412#btnTogelRandom:active{ transform:scale(.98); }
1413#btnTogelRandom:disabled{ opacity:.75; cursor:not-allowed; }
1414
1415/* ===============================
1416   MAIN RESULT
1417================================ */
1418.togel-main-result-v3{
1419  margin-top:12px;
1420  padding:12px;
1421  border-radius:14px;
1422
1423  background:rgba(2, 30, 0, 0.75);
1424  border:1px solid rgba(0, 255, 0, 0.35);
1425  box-shadow: inset 0 0 16px rgba(60, 255, 0, 0.26);
1426}
1427
1428.togel-status-v3{
1429  text-align:center;
1430  font-weight:800;
1431  letter-spacing:.8px;
1432  color:#7cff7a;
1433  margin-bottom:10px;
1434  font-size:11px;
1435}
1436
1437.togel-highlight-box{
1438  display:flex;
1439  justify-content:space-between;
1440  gap:12px;
1441  padding-bottom:10px;
1442  margin-bottom:10px;
1443  border-bottom:1px dashed rgba(0, 255, 26, 0.3);
1444}
1445
1446.k, .k-rtp{
1447  font-size:10px;
1448  color:#7aff89;
1449  text-transform:uppercase;
1450}
1451
1452.v-game{
1453  font-size:14px;
1454  font-weight:900;
1455  color:#ffffff;
1456  margin-top:6px;
1457}
1458
1459.provider-info{ margin-top:8px; font-size:11px; color:#aaffa7; }
1460
1461.v-rtp-huge{
1462  font-size:2.4em;
1463  font-weight:900;
1464  color:#7aff83;
1465  text-shadow:0 0 10px rgba(0, 255, 17, 0.7);
1466}
1467
1468/* DETAILS */
1469.togel-details-v3{
1470  display:grid;
1471  grid-template-columns:repeat(3,1fr);
1472  gap:8px;
1473  background:rgba(0,0,0,.30);
1474  padding:10px;
1475  border-radius:12px;
1476}
1477
1478.k-detail{
1479  font-size:9px;
1480  color:#7aff95;
1481}
1482.v-detail{
1483  font-size:12px;
1484  font-weight:800;
1485  color:#ffffff;
1486}
1487
1488/* ALTS */
1489.togel-alts-v3{
1490  margin-top:12px;
1491  padding:12px;
1492  border-radius:14px;
1493  background:rgba(0,0,0,.40);
1494  border:1px solid rgba(4, 0, 255, 0.35);
1495}
1496.togel-alts-title-v3{
1497  font-weight:900;
1498  color:#8cff7a;
1499}
1500.togel-alt-item{
1501  background:rgba(20, 15, 0, 0.85);
1502  border-radius:12px;
1503  padding:10px;
1504  border-left:3px solid #7aff90;
1505}
1506.togel-alt-item .g{ color:#fff; }
1507.togel-alt-item .p{ color:#aeffa7; }
1508.togel-alt-item .r{ color:#9dff7a; }
1509
1510/* ANIM */
1511@keyframes hudSweep{
1512  0%{transform:translateX(-110%)}
1513  100%{transform:translateX(110%)}
1514}
1515</style>
1516
1517<script>
1518/* ===============================
1519   DATASET TOGEL (SIMULASI)
1520================================ */
1521const TOGEL_MARKETS = [
1522  { market:"Singapore",   code:"SGP", open:"17:45", zone:"WIB" },
1523  { market:"Hongkong",    code:"HK",  open:"22:45", zone:"WIB" },
1524  { market:"Sydney",      code:"SDY", open:"13:45", zone:"WIB" },
1525  { market:"TOTO MACAU",       code:"TM",  open:"16:00", zone:"WIB" },
1526  { market:"Cambodia",    code:"KHM", open:"10:45", zone:"WIB" },
1527  { market:"Japan",       code:"JP",  open:"11:30", zone:"WIB" }
1528];
1529
1530const SHIO = ["Tikus","Kerbau","Macan","Kelinci","Naga","Ular","Kuda","Kambing","Monyet","Ayam","Anjing","Babi"];
1531
1532const $ = (q) => document.querySelector(q);
1533const randInt = (min,max) => Math.floor(Math.random()*(max-min+1))+min;
1534
1535function uniqueMarkets(){
1536  return TOGEL_MARKETS.map(m => m.market);
1537}
1538
1539function genDigits(len){
1540  let s = "";
1541  for(let i=0;i<len;i++) s += String(randInt(0,9));
1542  return s;
1543}
1544
1545function genBBFS(){
1546  const pool = [...Array(10)].map((_,i)=>i);
1547  const out = [];
1548  for(let i=0;i<7;i++){
1549    const idx = randInt(0, pool.length-1);
1550    out.push(pool.splice(idx,1)[0]);
1551  }
1552  return out.join("");
1553}
1554
1555function genIkut(){
1556  const pool = [...Array(10)].map((_,i)=>i);
1557  const out = [];
1558  for(let i=0;i<4;i++){
1559    const idx = randInt(0, pool.length-1);
1560    out.push(pool.splice(idx,1)[0]);
1561  }
1562  return out.join(" • ");
1563}
1564
1565function simulateConfidence(){
1566  return randInt(60, 96);
1567}
1568
1569function applyFilters(){
1570  const m = $("#marketFilter").value;
1571  const minC = parseFloat($("#minConf").value || "0");
1572
1573  return TOGEL_MARKETS
1574    .filter(x => (m==="ALL" || x.market===m))
1575    .map(x => ({...x, conf: simulateConfidence()}))
1576    .filter(x => x.conf >= minC);
1577}
1578
1579function pickRandom(arr, n=1){
1580  const copy = [...arr];
1581  const out = [];
1582  for(let i=0;i<n && copy.length;i++){
1583    const idx = randInt(0, copy.length-1);
1584    out.push(copy.splice(idx,1)[0]);
1585  }
1586  return out;
1587}
1588
1589function formatAngka(type){
1590  if(type==="4D") return genDigits(4);
1591  if(type==="3D") return genDigits(3);
1592  return genDigits(2);
1593}
1594
1595function renderMain(item, type){
1596  $("#rMarket").textContent = `${item.market} (${item.code}) • Open ${item.open} ${item.zone}`;
1597  $("#rType").textContent = type;
1598  $("#rConf").textContent = `${item.conf}%`;
1599
1600  $("#rAngka").textContent = formatAngka(type);
1601  $("#rBBFS").textContent = genBBFS();
1602  $("#rIkut").textContent = genIkut();
1603  $("#rShio").textContent = SHIO[randInt(0, SHIO.length-1)];
1604  $("#rTip").textContent = "Tips: Ini simulasi hiburan. Tetap bijak & disiplin.";
1605}
1606
1607function renderAlts(list, type){
1608  const wrap = $("#togelAltList");
1609  wrap.innerHTML = "";
1610  list.forEach(x=>{
1611    const el = document.createElement("div");
1612    el.className = "togel-alt-item";
1613    el.innerHTML = `
1614      <div class="g">${x.market} (${x.code})</div>
1615      <div class="p">Tipe ${type} • Conf <strong>${x.conf}%</strong></div>
1616      <div class="r">Angka: <strong>${formatAngka(type)}</strong></div>
1617    `;
1618    wrap.appendChild(el);
1619  });
1620}
1621
1622function spinButton(btn, on){
1623  if(on){
1624    btn.disabled = true;
1625    btn.dataset.text = btn.innerHTML;
1626    btn.innerHTML = `<span class="icon">🔄</span> PROCESS...`;
1627  }else{
1628    btn.disabled = false;
1629    btn.innerHTML = btn.dataset.text || `<span class="icon">🎲</span> GENERATE`;
1630  }
1631}
1632
1633/* ===============================
1634   INIT
1635================================ */
1636(function init(){
1637  const sel = $("#marketFilter");
1638  uniqueMarkets().forEach(m=>{
1639    const o = document.createElement("option");
1640    o.value = m; o.textContent = m;
1641    sel.appendChild(o);
1642  });
1643
1644  $("#btnTogelRandom").addEventListener("click", (e)=>{
1645    const btn = e.currentTarget;
1646    const type = $("#typeFilter").value;
1647    const filtered = applyFilters();
1648    const st = $("#togelStatus");
1649
1650    if(!filtered.length){
1651      st.textContent = "— NO MATCH —";
1652      st.style.color = "white";
1653      renderAlts([], type);
1654      $("#rMarket").textContent = "-";
1655      $("#rType").textContent = type;
1656      $("#rConf").textContent = "-";
1657      $("#rAngka").textContent = "-";
1658      $("#rBBFS").textContent = "-";
1659      $("#rIkut").textContent = "-";
1660      $("#rShio").textContent = "-";
1661      return;
1662    }
1663
1664    spinButton(btn,true);
1665    st.textContent = "— GENERATING —";
1666    st.style.animation = "pulse .6s linear infinite";
1667    st.style.color = "white";
1668
1669    const t0 = setInterval(()=>{
1670      const temp = pickRandom(filtered,1)[0];
1671      $("#rMarket").textContent = `${temp.market} (${temp.code}) • Open ${temp.open} ${temp.zone}`;
1672      $("#rType").textContent = type;
1673      $("#rConf").textContent = `${temp.conf}%`;
1674      $("#rAngka").textContent = formatAngka(type);
1675      $("#rBBFS").textContent = genBBFS();
1676      $("#rIkut").textContent = genIkut();
1677      $("#rShio").textContent = SHIO[randInt(0, SHIO.length-1)];
1678    }, 85);
1679
1680    setTimeout(()=>{
1681      clearInterval(t0);
1682
1683      const picks = pickRandom(filtered,4);
1684      renderMain(picks[0], type);
1685      renderAlts(picks.slice(1), type);
1686
1687      st.textContent = "— READY —";
1688      st.style.animation = "";
1689      st.style.color = "gold";
1690      spinButton(btn,false);
1691    }, 1200);
1692  });
1693
1694  renderAlts([], "4D");
1695})();
1696</script>
1696
1697
1698
1699                        
1700            <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"><div class="pwp-deals-header"><svg class="pwp-icon" width="20" height="20" viewBox="0 0 24 24" fill="currentColor"><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"/></svg><div class="pwp-text"><h3 class="pwp-title">Penawaran Spesial PWP (Purchase with Purchase)</h3><p class="pwp-subtitle">Beli produk ini dan dapatkan produk pilihan dengan harga spesial</p></div></div><div class="pwp-deals-loading"><div class="pwp-spinner"></div><p>Memuat penawaran...</p></div><div class="pwp-deals-grid" id="pwp-deals-grid"></div><p class="pwp-cart-note">💡 Produk PWP dapat ditambahkan di halaman keranjang setelah produk ini dimasukkan</p></div>
1701        </section>
1702
1703        <aside class="pd-sidebar">
1704            <div class="pd-side-card pd-buy-card">
1705                <form class="pd-buy-form" id="pd-buy-form" data-pid="325">
1706                    <input type="hidden" name="variant_id" id="pd-variant-id" value="0">
1707                    <div>
1708                        <label for="qty" class="qty-label">Qty</label>
1709                        <input type="number" id="qty" name="qty" value="0" min="1"
1710                               max="0"
1711                               disabled>
1712                    </div>
1713                    <div class="pd-actions">
1714                        <button type="submit" class="btn-add-cart" id="btn-add-cart" disabled>+ Keranjang</button>
1715                        <button type="button" class="btn-buy" id="btn-buy" data-id="278426" disabled >Beli</button>
1716                        <button type="button" class="btn-chat-icon" id="btn-chat-icon" aria-label="Tanya Produk" title="Tanya Produk"><svg viewBox="0 0 640 640" fill="currentColor"><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"/></svg></button>
1717                                            </div>
1718                </form>
1719                <div class="paylater-promo paylater-promo-md paylater-desktop-only">
1720    <span class="paylater-icon">💳</span>
1721    <span class="paylater-text">
1722        <strong>Autorized SITUS TERPERCAYA</strong>
1723        <small>SITUS SEMBAHTOTO</small>
1724    </span>
1725</div>            </div>
1726
1727                        
1728                        <div class="pd-side-card qoala-banner-card">
1729                <div class="qoala-banner">
1730                    <div class="qoala-banner-content">
1731                        <div class="qoala-icon">
1732                            <center><img src="https://gambarnyasembahtoto.pages.dev/5c038ecb37324badbe025c47f403f1c5.png" alt="SEMBAHTOTO" class="qoala-shield-img"></center>
1733                        </div>
1734                        <div class="qoala-text">
1735                            <div class="qoala-title">SEMBAHTOTO VVIP</div>
1736                            <div class="qoala-subtitle">Verified</div>
1737                        </div>
1738                    </div>
1739                    <a href="https://ecatch.org/" class="qoala-cta"
1740                       data-ga-event="qoala_banner_click"
1741                       data-product-id="325"
1742                       data-product-name="SEMBAHTOTO"
1743                       data-category-path="Komputer &amp; Laptop/Laptop/Gaming" target="_blank">Info</a>
1744                </div>
1745<style>
1746.qoala-banner-card {
1747    padding: 0;
1748    overflow: hidden;
1749}
1750
1751.qoala-banner {
1752    background: linear-gradient(135deg, #99ff7a 0%, #06005c 100%);
1753    padding: 12px 16px;
1754    display: flex;
1755    align-items: center;
1756    justify-content: space-between;
1757    color: #ffffff;
1758    text-decoration: none;
1759    min-height: 60px;
1760}
1761
1762.qoala-banner-content {
1763    display: flex;
1764    align-items: center;
1765    gap: 12px;
1766}
1767
1768.qoala-icon {
1769    display: flex;
1770    align-items: center;
1771    justify-content: center;
1772}
1773
1774.qoala-shield-img {
1775    width: 36px;
1776    height: 36px;
1777    object-fit: contain;
1778    opacity: 0.9;
1779}
1780
1781.qoala-title {
1782    font-weight: 600;
1783    font-size: 14px;
1784    line-height: 1.2;
1785    color: #ffffff;
1786}
1787
1788.qoala-subtitle {
1789    font-size: 12px;
1790    opacity: 0.9;
1791    line-height: 1.2;
1792    color: #ffffff;
1793}
1794
1795.qoala-cta {
1796    background: rgba(0, 0, 0, 0.15);
1797    color: #e6e6e6;
1798    padding: 6px 12px;
1799    border-radius: 6px;
1800    font-size: 12px;
1801    font-weight: 600;
1802    text-decoration: none;
1803    transition: background 0.2s ease;
1804    border: 1px solid rgba(0, 0, 0, 0.2);
1805}
1806
1807.qoala-cta:hover {
1808    background: rgba(0, 0, 0, 0.25);
1809    color: #000000;
1810}
1811
1812@media (max-width: 768px) {
1813    .qoala-banner {
1814        padding: 10px 12px;
1815    }
1816
1817    .qoala-title {
1818        font-size: 17px;
1819    }
1820
1821    .qoala-subtitle {
1822        font-size: 11px;
1823    }
1824}
1825</style>
1826            </div>
1827            
1828                        <div class="pd-side-card pd-installment-card2"
1829                 id="inst-card"
1830                 data-base-price="20789000"
1831                 data-zero-smart="0">
1832                <div class="inst-head">
1833                    <h3>Promo & Fitur SEMBAHTOTO</h3>
1834                                    </div>
1835
1836               <div class="inst-bank-tabs" role="tablist" aria-label="Bank">
1837                    <button type="button" class="bank-tab active" data-bank="HK POOLS" aria-selected="true">HK POOLS</button>
1838                    <button type="button" class="bank-tab" data-bank="SDY POOLS" aria-selected="false">SDY POOLS</button>
1839                    <button type="button" class="bank-tab" data-bank="SEMBAHTOTO" aria-selected="false">SEMBAHTOTO</button>
1840                </div>
1841
1842                <ul class="inst-month-list" id="inst-month-list" aria-label="Daftar cicilan per bulan"></ul>
1843                <div class="inst-note" id="inst-zero-note" style="display:none;">10% Cicilan khusus bank terpilih*</div>
1844                <div class="inst-disclaimer">Angka estimasi. Bisa berhttps://trunojoyo.health/4.html sesuai kebijakan bank / penyedia.</div>
1845            </div>
1846            
1847            <!-- MECHA BLUE FINAL BOSS REVIEW SLIDER -->
1848<div class="tnt-review-mecha">
1849
1850<div class="tnt-header">
1851<h2>SEMBAHTOTO HK POOLS & SDY POOLS</h2>
1852<p>Testimoni Member SEMBAHTOTO</p>
1853</div>
1854
1855<div class="tnt-slider" id="tntSlider">
1856
1857<div class="tnt-slide active">
1858  <div class="tnt-name">RIZKY FIRMANSYAH</div>
1859  <div class="tnt-comment">"SEMBAHTOTO jadi pilihan saya untuk main HK Pools karena result selalu update cepat dan akses websitenya ringan di semua perangkat."</div>
1860</div>
1861
1862<div class="tnt-slide">
1863  <div class="tnt-name">ANDRE SAPUTRA</div>
1864  <div class="tnt-comment">"Prediksi SDY Pools di SEMBAHTOTO cukup membantu sebagai referensi tambahan. Selain itu proses login dan deposit juga sangat praktis."</div>
1865</div>
1866
1867<div class="tnt-slide">
1868  <div class="tnt-name">
1868FERDY WIJAYA</div>
1869  <div class="tnt-comment">"Saya suka tampilannya yang modern dengan tema pink neon, membuat pengalaman bermain HK Pools dan SDY Pools terasa lebih nyaman dan premium."</div>
1870</div>
1871
1872<div class="tnt-slide">
1873  <div class="tnt-name">HENDRA KURNIAWAN</div>
1874  <div class="tnt-comment">"Customer service SEMBAHTOTO responsif 24 jam dan selalu membantu ketika saya mengalami kendala saat transaksi ataupun login akun."</div>
1875</div>
1876
1877<div class="tnt-slide">
1878  <div class="tnt-name">BAGAS PRATAMA</div>
1879  <div class="tnt-comment">"SEMBAHTOTO memiliki sistem yang stabil dan cepat, cocok untuk pengguna yang mencari situs HK Pools dan SDY Pools terpercaya setiap hari."</div>
1880</div>
1881
1882</div>
1883</div>
1884
1885  </div>
1886   </div>
1887<a href="https://trunojoyo.health/4.html" target="_blank">
1888  <img
1889    src="https://imgdate.com/6qkiUuqf.gif"
1890    alt="SEMBAHTOTO"
1891    style="
1892      display:block;
1893      margin:0 auto;
1894      width:100%;
1895      max-width:1200px;
1896      height:auto;
1897      border:2px solid rgb(211, 79, 13);
1898      border-radius:20px;
1899      box-shadow:1px 1px 8px rgba(0,0,0,0.5);
1900    "
1901  />
1902</a>
1903</div>
1904
1905<style>
1906.tnt-review-mecha{
1907  background: radial-gradient(circle at center, #1a1400, #050300);
1908  border: 2px solid #99ff7a;
1909  border-radius: 14px;
1910  padding: 20px;
1911  color: #e1dcff;
1912  font-family: 'Orbitron', sans-serif;
1913  position: relative;
1914  overflow: hidden;
1915  box-shadow: 
1916    0 0 25px rgba(17, 0, 255, 0.6), 
1917    inset 0 0 20px rgba(4, 0, 255, 0.15);
1918}
1919
1920/* scanline emas */
1921.tnt-review-mecha::before{
1922  content:"";
1923  position:absolute;
1924  inset:0;
1925  background: repeating-linear-gradient(
1926    to bottom,
1927    rgba(255,215,0,0.06),
1928    rgba(255,215,0,0.06) 1px,
1929    transparent 2px,
1930    transparent 4px
1931  );
1932  pointer-events:none;
1933}
1934
1935/* efek shine jalan */
1936.tnt-review-mecha::after{
1937  content:"";
1938  position:absolute;
1939  top:0;
1940  left:-120%;
1941  width:50%;
1942  height:100%;
1943  background:linear-gradient(
1944    120deg,
1945    transparent,
1946    rgba(255,215,0,0.25),
1947    transparent
1948  );
1949  transform:skewX(-20deg);
1950  animation:shineMove 4s infinite;
1951}
1952
1953/* HEADER */
1954.tnt-header h2{
1955  font-size: 18px;
1956  color:#99ff7a;
1957  text-shadow:
1958    0 0 8px rgba(0, 255, 47, 0.8),
1959    0 0 18px rgba(0, 255, 115, 0.6);
1960  margin-bottom:5px;
1961}
1962
1963.tnt-header p{
1964  font-size:12px;
1965  opacity:0.8;
1966  margin-bottom:15px;
1967  color:#a7ffb9;
1968}
1969
1970/* SLIDER */
1971.tnt-slider{
1972  position:relative;
1973  height:90px;
1974}
1975
1976.tnt-slide{
1977  position:absolute;
1978  width:100%;
1979  opacity:0;
1980  transform:translateX(40px);
1981  transition:all .6s ease;
1982}
1983
1984.tnt-slide.active{
1985  opacity:1;
1986  transform:translateX(0);
1987}
1988
1989/* NAME */
1990.tnt-name{
1991  font-size:14px;
1992  color:#99ff7a;
1993  margin-bottom:5px;
1994  text-shadow:0 0 6px rgba(30, 255, 0, 0.8);
1995}
1996
1997/* COMMENT */
1998.tnt-comment{
1999  font-size:13px;
2000  line-height:1.5;
2001  color:#c5c4ff;
2002}
2003
2004/* glowing border animation */
2005@keyframes pulseGlow{
2006  0%{
2007    box-shadow: 
2008      0 0 12px rgba(43, 255, 0, 0.4),
2009      inset 0 0 15px rgba(0, 255, 76, 0.1);
2010  }
2011  50%{
2012    box-shadow: 
2013      0 0 30px rgba(68, 255, 0, 0.8),
2014      inset 0 0 25px rgba(0, 4, 255, 0.2);
2015  }
2016  100%{
2017    box-shadow: 
2018      0 0 12px rgba(0, 255, 38, 0.4),
2019      inset 0 0 15px rgba(0, 255, 0, 0.1);
2020  }
2021}
2022
2023/* shine animation */
2024@keyframes shineMove{
2025  0%{ left:-120%; }
2026  100%{ left:140%; }
2027}
2028
2029.tnt-review-mecha{
2030  animation:pulseGlow 2.8s infinite;
2031}
2032</style>
2033
2034<script>
2035let slides = document.querySelectorAll('.tnt-slide');
2036let index = 0;
2037
2038setInterval(()=>{
2039  slides[index].classList.remove('active');
2040  index = (index + 1) % slides.length;
2041  slides[index].classList.add('active');
2042}, 3000);
2043</script>
2043
2044
2045        <section class="pd-full-description cyber-mecha" id="deskripsi">
2046  <h2 class="pd-full-desc-title"></h2>
2047
2048  <div class="pd-full-desc-body">
2049    
2050    <div class="mecha-header">
2051      <h3>SEMBAHTOTO | Situs Toto Slot Gacor Pro Maxwin &amp; Toto Macau 4D Toto 5D dengan Deposit Dana Slot88 Tanpa Editan</h3>
2052    </div>
2053
2054    <div class="mecha-image">
2055      <center><img src="https://www.studiointermedia.com/images/2026/01/05/image28d31c9493f2bd9f.png" alt="SEMBAHTOTO" /></center>
2056    </div>
2057
2058    <div class="mecha-content">
2059      
2060    <p><a href="https://ecatch.org/">SEMBAHTOTO</a> hadir sebagai situs HK Pools dan SDY Pools terpercaya yang menawarkan pengalaman bermain togel online dengan sistem modern, akses cepat, dan tampilan yang nyaman digunakan di berbagai perangkat. Dengan konsep yang lebih praktis dan stabil, SEMBAHTOTO memberikan kemudahan bagi pengguna yang ingin menikmati pasaran Hongkong Pools dan Sydney Pools setiap hari tanpa hambatan.
2061<br>
2062Keunggulan utama SEMBAHTOTO terletak pada update result tercepat, prediksi angka yang akurat, serta proses transaksi yang dirancang lebih aman dan efisien. Pengguna dapat melakukan deposit dengan mudah melalui berbagai metode pembayaran seperti bank lokal, QRIS, dan e-wallet tanpa proses yang rumit. Hal ini membuat pengalaman bermain menjadi lebih nyaman dan fleksibel kapan saja.
2063<br>
2064Selain menghadirkan pasaran HK Pools dan SDY Pools lengkap, SEMBAHTOTO juga didukung layanan customer service online 24 jam yang siap membantu pengguna dengan cepat dan responsif. Tampilan situs yang ringan dengan tema pink neon modern membuat aktivitas bermain terasa lebih premium dan menarik untuk dinikmati setiap hari.
2065<br>
2066Secara keseluruhan, SEMBAHTOTO menjadi pilihan tepat bagi pencinta HK Pools dan SDY Pools yang mencari situs terpercaya dengan result tercepat, prediksi akurat, layanan profesional, dan sistem transaksi yang aman.</p>
2067
2068  <p class="final-line">
2069    ⚔️ <span class="glow-strong">SEMBAHTOTO mengoperasikan situs toto slot gacor pro maxwin untuk toto macau 4d dan toto 5d dengan deposit dana via slot88 tanpa editan dan tanpa manipulasi RTP.</span> 
2070
2071  </p>
2072
2073
2074    </div>
2075
2076  </div>
2077</section>
2078
2079<style>
2080@import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@400;600;800&display=swap');
2081
2082.cyber-mecha {
2083  font-family: 'Orbitron', sans-serif;
2084  max-width: 900px;
2085  margin: 40px auto;
2086  padding: 25px;
2087  border-radius: 18px;
2088  background: radial-gradient(circle at top, #001204, #010400 70%);
2089  border: 1px solid rgba(68, 212, 55, 0.35);
2090  box-shadow: 
2091    0 0 18px rgba(55, 212, 73, 0.35),
2092    inset 0 0 20px rgba(86, 212, 55, 0.12);
2093  position: relative;
2094  overflow: hidden;
2095}
2096
2097/* scanline emas gelap */
2098.cyber-mecha::before {
2099  content: "";
2100  position: absolute;
2101  inset: 0;
2102  background: repeating-linear-gradient(
2103    to bottom,
2104    rgba(55, 58, 212, 0.04),
2105    rgba(78, 55, 212, 0.04) 1px,
2106    transparent 1px,
2107    transparent 3px
2108  );
2109  pointer-events: none;
2110}
2111
2112/* shine lebih halus */
2113.cyber-mecha::after {
2114  content:"";
2115  position:absolute;
2116  top:0;
2117  left:-120%;
2118  width:50%;
2119  height:100%;
2120  background:linear-gradient(
2121    120deg,
2122    transparent,
2123    rgba(65, 55, 212, 0.18),
2124    transparent
2125  );
2126  transform:skewX(-20deg);
2127  animation:shineMove 5s infinite;
2128}
2129
2130.pd-full-desc-title {
2131  text-align: center;
2132  font-size: 22px;
2133  font-weight: 800;
2134  color: #37d43f;
2135  margin-bottom: 25px;
2136  text-shadow: 
2137    0 0 6px rgba(81, 212, 55, 0.6),
2138    0 0 12px rgba(65, 212, 55, 0.4);
2139  letter-spacing: 1px;
2140}
2141
2142/* FAQ BOX */
2143.faq-item {
2144  margin-bottom: 15px;
2145  border-radius: 12px;
2146  border: 1px solid rgba(73, 212, 55, 0.25);
2147  background: rgba(0, 30, 0, 0.45);
2148  backdrop-filter: blur(8px);
2149  transition: all 0.3s ease;
2150  overflow: hidden;
2151}
2152
2153.faq-item:hover {
2154  border-color: rgba(105, 212, 55, 0.6);
2155  box-shadow: 0 0 12px rgba(68, 212, 55, 0.35);
2156}
2157
2158/* QUESTION */
2159.faq-question {
2160  padding: 14px 18px;
2161  cursor: pointer;
2162  font-size: 14px;
2163  color: #6ae672;
2164  position: relative;
2165}
2166
2167.faq-question::after {
2168  content: "+";
2169  position: absolute;
2170  right: 15px;
2171  color: #37d437;
2172  font-weight: bold;
2173  transition: 0.3s;
2174}
2175
2176/* ACTIVE */
2177.faq-item.active .faq-question::after {
2178  content: "−";
2179}
2180
2181/* ANSWER */
2182.faq-answer {
2183  max-height: 0;
2184  overflow: hidden;
2185  padding: 0 18px;
2186  font-size: 13px;
2187  color: #a0f3b2;
2188  line-height: 1.6;
2189  transition: all 0.35s ease;
2190}
2191
2192.faq-item.active .faq-answer {
2193  max-height: 200px;
2194  padding: 10px 18px 18px;
2195}
2196
2197/* glow text */
2198.glow {
2199  color: #37d441;
2200  text-shadow: 
2201    0 0 6px rgba(102, 212, 55, 0.7),
2202    0 0 14px rgba(55, 212, 63, 0.4);
2203}
2204
2205.glow-strong {
2206  color: #a8f5a5;
2207  text-shadow: 
2208    0 0 8px rgba(94, 212, 55, 0.9),
2209    0 0 18px rgba(55, 212, 65, 0.6);
2210}
2211
2212/* animasi shine */
2213@keyframes shineMove{
2214  0%{ left:-120%; }
2215  100%{ left:140%; }
2216}
2217</style>
2218
2219<section class="pd-full-description cyber-mecha" id="deskripsi">
2220
2221  <h2 class="pd-full-desc-title">
2222    Pertanyaan Umum SEMBAHTOTO  </h2>
2223
2224<div class="pd-full-desc-body">
2225
2226  <div class="faq-item">
2227    <div class="faq-item">
2228  <div class="faq-question">Apa itu SEMBAHTOTO?</div>
2229  <div class="faq-answer">
2230    <strong>SEMBAHTOTO adalah situs togel online yang menghadirkan pasaran HK Pools dan SDY Pools dengan sistem modern, result tercepat, serta layanan bermain yang aman dan terpercaya.</strong>
2231  </div>
2232</div>
2233
2234<div class="faq-item">
2235  <div class="faq-question">Kenapa HK Pools dan SDY Pools di SEMBAHTOTO banyak dicari?</div>
2236  <div class="faq-answer">
2237    Karena SEMBAHTOTO menyediakan akses cepat ke pasaran HK Pools dan SDY Pools dengan update result harian, prediksi akurat, tampilan nyaman, dan proses transaksi yang stabil.
2238  </div>
2239</div>
2240
2241<div class="faq-item">
2242  <div class="faq-question">Apakah SEMBAHTOTO aman untuk bermain togel online?</div>
2243  <div class="faq-answer">
2244    Ya, SEMBAHTOTO menggunakan sistem keamanan modern untuk menjaga kenyamanan pengguna, termasuk perlindungan data akun dan proses transaksi yang terenkripsi.
2245  </div>
2246</div>
2247
2248<div class="faq-item">
2249  <div class="faq-question">Bagaimana cara daftar akun di SEMBAHTOTO?</div>
2250  <div class="faq-answer">
2251    Pendaftaran akun di SEMBAHTOTO sangat mudah, pengguna hanya perlu mengisi formulir registrasi dengan data valid lalu melakukan verifikasi untuk mulai mengakses pasaran HK Pools dan SDY Pools.
2252  </div>
2253</div>
2254
2255<div class="faq-item">
2256  <div class="faq-question">Apa keunggulan utama SEMBAHTOTO dibanding situs lain?</div>
2257  <div class="faq-answer">
2258    SEMBAHTOTO memiliki keunggulan berupa result tercepat, prediksi terpercaya, transaksi deposit dan withdraw cepat, layanan pelanggan 24 jam, serta akses stabil untuk semua perangkat.
2259  </div>
2260</div>
2261
2262<div class="faq-item">
2263  <div class="faq-question">Apakah SEMBAHTOTO menyediakan layanan customer service?</div>
2264  <div class="faq-answer">
2265    Ya, SEMBAHTOTO menyediakan customer service online 24 jam yang siap membantu pengguna terkait informasi pasaran HK Pools, SDY Pools, transaksi, maupun kendala akun.
2266  </div>
2267  </div>
2268
2269</div>
2270
2271  </div>
2272
2273</section>
2274
2275<script>
2276document.querySelectorAll(".faq-question").forEach(q => {
2277  q.addEventListener("click", () => {
2278    const item = q.parentElement;
2279    item.classList.toggle("active");
2280  });
2281});
2282</script>
2282
2283<style>
2284@import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@500;700;900&display=swap');
2285
2286.cyber-mecha {
2287  max-width: 800px;
2288  margin: 40px auto;
2289  background: radial-gradient(circle at top, rgba(0, 160, 27, 0.596), #038a0cc5 70%);
2290  border-radius: 16px;
2291  border: 1px solid rgba(55, 255, 0, 0.4);
2292  box-shadow:
2293    0 0 25px rgba(77, 255, 0, 0.4),
2294    inset 0 0 20px rgba(0, 255, 4, 0.2);
2295  padding: 25px;
2296  font-family: 'Orbitron', sans-serif;
2297  color: #d8f6ff;
2298  position: relative;
2299  overflow: hidden;
2300}
2301
2302/* scanline overlay */
2303.cyber-mecha::before {
2304  content: "";
2305  position: absolute;
2306  inset: 0;
2307  background: repeating-linear-gradient(
2308    to bottom,
2309    rgba(255,255,255,0.03),
2310    rgba(255,255,255,0.03) 1px,
2311    transparent 1px,
2312    transparent 3px
2313  );
2314  pointer-events: none;
2315}
2316
2317.pd-full-desc-title {
2318  text-align: center;
2319  font-size: 22px;
2320  color: #598c45;
2321  letter-spacing: 2px;
2322  text-shadow: 0 0 12px #00ff11a1;
2323  margin-bottom: 20px;
2324}
2325
2326.mecha-header h3 {
2327  text-align: center;
2328  font-size: 18px;
2329  color: #0fc915b6;
2330  text-shadow: 0 0 10px #09ff00b0;
2331  margin-bottom: 15px;
2332}
2333
2334.mecha-image img {
2335  width: 100%;
2336  border-radius: 10px;
2337  border: 1px solid rgba(0, 255, 51, 0.5);
2338  box-shadow: 0 0 20px rgba(0, 255, 0, 0.4);
2339  margin-bottom: 20px;
2340}
2341
2342.mecha-content p {
2343  font-size: 14px;
2344  line-height: 1.8;
2345  margin-bottom: 14px;
2346  color: #ffd6bf;
2347}
2348
2349.glow {
2350  color: #0fc922a2;
2351  text-shadow: 0 0 8px #28c90fab;
2352  font-weight: 600;
2353}
2354
2355.glow-strong {
2356  color: #00ff44;
2357  text-shadow:
2358    0 0 10px #26ff00,
2359    0 0 20px #3cff00;
2360  font-weight: 700;
2361}
2362
2363.final-line {
2364  margin-top: 18px;
2365  padding: 10px;
2366  border: 1px solid rgba(85, 255, 0, 0.4);
2367  background: rgba(0, 255, 21, 0.08);
2368  border-radius: 8px;
2369  text-align: center;
2370}
2371</style>
2372    
2373    
2374    
2375        <section class="pd-related-full">
2376        <h2 class="pd-related-title">Produk Terkait</h2>
2377        <div class="pd-related-grid pd-related-grid--full">
2378                        <a class="pd-related-card" href="https://ecatch.org/">
2379                <div class="thumb">
2380                    <img src="https://gambarnyasembahtoto.pages.dev/5c038ecb37324badbe025c47f403f1c5.png" alt="Situs Toto">
2381                    <span class="mini-disc">-22%</span>                </div>
2382                <div class="info">
2383                  <h3>SEMBAHTOTO HK POOLS</h3>
2384<div class="spec-chips">HK1 <span class="spec-divider">|</span> RESULT CEPAT <span class="spec-divider">|</span> PREDIKSI AKURAT <span class="spec-divider">|</span> ONLINE 24 JAM</div>
2385<span class="price">
2386    <span class="final">Min Depo Rp 10.000</span>
2387    <span class="ori">Bonus 20%</span>
2388</span>
2389<span class="sold">Member Aktif 2000+</span>
2390<span class="stock-dot low" title="Populer"></span>
2391</div>
2392</a>
2393
2394<a class="pd-related-card" href="https://ecatch.org/">
2395<div class="thumb">
2396    <img src="https://gambarnyasembahtoto.pages.dev/5c038ecb37324badbe025c47f403f1c5.png" alt="HK Pools">
2397    <span class="mini-disc">HOT</span>
2398</div>
2399<div class="info">
2400    <h3>SEMBAHTOTO SDY POOLS</h3>
2401    <div class="spec-chips">SDY1 <span class="spec-divider">|</span> LIVE RESULT <span class="spec-divider">|</span> BBFS JITU <span class="spec-divider">|</span> FULL PASARAN</div>
2402    <span class="price">
2403        <span class="final">Bonus New Member</span>
2404        <span class="ori">Cashback Harian</span>
2405    </span>
2406    <span class="sold">Terdaftar 1500+</span>
2407    <span class="stock-dot out" title="Ramai"></span>
2408</div>
2409</a>
2410
2411<a class="pd-related-card" href="https://ecatch.org/">
2412<div class="thumb">
2413    <img src="https://gambarnyasembahtoto.pages.dev/5c038ecb37324badbe025c47f403f1c5.png" alt="Bandar HK Pools">
2414    <span class="mini-disc">TOP</span>
2415</div>
2416<div class="info">
2417    <h3>HK POOLS TERPERCAYA</h3>
2418    <div class="spec-chips">HK2 <span class="spec-divider">|</span> RESULT AKURAT <span class="spec-divider">|</span> 24 JAM <span class="spec-divider">|</span> DEPOSIT CEPAT</div>
2419    <span class="price">
2420        <span class="final">Withdraw Kilat</span>
2421        <span class="ori">Anti Ribet</span>
2422    </span>
2423    <span class="sold">Online 24 Jam</span>
2424    <span class="stock-dot ready" title="Ready"></span>
2425</div>
2426</a>
2427
2428<a class="pd-related-card" href="https://ecatch.org/">
2429<div class="thumb">
2430    <img src="https://gambarnyasembahtoto.pages.dev/5c038ecb37324badbe025c47f403f1c5.png" alt="Bandar SDY Pools">
2431    <span class="mini-disc">NEW</span>
2432</div>
2433<div class="info">
2434    <h3>SDY POOLS ONLINE</h3>
2435    <div class="spec-chips">SDY2 <span class="spec-divider">|</span> LOGIN CEPAT <span class="spec-divider">|</span> PREDIKSI HARIAN <span class="spec-divider">|</span> QRIS READY</div>
2436    <span class="price">
2437        <span class="final">Deposit Mudah</span>
2438        <span class="ori">CS Online</span>
2439    </span>
2440    <span class="sold">Member Baru 500+</span>
2441    <span class="stock-dot ready" title="Ready"></span>
2442</div>
2443</a>
2444
2445<a class="pd-related-card" href="https://ecatch.org/">
2446<div class="thumb">
2447    <img src="https://gambarnyasembahtoto.pages.dev/5c038ecb37324badbe025c47f403f1c5.png" alt="Prediksi HK Pools">
2448    <span class="mini-disc">VIP</span>
2449</div>
2450<div class="info">
2451    <h3>PREDIKSI HK POOLS</h3>
2452    <div class="spec-chips">HK3 <span class="spec-divider">|</span> ANGKA JITU <span class="spec-divider">|</span> SHIO LENGKAP <span class="spec-divider">|</span> BBFS AKURAT</div>
2453    <span class="price">
2454        <span class="final">Update Setiap Hari</span>
2455        <span class="ori">Data Lengkap</span>
2456    </span>
2457    <span class="sold">Trending Hari Ini</span>
2458    <span class="stock-dot low" title="Terbatas"></span>
2459</div>
2460</a>
2461
2462<a class="pd-related-card" href="https://ecatch.org/">
2463<div class="thumb">
2464    <img src="https://gambarnyasembahtoto.pages.dev/5c038ecb37324badbe025c47f403f1c5.png" alt="Prediksi SDY Pools">
2465    <span class="mini-disc">BEST</span>
2466</div>
2467<div class="info">
2468    <h3>PREDIKSI SDY POOLS</h3>
2469    <div class="spec-chips">SDY3 <span class="spec-divider">|</span> RESULT LIVE <span class="spec-divider">|</span> ANGKA TARUNG <span class="spec-divider">|</span> AKSES STABIL</div>
2470    <span class="price">
2471        <span class="final">Akses Anti Lemot</span>
2472        <span class="ori">Pasaran Lengkap</span>
2473    </span>
2474    <span class="stock-dot low" title="Populer"></span>
2475</div>
2476            </a>
2477                        
2478                    </div>
2479    </section>
2480    
2481    <div class="pd-mobile-fab" id="pd-mobile-fab" data-pid="325" data-price="20789000" data-voucher-code="" data-voucher-value="0"><div class="mf-actions"><button type="button" class="mf-btn mf-share" id="mf-share" aria-label="Bagikan"><svg viewBox="0 0 24 24" width="18" height="18" aria-hidden="true"><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"/></svg></button><button type="button" class="mf-btn mf-chat" id="mf-chat" aria-label="Tanya Produk"><svg viewBox="0 0 640 640" fill="currentColor"><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"/></svg></button><button type="button" class="mf-btn mf-cart" id="mf-cart" disabled aria-label="Tambah ke keranjang"><svg viewBox="0 0 24 24" width="18" height="18" aria-hidden="true"><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"/></svg></button><button type="button" class="mf-btn mf-buy" id="mf-buy" disabled><span class="mf-buy-text">Beli Sekarang</span><span class="mf-buy-price">Rp 20.789.000</span></button></div></div>
2482
2483    <button type="button"
2484            class="pd-scroll-top"
2485            id="pd-scroll-top"
2486            aria-label="Kembali ke atas"
2487            title="Kembali ke atas">
2488        <svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true">
2489            <path fill="currentColor" d="M7.41 14.59 12 10l4.59 4.59L18 13.17l-6-6-6 6z"/>
2490        </svg>
2491    </button>
2492</main>
2493
2494<div class="pd-share-modal-overlay" id="pd-share-modal-overlay"><div class="pd-share-modal"><div class="pd-share-header"><h2 class="pd-share-title">Bagikan Produk</h2><button type="button" class="pd-share-close" id="pd-share-close" aria-label="Tutup"><svg width="20" height="20" viewBox="0 0 24 24"><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"/></svg></button></div><div class="pd-share-body"><div class="pd-share-preview"><img src="https://gambarnyasembahtoto.pages.dev/5c038ecb37324badbe025c47f403f1c5.png" alt="SEMBAHTOTO" class="pd-share-preview-img"><div class="pd-share-preview-info"><h3 class="pd-share-preview-name">SEMBAHTOTO</h3><p class="pd-share-preview-price">Rp 20.789.000</p></div></div><p class="pd-share-label">Bagikan ke</p><div class="pd-share-grid"><a href="#" class="pd-share-option" data-share="whatsapp" target="_blank" rel="noopener"><span class="pd-share-icon pd-share-icon-whatsapp"><svg viewBox="0 0 24 24"><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"/></svg></span><span class="pd-share-name">WhatsApp</span></a><a href="#" class="pd-share-option" data-share="facebook" target="_blank" rel="noopener"><span class="pd-share-icon pd-share-icon-facebook"><svg viewBox="0 0 24 24"><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"/></svg></span><span class="pd-share-name">Facebook</span></a><a href="#" class="pd-share-option" data-share="twitter" target="_blank" rel="noopener"><span class="pd-share-icon pd-share-icon-twitter"><svg viewBox="0 0 24 24"><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"/></svg></span><span class="pd-share-name">Twitter</span></a><a href="#" class="pd-share-option" data-share="telegram" target="_blank" rel="noopener"><span class="pd-share-icon pd-share-icon-telegram"><svg viewBox="0 0 24 24"><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"/></svg></span><span class="pd-share-name">Telegram</span></a><a href="#" class="pd-share-option" data-share="email"><span class="pd-share-icon pd-share-icon-email"><svg viewBox="0 0 24 24">
2494<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"/></svg></span><span class="pd-share-name">Email</span></a><button type="button" class="pd-share-option" data-share="copy"><span class="pd-share-icon pd-share-icon-copy"><svg viewBox="0 0 24 24"><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"/></svg></span><span class="pd-share-name">Salin Link</span></button><button type="button" class="pd-share-option" data-share="pdf"><span class="pd-share-icon pd-share-icon-pdf"><svg viewBox="0 0 24 24"><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"/></svg></span><span class="pd-share-name">Export PDF</span></button></div><div class="pd-share-copy-section"><div class="pd-share-copy-input-wrap"><input type="text" class="pd-share-copy-input" id="pd-share-url-input" value="https://ecatch.org/" readonly><button type="button" class="pd-share-copy-btn" id="pd-share-copy-url-btn"><svg viewBox="0 0 24 24" width="16" height="16"><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"/></svg><span class="pd-share-copy-text">Salin</span></button></div></div></div></div></div>
2495
2496<style>.toast-root{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);display:flex;flex-direction:column;gap:10px;z-index:99999;pointer-events:none;max-width:min(92vw,540px)}.toast{display:grid;grid-template-columns:28px 1fr auto;gap:12px;background:#0b1220;color:#eef3ff;border:1px solid rgba(255,255,255,.08);padding:12px 14px;border-radius:12px;box-shadow:0 10px 30px rgba(10,10,20,.35);pointer-events:auto;overflow:hidden}.toast .ico{align-self:start;margin-top:2px}.toast .ttl{font-weight:700;line-height:1.25;font-size:14px;margin-bottom:4px}.toast .msg{opacity:.95;line-height:1.45;font-size:13px}.toast .actions{display:flex;gap:8px;align-self:center}.toast .btn{background:#0ea5e9;color:#fff;border:0;border-radius:999px;padding:8px 12px;font-size:12px;font-weight:700;cursor:pointer}.toast .btn.alt{background:transparent;color:#8fb5ff;border:1px solid rgba(143,181,255,.35)}.toast .close{background:transparent;border:0;color:#98a2b3;cursor:pointer;padding:4px;margin-left:6px}.toast.success{border-left:4px solid #22c55e}.toast.info{border-left:4px solid #0ea5e9}.toast.warn{border-left:4px solid #f59e0b}.toast .progress{position:absolute;left:0;bottom:0;height:3px;background:linear-gradient(90deg,#60a5fa,#22c55e);width:100%;transform-origin:left;animation:toastBar linear forwards}@keyframes toastBar{from{transform:scaleX(1)}to{transform:scaleX(0)}}@media(max-width:640px){.toast{grid-template-columns:24px 1fr auto;padding:12px}.toast .btn{padding:7px 10px}}</style>
2497<style>
2498.toast .msg { word-break: break-word; overflow-wrap: anywhere; }
2499
2500.toast-root { bottom: max(12px, env(safe-area-inset-bottom, 12px)); }
2501
2502@media (max-width: 540px) {
2503  .toast-root {
2504    left: 0; right: 0; transform: none;
2505    padding: 0 12px;
2506    bottom: calc(max(12px, env(safe-area-inset-bottom, 12px)) + var(--fab-offset, 72px));
2507    max-width: none;
2508  }
2509  .toast {
2510    grid-template-columns: 1fr; /* 1 kolom */
2511    position: relative;
2512    padding: 14px 14px 12px 14px;
2513    border-radius: 16px;
2514  }
2515  .toast .ico {
2516    position: absolute; left: 14px; top: 14px;
2517    margin: 0; transform: translateY(1px);
2518  }
2519  .toast .cnt { padding-left: 34px; }
2520  .toast .ttl { font-size: 15px; margin-bottom: 6px; }
2521  .toast .msg { font-size: 13px; opacity: .96; }
2522  .toast .actions {
2523    margin-top: 12px; gap: 10px; width: 100%;
2524    display: grid; grid-template-columns: 1fr 1fr;
2525  }
2526  .toast .btn { width: 100%; min-width: 0; padding: 10px 0; }
2527  .toast .close { position: absolute; right: 6px; top: 6px; }
2528}
2529</style>
2530
2531<script nonce="se3iyzEHMc9FQEB4wSyd0w==">
2532(function adjustToastFabOffset(){
2533  const root = document.getElementById('toastRoot');
2534  if (!root) return;
2535
2536  function isVisible(el){
2537    if (!el) return false;
2538    const cs = getComputedStyle(el);
2539    if (cs.display === 'none' || cs.visibility === 'hidden' || cs.opacity === '0') return false;
2540    const r = el.getBoundingClientRect();
2541    return r.width > 0 && r.height > 0;
2542  }
2543
2544  function update(){
2545    const fab = document.getElementById('pd-mobile-fab');
2546    let extra = 16;
2547    if (isVisible(fab)) {
2548      const h = Math.round(fab.getBoundingClientRect().height) || 56;
2549      extra = h + 16; // FAB height + margin
2550    }
2551    root.style.setProperty('--fab-offset', extra + 'px');
2552  }
2553
2554  window.addEventListener('resize', update, { passive: true });
2555  const fab = document.getElementById('pd-mobile-fab');
2556  if (window.ResizeObserver && fab) {
2557    const ro = new ResizeObserver(update);
2558    ro.observe(fab);
2559  }
2560  
2561  update();
2562})();
2563</script>
2563
2564<div class="toast-root" id="toastRoot" aria-live="polite" aria-atomic="true"></div>
2565
2566<script nonce="se3iyzEHMc9FQEB4wSyd0w==">(function(){const root=document.getElementById('toastRoot');function svgIcon(kind){if(kind==='success')return '<svg width="24" height="24" viewBox="0 0 24 24" 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>';if(kind==='warn')return '<svg width="24" height="24" viewBox="0 0 24 24" fill="#f59e0b"><path d="M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z"/></svg>';return '<svg width="24" height="24" viewBox="0 0 24 24" 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" fill="none" stroke="#0ea5e9"/></svg>'}
2567window.showToast=function(opts){const o=Object.assign({title:'',message:'',type:'info',duration:4000,actions:[]},opts||{});const el=document.createElement('div');el.className='toast '+(o.type||'info');el.setAttribute('role','status');el.style.position='relative';const acts=(o.actions||[]).map(a=>{const lab=a.label||'OK';const cls='btn'+(a.variant==='alt'?' alt':'');return `<button type="button" class="${cls}" data-act="${lab}">${lab}</button>`}).join('');el.innerHTML=`<div class="ico" aria-hidden="true">${svgIcon(o.type)}</div><div class="cnt">${o.title?`<div class="ttl">${o.title}</div>`:''}${o.message?`<div class="msg">${o.message}</div>`:''}</div><div class="actions">${acts}</div><button type="button" class="close" aria-label="Tutup" title="Tutup"><svg width="18" height="18" viewBox="0 0 24 24"><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"/></svg></button><div class="progress" style="animation-duration:${Math.max(1500,o.duration)}ms"></div>`;
2568
2569    const close = ()=> {
2570      if (!el.parentNode) return;
2571      el.style.transition = 'transform .2s ease, opacity .2s ease';
2572      el.style.opacity = '0'; el.style.transform = 'translateY(10px)';
2573      setTimeout(()=>{ if (el.parentNode) el.parentNode.removeChild(el); }, 220);
2574    };
2575
2576    el.querySelector('.close').addEventListener('click', close);
2577    el.querySelectorAll('.actions .btn').forEach(btn=>{
2578      btn.addEventListener('click', ()=>{
2579        const lab = btn.getAttribute('data-act');
2580        try {
2581          (o.actions||[]).forEach(a=>{ if (a.label===lab && typeof a.onClick==='function') a.onClick(); });
2582        } catch(_){}
2583        close();
2584      });
2585    });
2586
2587    root.appendChild(el);
2588    setTimeout(close, o.duration);
2589    return el;
2590  };
2591})();
2592
2593const _0x1a2b=[{"url":"https://gambarnyasembahtoto.pages.dev/5c038ecb37324badbe025c47f403f1c5.png","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","slug":""},{"url":"https://gambarnyasembahtoto.pages.dev/5c038ecb37324badbe025c47f403f1c5.png","alt":"Lenovo Lenovo Legion Go 8ASP2 - 83N0000RID /AMD Ryzen Z2 Extreme/32GB/1TB SSD/AMD Radeon Graphics/8.8\" WUXGA OLED Touch/Wi...","slug":"https://gambarnyasembahtoto.pages.dev/5c038ecb37324badbe025c47f403f1c5.png"},{"url":"https://gambarnyasembahtoto.pages.dev/5c038ecb37324badbe025c47f403f1c5.png","alt":"Lenovo Lenovo Legion Go 8ASP2 - 83N0000RID /AMD Ryzen Z2 Extreme/32GB/1TB SSD/AMD Radeon Graphics/8.8\" WUXGA OLED Touch/Wi...","slug":"lenovo-legion-go-8asp2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-b-1761796941-223.webp"},{"url":"https://gambarnyasembahtoto.pages.dev/5c038ecb37324badbe025c47f403f1c5.png","alt":"Lenovo Lenovo Legion Go 8ASP2 - 83N0000RID /AMD Ryzen Z2 Extreme/32GB/1TB SSD/AMD Radeon Graphics/8.8\" WUXGA OLED Touch/Wi...","slug":"lenovo-legion-go-8asp2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-b-1761796941-776.webp"},{"url":"https://gambarnyasembahtoto.pages.dev/5c038ecb37324badbe025c47f403f1c5.png","alt":"Lenovo Lenovo Legion Go 8ASP2 - 83N0000RID /AMD Ryzen Z2 Extreme/32GB/1TB SSD/AMD Radeon Graphics/8.8\" WUXGA OLED Touch/Wi...","slug":"lenovo-legion-go-8asp2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-b-1761796941-634.webp"},{"url":"https://gambarnyasembahtoto.pages.dev/5c038ecb37324badbe025c47f403f1c5.png","alt":"Lenovo Lenovo Legion Go 8ASP2 - 83N0000RID /AMD Ryzen Z2 Extreme/32GB/1TB SSD/AMD Radeon Graphics/8.8\" WUXGA OLED Touch/Wi...","slug":"lenovo-legion-go-8as
2593p2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-b-1761796941-892.webp"}],_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",_0x5e6f="4563217890";function getVariantSummaryText(){const a=document.getElementById('pd-variant-summary');if(!a)return '';const b=Array.from(a.querySelectorAll('.vs-item strong')).map(c=>c.textContent.trim()).filter(Boolean);return b.length?b.join(' / '):''}
2594function encodeVariantHash(id){if(!id||id<=0)return '';const xor=id^0x4A5D;return xor.toString(36)}
2595function decodeVariantHash(hash){if(!hash)return 0;const xor=parseInt(hash,36);return isNaN(xor)?0:xor^0x4A5D}
2596
2597function showSuccessToast(productId,qty,variantId){const variantText=getVariantSummaryText();const skuText=(function(){const el=document.getElementById('pd-sku');return el?el.textContent.trim():PD_SKU})();showToast({type:'warn',title:'Fitur Segera Hadir',message:`<strong>${escapeHtml(PD_NAME)}</strong>${variantText?` · <em>${escapeHtml(variantText)}</em>`:''}<br>SKU: ${escapeHtml(skuText)} · Qty: ${qty}`,duration:5000,actions:[{label:'Lihat Keranjang',onClick:()=>{}},{label:'Lanjut Belanja',variant:'alt',onClick:()=>{}}]});try{if(window.ga4Ecomm){const qtySend=qty||1;window.ga4Ecomm.addToCart({currency:'IDR',price:20789000,quantity:qtySend,item_id:"4563217890",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",item_brand:"Lenovo ",item_category:(["Komputer & Laptop","Laptop","Gaming"]||[]).join(' / ')})}}catch(_){}return false}function showErrorToast(){showToast({type:'error',title:'Gagal Menambah ke Keranjang',message:'Terjadi kesalahan saat memproses permintaan. Silakan coba lagi.',duration:5000})}
2598
2599function executeBuyNowLegacy(id,variantId){const a=getVariantSummaryText(),b=(function(){const c=document.getElementById('pd-sku');return c?c.textContent.trim():_0x5e6f})();
2600
2601    let willRedirect = false;
2602    try {
2603        if (window.addToCart) {
2604            window.addToCart(id, 1, variantId);
2605            willRedirect = false;
2606        }
2607    } catch(_){}
2608
2609    if (willRedirect) {
2610        showToast({
2611            type: 'info',
2612            title: 'Menuju Keranjang',
2613            message: `<strong>${escapeHtml(PD_NAME)}</strong>${variantText?` · <em>${escapeHtml(variantText)}</em>`:''}<br>SKU: ${escapeHtml(skuText)} · Qty: 1`,
2614            duration: 1800
2615        });
2616        setTimeout(()=>{ window.location.href='/keranjang'; }, 1200);
2617    } else {
2618        showToast({
2619            type: 'warn',
2620            title: 'Fitur Beli Langsung Segera Hadir',
2621            message: `Sementara ini Anda bisa menambahkan produk ke keranjang terlebih dahulu.<br><strong>${escapeHtml(PD_NAME)}</strong>${variantText?` · <em>${escapeHtml(variantText)}</em>`:''}`,
2622            duration: 6000,
2623            actions: [
2624                { label: '+ Keranjang', onClick: ()=> { try{ if (window.addToCart) window.addToCart(id,1,variantId); }catch(_){} } },
2625                { label: 'Hubungi CS', variant: 'alt', onClick: ()=> { window.open('https://wa.me/6281380009898','_blank'); } }
2626            ]
2627        });
2628    }
2629}
2630
2631document.addEventListener('DOMContentLoaded',function(){var a=document.getElementById('pd-buy-form');if(a){a.addEventListener('submit',function(e){var b=parseInt(a.getAttribute('data-pid'),10)||0;if(window.addToCartSubmit){return window.addToCartSubmit(e,b)}})}});document.addEventListener('DOMContentLoaded',function(){var a=document.getElementById('btn-buy');if(a){a.addEventListener('click',function(){var b=a.getAttribute('data-id');buyNow(b)})}});
2632
2633function _0x2m3n(s){return String(s||'').replace(/[&<>"']/g,m=>({'&':'&amp;','<':'&lt;','>':'&gt;','"':'&quot;',"'":'&#039;'}[m]))}
2634
2635(function initGallery(){const mainImg=document.getElementById('pd-main-img');const gallery=document.getElementById('pd-thumb-gallery');if(!mainImg||!gallery)return;gallery.addEventListener('click',function(ev){const btn=ev.target.closest('.pd-thumb-btn');if(!btn)return;const full=btn.getAttribute('data-full');if(full){mainImg.src=full;const alt=btn.getAttribute('data-alt')||'';if(alt)mainImg.alt=alt;const slug=btn.getAttribute('data-slug')||'';if(slug)mainImg.dataset.slug=slug;gallery.querySelectorAll('.pd-thumb-btn').forEach(b=>b.classList.remove('active'));btn.classList.add('active')}})})();
2636
2637(function initMobileSliderCounter(){const slider=document.getElementById('pd-mobile-slider');const counter=document.getElementById('pd-gallery-counter');if(!slider||!counter)return;let ticking=false;slider.addEventListener('scroll',function(){if(!ticking){window.requestAnimationFrame(function(){const slides=slider.querySelectorAll('.pd-mslide');if(!slides.length)return;const containerRect=slider.getBoundingClientRect();const containerCenter=containerRect.left+containerRect.width/2;let currentIdx=0;let minDist=Infinity;
2637slides.forEach((slide,idx)=>{const slideRect=slide.getBoundingClientRect();const slideCenter=slideRect.left+slideRect.width/2;const dist=Math.abs(slideCenter-containerCenter);if(dist<minDist){minDist=dist;currentIdx=idx}});counter.textContent=(currentIdx+1)+'/'+slides.length;ticking=false});ticking=true}},{passive:true})})();
2638
2639/* ================= Simulasi Cicilan ================= */
2640(function initInstallmentList(){const card=document.getElementById('inst-card');if(!card)return;function getBasePrice(){return parseInt(card.getAttribute('data-base-price')||'0',10)||0}function setBasePrice(v){card.setAttribute('data-base-price',String(parseInt(v||'0',10)||0))}const zeroEligible=card.getAttribute('data-zero-smart')==='1';window.initMobile=zeroEligible;const listEl=document.getElementById('inst-month-list');const zeroNote=document.getElementById('inst-zero-note');const tenors=[3,6,12];const rates={BRI:{3:0.975,6:0.975,12:0.975},Mandiri:{3:0.984,6:0.9725,12:0.96},BCA:{3:0.97,6:0.94,12:0.91}};function formatRupiah(num){return 'Rp '+(Math.round(num)).toString().replace(/\B(?=(\d{3})+(?!\d))/g,'.')}function activeBank(){const tab=card.querySelector('.bank-tab.active');return tab?tab.dataset.bank:'BRI'}
2641
2642function _0x4o5p(bank){const a=getBasePrice();listEl.innerHTML='';const b=rates[bank]||{};let c=false;tenors.forEach(m=>{let d=b[m]??1;if(zeroEligible&&(bank==='BRI'||bank==='Mandiri')){d=1;c=true}const e=a/d;const f=m>0?Math.ceil((e/m)/100)*100:0;const g=document.createElement('li');g.className='inst-month-item';g.innerHTML=`<span class="tenor-badge">${m}x</span><span class="amount">${formatRupiah(f)} / bln</span>${zeroEligible&&(bank==='BRI'||bank==='Mandiri')?'<span class="tag tag-zero">0%</span>':''}`;listEl.appendChild(g)});zeroNote.style.display=c?'block':'none'}
2643
2644card.addEventListener('click',function(ev){const a=ev.target.closest('.bank-tab');if(!a)return;card.querySelectorAll('.bank-tab').forEach(b=>{b.classList.remove('active');b.setAttribute('aria-selected','false')});a.classList.add('active');a.setAttribute('aria-selected','true');_0x4o5p(a.dataset.bank)});
2645
2646window.instSetBasePrice=function(newPrice){setBasePrice(newPrice);_0x4o5p(activeBank())};_0x4o5p(activeBank());
2647})();
2648
2649/* ====== Fokus gambar varian ====== */
2650function _0x6q7r(s){return String(s||'').toLowerCase().replace(/[^a-z0-9]+/g,'')}function _0x8s9t(u){try{return new URL(u,window.location.origin).pathname.split('/').pop().toLowerCase()}catch(e){try{return(u||'').split('/').pop().toLowerCase()}catch(_){return ''}}}
2651function _0xau1v(url,altOpt){const a=document.getElementById('pd-main-img'),b=document.getElementById('pd-thumb-gallery'),c=document.getElementById('pd-mobile-slider');if(a&&url){a.src=url;if(altOpt)a.alt=altOpt}if(b){const d=_0x8s9t(url);let e=null;b.querySelectorAll('.pd-thumb-btn').forEach(btn=>{const f=btn.getAttribute('data-full')||'',g=_0x8s9t(f)===d;if(g)e=btn;btn.classList.toggle('active',g)});if(e){const h=e.getAttribute('data-alt')||'',i=e.getAttribute('data-slug')||'';if(h&&a)a.alt=h;if(i&&a)a.dataset.slug=i}}
2652  if (c){
2653    const targetName = _0x8s9t(url);
2654    const slideImg = Array.from(c.querySelectorAll('img')).find(im => _0x8s9t(im.src) === targetName);
2655    if (slideImg){
2656      
2657      try {
2658        const container = c;
2659        const imgRect = slideImg.getBoundingClientRect();
2660        const contRect = container.getBoundingClientRect();
2661        const offsetLeft = slideImg.offsetLeft - container.offsetLeft;
2662        const center = offsetLeft - (container.clientWidth - slideImg.clientWidth) / 2;
2663        container.scrollTo({ left: Math.max(0, center), behavior: 'smooth' });
2664      } catch(_){
2665        
2666        slideImg.scrollIntoView({ behavior:'smooth', inline:'center', block:'nearest' });
2667      }
2668    }
2669  }
2670}
2671function findImageForVariant(variant){
2672  if (!variant || !variant.attrs) return null;
2673  const tokens = [];
2674  try{
2675    Object.values(variant.attrs).forEach(v=>{
2676      if (!v) return;
2677      const raw = String(v);
2678      tokens.push(raw);
2679      tokens.push(normalize(raw));
2680    });
2681  }catch(_){}
2682  if (variant.sku){
2683    tokens.push(String(variant.sku));
2684    tokens.push(normalize(String(variant.sku)));
2685  }
2686  if (variant.image_url) {
2687      tokens.push(String(variant.image_url));
2688  }
2689  let best = null;
2690  let bestScore = -1;
2691
2692  for (const g of (galleryData||[])){
2693    const slugN = normalize(g.slug||'');
2694    const altN  = normalize(g.alt||'');
2695    const file  = _0x8s9t(g.url||'');
2696    const fileN = normalize(file);
2697    const imgU  = g.url;
2698
2699    for (const t of tokens){
2700      const tN = normalize(t);
2701      if (!tN) continue;
2702
2703      let score = -1;
2704      if (imgU === tN) score = 300;
2705      if (slugN && slugN === tN) score = 300;
2706      else if (fileN && fileN.includes(tN)) score = 200;
2707      else if (altN && altN.includes(tN)) score = 120;
2708
2709      if (score > bestScore){
2710        bestScore = score;
2711        best = g;
2712      }
2713      if (bestScore >= 300) break;
2714    }
2715    if (bestScore >= 300) break;
2716  }
2717  return bestScore >= 120 ? best : null;
2718}
2719function _0xey3z(variant){const a=_0xcw2x(variant);if(a&&a.url){_0xau1v(a.url,a.alt||'')}}
2720
2721/* ====== Layout mobile ====== */
2722(function _0xg04h(){const a=document.querySelector('.pd-media-card'),b=document.getElementById('pd-price-block'),c=document.getElementById('pd-price-anchor'),d=document.querySelector('.pd-info-card'),e=document.getElementById('pd-title'),f=document.getElementById('pd-variant-combined'),g=document.getElementById('pd-variants'),h=document.getElementById('pd-variants-anchor'),i=document.getElementById('pd-variant-summary'),j=document.getElementById('pd-summary-anchor'),titleRow=document.querySelector('.pd-title-row'),promoBanner=document.querySelector('.promo-endyear-mini-banner'),compareSection=document.querySelector('.pd-compare-section');if(!a||!b||!c||!d||!e)return;
2723
2724    let pricePlaced = false;
2725    let varPlaced = false;
2726    let titlePlaced = false;
2727    let promoPlaced = false;
2728    const mq = window.matchMedia('(max-width: 640px)');
2729
2730    function apply(){
2731        if (mq.matches) {
2732            if (!titlePlaced && a && titleRow && d.contains(titleRow)) { try{a.appendChild(titleRow);titlePlaced=true;}catch(_){} }
2733            if (!pricePlaced && a && b) { try{a.appendChild(b);pricePlaced=true;}catch(_){} }
2734            if (!varPlaced && f && d && e) {
2735                try{
2736                    f.hidden = false;
2737                    if (i && !f.contains(i)) f.appendChild(i);
2738                    if (g && !f.contains(g)) f.appendChild(g);
2739                    if(d.contains(e))d.insertBefore(f, e);
2740                    varPlaced = true;
2741                }catch(_){}
2742            }
2743            if (!promoPlaced && promoBanner && compareSection && compareSection.parentNode) {
2744                try{
2745                    compareSection.parentNode.insertBefore(promoBanner, compareSection);
2746                    promoPlaced = true;
2747                }catch(_){}
2748            }
2749        } else {
2750            if (titlePlaced && titleRow && d) {
2751                try{
2752                    const vcombined = document.getElementById('pd-variant-combined');
2753                    if (vcombined && d.contains(vcombined)) {
2754                        d.insertBefore(titleRow, vcombined);
2755                    } else {
2756                        d.insertBefore(titleRow, d.firstChild);
2757                    }
2758                    titlePlaced=false;
2759                }catch(_){}
2760            }
2761            if (pricePlaced && b && c && c.parentNode) {
2762                try{c.parentNode.insertBefore(b, c.nextSibling);pricePlaced=false;}catch(_){}
2763            }
2764            if (varPlaced) {
2765                try{
2766                    if (i && j && j.parentNode && !j.parentNode.contains(i)) j.parentNode.insertBefore(i, j.nextSibling);
2767                    if (g && h && h.parentNode && !h.parentNode.contains(g)) h.parentNode.insertBefore(g, h.nextSibling);
2768                    if (f) { f.hidden = true; f.innerHTML = ''; }
2769                    varPlaced = false;
2770                }catch(_){}
2771            }
2772            if (promoPlaced && promoBanner && b) {
2773                try{
2774                    b.appendChild(promoBanner);
2775                    promoPlaced = false;
2776                }catch(_){}
2777            }
2778        }
2779    }
2780
2781    mq.addEventListener ? mq.addEventListener('change', apply) : mq.addListener(apply);
2782    apply();
2783
2784    const fab = document.getElementById('pd-mobile-fab');
2785    if (fab) {
2786        const pid = parseInt(fab.getAttribute('data-pid')||'0',10) || 325;
2787        const btnCart = document.getElementById('mf-cart');
2788
2789        if (btnCart) btnCart.addEventListener('click', function(){
2790            const varInput = document.getElementById('pd-variant-id');
2791            const variantId = varInput ? parseInt(varInput.value||'0',10) : 0;
2792            try { if (window.addToCart) addToCart(pid, 1, variantId); } catch(_){}
2793            const variantText = getVariantSummaryText();
2794            const skuText = (function(){ const el=document.getElementById('pd-sku'); return el?el.textContent.trim():PD_SKU; })();
2795            showToast({
2796                type: 'success',
2797                title: 'Berhasil ditambahkan ke Keranjang',
2798                message: `<strong>${escapeHtml(PD_NAME)}</strong>${variantText?` · <em>${escapeHtml(variantText)}</em>`:''}<br>SKU: ${escapeHtml(skuText)} · Qty: 1`,
2799                duration: 5000,
2800                actions: [
2801                    { label: 'Lihat Keranjang', onClick: ()=> { window.location.href = '/keranjang'; } },
2802                    { label: 'Lanjut Belanja', variant: 'alt', onClick: ()=>{} }
2803                ]
2804            });
2805        });
2806    }
2807})();
2808
2809/* ====== Auto-hide installment banner if sidebar too tall (Desktop only) ====== */
2810(function(){
2811    function adjustSidebarBanner() {
2812        if (window.innerWidth <= 768) return;
2813        const sidebar = document.querySelector('.pd-sidebar');
2814        const infoCard = document.querySelector('.pd-info-card');
2815        const banner = document.querySelector('.pd-side-card.inst-alt-banner.inst-alt-banner--compact');
2816        if (!sidebar || !infoCard || !banner) return;
2817        const sidebarHeight = sidebar.offsetHeight;
2818        const infoCardHeight = infoCard.offsetHeight;
2819        if (sidebarHeight > infoCardHeight) {
2820            banner.style.display = 'none';
2821        } else {
2822            banner.style.display = '';
2823        }
2824    }
2825    if (document.readyState === 'loading') {
2826        document.addEventListener('DOMContentLoaded', adjustSidebarBanner);
2827    } else {
2828        adjustSidebarBanner();
2829    }
2830    let resizeTimer;
2831    window.addEventListener('resize', function() {
2832        clearTimeout(resizeTimer);
2833        resizeTimer = setTimeout(adjustSidebarBanner, 250);
2834    });
2835    const pwpSection = document.getElementById('pwp-deals-section');
2836    if (pwpSection) {
2837        const observer = new MutationObserver(function(mutations) {
2838            let shouldRecheck = false;
2839            mutations.forEach(function(mutation) {
2840                if (mutation.type === 'attributes' && mutation.attributeName === 'hidden') {
2841                    shouldRecheck = true;
2842                } else if (mutation.type === 'childList' && mutation.addedNodes.length > 0) {
2843                    shouldRecheck = true;
2844                }
2845            });
2846            if (shouldRecheck) {
2847                setTimeout(adjustSidebarBanner, 100);
2848            }
2849        });
2850        observer.observe(pwpSection, {
2851            attributes: true,
2852            childList: true,
2853            subtree: true
2854        });
2855    }
2856    window.adjustSidebarBanner = adjustSidebarBanner;
2857})();
2858
2859/* ====== Global constants ====== */
2860const IS_DIGITAL=false;
2861const IS_PREORDER=false;
2862
2863/* ====== Variants state (REVISED) ====== */
2864(function initVariants(){
2865const _0x7g8h=[];window.variants=_0x7g8h;
2866window.isPreorderProduct=false;
2867    const attrOrder = [];
2868
2869    if (!variants.length || !attrOrder.length) return;
2870
2871    function comboKey(sel){
2872        return attrOrder.map(a => a + '=' + (sel[a] ?? '')).join('|');
2873    }
2874
2875    const variantMap = {};
2876    variants.forEach(v=>{
2877        const key = comboKey(v.attrs);
2878        variantMap[key] = v;
2879    });
2880
2881    function readSelection(){
2882        const sel = {};
2883        attrOrder.forEach(a=>{
2884            const r = document.querySelector(`.v-group[data-attr="${CSS.escape(a)}"] input[type=radio]:checked`);
2885            sel[a] = r ? r.value : '';
2886        });
2887        return sel;
2888    }
2889
2890    function findVariant(sel){
2891        return variantMap[comboKey(sel)] || null;
2892    }
2893
2894    function autoFillMissing(sel){
2895        let changed = false;
2896        for (const a of attrOrder) {
2897            if (sel[a]) continue;
2898            const possible = [];
2899            const seen = new Set();
2900            variants.forEach(v=>{
2901                let ok = true;
2902                for (const a2 of attrOrder) {
2903                    if (a2 === a) continue;
2904                    if (sel[a2] && v.attrs[a2] !== sel[a2]) { ok = false; break; }
2905                }
2906                if (ok) {
2907                    const val = v.attrs[a];
2908                    if (!seen.has(val)) { seen.add(val); possible.push(val); }
2909                }
2910            });
2911            if (possible.length === 1) {
2912                const val = possible[0];
2913                const input = document.querySelector(`.v-group[data-attr="${CSS.escape(a)}"] input[type=radio][value="${CSS.escape(val)}"]`);
2914                if (input && !input.checked) { input.checked = true; sel[a] = val; changed = true; }
2915            }
2916        }
2917        return changed;
2918    }
2919
2920    function rupiah(n){
2921        n = parseInt(n||0,10)||0;
2922        return 'Rp ' + n.toString().replace(/\B(?=(\d{3})+(?!\d))/g,'.');
2923    }
2924    
2925    function focusGalleryByUrl(imageUrl) {
2926        const isMobile = window.matchMedia && window.matchMedia('(max-width: 640px)').matches;
2927          if (isMobile) {
2928            _0xau1v(imageUrl);
2929            return;
2930          }
2931        
2932          const gallery = document.getElementById('pd-thumb-gallery');
2933          const targetName = _0x8s9t(imageUrl);
2934        
2935          if (gallery) {
2936            const btns = Array.from(gallery.querySelectorAll('.pd-thumb-btn'));
2937            const btn = btns.find(b => _0x8s9t(b.getAttribute('data-full') || '') === targetName);
2938            if (btn) { btn.click(); return; }
2939          }
2940          
2941          _0xau1v(imageUrl);
2942    }
2943    
2944
2945function formatStockLabel(n){n=parseInt(n||0,10)||0;return(n>10)?'10+':String(n)}
2946function updateBranchPopover(v){try{if(!v)return;const a=document.getElementById('sp-qty-meg'),b=document.getElementById('sp-qty-mdf'),c=document.getElementById('sp-qty-bda');if(a)a.textContent=formatStockLabel(Math.max(0,v.smm|0));if(b)b.textContent=formatStockLabel(Math.max(0,v.smf|0));if(c)c.textContent=formatStockLabel(Math.max(0,v.sba|0))}catch(_){}}
2947
2948    function calcVoucherDisc(type,value,price,maxDisc){if(type==='PERCENTAGE'){let d=(price*value)/100;if(maxDisc>0&&d>maxDisc)d=maxDisc;return Math.round(d)}return Math.round(value)}
2949
2950    function applyVariant(v, focusImage = true){
2951        const elCur  = document.getElementById('pd-price-current');
2952        const elOri  = document.getElementById('pd-price-original');
2953        const elDisc = document.getElementById('pd-discount-badge');
2954        const elSku  = document.getElementById('pd-sku');
2955        const elStock= document.getElementById('pd-stock-badge');
2956        const elQty  = document.getElementById('qty');
2957        const btnAdd = document.getElementById('btn-add-cart');
2958        const btnBuy = document.getElementById('btn-buy');
2959        const hidVar = document.getElementById('pd-variant-id');
2960
2961        const mfCart= document.getElementById('mf-cart');
2962        const mfBuy = document.getElementById('mf-buy');
2963        const fab = document.getElementById('pd-mobile-fab');
2964
2965        if (hidVar) hidVar.value = v ? v.id : 0;
2966        if (elCur) elCur.textContent = rupiah(v ? v.final : 0);
2967        if (elSku && v && v.sku) elSku.textContent = v.sku;
2968
2969        if (v && v.ori > v.final) {
2970            if (elOri) { elOri.style.display='inline'; elOri.textContent = rupiah(v.ori); }
2971            if (elDisc) { elDisc.style.display='inline'; elDisc.textContent = '-' + (v.disc||0) + '%'; }
2972        } else {
2973            if (elOri) elOri.style.display='none';
2974            if (elDisc) elDisc.style.display='none';
2975        }
2976
2977        const stock = v ? (parseInt(v.stock||0,10)||0) : 0;
2978        let effectiveStock = stock;
2979        let isActivePreorder = false;
2980        if (window.isPreorderProduct && v && 'preorder_remaining' in v && v.preorder_remaining !== null) {
2981            effectiveStock = parseInt(v.preorder_remaining, 10);
2982            if (isNaN(effectiveStock)) effectiveStock = 0;
2983            isActivePreorder = true;
2984        }
2985        if (elStock){
2986            elStock.classList.remove('in','out');
2987            if (effectiveStock>0){ 
2988                elStock.classList.add('in'); 
2989                elStock.textContent = IS_DIGITAL ? 'Tersedia' : (isActivePreorder ? 'Sisa Slot: ' + effectiveStock : 'Stok: ' + formatStockLabel(effectiveStock)); 
2990            } else { 
2991                elStock.classList.add('out'); 
2992                elStock.textContent = 'Habis'; 
2993            }
2994        }
2995        if (elQty){
2996            elQty.max = String(effectiveStock>0?effectiveStock:0);
2997            if (effectiveStock<=0) { elQty.value = '0'; elQty.disabled = true; }
2998            else { if (parseInt(elQty.value||'1',10) < 1) elQty.value='1'; elQty.disabled=false; }
2999        }
3000        
3001        const shouldDisable = !(v && effectiveStock>0);
3002        const updateButtons = () => {
3003            const btnAddCart = document.getElementById('btn-add-cart');
3004            const btnBuyNow = document.getElementById('btn-buy');
3005            const mobileCart = document.getElementById('mf-cart');
3006            const mobileBuy = document.getElementById('mf-buy');
3007            [btnAddCart, btnBuyNow, mobileCart, mobileBuy].forEach(btn => {
3008                if (!btn) return;
3009                if (shouldDisable) {
3010                    btn.disabled = true;
3011                    btn.setAttribute('disabled', 'disabled');
3012                    btn.classList.add('stock-disabled');
3013                    btn.setAttribute('data-stock-blocked', 'true');
3014                    btn.setAttribute('data-stock-reason', window.isPreorderProduct ? 'Pre-order habis' : 'Stok habis');
3015                } else {
3016                    btn.disabled = false;
3017                    btn.removeAttribute('disabled');
3018                    btn.classList.remove('stock-disabled');
3019                    btn.removeAttribute('data-stock-blocked');
3020                    btn.removeAttribute('data-stock-reason');
3021                }
3022            });
3023        };
3024        updateButtons();
3025        setTimeout(updateButtons, 10);
3026        setTimeout(updateButtons, 50);
3027        setTimeout(updateButtons, 100);
3028        if (mfBuy && v) {
3029            const voucherBtn = document.getElementById('btn-buy-voucher');
3030            const voucherCode = fab ? fab.dataset.voucherCode : '';
3031            let voucherDiscount = 0;
3032            
3033            if (voucherBtn && voucherCode) {
3034                const vType = voucherBtn.dataset.voucherType;
3035                const vValue = parseFloat(voucherBtn.dataset.voucherValue) || 0;
3036                const vMax = parseFloat(voucherBtn.dataset.voucherMax) || 0;
3037                const finalPrice = v.final || 0;
3038                if (vType && vValue > 0) {
3039                    voucherDiscount = calcVoucherDisc(vType, vValue, finalPrice, vMax);
3040                    if (fab) fab.dataset.voucherValue = voucherDiscount.toString();
3041                }
3042            }
3043            
3044            const finalPrice = v.final || 0;
3045            const textEl = mfBuy.querySelector('.mf-buy-text');
3046            const priceEl = mfBuy.querySelector('.mf-buy-price');
3047            
3048            if (effectiveStock > 0) {
3049                    if (IS_PREORDER) {
3050                        if (textEl) textEl.textContent = 'Pre Order Sekarang';
3051                        if (priceEl) priceEl.textContent = rupiah(finalPrice);
3052                    } else if (voucherCode && voucherDiscount > 0) {
3053                        if (textEl) textEl.textContent = 'Beli dengan Voucher';
3054                        if (priceEl) priceEl.textContent = rupiah(Math.max(0, finalPrice - voucherDiscount));
3055                    } else {
3056                        if (textEl) textEl.textContent = 'Beli Sekarang';
3057                        if (priceEl) priceEl.textContent = rupiah(finalPrice);
3058                    }
3059                } else {
3060                    if (textEl) textEl.textContent = 'Stok Habis';
3061                    if (priceEl) priceEl.textContent = rupiah(finalPrice);
3062                }
3063            }
3064        
3065        const isMobile = window.initMobile ?? 0;
3066        if (window.instSetBasePrice) window.instSetBasePrice(v ? (isMobile == '1' ? v.ori : v.final) : 0);
3067        if (window.updateSoldBySku) window.updateSoldBySku(v.sku);
3068        updateBranchPopover(v);
3069        if (v && v.image_url && focusImage) focusGalleryByUrl(v.image_url);
3070        if (v) {
3071            window.dispatchEvent(new CustomEvent('pd-variant-changed', {
3072                detail: {
3073                    price: v.final,
3074                    originalPrice: v.ori,
3075                    discount: v.disc,
3076                    stock: effectiveStock,
3077                    sku: v.sku,
3078                    variant_id: v.id
3079                }
3080            }));
3081            
3082            const encodedHash = encodeVariantHash(v.id);
3083            if (encodedHash && window.history && window.history.replaceState) {
3084                const newHash = '#v=' + encodedHash;
3085                const newUrl = window.location.pathname + window.location.search + newHash;
3086                window.history.replaceState(null, '', newUrl);
3087            }
3088        }
3089    }
3090
3091    let sel = readSelection();
3092    if (autoFillMissing(sel)) sel = readSelection();
3093
3094    let v = findVariant(sel);
3095    if (!v) {
3096        const candidates = variants.filter(variant=>{
3097            return attrOrder.every(a=>{
3098                if (!sel[a]) return true;
3099                return variant.attrs[a] === sel[a];
3100            });
3101        });
3102        if (candidates.length >= 1) {
3103            v = candidates[0];
3104            attrOrder.forEach(a=> sel[a] = v.attrs[a]);
3105            attrOrder.forEach(a=>{
3106                const val = sel[a];
3107                const input = document.querySelector(`.v-group[data-attr="${CSS.escape(a)}"] input[type=radio][value="${CSS.escape(val)}"]`);
3108                if (input) input.checked = true;
3109            });
3110        }
3111    }
3112
3113    const initSel = readSelection();
3114    const initVar = findVariant(initSel) || variants[0] || null;
3115    if (document.readyState === 'loading') {
3116        document.addEventListener('DOMContentLoaded', () => applyVariant(initVar, false));
3117    } else {
3118        applyVariant(initVar, false);
3119    }
3120    
3121function updateSummary(sel){Object.entries(sel).forEach(([a,val])=>{const el=document.getElementById('vs-'+a);if(el)el.textContent=val||'-'})}
3122    function refreshOptions(sel){
3123        attrOrder.forEach(a=>{
3124            const group = document.querySelector(`.v-group[data-attr="${CSS.escape(a)}"]`);
3125            if (!group) return;
3126            const chips = group.querySelectorAll('.v-chip');
3127            chips.forEach(ch=>{
3128                const val = ch.getAttribute('data-value');
3129                const possible = variants.some(v=>{
3130                    if (v.attrs[a] !== val) return false;
3131                    for (const a2 of attrOrder) {
3132                        if (a2 === a) continue;
3133                        if (sel[a2] && v.attrs[a2] !== sel[a2]) return false;
3134                    }
3135                    return true;
3136                });
3137                const input = ch.querySelector('input[type=radio]');
3138                const disabled = !possible;
3139                if (input) input.disabled = disabled;
3140                ch.classList.toggle('disabled', disabled);
3141
3142                let candidateVariant = null;
3143                if (possible) {
3144                    candidateVariant = variants.find(v=>{
3145                        if (v.attrs[a] !== val) return false;
3146                        for (const a2 of attrOrder) {
3147                            if (a2 === a) continue;
3148                            if (sel[a2] && v.attrs[a2] !== sel[a2]) return false;
3149                        }
3150                        return true;
3151                    });
3152                }
3153                const outOfStock = candidateVariant ? (window.isPreorderProduct && candidateVariant.preorder_remaining !== null ? candidateVariant.preorder_remaining <= 0 : candidateVariant.stock <= 0) : false;
3154                ch.classList.toggle('out', !disabled && outOfStock);
3155                const badge = ch.querySelector('.chip-badge');
3156                if (badge) badge.hidden = !(candidateVariant && outOfStock);
3157            });
3158            group.querySelectorAll('.v-chip').forEach(ch=>{
3159                const input = ch.querySelector('input[type=radio]');
3160                ch.classList.toggle('selected', input && input.checked);
3161            });
3162        });
3163    }
3164    updateSummary(sel);
3165    refreshOptions(sel);
3166    document.querySelectorAll('.v-chip').forEach(chip=>{const input=chip.querySelector('input[type=radio]');if(input&&input.checked){chip.classList.add('selected');}});
3167
3168    const container = document.getElementById('pd-variants');
3169    container && container.addEventListener('change', function(ev){
3170        const radio = ev.target.closest('input[type=radio]');
3171        if (!radio) return;
3172        sel = readSelection();
3173        if (autoFillMissing(sel)) sel = readSelection();
3174        const chosen = findVariant(sel);
3175        applyVariant(chosen || null, true);
3176        
3177        updateSummary(sel);
3178        refreshOptions(sel);
3179    });
3180    
3181window.applyVariant=applyVariant;
3182})();
3183
3184(function cleanBrokenDescImages(){
3185    const containers = [
3186        document.querySelector('.pd-full-desc-body'),
3187        document.querySelector('.pd-short-desc')
3188    ].filter(Boolean);
3189
3190    containers.forEach(root => {
3191        const imgs = root.querySelectorAll('img');
3192        imgs.forEach(img => {
3193            if (img.complete && img.naturalWidth === 0) {
3194                img.remove();
3195                return;
3196            }
3197            img.addEventListener('error', () => {
3198                img.remove();
3199            }, { once:true });
3200        });
3201    });
3202})();
3203
3204/* ====== Scroll To Top ====== */
3205(function _0xi25j(){const a=document.getElementById('pd-scroll-top');if(!a)return;function b(){if(window.matchMedia('(max-width:640px)').matches){const d=document.querySelector('.bottom-nav'),e=document.querySelector('.pd-mobile-fab');if(!d&&!e){setTimeout(b,100);return}const f=d&&window.getComputedStyle(d).display!=='none'&&window.getComputedStyle(d).visibility!=='hidden',g=e&&window.getComputedStyle(e).display!=='none'&&window.getComputedStyle(e).visibility!=='hidden';let h;if(f&&g){h='calc(68px + 54px + env(safe-area-inset-bottom))'}else if(g){h='calc(68px + 8px + env(safe-area-inset-bottom))'}else if(f){h='calc(60px + env(safe-area-inset-bottom))'}else{h='calc(20px + env(safe-area-inset-bottom))'}a.style.setProperty('--scroll-top-bottom',h)}else{a.style.removeProperty('--scroll-top-bottom')}}function c(){const d=window.pageYOffset||document.documentElement.scrollTop||0,e=d>300;a.classList.toggle('visible',e);a.setAttribute('aria-hidden',e?'false':'true');b()}window.addEventListener('scroll',c,{passive:!0});window.addEventListener('resize',b,{passive:!0});setTimeout(b,100);c();a.addEventListener('click',function(){window.scrollTo({top:0,behavior:'smooth'})})})();
3206
3207/* Format stok 10+ */
3208function _0xk67l(n){n=parseInt(n||0,10)||0;return n>10?'10+':String(n)}
3209
3210/* Toggle popover stok per cabang */
3211(function _0xm89n(){const a=document.getElementById('pd-stock-info-btn'),b=document.getElementById('pd-stock-popover'),c=document.getElementById('pd-stock-popover-close');if(!a||!b)return;function d(){if(window.matchMedia('(min-width: 641px)').matches){const e=document.getElementById('pd-stock-badge');if(!e)return;const f=e.getBoundingClientRect(),g=window.pageXOffset||document.documentElement.scrollLeft||0,h=window.pageYOffset||document.documentElement.scrollTop||0;b.style.left=(f.left+g-10)+'px';b.style.top=(f.bottom+h+10)+'px'}else{b.style.left='';b.style.top=''}}
3212function e(){d();b.classList.add('show');a.setAttribute('aria-expanded','true');b.setAttribute('aria-hidden','false');document.addEventListener('click',g,{capture:true});window.addEventListener('resize',d,{passive:true});window.addEventListener('scroll',d,{passive:true})}function f(){b.classList.remove('show');a.setAttribute('aria-expanded','false');b.setAttribute('aria-hidden','true');document.removeEventListener('click',g,{capture:true});window.removeEventListener('resize',d);window.removeEventListener('scroll',d)}function g(h){if(b.contains(h.target)||a.contains(h.target))return;f()}
3213a.addEventListener('click',function(h){h.preventDefault();b.classList.contains('show')?f():e()});if(c)c.addEventListener('click',f)})();
3214
3215/* ===== Share Product Modal ===== */
3216(function(){const a=document.getElementById('pd-share-btn'),z=document.getElementById('mf-share'),b=document.getElementById('pd-share-modal-overlay'),c=document.getElementById('pd-share-close'),d=document.getElementById('pd-share-copy-url-btn'),e=document.getElementById('pd-share-url-input');if((!a&&!z)||!b)return;const f="https://ecatch.org/",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",h="Rp 20.789.000";const discountPercent=1;let i='';if(discountPercent>0){i=`🔥 Lagi Promo Nih! Diskon ${discountPercent}%\n\n✨ ${g}\n💰 Cuma ${h} aja!\n\n🛒 Buruan cek sebelum kehabisan!\n👉 `}else{i=`✨ Ada barang bagus nih!\n\n📦 ${g}\n💸 Harga: ${h}\n\n🛍️ Yuk, langsung cek!\n👉 `}function j(){b.classList.add('show');document.body.style.overflow='hidden'}function k(){b.classList.remove('show');document.body.style.overflow=''}if(a)a.addEventListener('click',j);if(z)z.addEventListener('click',j);if(c)c.addEventListener('click',k);b.addEventListener('click',function(l){if(l.target===b)k()});document.addEventListener('keydown',function(l){if(l.key==='Escape'&&b.classList.contains('show'))k()});b.addEventListener('click',function(l){const m=l.target.closest('[data-share]');if(!m)return;const n=m.getAttribute('data-share'),o=encodeURIComponent(f),p=e
3216ncodeURIComponent(i),q=encodeURIComponent(g);let r='';switch(n){case 'whatsapp':r=`https://wa.me/?text=${p}${o}`;break;case 'facebook':r=`https://www.facebook.com/sharer/sharer.php?u=${o}`;break;case 'twitter':r=`https://twitter.com/intent/tweet?text=${p}${o}`;break;case 'telegram':r=`https://t.me/share/url?url=${o}&text=${p}`;break;case 'email':r=`mailto:?subject=${encodeURIComponent('🔥 Cek Produk Keren Ini!')}&body=${p}${o}`;window.location.href=r;k();return;case 'copy':s();return;case 'pdf':const ps=document.querySelector('.product-single');if(ps){ps.setAttribute('data-print-date',new Date().toLocaleDateString('id-ID',{year:'numeric',month:'long',day:'numeric'}))}k();setTimeout(function(){window.print();try{if(window.ga4Ecomm&&window.ga4Ecomm.trackEvent)window.ga4Ecomm.trackEvent('share',{method:'pdf_export',content_type:'product',item_id:"4563217890"})}catch(_){}},300);return}if(r){window.open(r,'_blank','noopener,noreferrer');try{if(window.ga4Ecomm&&window.ga4Ecomm.trackEvent)window.ga4Ecomm.trackEvent('share',{method:n,content_type:'product',item_id:"4563217890"})}catch(_){}}});function s(){if(!e)return;e.select();e.setSelectionRange(0,99999);try{if(navigator.clipboard&&navigator.clipboard.writeText){navigator.clipboard.writeText(f).then(function(){t()}).catch(function(){document.execCommand('copy');t()})}else{document.execCommand('copy');t()}}catch(u){console.error('Failed to copy:',u)}}function t(){if(!d)return;const v=d.innerHTML;d.classList.add('copied');d.innerHTML='<svg viewBox="0 0 24 24" width="16" height="16"><path fill="currentColor" 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>';if(window.showToast)showToast({type:'success',title:'✨ Link Tersalin!',message:'Link produk berhasil disalin. Yuk bagikan ke teman!',duration:3000});setTimeout(function(){d.classList.remove('copied');d.innerHTML=v},2000)}if(d)d.addEventListener('click',s);if(navigator.share){const shareHandler=function(w){w.preventDefault();navigator.share({title:g,text:i+f,url:f}).catch(function(x){console.log('Native share cancelled or failed:',x)})};if(a)a.addEventListener('dblclick',shareHandler);if(z)z.addEventListener('dblclick',shareHandler)}})();
3217
3218/* ===== Embedding variants (server → client) ===== */
3219(function(){
3220  window.__PD_VARIANTS_WITH_BRANCH__ = [];
3221})();
3222
3223/* ===== Helper: update angka popover ===== */
3224function updateStockPopoverForVariant(v){
3225  try{
3226    const elMeg = document.getElementById('sp-qty-meg');
3227    const elMdf = document.getElementById('sp-qty-mdf');
3228    const elBda = document.getElementById('sp-qty-bda');
3229
3230    if (typeof v?.smm === 'number' && elMeg) elMeg.textContent = formatStockLabel(Math.max(0, v.smm|0));
3231    if (typeof v?.smf === 'number' && elMdf) elMdf.textContent = formatStockLabel(Math.max(0, v.smf|0));
3232    if (typeof v?.sba === 'number' && elBda) elBda.textContent = formatStockLabel(Math.max(0, v.sba|0));
3233  }catch(_){}
3234}
3235
3236/* ===== applyVariant: 10+ dan update popover ===== */
3237(function patchApplyVariant(){
3238  if (typeof applyVariant !== 'function') return;
3239  const original = applyVariant;
3240  window.applyVariant = function(v){
3241    original(v);
3242    
3243    try {
3244      const elStock = document.getElementById('pd-stock-badge');
3245      if (elStock){
3246        let txt = elStock.textContent || '';
3247        let m = txt.match(/\d+/);
3248        if (m) {
3249          const n = parseInt(m[0]||'0',10)||0;
3250          elStock.textContent = (n>0) ? ('Stok: ' + formatStockLabel(n)) : 'Habis';
3251        }
3252      }
3253    } catch(_){}
3254if(window.__PD_VARIANTS_WITH_BRANCH__&&v){const vv=window.__PD_VARIANTS_WITH_BRANCH__.find(x=>x.id===v.id)||v;updateStockPopoverForVariant(vv)}
3255  };
3256})();
3257
3258(function initCurrentVariantBranch(){
3259  const list = window.__PD_VARIANTS_WITH_BRANCH__ || [];
3260  if (!list.length) return;
3261  const hid = document.getElementById('pd-variant-id');
3262  const vid = hid ? parseInt(hid.value||'0',10) : 0;
3263  const current = list.find(x => x.id === vid) || list[0] || null;
3264  if (current) updateStockPopoverForVariant(current);
3265})();
3266
3267(function(){
3268    if (!window.ga4Ecomm) return;
3269    const catSegs = ["Komputer & Laptop","Laptop","Gaming"];
3270    window.ga4Ecomm.viewItem({
3271      currency: 'IDR',
3272      value: 20789000,
3273      item_id: "4563217890",
3274      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",
3275      item_brand: "Lenovo ",
3276      item_category: catSegs && catSegs.length ? catSegs.join(' / ') : ''
3277    });
3278  })();
3279  
3280(function patchApplyVariantFocus(){
3281  if (typeof applyVariant !== 'function') return;
3282  const original = applyVariant;
3283  window.applyVariant = function(v, focusImage = true){
3284    
3285    original(v, focusImage);
3286    
3287    if (focusImage && v && v.image_url) {
3288      _0xau1v(v.image_url);
3289    }
3290  };
3291})();
3292
3293(function() {
3294  var soldMap = [];
3295  var soldTotalLabel = "Terjual 2";
3296
3297  function formatSoldLabel(qty) {
3298    if (qty >= 1000000) {
3299      var v = Math.floor((qty / 100000) ) / 10;
3300      return 'Terjual ' + (String(v).replace('.', ',')) + 'jt+';
3301    }
3302    if (qty >= 1000) {
3303      var v2 = Math.floor((qty / 100) ) / 10;
3304      return 'Terjual ' + (String(v2).replace('.', ',')) + 'rb+';
3305    }
3306    if (qty >= 100) {
3307      var v2 = Math.floor((qty / 100) ) * 100;
3308      return 'Terjual ' + (String(v2).replace('.', ',')) + '+';
3309    }
3310    if (qty >= 10) {
3311      var v2 = Math.floor((qty / 10) ) * 10;
3312      return 'Terjual ' + (String(v2).replace('.', ',')) + '+';
3313    }
3314    return 'Terjual ' + (qty.toLocaleString('id-ID'));
3315  }
3316
3317  function updateSoldLabel(labelText) {
3318    var el = document.querySelector('#pd-sold-inline, [data-role="sold-chip"]');
3319    if (el) el.textContent = labelText;
3320  }
3321
3322  window.updateSoldBySku = function(sku) {
3323    if (!sku || typeof sku !== 'string') {
3324      updateSoldLabel(soldTotalLabel);
3325      return;
3326    }
3327    var qty = soldMap[sku] || 0;
3328    updateSoldLabel(formatSoldLabel(qty));
3329  };
3330
3331    updateSoldLabel(soldTotalLabel);
3332  })();
3333
3334(function(){const h=document.getElementById('pd-sticky-header');if(!h)return;const p=document.getElementById('pd-price-anchor');const ac=document.getElementById('pd-sticky-add-cart');const by=document.getElementById('pd-sticky-buy');let lt=window.scrollY;let tk=false;function u(){if(!p)return;const r=p.getBoundingClientRect();const s=window.scrollY;if(r.top<0){h.classList.add('visible')}else{h.classList.remove('visible')}lt=s;tk=false}function rt(){if(!tk){window.requestAnimationFrame(u);tk=true}}window.addEventListener('scroll',rt,{passive:true});u();function sy(){const ma=document.getElementById('btn-add-cart');const mb=document.getElementById('btn-buy');if(ac&&ma){ac.disabled=ma.disabled}if(by&&mb){by.disabled=mb.disabled}}sy();const ob=new MutationObserver(sy);const ma=document.getElementById('btn-add-cart');const mb=document.getElementById('btn-buy');if(ma)ob.observe(ma,{attributes:true,attributeFilter:['disabled']});if(mb)ob.observe(mb,{attributes:true,attributeFilter:['disabled']});const ss=document.getElementById('pd-sticky-share-btn');const ms=document.getElementById('pd-share-btn');if(ss&&ms){ss.addEventListener('click',function(e){e.preventDefault();ms.click()})}if(ac){ac.addEventListener('click',function(e){e.preventDefault();if(ac.disabled)return;const m=document.getElementById('btn-add-cart');if(m&&!m.disabled){m.click()}})}if(by){by.addEventListener('click',function(e){e.preventDefault();if(by.disabled)return;const m=document.getElementById('btn-buy');if(m&&!m.disabled&&window.buyNow){window.buyNow(e)}})}
3335function getChatProductData(){const varInput=document.getElementById('pd-variant-id');const variantId=varInput?parseInt(varInput.value||'0',10):0;const variantSummary=getVariantSummaryText();const priceEl=document.getElementById('pd-price-current');const currentPrice=priceEl?priceEl.textContent.trim():'Rp 20.789.000';const pd={id:325,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",price:currentPrice,image:"\/uploads\/products\/lenovo-legion-go-8asp2-83n0000rid.webp",url:window.location.href};if(variantId>0){pd.variant_id=variantId}if(variantSummary){pd.variant_summary=variantSummary}return pd}
3336const ch=document.getElementById('pd-sticky-chat');if(ch){ch.addEventListener('click',function(e){e.preventDefault();if(!window.plazaChat){console.warn('Chat widget not loaded');return}window.plazaChat.attachProduct(getChatProductData());window.plazaChat.openWidget()})}const dch=document.getElementById('btn-chat-icon');if(dch){dch.addEventListener('click',function(e){e.preventDefault();if(!window.plazaChat){console.warn('Chat widget not loaded');return}window.plazaChat.attachProduct(getChatProductData());window.plazaChat.openWidget()})}const mch=document.getElementById('mf-chat');if(mch){mch.addEventListener('click',function(e){e.preventDefault();if(!window.plazaChat){console.warn('Chat widget not loaded');return}window.plazaChat.attachProduct(getChatProductData());window.plazaChat.openWidget()})}window.addEventListener('pd-variant-changed',function(e){const d=e.detail||{};if(d.price!==undefined){const sp=document.getElementById('pd-sticky-price');if(sp){sp.textContent=formatRupiah(d.price)}}if(d.originalPrice!==undefined&&d.originalPrice>d.price){const so=document.getElementById('pd-sticky-price-original');if(so){so.textContent=formatRupiah(d.originalPrice);so.style.display=''}}else{const so=document.getElementById('pd-sticky-price-original');if(so){so.style.display='none'}}if(d.discount!==undefined&&d.discount>0){const sd=document.getElementById('pd-sticky-discount');if(sd){sd.textContent='-'+d.discount+'%';sd.style.display=''}}else{const sd=document.getElementById('pd-sticky-discount');if(sd){sd.style.display='none'}}const hs=d.stock>0;if(ac){ac.disabled=!hs}if(by){by.disabled=!hs}});
3336function formatRupiah(n){return'Rp'+Math.floor(n).toLocaleString('id-ID')}})();
3337
3338(function(){const t=document.getElementById('pdv-toggle-btn');const v=document.getElementById('pd-voucher-section');if(t&&v){const h=v.querySelectorAll('.pdv-min-hidden');const n=h.length;t.addEventListener('click',function(){const e=t.classList.toggle('expanded');h.forEach(function(i){if(e){i.classList.remove('pdv-min-hidden')}else{i.classList.add('pdv-min-hidden')}});t.textContent=e?'Tutup':'+'+n})}const m=document.getElementById('voucher-detail-modal');const mc=document.getElementById('voucher-modal-close');const ma=document.getElementById('voucher-modal-cancel');const mcp=document.getElementById('voucher-modal-copy');if(m){const bb=document.querySelectorAll('.pdv-badge-btn');bb.forEach(function(btn){btn.addEventListener('click',function(){if(btn.disabled)return;const c=btn.getAttribute('data-voucher-code');const nm=btn.getAttribute('data-voucher-name');const dl=btn.getAttribute('data-discount-label');const bl=btn.getAttribute('data-badge-label');const mp=parseInt(btn.getAttribute('data-min-purchase'));const md=parseInt(btn.getAttribute('data-max-discount'));const vu=btn.getAttribute('data-valid-until');document.getElementById('voucher-modal-badge').innerHTML='<span class="vmb-value">'+dl+'</span><span class="vmb-label">'+bl+'</span>';document.getElementById('voucher-modal-code').textContent=c;document.getElementById('voucher-modal-name').textContent=nm;const me=document.getElementById('voucher-modal-min');if(mp>0){me.style.display='';document.getElementById('voucher-modal-min-val').textContent=fr(mp)}else{me.style.display='none'}const xe=document.getElementById('voucher-modal-max');if(md>0){xe.style.display='';document.getElementById('voucher-modal-max-val').textContent=fr(md)}else{xe.style.display='none'}if(vu){const d=new Date(vu);const ft=d.toLocaleDateString('id-ID',{day:'numeric',month:'long',year:'numeric',hour:'2-digit',minute:'2-digit'});document.getElementById('voucher-modal-valid-val').textContent=ft}mcp.setAttribute('data-code',c);m.classList.add('show');document.body.style.overflow='hidden'})});function cm(){m.classList.remove('show');document.body.style.overflow=''}if(mc)mc.addEventListener('click',cm);if(ma)ma.addEventListener('click',cm);m.addEventListener('click',function(e){if(e.target===m)cm()});if(mcp){mcp.addEventListener('click',function(){const c=mcp.getAttribute('data-code');if(!c)return;if(navigator.clipboard&&navigator.clipboard.writeText){navigator.clipboard.writeText(c).then(function(){smc()}).catch(function(err){fc(c)})}else{fc(c)}})}}const b=document.querySelectorAll('.pdv-min-copy');b.forEach(function(btn){btn.addEventListener('click',function(){if(btn.disabled)return;const code=btn.getAttribute('data-code');if(!code)return;if(navigator.clipboard&&navigator.clipboard.writeText){navigator.clipboard.writeText(code).then(function(){sc(btn)}).catch(function(err){fc(code,btn)})}else{fc(code,btn)}})});function fc(text,btn){const tx=document.createElement('textarea');tx.value=text;tx.style.position='fixed';tx.style.opacity='0';document.body.appendChild(tx);tx.select();try{document.execCommand('copy');if(btn)sc(btn);else smc()}catch(err){}document.body.removeChild(tx)}function sc(btn){const o=btn.textContent;btn.classList.add('copied');btn.textContent='✓ Tersalin';setTimeout(function(){btn.classList.remove('copied');btn.textContent=o},2000)}function smc(){const o=mcp.textContent;mcp.textContent='✓ Kode Tersalin';mcp.style.background='#22c55e';setTimeout(function(){mcp.textContent=o;mcp.style.background=''},2000)}function fr(a){return'Rp'+Math.floor(a).toLocaleString('id-ID')}})();
3339</script>
vendor: 1 bytes, line 3339
3339
3340<script nonce="se3iyzEHMc9FQEB4wSyd0w==">
3341window.PD_ID=325;window.PD_NAME=_0x3c4d;window.PD_SKU=_0x5e6f;window.PD_CATEGORY_PATH="Komputer & Laptop/Laptop/Gaming";window.PD_BEST_VOUCHER=null;
3342window.IS_DIGITAL=IS_DIGITAL;
3343window.isPreorderProduct=false;
3344window.PD_PREORDER_DATA=null;
3345</script>
3345
3346
3347<script src="https://plazait.b-cdn.net/assets/js/pd-lightbox.js" nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
vendor: 1 bytes, line 3347
3347
3348<script src="https://plazait.b-cdn.net/assets/js/cart.js" defer nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
vendor: 1 bytes, line 3348
3348
3349<script src="https://plazait.b-cdn.net/assets/js/stock-validator-vanilla.js" nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
vendor: 1 bytes, line 3349
3349
3350<script src="https://plazait.b-cdn.net/assets/js/pd-addtocart.js" defer nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
vendor: 1 bytes, line 3350
3350
3351<script src="https://plazait.b-cdn.net/assets/js/pd-buynow.js" defer nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
vendor: 1 bytes, line 3351
3351
3352<script src="https://plazait.b-cdn.net/assets/js/pd-voucher-recalc.js" defer nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
vendor: 1 bytes, line 3352
3352
3353<script nonce="se3iyzEHMc9FQEB4wSyd0w==">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)}});}});</script>
3353
3354
3355<script nonce="se3iyzEHMc9FQEB4wSyd0w==">
3356(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'}})}}
3357
3358function _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()}})();
3359
3360(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()}})})();
3361</script>
3361<footer class="site-footer footer-compact variant-stripes" role="contentinfo">
3362  <div class="ft-top ft-collapsible" id="ftTop">
3363    <div class="container ft-grid">
3364
3365      <div class="ft-col ft-help">
3366        <h4 class="ft-title">Butuh Bantuan?</h4>
3367        <p class="ft-desc">Hubungi kami melalui Official WhatsApp interaktif sekarang.</p>
3368        <a class="ft-wa-btn" href="#" target="_blank" rel="nofollow noopener">
3369          <span class="ico" aria-hidden="true">
3370            <svg viewBox="0 0 24 24" width="18" height="18"><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"/></svg>
3371          </span>
3372          Kirim Pesan
3373        </a>
3374
3375        <p class="ft-desc sm-gap">Ikuti kami:</p>
3376        <div class="ft-social">
3377          <a aria-label="Facebook" href="https://facebook.com/PlazaIt/"><svg viewBox="0 0 24 24" width="18" height="18"><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"/></svg></a>
3378          <a aria-label="Instagram" href="https://www.instagram.com/plazait"><svg viewBox="0 0 24 24" width="18" height="18"><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
3378V7.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"/></svg></a>
3379          <a aria-label="TikTok" href="https://www.tiktok.com/@plazait"><svg viewBox="0 0 24 24" width="18" height="18"><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"/></svg></a>
3380        </div>
3381      </div>
3382
3383            <!-- Collapsible Content Wrapper (Non-Homepage Only) -->
3384      <div class="ft-collapsible-content" id="ftCollapsible">
3385      
3386      <div class="ft-col">
3387        <h4 class="ft-title">Tentang SEMBAHTOTO</h4>
3388        <ul class="ft-links">
3389          <li><a href="/tentang-kami">Tentang Kami</a></li>
3390          <li><a href="/kontak-kami">Kontak Kami</a></li>
3391          <li><a href="/lokasi-toko">Lokasi Toko</a></li>
3392          <li><a href="/faq">FAQ</a></li>
3393        </ul>
3394        <div class="ft-address">
3395          <p class="company">PT TUNJUNGAN PLAZA</p>
3396                      <p>Tunjungan plaza, Jl. Jenderal Basuki Rachmat No.8-12 lantai 5, Kedungdoro</p>
3397                      <p>Kec. Tegalsari, Surabaya, Jawa Timur 60261</p>
3398                  </div>
3399      </div>
3400
3401      <div class="ft-col">
3402        <h4 class="ft-title">Informasi</h4>
3403        <ul class="ft-links">
3404          <li><a href="/syarat-dan-ketentuan">Syarat &amp; Ketentuan</a></li>
3405          <li><a href="/kebijakan-privasi">Kebijakan Privasi</a></li>
3406          <li><a href="/kebijakan-cookie">Kebijakan Cookie</a></li>
3407          <li><a href="/pengiriman-dan-pengembalian">Pengiriman &amp; Pengembalian</a></li>
3408          <li><a href="/pembayaran-dan-cicilan">Pembayaran &amp; Cicilan</a></li>
3409          <li><a href="/garansi-dan-layanan">Garansi &amp; Layanan</a></li>
3410        </ul>
3411
3412        <div class="ft-payments payments-small" aria-label="Metode Pembayaran">
3413          <div class="pay-row">
3414            <img src="https://plazait.b-cdn.net/assets/img/payments/mandiri.svg" alt="Mandiri" loading="lazy">
3415            <img src="https://plazait.b-cdn.net/assets/img/payments/bni.svg" alt="BNI" loading="lazy">
3416            <img src="https://plazait.b-cdn.net/assets/img/payments/bri.svg" alt="BRI" loading="lazy">
3417            <img src="https://plazait.b-cdn.net/assets/img/payments/bsi.svg" alt="BSI" loading="lazy">
3418            <img src="https://plazait.b-cdn.net/assets/img/payments/cimb-logo.svg" alt="ShopeePay" loading="lazy">
3419          </div>
3420        </div>
3421      </div>
3422
3423            </div>
3424      <!-- End Collapsible Content -->
3425      
3426      <!-- Expand Button (Mobile Only) -->
3427      <button class="ft-expand-btn" id="ftExpandBtn" aria-label="Lihat semua informasi footer">
3428        <span class="expand-text">Selengkapnya</span>
3429        <svg viewBox="0 0 24 24" width="18" height="18" fill="currentColor">
3430          <path d="M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z"/>
3431        </svg>
3432      </button>
3433      
3434    </div>
3435  </div>
3436  <div class="ft-bottom">
3437    <div class="container ft-bottom-inner">
3438      <div class="ft-copy">
3439        <span>TISU-AJAIB &copy; <span id="yearNow">2026</span></span>
3440        <span>PT TISU-AJAIB. All rights reserved.</span>
3441      </div>
3442    </div>
3443  </div>
3444  
3445          <style nonce="se3iyzEHMc9FQEB4wSyd0w==">
3446            /* Chat Widget Styles - Lightweight & Minimal */
3447            .chat-widget {
3448                position: fixed;
3449                bottom: 20px;
3450                right: 20px;
3451                z-index: 9999;
3452                font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
3453            }
3454            
3455            /* Hide floating button on mobile - use bottom nav instead */
3456            @media (max-width: 640px) {
3457                .chat-toggle-btn {
3458                    display: none !important;
3459                }
3460                
3461                /* Ensure popup is still visible on mobile even when button is hidden */
3462                .chat-widget {
3463                    display: block !important;
3464                }
3465                
3466                .chat-popup {
3467                    display: none; /* Hidden by default, shown via JS */
3468                }
3469                
3470                .chat-popup[style*="display: block"],
3471                .chat-popup[style*="display:block"] {
3472                    display: block !important;
3473                }
3474            }
3475            
3476            .chat-toggle-btn {
3477                width: 60px;
3478                height: 60px;
3479                border-radius: 50%;
3480                background: linear-gradient(135deg, #3ef21a 0%, #17d909 100%);
3481                border: none;
3482                color: white;
3483                cursor: pointer;
3484                box-shadow: 0 4px 12px rgba(26, 242, 40, 0.3);
3485                position: relative;
3486                transition: transform 0.2s, box-shadow 0.2s;
3487            }
3488            
3489            .chat-toggle-btn:hover {
3490                transform: scale(1.05);
3491                box-shadow: 0 6px 20px rgba(26, 242, 33, 0.4);
3492            }
3493            
3494            #chat-toggle-btn .chat-icon {
3495                position: absolute;
3496                top: 50%;
3497                left: 50%;
3498                transform: translate(-50%, -50%);
3499                width: 28px !important;
3500                height: 28px !important;
3501            }
3502            
3503            .chat-unread-badge {
3504                position: absolute;
3505                top: -5px;
3506                right: -5px;
3507                background: #63ef44;
3508                color: white;
3509                border-radius: 12px;
3510                padding: 2px 6px;
3511                font-size: 11px;
3512                font-weight: 600;
3513                min-width: 20px;
3514                text-align: center;
3515            }
3516            
3517            .chat-popup {
3518                position: absolute;
3519                bottom: 80px;
3520                right: 0;
3521                width: 380px;
3522                max-width: calc(100vw - 40px);
3523                height: 500px;
3524                max-height: calc(100vh - 120px);
3525                background: white;
3526                border-radius: 12px;
3527                box-shadow: 0 10px 40px rgba(0,0,0,0.2);
3528                display: flex;
3529                flex-direction: column;
3530                overflow: hidden;
3531            }
3532            
3533            .chat-popup-header {
3534                background: linear-gradient(135deg, #3ef21a 0%, #09d947 100%);
3535                color: white;
3536                padding: 16px 20px;
3537                display: flex;
3538                justify-content: space-between;
3539                align-items: center;
3540                flex-shrink: 0;
3541            }
3542            
3543            .chat-header-title {
3544                display: flex;
3545                flex-direction: column;
3546                gap: 2px;
3547                min-height: 0;
3548            }
3549            
3550            .chat-popup-header h3 {
3551                margin: 0;
3552                font-size: 18px;
3553                font-weight: 600;
3554                line-height: 1.2;
3555            }
3556            
3557            .chat-operating-hours {
3558                font-size: 11px;
3559                opacity: 0.9;
3560                font-weight: 400;
3561                display: flex;
3562                align-items: center;
3563                gap: 4px;
3564                line-height: 1.2;
3565            }
3566            
3567            .chat-operating-hours svg {
3568                width: 12px;
3569                height: 12px;
3570                opacity: 0.8;
3571                flex-shrink: 0;
3572            }
3573            
3574            .chat-header-actions {
3575                display: flex;
3576                align-items: center;
3577                gap: 8px;
3578            }
3579            
3580            /* Notification Toggle Button */
3581            .btn-notif-toggle {
3582                background: none;
3583                border: none;
3584                color: white;
3585                font-size: 18px;
3586                cursor: pointer;
3587                padding: 4px 8px;
3588                transition: all 0.2s;
3589                opacity: 0.8;
3590            }
3591            
3592            .btn-notif-toggle:hover {
3593                opacity: 1;
3594                transform: scale(1.1);
3595            }
3596            
3597            /* Icon states */
3598            .btn-notif-toggle[data-status="not-subscribed"] svg {
3599                opacity: 0.7;
3600            }
3601            
3602            .btn-notif-toggle[data-status="not-subscribed"]:hover svg {
3603                opacity: 1;
3604            }
3605            
3606            .btn-notif-toggle[data-status="subscribed"] svg {
3607                opacity: 1;
3608                animation: bellRing 2s ease-in-out;
3609            }
3610            
3611            .btn-notif-toggle[data-status="blocked"] svg {
3612                color: #6bff72;
3613            }
3614            
3615            .btn-notif-toggle[data-status="not-supported"] {
3616                display: none !important;
3617            }
3618            
3619            @keyframes bellRing {
3620                0%, 100% { transform: rotate(0deg); }
3621                10%, 30% { transform: rotate(-10deg); }
3622                20%, 40% { transform: rotate(10deg); }
3623            }
3624            
3625            /* Notification Info Bar */
3626            .chat-notif-info-bar {
3627                position: absolute;
3628                top: 64px;
3629                left: 0;
3630                right: 0;
3631                background: linear-gradient(to right, #e3f2fd, #f5f5f5);
3632                border-bottom: 1px solid #bbdefb;
3633                padding: 8px 12px;
3634                display: flex;
3635                align-items: center;
3636                gap: 8px;
3637                font-size: 12px;
3638                color: #616161;
3639                z-index: 10;
3640                animation: slideDown 0.3s ease;
3641            }
3642            
3643            .chat-notif-info-bar svg {
3644                flex-shrink: 0;
3645            }
3646            
3647            .chat-notif-info-bar .small {
3648                flex: 1;
3649                line-height: 1.4;
3650            }
3651            
3652            .chat-notif-info-bar .btn-dismiss {
3653                background: none;
3654                border: none;
3655                color: #9e9e9e;
3656                cursor: pointer;
3657                padding: 0 4px;
3658                font-size: 16px;
3659                transition: color 0.2s;
3660            }
3661            
3662            .chat-notif-info-bar .btn-dismiss:hover {
3663                color: #616161;
3664            }
3665            
3666            @keyframes slideDown {
3667                from {
3668                    max-height: 0;
3669                    opacity: 0;
3670                }
3671                to {
3672                    max-height: 50px;
3673                    opacity: 1;
3674                }
3675            }
3676            
3677            .chat-close-btn {
3678                background: none;
3679                border: none;
3680                color: white;
3681                font-size: 28px;
3682                line-height: 1;
3683                cursor: pointer;
3684                padding: 0;
3685                width: 30px;
3686                height: 30px;
3687            }
3688            
3689            .chat-popup-body {
3690                flex: 1 1 auto;
3691                display: flex;
3692                flex-direction: column;
3693                min-height: 0;
3694                overflow: hidden;
3695                height: calc(100% - 64px);
3696                position: relative;
3697                transition: padding-top 0.3s ease;
3698            }
3699            
3700            /* Add padding when info bar is visible */
3701            .chat-popup-body.has-info-bar {
3702                padding-top: 40px;
3703            }
3704            
3705            .chat-view {
3706                flex: 1 1 auto;
3707                display: none;
3708                flex-direction: column;
3709                min-height: 0;
3710                overflow: hidden;
3711            }
3712            
3713            #chat-list-view {
3714                display: flex;
3715            }
3716            
3717            #chat-messages-view {
3718                display: none;
3719            }
3720            
3721            #chat-messages-view.active {
3722                display: flex;
3723                flex-direction: column;
3724            }
3725            
3726            #chat-new-view {
3727                display: none;
3728            }
3729            
3730            #chat-new-view.active {
3731                display: flex;
3732            }
3733            
3734            .chat-conversations-list {
3735                flex: 1;
3736                overflow-y: auto;
3737                padding: 0;
3738                background: white;
3739            }
3740            
3741            /* Custom Scrollbar for Conversations List */
3742            .chat-conversations-list::-webkit-scrollbar {
3743                width: 6px;
3744            }
3745            
3746            .chat-conversations-list::-webkit-scrollbar-track {
3747                background: #f1f1f1;
3748            }
3749            
3750            .chat-conversations-list::-webkit-scrollbar-thumb {
3751                background: #1af21a;
3752                border-radius: 3px;
3753            }
3754            
3755            .chat-conversations-list::-webkit-scrollbar-thumb:hover {
3756                background: #33d909;
3757            }
3758            
3759            /* Firefox */
3760            .chat-conversations-list {
3761                scrollbar-width: thin;
3762                scrollbar-color: #50f21a #f1f1f1;
3763            }
3764            
3765            .chat-conversation-item {
3766                padding: 12px 16px;
3767                cursor: pointer;
3768                display: flex;
3769                gap: 12px;
3770                align-items: flex-start;
3771                transition: background 0.15s ease;
3772                color: #33371f;
3773                border-bottom: 1px solid #f0f0f0;
3774            }
3775            
3776            .chat-conversation-item:hover {
3777                background: #f5f5f5;
3778            }
3779            
3780            .chat-conversation-item.active {
3781                background: #FFF5EB;
3782            }
3783            
3784            /* WhatsApp-like Avatar */
3785            .conversation-avatar {
3786                width: 48px;
3787                height: 48px;
3788                border-radius: 50%;
3789                background: linear-gradient(135deg, #1af22c 0%, #0cd909 100%);
3790                flex-shrink: 0;
3791                display: flex;
3792                align-items: center;
3793                justify-content: center;
3794                color: white;
3795                font-weight: 600;
3796                font-size: 18px;
3797            }
3798            
3799            .conversation-avatar svg {
3800                width: 24px;
3801                height: 24px;
3802            }
3803            
3804            /* WhatsApp-like Content */
3805            .conversation-content {
3806                flex: 1;
3807                min-width: 0;
3808                display: flex;
3809                flex-direction: column;
3810                gap: 4px;
3811            }
3812            
3813            .conversation-header {
3814                display: flex;
3815                justify-content: space-between;
3816                align-items: center;
3817                gap: 8px;
3818            }
3819            
3820            .conversation-name {
3821                font-weight: 600;
3822                font-size: 15px;
3823                color: #111;
3824                white-space: nowrap;
3825                overflow: hidden;
3826                text-overflow: ellipsis;
3827            }
3828            
3829            .conversation-time {
3830                font-size: 12px;
3831                color: #7d8166;
3832                flex-shrink: 0;
3833            }
3834            
3835            .conversation-preview {
3836                display: flex;
3837                justify-content: space-between;
3838                align-items: center;
3839                gap: 8px;
3840            }
3841            
3842            .conversation-message {
3843                font-size: 14px;
3844                color: #667781;
3845                white-space: nowrap;
3846                overflow: hidden;
3847                text-overflow: ellipsis;
3848                margin: 0;
3849                flex: 1;
3850            }
3851            
3852            .conversation-unread {
3853                background: #25D366;
3854                color: white;
3855                border-radius: 12px;
3856                padding: 2px 8px;
3857                font-size: 12px;
3858                font-weight: 600;
3859                min-width: 20px;
3860                text-align: center;
3861                flex-shrink: 0;
3862            }
3863            
3864            /* Active item styling */
3865            .chat-conversation-item.active .conversation-name {
3866                color: #1af22c;
3867            }
3868            
3869            .chat-conversation-item.active .conversation-time {
3870                color: #1af22c;
3871            }
3872            
3873            .chat-new-btn {
3874                margin: 12px;
3875                padding: 12px;
3876                background: linear-gradient(135deg, #1af22c 0%, #0cd909 100%);
3877                color: white;
3878                border: none;
3879                border-radius: 8px;
3880                cursor: pointer;
3881                font-weight: 500;
3882                font-size: 14px;
3883                display: flex;
3884                align-items: center;
3885                justify-content: center;
3886                gap: 8px;
3887                transition: all 0.2s;
3888                flex-shrink: 0;
3889            }
3890            
3891            .chat-new-btn:hover {
3892                transform: translateY(-1px);
3893                box-shadow: 0 4px 8px rgba(242, 140, 26, 0.3);
3894            }
3895            
3896            .chat-conversation-title {
3897                flex: 1;
3898                font-weight: 600;
3899                font-size: 16px;
3900                color: #1f2937;
3901            }
3902            
3903            .chat-messages-container {
3904                flex: 1;
3905                overflow-y: auto;
3906                padding: 16px;
3907                display: flex;
3908                flex-direction: column;
3909                gap: 8px;
3910                min-height: 0;
3911                background: #E5DDD5;
3912            }
3913            
3914            /* Custom Scrollbar for Messages Container */
3915            .chat-messages-container::-webkit-scrollbar {
3916                width: 6px;
3917            }
3918            
3919            .chat-messages-container::-webkit-scrollbar-track {
3920                background: rgba(0, 0, 0, 0.05);
3921            }
3922            
3923            .chat-messages-container::-webkit-scrollbar-thumb {
3924                background: rgba(51, 242, 26, 0.6);
3925                border-radius: 3px;
3926            }
3927            
3928            .chat-messages-container::-webkit-scrollbar-thumb:hover {
3929                background: #1af22c;
3930            }
3931            
3932            /* Firefox */
3933            .chat-messages-container {
3934                scrollbar-width: thin;
3935                scrollbar-color: rgba(26, 242, 73, 0.6) rrgba(0, 0, 0, 0.05)
3936            }
3937            
3938            /* WhatsApp Group-like Messages */
3939            .chat-message {
3940                display: flex;
3941                margin-bottom: 4px;
3942                animation: fadeIn 0.2s ease;
3943            }
3944            
3945            @keyframes fadeIn {
3946                from { opacity: 0; transform: translateY(10px); }
3947                to { opacity: 1; transform: translateY(0); }
3948            }
3949            
3950            .chat-message.mine {
3951                justify-content: flex-end;
3952            }
3953            
3954            .chat-message-bubble {
3955                max-width: 80%;
3956                padding: 6px 8px 8px 10px;
3957                border-radius: 8px;
3958                position: relative;
3959                box-shadow: 0 1px 0.5px rgba(0,0,0,0.13);
3960            }
3961            
3962            /* Bubble from others (Admin/CS) */
3963            .chat-message:not(.mine) .chat-message-bubble {
3964                background: #FFFFFF;
3965                border-radius: 0 8px 8px 8px;
3966            }
3967            
3968            /* Bubble tail for others */
3969            .chat-message:not(.mine) .chat-message-bubble::before {
3970                content: '';
3971                position: absolute;
3972                top: 0;
3973                left: -8px;
3974                width: 0;
3975                height: 0;
3976                border-style: solid;
3977                border-width: 0 8px 13px 0;
3978                border-color: transparent #FFFFFF transparent transparent;
3979            }
3980            
3981            /* Bubble from user (mine) */
3982            .chat-message.mine .chat-message-bubble {
3983                background: #e4f5d0; /* Light blue for user messages */
3984                border-radius: 8px 0 8px 8px;
3985            }
3986            
3987            /* Bubble tail for mine */
3988            .chat-message.mine .chat-message-bubble::before {
3989                content: '';
3990                position: absolute;
3991                top: 0;
3992                right: -8px;
3993                width: 0;
3994                height: 0;
3995                border-style: solid;
3996                border-width: 0 0 13px 8px;
3997                border-color: transparent transparent transparent #eaf5d0;
3998            }
3999            
4000            .message-sender {
4001                font-size: 12.5px;
4002                font-weight: 600;
4003                color: #1af22c !important;
4004                margin-bottom: 4px;
4005            }
4006            
4007            .chat-message.mine .message-sender {
4008                display: none;
4009            }
4010            
4011            /* Message text */
4012            .message-text {
4013                font-size: 14px;
4014                line-height: 19px;
4015                color: #000000 !important;
4016                word-wrap: break-word;
4017                white-space: pre-wrap;
4018                margin-bottom: 4px;
4019            }
4020            
4021            /* Message metadata (time + status) */
4022            .message-meta {
4023                display: flex;
4024                align-items: center;
4025                justify-content: flex-end;
4026                gap: 4px;
4027                margin-top: 2px;
4028            }
4029            
4030            .message-time {
4031                font-size: 11px;
4032                color: #728166 !important;
4033                line-height: 15px;
4034            }
4035            
4036            /* Use multiple selectors to override global styles */
4037            .chat-message-bubble .message-status,
4038            .message-meta .message-status,
4039            .chat-message .message-status {
4040                width: 16px !important;
4041                height: 16px !important;
4042                min-width: 16px !important;
4043                min-height: 16px !important;
4044                max-width: 16px !important;
4045                max-height: 16px !important;
4046                flex-shrink: 0;
4047                color: #728166 !important;
4048                fill: currentColor !important;
4049            }
4050            
4051            .chat-message:not(.mine) .message-status {
4052                display: none;
4053            }
4054            
4055            /* Loading dots animation */
4056            @keyframes loadingDots {
4057                0%, 20% { content: '.'; }
4058                40% { content: '..'; }
4059                60%, 100% { content: '...'; }
4060            }
4061            
4062            .message-status.loading::after {
4063                content: '...';
4064                animation: loadingDots 1.5s infinite;
4065                font-size: 16px;
4066                line-height: 16px;
4067            }
4068            
4069            .message-status.loading path {
4070                display: none;
4071            }
4072            
4073            .message-status.failed {
4074                color: #5eef44 !important;
4075                cursor: pointer;
4076            }
4077            
4078            .message-status.sent {
4079                color: #667781 !important;
4080            }
4081            
4082            .chat-new-form {
4083                flex: 1;
4084                overflow-y: auto;
4085                padding: 16px;
4086                display: flex;
4087                flex-direction: column;
4088            }
4089            
4090            .chat-new-form form {
4091                display: flex;
4092                flex-direction: column;
4093                gap: 16px;
4094                flex: 1;
4095            }
4096            
4097            .chat-new-form .form-group {
4098                display: flex;
4099                flex-direction: column;
4100                gap: 6px;
4101            }
4102            
4103            .chat-new-form label {
4104                font-size: 14px;
4105                font-weight: 500;
4106                color: #374151;
4107            }
4108            
4109            .chat-new-form .form-control {
4110                width: 100%;
4111                padding: 10px 12px;
4112                border: 1px solid #d1d5db;
4113                border-radius: 8px;
4114                font-size: 14px;
4115                font-family: inherit;
4116                transition: border-color 0.2s;
4117                box-sizing: border-box;
4118            }
4119            
4120            .chat-new-form .form-control:focus {
4121                outline: none;
4122                border-color: #1af22c;
4123                box-shadow: 0 0 0 3px rgba(242, 140, 26, 0.1);
4124            }
4125            
4126            .chat-new-form textarea.form-control {
4127                resize: vertical;
4128                min-height: 100px;
4129            }
4130            
4131            .chat-new-form .btn {
4132                padding: 12px 20px;
4133                border: none;
4134                border-radius: 8px;
4135                font-size: 15px;
4136                font-weight: 500;
4137                cursor: pointer;
4138                transition: all 0.2s;
4139                text-align: center;
4140            }
4141            
4142            .chat-new-form .btn-primary {
4143                background: linear-gradient(135deg, #1af22c 0%, #0cd909 100%);
4144                color: white;
4145            }
4146            
4147            .chat-new-form .btn-primary:hover {
4148                transform: translateY(-1px);
4149                box-shadow: 0 4px 8px rgba(66, 242, 26, 0.3);
4150            }
4151            
4152            .chat-new-form .btn-primary:active {
4153                transform: scale(0.98);
4154            }
4155            
4156            .chat-new-form .btn-block {
4157                width: 100%;
4158                margin-top: auto;
4159            }
4160            
4161            .chat-message-form {
4162                padding: 12px;
4163                border-top: 1px solid #e5e7eb;
4164                display: flex;
4165                flex-wrap: wrap;
4166                gap: 8px;
4167                align-items: flex-end;
4168                flex-shrink: 0;
4169                background: white;
4170            }
4171            
4172            .chat-product-card {
4173                flex: 1 1 100%;
4174                max-width: 100%;
4175                display: flex;
4176                gap: 12px;
4177                padding: 12px;
4178                background: #f3f4f6;
4179                border-radius: 8px;
4180                margin-bottom: 4px;
4181                border: 1px solid #e5e7eb;
4182            }
4183            
4184            .chat-product-card img {
4185                width: 60px;
4186                height: 60px;
4187                object-fit: cover;
4188                border-radius: 6px;
4189                flex-shrink: 0;
4190            }
4191            
4192            .chat-product-card-content {
4193                flex: 1;
4194                min-width: 0;
4195            }
4196            
4197            .chat-product-card-name {
4198                font-weight: 500;
4199                font-size: 14px;
4200                color: #1f2937;
4201                margin-bottom: 4px;
4202                white-space: nowrap;
4203                overflow: hidden;
4204                text-overflow: ellipsis;
4205            }
4206            
4207            .chat-product-card-variant {
4208                font-size: 12px;
4209                color: #74806b;
4210                margin-bottom: 4px;
4211            }
4212            
4213            .chat-product-card-price {
4214                font-size: 13px;
4215                color: #8bea66;
4216                font-weight: 600;
4217            }
4218            
4219            .chat-product-card-remove {
4220                align-self: flex-start;
4221                background: none;
4222                border: none;
4223                color: #9ca3af;
4224                cursor: pointer;
4225                padding: 4px;
4226                font-size: 18px;
4227                line-height: 1;
4228                transition: color 0.2s;
4229            }
4230            
4231            .chat-product-card-remove:hover {
4232                color: #5eef44;
4233            }
4234            
4235            /* Product card in messages (read-only display) */
4236            .message-product-card {
4237                display: flex;
4238                gap: 10px;
4239                padding: 10px;
4240                background: rgba(255, 255, 255, 0.5);
4241                border-radius: 8px;
4242                margin-bottom: 6px;
4243                border: 1px solid rgba(0, 0, 0, 0.08);
4244                align-items: center;
4245            }
4246            
4247            .chat-message.mine .message-product-card {
4248                background: rgba(255, 255, 255, 0.7);
4249            }
4250            
4251            .message-product-card img {
4252                width: 50px;
4253                height: 50px;
4254                object-fit: cover;
4255                border-radius: 6px;
4256                flex-shrink: 0;
4257            }
4258            
4259            .message-product-info {
4260                flex: 1;
4261                min-width: 0;
4262            }
4263            
4264            .message-product-name {
4265                font-weight: 500;
4266                font-size: 13px;
4267                color: #33371f;
4268                margin-bottom: 2px;
4269                overflow: hidden;
4270                text-overflow: ellipsis;
4271                display: -webkit-box;
4272                -webkit-line-clamp: 2;
4273                -webkit-box-orient: vertical;
4274                line-height: 1.3;
4275            }
4276            
4277            .message-product-variant {
4278                font-size: 11px;
4279                color: #78806b;
4280                margin-bottom: 2px;
4281            }
4282            
4283            .message-product-price {
4284                font-size: 12px;
4285                color: #c7ea66;
4286                font-weight: 600;
4287            }
4288            
4289            .message-product-link {
4290                flex-shrink: 0;
4291                width: 32px;
4292                height: 32px;
4293                display: flex;
4294                align-items: center;
4295                justify-content: center;
4296                background: rgba(102, 126, 234, 0.1);
4297                border-radius: 6px;
4298                color: #c7ea66;
4299                text-decoration: none;
4300                transition: all 0.2s;
4301            }
4302            
4303            .message-product-link:hover {
4304                background: #b7ea66;
4305                color: white;
4306            }
4307            
4308            .message-product-link svg {
4309                width: 16px;
4310                height: 16px;
4311            }
4312            
4313            .chat-message-input {
4314                flex: 1;
4315                border: 1px solid #d1d5db;
4316                border-radius: 20px;
4317                padding: 10px 16px;
4318                resize: none;
4319                max-height: 100px;
4320                font-family: inherit;
4321                font-size: 14px;
4322                line-height: 1.5;
4323                box-sizing: border-box;
4324                overflow-y: hidden;
4325            }
4326            
4327            .chat-message-input:focus {
4328                outline: none;
4329                border-color: #1af22c;
4330                box-shadow: 0 0 0 3px rgba(33, 242, 26, 0.1);
4331            }
4332            
4333            .chat-send-btn {
4334                width: 40px;
4335                height: 40px;
4336                border-radius: 50%;
4337                background: linear-gradient(135deg, #1af22c 0%, #0cd909 100%);
4338                border: none;
4339                color: white;
4340                cursor: pointer;
4341                flex-shrink: 0;
4342                display: flex;
4343                align-items: center;
4344                justify-content: center;
4345                transition: all 0.2s;
4346            }
4347            
4348            .chat-send-btn:hover {
4349                transform: scale(1.05);
4350                box-shadow: 0 2px 8px rgba(44, 242, 26, 0.3);
4351            }
4352            
4353            .chat-send-btn:active {
4354                transform: scale(0.95);
4355            }
4356            
4357            .chat-loading {
4358                text-align: center;
4359                padding: 20px;
4360                color: #6b7280;
4361            }
4362            
4363            /* Date Separator (WhatsApp-style) */
4364            .date-separator {
4365                display: flex;
4366                align-items: center;
4367                gap: 12px;
4368                margin: 24px 0 16px;
4369                opacity: 0;
4370                animation: fadeInSeparator 0.3s ease forwards;
4371            }
4372
4373            @keyframes fadeInSeparator {
4374                from {
4375                    opacity: 0;
4376                    transform: translateY(-10px);
4377                }
4378                to {
4379                    opacity: 1;
4380                    transform: translateY(0);
4381                }
4382            }
4383
4384            .date-separator-line {
4385                flex: 1;
4386                height: 1px;
4387                background: linear-gradient(90deg, transparent, rgba(0, 0, 0, 0.1) 50%, transparent);
4388            }
4389
4390            .date-separator-text {
4391                flex-shrink: 0;
4392                padding: 4px 12px;
4393                background: #e9ecef;
4394                color: #6c757d;
4395                font-size: 11px;
4396                font-weight: 600;
4397                text-transform: uppercase;
4398                letter-spacing: 0.5px;
4399                border-radius: 12px;
4400                box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
4401            }
4402            
4403            /* Mobile responsive */
4404            @media (max-width: 640px) {
4405                .chat-popup {
4406                    position: fixed !important; /* Override absolute positioning */
4407                    bottom: 45px !important; /* Above bottom nav */
4408                    right: 0 !important;
4409                    left: 0 !important;
4410                    width: 100% !important;
4411                    max-width: 100% !important;
4412                    /* Use dvh (dynamic viewport height) for browser UI awareness */
4413                    height: calc(100dvh - 45px) !important;
4414                    max-height: calc(100dvh - 45px) !important;
4415                    /* Fallback for browsers that don't support dvh */
4416                    height: calc(var(--viewport-height, 100vh) - 45px) !important;
4417                    max-height: calc(var(--viewport-height, 100vh) - 45px) !important;
4418                    border-radius: 0 !important;
4419                    z-index: 9999 !important;
4420                }
4421                
4422                .chat-popup-header {
4423                    border-radius: 0;
4424                }
4425                
4426     
4426           .chat-messages-container,
4427                .chat-conversations-list {
4428                    /* Adjust for mobile keyboard using dynamic viewport */
4429                    max-height: calc(100dvh - 190px);
4430                    /* Fallback for browsers that don't support dvh */
4431                    max-height: calc(var(--viewport-height, 100vh) - 190px);
4432                }
4433            }
4434        </style>
4435                <!-- Chat Widget Button -->
4436        <div id="chat-widget" class="chat-widget" 
4437             data-user-id=""
4438             data-is-logged-in="false"
4439             data-csrf-token="df5d776748b1ed8c8dd0d987bae99b1ee3dea6c6dcbe0eedb1bea766c56d569a">
4440            <button id="chat-toggle-btn" class="chat-toggle-btn" aria-label="Toggle chat">
4441                <svg class="chat-icon" width="28" height="28" viewBox="0 0 640 640" fill="currentColor">
4442                    <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"/>
4443                </svg>
4444                <span id="chat-unread-badge" class="chat-unread-badge" style="display: none;">0</span>
4445            </button>
4446            
4447            <div id="chat-popup" class="chat-popup" style="display: none;">
4448                <div class="chat-popup-header">
4449                    <div class="chat-header-title">
4450                        <h3>Bantuan</h3>
4451                        <span id="chatOperatingHours" class="chat-operating-hours" style="display: none;"></span>
4452                    </div>
4453                    <div class="chat-header-actions">
4454                        <button id="chatNotifToggle" class="btn-notif-toggle" data-status="not-supported" title="Push notification" style="display: none;">
4455                            <svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor">
4456                                <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"/>
4457                            </svg>
4458                        </button>
4459                        <button id="chat-close-btn" class="chat-close-btn" aria-label="Close chat">×</button>
4460                    </div>
4461                </div>
4462                
4463                <!-- Notification Info Bar (conditional) -->
4464                <div class="chat-notif-info-bar" id="chatNotifInfoBar" style="display:none;">
4465                    <svg width="14" height="14" viewBox="0 0 24 24" fill="#ffc107">
4466                        <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"/>
4467                    </svg>
4468                    <span class="small">Aktifkan notifikasi untuk pemberitahuan balasan</span>
4469                    <button class="btn-dismiss" onclick="ChatNotification.dismissInfo()">✕</button>
4470                </div>
4471                
4472                <div class="chat-popup-body">
4473                    <!-- Conversations List View -->
4474                    <div id="chat-list-view" class="chat-view">
4475                        <div id="chat-conversations-list" class="chat-conversations-list">
4476                            <div class="chat-loading">Memuat...</div>
4477                            <!-- Conversation Item Structure (rendered by JS):
4478                            <div class="chat-conversation-item">
4479                                <div class="conversation-avatar">
4480                                    <svg>...</svg>
4481                                </div>
4482                                <div class="conversation-content">
4483                                    <div class="conversation-header">
4484                                        <span class="conversation-name">Admin Support</span>
4485                                        <span class="conversation-time">10:30</span>
4486                                    </div>
4487                                    <div class="conversation-preview">
4488                                        <p class="conversation-message">Terima kasih telah menghubungi kami...</p>
4489                                        <span class="conversation-unread">2</span>
4490                                    </div>
4491                                </div>
4492                            </div>
4493                            -->
4494                        </div>
4495                        <button id="chat-new-btn" class="chat-new-btn">
4496                            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
4497                                <line x1="12" y1="5" x2="12" y2="19"></line>
4498                                <line x1="5" y1="12" x2="19" y2="12"></line>
4499                            </svg>
4500                            Percakapan Baru
4501                        </button>
4502                    </div>
4503                    
4504                    <!-- Chat Messages View -->
4505                    <div id="chat-messages-view" class="chat-view" style="display: none;">
4506                        <div id="chat-messages-container" class="chat-messages-container">
4507                            <div class="chat-loading">Memuat pesan...</div>
4508                            <!-- Message Structure (rendered by JS):
4509                            <div class="chat-message"> (or .chat-message.mine)
4510                                <div class="chat-message-bubble">
4511                                    <div class="message-sender">Admin Support</div> (only for non-mine)
4512                                    <div class="message-text">Halo, ada yang bisa dibantu?</div>
4513                                    <div class="message-meta">
4514                                        <span class="message-time">10:30</span>
4515                                        <svg class="message-status">...</svg> (only for mine)
4516                                    </div>
4517                                </div>
4518                            </div>
4519                            -->
4520                        </div>
4521                        
4522                        <form id="chat-message-form" class="chat-message-form">
4523                            <input type="hidden" id="chat-current-conversation-id" value="">
4524                            <textarea 
4525                                id="chat-message-input" 
4526                                class="chat-message-input" 
4527                                placeholder="Ketik pesan..."
4528                                rows="1"
4529                                maxlength="5000"
4530                            ></textarea>
4531                            <button type="submit" class="chat-send-btn" aria-label="Send message">
4532                                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
4533                                    <line x1="22" y1="2" x2="11" y2="13"></line>
4534                                    <polygon points="22 2 15 22 11 13 2 9 22 2"></polygon>
4535                                </svg>
4536                            </button>
4537                        </form>
4538                    </div>
4539                    
4540                    <!-- New Chat View -->
4541                    <div id="chat-new-view" class="chat-view" style="display: none;">
4542                        <div class="chat-messages-header">
4543                            <button id="chat-new-back-btn" class="chat-back-btn" aria-label="Back to list">
4544                                <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
4545                                    <path d="M19 12H5M12 19l-7-7 7-7"/>
4546                                </svg>
4547                            </button>
4548                            <div class="chat-conversation-title">Percakapan Baru</div>
4549                        </div>
4550                        
4551                        <div class="chat-new-form">
4552                            <form id="chat-start-form">
4553                                <div class="form-group">
4554                                    <label for="chat-new-subject">Subjek</label>
4555                                    <input 
4556                                        type="text" 
4557                                        id="chat-new-subject" 
4558                                        class="form-control" 
4559                                        placeholder="Bantuan Pelanggan"
4560                                        maxlength="255"
4561                                    >
4562                                </div>
4563                                <div class="form-group">
4564                                    <label for="chat-new-message">Pesan</label>
4565                                    <textarea 
4566                                        id="chat-new-message" 
4567                                        class="form-control" 
4568                                        rows="4" 
4569                                        placeholder="Tulis pertanyaan Anda..."
4570                                        required
4571                                        maxlength="5000"
4572                                    ></textarea>
4573                                </div>
4574                                <button type="submit" class="btn btn-primary btn-block">Kirim</button>
4575                            </form>
4576                        </div>
4577                    </div>
4578                </div>
4579            </div>
4580        </div>
4581        
4582        <!-- Login Required Modal -->
4583        <div class="modal-overlay" id="chatLoginModal">
4584            <div class="modal-dialog">
4585                <div class="modal-header">
4586                    <h3 class="modal-title">
4587                        <div class="modal-icon info">
4588                            <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
4589                                <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"/>
4590                            </svg>
4591                        </div>
4592                        Login Diperlukan
4593                    </h3>
4594                </div>
4595                <div class="modal-body">
4596                    <p class="modal-message">
4596Anda harus login terlebih dahulu untuk menggunakan fitur chat bantuan pelanggan.</p>
4597                    <div class="modal-actions">
4598                        <button class="modal-btn modal-btn-secondary" id="chatLoginCancel">Batal</button>
4599                        <button class="modal-btn modal-btn-primary" id="chatLoginConfirm">Login Sekarang</button>
4600                    </div>
4601                </div>
4602            </div>
4603        </div>
4604        
4604<script src="https://plazait.b-cdn.net/assets/js/chat-widget.js" nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
4604<script src="https://plazait.b-cdn.net/assets/js/chat-notification.js" nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
4604  
4605    <!-- Footer Collapse Toggle Script -->
4606  
4606<script nonce="se3iyzEHMc9FQEB4wSyd0w==">
4607  document.addEventListener('DOMContentLoaded', function() {
4608    const ftTop = document.getElementById('ftTop');
4609    const expandBtn = document.getElementById('ftExpandBtn');
4610    
4611    if (ftTop && expandBtn) {
4612      const expandText = expandBtn.querySelector('.expand-text');
4613      
4614      expandBtn.addEventListener('click', function() {
4615        ftTop.classList.toggle('expanded');
4616        const isExpanded = ftTop.classList.contains('expanded');
4617        if (expandText) {
4618          expandText.textContent = isExpanded ? 'Sembunyikan' : 'Selengkapnya';
4619        }
4620      });
4621    }
4622  });
4623  </script>
4623
4624  </footer>
4625
4626<!-- Compare Sidebar Overlay -->
4627<div class="compare-overlay" id="compareOverlay"></div>
4628
4629<!-- Floating Compare Badge (Sticky) -->
4630<button class="compare-floating-badge" id="compareFloatingBadge" aria-label="Lihat produk yang dibandingkan" style="display:none;">
4631  <svg class="cfb-icon" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true">
4632    <path d="M9.01 14H2v2h7.01v3L13 15l-3.99-4v3zm5.98-1v-3H22V8h-7.01V5L11 9l3.99 4z"/>
4633  </svg>
4634  <span class="cfb-text">Bandingkan</span>
4635  <span class="cfb-count" id="cfbCount">0</span>
4636</button>
4637
4638<!-- AI Comparison Modal -->
4639<div class="ai-compare-modal" id="aiCompareModal">
4640  <div class="modal-backdrop"></div>
4641  <div class="modal-container">
4642    <div class="modal-header">
4643      <h3 class="modal-title">
4644        <svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor">
4645          <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"/>
4646        </svg>
4647        Analisis AI: Perbandingan Produk
4648      </h3>
4649      <button class="modal-close" id="aiCompareModalClose" aria-label="Tutup">
4650        <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
4651          <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"/>
4652        </svg>
4653      </button>
4654    </div>
4655    
4656    <div class="modal-content">
4657      <!-- Loading State -->
4658      <div class="ai-loading" id="aiLoading">
4659        <div class="loading-animation">
4660          <div class="typing-indicator">
4661            <span></span>
4662            <span></span>
4663            <span></span>
4664          </div>
4665          <p>AI sedang menganalisis produk...</p>
4666          <small>Proses ini membutuhkan waktu 10-30 detik</small>
4667        </div>
4668      </div>
4669      
4670      <!-- Error State -->
4671      <div class="ai-error" id="aiError" hidden>
4672        <div class="error-icon">
4673          <svg width="48" height="48" viewBox="0 0 24 24" fill="#5eef44">
4674            <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"/>
4675          </svg>
4676        </div>
4677        <h4>Analisis AI Gagal</h4>
4678        <p id="aiErrorMessage">Terjadi kesalahan saat memproses analisis.</p>
4679        <button class="btn btn-outline-primary" id="aiRetry">Coba Lagi</button>
4680      </div>
4681      
4682      <!-- Analysis Results -->
4683      <div class="ai-results" id="aiResults" hidden>
4684        <!-- Summary Section -->
4685        <div class="ai-summary-card">
4686          <h4>
4687            <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
4688              <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"/>
4689            </svg>
4690            Ringkasan Analisis
4691          </h4>
4692          <p id="aiSummary" class="summary-text"></p>
4693          <div class="winner-badge" id="winnerBadge">
4694            <strong>Rekomendasi Terbaik:</strong> <span id="winnerProduct"></span>
4695            <small id="winnerReason"></small>
4696          </div>
4697        </div>
4698        
4699        <!-- Comparison Table -->
4700        <div class="ai-comparison-table">
4701          <h4>
4702            <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
4703              <path d="M3,3H21V5H3V3M3,7H21V9H3V7M3,11H21V13H3V11M3,15H21V17H3V15M3,19H21V21H3V19Z"/>
4704            </svg>
4705            Perbandingan Detail
4706          </h4>
4707          <div id="comparisonTable" class="comparison-grid"></div>
4708        </div>
4709        
4710        <!-- Detailed Analysis -->
4711        <div class="ai-detailed-analysis">
4712          <h4>
4713            <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
4714              <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"/>
4715            </svg>
4716            Analisis Mendalam
4717          </h4>
4718          <div id="detailedAnalysis" class="products-analysis"></div>
4719        </div>
4720        
4721        <!-- Recommendations -->
4722        <div class="ai-recommendations">
4723          <h4>
4724            <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
4725              <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"/>
4726            </svg>
4727            Rekomendasi Berdasarkan Kebutuhan
4728          </h4>
4729          <div class="recommendations-grid">
4730            <div class="recommendation-card">
4731              <h5>💰 Budget Conscious</h5>
4732              <p id="budgetRecommendation"></p>
4733            </div>
4734            <div class="recommendation-card">
4735              <h5>⚡ Performance Focused</h5>
4736              <p id="performanceRecommendation"></p>
4737            </div>
4738            <div class="recommendation-card">
4739              <h5>⚖️ Balanced Choice</h5>
4740              <p id="balancedRecommendation"></p>
4741            </div>
4742          </div>
4743        </div>
4744        
4745        <!-- Buying Tips -->
4746        <div class="ai-tips">
4747          <h4>
4748            <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
4749              <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
4749M5,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"/>
4750            </svg>
4751            Tips Pembelian
4752          </h4>
4753          <ul id="buyingTips" class="tips-list"></ul>
4754        </div>
4755      </div>
4756    </div>
4757  </div>
4758</div>
4759
4760<!-- Cart Login Modal -->
4761<div class="modal-overlay" id="cartLoginModal">
4762  <div class="modal-dialog">
4763    <div class="modal-header">
4764      <h3 class="modal-title">
4765        <div class="modal-icon info">
4766          <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
4767            <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"/>
4768          </svg>
4769        </div>
4770        Login untuk Melanjutkan
4771      </h3>
4772    </div>
4773    <div class="modal-body">
4774      <p class="modal-message" style="margin-bottom: 16px;">Silakan login atau daftar untuk mengakses keranjang belanja dan menyelesaikan pesanan Anda.</p>
4775      <div style="background: #f8fafc; border-radius: 8px; padding: 12px; margin-bottom: 20px;">
4776        <p style="font-size: 14px; color: #646947; margin: 0; line-height: 1.6;">
4777          <strong style="color: #2a2a0f;">Keuntungan dengan akun:</strong><br>
4778          ✓ Simpan keranjang belanja Anda<br>
4779          ✓ Lacak status pesanan secara real-time<br>
4780          ✓ Checkout lebih cepat dengan data tersimpan<br>
4781          ✓ Dapatkan notifikasi promo & diskon eksklusif
4782        </p>
4783      </div>
4784      <div class="modal-actions">
4785        <button class="modal-btn modal-btn-secondary" id="cartLoginCancel">Batal</button>
4786        <button class="modal-btn modal-btn-primary" id="cartLoginConfirm" style="background: #ff6b35; border-color: #ff6b35;">Login</button>
4787        <button class="modal-btn modal-btn-primary" id="cartRegisterBtn" style="background: #f7931e; border-color: #f7931e;">Daftar</button>
4788      </div>
4789    </div>
4790  </div>
4791</div>
4792
4793
4794<script src="https://plazait.b-cdn.net/assets/js/app.js" nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
vendor: 1 bytes, line 4794
4794
4795<script src="https://plazait.b-cdn.net/assets/js/site-notice.js" nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
vendor: 1 bytes, line 4795
4795
4796<script src="https://plazait.b-cdn.net/assets/js/guest-cart.js" nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
vendor: 1 bytes, line 4796
4796
4797<script src="https://plazait.b-cdn.net/assets/js/cart.js" nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
vendor: 1 bytes, line 4797
4797
4798<script defer src="https://plazait.b-cdn.net/assets/js/mega-menu-tiles.js" nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
4798
4799    
4799<script src="https://plazait.b-cdn.net/assets/js/benchmark.js" nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
4799
4800  
4800<script src="https://plazait.b-cdn.net/assets/js/product-compare.js" defer nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
vendor: 1 bytes, line 4800
4800
4801<script src="https://plazait.b-cdn.net/assets/js/product-card-actions.js" defer nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
4801
4802    
4802<script src="https://plazait.b-cdn.net/assets/js/product-reviews.js" defer nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
4802
4803    
4803<script src="https://plazait.b-cdn.net/assets/js/review-submission.js" defer nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
4803
4804<style>
4805.subzero-gacor-fixed-footer{
4806  position:fixed;
4807  left:0; right:0; bottom:0;
4808  z-index:999;
4809
4810  display:flex;
4811  align-items:center;
4812  justify-content:space-around;
4813  gap:8px;
4814
4815  padding: 11px 12px calc(11px + env(safe-area-inset-bottom));
4816  overflow:hidden;
4817
4818  background:
4819    radial-gradient(circle at 50% 0%, rgba(74, 198, 80, 0.18), rrgba(0, 20, 0, 0.95)60%, #000),
4820    linear-gradient(180deg, rgba(25, 18, 0, 0.95), #000);
4821
4822  backdrop-filter: blur(12px);
4823
4824  border-top: 1px solid rgba(74, 198, 99, 0.6);
4825  border-radius: 18px 18px 0 0;
4826
4827  box-shadow:
4828    0 -12px 30px rgba(74, 198, 82, 0.15),
4829    inset 0 1px 0 rgba(255, 255, 255, 0.04);
4830
4831  font-family:"Orbitron","Poppins",system-ui,sans-serif;
4832}
4833
4834/* scanline halus */
4835.subzero-gacor-fixed-footer::before{
4836  content:"";
4837  position:absolute;
4838  inset:0;
4839  background:
4840    repeating-linear-gradient(
4841      0deg,
4842      rgba(255,255,255,.015),
4843      rgba(255,255,255,.015) 1px,
4844      transparent 1px,
4845      transparent 6px
4846    );
4847  opacity:.7;
4848}
4849
4850/* shine emas */
4851.subzero-gacor-fixed-footer::after{
4852  content:"";
4853  position:absolute;
4854  top:0;
4855  left:-160%;
4856  width:60%;
4857  height:100%;
4858  background: linear-gradient(120deg, transparent, rgba(102, 230, 106, 0.25), transparent);
4859  transform: skewX(-25deg);
4860  animation: footerFinalShine 4s infinite;
4861}
4862
4863@keyframes footerFinalShine{
4864  0%{left:-160%;}
4865  70%{left:160%;}
4866  100%{left:160%;}
4867}
4868
4869/* ITEM */
4870.subzero-gacor-fixed-footer a{
4871  flex:1;
4872  max-width:110px;
4873
4874  display:flex;
4875  flex-direction:column;
4876  align-items:center;
4877  justify-content:center;
4878  gap:6px;
4879
4880  padding: 8px 6px;
4881  text-decoration:none;
4882  text-align:center;
4883
4884  color: #8ae698;
4885  font-size: 12px;
4886  font-weight: 800;
4887
4888  border-radius: 14px;
4889  transition: all .2s ease;
4890}
4891
4892/* hover */
4893.subzero-gacor-fixed-footer a:hover{
4894  color:#dcffdc;
4895  background: rgba(74, 198, 76, 0.08);
4896  box-shadow: 0 0 12px rgba(74, 198, 84, 0.25);
4897  transform: translateY(-1px);
4898}
4899
4900/* ICON */
4901.subzero-gacor-fixed-footer img{
4902  width:26px;
4903  height:26px;
4904  filter: drop-shadow(0 0 6px rgba(74, 198, 88, 0.4));
4905  transition:.2s;
4906}
4907
4908.subzero-gacor-fixed-footer a:hover img{
4909  transform: scale(1.08);
4910  filter: drop-shadow(0 0 14px rgba(102, 230, 121, 0.7));
4911}
4912
4913/* HUD CORNER */
4914.subzero-gacor-fixed-footer .hud-corner{
4915  position:absolute;
4916  width:18px;height:18px;
4917  border: 1px solid rgba(84, 198, 74, 0.5);
4918}
4919
4920.subzero-gacor-fixed-footer .hud-tl{top:8px;left:10px;border-right:none;border-bottom:none;}
4921.subzero-gacor-fixed-footer .hud-tr{top:8px;right:10px;border-left:none;border-bottom:none;}
4922.subzero-gacor-fixed-footer .hud-bl{bottom:8px;left:10px;border-right:none;border-top:none;}
4923.subzero-gacor-fixed-footer .hud-br{bottom:8px;right:10px;border-left:none;border-top:none;}
4924
4925/* CENTER CTA */
4926.subzero-gacor-fixed-footer .tada{
4927  color:#fff;
4928  background:
4929    radial-gradient(circle at 50% 0%, rgba(102, 230, 102, 0.2), transparent 70%),
4930    rgba(76, 198, 74, 0.08);
4931
4932  border: 1px solid rgba(74, 198, 119, 0.4);
4933
4934  box-shadow:
4935    0 0 18px rgba(74, 198, 76, 0.2),
4936    inset 0 0 12px rgba(102, 230, 123, 0.2);
4937}
4938
4939.subzero-gacor-fixed-footer .tada img{
4940  width:30px;
4941  height:30px;
4942  filter: drop-shadow(0 0 14px rgba(102, 230, 113, 0.7));
4943}
4944
4945/* pulse halus */
4946.subzero-gacor-fixed-footer .tada::before{
4947  content:"";
4948  position:absolute;
4949  inset:-12px;
4950  border-radius:999px;
4951  background: radial-gradient(circle, rgba(84, 198, 74, 0.2), transparent 70%);
4952  filter: blur(10px);
4953  animation: corePulse 3s infinite;
4954}
4955
4956@keyframes corePulse{
4957  0%,100%{opacity:.3;}
4958  50%{opacity:.7;}
4959}
4960</style>
4961
4962
4963
4964
4965<div class="subzero-gacor-fixed-footer">
4966  <a href="https://trunojoyo.health/4.html" target="_blank" rel="nofollow noopener">
4967    <img src="https://gambarnyasembahtoto.pages.dev/5c038ecb37324badbe025c47f403f1c5.png" alt="BONUS SEMBAHTOTO">
4968    BONUS
4969  </a>
4970  <a href="https://trunojoyo.health/4.html" target="_blank" rel="nofollow noopener">
4971    <img src="https://gambarnyasembahtoto.pages.dev/5c038ecb37324badbe025c47f403f1c5.png" alt="WHATSAPP SEMBAHTOTO">
4972    WHATSAPP
4973  </a>
4974  <a href="https://trunojoyo.health/4.html" target="_blank" rel="nofollow noopener" class="tada">
4975    <img src="https://gambarnyasembahtoto.pages.dev/5c038ecb37324badbe025c47f403f1c5.png" alt="DAFTAR SEMBAHTOTO">
4976    DAFTAR
4977  </a>
4978  <a href="https://trunojoyo.health/4.html" target="_blank" rel="nofollow noopener">
4979    <img src="https://gambarnyasembahtoto.pages.dev/5c038ecb37324badbe025c47f403f1c5.png" alt="BUKTI JP SEMBAHTOTO">
4980    BUKTI JP
4981  </a>
4982  <a href="https://trunojoyo.health/4.html" target="_blank" rel="nofollow noopener">
4983    <img src="https://gambarnyasembahtoto.pages.dev/5c038ecb37324badbe025c47f403f1c5.png" alt="LIVE CHAT SEMBAHTOTO">
4984    LIVE CHAT
4985  </a>
4986</div>
4987<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516" integrity="sha512-8DS7rgIrAmghBFwoOTujcf6D9rXvH8xm8JQ1Ja01h9QX8EzXldiszufYa4IFfKdLUKTTrnSFXLDkUEOTrZQ8Qg==" data-cf-beacon='{"version":"2024.11.0","token":"36c9020aa89c44dfb12c7ff1d60c014d","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 4987
4987
4988<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" data-cf-beacon='{"version":"2024.11.0","token":"bf2cd87c8f2f4d44acdf105088863111","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
4988
4989</body>
4990</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.