PageSourceSearch

https://thegodlight.co.uk/

html thegodlight.co.uk collected 2026-10-02 14:28:40 UTC 257,086 bytes, 4,990 lines download raw bytes

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

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.