PageSourceSearch

https://jpspinserverthailand.com/

html jpspinserverthailand.com collected 2026-10-10 02:44:03 UTC 254,138 bytes, 4,217 lines download raw bytes

1<!DOCTYPE html>
2<html lang="id">
3<head>
4<meta charset="UTF-8">
5<title>TOGE123 - Spin Slot Bertema Thailand dan Peluang Jackpot</title>
6<meta name="description" content="TOGE123 menyoroti spin slot bertema server Thailand melalui istilah jackpot, kombinasi simbol, serta ketentuan game yang menentukan pembayaran.">
7<meta name="robots" content="index, follow">
8<link rel="canonical" href="https://jpspinserverthailand.com/">
9<link rel="amphtml" href="https://toge-ravion.click/">
10<link rel="alternate" hreflang="id-id" href="https://jpspinserverthailand.com/"/>
11<link rel="alternate" href="https://jpspinserverthailand.com/"/>
12<link rel="alternate" hreflang="id" href="https://jpspinserverthailand.com/"/>
13<link rel="alternate" hreflang="en" href="https://jpspinserverthailand.com/"/>
14<link rel="alternate" hreflang="x-default" href="https://jpspinserverthailand.com/"/>
15<link rel="preconnect" href="https://www.googletagmanager.com" crossorigin>
vendor: 64 bytes, lines 15-16
15
16<script async src="https://www.googletagmanager.com/gtag/js?id=
16G-0LSM1YJSPZ
vendor: 45 bytes, line 16
16" nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
17<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>
17
18<meta property="og:locale" content="id_ID">
19<meta property="og:site_name" content="Plaza IT">
20<meta property="og:type" content="product">
21<meta property="og:title" content="TOGE123 - Spin Slot Bertema Thailand dan Peluang Jackpot">
22<meta property="og:description" content="TOGE123 menyoroti spin slot bertema server Thailand melalui istilah jackpot, kombinasi simbol, serta ketentuan game yang menentukan pembayaran.">
23<meta property="og:url" content="https://jpspinserverthailand.com/">
24<meta property="og:image" content="https://meubelkayumurah.pics/wp-content/uploads/2026/06/toge123-jalur-emas.png">
25<meta property="og:image:alt" content="TOGE123 - Spin Slot Bertema Thailand dan Peluang Jackpot">
26<meta property="product:price:amount" content="5000">
27<meta property="product:price:currency" content="IDR">
28<meta property="product:availability" content="out of stock">
29<meta name="twitter:card" content="summary_large_image">
30<meta name="twitter:title" content="TOGE123 - Spin Slot Bertema Thailand dan Peluang Jackpot">
31<meta name="twitter:description" content="TOGE123 menyoroti spin slot bertema server Thailand melalui istilah jackpot, kombinasi simbol, serta ketentuan game yang menentukan pembayaran.">
32<meta name="twitter:image" content="https://meubelkayumurah.pics/wp-content/uploads/2026/06/toge123-jalur-emas.png">
33<script type="application/ld+json">
34{
35"@context": "https://schema.org",
36"@type": "WebSite",
37"@id": "/#website",
38"url": "https://jpspinserverthailand.com/",
39"name": "TOGE123",
40"inLanguage": "id",
41"potentialAction": {
42    "@type": "SearchAction",
43    "target": "https://jpspinserverthailand.com/",
44    "query-input": "required name=search_term_string"
45}
46}
47</script>
vendor: 1 bytes, line 47
47
48<script type="application/ld+json">
49{
50"@context": "https://schema.org",
51"@type": "Organization",
52"@id": "/#organization",
53"name": "TOGE123",
54"url": "https://jpspinserverthailand.com/",
55"logo": "https://meubelkayumurah.pics/wp-content/uploads/2026/05/logotoge123.webp"
56}
57</script>
vendor: 1 bytes, line 57
57
58<script type="application/ld+json">
59{
60"@context": "https://schema.org",
61"@type": "Product",
62"name": "TOGE123 - Spin Slot Bertema Thailand dan Peluang Jackpot",
63"sku": "8S89G1554EGB",
64"image": [
65    "https://meubelkayumurah.pics/wp-content/uploads/2026/06/toge123-jalur-emas.png"
66],
67"url": "https://jpspinserverthailand.com/",
68"description": "TOGE123 menyoroti spin slot bertema server Thailand melalui istilah jackpot, kombinasi simbol, serta ketentuan game yang menentukan pembayaran. ",
69"category": "TOGE123",
70"brand": {
71    "@type": "Brand",
72    "name": "TOGE123"
73},
74"offers": {
75    "@type": "Offer",
76    "url": "https://jpspinserverthailand.com/",
77    "priceCurrency": "IDR",
78    "price": "5000",
79    "priceValidUntil": "2027-03-01",
80    "availability": "https://schema.org/OutOfStock",
81    "itemCondition": "https://schema.org/NewCondition",
82    "seller": {
83    "@type": "Organization",
84    "name": "TOGE123",
85    "url": "https://jpspinserverthailand.com/"
86    }
87},
88"aggregateRating": {
89    "@type": "AggregateRating",
90    "ratingValue": "4.9",
91    "reviewCount": "808",
92    "bestRating": "5",
93    "worstRating": "1"
94}
95}
96</script>
vendor: 1 bytes, line 96
96
97<script type="application/ld+json">
98{
99"@context": "https://schema.org",
100"@type": "BreadcrumbList",
101"itemListElement": [
102    {
103    "@type": "ListItem",
104    "position": 1,
105    "name": "TOGE123",
106    "item": "https://jpspinserverthailand.com/"
107    },
108    {
109    "@type": "ListItem",
110    "position": 2,
111    "name": "SOT ONLINE",
112    "item": "https://jpspinserverthailand.com/"
113    }
114]
115}
116</script>
vendor: 1 bytes, line 116
116
117<script type="application/ld+json">
118{
119"@context": "https://schema.org",
120"@type": "FAQPage",
121"mainEntity": [
122    {
123    "@type": "Question",
124    "name": "Apa itu TOGE123?",
125    "acceptedAnswer": {
126        "@type": "Answer",
127        "text": "TOGE123 merupakan platform hiburan online yang menyediakan berbagai jenis permainan seperti slot online, Slot777, hingga togel Toto Macau dengan sistem yang dirancang untuk memberikan pengalaman bermain yang mudah, cepat, dan terintegrasi dalam satu akun, sehingga pemain tidak perlu berpindah platform untuk menikmati berbagai jenis permainan yang tersedia, selain itu situs ini juga dikenal menyediakan pasaran togel lengkap serta sistem permainan yang transparan dengan update hasil secara real-time sehingga pemain dapat melihat hasil dengan akurat setiap saat."
128    }
129    },
130    {
131    "@type": "Question",
132    "name": "Apa saja permainan yang tersedia di TOGE123?",
133    "acceptedAnswer": {
134        "@type": "Answer",
135        "text": "TOGE123 menyediakan berbagai pilihan permainan yang sangat lengkap mulai dari Slot777 dengan berbagai provider populer, slot online modern dengan fitur bonus seperti free spin dan jackpot progresif, hingga togel online termasuk Toto Macau 4D yang memiliki jadwal pengeluaran rutin dan data result yang selalu diperbarui secara otomatis, sehingga pemain dapat memilih permainan sesuai dengan preferensi mereka tanpa merasa terbatas oleh pilihan yang sedikit."
136    }
137    },
138    {
139    "@type": "Question",
140    "name": "Apakah TOGE123 menyediakan Toto Macau dengan hasil real-time?",
141    "acceptedAnswer": {
142        "@type": "Answer",
143        "text": "Ya, TOGE123 menyediakan fitur hasil pengeluaran Toto Macau secara real-time yang dapat diakses langsung oleh pemain kapan saja, sehingga setiap hasil angka yang keluar dapat dilihat secara transparan tanpa adanya keterlambatan atau mani
143pulasi, hal ini menjadi salah satu keunggulan utama karena pemain dapat menggunakan data tersebut sebagai bahan analisis sebelum memasang taruhan berikutnya."
144    }
145    },
146    {
147    "@type": "Question",
148    "name": "Apakah bonus bisa langsung ditarik?",
149    "acceptedAnswer": {
150        "@type": "Answer",
151        "text": "Sebagian besar bonus yang diberikan oleh TOGE123 memiliki syarat turnover tertentu sebelum dapat ditarik, yang berarti pemain harus memainkan sejumlah taruhan terlebih dahulu sesuai ketentuan yang berlaku, namun syarat tersebut umumnya cukup ringan sehingga tetap memungkinkan pemain untuk mencairkan kemenangan dengan relatif mudah setelah memenuhi persyaratan yang ditentukan."
152    }
153    },
154    {
155    "@type": "Question",
156    "name": "Berapa minimal deposit di TOGE123?",
157    "acceptedAnswer": {
158        "@type": "Answer",
159        "text": "Minimal deposit di TOGE123 tergolong cukup terjangkau, bahkan mulai dari nominal rendah seperti Rp10.000 hingga Rp50.000 tergantung pada jenis promo yang digunakan, sehingga platform ini sangat cocok bagi pemain pemula yang ingin mencoba bermain tanpa harus mengeluarkan modal besar di awal."
160    }
161    },
162    {
163    "@type": "Question",
164    "name": "Apakah transaksi di TOGE123 cepat dan aman?",
165    "acceptedAnswer": {
166        "@type": "Answer",
167        "text": "TOGE123 menyediakan sistem transaksi yang cepat dan aman dengan berbagai metode pembayaran seperti transfer bank dan e-wallet, di mana proses deposit dan withdraw dapat dilakukan dalam waktu singkat karena menggunakan sistem otomatis, sehingga pemain tidak perlu menunggu lama untuk mulai bermain atau mencairkan hasil kemenangan mereka."
168    }
169    }
170]
171}
172</script>
172
173<!-- User Session Data -->
174    <meta name="csrf-token" content="9ce6e4a17f7cc189893df9e47789b13e98829450d516a0cae5ca7b5f43e5dadc">
175<meta name="user-logged-in" content="false">
176<meta name="user-id" content="0">
177<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" />
178<link rel="shortcut icon" href="https://meubelkayumurah.pics/wp-content/uploads/2026/05/icontoge123.png" type="image/x-icon">
179<link rel="stylesheet" href="https://plazaitdotid.pages.dev/assets/css/style.css">
180<link rel="stylesheet" href="https://plazaitdotid.pages.dev/assets/css/bottom-nav.css">
181<link rel="stylesheet" href="https://plazaitdotid.pages.dev/assets/css/search-suggest.css">
182<link rel="stylesheet" href="https://plazaitdotid.pages.dev/assets/css/product-detail.css">
183<link rel="stylesheet" href="https://plazaitdotid.pages.dev/assets/css/product-grid.css">
184<link rel="stylesheet" href="https://plazaitdotid.pages.dev/assets/css/site-notice.css">
185        <link rel="stylesheet" href="https://plazaitdotid.pages.dev/assets/css/benchmark.css">
186    <link rel="stylesheet" href="https://plazaitdotid.pages.dev/assets/css/product-filters.css">
187<link rel="stylesheet" href="https://plazaitdotid.pages.dev/assets/css/mega-menu-tiles.css">
188<link rel="stylesheet" href="https://plazaitdotid.pages.dev/assets/css/product-compare.css">
189<link rel="stylesheet" href="https://plazaitdotid.pages.dev/assets/css/product-card-actions.css">
190<link rel="stylesheet" href="https://plazaitdotid.pages.dev/assets/css/modal.css">
191        <link rel="stylesheet" href="https://plazaitdotid.pages.dev/assets/css/reviews-points.css">
192</head>
193<body>
194<header class="topbar">
195<div class="container topbar-inner">
196    <div class="topbar-left">
197    TOGE123 - Spin Slot Bertema Thailand dan Peluang Jackpot
198    </div>
199    <div class="topbar-right">
200    <a href="https://toge-ravion.click/">TOGE123</a>
201    <a href="https://toge-ravion.click/">Promo</a>
202    <a href="https://toge-ravion.click/">Daftar</a>
203    <a href="https://toge-ravion.click/">Masuk</a>
204    </div>
205</div>
206</header>
207<nav class="navbar">
208<nav class="navbar-logo" style="width: 100%;">
209    <div class="container nav-inner" style="justify-items: center; justify-content: center;">
210        <a href="/" class="logo-mobile">
211        <img src="https://meubelkayumurah.pics/wp-content/uploads/2026/05/logotoge123.webp" alt="TOGE123" height="100">
212        </a>
213    </div>
214</nav>
215<div class="container nav-inner">
216    <a href="/" class="logo">
217    <img src="https://meubelkayumurah.pics/wp-content/uploads/2026/05/logotoge123.webp" alt="TOGE123" height="100">
218    </a>
219    <form class="search" method="get" action="https://toge-ravion.click/">
220    <input type="hidden" name="page" value="produk">
221    <!-- Search Icon (Desktop) -->
222    <button type="submit" class="search-icon-btn" id="searchBtn" aria-label="Cari">
223        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">
224        <circle cx="11" cy="11" r="8"/>
225        <path d="m21 21-4.35-4.35"/>
226        </svg>
227    </button>
228    <input type="text" name="q" id="searchInput" placeholder="Cari TOGE123"
229            value="" autocomplete="off">
230    <div class="search-suggest" id="searchSuggest" hidden></div>
231    </form>
232    <div class="nav-actions">
233    <!--<button class="icon-btn" id="notifBtn" title="Notifikasi">🔔</button>-->
234    <button class="icon-btn cart-indicator" id="cartBtn" title="Keranjang">
235        🛒 <span id="cartCount" class="badge" data-role="cart-badge" aria-live="polite">0</span>
236    </button>
237        <span id="compareCount" class="badge" data-role="compare-badge" aria-live="polite">0</span>
238    </button>
239    <!-- Dynamic login/logout button -->
240            <button class="login-btn" id="loginBtn" aria-label="Masuk">
241        <span class="login-text">Masuk</span>
242        <span class="login-ico" aria-hidden="true">😊</span>
243    </button>
244        </div>
245</div>
246<div class="container" style="display: flex; align-items: center;">
247    <div class="mega-cats-wrapper">
248        <div class="mega-cats container" id="megaCatsScroll" style="padding-left: 5px !important;">
249                    <a class="" href="https://toge-ravion.click/">
250            TOGE123            </a>
251                    <a class="" href="https://toge-ravion.click/">
252            SLOT ONLINE             </a>
253                    <a class="" href="https://toge-ravion.click/">
254            SLOT777            </a>
255                    <a class="" href="https://toge-ravion.click/">
256            TOGEL ONLINE             </a>
257                    <a class="" href="https://toge-ravion.click/">
258            TOTO MACAU         </a>
259                    <a class="" href="https://toge-ravion.click/">
260            TOTO SLOT            </a>
261                    <a class="" href="https://toge-ravion.click/">
262            TOGEL MACAU            </a>
263                </div>
264        <div class="mega-cats-fade" id="megaCatsFade"></div>
265    </div>
266</div>
267</nav>
268<!-- Panel Mega Menu - Outside navbar for full-screen -->
269<div class="mm2-panel" data-mm2="panel" role="dialog" aria-label="Kategori">
270<div class="mm2-view is-active" data-mm2="top"></div>
271<div class="mm2-view" data-mm2="detail"></div>
272</div>
273<!-- Backdrop - Outside navbar for full-screen -->
274<div class="mm2-backdrop" data-mm2="backdrop"></div>
275<!-- Mobile Bottom Navigation -->
276<nav class="bottom-nav">
277<div class="bottom-nav-inner">
278    <!-- Home -->
279    <a href="/" class="bottom-nav-item" id="bottomHomeBtn" data-page="home">
280    <div class="bottom-nav-item-icon">
281        <!-- Outlined icon (default) -->
282        <svg class="icon-outlined" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
283        <path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"/>
284        <polyline points="9 22 9 12 15 12 15 22"/>
285        </svg>
286        <!-- Filled icon (active) -->
287        <svg class="icon-filled" viewBox="0 0 24 24" fill="currentColor">
288        <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"/>
289        <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"/>
290        </svg>
291    </div>
292    <span class="bottom-nav-item-label">Home</span>
293    </a>
294    <!-- Kategori -->
295    <button class="bottom-nav-item" id="bottomCategoryBtn" data-mm2="trigger" aria-label="Kategori">
296    <div class="bottom-nav-item-icon">
297        <!-- Outlined icon (default) -->
298        <svg class="icon-outlined" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
299        <line x1="3" y1="12" x2="21" y2="12"/>
300        <line x1="3" y1="6" x2="21" y2="6"/>
301        <line x1="3" y1="18" x2="21" y2="18"/>
302        </svg>
303        <!-- Filled icon (active) -->
304        <svg class="icon-filled" viewBox="0 0 24 24" fill="currentColor">
305        <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"/>
306        </svg>
307    </div>
308    <span class="bottom-nav-item-label">Kategori</span>
309    </button>
310    <!-- Keranjang -->
311    <button class="bottom-nav-item" id="bottomCartBtn">
312    <div class="bottom-nav-item-icon">
313        <!-- Outlined icon (default) -->
314        <svg class="icon-outlined" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
315        <circle cx="9" cy="21" r="1"/>
316        <circle cx="20" cy="21" r="1"/>
317        <path d="M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6"/>
318        </svg>
319        <!-- Filled icon (active) -->
320        <svg class="icon-filled" viewBox="0 0 24 24" fill="currentColor">
321        <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"/>
322        </svg>
323        <span class="bottom-nav-item-badge" id="bottomCartCount">0</span>
324    </div>
325    <span class="bottom-nav-item-label">Keranjang</span>
326    </button>
327    <!-- Compare -->
328    <button class="bottom-nav-item" id="bottomCompareBtn">
329    <div class="bottom-nav-item-icon">
330        <!-- Outlined icon (default) -->
331        <svg class="icon-outlined" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
332        <polyline points="17 11 21 7 17 3"/>
333        <path d="M21 7H9"/>
334        <polyline points="7 21 3 17 7 13"/>
335        <path d="M15 17H3"/>
336        </svg>
337        <!-- Filled icon (active) -->
338        <svg class="icon-filled" viewBox="0 0 24 24" fill="currentColor">
339        <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"/>
340        </svg>
341        <span class="bottom-nav-item-badge" id="bottomCompareCount" style="display:none;">0</span>
342    </div>
343    <span class="bottom-nav-item-label">Compare</span>
344    </button>
345    <!-- Chat - Always show, check login in JavaScript -->
346    <button class="bottom-nav-item" id="bottomChatBtn" data-page="chat">
347    <div class="bottom-nav-item-icon">
348        <!-- Outlined icon (default) -->
349        <svg class="icon-outlined" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" opacity="0.85">
350        <path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/>
351        </svg>
352        <!-- Filled icon (active) -->
353        <svg class="icon-filled" viewBox="0 0 24 24" fill="currentColor">
354        <path d="M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2z"/>
355        </svg>
356        <span class="bottom-nav-item-badge" id="bottomChatCount" style="display:none;">0</span>
357    </div>
358    <span class="bottom-nav-item-label">Chat</span>
359    </button>
360    <!-- Akun -->
361        <button class="bottom-nav-item" id="bottomLoginBtn">
362    <div class="bottom-nav-item-icon">
363        <!-- Outlined icon (default) -->
364        <svg class="icon-outlined" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
365        <path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"/>
366        <circle cx="12" cy="7" r="4"/>
367        </svg>
368        <!-- Filled icon (active) -->
369        <svg class="icon-filled" viewBox="0 0 24 24" fill="currentColor">
370        <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"/>
371        </svg>
372    </div>
373    <span class="bottom-nav-item-label">Login</span>
374    </button>
375        </svg>
376    </div>
377    </button>
378    </div>
379</nav>
380<!-- Mobile User Menu Bottom Sheet -->
381<script nonce="se3iyzEHMc9FQEB4wSyd0w==">
382(function(){
383const btn = document.getElementById('megaMoreBtn');
384const dd  = document.getElementById('megaMoreDropdown');
385if(!btn || !dd) return;
386function openDD(){
387    dd.hidden = false;
388    btn.setAttribute('aria-expanded','true');
389    document.addEventListener('click', outside, {capture:true});
390    document.addEventListener('keydown', esc);
391}
392function closeDD(){
393    if(dd.hidden) return;
394    dd.hidden = true;
395    btn.setAttribute('aria-expanded','false');
396    document.removeEventListener('click', outside, {capture:true});
397    document.removeEventListener('keydown', esc);
398}
399function toggle(){ dd.hidden ? openDD() : closeDD(); }
400function outside(e){
401    if(!dd.contains(e.target) && e.target !== btn){
402    closeDD();
403    }
404}
405function esc(e){
406    if(e.key === 'Escape'){
407    closeDD();
408    btn.focus();
409    }
410}
411btn.addEventListener('click', toggle);
412})();
413// ========== HORIZONTAL SCROLL FADE INDICATOR ==========
414(function(){
415const megaCats = document.getElementById('megaCatsScroll');
416const fade = document.getElementById('megaCatsFade');
417if (!megaCats || !fade) return;
418function updateFade() {
419    const scrollLeft = megaCats.scrollLeft;
420    const scrollWidth = megaCats.scrollWidth;
421    const clientWidth = megaCats.clientWidth;
422    const maxScroll = scrollWidth - clientWidth;
423    // Hide fade when scrolled to end (within 10px tolerance)
424    if (maxScroll - scrollLeft <= 10) {
425    fade.style.opacity = '0';
426    } else {
427    fade.style.opacity = '1';
428    }
429}
430// Update on scroll
431megaCats.addEventListener('scroll', updateFade, { passive: true });
432// Update on resize
433window.addEventListener('resize', updateFade, { passive: true });
434// Initial check
435setTimeout(updateFade, 100);
436})();
437document.addEventListener('DOMContentLoaded', function () {
438var input = document.getElementById('searchInput');
439if (!input) return;
440input.addEventListener('keydown', function (e) {
441    if (e.key === 'Enter') {
442    e.preventDefault();
443    var form = input.form;
444    if (!form) return;
445    if (typeof form.requestSubmit === 'function') form.requestSubmit();
446    else form.submit();
447    }
448});
449});
450(function(){
451const cartBtn = document.getElementById('cartBtn');
452if (cartBtn) {
453    cartBtn.addEventListener('click', function(e) {
454    e.preventDefault();
455    const checkLogin = () => {
456        return window.isUserLoggedIn ? window.isUserLoggedIn() : false;
457    };
458    if (checkLogin()) {
459        window.location.href = '/keranjang';
460    } else {
461        showCartLoginModal();
462    }
463    });
464}
465const loginBtn = document.getElementById('loginBtn');
466if (loginBtn) {
467    loginBtn.addEventListener('click', function(e) {
468    e.preventDefault();
469    window.location.href = 'https://jpspinserverthailand.com/';
470    });
471}
472const userMenuBtn = document.getElementById('userMenuBtn');
473const userDropdown = document.getElementById('userDropdown');
474if (userMenuBtn && userDropdown) {
475    function openDropdown() {
476    userDropdown.hidden = false;
477    userMenuBtn.setAttribute('aria-expanded', 'true');
478    document.addEventListener('click', closeOnOutside, { capture: true });
479    document.addEventListener('keydown', closeOnEscape);
480    }
481    function closeDropdown() {
482    if (userDropdown.hidden) return;
483    userDropdown.hidden = true;
484    userMenuBtn.setAttribute('aria-expanded', 'false');
485    document.removeEventListener('click', closeOnOutside, { capture: true });
486    document.removeEventListener('keydown', closeOnEscape);
487    }
488    function closeOnOutside(e) {
489    if (!userDropdown.contains(e.target) && e.target !== userMenuBtn) {
490        closeDropdown();
491    }
492    }
493    function closeOnEscape(e) {
494    if (e.key === 'Escape') {
495        closeDropdown();
496        userMenuBtn.focus();
497    }
498    }
499    userMenuBtn.addEventListener('click', function(e) {
500    e.preventDefault();
501    userDropdown.hidden ? openDropdown() : closeDropdown();
502    });
503    // Close dropdown when clicking profile links
504    userDropdown.querySelectorAll('[data-close-dropdown]').forEach(link => {
505    link.addEventListener('click', function() {
506        closeDropdown();
507    });
508    });
509}
510// Bottom nav profile button - toggle mobile bottom sheet
511const bottomProfileBtn = document.getElementById('bottomProfileBtn');
512const mobileUserSheet = document.getElementById('mobileUserSheet');
513const mobileUserSheetBackdrop = document.getElementById('mobileUserSheetBackdrop');
514if (bottomProfileBtn && mobileUserSheet) {
515    function openMobileSheet() {
516    mobileUserSheet.hidden = false;
517    document.body.style.overflow = 'hidden';
518    // Trigger animation
519    requestAnimationFrame(() => {
520        mobileUserSheet.classList.add('active');
521    });
522    }
523    function closeMobileSheet() {
524    mobileUserSheet.classList.remove('active');
525    document.body.style.overflow = '';
526    setTimeout(() => {
527        mobileUserSheet.hidden = true;
528    }, 300);
529    }
530    bottomProfileBtn.addEventListener('click', function(e) {
531    e.preventDefault();
532    openMobileSheet();
533    });
534    if (mobileUserSheetBackdrop) {
535    mobileUserSheetBackdrop.addEventListener('click', closeMobileSheet);
536    }
537    // Close on escape key
538    document.addEventListener('keydown', function(e) {
539    if (e.key === 'Escape' && !mobileUserSheet.hidden) {
540        closeMobileSheet();
541    }
542    });
543    // Close sheet when clicking profile links
544    mobileUserSheet.querySelectorAll('[data-close-sheet]').forEach(link => {
545    link.addEventListener('click', function() {
546        closeMobileSheet();
547    });
548    });
549}
550// Handle Google avatar error in bottom-nav (fallback to initials)
551const bottomNavAvatar = document.querySelector('.bottom-nav-avatar-img');
552if (bottomNavAvatar) {
553    bottomNavAvatar.addEventListener('error', function() {
554    const initials = this.getAttribute('data-fallback-initials') || 'U';
555    const initialsDiv = document.createElement('div');
556    initialsDiv.className = 'bottom-nav-avatar-initials';
557    initialsDiv.textContent = initials;
558    this.parentNode.replaceChild(initialsDiv, this);
559    });
560}
561// Mobile logout button
562const mobileLogoutBtn = document.getElementById('mobileLogoutBtn');
563if (mobileLogoutBtn) {
564    mobileLogoutBtn.addEventListener('click', async function(e) {
565    e.preventDefault();
566    // Check push notification before logout
567    if (window.ChatNotification && typeof window.ChatNotification.confirmLogoutWithPushNotification === 'function') {
568        const confirmLogout = await window.ChatNotification.confirmLogoutWithPushNotification();
569        if (!confirmLogout) {
570        return; // User cancelled logout
571        }
572    }
573    const getCsrfToken = () => document.querySelector('meta[name="csrf-token"]')?.getAttribute('content') || '';
574    try {
575        const response = await fetch('/auth/logout', {
576        method: 'POST',
577        credentials: 'same-origin',
578        headers: {
579            'Content-Type': 'application/json',
580            'X-CSRF-Token': getCsrfToken()
581        },
582        body: JSON.stringify({
583            csrf_token: getCsrfToken()
584        })
585        });
586        if (response.ok) {
587        if (window.guestCart && typeof window.guestCart.clear === 'function') {
588            window.guestCart.clear();
589        }
590        window.location.href = '/login?logged_out=1';
591        } else {
592        console.error('Logout failed');
593        window.location.href = '/logout';
594        }
595    } catch (error) {
596        console.error('Logout error:', error);
597        window.location.href = '/logout';
598    }
599    });
600}
601const logoutBtn = document.getElementById('logoutBtn');
602if (logoutBtn) {
603    logoutBtn.addEventListener('click', async function(e) {
604    e.preventDefault();
605    // Check push notification before logout
606    if (window.ChatNotification && typeof window.ChatNotification.confirmLogoutWithPushNotification === 'function') {
607        const confirmLogout = await window.ChatNotification.confirmLogoutWithPushNotification();
608        if (!confirmLogout) {
609        return; // User cancelled logout
610        }
611    }
612    const getCsrfToken = () => document.querySelector('meta[name="csrf-token"]')?.getAttribute('content') || '';
613    try {
614        const response = await fetch('/auth/logout', {
615        method: 'POST',
616        credentials: 'same-origin',
617        headers: {
618            'Content-Type': 'application/json',
619            'X-CSRF-Token': getCsrfToken()
620        },
621        body: JSON.stringify({
622            csrf_token: getCsrfToken()
623        })
624        });
625        if (response.ok) {
626        if (window.guestCart && typeof window.guestCart.clear === 'function') {
627            window.guestCart.clear();
628        }
629        window.location.href = '/login?logged_out=1';
630        } else {
631        console.error('Logout failed');
632        window.location.href = '/logout';
633        }
634    } catch (error) {
635        console.error('Logout error:', error);
636        window.location.href = '/logout';
637    }
638    });
639}
640const wishlistBtn = document.getElementById('wishlistBtn');
641const notifBtn = document.getElementById('notifBtn');
642if (wishlistBtn) {
643    wishlistBtn.addEventListener('click', function(e) {
644    e.preventDefault();
645    alert('Fitur wishlist akan segera tersedia!');
646    });
647}
648if (notifBtn) {
649    notifBtn.addEventListener('click', function(e) {
650    e.preventDefault();
651    alert('Fitur notifikasi akan segera tersedia!');
652    });
653}
654})();
655// ========== MOBILE BOTTOM NAVIGATION ==========
656(function initBottomNav() {
657// Sync cart badge with bottom nav
658function syncBottomCartBadge() {
659    const mainBadge = document.getElementById('cartCount');
660    const bottomBadge = document.getElementById('bottomCartCount');
661    if (mainBadge && bottomBadge) {
662    const count = mainBadge.textContent;
663    bottomBadge.textContent = count;
664    bottomBadge.style.display = parseInt(count) > 0 ? 'flex' : 'none';
665    }
666}
667// Sync compare badge with bottom nav
668function syncBottomCompareBadge() {
669    const mainBadge = document.getElementById('compareCount');
670    const bottomBadge = document.getElementById('bottomCompareCount');
671    if (mainBadge && bottomBadge) {
672    const count = mainBadge.textContent;
673    bottomBadge.textContent = count;
674    bottomBadge.style.display = parseInt(count) > 0 ? 'flex' : 'none';
675    }
676}
677// Initial sync
678syncBottomCartBadge();
679syncBottomCompareBadge();
680// Observe badge changes
681const observer = new MutationObserver(function() {
682    syncBottomCartBadge();
683    syncBottomCompareBadge();
684});
685const cartBadge = document.getElementById('cartCount');
686const compareBadge = document.getElementById('compareCount');
687if (cartBadge) observer.observe(cartBadge, { childList: true, characterData: true, subtree: true });
688if (compareBadge) observer.observe(compareBadge, { childList: true, characterData: true, subtree: true });
689// Bottom Cart Button
690const bottomCartBtn = document.getElementById('bottomCartBtn');
691if (bottomCartBtn) {
692    bottomCartBtn.addEventListener('click', function(e) {
693    e.preventDefault();
694    const checkLogin = () => {
695        return window.isUserLoggedIn ? window.isUserLoggedIn() : false;
696    };
697    if (checkLogin()) {
698        window.location.href = '/keranjang';
699    } else {
700        showCartLoginModal();
701    }
702    });
703}
704// Bottom Compare Button
705const bottomCompareBtn = document.getElementById('bottomCompareBtn');
706if (bottomCompareBtn) {
707    bottomCompareBtn.addEventListener('click', function(e) {
708    e.preventDefault();
709    // Close chat widget if open
710    if (window.plazaChat && window.plazaChat.isWidgetOpen) {
711        window.plazaChat.closeWidget();
712    }
713    const mainCompareBtn = document.getElementById('compareBtn');
714    if (mainCompareBtn) {
715        mainCompareBtn.click();
716    }
717    });
718}
719// Bottom Category Button - triggers mega menu
720const bottomCategoryBtn = document.getElementById('bottomCategoryBtn');
721if (bottomCategoryBtn) {
722    bottomCategoryBtn.addEventListener('click', function(e) {
723    e.preventDefault();
724    // Trigger desktop mega menu
725    const desktopTrigger = document.querySelector('.mm2-trigger:not(#bottomCategoryBtn)');
726    if (desktopTrigger) {
727        desktopTrigger.click();
728    }
729    });
730}
731// Bottom Login Button
732const bottomLoginBtn = document.getElementById('bottomLoginBtn');
733if (bottomLoginBtn) {
734    bottomLoginBtn.addEventListener('click', function(e) {
735    e.preventDefault();
736    window.location.href = '/login';
737    });
738}
739// Bottom Chat Button
740const bottomChatBtn = document.getElementById('bottomChatBtn');
741if (bottomChatBtn) {
742    bottomChatBtn.addEventListener('click', function(e) {
743    e.preventDefault();
744    // Trigger chat widget (try multiple times if needed)
745    const triggerChat = () => {
746        const chatToggle = document.getElementById('chat-toggle-btn');
747        if (chatToggle) {
748        chatToggle.click();
749        return true;
750        }
751        return false;
752    };
753    // Immediate attempt
754    if (!triggerChat()) {
755        // Retry after 100ms if not found
756        setTimeout(() => {
757        if (!triggerChat()) {
758            // Last resort: manually show popup
759            const popup = document.getElementById('chat-popup');
760            if (popup) {
761            popup.style.display = 'block';
762            }
763        }
764        }, 100);
765    }
766    });
767}
768// Sync chat unread badge
769function syncBottomChatBadge() {
770    const chatBadge = document.getElementById('chat-unread-badge');
771    const bottomChatBadge = document.getElementById('bottomChatCount');
772    if (chatBadge && bottomChatBadge) {
773    const count = chatBadge.textContent;
774    bottomChatBadge.textContent = count;
775    bottomChatBadge.style.display = chatBadge.style.display;
776    }
777}
778// Observe chat badge changes
779const chatBadge = document.getElementById('chat-unread-badge');
780if (chatBadge) {
781    observer.observe(chatBadge, { attributes: true, childList: true, characterData: true, subtree: true });
782    syncBottomChatBadge();
783}
784// Active state management based on current page
785function updateActiveState() {
786    const currentPath = window.location.pathname;
787    const bottomNavItems = document.querySelectorAll('.bottom-nav-item');
788    bottomNavItems.forEach(item => {
789    item.classList.remove('active');
790    const itemId = item.id;
791    const page = item.getAttribute('data-page');
792    const href = item.getAttribute('href');
793    // Check by ID for specific pages
794    if (itemId === 'bottomHomeBtn' && currentPath === '/') {
795        item.classList.add('active');
796    } else if (itemId === 'bottomCartBtn' && (currentPath === '/keranjang' || currentPath === '/cart')) {
797        item.classList.add('active');
798    } else if (itemId === 'bottomProfileBtn' && currentPath.startsWith('/profile')) {
799        item.classList.add('active');
800    } else if (itemId === 'bottomCategoryBtn' && currentPath.startsWith('/kategori')) {
801        item.classList.add('active');
802    } else if (itemId === 'bottomCompareBtn' && currentPath === '/compare') {
803        item.classList.add('active');
804    } else if (itemId === 'bottomChatBtn' && currentPath === '/chat') {
805        item.classList.add('active');
806    }
807    // Fallback: check by data-page attribute
808    else if (page === 'home' && currentPath === '/') {
809        item.classList.add('active');
810    } else if (page === 'profile' && currentPath.startsWith('/profile')) {
811        item.classList.add('active');
812    }
813    // Fallback: check by href
814    else if (href && currentPath === href) {
815        item.classList.add('active');
816    }
817    });
818}
819// Update active state on load
820updateActiveState();
821// Bottom nav always visible - auto-hide disabled for better UX
822// const bottomNav = document.querySelector('.bottom-nav');
823// if (bottomNav && window.innerWidth <= 640) {
824//   // Auto-hide feature disabled
825// }
826})();
827// Cart Login Modal Handler (Global scope)
828function showCartLoginModal() {
829const modal = document.getElementById('cartLoginModal');
830if (!modal) return;
831modal.classList.add('show');
832const confirmBtn = document.getElementById('cartLoginConfirm');
833const registerBtn = document.getElementById('cartRegisterBtn');
834const cancelBtn = document.getElementById('cartLoginCancel');
835const handleLogin = () => {
836    window.location.href = '/login?return=' + encodeURIComponent('/keranjang');
837};
838const handleRegister = () => {
839    window.location.href = '/register?return=' + encodeURIComponent('/keranjang');
840};
841const handleCancel = () => {
842    modal.classList.remove('show');
843    confirmBtn.removeEventListener('click', handleLogin);
844    registerBtn.removeEventListener('click', handleRegister);
845    cancelBtn.removeEventListener('click', handleCancel);
846};
847confirmBtn.removeEventListener('click', handleLogin);
848registerBtn.removeEventListener('click', handleRegister);
849cancelBtn.removeEventListener('click', handleCancel);
850confirmBtn.addEventListener('click', handleLogin);
851registerBtn.addEventListener('click', handleRegister);
852cancelBtn.addEventListener('click', handleCancel);
853modal.addEventListener('click', (e) => {
854    if (e.target === modal) {
855    handleCancel();
856    }
857});
858}
859</script>
859
860<!-- Product Compare Sidebar -->
861<div class="compare-sidebar" id="compareSidebar">
862<div class="compare-header">
863    <h4 class="compare-title">
864    <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
865        <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"/>
866    </svg>
867    Bandingkan Produk
868    <span class="compare-count" id="compareCountSidebar">(0)</span>
869    </h4>
870    <button class="compare-close" id="compareClose" aria-label="Tutup">
871    <svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor">
872        <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"/>
873    </svg>
874    </button>
875</div>
876<div class="compare-content">
877    <div class="compare-empty" id="compareEmpty">
878    <div class="empty-icon">
879        <svg width="48" height="48" viewBox="0 0 24 24" fill="currentColor" opacity="0.3">
880        <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"/>
881        </svg>
882    </div>
883    <h5>Belum ada produk dipilih</h5>
884    <p>Pilih produk yang ingin dibandingkan dengan klik tombol "Bandingkan Produk" di halaman produk.</p>
885    </div>
886    <div class="compare-list" id="compareList">
887    <!-- Products will be populated here -->
888    </div>
889</div>
890<div class="compare-actions" id="compareActions">
891    <button class="btn btn-outline-danger btn-sm" id="compareClearAll">
892    <svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor">
893        <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"/>
894    </svg>
895    Hapus Semua
896    </button>
897    <button class="btn btn-primary btn-sm" id="compareAnalyze" disabled>
898    <svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor">
899        <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"/>
900    </svg>
901    Analisis AI
902    </button>
903</div>
904<!-- AI Disclaimer in Sidebar -->
905<div class="compare-disclaimer">
906    <div class="ai-disclaimer">
907    <div class="disclaimer-text">
908        <strong>💡 Catatan:</strong> Dengan berbagai pilihan yang tersedia, pengguna memiliki kebebasan untuk menentukan jenis permainan yang paling sesuai dengan preferensi masing-masing.
909    </div>
910    </div>
911</div>
912</div><link rel="stylesheet" href="https://plazaitdotid.pages.dev/assets/css/pd-lightbox.css">
913<style>.paylater-promo{display:inline-flex;align-items:center;gap:8px;background:linear-gradient(135deg,#141815 0,#131614 100%);border:1px solid #fca115;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:#fca115;font-weight:600}.paylater-text small{color:#fca115;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:#fca115;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;
913cursor: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:#c52222;color:#fff;border-color:#c52222}.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:#4146fe;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,#4146fe,#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>
914<style nonce="se3iyzEHMc9FQEB4wSyd0w==">
915.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;
915display: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}
916.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)}}
917.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}
918.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:#fca115;margin:0}
919.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)}
920.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,#fca115 0%,#3c3300 100%);color:#fff}.pd-share-icon-facebook{background:linear-gradient(135deg,#1877F2 0%,#0c63d4 100%);color:#fff}.pd-share-icon-twitter{background:linear-gradient(135deg,#1DA1F2 0%,#0d8bd9 100%);color:#fff}.pd-share-icon-telegram{background:linear-gradient(135deg,#0088cc 0%,#0077b3 100%);color:#fff}.pd-share-icon-email{background:linear-gradient(135deg,#EA4335 0%,#c5331f 100%);color:#fff}.pd-share-icon-copy{background:linear-gradient(135deg,#f1db63 0%,#e5d146 100%);color:#fff}.pd-share-icon-pdf{background:linear-gradient(135deg,#ef4444 0%,#dc2626 100%);color:#fff}.pd-share-name{font-size:12px;font-weight:600;color:#475569;text-align:center}
921.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:#fca115;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,#e90e0e 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)}
921.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,#c52222 0%,#a31616 100%);pointer-events:none}
922@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}}
923.mf-share{background:#fff;color:#fb923c;border:2px solid #fb923c;display:inline-flex;align-items:center;justify-content:center}.mf-share:active{transform:scale(.95)}.mf-share svg{display:block}
924@media(max-width:640px){.pd-share-btn{display:none!important}}
925.stock-badge.in{background:#e6f9ec;color:#801515;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}
926.stock-info-btn{--c:#e90e0e;--b:#bae6fd;--bg:#f0f9ff;--bg-h:#e0f2fe;--b-h:#e90e0e;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}
927.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}
928.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}
929.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}
930.sp-wa{
931grid-column:3; justify-self:end;
932width:32px; height:32px; min-width:32px; min-height:32px;
933box-sizing:border-box;
934padding:0; line-height:0; text-decoration:none; outline:0;
935display:inline-flex; align-items:center; justify-content:center;
936border-radius:999px; border:1px solid rgba(211, 37, 37, 0.6);  /* 1px untuk hasil “crisp” */
937background:rgba(37,211,102,.08); color:#d32525;
938transition:background-color .15s ease, border-color .15s ease, transform .05s ease;
939-webkit-tap-highlight-color:transparent;
940}
941.sp-wa:hover{background:rgba(37,211,102,.16);border-color:rgba(37,211,102,.75)}
942.sp-wa:active{transform:translateY(.5px) scale(.98)}
943.sp-wa svg{width:18px;height:18px;display:block;vertical-align:middle}
944.stock-popover a{text-decoration:none}
945#deskripsi img{max-width:200px!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}}
946.stock-dot{position:absolute;bottom:8px;right:8px;width:8px;height:8px;border-radius:50%;box-shadow:0 1px 3px rgba(0,0,0,0.4);z-index:2;cursor:help}.stock-dot.ready{background:#10b981}.stock-dot.low{background:#f59e0b}.stock-dot.out{background:#ef4444}.stock-dot:hover{transform:scale(1.2);transition:transform 0.2s ease}@media(max-width:640px){.stock-dot{width:7px;height:7px;bottom:6px;right:6px}}
947.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}}
948.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}
949.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)}}
950.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#e90e0e;font-size:11px;color:#0c4a6e;border-radius:4px}
951@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}}
952.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}}
953</style>
954<div class="pd-sticky-header" id="pd-sticky-header"><div class="pd-sticky-header-container"><div class="pd-sticky-thumb"><img src="https://meubelkayumurah.pics/wp-content/uploads/2026/06/toge123-jalur-emas.png" alt="TOGE123" id="pd-sticky-thumb-img"></div><div class="pd-sticky-info"><h2 class="pd-sticky-title" id="pd-sticky-title">TOGE123 - Spin Slot Bertema Thailand dan Peluang Jackpot</h2><div class="pd-sticky-price-row"><span class="pd-sticky-price" id="pd-sticky-price">Rp 10.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">
954<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>
955<main class="product-single product-single--v3"><nav class="pd-breadcrumb" aria-label="breadcrumb"><a href="//canadamalpractice.com/faqs/">TOGE123</a><span>/</span><a href="https://toge-ravion.click/">SLOT ONLINE</a><span></span><a href="https://toge-ravion.click/">SLOT777</a><span>/</span><a href="https://toge-ravion.click/">TOGEL ONLINE</a><span>/</span><a href="https://toge-ravion.click/">TOTO MACAU </a><span>/</span><span class="current">TOGE123 - Spin Slot Bertema Thailand dan Peluang Jackpot
956</span></nav>
957<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://meubelkayumurah.pics/wp-content/uploads/2026/06/toge123-jalur-emas.png" alt="TOGE123" data-slug="" loading="eager">
958</figure>
959<div class="pd-mobile-slider-wrapper">
960<div class="pd-mobile-slider" id="pd-mobile-slider" aria-label="Galeri gambar (geser)"><div class="pd-mslide"><img src="https://meubelkayumurah.pics/wp-content/uploads/2026/06/toge123-jalur-emas.png" alt="TOGE123" loading="eager"></div><div class="pd-mslide"><img src="https://meubelkayumurah.pics/wp-content/uploads/2026/06/toge123-jalur-emas.png" alt="TOGE123" loading="lazy"></div><div class="pd-mslide"><img src="https://meubelkayumurah.pics/wp-content/uploads/2026/06/toge123-jalur-emas.png" alt="TOGE123" loading="lazy"></div><div class="pd-mslide"><img src="https://meubelkayumurah.pics/wp-content/uploads/2026/06/toge123-jalur-emas.png" alt="TOGE123" loading="lazy"></div><div class="pd-mslide"><img src="https://meubelkayumurah.pics/wp-content/uploads/2026/06/toge123-jalur-emas.png" alt="TOGE123" loading="lazy"></div><div class="pd-mslide"><img src="https://meubelkayumurah.pics/wp-content/uploads/2026/06/toge123-jalur-emas.png" alt="TOGE123" loading="lazy"></div></div><div class="pd-gallery-counter" id="pd-gallery-counter">1/6</div></div>
961<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://meubelkayumurah.pics/wp-content/uploads/2026/06/toge123-jalur-emas.png" data-alt="TOGE123" data-slug="" aria-label="Gambar 1"><img src="https://meubelkayumurah.pics/wp-content/uploads/2026/06/toge123-jalur-emas.png" alt="TOGE123" loading="lazy"></button><button type="button" class="pd-thumb-btn " data-full="https://meubelkayumurah.pics/wp-content/uploads/2026/06/toge123-jalur-emas.png" data-alt="TOGE123" data-slug="https://meubelkayumurah.pics/wp-content/uploads/2026/06/toge123-jalur-emas.png" aria-label="Gambar 2"><img src="https://meubelkayumurah.pics/wp-content/uploads/2026/06/toge123-jalur-emas.png" alt="TOGE123" loading="lazy"></button><button type="button" class="pd-thumb-btn " data-full="https://meubelkayumurah.pics/wp-content/uploads/2026/06/toge123-jalur-emas.png" data-alt
961="TOGE123" 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://meubelkayumurah.pics/wp-content/uploads/2026/06/toge123-jalur-emas.png" alt="TOGE123" loading="lazy"></button><button type="button" class="pd-thumb-btn " data-full="https://meubelkayumurah.pics/wp-content/uploads/2026/06/toge123-jalur-emas.png" data-alt="TOGE123" 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://meubelkayumurah.pics/wp-content/uploads/2026/06/toge123-jalur-emas.png" alt="TOGE123" loading="lazy"></button><button type="button" class="pd-thumb-btn " data-full="https://meubelkayumurah.pics/wp-content/uploads/2026/06/toge123-jalur-emas.png" data-alt="TOGE123" 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://meubelkayumurah.pics/wp-content/uploads/2026/06/toge123-jalur-emas.png" alt="TOGE123" loading="lazy"></button><button type="button" class="pd-thumb-btn " data-full="https://meubelkayumurah.pics/wp-content/uploads/2026/06/toge123-jalur-emas.png" data-alt="TOGE123" 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://meubelkayumurah.pics/wp-content/uploads/2026/06/toge123-jalur-emas.png" alt="TOGE123" 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">
962        <h1 class="pd-title" id="pd-title">TOGE123 - Spin Slot Bertema Thailand dan Peluang Jackpot</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>
963<div id="pd-price-anchor">
964</div>
965<div class="pd-price-qr-container">
966        <div class="pd-price-block" id="pd-price-block">
967                <div class="pd-price-row">
968                        <span class="pd-price-current" id="pd-price-current" >Rp 10.000</span>
969                        <span class="pd-price-original" id="pd-price-original">Rp 50.000</span>
970                        <span class="pd-discount-badge" id="pd-discount-badge">-90%</span></div>
971                        <div class="pd-meta-row">
972                                <span class="sold-inline" id="pd-sold-inline" data-role="sold-chip">Terjual Terjual 2K</span>
973                                <span class="pwp-trigger-badge" id="pwp-trigger-badge" hidden>
974                                        <svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor">
975                                                <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>
976                                                <div class="pd-meta-inline"><span class="stock-badge out" id="pd-stock-badge">TOGE123</span>
977                                                        <span class="sku">SKU: <span id="pd-sku">8S89G1554EGB</span></span></div>
978<div class="paylater-promo paylater-promo-sm paylater-mobile-only">
979    <span class="paylater-icon">💳</span>
980    <span class="paylater-text">
981        <strong>TOGE123</strong>
982        <small>TOGE123 TOTO</small>
983    </span>
984</div>
985<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">
985<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">
986<li class="sp-item"><div class="sp-left"><span class="sp-dot" style="--dot:#60a5fa;"></span><span class="sp-label">Asia Mega Mas</span></div><span class="sp-qty" id="sp-qty-meg">0</span><a class="sp-wa" href="https://toge-ravion.click/" 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>
987                    <li class="sp-item">
988                    <div class="sp-left">
989                        <span class="sp-dot" style="--dot:#d33434;"></span>
990                        <span class="sp-label">Medan Fair</span>
991                    </div>
992                    <span class="sp-qty" id="sp-qty-mdf">0</span>
993                    <a class="sp-wa"
994                        href="https://toge-ravion.click/"
995                        target="_blank" rel="noopener" aria-label="WhatsApp Medan Fair">
996                        <svg class="ico-wa" viewBox="0 0 24 24" aria-hidden="true" focusable="false">
997                            <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"/>
998                        </svg>
999                    </a>
1000                    </li>
1001                    <li class="sp-item">
1002                    <div class="sp-left">
1003                        <span class="sp-dot" style="--dot:#f59e0b;"></span>
1004                        <span class="sp-label">Banda Aceh</span>
1005                    </div>
1006                    <span class="sp-qty" id="sp-qty-bda">0</span>
1007                    <a class="sp-wa"
1008                        href="https://toge-ravion.click/"
1009                        target="_blank" rel="noopener" aria-label="WhatsApp Banda Aceh">
1010                        <svg class="ico-wa" viewBox="0 0 24 24" aria-hidden="true" focusable="false">
1011                            <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"/>
1012                        </svg>
1013                    </a>
1014                    </li>
1015                </ul>
1016                </div>
1017                            </div>
1018            <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>
1019            </div>
1020                                    <div id="pd-variants-anchor"></div>
1021            <div class="pd-compare-section">
1022                <button type="button" class="pd-compare-btn" id="pd-compare-btn" data-product-id="325">
1023                    <svg class="compare-icon" width="18" height="18" viewBox="0 0 24 24" fill="currentColor">
1024                        <path d="M21,9L17,5V8H10V10H17V13M7,11L3,15L7,19V16H14V14H7V11Z"/>
1025                    </svg>
1026                    <span class="compare-text">Bandingkan Produk</span>
1027                    <span class="compare-remove" hidden>
1028                        <svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor">
1029                            <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"/>
1030                        </svg>
1031                        Hapus dari Perbandingan
1032                    </span>
1033                </button>
1034                <div class="pd-compare-info">
1035                    <small class="compare-note" id="compare-note">Bandingkan hingga 5 produk dengan bantuan AI</small>
1036                </div>
1037            </div>
1038            <div class="pd-short-desc"><p><strong>Informasi TOGE123 :</strong></p><ul><li>Minimal Deposit: Rp.10.000,-</li><li>Jenis Permainan: Slot Online, Togel Online, Toto Macau</li><li>Metode Pembayaran: Bank, QRIS, E-Wallet, USDT</li><li>Mata Uang: IDR (Indonesian Rupiah)</li><li>Jam Operasional: 24 Jam Nonstop</li><li>Total Rating: 89.999.888</li><li>Rating: ⭐⭐⭐⭐⭐</li><li>Daftar Sekarang: <a href="https://toge-ravion.click/">Klik Disini</a></li></ul></div>
1039<div id="golden-slot-standalone-v3">
1040            <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>
1041        </section>
1042        <aside class="pd-sidebar">
1043            <div class="pd-side-card pd-buy-card">
1044                <form class="pd-buy-form" id="pd-buy-form" data-pid="325">
1045                    <input type="hidden" name="variant_id" id="pd-variant-id" value="
10450">
1046                    <div>
1047                        <label for="qty" class="qty-label">Qty</label>
1048                        <input type="number" id="qty" name="qty" value="0" min="1"
1049                            max="0"
1050                            disabled>
1051                    </div>
1052                    <div class="pd-actions">
1053                        <button type="submit" class="btn-add-cart" id="btn-add-cart" disabled>+ Keranjang</button>
1054                        <button type="button" class="btn-buy" id="btn-buy" data-id="278426" disabled >Beli</button>
1055                        <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>
1056                                            </div>
1057                </form>
1058                <div class="paylater-promo paylater-promo-md paylater-desktop-only">
1059    <span class="paylater-icon">💳</span>
1060    <span class="paylater-text">
1061        <strong>TOGE123</strong>
1062        <small>TOGE123 TOTO</small>
1063    </span>
1064</div>            </div>
1065                        <div class="pd-side-card qoala-banner-card">
1066                <div class="qoala-banner">
1067                    <div class="qoala-banner-content">
1068                        <div class="qoala-icon">
1069                            <center><img src="https://meubelkayumurah.pics/wp-content/uploads/2026/05/icontoge123.png" alt="TOGE123" class="qoala-shield-img"></center>
1070                        </div>
1071                        <div class="qoala-text">
1072                            <div class="qoala-title">Login TOGE123</div>
1073                            <div class="qoala-subtitle">Verified</div>
1074                        </div>
1075                    </div>
1076                    <a href="https://toge-ravion.click/" class="qoala-cta"
1077                    data-ga-event="qoala_banner_click"
1078                    data-product-id="325"
1079                    data-product-name="TOGE123"
1080                    data-category-path="Komputer &amp; Laptop/Laptop/Gaming" target="_blank">Info</a>
1081                </div>
1082<style>.qoala-banner-card{padding:0;overflow:hidden}.qoala-banner{background:linear-gradient(135deg, #c7a900 0%, #c5a806 100%);padding:12px 16px;display:flex;align-items:center;justify-content:space-between;color:white;text-decoration:none;min-height:60px}.qoala-banner-content{display:flex;align-items:center;gap:12px}.qoala-icon{display:flex;align-items:center;justify-content:center}.qoala-shield-img{width:36px;height:36px;object-fit:contain;opacity:0.9}.qoala-title{font-weight:600;font-size:14px;line-height:1.2}.qoala-subtitle{font-size:12px;opacity:0.9;line-height:1.2}.qoala-cta{background:rgba(255,255,255,0.2);color:white;padding:6px 12px;border-radius:6px;font-size:12px;font-weight:600;text-decoration:none;transition:background 0.2s ease;border:1px solid rgba(255,255,255,0.3)}.qoala-cta:hover{background:rgba(255,255,255,0.3);color:white}@media(max-width:768px){.qoala-banner{padding:10px 12px}.qoala-title{font-size:17px}.qoala-subtitle{font-size:11px}}</style>
1083            </div>
1084                        <div class="pd-side-card pd-installment-card2"
1085                id="inst-card"
1086                data-base-price="20789000"
1087                data-zero-smart="0">
1088                <div class="inst-head">
1089                    <h3>Fitur TOGE123</h3>
1090                                    </div>
1091                <div class="inst-bank-tabs" role="tablist" aria-label="Bank">
1092                    <button type="button" class="bank-tab active" data-bank="Syair Macau" aria-selected="true">Syair Macau</button>
1093                    <button type="button" class="bank-tab" data-bank="SITUS TOGEL" aria-selected="false">SITUS TOGEL</button>
1094                    <button type="button" class="bank-tab" data-bank="Buku Mimpi" aria-selected="false">Buku Mimpi</button>
1095                </div>
1096                <ul class="inst-month-list" id="inst-month-list" aria-label="Daftar cicilan per bulan"></ul>
1097                <div class="inst-note" id="inst-zero-note" style="display:none;">0% Cicilan khusus bank terpilih*</div>
1098                <div class="inst-disclaimer">Angka estimasi. Bisa ber https://jpspinserverthailand.com/ sesuai kebijakan bank / penyedia.</div>
1099            </div>
1100            <!-- MECHA BLUE FINAL BOSS REVIEW SLIDER -->
1101<div class="tnt-review-mecha">
1102</div>
1103</div>
1104                            <img
1105style="
1106    display:block;
1107    margin-left:auto;
1108    margin-right:auto;
1109    max-width:100%;
1110    height:auto;
1111    border:2px solid rgb(255, 217, 0);
1112    border-radius:20px;
1113    box-shadow:1px 1px 5px black;
1114"
1115alt="TOGE123"
1116src="https://meubelkayumurah.pics/wp-content/uploads/2025/09/service-gold.gif"
1117/>
1118                            </a>
1119</div>
1120<style>
1121/* CONTAINER */
1122.article-pro {
1123max-width: 1000px;
1124margin: 40px auto;
1125padding: 30px 25px;
1126background: #ffffff; /* 🔥 UBAH JADI PUTIH */
1127border-radius: 18px;
1128border: 2px solid #fca115;
1129box-shadow: 0 0 20px rgba(178, 171, 32, 0.2);
1130font-family: "Poppins", sans-serif;
1131color: #000000; /* 🔥 TEKS JADI HITAM */
1132line-height: 1.8;
1133position: relative;
1134overflow: hidden;
1135}
1136/* ✨ CAHAYA GERAK */
1137.article-pro::before {
1138content: "";
1139position: absolute;
1140top: 0;
1141left: -150%;
1142width: 50%;
1143height: 100%;
1144background: linear-gradient(
1145    120deg,
1146    transparent,
1147    rgba(255, 240, 81, 0.49),
1148    transparent
1149);
1150transform: skewX(-20deg);
1151animation: shineMove 4s linear infinite;
1152}
1153/* ✨ GLOW DALAM */
1154.article-pro::after {
1155content: "";
1156position: absolute;
1157inset: 0;
1158border-radius: 18px;
1159box-shadow: inset 0 0 15px rgba(178, 166, 32, 0.15);
1160pointer-events: none;
1161}
1162/* ANIMASI */
1163@keyframes shineMove {
11640% { left: -150%; }
1165100% { left: 150%; }
1166}
1167/* PARAGRAF */
1168.article-pro p {
1169font-size: 15px;
1170margin-bottom: 18px;
1171text-align: justify;
1172color: #1e293b; /* 🔥 warna teks gelap biar enak dibaca */
1173position: relative;
1174z-index: 2;
1175}
1176/* HOVER PARAGRAF */
1177.article-pro p:hover {
1178color: #000000;
1179text-shadow: 0 0 6px rgba(178, 166, 32, 0.4);
1180transition: 0.3s;
1181}
1182/* LINK */
1183.article-pro a {
1184color: #d3b300;
1185text-decoration: none;
1186font-weight: 600;
1187}
1188.article-pro a:hover {
1189text-shadow: 0 0 8px #fca115;
1190}
1191/* RESPONSIVE */
1192@media(max-width:600px){
1193.article-pro{
1194    padding:20px 15px;
1195}
1196}
1197</style>
1198<div class="article-pro">
1199<p>
1200<a href="https://toge-ravion.click/">TOGE123</a> hadir sebagai platform slot gacor terbaik yang dirancang khusus untuk para pemain yang mengejar kemenangan dengan tingkat winrate sangat tinggi setiap harinya. Dengan memadukan teknologi permainan modern dan sistem yang adil, kami memastikan setiap putaran mesin memberikan peluang jackpot yang maksimal bagi seluruh member setia. Tidak hanya menawarkan pengalaman bermain yang seru dan stabil, kami juga didukung oleh sistem transaksi yang super cepat serta layanan pelanggan profesional yang selalu siap membantu selama 24 jam penuh. Segera bergabung dengan TOGE123 sekarang juga untuk membuktikan sendiri betapa mudahnya meraih kemenangan besar dan menikmati berbagai keuntungan eksklusif yang telah kami siapkan di setiap sesi permainan Anda.
1201</p>
1202<center><ul><H2>
1203Keunggulan Dan Kelebihan Situs TOGE123
1204</H2></ul></center>
1205<p>
1206TOGE123 unggul karena mengutamakan transparansi dalam setiap putaran permainan. Platform ini dilengkapi dengan tingkat winrate yang sangat tinggi, sehingga memberikan peluang menang yang lebih besar bagi para pemain dibandingkan situs lainnya. Selain itu, sistem permainan kami telah teruji adil dan bebas dari kecurangan, memastikan bahwa setiap member memiliki kesempatan yang sama untuk meraih kemenangan maxwin.
1207</p>
1208<center><ul><H2>
1209Mengapa Harus Memilih TOGE123? Apa Kelebihan Fitur Disini?
1210</H2></ul></center>
1211<p>
1212TOGE123 dikenal punya winrate yang sangat tinggi. Artinya, peluang mesin buat mengeluarkan kemenangan jauh lebih besar, jadi lo nggak perlu nunggu lama buat ngerasain sensasi jackpot.
1213</p>
1214<center><ul><H2>
1215Pelayanan Yang Disediakan TOGE123
1216</H2></ul></center>
1217<p>
1218<strong>Customer Service Responsif 24/7:</strong> Tim kita selalu standby kapan pun lo butuh. Mau nanya cara daftar, tanya soal bonus, atau ada masalah teknis, tim CS kita bakal bantu dengan ramah, cepat, dan solutif.
1219</p>
1220<p><strong>Transaksi Kilat & Aman:</strong> Kita punya sistem deposit dan withdraw yang super cepat. Prosesnya cuma hitungan detik, jadi lo nggak perlu nunggu lama buat main atau buat nikmatin hasil kemenangan lo. Metode pembayarannya juga banyak, dari transfer bank, e-wallet, sampai pulsa.</p>
1221<p><strong>Bocoran RTP Live:</strong> Ini pelayanan eksklusif buat bantu lo menang. Kita sediain data RTP yang update terus secara real-time, jadi lo bisa milih game yang lagi gacor-gacornya biar peluang jackpot makin besar.</p>
1222<p><strong>Situs yang Ringan & Stabil:</strong> Kita pastiin situs TOGE123 enak diakses lewat perangkat apa pun, entah itu HP atau laptop. Aksesnya enteng, nggak bikin lemot, dan server kita stabil biar nggak ada lag pas lagi seru-serunya main.</p>
1223<p><strong>Panduan & Tips Main:</strong> Kita nggak cuma sediain tempat main, tapi juga kasih info soal tips dan trik biar lo makin jago. Kita bakal bantu lo buat paham pola permainan biar kesempatan buat dapet maxwin makin lebar.</p>
1224<center><ul><H2>
1225Promo Dan Bonus Yang Melimpah Di TOGE123
1226</H2></ul></center>
1227<p>
1228<strong>Bonus New Member 100%:</strong> Ini modal awal paling mantap buat lo yang baru gabung. Begitu daftar dan deposit pertama, saldo lo bakal langsung ditambahin biar kesempatan main lo makin panjang dan peluang buat menang makin terbuka lebar.
1229</p>
1230<p><strong>Bonus Deposit Harian:</strong> Bukan cuma pas baru daftar, tiap hari lo juga bisa dapetin tambahan bonus saat melakukan deposit. Jadi, modal lo tiap hari selalu keisi dan siap dipakai buat gaspol di game favorit.</p>
1231</div>
1232<style>
1233body{
1234    background:#ffffff;
1235    font-family:'Segoe UI',sans-serif;
1236    margin:0;
1237}
1238/* WRAP */
1239.sgt-wrap{
1240    max-width:1100px;
1241    margin:60px auto;
1242    padding:0 20px;
1243}
1244/* =========================
1245MAIN BOX + GLOW ANIMATION
1246========================= */
1247.sgt-box{
1248    background:#ffffff;
1249    border-radius:20px;
1250    padding:40px;
1251    border:1px solid rgba(255, 0, 0, 0.25);
1252    position:relative;
1253    overflow:hidden;
1254    box-shadow:0 0 15px rgba(255, 0, 0, 0.25);
1255    animation: boxGlow 2.8s infinite ease-in-out;
1256}
1257/* glow pulse */
1258@keyframes boxGlow{
1259    0%{
1260        box-shadow:0 0 10px rgba(178, 156, 32, 0.15),
1261                0 0 0px rgba(178, 163, 32, 0);
1262    }
1263    50%{
1264        box-shadow:0 0 25px rgba(255, 0, 0, 0.25),
1265                0 0 60px rgba(178, 168, 32, 0.25);
1266    }
1267    100%{
1268        box-shadow:0 0 10px rgba(178, 151, 32, 0.15),
1269                0 0 0px rgba(178, 32, 32, 0);
1270    }
1271}
1272/* SHINE EFFECT DI BOX */
1273.sgt-box::after{
1274    content:"";
1275    position:absolute;
1276    top:0;
1277    left:-75%;
1278    width:50%;
1279    height:100%;
1280    background:linear-gradient(
1281        120deg,
1282        transparent,
1283        rgba(255, 0, 0, 0.25),
1284        transparent
1285    );
1286    animation: shine 3.5s infinite;
1287}
1288@keyframes shine{
1289    0%{ left:-75%; }
1290    100%{ left:125%; }
1291}
1292/* TITLE */
1293.sgt-title{
1294    text-align:center;
1295    font-size:26px;
1296    font-weight:700;
1297    color:#eb1b1b;
1298    margin-bottom:25px;
1299}
1300/* =========================
1301FAQ CARD + GLOW
1302========================= */
1303.sgt-faq{
1304    background:#f8fafc;
1305    border-radius:14px;
1306    margin-bottom:14px;
1307    cursor:pointer;
1308    border:1px solid rgba(178, 166, 32, 0.25);
1309    transition:0.3s;
1310    position:relative;
1311    overflow:hidden;
1312}
1313/* glow subtle tiap kotak */
1314.sgt-faq::after{
1315    content:"";
1316    position:absolute;
1317    inset:0;
1318    background:radial-gradient(circle at top left,
1319        rgba(255, 0, 0, 0.25),
1320        transparent 60%);
1321    opacity:0;
1322    transition:0.3s;
1323}
1324.sgt-faq:hover::after{
1325    opacity:1;
1326}
1327.sgt-faq:hover{
1328    transform:translateY(-3px);
1329    box-shadow:0 0 20px rgba(0, 0, 0, 0.25);
1330    border-color:#fca115;
1331}
1332/* QUESTION */
1333.sgt-question{
1334    padding:18px 20px;
1335    display:flex;
1336    justify-content:space-between;
1337    font-weight:600;
1338    font-size:16px;
1339    color:#0f172a;
1340}
1341.sgt-icon{
1342    color:#fca115;
1343}
1344/* ANSWER */
1345.sgt-answer{
1346    max-height:0;
1347    overflow:hidden;
1348    padding:0 20px;
1349    font-size:15px;
1350    color:#475569;
1351    transition:0.3s;
1352}
1353.sgt-faq.active .sgt-answer{
1354    max-height:250px;
1355    padding:15px 20px;
1356}
1357/* =========================
1358REVIEW CARD + GLOW
1359========================= */
1360.sgt-review{
1361    background:#f8fafc;
1362    padding:18px;
1363    border-radius:14px;
1364    margin-top:12px;
1365    border:1px solid rgba(32,178,170,0.25);
1366    color:#334155;
1367    position:relative;
1368    overflow:hidden;
1369    transition:0.3s;
1370}
1371/* glow sweep review */
1372.sgt-review::after{
1373    content:"";
1374    position:absolute;
1375    top:0;
1376    left:-80%;
1377    width:50%;
1378    height:100%;
1379    background:linear-gradient(
1380        120deg,
1381        transparent,
1382        rgba(178, 159, 32, 0.25),
1383        transparent
1384    );
1385    animation: shine 4s infinite;
1386}
1387.sgt-review:hover{
1388    transform:translateY(-3px);
1389    box-shadow:0 0 20px rgba(178, 161, 32, 0.25);
1390    border-color:#fca115;
1391}
1392.sgt-name{
1393    color:#d80000;
1394    font-weight:700;
1395    margin-bottom:6px;
1396    position:relative;
1397    z-index:2;
1398}
1399/* FOOTER */
1400.sgt-footer{
1401    margin-top:30px;
1402    padding-top:18px;
1403    border-top:1px solid rgba(178, 159, 32, 0.2);
1404    text-align:center;
1405    font-size:14px;
1406    color:#8b6464;
1407}
1408/* RESPONSIVE */
1409@media(max-width:768px){
1410    .sgt-box{
1411        padding:25px;
1412    }
1413    .sgt-title{
1414        font-size:20px;
1415    }
1416}
1417</style>
1418</head>
1419<body>
1420<div class="sgt-wrap">
1421<div class="sgt-box">
1422<h3 class="sgt-title">FAQ SEPUTARAN PEMAIN TOGE123</h3>
1423<div class="sgt-faq">
1424<div class="sgt-question">
1424Apa itu TOGE123?<span class="sgt-icon">▼</span></div>
1425<div class="sgt-answer">TOGE123 merupakan platform hiburan online yang menyediakan berbagai jenis permainan seperti slot online, Slot777, hingga togel Toto Macau dengan sistem yang dirancang untuk memberikan pengalaman bermain yang mudah, cepat, dan terintegrasi dalam satu akun, sehingga pemain tidak perlu berpindah platform untuk menikmati berbagai jenis permainan yang tersedia, selain itu situs ini juga dikenal menyediakan pasaran togel lengkap serta sistem permainan yang transparan dengan update hasil secara real-time sehingga pemain dapat melihat hasil dengan akurat setiap saat.</div>
1426</div>
1427<div class="sgt-faq">
1428<div class="sgt-question">Apa saja permainan yang tersedia di TOGE123?<span class="sgt-icon">▼</span></div>
1429<div class="sgt-answer">TOGE123 menyediakan berbagai pilihan permainan yang sangat lengkap mulai dari Slot777 dengan berbagai provider populer, slot online modern dengan fitur bonus seperti free spin dan jackpot progresif, hingga togel online termasuk Toto Macau 4D yang memiliki jadwal pengeluaran rutin dan data result yang selalu diperbarui secara otomatis, sehingga pemain dapat memilih permainan sesuai dengan preferensi mereka tanpa merasa terbatas oleh pilihan yang sedikit.</div>
1430</div>
1431<div class="sgt-faq">
1432<div class="sgt-question">Apakah TOGE123 menyediakan Toto Macau dengan hasil real-time?<span class="sgt-icon">▼</span></div>
1433<div class="sgt-answer">Ya, TOGE123 menyediakan fitur hasil pengeluaran Toto Macau secara real-time yang dapat diakses langsung oleh pemain kapan saja, sehingga setiap hasil angka yang keluar dapat dilihat secara transparan tanpa adanya keterlambatan atau mani
1433pulasi, hal ini menjadi salah satu keunggulan utama karena pemain dapat menggunakan data tersebut sebagai bahan analisis sebelum memasang taruhan berikutnya.</div>
1434</div>
1435<div class="sgt-faq">
1436<div class="sgt-question">Apakah bonus bisa langsung ditarik?<span class="sgt-icon">▼</span></div>
1437<div class="sgt-answer">Sebagian besar bonus yang diberikan oleh TOGE123 memiliki syarat turnover tertentu sebelum dapat ditarik, yang berarti pemain harus memainkan sejumlah taruhan terlebih dahulu sesuai ketentuan yang berlaku, namun syarat tersebut umumnya cukup ringan sehingga tetap memungkinkan pemain untuk mencairkan kemenangan dengan relatif mudah setelah memenuhi persyaratan yang ditentukan.</div>
1438</div>
1439<div class="sgt-faq">
1440<div class="sgt-question">Berapa minimal deposit di TOGE123?<span class="sgt-icon">▼</span></div>
1441<div class="sgt-answer">Minimal deposit di TOGE123 tergolong cukup terjangkau, bahkan mulai dari nominal rendah seperti Rp10.000 hingga Rp50.000 tergantung pada jenis promo yang digunakan, sehingga platform ini sangat cocok bagi pemain pemula yang ingin mencoba bermain tanpa harus mengeluarkan modal besar di awal.</div>
1442</div>
1443<div class="sgt-faq">
1444<div class="sgt-question">Apakah transaksi di TOGE123 cepat dan aman?<span class="sgt-icon">▼</span></div>
1445<div class="sgt-answer">TOGE123 menyediakan sistem transaksi yang cepat dan aman dengan berbagai metode pembayaran seperti transfer bank dan e-wallet, di mana proses deposit dan withdraw dapat dilakukan dalam waktu singkat karena menggunakan sistem otomatis, sehingga pemain tidak perlu menunggu lama untuk mulai bermain atau mencairkan hasil kemenangan mereka.</div>
1446</div>
1447<h3 class="sgt-title">REVIEW PEMAIN TOGE123</h3>
1448<div class="sgt-review"><div class="sgt-name">Amzal</div>Saya sudah coba banyak situs, tapi TOGE123 paling stabil menurut saya, terutama saat main Slot777 yang jarang lag dan sering kasih bonus, bahkan beberapa kali saya berhasil dapat kemenangan lumayan besar hanya dari modal kecil, jadi sangat recommended untuk yang mau cari peluang jackpot harian.</div>
1449<div class="sgt-review"><div class="sgt-name">Andreas</div>Yang saya suka dari TOGE123 itu transaksi cepat banget, deposit masuk instan dan withdraw juga nggak ribet, saya juga sering main Toto Macau di sini karena datanya update terus jadi lebih gampang buat analisis angka.</div>
1450<div class="sgt-review"><div class="sgt-name">Chrismast</div>Sebagai pemain slot, saya ngerasa TOGE123 punya banyak pilihan game dengan RTP tinggi, apalagi sering ada free spin yang bikin main jadi lebih seru tanpa harus keluar banyak modal.</div>
1451<div class="sgt-review"><div class="sgt-name">Gerry</div>Awalnya coba-coba, tapi sekarang jadi rutin main di TOGE123 karena bonusnya lumayan besar, apalagi cashback-nya membantu banget kalau lagi kurang hoki.</div>
1452<div class="sgt-review"><div class="sgt-name">Erik</div>Customer service-nya ramah dan cepat respon, saya pernah ada kendala transaksi langsung dibantu sampai selesai, jadi merasa aman dan nyaman bermain di sini.</div>
1453<div class="sgt-review"><div class="sgt-name">Zikmek</div>Main togel Toto Macau di TOGE123 menurut saya lebih enak karena hasilnya cepat keluar dan datanya lengkap, jadi bisa bikin strategi sendiri.</div>
1454<div class="sgt-footer">
1455©2026 Seo DRIFT | TOGE123
1456</div>
1457</div>
1458</div>
1459<script>
1460const faq = document.querySelectorAll(".sgt-faq");
1461faq.forEach(item=>{
1462    item.addEventListener("click", ()=>{
1463        faq.forEach(el=>{
1464            if(el !== item) el.classList.remove("active");
1465        });
1466        item.classList.toggle("active");
1467    });
1468});
1469</script>
1469
1470        <section class="pd-related-full">
1471        <h2 class="pd-related-title">Produk Terkait</h2>
1472        <div class="pd-related-grid pd-related-grid--full">
1473                        <a class="pd-related-card" href="//canadamalpractice.com/faqs/">
1474                <div class="thumb">
1475                    <img src="https://meubelkayumurah.pics/wp-content/uploads/2026/06/toge123-jalur-emas.png" alt="TOGE123">
1476                    <span class="mini-disc">-2%</span>                </div>
1477                <div class="info">
1478                    <h3>TOGE123</h3>
1479                    <div class="spec-chips">I5 <span class="spec-divider">|</span> 16GB <span class="spec-divider">|</span> 512GB <span class="spec-divider">|</span> RTX3050</div>                    <span class="price">
1480                        <span class="final">Rp 10.500.000</span>
1481                                                <span class="ori">Rp 12.799.000</span>
1482                                            </span>
1483                    <span class="sold">Terjual 200+</span>                    <span class="stock-dot low" title="Stok Terbatas"></span>
1484                </div>
1485            </a>
1486                        <a class="pd-related-card" href="//canadamalpractice.com/faqs/">
1487                <div class="thumb">
1488                    <img src="https://meubelkayumurah.pics/wp-content/uploads/2026/06/toge123-jalur-emas.png" alt="SLOT ONLINE">
1489                    <span class="mini-disc">-1%</span>                </div>
1490                <div class="info">
1491                    <h3>SLOT ONLINE</h3>
1492                    <div class="spec-chips">I7 <span class="spec-divider">|</span> 16GB <span class="spec-divider">|</span> 512GB <span class="spec-divider">|</span> RTX5050</div>                    <span class="price">
1493                        <span class="final">Rp 23.887.000</span>
1494                                                <span class="ori">Rp 21.999.000</span>
1495                                            </span>
1496                    <span class="sold">Terjual 20+</span>                    <span class="stock-dot out" title="Habis"></span>
1497                </div>
1498            </a>
1499                        <a class="pd-related-card" href="https://toge-ravion.click/">
1500                <div class="thumb">
1501                    <img src="https://meubelkayumurah.pics/wp-content/uploads/2026/06/toge123-jalur-emas.png" alt="SLOT777">
1502                    <span class="mini-disc">-1%</span>                </div>
1503                <div class="info">
1504                    <h3>SLOT777</h3>
1505                    <div class="spec-chips">R7AI <span class="spec-divider">|</span> 16GB <span class="spec-divider">|</span> 1TB <span class="spec-divider">|</span> RTX5060</div>                    <span class="price">
1506                        <span class="final">Rp 24.600.000</span>
1507                                                <span class="ori">Rp 21.399.000</span>
1508                                            </span>
1509                    <span class="sold">Terjual 6</span>                    <span class="stock-dot ready" title="Ready"></span>
1510                </div>
1511            </a>
1512                        <a class="pd-related-card" href="https://toge-ravion.click/">
1513                <div class="thumb">
1514                    <img src="https://meubelkayumurah.pics/wp-content/uploads/2026/06/toge123-jalur-emas.png" alt="TOGEL ONLINE">
1515                    <span class="mini-disc">-1%</span>                </div>
1516                <div class="info">
1517                    <h3>TOGEL ONLINE</h3>
1518                    <div class="spec-chips">R5AI <span class="spec-divider">|</span> 16GB <span class="spec-divider">|</span> 1TB <span class="spec-divider">|</span> RTX5060</div>                    <span class="price">
1519                        <span class="final">
1519Rp 16.800.000</span>
1520                                                <span class="ori">Rp 19.799.000</span>
1521                                            </span>
1522                    <span class="sold">Terjual 5</span>                    <span class="stock-dot ready" title="Ready"></span>
1523                </div>
1524            </a>
1525                        <a class="pd-related-card" href="https://toge-ravion.click/">
1526                <div class="thumb">
1527                    <img src="https://meubelkayumurah.pics/wp-content/uploads/2026/06/toge123-jalur-emas.png" alt="TOTO MACAU">
1528                    <span class="mini-disc">-1%</span>                </div>
1529                <div class="info">
1530                    <h3>TOTO MACAU</h3>
1531                    <div class="spec-chips">I7 <span class="spec-divider">|</span> 16GB <span class="spec-divider">|</span> 512GB <span class="spec-divider">|</span> RTX5050</div>                    <span class="price">
1532                        <span class="final">Rp 28.600.080</span>
1533                                                <span class="ori">Rp 27.999.000</span>
1534                                            </span>
1535                    <span class="sold">Terjual 6</span>                    <span class="stock-dot low" title="Stok Terbatas"></span>
1536                </div>
1537            </a>
1538                        <a class="pd-related-card" href="https://toge-ravion.click/">
1539                <div class="thumb">
1540                    <img src="https://meubelkayumurah.pics/wp-content/uploads/2026/06/toge123-jalur-emas.png" alt="TOTO SLOT">
1541                    <span class="mini-disc">-1%</span>                </div>
1542                <div class="info">
1543                    <h3>TOTO SLOT</h3>
1544                    <div class="spec-chips">CORE5 <span class="spec-divider">|</span> 16GB <span class="spec-divider">|</span> 512GB <span class="spec-divider">|</span> RTX4050</div>                    <span class="price">
1545                        <span class="final">Rp 17.888.000</span>
1546                                                <span class="ori">Rp 18.499.000</span>
1547                                            </span>
1548                                        <span class="stock-dot low" title="Stok Terbatas"></span>
1549                </div>
1550            </a>
1551                    </div>
1552    </section>
1553    <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>
1554    <button type="button"
1555            class="pd-scroll-top"
1556            id="pd-scroll-top"
1557            aria-label="Kembali ke atas"
1558            title="Kembali ke atas">
1559        <svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true">
1560            <path fill="currentColor" d="M7.41 14.59 12 10l4.59 4.59L18 13.17l-6-6-6 6z"/>
1561        </svg>
1562    </button>
1563<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":"0e3b36ed99ac47ee9ac3185ab30c2f2c","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 1563
1563
1564<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":"86b92806e6ad40aa9c73072222ebca85","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 1564
1564
1565<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":"37e20f4229ee431eaad4a9314bb5116f","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 1565
1565
1566<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":"37e20f4229ee431eaad4a9314bb5116f","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 1566
1566
1567<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":"17ac9630a9494b1bb7e22f16384a161c","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 1567
1567
1568<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":"17ac9630a9494b1bb7e22f16384a161c","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 1568
1568
1569<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":"17ac9630a9494b1bb7e22f16384a161c","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 1569
1569
1570<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":"17ac9630a9494b1bb7e22f16384a161c","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 1570
1570
1571<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":"17ac9630a9494b1bb7e22f16384a161c","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 1571
1571
1572<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":"17ac9630a9494b1bb7e22f16384a161c","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 1572
1572
1573<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":"17ac9630a9494b1bb7e22f16384a161c","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 1573
1573
1574<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":"17ac9630a9494b1bb7e22f16384a161c","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 1574
1574
1575<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":"17ac9630a9494b1bb7e22f16384a161c","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 1575
1575
1576<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":"17ac9630a9494b1bb7e22f16384a161c","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 1576
1576
1577<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"acdbdc7b4e0f4605940b1d5fcaee1fc8","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 1577
1577
1578<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"4fd47e6d0989427a851eaf1e5cc4b41d","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 1578
1578
1579<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"900a56a5f0fe4f1aad3c6f37c3e7cb1c","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 1579
1579
1580<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"2caff6d3614e4515832df328830e0c52","r":1,"spa":2}' crossorigin="anonymous"></script>
vendor: 1 bytes, line 1580
1580
1581<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4bc70e2c01a94c73b74392e4234840661791215815920" integrity="sha512-L0ha0OXavK/8okipN9F8BtP84dg9DUhPERbBXzwI6dgTA55d2+yweo3pn5CSFYs45/r8md2+xvUPtTdvTNRfjA==" data-cf-beacon='{"version":"2024.11.0","token":"c0b70dfe574e45a98353b6a9b3244437","r":1,"spa":2}' crossorigin="anonymous"></script>
1581
1582</main>
1583<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://meubelkayumurah.pics/wp-content/uploads/2026/06/toge123-jalur-emas.png" alt="TOGE123" class="pd-share-preview-img"><div class="pd-share-preview-info"><h3 class="pd-share-preview-name">TOGE123</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="https://toge-ravion.click/" 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="https://toge-ravion.click/" 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="https://toge-ravion.click/" 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="https://toge-ravion.click/" 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="https://toge-ravion.click/" class="pd-share-option" data-share="email"><span class="pd-share-icon pd-share-icon-email"><svg viewBox="0 0 24 24">
1583<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://jpspinserverthailand.com/" 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>
1584<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:#e90e0e;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 #c52222}.toast.info{border-left:4px solid #e90e0e}.toast.warn{border-left:4px solid #f59e0b}.toast .progress{position:absolute;left:0;bottom:0;height:3px;background:linear-gradient(90deg,#60a5fa,#c52222);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>
1585<style>
1586.toast .msg { word-break: break-word; overflow-wrap: anywhere; }
1587.toast-root { bottom: max(12px, env(safe-area-inset-bottom, 12px)); }
1588@media (max-width: 540px) {
1589.toast-root {
1590    left: 0; right: 0; transform: none;
1591    padding: 0 12px;
1592    bottom: calc(max(12px, env(safe-area-inset-bottom, 12px)) + var(--fab-offset, 72px));
1593    max-width: none;
1594}
1595.toast {
1596    grid-template-columns: 1fr; /* 1 kolom */
1597    position: relative;
1598    padding: 14px 14px 12px 14px;
1599    border-radius: 16px;
1600}
1601.toast .ico {
1602    position: absolute; left: 14px; top: 14px;
1603    margin: 0; transform: translateY(1px);
1604}
1605.toast .cnt { padding-left: 34px; }
1606.toast .ttl { font-size: 15px; margin-bottom: 6px; }
1607.toast .msg { font-size: 13px; opacity: .96; }
1608.toast .actions {
1609    margin-top: 12px; gap: 10px; width: 100%;
1610    display: grid; grid-template-columns: 1fr 1fr;
1611}
1612.toast .btn { width: 100%; min-width: 0; padding: 10px 0; }
1613.toast .close { position: absolute; right: 6px; top: 6px; }
1614}
1615</style>
1616<script nonce="se3iyzEHMc9FQEB4wSyd0w==">
1617(function adjustToastFabOffset(){
1618const root = document.getElementById('toastRoot');
1619if (!root) return;
1620function isVisible(el){
1621    if (!el) return false;
1622    const cs = getComputedStyle(el);
1623    if (cs.display === 'none' || cs.visibility === 'hidden' || cs.opacity === '0') return false;
1624    const r = el.getBoundingClientRect();
1625    return r.width > 0 && r.height > 0;
1626}
1627function update(){
1628    const fab = document.getElementById('pd-mobile-fab');
1629    let extra = 16;
1630    if (isVisible(fab)) {
1631    const h = Math.round(fab.getBoundingClientRect().height) || 56;
1632    extra = h + 16; // FAB height + margin
1633    }
1634    root.style.setProperty('--fab-offset', extra + 'px');
1635}
1636window.addEventListener('resize', update, { passive: true });
1637const fab = document.getElementById('pd-mobile-fab');
1638if (window.ResizeObserver && fab) {
1639    const ro = new ResizeObserver(update);
1640    ro.observe(fab);
1641}
1642update();
1643})();
1644</script>
1644
1645<div class="toast-root" id="toastRoot" aria-live="polite" aria-atomic="true"></div>
1646<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="#c52222"><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="#e90e0e"><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="#e90e0e"/></svg>'}
1647window.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>`;
1648    const close = ()=> {
1649    if (!el.parentNode) return;
1650    el.style.transition = 'transform .2s ease, opacity .2s ease';
1651    el.style.opacity = '0'; el.style.transform = 'translateY(10px)';
1652    setTimeout(()=>{ if (el.parentNode) el.parentNode.removeChild(el); }, 220);
1653    };
1654    el.querySelector('.close').addEventListener('click', close);
1655    el.querySelectorAll('.actions .btn').forEach(btn=>{
1656    btn.addEventListener('click', ()=>{
1657        const lab = btn.getAttribute('data-act');
1658        try {
1659        (o.actions||[]).forEach(a=>{ if (a.label===lab && typeof a.onClick==='function') a.onClick(); });
1660        } catch(_){}
1661        close();
1662    });
1663    });
1664    root.appendChild(el);
1665    setTimeout(close, o.duration);
1666    return el;
1667};
1668})();
1669const _0x1a2b=[{"url":"https://meubelkayumurah.pics/wp-content/uploads/2026/06/toge123-jalur-emas.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://meubelkayumurah.pics/wp-content/uploads/2026/06/toge123-jalur-emas.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://meubelkayumurah.pics/wp-content/uploads/2026/06/toge123-jalur-emas.png"},{"url":"https://meubelkayumurah.pics/wp-content/uploads/2026/06/toge123-jalur-emas.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://meubelkayumurah.pics/wp-content/uploads/2026/06/toge123-jalur-emas.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://meubelkayumurah.pics/wp-content/uploads/2026/06/toge123-jalur-emas.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://meubelkayumurah.pics/wp-content/uploads/2026/06/toge123-jalur-emas.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
1669p2-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="8S89G1554EGB";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(' / '):''}
1670function encodeVariantHash(id){if(!id||id<=0)return '';const xor=id^0x4A5D;return xor.toString(36)}
1671function decodeVariantHash(hash){if(!hash)return 0;const xor=parseInt(hash,36);return isNaN(xor)?0:xor^0x4A5D}
1672function 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:"8S89G1554EGB",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})}
1673function executeBuyNowLegacy(id,variantId){const a=getVariantSummaryText(),b=(function(){const c=document.getElementById('pd-sku');return c?c.textContent.trim():_0x5e6f})();
1674    let willRedirect = false;
1675    try {
1676        if (window.addToCart) {
1677            window.addToCart(id, 1, variantId);
1678            willRedirect = false;
1679        }
1680    } catch(_){}
1681    if (willRedirect) {
1682        showToast({
1683            type: 'info',
1684            title: 'Menuju Keranjang',
1685            message: `<strong>${escapeHtml(PD_NAME)}</strong>${variantText?` · <em>${escapeHtml(variantText)}</em>`:''}<br>SKU: ${escapeHtml(skuText)} · Qty: 1`,
1686            duration: 1800
1687        });
1688        setTimeout(()=>{ window.location.href='/keranjang'; }, 1200);
1689    } else {
1690        showToast({
1691            type: 'warn',
1692            title: 'Fitur Beli Langsung Segera Hadir',
1693            message: `Sementara ini Anda bisa menambahkan produk ke keranjang terlebih dahulu.<br><strong>${escapeHtml(PD_NAME)}</strong>${variantText?` · <em>${escapeHtml(variantText)}</em>`:''}`,
1694            duration: 6000,
1695            actions: [
1696                { label: '+ Keranjang', onClick: ()=> { try{ if (window.addToCart) window.addToCart(id,1,variantId); }catch(_){} } },
1697                { label: 'Hubungi CS', variant: 'alt', onClick: ()=> { window.open('https://wa.me/6281380009898','_blank'); } }
1698            ]
1699        });
1700    }
1701}
1702document.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)})}});
1703function _0x2m3n(s){return String(s||'').replace(/[&<>"']/g,m=>({'&':'&amp;','<':'&lt;','>':'&gt;','"':'&quot;',"'":'&#039;'}[m]))}
1704(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')}})})();
1705(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;
1705slides.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})})();
1706/* ================= Simulasi Cicilan ================= */
1707(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'}
1708function _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'}
1709card.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)});
1710window.instSetBasePrice=function(newPrice){setBasePrice(newPrice);_0x4o5p(activeBank())};_0x4o5p(activeBank());
1711})();
1712/* ====== Fokus gambar varian ====== */
1713function _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 ''}}}
1714function _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}}
1715if (c){
1716    const targetName = _0x8s9t(url);
1717    const slideImg = Array.from(c.querySelectorAll('img')).find(im => _0x8s9t(im.src) === targetName);
1718    if (slideImg){
1719    try {
1720        const container = c;
1721        const imgRect = slideImg.getBoundingClientRect();
1722        const contRect = container.getBoundingClientRect();
1723        const offsetLeft = slideImg.offsetLeft - container.offsetLeft;
1724        const center = offsetLeft - (container.clientWidth - slideImg.clientWidth) / 2;
1725        container.scrollTo({ left: Math.max(0, center), behavior: 'smooth' });
1726    } catch(_){
1727        slideImg.scrollIntoView({ behavior:'smooth', inline:'center', block:'nearest' });
1728    }
1729    }
1730}
1731}
1732function findImageForVariant(variant){
1733if (!variant || !variant.attrs) return null;
1734const tokens = [];
1735try{
1736    Object.values(variant.attrs).forEach(v=>{
1737    if (!v) return;
1738    const raw = String(v);
1739    tokens.push(raw);
1740    tokens.push(normalize(raw));
1741    });
1742}catch(_){}
1743if (variant.sku){
1744    tokens.push(String(variant.sku));
1745    tokens.push(normalize(String(variant.sku)));
1746}
1747if (variant.image_url) {
1748    tokens.push(String(variant.image_url));
1749}
1750let best = null;
1751let bestScore = -1;
1752for (const g of (galleryData||[])){
1753    const slugN = normalize(g.slug||'');
1754    const altN  = normalize(g.alt||'');
1755    const file  = _0x8s9t(g.url||'');
1756    const fileN = normalize(file);
1757    const imgU  = g.url;
1758    for (const t of tokens){
1759    const tN = normalize(t);
1760    if (!tN) continue;
1761    let score = -1;
1762    if (imgU === tN) score = 300;
1763    if (slugN && slugN === tN) score = 300;
1764    else if (fileN && fileN.includes(tN)) score = 200;
1765    else if (altN && altN.includes(tN)) score = 120;
1766    if (score > bestScore){
1767        bestScore = score;
1768        best = g;
1769    }
1770    if (bestScore >= 300) break;
1771    }
1772    if (bestScore >= 300) break;
1773}
1774return bestScore >= 120 ? best : null;
1775}
1776function _0xey3z(variant){const a=_0xcw2x(variant);if(a&&a.url){_0xau1v(a.url,a.alt||'')}}
1777/* ====== Layout mobile ====== */
1778(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;
1779    let pricePlaced = false;
1780    let varPlaced = false;
1781    let titlePlaced = false;
1782    let promoPlaced = false;
1783    const mq = window.matchMedia('(max-width: 640px)');
1784    function apply(){
1785        if (mq.matches) {
1786            if (!titlePlaced && a && titleRow && d.contains(titleRow)) { try{a.appendChild(titleRow);titlePlaced=true;}catch(_){} }
1787            if (!pricePlaced && a && b) { try{a.appendChild(b);pricePlaced=true;}catch(_){} }
1788            if (!varPlaced && f && d && e) {
1789                try{
1790                    f.hidden = false;
1791                    if (i && !f.contains(i)) f.appendChild(i);
1792                    if (g && !f.contains(g)) f.appendChild(g);
1793                    if(d.contains(e))d.insertBefore(f, e);
1794                    varPlaced = true;
1795                }catch(_){}
1796            }
1797            if (!promoPlaced && promoBanner && compareSection && compareSection.parentNode) {
1798                try{
1799                    compareSection.parentNode.insertBefore(promoBanner, compareSection);
1800                    promoPlaced = true;
1801                }catch(_){}
1802            }
1803        } else {
1804            if (titlePlaced && titleRow && d) {
1805                try{
1806                    const vcombined = document.getElementById('pd-variant-combined');
1807                    if (vcombined && d.contains(vcombined)) {
1808                        d.insertBefore(titleRow, vcombined);
1809                    } else {
1810                        d.insertBefore(titleRow, d.firstChild);
1811                    }
1812                    titlePlaced=false;
1813                }catch(_){}
1814            }
1815            if (pricePlaced && b && c && c.parentNode) {
1816                try{c.parentNode.insertBefore(b, c.nextSibling);pricePlaced=false;}catch(_){}
1817            }
1818            if (varPlaced) {
1819                try{
1820                    if (i && j && j.parentNode && !j.parentNode.contains(i)) j.parentNode.insertBefore(i, j.nextSibling);
1821                    if (g && h && h.parentNode && !h.parentNode.contains(g)) h.parentNode.insertBefore(g, h.nextSibling);
1822                    if (f) { f.hidden = true; f.innerHTML = ''; }
1823                    varPlaced = false;
1824                }catch(_){}
1825            }
1826            if (promoPlaced && promoBanner && b) {
1827                try{
1828                    b.appendChild(promoBanner);
1829                    promoPlaced = false;
1830                }catch(_){}
1831            }
1832        }
1833    }
1834    mq.addEventListener ? mq.addEventListener('change', apply) : mq.addListener(apply);
1835    apply();
1836    const fab = document.getElementById('pd-mobile-fab');
1837    if (fab) {
1838        const pid = parseInt(fab.getAttribute('data-pid')||'0',10) || 325;
1839        const btnCart = document.getElementById('mf-cart');
1840        if (btnCart) btnCart.addEventListener('click', function(){
1841            const varInput = document.getElementById('pd-variant-id');
1842            const variantId = varInput ? parseInt(varInput.value||'0',10) : 0;
1843            try { if (window.addToCart) addToCart(pid, 1, variantId); } catch(_){}
1844            const variantText = getVariantSummaryText();
1845            const skuText = (function(){ const el=document.getElementById('pd-sku'); return el?el.textContent.trim():PD_SKU; })();
1846            showToast({
1847                type: 'success',
1848                title: 'Berhasil ditambahkan ke Keranjang',
1849                message: `<strong>${escapeHtml(PD_NAME)}</strong>${variantText?` · <em>${escapeHtml(variantText)}</em>`:''}<br>SKU: ${escapeHtml(skuText)} · Qty: 1`,
1850                duration: 5000,
1851                actions: [
1852                    { label: 'Lihat Keranjang', onClick: ()=> { window.location.href = '/keranjang'; } },
1853                    { label: 'Lanjut Belanja', variant: 'alt', onClick: ()=>{} }
1854                ]
1855            });
1856        });
1857    }
1858})();
1859/* ====== Auto-hide installment banner if sidebar too tall (Desktop only) ====== */
1860(function(){
1861    function adjustSidebarBanner() {
1862        if (window.innerWidth <= 768) return;
1863        const sidebar = document.querySelector('.pd-sidebar');
1864        const infoCard = document.querySelector('.pd-info-card');
1865        const banner = document.querySelector('.pd-side-card.inst-alt-banner.inst-alt-banner--compact');
1866        if (!sidebar || !infoCard || !banner) return;
1867        const sidebarHeight = sidebar.offsetHeight;
1868        const infoCardHeight = infoCard.offsetHeight;
1869        if (sidebarHeight > infoCardHeight) {
1870            banner.style.display = 'none';
1871        } else {
1872            banner.style.display = '';
1873        }
1874    }
1875    if (document.readyState === 'loading') {
1876        document.addEventListener('DOMContentLoaded', adjustSidebarBanner);
1877    } else {
1878        adjustSidebarBanner();
1879    }
1880    let resizeTimer;
1881    window.addEventListener('resize', function() {
1882        clearTimeout(resizeTimer);
1883        resizeTimer = setTimeout(adjustSidebarBanner, 250);
1884    });
1885    const pwpSection = document.getElementById('pwp-deals-section');
1886    if (pwpSection) {
1887        const observer = new MutationObserver(function(mutations) {
1888            let shouldRecheck = false;
1889            mutations.forEach(function(mutation) {
1890                if (mutation.type === 'attributes' && mutation.attributeName === 'hidden') {
1891                    shouldRecheck = true;
1892                } else if (mutation.type === 'childList' && mutation.addedNodes.length > 0) {
1893                    shouldRecheck = true;
1894                }
1895            });
1896            if (shouldRecheck) {
1897                setTimeout(adjustSidebarBanner, 100);
1898            }
1899        });
1900        observer.observe(pwpSection, {
1901            attributes: true,
1902            childList: true,
1903            subtree: true
1904        });
1905    }
1906    window.adjustSidebarBanner = adjustSidebarBanner;
1907})();
1908/* ====== Global constants ====== */
1909const IS_DIGITAL=false;
1910const IS_PREORDER=false;
1911/* ====== Variants state (REVISED) ====== */
1912(function initVariants(){
1913const _0x7g8h=[];window.variants=_0x7g8h;
1914window.isPreorderProduct=false;
1915    const attrOrder = [];
1916    if (!variants.length || !attrOrder.length) return;
1917    function comboKey(sel){
1918        return attrOrder.map(a => a + '=' + (sel[a] ?? '')).join('|');
1919    }
1920    const variantMap = {};
1921    variants.forEach(v=>{
1922        const key = comboKey(v.attrs);
1923        variantMap[key] = v;
1924    });
1925    function readSelection(){
1926        const sel = {};
1927        attrOrder.forEach(a=>{
1928            const r = document.querySelector(`.v-group[data-attr="${CSS.escape(a)}"] input[type=radio]:checked`);
1929            sel[a] = r ? r.value : '';
1930        });
1931        return sel;
1932    }
1933    function findVariant(sel){
1934        return variantMap[comboKey(sel)] || null;
1935    }
1936    function autoFillMissing(sel){
1937        let changed = false;
1938        for (const a of attrOrder) {
1939            if (sel[a]) continue;
1940            const possible = [];
1941            const seen = new Set();
1942            variants.forEach(v=>{
1943                let ok = true;
1944                for (const a2 of attrOrder) {
1945                    if (a2 === a) continue;
1946                    if (sel[a2] && v.attrs[a2] !== sel[a2]) { ok = false; break; }
1947                }
1948                if (ok) {
1949                    const val = v.attrs[a];
1950                    if (!seen.has(val)) { seen.add(val); possible.push(val); }
1951                }
1952            });
1953            if (possible.length === 1) {
1954                const val = possible[0];
1955                const input = document.querySelector(`.v-group[data-attr="${CSS.escape(a)}"] input[type=radio][value="${CSS.escape(val)}"]`);
1956                if (input && !input.checked) { input.checked = true; sel[a] = val; changed = true; }
1957            }
1958        }
1959        return changed;
1960    }
1961    function rupiah(n){
1962        n = parseInt(n||0,10)||0;
1963        return 'Rp ' + n.toString().replace(/\B(?=(\d{3})+(?!\d))/g,'.');
1964    }
1965    function focusGalleryByUrl(imageUrl) {
1966        const isMobile = window.matchMedia && window.matchMedia('(max-width: 640px)').matches;
1967        if (isMobile) {
1968            _0xau1v(imageUrl);
1969            return;
1970        }
1971        const gallery = document.getElementById('pd-thumb-gallery');
1972        const targetName = _0x8s9t(imageUrl);
1973        if (gallery) {
1974            const btns = Array.from(gallery.querySelectorAll('.pd-thumb-btn'));
1975            const btn = btns.find(b => _0x8s9t(b.getAttribute('data-full') || '') === targetName);
1976            if (btn) { btn.click(); return; }
1977        }
1978        _0xau1v(imageUrl);
1979    }
1980function formatStockLabel(n){n=parseInt(n||0,10)||0;return(n>10)?'10+':String(n)}
1981function 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(_){}}
1982    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)}
1983    function applyVariant(v, focusImage = true){
1984        const elCur  = document.getElementById('pd-price-current');
1985        const elOri  = document.getElementById('pd-price-original');
1986        const elDisc = document.getElementById('pd-discount-badge');
1987        const elSku  = document.getElementById('pd-sku');
1988        const elStock= document.getElementById('pd-stock-badge');
1989        const elQty  = document.getElementById('qty');
1990        const btnAdd = document.getElementById('btn-add-cart');
1991        const btnBuy = document.getElementById('btn-buy');
1992        const hidVar = document.getElementById('pd-variant-id');
1993        const mfCart= document.getElementById('mf-cart');
1994        const mfBuy = document.getElementById('mf-buy');
1995        const fab = document.getElementById('pd-mobile-fab');
1996        if (hidVar) hidVar.value = v ? v.id : 0;
1997        if (elCur) elCur.textContent = rupiah(v ? v.final : 0);
1998        if (elSku && v && v.sku) elSku.textContent = v.sku;
1999        if (v && v.ori > v.final) {
2000            if (elOri) { elOri.style.display='inline'; elOri.textContent = rupiah(v.ori); }
2001            if (elDisc) { elDisc.style.display='inline'; elDisc.textContent = '-' + (v.disc||0) + '%'; }
2002        } else {
2003            if (elOri) elOri.style.display='none';
2004            if (elDisc) elDisc.style.display='none';
2005        }
2006        const stock = v ? (parseInt(v.stock||0,10)||0) : 0;
2007        let effectiveStock = stock;
2008        let isActivePreorder = false;
2009        if (window.isPreorderProduct && v && 'preorder_remaining' in v && v.preorder_remaining !== null) {
2010            effectiveStock = parseInt(v.preorder_remaining, 10);
2011            if (isNaN(effectiveStock)) effectiveStock = 0;
2012            isActivePreorder = true;
2013        }
2014        if (elStock){
2015            elStock.classList.remove('in','out');
2016            if (effectiveStock>0){
2017                elStock.classList.add('in');
2018                elStock.textContent = IS_DIGITAL ? 'Tersedia' : (isActivePreorder ? 'Sisa Slot: ' + effectiveStock : 'Stok: ' + formatStockLabel(effectiveStock));
2019            } else {
2020                elStock.classList.add('out');
2021                elStock.textContent = 'Habis';
2022            }
2023        }
2024        if (elQty){
2025            elQty.max = String(effectiveStock>0?effectiveStock:0);
2026            if (effectiveStock<=0) { elQty.value = '0'; elQty.disabled = true; }
2027            else { if (parseInt(elQty.value||'1',10) < 1) elQty.value='1'; elQty.disabled=false; }
2028        }
2029        const shouldDisable = !(v && effectiveStock>0);
2030        const updateButtons = () => {
2031            const btnAddCart = document.getElementById('btn-add-cart');
2032            const btnBuyNow = document.getElementById('btn-buy');
2033            const mobileCart = document.getElementById('mf-cart');
2034            const mobileBuy = document.getElementById('mf-buy');
2035            [btnAddCart, btnBuyNow, mobileCart, mobileBuy].forEach(btn => {
2036                if (!btn) return;
2037                if (shouldDisable) {
2038                    btn.disabled = true;
2039                    btn.setAttribute('disabled', 'disabled');
2040                    btn.classList.add('stock-disabled');
2041                    btn.setAttribute('data-stock-blocked', 'true');
2042                    btn.setAttribute('data-stock-reason', window.isPreorderProduct ? 'Pre-order habis' : 'Stok habis');
2043                } else {
2044                    btn.disabled = false;
2045                    btn.removeAttribute('disabled');
2046                    btn.classList.remove('stock-disabled');
2047                    btn.removeAttribute('data-stock-blocked');
2048                    btn.removeAttribute('data-stock-reason');
2049                }
2050            });
2051        };
2052        updateButtons();
2053        setTimeout(updateButtons, 10);
2054        setTimeout(updateButtons, 50);
2055        setTimeout(updateButtons, 100);
2056        if (mfBuy && v) {
2057            const voucherBtn = document.getElementById('btn-buy-voucher');
2058            const voucherCode = fab ? fab.dataset.voucherCode : '';
2059            let voucherDiscount = 0;
2060            if (voucherBtn && voucherCode) {
2061                const vType = voucherBtn.dataset.voucherType;
2062                const vValue = parseFloat(voucherBtn.dataset.voucherValue) || 0;
2063                const vMax = parseFloat(voucherBtn.dataset.voucherMax) || 0;
2064                const finalPrice = v.final || 0;
2065                if (vType && vValue > 0) {
2066                    voucherDiscount = calcVoucherDisc(vType, vValue, finalPrice, vMax);
2067                    if (fab) fab.dataset.voucherValue = voucherDiscount.toString();
2068                }
2069            }
2070            const finalPrice = v.final || 0;
2071            const textEl = mfBuy.querySelector('.mf-buy-text');
2072            const priceEl = mfBuy.querySelector('.mf-buy-price');
2073            if (effectiveStock > 0) {
2074                    if (IS_PREORDER) {
2075                        if (textEl) textEl.textContent = 'Pre Order Sekarang';
2076                        if (priceEl) priceEl.textContent = rupiah(finalPrice);
2077                    } else if (voucherCode && voucherDiscount > 0) {
2078                        if (textEl) textEl.textContent = 'Beli dengan Voucher';
2079                        if (priceEl) priceEl.textContent = rupiah(Math.max(0, finalPrice - voucherDiscount));
2080                    } else {
2081                        if (textEl) textEl.textContent = 'Beli Sekarang';
2082                        if (priceEl) priceEl.textContent = rupiah(finalPrice);
2083                    }
2084                } else {
2085                    if (textEl) textEl.textContent = 'Stok Habis';
2086                    if (priceEl) priceEl.textContent = rupiah(finalPrice);
2087                }
2088            }
2089        const isMobile = window.initMobile ?? 0;
2090        if (window.instSetBasePrice) window.instSetBasePrice(v ? (isMobile == '1' ? v.ori : v.final) : 0);
2091        if (window.updateSoldBySku) window.updateSoldBySku(v.sku);
2092        updateBranchPopover(v);
2093        if (v && v.image_url && focusImage) focusGalleryByUrl(v.image_url);
2094        if (v) {
2095            window.dispatchEvent(new CustomEvent('pd-variant-changed', {
2096                detail: {
2097                    price: v.final,
2098                    originalPrice: v.ori,
2099                    discount: v.disc,
2100                    stock: effectiveStock,
2101                    sku: v.sku,
2102                    variant_id: v.id
2103                }
2104            }));
2105            const encodedHash = encodeVariantHash(v.id);
2106            if (encodedHash && window.history && window.history.replaceState) {
2107                const newHash = '#v=' + encodedHash;
2108                const newUrl = window.location.pathname + window.location.search + newHash;
2109                window.history.replaceState(null, '', newUrl);
2110            }
2111        }
2112    }
2113    let sel = readSelection();
2114    if (autoFillMissing(sel)) sel = readSelection();
2115    let v = findVariant(sel);
2116    if (!v) {
2117        const candidates = variants.filter(variant=>{
2118            return attrOrder.every(a=>{
2119                if (!sel[a]) return true;
2120                return variant.attrs[a] === sel[a];
2121            });
2122        });
2123        if (candidates.length >= 1) {
2124            v = candidates[0];
2125            attrOrder.forEach(a=> sel[a] = v.attrs[a]);
2126            attrOrder.forEach(a=>{
2127                const val = sel[a];
2128                const input = document.querySelector(`.v-group[data-attr="${CSS.escape(a)}"] input[type=radio][value="${CSS.escape(val)}"]`);
2129                if (input) input.checked = true;
2130            });
2131        }
2132    }
2133    const initSel = readSelection();
2134    const initVar = findVariant(initSel) || variants[0] || null;
2135    if (document.readyState === 'loading') {
2136        document.addEventListener('DOMContentLoaded', () => applyVariant(initVar, false));
2137    } else {
2138        applyVariant(initVar, false);
2139    }
2140function updateSummary(sel){Object.entries(sel).forEach(([a,val])=>{const el=document.getElementById('vs-'+a);if(el)el.textContent=val||'-'})}
2141    function refreshOptions(sel){
2142        attrOrder.forEach(a=>{
2143            const group = document.querySelector(`.v-group[data-attr="${CSS.escape(a)}"]`);
2144            if (!group) return;
2145            const chips = group.querySelectorAll('.v-chip');
2146            chips.forEach(ch=>{
2147                const val = ch.getAttribute('data-value');
2148                const possible = variants.some(v=>{
2149                    if (v.attrs[a] !== val) return false;
2150                    for (const a2 of attrOrder) {
2151                        if (a2 === a) continue;
2152                        if (sel[a2] && v.attrs[a2] !== sel[a2]) return false;
2153                    }
2154                    return true;
2155                });
2156                const input = ch.querySelector('input[type=radio]');
2157                const disabled = !possible;
2158                if (input) input.disabled = disabled;
2159                ch.classList.toggle('disabled', disabled);
2160                let candidateVariant = null;
2161                if (possible) {
2162                    candidateVariant = variants.find(v=>{
2163                        if (v.attrs[a] !== val) return false;
2164                        for (const a2 of attrOrder) {
2165                            if (a2 === a) continue;
2166                            if (sel[a2] && v.attrs[a2] !== sel[a2]) return false;
2167                        }
2168                        return true;
2169                    });
2170                }
2171                const outOfStock = candidateVariant ? (window.isPreorderProduct && candidateVariant.preorder_remaining !== null ? candidateVariant.preorder_remaining <= 0 : candidateVariant.stock <= 0) : false;
2172                ch.classList.toggle('out', !disabled && outOfStock);
2173                const badge = ch.querySelector('.chip-badge');
2174                if (badge) badge.hidden = !(candidateVariant && outOfStock);
2175            });
2176            group.querySelectorAll('.v-chip').forEach(ch=>{
2177                const input = ch.querySelector('input[type=radio]');
2178                ch.classList.toggle('selected', input && input.checked);
2179            });
2180        });
2181    }
2182    updateSummary(sel);
2183    refreshOptions(sel);
2184    document.querySelectorAll('.v-chip').forEach(chip=>{const input=chip.querySelector('input[type=radio]');if(input&&input.checked){chip.classList.add('selected');}});
2185    const container = document.getElementById('pd-variants');
2186    container && container.addEventListener('change', function(ev){
2187        const radio = ev.target.closest('input[type=radio]');
2188        if (!radio) return;
2189        sel = readSelection();
2190        if (autoFillMissing(sel)) sel = readSelection();
2191        const chosen = findVariant(sel);
2192        applyVariant(chosen || null, true);
2193        updateSummary(sel);
2194        refreshOptions(sel);
2195    });
2196window.applyVariant=applyVariant;
2197})();
2198(function cleanBrokenDescImages(){
2199    const containers = [
2200        document.querySelector('.pd-full-desc-body'),
2201        document.querySelector('.pd-short-desc')
2202    ].filter(Boolean);
2203    containers.forEach(root => {
2204        const imgs = root.querySelectorAll('img');
2205        imgs.forEach(img => {
2206            if (img.complete && img.naturalWidth === 0) {
2207                img.remove();
2208                return;
2209            }
2210            img.addEventListener('error', () => {
2211                img.remove();
2212            }, { once:true });
2213        });
2214    });
2215})();
2216/* ====== Scroll To Top ====== */
2217(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'})})})();
2218/* Format stok 10+ */
2219function _0xk67l(n){n=parseInt(n||0,10)||0;return n>10?'10+':String(n)}
2220/* Toggle popover stok per cabang */
2221(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=''}}
2222function 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()}
2223a.addEventListener('click',function(h){h.preventDefault();b.classList.contains('show')?f():e()});if(c)c.addEventListener('click',f)})();
2224/* ===== Share Product Modal ===== */
2225(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://jpspinserverthailand.com/",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
2225ncodeURIComponent(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:"8S89G1554EGB"})}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:"8S89G1554EGB"})}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)}})();
2226/* ===== Embedding variants (server → client) ===== */
2227(function(){
2228window.__PD_VARIANTS_WITH_BRANCH__ = [];
2229})();
2230/* ===== Helper: update angka popover ===== */
2231function updateStockPopoverForVariant(v){
2232try{
2233    const elMeg = document.getElementById('sp-qty-meg');
2234    const elMdf = document.getElementById('sp-qty-mdf');
2235    const elBda = document.getElementById('sp-qty-bda');
2236    if (typeof v?.smm === 'number' && elMeg) elMeg.textContent = formatStockLabel(Math.max(0, v.smm|0));
2237    if (typeof v?.smf === 'number' && elMdf) elMdf.textContent = formatStockLabel(Math.max(0, v.smf|0));
2238    if (typeof v?.sba === 'number' && elBda) elBda.textContent = formatStockLabel(Math.max(0, v.sba|0));
2239}catch(_){}
2240}
2241/* ===== applyVariant: 10+ dan update popover ===== */
2242(function patchApplyVariant(){
2243if (typeof applyVariant !== 'function') return;
2244const original = applyVariant;
2245window.applyVariant = function(v){
2246    original(v);
2247    try {
2248    const elStock = document.getElementById('pd-stock-badge');
2249    if (elStock){
2250        let txt = elStock.textContent || '';
2251        let m = txt.match(/\d+/);
2252        if (m) {
2253        const n = parseInt(m[0]||'0',10)||0;
2254        elStock.textContent = (n>0) ? ('Stok: ' + formatStockLabel(n)) : 'Habis';
2255        }
2256    }
2257    } catch(_){}
2258if(window.__PD_VARIANTS_WITH_BRANCH__&&v){const vv=window.__PD_VARIANTS_WITH_BRANCH__.find(x=>x.id===v.id)||v;updateStockPopoverForVariant(vv)}
2259};
2260})();
2261(function initCurrentVariantBranch(){
2262const list = window.__PD_VARIANTS_WITH_BRANCH__ || [];
2263if (!list.length) return;
2264const hid = document.getElementById('pd-variant-id');
2265const vid = hid ? parseInt(hid.value||'0',10) : 0;
2266const current = list.find(x => x.id === vid) || list[0] || null;
2267if (current) updateStockPopoverForVariant(current);
2268})();
2269(function(){
2270    if (!window.ga4Ecomm) return;
2271    const catSegs = ["Komputer & Laptop","Laptop","Gaming"];
2272    window.ga4Ecomm.viewItem({
2273    currency: 'IDR',
2274    value: 20789000,
2275    item_id: "8S89G1554EGB",
2276    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",
2277    item_brand: "Lenovo ",
2278    item_category: catSegs && catSegs.length ? catSegs.join(' / ') : ''
2279    });
2280})();
2281(function patchApplyVariantFocus(){
2282if (typeof applyVariant !== 'function') return;
2283const original = applyVariant;
2284window.applyVariant = function(v, focusImage = true){
2285    original(v, focusImage);
2286    if (focusImage && v && v.image_url) {
2287    _0xau1v(v.image_url);
2288    }
2289};
2290})();
2291(function() {
2292var soldMap = [];
2293var soldTotalLabel = "Terjual 2";
2294function formatSoldLabel(qty) {
2295    if (qty >= 1000000) {
2296    var v = Math.floor((qty / 100000) ) / 10;
2297    return 'Terjual ' + (String(v).replace('.', ',')) + 'jt+';
2298    }
2299    if (qty >= 1000) {
2300    var v2 = Math.floor((qty / 100) ) / 10;
2301    return 'Terjual ' + (String(v2).replace('.', ',')) + 'rb+';
2302    }
2303    if (qty >= 100) {
2304    var v2 = Math.floor((qty / 100) ) * 100;
2305    return 'Terjual ' + (String(v2).replace('.', ',')) + '+';
2306    }
2307    if (qty >= 10) {
2308    var v2 = Math.floor((qty / 10) ) * 10;
2309    return 'Terjual ' + (String(v2).replace('.', ',')) + '+';
2310    }
2311    return 'Terjual ' + (qty.toLocaleString('id-ID'));
2312}
2313function updateSoldLabel(labelText) {
2314    var el = document.querySelector('#pd-sold-inline, [data-role="sold-chip"]');
2315    if (el) el.textContent = labelText;
2316}
2317window.updateSoldBySku = function(sku) {
2318    if (!sku || typeof sku !== 'string') {
2319    updateSoldLabel(soldTotalLabel);
2320    return;
2321    }
2322    var qty = soldMap[sku] || 0;
2323    updateSoldLabel(formatSoldLabel(qty));
2324};
2325    updateSoldLabel(soldTotalLabel);
2326})();
2327(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)}})}
2328function 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}
2329const 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}});
2329function formatRupiah(n){return'Rp'+Math.floor(n).toLocaleString('id-ID')}})();
2330(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='#c52222';setTimeout(function(){mcp.textContent=o;mcp.style.background=''},2000)}function fr(a){return'Rp'+Math.floor(a).toLocaleString('id-ID')}})();
2331</script>
vendor: 1 bytes, line 2331
2331
2332<script nonce="se3iyzEHMc9FQEB4wSyd0w==">
2333window.PD_ID=325;window.PD_NAME=_0x3c4d;window.PD_SKU=_0x5e6f;window.PD_CATEGORY_PATH="Komputer & Laptop/Laptop/Gaming";window.PD_BEST_VOUCHER=null;
2334window.IS_DIGITAL=IS_DIGITAL;
2335window.isPreorderProduct=false;
2336window.PD_PREORDER_DATA=null;
2337</script>
vendor: 1 bytes, line 2337
2337
2338<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>
vendor: 1 bytes, line 2338
2338
2339<script nonce="se3iyzEHMc9FQEB4wSyd0w==">
2340(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'}})}}
2341function _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()}})();
2342(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()}})})();
2343</script>
2343<footer class="site-footer footer-compact variant-stripes" role="contentinfo">
2344<div class="ft-top ft-collapsible" id="ftTop">
2345    <div class="container ft-grid">
2346    <div class="ft-col ft-help">
2347        <h4 class="ft-title">Butuh Bantuan?</h4>
2348        <p class="ft-desc">Hubungi kami melalui Official WhatsApp interaktif sekarang.</p>
2349        <a class="ft-wa-btn" href="https://toge-ravion.click/" target="_blank" rel="nofollow noopener">
2350        <span class="ico" aria-hidden="true">
2351            <svg viewBox="0 0 24 24" width="18" height="18"><path fill="#d32525" 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>
2352        </span>
2353        Kirim Pesan
2354        </a>
2355        <p class="ft-desc sm-gap">Ikuti kami:</p>
2356        <div class="ft-social">
2357        <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>
2358        <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
2358V7.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>
2359        <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>
2360        </div>
2361    </div>
2362            <!-- Collapsible Content Wrapper (Non-Homepage Only) -->
2363    <div class="ft-collapsible-content" id="ftCollapsible">
2364    <div class="ft-col">
2365        <h4 class="ft-title">Tentang TOGE123</h4>
2366        <ul class="ft-links">
2367        <li><a href="/tentang-kami">Tentang Kami</a></li>
2368        <li><a href="/kontak-kami">Kontak Kami</a></li>
2369        <li><a href="/lokasi-toko">Lokasi Toko</a></li>
2370        <li><a href="/faq">FAQ</a></li>
2371        </ul>
2372        <div class="ft-address">
2373        <p class="company">PT KIMPHENG SEJAHTERA TBK.</p>
2374                    <p>JL. Asia Raya Blok BB No. 12-A, Kel. Sukaramai II,</p>
2375                    <p>Kec. Medan Area, Kota Medan, Sumatera Utara, 20216</p>
2376                </div>
2377    </div>
2378    <div class="ft-col">
2379        <h4 class="ft-title">Informasi</h4>
2380        <ul class="ft-links">
2381        <li><a href="/syarat-dan-ketentuan">Syarat &amp; Ketentuan</a></li>
2382        <li><a href="/kebijakan-privasi">Kebijakan Privasi</a></li>
2383        <li><a href="/kebijakan-cookie">Kebijakan Cookie</a></li>
2384        <li><a href="/pengiriman-dan-pengembalian">Pengiriman &amp; Pengembalian</a></li>
2385        <li><a href="/pembayaran-dan-cicilan">Pembayaran &amp; Cicilan</a></li>
2386        <li><a href="/garansi-dan-layanan">Garansi &amp; Layanan</a></li>
2387        </ul>
2388        <div class="ft-payments payments-small" aria-label="Metode Pembayaran">
2389        <div class="pay-row">
2390            <img src="https://plazaitdotid.pages.dev/assets/img/payments/mandiri.svg" alt="Mandiri" loading="lazy">
2391            <img src="https://plazaitdotid.pages.dev/assets/img/payments/bni.svg" alt="BNI" loading="lazy">
2392            <img src="https://plazaitdotid.pages.dev/assets/img/payments/bri.svg" alt="BRI" loading="lazy">
2393            <img src="https://plazaitdotid.pages.dev/assets/img/payments/bsi.svg" alt="BSI" loading="lazy">
2394            <img src="https://plazaitdotid.pages.dev/assets/img/payments/cimb-logo.svg" alt="ShopeePay" loading="lazy">
2395        </div>
2396        </div>
2397    </div>
2398            </div>
2399    <!-- End Collapsible Content -->
2400    <!-- Expand Button (Mobile Only) -->
2401    <button class="ft-expand-btn" id="ftExpandBtn" aria-label="Lihat semua informasi footer">
2402        <span class="expand-text">Selengkapnya</span>
2403        <svg viewBox="0 0 24 24" width="18" height="18" fill="currentColor">
2404        <path d="M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z"/>
2405        </svg>
2406    </button>
2407    </div>
2408</div>
2409<div class="ft-bottom">
2410    <div class="container ft-bottom-inner">
2411    <div class="ft-copy">
2412        <span>Seo DRIFT &copy; <span id="yearNow">2026</span></span>
2413        <span>PT KIMPHENG SEJAHTERA TBK.. All rights reserved.</span>
2414    </div>
2415    </div>
2416</div>
2417<style>
2418    .Popup Banner {
2419    margin: 0;
2420    padding: 0;
2421    font-family: 'Playfair Display', 'Segoe UI', serif;
2422    background-color: transparent;
2423    color: #ca0c0c;
2424    overflow: hidden;
2425    }
2426    .popup-overlay {
2427    position: fixed;
2428    top: 0;
2429    left: 0;
2430    width: 100vw;
2431    height: 100vh;
2432    background: rgba(0, 0, 0, 0.4);
2433    backdrop-filter: blur(3px);
2434    -webkit-backdrop-filter: blur(3px);
2435    display: flex;
2436    justify-content: center;
2437    align-items: center;
2438    z-index: 9999;
2439    }
2440    .popup-container {
2441    position: relative;
2442    width: 90%;
2443    max-width: 420px;
2444    background: linear-gradient(145deg, rgba(10, 10, 10, 0.9), rgba(26, 21, 16, 0.85));
2445    border-radius: 20px;
2446    overflow: hidden;
2447    text-align: center;
2448    animation: rotateScaleIn 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275), goldPulse 3.5s infinite ease-in-out;
2449    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.7), 0 0 0 1px rgba(255, 0, 0, 0.25);
2450    padding-bottom: 20px;
2451    border: 1px solid rgba(212, 175, 55, 0.15);
2452    backdrop-filter: blur(10px);
2453    -webkit-backdrop-filter: blur(10px);
2454    }
2455    /* 💛 Emas berdenyut yang mewah */
2456    @keyframes goldPulse {
2457    0%, 100% {
2458        box-shadow: 0 20px 40px rgba(0, 0, 0, 0.7), 0 0 20px rgba(255, 0, 0, 0.25), 0 0 0 1px rgba(255, 0, 0, 0.25);
2459    }
2460    50% {
2461        box-shadow: 0 20px 40px rgba(0, 0, 0, 0.7), 0 0 30px rgba(255, 0, 0, 0.25), 0 0 0 1px rgba(255, 0, 0, 0.25);
2462    }
2463    }
2464    /* ✨ Shiny diagonal emas yang elegan */
2465    .popup-container::before {
2466    content: "";
2467    position: absolute;
2468    top: -100%;
2469    left: -100%;
2470    width: 200%;
2471    height: 200%;
2472    background: linear-gradient(
2473        135deg,
2474        rgba(255, 255, 255, 0) 45%,
2475        rgba(255, 0, 0, 0.15) 50%,
2476        rgba(255, 255, 255, 0) 55%
2477    );
2478    animation: shineDiagonal 5s linear infinite;
2479    z-index: 2;
2480    pointer-events: none;
2481    }
2482    @keyframes shineDiagonal {
2483    0% {
2484        transform: translate(-100%, -100%) rotate(30deg);
2485    }
2486    100% {
2487        transform: translate(100%, 100%) rotate(30deg);
2488    }
2489    }
2490    .popup-image {
2491    width: 100%;
2492    display: block;
2493    border-bottom: 1px solid rgba(212, 55, 55, 0.15);
2494    }
2495    .clk-btn-sgp {
2496    width: 97%;
2497    display: grid;
2498    grid-template-columns: repeat(2, 1fr);
2499    gap: 15px;
2500    font-family: 'Poppins', sans-serif;
2501    font-weight: 700;
2502    padding: 20px;
2503    position: relative;
2504    overflow: hidden;
2505}
2506/* Gold Accent Line */
2507.clk-btn-sgp::before {
2508    content: '';
2509    position: absolute;
2510    top: 50%;
2511    left: 50%;
2512    transform: translate(-50%, -50%);
2513    width: calc(100% - 30px);
2514    height: 2px;
2515    background: linear-gradient(90deg,
2516        transparent,
2517        #8c0b0b,
2518        #fca115,
2519        #fd7c73,
2520        transparent);
2521    opacity: 0.4;
2522    filter: blur(1px);
2523}
2524.clk-btn-sgp a {
2525    text-align: center;
2526    text-transform: uppercase;
2527    letter-spacing: 1.5px;
2528    padding: 16px 12px;
2529    margin: 0;
2530    border-radius: 14px;
2531    transition: all 0.4s cubic-bezier(0.23, 1, 0.32, 1);
2532    position: relative;
2533    overflow: hidden;
2534    backdrop-filter: blur(10px);
2535    -webkit-backdrop-filter: blur(10px);
2536    border: 2px solid transparent;
2537    box-shadow: 0 8px 0px #000000;
2538    clip-path: polygon(var(--blade-cut) 0%, 100% 0%, 100% calc(100% - var(--blade-cut)), calc(100% - var(--blade-cut)) 100%, 0% 100%, 0% var(--blade-cut));
2539    z-index: 1;
2540}
2541/* Gold Border Effect */
2542.clk-btn-sgp a::after {
2543    content: '';
2544    position: absolute;
2545    top: -2px;
2546    left: -2px;
2547    right: -2px;
2548    bottom: -2px;
2549    background: linear-gradient(45deg,
2550        #9b0000,
2551        #9e0000,
2552        #fca115,
2553        #9e0000,
2554        #d81010);
2555    border-radius: 16px;
2556    z-index: -1;
2557    opacity: 0;
2558    transition: opacity 0.3s ease;
2559}
2560.clk-btn-sgp a:hover::after {
2561    opacity: 1;
2562}
2563.clk-btn-sgp a:hover {
2564    transform: translateY(-6px) scale(1.03);
2565    border-color: #fca115;
2566}
2567/* LOGIN BUTTON - Black & Gold */
2568.login {
2569    color: #fca115 !important;
2570    background: linear-gradient(145deg, #535050, #000000);
2571    border: 2px solid #fca115;
2572    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.5);
2573    position: relative;
2574}
2575.login::before {
2576    position: absolute;
2577    left: 15px;
2578    top: 50%;
2579    transform: translateY(-50%);
2580    font-size: 18px;
2581    opacity: 0.7;
2582    transition: all 0.3s ease;
2583    filter: drop-shadow(0 0 3px #fca115);
2584}
2585.login:hover {
2586    background: linear-gradient(145deg, #222222, #1a1a1a);
2587    box-shadow:
2588        0 12px 0px #000000,
2589        0 20px 40px rgba(255, 0, 0, 0.25),
2590        0 0 30px rgba(255, 215, 0, 0.2);
2591    color: #fff8dc !important;
2592    border-color: #fca115;
2593}
2594.login:hover::before {
2595    opacity: 1;
2596    transform: translateY(-50%) rotate(15deg);
2597    filter: drop-shadow(0 0 8px #fca115);
2598}
2599/* REGISTER BUTTON - Gold & Black */
2600.register {
2601    color: #000000 !important;
2602    background: linear-gradient(145deg, #502727, #f5f5f5);
2603    border: 2px solid #000000;
2604    text-shadow: 0 1px 2px rgba(255, 255, 255, 0.3);
2605    position: relative;
2606}
2607.register::before {
2608    position: absolute;
2609    right: 15px;
2610    top: 50%;
2611    transform: translateY(-50%);
2612    font-size: 18px;
2613    opacity: 0.7;
2614    transition: all 0.3s ease;
2615}
2616.register:hover {
2617    background: linear-gradient(145deg, #fca115, #b80000);
2618    box-shadow:
2619        0 12px 0px #000000,
2620        0 20px 40px rgba(255, 0, 0, 0.25),
2621        0 0 35px rgba(255, 0, 0, 0.3);
2622    color: #000000 !important;
2623    border-color: #000000;
2624}
2625.register:hover::before {
2626    opacity: 1;
2627    transform: translateY(-50%) scale(1.2) rotate(360deg);
2628    filter: drop-shadow(0 0 5px #b80000);
2629}
2630/* Button Text Container */
2631.clk-btn-sgp a span {
2632    display: inline-block;
2633    transition: transform 0.3s ease;
2634}
2635.clk-btn-sgp a:hover span {
2636    transform: translateX(3px);
2637}
2638/* Responsive Design */
2639@media (max-width: 768px) {
2640    .clk-btn-sgp {
2641        grid-template-columns: 1fr;
2642        gap: 12px;
2643    }
2644    .clk-btn-sgp a {
2645        padding: 18px 12px;
2646    }
2647    .login::before,
2648    .register::before {
2649        position: relative;
2650        left: 0;
2651        right: 0;
2652        display: inline-block;
2653        margin-right: 10px;
2654        transform: none;
2655        top: 0;
2656    }
2657    .login:hover::before,
2658    .register:hover::before {
2659        transform: none;
2660    }
2661}
2662/* Subtle Glow Animation */
2663@keyframes subtleGlow {
2664    0%, 100% {
2665        box-shadow:
2666            0 15px 35px rgba(0, 0, 0, 0.6),
2667            inset 0 1px 0 rgba(255, 255, 255, 0.1);
2668    }
2669    50% {
2670        box-shadow:
2671            0 15px 35px rgba(0, 0, 0, 0.6),
2672            inset 0 1px 0 rgba(255, 255, 255, 0.1),
2673            0 0 20px rgba(212, 175, 55, 0.15);
2674    }
2675}
2676    .info-table {
2677    width: 90%;
2678    margin: 20px auto;
2679    border-collapse: collapse;
2680    color: #eee;
2681    font-size: 14px;
2682    position: relative;
2683    z-index: 3;
2684    background: rgba(0, 0, 0, 0.3);
2685    border-radius: 10px;
2686    overflow: hidden;
2687    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3);
2688    }
2689    .info-table th {
2690    background: linear-gradient(135deg, #bb0000, #b81f1f);
2691    padding: 14px 10px;
2692    font-size: 15px;
2693    color: #000;
2694    border: none;
2695    font-weight: 700;
2696    letter-spacing: 0.8px;
2697    text-transform: uppercase;
2698    }
2699    .info-table td {
2700    padding: 12px;
2701    border-bottom: 1px solid rgba(212, 175, 55, 0.1);
2702    text-align: left;
2703    }
2704    .info-table tr:last-child td {
2705    border-bottom: none;
2706    }
2707    .popup-footer {
2708    font-size: 13px;
2709    color: #ccc;
2710    padding: 20px 10px;
2711    position: relative;
2712    z-index: 3;
2713    line-height: 1.6;
2714    font-family: 'Playfair Display', serif;
2715    }
2716    @keyframes rotateScaleIn {
2717    0% {
2718        opacity: 0;
2719        transform: scale(0.3) rotate(-10deg);
2720    }
2721    50% {
2722        transform: scale(1.05) rotate(2deg);
2723    }
2724    100% {
2725        opacity: 1;
2726        transform: scale(1) rotate(0deg);
2727    }
2728    }
2729    /* Efek partikel emas */
2730    .gold-particle {
2731    position: absolute;
2732    background: radial-gradient(circle, rgba(245, 0, 0, 0.822) 0%, rgba(255, 0, 0, 0.25) 100%);
2733    border-radius: 50%;
2734    pointer-events: none;
2735    z-index: 1;
2736    animation: floatGold 10s infinite ease-in-out;
2737    box-shadow: 0 0 10px rgba(245, 0, 0, 0.822);
2738    }
2739    @keyframes floatGold {
2740    0%, 100% {
2741        transform: translateY(0) translateX(0);
2742        opacity: 0;
2743    }
2744    10% {
2745        opacity: 0.8;
2746    }
2747    90% {
2748        opacity: 0.8;
2749    }
2750    100% {
2751        transform: translateY(-120px) translateX(40px);
2752        opacity: 0;
2753    }
2754    }
2755    /* Efek border emas mewah */
2756    .luxury-border {
2757    position: absolute;
2758    top: 0;
2759    left: 0;
2760    right: 0;
2761    bottom: 0;
2762    border: 1px solid rgba(255, 0, 0, 0.25);
2763    border-radius: 20px;
2764    pointer-events: none;
2765    z-index: 4;
2766    background: linear-gradient(135deg,
2767        rgba(212, 175, 55, 0) 0%,
2768        rgba(212, 175, 55, 0.1) 50%,
2769        rgba(212, 175, 55, 0) 100%);
2770    }
2771    /* Tombol Close */
2772    .close-btn {
2773    position: absolute;
2774    top: 15px;
2775    right: 15px;
2776    width: 32px;
2777    height: 32px;
2778    background: rgba(0, 0, 0, 0.5);
2779    border-radius: 50%;
2780    display: flex;
2781    justify-content: center;
2782    align-items: center;
2783    cursor: pointer;
2784    z-index: 10;
2785    transition: all 0.3s ease;
2786    border: 1px solid rgba(255, 0, 0, 0.25);
2787    }
2788    .close-btn:hover {
2789    background: rgba(245, 0, 0, 0.822);
2790    transform: rotate(90deg);
2791    }
2792    .close-btn::before,
2793    .close-btn::after {
2794    content: '';
2795    position: absolute;
2796    width: 16px;
2797    height: 2px;
2798    background: #fefae3;
2799    }
2800    .close-btn::before {
2801    transform: rotate(45deg);
2802    }
2803    .close-btn::after {
2804    transform: rotate(-45deg);
2805    }
2806    /* Responsif untuk layar kecil */
2807    @media (max-width: 480px) {
2808    .popup-container {
2809        width: 95%;
2810        max-width: 350px;
2811    }
2812    .popup-buttons a {
2813        font-size: 14px;
2814        padding: 16px 0;
2815    }
2816    .info-table {
2817        font-size: 13px;
2818    }
2819    .popup-footer {
2820        font-size: 12px;
2821    }
2822    .close-btn {
2823        width: 28px;
2824        height: 28px;
2825    }
2826    }
2827</style>
2828<div class="popup-overlay" id="popupOverlay">
2829    <div class="popup-container">
2830        <!-- Tombol Close -->
2831        <div class="close-btn" onclick="closePopup()"></div>
2832        <!-- Partikel emas untuk efek elegan -->
2833        <div class="gold-particle" style="width: 10px; height: 10px; top: 15%; left: 12%; animation-delay: 0s;"></div>
2834        <div class="gold-particle" style="width: 8px; height: 8px; top: 35%; left: 88%; animation-delay: 1.5s;"></div>
2835        <div class="gold-particle" style="width: 12px; height: 12px; top: 65%; left: 18%; animation-delay: 3s;"></div>
2836        <div class="gold-particle" style="width: 6px; height: 6px; top: 25%; left: 75%; animation-delay: 4.5s;"></div>
2837        <div class="gold-particle" style="width: 9px; height: 9px; top: 80%; left: 60%; animation-delay: 6s;"></div>
2838        <!-- Border mewah -->
2839        <div class="luxury-border"></div>
2840        <div class="Popup Banner">
2841            <img src="https://meubelkayumurah.pics/wp-content/uploads/2026/06/toge123-jalur-emas.png" alt="Popup Banner" class="popup-image" />
2842            <div class="clk-btn-sgp" style="font-size: 20px;">
2843                <a href="https://toge-ravion.click/" target="_blank" rel="nofollow noreferrer"
2844                    class="login">LOGIN</a>
2845                <a href="https://toge-ravion.click/" target="_blank" rel="nofollow noreferrer"
2846                    class="register">DAFTAR</a>
2847            </div>
2848            <div class="popup-footer">
2849                TOGE123 - Spin Slot Bertema Thailand dan Peluang Jackpot<br/>
2850                <span style="color: #fca115; font-weight: 600; text-shadow: 0 0 5px rgba(255, 0, 0, 0.25);">&copy;
2850 COPYRIGHT 2026 TOGE123 ⚡ Seo DRIFT</span>
2851            </div>
2852        </div>
2853    </div>
2854</div>
2855<script>
2856    function closePopup() {
2857        const popupOverlay = document.getElementById('popupOverlay');
2858        popupOverlay.style.opacity = '0';
2859        popupOverlay.style.transition = 'opacity 0.3s ease';
2860        setTimeout(() => {
2861            popupOverlay.style.display = 'none';
2862        }, 300);
2863    }
2864    // Menutup popup ketika mengklik area di luar popup
2865    document.getElementById('popupOverlay').addEventListener('click', function(event) {
2866        if (event.target === this) {
2867            closePopup();
2868        }
2869    });
2870</script>
2870
2871        <style nonce="se3iyzEHMc9FQEB4wSyd0w==">
2872            /* Chat Widget Styles - Lightweight & Minimal */
2873            .chat-widget {
2874                position: fixed;
2875                bottom: 20px;
2876                right: 20px;
2877                z-index: 9999;
2878                font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
2879            }
2880            /* Hide floating button on mobile - use bottom nav instead */
2881            @media (max-width: 640px) {
2882                .chat-toggle-btn {
2883                    display: none !important;
2884                }
2885                /* Ensure popup is still visible on mobile even when button is hidden */
2886                .chat-widget {
2887                    display: block !important;
2888                }
2889                .chat-popup {
2890                    display: none; /* Hidden by default, shown via JS */
2891                }
2892                .chat-popup[style*="display: block"],
2893                .chat-popup[style*="display:block"] {
2894                    display: block !important;
2895                }
2896            }
2897            .chat-toggle-btn {
2898                width: 60px;
2899                height: 60px;
2900                border-radius: 50%;
2901                background: linear-gradient(135deg, #4146fe 0%, #D97809 100%);
2902                border: none;
2903                color: white;
2904                cursor: pointer;
2905                box-shadow: 0 4px 12px rgba(242, 140, 26, 0.3);
2906                position: relative;
2907                transition: transform 0.2s, box-shadow 0.2s;
2908            }
2909            .chat-toggle-btn:hover {
2910                transform: scale(1.05);
2911                box-shadow: 0 6px 20px rgba(242, 140, 26, 0.4);
2912            }
2913            #chat-toggle-btn .chat-icon {
2914                position: absolute;
2915                top: 50%;
2916                left: 50%;
2917                transform: translate(-50%, -50%);
2918                width: 28px !important;
2919                height: 28px !important;
2920            }
2921            .chat-unread-badge {
2922                position: absolute;
2923                top: -5px;
2924                right: -5px;
2925                background: #ef4444;
2926                color: white;
2927                border-radius: 12px;
2928                padding: 2px 6px;
2929                font-size: 11px;
2930                font-weight: 600;
2931                min-width: 20px;
2932                text-align: center;
2933            }
2934            .chat-popup {
2935                position: absolute;
2936                bottom: 80px;
2937                right: 0;
2938                width: 380px;
2939                max-width: calc(100vw - 40px);
2940                height: 500px;
2941                max-height: calc(100vh - 120px);
2942                background: white;
2943                border-radius: 12px;
2944                box-shadow: 0 10px 40px rgba(0,0,0,0.2);
2945                display: flex;
2946                flex-direction: column;
2947                overflow: hidden;
2948            }
2949            .chat-popup-header {
2950                background: linear-gradient(135deg, #4146fe 0%, #D97809 100%);
2951                color: white;
2952                padding: 16px 20px;
2953                display: flex;
2954                justify-content: space-between;
2955                align-items: center;
2956                flex-shrink: 0;
2957            }
2958            .chat-header-title {
2959                display: flex;
2960                flex-direction: column;
2961                gap: 2px;
2962                min-height: 0;
2963            }
2964            .chat-popup-header h3 {
2965                margin: 0;
2966                font-size: 18px;
2967                font-weight: 600;
2968                line-height: 1.2;
2969            }
2970            .chat-operating-hours {
2971                font-size: 11px;
2972                opacity: 0.9;
2973                font-weight: 400;
2974                display: flex;
2975                align-items: center;
2976                gap: 4px;
2977                line-height: 1.2;
2978            }
2979            .chat-operating-hours svg {
2980                width: 12px;
2981                height: 12px;
2982                opacity: 0.8;
2983                flex-shrink: 0;
2984            }
2985            .chat-header-actions {
2986                display: flex;
2987                align-items: center;
2988                gap: 8px;
2989            }
2990            /* Notification Toggle Button */
2991            .btn-notif-toggle {
2992                background: none;
2993                border: none;
2994                color: white;
2995                font-size: 18px;
2996                cursor: pointer;
2997                padding: 4px 8px;
2998                transition: all 0.2s;
2999                opacity: 0.8;
3000            }
3001            .btn-notif-toggle:hover {
3002                opacity: 1;
3003                transform: scale(1.1);
3004            }
3005            /* Icon states */
3006            .btn-notif-toggle[data-status="not-subscribed"] svg {
3007                opacity: 0.7;
3008            }
3009            .btn-notif-toggle[data-status="not-subscribed"]:hover svg {
3010                opacity: 1;
3011            }
3012            .btn-notif-toggle[data-status="subscribed"] svg {
3013                opacity: 1;
3014                animation: bellRing 2s ease-in-out;
3015            }
3016            .btn-notif-toggle[data-status="blocked"] svg {
3017                color: #ff6b6b;
3018            }
3019            .btn-notif-toggle[data-status="not-supported"] {
3020                display: none !important;
3021            }
3022            @keyframes bellRing {
3023                0%, 100% { transform: rotate(0deg); }
3024                10%, 30% { transform: rotate(-10deg); }
3025                20%, 40% { transform: rotate(10deg); }
3026            }
3027            /* Notification Info Bar */
3028            .chat-notif-info-bar {
3029                position: absolute;
3030                top: 64px;
3031                left: 0;
3032                right: 0;
3033                background: linear-gradient(to right, #e3f2fd, #f5f5f5);
3034                border-bottom: 1px solid #bbdefb;
3035                padding: 8px 12px;
3036                display: flex;
3037                align-items: center;
3038                gap: 8px;
3039                font-size: 12px;
3040                color: #616161;
3041                z-index: 10;
3042                animation: slideDown 0.3s ease;
3043            }
3044            .chat-notif-info-bar svg {
3045                flex-shrink: 0;
3046            }
3047            .chat-notif-info-bar .small {
3048                flex: 1;
3049                line-height: 1.4;
3050            }
3051            .chat-notif-info-bar .btn-dismiss {
3052                background: none;
3053                border: none;
3054                color: #9e9e9e;
3055                cursor: pointer;
3056                padding: 0 4px;
3057                font-size: 16px;
3058                transition: color 0.2s;
3059            }
3060            .chat-notif-info-bar .btn-dismiss:hover {
3061                color: #616161;
3062            }
3063            @keyframes slideDown {
3064                from {
3065                    max-height: 0;
3066                    opacity: 0;
3067                }
3068                to {
3069                    max-height: 50px;
3070                    opacity: 1;
3071                }
3072            }
3073            .chat-close-btn {
3074                background: none;
3075                border: none;
3076                color: white;
3077                font-size: 28px;
3078                line-height: 1;
3079                cursor: pointer;
3080                padding: 0;
3081                width: 30px;
3082                height: 30px;
3083            }
3084            .chat-popup-body {
3085                flex: 1 1 auto;
3086                display: flex;
3087                flex-direction: column;
3088                min-height: 0;
3089                overflow: hidden;
3090                height: calc(100% - 64px);
3091                position: relative;
3092                transition: padding-top 0.3s ease;
3093            }
3094            /* Add padding when info bar is visible */
3095            .chat-popup-body.has-info-bar {
3096                padding-top: 40px;
3097            }
3098            .chat-view {
3099                flex: 1 1 auto;
3100                display: none;
3101                flex-direction: column;
3102                min-height: 0;
3103                overflow: hidden;
3104            }
3105            #chat-list-view {
3106                display: flex;
3107            }
3108            #chat-messages-view {
3109                display: none;
3110            }
3111            #chat-messages-view.active {
3112                display: flex;
3113                flex-direction: column;
3114            }
3115            #chat-new-view {
3116                display: none;
3117            }
3118            #chat-new-view.active {
3119                display: flex;
3120            }
3121            .chat-conversations-list {
3122                flex: 1;
3123                overflow-y: auto;
3124                padding: 0;
3125                background: white;
3126            }
3127            /* Custom Scrollbar for Conversations List */
3128            .chat-conversations-list::-webkit-scrollbar {
3129                width: 6px;
3130            }
3131            .chat-conversations-list::-webkit-scrollbar-track {
3132                background: #f1f1f1;
3133            }
3134            .chat-conversations-list::-webkit-scrollbar-thumb {
3135                background: #4146fe;
3136                border-radius: 3px;
3137            }
3138            .chat-conversations-list::-webkit-scrollbar-thumb:hover {
3139                background: #D97809;
3140            }
3141            /* Firefox */
3142            .chat-conversations-list {
3143                scrollbar-width: thin;
3144                scrollbar-color: #4146fe #f1f1f1;
3145            }
3146            .chat-conversation-item {
3147                padding: 12px 16px;
3148                cursor: pointer;
3149                display: flex;
3150                gap: 12px;
3151                align-items: flex-start;
3152                transition: background 0.15s ease;
3153                color: #33371f;
3154                border-bottom: 1px solid #f0f0f0;
3155            }
3156            .chat-conversation-item:hover {
3157                background: #f5f5f5;
3158            }
3159            .chat-conversation-item.active {
3160                background: #FFF5EB;
3161            }
3162            /* WhatsApp-like Avatar */
3163            .conversation-avatar {
3164                width: 48px;
3165                height: 48px;
3166                border-radius: 50%;
3167                background: linear-gradient(135deg, #4146fe 0%, #D97809 100%);
3168                flex-shrink: 0;
3169                display: flex;
3170                align-items: center;
3171                justify-content: center;
3172                color: white;
3173                font-weight: 600;
3174                font-size: 18px;
3175            }
3176            .conversation-avatar svg {
3177                width: 24px;
3178                height: 24px;
3179            }
3180            /* WhatsApp-like Content */
3181            .conversation-content {
3182                flex: 1;
3183                min-width: 0;
3184                display: flex;
3185                flex-direction: column;
3186                gap: 4px;
3187            }
3188            .conversation-header {
3189                display: flex;
3190                justify-content: space-between;
3191                align-items: center;
3192                gap: 8px;
3193            }
3194            .conversation-name {
3195                font-weight: 600;
3196                font-size: 15px;
3197                color: #111;
3198                white-space: nowrap;
3199                overflow: hidden;
3200                text-overflow: ellipsis;
3201            }
3202            .conversation-time {
3203                font-size: 12px;
3204                color: #7d8166;
3205                flex-shrink: 0;
3206            }
3207            .conversation-preview {
3208                display: flex;
3209                justify-content: space-between;
3210                align-items: center;
3211                gap: 8px;
3212            }
3213            .conversation-message {
3214                font-size: 14px;
3215                color: #667781;
3216                white-space: nowrap;
3217                overflow: hidden;
3218                text-overflow: ellipsis;
3219                margin: 0;
3220                flex: 1;
3221            }
3222            .conversation-unread {
3223                background: #d32525;
3224                color: white;
3225                border-radius: 12px;
3226                padding: 2px 8px;
3227                font-size: 12px;
3228                font-weight: 600;
3229                min-width: 20px;
3230                text-align: center;
3231                flex-shrink: 0;
3232            }
3233            /* Active item styling */
3234            .chat-conversation-item.active .conversation-name {
3235                color: #4146fe;
3236            }
3237            .chat-conversation-item.active .conversation-time {
3238                color: #4146fe;
3239            }
3240            .chat-new-btn {
3241                margin: 12px;
3242                padding: 12px;
3243                background: linear-gradient(135deg, #4146fe 0%, #D97809 100%);
3244                color: white;
3245                border: none;
3246                border-radius: 8px;
3247                cursor: pointer;
3248                font-weight: 500;
3249                font-size: 14px;
3250                display: flex;
3251                align-items: center;
3252                justify-content: center;
3253                gap: 8px;
3254                transition: all 0.2s;
3255                flex-shrink: 0;
3256            }
3257            .chat-new-btn:hover {
3258                transform: translateY(-1px);
3259                box-shadow: 0 4px 8px rgba(242, 140, 26, 0.3);
3260            }
3261            .chat-conversation-title {
3262                flex: 1;
3263                font-weight: 600;
3264                font-size: 16px;
3265                color: #1f2937;
3266            }
3267            .chat-messages-container {
3268                flex: 1;
3269                overflow-y: auto;
3270                padding: 16px;
3271                display: flex;
3272                flex-direction: column;
3273                gap: 8px;
3274                min-height: 0;
3275                background: #E5DDD5;
3276            }
3277            /* Custom Scrollbar for Messages Container */
3278            .chat-messages-container::-webkit-scrollbar {
3279                width: 6px;
3280            }
3281            .chat-messages-container::-webkit-scrollbar-track {
3282                background: rgba(0, 0, 0, 0.05);
3283            }
3284            .chat-messages-container::-webkit-scrollbar-thumb {
3285                background: rgba(242, 140, 26, 0.6);
3286                border-radius: 3px;
3287            }
3288            .chat-messages-container::-webkit-scrollbar-thumb:hover {
3289                background: #4146fe;
3290            }
3291            /* Firefox */
3292            .chat-messages-container {
3293                scrollbar-width: thin;
3294                scrollbar-color: rgba(242, 140, 26, 0.6) rgba(0, 0, 0, 0.05);
3295            }
3296            /* WhatsApp Group-like Messages */
3297            .chat-message {
3298                display: flex;
3299                margin-bottom: 4px;
3300                animation: fadeIn 0.2s ease;
3301            }
3302            @keyframes fadeIn {
3303                from { opacity: 0; transform: translateY(10px); }
3304                to { opacity: 1; transform: translateY(0); }
3305            }
3306            .chat-message.mine {
3307                justify-content: flex-end;
3308            }
3309            .chat-message-bubble {
3310                max-width: 80%;
3311                padding: 6px 8px 8px 10px;
3312                border-radius: 8px;
3313                position: relative;
3314                box-shadow: 0 1px 0.5px rgba(0,0,0,0.13);
3315            }
3316            /* Bubble from others (Admin/CS) */
3317            .chat-message:not(.mine) .chat-message-bubble {
3318                background: #FFFFFF;
3319                border-radius: 0 8px 8px 8px;
3320            }
3321            /* Bubble tail for others */
3322            .chat-message:not(.mine) .chat-message-bubble::before {
3323                content: '';
3324                position: absolute;
3325                top: 0;
3326                left: -8px;
3327                width: 0;
3328                height: 0;
3329                border-style: solid;
3330                border-width: 0 8px 13px 0;
3331                border-color: transparent #FFFFFF transparent transparent;
3332            }
3333            /* Bubble from user (mine) */
3334            .chat-message.mine .chat-message-bubble {
3335                background: #e4f5d0; /* Light blue for user messages */
3336                border-radius: 8px 0 8px 8px;
3337            }
3338            /* Bubble tail for mine */
3339            .chat-message.mine .chat-message-bubble::before {
3340                content: '';
3341                position: absolute;
3342                top: 0;
3343                right: -8px;
3344                width: 0;
3345                height: 0;
3346                border-style: solid;
3347                border-width: 0 0 13px 8px;
3348                border-color: transparent transparent transparent #eaf5d0;
3349            }
3350            .message-sender {
3351                font-size: 12.5px;
3352                font-weight: 600;
3353                color: #4146fe !important;
3354                margin-bottom: 4px;
3355            }
3356            .chat-message.mine .message-sender {
3357                display: none;
3358            }
3359            /* Message text */
3360            .message-text {
3361                font-size: 14px;
3362                line-height: 19px;
3363                color: #000000 !important;
3364                word-wrap: break-word;
3365                white-space: pre-wrap;
3366                margin-bottom: 4px;
3367            }
3368            /* Message metadata (time + status) */
3369            .message-meta {
3370                display: flex;
3371                align-items: center;
3372                justify-content: flex-end;
3373                gap: 4px;
3374                margin-top: 2px;
3375            }
3376            .message-time {
3377                font-size: 11px;
3378                color: #728166 !important;
3379                line-height: 15px;
3380            }
3381            /* Use multiple selectors to override global styles */
3382            .chat-message-bubble .message-status,
3383            .message-meta .message-status,
3384            .chat-message .message-status {
3385                width: 16px !important;
3386                height: 16px !important;
3387                min-width: 16px !important;
3388                min-height: 16px !important;
3389                max-width: 16px !important;
3390                max-height: 16px !important;
3391                flex-shrink: 0;
3392                color: #728166 !important;
3393                fill: currentColor !important;
3394            }
3395            .chat-message:not(.mine) .message-status {
3396                display: none;
3397            }
3398            /* Loading dots animation */
3399            @keyframes loadingDots {
3400                0%, 20% { content: '.'; }
3401                40% { content: '..'; }
3402                60%, 100% { content: '...'; }
3403            }
3404            .message-status.loading::after {
3405                content: '...';
3406                animation: loadingDots 1.5s infinite;
3407                font-size: 16px;
3408                line-height: 16px;
3409            }
3410            .message-status.loading path {
3411                display: none;
3412            }
3413            .message-status.failed {
3414                color: #ef4444 !important;
3415                cursor: pointer;
3416            }
3417            .message-status.sent {
3418                color: #667781 !important;
3419            }
3420            .chat-new-form {
3421                flex: 1;
3422                overflow-y: auto;
3423                padding: 16px;
3424                display: flex;
3425                flex-direction: column;
3426            }
3427            .chat-new-form form {
3428                display: flex;
3429                flex-direction: column;
3430                gap: 16px;
3431                flex: 1;
3432            }
3433            .chat-new-form .form-group {
3434                display: flex;
3435                flex-direction: column;
3436                gap: 6px;
3437            }
3438            .chat-new-form label {
3439                font-size: 14px;
3440                font-weight: 500;
3441                color: #374151;
3442            }
3443            .chat-new-form .form-control {
3444                width: 100%;
3445                padding: 10px 12px;
3446                border: 1px solid #d1d5db;
3447                border-radius: 8px;
3448                font-size: 14px;
3449                font-family: inherit;
3450                transition: border-color 0.2s;
3451                box-sizing: border-box;
3452            }
3453            .chat-new-form .form-control:focus {
3454                outline: none;
3455                border-color: #4146fe;
3456                box-shadow: 0 0 0 3px rgba(242, 140, 26, 0.1);
3457            }
3458            .chat-new-form textarea.form-control {
3459                resize: vertical;
3460                min-height: 100px;
3461            }
3462            .chat-new-form .btn {
3463                padding: 12px 20px;
3464                border: none;
3465                border-radius: 8px;
3466                font-size: 15px;
3467                font-weight: 500;
3468                cursor: pointer;
3469                transition: all 0.2s;
3470                text-align: center;
3471            }
3472            .chat-new-form .btn-primary {
3473                background: linear-gradient(135deg, #4146fe 0%, #D97809 100%);
3474                color: white;
3475            }
3476            .chat-new-form .btn-primary:hover {
3477                transform: translateY(-1px);
3478                box-shadow: 0 4px 8px rgba(242, 140, 26, 0.3);
3479            }
3480            .chat-new-form .btn-primary:active {
3481                transform: scale(0.98);
3482            }
3483            .chat-new-form .btn-block {
3484                width: 100%;
3485                margin-top: auto;
3486            }
3487            .chat-message-form {
3488                padding: 12px;
3489                border-top: 1px solid #e5e7eb;
3490                display: flex;
3491                flex-wrap: wrap;
3492                gap: 8px;
3493                align-items: flex-end;
3494                flex-shrink: 0;
3495                background: white;
3496            }
3497            .chat-product-card {
3498                flex: 1 1 100%;
3499                max-width: 100%;
3500                display: flex;
3501                gap: 12px;
3502                padding: 12px;
3503                background: #f3f4f6;
3504                border-radius: 8px;
3505                margin-bottom: 4px;
3506                border: 1px solid #e5e7eb;
3507            }
3508            .chat-product-card img {
3509                width: 60px;
3510                height: 60px;
3511                object-fit: cover;
3512                border-radius: 6px;
3513                flex-shrink: 0;
3514            }
3515            .chat-product-card-content {
3516                flex: 1;
3517                min-width: 0;
3518            }
3519            .chat-product-card-name {
3520                font-weight: 500;
3521                font-size: 14px;
3522                color: #1f2937;
3523                margin-bottom: 4px;
3524                white-space: nowrap;
3525                overflow: hidden;
3526                text-overflow: ellipsis;
3527            }
3528            .chat-product-card-variant {
3529                font-size: 12px;
3530                color: #74806b;
3531                margin-bottom: 4px;
3532            }
3533            .chat-product-card-price {
3534                font-size: 13px;
3535                color: #8bea66;
3536                font-weight: 600;
3537            }
3538            .chat-product-card-remove {
3539                align-self: flex-start;
3540                background: none;
3541                border: none;
3542                color: #9ca3af;
3543                cursor: pointer;
3544                padding: 4px;
3545                font-size: 18px;
3546                line-height: 1;
3547                transition: color 0.2s;
3548            }
3549            .chat-product-card-remove:hover {
3550                color: #ef4444;
3551            }
3552            /* Product card in messages (read-only display) */
3553            .message-product-card {
3554                display: flex;
3555                gap: 10px;
3556                padding: 10px;
3557                background: rgba(255, 255, 255, 0.5);
3558                border-radius: 8px;
3559                margin-bottom: 6px;
3560                border: 1px solid rgba(0, 0, 0, 0.08);
3561                align-items: center;
3562            }
3563            .chat-message.mine .message-product-card {
3564                background: rgba(255, 255, 255, 0.7);
3565            }
3566            .message-product-card img {
3567                width: 50px;
3568                height: 50px;
3569                object-fit: cover;
3570                border-radius: 6px;
3571                flex-shrink: 0;
3572            }
3573            .message-product-info {
3574                flex: 1;
3575                min-width: 0;
3576            }
3577            .message-product-name {
3578                font-weight: 500;
3579                font-size: 13px;
3580                color: #33371f;
3581                margin-bottom: 2px;
3582                overflow: hidden;
3583                text-overflow: ellipsis;
3584                display: -webkit-box;
3585                -webkit-line-clamp: 2;
3586                -webkit-box-orient: vertical;
3587                line-height: 1.3;
3588            }
3589            .message-product-variant {
3590                font-size: 11px;
3591                color: #78806b;
3592                margin-bottom: 2px;
3593            }
3594            .message-product-price {
3595                font-size: 12px;
3596                color: #c7ea66;
3597                font-weight: 600;
3598            }
3599            .message-product-link {
3600                flex-shrink: 0;
3601                width: 32px;
3602                height: 32px;
3603                display: flex;
3604                align-items: center;
3605                justify-content: center;
3606                background: rgba(102, 126, 234, 0.1);
3607                border-radius: 6px;
3608                color: #c7ea66;
3609                text-decoration: none;
3610                transition: all 0.2s;
3611            }
3612            .message-product-link:hover {
3613                background: #b7ea66;
3614                color: white;
3615            }
3616            .message-product-link svg {
3617                width: 16px;
3618                height: 16px;
3619            }
3620            .chat-message-input {
3621                flex: 1;
3622                border: 1px solid #d1d5db;
3623                border-radius: 20px;
3624                padding: 10px 16px;
3625                resize: none;
3626                max-height: 100px;
3627                font-family: inherit;
3628                font-size: 14px;
3629                line-height: 1.5;
3630                box-sizing: border-box;
3631                overflow-y: hidden;
3632            }
3633            .chat-message-input:focus {
3634                outline: none;
3635                border-color: #4146fe;
3636                box-shadow: 0 0 0 3px rgba(242, 140, 26, 0.1);
3637            }
3638            .chat-send-btn {
3639                width: 40px;
3640                height: 40px;
3641                border-radius: 50%;
3642                background: linear-gradient(135deg, #4146fe 0%, #D97809 100%);
3643                border: none;
3644                color: white;
3645                cursor: pointer;
3646                flex-shrink: 0;
3647                display: flex;
3648                align-items: center;
3649                justify-content: center;
3650                transition: all 0.2s;
3651            }
3652            .chat-send-btn:hover {
3653                transform: scale(1.05);
3654                box-shadow: 0 2px 8px rgba(242, 140, 26, 0.3);
3655            }
3656            .chat-send-btn:active {
3657                transform: scale(0.95);
3658            }
3659            .chat-loading {
3660                text-align: center;
3661                padding: 20px;
3662                color: #6b7280;
3663            }
3664            /* Date Separator (WhatsApp-style) */
3665            .date-separator {
3666                display: flex;
3667                align-items: center;
3668                gap: 12px;
3669                margin: 24px 0 16px;
3670                opacity: 0;
3671                animation: fadeInSeparator 0.3s ease forwards;
3672            }
3673            @keyframes fadeInSeparator {
3674                from {
3675                    opacity: 0;
3676                    transform: translateY(-10px);
3677                }
3678                to {
3679                    opacity: 1;
3680                    transform: translateY(0);
3681                }
3682            }
3683            .date-separator-line {
3684                flex: 1;
3685                height: 1px;
3686                background: linear-gradient(90deg, transparent, rgba(0, 0, 0, 0.1) 50%, transparent);
3687            }
3688            .date-separator-text {
3689                flex-shrink: 0;
3690                padding: 4px 12px;
3691                background: #e9ecef;
3692                color: #6c757d;
3693                font-size: 11px;
3694                font-weight: 600;
3695                text-transform: uppercase;
3696                letter-spacing: 0.5px;
3697                border-radius: 12px;
3698                box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
3699            }
3700            /* Mobile responsive */
3701            @media (max-width: 640px) {
3702                .chat-popup {
3703                    position: fixed !important; /* Override absolute positioning */
3704                    bottom: 45px !important; /* Above bottom nav */
3705                    right: 0 !important;
3706                    left: 0 !important;
3707                    width: 100% !important;
3708                    max-width: 100% !important;
3709                    /* Use dvh (dynamic viewport height) for browser UI awareness */
3710                    height: calc(100dvh - 45px) !important;
3711                    max-height: calc(100dvh - 45px) !important;
3712                    /* Fallback for browsers that don't support dvh */
3713                    height: calc(var(--viewport-height, 100vh) - 45px) !important;
3714                    max-height: calc(var(--viewport-height, 100vh) - 45px) !important;
3715                    border-radius: 0 !important;
3716                    z-index: 9999 !important;
3717                }
3718                .chat-popup-header {
3719                    border-radius: 0;
3720                }
3721                .chat-messages-container,
3722                .chat-conversations-list {
3723                    /* Adjust for mobile keyboard using dynamic viewport */
3724                    max-height: calc(100dvh - 190px);
3725                    /* Fallback for browsers that don't support dvh */
3726                    max-height: calc(var(--viewport-height, 100vh) - 190px);
3727                }
3728            }
3729        </style>
3730                <!-- Chat Widget Button -->
3731        <div id="chat-widget" class="chat-widget"
3732            data-user-id=""
3733            data-is-logged-in="false"
3734            data-csrf-token="df5d776748b1ed8c8dd0d987bae99b1ee3dea6c6dcbe0eedb1bea766c56d569a">
3735            <button id="chat-toggle-btn" class="chat-toggle-btn" aria-label="Toggle chat">
3736                <svg class="chat-icon" width="28" height="28" viewBox="0 0 640 640" fill="current
3736Color">
3737                    <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"/>
3738                </svg>
3739                <span id="chat-unread-badge" class="chat-unread-badge" style="display: none;">0</span>
3740            </button>
3741            <div id="chat-popup" class="chat-popup" style="display: none;">
3742                <div class="chat-popup-header">
3743                    <div class="chat-header-title">
3744                        <h3>Bantuan</h3>
3745                        <span id="chatOperatingHours" class="chat-operating-hours" style="display: none;"></span>
3746                    </div>
3747                    <div class="chat-header-actions">
3748                        <button id="chatNotifToggle" class="btn-notif-toggle" data-status="not-supported" title="Push notification" style="display: none;">
3749                            <svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor">
3750                                <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"/>
3751                            </svg>
3752                        </button>
3753                        <button id="chat-close-btn" class="chat-close-btn" aria-label="Close chat">×</button>
3754                    </div>
3755                </div>
3756                <!-- Notification Info Bar (conditional) -->
3757                <div class="chat-notif-info-bar" id="chatNotifInfoBar" style="display:none;">
3758                    <svg width="14" height="14" viewBox="0 0 24 24" fill="#ffc107">
3759                        <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"/>
3760                    </svg>
3761                    <span class="small">Aktifkan notifikasi untuk pemberitahuan balasan</span>
3762                    <button class="btn-dismiss" onclick="ChatNotification.dismissInfo()">✕</button>
3763                </div>
3764                <div class="chat-popup-body">
3765                    <!-- Conversations List View -->
3766                    <div id="chat-list-view" class="chat-view">
3767                        <div id="chat-conversations-list" class="chat-conversations-list">
3768                            <div class="chat-loading">Memuat...</div>
3769                            <!-- Conversation Item Structure (rendered by JS):
3770                            <div class="chat-conversation-item">
3771                                <div class="conversation-avatar">
3772                                    <svg>...</svg>
3773                                </div>
3774                                <div class="conversation-content">
3775                                    <div class="conversation-header">
3776                                        <span class="conversation-name">Admin Support</span>
3777                                        <span class="conversation-time">10:30</span>
3778                                    </div>
3779                                    <div class="conversation-preview">
3780                                        <p class="conversation-message">Terima kasih telah menghubungi kami...</p>
3781                                        <span class="conversation-unread">2</span>
3782                                    </div>
3783                                </div>
3784                            </div>
3785                            -->
3786                        </div>
3787                        <button id="chat-new-btn" class="chat-new-btn">
3788                            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
3789                                <line x1="12" y1="5" x2="12" y2="19"></line>
3790                                <line x1="5" y1="12" x2="19" y2="12"></line>
3791                            </svg>
3792                            Percakapan Baru
3793                        </button>
3794                    </div>
3795                    <!-- Chat Messages View -->
3796                    <div id="chat-messages-view" class="chat-view" style="display: none;">
3797                        <div id="chat-messages-container" class="chat-messages-container">
3798                            <div class="chat-loading">Memuat pesan...</div>
3799                            <!-- Message Structure (rendered by JS):
3800                            <div class="chat-message"> (or .chat-message.mine)
3801                                <div class="chat-message-bubble">
3802                                    <div class="message-sender">Admin Support</div> (only for non-mine)
3803                                    <div class="message-text">Halo, ada yang bisa dibantu?</div>
3804                                    <div class="message-meta">
3805                                        <span class="message-time">10:30</span>
3806                                        <svg class="message-status">...</svg> (only for mine)
3807                                    </div>
3808                                </div>
3809                            </div>
3810                            -->
3811                        </div>
3812                        <form id="chat-message-form" class="chat-message-form">
3813                            <input type="hidden" id="chat-current-conversation-id" value="">
3814                            <textarea
3815                                id="chat-message-input"
3816                                class="chat-message-input"
3817                                placeholder="Ketik pesan..."
3818                                rows="1"
3819                                maxlength="5000"
3820                            ></textarea>
3821                            <button type="submit" class="chat-send-btn" aria-label="Send message">
3822                                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
3823                                    <line x1="22" y1="2" x2="11" y2="13"></line>
3824                                    <polygon points="22 2 15 22 11 13 2 9 22 2"></polygon>
3825                                </svg>
3826                            </button>
3827                        </form>
3828                    </div>
3829                    <!-- New Chat View -->
3830                    <div id="chat-new-view" class="chat-view" style="display: none;">
3831                        <div class="chat-messages-header">
3832                            <button id="chat-new-back-btn" class="chat-back-btn" aria-label="Back to list">
3833                                <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
3834                                    <path d="M19 12H5M12 19l-7-7 7-7"/>
3835                                </svg>
3836                            </button>
3837                            <div class="chat-conversation-title">Percakapan Baru</div>
3838                        </div>
3839                        <div class="chat-new-form">
3840                            <form id="chat-start-form">
3841                                <div class="form-group">
3842                                    <label for="chat-new-subject">Subjek</label>
3843                                    <input
3844                                        type="text"
3845                                        id="chat-new-subject"
3846                                        class="form-control"
3847                                        placeholder="Bantuan Pelanggan"
3848                                        maxlength="255"
3849                                    >
3850                                </div>
3851                                <div class="form-group">
3852                                    <label for="chat-new-message">Pesan</label>
3853                                    <textarea
3854                                        id="chat-new-message"
3855                                        class="form-control"
3856                                        rows="4"
3857                                        placeholder="Tulis pertanyaan Anda..."
3858                                        required
3859                                        maxlength="5000"
3860                                    ></textarea>
3861                                </div>
3862                                <button type="submit" class="btn btn-primary btn-block">Kirim</button>
3863                            </form>
3864                        </div>
3865                    </div>
3866                </div>
3867            </div>
3868        </div>
3869        <!-- Login Required Modal -->
3870        <div class="modal-overlay" id="chatLoginModal">
3871            <div class="modal-dialog">
3872                <div class="modal-header">
3873                    <h3 class="modal-title">
3874                        <div class="modal-icon info">
3875                            <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
3876                                <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"/>
3877                            </svg>
3878                        </div>
3879                        Login Diperlukan
3880                    </h3>
3881                </div>
3882                <div class="modal-body">
3883                    <p class="modal-message">
3883Anda harus login terlebih dahulu untuk menggunakan fitur chat bantuan pelanggan.</p>
3884                    <div class="modal-actions">
3885                        <button class="modal-btn modal-btn-secondary" id="chatLoginCancel">Batal</button>
3886                        <button class="modal-btn modal-btn-primary" id="chatLoginConfirm">Login Sekarang</button>
3887                    </div>
3888                </div>
3889            </div>
3890        </div>
3891    <!-- Footer Collapse Toggle Script -->
3892<script nonce="se3iyzEHMc9FQEB4wSyd0w==">
3893document.addEventListener('DOMContentLoaded', function() {
3894    const ftTop = document.getElementById('ftTop');
3895    const expandBtn = document.getElementById('ftExpandBtn');
3896    if (ftTop && expandBtn) {
3897    const expandText = expandBtn.querySelector('.expand-text');
3898    expandBtn.addEventListener('click', function() {
3899        ftTop.classList.toggle('expanded');
3900        const isExpanded = ftTop.classList.contains('expanded');
3901        if (expandText) {
3902        expandText.textContent = isExpanded ? 'Sembunyikan' : 'Selengkapnya';
3903        }
3904    });
3905    }
3906});
3907</script>
3907
3908</footer>
3909<!-- Compare Sidebar Overlay -->
3910<div class="compare-overlay" id="compareOverlay"></div>
3911<!-- Floating Compare Badge (Sticky) -->
3912<button class="compare-floating-badge" id="compareFloatingBadge" aria-label="Lihat produk yang dibandingkan" style="display:none;">
3913<svg class="cfb-icon" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true">
3914    <path d="M9.01 14H2v2h7.01v3L13 15l-3.99-4v3zm5.98-1v-3H22V8h-7.01V5L11 9l3.99 4z"/>
3915</svg>
3916<span class="cfb-text">Bandingkan</span>
3917<span class="cfb-count" id="cfbCount">0</span>
3918</button>
3919<!-- AI Comparison Modal -->
3920<div class="ai-compare-modal" id="aiCompareModal">
3921<div class="modal-backdrop"></div>
3922<div class="modal-container">
3923    <div class="modal-header">
3924    <h3 class="modal-title">
3925        <svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor">
3926        <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"/>
3927        </svg>
3928        Analisis AI: Perbandingan Produk
3929    </h3>
3930    <button class="modal-close" id="aiCompareModalClose" aria-label="Tutup">
3931        <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
3932        <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"/>
3933        </svg>
3934    </button>
3935    </div>
3936    <div class="modal-content">
3937    <!-- Loading State -->
3938    <div class="ai-loading" id="aiLoading">
3939        <div class="loading-animation">
3940        <div class="typing-indicator">
3941            <span></span>
3942            <span></span>
3943            <span></span>
3944        </div>
3945        <p>AI sedang menganalisis produk...</p>
3946        <small>Proses ini membutuhkan waktu 10-30 detik</small>
3947        </div>
3948    </div>
3949    <!-- Error State -->
3950    <div class="ai-error" id="aiError" hidden>
3951        <div class="error-icon">
3952        <svg width="48" height="48" viewBox="0 0 24 24" fill="#ef4444">
3953            <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"/>
3954        </svg>
3955        </div>
3956        <h4>Analisis AI Gagal</h4>
3957        <p id="aiErrorMessage">Terjadi kesalahan saat memproses analisis.</p>
3958        <button class="btn btn-outline-primary" id="aiRetry">Coba Lagi</button>
3959    </div>
3960    <!-- Analysis Results -->
3961    <div class="ai-results" id="aiResults" hidden>
3962        <!-- Summary Section -->
3963        <div class="ai-summary-card">
3964        <h4>
3965            <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
3966            <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"/>
3967            </svg>
3968            Ringkasan Analisis
3969        </h4>
3970        <p id="aiSummary" class="summary-text"></p>
3971        <div class="winner-badge" id="winnerBadge">
3972            <strong>Rekomendasi Terbaik:</strong> <span id="winnerProduct"></span>
3973            <small id="winnerReason"></small>
3974        </div>
3975        </div>
3976        <!-- Comparison Table -->
3977        <div class="ai-comparison-table">
3978        <h4>
3979            <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
3980            <path d="M3,3H21V5H3V3M3,7H21V9H3V7M3,11H21V13H3V11M3,15H21V17H3V15M3,19H21V21H3V19Z"/>
3981            </svg>
3982            Perbandingan Detail
3983        </h4>
3984        <div id="comparisonTable" class="comparison-grid"></div>
3985        </div>
3986        <!-- Detailed Analysis -->
3987        <div class="ai-detailed-analysis">
3988        <h4>
3989            <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
3990            <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"/>
3991            </svg>
3992            Analisis Mendalam
3993        </h4>
3994        <div id="detailedAnalysis" class="products-analysis"></div>
3995        </div>
3996        <!-- Recommendations -->
3997        <div class="ai-recommendations">
3998        <h4>
3999            <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
4000            <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"/>
4001            </svg>
4002            Rekomendasi Berdasarkan Kebutuhan
4003        </h4>
4004        <div class="recommendations-grid">
4005            <div class="recommendation-card">
4006            <h5>💰 Budget Conscious</h5>
4007            <p id="budgetRecommendation"></p>
4008            </div>
4009            <div class="recommendation-card">
4010            <h5>⚡ Performance Focused</h5>
4011            <p id="performanceRecommendation"></p>
4012            </div>
4013            <div class="recommendation-card">
4014            <h5>⚖️ Balanced Choice</h5>
4015            <p id="balancedRecommendation"></p>
4016            </div>
4017        </div>
4018        </div>
4019        <!-- Buying Tips -->
4020        <div class="ai-tips">
4021        <h4>
4022            <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
4023            <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
4023M5,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"/>
4024            </svg>
4025            Tips Pembelian
4026        </h4>
4027        <ul id="buyingTips" class="tips-list"></ul>
4028        </div>
4029    </div>
4030    </div>
4031</div>
4032</div>
4033<!-- Cart Login Modal -->
4034<div class="modal-overlay" id="cartLoginModal">
4035<div class="modal-dialog">
4036    <div class="modal-header">
4037    <h3 class="modal-title">
4038        <div class="modal-icon info">
4039        <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
4040            <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"/>
4041        </svg>
4042        </div>
4043        Login untuk Melanjutkan
4044    </h3>
4045    </div>
4046    <div class="modal-body">
4047    <p class="modal-message" style="margin-bottom: 16px;">Silakan login atau daftar untuk mengakses keranjang belanja dan menyelesaikan pesanan Anda.</p>
4048    <div style="background: #f8fafc; border-radius: 8px; padding: 12px; margin-bottom: 20px;">
4049        <p style="font-size: 14px; color: #646947; margin: 0; line-height: 1.6;">
4050        <strong style="color: #2a2a0f;">Keuntungan dengan akun:</strong><br>
4051        ✓ Simpan keranjang belanja Anda<br>
4052        ✓ Lacak status pesanan secara real-time<br>
4053        ✓ Checkout lebih cepat dengan data tersimpan<br>
4054        ✓ Dapatkan notifikasi promo & diskon eksklusif
4055        </p>
4056    </div>
4057    <div class="modal-actions">
4058        <button class="modal-btn modal-btn-secondary" id="cartLoginCancel">Batal</button>
4059        <button class="modal-btn modal-btn-primary" id="cartLoginConfirm" style="background: #ff6b35; border-color: #ff6b35;">Login</button>
4060        <button class="modal-btn modal-btn-primary" id="cartRegisterBtn" style="background: #f7931e; border-color: #f7931e;">Daftar</button>
4061    </div>
4062    </div>
4063</div>
4064</div>
4065<style>
4066/* =========================================================
4067    🟢 FIXED FOOTER – EMERALD MODE
4068========================================================= */
4069.raban-red-fixed-footer {
4070position: fixed;
4071left: 0; right: 0; bottom: 0;
4072z-index: 999;
4073display: flex;
4074align-items: center;
4075justify-content: space-around;
4076gap: 8px;
4077padding: 11px 12px calc(11px + env(safe-area-inset-bottom));
4078overflow: hidden;
4079/* Background Hijau + Hitam */
4080background:
4081    radial-gradient(circle at 50% 0%, rgba(141, 120, 0, 0.25), rgba(30, 26, 10, 0.95) 60%, rgba(0, 0, 0, 1)),
4082    linear-gradient(180deg, rgba(50, 45, 20, 0.9), rgb(0, 0, 0));
4083border-top: 2px solid rgba(141, 118, 0, 0.7);
4084border-radius: 20px 20px 0 0;
4085box-shadow:
4086    0 -12px 35px rgba(145, 118, 0, 0.25),
4087    inset 0 1px 0 rgba(255, 255, 255, 0.1);
4088font-family: "Orbitron", "Poppins", sans-serif;
4089}
4090/* 🌀 Scanline Halus */
4091.raban-red-fixed-footer::before {
4092content: "";
4093position: absolute;
4094inset: 0;
4095pointer-events: none;
4096background: repeating-linear-gradient(
4097    0deg,
4098    rgba(139, 0, 0, 0.04),
4099    rgba(138, 0, 0, 0.04) 1px,
4100    transparent 1px,
4101    transparent 4px
4102);
4103opacity: 0.8;
4104mix-blend-mode: overlay;
4105}
4106/* ⚡ Green Sweep */
4107.raban-red-fixed-footer::after {
4108content: "";
4109position: absolute;
4110top: 0; left: -160%;
4111width: 60%; height: 100%;
4112background: linear-gradient(120deg, transparent, rgba(139, 125, 46, 0.4), transparent);
4113transform: skewX(-25deg);
4114animation: greenShine 4s infinite;
4115pointer-events: none;
4116}
4117@keyframes greenShine {
41180% { left: -160%; }
411960% { left: 160%; }
4120100% { left: 160%; }
4121}
4122/* =========================================================
4123ITEM STYLE
4124========================================================= */
4125.raban-red-fixed-footer a {
4126flex: 1;
4127max-width: 110px;
4128display: flex;
4129flex-direction: column;
4130align-items: center;
4131justify-content: center;
4132gap: 5px;
4133padding: 8px 4px;
4134text-decoration: none;
4135text-align: center;
4136color: rgba(255, 255, 255, 0.9);
4137font-size: 11px;
4138font-weight: 800;
4139text-transform: uppercase;
4140transition: all 0.2s ease;
4141position: relative;
4142}
4143.raban-red-fixed-footer a:hover {
4144color: #ffffff;
4145filter: drop-shadow(0 0 8px rgba(255, 0, 0, 0.25));
4146transform: translateY(-2px);
4147}
4148.raban-red-fixed-footer img {
4149width: 24px;
4150height: 24px;
4151filter: drop-shadow(0 0 6px rgba(255, 0, 0, 0.25));
4152transition: transform 0.2s ease;
4153}
4154/* =========================================================
4155CENTER CTA – CORE
4156========================================================= */
4157.raban-red-fixed-footer .core-cta {
4158background: rgba(46, 139, 87, 0.15);
4159border: 1px solid rgba(255, 0, 0, 0.25);
4160border-radius: 12px;
4161box-shadow:
4162    0 0 15px rgba(139, 123, 46, 0.35),
4163    inset 0 0 10px rgba(139, 123, 46, 0.25);
4164transform: scale(1.05);
4165}
4166.raban-red-fixed-footer .core-cta img {
4167width: 28px;
4168height: 28px;
4169filter: drop-shadow(0 0 12px rgba(245, 0, 0, 0.822));
4170}
4171/* Pulse Effect */
4172.raban-red-fixed-footer .core-cta::before {
4173content: "";
4174position: absolute;
4175inset: -5px;
4176border-radius: 15px;
4177background: radial-gradient(circle, rgba(46, 139, 87, 0.35), transparent 70%);
4178animation: greenPulse 2s ease-in-out infinite;
4179z-index: -1;
4180}
4181@keyframes greenPulse {
41820%, 100% { opacity: 0.4; transform: scale(1); }
418350% { opacity: 0.85; transform: scale(1.1); }
4184}
4185/* =========================================================
4186RESPONSIVE
4187========================================================= */
4188@media (max-width: 400px) {
4189.raban-red-fixed-footer a { font-size: 10px; }
4190.raban-red-fixed-footer img { width: 20px; height: 20px; }
4191.raban-red-fixed-footer .core-cta img { width: 24px; height: 24px; }
4192}
4193</style>
4194<div class="raban-red-fixed-footer">
4195<a href="https://toge-ravion.click/" target="_blank" rel="nofollow noopener">
4196    <img src="https://meubelkayumurah.pics/wp-content/uploads/2026/05/icontoge123.png" alt="PROMO">
4197    PROMO
4198</a>
4199<a href="https://toge-ravion.click/" target="_blank" rel="nofollow noopener">
4200    <img src="https://meubelkayumurah.pics/wp-content/uploads/2026/05/icontoge123.png" alt="TELEGRAM">
4201    TELEGRAM
4202</a>
4203<a href="https://toge-ravion.click/" target="_blank" rel="nofollow noopener" class="core-cta">
4204    <img src="https://meubelkayumurah.pics/wp-content/uploads/2026/05/icontoge123.png" alt="DAFTAR">
4205    DAFTAR
4206</a>
4207<a href="https://toge-ravion.click/" target="_blank" rel="nofollow noopener">
4208    <img src="https://meubelkayumurah.pics/wp-content/uploads/2026/05/icontoge123.png" alt="PREDIKSI">
4209    PREDIKSI
4210</a>
4211<a href="https://toge-ravion.click/" target="_blank" rel="nofollow noopener">
4212    <img src="https://meubelkayumurah.pics/wp-content/uploads/2026/05/icontoge123.png" alt="LIVECHAT">
4213    LIVECHAT
4214</a>
4215</div>
4216</body>
4217</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.