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