PageSourceSearch

https://sanskritclassics.com/

html sanskritclassics.com collected 2026-10-02 14:24:00 UTC 241,624 bytes, 4,101 lines download raw bytes

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