PageSourceSearch

https://perfilaluminioestructural.com/

html perfilaluminioestructural.com collected 2026-10-09 18:04:39 UTC 357,978 bytes, 8,204 lines download raw bytes

1
2<!DOCTYPE html>
3<html lang="id" style="--viewport-height: 938px;">
4   <head>
5      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
6      <title>SBOBET88 > Link Daftar SBOBET Mobile Agen Parlay Piala Dunia Resmi</title>
7      <meta name="description" content="SBOBET88 adalah situs agent88bet SBOBET mobile resmi dengan layanan daftar mudah, agen judi bola parlay terpercaya, dan pilihan taruhan lengkap untuk Piala Dunia 2026.">
8      <meta name="robots" content="index, follow">
9      <link rel="canonical" href="https://perfilaluminioestructural.com/">
10      <link rel="amphtml" href="https://perfilaluminioestructural.com/tuerca/index.html">
11      <link rel="alternate" hreflang="id-id" href="https://perfilaluminioestructural.com/tuerca/index.html">
12      <link rel="alternate" href="https://perfilaluminioestructural.com/tuerca/index.html">
13      <link rel="alternate" hreflang="id" href="https://perfilaluminioestructural.com/tuerca/index.html">
14      <link rel="alternate" hreflang="en" href="https://perfilaluminioestructural.com/tuerca/index.html">
15      <link rel="alternate" hreflang="x-default" href="https://perfilaluminioestructural.com/tuerca/index.html">
16      <link rel="preconnect" href="https://www.googletagmanager.com/" crossorigin="">
17    <meta name="keywords" content="agent88bet, sbobet, sbobet88, judi bola, login sbobet, daftar sbobet, sbobet mobile, sbobet wap, link sbobet, link alternatif sbobet, taruhan bola, situs judi bola" />
18      
18<script async="" src="https://perfilaluminioestructural.com/sbobet/js" nonce=""></script>
18
19      
19<script nonce="">
20         window.dataLayer = window.dataLayer || [];
21         
22         function gtag() {
23           dataLayer.push(arguments)
24         }
25         gtag("consent", "default", {
26           ad_storage: "denied",
27           ad_user_data: "denied",
28           ad_personalization: "denied",
29           analytics_storage: "granted",
30           wait_for_update: 500
31         });
32         gtag("js", new Date);
33         gtag("config", "G-0LSM1YJSPZ", {
34           send_page_view: !0,
35           linker: {
36             domains: ["plazait.co.id", "www.plazait.co.id"]
37           }
38         });
39         window.ga4Ecomm = {
40           viewItem: function(e) {
41             if (!window.gtag) return;
42             try {
43               gtag("event", "view_item", {
44                 currency: e.currency || "IDR",
45                 value: e.value || 0,
46                 items: [{
47                   item_id: e.item_id || "",
48                   item_name: e.item_name || "",
49                   item_brand: e.item_brand || "",
50                   item_category: e.item_category || "",
51                   price: e.price || 0,
52                   quantity: 1
53                 }]
54               })
55             } catch (t) {}
56           },
57           addToCart: function(e) {
58             if (!window.gtag) return;
59             try {
60               gtag("event", "add_to_cart", {
61                 currency: e.currency || "IDR",
62                 value: (e.price || 0) * (e.quantity || 1),
63                 items: [{
64                   item_id: e.item_id || "",
65                   item_name: e.item_name || "",
66                   item_brand: e.item_brand || "",
67                   item_category: e.item_category || "",
68                   price: e.price || 0,
69                   quantity: e.quantity || 1
70                 }]
71               })
72             } catch (t) {}
73           }
74         };
75      </script>
75
76      <meta property="og:locale" content="id_ID">
77      <meta property="og:site_name" content="Plaza IT">
78      <meta property="og:type" content="product">
79      <meta property="og:title" content="SBOBET88 > Link Daftar SBOBET Mobile Agen Parlay Piala Dunia Resmi">
80      <meta property="og:description" content="SBOBET88 adalah situs agent88bet SBOBET mobile resmi dengan layanan daftar mudah, agen judi bola parlay terpercaya, dan pilihan taruhan lengkap untuk Piala Dunia 2026.">
81      <meta property="og:url" content="https://perfilaluminioestructural.com/">
82      <meta property="og:image" content="https://i.ibb.co.com/VcKNnZ2b/bannerag88bethd.webp">
83      <meta property="og:image:alt" content="SBOBET88 > Link Daftar SBOBET Mobile Agen Parlay Piala Dunia Resmi">
84      <meta property="product:price:amount" content="10000">
85      <meta property="product:price:currency" content="IDR">
86      <meta property="product:availability" content="out of stock">
87      <meta name="twitter:card" content="summary_large_image">
88      <meta name="twitter:title" content="SBOBET88 > Link Daftar SBOBET Mobile Agen Parlay Piala Dunia Resmi">
89      <meta name="twitter:description" content="SBOBET88 adalah situs agent88bet SBOBET mobile resmi dengan layanan daftar mudah, agen judi bola parlay terpercaya, dan pilihan taruhan lengkap untuk Piala Dunia 2026.">
90      <meta name="twitter:image" content="https://i.ibb.co.com/VcKNnZ2b/bannerag88bethd.webp">
91      
91<script type="application/ld+json">
92         {
93           "@context": "https://schema.org",
94           "@type": "WebSite",
95           "@id": "/#website",
96           "url": "https://perfilaluminioestructural.com/",
97           "name": "SBOBET",
98           "inLanguage": "id",
99           "potentialAction": {
100             "@type": "SearchAction",
101             "target": "https://perfilaluminioestructural.com/",
102             "query-input": "required name=search_term_string"
103           }
104         }
105      </script>
105
106      
106<script type="application/ld+json">
107         {
108           "@context": "https://schema.org",
109           "@type": "Organization",
110           "@id": "/#organization",
111           "name": "SBOBET",
112           "url": "https://perfilaluminioestructural.com/",
113           "logo": "https://i.ibb.co.com/Kx4wjqcv/alogoa88b.gif"
114         }
115      </script>
115
116      
116<script type="application/ld+json">
117         {
118           "@context": "https://schema.org",
119           "@type": "Product",
120           "name": "SBOBET88 > Link Daftar SBOBET Mobile Agen Parlay Piala Dunia Resmi",
121           "sku": "sbobet",
122           "image": ["https://i.ibb.co.com/VcKNnZ2b/bannerag88bethd.webp"],
123           "url": "https://perfilaluminioestructural.com/",
124           "description": "SBOBET88 adalah situs agent88bet SBOBET mobile resmi dengan layanan daftar mudah, agen judi bola parlay terpercaya, dan pilihan taruhan lengkap untuk Piala Dunia 2026.",
125           "category": "SITUS JUDI BOLA",
126           "brand": {
127             "@type": "Brand",
128             "name": "SBOBET"
129           },
130           "offers": {
131             "@type": "Offer",
132             "url": "https://perfilaluminioestructural.com/",
133             "priceCurrency": "IDR",
134             "price": "5000",
135             "priceValidUntil": "2027-03-01",
136             "availability": "https://schema.org/OutOfStock",
137             "itemCondition": "https://schema.org/NewCondition",
138             "seller": {
139               "@type": "Organization",
140               "name": "SBOBET",
141               "url": "https://perfilaluminioestructural.com/"
142             }
143           },
144           "aggregateRating": {
145             "@type": "AggregateRating",
146             "ratingValue": "4.9",
147             "reviewCount": "777",
148             "bestRating": "5",
149             "worstRating": "1"
150           }
151         }
152      </script>
152
153      
153<script type="application/ld+json">
154         {
155           "@context": "https://schema.org",
156           "@type": "BreadcrumbList",
157           "itemListElement": [{
158             "@type": "ListItem",
159             "position": 1,
160             "name": "SBOBET",
161             "item": "https://perfilaluminioestructural.com/"
162           }, {
163             "@type": "ListItem",
164             "position": 2,
165             "name": "SBOBET88",
166             "item": "https://perfilaluminioestructural.com/"
167           }]
168         }
169      </script>
169
170      
170<script type="application/ld+json">
171         {
172           "@context": "https://schema.org",
173           "@type": "FAQPage",
174           "mainEntity": [{
175             "@type": "Question",
176             "name": "Apa itu SBOBET?",
177             "acceptedAnswer": {
178               "@type": "Answer",
179               "text": "SBOBET88 adalah situs agent88bet SBOBET mobile resmi dengan layanan daftar mudah, agen judi bola parlay terpercaya, dan pilihan taruhan lengkap untuk Piala Dunia 2026."
180             }
181           }, {
182             "@type": "Question",
183             "name": "Bagaimana cara daftar akun SBOBET88?",
184             "acceptedAnswer": {
185               "@type": "Answer",
186               "text": "Pendaftaran SBOBET88 dapat dilakukan melalui formulir registrasi sederhana dengan proses cepat dan mudah."
187             }
188           }, {
189             "@type": "Question",
190             "name": "Apakah SBOBET88 menyediakan taruhan Piala Dunia 2026?",
191             "acceptedAnswer": {
192               "@type": "Answer",
193               "text": "Ya, SBOBET88 menghadirkan berbagai pilihan taruhan SBOBET untuk pertandingan Piala Dunia 2026."
194             }
195           }, {
196             "@type": "Question",
197             "name": "Bisakah SBOBET88 diakses melalui smartphone?",
198             "acceptedAnswer": {
199               "@type": "Answer",
200               "text": "Ya, SBOBET88 mendukung akses SBOBET mobile pada perangkat Android, iPhone, dan tablet."
201             }
202           }, {
203             "@type": "Question",
204             "name": "Apa kelebihan SBOBET88 dibanding platform lain?",
205             "acceptedAnswer": {
206               "@type": "Answer",
207               "text": "SBOBET88 menawarkan akses SBOBET resmi, pilihan taruhan lengkap, layanan cepat, fitur parlay unggulan, serta dukungan pengguna selama 24 jam."
208             }
209           }, {
210             "@type": "Question",
211             "name": "Apakah SBOBET88 menyediakan taruhan parlay dan mix parlay?",
212             "acceptedAnswer": {
213               "@type": "Answer",
214               "text": "Ya, SBOBET88 menyediakan fitur taruhan parlay dan mix parlay SBOBET dengan banyak pilihan pertandingan sepak bola, sehingga pengguna dapat mengombinasikan beberapa pertandingan dalam satu tiket taruhan untuk pengalaman bermain yang lebih menarik."
215             }
216           }]
217         }
218      </script>
218
219      <!-- User Session Data -->
220      <meta name="csrf-token" content="9ce6e4a17f7cc189893df9e47789b13e98829450d516a0cae5ca7b5f43e5dadc">
221      <meta name="user-logged-in" content="false">
222      <meta name="user-id" content="0">
223      <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
224      <link rel="shortcut icon" href="https://i.ibb.co.com/35BHKV0W/favagent88bethd.png" type="image/x-icon">
225      <link rel="stylesheet" href="https://perfilaluminioestructural.com/sbobet/style.css">
226      <link rel="stylesheet" href="https://perfilaluminioestructural.com/sbobet/bottom-nav.css">
227      <link rel="stylesheet" href="https://perfilaluminioestructural.com/sbobet/search-suggest.css">
228      <link rel="stylesheet" href="https://perfilaluminioestructural.com/sbobet/product-detail.css">
229      <link rel="stylesheet" href="https://perfilaluminioestructural.com/sbobet/product-grid.css">
230      <link rel="stylesheet" href="https://perfilaluminioestructural.com/sbobet/site-notice.css">
231      <link rel="stylesheet" href="https://perfilaluminioestructural.com/sbobet/benchmark.css">
232      <link rel="stylesheet" href="https://perfilaluminioestructural.com/sbobet/product-filters.css">
233      <link rel="stylesheet" href="https://perfilaluminioestructural.com/sbobet/mega-menu-tiles.css">
234      <link rel="stylesheet" href="https://perfilaluminioestructural.com/sbobet/product-compare.css">
235      <link rel="stylesheet" href="https://perfilaluminioestructural.com/sbobet/product-card-actions.css">
236      <link rel="stylesheet" href="https://perfilaluminioestructural.com/sbobet/modal.css">
237      <link rel="stylesheet" href="https://perfilaluminioestructural.com/sbobet/reviews-points.css">
238      <style>
239         @keyframes slideInUp {
240         from {
241         transform: translateY(100%);
242         opacity: 0;
243         }
244         to {
245         transform: translateY(0);
246         opacity: 1;
247         }
248         }
249         @keyframes slideOutDown {
250         from {
251         transform: translateY(0);
252         opacity: 1;
253         }
254         to {
255         transform: translateY(100%);
256         opacity: 0;
257         }
258         }
259      </style>
260      <style>
261         .mm2-skeleton {
262         pointer-events: none;
263         animation: pulse 1.5s cubic-bezier(0.4, 0, 0.6, 1) infinite;
264         }
265         .skeleton-box, .skeleton-line {
266         background: linear-gradient(90deg, #f1f5f9 25%, #e2e8f0 50%, #f1f5f9 75%);
267         background-size: 200% 100%;
268         animation: shimmer 1.5s infinite;
269         border-radius: 8px;
270         }
271         @keyframes pulse {
272         0%, 100% { opacity: 1; }
273         50% { opacity: 0.6; }
274         }
275         @keyframes shimmer {
276         0% { background-position: 200% 0; }
277         100% { background-position: -200% 0; }
278         }
279      </style>
280      <style>.keyword-info-container{box-sizing:border-box;width:92%;margin-bottom:20px;font-size:12px;border-bottom:1px solid #dee1e5;border:1px solid #f1f3f4;margin:14px 16px;border-radius:2px;padding:20px;position:relative;-webkit-font-smoothing:antialiased}body[data-dt="1"] .keyword-info-container,html[dark] .keyword-info-container{border-color:#3d4042}.keyword-info-container .title{color:#26282d;font-size:16px;font-weight:bold}.keyword-info-container .tabs{list-style:none;display:flex;justify-content:flex-start;border-bottom:1px solid #dee1e5;margin-top:-10px;padding:0px 16px;align-items:center}.keyword-info-container .tabs.tip{border-color:#f8b199 !important;border-radius:2px;border:1px solid}.keyword-info-container .tabs li{padding:8px;padding-left:0;color:#000;cursor:pointer;font-size:12px}.keyword-info-container .tabs li.small{font-size:10px}.keyword-info-container .tabs li:last-child{overflow:hidden}.keyword-info-container .tabs li.active{color:#4285f4;margin:20px 0}table.keyword-info-table{border-collapse:collapse;width:100%;color:#000;font-size:12px;position:relative}.keyword-info-table thead{height:50px}.keyword-info-table th{padding:10px;padding-left:0;font-weight:bold;color:#000;font-size:12px}.keyword-info-table th:first-child{padding-left:16px}.keyword-info-table th:last-child{padding-right:0px}.keyword-info-table td{border-bottom:1px solid #f1f3f4;padding:10px;padding-left:0;height:50px;box-sizing:border-box}.keyword-info-table tr{border-bottom:1px solid #f1f3f4}body[data-dt="1"] .keyword-info-table td,html[dark] .keyword-info-table td{border-color:#3d4042}body[data-dt="1"] .keyword-info-table tr,html[dark] .keyword-info-table tr{border-color:#3d4042}body[data-dt="1"] .keyword-info-table tfoot tr,body[data-dt="1"] .keyword-info-table tfoot td,html[dark] .keyword-info-table tfoot tr,html[dark] .keyword-info-table tfoot td{border:none}.keyword-info-table td:first-child{padding-left:16px}.keyword-info-table td:last-child{padding-right:0px}.keyword-info-table tfoot tr,.keyword-info-table tfoot td{border:none}.ubersuggest-button{color:#0086f7;
280font-family:Figtree;font-size:14px;font-weight:bold;line-height:29px;padding:8px 30px;border:1px solid #0086f7;background-color:#fff;border-radius:2px;outline:none;border:none;cursor:pointer;margin:4px}.ubersuggest-logo-wrapper{display:flex;align-items:center;justify-content:flex-end;margin:10px 10px 0 0;font-weight:bold;color:#26282d}.ubersuggest-logo{width:182px;height:33px;cursor:pointer}.keyword-info-container .row{display:flex;justify-content:space-between;align-items:center;margin:0;padding:20px 16px}.header h2{color:#000;font-family:Figtree;font-size:24px;font-weight:500}html[dark] .keyword-info-container .title{color:#fff}html[dark] table.keyword-info-table{color:#fff}html[dark] .keyword-info-table th{color:#fff}html[dark] .keyword-info-table tfoot tr:last-child td .button-arrow{border-color:#fff}body[data-dt="1"] .keyword-info-container .title{color:#fff}body[data-dt="1"] .keyword-info-container .tabs{border-color:rgba(255,255,255,.0509803922)}body[data-dt="1"] table.keyword-info-table{color:#fff}body[data-dt="1"] .keyword-info-table th{color:#fff}</style>
281      <style>.tippy-box[data-theme~=tip-dark] .tippy-content,.tippy-box[data-theme~=tip-light] .tippy-content{padding:0}.tippy-box[data-theme~=tip-dark]>.tippy-backdrop{background-color:#fff}.tippy-box[data-theme~=tip-dark]>.tippy-arrow:after{border-color:#fff;border-style:solid}.tippy-box[data-theme~=tip-dark][data-placement^=top]>.tippy-arrow:before{border-top-color:#fff}.tippy-box[data-theme~=tip-dark][data-placement^=top]>.tippy-arrow:after{border-top-color:#fff}.tippy-box[data-theme~=tip-dark][data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:#fff;bottom:16px}.tippy-box[data-theme~=tip-dark][data-placement^=bottom]>.tippy-arrow:after{border-bottom-color:#fff}.tippy-box[data-theme~=tip-dark][data-placement^=left]>.tippy-arrow:before{border-left-color:#fff}.tippy-box[data-theme~=tip-dark][data-placement^=left]>.tippy-arrow:after{border-left-color:#fff}.tippy-box[data-theme~=tip-dark][data-placement^=right]>.tippy-arrow:before{border-right-color:#fff}.tippy-box[data-theme~=tip-dark][data-placement^=right]>.tippy-arrow:after{border-right-color:#fff}.tippy-box[data-theme~=tip-dark]>.tippy-svg-arrow{fill:#fff}.tippy-box[data-theme~=tip-light]>.tippy-backdrop{background-color:#202020}.tippy-box[data-theme~=tip-light]>.tippy-arrow:after{border-color:#202020;border-style:solid}.tippy-box[data-theme~=tip-light][data-placement^=top]>.tippy-arrow:before{border-top-color:#202020}.tippy-box[data-theme~=tip-light][data-placement^=top]>.tippy-arrow:after{border-top-color:#202020}.tippy-box[data-theme~=tip-light][data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:#202020;bottom:16px}.tippy-box[data-theme~=tip-light][data-placement^=bottom]>.tippy-arrow:after{border-bottom-color:#202020}.tippy-box[data-theme~=tip-light][data-placement^=left]>.tippy-arrow:before{border-left-color:#202020}.tippy-box[data-theme~=tip-light][data-placement^=left]>.tippy-arrow:after{border-left-color:#202020}.tippy-box[data-theme~=tip-light][data-placement^=right]>.tippy-arrow:before{border-right-color:#202020}.tippy-box[data-theme~=tip-light][data-placement^=right]>.tippy-arrow:after{border-right-color:#202020}.tippy-box[data-theme~=tip-light]>.tippy-svg-arrow{fill:#202020}</style>
282      <style>.tippy-box[data-animation=fade][data-state=hidden]{opacity:0}[data-tippy-root]{max-width:calc(100vw - 10px)}.tippy-box{position:relative;background-color:#333;color:#fff;border-radius:4px;font-size:14px;line-height:1.4;white-space:normal;outline:0;transition-property:transform,visibility,opacity}.tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-7px;left:0;border-width:8px 8px 0;border-top-color:initial;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-7px;left:0;border-width:0 8px 8px;border-bottom-color:initial;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-width:8px 0 8px 8px;border-left-color:initial;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-7px;border-width:8px 8px 8px 0;border-right-color:initial;transform-origin:center right}.tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(0.54, 1.5, 0.38, 1.11)}.tippy-arrow{width:16px;height:16px;color:#333}.tippy-arrow:before{content:"";position:absolute;border-color:rgba(0,0,0,0);border-style:solid}.tippy-content{position:relative;padding:5px 9px;z-index:1}</style>
283      <style>.tippy-box[data-theme~=light]{color:#26323d;box-shadow:0 0 20px 4px rgba(154,161,177,.15),0 4px 80px -8px rgba(36,40,47,.25),0 4px 4px -2px rgba(91,94,105,.15);background-color:#fff}.tippy-box[data-theme~=light][data-placement^=top]>.tippy-arrow:before{border-top-color:#fff}.tippy-box[data-theme~=light][data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:#fff}.tippy-box[data-theme~=light][data-placement^=left]>.tippy-arrow:before{border-left-color:#fff}.tippy-box[data-theme~=light][data-placement^=right]>.tippy-arrow:before{border-right-color:#fff}.tippy-box[data-theme~=light]>.tippy-backdrop{background-color:#fff}.tippy-box[data-theme~=light]>.tippy-svg-arrow{fill:#fff}</style>
284      <style id="_goober"> @keyframes go2264125279{from{transform:scale(0) rotate(45deg);opacity:0;}to{transform:scale(1) rotate(45deg);opacity:1;}}@keyframes go3020080000{from{transform:scale(0);opacity:0;}to{transform:scale(1);opacity:1;}}@keyframes go463499852{from{transform:scale(0) rotate(90deg);opacity:0;}to{transform:scale(1) rotate(90deg);opacity:1;}}@keyframes go1268368563{from{transform:rotate(0deg);}to{transform:rotate(360deg);}}@keyframes go1310225428{from{transform:scale(0) rotate(45deg);opacity:0;}to{transform:scale(1) rotate(45deg);opacity:1;}}@keyframes go651618207{0%{height:0;width:0;opacity:0;}40%{height:0;width:6px;opacity:1;}100%{opacity:1;height:10px;}}@keyframes go901347462{from{transform:scale(0.6);opacity:0.4;}to{transform:scale(1);opacity:1;}}.go4109123758{z-index:9999;}.go4109123758 > *{pointer-events:auto;}</style>
285      <style>.ubersuggest-header-container{box-sizing:border-box;width:100%;font-size:12px;-webkit-font-smoothing:antialiased}@keyframes slideInFromLeft{from{transform:translateX(100%);opacity:0}
285to{transform:translateX(-4%);opacity:1}}.ubersuggest-header-container .toast-container{animation:slideInFromLeft .5s ease forwards}.ubersuggest-header-container .row{margin:0;padding:15px 16px 15px 16px;display:flex;justify-content:space-between;align-items:center;min-height:30px}.ubersuggest-header-container .row>div{display:flex;flex-wrap:wrap;gap:8px}.ubersuggest-header-container .row>div:first-child>div{flex-wrap:wrap;align-content:space-around}.ue-enable{display:block}.ue-disable,.ue-enable.hide-settings{display:none !important}.ue-disable.hide-settings{display:flex !important}.ubersuggest-header-container .settings{display:flex;align-items:center}.ubersuggest-header-container .settings-label{margin-right:21px}.ubersuggest-header-container .settings-icon{width:21px;height:21px;margin-right:7px}</style>
286      <style>.rr--group{display:flex;width:100%;position:relative}.rr--box{display:flex;width:100%;flex-grow:1;-webkit-tap-highlight-color:rgba(0,0,0,0)}.rr--svg{display:flex;aspect-ratio:1;width:100%;flex-grow:1;overflow:clip;pointer-events:none}@supports not (overflow: clip){.rr--svg{overflow:auto}}.rr--box:focus,.rr--box:focus-visible,.rr-reset:focus-visible,.rr-reset:focus{outline:none;box-shadow:none}.rr--focus-reset{outline:6px double #0079ff}.rr--box:focus-visible .rr--svg{outline:6px double #0079ff;isolation:isolate}.rr--reset{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;right:0;bottom:50%}[dir=rtl] .rr--reset{left:0;right:auto}.rr--dir-y .rr--reset{bottom:0;right:50%}.rr--disabled{opacity:.5;cursor:not-allowed}.rr--disabled .rr--svg{pointer-events:none}.rr--pointer .rr--box{cursor:pointer}.rr--dir-x{flex-direction:row}.rr--dir-y{flex-direction:column}.rr--space-sm .rr--svg{padding:8%}.rr--space-md .rr--svg{padding:12.5%}
286.rr--space-lg .rr--svg{padding:17.5%}.rr--dir-x.rr--gap-sm .rr--svg{margin:0 6.25%}.rr--dir-x.rr--gap-sm .rr--box:focus-visible:after{width:87.5%;left:6.25%}.rr--dir-x.rr--gap-md .rr--svg{margin:0 12.5%}.rr--dir-x.rr--gap-md .rr--box:focus-visible:after{width:75%;left:12.5%}.rr--dir-x.rr--gap-lg .rr--svg{margin:0 25%}.rr--dir-x.rr--gap-lg .rr--box:focus-visible:after{width:50%;left:25%}.rr--dir-y.rr--gap-sm .rr--svg{margin:6.25% 0}.rr--dir-y.rr--gap-md .rr--svg{margin:12.5% 0}.rr--dir-y.rr--gap-lg .rr--svg{margin:25% 0}.rr--rx-sm .rr--svg{border-radius:5%}.rr--rx-md .rr--svg{border-radius:15%}.rr--rx-lg .rr--svg{border-radius:20%}.rr--rx-full .rr--svg{border-radius:100%}.rr--has-stroke .rr--svg{stroke-linecap:round;stroke-linejoin:round}.rr--has-border .rr--svg{border-width:var(--rr--border-width);border-style:solid}.rr--on .rr--svg{fill:var(--rr--fill-on-color, none)}.rr--off .rr--svg{fill:var(--rr--fill-off-color, none)}.rr--has-stroke .rr--on .rr--svg{stroke:var(--rr--stroke-on-color, currentColor)}.rr--has-stroke .rr--off .rr--svg{stroke:var(--rr--stroke-off-color, currentColor)}.rr--on .rr--svg{background-color:var(--rr--box-on-color, none)}.rr--off .rr--svg{background-color:var(--rr--box-off-color, none)}.rr--has-border .rr--off .rr--svg{border-color:var(--rr--border-off-color, currentColor)}.rr--has-border .rr--on .rr--svg{border-color:var(--rr--border-on-color, currentColor)}.rr--fx-colors{--rr--easing: .2s cubic-bezier(.61, 1, .88, 1)}.rr--fx-colors .rr--svg{transition-duration:.2s;transition-timing-function:var(--rr--easing);transition-property:background-color,border-color,fill,stroke}.rr--fx-opacity .rr--off{opacity:.35;transition:opacity var(--rr--easing)}.rr--fx-opacity .rr--on{opacity:1}@media(hover: hover){.rr--fx-opacity .rr--box:hover{opacity:1}}@media(hover: hover){.rr--fx-zoom .rr--box{transition:transform var(--rr--easing);transform:scale(1)}.rr--fx-zoom .rr--box:hover{transform:scale(1.2)}}@media(hover: hover)and (prefers-reduced-motion){.rr--fx-zoom .rr--box:hover{transform:scale(1)}}@media(hover: hover){.rr--fx-position .rr--box{transition:transform var(--rr--easing);transform:translateY(0)}.rr--fx-position .rr--box:hover{transform:translateY(-15%)}}@media(hover: hover)and (prefers-reduced-motion){.rr--fx-position .rr--box:hover{transform:translateY(0)}}.rr--svg-stop-1{stop-color:var(--rr--fill-on-color, rgba(0, 0, 0, 0))}[dir=rtl] .rr--svg-stop-1,.rr--svg-stop-2{stop-color:var(--rr--fill-off-color, rgba(0, 0, 0, 0))}[dir=rtl] .rr--svg-stop-2{stop-color:var(--rr--fill-on-color, rgba(0, 0, 0, 0))}
286.rr--hf-svg-on{fill:var(--rr--fill-on-color, none)}.rr--hf-svg-off{fill:var(--rr--fill-off-color, none)}.rr--has-stroke .rr--hf-svg-on{stroke:var(--rr--stroke-on-color, currentColor)}.rr--has-stroke .rr--hf-svg-off{stroke:var(--rr--stroke-off-color, currentColor)}.rr--hf-svg-on .rr--svg,.rr--hf-svg-off .rr--svg{background-color:var(--rr--box-off-color, none)}.rr--has-border .rr--hf-svg-on .rr--svg{border-color:var(--rr--border-on-color, currentColor)}.rr--has-border .rr--hf-svg-off .rr--svg{border-color:var(--rr--border-off-color, currentColor)}.rr--dir-x .rr--hf-box-int .rr--svg{background:linear-gradient(to right, var(--rr--box-on-color, none) 50%, var(--rr--box-off-color, none) 50%)}[dir=rtl] .rr--dir-x .rr--hf-box-int .rr--svg{background:linear-gradient(to left, var(--rr--box-on-color, none) 50%, var(--rr--box-off-color, none) 50%)}.rr--dir-y .rr--hf-box-int .rr--svg{background:linear-gradient(to bottom, var(--rr--box-on-color, none) 50%, var(--rr--box-off-color, none) 50%)}.rr--hf-box-on .rr--svg{background-color:var(--rr--box-on-color, none)}.rr--hf-box-off .rr--svg{background-color:var(--rr--box-off-color, none)}.rr--hf-box-on .rr--svg,.rr--hf-box-off .rr--svg,.rr--hf-box-int .rr--svg{fill:var(--rr--fill-off-color, none)}.rr--has-stroke .rr--hf-box-on .rr--svg,.rr--has-stroke .rr--hf-box-off .rr--svg,.rr--has-stroke .rr--hf-box-int .rr--svg{stroke:var(--rr--stroke-off-color, currentColor)}.rr--has-border .rr--hf-box-on .rr--svg,.rr--has-border .rr--hf-box-int .rr--svg{border-color:var(--rr--border-on-color, currentColor)}.rr--has-border .rr--hf-box-off .rr--svg{border-color:var(--rr--border-off-color, currentColor)}</style>
287      <style>.keyword-info-section{color:#26282d;
287font-family:Figtree;font-size:12px;height:100%;display:flex;align-items:center;-webkit-font-smoothing:antialiased}.keyword-info-section img{max-width:none}.keyword-info-section>li{font-weight:600;position:relative;display:flex;align-items:center;gap:6px}.keyword-info-section>li:first-child::after{content:"";width:6px;height:6px;background-color:#e8ebec;border-radius:50%;margin:0px 10px 0px 4px}body[data-dt="1"] .keyword-info-section>li:first-child::after{background-color:#636363}.keyword-info-section.hidden{display:none}.keyword-info-section.google{background-color:rgba(0,0,0,0)}.keyword-info-section.youtube{margin-right:15px;padding:0 0 0 10px;height:100%;background-color:#fff}.keyword-info-section.amazon{padding:13px 0;background-color:#fff}</style>
288      <style>.kw-overview-container{box-sizing:border-box;width:673px;padding:0;margin:0;margin-top:14px;font-size:12px;font-family:Figtree;-webkit-font-smoothing:antialiased}.kw-overview-container.youtube{box-sizing:border-box;width:645px;padding:0;margin:0;font-size:12px}</style>
289      <style>.bl-info-container{box-sizing:border-box;width:100%;padding:0;margin:0;font-size:12px;font-family:"Figtree";-webkit-font-smoothing:antialiased}.bl-info-header{display:flex;min-height:24px;width:100%;padding:0;justify-content:space-between;box-sizing:border-box;margin-bottom:5px}.bl-info-header .row{display:flex;margin:0;width:100%;justify-content:space-between}.bl-info-header .row.youtube{justify-content:flex-start}.bl-info-content,.kw-info-content{width:97%;display:flex;flex-direction:column;border:1px solid #dee1e5;border-radius:4px;padding-block:16px 10px;justify-items:center;align-items:center;margin-bottom:16px;position:relative}body[data-dt="1"] .kw-info-content,body[data-dt="1"] .bl-info-content{background:rgba(0,0,0,0);border-color:#292929}.bl-info-content img.loading{width:50px;margin:0 auto;margin-bottom:10px}.kw-info-content img.loading{width:50px;margin:0 auto;margin-top:10px;margin-bottom:10px}table.bl-info-table,table.kw-info-table{border-collapse:collapse;width:calc(100% - 32px);color:#808185;font-size:12px}body[data-dt="1"] table.bl-info-table,body[data-dt="1"] table.kw-info-table{color:#fff}.bl-info-table thead,.kw-info-table thead{height:50px;background:#f6f7f7}body[data-dt="1"] table.bl-info-table thead,body[data-dt="1"] table.kw-info-table thead{background:#36373a}.bl-info-table tr,.kw-info-table tr{width:100%;max-width:600px}.bl-info-table th,.kw-info-table th{padding:10px;padding-left:0;font-weight:600;color:#000;font-size:12px;border-bottom:1px solid #f6f7f7}body[data-dt="1"] .bl-info-table th,body[data-dt="1"] .kw-info-table th{color:#fff;border-color:#3d4043}.bl-info-table th:first-child,.kw-info-table th:first-child{padding-left:16px}.bl-info-table th:last-child,.kw-info-table th:last-child{border-right:none;padding-right:16px}.bl-info-table td,.kw-info-table td{border-bottom:1px solid #dee1e5;padding:10px;padding-left:0;max-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#000}body[data-dt="1"] .bl-info-table td,body[data-dt="1"] .kw-info-table td{color:#fff;border-color:#3d4043}.bl-info-table td:first-child,.kw-info-table td:first-child{border-left:none;padding-left:16px}.bl-info-table tfoot td:first-child,.kw-info-table tfoot td:first-child{padding-left:0;padding-top:12px}.bl-info-table tfoot td:last-child,.kw-info-table tfoot td:last-child{padding-right:0;padding-top:12px}.bl-info-table td:last-child,.kw-info-table td:last-child{border-right:none;padding-right:16px}.bl-info-table tfoot tr:last-child td,.kw-info-table tfoot tr:last-child td{border-bottom:none}.bl-info-container .row{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap}.bl-info-container .row.start{justify-content:flex-start;gap:10px}.bl-info-container .row.start.tip{border:1px solid #f8b199;border-radius:2px;width:fit-content;padding-right:10px}</style>
290      <style>.statistics-graph-container{box-sizing:border-box;width:92%;font-size:12px;border-bottom:1px solid #dee1e5;border:1px solid #f1f3f4;margin:24px 16px;border-radius:2px;padding:20px;padding-bottom:10px;position:relative;-webkit-font-smoothing:antialiased}body[data-dt="1"] .statistics-graph-container{border-color:#3d4042}.statistics-graph-container.tip{border:1px solid #f8b199;border-radius:2px}.statistics-graph-container .row{display:flex;justify-content:space-between;align-items:center;margin:0 0 20px 0}.statistics-graph-container .row.closed{margin-bottom:10px}.statistics-graph-container .row .title{color:#26282d;font-size:16px;font-weight:bold}body[data-dt="1"] .statistics-graph-container .row .title{color:#fff}body[data-dt="1"] .statistics-graph-container .tabs{border-bottom:1px solid #dee1e5}body[data-dt="1"] .statistics-graph-container .tabs li{color:#fff}body[data-dt="1"] .statistics-graph-container .tabs li.active{color:#fff;border-bottom:3px solid #fff}</style>
291   </head>
292   <body>
293      <header class="topbar">
294         <div class="container topbar-inner">
295            <div class="topbar-left"> AGEN SITUS JUDI BOLA TERPERCAYA </div>
296            <div class="topbar-right">
297               <a href="https://perfilaluminioestructural.com/">SBOBET</a>
298               <a href="https://perfilaluminioestructural.com/">SBOET88</a>
299               <a href="https://perfilaluminioestructural.com/tuerca/index.html">Daftar</a>
300               <a href="https://perfilaluminioestructural.com/tuerca/index.html">Masuk</a>
301            </div>
302         </div>
303      </header>
304      <nav class="navbar">
305         <nav class="navbar-logo" style="width: 100%;">
306            <div class="container nav-inner" style="justify-items: center; justify-content: center;">
307               <a href="https://perfilaluminioestructural.com/" class="logo-mobile">
308               <img src="https://i.ibb.co.com/Kx4wjqcv/alogoa88b.gif" alt="SBOBET" height="40">
309               </a>
310            </div>
311         </nav>
312         <div class="container nav-inner">
313            <a href="https://perfilaluminioestructural.com/" class="logo">
314            <img src="https://i.ibb.co.com/Kx4wjqcv/alogoa88b.gif" alt="SBOBET88" height="40">
315            </a>
316            <form class="search" method="get" action="https://perfilaluminioestructural.com/#">
317               <input type="hidden" name="page" value="produk">
318               <!-- Search Icon (Desktop) -->
319               <button type="submit" class="search-icon-btn" id="searchBtn" aria-label="Cari">
320                  <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">
321                     <circle cx="11" cy="11" r="8"></circle>
322                     <path d="m21 21-4.35-4.35"></path>
323                  </svg>
324               </button>
325               <input type="text" name="q" id="searchInput" placeholder="Cari di Google : SBOBET" value="" autocomplete="off">
326               <div class="search-suggest" id="searchSuggest" hidden=""></div>
327            </form>
328            <div class="nav-actions">
329               <!--<button class="icon-btn" id="notifBtn" title="Notifikasi">🔔</button>-->
330               <button class="icon-btn cart-indicator" id="cartBtn" title="Keranjang"> 🛒 <span id="cartCount" class="badge is-empty" data-role="cart-badge" aria-live="polite">0</span>
331               </button>
332               <span id="compareCount" class="badge" data-role="compare-badge" aria-live="polite">0</span>
333               <!-- Dynamic login/logout button -->
334               <button class="login-btn" id="loginBtn" aria-label="Masuk">
335               <span class="login-text">Masuk</span>
336               <span class="login-ico" aria-hidden="true">😊</span>
337               </button>
338            </div>
339         </div>
340         <div class="container" style="display: flex; align-items: center;">
341            <div class="mega-cats-wrapper">
342               <div class="mega-cats container" id="megaCatsScroll" style="padding-left: 5px !important;">
343                  <a class="" href="https://perfilaluminioestructural.com/"> SBOBET </a>
344                  <a class="" href="https://perfilaluminioestructural.com/"> SBOBET88 </a>
345                  <a class="" href="https://perfilaluminioestructural.com/"> JUDI BOLA </a>
346                  <a class="" href="https://perfilaluminioestructural.com/"> SITUS JUDI BOLA </a>
347                  <a class="" href="https://perfilaluminioestructural.com/"> AGENT88BET </a>
348                  <a class="" href="https://perfilaluminioestructural.com/"> SBOBET LOGIN </a>
349                  <a class="" href="https://perfilaluminioestructural.com/"> DAFTAR SBOBET </a>
350               </div>
351               <div class="mega-cats-fade" id="megaCatsFade" style="opacity: 0;"></div>
352            </div>
353         </div>
354      </nav>
355      <!-- Panel Mega Menu - Outside navbar for full-screen -->
356      <div class="mm2-panel" data-mm2="panel" role="dialog" aria-label="Kategori">
357         <div class="mm2-view is-active" data-mm2="top">
358            <div class="mm2-top">
359               <div style="text-align:center;padding:40px;color:var(--mm2-fg-muted);">
360                  <p>Gagal memuat kategori. Silakan coba lagi.</p>
361               </div>
362            </div>
363         </div>
364         <div class="mm2-view" data-mm2="detail"></div>
365      </div>
366      <!-- Backdrop - Outside navbar for full-screen -->
367      <div class="mm2-backdrop" data-mm2="backdrop"></div>
368      <!-- Mobile Bottom Navigation -->
369      <nav class="bottom-nav">
370         <div class="bottom-nav-inner">
371            <!-- Home -->
372            <a href="https://perfilaluminioestructural.com/" class="bottom-nav-item active" id="bottomHomeBtn" data-page="home">
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" stroke-linecap="round" stroke-linejoin="round">
376                     <path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"></path>
377                     <polyline points="9 22 9 12 15 12 15 22"></polyline>
378                  </svg>
379                  <!-- Filled icon (active) -->
380                  <svg class="icon-filled" viewBox="0 0 24 24" fill="currentColor">
381                     <path d="M11.47 3.84a.75.75 0 011.06 0l8.69 8.69a.75.75 0 010 1.06l-.03.03a.75.75 0 01-1.06 0l-8.16-8.16-8.16 8.16a.75.75 0 01-1.06 0l-.03-.03a.75.75 0 010-1.06l8.69-8.69z"></path>
382                     <path d="M12 5.5l-7.5 7.5v8.25c0 .414.336.75.75.75h3.75v-6h6v6h3.75a.75.75 0 00.75-.75V13l-7.5-7.5z"></path>
383                  </svg>
384               </div>
385               <span class="bottom-nav-item-label">Home</span>
386            </a>
387            <!-- Kategori -->
388            <button class="bottom-nav-item" id="bottomCategoryBtn" data-mm2="trigger" aria-label="Kategori">
389               <div class="bottom-nav-item-icon">
390                  <!-- Outlined icon (default) -->
391                  <svg class="icon-outlined" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
392                     <line x1="3" y1="12" x2="21" y2="12"></line>
393                     <line x1="3" y1="6" x2="21" y2="6"></line>
394                     <line x1="3" y1="18" x2="21" y2="18"></line>
395                  </svg>
396                  <!-- Filled icon (active) -->
397                  <svg class="icon-filled" viewBox="0 0 24 24" fill="currentColor">
398                     <path d="M3 5.25A.75.75 0 013.75 4.5h16.5a.75.75 0 010 1.5H3.75A.75.75 0 013 5.25zM3 12a.75.75 0 01.75-.75h16.5a.75.75 0 010 1.5H3.75A.75.75 0 013 12zm0 6.75a.75.75 0 01.75-.75h16.5a.75.75 0 010 1.5H3.75a.75.75 0 01-.75-.75z"></path>
399                  </svg>
400               </div>
401               <span class="bottom-nav-item-label">Kategori</span>
402            </button>
403            <!-- Keranjang -->
404            <button class="bottom-nav-item" id="bottomCartBtn">
405               <div class="bottom-nav-item-icon">
406                  <!-- Outlined icon (default) -->
407                  <svg class="icon-outlined" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
408                     <circle cx="9" cy="21" r="1"></circle>
409                     <circle cx="20" cy="21" r="1"></circle>
410                     <path d="M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6"></path>
411                  </svg>
412                  <!-- Filled icon (active) -->
413                  <svg class="icon-filled" viewBox="0 0 24 24" fill="currentColor">
414                     <path d="M2.25 2.25a.75.75 0 000 1.5h1.386c.17 0 .318.114.362.278l2.558 9.592a3.752 3.752 0 00-2.806 3.63c0 .414.336.75.75.75h15.75a.75.75 0 000-1.5H5.378A2.25 2.25 0 017.5 15h11.218a.75.75 0 00.674-.421 60.358 60.358 0 002.96-7.228.75.75 0 00-.525-.965A60.864 60.864 0 005.68 4.509l-.232-.867A1.875 1.875 0 003.636 2.25H2.25zM3.75 20.25a1.5 1.5 0 113 0 1.5 1.5 0 01-3 0zM16.5 20.25a1.5 1.5 0 113 0 1.5 1.5 0 01-3 0z"></path>
415                  </svg>
416                  <span class="bottom-nav-item-badge" id="bottomCartCount" style="display: none;">0</span>
417               </div>
418               <span class="bottom-nav-item-label">Keranjang</span>
419            </button>
420            <!-- Compare -->
421            <button class="bottom-nav-item" id="bottomCompareBtn">
422               <div class="bottom-nav-item-icon">
423                  <!-- Outlined icon (default) -->
424                  <svg class="icon-outlined" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
425                     <polyline points="17 11 21 7 17 3"></polyline>
426                     <path d="M21 7H9"></path>
427                     <polyline points="7 21 3 17 7 13"></polyline>
428                     <path d="M15 17H3"></path>
429                  </svg>
430                  <!-- Filled icon (active) -->
431                  <svg class="icon-filled" viewBox="0 0 24 24" fill="currentColor">
432                     <path d="M21.75 6.75a.75.75 0 00-.75-.75H9a.75.75 0 000 1.5h10.19L15.22 11.47a.75.75 0 001.06 1.06l4.5-4.5a.75.75 0 00.22-.53.75.75 0 00-.22-.53l-.03-.03zM8.78 12.47L4.28 16.97a.75.75 0 000 1.06l4.5 4.5a.75.75 0 001.06-1.06L6.06 18H15a.75.75 0 000-1.5H4.81l3.97-3.97a.75.75 0 00-1.06-1.06z"></path>
433                  </svg>
434                  <span class="bottom-nav-item-badge" id="bottomCompareCount" style="display:none;">0</span>
435               </div>
436               <span class="bottom-nav-item-label">Compare</span>
437            </button>
438            <!-- Chat - Always show, check login in JavaScript -->
439            <button class="bottom-nav-item" id="bottomChatBtn" data-page="chat">
440               <div class="bottom-nav-item-icon">
441                  <!-- Outlined icon (default) -->
442                  <svg class="icon-outlined" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" opacity="0.85">
443                     <path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"></path>
444                  </svg>
445                  <!-- Filled icon (active) -->
446                  <svg class="icon-filled" viewBox="0 0 24 24" fill="currentColor">
447                     <path d="M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2z"></path>
448                  </svg>
449                  <span class="bottom-nav-item-badge" id="bottomChatCount" style="display:none;">0</span>
450               </div>
451               <span class="bottom-nav-item-label">Chat</span>
452            </button>
453            <!-- Akun -->
454            <button class="bottom-nav-item" id="bottomLoginBtn">
455               <div class="bottom-nav-item-icon">
456                  <!-- Outlined icon (default) -->
457                  <svg class="icon-outlined" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
458                     <path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"></path>
459                     <circle cx="12" cy="7" r="4"></circle>
460                  </svg>
461                  <!-- Filled icon (active) -->
462                  <svg class="icon-filled" viewBox="0 0 24 24" fill="currentColor">
463                     <path fill-rule="evenodd" d="M7.5 6a4.5 4.5 0 119 0 4.5 4.5 0 01-9 0zM3.751 20.105a8.25 8.25 0 0116.498 0 .75.75 0 01-.437.695A18.683 18.683 0 0112 22.5c-2.786 0-5.433-.608-7.812-1.7a.75.75 0 01-.437-.695z" clip-rule="evenodd"></path>
464                  </svg>
465               </div>
466               <span class="bottom-nav-item-label">Login</span>
467            </button>
468         </div>
469      </nav>
470      <!-- Mobile User Menu Bottom Sheet -->
471      
471<script nonce="">
472         (function() {
473           const btn = document.getElementById('megaMoreBtn');
474           const dd = document.getElementById('megaMoreDropdown');
475           if (!btn || !dd) return;
476         
477           function openDD() {
478             dd.hidden = false;
479             btn.setAttribute('aria-expanded', 'true');
480             document.addEventListener('click', outside, {
481               capture: true
482             });
483             document.addEventListener('keydown', esc);
484           }
485         
486           function closeDD() {
487             if (dd.hidden) return;
488             dd.hidden = true;
489             btn.setAttribute('aria-expanded', 'false');
490             document.removeEventListener('click', outside, {
491               capture: true
492             });
493             document.removeEventListener('keydown', esc);
494           }
495         
496           function toggle() {
497             dd.hidden ? openDD() : closeDD();
498           }
499         
500           function outside(e) {
501             if (!dd.contains(e.target) && e.target !== btn) {
502               closeDD();
503             }
504           }
505         
506           function esc(e) {
507             if (e.key === 'Escape') {
508               closeDD();
509               btn.focus();
510             }
511           }
512           btn.addEventListener('click', toggle);
513         })();
514         // ========== HORIZONTAL SCROLL FADE INDICATOR ==========
515         (function() {
516           const megaCats = document.getElementById('megaCatsScroll');
517           const fade = document.getElementById('megaCatsFade');
518           if (!megaCats || !fade) return;
519         
520           function updateFade() {
521             const scrollLeft = megaCats.scrollLeft;
522             const scrollWidth = megaCats.scrollWidth;
523             const clientWidth = megaCats.clientWidth;
524             const maxScroll = scrollWidth - clientWidth;
525             // Hide fade when scrolled to end (within 10px tolerance)
526             if (maxScroll - scrollLeft <= 10) {
527               fade.style.opacity = '0';
528             } else {
529               fade.style.opacity = '1';
530             }
531           }
532           // Update on scroll
533           megaCats.addEventListener('scroll', updateFade, {
534             passive: true
535           });
536           // Update on resize
537           window.addEventListener('resize', updateFade, {
538             passive: true
539           });
540           // Initial check
541           setTimeout(updateFade, 100);
542         })();
543         document.addEventListener('DOMContentLoaded', function() {
544           var input = document.getElementById('searchInput');
545           if (!input) return;
546           input.addEventListener('keydown', function(e) {
547             if (e.key === 'Enter') {
548               e.preventDefault();
549               var form = input.form;
550               if (!form) return;
551               if (typeof form.requestSubmit === 'function') form.requestSubmit();
552               else form.submit();
553             }
554           });
555         });
556         (function() {
557           const cartBtn = document.getElementById('cartBtn');
558           if (cartBtn) {
559             cartBtn.addEventListener('click', function(e) {
560               e.preventDefault();
561               const checkLogin = () => {
562                 return window.isUserLoggedIn ? window.isUserLoggedIn() : false;
563               };
564               if (checkLogin()) {
565                 window.location.href = '/keranjang';
566               } else {
567                 showCartLoginModal();
568               }
569             });
570           }
571           const loginBtn = document.getElementById('loginBtn');
572           if (loginBtn) {
573             loginBtn.addEventListener('click', function(e) {
574               e.preventDefault();
575               window.location.href = 'https://perfilaluminioestructural.com/';
576             });
577           }
578           const userMenuBtn = document.getElementById('userMenuBtn');
579           const userDropdown = document.getElementById('userDropdown');
580           if (userMenuBtn && userDropdown) {
581             function openDropdown() {
582               userDropdown.hidden = false;
583               userMenuBtn.setAttribute('aria-expanded', 'true');
584               document.addEventListener('click', closeOnOutside, {
585                 capture: true
586               });
587               document.addEventListener('keydown', closeOnEscape);
588             }
589         
590             function closeDropdown() {
591               if (userDropdown.hidden) return;
592               userDropdown.hidden = true;
593               userMenuBtn.setAttribute('aria-expanded', 'false');
594               document.removeEventListener('click', closeOnOutside, {
595                 capture: true
596               });
597               document.removeEventListener('keydown', closeOnEscape);
598             }
599         
600             function closeOnOutside(e) {
601               if (!userDropdown.contains(e.target) && e.target !== userMenuBtn) {
602                 closeDropdown();
603               }
604             }
605         
606             function closeOnEscape(e) {
607               if (e.key === 'Escape') {
608                 closeDropdown();
609                 userMenuBtn.focus();
610               }
611             }
612             userMenuBtn.addEventListener('click', function(e) {
613               e.preventDefault();
614               userDropdown.hidden ? openDropdown() : closeDropdown();
615             });
616             // Close dropdown when clicking profile links
617             userDropdown.querySelectorAll('[data-close-dropdown]').forEach(link => {
618               link.addEventListener('click', function() {
619                 closeDropdown();
620               });
621             });
622           }
623           // Bottom nav profile button - toggle mobile bottom sheet
624           const bottomProfileBtn = document.getElementById('bottomProfileBtn');
625           const mobileUserSheet = document.getElementById('mobileUserSheet');
626           const mobileUserSheetBackdrop = document.getElementById('mobileUserSheetBackdrop');
627           if (bottomProfileBtn && mobileUserSheet) {
628             function openMobileSheet() {
629               mobileUserSheet.hidden = false;
630               document.body.style.overflow = 'hidden';
631               // Trigger animation
632               requestAnimationFrame(() => {
633                 mobileUserSheet.classList.add('active');
634               });
635             }
636         
637             function closeMobileSheet() {
638               mobileUserSheet.classList.remove('active');
639               document.body.style.overflow = '';
640               setTimeout(() => {
641                 mobileUserSheet.hidden = true;
642               }, 300);
643             }
644             bottomProfileBtn.addEventListener('click', function(e) {
645               e.preventDefault();
646               openMobileSheet();
647             });
648             if (mobileUserSheetBackdrop) {
649               mobileUserSheetBackdrop.addEventListener('click', closeMobileSheet);
650             }
651             // Close on escape key
652             document.addEventListener('keydown', function(e) {
653               if (e.key === 'Escape' && !mobileUserSheet.hidden) {
654                 closeMobileSheet();
655               }
656             });
657             // Close sheet when clicking profile links
658             mobileUserSheet.querySelectorAll('[data-close-sheet]').forEach(link => {
659               link.addEventListener('click', function() {
660                 closeMobileSheet();
661               });
662             });
663           }
664           // Handle Google avatar error in bottom-nav (fallback to initials)
665           const bottomNavAvatar = document.querySelector('.bottom-nav-avatar-img');
666           if (bottomNavAvatar) {
667             bottomNavAvatar.addEventListener('error', function() {
668               const initials = this.getAttribute('data-fallback-initials') || 'U';
669               const initialsDiv = document.createElement('div');
670               initialsDiv.className = 'bottom-nav-avatar-initials';
671               initialsDiv.textContent = initials;
672               this.parentNode.replaceChild(initialsDiv, this);
673             });
674           }
675           // Mobile logout button
676           const mobileLogoutBtn = document.getElementById('mobileLogoutBtn');
677           if (mobileLogoutBtn) {
678             mobileLogoutBtn.addEventListener('click', async function(e) {
679               e.preventDefault();
680               // Check push notification before logout
681               if (window.ChatNotification && typeof window.ChatNotification.confirmLogoutWithPushNotification === 'function') {
682                 const confirmLogout = await window.ChatNotification.confirmLogoutWithPushNotification();
683                 if (!confirmLogout) {
684                   return; // User cancelled logout
685                 }
686               }
687               const getCsrfToken = () => document.querySelector('meta[name="csrf-token"]')?.getAttribute('content') || '';
688               try {
689                 const response = await fetch('/auth/logout', {
690                   method: 'POST',
691                   credentials: 'same-origin',
692                   headers: {
693                     'Content-Type': 'application/json',
694                     'X-CSRF-Token': getCsrfToken()
695                   },
696                   body: JSON.stringify({
697                     csrf_token: getCsrfToken()
698                   })
699                 });
700                 if (response.ok) {
701                   if (window.guestCart && typeof window.guestCart.clear === 'function') {
702                     window.guestCart.clear();
703                   }
704                   window.location.href = '/login?logged_out=1';
705                 } else {
706                   console.error('Logout failed');
707                   window.location.href = '/logout';
708                 }
709               } catch (error) {
710                 console.error('Logout error:', error);
711                 window.location.href = '/logout';
712               }
713             });
714           }
715           const logoutBtn = document.getElementById('logoutBtn');
716           if (logoutBtn) {
717             logoutBtn.addEventListener('click', async function(e) {
718               e.preventDefault();
719               // Check push notification before logout
720               if (window.ChatNotification && typeof window.ChatNotification.confirmLogoutWithPushNotification === 'function') {
721                 const confirmLogout = await window.ChatNotification.confirmLogoutWithPushNotification();
722                 if (!confirmLogout) {
723                   return; // User cancelled logout
724                 }
725               }
726               const getCsrfToken = () => document.querySelector('meta[name="csrf-token"]')?.getAttribute('content') || '';
727               try {
728                 const response = await fetch('/auth/logout', {
729                   method: 'POST',
730                   credentials: 'same-origin',
731                   headers: {
732                     'Content-Type': 'application/json',
733                     'X-CSRF-Token': getCsrfToken()
734                   },
735                   body: JSON.stringify({
736                     csrf_token: getCsrfToken()
737                   })
738                 });
739                 if (response.ok) {
740                   if (window.guestCart && typeof window.guestCart.clear === 'function') {
741                     window.guestCart.clear();
742                   }
743                   window.location.href = '/login?logged_out=1';
744                 } else {
745                   console.error('Logout failed');
746                   window.location.href = '/logout';
747                 }
748               } catch (error) {
749                 console.error('Logout error:', error);
750                 window.location.href = '/logout';
751               }
752             });
753           }
754           const wishlistBtn = document.getElementById('wishlistBtn');
755           const notifBtn = document.getElementById('notifBtn');
756           if (wishlistBtn) {
757             wishlistBtn.addEventListener('click', function(e) {
758               e.preventDefault();
759               alert('Fitur wishlist akan segera tersedia!');
760             });
761           }
762           if (notifBtn) {
763             notifBtn.addEventListener('click', function(e) {
764               e.preventDefault();
765               alert('Fitur notifikasi akan segera tersedia!');
766             });
767           }
768         })();
769         // ========== MOBILE BOTTOM NAVIGATION ==========
770         (function initBottomNav() {
771           // Sync cart badge with bottom nav
772           function syncBottomCartBadge() {
773             const mainBadge = document.getElementById('cartCount');
774             const bottomBadge = document.getElementById('bottomCartCount');
775             if (mainBadge && bottomBadge) {
776               const count = mainBadge.textContent;
777               bottomBadge.textContent = count;
778               bottomBadge.style.display = parseInt(count) > 0 ? 'flex' : 'none';
779             }
780           }
781           // Sync compare badge with bottom nav
782           function syncBottomCompareBadge() {
783             const mainBadge = document.getElementById('compareCount');
784             const bottomBadge = document.getElementById('bottomCompareCount');
785             if (mainBadge && bottomBadge) {
786               const count = mainBadge.textContent;
787               bottomBadge.textContent = count;
788               bottomBadge.style.display = parseInt(count) > 0 ? 'flex' : 'none';
789             }
790           }
791           // Initial sync
792           syncBottomCartBadge();
793           syncBottomCompareBadge();
794           // Observe badge changes
795           const observer = new MutationObserver(function() {
796             syncBottomCartBadge();
797             syncBottomCompareBadge();
798           });
799           const cartBadge = document.getElementById('cartCount');
800           const compareBadge = document.getElementById('compareCount');
801           if (cartBadge) observer.observe(cartBadge, {
802             childList: true,
803             characterData: true,
804             subtree: true
805           });
806           if (compareBadge) observer.observe(compareBadge, {
807             childList: true,
808             characterData: true,
809             subtree: true
810           });
811           // Bottom Cart Button
812           const bottomCartBtn = document.getElementById('bottomCartBtn');
813           if (bottomCartBtn) {
814             bottomCartBtn.addEventListener('click', function(e) {
815               e.preventDefault();
816               const checkLogin = () => {
817                 return window.isUserLoggedIn ? window.isUserLoggedIn() : false;
818               };
819               if (checkLogin()) {
820                 window.location.href = '/keranjang';
821               } else {
822                 showCartLoginModal();
823               }
824             });
825           }
826           // Bottom Compare Button
827           const bottomCompareBtn = document.getElementById('bottomCompareBtn');
828           if (bottomCompareBtn) {
829             bottomCompareBtn.addEventListener('click', function(e) {
830               e.preventDefault();
831               // Close chat widget if open
832               if (window.plazaChat && window.plazaChat.isWidgetOpen) {
833                 window.plazaChat.closeWidget();
834               }
835               const mainCompareBtn = document.getElementById('compareBtn');
836               if (mainCompareBtn) {
837                 mainCompareBtn.click();
838               }
839             });
840           }
841           // Bottom Category Button - triggers mega menu
842           const bottomCategoryBtn = document.getElementById('bottomCategoryBtn');
843           if (bottomCategoryBtn) {
844             bottomCategoryBtn.addEventListener('click', function(e) {
845               e.preventDefault();
846               // Trigger desktop mega menu
847               const desktopTrigger = document.querySelector('.mm2-trigger:not(#bottomCategoryBtn)');
848               if (desktopTrigger) {
849                 desktopTrigger.click();
850               }
851             });
852           }
853           // Bottom Login Button
854           const bottomLoginBtn = document.getElementById('bottomLoginBtn');
855           if (bottomLoginBtn) {
856             bottomLoginBtn.addEventListener('click', function(e) {
857               e.preventDefault();
858               window.location.href = '/login';
859             });
860           }
861           // Bottom Chat Button
862           const bottomChatBtn = document.getElementById('bottomChatBtn');
863           if (bottomChatBtn) {
864             bottomChatBtn.addEventListener('click', function(e) {
865               e.preventDefault();
866               // Trigger chat widget (try multiple times if needed)
867               const triggerChat = () => {
868                 const chatToggle = document.getElementById('chat-toggle-btn');
869                 if (chatToggle) {
870                   chatToggle.click();
871                   return true;
872                 }
873                 return false;
874               };
875               // Immediate attempt
876               if (!triggerChat()) {
877                 // Retry after 100ms if not found
878                 setTimeout(() => {
879                   if (!triggerChat()) {
880                     // Last resort: manually show popup
881                     const popup = document.getElementById('chat-popup');
882                     if (popup) {
883                       popup.style.display = 'block';
884                     }
885                   }
886                 }, 100);
887               }
888             });
889           }
890           // Sync chat unread badge
891           function syncBottomChatBadge() {
892             const chatBadge = document.getElementById('chat-unread-badge');
893             const bottomChatBadge = document.getElementById('bottomChatCount');
894             if (chatBadge && bottomChatBadge) {
895               const count = chatBadge.textContent;
896               bottomChatBadge.textContent = count;
897               bottomChatBadge.style.display = chatBadge.style.display;
898             }
899           }
900           // Observe chat badge changes
901           const chatBadge = document.getElementById('chat-unread-badge');
902           if (chatBadge) {
903             observer.observe(chatBadge, {
904               attributes: true,
905               childList: true,
906               characterData: true,
907               subtree: true
908             });
909             syncBottomChatBadge();
910           }
911           // Active state management based on current page
912           function updateActiveState() {
913             const currentPath = window.location.pathname;
914             const bottomNavItems = document.querySelectorAll('.bottom-nav-item');
915             bottomNavItems.forEach(item => {
916               item.classList.remove('active');
917               const itemId = item.id;
918               const page = item.getAttribute('data-page');
919               const href = item.getAttribute('href');
920               // Check by ID for specific pages
921               if (itemId === 'bottomHomeBtn' && currentPath === '/') {
922                 item.classList.add('active');
923               } else if (itemId === 'bottomCartBtn' && (currentPath === '/keranjang' || currentPath === '/cart')) {
924                 item.classList.add('active');
925               } else if (itemId === 'bottomProfileBtn' && currentPath.startsWith('/profile')) {
926                 item.classList.add('active');
927               } else if (itemId === 'bottomCategoryBtn' && currentPath.startsWith('/kategori')) {
928                 item.classList.add('active');
929               } else if (itemId === 'bottomCompareBtn' && currentPath === '/compare') {
930                 item.classList.add('active');
931               } else if (itemId === 'bottomChatBtn' && currentPath === '/chat') {
932                 item.classList.add('active');
933               }
934               // Fallback: check by data-page attribute
935               else if (page === 'home' && currentPath === '/') {
936                 item.classList.add('active');
937               } else if (page === 'profile' && currentPath.startsWith('/profile')) {
938                 item.classList.add('active');
939               }
940               // Fallback: check by href
941               else if (href && currentPath === href) {
942                 item.classList.add('active');
943               }
944             });
945           }
946           // Update active state on load
947           updateActiveState();
948           // Bottom nav always visible - auto-hide disabled for better UX
949           // const bottomNav = document.querySelector('.bottom-nav');
950           // if (bottomNav && window.innerWidth <= 640) {
951           //   // Auto-hide feature disabled
952           // }
953         })();
954         // Cart Login Modal Handler (Global scope)
955         function showCartLoginModal() {
956           const modal = document.getElementById('cartLoginModal');
957           if (!modal) return;
958           modal.classList.add('show');
959           const confirmBtn = document.getElementById('cartLoginConfirm');
960           const registerBtn = document.getElementById('cartRegisterBtn');
961           const cancelBtn = document.getElementById('cartLoginCancel');
962           const handleLogin = () => {
963             window.location.href = '/login?return=' + encodeURIComponent('/keranjang');
964           };
965           const handleRegister = () => {
966             window.location.href = '/register?return=' + encodeURIComponent('/keranjang');
967           };
968           const handleCancel = () => {
969             modal.classList.remove('show');
970             confirmBtn.removeEventListener('click', handleLogin);
971             registerBtn.removeEventListener('click', handleRegister);
972             cancelBtn.removeEventListener('click', handleCancel);
973           };
974           confirmBtn.removeEventListener('click', handleLogin);
975           registerBtn.removeEventListener('click', handleRegister);
976           cancelBtn.removeEventListener('click', handleCancel);
977           confirmBtn.addEventListener('click', handleLogin);
978           registerBtn.addEventListener('click', handleRegister);
979           cancelBtn.addEventListener('click', handleCancel);
980           modal.addEventListener('click', (e) => {
981             if (e.target === modal) {
982               handleCancel();
983             }
984           });
985         }
986      </script>
986
987      
987<script src="https://plazaitdotid.pages.dev/assets/cart-badge.js.download" defer="" nonce=""></script>
987
988      <!-- Product Compare Sidebar -->
989      <div class="compare-sidebar" id="compareSidebar">
990         <div class="compare-header">
991            <h4 class="compare-title">
992               <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
993                  <path d="M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z"></path>
994               </svg>
995               Bandingkan Produk <span class="compare-count" id="compareCountSidebar">(0)</span>
996            </h4>
997            <button class="compare-close" id="compareClose" aria-label="Tutup">
998               <svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor">
999                  <path d="M18.3 5.7a1 1 0 0 0-1.4 0L12 10.6 7.1 5.7a1 1 0 1 0-1.4 1.4L10.6 12l-4.9 4.9a1 1 0 0 0 1.4 1.4L12 13.4l4.9 4.9a1 1 0 0 0 1.4-1.4L13.4 12l4.9-4.9a1 1 0 0 0 0-1.4z"></path>
1000               </svg>
1001            </button>
1002         </div>
1003         <div class="compare-content">
1004            <div class="compare-empty" id="compareEmpty">
1005               <div class="empty-icon">
1006                  <svg width="48" height="48" viewBox="0 0 24 24" fill="currentColor" opacity="0.3">
1007                     <path d="M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z"></path>
1008                  </svg>
1009               </div>
1010               <h5>Belum ada produk dipilih</h5>
1011               <p>Pilih produk yang ingin dibandingkan dengan klik tombol "Bandingkan Produk" di halaman produk.</p>
1012            </div>
1013            <div class="compare-list" id="compareList">
1014               <!-- Products will be populated here -->
1015            </div>
1016         </div>
1017         <div class="compare-actions" id="compareActions">
1018            <button class="btn btn-outline-danger btn-sm" id="compareClearAll">
1019               <svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor">
1020                  <path d="M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z"></path>
1021               </svg>
1022               Hapus Semua 
1023            </button>
1024            <button class="btn btn-primary btn-sm" id="compareAnalyze" disabled="">
1025               <svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor">
1026                  <path d="M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4M11,16.5L18,9.5L16.59,8.09L11,13.67L7.91,10.59L6.5,12L11,16.5Z"></path>
1027               </svg>
1028               Analisis AI 
1029            </button>
1030         </div>
1031         <!-- AI Disclaimer in Sidebar -->
1032         <div class="compare-disclaimer">
1033            <div class="ai-disclaimer">
1034               <div class="disclaimer-text">
1035                  <strong>💡 Catatan:</strong> Analisis ini dihasilkan secara otomatis dan dapat memiliki keterbatasan. Gunakan sebagai referensi tambahan dengan tetap mempertimbangkan kebutuhan Anda. Untuk informasi lebih lanjut, silakan hubungi tim SBOBET.
1036               </div>
1037            </div>
1038         </div>
1039      </div>
1040      <link rel="stylesheet" href="https://perfilaluminioestructural.com/sbobet/pd-lightbox.css">
1041      <style>
1042         .paylater-promo {
1043         display: inline-flex;
1044         align-items: center;
1045         gap: 8px;
1046         background: linear-gradient(135deg, #f0fdf4 0, #dcfce7 100%);
1047         border: 1px solid #86efac;
1048         border-radius: 8px;
1049         padding: 8px 12px;
1050         font-size: 13px;
1051         line-height: 1.4;
1052         margin: 8px 0
1053         }
1054         .paylater-promo-sm {
1055         padding: 6px 10px;
1056         font-size: 11px;
1057         gap: 6px
1058         }
1059         .paylater-promo-md {
1060         padding: 8px 12px;
1061         font-size: 13px;
1062         gap: 8px
1063         }
1064         .paylater-promo-lg {
1065         padding: 10px 16px;
1066         font-size: 14px;
1067         gap: 10px
1068         }
1069         .paylater-icon {
1070         font-size: 1.2em;
1071         flex-shrink: 0
1072         }
1073         .paylater-text {
1074         display: flex;
1075         flex-direction: column;
1076         gap: 2px
1077         }
1078         .paylater-text strong {
1079         color: #15803d;
1080         font-weight: 600
1081         }
1082         .paylater-text small {
1083         color: #16a34a;
1084         font-size: .85em;
1085         opacity: .9
1086         }
1087         .paylater-desktop-only {
1088         display: none
1089         }
1090         .paylater-mobile-only {
1091         display: flex
1092         }
1093         @media (min-width:641px) {
1094         .paylater-desktop-only {
1095         display: flex
1096         }
1097         .paylater-mobile-only {
1098         display: none
1099         }
1100         }
1101         @media (max-width:640px) {
1102         .paylater-promo {
1103         font-size: 12px;
1104         padding: 7px 10px
1105         }
1106         .paylater-promo-lg {
1107         font-size: 13px;
1108         padding: 8px 12px
1109         }
1110         }
1111         @media print {
1112         .paylater-promo {
1113         display: none !important
1114         }
1115         }
1116         .paylater-compact {
1117         display: inline-block;
1118         font-size: 11px;
1119         font-weight: 600;
1120         color: #059669;
1121         background: #d1fae5;
1122         padding: 3px 8px;
1123         border-radius: 4px;
1124         margin: 6px 0 4px;
1125         line-height: 1.3
1126         }
1127         @media (max-width:640px) {
1128         .paylater-compact {
1129         font-size: 10px;
1130         padding: 2px 6px;
1131         margin: 5px 0 3px
1132         }
1133         }
1134         @media print {
1135         .paylater-compact {
1136         display: none !important
1137         }
1138         }
1139      </style>
1140      <style nonce="">
1141         .pd-voucher-minimal {
1142         margin: 10px 0;
1143         display: flex;
1144         flex-direction: column;
1145         gap: 6px
1146         }
1147         .pdv-min-item {
1148         display: flex;
1149         align-items: center;
1150         gap: 8px;
1151         padding: 0;
1152         height: 32px;
1153         transition: all .2s ease
1154         }
1155         .pdv-min-hidden {
1156         display: none
1157         }
1158         .pdv-min-disabled {
1159         opacity: .5
1160         }
1161         .pdv-badge-btn {
1162         display: inline-flex;
1163         align-items: center;
1164         gap: 8px;
1165         background: linear-gradient(135deg, #667eea 0, #764ba2 100%);
1166         border: none;
1167         border-radius: 8px;
1168         padding: 3px;
1169         cursor: pointer;
1170         transition: all .2s ease;
1171         width: auto
1172         }
1173         .pdv-badge-btn:hover:not(:disabled) {
1174         transform: translateY(-1px);
1175         box-shadow: 0 4px 12px rgba(102, 126, 234, .3)
1176         }
1177         .pdv-badge-btn:disabled {
1178         opacity: .6;
1179         cursor: not-allowed
1180         }
1181         .pdv-badge-icon {
1182         color: #fff;
1183         flex-shrink: 0
1184         }
1185         .pdv-badge-text {
1186         font-size: 14px;
1187         font-weight: 700;
1188         color: #fff;
1189         white-space: nowrap
1190         }
1191         .pdv-badge-code {
1192         font-family: 'Courier New', monospace;
1193         font-size: 13px;
1194         font-weight: 700;
1195         color: #fff;
1196         background: rgba(255, 255, 255, .2);
1197         padding: 4px 8px;
1198         border-radius: 4px;
1199         border: none;
1200         white-space: nowrap
1201         }
1202         .pdv-min-copy,
1203         .pdv-min-more {
1204         padding: 4px 12px;
1205         font-size: 12px;
1206         font-weight: 600;
1207         border-radius: 5px;
1208         border: 1px solid #e2e8f0;
1209         background: #fff;
1210         color: #667eea;
1211         cursor: pointer;
1212         transition: all .2s ease;
1213         white-space: nowrap
1214         }
1215         .pdv-min-copy:hover:not(:disabled),
1216         .pdv-min-more:hover {
1217         background: #667eea;
1218         color: #fff;
1219         border-color: #667eea
1220         }
1221         .pdv-min-copy:disabled {
1222         opacity: .4;
1223         cursor: not-allowed
1224         }
1225         .pdv-min-copy.copied {
1226         background: #c52222;
1227         color: #fff;
1228         border-color: #c52222
1229         }
1230         .pdv-min-more {
1231         margin-left: auto
1232         }
1233         .modal-close {
1234         position: absolute;
1235         top: 20px;
1236         right: 20px;
1237         background: none;
1238         border: none;
1239         cursor: pointer;
1240         color: #64748b;
1241         padding: 4px;
1242         transition: color .2s ease
1243         }
1244         .modal-close:hover {
1245         color: #1e293b
1246         }
1247         .modal-body {
1248         margin-bottom: 8px
1249         }
1250         .voucher-modal-content {
1251         text-align: center
1252         }
1253         .voucher-modal-badge {
1254         display: inline-flex;
1255         flex-direction: row;
1256         align-items: center;
1257         gap: 6px;
1258         background: linear-gradient(135deg, #667eea 0, #764ba2 100%);
1259         border-radius: 10px;
1260         padding: 8px 16px;
1261         margin-bottom: 12px
1262         }
1263         .vmb-value {
1264         font-size: 18px;
1265         font-weight: 700;
1266         color: #fff;
1267         line-height: 1
1268         }
1269         .vmb-label {
1270         font-size: 18px;
1271         font-weight: 700;
1272         color: #fff;
1273         text-transform: uppercase;
1274         letter-spacing: .5px
1275         }
1276         .voucher-modal-code {
1277         font-family: 'Courier New', monospace;
1278         font-size: 14px;
1279         font-weight: 700;
1280         color: #667eea;
1281         background: rgba(102, 126, 234, .1);
1282         padding: 6px 12px;
1283         border-radius: 6px;
1284         border: 2px dashed rgba(102, 126, 234, .3);
1285         display: inline-block;
1286         margin-bottom: 10px
1287         }
1288         .voucher-modal-name {
1289         font-size: 14px;
1290         font-weight: 600;
1291         color: #1e293b;
1292         margin-bottom: 16px
1293         }
1294         .voucher-modal-details {
1295         text-align: left;
1296         background: #f8fafc;
1297         border-radius: 8px;
1298         padding: 12px;
1299         margin-bottom: 16px
1300         }
1301         .vmd-item {
1302         display: flex;
1303         align-items: flex-start;
1304         gap: 8px;
1305         padding: 6px 0;
1306         font-size: 13px;
1307         color: #64748b;
1308         border-bottom: 1px solid #e2e8f0
1309         }
1310         .vmd-item:last-child {
1311         border-bottom: none
1312         }
1313         .vmd-item svg {
1314         color: #667eea;
1315         flex-shrink: 0;
1316         margin-top: 2px
1317         }
1318         .vmd-item strong {
1319         color: #1e293b
1320         }
1321         .modal-actions {
1322         padding: 20px
1323         }
1324         .modal-btn-primary {
1325         background: linear-gradient(135deg, #667eea 0, #764ba2 100%);
1326         color: #fff
1327         }
1328         .modal-btn-primary:hover {
1329         opacity: .9;
1330         transform: translateY(-1px)
1331         }
1332         @media (max-width:640px) {
1333         .pdv-min-item {
1334         gap: 6px
1335         }
1336         .pdv-badge-btn {
1337         padding: 3px;
1338         gap: 6px
1339         }
1340         .pdv-badge-text {
1341         font-size: 13px
1342         }
1343         .pdv-badge-code {
1344         font-size: 12px;
1345         padding: 3px 6px
1346         }
1347         .pdv-min-copy,
1348         .pdv-min-more {
1349         padding: 3px 10px;
1350         font-size: 11px
1351         }
1352         .modal-dialog {
1353         max-width: 95%;
1354         margin: 20px
1355         }
1356         .vmb-value {
1357         font-size: 16px
1358         }
1359         .vmb-label {
1360         font-size: 16px
1361         }
1362         .voucher-modal-code {
1363         font-size: 13px;
1364         padding: 5px 10px
1365         }
1366         }
1367      </style>
1368      <style nonce="">
1369         .promo-endyear-mini-banner {
1370         display: flex;
1371         align-items: center;
1372         gap: 12px;
1373         padding: 12px 16px;
1374         background: rgba(255, 255, 255, .8);
1375         backdrop-filter: blur(10px);
1376         -webkit-backdrop-filter: blur(10px);
1377         border: 2px solid rgba(242, 140, 26, .2);
1378         border-radius: 12px;
1379         margin: 16px 0;
1380         box-shadow: 0 4px 16px rgba(0, 0, 0, .08);
1381         transition: all .3s ease
1382         }
1383         .promo-endyear-mini-banner:hover {
1384         transform: translateY(-2px);
1385         box-shadow: 0 6px 20px rgba(0, 0, 0, .12);
1386         border-color: rgba(242, 140, 26, .4)
1387         }
1388         .pey-icon {
1389         font-size: 32px;
1390         line-height: 1;
1391         flex-shrink: 0
1392         }
1393         .pey-content {
1394         flex: 1;
1395         min-width: 0
1396         }
1397         .pey-content strong {
1398         display: block;
1399         font-size: 14px;
1400         font-weight: 700;
1401         color: #ccffe2;
1402         margin-bottom: 2px
1403         }
1404         .pey-content span {
1405         display: block;
1406         font-size: 13px;
1407         color: #64748b;
1408         line-height: 1.4
1409         }
1410         .pey-link {
1411         flex-shrink: 0;
1412         padding: 8px 16px;
1413         background: linear-gradient(135deg, #ccffe2, #FFB84D);
1414         color: #fff;
1415         text-decoration: none;
1416         font-size: 13px;
1417         font-weight: 700;
1418         border-radius: 8px;
1419         white-space: nowrap;
1420         transition: all .2s ease;
1421         box-shadow: 0 2px 8px rgba(242, 140, 26, .25)
1422         }
1423         .pey-link:hover {
1424         transform: translateX(2px);
1425         box-shadow: 0 4px 12px rgba(242, 140, 26, .35)
1426         }
1427         @media(max-width:640px) {
1428         .promo-endyear-mini-banner {
1429         flex-wrap: wrap;
1430         gap: 8px;
1431         padding: 10px 12px
1432         }
1433         .pey-icon {
1434         font-size: 28px;
1435         align-self: flex-start
1436         }
1437         .pey-content {
1438         flex: 1;
1439         min-width: 0
1440         }
1441         .pey-content strong {
1442         font-size: 12px
1443         }
1444         .pey-content span {
1445         font-size: 11px;
1446         line-height: 1.3
1447         }
1448         .pey-link {
1449         width: 100%;
1450         flex-basis: 100%;
1451         font-size: 11px;
1452         padding: 6px 12px;
1453         text-align: center
1454         }
1455         }
1456         @media print {
1457         .promo-endyear-mini-banner {
1458         display: none !important
1459         }
1460         }
1461      </style>
1462      <style nonce="">
1463         .pd-title-row {
1464         position: relative;
1465         margin-bottom: 12px;
1466         padding-right: 52px
1467         }
1468         .pd-title {
1469         margin: 0 !important
1470         }
1471         .pd-share-btn {
1472         position: absolute;
1473         top: 0;
1474         right: 0;
1475         width: 40px;
1476         height: 40px;
1477         display: inline-flex;
1478         align-items: center;
1479         justify-content: center;
1480         border-radius: 10px;
1481         border: 1px solid #e2e8f0;
1482         background: #fff;
1483         color: #64748b;
1484         cursor: pointer;
1485         transition: all .2s ease;
1486         -webkit-tap-highlight-color: transparent
1487         }
1488         .pd-share-btn:hover {
1489         background: #f8fafc;
1490         border-color: #cbd5e1;
1491         color: #2a0f0f;
1492         transform: translateY(-1px)
1493         }
1494         .pd-share-btn:active {
1495         transform: translateY(0)
1496         }
1497         .pd-share-btn svg {
1498         display: block
1499         }
1500         .pd-share-modal-overlay {
1501         position: fixed;
1502         inset: 0;
1503         background: rgba(15, 23, 42, .75);
1504         backdrop-filter: blur(4px);
1505         z-index: 99999;
1506         display: none;
1507         align-items: center;
1508         justify-content: center;
1509         padding: 0;
1510         animation: fadeIn .2s ease
1511         }
1512         .pd-share-modal-overlay.show {
1513         display: flex
1514         }
1515         .pd-share-modal {
1516         background: #fff;
1517         border-radius: 20px;
1518         box-shadow: 0 25px 50px -12px rgba(0, 0, 0, .25);
1519         max-width: 480px;
1520         width: 100%;
1521         max-height: 90vh;
1522         overflow: hidden;
1523         display: flex;
1524         flex-direction: column;
1525         animation: slideUp .3s cubic-bezier(.16, 1, .3, 1)
1526         }
1527         @keyframes fadeIn {
1528         from {
1529         opacity: 0
1530         }
1531         to {
1532         opacity: 1
1533         }
1534         }
1535         @keyframes slideUp {
1536         from {
1537         opacity: 0;
1538         transform: translateY(20px) scale(.95)
1539         }
1540         to {
1541         opacity: 1;
1542         transform: translateY(0) scale(1)
1543         }
1544         }
1545         .pd-share-header {
1546         display: flex;
1547         align-items: center;
1548         justify-content: space-between;
1549         padding: 20px 24px;
1550         border-bottom: 1px solid #f1f5f9
1551         }
1552         .pd-share-title {
1553         font-size: 18px;
1554         font-weight: 700;
1555         color: #2a0f0f;
1556         margin: 0
1557         }
1558         .pd-share-close {
1559         width: 32px;
1560         height: 32px;
1561         border-radius: 8px;
1562         border: 0;
1563         background: transparent;
1564         color: #64748b;
1565         display: inline-flex;
1566         align-items: center;
1567         justify-content: center;
1568         cursor: pointer;
1569         transition: all .15s ease
1570         }
1571         .pd-share-close:hover {
1572         background: #f1f5f9;
1573         color: #2a0f0f
1574         }
1575         .pd-share-body {
1576         padding: 24px;
1577         overflow-y: auto
1578         }
1579         .pd-share-preview {
1580         display: flex;
1581         gap: 12px;
1582         padding: 16px;
1583         background: #f8fafc;
1584         border-radius: 12px;
1585         margin-bottom: 24px
1586         }
1587         .pd-share-preview-img {
1588         width: 64px;
1589         height: 64px;
1590         border-radius: 8px;
1591         object-fit: cover;
1592         flex-shrink: 0;
1593         border: 1px solid #e2e8f0
1594         }
1595         .pd-share-preview-info {
1596         flex: 1;
1597         min-width: 0
1598         }
1599         .pd-share-preview-name {
1600         font-size: 14px;
1601         font-weight: 600;
1602         color: #2a0f0f;
1603         margin: 0 0 4px 0;
1604         display: -webkit-box;
1605         -webkit-line-clamp: 2;
1606         -webkit-box-orient: vertical;
1607         overflow: hidden
1608         }
1609         .pd-share-preview-price {
1610         font-size: 16px;
1611         font-weight: 700;
1612         color: #0ea5e9;
1613         margin: 0
1614         }
1615         .pd-share-label {
1616         font-size: 13px;
1617         font-weight: 600;
1618         color: #475569;
1619         margin: 0 0 12px 0;
1620         text-transform: uppercase;
1621         letter-spacing: .5px
1622         }
1623         .pd-share-grid {
1624         display: grid;
1625         grid-template-columns: repeat(4, 1fr);
1626         gap: 12px;
1627         margin-bottom: 24px
1628         }
1629         .pd-share-option {
1630         display: flex;
1631         flex-direction: column;
1632         align-items: center;
1633         gap: 8px;
1634         padding: 16px 8px;
1635         border: 1.5px solid #e2e8f0;
1636         border-radius: 12px;
1637         background: #fff;
1638         cursor: pointer;
1639         transition: all .2s ease;
1640         text-decoration: none;
1641         color: inherit
1642         }
1643         .pd-share-option:hover {
1644         border-color: #94a3b8;
1645         background: #f8fafc;
1646         transform: translateY(-2px)
1647         }
1648         .pd-share-option:active {
1649         transform: translateY(0)
1650         }
1651         .pd-share-icon {
1652         width: 40px;
1653         height: 40px;
1654         border-radius: 10px;
1655         display: inline-flex;
1656         align-items: center;
1657         justify-content: center;
1658         position: relative
1659         }
1660         .pd-share-icon svg {
1661         width: 24px;
1662         height: 24px;
1663         display: block
1664         }
1665         .pd-share-icon-whatsapp {
1666         background: linear-gradient(135deg, #25D366 0%, #128C7E 100%);
1667         color: #fff
1668         }
1669         .pd-share-icon-facebook {
1670         background: linear-gradient(135deg, #1877F2 0%, #0c63d4 100%);
1671         color: #fff
1672         }
1673         .pd-share-icon-twitter {
1674         background: linear-gradient(135deg, #1DA1F2 0%, #0d8bd9 100%);
1675         color: #fff
1676         }
1677         .pd-share-icon-telegram {
1678         background: linear-gradient(135deg, #0088cc 0%, #0077b3 100%);
1679         color: #fff
1680         }
1681         .pd-share-icon-email {
1682         background: linear-gradient(135deg, #EA4335 0%, #c5331f 100%);
1683         color: #fff
1684         }
1685         .pd-share-icon-copy {
1686         background: linear-gradient(135deg, #f1db63 0%, #e5d146 100%);
1687         color: #fff
1688         }
1689         .pd-share-icon-pdf {
1690         background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%);
1691         color: #fff
1692         }
1693         .pd-share-name {
1694         font-size: 12px;
1695         font-weight: 600;
1696         color: #475569;
1697         text-align: center
1698         }
1699         .pd-share-copy-section {
1700         background: #f8fafc;
1701         padding: 16px;
1702         border-radius: 12px
1703         }
1704         .pd-share-copy-input-wrap {
1705         display: flex;
1706         gap: 8px
1707         }
1708         .pd-share-copy-input {
1709         flex: 1;
1710         padding: 12px 14px;
1711         border: 1px solid #e2e8f0;
1712         border-radius: 10px;
1713         font-size: 14px;
1714         color: #2a0f0f;
1715         background: #fff;
1716         font-family: 'Segoe UI', system-ui, sans-serif
1717         }
1718         .pd-share-copy-input:focus {
1719         outline: 0;
1720         border-color: #0ea5e9;
1721         box-shadow: 0 0 0 3px rgba(14, 165, 233, .1)
1722         }
1723         .pd-share-copy-btn {
1724         padding: 12px 20px;
1725         border: 0;
1726         border-radius: 10px;
1727         background: linear-gradient(135deg, #0ea5e9 0%, #0284c7 100%);
1728         color: #fff;
1729         font-size: 14px;
1730         font-weight: 600;
1731         cursor: pointer;
1732         transition: all .2s ease;
1733         white-space: nowrap;
1734         display: inline-flex;
1735         align-items: center;
1736         gap: 6px
1737         }
1738         .pd-share-copy-btn:hover {
1739         background: linear-gradient(135deg, #0284c7 0%, #0369a1 100%);
1740         transform: translateY(-1px);
1741         box-shadow: 0 4px 12px rgba(14, 165, 233, .3)
1742         }
1743         .pd-share-copy-btn:active {
1744         transform: translateY(0)
1745         }
1746         .pd-share-copy-btn svg {
1747         width: 16px;
1748         height: 16px
1749         }
1750         .pd-share-copy-btn.copied {
1751         background: linear-gradient(135deg, #c52222 0%, #16a34a 100%);
1752         pointer-events: none
1753         }
1754         @media(max-width:640px) {
1755         .pd-share-modal {
1756         border-radius: 20px 20px 0 0;
1757         margin-top: auto;
1758         max-height: 85vh
1759         }
1760         .pd-share-grid {
1761         grid-template-columns: repeat(3, 1fr)
1762         }
1763         .pd-share-header {
1764         padding: 16px 20px
1765         }
1766         .pd-share-body {
1767         padding: 20px
1768         }
1769         .pd-share-btn {
1770         width: 36px;
1771         height: 36px
1772         }
1773         .pd-share-btn svg {
1774         width: 18px;
1775         height: 18px
1776         }
1777         }
1778         @media(max-width:480px) {
1779         .pd-share-grid {
1780         grid-template-columns: repeat(3, 1fr);
1781         gap: 10px
1782         }
1783         .pd-share-option {
1784         padding: 12px 6px
1785         }
1786         .pd-share-icon {
1787         width: 36px;
1788         height: 36px
1789         }
1790         .pd-share-icon svg {
1791         width: 20px;
1792         height: 20px
1793         }
1794         .pd-share-name {
1795         font-size: 11px
1796         }
1797         }
1798         .mf-share {
1799         background: #fff;
1800         color: #fb923c;
1801         border: 2px solid #fb923c;
1802         display: inline-flex;
1803         align-items: center;
1804         justify-content: center
1805         }
1806         .mf-share:active {
1807         transform: scale(.95)
1808         }
1809         .mf-share svg {
1810         display: block
1811         }
1812         @media(max-width:640px) {
1813         .pd-share-btn {
1814         display: none !important
1815         }
1816         }
1817         .stock-badge.in {
1818         background: #e6f9ec;
1819         color: #15803d;
1820         border-radius: 999px;
1821         padding: 4px 10px;
1822         font-weight: 700
1823         }
1824         .stock-badge.out {
1825         background: #fee2e2;
1826         color: #b91c1c;
1827         border-radius: 999px;
1828         padding: 4px 10px;
1829         font-weight: 700
1830         }
1831         .stock-info-btn {
1832         --c: #0ea5e9;
1833         --b: #bae6fd;
1834         --bg: #f0f9ff;
1835         --bg-h: #e0f2fe;
1836         --b-h: #0ea5e9;
1837         margin-left: 0;
1838         display: inline-flex;
1839         align-items: center;
1840         justify-content: center;
1841         gap: 0.5rem;
1842         padding: 4px 10px;
1843         border-radius: 999px;
1844         border: 1.5px solid var(--b);
1845         background: var(--bg);
1846         color: var(--c);
1847         cursor: pointer;
1848         font-size: 12px;
1849         font-weight: 600;
1850         transition: all .2s ease;
1851         -webkit-tap-highlight-color: transparent
1852         }
1853         .stock-info-btn:hover {
1854         background: var(--bg-h);
1855         border-color: var(--b-h);
1856         color: #0284c7;
1857         transform: translateY(-1px);
1858         box-shadow: 0 2px 8px rgba(14, 165, 233, .15)
1859         }
1860         .stock-info-btn:active {
1861         transform: translateY(0)
1862         }
1863         .stock-info-btn:focus-visible {
1864         outline: 0;
1865         box-shadow: 0 0 0 3px rgba(14, 165, 233, .2)
1866         }
1867         .stock-info-btn svg {
1868         width: 14px;
1869         height: 14px;
1870         flex-shrink: 0
1871         }
1872         .stock-info-btn .btn-text {
1873         white-space: nowrap
1874         }
1875         .stock-popover {
1876         position: absolute;
1877         z-index: 9999;
1878         min-width: 280px;
1879         max-width: 92vw;
1880         background: #0b1220;
1881         color: #eef3ff;
1882         border: 1px solid rgba(255, 255, 255, .08);
1883         border-radius: 14px;
1884         box-shadow: 0 20px 40px rgba(12, 12, 20, .45);
1885         padding: 12px 12px 8px;
1886         display: none
1887         }
1888         .stock-popover.show {
1889         display: block
1890         }
1891         .stock-popover::before {
1892         content: "";
1893         position: absolute;
1894         top: -8px;
1895         left: 24px;
1896         width: 14px;
1897         height: 14px;
1898         background: #0b1220;
1899         border-left: 1px solid rgba(255, 255, 255, .08);
1900         border-top: 1px solid rgba(255, 255, 255, .08);
1901         transform: rotate(45deg)
1902         }
1903         .sp-head {
1904         display: flex;
1905         align-items: center;
1906         justify-content: space-between;
1907         margin-bottom: 8px
1908         }
1909         .sp-title {
1910         font-weight: 800;
1911         font-size: 14px
1912         }
1913         .sp-close {
1914         background: transparent;
1915         border: 0;
1916         color: #98a2b3;
1917         cursor: pointer
1918         }
1919         .sp-list {
1920         list-style: none;
1921         margin: 0;
1922         padding: 0;
1923         display: flex;
1924         flex-direction: column;
1925         gap: 8px
1926         }
1927         .sp-item {
1928         display: grid;
1929         grid-template-columns: 1fr auto 32px;
1930         column-gap: 12px;
1931         align-items: center;
1932         padding: 10px 10px;
1933         min-height: 44px;
1934         border-radius: 10px;
1935         background: rgba(255, 255, 255, .03)
1936         }
1937         .sp-left {
1938         display: flex;
1939         align-items: center;
1940         gap: 10px
1941         }
1942         .sp-dot {
1943         width: 10px;
1944         height: 10px;
1945         border-radius: 999px;
1946         background: var(--dot, #60a5fa);
1947         display: inline-block
1948         }
1949         .sp-label {
1950         font-weight: 600;
1951         font-size: 13px
1952         }
1953         .sp-qty {
1954         grid-column: 2;
1955         justify-self: end;
1956         min-width: 40px;
1957         text-align: right;
1958         font-weight: 800;
1959         font-size: 13px;
1960         color: #cfe4ff;
1961         font-variant-numeric: tabular-nums
1962         }
1963         .sp-wa {
1964         grid-column: 3;
1965         justify-self: end;
1966         width: 32px;
1967         height: 32px;
1968         min-width: 32px;
1969         min-height: 32px;
1970         box-sizing: border-box;
1971         padding: 0;
1972         line-height: 0;
1973         text-decoration: none;
1974         outline: 0;
1975         display: inline-flex;
1976         align-items: center;
1977         justify-content: center;
1978         border-radius: 999px;
1979         border: 1px solid rgba(37, 211, 102, .60);
1980         /* 1px untuk hasil “crisp” */
1981         background: rgba(37, 211, 102, .08);
1982         color: #25D366;
1983         transition: background-color .15s ease, border-color .15s ease, transform .05s ease;
1984         -webkit-tap-highlight-color: transparent;
1985         }
1986         .sp-wa:hover {
1987         background: rgba(37, 211, 102, .16);
1988         border-color: rgba(37, 211, 102, .75)
1989         }
1990         .sp-wa:active {
1991         transform: translateY(.5px) scale(.98)
1992         }
1993         .sp-wa svg {
1994         width: 18px;
1995         height: 18px;
1996         display: block;
1997         vertical-align: middle
1998         }
1999         .stock-popover a {
2000         text-decoration: none
2001         }
2002         #deskripsi img {
2003         max-width: 450px !important;
2004         height: unset !important
2005         }
2006         @media(max-width:640px) {
2007         .stock-popover {
2008         position: fixed;
2009         left: 0;
2010         right: 0;
2011         bottom: max(12px, env(safe-area-inset-bottom, 12px));
2012         margin: 0 10px;
2013         padding: 14px 12px 10px;
2014         border-radius: 16px
2015         }
2016         .stock-popover::before {
2017         display: none
2018         }
2019         .stock-info-btn {
2020         padding: 4px 8px;
2021         gap: 4px;
2022         border: 0;
2023         background: transparent
2024         }
2025         .stock-info-btn:hover {
2026         background: transparent;
2027         box-shadow: none;
2028         transform: none
2029         }
2030         .stock-info-btn .btn-text {
2031         display: none
2032         }
2033         .stock-info-btn svg {
2034         width: 16px;
2035         height: 16px
2036         }
2037         .sp-item {
2038         grid-template-columns: 1fr auto 36px
2039         }
2040         .sp-wa {
2041         width: 36px;
2042         height: 36px;
2043         min-width: 36px;
2044         min-height: 36px
2045         }
2046         .sp-wa svg {
2047         width: 19px;
2048         height: 19px
2049         }
2050         }
2051         .stock-dot {
2052         position: absolute;
2053         bottom: 8px;
2054         right: 8px;
2055         width: 8px;
2056         height: 8px;
2057         border-radius: 50%;
2058         box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);
2059         z-index: 2;
2060         cursor: help
2061         }
2062         .stock-dot.ready {
2063         background: #10b981
2064         }
2065         .stock-dot.low {
2066         background: #f59e0b
2067         }
2068         .stock-dot.out {
2069         background: #ef4444
2070         }
2071         .stock-dot:hover {
2072         transform: scale(1.2);
2073         transition: transform 0.2s ease
2074         }
2075         @media(max-width:640px) {
2076         .stock-dot {
2077         width: 7px;
2078         height: 7px;
2079         bottom: 6px;
2080         right: 6px
2081         }
2082         }
2083         .pd-related-card .spec-chips {
2084         font-size: 11px;
2085         color: #64748b;
2086         margin: 4px 0 6px 0;
2087         line-height: 1.3;
2088         font-weight: 500
2089         }
2090         .pd-related-card .spec-chips .spec-divider {
2091         margin: 0 4px;
2092         opacity: 0.6
2093         }
2094         @media(max-width:640px) {
2095         .pd-related-card .spec-chips {
2096         font-size: 10px;
2097         margin: 3px 0 5px 0
2098         }
2099         #deskripsi img {
2100         max-width: 300px !important;
2101         height: unset !important;
2102         justify-self: center !important
2103         }
2104         }
2105         .pwp-trigger-badge {
2106         display: inline-flex;
2107         align-items: center;
2108         gap: 4px;
2109         padding: 3px 8px 4px;
2110         background: linear-gradient(135deg, #fbbf24 0%, #f59e0b 100%);
2111         color: #78350f;
2112         border-radius: 6px;
2113         font-size: .65rem;
2114         font-weight: 600;
2115         border: 0
2116         }
2117         .pwp-trigger-badge svg {
2118         flex-shrink: 0;
2119         width: 12px;
2120         height: 12px
2121         }
2122         .pwp-deals-section {
2123         margin: 0;
2124         padding: 12px;
2125         background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%);
2126         border-radius: 12px;
2127         border: 2px solid #fbbf24
2128         }
2129         .pwp-deals-header {
2130         display: flex;
2131         gap: 10px;
2132         margin-bottom: 10px
2133         }
2134         .pwp-icon {
2135         flex-shrink: 0;
2136         color: #f59e0b;
2137         width: 18px;
2138         height: 18px
2139         }
2140         .pwp-text .pwp-title {
2141         margin: 0 0 2px 0;
2142         font-size: 14px;
2143         font-weight: 700;
2144         color: #78350f
2145         }
2146         .pwp-text .pwp-subtitle {
2147         margin: 0;
2148         font-size: 11px;
2149         color: #92400e;
2150         opacity: 0.9
2151         }
2152         .pwp-deals-loading {
2153         text-align: center;
2154         padding: 40px 0;
2155         color: #92400e
2156         }
2157         .pwp-spinner {
2158         width: 40px;
2159         height: 40px;
2160         border: 3px solid #fbbf24;
2161         border-top-color: #f59e0b;
2162         border-radius: 50%;
2163         animation: spin 0.8s linear infinite;
2164         margin: 0 auto 12px
2165         }
2166         @keyframes spin {
2167         to {
2168         transform: rotate(360deg)
2169         }
2170         }
2171         .pwp-deals-grid {
2172         display: flex;
2173         flex-direction: column;
2174         gap: 6px
2175         }
2176         .pwp-deal-card {
2177         background: #fff;
2178         border-radius: 6px;
2179         overflow: hidden;
2180         border: 1px solid #fbbf24;
2181         display: flex;
2182         align-items: center;
2183         padding: 8px;
2184         gap: 10px
2185         }
2186         .pwp-deal-card:hover {
2187         background: #fef3c7
2188         }
2189         .pwp-deal-thumb {
2190         flex-shrink: 0;
2191         width: 50px;
2192         height: 50px;
2193         background: #f8fafc;
2194         overflow: hidden;
2195         border-radius: 4px
2196         }
2197         .pwp-deal-thumb img {
2198         width: 100%;
2199         height: 100%;
2200         object-fit: cover
2201         }
2202         .pwp-deal-badge {
2203         background: #dc2626;
2204         color: #fff;
2205         padding: 2px 5px;
2206         border-radius: 3px;
2207         font-size: 9px;
2208         font-weight: 700;
2209         margin-left: auto
2210         }
2211         .pwp-deal-info {
2212         flex: 1;
2213         display: flex;
2214         flex-direction: column;
2215         gap: 4px
2216         }
2217         .pwp-deal-name {
2218         font-size: 12px;
2219         font-weight: 600;
2220         color: #2a0f0f;
2221         margin: 0;
2222         line-height: 1.2
2223         }
2224         .pwp-deal-prices {
2225         display: flex;
2226         align-items: center;
2227         gap: 6px;
2228         flex-wrap: wrap
2229         }
2230         .pwp-deal-price {
2231         font-size: 14px;
2232         font-weight: 800;
2233         color: #dc2626;
2234         white-space: nowrap
2235         }
2236         .pwp-deal-original {
2237         font-size: 11px;
2238         color: #64748b;
2239         text-decoration: line-through;
2240         white-space: nowrap
2241         }
2242         .pwp-cart-note {
2243         margin-top: 8px;
2244         padding: 6px 10px;
2245         background: #e0f2fe;
2246         border-left: 2px solid#0ea5e9;
2247         font-size: 11px;
2248         color: #0c4a6e;
2249         border-radius: 4px
2250         }
2251         @media(max-width:640px) {
2252         .pwp-deals-section {
2253         margin: 12px 0;
2254         padding: 10px;
2255         border-radius: 10px
2256         }
2257         .pwp-deals-header {
2258         gap: 8px
2259         }
2260         .pwp-text .pwp-title {
2261         font-size: 13px
2262         }
2263         .pwp-text .pwp-subtitle {
2264         font-size: 10px
2265         }
2266         .pwp-deal-card {
2267         padding: 6px;
2268         gap: 8px
2269         }
2270         .pwp-deal-thumb {
2271         width: 45px;
2272         height: 45px
2273         }
2274         .pwp-deal-name {
2275         font-size: 11px
2276         }
2277         .pwp-deal-price {
2278         font-size: 13px
2279         }
2280         .pwp-deal-original {
2281         font-size: 10px
2282         }
2283         }
2284         .preorder-badge {
2285         display: inline-flex;
2286         align-items: center;
2287         gap: 5px;
2288         padding: 6px 12px;
2289         background: linear-gradient(135deg, #8b5cf6 0%, #7c3aed 100%);
2290         color: #fff;
2291         border-radius: 8px;
2292         font-size: 13px;
2293         font-weight: 700;
2294         border: 0;
2295         box-shadow: 0 2px 8px rgba(139, 92, 246, .25)
2296         }
2297         .preorder-badge svg {
2298         width: 16px;
2299         height: 16px;
2300         flex-shrink: 0
2301         }
2302         .preorder-info {
2303         margin: 12px 0;
2304         padding: 14px;
2305         background: linear-gradient(135deg, #f5f3ff 0%, #ede9fe 100%);
2306         border: 1.5px solid #c4b5fd;
2307         border-radius: 12px
2308         }
2309         .preorder-info-header {
2310         display: flex;
2311         align-items: center;
2312         gap: 8px;
2313         margin-bottom: 10px
2314         }
2315         .preorder-info-icon {
2316         width: 20px;
2317         height: 20px;
2318         color: #7c3aed;
2319         flex-shrink: 0
2320         }
2321         .preorder-info-title {
2322         font-size: 14px;
2323         font-weight: 700;
2324         color: #5b21b6;
2325         margin: 0
2326         }
2327         .preorder-info-items {
2328         display: flex;
2329         flex-direction: column;
2330         gap: 8px
2331         }
2332         .preorder-info-row {
2333         display: flex;
2334         align-items: center;
2335         justify-content: space-between;
2336         font-size: 13px
2337         }
2338         .preorder-info-label {
2339         color: #6b21a8;
2340         font-weight: 600
2341         }
2342         .preorder-info-value {
2343         color: #5b21b6;
2344         font-weight: 700
2345         }
2346         .preorder-info-value.highlight {
2347         color: #dc2626;
2348         font-size: 14px
2349         }
2350         .preorder-info-note {
2351         margin-top: 10px;
2352         padding: 8px 10px;
2353         background: #fef3c7;
2354         border-left: 2px solid #f59e0b;
2355         font-size: 12px;
2356         color: #78350f;
2357         border-radius: 6px;
2358         line-height: 1.4
2359         }
2360         @media(max-width:640px) {
2361         .preorder-badge {
2362         font-size: 12px;
2363         padding: 5px 10px
2364         }
2365         .preorder-info {
2366         margin: 10px 0;
2367         padding: 12px
2368         }
2369         .preorder-info-title {
2370         font-size: 13px
2371         }
2372         .preorder-info-row {
2373         font-size: 12px
2374         }
2375         .preorder-info-note {
2376         font-size: 11px;
2377         padding: 6px 8px
2378         }
2379         }
2380      </style>
2381      <div class="pd-sticky-header" id="pd-sticky-header">
2382         <div class="pd-sticky-header-container">
2383            <div class="pd-sticky-thumb"><img src="https://i.ibb.co.com/VcKNnZ2b/bannerag88bethd.webp" alt="SBOBET" id="pd-sticky-thumb-img"></div>
2384            <div class="pd-sticky-info">
2385               <h2 class="pd-sticky-title" id="pd-sticky-title">SBOBET88 > Link Daftar SBOBET Mobile Agen Parlay Piala Dunia Resmi</h2>
2386               <div class="pd-sticky-price-row"><span class="pd-sticky-price" id="pd-sticky-price">Rp 10.000,-</span><span class="pd-sticky-price-original" id="pd-sticky-price-original">Rp 1.000.000</span><span class="pd-sticky-discount" id="pd-sticky-discount">-99.5%</span></div>
2387            </div>
2388            <div class="pd-sticky-actions">
2389               <button type="button" class="pd-sticky-share-btn" id="pd-sticky-share-btn" aria-label="Bagikan produk" title="Bagikan">
2390                  <svg viewBox="0 0 24 24" width="16" height="16" aria-hidden="true">
2391                     <path fill="currentColor" d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81 1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9c-1.66 0-3 1.34-3 3s1.34 3 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.16c-.05.21-.08.43-.08.65 0 1.61 1.31 2.92 2.92 2.92s2.92-1.31 2.92-2.92-1.31-2.92-2.92-2.92z"></path>
2392                  </svg>
2393               </button>
2394               <button type="button" class="pd-sticky-btn pd-sticky-btn-chat" id="pd-sticky-chat">
2395                  <svg viewBox="0 0 640 640" fill="currentColor" aria-hidden="true">
2396                     <path d="M320 128C241 128 175.3 185.3 162.3 260.7C171.6 257.7 181.6 256 192 256L208 256C234.5 256 256 277.5 256 304L256 400C256 426.5 234.5 448 208 448L192 448C139 448 96 405 96 352L96 288C96 164.3 196.3 64 320 64C443.7 64 544 164.3 544 288L544 456.1C544 522.4 490.2 576.1 423.9 576.1L336 576L304 576C277.5 576 256 554.5 256 528C256 501.5 277.5 480 304 480L336 480C362.5 480 384 501.5 384 528L384 528L424 528C463.8 528 496 495.8 496 456L496 435.1C481.9 443.3 465.5 447.9 448 447.9L432 447.9C405.5 447.9 384 426.4 384 399.9L384 303.9C384 277.4 405.5 255.9 432 255.9L448 255.9C458.4 255.9 468.3 257.5 477.7 260.6C464.7 185.3 399.1 127.9 320 127.9z"></path>
2397                  </svg>
2398                  Tanya
2399               </button>
2400               <button type="button" class="pd-sticky-btn pd-sticky-btn-cart" id="pd-sticky-add-cart" disabled="">+ Keranjang</button><button type="button" class="pd-sticky-btn pd-sticky-btn-buy" id="pd-sticky-buy" disabled="">Beli Sekarang</button>
2401            </div>
2402         </div>
2403      </div>
2404      <main class="product-single product-single--v3">
2405         <nav class="pd-breadcrumb" aria-label="breadcrumb">
2406         <a href="https://perfilaluminioestructural.com/">SBOBET</a><span>/</span>
2407         <a href="https://perfilaluminioestructural.com/">SBOBET88</a><span>/</span>
2408         <a href="https://perfilaluminioestructural.com/">JUDI BOLA</a><span>/</span>
2409         <a href="https://perfilaluminioestructural.com/">SITUS JUDI BOLA</a><span>/</span>
2410         <a href="https://perfilaluminioestructural.com/">AGENT88BET</a><span>/</span>
2411         <span class="current">SBOBET88 > Link Daftar SBOBET Mobile Agen Parlay Piala Dunia Resmi </span></nav>
2412         <div class="pd-top-layout">
2413            <section class="pd-media-card">
2414               <figure class="pd-main-image" id="pd-main-figure"><img id="pd-main-img" src="https://i.ibb.co.com/VcKNnZ2b/bannerag88bethd.webp" alt="SBOBET" data-slug="" loading="eager" style="cursor: zoom-in;">
2415               </figure>
2416               <div class="pd-mobile-slider-wrapper">
2417                  <div class="pd-mobile-slider" id="pd-mobile-slider" aria-label="Galeri gambar (geser)">
2418                     <div class="pd-mslide"><img src="https://i.ibb.co.com/VcKNnZ2b/bannerag88bethd.webp" alt="SBOBET" loading="eager"></div>
2419                     <div class="pd-mslide"><img src="https://i.ibb.co.com/VcKNnZ2b/bannerag88bethd.webp" alt="SBOBET" loading="lazy"></div>
2420                     <div class="pd-mslide"><img src="https://i.ibb.co.com/VcKNnZ2b/bannerag88bethd.webp" alt="SBOBET" loading="lazy"></div>
2421                     <div class="pd-mslide"><img src="https://i.ibb.co.com/VcKNnZ2b/bannerag88bethd.webp" alt="SBOBET" loading="lazy"></div>
2422                     <div class="pd-mslide"><img src="https://i.ibb.co.com/VcKNnZ2b/bannerag88bethd.webp" alt="SBOBET" loading="lazy"></div>
2423                     <div class="pd-mslide"><img src="https://i.ibb.co.com/VcKNnZ2b/bannerag88bethd.webp" alt="SBOBET" loading="lazy"></div>
2424                  </div>
2425                  <div class="pd-gallery-counter" id="pd-gallery-counter">1/6</div>
2426               </div>
2427               <div class="pd-thumb-gallery" id="pd-thumb-gallery" aria-label="Galeri gambar produk"><button type="button" class="pd-thumb-btn active" data-full="https://i.ibb.co.com/VcKNnZ2b/bannerag88bethd.webp" data-alt="SBOBET" data-slug="" aria-label="Gambar 1"><img src="https://i.ibb.co.com/VcKNnZ2b/bannerag88bethd.webp" alt="SITUS JUDI BOLA" loading="lazy"></button><button type="button" class="pd-thumb-btn " data-full="https://i.ibb.co.com/VcKNnZ2b/bannerag88bethd.webp" data-alt="SBOBET" data-slug="https://i.ibb.co.com/VcKNnZ2b/bannerag88bethd.webp" aria-label="Gambar 2"><img src="https://i.ibb.co.com/VcKNnZ2b/bannerag88bethd.webp" alt="SBOBET" loading="lazy"></button><button type="button" class="pd-thumb-btn " data-full="https://i.ibb.co.com/VcKNnZ2b/bannerag88bethd.webp" data-alt="SBOBET" data-slug="lenovo-legion-go-8asp2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-b-1761796941-223.webp" aria-label="Gambar 3"><img src="https://i.ibb.co.com/VcKNnZ2b/bannerag88bethd.webp" alt="SBOBET" loading="lazy"></button><button type="button" class="pd-thumb-btn " data-full="https://i.ibb.co.com/VcKNnZ2b/bannerag88bethd.webp" data-alt="SBOBET" data-slug="lenovo-legion-go-8asp2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-b-1761796941-776.webp" aria-label="Gambar 4"><img src="https://i.ibb.co.com/VcKNnZ2b/bannerag88bethd.webp" alt="SBOBET" loading="lazy"></button><button type="button" class="pd-thumb-btn " data-full="https://i.ibb.co.com/VcKNnZ2b/bannerag88bethd.webp" data-alt="SBOBET" data-slug="lenovo-legion-go-8asp2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-b-1761796941-634.webp" aria-label="Gambar 5"><img src="https://i.ibb.co.com/VcKNnZ2b/bannerag88bethd.webp" alt="SBOBET" loading="lazy"></button><button type="button" class="pd-thumb-btn " data-full="https://i.ibb.co.com/VcKNnZ2b/bannerag88bethd.webp" data-alt="SBOBET" data-slug="lenovo-legion-go-8asp2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-b-1761796941-892.webp" aria-label="Gambar 6"><img src="https://i.ibb.co.com/VcKNnZ2b/bannerag88bethd.webp" alt="SBOBET" loading="lazy"></button></div>
2428            </section>
2429            <section class="pd-info-card">
2430               <div id="pd-variant-combined" class="pd-variant-combined" hidden=""></div>
2431               <div class="pd-title-row">
2432                  <h1 class="pd-title" id="pd-title">SBOBET88 > Link Daftar SBOBET Mobile Agen Parlay Piala Dunia Resmi</h1>
2433                  <button type="button" class="pd-share-btn" id="pd-share-btn" aria-label="Bagikan produk" title="Bagikan">
2434                     <svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true">
2435                        <path fill="currentColor" d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81 1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9c-1.66 0-3 1.34-3 3s1.34 3 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.16c-.05.21-.08.43-.08.65 0 1.61 1.31 2.92 2.92 2.92s2.92-1.31 2.92-2.92-1.31-2.92-2.92-2.92z"></path>
2436                     </svg>
2437                  </button>
2438               </div>
2439               <div id="pd-price-anchor">
2440               </div>
2441               <div class="pd-price-qr-container">
2442                  <div class="pd-price-block" id="pd-price-block">
2443                     <div class="pd-price-row">
2444                        <span class="pd-price-current" id="pd-price-current">Rp 10.000</span>
2445                        <span class="pd-price-original" id="pd-price-original">Rp 50.000</span>
2446                        <span class="pd-discount-badge" id="pd-discount-badge">-95%</span>
2447                     </div>
2448                     <div class="pd-meta-row">
2449                        <span class="sold-inline" id="pd-sold-inline" data-role="sold-chip">Terjual 2</span>
2450                        <span class="pwp-trigger-badge" id="pwp-trigger-badge" hidden="">
2451                           <svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor">
2452                              <path d="M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"></path>
2453                           </svg>
2454                           Bisa PWP
2455                        </span>
2456                     </div>
2457                     <div class="pd-meta-inline"><span class="stock-badge out" id="pd-stock-badge">SBOBET</span>
2458                        <span class="sku">SKU: <span id="pd-sku">1S83N0880RID</span></span>
2459                     </div>
2460                     <div class="paylater-promo paylater-promo-sm paylater-mobile-only">
2461                        <span class="paylater-icon">💳</span>
2462                        <span class="paylater-text">
2463                        <strong>AutorizedSBOBET</strong>
2464                        <small>JUDI BOLA</small>
2465                        </span>
2466                     </div>
2467                     <div class="stock-popover" id="pd-stock-popover" role="dialog" aria-hidden="true" aria-label="Informasi stok cabang">
2468                        <div class="sp-head">
2469                           <div class="sp-title">Stok Cabang</div>
2470                           <button type="button" class="sp-close" id="pd-stock-popover-close" aria-label="Tutup">
2471                              <svg width="18" height="18" viewBox="0 0 24 24">
2472                                 <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"></path>
2473                              </svg>
2474                           </button>
2475                        </div>
2476                        <ul class="sp-list">
2477                           <li class="sp-item">
2478                              <div class="sp-left"><span class="sp-dot" style="--dot:#60a5fa;"></span><span class="sp-label">Asia Mega Mas</span></div>
2479                              <span class="sp-qty" id="sp-qty-meg">0</span>
2480                              <a class="sp-wa" 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" target="_blank" rel="noopener" aria-label="WhatsApp Asia Mega Mas">
2481                                 <svg class="ico-wa" viewBox="0 0 24 24" aria-hidden="true" focusable="false">
2482                                    <path fill="currentColor" d="M17.472 14.382c-.297-.149-1.758-.867-2.029-.967-.273-.099-.471-.148-.669.149-.198.297-.767.966-.94 1.164-.173.198-.347.223-.644.074-.297-.149-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.297-.347.446-.52.149-.173.198-.297.298-.495.099-.198.05-.372-.025-.521-.075-.149-.669-1.612-.916-2.206-.242-.579-.487-.5-.669-.51l-.57-.01c-.198 0-.52.074-.792.372s-1.04 1.016-1.04 2.479 1.065 2.876 1.213 3.074c.149.198 2.095 3.2 5.076 4.487.709.306 1.262.489 1.694.626.712.226 1.36.194 1.872.118.571-.085 1.758-.718 2.006-1.411.248-.694.248-1.29.173-1.411-.074-.123-.272-.198-.57-.347m-5.421 7.403h-.002a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.263c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.887 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.158 11.892c0 2.096.547 4.142 1.588 5.945L0 24l6.305-1.654a11.86 11.86 0 005.67 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.485-8.413"></path>
2483                                 </svg>
2484                              </a>
2485                           </li>
2486                           <li class="sp-item">
2487                              <div class="sp-left">
2488                                 <span class="sp-dot" style="--dot:#34d399;"></span>
2489                                 <span class="sp-label">Medan Fair</span>
2490                              </div>
2491                              <span class="sp-qty" id="sp-qty-mdf">0</span>
2492                              <a class="sp-wa" 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" target="_blank" rel="noopener" aria-label="WhatsApp Medan Fair">
2493                                 <svg class="ico-wa" viewBox="0 0 24 24" aria-hidden="true" focusable="false">
2494                                    <path fill="currentColor" d="M17.472 14.382c-.297-.149-1.758-.867-2.029-.967-.273-.099-.471-.148-.669.149-.198.297-.767.966-.94 1.164-.173.198-.347.223-.644.074-.297-.149-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.297-.347.446-.52.149-.173.198-.297.298-.495.099-.198.05-.372-.025-.521-.075-.149-.669-1.612-.916-2.206-.242-.579-.487-.5-.669-.51l-.57-.01c-.198 0-.52.074-.792.372s-1.04 1.016-1.04 2.479 1.065 2.876 1.213 3.074c.149.198 2.095 3.2 5.076 4.487.709.306 1.262.489 1.694.626.712.226 1.36.194 1.872.118.571-.085 1.758-.718 2.006-1.411.248-.694.248-1.29.173-1.411-.074-.123-.272-.198-.57-.347m-5.421 7.403h-.002a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.263c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.887 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.158 11.892c0 2.096.547 4.142 1.588 5.945L0 24l6.305-1.654a11.86 11.86 0 005.67 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.485-8.413"></path>
2495                                 </svg>
2496                              </a>
2497                           </li>
2498                           <li class="sp-item">
2499                              <div class="sp-left">
2500                                 <span class="sp-dot" style="--dot:#f59e0b;"></span>
2501                                 <span class="sp-label">Banda Aceh</span>
2502                              </div>
2503                              <span class="sp-qty" id="sp-qty-bda">0</span>
2504                              <a class="sp-wa" 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" target="_blank" rel="noopener" aria-label="WhatsApp Banda Aceh">
2505                                 <svg class="ico-wa" viewBox="0 0 24 24" aria-hidden="true" focusable="false">
2506                                    <path fill="currentColor" d="M17.472 14.382c-.297-.149-1.758-.867-2.029-.967-.273-.099-.471-.148-.669.149-.198.297-.767.966-.94 1.164-.173.198-.347.223-.644.074-.297-.149-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.297-.347.446-.52.149-.173.198-.297.298-.495.099-.198.05-.372-.025-.521-.075-.149-.669-1.612-.916-2.206-.242-.579-.487-.5-.669-.51l-.57-.01c-.198 0-.52.074-.792.372s-1.04 1.016-1.04 2.479 1.065 2.876 1.213 3.074c.149.198 2.095 3.2 5.076 4.487.709.306 1.262.489 1.694.626.712.226 1.36.194 1.872.118.571-.085 1.758-.718 2.006-1.411.248-.694.248-1.29.173-1.411-.074-.123-.272-.198-.57-.347m-5.421 7.403h-.002a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.263c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.887 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.158 11.892c0 2.096.547 4.142 1.588 5.945L0 24l6.305-1.654a11.86 11.86 0 005.67 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.485-8.413"></path>
2507                                 </svg>
2508                              </a>
2509                           </li>
2510                        </ul>
2511                     </div>
2512                  </div>
2513                  <div class="pd-qr-print" style="display:none;">
2514                     <div class="pd-qr-label">Scan untuk lihat produk:</div>
2515                     <img src="https://perfilaluminioestructural.com/sbobet/saved_resource" alt="QR Code" class="pd-qr-image">
2516                  </div>
2517               </div>
2518               <div id="pd-variants-anchor"></div>
2519               <div class="pd-compare-section">
2520                  <button type="button" class="pd-compare-btn" id="pd-compare-btn" data-product-id="325">
2521                     <svg class="compare-icon" width="18" height="18" viewBox="0 0 24 24" fill="currentColor">
2522                        <path d="M21,9L17,5V8H10V10H17V13M7,11L3,15L7,19V16H14V14H7V11Z"></path>
2523                     </svg>
2524                     <span class="compare-text" style="display: inline;">Bandingkan Produk</span>
2525                     <span class="compare-remove" hidden="" style="display: none;">
2526                        <svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor">
2527                           <path d="M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z"></path>
2528                        </svg>
2529                        Hapus dari Perbandingan 
2530                     </span>
2531                  </button>
2532                  <div class="pd-compare-info">
2533                     <small class="compare-note" id="compare-note">Bandingkan hingga 5 produk dengan bantuan AI</small>
2534                  </div>
2535               </div>
2536               <div class="pd-short-desc">
2537                  <p><strong>Informasi SBOBET88:</strong></p>
2538                  <ul>
2539                     <li>Minimal Deposit: Rp.10.000,-</li>
2540                     <li>Jenis Permainan: SBOBET, SBOBET88, JUDI BOLA, SITUS JUDI BOLA, AGEN JUDI BOLA</li>
2541                     <li>Metode Pembayaran: Bank, QRIS, E-Wallet</li>
2542                     <li>Mata Uang: IDR (Indonesian Rupiah)</li>
2543                     <li>Jam Operasional: 24 Jam Nonstop</li>
2544                     <li>Total Rating: 7.777.123</li>
2545                     <li>Rating: ⭐⭐⭐⭐⭐</li>
2546                     <li>Daftar Sekarang: <a href="https://perfilaluminioestructural.com/tuerca/index.html">Klik Disini</a></li>
2547                  </ul>
2548               </div>
2549               <div class="AGENT88BET-container-v3 mini">
2550                  <div class="wc26-sim-wrap">
2551  <div class="wc26-panel">
2552    <div class="wc26-orb"></div>
2553
2554    <div class="wc26-head">
2555      <div class="wc26-badge">GROUP STAGE</div>
2556      <h2>🏆 WORLD CUP 2026 CHAMPION SIMULATOR</h2>
2557      <p>Prediksi peluang setiap negara menjadi juara berdasarkan hasil grup, kualitas skuad, performa terkini, dan potensi kejutan.</p>
2558    </div>
2559
2560    <div class="wc26-controls">
2561      <label>
2562        PILIH GRUP
2563        <select id="wcGroupFilter">
2564          <option value="ALL">ALL GROUP</option>
2565        </select>
2566      </label>
2567
2568      <label>
2569        MODE SIMULASI
2570        <select id="wcMode">
2571          <option value="BALANCE">BALANCE MODE</option>
2572          <option value="FAVORITE">FAVORITE MODE</option>
2573          <option value="UNDERDOG">UNDERDOG MODE</option>
2574          <option value="CHAOS">CHAOS MODE</option>
2575        </select>
2576      </label>
2577
2578      <label>
2579        MIN WIN %
2580        <input id="wcMinChance" type="number" min="1" max="99" step="1" value="8">
2581      </label>
2582
2583      <button id="wcRunBtn" type="button">
2584        <span>⚽</span> START SIMULATION
2585      </button>
2586    </div>
2587
2588    <div class="wc26-result" id="wcResultBox">
2589      <div class="wc26-status" id="wcStatus">— READY TO SIMULATE —</div>
2590
2591      <div class="wc26-champion-card">
2592        <div class="wc26-left">
2593          <div class="wc26-label">Prediksi Juara</div>
2594          <div class="wc26-country" id="wcChampion">-</div>
2595          <div class="wc26-meta">
2596            <span>Group: <b id="wcGroup">-</b></span>
2597            <span>Power: <b id="wcPower">-</b></span>
2598          </div>
2599        </div>
2600
2601        <div class="wc26-right">
2602          <div class="wc26-label center">Win Chance</div>
2603          <div class="wc26-percent" id="wcChance">-</div>
2604        </div>
2605      </div>
2606
2607      <div class="wc26-grid-info">
2608        <div>
2609          <small>Runner Up</small>
2610          <strong id="wcRunner">-</strong>
2611        </div>
2612        <div>
2613          <small>Semifinalist</small>
2614          <strong id="wcSemi">-</strong>
2615        </div>
2616        <div>
2617          <small>Dark Horse</small>
2618          <strong id="wcDarkHorse">-</strong>
2619        </div>
2620      </div>
2621
2622      <div class="wc26-commentary" id="wcCommentary">
2623        Simulasi ini hanya untuk hiburan, bukan prediksi resmi.
2624      </div>
2625    </div>
2626
2627    <div class="wc26-ranking">
2628      <div class="wc26-ranking-title">Top Candidate Ranking</div>
2629      <div class="wc26-list" id="wcTopList"></div>
2630    </div>
2631
2632    <div class="wc26-footer">World Cup 2026 Simulation • Entertainment Only</div>
2633  </div>
2634</div>
2635
2636<style>
2637@import url("https://fonts.googleapis.com/css2?family=Orbitron:wght@600;700;800;900&family=Poppins:wght@400;600;700;800&display=swap");
2638
2639.wc26-sim-wrap{
2640  display:flex;
2641  justify-content:center;
2642  padding:18px 10px;
2643  font-family:"Poppins",system-ui,sans-serif;
2644}
2645
2646.wc26-panel{
2647  position:relative;
2648  width:100%;
2649  max-width:560px;
2650  padding:18px;
2651  overflow:hidden;
2652  isolation:isolate;
2653  border-radius:22px;
2654  color:#eef7ff;
2655  background:
2656    radial-gradient(circle at 50% 0%, rgba(255, 0, 0, 0.22), transparent 34%),
2657    radial-gradient(circle at 15% 85%, rgba(255, 0, 0, 0.14), transparent 35%),
2658    radial-gradient(circle at 90% 75%, rgba(255, 0, 0, 0.16), transparent 40%),
2659    linear-gradient(145deg,#071015,#020406 70%);
2660  border:1px solid rgba(255, 0, 0, 0.35);
2661  box-shadow:
2662    inset 0 0 28px rgba(255, 0, 0, 0.08),
2663    0 0 26px rgba(0,255,150,.16),
2664    0 18px 50px rgba(0,0,0,.55);
2665}
2666
2667.wc26-panel::before{
2668  content:"";
2669  position:absolute;
2670  inset:-80px;
2671  background:
2672    linear-gradient(90deg, transparent 0 46%, rgba(255,255,255,.045) 50%, transparent 54%),
2673    linear-gradient(0deg, transparent 0 46%, rgba(255,255,255,.035) 50%, transparent 54%);
2674  background-size:46px 46px;
2675  transform:rotate(8deg);
2676  opacity:.35;
2677  z-index:-2;
2678}
2679
2680.wc26-panel::after{
2681  content:"";
2682  position:absolute;
2683  inset:0;
2684  background:linear-gradient(120deg, transparent 30%, rgba(255, 0, 0, 0.12), transparent 62%);
2685  animation:wcSweep 7s linear infinite;
2686  z-index:-1;
2687  pointer-events:none;
2688}
2689
2690.wc26-orb{
2691  position:absolute;
2692  width:220px;
2693  height:220px;
2694  border-radius:50%;
2695  left:50%;
2696  top:70px;
2697  transform:translateX(-50%);
2698  background:
2699    radial-gradient(circle at 35% 30%, rgba(255,255,255,.75), rgba(255, 110, 110, 0.25) 28%, rgba(255, 0, 0, 0.08) 56%, transparent 70%);
2700  filter:blur(.2px);
2701  opacity:.16;
2702  z-index:-1;
2703}
2704
2705.wc26-head{
2706  text-align:center;
2707  position:relative;
2708  z-index:2;
2709}
2710
2711.wc26-badge{
2712  display:inline-flex;
2713  padding:7px 18px;
2714  border-radius:999px;
2715  background:linear-gradient(135deg,#ff0000,#ff55e5);
2716  color:#061008;
2717  font-family:"Orbitron",sans-serif;
2718  font-size:12px;
2719  font-weight:900;
2720  letter-spacing:.8px;
2721  box-shadow:0 0 18px rgba(255, 0, 0, 0.45);
2722}
2723
2724.wc26-head h2{
2725  margin:12px 0 6px;
2726  font-family:"Orbitron",sans-serif;
2727  font-size:20px;
2728  line-height:1.2;
2729  letter-spacing:.7px;
2730  color:#fff;
2731  text-shadow:0 0 14px rgba(255, 0, 0, 0.32);
2732}
2733
2734.wc26-head p{
2735  margin:0 0 14px;
2736  font-size:12px;
2737  line-height:1.6;
2738  color:#b9c8d6;
2739}
2740
2741.wc26-controls{
2742  display:grid;
2743  grid-template-columns:1fr 1fr;
2744  gap:10px;
2745  padding:12px;
2746  border-radius:18px;
2747  background:rgba(2,10,12,.62);
2748  border:1px solid rgba(255, 0, 0, 0.22);
2749  box-shadow:inset 0 0 18px rgba(255, 0, 0, 0.07);
2750}
2751
2752.wc26-controls label{
2753  display:grid;
2754  gap:6px;
2755  font-family:"Orbitron",sans-serif;
2756  font-size:10px;
2757  font-weight:800;
2758  color:#ff0000;
2759  letter-spacing:.7px;
2760}
2761
2762.wc26-controls select,
2763.wc26-controls input{
2764  width:100%;
2765  box-sizing:border-box;
2766  border-radius:12px;
2767  padding:9px 10px;
2768  outline:none;
2769  border:1px solid rgba(255, 0, 0, 0.32);
2770  background:rgba(1,8,10,.92);
2771  color:#f5fbff;
2772  font-size:12px;
2773  font-weight:800;
2774  box-shadow:inset 0 0 12px rgba(255, 0, 0, 0.08);
2775}
2776
2777#wcRunBtn{
2778  grid-column:span 2;
2779  border:0;
2780  border-radius:16px;
2781  padding:12px;
2782  cursor:pointer;
2783  font-family:"Orbitron",sans-serif;
2784  font-size:12px;
2785  font-weight:900;
2786  letter-spacing:.8px;
2787  color:#061008;
2788  background:linear-gradient(135deg,#ff0000,#ff2da1 48%,#359dff);
2789  box-shadow:0 0 20px rgba(255, 0, 0, 0.35);
2790  transition:.18s ease;
2791}
2792
2793#wcRunBtn:active{
2794  transform:scale(.98);
2795}
2796
2797#wcRunBtn:disabled{
2798  opacity:.72;
2799  cursor:not-allowed;
2800}
2801
2802.wc26-result{
2803  margin-top:12px;
2804  padding:13px;
2805  border-radius:18px;
2806  background:linear-gradient(180deg, rgba(22, 8, 8, 0.9), rgba(10, 3, 3, 0.92));
2807  border:1px solid rgba(255, 0, 0, 0.2);
2808  box-shadow:inset 0 0 18px rgba(186,255,0,.07);
2809}
2810
2811.wc26-status{
2812  text-align:center;
2813  margin-bottom:11px;
2814  font-family:"Orbitron",sans-serif;
2815  font-size:11px;
2816  font-weight:900;
2817  color:#ff0000;
2818  letter-spacing:.8px;
2819}
2820
2821.wc26-champion-card{
2822  display:flex;
2823  justify-content:space-between;
2824  align-items:center;
2825  gap:14px;
2826  padding:14px;
2827  border-radius:16px;
2828  background:
2829    radial-gradient(circle at 10% 0%, rgba(255, 0, 0, 0.16), transparent 42%),
2830    linear-gradient(145deg, rgba(255,255,255,.06), rgba(255,255,255,.025));
2831  border:1px solid rgba(255,255,255,.08);
2832}
2833
2834.wc26-left{
2835  min-width:0;
2836}
2837
2838.wc26-label{
2839  font-size:10px;
2840  text-transform:uppercase;
2841  color:#ffec8d;
2842  font-weight:800;
2843  letter-spacing:.8px;
2844}
2845
2846.wc26-label.center{
2847  text-align:center;
2848}
2849
2850.wc26-country{
2851  margin-top:6px;
2852  font-family:"Orbitron",sans-serif;
2853  font-size:21px;
2854  line-height:1.15;
2855  font-weight:900;
2856  color:#fff;
2857  text-shadow:0 0 13px rgba(255,255,255,.18);
2858}
2859
2860.wc26-meta{
2861  display:flex;
2862  flex-wrap:wrap;
2863  gap:8px;
2864  margin-top:8px;
2865  font-size:11px;
2866  color:#cce5ef;
2867}
2868
2869.wc26-meta b{
2870  color:#ff0000;
2871}
2872
2873.wc26-percent{
2874  font-family:"Orbitron",sans-serif;
2875  font-size:38px;
2876  font-weight:900;
2877  color:#ff0000;
2878  line-height:1;
2879  text-shadow:0 0 15px rgba(186,255,0,.45);
2880}
2881
2882.wc26-grid-info{
2883  display:grid;
2884  grid-template-columns:repeat(3,1fr);
2885  gap:8px;
2886  margin-top:10px;
2887}
2888
2889.wc26-grid-info div{
2890  padding:10px;
2891  border-radius:14px;
2892  background:rgba(255,255,255,.045);
2893  border:1px solid rgba(255,255,255,.07);
2894}
2895
2896.wc26-grid-info small{
2897  display:block;
2898  font-size:9px;
2899  color:#ffec8d;
2900  text-transform:uppercase;
2901  font-weight:800;
2902  letter-spacing:.5px;
2903}
2904
2905.wc26-grid-info strong{
2906  display:block;
2907  margin-top:5px;
2908  font-size:12px;
2909  color:#fff;
2910  line-height:1.25;
2911}
2912
2913.wc26-commentary{
2914  margin-top:10px;
2915  padding:10px;
2916  border-radius:13px;
2917  background:rgba(186,255,0,.075);
2918  border:1px dashed rgba(186,255,0,.2);
2919  color:#dfffe5;
2920  font-size:11px;
2921  line-height:1.5;
2922  text-align:center;
2923}
2924
2925.wc26-ranking{
2926  margin-top:12px;
2927  padding:13px;
2928  border-radius:18px;
2929  background:rgba(2,10,12,.58);
2930  border:1px solid rgba(53,204,255,.18);
2931}
2932
2933.wc26-ranking-title{
2934  margin-bottom:9px;
2935  font-family:"Orbitron",sans-serif;
2936  font-size:12px;
2937  font-weight:900;
2938  color:#ffec8d;
2939  letter-spacing:.7px;
2940}
2941
2942.wc26-list{
2943  display:grid;
2944  gap:8px;
2945}
2946
2947.wc26-item{
2948  position:relative;
2949  overflow:hidden;
2950  padding:10px;
2951  border-radius:14px;
2952  background:linear-gradient(135deg, rgba(255,255,255,.06), rgba(255,255,255,.025));
2953  border-left:3px solid #ff0000;
2954}
2955
2956.wc26-item-top{
2957  display:flex;
2958  justify-content:space-between;
2959  gap:10px;
2960  font-size:12px;
2961  font-weight:900;
2962  color:#fff;
2963}
2964
2965.wc26-item-top span:last-child{
2966  color:#ff0000;
2967  font-family:"Orbitron",sans-serif;
2968}
2969
2970.wc26-bar{
2971  height:6px;
2972  margin-top:8px;
2973  border-radius:999px;
2974  background:rgba(255,255,255,.08);
2975  overflow:hidden;
2976}
2977
2978.wc26-bar i{
2979  display:block;
2980  height:100%;
2981  width:var(--w);
2982  border-radius:999px;
2983  background:linear-gradient(90deg,#ff0000,#35ccff);
2984  box-shadow:0 0 12px rgba(186,255,0,.35);
2985}
2986
2987.wc26-item-sub{
2988  margin-top:6px;
2989  font-size:10px;
2990  color:#aac5d2;
2991}
2992
2993.wc26-footer{
2994  margin-top:10px;
2995  text-align:center;
2996  font-size:10px;
2997  color:#b7c8d1;
2998  opacity:.8;
2999}
3000
3001@keyframes wcSweep{
3002  0%{transform:translateX(-120%)}
3003  100%{transform:translateX(120%)}
3004}
3005
3006@keyframes wcPulse{
3007  0%{opacity:.45}
3008  50%{opacity:1}
3009  100%{opacity:.45}
3010}
3011
3012@media(max-width:460px){
3013  .wc26-controls{
3014    grid-template-columns:1fr;
3015  }
3016
3017  #wcRunBtn{
3018    grid-column:span 1;
3019  }
3020
3021  .wc26-champion-card{
3022    flex-direction:column;
3023    align-items:flex-start;
3024  }
3025
3026  .wc26-percent{
3027    font-size:34px;
3028  }
3029
3030  .wc26-grid-info{
3031    grid-template-columns:1fr;
3032  }
3033}
3034</style>
3035
3036<script>
3037const WC26_TEAMS = [
3038  { group:"A", name:"Mexico", power:82, form:78 },
3039  { group:"A", name:"South Africa", power:69, form:71 },
3040  { group:"A", name:"Korea Republic", power:76, form:77 },
3041  { group:"A", name:"Czechia", power:74, form:73 },
3042
3043  { group:"B", name:"Canada", power:73, form:75 },
3044  { group:"B", name:"Bosnia and Herzegovina", power:70, form:69 },
3045  { group:"B", name:"Qatar", power:68, form:70 },
3046  { group:"B", name:"Switzerland", power:80, form:79 },
3047
3048  { group:"C", name:"Brazil", power:94, form:88 },
3049  { group:"C", name:"Morocco", power:84, form:86 },
3050  { group:"C", name:"Haiti", power:62, form:66 },
3051  { group:"C", name:"Scotland", power:75, form:74 },
3052
3053  { group:"D", name:"USA", power:79, form:80 },
3054  { group:"D", name:"Paraguay", power:73, form:72 },
3055  { group:"D", name:"Australia", power:72, form:74 },
3056  { group:"D", name:"Türkiye", power:78, form:79 },
3057
3058  { group:"E", name:"Germany", power:90, form:84 },
3059  { group:"E", name:"Curaçao", power:61, form:67 },
3060  { group:"E", name:"Côte d'Ivoire", power:76, form:78 },
3061  { group:"E", name:"Ecuador", power:77, form:79 },
3062
3063  { group:"F", name:"Netherlands", power:88, form:85 },
3064  { group:"F", name:"Japan", power:82, form:84 },
3065  { group:"F", name:"Sweden", power:76, form:75 },
3066  { group:"F", name:"Tunisia", power:71, form:72 },
3067
3068  { group:"G", name:"Belgium", power:86, form:82 },
3069  { group:"G", name:"Egypt", power:78, form:77 },
3070  { group:"G", name:"IR Iran", power:75, form:76 },
3071  { group:"G", name:"New Zealand", power:66, form:68 },
3072
3073  { group:"H", name:"Spain", power:91, form:89 },
3074  { group:"H", name:"Cabo Verde", power:66, form:70 },
3075  { group:"H", name:"Saudi Arabia", power:70, form:71 },
3076  { group:"H", name:"Uruguay", power:85, form:83 },
3077
3078  { group:"I", name:"France", power:93, form:90 },
3079  { group:"I", name:"Senegal", power:81, form:82 },
3080  { group:"I", name:"Iraq", power:69, form:72 },
3081  { group:"I", name:"Norway", power:79, form:80 },
3082
3083  { group:"J", name:"Argentina", power:92, form:89 },
3084  { group:"J", name:"Algeria", power:77, form:78 },
3085  { group:"J", name:"Austria", power:80, form:79 },
3086  { group:"J", name:"Jordan", power:67, form:70 },
3087
3088  { group:"K", name:"Portugal", power:89, form:86 },
3089  { group:"K", name:"Congo DR", power:70, form:72 },
3090  { group:"K", name:"Uzbekistan", power:69, form:73 },
3091  { group:"K", name:"Colombia", power:83, form:85 },
3092
3093  { group:"L", name:"England", power:90, form:87 },
3094  { group:"L", name:"Croatia", power:84, form:81 },
3095  { group:"L", name:"Ghana", power:74, form:75 },
3096  { group:"L", name:"Panama", power:67, form:68 }
3097];
3098
3099const WC_COMMENTS = [
3100"memiliki komposisi pemain solid, pengalaman kompetisi besar, serta kesempatan besar mencapai babak penentuan.",
3101
3102"menunjukkan performa yang cukup konsisten pada fase grup, meski masih perlu menjaga kestabilan saat memasuki babak eliminasi.",
3103
3104"layak diperhitungkan berkat tren permainan positif dan peluang menghadirkan kejutan sepanjang turnamen.",
3105
3106"termasuk dalam daftar calon juara karena kekuatan tim dan performa terkini yang relatif seimbang.",
3107
3108"berpotensi meningkatkan peluang sukses apabila mampu mempertahankan performa sejak babak grup hingga fase gugur."
3109];
3110
3111const $wc = q => document.querySelector(q);
3112const rand = (min,max) => Math.floor(Math.random() * (max - min + 1)) + min;
3113
3114function initGroups(){
3115  const select = $wc("#wcGroupFilter");
3116  const groups = [...new Set(WC26_TEAMS.map(t => t.group))];
3117  groups.forEach(g => {
3118    const opt = document.createElement("option");
3119    opt.value = g;
3120    opt.textContent = "GROUP " + g;
3121    select.appendChild(opt);
3122  });
3123}
3124
3125function modeBonus(team, mode){
3126  let bonus = 0;
3127
3128  if(mode === "FAVORITE"){
3129    bonus = team.power >= 85 ? rand(8,14) : rand(-2,5);
3130  }
3131
3132  if(mode === "UNDERDOG"){
3133    bonus = team.power < 76 ? rand(10,18) : rand(-5,4);
3134  }
3135
3136  if(mode === "CHAOS"){
3137    bonus = rand(-12,18);
3138  }
3139
3140  if(mode === "BALANCE"){
3141    bonus = rand(-5,10);
3142  }
3143
3144  return bonus;
3145}
3146
3147function calculateChance(team, mode){
3148  const base = (team.power * 0.58) + (team.form * 0.32);
3149  const surprise = rand(1,14);
3150  const groupPressure = team.group.charCodeAt(0) % 5;
3151  let score = base + surprise + modeBonus(team, mode) - groupPressure;
3152
3153  let chance = Math.max(3, Math.min(97, Math.round(score - 48)));
3154
3155  if(team.power >= 90) chance += rand(4,8);
3156  if(team.power <= 68) chance -= rand(2,6);
3157
3158  return Math.max(1, Math.min(99, chance));
3159}
3160
3161function getPowerLabel(power){
3162  if(power >
3162= 90) return "ELITE";
3163  if(power >= 84) return "CONTENDER";
3164  if(power >= 77) return "DANGEROUS";
3165  if(power >= 70) return "OUTSIDER";
3166  return "UNDERDOG";
3167}
3168
3169function applyTeamFilter(){
3170  const group = $wc("#wcGroupFilter").value;
3171  const minChance = Number($wc("#wcMinChance").value || 1);
3172  const mode = $wc("#wcMode").value;
3173
3174  return WC26_TEAMS
3175    .filter(t => group === "ALL" || t.group === group)
3176    .map(t => ({
3177      ...t,
3178      chance: calculateChance(t, mode),
3179      label: getPowerLabel(t.power)
3180    }))
3181    .filter(t => t.chance >= minChance)
3182    .sort((a,b) => b.chance - a.chance);
3183}
3184
3185function pickOne(arr){
3186  return arr[rand(0, arr.length - 1)];
3187}
3188
3189function renderChampion(data){
3190  const champion = data[0];
3191  const runner = data[1] || data[0];
3192  const semi = data[2] || data[0];
3193
3194  const darkHorsePool = data.filter(t => t.power < 78);
3195  const darkHorse = darkHorsePool.length ? pickOne(darkHorsePool) : data[data.length - 1];
3196
3197  $wc("#wcChampion").textContent = champion.name;
3198  $wc("#wcGroup").textContent = champion.group;
3199  $wc("#wcPower").textContent = champion.label;
3200  $wc("#wcChance").textContent = champion.chance + "%";
3201
3202  $wc("#wcRunner").textContent = runner.name;
3203  $wc("#wcSemi").textContent = semi.name;
3204  $wc("#wcDarkHorse").textContent = darkHorse.name;
3205
3206  $wc("#wcCommentary").textContent =
3207    champion.name + " " + pickOne(WC_COMMENTS) +
3208    " Simulasi menempatkan mereka sebagai kandidat terkuat dengan peluang angkat trofi " +
3209    champion.chance + "%.";
3210}
3211
3212function renderRanking(data){
3213  const list = $wc("#wcTopList");
3214  list.innerHTML = "";
3215
3216  data.slice(0, 6).forEach((team, index) => {
3217    const item = document.createElement("div");
3218    item.className = "wc26-item";
3219    item.innerHTML = `
3220      <div class="wc26-item-top">
3221        <span>#${index + 1} ${team.name}</span>
3222        <span>${team.chance}%</span>
3223      </div>
3224      <div class="wc26-bar">
3225        <i style="--w:${team.chance}%"></i>
3226      </div>
3227      <div class="wc26-item-sub">
3228        Group ${team.group} • ${team.label} • Power ${team.power} • Form ${team.form}
3229      </div>
3230    `;
3231    list.appendChild(item);
3232  });
3233}
3234
3235function clearResult(message){
3236  $wc("#wcStatus").textContent = message;
3237  $wc("#wcChampion").textContent = "-";
3238  $wc("#wcGroup").textContent = "-";
3239  $wc("#wcPower").textContent = "-";
3240  $wc("#wcChance").textContent = "-";
3241  $wc("#wcRunner").textContent = "-";
3242  $wc("#wcSemi").textContent = "-";
3243  $wc("#wcDarkHorse").textContent = "-";
3244  $wc("#wcCommentary").textContent = "Tidak ada negara yang cocok dengan filter simulasi.";
3245  $wc("#wcTopList").innerHTML = "";
3246}
3247
3248function setLoading(btn, active){
3249  if(active){
3250    btn.disabled = true;
3251    btn.dataset.oldText = btn.innerHTML;
3252    btn.innerHTML = "<span>🔄</span> SIMULATING...";
3253  }else{
3254    btn.disabled = false;
3255    btn.innerHTML = btn.dataset.oldText || "<span>⚽</span> START SIMULATION";
3256  }
3257}
3258
3259function runSimulation(){
3260  const btn = $wc("#wcRunBtn");
3261  const status = $wc("#wcStatus");
3262
3263  setLoading(btn, true);
3264  status.textContent = "— ANALYZING GROUP POWER —";
3265  status.style.animation = "wcPulse .55s linear infinite";
3266
3267  const flicker = setInterval(() => {
3268    const temp = pickOne(WC26_TEAMS);
3269    $wc("#wcChampion").textContent = temp.name;
3270    $wc("#wcGroup").textContent = temp.group;
3271    $wc("#wcPower").textContent = getPowerLabel(temp.power);
3272    $wc("#wcChance").textContent = rand(5, 95) + "%";
3273  }, 80);
3274
3275  setTimeout(() => {
3276    clearInterval(flicker);
3277
3278    const result = applyTeamFilter();
3279
3280    if(!result.length){
3281      clearResult("— NO MATCH FOUND —");
3282      status.style.animation = "";
3283      setLoading(btn, false);
3284      return;
3285    }
3286
3287    renderChampion(result);
3288    renderRanking(result);
3289
3290    status.textContent = "— SIMULATION COMPLETE —";
3291    status.style.animation = "";
3292    setLoading(btn, false);
3293  }, 1300);
3294}
3295
3296(function initWorldCupSimulator(){
3297  initGroups();
3298  $wc("#wcRunBtn").addEventListener("click", runSimulation);
3299})();
3300</script>
3300
3301                  <div class="pwp-deals-section" id="pwp-deals-section" hidden="" data-product-id="325" data-variant-id="0" data-category-path="Komputer &amp; Laptop/Laptop/Gaming">
3302                     <div class="pwp-deals-header">
3303                        <svg class="pwp-icon" width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
3304                           <path d="M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"></path>
3305                        </svg>
3306                        <div class="pwp-text">
3307                           <h3 class="pwp-title">Penawaran Spesial PWP (Purchase with Purchase)</h3>
3308                           <p class="pwp-subtitle">Beli produk ini dan dapatkan produk pilihan dengan harga spesial</p>
3309                        </div>
3310                     </div>
3311                     <div class="pwp-deals-loading">
3312                        <div class="pwp-spinner"></div>
3313                        <p>Memuat penawaran...</p>
3314                     </div>
3315                     <div class="pwp-deals-grid" id="pwp-deals-grid"></div>
3316                     <p class="pwp-cart-note">💡 Produk PWP dapat ditambahkan di halaman keranjang setelah produk ini dimasukkan</p>
3317                  </div>
3318               </div>
3319            </section>
3320            <aside class="pd-sidebar">
3321               <div class="pd-side-card pd-buy-card">
3322                  <form class="pd-buy-form" id="pd-buy-form" data-pid="325">
3323                     <input type="hidden" name="variant_id" id="pd-variant-id" value="0">
3324                     <div>
3325                        <label for="qty" class="qty-label">Qty</label>
3326                        <input type="number" id="qty" name="qty" value="0" min="1" max="0" disabled="">
3327                     </div>
3328                     <div class="pd-actions">
3329                        <button type="submit" class="btn-add-cart" id="btn-add-cart" disabled="" data-product-id="325">+ Keranjang</button>
3330                        <button type="button" class="btn-buy" id="btn-buy" data-id="278426" disabled="" data-product-id="325">Beli</button>
3331                        <button type="button" class="btn-chat-icon" id="btn-chat-icon" aria-label="Tanya Produk" title="Tanya Produk">
3332                           <svg viewBox="0 0 640 640" fill="currentColor">
3333                              <path d="M320 128C241 128 175.3 185.3 162.3 260.7C171.6 257.7 181.6 256 192 256L208 256C234.5 256 256 277.5 256 304L256 400C256 426.5 234.5 448 208 448L192 448C139 448 96 405 96 352L96 288C96 164.3 196.3 64 320 64C443.7 64 544 164.3 544 288L544 456.1C544 522.4 490.2 576.1 423.9 576.1L336 576L304 576C277.5 576 256 554.5 256 528C256 501.5 277.5 480 304 480L336 480C362.5 480 384 501.5 384 528L384 528L424 528C463.8 528 496 495.8 496 456L496 435.1C481.9 443.3 465.5 447.9 448 447.9L432 447.9C405.5 447.9 384 426.4 384 399.9L384 303.9C384 277.4 405.5 255.9 432 255.9L448 255.9C458.4 255.9 468.3 257.5 477.7 260.6C464.7 185.3 399.1 127.9 320 127.9z"></path>
3334                           </svg>
3335                        </button>
3336                     </div>
3337                  </form>
3338                  <div class="paylater-promo paylater-promo-md paylater-desktop-only">
3339                     <span class="paylater-icon">💳</span>
3340                     <span class="paylater-text">
3341                     <strong>Autorized SITUS JUDI BOLA</strong>
3342                     <small>Link Login SBOBET &amp; SBOBET88</small>
3343                     </span>
3344                  </div>
3345               </div>
3346               <div class="pd-side-card qoala-banner-card">
3347                  <div class="qoala-banner">
3348                     <div class="qoala-banner-content">
3349                        <div class="qoala-icon">
3350                           <center><img src="https://i.ibb.co.com/35BHKV0W/favagent88bethd.png" alt="SBOBET" class="qoala-shield-img"></center>
3351                        </div>
3352                        <div class="qoala-text">
3353                           <div class="qoala-title">Login SBOBET</div>
3354                           <div class="qoala-subtitle">Verified</div>
3355                        </div>
3356                     </div>
3357                     <a href="https://perfilaluminioestructural.com/" class="qoala-cta" data-ga-event="qoala_banner_click" data-product-id="325" data-product-name="SBOBET" data-category-path="Komputer &amp; Laptop/Laptop/Gaming" target="_blank">Info</a>
3358                  </div>
3359                  <style>
3360.qoala-banner-card {
3361  padding: 0;
3362  overflow: hidden;
3363}
3364
3365/* MAIN BANNER */
3366.qoala-banner {
3367  background: linear-gradient(135deg, #170202 0%, #330000 50%, #660000 100%);
3368  padding: 12px 16px;
3369  display: flex;
3370  align-items: center;
3371  justify-content: space-between;
3372  color: #e6fff2;
3373  text-decoration: none;
3374  min-height: 60px;
3375  border: 1px solid rgba(255, 0, 0, 0.45);
3376  box-shadow:
3377    0 0 15px rgba(255, 0, 0, 0.35),
3378    inset 0 0 15px rgba(255, 0, 0, 0.15);
3379}
3380
3381/* CONTENT */
3382.qoala-banner-content {
3383  display: flex;
3384  align-items: center;
3385  gap: 12px;
3386}
3387
3388.qoala-icon {
3389  display: flex;
3390  align-items: center;
3391  justify-content: center;
3392}
3393
3394.qoala-shield-img {
3395  width: 36px;
3396  height: 36px;
3397  object-fit: contain;
3398  opacity: 0.9;
3399  filter: drop-shadow(0 0 8px rgba(255, 0, 0, 0.65));
3400}
3401
3402/* TEXT */
3403.qoala-title {
3404  font-weight: 600;
3405  font-size: 14px;
3406  line-height: 1.2;
3407  color: #ff9f9f;
3408  text-shadow: 0 0 8px rgba(255, 0, 0, 0.65);
3409}
3410
3411.qoala-subtitle {
3412  font-size: 12px;
3413  opacity: 0.9;
3414  line-height: 1.2;
3415  color: #ffcccc;
3416}
3417
3418/* BUTTON */
3419.qoala-cta {
3420  background: rgba(255, 0, 0, 0.18);
3421  color: #ffffff;
3422  padding: 6px 12px;
3423  border-radius: 6px;
3424  font-size: 12px;
3425  font-weight: 600;
3426  text-decoration: none;
3427  transition: all 0.2s ease;
3428  border: 1px solid rgba(255, 0, 0, 0.55);
3429  box-shadow: 0 0 10px rgba(255, 0, 0, 0.35);
3430}
3431
3432.qoala-cta:hover {
3433  background: rgba(255, 0, 0, 0.32);
3434  color: white;
3435  box-shadow: 0 0 15px rgba(255, 0, 0, 0.65);
3436}
3437
3438/* MOBILE */
3439@media(max-width:768px) {
3440  .qoala-banner {
3441    padding: 10px 12px;
3442  }
3443
3444  .qoala-title {
3445    font-size: 17px;
3446  }
3447
3448  .qoala-subtitle {
3449    font-size: 11px;
3450  }
3451}
3452</style>
3453               </div>
3454               <div class="pd-side-card pd-installment-card2" id="inst-card" data-base-price="20789000" data-zero-smart="0">
3455                  <div class="inst-head">
3456                     <h3>Promo &amp; Fitur SBOBET</h3>
3457                  </div>
3458                  <div class="inst-bank-tabs" role="tablist" aria-label="Bank">
3459                     <button type="button" class="bank-tab active" data-bank="Lucky Draw" aria-selected="true">JUDI BOLA</button>
3460                     <button type="button" class="bank-tab" data-bank="Lomba Panjat Tur
3460nover" aria-selected="false">SITUS JUDI BOLA</button>
3461                     <button type="button" class="bank-tab" data-bank="BocoranSBOBET" aria-selected="false">AGENT88BET</button>
3462                  </div>
3463                  <ul class="inst-month-list" id="inst-month-list" aria-label="Daftar cicilan per bulan">
3464                     <li class="inst-month-item"><span class="tenor-badge">3x</span><span class="amount">Rp 6.929.700 / bln</span></li>
3465                     <li class="inst-month-item"><span class="tenor-badge">6x</span><span class="amount">Rp 3.464.900 / bln</span></li>
3466                     <li class="inst-month-item"><span class="tenor-badge">12x</span><span class="amount">Rp 1.732.500 / bln</span></li>
3467                  </ul>
3468                  <div class="inst-note" id="inst-zero-note" style="display:none;">0% Cicilan khusus bank terpilih*</div>
3469                  <div class="inst-disclaimer">Angka estimasi. Bisa berlaku sesuai kebijakan bank / penyedia.</div>
3470               </div>
3471               <!-- MECHA BLUE FINAL BOSS REVIEW SLIDER -->
3472               <div class="tnt-review-mecha">
3473                  <div class="tnt-header">
3474                     <h2>SBOBET</h2>
3475                     <p>Review Member SBOBET AGENT88BET</p>
3476                  </div>
3477                  <div class="tnt-slider" id="tntSlider">
3478                     <div class="tnt-slide">
3479                        <div class="tnt-name">Kairi</div>
3480                        <div class="tnt-comment">"SBOBET88 memberikan pengalaman bermain yang nyaman. Akses SBOBET mobile cepat, pilihan taruhan bola lengkap, dan pasar parlay selalu tersedia setiap hari."</div>
3481                     </div>
3482                     <div class="tnt-slide">
3483                        <div class="tnt-name">Albert</div>
3484                        <div class="tnt-comment">"Saya memilih SBOBET88 karena proses daftar mudah dan tampilan SBOBET mobile sangat ringan. Semua fitur taruhan bisa diakses tanpa kendala."</div>
3485                     </div>
3486                     <div class="tnt-slide active">
3487                        <div class="tnt-name">Nnael</div>
3488                        <div class="tnt-comment">"SBOBET88 menjadi platform favorit saya untuk mengikuti pertandingan sepak bola internasional. Pilihan taruhan SBOBET lengkap dan update pertandingan selalu cepat."</div>
3489                     </div>
3490                     <div class="tnt-slide">
3491                        <div class="tnt-name">Kelra</div>
3492                        <div class="tnt-comment">"Pengalaman menggunakan SBOBET88 sangat memuaskan. Akses stabil, navigasi sederhana, dan fitur parlay SBOBET membantu saya menikmati berbagai pertandingan besar."</div>
3493                     </div>
3494                     <div class="tnt-slide">
3495                        <div class="tnt-name">Moreno</div>
3496                        <div class="tnt-comment">"SBOBET88 menghadirkan layanan SBOBET yang praktis dan mudah digunakan. Pilihan taruhan beragam, tampilan mobile responsif, serta informasi pertandingan selalu diperbarui."</div>
3497                     </div>
3498                  </div>
3499               </div>
3500               <a href="https://perfilaluminioestructural.com/tuerca/index.html" target="_blank">
3501               <img style="display:block;margin-left:auto;margin-right:auto;height: 250px;border: 2px solid rgb(0, 0, 0);border-radius: 20px;box-shadow: 1px 1px 1px black;" alt="SBOBET" src="https://i.ibb.co.com/VcKNnZ2b/bannerag88bethd.webp" width="250" height="300">
3502               </a>
3503            </aside>
3504         </div>
3505<style>
3506.tnt-review-mecha {
3507  background:
3508    radial-gradient(circle at top center, rgba(0, 255, 120, 0.18), transparent 35%),
3509    radial-gradient(circle at center, #680b0b, #000000 75%);
3510  border: 2px solid rgba(255, 0, 0, 0.65);
3511  border-radius: 18px;
3512  padding: 30px 28px;
3513  color: #eafff3;
3514  font-family: 'Orbitron', sans-serif;
3515  position: relative;
3516  overflow: hidden;
3517  box-shadow:
3518    0 0 28px rgba(255, 0, 0, 0.45),
3519    inset 0 0 24px rgba(255, 0, 0, 0.22);
3520  animation: pulseGlow 4.5s ease-in-out infinite;
3521}
3522
3523/* scanline overlay lebih halus */
3524.tnt-review-mecha::before {
3525  content: "";
3526  position: absolute;
3527  inset: 0;
3528  background: repeating-linear-gradient(
3529    to bottom,
3530    rgba(0, 255, 120, 0.035),
3531    rgba(0, 255, 120, 0.035) 1px,
3532    transparent 3px,
3533    transparent 7px
3534  );
3535  pointer-events: none;
3536  opacity: 0.65;
3537  animation: scanMove 7s linear infinite;
3538}
3539
3540/* glow tipis tambahan */
3541.tnt-review-mecha::after {
3542  content: "";
3543  position: absolute;
3544  inset: 1px;
3545  border-radius: 16px;
3546  border: 1px solid rgba(255, 125, 125, 0.25);
3547  box-shadow: inset 0 0 18px rgba(255, 0, 0, 0.18);
3548  pointer-events: none;
3549}
3550
3551/* biar konten selalu di atas overlay */
3552.tnt-review-mecha > * {
3553  position: relative;
3554  z-index: 2;
3555}
3556
3557/* HEADER */
3558.tnt-header h2 {
3559  font-size: 26px;
3560  line-height: 1.3;
3561  color: #ff8d8d;
3562  text-shadow:
3563    0 0 8px rgba(255, 0, 0, 0.9),
3564    0 0 18px rgba(255, 0, 0, 0.7),
3565    0 0 35px rgba(255, 0, 0, 0.35);
3566  margin: 0 0 8px;
3567  letter-spacing: 1px;
3568}
3569
3570.tnt-header p {
3571  font-size: 16px;
3572  line-height: 1.6;
3573  opacity: 0.92;
3574  margin: 0 0 22px;
3575  color: #ffd7d7;
3576  text-shadow: 0 0 8px rgba(255, 0, 0, 0.35);
3577}
3578
3579/* SLIDER */
3580.tnt-slider {
3581  position: relative;
3582  min-height: 145px;
3583  overflow: hidden;
3584}
3585
3586.tnt-slide {
3587  position: absolute;
3588  inset: 0;
3589  width: 100%;
3590  opacity: 0;
3591  transform: translateX(55px) scale(0.98);
3592  filter: blur(3px);
3593  transition:
3594    opacity 1s ease,
3595    transform 1s cubic-bezier(0.22, 1, 0.36, 1),
3596    filter 1s ease;
3597}
3598
3599.tnt-slide.active {
3600  opacity: 1;
3601  transform: translateX(0) scale(1);
3602  filter: blur(0);
3603}
3604
3605/* NAME */
3606.tnt-name {
3607  font-size: 19px;
3608  line-height: 1.4;
3609  color: #ff0000;
3610  margin-bottom: 10px;
3611  letter-spacing: 0.8px;
3612  text-shadow:
3613    0 0 8px rgba(255, 0, 0, 0.9),
3614    0 0 18px rgba(255, 0, 0, 0.55);
3615}
3616
3617/* COMMENT */
3618.tnt-comment {
3619  font-size: 17px;
3620  line-height: 1.75;
3621  color: #e4ffed;
3622  text-shadow: 0 0 7px rgba(255, 0, 0, 0.22);
3623  max-width: 95%;
3624}
3625
3626/* glowing border animation lebih smooth */
3627@keyframes pulseGlow {
3628  0%, 100% {
3629    box-shadow:
3630      0 0 22px rgba(255, 0, 0, 0.38),
3631      0 0 45px rgba(255, 0, 0, 0.16),
3632      inset 0 0 20px rgba(255, 0, 0, 0.18);
3633    border-color: rgba(255, 0, 0, 0.55);
3634  }
3635
3636  50% {
3637    box-shadow:
3638      0 0 38px rgba(255, 0, 0, 0.65),
3639      0 0 80px rgba(255, 0, 0, 0.28),
3640      inset 0 0 32px rgba(255, 0, 0, 0.28);
3641    border-color: rgba(255, 125, 125, 0.9);
3642  }
3643}
3644
3645/* scanline bergerak pelan */
3646@keyframes scanMove {
3647  0% {
3648    background-position: 0 0;
3649  }
3650
3651  100% {
3652    background-position: 0 120px;
3653  }
3654}
3655
3656/* RESPONSIVE MOBILE */
3657@media (max-width: 600px) {
3658  .tnt-review-mecha {
3659    padding: 24px 20px;
3660    border-radius: 16px;
3661  }
3662
3663  .tnt-header h2 {
3664    font-size: 21px;
3665  }
3666
3667  .tnt-header p {
3668    font-size: 14px;
3669  }
3670
3671  .tnt-slider {
3672    min-height: 170px;
3673  }
3674
3675  .tnt-name {
3676    font-size: 17px;
3677  }
3678
3679  .tnt-comment {
3680    font-size: 15px;
3681    line-height: 1.65;
3682    max-width: 100%;
3683  }
3684}
3685</style>
3686         
3686<script>
3687            let slides = document.querySelectorAll('.tnt-slide');
3688            let index = 0;
3689            setInterval(() => {
3690              slides[index].classList.remove('active');
3691              index = (index + 1) % slides.length;
3692              slides[index].classList.add('active');
3693            }, 3000);
3694         </script>
3694
3695         <section class="pd-full-description cyber-mecha" id="deskripsi">
3696            <h2 class="pd-full-desc-title"></h2>
3697            <div class="pd-full-desc-body">
3698               <div class="mecha-header">
3699                  <h3>SBOBET88 > Link Daftar SBOBET Mobile Agen Parlay Piala Dunia Resmi</h3>
3700               </div>
3701               <div class="mecha-content">
3702                  <div class="article-content">
3703                     <p>
3704                        <a style="text-decoration: none; color: rgb(241, 235, 235); font-weight: 600;" <strong><a href="https://perfilaluminioestructural.com/">SBOBET88</a></strong> merupakan platform SBOBET mobile resmi dengan layanan pendaftaran praktis, akses cepat, serta dukungan taruhan olahraga terlengkap. SBOBET88 menghadirkan pengalaman bermain SBOBET melalui perangkat mobile dengan performa stabil dan navigasi sederhana. Banyak penggemar taruhan olahraga memilih SBOBET88 karena menyediakan pasar taruhan populer, update pertandingan real-time, serta fitur lengkap untuk kebutuhan taruhan harian.</p>
3705<p>Sebagai agen<strong><a href="https://perfilaluminioestructural.com/">SBOBET</a></strong>terpercaya, SBOBET88 menawarkan pilihan taruhan parlay, mix parlay, live betting, dan berbagai kompetisi sepak bola dunia termasuk Piala Dunia 2026. SBOBET88 memberikan akses mudah ke layanan SBOBET resmi dengan dukungan sistem keamanan modern dan transaksi cepat. Kombinasi fitur unggulan, layanan profesional, serta akses SBOBET mobile membuat SBOBET88 menjadi salah satu pilihan favorit bagi pecinta taruhan bola online.
3706</p>
3707
3708<h2>Keunggulan SBOBET88</h2>
3709
3710<ul>
3711<li><strong>Platform SBOBET mobile resmi dan mudah diakses.</strong></li>
3712<li><strong>Proses daftar SBOBET88 cepat dan praktis.</strong></li>
3713<li><strong>Pilihan taruhan SBOBET lengkap setiap hari.</strong></li>
3714<li><strong>Pasar parlay SBOBET untuk berbagai kompetisi dunia.</strong></li>
3715<li><strong>Dukungan pertandingan Piala Dunia 2026.</strong></li>
3716<li><strong>Tampilan SBOBET mobile ringan dan responsif.</strong></li>
3717<li><strong>Layanan SBOBET88 tersedia 24 jam.</strong></li>
3718<li><strong>Sistem keamanan akun SBOBET88 terpercaya.</strong></li>
3719</ul>
3720<h2>Mengapa Memilih SBOBET88?</h2>
3721<p>SBOBET88 menghadirkan layanan SBOBET dengan fokus pada kenyamanan pengguna. SBOBET88 menyediakan berbagai pilihan taruhan bola, taruhan parlay, dan live betting dalam satu platform. SBOBET mobile melalui SBOBET88 memungkinkan pengguna menikmati akses cepat, informasi pertandingan terbaru, serta beragam pasar taruhan internasional. Reputasi SBOBET88 sebagai agen SBOBET terpercaya menjadikannya pilihan populer di kalangan pecinta taruhan olahraga online.
3722</p>
3723                     <p class="final-line"> ⚡ STATUS: Platform berjalan lancar, responsif, dan selalu diperbarui untuk mendukung akses terbaik. </p>
3724                  </div>
3725               </div>
3726            </div>
3727         </section>
3728         <style>
3729@import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@400;600;800&display=swap');
3730
3731.cyber-mecha {
3732  font-family: 'Orbitron', sans-serif;
3733  max-width: 900px;
3734  margin: 40px auto;
3735  padding: 25px;
3736  border-radius: 18px;
3737  background: radial-gradient(circle at top, #661515, #000000 70%);
3738  border: 1px solid rgba(255, 0, 0, 0.5);
3739  box-shadow:
3740    0 0 25px rgba(255, 0, 0, 0.38),
3741    inset 0 0 25px rgba(255, 0, 0, 0.16);
3742  position: relative;
3743  overflow: hidden;
3744}
3745
3746/* scanline effect */
3747.cyber-mecha::before {
3748  content: "";
3749  position: absolute;
3750  inset: 0;
3751  background: repeating-linear-gradient(to bottom,
3752    rgba(255, 0, 0, 0.045),
3753    rgba(255, 0, 0, 0.045) 1px,
3754    transparent 1px,
3755    transparent 3px);
3756  pointer-events: none;
3757}
3758
3759/* TITLE */
3760.pd-full-desc-title {
3761  text-align: center;
3762  font-size: 22px;
3763  font-weight: 800;
3764  color: #ff8d8d;
3765  margin-bottom: 25px;
3766  text-shadow:
3767    0 0 10px #ff0000,
3768    0 0 25px #ff0000;
3769  letter-spacing: 1px;
3770}
3771
3772/* FAQ BOX */
3773.faq-item {
3774  margin-bottom: 15px;
3775  border-radius: 12px;
3776  border: 1px solid rgba(255, 0, 0, 0.38);
3777  background: rgba(55, 0, 0, 0.48);
3778  backdrop-filter: blur(8px);
3779  transition: all 0.3s ease;
3780  overflow: hidden;
3781}
3782
3783.faq-item:hover {
3784  border-color: rgba(255, 0, 0, 0.85);
3785  box-shadow: 0 0 15px rgba(255, 0, 0, 0.55);
3786}
3787
3788/* QUESTION */
3789.faq-question {
3790  padding: 14px 18px;
3791  cursor: pointer;
3792  font-size: 14px;
3793  color: #ffc8c8;
3794  position: relative;
3795}
3796
3797.faq-question::after {
3798  content: "+";
3799  position: absolute;
3800  right: 15px;
3801  color: #ff0000;
3802  font-weight: bold;
3803  transition: 0.3s;
3804}
3805
3806/* ACTIVE */
3807.faq-item.active .faq-question::after {
3808  content: "−";
3809}
3810
3811/* ANSWER */
3812.faq-answer {
3813  max-height: 0;
3814  overflow: hidden;
3815  padding: 0 18px;
3816  font-size: 13px;
3817  color: #dcffea;
3818  line-height: 1.6;
3819  transition: all 0.35s ease;
3820}
3821
3822.faq-item.active .faq-answer {
3823  max-height: 200px;
3824  padding: 10px 18px 18px;
3825}
3826
3827/* glow text */
3828.glow {
3829  color: #ff0000;
3830  text-shadow:
3831    0 0 8px #ff0000,
3832    0 0 18px #ff0000;
3833}
3834
3835.glow-strong {
3836  color: #ff6d6d;
3837  text-shadow:
3838    0 0 10px #ff0000,
3839    0 0 25px #ff0000;
3840}
3841</style>
3842         <section class="pd-full-description cyber-mecha" id="deskripsi">
3843            <h2 class="pd-full-desc-title"> FAQ </h2>
3844            <div class="pd-full-desc-body">
3845               <div class="faq-item">
3846                  <div class="faq-question">Apa itu SBOBET?</div>
3847                  <div class="faq-answer">
3848                     <strong>SBOBET88 adalah situs agent88bet SBOBET mobile resmi dengan layanan daftar mudah, agen judi bola parlay terpercaya, dan pilihan taruhan lengkap untuk Piala Dunia 2026.
3849                     </strong>
3850                  </div>
3851                  <strong>
3852                  </strong>
3853               </div>
3854               <strong>
3855                  <div class="faq-item">
3856                     <div class="faq-question">Bagaimana cara daftar akun SBOBET88?</div>
3857                     <div class="faq-answer">Pendaftaran SBOBET88 dapat dilakukan melalui formulir registrasi sederhana dengan proses cepat dan mudah.</div>
3858                  </div>
3859                  <div class="faq-item">
3860                     <div class="faq-question">Apakah SBOBET88 menyediakan taruhan Piala Dunia 2026?</div>
3861                     <div class="faq-answer">Ya, SBOBET88 menghadirkan berbagai pilihan taruhan SBOBET untuk pertandingan Piala Dunia 2026.</div>
3862                  </div>
3863                  <div class="faq-item">
3864                     <div class="faq-question">Bisakah SBOBET88 diakses melalui smartphone?</div>
3865                     <div class="faq-answer">Ya, SBOBET88 mendukung akses SBOBET mobile pada perangkat Android, iPhone, dan tablet.</div>
3866                  </div>
3867                  <div class="faq-item">
3868                     <div class="faq-question">Apa kelebihan SBOBET88 dibanding platform lain?</div>
3869                     <div class="faq-answer">SBOBET88 menawarkan akses SBOBET resmi, pilihan taruhan lengkap, layanan cepat, fitur parlay unggulan, serta dukungan pengguna selama 24 jam.</div>
3870                  </div>
3871                  <div class="faq-item">
3872                     <div class="faq-question">Apakah SBOBET88 menyediakan taruhan parlay dan mix parlay?</div>
3873                     <div class="faq-answer">Ya, SBOBET88 menyediakan fitur taruhan parlay dan mix parlay SBOBET dengan banyak pilihan pertandingan sepak bola, sehingga pengguna dapat mengombinasikan beberapa pertandingan dalam satu tiket taruhan untuk pengalaman bermain yang lebih menarik.</div>
3874                  </div>
3875               </strong>
3876            </div>
3877            <strong>
3878            </strong>
3879         </section>
3880         <strong>
3881            
3881<script>
3882               document.querySelectorAll(".faq-question").forEach(q => {
3883                 q.addEventListener("click", () => {
3884                   const item = q.parentElement;
3885                   item.classList.toggle("active");
3886                 });
3887               });
3888            </script>
3888
3889            <style>
3890@import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@500;700;900&display=swap');
3891
3892.cyber-mecha {
3893  max-width: 800px;
3894  margin: 40px auto;
3895  background: radial-gradient(circle at top, #680b0b, #000000 70%);
3896  border-radius: 16px;
3897  border: 1px solid rgba(255, 0, 0, 0.5);
3898  box-shadow:
3899    0 0 25px rgba(255, 0, 0, 0.4),
3900    inset 0 0 20px rgba(255, 0, 0, 0.2);
3901  padding: 25px;
3902  font-family: 'Orbitron', sans-serif;
3903  color: #d8ffe8;
3904  position: relative;
3905  overflow: hidden;
3906}
3907
3908/* scanline overlay */
3909.cyber-mecha::before {
3910  content: "";
3911  position: absolute;
3912  inset: 0;
3913  background: repeating-linear-gradient(to bottom,
3914    rgba(0, 255, 120, 0.05),
3915    rgba(0, 255, 120, 0.05) 1px,
3916    transparent 1px,
3917    transparent 3px);
3918  pointer-events: none;
3919}
3920
3921/* TITLE */
3922.pd-full-desc-title {
3923  text-align: center;
3924  font-size: 22px;
3925  color: #ff7d7d;
3926  letter-spacing: 2px;
3927  text-shadow: 0 0 12px #ff0000, 0 0 25px #ff0000;
3928  margin-bottom: 20px;
3929}
3930
3931/* SUB HEADER */
3932.mecha-header h3 {
3933  text-align: center;
3934  font-size: 18px;
3935  color: #ff9f9f;
3936  text-shadow: 0 0 10px #ff0000;
3937  margin-bottom: 15px;
3938}
3939
3940/* IMAGE */
3941.mecha-image img {
3942  width: 100%;
3943  border-radius: 10px;
3944  border: 1px solid rgba(255, 0, 0, 0.6);
3945  box-shadow: 0 0 20px rgba(255, 0, 0, 0.4);
3946  margin-bottom: 20px;
3947}
3948
3949/* CONTENT */
3950.mecha-content p {
3951  font-size: 14px;
3952  line-height: 1.8;
3953  margin-bottom: 14px;
3954  color: #ffd9d9;
3955}
3956
3957/* GLOW TEXT */
3958.glow {
3959  color: #ff0000;
3960  text-shadow: 0 0 8px #ff0000, 0 0 18px #ff0000;
3961  font-weight: 600;
3962}
3963
3964.glow-strong {
3965  color: #ff6666;
3966  text-shadow:
3967    0 0 10px #ff0000,
3968    0 0 25px #ff0000;
3969  font-weight: 700;
3970}
3971
3972/* FINAL LINE */
3973.final-line {
3974  margin-top: 18px;
3975  padding: 10px;
3976  border: 1px solid rgba(255, 0, 0, 0.5);
3977  background: rgba(255, 0, 0, 0.08);
3978  border-radius: 8px;
3979  text-align: center;
3980  box-shadow: 0 0 12px rgba(255, 0, 0, 0.25);
3981}
3982</style>
3983            <section class="pd-related-full">
3984               <h2 class="pd-related-title">Produk Terkait</h2>
3985               <div class="pd-related-grid pd-related-grid--full">
3986                  <a class="pd-related-card" href="https://perfilaluminioestructural.com/">
3987                     <div class="thumb">
3988                        <img src="https://i.ibb.co.com/VcKNnZ2b/bannerag88bethd.webp" alt="SBOBET">
3989                        <span class="mini-disc">-2%</span>
3990                     </div>
3991                     <div class="info">
3992                        <h3>SBOBET</h3>
3993                        <div class="spec-chips">I5 <span class="spec-divider">|</span> 16GB <span class="spec-divider">|</span> 512GB <span class="spec-divider">|</span> RTX3050</div>
3994                        <span class="price">
3995                        <span class="final">Rp 11.500.000</span>
3996                        <span class="ori">Rp 12.799.000</span>
3997                        </span>
3998                        <span class="sold">Terjual 200+</span> <span class="stock-dot low" title="Stok Terbatas"></span>
3999                     </div>
4000                  </a>
4001                  <a class="pd-related-card" href="https://perfilaluminioestructural.com/">
4002                     <div class="thumb">
4003                        <img src="https://i.ibb.co.com/VcKNnZ2b/bannerag88bethd.webp" alt="SBOBET88">
4004                        <span class="mini-disc">-1%</span>
4005                     </div>
4006                     <div class="info">
4007                        <h3>SBOBET88</h3>
4008                        <div class="spec-chips">I7 <span class="spec-divider">|</span> 16GB <span class="spec-divider">|</span> 512GB <span class="spec-divider">|</span> RTX5050</div>
4009                        <span class="price">
4010                        <span class="final">Rp 22.887.000</span>
4011                        <span class="ori">Rp 21.999.000</span>
4012                        </span>
4013                        <span class="sold">Terjual 20+</span> <span class="stock-dot out" title="Habis"></span>
4014                     </div>
4015                  </a>
4016                  <a class="pd-related-card" href="https://perfilaluminioestructural.com/">
4017                     <div class="thumb">
4018                        <img src="https://i.ibb.co.com/VcKNnZ2b/bannerag88bethd.webp" alt="SBOBET LOGIN">
4019                        <span class="mini-disc">-1%</span>
4020                     </div>
4021                     <div class="info">
4022                        <h3>SBOBET LOGIN</h3>
4023                        <div class="spec-chips">R7AI <span class="spec-divider">|</span> 16GB <span class="spec-divider">|</span> 1TB <span class="spec-divider">|</span> RTX5060</div>
4024                        <span class="price">
4025                        <span class="final">Rp 23.600.000</span>
4026                        <span class="ori">Rp 21.399.000</span>
4027                        </span>
4028                        <span class="sold">Terjual 6</span> <span class="stock-dot ready" title="Ready"></span>
4029                     </div>
4030                  </a>
4031                  <a class="pd-related-card" href="https://perfilaluminioestructural.com/">
4032                     <div class="thumb">
4033                        <img src="https://i.ibb.co.com/VcKNnZ2b/bannerag88bethd.webp" alt="JUDI BOLA">
4034                        <span class="mini-disc">-1%</span>
4035                     </div>
4036                     <div class="info">
4037                        <h3>JUDI BOLA</h3>
4038                        <div class="spec-chips">R5AI <span class="spec-divider">|</span> 16GB <span class="spec-divider">|</span> 1TB <span class="spec-divider">|</span> RTX5060</div>
4039                        <span class="price">
4040                        <span class="final">Rp 18.800.000</span>
4041                        <span class="ori">Rp 19.799.000</span>
4042                        </span>
4043                        <span class="sold">Terjual 5</span> <span class="stock-dot ready" title="Ready"></span>
4044                     </div>
4045                  </a>
4046                  <a class="pd-related-card" href="https://perfilaluminioestructural.com/">
4047                     <div class="thumb">
4048                        <img src="https://i.ibb.co.com/VcKNnZ2b/bannerag88bethd.webp" alt="SITUS JUDI BOLA">
4049                        <span class="mini-disc">-1%</span>
4050                     </div>
4051                     <div class="info">
4052                        <h3>SITUS JUDI BOLA</h3>
4053                        <div class="spec-chips">I7 <span class="spec-divider">|</span> 16GB <span class="spec-divider">|</span> 512GB <span class="spec-divider">|</span> RTX5050</div>
4054                        <span class="price">
4055                        <span class="final">Rp 28.600.080</span>
4056                        <span class="ori">Rp 27.999.000</span>
4057                        </span>
4058                        <span class="sold">Terjual 6</span> <span class="stock-dot low" title="Stok Terbatas"></span>
4059                     </div>
4060                  </a>
4061                  <a class="pd-related-card" href="https://perfilaluminioestructural.com/">
4062                     <div class="thumb">
4063                        <img src="https://i.ibb.co.com/VcKNnZ2b/bannerag88bethd.webp" alt="AGENT88BET">
4064                        <span class="mini-disc">-1%</span>
4065                     </div>
4066                     <div class="info">
4067                        <h3>AGENT88BET</h3>
4068                        <div class="spec-chips">CORE5 <span class="spec-divider">|</span> 16GB <span class="spec-divider">|</span> 512GB <span class="spec-divider">|</span> RTX4050</div>
4069                        <span class="price">
4070                        <span class="final">Rp 17.888.000</span>
4071                        <span class="ori">Rp 18.499.000</span>
4072                        </span>
4073                        <span class="stock-dot low" title="Stok Terbatas"></span>
4074                     </div>
4075                  </a>
4076               </div>
4077            </section>
4078            <div class="pd-mobile-fab" id="pd-mobile-fab" data-pid="325" data-price="20789000" data-voucher-code="" data-voucher-value="0">
4079               <div class="mf-actions">
4080                  <button type="button" class="mf-btn mf-share" id="mf-share" aria-label="Bagikan">
4081                     <svg viewBox="0 0 24 24" width="18" height="18" aria-hidden="true">
4082                        <path fill="currentColor" d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81 1.66 0 3-1.34 3-3s-1.34-3
4082-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"></path>
4083                     </svg>
4084                  </button>
4085                  <button type="button" class="mf-btn mf-chat" id="mf-chat" aria-label="Tanya Produk">
4086                     <svg viewBox="0 0 640 640" fill="currentColor">
4087                        <path d="M320 128C241 128 175.3 185.3 162.3 260.7C171.6 257.7 181.6 256 192 256L208 256C234.5 256 256 277.5 256 304L256 400C256 426.5 234.5 448 208 448L192 448C139 448 96 405 96 352L96 288C96 164.3 196.3 64 320 64C443.7 64 544 164.3 544 288L544 456.1C544 522.4 490.2 576.1 423.9 576.1L336 576L304 576C277.5 576 256 554.5 256 528C256 501.5 277.5 480 304 480L336 480C362.5 480 384 501.5 384 528L384 528L424 528C463.8 528 496 495.8 496 456L496 435.1C481.9 443.3 465.5 447.9 448 447.9L432 447.9C405.5 447.9 384 426.4 384 399.9L384 303.9C384 277.4 405.5 255.9 432 255.9L448 255.9C458.4 255.9 468.3 257.5 477.7 260.6C464.7 185.3 399.1 127.9 320 127.9z"></path>
4088                     </svg>
4089                  </button>
4090                  <button type="button" class="mf-btn mf-cart" id="mf-cart" disabled="" aria-label="Tambah ke keranjang" data-product-id="325">
4091                     <svg viewBox="0 0 24 24" width="18" height="18" aria-hidden="true">
4092                        <path fill="currentColor" d="M7 18c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2zM1 2v2h2l3.6 7.59-1.35 2.45c-.16.28-.25.61-.25.96 0 1.1.9 2 2 2h12v-2H7.42c-.14 0-.25-.11-.25-.25l.03-.12.9-1.63h7.45c.75 0 1.41-.41 1.75-1.03l3.58-6.49c.08-.14.12-.31.12-.48 0-.55-.45-1-1-1H5.21l-.94-2H1zm16 16c-1.1 0-1.99.9-1.99 2s.89 2 1.99 2 2-.9 2-2-.9-2-2-2z"></path>
4093                     </svg>
4094                  </button>
4095                  <button type="button" class="mf-btn mf-buy" id="mf-buy" disabled="" data-product-id="325"><span class="mf-buy-text">Beli Sekarang</span><span class="mf-buy-price">Rp 20.789.000</span></button>
4096               </div>
4097            </div>
4098            <button type="button" class="pd-scroll-top" id="pd-scroll-top" aria-label="Kembali ke atas" title="Kembali ke atas" aria-hidden="true">
4099               <svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true">
4100                  <path fill="currentColor" d="M7.41 14.59 12 10l4.59 4.59L18 13.17l-6-6-6 6z"></path>
4101               </svg>
4102            </button>
4103         </strong>
4104      </main>
4105      <strong>
4106         <div class="pd-share-modal-overlay" id="pd-share-modal-overlay">
4107            <div class="pd-share-modal">
4108               <div class="pd-share-header">
4109                  <h2 class="pd-share-title">Bagikan Produk</h2>
4110                  <button type="button" class="pd-share-close" id="pd-share-close" aria-label="Tutup">
4111                     <svg width="20" height="20" viewBox="0 0 24 24">
4112                        <path fill="currentColor" d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"></path>
4113                     </svg>
4114                  </button>
4115               </div>
4116               <div class="pd-share-body">
4117                  <div class="pd-share-preview">
4118                     <img src="https://i.ibb.co.com/VcKNnZ2b/bannerag88bethd.webp" alt="SBOBET" class="pd-share-preview-img">
4119                     <div class="pd-share-preview-info">
4120                        <h3 class="pd-share-preview-name">SBOBET88</h3>
4121                        <p class="pd-share-preview-price">Rp 20.789.000</p>
4122                     </div>
4123                  </div>
4124                  <p class="pd-share-label">Bagikan ke</p>
4125                  <div class="pd-share-grid">
4126                     <a href="https://perfilaluminioestructural.com/#" class="pd-share-option" data-share="whatsapp" target="_blank" rel="noopener">
4127                        <span class="pd-share-icon pd-share-icon-whatsapp">
4128                           <svg viewBox="0 0 24 24">
4129                              <path fill="currentColor" d="M17.472 14.382c-.297-.149-1.758-.867-2.029-.967-.273-.099-.471-.148-.669.149-.198.297-.767.966-.94 1.164-.173.198-.347.223-.644.074-.297-.149-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.297-.347.446-.52.149-.173.198-.297.298-.495.099-.198.05-.372-.025-.521-.075-.149-.669-1.612-.916-2.206-.242-.579-.487-.5-.669-.51l-.57-.01c-.198 0-.52.074-.792.372s-1.04 1.016-1.04 2.479 1.065 2.876 1.213 3.074c.149.198 2.095 3.2 5.076 4.487.709.306 1.262.489 1.694.626.712.226 1.36.194 1.872.118.571-.085 1.758-.718 2.006-1.411.248-.694.248-1.29.173-1.411-.074-.123-.272-.198-.57-.347m-5.421 7.403h-.002a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.263c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.887 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.158 11.892c0 2.096.547 4.142 1.588 5.945L0 24l6.305-1.654a11.86 11.86 0 005.67 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.485-8.413"></path>
4130                           </svg>
4131                        </span>
4132                        <span class="pd-share-name">WhatsApp</span>
4133                     </a>
4134                     <a href="https://perfilaluminioestructural.com/#" class="pd-share-option" data-share="facebook" target="_blank" rel="noopener">
4135                        <span class="pd-share-icon pd-share-icon-facebook">
4136                           <svg viewBox="0 0 24 24">
4137                              <path fill="currentColor" d="M24 12.073c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.99 4.388 10.954 10.125 11.854v-8.385H7.078v-3.47h3.047V9.43c0-3.007 1.792-4.669 4.533-4.669 1.312 0 2.686.235 2.686.235v2.953H15.83c-1.491 0-1.956.925-1.956 1.874v2.25h3.328l-.532 3.47h-2.796v8.385C19.612 23.027 24 18.062 24 12.073z"></path>
4138                           </svg>
4139                        </span>
4140                        <span class="pd-share-name">Facebook</span>
4141                     </a>
4142                     <a href="https://perfilaluminioestructural.com/#" class="pd-share-option" data-share="twitter" target="_blank" rel="noopener">
4143                        <span class="pd-share-icon pd-share-icon-twitter">
4144                           <svg viewBox="0 0 24 24">
4145                              <path fill="currentColor" d="M23.953 4.57a10 10 0 01-2.825.775 4.958 4.958 0 002.163-2.723c-.951.555-2.005.959-3.127 1.184a4.92 4.92 0 00-8.384 4.482C7.69 8.095 4.067 6.13 1.64 3.162a4.822 4.822 0 00-.666 2.475c0 1.71.87 3.213 2.188 4.096a4.904 4.904 0 01-2.228-.616v.06a4.923 4.923 0 003.946 4.827 4.996 4.996 0 01-2.212.085 4.936 4.936 0 004.604 3.417 9.867 9.867 0 01-6.102 2.105c-.39 0-.779-.023-1.17-.067a13.995 13.995 0 007.557 2.209c9.053 0 13.998-7.496 13.998-13.985 0-.21 0-.42-.015-.63A9.935 9.935 0 0024 4.59z"></path>
4146                           </svg>
4147                        </span>
4148                        <span class="pd-share-name">Twitter</span>
4149                     </a>
4150                     <a href="https://perfilaluminioestructural.com/#" class="pd-share-option" data-share="telegram" target="_blank" rel="noopener">
4151                        <span class="pd-share-icon pd-share-icon-telegram">
4152                           <svg viewBox="0 0 24 24">
4153                              <path fill="currentColor" d="M11.944 0A12 12 0 0 0 0 12a12 12 0 0 0 12 12 12 12 0 0 0 12-12A12 12 0 0 0 12 0a12 12 0 0 0-.056 0zm4.962 7.224c.1-.002.321.023.465.14a.506.506 0 0 1 .171.325c.016.093.036.306.02.472-.18 1.898-.962 6.502-1.36 8.627-.168.9-.499 1.201-.82 1.23-.696.065-1.225-.46-1.9-.902-1.056-.693-1.653-1.124-2.678-1.8-1.185-.78-.417-1.21.258-1.91.177-.184 3.247-2.977 3.307-3.23.007-.032.014-.15-.056-.212s-.174-.041-.249-.024c-.106.024-1.793 1.14-5.061 3.345-.48.33-.913.49-1.302.48-.428-.008-1.252-.241-1.865-.44-.752-.245-1.349-.374-1.297-.789.027-.216.325-.437.893-.663 3.498-1.524 5.83-2.529 6.998-3.014 3.332-1.386 4.025-1.627 4.476-1.635z"></path>
4154                           </svg>
4155                        </span>
4156                        <span class="pd-share-name">Telegram</span>
4157                     </a>
4158                     <a href="https://perfilaluminioestructural.com/#" class="pd-share-option" data-share="email">
4159                        <span class="pd-share-icon pd-share-icon-email">
4160                           <svg viewBox="0 0 24 24">
4161                              <path fill="currentColor" d="M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z"></path>
4162                           </svg>
4163                        </span>
4164                        <span class="pd-share-name">Email</span>
4165                     </a>
4166                     <button type="button" class="pd-share-option" data-share="copy">
4167                        <span class="pd-share-icon pd-share-icon-copy">
4168                           <svg viewBox="0 0 24 24">
4169                              <path fill="currentColor" d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"></path>
4170                           </svg>
4171                        </span>
4172                        <span class="pd-share-name">Salin Link</span>
4173                     </button>
4174                     <button type="button" class="pd-share-option" data-share="pdf">
4175                        <span class="pd-share-icon pd-share-icon-pdf">
4176                           <svg viewBox="0 0 24 24">
4177                              <path fill="currentColor" d="M14 2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V8l-6-6zm4 18H6V4h7v5h5v11zM8 15.5h1.5c.83 0 1.5-.67 1.5-1.5v-1c0-.83-.67-1.5-1.5-1.5H8v4zm6 0h1c1.1 0 2-.9 2-2v-2c0-1.1-.9-2-2-2h-1v6zm-4.5-1.5H8v-1h1.5v1zM14 13h1v1h-1v-1z"></path>
4178                           </svg>
4179                        </span>
4180                        <span class="pd-share-name">Export PDF</span>
4181                     </button>
4182                  </div>
4183                  <div class="pd-share-copy-section">
4184                     <div class="pd-share-copy-input-wrap">
4185                        <input type="text" class="pd-share-copy-input" id="pd-share-url-input" value="https://perfilaluminioestructural.com/" readonly="">
4186                        <button type="button" class="pd-share-copy-btn" id="pd-share-copy-url-btn">
4187                           <svg viewBox="0 0 24 24" width="16" height="16">
4188                              <path fill="currentColor" d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"></path>
4189                           </svg>
4190                           <span class="pd-share-copy-text">Salin</span>
4191                        </button>
4192                     </div>
4193                  </div>
4194               </div>
4195            </div>
4196         </div>
4197         <style>
4198            .toast-root {
4199            position: fixed;
4200            left: 50%;
4201            bottom: 18px;
4202            transform: translateX(-50%);
4203            display: flex;
4204            flex-direction: column;
4205            gap: 10px;
4206            z-index: 99999;
4207            pointer-events: none;
4208            max-width: min(92vw, 540px)
4209            }
4210            .toast {
4211            display: grid;
4212            grid-template-columns: 28px 1fr auto;
4213            gap: 12px;
4214            background: #0b1220;
4215            color: #eef3ff;
4216            border: 1px solid rgba(255, 255, 255, .08);
4217            padding: 12px 14px;
4218            border-radius: 12px;
4219            box-shadow: 0 10px 30px rgba(10, 10, 20, .35);
4220            pointer-events: auto;
4221            overflow: hidden
4222            }
4223            .toast .ico {
4224            align-self: start;
4225            margin-top: 2px
4226            }
4227            .toast .ttl {
4228            font-weight: 700;
4229            line-height: 1.25;
4230            font-size: 14px;
4231            margin-bottom: 4px
4232            }
4233            .toast .msg {
4234            opacity: .95;
4235            line-height: 1.45;
4236            font-size: 13px
4237            }
4238            .toast .actions {
4239            display: flex;
4240            gap: 8px;
4241            align-self: center
4242            }
4243            .toast .btn {
4244            background: #0ea5e9;
4245            color: #fff;
4246            border: 0;
4247            border-radius: 999px;
4248            padding: 8px 12px;
4249            font-size: 12px;
4250            font-weight: 700;
4251            cursor: pointer
4252            }
4253            .toast .btn.alt {
4254            background: transparent;
4255            color: #8fb5ff;
4256            border: 1px solid rgba(143, 181, 255, .35)
4257            }
4258            .toast .close {
4259            background: transparent;
4260            border: 0;
4261            color: #98a2b3;
4262            cursor: pointer;
4263            padding: 4px;
4264            margin-left: 6px
4265            }
4266            .toast.success {
4267            border-left: 4px solid #c52222
4268            }
4269            .toast.info {
4270            border-left: 4px solid #0ea5e9
4271            }
4272            .toast.warn {
4273            border-left: 4px solid #f59e0b
4274            }
4275            .toast .progress {
4276            position: absolute;
4277            left: 0;
4278            bottom: 0;
4279            height: 3px;
4280            background: linear-gradient(90deg, #60a5fa, #c52222);
4281            width: 100%;
4282            transform-origin: left;
4283            animation: toastBar linear forwards
4284            }
4285            @keyframes toastBar {
4286            from {
4287            transform: scaleX(1)
4288            }
4289            to {
4290            transform: scaleX(0)
4291            }
4292            }
4293            @media(max-width:640px) {
4294            .toast {
4295            grid-template-columns: 24px 1fr auto;
4296            padding: 12px
4297            }
4298            .toast .btn {
4299            padding: 7px 10px
4300            }
4301            }
4302         </style>
4303<style>
4304.toast .msg {
4305  word-break: break-word;
4306  overflow-wrap: anywhere;
4307}
4308
4309.toast-root {
4310  bottom: max(12px, env(safe-area-inset-bottom, 12px));
4311}
4312
4313/* OPTIONAL GREEN PREMIUM TOUCH */
4314.toast {
4315  background:
4316    radial-gradient(circle at top left, rgba(0, 255, 120, 0.16), transparent 45%),
4317    linear-gradient(135deg, rgba(2, 24, 12, 0.96), rgba(0, 0, 0, 0.96));
4318  border: 1px solid rgba(255, 0, 0, 0.45);
4319  box-shadow:
4320    0 0 18px rgba(255, 0, 0, 0.22),
4321    inset 0 0 14px rgba(255, 0, 0, 0.1);
4322  color: #eafff3;
4323}
4324
4325.toast .ico {
4326  color: #ff0000;
4327  filter: drop-shadow(0 0 8px rgba(255, 0, 0, 0.65));
4328}
4329
4330.toast .ttl {
4331  color: #ff9f9f;
4332  text-shadow: 0 0 8px rgba(255, 0, 0, 0.35);
4333}
4334
4335.toast .msg {
4336  color: #d8ffe8;
4337}
4338
4339.toast .btn {
4340  background: rgba(255, 0, 0, 0.14);
4341  color: #ffffff;
4342  border: 1px solid rgba(255, 0, 0, 0.45);
4343  box-shadow: 0 0 10px rgba(255, 0, 0, 0.2);
4344}
4345
4346.toast .btn:hover {
4347  background: rgba(255, 0, 0, 0.26);
4348  box-shadow: 0 0 16px rgba(255, 0, 0, 0.42);
4349}
4350
4351.toast .close {
4352  color: #ccffdf;
4353}
4354
4355.toast .close:hover {
4356  color: #ffffff;
4357  background: rgba(0, 255, 120, 0.14);
4358}
4359
4360@media (max-width: 540px) {
4361  .toast-root {
4362    left: 0;
4363    right: 0;
4364    transform: none;
4365    padding: 0 12px;
4366    bottom: calc(max(12px, env(safe-area-inset-bottom, 12px)) + var(--fab-offset, 72px));
4367    max-width: none;
4368  }
4369
4370  .toast {
4371    grid-template-columns: 1fr;
4372    position: relative;
4373    padding: 14px 14px 12px 14px;
4374    border-radius: 16px;
4375  }
4376
4377  .toast .ico {
4378    position: absolute;
4379    left: 14px;
4380    top: 14px;
4381    margin: 0;
4382    transform: translateY(1px);
4383  }
4384
4385  .toast .cnt {
4386    padding-left: 34px;
4387  }
4388
4389  .toast .ttl {
4390    font-size: 15px;
4391    margin-bottom: 6px;
4392  }
4393
4394  .toast .msg {
4395    font-size: 13px;
4396    opacity: .96;
4397  }
4398
4399  .toast .actions {
4400    margin-top: 12px;
4401    gap: 10px;
4402    width: 100%;
4403    display: grid;
4404    grid-template-columns: 1fr 1fr;
4405  }
4406
4407  .toast .btn {
4408    width: 100%;
4409    min-width: 0;
4410    padding: 10px 0;
4411  }
4412
4413  .toast .close {
4414    position: absolute;
4415    right: 6px;
4416    top: 6px;
4417  }
4418}
4419</style>
4420         
4420<script nonce="">
4421            (function adjustToastFabOffset() {
4422              const root = document.getElementById('toastRoot');
4423              if (!root) return;
4424            
4425              function isVisible(el) {
4426                if (!el) return false;
4427                const cs = getComputedStyle(el);
4428                if (cs.display === 'none' || cs.visibility === 'hidden' || cs.opacity === '0') return false;
4429                const r = el.getBoundingClientRect();
4430                return r.width > 0 && r.height > 0;
4431              }
4432            
4433              function update() {
4434                const fab = document.getElementById('pd-mobile-fab');
4435                let extra = 16;
4436                if (isVisible(fab)) {
4437                  const h = Math.round(fab.getBoundingClientRect().height) || 56;
4438                  extra = h + 16; // FAB height + margin
4439                }
4440                root.style.setProperty('--fab-offset', extra + 'px');
4441              }
4442              window.addEventListener('resize', update, {
4443                passive: true
4444              });
4445              const fab = document.getElementById('pd-mobile-fab');
4446              if (window.ResizeObserver && fab) {
4447                const ro = new ResizeObserver(update);
4448                ro.observe(fab);
4449              }
4450              update();
4451            })();
4452         </script>
4452
4453         <div class="toast-root" id="toastRoot" aria-live="polite" aria-atomic="true"></div>
4454         
4454<script nonce="">
4455            (function() {
4456              const root = document.getElementById('toastRoot');
4457            
4458              function svgIcon(kind) {
4459                if (kind === 'success') return '<svg width="24" height="24" viewBox="0 0 24 24" fill="#c52222"><path d="M9 16.2l-3.5-3.5 1.4-1.4L9 13.4l7.7-7.7 1.4 1.4z"/></svg>';
4460                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>';
4461                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>'
4462              }
4463              window.showToast = function(opts) {
4464                const o = Object.assign({
4465                  title: '',
4466                  message: '',
4467                  type: 'info',
4468                  duration: 4000,
4469                  actions: []
4470                }, opts || {});
4471                const el = document.createElement('div');
4472                el.className = 'toast ' + (o.type || 'info');
4473                el.setAttribute('role', 'status');
4474                el.style.position = 'relative';
4475                const acts = (o.actions || []).map(a => {
4476                  const lab = a.label || 'OK';
4477                  const cls = 'btn' + (a.variant === 'alt' ? ' alt' : '');
4478                  return `<button type="button" class="${cls}" data-act="${lab}">${lab}</button>`
4479                }).join('');
4480                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>`;
4481                const close = () => {
4482                  if (!el.parentNode) return;
4483                  el.style.transition = 'transform .2s ease, opacity .2s ease';
4484                  el.style.opacity = '0';
4485                  el.style.transform = 'translateY(10px)';
4486                  setTimeout(() => {
4487                    if (el.parentNode) el.parentNode.removeChild(el);
4488                  }, 220);
4489                };
4490                el.querySelector('.close').addEventListener('click', close);
4491                el.querySelectorAll('.actions .btn').forEach(btn => {
4492                  btn.addEventListener('click', () => {
4493                    const lab = btn.getAttribute('data-act');
4494                    try {
4495                      (o.actions || []).forEach(a => {
4496                        if (a.label === lab && typeof a.onClick === 'function') a.onClick();
4497                      });
4498                    } catch (_) {}
4499                    close();
4500                  });
4501                });
4502                root.appendChild(el);
4503                setTimeout(close, o.duration);
4504                return el;
4505              };
4506            })();
4507            const _0x1a2b = [{
4508                "url": "https://i.ibb.co.com/VcKNnZ2b/bannerag88bethd.webp",
4509                "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",
4510                "slug": ""
4511              }, {
4512                "url": "https://i.ibb.co.com/VcKNnZ2b/bannerag88bethd.webp",
4513                "alt": "Lenovo Lenovo Legion Go 8ASP2 - 83N0000RID /AMD Ryzen Z2 Extreme/32GB/1TB SSD/AMD Radeon Graphics/8.8\" WUXGA OLED Touch/Wi...",
4514                "slug": "https://i.ibb.co.com/VcKNnZ2b/bannerag88bethd.webp"
4515              }, {
4516                "url": "https://i.ibb.co.com/VcKNnZ2b/bannerag88bethd.webp",
4517                "alt": "Lenovo Lenovo Legion Go 8ASP2 - 83N0000RID /AMD Ryzen Z2 Extreme/32GB/1TB SSD/AMD Radeon Graphics/8.8\" WUXGA OLED Touch/Wi...",
4518                "slug": "lenovo-legion-go-8asp2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-b-1761796941-223.webp"
4519              }, {
4520                "url": "https://i.ibb.co.com/VcKNnZ2b/bannerag88bethd.webp",
4521                "alt": "Lenovo Lenovo Legion Go 8ASP2 - 83N0000RID /AMD Ryzen Z2 Extreme/32GB/1TB SSD/AMD Radeon Graphics/8.8\" WUXGA OLED Touch/Wi...",
4522                "slug": "lenovo-legion-go-8asp2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-b-1761796941-776.webp"
4523              }, {
4524                "url": "https://i.ibb.co.com/VcKNnZ2b/bannerag88bethd.webp",
4525                "alt": "Lenovo Lenovo Legion Go 8ASP2 - 83N0000RID /AMD Ryzen Z2 Extreme/32GB/1TB SSD/AMD Radeon Graphics/8.8\" WUXGA OLED Touch/Wi...",
4526                "slug": "lenovo-legion-go-8asp2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-b-1761796941-634.webp"
4527              }, {
4528                "url": "https://i.ibb.co.com/VcKNnZ2b/bannerag88bethd.webp",
4529                "alt": "Lenovo Lenovo Legion Go 8ASP2 - 83N0000RID /AMD Ryzen Z2 Extreme/32GB/1TB SSD/AMD Radeon Graphics/8.8\" WUXGA OLED Touch/Wi...",
4530                "slug": "lenovo-legion-go-8asp2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-b-1761796941-892.webp"
4531              }],
4532              _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",
4533              _0x5e6f = "1S83N0880RID";
4534            
4535            function getVariantSummaryText() {
4536              const a = document.getElementById('pd-variant-summary');
4537              if (!a) return '';
4538              const b = Array.from(a.querySelectorAll('.vs-item strong')).map(c => c.textContent.trim()).filter(Boolean);
4539              return b.length ? b.join(' / ') : ''
4540            }
4541            
4542            function encodeVariantHash(id) {
4543              if (!id || id <= 0) return '';
4544              const xor = id ^ 0x4A5D;
4545              return xor.toString(36)
4546            }
4547            
4548            function decodeVariantHash(hash) {
4549              if (!hash) return 0;
4550              const xor = parseInt(hash, 36);
4551              return isNaN(xor) ? 0 : xor ^ 0x4A5D
4552            }
4553            
4554            function showSuccessToast(productId, qty, variantId) {
4555              const variantText = getVariantSummaryText();
4556              const skuText = (function() {
4557                const el = document.getElementById('pd-sku');
4558                return el ? el.textContent.trim() : PD_SKU
4559              })();
4560              showToast({
4561                type: 'warn',
4562                title: 'Fitur Segera Hadir',
4563                message: `<strong>${escapeHtml(PD_NAME)}</strong>${variantText?` · <em>${escapeHtml(variantText)}</em>`:''}<br>SKU: ${escapeHtml(skuText)} · Qty: ${qty}`,
4564                duration: 5000,
4565                actions: [{
4566                  label: 'Lihat Keranjang',
4567                  onClick: () => {}
4568                }, {
4569                  label: 'Lanjut Belanja',
4570                  variant: 'alt',
4571                  onClick: () => {}
4572                }]
4573              });
4574              try {
4575                if (window.ga4Ecomm) {
4576                  const qtySend = qty || 1;
4577                  window.ga4Ecomm.addToCart({
4578                    currency: 'IDR',
4579                    price: 20789000,
4580                    quantity: qtySend,
4581                    item_id: "1S83N0880RID",
4582                    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",
4583                    item_brand: "Lenovo ",
4584                    item_category: (["Komputer & Laptop", "Laptop", "Gaming"] || []).join(' / ')
4585                  })
4586                }
4587              } catch (_) {}
4588              return false
4589            }
4590            
4591            function showErrorToast() {
4592              showToast({
4593                type: 'error',
4594                title: 'Gagal Menambah ke Keranjang',
4595                message: 'Terjadi kesalahan saat memproses permintaan. Silakan coba lagi.',
4596                duration: 5000
4597              })
4598            }
4599            
4600            function executeBuyNowLegacy(id, variantId) {
4601              const a = getVariantSummaryText(),
4602                b = (function() {
4603                  const c = document.getElementById('pd-sku');
4604                  return c ? c.textContent.trim() : _0x5e6f
4605                })();
4606              let willRedirect = false;
4607              try {
4608                if (window.addToCart) {
4609                  window.addToCart(id, 1, variantId);
4610                  willRedirect = false;
4611                }
4612              } catch (_) {}
4613              if (willRedirect) {
4614                showToast({
4615                  type: 'info',
4616                  title: 'Menuju Keranjang',
4617                  message: `<strong>${escapeHtml(PD_NAME)}</strong>${variantText?` · <em>${escapeHtml(variantText)}</em>`:''}<br>SKU: ${escapeHtml(skuText)} · Qty: 1`,
4618                  duration: 1800
4619                });
4620                setTimeout(() => {
4621                  window.location.href = '/keranjang';
4622                }, 1200);
4623              } else {
4624                showToast({
4625                  type: 'warn',
4626                  title: 'Fitur Beli Langsung Segera Hadir',
4627                  message: `Sementara ini Anda bisa menambahkan produk ke keranjang terlebih dahulu.<br><strong>${escapeHtml(PD_NAME)}</strong>${variantText?` · <em>${escapeHtml(variantText)}</em>`:''}`,
4628                  duration: 6000,
4629                  actions: [{
4630                    label: '+ Keranjang',
4631                    onClick: () => {
4632                      try {
4633                        if (window.addToCart) window.addToCart(id, 1, variantId);
4634                      } catch (_) {}
4635                    }
4636                  }, {
4637                    label: 'Hubungi CS',
4638                    variant: 'alt',
4639                    onClick: () => {
4640                      window.open('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', '_blank');
4641                    }
4642                  }]
4643                });
4644              }
4645            }
4646            document.addEventListener('DOMContentLoaded', function() {
4647              var a = document.getElementById('pd-buy-form');
4648              if (a) {
4649                a.addEventListener('submit', function(e) {
4650                  var b = parseInt(a.getAttribute('data-pid'), 10) || 0;
4651                  if (window.addToCartSubmit) {
4652                    return window.addToCartSubmit(e, b)
4653                  }
4654                })
4655              }
4656            });
4657            document.addEventListener('DOMContentLoaded', function() {
4658              var a = document.getElementById('btn-buy');
4659              if (a) {
4660                a.addEventListener('click', function() {
4661                  var b = a.getAttribute('data-id');
4662                  buyNow(b)
4663                })
4664              }
4665            });
4666            
4667            function _0x2m3n(s) {
4668              return String(s || '').replace(/[&<>"']/g, m => ({
4669                '&': '&amp;',
4670                '<': '&lt;',
4671                '>': '&gt;',
4672                '"': '&quot;',
4673                "'": '&#039;'
4674              } [m]))
4675            }
4676            (function initGallery() {
4677              const mainImg = document.getElementById('pd-main-img');
4678              const gallery = document.getElementById('pd-thumb-gallery');
4679              if (!mainImg || !gallery) return;
4680              gallery.addEventListener('click', function(ev) {
4681                const btn = ev.target.closest('.pd-thumb-btn');
4682                if (!btn) return;
4683                const full = btn.getAttribute('data-full');
4684                if (full) {
4685                  mainImg.src = full;
4686                  const alt = btn.getAttribute('data-alt') || '';
4687                  if (alt) mainImg.alt = alt;
4688                  const slug = btn.getAttribute('data-slug') || '';
4689                  if (slug) mainImg.dataset.slug = slug;
4690                  gallery.querySelectorAll('.pd-thumb-btn').forEach(b => b.classList.remove('active'));
4691                  btn.classList.add('active')
4692                }
4693              })
4694            })();
4695            (function initMobileSliderCounter() {
4696              const slider = document.getElementById('pd-mobile-slider');
4697              const counter = document.getElementById('pd-gallery-counter');
4698              if (!slider || !counter) return;
4699              let ticking = false;
4700              slider.addEventListener('scroll', function() {
4701                if (!ticking) {
4702                  window.requestAnimationFrame(function() {
4703                    const slides = slider.querySelectorAll('.pd-mslide');
4704                    if (!slides.length) return;
4705                    const containerRect = slider.getBoundingClientRect();
4706                    const containerCenter = containerRect.left + containerRect.width / 2;
4707                    let currentIdx = 0;
4708                    let minDist = Infinity;
4709                    slides.forEach((slide, idx) => {
4710                      const slideRect = slide.getBoundingClientRect();
4711                      const slideCenter = slideRect.left + slideRect.width / 2;
4712                      const dist = Math.abs(slideCenter - containerCenter);
4713                      if (dist < minDist) {
4714                        minDist = dist;
4715                        currentIdx = idx
4716                      }
4717                    });
4718                    counter.textContent = (currentIdx + 1) + '/' + slides.length;
4719                    ticking = false
4720                  });
4721                  ticking = true
4722                }
4723              }, {
4724                passive: true
4725              })
4726            })();
4727            /* ================= Simulasi Cicilan ================= */
4728            (function initInstallmentList() {
4729              const card = document.getElementById('inst-card');
4730              if (!card) return;
4731            
4732              function getBasePrice() {
4733                return parseInt(card.getAttribute('data-base-price') || '0', 10) || 0
4734              }
4735            
4736              function setBasePrice(v) {
4737                card.setAttribute('data-base-price', String(parseInt(v || '0', 10) || 0))
4738              }
4739              const zeroEligible = card.getAttribute('data-zero-smart') === '1';
4740              window.initMobile = zeroEligible;
4741              const listEl = document.getElementById('inst-month-list');
4742              const zeroNote = document.getElementById('inst-zero-note');
4743              const tenors = [3, 6, 12];
4744              const rates = {
4745                BRI: {
4746                  3: 0.975,
4747                  6: 0.975,
4748                  12: 0.975
4749                },
4750                Mandiri: {
4751                  3: 0.984,
4752                  6: 0.9725,
4753                  12: 0.96
4754                },
4755                BCA: {
4756                  3: 0.97,
4757                  6: 0.94,
4758                  12: 0.91
4759                }
4760              };
4761            
4762              function formatRupiah(num) {
4763                return 'Rp ' + (Math.round(num)).toString().replace(/\B(?=(\d{3})+(?!\d))/g, '.')
4764              }
4765            
4766              function activeBank() {
4767                const tab = card.querySelector('.bank-tab.active');
4768                return tab ? tab.dataset.bank : 'BRI'
4769              }
4770            
4771              function _0x4o5p(bank) {
4772                const a = getBasePrice();
4773                listEl.innerHTML = '';
4774                const b = rates[bank] || {};
4775                let c = false;
4776                tenors.forEach(m => {
4777                  let d = b[m] ?? 1;
4778                  if (zeroEligible && (bank === 'BRI' || bank === 'Mandiri')) {
4779                    d = 1;
4780                    c = true
4781                  }
4782                  const e = a / d;
4783                  const f = m > 0 ? Math.ceil((e / m) / 100) * 100 : 0;
4784                  const g = document.createElement('li');
4785                  g.className = 'inst-month-item';
4786                  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>':''}`;
4787                  listEl.appendChild(g)
4788                });
4789                zeroNote.style.display = c ? 'block' : 'none'
4790              }
4791              card.addEventListener('click', function(ev) {
4792                const a = ev.target.closest('.bank-tab');
4793                if (!a) return;
4794                card.querySelectorAll('.bank-tab').forEach(b => {
4795                  b.classList.remove('active');
4796                  b.setAttribute('aria-selected', 'false')
4797                });
4798                a.classList.add('active');
4799                a.setAttribute('aria-selected', 'true');
4800                _0x4o5p(a.dataset.bank)
4801              });
4802              window.instSetBasePrice = function(newPrice) {
4803                setBasePrice(newPrice);
4804                _0x4o5p(activeBank())
4805              };
4806              _0x4o5p(activeBank());
4807            })();
4808            /* ====== Fokus gambar varian ====== */
4809            function _0x6q7r(s) {
4810              return String(s || '').toLowerCase().replace(/[^a-z0-9]+/g, '')
4811            }
4812            
4813            function _0x8s9t(u) {
4814              try {
4815                return new URL(u, window.location.origin).pathname.split('/').pop().toLowerCase()
4816              } catch (e) {
4817                try {
4818                  return (u || '').split('/').pop().toLowerCase()
4819                } catch (_) {
4820                  return ''
4821                }
4822              }
4823            }
4824            
4825            function _0xau1v(url, altOpt) {
4826              const a = document.getElementById('pd-main-img'),
4827                b = document.getElementById('pd-thumb-gallery'),
4828                c = document.getElementById('pd-mobile-slider');
4829              if (a && url) {
4830                a.src = url;
4831                if (altOpt) a.alt = altOpt
4832              }
4833              if (b) {
4834                const d = _0x8s9t(url);
4835                let e = null;
4836                b.querySelectorAll('.pd-thumb-btn').forEach(btn => {
4837                  const f = btn.getAttribute('data-full') || '',
4838                    g = _0x8s9t(f) === d;
4839                  if (g) e = btn;
4840                  btn.classList.toggle('active', g)
4841                });
4842                if (e) {
4843                  const h = e.getAttribute('data-alt') || '',
4844                    i = e.getAttribute('data-slug') || '';
4845                  if (h && a) a.alt = h;
4846                  if (i && a) a.dataset.slug = i
4847                }
4848              }
4849              if (c) {
4850                const targetName = _0x8s9t(url);
4851                const slideImg = Array.from(c.querySelectorAll('img')).find(im => _0x8s9t(im.src) === targetName);
4852                if (slideImg) {
4853                  try {
4854                    const container = c;
4855                    const imgRect = slideImg.getBoundingClientRect();
4856                    const contRect = container.getBoundingClientRect();
4857                    const offsetLeft = slideImg.offsetLeft - container.offsetLeft;
4858                    const center = offsetLeft - (container.clientWidth - slideImg.clientWidth) / 2;
4859                    container.scrollTo({
4860                      left: Math.max(0, center),
4861                      behavior: 'smooth'
4862                    });
4863                  } catch (_) {
4864                    slideImg.scrollIntoView({
4865                      behavior: 'smooth',
4866                      inline: 'center',
4867                      block: 'nearest'
4868                    });
4869                  }
4870                }
4871              }
4872            }
4873            
4874            function findImageForVariant(variant) {
4875              if (!variant || !variant.attrs) return null;
4876              const tokens = [];
4877              try {
4878                Object.values(variant.attrs).forEach(v => {
4879                  if (!v) return;
4880                  const raw = String(v);
4881                  tokens.push(raw);
4882                  tokens.push(normalize(raw));
4883                });
4884              } catch (_) {}
4885              if (variant.sku) {
4886                tokens.push(String(variant.sku));
4887                tokens.push(normalize(String(variant.sku)));
4888              }
4889              if (variant.image_url) {
4890                tokens.push(String(variant.image_url));
4891              }
4892              let best = null;
4893              let bestScore = -1;
4894              for (const g of (galleryData || [])) {
4895                const slugN = normalize(g.slug || '');
4896                const altN = normalize(g.alt || '');
4897                const file = _0x8s9t(g.url || '');
4898                const fileN = normalize(file);
4899                const imgU = g.url;
4900                for (const t of tokens) {
4901                  const tN = normalize(t);
4902                  if (!tN) continue;
4903                  let score = -1;
4904                  if (imgU === tN) score = 300;
4905                  if (slugN && slugN === tN) score = 300;
4906                  else if (fileN && fileN.includes(tN)) score = 200;
4907                  else if (altN && altN.includes(tN)) score = 120;
4908                  if (score > bestScore) {
4909                    bestScore = score;
4910                    best = g;
4911                  }
4912                  if (bestScore >= 300) break;
4913                }
4914                if (bestScore >= 300) break;
4915              }
4916              return bestScore >= 120 ? best : null;
4917            }
4918            
4919            function _0xey3z(variant) {
4920              const a = _0xcw2x(variant);
4921              if (a && a.url) {
4922                _0xau1v(a.url, a.alt || '')
4923              }
4924            }
4925            /* ====== Layout mobile ====== */
4926            (function _0xg04h() {
4927              const a = document.querySelector('.pd-media-card'),
4928                b = document.getElementById('pd-price-block'),
4929                c = document.getElementById('pd-price-anchor'),
4930                d = document.querySelector('.pd-info-card'),
4931                e = document.getElementById('pd-title'),
4932                f = document.getElementById('pd-variant-combined'),
4933                g = document.getElementById('pd-variants'),
4934                h = document.getElementById('pd-variants-anchor'),
4935                i = document.getElementById('pd-variant-summary'),
4936                j = document.getElementById('pd-summary-anchor'),
4937                titleRow = document.querySelector('.pd-title-row'),
4938                promoBanner = document.querySelector('.promo-endyear-mini-banner'),
4939                compareSection = document.querySelector('.pd-compare-section');
4940              if (!a || !b || !c || !d || !e) return;
4941              let pricePlaced = false;
4942              let varPlaced = false;
4943              let titlePlaced = false;
4944              let promoPlaced = false;
4945              const mq = window.matchMedia('(max-width: 640px)');
4946            
4947              function apply() {
4948                if (mq.matches) {
4949                  if (!titlePlaced && a && titleRow && d.contains(titleRow)) {
4950                    try {
4951                      a.appendChild(titleRow);
4952                      titlePlaced = true;
4953                    } catch (_) {}
4954                  }
4955                  if (!pricePlaced && a && b) {
4956                    try {
4957                      a.appendChild(b);
4958                      pricePlaced = true;
4959                    } catch (_) {}
4960                  }
4961                  if (!varPlaced && f && d && e) {
4962                    try {
4963                      f.hidden = false;
4964                      if (i && !f.contains(i)) f.appendChild(i);
4965                      if (g && !f.contains(g)) f.appendChild(g);
4966                      if (d.contains(e)) d.insertBefore(f, e);
4967                      varPlaced = true;
4968                    } catch (_) {}
4969                  }
4970                  if (!promoPlaced && promoBanner && compareSection && compareSection.parentNode) {
4971                    try {
4972                      compareSection.parentNode.insertBefore(promoBanner, compareSection);
4973                      promoPlaced = true;
4974                    } catch (_) {}
4975                  }
4976                } else {
4977                  if (titlePlaced && titleRow && d) {
4978                    try {
4979                      const vcombined = document.getElementById('pd-variant-combined');
4980                      if (vcombined && d.contains(vcombined)) {
4981                        d.insertBefore(titleRow, vcombined);
4982                      } else {
4983                        d.insertBefore(titleRow, d.firstChild);
4984                      }
4985                      titlePlaced = false;
4986                    } catch (_) {}
4987                  }
4988                  if (pricePlaced && b && c && c.parentNode) {
4989                    try {
4990                      c.parentNode.insertBefore(b, c.nextSibling);
4991                      pricePlaced = false;
4992                    } catch (_) {}
4993                  }
4994                  if (varPlaced) {
4995                    try {
4996                      if (i && j && j.parentNode && !j.parentNode.contains(i)) j.parentNode.insertBefore(i, j.nextSibling);
4997                      if (g && h && h.parentNode && !h.parentNode.contains(g)) h.parentNode.insertBefore(g, h.nextSibling);
4998                      if (f) {
4999                        f.hidden = true;
5000                        f.innerHTML = '';
5001                      }
5002                      varPlaced = false;
5003                    } catch (_) {}
5004                  }
5005                  if (promoPlaced && promoBanner && b) {
5006                    try {
5007                      b.appendChild(promoBanner);
5008                      promoPlaced = false;
5009                    } catch (_) {}
5010                  }
5011                }
5012              }
5013              mq.addEventListener ? mq.addEventListener('change', apply) : mq.addListener(apply);
5014              apply();
5015              const fab = document.getElementById('pd-mobile-fab');
5016              if (fab) {
5017                const pid = parseInt(fab.getAttribute('data-pid') || '0', 10) || 325;
5018                const btnCart = document.getElementById('mf-cart');
5019                if (btnCart) btnCart.addEventListener('click', function() {
5020                  const varInput = document.getElementById('pd-variant-id');
5021                  const variantId = varInput ? parseInt(varInput.value || '0', 10) : 0;
5022                  try {
5023                    if (window.addToCart) addToCart(pid, 1, variantId);
5024                  } catch (_) {}
5025                  const variantText = getVariantSummaryText();
5026                  const skuText = (function() {
5027                    const el = document.getElementById('pd-sku');
5028                    return el ? el.textContent.trim() : PD_SKU;
5029                  })();
5030                  showToast({
5031                    type: 'success',
5032                    title: 'Berhasil ditambahkan ke Keranjang',
5033                    message: `<strong>${escapeHtml(PD_NAME)}</strong>${variantText?` · <em>${escapeHtml(variantText)}</em>`:''}<br>SKU: ${escapeHtml(skuText)} · Qty: 1`,
5034                    duration: 5000,
5035                    actions: [{
5036                      label: 'Lihat Keranjang',
5037                      onClick: () => {
5038                        window.location.href = '/keranjang';
5039                      }
5040                    }, {
5041                      label: 'Lanjut Belanja',
5042                      variant: 'alt',
5043                      onClick: () => {}
5044                    }]
5045                  });
5046                });
5047              }
5048            })();
5049            /* ====== Auto-hide installment banner if sidebar too tall (Desktop only) ====== */
5050            (function() {
5051              function adjustSidebarBanner() {
5052                if (window.innerWidth <= 768) return;
5053                const sidebar = document.querySelector('.pd-sidebar');
5054                const infoCard = document.querySelector('.pd-info-card');
5055                const banner = document.querySelector('.pd-side-card.inst-alt-banner.inst-alt-banner--compact');
5056                if (!sidebar || !infoCard || !banner) return;
5057                const sidebarHeight = sidebar.offsetHeight;
5058                const infoCardHeight = infoCard.offsetHeight;
5059                if (sidebarHeight > infoCardHeight) {
5060                  banner.style.display = 'none';
5061                } else {
5062                  banner.style.display = '';
5063                }
5064              }
5065              if (document.readyState === 'loading') {
5066                document.addEventListener('DOMContentLoaded', adjustSidebarBanner);
5067              } else {
5068                adjustSidebarBanner();
5069              }
5070              let resizeTimer;
5071              window.addEventListener('resize', function() {
5072                clearTimeout(resizeTimer);
5073                resizeTimer = setTimeout(adjustSidebarBanner, 250);
5074              });
5075              const pwpSection = document.getElementById('pwp-deals-section');
5076              if (pwpSection) {
5077                const observer = new MutationObserver(function(mutations) {
5078                  let shouldRecheck = false;
5079                  mutations.forEach(function(mutation) {
5080                    if (mutation.type === 'attributes' && mutation.attributeName === 'hidden') {
5081                      shouldRecheck = true;
5082                    } else if (mutation.type === 'childList' && mutation.addedNodes.length > 0) {
5083                      shouldRecheck = true;
5084                    }
5085                  });
5086                  if (shouldRecheck) {
5087                    setTimeout(adjustSidebarBanner, 100);
5088                  }
5089                });
5090                observer.observe(pwpSection, {
5091                  attributes: true,
5092                  childList: true,
5093                  subtree: true
5094                });
5095              }
5096              window.adjustSidebarBanner = adjustSidebarBanner;
5097            })();
5098            /* ====== Global constants ====== */
5099            const IS_DIGITAL = false;
5100            const IS_PREORDER = false;
5101            /* ====== Variants state (REVISED) ====== */
5102            (function initVariants() {
5103              const _0x7g8h = [];
5104              window.variants = _0x7g8h;
5105              window.isPreorderProduct = false;
5106              const attrOrder = [];
5107              if (!variants.length || !attrOrder.length) return;
5108            
5109              function comboKey(sel) {
5110                return attrOrder.map(a => a + '=' + (sel[a] ?? '')).join('|');
5111              }
5112              const variantMap = {};
5113              variants.forEach(v => {
5114                const key = comboKey(v.attrs);
5115                variantMap[key] = v;
5116              });
5117            
5118              function readSelection() {
5119                const sel = {};
5120                attrOrder.forEach(a => {
5121                  const r = document.querySelector(`.v-group[data-attr="${CSS.escape(a)}"] input[type=radio]:checked`);
5122                  sel[a] = r ? r.value : '';
5123                });
5124                return sel;
5125              }
5126            
5127              function findVariant(sel) {
5128                return variantMap[comboKey(sel)] || null;
5129              }
5130            
5131              function autoFillMissing(sel) {
5132                let changed = false;
5133                for (const a of attrOrder) {
5134                  if (sel[a]) continue;
5135                  const possible = [];
5136                  const seen = new Set();
5137                  variants.forEach(v => {
5138                    let ok = true;
5139                    for (const a2 of attrOrder) {
5140                      if (a2 === a) continue;
5141                      if (sel[a2] && v.attrs[a2] !== sel[a2]) {
5142                        ok = false;
5143                        break;
5144                      }
5145                    }
5146                    if (ok) {
5147                      const val = v.attrs[a];
5148                      if (!seen.has(val)) {
5149                        seen.add(val);
5150                        possible.push(val);
5151                      }
5152                    }
5153                  });
5154                  if (possible.length === 1) {
5155                    const val = possible[0];
5156                    const input = document.querySelector(`.v-group[data-attr="${CSS.escape(a)}"] input[type=radio][value="${CSS.escape(val)}"]`);
5157                    if (input && !input.checked) {
5158                      input.checked = true;
5159                      sel[a] = val;
5160                      changed = true;
5161                    }
5162                  }
5163                }
5164                return changed;
5165              }
5166            
5167              function rupiah(n) {
5168                n = parseInt(n || 0, 10) || 0;
5169                return 'Rp ' + n.toString().replace(/\B(?=(\d{3})+(?!\d))/g, '.');
5170              }
5171            
5172              function focusGalleryByUrl(imageUrl) {
5173                const isMobile = window.matchMedia && window.matchMedia('(max-width: 640px)').matches;
5174                if (isMobile) {
5175                  _0xau1v(imageUrl);
5176                  return;
5177                }
5178                const gallery = document.getElementById('pd-thumb-gallery');
5179                const targetName = _0x8s9t(imageUrl);
5180                if (gallery) {
5181                  const btns = Array.from(gallery.querySelectorAll('.pd-thumb-btn'));
5182                  const btn = btns.find(b => _0x8s9t(b.getAttribute('data-full') || '') === targetName);
5183                  if (btn) {
5184                    btn.click();
5185                    return;
5186                  }
5187                }
5188                _0xau1v(imageUrl);
5189              }
5190            
5191              function formatStockLabel(n) {
5192                n = parseInt(n || 0, 10) || 0;
5193                return (n > 10) ? '10+' : String(n)
5194              }
5195            
5196              function updateBranchPopover(v) {
5197                try {
5198                  if (!v) return;
5199                  const a = document.getElementById('sp-qty-meg'),
5200                    b = document.getElementById('sp-qty-mdf'),
5201                    c = document.getElementById('sp-qty-bda');
5202                  if (a) a.textContent = formatStockLabel(Math.max(0, v.smm | 0));
5203                  if (b) b.textContent = formatStockLabel(Math.max(0, v.smf | 0));
5204                  if (c) c.textContent = formatStockLabel(Math.max(0, v.sba | 0))
5205                } catch (_) {}
5206              }
5207            
5208              function calcVoucherDisc(type, value, price, maxDisc) {
5209                if (type === 'PERCENTAGE') {
5210                  let d = (price * value) / 100;
5211                  if (maxDisc > 0 && d > maxDisc) d = maxDisc;
5212                  return Math.round(d)
5213                }
5214                return Math.round(value)
5215              }
5216            
5217              function applyVariant(v, focusImage = true) {
5218                const elCur = document.getElementById('pd-price-current');
5219                const elOri = document.getElementById('pd-price-original');
5220                const elDisc = document.getElementById('pd-discount-badge');
5221                const elSku = document.getElementById('pd-sku');
5222                const elStock = document.getElementById('pd-stock-badge');
5223                const elQty = document.getElementById('qty');
5224                const btnAdd = document.getElementById('btn-add-cart');
5225                const btnBuy = document.getElementById('btn-buy');
5226                const hidVar = document.getElementById('pd-variant-id');
5227                const mfCart = document.getElementById('mf-cart');
5228                const mfBuy = document.getElementById('mf-buy');
5229                const fab = document.getElementById('pd-mobile-fab');
5230                if (hidVar) hidVar.value = v ? v.id : 0;
5231                if (elCur) elCur.textContent = rupiah(v ? v.final : 0);
5232                if (elSku && v && v.sku) elSku.textContent = v.sku;
5233                if (v && v.ori > v.final) {
5234                  if (elOri) {
5235                    elOri.style.display = 'inline';
5236                    elOri.textContent = rupiah(v.ori);
5237                  }
5238                  if (elDisc) {
5239                    elDisc.style.display = 'inline';
5240                    elDisc.textContent = '-' + (v.disc || 0) + '%';
5241                  }
5242                } else {
5243                  if (elOri) elOri.style.display = 'none';
5244                  if (elDisc) elDisc.style.display = 'none';
5245                }
5246                const stock = v ? (parseInt(v.stock || 0, 10) || 0) : 0;
5247                let effectiveStock = stock;
5248                let isActivePreorder = false;
5249                if (window.isPreorderProduct && v && 'preorder_remaining' in v && v.preorder_remaining !== null) {
5250                  effectiveStock = parseInt(v.preorder_remaining, 10);
5251                  if (isNaN(effectiveStock)) effectiveStock = 0;
5252                  isActivePreorder = true;
5253                }
5254                if (elStock) {
5255                  elStock.classList.remove('in', 'out');
5256                  if (effectiveStock > 0) {
5257                    elStock.classList.add('in');
5258                    elStock.textContent = IS_DIGITAL ? 'Tersedia' : (isActivePreorder ? 'Sisa Slot: ' + effectiveStock : 'Stok: ' + formatStockLabel(effectiveStock));
5259                  } else {
5260                    elStock.classList.add('out');
5261                    elStock.textContent = 'Habis';
5262                  }
5263                }
5264                if (elQty) {
5265                  elQty.max = String(effectiveStock > 0 ? effectiveStock : 0);
5266                  if (effectiveStock <= 0) {
5267                    elQty.value = '0';
5268                    elQty.disabled = true;
5269                  } else {
5270                    if (parseInt(elQty.value || '1', 10) < 1) elQty.value = '1';
5271                    elQty.disabled = false;
5272                  }
5273                }
5274                const shouldDisable = !(v && effectiveStock > 0);
5275                const updateButtons = () => {
5276                  const btnAddCart = document.getElementById('btn-add-cart');
5277                  const btnBuyNow = document.getElementById('btn-buy');
5278                  const mobileCart = document.getElementById('mf-cart');
5279                  const mobileBuy = document.getElementById('mf-buy');
5280                  [btnAddCart, btnBuyNow, mobileCart, mobileBuy].forEach(btn => {
5281                    if (!btn) return;
5282                    if (shouldDisable) {
5283                      btn.disabled = true;
5284                      btn.setAttribute('disabled', 'disabled');
5285                      btn.classList.add('stock-disabled');
5286                      btn.setAttribute('data-stock-blocked', 'true');
5287                      btn.setAttribute('data-stock-reason', window.isPreorderProduct ? 'Pre-order habis' : 'Stok habis');
5288                    } else {
5289                      btn.disabled = false;
5290                      btn.removeAttribute('disabled');
5291                      btn.classList.remove('stock-disabled');
5292                      btn.removeAttribute('data-stock-blocked');
5293                      btn.removeAttribute('data-stock-reason');
5294                    }
5295                  });
5296                };
5297                updateButtons();
5298                setTimeout(updateButtons, 10);
5299                setTimeout(updateButtons, 50);
5300                setTimeout(updateButtons, 100);
5301                if (mfBuy && v) {
5302                  const voucherBtn = document.getElementById('btn-buy-voucher');
5303                  const voucherCode = fab ? fab.dataset.voucherCode : '';
5304                  let voucherDiscount = 0;
5305                  if (voucherBtn && voucherCode) {
5306                    const vType = voucherBtn.dataset.voucherType;
5307                    const vValue = parseFloat(voucherBtn.dataset.voucherValue) || 0;
5308                    const vMax = parseFloat(voucherBtn.dataset.voucherMax) || 0;
5309                    const finalPrice = v.final || 0;
5310                    if (vType && vValue > 0) {
5311                      voucherDiscount = calcVoucherDisc(vType, vValue, finalPrice, vMax);
5312                      if (fab) fab.dataset.voucherValue = voucherDiscount.toString();
5313                    }
5314                  }
5315                  const finalPrice = v.final || 0;
5316                  const textEl = mfBuy.querySelector('.mf-buy-text');
5317                  const priceEl = mfBuy.querySelector('.mf-buy-price');
5318                  if (effectiveStock > 0) {
5319                    if (IS_PREORDER) {
5320                      if (textEl) textEl.textContent = 'Pre Order Sekarang';
5321                      if (priceEl) priceEl.textContent = rupiah(finalPrice);
5322                    } else if (voucherCode && voucherDiscount > 0) {
5323                      if (textEl) textEl.textContent = 'Beli dengan Voucher';
5324                      if (priceEl) priceEl.textContent = rupiah(Math.max(0, finalPrice - voucherDiscount));
5325                    } else {
5326                      if (textEl) textEl.textContent = 'Beli Sekarang';
5327                      if (priceEl) priceEl.textContent = rupiah(finalPrice);
5328                    }
5329                  } else {
5330                    if (textEl) textEl.textContent = 'Stok Habis';
5331                    if (priceEl) priceEl.textContent = rupiah(finalPrice);
5332                  }
5333                }
5334                const isMobile = window.initMobile ?? 0;
5335                if (window.instSetBasePrice) window.instSetBasePrice(v ? (isMobile == '1' ? v.ori : v.final) : 0);
5336                if (window.updateSoldBySku) window.updateSoldBySku(v.sku);
5337                updateBranchPopover(v);
5338                if (v && v.image_url && focusImage) focusGalleryByUrl(v.image_url);
5339                if (v) {
5340                  window.dispatchEvent(new CustomEvent('pd-variant-changed', {
5341                    detail: {
5342                      price: v.final,
5343                      originalPrice: v.ori,
5344                      discount: v.disc,
5345                      stock: effectiveStock,
5346                      sku: v.sku,
5347                      variant_id: v.id
5348                    }
5349                  }));
5350                  const encodedHash = encodeVariantHash(v.id);
5351                  if (encodedHash && window.history && window.history.replaceState) {
5352                    const newHash = '#v=' + encodedHash;
5353                    const newUrl = window.location.pathname + window.location.search + newHash;
5354                    window.history.replaceState(null, '', newUrl);
5355                  }
5356                }
5357              }
5358              let sel = readSelection();
5359              if (autoFillMissing(sel)) sel = readSelection();
5360              let v = findVariant(sel);
5361              if (!v) {
5362                const candidates = variants.filter(variant => {
5363                  return attrOrder.every(a => {
5364                    if (!sel[a]) return true;
5365                    return variant.attrs[a] === sel[a];
5366                  });
5367                });
5368                if (candidates.length >= 1) {
5369                  v = candidates[0];
5370                  attrOrder.forEach(a => sel[a] = v.attrs[a]);
5371                  attrOrder.forEach(a => {
5372                    const val = sel[a];
5373                    const input = document.querySelector(`.v-group[data-attr="${CSS.escape(a)}"] input[type=radio][value="${CSS.escape(val)}"]`);
5374                    if (input) input.checked = true;
5375                  });
5376                }
5377              }
5378              const initSel = readSelection();
5379              const initVar = findVariant(initSel) || variants[0] || null;
5380              if (document.readyState === 'loading') {
5381                document.addEventListener('DOMContentLoaded', () => applyVariant(initVar, false));
5382              } else {
5383                applyVariant(initVar, false);
5384              }
5385            
5386              function updateSummary(sel) {
5387                Object.entries(sel).forEach(([a, val]) => {
5388                  const el = document.getElementById('vs-' + a);
5389                  if (el) el.textContent = val || '-'
5390                })
5391              }
5392            
5393              function refreshOptions(sel) {
5394                attrOrder.forEach(a => {
5395                  const group = document.querySelector(`.v-group[data-attr="${CSS.escape(a)}"]`);
5396                  if (!group) return;
5397                  const chips = group.querySelectorAll('.v-chip');
5398                  chips.forEach(ch => {
5399                    const val = ch.getAttribute('data-value');
5400                    const possible = variants.some(v => {
5401                      if (v.attrs[a] !== val) return false;
5402                      for (const a2 of attrOrder) {
5403                        if (a2 === a) continue;
5404                        if (sel[a2] && v.attrs[a2] !== sel[a2]) return false;
5405                      }
5406                      return true;
5407                    });
5408                    const input = ch.querySelector('input[type=radio]');
5409                    const disabled = !possible;
5410                    if (input) input.disabled = disabled;
5411                    ch.classList.toggle('disabled', disabled);
5412                    let candidateVariant = null;
5413                    if (possible) {
5414                      candidateVariant = variants.find(v => {
5415                        if (v.attrs[a] !== val) return false;
5416                        for (const a2 of attrOrder) {
5417                          if (a2 === a) continue;
5418                          if (sel[a2] && v.attrs[a2] !== sel[a2]) return false;
5419                        }
5420                        return true;
5421                      });
5422                    }
5423                    const outOfStock = candidateVariant ? (window.isPreorderProduct && candidateVariant.preorder_remaining !== null ? candidateVariant.preorder_remaining <= 0 : candidateVariant.stock <= 0) : false;
5424                    ch.classList.toggle('out', !disabled && outOfStock);
5425                    const badge = ch.querySelector('.chip-badge');
5426                    if (badge) badge.hidden = !(candidateVariant && outOfStock);
5427                  });
5428                  group.querySelectorAll('.v-chip').forEach(ch => {
5429                    const input = ch.querySelector('input[type=radio]');
5430                    ch.classList.toggle('selected', input && input.checked);
5431                  });
5432                });
5433              }
5434              updateSummary(sel);
5435              refreshOptions(sel);
5436              document.querySelectorAll('.v-chip').forEach(chip => {
5437                const input = chip.querySelector('input[type=radio]');
5438                if (input && input.checked) {
5439                  chip.classList.add('selected');
5440                }
5441              });
5442              const container = document.getElementById('pd-variants');
5443              container && container.addEventListener('change', function(ev) {
5444                const radio = ev.target.closest('input[type=radio]');
5445                if (!radio) return;
5446                sel = readSelection();
5447                if (autoFillMissing(sel)) sel = readSelection();
5448                const chosen = findVariant(sel);
5449                applyVariant(chosen || null, true);
5450                updateSummary(sel);
5451                refreshOptions(sel);
5452              });
5453              window.applyVariant = applyVariant;
5454            })();
5455            (function cleanBrokenDescImages() {
5456              const containers = [
5457                document.querySelector('.pd-full-desc-body'),
5458                document.querySelector('.pd-short-desc')
5459              ].filter(Boolean);
5460              containers.forEach(root => {
5461                const imgs = root.querySelectorAll('img');
5462                imgs.forEach(img => {
5463                  if (img.complete && img.naturalWidth === 0) {
5464                    img.remove();
5465                    return;
5466                  }
5467                  img.addEventListener('error', () => {
5468                    img.remove();
5469                  }, {
5470                    once: true
5471                  });
5472                });
5473              });
5474            })();
5475            /* ====== Scroll To Top ====== */
5476            (function _0xi25j() {
5477              const a = document.getElementById('pd-scroll-top');
5478              if (!a) return;
5479            
5480              function b() {
5481                if (window.matchMedia('(max-width:640px)').matches) {
5482                  const d = document.querySelector('.bottom-nav'),
5483                    e = document.querySelector('.pd-mobile-fab');
5484                  if (!d && !e) {
5485                    setTimeout(b, 100);
5486                    return
5487                  }
5488                  const f = d && window.getComputedStyle(d).display !== 'none' && window.getComputedStyle(d).visibility !== 'hidden',
5489                    g = e && window.getComputedStyle(e).display !== 'none' && window.getComputedStyle(e).visibility !== 'hidden';
5490                  let h;
5491                  if (f && g) {
5492                    h = 'calc(68px + 54px + env(safe-area-inset-bottom))'
5493                  } else if (g) {
5494                    h = 'calc(68px + 8px + env(safe-area-inset-bottom))'
5495                  } else if (f) {
5496                    h = 'calc(60px + env(safe-area-inset-bottom))'
5497                  } else {
5498                    h = 'calc(20px + env(safe-area-inset-bottom))'
5499                  }
5500                  a.style.setProperty('--scroll-top-bottom', h)
5501                } else {
5502                  a.style.removeProperty('--scroll-top-bottom')
5503                }
5504              }
5505            
5506              function c() {
5507                const d = window.pageYOffset || document.documentElement.scrollTop || 0,
5508                  e = d > 300;
5509                a.classList.toggle('visible', e);
5510                a.setAttribute('aria-hidden', e ? 'false' : 'true');
5511                b()
5512              }
5513              window.addEventListener('scroll', c, {
5514                passive: !0
5515              });
5516              window.addEventListener('resize', b, {
5517                passive: !0
5518              });
5519              setTimeout(b, 100);
5520              c();
5521              a.addEventListener('click', function() {
5522                window.scrollTo({
5523                  top: 0,
5524                  behavior: 'smooth'
5525                })
5526              })
5527            })();
5528            /* Format stok 10+ */
5529            function _0xk67l(n) {
5530              n = parseInt(n || 0, 10) || 0;
5531              return n > 10 ? '10+' : String(n)
5532            }
5533            /* Toggle popover stok per cabang */
5534            (function _0xm89n() {
5535              const a = document.getElementById('pd-stock-info-btn'),
5536                b = document.getElementById('pd-stock-popover'),
5537                c = document.getElementById('pd-stock-popover-close');
5538              if (!a || !b) return;
5539            
5540              function d() {
5541                if (window.matchMedia('(min-width: 641px)').matches) {
5542                  const e = document.getElementById('pd-stock-badge');
5543                  if (!e) return;
5544                  const f = e.getBoundingClientRect(),
5545                    g = window.pageXOffset || document.documentElement.scrollLeft || 0,
5546                    h = window.pageYOffset || document.documentElement.scrollTop || 0;
5547                  b.style.left = (f.left + g - 10) + 'px';
5548                  b.style.top = (f.bottom + h + 10) + 'px'
5549                } else {
5550                  b.style.left = '';
5551                  b.style.top = ''
5552                }
5553              }
5554            
5555              function e() {
5556                d();
5557                b.classList.add('show');
5558                a.setAttribute('aria-expanded', 'true');
5559                b.setAttribute('aria-hidden', 'false');
5560                document.addEventListener('click', g, {
5561                  capture: true
5562                });
5563                window.addEventListener('resize', d, {
5564                  passive: true
5565                });
5566                window.addEventListener('scroll', d, {
5567                  passive: true
5568                })
5569              }
5570            
5571              function f() {
5572                b.classList.remove('show');
5573                a.setAttribute('aria-expanded', 'false');
5574                b.setAttribute('aria-hidden', 'true');
5575                document.removeEventListener('click', g, {
5576                  capture: true
5577                });
5578                window.removeEventListener('resize', d);
5579                window.removeEventListener('scroll', d)
5580              }
5581            
5582              function g(h) {
5583                if (b.contains(h.target) || a.contains(h.target)) return;
5584                f()
5585              }
5586              a.addEventListener('click', function(h) {
5587                h.preventDefault();
5588                b.classList.contains('show') ? f() : e()
5589              });
5590              if (c) c.addEventListener('click', f)
5591            })();
5592            /* ===== Share Product Modal ===== */
5593            (function() {
5594              const a = document.getElementById('pd-share-btn'),
5595                z = document.getElementById('mf-share'),
5596                b = document.getElementById('pd-share-modal-overlay'),
5597                c = document.getElementById('pd-share-close'),
5598                d = document.getElementById('pd-share-copy-url-btn'),
5599                e = document.getElementById('pd-share-url-input');
5600              if ((!a && !z) || !b) return;
5601              const f = "https://perfilaluminioestructural.com/",
5602                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",
5603                h = "Rp 20.789.000";
5604              const discountPercent = 1;
5605              let i = '';
5606              if (discountPercent > 0) {
5607                i = `🔥 Lagi Promo Nih! Diskon ${discountPercent}%\n\n✨ ${g}\n💰 Cuma ${h} aja!\n\n🛒 Buruan cek sebelum kehabisan!\n👉 `
5608              } else {
5609                i = `✨ Ada barang bagus nih!\n\n📦 ${g}\n💸 Harga: ${h}\n\n🛍️ Yuk, langsung cek!\n👉 `
5610              }
5611            
5612              function j() {
5613                b.classList.add('show');
5614                document.body.style.overflow = 'hidden'
5615              }
5616            
5617              function k() {
5618                b.classList.remove('show');
5619                document.body.style.overflow = ''
5620              }
5621              if (a) a.addEventListener('click', j);
5622              if (z) z.addEventListener('click', j);
5623              if (c) c.addEventListener('click', k);
5624              b.addEventListener('click', function(l) {
5625                if (l.target === b) k()
5626              });
5627              document.addEventListener('keydown', function(l) {
5628                if (l.key === 'Escape' && b.classList.contains('show')) k()
5629              });
5630              b.addEventListener('click', function(l) {
5631                const m = l.target.closest('[data-share]');
5632                if (!m) return;
5633                const n = m.getAttribute('data-share'),
5634                  o = encodeURIComponent(f),
5635                  p = encodeURIComponent(i),
5636                  q = encodeURIComponent(g);
5637                let r = '';
5638                switch (n) {
5639                  case 'whatsapp':
5640                    r = `https://wa.me/?text=${p}${o}`;
5641                    break;
5642                  case 'facebook':
5643                    r = `https://www.facebook.com/sharer/sharer.php?u=${o}`;
5644                    break;
5645                  case 'twitter':
5646                    r = `https://twitter.com/intent/tweet?text=${p}${o}`;
5647                    break;
5648                  case 'telegram':
5649                    r = `https://t.me/share/url?url=${o}&text=${p}`;
5650                    break;
5651                  case 'email':
5652                    r = `mailto:?subject=${encodeURIComponent('🔥 Cek Produk Keren Ini!')}&body=${p}${o}`;
5653                    window.location.href = r;
5654                    k();
5655                    return;
5656                  case 'copy':
5657                    s();
5658                    return;
5659                  case 'pdf':
5660                    const ps = document.querySelector('.product-single');
5661                    if (ps) {
5662                      ps.setAttribute('data-print-date', new Date().toLocaleDateString('id-ID', {
5663                        year: 'numeric',
5664                        month: 'long',
5665                        day: 'numeric'
5666                      }))
5667                    }
5668                    k();
5669                    setTimeout(function() {
5670                      window.print();
5671                      try {
5672                        if (window.ga4Ecomm && window.ga4Ecomm.trackEvent) window.ga4Ecomm.trackEvent('share', {
5673                          method: 'pdf_export',
5674                          content_type: 'product',
5675                          item_id: "1S83N0880RID"
5676                        })
5677                      } catch (_) {}
5678                    }, 300);
5679                    return
5680                }
5681                if (r) {
5682                  window.open(r, '_blank', 'noopener,noreferrer');
5683                  try {
5684                    if (window.ga4Ecomm && window.ga4Ecomm.trackEvent) window.ga4Ecomm.trackEvent('share', {
5685                      method: n,
5686                      content_type: 'product',
5687                      item_id: "1S83N0880RID"
5688                    })
5689                  } catch (_) {}
5690                }
5691              });
5692            
5693              function s() {
5694                if (!e) return;
5695                e.select();
5696                e.setSelectionRange(0, 99999);
5697                try {
5698                  if (navigator.clipboard && navigator.clipboard.writeText) {
5699                    navigator.clipboard.writeText(f).then(function() {
5700                      t()
5701                    }).catch(function() {
5702                      document.execCommand('copy');
5703                      t()
5704                    })
5705                  } else {
5706                    document.execCommand('copy');
5707                    t()
5708                  }
5709                } catch (u) {
5710                  console.error('Failed to copy:', u)
5711                }
5712              }
5713            
5714              function t() {
5715                if (!d) return;
5716                const v = d.innerHTML;
5717                d.classList.add('copied');
5718                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>';
5719                if (window.showToast) showToast({
5720                  type: 'success',
5721                  title: '✨ Link Tersalin!',
5722                  message: 'Link produk berhasil disalin. Yuk bagikan ke teman!',
5723                  duration: 3000
5724                });
5725                setTimeout(function() {
5726                  d.classList.remove('copied');
5727                  d.innerHTML = v
5728                }, 2000)
5729              }
5730              if (d) d.addEventListener('click', s);
5731              if (navigator.share) {
5732                const shareHandler = function(w) {
5733                  w.preventDefault();
5734                  navigator.share({
5735                    title: g,
5736                    text: i + f,
5737                    url: f
5738                  }).catch(function(x) {
5739                    console.log('Native share cancelled or failed:', x)
5740                  })
5741                };
5742                if (a) a.addEventListener('dblclick', shareHandler);
5743                if (z) z.addEventListener('dblclick', shareHandler)
5744              }
5745            })();
5746            /* ===== Embedding variants (server → client) ===== */
5747            (function() {
5748              window.__PD_VARIANTS_WITH_BRANCH__ = [];
5749            })();
5750            /* ===== Helper: update angka popover ===== */
5751            function updateStockPopoverForVariant(v) {
5752              try {
5753                const elMeg = document.getElementById('sp-qty-meg');
5754                const elMdf = document.getElementById('sp-qty-mdf');
5755                const elBda = document.getElementById('sp-qty-bda');
5756                if (typeof v?.smm === 'number' && elMeg) elMeg.textContent = formatStockLabel(Math.max(0, v.smm | 0));
5757                if (typeof v?.smf === 'number' && elMdf) elMdf.textContent = formatStockLabel(Math.max(0, v.smf | 0));
5758                if (typeof v?.sba === 'number' && elBda) elBda.textContent = formatStockLabel(Math.max(0, v.sba | 0));
5759              } catch (_) {}
5760            }
5761            /* ===== applyVariant: 10+ dan update popover ===== */
5762            (function patchApplyVariant() {
5763              if (typeof applyVariant !== 'function') return;
5764              const original = applyVariant;
5765              window.applyVariant = function(v) {
5766                original(v);
5767                try {
5768                  const elStock = document.getElementById('pd-stock-badge');
5769                  if (elStock) {
5770                    let txt = elStock.textContent || '';
5771                    let m = txt.match(/\d+/);
5772                    if (m) {
5773                      const n = parseInt(m[0] || '0', 10) || 0;
5774                      elStock.textContent = (n > 0) ? ('Stok: ' + formatStockLabel(n)) : 'Habis';
5775                    }
5776                  }
5777                } catch (_) {}
5778                if (window.__PD_VARIANTS_WITH_BRANCH__ && v) {
5779                  const vv = window.__PD_VARIANTS_WITH_BRANCH__.find(x => x.id === v.id) || v;
5780                  updateStockPopoverForVariant(vv)
5781                }
5782              };
5783            })();
5784            (function initCurrentVariantBranch() {
5785              const list = window.__PD_VARIANTS_WITH_BRANCH__ || [];
5786              if (!list.length) return;
5787              const hid = document.getElementById('pd-variant-id');
5788              const vid = hid ? parseInt(hid.value || '0', 10) : 0;
5789              const current = list.find(x => x.id === vid) || list[0] || null;
5790              if (current) updateStockPopoverForVariant(current);
5791            })();
5792            (function() {
5793              if (!window.ga4Ecomm) return;
5794              const catSegs = ["Komputer & Laptop", "Laptop", "Gaming"];
5795              window.ga4Ecomm.viewItem({
5796                currency: 'IDR',
5797                value: 20789000,
5798                item_id: "1S83N0880RID",
5799                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",
5800                item_brand: "Lenovo ",
5801                item_category: catSegs && catSegs.length ? catSegs.join(' / ') : ''
5802              });
5803            })();
5804            (function patchApplyVariantFocus() {
5805              if (typeof applyVariant !== 'function') return;
5806              const original = applyVariant;
5807              window.applyVariant = function(v, focusImage = true) {
5808                original(v, focusImage);
5809                if (focusImage && v && v.image_url) {
5810                  _0xau1v(v.image_url);
5811                }
5812              };
5813            })();
5814            (function() {
5815              var soldMap = [];
5816              var soldTotalLabel = "Terjual 2";
5817            
5818              function formatSoldLabel(qty) {
5819                if (qty >= 1000000) {
5820                  var v = Math.floor((qty / 100000)) / 10;
5821                  return 'Terjual ' + (String(v).replace('.', ',')) + 'jt+';
5822                }
5823                if (qty >= 1000) {
5824                  var v2 = Math.floor((qty / 100)) / 10;
5825                  return 'Terjual ' + (String(v2).replace('.', ',')) + 'rb+';
5826                }
5827                if (qty >= 100) {
5828                  var v2 = Math.floor((qty / 100)) * 100;
5829                  return 'Terjual ' + (String(v2).replace('.', ',')) + '+';
5830                }
5831                if (qty >= 10) {
5832                  var v2 = Math.floor((qty / 10)) * 10;
5833                  return 'Terjual ' + (String(v2).replace('.', ',')) + '+';
5834                }
5835                return 'Terjual ' + (qty.toLocaleString('id-ID'));
5836              }
5837            
5838              function updateSoldLabel(labelText) {
5839                var el = document.querySelector('#pd-sold-inline, [data-role="sold-chip"]');
5840                if (el) el.textContent = labelText;
5841              }
5842              window.updateSoldBySku = function(sku) {
5843                if (!sku || typeof sku !== 'string') {
5844                  updateSoldLabel(soldTotalLabel);
5845                  return;
5846                }
5847                var qty = soldMap[sku] || 0;
5848                updateSoldLabel(formatSoldLabel(qty));
5849              };
5850              updateSoldLabel(soldTotalLabel);
5851            })();
5852            (function() {
5853              const h = document.getElementById('pd-sticky-header');
5854              if (!h) return;
5855              const p = document.getElementById('pd-price-anchor');
5856              const ac = document.getElementById('pd-sticky-add-cart');
5857              const by = document.getElementById('pd-sticky-buy');
5858              let lt = window.scrollY;
5859              let tk = false;
5860            
5861              function u() {
5862                if (!p) return;
5863                const r = p.getBoundingClientRect();
5864                const s = window.scrollY;
5865                if (r.top < 0) {
5866                  h.classList.add('visible')
5867                } else {
5868                  h.classList.remove('visible')
5869                }
5870                lt = s;
5871                tk = false
5872              }
5873            
5874              function rt() {
5875                if (!tk) {
5876                  window.requestAnimationFrame(u);
5877                  tk = true
5878                }
5879              }
5880              window.addEventListener('scroll', rt, {
5881                passive: true
5882              });
5883              u();
5884            
5885              function sy() {
5886                const ma = document.getElementById('btn-add-cart');
5887                const mb = document.getElementById('btn-buy');
5888                if (ac && ma) {
5889                  ac.disabled = ma.disabled
5890                }
5891                if (by && mb) {
5892                  by.disabled = mb.disabled
5893                }
5894              }
5895              sy();
5896              const ob = new MutationObserver(sy);
5897              const ma = document.getElementById('btn-add-cart');
5898              const mb = document.getElementById('btn-buy');
5899              if (ma) ob.observe(ma, {
5900                attributes: true,
5901                attributeFilter: ['disabled']
5902              });
5903              if (mb) ob.observe(mb, {
5904                attributes: true,
5905                attributeFilter: ['disabled']
5906              });
5907              const ss = document.getElementById('pd-sticky-share-btn');
5908              const ms = document.getElementById('pd-share-btn');
5909              if (ss && ms) {
5910                ss.addEventListener('click', function(e) {
5911                  e.preventDefault();
5912                  ms.click()
5913                })
5914              }
5915              if (ac) {
5916                ac.addEventListener('click', function(e) {
5917                  e.preventDefault();
5918                  if (ac.disabled) return;
5919                  const m = document.getElementById('btn-add-cart');
5920                  if (m && !m.disabled) {
5921                    m.click()
5922                  }
5923                })
5924              }
5925              if (by) {
5926                by.addEventListener('click', function(e) {
5927                  e.preventDefault();
5928                  if (by.disabled) return;
5929                  const m = document.getElementById('btn-buy');
5930                  if (m && !m.disabled && window.buyNow) {
5931                    window.buyNow(e)
5932                  }
5933                })
5934              }
5935            
5936              function getChatProductData() {
5937                const varInput = document.getElementById('pd-variant-id');
5938                const variantId = varInput ? parseInt(varInput.value || '0', 10) : 0;
5939                const variantSummary = getVariantSummaryText();
5940                const priceEl = document.getElementById('pd-price-current');
5941                const currentPrice = priceEl ? priceEl.textContent.trim() : 'Rp 20.789.000';
5942                const pd = {
5943                  id: 325,
5944                  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
5944ipse Black\/3Y",
5945                  price: currentPrice,
5946                  image: "\/uploads\/products\/lenovo-legion-go-8asp2-83n0000rid.webp",
5947                  url: window.location.href
5948                };
5949                if (variantId > 0) {
5950                  pd.variant_id = variantId
5951                }
5952                if (variantSummary) {
5953                  pd.variant_summary = variantSummary
5954                }
5955                return pd
5956              }
5957              const ch = document.getElementById('pd-sticky-chat');
5958              if (ch) {
5959                ch.addEventListener('click', function(e) {
5960                  e.preventDefault();
5961                  if (!window.plazaChat) {
5962                    console.warn('Chat widget not loaded');
5963                    return
5964                  }
5965                  window.plazaChat.attachProduct(getChatProductData());
5966                  window.plazaChat.openWidget()
5967                })
5968              }
5969              const dch = document.getElementById('btn-chat-icon');
5970              if (dch) {
5971                dch.addEventListener('click', function(e) {
5972                  e.preventDefault();
5973                  if (!window.plazaChat) {
5974                    console.warn('Chat widget not loaded');
5975                    return
5976                  }
5977                  window.plazaChat.attachProduct(getChatProductData());
5978                  window.plazaChat.openWidget()
5979                })
5980              }
5981              const mch = document.getElementById('mf-chat');
5982              if (mch) {
5983                mch.addEventListener('click', function(e) {
5984                  e.preventDefault();
5985                  if (!window.plazaChat) {
5986                    console.warn('Chat widget not loaded');
5987                    return
5988                  }
5989                  window.plazaChat.attachProduct(getChatProductData());
5990                  window.plazaChat.openWidget()
5991                })
5992              }
5993              window.addEventListener('pd-variant-changed', function(e) {
5994                const d = e.detail || {};
5995                if (d.price !== undefined) {
5996                  const sp = document.getElementById('pd-sticky-price');
5997                  if (sp) {
5998                    sp.textContent = formatRupiah(d.price)
5999                  }
6000                }
6001                if (d.originalPrice !== undefined && d.originalPrice > d.price) {
6002                  const so = document.getElementById('pd-sticky-price-original');
6003                  if (so) {
6004                    so.textContent = formatRupiah(d.originalPrice);
6005                    so.style.display = ''
6006                  }
6007                } else {
6008                  const so = document.getElementById('pd-sticky-price-original');
6009                  if (so) {
6010                    so.style.display = 'none'
6011                  }
6012                }
6013                if (d.discount !== undefined && d.discount > 0) {
6014                  const sd = document.getElementById('pd-sticky-discount');
6015                  if (sd) {
6016                    sd.textContent = '-' + d.discount + '%';
6017                    sd.style.display = ''
6018                  }
6019                } else {
6020                  const sd = document.getElementById('pd-sticky-discount');
6021                  if (sd) {
6022                    sd.style.display = 'none'
6023                  }
6024                }
6025                const hs = d.stock > 0;
6026                if (ac) {
6027                  ac.disabled = !hs
6028                }
6029                if (by) {
6030                  by.disabled = !hs
6031                }
6032              });
6033            
6034              function formatRupiah(n) {
6035                return 'Rp' + Math.floor(n).toLocaleString('id-ID')
6036              }
6037            })();
6038            (function() {
6039              const t = document.getElementById('pdv-toggle-btn');
6040              const v = document.getElementById('pd-voucher-section');
6041              if (t && v) {
6042                const h = v.querySelectorAll('.pdv-min-hidden');
6043                const n = h.length;
6044                t.addEventListener('click', function() {
6045                  const e = t.classList.toggle('expanded');
6046                  h.forEach(function(i) {
6047                    if (e) {
6048                      i.classList.remove('pdv-min-hidden')
6049                    } else {
6050                      i.classList.add('pdv-min-hidden')
6051                    }
6052                  });
6053                  t.textContent = e ? 'Tutup' : '+' + n
6054                })
6055              }
6056              const m = document.getElementById('voucher-detail-modal');
6057              const mc = document.getElementById('voucher-modal-close');
6058              const ma = document.getElementById('voucher-modal-cancel');
6059              const mcp = document.getElementById('voucher-modal-copy');
6060              if (m) {
6061                const bb = document.querySelectorAll('.pdv-badge-btn');
6062                bb.forEach(function(btn) {
6063                  btn.addEventListener('click', function() {
6064                    if (btn.disabled) return;
6065                    const c = btn.getAttribute('data-voucher-code');
6066                    const nm = btn.getAttribute('data-voucher-name');
6067                    const dl = btn.getAttribute('data-discount-label');
6068                    const bl = btn.getAttribute('data-badge-label');
6069                    const mp = parseInt(btn.getAttribute('data-min-purchase'));
6070                    const md = parseInt(btn.getAttribute('data-max-discount'));
6071                    const vu = btn.getAttribute('data-valid-until');
6072                    document.getElementById('voucher-modal-badge').innerHTML = '<span class="vmb-value">' + dl + '</span><span class="vmb-label">' + bl + '</span>';
6073                    document.getElementById('voucher-modal-code').textContent = c;
6074                    document.getElementById('voucher-modal-name').textContent = nm;
6075                    const me = document.getElementById('voucher-modal-min');
6076                    if (mp > 0) {
6077                      me.style.display = '';
6078                      document.getElementById('voucher-modal-min-val').textContent = fr(mp)
6079                    } else {
6080                      me.style.display = 'none'
6081                    }
6082                    const xe = document.getElementById('voucher-modal-max');
6083                    if (md > 0) {
6084                      xe.style.display = '';
6085                      document.getElementById('voucher-modal-max-val').textContent = fr(md)
6086                    } else {
6087                      xe.style.display = 'none'
6088                    }
6089                    if (vu) {
6090                      const d = new Date(vu);
6091                      const ft = d.toLocaleDateString('id-ID', {
6092                        day: 'numeric',
6093                        month: 'long',
6094                        year: 'numeric',
6095                        hour: '2-digit',
6096                        minute: '2-digit'
6097                      });
6098                      document.getElementById('voucher-modal-valid-val').textContent = ft
6099                    }
6100                    mcp.setAttribute('data-code', c);
6101                    m.classList.add('show');
6102                    document.body.style.overflow = 'hidden'
6103                  })
6104                });
6105            
6106                function cm() {
6107                  m.classList.remove('show');
6108                  document.body.style.overflow = ''
6109                }
6110                if (mc) mc.addEventListener('click', cm);
6111                if (ma) ma.addEventListener('click', cm);
6112                m.addEventListener('click', function(e) {
6113                  if (e.target === m) cm()
6114                });
6115                if (mcp) {
6116                  mcp.addEventListener('click', function() {
6117                    const c = mcp.getAttribute('data-code');
6118                    if (!c) return;
6119                    if (navigator.clipboard && navigator.clipboard.writeText) {
6120                      navigator.clipboard.writeText(c).then(function() {
6121                        smc()
6122                      }).catch(function(err) {
6123                        fc(c)
6124                      })
6125                    } else {
6126                      fc(c)
6127                    }
6128                  })
6129                }
6130              }
6131              const b = document.querySelectorAll('.pdv-min-copy');
6132              b.forEach(function(btn) {
6133                btn.addEventListener('click', function() {
6134                  if (btn.disabled) return;
6135                  const code = btn.getAttribute('data-code');
6136                  if (!code) return;
6137                  if (navigator.clipboard && navigator.clipboard.writeText) {
6138                    navigator.clipboard.writeText(code).then(function() {
6139                      sc(btn)
6140                    }).catch(function(err) {
6141                      fc(code, btn)
6142                    })
6143                  } else {
6144                    fc(code, btn)
6145                  }
6146                })
6147              });
6148            
6149              function fc(text, btn) {
6150                const tx = document.createElement('textarea');
6151                tx.value = text;
6152                tx.style.position = 'fixed';
6153                tx.style.opacity = '0';
6154                document.body.appendChild(tx);
6155                tx.select();
6156                try {
6157                  document.execCommand('copy');
6158                  if (btn) sc(btn);
6159                  else smc()
6160                } catch (err) {}
6161                document.body.removeChild(tx)
6162              }
6163            
6164              function sc(btn) {
6165                const o = btn.textContent;
6166                btn.classList.add('copied');
6167                btn.textContent = '✓ Tersalin';
6168                setTimeout(function() {
6169                  btn.classList.remove('copied');
6170                  btn.textContent = o
6171                }, 2000)
6172              }
6173            
6174              function smc() {
6175                const o = mcp.textContent;
6176                mcp.textContent = '✓ Kode Tersalin';
6177                mcp.style.background = '#c52222';
6178                setTimeout(function() {
6179                  mcp.textContent = o;
6180                  mcp.style.background = ''
6181                }, 2000)
6182              }
6183            
6184              function fr(a) {
6185                return 'Rp' + Math.floor(a).toLocaleString('id-ID')
6186              }
6187            })();
6188         </script>
6188
6189         
6189<script nonce="">
6190            window.PD_ID = 325;
6191            window.PD_NAME = _0x3c4d;
6192            window.PD_SKU = _0x5e6f;
6193            window.PD_CATEGORY_PATH = "Komputer & Laptop/Laptop/Gaming";
6194            window.PD_BEST_VOUCHER = null;
6195            window.IS_DIGITAL = IS_DIGITAL;
6196            window.isPreorderProduct = false;
6197            window.PD_PREORDER_DATA = null;
6198         </script>
6198
6199         
6199<script src="https://perfilaluminioestructural.com/sbobet/pd-lightbox.js.download" nonce=""></script>
6199
6200         
6200<script src="https://perfilaluminioestructural.com/sbobet/cart.js.download" defer="" nonce=""></script>
6200
6201         
6201<script src="https://perfilaluminioestructural.com/sbobet/stock-validator-vanilla.js.download" nonce=""></script>
6201
6202         
6202<script src="https://perfilaluminioestructural.com/sbobet/pd-addtocart.js.download" defer="" nonce=""></script>
6202
6203         
6203<script src="https://perfilaluminioestructural.com/sbobet/pd-buynow.js.download" defer="" nonce=""></script>
6203
6204         
6204<script src="https://perfilaluminioestructural.com/sbobet/pd-voucher-recalc.js.download" defer="" nonce=""></script>
6204
6205         
6205<script nonce="">
6206            document.addEventListener('DOMContentLoaded', function() {
6207              if (typeof ProductReviews !== 'undefined') {
6208                ProductReviews.init(325);
6209              }
6210              const r = document.getElementById('pd-rating-inline');
6211              if (r) {
6212                r.addEventListener('click', function(e) {
6213                  e.preventDefault();
6214                  const s = document.getElementById('reviews');
6215                  if (s) {
6216                    s.scrollIntoView({
6217                      behavior: 'smooth',
6218                      block: 'start'
6219                    });
6220                    s.classList.add('highlight-flash');
6221                    setTimeout(() => {
6222                      s.classList.remove('highlight-flash')
6223                    }, 1500)
6224                  }
6225                });
6226              }
6227            });
6228         </script>
6228
6229         
6229<script nonce="">
6230            (function() {
6231              function _0x9i0j(el) {
6232                if (typeof gtag === 'function') {
6233                  gtag('event', 'qoala_insurance_click', {
6234                    event_category: 'Insurance',
6235                    event_label: 'Qoala Banner Click - Product Detail',
6236                    link_url: '/plazait-protect',
6237                    page_location: window.location.href,
6238                    product_id: parseInt(el.getAttribute('data-product-id')) || 0,
6239                    product_name: el.getAttribute('data-product-name') || '',
6240                    category_path: el.getAttribute('data-category-path') || '',
6241                    custom_map: {
6242                      custom_parameter_1: 'qoala_banner_product_detail'
6243                    }
6244                  })
6245                }
6246              }
6247            
6248              function _0x1k2l() {
6249                var a = document.querySelector('.qoala-cta[data-ga-event="qoala_banner_click"]');
6250                if (a) {
6251                  a.addEventListener('click', function(e) {
6252                    _0x9i0j(this)
6253                  })
6254                }
6255              }
6256              if (document.readyState === 'loading') {
6257                document.addEventListener('DOMContentLoaded', _0x1k2l)
6258              } else {
6259                _0x1k2l()
6260              }
6261            })();
6262            (function() {
6263              const pwpSection = document.getElementById('pwp-deals-section');
6264              const pwpBadge = document.getElementById('pwp-trigger-badge');
6265              if (!pwpSection) return;
6266              const productId = parseInt(pwpSection.getAttribute('data-product-id')) || 0;
6267              const variantId = parseInt(pwpSection.getAttribute('data-variant-id')) || 0;
6268              const categoryPath = pwpSection.getAttribute('data-category-path') || '';
6269              if (!productId) return;
6270            
6271              function formatRupiah(n) {
6272                return 'Rp' + Math.floor(n).toLocaleString('id-ID')
6273              }
6274            
6275              function loadPWPDeals() {
6276                const url = `/api/pwp/get_by_product.php?product_id=${productId}${variantId?`&variant_id=${variantId}`:''}${categoryPath?`&category_path=${encodeURIComponent(categoryPath)}`:''}`;
6277                fetch(url).then(r => r.json()).then(data => {
6278                  if (data.success && data.promotions && data.promotions.length > 0) {
6279                    renderPWPDeals(data.promotions);
6280                    pwpSection.hidden = false;
6281                    if (pwpBadge) pwpBadge.hidden = false;
6282                    setTimeout(function() {
6283                      if (typeof window.adjustSidebarBanner === 'function') {
6284                        window.adjustSidebarBanner()
6285                      }
6286                    }, 150)
6287                  } else {
6288                    pwpSection.hidden = true;
6289                    if (pwpBadge) pwpBadge.hidden = true
6290                  }
6291                }).catch(err => {
6292                  console.error('PWP load error:', err);
6293                  pwpSection.hidden = true;
6294                  if (pwpBadge) pwpBadge.hidden = true
6295                })
6296              }
6297            
6298              function renderPWPDeals(promotions) {
6299                const loading = pwpSection.querySelector('.pwp-deals-loading');
6300                const grid = document.getElementById('pwp-deals-grid');
6301                if (loading) loading.hidden = true;
6302                if (!grid) return;
6303                grid.innerHTML = '';
6304                promotions.forEach(promo => {
6305                  promo.bundled_products.forEach(product => {
6306                    const card = document.createElement('div');
6307                    card.className = 'pwp-deal-card';
6308                    const discount = product.discount > 0 ? product.discount : 0;
6309                    const discountPercent = product.regular_price > 0 ? Math.round((discount / product.regular_price) * 100) : 0;
6310                    const imgUrl = product.image_url ? `/uploads/products/${product.image_url}` : '/assets/img/no-image.png';
6311                    card.innerHTML = `<div class="pwp-deal-thumb"><img src="${imgUrl}" alt="${escapeHtml(product.name)}" loading="lazy"></div><div class="pwp-deal-info"><h4 class="pwp-deal-name">${escapeHtml(product.name)}</h4><div class="pwp-deal-prices"><span class="pwp-deal-price">${formatRupiah(product.pwp_price)}</span>${product.regular_price>product.pwp_price?`<span class="pwp-deal-original">${formatRupiah(product.regular_price)}</span>`:''}</div></div>${discountPercent>0?`<span class="pwp-deal-badge">-${discountPercent}%</span>`:''}`;
6312                    grid.appendChild(card)
6313                  })
6314                })
6315              }
6316            
6317              function escapeHtml(str) {
6318                const div = document.createElement('div');
6319                div.textContent = str || '';
6320                return div.innerHTML
6321              }
6322              loadPWPDeals();
6323              window.addEventListener('pd-variant-changed', function(e) {
6324                const detail = e.detail || {};
6325                const newVid = detail.variant_id || 0;
6326                const currentVid = parseInt(pwpSection.getAttribute('data-variant-id')) || 0;
6327                if (newVid !== currentVid) {
6328                  pwpSection.setAttribute('data-variant-id', newVid);
6329                  loadPWPDeals()
6330                }
6331              })
6332            })();
6333         </script>
6333
6334         <footer class="site-footer footer-compact variant-stripes" role="contentinfo">
6335            <div class="ft-top ft-collapsible" id="ftTop">
6336               <div class="container ft-grid">
6337                  <div class="ft-col ft-help">
6338                     <h4 class="ft-title">Butuh Bantuan?</h4>
6339                     <p class="ft-desc">Hubungi kami melalui Official WhatsApp interaktif sekarang.</p>
6340                     <a class="ft-wa-btn" href="https://perfilaluminioestructural.com/#" target="_blank" rel="nofollow noopener">
6341                        <span class="ico" aria-hidden="true">
6342                           <svg viewBox="0 0 24 24" width="18" height="18">
6343                              <path fill="#25D366" d="M12.04 2c-5.52 0-10 4.43-10 9.9 0 1.75.47 3.45 1.38 4.94L2 22l5.3-1.38c1.43.78 3.05 1.19 4.7 1.19 5.52 0 10-4.43 10-9.9S17.56 2 12.04 2Zm5.86 13.9c-.25.7-1.23 1.28-1.7 1.33-.45.06-1.02.08-1.65-.1-.38-.12-.88-.29-1.52-.56-2.66-1.15-4.4-3.83-4.53-4.01-.13-.18-1.08-1.44-1.08-2.75 0-1.31.68-1.95.92-2.22.25-.27.54-.33.72-.33.18 0 .36.01.52.01.17 0 .39-.06.62.47.25.6.85 2.07.92 2.22.07.15.12.33.02.53-.1.2-.15.33-.3.5-.15.17-.32.39-.46.53-.15.15-.3.31-.13.6.18.3.8 1.31 1.73 2.12 1.19 1.03 2.17 1.36 2.48 1.5.31.14.49.12.67-.07.18-.18.77-.82.98-1.1.21-.27.42-.23.7-.14.27.09 1.72.81 2.02.95.3.14.5.22.58.35.08.13.08.72-.17 1.42Z"></path>
6344                           </svg>
6345                        </span>
6346                        Kirim Pesan 
6347                     </a>
6348                     <p class="ft-desc sm-gap">Ikuti kami:</p>
6349                     <div class="ft-social">
6350                        <a aria-label="Facebook" href="https://facebook.com/PlazaIt/">
6351                           <svg viewBox="0 0 24 24" width="18" height="18">
6352                              <path fill="currentColor" d="M13.5 22v-8.2h2.7l.4-3.2h-3.1V8c0-.9.3-1.5 1.6-1.5H17V3.7c-.3 0-1.2-.1-2.2-.1-2.2 0-3.8 1.3-3.8 3.9v2.2H8v3.2h3v8.1h2.5Z"></path>
6353                           </svg>
6354                        </a>
6355                        <a aria-label="Instagram" href="https://www.instagram.com/plazait">
6356                           <svg viewBox="0 0 24 24" width="18" height="18">
6357                              <path fill="currentColor" d="M7.8 2h8.4A5.8 5.8 0 0 1 22 7.8v8.4A5.8 5.8 0 0 1 16.2 22H7.8A5.8 5.8 0 0 1 2 16.2V7.8A5.8 5.8 0 0 1 7.8 2Zm0 2A3.8 3.8 0 0 0 4 7.8v8.4A3.8 3.8 0 0 0 7.8 20h8.4a3.8 3.8 0 0 0 3.8-3.8
6357V7.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"></path>
6358                           </svg>
6359                        </a>
6360                        <a aria-label="TikTok" href="https://www.tiktok.com/@plazait">
6361                           <svg viewBox="0 0 24 24" width="18" height="18">
6362                              <path fill="currentColor" d="M18.9 7.4a6.4 6.4 0 0 1-3.2-1.2v6.3a5.47 5.47 0 1 1-5.5-5.5c.2 0 .4 0 .6.02v2.37a2.92 2.92 0 0 0-.6-.07 2.8 2.8 0 1 0 2.8 2.8V2h2.3a4.6 4.6 0 0 0 4.5 4.1v2.3Z"></path>
6363                           </svg>
6364                        </a>
6365                     </div>
6366                  </div>
6367                  <!-- Collapsible Content Wrapper (Non-Homepage Only) -->
6368                  <div class="ft-collapsible-content" id="ftCollapsible">
6369                     <div class="ft-col">
6370                        <h4 class="ft-title">Tentang SBOBET</h4>
6371                        <ul class="ft-links">
6372                           <li><a href="https://perfilaluminioestructural.com/tentang-kami">Tentang Kami</a></li>
6373                           <li><a href="https://perfilaluminioestructural.com/kontak-kami">Kontak Kami</a></li>
6374                           <li><a href="https://perfilaluminioestructural.com/lokasi-toko">Lokasi Toko</a></li>
6375                           <li><a href="https://perfilaluminioestructural.com/faq">FAQ</a></li>
6376                        </ul>
6377                        <div class="ft-address">
6378                           <p class="company">PT SBOBET</p>
6379                           <p>JL. in Aja Dulu ,</p>
6380                           <p>Kec. Siapa Tau Ranking, 20216</p>
6381                        </div>
6382                     </div>
6383                     <div class="ft-col">
6384                        <h4 class="ft-title">Informasi</h4>
6385                        <ul class="ft-links">
6386                           <li><a href="https://perfilaluminioestructural.com/syarat-dan-ketentuan">Syarat &amp; Ketentuan</a></li>
6387                           <li><a href="https://perfilaluminioestructural.com/kebijakan-privasi">Kebijakan Privasi</a></li>
6388                           <li><a href="https://perfilaluminioestructural.com/kebijakan-cookie">Kebijakan Cookie</a></li>
6389                           <li><a href="https://perfilaluminioestructural.com/pengiriman-dan-pengembalian">Pengiriman &amp; Pengembalian</a></li>
6390                           <li><a href="https://perfilaluminioestructural.com/pembayaran-dan-cicilan">Pembayaran &amp; Cicilan</a></li>
6391                           <li><a href="https://perfilaluminioestructural.com/garansi-dan-layanan">Garansi &amp; Layanan</a></li>
6392                        </ul>
6393                        <div class="ft-payments payments-small" aria-label="Metode Pembayaran">
6394                           <div class="pay-row">
6395                              <img src="https://plazaitdotid.pages.dev/assets/img/payments/mandiri.svg" alt="Mandiri" loading="lazy">
6396                              <img src="https://plazaitdotid.pages.dev/assets/img/payments/bni.svg" alt="BNI" loading="lazy">
6397                              <img src="https://plazaitdotid.pages.dev/assets/img/payments/bri.svg" alt="BRI" loading="lazy">
6398                              <img src="https://plazaitdotid.pages.dev/assets/img/payments/bsi.svg" alt="BSI" loading="lazy">
6399                              <img src="https://plazaitdotid.pages.dev/assets/img/payments/cimb-logo.svg" alt="ShopeePay" loading="lazy">
6400                           </div>
6401                        </div>
6402                     </div>
6403                  </div>
6404                  <!-- End Collapsible Content -->
6405                  <!-- Expand Button (Mobile Only) -->
6406                  <button class="ft-expand-btn" id="ftExpandBtn" aria-label="Lihat semua informasi footer">
6407                     <span class="expand-text">Selengkapnya</span>
6408                     <svg viewBox="0 0 24 24" width="18" height="18" fill="currentColor">
6409                        <path d="M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z"></path>
6410                     </svg>
6411                  </button>
6412               </div>
6413            </div>
6414            <div class="ft-bottom">
6415               <div class="container ft-bottom-inner">
6416                  <div class="ft-copy">
6417                     <span>SBOBET88 © <span id="yearNow">2026</span></span>
6418                     <span>PT SBOBET88. All rights reserved.</span>
6419                  </div>
6420               </div>
6421            </div>
6422            <style nonce="">
6423               /* Chat Widget Styles - Lightweight & Minimal */
6424               .chat-widget {
6425               position: fixed;
6426               bottom: 20px;
6427               right: 20px;
6428               z-index: 9999;
6429               font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
6430               }
6431               /* Hide floating button on mobile - use bottom nav instead */
6432               @media (max-width: 640px) {
6433               .chat-toggle-btn {
6434               display: none !important;
6435               }
6436               /* Ensure popup is still visible on mobile even when button is hidden */
6437               .chat-widget {
6438               display: block !important;
6439               }
6440               .chat-popup {
6441               display: none;
6442               /* Hidden by default, shown via JS */
6443               }
6444               .chat-popup[style*="display: block"],
6445               .chat-popup[style*="display:block"] {
6446               display: block !important;
6447               }
6448               }
6449               .chat-toggle-btn {
6450               width: 60px;
6451               height: 60px;
6452               border-radius: 50%;
6453               background: linear-gradient(135deg, #ccffe2 0%, #D97809 100%);
6454               border: none;
6455               color: white;
6456               cursor: pointer;
6457               box-shadow: 0 4px 12px rgba(242, 140, 26, 0.3);
6458               position: relative;
6459               transition: transform 0.2s, box-shadow 0.2s;
6460               }
6461               .chat-toggle-btn:hover {
6462               transform: scale(1.05);
6463               box-shadow: 0 6px 20px rgba(242, 140, 26, 0.4);
6464               }
6465               #chat-toggle-btn .chat-icon {
6466               position: absolute;
6467               top: 50%;
6468               left: 50%;
6469               transform: translate(-50%, -50%);
6470               width: 28px !important;
6471               height: 28px !important;
6472               }
6473               .chat-unread-badge {
6474               position: absolute;
6475               top: -5px;
6476               right: -5px;
6477               background: #ef4444;
6478               color: white;
6479               border-radius: 12px;
6480               padding: 2px 6px;
6481               font-size: 11px;
6482               font-weight: 600;
6483               min-width: 20px;
6484               text-align: center;
6485               }
6486               .chat-popup {
6487               position: absolute;
6488               bottom: 80px;
6489               right: 0;
6490               width: 380px;
6491               max-width: calc(100vw - 40px);
6492               height: 500px;
6493               max-height: calc(100vh - 120px);
6494               background: white;
6495               border-radius: 12px;
6496               box-shadow: 0 10px 40px rgba(0, 0, 0, 0.2);
6497               display: flex;
6498               flex-direction: column;
6499               overflow: hidden;
6500               }
6501               .chat-popup-header {
6502               background: linear-gradient(135deg, #ccffe2 0%, #D97809 100%);
6503               color: white;
6504               padding: 16px 20px;
6505               display: flex;
6506               justify-content: space-between;
6507               align-items: center;
6508               flex-shrink: 0;
6509               }
6510               .chat-header-title {
6511               display: flex;
6512               flex-direction: column;
6513               gap: 2px;
6514               min-height: 0;
6515               }
6516               .chat-popup-header h3 {
6517               margin: 0;
6518               font-size: 18px;
6519               font-weight: 600;
6520               line-height: 1.2;
6521               }
6522               .chat-operating-hours {
6523               font-size: 11px;
6524               opacity: 0.9;
6525               font-weight: 400;
6526               display: flex;
6527               align-items: center;
6528               gap: 4px;
6529               line-height: 1.2;
6530               }
6531               .chat-operating-hours svg {
6532               width: 12px;
6533               height: 12px;
6534               opacity: 0.8;
6535               flex-shrink: 0;
6536               }
6537               .chat-header-actions {
6538               display: flex;
6539               align-items: center;
6540               gap: 8px;
6541               }
6542               /* Notification Toggle Button */
6543               .btn-notif-toggle {
6544               background: none;
6545               border: none;
6546               color: white;
6547               font-size: 18px;
6548               cursor: pointer;
6549               padding: 4px 8px;
6550               transition: all 0.2s;
6551               opacity: 0.8;
6552               }
6553               .btn-notif-toggle:hover {
6554               opacity: 1;
6555               transform: scale(1.1);
6556               }
6557               /* Icon states */
6558               .btn-notif-toggle[data-status="not-subscribed"] svg {
6559               opacity: 0.7;
6560               }
6561               .btn-notif-toggle[data-status="not-subscribed"]:hover svg {
6562               opacity: 1;
6563               }
6564               .btn-notif-toggle[data-status="subscribed"] svg {
6565               opacity: 1;
6566               animation: bellRing 2s ease-in-out;
6567               }
6568               .btn-notif-toggle[data-status="blocked"] svg {
6569               color: #ff6b6b;
6570               }
6571               .btn-notif-toggle[data-status="not-supported"] {
6572               display: none !important;
6573               }
6574               @keyframes bellRing {
6575               0%,
6576               100% {
6577               transform: rotate(0deg);
6578               }
6579               10%,
6580               30% {
6581               transform: rotate(-10deg);
6582               }
6583               20%,
6584               40% {
6585               transform: rotate(10deg);
6586               }
6587               }
6588               /* Notification Info Bar */
6589               .chat-notif-info-bar {
6590               position: absolute;
6591               top: 64px;
6592               left: 0;
6593               right: 0;
6594               background: linear-gradient(to right, #e3f2fd, #f5f5f5);
6595               border-bottom: 1px solid #bbdefb;
6596               padding: 8px 12px;
6597               display: flex;
6598               align-items: center;
6599               gap: 8px;
6600               font-size: 12px;
6601               color: #616161;
6602               z-index: 10;
6603               animation: slideDown 0.3s ease;
6604               }
6605               .chat-notif-info-bar svg {
6606               flex-shrink: 0;
6607               }
6608               .chat-notif-info-bar .small {
6609               flex: 1;
6610               line-height: 1.4;
6611               }
6612               .chat-notif-info-bar .btn-dismiss {
6613               background: none;
6614               border: none;
6615               color: #9e9e9e;
6616               cursor: pointer;
6617               padding: 0 4px;
6618               font-size: 16px;
6619               transition: color 0.2s;
6620               }
6621               .chat-notif-info-bar .btn-dismiss:hover {
6622               color: #616161;
6623               }
6624               @keyframes slideDown {
6625               from {
6626               max-height: 0;
6627               opacity: 0;
6628               }
6629               to {
6630               max-height: 50px;
6631               opacity: 1;
6632               }
6633               }
6634               .chat-close-btn {
6635               background: none;
6636               border: none;
6637               color: white;
6638               font-size: 28px;
6639               line-height: 1;
6640               cursor: pointer;
6641               padding: 0;
6642               width: 30px;
6643               height: 30px;
6644               }
6645               .chat-popup-body {
6646               flex: 1 1 auto;
6647               display: flex;
6648               flex-direction: column;
6649               min-height: 0;
6650               overflow: hidden;
6651               height: calc(100% - 64px);
6652               position: relative;
6653               transition: padding-top 0.3s ease;
6654               }
6655               /* Add padding when info bar is visible */
6656               .chat-popup-body.has-info-bar {
6657               padding-top: 40px;
6658               }
6659               .chat-view {
6660               flex: 1 1 auto;
6661               display: none;
6662               flex-direction: column;
6663               min-height: 0;
6664               overflow: hidden;
6665               }
6666               #chat-list-view {
6667               display: flex;
6668               }
6669               #chat-messages-view {
6670               display: none;
6671               }
6672               #chat-messages-view.active {
6673               display: flex;
6674               flex-direction: column;
6675               }
6676               #chat-new-view {
6677               display: none;
6678               }
6679               #chat-new-view.active {
6680               display: flex;
6681               }
6682               .chat-conversations-list {
6683               flex: 1;
6684               overflow-y: auto;
6685               padding: 0;
6686               background: white;
6687               }
6688               /* Custom Scrollbar for Conversations List */
6689               .chat-conversations-list::-webkit-scrollbar {
6690               width: 6px;
6691               }
6692               .chat-conversations-list::-webkit-scrollbar-track {
6693               background: #f1f1f1;
6694               }
6695               .chat-conversations-list::-webkit-scrollbar-thumb {
6696               background: #ccffe2;
6697               border-radius: 3px;
6698               }
6699               .chat-conversations-list::-webkit-scrollbar-thumb:hover {
6700               background: #D97809;
6701               }
6702               /* Firefox */
6703               .chat-conversations-list {
6704               scrollbar-width: thin;
6705               scrollbar-color: #ccffe2 #f1f1f1;
6706               }
6707               .chat-conversation-item {
6708               padding: 12px 16px;
6709               cursor: pointer;
6710               display: flex;
6711               gap: 12px;
6712               align-items: flex-start;
6713               transition: background 0.15s ease;
6714               color: #33371f;
6715               border-bottom: 1px solid #f0f0f0;
6716               }
6717               .chat-conversation-item:hover {
6718               background: #f5f5f5;
6719               }
6720               .chat-conversation-item.active {
6721               background: #FFF5EB;
6722               }
6723               /* WhatsApp-like Avatar */
6724               .conversation-avatar {
6725               width: 48px;
6726               height: 48px;
6727               border-radius: 50%;
6728               background: linear-gradient(135deg, #ccffe2 0%, #D97809 100%);
6729               flex-shrink: 0;
6730               display: flex;
6731               align-items: center;
6732               justify-content: center;
6733               color: white;
6734               font-weight: 600;
6735               font-size: 18px;
6736               }
6737               .conversation-avatar svg {
6738               width: 24px;
6739               height: 24px;
6740               }
6741               /* WhatsApp-like Content */
6742               .conversation-content {
6743               flex: 1;
6744               min-width: 0;
6745               display: flex;
6746               flex-direction: column;
6747               gap: 4px;
6748               }
6749               .conversation-header {
6750               display: flex;
6751               justify-content: space-between;
6752               align-items: center;
6753               gap: 8px;
6754               }
6755               .conversation-name {
6756               font-weight: 600;
6757               font-size: 15px;
6758               color: #111;
6759               white-space: nowrap;
6760               overflow: hidden;
6761               text-overflow: ellipsis;
6762               }
6763               .conversation-time {
6764               font-size: 12px;
6765               color: #7d8166;
6766               flex-shrink: 0;
6767               }
6768               .conversation-preview {
6769               display: flex;
6770               justify-content: space-between;
6771               align-items: center;
6772               gap: 8px;
6773               }
6774               .conversation-message {
6775               font-size: 14px;
6776               color: #667781;
6777               white-space: nowrap;
6778               overflow: hidden;
6779               text-overflow: ellipsis;
6780               margin: 0;
6781               flex: 1;
6782               }
6783               .conversation-unread {
6784               background: #25D366;
6785               color: white;
6786               border-radius: 12px;
6787               padding: 2px 8px;
6788               font-size: 12px;
6789               font-weight: 600;
6790               min-width: 20px;
6791               text-align: center;
6792               flex-shrink: 0;
6793               }
6794               /* Active item styling */
6795               .chat-conversation-item.active .conversation-name {
6796               color: #ccffe2;
6797               }
6798               .chat-conversation-item.active .conversation-time {
6799               color: #ccffe2;
6800               }
6801               .chat-new-btn {
6802               margin: 12px;
6803               padding: 12px;
6804               background: linear-gradient(135deg, #ccffe2 0%, #D97809 100%);
6805               color: white;
6806               border: none;
6807               border-radius: 8px;
6808               cursor: pointer;
6809               font-weight: 500;
6810               font-size: 14px;
6811               display: flex;
6812               align-items: center;
6813               justify-content: center;
6814               gap: 8px;
6815               transition: all 0.2s;
6816               flex-shrink: 0;
6817               }
6818               .chat-new-btn:hover {
6819               transform: translateY(-1px);
6820               box-shadow: 0 4px 8px rgba(242, 140, 26, 0.3);
6821               }
6822               .chat-conversation-title {
6823               flex: 1;
6824               font-weight: 600;
6825               font-size: 16px;
6826               color: #1f2937;
6827               }
6828               .chat-messages-container {
6829               flex: 1;
6830               overflow-y: auto;
6831               padding: 16px;
6832               display: flex;
6833               flex-direction: column;
6834               gap: 8px;
6835               min-height: 0;
6836               background: #E5DDD5;
6837               }
6838               /* Custom Scrollbar for Messages Container */
6839               .chat-messages-container::-webkit-scrollbar {
6840               width: 6px;
6841               }
6842               .chat-messages-container::-webkit-scrollbar-track {
6843               background: rgba(0, 0, 0, 0.05);
6844               }
6845               .chat-messages-container::-webkit-scrollbar-thumb {
6846               background: rgba(242, 140, 26, 0.6);
6847               border-radius: 3px;
6848               }
6849               .chat-messages-container::-webkit-scrollbar-thumb:hover {
6850               background: #ccffe2;
6851               }
6852               /* Firefox */
6853               .chat-messages-container {
6854               scrollbar-width: thin;
6855               scrollbar-color: rgba(242, 140, 26, 0.6) rgba(0, 0, 0, 0.05);
6856               }
6857               /* WhatsApp Group-like Messages */
6858               .chat-message {
6859               display: flex;
6860               margin-bottom: 4px;
6861               animation: fadeIn 0.2s ease;
6862               }
6863               @keyframes fadeIn {
6864               from {
6865               opacity: 0;
6866               transform: translateY(10px);
6867               }
6868               to {
6869               opacity: 1;
6870               transform: translateY(0);
6871               }
6872               }
6873               .chat-message.mine {
6874               justify-content: flex-end;
6875               }
6876               .chat-message-bubble {
6877               max-width: 80%;
6878               padding: 6px 8px 8px 10px;
6879               border-radius: 8px;
6880               position: relative;
6881               box-shadow: 0 1px 0.5px rgba(0, 0, 0, 0.13);
6882               }
6883               /* Bubble from others (Admin/CS) */
6884               .chat-message:not(.mine) .chat-message-bubble {
6885               background: #FFFFFF;
6886               border-radius: 0 8px 8px 8px;
6887               }
6888               /* Bubble tail for others */
6889               .chat-message:not(.mine) .chat-message-bubble::before {
6890               content: '';
6891               position: absolute;
6892               top: 0;
6893               left: -8px;
6894               width: 0;
6895               height: 0;
6896               border-style: solid;
6897               border-width: 0 8px 13px 0;
6898               border-color: transparent #FFFFFF transparent transparent;
6899               }
6900               /* Bubble from user (mine) */
6901               .chat-message.mine .chat-message-bubble {
6902               background: #e4f5d0;
6903               /* Light blue for user messages */
6904               border-radius: 8px 0 8px 8px;
6905               }
6906               /* Bubble tail for mine */
6907               .chat-message.mine .chat-message-bubble::before {
6908               content: '';
6909               position: absolute;
6910               top: 0;
6911               right: -8px;
6912               width: 0;
6913               height: 0;
6914               border-style: solid;
6915               border-width: 0 0 13px 8px;
6916               border-color: transparent transparent transparent #eaf5d0;
6917               }
6918               .message-sender {
6919               font-size: 12.5px;
6920               font-weight: 600;
6921               color: #ccffe2 !important;
6922               margin-bottom: 4px;
6923               }
6924               .chat-message.mine .message-sender {
6925               display: none;
6926               }
6927               /* Message text */
6928               .message-text {
6929               font-size: 14px;
6930               line-height: 19px;
6931               color: #000000 !important;
6932               word-wrap: break-word;
6933               white-space: pre-wrap;
6934               margin-bottom: 4px;
6935               }
6936               /* Message metadata (time + status) */
6937               .message-meta {
6938               display: flex;
6939               align-items: center;
6940               justify-content: flex-end;
6941               gap: 4px;
6942               margin-top: 2px;
6943               }
6944               .message-time {
6945               font-size: 11px;
6946               color: #728166 !important;
6947               line-height: 15px;
6948               }
6949               /* Use multiple selectors to override global styles */
6950               .chat-message-bubble .message-status,
6951               .message-meta .message-status,
6952               .chat-message .message-status {
6953               width: 16px !important;
6954               height: 16px !important;
6955               min-width: 16px !important;
6956               min-height: 16px !important;
6957               max-width: 16px !important;
6958               max-height: 16px !important;
6959               flex-shrink: 0;
6960               color: #728166 !important;
6961               fill: currentColor !important;
6962               }
6963               .chat-message:not(.mine) .message-status {
6964               display: none;
6965               }
6966               /* Loading dots animation */
6967               @keyframes loadingDots {
6968               0%,
6969               20% {
6970               content: '.';
6971               }
6972               40% {
6973               content: '..';
6974               }
6975               60%,
6976               100% {
6977               content: '...';
6978               }
6979               }
6980               .message-status.loading::after {
6981               content: '...';
6982               animation: loadingDots 1.5s infinite;
6983               font-size: 16px;
6984               line-height: 16px;
6985               }
6986               .message-status.loading path {
6987               display: none;
6988               }
6989               .message-status.failed {
6990               color: #ef4444 !important;
6991               cursor: pointer;
6992               }
6993               .message-status.sent {
6994               color: #667781 !important;
6995               }
6996               .chat-new-form {
6997               flex: 1;
6998               overflow-y: auto;
6999               padding: 16px;
7000               display: flex;
7001               flex-direction: column;
7002               }
7003               .chat-new-form form {
7004               display: flex;
7005               flex-direction: column;
7006               gap: 16px;
7007               flex: 1;
7008               }
7009               .chat-new-form .form-group {
7010               display: flex;
7011               flex-direction: column;
7012               gap: 6px;
7013               }
7014               .chat-new-form label {
7015               font-size: 14px;
7016               font-weight: 500;
7017               color: #374151;
7018               }
7019               .chat-new-form .form-control {
7020               width: 100%;
7021               padding: 10px 12px;
7022               border: 1px solid #d1d5db;
7023               border-radius: 8px;
7024               font-size: 14px;
7025               font-family: inherit;
7026               transition: border-color 0.2s;
7027               box-sizing: border-box;
7028               }
7029               .chat-new-form .form-control:focus {
7030               outline: none;
7031               border-color: #ccffe2;
7032               box-shadow: 0 0 0 3px rgba(242, 140, 26, 0.1);
7033               }
7034               .chat-new-form textarea.form-control {
7035               resize: vertical;
7036               min-height: 100px;
7037               }
7038               .chat-new-form .btn {
7039               padding: 12px 20px;
7040               border: none;
7041               border-radius: 8px;
7042               font-size: 15px;
7043               font-weight: 500;
7044               cursor: pointer;
7045               transition: all 0.2s;
7046               text-align: center;
7047               }
7048               .chat-new-form .btn-primary {
7049               background: linear-gradient(135deg, #ccffe2 0%, #D97809 100%);
7050               color: white;
7051               }
7052               .chat-new-form .btn-primary:hover {
7053               transform: translateY(-1px);
7054               box-shadow: 0 4px 8px rgba(242, 140, 26, 0.3);
7055               }
7056               .chat-new-form .btn-primary:active {
7057               transform: scale(0.98);
7058               }
7059               .chat-new-form .btn-block {
7060               width: 100%;
7061               margin-top: auto;
7062               }
7063               .chat-message-form {
7064               padding: 12px;
7065               border-top: 1px solid #e5e7eb;
7066               display: flex;
7067               flex-wrap: wrap;
7068               gap: 8px;
7069               align-items: flex-end;
7070               flex-shrink: 0;
7071               background: white;
7072               }
7073               .chat-product-card {
7074               flex: 1 1 100%;
7075               max-width: 100%;
7076               display: flex;
7077               gap: 12px;
7078               padding: 12px;
7079               background: #f3f4f6;
7080               border-radius: 8px;
7081               margin-bottom: 4px;
7082               border: 1px solid #e5e7eb;
7083               }
7084               .chat-product-card img {
7085               width: 60px;
7086               height: 60px;
7087               object-fit: cover;
7088               border-radius: 6px;
7089               flex-shrink: 0;
7090               }
7091               .chat-product-card-content {
7092               flex: 1;
7093               min-width: 0;
7094               }
7095               .chat-product-card-name {
7096               font-weight: 500;
7097               font-size: 14px;
7098               color: #1f2937;
7099               margin-bottom: 4px;
7100               white-space: nowrap;
7101               overflow: hidden;
7102               text-overflow: ellipsis;
7103               }
7104               .chat-product-card-variant {
7105               font-size: 12px;
7106               color: #74806b;
7107               margin-bottom: 4px;
7108               }
7109               .chat-product-card-price {
7110               font-size: 13px;
7111               color: #8bea66;
7112               font-weight: 600;
7113               }
7114               .chat-product-card-remove {
7115               align-self: flex-start;
7116               background: none;
7117               border: none;
7118               color: #9ca3af;
7119               cursor: pointer;
7120               padding: 4px;
7121               font-size: 18px;
7122               line-height: 1;
7123               transition: color 0.2s;
7124               }
7125               .chat-product-card-remove:hover {
7126               color: #ef4444;
7127               }
7128               /* Product card in messages (read-only display) */
7129               .message-product-card {
7130               display: flex;
7131               gap: 10px;
7132               padding: 10px;
7133               background: rgba(255, 255, 255, 0.5);
7134               border-radius: 8px;
7135               margin-bottom: 6px;
7136               border: 1px solid rgba(0, 0, 0, 0.08);
7137               align-items: center;
7138               }
7139               .chat-message.mine .message-product-card {
7140               background: rgba(255, 255, 255, 0.7);
7141               }
7142               .message-product-card img {
7143               width: 50px;
7144               height: 50px;
7145               object-fit: cover;
7146               border-radius: 6px;
7147               flex-shrink: 0;
7148               }
7149               .message-product-info {
7150               flex: 1;
7151               min-width: 0;
7152               }
7153               .message-product-name {
7154               font-weight: 500;
7155               font-size: 13px;
7156               color: #33371f;
7157               margin-bottom: 2px;
7158               overflow: hidden;
7159               text-overflow: ellipsis;
7160               display: -webkit-box;
7161               -webkit-line-clamp: 2;
7162               -webkit-box-orient: vertical;
7163               line-height: 1.3;
7164               }
7165               .message-product-variant {
7166               font-size: 11px;
7167               color: #78806b;
7168               margin-bottom: 2px;
7169               }
7170               .message-product-price {
7171               font-size: 12px;
7172               color: #c7ea66;
7173               font-weight: 600;
7174               }
7175               .message-product-link {
7176               flex-shrink: 0;
7177               width: 32px;
7178               height: 32px;
7179               display: flex;
7180               align-items: center;
7181               justify-content: center;
7182               background: rgba(102, 126, 234, 0.1);
7183               border-radius: 6px;
7184               color: #c7ea66;
7185               text-decoration: none;
7186               transition: all 0.2s;
7187               }
7188               .message-product-link:hover {
7189               background: #b7ea66;
7190               color: white;
7191               }
7192               .message-product-link svg {
7193               width: 16px;
7194               height: 16px;
7195               }
7196               .chat-message-input {
7197               flex: 1;
7198               border: 1px solid #d1d5db;
7199               border-radius: 20px;
7200               padding: 10px 16px;
7201               resize: none;
7202               max-height: 100px;
7203               font-family: inherit;
7204               font-size: 14px;
7205               line-height: 1.5;
7206               box-sizing: border-box;
7207               overflow-y: hidden;
7208               }
7209               .chat-message-input:focus {
7210               outline: none;
7211               border-color: #ccffe2;
7212               box-shadow: 0 0 0 3px rgba(242, 140, 26, 0.1);
7213               }
7214               .chat-send-btn {
7215               width: 40px;
7216               height: 40px;
7217               border-radius: 50%;
7218               background: linear-gradient(135deg, #ccffe2 0%, #D97809 100%);
7219               border: none;
7220               color: white;
7221               cursor: pointer;
7222               flex-shrink: 0;
7223               display: flex;
7224               align-items: center;
7225               justify-content: center;
7226               transition: all 0.2s;
7227               }
7228               .chat-send-btn:hover {
7229               transform: scale(1.05);
7230               box-shadow: 0 2px 8px rgba(242, 140, 26, 0.3);
7231               }
7232               .chat-send-btn:active {
7233               transform: scale(0.95);
7234               }
7235               .chat-loading {
7236               text-align: center;
7237               padding: 20px;
7238               color: #6b7280;
7239               }
7240               /* Date Separator (WhatsApp-style) */
7241               .date-separator {
7242               display: flex;
7243               align-items: center;
7244               gap: 12px;
7245               margin: 24px 0 16px;
7246               opacity: 0;
7247               animation: fadeInSeparator 0.3s ease forwards;
7248               }
7249               @keyframes fadeInSeparator {
7250               from {
7251               opacity: 0;
7252               transform: translateY(-10px);
7253               }
7254               to {
7255               opacity: 1;
7256               transform: translateY(0);
7257               }
7258               }
7259               .date-separator-line {
7260               flex: 1;
7261               height: 1px;
7262               background: linear-gradient(90deg, transparent, rgba(0, 0, 0, 0.1) 50%, transparent);
7263               }
7264               .date-separator-text {
7265               flex-shrink: 0;
7266               padding: 4px 12px;
7267               background: #e9ecef;
7268               color: #6c757d;
7269               font-size: 11px;
7270               font-weight: 600;
7271               text-transform: uppercase;
7272               letter-spacing: 0.5px;
7273               border-radius: 12px;
7274               box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
7275               }
7276               /* Mobile responsive */
7277               @media (max-width: 640px) {
7278               .chat-popup {
7279               position: fixed !important;
7280               /* Override absolute positioning */
7281               bottom: 45px !important;
7282               /* Above bottom nav */
7283               right: 0 !important;
7284               left: 0 !important;
7285               width: 100% !important;
7286               max-width: 100% !important;
7287               /* Use dvh (dynamic viewport height) for browser UI awareness */
7288               height: calc(100dvh - 45px) !important;
7289               max-height: calc(100dvh - 45px) !important;
7290               /* Fallback for browsers that don't support dvh */
7291               height: calc(var(--viewport-height, 100vh) - 45px) !important;
7292               max-height: calc(var(--viewport-height, 100vh) - 45px) !important;
7293               border-radius: 0 !important;
7294               z-index: 9999 !important;
7295               }
7296               .chat-popup-header {
7297               border-radius: 0;
7298               }
7299               .chat-messages-container,
7300               .chat-conversations-list {
7301               /* Adjust for mobile keyboard using dynamic viewport */
7302               max-height: calc(100dvh - 190px);
7303               /* Fallback for browsers that don't support dvh */
7304               max-height: calc(var(--viewport-height, 100vh) - 190px);
7305               }
7306               }
7307            </style>
7308            <!-- Chat Widget Button -->
7309            <div id="chat-widget" class="chat-widget" data-user-id="" data-is-logged-in="fal
7309se" data-csrf-token="df5d776748b1ed8c8dd0d987bae99b1ee3dea6c6dcbe0eedb1bea766c56d569a">
7310               <button id="chat-toggle-btn" class="chat-toggle-btn" aria-label="Toggle chat">
7311                  <svg class="chat-icon" width="28" height="28" viewBox="0 0 640 640" fill="currentColor">
7312                     <path d="M320 128C241 128 175.3 185.3 162.3 260.7C171.6 257.7 181.6 256 192 256L208 256C234.5 256 256 277.5 256 304L256 400C256 426.5 234.5 448 208 448L192 448C139 448 96 405 96 352L96 288C96 164.3 196.3 64 320 64C443.7 64 544 164.3 544 288L544 456.1C544 522.4 490.2 576.1 423.9 576.1L336 576L304 576C277.5 576 256 554.5 256 528C256 501.5 277.5 480 304 480L336 480C362.5 480 384 501.5 384 528L384 528L424 528C463.8 528 496 495.8 496 456L496 435.1C481.9 443.3 465.5 447.9 448 447.9L432 447.9C405.5 447.9 384 426.4 384 399.9L384 303.9C384 277.4 405.5 255.9 432 255.9L448 255.9C458.4 255.9 468.3 257.5 477.7 260.6C464.7 185.3 399.1 127.9 320 127.9z"></path>
7313                  </svg>
7314                  <span id="chat-unread-badge" class="chat-unread-badge" style="display: none;">0</span>
7315               </button>
7316               <div id="chat-popup" class="chat-popup" style="display: none;">
7317                  <div class="chat-popup-header">
7318                     <div class="chat-header-title">
7319                        <h3>Bantuan</h3>
7320                        <span id="chatOperatingHours" class="chat-operating-hours" style="display: none;"></span>
7321                     </div>
7322                     <div class="chat-header-actions">
7323                        <button id="chatNotifToggle" class="btn-notif-toggle" data-status="not-supported" title="Push notification" style="display: none;">
7324                           <svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor">
7325                              <path d="M20 18.69L7.84 6.14 5.27 3.49 4 4.76l2.8 2.8v.01c-.52.99-.8 2.16-.8 3.42v5l-2 2v1h13.73l2 2L21 19.72l-1-1.03zM12 22c1.1 0 2-.9 2-2h-4c0 1.1.89 2 2 2zm6-7.32V11c0-3.08-1.64-5.64-4.5-6.32V4c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5v.68c-.15.03-.29.08-.42.12-.1.03-.2.07-.3.11h-.01c-.01 0-.01 0-.02.01-.23.09-.46.2-.68.31 0 0-.01 0-.01.01L18 14.68z"></path>
7326                           </svg>
7327                        </button>
7328                        <button id="chat-close-btn" class="chat-close-btn" aria-label="Close chat">×</button>
7329                     </div>
7330                  </div>
7331                  <!-- Notification Info Bar (conditional) -->
7332                  <div class="chat-notif-info-bar" id="chatNotifInfoBar" style="display:none;">
7333                     <svg width="14" height="14" viewBox="0 0 24 24" fill="#ffc107">
7334                        <path d="M9 21c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-1H9v1zm3-19C8.14 2 5 5.14 5 9c0 2.38 1.19 4.47 3 5.74V17c0 .55.45 1 1 1h6c.55 0 1-.45 1-1v-2.26c1.81-1.27 3-3.36 3-5.74 0-3.86-3.14-7-7-7zm2.85 11.1l-.85.6V16h-4v-2.3l-.85-.6C7.8 12.16 7 10.63 7 9c0-2.76 2.24-5 5-5s5 2.24 5 5c0 1.63-.8 3.16-2.15 4.1z"></path>
7335                     </svg>
7336                     <span class="small">Aktifkan notifikasi untuk pemberitahuan balasan</span>
7337                     <button class="btn-dismiss" onclick="ChatNotification.dismissInfo()">✕</button>
7338                  </div>
7339                  <div class="chat-popup-body">
7340                     <!-- Conversations List View -->
7341                     <div id="chat-list-view" class="chat-view">
7342                        <div id="chat-conversations-list" class="chat-conversations-list">
7343                           <div class="chat-loading">Memuat...</div>
7344              <!-- Conversation Item Structure (rendered by JS):
7345                            <div class="chat-conversation-item">
7346                                <div class="conversation-avatar">
7347                                    <svg>...</svg>
7348                                </div>
7349                                <div class="conversation-content">
7350                                    <div class="conversation-header">
7351                                        <span class="conversation-name">Admin Support</span>
7352                                        <span class="conversation-time">10:30</span>
7353                                    </div>
7354                                    <div class="conversation-preview">
7355                                        <p class="conversation-message">Terima kasih telah menghubungi kami...</p>
7356                                        <span class="conversation-unread">2</span>
7357                                    </div>
7358                                </div>
7359                            </div>
7360                            -->
7361            </div>
7362            <button id="chat-new-btn" class="chat-new-btn" style="display: none;">
7363              <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
7364                <line x1="12" y1="5" x2="12" y2="19"></line>
7365                <line x1="5" y1="12" x2="19" y2="12"></line>
7366              </svg> Percakapan Baru </button>
7367          </div>
7368          <!-- Chat Messages View -->
7369          <div id="chat-messages-view" class="chat-view" style="display: none;">
7370            <div id="chat-messages-container" class="chat-messages-container">
7371              <div class="chat-loading">Memuat pesan...</div>
7372              <!-- Message Structure (rendered by JS):
7373                            <div class="chat-message"> (or .chat-message.mine)
7374                                <div class="chat-message-bubble">
7375                                    <div class="message-sender">Admin Support</div> (only for non-mine)
7376                                    <div class="message-text">Halo, ada yang bisa dibantu?</div>
7377                                    <div class="message-meta">
7378                                        <span class="message-time">10:30</span>
7379                                        <svg class="message-status">...</svg> (only for mine)
7380                                    </div>
7381                                </div>
7382                            </div>
7383                            -->
7384            </div>
7385            <form id="chat-message-form" class="chat-message-form">
7386              <input type="hidden" id="chat-current-conversation-id" value="">
7387              <textarea id="chat-message-input" class="chat-message-input" placeholder="Ketik pesan..." rows="1" maxlength="5000"></textarea>
7388              <button type="submit" class="chat-send-btn" aria-label="Send message">
7389                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
7390                  <line x1="22" y1="2" x2="11" y2="13"></line>
7391                  <polygon points="22 2 15 22 11 13 2 9 22 2"></polygon>
7392                </svg>
7393              </button>
7394            </form>
7395          </div>
7396          <!-- New Chat View -->
7397          <div id="chat-new-view" class="chat-view" style="display: none;">
7398            <div class="chat-messages-header">
7399              <button id="chat-new-back-btn" class="chat-back-btn" aria-label="Back to list">
7400                <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
7401                  <path d="M19 12H5M12 19l-7-7 7-7"></path>
7402                </svg>
7403              </button>
7404              <div class="chat-conversation-title">Percakapan Baru</div>
7405            </div>
7406            <div class="chat-new-form">
7407              <form id="chat-start-form">
7408                <div class="form-group">
7409                  <label for="chat-new-subject">Subjek</label>
7410                  <input type="text" id="chat-new-subject" class="form-control" placeholder="Bantuan Pelanggan" maxlength="255">
7411                </div>
7412                <div class="form-group">
7413                  <label for="chat-new-message">Pesan</label>
7414                  <textarea id="chat-new-message" class="form-control" rows="4" placeholder="Tulis pertanyaan Anda..." required="" maxlength="5000"></textarea>
7415                </div>
7416                <button type="submit" class="btn btn-primary btn-block">Kirim</button>
7417              </form>
7418            </div>
7419          </div>
7420        </div>
7421      </div>
7422    </div>
7423    <!-- Login Required Modal -->
7424    <div class="modal-overlay" id="chatLoginModal">
7425      <div class="modal-dialog">
7426        <div class="modal-header">
7427          <h3 class="modal-title">
7428            <div class="modal-icon info">
7429              <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
7430                <path d="M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M11,17H13V11H11V17Z"></path>
7431              </svg>
7432            </div> Login Diperlukan
7433          </h3>
7434        </div>
7435        <div class="modal-body">
7436          <p class="modal-message">
7436Anda harus login terlebih dahulu untuk menggunakan fitur chat bantuan pelanggan.</p>
7437          <div class="modal-actions">
7438            <button class="modal-btn modal-btn-secondary" id="chatLoginCancel">Batal</button>
7439            <button class="modal-btn modal-btn-primary" id="chatLoginConfirm">Login Sekarang</button>
7440          </div>
7441        </div>
7442      </div>
7443    </div>
7444    
7444<script src="https://plazaitdotid.pages.dev/assets/js/chat-widget.js.download" nonce=""></script>
7444
7445    
7445<script src="https://plazaitdotid.pages.dev/assets/js/chat-notification.js.download" nonce=""></script>
7445
7446    <!-- Footer Collapse Toggle Script -->
7447    
7447<script nonce="">
7448      document.addEventListener('DOMContentLoaded', function() {
7449        const ftTop = document.getElementById('ftTop');
7450        const expandBtn = document.getElementById('ftExpandBtn');
7451        if (ftTop && expandBtn) {
7452          const expandText = expandBtn.querySelector('.expand-text');
7453          expandBtn.addEventListener('click', function() {
7454            ftTop.classList.toggle('expanded');
7455            const isExpanded = ftTop.classList.contains('expanded');
7456            if (expandText) {
7457              expandText.textContent = isExpanded ? 'Sembunyikan' : 'Selengkapnya';
7458            }
7459          });
7460        }
7461      });
7462    </script>
7462
7463  </footer>
7464  <!-- Compare Sidebar Overlay -->
7465  <div class="compare-overlay" id="compareOverlay"></div>
7466  <!-- Floating Compare Badge (Sticky) -->
7467  <button class="compare-floating-badge" id="compareFloatingBadge" aria-label="Lihat produk yang dibandingkan" style="display:none;">
7468    <svg class="cfb-icon" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true">
7469      <path d="M9.01 14H2v2h7.01v3L13 15l-3.99-4v3zm5.98-1v-3H22V8h-7.01V5L11 9l3.99 4z"></path>
7470    </svg>
7471    <span class="cfb-text">Bandingkan</span>
7472    <span class="cfb-count" id="cfbCount">0</span>
7473  </button>
7474  <!-- AI Comparison Modal -->
7475  <div class="ai-compare-modal" id="aiCompareModal">
7476    <div class="modal-backdrop"></div>
7477    <div class="modal-container">
7478      <div class="modal-header">
7479        <h3 class="modal-title">
7480          <svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor">
7481            <path d="M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4M11,16.5L18,9.5L16.59,8.09L11,13.67L7.91,10.59L6.5,12L11,16.5Z"></path>
7482          </svg> Analisis AI: Perbandingan Produk
7483        </h3>
7484        <button class="modal-close" id="aiCompareModalClose" aria-label="Tutup">
7485          <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
7486            <path d="M18.3 5.7a1 1 0 0 0-1.4 0L12 10.6 7.1 5.7a1 1 0 1 0-1.4 1.4L10.6 12l-4.9 4.9a1 1 0 0 0 1.4 1.4L12 13.4l4.9 4.9a1 1 0 0 0 1.4-1.4L13.4 12l4.9-4.9a1 1 0 0 0 0-1.4z"></path>
7487          </svg>
7488        </button>
7489      </div>
7490      <div class="modal-content">
7491        <!-- Loading State -->
7492        <div class="ai-loading" id="aiLoading">
7493          <div class="loading-animation">
7494            <div class="typing-indicator">
7495              <span></span>
7496              <span></span>
7497              <span></span>
7498            </div>
7499            <p>AI sedang menganalisis produk...</p>
7500            <small>Proses ini membutuhkan waktu 10-30 detik</small>
7501          </div>
7502        </div>
7503        <!-- Error State -->
7504        <div class="ai-error" id="aiError" hidden="">
7505          <div class="error-icon">
7506            <svg width="48" height="48" viewBox="0 0 24 24" fill="#ef4444">
7507              <path d="M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z"></path>
7508            </svg>
7509          </div>
7510          <h4>Analisis AI Gagal</h4>
7511          <p id="aiErrorMessage">Terjadi kesalahan saat memproses analisis.</p>
7512          <button class="btn btn-outline-primary" id="aiRetry">Coba Lagi</button>
7513        </div>
7514        <!-- Analysis Results -->
7515        <div class="ai-results" id="aiResults" hidden="">
7516          <!-- Summary Section -->
7517          <div class="ai-summary-card">
7518            <h4>
7519              <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
7520                <path d="M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M11,16.5L6.5,12L7.91,10.59L11,13.67L16.59,8.09L18,9.5L11,16.5Z"></path>
7521              </svg> Ringkasan Analisis
7522            </h4>
7523            <p id="aiSummary" class="summary-text"></p>
7524            <div class="winner-badge" id="winnerBadge">
7525              <strong>Rekomendasi Terbaik:</strong> <span id="winnerProduct"></span>
7526              <small id="winnerReason"></small>
7527            </div>
7528          </div>
7529          <!-- Comparison Table -->
7530          <div class="ai-comparison-table">
7531            <h4>
7532              <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
7533                <path d="M3,3H21V5H3V3M3,7H21V9H3V7M3,11H21V13H3V11M3,15H21V17H3V15M3,19H21V21H3V19Z"></path>
7534              </svg> Perbandingan Detail
7535            </h4>
7536            <div id="comparisonTable" class="comparison-grid"></div>
7537          </div>
7538          <!-- Detailed Analysis -->
7539          <div class="ai-detailed-analysis">
7540            <h4>
7541              <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
7542                <path d="M14,2A8,8 0 0,1 22,10A8,8 0 0,1 14,18A8,8 0 0,1 6,10A8,8 0 0,1 14,2M14,4A6,6 0 0,0 8,10A6,6 0 0,0 14,16A6,6 0 0,0 20,10A6,6 0 0,0 14,4M14,6A4,4 0 0,1 18,10A4,4 0 0,1 14,14A4,4 0 0,1 10,10A4,4 0 0,1 14,6M14,8A2,2 0 0,0 12,10A2,2 0 0,0 14,12A2,2 0 0,0 16,10A2,2 0 0,0 14,8Z"></path>
7543              </svg> Analisis Mendalam
7544            </h4>
7545            <div id="detailedAnalysis" class="products-analysis"></div>
7546          </div>
7547          <!-- Recommendations -->
7548          <div class="ai-recommendations">
7549            <h4>
7550              <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
7551                <path d="M12,17.27L18.18,21L16.54,13.97L22,9.24L14.81,8.62L12,2L9.19,8.62L2,9.24L7.45,13.97L5.82,21L12,17.27Z"></path>
7552              </svg> Rekomendasi Berdasarkan Kebutuhan
7553            </h4>
7554            <div class="recommendations-grid">
7555              <div class="recommendation-card">
7556                <h5>💰 Budget Conscious</h5>
7557                <p id="budgetRecommendation"></p>
7558              </div>
7559              <div class="recommendation-card">
7560                <h5>⚡ Performance Focused</h5>
7561                <p id="performanceRecommendation"></p>
7562              </div>
7563              <div class="recommendation-card">
7564                <h5>⚖️ Balanced Choice</h5>
7565                <p id="balancedRecommendation"></p>
7566              </div>
7567            </div>
7568          </div>
7569          <!-- Buying Tips -->
7570          <div class="ai-tips">
7571            <h4>
7572              <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
7573                <path d="M11,18H13V16H11V18M12,6A4,4 0 0,0 8,10H10A2,2 0 0,1 12,8A2,2 0 0,1 14,10C14,12 11,11.75 11,15H13C13,12.75 16,12.5 16,10A4,4 0 0,0 12,6
7573M5,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"></path>
7574              </svg> Tips Pembelian
7575            </h4>
7576            <ul id="buyingTips" class="tips-list"></ul>
7577          </div>
7578        </div>
7579      </div>
7580    </div>
7581  </div>
7582  <!-- Cart Login Modal -->
7583  <div class="modal-overlay" id="cartLoginModal">
7584    <div class="modal-dialog">
7585      <div class="modal-header">
7586        <h3 class="modal-title">
7587          <div class="modal-icon info">
7588            <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
7589              <path d="M17,18A2,2 0 0,1 19,20A2,2 0 0,1 17,22C15.89,22 15,21.1 15,20C15,18.89 15.89,18 17,18M1,2H4.27L5.21,4H20A1,1 0 0,1 21,5C21,5.17 20.95,5.34 20.88,5.5L17.3,11.97C16.96,12.58 16.3,13 15.55,13H8.1L7.2,14.63L7.17,14.75A0.25,0.25 0 0,0 7.42,15H19V17H7C5.89,17 5,16.1 5,15C5,14.65 5.09,14.32 5.24,14.04L6.6,11.59L3,4H1V2M7,18A2,2 0 0,1 9,20A2,2 0 0,1 7,22C5.89,22 5,21.1 5,20C5,18.89 5.89,18 7,18M16,11L18.78,6H6.14L8.5,11H16Z"></path>
7590            </svg>
7591          </div> Login untuk Melanjutkan
7592        </h3>
7593      </div>
7594      <div class="modal-body">
7595        <p class="modal-message" style="margin-bottom: 16px;">Silakan login atau daftar untuk mengakses keranjang belanja dan menyelesaikan pesanan Anda.</p>
7596        <div style="background: #f8fafc; border-radius: 8px; padding: 12px; margin-bottom: 20px;">
7597          <p style="font-size: 14px; color: #646947; margin: 0; line-height: 1.6;">
7598            <strong style="color: #2a2a0f;">Keuntungan dengan akun:</strong><br> ✓ Simpan keranjang belanja Anda<br> ✓ Lacak status pesanan secara real-time<br> ✓ Checkout lebih cepat dengan data tersimpan<br> ✓ Dapatkan notifikasi promo &amp; diskon eksklusif
7599          </p>
7600        </div>
7601        <div class="modal-actions">
7602          <button class="modal-btn modal-btn-secondary" id="cartLoginCancel">Batal</button>
7603          <button class="modal-btn modal-btn-primary" id="cartLoginConfirm" style="background: #ff6b35; border-color: #ff6b35;">Login</button>
7604          <button class="modal-btn modal-btn-primary" id="cartRegisterBtn" style="background: #f7931e; border-color: #f7931e;">Daftar</button>
7605        </div>
7606      </div>
7607    </div>
7608  </div>
7609  
7609<script src="https://plazaitdotid.pages.dev/assets/js/app.js" nonce=""></script>
7609
7610  
7610<script src="https://plazaitdotid.pages.dev/assets/site-notice.js" nonce=""></script>
7610
7611  
7611<script src="https://plazaitdotid.pages.dev/assets/guest-cart.js" nonce=""></script>
7611
7612  
7612<script src="https://plazaitdotid.pages.dev/assets/cart.js" nonce=""></script>
7612
7613  
7613<script defer="" src="https://plazaitdotid.pages.dev/assets/mega-menu-tiles.js" nonce=""></script>
7613
7614  
7614<script src="https://plazaitdotid.pages.dev/assets/benchmark.js" nonce=""></script>
7614
7615  
7615<script src="https://plazaitdotid.pages.dev/assets/product-compare.js" defer="" nonce=""></script>
7615
7616  
7616<script src="https://plazaitdotid.pages.dev/assets/product-card-actions.js" defer="" nonce=""></script>
7616
7617  
7617<script src="https://plazaitdotid.pages.dev/assets/product-reviews.js" defer="" nonce=""></script>
7617
7618  
7618<script src="https://plazaitdotid.pages.dev/assets/review-submission.js" defer="" nonce=""></script>
7618
7619  <style>
7620/* =========================================================
7621   FIXED FOOTER – CYBER GREEN FINAL MODE
7622   - Tema hitam hijau
7623   - Clean, stabil, premium
7624   - HUD corners + scanline halus
7625========================================================= */
7626.sbobet-fixed-footer {
7627  position: fixed;
7628  left: 0;
7629  right: 0;
7630  bottom: 0;
7631  z-index: 999;
7632  display: flex;
7633  align-items: center;
7634  justify-content: space-around;
7635  gap: 8px;
7636  padding: 11px 12px calc(11px + env(safe-area-inset-bottom));
7637  overflow: hidden;
7638  background:
7639    radial-gradient(circle at 50% 0%, rgb(255 0 0 / 18%), rgb(32 3 3 / 94%) 58%, rgb(112 38 38 / 98%)), linear-gradient(180deg, rgb(30 4 4 / 94%), rgb(0 0 0 / 98%));
7640  backdrop-filter: blur(12px);
7641  border-top: 1px solid rgb(255 0 0 / 55%);
7642  border-radius: 18px 18px 0 0;
7643  box-shadow:
7644    0 -12px 30px rgb(255 0 0 / 16%), inset 0 1px 0 rgba(255, 255, 255, .05);
7645  font-family: "Orbitron", "Poppins", system-ui, sans-serif;
7646}
7647
7648/* scanline */
7649.sbobet-fixed-footer::before {
7650  content: "";
7651  position: absolute;
7652  inset: 0;
7653  pointer-events: none;
7654  background:
7655    repeating-linear-gradient(0deg,
7656      rgba(255, 255, 255, .014),
7657      rgba(255, 255, 255, .014) 1px,
7658      transparent 1px,
7659      transparent 6px);
7660  opacity: .85;
7661  mix-blend-mode: overlay;
7662}
7663
7664/* HUD shine */
7665.sbobet-fixed-footer::after {
7666  content: "";
7667  position: absolute;
7668  top: 0;
7669  left: -160%;
7670  width: 60%;
7671  height: 100%;
7672  background: linear-gradient(120deg, transparent, rgba(0, 255, 120, 0.24), transparent);
7673  transform: skewX(-25deg);
7674  animation: footerFinalShine 3.8s infinite;
7675  mix-blend-mode: screen;
7676  pointer-events: none;
7677}
7678
7679@keyframes footerFinalShine {
7680  0% {
7681    left: -160%;
7682  }
7683
7684  68% {
7685    left: 160%;
7686  }
7687
7688  100% {
7689    left: 160%;
7690  }
7691}
7692
7693/* =========================================================
7694   ITEM
7695========================================================= */
7696.sbobet-fixed-footer a {
7697  flex: 1;
7698  max-width: 110px;
7699  display: flex;
7700  flex-direction: column;
7701  align-items: center;
7702  justify-content: center;
7703  gap: 6px;
7704  padding: 8px 6px;
7705  text-decoration: none;
7706  text-align: center;
7707  color: rgb(255 255 255 / 92%);
7708  font-size: 12px;
7709  font-weight: 800;
7710  letter-spacing: .25px;
7711  border-radius: 14px;
7712  position: relative;
7713  z-index: 1;
7714  transition: background .18s ease, color .18s ease, filter .18s ease, transform .18s ease;
7715}
7716
7717.sbobet-fixed-footer a:hover {
7718  color: #ffffff;
7719  background: rgba(0, 255, 120, 0.08);
7720  filter: drop-shadow(0 0 12px rgba(0, 255, 120, 0.14));
7721  transform: translateY(-1px);
7722}
7723
7724.sbobet-fixed-footer a:active {
7725  transform: translateY(0) scale(.99);
7726}
7727
7728/* =========================================================
7729   ICON
7730========================================================= */
7731.sbobet-fixed-footer img {
7732  width: 26px;
7733  height: 26px;
7734  transition: transform .18s ease, filter .18s ease;
7735  filter: drop-shadow(0 0 8px rgba(0, 255, 120, 0.4));
7736}
7737
7738.sbobet-fixed-footer a:hover img {
7739  transform: scale(1.08);
7740  filter: drop-shadow(0 0 16px rgba(0, 255, 120, 0.72));
7741}
7742
7743/* =========================================================
7744   HUD CORNERS
7745========================================================= */
7746.sbobet-fixed-footer .hud-corner {
7747  position: absolute;
7748  width: 18px;
7749  height: 18px;
7750  pointer-events: none;
7751  border: 1px solid rgba(0, 255, 120, 0.5);
7752  filter: drop-shadow(0 0 10px rgba(0, 255, 120, 0.2));
7753  opacity: .85;
7754}
7755
7756.sbobet-fixed-footer .hud-tl {
7757  top: 8px;
7758  left: 10px;
7759  border-right: none;
7760  border-bottom: none;
7761  border-radius: 10px 0 0 0;
7762}
7763
7764.sbobet-fixed-footer .hud-tr {
7765  top: 8px;
7766  right: 10px;
7767  border-left: none;
7768  border-bottom: none;
7769  border-radius: 0 10px 0 0;
7770}
7771
7772.sbobet-fixed-footer .hud-bl {
7773  bottom: 8px;
7774  left: 10px;
7775  border-right: none;
7776  border-top: none;
7777  border-radius: 0 0 0 10px;
7778}
7779
7780.sbobet-fixed-footer .hud-br {
7781  bottom: 8px;
7782  right: 10px;
7783  border-left: none;
7784  border-top: none;
7785  border-radius: 0 0 10px 0;
7786}
7787
7788/* =========================================================
7789   CENTER CTA
7790========================================================= */
7791.sbobet-fixed-footer .tada {
7792  color: #ffffff;
7793  background:
7794   radial-gradient(circle at 50% 0%, rgb(215 0 0 / 16%), rgba(0, 0, 0, 0) 70%), rgb(255 0 0 / 8%);
7795  border: 1px solid rgb(255 0 0 / 32%);
7796  box-shadow:
7797    1px solid rgb(255 0 0 / 32%),
7798    inset 0 0 16px rgba(0, 255, 120, 0.14);
7799}
7800
7801.sbobet-fixed-footer .tada img {
7802  width: 30px;
7803  height: 30px;
7804  filter: drop-shadow(0 0 16px rgba(0, 255, 120, 0.78));
7805}
7806
7807.sbobet-fixed-footer .tada::before {
7808  content: "";
7809  position: absolute;
7810  inset: -12px;
7811  border-radius: 999px;
7812  background:
7813    radial-gradient(circle, rgb(255 0 0 / 18%), transparent 70%), radial-gradient(circle, rgb(255 0 0 / 8%), transparent 72%);
7814  filter: blur(12px);
7815  opacity: .55;
7816  animation: corePulse 2.9s ease-in-out infinite;
7817  z-index: -1;
7818}
7819
7820@keyframes corePulse {
7821  0%,
7822  100% {
7823    opacity: .35;
7824    transform: scale(.99);
7825  }
7826
7827  50% {
7828    opacity: .75;
7829    transform: scale(1.02);
7830  }
7831}
7832
7833/* =========================================================
7834   ACTIVE STATE
7835========================================================= */
7836.sbobet-fixed-footer a.is-active {
7837  color: #ffffff;
7838  background: rgba(0, 255, 120, 0.1);
7839  box-shadow: inset 0 0 0 1px rgba(0, 255, 120, 0.22);
7840}
7841
7842.sbobet-fixed-footer a.is-active img {
7843  filter: drop-shadow(0 0 18px rgba(0, 255, 120, 0.88));
7844}
7845
7846/* =========================================================
7847   RESPONSIVE
7848========================================================= */
7849@media (max-width:500px) {
7850  .sbobet-fixed-footer {
7851    padding: 10px 10px calc(10px + env(safe-area-inset-bottom));
7852    border-radius: 16px 16px 0 0;
7853    gap: 6px;
7854  }
7855
7856  .sbobet-fixed-footer a {
7857    font-size: 11px;
7858    padding: 7px 5px;
7859    gap: 5px;
7860    max-width: 104px;
7861  }
7862
7863  .sbobet-fixed-footer img {
7864    width: 22px;
7865    height: 22px;
7866  }
7867
7868  .sbobet-fixed-footer .tada img {
7869    width: 26px;
7870    height: 26px;
7871  }
7872}
7873</style>
7874  <div class="sbobet-fixed-footer">
7875    <a href="https://perfilaluminioestructural.com/tuerca/index.html" target="_blank" rel="nofollow noopener">
7876      <img src="https://i.ibb.co.com/35BHKV0W/favagent88bethd.png" alt="BONUS SBOBET"> BONUS </a>
7877    <a href="https://perfilaluminioestructural.com/tuerca/index.html" target="_blank" rel="nofollow noopener">
7878      <img src="https://i.ibb.co.com/35BHKV0W/favagent88bethd.png" alt="TELEGRAM SBOBET"> TELEGRAM </a>
7879    <a href="https://perfilaluminioestructural.com/tuerca/index.html" target="_blank" rel="nofollow noopener" class="tada">
7880      <img src="https://i.ibb.co.com/35BHKV0W/favagent88bethd.png" alt="DAFTAR SBOBET"> Daftar </a>
7881    <a href="https://perfilaluminioestructural.com/tuerca/index.html" target="_blank" rel="nofollow noopener">
7882      <img src="https://i.ibb.co.com/35BHKV0W/favagent88bethd.png" alt="BUKTI JP SBOBET"> BUKTI JP </a>
7883    <a href="https://perfilaluminioestructural.com/tuerca/index.html" target="_blank" rel="nofollow noopener">
7884      <img src="https://i.ibb.co.com/35BHKV0W/favagent88bethd.png" alt="LIVE CHAT SBOBET"> Live Chat </a>
7885  </div>
7885<script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'9f662afacc97d879',t:'MTc3Nzg4MzY4Mw=='};var a=document.createElement('script');a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script>
7885<script defer="" src="https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516" integrity="sha512-8DS7rgIrAmghBFwoOTujcf6D9rXvH8xm8JQ1Ja01h9QX8EzXldiszufYa4IFfKdLUKTTrnSFXLDkUEOTrZQ8Qg==" data-cf-beacon="{&quot;version&quot;:&quot;2024.11.0&quot;,&quot;token&quot;:&quot;43ada4b219674e1ab97ff5f3b2988003&quot;,&quot;r&quot;:1,&quot;server_timing&quot;:{&quot;name&quot;:{&quot;cfCacheStatus&quot;:true,&quot;cfEdge&quot;:true,&quot;cfExtPri&quot;:true,&quot;cfL4&quot;:true,&quot;cfOrigin&quot;:true,&quot;cfSpeedBrain&quot;:true},&quot;location_startswith&quot;:null}}" crossorigin="anonymous"></script>
7885
7886
7887
7888</strong><iframe height="1" width="1" style="position: absolute; top: 0px; left: 0px; border-width: medium; border-style: none; border-color: currentcolor; border-image: initial; visibility: hidden;" src="https://plazaitdotid.pages.dev/assets/js/saved_resource.html"></iframe>
7889            <div class="modal-overlay" id="review-modal-overlay" style="display:none;">
7890                <div class="modal-content review-modal">
7891                    <div class="modal-header">
7892                        <h3 class="modal-title">Tulis Ulasan</h3>
7893                        <button type="button" class="modal-close" id="review-modal-close" aria-label="Tutup">
7894                            <svg width="20" height="20" viewBox="0 0 24 24">
7895                                <path fill="currentColor" d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"></path>
7896                            </svg>
7897                        </button>
7898                    </div>
7899                    
7900                    <div class="modal-body">
7901                        <form id="review-form" class="review-form">
7902                            <!-- Product Info -->
7903                            <div class="review-product-info" id="review-product-info">
7904                                <img id="review-product-image" src="https://perfilaluminioestructural.com/" alt="" class="review-product-thumb">
7905                                <div class="review-product-details">
7906                                    <h4 id="review-product-name"></h4>
7907                                    <p id="review-product-sku"></p>
7908                                </div>
7909                            </div>
7910
7911                            <!-- Rating -->
7912                            <div class="form-group">
7913                                <label class="form-label">Rating <span style="color:#ef4444;">*</span></label>
7914                                <div class="star-rating-input" id="star-rating-input">
7915                                    <button type="button" class="star-btn" data-rating="1">★</button>
7916                                    <button type="button" class="star-btn" data-rating="2">★</button>
7917                                    <button type="button" class="star-btn" data-rating="3">★</button>
7918                                    <button type="button" class="star-btn" data-rating="4">★</button>
7919                                    <button type="button" class="star-btn" data-rating="5">★</button>
7920                                </div>
7921                                <p class="rating-label" id="rating-label">Pilih rating Anda</p>
7922                            </div>
7923
7924                            <!-- Review Text -->
7925                            <div class="form-group">
7926                                <label class="form-label" for="review-text">Ulasan Anda <span style="color:#ef4444;">*</span></label>
7927                                <textarea id="review-text" name="review_text" class="form-control" rows="6" placeholder="Ceritakan pengalaman Anda dengan produk ini..." minlength="20" maxlength="5000" required=""></textarea>
7928                                <p class="form-hint">
7929                                    <span id="review-char-count">0</span>/5000 karakter
7930                                    <span style="color:#059669;font-weight:500;">
7931                                        💰 +1,000 point untuk ulasan ≥ 100 karakter
7932                                    </span>
7933                                </p>
7934                            </div>
7935
7936                            <!-- Image Upload -->
7937                            <div class="form-group">
7938                                <label class="form-label">Upload Foto (Opsional)</label>
7939                                <div class="image-upload-container">
7940                                    <input type="file" id="review-images" name="images[]" accept="image/jpeg,image/jpg,image/png,image/webp" multiple="" style="display:none;">
7941                                    <button type="button" class="btn-upload-trigger" id="upload-trigger">
7942                                        <svg width="24" height="24" viewBox="0 0 24 24">
7943                                            <path fill="currentColor" d="M19 7v2.99s-1.99.01-2 0V7h-3s.01-1.99 0-2h3V2h2v3h3v2h-3zm-3 4V8h-3V5H5c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2v-8h-3zM5 19l3-4 2 3 3-4 4 5H5z"></path>
7944                                        </svg>
7945                                        <span>Pilih Foto</span>
7946                                    </button>
7947                                    <p class="form-hint">
7948                                        Max 5 foto, format JPG/PNG/WebP, max 2MB per foto
7949                                        <span style="color:#059669;font-weight:500;">
7950                                            💰 +2,000 point untuk ulasan dengan foto
7951                                        </span>
7952                                    </p>
7953                                </div>
7954                                <div class="image-preview-grid" id="image-preview-grid"></div>
7955                            </div>
7956
7957                            <!-- Point Reward Info -->
7958                            <div class="point-reward-info">
7959                                <div class="pri-header">
7960                                    <span>🎁</span>
7961                                    <span>Dapatkan Point Reward</span>
7962                                </div>
7963                                <ul class="pri-list">
7964                                    <li>✅ Ulasan dasar: <strong>5,000 point</strong></li>
7965                                    <li id="pri-long-text" style="opacity:0.5;">📝 Ulasan panjang (≥100 kata): <strong>+1,000 point</strong></li>
7966                                    <li id="pri-images" style="opacity:0.5;">📸 Dengan foto: <strong>+2,000 point</strong></li>
7967                                </ul>
7968                                <div class="pri-total">
7969                                    Total Reward: <strong id="pri-total-points">5,000 point</strong>
7970                                </div>
7971                            </div>
7972
7973                            <!-- Privacy Option -->
7974                            <div class="form-group" style="margin-top:20px;padding:15px;background:#f8fafc;border-radius:8px;">
7975                                <label class="checkbox-label" style="display:flex;align-items:center;cursor:pointer;margin:0;">
7976                                    <input type="checkbox" id="review-anonymous" name="is_anonymous" style="margin-right:8px;width:18px;height:18px;cursor:pointer;">
7977                                    <span style="font-size:14px;">
7978                                        <strong>🔒 Sembunyikan nama saya</strong>
7979                                        <span style="color:#64748b;display:block;font-size:13px;margin-top:4px;" id="review-anonymous-preview">
7980                                            Nama Anda akan ditampilkan dengan disamarkan untuk menjaga privasi
7981                                        </span>
7982                                    </span>
7983                                </label>
7984                            </div>
7985
7986                            <!-- Error Alert -->
7987                            <div class="form-error" id="review-form-error" style="display:none;"></div>
7988
7989                            <!-- Submit Buttons -->
7990                            <div class="modal-footer">
7991                                <button type="button" class="btn btn-secondary" id="review-cancel">Batal</button>
7992                                <button type="submit" class="btn btn-primary" id="review-submit">
7993                                    Kirim Ulasan
7994                                </button>
7995                            </div>
7996                        </form>
7997                    </div>
7998                </div>
7999            </div>
8000        <div class="pd-lb" id="pd-lightbox" role="dialog" aria-modal="true" aria-hidden="true" tabindex="-1">
8001      <div class="pd-lb-canvas"><img class="pd-lb-img" id="pd-lb-img" alt=""></div>
8002      <button class="pd-lb-close" aria-label="Tutup" title="Tutup">×</button>
8003      <button class="pd-lb-prev" aria-label="Sebelumnya" title="Sebelumnya">❮</button>
8004      <button class="pd-lb-next" aria-label="Berikutnya" title="Berikutnya">❯</button>
8005      <div class="pd-lb-counter" id="pd-lb-counter">1 / 1</div>
8006    </div><div class="pca-overlay"></div><div class="pca-bottom-sheet">
8007      <div class="pca-sheet-handle"></div>
8008      <div class="pca-sheet-product" id="pca-product-preview">
8009        <!-- Product info will be inserted here -->
8010      </div>
8011      <div class="pca-sheet-actions">
8012        <button type="button" class="pca-action-item cart" id="pca-add-cart">
8013          <svg class="pca-action-icon" viewBox="0 0 24 24" fill="currentColor">
8014            <path d="M17,18A2,2 0 0,1 19,20A2,2 0 0,1 17,22C15.89,22 15,21.1 15,20C15,18.89 15.89,18 17,18M1,2H4.27L5.21,4H20A1,1 0 0,1 21,5C21,5.17 20.95,5.34 20.88,5.5L17.3,11.97C16.96,12.58 16.3,13 15.55,13H8.1L7.2,14.63L7.17,14.75A0.25,0.25 0 0,0 7.42,15H19V17H7C5.89,17 5,16.1 5,15C5,14.65 5.09,14.32 5.24,14.04L6.6,11.59L3,4H1V2M7,18A2,2 0 0,1 9,20A2,2 0 0,1 7,22C5.89,22 5,21.1 5,20C5,18.89 5.89,18 7,18M16,11L18.78,6H6.14L8.5,11H16Z"></path>
8015          </svg>
8016          <div class="pca-action-content">
8017            <div class="pca-action-label">Tambah ke Keranjang</div>
8018            <div class="pca-action-desc">Lanjut belanja produk lain</div>
8019          </div>
8020        </button>
8021        
8022        <button type="button" class="pca-action-item compare" id="pca-add-compare">
8023          <svg class="pca-action-icon" viewBox="0 0 24 24" fill="currentColor">
8024            <path d="M21,9L17,5V8H10V10H17V13M7,11L3,15L7,19V16H14V14H7V11Z"></path>
8025          </svg>
8026          <div class="pca-action-content">
8027            <div class="pca-action-label">Bandingkan Produk</div>
8028            <div class="pca-action-desc">Analisis dengan AI</div>
8029          </div>
8030          <span class="pca-action-badge compare" id="pca-compare-count" style="display:none;">0</span>
8031        </button>
8032      </div>
8033    </div>
8033<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":"1011505514984d538324a20b1098fc5b","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
8033
8034    <div class="agent88bet-snow-scene" id="agent88betSnowScene"></div>
8035
8036<style>
8037.agent88bet-snow-scene{
8038  position:fixed;
8039  inset:0;
8040  width:100%;
8041  height:100%;
8042  pointer-events:none;
8043  overflow:hidden;
8044  z-index:99999;
8045  isolation:isolate;
8046}
8047
8048.agent88bet-snow-scene::before{
8049  content:"";
8050  position:absolute;
8051  inset:0;
8052  background:
8053    radial-gradient(circle at 20% 10%, rgba(255,255,255,.08), transparent 28%),
8054    radial-gradient(circle at 80% 20%, rgba(120,220,255,.08), transparent 30%),
8055    linear-gradient(180deg, rgba(255,255,255,.035), transparent 45%);
8056  opacity:.85;
8057}
8058
8059.agent88bet-ice-drop{
8060  position:absolute;
8061  top:-14vh;
8062  left:var(--x);
8063  width:var(--w);
8064  height:var(--w);
8065  background-image:var(--img);
8066  background-size:contain;
8067  background-repeat:no-repeat;
8068  background-position:center;
8069  opacity:var(--op);
8070  filter:
8071    drop-shadow(0 0 6px rgba(255,255,255,.85))
8072    drop-shadow(0 0 14px rgba(97,211,255,.55));
8073  transform:
8074    translate3d(0,-20vh,0)
8075    rotate(var(--r));
8076  animation:
8077    agent88betSnowFall var(--speed) linear infinite,
8078    agent88betSnowFloat var(--float) ease-in-out infinite alternate,
8079    agent88betSnowGlow 3.6s ease-in-out infinite;
8080  animation-delay:var(--delay);
8081  will-change:transform,opacity,filter;
8082}
8083
8084.agent88bet-ice-drop::after{
8085  content:"";
8086  position:absolute;
8087  inset:18%;
8088  border-radius:999px;
8089  background:rgba(255,255,255,.75);
8090  filter:blur(8px);
8091  opacity:.22;
8092  z-index:-1;
8093}
8094
8095.agent88bet-ice-drop.tiny{
8096  --w:18px;
8097}
8098
8099.agent88bet-ice-drop.small{
8100  --w:24px;
8101}
8102
8103.agent88bet-ice-drop.medium{
8104  --w:34px;
8105}
8106
8107.agent88bet-ice-drop.large{
8108  --w:46px;
8109}
8110
8111@keyframes agent88betSnowFall{
8112  0%{
8113    transform:
8114      translate3d(0,-18vh,0)
8115      rotate(var(--r));
8116  }
8117
8118  100%{
8119    transform:
8120      translate3d(var(--wind),118vh,0)
8121      rotate(var(--rr));
8122  }
8123}
8124
8125@keyframes agent88betSnowFloat{
8126  from{
8127    margin-left:calc(var(--wave) * -1);
8128  }
8129
8130  to{
8131    margin-left:var(--wave);
8132  }
8133}
8134
8135@keyframes agent88betSnowGlow{
8136  0%,100%{
8137    opacity:var(--op);
8138    filter:
8139      drop-shadow(0 0 5px rgba(255,255,255,.8))
8140      drop-shadow(0 0 12px rgba(97,211,255,.45));
8141  }
8142
8143  50%{
8144    opacity:1;
8145    filter:
8146      drop-shadow(0 0 9px rgba(255,255,255,1))
8147      drop-shadow(0 0 22px rgba(135,225,255,.85));
8148  }
8149}
8150
8151@media(max-width:768px){
8152  .agent88bet-ice-drop.large{
8153    --w:34px;
8154  }
8155
8156  .agent88bet-ice-drop.medium{
8157    --w:27px;
8158  }
8159}
8160
8161@media(prefers-reduced-motion:reduce){
8162  .agent88bet-ice-drop{
8163    animation:none!important;
8164  }
8165}
8166</style>
8167
8168<script>
8169(function(){
8170  const stage = document.getElementById("agent88betSnowScene");
8171  if(!stage) return;
8172
8173  const snowImages = [
8174    "https://i.ibb.co.com/Kx4wjqcv/alogoa88b.gif"
8175  ];
8176
8177  const amount = window.innerWidth <= 768 ? 38 : 72;
8178  const sizeClass = ["tiny","small","medium","large"];
8179
8180  for(let i = 0; i < amount; i++){
8181    const item = document.createElement("i");
8182    const img = snowImages[Math.floor(Math.random() * snowImages.length)];
8183    const size = sizeClass[Math.floor(Math.random() * sizeClass.length)];
8184
8185    item.className = "agent88bet-ice-drop " + size;
8186
8187    item.style.setProperty("--img", `url("${img}")`);
8188    item.style.setProperty("--x", Math.random() * 100 + "vw");
8189    item.style.setProperty("--speed", 9 + Math.random() * 13 + "s");
8190    item.style.setProperty("--delay", -Math.random() * 18 + "s");
8191    item.style.setProperty("--wind", (Math.random() * 220 - 110) + "px");
8192    item.style.setProperty("--wave", 12 + Math.random() * 32 + "px");
8193    item.style.setProperty("--float", 2.8 + Math.random() * 4.5 + "s");
8194    item.style.setProperty("--r", Math.random() * 360 + "deg");
8195    item.style.setProperty("--rr", (360 + Math.random() * 720) + "deg");
8196    item.style.setProperty("--op", 0.55 + Math.random() * 0.42);
8197
8198    stage.appendChild(item);
8199  }
8200})();
8201</script>
vendor: 1 bytes, line 8201
8201
8202<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":"adab4a7847d5409b959a963693958350","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 1 bytes, line 8202
8202
8203<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":"720027b5cb5c428b92487f12fd196c75","r":1,"spa":2}' crossorigin="anonymous"></script>
8203
8204</body></html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.