PageSourceSearch

https://iowa-map.org/

html iowa-map.org collected 2026-10-10 01:15:35 UTC 253,133 bytes, 5,015 lines download raw bytes

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