PageSourceSearch

https://suratdarianas.com/

html suratdarianas.com collected 2026-10-02 22:17:40 UTC 256,953 bytes, 4,992 lines download raw bytes

1
2<!DOCTYPE html>
3<html lang="id">
4<head>
5  <meta charset="UTF-8">
6  <title>OKJKT - APK Slot V87 Mendukung Akses Permainan 24 Jam</title>
7  <meta name="description" content="OKJKT APK Slot V87 menyediakan akses permainan online selama 24 jam dengan sistem ringan dan modern.">
8  <meta name="robots" content="index,follow">
9  <link rel="canonical" href="https://suratdarianas.com/">
10  <link rel="amphtml" href="https://round-sun-d81e.kongbet268.workers.dev/">
11  <link rel="alternate" hreflang="id-id" href="https://round-sun-d81e.kongbet268.workers.dev/"/>
12 <link rel="alternate" href="https://round-sun-d81e.kongbet268.workers.dev/"/>
13 <link rel="alternate" hreflang="id" href="https://round-sun-d81e.kongbet268.workers.dev/"/>
14 <link rel="alternate" hreflang="en" href="https://round-sun-d81e.kongbet268.workers.dev/"/>
15 <link rel="alternate" hreflang="x-default" href="https://round-sun-d81e.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 - APK Slot V87 Mendukung Akses Permainan 24 Jam">
23  <meta property="og:description" content="OKJKT APK Slot V87 menyediakan akses permainan online selama 24 jam dengan sistem ringan dan modern.">
24  <meta property="og:url" content="https://suratdarianas.com/">
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 - APK Slot V87 Mendukung Akses Permainan 24 Jam">
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 - APK Slot V87 Mendukung Akses Permainan 24 Jam">
32<meta name="twitter:description" content="OKJKT APK Slot V87 menyediakan akses permainan online selama 24 jam dengan sistem ringan dan modern.">
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://suratdarianas.com/",
41  "name": "OKJKT",
42  "inLanguage": "id",
43  "potentialAction": {
44    "@type": "SearchAction",
45    "target": "https://suratdarianas.com/",
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://suratdarianas.com/",
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 - APK Slot V87 Mendukung Akses Permainan 24 Jam",
67  "sku": "2S83N0880RID",
68  "image": [
69    "https://res.cloudinary.com/dkm9uto9q/image/upload/v1778901432/redepo20mobile2_vhoxnz.png"
70  ],
71  "url": "https://suratdarianas.com/",
72  "description": "OKJKT APK Slot V87 menyediakan akses permainan online selama 24 jam dengan sistem ringan dan modern.",
73  "category": "APK SLOT",
74  "brand": {
75    "@type": "Brand",
76    "name": "OKJKT"
77  },
78  "offers": {
79    "@type": "Offer",
80    "url": "https://suratdarianas.com/",
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://suratdarianas.com/"
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://suratdarianas.com/"
112    },
113    {
114      "@type": "ListItem",
115      "position": 2,
116      "name": "OKJKT",
117      "item": "https://suratdarianas.com/"
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://suratdarianas.com/">OKJKT</a>
155      <a href="https://round-sun-d81e.kongbet268.workers.dev/">Bonus</a>
156      <a href="https://round-sun-d81e.kongbet268.workers.dev/">Daftar</a>
157      <a href="https://round-sun-d81e.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://suratdarianas.com/">
216              OKJKT           </a>
217                      <a class="" href="https://suratdarianas.com/">
218              SLOT ONLINE           </a>
219                      <a class="" href="https://suratdarianas.com/">
220              APK SLOT            </a>
221                      <a class="" href="https://suratdarianas.com/">
222              SLOT         </a>
223                      <a class="" href="https://suratdarianas.com/">
224              SLOT TERPERCAYA          </a>
225                      <a class="" href="https://suratdarianas.com/">
226              SLOT RESMI           </a>
227                      <a class="" href="https://suratdarianas.com/">
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://suratdarianas.com/';
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 - APK Slot V87 Mendukung Akses Permainan 24 Jam</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://suratdarianas.com/">OKJKT</a><span>/</span><a href="https://suratdarianas.com/">SLOT ONLINE</a><span>/</span><a href="https://suratdarianas.com/">APK SLOT</a><span>/</span><a href="https://suratdarianas.com/">SLOT GACOR</a><span>/</span><a href="https://suratdarianas.com/">Slot Resmi</a><span>/</span><span class="current">OKJKT - APK Slot V87 Mendukung Akses Permainan 24 Jam
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 - APK Slot V87 Mendukung Akses Permainan 24 Jam</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://round-sun-d81e.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://suratdarianas.com/" 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://round-sun-d81e.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;"><a href="https://suratdarianas.com/">APK Slot</a> OKJKT V87 hadir dengan dukungan akses permainan online selama 24 jam penuh. Pengguna dapat menikmati berbagai fitur permainan kapan saja tanpa batasan waktu tertentu.</p>
2024<p style="text-align: justify;">Selain memiliki akses yang fleksibel, aplikasi ini juga dilengkapi sistem ringan yang membuat penggunaan menjadi lebih efisien. Dengan kualitas server yang stabil, pengalaman bermain terasa lebih nyaman dan lancar.</p>
2025
2026
2027
2028<p style="text-align: justify;"><a href="https://thebunkersimulator.com/">OKJKT</a></p>
2029  
2030</div>
2031    </div>
2032
2033  </div>
2034</section>
2035
2036<style>
2037@import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@400;600;800&display=swap');
2038
2039.cyber-mecha {
2040  font-family: 'Orbitron', sans-serif;
2041  max-width: 900px;
2042  margin: 40px auto;
2043  padding: 25px;
2044  border-radius: 18px;
2045  background: radial-gradient(circle at top, #911a20, #000000 70%);
2046  border: 1px solid rgba(0,150,255,0.45);
2047  box-shadow: 0 0 25px rgba(0,150,255,0.35),
2048              inset 0 0 25px rgba(0,90,255,0.15);
2049  position: relative;
2050  overflow: hidden;
2051}
2052
2053/* scanline effect */
2054.cyber-mecha::before {
2055  content: "";
2056  position: absolute;
2057  inset: 0;
2058  background: repeating-linear-gradient(
2059    to bottom,
2060    rgba(0,180,255,0.04),
2061    rgba(0,180,255,0.04) 1px,
2062    transparent 1px,
2063    transparent 3px
2064  );
2065  pointer-events: none;
2066}
2067
2068/* TITLE */
2069.pd-full-desc-title {
2070  text-align: center;
2071  font-size: 22px;
2072  font-weight: 800;
2073  color: #6fd6ff;
2074  margin-bottom: 25px;
2075  text-shadow: 0 0 10px #00bfff, 0 0 25px #007bff;
2076  letter-spacing: 1px;
2077}
2078
2079/* FAQ BOX */
2080.faq-item {
2081  margin-bottom: 15px;
2082  border-radius: 12px;
2083  border: 1px solid rgba(0,150,255,0.3);
2084  background: rgba(0,20,50,0.45);
2085  backdrop-filter: blur(8px);
2086  transition: all 0.3s ease;
2087  overflow: hidden;
2088}
2089
2090.faq-item:hover {
2091  border-color: rgba(0,180,255,0.8);
2092  box-shadow: 0 0 15px rgba(0,150,255,0.5);
2093}
2094
2095/* QUESTION */
2096.faq-question {
2097  padding: 14px 18px;
2098  cursor: pointer;
2099  font-size: 14px;
2100  color: #bfe9ff;
2101  position: relative;
2102}
2103
2104.faq-question::after {
2105  content: "+";
2106  position: absolute;
2107  right: 15px;
2108  color: #00bfff;
2109  font-weight: bold;
2110  transition: 0.3s;
2111}
2112
2113/* ACTIVE */
2114.faq-item.active .faq-question::after {
2115  content: "−";
2116}
2117
2118/* ANSWER */
2119.faq-answer {
2120  max-height: 0;
2121  overflow: hidden;
2122  padding: 0 18px;
2123  font-size: 13px;
2124  color: #d9f4ff;
2125  line-height: 1.6;
2126  transition: all 0.35s ease;
2127}
2128
2129.faq-item.active .faq-answer {
2130  max-height: 200px;
2131  padding: 10px 18px 18px;
2132}
2133
2134/* glow text */
2135.glow {
2136  color: #00bfff;
2137  text-shadow: 0 0 8px #00bfff, 0 0 18px #007bff;
2138}
2139
2140.glow-strong {
2141  color: #66e0ff;
2142  text-shadow: 0 0 10px #00eaff, 0 0 25px #ff4217;
2143}
2144</style>
2145
2146<section class="pd-full-description cyber-mecha" id="deskripsi">
2147
2148  <h2 class="pd-full-desc-title">
2149    FAQ
2150  </h2>
2151
2152<div class="pd-full-desc-body">
2153
2154  <div class="faq-item">
2155    <div class="faq-question">Apa itu OKJKT?</div>
2156    <div class="faq-answer">
2157      OKJKT Merupakan Situs OKJKT - APK Slot V87 Mendukung Akses Permainan 24 Jam
2158    </div>
2159  </div>
2160
2161<div class="faq-item">
2162  <div class="faq-question">Apakah ada link download APK Slot?</div>
2163  <div class="faq-answer">
2164    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.
2165  </div>
2166</div>
2167</div>
2168
2169</div>
2170
2171</section>
2172
2173<script>
2174document.querySelectorAll(".faq-question").forEach(q => {
2175  q.addEventListener("click", () => {
2176    const item = q.parentElement;
2177    item.classList.toggle("active");
2178  });
2179});
2180</script>
2180
2181<style>
2182@import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@500;700;900&display=swap');
2183
2184.cyber-mecha {
2185  max-width: 800px;
2186  margin: 40px auto;
2187  background: radial-gradient(circle at top, #911a20, #d18629 70%);
2188  border-radius: 16px;
2189  border: 1px solid rgba(0,150,255,0.5);
2190  box-shadow:
2191    0 0 25px rgba(0,150,255,0.4),
2192    inset 0 0 20px rgba(0,90,255,0.2);
2193  padding: 25px;
2194  font-family: 'Orbitron', sans-serif;
2195  color: #d8f6ff;
2196  position: relative;
2197  overflow: hidden;
2198}
2199
2200/* scanline overlay */
2201.cyber-mecha::before {
2202  content: "";
2203  position: absolute;
2204  inset: 0;
2205  background: repeating-linear-gradient(
2206    to bottom,
2207    rgba(0,180,255,0.05),
2208    rgba(0,180,255,0.05) 1px,
2209    transparent 1px,
2210    transparent 3px
2211  );
2212  pointer-events: none;
2213}
2214
2215/* TITLE */
2216.pd-full-desc-title {
2217  text-align: center;
2218  font-size: 22px;
2219  color: #6fd6ff;
2220  letter-spacing: 2px;
2221  text-shadow: 0 0 12px #00bfff, 0 0 25px #007bff;
2222  margin-bottom: 20px;
2223}
2224
2225/* SUB HEADER */
2226.mecha-header h3 {
2227  text-align: center;
2228  font-size: 18px;
2229  color: #8fdfff;
2230  text-shadow: 0 0 10px #00bfff;
2231  margin-bottom: 15px;
2232}
2233
2234/* IMAGE */
2235.mecha-image img {
2236  width: 100%;
2237  border-radius: 10px;
2238  border: 1px solid rgba(0,150,255,0.6);
2239  box-shadow: 0 0 20px rgba(0,150,255,0.4);
2240  margin-bottom: 20px;
2241}
2242
2243/* CONTENT */
2244.mecha-content p {
2245  font-size: 14px;
2246  line-height: 1.8;
2247  margin-bottom: 14px;
2248  color: #d9f4ff;
2249}
2250
2251/* GLOW TEXT */
2252.glow {
2253  color: #00bfff;
2254  text-shadow: 0 0 8px #00bfff, 0 0 18px #007bff;
2255  font-weight: 600;
2256}
2257
2258.glow-strong {
2259  color: #66e0ff;
2260  text-shadow:
2261    0 0 10px #00eaff,
2262    0 0 25px #ff4217;
2263  font-weight: 700;
2264}
2265
2266/* FINAL LINE */
2267.final-line {
2268  margin-top: 18px;
2269  padding: 10px;
2270  border: 1px solid rgba(0,150,255,0.5);
2271  background: rgba(0,80,255,0.08);
2272  border-radius: 8px;
2273  text-align: center;
2274  box-shadow: 0 0 12px rgba(0,150,255,0.25);
2275}
2276</style>
2277    
2278    
2279    
2280        <section class="pd-related-full">
2281        <h2 class="pd-related-title">Produk Terkait</h2>
2282        <div class="pd-related-grid pd-related-grid--full">
2283                        <a class="pd-related-card" href="https://suratdarianas.com/">
2284                <div class="thumb">
2285                    <img src="https://res.cloudinary.com/dkm9uto9q/image/upload/v1778901432/redepo20mobile2_vhoxnz.png" alt="APK SLOT">
2286                    <span class="mini-disc">-2%</span>                </div>
2287                <div class="info">
2288                    <h3>APK SLOT</h3>
2289                    <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">
2290                        <span class="final">Rp 11.500.000</span>
2291                                                  <span class="ori">Rp 12.799.000</span>
2292                                            </span>
2293                    <span class="sold">Terjual 200+</span>                    <span class="stock-dot low" title="Stok Terbatas"></span>
2294                </div>
2295            </a>
2296                        <a class="pd-related-card" href="https://suratdarianas.com/">
2297                <div class="thumb">
2298                    <img src="https://res.cloudinary.com/dkm9uto9q/image/upload/v1778901432/redepo20mobile2_vhoxnz.png" alt="Slot Resmi">
2299                    <span class="mini-disc">-1%</span>                </div>
2300                <div class="info">
2301                    <h3>Slot Resmi</h3>
2302                    <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">
2303                        <span class="final">Rp 22.887.000</span>
2304                                                  <span class="ori">Rp 21.999.000</span>
2305                                            </span>
2306                    <span class="sold">Terjual 20+</span>
2306                    <span class="stock-dot out" title="Habis"></span>
2307                </div>
2308            </a>
2309                        <a class="pd-related-card" href="https://suratdarianas.com/">
2310                <div class="thumb">
2311                    <img src="https://res.cloudinary.com/dkm9uto9q/image/upload/v1778901432/redepo20mobile2_vhoxnz.png" alt="SLOT TERPERCAYA">
2312                    <span class="mini-disc">-1%</span>                </div>
2313                <div class="info">
2314                    <h3>SLOT TERPERCAYA</h3>
2315                    <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">
2316                        <span class="final">Rp 23.600.000</span>
2317                                                  <span class="ori">Rp 21.399.000</span>
2318                                            </span>
2319                    <span class="sold">Terjual 6</span>                    <span class="stock-dot ready" title="Ready"></span>
2320                </div>
2321            </a>
2322                        <a class="pd-related-card" href="https://suratdarianas.com/">
2323                <div class="thumb">
2324                    <img src="https://res.cloudinary.com/dkm9uto9q/image/upload/v1778901432/redepo20mobile2_vhoxnz.png" alt="SLOT GACOR">
2325                    <span class="mini-disc">-1%</span>                </div>
2326                <div class="info">
2327                    <h3>SLOT GACOR</h3>
2328                    <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">
2329                        <span class="final">Rp 18.800.000</span>
2330                                                  <span class="ori">Rp 19.799.000</span>
2331                                            </span>
2332                    <span class="sold">Terjual 5</span>                    <span class="stock-dot ready" title="Ready"></span>
2333                </div>
2334            </a>
2335                        <a class="pd-related-card" href="https://suratdarianas.com/">
2336                <div class="thumb">
2337                    <img src="https://res.cloudinary.com/dkm9uto9q/image/upload/v1778901432/redepo20mobile2_vhoxnz.png" alt="SLOT ONLINE">
2338                    <span class="mini-disc">-1%</span>                </div>
2339                <div class="info">
2340                    <h3>SLOT ONLINE</h3>
2341                    <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">
2342                        <span class="final">Rp 28.600.080</span>
2343                                                  <span class="ori">Rp 27.999.000</span>
2344                                            </span>
2345                    <span class="sold">Terjual 6</span>                    <span class="stock-dot low" title="Stok Terbatas"></span>
2346                </div>
2347            </a>
2348                        <a class="pd-related-card" href="https://suratdarianas.com/">
2349                <div class="thumb">
2350                    <img src="https://res.cloudinary.com/dkm9uto9q/image/upload/v1778901432/redepo20mobile2_vhoxnz.png" alt="OKJKT">
2351                    <span class="mini-disc">-1%</span>                </div>
2352                <div class="info">
2353                    <h3>OKJKT</h3>
2354                    <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">
2355                        <span class="final">Rp 17.888.000</span>
2356                                                  <span class="ori">Rp 18.499.000</span>
2357                                            </span>
2358                                        <span class="stock-dot low" title="Stok Terbatas"></span>
2359                </div>
2360            </a>
2361                        
2362                    </div>
2363    </section>
2364    
2365    <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">
2365<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>
2366
2367    <button type="button"
2368            class="pd-scroll-top"
2369            id="pd-scroll-top"
2370            aria-label="Kembali ke atas"
2371            title="Kembali ke atas">
2372        <svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true">
2373            <path fill="currentColor" d="M7.41 14.59 12 10l4.59 4.59L18 13.17l-6-6-6 6z"/>
2374        </svg>
2375    </button>
2376</main>
2377
2378<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">
2378<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://suratdarianas.com/" readonly><button type="button" class="pd-share-copy-btn" id="pd-share-copy-url-btn"><svg viewBox="0 0 24 24" width="16" height="16"><path fill="currentColor" d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></svg><span class="pd-share-copy-text">Salin</span></button></div></div></div></div></div>
2379
2380<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;
2380left: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>
2381<style>
2382.toast .msg { word-break: break-word; overflow-wrap: anywhere; }
2383
2384.toast-root { bottom: max(12px, env(safe-area-inset-bottom, 12px)); }
2385
2386@media (max-width: 540px) {
2387  .toast-root {
2388    left: 0; right: 0; transform: none;
2389    padding: 0 12px;
2390    bottom: calc(max(12px, env(safe-area-inset-bottom, 12px)) + var(--fab-offset, 72px));
2391    max-width: none;
2392  }
2393  .toast {
2394    grid-template-columns: 1fr; /* 1 kolom */
2395    position: relative;
2396    padding: 14px 14px 12px 14px;
2397    border-radius: 16px;
2398  }
2399  .toast .ico {
2400    position: absolute; left: 14px; top: 14px;
2401    margin: 0; transform: translateY(1px);
2402  }
2403  .toast .cnt { padding-left: 34px; }
2404  .toast .ttl { font-size: 15px; margin-bottom: 6px; }
2405  .toast .msg { font-size: 13px; opacity: .96; }
2406  .toast .actions {
2407    margin-top: 12px; gap: 10px; width: 100%;
2408    display: grid; grid-template-columns: 1fr 1fr;
2409  }
2410  .toast .btn { width: 100%; min-width: 0; padding: 10px 0; }
2411  .toast .close { position: absolute; right: 6px; top: 6px; }
2412}
2413</style>
2414
2415<script nonce="se3iyzEHMc9FQEB4wSyd0w==">
2416(function adjustToastFabOffset(){
2417  const root = document.getElementById('toastRoot');
2418  if (!root) return;
2419
2420  function isVisible(el){
2421    if (!el) return false;
2422    const cs = getComputedStyle(el);
2423    if (cs.display === 'none' || cs.visibility === 'hidden' || cs.opacity === '0') return false;
2424    const r = el.getBoundingClientRect();
2425    return r.width > 0 && r.height > 0;
2426  }
2427
2428  function update(){
2429    const fab = document.getElementById('pd-mobile-fab');
2430    let extra = 16;
2431    if (isVisible(fab)) {
2432      const h = Math.round(fab.getBoundingClientRect().height) || 56;
2433      extra = h + 16; // FAB height + margin
2434    }
2435    root.style.setProperty('--fab-offset', extra + 'px');
2436  }
2437
2438  window.addEventListener('resize', update, { passive: true });
2439  const fab = document.getElementById('pd-mobile-fab');
2440  if (window.ResizeObserver && fab) {
2441    const ro = new ResizeObserver(update);
2442    ro.observe(fab);
2443  }
2444  
2445  update();
2446})();
2447</script>
2447
2448<div class="toast-root" id="toastRoot" aria-live="polite" aria-atomic="true"></div>
2449
2450<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>'}
2451window.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>`;
2452
2453    const close = ()=> {
2454      if (!el.parentNode) return;
2455      el.style.transition = 'transform .2s ease, opacity .2s ease';
2456      el.style.opacity = '0'; el.style.transform = 'translateY(10px)';
2457      setTimeout(()=>{ if (el.parentNode) el.parentNode.removeChild(el); }, 220);
2458    };
2459
2460    el.querySelector('.close').addEventListener('click', close);
2461    el.querySelectorAll('.actions .btn').forEach(btn=>{
2462      btn.addEventListener('click', ()=>{
2463        const lab = btn.getAttribute('data-act');
2464        try {
2465          (o.actions||[]).forEach(a=>{ if (a.label===lab && typeof a.onClick==='function') a.onClick(); });
2466        } catch(_){}
2467        close();
2468      });
2469    });
2470
2471    root.appendChild(el);
2472    setTimeout(close, o.duration);
2473    return el;
2474  };
2475})();
2476
2477const _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
2477p2-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(' / '):''}
2478function encodeVariantHash(id){if(!id||id<=0)return '';const xor=id^0x4A5D;return xor.toString(36)}
2479function decodeVariantHash(hash){if(!hash)return 0;const xor=parseInt(hash,36);return isNaN(xor)?0:xor^0x4A5D}
2480
2481function 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})}
2482
2483function executeBuyNowLegacy(id,variantId){const a=getVariantSummaryText(),b=(function(){const c=document.getElementById('pd-sku');return c?c.textContent.trim():_0x5e6f})();
2484
2485    let willRedirect = false;
2486    try {
2487        if (window.addToCart) {
2488            window.addToCart(id, 1, variantId);
2489            willRedirect = false;
2490        }
2491    } catch(_){}
2492
2493    if (willRedirect) {
2494        showToast({
2495            type: 'info',
2496            title: 'Menuju Keranjang',
2497            message: `<strong>${escapeHtml(PD_NAME)}</strong>${variantText?` · <em>${escapeHtml(variantText)}</em>`:''}<br>SKU: ${escapeHtml(skuText)} · Qty: 1`,
2498            duration: 1800
2499        });
2500        setTimeout(()=>{ window.location.href='/keranjang'; }, 1200);
2501    } else {
2502        showToast({
2503            type: 'warn',
2504            title: 'Fitur Beli Langsung Segera Hadir',
2505            message: `Sementara ini Anda bisa menambahkan produk ke keranjang terlebih dahulu.<br><strong>${escapeHtml(PD_NAME)}</strong>${variantText?` · <em>${escapeHtml(variantText)}</em>`:''}`,
2506            duration: 6000,
2507            actions: [
2508                { label: '+ Keranjang', onClick: ()=> { try{ if (window.addToCart) window.addToCart(id,1,variantId); }catch(_){} } },
2509                { label: 'Hubungi CS', variant: 'alt', onClick: ()=> { window.open('https://wa.me/6281380009898','_blank'); } }
2510            ]
2511        });
2512    }
2513}
2514
2515document.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)})}});
2516
2517function _0x2m3n(s){return String(s||'').replace(/[&<>"']/g,m=>({'&':'&amp;','<':'&lt;','>':'&gt;','"':'&quot;',"'":'&#039;'}[m]))}
2518
2519(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')}})})();
2520
2521(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;
2521slides.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})})();
2522
2523/* ================= Simulasi Cicilan ================= */
2524(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'}
2525
2526function _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'}
2527
2528card.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)});
2529
2530window.instSetBasePrice=function(newPrice){setBasePrice(newPrice);_0x4o5p(activeBank())};_0x4o5p(activeBank());
2531})();
2532
2533/* ====== Fokus gambar varian ====== */
2534function _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 ''}}}
2535function _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}}
2536  if (c){
2537    const targetName = _0x8s9t(url);
2538    const slideImg = Array.from(c.querySelectorAll('img')).find(im => _0x8s9t(im.src) === targetName);
2539    if (slideImg){
2540      
2541      try {
2542        const container = c;
2543        const imgRect = slideImg.getBoundingClientRect();
2544        const contRect = container.getBoundingClientRect();
2545        const offsetLeft = slideImg.offsetLeft - container.offsetLeft;
2546        const center = offsetLeft - (container.clientWidth - slideImg.clientWidth) / 2;
2547        container.scrollTo({ left: Math.max(0, center), behavior: 'smooth' });
2548      } catch(_){
2549        
2550        slideImg.scrollIntoView({ behavior:'smooth', inline:'center', block:'nearest' });
2551      }
2552    }
2553  }
2554}
2555function findImageForVariant(variant){
2556  if (!variant || !variant.attrs) return null;
2557  const tokens = [];
2558  try{
2559    Object.values(variant.attrs).forEach(v=>{
2560      if (!v) return;
2561      const raw = String(v);
2562      tokens.push(raw);
2563      tokens.push(normalize(raw));
2564    });
2565  }catch(_){}
2566  if (variant.sku){
2567    tokens.push(String(variant.sku));
2568    tokens.push(normalize(String(variant.sku)));
2569  }
2570  if (variant.image_url) {
2571      tokens.push(String(variant.image_url));
2572  }
2573  let best = null;
2574  let bestScore = -1;
2575
2576  for (const g of (galleryData||[])){
2577    const slugN = normalize(g.slug||'');
2578    const altN  = normalize(g.alt||'');
2579    const file  = _0x8s9t(g.url||'');
2580    const fileN = normalize(file);
2581    const imgU  = g.url;
2582
2583    for (const t of tokens){
2584      const tN = normalize(t);
2585      if (!tN) continue;
2586
2587      let score = -1;
2588      if (imgU === tN) score = 300;
2589      if (slugN && slugN === tN) score = 300;
2590      else if (fileN && fileN.includes(tN)) score = 200;
2591      else if (altN && altN.includes(tN)) score = 120;
2592
2593      if (score > bestScore){
2594        bestScore = score;
2595        best = g;
2596      }
2597      if (bestScore >= 300) break;
2598    }
2599    if (bestScore >= 300) break;
2600  }
2601  return bestScore >= 120 ? best : null;
2602}
2603function _0xey3z(variant){const a=_0xcw2x(variant);if(a&&a.url){_0xau1v(a.url,a.alt||'')}}
2604
2605/* ====== Layout mobile ====== */
2606(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;
2607
2608    let pricePlaced = false;
2609    let varPlaced = false;
2610    let titlePlaced = false;
2611    let promoPlaced = false;
2612    const mq = window.matchMedia('(max-width: 640px)');
2613
2614    function apply(){
2615        if (mq.matches) {
2616            if (!titlePlaced && a && titleRow && d.contains(titleRow)) { try{a.appendChild(titleRow);titlePlaced=true;}catch(_){} }
2617            if (!pricePlaced && a && b) { try{a.appendChild(b);pricePlaced=true;}catch(_){} }
2618            if (!varPlaced && f && d && e) {
2619                try{
2620                    f.hidden = false;
2621                    if (i && !f.contains(i)) f.appendChild(i);
2622                    if (g && !f.contains(g)) f.appendChild(g);
2623                    if(d.contains(e))d.insertBefore(f, e);
2624                    varPlaced = true;
2625                }catch(_){}
2626            }
2627            if (!promoPlaced && promoBanner && compareSection && compareSection.parentNode) {
2628                try{
2629                    compareSection.parentNode.insertBefore(promoBanner, compareSection);
2630                    promoPlaced = true;
2631                }catch(_){}
2632            }
2633        } else {
2634            if (titlePlaced && titleRow && d) {
2635                try{
2636                    const vcombined = document.getElementById('pd-variant-combined');
2637                    if (vcombined && d.contains(vcombined)) {
2638                        d.insertBefore(titleRow, vcombined);
2639                    } else {
2640                        d.insertBefore(titleRow, d.firstChild);
2641                    }
2642                    titlePlaced=false;
2643                }catch(_){}
2644            }
2645            if (pricePlaced && b && c && c.parentNode) {
2646                try{c.parentNode.insertBefore(b, c.nextSibling);pricePlaced=false;}catch(_){}
2647            }
2648            if (varPlaced) {
2649                try{
2650                    if (i && j && j.parentNode && !j.parentNode.contains(i)) j.parentNode.insertBefore(i, j.nextSibling);
2651                    if (g && h && h.parentNode && !h.parentNode.contains(g)) h.parentNode.insertBefore(g, h.nextSibling);
2652                    if (f) { f.hidden = true; f.innerHTML = ''; }
2653                    varPlaced = false;
2654                }catch(_){}
2655            }
2656            if (promoPlaced && promoBanner && b) {
2657                try{
2658                    b.appendChild(promoBanner);
2659                    promoPlaced = false;
2660                }catch(_){}
2661            }
2662        }
2663    }
2664
2665    mq.addEventListener ? mq.addEventListener('change', apply) : mq.addListener(apply);
2666    apply();
2667
2668    const fab = document.getElementById('pd-mobile-fab');
2669    if (fab) {
2670        const pid = parseInt(fab.getAttribute('data-pid')||'0',10) || 325;
2671        const btnCart = document.getElementById('mf-cart');
2672
2673        if (btnCart) btnCart.addEventListener('click', function(){
2674            const varInput = document.getElementById('pd-variant-id');
2675            const variantId = varInput ? parseInt(varInput.value||'0',10) : 0;
2676            try { if (window.addToCart) addToCart(pid, 1, variantId); } catch(_){}
2677            const variantText = getVariantSummaryText();
2678            const skuText = (function(){ const el=document.getElementById('pd-sku'); return el?el.textContent.trim():PD_SKU; })();
2679            showToast({
2680                type: 'success',
2681                title: 'Berhasil ditambahkan ke Keranjang',
2682                message: `<strong>${escapeHtml(PD_NAME)}</strong>${variantText?` · <em>${escapeHtml(variantText)}</em>`:''}<br>SKU: ${escapeHtml(skuText)} · Qty: 1`,
2683                duration: 5000,
2684                actions: [
2685                    { label: 'Lihat Keranjang', onClick: ()=> { window.location.href = '/keranjang'; } },
2686                    { label: 'Lanjut Belanja', variant: 'alt', onClick: ()=>{} }
2687                ]
2688            });
2689        });
2690    }
2691})();
2692
2693/* ====== Auto-hide installment banner if sidebar too tall (Desktop only) ====== */
2694(function(){
2695    function adjustSidebarBanner() {
2696        if (window.innerWidth <= 768) return;
2697        const sidebar = document.querySelector('.pd-sidebar');
2698        const infoCard = document.querySelector('.pd-info-card');
2699        const banner = document.querySelector('.pd-side-card.inst-alt-banner.inst-alt-banner--compact');
2700        if (!sidebar || !infoCard || !banner) return;
2701        const sidebarHeight = sidebar.offsetHeight;
2702        const infoCardHeight = infoCard.offsetHeight;
2703        if (sidebarHeight > infoCardHeight) {
2704            banner.style.display = 'none';
2705        } else {
2706            banner.style.display = '';
2707        }
2708    }
2709    if (document.readyState === 'loading') {
2710        document.addEventListener('DOMContentLoaded', adjustSidebarBanner);
2711    } else {
2712        adjustSidebarBanner();
2713    }
2714    let resizeTimer;
2715    window.addEventListener('resize', function() {
2716        clearTimeout(resizeTimer);
2717        resizeTimer = setTimeout(adjustSidebarBanner, 250);
2718    });
2719    const pwpSection = document.getElementById('pwp-deals-section');
2720    if (pwpSection) {
2721        const observer = new MutationObserver(function(mutations) {
2722            let shouldRecheck = false;
2723            mutations.forEach(function(mutation) {
2724                if (mutation.type === 'attributes' && mutation.attributeName === 'hidden') {
2725                    shouldRecheck = true;
2726                } else if (mutation.type === 'childList' && mutation.addedNodes.length > 0) {
2727                    shouldRecheck = true;
2728                }
2729            });
2730            if (shouldRecheck) {
2731                setTimeout(adjustSidebarBanner, 100);
2732            }
2733        });
2734        observer.observe(pwpSection, {
2735            attributes: true,
2736            childList: true,
2737            subtree: true
2738        });
2739    }
2740    window.adjustSidebarBanner = adjustSidebarBanner;
2741})();
2742
2743/* ====== Global constants ====== */
2744const IS_DIGITAL=false;
2745const IS_PREORDER=false;
2746
2747/* ====== Variants state (REVISED) ====== */
2748(function initVariants(){
2749const _0x7g8h=[];window.variants=_0x7g8h;
2750window.isPreorderProduct=false;
2751    const attrOrder = [];
2752
2753    if (!variants.length || !attrOrder.length) return;
2754
2755    function comboKey(sel){
2756        return attrOrder.map(a => a + '=' + (sel[a] ?? '')).join('|');
2757    }
2758
2759    const variantMap = {};
2760    variants.forEach(v=>{
2761        const key = comboKey(v.attrs);
2762        variantMap[key] = v;
2763    });
2764
2765    function readSelection(){
2766        const sel = {};
2767        attrOrder.forEach(a=>{
2768            const r = document.querySelector(`.v-group[data-attr="${CSS.escape(a)}"] input[type=radio]:checked`);
2769            sel[a] = r ? r.value : '';
2770        });
2771        return sel;
2772    }
2773
2774    function findVariant(sel){
2775        return variantMap[comboKey(sel)] || null;
2776    }
2777
2778    function autoFillMissing(sel){
2779        let changed = false;
2780        for (const a of attrOrder) {
2781            if (sel[a]) continue;
2782            const possible = [];
2783            const seen = new Set();
2784            variants.forEach(v=>{
2785                let ok = true;
2786                for (const a2 of attrOrder) {
2787                    if (a2 === a) continue;
2788                    if (sel[a2] && v.attrs[a2] !== sel[a2]) { ok = false; break; }
2789                }
2790                if (ok) {
2791                    const val = v.attrs[a];
2792                    if (!seen.has(val)) { seen.add(val); possible.push(val); }
2793                }
2794            });
2795            if (possible.length === 1) {
2796                const val = possible[0];
2797                const input = document.querySelector(`.v-group[data-attr="${CSS.escape(a)}"] input[type=radio][value="${CSS.escape(val)}"]`);
2798                if (input && !input.checked) { input.checked = true; sel[a] = val; changed = true; }
2799            }
2800        }
2801        return changed;
2802    }
2803
2804    function rupiah(n){
2805        n = parseInt(n||0,10)||0;
2806        return 'Rp ' + n.toString().replace(/\B(?=(\d{3})+(?!\d))/g,'.');
2807    }
2808    
2809    function focusGalleryByUrl(imageUrl) {
2810        const isMobile = window.matchMedia && window.matchMedia('(max-width: 640px)').matches;
2811          if (isMobile) {
2812            _0xau1v(imageUrl);
2813            return;
2814          }
2815        
2816          const gallery = document.getElementById('pd-thumb-gallery');
2817          const targetName = _0x8s9t(imageUrl);
2818        
2819          if (gallery) {
2820            const btns = Array.from(gallery.querySelectorAll('.pd-thumb-btn'));
2821            const btn = btns.find(b => _0x8s9t(b.getAttribute('data-full') || '') === targetName);
2822            if (btn) { btn.click(); return; }
2823          }
2824          
2825          _0xau1v(imageUrl);
2826    }
2827    
2828
2829function formatStockLabel(n){n=parseInt(n||0,10)||0;return(n>10)?'10+':String(n)}
2830function 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(_){}}
2831
2832    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)}
2833
2834    function applyVariant(v, focusImage = true){
2835        const elCur  = document.getElementById('pd-price-current');
2836        const elOri  = document.getElementById('pd-price-original');
2837        const elDisc = document.getElementById('pd-discount-badge');
2838        const elSku  = document.getElementById('pd-sku');
2839        const elStock= document.getElementById('pd-stock-badge');
2840        const elQty  = document.getElementById('qty');
2841        const btnAdd = document.getElementById('btn-add-cart');
2842        const btnBuy = document.getElementById('btn-buy');
2843        const hidVar = document.getElementById('pd-variant-id');
2844
2845        const mfCart= document.getElementById('mf-cart');
2846        const mfBuy = document.getElementById('mf-buy');
2847        const fab = document.getElementById('pd-mobile-fab');
2848
2849        if (hidVar) hidVar.value = v ? v.id : 0;
2850        if (elCur) elCur.textContent = rupiah(v ? v.final : 0);
2851        if (elSku && v && v.sku) elSku.textContent = v.sku;
2852
2853        if (v && v.ori > v.final) {
2854            if (elOri) { elOri.style.display='inline'; elOri.textContent = rupiah(v.ori); }
2855            if (elDisc) { elDisc.style.display='inline'; elDisc.textContent = '-' + (v.disc||0) + '%'; }
2856        } else {
2857            if (elOri) elOri.style.display='none';
2858            if (elDisc) elDisc.style.display='none';
2859        }
2860
2861        const stock = v ? (parseInt(v.stock||0,10)||0) : 0;
2862        let effectiveStock = stock;
2863        let isActivePreorder = false;
2864        if (window.isPreorderProduct && v && 'preorder_remaining' in v && v.preorder_remaining !== null) {
2865            effectiveStock = parseInt(v.preorder_remaining, 10);
2866            if (isNaN(effectiveStock)) effectiveStock = 0;
2867            isActivePreorder = true;
2868        }
2869        if (elStock){
2870            elStock.classList.remove('in','out');
2871            if (effectiveStock>0){ 
2872                elStock.classList.add('in'); 
2873                elStock.textContent = IS_DIGITAL ? 'Tersedia' : (isActivePreorder ? 'Sisa Slot: ' + effectiveStock : 'Stok: ' + formatStockLabel(effectiveStock)); 
2874            } else { 
2875                elStock.classList.add('out'); 
2876                elStock.textContent = 'Habis'; 
2877            }
2878        }
2879        if (elQty){
2880            elQty.max = String(effectiveStock>0?effectiveStock:0);
2881            if (effectiveStock<=0) { elQty.value = '0'; elQty.disabled = true; }
2882            else { if (parseInt(elQty.value||'1',10) < 1) elQty.value='1'; elQty.disabled=false; }
2883        }
2884        
2885        const shouldDisable = !(v && effectiveStock>0);
2886        const updateButtons = () => {
2887            const btnAddCart = document.getElementById('btn-add-cart');
2888            const btnBuyNow = document.getElementById('btn-buy');
2889            const mobileCart = document.getElementById('mf-cart');
2890            const mobileBuy = document.getElementById('mf-buy');
2891            [btnAddCart, btnBuyNow, mobileCart, mobileBuy].forEac
2891h(btn => {
2892                if (!btn) return;
2893                if (shouldDisable) {
2894                    btn.disabled = true;
2895                    btn.setAttribute('disabled', 'disabled');
2896                    btn.classList.add('stock-disabled');
2897                    btn.setAttribute('data-stock-blocked', 'true');
2898                    btn.setAttribute('data-stock-reason', window.isPreorderProduct ? 'Pre-order habis' : 'Stok habis');
2899                } else {
2900                    btn.disabled = false;
2901                    btn.removeAttribute('disabled');
2902                    btn.classList.remove('stock-disabled');
2903                    btn.removeAttribute('data-stock-blocked');
2904                    btn.removeAttribute('data-stock-reason');
2905                }
2906            });
2907        };
2908        updateButtons();
2909        setTimeout(updateButtons, 10);
2910        setTimeout(updateButtons, 50);
2911        setTimeout(updateButtons, 100);
2912        if (mfBuy && v) {
2913            const voucherBtn = document.getElementById('btn-buy-voucher');
2914            const voucherCode = fab ? fab.dataset.voucherCode : '';
2915            let voucherDiscount = 0;
2916            
2917            if (voucherBtn && voucherCode) {
2918                const vType = voucherBtn.dataset.voucherType;
2919                const vValue = parseFloat(voucherBtn.dataset.voucherValue) || 0;
2920                const vMax = parseFloat(voucherBtn.dataset.voucherMax) || 0;
2921                const finalPrice = v.final || 0;
2922                if (vType && vValue > 0) {
2923                    voucherDiscount = calcVoucherDisc(vType, vValue, finalPrice, vMax);
2924                    if (fab) fab.dataset.voucherValue = voucherDiscount.toString();
2925                }
2926            }
2927            
2928            const finalPrice = v.final || 0;
2929            const textEl = mfBuy.querySelector('.mf-buy-text');
2930            const priceEl = mfBuy.querySelector('.mf-buy-price');
2931            
2932            if (effectiveStock > 0) {
2933                    if (IS_PREORDER) {
2934                        if (textEl) textEl.textContent = 'Pre Order Sekarang';
2935                        if (priceEl) priceEl.textContent = rupiah(finalPrice);
2936                    } else if (voucherCode && voucherDiscount > 0) {
2937                        if (textEl) textEl.textContent = 'Beli dengan Voucher';
2938                        if (priceEl) priceEl.textContent = rupiah(Math.max(0, finalPrice - voucherDiscount));
2939                    } else {
2940                        if (textEl) textEl.textContent = 'Beli Sekarang';
2941                        if (priceEl) priceEl.textContent = rupiah(finalPrice);
2942                    }
2943                } else {
2944                    if (textEl) textEl.textContent = 'Stok Habis';
2945                    if (priceEl) priceEl.textContent = rupiah(finalPrice);
2946                }
2947            }
2948        
2949        const isMobile = window.initMobile ?? 0;
2950        if (window.instSetBasePrice) window.instSetBasePrice(v ? (isMobile == '1' ? v.ori : v.final) : 0);
2951        if (window.updateSoldBySku) window.updateSoldBySku(v.sku);
2952        updateBranchPopover(v);
2953        if (v && v.image_url && focusImage) focusGalleryByUrl(v.image_url);
2954        if (v) {
2955            window.dispatchEvent(new CustomEvent('pd-variant-changed', {
2956                detail: {
2957                    price: v.final,
2958                    originalPrice: v.ori,
2959                    discount: v.disc,
2960                    stock: effectiveStock,
2961                    sku: v.sku,
2962                    variant_id: v.id
2963                }
2964            }));
2965            
2966            const encodedHash = encodeVariantHash(v.id);
2967            if (encodedHash && window.history && window.history.replaceState) {
2968                const newHash = '#v=' + encodedHash;
2969                const newUrl = window.location.pathname + window.location.search + newHash;
2970                window.history.replaceState(null, '', newUrl);
2971            }
2972        }
2973    }
2974
2975    let sel = readSelection();
2976    if (autoFillMissing(sel)) sel = readSelection();
2977
2978    let v = findVariant(sel);
2979    if (!v) {
2980        const candidates = variants.filter(variant=>{
2981            return attrOrder.every(a=>{
2982                if (!sel[a]) return true;
2983                return variant.attrs[a] === sel[a];
2984            });
2985        });
2986        if (candidates.length >= 1) {
2987            v = candidates[0];
2988            attrOrder.forEach(a=> sel[a] = v.attrs[a]);
2989            attrOrder.forEach(a=>{
2990                const val = sel[a];
2991                const input = document.querySelector(`.v-group[data-attr="${CSS.escape(a)}"] input[type=radio][value="${CSS.escape(val)}"]`);
2992                if (input) input.checked = true;
2993            });
2994        }
2995    }
2996
2997    const initSel = readSelection();
2998    const initVar = findVariant(initSel) || variants[0] || null;
2999    if (document.readyState === 'loading') {
3000        document.addEventListener('DOMContentLoaded', () => applyVariant(initVar, false));
3001    } else {
3002        applyVariant(initVar, false);
3003    }
3004    
3005function updateSummary(sel){Object.entries(sel).forEach(([a,val])=>{const el=document.getElementById('vs-'+a);if(el)el.textContent=val||'-'})}
3006    function refreshOptions(sel){
3007        attrOrder.forEach(a=>{
3008            const group = document.querySelector(`.v-group[data-attr="${CSS.escape(a)}"]`);
3009            if (!group) return;
3010            const chips = group.querySelectorAll('.v-chip');
3011            chips.forEach(ch=>{
3012                const val = ch.getAttribute('data-value');
3013                const possible = variants.some(v=>{
3014                    if (v.attrs[a] !== val) return false;
3015                    for (const a2 of attrOrder) {
3016                        if (a2 === a) continue;
3017                        if (sel[a2] && v.attrs[a2] !== sel[a2]) return false;
3018                    }
3019                    return true;
3020                });
3021                const input = ch.querySelector('input[type=radio]');
3022                const disabled = !possible;
3023                if (input) input.disabled = disabled;
3024                ch.classList.toggle('disabled', disabled);
3025
3026                let candidateVariant = null;
3027                if (possible) {
3028                    candidateVariant = variants.find(v=>{
3029                        if (v.attrs[a] !== val) return false;
3030                        for (const a2 of attrOrder) {
3031                            if (a2 === a) continue;
3032                            if (sel[a2] && v.attrs[a2] !== sel[a2]) return false;
3033                        }
3034                        return true;
3035                    });
3036                }
3037                const outOfStock = candidateVariant ? (window.isPreorderProduct && candidateVariant.preorder_remaining !== null ? candidateVariant.preorder_remaining <= 0 : candidateVariant.stock <= 0) : false;
3038                ch.classList.toggle('out', !disabled && outOfStock);
3039                const badge = ch.querySelector('.chip-badge');
3040                if (badge) badge.hidden = !(candidateVariant && outOfStock);
3041            });
3042            group.querySelectorAll('.v-chip').forEach(ch=>{
3043                const input = ch.querySelector('input[type=radio]');
3044                ch.classList.toggle('selected', input && input.checked);
3045            });
3046        });
3047    }
3048    updateSummary(sel);
3049    refreshOptions(sel);
3050    document.querySelectorAll('.v-chip').forEach(chip=>{const input=chip.querySelector('input[type=radio]');if(input&&input.checked){chip.classList.add('selected');}});
3051
3052    const container = document.getElementById('pd-variants');
3053    container && container.addEventListener('change', function(ev){
3054        const radio = ev.target.closest('input[type=radio]');
3055        if (!radio) return;
3056        sel = readSelection();
3057        if (autoFillMissing(sel)) sel = readSelection();
3058        const chosen = findVariant(sel);
3059        applyVariant(chosen || null, true);
3060        
3061        updateSummary(sel);
3062        refreshOptions(sel);
3063    });
3064    
3065window.applyVariant=applyVariant;
3066})();
3067
3068(function cleanBrokenDescImages(){
3069    const containers = [
3070        document.querySelector('.pd-full-desc-body'),
3071        document.querySelector('.pd-short-desc')
3072    ].filter(Boolean);
3073
3074    containers.forEach(root => {
3075        const imgs = root.querySelectorAll('img');
3076        imgs.forEach(img => {
3077            if (img.complete && img.naturalWidth === 0) {
3078                img.remove();
3079                return;
3080            }
3081            img.addEventListener('error', () => {
3082                img.remove();
3083            }, { once:true });
3084        });
3085    });
3086})();
3087
3088/* ====== Scroll To Top ====== */
3089(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'})})})();
3090
3091/* Format stok 10+ */
3092function _0xk67l(n){n=parseInt(n||0,10)||0;return n>10?'10+':String(n)}
3093
3094/* Toggle popover stok per cabang */
3095(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=''}}
3096function 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()}
3097a.addEventListener('click',function(h){h.preventDefault();b.classList.contains('show')?f():e()});if(c)c.addEventListener('click',f)})();
3098
3099/* ===== Share Product Modal ===== */
3100(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://suratdarianas.com/",g="Lenovo Legion Go 8ASP2 - 83N0000RID /AMD Ryzen Z2 Extreme/32GB/1TB SSD/AMD Radeon Graphics/8.8\" WUXGA OLED Touch/Win 11 Home/Eclipse Black/3Y",h="Rp 20.789.000";const discountPercent=1;let i='';if(discountPercent>0){i=`🔥 Lagi Promo Nih! Diskon ${discountPercent}%\n\n✨ ${g}\n💰 Cuma ${h} aja!\n\n🛒 Buruan cek sebelum kehabisan!\n👉 `}else{i=`✨ Ada barang bagus nih!\n\n📦 ${g}\n💸 Harga: ${h}\n\n🛍️ Yuk, langsung cek!\n👉 `}function j(){b.classList.add('show');document.body.style.overflow='hidden'}function k(){b.classList.remove('show');document.body.style.overflow=''}if(a)a.addEventListener('click',j);if(z)z.addEventListener('click',j);if(c)c.addEventListener('click',k);b.addEventListener('click',function(l){if(l.target===b)k()});document.addEventListener('keydown',function(l){if(l.key==='Escape'&&b.classList.contains('show'))k()});b.addEventListener('click',function(l){const m=l.target.closest('[data-share]');if(!m)return;const n=m.getAttribute('data-share'),o=encodeURIComponent(f),p=e
3100ncodeURIComponent(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)}})();
3101
3102/* ===== Embedding variants (server → client) ===== */
3103(function(){
3104  window.__PD_VARIANTS_WITH_BRANCH__ = [];
3105})();
3106
3107/* ===== Helper: update angka popover ===== */
3108function updateStockPopoverForVariant(v){
3109  try{
3110    const elMeg = document.getElementById('sp-qty-meg');
3111    const elMdf = document.getElementById('sp-qty-mdf');
3112    const elBda = document.getElementById('sp-qty-bda');
3113
3114    if (typeof v?.smm === 'number' && elMeg) elMeg.textContent = formatStockLabel(Math.max(0, v.smm|0));
3115    if (typeof v?.smf === 'number' && elMdf) elMdf.textContent = formatStockLabel(Math.max(0, v.smf|0));
3116    if (typeof v?.sba === 'number' && elBda) elBda.textContent = formatStockLabel(Math.max(0, v.sba|0));
3117  }catch(_){}
3118}
3119
3120/* ===== applyVariant: 10+ dan update popover ===== */
3121(function patchApplyVariant(){
3122  if (typeof applyVariant !== 'function') return;
3123  const original = applyVariant;
3124  window.applyVariant = function(v){
3125    original(v);
3126    
3127    try {
3128      const elStock = document.getElementById('pd-stock-badge');
3129      if (elStock){
3130        let txt = elStock.textContent || '';
3131        let m = txt.match(/\d+/);
3132        if (m) {
3133          const n = parseInt(m[0]||'0',10)||0;
3134          elStock.textContent = (n>0) ? ('Stok: ' + formatStockLabel(n)) : 'Habis';
3135        }
3136      }
3137    } catch(_){}
3138if(window.__PD_VARIANTS_WITH_BRANCH__&&v){const vv=window.__PD_VARIANTS_WITH_BRANCH__.find(x=>x.id===v.id)||v;updateStockPopoverForVariant(vv)}
3139  };
3140})();
3141
3142(function initCurrentVariantBranch(){
3143  const list = window.__PD_VARIANTS_WITH_BRANCH__ || [];
3144  if (!list.length) return;
3145  const hid = document.getElementById('pd-variant-id');
3146  const vid = hid ? parseInt(hid.value||'0',10) : 0;
3147  const current = list.find(x => x.id === vid) || list[0] || null;
3148  if (current) updateStockPopoverForVariant(current);
3149})();
3150
3151(function(){
3152    if (!window.ga4Ecomm) return;
3153    const catSegs = ["Komputer & Laptop","Laptop","Gaming"];
3154    window.ga4Ecomm.viewItem({
3155      currency: 'IDR',
3156      value: 20789000,
3157      item_id: "2S83N0880RID",
3158      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",
3159      item_brand: "Lenovo ",
3160      item_category: catSegs && catSegs.length ? catSegs.join(' / ') : ''
3161    });
3162  })();
3163  
3164(function patchApplyVariantFocus(){
3165  if (typeof applyVariant !== 'function') return;
3166  const original = applyVariant;
3167  window.applyVariant = function(v, focusImage = true){
3168    
3169    original(v, focusImage);
3170    
3171    if (focusImage && v && v.image_url) {
3172      _0xau1v(v.image_url);
3173    }
3174  };
3175})();
3176
3177(function() {
3178  var soldMap = [];
3179  var soldTotalLabel = "Terjual 88";
3180
3181  function formatSoldLabel(qty) {
3182    if (qty >= 1000000) {
3183      var v = Math.floor((qty / 100000) ) / 10;
3184      return 'Terjual ' + (String(v).replace('.', ',')) + 'jt+';
3185    }
3186    if (qty >= 1000) {
3187      var v2 = Math.floor((qty / 100) ) / 10;
3188      return 'Terjual ' + (String(v2).replace('.', ',')) + 'rb+';
3189    }
3190    if (qty >= 100) {
3191      var v2 = Math.floor((qty / 100) ) * 100;
3192      return 'Terjual ' + (String(v2).replace('.', ',')) + '+';
3193    }
3194    if (qty >= 10) {
3195      var v2 = Math.floor((qty / 10) ) * 10;
3196      return 'Terjual ' + (String(v2).replace('.', ',')) + '+';
3197    }
3198    return 'Terjual ' + (qty.toLocaleString('id-ID'));
3199  }
3200
3201  function updateSoldLabel(labelText) {
3202    var el = document.querySelector('#pd-sold-inline, [data-role="sold-chip"]');
3203    if (el) el.textContent = labelText;
3204  }
3205
3206  window.updateSoldBySku = function(sku) {
3207    if (!sku || typeof sku !== 'string') {
3208      updateSoldLabel(soldTotalLabel);
3209      return;
3210    }
3211    var qty = soldMap[sku] || 0;
3212    updateSoldLabel(formatSoldLabel(qty));
3213  };
3214
3215    updateSoldLabel(soldTotalLabel);
3216  })();
3217
3218(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)}})}
3219function 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}
3220const 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}});
3220function formatRupiah(n){return'Rp'+Math.floor(n).toLocaleString('id-ID')}})();
3221
3222(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')}})();
3223</script>
vendor: 2 bytes, line 3223
3223
3224<script nonce="se3iyzEHMc9FQEB4wSyd0w==">
3225window.PD_ID=325;window.PD_NAME=_0x3c4d;window.PD_SKU=_0x5e6f;window.PD_CATEGORY_PATH="Komputer & Laptop/Laptop/Gaming";window.PD_BEST_VOUCHER=null;
3226window.IS_DIGITAL=IS_DIGITAL;
3227window.isPreorderProduct=false;
3228window.PD_PREORDER_DATA=null;
3229</script>
3229
3230
3231<script src="https://plazaitdotid.pages.dev/assets/js/pd-lightbox.js" nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
vendor: 2 bytes, line 3231
3231
3232<script src="https://plazaitdotid.pages.dev/assets/js/cart.js" defer nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
vendor: 2 bytes, line 3232
3232
3233<script src="https://plazaitdotid.pages.dev/assets/js/stock-validator-vanilla.js" nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
vendor: 2 bytes, line 3233
3233
3234<script src="https://plazaitdotid.pages.dev/assets/js/pd-addtocart.js" defer nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
vendor: 2 bytes, line 3234
3234
3235<script src="https://plazaitdotid.pages.dev/assets/js/pd-buynow.js" defer nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
vendor: 2 bytes, line 3235
3235
3236<script src="https://plazaitdotid.pages.dev/assets/js/pd-voucher-recalc.js" defer nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
vendor: 2 bytes, line 3236
3236
3237<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>
3237
3238
3239<script nonce="se3iyzEHMc9FQEB4wSyd0w==">
3240(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'}})}}
3241
3242function _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()}})();
3243
3244(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()}})})();
3245</script>
3245<footer class="site-footer footer-compact variant-stripes" role="contentinfo">
3246  <div class="ft-top ft-collapsible" id="ftTop">
3247    <div class="container ft-grid">
3248
3249      <div class="ft-col ft-help">
3250        <h4 class="ft-title">Butuh Bantuan?</h4>
3251        <p class="ft-desc">Hubungi kami melalui Official WhatsApp interaktif sekarang.</p>
3252        <a class="ft-wa-btn" href="#" target="_blank" rel="nofollow noopener">
3253          <span class="ico" aria-hidden="true">
3254            <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>
3255          </span>
3256          Kirim Pesan
3257        </a>
3258
3259        <p class="ft-desc sm-gap">Ikuti kami:</p>
3260        <div class="ft-social">
3261          <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>
3262          <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
3262V7.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>
3263          <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>
3264        </div>
3265      </div>
3266
3267            <!-- Collapsible Content Wrapper (Non-Homepage Only) -->
3268      <div class="ft-collapsible-content" id="ftCollapsible">
3269      
3270      <div class="ft-col">
3271        <h4 class="ft-title">Tentang OKJKT</h4>
3272        <ul class="ft-links">
3273          <li><a href="/tentang-kami">Tentang Kami</a></li>
3274          <li><a href="/kontak-kami">Kontak Kami</a></li>
3275          <li><a href="/lokasi-toko">Lokasi Toko</a></li>
3276          <li><a href="/faq">FAQ</a></li>
3277        </ul>
3278        <div class="ft-address">
3279          <p class="company">PT OKJKT</p>
3280                      <p>JL. Imam Bonjol, No. 45, Ciledug RT.005,</p>
3281                      <p>RT.005/RW.005, Parung Serab, Tangerang, Kota Tangerang, Banten 15153</p>
3282                  </div>
3283      </div>
3284
3285      <div class="ft-col">
3286        <h4 class="ft-title">Informasi</h4>
3287        <ul class="ft-links">
3288          <li><a href="/syarat-dan-ketentuan">Syarat &amp; Ketentuan</a></li>
3289          <li><a href="/kebijakan-privasi">Kebijakan Privasi</a></li>
3290          <li><a href="/kebijakan-cookie">Kebijakan Cookie</a></li>
3291          <li><a href="/pengiriman-dan-pengembalian">Pengiriman &amp; Pengembalian</a></li>
3292          <li><a href="/pembayaran-dan-cicilan">Pembayaran &amp; Cicilan</a></li>
3293          <li><a href="/garansi-dan-layanan">Garansi &amp; Layanan</a></li>
3294        </ul>
3295
3296        <div class="ft-payments payments-small" aria-label="Metode Pembayaran">
3297          <div class="pay-row">
3298            <img src="https://plazaitdotid.pages.dev/assets/img/payments/mandiri.svg" alt="Mandiri" loading="lazy">
3299            <img src="https://plazaitdotid.pages.dev/assets/img/payments/bni.svg" alt="BNI" loading="lazy">
3300            <img src="https://plazaitdotid.pages.dev/assets/img/payments/bri.svg" alt="BRI" loading="lazy">
3301            <img src="https://plazaitdotid.pages.dev/assets/img/payments/bsi.svg" alt="BSI" loading="lazy">
3302            <img src="https://plazaitdotid.pages.dev/assets/img/payments/cimb-logo.svg" alt="ShopeePay" loading="lazy">
3303          </div>
3304        </div>
3305      </div>
3306
3307            </div>
3308      <!-- End Collapsible Content -->
3309      
3310      <!-- Expand Button (Mobile Only) -->
3311      <button class="ft-expand-btn" id="ftExpandBtn" aria-label="Lihat semua informasi footer">
3312        <span class="expand-text">Selengkapnya</span>
3313        <svg viewBox="0 0 24 24" width="18" height="18" fill="currentColor">
3314          <path d="M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z"/>
3315        </svg>
3316      </button>
3317      
3318    </div>
3319  </div>
3320  <div class="ft-bottom">
3321    <div class="container ft-bottom-inner">
3322      <div class="ft-copy">
3323        <span>OKJKT &copy; <span id="yearNow">2026</span></span>
3324        <span>PT OKJKT. All rights reserved.</span>
3325      </div>
3326    </div>
3327  </div>
3328  
3329          <style nonce="se3iyzEHMc9FQEB4wSyd0w==">
3330            /* Chat Widget Styles - Lightweight & Minimal */
3331            .chat-widget {
3332                position: fixed;
3333                bottom: 20px;
3334                right: 20px;
3335                z-index: 9999;
3336                font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
3337            }
3338            
3339            /* Hide floating button on mobile - use bottom nav instead */
3340            @media (max-width: 640px) {
3341                .chat-toggle-btn {
3342                    display: none !important;
3343                }
3344                
3345                /* Ensure popup is still visible on mobile even when button is hidden */
3346                .chat-widget {
3347                    display: block !important;
3348                }
3349                
3350                .chat-popup {
3351                    display: none; /* Hidden by default, shown via JS */
3352                }
3353                
3354                .chat-popup[style*="display: block"],
3355                .chat-popup[style*="display:block"] {
3356                    display: block !important;
3357                }
3358            }
3359            
3360            .chat-toggle-btn {
3361                width: 60px;
3362                height: 60px;
3363                border-radius: 50%;
3364                background: linear-gradient(135deg, #F28C1A 0%, #D97809 100%);
3365                border: none;
3366                color: white;
3367                cursor: pointer;
3368                box-shadow: 0 4px 12px rgba(242, 140, 26, 0.3);
3369                position: relative;
3370                transition: transform 0.2s, box-shadow 0.2s;
3371            }
3372            
3373            .chat-toggle-btn:hover {
3374                transform: scale(1.05);
3375                box-shadow: 0 6px 20px rgba(242, 140, 26, 0.4);
3376            }
3377            
3378            #chat-toggle-btn .chat-icon {
3379                position: absolute;
3380                top: 50%;
3381                left: 50%;
3382                transform: translate(-50%, -50%);
3383                width: 28px !important;
3384                height: 28px !important;
3385            }
3386            
3387            .chat-unread-badge {
3388                position: absolute;
3389                top: -5px;
3390                right: -5px;
3391                background: #ef4444;
3392                color: white;
3393                border-radius: 12px;
3394                padding: 2px 6px;
3395                font-size: 11px;
3396                font-weight: 600;
3397                min-width: 20px;
3398                text-align: center;
3399            }
3400            
3401            .chat-popup {
3402                position: absolute;
3403                bottom: 80px;
3404                right: 0;
3405                width: 380px;
3406                max-width: calc(100vw - 40px);
3407                height: 500px;
3408                max-height: calc(100vh - 120px);
3409                background: white;
3410                border-radius: 12px;
3411                box-shadow: 0 10px 40px rgba(0,0,0,0.2);
3412                display: flex;
3413                flex-direction: column;
3414                overflow: hidden;
3415            }
3416            
3417            .chat-popup-header {
3418                background: linear-gradient(135deg, #F28C1A 0%, #D97809 100%);
3419                color: white;
3420                padding: 16px 20px;
3421                display: flex;
3422                justify-content: space-between;
3423                align-items: center;
3424                flex-shrink: 0;
3425            }
3426            
3427            .chat-header-title {
3428                display: flex;
3429                flex-direction: column;
3430                gap: 2px;
3431                min-height: 0;
3432            }
3433            
3434            .chat-popup-header h3 {
3435                margin: 0;
3436                font-size: 18px;
3437                font-weight: 600;
3438                line-height: 1.2;
3439            }
3440            
3441            .chat-operating-hours {
3442                font-size: 11px;
3443                opacity: 0.9;
3444                font-weight: 400;
3445                display: flex;
3446                align-items: center;
3447                gap: 4px;
3448                line-height: 1.2;
3449            }
3450            
3451            .chat-operating-hours svg {
3452                width: 12px;
3453                height: 12px;
3454                opacity: 0.8;
3455                flex-shrink: 0;
3456            }
3457            
3458            .chat-header-actions {
3459                display: flex;
3460                align-items: center;
3461                gap: 8px;
3462            }
3463            
3464            /* Notification Toggle Button */
3465            .btn-notif-toggle {
3466                background: none;
3467                border: none;
3468                color: white;
3469                font-size: 18px;
3470                cursor: pointer;
3471                padding: 4px 8px;
3472                transition: all 0.2s;
3473                opacity: 0.8;
3474            }
3475            
3476            .btn-notif-toggle:hover {
3477                opacity: 1;
3478                transform: scale(1.1);
3479            }
3480            
3481            /* Icon states */
3482            .btn-notif-toggle[data-status="not-subscribed"] svg {
3483                opacity: 0.7;
3484            }
3485            
3486            .btn-notif-toggle[data-status="not-subscribed"]:hover svg {
3487                opacity: 1;
3488            }
3489            
3490            .btn-notif-toggle[data-status="subscribed"] svg {
3491                opacity: 1;
3492                animation: bellRing 2s ease-in-out;
3493            }
3494            
3495            .btn-notif-toggle[data-status="blocked"] svg {
3496                color: #ff6b6b;
3497            }
3498            
3499            .btn-notif-toggle[data-status="not-supported"] {
3500                display: none !important;
3501            }
3502            
3503            @keyframes bellRing {
3504                0%, 100% { transform: rotate(0deg); }
3505                10%, 30% { transform: rotate(-10deg); }
3506                20%, 40% { transform: rotate(10deg); }
3507            }
3508            
3509            /* Notification Info Bar */
3510            .chat-notif-info-bar {
3511                position: absolute;
3512                top: 64px;
3513                left: 0;
3514                right: 0;
3515                background: linear-gradient(to right, #e3f2fd, #f5f5f5);
3516                border-bottom: 1px solid #bbdefb;
3517                padding: 8px 12px;
3518                display: flex;
3519                align-items: center;
3520                gap: 8px;
3521                font-size: 12px;
3522                color: #616161;
3523                z-index: 10;
3524                animation: slideDown 0.3s ease;
3525            }
3526            
3527            .chat-notif-info-bar svg {
3528                flex-shrink: 0;
3529            }
3530            
3531            .chat-notif-info-bar .small {
3532                flex: 1;
3533                line-height: 1.4;
3534            }
3535            
3536            .chat-notif-info-bar .btn-dismiss {
3537                background: none;
3538                border: none;
3539                color: #9e9e9e;
3540                cursor: pointer;
3541                padding: 0 4px;
3542                font-size: 16px;
3543                transition: color 0.2s;
3544            }
3545            
3546            .chat-notif-info-bar .btn-dismiss:hover {
3547                color: #616161;
3548            }
3549            
3550            @keyframes slideDown {
3551                from {
3552                    max-height: 0;
3553                    opacity: 0;
3554                }
3555                to {
3556                    max-height: 50px;
3557                    opacity: 1;
3558                }
3559            }
3560            
3561            .chat-close-btn {
3562                background: none;
3563                border: none;
3564                color: white;
3565                font-size: 28px;
3566                line-height: 1;
3567                cursor: pointer;
3568                padding: 0;
3569                width: 30px;
3570                height: 30px;
3571            }
3572            
3573            .chat-popup-body {
3574                flex: 1 1 auto;
3575                display: flex;
3576                flex-direction: column;
3577                min-height: 0;
3578                overflow: hidden;
3579                height: calc(100% - 64px);
3580                position: relative;
3581                transition: padding-top 0.3s ease;
3582            }
3583            
3584            /* Add padding when info bar is visible */
3585            .chat-popup-body.has-info-bar {
3586                padding-top: 40px;
3587            }
3588            
3589            .chat-view {
3590                flex: 1 1 auto;
3591                display: none;
3592                flex-direction: column;
3593                min-height: 0;
3594                overflow: hidden;
3595            }
3596            
3597            #chat-list-view {
3598                display: flex;
3599            }
3600            
3601            #chat-messages-view {
3602                display: none;
3603            }
3604            
3605            #chat-messages-view.active {
3606                display: flex;
3607                flex-direction: column;
3608            }
3609            
3610            #chat-new-view {
3611                display: none;
3612            }
3613            
3614            #chat-new-view.active {
3615                display: flex;
3616            }
3617            
3618            .chat-conversations-list {
3619                flex: 1;
3620                overflow-y: auto;
3621                padding: 0;
3622                background: white;
3623            }
3624            
3625            /* Custom Scrollbar for Conversations List */
3626            .chat-conversations-list::-webkit-scrollbar {
3627                width: 6px;
3628            }
3629            
3630            .chat-conversations-list::-webkit-scrollbar-track {
3631                background: #f1f1f1;
3632            }
3633            
3634            .chat-conversations-list::-webkit-scrollbar-thumb {
3635                background: #F28C1A;
3636                border-radius: 3px;
3637            }
3638            
3639            .chat-conversations-list::-webkit-scrollbar-thumb:hover {
3640                background: #D97809;
3641            }
3642            
3643            /* Firefox */
3644            .chat-conversations-list {
3645                scrollbar-width: thin;
3646                scrollbar-color: #F28C1A #f1f1f1;
3647            }
3648            
3649            .chat-conversation-item {
3650                padding: 12px 16px;
3651                cursor: pointer;
3652                display: flex;
3653                gap: 12px;
3654                align-items: flex-start;
3655                transition: background 0.15s ease;
3656                color: #33371f;
3657                border-bottom: 1px solid #f0f0f0;
3658            }
3659            
3660            .chat-conversation-item:hover {
3661                background: #f5f5f5;
3662            }
3663            
3664            .chat-conversation-item.active {
3665                background: #FFF5EB;
3666            }
3667            
3668            /* WhatsApp-like Avatar */
3669            .conversation-avatar {
3670                width: 48px;
3671                height: 48px;
3672                border-radius: 50%;
3673                background: linear-gradient(135deg, #F28C1A 0%, #D97809 100%);
3674                flex-shrink: 0;
3675                display: flex;
3676                align-items: center;
3677                justify-content: center;
3678                color: white;
3679                font-weight: 600;
3680                font-size: 18px;
3681            }
3682            
3683            .conversation-avatar svg {
3684                width: 24px;
3685                height: 24px;
3686            }
3687            
3688            /* WhatsApp-like Content */
3689            .conversation-content {
3690                flex: 1;
3691                min-width: 0;
3692                display: flex;
3693                flex-direction: column;
3694                gap: 4px;
3695            }
3696            
3697            .conversation-header {
3698                display: flex;
3699                justify-content: space-between;
3700                align-items: center;
3701                gap: 8px;
3702            }
3703            
3704            .conversation-name {
3705                font-weight: 600;
3706                font-size: 15px;
3707                color: #111;
3708                white-space: nowrap;
3709                overflow: hidden;
3710                text-overflow: ellipsis;
3711            }
3712            
3713            .conversation-time {
3714                font-size: 12px;
3715                color: #7d8166;
3716                flex-shrink: 0;
3717            }
3718            
3719            .conversation-preview {
3720                display: flex;
3721                justify-content: space-between;
3722                align-items: center;
3723                gap: 8px;
3724            }
3725            
3726            .conversation-message {
3727                font-size: 14px;
3728                color: #667781;
3729                white-space: nowrap;
3730                overflow: hidden;
3731                text-overflow: ellipsis;
3732                margin: 0;
3733                flex: 1;
3734            }
3735            
3736            .conversation-unread {
3737                background: #25D366;
3738                color: white;
3739                border-radius: 12px;
3740                padding: 2px 8px;
3741                font-size: 12px;
3742                font-weight: 600;
3743                min-width: 20px;
3744                text-align: center;
3745                flex-shrink: 0;
3746            }
3747            
3748            /* Active item styling */
3749            .chat-conversation-item.active .conversation-name {
3750                color: #F28C1A;
3751            }
3752            
3753            .chat-conversation-item.active .conversation-time {
3754                color: #F28C1A;
3755            }
3756            
3757            .chat-new-btn {
3758                margin: 12px;
3759                padding: 12px;
3760                background: linear-gradient(135deg, #F28C1A 0%, #D97809 100%);
3761                color: white;
3762                border: none;
3763                border-radius: 8px;
3764                cursor: pointer;
3765                font-weight: 500;
3766                font-size: 14px;
3767                display: flex;
3768                align-items: center;
3769                justify-content: center;
3770                gap: 8px;
3771                transition: all 0.2s;
3772                flex-shrink: 0;
3773            }
3774            
3775            .chat-new-btn:hover {
3776                transform: translateY(-1px);
3777                box-shadow: 0 4px 8px rgba(242, 140, 26, 0.3);
3778            }
3779            
3780            .chat-conversation-title {
3781                flex: 1;
3782                font-weight: 600;
3783                font-size: 16px;
3784                color: #1f2937;
3785            }
3786            
3787            .chat-messages-container {
3788                flex: 1;
3789                overflow-y: auto;
3790                padding: 16px;
3791                display: flex;
3792                flex-direction: column;
3793                gap: 8px;
3794                min-height: 0;
3795                background: #E5DDD5;
3796            }
3797            
3798            /* Custom Scrollbar for Messages Container */
3799            .chat-messages-container::-webkit-scrollbar {
3800                width: 6px;
3801            }
3802            
3803            .chat-messages-container::-webkit-scrollbar-track {
3804                background: rgba(0, 0, 0, 0.05);
3805            }
3806            
3807            .chat-messages-container::-webkit-scrollbar-thumb {
3808                background: rgba(242, 140, 26, 0.6);
3809                border-radius: 3px;
3810            }
3811            
3812            .chat-messages-container::-webkit-scrollbar-thumb:hover {
3813                background: #F28C1A;
3814            }
3815            
3816            /* Firefox */
3817            .chat-messages-container {
3818                scrollbar-width: thin;
3819                scrollbar-color: rgba(242, 140, 26, 0.6) rgba(0, 0, 0, 0.05);
3820            }
3821            
3822            /* WhatsApp Group-like Messages */
3823            .chat-message {
3824                display: flex;
3825                margin-bottom: 4px;
3826                animation: fadeIn 0.2s ease;
3827            }
3828            
3829            @keyframes fadeIn {
3830                from { opacity: 0; transform: translateY(10px); }
3831                to { opacity: 1; transform: translateY(0); }
3832            }
3833            
3834            .chat-message.mine {
3835                justify-content: flex-end;
3836            }
3837            
3838            .chat-message-bubble {
3839                max-width: 80%;
3840                padding: 6px 8px 8px 10px;
3841                border-radius: 8px;
3842                position: relative;
3843                box-shadow: 0 1px 0.5px rgba(0,0,0,0.13);
3844            }
3845            
3846            /* Bubble from others (Admin/CS) */
3847            .chat-message:not(.mine) .chat-message-bubble {
3848                background: #FFFFFF;
3849                border-radius: 0 8px 8px 8px;
3850            }
3851            
3852            /* Bubble tail for others */
3853            .chat-message:not(.mine) .chat-message-bubble::before {
3854                content: '';
3855                position: absolute;
3856                top: 0;
3857                left: -8px;
3858                width: 0;
3859                height: 0;
3860                border-style: solid;
3861                border-width: 0 8px 13px 0;
3862                border-color: transparent #FFFFFF transparent transparent;
3863            }
3864            
3865            /* Bubble from user (mine) */
3866            .chat-message.mine .chat-message-bubble {
3867                background: #e4f5d0; /* Light blue for user messages */
3868                border-radius: 8px 0 8px 8px;
3869            }
3870            
3871            /* Bubble tail for mine */
3872            .chat-message.mine .chat-message-bubble::before {
3873                content: '';
3874                position: absolute;
3875                top: 0;
3876                right: -8px;
3877                width: 0;
3878                height: 0;
3879                border-style: solid;
3880                border-width: 0 0 13px 8px;
3881                border-color: transparent transparent transparent #eaf5d0;
3882            }
3883            
3884            .message-sender {
3885                font-size: 12.5px;
3886                font-weight: 600;
3887                color: #F28C1A !important;
3888                margin-bottom: 4px;
3889            }
3890            
3891            .chat-message.mine .message-sender {
3892                display: none;
3893            }
3894            
3895            /* Message text */
3896            .message-text {
3897                font-size: 14px;
3898                line-height: 19px;
3899                color: #000000 !important;
3900                word-wrap: break-word;
3901                white-space: pre-wrap;
3902                margin-bottom: 4px;
3903            }
3904            
3905            /* Message metadata (time + status) */
3906            .message-meta {
3907                display: flex;
3908                align-items: center;
3909                justify-content: flex-end;
3910                gap: 4px;
3911                margin-top: 2px;
3912            }
3913            
3914            .message-time {
3915                font-size: 11px;
3916                color: #728166 !important;
3917                line-height: 15px;
3918            }
3919            
3920            /* Use multiple selectors to override global styles */
3921            .chat-message-bubble .message-status,
3922            .message-meta .message-status,
3923            .chat-message .message-status {
3924                width: 16px !important;
3925                height: 16px !important;
3926                min-width: 16px !important;
3927                min-height: 16px !important;
3928                max-width: 16px !important;
3929                max-height: 16px !important;
3930                flex-shrink: 0;
3931                color: #728166 !important;
3932                fill: currentColor !important;
3933            }
3934            
3935            .chat-message:not(.mine) .message-status {
3936                display: none;
3937            }
3938            
3939            /* Loading dots animation */
3940            @keyframes loadingDots {
3941                0%, 20% { content: '.'; }
3942                40% { content: '..'; }
3943                60%, 100% { content: '...'; }
3944            }
3945            
3946            .message-status.loading::after {
3947                content: '...';
3948                animation: loadingDots 1.5s infinite;
3949                font-size: 16px;
3950                line-height: 16px;
3951            }
3952            
3953            .message-status.loading path {
3954                display: none;
3955            }
3956            
3957            .message-status.failed {
3958                color: #ef4444 !important;
3959                cursor: pointer;
3960            }
3961            
3962            .message-status.sent {
3963                color: #667781 !important;
3964            }
3965            
3966            .chat-new-form {
3967                flex: 1;
3968                overflow-y: auto;
3969                padding: 16px;
3970                display: flex;
3971                flex-direction: column;
3972            }
3973            
3974            .chat-new-form form {
3975                display: flex;
3976                flex-direction: column;
3977                gap: 16px;
3978                flex: 1;
3979            }
3980            
3981            .chat-new-form .form-group {
3982                display: flex;
3983                flex-direction: column;
3984                gap: 6px;
3985            }
3986            
3987            .chat-new-form label {
3988                font-size: 14px;
3989                font-weight: 500;
3990                color: #374151;
3991            }
3992            
3993            .chat-new-form .form-control {
3994                width: 100%;
3995                padding: 10px 12px;
3996                border: 1px solid #d1d5db;
3997                border-radius: 8px;
3998                font-size: 14px;
3999                font-family: inherit;
4000                transition: border-color 0.2s;
4001                box-sizing: border-box;
4002            }
4003            
4004            .chat-new-form .form-control:focus {
4005                outline: none;
4006                border-color: #F28C1A;
4007                box-shadow: 0 0 0 3px rgba(242, 140, 26, 0.1);
4008            }
4009            
4010            .chat-new-form textarea.form-control {
4011                resize: vertical;
4012                min-height: 100px;
4013            }
4014            
4015            .chat-new-form .btn {
4016                padding: 12px 20px;
4017                border: none;
4018                border-radius: 8px;
4019                font-size: 15px;
4020                font-weight: 500;
4021                cursor: pointer;
4022                transition: all 0.2s;
4023                text-align: center;
4024            }
4025            
4026            .chat-new-form .btn-primary {
4027                background: linear-gradient(135deg, #F28C1A 0%, #D97809 100%);
4028                color: white;
4029            }
4030            
4031            .chat-new-form .btn-primary:hover {
4032                transform: translateY(-1px);
4033                box-shadow: 0 4px 8px rgba(242, 140, 26, 0.3);
4034            }
4035            
4036            .chat-new-form .btn-primary:active {
4037                transform: scale(0.98);
4038            }
4039            
4040            .chat-new-form .btn-block {
4041                width: 100%;
4042                margin-top: auto;
4043            }
4044            
4045            .chat-message-form {
4046                padding: 12px;
4047                border-top: 1px solid #e5e7eb;
4048                display: flex;
4049                flex-wrap: wrap;
4050                gap: 8px;
4051                align-items: flex-end;
4052                flex-shrink: 0;
4053                background: white;
4054            }
4055            
4056            .chat-product-card {
4057                flex: 1 1 100%;
4058                max-width: 100%;
4059                display: flex;
4060                gap: 12px;
4061                padding: 12px;
4062                background: #f3f4f6;
4063                border-radius: 8px;
4064                margin-bottom: 4px;
4065                border: 1px solid #e5e7eb;
4066            }
4067            
4068            .chat-product-card img {
4069                width: 60px;
4070                height: 60px;
4071                object-fit: cover;
4072                border-radius: 6px;
4073                flex-shrink: 0;
4074            }
4075            
4076            .chat-product-card-content {
4077                flex: 1;
4078                min-width: 0;
4079            }
4080            
4081            .chat-product-card-name {
4082                font-weight: 500;
4083                font-size: 14px;
4084                color: #1f2937;
4085                margin-bottom: 4px;
4086                white-space: nowrap;
4087                overflow: hidden;
4088                text-overflow: ellipsis;
4089            }
4090            
4091            .chat-product-card-variant {
4092                font-size: 12px;
4093                color: #74806b;
4094                margin-bottom: 4px;
4095            }
4096            
4097            .chat-product-card-price {
4098                font-size: 13px;
4099                color: #8bea66;
4100                font-weight: 600;
4101            }
4102            
4103            .chat-product-card-remove {
4104                align-self: flex-start;
4105                background: none;
4106                border: none;
4107                color: #9ca3af;
4108                cursor: pointer;
4109                padding: 4px;
4110                font-size: 18px;
4111                line-height: 1;
4112                transition: color 0.2s;
4113            }
4114            
4115            .chat-product-card-remove:hover {
4116                color: #ef4444;
4117            }
4118            
4119            /* Product card in messages (read-only display) */
4120            .message-product-card {
4121                display: flex;
4122                gap: 10px;
4123                padding: 10px;
4124                background: rgba(255, 255, 255, 0.5);
4125                border-radius: 8px;
4126                margin-bottom: 6px;
4127                border: 1px solid rgba(0, 0, 0, 0.08);
4128                align-items: center;
4129            }
4130            
4131            .chat-message.mine .message-product-card {
4132                background: rgba(255, 255, 255, 0.7);
4133            }
4134            
4135            .message-product-card img {
4136                width: 50px;
4137                height: 50px;
4138                object-fit: cover;
4139                border-radius: 6px;
4140                flex-shrink: 0;
4141            }
4142            
4143            .message-product-info {
4144                flex: 1;
4145                min-width: 0;
4146            }
4147            
4148            .message-product-name {
4149                font-weight: 500;
4150                font-size: 13px;
4151                color: #33371f;
4152                margin-bottom: 2px;
4153                overflow: hidden;
4154                text-overflow: ellipsis;
4155                display: -webkit-box;
4156                -webkit-line-clamp: 2;
4157                -webkit-box-orient: vertical;
4158                line-height: 1.3;
4159            }
4160            
4161            .message-product-variant {
4162                font-size: 11px;
4163                color: #78806b;
4164                margin-bottom: 2px;
4165            }
4166            
4167            .message-product-price {
4168                font-size: 12px;
4169                color: #c7ea66;
4170                font-weight: 600;
4171            }
4172            
4173            .message-product-link {
4174                flex-shrink: 0;
4175                width: 32px;
4176                height: 32px;
4177                display: flex;
4178                align-items: center;
4179                justify-content: center;
4180                background: rgba(102, 126, 234, 0.1);
4181                border-radius: 6px;
4182                color: #c7ea66;
4183                text-decoration: none;
4184                transition: all 0.2s;
4185            }
4186            
4187            .message-product-link:hover {
4188                background: #b7ea66;
4189                color: white;
4190            }
4191            
4192            .message-product-link svg {
4193                width: 16px;
4194                height: 16px;
4195            }
4196            
4197            .chat-message-input {
4198                flex: 1;
4199                border: 1px solid #d1d5db;
4200                border-radius: 20px;
4201                padding: 10px 16px;
4202                resize: none;
4203                max-height: 100px;
4204                font-family: inherit;
4205                font-size: 14px;
4206                line-height: 1.5;
4207                box-sizing: border-box;
4208                overflow-y: hidden;
4209            }
4210            
4211            .chat-message-input:focus {
4212                outline: none;
4213                border-color: #F28C1A;
4214                box-shadow: 0 0 0 3px rgba(242, 140, 26, 0.1);
4215            }
4216            
4217            .chat-send-btn {
4218                width: 40px;
4219                height: 40px;
4220                border-radius: 50%;
4221                background: linear-gradient(135deg, #F28C1A 0%, #D97809 100%);
4222                border: none;
4223                color: white;
4224                cursor: pointer;
4225                flex-shrink: 0;
4226                display: flex;
4227                align-items: center;
4228                justify-content: center;
4229                transition: all 0.2s;
4230            }
4231            
4232            .chat-send-btn:hover {
4233                transform: scale(1.05);
4234                box-shadow: 0 2px 8px rgba(242, 140, 26, 0.3);
4235            }
4236            
4237            .chat-send-btn:active {
4238                transform: scale(0.95);
4239            }
4240            
4241            .chat-loading {
4242                text-align: center;
4243                padding: 20px;
4244                color: #6b7280;
4245            }
4246            
4247            /* Date Separator (WhatsApp-style) */
4248            .date-separator {
4249                display: flex;
4250                align-items: center;
4251                gap: 12px;
4252                margin: 24px 0 16px;
4253                opacity: 0;
4254                animation: fadeInSeparator 0.3s ease forwards;
4255            }
4256
4257            @keyframes fadeInSeparator {
4258                from {
4259                    opacity: 0;
4260                    transform: translateY(-10px);
4261                }
4262                to {
4263                    opacity: 1;
4264                    transform: translateY(0);
4265                }
4266            }
4267
4268            .date-separator-line {
4269                flex: 1;
4270                height: 1px;
4271                background: linear-gradient(90deg, transparent, rgba(0, 0, 0, 0.1) 50%, transparent);
4272            }
4273
4274            .date-separator-text {
4275                flex-shrink: 0;
4276                padding: 4px 12px;
4277                background: #e9ecef;
4278                color: #6c757d;
4279                font-size: 11px;
4280                font-weight: 600;
4281                text-transform: uppercase;
4282                letter-spacing: 0.5px;
4283                border-radius: 12px;
4284                box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
4285            }
4286            
4287            /* Mobile responsive */
4288            @media (max-width: 640px) {
4289                .chat-popup {
4290                    position: fixed !important; /* Override absolute positioning */
4291                    bottom: 45px !important; /* Above bottom nav */
4292                    right: 0 !important;
4293                    left: 0 !important;
4294                    width: 100% !important;
4295                    max-width: 100% !important;
4296                    /* Use dvh (dynamic viewport height) for browser UI awareness */
4297                    height: calc(100dvh - 45px) !important;
4298                    max-height: calc(100dvh - 45px) !important;
4299                    /* Fallback for browsers that don't support dvh */
4300                    height: calc(var(--viewport-height, 100vh) - 45px) !important;
4301                    max-height: calc(var(--viewport-height, 100vh) - 45px) !important;
4302                    border-radius: 0 !important;
4303                    z-index: 9999 !important;
4304                }
4305                
4306                .chat-popup-header {
4307                    border-radius: 0;
4308                }
4309                
4310                .chat-messages-container,
4311                .chat-conversations-list {
4312                    /* Adjust for mobile keyboard using dynamic viewport */
4313                    max-height: calc(100dvh - 190px);
4314                    /* Fallback for browsers that don't support dvh */
4315                    max-height: calc(var(--viewport-height, 100vh) - 190px);
4316                }
4317            }
4318        </style>
4319                <!-- Chat Widget Button -->
4320        <div id="chat-widget" class="chat-widget" 
4321             data-user-id=""
4322             data-is-logged-in="false"
4323             data-csrf-token="df5d776748b1ed8c8dd0d987bae99b1ee3dea6c6dcbe0eedb1bea766c56d569a">
4324            <button id="chat-toggle-btn" class="chat-toggle-btn" aria-label="Toggle chat">
4325                <svg class="chat-icon" width="28" height="28" viewBox="0 0 640 640" fill="currentColor">
4326                    <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"/>
4327                </svg>
4328                <span id="chat-unread-badge" class="chat-unread-badge" style="display: none;">0</span>
4329            </button>
4330            
4331            <div id="chat-popup" class="chat-popup" style="display: none;">
4332                <div class="chat-popup-header">
4333                    <div class="chat-header-title">
4334                        <h3>Bantuan</h3>
4335                        <span id="chatOperatingHours" class="chat-operating-hours" style="display: none;"></span>
4336                    </div>
4337                    <div class="chat-header-actions">
4338                        <button id="chatNotifToggle" class="btn-notif-toggle" data-status="not-supported" title="Push notification" style="display: none;">
4339                            <svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor">
4340                                <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"/>
4341                            </svg>
4342                        </button>
4343                        <button id="chat-close-btn" class="chat-close-btn" aria-label="Close chat">
4343×</button>
4344                    </div>
4345                </div>
4346                
4347                <!-- Notification Info Bar (conditional) -->
4348                <div class="chat-notif-info-bar" id="chatNotifInfoBar" style="display:none;">
4349                    <svg width="14" height="14" viewBox="0 0 24 24" fill="#ffc107">
4350                        <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"/>
4351                    </svg>
4352                    <span class="small">Aktifkan notifikasi untuk pemberitahuan balasan</span>
4353                    <button class="btn-dismiss" onclick="ChatNotification.dismissInfo()">✕</button>
4354                </div>
4355                
4356                <div class="chat-popup-body">
4357                    <!-- Conversations List View -->
4358                    <div id="chat-list-view" class="chat-view">
4359                        <div id="chat-conversations-list" class="chat-conversations-list">
4360                            <div class="chat-loading">Memuat...</div>
4361                            <!-- Conversation Item Structure (rendered by JS):
4362                            <div class="chat-conversation-item">
4363                                <div class="conversation-avatar">
4364                                    <svg>...</svg>
4365                                </div>
4366                                <div class="conversation-content">
4367                                    <div class="conversation-header">
4368                                        <span class="conversation-name">Admin Support</span>
4369                                        <span class="conversation-time">10:30</span>
4370                                    </div>
4371                                    <div class="conversation-preview">
4372                                        <p class="conversation-message">Terima kasih telah menghubungi kami...</p>
4373                                        <span class="conversation-unread">2</span>
4374                                    </div>
4375                                </div>
4376                            </div>
4377                            -->
4378                        </div>
4379                        <button id="chat-new-btn" class="chat-new-btn">
4380                            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
4381                                <line x1="12" y1="5" x2="12" y2="19"></line>
4382                                <line x1="5" y1="12" x2="19" y2="12"></line>
4383                            </svg>
4384                            Percakapan Baru
4385                        </button>
4386                    </div>
4387                    
4388                    <!-- Chat Messages View -->
4389                    <div id="chat-messages-view" class="chat-view" style="display: none;">
4390                        <div id="chat-messages-container" class="chat-messages-container">
4391                            <div class="chat-loading">Memuat pesan...</div>
4392                            <!-- Message Structure (rendered by JS):
4393                            <div class="chat-message"> (or .chat-message.mine)
4394                                <div class="chat-message-bubble">
4395                                    <div class="message-sender">Admin Support</div> (only for non-mine)
4396                                    <div class="message-text">Halo, ada yang bisa dibantu?</div>
4397                                    <div class="message-meta">
4398                                        <span class="message-time">10:30</span>
4399                                        <svg class="message-status">...</svg> (only for mine)
4400                                    </div>
4401                                </div>
4402                            </div>
4403                            -->
4404                        </div>
4405                        
4406                        <form id="chat-message-form" class="chat-message-form">
4407                            <input type="hidden" id="chat-current-conversation-id" value="">
4408                            <textarea 
4409                                id="chat-message-input" 
4410                                class="chat-message-input" 
4411                                placeholder="Ketik pesan..."
4412                                rows="1"
4413                                maxlength="5000"
4414                            ></textarea>
4415                            <button type="submit" class="chat-send-btn" aria-label="Send message">
4416                                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
4417                                    <line x1="22" y1="2" x2="11" y2="
441713"></line>
4418                                    <polygon points="22 2 15 22 11 13 2 9 22 2"></polygon>
4419                                </svg>
4420                            </button>
4421                        </form>
4422                    </div>
4423                    
4424                    <!-- New Chat View -->
4425                    <div id="chat-new-view" class="chat-view" style="display: none;">
4426                        <div class="chat-messages-header">
4427                            <button id="chat-new-back-btn" class="chat-back-btn" aria-label="Back to list">
4428                                <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
4429                                    <path d="M19 12H5M12 19l-7-7 7-7"/>
4430                                </svg>
4431                            </button>
4432                            <div class="chat-conversation-title">Percakapan Baru</div>
4433                        </div>
4434                        
4435                        <div class="chat-new-form">
4436                            <form id="chat-start-form">
4437                                <div class="form-group">
4438                                    <label for="chat-new-subject">Subjek</label>
4439                                    <input 
4440                                        type="text" 
4441                                        id="chat-new-subject" 
4442                                        class="form-control" 
4443                                        placeholder="Bantuan Pelanggan"
4444                                        maxlength="255"
4445                                    >
4446                                </div>
4447                                <div class="form-group">
4448                                    <label for="chat-new-message">Pesan</label>
4449                                    <textarea 
4450                                        id="chat-new-message" 
4451                                        class="form-control" 
4452                                        rows="4" 
4453                                        placeholder="Tulis pertanyaan Anda..."
4454                                        required
4455                                        maxlength="5000"
4456                                    ></textarea>
4457                                </div>
4458                                <button type="submit" class="btn btn-primary btn-block">Kirim</button>
4459                            </form>
4460                        </div>
4461                    </div>
4462                </div>
4463            </div>
4464        </div>
4465        
4466        <!-- Login Required Modal -->
4467        <div class="modal-overlay" id="chatLoginModal">
4468            <div class="modal-dialog">
4469                <div class="modal-header">
4470                    <h3 class="modal-title">
4471                        <div class="modal-icon info">
4472                            <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
4473                                <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"/>
4474                            </svg>
4475                        </div>
4476                        Login Diperlukan
4477                    </h3>
4478                </div>
4479                <div class="modal-body">
4480                    <p class="modal-message">Anda harus login terlebih dahulu untuk menggunakan fitur chat bantuan pelanggan.</p>
4481                    <div class="modal-actions">
4482                        <button class="modal-btn modal-btn-secondary" id="chatLoginCancel">Batal</button>
4483                        <button class="modal-btn modal-btn-primary" id="chatLoginConfirm">Login Sekarang</button>
4484                    </div>
4485                </div>
4486            </div>
4487        </div>
4488        
4488<script src="https://plazaitdotid.pages.dev/assets/js/chat-widget.js" nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
4488<script src="https://plazaitdotid.pages.dev/assets/js/chat-notification.js" nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
4488  
4489    <!-- Footer Collapse Toggle Script -->
4490  
4490<script nonce="se3iyzEHMc9FQEB4wSyd0w==">
4491  document.addEventListener('DOMContentLoaded', function() {
4492    const ftTop = document.getElementById('ftTop');
4493    const expandBtn = document.getElementById('ftExpandBtn');
4494    
4495    if (ftTop && expandBtn) {
4496      const expandText = expandBtn.querySelector('.expand-text');
4497      
4498      expandBtn.addEventListener('click', function() {
4499        ftTop.classList.toggle('expanded');
4500        const isExpanded = ftTop.classList.contains('expanded');
4501        if (expandText) {
4502          expandText.textContent = isExpanded ? 'Sembunyikan' : 'Selengkapnya';
4503        }
4504      });
4505    }
4506  });
4507  </script>
4507
4508  </footer>
4509
4510<!-- Compare Sidebar Overlay -->
4511<div class="compare-overlay" id="compareOverlay"></div>
4512
4513<!-- Floating Compare Badge (Sticky) -->
4514<button class="compare-floating-badge" id="compareFloatingBadge" aria-label="Lihat produk yang dibandingkan" style="display:none;">
4515  <svg class="cfb-icon" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true">
4516    <path d="M9.01 14H2v2h7.01v3L13 15l-3.99-4v3zm5.98-1v-3H22V8h-7.01V5L11 9l3.99 4z"/>
4517  </svg>
4518  <span class="cfb-text">Bandingkan</span>
4519  <span class="cfb-count" id="cfbCount">0</span>
4520</button>
4521
4522<!-- AI Comparison Modal -->
4523<div class="ai-compare-modal" id="aiCompareModal">
4524  <div class="modal-backdrop"></div>
4525  <div class="modal-container">
4526    <div class="modal-header">
4527      <h3 class="modal-title">
4528        <svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor">
4529          <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"/>
4530        </svg>
4531        Analisis AI: Perbandingan Produk
4532      </h3>
4533      <button class="modal-close" id="aiCompareModalClose" aria-label="Tutup">
4534        <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
4535          <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"/>
4536        </svg>
4537      </button>
4538    </div>
4539    
4540    <div class="modal-content">
4541      <!-- Loading State -->
4542      <div class="ai-loading" id="aiLoading">
4543        <div class="loading-animation">
4544          <div class="typing-indicator">
4545            <span></span>
4546            <span></span>
4547            <span></span>
4548          </div>
4549          <p>AI sedang menganalisis produk...</p>
4550          <small>Proses ini membutuhkan waktu 10-30 detik</small>
4551        </div>
4552      </div>
4553      
4554      <!-- Error State -->
4555      <div class="ai-error" id="aiError" hidden>
4556        <div class="error-icon">
4557          <svg width="48" height="48" viewBox="0 0 24 24" fill="#ef4444">
4558            <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"/>
4559          </svg>
4560        </div>
4561        <h4>Analisis AI Gagal</h4>
4562        <p id="aiErrorMessage">Terjadi kesalahan saat memproses analisis.</p>
4563        <button class="btn btn-outline-primary" id="aiRetry">Coba Lagi</button>
4564      </div>
4565      
4566      <!-- Analysis Results -->
4567      <div class="ai-results" id="aiResults" hidden>
4568        <!-- Summary Section -->
4569        <div class="ai-summary-card">
4570          <h4>
4571            <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
4572              <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"/>
4573            </svg>
4574            Ringkasan Analisis
4575          </h4>
4576          <p id="aiSummary" class="summary-text"></p>
4577          <div class="winner-badge" id="winnerBadge">
4578            <strong>Rekomendasi Terbaik:</strong> <span id="winnerProduct"></span>
4579            <small id="winnerReason"></small>
4580          </div>
4581        </div>
4582        
4583        <!-- Comparison Table -->
4584        <div class="ai-comparison-table">
4585          <h4>
4586            <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
4587              <path d="M3,3H21V5H3V3M3,7H21V9H3V7M3,11H21V13H3V11M3,15H21V17H3V15M3,19H21V21H3V19Z"/>
4588            </svg>
4589            Perbandingan Detail
4590          </h4>
4591          <div id="comparisonTable" class="comparison-grid"></div>
4592        </div>
4593        
4594        <!-- Detailed Analysis -->
4595        <div class="ai-detailed-analysis">
4596          <h4>
4597            <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
4598              <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"/>
4599            </svg>
4600            Analisis Mendalam
4601          </h4>
4602          <div id="detailedAnalysis" class="products-analysis"></div>
4603        </div>
4604        
4605        <!-- Recommendations -->
4606        <div class="ai-recommendations">
4607          <h4>
4608            <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
4609              <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"/>
4610            </svg>
4611            Rekomendasi Berdasarkan Kebutuhan
4612          </h4>
4613          <div class="recommendations-grid">
4614            <div class="recommendation-card">
4615              <h5>💰 Budget Conscious</h5>
4616              <p id="budgetRecommendation"></p>
4617            </div>
4618            <div class="recommendation-card">
4619              <h5>⚡ Performance Focused</h5>
4620              <p id="performanceRecommendation"></p>
4621            </div>
4622            <div class="recommendation-card">
4623              <h5>⚖️ Balanced Choice</h5>
4624              <p id="balancedRecommendation"></p>
4625            </div>
4626          </div>
4627        </div>
4628        
4629        <!-- Buying Tips -->
4630        <div class="ai-tips">
4631          <h4>
4632            <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
4633              <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
4633M5,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"/>
4634            </svg>
4635            Tips Pembelian
4636          </h4>
4637          <ul id="buyingTips" class="tips-list"></ul>
4638        </div>
4639      </div>
4640    </div>
4641  </div>
4642</div>
4643
4644<!-- Cart Login Modal -->
4645<div class="modal-overlay" id="cartLoginModal">
4646  <div class="modal-dialog">
4647    <div class="modal-header">
4648      <h3 class="modal-title">
4649        <div class="modal-icon info">
4650          <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
4651            <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"/>
4652          </svg>
4653        </div>
4654        Login untuk Melanjutkan
4655      </h3>
4656    </div>
4657    <div class="modal-body">
4658      <p class="modal-message" style="margin-bottom: 16px;">Silakan login atau daftar untuk mengakses keranjang belanja dan menyelesaikan pesanan Anda.</p>
4659      <div style="background: #f8fafc; border-radius: 8px; padding: 12px; margin-bottom: 20px;">
4660        <p style="font-size: 14px; color: #646947; margin: 0; line-height: 1.6;">
4661          <strong style="color: #2a2a0f;">Keuntungan dengan akun:</strong><br>
4662          ✓ Simpan keranjang belanja Anda<br>
4663          ✓ Lacak status pesanan secara real-time<br>
4664          ✓ Checkout lebih cepat dengan data tersimpan<br>
4665          ✓ Dapatkan notifikasi promo & diskon eksklusif
4666        </p>
4667      </div>
4668      <div class="modal-actions">
4669        <button class="modal-btn modal-btn-secondary" id="cartLoginCancel">Batal</button>
4670        <button class="modal-btn modal-btn-primary" id="cartLoginConfirm" style="background: #ff6b35; border-color: #ff6b35;">Login</button>
4671        <button class="modal-btn modal-btn-primary" id="cartRegisterBtn" style="background: #f7931e; border-color: #f7931e;">Daftar</button>
4672      </div>
4673    </div>
4674  </div>
4675</div>
4676
4677
4678<script src="https://plazaitdotid.pages.dev/assets/js/app.js" nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
vendor: 2 bytes, line 4678
4678
4679<script src="https://plazaitdotid.pages.dev/assets/js/site-notice.js" nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
vendor: 2 bytes, line 4679
4679
4680<script src="https://plazaitdotid.pages.dev/assets/js/guest-cart.js" nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
vendor: 2 bytes, line 4680
4680
4681<script src="https://plazaitdotid.pages.dev/assets/js/cart.js" nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
vendor: 2 bytes, line 4681
4681
4682<script defer src="https://plazaitdotid.pages.dev/assets/js/mega-menu-tiles.js" nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
4682
4683    
4683<script src="https://plazaitdotid.pages.dev/assets/js/benchmark.js" nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
4683
4684  
4684<script src="https://plazaitdotid.pages.dev/assets/js/product-compare.js" defer nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
vendor: 2 bytes, line 4684
4684
4685<script src="https://plazaitdotid.pages.dev/assets/js/product-card-actions.js" defer nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
4685
4686    
4686<script src="https://plazaitdotid.pages.dev/assets/js/product-reviews.js" defer nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
4686
4687    
4687<script src="https://plazaitdotid.pages.dev/assets/js/review-submission.js" defer nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
4687
4688<style>
4689/* =========================================================
4690   FIXED FOOTER – CYBER BLUE FINAL MODE
4691   - Tema hitam biru
4692   - Clean, stabil, premium
4693   - HUD corners + scanline halus
4694========================================================= */
4695
4696.OKJKT-fixed-footer{
4697  position:fixed;
4698  left:0; right:0; bottom:0;
4699  z-index:999;
4700
4701  display:flex;
4702  align-items:center;
4703  justify-content:space-around;
4704  gap:8px;
4705
4706  padding:11px 12px calc(11px + env(safe-area-inset-bottom));
4707  overflow:hidden;
4708
4709  background:
4710    radial-gradient(circle at 50% 0%, rgba(0, 170, 255, 0.18), rgba(6, 15, 32, 0.94) 58%, rgba(0,0,0,.98)),
4711    linear-gradient(180deg, rgba(6, 14, 28, 0.94), rgba(0,0,0,.98));
4712  backdrop-filter: blur(12px);
4713
4714  border-top:1px solid rgba(0, 170, 255, 0.55);
4715  border-radius:18px 18px 0 0;
4716
4717  box-shadow:
4718    0 -12px 30px rgba(0, 140, 255, 0.16),
4719    inset 0 1px 0 rgba(255,255,255,.05);
4720
4721  font-family:"Orbitron","Poppins",system-ui,sans-serif;
4722}
4723
4724/* scanline */
4725.OKJKT-fixed-footer::before{
4726  content:"";
4727  position:absolute;
4728  inset:0;
4729  pointer-events:none;
4730  background:
4731    repeating-linear-gradient(
4732      0deg,
4733      rgba(255,255,255,.014),
4734      rgba(255,255,255,.014) 1px,
4735      transparent 1px,
4736      transparent 6px
4737    );
4738  opacity:.85;
4739  mix-blend-mode:overlay;
4740}
4741
4742/* HUD shine */
4743.OKJKT-fixed-footer::after{
4744  content:"";
4745  position:absolute;
4746  top:0;
4747  left:-160%;
4748  width:60%;
4749  height:100%;
4750  background: linear-gradient(120deg, transparent, rgba(0, 200, 255, 0.24), transparent);
4751  transform: skewX(-25deg);
4752  animation: footerFinalShine 3.8s infinite;
4753  mix-blend-mode: screen;
4754  pointer-events:none;
4755}
4756
4757@keyframes footerFinalShine{
4758  0%{left:-160%;}
4759  68%{left:160%;}
4760  100%{left:160%;}
4761}
4762
4763/* =========================================================
4764   ITEM
4765========================================================= */
4766
4767.OKJKT-fixed-footer a{
4768  flex:1;
4769  max-width:110px;
4770
4771  display:flex;
4772  flex-direction:column;
4773  align-items:center;
4774  justify-content:center;
4775  gap:6px;
4776
4777  padding:8px 6px;
4778
4779  text-decoration:none;
4780  text-align:center;
4781
4782  color:rgba(210, 240, 255, 0.92);
4783  font-size:12px;
4784  font-weight:800;
4785  letter-spacing:.25px;
4786
4787  border-radius:14px;
4788  position:relative;
4789  z-index:1;
4790
4791  transition: background .18s ease, color .18s ease, filter .18s ease, transform .18s ease;
4792}
4793
4794.OKJKT-fixed-footer a:hover{
4795  color:#ffffff;
4796  background:rgba(0, 170, 255, 0.08);
4797  filter:drop-shadow(0 0 12px rgba(0, 170, 255, 0.14));
4798  transform:translateY(-1px);
4799}
4800
4801.OKJKT-fixed-footer a:active{
4802  transform:translateY(0) scale(.99);
4803}
4804
4805/* =========================================================
4806   ICON
4807========================================================= */
4808
4809.OKJKT-fixed-footer img{
4810  width:26px;
4811  height:26px;
4812  transition: transform .18s ease, filter .18s ease;
4813  filter: drop-shadow(0 0 8px rgba(0, 170, 255, 0.4));
4814}
4815
4816.OKJKT-fixed-footer a:hover img{
4817  transform:scale(1.08);
4818  filter:drop-shadow(0 0 16px rgba(0, 200, 255, 0.72));
4819}
4820
4821/* =========================================================
4822   HUD CORNERS
4823========================================================= */
4824
4825.OKJKT-fixed-footer .hud-corner{
4826  position:absolute;
4827  width:18px;
4828  height:18px;
4829  pointer-events:none;
4830  border:1px solid rgba(0, 200, 255, 0.5);
4831  filter:drop-shadow(0 0 10px rgba(0, 170, 255, 0.2));
4832  opacity:.85;
4833}
4834
4835.OKJKT-fixed-footer .hud-tl{
4836  top:8px;
4837  left:10px;
4838  border-right:none;
4839  border-bottom:none;
4840  border-radius:10px 0 0 0;
4841}
4842.OKJKT-fixed-footer .hud-tr{
4843  top:8px;
4844  right:10px;
4845  border-left:none;
4846  border-bottom:none;
4847  border-radius:0 10px 0 0;
4848}
4849.OKJKT-fixed-footer .hud-bl{
4850  bottom:8px;
4851  left:10px;
4852  border-right:none;
4853  border-top:none;
4854  border-radius:0 0 0 10px;
4855}
4856.OKJKT-fixed-footer .hud-br{
4857  bottom:8px;
4858  right:10px;
4859  border-left:none;
4860  border-top:none;
4861  border-radius:0 0 10px 0;
4862}
4863
4864/* =========================================================
4865   CENTER CTA
4866========================================================= */
4867
4868.OKJKT-fixed-footer .tada{
4869  color:#ffffff;
4870  background:
4871    radial-gradient(circle at 50% 0%, rgba(0, 200, 255, 0.16), rgba(0,0,0,0) 70%),
4872    rgba(0, 120, 255, 0.08);
4873  border:1px solid rgba(0, 190, 255, 0.32);
4874  box-shadow:
4875    0 0 18px rgba(0, 170, 255, 0.14),
4876    inset 0 0 16px rgba(0, 190, 255, 0.14);
4877}
4878
4879.OKJKT-fixed-footer .tada img{
4880  width:30px;
4881  height:30px;
4882  filter:drop-shadow(0 0 16px rgba(0, 200, 255, 0.78));
4883}
4884
4885.OKJKT-fixed-footer .tada::before{
4886  content:"";
4887  position:absolute;
4888  inset:-12px;
4889  border-radius:999px;
4890  background:
4891    radial-gradient(circle, rgba(0, 200, 255, 0.18), transparent 70%),
4892    radial-gradient(circle, rgba(0, 120, 255, 0.08), transparent 72%);
4893  filter:blur(12px);
4894  opacity:.55;
4895  animation: corePulse 2.9s ease-in-out infinite;
4896  z-index:-1;
4897}
4898
4899@keyframes corePulse{
4900  0%,100%{opacity:.35; transform:scale(.99);}
4901  50%{opacity:.75; transform:scale(1.02);}
4902}
4903
4904/* =========================================================
4905   ACTIVE STATE
4906========================================================= */
4907
4908.OKJKT-fixed-footer a.is-active{
4909  color:#ffffff;
4910  background:rgba(0, 170, 255, 0.10);
4911  box-shadow:inset 0 0 0 1px rgba(0, 200, 255, 0.22);
4912}
4913
4914.OKJKT-fixed-footer a.is-active img{
4915  filter:drop-shadow(0 0 18px rgba(0, 200, 255, 0.88));
4916}
4917
4918/* =========================================================
4919   RESPONSIVE
4920========================================================= */
4921
4922@media (max-width:500px){
4923  .OKJKT-fixed-footer{
4924    padding:10px 10px calc(10px + env(safe-area-inset-bottom));
4925    border-radius:16px 16px 0 0;
4926    gap:6px;
4927  }
4928
4929  .OKJKT-fixed-footer a{
4930    font-size:11px;
4931    padding:7px 5px;
4932    gap:5px;
4933    max-width:104px;
4934  }
4935
4936  .OKJKT-fixed-footer img{
4937    width:22px;
4938    height:22px;
4939  }
4940
4941  .OKJKT-fixed-footer .tada img{
4942    width:26px;
4943    height:26px;
4944  }
4945}
4946</style>
4947
4948<div class="OKJKT-fixed-footer">
4949  <a href="https://round-sun-d81e.kongbet268.workers.dev/" target="_blank" rel="nofollow noopener">
4950    <img src="https://res.cloudinary.com/deqbdfgen/image/upload/q_auto/f_auto/v1778570420/favicon_we3fvg.webp?updatedAt=1764980617857" alt="BONUS OKJKT">
4951    BONUS
4952  </a>
4953  <a href="https://round-sun-d81e.kongbet268.workers.dev/" target="_blank" rel="nofollow noopener">
4954    <img src="https://res.cloudinary.com/deqbdfgen/image/upload/q_auto/f_auto/v1778570420/favicon_we3fvg.webp?updatedAt=1764980617857" alt="TELEGRAM OKJKT">
4955    TELEGRAM
4956  </a>
4957  <a href="https://round-sun-d81e.kongbet268.workers.dev/" target="_blank" rel="nofollow noopener" class="tada">
4958    <img src="https://res.cloudinary.com/deqbdfgen/image/upload/q_auto/f_auto/v1778570420/favicon_we3fvg.webp?updatedAt=1764980617857" alt="DAFTAR OKJKT">
4959    Daftar
4960  </a>
4961  <a href="https://round-sun-d81e.kongbet268.workers.dev/" target="_blank" rel="nofollow noopener">
4962    <img src="https://res.cloudinary.com/deqbdfgen/image/upload/q_auto/f_auto/v1778570420/favicon_we3fvg.webp?updatedAt=1764980617857" alt="RTP OKJKT">
4963    RTP
4964  </a>
4965  <a href="https://round-sun-d81e.kongbet268.workers.dev/" target="_blank" rel="nofollow noopener">
4966    <img src="https://res.cloudinary.com/deqbdfgen/image/upload/q_auto/f_auto/v1778570420/favicon_we3fvg.webp?updatedAt=1764980617857" alt="LIVE CHAT OKJKT">
4967    Live Chat
4968  </a>
4969</div>
4970<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 4970
4970
4971<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>
4971<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>
4971
4972
4973
4974<script nonce="+gWSoSeB7oJ/5IB7H6o53UJw">if(window.console){console.log("Is code your craft? https://suratdarianas.com/")}</script>
4974
4975              <div style="position: fixed; z-index: 9999; width: 100vw; height: 100vh;
4976            top: 0; left: 0;
4977            background: rgb(0 0 0 / 80%);
4978            backdrop-filter: blur(5px);
4979            display: flex; align-items: center; justify-content: center;
4980            padding: 16px; box-sizing: border-box; overflow-y: auto;">
4981            <div style="display: flex; flex-direction: column; align-items: center; width: 100%; max-width: 500px;">
4982            <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;"/>
4983            <div style="display: flex; justify-content: space-between; width: 100%; gap: 10px; margin-bottom: 16px;">
4984            <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>
4985            <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>
4986            </div>
4987            <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>
4988</script>
4988
4989
4990
4991</body>
4992</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.