1 2 3 4 5<!DOCTYPE html> 6<html lang="id"> 7 8<head> 9 <meta charset="UTF-8"> 10 <title>Mengupas Tuntas Mirajautoservice dan Tren Otomotif Modern bersama KAWANMENANG 11 </title> 12 <meta name="description" 13 content="Simak ulasan mendalam mengenai Mirajautoservice dan tren perawatan otomotif modern bersama KAWANMENANG. Dapatkan tips, dan solusi terbaik untuk kendaraan Anda."> 14 <meta name="robots" content="index,follow"> 15 <link rel="canonical" href="https://mirajautoservice.com/"> 16 <link rel="amphtml" href="https://mirajautoservice.kawanmenang-main.space/event/"> 17 <link rel="alternate" href="https://mirajautoservice.kawanmenang-main.space/event/"> 18 <link rel="alternate" href="https://mirajautoservice.kawanmenang-main.space/event/" hreflang="id"> 19 <link rel="alternate" href="https://mirajautoservice.kawanmenang-main.space/event/" hreflang="en"> 20 <link rel="alternate" href="https://mirajautoservice.kawanmenang-main.space/event/" hreflang="en"> 21 <link rel="alternate" href="https://mirajautoservice.kawanmenang-main.space/event/" hreflang="x-default"> 22 <link rel="alternate" hreflang="id-ID" href="https://mirajautoservice.kawanmenang-main.space/event/" /> 23 <link rel="alternate" hreflang="en-US" href="https://mirajautoservice.kawanmenang-main.space/event/" /> 24 <link rel="alternate" hreflang="en-SG" href="https://mirajautoservice.kawanmenang-main.space/event/" /> 25 <link rel="preconnect" href="https://www.googletagmanager.com" crossorigin>
vendor: 69 bytes, lines 25-26
25 26 <script async src="https://www.googletagmanager.com/gtag/js?id=
26G-0LSM1YJSPZ
vendor: 59 bytes, lines 26-28
26" 27 nonce="se3iyzEHMc9FQEB4wSyd0w=="></script> 28
28<script 29 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>
29 30 <meta property="og:locale" content="id_ID"> 31 <meta property="og:site_name" content="Plaza IT"> 32 <meta property="og:type" content="product"> 33 <meta property="og:title" 34 content="Mengupas Tuntas Mirajautoservice dan Tren Otomotif Modern bersama KAWANMENANG"> 35 <meta property="og:description" 36 content="Simak ulasan mendalam mengenai Mirajautoservice dan tren perawatan otomotif modern bersama KAWANMENANG. Dapatkan tips, dan solusi terbaik untuk kendaraan Anda."> 37 <meta property="og:url" content="https://mirajautoservice.com/"> 38 <meta property="og:image" 39 content="https://cdn.datasirwg.cloud/KAWANMENANG/banner%20kawanmenang%20otomotif.webp"> 40 <meta property="og:image:alt" 41 content="Mengupas Tuntas Mirajautoservice dan Tren Otomotif Modern bersama KAWANMENANG"> 42 <meta property="product:price:amount" content="5000"> 43 <meta property="product:price:currency" content="IDR"> 44 <meta property="product:availability" content="out of stock"> 45 <meta name="author" content="KAWANMENANG" /> 46 <meta name="publisher" content="KAWANMENANG" /> 47 <meta name="copyright" content="KAWANMENANG" /> 48 <meta name="twitter:card" content="summary_large_image"> 49 <meta name="twitter:title" 50 content="Mengupas Tuntas Mirajautoservice dan Tren Otomotif Modern bersama KAWANMENANG"> 51 <meta name="twitter:description" 52 content="Simak ulasan mendalam mengenai Mirajautoservice dan tren perawatan otomotif modern bersama KAWANMENANG. Dapatkan tips, dan solusi terbaik untuk kendaraan Anda."> 53 <meta name="twitter:image" 54 content="https://cdn.datasirwg.cloud/KAWANMENANG/banner%20kawanmenang%20otomotif.webp"> 55 56
56<script type="application/ld+json"> 57{ 58 "@context": "https://schema.org", 59 "@type": "WebSite", 60 "@id": "https://mirajautoservice.com/#website", 61 "url": "https://mirajautoservice.com/", 62 "name": "KAWANMENANG", 63 "inLanguage": "id", 64 "potentialAction": { 65 "@type": "SearchAction", 66 "target": "https://mirajautoservice.com/", 67 "query-input": "required name=search_term_string" 68 } 69} 70</script>
70 71 72
72<script type="application/ld+json"> 73{ 74 "@context": "https://schema.org", 75 "@type": "Organization", 76 "@id": "https://mirajautoservice.com/#organization", 77 "name": "KAWANMENANG", 78 "url": "https://mirajautoservice.com/", 79 "logo": "https://cdn.datavip.cloud/Logo/KawanMenang.png" 80} 81</script>
81 82
83<script type="application/ld+json"> 84{ 85 "@context": "https://schema.org", 86 "@type": "Product", 87 "name": "Mengupas Tuntas Mirajautoservice dan Tren Otomotif Modern bersama KAWANMENANG", 88 "sku": "BLN-LOGIN-ALT-2026", 89 "image": [ 90 "https://cdn.datasirwg.cloud/KAWANMENANG/banner%20kawanmenang%20otomotif.webp" 91 ], 92 "url": "https://mirajautoservice.com/", 93 "description": "KAWANMENANG menjadi jalur akses pilihan untuk menjangkau halaman login alternatif resmi dengan proses masuk yang ringkas, koneksi optimal, navigasi terarah, dan tampilan yang nyaman digunakan melalui berbagai perangkat.", 94 "category": "Akses Login Alternatif KAWANMENANG", 95 "brand": { 96 "@type": "Brand", 97 "name": "KAWANMENANG" 98 }, 99 "offers": { 100 "@type": "Offer", 101 "url": "https://mirajautoservice.com/", 102 "priceCurrency": "IDR", 103 "price": "5000", 104 "priceValidUntil": "2027-03-01", 105 "availability": "https://schema.org/OutOfStock", 106 "itemCondition": "https://schema.org/NewCondition", 107 "seller": { 108 "@type": "Organization", 109 "name": "KAWANMENANG Akses Resmi", 110 "url": "https://mirajautoservice.com/" 111 } 112 }, 113 "aggregateRating": { 114 "@type": "AggregateRating", 115 "ratingValue": "4.9", 116 "reviewCount": "6699", 117 "bestRating": "5", 118 "worstRating": "1" 119 } 120} 121</script>
121 122 123
123<script type="application/ld+json"> 124{ 125 "@context": "https://schema.org", 126 "@type": "BreadcrumbList", 127 "itemListElement": [ 128 { 129 "@type": "ListItem", 130 "position": 1, 131 "name": "KAWANMENANG", 132 "item": "https://mirajautoservice.com/" 133 }, 134 { 135 "@type": "ListItem", 136 "position": 2, 137 "name": "LINK KAWANMENANG", 138 "item": "https://mirajautoservice.com/" 139 } 140 ] 141} 142</script>
142 143
144<script type="application/ld+json"> 145{ 146 "@context": "https://schema.org", 147 "@type": "FAQPage", 148 "mainEntity": [ 149 { 150 "@type": "Question", 151 "name": "Apa itu sistem resmi situs togel 4D KAWANMENANG?", 152 "acceptedAnswer": { 153 "@type": "Answer", 154 "text": "Sistem resmi KAWANMENANG merupakan layanan online yang menghadirkan informasi seputar situs togel 4D dan bandar toto Asia dalam satu halaman yang tersusun rapi, mudah dipahami, serta dapat digunakan melalui berbagai jenis perangkat." 155 } 156 }, 157 { 158 "@type": "Question", 159 "name": "Apa yang membedakan KAWANMENANG sebagai bandar toto online Asia?", 160 "acceptedAnswer": { 161 "@type": "Answer", 162 "text": "KAWANMENANG mengutamakan sistem akses yang praktis dengan navigasi sederhana, tampilan responsif, serta penyajian informasi bandar toto online Asia yang dirancang agar pengguna lebih mudah menemukan menu dan halaman yang dibutuhkan." 163 } 164 }, 165 { 166 "@type": "Question", 167 "name": "Bagaimana sistem situs togel 4D KAWANMENANG membantu pengguna?", 168 "acceptedAnswer": { 169 "@type": "Answer", 170 "text": "Sistem situs togel 4D KAWANMENANG membantu pengguna melalui susunan halaman yang terorganisir, pilihan menu yang jelas, serta tampilan yang menyesuaikan perangkat sehingga proses menjelajahi informasi dapat dilakukan dengan lebih nyaman." 171 } 172 }, 173 { 174 "@type": "Question", 175 "name": "Fitur informasi apa yang tersedia di KAWANMENANG?", 176 "acceptedAnswer": { 177 "@type": "Answer", 178 "text": "KAWANMENANG menyediakan informasi terkait situs togel 4D, bandar toto online Asia, akses halaman utama, pembaruan informasi, serta sejumlah menu pendukung yang disusun untuk mempermudah pengguna dalam menavigasi layanan." 179 } 180 }, 181 { 182 "@type": "Question", 183 "name": "Apakah KAWANMENANG mendukung akses melalui smartphone dan desktop?", 184 "acceptedAnswer": { 185 "@type": "Answer",
186 "text": "Ya, KAWANMENANG menggunakan desain yang dapat menyesuaikan ukuran layar sehingga halaman situs togel 4D dan bandar toto online Asia tetap dapat ditampilkan dengan baik melalui smartphone, tablet, laptop, maupun komputer desktop." 187 } 188 }, 189 { 190 "@type": "Question", 191 "name": "Bagaimana cara menggunakan sistem resmi KAWANMENANG?", 192 "acceptedAnswer": { 193 "@type": "Answer", 194 "text": "Pengguna dapat membuka halaman KAWANMENANG kemudian menggunakan menu yang tersedia untuk mengakses informasi situs togel 4D, bandar toto online Asia, serta halaman pendukung lainnya yang telah disusun dalam sistem navigasi yang lebih terstruktur." 195 } 196 } 197 ] 198} 199</script>
199 200 201 <!-- User Session Data --> 202 <meta name="csrf-token" content="9ce6e4a17f7cc189893df9e47789b13e98829450d516a0cae5ca7b5f43e5dadc"> 203 <meta name="user-logged-in" content="false"> 204 <meta name="user-id" content="0"> 205 206 <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" /> 207 208 <link rel="shortcut icon" 209 href="https://cdn.datavip.cloud/Favicon/KawanMenang.png" 210 type="image/x-icon"> 211 <link rel="stylesheet" href="https://plazaitdotid.pages.dev/assets/css/style.css"> 212 <link rel="stylesheet" href="https://plazaitdotid.pages.dev/assets/css/bottom-nav.css"> 213 <link rel="stylesheet" href="https://plazaitdotid.pages.dev/assets/css/search-suggest.css"> 214 <link rel="stylesheet" href="https://plazaitdotid.pages.dev/assets/css/product-detail.css"> 215 <link rel="stylesheet" href="https://plazaitdotid.pages.dev/assets/css/product-grid.css"> 216 <link rel="stylesheet" href="https://plazaitdotid.pages.dev/assets/css/site-notice.css"> 217 <link rel="stylesheet" href="https://plazaitdotid.pages.dev/assets/css/benchmark.css"> 218 <link rel="stylesheet" href="https://plazaitdotid.pages.dev/assets/css/product-filters.css"> 219 <link rel="stylesheet" href="https://plazaitdotid.pages.dev/assets/css/mega-menu-tiles.css"> 220 <link rel="stylesheet" href="https://plazaitdotid.pages.dev/assets/css/product-compare.css"> 221 <link rel="stylesheet" href="https://plazaitdotid.pages.dev/assets/css/product-card-actions.css"> 222 <link rel="stylesheet" href="https://plazaitdotid.pages.dev/assets/css/modal.css"> 223 224 <link rel="stylesheet" href="https://plazaitdotid.pages.dev/assets/css/reviews-points.css"> 225 226</head> 227 228<body> 229 <header class="topbar"> 230 <div class="container topbar-inner"> 231 <div class="topbar-left"> 232 RANK1# Bandar Toto Macau Resmi di Indonesia 233 </div> 234 <div class="topbar-right"> 235 <a href="https://mirajautoservice.kawanmenang-main.space/event/">KAWANMENANG</a> 236 <a href="https://mirajautoservice.kawanmenang-main.space/event/">Promo</a> 237 <a href="http://amp.rangeford-resources.com/">Daftar</a> 238 <a href="http://amp.rangeford-resources.com/">Masuk</a> 239 </div> 240 </div> 241 </header> 242 <nav class="navbar"> 243 <nav class="navbar-logo" style="width: 100%;"> 244 <div class="container nav-inner" style="justify-items: center; justify-content: center;"> 245 <a href="/" class="logo-mobile"> 246 <img src="https://cdn.datavip.cloud/Logo/KawanMenang.png" 247 alt="KAWANMENANG" height="40"> 248 </a> 249 </div> 250 </nav> 251 <div class="container nav-inner"> 252 <a href="/" class="logo"> 253 <img src="https://cdn.datavip.cloud/Logo/KawanMenang.png" 254 alt="KAWANMENANG" height="40"> 255 </a> 256 257 258 <form class="search" method="get" action="#"> 259 <input type="hidden" name="page" value="produk"> 260 261 <!-- Search Icon (Desktop) --> 262 <button type="submit" class="search-icon-btn" id="searchBtn" aria-label="Cari"> 263 <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" 264 stroke-linecap="round" stroke-linejoin="round"> 265 <circle cx="11" cy="11" r="8" /> 266 <path d="m21 21-4.35-4.35" /> 267 </svg> 268 </button> 269 270 <input type="text" name="q" id="searchInput" placeholder="Cari KAWANMENANG" value="" autocomplete="off"> 271 272 <div class="search-suggest" id="searchSuggest" hidden></div> 273 </form> 274 275 <div class="nav-actions"> 276 <!--<button class="icon-btn" id="notifBtn" title="Notifikasi">ð</button>--> 277 <button class="icon-btn cart-indicator" id="cartBtn" title="Keranjang"> 278 ð <span id="cartCount" class="badge" data-role="cart-badge" aria-live="polite">0</span> 279 </button> 280 281
282 <span id="compareCount" class="badge" data-role="compare-badge" aria-live="polite">0</span> 283 </button> 284 285 <!-- Dynamic login/logout button --> 286 <button class="login-btn" id="loginBtn" aria-label="Masuk"> 287 <span class="login-text">Masuk</span> 288 <span class="login-ico" aria-hidden="true">ð</span> 289 </button> 290 </div> 291 </div> 292 293 <div class="container" style="display: flex; align-items: center;"> 294 295 296<div class="mega-cats-wrapper"> 297 <div class="mega-cats container" id="megaCatsScroll" style="padding-left: 5px !important;"> 298<a class="" href="https://mirajautoservice.com/"> 299 KAWANMENANG </a> 300<a class="" href="https://mirajautoservice.com/"> 301 SISTEM SITUS TOGEL 4D </a> 302<a class="" href="https://mirajautoservice.com/"> 303 BANDAR TOTO ONLINE ASIA </a> 304<a class="" href="https://mirajautoservice.com/"> 305 TOTO 4D ONLINE </a> 306<a class="" href="https://mirajautoservice.com/"> 307 SITUS TOTO ASIA </a> 308<a class="" href="https://mirajautoservice.com/"> 309 BANDAR TOGEL 4D </a> 310<a class="" href="https://mirajautoservice.com/"> 311 AKSES TOTO ONLINE </a> 312<a class="" href="https://mirajautoservice.com/"> 313 SISTEM RESMI KAWANMENANG </a> 314 </div> 315 <div class="mega-cats-fade" id="megaCatsFade"></div> 316</div> 317</div> 318</nav> 319 320 <!-- Panel Mega Menu - Outside navbar for full-screen --> 321 <div class="mm2-panel" data-mm2="panel" role="dialog" aria-label="Kategori"> 322 <div class="mm2-view is-active" data-mm2="top"></div> 323 <div class="mm2-view" data-mm2="detail"></div> 324 </div> 325 326 <!-- Backdrop - Outside navbar for full-screen --> 327 <div class="mm2-backdrop" data-mm2="backdrop"></div> 328 329 <!-- Mobile Bottom Navigation --> 330 <nav class="bottom-nav"> 331 <div class="bottom-nav-inner"> 332 <!-- Home --> 333 <a href="/" class="bottom-nav-item" id="bottomHomeBtn" data-page="home"> 334 <div class="bottom-nav-item-icon"> 335 <!-- Outlined icon (default) --> 336 <svg class="icon-outlined" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" 337 stroke-linecap="round" stroke-linejoin="round"> 338 <path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z" /> 339 <polyline points="9 22 9 12 15 12 15 22" /> 340 </svg> 341 <!-- Filled icon (active) --> 342 <svg class="icon-filled" viewBox="0 0 24 24" fill="currentColor"> 343 <path 344 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" /> 345 <path 346 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" /> 347 </svg> 348 </div> 349 <span class="bottom-nav-item-label">Home</span> 350 </a> 351 352 <!-- Kategori --> 353 <button class="bottom-nav-item" id="bottomCategoryBtn" data-mm2="trigger" aria-label="Kategori"> 354 <div class="bottom-nav-item-icon"> 355 <!-- Outlined icon (default) --> 356 <svg class="icon-outlined" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" 357 stroke-linecap="round" stroke-linejoin="round"> 358 <line x1="3" y1="12" x2="21" y2="12" /> 359 <line x1="3" y1="6" x2="21" y2="6" /> 360 <line x1="3" y1="18" x2="21" y2="18" /> 361 </svg> 362 <!-- Filled icon (active) --> 363 <svg class="icon-filled" viewBox="0 0 24 24" fill="currentColor"> 364 <path 365 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" /> 366 </svg> 367 </div>
368 <span class="bottom-nav-item-label">Kategori</span> 369 </button> 370 371 <!-- Keranjang --> 372 <button class="bottom-nav-item" id="bottomCartBtn"> 373 <div class="bottom-nav-item-icon"> 374 <!-- Outlined icon (default) --> 375 <svg class="icon-outlined" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" 376 stroke-linecap="round" stroke-linejoin="round"> 377 <circle cx="9" cy="21" r="1" /> 378 <circle cx="20" cy="21" r="1" /> 379 <path d="M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6" /> 380 </svg> 381 <!-- Filled icon (active) --> 382 <svg class="icon-filled" viewBox="0 0 24 24" fill="currentColor"> 383 <path 384 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" /> 385 </svg> 386 <span class="bottom-nav-item-badge" id="bottomCartCount">0</span> 387 </div> 388 <span class="bottom-nav-item-label">Keranjang</span> 389 </button> 390 391 <!-- Compare --> 392 <button class="bottom-nav-item" id="bottomCompareBtn"> 393 <div class="bottom-nav-item-icon"> 394 <!-- Outlined icon (default) --> 395 <svg class="icon-outlined" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" 396 stroke-linecap="round" stroke-linejoin="round"> 397 <polyline points="17 11 21 7 17 3" /> 398 <path d="M21 7H9" /> 399 <polyline points="7 21 3 17 7 13" /> 400 <path d="M15 17H3" /> 401 </svg> 402 <!-- Filled icon (active) --> 403 <svg class="icon-filled" viewBox="0 0 24 24" fill="currentColor"> 404 <path 405 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" /> 406 </svg> 407 <span class="bottom-nav-item-badge" id="bottomCompareCount" style="display:none;">0</span> 408 </div> 409 <span class="bottom-nav-item-label">Compare</span> 410 </button> 411 412 <!-- Chat - Always show, check login in JavaScript --> 413 <button class="bottom-nav-item" id="bottomChatBtn" data-page="chat"> 414 <div class="bottom-nav-item-icon"> 415 <!-- Outlined icon (default) --> 416 <svg class="icon-outlined" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" 417 opacity="0.85"> 418 <path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z" /> 419 </svg> 420 <!-- Filled icon (active) --> 421 <svg class="icon-filled" viewBox="0 0 24 24" fill="currentColor"> 422 <path d="M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2z" /> 423 </svg> 424 <span class="bottom-nav-item-badge" id="bottomChatCount" style="display:none;">0</span> 425 </div> 426 <span class="bottom-nav-item-label">Chat</span> 427 </button> 428 429 <!-- Akun --> 430 <button class="bottom-nav-item" id="bottomLoginBtn"> 431 <div class="bottom-nav-item-icon"> 432 <!-- Outlined icon (default) -->
433 <svg class="icon-outlined" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" 434 stroke-linecap="round" stroke-linejoin="round"> 435 <path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2" /> 436 <circle cx="12" cy="7" r="4" /> 437 </svg> 438 <!-- Filled icon (active) --> 439 <svg class="icon-filled" viewBox="0 0 24 24" fill="currentColor"> 440 <path fill-rule="evenodd" 441 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" 442 clip-rule="evenodd" /> 443 </svg> 444 </div> 445 <span class="bottom-nav-item-label">Login</span> 446 </button> 447 </svg> 448 </div> 449 </button> 450 </div> 451 </nav> 452 453 <!-- Mobile User Menu Bottom Sheet --> 454 455
455<script nonce="se3iyzEHMc9FQEB4wSyd0w=="> 456 (function () { 457 const btn = document.getElementById('megaMoreBtn'); 458 const dd = document.getElementById('megaMoreDropdown'); 459 if (!btn || !dd) return; 460 461 function openDD() { 462 dd.hidden = false; 463 btn.setAttribute('aria-expanded', 'true'); 464 document.addEventListener('click', outside, { capture: true }); 465 document.addEventListener('keydown', esc); 466 } 467 function closeDD() { 468 if (dd.hidden) return; 469 dd.hidden = true; 470 btn.setAttribute('aria-expanded', 'false'); 471 document.removeEventListener('click', outside, { capture: true }); 472 document.removeEventListener('keydown', esc); 473 } 474 function toggle() { dd.hidden ? openDD() : closeDD(); } 475 function outside(e) { 476 if (!dd.contains(e.target) && e.target !== btn) { 477 closeDD(); 478 } 479 } 480 function esc(e) { 481 if (e.key === 'Escape') { 482 closeDD(); 483 btn.focus(); 484 } 485 } 486 btn.addEventListener('click', toggle); 487 })(); 488 489 // ========== HORIZONTAL SCROLL FADE INDICATOR ========== 490 (function () { 491 const megaCats = document.getElementById('megaCatsScroll'); 492 const fade = document.getElementById('megaCatsFade'); 493 if (!megaCats || !fade) return; 494 495 function updateFade() { 496 const scrollLeft = megaCats.scrollLeft; 497 const scrollWidth = megaCats.scrollWidth; 498 const clientWidth = megaCats.clientWidth; 499 const maxScroll = scrollWidth - clientWidth; 500 501 // Hide fade when scrolled to end (within 10px tolerance) 502 if (maxScroll - scrollLeft <= 10) { 503 fade.style.opacity = '0'; 504 } else { 505 fade.style.opacity = '1'; 506 } 507 } 508 509 // Update on scroll 510 megaCats.addEventListener('scroll', updateFade, { passive: true }); 511 512 // Update on resize 513 window.addEventListener('resize', updateFade, { passive: true }); 514 515 // Initial check 516 setTimeout(updateFade, 100); 517 })(); 518 519 document.addEventListener('DOMContentLoaded', function () { 520 var input = document.getElementById('searchInput'); 521 if (!input) return; 522 input.addEventListener('keydown', function (e) { 523 if (e.key === 'Enter') { 524 e.preventDefault(); 525 var form = input.form; 526 if (!form) return; 527 if (typeof form.requestSubmit === 'function') form.requestSubmit(); 528 else form.submit(); 529 } 530 }); 531 }); 532 533 534 (function () { 535 const cartBtn = document.getElementById('cartBtn'); 536 if (cartBtn) { 537 cartBtn.addEventListener('click', function (e) { 538 e.preventDefault(); 539 540 const checkLogin = () => { 541 return window.isUserLoggedIn ? window.isUserLoggedIn() : false; 542 }; 543 544 if (checkLogin()) { 545 window.location.href = '/keranjang'; 546 } else { 547 showCartLoginModal(); 548 } 549 }); 550 } 551 552 const loginBtn = document.getElementById('loginBtn'); 553 if (loginBtn) { 554 loginBtn.addEventListener('click', function (e) { 555 e.preventDefault(); 556 window.location.href = 'https://mirajautoservice.com/'; 557 }); 558 } 559 560 const userMenuBtn = document.getElementById('userMenuBtn'); 561 const userDropdown = document.getElementById('userDropdown'); 562 563 if (userMenuBtn && userDropdown) { 564 function openDropdown() { 565 userDropdown.hidden = false; 566 userMenuBtn.setAttribute('aria-expanded', 'true'); 567 document.addEventListener('click', closeOnOutside, { capture: true });
568 document.addEventListener('keydown', closeOnEscape); 569 } 570 571 function closeDropdown() { 572 if (userDropdown.hidden) return; 573 userDropdown.hidden = true; 574 userMenuBtn.setAttribute('aria-expanded', 'false'); 575 document.removeEventListener('click', closeOnOutside, { capture: true }); 576 document.removeEventListener('keydown', closeOnEscape); 577 } 578 579 function closeOnOutside(e) { 580 if (!userDropdown.contains(e.target) && e.target !== userMenuBtn) { 581 closeDropdown(); 582 } 583 } 584 585 function closeOnEscape(e) { 586 if (e.key === 'Escape') { 587 closeDropdown(); 588 userMenuBtn.focus(); 589 } 590 } 591 592 userMenuBtn.addEventListener('click', function (e) { 593 e.preventDefault(); 594 userDropdown.hidden ? openDropdown() : closeDropdown(); 595 }); 596 597 // Close dropdown when clicking profile links 598 userDropdown.querySelectorAll('[data-close-dropdown]').forEach(link => { 599 link.addEventListener('click', function () { 600 closeDropdown(); 601 }); 602 }); 603 } 604 605 // Bottom nav profile button - toggle mobile bottom sheet 606 const bottomProfileBtn = document.getElementById('bottomProfileBtn'); 607 const mobileUserSheet = document.getElementById('mobileUserSheet'); 608 const mobileUserSheetBackdrop = document.getElementById('mobileUserSheetBackdrop'); 609 610 if (bottomProfileBtn && mobileUserSheet) { 611 function openMobileSheet() { 612 mobileUserSheet.hidden = false; 613 document.body.style.overflow = 'hidden'; 614 // Trigger animation 615 requestAnimationFrame(() => { 616 mobileUserSheet.classList.add('active'); 617 }); 618 } 619 620 function closeMobileSheet() { 621 mobileUserSheet.classList.remove('active'); 622 document.body.style.overflow = ''; 623 setTimeout(() => { 624 mobileUserSheet.hidden = true; 625 }, 300); 626 } 627 628 bottomProfileBtn.addEventListener('click', function (e) { 629 e.preventDefault(); 630 openMobileSheet(); 631 }); 632 633 if (mobileUserSheetBackdrop) { 634 mobileUserSheetBackdrop.addEventListener('click', closeMobileSheet); 635 } 636 637 // Close on escape key 638 document.addEventListener('keydown', function (e) { 639 if (e.key === 'Escape' && !mobileUserSheet.hidden) { 640 closeMobileSheet(); 641 } 642 }); 643 644 // Close sheet when clicking profile links 645 mobileUserSheet.querySelectorAll('[data-close-sheet]').forEach(link => { 646 link.addEventListener('click', function () { 647 closeMobileSheet(); 648 }); 649 }); 650 } 651 652 // Handle Google avatar error in bottom-nav (fallback to initials) 653 const bottomNavAvatar = document.querySelector('.bottom-nav-avatar-img'); 654 if (bottomNavAvatar) { 655 bottomNavAvatar.addEventListener('error', function () { 656 const initials = this.getAttribute('data-fallback-initials') || 'U'; 657 const initialsDiv = document.createElement('div'); 658 initialsDiv.className = 'bottom-nav-avatar-initials'; 659 initialsDiv.textContent = initials; 660 this.parentNode.replaceChild(initialsDiv, this); 661 }); 662 } 663 664 // Mobile logout button 665 const mobileLogoutBtn = document.getElementById('mobileLogoutBtn'); 666 if (mobileLogoutBtn) { 667 mobileLogoutBtn.addEventListener('click', async function (e) { 668 e.preventDefault(); 669 670 // Check push notification before logout 671 if (window.ChatNotification && typeof window.ChatNotification.confir9yMnTm4NSzvG9rrwjM2ec8xZgh1cafXH8 === 'function') { 672 const confirmLogout = await window.ChatNotification.confir9yMnTm4NSzvG9rrwjM2ec8xZgh1cafXH8(); 673 if (!confirmLogout) { 674 return; // User cancelled logout 675 } 676 } 677 678 const getCsrfToken = () => document.querySelector('meta[name="csrf-token"]')?.getAttribute('content') || ''; 679 680 try { 681 const response = await fetch('/auth/logout', { 682 method: 'POST', 683 credentials: 'same-origin', 684 headers: { 685 'Content-Type': 'application/json', 686 'X-CSRF-Token': getCsrfToken() 687 }, 688 body: JSON.stringify({ 689 csrf_token: getCsrfToken() 690 }) 691 }); 692 693 if (response.ok) { 694 if (window.guestCart && typeof window.guestCart.clear === 'function') { 695 window.guestCart.clear(); 696 } 697 window.location.href = '/login?logged_out=1'; 698 } else { 699 console.error('Logout failed'); 700 window.location.href = '/logout'; 701 } 702 } catch (error) { 703 console.error('Logout error:', error); 704 window.location.href = '/logout'; 705 } 706 }); 707 } 708 709 const logoutBtn = document.getElementById('logoutBtn'); 710 if (logoutBtn) { 711 logoutBtn.addEventListener('click', async function (e) { 712 e.preventDefault(); 713 714 // Check push notification before logout 715 if (window.ChatNotification && typeof window.ChatNotification.confir9yMnTm4NSzvG9rrwjM2ec8xZgh1cafXH8 === 'function') { 716 const confirmLogout = await window.ChatNotification.confir9yMnTm4NSzvG9rrwjM2ec8xZgh1cafXH8(); 717 if (!confirmLogout) { 718 return; // User cancelled logout 719 } 720 } 721 722 const getCsrfToken = () => document.querySelector('meta[name="csrf-token"]')?.getAttribute('content') || ''; 723 724 try { 725 const response = await fetch('/auth/logout', { 726 method: 'POST', 727 credentials: 'same-origin', 728 headers: { 729 'Content-Type': 'application/json', 730 'X-CSRF-Token': getCsrfToken() 731 }, 732 body: JSON.stringify({ 733 csrf_token: getCsrfToken() 734 }) 735 }); 736 737 if (response.ok) { 738 if (window.guestCart && typeof window.guestCart.clear === 'function') { 739 window.guestCart.clear(); 740 } 741 742 window.location.href = '/login?logged_out=1'; 743 } else { 744 console.error('Logout failed'); 745 window.location.href = '/logout'; 746 } 747 } catch (error) { 748 console.error('Logout error:', error); 749 window.location.href = '/logout'; 750 } 751 }); 752 } 753 754 const wishlistBtn = document.getElementById('wishlistBtn'); 755 const notifBtn = document.getElementById('notifBtn'); 756 757 if (wishlistBtn) { 758 wishlistBtn.addEventListener('click', function (e) { 759 e.preventDefault(); 760 alert('Fitur wishlist akan segera tersedia!'); 761 }); 762 } 763 764 if (notifBtn) { 765 notifBtn.addEventListener('click', function (e) { 766 e.preventDefault(); 767 alert('Fitur notifikasi akan segera tersedia!'); 768 }); 769 } 770 })(); 771 772 // ========== MOBILE BOTTOM NAVIGATION ========== 773 (function initBottomNav() { 774 // Sync cart badge with bottom nav 775 function syncBottomCartBadge() { 776 const mainBadge = document.getElementById('cartCount'); 777 const bottomBadge = document.getElementById('bottomCartCount'); 778 if (mainBadge && bottomBadge) { 779 const count = mainBadge.textContent; 780 bottomBadge.textContent = count; 781 bottomBadge.style.display = parseInt(count) > 0 ? 'flex' : 'none'; 782 } 783 } 784 785 // Sync compare badge with bottom nav 786 function syncBottomCompareBadge() { 787 const mainBadge = document.getElementById('compareCount'); 788 const bottomBadge = document.getElementById('bottomCompareCount'); 789 if (mainBadge && bottomBadge) { 790 const count = mainBadge.textContent; 791 bottomBadge.textContent = count; 792 bottomBadge.style.display = parseInt(count) > 0 ? 'flex' : 'none'; 793 } 794 } 795 796 // Initial sync 797 syncBottomCartBadge(); 798 syncBottomCompareBadge(); 799 800 // Observe badge changes 801 const observer = new MutationObserver(function () { 802 syncBottomCartBadge(); 803 syncBottomCompareBadge(); 804 }); 805 806 const cartBadge = document.getElementById('cartCount'); 807 const compareBadge = document.getElementById('compareCount'); 808 809 if (cartBadge) observer.observe(cartBadge, { childList: true, characterData: true, subtree: true });
810 if (compareBadge) observer.observe(compareBadge, { childList: true, characterData: true, subtree: true }); 811 812 // Bottom Cart Button 813 const bottomCartBtn = document.getElementById('bottomCartBtn'); 814 if (bottomCartBtn) { 815 bottomCartBtn.addEventListener('click', function (e) { 816 e.preventDefault(); 817 818 const checkLogin = () => { 819 return window.isUserLoggedIn ? window.isUserLoggedIn() : false; 820 }; 821 822 if (checkLogin()) { 823 window.location.href = '/keranjang'; 824 } else { 825 showCartLoginModal(); 826 } 827 }); 828 } 829 830 // Bottom Compare Button 831 const bottomCompareBtn = document.getElementById('bottomCompareBtn'); 832 if (bottomCompareBtn) { 833 bottomCompareBtn.addEventListener('click', function (e) { 834 e.preventDefault(); 835 836 // Close chat widget if open 837 if (window.plazaChat && window.plazaChat.isWidgetOpen) { 838 window.plazaChat.closeWidget(); 839 } 840 841 const mainCompareBtn = document.getElementById('compareBtn'); 842 if (mainCompareBtn) { 843 mainCompareBtn.click(); 844 } 845 }); 846 } 847 848 // Bottom Category Button - triggers mega menu 849 const bottomCategoryBtn = document.getElementById('bottomCategoryBtn'); 850 if (bottomCategoryBtn) { 851 bottomCategoryBtn.addEventListener('click', function (e) { 852 e.preventDefault(); 853 // Trigger desktop mega menu 854 const desktopTrigger = document.querySelector('.mm2-trigger:not(#bottomCategoryBtn)'); 855 if (desktopTrigger) { 856 desktopTrigger.click(); 857 } 858 }); 859 } 860 861 // Bottom Login Button 862 const bottomLoginBtn = document.getElementById('bottomLoginBtn'); 863 if (bottomLoginBtn) { 864 bottomLoginBtn.addEventListener('click', function (e) { 865 e.preventDefault(); 866 window.location.href = '/login'; 867 }); 868 } 869 870 // Bottom Chat Button 871 const bottomChatBtn = document.getElementById('bottomChatBtn'); 872 if (bottomChatBtn) { 873 bottomChatBtn.addEventListener('click', function (e) { 874 e.preventDefault(); 875 876 // Trigger chat widget (try multiple times if needed) 877 const triggerChat = () => { 878 const chatToggle = document.getElementById('chat-toggle-btn'); 879 if (chatToggle) { 880 chatToggle.click(); 881 return true; 882 } 883 return false; 884 }; 885 886 // Immediate attempt 887 if (!triggerChat()) { 888 // Retry after 100ms if not found 889 setTimeout(() => { 890 if (!triggerChat()) { 891 // Last resort: manually show popup 892 const popup = document.getElementById('chat-popup'); 893 if (popup) { 894 popup.style.display = 'block'; 895 } 896 } 897 }, 100); 898 } 899 }); 900 } 901 902 // Sync chat unread badge 903 function syncBottomChatBadge() { 904 const chatBadge = document.getElementById('chat-unread-badge'); 905 const bottomChatBadge = document.getElementById('bottomChatCount'); 906 if (chatBadge && bottomChatBadge) { 907 const count = chatBadge.textContent; 908 bottomChatBadge.textContent = count; 909 bottomChatBadge.style.display = chatBadge.style.display; 910 } 911 } 912 913 // Observe chat badge changes 914 const chatBadge = document.getElementById('chat-unread-badge'); 915 if (chatBadge) { 916 observer.observe(chatBadge, { attributes: true, childList: true, characterData: true, subtree: true });
917 syncBottomChatBadge(); 918 } 919 920 // Active state management based on current page 921 function updateActiveState() { 922 const currentPath = window.location.pathname; 923 const bottomNavItems = document.querySelectorAll('.bottom-nav-item'); 924 925 bottomNavItems.forEach(item => { 926 item.classList.remove('active'); 927 928 const itemId = item.id; 929 const page = item.getAttribute('data-page'); 930 const href = item.getAttribute('href'); 931 932 // Check by ID for specific pages 933 if (itemId === 'bottomHomeBtn' && currentPath === '/') { 934 item.classList.add('active'); 935 } else if (itemId === 'bottomCartBtn' && (currentPath === '/keranjang' || currentPath === '/cart')) { 936 item.classList.add('active'); 937 } else if (itemId === 'bottomProfileBtn' && currentPath.startsWith('/profile')) { 938 item.classList.add('active'); 939 } else if (itemId === 'bottomCategoryBtn' && currentPath.startsWith('/kategori')) { 940 item.classList.add('active'); 941 } else if (itemId === 'bottomCompareBtn' && currentPath === '/compare') { 942 item.classList.add('active'); 943 } else if (itemId === 'bottomChatBtn' && currentPath === '/chat') { 944 item.classList.add('active'); 945 } 946 // Fallback: check by data-page attribute 947 else if (page === 'home' && currentPath === '/') { 948 item.classList.add('active'); 949 } else if (page === 'profile' && currentPath.startsWith('/profile')) { 950 item.classList.add('active'); 951 } 952 // Fallback: check by href 953 else if (href && currentPath === href) { 954 item.classList.add('active'); 955 } 956 }); 957 } 958 959 // Update active state on load 960 updateActiveState(); 961 962 // Bottom nav always visible - auto-hide disabled for better UX 963 // const bottomNav = document.querySelector('.bottom-nav'); 964 // if (bottomNav && window.innerWidth <= 640) { 965 // // Auto-hide feature disabled 966 // } 967 })(); 968 // Cart Login Modal Handler (Global scope) 969 function showCartLoginModal() { 970 const modal = document.getElementById('cartLoginModal'); 971 if (!modal) return; 972 973 modal.classList.add('show'); 974 975 const confirmBtn = document.getElementById('cartLoginConfirm'); 976 const registerBtn = document.getElementById('cartRegisterBtn'); 977 const cancelBtn = document.getElementById('cartLoginCancel'); 978 979 const handleLogin = () => { 980 window.location.href = '/login?return=' + encodeURIComponent('/keranjang'); 981 }; 982 983 const handleRegister = () => { 984 window.location.href = '/register?return=' + encodeURIComponent('/keranjang'); 985 }; 986 987 const handleCancel = () => { 988 modal.classList.remove('show'); 989 confirmBtn.removeEventListener('click', handleLogin); 990 registerBtn.removeEventListener('click', handleRegister); 991 cancelBtn.removeEventListener('click', handleCancel); 992 }; 993 994 confirmBtn.removeEventListener('click', handleLogin); 995 registerBtn.removeEventListener('click', handleRegister); 996 cancelBtn.removeEventListener('click', handleCancel); 997 998 confirmBtn.addEventListener('click', handleLogin); 999 registerBtn.addEventListener('click', handleRegister); 1000 cancelBtn.addEventListener('click', handleCancel); 1001 1002 modal.addEventListener('click', (e) => { 1003 if (e.target === modal) { 1004 handleCancel(); 1005 } 1006 }); 1007 } 1008 </script>
1008 1009
1009<script src="https://www.plazaindonesia.com/assets/js/cart-badge.js" defer 1010 nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
1010 1011 1012 <!-- Product Compare Sidebar --> 1013 <div class="compare-sidebar" id="compareSidebar"> 1014 <div class="compare-header"> 1015 <h4 class="compare-title"> 1016 <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor"> 1017 <path 1018 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" /> 1019 </svg> 1020 Bandingkan Produk 1021 <span class="compare-count" id="compareCountSidebar">(0)</span> 1022 </h4> 1023 <button class="compare-close" id="compareClose" aria-label="Tutup"> 1024 <svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor"> 1025 <path 1026 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" /> 1027 </svg> 1028 </button> 1029 </div> 1030 1031 <div class="compare-content"> 1032 <div class="compare-empty" id="compareEmpty"> 1033 <div class="empty-icon"> 1034 <svg width="48" height="48" viewBox="0 0 24 24" fill="currentColor" opacity="0.3"> 1035 <path 1036 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" /> 1037 </svg> 1038 </div> 1039 <h5>Belum ada produk dipilih</h5> 1040 <p>Pilih produk yang ingin dibandingkan dengan klik tombol "Bandingkan Produk" di halaman produk.</p> 1041 </div> 1042 1043 <div class="compare-list" id="compareList"> 1044 <!-- Products will be populated here --> 1045 </div> 1046 </div> 1047 1048 <div class="compare-actions" id="compareActions"> 1049 <button class="btn btn-outline-danger btn-sm" id="compareClearAll"> 1050 <svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"> 1051 <path 1052 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" /> 1053 </svg> 1054 Hapus Semua 1055 </button> 1056 <button class="btn btn-primary btn-sm" id="compareAnalyze" disabled> 1057 <svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"> 1058 <path 1059 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" /> 1060 </svg> 1061 Analisis AI 1062 </button> 1063 </div> 1064 1065 <!-- AI Disclaimer in Sidebar --> 1066<div class="compare-disclaimer"> 1067 <div class="ai-disclaimer"> 1068 <div class="disclaimer-text"> 1069 <strong>ð¡ Catatan:</strong> Informasi yang ditampilkan pada halaman ini disusun sebagai bahan referensi 1070 dan dapat mengalami perubahan. 1071 Pastikan Anda memeriksa kembali detail akses serta tautan yang digunakan sebelum melanjutkan. 1072 Untuk bantuan seputar link alternatif resmi, silakan hubungi tim KAWANMENANG. 1073 </div> 1074 </div> 1075 </div> 1076 </div> 1077 <link rel="stylesheet" href="https://www.plazaindonesia.com/assets/css/pd-lightbox.css"> 1078 <style> 1079 .paylater-promo { 1080 display: inline-flex; 1081 align-items: center; 1082 gap: 8px; 1083 background: linear-gradient(135deg, #f0fdf4 0, #dcfce7 100%); 1084 border: 1px solid #86efac; 1085 border-radius: 8px; 1086 padding: 8px 12px; 1087 font-size: 13px; 1088 line-height: 1.4; 1089 margin: 8px 0 1090 } 1091 1092 .paylater-promo-sm { 1093 padding: 6px 10px; 1094 font-size: 11px; 1095 gap: 6px 1096 } 1097 1098 .paylater-promo-md { 1099 padding: 8px 12px; 1100 font-size: 13px; 1101 gap: 8px 1102 } 1103 1104 .paylater-promo-lg { 1105 padding: 10px 16px; 1106 font-size: 14px; 1107 gap: 10px 1108 } 1109 1110 .paylater-icon { 1111 font-size: 1.2em; 1112 flex-shrink: 0 1113 } 1114 1115 .paylater-text { 1116 display: flex; 1117 flex-direction: column; 1118 gap: 2px 1119 } 1120 1121 .paylater-text strong { 1122 color: #15803d; 1123 font-weight: 600 1124 } 1125 1126 .paylater-text small { 1127 color: #16a34a; 1128 font-size: .85em; 1129 opacity: .9 1130 } 1131 1132 .paylater-desktop-only { 1133 display: none 1134 } 1135 1136 .paylater-mobile-only { 1137 display: flex 1138 } 1139 1140 @media (min-width:641px) { 1141 .paylater-desktop-only { 1142 display: flex 1143 } 1144 1145 .paylater-mobile-only { 1146 display: none 1147 } 1148 } 1149 1150 @media (max-width:640px) { 1151 .paylater-promo { 1152 font-size: 12px; 1153 padding: 7px 10px 1154 } 1155 1156 .paylater-promo-lg { 1157 font-size: 13px; 1158 padding: 8px 12px 1159 } 1160 } 1161 1162 @media print { 1163 .paylater-promo { 1164 display: none !important 1165 } 1166 } 1167 1168 .paylater-compact { 1169 display: inline-block; 1170 font-size: 11px; 1171 font-weight: 600; 1172 color: #059669; 1173 background: #d1fae5; 1174 padding: 3px 8px; 1175 border-radius: 4px; 1176 margin: 6px 0 4px; 1177 line-height: 1.3 1178 } 1179 1180 @media (max-width:640px) { 1181 .paylater-compact { 1182 font-size: 10px; 1183 padding: 2px 6px; 1184 margin: 5px 0 3px 1185 } 1186 } 1187 1188 @media print { 1189 .paylater-compact { 1190 display: none !important 1191 } 1192 } 1193 </style> 1194 <style nonce="se3iyzEHMc9FQEB4wSyd0w=="> 1195 .pd-voucher-minimal { 1196 margin: 10px 0; 1197 display: flex; 1198 flex-direction: column; 1199 gap: 6px 1200 } 1201 1202 .pdv-min-item { 1203 display: flex; 1204 align-items: center; 1205 gap: 8px; 1206 padding: 0; 1207 height: 32px; 1208 transition: all .2s ease 1209 } 1210 1211 .pdv-min-hidden { 1212 display: none 1213 } 1214 1215 .pdv-min-disabled { 1216 opacity: .5 1217 } 1218 1219 .pdv-badge-btn { 1220 display: inline-flex; 1221 align-items: center; 1222 gap: 8px; 1223 background: linear-gradient(135deg, #667eea 0, #764ba2 100%); 1224 border: none; 1225 border-radius: 8px; 1226 padding: 3px; 1227 cursor: pointer; 1228 transition: all .2s ease; 1229 width: auto 1230 } 1231 1232 .pdv-badge-btn:hover:not(:disabled) { 1233 transform: translateY(-1px); 1234 box-shadow: 0 4px 12px rgba(102, 126, 234, .3) 1235 } 1236 1237 .pdv-badge-btn:disabled { 1238 opacity: .6;
1239 cursor: not-allowed 1240 } 1241 1242 .pdv-badge-icon { 1243 color: #fff; 1244 flex-shrink: 0 1245 } 1246 1247 .pdv-badge-text { 1248 font-size: 14px; 1249 font-weight: 700; 1250 color: #fff; 1251 white-space: nowrap 1252 } 1253 1254 .pdv-badge-code { 1255 font-family: 'Courier New', monospace; 1256 font-size: 13px; 1257 font-weight: 700; 1258 color: #fff; 1259 background: rgba(255, 255, 255, .2); 1260 padding: 4px 8px; 1261 border-radius: 4px; 1262 border: none; 1263 white-space: nowrap 1264 } 1265 1266 .pdv-min-copy, 1267 .pdv-min-more { 1268 padding: 4px 12px; 1269 font-size: 12px; 1270 font-weight: 600; 1271 border-radius: 5px; 1272 border: 1px solid #e2e8f0; 1273 background: #fff; 1274 color: #667eea; 1275 cursor: pointer; 1276 transition: all .2s ease; 1277 white-space: nowrap 1278 } 1279 1280 .pdv-min-copy:hover:not(:disabled), 1281 .pdv-min-more:hover { 1282 background: #667eea; 1283 color: #fff; 1284 border-color: #667eea 1285 } 1286 1287 .pdv-min-copy:disabled { 1288 opacity: .4; 1289 cursor: not-allowed 1290 } 1291 1292 .pdv-min-copy.copied { 1293 background: #22c55e; 1294 color: #fff; 1295 border-color: #22c55e 1296 } 1297 1298 .pdv-min-more { 1299 margin-left: auto 1300 } 1301
1302 .modal-close { 1303 position: absolute; 1304 top: 20px; 1305 right: 20px; 1306 background: none; 1307 border: none; 1308 cursor: pointer; 1309 color: #64748b; 1310 padding: 4px; 1311 transition: color .2s ease 1312 } 1313 1314 .modal-close:hover { 1315 color: #1e293b 1316 } 1317 1318 .modal-body { 1319 margin-bottom: 8px 1320 } 1321 1322 .voucher-modal-content { 1323 text-align: center 1324 } 1325 1326 .voucher-modal-badge { 1327 display: inline-flex; 1328 flex-direction: row; 1329 align-items: center; 1330 gap: 6px; 1331 background: linear-gradient(135deg, #667eea 0, #764ba2 100%); 1332 border-radius: 10px; 1333 padding: 8px 16px; 1334 margin-bottom: 12px 1335 } 1336 1337 .vmb-value { 1338 font-size: 18px; 1339 font-weight: 700; 1340 color: #fff; 1341 line-height: 1 1342 } 1343 1344 .vmb-label { 1345 font-size: 18px; 1346 font-weight: 700; 1347 color: #fff; 1348 text-transform: uppercase; 1349 letter-spacing: .5px 1350 } 1351 1352 .voucher-modal-code { 1353 font-family: 'Courier New', monospace; 1354 font-size: 14px; 1355 font-weight: 700; 1356 color: #667eea; 1357 background: rgba(102, 126, 234, .1); 1358 padding: 6px 12px; 1359 border-radius: 6px; 1360 border: 2px dashed rgba(102, 126, 234, .3); 1361 display: inline-block; 1362 margin-bottom: 10px 1363 } 1364 1365 .voucher-modal-name { 1366 font-size: 14px; 1367 font-weight: 600; 1368 color: #1e293b; 1369 margin-bottom: 16px 1370 } 1371 1372 .voucher-modal-details { 1373 text-align: left; 1374 background: #f8fafc; 1375 border-radius: 8px; 1376 padding: 12px; 1377 margin-bottom: 16px 1378 } 1379 1380 .vmd-item { 1381 display: flex; 1382 align-items: flex-start; 1383 gap: 8px; 1384 padding: 6px 0; 1385 font-size: 13px; 1386 color: #64748b; 1387 border-bottom: 1px solid #e2e8f0 1388 } 1389 1390 .vmd-item:last-child { 1391 border-bottom: none 1392 } 1393 1394 .vmd-item svg { 1395 color: #667eea; 1396 flex-shrink: 0; 1397 margin-top: 2px 1398 } 1399 1400 .vmd-item strong { 1401 color: #1e293b 1402 } 1403
1404 .modal-actions { 1405 padding: 20px 1406 } 1407 1408 .modal-btn-primary { 1409 background: linear-gradient(135deg, #667eea 0, #764ba2 100%); 1410 color: #fff 1411 } 1412 1413 .modal-btn-primary:hover { 1414 opacity: .9; 1415 transform: translateY(-1px) 1416 } 1417 1418 @media (max-width:640px) { 1419 .pdv-min-item { 1420 gap: 6px 1421 } 1422 1423 .pdv-badge-btn { 1424 padding: 3px; 1425 gap: 6px 1426 } 1427 1428 .pdv-badge-text { 1429 font-size: 13px 1430 } 1431 1432 .pdv-badge-code { 1433 font-size: 12px; 1434 padding: 3px 6px 1435 } 1436 1437 .pdv-min-copy, 1438 .pdv-min-more { 1439 padding: 3px 10px; 1440 font-size: 11px 1441 } 1442 1443 .modal-dialog { 1444 max-width: 95%; 1445 margin: 20px 1446 } 1447 1448 .vmb-value { 1449 font-size: 16px 1450 } 1451 1452 .vmb-label { 1453 font-size: 16px 1454 } 1455 1456 .voucher-modal-code { 1457 font-size: 13px; 1458 padding: 5px 10px 1459 } 1460 } 1461 </style> 1462 <style nonce="se3iyzEHMc9FQEB4wSyd0w=="> 1463 .promo-endyear-mini-banner { 1464 display: flex; 1465 align-items: center; 1466 gap: 12px; 1467 padding: 12px 16px; 1468 background: rgba(255, 255, 255, .8); 1469 backdrop-filter: blur(10px); 1470 -webkit-backdrop-filter: blur(10px); 1471 border: 2px solid rgba(242, 140, 26, .2); 1472 border-radius: 12px; 1473 margin: 16px 0; 1474 box-shadow: 0 4px 16px rgba(0, 0, 0, .08); 1475 transition: all .3s ease 1476 } 1477 1478 .promo-endyear-mini-banner:hover { 1479 transform: translateY(-2px); 1480 box-shadow: 0 6px 20px rgba(0, 0, 0, .12); 1481 border-color: rgba(242, 140, 26, .4) 1482 } 1483 1484 .pey-icon { 1485 font-size: 32px; 1486 line-height: 1; 1487 flex-shrink: 0 1488 } 1489 1490 .pey-content { 1491 flex: 1; 1492 min-width: 0 1493 } 1494 1495 .pey-content strong { 1496 display: block; 1497 font-size: 14px; 1498 font-weight: 700; 1499 color: #02F9FF; 1500 margin-bottom: 2px 1501 } 1502 1503 .pey-content span { 1504 display: block; 1505 font-size: 13px; 1506 color: #64748b; 1507 line-height: 1.4 1508 } 1509 1510 .pey-link { 1511 flex-shrink: 0; 1512 padding: 8px 16px; 1513 background: linear-gradient(135deg, #02F9FF, #FFB84D); 1514 color: #fff; 1515 text-decoration: none; 1516 font-size: 13px; 1517 font-weight: 700; 1518 border-radius: 8px; 1519 white-space: nowrap; 1520 transition: all .2s ease; 1521 box-shadow: 0 2px 8px rgba(242, 140, 26, .25) 1522 } 1523 1524 .pey-link:hover { 1525 transform: translateX(2px); 1526 box-shadow: 0 4px 12px rgba(242, 140, 26, .35) 1527 } 1528 1529 @media(max-width:640px) { 1530 .promo-endyear-mini-banner { 1531 flex-wrap: wrap; 1532 gap: 8px; 1533 padding: 10px 12px 1534 } 1535 1536 .pey-icon { 1537 font-size: 28px; 1538 align-self: flex-start 1539 } 1540 1541 .pey-content { 1542 flex: 1; 1543 min-width: 0 1544 } 1545 1546 .pey-content strong { 1547 font-size: 12px 1548 } 1549 1550 .pey-content span { 1551 font-size: 11px; 1552 line-height: 1.3 1553 } 1554 1555 .pey-link { 1556 width: 100%; 1557 flex-basis: 100%; 1558 font-size: 11px; 1559 padding: 6px 12px; 1560 text-align: center 1561 } 1562 } 1563 1564 @media print { 1565 .promo-endyear-mini-banner { 1566 display: none !important 1567 } 1568 } 1569 </style> 1570 <style nonce="se3iyzEHMc9FQEB4wSyd0w=="> 1571 .pd-title-row { 1572 position: relative; 1573 margin-bottom: 12px; 1574 padding-right: 52px 1575 } 1576 1577 .pd-title { 1578 margin: 0 !important 1579 } 1580 1581 .pd-share-btn { 1582 position: absolute; 1583 top: 0; 1584 right: 0; 1585 width: 40px; 1586 height: 40px; 1587 display: inline-flex; 1588 align-items: center; 1589 justify-content: center; 1590 border-radius: 10px; 1591 border: 1px solid #e2e8f0; 1592 background: #fff; 1593 color: #64748b; 1594 cursor: pointer; 1595 transition: all .2s ease; 1596 -webkit-tap-highlight-color: transparent 1597 } 1598 1599 .pd-share-btn:hover { 1600 background: #f8fafc; 1601 border-color: #cbd5e1; 1602 color: #0f172a; 1603 transform: translateY(-1px) 1604 } 1605 1606 .pd-share-btn:active { 1607 transform: translateY(0) 1608 } 1609 1610 .pd-share-btn svg { 1611 display: block 1612 } 1613 1614 .pd-share-modal-overlay { 1615 position: fixed; 1616 inset: 0; 1617 background: rgba(15, 23, 42, .75); 1618 backdrop-filter: blur(4px); 1619 z-index: 99999; 1620 display: none; 1621 align-items: center; 1622 justify-content: center; 1623 padding: 0; 1624 animation: fadeIn .2s ease 1625 } 1626 1627 .pd-share-modal-overlay.show { 1628 display: flex 1629 } 1630 1631 .pd-share-modal { 1632 background: #fff; 1633 border-radius: 20px; 1634 box-shadow: 0 25px 50px -12px rgba(0, 0, 0, .25); 1635 max-width: 480px; 1636 width: 100%; 1637 max-height: 90vh; 1638 overflow: hidden; 1639 display: flex; 1640 flex-direction: column; 1641 animation: slideUp .3s cubic-bezier(.16, 1, .3, 1) 1642 } 1643 1644 @keyframes fadeIn { 1645 from { 1646 opacity: 0 1647 } 1648 1649 to { 1650 opacity: 1 1651 } 1652 } 1653 1654 @keyframes slideUp { 1655 from { 1656 opacity: 0; 1657 transform: translateY(20px) scale(.95) 1658 } 1659 1660 to { 1661 opacity: 1;
1662 transform: translateY(0) scale(1) 1663 } 1664 } 1665 1666 .pd-share-header { 1667 display: flex; 1668 align-items: center; 1669 justify-content: space-between; 1670 padding: 20px 24px; 1671 border-bottom: 1px solid #f1f5f9 1672 } 1673 1674 .pd-share-title { 1675 font-size: 18px; 1676 font-weight: 700; 1677 color: #0f172a; 1678 margin: 0 1679 } 1680 1681 .pd-share-close { 1682 width: 32px; 1683 height: 32px; 1684 border-radius: 8px; 1685 border: 0; 1686 background: transparent; 1687 color: #64748b; 1688 display: inline-flex; 1689 align-items: center; 1690 justify-content: center; 1691 cursor: pointer; 1692 transition: all .15s ease 1693 } 1694 1695 .pd-share-close:hover { 1696 background: #f1f5f9; 1697 color: #0f172a 1698 } 1699 1700 .pd-share-body { 1701 padding: 24px; 1702 overflow-y: auto 1703 } 1704 1705 .pd-share-preview { 1706 display: flex; 1707 gap: 12px; 1708 padding: 16px; 1709 background: #f8fafc; 1710 border-radius: 12px; 1711 margin-bottom: 24px 1712 } 1713 1714 .pd-share-preview-img { 1715 width: 64px; 1716 height: 64px; 1717 border-radius: 8px; 1718 object-fit: cover; 1719 flex-shrink: 0; 1720 border: 1px solid #e2e8f0 1721 } 1722 1723 .pd-share-preview-info { 1724 flex: 1; 1725 min-width: 0 1726 } 1727 1728 .pd-share-preview-name { 1729 font-size: 14px; 1730 font-weight: 600; 1731 color: #0f172a; 1732 margin: 0 0 4px 0; 1733 display: -webkit-box; 1734 -webkit-line-clamp: 2; 1735 -webkit-box-orient: vertical; 1736 overflow: hidden 1737 } 1738 1739 .pd-share-preview-price { 1740 font-size: 16px; 1741 font-weight: 700; 1742 color: #0ea5e9; 1743 margin: 0 1744 } 1745 1746 .pd-share-label { 1747 font-size: 13px; 1748 font-weight: 600; 1749 color: #475569; 1750 margin: 0 0 12px 0; 1751 text-transform: uppercase; 1752 letter-spacing: .5px 1753 } 1754 1755 .pd-share-grid { 1756 display: grid; 1757 grid-template-columns: repeat(4, 1fr); 1758 gap: 12px; 1759 margin-bottom: 24px 1760 } 1761 1762 .pd-share-option { 1763 display: flex; 1764 flex-direction: column; 1765 align-items: center; 1766 gap: 8px; 1767 padding: 16px 8px; 1768 border: 1.5px solid #e2e8f0; 1769 border-radius: 12px; 1770 background: #fff; 1771 cursor: pointer; 1772 transition: all .2s ease; 1773 text-decoration: none; 1774 color: inherit 1775 } 1776 1777 .pd-share-option:hover { 1778 border-color: #94a3b8; 1779 background: #f8fafc; 1780 transform: translateY(-2px) 1781 } 1782 1783 .pd-share-option:active { 1784 transform: translateY(0) 1785 } 1786 1787 .pd-share-icon { 1788 width: 40px; 1789 height: 40px; 1790 border-radius: 10px; 1791 display: inline-flex; 1792 align-items: center; 1793 justify-content: center; 1794 position: relative 1795 } 1796 1797 .pd-share-icon svg { 1798 width: 24px; 1799 height: 24px; 1800 display: block 1801 } 1802 1803 .pd-share-icon-whatsapp { 1804 background: linear-gradient(135deg, #25D366 0%, #128C7E 100%); 1805 color: #fff 1806 } 1807 1808 .pd-share-icon-facebook { 1809 background: linear-gradient(135deg, #1877F2 0%, #0c63d4 100%); 1810 color: #fff 1811 } 1812 1813 .pd-share-icon-twitter { 1814 background: linear-gradient(135deg, #1DA1F2 0%, #0d8bd9 100%); 1815 color: #fff 1816 } 1817 1818 .pd-share-icon-telegram { 1819 background: linear-gradient(135deg, #0088cc 0%, #0077b3 100%); 1820 color: #fff 1821 } 1822 1823 .pd-share-icon-email { 1824 background: linear-gradient(135deg, #f1db63 0%, #e5d146 100%); 1825 color: #fff 1826 } 1827 1828 .pd-share-icon-copy { 1829 background: linear-gradient(135deg, #f1db63 0%, #e5d146 100%); 1830 color: #fff 1831 } 1832 1833 .pd-share-icon-pdf { 1834 background: linear-gradient(135deg, #f1db63 0%, #e5d146 100%); 1835 color: #fff 1836 } 1837 1838 .pd-share-name { 1839 font-size: 12px; 1840 font-weight: 600; 1841 color: #475569; 1842 text-align: center 1843 } 1844 1845 .pd-share-copy-section { 1846 background: #f8fafc; 1847 padding: 16px; 1848 border-radius: 12px 1849 } 1850 1851 .pd-share-copy-input-wrap { 1852 display: flex; 1853 gap: 8px 1854 } 1855 1856 .pd-share-copy-input { 1857 flex: 1; 1858 padding: 12px 14px; 1859 border: 1px solid #e2e8f0; 1860 border-radius: 10px; 1861 font-size: 14px; 1862 color: #0f172a; 1863 background: #fff; 1864 font-family: 'Segoe UI', system-ui, sans-serif 1865 } 1866 1867 .pd-share-copy-input:focus { 1868 outline: 0; 1869 border-color: #0ea5e9; 1870 box-shadow: 0 0 0 3px rgba(14, 165, 233, .1) 1871 } 1872 1873 .pd-share-copy-btn { 1874 padding: 12px 20px; 1875 border: 0; 1876 border-radius: 10px; 1877 background: linear-gradient(135deg, #0ea5e9 0%, #0284c7 100%); 1878 color: #fff; 1879 font-size: 14px; 1880 font-weight: 600; 1881 cursor: pointer; 1882 transition: all .2s ease; 1883 white-space: nowrap; 1884 display: inline-flex; 1885 align-items: center; 1886 gap: 6px 1887 } 1888 1889 .pd-share-copy-btn:hover { 1890 background: linear-gradient(135deg, #0284c7 0%, #0369a1 100%); 1891 transform: translateY(-1px); 1892 box-shadow: 0 4px 12px rgba(14, 165, 233, .3) 1893 } 1894 1895 .pd-share-copy-btn:active { 1896 transform: translateY(0) 1897 } 1898 1899 .pd-share-copy-btn svg { 1900 width: 16px; 1901 height: 16px 1902 } 1903 1904 .pd-share-copy-btn.copied { 1905 background: linear-gradient(135deg, #22c55e 0%, #16a34a 100%); 1906 pointer-events: none 1907 } 1908 1909 @media(max-width:640px) { 1910 .pd-share-modal { 1911 border-radius: 20px 20px 0 0; 1912 margin-top: auto; 1913 max-height: 85vh 1914 } 1915 1916 .pd-share-grid { 1917 grid-template-columns: repeat(3, 1fr) 1918 } 1919 1920 .pd-share-header { 1921 padding: 16px 20px 1922 } 1923 1924 .pd-share-body { 1925 padding: 20px 1926 } 1927 1928 .pd-share-btn { 1929 width: 36px; 1930 height: 36px 1931 } 1932 1933 .pd-share-btn svg { 1934 width: 18px;
1935 height: 18px 1936 } 1937 } 1938 1939 @media(max-width:480px) { 1940 .pd-share-grid { 1941 grid-template-columns: repeat(3, 1fr); 1942 gap: 10px 1943 } 1944 1945 .pd-share-option { 1946 padding: 12px 6px 1947 } 1948 1949 .pd-share-icon { 1950 width: 36px; 1951 height: 36px 1952 } 1953 1954 .pd-share-icon svg { 1955 width: 20px; 1956 height: 20px 1957 } 1958 1959 .pd-share-name { 1960 font-size: 11px 1961 } 1962 } 1963 1964 .mf-share { 1965 background: #fff; 1966 color: #fb923c; 1967 border: 2px solid #fb923c; 1968 display: inline-flex; 1969 align-items: center; 1970 justify-content: center 1971 } 1972 1973 .mf-share:active { 1974 transform: scale(.95) 1975 } 1976 1977 .mf-share svg { 1978 display: block 1979 } 1980 1981 @media(max-width:640px) { 1982 .pd-share-btn { 1983 display: none !important 1984 } 1985 } 1986 1987 .stock-badge.in { 1988 background: #e6f9ec; 1989 color: #15803d; 1990 border-radius: 999px; 1991 padding: 4px 10px; 1992 font-weight: 700 1993 } 1994 1995 .stock-badge.out { 1996 background: #fee2e2; 1997 color: #b91c1c; 1998 border-radius: 999px; 1999 padding: 4px 10px; 2000 font-weight: 700 2001 } 2002 2003 .stock-info-btn { 2004 --c: #0ea5e9; 2005 --b: #bae6fd; 2006 --bg: #f0f9ff; 2007 --bg-h: #e0f2fe; 2008 --b-h: #0ea5e9; 2009 margin-left: 0; 2010 display: inline-flex; 2011 align-items: center; 2012 justify-content: center; 2013 gap: 0.5rem; 2014 padding: 4px 10px; 2015 border-radius: 999px; 2016 border: 1.5px solid var(--b); 2017 background: var(--bg); 2018 color: var(--c); 2019 cursor: pointer; 2020 font-size: 12px; 2021 font-weight: 600; 2022 transition: all .2s ease; 2023 -webkit-tap-highlight-color: transparent 2024 } 2025 2026 .stock-info-btn:hover { 2027 background: var(--bg-h); 2028 border-color: var(--b-h); 2029 color: #0284c7; 2030 transform: translateY(-1px); 2031 box-shadow: 0 2px 8px rgba(14, 165, 233, .15) 2032 } 2033 2034 .stock-info-btn:active { 2035 transform: translateY(0) 2036 } 2037 2038 .stock-info-btn:focus-visible { 2039 outline: 0; 2040 box-shadow: 0 0 0 3px rgba(14, 165, 233, .2) 2041 } 2042 2043 .stock-info-btn svg { 2044 width: 14px; 2045 height: 14px; 2046 flex-shrink: 0 2047 } 2048 2049 .stock-info-btn .btn-text { 2050 white-space: nowrap 2051 } 2052 2053 .stock-popover { 2054 position: absolute; 2055 z-index: 9999; 2056 min-width: 280px; 2057 max-width: 92vw; 2058 background: #0b1220; 2059 color: #eef3ff; 2060 border: 1px solid rgba(255, 255, 255, .08); 2061 border-radius: 14px; 2062 box-shadow: 0 20px 40px rgba(12, 12, 20, .45); 2063 padding: 12px 12px 8px; 2064 display: none 2065 } 2066 2067 .stock-popover.show { 2068 display: block 2069 } 2070 2071 .stock-popover::before { 2072 content: ""; 2073 position: absolute; 2074 top: -8px; 2075 left: 24px; 2076 width: 14px; 2077 height: 14px; 2078 background: #0b1220; 2079 border-left: 1px solid rgba(255, 255, 255, .08); 2080 border-top: 1px solid rgba(255, 255, 255, .08); 2081 transform: rotate(45deg) 2082 } 2083 2084 .sp-head { 2085 display: flex; 2086 align-items: center; 2087 justify-content: space-between; 2088 margin-bottom: 8px 2089 } 2090 2091 .sp-title { 2092 font-weight: 800; 2093 font-size: 14px 2094 } 2095 2096 .sp-close { 2097 background: transparent; 2098 border: 0; 2099 color: #98a2b3; 2100 cursor: pointer 2101 } 2102 2103 .sp-list { 2104 list-style: none; 2105 margin: 0; 2106 padding: 0; 2107 display: flex; 2108 flex-direction: column; 2109 gap: 8px 2110 } 2111 2112 .sp-item { 2113 display: grid; 2114 grid-template-columns: 1fr auto 32px; 2115 column-gap: 12px; 2116 align-items: center; 2117 padding: 10px 10px; 2118 min-height: 44px;
2119 border-radius: 10px; 2120 background: rgba(255, 255, 255, .03) 2121 } 2122 2123 .sp-left { 2124 display: flex; 2125 align-items: center; 2126 gap: 10px 2127 } 2128 2129 .sp-dot { 2130 width: 10px; 2131 height: 10px; 2132 border-radius: 999px; 2133 background: var(--dot, #60a5fa); 2134 display: inline-block 2135 } 2136 2137 .sp-label { 2138 font-weight: 600; 2139 font-size: 13px 2140 } 2141 2142 2143 .sp-qty { 2144 grid-column: 2; 2145 justify-self: end; 2146 min-width: 40px; 2147 text-align: right; 2148 font-weight: 800; 2149 font-size: 13px; 2150 color: #cfe4ff; 2151 font-variant-numeric: tabular-nums 2152 } 2153 2154 .sp-wa { 2155 grid-column: 3; 2156 justify-self: end; 2157 width: 32px; 2158 height: 32px; 2159 min-width: 32px; 2160 min-height: 32px; 2161 box-sizing: border-box; 2162 padding: 0; 2163 line-height: 0; 2164 text-decoration: none; 2165 outline: 0; 2166 display: inline-flex; 2167 align-items: center; 2168 justify-content: center; 2169 border-radius: 999px; 2170 border: 1px solid rgba(37, 211, 102, .60); 2171 /* 1px untuk hasil âcrispâ */ 2172 background: rgba(37, 211, 102, .08); 2173 color: #25D366; 2174 transition: background-color .15s ease, border-color .15s ease, transform .05s ease; 2175 -webkit-tap-highlight-color: transparent; 2176 } 2177 2178 .sp-wa:hover { 2179 background: rgba(37, 211, 102, .16); 2180 border-color: rgba(37, 211, 102, .75) 2181 } 2182 2183 .sp-wa:active { 2184 transform: translateY(.5px) scale(.98) 2185 } 2186 2187 .sp-wa svg { 2188 width: 18px; 2189 height: 18px; 2190 display: block; 2191 vertical-align: middle 2192 } 2193 2194 .stock-popover a { 2195 text-decoration: none 2196 } 2197
2198 #deskripsi img { 2199 max-width: 450px !important; 2200 height: unset !important 2201 } 2202 2203 @media(max-width:640px) { 2204 .stock-popover { 2205 position: fixed; 2206 left: 0; 2207 right: 0; 2208 bottom: max(12px, env(safe-area-inset-bottom, 12px)); 2209 margin: 0 10px; 2210 padding: 14px 12px 10px; 2211 border-radius: 16px 2212 } 2213 2214 .stock-popover::before { 2215 display: none 2216 } 2217 2218 .stock-info-btn { 2219 padding: 4px 8px; 2220 gap: 4px; 2221 border: 0; 2222 background: transparent 2223 } 2224 2225 .stock-info-btn:hover { 2226 background: transparent; 2227 box-shadow: none; 2228 transform: none 2229 } 2230 2231 .stock-info-btn .btn-text { 2232 display: none 2233 } 2234 2235 .stock-info-btn svg { 2236 width: 16px; 2237 height: 16px 2238 } 2239 2240 .sp-item { 2241 grid-template-columns: 1fr auto 36px 2242 } 2243 2244 .sp-wa { 2245 width: 36px; 2246 height: 36px; 2247 min-width: 36px; 2248 min-height: 36px 2249 } 2250 2251 .sp-wa svg { 2252 width: 19px; 2253 height: 19px 2254 } 2255 } 2256 2257 .stock-dot { 2258 position: absolute; 2259 bottom: 8px; 2260 right: 8px; 2261 width: 8px; 2262 height: 8px; 2263 border-radius: 50%; 2264 box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4); 2265 z-index: 2; 2266 cursor: help 2267 } 2268 2269 .stock-dot.ready { 2270 background: #10b981 2271 } 2272 2273 .stock-dot.low { 2274 background: #f59e0b 2275 } 2276 2277 .stock-dot.out { 2278 background: #ef4444 2279 } 2280 2281 .stock-dot:hover { 2282 transform: scale(1.2); 2283 transition: transform 0.2s ease 2284 } 2285 2286 @media(max-width:640px) { 2287 .stock-dot { 2288 width: 7px; 2289 height: 7px; 2290 bottom: 6px; 2291 right: 6px 2292 } 2293 } 2294 2295 .pd-related-card .spec-chips { 2296 font-size: 11px; 2297 color: #64748b; 2298 margin: 4px 0 6px 0; 2299 line-height: 1.3; 2300 font-weight: 500 2301 } 2302 2303 .pd-related-card .spec-chips .spec-divider { 2304 margin: 0 4px; 2305 opacity: 0.6 2306 } 2307 2308 @media(max-width:640px) { 2309 .pd-related-card .spec-chips { 2310 font-size: 10px; 2311 margin: 3px 0 5px 0 2312 } 2313 2314 #deskripsi img { 2315 max-width: 300px !important; 2316 height: unset !important; 2317 justify-self: center !important 2318 } 2319 } 2320 2321 .pwp-trigger-badge { 2322 display: inline-flex; 2323 align-items: center; 2324 gap: 4px; 2325 padding: 3px 8px 4px; 2326 background: linear-gradient(135deg, #fbbf24 0%, #f59e0b 100%); 2327 color: #dac50e; 2328 border-radius: 6px; 2329 font-size: .65rem; 2330 font-weight: 600; 2331 border: 0 2332 } 2333 2334 .pwp-trigger-badge svg { 2335 flex-shrink: 0; 2336 width: 12px; 2337 height: 12px 2338 } 2339 2340 .pwp-deals-section { 2341 margin: 0; 2342 padding: 12px; 2343 background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%); 2344 border-radius: 12px; 2345 border: 2px solid #fbbf24 2346 } 2347 2348 .pwp-deals-header { 2349 display: flex; 2350 gap: 10px; 2351 margin-bottom: 10px 2352 } 2353 2354 .pwp-icon { 2355 flex-shrink: 0; 2356 color: #f59e0b; 2357 width: 18px; 2358 height: 18px 2359 } 2360 2361 .pwp-text .pwp-title { 2362 margin: 0 0 2px 0; 2363 font-size: 14px; 2364 font-weight: 700; 2365 color: #78350f 2366 } 2367 2368 .pwp-text .pwp-subtitle { 2369 margin: 0; 2370 font-size: 11px; 2371 color: #92400e; 2372 opacity: 0.9 2373 } 2374 2375 .pwp-deals-loading { 2376 text-align: center; 2377 padding: 40px 0; 2378 color: #92400e 2379 } 2380 2381 .pwp-spinner { 2382 width: 40px; 2383 height: 40px; 2384 border: 3px solid #fbbf24; 2385 border-top-color: #f59e0b; 2386 border-radius: 50%; 2387 animation: spin 0.8s linear infinite; 2388 margin: 0 auto 12px 2389 } 2390 2391 @keyframes spin { 2392 to { 2393 transform: rotate(360deg) 2394 } 2395 } 2396 2397 .pwp-deals-grid { 2398 display: flex; 2399 flex-direction: column; 2400 gap: 6px 2401 } 2402 2403 .pwp-deal-card { 2404 background: #fff; 2405 border-radius: 6px; 2406 overflow: hidden; 2407 border: 1px solid #fbbf24; 2408 display: flex; 2409 align-items: center; 2410 padding: 8px; 2411 gap: 10px 2412 } 2413 2414 .pwp-deal-card:hover { 2415 background: #fef3c7 2416 } 2417 2418 .pwp-deal-thumb { 2419 flex-shrink: 0; 2420 width: 50px; 2421 height: 50px; 2422 background: #f8fafc; 2423 overflow: hidden; 2424 border-radius: 4px 2425 } 2426 2427 .pwp-deal-thumb img { 2428 width: 100%; 2429 height: 100%; 2430 object-fit: cover 2431 } 2432 2433 .pwp-deal-badge { 2434 background: #ffd700; 2435 color: #fff; 2436 padding: 2px 5px; 2437 border-radius: 3px; 2438 font-size: 9px; 2439 font-weight: 700; 2440 margin-left: auto 2441 } 2442 2443 .pwp-deal-info { 2444 flex: 1; 2445 display: flex; 2446 flex-direction: column; 2447 gap: 4px 2448 } 2449 2450 .pwp-deal-name { 2451 font-size: 12px; 2452 font-weight: 600; 2453 color: #0f172a; 2454 margin: 0; 2455 line-height: 1.2 2456 } 2457 2458 .pwp-deal-prices { 2459 display: flex; 2460 align-items: center; 2461 gap: 6px; 2462 flex-wrap: wrap 2463 } 2464 2465 .pwp-deal-price { 2466 font-size: 14px; 2467 font-weight: 800; 2468 color: #ffd700; 2469 white-space: nowrap 2470 } 2471 2472 .pwp-deal-original { 2473 font-size: 11px; 2474 color: #64748b; 2475 text-decoration: line-through; 2476 white-space: nowrap 2477 } 2478 2479 .pwp-cart-note { 2480 margin-top: 8px; 2481 padding: 6px 10px; 2482 background: #e0f2fe; 2483 border-left: 2px solid#0ea5e9; 2484 font-size: 11px; 2485 color: #0c4a6e; 2486 border-radius: 4px 2487 } 2488 2489 @media(max-width:640px) { 2490 .pwp-deals-section { 2491 margin: 12px 0; 2492 padding: 10px; 2493 border-radius: 10px 2494 } 2495 2496 .pwp-deals-header { 2497 gap: 8px 2498 } 2499 2500 .pwp-text .pwp-title { 2501 font-size: 13px 2502 } 2503 2504 .pwp-text .pwp-subtitle { 2505 font-size: 10px 2506 } 2507 2508 .pwp-deal-card { 2509 padding: 6px; 2510 gap: 8px 2511 } 2512 2513 .pwp-deal-thumb { 2514 width: 45px; 2515 height: 45px 2516 } 2517 2518 .pwp-deal-name { 2519 font-size: 11px 2520 } 2521 2522 .pwp-deal-price { 2523 font-size: 13px 2524 } 2525 2526 .pwp-deal-original { 2527 font-size: 10px 2528 } 2529 } 2530 2531 .preorder-badge { 2532 display: inline-flex; 2533 align-items: center; 2534 gap: 5px; 2535 padding: 6px 12px; 2536 background: linear-gradient(135deg, #8b5cf6 0%, #7c3aed 100%); 2537 color: #fff; 2538 border-radius: 8px; 2539 font-size: 13px; 2540 font-weight: 700; 2541 border: 0; 2542 box-shadow: 0 2px 8px rgba(139, 92, 246, .25) 2543 } 2544 2545 .preorder-badge svg { 2546 width: 16px; 2547 height: 16px; 2548 flex-shrink: 0 2549 } 2550 2551 .preorder-info { 2552 margin: 12px 0; 2553 padding: 14px; 2554 background: linear-gradient(135deg, #f5f3ff 0%, #ede9fe 100%); 2555 border: 1.5px solid #c4b5fd; 2556 border-radius: 12px 2557 } 2558 2559 .preorder-info-header { 2560 display: flex; 2561 align-items: center; 2562 gap: 8px; 2563 margin-bottom: 10px 2564 } 2565 2566 .preorder-info-icon {
2567 width: 20px; 2568 height: 20px; 2569 color: #7c3aed; 2570 flex-shrink: 0 2571 } 2572 2573 .preorder-info-title { 2574 font-size: 14px; 2575 font-weight: 700; 2576 color: #5b21b6; 2577 margin: 0 2578 } 2579 2580 .preorder-info-items { 2581 display: flex; 2582 flex-direction: column; 2583 gap: 8px 2584 } 2585 2586 .preorder-info-row { 2587 display: flex; 2588 align-items: center; 2589 justify-content: space-between; 2590 font-size: 13px 2591 } 2592 2593 .preorder-info-label { 2594 color: #6b21a8; 2595 font-weight: 600 2596 } 2597 2598 .preorder-info-value { 2599 color: #5b21b6; 2600 font-weight: 700 2601 } 2602 2603 .preorder-info-value.highlight { 2604 color: #ffd700; 2605 font-size: 14px 2606 } 2607 2608 .preorder-info-note { 2609 margin-top: 10px; 2610 padding: 8px 10px; 2611 background: #fef3c7; 2612 border-left: 2px solid #f59e0b; 2613 font-size: 12px; 2614 color: #78350f; 2615 border-radius: 6px; 2616 line-height: 1.4 2617 } 2618 2619 @media(max-width:640px) { 2620 .preorder-badge { 2621 font-size: 12px; 2622 padding: 5px 10px 2623 } 2624 2625 .preorder-info { 2626 margin: 10px 0; 2627 padding: 12px 2628 } 2629 2630 .preorder-info-title { 2631 font-size: 13px 2632 } 2633 2634 .preorder-info-row { 2635 font-size: 12px 2636 } 2637 2638 .preorder-info-note { 2639 font-size: 11px; 2640 padding: 6px 8px 2641 } 2642 } 2643 </style> 2644 2645<div class="pd-sticky-header" id="pd-sticky-header"> 2646 <div class="pd-sticky-header-container"> 2647 <div class="pd-sticky-thumb"><img 2648 src="https://cdn.datasirwg.cloud/KAWANMENANG/banner%20kawanmenang%20otomotif.webp" 2649 alt="KAWANMENANG" id="pd-sticky-thumb-img"></div> 2650 <div class="pd-sticky-info"> 2651 <h1 class="pd-sticky-title" id="pd-sticky-title">Mengupas Tuntas Mirajautoservice dan Tren Otomotif Modern bersama KAWANMENANG 2652 </h1> 2653 <div class="pd-sticky-price-row"><span class="pd-sticky-price" id="pd-sticky-price">Rp 2654 5.000,-</span><span class="pd-sticky-price-original" id="pd-sticky-price-original">Rp 2655 1.000.000</span><span class="pd-sticky-discount" id="pd-sticky-discount">-99.5%</span></div> 2656 </div> 2657 <div class="pd-sticky-actions"><button type="button" class="pd-sticky-share-btn" id="pd-sticky-share-btn" 2658 aria-label="Bagikan produk" title="Bagikan"><svg viewBox="0 0 24 24" width="16" height="16" 2659 aria-hidden="true"> 2660 <path fill="currentColor" 2661 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" /> 2662 </svg></button><button type="button" class="pd-sticky-btn pd-sticky-btn-chat" 2663 id="pd-sticky-chat"><svg viewBox="0 0 640 640" fill="currentColor" aria-hidden="true"> 2664 <path 2665 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" /> 2666 </svg>Tanya</button><button type="button" class="pd-sticky-btn pd-sticky-btn-cart" 2667 id="pd-sticky-add-cart" disabled>+ Keranjang</button><button type="button" 2668 class="pd-sticky-btn pd-sticky-btn-buy" id="pd-sticky-buy" disabled>Beli Sekarang</button></div> 2669 </div> 2670</div> 2671 2672<main class="product-single product-single--v3"> 2673 <nav class="pd-breadcrumb" aria-label="breadcrumb"><a 2674 href="https://mirajautoservice.com/">KAWANMENANG</a><span>/</span><a 2675 href="https://mirajautoservice.com/">SITUS 2676 TOGEL 4D</a><span>/</span><a href="https://mirajautoservice.com/">BANDAR 2677 TOTO MACAU</a><span>/</span><a href="https://mirajautoservice.com/">TOGEL 2678 ONLINE RESPONSIF</a><span>/</span><a href="https://mirajautoservice.com/">LAYANAN RESMI KAWANMENANG 2679 </a><span>/</span><span class="current"> Mengupas Tuntas Mirajautoservice dan Tren Otomotif Modern bersama KAWANMENANG 2680 2681 2682 2683 2684 </span></nav> 2685 2686 <div class="pd-top-layout"> 2687 <section class="pd-media-card"> 2688 <figure class="pd-main-image" id="pd-main-figure"><img id="pd-main-img" 2689 src="https://cdn.datasirwg.cloud/KAWANMENANG/banner%20kawanmenang%20otomotif.webp" 2690 alt="KAWANMENANG" data-slug="" loading="eager"> 2691 </figure> 2692 2693 <div class="pd-mobile-slider-wrapper"> 2694 <div class="pd-mobile-slider" id="pd-mobile-slider" aria-label="Galeri gambar (geser)"> 2695 <div class="pd-mslide"><img 2696 src="https://cdn.datasirwg.cloud/KAWANMENANG/banner%20kawanmenang%20otomotif.webp" 2697 alt="KAWANMENANG" loading="eager"></div> 2698 <div class="pd-mslide"><img 2699 src="https://cdn.datasirwg.cloud/KAWANMENANG/banner%20kawanmenang%20otomotif.webp" 2700 alt="KAWANMENANG" loading="lazy"></div> 2701 <div class="pd-mslide"><img 2702 src="https://cdn.datasirwg.cloud/KAWANMENANG/banner%20kawanmenang%20otomotif.webp" 2703 alt="KAWANMENANG" loading="lazy"></div> 2704 <div class="pd-mslide"><img 2705 src="https://cdn.datasirwg.cloud/KAWANMENANG/banner%20kawanmenang%20otomotif.webp" 2706 alt="KAWANMENANG" loading="lazy"></div> 2707 <div class="pd-mslide"><img 2708 src="https://cdn.datasirwg.cloud/KAWANMENANG/banner%20kawanmenang%20otomotif.webp" 2709 alt="KAWANMENANG" loading="lazy"></div> 2710 <div class="pd-mslide"><img 2711 src="https://cdn.datasirwg.cloud/KAWANMENANG/banner%20kawanmenang%20otomotif.webp" 2712 alt="KAWANMENANG" loading="lazy"></div> 2713 </div> 2714 <div class="pd-gallery-counter" id="pd-gallery-counter">1/6</div> 2715 </div> 2716 <div class="pd-thumb-gallery" id="pd-thumb-gallery" aria-label="Galeri gambar produk"><button 2717 type="button" class="pd-thumb-btn active" 2718 data-full="https://cdn.datasirwg.cloud/KAWANMENANG/banner%20kawanmenang%20otomotif.webp"
2719 data-alt="KAWANMENANG" data-slug="" aria-label="Gambar 1"><img 2720 src="https://cdn.datasirwg.cloud/KAWANMENANG/banner%20kawanmenang%20otomotif.webp" 2721 alt="KAWANMENANG" loading="lazy"></button><button type="button" class="pd-thumb-btn " 2722 data-full="https://cdn.datasirwg.cloud/KAWANMENANG/banner%20kawanmenang%20otomotif.webp" 2723 data-alt="KAWANMENANG" 2724 data-slug="https://cdn.datasirwg.cloud/KAWANMENANG/banner%20kawanmenang%20otomotif.webp" 2725 aria-label="Gambar 2"><img 2726 src="https://cdn.datasirwg.cloud/KAWANMENANG/banner%20kawanmenang%20otomotif.webp" 2727 alt="KAWANMENANG" loading="lazy"></button><button type="button" class="pd-thumb-btn " 2728 data-full="https://cdn.datasirwg.cloud/KAWANMENANG/banner%20kawanmenang%20otomotif.webp" 2729 data-alt="KAWANMENANG" 2730 data-slug="lenovo-legion-go-8asp2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-b-1761796941-223.webp" 2731 aria-label="Gambar 3"><img 2732 src="https://cdn.datasirwg.cloud/KAWANMENANG/banner%20kawanmenang%20otomotif.webp" 2733 alt="KAWANMENANG" loading="lazy"></button><button type="button" class="pd-thumb-btn " 2734 data-full="https://cdn.datasirwg.cloud/KAWANMENANG/banner%20kawanmenang%20otomotif.webp" 2735 data-alt="KAWANMENANG" 2736 data-slug="lenovo-legion-go-8asp2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-b-1761796941-776.webp" 2737 aria-label="Gambar 4"><img 2738 src="https://cdn.datasirwg.cloud/KAWANMENANG/banner%20kawanmenang%20otomotif.webp" 2739 alt="KAWANMENANG" loading="lazy"></button><button type="button" class="pd-thumb-btn " 2740 data-full="https://cdn.datasirwg.cloud/KAWANMENANG/banner%20kawanmenang%20otomotif.webp" 2741 data-alt="KAWANMENANG" 2742 data-slug="lenovo-legion-go-8asp2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-b-1761796941-634.webp" 2743 aria-label="Gambar 5"><img 2744 src="https://cdn.datasirwg.cloud/KAWANMENANG/banner%20kawanmenang%20otomotif.webp" 2745 alt="KAWANMENANG" loading="lazy"></button><button type="button" class="pd-thumb-btn " 2746 data-full="https://cdn.datasirwg.cloud/KAWANMENANG/banner%20kawanmenang%20otomotif.webp" 2747 data-alt="KAWANMENANG" 2748 data-slug="lenovo-legion-go-8asp2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-b-1761796941-892.webp" 2749 aria-label="Gambar 6"><img 2750 src="https://cdn.datasirwg.cloud/KAWANMENANG/banner%20kawanmenang%20otomotif.webp" 2751 alt="KAWANMENANG" loading="lazy"></button></div> 2752 </section> 2753 <section class="pd-info-card"> 2754 <div id="pd-variant-combined" class="pd-variant-combined" hidden></div> 2755 <div class="pd-title-row"> 2756 <h1 class="pd-title" id="pd-title"> Mengupas Tuntas Mirajautoservice dan Tren Otomotif Modern bersama KAWANMENANG 2757 </h1><button type="button" class="pd-share-btn" id="pd-share-btn" aria-label="Bagikan produk" 2758 title="Bagikan"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true"> 2759 <path fill="currentColor" 2760 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" /> 2761 </svg></button> 2762 </div> 2763 <div id="pd-price-anchor"> 2764 </div> 2765 <div class="pd-price-qr-container"> 2766 <div class="pd-price-block" id="pd-price-block"> 2767 <div class="pd-price-row">
2768 <span class="pd-price-current" id="pd-price-current">Rp 10.000</span> 2769 <span class="pd-price-original" id="pd-price-original">Rp 100.000</span> 2770 <span class="pd-discount-badge" id="pd-discount-badge">-95%</span> 2771 </div> 2772 <div class="pd-meta-row"> 2773 <span class="sold-inline" id="pd-sold-inline" data-role="sold-chip">Terjual Terjual 2</span> 2774 <span class="pwp-trigger-badge" id="pwp-trigger-badge" hidden> 2775 <svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor"> 2776 <path 2777 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" /> 2778 </svg>Bisa PWP</span> 2779 </div> 2780 <div class="pd-meta-inline"><span class="stock-badge out" id="pd-stock-badge">KAWANMENANG</span> 2781 <span class="sku">SKU: <span id="pd-sku">1S83N0880RID</span></span> 2782 </div> 2783<div class="paylater-promo paylater-promo-sm paylater-mobile-only"> 2784 <span class="paylater-icon">ð³</span> 2785 <span class="paylater-text"> 2786 <strong>Akses Login Alternatif Resmi</strong> 2787 <small>Jalur Utama Masuk KAWANMENANG</small> 2788 </span> 2789</div> 2790 2791 <div class="stock-popover" id="pd-stock-popover" role="dialog" aria-hidden="true" 2792 aria-label="Informasi stok cabang"> 2793 <div class="sp-head"> 2794 <div class="sp-title">Stok Cabang</div><button type="button" class="sp-close" 2795 id="pd-stock-popover-close" aria-label="Tutup"><svg width="18" height="18"
2796 viewBox="0 0 24 24"> 2797 <path fill="currentColor" 2798 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" /> 2799 </svg></button> 2800 </div> 2801 <ul class="sp-list"> 2802 <li class="sp-item"> 2803 <div class="sp-left"><span class="sp-dot" style="--dot:#60a5fa;"></span><span 2804 class="sp-label">Asia Mega Mas</span></div><span class="sp-qty" 2805 id="sp-qty-meg">0</span><a class="sp-wa" 2806 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" 2807 target="_blank" rel="noopener" aria-label="WhatsApp Asia Mega Mas"><svg 2808 class="ico-wa" viewBox="0 0 24 24" aria-hidden="true" focusable="false"> 2809 <path fill="currentColor" 2810 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" /> 2811 </svg></a> 2812 </li> 2813 2814 <li class="sp-item"> 2815 <div class="sp-left"> 2816 <span class="sp-dot" style="--dot:#34d399;"></span> 2817 <span class="sp-label">Medan Fair</span> 2818 </div> 2819 <span class="sp-qty" id="sp-qty-mdf">0</span> 2820 <a class="sp-wa" 2821 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" 2822 target="_blank" rel="noopener" aria-label="WhatsApp Medan Fair"> 2823 <svg class="ico-wa" viewBox="0 0 24 24" aria-hidden="true" focusable="false"> 2824 <path fill="currentColor" 2825 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" /> 2826 </svg> 2827 </a> 2828 </li> 2829 2830 <li class="sp-item"> 2831 <div class="sp-left">
2832 <span class="sp-dot" style="--dot:#f59e0b;"></span> 2833 <span class="sp-label">Banda Aceh</span> 2834 </div> 2835 <span class="sp-qty" id="sp-qty-bda">0</span> 2836 <a class="sp-wa" 2837 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" 2838 target="_blank" rel="noopener" aria-label="WhatsApp Banda Aceh"> 2839 <svg class="ico-wa" viewBox="0 0 24 24" aria-hidden="true" focusable="false"> 2840 <path fill="currentColor" 2841 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" /> 2842 </svg> 2843 </a> 2844 </li> 2845 </ul> 2846 </div> 2847 2848 </div> 2849 <div class="pd-qr-print" style="display:none;"> 2850 <div class="pd-qr-label">Scan untuk lihat produk:</div><img 2851 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" 2852 alt="QR Code" class="pd-qr-image"> 2853 </div> 2854 </div> 2855 <div id="pd-variants-anchor"></div> 2856 2857 2858 2859 <div class="pd-compare-section"> 2860 <button type="button" class="pd-compare-btn" id="pd-compare-btn" data-product-id="325"> 2861 <svg class="compare-icon" width="18" height="18" viewBox="0 0 24 24" fill="currentColor"> 2862 <path d="M21,9L17,5V8H10V10H17V13M7,11L3,15L7,19V16H14V14H7V11Z" /> 2863 </svg> 2864 <span class="compare-text">Bandingkan Produk</span> 2865 <span class="compare-remove" hidden> 2866 <svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor"> 2867 <path 2868 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" /> 2869 </svg> 2870 Hapus dari Perbandingan 2871 </span> 2872 </button> 2873 <div class="pd-compare-info"> 2874 <small class="compare-note" id="compare-note">Bandingkan hingga 5 produk dengan bantuan 2875 AI</small> 2876 </div> 2877 </div> 2878 <div class="togel-container-v3 mini"> 2879 <div class="togel-machine-v3"> 2880 <h2 class="togel-title-v3">ð¯ PREDIKSI TOGEL RESMI (SIMULASI) ð¯</h2> 2881
2882 <div class="togel-controls-v3"> 2883 <label> 2884 PASARAN 2885 <select id="marketFilter"> 2886 <option value="ALL">ALL PASARAN</option> 2887 </select> 2888 </label> 2889 2890 <label> 2891 TIPE 2892 <select id="typeFilter"> 2893 <option value="4D">4D</option> 2894 <option value="3D">3D</option> 2895 <option value="2D">2D</option> 2896 </select> 2897 </label> 2898 2899 <label> 2900 MIN CONF 2901 <input id="minConf" type="number" min="50" max="99" step="1" value="70"> 2902 </label> 2903 2904 <button id="btnTogelRandom" type="button"> 2905 <span class="icon">ð²</span> GENERATE 2906 </button> 2907 </div> 2908 2909 <div class="togel-main-result-v3" id="togelResult"> 2910 <div class="togel-status-v3" id="togelStatus">â READY â</div> 2911 2912 <div class="togel-highlight-box"> 2913 <div class="togel-col-left"> 2914 <div class="k">Pasaran Rekomendasi</div> 2915 <div class="v-game" id="rMarket">-</div> 2916 2917 <div class="provider-info"> 2918 <span class="k-small">Tipe:</span> 2919 <span class="v-small" id="rType">-</span> 2920 <span class="k-small" style="margin-left:10px;">Conf:</span> 2921 <span class="v-small" id="rConf">-</span> 2922 </div> 2923 </div> 2924 2925 <div class="togel-col-right"> 2926 <div class="k-rtp">Angka Utama</div> 2927 <div class="v-rtp-huge" id="rAngka">-</div> 2928 </div> 2929 </div> 2930 2931 <div class="togel-details-v3"> 2932 <div class="togel-detail-item"> 2933 <div class="k-detail">BBFS</div> 2934 <div class="v-detail" id="rBBFS">-</div> 2935 </div> 2936 <div class="togel-detail-item"> 2937 <div class="k-detail">Angka Ikut</div> 2938 <div class="v-detail" id="rIkut">-</div> 2939 </div> 2940 <div class="togel-detail-item"> 2941 <div class="k-detail">Shio</div> 2942 <div class="v-detail" id="rShio">-</div> 2943 </div> 2944 </div> 2945 2946 <div class="togel-tip-v3" id="rTip"> 2947 Tips: Ini simulasi hiburan. Tetap bijak & disiplin. 2948 </div> 2949 </div> 2950 2951 <div class="togel-alts-v3"> 2952 <div class="togel-alts-title-v3">3 Alternatif Angka</div> 2953 <div class="togel-alt-list-v3" id="togelAltList"></div> 2954 </div> 2955 2956 <div class="togel-note-v3"> 2957 Disclaimer: Hasil di halaman ini random (simulasi), bukan acuan hasil resmi. 2958 </div> 2959 </div> 2960 </div> 2961 2962 <style> 2963 @import url("https://fonts.googleapis.com/css2?family=Orbitron:wght@600;700;800&display=swap"); 2964 2965 /* =============================== 2966 WRAPPER 2967================================ */ 2968 .togel-container-v3 { 2969 display: flex; 2970 justify-content: center; 2971 padding: 16px 10px; 2972 font-family: "Orbitron", "Poppins", system-ui, sans-serif; 2973 } 2974 2975 /* =============================== 2976 MACHINE CORE (RED ELEGANT) 2977================================ */ 2978 .togel-machine-v3 { 2979 position: relative; 2980 width: 100%; 2981 max-width: 520px; 2982 padding: 16px; 2983 border-radius: 16px; 2984 overflow: hidden; 2985 isolation: isolate; 2986 2987 background: 2988 radial-gradient(circle at top left, rgba(255, 215, 0, 0.08), transparent 35%), radial-gradient(circle at bottom right, rgba(255, 180, 0, 0.06), transparent 30%), linear-gradient(145deg, #000000, #000000 45%, #000000); 2989 2990 2991 border: 1px solid rgba(0, 0, 0, 0.18); 2992 2993 box-shadow: 2994 0 18px 40px rgba(0, 0, 0, 0.75), inset 0 1px 0 rgba(255, 255, 255, 0.767), 0 0 25px rgba(255, 215, 0, 0.06); 2995 color: #ffffff; 2996 } 2997 2998 /* HUD SWEEP */ 2999 .togel-machine-v3::before { 3000 content: ""; 3001 position: absolute; 3002 inset: 0; 3003 background: linear-gradient(120deg, transparent 40%, rgba(255, 0, 0, .10), transparent 65%); 3004 animation: hudSweep 7s linear infinite; 3005 pointer-events: none; 3006 opacity: .8; 3007 } 3008 3009 /* =============================== 3010 TITLE 3011================================ */ 3012 .togel-title-v3 { 3013 text-align: center; 3014 margin: 0 0 12px; 3015 font-size: 15px; 3016 font-weight: 900; 3017 letter-spacing: 1px; 3018 text-shadow: 0 0 6px rgba(0, 0, 0, 0.9); 3019 } 3020 3021 /* =============================== 3022 CONTROLS 3023================================ */
3024 .togel-controls-v3 { 3025 display: grid; 3026 grid-template-columns: 1fr 1fr; 3027 gap: 10px; 3028 padding: 12px; 3029 border-radius: 14px; 3030 3031 background: rgba(0, 0, 0, 0.4); 3032 border: 1px solid rgba(0, 0, 0, 0.45); 3033 box-shadow: inset 0 0 14px rgba(0, 0, 0, 0.22); 3034 } 3035 3036 .togel-controls-v3 label { 3037 display: grid; 3038 gap: 6px; 3039 font-size: 10px; 3040 letter-spacing: .8px; 3041 text-transform: uppercase; 3042 color: #ffd700; 3043 } 3044 3045 .togel-controls-v3 select, 3046 .togel-controls-v3 input { 3047 background: rgba(30, 0, 0, 0.92); 3048 color: #ffffff; 3049 border: 1px solid #ffd700; 3050 border-radius: 10px; 3051 padding: 7px 9px; 3052 font-weight: 700; 3053 font-size: 12px; 3054 outline: none; 3055 box-shadow: inset 0 0 10px rgba(255, 217, 0, 0.2); 3056 } 3057 3058 /* BUTTON */ 3059 #btnTogelRandom { 3060 grid-column: span 2; 3061 display: flex; 3062 align-items: center; 3063 justify-content: center; 3064 gap: 8px; 3065 3066 background: linear-gradient(145deg, #ffd700, #ffd700); 3067 border: none; 3068 color: #1a0000; 3069 font-weight: 900; 3070 letter-spacing: .8px; 3071 border-radius: 14px; 3072 cursor: pointer; 3073 padding: 10px 12px; 3074 font-size: 12px; 3075 3076 box-shadow: 0 0 16px rgb(255, 215, 0); 3077 transition: .2s ease; 3078 } 3079 3080 #btnTogelRandom:active { 3081 transform: scale(.98); 3082 } 3083 3084 #btnTogelRandom:disabled { 3085 opacity: .75; 3086 cursor: not-allowed; 3087 } 3088 3089 /* =============================== 3090 MAIN RESULT 3091================================ */ 3092 .macau-main-result-v3 { 3093 margin-top: 12px; 3094 padding: 12px; 3095 border-radius: 14px; 3096 background: rgba(0, 0, 0, 0.78); 3097 3098 } 3099 3100 .macau-status-v3 { 3101 text-align: center; 3102 font-weight: 800; 3103 letter-spacing: .8px; 3104 color: #ffffff; 3105 margin-bottom: 10px; 3106 font-size: 11px; 3107 } 3108 3109 .macau-highlight-box { 3110 display: flex; 3111 justify-content: space-between; 3112 gap: 12px; 3113 padding-bottom: 10px; 3114 margin-bottom: 10px; 3115 border-bottom: 1px dashed rgba(255, 238, 80, 0.3); 3116 } 3117 3118 .k, 3119 .k-rtp { 3120 font-size: 10px; 3121 color: #ffffff; 3122 text-transform: uppercase; 3123 } 3124 3125 .v-game { 3126 font-size: 14px; 3127 font-weight: 900; 3128 color: #ffffff; 3129 margin-top: 6px; 3130 line-height: 1.2; 3131 } 3132 3133 .provider-info { 3134 margin-top: 8px; 3135 font-size: 11px; 3136 color: #ffffff; 3137 opacity: .95; 3138 } 3139 3140 .k-small { 3141 color: #ffffff; 3142 font-size: 10px; 3143 } 3144 3145 .v-small { 3146 color: #fff0f0; 3147 font-weight: 900; 3148 } 3149 3150 .v-rtp-huge { 3151 font-size: 2.4em; 3152 font-weight: 900; 3153 color: #ffffff; 3154 text-shadow: 0 0 10px rgba(255, 208, 0, 0.7); 3155 line-height: 1; 3156 letter-spacing: 1px; 3157 } 3158 3159 /* DETAILS */ 3160 .togel-details-v3 { 3161 display: grid; 3162 grid-template-columns: repeat(3, 1fr); 3163 gap: 8px; 3164 background: rgba(0, 0, 0, .30); 3165 padding: 10px; 3166 border-radius: 12px; 3167 } 3168 3169 .k-detail { 3170 font-size: 9px; 3171 color: #ffffff; 3172 text-transform: uppercase; 3173 } 3174 3175 .v-detail { 3176 font-size: 12px; 3177 font-weight: 800; 3178 color: #ffffff; 3179 margin-top: 4px; 3180 letter-spacing: .8px; 3181 } 3182 3183 .togel-tip-v3 { 3184 margin-top: 10px; 3185 font-size: 10px; 3186 color: #ffffff; 3187 opacity: .9; 3188 text-align: center; 3189 } 3190 3191 /* ALTS */ 3192 .togel-alts-v3 { 3193 margin-top: 12px; 3194 padding: 12px; 3195 border-radius: 14px; 3196 background: rgba(0, 0, 0, 0.4); 3197 border: 1px solid rgba(0, 0, 0, 0.35); 3198 } 3199 3200 .togel-alts-title-v3 { 3201 font-weight: 900; 3202 color: #ffffff; 3203 margin-bottom: 10px; 3204 font-size: 12px; 3205 } 3206 3207 .togel-alt-list-v3 { 3208 display: grid; 3209 grid-template-columns: 1fr; 3210 gap: 8px; 3211 } 3212 3213 .togel-alt-item { 3214 background: rgba(30, 0, 0, .86); 3215 border-radius: 12px; 3216 padding: 10px; 3217 border-left: 3px solid rgba(255, 203, 60, 0.9); 3218 } 3219 3220 .togel-alt-item .g { 3221 font-weight: 900; 3222 color: #ffecec; 3223 font-size: 12px; 3224 } 3225 3226 .togel-alt-item .p { 3227 font-size: 10px; 3228 color: #ffffff; 3229 margin-top: 4px; 3230 } 3231 3232 .togel-alt-item .r { 3233 margin-top: 6px; 3234 font-weight: 900; 3235 color: #ffffff; 3236 letter-spacing: .8px; 3237 font-size: 12px; 3238 } 3239 3240 .togel-note-v3 { 3241 margin-top: 10px; 3242 font-size: 10px; 3243 color: #ffffff; 3244 opacity: .85; 3245 text-align: center; 3246 } 3247 3248 /* MOBILE */ 3249 @media(max-width:420px) { 3250 .togel-highlight-box { 3251 flex-direction: column 3252 } 3253 3254 .togel-details-v3 { 3255 grid-template-columns: 1fr 3256 } 3257 } 3258 3259 /* ANIM */ 3260 @keyframes hudSweep { 3261 0% { 3262 transform: translateX(-110%) 3263 } 3264 3265 100% { 3266 transform: translateX(110%) 3267 } 3268 } 3269 3270 @keyframes pulse { 3271 0% { 3272 opacity: .55 3273 } 3274 3275 50% { 3276 opacity: 1 3277 } 3278 3279 100% { 3280 opacity: .55 3281 } 3282 } 3283 </style> 3284 3285
3285<script> 3286 /* =============================== 3287 DATASET TOGEL (SIMULASI) 3288 ================================ */ 3289 const TOGEL_MARKETS = [ 3290 { market: "Toto Macau 1", code: "TTM1", open: "13:00", zone: "WIB" }, 3291 { market: "Toto Macau 2", code: "TTM2", open: "16:00", zone: "WIB" }, 3292 { market: "Toto Macau 3", code: "TTM3", open: "19:00", zone: "WIB" }, 3293 { market: "Toto Macau 4", code: "TTM4", open: "22:00", zone: "WIB" }, 3294 { market: "Toto Macau 5", code: "TTM5", open: "23:00", zone: "WIB" }, 3295 { market: "Toto Macau 6", code: "TTM6", open: "23:59", zone: "WIB" } 3296 ]; 3297 3298 const SHIO = ["Tikus", "Kerbau", "Macan", "Kelinci", "Naga", "Ular", "Kuda", "Kambing", "Monyet", "Ayam", "Anjing", "Babi"]; 3299 3300 const $ = (q) => document.querySelector(q); 3301 const randInt = (min, max) => Math.floor(Math.random() * (max - min + 1)) + min; 3302 3303 function uniqueMarkets() { 3304 return TOGEL_MARKETS.map(m => m.market); 3305 } 3306 3307 function genDigits(len) { 3308 let s = ""; 3309 for (let i = 0; i < len; i++) s += String(randInt(0, 9)); 3310 return s; 3311 } 3312 3313 function genBBFS() { 3314 const pool = [...Array(10)].map((_, i) => i); 3315 const out = []; 3316 for (let i = 0; i < 7; i++) { 3317 const idx = randInt(0, pool.length - 1); 3318 out.push(pool.splice(idx, 1)[0]); 3319 } 3320 return out.join(""); 3321 } 3322 3323 function genIkut() { 3324 const pool = [...Array(10)].map((_, i) => i); 3325 const out = []; 3326 for (let i = 0; i < 4; i++) { 3327 const idx = randInt(0, pool.length - 1); 3328 out.push(pool.splice(idx, 1)[0]); 3329 } 3330 return out.join(" ⢠"); 3331 } 3332 3333 function simulateConfidence() { 3334 return randInt(60, 96); 3335 } 3336 3337 function applyFilters() { 3338 const m = $("#marketFilter").value; 3339 const minC = parseFloat($("#minConf").value || "0"); 3340 3341 return TOGEL_MARKETS 3342 .filter(x => (m === "ALL" || x.market === m)) 3343 .map(x => ({ ...x, conf: simulateConfidence() })) 3344 .filter(x => x.conf >= minC); 3345 } 3346 3347 function pickRandom(arr, n = 1) { 3348 const copy = [...arr]; 3349 const out = []; 3350 for (let i = 0; i < n && copy.length; i++) { 3351 const idx = randInt(0, copy.length - 1); 3352 out.push(copy.splice(idx, 1)[0]); 3353 } 3354 return out; 3355 } 3356 3357 function formatAngka(type) { 3358 if (type === "4D") return genDigits(4); 3359 if (type === "3D") return genDigits(3); 3360 return genDigits(2); 3361 } 3362 3363 function renderMain(item, type) { 3364 $("#rMarket").textContent = `${item.market} (${item.code}) ⢠Open ${item.open} ${item.zone}`; 3365 $("#rType").textContent = type; 3366 $("#rConf").textContent = `${item.conf}%`; 3367 3368 $("#rAngka").textContent = formatAngka(type); 3369 $("#rBBFS").textContent = genBBFS(); 3370 $("#rIkut").textContent = genIkut(); 3371 $("#rShio").textContent = SHIO[randInt(0, SHIO.length - 1)]; 3372 $("#rTip").textContent = "Tips: Ini simulasi hiburan. Tetap bijak & disiplin."; 3373 } 3374 3375 function renderAlts(list, type) { 3376 const wrap = $("#togelAltList"); 3377 wrap.innerHTML = ""; 3378 list.forEach(x => { 3379 const el = document.createElement("div"); 3380 el.className = "togel-alt-item"; 3381 el.innerHTML = ` 3382 <div class="g">${x.market} (${x.code})</div> 3383 <div class="p">Tipe ${type} ⢠Conf <strong>${x.conf}%</strong></div> 3384 <div class="r">Angka: <strong>${formatAngka(type)}</strong></div> 3385 `; 3386 wrap.appendChild(el); 3387 }); 3388 } 3389 3390 function spinButton(btn, on) { 3391 if (on) { 3392 btn.disabled = true; 3393 btn.dataset.text = btn.innerHTML; 3394 btn.innerHTML = `<span class="icon">ð</span> PROCESS...`; 3395 } else { 3396 btn.disabled = false; 3397 btn.innerHTML = btn.dataset.text || `<span class="icon">ð²</span> GENERATE`; 3398 } 3399 } 3400 3401 /* =============================== 3402 INIT 3403 ================================ */
3404 (function init() { 3405 const sel = $("#marketFilter"); 3406 uniqueMarkets().forEach(m => { 3407 const o = document.createElement("option"); 3408 o.value = m; o.textContent = m; 3409 sel.appendChild(o); 3410 }); 3411 3412 $("#btnTogelRandom").addEventListener("click", (e) => { 3413 const btn = e.currentTarget; 3414 const type = $("#typeFilter").value; 3415 const filtered = applyFilters(); 3416 const st = $("#togelStatus"); 3417 3418 if (!filtered.length) { 3419 st.textContent = "â NO MATCH â"; 3420 st.style.color = "white"; 3421 renderAlts([], type); 3422 $("#rMarket").textContent = "-"; 3423 $("#rType").textContent = type; 3424 $("#rConf").textContent = "-"; 3425 $("#rAngka").textContent = "-"; 3426 $("#rBBFS").textContent = "-"; 3427 $("#rIkut").textContent = "-"; 3428 $("#rShio").textContent = "-"; 3429 return; 3430 } 3431 3432 spinButton(btn, true); 3433 st.textContent = "â GENERATING â"; 3434 st.style.animation = "pulse .6s linear infinite"; 3435 st.style.color = "white"; 3436 3437 const t0 = setInterval(() => { 3438 const temp = pickRandom(filtered, 1)[0]; 3439 $("#rMarket").textContent = `${temp.market} (${temp.code}) ⢠Open ${temp.open} ${temp.zone}`; 3440 $("#rType").textContent = type; 3441 $("#rConf").textContent = `${temp.conf}%`; 3442 $("#rAngka").textContent = formatAngka(type); 3443 $("#rBBFS").textContent = genBBFS(); 3444 $("#rIkut").textContent = genIkut(); 3445 $("#rShio").textContent = SHIO[randInt(0, SHIO.length - 1)]; 3446 }, 85); 3447 3448 setTimeout(() => { 3449 clearInterval(t0); 3450 3451 const picks = pickRandom(filtered, 4); 3452 renderMain(picks[0], type); 3453 renderAlts(picks.slice(1), type); 3454 3455 st.textContent = "â READY â"; 3456 st.style.animation = ""; 3457 st.style.color = "gold"; 3458 spinButton(btn, false); 3459 }, 1200); 3460 }); 3461 3462 renderAlts([], "4D"); 3463 })(); 3464 </script>
3464 3465 3466 3467 3468 <div class="pwp-deals-section" id="pwp-deals-section" hidden data-product-id="325" data-variant-id="0" 3469 data-category-path="Komputer & Laptop/Laptop/Gaming"> 3470 <div class="pwp-deals-header"><svg class="pwp-icon" width="20" height="20" viewBox="0 0 24 24" 3471 fill="currentColor"> 3472 <path 3473 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" /> 3474 </svg> 3475 <div class="pwp-text"> 3476 <h3 class="pwp-title">Penawaran Spesial PWP (Purchase with Purchase)</h3> 3477 <p class="pwp-subtitle">Beli produk ini dan dapatkan produk pilihan dengan harga spesial</p> 3478 </div> 3479 </div> 3480 <div class="pwp-deals-loading"> 3481 <div class="pwp-spinner"></div> 3482 <p>Memuat penawaran...</p> 3483 </div> 3484 <div class="pwp-deals-grid" id="pwp-deals-grid"></div> 3485 <p class="pwp-cart-note">ð¡ Produk PWP dapat ditambahkan di halaman keranjang setelah produk ini 3486 dimasukkan</p> 3487 </div> 3488 </section> 3489 3490 <aside class="pd-sidebar"> 3491 <div class="pd-side-card pd-buy-card"> 3492 <form class="pd-buy-form" id="pd-buy-form" data-pid="325"> 3493 <input type="hidden" name="variant_id" id="pd-variant-id" value="0"> 3494 <div> 3495 <label for="qty" class="qty-label">Qty</label> 3496 <input type="number" id="qty" name="qty" value="0" min="1" max="0" disabled> 3497 </div> 3498 <div class="pd-actions"> 3499 <button type="submit" class="btn-add-cart" id="btn-add-cart" disabled>+ Keranjang</button> 3500 <button type="button" class="btn-buy" id="btn-buy" data-id="278426" disabled>Beli</button> 3501 <button type="button" class="btn-chat-icon" id="btn-chat-icon" aria-label="Tanya Produk" 3502 title="Tanya Produk"><svg viewBox="0 0 640 640" fill="currentColor"> 3503 <path 3504 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" /> 3505 </svg></button> 3506 </div> 3507 </form> 3508 <div class="paylater-promo paylater-promo-md paylater-desktop-only"> 3509 <span class="paylater-icon">ð³</span> 3510 <span class="paylater-text"> 3511 <strong>Autorized Link Togel</strong> 3512 <small>Link Login KAWANMENANG</small> 3513 </span> 3514 </div> 3515 </div> 3516 3517 3518 <div class="pd-side-card qoala-banner-card"> 3519 <div class="qoala-banner"> 3520 <div class="qoala-banner-content"> 3521 <div class="qoala-icon"> 3522 <center><img 3523 src="https://cdn.datavip.cloud/Favicon/KawanMenang.png" 3524 alt="KAWANMENANG" class="qoala-shield-img"></center> 3525 </div> 3526 <div class="qoala-text"> 3527 <div class="qoala-title">LOGIN KAWANMENANG</div> 3528 <div class="qoala-subtitle">Verified</div> 3529 </div> 3530 </div> 3531 <a href="https://mirajautoservice.com/" class="qoala-cta" 3532 data-ga-event="qoala_banner_click" data-product-id="325" data-product-name="KAWANMENANG" 3533 data-category-path="Komputer & Laptop/Laptop/Gaming" target="_blank">Info</a> 3534 </div> 3535 <style> 3536 .qoala-banner-card { 3537 padding: 0; 3538 overflow: hidden 3539 } 3540 3541 .qoala-banner { 3542 background: linear-gradient(135deg, #000000 0%, rgba(255, 238, 0, 0.63) 100%); 3543 padding: 12px 16px; 3544 display: flex; 3545 align-items: center; 3546 justify-content: space-between; 3547 color: rgb(3, 1, 1); 3548 text-decoration: none; 3549 min-height: 60px; 3550 } 3551 3552 .qoala-banner-content { 3553 display: flex; 3554 align-items: center; 3555 gap: 12px; 3556 } 3557 3558 .qoala-icon { 3559 display: flex; 3560 align-items: center; 3561 justify-content: center; 3562 } 3563 3564 .qoala-shield-img { 3565 width: 36px; 3566 height: 36px; 3567 object-fit: contain; 3568 opacity: 0.9; 3569 } 3570 3571 .qoala-title { 3572 font-weight: 600; 3573 font-size: 14px; 3574 line-height: 1.2; 3575 } 3576 3577 .qoala-subtitle { 3578 font-size: 12px; 3579 opacity: 0.9; 3580 line-height: 1.2; 3581 } 3582 3583 .qoala-cta { 3584 background: rgb(247, 243, 4); 3585 color: rgb(236, 221, 6); 3586 padding: 6px 12px; 3587 border-radius: 6px; 3588 font-size: 12px; 3589 font-weight: 600; 3590 text-decoration: none; 3591 transition: background 0.2s ease; 3592 border: 1px solid rgb(250, 233, 0); 3593 } 3594 3595 .qoala-cta:hover { 3596 background: rgba(255, 238, 0, 0.966); 3597 color: rgb(0, 0, 0); 3598 } 3599 3600 @media(max-width:768px) { 3601 .qoala-banner { 3602 padding: 10px 12px 3603 } 3604 3605 .qoala-title { 3606 font-size: 17px 3607 } 3608 3609 .qoala-subtitle { 3610 font-size: 11px 3611 } 3612 } 3613 </style> 3614 </div> 3615 3616<div class="pd-side-card pd-installment-card2" id="inst-card" data-base-price="20789000" 3617 data-zero-smart="0"> 3618 <div class="inst-head"> 3619 <h3>Sistem Resmi Situs Togel 4D & Bandar Toto Online Asia KAWANMENANG</h3> 3620 </div> 3621 3622<div class="inst-bank-tabs" role="tablist" aria-label="Bank"> 3623 <button type="button" class="bank-tab active" data-bank="Toto Online Asia" aria-selected="true">Toto Online Asia 3624 </button> 3625 <button type="button" class="bank-tab" data-bank="Situs Togel 4D" 3626 aria-selected="false">Situs Togel 4D</button> 3627 <button type="button" class="bank-tab" data-bank="Sistem Resmi KAWANMENANG" aria-selected="false">Sistem Resmi 3628 KAWANMENANG</button> 3629</div> 3630 3631<ul class="inst-month-list" id="inst-month-list" aria-label="Daftar cicilan per bulan"></ul> 3632<div class="inst-note" id="inst-zero-note" style="display:none;">Informasi bandar toto online Asia tersedia melalui kategori pilihan* 3633</div> 3634<div class="inst-disclaimer">Informasi dapat mengalami pembaruan. Gunakan sistem resmi situs togel 4D dan bandar toto online Asia yang tersedia pada 3635 https://mirajautoservice.kawanmenang-main.space/event/ sebelum melanjutkan akses.</div> 3636 3637</div> 3638 3639<!-- MECHA BLUE FINAL BOSS REVIEW SLIDER --> 3640 3641<div class="tnt-review-mecha"> 3642 3643<div class="tnt-header"> 3644 <h2>KAWANMENANG - SISTEM RESMI SITUS TOGEL 4D & BANDAR TOTO ONLINE ASIA</h2> 3645 <p>Ulasan Pengguna Seputar Sistem Situs Togel 4D & Bandar Toto Online Asia KAWANMENANG</p> 3646</div> 3647 3648<div class="tnt-slider" id="tntSlider"> 3649 3650 <div class="tnt-slide active"> 3651 <div class="tnt-name">Rizky Saputra</div> 3652 <div class="tnt-comment">
3652"KAWANMENANG memiliki sistem situs togel 4D yang tersusun dengan baik dan mudah dipahami. Informasi bandar toto online Asia ditempatkan dalam bagian yang jelas sehingga saya lebih praktis saat mencari halaman yang diperlukan."</div> 3653 </div> 3654 3655 <div class="tnt-slide"> 3656 <div class="tnt-name">Dian Putra</div> 3657 <div class="tnt-comment">"Menurut saya sistem KAWANMENANG cukup mudah digunakan karena setiap menu situs togel 4D disusun secara teratur. Pilihan informasi bandar toto online Asia juga dapat ditemukan tanpa harus berpindah ke banyak halaman."</div> 3658 </div> 3659 3660 <div class="tnt-slide"> 3661 <div class="tnt-name">Fajar Bintang</div> 3662 <div class="tnt-comment">"Saya menyukai tampilan KAWANMENANG karena sistem navigasinya tetap nyaman digunakan melalui berbagai perangkat. Informasi situs togel 4D dan bandar toto online Asia tampil rapi baik melalui smartphone maupun desktop."</div> 3663 </div> 3664 3665 <div class="tnt-slide"> 3666 <div class="tnt-name">Lina Kumala</div> 3667 <div class="tnt-comment">"KAWANMENANG menyajikan informasi bandar toto online Asia dengan pembagian kategori yang cukup jelas. Susunan situs togel 4D yang sederhana membuat proses menelusuri menu dan halaman terasa lebih cepat."</div> 3668 </div> 3669 3670 <div class="tnt-slide"> 3671 <div class="tnt-name">Agus Kurniawan</div> 3672 <div class="tnt-comment">"Sistem resmi KAWANMENANG terasa praktis karena informasi situs togel 4D dapat ditemukan melalui menu yang ringkas. Tampilan bandar toto online Asia juga tetap menyesuaikan ukuran layar saat saya mengaksesnya melalui ponsel."</div> 3673 </div> 3674 3675 <div class="tnt-slide"> 3676 <div class="tnt-name">Sinta Maharani</div> 3677 <div class="tnt-comment">"Saya merasa pembagian informasi di KAWANMENANG cukup terstruktur. Sistem situs togel 4D dan bandar toto online Asia tersedia dalam satu tampilan yang sederhana sehingga setiap bagian lebih mudah ditemukan dan dipahami."</div> 3678 </div> 3679 3680 </div> 3681</div> 3682 3683 <a href="https://mirajautoservice.kawanmenang-main.space/event/" target="_blank"> 3684 <img style="display:block;margin-left:auto;margin-right:auto;height: 250px;border: 2px solid rgb(255, 215, 0);border-radius: 20px;box-shadow: 1px 1px 1px black;" 3685 alt="KAWANMENANG" 3686 src="https://cdn.datasirwg.cloud/KAWANMENANG/banner%20kawanmenang%20otomotif.webp" 3687 width="250" height="300" /> 3688 </a> 3689 3690 </div> 3691 3692 <style> 3693 .tnt-review-mecha { 3694 background: radial-gradient(circle at center, #470000, #000000); 3695 border: 2px solid #ffffff; 3696 border-radius: 14px; 3697 padding: 20px; 3698 color: #ffecec; 3699 font-family: 'Orbitron', sans-serif; 3700 position: relative; 3701 overflow: hidden; 3702 box-shadow: 0 0 25px #ffffff, inset 0 0 20px rgba(255, 0, 0, 0.2); 3703 } 3704 3705 /* scanline */ 3706 .tnt-review-mecha::before { 3707 content: ""; 3708 position: absolute; 3709 inset: 0; 3710 background: repeating-linear-gradient(to bottom, 3711 rgba(255, 0, 0, 0.08), 3712 rgba(255, 0, 0, 0.08) 1px, 3713 transparent 2px, 3714 transparent 4px); 3715 pointer-events: none; 3716 } 3717 3718 .tnt-header h2 { 3719 font-size: 18px; 3720 color: #ffffff; 3721 text-shadow: 0 0 10px #ffffff, 0 0 20px #ffffff; 3722 margin-bottom: 5px; 3723 } 3724 3725 .tnt-header p { 3726 font-size: 12px; 3727 opacity: 0.85; 3728 margin-bottom: 15px; 3729 } 3730 3731 .tnt-slider { 3732 position: relative; 3733 height: 90px; 3734 } 3735 3736 .tnt-slide { 3737 position: absolute; 3738 width: 100%; 3739 opacity: 0; 3740 transform: translateX(40px); 3741 transition: all .6s ease; 3742 } 3743 3744 .tnt-slide.active { 3745 opacity: 1;
3746 transform: translateX(0); 3747 } 3748 3749 .tnt-name { 3750 font-size: 14px; 3751 color: #ffffff; 3752 margin-bottom: 5px; 3753 text-shadow: 0 0 6px #ffffff; 3754 } 3755 3756 .tnt-comment { 3757 font-size: 13px; 3758 line-height: 1.5; 3759 } 3760 3761 /* glowing border animation */ 3762 @keyframes pulseGlow { 3763 0% { 3764 box-shadow: 0 0 10px #ffffff; 3765 } 3766 3767 50% { 3768 box-shadow: 0 0 25px #ffffff; 3769 } 3770 3771 100% { 3772 box-shadow: 0 0 10px #ffffff; 3773 } 3774 } 3775 3776 .tnt-review-mecha { 3777 animation: pulseGlow 2.5s infinite; 3778 } 3779 </style> 3780 3781
3781<script> 3782 let slides = document.querySelectorAll('.tnt-slide'); 3783 let index = 0; 3784 3785 setInterval(() => { 3786 slides[index].classList.remove('active'); 3787 index = (index + 1) % slides.length; 3788 slides[index].classList.add('active'); 3789 }, 3000); 3790 </script>
3790 3791 3792 <DIV style="margin:0 2px 12px 2px;"> 3793 3794 <style> 3795 /* ===== PREMIUM GOLD TABLE ===== */ 3796 .rb-premium-box { 3797 position: relative; 3798 margin: 30px 0; 3799 padding: 26px; 3800 border-radius: 24px; 3801 background: 3802 radial-gradient(circle at top left, rgba(255, 215, 0, 0.08), transparent 35%), 3803 radial-gradient(circle at bottom right, rgba(255, 180, 0, 0.06), transparent 30%), 3804 linear-gradient(145deg, #000000, #000000 45%, #000000); 3805 border: 1px solid rgba(0, 0, 0, 0.18); 3806 box-shadow: 3807 0 18px 40px rgba(0, 0, 0, 0.75), 3808 inset 0 1px 0 rgba(255, 255, 255, 0.767), 3809 0 0 25px rgba(255, 215, 0, 0.06); 3810 overflow: hidden; 3811 } 3812 3813 .rb-premium-box:before { 3814 content: ""; 3815 position: absolute; 3816 inset: 0; 3817 pointer-events: none; 3818 background: linear-gradient(120deg, 3819 transparent 0%, 3820 rgba(255, 215, 0, 0.04) 35%, 3821 transparent 70%); 3822 } 3823 3824 .rb-premium-head { 3825 text-align: center; 3826 margin-bottom: 20px; 3827 } 3828 3829 .rb-premium-head h3 { 3830 margin: 0; 3831 font-size: 28px; 3832 font-weight: 800; 3833 letter-spacing: 1.5px; 3834 text-transform: uppercase; 3835 color: #ffd700; 3836 text-shadow: 0 0 14px rgba(0, 0, 0, 0.18); 3837 } 3838 3839 .rb-premium-line { 3840 width: 90px; 3841 height: 3px; 3842 margin: 12px auto 0; 3843 border-radius: 99px; 3844 background: linear-gradient(90deg, #ecca07, #ffd700, #ffd700); 3845 box-shadow: 0 0 12px rgba(255, 230, 0, 0.25); 3846 } 3847 3848 .rb-premium-table { 3849 width: 100%; 3850 border-collapse: separate; 3851 border-spacing: 0; 3852 overflow: hidden; 3853 border-radius: 18px; 3854 border: 1px solid rgba(255, 215, 0, 0.15); 3855 background: rgba(0, 0, 0, 0.35); 3856 } 3857 3858 .rb-premium-table tr { 3859 transition: all .3s ease; 3860 } 3861 3862 .rb-premium-table tr:hover { 3863 background: rgba(255, 215, 0, 0.04); 3864 } 3865 3866 .rb-premium-table td { 3867 padding: 18px 16px; 3868 border-bottom: 1px solid rgba(255, 215, 0, 0.08); 3869 font-size: 15px; 3870 } 3871 3872 .rb-premium-table tr:last-child td { 3873 border-bottom: none; 3874 } 3875 3876 .rb-premium-table td.label { 3877 width: 38%; 3878 color: rgb(255, 215, 0); 3879 font-weight: 700; 3880 text-transform: uppercase; 3881 letter-spacing: .8px; 3882 } 3883 3884 .rb-premium-table td.value { 3885 color: #f3f3f3; 3886 font-weight: 600; 3887 } 3888 3889 .rb-badge-gold { 3890 display: inline-block; 3891 padding: 6px 12px; 3892 border-radius: 999px; 3893 border: 1px solid lab(86.93% -1.92 87.14); 3894 background: linear-gradient(145deg, #2a1d00, #4a4300); 3895 color: hsl(51, 100%, 50%); 3896 font-size: 13px; 3897 font-weight: 700; 3898 box-shadow: 0 0 12px rgba(255, 215, 0, 0.08); 3899 } 3900 3901 .rb-rating { 3902 color: #ffd700; 3903 font-weight: 800; 3904 font-size: 18px; 3905 text-shadow: 0 0 10px rgba(255, 215, 0, 0.15); 3906 } 3907 3908 @media(max-width:768px) { 3909 .rb-premium-head h3 { 3910 font-size: 22px; 3911 } 3912 3913 .rb-premium-table td { 3914 padding: 14px 12px; 3915 font-size: 14px; 3916 } 3917 } 3918 </style> 3919 3920 <div class="rb-premium-box"> 3921 <div class="rb-premium-head"> 3922 <h3>Informasi Lengkap</h3> 3923 <div class="rb-premium-line"></div> 3924 </div> 3925 3926 <table class="rb-premium-table"> 3927 <tr> 3928 <td class="label">Nama</td> 3929 <td class="value"><span class="rb-badge-gold">KAWANMENANG</span></td> 3930 </tr> 3931 <tr> 3932 <td class="label">Kategori</td> 3933 <td class="value">Toto Macau</td> 3934 </tr> 3935 <tr> 3936 <td class="label">Pasaran</td> 3937 <td class="value">Singapore, Hongkong, Sydney, Toto Macau, Cambodia</td> 3938 </tr> 3939 <tr> 3940 <td class="label">Metode</td> 3941 <td class="value">Transfer Bank, E-Wallet, QRIS</td> 3942 </tr> 3943 <tr> 3944 <td class="label">Mulai Dari</td> 3945 <td class="value"><span class="rb-badge-gold">IDR 10.000</span></td> 3946 </tr> 3947 <tr> 3948 <td class="label">Rating</td> 3949 <td class="value">
3950 <span class="rb-rating">â 4.9 / 5</span><br> 3951 <small style="color:#b8b8b8;">4.444.998 ulasan pengguna</small> 3952 </td> 3953 </tr> 3954 </table> 3955 3956 3957 3958 <style> 3959 /* ================================ 3960 KAWANMENANG ARTICLE / FAQ / ADVANTAGE 3961 Dark Gold Elegant Scoped Style 3962=================================== */ 3963 3964 .cptgl-section { 3965 position: relative; 3966 margin: 32px 0; 3967 padding: 26px; 3968 border-radius: 24px; 3969 background: 3970 radial-gradient(circle at top left, #ffd700, transparent 32%), 3971 radial-gradient(circle at bottom right, #ffd700, transparent 28%), 3972 linear-gradient(145deg, #070707, #111111 48%, #090909); 3973 border: 1px solid #ffd700; 3974 box-shadow: 3975 0 18px 40px rgba(0, 0, 0, 0.72), 3976 inset 0 1px 0 rgba(255, 255, 255, 0.767), 3977 0 0 20px rgba(255, 215, 0, 0.05); 3978 overflow: hidden; 3979 } 3980 3981 .cptgl-section:before { 3982 content: ""; 3983 position: absolute; 3984 top: -120%; 3985 left: -35%; 3986 width: 34%; 3987 height: 280%; 3988 background: linear-gradient(120deg, 3989 transparent 0%, 3990 #ffd700 50%, 3991 transparent 100%); 3992 transform: rotate(25deg); 3993 animation: rbLuxShine 8s linear infinite; 3994 pointer-events: none; 3995 } 3996 3997 @keyframes rbLuxShine { 3998 0% { 3999 left: -45%; 4000 } 4001 4002 100% { 4003 left: 135%; 4004 } 4005 } 4006 4007 .cptgl-section-head { 4008 position: relative; 4009 text-align: center; 4010 margin-bottom: 20px; 4011 z-index: 2; 4012 } 4013 4014 .cptgl-section-head h3 { 4015 margin: 0; 4016 font-size: 28px; 4017 line-height: 1.2; 4018 font-weight: 800; 4019 letter-spacing: 1.2px; 4020 text-transform: uppercase; 4021 color: #f5e7b2; 4022 text-shadow: 0 0 14px #ffd700; 4023 } 4024 4025 .cptgl-section-line { 4026 width: 86px; 4027 height: 3px; 4028 margin: 12px auto 0; 4029 border-radius: 999px; 4030 background: linear-gradient(90deg, #ffd700, #f0fc42, #ffd700); 4031 box-shadow: 0 0 12px rgba(0, 0, 0, 0.651); 4032 } 4033 4034 /* ARTICLE */ 4035 .cptgl-article-box { 4036 position: relative; 4037 z-index: 2; 4038 padding: 20px; 4039 border-radius: 18px; 4040 border: 1px solid rgba(255, 215, 0, 0.12); 4041 background: linear-gradient(145deg, rgba(8, 8, 8, .96), rgba(17, 17, 17, .96)); 4042 box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.03); 4043 } 4044 4045 .cptgl-article-box p { 4046 margin: 0 0 18px; 4047 color: #dddddd; 4048 font-size: 15px; 4049 line-height: 1.9; 4050 letter-spacing: .15px; 4051 } 4052 4053 .cptgl-article-box p:last-child { 4054 margin-bottom: 0; 4055 } 4056 4057 .cptgl-article-box strong { 4058 color: #ffd700; 4059 font-weight: 800; 4060 } 4061 4062 .cptgl-article-box a { 4063 color: #ffcf4a; 4064 text-decoration: none; 4065 font-weight: 700; 4066 } 4067 4068 .cptgl-article-box a:hover { 4069 text-shadow: 0 0 8px rgba(255, 215, 0, 0.28); 4070 } 4071 4072 /* KEUNGGULAN */
4073 .cptgl-adv-grid { 4074 position: relative; 4075 z-index: 2; 4076 display: grid; 4077 grid-template-columns: repeat(3, 1fr); 4078 gap: 14px; 4079 } 4080 4081 .cptgl-adv-card { 4082 padding: 18px 16px; 4083 border-radius: 18px; 4084 background: 4085 linear-gradient(145deg, #0c0c0c, #151515); 4086 border: 1px solid rgba(255, 215, 0, 0.13); 4087 box-shadow: 4088 0 10px 24px rgba(0, 0, 0, 0.45), 4089 inset 0 1px 0 rgba(255, 255, 255, 0.03); 4090 transition: all .28s ease; 4091 } 4092 4093 .cptgl-adv-card:hover { 4094 transform: translateY(-5px); 4095 box-shadow: 4096 0 16px 32px rgba(0, 0, 0, 0.6), 4097 0 0 14px rgba(255, 215, 0, 0.12); 4098 border-color: rgba(211, 181, 14, 0.651); 4099 } 4100 4101 .cptgl-adv-icon { 4102 width: 42px; 4103 height: 42px; 4104 display: flex; 4105 align-items: center; 4106 justify-content: center; 4107 border-radius: 12px; 4108 margin-bottom: 12px; 4109 background: linear-gradient(145deg, #2a1d00, #5b4100); 4110 color: #ffde4a; 4111 font-size: 18px; 4112 box-shadow: 0 0 12px rgba(255, 215, 0, 0.08); 4113 } 4114 4115 .cptgl-adv-card h4 { 4116 margin: 0 0 8px; 4117 color: #f5e7b2; 4118 font-size: 16px; 4119 font-weight: 800; 4120 letter-spacing: .3px; 4121 } 4122 4123 .cptgl-adv-card p { 4124 margin: 0; 4125 color: #cfcfcf; 4126 font-size: 14px; 4127 line-height: 1.7; 4128 } 4129 4130 /* FAQ */ 4131 .cptgl-faq-wrap { 4132 position: relative; 4133 z-index: 2; 4134 display: grid; 4135 gap: 14px; 4136 } 4137 4138 .cptgl-faq-item { 4139 border-radius: 18px; 4140 background: linear-gradient(145deg, #0a0a0a, #141414); 4141 border: 1px solid rgba(255, 215, 0, 0.13); 4142 overflow: hidden; 4143 box-shadow: 4144 0 8px 18px rgba(0, 0, 0, 0.38), 4145 inset 0 1px 0 rgba(255, 255, 255, 0.03); 4146 transition: .3s ease; 4147 } 4148 4149 .cptgl-faq-item:hover { 4150 border-color: rgba(255, 215, 0, 0.2); 4151 box-shadow: 4152 0 12px 24px rgba(0, 0, 0, 0.48), 4153 0 0 12px rgba(255, 215, 0, 0.08); 4154 } 4155 4156 .cptgl-faq-q { 4157 padding: 16px 18px; 4158 color: #f3ddb0; 4159 font-size: 15px; 4160 font-weight: 800; 4161 letter-spacing: .2px; 4162 border-bottom: 1px solid rgba(255, 215, 0, 0.08); 4163 background: linear-gradient(90deg, rgba(255, 215, 0, 0.04), transparent); 4164 } 4165 4166 .cptgl-faq-a { 4167 padding: 15px 18px 17px; 4168 color: #d7d7d7; 4169 font-size: 14px; 4170 line-height: 1.8; 4171 } 4172 4173 /* RESPONSIVE */ 4174 @media(max-width: 768px) { 4175 .cptgl-section { 4176 padding: 20px; 4177 border-radius: 20px; 4178 } 4179 4180 .cptgl-section-head h3 { 4181 font-size: 22px; 4182 } 4183 4184 .cptgl-article-box { 4185 padding: 16px; 4186 } 4187 4188 .cptgl-article-box p { 4189 font-size: 14px; 4190 line-height: 1.85; 4191 } 4192
4193 .cptgl-adv-grid { 4194 grid-template-columns: 1fr; 4195 } 4196 4197 .cptgl-adv-card { 4198 padding: 16px 14px; 4199 } 4200 4201 .cptgl-faq-q { 4202 font-size: 14px; 4203 padding: 14px 16px; 4204 } 4205 4206 .cptgl-faq-a { 4207 font-size: 13px; 4208 padding: 14px 16px 16px; 4209 } 4210 } 4211 </style> 4212 4213 <div class="cptgl-section"> 4214 <div class="cptgl-section-head"> 4215<h3>Mengupas Tuntas Mirajautoservice dan Tren Otomotif Modern bersama KAWANMENANG 4216</h3> 4217<div class="cptgl-section-line"></div> 4218</div> 4219 4220<div class="cptgl-article-box"> 4221 <p> 4222 Dunia otomotif terus bergerak dinamis seiring dengan perkembangan teknologi dan kebutuhan mobilitas yang semakin tinggi. Bagi para pemilik kendaraan, menjaga performa mesin agar tetap optimal sekaligus mengikuti tren perawatan terkini adalah sebuah keharusan. Di sinilah pentingnya mengenali layanan profesional yang mampu diandalkan untuk merawat kendaraan kesayangan Anda. 4223 </p> 4224 <p> 4225 Melalui ulasan eksklusif ini, <strong><a href="https://mirajautoservice.com/">KAWANMENANG</a></strong> mengajak Anda untuk mengenal lebih dekat mirajautoservice, sebuah nama yang kian diperhitungkan dalam dunia layanan perawatan otomotif modern. Dengan pendekatan kerja yang teliti, penggunaan teknologi perbaikan mutakhir, serta standar pelayanan yang prima, mirajautoservice hadir sebagai solusi tepat bagi berbagai permasalahan kendaraan masa kini. 4226 </p> 4227 <p> 4228 Perawatan kendaraan modern bukan lagi sekadar mengganti suku cadang atau melakukan servis berkala standar. Lebih dari itu, dibutuhkan pemahaman mendalam mengenai sistem kelistrikan, perawatan mesin injeksi, hingga estetika bodi kendaraan agar performanya selalu prima di segala medan. Kolaborasi informasi bersama KAWANMENANG memastikan Anda mendapatkan wawasan komprehensif mengenai bagaimana standar perawatan berkualitas dapat memperpanjang usia pakai kendaraan Anda. 4229 </p> 4230</div> 4231</div> 4232 4233<div class="cptgl-section"> 4234 <div class="cptgl-section-head"> 4235 <h3>FAQ KAWANMENANG SISTEM SITUS TOGEL 4D & BANDAR TOTO ONLINE ASIA</h3> 4236 <div class="cptgl-section-line"></div> 4237 </div> 4238 4239<div class="cptgl-faq-wrap"> 4240 <div class="cptgl-faq-item"> 4241 <div class="cptgl-faq-q">Apa hubungan antara KAWANMENANG dan Mirajautoservice?</div> 4242 <div class="cptgl-faq-a"> 4243 Kolaborasi antara KAWANMENANG dan Mirajautoservice menghadirkan wawasan komprehensif yang memadukan dunia hobi digital dengan informasi seputar tren perawatan otomotif modern, memberikan variasi konten yang informatif dan bermanfaat bagi para pembaca. 4244 </div> 4245 </div> 4246 4247 <div class="cptgl-faq-item"> 4248 <div class="cptgl-faq-q">Apa saja layanan utama yang ditawarkan oleh Mirajautoservice? 4249 </div> 4250 <div class="cptgl-faq-a"> 4251 Mirajautoservice berfokus pada solusi perawatan kendaraan masa kini, mulai dari servis berkala, perbaikan mesin injeksi, sistem kelistrikan, hingga perawatan estetika bodi mobil dan motor agar selalu tampil prima di jalan. 4252 </div> 4253 </div> 4254 4255 <div class="cptgl-faq-item"> 4256 <div class="cptgl-faq-q">Mengapa perawatan otomotif modern sangat penting bagi kendaraan masa kini?</div> 4257 <div class="cptgl-faq-a"> 4258 Kendaraan modern saat ini dilengkapi dengan teknologi sensor dan sistem komputerisasi yang kompleks. Oleh karena itu, perawatan profesional seperti yang dibahas bersama Mirajautoservice sangat dibutuhkan untuk menjaga performa mesin tetap optimal dan memperpanjang usia pakai kendaraan. 4259 </div> 4260 </div> 4261 4262 <div class="cptgl-faq-item"> 4263 <div class="cptgl-faq-q">Di mana saya bisa membaca ulasan lengkap mengenai tren otomotif ini? 4264 </div> 4265 <div class="cptgl-faq-a"> 4266 Anda bisa menyimak berbagai artikel mendalam, tips perawatan, serta ulasan eksklusif seputar inovasi kendaraan modern secara berkala melalui platform digital KAWANMENANG. 4267 </div> 4268 </div> 4269 4270 <div class="cptgl-faq-item"> 4271 <div class="cptgl-faq-q">Apakah tips perawatan di Mirajautoservice cocok untuk semua jenis kendaraan?</div> 4272 <div class="cptgl-faq-a"> 4273 Ya, informasi dan solusi yang dihadirkan dirancang untuk mencakup berbagai jenis kendaraan, baik mobil maupun motor keluaran terbaru, dengan tetap mengacu pada standar bengkel profesional. 4274 </div> 4275 </div> 4276 4277 <div class="cptgl-faq-item"> 4278 <div class="cptgl-faq-q">Bagaimana cara mendapatkan info terbaru seputar dunia otomotif dan hiburan dari KAWANMENANG?</div> 4279 <div class="cptgl-faq-a"> 4280 Anda dapat terus memantau pembaruan artikel di situs utama KAWANMENANG atau bergabung dengan komunitas aktif untuk mendapatkan ragam informasi menarik seputar hobi, gaya hidup, hingga tren teknologi terkini setiap harinya. 4281 </div> 4282 </div> 4283 </div> 4284 </div> 4285 </div> 4286 4287 <div style="margin:12px 0;"> 4288 <div class="params_begin">Specification:</div> 4289 <div class="params_group"> 4290 <table border="0" class="params_group_table"> 4291 <tr> 4292 <td class="params_group_name"> 4293 General 4294 </td> 4295 <td class="params_props"> 4296 <div class="params_prop last_prop"> 4297 <table border="0" class="params_prop_table"> 4298 <tr> 4299 <td class="params_name">Compatible with</td> 4300 <td class="params_value"> 4301 <div> 4302 <a 4303 href="https://www.aaanimations.com/chattycathyIntroduction.html"><b>KAWANMENANG</b></a> 4304 4305 <a 4306 href="https://www.aaanimations.com/chattycathyIntroduction.html">TOTO MACAU</a> 4307 </div> 4308 </td> 4309 </tr> 4310 </table> 4311 </div> 4312 </td> 4313 </tr> 4314 </table> 4315 </div> 4316 </div> 4317 </div> 4318 </div> 4319 4320 4321 4322<section class="pd-related-full"> 4323 <h2 class="pd-related-title">Informasi Terkait KAWANMENANG & Bandar Toto Online Asia</h2> 4324 <div class="pd-related-grid pd-related-grid--full"> 4325 <a class="pd-related-card" href="https://mirajautoservice.com/"> 4326 <div class="thumb"> 4327 <img src="https://cdn.datasirwg.cloud/KAWANMENANG/banner%20kawanmenang%20otomotif.webp" 4328 alt="KAWANMENANG">
4329 <span class="mini-disc">RESMI</span> 4330 </div> 4331 <div class="info"> 4332 <h3>KAWANMENANG</h3> 4333 <div class="spec-chips">SISTEM <span class="spec-divider">|</span> RESMI <span 4334 class="spec-divider">|</span> TERSTRUKTUR <span class="spec-divider">|</span> 4335 ONLINE</div> 4336 <span class="price"> 4337 <span class="final">Sistem Resmi KAWANMENANG</span> 4338 <span class="ori">Akses Online Asia</span> 4339 </span> 4340 <span class="sold">Informasi Tersedia</span> <span class="stock-dot low" 4341 title="KAWANMENANG"></span> 4342 </div> 4343 </a> 4344 4345 <a class="pd-related-card" href="https://mirajautoservice.com/"> 4346 <div class="thumb"> 4347 <img src="https://cdn.datasirwg.cloud/KAWANMENANG/banner%20kawanmenang%20otomotif.webp" 4348 alt="SITUS TOGEL 4D"> 4349 <span class="mini-disc">4D</span> 4350 </div> 4351 <div class="info"> 4352 <h3>SITUS TOGEL 4D</h3> 4353 <div class="spec-chips">SISTEMATIS <span class="spec-divider">|</span> RAPI <span 4354 class="spec-divider">|</span> RESPONSIF <span class="spec-divider">|</span> 4355 PRAKTIS</div> 4356 <span class="price"> 4357 <span class="final">Sistem Situs Togel 4D</span> 4358 <span class="ori">KAWANMENANG</span> 4359 </span> 4360 <span class="sold">Halaman Terstruktur</span> <span class="stock-dot out" title="Situs Togel 4D"></span> 4361 </div> 4362 </a> 4363 4364 <a class="pd-related-card" href="https://mirajautoservice.com/"> 4365 <div class="thumb"> 4366 <img src="https://cdn.datasirwg.cloud/KAWANMENANG/banner%20kawanmenang%20otomotif.webp" 4367 alt="BANDAR TOTO ONLINE ASIA"> 4368 <span class="mini-disc">ASIA</span> 4369 </div> 4370 <div class="info"> 4371 <h3>BANDAR TOTO ONLINE ASIA</h3> 4372 <div class="spec-chips">TOTO <span class="spec-divider">|</span> ASIA <span 4373 class="spec-divider">|</span> ONLINE <span class="spec-divider">|</span> 4374 TERARAH</div> 4375 <span class="price"> 4376 <span class="final">Informasi Bandar Toto Asia</span> 4377 <span class="ori">Sistem Online</span> 4378 </span> 4379 <span class="sold">Informasi Terorganisir</span> <span class="stock-dot ready" title="Tersedia"></span> 4380 </div> 4381 </a> 4382 4383 <a class="pd-related-card" href="https://mirajautoservice.com/"> 4384 <div class="thumb"> 4385 <img src="https://cdn.datasirwg.cloud/KAWANMENANG/banner%20kawanmenang%20otomotif.webp" 4386 alt="SISTEM RESPONSIF"> 4387 <span class="mini-disc">WEB</span> 4388 </div> 4389 <div class="info"> 4390 <h3>SISTEM RESPONSIF</h3> 4391 <div class="spec-chips">MOBILE <span class="spec-divider">|</span> TABLET <span 4392 class="spec-divider">|</span> LAPTOP <span class="spec-divider">|</span> 4393 DESKTOP</div> 4394 <span class="price"> 4395 <span class="final">Tampilan Adaptif</span> 4396 <span class="ori">Multi Perangkat</span> 4397 </span> 4398 <span class="sold">Akses Fleksibel</span> <span class="stock-dot ready" title="Tersedia"></span> 4399 </div> 4400 </a> 4401 4402 <a class="pd-related-card" href="https://mirajautoservice.com/"> 4403 <div class="thumb"> 4404 <img src="https://cdn.datasirwg.cloud/KAWANMENANG/banner%20kawanmenang%20otomotif.webp" 4405 alt="INFORMASI TOTO ASIA"> 4406 <span class="mini-disc">INFO</span> 4407 </div> 4408 <div class="info"> 4409 <h3>INFORMASI TOTO ASIA</h3> 4410 <div class="spec-chips">ASIA <span class="spec-divider">|</span> INFORMASI <span 4411 class="spec-divider">|</span> NAVIGASI <span class="spec-divider">|</span> 4412 SISTEMATIS</div>
4413 <span class="price"> 4414 <span class="final">Pusat Informasi Toto Asia</span> 4415 <span class="ori">KAWANMENANG</span> 4416 </span> 4417 <span class="sold">Konten Tersedia</span> <span class="stock-dot low" 4418 title="Informasi Toto Asia"></span> 4419 </div> 4420 </a> 4421 4422 <a class="pd-related-card" href="https://mirajautoservice.com/"> 4423 <div class="thumb"> 4424 <img src="https://cdn.datasirwg.cloud/KAWANMENANG/banner%20kawanmenang%20otomotif.webp" 4425 alt="AKSES SISTEM RESMI"> 4426 <span class="mini-disc">AKSES</span> 4427 </div> 4428 <div class="info"> 4429 <h3>AKSES SISTEM RESMI</h3> 4430 <div class="spec-chips">WEB <span class="spec-divider">|</span> MOBILE <span 4431 class="spec-divider">|</span> TERATUR <span class="spec-divider">|</span> 4432 PRAKTIS</div> 4433 <span class="price"> 4434 <span class="final">Navigasi Sistem Resmi</span> 4435 <span class="ori">Informasi KAWANMENANG</span> 4436 </span> 4437 <span class="stock-dot low" title="Informasi Tersedia"></span> 4438 </div> 4439 </a> 4440 4441</div> 4442 4443</section> 4444 4445 4446 4447 <div class="pd-mobile-fab" id="pd-mobile-fab" data-pid="325" data-price="20789000" data-voucher-code="" 4448 data-voucher-value="0"> 4449 <div class="mf-actions"><button type="button" class="mf-btn mf-share" id="mf-share" 4450 aria-label="Bagikan"><svg viewBox="0 0 24 24" width="18" height="18" aria-hidden="true"> 4451 <path fill="currentColor" 4452 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" /> 4453 </svg></button><button type="button" class="mf-btn mf-chat" id="mf-chat" 4454 aria-label="Tanya Produk"><svg viewBox="0 0 640 640" fill="currentColor"> 4455 <path 4456 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" /> 4457 </svg></button><button type="button" class="mf-btn mf-cart" id="mf-cart" disabled 4458 aria-label="Tambah ke keranjang"><svg viewBox="0 0 24 24" width="18" height="18" 4459 aria-hidden="true"> 4460 <path fill="currentColor" 4461 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" /> 4462 </svg></button><button type="button" class="mf-btn mf-buy" id="mf-buy" disabled><span 4463 class="mf-buy-text">Beli Sekarang</span><span class="mf-buy-price">Rp 4464 20.789.000</span></button> 4465 </div> 4466 </div> 4467 4468 <button type="button" class="pd-scroll-top" id="pd-scroll-top" aria-label="Kembali ke atas" 4469 title="Kembali ke atas"> 4470 <svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true">
4471 <path fill="currentColor" d="M7.41 14.59 12 10l4.59 4.59L18 13.17l-6-6-6 6z" /> 4472 </svg> 4473 </button> 4474 </main> 4475 4476 <div class="pd-share-modal-overlay" id="pd-share-modal-overlay"> 4477 <div class="pd-share-modal"> 4478 <div class="pd-share-header"> 4479 <h2 class="pd-share-title">Bagikan Produk</h2><button type="button" class="pd-share-close" 4480 id="pd-share-close" aria-label="Tutup"><svg width="20" height="20" viewBox="0 0 24 24"> 4481 <path fill="currentColor" 4482 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" /> 4483 </svg></button> 4484 </div> 4485 <div class="pd-share-body"> 4486 <div class="pd-share-preview"><img 4487 src="https://cdn.datasirwg.cloud/KAWANMENANG/banner%20kawanmenang%20otomotif.webp" 4488 alt="KAWANMENANG" class="pd-share-preview-img"> 4489 <div class="pd-share-preview-info"> 4490 <h3 class="pd-share-preview-name">KAWANMENANG</h3> 4491 <p class="pd-share-preview-price">Rp 20.789.000</p> 4492 </div> 4493 </div> 4494 <p class="pd-share-label">Bagikan ke</p> 4495 <div class="pd-share-grid"><a href="#" class="pd-share-option" data-share="whatsapp" target="_blank" 4496 rel="noopener"><span class="pd-share-icon pd-share-icon-whatsapp"><svg viewBox="0 0 24 24"> 4497 <path fill="currentColor" 4498 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" /> 4499 </svg></span><span class="pd-share-name">WhatsApp</span></a><a href="#" 4500 class="pd-share-option" data-share="facebook" target="_blank" rel="noopener"><span 4501 class="pd-share-icon pd-share-icon-facebook"><svg viewBox="0 0 24 24"> 4502 <path fill="currentColor" 4503 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" /> 4504 </svg></span><span class="pd-share-name">Facebook</span></a><a href="#" 4505 class="pd-share-option" data-share="twitter" target="_blank" rel="noopener"><span 4506 class="pd-share-icon pd-share-icon-twitter"><svg viewBox="0 0 24 24"> 4507 <path fill="currentColor" 4508 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" /> 4509 </svg></span><span class="pd-share-name">Twitter</span></a><a href="#" 4510 class="pd-share-option" data-share="telegram" target="_blank" rel="noopener"><span 4511 class="pd-share-icon pd-share-icon-telegram"><svg viewBox="0 0 24 24">
4512 <path fill="currentColor" 4513 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" /> 4514 </svg></span><span class="pd-share-name">Telegram</span></a><a href="#" 4515 class="pd-share-option" data-share="email"><span class="pd-share-icon pd-share-icon-email"><svg 4516 viewBox="0 0 24 24"> 4517 <path fill="currentColor" 4518 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" /> 4519 </svg></span><span class="pd-share-name">Email</span></a><button type="button" 4520 class="pd-share-option" data-share="copy"><span class="pd-share-icon pd-share-icon-copy"><svg
4521 viewBox="0 0 24 24"> 4522 <path fill="currentColor" 4523 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" /> 4524 </svg></span><span class="pd-share-name">Salin Link</span></button><button type="button" 4525 class="pd-share-option" data-share="pdf"><span class="pd-share-icon pd-share-icon-pdf"><svg 4526 viewBox="0 0 24 24"> 4527 <path fill="currentColor" 4528 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" /> 4529 </svg></span><span class="pd-share-name">Export PDF</span></button></div> 4530 <div class="pd-share-copy-section"> 4531 <div class="pd-share-copy-input-wrap"><input type="text" class="pd-share-copy-input" 4532 id="pd-share-url-input" value="https://mirajautoservice.com/" readonly><button 4533 type="button" class="pd-share-copy-btn" id="pd-share-copy-url-btn"><svg viewBox="0 0 24 24" 4534 width="16" height="16"> 4535 <path fill="currentColor" 4536 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" /> 4537 </svg><span class="pd-share-copy-text">Salin</span></button></div> 4538 </div> 4539 </div> 4540 </div> 4541 </div> 4542 4543 <style> 4544 .toast-root { 4545 position: fixed; 4546 left: 50%; 4547 bottom: 18px; 4548 transform: translateX(-50%); 4549 display: flex; 4550 flex-direction: column; 4551 gap: 10px; 4552 z-index: 99999; 4553 pointer-events: none; 4554 max-width: min(92vw, 540px) 4555 } 4556 4557 .toast { 4558 display: grid; 4559 grid-template-columns: 28px 1fr auto; 4560 gap: 12px; 4561 background: #0b1220; 4562 color: #eef3ff; 4563 border: 1px solid rgba(255, 255, 255, .08); 4564 padding: 12px 14px; 4565 border-radius: 12px; 4566 box-shadow: 0 10px 30px rgba(10, 10, 20, .35); 4567 pointer-events: auto; 4568 overflow: hidden 4569 } 4570 4571 .toast .ico { 4572 align-self: start; 4573 margin-top: 2px 4574 } 4575 4576 .toast .ttl { 4577 font-weight: 700; 4578 line-height: 1.25; 4579 font-size: 14px; 4580 margin-bottom: 4px 4581 } 4582 4583 .toast .msg { 4584 opacity: .95; 4585 line-height: 1.45; 4586 font-size: 13px 4587 } 4588 4589 .toast .actions { 4590 display: flex; 4591 gap: 8px; 4592 align-self: center 4593 } 4594 4595 .toast .btn { 4596 background: #0ea5e9; 4597 color: #fff; 4598 border: 0; 4599 border-radius: 999px; 4600 padding: 8px 12px; 4601 font-size: 12px; 4602 font-weight: 700; 4603 cursor: pointer 4604 } 4605 4606 .toast .btn.alt { 4607 background: transparent; 4608 color: #8fb5ff; 4609 border: 1px solid rgba(143, 181, 255, .35) 4610 } 4611 4612 .toast .close { 4613 background: transparent; 4614 border: 0; 4615 color: #98a2b3; 4616 cursor: pointer; 4617 padding: 4px; 4618 margin-left: 6px 4619 } 4620 4621 .toast.success { 4622 border-left: 4px solid #22c55e 4623 } 4624 4625 .toast.info { 4626 border-left: 4px solid #0ea5e9 4627 } 4628 4629 .toast.warn { 4630 border-left: 4px solid #f59e0b 4631 } 4632 4633 .toast .progress { 4634 position: absolute; 4635 left: 0; 4636 bottom: 0; 4637 height: 3px; 4638 background: linear-gradient(90deg, #60a5fa, #22c55e); 4639 width: 100%; 4640 transform-origin: left; 4641 animation: toastBar linear forwards 4642 } 4643 4644 @keyframes toastBar { 4645 from { 4646 transform: scaleX(1) 4647 } 4648 4649 to { 4650 transform: scaleX(0) 4651 } 4652 } 4653 4654 @media(max-width:640px) { 4655 .toast { 4656 grid-template-columns: 24px 1fr auto; 4657 padding: 12px 4658 } 4659 4660 .toast .btn { 4661 padding: 7px 10px 4662 } 4663 } 4664 </style> 4665 <style> 4666 .toast .msg { 4667 word-break: break-word;
4668 overflow-wrap: anywhere; 4669 } 4670 4671 .toast-root { 4672 bottom: max(12px, env(safe-area-inset-bottom, 12px)); 4673 } 4674 4675 @media (max-width: 540px) { 4676 .toast-root { 4677 left: 0; 4678 right: 0; 4679 transform: none; 4680 padding: 0 12px; 4681 bottom: calc(max(12px, env(safe-area-inset-bottom, 12px)) + var(--fab-offset, 72px)); 4682 max-width: none; 4683 } 4684 4685 .toast { 4686 grid-template-columns: 1fr; 4687 /* 1 kolom */ 4688 position: relative; 4689 padding: 14px 14px 12px 14px; 4690 border-radius: 16px; 4691 } 4692 4693 .toast .ico { 4694 position: absolute; 4695 left: 14px; 4696 top: 14px; 4697 margin: 0; 4698 transform: translateY(1px); 4699 } 4700 4701 .toast .cnt { 4702 padding-left: 34px; 4703 } 4704 4705 .toast .ttl { 4706 font-size: 15px; 4707 margin-bottom: 6px; 4708 } 4709 4710 .toast .msg { 4711 font-size: 13px; 4712 opacity: .96; 4713 } 4714 4715 .toast .actions { 4716 margin-top: 12px; 4717 gap: 10px; 4718 width: 100%; 4719 display: grid; 4720 grid-template-columns: 1fr 1fr; 4721 } 4722 4723 .toast .btn { 4724 width: 100%; 4725 min-width: 0; 4726 padding: 10px 0; 4727 } 4728 4729 .toast .close { 4730 position: absolute; 4731 right: 6px; 4732 top: 6px; 4733 } 4734 } 4735 </style> 4736 4737
4737<script nonce="se3iyzEHMc9FQEB4wSyd0w=="> 4738 (function adjustToastFabOffset() { 4739 const root = document.getElementById('toastRoot'); 4740 if (!root) return; 4741 4742 function isVisible(el) { 4743 if (!el) return false; 4744 const cs = getComputedStyle(el); 4745 if (cs.display === 'none' || cs.visibility === 'hidden' || cs.opacity === '0') return false; 4746 const r = el.getBoundingClientRect(); 4747 return r.width > 0 && r.height > 0; 4748 } 4749 4750 function update() { 4751 const fab = document.getElementById('pd-mobile-fab'); 4752 let extra = 16; 4753 if (isVisible(fab)) { 4754 const h = Math.round(fab.getBoundingClientRect().height) || 56; 4755 extra = h + 16; // FAB height + margin 4756 } 4757 root.style.setProperty('--fab-offset', extra + 'px'); 4758 } 4759 4760 window.addEventListener('resize', update, { passive: true }); 4761 const fab = document.getElementById('pd-mobile-fab'); 4762 if (window.ResizeObserver && fab) { 4763 const ro = new ResizeObserver(update); 4764 ro.observe(fab); 4765 } 4766 4767 update(); 4768 })(); 4769 </script>
4769 4770 <div class="toast-root" id="toastRoot" aria-live="polite" aria-atomic="true"></div> 4771 4772
4772<script nonce="se3iyzEHMc9FQEB4wSyd0w==">(function () { 4773 const root = document.getElementById('toastRoot'); function svgIcon(kind) { if (kind === 'success') return '<svg width="24" height="24" viewBox="0 0 24 24" fill="#22c55e"><path d="M9 16.2l-3.5-3.5 1.4-1.4L9 13.4l7.7-7.7 1.4 1.4z"/></svg>'; if (kind === 'warn') return '<svg width="24" height="24" viewBox="0 0 24 24" fill="#f59e0b"><path d="M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z"/></svg>'; return '<svg width="24" height="24" viewBox="0 0 24 24" fill="#0ea5e9"><path d="M11 7h2v2h-2zm0 4h2v6h-2z"/><path d="M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2z" fill="none" stroke="#0ea5e9"/></svg>' } 4774 window.showToast = function (opts) { 4775 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>`; 4776 4777 const close = () => { 4778 if (!el.parentNode) return; 4779 el.style.transition = 'transform .2s ease, opacity .2s ease'; 4780 el.style.opacity = '0'; el.style.transform = 'translateY(10px)'; 4781 setTimeout(() => { if (el.parentNode) el.parentNode.removeChild(el); }, 220); 4782 }; 4783 4784 el.querySelector('.close').addEventListener('click', close); 4785 el.querySelectorAll('.actions .btn').forEach(btn => { 4786 btn.addEventListener('click', () => { 4787 const lab = btn.getAttribute('data-act'); 4788 try { 4789 (o.actions || []).forEach(a => { if (a.label === lab && typeof a.onClick === 'function') a.onClick(); }); 4790 } catch (_) { } 4791 close(); 4792 }); 4793 }); 4794 4795 root.appendChild(el); 4796 setTimeout(close, o.duration); 4797 return el; 4798 }; 4799 })(); 4800 4801 const _0x1a2b = [{ "url": "https://cdn.datasirwg.cloud/KAWANMENANG/banner%20kawanmenang%20otomotif.webp", "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://cdn.datasirwg.cloud/KAWANMENANG/banner%20kawanmenang%20otomotif.webp", "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://cdn.datasirwg.cloud/KAWANMENANG/banner%20kawanmenang%20otomotif.webp" }, { "url": "https://cdn.datasirwg.cloud/KAWANMENANG/banner%20kawanmenang%20otomotif.webp", "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://cdn.datasirwg.cloud/KAWANMENANG/banner%20kawanmenang%20otomotif.webp", "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
4801p2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-b-1761796941-776.webp" }, { "url": "https://cdn.datasirwg.cloud/KAWANMENANG/banner%20kawanmenang%20otomotif.webp", "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://cdn.datasirwg.cloud/KAWANMENANG/banner%20kawanmenang%20otomotif.webp", "alt": "Lenovo Lenovo Legion Go 8ASP2 - 83N0000RID /AMD Ryzen Z2 Extreme/32GB/1TB SSD/AMD Radeon Graphics/8.8\" WUXGA OLED Touch/Wi...", "slug": "lenovo-legion-go-8asp2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-b-1761796941-892.webp" }], _0x3c4d = "Lenovo Legion Go 8ASP2 - 83N0000RID /AMD Ryzen Z2 Extreme/32GB/1TB SSD/AMD Radeon Graphics/8.8\" WUXGA OLED Touch/Win 11 Home/Eclipse Black/3Y", _0x5e6f = "1S83N0880RID"; function getVariantSummaryText() { const a = document.getElementById('pd-variant-summary'); if (!a) return ''; const b = Array.from(a.querySelectorAll('.vs-item strong')).map(c => c.textContent.trim()).filter(Boolean); return b.length ? b.join(' / ') : '' } 4802 function encodeVariantHash(id) { if (!id || id <= 0) return ''; const xor = id ^ 0x4A5D; return xor.toString(36) } 4803 function decodeVariantHash(hash) { if (!hash) return 0; const xor = parseInt(hash, 36); return isNaN(xor) ? 0 : xor ^ 0x4A5D } 4804 4805 function showSuccessToast(productId, qty, variantId) { const variantText = getVariantSummaryText(); const skuText = (function () { const el = document.getElementById('pd-sku'); return el ? el.textContent.trim() : PD_SKU })(); showToast({ type: 'warn', title: 'Fitur Segera Hadir', message: `<strong>${escapeHtml(PD_NAME)}</strong>${variantText ? ` · <em>${escapeHtml(variantText)}</em>` : ''}<br>SKU: ${escapeHtml(skuText)} · Qty: ${qty}`, duration: 5000, actions: [{ label: 'Lihat Keranjang', onClick: () => { } }, { label: 'Lanjut Belanja', variant: 'alt', onClick: () => { } }] }); try { if (window.ga4Ecomm) { const qtySend = qty || 1; window.ga4Ecomm.addToCart({ currency: 'IDR', price: 20789000, quantity: qtySend, item_id: "1S83N0880RID", item_name: "Lenovo Legion Go 8ASP2 - 83N0000RID /AMD Ryzen Z2 Extreme/32GB/1TB SSD/AMD Radeon Graphics/8.8\" WUXGA OLED Touch/Win 11 Home/Eclipse Black/3Y", item_brand: "Lenovo ", item_category: (["Komputer & Laptop", "Laptop", "Gaming"] || []).join(' / ') }) } } catch (_) { } return false } function showErrorToast() { showToast({ type: 'error', title: 'Gagal Menambah ke Keranjang', message: 'Terjadi kesalahan saat memproses permintaan. Silakan coba lagi.', duration: 5000 }) } 4806 4807 function executeBuyNowLegacy(id, variantId) { 4808 const a = getVariantSummaryText(), b = (function () { const c = document.getElementById('pd-sku'); return c ? c.textContent.trim() : _0x5e6f })(); 4809 4810 let willRedirect = false; 4811 try { 4812 if (window.addToCart) { 4813 window.addToCart(id, 1, variantId); 4814 willRedirect = false; 4815 } 4816 } catch (_) { } 4817 4818 if (willRedirect) { 4819 showToast({ 4820 type: 'info', 4821 title: 'Menuju Keranjang', 4822 message: `<strong>${escapeHtml(PD_NAME)}</strong>${variantText ? ` · <em>${escapeHtml(variantText)}</em>` : ''}<br>SKU: ${escapeHtml(skuText)} · Qty: 1`, 4823 duration: 1800 4824 }); 4825 setTimeout(() => { window.location.href = '/keranjang'; }, 1200); 4826 } else { 4827 showToast({ 4828 type: 'warn', 4829 title: 'Fitur Beli Langsung Segera Hadir', 4830 message: `Sementara ini Anda bisa menambahkan produk ke keranjang terlebih dahulu.<br><strong>${escapeHtml(PD_NAME)}</strong>${variantText ? ` · <em>${escapeHtml(variantText)}</em>` : ''}`, 4831 duration: 6000, 4832 actions: [ 4833 { label: '+ Keranjang', onClick: () => { try { if (window.addToCart) window.addToCart(id, 1, variantId); } catch (_) { } } }, 4834 { label: 'Hubungi CS', variant: 'alt', onClick: () => { window.open('https://wa.me/6281380009898', '_blank'); } } 4835 ] 4836 }); 4837 } 4838 } 4839 4840 document.addEventListener('DOMContentLoaded', function () { var a = document.getElementById('pd-buy-form'); if (a) { a.addEventListener('submit', function (e) { var b = parseInt(a.getAttribute('data-pid'), 10) || 0; if (window.addToCartSubmit) { return window.addToCartSubmit(e, b) } }) } }); document.addEventListener('DOMContentLoaded', function () { var a = document.getElementById('btn-buy'); if (a) { a.addEventListener('click', function () { var b = a.getAttribute('data-id'); buyNow(b) }) } }); 4841 4842 function _0x2m3n(s) { return String(s || '').replace(/[&<>"']/g, m => ({ '&': '&', '<': '<', '>': '>', '"': '"', "'": ''' }[m])) } 4843 4844 (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') } }) })(); 4845 4846 (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;
4846 slides.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 }) })(); 4847 4848 /* ================= Simulasi Cicilan ================= */ 4849 (function initInstallmentList() { 4850 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' } 4851 4852 function _0x4o5p(bank) { const a = getBasePrice(); listEl.innerHTML = '';
4852 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' } 4853 4854 card.addEventListener('click', function (ev) { const a = ev.target.closest('.bank-tab'); if (!a) return; card.querySelectorAll('.bank-tab').forEach(b => { b.classList.remove('active'); b.setAttribute('aria-selected', 'false') }); a.classList.add('active'); a.setAttribute('aria-selected', 'true'); _0x4o5p(a.dataset.bank) }); 4855 4856 window.instSetBasePrice = function (newPrice) { setBasePrice(newPrice); _0x4o5p(activeBank()) }; _0x4o5p(activeBank()); 4857 })(); 4858 4859 /* ====== Fokus gambar varian ====== */ 4860 function _0x6q7r(s) { return String(s || '').toLowerCase().replace(/[^a-z0-9]+/g, '') } function _0x8s9t(u) { try { return new URL(u, window.location.origin).pathname.split('/').pop().toLowerCase() } catch (e) { try { return (u || '').split('/').pop().toLowerCase() } catch (_) { return '' } } } 4861 function _0xau1v(url, altOpt) { 4862 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 } } 4863 if (c) { 4864 const targetName = _0x8s9t(url); 4865 const slideImg = Array.from(c.querySelectorAll('img')).find(im => _0x8s9t(im.src) === targetName); 4866 if (slideImg) { 4867 4868 try { 4869 const container = c; 4870 const imgRect = slideImg.getBoundingClientRect(); 4871 const contRect = container.getBoundingClientRect(); 4872 const offsetLeft = slideImg.offsetLeft - container.offsetLeft; 4873 const center = offsetLeft - (container.clientWidth - slideImg.clientWidth) / 2; 4874 container.scrollTo({ left: Math.max(0, center), behavior: 'smooth' }); 4875 } catch (_) { 4876 4877 slideImg.scrollIntoView({ behavior: 'smooth', inline: 'center', block: 'nearest' }); 4878 } 4879 } 4880 } 4881 } 4882 function findImageForVariant(variant) { 4883 if (!variant || !variant.attrs) return null; 4884 const tokens = []; 4885 try { 4886 Object.values(variant.attrs).forEach(v => { 4887 if (!v) return; 4888 const raw = String(v); 4889 tokens.push(raw); 4890 tokens.push(normalize(raw)); 4891 }); 4892 } catch (_) { } 4893 if (variant.sku) { 4894 tokens.push(String(variant.sku)); 4895 tokens.push(normalize(String(variant.sku))); 4896 } 4897 if (variant.image_url) { 4898 tokens.push(String(variant.image_url)); 4899 } 4900 let best = null; 4901 let bestScore = -1; 4902 4903 for (const g of (galleryData || [])) { 4904 const slugN = normalize(g.slug || ''); 4905 const altN = normalize(g.alt || ''); 4906 const file = _0x8s9t(g.url || ''); 4907 const fileN = normalize(file); 4908 const imgU = g.url; 4909 4910 for (const t of tokens) { 4911 const tN = normalize(t); 4912 if (!tN) continue; 4913 4914 let score = -1; 4915 if (imgU === tN) score = 300; 4916 if (slugN && slugN === tN) score = 300; 4917 else if (fileN && fileN.includes(tN)) score = 200; 4918 else if (altN && altN.includes(tN)) score = 120; 4919 4920 if (score > bestScore) { 4921 bestScore = score; 4922 best = g; 4923 } 4924 if (bestScore >= 300) break; 4925 } 4926 if (bestScore >= 300) break; 4927 } 4928 return bestScore >= 120 ? best : null; 4929 } 4930 function _0xey3z(variant) { const a = _0xcw2x(variant); if (a && a.url) { _0xau1v(a.url, a.alt || '') } } 4931 4932 /* ====== Layout mobile ====== */ 4933 (function _0xg04h() { 4934 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'), c
4934ompareSection = document.querySelector('.pd-compare-section'); if (!a || !b || !c || !d || !e) return; 4935 4936 let pricePlaced = false; 4937 let varPlaced = false; 4938 let titlePlaced = false; 4939 let promoPlaced = false; 4940 const mq = window.matchMedia('(max-width: 640px)'); 4941 4942 function apply() { 4943 if (mq.matches) { 4944 if (!titlePlaced && a && titleRow && d.contains(titleRow)) { try { a.appendChild(titleRow); titlePlaced = true; } catch (_) { } } 4945 if (!pricePlaced && a && b) { try { a.appendChild(b); pricePlaced = true; } catch (_) { } } 4946 if (!varPlaced && f && d && e) { 4947 try { 4948 f.hidden = false; 4949 if (i && !f.contains(i)) f.appendChild(i); 4950 if (g && !f.contains(g)) f.appendChild(g); 4951 if (d.contains(e)) d.insertBefore(f, e); 4952 varPlaced = true; 4953 } catch (_) { } 4954 } 4955 if (!promoPlaced && promoBanner && compareSection && compareSection.parentNode) { 4956 try { 4957 compareSection.parentNode.insertBefore(promoBanner, compareSection); 4958 promoPlaced = true; 4959 } catch (_) { } 4960 } 4961 } else { 4962 if (titlePlaced && titleRow && d) { 4963 try { 4964 const vcombined = document.getElementById('pd-variant-combined'); 4965 if (vcombined && d.contains(vcombined)) { 4966 d.insertBefore(titleRow, vcombined); 4967 } else { 4968 d.insertBefore(titleRow, d.firstChild); 4969 } 4970 titlePlaced = false; 4971 } catch (_) { } 4972 } 4973 if (pricePlaced && b && c && c.parentNode) { 4974 try { c.parentNode.insertBefore(b, c.nextSibling); pricePlaced = false; } catch (_) { } 4975 } 4976 if (varPlaced) { 4977 try { 4978 if (i && j && j.parentNode && !j.parentNode.contains(i)) j.parentNode.insertBefore(i, j.nextSibling); 4979 if (g && h && h.parentNode && !h.parentNode.contains(g)) h.parentNode.insertBefore(g, h.nextSibling); 4980 if (f) { f.hidden = true; f.innerHTML = ''; } 4981 varPlaced = false; 4982 } catch (_) { } 4983 } 4984 if (promoPlaced && promoBanner && b) { 4985 try { 4986 b.appendChild(promoBanner); 4987 promoPlaced = false; 4988 } catch (_) { } 4989 } 4990 } 4991 } 4992 4993 mq.addEventListener ? mq.addEventListener('change', apply) : mq.addListener(apply); 4994 apply(); 4995 4996 const fab = document.getElementById('pd-mobile-fab'); 4997 if (fab) { 4998 const pid = parseInt(fab.getAttribute('data-pid') || '0', 10) || 325; 4999 const btnCart = document.getElementById('mf-cart'); 5000 5001 if (btnCart) btnCart.addEventListener('click', function () { 5002 const varInput = document.getElementById('pd-variant-id'); 5003 const variantId = varInput ? parseInt(varInput.value || '0', 10) : 0; 5004 try { if (window.addToCart) addToCart(pid, 1, variantId); } catch (_) { } 5005 const variantText = getVariantSummaryText(); 5006 const skuText = (function () { const el = document.getElementById('pd-sku'); return el ? el.textContent.trim() : PD_SKU; })(); 5007 showToast({ 5008 type: 'success', 5009 title: 'Berhasil ditambahkan ke Keranjang', 5010 message: `<strong>${escapeHtml(PD_NAME)}</strong>${variantText ? ` · <em>${escapeHtml(variantText)}</em>` : ''}<br>SKU: ${escapeHtml(skuText)} · Qty: 1`, 5011 duration: 5000, 5012 actions: [ 5013 { label: 'Lihat Keranjang', onClick: () => { window.location.href = '/keranjang'; } }, 5014 { label: 'Lanjut Belanja', variant: 'alt', onClick: () => { } } 5015 ] 5016 }); 5017 }); 5018 } 5019 })(); 5020 5021 /* ====== Auto-hide installment banner if sidebar too tall (Desktop only) ====== */ 5022 (function () { 5023 function adjustSidebarBanner() { 5024 if (window.innerWidth <= 768) return; 5025 const sidebar = document.querySelector('.pd-sidebar'); 5026 const infoCard = document.querySelector('.pd-info-card'); 5027 const banner = document.querySelector('.pd-side-card.inst-alt-banner.inst-alt-banner--compact'); 5028 if (!sidebar || !infoCard || !banner) return; 5029 const sidebarHeight = sidebar.offsetHeight; 5030 const infoCardHeight = infoCard.offsetHeight; 5031 if (sidebarHeight > infoCardHeight) { 5032 banner.style.display = 'none'; 5033 } else { 5034 banner.style.display = ''; 5035 } 5036 } 5037 if (document.readyState === 'loading') { 5038 document.addEventListener('DOMContentLoaded', adjustSidebarBanner); 5039 } else { 5040 adjustSidebarBanner(); 5041 } 5042 let resizeTimer; 5043 window.addEventListener('resize', function () { 5044 clearTimeout(resizeTimer); 5045 resizeTimer = setTimeout(adjustSidebarBanner, 250); 5046 }); 5047 const pwpSection = document.getElementById('pwp-deals-section'); 5048 if (pwpSection) { 5049 const observer = new MutationObserver(function (mutations) {
5050 let shouldRecheck = false; 5051 mutations.forEach(function (mutation) { 5052 if (mutation.type === 'attributes' && mutation.attributeName === 'hidden') { 5053 shouldRecheck = true; 5054 } else if (mutation.type === 'childList' && mutation.addedNodes.length > 0) { 5055 shouldRecheck = true; 5056 } 5057 }); 5058 if (shouldRecheck) { 5059 setTimeout(adjustSidebarBanner, 100); 5060 } 5061 }); 5062 observer.observe(pwpSection, { 5063 attributes: true, 5064 childList: true, 5065 subtree: true 5066 }); 5067 } 5068 window.adjustSidebarBanner = adjustSidebarBanner; 5069 })(); 5070 5071 /* ====== Global constants ====== */ 5072 const IS_DIGITAL = false; 5073 const IS_PREORDER = false; 5074 5075 /* ====== Variants state (REVISED) ====== */ 5076 (function initVariants() { 5077 const _0x7g8h = []; window.variants = _0x7g8h; 5078 window.isPreorderProduct = false; 5079 const attrOrder = []; 5080 5081 if (!variants.length || !attrOrder.length) return; 5082 5083 function comboKey(sel) { 5084 return attrOrder.map(a => a + '=' + (sel[a] ?? '')).join('|'); 5085 } 5086 5087 const variantMap = {};
5088 variants.forEach(v => { 5089 const key = comboKey(v.attrs); 5090 variantMap[key] = v; 5091 }); 5092 5093 function readSelection() { 5094 const sel = {}; 5095 attrOrder.forEach(a => { 5096 const r = document.querySelector(`.v-group[data-attr="${CSS.escape(a)}"] input[type=radio]:checked`); 5097 sel[a] = r ? r.value : ''; 5098 }); 5099 return sel; 5100 } 5101 5102 function findVariant(sel) { 5103 return variantMap[comboKey(sel)] || null; 5104 } 5105 5106 function autoFillMissing(sel) { 5107 let changed = false; 5108 for (const a of attrOrder) { 5109 if (sel[a]) continue; 5110 const possible = []; 5111 const seen = new Set(); 5112 variants.forEach(v => { 5113 let ok = true; 5114 for (const a2 of attrOrder) { 5115 if (a2 === a) continue; 5116 if (sel[a2] && v.attrs[a2] !== sel[a2]) { ok = false; break; } 5117 } 5118 if (ok) { 5119 const val = v.attrs[a]; 5120 if (!seen.has(val)) { seen.add(val); possible.push(val); } 5121 } 5122 }); 5123 if (possible.length === 1) { 5124 const val = possible[0]; 5125 const input = document.querySelector(`.v-group[data-attr="${CSS.escape(a)}"] input[type=radio][value="${CSS.escape(val)}"]`); 5126 if (input && !input.checked) { input.checked = true; sel[a] = val; changed = true; } 5127 } 5128 } 5129 return changed; 5130 } 5131 5132 function rupiah(n) { 5133 n = parseInt(n || 0, 10) || 0; 5134 return 'Rp ' + n.toString().replace(/\B(?=(\d{3})+(?!\d))/g, '.'); 5135 } 5136 5137 function focusGalleryByUrl(imageUrl) { 5138 const isMobile = window.matchMedia && window.matchMedia('(max-width: 640px)').matches; 5139 if (isMobile) { 5140 _0xau1v(imageUrl); 5141 return; 5142 } 5143 5144 const gallery = document.getElementById('pd-thumb-gallery'); 5145 const targetName = _0x8s9t(imageUrl); 5146 5147 if (gallery) { 5148 const btns = Array.from(gallery.querySelectorAll('.pd-thumb-btn')); 5149 const btn = btns.find(b => _0x8s9t(b.getAttribute('data-full') || '') === targetName); 5150 if (btn) { btn.click(); return; } 5151 } 5152 5153 _0xau1v(imageUrl); 5154 } 5155 5156 5157 function formatStockLabel(n) { n = parseInt(n || 0, 10) || 0; return (n > 10) ? '10+' : String(n) } 5158 function updateBranchPopover(v) { try { if (!v) return; const a = document.getElementById('sp-qty-meg'), b = document.getElementById('sp-qty-mdf'), c = document.getElementById('sp-qty-bda'); if (a) a.textContent = formatStockLabel(Math.max(0, v.smm | 0)); if (b) b.textContent = formatStockLabel(Math.max(0, v.smf | 0)); if (c) c.textContent = formatStockLabel(Math.max(0, v.sba | 0)) } catch (_) { } } 5159 5160 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) } 5161 5162 function applyVariant(v, focusImage = true) { 5163 const elCur = document.getElementById('pd-price-current'); 5164 const elOri = document.getElementById('pd-price-original'); 5165 const elDisc = document.getElementById('pd-discount-badge'); 5166 const elSku = document.getElementById('pd-sku'); 5167 const elStock = document.getElementById('pd-stock-badge'); 5168 const elQty = document.getElementById('qty'); 5169 const btnAdd = document.getElementById('btn-add-cart'); 5170 const btnBuy = document.getElementById('btn-buy'); 5171 const hidVar = document.getElementById('pd-variant-id'); 5172 5173 const mfCart = document.getElementById('mf-cart'); 5174 const mfBuy = document.getElementById('mf-buy'); 5175 const fab = document.getElementById('pd-mobile-fab'); 5176 5177 if (hidVar) hidVar.value = v ? v.id : 0; 5178 if (elCur) elCur.textContent = rupiah(v ? v.final : 0); 5179 if (elSku && v && v.sku) elSku.textContent = v.sku; 5180 5181 if (v && v.ori > v.final) { 5182 if (elOri) { elOri.style.display = 'inline'; elOri.textContent = rupiah(v.ori); } 5183 if (elDisc) { elDisc.style.display = 'inline'; elDisc.textContent = '-' + (v.disc || 0) + '%'; } 5184 } else { 5185 if (elOri) elOri.style.display = 'none'; 5186 if (elDisc) elDisc.style.display = 'none'; 5187 } 5188 5189 const stock = v ? (parseInt(v.stock || 0, 10) || 0) : 0; 5190 let effectiveStock = stock; 5191 let isActivePreorder = false; 5192 if (window.isPreorderProduct && v && 'preorder_remaining' in v && v.preorder_remaining !== null) { 5193 effectiveStock = parseInt(v.preorder_remaining, 10); 5194 if (isNaN(effectiveStock)) effectiveStock = 0; 5195 isActivePreorder = true; 5196 } 5197 if (elStock) { 5198 elStock.classList.remove('in', 'out'); 5199 if (effectiveStock > 0) { 5200 elStock.classList.add('in'); 5201 elStock.textContent = IS_DIGITAL ? 'Tersedia' : (isActivePreorder ? 'Sisa Slot: ' + effectiveStock : 'Stok: ' + formatStockLabel(effectiveStock)); 5202 } else { 5203 elStock.classList.add('out'); 5204 elStock.textContent = 'Habis'; 5205 } 5206 } 5207 if (elQty) { 5208 elQty.max = String(effectiveStock > 0 ? effectiveStock : 0); 5209 if (effectiveStock <= 0) { elQty.value = '0'; elQty.disabled = true; } 5210 else { if (parseInt(elQty.value || '1', 10) < 1) elQty.value = '1'; elQty.disabled = false; } 5211 } 5212 5213 const shouldDisable = !(v && effectiveStock > 0); 5214 const updateButtons = () => { 5215 const btnAddCart = document.getElementById('btn-add-cart'); 5216 const btnBuyNow = document.getElementById('btn-buy'); 5217 const mobileCart = document.getElementById('mf-cart'); 5218 const mobileBuy = document.getElementById('mf-buy'); 5219 [btnAddCart, btnBuyNow, mobileCart, mobileBuy].forEac
5219h(btn => { 5220 if (!btn) return; 5221 if (shouldDisable) { 5222 btn.disabled = true; 5223 btn.setAttribute('disabled', 'disabled'); 5224 btn.classList.add('stock-disabled'); 5225 btn.setAttribute('data-stock-blocked', 'true'); 5226 btn.setAttribute('data-stock-reason', window.isPreorderProduct ? 'Pre-order habis' : 'Stok habis'); 5227 } else { 5228 btn.disabled = false; 5229 btn.removeAttribute('disabled'); 5230 btn.classList.remove('stock-disabled'); 5231 btn.removeAttribute('data-stock-blocked'); 5232 btn.removeAttribute('data-stock-reason'); 5233 } 5234 }); 5235 }; 5236 updateButtons(); 5237 setTimeout(updateButtons, 10); 5238 setTimeout(updateButtons, 50); 5239 setTimeout(updateButtons, 100); 5240 if (mfBuy && v) { 5241 const voucherBtn = document.getElementById('btn-buy-voucher'); 5242 const voucherCode = fab ? fab.dataset.voucherCode : ''; 5243 let voucherDiscount = 0; 5244 5245 if (voucherBtn && voucherCode) { 5246 const vType = voucherBtn.dataset.voucherType; 5247 const vValue = parseFloat(voucherBtn.dataset.voucherValue) || 0; 5248 const vMax = parseFloat(voucherBtn.dataset.voucherMax) || 0; 5249 const finalPrice = v.final || 0; 5250 if (vType && vValue > 0) { 5251 voucherDiscount = calcVoucherDisc(vType, vValue, finalPrice, vMax); 5252 if (fab) fab.dataset.voucherValue = voucherDiscount.toString(); 5253 } 5254 } 5255 5256 const finalPrice = v.final || 0; 5257 const textEl = mfBuy.querySelector('.mf-buy-text'); 5258 const priceEl = mfBuy.querySelector('.mf-buy-price'); 5259 5260 if (effectiveStock > 0) { 5261 if (IS_PREORDER) { 5262 if (textEl) textEl.textContent = 'Pre Order Sekarang'; 5263 if (priceEl) priceEl.textContent = rupiah(finalPrice); 5264 } else if (voucherCode && voucherDiscount > 0) { 5265 if (textEl) textEl.textContent = 'Beli dengan Voucher'; 5266 if (priceEl) priceEl.textContent = rupiah(Math.max(0, finalPrice - voucherDiscount)); 5267 } else { 5268 if (textEl) textEl.textContent = 'Beli Sekarang'; 5269 if (priceEl) priceEl.textContent = rupiah(finalPrice); 5270 } 5271 } else { 5272 if (textEl) textEl.textContent = 'Stok Habis'; 5273 if (priceEl) priceEl.textContent = rupiah(finalPrice); 5274 } 5275 } 5276 5277 const isMobile = window.initMobile ?? 0; 5278 if (window.instSetBasePrice) window.instSetBasePrice(v ? (isMobile == '1' ? v.ori : v.final) : 0); 5279 if (window.updateSoldBySku) window.updateSoldBySku(v.sku); 5280 updateBranchPopover(v); 5281 if (v && v.image_url && focusImage) focusGalleryByUrl(v.image_url); 5282 if (v) { 5283 window.dispatchEvent(new CustomEvent('pd-variant-changed', { 5284 detail: { 5285 price: v.final, 5286 originalPrice: v.ori, 5287 discount: v.disc, 5288 stock: effectiveStock, 5289 sku: v.sku, 5290 variant_id: v.id 5291 } 5292 })); 5293 5294 const encodedHash = encodeVariantHash(v.id); 5295 if (encodedHash && window.history && window.history.replaceState) { 5296 const newHash = '#v=' + encodedHash; 5297 const newUrl = window.location.pathname + window.location.search + newHash; 5298 window.history.replaceState(null, '', newUrl); 5299 } 5300 } 5301 } 5302 5303 let sel = readSelection(); 5304 if (autoFillMissing(sel)) sel = readSelection(); 5305 5306 let v = findVariant(sel); 5307 if (!v) { 5308 const candidates = variants.filter(variant => { 5309 return attrOrder.every(a => { 5310 if (!sel[a]) return true; 5311 return variant.attrs[a] === sel[a]; 5312 }); 5313 }); 5314 if (candidates.length >= 1) { 5315 v = candidates[0]; 5316 attrOrder.forEach(a => sel[a] = v.attrs[a]); 5317 attrOrder.forEach(a => { 5318 const val = sel[a]; 5319 const input = document.querySelector(`.v-group[data-attr="${CSS.escape(a)}"] input[type=radio][value="${CSS.escape(val)}"]`); 5320 if (input) input.checked = true; 5321 }); 5322 } 5323 } 5324 5325 const initSel = readSelection(); 5326 const initVar = findVariant(initSel) || variants[0] || null; 5327 if (document.readyState === 'loading') { 5328 document.addEventListener('DOMContentLoaded', () => applyVariant(initVar, false)); 5329 } else { 5330 applyVariant(initVar, false); 5331 } 5332 5333 function updateSummary(sel) { Object.entries(sel).forEach(([a, val]) => { const el = document.getElementById('vs-' + a); if (el) el.textContent = val || '-' }) } 5334 function refreshOptions(sel) { 5335 attrOrder.forEach(a => { 5336 const group = document.querySelector(`.v-group[data-attr="${CSS.escape(a)}"]`); 5337 if (!group) return; 5338 const chips = group.querySelectorAll('.v-chip'); 5339 chips.forEach(ch => { 5340 const val = ch.getAttribute('data-value'); 5341 const possible = variants.some(v => { 5342 if (v.attrs[a] !== val) return false; 5343 for (const a2 of attrOrder) { 5344 if (a2 === a) continue; 5345 if (sel[a2] && v.attrs[a2] !== sel[a2]) return false; 5346 } 5347 return true; 5348 }); 5349 const input = ch.querySelector('input[type=radio]'); 5350 const disabled = !possible; 5351 if (input) input.disabled = disabled; 5352 ch.classList.toggle('disabled', disabled); 5353 5354 let candidateVariant = null; 5355 if (possible) { 5356 candidateVariant = variants.find(v => { 5357 if (v.attrs[a] !== val) return false; 5358 for (const a2 of attrOrder) { 5359 if (a2 === a) continue; 5360 if (sel[a2] && v.attrs[a2] !== sel[a2]) return false; 5361 } 5362 return true; 5363 }); 5364 } 5365 const outOfStock = candidateVariant ? (window.isPreorderProduct && candidateVariant.preorder_remaining !== null ? candidateVariant.preorder_remaining <= 0 : candidateVariant.stock <= 0) : false; 5366 ch.classList.toggle('out', !disabled && outOfStock); 5367 const badge = ch.querySelector('.chip-badge'); 5368 if (badge) badge.hidden = !(candidateVariant && outOfStock); 5369 }); 5370 group.querySelectorAll('.v-chip').forEach(ch => { 5371 const input = ch.querySelector('input[type=radio]'); 5372 ch.classList.toggle('selected', input && input.checked); 5373 }); 5374 }); 5375 } 5376 updateSummary(sel); 5377 refreshOptions(sel); 5378 document.querySelectorAll('.v-chip').forEach(chip => { const input = chip.querySelector('input[type=radio]'); if (input && input.checked) { chip.classList.add('selected'); } }); 5379 5380 const container = document.getElementById('pd-variants'); 5381 container && container.addEventListener('change', function (ev) { 5382 const radio = ev.target.closest('input[type=radio]'); 5383 if (!radio) return; 5384 sel = readSelection(); 5385 if (autoFillMissing(sel)) sel = readSelection(); 5386 const chosen = findVariant(sel); 5387 applyVariant(chosen || null, true); 5388 5389 updateSummary(sel); 5390 refreshOptions(sel); 5391 }); 5392 5393 window.applyVariant = applyVariant; 5394 })(); 5395 5396 (function cleanBrokenDescImages() { 5397 const containers = [ 5398 document.querySelector('.pd-full-desc-body'), 5399 document.querySelector('.pd-short-desc')
5400 ].filter(Boolean); 5401 5402 containers.forEach(root => { 5403 const imgs = root.querySelectorAll('img'); 5404 imgs.forEach(img => { 5405 if (img.complete && img.naturalWidth === 0) { 5406 img.remove(); 5407 return; 5408 } 5409 img.addEventListener('error', () => { 5410 img.remove(); 5411 }, { once: true }); 5412 }); 5413 }); 5414 })(); 5415 5416 /* ====== Scroll To Top ====== */ 5417 (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' }) }) })(); 5418 5419 /* Format stok 10+ */ 5420 function _0xk67l(n) { n = parseInt(n || 0, 10) || 0; return n > 10 ? '10+' : String(n) } 5421 5422 /* Toggle popover stok per cabang */ 5423 (function _0xm89n() { 5424 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 = '' } } 5425 function e() { d(); b.classList.add('show'); a.setAttribute('aria-expanded', 'true'); b.setAttribute('aria-hidden', 'false'); document.addEventListener('click', g, { capture: true }); window.addEventListener('resize', d, { passive: true }); window.addEventListener('scroll', d, { passive: true }) } function f() { b.classList.remove('show'); a.setAttribute('aria-expanded', 'false'); b.setAttribute('aria-hidden', 'true'); document.removeEventListener('click', g, { capture: true }); window.removeEventListener('resize', d); window.removeEventListener('scroll', d) } function g(h) { if (b.contains(h.target) || a.contains(h.target)) return; f() } 5426 a.addEventListener('click', function (h) { h.preventDefault(); b.classList.contains('show') ? f() : e() }); if (c) c.addEventListener('click', f) 5427 })(); 5428 5429 /* ===== Share Product Modal ===== */ 5430 (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://mirajautoservice.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
5430= encodeURIComponent(i), q = encodeURIComponent(g); let r = ''; switch (n) { case 'whatsapp': r = `https://wa.me/?text=${p}${o}`; break; case 'facebook': r = `https://www.facebook.com/sharer/sharer.php?u=${o}`; break; case 'twitter': r = `https://twitter.com/intent/tweet?text=${p}${o}`; break; case 'telegram': r = `https://t.me/share/url?url=${o}&text=${p}`; break; case 'email': r = `mailto:?subject=${encodeURIComponent('ð¥ Cek Produk Keren Ini!')}&body=${p}${o}`; window.location.href = r; k(); return; case 'copy': s(); return; case 'pdf': const ps = document.querySelector('.product-single'); if (ps) { ps.setAttribute('data-print-date', new Date().toLocaleDateString('id-ID', { year: 'numeric', month: 'long', day: 'numeric' })) } k(); setTimeout(function () { window.print(); try { if (window.ga4Ecomm && window.ga4Ecomm.trackEvent) window.ga4Ecomm.trackEvent('share', { method: 'pdf_export', content_type: 'product', item_id: "1S83N0880RID" }) } catch (_) { } }, 300); return }if (r) { window.open(r, '_blank', 'noopener,noreferrer'); try { if (window.ga4Ecomm && window.ga4Ecomm.trackEvent) window.ga4Ecomm.trackEvent('share', { method: n, content_type: 'product', item_id: "1S83N0880RID" }) } catch (_) { } } }); function s() { if (!e) return; e.select(); e.setSelectionRange(0, 99999); try { if (navigator.clipboard && navigator.clipboard.writeText) { navigator.clipboard.writeText(f).then(function () { t() }).catch(function () { document.execCommand('copy'); t() }) } else { document.execCommand('copy'); t() } } catch (u) { console.error('Failed to copy:', u) } } function t() { if (!d) return; const v = d.innerHTML; d.classList.add('copied'); d.innerHTML = '<svg viewBox="0 0 24 24" width="16" height="16"><path fill="currentColor" d="M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"/></svg><span class="pd-share-copy-text">Tersalin!</span>'; if (window.showToast) showToast({ type: 'success', title: '⨠Link Tersalin!', message: 'Link produk berhasil disalin. Yuk bagikan ke teman!', duration: 3000 }); setTimeout(function () { d.classList.remove('copied'); d.innerHTML = v }, 2000) } if (d) d.addEventListener('click', s); if (navigator.share) { const shareHandler = function (w) { w.preventDefault(); navigator.share({ title: g, text: i + f, url: f }).catch(function (x) { console.log('Native share cancelled or failed:', x) }) }; if (a) a.addEventListener('dblclick', shareHandler); if (z) z.addEventListener('dblclick', shareHandler) } })(); 5431 5432 /* ===== Embedding variants (server â client) ===== */ 5433 (function () { 5434 window.__PD_VARIANTS_WITH_BRANCH__ = []; 5435 })(); 5436 5437 /* ===== Helper: update angka popover ===== */ 5438 function updateStockPopoverForVariant(v) { 5439 try { 5440 const elMeg = document.getElementById('sp-qty-meg'); 5441 const elMdf = document.getElementById('sp-qty-mdf'); 5442 const elBda = document.getElementById('sp-qty-bda'); 5443 5444 if (typeof v?.smm === 'number' && elMeg) elMeg.textContent = formatStockLabel(Math.max(0, v.smm | 0)); 5445 if (typeof v?.smf === 'number' && elMdf) elMdf.textContent = formatStockLabel(Math.max(0, v.smf | 0)); 5446 if (typeof v?.sba === 'number' && elBda) elBda.textContent = formatStockLabel(Math.max(0, v.sba | 0)); 5447 } catch (_) { } 5448 } 5449 5450 /* ===== applyVariant: 10+ dan update popover ===== */ 5451 (function patchApplyVariant() { 5452 if (typeof applyVariant !== 'function') return; 5453 const original = applyVariant; 5454 window.applyVariant = function (v) { 5455 original(v); 5456 5457 try { 5458 const elStock = document.getElementById('pd-stock-badge'); 5459 if (elStock) { 5460 let txt = elStock.textContent || ''; 5461 let m = txt.match(/\d+/); 5462 if (m) { 5463 const n = parseInt(m[0] || '0', 10) || 0; 5464 elStock.textContent = (n > 0) ? ('Stok: ' + formatStockLabel(n)) : 'Habis'; 5465 } 5466 } 5467 } catch (_) { } 5468 if (window.__PD_VARIANTS_WITH_BRANCH__ && v) { const vv = window.__PD_VARIANTS_WITH_BRANCH__.find(x => x.id === v.id) || v; updateStockPopoverForVariant(vv) } 5469 }; 5470 })(); 5471 5472 (function initCurrentVariantBranch() { 5473 const list = window.__PD_VARIANTS_WITH_BRANCH__ || []; 5474 if (!list.length) return; 5475 const hid = document.getElementById('pd-variant-id'); 5476 const vid = hid ? parseInt(hid.value || '0', 10) : 0; 5477 const current = list.find(x => x.id === vid) || list[0] || null; 5478 if (current) updateStockPopoverForVariant(current); 5479 })(); 5480 5481 (function () { 5482 if (!window.ga4Ecomm) return; 5483 const catSegs = ["Komputer & Laptop", "Laptop", "Gaming"]; 5484 window.ga4Ecomm.viewItem({ 5485 currency: 'IDR', 5486 value: 20789000, 5487 item_id: "1S83N0880RID", 5488 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", 5489 item_brand: "Lenovo ",
5490 item_category: catSegs && catSegs.length ? catSegs.join(' / ') : '' 5491 }); 5492 })(); 5493 5494 (function patchApplyVariantFocus() { 5495 if (typeof applyVariant !== 'function') return; 5496 const original = applyVariant; 5497 window.applyVariant = function (v, focusImage = true) { 5498 5499 original(v, focusImage); 5500 5501 if (focusImage && v && v.image_url) { 5502 _0xau1v(v.image_url); 5503 } 5504 }; 5505 })(); 5506 5507 (function () { 5508 var soldMap = []; 5509 var soldTotalLabel = "Terjual 2"; 5510 5511 function formatSoldLabel(qty) { 5512 if (qty >= 1000000) { 5513 var v = Math.floor((qty / 100000)) / 10; 5514 return 'Terjual ' + (String(v).replace('.', ',')) + 'jt+'; 5515 } 5516 if (qty >= 1000) { 5517 var v2 = Math.floor((qty / 100)) / 10; 5518 return 'Terjual ' + (String(v2).replace('.', ',')) + 'rb+'; 5519 } 5520 if (qty >= 100) { 5521 var v2 = Math.floor((qty / 100)) * 100; 5522 return 'Terjual ' + (String(v2).replace('.', ',')) + '+'; 5523 } 5524 if (qty >= 10) { 5525 var v2 = Math.floor((qty / 10)) * 10; 5526 return 'Terjual ' + (String(v2).replace('.', ',')) + '+'; 5527 } 5528 return 'Terjual ' + (qty.toLocaleString('id-ID')); 5529 } 5530 5531 function updateSoldLabel(labelText) { 5532 var el = document.querySelector('#pd-sold-inline, [data-role="sold-chip"]'); 5533 if (el) el.textContent = labelText; 5534 } 5535 5536 window.updateSoldBySku = function (sku) { 5537 if (!sku || typeof sku !== 'string') { 5538 updateSoldLabel(soldTotalLabel); 5539 return; 5540 } 5541 var qty = soldMap[sku] || 0; 5542 updateSoldLabel(formatSoldLabel(qty)); 5543 }; 5544 5545 updateSoldLabel(soldTotalLabel); 5546 })(); 5547 5548 (function () { 5549 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) } }) } 5550 function getChatProductData() { const varInput = document.getElementById('pd-variant-id'); const variantId = varInput ? parseInt(varInput.value || '0', 10) : 0; const variantSummary = getVariantSummaryText(); const priceEl = document.getElementById('pd-price-current'); const currentPrice = priceEl ? priceEl.textContent.trim() : 'Rp 20.789.000'; const pd = { id: 325, name: "Lenovo Legion Go 8ASP2 - 83N0000RID \/AMD Ryzen Z2 Extreme\/32GB\/1TB SSD\/AMD Radeon Graphics\/8.8\" WUXGA OLED Touch\/Win 11 Home\/Ecl
5550ipse 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 } 5551 const ch = document.getElementById('pd-sticky-chat'); if (ch) { ch.addEventListener('click', function (e) { e.preventDefault(); if (!window.plazaChat) { console.warn('Chat widget not loaded'); return } window.plazaChat.attachProduct(getChatProductData()); window.plazaChat.openWidget() }) } const dch = document.getElementById('btn-chat-icon'); if (dch) { dch.addEventListener('click', function (e) { e.preventDefault(); if (!window.plazaChat) { console.warn('Chat widget not loaded'); return } window.plazaChat.attachProduct(getChatProductData()); window.plazaChat.openWidget() }) } const mch = document.getElementById('mf-chat'); if (mch) { mch.addEventListener('click', function (e) { e.preventDefault(); if (!window.plazaChat) { console.warn('Chat widget not loaded'); return } window.plazaChat.attachProduct(getChatProductData()); window.plazaChat.openWidget() }) } window.addEventListener('pd-variant-changed', function (e) { const d = e.detail || {}; if (d.price !== undefined) { const sp = document.getElementById('pd-sticky-price'); if (sp) { sp.textContent = formatRupiah(d.price) } } if (d.originalPrice !== undefined && d.originalPrice > d.price) { const so = document.getElementById('pd-sticky-price-original'); if (so) { so.textContent = formatRupiah(d.originalPrice); so.style.display = '' } } else { const so = document.getElementById('pd-sticky-price-original'); if (so) { so.style.display = 'none' } } if (d.discount !== undefined && d.discount > 0) { const sd = document.getElementById('pd-sticky-discount'); if (sd) { sd.textContent = '-' + d.discount + '%'; sd.style.display = '' } } else { const sd = document.getElementById('pd-sticky-discount'); if (sd) { sd.style.display = 'none' } } const hs = d.stock > 0; if (ac) { ac.disabled = !hs } if (by) { by.disabled = !hs } }); function formatRupiah(n) { return 'Rp' + Math.floor(n).toLocaleString('id-ID') } 5552 })(); 5553 5554 (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) }
5554 function fr(a) { return 'Rp' + Math.floor(a).toLocaleString('id-ID') } })(); 5555 </script>
5555 5556
5556<script nonce="se3iyzEHMc9FQEB4wSyd0w=="> 5557 window.PD_ID = 325; window.PD_NAME = _0x3c4d; window.PD_SKU = _0x5e6f; window.PD_CATEGORY_PATH = "Komputer & Laptop/Laptop/Gaming"; window.PD_BEST_VOUCHER = null; 5558 window.IS_DIGITAL = IS_DIGITAL; 5559 window.isPreorderProduct = false; 5560 window.PD_PREORDER_DATA = null; 5561 </script>
5561 5562 5563
5563<script src="https://www.plazaindonesia.com/assets/js/pd-lightbox.js" nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
5563 5564
5564<script src="https://www.plazaindonesia.com/assets/js/cart.js" defer nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
5564 5565
5565<script src="https://www.plazaindonesia.com/assets/js/stock-validator-vanilla.js" 5566 nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
5566 5567
5567<script src="https://www.plazaindonesia.com/assets/js/pd-addtocart.js" defer 5568 nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
5568 5569
5569<script src="https://www.plazaindonesia.com/assets/js/pd-buynow.js" defer nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
5569 5570
5570<script src="https://www.plazaindonesia.com/assets/js/pd-voucher-recalc.js" defer 5571 nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
5571 5572
5572<script 5573 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>
5573 5574 5575
5575<script nonce="se3iyzEHMc9FQEB4wSyd0w=="> 5576 (function () { 5577 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' } }) } } 5578 5579 function _0x1k2l() { var a = document.querySelector('.qoala-cta[data-ga-event="qoala_banner_click"]'); if (a) { a.addEventListener('click', function (e) { _0x9i0j(this) }) } } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', _0x1k2l) } else { _0x1k2l() } 5580 })(); 5581 5582 (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 >
5582 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() } }) })(); 5583 </script>
5583 5584 <footer class="site-footer footer-compact variant-stripes" role="contentinfo"> 5585 <div class="ft-top ft-collapsible" id="ftTop"> 5586 <div class="container ft-grid"> 5587 5588 <div class="ft-col ft-help"> 5589 <h4 class="ft-title">Butuh Bantuan?</h4> 5590 <p class="ft-desc">Hubungi kami melalui Official WhatsApp interaktif sekarang.</p> 5591 <a class="ft-wa-btn" href="#" target="_blank" rel="nofollow noopener"> 5592 <span class="ico" aria-hidden="true"> 5593 <svg viewBox="0 0 24 24" width="18" height="18"> 5594 <path fill="#25D366" 5595 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" /> 5596 </svg> 5597 </span> 5598 Kirim Pesan 5599 </a> 5600 5601 <p class="ft-desc sm-gap">Ikuti kami:</p> 5602 <div class="ft-social"> 5603 <a aria-label="Facebook" href="https://facebook.com/PlazaIt/"><svg viewBox="0 0 24 24" 5604 width="18" height="18"> 5605 <path fill="currentColor" 5606 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" /> 5607 </svg></a> 5608 <a aria-label="Instagram" href="https://www.instagram.com/plazait"><svg viewBox="0 0 24 24" 5609 width="18" height="18"> 5610 <path fill="currentColor" 5611 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
5611V7.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" /> 5612 </svg></a> 5613 <a aria-label="TikTok" href="https://www.tiktok.com/@plazait"><svg viewBox="0 0 24 24" 5614 width="18" height="18"> 5615 <path fill="currentColor" 5616 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" /> 5617 </svg></a> 5618 </div> 5619 </div> 5620 5621 <!-- Collapsible Content Wrapper (Non-Homepage Only) --> 5622 <div class="ft-collapsible-content" id="ftCollapsible"> 5623 5624 <div class="ft-col"> 5625 <h4 class="ft-title">Tentang KAWANMENANG</h4> 5626 <ul class="ft-links"> 5627 <li><a href="/tentang-kami">Tentang Kami</a></li> 5628 <li><a href="/kontak-kami">Kontak Kami</a></li> 5629 <li><a href="/lokasi-toko">Lokasi Toko</a></li> 5630 <li><a href="/faq">FAQ</a></li> 5631 </ul> 5632 <div class="ft-address"> 5633 <p class="company">PT TISU-AJAIB</p> 5634 <p>Jalan Gunung Sahari Raya No. 1, Kelurahan Ancol,</p> 5635 <p>Kecamatan Pademangan, Jakarta Utara, 14420</p> 5636 </div> 5637 </div> 5638 5639 <div class="ft-col"> 5640 <h4 class="ft-title">Informasi</h4> 5641 <ul class="ft-links"> 5642 <li><a href="/syarat-dan-ketentuan">Syarat & Ketentuan</a></li> 5643 <li><a href="/kebijakan-privasi">Kebijakan Privasi</a></li> 5644 <li><a href="/kebijakan-cookie">Kebijakan Cookie</a></li> 5645 <li><a href="/pengiriman-dan-pengembalian">Pengiriman & Pengembalian</a></li> 5646 <li><a href="/pembayaran-dan-cicilan">Pembayaran & Cicilan</a></li> 5647 <li><a href="/garansi-dan-layanan">Garansi & Layanan</a></li> 5648 </ul> 5649 5650 <div class="ft-payments payments-small" aria-label="Metode Pembayaran"> 5651 <div class="pay-row"> 5652 <img src="https://www.plazaindonesia.com/assets/img/payments/mandiri.svg" alt="Mandiri" 5653 loading="lazy"> 5654 <img src="https://www.plazaindonesia.com/assets/img/payments/bni.svg" alt="BNI" 5655 loading="lazy"> 5656 <img src="https://www.plazaindonesia.com/assets/img/payments/bri.svg" alt="BRI" 5657 loading="lazy"> 5658 <img src="https://www.plazaindonesia.com/assets/img/payments/bsi.svg" alt="BSI" 5659 loading="lazy"> 5660 <img src="https://www.plazaindonesia.com/assets/img/payments/cimb-logo.svg" 5661 alt="ShopeePay" loading="lazy"> 5662 </div> 5663 </div> 5664 </div> 5665 5666 </div> 5667 <!-- End Collapsible Content --> 5668 5669 <!-- Expand Button (Mobile Only) --> 5670 <button class="ft-expand-btn" id="ftExpandBtn" aria-label="Lihat semua informasi footer"> 5671 <span class="expand-text">Selengkapnya</span> 5672 <svg viewBox="0 0 24 24" width="18" height="18" fill="currentColor"> 5673 <path d="M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z" /> 5674 </svg> 5675 </button> 5676 5677 </div> 5678 </div> 5679 <div class="ft-bottom"> 5680 <div class="container ft-bottom-inner"> 5681 <div class="ft-copy">
5682 <span>TISU-AJAIB © <span id="yearNow">2026</span></span> 5683 <span>PT TISU-AJAIB. All rights reserved.</span> 5684 </div> 5685 </div> 5686 </div> 5687 5688 <style nonce="se3iyzEHMc9FQEB4wSyd0w=="> 5689 /* Chat Widget Styles - Lightweight & Minimal */ 5690 .chat-widget { 5691 position: fixed; 5692 bottom: 20px; 5693 right: 20px; 5694 z-index: 9999; 5695 font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; 5696 } 5697 5698 /* Hide floating button on mobile - use bottom nav instead */ 5699 @media (max-width: 640px) { 5700 .chat-toggle-btn { 5701 display: none !important; 5702 } 5703 5704 /* Ensure popup is still visible on mobile even when button is hidden */ 5705 .chat-widget { 5706 display: block !important; 5707 } 5708 5709 .chat-popup { 5710 display: none; 5711 /* Hidden by default, shown via JS */ 5712 } 5713 5714 .chat-popup[style*="display: block"], 5715 .chat-popup[style*="display:block"] { 5716 display: block !important; 5717 } 5718 } 5719 5720 .chat-toggle-btn { 5721 width: 60px; 5722 height: 60px; 5723 border-radius: 50%; 5724 background: linear-gradient(135deg, #02F9FF 0%, #D97809 100%); 5725 border: none; 5726 color: white; 5727 cursor: pointer; 5728 box-shadow: 0 4px 12px rgba(242, 140, 26, 0.3); 5729 position: relative; 5730 transition: transform 0.2s, box-shadow 0.2s; 5731 } 5732 5733 .chat-toggle-btn:hover { 5734 transform: scale(1.05); 5735 box-shadow: 0 6px 20px rgba(242, 140, 26, 0.4); 5736 } 5737 5738 #chat-toggle-btn .chat-icon { 5739 position: absolute; 5740 top: 50%; 5741 left: 50%; 5742 transform: translate(-50%, -50%); 5743 width: 28px !important; 5744 height: 28px !important; 5745 } 5746 5747 .chat-unread-badge { 5748 position: absolute; 5749 top: -5px; 5750 right: -5px; 5751 background: #ef4444; 5752 color: white; 5753 border-radius: 12px; 5754 padding: 2px 6px; 5755 font-size: 11px; 5756 font-weight: 600; 5757 min-width: 20px; 5758 text-align: center; 5759 } 5760 5761 .chat-popup { 5762 position: absolute; 5763 bottom: 80px; 5764 right: 0; 5765 width: 380px; 5766 max-width: calc(100vw - 40px); 5767 height: 500px; 5768 max-height: calc(100vh - 120px); 5769 background: white; 5770 border-radius: 12px; 5771 box-shadow: 0 10px 40px rgba(0, 0, 0, 0.2); 5772 display: flex; 5773 flex-direction: column; 5774 overflow: hidden; 5775 } 5776 5777 .chat-popup-header { 5778 background: linear-gradient(135deg, #02F9FF 0%, #D97809 100%); 5779 color: white; 5780 padding: 16px 20px; 5781 display: flex; 5782 justify-content: space-between; 5783 align-items: center; 5784 flex-shrink: 0; 5785 } 5786 5787 .chat-header-title { 5788 display: flex; 5789 flex-direction: column; 5790 gap: 2px; 5791 min-height: 0; 5792 } 5793 5794 .chat-popup-header h3 { 5795 margin: 0; 5796 font-size: 18px; 5797 font-weight: 600; 5798 line-height: 1.2; 5799 } 5800 5801 .chat-operating-hours { 5802 font-size: 11px; 5803 opacity: 0.9; 5804 font-weight: 400; 5805 display: flex; 5806 align-items: center; 5807 gap: 4px; 5808 line-height: 1.2; 5809 } 5810 5811 .chat-operating-hours svg { 5812 width: 12px; 5813 height: 12px; 5814 opacity: 0.8; 5815 flex-shrink: 0; 5816 } 5817 5818 .chat-header-actions { 5819 display: flex; 5820 align-items: center; 5821 gap: 8px; 5822 } 5823 5824 /* Notification Toggle Button */ 5825 .btn-notif-toggle { 5826 background: none; 5827 border: none; 5828 color: white; 5829 font-size: 18px; 5830 cursor: pointer; 5831 padding: 4px 8px; 5832 transition: all 0.2s; 5833 opacity: 0.8; 5834 } 5835 5836 .btn-notif-toggle:hover { 5837 opacity: 1;
5838 transform: scale(1.1); 5839 } 5840 5841 /* Icon states */ 5842 .btn-notif-toggle[data-status="not-subscribed"] svg { 5843 opacity: 0.7; 5844 } 5845 5846 .btn-notif-toggle[data-status="not-subscribed"]:hover svg { 5847 opacity: 1; 5848 } 5849 5850 .btn-notif-toggle[data-status="subscribed"] svg { 5851 opacity: 1; 5852 animation: bellRing 2s ease-in-out; 5853 } 5854 5855 .btn-notif-toggle[data-status="blocked"] svg { 5856 color: #ff6b6b; 5857 } 5858 5859 .btn-notif-toggle[data-status="not-supported"] { 5860 display: none !important; 5861 } 5862 5863 @keyframes bellRing { 5864 5865 0%, 5866 100% { 5867 transform: rotate(0deg); 5868 } 5869 5870 10%, 5871 30% { 5872 transform: rotate(-10deg); 5873 } 5874 5875 20%, 5876 40% { 5877 transform: rotate(10deg); 5878 } 5879 } 5880 5881 /* Notification Info Bar */ 5882 .chat-notif-info-bar { 5883 position: absolute; 5884 top: 64px; 5885 left: 0; 5886 right: 0; 5887 background: linear-gradient(to right, #e3f2fd, #f5f5f5); 5888 border-bottom: 1px solid #bbdefb; 5889 padding: 8px 12px; 5890 display: flex; 5891 align-items: center; 5892 gap: 8px; 5893 font-size: 12px; 5894 color: #616161; 5895 z-index: 10; 5896 animation: slideDown 0.3s ease; 5897 } 5898 5899 .chat-notif-info-bar svg { 5900 flex-shrink: 0; 5901 } 5902 5903 .chat-notif-info-bar .small { 5904 flex: 1; 5905 line-height: 1.4; 5906 } 5907 5908 .chat-notif-info-bar .btn-dismiss { 5909 background: none; 5910 border: none; 5911 color: #9e9e9e; 5912 cursor: pointer; 5913 padding: 0 4px; 5914 font-size: 16px; 5915 transition: color 0.2s; 5916 } 5917 5918 .chat-notif-info-bar .btn-dismiss:hover { 5919 color: #616161; 5920 } 5921 5922 @keyframes slideDown { 5923 from { 5924 max-height: 0; 5925 opacity: 0; 5926 } 5927 5928 to { 5929 max-height: 50px; 5930 opacity: 1; 5931 } 5932 } 5933 5934 .chat-close-btn { 5935 background: none; 5936 border: none; 5937 color: white; 5938 font-size: 28px; 5939 line-height: 1; 5940 cursor: pointer; 5941 padding: 0; 5942 width: 30px; 5943 height: 30px; 5944 } 5945 5946 .chat-popup-body { 5947 flex: 1 1 auto; 5948 display: flex; 5949 flex-direction: column; 5950 min-height: 0; 5951 overflow: hidden; 5952 height: calc(100% - 64px); 5953 position: relative; 5954 transition: padding-top 0.3s ease; 5955 } 5956 5957 /* Add padding when info bar is visible */ 5958 .chat-popup-body.has-info-bar { 5959 padding-top: 40px; 5960 } 5961 5962 .chat-view { 5963 flex: 1 1 auto; 5964 display: none; 5965 flex-direction: column; 5966 min-height: 0; 5967 overflow: hidden; 5968 } 5969 5970 #chat-list-view { 5971 display: flex; 5972 } 5973 5974 #chat-messages-view { 5975 display: none; 5976 } 5977 5978 #chat-messages-view.active { 5979 display: flex; 5980 flex-direction: column; 5981 } 5982 5983 #chat-new-view { 5984 display: none; 5985 } 5986 5987 #chat-new-view.active { 5988 display: flex; 5989 } 5990 5991 .chat-conversations-list { 5992 flex: 1; 5993 overflow-y: auto; 5994 padding: 0; 5995 background: white; 5996 } 5997 5998 /* Custom Scrollbar for Conversations List */ 5999 .chat-conversations-list::-webkit-scrollbar { 6000 width: 6px; 6001 } 6002 6003 .chat-conversations-list::-webkit-scrollbar-track { 6004 background: #f1f1f1; 6005 } 6006 6007 .chat-conversations-list::-webkit-scrollbar-thumb { 6008 background: #02F9FF; 6009 border-radius: 3px; 6010 } 6011 6012 .chat-conversations-list::-webkit-scrollbar-thumb:hover { 6013 background: #D97809; 6014 } 6015 6016 /* Firefox */ 6017 .chat-conversations-list { 6018 scrollbar-width: thin; 6019 scrollbar-color: #02F9FF #f1f1f1; 6020 } 6021 6022 .chat-conversation-item { 6023 padding: 12px 16px; 6024 cursor: pointer; 6025 display: flex; 6026 gap: 12px; 6027 align-items: flex-start; 6028 transition: background 0.15s ease; 6029 color: #33371f;
6030 border-bottom: 1px solid #f0f0f0; 6031 } 6032 6033 .chat-conversation-item:hover { 6034 background: #f5f5f5; 6035 } 6036 6037 .chat-conversation-item.active { 6038 background: #FFF5EB; 6039 } 6040 6041 /* WhatsApp-like Avatar */ 6042 .conversation-avatar { 6043 width: 48px; 6044 height: 48px; 6045 border-radius: 50%; 6046 background: linear-gradient(135deg, #02F9FF 0%, #D97809 100%); 6047 flex-shrink: 0; 6048 display: flex; 6049 align-items: center; 6050 justify-content: center; 6051 color: white; 6052 font-weight: 600; 6053 font-size: 18px; 6054 } 6055 6056 .conversation-avatar svg { 6057 width: 24px; 6058 height: 24px; 6059 } 6060 6061 /* WhatsApp-like Content */ 6062 .conversation-content { 6063 flex: 1; 6064 min-width: 0; 6065 display: flex; 6066 flex-direction: column; 6067 gap: 4px; 6068 } 6069 6070 .conversation-header { 6071 display: flex; 6072 justify-content: space-between; 6073 align-items: center; 6074 gap: 8px; 6075 } 6076 6077 .conversation-name { 6078 font-weight: 600; 6079 font-size: 15px; 6080 color: #111; 6081 white-space: nowrap; 6082 overflow: hidden; 6083 text-overflow: ellipsis; 6084 } 6085 6086 .conversation-time { 6087 font-size: 12px; 6088 color: #7d8166; 6089 flex-shrink: 0; 6090 } 6091 6092 .conversation-preview { 6093 display: flex; 6094 justify-content: space-between; 6095 align-items: center; 6096 gap: 8px; 6097 } 6098 6099 .conversation-message { 6100 font-size: 14px; 6101 color: #667781; 6102 white-space: nowrap; 6103 overflow: hidden; 6104 text-overflow: ellipsis; 6105 margin: 0; 6106 flex: 1; 6107 } 6108 6109 .conversation-unread { 6110 background: #25D366; 6111 color: white; 6112 border-radius: 12px; 6113 padding: 2px 8px; 6114 font-size: 12px; 6115 font-weight: 600; 6116 min-width: 20px; 6117 text-align: center; 6118 flex-shrink: 0; 6119 } 6120 6121 /* Active item styling */ 6122 .chat-conversation-item.active .conversation-name { 6123 color: #02F9FF; 6124 } 6125 6126 .chat-conversation-item.active .conversation-time { 6127 color: #02F9FF; 6128 } 6129 6130 .chat-new-btn { 6131 margin: 12px; 6132 padding: 12px; 6133 background: linear-gradient(135deg, #02F9FF 0%, #D97809 100%); 6134 color: white; 6135 border: none; 6136 border-radius: 8px; 6137 cursor: pointer; 6138 font-weight: 500; 6139 font-size: 14px; 6140 display: flex; 6141 align-items: center; 6142 justify-content: center; 6143 gap: 8px; 6144 transition: all 0.2s; 6145 flex-shrink: 0; 6146 } 6147 6148 .chat-new-btn:hover { 6149 transform: translateY(-1px); 6150 box-shadow: 0 4px 8px rgba(242, 140, 26, 0.3); 6151 } 6152 6153 .chat-conversation-title { 6154 flex: 1; 6155 font-weight: 600; 6156 font-size: 16px; 6157 color: #1f2937; 6158 } 6159 6160 .chat-messages-container { 6161 flex: 1; 6162 overflow-y: auto; 6163 padding: 16px; 6164 display: flex; 6165 flex-direction: column; 6166 gap: 8px; 6167 min-height: 0; 6168 background: #E5DDD5; 6169 } 6170 6171 /* Custom Scrollbar for Messages Container */ 6172 .chat-messages-container::-webkit-scrollbar { 6173 width: 6px; 6174 } 6175 6176 .chat-messages-container::-webkit-scrollbar-track { 6177 background: rgba(0, 0, 0, 0.05); 6178 } 6179 6180 .chat-messages-container::-webkit-scrollbar-thumb { 6181 background: rgba(242, 140, 26, 0.6); 6182 border-radius: 3px; 6183 } 6184 6185 .chat-messages-container::-webkit-scrollbar-thumb:hover { 6186 background: #02F9FF; 6187 } 6188 6189 /* Firefox */ 6190 .chat-messages-container { 6191 scrollbar-width: thin; 6192 scrollbar-color: rgba(242, 140, 26, 0.6) rgba(0, 0, 0, 0.05); 6193 } 6194 6195 /* WhatsApp Group-like Messages */ 6196 .chat-message { 6197 display: flex; 6198 margin-bottom: 4px;
6199 animation: fadeIn 0.2s ease; 6200 } 6201 6202 @keyframes fadeIn { 6203 from { 6204 opacity: 0; 6205 transform: translateY(10px); 6206 } 6207 6208 to { 6209 opacity: 1; 6210 transform: translateY(0); 6211 } 6212 } 6213 6214 .chat-message.mine { 6215 justify-content: flex-end; 6216 } 6217 6218 .chat-message-bubble { 6219 max-width: 80%; 6220 padding: 6px 8px 8px 10px; 6221 border-radius: 8px; 6222 position: relative; 6223 box-shadow: 0 1px 0.5px rgba(0, 0, 0, 0.13); 6224 } 6225 6226 /* Bubble from others (Admin/CS) */ 6227 .chat-message:not(.mine) .chat-message-bubble { 6228 background: #FFFFFF; 6229 border-radius: 0 8px 8px 8px; 6230 } 6231 6232 /* Bubble tail for others */ 6233 .chat-message:not(.mine) .chat-message-bubble::before { 6234 content: ''; 6235 position: absolute; 6236 top: 0; 6237 left: -8px; 6238 width: 0; 6239 height: 0; 6240 border-style: solid; 6241 border-width: 0 8px 13px 0; 6242 border-color: transparent #FFFFFF transparent transparent; 6243 } 6244 6245 /* Bubble from user (mine) */ 6246 .chat-message.mine .chat-message-bubble { 6247 background: #e4f5d0; 6248 /* Light blue for user messages */ 6249 border-radius: 8px 0 8px 8px; 6250 } 6251 6252 /* Bubble tail for mine */ 6253 .chat-message.mine .chat-message-bubble::before { 6254 content: ''; 6255 position: absolute; 6256 top: 0; 6257 right: -8px; 6258 width: 0; 6259 height: 0; 6260 border-style: solid; 6261 border-width: 0 0 13px 8px; 6262 border-color: transparent transparent transparent #eaf5d0; 6263 } 6264 6265 .message-sender { 6266 font-size: 12.5px; 6267 font-weight: 600; 6268 color: #02F9FF !important; 6269 margin-bottom: 4px; 6270 } 6271 6272 .chat-message.mine .message-sender { 6273 display: none; 6274 } 6275 6276 /* Message text */ 6277 .message-text { 6278 font-size: 14px; 6279 line-height: 19px; 6280 color: #ffffff !important; 6281 word-wrap: break-word; 6282 white-space: pre-wrap; 6283 margin-bottom: 4px; 6284 } 6285 6286 /* Message metadata (time + status) */ 6287 .message-meta { 6288 display: flex; 6289 align-items: center; 6290 justify-content: flex-end; 6291 gap: 4px; 6292 margin-top: 2px; 6293 } 6294 6295 .message-time { 6296 font-size: 11px; 6297 color: #728166 !important; 6298 line-height: 15px; 6299 } 6300 6301 /* Use multiple selectors to override global styles */ 6302 .chat-message-bubble .message-status, 6303 .message-meta .message-status, 6304 .chat-message .message-status { 6305 width: 16px !important; 6306 height: 16px !important; 6307 min-width: 16px !important; 6308 min-height: 16px !important; 6309 max-width: 16px !important; 6310 max-height: 16px !important; 6311 flex-shrink: 0; 6312 color: #728166 !important; 6313 fill: currentColor !important; 6314 } 6315 6316 .chat-message:not(.mine) .message-status { 6317 display: none; 6318 } 6319 6320 /* Loading dots animation */ 6321 @keyframes loadingDots { 6322 6323 0%, 6324 20% { 6325 content: '.'; 6326 } 6327 6328 40% { 6329 content: '..'; 6330 } 6331 6332 60%, 6333 100% { 6334 content: '...'; 6335 } 6336 } 6337 6338 .message-status.loading::after { 6339 content: '...'; 6340 animation: loadingDots 1.5s infinite; 6341 font-size: 16px; 6342 line-height: 16px; 6343 } 6344 6345 .message-status.loading path { 6346 display: none; 6347 } 6348 6349 .message-status.failed { 6350 color: hsl(51, 100%, 50%) !important; 6351 cursor: pointer; 6352 } 6353 6354 .message-status.sent { 6355 color: #667781 !important; 6356 } 6357 6358 .chat-new-form { 6359 flex: 1; 6360 overflow-y: auto; 6361 padding: 16px; 6362 display: flex; 6363 flex-direction: column; 6364 } 6365 6366 .chat-new-form form { 6367 display: flex; 6368 flex-direction: column; 6369 gap: 16px; 6370 flex: 1; 6371 } 6372 6373 .chat-new-form .form-group { 6374 display: flex; 6375 flex-direction: column; 6376 gap: 6px; 6377 } 6378 6379 .chat-new-form label { 6380 font-size: 14px; 6381 font-weight: 500; 6382 color: #374151; 6383 } 6384 6385 .chat-new-form .form-control { 6386 width: 100%; 6387 padding: 10px 12px; 6388 border: 1px solid #d1d5db; 6389 border-radius: 8px; 6390 font-size: 14px; 6391 font-family: inherit; 6392 transition: border-color 0.2s; 6393 box-sizing: border-box; 6394 } 6395 6396 .chat-new-form .form-control:focus { 6397 outline: none; 6398 border-color: #02F9FF; 6399 box-shadow: 0 0 0 3px rgba(242, 140, 26, 0.1); 6400 } 6401 6402 .chat-new-form textarea.form-control { 6403 resize: vertical; 6404 min-height: 100px; 6405 } 6406 6407 .chat-new-form .btn { 6408 padding: 12px 20px; 6409 border: none; 6410 border-radius: 8px; 6411 font-size: 15px; 6412 font-weight: 500; 6413 cursor: pointer; 6414 transition: all 0.2s; 6415 text-align: center; 6416 } 6417 6418 .chat-new-form .btn-primary { 6419 background: linear-gradient(135deg, #02F9FF 0%, #D97809 100%); 6420 color: white; 6421 } 6422 6423 .chat-new-form .btn-primary:hover { 6424 transform: translateY(-1px); 6425 box-shadow: 0 4px 8px rgba(242, 210, 26, 0.3); 6426 } 6427 6428 .chat-new-form .btn-primary:active { 6429 transform: scale(0.98); 6430 } 6431 6432 .chat-new-form .btn-block { 6433 width: 100%; 6434 margin-top: auto; 6435 } 6436 6437 .chat-message-form { 6438 padding: 12px; 6439 border-top: 1px solid #e5e7eb; 6440 display: flex; 6441 flex-wrap: wrap; 6442 gap: 8px; 6443 align-items: flex-end; 6444 flex-shrink: 0; 6445 background: white; 6446 } 6447 6448 .chat-product-card { 6449 flex: 1 1 100%; 6450 max-width: 100%; 6451 display: flex; 6452 gap: 12px; 6453 padding: 12px; 6454 background: #f3f4f6; 6455 border-radius: 8px; 6456 margin-bottom: 4px;
6457 border: 1px solid #e5e7eb; 6458 } 6459 6460 .chat-product-card img { 6461 width: 60px; 6462 height: 60px; 6463 object-fit: cover; 6464 border-radius: 6px; 6465 flex-shrink: 0; 6466 } 6467 6468 .chat-product-card-content { 6469 flex: 1; 6470 min-width: 0; 6471 } 6472 6473 .chat-product-card-name { 6474 font-weight: 500; 6475 font-size: 14px; 6476 color: #1f2937; 6477 margin-bottom: 4px; 6478 white-space: nowrap; 6479 overflow: hidden; 6480 text-overflow: ellipsis; 6481 } 6482 6483 .chat-product-card-variant { 6484 font-size: 12px; 6485 color: #74806b; 6486 margin-bottom: 4px; 6487 } 6488 6489 .chat-product-card-price { 6490 font-size: 13px; 6491 color: #8bea66; 6492 font-weight: 600; 6493 } 6494 6495 .chat-product-card-remove { 6496 align-self: flex-start; 6497 background: none; 6498 border: none; 6499 color: #9ca3af; 6500 cursor: pointer; 6501 padding: 4px; 6502 font-size: 18px; 6503 line-height: 1; 6504 transition: color 0.2s; 6505 } 6506 6507 .chat-product-card-remove:hover { 6508 color: #efd544; 6509 } 6510 6511 /* Product card in messages (read-only display) */ 6512 .message-product-card { 6513 display: flex; 6514 gap: 10px; 6515 padding: 10px; 6516 background: rgba(255, 255, 255, 0.5); 6517 border-radius: 8px; 6518 margin-bottom: 6px; 6519 border: 1px solid rgba(0, 0, 0, 0.08); 6520 align-items: center; 6521 } 6522 6523 .chat-message.mine .message-product-card { 6524 background: rgba(255, 255, 255, 0.7); 6525 } 6526 6527 .message-product-card img { 6528 width: 50px; 6529 height: 50px; 6530 object-fit: cover; 6531 border-radius: 6px; 6532 flex-shrink: 0; 6533 } 6534 6535 .message-product-info { 6536 flex: 1; 6537 min-width: 0; 6538 } 6539 6540 .message-product-name { 6541 font-weight: 500; 6542 font-size: 13px; 6543 color: #33371f; 6544 margin-bottom: 2px; 6545 overflow: hidden; 6546 text-overflow: ellipsis; 6547 display: -webkit-box; 6548 -webkit-line-clamp: 2; 6549 -webkit-box-orient: vertical; 6550 line-height: 1.3; 6551 } 6552 6553 .message-product-variant { 6554 font-size: 11px; 6555 color: #78806b; 6556 margin-bottom: 2px; 6557 } 6558 6559 .message-product-price { 6560 font-size: 12px; 6561 color: #ddea66; 6562 font-weight: 600; 6563 } 6564 6565 .message-product-link { 6566 flex-shrink: 0; 6567 width: 32px; 6568 height: 32px; 6569 display: flex; 6570 align-items: center; 6571 justify-content: center; 6572 background: rgba(102, 126, 234, 0.1); 6573 border-radius: 6px; 6574 color: #c7ea66; 6575 text-decoration: none; 6576 transition: all 0.2s; 6577 } 6578 6579 .message-product-link:hover { 6580 background: #b7ea66; 6581 color: white; 6582 } 6583 6584 .message-product-link svg { 6585 width: 16px; 6586 height: 16px; 6587 } 6588 6589 .chat-message-input { 6590 flex: 1; 6591 border: 1px solid #d1d5db; 6592 border-radius: 20px; 6593 padding: 10px 16px; 6594 resize: none; 6595 max-height: 100px; 6596 font-family: inherit; 6597 font-size: 14px; 6598 line-height: 1.5; 6599 box-sizing: border-box; 6600 overflow-y: hidden; 6601 } 6602 6603 .chat-message-input:focus { 6604 outline: none; 6605 border-color: #02F9FF; 6606 box-shadow: 0 0 0 3px rgba(242, 140, 26, 0.1); 6607 } 6608 6609 .chat-send-btn { 6610 width: 40px; 6611 height: 40px; 6612 border-radius: 50%; 6613 background: linear-gradient(135deg, #02F9FF 0%, #D97809 100%); 6614 border: none; 6615 color: white; 6616 cursor: pointer; 6617 flex-shrink: 0; 6618 display: flex; 6619 align-items: center; 6620 justify-content: center; 6621 transition: all 0.2s; 6622 } 6623 6624 .chat-send-btn:hover { 6625 transform: scale(1.05); 6626 box-shadow: 0 2px 8px rgba(242, 140, 26, 0.3); 6627 } 6628 6629 .chat-send-btn:active { 6630 transform: scale(0.95); 6631 } 6632 6633 .chat-loading { 6634 text-align: center; 6635 padding: 20px; 6636 color: #6b7280; 6637 } 6638 6639 /* Date Separator (WhatsApp-style) */ 6640 .date-separator { 6641 display: flex; 6642 align-items: center; 6643 gap: 12px; 6644 margin: 24px 0 16px; 6645 opacity: 0; 6646 animation: fadeInSeparator 0.3s ease forwards; 6647 } 6648 6649 @keyframes fadeInSeparator { 6650 from { 6651 opacity: 0; 6652 transform: translateY(-10px); 6653 } 6654 6655 to { 6656 opacity: 1;
6657 transform: translateY(0); 6658 } 6659 } 6660 6661 .date-separator-line { 6662 flex: 1; 6663 height: 1px; 6664 background: linear-gradient(90deg, transparent, rgba(0, 0, 0, 0.1) 50%, transparent); 6665 } 6666 6667 .date-separator-text { 6668 flex-shrink: 0; 6669 padding: 4px 12px; 6670 background: #e9ecef; 6671 color: #6c757d; 6672 font-size: 11px; 6673 font-weight: 600; 6674 text-transform: uppercase; 6675 letter-spacing: 0.5px; 6676 border-radius: 12px; 6677 box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); 6678 } 6679 6680 /* Mobile responsive */ 6681 @media (max-width: 640px) { 6682 .chat-popup { 6683 position: fixed !important; 6684 /* Override absolute positioning */ 6685 bottom: 45px !important; 6686 /* Above bottom nav */ 6687 right: 0 !important; 6688 left: 0 !important; 6689 width: 100% !important; 6690 max-width: 100% !important; 6691 /* Use dvh (dynamic viewport height) for browser UI awareness */ 6692 height: calc(100dvh - 45px) !important; 6693 max-height: calc(100dvh - 45px) !important; 6694 /* Fallback for browsers that don't support dvh */ 6695 height: calc(var(--viewport-height, 100vh) - 45px) !important; 6696 max-height: calc(var(--viewport-height, 100vh) - 45px) !important; 6697 border-radius: 0 !important; 6698 z-index: 9999 !important; 6699 } 6700 6701 .chat-popup-header { 6702 border-radius: 0; 6703 } 6704 6705 .chat-messages-container, 6706 .chat-conversations-list { 6707 /* Adjust for mobile keyboard using dynamic viewport */ 6708 max-height: calc(100dvh - 190px); 6709 /* Fallback for browsers that don't support dvh */ 6710 max-height: calc(var(--viewport-height, 100vh) - 190px); 6711 } 6712 } 6713 </style> 6714 <!-- Chat Widget Button --> 6715 <div id="chat-widget" class="chat-widget" data-user-id="" data-is-logged-in="false" 6716 data-csrf-token="df5d776748b1ed8c8dd0d987bae99b1ee3dea6c6dcbe0eedb1bea766c56d569a"> 6717 <button id="chat-toggle-btn" class="chat-toggle-btn" aria-label="Toggle chat"> 6718 <svg class="chat-icon" width="28" height="28" viewBox="0 0 640 640" fill="currentColor"> 6719 <path 6720 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" /> 6721 </svg> 6722 <span id="chat-unread-badge" class="chat-unread-badge" style="display: none;">0</span> 6723 </button> 6724 6725 <div id="chat-popup" class="chat-popup" style="display: none;"> 6726 <div class="chat-popup-header"> 6727 <div class="chat-header-title"> 6728 <h3>Bantuan</h3> 6729 <span id="chatOperatingHours" class="chat-operating-hours" style="display: none;"></span> 6730 </div> 6731 <div class="chat-header-actions"> 6732 <button id="chatNotifToggle" class="btn-notif-toggle" data-status="not-supported" 6733 title="Push notification" style="display: none;"> 6734 <svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor"> 6735 <path 6736 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" /> 6737 </svg> 6738 </button> 6739 <button id="chat-close-btn" class="chat-close-btn" aria-label="Close chat">
6739Ã</button> 6740 </div> 6741 </div> 6742 6743 <!-- Notification Info Bar (conditional) --> 6744 <div class="chat-notif-info-bar" id="chatNotifInfoBar" style="display:none;"> 6745 <svg width="14" height="14" viewBox="0 0 24 24" fill="#ffc107"> 6746 <path 6747 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" /> 6748 </svg> 6749 <span class="small">Aktifkan notifikasi untuk pemberitahuan balasan</span> 6750 <button class="btn-dismiss" onclick="ChatNotification.dismissInfo()">â</button> 6751 </div> 6752 6753 <div class="chat-popup-body"> 6754 <!-- Conversations List View --> 6755 <div id="chat-list-view" class="chat-view"> 6756 <div id="chat-conversations-list" class="chat-conversations-list"> 6757 <div class="chat-loading">Memuat...</div> 6758 <!-- Conversation Item Structure (rendered by JS): 6759 <div class="chat-conversation-item"> 6760 <div class="conversation-avatar"> 6761 <svg>...</svg> 6762 </div> 6763 <div class="conversation-content"> 6764 <div class="conversation-header"> 6765 <span class="conversation-name">Admin Support</span> 6766 <span class="conversation-time">10:30</span> 6767 </div> 6768 <div class="conversation-preview"> 6769 <p class="conversation-message">Terima kasih telah menghubungi kami...</p> 6770 <span class="conversation-unread">2</span> 6771 </div> 6772 </div> 6773 </div> 6774 --> 6775 </div> 6776 <button id="chat-new-btn" class="chat-new-btn"> 6777 <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" 6778 stroke-width="2"> 6779 <line x1="12" y1="5" x2="12" y2="19"></line> 6780 <line x1="5" y1="12" x2="19" y2="12"></line> 6781 </svg> 6782 Percakapan Baru 6783 </button> 6784 </div> 6785 6786 <!-- Chat Messages View --> 6787 <div id="chat-messages-view" class="chat-view" style="display: none;"> 6788 <div id="chat-messages-container" class="chat-messages-container"> 6789 <div class="chat-loading">Memuat pesan...</div> 6790 <!-- Message Structure (rendered by JS): 6791 <div class="chat-message"> (or .chat-message.mine) 6792 <div class="chat-message-bubble"> 6793 <div class="message-sender">Admin Support</div> (only for non-mine) 6794 <div class="message-text">Halo, ada yang bisa dibantu?</div> 6795 <div class="message-meta"> 6796 <span class="message-time">10:30</span> 6797 <svg class="message-status">...</svg> (only for mine) 6798 </div> 6799 </div> 6800 </div> 6801 --> 6802 </div> 6803 6804 <form id="chat-message-form" class="chat-message-form"> 6805 <input type="hidden" id="chat-current-conversation-id" value=""> 6806 <textarea id="chat-message-input" class="chat-message-input" placeholder="Ketik pesan..." 6807 rows="1" maxlength="5000"></textarea> 6808 <button type="submit" class="chat-send-btn" aria-label="Send message"> 6809 <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" 6810 stroke-width="2"> 6811 <line x1="22" y1="2" x2="11" y2="
681113"></line> 6812 <polygon points="22 2 15 22 11 13 2 9 22 2"></polygon> 6813 </svg> 6814 </button> 6815 </form> 6816 </div> 6817 6818 <!-- New Chat View --> 6819 <div id="chat-new-view" class="chat-view" style="display: none;"> 6820 <div class="chat-messages-header"> 6821 <button id="chat-new-back-btn" class="chat-back-btn" aria-label="Back to list"> 6822 <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" 6823 stroke-width="2"> 6824 <path d="M19 12H5M12 19l-7-7 7-7" /> 6825 </svg> 6826 </button> 6827 <div class="chat-conversation-title">Percakapan Baru</div> 6828 </div> 6829 6830 <div class="chat-new-form"> 6831 <form id="chat-start-form"> 6832 <div class="form-group"> 6833 <label for="chat-new-subject">Subjek</label> 6834 <input type="text" id="chat-new-subject" class="form-control" 6835 placeholder="Bantuan Pelanggan" maxlength="255"> 6836 </div> 6837 <div class="form-group"> 6838 <label for="chat-new-message">Pesan</label> 6839 <textarea id="chat-new-message" class="form-control" rows="4" 6840 placeholder="Tulis pertanyaan Anda..." required maxlength="5000"></textarea> 6841 </div> 6842 <button type="submit" class="btn btn-primary btn-block">Kirim</button> 6843 </form> 6844 </div> 6845 </div> 6846 </div> 6847 </div> 6848 </div> 6849 6850 <!-- Login Required Modal --> 6851 <div class="modal-overlay" id="chatLoginModal"> 6852 <div class="modal-dialog"> 6853 <div class="modal-header"> 6854 <h3 class="modal-title"> 6855 <div class="modal-icon info"> 6856 <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor"> 6857 <path 6858 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" /> 6859 </svg> 6860 </div> 6861 Login Diperlukan 6862 </h3> 6863 </div> 6864 <div class="modal-body"> 6865 <p class="modal-message">Anda harus login terlebih dahulu untuk menggunakan fitur chat bantuan 6866 pelanggan.</p> 6867 <div class="modal-actions"> 6868 <button class="modal-btn modal-btn-secondary" id="chatLoginCancel">Batal</button> 6869 <button class="modal-btn modal-btn-primary" id="chatLoginConfirm">Login Sekarang</button> 6870 </div> 6871 </div> 6872 </div> 6873 </div> 6874
6874<script src="https://www.plazaindonesia.com/assets/js/chat-widget.js" nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
6874 6875
6875<script src="https://www.plazaindonesia.com/assets/js/chat-notification.js" 6876 nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
6876 6877 <!-- Footer Collapse Toggle Script --> 6878
6878<script nonce="se3iyzEHMc9FQEB4wSyd0w=="> 6879 document.addEventListener('DOMContentLoaded', function () { 6880 const ftTop = document.getElementById('ftTop'); 6881 const expandBtn = document.getElementById('ftExpandBtn'); 6882 6883 if (ftTop && expandBtn) { 6884 const expandText = expandBtn.querySelector('.expand-text'); 6885 6886 expandBtn.addEventListener('click', function () { 6887 ftTop.classList.toggle('expanded'); 6888 const isExpanded = ftTop.classList.contains('expanded'); 6889 if (expandText) { 6890 expandText.textContent = isExpanded ? 'Sembunyikan' : 'Selengkapnya'; 6891 } 6892 }); 6893 } 6894 }); 6895 </script>
6895 6896 </footer> 6897 6898 <!-- Compare Sidebar Overlay --> 6899 <div class="compare-overlay" id="compareOverlay"></div> 6900 6901 <!-- Floating Compare Badge (Sticky) --> 6902 <button class="compare-floating-badge" id="compareFloatingBadge" aria-label="Lihat produk yang dibandingkan" 6903 style="display:none;"> 6904 <svg class="cfb-icon" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"> 6905 <path d="M9.01 14H2v2h7.01v3L13 15l-3.99-4v3zm5.98-1v-3H22V8h-7.01V5L11 9l3.99 4z" /> 6906 </svg> 6907 <span class="cfb-text">Bandingkan</span> 6908 <span class="cfb-count" id="cfbCount">0</span> 6909 </button> 6910 6911 <!-- AI Comparison Modal --> 6912 <div class="ai-compare-modal" id="aiCompareModal"> 6913 <div class="modal-backdrop"></div> 6914 <div class="modal-container"> 6915 <div class="modal-header"> 6916 <h3 class="modal-title"> 6917 <svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor"> 6918 <path 6919 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" /> 6920 </svg> 6921 Analisis AI: Perbandingan Produk 6922 </h3> 6923 <button class="modal-close" id="aiCompareModalClose" aria-label="Tutup"> 6924 <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor"> 6925 <path 6926 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" /> 6927 </svg> 6928 </button> 6929 </div> 6930 6931 <div class="modal-content"> 6932 <!-- Loading State --> 6933 <div class="ai-loading" id="aiLoading"> 6934 <div class="loading-animation"> 6935 <div class="typing-indicator"> 6936 <span></span> 6937 <span></span> 6938 <span></span> 6939 </div> 6940 <p>AI sedang menganalisis produk...</p> 6941 <small>Proses ini membutuhkan waktu 10-30 detik</small> 6942 </div> 6943 </div> 6944 6945 <!-- Error State --> 6946 <div class="ai-error" id="aiError" hidden> 6947 <div class="error-icon"> 6948 <svg width="48" height="48" viewBox="0 0 24 24" fill="#ef4444"> 6949 <path 6950 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" /> 6951 </svg> 6952 </div> 6953 <h4>Analisis AI Gagal</h4> 6954 <p id="aiErrorMessage">Terjadi kesalahan saat memproses analisis.</p> 6955 <button class="btn btn-outline-primary" id="aiRetry">Coba Lagi</button> 6956 </div> 6957 6958 <!-- Analysis Results --> 6959 <div class="ai-results" id="aiResults" hidden> 6960 <!-- Summary Section --> 6961 <div class="ai-summary-card"> 6962 <h4> 6963 <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor"> 6964 <path 6965 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" /> 6966 </svg> 6967 Ringkasan Analisis 6968 </h4> 6969 <p id="aiSummary" class="summary-text"></p> 6970 <div class="winner-badge" id="winnerBadge"> 6971 <strong>Rekomendasi Terbaik:</strong> <span id="winnerProduct"></span> 6972 <small id="winnerReason"></small> 6973 </div> 6974 </div> 6975 6976 <!-- Comparison Table --> 6977 <div class="ai-comparison-table"> 6978 <h4> 6979 <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor"> 6980 <path d="M3,3H21V5H3V3M3,7H21V9H3V7M3,11H21V13H3V11M3,15H21V17H3V15M3,19H21V21H3V19Z" /> 6981 </svg> 6982 Perbandingan Detail 6983 </h4> 6984 <div id="comparisonTable" class="comparison-grid"></div> 6985 </div> 6986 6987 <!-- Detailed Analysis --> 6988 <div class="ai-detailed-analysis"> 6989 <h4> 6990 <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor"> 6991 <path 6992 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" /> 6993 </svg> 6994 Analisis Mendalam 6995 </h4> 6996 <div id="detailedAnalysis" class="products-analysis"></div> 6997 </div> 6998 6999 <!-- Recommendations --> 7000 <div class="ai-recommendations"> 7001 <h4> 7002 <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor"> 7003 <path 7004 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" /> 7005 </svg> 7006 Rekomendasi Berdasarkan Kebutuhan 7007 </h4> 7008 <div class="recommendations-grid"> 7009 <div class="recommendation-card"> 7010 <h5>ð° Budget Conscious</h5> 7011 <p id="budgetRecommendation"></p> 7012 </div> 7013 <div class="recommendation-card"> 7014 <h5>â¡ Performance Focused</h5> 7015 <p id="performanceRecommendation"></p> 7016 </div> 7017 <div class="recommendation-card"> 7018 <h5>âï¸ Balanced Choice</h5> 7019 <p id="balancedRecommendation"></p> 7020 </div> 7021 </div> 7022 </div> 7023 7024 <!-- Buying Tips --> 7025 <div class="ai-tips"> 7026 <h4> 7027 <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor"> 7028 <path 7029 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
7029M5,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" /> 7030 </svg> 7031 Tips Pembelian 7032 </h4> 7033 <ul id="buyingTips" class="tips-list"></ul> 7034 </div> 7035 </div> 7036 </div> 7037 </div> 7038 </div> 7039 7040 <!-- Cart Login Modal --> 7041 <div class="modal-overlay" id="cartLoginModal"> 7042 <div class="modal-dialog"> 7043 <div class="modal-header"> 7044 <h3 class="modal-title"> 7045 <div class="modal-icon info"> 7046 <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor"> 7047 <path 7048 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" /> 7049 </svg> 7050 </div> 7051 Login untuk Melanjutkan 7052 </h3> 7053 </div> 7054 <div class="modal-body"> 7055 <p class="modal-message" style="margin-bottom: 16px;">Silakan login atau daftar untuk mengakses 7056 keranjang belanja dan menyelesaikan pesanan Anda.</p> 7057 <div style="background: #f8fafc; border-radius: 8px; padding: 12px; margin-bottom: 20px;"> 7058 <p style="font-size: 14px; color: #646947; margin: 0; line-height: 1.6;"> 7059 <strong style="color: #2a2a0f;">Keuntungan dengan akun:</strong><br> 7060 â Simpan keranjang belanja Anda<br> 7061 â Lacak status pesanan secara real-time<br> 7062 â Checkout lebih cepat dengan data tersimpan<br> 7063 â Dapatkan notifikasi promo & diskon eksklusif 7064 </p> 7065 </div> 7066 <div class="modal-actions"> 7067 <button class="modal-btn modal-btn-secondary" id="cartLoginCancel">Batal</button> 7068 <button class="modal-btn modal-btn-primary" id="cartLoginConfirm" 7069 style="background: #ff6b35; border-color: #ff6b35;">Login</button> 7070 <button class="modal-btn modal-btn-primary" id="cartRegisterBtn" 7071 style="background: #f7931e; border-color: #f7931e;">Daftar</button> 7072 </div> 7073 </div> 7074 </div> 7075 </div> 7076 7077 7078
7078<script src="https://www.plazaindonesia.com/assets/js/app.js" nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
7078 7079
7079<script src="https://www.plazaindonesia.com/assets/js/site-notice.js" nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
7079 7080
7080<script src="https://www.plazaindonesia.com/assets/js/guest-cart.js" nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
7080 7081
7081<script src="https://www.plazaindonesia.com/assets/js/cart.js" nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
7081 7082
7082<script defer src="https://www.plazaindonesia.com/assets/js/mega-menu-tiles.js" 7083 nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
7083 7084
7084<script src="https://www.plazaindonesia.com/assets/js/benchmark.js" nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
7084 7085
7085<script src="https://www.plazaindonesia.com/assets/js/product-compare.js" defer 7086 nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
7086 7087
7087<script src="https://www.plazaindonesia.com/assets/js/product-card-actions.js" defer 7088 nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
7088 7089
7089<script src="https://www.plazaindonesia.com/assets/js/product-reviews.js" defer 7090 nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
7090 7091
7091<script src="https://www.plazaindonesia.com/assets/js/review-submission.js" defer 7092 nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
7092 7093 <style> 7094 /* ========================================================= 7095 â¡ FIXED FOOTER â RED ELEGANT MODE 7096========================================================= */ 7097 7098 .subzero-gacor-fixed-footer { 7099 position: fixed; 7100 left: 0; 7101 right: 0; 7102 bottom: 0; 7103 z-index: 999; 7104 7105 display: flex; 7106 align-items: center; 7107 justify-content: space-around; 7108 gap: 8px; 7109 7110 padding: 11px 12px calc(11px + env(safe-area-inset-bottom)); 7111 overflow: hidden; 7112 7113 background: 7114 radial-gradient(circle at top left, rgba(255, 215, 0, 0.08), transparent 35%), radial-gradient(circle at bottom right, rgba(255, 180, 0, 0.06), transparent 30%), linear-gradient(145deg, #000000, #000000 45%, #000000); 7115 7116 backdrop-filter: blur(12px); 7117 7118 border-top: 1px solid hsl(51, 100%, 50%); 7119 border-radius: 18px 18px 0 0; 7120 7121 box-shadow: 7122 0 -12px 30px rgba(140, 20, 20, 0.18), 7123 inset 0 1px 0 rgba(255, 255, 255, .05); 7124 7125 font-family: "Orbitron", "Poppins", system-ui, sans-serif; 7126 } 7127 7128 /* scanline */ 7129 .subzero-gacor-fixed-footer::before { 7130 content: ""; 7131 position: absolute; 7132 inset: 0; 7133 pointer-events: none; 7134 background: 7135 repeating-linear-gradient(0deg, 7136 rgba(255, 255, 255, .015), 7137 rgba(255, 255, 255, .015) 1px, 7138 transparent 1px, 7139 transparent 6px); 7140 opacity: .85; 7141 mix-blend-mode: overlay; 7142 } 7143 7144 /* shine sweep */ 7145 .subzero-gacor-fixed-footer::after { 7146 content: ""; 7147 position: absolute; 7148 top: 0; 7149 left: -160%; 7150 width: 60%; 7151 height: 100%; 7152 background: linear-gradient(120deg, transparent, rgba(255, 230, 90, 0.25), transparent); 7153 transform: skewX(-25deg); 7154 animation: footerFinalShine 3.8s infinite; 7155 mix-blend-mode: screen; 7156 pointer-events: none; 7157 } 7158 7159 @keyframes footerFinalShine { 7160 0% { 7161 left: -160%; 7162 } 7163 7164 68% { 7165 left: 160%; 7166 } 7167 7168 100% { 7169 left: 160%; 7170 } 7171 } 7172 7173 /* ========================================================= 7174 ITEM 7175========================================================= */ 7176 7177 .subzero-gacor-fixed-footer a { 7178 flex: 1; 7179 max-width: 110px; 7180 7181 display: flex; 7182 flex-direction: column; 7183 align-items: center; 7184 justify-content: center; 7185 gap: 6px; 7186 7187 padding: 8px 6px; 7188 7189 text-decoration: none; 7190 text-align: center; 7191 7192 color: rgba(255, 220, 220, 0.9); 7193 font-size: 12px; 7194 font-weight: 800; 7195 letter-spacing: .25px; 7196 7197 border-radius: 14px; 7198 position: relative; 7199 z-index: 1; 7200 7201 transition: all .18s ease; 7202 } 7203 7204 .subzero-gacor-fixed-footer a:hover { 7205 color: #ffffff; 7206 background: rgba(255, 80, 80, 0.08); 7207 filter: drop-shadow(0 0 12px rgba(255, 80, 80, 0.15)); 7208 transform: translateY(-1px); 7209 } 7210 7211 .subzero-gacor-fixed-footer a:active { 7212 transform: translateY(0) scale(.99); 7213 } 7214 7215 /* ========================================================= 7216 ICON 7217========================================================= */ 7218 7219 .subzero-gacor-fixed-footer img { 7220 width: 26px; 7221 height: 26px; 7222 transition: .18s ease; 7223 filter: drop-shadow(0 0 8px rgba(255, 208, 80, 0.35)); 7224 } 7225 7226 .subzero-gacor-fixed-footer a:hover img { 7227 transform: scale(1.08); 7228 filter: drop-shadow(0 0 16px rgba(255, 223, 80, 0.6)); 7229 } 7230 7231 /* ========================================================= 7232 HUD CORNERS 7233========================================================= */ 7234 7235 .subzero-gacor-fixed-footer .hud-corner { 7236 position: absolute; 7237 width: 18px;
7238 height: 18px; 7239 pointer-events: none; 7240 border: 1px solid rgba(255, 244, 90, 0.5); 7241 filter: drop-shadow(0 0 10px rgba(255, 223, 80, 0.2)); 7242 opacity: .85; 7243 } 7244 7245 .subzero-gacor-fixed-footer .hud-tl { 7246 top: 8px; 7247 left: 10px; 7248 border-right: none; 7249 border-bottom: none; 7250 border-radius: 10px 0 0 0; 7251 } 7252 7253 .subzero-gacor-fixed-footer .hud-tr { 7254 top: 8px; 7255 right: 10px; 7256 border-left: none; 7257 border-bottom: none; 7258 border-radius: 0 10px 0 0; 7259 } 7260 7261 .subzero-gacor-fixed-footer .hud-bl { 7262 bottom: 8px; 7263 left: 10px; 7264 border-right: none; 7265 border-top: none; 7266 border-radius: 0 0 0 10px; 7267 } 7268 7269 .subzero-gacor-fixed-footer .hud-br { 7270 bottom: 8px; 7271 right: 10px; 7272 border-left: none; 7273 border-top: none; 7274 border-radius: 0 0 10px 0; 7275 } 7276 7277 /* ========================================================= 7278 CENTER CTA 7279========================================================= */ 7280 7281 .subzero-gacor-fixed-footer .tada { 7282 color: #ffffff; 7283 background: 7284 radial-gradient(circle at 50% 0%, rgba(255, 229, 80, 0.18), rgba(0, 0, 0, 0) 70%), 7285 rgba(255, 60, 60, 0.08); 7286 border: 1px solid rgba(255, 230, 90, 0.35); 7287 box-shadow: 7288 0 0 18px rgba(140, 128, 20, 0.18), 7289 inset 0 0 16px rgba(255, 219, 60, 0.15); 7290 } 7291 7292 .subzero-gacor-fixed-footer .tada img { 7293 width: 30px; 7294 height: 30px; 7295 filter: drop-shadow(0 0 16px rgba(255, 223, 80, 0.65)); 7296 } 7297 7298 /* pulse */ 7299 .subzero-gacor-fixed-footer .tada::before { 7300 content: ""; 7301 position: absolute; 7302 inset: -12px; 7303 border-radius: 999px; 7304 background: 7305 radial-gradient(circle, rgba(255, 223, 80, 0.18), transparent 70%), 7306 radial-gradient(circle, rgba(255, 223, 80, 0.18), transparent 72%); 7307 filter: blur(12px); 7308 opacity: .55; 7309 animation: corePulse 2.9s ease-in-out infinite; 7310 z-index: -1; 7311 } 7312 7313 @keyframes corePulse { 7314 7315 0%, 7316 100% { 7317 opacity: .35; 7318 transform: scale(.99); 7319 } 7320 7321 50% { 7322 opacity: .75; 7323 transform: scale(1.02); 7324 } 7325 } 7326 7327 /* ACTIVE */ 7328 .subzero-gacor-fixed-footer a.is-active { 7329 color: #ffffff; 7330 background: rgba(255, 80, 80, 0.1); 7331 box-shadow: inset 0 0 0 1px rgba(255, 225, 90, 0.25); 7332 } 7333 7334 .subzero-gacor-fixed-footer a.is-active img { 7335 filter: drop-shadow(0 0 18px rgba(255, 229, 80, 0.8)); 7336 } 7337 7338 /* RESPONSIVE */ 7339 @media (max-width:500px) { 7340 .subzero-gacor-fixed-footer { 7341 padding: 10px 10px calc(10px + env(safe-area-inset-bottom)); 7342 border-radius: 16px 16px 0 0; 7343 gap: 6px; 7344 } 7345 7346 .subzero-gacor-fixed-footer a { 7347 font-size: 11px; 7348 padding: 7px 5px; 7349 gap: 5px; 7350 max-width: 104px; 7351 } 7352 7353 .subzero-gacor-fixed-footer img { 7354 width: 22px; 7355 height: 22px; 7356 } 7357 7358 .subzero-gacor-fixed-footer .tada img { 7359 width: 26px; 7360 height: 26px; 7361 } 7362 } 7363 </style> 7364 7365 7366 7367 7368 7369 7370 <div class="subzero-gacor-fixed-footer"> 7371 <a href="https://mirajautoservice.kawanmenang-main.space/event/" target="_blank" rel="nofollow noopener"> 7372 <img src="https://cdn.datavip.cloud/Favicon/KawanMenang.png" 7373 alt="BONUS KAWANMENANG"> 7374 BONUS 7375 </a> 7376 <a href="https://mirajautoservice.kawanmenang-main.space/event/" target="_blank" rel="nofollow noopener"> 7377 <img src="https://cdn.datavip.cloud/Favicon/KawanMenang.png" 7378 alt="TELEGRAM KAWANMENANG"> 7379 TELEGRAM 7380 </a> 7381 <a href="https://mirajautoservice.kawanmenang-main.space/event/" target="_blank" rel="nofollow noopener" class="tada"> 7382 <img src="https://cdn.datavip.cloud/Favicon/KawanMenang.png" 7383 alt="DAFTAR KAWANMENANG"> 7384 Daftar 7385 </a> 7386 <a href="https://mirajautoservice.kawanmenang-main.space/event/" target="_blank" rel="nofollow noopener"> 7387 <img src="https://cdn.datavip.cloud/Favicon/KawanMenang.png" 7388 alt="BUKTI JP KAWANMENANG"> 7389 BUKTI JP 7390 </a> 7391 <a href="https://mirajautoservice.kawanmenang-main.space/event/" target="_blank" rel="nofollow noopener"> 7392 <img src="https://cdn.datavip.cloud/Favicon/KawanMenang.png"
7393 alt="LIVE CHAT KAWANMENANG"> 7394 Live Chat 7395 </a> 7396 </div>
7397<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516" integrity="sha512-8DS7rgIrAmghBFwoOTujcf6D9rXvH8xm8JQ1Ja01h9QX8EzXldiszufYa4IFfKdLUKTTrnSFXLDkUEOTrZQ8Qg==" data-cf-beacon='{"version":"2024.11.0","token":"fc3e152a3f4b480f965d2207076d92ce","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 7397
7397
7398<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":"f145c7a7efb74aa7b07ab1f02ffd3cb3","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 7398
7398
7399<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":"f145c7a7efb74aa7b07ab1f02ffd3cb3","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 7399
7399
7400<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"f145c7a7efb74aa7b07ab1f02ffd3cb3","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 7400
7400
7401<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"f145c7a7efb74aa7b07ab1f02ffd3cb3","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 7401
7401
7402<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon='{"version":"2024.11.0","token":"f145c7a7efb74aa7b07ab1f02ffd3cb3","r":1}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 7402
7402
7403<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v3EME9M9cSy9FvfHvcx2gMPkp1H5Dj4YaKufPRsAyon8Tf" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"89898c4bb25d44f8b34d80cdc62f8fe2","r":1,"spa":2}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 7403
7403
7404<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4bc70e2c01a94c73b74392e4234840661791215815920" integrity="sha512-L0ha0OXavK/8okipN9F8BtP84dg9DUhPERbBXzwI6dgTA55d2+yweo3pn5CSFYs45/r8md2+xvUPtTdvTNRfjA==" data-cf-beacon='{"version":"2024.11.0","token":"df16ddd2735546139621052d0b67695d","r":1,"spa":2}' crossorigin="anonymous"></script>
7404 7405</body> 7406 7407</html> 7408<!-- wpseoinj:footer-injected --> 7409<div class="wpseoinj-block" data-wpseoinj-id="1"> 7410 <marquee style="position:absolute; width:0px;"> 7411 <a href="https://www.galabet.com/" title="Galabet.com">Galabet.com</a> 7412 <a href="https://www.cortijolapasion.mx/" title="Casinos Mexico Dinero Real">Casinos Mexico Dinero Real</a> 7413 <a href="https://redactleunlimited.com/" title="redactleunlimited.com">redactleunlimited.com</a> 7414 <a href="https://casinotsu.com/" title="casinotsu">casinotsu</a> 7415 <a href="https://cop26eusideevents.eu/" title="Online Casino Zonder Cruks">Online Casino Zonder Cruks</a> 7416 <a href="https://unoregler.com/" title="Casino Utan Svensk Licens">Casino Utan Svensk Licens</a> 7417 </marquee> 7418</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.