
<!DOCTYPE html>
<html lang="id">

<head>
    <meta charset="UTF-8">
    <title>BUGISTOTO – Platform Informasi dan Komunitas Digital Online</title>
    <meta name="description"
        content="BUGISTOTO merupakan platform digital yang menghadirkan berbagai informasi, artikel, dan konten menarik bagi pengguna yang ingin mendapatkan wawasan terbaru seputar teknologi, gaya hidup, hiburan, dan tren digital.">
    <meta name="robots" content="index,follow">
    <link rel="canonical" href="https://almasar-umrah.com/contact">
    <link rel="amphtml" href="https://satupintakunaikajah1.pages.dev/">
    <link rel="alternate" href="https://satupintakunaikajah1.pages.dev/" hreflang="id">
    <link rel="alternate" href="https://satupintakunaikajah1.pages.dev/" hreflang="en">
    <link rel="alternate" href="https://satupintakunaikajah1.pages.dev/" hreflang="x-default">
    <link rel="alternate" hreflang="id-ID" href="https://satupintakunaikajah1.pages.dev/" />
    <link rel="alternate" hreflang="en-US" href="https://satupintakunaikajah1.pages.dev/" />
    <link rel="alternate" hreflang="en-SG" href="https://satupintakunaikajah1.pages.dev/" />
    <link rel="preconnect" href="https://www.googletagmanager.com" crossorigin>
    <script async src="https://www.googletagmanager.com/gtag/js?id=G-0LSM1YJSPZ"
        nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
    <script
        nonce="se3iyzEHMc9FQEB4wSyd0w==">window.dataLayer = window.dataLayer || []; function gtag() { dataLayer.push(arguments) } gtag("consent", "default", { ad_storage: "denied", ad_user_data: "denied", ad_personalization: "denied", analytics_storage: "granted", wait_for_update: 500 }); gtag("js", new Date); gtag("config", "G-0LSM1YJSPZ", { send_page_view: !0, linker: { domains: ["plazait.co.id", "www.plazait.co.id"] } }); window.ga4Ecomm = { viewItem: function (e) { if (!window.gtag) return; try { gtag("event", "view_item", { currency: e.currency || "IDR", value: e.value || 0, items: [{ item_id: e.item_id || "", item_name: e.item_name || "", item_brand: e.item_brand || "", item_category: e.item_category || "", price: e.price || 0, quantity: 1 }] }) } catch (t) { } }, addToCart: function (e) { if (!window.gtag) return; try { gtag("event", "add_to_cart", { currency: e.currency || "IDR", value: (e.price || 0) * (e.quantity || 1), items: [{ item_id: e.item_id || "", item_name: e.item_name || "", item_brand: e.item_brand || "", item_category: e.item_category || "", price: e.price || 0, quantity: e.quantity || 1 }] }) } catch (t) { } } };</script>
    <meta property="og:locale" content="id_ID">
    <meta property="og:site_name" content="Plaza IT">
    <meta property="og:type" content="product">
    <meta property="og:title" content="BUGISTOTO – Platform Informasi dan Komunitas Digital Online">
    <meta property="og:description"
        content="BUGISTOTO merupakan platform digital yang menghadirkan berbagai informasi, artikel, dan konten menarik bagi pengguna yang ingin mendapatkan wawasan terbaru seputar teknologi, gaya hidup, hiburan, dan tren digital.">
    <meta property="og:url" content="https://almasar-umrah.com/contact">
    <meta property="og:image" content="https://mcconnell-lab.org/aww5.png">
    <meta property="og:image:alt"
        content="BUGISTOTO – Platform Informasi dan Komunitas Digital Online">
    <meta property="product:price:amount" content="5000">
    <meta property="product:price:currency" content="IDR">
    <meta property="product:availability" content="out of stock">
    <meta name="twitter:card" content="summary_large_image">
    <meta name="twitter:title" content="BUGISTOTO – Platform Informasi dan Komunitas Digital Online">
    <meta name="twitter:description"
        content="BUGISTOTO merupakan platform digital yang menghadirkan berbagai informasi, artikel, dan konten menarik bagi pengguna yang ingin mendapatkan wawasan terbaru seputar teknologi, gaya hidup, hiburan, dan tren digital.">
    <meta name="twitter:image" content="https://mcconnell-lab.org/aww5.png">

    <!-- Schema WebSite -->
    <!-- Schema Product & Review -->
    <script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "BUGISTOTO",
  "sku": "BUGISTOTO-2026",
  "image": [
    "https://mcconnell-lab.org/aww5.png"
  ],
  "url": "https://almasar-umrah.com/contact",
  "description": "BUGISTOTO platform bandar togel resmi & situs slot gacor terpercaya #1 Indonesia 2026. Minimal deposit 5000 rupiah termurah, RTP slot tertinggi di atas 97%, winrate paling tinggi, 5000+ slot gacor Pragmatic Play PG Soft Habanero Microgaming Joker Gaming, jackpot maxwin ratusan juta, togel Singapore Hongkong Sidney Macau result tercepat, withdraw 1-3 menit tercepat, server internasional stabil 99.9%, CS 24 jam nonstop.",
  "category": "Platform Bandar Togel & Bandar Slot Online",
  "brand": {
    "@type": "Brand",
    "name": "BUGISTOTO"
  },
  "offers": {
    "@type": "Offer",
    "url": "https://almasar-umrah.com/contact",
    "priceCurrency": "IDR",
    "price": "5000",
    "priceValidUntil": "2027-12-31",
    "availability": "https://schema.org/InStock",
    "itemCondition": "https://schema.org/NewCondition",
    "priceSpecification": {
      "@type": "PriceSpecification",
      "price": "5000",
      "priceCurrency": "IDR",
      "valueAddedTaxIncluded": true
    },
    "seller": {
      "@type": "Organization",
      "name": "BUGISTOTO",
      "url": "https://almasar-umrah.com/contact"
    }
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.9",
    "reviewCount": "15",
    "bestRating": "5",
    "worstRating": "1"
  },
  "review": [
    {
      "@type": "Review",
      "author": {
        "@type": "Person",
        "name": "Hendra Gunawan"
      },
      "reviewRating": {
        "@type": "Rating",
        "ratingValue": "5"
      },
      "reviewBody": "Saya sudah main di banyak platform bandar togel dan bandar slot online, tapi baru di BUGISTOTO saya ngerasain minimal deposit 5000 rupiah termurah dan RTP slot tertinggi di atas 97%! Slot gacor Gates of Olympus dan Mahjong Ways 3 di sini winrate paling tinggi. Scatter, free spin, dan maxwin gampang muncul sampai ratusan juta rupiah cuma modal 5 ribu. Situs slot gacor terpercaya dan bandar togel terpercaya nomor 1 Indonesia 2026! Slot online dan togel online paling gacor!"
    },
    {
      "@type": "Review",
      "author": {
        "@type": "Person",
        "name": "Putri Amandari"
      },
      "reviewRating": {
        "@type": "Rating",
        "ratingValue": "5"
      },
      "reviewBody": "BUGISTOTO benar-benar platform bandar togel resmi, situs slot gacor terpercaya, dan bandar slot online resmi terbaik! Saya beberapa kali maxwin di Sweet Bonanza, Starlight Princess, dan tembak jackpot togel 4D dengan modal kecil cuma 10rb. Withdraw slot dan withdraw togel langsung cair 1-3 menit tanpa pending. Deposit QRIS instan 5 detik, slot online dan togel online paling cepat dan aman. Jarang ada situs slot deposit 5rb dan bandar togel deposit murah yang proses WD secepat ini! Situs deposit cepat dan withdraw tercepat!"
    },
    {
      "@type": "Review",
      "author": {
        "@type": "Person",
        "name": "Rian Kurniawan"
      },
      "reviewRating": {
        "@type": "Rating",
        "ratingValue": "5"
      },
      "reviewBody": "Sebagai pemain slot gacor dan togel online lama, saya suka banget sama provider slot online dan pasaran togel online lengkap di BUGISTOTO. Ada Pragmatic Play, PG Soft, Habanero, Microgaming, Joker Gaming, Play'n GO, NetEnt, semua ada! RTP slot live di atas 97% bikin peluang maxwin jauh lebih besar. Slot gacor viral Lucky Neko, Fortune Mouse, Sugar Rush selalu panas! Pasaran togel Singapore, togel Hongkong, togel Sidney, togel Macau result tercepat! 5000+ game slot gacor lengkap!"
    },
    {
      "@type": "Review",
      "author": {
        "@type": "Person",
        "name": "Lestari Wulandari"
      },
      "reviewRating": {
        "@type": "Rating",
        "ratingValue": "5"
      },
      "reviewBody": "Awalnya cuma cari situs slot online dan bandar togel online biasa, tapi ternyata BUGISTOTO jauh lebih lengkap sebagai platform bandar togel dan bandar slot online terbesar. Provider slot gacor terbaik semuanya ada dengan RTP tinggi. Yang paling saya suka adalah minimal deposit 5000 rupiah termurah dan server slot & server togel stabil anti lag. Slot mobile PG Soft dan togel mobile gameplay lancar di HP Android! Aplikasi slot dan aplikasi togel gratis!"
    },
    {
      "@type": "Review",
      "author": {
        "@type": "Person",
        "name": "Yudi Hartono"
      },
      "reviewRating": {
        "@type": "Rating",
        "ratingValue": "5"
      },
      "reviewBody": "BUGISTOTO adalah situs slot gacor hari ini dan bandar togel terpercaya terbaik! Result slot gacor dan togel online selalu akurat dan tidak pernah telat. Saya pernah tembus jackpot slot 500 juta rupiah di Gates of Olympus dan jackpot togel 4D 49 juta di Hongkong, dana kemenangan langsung masuk ke rekening BRI malam itu juga tanpa potongan. Bandar slot terpercaya dan bandar togel terpercaya yang selalu bayar lunas! Kemenangan dibayar lunas 100%!"
    },
    {
      "@type": "Review",
      "author": {
        "@type": "Person",
        "name": "Siti Nurhaliza"
      },
      "reviewRating": {
        "@type": "Rating",
        "ratingValue": "5"
      },
      "reviewBody": "Main slot gacor dan togel online di BUGISTOTO bikin nagih karena peluang maxwin dan jackpot lebih terasa dibanding situs slot online dan bandar togel online lain. Saya sering main Sweet Bonanza, Wild West Gold dari Pragmatic Play, dan tebak angka togel Singapore. Free spin gampang muncul dan kemenangan besar sering masuk walaupun modal kecil 5-10 ribu. Situs slot gacor RTP tinggi dan bandar togel resmi paling menguntungkan! Jackpot slot mudah didapat!"
    },
    {
      "@type": "Review",
      "author": {
        "@type": "Person",
        "name": "Budi Santoso"
      },
      "reviewRating": {
        "@type": "Rating",
        "ratingValue": "5"
      },
      "reviewBody": "Customer service slot online dan togel online BUGISTOTO paling responsif dibanding bandar slot online dan platform bandar togel lainnya. Pernah akun saya logout sendiri dan langsung dibantu aktif lagi cuma beberapa menit. Pelayanan livechat 24 jam dan WhatsApp 24 jam benar-benar membantu pemain slot gacor terpercaya dan togel online terpercaya. CS ramah, cepat, dan solutif 24/7 nonstop untuk semua kendala! CS 24 jam terbaik!"
    },
    {
      "@type": "Review",
      "author": {
        "@type": "Person",
        "name": "Wulan Anggraini"
      },
      "reviewRating": {
        "@type": "Rating",
        "ratingValue": "5"
      },
      "reviewBody": "Situs resmi BUGISTOTO punya tampilan ringan dan gampang dipakai di HP Android maupun iPhone. Deposit QRIS, Dana, OVO, Gopay semuanya otomatis 3-10 detik. Saya suka karena bisa main slot gacor hari ini dan togel online tanpa ribet dan transaksi selalu lancar 24 jam nonstop. Aplikasi slot dan aplikasi togel BUGISTOTO juga lebih ringan dari website! Perfect untuk slot mobile dan togel mobile! Link alternatif slot dan link alternatif togel selalu aktif!"
    },
    {
      "@type": "Review",
      "author": {
        "@type": "Person",
        "name": "Eko Prakoso"
      },
      "reviewRating": {
        "@type": "Rating",
        "ratingValue": "5"
      },
      "reviewBody": "Saya rekomendasiin BUGISTOTO buat siapa saja yang cari bandar slot online resmi, platform bandar togel, dan slot gacor RTP tinggi. 5000+ game slot gacor lengkap dari semua provider terbaik dan pasaran togel online terlengkap. Winrate paling tinggi terbukti, jackpot maxwin terbesar hingga ratusan juta, dan hadiah togel 4D terbesar 49 juta. Situs slot VIP, bandar slot premium, bandar togel VIP untuk pemain pemula hingga pro! Platform VIP & premium!"
    },
    {
      "@type": "Review",
      "author": {
        "@type": "Person",
        "name": "Ratna Sari"
      },
      "reviewRating": {
        "@type": "Rating",
        "ratingValue": "5"
      },
      "reviewBody": "Sudah hampir setahun saya main di BUGISTOTO sebagai pemain slot gacor dan togel online dan sejauh ini paling puas dibanding situs bandar slot online dan platform bandar togel lain. Semua permainan slot gacor lengkap dari Pragmatic Play, PG Soft, Habanero, Microgaming, Joker Gaming. RTP slot tertinggi di atas 97%, minimal deposit 5000 rupiah termurah, withdraw 1-3 menit tercepat untuk slot dan togel. Link alternatif slot dan link alternatif togel selalu aktif! Situs terpercaya!"
    },
    {
      "@type": "Review",
      "author": {
        "@type": "Person",
        "name": "Wahyu Hidayat"
      },
      "reviewRating": {
        "@type": "Rating",
        "ratingValue": "5"
      },
      "reviewBody": "BUGISTOTO adalah bandar slot online dan platform bandar togel terbaik dengan server slot internasional dan server togel 99.9% uptime. Game slot online tidak lag, tidak disconnect, spin lancar saja. Result togel online selalu update cepat dan akurat. Enkripsi SSL 256-bit aman 100%, tidak ada kebocoran data. Situs slot aman dan bandar togel aman paling terpercaya dengan lisensi internasional. Main slot gacor dan togel online di sini tenang dan pasti! Keamanan data maksimal!"
    },
    {
      "@type": "Review",
      "author": {
        "@type": "Person",
        "name": "Dina Wijaya"
      },
      "reviewRating": {
        "@type": "Rating",
        "ratingValue": "5"
      },
      "reviewBody": "Pola slot gacor 2026 di BUGISTOTO terbukti maxwin! Pola Gates of Olympus: 10x manual, 30x auto kecil, 50x auto besar. Jam gacor slot malam 21.00-03.00 WIB peluang maxwin 30% lebih besar. RTP live slot real-time memudahkan pilih game RTP tertinggi. Untuk togel online, pakai data paito warna SGP, HK, SDY yang lengkap. Situs slot gacor terpercaya dan bandar togel terpercaya yang kasih tips menang lengkap untuk slot dan togel! Tips slot gacor & tips togel!"
    },
    {
      "@type": "Review",
      "author": {
        "@type": "Person",
        "name": "Arief Budiman"
      },
      "reviewRating": {
        "@type": "Rating",
        "ratingValue": "5"
      },
      "reviewBody": "Bonus new member 100% di BUGISTOTO langsung masuk setelah deposit pertama! Saya dapat bonus 50rb dari deposit 50rb dan langsung maxwin 2 juta di Mahjong Ways 2. Cashback slot, rollingan slot, dan bonus referral juga sangat membantu untuk tambahan modal. Situs slot gacor dan bandar togel dengan bonus termurah dan termudah! Bonus new member slot dan bonus new member togel otomatis!"
    },
    {
      "@type": "Review",
      "author": {
        "@type": "Person",
        "name": "Indah Permata"
      },
      "reviewRating": {
        "@type": "Rating",
        "ratingValue": "5"
      },
      "reviewBody": "Pragmatic Play di BUGISTOTO bener-bener gacor! Gates of Olympus, Sweet Bonanza, Mahjong Ways 2, Mahjong Ways 3, Starlight Princess, Sugar Rush semua RTP 96.5-96.8% dan sering maxwin. PG Soft Lucky Neko, Fortune Mouse juga tidak kalah panas dengan RTP 96.7%. Provider slot gacor no 1 semuanya ada! Slot gacor viral paling banyak di sini! RTP slot live highest!"
    },
    {
      "@type": "Review",
      "author": {
        "@type": "Person",
        "name": "Kompas Gagma"
      },
      "reviewRating": {
        "@type": "Rating",
        "ratingValue": "5"
      },
      "reviewBody": "Togel Hongkong dengan hadiah 4D 49 juta di BUGISTOTO adalah yang terbesar! Result cepat dan akurat setiap hari. Saya juga suka togel Singapore dengan data SGP lengkap dan togel Sidney dengan payout tinggi. Pasaran togel terlengkap ada semua: Macau, Cambodia VIP, Taiwan, China, Japan, Bullseye. Platform bandar togel terbesar dengan result tercepat dan data keluaran resmi! Togel online terpercaya!"
    }
  ]
}
</script>
    <script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "Kenapa BUGISTOTO dikenal sebagai platform bandar togel & situs slot gacor terpercaya #1 Indonesia 2026?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "BUGISTOTO adalah platform bandar togel resmi dan situs slot gacor terpercaya nomor 1 di Indonesia tahun 2026 dengan RTP slot tertinggi di atas 97%, winrate paling tinggi terbukti, pasaran togel terlengkap, dan minimal deposit 5000 rupiah termurah. Sebagai platform bandar togel & situs slot gacor paling viral, BUGISTOTO menyediakan 5000+ game slot gacor dari provider Pragmatic Play, PG Soft, Habanero, Microgaming, Joker Gaming dengan jackpot maxwin terbesar hingga ratusan juta rupiah, serta pasaran togel Singapore, togel Hongkong, togel Sidney, togel Macau dengan result resmi tercepat setiap hari. Bandar togel online resmi dan bandar slot online resmi dengan bonus new member 100%!"
      }
    },
    {
      "@type": "Question",
      "name": "Provider slot gacor & pasaran togel apa saja yang tersedia di BUGISTOTO platform bandar togel terbesar?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "BUGISTOTO menghadirkan semua provider slot gacor terbaik: Pragmatic Play (Gates of Olympus, Sweet Bonanza, Mahjong Ways 2, Mahjong Ways 3, Starlight Princess, Sugar Rush, RTP 96.5-96.8%), PG Soft (Lucky Neko, Fortune Mouse, Fortune Ox, Dragon Hatch, RTP 96.7%), Habanero (Caishen Wins, Hot Hot Fruit, RTP 96.7%), Microgaming (Mega Moolah jackpot progresif Rp 10+ miliar), Joker Gaming (88 Golden Dragon, Lucky God, RTP 96.8%), Play'n GO, NetEnt, Relax Gaming, Spadegaming. Total 5000+ game slot online gacor dengan RTP live highest! Untuk togel online, tersedia togel Singapore (SGP result tercepat), togel Hongkong (HK hadiah 4D 49 juta), togel Sidney (SDY payout tinggi), togel Macau, togel Cambodia VIP, togel Taiwan, togel China, togel Japan, togel Bullseye dengan result tercepat dan data keluaran resmi setiap hari. Provider slot online terlengkap!"
      }
    },
    {
      "@type": "Question",
      "name": "Berapa minimal deposit di platform bandar togel & situs slot gacor BUGISTOTO deposit 5000 rupiah?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Minimal deposit BUGISTOTO hanya 5000 rupiah! Ini adalah situs slot deposit 5rb dan bandar togel deposit termurah paling terjangkau di Indonesia. Tidak ada situs slot online atau bandar togel online lain yang menawarkan deposit serendah ini dengan kualitas premium. Deposit via QRIS, Dana, OVO, Gopay, ShopeePay, LinkAja, BCA, BRI, Mandiri, BNI diproses instan 3-10 detik. Withdraw slot dan withdraw togel otomatis 1-3 menit, 24 jam nonstop tanpa libur. Situs deposit cepat dan withdraw tercepat di Indonesia!"
      }
    },
    {
      "@type": "Question",
      "name": "Bagaimana cara daftar akun togel online & slot online di BUGISTOTO platform bandar togel resmi hanya 2-3 menit?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Cara daftar togel online & slot online di BUGISTOTO sangat mudah hanya 2-3 menit: 1) Buka website resmi BUGISTOTO via browser HP/komputer, 2) Klik tombol daftar atau register di pojok kanan atas, 3) Isi username unik untuk login slot online dan togel online, 4) Isi password kuat kombinasi huruf besar+kecil+angka, 5) Masukkan nomor WhatsApp aktif untuk verifikasi, 6) Isi rekening bank atau e-wallet QRIS untuk deposit, 7) Isi email aktif untuk keamanan akun, 8) Klik daftar sekarang, akun langsung aktif dalam 30 detik! Langsung deposit minimal 5000 dan main slot gacor & togel online! Bonus new member slot 100% dan new member togel otomatis masuk!"
      }
    },
    {
      "@type": "Question",
      "name": "Bagaimana cara login akun togel online & slot online BUGISTOTO dengan aman dan cepat link alternatif?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Cara login togel online & slot online di BUGISTOTO sangat cepat dan mudah: 1) Buka website BUGISTOTO via browser HP Android/iOS atau komputer, 2) Klik menu login di pojok kanan atas halaman utama, 3) Masukkan username togel & slot yang sudah terdaftar saat daftar, 4) Masukkan password togel & slot akun kamu, 5) Klik tombol masuk, 6) Akun slot gacor dan togel online siap digunakan, langsung deposit minimal 5000 dan main! Jika lupa password, hubungi CS 24 jam untuk reset gratis. BUGISTOTO juga punya link alternatif togel dan link alternatif slot untuk akses tanpa blokir Kominfo. Login slot dan login togel aman 100%!"
      }
    },
    {
      "@type": "Question",
      "name": "Apa saja metode deposit & withdraw togel online & slot online terlengkap di BUGISTOTO?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "BUGISTOTO mendukung semua metode deposit togel online, deposit slot online, withdraw togel, dan withdraw slot terlengkap di Indonesia: QRIS (instan 3-10 detik, minimal 5rb), Dana, OVO, Gopay, ShopeePay, LinkAja, BCA, BRI, Mandiri, BNI, Permata, BTN, Danamon, CIMB Niaga. Withdraw diproses otomatis 1-3 menit, 24 jam nonstop tanpa libur. BUGISTOTO adalah situs deposit cepat dan withdraw tercepat di Indonesia dengan sistem otomatis anti ribet untuk togel online dan slot online. Semua metode pembayaran tersedia!"
      }
    },
    {
      "@type": "Question",
      "name": "Apakah BUGISTOTO aman untuk bermain togel online & slot online gacor enkripsi SSL 256-bit?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Ya, BUGISTOTO adalah platform bandar togel resmi, bandar slot online resmi, dan situs terpercaya dengan keamanan maksimal: enkripsi SSL 256-bit setara bank, server internasional stabil 99.9% uptime untuk slot online dan togel online, RNG certified terverifikasi adil tanpa manipulasi, tidak ada kebocoran data, tidak ada peretasan akun. Data member slot online dan togel online dijamin aman 100%. BUGISTOTO memiliki lisensi internasional dan regulasi ketat sebagai slot gacor terpercaya dan kogel online terpercaya legal di Indonesia. Situs slot aman dan bandar togel aman paling terpercaya!"
      }
    },
    {
      "@type": "Question",
      "name": "Apa keuntungan bermain di platform bandar togel & situs slot gacor BUGISTOTO RTP tertinggi 97%?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Bermain di BUGISTOTO memberikan keuntungan besar: RTP slot tertinggi di atas 97% (jauh lebih tinggi dari situs lain), winrate paling tinggi terbukti untuk slot gacor, peluang maxwin terbesar hingga ratusan juta rupiah per spin slot online, pasaran togel terlengkap dengan result tercepat, scatter dan free spin lebih mudah muncul, server stabil anti lag, 5000+ game slot gacor viral lengkap, minimal deposit 5000 rupiah termurah, withdraw 1-3 menit tercepat, customer service 24 jam responsif untuk togel online dan slot online. BUGISTOTO adalah platform paling menguntungkan untuk slot VIP dan togel VIP!"
      }
    },
    {
      "@type": "Question",
      "name": "Jam gacor slot & togel apa yang paling baik untuk maxwin di BUGISTOTO malam hari 21.00-03.00 WIB?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Jam gacor slot terbaik untuk maxwin di BUGISTOTO adalah pukul 21.00-03.00 WIB malam saat server longgar dan RTP live slot lebih tinggi. Hindari jam sibuk 12.00-14.00 WIB siang. Main di jam gacor meningkatkan peluang scatter, free spin, dan maxwin hingga 30%. Game slot gacor paling sering maxwin di jam gacor: Gates of Olympus, Mahjong Ways 2, Mahjong Ways 3, Sweet Bonanza, Lucky Neko, Fortune Mouse. Untuk togel online, result live draw selalu update cepat setiap hari sesuai jadwal resmi pasaran Singapore, Hongkong, Sidney, Macau. Cek RTP live slot di BUGISTOTO sebelum main untuk pilih game RTP tertinggi! Jam slot gacor paling menguntungkan!"
      }
    },
    {
      "@type": "Question",
      "name": "Apakah kemenangan jackpot slot maxwin & togel online 4D di BUGISTOTO benar-benar dibayar lunas 100%?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Tentu saja! BUGISTOTO adalah platform bandar togel resmi, bandar slot online resmi, dan situs gacor terpercaya yang selalu membayar kemenangan member tepat waktu 100%. Semua kemenangan jackpot slot, maxwin hingga ratusan juta rupiah, dan hadiah togel 4D terbesar 49 juta diproses cepat tanpa potongan dengan withdraw otomatis 24 jam. Hanya 1-3 menit uang sudah masuk ke rekening bank atau e-wallet kamu. BUGISTOTO punya reputasi terbaik sebagai situs bayar lunas tanpa mengurangi sebagian atau menunda pembayaran. Main slot gacor dan togel online di BUGISTOTO, menangkan jackpot, dan tarik kemenangan dengan aman! Jackpot dibayar penuh!"
      }
    },
    {
      "@type": "Question",
      "name": "Apakah tersedia customer service 24 jam livechat WhatsApp di platform bandar togel & situs slot gacor BUGISTOTO?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Ya! Customer service BUGISTOTO aktif 24 jam nonstop via livechat dan WhatsApp. Tim support profesional siap membantu 24/7: kendala daftar togel & slot, login togel & slot, lupa password, deposit tidak masuk, withdraw ditolak, pertanyaan tentang game slot gacor, RTP slot live, pola slot, jam gacor, pasaran togel online, result live draw, data SGP, data HK, dan lainnya. Respon cepat dalam 1-2 menit, ramah, dan solutif. BUGISTOTO adalah platform terpercaya dengan CS 24 jam terbaik di Indonesia untuk togel online dan slot online. Livechat 24 jam siap bantu!"
      }
    },
    {
      "@type": "Question",
      "name": "Kenapa BUGISTOTO jadi pilihan utama 100.000+ pemain togel online & slot gacor Indonesia 2026 platform VIP?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "BUGISTOTO adalah pilihan utama 100.000+ pemain togel online & slot gacor Indonesia 2026 karena kombinasi keunggulan sempurna: platform bandar togel resmi legal dengan lisensi internasional, bandar slot online resmi terpercaya, situs slot gacor terpercaya #1 dengan reputasi teruji, minimal deposit 5000 rupiah termurah di Indonesia, RTP slot tertinggi di atas 97%, winrate paling tinggi terbukti, 5000+ game slot gacor lengkap dari semua provider terbaik, pasaran togel terlengkap dengan result resmi tercepat, withdraw 1-3 menit tercepat, server internasional stabil 99.9% uptime, enkripsi SSL 256-bit aman 100%, customer service 24 jam responsif, kemenangan dibayar lunas 100%. BUGISTOTO adalah platform VIP & premium untuk pemain pemula hingga pro! Situs slot VIP dan bandar togel VIP!"
      }
    },
    {
      "@type": "Question",
      "name": "Apakah ada aplikasi togel online & slot online BUGISTOTO resmi untuk Android & iOS slot mobile togel mobile?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Ya! BUGISTOTO menyediakan aplikasi togel online & slot online resmi untuk Android dan iOS. Download aplikasi BUGISTOTO gratis dari website resmi. Kelebihan aplikasi: lebih ringan dari website, akses lebih cepat, notifikasi slot gacor dan info togel online langsung ke HP, hemat kuota internet, tampilan optimized untuk mobile, login otomatis tanpa input username password setiap kali. Aplikasi slot mobile dan togel mobile BUGISTOTO compatible dengan semua HP Android dan iPhone. Download sekarang untuk pengalaman bermain slot gacor dan togel online lebih nyaman! Aplikasi slot dan aplikasi togel gratis!"
      }
    },
    {
      "@type": "Question",
      "name": "Bagaimana cara memilih slot gacor RTP tertinggi & pasaran togel terbaik di BUGISTOTO tips maxwin jackpot?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Cara memilih slot gacor RTP tertinggi di BUGISTOTO: 1) Cek RTP live slot yang ditampilkan real-time di halaman game, 2) Pilih game dengan RTP slot di atas 96.5%, idealnya 97%+, 3) Pilih provider terbaik: Pragmatic Play (RTP 96.5-96.8%), PG Soft (RTP 96.7%), Habanero (RTP 96.7%), Joker Gaming (RTP 96.8%), 4) Pilih game slot gacor viral yang sering maxwin: Gates of Olympus, Mahjong Ways 2, Mahjong Ways 3, Sweet Bonanza, Lucky Neko, Fortune Mouse, 5) Cek volatilitas: volatilitas tinggi untuk maxwin besar, volatilitas rendah untuk kemenangan kecil sering, 6) Main di jam gacor 21.00-03.00 WIB. Untuk togel online, pilih pasaran dengan hadiah terbesar: togel Hongkong (4D hadiah 49 juta), togel Singapore (4D hadiah 5 juta), togel Sidney (payout tinggi). Gunakan data paito warna SGP, HK, SDY untuk analisis. Dengan tips ini, peluang maxwin dan jackpotmu meningkat drastis! Tips slot gacor & tips togel!"
      }
    }
  ]
}
</script>
    <script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "position": 1,
      "name": "HOME",
      "item": "https://almasar-umrah.com/contact"
    },
    {
      "@type": "ListItem",
      "position": 2,
      "name": "BUGISTOTO",
      "item": "https://almasar-umrah.com/contact"
    },
    {
      "@type": "ListItem",
      "position": 3,
      "name": "SLOT GACOR",
      "item": "https://almasar-umrah.com/contact"
    },
    {
      "@type": "ListItem",
      "position": 4,
      "name": "SLOT ONLINE",
      "item": "https://almasar-umrah.com/contact"
    },
    {
      "@type": "ListItem",
      "position": 5,
      "name": "SLOT RESMI",
      "item": "https://almasar-umrah.com/contact"
    },
    {
      "@type": "ListItem",
      "position": 6,
      "name": "BUGISTOTO – Platform Informasi dan Komunitas Digital Online",
      "item": "https://almasar-umrah.com/contact"
    }
  ]
}
</script>
    <!-- User Session Data -->
    <meta name="csrf-token" content="9ce6e4a17f7cc189893df9e47789b13e98829450d516a0cae5ca7b5f43e5dadc">
    <meta name="user-logged-in" content="false">
    <meta name="user-id" content="0">

    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" />


    <link rel="shortcut icon" href="https://mcconnell-lab.org/icon.webp"
        type="image/x-icon">















</head>

<style>
    a,
    p,
    span,
    li {

        font-family: 'Orbitron', sans-serif;
    }

    @font-face {
        font-family: 'Segoe UI';
        src: url('/assets/fonts/segoeui.woff2') format('woff2'),
            url('/assets/fonts/segoeui.woff') format('woff');
        font-weight: 400;
        font-style: normal;
    }

    :root {
        --brand-50: #FFF5E6;
        --brand-100: #FFE7CC;
        --brand-500: #F28C1A;
        --brand-600: #D97809;
        --gray-900: #1F1F23;
        --gray-700: #3D3F45;
        --gray-500: #6F737B;
        --gray-300: #C5C9CF;
        --gray-100: #F3F5F7;
        --border: #E4E7EB;
        --radius: 8px;
        --transition: .18s ease;
        /* font-family: "Inter", system-ui, sans-serif; */
        font-family: 'Segoe UI', sans-serif;
    }

    * {
        box-sizing: border-box;
    }

    body {
        margin: 0;
        padding-bottom: 0;
        color: var(--gray-900) #1F1F23;

        background: linear-gradient(180deg, #000000 0%, #150005 70%, #16c48d 100%);
        background-attachment: fixed;
        color: #e5e7eb;
    }

    img {
        max-width: 100%;
        display: block;
    }

    .container {
        width: 100%;
        max-width: 1280px;
        margin: 0 auto;
        padding: 10px 0;
    }

    .topbar {
        background: #111;
        color: #fff;
        font-size: 13px;
    }

    .topbar-inner {
        display: flex;
        justify-content: space-between;
        align-items: center;
        min-height: 36px;
    }

    .topbar a {
        color: #fff;
        text-decoration: none;
        margin-left: 12px;
    }

    /* ========== Desktop base (Glassmorphism Modern with Warm Gradient) ========== */
    .navbar {

        backdrop-filter: blur(12px);
        -webkit-backdrop-filter: blur(12px);
        border-bottom: 1px solid rgba(228, 231, 235, 0.6);
        box-shadow: 0 2px 16px -4px rgba(0, 0, 0, 0.08);
        position: sticky;
        top: 0;
        z-index: 500;
        transition: all .3s ease;
        background: linear-gradient(180deg, #1f1f24 0%, #111115 100%);
        border-bottom: 1px solid #2d2d35;
    }

    /* Accent line gradient orange */
    .navbar::after {
        content: '';
        position: absolute;
        bottom: 0;
        left: 0;
        right: 0;
        height: 2px;
        background: linear-gradient(90deg, transparent 0%, var(--brand-500) 20%, var(--brand-600) 50%, var(--brand-500) 80%, transparent 100%);
        opacity: 0.5;
    }

    .nav-inner {
        display: flex;
        align-items: center;
        gap: 24px;
        min-height: 70px;
    }

    .nav-inner .search .m-search-ico {
        display: none;
    }

    /* Secara default (desktop) ikon login disembunyikan; teks muncul */
    .login-btn .login-ico {
        display: none;
    }

    .navbar-logo {
        display: none;
        background: linear-gradient(135deg, rgba(255, 255, 255, 0.95) 0%, rgba(255, 245, 230, 0.85) 100%);
        backdrop-filter: blur(12px);
        -webkit-backdrop-filter: blur(12px);
        border-bottom: 1px solid rgba(228, 231, 235, 0.6);
        box-shadow: 0 2px 16px -4px rgba(0, 0, 0, 0.08);
        position: sticky;
        top: 0;
        z-index: 500;
    }

    /* Hide bottom navigation on desktop - only show on mobile */
    .bottom-nav {
        display: none;
    }

    /* ==============================================================
   MOBILE (<=640px)
   ============================================================== */
    @media (max-width:640px) {
        .container {
            padding: 10px 16px;
        }

        .topbar {
            display: none !important;
        }

        /* Add padding bottom for sticky bottom nav */
        body {
            padding-bottom: 68px;
            /* Height of bottom nav + safe area */
        }

        /* Mobile Top Navbar - Clean & Minimal */
        .navbar {
            background: linear-gradient(135deg, rgba(255, 255, 255, 0.97) 0%, rgba(255, 245, 230, 0.9) 100%);
            backdrop-filter: blur(16px);
            -webkit-backdrop-filter: blur(16px);
            box-shadow: 0 2px 12px -3px rgba(0, 0, 0, 0.08);
            border: 0;
        }

        /* Simple grid layout - Logo, Search, Category */
        .nav-inner {
            display: grid;
            grid-template-columns: 1fr;
            gap: 10px;
            padding: 12px 16px 0 12px;
            min-height: auto;
        }

        /* Logo centered at top */
        .nav-inner .logo {
            justify-self: center;
            margin: 0;
            display: flex;
        }

        .nav-inner .logo img {
            height: 36px;
        }

        /* Search bar - full width */
        .nav-inner .search {
            position: relative;
            display: flex;
            align-items: center;
            gap: 0;
            width: 100%;
            height: 44px;
            background: #fff;
            border: 1.5px solid #e5e7eb;
            border-radius: 12px;
            padding: 0 12px;
            box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
            transition: all .25s;
        }

        .nav-inner .search:focus-within {
            border-color: #fb923c;
            box-shadow: 0 0 0 3px rgba(251, 146, 60, 0.1);
        }

        .nav-inner .search-icon-btn {
            color: #9ca3af;
            padding: 4px;
            margin-right: 4px;
        }

        .nav-inner .search-icon-btn svg {
            width: 18px;
            height: 18px;
        }

        .nav-inner .search input {
            flex: 1;
            min-width: 0;
            border: none;
            outline: none;
            background: transparent;
            font-size: 14px;
            padding: 0 8px;
            height: 100%;
        }

        .nav-inner .ai-bot-toggle {
            padding: 6px;
            margin-left: 0;
        }

        .nav-inner .ai-bot-toggle .bot-icon {
            width: 20px;
            height: 20px;
        }

        .nav-inner .search-suggest {
            left: 0;
            right: 0;
            width: calc(100vw - 32px);
            margin-top: 6px;
            border-radius: 12px;
            max-height: 70vh;
        }

        /* Hide desktop nav actions but keep structure for userMenu */
        .nav-inner .nav-actions {
            display: flex !important;
            /* Keep flex to allow userMenu positioning */
            visibility: hidden;
            /* Hide visually but keep in DOM */
            pointer-events: none;
            /* Disable interactions with hidden elements */
            position: absolute;
            /* Remove from flow */
            right: 0;
            top: 0;
        }

        /* Re-enable userMenu for logged-in users */
        .nav-inner .nav-actions #userMenu {
            visibility: visible !important;
            pointer-events: auto !important;
        }

        .nav-inner .logo {
            display: none;
        }

        .navbar-logo {
            display: block;
            /* background:linear-gradient(135deg, rgba(255,255,255,0.97) 0%, rgba(255,245,230,0.9) 100%); */
            backdrop-filter: blur(16px);
            -webkit-backdrop-filter: blur(16px);
            position: static;
            /* Remove sticky on mobile */
            box-shadow: none;
            border-bottom: 0;
            padding-top: .6rem;
        }

        .nav-inner .logo-mobile {
            display: block;
        }

        /* Category menu wrapper will handle visibility */

        /* ==============================================================
     BOTTOM NAVIGATION - Styles moved to bottom-nav.css
     ============================================================== */
        /* All bottom-nav styles now in /assets/css/bottom-nav.css */

        /* Hide desktop elements that now moved to bottom nav */
        #wishlistBtn,
        #notifBtn,
        #loginBtn {
            display: none !important;
        }

        /* Hide desktop user menu on mobile - use bottom sheet instead */
        .navbar #userMenu {
            display: none !important;
        }

        .nav-actions .cart-indicator,
        .nav-actions .compare-indicator {
            display: none !important;
        }

        /* Hide category button from bottom nav */
        #bottomCategoryBtn {
            display: none !important;
        }

        /* User menu button styling for mobile - scoped to navbar only */
        .navbar #userMenu .login-btn.logged-in {
            width: 40px;
            height: 40px;
            padding: 0;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            background: rgba(255, 255, 255, 0.95);
            backdrop-filter: blur(12px);
            -webkit-backdrop-filter: blur(12px);
            border: 1px solid rgba(228, 231, 235, 0.6);
            box-shadow: 0 2px 12px -3px rgba(0, 0, 0, 0.12);
        }

        .navbar #userMenu .login-btn.logged-in .login-text {
            display: none;
        }

        .navbar #userMenu .login-btn.logged-in .login-ico {
            display: inline;
            font-size: 20px;
            line-height: 1;
        }

        /* User dropdown positioning for mobile */
        .navbar #userMenu .user-dropdown {
            position: fixed !important;
            top: 60px !important;
            right: 16px !important;
            left: auto !important;
            min-width: 200px;
            background: rgba(255, 255, 255, 0.98);
            backdrop-filter: blur(20px);
            -webkit-backdrop-filter: blur(20px);
            border: 1px solid rgba(228, 231, 235, 0.6);
            box-shadow: 0 8px 24px -8px rgba(0, 0, 0, 0.2);
            z-index: 1002 !important;
            border-radius: 12px;
            padding: 8px 0;
        }

        /* Force visibility when not hidden attribute */
        .navbar #userMenu .user-dropdown:not([hidden]) {
            display: block !important;
            visibility: visible !important;
            opacity: 1 !important;
        }

        /* Container untuk kategori dan tombol kategori sejajar */
        .navbar .container:last-child {
            display: flex !important;
            align-items: center !important;
            padding: 4px 16px 6px !important;
            gap: 5px;
            overflow: visible;
        }

        /* Wrapper untuk mega-cats dengan fade gradient (mobile only) */
        .mega-cats-wrapper {
            position: relative;
            flex: 1;
            overflow: hidden;
            min-height: 34px;
            /* Ensure content is visible */
            display: flex;
            /* Ensure wrapper is flex container */
        }

        /* Fade gradient indicator di ujung kanan (mobile only) */
        .mega-cats-fade {
            position: absolute;
            top: 0;
            right: 0;
            bottom: 0;
            width: 80px;
            /* Increased from 60px for better visibility */
            background: linear-gradient(to left,
                    rgba(255, 245, 230, 1) 0%,
                    rgba(255, 245, 230, 0.98) 15%,
                    rgba(255, 245, 230, 0.85) 35%,
                    transparent 100%);
            pointer-events: none;
            z-index: 5;
            /* Increased z-index */
            transition: opacity 0.3s ease;
        }

        /* Kategori menu di mobile */
        .mega-cats.container {
            display: flex !important;
            gap: 12px;
            overflow-x: auto;
            overflow-y: visible;
            -webkit-overflow-scrolling: touch;
            scrollbar-width: none;
            flex: 1;
            padding: 0 !important;
            margin: 0 !important;
            position: relative;
            /* For z-index stacking */
            z-index: 1;
            /* Below fade gradient */
        }

        .mega-cats.container::-webkit-scrollbar {
            display: none;
        }

        /* Styling untuk menu items di mobile */
        .mega-cats a {
            font-size: 13px;
            padding: 6px 10px;
            white-space: nowrap;
            flex-shrink: 0;
            position: relative;
            /* Ensure proper stacking */
        }

        .mega-cats a.active {
            background: var(--brand-600);
            color: #fff;
            font-weight: 600;
            border-radius: 6px;
        }

        /* Tombol kategori di mobile */
        .mm-wp {
            flex-shrink: 0;
        }

        .mm2-trigger {
            display: flex;
            align-items: center;
            gap: 6px;
            padding: 6px 12px;
            background: var(--gray-100);
            color: var(--gray-700);
            text-decoration: none;
            border-radius: 6px;
            font-size: 13px;
            white-space: nowrap;
        }

        .mm2-trigger .label-cat {
            display: none;
        }

        /* Tombol more kategori */
        .mega-more-btn {
            border: 1px solid var(--border);
            background: #fff;
            border-radius: 10px;
            padding: 6px 14px;
            font-size: 18px;
            cursor: pointer;
        }

        .mega-cats-more.active>.mega-more-btn {
            background: var(--brand-600);
            color: #fff;
            border-color: var(--brand-600);
        }

        .mega-more-dropdown {
            top: calc(100% + 10px);
            right: 0;
            min-width: 85vw;
            max-width: 90vw;
            border-radius: 16px;
        }

        .mega-more-grid {
            grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
        }

        /* ==============================================================
     MOBILE USER BOTTOM SHEET
     ============================================================== */
        .mobile-user-sheet {
            position: fixed;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            z-index: 10000;
            pointer-events: none;
        }

        .mobile-user-sheet.active {
            pointer-events: auto;
        }

        .mobile-user-sheet-backdrop {
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background: rgba(0, 0, 0, 0.5);
            opacity: 0;
            transition: opacity .3s ease;
        }

        .mobile-user-sheet.active .mobile-user-sheet-backdrop {
            opacity: 1;
        }

        .mobile-user-sheet-content {
            position: absolute;
            bottom: 0;
            left: 0;
            right: 0;
            background: #fff;
            border-radius: 20px 20px 0 0;
            box-shadow: 0 -4px 24px rgba(0, 0, 0, 0.15);
            transform: translateY(100%);
            transition: transform .3s cubic-bezier(0.4, 0.0, 0.2, 1);
            padding-bottom: calc(68px + env(safe-area-inset-bottom));
        }

        .mobile-user-sheet.active .mobile-user-sheet-content {
            transform: translateY(0);
        }

        .mobile-user-sheet-header {
            padding: 16px 20px 12px;
            border-bottom: 1px solid #e5e7eb;
        }

        .mobile-user-sheet-handle {
            width: 40px;
            height: 4px;
            background: #d1d5db;
            border-radius: 2px;
            margin: 0 auto 16px;
        }

        .mobile-user-info {
            display: flex;
            align-items: center;
            gap: 12px;
        }

        .mobile-user-avatar {
            width: 48px;
            height: 48px;
            border-radius: 50%;
            background: linear-gradient(135deg, #FFE7CC, #FFD9A8);
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 24px;
            flex-shrink: 0;
        }

        .mobile-user-details {
            flex: 1;
            min-width: 0;
        }

        .mobile-user-name {
            font-size: 16px;
            font-weight: 600;
            color: #111827;
            margin-bottom: 2px;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }

        .mobile-user-email {
            font-size: 13px;
            color: #6b7280;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }

        .mobile-user-sheet-body {
            padding: 8px 0;
        }

        .mobile-user-sheet-item {
            display: flex;
            align-items: center;
            gap: 16px;
            padding: 14px 20px;
            text-decoration: none;
            color: #374151;
            font-size: 15px;
            transition: background .2s;
            border: none;
            background: none;
            width: 100%;
            text-align: left;
            cursor: pointer;
        }

        .mobile-user-sheet-item:active {
            background: #f3f4f6;
        }

        .mobile-user-sheet-icon {
            font-size: 20px;
            width: 24px;
            text-align: center;
            flex-shrink: 0;
        }

        .mobile-user-sheet-label {
            flex: 1;
            font-weight: 500;
        }

        .mobile-user-sheet-divider {
            height: 1px;
            background: #e5e7eb;
            margin: 8px 0;
        }
    }

    /* END NAVBAR */

    .logo img {
        display: block;
    }

    .search {
        flex: 1;
        position: relative;
        display: flex;
        align-items: center;
        gap: 0;
        background: #fff;
        border: 1.5px solid #e5e7eb;
        border-radius: 12px;
        padding: 0 16px;
        height: 38px;
        transition: all 0.3s ease;
    }

    .search:focus-within {
        border-color: #fb923c;
        box-shadow: 0 0 0 3px rgba(251, 146, 60, 0.1);
    }

    .search input {
        flex: 1;
        border: none;
        outline: none;
        background: transparent;
        font-size: 15px;
        padding: 0 12px;
        height: 100%;
        color: #1f2937;
    }

    .search input::placeholder {
        color: #9ca3af;
    }

    .search-icon-btn {
        background: transparent;
        border: none;
        padding: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        cursor: pointer;
        color: #6b7280;
        transition: color 0.2s ease;
        flex-shrink: 0;
    }

    .search-icon-btn:hover {
        color: #fb923c;
    }

    .search-suggest {
        position: absolute;
        left: 0;
        right: 0;
        top: 100%;
        background: #fff;
        border: 1px solid var(--border);
        border-radius: var(--radius);
        padding: 8px 0;
        box-shadow: 0 8px 20px rgba(0, 0, 0, .08);
        margin-top: 4px;
        font-size: 14px;
        max-height: 260px;
        overflow: auto;
    }

    .search-suggest div {
        padding: 6px 12px;
        cursor: pointer;
    }

    .search-suggest div:hover {
        background: var(--gray-100);
    }

    .nav-actions {
        display: flex;

        align-items: center;
    }

    .icon-btn,
    .login-btn {
        padding: 14px 12px;
        border-radius: var(--radius);
        cursor: pointer;
        font-size: 19px;
        transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
        height: 55px;
        position: relative;
        box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06), 0 0 0 1px rgba(255, 255, 255, 0.5) inset;
        backdrop-filter: blur(8px);
        -webkit-backdrop-filter: blur(8px);
        margin: 0px 11px;
        width: 135px;
        background: #16c48d;
        border: black solid;
        text-decoration: none;
        color: black;
        text-align: center;

        justify-content: center
    }

    .login-btn a {
        text-align: center;
        align-items: center;
    }


    .icon-btn:hover,
    .login-btn:hover {
        background: linear-gradient(135deg, rgba(249, 250, 251, 1), rgba(243, 244, 246, 0.95));
        border-color: rgba(209, 213, 219, 0.8);
        box-shadow:
            0 2px 8px rgba(0, 0, 0, 0.08),
            0 0 0 1px rgba(255, 255, 255, 0.6) inset;
        transform: translateY(-1px);
    }

    .cart-indicator,
    .compare-indicator {
        position: relative;
    }

    .badge {
        background: linear-gradient(135deg, #EF4444, #DC2626);
        color: #fff;
        font-size: 10.5px;
        font-weight: 600;
        padding: 2px 6px;
        border-radius: 999px;
        position: absolute;
        top: -6px;
        right: -6px;
        min-width: 18px;
        height: 18px;
        display: flex;
        align-items: center;
        justify-content: center;
        box-shadow:
            0 2px 8px rgba(239, 68, 68, 0.4),
            0 0 0 2px #fff,
            0 0 12px -2px rgba(239, 68, 68, 0.6);
        transition: all 0.3s ease;
    }

    .icon-btn:hover .badge {
        transform: scale(1.08);
        box-shadow:
            0 4px 12px rgba(239, 68, 68, 0.5),
            0 0 0 2px #fff,
            0 0 16px -2px rgba(239, 68, 68, 0.7);
    }

    .badge.is-empty {
        display: none;
    }

    /* User Menu Dropdown */
    .user-menu {
        position: relative;
    }

    .user-dropdown {
        position: absolute;
        top: calc(100% + 8px);
        right: 0;
        background: #fff;
        border: 1px solid var(--border);
        border-radius: 12px;
        box-shadow: 0 10px 40px rgba(0, 0, 0, 0.12);
        min-width: 200px;
        padding: 8px 0;
        z-index: 9999;
    }

    /* Ensure dropdown is visible when not hidden */
    .user-dropdown:not([hidden]) {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
    }

    /* Mobile: Force user dropdown to be visible above everything */
    @media (max-width:640px) {
        .user-dropdown:not([hidden]) {
            position: fixed !important;
            z-index: 9999 !important;
            top: 60px !important;
            right: 16px !important;
        }
    }

    .dropdown-item {
        display: flex;
        align-items: center;
        gap: 12px;
        padding: 10px 16px;
        text-decoration: none;
        color: var(--gray-700);
        font-size: 14px;
        transition: var(--transition);
        border: none;
        background: none;
        width: 100%;
        text-align: left;
        cursor: pointer;
    }

    .dropdown-item:hover {
        background: var(--gray-100);
        color: var(--gray-900);
    }

    .dropdown-icon {
        font-size: 16px;
        opacity: 0.7;
    }

    .dropdown-separator {
        height: 1px;
        background: var(--border);
        margin: 8px 0;
    }

    .login-btn.logged-in {
        background: linear-gradient(135deg, rgba(255, 245, 230, 0.8), rgba(255, 231, 204, 0.6));
        border: 1px solid rgba(242, 140, 26, 0.2);
        color: var(--brand-700);
        max-width: 200px;
        /* Prevent button from getting too wide */
        display: inline-flex;
        align-items: center;
        gap: 10px;
        padding: 4px 12px 4px 4px;
        transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
        position: relative;
        overflow: hidden;
        box-shadow:
            0 1px 3px rgba(242, 140, 26, 0.08),
            0 0 0 1px rgba(255, 255, 255, 0.5) inset,
            0 0 12px -6px rgba(242, 140, 26, 0.1);
        backdrop-filter: blur(8px);
        -webkit-backdrop-filter: blur(8px);
    }

    /* Subtle background glow effect */
    .login-btn.logged-in::before {
        content: '';
        position: absolute;
        top: 50%;
        left: 0;
        width: 32px;
        height: 32px;
        background: radial-gradient(circle, rgba(242, 140, 26, 0.15), transparent 70%);
        transform: translateY(-50%);
        opacity: 0;
        transition: opacity 0.3s ease;
    }

    .login-btn.logged-in:hover::before {
        opacity: 1;
    }

    .login-btn.logged-in .user-avatar {
        width: 32px;
        height: 32px;
        border-radius: 50%;
        background: linear-gradient(135deg, #FFE7CC 0%, #FFD9A8 50%, #FFCC80 100%);
        color: #D97809;
        font-size: 11.5px;
        font-weight: 700;
        display: flex;
        align-items: center;
        justify-content: center;
        flex-shrink: 0;
        letter-spacing: 0.3px;
        position: relative;
        box-shadow:
            0 2px 8px rgba(242, 140, 26, 0.25),
            0 1px 3px rgba(0, 0, 0, 0.12),
            inset 0 1px 0 rgba(255, 255, 255, 0.5);
        transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    }

    /* Ring gradient border */
    .login-btn.logged-in .user-avatar::before {
        content: '';
        position: absolute;
        inset: -2px;
        border-radius: 50%;
        padding: 2px;
        background: linear-gradient(135deg, #F28C1A, #FFD9A8, #F28C1A);
        -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
        -webkit-mask-composite: xor;
        mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
        mask-composite: exclude;
        opacity: 0;
        transition: opacity 0.3s ease;
    }

    .login-btn.logged-in:hover .user-avatar::before {
        opacity: 1;
    }

    .login-btn.logged-in:hover .user-avatar {
        transform: scale(1.08) rotate(-3deg);
        box-shadow:
            0 4px 12px rgba(242, 140, 26, 0.35),
            0 2px 6px rgba(0, 0, 0, 0.15),
            inset 0 1px 0 rgba(255, 255, 255, 0.6);
    }

    .login-btn.logged-in .login-text {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        flex: 1;
        min-width: 0;
        font-weight: 500;
        font-size: 14px;
        transition: color 0.2s ease;
    }

    .login-btn.logged-in:hover .login-text {
        color: var(--brand-600);
    }

    .login-btn.logged-in:hover {
        background: linear-gradient(135deg, rgba(255, 245, 230, 0.95), rgba(255, 231, 204, 0.85));
        border-color: rgba(242, 140, 26, 0.3);
        box-shadow:
            0 4px 16px -4px rgba(242, 140, 26, 0.25),
            0 0 0 1px rgba(242, 140, 26, 0.1) inset,
            0 1px 2px rgba(0, 0, 0, 0.05);
        transform: translateY(-1px);
    }

    /* Desktop: hide wrapper elements, show menu normally */
    @media (min-width: 761px) {
        .mega-cats-wrapper {
            display: contents;
            /* Remove wrapper from layout */
        }

        .mega-cats-fade {
            display: none !important;
            /* Hide fade on desktop */
        }
    }

    .mega-cats {
        display: flex;
        gap: 5px;
        /* padding:6px 16px 10px; */
        scrollbar-width: none;
        position: relative;
        z-index: 510;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        flex: 1;
    }

    .mega-cats::-webkit-scrollbar {
        display: none;
    }

    .mega-cats a {
        text-decoration: none;
        font-size: 14px;
        color: var(--gray-700);
        padding: 6px 10px;
        border-radius: 6px;
        white-space: nowrap;
        transition: var(--transition);
    }

    .mega-cats a:hover {
        background: var(--brand-100);
        color: var(--brand-600);
    }

    /*.mega-cats::after {
  content:'';
  position:absolute;
  right:0;
  top:0;
  width:40px;
  height:100%;
  background:linear-gradient(to right,rgba(255,255,255,0),#fff);
  pointer-events:none;
}*/

    /* Tambahan untuk tombol More & dropdown.
   Style dasar .mega-cats dan .mega-cats a tetap pakai definisi Anda. */

    .mega-cats-more {
        position: relative;
        display: flex;
        align-items: center;
    }

    .mega-cats-more.active>.mega-more-btn {
        background: var(--brand-600);
        color: #fff;
    }

    .mega-more-btn {
        cursor: pointer;
        border: none;
        background: var(--gray-100, #f5f5f5);
        color: var(--gray-700, #333);
        padding: 6px 12px;
        font-size: 16px;
        line-height: 1;
        border-radius: 6px;
        display: flex;
        align-items: center;
        justify-content: center;
        transition: var(--transition);
    }

    .mega-more-btn:hover {
        background: var(--brand-100);
        color: var(--brand-600);
    }

    .mega-more-dropdown {
        position: absolute;
        top: 100%;
        right: 0;
        margin-top: 8px;
        background: #fff;
        border: 1px solid var(--gray-200, #e3e6e9);
        border-radius: 10px;
        padding: 12px 14px 14px;
        min-width: 400px;
        max-width: 520px;
        max-height: 420px;
        box-shadow: 0 12px 32px -8px rgba(25, 40, 65, .25);
        z-index: 3000;
    }

    .mega-more-grid {
        display: grid;
        grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
        gap: 8px 10px;
        overflow-x: hidden;
        max-height: 380px;
        overscroll-behavior: contain;
        scrollbar-width: thin;
    }

    .mega-more-grid::-webkit-scrollbar {
        width: 6px;
    }

    .mega-more-grid::-webkit-scrollbar-thumb {
        background: var(--gray-300, #c7ccd1);
        border-radius: 3px;
    }

    /* Link di dropdown mewarisi style .mega-cats a (warna, padding, radius).
   Kita tambahkan state active agar konsisten. */
    .mega-more-grid a.active {
        background: var(--brand-600);
        color: #fff;
        font-weight: 600;
    }


    .hero {
        background: linear-gradient(135deg, var(--brand-50), #fff);
    }

    .h1,
    h2,
    li {
        color: #e5e7eb !important;
    }

    .hero-inner {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
        gap: 48px;
        align-items: center;
    }

    .hero-text h1 {
        font-size: 50px;
        line-height: 1.1;
        margin: 0;
        font-weight: 600;
        font-family: "Poppins", sans-serif;

    }

    .hero-text .text-brand {
        color: var(--brand-500);
    }

    .lead {
        font-size: 18px;
        color: var(--gray-700);
        margin-top: 16px;
    }

    .hero-cta {
        margin-top: 28px;
        display: flex;
        gap: 16px;
    }

    .hero-bullets {
        margin-top: 28px;
        display: flex;
        gap: 28px;
        font-size: 14px;
        color: var(--gray-600);
    }

    .hero-box {
        background: #fff;
        padding: 10px;
        border-radius: 16px;
        box-shadow: 0 4px 18px rgba(0, 0, 0, .08);
        /* min-height:320px; */
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .hero-box img {
        border-radius: 10px;
    }

    @media (max-width:680px) {
        .hero-inner {
            gap: 25px;
        }
    }

    .usp-section {
        position: relative;
        background:
            linear-gradient(180deg, #FFFDFB 0%, #FFFFFF 60%);
        border-top: 1px solid var(--border);
        border-bottom: 1px solid var(--border);
        padding: 10px 0 10px;
    }

    .usp-list {
        list-style: none;
        margin: 0;
        padding: 0;
        display: grid;
        gap: 26px;
    }

    .usp-list.variant-soft {
        grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
    }

    .usp-item {
        display: flex;
        gap: 16px;
        align-items: flex-start;
        background: #fff;
        padding: 18px 18px 18px 16px;
        border: 1px solid rgba(226, 226, 226, 0.7);
        border-radius: 18px;
        position: relative;
        overflow: hidden;
        isolation: isolate;
        box-shadow: 0 2px 4px -1px rgba(0, 0, 0, .04), 0 6px 18px -6px rgba(0, 0, 0, .08);
        transition: .35s cubic-bezier(.16, .8, .32, 1);
    }

    .usp-item::before {
        content: "";
        position: absolute;
        inset: 0;
        background: radial-gradient(circle at 18% 22%, rgba(242, 140, 26, .18), transparent 60%);
        opacity: .65;
        transition: .5s;
        z-index: -1;
    }

    .usp-item:hover {
        transform: translateY(-6px);
        box-shadow: 0 10px 26px -8px rgba(0, 0, 0, .15), 0 3px 8px -2px rgba(0, 0, 0, .08);
        border-color: rgba(242, 140, 26, .35);
    }

    .usp-item:hover::before {
        background: radial-gradient(circle at 70% 40%, rgba(242, 140, 26, .22), transparent 65%);
    }

    .usp-icon {
        flex: 0 0 56px;
        width: 56px;
        height: 56px;
        border-radius: 16px;
        display: flex;
        align-items: center;
        justify-content: center;
        background:
            linear-gradient(135deg, #FFE7CC, #FFD9A8);
        position: relative;
        box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .6), 0 4px 10px -3px rgba(0, 0, 0, .15);
        transition: .45s;
    }

    .usp-item:hover .usp-icon {
        transform: rotate(-4deg) scale(1.06);
        box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .8), 0 6px 14px -4px rgba(0, 0, 0, .20);
    }

    .usp-icon svg {
        width: 28px;
        height: 28px;
        display: block;
        filter: drop-shadow(0 2px 2px rgba(0, 0, 0, .18));
    }

    .usp-text h3 {
        font-size: 15px;
        font-weight: 600;
        margin: 2px 0 6px;
        letter-spacing: .2px;
    }

    .usp-text p {
        font-size: 13px;
        line-height: 1.3;
        margin: 0;
        color: var(--gray-600);
    }

    @media (max-width:680px) {
        .usp-section {
            padding: 5px 0 5px;
            margin-bottom: 0.75rem;
        }

        .usp-item {
            padding: 16px 14px;
        }

        .usp-icon {
            width: 50px;
            height: 50px;
            border-radius: 14px;
        }

        .usp-text h3 {
            font-size: 14px;
            margin-bottom: 4px;
        }

        .usp-text p {
            font-size: 12.5px;
        }

        .usp-list {
            gap: 10px;
        }
    }

    .flash {
        padding: 50px 0 30px;
        background: #fff;
    }

    .flash-head {
        display: flex;
        align-items: center;
        justify-content: space-between;
        margin-bottom: 20px;
    }

    .flash-head h2 {
        margin: 0;
        font-size: 24px;
        font-family: "Poppins";
    }

    .flash .countdown {
        font-family: monospace;
        background: #111;
        color: #fff;
        padding: 8px 14px;
        border-radius: 8px;
        font-size: 16px;
        letter-spacing: 1px;
    }

    .flash-scroll {
        display: flex;
        gap: 16px;
        overflow-x: auto;
        padding-bottom: 6px;
        scrollbar-width: none;
    }

    .flash-scroll::-webkit-scrollbar {
        display: none;
    }

    .products {
        padding: 60px 0;
        background: #fff;
    }

    .products-head {
        display: flex;
        justify-content: space-between;
        align-items: center;
        margin-bottom: 24px;
        flex-wrap: wrap;
        gap: 16px;
    }

    .products-head h2 {
        margin: 0;
        font-size: 24px;
        font-family: "Poppins";
    }

    .product-filters input {
        padding: 8px 12px;
        border: 1px solid var(--border);
        border-radius: 8px;
        font-size: 14px;
        width: 220px;
    }

    .product-grid {
        display: grid;
        gap: 24px;
        grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    }

    .prod-card {
        background: #fff;
        border: 1px solid var(--border);
        padding: 12px;
        border-radius: 12px;
        position: relative;
        display: flex;
        flex-direction: column;
        transition: var(--transition);
    }

    .prod-card.small {
        min-width: 160px;
    }

    .prod-card:hover {
        box-shadow: 0 8px 20px rgba(0, 0, 0, .12);
        transform: translateY(-3px);
    }

    .prod-card .img-box {
        background: var(--gray-100);
        border-radius: 10px;
        aspect-ratio: 1/1;
        display: flex;
        align-items: center;
        justify-content: center;
        overflow: hidden;
    }

    .prod-card .img-box img {
        width: 100%;
        height: 100%;
        object-fit: contain;
        transition: var(--transition);
    }

    .prod-card:hover .img-box img {
        transform: scale(1.04);
    }

    .prod-card .name {
        font-size: 13.5px;
        font-weight: 500;
        margin: 10px 0 6px;
        min-height: 36px;
        line-height: 1.3;
    }

    .price {
        display: flex;
        gap: 6px;
        align-items: center;
        flex-wrap: wrap;
    }

    .price strong {
        color: var(--brand-600);
        font-size: 14px;
    }



    .price .old {
        font-size: 11px;
        color: var(--gray-500);
        text-decoration: line-through;
    }

    .tag.discount {
        position: absolute;
        top: 8px;
        left: 8px;
        background: #E54848;
        color: #fff;
        font-size: 11px;
        padding: 4px 6px;
        border-radius: 6px;
        font-weight: 600;
    }

    .btn {
        border: none;
        cursor: pointer;
        font-weight: 500;
        font-size: 14px;
        padding: 12px 22px;
        border-radius: 10px;
        background: var(--gray-900);
        color: #fff;
        transition: var(--transition);
        text-decoration: none;
        text-align: center;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 6px;
    }

    .btn:hover {
        background: #000;
    }

    .btn-primary {
        background: var(--brand-500);
    }

    .btn-primary:hover {
        background: var(--brand-600);
    }

    .btn-outline {
        background: #fff;
        color: var(--gray-900);
        border: 1px solid var(--border);
    }

    .btn-outline:hover {
        background: var(--gray-100);
    }

    .btn-sm {
        padding: 8px 14px;
        font-size: 13px;
    }

    .btn-mini {
        padding: 6px 10px;
        font-size: 12px;
    }

    .add-cart {
        margin-top: auto;
        background: var(--brand-500);
        color: #fff;
    }

    .add-cart:hover {
        background: var(--brand-600);
    }

    /* ==== FOOTER COMPACT FIX PATCH (final) ==== */

    /* 1. Pastikan grid aktif */

    .site-footer.footer-compact .ft-grid {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
        gap: 30px 40px;
        align-items: start;
    }

    /* 2. Spacing atas bawah dipadatkan */
    .site-footer.footer-compact .ft-top {
        padding: 42px 0 26px;
    }

    /* 3. Judul & teks */
    .site-footer.footer-compact .ft-title {
        margin: 0 0 14px;
        font-size: 14px;
        letter-spacing: .8px;
        text-transform: uppercase;
        font-weight: 600;
        color: #82b1c9;
    }

    .site-footer.footer-compact .ft-desc,
    .site-footer.footer-compact .ft-text {
        margin: 0 0 16px;
        font-size: 13.5px;
        line-height: 1.45;
        color: #c6d6e0;
        max-width: 330px;
    }

    .site-footer.footer-compact .ft-desc.sm-gap {
        margin-top: 18px;
    }

    /* 4. Reset ikon SVG agar tidak membesar */
    .site-footer.footer-compact svg {
        width: 20px;
        height: 20px;
        flex: 0 0 20px;
        display: inline-block;
    }

    .site-footer.footer-compact .ft-social svg {
        width: 18px;
        height: 18px;
    }

    .site-footer.footer-compact .ft-wa-btn svg {
        width: 18px;
        height: 18px;
    }

    /* Jika ada aturan global svg { width:100%; } — paksa override */
    svg {
        max-width: 100%;
    }

    .site-footer.footer-compact svg {
        width: 20px !important;
        height: 20px !important;
    }

    /* 5. Link list */
    .site-footer.footer-compact .ft-links {
        list-style: none;
        margin: 0 0 12px;
        padding: 0;
        display: flex;
        flex-direction: column;
        gap: 4px;
    }

    .site-footer.footer-compact .ft-links li {
        margin: 0;
    }

    .site-footer.footer-compact .ft-links a {
        display: flex;
        align-items: center;
        gap: 8px;
        font-size: 13.5px;
        padding: 5px 2px;
        text-decoration: none;
        color: #c6d6e0;
        border-radius: 8px;
        transition: .25s;
    }

    .site-footer.footer-compact .ft-links a:hover {
        background: rgba(255, 255, 255, .06);
        padding-left: 6px;
        color: #fff;
    }

    .site-footer.footer-compact .ico-s {
        width: 24px;
        height: 24px;
        background: #103346;
        color: #89b8cf;
        border-radius: 6px;
        display: flex;
        align-items: center;
        justify-content: center;
        flex: 0 0 24px;
        font-size: 12px;
        transition: .3s;
    }

    .site-footer.footer-compact .ft-links a:hover .ico-s {
        background: #F28C1A;
        color: #fff;
        transform: rotate(-4deg);
    }

    /* 6. WhatsApp button */
    .site-footer.footer-compact .ft-wa-btn {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        background: #fff;
        color: #062437;
        padding: 8px 18px;
        font-size: 13.5px;
        border-radius: 22px;
        font-weight: 500;
        text-decoration: none;
        box-shadow: 0 3px 8px -3px rgba(0, 0, 0, .45);
        transition: .25s;
    }

    .site-footer.footer-compact .ft-wa-btn:hover {
        transform: translateY(-2px);
        box-shadow: 0 6px 14px -6px rgba(0, 0, 0, .55);
    }

    /* 7. Sosial */
    .site-footer.footer-compact .ft-social {
        display: flex;
        gap: 12px;
        margin-top: 4px;
    }

    .site-footer.footer-compact .ft-social a {
        width: 34px;
        height: 34px;
        background: rgba(255, 255, 255, .08);
        display: flex;
        align-items: center;
        justify-content: center;
        border-radius: 10px;
        color: #c6d6e0;
        transition: .25s;
    }

    .site-footer.footer-compact .ft-social a:hover {
        background: #F28C1A;
        color: #fff;
    }

    /* 8. Alamat */
    .site-footer.footer-compact .ft-address {
        font-size: 12.5px;
        line-height: 1.44;
        color: #8fa4b1;
        max-width: 330px;
        margin-top: 12px;
    }

    .site-footer.footer-compact .ft-address .company {
        margin: 0 0 4px;
        font-weight: 600;
        color: #e5f2f7;
        font-size: 12.8px;
    }

    /* 9. Payments kecil & rapi */
    .site-footer.footer-compact .ft-payments {
        margin-top: 14px;
        display: flex;
        flex-direction: column;
        gap: 8px;
        max-width: 350px;
    }

    .site-footer.footer-compact .ft-payments .pay-row {
        display: flex;
        gap: 8px;
        flex-wrap: wrap;
    }

    .site-footer.footer-compact .ft-payments img {
        width: 46px;
        height: 32px;
        padding: 3px 5px;
        background: #fff;
        border-radius: 7px;
        object-fit: contain;
        box-shadow: 0 2px 6px -3px rgba(0, 0, 0, .45);
        transition: .25s;
    }

    .site-footer.footer-compact .ft-payments img:hover {
        transform: translateY(-3px);
        box-shadow: 0 5px 12px -6px rgba(0, 0, 0, .55);
    }

    /* 10. Bottom bar */
    .site-footer.footer-compact .ft-bottom {
        border-top: 1px solid rgba(255, 255, 255, .08);
        background: #041f31;
        padding: 12px 0 16px;
        margin-top: 4px;
    }

    .site-footer.footer-compact .ft-copy {
        font-size: 11.5px;
        color: #8fa7b5;
        display: flex;
        flex-wrap: wrap;
        gap: 12px;
        justify-content: center;
        line-height: 1.3;
        margin: 0;
    }

    .site-footer.footer-compact .ft-copy span {
        position: relative;
        padding: 0 10px;
    }

    .site-footer.footer-compact .ft-copy span+span:before {
        content: "";
        position: absolute;
        left: 0;
        top: 50%;
        width: 1px;
        height: 12px;
        background: rgba(255, 255, 255, .14);
        transform: translateY(-50%);
    }

    @media (max-width:580px) {
        .site-footer.footer-compact .ft-top {
            padding: 34px 0 18px;
        }

        .site-footer.footer-compact .ft-grid {
            gap: 26px 20px;
        }

        .site-footer.footer-compact .ft-copy span {
            padding: 0;
        }

        .site-footer.footer-compact .ft-copy span+span:before {
            display: none;
        }
    }

    .copy {
        margin-top: 40px;
        border-top: 1px solid #222;
        text-align: center;
        padding: 18px 0;
        font-size: 12px;
        color: #666;
    }

    @media (max-width:760px) {
        .hero-text h1 {
            font-size: 38px;
        }

        .hero {
            padding: 0px 0 30px;
        }

        .topbar-inner {
            flex-direction: column;
            gap: 4px;
            padding: 6px 0;
        }

        .nav-inner {
            flex-wrap: wrap;
        }

        .mega-cats {
            gap: 10px;
        }

        .product-grid {
            gap: 16px;
        }

        .prod-card {
            padding: 10px;
        }
    }

    /* === PLAZA IT DARK ORANGE FOOTER THEME === */
    .site-footer.footer-compact {
        --ft-bg-0: #051722;
        --ft-bg-1: #072534;
        --ft-bg-2: #0B2F40;
        --ft-bg-3: #103A4E;
        --ft-orange: #F28C1A;
        --ft-orange-dark: #D97809;
        --ft-text: #E9F2F6;
        --ft-text-sec: #B8CAD3;
        --ft-text-muted: #8FA4B1;
        --ft-divider: rgba(255, 255, 255, 0.08);
        --ft-glow: rgba(242, 140, 26, 0.18);
        --ft-glow-fade: rgba(242, 140, 26, 0);
        color: var(--ft-text);
    }

    /* BASE TEXT / LINKS (override sebelumnya jika perlu) */
    .site-footer.footer-compact .ft-title {
        color: #9CC5D7;
    }

    .site-footer.footer-compact .ft-links a {
        color: var(--ft-text-sec);
    }

    .site-footer.footer-compact .ft-links a:hover {
        color: #fff;
    }

    .site-footer.footer-compact .ft-address {
        color: var(--ft-text-muted);
    }

    .site-footer.footer-compact .ft-copy {
        color: #9AB2BD;
    }

    /* ICON BACKGROUND (kubu gelap) */
    .site-footer.footer-compact .ico-s {
        background: #0F3647;
        color: #9FC7DA;
    }

    .site-footer.footer-compact .ft-links a:hover .ico-s {
        background: var(--ft-orange);
        color: #fff;
    }

    /* WhatsApp button biarkan putih agar kontras */
    .site-footer.footer-compact .ft-wa-btn {
        box-shadow: 0 4px 12px -5px rgba(0, 0, 0, .6), 0 0 0 3px rgba(255, 255, 255, 0.05);
    }

    .site-footer.footer-compact .ft-wa-btn:hover {
        box-shadow: 0 8px 20px -8px rgba(0, 0, 0, .65), 0 0 0 3px rgba(242, 140, 26, 0.25);
    }

    /* Payment cards border halus */
    .site-footer.footer-compact .ft-payments img {
        box-shadow: 0 2px 6px -3px rgba(0, 0, 0, .55), 0 0 0 1px rgba(255, 255, 255, 0.05);
    }

    .site-footer.footer-compact .ft-payments img:hover {
        box-shadow: 0 6px 14px -6px rgba(0, 0, 0, .65), 0 0 0 1px rgba(242, 140, 26, 0.4);
    }

    /* ========== VARIANT A: DIAGONAL EMBER (AKTIF) ========== */
    .site-footer.footer-compact.variant-ember {
        background:
            radial-gradient(circle at 78% 82%, var(--ft-glow) 0%, var(--ft-glow-fade) 55%),
            linear-gradient(140deg, var(--ft-bg-1) 0%, var(--ft-bg-2) 55%, var(--ft-bg-0) 100%);
    }

    .site-footer.footer-compact.variant-ember .ft-bottom {
        background: rgba(0, 0, 0, 0.25);
        backdrop-filter: blur(2px);
    }

    /* ========== VARIANT B: TOP BAR ORANGE ========== */
    .site-footer.footer-compact.variant-bar {
        background: var(--ft-bg-1);
        position: relative;
    }

    .site-footer.footer-compact.variant-bar::before {
        content: "";
        position: absolute;
        left: 0;
        top: 0;
        width: 100%;
        height: 3px;
        background: linear-gradient(90deg, var(--ft-orange-dark), var(--ft-orange));
        box-shadow: 0 0 12px -2px var(--ft-orange);
    }

    .site-footer.footer-compact.variant-bar .ft-bottom {
        background: #041c28;
    }

    /* ========== VARIANT C: RADIAL GLOW BAWAH ========== */
    .site-footer.footer-compact.variant-radial {
        background:
            radial-gradient(circle at 70% 90%, rgba(242, 140, 26, 0.22) 0%, rgba(242, 140, 26, 0.04) 38%, rgba(242, 140, 26, 0) 65%),
            linear-gradient(150deg, #052131 0%, #062d3f 50%, #041924 100%);
    }

    .site-footer.footer-compact.variant-radial .ft-bottom {
        background: #041c29;
    }

    /* ========== VARIANT D: LAYERED STRIPES ========== */
    .site-footer.footer-compact.variant-stripes {
        background:
            repeating-linear-gradient(180deg, rgba(255, 255, 255, 0.015) 0 38px, rgba(255, 255, 255, 0) 38px 76px),
            linear-gradient(130deg, #052636 0%, #062a3c 60%, #041d28 100%);
        position: relative;
    }

    .site-footer.footer-compact.variant-stripes::after {
        content: "";
        position: absolute;
        left: 0;
        bottom: 0;
        width: 100%;
        height: 110px;
        background: linear-gradient(0deg, rgba(0, 0, 0, .35), rgba(0, 0, 0, 0));
        pointer-events: none;
    }

    .site-footer.footer-compact.variant-stripes .ft-bottom {
        background: #031821;
    }

    /* Garis aksen oranye tipis di atas bottom */
    .site-footer.footer-compact.variant-stripes .ft-bottom {
        position: relative;
    }

    .site-footer.footer-compact.variant-stripes .ft-bottom::before {
        content: "";
        position: absolute;
        left: 0;
        top: 0;
        width: 100%;
        height: 2px;
        background: linear-gradient(90deg, rgba(242, 140, 26, 0), rgba(242, 140, 26, .65), rgba(242, 140, 26, 0));
    }

    /* ========== VARIANT E: GLASS PANEL ========== */
    .site-footer.footer-compact.variant-glass {
        background: linear-gradient(145deg, #051c29 0%, #041620 65%, #03121b 100%);
    }

    .site-footer.footer-compact.variant-glass .ft-grid {
        position: relative;
        padding: 32px clamp(10px, 2vw, 24px);
        border-radius: 22px;
        background: linear-gradient(140deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02));
        border: 1px solid rgba(255, 255, 255, 0.08);
        box-shadow: 0 12px 28px -12px rgba(0, 0, 0, 0.45), 0 0 0 1px rgba(255, 255, 255, 0.04) inset;
        backdrop-filter: blur(8px);
        -webkit-backdrop-filter: blur(8px);
    }

    .site-footer.footer-compact.variant-glass .ft-bottom {
        background: #02141d;
    }

    /* HOVER ACCENTS */
    .site-footer.footer-compact a {
        transition: color .25s, background .25s, box-shadow .25s;
    }

    .site-footer.footer-compact .ft-links a:hover {
        box-shadow: 0 2px 6px -3px rgba(0, 0, 0, .5),
            0 0 0 1px rgba(242, 140, 26, 0.55);
    }

    .site-footer.footer-compact .ft-social a {
        background: #0E3445;
        color: #bcd4dd;
    }

    .site-footer.footer-compact .ft-social a:hover {
        background: var(--ft-orange);
        color: #fff;
        box-shadow: 0 0 0 3px rgba(242, 140, 26, 0.28);
    }

    /* Divider di atas footer (opsional) */
    .footer-divider-top {
        height: 1px;
        background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.15), transparent);
        width: 100%;
        margin: 0 0 4px;
    }

    /* ==== MOBILE FOOTER COLLAPSE (Non-Homepage Only) ==== */

    /* Desktop: wrapper tidak mengganggu grid layout */
    .ft-collapsible-content {
        display: contents;
    }

    @media (max-width: 768px) {

        /* Wrapper untuk konten yang bisa collapse */
        .ft-top.ft-collapsible .ft-collapsible-content {
            display: block;
            max-height: 80px;
            overflow: hidden;
            position: relative;
            transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1);
        }

        /* Fade gradient overlay */
        .ft-top.ft-collapsible .ft-collapsible-content::after {
            content: '';
            position: absolute;
            bottom: 0;
            left: 0;
            right: 0;
            height: 70px;
            background: linear-gradient(to bottom, transparent 0%, rgba(6, 43, 69, 0.6) 40%, #062b45 100%);
            pointer-events: none;
            opacity: 1;
            transition: opacity 0.3s ease;
            z-index: 1;
        }

        /* State: Expanded */
        .ft-top.ft-collapsible.expanded .ft-collapsible-content {
            max-height: 1500px;
        }

        .ft-top.ft-collapsible.expanded .ft-collapsible-content::after {
            opacity: 0;
        }

        /* Expand Button - Di luar collapsible, selalu visible */
        .ft-expand-btn {
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 8px;
            width: 100%;
            margin: -8px 0 0;
            padding: 12px 20px;
            background: rgba(255, 255, 255, 0.12);
            border: 1px solid rgba(255, 255, 255, 0.25);
            border-radius: 10px;
            color: #e5f2f7;
            font-size: 13.5px;
            font-weight: 500;
            cursor: pointer;
            transition: all 0.3s ease;
            outline: none;
            position: relative;
            z-index: 10;
        }

        .ft-expand-btn:hover {
            background: rgba(255, 255, 255, 0.18);
            border-color: rgba(255, 255, 255, 0.35);
            color: #fff;
            transform: translateY(-2px);
        }

        .ft-expand-btn:active {
            transform: scale(0.98);
        }

        .ft-expand-btn svg {
            width: 18px;
            height: 18px;
            transition: transform 0.3s ease;
            fill: currentColor;
        }

        .ft-top.ft-collapsible.expanded .ft-expand-btn {
            margin-top: 15px;
        }

        .ft-top.ft-collapsible.expanded .ft-expand-btn svg {
            transform: rotate(180deg);
        }
    }

    /* Desktop: hide expand button */
    @media (min-width: 769px) {
        .ft-expand-btn {
            display: none !important;
        }
    }

    /* RESPONSIVE (jika background panel butuh penyesuaian) */
    @media (max-width:640px) {
        .site-footer.footer-compact.variant-glass .ft-grid {
            padding: 26px 18px;
        }
    }

    /* Mobile Bottom Navigation */
    .bottom-nav {
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        background: #ffffff;
        border-top: 1px solid #e5e7eb;
        z-index: 9998;
        /* Below chat widget */
        box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.05);
        display: none;
        /* Hidden on desktop */
    }

    .bottom-nav-inner {
        display: flex;
        justify-content: space-around;
        align-items: center;
        padding: 2px 0;
        max-width: 640px;
        margin: 0 auto;
    }

    .bottom-nav-item {
        flex: 1;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 4px;
        padding: 8px 8px;
        background: none;
        border: none;
        cursor: pointer;
        text-decoration: none;
        color: #6b7280;
        transition: all 0.3s ease;
        position: relative;
    }

    .bottom-nav-item:hover {
        color: #F28C1A;
    }

    .bottom-nav-item.active {
        flex-direction: row;
        gap: 8px;
        background: linear-gradient(135deg, #F28C1A 0%, #D97809 100%);
        color: white;
        border-radius: 20px;
        padding: 8px 16px;
        box-shadow: 0 2px 8px rgba(242, 140, 26, 0.3);
    }

    .bottom-nav-item-icon {
        width: 24px;
        height: 24px;
        position: relative;
    }

    .bottom-nav-item-icon svg {
        width: 100%;
        height: 100%;
    }

    /* Icon variant switching */
    .bottom-nav-item .icon-outlined {
        display: block;
    }

    .bottom-nav-item .icon-filled {
        display: none;
    }

    .bottom-nav-item.active .icon-outlined {
        display: none;
    }

    .bottom-nav-item.active .icon-filled {
        display: block;
    }

    .bottom-nav-item-label {
        font-size: 12px;
        font-weight: 600;
        line-height: 1;
        display: none;
        white-space: nowrap;
    }

    .bottom-nav-item.active .bottom-nav-item-label {
        display: block;
    }

    /* Avatar styles for bottom-nav */
    .bottom-nav-avatar-img,
    .bottom-nav-avatar-initials {
        width: 24px;
        height: 24px;
        border-radius: 50%;
        display: block;
    }

    .bottom-nav-avatar-img {
        object-fit: cover;
    }

    .bottom-nav-avatar-initials {
        background: linear-gradient(135deg, #F28C1A 0%, #D97809 100%);
        color: white;
        font-size: 10px;
        font-weight: 700;
        display: flex;
        align-items: center;
        justify-content: center;
        line-height: 1;
        letter-spacing: 0.5px;
    }

    /* Hide SVG when avatar is shown */
    .bottom-nav-item-icon:has(.bottom-nav-avatar-img) .bottom-nav-svg-icon,
    .bottom-nav-item-icon:has(.bottom-nav-avatar-initials) .bottom-nav-svg-icon {
        display: none;
    }

    /* Active state adjustments for avatar */
    .bottom-nav-item.active .bottom-nav-avatar-initials {
        background: white;
        color: #F28C1A;
        border: 2px solid rgba(255, 255, 255, 0.8);
        box-sizing: border-box;
    }

    .bottom-nav-item.active .bottom-nav-avatar-img {
        border: 2px solid rgba(255, 255, 255, 0.9);
        box-sizing: border-box;
    }

    .bottom-nav-item-badge {
        position: absolute;
        top: -4px;
        right: -4px;
        background: #ef4444;
        color: white;
        border-radius: 10px;
        padding: 2px 5px;
        font-size: 10px;
        font-weight: 600;
        min-width: 18px;
        height: 18px;
        display: flex;
        align-items: center;
        justify-content: center;
        line-height: 1;
    }

    /* Show on mobile only */
    @media (max-width: 640px) {
        .bottom-nav {
            display: block;
        }

        /* Add bottom padding to body to prevent content being hidden */
        body {
            padding-bottom: 60px;
        }
    }

    /* Mobile User Sheet - Bottom Sheet for Profile Menu */
    .mobile-user-sheet {
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        z-index: 10000;
        pointer-events: none;
    }

    .mobile-user-sheet:not([hidden]) {
        pointer-events: auto;
    }

    .mobile-user-sheet-backdrop {
        position: fixed;
        inset: 0;
        background: rgba(0, 0, 0, 0.5);
        opacity: 0;
        transition: opacity 0.2s ease-out;
    }

    .mobile-user-sheet.active .mobile-user-sheet-backdrop {
        opacity: 1;
    }

    .mobile-user-sheet-content {
        position: absolute;
        bottom: 0;
        left: 0;
        right: 0;
        background: white;
        border-radius: 16px 16px 0 0;
        max-height: 80vh;
        overflow-y: auto;
        transform: translateY(100%);
        transition: transform 0.3s ease-out;
    }

    .mobile-user-sheet.active .mobile-user-sheet-content {
        transform: translateY(0);
    }

    .mobile-user-sheet-handle {
        width: 40px;
        height: 4px;
        background: #d1d5db;
        border-radius: 2px;
        margin: 12px auto 16px;
    }

    .mobile-user-sheet-header {
        padding: 0 20px 16px;
        border-bottom: 1px solid #e5e7eb;
    }

    .mobile-user-info {
        display: flex;
        align-items: center;
        gap: 12px;
    }

    .mobile-user-avatar {
        width: 48px;
        height: 48px;
        background: linear-gradient(135deg, #FFE7CC 0%, #FFD9A8 50%, #FFCC80 100%);
        border-radius: 50%;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 24px;
        color: #D97809;
        font-weight: 600;
    }

    .mobile-user-details {
        flex: 1;
    }

    .mobile-user-name {
        font-weight: 600;
        font-size: 16px;
        color: #1f2937;
        margin-bottom: 4px;
    }

    .mobile-user-email {
        font-size: 13px;
        color: #6b7280;
    }

    .mobile-user-sheet-body {
        padding: 8px 0;
    }

    .mobile-user-sheet-item {
        display: flex;
        align-items: center;
        gap: 12px;
        padding: 14px 20px;
        background: none;
        border: none;
        width: 100%;
        text-align: left;
        cursor: pointer;
        text-decoration: none;
        color: #374151;
        transition: background 0.2s;
    }

    .mobile-user-sheet-item:hover {
        background: #f9fafb;
    }

    .mobile-user-sheet-icon {
        font-size: 20px;
        width: 24px;
        text-align: center;
    }

    .mobile-user-sheet-label {
        font-size: 15px;
        font-weight: 500;
    }

    .mobile-user-sheet-divider {
        height: 1px;
        background: #e5e7eb;
        margin: 8px 0;
    }

    @keyframes fadeIn {
        from {
            opacity: 0;
        }

        to {
            opacity: 1;
        }
    }

    @keyframes slideUp {
        from {
            transform: translateY(100%);
        }

        to {
            transform: translateY(0);
        }
    }

    /* Ensure chat widget works well with bottom nav */
    @media (max-width: 640px) {
        .chat-widget {
            bottom: 0 !important;
            /* Chat opens from bottom */
        }

        .chat-popup {
            /* Chat popup should be above bottom nav */
            z-index: 9999;
        }
    }

    .search {
        position: relative;
    }

    /* AI Bot Toggle Button */
    .ai-bot-toggle {
        display: flex;
        align-items: center;
        justify-content: center;
        background: transparent;
        border: none;
        padding: 8px;
        cursor: pointer;
        border-radius: 8px;
        transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
        margin-left: 4px;
        flex-shrink: 0;
        display: none;
    }

    .ai-bot-toggle .bot-icon {
        color: #9ca3af;
        transition: all 0.3s ease;
    }

    .ai-bot-toggle:hover .bot-icon {
        color: #6b7280;
        transform: scale(1.1);
    }

    .ai-bot-toggle.active .bot-icon {
        color: #fb923c;
        animation: botPulse 2s ease-in-out infinite;
    }

    .ai-bot-toggle.active {
        background: rgba(251, 146, 60, 0.1);
    }

    .ai-bot-toggle.active:hover .bot-icon {
        color: #f97316;
    }

    @keyframes botPulse {

        0%,
        100% {
            transform: scale(1);
        }

        50% {
            transform: scale(1.12);
        }
    }

    /* Search Suggest Box */
    .search-suggest {
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        background: #fff;
        border: 1px solid #e1e4e8;
        border-top: none;
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
        max-height: 400px;
        overflow-y: auto;
        z-index: 100;
        padding: 0;
        font-size: 14px;
        border-radius: 0 0 8px 8px;
    }

    .suggest-item {
        display: flex;
        align-items: center;
        gap: 8px;
        padding: 10px 16px;
        cursor: pointer;
        transition: all 0.2s ease;
        border-bottom: 1px solid #f1f5f9;
    }

    .suggest-item:last-child {
        border-bottom: none;
    }

    .suggest-item:hover,
    .suggest-item.active {
        background: linear-gradient(90deg, #f8fafc 0%, #f1f5f9 100%);
        padding-left: 20px;
    }

    .suggest-thumb {
        width: 42px;
        height: 42px;
        object-fit: cover;
        border: 1px solid #ddd;
        border-radius: 4px;
        background: #fafafa;
    }

    .suggest-meta {
        flex: 1;
        min-width: 0;
    }

    .suggest-name {
        font-weight: 500;
        color: #222;
        line-height: 1.2;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .suggest-price {
        color: #d32f2f;
        font-size: 12px;
        margin-top: 2px;
    }

    /* AI Insights */
    .suggest-ai-insight {
        display: flex;
        align-items: center;
        gap: 8px;
        padding: 8px 12px;
        background: linear-gradient(135deg, #f0f9ff 0%, #e0f2fe 100%);
        border-bottom: 1px solid #bae6fd;
        color: #0369a1;
        font-size: 12px;
        font-weight: 500;
        line-height: 1.4;
    }

    .suggest-ai-insight svg {
        flex-shrink: 0;
        opacity: 0.8;
    }

    .suggest-ai-insight span {
        flex: 1;
    }

    /* AI Progress States */
    .ai-progress-container {
        padding: 20px 16px;
        background: linear-gradient(135deg, #fafbff 0%, #f5f7ff 100%);
    }

    .ai-progress-header {
        display: flex;
        align-items: center;
        gap: 10px;
        margin-bottom: 16px;
    }

    .ai-progress-icon {
        width: 36px;
        height: 36px;
        display: flex;
        align-items: center;
        justify-content: center;
        background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
        border-radius: 50%;
        color: #fff;
        font-size: 18px;
        animation: aiIconSpin 3s linear infinite;
    }

    @keyframes aiIconSpin {
        0% {
            transform: rotate(0deg);
        }

        100% {
            transform: rotate(360deg);
        }
    }

    .ai-progress-text {
        flex: 1;
    }

    .ai-progress-title {
        font-weight: 600;
        color: #1e293b;
        font-size: 14px;
        margin-bottom: 2px;
    }

    .ai-progress-subtitle {
        font-size: 12px;
        color: #64748b;
    }

    /* Progress Steps */
    .ai-progress-steps {
        display: flex;
        flex-direction: column;
        gap: 10px;
        margin-top: 16px;
    }

    .ai-progress-step {
        display: flex;
        align-items: center;
        gap: 10px;
        padding: 8px 12px;
        background: #fff;
        border-radius: 8px;
        border: 1px solid #e2e8f0;
        transition: all 0.3s ease;
    }

    .ai-progress-step.active {
        border-color: #667eea;
        background: #f8f9ff;
        box-shadow: 0 2px 8px rgba(102, 126, 234, 0.1);
    }

    .ai-progress-step.completed {
        border-color: #10b981;
        background: #f0fdf4;
    }

    .ai-step-icon {
        width: 20px;
        height: 20px;
        display: flex;
        align-items: center;
        justify-content: center;
        border-radius: 50%;
        font-size: 11px;
        flex-shrink: 0;
    }

    .ai-progress-step.active .ai-step-icon {
        background: #667eea;
        color: #fff;
        animation: pulse 1.5s ease-in-out infinite;
    }

    .ai-progress-step.completed .ai-step-icon {
        background: #10b981;
        color: #fff;
    }

    .ai-progress-step.pending .ai-step-icon {
        background: #e2e8f0;
        color: #94a3b8;
    }

    .ai-step-text {
        flex: 1;
        font-size: 13px;
        color: #475569;
        font-weight: 500;
    }

    .ai-progress-step.completed .ai-step-text {
        color: #059669;
    }

    /* AI Analysis Result Banner */
    .ai-result-banner {
        padding: 12px 16px;
        background: linear-gradient(135deg, #ecfdf5 0%, #d1fae5 100%);
        border-bottom: 1px solid #86efac;
        display: flex;
        align-items: center;
        gap: 10px;
    }

    .ai-result-icon {
        font-size: 20px;
        animation: bounceIn 0.5s ease;
    }

    @keyframes bounceIn {
        0% {
            transform: scale(0);
            opacity: 0;
        }

        50% {
            transform: scale(1.1);
        }

        100% {
            transform: scale(1);
            opacity: 1;
        }
    }

    .ai-result-text {
        flex: 1;
    }

    .ai-result-title {
        font-weight: 600;
        color: #065f46;
        font-size: 13px;
        margin-bottom: 2px;
    }

    .ai-result-description {
        font-size: 12px;
        color: #047857;
        opacity: 0.9;
    }

    /* Product Items Section Header */
    .suggest-section-header {
        padding: 10px 16px;
        background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);
        border-bottom: 1px solid #e2e8f0;
    }

    .suggest-header-main {
        display: flex;
        align-items: center;
        gap: 6px;
        margin-bottom: 4px;
    }

    .suggest-header-icon {
        font-size: 14px;
    }

    .suggest-header-text {
        font-size: 12px;
        font-weight: 600;
        color: #64748b;
        text-transform: uppercase;
        letter-spacing: 0.5px;
    }

    .suggest-header-hint {
        font-size: 11px;
        color: #94a3b8;
        font-weight: 400;
        text-transform: none;
        letter-spacing: 0;
        display: flex;
        align-items: center;
        gap: 4px;
    }

    .suggest-header-hint kbd {
        display: inline-block;
        padding: 2px 6px;
        font-size: 10px;
        font-weight: 600;
        line-height: 1;
        color: #475569;
        background: #fff;
        border: 1px solid #cbd5e1;
        border-radius: 4px;
        box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
        font-family: 'Segoe UI', monospace;
    }

    /* Footer Hint */
    .suggest-footer-hint {
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 12px 16px;
        background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%);
        border-top: 1px solid #fbbf24;
        color: #92400e;
        font-size: 12px;
        font-weight: 500;
        text-align: center;
        cursor: default;
    }

    .suggest-footer-hint svg {
        color: #f59e0b;
        flex-shrink: 0;
    }

    .suggest-footer-hint kbd {
        display: inline-block;
        padding: 3px 7px;
        margin: 0 3px;
        font-size: 11px;
        font-weight: 600;
        line-height: 1;
        color: #78350f;
        background: #fff;
        border: 1px solid #f59e0b;
        border-radius: 4px;
        box-shadow: 0 1px 3px rgba(245, 158, 11, 0.2);
        font-family: 'Segoe UI', monospace;
    }

    .suggest-footer-link {
        color: #ea580c;
        font-weight: 600;
        text-decoration: underline;
        text-underline-offset: 2px;
        text-decoration-thickness: 1px;
        cursor: pointer;
        transition: all 0.2s ease;
    }

    .suggest-footer-link:hover {
        color: #c2410c;
        text-decoration-thickness: 2px;
        text-shadow: 0 0 8px rgba(234, 88, 12, 0.3);
    }

    /* Loading state */
    .suggest-loading {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 8px;
        padding: 16px 12px;
        color: #64748b;
        font-size: 13px;
    }

    @keyframes pulse {

        0%,
        100% {
            opacity: 1;
        }

        50% {
            opacity: 0.5;
        }
    }

    .suggest-loading {
        animation: pulse 1.5s ease-in-out infinite;
    }

    /* Responsive Mobile Styles */
    @media (max-width: 768px) {
        .ai-bot-toggle {
            padding: 6px;
            margin-left: 0;
        }

        .ai-bot-toggle .bot-icon {
            width: 20px;
            height: 20px;
        }

        .search-icon-btn {
            margin-right: 4px;
        }

        .search-icon-btn svg {
            width: 18px;
            height: 18px;
        }

        .search-suggest {
            max-height: 350px;
        }

        /* Mobile hint adjustments */
        .suggest-header-hint {
            font-size: 10px;
        }

        .suggest-header-hint kbd {
            padding: 1px 4px;
            font-size: 9px;
        }

        .suggest-footer-hint {
            padding: 10px 12px;
            font-size: 11px;
        }

        .suggest-footer-hint svg {
            width: 14px;
            height: 14px;
        }

        .suggest-footer-hint kbd {
            padding: 2px 5px;
            font-size: 10px;
        }

        .ai-progress-container {
            padding: 16px 12px;
        }

        .ai-progress-icon {
            width: 32px;
            height: 32px;
            font-size: 16px;
        }

        .ai-progress-title {
            font-size: 13px;
        }

        .ai-progress-subtitle {
            font-size: 11px;
        }

        .ai-progress-step {
            padding: 6px 10px;
        }

        .ai-step-text {
            font-size: 12px;
        }

        .suggest-item {
            padding: 8px 12px;
        }

        .suggest-thumb {
            width: 36px;
            height: 36px;
        }

        .suggest-name {
            font-size: 13px;
        }

        .suggest-price {
            font-size: 11px;
        }
    }

    @media (max-width: 480px) {
        .ai-bot-toggle {
            padding: 4px;
        }

        .ai-bot-toggle .bot-icon {
            width: 18px;
            height: 18px;
        }

        .search-icon-btn svg {
            width: 16px;
            height: 16px;
        }

        /* Ultra-compact hints for small screens */
        .suggest-header-hint {
            display: none;
            /* Hide header hint on very small screens */
        }

        .suggest-footer-hint {
            padding: 8px 10px;
            font-size: 10px;
            flex-direction: column;
            gap: 4px;
        }

        .suggest-footer-hint svg {
            display: none;
            /* Hide icon to save space */
        }

        .suggest-footer-hint kbd {
            padding: 2px 4px;
            font-size: 9px;
        }

        .ai-progress-steps {
            gap: 8px;
        }

        .ai-step-text {
            font-size: 11px;
        }
    }

    /* AI Search Prompt Box */
    .ai-search-prompt {
        padding: 24px;
        background: linear-gradient(135deg, #fff5f0 0%, #ffffff 100%);
    }

    .ai-prompt-header {
        display: flex;
        align-items: center;
        gap: 12px;
        margin-bottom: 16px;
    }

    .ai-prompt-icon {
        width: 48px;
        height: 48px;
        background: linear-gradient(135deg, #fb923c 0%, #f97316 100%);
        border-radius: 12px;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 24px;
        box-shadow: 0 4px 12px rgba(251, 146, 60, 0.3);
    }

    .ai-prompt-text {
        flex: 1;
    }

    .ai-prompt-title {
        font-size: 16px;
        font-weight: 700;
        color: #1f2937;
        margin-bottom: 4px;
    }

    .ai-prompt-subtitle {
        font-size: 13px;
        color: #6b7280;
    }

    .ai-prompt-query {
        background: white;
        border: 2px solid #fb923c;
        border-radius: 8px;
        padding: 12px 16px;
        margin-bottom: 16px;
    }

    .ai-query-label {
        font-size: 11px;
        font-weight: 600;
        color: #fb923c;
        text-transform: uppercase;
        letter-spacing: 0.5px;
        margin-bottom: 4px;
    }

    .ai-query-text {
        font-size: 15px;
        font-weight: 600;
        color: #1f2937;
    }

    .ai-search-trigger-btn {
        width: 100%;
        padding: 14px 20px;
        background: linear-gradient(135deg, #fb923c 0%, #f97316 100%);
        color: white;
        border: none;
        border-radius: 10px;
        font-size: 15px;
        font-weight: 700;
        cursor: pointer;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 8px;
        transition: all 0.3s ease;
        box-shadow: 0 4px 12px rgba(251, 146, 60, 0.4);
    }

    .ai-search-trigger-btn:hover {
        transform: translateY(-2px);
        box-shadow: 0 6px 20px rgba(251, 146, 60, 0.5);
    }

    .ai-search-trigger-btn:active {
        transform: translateY(0);
    }

    .ai-btn-icon {
        font-size: 18px;
        animation: sparkle 2s ease-in-out infinite;
    }

    @keyframes sparkle {

        0%,
        100% {
            opacity: 1;
            transform: scale(1);
        }

        50% {
            opacity: 0.7;
            transform: scale(1.2);
        }
    }

    .ai-btn-text {
        font-size: 15px;
    }

    .ai-prompt-footer {
        margin-top: 12px;
        text-align: center;
        font-size: 12px;
        color: #9ca3af;
        font-style: italic;
    }

    /* ==================== TRENDING SEARCH STYLES ==================== */

    .search-suggest.trending-mode {
        border-top: 3px solid #fb923c;
        max-width: 900px;
        min-width: 600px;
    }

    /* Two-column container */
    .trending-container {
        display: flex;
        gap: 0;
        padding: 0 !important;
    }

    .trending-column {
        flex: 1;
        min-width: 0;
        padding: 0 !important;
    }

    .trending-column.trending-searches {
        border-right: 2px solid #e2e8f0;
        padding: 0 !important;
    }

    /* Mobile: stack columns vertically */
    @media (max-width: 768px) {
        .search-suggest.trending-mode {
            min-width: auto;
            max-width: 100%;
        }

        .trending-container {
            flex-direction: column;
        }

        .trending-column.trending-searches {
            border-right: none;
            border-bottom: 2px solid #e2e8f0;
        }
    }

    .trending-header {
        display: flex;
        align-items: center;
        gap: 8px;
        padding: 14px 16px;
        border-bottom: 1px solid #e2e8f0;
        background: linear-gradient(135deg, #fb923c 0%, #f97316 100%);
        color: white;
        position: sticky;
        top: 0;
        z-index: 10;
    }

    .trending-icon {
        font-size: 20px;
        animation: trendingPulse 2s infinite;
    }

    @keyframes trendingPulse {

        0%,
        100% {
            transform: scale(1);
            filter: drop-shadow(0 0 0 rgba(251, 146, 60, 0));
        }

        50% {
            transform: scale(1.15);
            filter: drop-shadow(0 0 8px rgba(255, 255, 255, 0.8));
        }
    }

    .trending-title {
        font-weight: 700;
        font-size: 14px;
        letter-spacing: 0.3px;
    }

    .trending-subtitle {
        font-size: 11px;
        opacity: 0.9;
        margin-left: auto;
        font-style: italic;
    }

    /* Trending searches item */
    .trending-item {
        display: flex;
        align-items: center;
        gap: 12px;
        padding: 12px 16px;
        cursor: pointer;
        transition: all 0.2s ease;
        border-bottom: 1px solid #f1f5f9;
        position: relative;
    }

    .trending-item:hover {
        background: linear-gradient(90deg, #fff7ed 0%, #ffedd5 100%);
        padding-left: 20px;
    }

    .trending-item:hover::before {
        content: '';
        position: absolute;
        left: 0;
        top: 0;
        bottom: 0;
        width: 4px;
        background: linear-gradient(180deg, #fb923c 0%, #f97316 100%);
    }

    .trending-item:last-child {
        border-bottom: none;
    }

    .trending-rank {
        font-size: 20px;
        flex-shrink: 0;
        width: 32px;
        text-align: center;
    }

    .trending-query {
        flex: 1;
        font-size: 14px;
        color: #1f2937;
        font-weight: 500;
        line-height: 1.4;
    }

    .trending-category {
        font-size: 11px;
        color: #f97316;
        background: #fff7ed;
        padding: 3px 10px;
        border-radius: 12px;
        white-space: nowrap;
        font-weight: 500;
        border: 1px solid #fed7aa;
    }

    /* Trending products item */
    .trending-product-item {
        display: flex;
        align-items: center;
        gap: 12px;
        padding: 12px 16px;
        cursor: pointer;
        transition: all 0.2s ease;
        border-bottom: 1px solid #f1f5f9;
        position: relative;
    }

    .trending-product-item:hover {
        background: linear-gradient(90deg, #fef3c7 0%, #fde68a 100%);
        padding-left: 20px;
    }

    .trending-product-item:hover::before {
        content: '';
        position: absolute;
        left: 0;
        top: 0;
        bottom: 0;
        width: 4px;
        background: linear-gradient(180deg, #fbbf24 0%, #f59e0b 100%);
    }

    .trending-product-item:last-child {
        border-bottom: none;
    }

    .trending-product-thumb {
        width: 48px;
        height: 48px;
        object-fit: cover;
        border-radius: 8px;
        border: 1px solid #e5e7eb;
        flex-shrink: 0;
        background: white;
    }

    .trending-product-info {
        flex: 1;
        min-width: 0;
    }

    .trending-product-name {
        font-size: 13px;
        font-weight: 400;
        color: #1f2937;
        line-height: 1.4;
        margin-bottom: 0;
        padding: 0 !important;
        overflow: hidden;
        text-overflow: ellipsis;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
    }

    .trending-product-price {
        font-size: 12px;
        font-weight: 700;
        color: #f59e0b;
        padding: 4px 0 !important;
    }

    .trending-product {
        padding: 0;
    }

    /* ==================== END TRENDING STYLES ==================== */
    /* === PRODUCT DETAIL v3 (Tokopedia-like) — Full stylesheet === */

    /* Root / Container */
    .product-single {
        --pd-gap: 2rem;
        --pd-border: #e2e8f0;
        --pd-bg: #ffffff;
        --pd-muted: #64748b;
        --pd-dark: #0f172a;
        --pd-accent: #0d6efd;
        /* tema utama situs */
        --pd-radius: 12px;
        --pd-soft: #f8fafc;
        --pd-soft-border: #e5e7eb;
        --pd-danger: #16c48d;
        --pd-success-bg: #dcfce7;
        --pd-success-text: #166534;
        --pd-danger-bg: #fee2e2;
        --pd-danger-text: #16c48d;
        --pd-shadow: 0 6px 20px -10px rgba(0, 0, 0, .12);
        --pd-transition: .25s cubic-bezier(.4, .0, .2, 1);
        max-width: 1280px;
        margin-inline: auto;
    }

    /* === Sticky Product Header Bar (muncul saat scroll) === */
    .pd-sticky-header {
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        z-index: 998;
        background: rgba(255, 255, 255, 0.98);
        backdrop-filter: blur(12px);
        -webkit-backdrop-filter: blur(12px);
        border-bottom: 1px solid rgba(226, 232, 240, 0.8);
        box-shadow: 0 4px 16px -4px rgba(0, 0, 0, 0.08);
        transform: translateY(-100%);
        opacity: 0;
        transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1),
            opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1);
        pointer-events: none;
    }

    .pd-sticky-header.visible {
        transform: translateY(0);
        opacity: 1;
        pointer-events: auto;
    }

    .pd-sticky-header-container {
        max-width: 1280px;
        margin: 0 auto;
        padding: 12px 20px;
        display: flex;
        align-items: center;
        gap: 16px;
    }

    .pd-sticky-thumb {
        width: 48px;
        height: 48px;
        flex-shrink: 0;
        border-radius: 8px;
        border: 1px solid #e2e8f0;
        overflow: hidden;
        background: #f8fafc;
    }

    .pd-sticky-thumb img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
    }

    .pd-sticky-info {
        flex: 1;
        min-width: 0;
        display: flex;
        flex-direction: column;
        gap: 4px;
    }

    .pd-sticky-title {
        font-size: 0.9rem;
        font-weight: 600;
        color: #0f172a;
        line-height: 1.3;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        margin: 0;
    }

    .pd-sticky-price-row {
        display: flex;
        align-items: center;
        gap: 8px;
        flex-wrap: wrap;
    }

    .pd-sticky-price {
        font-size: 1.1rem;
        font-weight: 700;
        color: #0d6efd;
        line-height: 1;
    }

    .pd-sticky-price-original {
        font-size: 0.75rem;
        color: #94a3b8;
        text-decoration: line-through;
        line-height: 1;
    }

    .pd-sticky-discount {
        background: #16c48d;
        color: #fff;
        font-size: 0.65rem;
        font-weight: 600;
        padding: 2px 6px;
        border-radius: 4px;
        letter-spacing: 0.3px;
        line-height: 1;
    }

    .pd-sticky-actions {
        display: flex;
        gap: 8px;
        flex-shrink: 0;
        align-items: center;
    }

    .pd-sticky-share-btn {
        padding: 8px 16px;
        border-radius: 8px;
        border: 1px solid #e2e8f0;
        background: #fff;
        color: #64748b;
        cursor: pointer;
        transition: all 0.2s ease;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        flex-shrink: 0;
    }

    .pd-sticky-share-btn:hover {
        background: #f8fafc;
        border-color: #cbd5e1;
        color: #0f172a;
        transform: translateY(-1px);
    }

    .pd-sticky-share-btn:active {
        transform: translateY(0);
    }

    .pd-sticky-share-btn svg {
        display: block;
        width: 16px;
        height: 16px;
    }

    .pd-sticky-btn-chat svg {
        width: 16px !important;
        height: 16px !important;
        max-width: none !important;
        margin-right: 4px;
        flex-shrink: 0;
    }

    .pd-sticky-btn {
        padding: 8px 16px;
        border-radius: 8px;
        font-size: 0.85rem;
        font-weight: 600;
        cursor: pointer;
        transition: all 0.2s ease;
        border: 0;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        white-space: nowrap;
    }

    .pd-sticky-btn-cart {
        background: #fff;
        color: #0d6efd;
        border: 1px solid #0d6efd;
    }

    .pd-sticky-btn-cart:hover {
        background: rgba(13, 110, 253, 0.06);
    }

    .pd-sticky-btn-chat {
        background: #fff;
        color: #64748b;
        border: 1px solid #cbd5e1;
        flex: 0.8;
    }

    .pd-sticky-btn-chat:hover {
        background: #f8fafc;
        border-color: #94a3b8;
        color: #475569;
    }

    .pd-sticky-btn-buy {
        background: #0d6efd;
        color: #fff;
        border: 1px solid #0d6efd;
        box-shadow: 0 2px 8px -2px rgba(13, 110, 253, 0.4);
    }

    .pd-sticky-btn-buy:hover {
        filter: brightness(0.95);
    }

    .pd-sticky-btn:disabled {
        opacity: 0.5;
        cursor: not-allowed;
    }

    /* Hide on mobile (use existing FAB instead) */
    @media (max-width: 880px) {
        .pd-sticky-header {
            display: none;
        }
    }

    /* === PRINT STYLES (for PDF Export) === */
    @media print {

        /* Reset & Base */
        * {
            -webkit-print-color-adjust: exact !important;
            print-color-adjust: exact !important;
        }

        body {
            background: white !important;
            margin: 0;
            padding: 0;
        }

        /* Hide all navigation, buttons, and interactive elements */
        nav,
        header,
        footer,
        nav *,
        header *,
        footer *,
        .navbar,
        .navbar *,
        .nav-item,
        .nav-link,
        .pd-sticky-header,
        .pd-sticky-header.visible,
        .pd-breadcrumb,
        .pd-sidebar,
        .pd-mobile-fab,
        .pd-share-btn,
        .pd-sticky-share-btn,
        #pd-share-btn,
        .share-button,
        [data-share-btn],
        button,
        .btn-add-cart,
        .btn-buy,
        .pd-actions,
        .pd-compare-section,
        .pd-compare-btn,
        .pd-compare-info,
        #pd-compare-btn,
        .compare-note,
        .compare-container,
        .compare-dropdown,
        .compare-panel,
        .compare-wrapper,
        [data-compare],
        [id*="compare"],
        [class*="compare"],
        .pd-thumb-gallery,
        .pd-installment-card,
        .pd-installment-card2,
        .inst-alt-banner--compact,
        .qoala-banner-card,
        .tradein-compact-card,
        .pwp-deals-section,
        #pwp-deals-section,
        .pwp-trigger-badge,
        .pd-related-full,
        .pd-scroll-top,
        .stock-info-btn,
        .stock-popover,
        .pd-countdown-modern,
        .pd-share-modal-overlay,
        [id*="promo-"],
        .bottom-nav,
        .pd-buy-form,
        .pd-buy-card,
        .pd-extra-meta,
        .pd-reviews-section,
        #reviews,
        hr,
        .divider,
        .separator {
            display: none !important;
            visibility: hidden !important;
            opacity: 0 !important;
            height: 0 !important;
            max-height: 0 !important;
            overflow: hidden !important;
            margin: 0 !important;
            padding: 0 !important;
            border: none !important;
        }

        /* Extra aggressive reset for any remaining borders */
        .pd-info-card *,
        .pd-meta-inline *,
        .pd-variants * {
            border: none !important;
            border-top: none !important;
            border-bottom: none !important;
        }

        /* Layout restructure */
        .product-single {
            max-width: 100% !important;
            margin: 0 !important;
            padding: 0 !important;
            box-shadow: none !important;
        }

        /* Reset all shadows and borders for print */
        * {
            box-shadow: none !important;
        }

        .pd-top-layout {
            display: grid !important;
            grid-template-columns: 280px 1fr !important;
            gap: 24px !important;
            margin: 0 0 24px 0 !important;
            padding: 0 !important;
            page-break-inside: avoid;
            align-items: start !important;
        }

        /* Print header with logo - centered and larger */
        .product-single::before {
            content: "" !important;
            display: block !important;
            width: 150px !important;
            height: 50px !important;
            background: url('/assets/img/logo.png') no-repeat center !important;
            background-size: contain !important;
            margin: 0 auto 20px !important;
            visibility: visible !important;
            opacity: 1 !important;
        }

        /* Media card - left column */
        .pd-media-card {
            border: none !important;
            padding: 0 !important;
            margin: 0 !important;
            text-align: center;
            page-break-inside: avoid;
        }

        /* Hide desktop image, use mobile slider for both desktop and mobile */
        .pd-main-image {
            display: none !important;
        }

        /* Mobile slider - show first image only in print */
        .pd-mobile-slider {
            display: block !important;
            overflow: visible !important;
        }

        .pd-mslide {
            display: none !important;
        }

        .pd-mslide:first-child {
            display: block !important;
            border: 1px solid #e2e8f0 !important;
            max-width: 280px !important;
            margin: 0 auto !important;
            border-radius: 8px !important;
        }

        .pd-mslide:first-child img {
            max-height: 280px !important;
            width: 100% !important;
            height: auto !important;
            object-fit: contain !important;
        }

        /* Info card - right column */
        .pd-info-card {
            border: none !important;
            border-top: none !important;
            border-bottom: none !important;
            padding: 0 !important;
            margin: 0 !important;
            background: white !important;
            box-shadow: none !important;
        }

        /* Title */
        .pd-title-row {
            display: block !important;
            margin-bottom: 10px !important;
            border: none !important;
            border-top: none !important;
            border-bottom: none !important;
            padding: 0 !important;
            box-shadow: none !important;
            text-decoration: none !important;
        }

        /* Hide share button in print */
        .pd-title-row .pd-share-btn,
        .pd-title-row #pd-share-btn {
            display: none !important;
        }

        .pd-title {
            font-size: 13pt !important;
            color: #000 !important;
            margin: 0 0 10px 0 !important;
            page-break-after: avoid;
            font-weight: 700 !important;
            line-height: 1.3 !important;
            border: none !important;
            border-top: none !important;
            border-bottom: none !important;
            padding-bottom: 0 !important;
            box-shadow: none !important;
            text-decoration: none !important;
        }

        /* Price and QR container - side by side */
        .pd-price-qr-container {
            display: flex !important;
            gap: 16px !important;
            align-items: flex-start !important;
            margin-bottom: 14px !important;
            box-shadow: none !important;
            border: none !important;
            text-decoration: none !important;
        }

        /* Price block - left side */
        .pd-price-block {
            flex: 1 !important;
            margin: 0 !important;
            padding-bottom: 0 !important;
            border-bottom: none !important;
            box-shadow: none !important;
        }

        .pd-price-row {
            margin-bottom: 8px !important;
            border: none !important;
            border-top: none !important;
            border-bottom: none !important;
            padding: 0 !important;
        }

        /* Hide all empty or unnecessary elements in price row */
        .pd-price-row>span:empty,
        .pd-price-row>.sold-inline,
        #pd-sold-inline {
            display: none !important;
        }

        .pd-price-current {
            font-size: 18pt !important;
            color: #0d6efd !important;
        }

        /* Show price range for variant products in print */
        .pd-price-current[data-price-range]::after {
            content: attr(data-price-range) !important;
            display: block !important;
            font-size: 11pt !important;
            color: #64748b !important;
            margin-top: 4px !important;
            font-weight: normal !important;
        }

        /* Hide 'Range:' prefix text */
        .pd-price-current[data-price-range]::after {
            content: attr(data-price-range) !important;
        }

        .pd-price-original {
            font-size: 12pt !important;
            color: #64748b !important;
        }

        .pd-discount-badge {
            font-size: 10pt !important;
            padding: 2px 6px !important;
        }

        /* QR Code section - right side beside price */
        .pd-qr-print {
            display: block !important;
            flex: 0 0 100px !important;
            margin: 0 !important;
            padding: 8px !important;
            background: #f8fafc !important;
            border-radius: 8px !important;
            text-align: center !important;
            page-break-inside: avoid !important;
            border: 1px solid #cbd5e1 !important;
        }

        .pd-qr-label {
            font-size: 6.5pt !important;
            color: #64748b !important;
            margin-bottom: 5px !important;
            line-height: 1.2 !important;
            font-weight: 600 !important;
        }

        .pd-qr-image {
            width: 80px !important;
            height: 80px !important;
            display: block !important;
            margin: 0 auto !important;
        }

        /* Meta info */
        .pd-meta-inline {
            display: flex !important;
            gap: 12px !important;
            margin-bottom: 0 !important;
            padding-bottom: 14px !important;
            font-size: 10pt !important;
            border: none !important;
            border-top: none !important;
            border-bottom: none !important;
            padding-top: 0 !important;
            box-shadow: none !important;
            text-decoration: none !important;
            background: transparent !important;
        }

        /* Hide stock badge in print */
        .stock-badge,
        .stock-info-btn {
            display: none !important;
        }

        .sku {
            color: #64748b !important;
        }

        /* Hide sold badge if empty/zero */
        .sold-inline {
            display: none !important;
        }

        /* Hide variant summary section in print */
        .pd-variant-combined,
        #pd-variant-combined,
        .pd-variant-summary,
        [data-role="sold-chip"] {
            display: none !important;
        }

        /* Hide compare section completely in print */
        .pd-compare-section,
        .pd-compare-btn,
        #pd-compare-btn,
        .pd-compare-info,
        .compare-note,
        .compare-text,
        .compare-remove {
            display: none !important;
            visibility: hidden !important;
            height: 0 !important;
            margin: 0 !important;
            padding: 0 !important;
            overflow: hidden !important;
        }

        /* Variants - show all options with selected highlighted */
        .pd-variants {
            margin: 0 !important;
            padding: 0 !important;
            page-break-inside: avoid !important;
            border: none !important;
            border-top: none !important;
            border-bottom: none !important;
            box-shadow: none !important;
            background: transparent !important;
        }

        /* Add 'Variant:' label before variant groups */
        .pd-variants::before {
            content: "Variant:" !important;
            display: block !important;
            font-size: 11pt !important;
            font-weight: 700 !important;
            color: #0f172a !important;
            margin-bottom: 10px !important;
            border: none !important;
            padding: 0 !important;
            border-top: none !important;
            border-bottom: none !important;
        }

        .v-group {
            display: flex !important;
            align-items: center !important;
            gap: 8px !important;
            margin-bottom: 8px !important;
            line-height: 1 !important;
            page-break-inside: avoid !important;
            border: none !important;
            padding: 0 !important;
        }

        .v-group:last-child {
            margin-bottom: 0 !important;
        }

        .v-label {
            font-weight: 700 !important;
            margin: 0 !important;
            font-size: 9pt !important;
            color: #475569 !important;
            min-width: 60px !important;
            flex-shrink: 0 !important;
            border: none !important;
            padding: 0 !important;
        }

        .v-options {
            display: flex !important;
            gap: 6px !important;
            flex-wrap: wrap !important;
            border: none !important;
            padding: 0 !important;
            margin: 0 !important;
        }

        .v-chip {
            border: 1px solid #cbd5e1 !important;
            padding: 3px 10px !important;
            font-size: 9pt !important;
            background: #f8fafc !important;
            border-radius: 6px !important;
            display: inline-flex !important;
            align-items: center !important;
            page-break-inside: avoid !important;
        }

        /* Highlight selected variant with blue background */
        .v-chip.selected {
            background: #eff6ff !important;
            border-color: #2563eb !important;
            font-weight: 600 !important;
        }

        /* Hide radio inputs */
        .v-chip input[type="radio"] {
            display: none !important;
        }

        /* Hide "Habis" badge in print */
        .v-chip .chip-badge {
            display: none !important;
        }

        /* Short description - HIDDEN in print */
        .pd-short-desc {
            display: none !important;
        }

        /* QR Code section - right side beside price */
        .pd-qr-print {
            display: block !important;
            flex: 0 0 100px !important;
            margin: 0 !important;
            padding: 8px !important;
            background: #f8fafc !important;
            border-radius: 8px !important;
            text-align: center !important;
            page-break-inside: avoid !important;
            border: 1px solid #cbd5e1 !important;
        }

        .pd-qr-label {
            font-size: 6.5pt !important;
            color: #64748b !important;
            margin-bottom: 5px !important;
            line-height: 1.2 !important;
            font-weight: 600 !important;
        }

        .pd-qr-image {
            width: 80px !important;
            height: 80px !important;
            display: block !important;
            margin: 0 auto !important;
        }

        /* Full description - below 2 column layout */
        .pd-full-description {
            border: none !important;
            padding: 0 !important;
            margin: 24px 0 0 0 !important;
            page-break-before: avoid;
            grid-column: 1 / -1 !important;
        }

        .pd-full-desc-title {
            font-size: 13pt !important;
            font-weight: 700 !important;
            margin: 0 0 12px 0 !important;
            color: #000 !important;
            border-top: none !important;
            border-bottom: none !important;
            padding-top: 16px !important;
        }

        .pd-full-desc-body {
            font-size: 10pt !important;
            line-height: 1.6 !important;
            color: #334155 !important;
        }

        .pd-full-desc-body img {
            max-height: 200px !important;
            width: auto !important;
            page-break-inside: avoid;
            display: none !important;
            /* Hide images in print to save space */
        }

        /* Also target #deskripsi img if exists */
        #deskripsi img {
            max-width: 350px !important;
            height: auto !important;
        }

        .pd-full-desc-body table {
            border-collapse: collapse !important;
            width: 100% !important;
            margin: 12px 0 !important;
            font-size: 9pt !important;
        }

        .pd-full-desc-body th,
        .pd-full-desc-body td {
            border: 1px solid #cbd5e1 !important;
            padding: 6px 8px !important;
        }

        /* Print footer */
        .product-single::after {
            content: "Plaza IT - plazait.co.id | Printed: " attr(data-print-date);
            display: block;
            margin-top: 30px;
            padding-top: 16px;
            border-top: 1px solid #e2e8f0;
            font-size: 9pt;
            color: #64748b;
            text-align: center;
        }

        /* Page breaks */
        .pd-media-card,
        .pd-price-block,
        .pd-full-desc-title {
            page-break-after: avoid;
        }

        .pd-full-description {
            page-break-before: auto;
        }
    }

    /* === Breadcrumb (truncate last item) === */
    .pd-breadcrumb {
        display: flex;
        flex-wrap: nowrap;
        align-items: center;
        gap: .5rem;
        font-size: .72rem;
        margin: .7rem 0 1.2rem .5rem;
        color: var(--pd-muted);
        overflow: hidden;
    }

    .pd-breadcrumb a {
        color: var(--pd-accent);
        text-decoration: none
    }

    .pd-breadcrumb a:hover {
        text-decoration: underline
    }

    .pd-breadcrumb a,
    .pd-breadcrumb span {
        flex: 0 0 auto
    }

    .pd-breadcrumb .current {
        flex: 1 1 auto;
        min-width: 0;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        font-weight: 600;
        color: white;
        padding-right: 2px;
    }

    /* === Top layout === */
    .pd-top-layout {
        display: grid;
        gap: var(--pd-gap);
        grid-template-columns: minmax(260px, 340px) minmax(460px, 1fr) 300px;
        align-items: start;
        margin-bottom: 2.4rem;
    }


    /* === Media column === */
    .pd-media-card {
        border: 1px solid #a5123cc9;
        border-radius: var(--pd-radius);
        padding: 1rem 1rem 1.2rem;
    }

    .pd-main-image {
        margin: 0 0 .8rem;
        border: 1px solid var(--pd-soft-border);
        border-radius: 10px;
        overflow: hidden;

        position: relative
    }

    .pd-main-image img {
        width: 100%;
        display: block;
        object-fit: contain;
        aspect-ratio: 1/1
    }

    /* Gallery Thumbnails */
    .pd-thumb-gallery {
        margin-top: .6rem;
        display: flex;
        flex-wrap: wrap;
        gap: .55rem
    }

    .pd-thumb-btn {
        border: 1px solid var(--pd-soft-border);
        background: #fff;
        cursor: pointer;
        width: 64px;
        height: 64px;
        padding: 2px;
        display: flex;
        align-items: center;
        justify-content: center;
        overflow: hidden;
        border-radius: 8px;
        transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
        position: relative;
    }

    .pd-thumb-btn img {
        max-width: 100%;
        max-height: 100%;
        object-fit: contain;
        display: block
    }

    .pd-thumb-btn:hover {
        border-color: var(--pd-accent)
    }

    .pd-thumb-btn.active {
        border-color: var(--pd-accent);
        box-shadow: 0 0 0 2px rgba(13, 110, 253, .25)
    }

    .pd-thumb-btn:focus-visible {
        outline: 2px solid var(--pd-accent);
        outline-offset: 2px
    }

    .pd-thumb-btn:active {
        transform: scale(.96)
    }

    /* === Info column === */
    .pd-info-card {

        border-radius: var(--pd-radius);
        padding: 1.4rem 1.6rem 2rem;
        background: rgba(15, 15, 20, 0.75) !important;
        backdrop-filter: blur(10px);
        border: 3px solid rgb(255 0 85 / 47%);
        box-shadow: 0 8px 32px 0 rgb(217 33 33 / 37%);
    }

    .pd-title {
        font-size: 1.5em;
        line-height: 3.25;
        font-weight: 600;
        color: black;
        font-family: 'Orbitron', sans-serif;
    }

    .pd-price-block {
        margin: 0 0 1rem
    }

    .pd-price-row {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: .75rem;
        margin: 0 0 .35rem
    }

    .pd-price-current {
        font-size: 2rem;
        font-weight: 700;
        color: var(--pd-accent)
    }

    .pd-price-original {
        font-size: .9rem;
        text-decoration: line-through;
        color: #94a3b8
    }

    .pd-discount-badge {
        background: var(--pd-danger);
        color: #fff;
        font-size: .68rem;
        padding: 4px 8px 3px;
        font-weight: 600;
        border-radius: 6px;
        letter-spacing: .5px
    }

    .pd-meta-inline {
        display: flex;
        flex-wrap: wrap;
        gap: .9rem;
        align-items: center;
        font-size: .63rem;
        letter-spacing: .6px;
        text-transform: uppercase;
        font-weight: 600
    }

    .stock-badge {
        padding: 4px 10px;
        border-radius: 24px;
        background: var(--pd-soft);
        color: var(--pd-muted);
        display: inline-block;
        line-height: 1;
        vertical-align: middle
    }

    .stock-badge.in {
        background: var(--pd-success-bg);
        color: var(--pd-success-text)
    }

    .stock-badge.out {
        background: var(--pd-danger-bg);
        color: var(--pd-danger-text)
    }

    .digital-badge {
        padding: 4px 10px;
        border-radius: 24px;
        background: linear-gradient(135deg, #FF5722 0%, #764ba2 100%);
        color: #fff;
        font-size: .63rem;
        font-weight: 600;
        letter-spacing: .6px;
        text-transform: uppercase;
        display: inline-block;
        line-height: 1;
        vertical-align: middle;
        border: none
    }

    .sku {
        color: var(--pd-muted)
    }

    .pd-short-desc {
        font-size: .85rem;
        line-height: 1.5;
        margin: 0 0 1.2rem;
        color: #334155;
        overflow-wrap: anywhere
    }

    .pd-short-desc p {
        margin: 0 0 .75rem
    }

    .pd-short-desc ul,
    .pd-short-desc ol {
        margin: .5rem 0 .9rem 1.1rem;
        font-size: .85rem;
        line-height: 1.45
    }

    /* Meta row for sold and rating badges */
    .pd-meta-row {
        display: flex;
        align-items: center;
        flex-wrap: wrap;
        gap: 5px;
        margin-top: 8px;
        margin-bottom: 4px;
    }

    /* Sales (Terjual) badge inline */
    .sold-inline {
        display: inline-block;
        font-size: .65rem;
        font-weight: 600;
        color: #475569;
        background: #f1f5f9;
        padding: 3px 8px 4px;
        border-radius: 6px;
        letter-spacing: .4px;
        margin-left: 0;
    }

    /* Price row divider */
    .price-divider {
        display: inline-block;
        margin: 0 .4rem;
        color: #cbd5e1;
        font-weight: 400;
    }

    /* Rating badge inline */
    .rating-inline {
        display: inline-flex;
        align-items: center;
        gap: 4px;
        padding: 3px 8px 4px;
        background: #fff7ed;
        border-radius: 6px;
        font-size: .65rem;
        font-weight: 600;
        color: #ea580c;
        text-decoration: none;
        transition: all .2s ease;
        cursor: pointer;
        margin-left: .5rem;
        white-space: nowrap;
    }

    .rating-inline:hover {
        background: #ffedd5;
        transform: translateY(-1px);
        box-shadow: 0 2px 4px rgba(234, 88, 12, 0.1);
    }

    .rating-inline .star-icon {
        font-size: .75rem;
        color: #f59e0b;
        line-height: 1;
    }

    .rating-inline .rating-value {
        color: #ea580c;
    }

    .rating-inline .rating-badge-count {
        color: #9a3412;
        opacity: 0.85;
    }

    @media (max-width: 640px) {
        .rating-inline {
            font-size: .65rem;
            padding: 3px 8px 4px;
        }

        .rating-inline .star-icon {
            font-size: .7rem;
        }
    }

    /* Highlight animation for review section */
    @keyframes highlightFlash {

        0%,
        100% {
            background-color: transparent;
        }

        50% {
            background-color: rgba(251, 146, 60, 0.1);
        }
    }

    .highlight-flash {
        animation: highlightFlash 1.5s ease;
    }

    /* === Variant chips === */
    .pd-variants {
        margin-top: 14px
    }

    .v-group {
        margin-bottom: 12px
    }

    .v-label {
        font-weight: 600;
        margin-bottom: 6px
    }

    .v-options {
        display: flex;
        flex-wrap: wrap;
        gap: 8px
    }

    .v-chip {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        padding: 6px 10px;
        border: 1px solid #d6d9de;
        border-radius: 999px;
        cursor: pointer;
        background: #fff;
        transition: .15s ease;
        user-select: none
    }

    .v-chip:hover {
        border-color: #9aa3af;
        box-shadow: 0 1px 0 rgba(0, 0, 0, .04)
    }

    .v-chip.selected {
        border-color: #2563eb;
        background: #eff6ff
    }

    .v-chip.disabled {
        opacity: .45;
        cursor: not-allowed
    }

    .v-chip.out {
        border-style: dashed
    }

    .v-chip input {
        display: none
    }

    .v-chip .dot {
        width: 14px;
        height: 14px;
        border-radius: 50%;
        background: var(--dot, #999);
        box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .2)
    }

    .v-chip .dot--neutral {
        background: #9aa3af
    }

    .v-chip .txt {
        font-size: .95rem;
        white-space: nowrap
    }

    .v-chip .chip-badge {
        margin-left: 2px;
        font-size: .72rem;
        line-height: 1;
        padding: 3px 6px;
        border-radius: 6px;
        background: #fee2e2;
        color: #991b1b;
        border: 1px solid #fecaca
    }

    .pd-variant-summary {
        margin-top: 8px;
        color: #475569;
        font-size: .92rem
    }

    .pd-variant-summary .vs-item {
        display: inline-flex;
        gap: 4px;
        margin-right: 10px
    }

    /* === Buy form (di sidebar kanan untuk desktop) === */
    .pd-buy-form {
        display: flex;
        flex-wrap: wrap;
        align-items: flex-end;
        gap: 1rem 1.4rem;
        margin: 0
    }

    .qty-label {
        display: block;
        font-size: .6rem;
        font-weight: 600;
        letter-spacing: .7px;
        text-transform: uppercase;
        color: var(--pd-muted);
        margin-bottom: .35rem
    }

    .pd-buy-form input[type=number] {
        width: 90px;
        padding: .55rem .6rem;
        border: 1px solid var(--pd-soft-border);
        border-radius: 6px;
        font-size: .85rem
    }

    .pd-actions {
        display: flex;
        gap: .8rem;
        flex-wrap: wrap
    }

    /* Tombol senada tema */
    .btn-add-cart,
    .btn-buy,
    .btn-chat-icon {
        cursor: pointer;
        border: 0;
        font-weight: 700;
        border-radius: 10px;
        font-size: .9rem;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: .4rem;
        min-height: 44px;
        padding: 0 1rem;
        transition: var(--pd-transition)
    }

    .btn-add-cart {
        background: var(--brand-500);
        color: #fff;
        box-shadow: 0 2px 8px -2px rgba(13, 110, 253, .35)
    }

    .btn-add-cart:hover {
        filter: brightness(.95)
    }

    .btn-buy {
        background: #fff;
        color: var(--brand-500);
        border: 2px solid var(--brand-500)
    }

    .btn-buy:hover {
        background: rgba(13, 110, 253, .06)
    }

    .btn-chat-icon {
        background: #fff;
        color: #fb923c;
        border: 2px solid #fb923c;
        padding: 0;
        width: 44px;
        min-width: 44px
    }

    .btn-chat-icon:hover {
        background: rgba(251, 146, 60, 0.06);
        border-color: #f97316
    }

    .btn-chat-icon svg {
        width: 20px;
        height: 20px;
        flex-shrink: 0
    }

    .btn-add-cart:disabled,
    .btn-buy:disabled,
    .btn-chat-icon:disabled {
        opacity: .5;
        cursor: not-allowed
    }

    /* Buy with Voucher Button - Cleaner, more compact design */
    .btn-buy-voucher {
        cursor: pointer;
        border: 0;
        font-weight: 600;
        border-radius: 10px;
        display: inline-flex;
        align-items: center;
        justify-content: space-between;
        gap: 10px;
        min-height: 44px;
        padding: 0 14px 0 12px;
        transition: all 0.3s ease;
        background: linear-gradient(135deg, #7c3aed 0%, #9333ea 100%);
        color: #fff;
        box-shadow: 0 3px 10px rgba(124, 58, 237, 0.3);
        position: relative;
        overflow: hidden;
        flex: 1 1 auto
    }

    .btn-buy-voucher:hover {
        transform: translateY(-2px);
        box-shadow: 0 5px 16px rgba(124, 58, 237, 0.4)
    }

    .btn-buy-voucher:active {
        transform: translateY(0);
        box-shadow: 0 2px 6px rgba(124, 58, 237, 0.3)
    }

    .btn-buy-voucher .bv-icon {
        font-size: 20px;
        line-height: 1;
        flex-shrink: 0
    }

    .btn-buy-voucher .bv-text {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 2px;
        flex: 1;
        min-width: 0;
        font-size: 14px;
        line-height: 1.2
    }

    .btn-buy-voucher .bv-text small {
        font-size: 10px;
        opacity: 0.85;
        font-weight: 500;
        letter-spacing: 0.3px;
        font-family: monospace
    }

    .btn-buy-voucher .bv-save {
        font-size: 12px;
        font-weight: 700;
        background: rgba(255, 255, 255, 0.25);
        padding: 4px 8px;
        border-radius: 6px;
        white-space: nowrap;
        flex-shrink: 0
    }

    /* Extra meta (opsional) */
    .pd-extra-meta {
        background: var(--pd-soft);
        border: 1px solid var(--pd-border);
        border-radius: 10px;
        padding: .85rem 1rem;
        display: grid;
        gap: .45rem;
        font-size: .7rem;
        line-height: 1.3
    }

    .pd-extra-meta span {
        font-weight: 600;
        color: var(--pd-muted);
        margin-right: .3rem
    }

    .pd-extra-meta a {
        color: var(--pd-accent);
        text-decoration: none
    }

    .pd-extra-meta a:hover {
        text-decoration: underline
    }

    /* === Sidebar === */
    .pd-sidebar {
        display: flex;
        flex-direction: column;
        gap: 1.2rem
    }

    .pd-side-card {
        background: #c32828a1;
        border: 1px solid #ed4343;
        border-radius: var(--pd-radius);
        padding: 1rem 1.1rem 1.2rem;
    }

    .pd-side-card h3 {
        margin: 0 0 .7rem;
        font-size: .8rem;
        font-weight: 700;
        letter-spacing: .6px;
        text-transform: uppercase;
        color: var(--pd-dark)
    }

    .pd-side-card ul {
        list-style: none;
        margin: 0;
        padding: 0;
        display: grid;
        gap: .45rem;
        font-size: .7rem;
        color: #334155
    }

    .pd-side-card li {
        position: relative;
        padding-left: 13px;
        line-height: 1.25
    }

    .pd-side-card li:before {
        content: '';
        width: 6px;
        height: 6px;
        background: var(--pd-accent);
        border-radius: 50%;
        position: absolute;
        left: 0;
        top: .45rem
    }

    .pay-logos {
        display: flex;
        gap: .4rem;
        flex-wrap: wrap;
        margin: .1rem 0 .4rem
    }

    .pay-logos span {
        font-size: .55rem;
        background: var(--pd-soft);
        border: 1px solid var(--pd-soft-border);
        padding: .35rem .55rem;
        border-radius: 6px;
        font-weight: 600;
        letter-spacing: .5px
    }

    /* Buy card hanya desktop (mobile pakai FAB) */
    .pd-buy-card {
        display: block
    }

    @media (max-width:880px) {
        .pd-buy-card {
            display: none
        }

        .pd-title-row {
            padding-right: 0 !important;
        }
    }

    /* === Full Description === */
    .pd-full-description {
        background: #fff;
        border: 1px solid var(--pd-border);
        border-radius: var(--pd-radius);
        padding: 1.6rem 1.9rem .6rem;
        margin: 0 0 .8rem
    }

    .pd-full-desc-title {
        margin: 0 0 1.1rem;
        font-size: 1.15rem;
        font-weight: 600;
        color: var(--pd-dark)
    }

    .pd-full-desc-body {
        font-size: .9rem;
        line-height: 1.6;
        color: #334155;
        overflow-wrap: anywhere
    }

    .pd-full-desc-body p {
        margin: 0 0 1rem
    }

    .pd-full-desc-body ul,
    .pd-full-desc-body ol {
        margin: .5rem 0 1rem 1.2rem
    }

    .pd-full-desc-body table {
        width: 100%;
        border-collapse: collapse;
        margin: 1rem 0 1.2rem
    }

    .pd-full-desc-body table,
    .pd-full-desc-body th,
    .pd-full-desc-body td {
        border-bottom: 1px dotted #cbd5e1;
        vertical-align: top
    }

    .pd-full-desc-body th,
    .pd-full-desc-body td {
        padding: .45rem .55rem;
        text-align: left
    }

    .pd-full-desc-body img {
        max-width: 100%;
        height: auto;
        display: block;
    }

    /* === Related (container) === */
    .pd-related-full {
        background: #fff;
        border: 1px solid var(--pd-border);
        border-radius: var(--pd-radius);
        padding: 1.4rem 1.6rem 1.9rem;
        margin: 0 0 2rem;
    }

    .pd-related-title {
        margin: 0 0 1.1rem;
        font-size: 1.05rem;
        font-weight: 600;
        color: var(--pd-dark)
    }

    /* Related Grid (dirapikan: gabung selector agar tidak duplikat) */
    .pd-related-grid,
    .pd-related-grid--full {
        display: grid !important;
        gap: 16px !important;
        grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)) !important;
        align-items: stretch;
    }

    /* Fallback jika grid tidak didukung */
    @supports not (display:grid) {

        .pd-related-grid,
        .pd-related-grid--full {
            display: flex !important;
            flex-wrap: wrap
        }

        .pd-related-grid .pd-related-card,
        .pd-related-grid--full .pd-related-card {
            flex: 0 0 calc(20% - 16px);
            max-width: calc(20% - 16px)
        }

        @media (max-width:1100px) {

            .pd-related-grid .pd-related-card,
            .pd-related-grid--full .pd-related-card {
                flex: 0 0 calc(25% - 16px);
                max-width: calc(25% - 16px)
            }
        }

        @media (max-width:820px) {

            .pd-related-grid .pd-related-card,
            .pd-related-grid--full .pd-related-card {
                flex: 0 0 calc(33.333% - 16px);
                max-width: calc(33.333% - 16px)
            }
        }

        @media (max-width:580px) {

            .pd-related-grid .pd-related-card,
            .pd-related-grid--full .pd-related-card {
                flex: 0 0 calc(50% - 16px);
                max-width: calc(50% - 16px)
            }
        }
    }

    /* Related Card */
    .pd-related-card {
        display: flex;
        flex-direction: column;
        border: 1px solid var(--pd-soft-border);
        background: #fff;
        border-radius: 10px;
        text-decoration: none;
        color: inherit;
        overflow: hidden;
        transition: var(--pd-transition);
        position: relative;
        min-width: 0;
    }

    .pd-related-card:hover {
        transform: translateY(-4px);
        box-shadow: var(--pd-shadow)
    }

    .pd-related-card .thumb {
        aspect-ratio: 1/1;
        background: #f1f5f9;
        overflow: hidden;
        position: relative
    }

    .pd-related-card img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block
    }

    .mini-disc {
        position: absolute;
        top: 6px;
        left: 6px;
        background: #16c48d;
        color: #fff;
        font-size: .55rem;
        padding: 3px 6px 2px;
        border-radius: 4px;
        font-weight: 600
    }

    .pd-related-card .info {
        padding: .55rem .65rem .75rem;
        display: flex;
        flex-direction: column;
        gap: .25rem
    }

    .pd-related-card h3 {
        font-size: .68rem;
        line-height: 1.25;
        margin: 0;
        height: 2.5em;
        overflow: hidden;
        font-weight: 600;
        color: #334155;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical
    }

    .pd-related-card .price {
        font-size: .7rem;
        font-weight: 600;
        color: var(--pd-accent)
    }

    .pd-related-card .sold {
        display: block;
        font-size: .6rem;
        font-weight: 600;
        color: #475569;
        margin-top: 2px;
        letter-spacing: .3px;
        background: #f1f5f9;
        padding: 2px 6px 3px;
        border-radius: 5px;
        width: max-content;
    }

    .pd-related-card .price .final {
        font-size: .82rem;
        font-weight: 700;
        color: #0d6efd;
    }

    .pd-related-card .price .ori {
        font-size: .6rem;
        text-decoration: line-through;
        color: #94a3b8;
        font-weight: 500;
    }

    /* === Mobile slider (scroll-snap) — gambar utama tetap tampil === */
    .pd-mobile-slider {
        display: none
    }

    .pd-mobile-slider img {
        width: 100%;
        display: block;
        object-fit: contain;
        aspect-ratio: 1/1
    }

    /* Gallery counter badge */
    .pd-gallery-counter {
        position: absolute;
        bottom: 12px;
        left: 12px;
        background: rgba(255, 255, 255, 0.25);
        color: #9E9E9E;
        padding: 4px 10px;
        border-radius: 10px;
        font-size: 12px;
        font-weight: 600;
        z-index: 100;
        backdrop-filter: blur(6px);
        -webkit-backdrop-filter: blur(6px);
        font-variant-numeric: tabular-nums;
        pointer-events: none;
        display: none;
        box-shadow: 0 1px 4px rgba(0, 0, 0, .15);
        line-height: 1;
        border: 1px solid rgba(0, 0, 0, 0.08);
    }

    @media (max-width:640px) {
        .pd-media-card {
            border: 0;
            padding: 0 1rem 0;
        }

        .pd-info-card {
            border: 0;
            padding: 0 1.3rem 0;
        }

        .pd-side-card {
            flex: 1 1 !important;
        }

        .pd-top-layout {
            gap: 0;
            margin-bottom: 0;
        }

        .pd-variants {
            margin-bottom: 1.5rem;
        }

        .pd-main-image {
            display: none
        }

        .pd-gallery-counter {
            display: block
        }

        .pd-mobile-slider-wrapper {
            position: relative;
            margin-bottom: .6rem;
        }

        .pd-mobile-slider {
            display: flex;
            gap: 8px;
            overflow-x: auto;
            scroll-snap-type: x mandatory;
            -webkit-overflow-scrolling: touch;
        }

        .pd-mslide {
            min-width: 100%;
            flex: 0 0 100%;
            scroll-snap-align: center;
            border: 1px solid var(--pd-soft-border);
            border-radius: 10px;
            overflow: hidden;
            background: #fff
        }

        .pd-thumb-gallery {
            display: none
        }

        /* hide thumbnails on mobile */
    }

    /* === Mobile Floating Action Bar === */
    .pd-mobile-fab {
        position: fixed;
        left: 0;
        right: 0;
        bottom: 42px;
        /* Position above bottom-nav (60px min-height + 6px padding) */
        display: none;
        align-items: center;
        gap: .75rem;
        padding: 12px 16px;
        background: rgba(255, 255, 255, 0.95);
        backdrop-filter: blur(20px);
        -webkit-backdrop-filter: blur(20px);
        border-top: 1px solid rgba(228, 231, 235, 0.6);
        box-shadow: 0 -4px 16px -4px rgba(0, 0, 0, 0.12);
        z-index: 999;
        /* Below bottom-nav (1000) */
        transition: bottom .3s cubic-bezier(0.4, 0.0, 0.2, 1);
    }

    /* When bottom-nav is hidden, move FAB to bottom */
    body:has(.bottom-nav.hidden) .pd-mobile-fab {
        bottom: 0;
    }

    .pd-mobile-fab .mf-actions {
        display: flex;
        gap: .5rem;
        width: 100%
    }

    .mf-btn {
        border-radius: 10px;
        padding: .6rem 1rem;
        font-weight: 600;
        font-size: 14px;
        cursor: pointer;
        transition: all .2s;
        -webkit-tap-highlight-color: transparent;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 4px;
    }

    .mf-buy {
        background: #fb923c;
        color: #fff;
        border: 0;
        box-shadow: 0 2px 8px rgba(251, 146, 60, 0.3);
        flex: 1;
        flex-direction: column;
        padding: .55rem 1rem;
        line-height: 1;
        min-height: 44px;
        font-family: inherit;
    }

    .mf-buy .mf-buy-text {
        font-size: 11px;
        font-weight: 600;
        opacity: 0.95;
        font-family: inherit;
    }

    .mf-buy .mf-buy-price {
        font-size: 13px;
        font-weight: 800;
        letter-spacing: -0.3px;
        font-family: inherit;
        line-height: 1;
    }

    .mf-buy:active {
        transform: scale(0.97)
    }

    .mf-cart {
        background: #fff;
        color: #fb923c;
        border: 2px solid #fb923c;
        width: 44px;
        height: 44px;
        min-height: 44px;
        padding: 0;
        flex-shrink: 0;
        font-family: inherit;
    }

    .mf-cart:active {
        transform: scale(0.95)
    }

    .mf-chat {
        background: #fff;
        color: #fb923c;
        border: 2px solid #fb923c;
        width: 44px;
        height: 44px;
        min-height: 44px;
        padding: 0;
        flex-shrink: 0;
        font-family: inherit
    }

    .mf-chat:active {
        transform: scale(0.95)
    }

    .mf-chat svg {
        width: 20px;
        height: 20px;
        flex-shrink: 0
    }

    .mf-share {
        background: #fff;
        color: #fb923c;
        border: 2px solid #fb923c;
        width: 44px;
        height: 44px;
        padding: 0;
        flex-shrink: 0;
    }

    .mf-share:active {
        transform: scale(0.95)
    }

    .mf-btn:disabled {
        opacity: .5;
        cursor: not-allowed
    }

    @media (max-width:640px) {
        .pd-mobile-fab {
            display: flex
        }

        .product-single {
            padding-bottom: 0;
        }

        /* Space for FAB + bottom-nav */
    }

    /* === Installment cards === */
    .pd-installment-card {
        border: 1px solid var(--pd-border);
        background: #fff;
        border-radius: var(--pd-radius);
        padding: 1rem 1.1rem 1.25rem;
        display: flex;
        flex-direction: column;
        gap: .85rem
    }

    .pd-installment-card h3 {
        margin: 0 0 .2rem;
        font-size: .78rem;
        font-weight: 700;
        letter-spacing: .6px;
        text-transform: uppercase;
        color: var(--pd-dark)
    }

    .inst-tabs {
        display: flex;
        gap: .4rem
    }

    .inst-tab {
        flex: 1 1 0;
        background: var(--pd-soft);
        border: 1px solid var(--pd-soft-border);
        padding: .45rem .5rem;
        font-size: .63rem;
        font-weight: 600;
        border-radius: 6px;
        cursor: pointer;
        letter-spacing: .4px;
        transition: var(--pd-transition)
    }

    .inst-tab.active,
    .inst-tab:hover {
        background: var(--pd-accent);
        color: #fff;
        border-color: var(--pd-accent)
    }

    .inst-tab:focus {
        outline: 2px solid var(--pd-accent);
        outline-offset: 2px
    }

    .inst-tenors {
        display: flex;
        gap: .4rem;
        flex-wrap: wrap
    }

    .tenor-btn {
        flex: 1 0 auto;
        background: #fff;
        border: 1px solid var(--pd-soft-border);
        padding: .42rem .55rem;
        font-size: .6rem;
        font-weight: 600;
        border-radius: 20px;
        cursor: pointer;
        transition: .18s;
        min-width: 56px
    }

    .tenor-btn.active,
    .tenor-btn:hover {
        background: #1d7df0;
        color: #fff;
        border-color: #1d7df0
    }

    .inst-result {
        display: flex;
        flex-direction: column;
        gap: .45rem;
        font-size: .63rem
    }

    .inst-line {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: .35rem .55rem;
        background: var(--pd-soft);
        border: 1px solid var(--pd-soft-border);
        border-radius: 6px
    }

    .inst-line.highlight {
        background: #1d7df0;
        color: #fff;
        border-color: #1d7df0;
        font-weight: 600
    }

    .inst-line .lbl {
        opacity: .8
    }

    .inst-line .val {
        font-weight: 600;
        letter-spacing: .3px
    }

    .inst-footnote {
        font-size: .53rem;
        line-height: 1.25;
        color: #64748b;
        margin-top: .2rem
    }

    @media (max-width: 860px) {
        .pd-installment-card {
            order: 3
        }

        .inst-tabs .inst-tab,
        .inst-tenors .tenor-btn {
            font-size: .65rem
        }

        /* Voucher button responsive - make it simpler */
        .btn-buy-voucher {
            padding: 0 12px;
            gap: 8px
        }

        .btn-buy-voucher .bv-icon {
            font-size: 18px
        }

        .btn-buy-voucher .bv-text {
            font-size: 13px
        }

        .btn-buy-voucher .bv-text small {
            font-size: 9px
        }

        .btn-buy-voucher .bv-save {
            font-size: 11px;
            padding: 3px 6px
        }
    }

    /* Installment List v2 (eye-catching) */
    .pd-installment-card2 {
        background: linear-gradient(135deg, #ffffff 0%, #16c48d 65%, #16c48d 100%);
        border: 1px solid #eb4141;
        border-radius: var(--pd-radius);
        padding: 1rem 1.05rem 1.2rem;
        display: flex;
        flex-direction: column;
        gap: .5rem;
        position: relative;
        overflow: hidden;
    }

    .pd-installment-card2:before {
        content: '';
        position: absolute;
        width: 140px;
        height: 140px;
        background: radial-gradient(circle at center, rgba(29, 125, 240, .18), rgba(29, 125, 240, 0));
        top: -40px;
        right: -40px;
        pointer-events: none
    }

    .pd-installment-card2 h3 {
        margin: 0;
        font-size: .8rem;
        font-weight: 700;
        letter-spacing: .6px;
        text-transform: uppercase;
        color: #0f2f54
    }

    .pd-installment-card2 .inst-head {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: .5rem
    }

    .inst-head-badge {
        background: #1d7df0;
        color: #fff;
        font-size: .55rem;
        font-weight: 600;
        padding: .25rem .5rem;
        border-radius: 20px;
        letter-spacing: .4px;
        box-shadow: 0 2px 6px -2px rgba(29, 125, 240, .6)
    }

    .inst-bank-tabs {
        display: flex;
        gap: .45rem
    }

    .bank-tab {
        flex: 1 1 0;
        background: #fff;
        border: 1px solid var(--pd-soft-border);
        padding: .5rem .55rem;
        font-size: .63rem;
        font-weight: 600;
        border-radius: 7px;
        cursor: pointer;
        transition: .18s;
        letter-spacing: .3px
    }

    .bank-tab.active,
    .bank-tab:hover {
        background: #1d7df0;
        color: #fff;
        border-color: #1d7df0;
        box-shadow: 0 3px 10px -4px rgba(29, 125, 240, .6)
    }

    .bank-tab:focus {
        outline: 2px solid #1d7df0;
        outline-offset: 2px
    }

    .inst-month-list {
        list-style: none;
        margin: 0;
        padding: 0;
        display: flex;
        flex-direction: column;
        gap: .55rem
    }

    .inst-month-item {
        display: flex;
        align-items: center;
        gap: .65rem;
        background: #fff;
        border: 1px solid var(--pd-soft-border);
        border-radius: 14px;
        padding: .55rem .7rem;
        position: relative;
        overflow: hidden;
        transition: .25s
    }

    .inst-month-item:before {
        content: '';
        position: absolute;
        inset: 0;
        opacity: 0;
        background: linear-gradient(90deg, rgba(29, 125, 240, .08), rgba(29, 125, 240, 0));
        transition: .25s
    }

    .inst-month-item:hover {
        transform: translateY(-2px);
        box-shadow: 0 6px 14px -6px rgba(0, 40, 120, .25)
    }

    .inst-month-item:hover:before {
        opacity: 1
    }

    .tenor-badge {
        background: #1d7df0;
        color: #fff;
        font-weight: 700;
        min-width: 42px;
        text-align: center;
        padding: .38rem .4rem;
        font-size: .8rem;
        border-radius: 10px;
        box-shadow: 0 3px 10px -4px rgba(29, 125, 240, .6)
    }

    .amount {
        flex: 1;
        font-size: .8rem;
        font-weight: 600;
        color: #0f2f54;
        letter-spacing: .3px
    }

    .tag {
        font-size: .55rem;
        font-weight: 600;
        padding: .28rem .55rem;
        border-radius: 30px;
        letter-spacing: .4px;
        text-transform: uppercase;
        white-space: nowrap
    }

    .tag-zero {
        background: #16a34a;
        color: #fff;
        box-shadow: 0 2px 8px -3px rgba(16, 180, 90, .55)
    }

    .inst-note {
        font-size: .6rem;
        font-weight: 600;
        color: #0f2f54;
        background: #e0f7ed;
        border: 1px solid #b2ebd2;
        padding: .4rem .6rem;
        border-radius: 8px;
        letter-spacing: .3px
    }

    .inst-disclaimer {
        font-size: .52rem;
        line-height: 1.25;
        color: #64748b;
        margin-top: -.2rem
    }

    @media (max-width:860px) {
        .pd-installment-card2 {
            order: 3
        }

        .tenor-badge {
            min-width: 38px;
            font-size: .75rem
        }

        .amount {
            font-size: .78rem
        }
    }

    /* Alt Fintech Banner (compact) */
    .inst-alt-banner--compact {
        background: linear-gradient(142deg, #1d7df0 0%, #3c98ff 55%, #67bdff 100%);
        color: #fff;
        border: 0;
        padding: .95rem .95rem 1.05rem;
        border-radius: 16px;
        box-shadow: 0 6px 18px -6px rgba(0, 70, 160, .45);
        position: relative;
        overflow: hidden;
        min-height: auto;
    }

    .inst-alt-banner--compact:before,
    .inst-alt-banner--compact:after {
        content: '';
        position: absolute;
        border-radius: 50%;
        background: rgba(255, 255, 255, .15);
        filter: blur(2px);
        pointer-events: none;
    }

    .inst-alt-banner--compact:before {
        width: 130px;
        height: 130px;
        top: -50px;
        right: -35px
    }

    .inst-alt-banner--compact:after {
        width: 90px;
        height: 90px;
        bottom: -40px;
        left: -30px
    }

    .inst-alt-banner--compact .iab-top {
        margin: 0 0 .55rem;
        display: flex;
        flex-direction: column;
        gap: .25rem
    }

    .inst-alt-banner--compact .iab-title {
        font-size: .74rem;
        font-weight: 700;
        letter-spacing: .7px;
        line-height: 1.15
    }

    .inst-alt-banner--compact .iab-sub {
        font-size: .55rem;
        font-weight: 500;
        opacity: .95;
        letter-spacing: .4px
    }

    .iab-logos-compact {
        display: flex;
        gap: .55rem;
        align-items: center;
        margin: 0 0 .6rem;
        flex-wrap: nowrap;
        justify-content: space-between
    }

    .iab-logos-compact .logo-fin {
        width: 30%
    }

    .iab-logos-compact .logo {
        width: 48px;
        height: 48px;
        border-radius: 14px;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: .62rem;
        font-weight: 700;
        letter-spacing: .3px;
        position: relative;
        color: #fff;
        box-shadow: 0 4px 10px -4px rgba(0, 0, 0, .35);
        background: rgba(255, 255, 255, .15);
        backdrop-filter: blur(4px);
        transition: .25s;
        text-shadow: 0 1px 2px rgba(0, 0, 0, .4);
        user-select: none;
    }

    .iab-logos-compact .logo:before {
        content: '';
        position: absolute;
        inset: 0;
        border-radius: inherit;
        background: linear-gradient(140deg, rgba(255, 255, 255, .35), rgba(255, 255, 255, 0));
        mix-blend-mode: overlay;
        opacity: .55;
        pointer-events: none;
    }

    .iab-logos-compact .logo:hover {
        transform: translateY(-3px) scale(1.05);
        box-shadow: 0 8px 18px -6px rgba(0, 0, 0, .45)
    }

    .iab-cta--compact {
        display: inline-flex;
        padding: .45rem .85rem;
        font-size: .58rem;
        font-weight: 700;
        background: #fff;
        color: #0f3c6d;
        border-radius: 30px;
        text-decoration: none;
        letter-spacing: .55px;
        box-shadow: 0 4px 12px -5px rgba(0, 0, 0, .35);
        transition: .25s;
    }

    .iab-cta--compact:hover {
        transform: translateY(-2px);
        box-shadow: 0 8px 18px -7px rgba(0, 0, 0, .45)
    }

    .iab-footnote--compact {
        margin-top: .45rem;
        font-size: .46rem;
        opacity: .85;
        letter-spacing: .25px
    }

    @media (max-width:860px) {
        .inst-alt-banner--compact {
            order: 4;
            margin-top: .4rem;
            flex: 1 1
        }

        .iab-logos-compact .logo {
            width: 46px;
            height: 46px
        }
    }

    /* === Scroll To Top (baru) === */
    .pd-scroll-top {
        position: fixed;
        right: 20px;
        bottom: 90px;
        width: 48px;
        height: 48px;
        border-radius: 50%;
        background: linear-gradient(135deg, #ffffff 0%, #f8fafc 100%);
        color: #0f2f54;
        border: 1px solid rgba(226, 232, 240, 0.8);
        box-shadow: 0 8px 20px -8px rgba(0, 0, 0, .3), 0 2px 6px rgba(0, 0, 0, .1);
        display: flex;
        align-items: center;
        justify-content: center;
        cursor: pointer;
        z-index: 1105;
        opacity: 0;
        transform: translateY(12px) scale(.92);
        transition: all .3s cubic-bezier(0.4, 0, 0.2, 1);
        backdrop-filter: blur(8px);
        -webkit-backdrop-filter: blur(8px);
    }

    .pd-scroll-top:hover {
        box-shadow: 0 12px 28px -10px rgba(0, 0, 0, .4), 0 4px 12px rgba(0, 0, 0, .15);
        transform: translateY(0) scale(1);
        background: linear-gradient(135deg, #ffffff 0%, #fefefe 100%);
        border-color: rgba(226, 232, 240, 1);
    }

    .pd-scroll-top:active {
        transform: translateY(0) scale(.96);
    }

    .pd-scroll-top:focus-visible {
        outline: 2px solid var(--pd-accent);
        outline-offset: 2px
    }

    .pd-scroll-top.visible {
        opacity: 1;
        transform: translateY(0) scale(1)
    }

    @media (max-width:640px) {

        /* Dynamic positioning via JavaScript */
        .pd-scroll-top {
            right: 14px;
            bottom: var(--scroll-top-bottom, calc(68px + 18px + env(safe-area-inset-bottom)));
        }
    }

    /* === Responsive layout tweaks === */
    @media (max-width:1250px) {
        .pd-top-layout {
            grid-template-columns: minmax(260px, 330px) 1fr
        }

        .pd-sidebar {
            grid-column: 1 / -1;
            flex-direction: row;
            flex-wrap: wrap;
            gap: 1rem
        }

        .pd-side-card {
            flex: 1 1 250px
        }
    }

    @media (max-width:880px) {
        .pd-top-layout {
            grid-template-columns: 1fr
        }

        .pd-sidebar {
            flex-direction: column;
            padding: 0 1rem;
        }

        .pd-title {
            font-size: 1.2rem
        }

        .pd-price-current {
            font-size: 1.5rem
        }
    }

    @media (max-width:640px) {

        /* Related: 2 kolom di mobile */
        .pd-related-full {
            padding: 1.2rem;
            border: 0;
            padding-top: .6rem;
            margin-bottom: .6rem;
        }

        .pd-related-grid,
        .pd-related-grid--full {
            grid-template-columns: repeat(2, 1fr) !important;
            gap: 12px !important
        }
    }

    @media (max-width:560px) {
        .pd-actions {
            flex-direction: column
        }

        .btn-add-cart,
        .btn-buy,
        .btn-buy-voucher {
            width: 100%
        }

        .pd-full-description {
            padding: 1.2rem;
            border: 0;
            padding-bottom: 0;
        }
    }

    @media (max-width:380px) {
        .pd-related-full {
            padding: .9rem .7rem 1.1rem
        }

        .pd-related-grid,
        .pd-related-grid--full {
            gap: 8px !important
        }

        .pd-related-card .info {
            padding: .4rem .48rem .55rem
        }
    }

    /* === Modern Countdown (Product Detail) === */
    .pd-countdown-modern {
        --cd-bg1: #0ea5e9;
        /* sky-500 */
        --cd-bg2: #6366f1;
        /* indigo-500 */
        --cd-text: #0b1220;
        --cd-contrast: #ffffff;
        --cd-shadow: 0 8px 24px -10px rgba(0, 0, 0, .25);
        --cd-border: rgba(255, 255, 255, .25);
        --cd-box: rgba(255, 255, 255, .65);
        --cd-box-text: #0f172a;
        --cd-danger: #ef4444;

        display: flex;
        gap: .75rem;
        align-items: center;
        background: linear-gradient(135deg, var(--cd-bg1), var(--cd-bg2));
        border: 1px solid var(--cd-border);
        color: var(--cd-contrast);
        border-radius: 14px;
        padding: .6rem .8rem;
        box-shadow: var(--cd-shadow);
        position: relative;
        overflow: hidden;
        margin-bottom: 1rem;
    }

    .pd-countdown-modern .pd-cd-icon {
        width: 28px;
        height: 28px;
        flex: 0 0 28px;
        display: grid;
        place-items: center;
        background: rgba(255, 255, 255, .22);
        border: 1px solid var(--cd-border);
        border-radius: 10px;
        box-shadow: inset 0 1px 0 rgba(255, 255, 255, .35);
    }

    .pd-countdown-modern .pd-cd-icon svg {
        width: 18px;
        height: 18px;
        fill: #fff;
        opacity: .95
    }

    .pd-countdown-modern .pd-cd-body {
        display: flex;
        flex-direction: column;
        gap: .35rem;
        min-width: 0
    }

    .pd-countdown-modern .pd-cd-label {
        font-size: .72rem;
        font-weight: 700;
        letter-spacing: .4px;
        opacity: .95;
        line-height: 1;
        text-shadow: 0 1px 0 rgba(0, 0, 0, .08);
    }

    .pd-countdown-modern .pd-cd-time {
        display: flex;
        align-items: end;
        gap: .35rem;
        flex-wrap: wrap;
        line-height: 1;
    }

    .pd-countdown-modern .unit {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: .18rem;
        min-width: 58px;
    }

    .pd-countdown-modern .num {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-width: 58px;
        height: 40px;
        padding: 0 .4rem;
        background: var(--cd-box);
        color: var(--cd-box-text);
        border: 1px solid rgba(15, 23, 42, .08);
        border-radius: 10px;
        font: 800 1.05rem ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
        letter-spacing: .5px;
        box-shadow: 0 4px 14px -6px rgba(0, 0, 0, .4), inset 0 1px 0 rgba(255, 255, 255, .55);
    }

    .pd-countdown-modern .unit-label {
        font-size: .62rem;
        font-weight: 700;
        opacity: .9;
        text-shadow: 0 1px 0 rgba(255, 255, 255, .15);
    }

    .pd-countdown-modern .colon {
        font-weight: 900;
        font-size: 1.05rem;
        opacity: .95;
        transform: translateY(-2px);
        animation: cdBlink 1.2s infinite steps(2, jump-none);
    }

    @keyframes cdBlink {
        0% {
            opacity: 1
        }

        50% {
            opacity: .25
        }

        100% {
            opacity: 1
        }
    }

    .pd-countdown-modern .pd-cd-progress {
        display: none;
        position: relative;
        height: 6px;
        border-radius: 999px;
        overflow: hidden;
        background: rgba(255, 255, 255, .25);
        border: 1px solid rgba(255, 255, 255, .28);
    }

    .pd-countdown-modern .pd-cd-progress .bar {
        height: 100%;
        width: 0%;
        background: linear-gradient(90deg, #22c55e, #a3e635);
        box-shadow: 0 2px 8px rgba(0, 0, 0, .25) inset;
        transition: width .35s ease;
    }

    /* State saat hampir habis */
    .pd-countdown-modern.danger {
        --cd-bg1: #f97316;
        /* orange-500 */
        --cd-bg2: #ef4444;
        /* red-500   */
    }

    /* Responsive */
    @media (max-width:640px) {
        .pd-countdown-modern {
            padding: .55rem .65rem;
            border-radius: 12px;
            gap: .6rem;
        }

        .pd-countdown-modern .unit {
            min-width: 52px
        }

        .pd-countdown-modern .num {
            min-width: 52px;
            height: 36px;
            font-size: .98rem
        }
    }

    /* === Modern Countdown polish (shine + compact) === */
    .pd-countdown-modern {
        position: relative;
    }

    .pd-countdown-modern::after {
        content: "";
        position: absolute;
        inset: -1px;
        background: linear-gradient(120deg, rgba(255, 255, 255, .12), rgba(255, 255, 255, 0) 35%),
            radial-gradient(120% 120% at 0% 0%, rgba(255, 255, 255, .08), rgba(255, 255, 255, 0) 60%);
        border-radius: inherit;
        pointer-events: none;
        mix-blend-mode: screen;
        animation: sheen 4.5s ease-in-out infinite;
    }

    @keyframes sheen {
        0% {
            opacity: .35;
            transform: translateX(-10%)
        }

        50% {
            opacity: .15;
            transform: translateX(4%)
        }

        100% {
            opacity: .35;
            transform: translateX(-10%)
        }
    }

    /* Mode compact (aktifkan dengan data-mode="compact" di elemen) */
    .pd-countdown-modern[data-mode="compact"] {
        gap: .55rem;
        padding: .5rem .6rem;
        border-radius: 12px;
    }

    .pd-countdown-modern[data-mode="compact"] .unit {
        min-width: 46px;
    }

    .pd-countdown-modern[data-mode="compact"] .num {
        min-width: 46px;
        height: 34px;
        font-size: .92rem;
    }

    .pd-countdown-modern[data-mode="compact"] .pd-cd-label {
        font-size: .66rem;
    }

    .pd-countdown-modern[data-mode="compact"] .pd-cd-icon {
        width: 24px;
        height: 24px;
        border-radius: 8px;
    }

    .pd-countdown-modern[data-mode="compact"] .pd-cd-progress {
        height: 5px;
    }

    /* Product Grid (Firebird) */

    .product-archive {
        max-width: 1320px;
        margin-inline: auto;
        padding: 0 0 3rem;
        /*font-family: system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,sans-serif;*/
    }

    .pa-toolbar {
        display: flex;
        flex-wrap: wrap;
        gap: 1rem;
        justify-content: space-between;
        align-items: flex-start;
        margin-bottom: 1.4rem;
    }

    .pa-title {
        font-size: 1.4rem;
        margin: 0;
        font-weight: 600;
        line-height: 1.2;
        color: #0f172a;
    }

    .pa-left {
        display: flex;
        flex-wrap: wrap;
        gap: .75rem;
        align-items: center;
    }

    .pa-filter-badge {
        background: #f1f5f9;
        border: 1px solid #e2e8f0;
        padding: .45rem .6rem;
        border-radius: 8px;
        font-size: .7rem;
        display: flex;
        align-items: center;
        gap: .4rem;
        line-height: 1;
        color: #475569;
    }

    .pa-filter-badge strong {
        color: #0f172a;
    }

    .pa-filter-badge .clear {
        display: inline-block;
        text-decoration: none;
        background: #e2e8f0;
        color: #475569;
        font-weight: 600;
        padding: 0 .35rem .05rem;
        border-radius: 4px;
        transition: .2s;
        font-size: .75rem;
        line-height: 1;
    }

    .pa-filter-badge .clear:hover {
        background: #cbd5e1;
        color: #1e293b;
    }

    .pa-right {
        display: flex;
        gap: 1rem;
        flex-wrap: wrap;
        align-items: flex-start;
    }

    .pa-search {
        display: flex;
        gap: .5rem;
        align-items: center;
        background: #fff;
        border: 1px solid #e2e8f0;
        padding: .4rem .5rem;
        border-radius: 8px;
    }

    .pa-search input[type=text] {
        border: 0;
        outline: none;
        font-size: .8rem;
        padding: .35rem .4rem;
        min-width: 200px;
    }

    .pa-search button {
        background: #0d6efd;
        border: 0;
        color: #fff;
        font-size: .7rem;
        padding: .45rem .75rem;
        border-radius: 6px;
        cursor: pointer;
        font-weight: 600;
        letter-spacing: .3px;
        transition: .25s;
    }

    .pa-search button:hover {
        background: #0b5dc4;
    }

    .pa-sort {
        display: flex;
        gap: .4rem;
        align-items: center;
        font-size: .7rem;
        background: #fff;
        border: 1px solid #e2e8f0;
        padding: .4rem .55rem;
        border-radius: 8px;
    }

    .pa-sort select {
        font-size: .75rem;
        padding: .35rem .5rem;
        border: 1px solid #cbd5e1;
        border-radius: 6px;
        background: #fff;
        outline: none;
    }

    .pa-empty {
        border: 1px dashed #cbd5e1;
        padding: 3rem 1rem;
        text-align: center;
        border-radius: 12px;
        background: #fff;
    }

    .pa-empty p {
        margin: 0 0 1rem;
        font-size: .9rem;
        color: #475569;
    }

    .btn-reset {
        display: inline-block;
        background: #0d6efd;
        color: #fff;
        font-size: .7rem;
        padding: .55rem 1rem;
        border-radius: 8px;
        text-decoration: none;
        font-weight: 600;
        letter-spacing: .4px;
        transition: .25s;
    }

    .btn-reset:hover {
        background: #0a58c7;
    }

    /* Grid */
    .pa-grid {
        display: grid;
        gap: 1rem;
        grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
        align-items: stretch;
    }

    .pa-card {
        background: #fff;
        border: 1px solid #e2e8f0;
        border-radius: 12px;
        display: flex;
        flex-direction: column;
        text-decoration: none;
        color: inherit;
        position: relative;
        overflow: hidden;
        transition: .28s cubic-bezier(.4, 0, .2, 1);
        min-width: 0;
        padding: 0;
    }

    .pa-card:hover {
        transform: translateY(-4px);
        box-shadow: 0 8px 22px -8px rgba(0, 0, 0, .15);
        border-color: #dce2ea;
    }

    .pa-card .thumb {
        aspect-ratio: 1/1;
        background: #f1f5f9;
        display: flex;
        align-items: center;
        justify-content: center;
        overflow: hidden;
        position: relative;
    }

    .pa-card img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
    }

    .badge-disc {
        position: absolute;
        top: 8px;
        left: 8px;
        background: #16c48d;
        color: #fff;
        font-size: .6rem;
        padding: 4px 6px 3px;
        border-radius: 6px;
        font-weight: 700;
        letter-spacing: .4px;
    }

    .pa-card .body {
        padding: .65rem .7rem .8rem;
        display: flex;
        flex-direction: column;
        gap: .45rem;
        min-height: 90px;
    }

    .pa-card .title {
        font-size: .75rem;
        line-height: 1.25;
        margin: 0;
        font-weight: 600;
        color: #1e293b;
        height: 2.4em;
        overflow: hidden;
    }

    .pa-card .prices {
        display: flex;
        flex-wrap: wrap;
        align-items: baseline;
        gap: .4rem;
    }

    .pa-card .prices .final {
        font-size: .83rem;
        font-weight: 700;
        color: #0d6efd;
    }

    .pa-card .prices .ori {
        font-size: .63rem;
        text-decoration: line-through;
        color: #94a3b8;
        font-weight: 500;
    }

    .pa-card .cat {
        margin-top: auto;
        font-size: .55rem;
        letter-spacing: .6px;
        text-transform: uppercase;
        background: #f1f5f9;
        border: 1px solid #e2e8f0;
        padding: .28rem .45rem .25rem;
        border-radius: 20px;
        font-weight: 600;
        color: #475569;
        align-self: flex-start;
    }

    .pa-card .meta-line {
        margin-top: 4px;
        font-size: .65rem;
        color: #475569;
    }

    .pa-card .meta-line .sold {
        display: inline-block;
        background: #f1f5f9;
        padding: 2px 6px 3px;
        border-radius: 4px;
        font-weight: 600;
        letter-spacing: .3px;
        color: #334155;
    }

    /* Pagination */
    .pa-pagination {
        margin-top: 2rem;
        display: flex;
        flex-wrap: wrap;
        gap: .4rem;
        justify-content: center;
        font-size: .7rem;
        align-items: center;
    }

    .pa-pagination a,
    .pa-pagination span {
        min-width: 34px;
        height: 34px;
        display: flex;
        align-items: center;
        justify-content: center;
        border-radius: 8px;
        text-decoration: none;
        font-weight: 600;
        padding: 0 .6rem;
        box-sizing: border-box;
        border: 1px solid #e2e8f0;
        background: #fff;
        color: #334155;
        transition: .25s;
    }

    .pa-pagination a:hover {
        background: #f1f5f9;
        color: #0f172a;
    }

    .pa-pagination .current {
        background: #0d6efd;
        color: #fff;
        border-color: #0d6efd;
    }

    .pa-pagination .gap {
        border: none;
        background: transparent;
        font-weight: 400;
        color: #94a3b8;
    }

    /* =============== Mobile Filter Bar (Tokopedia-like) =============== */
    .pa-mobile-filterbar {
        display: none
    }

    @media (max-width: 640px) {

        /* sembunyikan tombol lama */
        .pa-btn-filter {
            display: none
        }

        .pa-mobile-filterbar {
            display: block;
            position: sticky;
            top: 0;
            /* sesuaikan jika ada header fixed di atas */
            z-index: 5;
            background: #fff;
            border-bottom: 1px solid #e2e8f0;
            padding: .4rem .5rem;
            margin: -.4rem -1rem .6rem;
            /* full-bleed di container mobile */
        }

        .pa-mobile-filterbar .mf-scroll {
            display: flex;
            align-items: center;
            gap: .5rem;
            overflow-x: auto;
            -webkit-overflow-scrolling: touch;
            scrollbar-width: none;
        }

        .pa-mobile-filterbar .mf-scroll::-webkit-scrollbar {
            display: none
        }

        .mf-chip {
            flex: 0 0 auto;
            background: #fff;
            color: #334155;
            text-decoration: none;
            border: 1px solid #e2e8f0;
            border-radius: 999px;
            padding: .44rem .7rem;
            font-size: .78rem;
            font-weight: 600;
            letter-spacing: .2px;
            white-space: nowrap;
        }

        .mf-chip:active {
            transform: scale(.98)
        }

        .mf-chip.active {
            background: #eaf2ff;
            border-color: #0d6efd;
            color: #0d6efd;
        }

        .mf-filter-btn {
            position: relative;
            flex: 0 0 auto;
            width: 38px;
            height: 38px;
            border-radius: 50%;
            border: 1.5px solid #0d6efd;
            background: #fff;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            color: #0d6efd;
            cursor: pointer;
        }

        .mf-filter-btn:active {
            transform: scale(.96)
        }

        .mf-filter-btn svg {
            width: 18px;
            height: 18px;
            display: block
        }

        .mf-filter-btn .mf-badge {
            position: absolute;
            top: 0;
            right: -4px;
            min-width: 18px;
            height: 18px;
            border-radius: 9px;
            background: #ef4444;
            color: #fff;
            font-size: .65rem;
            font-weight: 700;
            display: flex;
            align-items: center;
            justify-content: center;
            padding: 0 4px;
            line-height: 1;
            box-shadow: 0 2px 6px -2px rgba(239, 68, 68, .6);
        }
    }

    /* Responsive */
    @media (max-width: 640px) {
        .product-archive {
            padding: 0 1rem 3rem;
        }

        .pa-grid {
            grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
        }

        .pa-search input[type=text] {
            min-width: 140px;
        }

        .pa-toolbar {
            flex-direction: column;
            align-items: stretch;
            margin-bottom: 0;
            display: none;
        }

        .pa-right {
            display: none;
        }

        .pa-sort {
            width: 100%;
            justify-content: center;
        }

        .pa-mobile-filterbar {
            display: flex !important;
        }
    }

    .pa-mobile-filterbar {
        display: none;
        align-items: center;
        gap: 8px;
        padding: 8px 0 8px 12px;
        background: #fff;
        width: 100vw;
    }

    .pa-mobile-filterbar .mf-scroll {
        display: flex;
        gap: 8px;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        /* Firefox */
        flex: 1 1 auto;
        /* takes remaining width */
    }

    .pa-mobile-filterbar .mf-scroll::-webkit-scrollbar {
        display: none;
    }

    /* WebKit */
    .pa-mobile-filterbar .mf-chip {
        flex: 0 0 auto;
        /* prevent shrinking, keep width based on content */
        white-space: nowrap;
    }

    .pa-mobile-filterbar .mf-filter-btn {
        flex: 0 0 auto;
        /* do not shrink */
        position: relative;
        /* keep in place, not inside scroller */
        display: inline-flex;
        align-items: center;
        gap: 6px;
    }

    /* Optional: ensure on small screens the button stays visible with min width */
    @media (max-width: 768px) {
        .pa-mobile-filterbar .mf-filter-btn {
            padding: 6px 10px;
        }
    }

    /* Product Specification Chips */
    .pa-card .spec-chips {
        font-size: .6rem;
        color: #64748b;
        font-weight: 500;
        letter-spacing: .2px;
        margin-top: 2px;
        margin-bottom: 4px;
        line-height: 1.2;
        opacity: 0.9;
        max-width: 100%;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .pa-card .spec-chips .spec-divider {
        color: #94a3b8;
        font-weight: 400;
        margin: 0 1px;
    }

    /**
 * Site Notice Banner - Reusable Notification System
 * Dismissible top bar for announcements, holidays, maintenance, etc.
 */

    .holiday-notice {
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        z-index: 9999;
        background: linear-gradient(135deg, #d32f2f 0%, #f57c00 100%);
        border-bottom: 2px solid rgba(255, 255, 255, 0.2);
        box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
        animation: slideDown 0.4s cubic-bezier(0.4, 0, 0.2, 1);
        transform-origin: top;
    }

    .holiday-notice.hidden {
        animation: slideUp 0.3s cubic-bezier(0.4, 0, 0.2, 1) forwards;
    }

    @keyframes slideDown {
        from {
            transform: translateY(-100%);
            opacity: 0;
        }

        to {
            transform: translateY(0);
            opacity: 1;
        }
    }

    @keyframes slideUp {
        from {
            transform: translateY(0);
            opacity: 1;
        }

        to {
            transform: translateY(-100%);
            opacity: 0;
        }
    }

    .holiday-notice-container {
        max-width: 1400px;
        margin: 0 auto;
        padding: 12px 20px;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 16px;
    }

    .holiday-notice-content {
        display: flex;
        align-items: center;
        gap: 12px;
        flex: 1;
    }

    .holiday-notice-icon {
        font-size: 20px;
        line-height: 1;
        flex-shrink: 0;
    }

    .holiday-notice-text {
        color: #ffffff;
        font-size: 14px;
        font-weight: 500;
        line-height: 1.5;
        margin: 0;
        text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
    }

    .holiday-notice-emoji {
        display: inline-block;
        animation: bounce 2s ease-in-out infinite;
    }

    @keyframes bounce {

        0%,
        100% {
            transform: translateY(0);
        }

        50% {
            transform: translateY(-4px);
        }
    }

    .holiday-notice-close {
        background: rgba(255, 255, 255, 0.2);
        border: 1px solid rgba(255, 255, 255, 0.3);
        border-radius: 6px;
        padding: 6px;
        cursor: pointer;
        color: #ffffff;
        transition: all 0.2s ease;
        flex-shrink: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        width: 32px;
        height: 32px;
    }

    .holiday-notice-close:hover {
        background: rgba(255, 255, 255, 0.3);
        transform: scale(1.05);
    }

    .holiday-notice-close:active {
        transform: scale(0.95);
    }

    .holiday-notice-close:focus {
        outline: 2px solid rgba(255, 255, 255, 0.5);
        outline-offset: 2px;
    }

    /* Body padding adjustment when banner is visible */
    body.has-holiday-notice {
        padding-top: 52px;
    }

    /* Tablet Styles */
    @media (max-width: 1024px) {
        .holiday-notice-container {
            padding: 10px 16px;
        }

        .holiday-notice-text {
            font-size: 13px;
        }

        .holiday-notice-icon {
            font-size: 18px;
        }

        body.has-holiday-notice {
            padding-top: 48px;
        }
    }

    /* Mobile Styles */
    @media (max-width: 640px) {
        .holiday-notice-container {
            padding: 10px 12px;
            gap: 8px;
        }

        .holiday-notice-content {
            gap: 8px;
        }

        .holiday-notice-text {
            font-size: 12px;
            line-height: 1.4;
        }

        .holiday-notice-icon {
            font-size: 16px;
        }

        .holiday-notice-close {
            width: 28px;
            height: 28px;
        }

        .holiday-notice-close svg {
            width: 16px;
            height: 16px;
        }

        body.has-holiday-notice {
            padding-top: 44px;
        }
    }

    /* Ensure header doesn't get covered - removed z-index as it conflicts with dropdown stacking */
    /* .header,
.navbar,
header {
    position: relative;
    z-index: 100;
} */

    /**
 * Benchmark Section Styles
 * For product detail page benchmark display
 */

    .pd-benchmark-section {
        background: #fff;
        border-radius: 12px;
        padding: 24px;
        margin: 32px 0;
        box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
        border: 1px solid #e5e7eb;
    }

    .benchmark-header {
        margin-bottom: 20px;
    }

    .benchmark-title {
        font-size: 22px;
        font-weight: 700;
        color: #1a1a1a;
        margin: 0 0 12px 0;
        display: flex;
        align-items: center;
        gap: 8px;
    }

    .benchmark-hint {
        font-size: 14px;
        color: #6b7280;
        margin: 0;
    }

    /* Preview Badges */
    .benchmark-preview-badges {
        display: flex;
        flex-wrap: wrap;
        gap: 10px;
        margin-top: 12px;
    }

    .benchmark-badge {
        display: inline-flex;
        align-items: center;
        gap: 6px;
        background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
        color: #fff;
        padding: 8px 16px;
        border-radius: 20px;
        font-size: 13px;
        font-weight: 500;
        box-shadow: 0 2px 6px rgba(102, 126, 234, 0.25);
        transition: all 0.2s ease;
    }

    .benchmark-badge:hover {
        transform: translateY(-2px);
        box-shadow: 0 4px 12px rgba(102, 126, 234, 0.35);
    }

    .benchmark-badge strong {
        font-weight: 600;
        opacity: 0.9;
    }

    /* Load Button */
    .btn-load-benchmark {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 10px;
        width: 100%;
        max-width: 420px;
        padding: 14px 24px;
        background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
        color: #fff;
        border: none;
        border-radius: 8px;
        font-size: 15px;
        font-weight: 600;
        cursor: pointer;
        transition: all 0.3s ease;
        box-shadow: 0 4px 12px rgba(102, 126, 234, 0.3);
        margin: 0 auto;
    }

    .btn-load-benchmark:hover:not(:disabled) {
        transform: translateY(-2px);
        box-shadow: 0 6px 16px rgba(102, 126, 234, 0.4);
    }

    .btn-load-benchmark:disabled {
        opacity: 0.6;
        cursor: not-allowed;
    }

    .btn-load-benchmark .btn-icon {
        font-size: 20px;
    }

    .btn-load-benchmark.loading .btn-icon {
        animation: spin 1s linear infinite;
    }

    @keyframes spin {
        from {
            transform: rotate(0deg);
        }

        to {
            transform: rotate(360deg);
        }
    }

    /* Benchmark Content */
    .benchmark-content {
        margin-top: 24px;
        padding-top: 24px;
        border-top: 2px solid #f3f4f6;
    }

    .benchmark-loading {
        text-align: center;
        padding: 40px 20px;
        color: #6b7280;
    }

    .benchmark-loading-spinner {
        width: 48px;
        height: 48px;
        margin: 0 auto 16px;
        border: 4px solid #f3f4f6;
        border-top-color: #667eea;
        border-radius: 50%;
        animation: spin 1s linear infinite;
    }

    .benchmark-error {
        text-align: center;
        padding: 32px 20px;
        color: #ef4444;
        background: #fee2e2;
        border-radius: 8px;
    }

    /* Benchmark Data Display */
    .benchmark-data-grid {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
        gap: 16px;
        margin-bottom: 24px;
    }

    .benchmark-card {
        background: linear-gradient(135deg, #667eea15 0%, #764ba215 100%);
        border: 1px solid #e5e7eb;
        border-radius: 10px;
        padding: 18px;
        text-align: center;
        transition: all 0.2s ease;
    }

    .benchmark-card:hover {
        transform: translateY(-3px);
        box-shadow: 0 6px 16px rgba(102, 126, 234, 0.15);
    }

    .benchmark-card-label {
        font-size: 13px;
        color: #6b7280;
        font-weight: 500;
        margin-bottom: 8px;
        text-transform: uppercase;
        letter-spacing: 0.5px;
    }

    .benchmark-card-value {
        font-size: 24px;
        font-weight: 700;
        color: #1a1a1a;
        line-height: 1.2;
    }

    .benchmark-card-value.large {
        font-size: 28px;
    }

    .benchmark-card-subtitle {
        font-size: 12px;
        color: #9ca3af;
        margin-top: 4px;
    }

    /* Spec Details */
    .benchmark-specs {
        background: #f9fafb;
        border-radius: 10px;
        padding: 20px;
        margin-top: 20px;
    }

    .benchmark-specs-title {
        font-size: 16px;
        font-weight: 600;
        color: #1a1a1a;
        margin: 0 0 16px 0;
    }

    .benchmark-spec-row {
        display: flex;
        justify-content: space-between;
        padding: 10px 0;
        border-bottom: 1px solid #e5e7eb;
    }

    .benchmark-spec-row:last-child {
        border-bottom: none;
    }

    .benchmark-spec-label {
        font-size: 14px;
        color: #6b7280;
        font-weight: 500;
    }

    .benchmark-spec-value {
        font-size: 14px;
        color: #1a1a1a;
        font-weight: 600;
        text-align: right;
    }

    /* Score Badges */
    .benchmark-score-badge {
        display: inline-block;
        padding: 6px 14px;
        border-radius: 20px;
        font-size: 13px;
        font-weight: 600;
        margin-top: 8px;
    }

    .benchmark-score-badge.excellent {
        background: #10b981;
        color: #fff;
    }

    .benchmark-score-badge.good {
        background: #3b82f6;
        color: #fff;
    }

    .benchmark-score-badge.average {
        background: #f59e0b;
        color: #fff;
    }

    .benchmark-score-badge.poor {
        background: #ef4444;
        color: #fff;
    }

    /* Attribution */
    .benchmark-attribution {
        text-align: center;
        margin-top: 24px;
        padding-top: 20px;
        border-top: 1px solid #e5e7eb;
        font-size: 13px;
        color: #9ca3af;
    }

    .benchmark-attribution a {
        color: #667eea;
        text-decoration: none;
        font-weight: 500;
    }

    .benchmark-attribution a:hover {
        text-decoration: underline;
    }

    /* Responsive */
    @media (max-width: 768px) {
        .pd-benchmark-section {
            padding: 16px;
            margin: 20px 0;
        }

        .benchmark-title {
            font-size: 18px;
        }

        .benchmark-preview-badges {
            flex-direction: column;
            gap: 8px;
        }

        .benchmark-badge {
            justify-content: center;
        }

        .btn-load-benchmark {
            font-size: 14px;
            padding: 12px 20px;
        }

        .benchmark-data-grid {
            grid-template-columns: 1fr 1fr;
            gap: 12px;
        }

        .benchmark-card {
            padding: 14px;
        }

        .benchmark-card-value {
            font-size: 20px;
        }

        .benchmark-spec-row {
            flex-direction: column;
            gap: 4px;
        }

        .benchmark-spec-value {
            text-align: left;
        }
    }

    @media (max-width: 480px) {
        .benchmark-data-grid {
            grid-template-columns: 1fr;
        }
    }

    /* Tile Mega Menu — Modern E-commerce Enhanced (2025) */

    /* Design Tokens */
    :root {
        --mm2-bg: #ffffff;
        --mm2-surface: #ffffff;
        --mm2-surface-elevated: rgba(255, 255, 255, 0.98);
        --mm2-muted: #f8fafc;
        --mm2-border: #e2e8f0;
        --mm2-border-strong: #cbd5e1;
        --mm2-accent: #6366f1;
        --mm2-accent-hover: #4f46e5;
        --mm2-accent-10: rgba(99, 102, 241, .10);
        --mm2-accent-20: rgba(99, 102, 241, .20);
        --mm2-fg: #0f172a;
        --mm2-fg-muted: #64748b;
        --mm2-fg-light: #94a3b8;

        /* Enhanced Shadows - Multi-layer elevation */
        --mm2-shadow-sm: 0 2px 8px rgba(15, 23, 42, .06), 0 1px 2px rgba(15, 23, 42, .04);
        --mm2-shadow-md: 0 8px 24px rgba(15, 23, 42, .10), 0 2px 8px rgba(15, 23, 42, .06);
        --mm2-shadow-lg: 0 20px 60px rgba(15, 23, 42, .14), 0 8px 24px rgba(15, 23, 42, .08);
        --mm2-shadow-xl: 0 32px 80px rgba(15, 23, 42, .18), 0 12px 32px rgba(15, 23, 42, .10);
        --mm2-shadow-hover: 0 16px 40px rgba(15, 23, 42, .16), 0 6px 16px rgba(15, 23, 42, .08);

        /* Border Radius */
        --mm2-radius-xl: 20px;
        --mm2-radius-lg: 16px;
        --mm2-radius-md: 12px;
        --mm2-radius-sm: 10px;

        --mm2-z: 60;

        /* Animation Timing */
        --mm2-transition-fast: 150ms cubic-bezier(0.4, 0, 0.2, 1);
        --mm2-transition-base: 250ms cubic-bezier(0.4, 0, 0.2, 1);
        --mm2-transition-slow: 350ms cubic-bezier(0.4, 0, 0.2, 1);
    }

    .navbar {
        position: relative;
        z-index: var(--mm2-z);
    }

    /* Trigger Button - Enhanced */
    .mm2-trigger {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        padding: 10px 14px;
        border-radius: var(--mm2-radius-md);
        border: 1.5px solid var(--mm2-border);
        background: var(--mm2-surface);
        color: var(--mm2-fg);
        cursor: pointer;
        user-select: none;
        transition: all var(--mm2-transition-fast);
        text-decoration: none;
        font-weight: 600;
        box-shadow: var(--mm2-shadow-sm);
    }

    .mm2-trigger:hover {
        border-color: var(--mm2-accent);
        background: var(--mm2-muted);
        box-shadow: var(--mm2-shadow-md);
        transform: translateY(-1px);
    }

    .mm2-trigger:active {
        transform: translateY(0);
    }

    .mm2-trigger svg {
        max-width: unset !important;
        transition: transform var(--mm2-transition-fast);
    }

    .mm2-trigger:hover svg {
        transform: scale(1.05);
    }

    /* Backdrop - Enhanced Glassmorphism */
    .mm2-backdrop {
        position: fixed;
        inset: 0;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        background: rgba(15, 23, 42, .40);
        backdrop-filter: blur(8px) saturate(1.2);
        -webkit-backdrop-filter: blur(8px) saturate(1.2);
        opacity: 0;
        pointer-events: none;
        z-index: 499;
        transition: opacity var(--mm2-transition-base);
    }

    .mm2-open .mm2-backdrop {
        opacity: 1;
        pointer-events: auto;
    }

    /* Panel - Glassmorphism Enhanced */
    .mm2-panel {
        position: fixed;
        left: 50%;
        top: 120px;
        transform: translateX(-50%) translateY(-16px);
        width: min(1200px, 95vw);
        background: var(--mm2-surface-elevated);
        backdrop-filter: blur(20px) saturate(1.8);
        -webkit-backdrop-filter: blur(20px) saturate(1.8);
        border: 1.5px solid var(--mm2-border-strong);
        border-radius: var(--mm2-radius-xl);
        box-shadow: var(--mm2-shadow-xl);
        display: none;
        overflow: hidden;
        opacity: 0;
        z-index: 500;
        transition: transform var(--mm2-transition-slow), opacity var(--mm2-transition-base);
    }

    .mm2-open .mm2-panel {
        display: block;
        opacity: 1;
        transform: translateX(-50%) translateY(0);
    }

    /* View switcher */
    .mm2-view {
        display: none;
    }

    .mm2-open .mm2-view.is-active {
        display: block;
    }

    /* Top grid (level-1 tiles) - Enhanced */
    .mm2-top {
        padding: 24px;
        max-height: 75vh;
        overflow: auto;
    }

    .mm2-grid {
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 14px;
    }

    @media (max-width: 1200px) {
        .mm2-grid {
            grid-template-columns: repeat(3, minmax(0, 1fr));
        }
    }

    @media (max-width: 960px) {
        .mm2-grid {
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 12px;
        }
    }

    /* Stagger animation for cards */
    .mm2-open .mm2-card {
        animation: slideInUp 0.3s cubic-bezier(0.4, 0, 0.2, 1) backwards;
    }

    .mm2-open .mm2-card:nth-child(1) {
        animation-delay: 0.02s;
    }

    .mm2-open .mm2-card:nth-child(2) {
        animation-delay: 0.04s;
    }

    .mm2-open .mm2-card:nth-child(3) {
        animation-delay: 0.06s;
    }

    .mm2-open .mm2-card:nth-child(4) {
        animation-delay: 0.08s;
    }

    .mm2-open .mm2-card:nth-child(5) {
        animation-delay: 0.10s;
    }

    .mm2-open .mm2-card:nth-child(6) {
        animation-delay: 0.12s;
    }

    .mm2-open .mm2-card:nth-child(7) {
        animation-delay: 0.14s;
    }

    .mm2-open .mm2-card:nth-child(8) {
        animation-delay: 0.16s;
    }

    .mm2-open .mm2-card:nth-child(9) {
        animation-delay: 0.18s;
    }

    .mm2-open .mm2-card:nth-child(10) {
        animation-delay: 0.20s;
    }

    .mm2-open .mm2-card:nth-child(11) {
        animation-delay: 0.22s;
    }

    .mm2-open .mm2-card:nth-child(12) {
        animation-delay: 0.24s;
    }

    .mm2-open .mm2-card:nth-child(n+13) {
        animation-delay: 0.26s;
    }

    @keyframes slideInUp {
        from {
            opacity: 0;
            transform: translateY(12px);
        }

        to {
            opacity: 1;
            transform: translateY(0);
        }
    }

    .mm2-card {
        position: relative;
        display: flex;
        gap: 14px;
        align-items: center;
        padding: 16px;
        border-radius: var(--mm2-radius-md);
        background: var(--mm2-surface);
        border: 1.5px solid var(--mm2-border);
        text-decoration: none;
        color: var(--mm2-fg);
        transition: all var(--mm2-transition-fast);
        min-height: 72px;
        box-shadow: var(--mm2-shadow-sm);
    }

    .mm2-card:hover {
        border-color: var(--mm2-accent);
        background: linear-gradient(135deg, rgba(255, 255, 255, 1), rgba(248, 250, 252, 1));
        box-shadow: var(--mm2-shadow-hover);
        transform: translateY(-3px);
    }

    .mm2-card:active {
        transform: translateY(-1px);
    }

    /* Icon with category-specific gradients */
    .mm2-card .mm2-ico {
        width: 48px;
        height: 48px;
        border-radius: 12px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        background: linear-gradient(135deg, #e0e7ff, #fff);
        border: 1.5px solid #c7d2fe;
        color: #4f46e5;
        flex-shrink: 0;
        transition: all var(--mm2-transition-fast);
        box-shadow: 0 2px 8px rgba(99, 102, 241, 0.1);
    }

    .mm2-card:hover .mm2-ico {
        transform: scale(1.08) rotate(2deg);
        box-shadow: 0 4px 16px rgba(99, 102, 241, 0.2);
    }

    .mm2-card .mm2-ico svg {
        transition: transform var(--mm2-transition-fast);
    }

    .mm2-card:hover .mm2-ico svg {
        transform: scale(1.1);
    }

    .mm2-card .mm2-title {
        font-weight: 700;
        font-size: 15px;
        letter-spacing: -0.01em;
        line-height: 1.3;
    }

    .mm2-card .mm2-sub {
        color: var(--mm2-fg-muted);
        font-size: 12.5px;
        margin-top: 3px;
        display: flex;
        align-items: center;
        gap: 4px;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .mm2-card .mm2-count {
        display: inline-flex;
        padding: 2px 8px;
        border-radius: 6px;
        background: var(--mm2-accent-10);
        color: var(--mm2-accent);
        font-weight: 600;
        font-size: 11px;
        margin-left: 4px;
    }

    /* Detail view (level-2 + level-3) - Enhanced */
    .mm2-detail {
        position: relative;
        padding: 16px 24px 24px;
        max-height: 70vh;
        overflow: auto;
    }

    .mm2-detail-header {
        display: flex;
        align-items: center;
        gap: 14px;
        padding: 10px 0 16px;
        border-bottom: 2px solid var(--mm2-muted);
        margin-bottom: 16px;
    }

    .mm2-back {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 40px;
        height: 40px;
        border-radius: 12px;
        border: 1.5px solid var(--mm2-border);
        background: #fff;
        color: var(--mm2-fg);
        cursor: pointer;
        transition: all var(--mm2-transition-fast);
        box-shadow: var(--mm2-shadow-sm);
    }

    .mm2-back:hover {
        border-color: var(--mm2-accent);
        background: var(--mm2-muted);
        transform: translateX(-3px);
        box-shadow: var(--mm2-shadow-md);
    }

    .mm2-detail-title {
        font-weight: 800;
        font-size: 18px;
        letter-spacing: -0.02em;
    }

    /* Two-pane layout (desktop) - Enhanced */
    .mm2-detail-layout {
        display: grid;
        grid-template-columns: 280px 1fr;
        gap: 20px;
    }

    /* Left: subnav (level-2 list) - Enhanced */
    .mm2-subnav {
        position: sticky;
        top: 8px;
        align-self: start;
        max-height: calc(70vh - 56px);
        overflow: auto;
        padding-right: 6px;
    }

    .mm2-subnav::-webkit-scrollbar {
        width: 8px;
        height: 8px;
    }

    .mm2-subnav::-webkit-scrollbar-track {
        background: transparent;
    }

    .mm2-subnav::-webkit-scrollbar-thumb {
        background: #cbd5e1;
        border-radius: 8px;
    }

    .mm2-subnav::-webkit-scrollbar-thumb:hover {
        background: #94a3b8;
    }

    .mm2-subitem {
        display: flex;
        align-items: center;
        justify-content: flex-start;
        gap: 10px;
        width: 100%;
        padding: 12px 14px;
        border-radius: 12px;
        border: 1.5px solid transparent;
        background: transparent;
        color: var(--mm2-fg);
        cursor: pointer;
        text-align: left;
        transition: all var(--mm2-transition-fast);
        margin-bottom: 6px;
        font-weight: 600;
        font-size: 14px;
        position: relative;
    }

    .mm2-subitem::before {
        content: '';
        position: absolute;
        left: 0;
        top: 50%;
        transform: translateY(-50%);
        width: 3px;
        height: 0;
        background: var(--mm2-accent);
        border-radius: 0 2px 2px 0;
        transition: height var(--mm2-transition-fast);
    }

    .mm2-subitem:hover {
        background: var(--mm2-muted);
        color: var(--mm2-accent-hover);
    }

    .mm2-subitem.active {
        background: linear-gradient(135deg, rgba(99, 102, 241, 0.08), rgba(99, 102, 241, 0.04));
        border-color: var(--mm2-accent-20);
        color: var(--mm2-accent-hover);
        box-shadow: inset 0 0 0 1px rgba(99, 102, 241, 0.1);
    }

    .mm2-subitem.active::before {
        height: 24px;
    }

    /* Right: subcontent (level-3 grid) - Enhanced */
    .mm2-subcontent {
        min-height: 240px;
    }

    .mm2-links {
        display: grid;
        gap: 12px 14px;
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    @media (max-width: 1200px) {
        .mm2-links {
            grid-template-columns: repeat(2, minmax(0, 1fr));
        }
    }

    .mm2-link {
        display: flex;
        align-items: center;
        gap: 12px;
        padding: 14px;
        border: 1.5px solid var(--mm2-border);
        border-radius: var(--mm2-radius-md);
        background: var(--mm2-surface);
        color: var(--mm2-fg);
        text-decoration: none;
        min-height: 52px;
        font-weight: 500;
        font-size: 14px;
        transition: all var(--mm2-transition-fast);
        box-shadow: var(--mm2-shadow-sm);
        position: relative;
        justify-content: space-between;
    }

    .mm2-link:hover {
        background: var(--mm2-muted);
        border-color: var(--mm2-accent);
        transform: translateX(4px);
        box-shadow: var(--mm2-shadow-md);
    }

    .mm2-link-text {
        flex: 1;
    }

    /* Product Thumbnails */
    .mm2-thumbs {
        display: flex;
        gap: 6px;
        align-items: center;
        margin-left: auto;
        flex-shrink: 0;
    }

    .mm2-thumb {
        width: 36px;
        height: 36px;
        border-radius: 8px;
        object-fit: cover;
        border: 1.5px solid var(--mm2-border);
        box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
        transition: all var(--mm2-transition-fast);
        background: var(--mm2-muted);
    }

    .mm2-link:hover .mm2-thumb {
        border-color: var(--mm2-accent);
        box-shadow: 0 4px 10px rgba(99, 102, 241, 0.15);
        transform: scale(1.08);
    }

    /* Thumbnail Skeleton Loader */
    .mm2-thumb-skeleton {
        width: 36px;
        height: 36px;
        border-radius: 8px;
        background: linear-gradient(90deg, #f1f5f9 25%, #e2e8f0 50%, #f1f5f9 75%);
        background-size: 200% 100%;
        animation: shimmer 1.5s infinite;
        border: 1.5px solid var(--mm2-border);
    }

    .mm2-badge {
        font-size: 11px;
        padding: 3px 10px;
        margin-left: auto;
        border-radius: 12px;
        background: var(--mm2-accent-10);
        color: var(--mm2-accent);
        font-weight: 700;
        border: 1px solid var(--mm2-accent-20);
    }

    /* "See all" highlight card - Enhanced */
    .mm2-seeall {
        border: 2px dashed var(--mm2-accent);
        background: linear-gradient(135deg, rgba(99, 102, 241, .08), rgba(99, 102, 241, .02));
        font-weight: 700;
    }

    .mm2-seeall:hover {
        background: linear-gradient(135deg, rgba(99, 102, 241, .14), rgba(99, 102, 241, .06));
        border-style: solid;
        transform: translateX(6px) scale(1.02);
    }

    /* Mobile panel styles - Enhanced with drag handle & better touch targets */
    @media (max-width: 960px) {
        .mm2-panel {
            position: fixed;
            left: 0;
            right: 0;
            bottom: 0;
            top: auto;
            width: 100%;
            max-height: 88vh;
            transform: translateX(0) translateY(100%);
            border-radius: var(--mm2-radius-xl) var(--mm2-radius-xl) 0 0;
            border-bottom: none;
        }

        .mm2-open .mm2-panel {
            transform: translateX(0) translateY(0);
            z-index: 9999;
        }

        /* Enhanced backdrop for mobile */
        .mm2-backdrop {
            backdrop-filter: blur(6px) saturate(1.2);
            -webkit-backdrop-filter: blur(6px) saturate(1.2);
        }

        /* Mobile close button - Soft glassmorphism */
        .mm2-mobile-close {
            position: absolute;
            top: 4px;
            right: 8px;
            width: 28px;
            height: 28px;
            border-radius: 50%;
            border: 1px solid rgba(226, 232, 240, 0.6);
            background: rgba(255, 255, 255, 0.85);
            backdrop-filter: blur(12px) saturate(1.8);
            -webkit-backdrop-filter: blur(12px) saturate(1.8);
            color: var(--mm2-fg-muted);
            display: inline-flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            transition: all var(--mm2-transition-fast);
            box-shadow: 0 2px 8px rgba(15, 23, 42, 0.08);
            z-index: 20;
        }

        .mm2-mobile-close:hover {
            background: rgba(254, 242, 242, 0.95);
            border-color: rgba(252, 165, 165, 0.8);
            color: #16c48d;
            box-shadow: 0 4px 12px rgba(220, 38, 38, 0.15);
        }

        .mm2-mobile-close:active {
            transform: scale(0.92);
        }

        /* Drag handle indicator */
        .mm2-top::before,
        .mm2-detail::before {
            content: '';
            position: sticky;
            top: 0;
            left: 50%;
            transform: translateX(-50%);
            width: 40px;
            height: 4px;
            background: var(--mm2-border-strong);
            border-radius: 999px;
            margin: 12px auto 20px;
            display: block;
            z-index: 10;
            transition: background var(--mm2-transition-fast);
        }

        .mm2-panel:active .mm2-top::before,
        .mm2-panel:active .mm2-detail::before {
            background: #94a3b8;
        }

        .mm2-top {
            padding: 10px;
        }

        .mm2-top,
        .mm2-detail {
            max-height: min(82vh, 720px);
            padding-top: 8px;
        }

        /* Two-pane collapses: subnav becomes GRID (no horizontal scroll) */
        .mm2-detail-layout {
            display: block;
        }

        .mm2-subnav {
            position: static;
            max-height: none;
            overflow: visible;
            display: grid;
            gap: 10px;
            padding: 10px 4px 16px;
            margin-bottom: 16px;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            border-bottom: 2px solid var(--mm2-muted);
        }

        .mm2-subitem {
            margin: 0;
            width: 100%;
            text-align: center;
            border-radius: 14px;
            background: #fff;
            border: 1.5px solid var(--mm2-border);
            white-space: normal;
            line-height: 1.3;
            min-height: 48px;
            justify-content: center;
            padding: 12px 10px;
            font-size: 13.5px;
            box-shadow: var(--mm2-shadow-sm);
        }

        .mm2-subitem::before {
            display: none;
        }

        .mm2-subitem:hover {
            transform: scale(1.02);
        }

        .mm2-subitem.active {
            background: linear-gradient(135deg, var(--mm2-accent), var(--mm2-accent-hover));
            border-color: var(--mm2-accent-hover);
            color: white;
            box-shadow: 0 4px 12px rgba(99, 102, 241, 0.3);
            font-weight: 700;
        }

        /* Level-3 grid tetap 2 kolom dengan spacing lebih baik */
        .mm2-links {
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 10px;
        }

        /* Mobile: hide thumbnails untuk save space */
        .mm2-thumbs {
            display: none;
        }

        /* Larger touch targets for mobile */
        .mm2-card {
            min-height: 80px;
            padding: 18px 14px;
        }

        .mm2-card .mm2-ico {
            width: 50px;
            height: 50px;
        }

        .mm2-card .mm2-title {
            font-size: 14px;
        }

        .mm2-card .mm2-sub {
            font-size: 11.5px;
        }

        .mm2-link {
            min-height: 56px;
            padding: 16px;
        }

        .mm2-back {
            width: 44px;
            height: 44px;
        }

        /* Grid spacing */
        .mm2-grid {
            gap: 10px;
        }
    }

    /* Product Compare Feature Styles */

    /* Compare Button in Product Detail - Modern Chip Style */
    .pd-compare-section {
        margin: 0.5rem 0;
        display: flex;
        align-items: center;
        gap: 0.5rem;
    }

    .pd-compare-btn {
        display: inline-flex;
        align-items: center;
        gap: 0.4rem;
        padding: 0.5rem 0.85rem;
        border: 1px solid #cbd5e1;
        border-radius: 20px;
        background: #fff;
        color: #64748b;
        font-weight: 600;
        font-size: 0.8rem;
        cursor: pointer;
        transition: all 0.2s ease;
        position: relative;
        white-space: nowrap;
    }

    .pd-compare-btn:hover {
        border-color: #3b82f6;
        color: #3b82f6;
        background: #f0f9ff;
        transform: translateY(-1px);
        box-shadow: 0 2px 6px rgba(59, 130, 246, 0.15);
    }

    .pd-compare-btn.added {
        border-color: #16a34a;
        color: #16a34a;
        background: #f0fdf4;
    }

    .pd-compare-btn .compare-remove {
        display: none;
    }

    .pd-compare-btn.added .compare-text {
        display: none;
    }

    .pd-compare-btn.added .compare-remove {
        display: flex !important;
        align-items: center;
        gap: 0.25rem;
        font-weight: 600;
        font-size: 0.9rem;
        color: #16c48d !important;
        opacity: 1 !important;
        visibility: visible !important;
        z-index: 1;
        position: relative;
    }

    .pd-compare-btn.added .compare-remove[hidden] {
        display: flex !important;
    }

    /* Force visibility for added state */
    .pd-compare-btn.added .compare-remove {
        display: flex !important;
    }

    [hidden].compare-remove {
        display: none !important;
    }

    .pd-compare-btn.added [hidden].compare-remove {
        display: flex !important;
    }

    /* Ensure the added state text is always visible */
    .pd-compare-btn.added {
        border-color: #16c48d !important;
        color: #16c48d !important;
        background: #fef2f2 !important;
    }

    .pd-compare-btn.added .compare-remove svg {
        color: #16c48d !important;
    }

    .pd-compare-btn.added:hover {
        border-color: #15803d;
        color: #15803d;
        background: #dcfce7;
        transform: translateY(-1px);
        box-shadow: 0 2px 6px rgba(22, 163, 74, 0.2);
    }

    .pd-compare-btn .compare-icon {
        width: 16px;
        height: 16px;
        flex-shrink: 0;
    }

    .pd-compare-info {
        display: inline-flex;
        align-items: center;
    }

    .compare-note {
        color: #94a3b8;
        font-size: 0.7rem;
        font-weight: 500;
        transition: color 0.2s ease;
    }

    .pd-compare-btn.added+.pd-compare-info .compare-note {
        color: #16a34a;
        font-weight: 600;
    }

    /* Compare Badge in Navigation */
    .compare-indicator {
        position: relative;
    }

    .compare-indicator .badge {
        position: absolute;
        top: -8px;
        right: -8px;
        min-width: 18px;
        height: 18px;
        padding: 0 5px;
        background: #ef4444;
        color: white;
        border-radius: 9px;
        font-size: 11px;


        /* Floating Compare Badge (Sticky) */
        .compare-floating-badge {
            position: fixed;
            right: 16px;
            bottom: calc(20px + 60px);
            /* Above scroll-to-top button */
            width: auto;
            min-width: 56px;
            height: 56px;
            padding: 0 16px;
            border-radius: 28px;
            background: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);
            color: #fff;
            box-shadow: 0 8px 24px -8px rgba(59, 130, 246, 0.5);
            cursor: pointer;
            z-index: 1104;
            opacity: 0;
            transform: translateY(8px) scale(0.9);
            transition: opacity 0.3s ease, transform 0.3s ease, box-shadow 0.2s ease;
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 8px;
            font-weight: 600;
            font-size: 0.85rem;
            pointer-events: none;
        }

        .compare-floating-badge.visible {
            opacity: 1;
            transform: translateY(0) scale(1);
            pointer-events: auto;
        }

        .compare-floating-badge:hover {
            box-shadow: 0 12px 32px -10px rgba(59, 130, 246, 0.6);
            transform: translateY(-2px) scale(1.02);
        }

        .compare-floating-badge:active {
            transform: translateY(0) scale(0.98);
        }

        .compare-floating-badge .cfb-icon {
            width: 20px;
            height: 20px;
            flex-shrink: 0;
        }

        .compare-floating-badge .cfb-count {
            font-size: 0.9rem;
            font-weight: 700;
            min-width: 20px;
            text-align: center;
            background: rgba(255, 255, 255, 0.25);
            padding: 2px 8px;
            border-radius: 12px;
            line-height: 1;
            display: flex;
            align-items: center;
            justify-content: center;
            height: 24px;
        }

        .compare-floating-badge .cfb-text {
            display: none;
        }

        @media (min-width: 641px) {
            .compare-floating-badge .cfb-text {
                display: block;
                white-space: nowrap;
            }
        }

        @media (max-width: 640px) {
            .compare-floating-badge {
                right: 14px;
                bottom: calc(var(--scroll-top-bottom, calc(68px + 18px + env(safe-area-inset-bottom))) + 60px);
                min-width: 48px;
                height: 48px;
                padding: 0 12px;
                border-radius: 24px;
            }

            .compare-floating-badge .cfb-icon {
                width: 18px;
                height: 18px;
            }

            .compare-floating-badge .cfb-count {
                font-size: 0.8rem;
                padding: 2px 6px;
                height: 20px;
            }
        }

        font-weight: 600;
        display: flex;
        align-items: center;
        justify-content: center;
        transform: scale(0);
        transition: transform 0.2s ease;
    }

    .compare-indicator .badge.active {
        transform: scale(1);
    }

    /* Compare Sidebar */
    .compare-sidebar {
        position: fixed;
        top: 0;
        right: -400px;
        width: 400px;
        height: 100vh;
        background: #ffffff;
        box-shadow: -4px 0 20px rgba(0, 0, 0, 0.1);
        z-index: 9999;
        display: flex;
        flex-direction: column;
        transition: right 0.3s ease;
    }

    .compare-sidebar.open {
        right: 0;
    }

    .compare-overlay {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: rgba(0, 0, 0, 0.5);
        z-index: 9998;
        opacity: 0;
        visibility: hidden;
        transition: all 0.3s ease;
    }

    .compare-overlay.active {
        opacity: 1;
        visibility: visible;
    }

    .compare-header {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 1.25rem;
        border-bottom: 1px solid #e2e8f0;
        background: #f8fafc;
    }

    .compare-title {
        display: flex;
        align-items: center;
        gap: 0.5rem;
        font-size: 1rem;
        font-weight: 600;
        color: #1e293b;
        margin: 0;
    }

    .compare-count {
        color: #64748b;
        font-weight: 400;
    }

    .compare-close {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 32px;
        height: 32px;
        border: none;
        border-radius: 6px;
        background: transparent;
        color: #64748b;
        cursor: pointer;
        transition: all 0.2s ease;
    }

    .compare-close:hover {
        background: #e2e8f0;
        color: #374151;
    }

    .compare-content {
        flex: 1;
        overflow-y: auto;
        padding: 1rem;
    }

    .compare-empty {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        height: 100%;
        text-align: center;
        padding: 2rem 1rem;
    }

    .compare-empty h5 {
        margin: 1rem 0 0.5rem;
        color: #374151;
    }

    .compare-empty p {
        color: #64748b;
        font-size: 0.875rem;
        line-height: 1.5;
    }

    .compare-list {
        display: flex;
        flex-direction: column;
        gap: 0.75rem;
    }

    .compare-item {
        display: flex;
        align-items: center;
        gap: 0.75rem;
        padding: 0.75rem;
        border: 1px solid #e2e8f0;
        border-radius: 8px;
        background: #ffffff;
        transition: all 0.2s ease;
    }

    .compare-item:hover {
        border-color: #cbd5e1;
        box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
    }

    .compare-item-image {
        flex-shrink: 0;
        width: 48px;
        height: 48px;
        border-radius: 6px;
        overflow: hidden;
        border: 1px solid #e2e8f0;
    }

    .compare-item-image img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    .compare-item-info {
        flex: 1;
        min-width: 0;
    }

    .compare-item-name {
        font-weight: 500;
        font-size: 0.875rem;
        color: #1e293b;
        margin-bottom: 0.25rem;
        line-height: 1.3;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }

    .compare-item-price {
        font-weight: 600;
        font-size: 0.8rem;
        color: #059669;
    }

    .compare-item-remove {
        flex-shrink: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        width: 28px;
        height: 28px;
        border: none;
        border-radius: 4px;
        background: transparent;
        color: #16c48d;
        cursor: pointer;
        transition: all 0.2s ease;
    }

    .compare-item-remove:hover {
        background: #fef2f2;
        color: #991b1b;
    }

    .compare-actions {
        padding: 1rem;
        border-top: 1px solid #e2e8f0;
        display: flex;
        gap: 0.75rem;
    }

    .compare-actions .btn {
        flex: 1;
        padding: 0.75rem 1rem;
        border-radius: 6px;
        font-weight: 600;
        font-size: 0.875rem;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 0.5rem;
        cursor: pointer;
        transition: all 0.2s ease;
    }

    .btn-outline-danger {
        border: 1px solid #16c48d;
        background: transparent;
        color: #16c48d;
    }

    .btn-outline-danger:hover {
        background: #16c48d;
        color: white;
    }

    .btn-primary {
        border: 1px solid #3b82f6;
        background: #3b82f6;
        color: white;
    }

    .btn-primary:hover {
        background: #2563eb;
        border-color: #2563eb;
    }

    .btn-primary:disabled {
        opacity: 0.5;
        cursor: not-allowed;
    }

    .btn-primary:disabled:hover {
        background: #3b82f6;
        border-color: #3b82f6;
    }

    /* AI Comparison Modal */
    .ai-compare-modal {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        z-index: 10000;
        display: none;
        align-items: center;
        justify-content: center;
    }

    .ai-compare-modal.open {
        display: flex;
    }

    .ai-compare-modal .modal-backdrop {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: rgba(0, 0, 0, 0.6);
        backdrop-filter: blur(4px);
    }

    .modal-container {
        position: relative;
        width: 90%;
        max-width: 1000px;
        max-height: 90vh;
        background: #ffffff;
        border-radius: 12px;
        box-shadow: 0 20px 40px rgba(0, 0, 0, 0.15);
        display: flex;
        flex-direction: column;
        overflow: hidden;
    }

    .modal-header {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 1.5rem 2rem;
        border-bottom: 1px solid #e2e8f0;
        background: #f8fafc;
    }

    .modal-title {
        display: flex;
        align-items: center;
        gap: 0.75rem;
        font-size: 1.25rem;
        font-weight: 600;
        color: #1e293b;
        margin: 0;
    }

    .modal-close {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 36px;
        height: 36px;
        border: none;
        border-radius: 8px;
        background: transparent;
        color: #64748b;
        cursor: pointer;
        transition: all 0.2s ease;
    }

    .modal-close:hover {
        background: #e2e8f0;
        color: #374151;
    }

    .modal-content {
        flex: 1;
        overflow-y: auto;
        padding: 2rem;
    }

    /* AI Loading State */
    .ai-loading {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        padding: 3rem 2rem;
        text-align: center;
    }

    .loading-animation {
        margin-bottom: 1rem;
    }

    .typing-indicator {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 4px;
        margin-bottom: 1rem;
    }

    .typing-indicator span {
        width: 8px;
        height: 8px;
        background: #3b82f6;
        border-radius: 50%;
        animation: typing 1.4s infinite ease-in-out;
    }

    .typing-indicator span:nth-child(2) {
        animation-delay: 0.2s;
    }

    .typing-indicator span:nth-child(3) {
        animation-delay: 0.4s;
    }

    @keyframes typing {

        0%,
        80%,
        100% {
            opacity: 0.3;
            transform: scale(0.8);
        }

        40% {
            opacity: 1;
            transform: scale(1);
        }
    }

    .ai-loading p {
        font-weight: 500;
        color: #1e293b;
        margin-bottom: 0.5rem;
    }

    .ai-loading small {
        color: #64748b;
    }

    /* AI Error State */
    .ai-error {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        padding: 3rem 2rem;
        text-align: center;
    }

    .ai-error h4 {
        margin: 1rem 0 0.5rem;
        color: #16c48d;
    }

    .ai-error p {
        color: #64748b;
        margin-bottom: 1.5rem;
    }

    /* AI Results */
    .ai-results>div {
        margin-bottom: 2rem;
    }

    .ai-summary-card,
    .ai-comparison-table,
    .ai-detailed-analysis,
    .ai-recommendations,
    .ai-tips {
        background: #f8fafc;
        border: 1px solid #e2e8f0;
        border-radius: 12px;
        padding: 1.5rem;
    }

    .ai-results h4 {
        display: flex;
        align-items: center;
        gap: 0.5rem;
        font-size: 1.1rem;
        font-weight: 600;
        color: #1e293b;
        margin-bottom: 1rem;
    }

    .summary-text {
        font-size: 1rem;
        line-height: 1.6;
        color: #374151;
        margin-bottom: 1rem;
    }

    .winner-badge {
        padding: 1rem;
        background: linear-gradient(135deg, #10b981 0%, #059669 100%);
        color: white;
        border-radius: 8px;
    }

    .winner-badge strong {
        display: block;
        margin-bottom: 0.25rem;
    }

    .winner-badge small {
        opacity: 0.9;
        font-size: 0.875rem;
    }

    /* Comparison Table */
    .comparison-grid {
        display: grid;
        gap: 1rem;
        margin-top: 1rem;
    }

    .comparison-category {
        background: white;
        border: 1px solid #e2e8f0;
        border-radius: 8px;
        overflow: hidden;
    }

    .category-header {
        background: #f1f5f9;
        padding: 0.75rem 1rem;
        font-weight: 600;
        color: #1e293b;
        border-bottom: 1px solid #e2e8f0;
    }

    .category-products {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
        gap: 1px;
        background: #e2e8f0;
    }

    .product-score {
        background: white;
        padding: 1rem;
        text-align: center;
    }

    .score-value {
        display: inline-flex;
        align-items: center;
        gap: 0.25rem;
        margin-bottom: 0.5rem;
    }

    .score-stars {
        color: #fbbf24;
    }

    .score-note {
        font-size: 0.8rem;
        color: #64748b;
        line-height: 1.3;
    }

    /* Product name header in comparison table */
    .product-name-header {
        margin-bottom: 0.5rem;
    }

    .product-name-header strong {
        font-size: .8rem;
        /* h5 size (18px) */
        font-weight: 600;
        color: #1e293b;
        line-height: 1.3;
        display: block;
        word-break: break-word;
    }

    .product-price {
        font-size: 0.8rem;
        font-weight: 600;
        color: #059669;
    }

    /* Detailed Analysis */
    .products-analysis {
        display: grid;
        gap: 1rem;
        margin-top: 1rem;
    }

    .product-analysis {
        background: white;
        border: 1px solid #e2e8f0;
        border-radius: 8px;
        padding: 1rem;
    }

    .product-analysis h5 {
        color: #1e293b;
        margin-bottom: 0.75rem;
        font-weight: 600;
    }

    .analysis-section {
        margin-bottom: 0.75rem;
    }

    .analysis-section:last-child {
        margin-bottom: 0;
    }

    .analysis-section h6 {
        font-size: 0.875rem;
        font-weight: 600;
        margin-bottom: 0.5rem;
    }

    .analysis-section h6.strengths {
        color: #059669;
    }

    .analysis-section h6.weaknesses {
        color: #16c48d;
    }

    .analysis-section h6.best-for {
        color: #7c3aed;
    }

    .analysis-section ul {
        list-style: none;
        padding: 0;
        margin: 0;
    }

    .analysis-section li {
        display: flex;
        align-items: flex-start;
        gap: 0.5rem;
        margin-bottom: 0.25rem;
        font-size: 0.875rem;
        line-height: 1.4;
    }

    .analysis-section li:before {
        content: "•";
        color: #64748b;
        font-weight: bold;
        margin-top: 0.1rem;
    }

    .best-for-text {
        font-size: 0.875rem;
        color: #374151;
        font-style: italic;
    }

    /* Recommendations */
    .recommendations-grid {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
        gap: 1rem;
        margin-top: 1rem;
    }

    .recommendation-card {
        background: white;
        border: 1px solid #e2e8f0;
        border-radius: 8px;
        padding: 1rem;
        text-align: center;
    }

    .recommendation-card h5 {
        font-size: 1rem;
        margin-bottom: 0.75rem;
        color: #1e293b;
    }

    .recommendation-card p {
        font-size: 0.875rem;
        color: #374151;
        line-height: 1.5;
    }

    /* Tips */
    .tips-list {
        list-style: none;
        padding: 0;
        margin: 1rem 0 0 0;
    }

    .tips-list li {
        display: flex;
        align-items: flex-start;
        gap: 0.75rem;
        margin-bottom: 0.75rem;
        font-size: 0.9rem;
        line-height: 1.5;
        color: #374151;
    }

    .tips-list li:before {
        content: "💡";
        font-size: 1rem;
        margin-top: 0.1rem;
    }

    /* Modal Footer */
    .modal-footer {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 1.5rem 2rem;
        border-top: 1px solid #e2e8f0;
        background: #f8fafc;
    }

    .btn-outline-secondary {
        border: 1px solid #64748b;
        background: transparent;
        color: #64748b;
        padding: 0.75rem 1.5rem;
        border-radius: 6px;
        font-weight: 600;
        display: flex;
        align-items: center;
        gap: 0.5rem;
        cursor: pointer;
        transition: all 0.2s ease;
    }

    .btn-outline-secondary:hover {
        background: #64748b;
        color: white;
    }

    /* Responsive for chip button */
    @media (max-width: 880px) {
        .pd-compare-section {
            margin: 1rem 0;
            display: block;
        }

        .pd-compare-btn {
            width: 100%;
            font-size: 0.85rem;
            padding: 0.65rem 1rem;
            border-radius: 10px;
            justify-content: center;
            min-height: 44px;
        }

        .pd-compare-btn .compare-icon {
            width: 16px;
            height: 16px;
        }

        .pd-compare-info {
            margin-top: 0.5rem;
            display: block;
            text-align: center;
        }

        .compare-note {
            font-size: 0.7rem;
            display: block;
        }
    }

    /* Responsive Design */
    @media (max-width: 768px) {
        .compare-sidebar {
            width: 100%;
            right: -100%;
            /* Fix for mobile viewport height changes */
            height: 100vh;
            height: 100dvh;
            /* Dynamic viewport height for modern browsers */
        }

        .compare-actions {
            /* Ensure actions are always visible */
            position: sticky;
            bottom: 0;
            background: white;
            border-top: 2px solid #e2e8f0;
            box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1);
            z-index: 10;
        }

        .compare-actions .btn {
            /* Larger touch targets for mobile */
            min-height: 48px;
            font-size: 0.9rem;
            font-weight: 700;
        }

        .modal-container {
            width: 95%;
            max-height: 95vh;
            max-height: 95dvh;
            /* Dynamic viewport height */
        }

        .modal-header,
        .modal-content,
        .modal-footer {
            padding: 1rem;
        }

        .recommendations-grid {
            grid-template-columns: 1fr;
        }

        .category-products {
            grid-template-columns: 1fr;
        }

        .modal-footer {
            flex-direction: column;
            gap: 0.75rem;
        }

        .modal-footer .btn {
            width: 100%;
        }

        /* Ensure compare button is visible on mobile */
        .pd-compare-section {
            display: block !important;
            visibility: visible !important;
            opacity: 1 !important;
            margin: 1rem 0;
            padding: 0;
            position: relative !important;
            z-index: 1 !important;
            max-width: 100%;
            overflow: hidden;
        }

        .pd-compare-btn {
            display: flex !important;
            visibility: visible !important;
            opacity: 1 !important;
            width: 100%;
            padding: 0.75rem 1rem;
            font-size: 0.9rem;
            min-height: 48px;
            /* Minimum touch target for mobile */
            border: 2px solid #e2e8f0 !important;
            background: #fff !important;
            position: relative !important;
            z-index: 2 !important;
            box-sizing: border-box;
            white-space: normal !important;
            /* Allow text wrapping on mobile */
            flex-wrap: wrap;
            gap: 0.5rem;
        }

        .pd-compare-btn .compare-text {
            display: inline !important;
            visibility: visible !important;
            font-weight: 600;
            color: #475569 !important;
        }

        .pd-compare-btn .compare-remove {
            display: none !important;
            /* Hidden by default */
        }

        .pd-compare-btn.added .compare-remove {
            display: flex !important;
            /* Only show when added */
            flex-wrap: wrap;
            align-items: center;
            gap: 0.4rem;
            white-space: normal !important;
            word-break: break-word;
        }

        .pd-compare-btn .compare-icon {
            display: inline-block !important;
            width: 18px;
            height: 18px;
            flex-shrink: 0;
        }

        .pd-compare-info {
            margin-top: 0.5rem;
        }

        .compare-note {
            font-size: 0.85rem !important;
            display: block !important;
            visibility: visible !important;
            color: #64748b !important;
        }
    }

    /* iOS Safari specific fixes */
    @media (max-width: 480px) {
        #compareBtn {
            width: 46px;
            height: 46px;
        }

        .pd-compare-section {
            -webkit-transform: translateZ(0);
            transform: translateZ(0);
        }

        .pd-compare-btn {
            -webkit-appearance: none !important;
            appearance: none !important;
            -webkit-tap-highlight-color: transparent;
            touch-action: manipulation;
        }

        /* Fix sidebar height for iOS address bar */
        .compare-sidebar {
            /* Use fixed positioning that accounts for iOS address bar */
            height: 100vh;
            height: -webkit-fill-available;
            /* iOS Safari compatibility */
            min-height: 100vh;
            min-height: -webkit-fill-available;
        }

        /* Ensure compare actions stay at bottom */
        .compare-actions {
            position: sticky;
            bottom: 0;
            background: white;
            border-top: 2px solid #e2e8f0;
            box-shadow: 0 -4px 12px rgba(0, 0, 0, 0.15);
            padding: 1.25rem 1rem;
            z-index: 20;
        }

        .compare-actions .btn {
            min-height: 52px;
            /* Larger for easier tapping */
            font-size: 1rem;
            font-weight: 700;
            border-radius: 8px;
        }

        /* Adjust content padding to account for sticky actions */
        .compare-content {
            padding-bottom: 6rem;
            /* Extra space for sticky actions */
        }
    }

    /* High-resolution mobile devices (iPhone 12 Pro, etc.) */
    @media (-webkit-min-device-pixel-ratio: 2) and (max-width: 430px) {
        .pd-compare-section {
            display: block !important;
        }

        .pd-compare-btn {
            display: flex !important;
            min-height: 44px;
            font-size: 16px;
            /* Prevent zoom on iOS */
        }

        /* Enhanced fixes for iPhone 12 Pro and similar devices */
        .compare-sidebar {
            /* Ensure full height coverage */
            height: 100vh;
            height: 100dvh;
            /* Dynamic viewport height */
            height: -webkit-fill-available;
            /* iOS fallback */
            max-height: 100vh;
            max-height: 100dvh;
            max-height: -webkit-fill-available;
            overflow: hidden;
            /* Prevent scroll issues */
        }

        .compare-content {
            /* Flexible content area */
            flex: 1;
            overflow-y: auto;
            -webkit-overflow-scrolling: touch;
            padding: 1rem 1rem 8rem 1rem;
            /* Extra bottom padding */
        }

        .compare-actions {
            /* Force actions to stay visible */
            position: fixed;
            bottom: 0;
            left: 0;
            right: 0;
            width: 100%;
            background: white;
            border-top: 2px solid #e2e8f0;
            box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.2);
            padding: 1rem;
            z-index: 9999;
            display: flex !important;
            gap: 0.75rem;
        }

        .compare-actions .btn {
            flex: 1;
            min-height: 30px;
            /* Extra large for high-DPI screens */
            font-size: .8rem;
            font-weight: 600;
            border-radius: 12px;
            display: flex !important;
            align-items: center;
            justify-content: center;
            gap: 0.5rem;
        }

        /* Ensure AI analyze button is always visible and prominent */
        #compareAnalyze {
            background: #3b82f6 !important;
            border-color: #3b82f6 !important;
            color: white !important;
            box-shadow: 0 4px 12px rgba(59, 130, 246, 0.3);
        }

        #compareAnalyze:not(:disabled) {
            background: #2563eb !important;
            border-color: #2563eb !important;
            transform: scale(1.02);
        }

        #compareAnalyze:disabled {
            opacity: 0.6 !important;
            background: #9ca3af !important;
            border-color: #9ca3af !important;
        }
    }

    /* AI Disclaimer Styles */
    .ai-disclaimer {
        display: flex;
        align-items: flex-start;
        gap: 0.75rem;
        padding: 1rem;
        background: #fef3c7;
        border: 1px solid #fbbf24;
        border-radius: 8px;
        margin: 0;
    }

    .disclaimer-icon {
        font-size: 1.25rem;
        flex-shrink: 0;
        margin-top: 0.125rem;
    }

    .disclaimer-text {
        font-size: 0.85rem;
        line-height: 1.4;
        color: #92400e;
    }

    .disclaimer-text strong {
        color: #78350f;
        font-weight: 600;
    }

    /* Compare Disclaimer in Sidebar */
    .compare-disclaimer {
        margin-top: 1rem;
        padding: 1rem;
        background: #f0f9ff;
        border: 1px solid #0ea5e9;
        border-radius: 8px;
    }

    .compare-disclaimer h6 {
        display: flex;
        align-items: center;
        gap: 0.5rem;
        font-size: 0.875rem;
        font-weight: 600;
        color: #0c4a6e;
        margin-bottom: 0.5rem;
    }

    .compare-disclaimer p {
        font-size: 0.8rem;
        line-height: 1.4;
        color: #075985;
        margin-bottom: 0.5rem;
    }

    .compare-disclaimer p:last-child {
        margin-bottom: 0;
    }

    .compare-disclaimer ul {
        list-style: none;
        padding: 0;
        margin: 0.5rem 0 0 0;
    }

    .compare-disclaimer li {
        display: flex;
        align-items: flex-start;
        gap: 0.5rem;
        margin-bottom: 0.25rem;
        font-size: 0.75rem;
        line-height: 1.3;
        color: #075985;
    }

    .compare-disclaimer li:before {
        content: "•";
        color: #0ea5e9;
        font-weight: bold;
        margin-top: 0.1rem;
        flex-shrink: 0;
    }

    /* Mobile Browser Address Bar Fixes */
    @supports (height: 100dvh) {
        /* Modern browsers with dynamic viewport support */
        @media (max-width: 768px) {
            .compare-sidebar {
                height: 100dvh !important;
                max-height: 100dvh !important;
            }

            .modal-container {
                max-height: 95dvh !important;
            }
        }
    }

    @supports (height: -webkit-fill-available) {
        /* iOS Safari specific support */
        @media (max-width: 768px) {
            .compare-sidebar {
                height: -webkit-fill-available !important;
                max-height: -webkit-fill-available !important;
            }
        }
    }

    /* Fallback for older browsers */
    @media (max-width: 768px) and (orientation: portrait) {
        .compare-sidebar {
            /* Fixed height that works across different mobile browsers */
            min-height: 600px;
            height: calc(100vh - env(keyboard-inset-height, 0px));
            height: calc(100vh - env(safe-area-inset-bottom, 0px));
        }

        /* Ensure actions are always accessible */
        .compare-actions {
            position: sticky !important;
            bottom: env(safe-area-inset-bottom, 0px) !important;
            margin-bottom: 0 !important;
            padding-bottom: calc(1rem + env(safe-area-inset-bottom, 0px)) !important;
        }
    }

    /* PWA and fullscreen app support */
    @media (display-mode: standalone) {
        .compare-sidebar {
            height: 100vh !important;
            height: 100dvh !important;
        }
    }

    /* Utilities */
    .btn-sm {
        padding: 0.5rem 0.75rem;
        font-size: 0.8rem;
    }

    [hidden] {
        display: none !important;
    }

    /* ===== UX ENHANCEMENTS ===== */

    /* Compare Button Highlight Animation */
    .pulse-highlight {
        animation: pulse-glow 2s ease-in-out 3;
        box-shadow: 0 0 0 0 rgba(59, 130, 246, 0.7);
    }

    @keyframes pulse-glow {
        0% {
            box-shadow: 0 0 0 0 rgba(59, 130, 246, 0.7);
        }

        50% {
            box-shadow: 0 0 0 10px rgba(59, 130, 246, 0);
        }

        100% {
            box-shadow: 0 0 0 0 rgba(59, 130, 246, 0);
        }
    }

    /* Flying Product Animation */
    .flying-product {
        position: fixed;
        z-index: 9999;
        pointer-events: none;
    }

    .flying-product img {
        border-radius: 8px;
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
    }

    /* Sticky Compare Bar - REMOVED (using only fly-to-navbar animation) */

    /* Inline Compare Preview - REMOVED (keeping it simple and clean) */
    /**
 * Product Card Quick Actions - 3 Dot Menu + Bottom Sheet
 * Tokopedia-inspired design
 */

    /* ===== 3 Dot Button on Product Card ===== */
    .prod-card {
        position: relative;
    }

    .prod-card-actions-btn {
        position: absolute;
        top: 8px;
        right: 8px;
        width: 32px;
        height: 32px;
        border-radius: 50%;
        background: rgba(255, 255, 255, 0.95);
        border: 1px solid rgba(0, 0, 0, 0.08);
        display: inline-flex;
        align-items: center;
        justify-content: center;
        cursor: pointer;
        z-index: 3;
        transition: all 0.2s ease;
        box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
        -webkit-tap-highlight-color: transparent;
    }

    .prod-card-actions-btn:hover {
        background: #fff;
        border-color: rgba(0, 0, 0, 0.15);
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
        transform: scale(1.05);
    }

    .prod-card-actions-btn:active {
        transform: scale(0.95);
    }

    .prod-card-actions-btn svg {
        width: 20px;
        height: 20px;
        color: #64748b;
        display: block;
    }

    /* Desktop: Show on hover */
    @media (min-width: 641px) {
        .prod-card-actions-btn {
            opacity: 0;
            pointer-events: none;
        }

        .prod-card:hover .prod-card-actions-btn {
            opacity: 1;
            pointer-events: auto;
        }
    }

    /* Mobile: Always visible but smaller */
    @media (max-width: 640px) {
        .prod-card-actions-btn {
            width: 28px;
            height: 28px;
            top: 6px;
            right: 6px;
            opacity: 95%;
        }

        .prod-card-actions-btn svg {
            width: 18px;
            height: 18px;
        }
    }

    /* ===== Bottom Sheet Overlay ===== */
    .pca-overlay {
        position: fixed;
        inset: 0;
        background: rgba(15, 23, 42, 0.6);
        backdrop-filter: blur(4px);
        z-index: 99998;
        opacity: 0;
        visibility: hidden;
        transition: all 0.3s ease;
    }

    .pca-overlay.active {
        opacity: 1;
        visibility: visible;
    }

    /* ===== Bottom Sheet Container ===== */
    .pca-bottom-sheet {
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        background: #fff;
        border-radius: 20px 20px 0 0;
        box-shadow: 0 -4px 24px rgba(0, 0, 0, 0.15);
        z-index: 99999;
        max-width: 600px;
        margin: 0 auto;
        transform: translateY(100%);
        transition: transform 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    }

    .pca-bottom-sheet.active {
        transform: translateY(0);
    }

    /* Drag Handle */
    .pca-sheet-handle {
        width: 40px;
        height: 4px;
        background: #cbd5e1;
        border-radius: 999px;
        margin: 12px auto 8px;
    }

    /* Product Preview */
    .pca-sheet-product {
        display: flex;
        gap: 12px;
        padding: 12px 20px;
        border-bottom: 1px solid #f1f5f9;
    }

    .pca-product-image {
        width: 60px;
        height: 60px;
        border-radius: 8px;
        object-fit: cover;
        flex-shrink: 0;
        border: 1px solid #e2e8f0;
    }

    .pca-product-info {
        flex: 1;
        min-width: 0;
    }

    .pca-product-name {
        font-size: 14px;
        font-weight: 600;
        color: #0f172a;
        margin: 0 0 4px 0;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
        line-height: 1.3;
    }

    .pca-product-price {
        font-size: 15px;
        font-weight: 700;
        color: #0ea5e9;
        margin: 0;
    }

    .pca-product-stock {
        font-size: 12px;
        color: #64748b;
        margin: 2px 0 0 0;
    }

    .pca-product-stock.in {
        color: #16a34a;
    }

    .pca-product-stock.low {
        color: #ea580c;
    }

    .pca-product-stock.out {
        color: #16c48d;
    }

    /* Action Menu */
    .pca-sheet-actions {
        padding: 8px 0 20px;
    }

    .pca-action-item {
        display: flex;
        align-items: center;
        gap: 16px;
        padding: 16px 20px;
        background: transparent;
        border: 0;
        width: 100%;
        cursor: pointer;
        transition: background-color 0.15s ease;
        -webkit-tap-highlight-color: transparent;
    }

    .pca-action-item:hover {
        background: #f8fafc;
    }

    .pca-action-item:active {
        background: #f1f5f9;
    }

    .pca-action-item:disabled {
        opacity: 0.4;
        cursor: not-allowed;
    }

    .pca-action-item:disabled:hover {
        background: transparent;
    }

    .pca-action-icon {
        width: 24px;
        height: 24px;
        color: #475569;
        flex-shrink: 0;
    }

    .pca-action-content {
        flex: 1;
        text-align: left;
    }

    .pca-action-label {
        font-size: 15px;
        font-weight: 600;
        color: #0f172a;
        margin: 0 0 2px 0;
    }

    .pca-action-desc {
        font-size: 12px;
        color: #64748b;
        margin: 0;
    }

    .pca-action-badge {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-width: 20px;
        height: 20px;
        padding: 0 6px;
        background: #0ea5e9;
        color: #fff;
        font-size: 11px;
        font-weight: 700;
        border-radius: 999px;
        margin-left: auto;
    }

    .pca-action-badge.compare {
        background: #8b5cf6;
    }

    /* Action Item Colors */
    .pca-action-item.cart .pca-action-icon {
        color: #0ea5e9;
    }

    .pca-action-item.compare .pca-action-icon {
        color: #8b5cf6;
    }

    .pca-action-item.compare.active {
        background: rgba(139, 92, 246, 0.05);
    }

    .pca-action-item.compare.active .pca-action-label {
        color: #8b5cf6;
    }

    .pca-action-item.compare.active .pca-action-icon {
        color: #8b5cf6;
    }

    .pca-action-item.share .pca-action-icon {
        color: #64748b;
    }

    /* Loading State */
    .pca-action-item.loading {
        pointer-events: none;
    }

    .pca-action-item.loading .pca-action-icon {
        animation: spin 1s linear infinite;
    }

    @keyframes spin {
        from {
            transform: rotate(0deg);
        }

        to {
            transform: rotate(360deg);
        }
    }

    /* Success State Animation */
    .pca-action-item.success .pca-action-icon {
        animation: checkmark 0.5s ease;
    }

    @keyframes checkmark {
        0% {
            transform: scale(0);
        }

        50% {
            transform: scale(1.2);
        }

        100% {
            transform: scale(1);
        }
    }

    /* ===== Safe Area for Mobile Devices ===== */
    @supports (padding-bottom: env(safe-area-inset-bottom)) {
        .pca-sheet-actions {
            padding-bottom: calc(20px + env(safe-area-inset-bottom));
        }
    }

    /* ===== Responsive Tweaks ===== */
    @media (max-width: 640px) {
        .pca-bottom-sheet {
            border-radius: 16px 16px 0 0;
        }

        .pca-sheet-product {
            padding: 10px 16px;
        }

        .pca-product-image {
            width: 50px;
            height: 50px;
        }

        .pca-product-name {
            font-size: 13px;
        }

        .pca-product-price {
            font-size: 14px;
        }

        .pca-action-item {
            padding: 14px 16px;
            gap: 12px;
        }

        .pca-action-icon {
            width: 22px;
            height: 22px;
        }

        .pca-action-label {
            font-size: 14px;
        }
    }

    /* ===== Animation for Flying Product ===== */
    .flying-product {
        position: fixed;
        pointer-events: none;
        z-index: 99999;
        animation: fadeOut 0.8s ease forwards;
    }

    @keyframes fadeOut {
        to {
            opacity: 0;
            transform: scale(0.5);
        }
    }

    /* ===== Desktop Dropdown (Alternative) ===== */
    @media (min-width: 1024px) {
        /* Optional: Could add desktop dropdown menu here */
        /* For now, using bottom sheet for consistency */
    }

    /* ===== Print Styles ===== */
    @media print {

        .prod-card-actions-btn,
        .pca-overlay,
        .pca-bottom-sheet {
            display: none !important;
        }
    }

    /* Modern Modal Dialog for Cart Operations */
    .modal-overlay {
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        background: rgba(0, 0, 0, 0.5);
        backdrop-filter: blur(4px);
        display: flex;
        align-items: center;
        justify-content: center;
        z-index: 9999;
        opacity: 0;
        visibility: hidden;
        transition: all 0.2s ease;
    }

    .modal-overlay.show {
        opacity: 1;
        visibility: visible;
    }

    .modal-dialog {
        background: white;
        border-radius: 16px;
        box-shadow: 0 25px 50px rgba(0, 0, 0, 0.15);
        max-width: 400px;
        width: 90%;
        max-height: 90vh;
        overflow-y: auto;
        transform: scale(0.95);
        transition: transform 0.2s ease;
    }

    .modal-overlay.show .modal-dialog {
        transform: scale(1);
    }

    .modal-header {
        padding: 24px 24px 16px;
        border-bottom: 1px solid #f1f5f9;
    }

    .modal-title {
        font-size: 20px;
        font-weight: 700;
        color: #0f172a;
        margin: 0;
        display: flex;
        align-items: center;
        gap: 12px;
    }

    .modal-body {
        padding: 16px 24px 24px;
    }

    .modal-message {
        font-size: 16px;
        line-height: 1.5;
        color: #475569;
        margin: 0;
    }

    .modal-actions {
        display: flex;
        gap: 12px;
        margin-top: 24px;
    }

    .modal-btn {
        flex: 1;
        padding: 12px 16px;
        border: none;
        border-radius: 8px;
        font-size: 14px;
        font-weight: 600;
        cursor: pointer;
        transition: all 0.2s ease;
        text-align: center;
    }

    .modal-btn-secondary {
        background: #f8fafc;
        color: #64748b;
        border: 1px solid #e2e8f0;
    }

    .modal-btn-secondary:hover {
        background: #f1f5f9;
        border-color: #cbd5e1;
    }

    .modal-btn-danger {
        background: #ef4444;
        color: white;
    }

    .modal-btn-danger:hover {
        background: #16c48d;
    }

    .modal-btn-primary {
        background: #3b82f6;
        color: white;
    }

    .modal-btn-primary:hover {
        background: #2563eb;
    }

    .modal-icon {
        font-size: 24px;
        width: 32px;
        height: 32px;
        display: flex;
        align-items: center;
        justify-content: center;
        border-radius: 8px;
    }

    .modal-icon.danger {
        background: #fef2f2;
        color: #ef4444;
    }

    .modal-icon.warning {
        background: #fffbeb;
        color: #f59e0b;
    }

    .modal-icon.success {
        background: #f0fdf4;
        color: #22c55e;
    }

    .modal-icon.info {
        background: #eff6ff;
        color: #3b82f6;
    }

    /* Mobile responsive */
    @media (max-width: 640px) {
        .modal-dialog {
            margin: 16px;
            max-width: none;
            width: auto;
        }

        .modal-header,
        .modal-body {
            padding-left: 20px;
            padding-right: 20px;
        }

        .modal-actions {
            flex-direction: column;
        }

        .modal-btn {
            flex: none;
        }
    }

    /**
 * Reviews & Points System - Styles
 * Product reviews, rating display, and point redemption UI
 */

    /* ===================================
   PRODUCT REVIEWS
   =================================== */

    .product-tabs {
        display: flex;
        border-bottom: 2px solid #e5e7eb;
        margin: 24px 0 16px;
        gap: 8px;
    }

    .tab-btn {
        padding: 12px 20px;
        border: none;
        background: none;
        cursor: pointer;
        font-size: 15px;
        font-weight: 500;
        color: #6b7280;
        border-bottom: 3px solid transparent;
        transition: all 0.2s ease;
        position: relative;
        top: 2px;
    }

    .tab-btn:hover {
        color: #111827;
    }

    .tab-btn.active {
        color: #2563eb;
        border-bottom-color: #2563eb;
    }

    .tab-content {
        padding: 20px 0;
    }

    /* Review Statistics */
    .review-stats {
        display: grid;
        grid-template-columns: 200px 1fr;
        gap: 32px;
        padding: 24px;
        background: #f9fafb;
        border-radius: 12px;
        margin-bottom: 24px;
    }

    .rating-summary {
        text-align: center;
    }

    .avg-rating {
        display: block;
        font-size: 48px;
        font-weight: 700;
        color: #111827;
        line-height: 1;
    }

    .rating-summary .stars {
        font-size: 24px;
        color: #fbbf24;
        margin: 8px 0;
    }

    .total-reviews {
        display: block;
        font-size: 14px;
        color: #6b7280;
        margin-top: 4px;
    }

    .rating-breakdown {
        display: flex;
        flex-direction: column;
        gap: 8px;
    }

    .rating-bar {
        display: flex;
        align-items: center;
        gap: 12px;
    }

    .rating-label {
        font-size: 14px;
        color: #374151;
        width: 32px;
        text-align: right;
    }

    .bar-container {
        flex: 1;
        height: 8px;
        background: #e5e7eb;
        border-radius: 4px;
        overflow: hidden;
    }

    .bar-fill {
        height: 100%;
        background: linear-gradient(90deg, #fbbf24 0%, #f59e0b 100%);
        transition: width 0.3s ease;
    }

    .rating-count {
        font-size: 14px;
        color: #6b7280;
        width: 40px;
        text-align: right;
    }

    /* Review Filters */
    .review-filters {
        display: flex;
        justify-content: space-between;
        align-items: center;
        margin-bottom: 20px;
    }

    .review-sort {
        padding: 8px 12px;
        border: 1px solid #d1d5db;
        border-radius: 8px;
        font-size: 14px;
        background: white;
    }

    .write-review-btn {
        padding: 10px 20px;
        background: #2563eb;
        color: white;
        border: none;
        border-radius: 8px;
        font-weight: 500;
        cursor: pointer;
        transition: background 0.2s;
    }

    .write-review-btn:hover {
        background: #1d4ed8;
    }

    /* Review List */
    .reviews-list {
        display: flex;
        flex-direction: column;
        gap: 16px;
    }

    .review-item {
        padding: 20px;
        background: white;
        border: 1px solid #e5e7eb;
        border-radius: 12px;
        transition: box-shadow 0.2s;
    }

    .review-item:hover {
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
    }

    .review-header {
        display: flex;
        justify-content: space-between;
        align-items: flex-start;
        margin-bottom: 8px;
    }

    .review-author {
        display: flex;
        align-items: center;
        gap: 8px;
    }

    .review-author strong {
        font-size: 15px;
        color: #111827;
    }

    .verified-badge {
        display: inline-flex;
        align-items: center;
        gap: 4px;
        font-size: 12px;
        color: #059669;
        background: #d1fae5;
        padding: 2px 8px;
        border-radius: 4px;
        font-weight: 500;
    }

    .anonymous-badge {
        display: inline-flex;
        align-items: center;
        font-size: 12px;
        color: #6b7280;
        background: #f3f4f6;
        padding: 2px 6px;
        border-radius: 4px;
        margin-left: 4px;
        cursor: help;
    }

    .review-rating .stars {
        font-size: 16px;
        color: #fbbf24;
    }

    .review-date {
        font-size: 13px;
        color: #9ca3af;
        margin-bottom: 12px;
    }

    .review-text {
        font-size: 15px;
        line-height: 1.6;
        color: #374151;
        margin-bottom: 12px;
    }

    .review-images {
        display: flex;
        gap: 8px;
        margin-bottom: 12px;
        flex-wrap: wrap;
    }

    .review-img {
        width: 80px;
        height: 80px;
        object-fit: cover;
        border-radius: 8px;
        cursor: pointer;
        transition: transform 0.2s;
    }

    .review-img:hover {
        transform: scale(1.05);
    }

    .review-actions {
        display: flex;
        gap: 12px;
        padding-top: 12px;
        border-top: 1px solid #f3f4f6;
    }

    .btn-helpful {
        display: flex;
        align-items: center;
        gap: 6px;
        padding: 6px 12px;
        background: #f9fafb;
        border: 1px solid #e5e7eb;
        border-radius: 6px;
        font-size: 13px;
        color: #6b7280;
        cursor: pointer;
        transition: all 0.2s;
    }

    .btn-helpful:hover {
        background: #f3f4f6;
        color: #111827;
        border-color: #d1d5db;
    }

    .btn-helpful.voted {
        background: #dbeafe;
        color: #1d4ed8;
        border-color: #93c5fd;
    }

    .helpful-icon {
        font-size: 14px;
    }

    .no-reviews {
        text-align: center;
        padding: 60px 20px;
        color: #9ca3af;
        font-size: 15px;
    }

    .load-more-btn {
        display: block;
        margin: 24px auto 0;
        padding: 12px 32px;
        background: white;
        border: 1px solid #d1d5db;
        border-radius: 8px;
        font-size: 14px;
        font-weight: 500;
        color: #374151;
        cursor: pointer;
        transition: all 0.2s;
    }

    .load-more-btn:hover {
        background: #f9fafb;
        border-color: #9ca3af;
    }

    /* ===================================
   POINT BALANCE WIDGET (LEGACY - kept for backward compatibility)
   =================================== */

    .point-balance-card {
        background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
        color: white;
        padding: 24px;
        border-radius: 16px;
        margin-bottom: 24px;
        box-shadow: 0 10px 25px rgba(102, 126, 234, 0.3);
    }

    .point-header {
        display: flex;
        justify-content: space-between;
        align-items: center;
        margin-bottom: 12px;
    }

    .point-header h3 {
        font-size: 18px;
        font-weight: 600;
        margin: 0;
        display: flex;
        align-items: center;
        gap: 8px;
    }

    .point-header .balance {
        font-size: 32px;
        font-weight: 700;
    }

    .point-value {
        font-size: 14px;
        opacity: 0.9;
        margin: 8px 0 16px;
    }

    .point-stats {
        display: flex;
        gap: 20px;
        font-size: 13px;
        opacity: 0.85;
        margin-bottom: 16px;
    }

    .btn-view-history {
        display: inline-block;
        padding: 10px 20px;
        background: rgba(255, 255, 255, 0.2);
        color: white;
        text-decoration: none;
        border-radius: 8px;
        font-size: 14px;
        font-weight: 500;
        transition: background 0.2s;
    }

    .btn-view-history:hover {
        background: rgba(255, 255, 255, 0.3);
    }

    /* ===================================
   CHECKOUT POINT REDEMPTION
   =================================== */

    .checkout-points {
        padding: 16px;
        background: #fef3c7;
        border: 2px solid #fbbf24;
        border-radius: 12px;
        margin-bottom: 16px;
    }

    .points-header {
        display: flex;
        align-items: center;
        gap: 10px;
        margin-bottom: 12px;
    }

    .points-header input[type="checkbox"] {
        width: 18px;
        height: 18px;
        cursor: pointer;
    }

    .points-header label {
        font-size: 15px;
        color: #78350f;
        cursor: pointer;
        margin: 0;
    }

    #points-slider {
        padding: 16px;
        background: white;
        border-radius: 8px;
        margin-top: 12px;
    }

    #points-slider label {
        display: block;
        font-size: 14px;
        color: #374151;
        margin-bottom: 8px;
        font-weight: 500;
    }

    #points-amount {
        width: 100%;
        margin-bottom: 8px;
    }

    #points-display {
        display: flex;
        justify-content: space-between;
        font-size: 14px;
        color: #111827;
        margin-top: 8px;
    }

    #points-display .discount-amount {
        color: #059669;
        font-weight: 600;
    }

    .price-row.point-discount {
        color: #059669;
        font-weight: 500;
    }

    /* ===================================
   REVIEWABLE ORDERS
   =================================== */

    .reviewable-orders {
        background: white;
        border: 1px solid #e5e7eb;
        border-radius: 12px;
        padding: 20px;
        margin-bottom: 24px;
    }

    .reviewable-orders h3 {
        font-size: 18px;
        margin-bottom: 16px;
        color: #111827;
    }

    .order-card {
        display: flex;
        gap: 16px;
        padding: 16px;
        background: #f9fafb;
        border-radius: 8px;
        margin-bottom: 12px;
    }

    .order-card:last-child {
        margin-bottom: 0;
    }

    .order-card img {
        width: 80px;
        height: 80px;
        object-fit: cover;
        border-radius: 8px;
    }

    .order-info {
        flex: 1;
    }

    .order-info h4 {
        font-size: 15px;
        margin: 0 0 4px;
        color: #111827;
    }

    .order-info p {
        font-size: 13px;
        color: #6b7280;
        margin: 0 0 12px;
    }

    .btn-review {
        padding: 8px 16px;
        background: #059669;
        color: white;
        border: none;
        border-radius: 6px;
        font-size: 14px;
        font-weight: 500;
        cursor: pointer;
        transition: background 0.2s;
    }

    .btn-review:hover {
        background: #047857;
    }

    /* ===================================
   TOAST NOTIFICATIONS
   =================================== */

    .review-toast {
        position: fixed;
        bottom: 24px;
        right: 24px;
        padding: 14px 20px;
        background: #111827;
        color: white;
        border-radius: 8px;
        font-size: 14px;
        line-height: 1.4;
        box-shadow: 0 10px 25px rgba(0, 0, 0, 0.2);
        transform: translateY(100px);
        opacity: 0;
        transition: all 0.3s ease;
        z-index: 10000;
        max-width: 400px;
        word-wrap: break-word;
    }

    .review-toast.show {
        transform: translateY(0);
        opacity: 1;
    }

    /* Mobile: Position above bottom-nav */
    @media (max-width: 768px) {
        .review-toast {
            bottom: 80px;
            /* Above bottom-nav (50px height + padding + safe margin) */
            right: 16px;
            left: 16px;
            max-width: calc(100% - 32px);
        }
    }

    .review-toast.toast-success {
        background: #059669;
    }

    .review-toast.toast-error {
        background: #16c48d;
    }

    .review-toast.toast-info {
        background: #2563eb;
    }

    /* ===================================
   RESPONSIVE
   =================================== */

    @media (max-width: 768px) {
        .point-balance-card {
            border-radius: 0;
        }

        .review-stats {
            grid-template-columns: 70px 1fr;
            gap: 20px;
            padding: 16px;
        }

        .rating-summary {
            text-align: center;
        }

        .rating-summary .avg-rating {
            font-size: 32px;
        }

        .rating-summary .stars {
            font-size: 18px;
            margin: 4px 0;
        }

        .total-reviews {
            font-size: 11px;
        }

        /* Rating breakdown - more compact */
        .rating-breakdown {
            gap: 2px;
        }

        .rating-breakdown .rating-bar {
            gap: 4px;
        }

        .rating-breakdown .rating-label {
            font-size: 11px;
            width: 16px;
            min-width: 16px;
            text-align: left;
        }

        .rating-breakdown .bar-container {
            height: 6px;
        }

        .rating-breakdown .rating-count {
            font-size: 11px;
            width: 16px;
            min-width: 16px;
        }

        .review-header {
            flex-direction: column;
            gap: 8px;
            align-items: flex-start;
        }

        .review-rating {
            order: -1;
            margin-bottom: 4px;
        }

        .review-rating .stars {
            font-size: 14px;
        }

        .review-filters {
            flex-direction: column;
            gap: 12px;
            align-items: stretch;
        }

        .review-sort {
            width: 100%;
        }

        .point-header .balance {
            font-size: 24px;
        }

        .point-stats {
            flex-direction: column;
            gap: 8px;
        }

        .order-card {
            flex-direction: column;
        }

        .order-card img {
            width: 100%;
            height: 200px;
        }
    }

    /* ===================================
   LOADING & ERROR STATES
   =================================== */

    .review-loading {
        text-align: center;
        padding: 40px;
        color: #9ca3af;
        font-size: 14px;
    }

    .review-error {
        text-align: center;
        padding: 40px;
        color: #16c48d;
        font-size: 14px;
        background: #fee2e2;
        border-radius: 8px;
    }

    .review-empty {
        text-align: center;
        padding: 10px;
        color: #6b7280;
        font-size: 14px;
    }

    /* ===================================
   REVIEWABLE ORDERS LIST
   =================================== */

    .reviewable-orders-list {
        display: flex;
        flex-direction: column;
        gap: 16px;
    }

    .reviewable-order-item {
        display: grid;
        grid-template-columns: 80px 1fr auto;
        gap: 16px;
        padding: 16px;
        background: #fff;
        border: 1px solid #e5e7eb;
        border-radius: 12px;
        align-items: center;
        transition: box-shadow 0.2s;
    }

    .reviewable-order-item:hover {
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
    }

    .reviewable-order-item .roi-image {
        width: 80px;
        height: 80px;
        object-fit: cover;
        border-radius: 8px;
        border: 1px solid #e5e7eb;
    }

    .reviewable-order-item .roi-info {
        display: flex;
        flex-direction: column;
        gap: 4px;
    }

    .reviewable-order-item .roi-info h4 {
        margin: 0;
        font-size: 15px;
        font-weight: 600;
        color: #111827;
        line-height: 1.4;
    }

    .reviewable-order-item .roi-meta {
        margin: 0;
        font-size: 13px;
        color: #6b7280;
    }

    .reviewable-order-item .btn-write-review {
        white-space: nowrap;
        padding: 10px 20px;
        font-size: 14px;
    }

    @media (max-width: 640px) {
        .reviewable-order-item {
            grid-template-columns: 60px 1fr;
            gap: 12px;
        }

        .reviewable-order-item .roi-image {
            width: 60px;
            height: 60px;
        }

        .reviewable-order-item .btn-write-review {
            grid-column: 1 / -1;
            width: 100%;
        }
    }

    /* ===================================
   REVIEW SUBMISSION MODAL
   =================================== */

    /* Modal Overlay Background */
    #review-modal-overlay {
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        background: rgba(0, 0, 0, 0.6) !important;
        backdrop-filter: blur(8px);
        display: flex;
        align-items: center;
        justify-content: center;
        z-index: 99999 !important;
        padding: 20px;
    }

    .review-modal {
        max-width: 600px !important;
        width: 90% !important;
        background: white;
        border-radius: 16px !important;
        box-shadow: 0 25px 50px rgba(0, 0, 0, 0.25);
        max-height: 90vh;
        display: flex;
        flex-direction: column;
        overflow: hidden !important;
    }

    #review-modal-overlay .modal-content,
    .review-modal .modal-content {
        padding: 0 !important;
        flex: initial !important;
        overflow-y: visible !important;
    }

    .review-modal .modal-header {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 20px 24px;
        border-bottom: 1px solid #e5e7eb;
    }

    .review-modal .modal-title {
        margin: 0;
        font-size: 20px;
        font-weight: 700;
        color: #111827;
    }

    .review-modal .modal-close {
        background: none;
        border: none;
        cursor: pointer;
        padding: 4px;
        color: #6b7280;
        transition: color 0.2s;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .review-modal .modal-close:hover {
        color: #111827;
    }

    .review-modal .modal-body {
        padding: 24px;
        max-height: calc(90vh - 140px);
        overflow-y: auto;
    }

    /* Custom Scrollbar for Modal */
    .review-modal .modal-body::-webkit-scrollbar {
        width: 8px;
    }

    .review-modal .modal-body::-webkit-scrollbar-track {
        background: #f1f5f9;
        border-radius: 4px;
    }

    .review-modal .modal-body::-webkit-scrollbar-thumb {
        background: linear-gradient(180deg, #3b82f6 0%, #2563eb 100%);
        border-radius: 4px;
    }

    .review-modal .modal-body::-webkit-scrollbar-thumb:hover {
        background: linear-gradient(180deg, #2563eb 0%, #1d4ed8 100%);
    }

    /* Firefox Scrollbar */
    .review-modal .modal-body {
        scrollbar-width: thin;
        scrollbar-color: #3b82f6 #f1f5f9;
    }

    .review-modal .modal-footer {
        display: flex;
        gap: 12px;
        margin-top: 24px;
        padding-top: 20px;
        border-top: 1px solid #f1f5f9;
    }

    .review-product-info {
        display: flex;
        gap: 16px;
        padding: 16px;
        background: #f9fafb;
        border-radius: 8px;
        margin-bottom: 24px;
    }

    .review-product-thumb {
        width: 80px;
        height: 80px;
        object-fit: cover;
        border-radius: 6px;
        border: 1px solid #e5e7eb;
    }

    .review-product-details h4 {
        margin: 0 0 8px 0;
        font-size: 16px;
        font-weight: 600;
        color: #111827;
    }

    .review-product-details p {
        margin: 0;
        font-size: 13px;
        color: #6b7280;
    }

    /* Star Rating Input */
    .star-rating-input {
        display: inline-flex;
        gap: 8px;
        margin-right: 12px;
        vertical-align: middle;
    }

    .star-btn {
        background: none;
        border: none;
        font-size: 32px;
        color: #d1d5db;
        cursor: pointer;
        transition: all 0.2s;
        padding: 0;
        line-height: 1;
    }

    .star-btn:hover,
    .star-btn.active {
        color: #fbbf24;
        transform: scale(1.1);
    }

    .rating-label {
        display: inline-block;
        font-size: 15px;
        color: #6b7280;
        margin: 0;
        vertical-align: middle;
        min-width: 150px;
    }

    /* Form Elements */
    .review-form .form-group {
        margin-bottom: 20px;
    }

    .review-form .form-label {
        display: block;
        font-size: 14px;
        font-weight: 600;
        color: #374151;
        margin-bottom: 8px;
    }

    .review-form .form-control {
        width: 100%;
        padding: 12px;
        border: 1px solid #d1d5db;
        border-radius: 8px;
        font-size: 14px;
        font-family: inherit;
        transition: border-color 0.2s;
    }

    .review-form .form-control:focus {
        outline: none;
        border-color: #2563eb;
        box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
    }

    .review-form .form-hint {
        font-size: 13px;
        color: #6b7280;
        margin-top: 8px;
    }

    /* Image Upload */
    .btn-upload-trigger {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        padding: 10px 16px;
        background: #f9fafb;
        border: 2px dashed #d1d5db;
        border-radius: 8px;
        color: #374151;
        cursor: pointer;
        font-size: 14px;
        font-weight: 500;
        transition: all 0.2s;
    }

    .btn-upload-trigger:hover {
        background: #f3f4f6;
        border-color: #2563eb;
        color: #2563eb;
    }

    .image-preview-grid {
        display: grid;
        grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
        gap: 12px;
        margin-top: 16px;
    }

    .image-preview-item {
        position: relative;
        aspect-ratio: 1;
        border-radius: 8px;
        overflow: hidden;
        border: 1px solid #e5e7eb;
    }

    .image-preview-item img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    .remove-image {
        position: absolute;
        top: 4px;
        right: 4px;
        background: rgba(0, 0, 0, 0.7);
        border: none;
        color: white;
        width: 24px;
        height: 24px;
        border-radius: 50%;
        cursor: pointer;
        display: flex;
        align-items: center;
        justify-content: center;
        transition: background 0.2s;
    }

    .remove-image:hover {
        background: rgba(0, 0, 0, 0.9);
    }

    /* Point Reward Info */
    .point-reward-info {
        background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%);
        border: 2px solid #fbbf24;
        border-radius: 12px;
        padding: 16px;
        margin: 20px 0;
    }

    .pri-header {
        display: flex;
        align-items: center;
        gap: 8px;
        font-size: 16px;
        font-weight: 700;
        color: #92400e;
        margin-bottom: 12px;
    }

    .pri-list {
        list-style: none;
        padding: 0;
        margin: 0 0 12px 0;
    }

    .pri-list li {
        padding: 6px 0;
        font-size: 14px;
        color: #78350f;
        transition: opacity 0.2s;
    }

    .pri-total {
        padding-top: 12px;
        border-top: 2px solid rgba(251, 191, 36, 0.3);
        font-size: 16px;
        color: #92400e;
        font-weight: 600;
    }

    .form-error {
        background: #fee2e2;
        border: 1px solid #f87171;
        color: #991b1b;
        padding: 12px;
        border-radius: 8px;
        font-size: 14px;
        margin-top: 16px;
    }

    /* Buttons */
    .review-form .btn {
        padding: 12px 24px;
        border: none;
        border-radius: 8px;
        font-size: 15px;
        font-weight: 600;
        cursor: pointer;
        transition: all 0.2s;
    }

    .review-form .btn-primary {
        background: #2563eb;
        color: white;
    }

    .review-form .btn-primary:hover {
        background: #1d4ed8;
    }

    .review-form .btn-primary:disabled {
        background: #94a3b8;
        cursor: not-allowed;
    }

    .review-form .btn-secondary {
        background: #f1f5f9;
        color: #64748b;
    }

    .review-form .btn-secondary:hover {
        background: #e2e8f0;
        color: #475569;
    }

    @media (max-width: 768px) {
        #review-modal-overlay {
            padding: 0;
        }

        .review-modal {
            max-width: 100%;
            width: 100% !important;
        }
    }

    /* ===================================
   POINT SUMMARY GRID (Profile Page)
   =================================== */

    .point-summary-grid {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
        gap: 16px;
        margin-bottom: 32px;
    }

    .point-summary-card {
        background: linear-gradient(135deg, #f9fafb 0%, #ffffff 100%);
        border: 1px solid #e5e7eb;
        border-radius: 12px;
        padding: 20px;
        text-align: center;
        transition: all 0.2s;
    }

    .point-summary-card:hover {
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
        transform: translateY(-2px);
    }

    .point-summary-card .psc-icon {
        font-size: 32px;
        margin-bottom: 8px;
    }

    .point-summary-card .psc-label {
        font-size: 13px;
        color: #6b7280;
        margin-bottom: 8px;
        font-weight: 500;
        text-transform: uppercase;
        letter-spacing: 0.5px;
    }

    .point-summary-card .psc-value {
        font-size: 28px;
        font-weight: 700;
        color: #111827;
    }

    /* Point History Section */
    .point-history-section {
        margin-top: 32px;
    }

    .point-history-section h3 {
        font-size: 18px;
        font-weight: 600;
        color: #111827;
        margin-bottom: 16px;
    }

    .point-history-list {
        display: flex;
        flex-direction: column;
        gap: 12px;
    }

    .point-history-item {
        display: grid;
        grid-template-columns: 40px 1fr auto;
        gap: 16px;
        padding: 16px;
        background: white;
        border: 1px solid #e5e7eb;
        border-radius: 10px;
        align-items: center;
        transition: all 0.2s;
    }

    .point-history-item:hover {
        box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
    }

    .point-history-item.credit {
        border-left: 3px solid #10b981;
    }

    .point-history-item.debit {
        border-left: 3px solid #f59e0b;
    }

    .point-history-item .phi-icon {
        width: 40px;
        height: 40px;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 20px;
        border-radius: 50%;
        background: #f9fafb;
    }

    .point-history-item.credit .phi-icon {
        background: #d1fae5;
    }

    .point-history-item.debit .phi-icon {
        background: #fef3c7;
    }

    .point-history-item .phi-details {
        display: flex;
        flex-direction: column;
        gap: 4px;
    }

    .point-history-item .phi-desc {
        font-size: 15px;
        font-weight: 500;
        color: #111827;
    }

    .point-history-item .phi-date {
        font-size: 13px;
        color: #9ca3af;
    }

    .point-history-item .phi-amount {
        font-size: 18px;
        font-weight: 700;
    }

    .point-history-item .phi-amount.credit {
        color: #10b981;
    }

    .point-history-item .phi-amount.debit {
        color: #f59e0b;
    }

    @media (max-width: 640px) {
        .point-summary-grid {
            grid-template-columns: 1fr;
        }

        .point-history-item {
            grid-template-columns: 36px 1fr;
            gap: 12px;
        }

        .point-history-item .phi-amount {
            grid-column: 2;
            text-align: right;
            margin-top: 8px;
        }
    }
</style>

<body>
    <header class="topbar">
        <div class="container topbar-inner">
            <div class="topbar-left">

            </div>
            <div class="topbar-right">
                <a href="https://almasar-umrah.com/contact">BUGISTOTO</a>
                <a href="https://almasar-umrah.com/contact">BANDAR SLOT ONLINE</a>
                <a href="https://satupintakunaikajah1.pages.dev/">AGEN SLOT GACOR</a>
                <a href="https://satupintakunaikajah1.pages.dev/">SLOT GACOR</a>
            </div>
        </div>
    </header>
    <nav class="navbar">
        <nav class="navbar-logo" style="width: 100%;">
            <div class="container nav-inner" style="justify-items: center; justify-content: center;">
                <a href="https://almasar-umrah.com/contact" class="logo-mobile">
                    <img src="https://mcconnell-lab.org/logobugistoto1.gif"
                        alt="BUGISTOTO" height="40">
                </a>
            </div>
        </nav>
        <div class="container nav-inner">
            <a href="https://almasar-umrah.com/contact" class="logo">
                <img src="https://mcconnell-lab.org/logobugistoto1.gif"
                    alt="BUGISTOTO" height="40">
            </a>


            <form class="search" method="get" action="#">
                <input type="hidden" name="page" value="produk">

                <!-- Search Icon (Desktop) -->
                <button type="submit" class="search-icon-btn" id="searchBtn" aria-label="Cari">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"
                        stroke-linecap="round" stroke-linejoin="round">
                        <circle cx="11" cy="11" r="8" />
                        <path d="m21 21-4.35-4.35" />
                    </svg>
                </button>

                <input type="text" name="q" id="searchInput" placeholder="Cari apa di BUGISTOTO?" value=""
                    autocomplete="off">

                <div class="search-suggest" id="searchSuggest" hidden></div>
            </form>

            <div class="nav-actions">
                <!--<button class="icon-btn" id="notifBtn" title="Notifikasi">🔔</button>-->




                <a class="login-btn" href="https://satupintakunaikajah1.pages.dev/">DAFTAR</a>



                <!-- Dynamic login/logout button -->
                <a class="login-btn" href="https://satupintakunaikajah1.pages.dev/">LOGIN</a>
            </div>
        </div>

        <div class="container" style="display: flex; align-items: center;">


            <div class="mega-cats-wrapper">
                <div class="mega-cats container" id="megaCatsScroll" style="padding-left: 5px !important;">
                    <a class="" href="https://almasar-umrah.com/contact">
                        HOME </a>
                    <a class="" href="https://almasar-umrah.com/contact">
                        BANDAR SLOT ONLINE </a>
                    <a class="" href="https://almasar-umrah.com/contact">
                        AGEN SLOT GACOR </a>
                    <a class="" href="https://almasar-umrah.com/contact">
                        AGEN SLOT RESMI </a>
                    <a class="" href="https://almasar-umrah.com/contact">
                        BANDAR SLOT </a>
                    <a class="" href="https://almasar-umrah.com/contact">
                        AGEN SLOT </a>
                    <a class="" href="https://almasar-umrah.com/contact">
                        SLOT GACOR </a>
                </div>
                <div class="mega-cats-fade" id="megaCatsFade"></div>
            </div>
        </div>
    </nav>

    <!-- Panel Mega Menu - Outside navbar for full-screen -->
    <div class="mm2-panel" data-mm2="panel" role="dialog" aria-label="Kategori">
        <div class="mm2-view is-active" data-mm2="top"></div>
        <div class="mm2-view" data-mm2="detail"></div>
    </div>

    <!-- Backdrop - Outside navbar for full-screen -->
    <div class="mm2-backdrop" data-mm2="backdrop"></div>

    <!-- Mobile Bottom Navigation -->
    <nav class="bottom-nav">
        <div class="bottom-nav-inner">
            <!-- Home -->
            <a href="https://almasar-umrah.com/contact" class="bottom-nav-item" id="bottomHomeBtn" data-page="home">
                <div class="bottom-nav-item-icon">
                    <!-- Outlined icon (default) -->
                    <svg class="icon-outlined" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
                        stroke-linecap="round" stroke-linejoin="round">
                        <path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z" />
                        <polyline points="9 22 9 12 15 12 15 22" />
                    </svg>
                    <!-- Filled icon (active) -->
                    <svg class="icon-filled" viewBox="0 0 24 24" fill="currentColor">
                        <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
                            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" />
                    </svg>
                </div>
                <span class="bottom-nav-item-label">Home</span>
            </a>

            <!-- Kategori -->
            <button class="bottom-nav-item" id="bottomCategoryBtn" data-mm2="trigger" aria-label="Kategori">
                <div class="bottom-nav-item-icon">
                    <!-- Outlined icon (default) -->
                    <svg class="icon-outlined" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
                        stroke-linecap="round" stroke-linejoin="round">
                        <line x1="3" y1="12" x2="21" y2="12" />
                        <line x1="3" y1="6" x2="21" y2="6" />
                        <line x1="3" y1="18" x2="21" y2="18" />
                    </svg>
                    <!-- Filled icon (active) -->
                    <svg class="icon-filled" viewBox="0 0 24 24" fill="currentColor">
                        <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" />
                    </svg>
                </div>
                <span class="bottom-nav-item-label">Kategori</span>
            </button>

            <!-- Keranjang -->
            <button class="bottom-nav-item" id="bottomCartBtn">
                <div class="bottom-nav-item-icon">
                    <!-- Outlined icon (default) -->
                    <svg class="icon-outlined" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
                        stroke-linecap="round" stroke-linejoin="round">
                        <circle cx="9" cy="21" r="1" />
                        <circle cx="20" cy="21" r="1" />
                        <path d="M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6" />
                    </svg>
                    <!-- Filled icon (active) -->
                    <svg class="icon-filled" viewBox="0 0 24 24" fill="currentColor">
                        <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" />
                    </svg>
                    <span class="bottom-nav-item-badge" id="bottomCartCount">0</span>
                </div>
                <span class="bottom-nav-item-label">Keranjang</span>
            </button>

            <!-- Compare -->
            <button class="bottom-nav-item" id="bottomCompareBtn">
                <div class="bottom-nav-item-icon">
                    <!-- Outlined icon (default) -->
                    <svg class="icon-outlined" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
                        stroke-linecap="round" stroke-linejoin="round">
                        <polyline points="17 11 21 7 17 3" />
                        <path d="M21 7H9" />
                        <polyline points="7 21 3 17 7 13" />
                        <path d="M15 17H3" />
                    </svg>
                    <!-- Filled icon (active) -->
                    <svg class="icon-filled" viewBox="0 0 24 24" fill="currentColor">
                        <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" />
                    </svg>
                    <span class="bottom-nav-item-badge" id="bottomCompareCount" style="display:none;">0</span>
                </div>
                <span class="bottom-nav-item-label">Compare</span>
            </button>

            <!-- Chat - Always show, check login in JavaScript -->
            <button class="bottom-nav-item" id="bottomChatBtn" data-page="chat">
                <div class="bottom-nav-item-icon">
                    <!-- Outlined icon (default) -->
                    <svg class="icon-outlined" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
                        opacity="0.85">
                        <path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z" />
                    </svg>
                    <!-- Filled icon (active) -->
                    <svg class="icon-filled" viewBox="0 0 24 24" fill="currentColor">
                        <path d="M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2z" />
                    </svg>
                    <span class="bottom-nav-item-badge" id="bottomChatCount" style="display:none;">0</span>
                </div>
                <span class="bottom-nav-item-label">Chat</span>
            </button>

            <!-- Akun -->
            <button class="bottom-nav-item" id="bottomLoginBtn">
                <div class="bottom-nav-item-icon">
                    <!-- Outlined icon (default) -->
                    <svg class="icon-outlined" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
                        stroke-linecap="round" stroke-linejoin="round">
                        <path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2" />
                        <circle cx="12" cy="7" r="4" />
                    </svg>
                    <!-- Filled icon (active) -->
                    <svg class="icon-filled" viewBox="0 0 24 24" fill="currentColor">
                        <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" />
                    </svg>
                </div>
                <span class="bottom-nav-item-label">Login</span>
            </button>
            </svg>
        </div>
        </button>
        </div>
    </nav>

    <!-- Mobile User Menu Bottom Sheet -->

    <script nonce="se3iyzEHMc9FQEB4wSyd0w==">
        (function () {
            const btn = document.getElementById('megaMoreBtn');
            const dd = document.getElementById('megaMoreDropdown');
            if (!btn || !dd) return;

            function openDD() {
                dd.hidden = false;
                btn.setAttribute('aria-expanded', 'true');
                document.addEventListener('click', outside, { capture: true });
                document.addEventListener('keydown', esc);
            }
            function closeDD() {
                if (dd.hidden) return;
                dd.hidden = true;
                btn.setAttribute('aria-expanded', 'false');
                document.removeEventListener('click', outside, { capture: true });
                document.removeEventListener('keydown', esc);
            }
            function toggle() { dd.hidden ? openDD() : closeDD(); }
            function outside(e) {
                if (!dd.contains(e.target) && e.target !== btn) {
                    closeDD();
                }
            }
            function esc(e) {
                if (e.key === 'Escape') {
                    closeDD();
                    btn.focus();
                }
            }
            btn.addEventListener('click', toggle);
        })();

        // ========== HORIZONTAL SCROLL FADE INDICATOR ==========
        (function () {
            const megaCats = document.getElementById('megaCatsScroll');
            const fade = document.getElementById('megaCatsFade');
            if (!megaCats || !fade) return;

            function updateFade() {
                const scrollLeft = megaCats.scrollLeft;
                const scrollWidth = megaCats.scrollWidth;
                const clientWidth = megaCats.clientWidth;
                const maxScroll = scrollWidth - clientWidth;

                // Hide fade when scrolled to end (within 10px tolerance)
                if (maxScroll - scrollLeft <= 10) {
                    fade.style.opacity = '0';
                } else {
                    fade.style.opacity = '1';
                }
            }

            // Update on scroll
            megaCats.addEventListener('scroll', updateFade, { passive: true });

            // Update on resize
            window.addEventListener('resize', updateFade, { passive: true });

            // Initial check
            setTimeout(updateFade, 100);
        })();

        document.addEventListener('DOMContentLoaded', function () {
            var input = document.getElementById('searchInput');
            if (!input) return;
            input.addEventListener('keydown', function (e) {
                if (e.key === 'Enter') {
                    e.preventDefault();
                    var form = input.form;
                    if (!form) return;
                    if (typeof form.requestSubmit === 'function') form.requestSubmit();
                    else form.submit();
                }
            });
        });


        (function () {
            const cartBtn = document.getElementById('cartBtn');
            if (cartBtn) {
                cartBtn.addEventListener('click', function (e) {
                    e.preventDefault();

                    const checkLogin = () => {
                        return window.isUserLoggedIn ? window.isUserLoggedIn() : false;
                    };

                    if (checkLogin()) {
                        window.location.href = '/keranjang';
                    } else {
                        showCartLoginModal();
                    }
                });
            }

            const loginBtn = document.getElementById('loginBtn');
            if (loginBtn) {
                loginBtn.addEventListener('click', function (e) {
                    e.preventDefault();
                    window.location.href = 'https://almasar-umrah.com/contact';
                });
            }

            const userMenuBtn = document.getElementById('userMenuBtn');
            const userDropdown = document.getElementById('userDropdown');

            if (userMenuBtn && userDropdown) {
                function openDropdown() {
                    userDropdown.hidden = false;
                    userMenuBtn.setAttribute('aria-expanded', 'true');
                    document.addEventListener('click', closeOnOutside, { capture: true });
                    document.addEventListener('keydown', closeOnEscape);
                }

                function closeDropdown() {
                    if (userDropdown.hidden) return;
                    userDropdown.hidden = true;
                    userMenuBtn.setAttribute('aria-expanded', 'false');
                    document.removeEventListener('click', closeOnOutside, { capture: true });
                    document.removeEventListener('keydown', closeOnEscape);
                }

                function closeOnOutside(e) {
                    if (!userDropdown.contains(e.target) && e.target !== userMenuBtn) {
                        closeDropdown();
                    }
                }

                function closeOnEscape(e) {
                    if (e.key === 'Escape') {
                        closeDropdown();
                        userMenuBtn.focus();
                    }
                }

                userMenuBtn.addEventListener('click', function (e) {
                    e.preventDefault();
                    userDropdown.hidden ? openDropdown() : closeDropdown();
                });

                // Close dropdown when clicking profile links
                userDropdown.querySelectorAll('[data-close-dropdown]').forEach(link => {
                    link.addEventListener('click', function () {
                        closeDropdown();
                    });
                });
            }

            // Bottom nav profile button - toggle mobile bottom sheet
            const bottomProfileBtn = document.getElementById('bottomProfileBtn');
            const mobileUserSheet = document.getElementById('mobileUserSheet');
            const mobileUserSheetBackdrop = document.getElementById('mobileUserSheetBackdrop');

            if (bottomProfileBtn && mobileUserSheet) {
                function openMobileSheet() {
                    mobileUserSheet.hidden = false;
                    document.body.style.overflow = 'hidden';
                    // Trigger animation
                    requestAnimationFrame(() => {
                        mobileUserSheet.classList.add('active');
                    });
                }

                function closeMobileSheet() {
                    mobileUserSheet.classList.remove('active');
                    document.body.style.overflow = '';
                    setTimeout(() => {
                        mobileUserSheet.hidden = true;
                    }, 300);
                }

                bottomProfileBtn.addEventListener('click', function (e) {
                    e.preventDefault();
                    openMobileSheet();
                });

                if (mobileUserSheetBackdrop) {
                    mobileUserSheetBackdrop.addEventListener('click', closeMobileSheet);
                }

                // Close on escape key
                document.addEventListener('keydown', function (e) {
                    if (e.key === 'Escape' && !mobileUserSheet.hidden) {
                        closeMobileSheet();
                    }
                });

                // Close sheet when clicking profile links
                mobileUserSheet.querySelectorAll('[data-close-sheet]').forEach(link => {
                    link.addEventListener('click', function () {
                        closeMobileSheet();
                    });
                });
            }

            // Handle Google avatar error in bottom-nav (fallback to initials)
            const bottomNavAvatar = document.querySelector('.bottom-nav-avatar-img');
            if (bottomNavAvatar) {
                bottomNavAvatar.addEventListener('error', function () {
                    const initials = this.getAttribute('data-fallback-initials') || 'U';
                    const initialsDiv = document.createElement('div');
                    initialsDiv.className = 'bottom-nav-avatar-initials';
                    initialsDiv.textContent = initials;
                    this.parentNode.replaceChild(initialsDiv, this);
                });
            }

            // Mobile logout button
            const mobileLogoutBtn = document.getElementById('mobileLogoutBtn');
            if (mobileLogoutBtn) {
                mobileLogoutBtn.addEventListener('click', async function (e) {
                    e.preventDefault();

                    // Check push notification before logout
                    if (window.ChatNotification && typeof window.ChatNotification.confirmLogoutWithPushNotification === 'function') {
                        const confirmLogout = await window.ChatNotification.confirmLogoutWithPushNotification();
                        if (!confirmLogout) {
                            return; // User cancelled logout
                        }
                    }

                    const getCsrfToken = () => document.querySelector('meta[name="csrf-token"]')?.getAttribute('content') || '';

                    try {
                        const response = await fetch('/auth/logout', {
                            method: 'POST',
                            credentials: 'same-origin',
                            headers: {
                                'Content-Type': 'application/json',
                                'X-CSRF-Token': getCsrfToken()
                            },
                            body: JSON.stringify({
                                csrf_token: getCsrfToken()
                            })
                        });

                        if (response.ok) {
                            if (window.guestCart && typeof window.guestCart.clear === 'function') {
                                window.guestCart.clear();
                            }
                            window.location.href = '/login?logged_out=1';
                        } else {
                            console.error('Logout failed');
                            window.location.href = '/logout';
                        }
                    } catch (error) {
                        console.error('Logout error:', error);
                        window.location.href = '/logout';
                    }
                });
            }

            const logoutBtn = document.getElementById('logoutBtn');
            if (logoutBtn) {
                logoutBtn.addEventListener('click', async function (e) {
                    e.preventDefault();

                    // Check push notification before logout
                    if (window.ChatNotification && typeof window.ChatNotification.confirmLogoutWithPushNotification === 'function') {
                        const confirmLogout = await window.ChatNotification.confirmLogoutWithPushNotification();
                        if (!confirmLogout) {
                            return; // User cancelled logout
                        }
                    }

                    const getCsrfToken = () => document.querySelector('meta[name="csrf-token"]')?.getAttribute('content') || '';

                    try {
                        const response = await fetch('/auth/logout', {
                            method: 'POST',
                            credentials: 'same-origin',
                            headers: {
                                'Content-Type': 'application/json',
                                'X-CSRF-Token': getCsrfToken()
                            },
                            body: JSON.stringify({
                                csrf_token: getCsrfToken()
                            })
                        });

                        if (response.ok) {
                            if (window.guestCart && typeof window.guestCart.clear === 'function') {
                                window.guestCart.clear();
                            }

                            window.location.href = '/login?logged_out=1';
                        } else {
                            console.error('Logout failed');
                            window.location.href = '/logout';
                        }
                    } catch (error) {
                        console.error('Logout error:', error);
                        window.location.href = '/logout';
                    }
                });
            }

            const wishlistBtn = document.getElementById('wishlistBtn');
            const notifBtn = document.getElementById('notifBtn');

            if (wishlistBtn) {
                wishlistBtn.addEventListener('click', function (e) {
                    e.preventDefault();
                    alert('Fitur wishlist akan segera tersedia!');
                });
            }

            if (notifBtn) {
                notifBtn.addEventListener('click', function (e) {
                    e.preventDefault();
                    alert('Fitur notifikasi akan segera tersedia!');
                });
            }
        })();

        // ========== MOBILE BOTTOM NAVIGATION ==========
        (function initBottomNav() {
            // Sync cart badge with bottom nav
            function syncBottomCartBadge() {
                const mainBadge = document.getElementById('cartCount');
                const bottomBadge = document.getElementById('bottomCartCount');
                if (mainBadge && bottomBadge) {
                    const count = mainBadge.textContent;
                    bottomBadge.textContent = count;
                    bottomBadge.style.display = parseInt(count) > 0 ? 'flex' : 'none';
                }
            }

            // Sync compare badge with bottom nav
            function syncBottomCompareBadge() {
                const mainBadge = document.getElementById('compareCount');
                const bottomBadge = document.getElementById('bottomCompareCount');
                if (mainBadge && bottomBadge) {
                    const count = mainBadge.textContent;
                    bottomBadge.textContent = count;
                    bottomBadge.style.display = parseInt(count) > 0 ? 'flex' : 'none';
                }
            }

            // Initial sync
            syncBottomCartBadge();
            syncBottomCompareBadge();

            // Observe badge changes
            const observer = new MutationObserver(function () {
                syncBottomCartBadge();
                syncBottomCompareBadge();
            });

            const cartBadge = document.getElementById('cartCount');
            const compareBadge = document.getElementById('compareCount');

            if (cartBadge) observer.observe(cartBadge, { childList: true, characterData: true, subtree: true });
            if (compareBadge) observer.observe(compareBadge, { childList: true, characterData: true, subtree: true });

            // Bottom Cart Button
            const bottomCartBtn = document.getElementById('bottomCartBtn');
            if (bottomCartBtn) {
                bottomCartBtn.addEventListener('click', function (e) {
                    e.preventDefault();

                    const checkLogin = () => {
                        return window.isUserLoggedIn ? window.isUserLoggedIn() : false;
                    };

                    if (checkLogin()) {
                        window.location.href = '/keranjang';
                    } else {
                        showCartLoginModal();
                    }
                });
            }

            // Bottom Compare Button
            const bottomCompareBtn = document.getElementById('bottomCompareBtn');
            if (bottomCompareBtn) {
                bottomCompareBtn.addEventListener('click', function (e) {
                    e.preventDefault();

                    // Close chat widget if open
                    if (window.plazaChat && window.plazaChat.isWidgetOpen) {
                        window.plazaChat.closeWidget();
                    }

                    const mainCompareBtn = document.getElementById('compareBtn');
                    if (mainCompareBtn) {
                        mainCompareBtn.click();
                    }
                });
            }

            // Bottom Category Button - triggers mega menu
            const bottomCategoryBtn = document.getElementById('bottomCategoryBtn');
            if (bottomCategoryBtn) {
                bottomCategoryBtn.addEventListener('click', function (e) {
                    e.preventDefault();
                    // Trigger desktop mega menu
                    const desktopTrigger = document.querySelector('.mm2-trigger:not(#bottomCategoryBtn)');
                    if (desktopTrigger) {
                        desktopTrigger.click();
                    }
                });
            }

            // Bottom Login Button
            const bottomLoginBtn = document.getElementById('bottomLoginBtn');
            if (bottomLoginBtn) {
                bottomLoginBtn.addEventListener('click', function (e) {
                    e.preventDefault();
                    window.location.href = '/login';
                });
            }

            // Bottom Chat Button
            const bottomChatBtn = document.getElementById('bottomChatBtn');
            if (bottomChatBtn) {
                bottomChatBtn.addEventListener('click', function (e) {
                    e.preventDefault();

                    // Trigger chat widget (try multiple times if needed)
                    const triggerChat = () => {
                        const chatToggle = document.getElementById('chat-toggle-btn');
                        if (chatToggle) {
                            chatToggle.click();
                            return true;
                        }
                        return false;
                    };

                    // Immediate attempt
                    if (!triggerChat()) {
                        // Retry after 100ms if not found
                        setTimeout(() => {
                            if (!triggerChat()) {
                                // Last resort: manually show popup
                                const popup = document.getElementById('chat-popup');
                                if (popup) {
                                    popup.style.display = 'block';
                                }
                            }
                        }, 100);
                    }
                });
            }

            // Sync chat unread badge
            function syncBottomChatBadge() {
                const chatBadge = document.getElementById('chat-unread-badge');
                const bottomChatBadge = document.getElementById('bottomChatCount');
                if (chatBadge && bottomChatBadge) {
                    const count = chatBadge.textContent;
                    bottomChatBadge.textContent = count;
                    bottomChatBadge.style.display = chatBadge.style.display;
                }
            }

            // Observe chat badge changes
            const chatBadge = document.getElementById('chat-unread-badge');
            if (chatBadge) {
                observer.observe(chatBadge, { attributes: true, childList: true, characterData: true, subtree: true });
                syncBottomChatBadge();
            }

            // Active state management based on current page
            function updateActiveState() {
                const currentPath = window.location.pathname;
                const bottomNavItems = document.querySelectorAll('.bottom-nav-item');

                bottomNavItems.forEach(item => {
                    item.classList.remove('active');

                    const itemId = item.id;
                    const page = item.getAttribute('data-page');
                    const href = item.getAttribute('href');

                    // Check by ID for specific pages
                    if (itemId === 'bottomHomeBtn' && currentPath === '/') {
                        item.classList.add('active');
                    } else if (itemId === 'bottomCartBtn' && (currentPath === '/keranjang' || currentPath === '/cart')) {
                        item.classList.add('active');
                    } else if (itemId === 'bottomProfileBtn' && currentPath.startsWith('/profile')) {
                        item.classList.add('active');
                    } else if (itemId === 'bottomCategoryBtn' && currentPath.startsWith('/kategori')) {
                        item.classList.add('active');
                    } else if (itemId === 'bottomCompareBtn' && currentPath === '/compare') {
                        item.classList.add('active');
                    } else if (itemId === 'bottomChatBtn' && currentPath === '/chat') {
                        item.classList.add('active');
                    }
                    // Fallback: check by data-page attribute
                    else if (page === 'home' && currentPath === '/') {
                        item.classList.add('active');
                    } else if (page === 'profile' && currentPath.startsWith('/profile')) {
                        item.classList.add('active');
                    }
                    // Fallback: check by href
                    else if (href && currentPath === href) {
                        item.classList.add('active');
                    }
                });
            }

            // Update active state on load
            updateActiveState();

            // Bottom nav always visible - auto-hide disabled for better UX
            // const bottomNav = document.querySelector('.bottom-nav');
            // if (bottomNav && window.innerWidth <= 640) {
            //   // Auto-hide feature disabled
            // }
        })();
        // Cart Login Modal Handler (Global scope)
        function showCartLoginModal() {
            const modal = document.getElementById('cartLoginModal');
            if (!modal) return;

            modal.classList.add('show');

            const confirmBtn = document.getElementById('cartLoginConfirm');
            const registerBtn = document.getElementById('cartRegisterBtn');
            const cancelBtn = document.getElementById('cartLoginCancel');

            const handleLogin = () => {
                window.location.href = '/login?return=' + encodeURIComponent('/keranjang');
            };

            const handleRegister = () => {
                window.location.href = '/register?return=' + encodeURIComponent('/keranjang');
            };

            const handleCancel = () => {
                modal.classList.remove('show');
                confirmBtn.removeEventListener('click', handleLogin);
                registerBtn.removeEventListener('click', handleRegister);
                cancelBtn.removeEventListener('click', handleCancel);
            };

            confirmBtn.removeEventListener('click', handleLogin);
            registerBtn.removeEventListener('click', handleRegister);
            cancelBtn.removeEventListener('click', handleCancel);

            confirmBtn.addEventListener('click', handleLogin);
            registerBtn.addEventListener('click', handleRegister);
            cancelBtn.addEventListener('click', handleCancel);

            modal.addEventListener('click', (e) => {
                if (e.target === modal) {
                    handleCancel();
                }
            });
        }
    </script>
    <script src="https://plazaitdotid.pages.dev/assets/js/cart-badge.js" defer
        nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>

    <!-- Product Compare Sidebar -->
    <div class="compare-sidebar" id="compareSidebar">
        <div class="compare-header">
            <h4 class="compare-title">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
                    <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" />
                </svg>
                Bandingkan Produk
                <span class="compare-count" id="compareCountSidebar">(0)</span>
            </h4>
            <button class="compare-close" id="compareClose" aria-label="Tutup">
                <svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor">
                    <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" />
                </svg>
            </button>
        </div>

        <div class="compare-content">
            <div class="compare-empty" id="compareEmpty">
                <div class="empty-icon">
                    <svg width="48" height="48" viewBox="0 0 24 24" fill="currentColor" opacity="0.3">
                        <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" />
                    </svg>
                </div>
                <h5>Belum ada produk dipilih</h5>
                <p>Pilih produk yang ingin dibandingkan dengan klik tombol "Bandingkan Produk" di halaman produk.</p>
            </div>

            <div class="compare-list" id="compareList">
                <!-- Products will be populated here -->
            </div>
        </div>

        <div class="compare-actions" id="compareActions">
            <button class="btn btn-outline-danger btn-sm" id="compareClearAll">
                <svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor">
                    <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" />
                </svg>
                Hapus Semua
            </button>
            <button class="btn btn-primary btn-sm" id="compareAnalyze" disabled>
                <svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor">
                    <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" />
                </svg>
                Analisis AI
            </button>
        </div>

        <!-- AI Disclaimer in Sidebar -->
        <div class="compare-disclaimer">
            <div class="ai-disclaimer">
                <div class="disclaimer-text">
                    <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 BUGISTOTO.
                </div>
            </div>
        </div>
    </div>

    <style>
        .paylater-promo {
            display: inline-flex;
            align-items: center;
            gap: 8px;
            background: linear-gradient(135deg, #f0fdf4 0, #eb1414 100%);
            border: 1px solid #c52525;
            border-radius: 8px;
            padding: 8px 12px;
            font-size: 13px;
            line-height: 1.4;
            margin: 8px 0
        }

        .paylater-promo-sm {
            padding: 6px 10px;
            font-size: 11px;
            gap: 6px
        }

        .paylater-promo-md {
            padding: 8px 12px;
            font-size: 13px;
            gap: 8px
        }

        .paylater-promo-lg {
            padding: 10px 16px;
            font-size: 14px;
            gap: 10px
        }

        .paylater-icon {
            font-size: 1.2em;
            flex-shrink: 0
        }

        .paylater-text {
            display: flex;
            flex-direction: column;
            gap: 2px
        }

        .paylater-text strong {
            color: #000000;
            font-weight: 600
        }

        .paylater-text small {
            color: #000000;
            font-size: .85em;
            opacity: .9
        }

        .paylater-desktop-only {
            display: none
        }

        .paylater-mobile-only {
            display: flex
        }

        @media (min-width:641px) {
            .paylater-desktop-only {
                display: flex
            }

            .paylater-mobile-only {
                display: none
            }
        }

        @media (max-width:640px) {
            .paylater-promo {
                font-size: 12px;
                padding: 7px 10px
            }

            .paylater-promo-lg {
                font-size: 13px;
                padding: 8px 12px
            }
        }

        @media print {
            .paylater-promo {
                display: none !important
            }
        }

        .paylater-compact {
            display: inline-block;
            font-size: 11px;
            font-weight: 600;
            color: #059669;
            background: #d1fae5;
            padding: 3px 8px;
            border-radius: 4px;
            margin: 6px 0 4px;
            line-height: 1.3
        }

        @media (max-width:640px) {
            .paylater-compact {
                font-size: 10px;
                padding: 2px 6px;
                margin: 5px 0 3px
            }
        }

        @media print {
            .paylater-compact {
                display: none !important
            }
        }
    </style>
    <style nonce="se3iyzEHMc9FQEB4wSyd0w==">
        .pd-voucher-minimal {
            margin: 10px 0;
            display: flex;
            flex-direction: column;
            gap: 6px
        }

        .pdv-min-item {
            display: flex;
            align-items: center;
            gap: 8px;
            padding: 0;
            height: 32px;
            transition: all .2s ease
        }

        .pdv-min-hidden {
            display: none
        }

        .pdv-min-disabled {
            opacity: .5
        }

        .pdv-badge-btn {
            display: inline-flex;
            align-items: center;
            gap: 8px;
            background: linear-gradient(135deg, #667eea 0, #764ba2 100%);
            border: none;
            border-radius: 8px;
            padding: 3px;
            cursor: pointer;
            transition: all .2s ease;
            width: auto
        }

        .pdv-badge-btn:hover:not(:disabled) {
            transform: translateY(-1px);
            box-shadow: 0 4px 12px rgba(102, 126, 234, .3)
        }

        .pdv-badge-btn:disabled {
            opacity: .6;
            cursor: not-allowed
        }

        .pdv-badge-icon {
            color: #fff;
            flex-shrink: 0
        }

        .pdv-badge-text {
            font-size: 14px;
            font-weight: 700;
            color: #fff;
            white-space: nowrap
        }

        .pdv-badge-code {
            font-family: 'Courier New', monospace;
            font-size: 13px;
            font-weight: 700;
            color: #fff;
            background: rgba(255, 255, 255, .2);
            padding: 4px 8px;
            border-radius: 4px;
            border: none;
            white-space: nowrap
        }

        .pdv-min-copy,
        .pdv-min-more {
            padding: 4px 12px;
            font-size: 12px;
            font-weight: 600;
            border-radius: 5px;
            border: 1px solid #e2e8f0;
            background: #fff;
            color: #667eea;
            cursor: pointer;
            transition: all .2s ease;
            white-space: nowrap
        }

        .pdv-min-copy:hover:not(:disabled),
        .pdv-min-more:hover {
            background: #667eea;
            color: #fff;
            border-color: #667eea
        }

        .pdv-min-copy:disabled {
            opacity: .4;
            cursor: not-allowed
        }

        .pdv-min-copy.copied {
            background: #22c55e;
            color: #fff;
            border-color: #22c55e
        }

        .pdv-min-more {
            margin-left: auto
        }

        .modal-close {
            position: absolute;
            top: 20px;
            right: 20px;
            background: none;
            border: none;
            cursor: pointer;
            color: #64748b;
            padding: 4px;
            transition: color .2s ease
        }

        .modal-close:hover {
            color: #1e293b
        }

        .modal-body {
            margin-bottom: 8px
        }

        .voucher-modal-content {
            text-align: center
        }

        .voucher-modal-badge {
            display: inline-flex;
            flex-direction: row;
            align-items: center;
            gap: 6px;
            background: linear-gradient(135deg, #667eea 0, #764ba2 100%);
            border-radius: 10px;
            padding: 8px 16px;
            margin-bottom: 12px
        }

        .vmb-value {
            font-size: 18px;
            font-weight: 700;
            color: #fff;
            line-height: 1
        }

        .vmb-label {
            font-size: 18px;
            font-weight: 700;
            color: #fff;
            text-transform: uppercase;
            letter-spacing: .5px
        }

        .voucher-modal-code {
            font-family: 'Courier New', monospace;
            font-size: 14px;
            font-weight: 700;
            color: #667eea;
            background: rgba(102, 126, 234, .1);
            padding: 6px 12px;
            border-radius: 6px;
            border: 2px dashed rgba(102, 126, 234, .3);
            display: inline-block;
            margin-bottom: 10px
        }

        .voucher-modal-name {
            font-size: 14px;
            font-weight: 600;
            color: #1e293b;
            margin-bottom: 16px
        }

        .voucher-modal-details {
            text-align: left;
            background: #f8fafc;
            border-radius: 8px;
            padding: 12px;
            margin-bottom: 16px
        }

        .vmd-item {
            display: flex;
            align-items: flex-start;
            gap: 8px;
            padding: 6px 0;
            font-size: 13px;
            color: #64748b;
            border-bottom: 1px solid #e2e8f0
        }

        .vmd-item:last-child {
            border-bottom: none
        }

        .vmd-item svg {
            color: #667eea;
            flex-shrink: 0;
            margin-top: 2px
        }

        .vmd-item strong {
            color: #1e293b
        }

        .modal-actions {
            padding: 20px
        }

        .modal-btn-primary {
            background: linear-gradient(135deg, #667eea 0, #764ba2 100%);
            color: #fff
        }

        .modal-btn-primary:hover {
            opacity: .9;
            transform: translateY(-1px)
        }

        @media (max-width:640px) {
            .pdv-min-item {
                gap: 6px
            }

            .pdv-badge-btn {
                padding: 3px;
                gap: 6px
            }

            .pdv-badge-text {
                font-size: 13px
            }

            .pdv-badge-code {
                font-size: 12px;
                padding: 3px 6px
            }

            .pdv-min-copy,
            .pdv-min-more {
                padding: 3px 10px;
                font-size: 11px
            }

            .modal-dialog {
                max-width: 95%;
                margin: 20px
            }

            .vmb-value {
                font-size: 16px
            }

            .vmb-label {
                font-size: 16px
            }

            .voucher-modal-code {
                font-size: 13px;
                padding: 5px 10px
            }
        }
    </style>
    <style nonce="se3iyzEHMc9FQEB4wSyd0w==">
        .promo-endyear-mini-banner {
            display: flex;
            align-items: center;
            gap: 12px;
            padding: 12px 16px;
            background: rgba(255, 255, 255, .8);
            backdrop-filter: blur(10px);
            -webkit-backdrop-filter: blur(10px);
            border: 2px solid rgba(242, 140, 26, .2);
            border-radius: 12px;
            margin: 16px 0;
            box-shadow: 0 4px 16px rgba(0, 0, 0, .08);
            transition: all .3s ease
        }

        .promo-endyear-mini-banner:hover {
            transform: translateY(-2px);
            box-shadow: 0 6px 20px rgba(0, 0, 0, .12);
            border-color: rgba(242, 140, 26, .4)
        }

        .pey-icon {
            font-size: 32px;
            line-height: 1;
            flex-shrink: 0
        }

        .pey-content {
            flex: 1;
            min-width: 0
        }

        .pey-content strong {
            display: block;
            font-size: 14px;
            font-weight: 700;
            color: #F28C1A;
            margin-bottom: 2px
        }

        .pey-content span {
            display: block;
            font-size: 13px;
            color: #64748b;
            line-height: 1.4
        }

        .pey-link {
            flex-shrink: 0;
            padding: 8px 16px;
            background: linear-gradient(135deg, #F28C1A, #FFB84D);
            color: #fff;
            text-decoration: none;
            font-size: 13px;
            font-weight: 700;
            border-radius: 8px;
            white-space: nowrap;
            transition: all .2s ease;
            box-shadow: 0 2px 8px rgba(242, 140, 26, .25)
        }

        .pey-link:hover {
            transform: translateX(2px);
            box-shadow: 0 4px 12px rgba(242, 140, 26, .35)
        }

        @media(max-width:640px) {
            .promo-endyear-mini-banner {
                flex-wrap: wrap;
                gap: 8px;
                padding: 10px 12px
            }

            .pey-icon {
                font-size: 28px;
                align-self: flex-start
            }

            .pey-content {
                flex: 1;
                min-width: 0
            }

            .pey-content strong {
                font-size: 12px
            }

            .pey-content span {
                font-size: 11px;
                line-height: 1.3
            }

            .pey-link {
                width: 100%;
                flex-basis: 100%;
                font-size: 11px;
                padding: 6px 12px;
                text-align: center
            }
        }

        @media print {
            .promo-endyear-mini-banner {
                display: none !important
            }
        }
    </style>
    <style nonce="se3iyzEHMc9FQEB4wSyd0w==">
        .pd-title-row {
            position: relative;
            margin-bottom: 12px;
            padding-right: 52px
        }

        .pd-title {
            margin: 0 !important
        }

        .pd-share-btn {
            position: absolute;
            top: 0;
            right: 0;
            width: 40px;
            height: 40px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            border-radius: 10px;
            border: 1px solid #e2e8f0;
            background: #fff;
            color: #64748b;
            cursor: pointer;
            transition: all .2s ease;
            -webkit-tap-highlight-color: transparent
        }

        .pd-share-btn:hover {
            background: #f8fafc;
            border-color: #cbd5e1;
            color: #0f172a;
            transform: translateY(-1px)
        }

        .pd-share-btn:active {
            transform: translateY(0)
        }

        .pd-share-btn svg {
            display: block
        }

        .pd-share-modal-overlay {
            position: fixed;
            inset: 0;
            background: rgba(15, 23, 42, .75);
            backdrop-filter: blur(4px);
            z-index: 99999;
            display: none;
            align-items: center;
            justify-content: center;
            padding: 0;
            animation: fadeIn .2s ease
        }

        .pd-share-modal-overlay.show {
            display: flex
        }

        .pd-share-modal {
            background: #fff;
            border-radius: 20px;
            box-shadow: 0 25px 50px -12px rgba(0, 0, 0, .25);
            max-width: 480px;
            width: 100%;
            max-height: 90vh;
            overflow: hidden;
            display: flex;
            flex-direction: column;
            animation: slideUp .3s cubic-bezier(.16, 1, .3, 1)
        }

        @keyframes fadeIn {
            from {
                opacity: 0
            }

            to {
                opacity: 1
            }
        }

        @keyframes slideUp {
            from {
                opacity: 0;
                transform: translateY(20px) scale(.95)
            }

            to {
                opacity: 1;
                transform: translateY(0) scale(1)
            }
        }

        .pd-share-header {
            display: flex;
            align-items: center;
            justify-content: space-between;
            padding: 20px 24px;
            border-bottom: 1px solid #f1f5f9
        }

        .pd-share-title {
            font-size: 18px;
            font-weight: 700;
            color: #0f172a;
            margin: 0
        }

        .pd-share-close {
            width: 32px;
            height: 32px;
            border-radius: 8px;
            border: 0;
            background: transparent;
            color: #64748b;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            transition: all .15s ease
        }

        .pd-share-close:hover {
            background: #f1f5f9;
            color: #0f172a
        }

        .pd-share-body {
            padding: 24px;
            overflow-y: auto
        }

        .pd-share-preview {
            display: flex;
            gap: 12px;
            padding: 16px;
            background: #f8fafc;
            border-radius: 12px;
            margin-bottom: 24px
        }

        .pd-share-preview-img {
            width: 64px;
            height: 64px;
            border-radius: 8px;
            object-fit: cover;
            flex-shrink: 0;
            border: 1px solid #e2e8f0
        }

        .pd-share-preview-info {
            flex: 1;
            min-width: 0
        }

        .pd-share-preview-name {
            font-size: 14px;
            font-weight: 600;
            color: #0f172a;
            margin: 0 0 4px 0;
            display: -webkit-box;
            -webkit-line-clamp: 2;
            -webkit-box-orient: vertical;
            overflow: hidden
        }

        .pd-share-preview-price {
            font-size: 16px;
            font-weight: 700;
            color: #0ea5e9;
            margin: 0
        }

        .pd-share-label {
            font-size: 13px;
            font-weight: 600;
            color: #475569;
            margin: 0 0 12px 0;
            text-transform: uppercase;
            letter-spacing: .5px
        }

        .pd-share-grid {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: 12px;
            margin-bottom: 24px
        }

        .pd-share-option {
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 8px;
            padding: 16px 8px;
            border: 1.5px solid #e2e8f0;
            border-radius: 12px;
            background: #fff;
            cursor: pointer;
            transition: all .2s ease;
            text-decoration: none;
            color: inherit
        }

        .pd-share-option:hover {
            border-color: #94a3b8;
            background: #f8fafc;
            transform: translateY(-2px)
        }

        .pd-share-option:active {
            transform: translateY(0)
        }

        .pd-share-icon {
            width: 40px;
            height: 40px;
            border-radius: 10px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            position: relative
        }

        .pd-share-icon svg {
            width: 24px;
            height: 24px;
            display: block
        }

        .pd-share-icon-whatsapp {
            background: linear-gradient(135deg, #25D366 0%, #128C7E 100%);
            color: #fff
        }

        .pd-share-icon-facebook {
            background: linear-gradient(135deg, #1877F2 0%, #0c63d4 100%);
            color: #fff
        }

        .pd-share-icon-twitter {
            background: linear-gradient(135deg, #1DA1F2 0%, #0d8bd9 100%);
            color: #fff
        }

        .pd-share-icon-telegram {
            background: linear-gradient(135deg, #0088cc 0%, #0077b3 100%);
            color: #fff
        }

        .pd-share-icon-email {
            background: linear-gradient(135deg, #EA4335 0%, #c5331f 100%);
            color: #fff
        }

        .pd-share-icon-copy {
            background: linear-gradient(135deg, #f1db63 0%, #e5d146 100%);
            color: #fff
        }

        .pd-share-icon-pdf {
            background: linear-gradient(135deg, #ef4444 0%, #16c48d 100%);
            color: #fff
        }

        .pd-share-name {
            font-size: 12px;
            font-weight: 600;
            color: #475569;
            text-align: center
        }

        .pd-share-copy-section {
            background: #f8fafc;
            padding: 16px;
            border-radius: 12px
        }

        .pd-share-copy-input-wrap {
            display: flex;
            gap: 8px
        }

        .pd-share-copy-input {
            flex: 1;
            padding: 12px 14px;
            border: 1px solid #e2e8f0;
            border-radius: 10px;
            font-size: 14px;
            color: #0f172a;
            background: #fff;
            font-family: 'Segoe UI', system-ui, sans-serif
        }

        .pd-share-copy-input:focus {
            outline: 0;
            border-color: #0ea5e9;
            box-shadow: 0 0 0 3px rgba(14, 165, 233, .1)
        }

        .pd-share-copy-btn {
            padding: 12px 20px;
            border: 0;
            border-radius: 10px;
            background: linear-gradient(135deg, #0ea5e9 0%, #0284c7 100%);
            color: #fff;
            font-size: 14px;
            font-weight: 600;
            cursor: pointer;
            transition: all .2s ease;
            white-space: nowrap;
            display: inline-flex;
            align-items: center;
            gap: 6px
        }

        .pd-share-copy-btn:hover {
            background: linear-gradient(135deg, #0284c7 0%, #0369a1 100%);
            transform: translateY(-1px);
            box-shadow: 0 4px 12px rgba(14, 165, 233, .3)
        }

        .pd-share-copy-btn:active {
            transform: translateY(0)
        }

        .pd-share-copy-btn svg {
            width: 16px;
            height: 16px
        }

        .pd-share-copy-btn.copied {
            background: linear-gradient(135deg, #22c55e 0%, #16a34a 100%);
            pointer-events: none
        }

        @media(max-width:640px) {
            .pd-share-modal {
                border-radius: 20px 20px 0 0;
                margin-top: auto;
                max-height: 85vh
            }

            .pd-share-grid {
                grid-template-columns: repeat(3, 1fr)
            }

            .pd-share-header {
                padding: 16px 20px
            }

            .pd-share-body {
                padding: 20px
            }

            .pd-share-btn {
                width: 36px;
                height: 36px
            }

            .pd-share-btn svg {
                width: 18px;
                height: 18px
            }
        }

        @media(max-width:480px) {
            .pd-share-grid {
                grid-template-columns: repeat(3, 1fr);
                gap: 10px
            }

            .pd-share-option {
                padding: 12px 6px
            }

            .pd-share-icon {
                width: 36px;
                height: 36px
            }

            .pd-share-icon svg {
                width: 20px;
                height: 20px
            }

            .pd-share-name {
                font-size: 11px
            }
        }

        .mf-share {
            background: #fff;
            color: #fb923c;
            border: 2px solid #fb923c;
            display: inline-flex;
            align-items: center;
            justify-content: center
        }

        .mf-share:active {
            transform: scale(.95)
        }

        .mf-share svg {
            display: block
        }

        @media(max-width:640px) {
            .pd-share-btn {
                display: none !important
            }
        }

        .stock-badge.in {
            background: #e6f9ec;
            color: #15803d;
            border-radius: 999px;
            padding: 4px 10px;
            font-weight: 700
        }

        .stock-badge.out {
            background: #fee2e2;
            color: #16c48d;
            border-radius: 999px;
            padding: 4px 10px;
            font-weight: 700
        }

        .stock-info-btn {
            --c: #0ea5e9;
            --b: #bae6fd;
            --bg: #f0f9ff;
            --bg-h: #e0f2fe;
            --b-h: #0ea5e9;
            margin-left: 0;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 0.5rem;
            padding: 4px 10px;
            border-radius: 999px;
            border: 1.5px solid var(--b);
            background: var(--bg);
            color: var(--c);
            cursor: pointer;
            font-size: 12px;
            font-weight: 600;
            transition: all .2s ease;
            -webkit-tap-highlight-color: transparent
        }

        .stock-info-btn:hover {
            background: var(--bg-h);
            border-color: var(--b-h);
            color: #0284c7;
            transform: translateY(-1px);
            box-shadow: 0 2px 8px rgba(14, 165, 233, .15)
        }

        .stock-info-btn:active {
            transform: translateY(0)
        }

        .stock-info-btn:focus-visible {
            outline: 0;
            box-shadow: 0 0 0 3px rgba(14, 165, 233, .2)
        }

        .stock-info-btn svg {
            width: 14px;
            height: 14px;
            flex-shrink: 0
        }

        .stock-info-btn .btn-text {
            white-space: nowrap
        }

        .stock-popover {
            position: absolute;
            z-index: 9999;
            min-width: 280px;
            max-width: 92vw;
            background: #0b1220;
            color: #eef3ff;
            border: 1px solid rgba(255, 255, 255, .08);
            border-radius: 14px;
            box-shadow: 0 20px 40px rgba(12, 12, 20, .45);
            padding: 12px 12px 8px;
            display: none
        }

        .stock-popover.show {
            display: block
        }

        .stock-popover::before {
            content: "";
            position: absolute;
            top: -8px;
            left: 24px;
            width: 14px;
            height: 14px;
            background: #0b1220;
            border-left: 1px solid rgba(255, 255, 255, .08);
            border-top: 1px solid rgba(255, 255, 255, .08);
            transform: rotate(45deg)
        }

        .sp-head {
            display: flex;
            align-items: center;
            justify-content: space-between;
            margin-bottom: 8px
        }

        .sp-title {
            font-weight: 800;
            font-size: 14px
        }

        .sp-close {
            background: transparent;
            border: 0;
            color: #98a2b3;
            cursor: pointer
        }

        .sp-list {
            list-style: none;
            margin: 0;
            padding: 0;
            display: flex;
            flex-direction: column;
            gap: 8px
        }

        .sp-item {
            display: grid;
            grid-template-columns: 1fr auto 32px;
            column-gap: 12px;
            align-items: center;
            padding: 10px 10px;
            min-height: 44px;
            border-radius: 10px;
            background: rgba(255, 255, 255, .03)
        }

        .sp-left {
            display: flex;
            align-items: center;
            gap: 10px
        }

        .sp-dot {
            width: 10px;
            height: 10px;
            border-radius: 999px;
            background: var(--dot, #60a5fa);
            display: inline-block
        }

        .sp-label {
            font-weight: 600;
            font-size: 13px
        }


        .sp-qty {
            grid-column: 2;
            justify-self: end;
            min-width: 40px;
            text-align: right;
            font-weight: 800;
            font-size: 13px;
            color: #cfe4ff;
            font-variant-numeric: tabular-nums
        }

        .sp-wa {
            grid-column: 3;
            justify-self: end;
            width: 32px;
            height: 32px;
            min-width: 32px;
            min-height: 32px;
            box-sizing: border-box;
            padding: 0;
            line-height: 0;
            text-decoration: none;
            outline: 0;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            border-radius: 999px;
            border: 1px solid rgba(37, 211, 102, .60);
            /* 1px untuk hasil “crisp” */
            background: rgba(37, 211, 102, .08);
            color: #25D366;
            transition: background-color .15s ease, border-color .15s ease, transform .05s ease;
            -webkit-tap-highlight-color: transparent;
        }

        .sp-wa:hover {
            background: rgba(37, 211, 102, .16);
            border-color: rgba(37, 211, 102, .75)
        }

        .sp-wa:active {
            transform: translateY(.5px) scale(.98)
        }

        .sp-wa svg {
            width: 18px;
            height: 18px;
            display: block;
            vertical-align: middle
        }

        .stock-popover a {
            text-decoration: none
        }

        #deskripsi img {
            max-width: 450px !important;
            height: unset !important
        }

        @media(max-width:640px) {
            .stock-popover {
                position: fixed;
                left: 0;
                right: 0;
                bottom: max(12px, env(safe-area-inset-bottom, 12px));
                margin: 0 10px;
                padding: 14px 12px 10px;
                border-radius: 16px
            }

            .stock-popover::before {
                display: none
            }

            .stock-info-btn {
                padding: 4px 8px;
                gap: 4px;
                border: 0;
                background: transparent
            }

            .stock-info-btn:hover {
                background: transparent;
                box-shadow: none;
                transform: none
            }

            .stock-info-btn .btn-text {
                display: none
            }

            .stock-info-btn svg {
                width: 16px;
                height: 16px
            }

            .sp-item {
                grid-template-columns: 1fr auto 36px
            }

            .sp-wa {
                width: 36px;
                height: 36px;
                min-width: 36px;
                min-height: 36px
            }

            .sp-wa svg {
                width: 19px;
                height: 19px
            }
        }

        .stock-dot {
            position: absolute;
            bottom: 8px;
            right: 8px;
            width: 8px;
            height: 8px;
            border-radius: 50%;
            box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);
            z-index: 2;
            cursor: help
        }

        .stock-dot.ready {
            background: #10b981
        }

        .stock-dot.low {
            background: #f59e0b
        }

        .stock-dot.out {
            background: #ef4444
        }

        .stock-dot:hover {
            transform: scale(1.2);
            transition: transform 0.2s ease
        }

        @media(max-width:640px) {
            .stock-dot {
                width: 7px;
                height: 7px;
                bottom: 6px;
                right: 6px
            }
        }

        .pd-related-card .spec-chips {
            font-size: 11px;
            color: #64748b;
            margin: 4px 0 6px 0;
            line-height: 1.3;
            font-weight: 500
        }

        .pd-related-card .spec-chips .spec-divider {
            margin: 0 4px;
            opacity: 0.6
        }

        @media(max-width:640px) {
            .pd-related-card .spec-chips {
                font-size: 10px;
                margin: 3px 0 5px 0
            }

            #deskripsi img {
                max-width: 300px !important;
                height: unset !important;
                justify-self: center !important
            }
        }

        .pwp-trigger-badge {
            display: inline-flex;
            align-items: center;
            gap: 4px;
            padding: 3px 8px 4px;
            background: linear-gradient(135deg, #fbbf24 0%, #f59e0b 100%);
            color: #78350f;
            border-radius: 6px;
            font-size: .65rem;
            font-weight: 600;
            border: 0
        }

        .pwp-trigger-badge svg {
            flex-shrink: 0;
            width: 12px;
            height: 12px
        }

        .pwp-deals-section {
            margin: 0;
            padding: 12px;
            background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%);
            border-radius: 12px;
            border: 2px solid #fbbf24
        }

        .pwp-deals-header {
            display: flex;
            gap: 10px;
            margin-bottom: 10px
        }

        .pwp-icon {
            flex-shrink: 0;
            color: #f59e0b;
            width: 18px;
            height: 18px
        }

        .pwp-text .pwp-title {
            margin: 0 0 2px 0;
            font-size: 14px;
            font-weight: 700;
            color: #78350f
        }

        .pwp-text .pwp-subtitle {
            margin: 0;
            font-size: 11px;
            color: #92400e;
            opacity: 0.9
        }

        .pwp-deals-loading {
            text-align: center;
            padding: 40px 0;
            color: #92400e
        }

        .pwp-spinner {
            width: 40px;
            height: 40px;
            border: 3px solid #fbbf24;
            border-top-color: #f59e0b;
            border-radius: 50%;
            animation: spin 0.8s linear infinite;
            margin: 0 auto 12px
        }

        @keyframes spin {
            to {
                transform: rotate(360deg)
            }
        }

        .pwp-deals-grid {
            display: flex;
            flex-direction: column;
            gap: 6px
        }

        .pwp-deal-card {
            background: #fff;
            border-radius: 6px;
            overflow: hidden;
            border: 1px solid #fbbf24;
            display: flex;
            align-items: center;
            padding: 8px;
            gap: 10px
        }

        .pwp-deal-card:hover {
            background: #fef3c7
        }

        .pwp-deal-thumb {
            flex-shrink: 0;
            width: 50px;
            height: 50px;
            background: #f8fafc;
            overflow: hidden;
            border-radius: 4px
        }

        .pwp-deal-thumb img {
            width: 100%;
            height: 100%;
            object-fit: cover
        }

        .pwp-deal-badge {
            background: #16c48d;
            color: #fff;
            padding: 2px 5px;
            border-radius: 3px;
            font-size: 9px;
            font-weight: 700;
            margin-left: auto
        }

        .pwp-deal-info {
            flex: 1;
            display: flex;
            flex-direction: column;
            gap: 4px
        }

        .pwp-deal-name {
            font-size: 12px;
            font-weight: 600;
            color: #0f172a;
            margin: 0;
            line-height: 1.2
        }

        .pwp-deal-prices {
            display: flex;
            align-items: center;
            gap: 6px;
            flex-wrap: wrap
        }

        .pwp-deal-price {
            font-size: 14px;
            font-weight: 800;
            color: #16c48d;
            white-space: nowrap
        }

        .pwp-deal-original {
            font-size: 11px;
            color: #64748b;
            text-decoration: line-through;
            white-space: nowrap
        }

        .pwp-cart-note {
            margin-top: 8px;
            padding: 6px 10px;
            background: #e0f2fe;
            border-left: 2px solid#0ea5e9;
            font-size: 11px;
            color: #0c4a6e;
            border-radius: 4px
        }

        @media(max-width:640px) {
            .pwp-deals-section {
                margin: 12px 0;
                padding: 10px;
                border-radius: 10px
            }

            .pwp-deals-header {
                gap: 8px
            }

            .pwp-text .pwp-title {
                font-size: 13px
            }

            .pwp-text .pwp-subtitle {
                font-size: 10px
            }

            .pwp-deal-card {
                padding: 6px;
                gap: 8px
            }

            .pwp-deal-thumb {
                width: 45px;
                height: 45px
            }

            .pwp-deal-name {
                font-size: 11px
            }

            .pwp-deal-price {
                font-size: 13px
            }

            .pwp-deal-original {
                font-size: 10px
            }
        }

        .preorder-badge {
            display: inline-flex;
            align-items: center;
            gap: 5px;
            padding: 6px 12px;
            background: linear-gradient(135deg, #8b5cf6 0%, #7c3aed 100%);
            color: #fff;
            border-radius: 8px;
            font-size: 13px;
            font-weight: 700;
            border: 0;
            box-shadow: 0 2px 8px rgba(139, 92, 246, .25)
        }

        .preorder-badge svg {
            width: 16px;
            height: 16px;
            flex-shrink: 0
        }

        .preorder-info {
            margin: 12px 0;
            padding: 14px;
            background: linear-gradient(135deg, #f5f3ff 0%, #ede9fe 100%);
            border: 1.5px solid #c4b5fd;
            border-radius: 12px
        }

        .preorder-info-header {
            display: flex;
            align-items: center;
            gap: 8px;
            margin-bottom: 10px
        }

        .preorder-info-icon {
            width: 20px;
            height: 20px;
            color: #7c3aed;
            flex-shrink: 0
        }

        .preorder-info-title {
            font-size: 14px;
            font-weight: 700;
            color: #5b21b6;
            margin: 0
        }

        .preorder-info-items {
            display: flex;
            flex-direction: column;
            gap: 8px
        }

        .preorder-info-row {
            display: flex;
            align-items: center;
            justify-content: space-between;
            font-size: 13px
        }

        .preorder-info-label {
            color: #6b21a8;
            font-weight: 600
        }

        .preorder-info-value {
            color: #5b21b6;
            font-weight: 700
        }

        .preorder-info-value.highlight {
            color: #16c48d;
            font-size: 14px
        }

        .preorder-info-note {
            margin-top: 10px;
            padding: 8px 10px;
            background: #fef3c7;
            border-left: 2px solid #f59e0b;
            font-size: 12px;
            color: #78350f;
            border-radius: 6px;
            line-height: 1.4
        }

        @media(max-width:640px) {
            .preorder-badge {
                font-size: 12px;
                padding: 5px 10px
            }

            .preorder-info {
                margin: 10px 0;
                padding: 12px
            }

            .preorder-info-title {
                font-size: 13px
            }

            .preorder-info-row {
                font-size: 12px
            }

            .preorder-info-note {
                font-size: 11px;
                padding: 6px 8px
            }
        }
    </style>

    <div class="pd-sticky-header" id="pd-sticky-header">
        <div class="pd-sticky-header-container">
            <div class="pd-sticky-thumb"><img
                    src="https://mcconnell-lab.org/aww5.png" alt="BUGISTOTO"
                    id="pd-sticky-thumb-img"></div>
            <div class="pd-sticky-info">
                <h2 class="pd-sticky-title" id="pd-sticky-title">BUGISTOTO situs terpercaya dengan minimal deposit Rp
                    5.000, </h2>
                <div class="pd-sticky-price-row"><span class="pd-sticky-price" id="pd-sticky-price">Rp
                        5.000,-</span><span class="pd-sticky-price-original" id="pd-sticky-price-original">Rp
                        1.000.000</span><span class="pd-sticky-discount" id="pd-sticky-discount">-99.5%</span></div>
            </div>
            <div class="pd-sticky-actions"><button type="button" class="pd-sticky-share-btn" id="pd-sticky-share-btn"
                    aria-label="Bagikan produk" title="Bagikan"><svg viewBox="0 0 24 24" width="16" height="16"
                        aria-hidden="true">
                        <path fill="currentColor"
                            d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81 1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9c-1.66 0-3 1.34-3 3s1.34 3 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.16c-.05.21-.08.43-.08.65 0 1.61 1.31 2.92 2.92 2.92s2.92-1.31 2.92-2.92-1.31-2.92-2.92-2.92z" />
                    </svg></button><button type="button" class="pd-sticky-btn pd-sticky-btn-chat"
                    id="pd-sticky-chat"><svg viewBox="0 0 640 640" fill="currentColor" aria-hidden="true">
                        <path
                            d="M320 128C241 128 175.3 185.3 162.3 260.7C171.6 257.7 181.6 256 192 256L208 256C234.5 256 256 277.5 256 304L256 400C256 426.5 234.5 448 208 448L192 448C139 448 96 405 96 352L96 288C96 164.3 196.3 64 320 64C443.7 64 544 164.3 544 288L544 456.1C544 522.4 490.2 576.1 423.9 576.1L336 576L304 576C277.5 576 256 554.5 256 528C256 501.5 277.5 480 304 480L336 480C362.5 480 384 501.5 384 528L384 528L424 528C463.8 528 496 495.8 496 456L496 435.1C481.9 443.3 465.5 447.9 448 447.9L432 447.9C405.5 447.9 384 426.4 384 399.9L384 303.9C384 277.4 405.5 255.9 432 255.9L448 255.9C458.4 255.9 468.3 257.5 477.7 260.6C464.7 185.3 399.1 127.9 320 127.9z" />
                    </svg>Tanya</button><button type="button" class="pd-sticky-btn pd-sticky-btn-cart"
                    id="pd-sticky-add-cart" disabled>+ Keranjang</button><button type="button"
                    class="pd-sticky-btn pd-sticky-btn-buy" id="pd-sticky-buy" disabled>Beli Sekarang</button></div>
        </div>
    </div>

    <main class="product-single product-single--v3">
        <nav class="pd-breadcrumb" aria-label="breadcrumb"><a
                href="https://almasar-umrah.com/contact">HOME</a><span>/</span><a
                href="https://almasar-umrah.com/contact">BUGISTOTO</a><span>/</span><a
                href="https://almasar-umrah.com/contact">SLOT
                GACOR</a><span>/</span><a href="https://almasar-umrah.com/contact">SLOT
                ONLINE</a><span>/</span><a href="https://almasar-umrah.com/contact">SLOT RESMI
            </a><span>/</span><span class="current">
                BUGISTOTO – Platform Informasi dan Komunitas Digital Online

            </span></nav>

        <div class="pd-top-layout">
            <section class="pd-media-card">
                <figure class="pd-main-image" id="pd-main-figure"><img id="pd-main-img"
                        src="https://mcconnell-lab.org/aww5.png"
                        alt="BUGISTOTO" data-slug="" loading="eager">
                </figure>

                <div class="pd-mobile-slider-wrapper">
                    <div class="pd-mobile-slider" id="pd-mobile-slider" aria-label="Galeri gambar (geser)">
                        <div class="pd-mslide"><img
                                src="https://mcconnell-lab.org/aww5.png"
                                alt="BUGISTOTO" loading="eager"></div>
                        <div class="pd-mslide"><img
                                src="https://mcconnell-lab.org/aww5.png"
                                alt="BUGISTOTO" loading="lazy"></div>
                        <div class="pd-mslide"><img
                                src="https://mcconnell-lab.org/aww5.png"
                                alt="BUGISTOTO" loading="lazy"></div>
                        <div class="pd-mslide"><img
                                src="https://mcconnell-lab.org/aww5.png"
                                alt="BUGISTOTO" loading="lazy"></div>
                        <div class="pd-mslide"><img
                                src="https://mcconnell-lab.org/aww5.png"
                                alt="BUGISTOTO" loading="lazy"></div>
                        <div class="pd-mslide"><img
                                src="https://mcconnell-lab.org/aww5.png"
                                alt="BUGISTOTO" loading="lazy"></div>
                    </div>
                    <div class="pd-gallery-counter" id="pd-gallery-counter">1/6</div>
                </div>
                <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://mcconnell-lab.org/aww5.png"
                        data-alt="BUGISTOTO" data-slug="" aria-label="Gambar 1"><img
                            src="https://mcconnell-lab.org/aww5.png"
                            alt="BUGISTOTO" loading="lazy"></button><button type="button" class="pd-thumb-btn "
                        data-full="https://mcconnell-lab.org/aww5.png"
                        data-alt="BUGISTOTO"
                        data-slug="https://mcconnell-lab.org/aww5.png"
                        aria-label="Gambar 2"><img
                            src="https://mcconnell-lab.org/aww5.png"
                            alt="BUGISTOTO" loading="lazy"></button><button type="button" class="pd-thumb-btn "
                        data-full="https://mcconnell-lab.org/aww5.png"
                        data-alt="BUGISTOTO"
                        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://mcconnell-lab.org/aww5.png"
                            alt="BUGISTOTO" loading="lazy"></button><button type="button" class="pd-thumb-btn "
                        data-full="https://mcconnell-lab.org/aww5.png"
                        data-alt="BUGISTOTO"
                        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://mcconnell-lab.org/aww5.png"
                            alt="BUGISTOTO" loading="lazy"></button><button type="button" class="pd-thumb-btn "
                        data-full="https://mcconnell-lab.org/aww5.png"
                        data-alt="BUGISTOTO"
                        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://mcconnell-lab.org/aww5.png"
                            alt="BUGISTOTO" loading="lazy"></button><button type="button" class="pd-thumb-btn "
                        data-full="https://mcconnell-lab.org/aww5.png"
                        data-alt="BUGISTOTO"
                        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://mcconnell-lab.org/aww5.png"
                            alt="BUGISTOTO" loading="lazy"></button></div>
            </section>
            <section class="pd-info-card">
                <div id="pd-variant-combined" class="pd-variant-combined" hidden></div>
                <div class="pd-title-row">
                    <h2 class="pd-title" id="pd-title">BUGISTOTO – Platform Informasi dan Komunitas Digital Online</h2>
                    <button type="button" class="pd-share-btn" id="pd-share-btn" aria-label="Bagikan produk"
                        title="Bagikan"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true">
                            <path fill="currentColor"
                                d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81 1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9c-1.66 0-3 1.34-3 3s1.34 3 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.16c-.05.21-.08.43-.08.65 0 1.61 1.31 2.92 2.92 2.92s2.92-1.31 2.92-2.92-1.31-2.92-2.92-2.92z" />
                        </svg></button>
                </div>
                <div id="pd-price-anchor">
                </div>
                <div class="pd-price-qr-container">
                    <div class="pd-price-block" id="pd-price-block">
                        <div class="pd-price-row">
                            <span class="pd-price-current" id="pd-price-current">Rp 5.000</span>
                            <span class="pd-price-original" id="pd-price-original">Rp 100.000</span>
                            <span class="pd-discount-badge" id="pd-discount-badge">-95%</span>
                        </div>
                        <div class="pd-meta-row">
                            <span class="sold-inline" id="pd-sold-inline" data-role="sold-chip">Terjual Terjual 2</span>
                            <span class="pwp-trigger-badge" id="pwp-trigger-badge" hidden>
                                <svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor">
                                    <path
                                        d="M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z" />
                                </svg>Bisa PWP</span>
                        </div>
                        <div class="pd-meta-inline"><span class="stock-badge out" id="pd-stock-badge">BUGISTOTO</span>
                            <span class="sku">SKU: <span id="pd-sku">1S83N0880RID</span></span>
                        </div>
                        <div class="paylater-promo paylater-promo-sm paylater-mobile-only">
                            <span class="paylater-icon">💳</span>
                            <span class="paylater-text">
                                <strong>Autorized Situs TOto</strong>
                                <small>Situs TOto BUGISTOTO</small>
                            </span>
                        </div>

                        <div class="stock-popover" id="pd-stock-popover" role="dialog" aria-hidden="true"
                            aria-label="Informasi stok cabang">
                            <div class="sp-head">
                                <div class="sp-title">Stok Cabang</div><button type="button" class="sp-close"
                                    id="pd-stock-popover-close" aria-label="Tutup"><svg width="18" height="18"
                                        viewBox="0 0 24 24">
                                        <path fill="currentColor"
                                            d="M18.3 5.71L12 12.01l-6.3-6.3-1.4 1.41 6.3 6.3-6.3 6.3 1.4 1.41 6.3-6.3 6.3 6.3 1.41-1.41-6.3-6.3 6.3-6.3z" />
                                    </svg></button>
                            </div>
                            <ul class="sp-list">
                                <li class="sp-item">
                                    <div class="sp-left"><span class="sp-dot" style="--dot:#60a5fa;"></span><span
                                            class="sp-label">Asia Mega Mas</span></div><span class="sp-qty"
                                        id="sp-qty-meg">0</span><a class="sp-wa"
                                        href="https://wa.me/6281380009898?text=Halo%2C%20saya%20ingin%20tanya%20stok%20di%20Asia%20Mega%20Mas%20untuk%20produk%20https%3A%2F%2Fplazait.co.id%2Fproduct%2Flenovo-legion-go-8asp2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-black"
                                        target="_blank" rel="noopener" aria-label="WhatsApp Asia Mega Mas"><svg
                                            class="ico-wa" viewBox="0 0 24 24" aria-hidden="true" focusable="false">
                                            <path fill="currentColor"
                                                d="M17.472 14.382c-.297-.149-1.758-.867-2.029-.967-.273-.099-.471-.148-.669.149-.198.297-.767.966-.94 1.164-.173.198-.347.223-.644.074-.297-.149-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.297-.347.446-.52.149-.173.198-.297.298-.495.099-.198.05-.372-.025-.521-.075-.149-.669-1.612-.916-2.206-.242-.579-.487-.5-.669-.51l-.57-.01c-.198 0-.52.074-.792.372s-1.04 1.016-1.04 2.479 1.065 2.876 1.213 3.074c.149.198 2.095 3.2 5.076 4.487.709.306 1.262.489 1.694.626.712.226 1.36.194 1.872.118.571-.085 1.758-.718 2.006-1.411.248-.694.248-1.29.173-1.411-.074-.123-.272-.198-.57-.347m-5.421 7.403h-.002a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.263c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.887 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.158 11.892c0 2.096.547 4.142 1.588 5.945L0 24l6.305-1.654a11.86 11.86 0 005.67 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.485-8.413" />
                                        </svg></a>
                                </li>

                                <li class="sp-item">
                                    <div class="sp-left">
                                        <span class="sp-dot" style="--dot:#34d399;"></span>
                                        <span class="sp-label">Medan Fair</span>
                                    </div>
                                    <span class="sp-qty" id="sp-qty-mdf">0</span>
                                    <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">
                                        <svg class="ico-wa" viewBox="0 0 24 24" aria-hidden="true" focusable="false">
                                            <path fill="currentColor"
                                                d="M17.472 14.382c-.297-.149-1.758-.867-2.029-.967-.273-.099-.471-.148-.669.149-.198.297-.767.966-.94 1.164-.173.198-.347.223-.644.074-.297-.149-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.297-.347.446-.52.149-.173.198-.297.298-.495.099-.198.05-.372-.025-.521-.075-.149-.669-1.612-.916-2.206-.242-.579-.487-.5-.669-.51l-.57-.01c-.198 0-.52.074-.792.372s-1.04 1.016-1.04 2.479 1.065 2.876 1.213 3.074c.149.198 2.095 3.2 5.076 4.487.709.306 1.262.489 1.694.626.712.226 1.36.194 1.872.118.571-.085 1.758-.718 2.006-1.411.248-.694.248-1.29.173-1.411-.074-.123-.272-.198-.57-.347m-5.421 7.403h-.002a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.263c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.887 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.158 11.892c0 2.096.547 4.142 1.588 5.945L0 24l6.305-1.654a11.86 11.86 0 005.67 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.485-8.413" />
                                        </svg>
                                    </a>
                                </li>

                                <li class="sp-item">
                                    <div class="sp-left">
                                        <span class="sp-dot" style="--dot:#f59e0b;"></span>
                                        <span class="sp-label">Banda Aceh</span>
                                    </div>
                                    <span class="sp-qty" id="sp-qty-bda">0</span>
                                    <a class="sp-wa"
                                        href="https://wa.me/628116833411?text=Halo%2C%20saya%20ingin%20tanya%20stok%20di%20Banda%20Aceh%20untuk%20produk%20https%3A%2F%2Fplazait.co.id%2Fproduct%2Flenovo-legion-go-8asp2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-black"
                                        target="_blank" rel="noopener" aria-label="WhatsApp Banda Aceh">
                                        <svg class="ico-wa" viewBox="0 0 24 24" aria-hidden="true" focusable="false">
                                            <path fill="currentColor"
                                                d="M17.472 14.382c-.297-.149-1.758-.867-2.029-.967-.273-.099-.471-.148-.669.149-.198.297-.767.966-.94 1.164-.173.198-.347.223-.644.074-.297-.149-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.297-.347.446-.52.149-.173.198-.297.298-.495.099-.198.05-.372-.025-.521-.075-.149-.669-1.612-.916-2.206-.242-.579-.487-.5-.669-.51l-.57-.01c-.198 0-.52.074-.792.372s-1.04 1.016-1.04 2.479 1.065 2.876 1.213 3.074c.149.198 2.095 3.2 5.076 4.487.709.306 1.262.489 1.694.626.712.226 1.36.194 1.872.118.571-.085 1.758-.718 2.006-1.411.248-.694.248-1.29.173-1.411-.074-.123-.272-.198-.57-.347m-5.421 7.403h-.002a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.263c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.887 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.158 11.892c0 2.096.547 4.142 1.588 5.945L0 24l6.305-1.654a11.86 11.86 0 005.67 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.485-8.413" />
                                        </svg>
                                    </a>
                                </li>
                            </ul>
                        </div>

                    </div>
                    <div class="pd-qr-print" style="display:none;">
                        <div class="pd-qr-label">Scan untuk lihat produk:</div><img
                            src="https://api.qrserver.com/v1/create-qr-code/?size=120x120&data=https%3A%2F%2Fplazait.co.id%2Fproduct%2Flenovo-legion-go-8asp2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-black"
                            alt="QR Code" class="pd-qr-image">
                    </div>
                </div>
                <div id="pd-variants-anchor"></div>



                <div class="pd-compare-section">
                    <button type="button" class="pd-compare-btn" id="pd-compare-btn" data-product-id="325">
                        <svg class="compare-icon" width="18" height="18" viewBox="0 0 24 24" fill="currentColor">
                            <path d="M21,9L17,5V8H10V10H17V13M7,11L3,15L7,19V16H14V14H7V11Z" />
                        </svg>
                        <span class="compare-text">Bandingkan Produk</span>
                        <span class="compare-remove" hidden>
                            <svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor">
                                <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" />
                            </svg>
                            Hapus dari Perbandingan
                        </span>
                    </button>
                    <div class="pd-compare-info">
                        <small class="compare-note" id="compare-note">Bandingkan hingga 5 produk dengan bantuan
                            AI</small>
                    </div>
                </div>

                <div class="pd-short-desc">
                    <p><strong>Informasi BUGISTOTO:</strong></p>
                    <ul>
                        <li>Minimal Deposit: Rp.5.000,-</li>
                        <li>Jenis Permainan: Slot Online</li>
                        <li>Metode Pembayaran: Bank, QRIS, E-Wallet</li>
                        <li>Mata Uang: IDR (Indonesian Rupiah)</li>
                        <li>Jam Operasional: 24 Jam Nonstop</li>
                        <li>Total Rating: 531.999.999</li>
                        <li>Rating: ⭐⭐⭐⭐⭐</li>
                        <li>Daftar Sekarang: <a href="https://satupintakunaikajah1.pages.dev/">Klik
                                Disini</a></li>
                    </ul>
                </div>
                <div class="togel-container-v3 mini">
                    <div class="togel-machine-v3">
                        <h2 class="togel-title-v3">🎯 PREDIKSI TOGEL RESMI (SIMULASI) 🎯</h2>

                        <div class="togel-controls-v3">
                            <label>
                                PASARAN
                                <select id="marketFilter">
                                    <option value="ALL">ALL PASARAN</option>
                                </select>
                            </label>

                            <label>
                                TIPE
                                <select id="typeFilter">
                                    <option value="4D">4D</option>
                                    <option value="3D">3D</option>
                                    <option value="2D">2D</option>
                                </select>
                            </label>

                            <label>
                                MIN CONF
                                <input id="minConf" type="number" min="50" max="99" step="1" value="70">
                            </label>

                            <button id="btnTogelRandom" type="button">
                                <span class="icon">🎲</span> GENERATE
                            </button>
                        </div>

                        <div class="togel-main-result-v3" id="togelResult">
                            <div class="togel-status-v3" id="togelStatus">— READY —</div>

                            <div class="togel-highlight-box">
                                <div class="togel-col-left">
                                    <div class="k">Pasaran Rekomendasi</div>
                                    <div class="v-game" id="rMarket">-</div>

                                    <div class="provider-info">
                                        <span class="k-small">Tipe:</span>
                                        <span class="v-small" id="rType">-</span>
                                        <span class="k-small" style="margin-left:10px;">Conf:</span>
                                        <span class="v-small" id="rConf">-</span>
                                    </div>
                                </div>

                                <div class="togel-col-right">
                                    <div class="k-rtp">Angka Utama</div>
                                    <div class="v-rtp-huge" id="rAngka">-</div>
                                </div>
                            </div>

                            <div class="togel-details-v3">
                                <div class="togel-detail-item">
                                    <div class="k-detail">BBFS</div>
                                    <div class="v-detail" id="rBBFS">-</div>
                                </div>
                                <div class="togel-detail-item">
                                    <div class="k-detail">Angka Ikut</div>
                                    <div class="v-detail" id="rIkut">-</div>
                                </div>
                                <div class="togel-detail-item">
                                    <div class="k-detail">Shio</div>
                                    <div class="v-detail" id="rShio">-</div>
                                </div>
                            </div>

                            <div class="togel-tip-v3" id="rTip">
                                Tips: Ini simulasi hiburan. Tetap bijak & disiplin.
                            </div>
                        </div>

                        <div class="togel-alts-v3">
                            <div class="togel-alts-title-v3">3 Alternatif Angka</div>
                            <div class="togel-alt-list-v3" id="togelAltList"></div>
                        </div>

                        <div class="togel-note-v3">
                            Disclaimer: Hasil di halaman ini random (simulasi), bukan acuan hasil resmi.
                        </div>
                    </div>
                </div>

                <style>
                    @import url("https://fonts.googleapis.com/css2?family=Orbitron:wght@600;700;800&display=swap");

                    /* ===============================
   WRAPPER
================================ */
                    .togel-container-v3 {
                        display: flex;
                        justify-content: center;
                        padding: 16px 10px;
                        font-family: "Orbitron", "Poppins", system-ui, sans-serif;
                    }

                    /* ===============================
   MACHINE CORE (RED ELEGANT)
================================ */
                    .togel-machine-v3 {
                        position: relative;
                        width: 100%;
                        max-width: 520px;
                        padding: 16px;
                        border-radius: 16px;
                        overflow: hidden;
                        isolation: isolate;
                        background: radial-gradient(circle at 15% 0%, rgba(255, 80, 80, 0.16), transparent 48%), radial-gradient(circle at 85% 100%, rgba(180, 0, 0, 0.18), transparent 55%), linear-gradient(123deg, #ffffff00, #0b0000);
                        border: 1px solid rgba(255, 60, 60, 0.55);
                        box-shadow: inset 0 0 18px rgba(255, 60, 60, 0.25), 0 0 18px rgba(255, 30, 30, 0.35);
                        color: #000000;
                    }

                    /* HUD SWEEP */
                    .togel-machine-v3::before {
                        content: "";
                        position: absolute;
                        inset: 0;
                        background: linear-gradient(120deg, transparent 40%, rgba(255, 0, 0, .10), transparent 65%);
                        animation: hudSweep 7s linear infinite;
                        pointer-events: none;
                        opacity: .8;
                    }

                    /* ===============================
   TITLE
================================ */
                    .togel-title-v3 {
                        text-align: center;
                        margin: 0 0 12px;
                        font-size: 15px;
                        font-weight: 900;
                        letter-spacing: 1px;
                        text-shadow: 0 0 6px rgba(255, 60, 60, 0.9);
                    }

                    /* ===============================
   CONTROLS
================================ */
                    .togel-controls-v3 {
                        display: grid;
                        grid-template-columns: 1fr 1fr;
                        gap: 10px;
                        padding: 12px;
                        border-radius: 14px;

                        background: rgba(0, 0, 0, 0.4);
                        border: 1px solid rgba(255, 60, 60, 0.45);
                        box-shadow: inset 0 0 14px rgba(255, 40, 40, 0.22);
                    }

                    .togel-controls-v3 label {
                        display: grid;
                        gap: 6px;
                        font-size: 10px;
                        letter-spacing: .8px;
                        text-transform: uppercase;
                        color: #ff9b9b;
                    }

                    .togel-controls-v3 select,
                    .togel-controls-v3 input {
                        background: rgba(30, 0, 0, 0.92);
                        color: #ffecec;
                        border: 1px solid rgba(255, 60, 60, 0.55);
                        border-radius: 10px;
                        padding: 7px 9px;
                        font-weight: 700;
                        font-size: 12px;
                        outline: none;
                        box-shadow: inset 0 0 10px rgba(255, 0, 0, .20);
                    }

                    /* BUTTON */
                    #btnTogelRandom {
                        grid-column: span 2;
                        display: flex;
                        align-items: center;
                        justify-content: center;
                        gap: 8px;

                        background: linear-gradient(145deg, #16c48d, #16c48d);
                        border: none;
                        color: #1a0000;
                        font-weight: 900;
                        letter-spacing: .8px;
                        border-radius: 14px;
                        cursor: pointer;
                        padding: 10px 12px;
                        font-size: 12px;

                        box-shadow: 0 0 16px rgba(255, 40, 40, 0.75);
                        transition: .2s ease;
                    }

                    #btnTogelRandom:active {
                        transform: scale(.98);
                    }

                    #btnTogelRandom:disabled {
                        opacity: .75;
                        cursor: not-allowed;
                    }

                    /* ===============================
   MAIN RESULT
================================ */
                    .togel-main-result-v3 {
                        margin-top: 12px;
                        padding: 12px;
                        border-radius: 14px;

                        background: rgba(30, 0, 0, 0.78);
                        border: 1px solid rgba(255, 60, 60, 0.35);
                        box-shadow: inset 0 0 16px rgba(255, 50, 50, 0.25);
                    }

                    .togel-status-v3 {
                        text-align: center;
                        font-weight: 800;
                        letter-spacing: .8px;
                        color: #ffb3b3;
                        margin-bottom: 10px;
                        font-size: 11px;
                    }

                    .togel-highlight-box {
                        display: flex;
                        justify-content: space-between;
                        gap: 12px;
                        padding-bottom: 10px;
                        margin-bottom: 10px;
                        border-bottom: 1px dashed rgba(255, 80, 80, 0.3);
                    }

                    .k,
                    .k-rtp {
                        font-size: 10px;
                        color: #ff8f8f;
                        text-transform: uppercase;
                    }

                    .v-game {
                        font-size: 14px;
                        font-weight: 900;
                        color: #ffffff;
                        margin-top: 6px;
                        line-height: 1.2;
                    }

                    .provider-info {
                        margin-top: 8px;
                        font-size: 11px;
                        color: #ffd0d0;
                        opacity: .95;
                    }

                    .k-small {
                        color: #ffb3b3;
                        font-size: 10px;
                    }

                    .v-small {
                        color: #fff0f0;
                        font-weight: 900;
                    }

                    .v-rtp-huge {
                        font-size: 2.4em;
                        font-weight: 900;
                        color: #16c48d;
                        text-shadow: 0 0 10px rgba(255, 0, 0, 0.7);
                        line-height: 1;
                        letter-spacing: 1px;
                    }

                    /* DETAILS */
                    .togel-details-v3 {
                        display: grid;
                        grid-template-columns: repeat(3, 1fr);
                        gap: 8px;
                        background: rgba(0, 0, 0, .30);
                        padding: 10px;
                        border-radius: 12px;
                    }

                    .k-detail {
                        font-size: 9px;
                        color: #ff9b9b;
                        text-transform: uppercase;
                    }

                    .v-detail {
                        font-size: 12px;
                        font-weight: 800;
                        color: #ffffff;
                        margin-top: 4px;
                        letter-spacing: .8px;
                    }

                    .togel-tip-v3 {
                        margin-top: 10px;
                        font-size: 10px;
                        color: #ffd0d0;
                        opacity: .9;
                        text-align: center;
                    }

                    /* ALTS */
                    .togel-alts-v3 {
                        margin-top: 12px;
                        padding: 12px;
                        border-radius: 14px;
                        background: rgba(0, 0, 0, .40);
                        border: 1px solid rgba(255, 60, 60, 0.35);
                    }

                    .togel-alts-title-v3 {
                        font-weight: 900;
                        color: #ffb3b3;
                        margin-bottom: 10px;
                        font-size: 12px;
                    }

                    .togel-alt-list-v3 {
                        display: grid;
                        grid-template-columns: 1fr;
                        gap: 8px;
                    }

                    .togel-alt-item {
                        background: rgba(30, 0, 0, .86);
                        border-radius: 12px;
                        padding: 10px;
                        border-left: 3px solid rgba(255, 60, 60, 0.9);
                    }

                    .togel-alt-item .g {
                        font-weight: 900;
                        color: #ffecec;
                        font-size: 12px;
                    }

                    .togel-alt-item .p {
                        font-size: 10px;
                        color: #ffb3b3;
                        margin-top: 4px;
                    }

                    .togel-alt-item .r {
                        margin-top: 6px;
                        font-weight: 900;
                        color: #16c48d;
                        letter-spacing: .8px;
                        font-size: 12px;
                    }

                    .togel-note-v3 {
                        margin-top: 10px;
                        font-size: 10px;
                        color: #ffd0d0;
                        opacity: .85;
                        text-align: center;
                    }

                    /* MOBILE */
                    @media(max-width:420px) {
                        .togel-highlight-box {
                            flex-direction: column
                        }

                        .togel-details-v3 {
                            grid-template-columns: 1fr
                        }
                    }

                    /* ANIM */
                    @keyframes hudSweep {
                        0% {
                            transform: translateX(-110%)
                        }

                        100% {
                            transform: translateX(110%)
                        }
                    }

                    @keyframes pulse {
                        0% {
                            opacity: .55
                        }

                        50% {
                            opacity: 1
                        }

                        100% {
                            opacity: .55
                        }
                    }
                </style>

                <script>
                    /* ===============================
                       DATASET TOGEL (SIMULASI)
                    ================================ */
                    const TOGEL_MARKETS = [
                        { market: "Singapore", code: "SGP", open: "17:45", zone: "WIB" },
                        { market: "Hongkong", code: "HK", open: "22:45", zone: "WIB" },
                        { market: "Sydney", code: "SDY", open: "13:45", zone: "WIB" },
                        { market: "Macau", code: "MC", open: "16:00", zone: "WIB" },
                        { market: "Cambodia", code: "KHM", open: "10:45", zone: "WIB" },
                        { market: "Japan", code: "JP", open: "11:30", zone: "WIB" }
                    ];

                    const SHIO = ["Tikus", "Kerbau", "Macan", "Kelinci", "Naga", "Ular", "Kuda", "Kambing", "Monyet", "Ayam", "Anjing", "Babi"];

                    const $ = (q) => document.querySelector(q);
                    const randInt = (min, max) => Math.floor(Math.random() * (max - min + 1)) + min;

                    function uniqueMarkets() {
                        return TOGEL_MARKETS.map(m => m.market);
                    }

                    function genDigits(len) {
                        let s = "";
                        for (let i = 0; i < len; i++) s += String(randInt(0, 9));
                        return s;
                    }

                    function genBBFS() {
                        const pool = [...Array(10)].map((_, i) => i);
                        const out = [];
                        for (let i = 0; i < 7; i++) {
                            const idx = randInt(0, pool.length - 1);
                            out.push(pool.splice(idx, 1)[0]);
                        }
                        return out.join("");
                    }

                    function genIkut() {
                        const pool = [...Array(10)].map((_, i) => i);
                        const out = [];
                        for (let i = 0; i < 4; i++) {
                            const idx = randInt(0, pool.length - 1);
                            out.push(pool.splice(idx, 1)[0]);
                        }
                        return out.join(" • ");
                    }

                    function simulateConfidence() {
                        return randInt(60, 96);
                    }

                    function applyFilters() {
                        const m = $("#marketFilter").value;
                        const minC = parseFloat($("#minConf").value || "0");

                        return TOGEL_MARKETS
                            .filter(x => (m === "ALL" || x.market === m))
                            .map(x => ({ ...x, conf: simulateConfidence() }))
                            .filter(x => x.conf >= minC);
                    }

                    function pickRandom(arr, n = 1) {
                        const copy = [...arr];
                        const out = [];
                        for (let i = 0; i < n && copy.length; i++) {
                            const idx = randInt(0, copy.length - 1);
                            out.push(copy.splice(idx, 1)[0]);
                        }
                        return out;
                    }

                    function formatAngka(type) {
                        if (type === "4D") return genDigits(4);
                        if (type === "3D") return genDigits(3);
                        return genDigits(2);
                    }

                    function renderMain(item, type) {
                        $("#rMarket").textContent = `${item.market} (${item.code}) • Open ${item.open} ${item.zone}`;
                        $("#rType").textContent = type;
                        $("#rConf").textContent = `${item.conf}%`;

                        $("#rAngka").textContent = formatAngka(type);
                        $("#rBBFS").textContent = genBBFS();
                        $("#rIkut").textContent = genIkut();
                        $("#rShio").textContent = SHIO[randInt(0, SHIO.length - 1)];
                        $("#rTip").textContent = "Tips: Ini simulasi hiburan. Tetap bijak & disiplin.";
                    }

                    function renderAlts(list, type) {
                        const wrap = $("#togelAltList");
                        wrap.innerHTML = "";
                        list.forEach(x => {
                            const el = document.createElement("div");
                            el.className = "togel-alt-item";
                            el.innerHTML = `
      <div class="g">${x.market} (${x.code})</div>
      <div class="p">Tipe ${type} • Conf <strong>${x.conf}%</strong></div>
      <div class="r">Angka: <strong>${formatAngka(type)}</strong></div>
    `;
                            wrap.appendChild(el);
                        });
                    }

                    function spinButton(btn, on) {
                        if (on) {
                            btn.disabled = true;
                            btn.dataset.text = btn.innerHTML;
                            btn.innerHTML = `<span class="icon">🔄</span> PROCESS...`;
                        } else {
                            btn.disabled = false;
                            btn.innerHTML = btn.dataset.text || `<span class="icon">🎲</span> GENERATE`;
                        }
                    }

                    /* ===============================
                       INIT
                    ================================ */
                    (function init() {
                        const sel = $("#marketFilter");
                        uniqueMarkets().forEach(m => {
                            const o = document.createElement("option");
                            o.value = m; o.textContent = m;
                            sel.appendChild(o);
                        });

                        $("#btnTogelRandom").addEventListener("click", (e) => {
                            const btn = e.currentTarget;
                            const type = $("#typeFilter").value;
                            const filtered = applyFilters();
                            const st = $("#togelStatus");

                            if (!filtered.length) {
                                st.textContent = "— NO MATCH —";
                                st.style.color = "white";
                                renderAlts([], type);
                                $("#rMarket").textContent = "-";
                                $("#rType").textContent = type;
                                $("#rConf").textContent = "-";
                                $("#rAngka").textContent = "-";
                                $("#rBBFS").textContent = "-";
                                $("#rIkut").textContent = "-";
                                $("#rShio").textContent = "-";
                                return;
                            }

                            spinButton(btn, true);
                            st.textContent = "— GENERATING —";
                            st.style.animation = "pulse .6s linear infinite";
                            st.style.color = "white";

                            const t0 = setInterval(() => {
                                const temp = pickRandom(filtered, 1)[0];
                                $("#rMarket").textContent = `${temp.market} (${temp.code}) • Open ${temp.open} ${temp.zone}`;
                                $("#rType").textContent = type;
                                $("#rConf").textContent = `${temp.conf}%`;
                                $("#rAngka").textContent = formatAngka(type);
                                $("#rBBFS").textContent = genBBFS();
                                $("#rIkut").textContent = genIkut();
                                $("#rShio").textContent = SHIO[randInt(0, SHIO.length - 1)];
                            }, 85);

                            setTimeout(() => {
                                clearInterval(t0);

                                const picks = pickRandom(filtered, 4);
                                renderMain(picks[0], type);
                                renderAlts(picks.slice(1), type);

                                st.textContent = "— READY —";
                                st.style.animation = "";
                                st.style.color = "gold";
                                spinButton(btn, false);
                            }, 1200);
                        });

                        renderAlts([], "4D");
                    })();
                </script>



                <div class="pwp-deals-section" id="pwp-deals-section" hidden data-product-id="325" data-variant-id="0"
                    data-category-path="Komputer &amp; Laptop/Laptop/Gaming">
                    <div class="pwp-deals-header"><svg class="pwp-icon" width="20" height="20" viewBox="0 0 24 24"
                            fill="currentColor">
                            <path
                                d="M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z" />
                        </svg>
                        <div class="pwp-text">
                            <h3 class="pwp-title">Penawaran Spesial PWP (Purchase with Purchase)</h3>
                            <p class="pwp-subtitle">Beli produk ini dan dapatkan produk pilihan dengan harga spesial</p>
                        </div>
                    </div>
                    <div class="pwp-deals-loading">
                        <div class="pwp-spinner"></div>
                        <p>Memuat penawaran...</p>
                    </div>
                    <div class="pwp-deals-grid" id="pwp-deals-grid"></div>
                    <p class="pwp-cart-note">💡 Produk PWP dapat ditambahkan di halaman keranjang setelah produk ini
                        dimasukkan</p>
                </div>
            </section>

            <aside class="pd-sidebar">
                <div class="pd-side-card pd-buy-card">
                    <form class="pd-buy-form" id="pd-buy-form" data-pid="325">
                        <input type="hidden" name="variant_id" id="pd-variant-id" value="0">
                        <div>
                            <label for="qty" class="qty-label">Qty</label>
                            <input type="number" id="qty" name="qty" value="0" min="1" max="0" disabled>
                        </div>
                        <div class="pd-actions">
                            <button type="submit" class="btn-add-cart" id="btn-add-cart" disabled>+ Keranjang</button>
                            <button type="button" class="btn-buy" id="btn-buy" data-id="278426" disabled>Beli</button>
                            <button type="button" class="btn-chat-icon" id="btn-chat-icon" aria-label="Tanya Produk"
                                title="Tanya Produk"><svg viewBox="0 0 640 640" fill="currentColor">
                                    <path
                                        d="M320 128C241 128 175.3 185.3 162.3 260.7C171.6 257.7 181.6 256 192 256L208 256C234.5 256 256 277.5 256 304L256 400C256 426.5 234.5 448 208 448L192 448C139 448 96 405 96 352L96 288C96 164.3 196.3 64 320 64C443.7 64 544 164.3 544 288L544 456.1C544 522.4 490.2 576.1 423.9 576.1L336 576L304 576C277.5 576 256 554.5 256 528C256 501.5 277.5 480 304 480L336 480C362.5 480 384 501.5 384 528L384 528L424 528C463.8 528 496 495.8 496 456L496 435.1C481.9 443.3 465.5 447.9 448 447.9L432 447.9C405.5 447.9 384 426.4 384 399.9L384 303.9C384 277.4 405.5 255.9 432 255.9L448 255.9C458.4 255.9 468.3 257.5 477.7 260.6C464.7 185.3 399.1 127.9 320 127.9z" />
                                </svg></button>
                        </div>
                    </form>
                    <div class="paylater-promo paylater-promo-md paylater-desktop-only">
                        <span class="paylater-icon">💳</span>
                        <span class="paylater-text">
                            <strong>Autorized Link Togel</strong>
                            <small>Link Login BUGISTOTO</small>
                        </span>
                    </div>
                </div>


                <div class="pd-side-card qoala-banner-card">
                    <div class="qoala-banner">
                        <div class="qoala-banner-content">
                            <div class="qoala-icon">
                                <center><img
                                        src="https://mcconnell-lab.org/icon.webp"
                                        alt="BUGISTOTO" class="qoala-shield-img"></center>
                            </div>
                            <div class="qoala-text">
                                <div class="qoala-title">Login BUGISTOTO</div>
                                <div class="qoala-subtitle">Verified</div>
                            </div>
                        </div>
                        <a href="https://almasar-umrah.com/contact" class="qoala-cta"
                            data-ga-event="qoala_banner_click" data-product-id="325" data-product-name="BUGISTOTO"
                            data-category-path="Komputer &amp; Laptop/Laptop/Gaming" target="_blank">Info</a>
                    </div>
                    <style>
                        .qoala-banner-card {
                            padding: 0;
                            overflow: hidden
                        }

                        .qoala-banner {
                            background: linear-gradient(135deg, #16c48d 0%, #8b0000 100%);
                            padding: 12px 16px;
                            display: flex;
                            align-items: center;
                            justify-content: space-between;
                            color: white;
                            text-decoration: none;
                            min-height: 60px;
                        }

                        .qoala-banner-content {
                            display: flex;
                            align-items: center;
                            gap: 12px;
                        }

                        .qoala-icon {
                            display: flex;
                            align-items: center;
                            justify-content: center;
                        }

                        .qoala-shield-img {
                            width: 36px;
                            height: 36px;
                            object-fit: contain;
                            opacity: 0.9;
                        }

                        .qoala-title {
                            font-weight: 600;
                            font-size: 14px;
                            line-height: 1.2;
                        }

                        .qoala-subtitle {
                            font-size: 12px;
                            opacity: 0.9;
                            line-height: 1.2;
                        }

                        .qoala-cta {
                            background: rgba(255, 255, 255, 0.15);
                            color: white;
                            padding: 6px 12px;
                            border-radius: 6px;
                            font-size: 12px;
                            font-weight: 600;
                            text-decoration: none;
                            transition: background 0.2s ease;
                            border: 1px solid rgba(255, 80, 80, 0.4);
                        }

                        .qoala-cta:hover {
                            background: rgba(255, 60, 60, 0.25);
                            color: white;
                        }

                        @media(max-width:768px) {
                            .qoala-banner {
                                padding: 10px 12px
                            }

                            .qoala-title {
                                font-size: 17px
                            }

                            .qoala-subtitle {
                                font-size: 11px
                            }
                        }
                    </style>
                </div>

                <div class="pd-side-card pd-installment-card2" id="inst-card" data-base-price="20789000"
                    data-zero-smart="0">
                    <div class="inst-head">
                        <h3>Promo & Fitur BUGISTOTO</h3>
                    </div>

                    <div class="inst-bank-tabs" role="tablist" aria-label="Bank">
                        <button type="button" class="bank-tab active" data-bank="Lucky Draw" aria-selected="true">Lucky
                            Draw</button>
                        <button type="button" class="bank-tab" data-bank="Lomba Panjat Turnover"
                            aria-selected="false">Lomba Panjat Turnover</button>
                        <button type="button" class="bank-tab" data-bank="Prediksi Togel" aria-selected="false">Prediksi
                            Togel</button>
                    </div>

                    <ul class="inst-month-list" id="inst-month-list" aria-label="Daftar cicilan per bulan"></ul>
                    <div class="inst-note" id="inst-zero-note" style="display:none;">0% Cicilan khusus bank terpilih*
                    </div>
                    <div class="inst-disclaimer">Angka estimasi bisa berubah sesuai kebijakan bank / penyedia.</div>
                </div>

                <!-- MECHA BLUE FINAL BOSS REVIEW SLIDER -->
                <div class="tnt-review-mecha">
                    <div class="tnt-header">
                        <h2>BUGISTOTO - BANDAR SLOT ONLINE & SLOT GACOR TERPERCAYA</h2>
                        <p>Review & Komentar Member Situs Resmi BUGISTOTO</p>
                    </div>
                    <div class="tnt-slider" id="tntSlider">
                        <div class="tnt-slide active">
                            <div class="tnt-name">HendraGunawan</div>
                            <div class="tnt-comment"> Saya sudah main di banyak <strong>platform bandar togel</strong>
                                dan <strong>bandar slot online</strong>, tapi baru di <strong>BUGISTOTO</strong> saya
                                ngerasain <strong>minimal deposit 5000 rupiah</strong> termurah dan <strong>RTP slot
                                    tertinggi</strong> di atas 97%! <strong>Slot gacor</strong> Gates of Olympus dan
                                Mahjong Ways 3 di sini <strong>winrate paling tinggi</strong>. Scatter, free spin, dan
                                <strong>maxwin</strong> gampang muncul sampai ratusan juta rupiah cuma modal 5 ribu.
                                <strong>Situs slot gacor terpercaya</strong> dan <strong>bandar togel
                                    terpercaya</strong> nomor 1 Indonesia 2026! <strong>Slot online</strong> dan
                                <strong>togel online</strong> paling gacor!
                            </div>
                        </div>
                        <div class="tnt-slide">
                            <div class="tnt-name">PutriAmandari</div>
                            <div class="tnt-comment"> BUGISTOTO benar-benar <strong>platform bandar togel
                                    resmi</strong>, <strong>situs slot gacor terpercaya</strong>, dan <strong>bandar
                                    slot online resmi</strong> terbaik! Saya beberapa kali <strong>maxwin</strong> di
                                Sweet Bonanza, Starlight Princess, dan tembak jackpot <strong>togel 4D</strong> dengan
                                <strong>modal kecil</strong> cuma 10rb. <strong>Withdraw slot</strong> dan
                                <strong>withdraw togel</strong> langsung cair 1-3 menit tanpa pending. <strong>Deposit
                                    QRIS</strong> instan 5 detik, <strong>slot online</strong> dan <strong>togel
                                    online</strong> paling cepat dan aman. Jarang ada <strong>situs slot deposit
                                    5rb</strong> dan <strong>bandar togel deposit murah</strong> yang proses WD secepat
                                ini! <strong>Situs deposit cepat</strong> dan <strong>withdraw tercepat</strong>!
                            </div>
                        </div>
                        <div class="tnt-slide">
                            <div class="tnt-name">RianKurniawan</div>
                            <div class="tnt-comment"> Sebagai pemain <strong>slot gacor</strong> dan <strong>togel
                                    online</strong> lama, saya suka banget sama <strong>provider slot online</strong>
                                dan pasaran <strong>togel online</strong> lengkap di BUGISTOTO. Ada <strong>Pragmatic
                                    Play</strong>, <strong>PG Soft</strong>, <strong>Habanero</strong>,
                                <strong>Microgaming</strong>, <strong>Joker Gaming</strong>, Play'n GO, NetEnt, semua
                                ada! <strong>RTP slot live</strong> di atas 97% bikin peluang <strong>maxwin</strong>
                                jauh lebih besar. <strong>Slot gacor viral</strong> Lucky Neko, Fortune Mouse, Sugar
                                Rush selalu panas! Pasaran <strong>togel Singapore</strong>, <strong>togel
                                    Hongkong</strong>, <strong>togel Sidney</strong>, <strong>togel Macau</strong>
                                result tercepat! <strong>5000+ game slot gacor</strong> lengkap!
                            </div>
                        </div>
                        <div class="tnt-slide">
                            <div class="tnt-name">LestariWulandari</div>
                            <div class="tnt-comment"> Awalnya cuma cari <strong>situs slot online</strong> dan
                                <strong>bandar togel online</strong> biasa, tapi ternyata BUGISTOTO jauh lebih lengkap
                                sebagai <strong>platform bandar togel</strong> dan <strong>bandar slot online
                                    terbesar</strong>. <strong>Provider slot gacor</strong> terbaik semuanya ada dengan
                                <strong>RTP tinggi</strong>. Yang paling saya suka adalah <strong>minimal deposit 5000
                                    rupiah</strong> termurah dan <strong>server slot</strong> & <strong>server
                                    togel</strong> stabil anti lag. <strong>Slot mobile</strong> PG Soft dan
                                <strong>togel mobile</strong> gameplay lancar di HP Android! <strong>Aplikasi
                                    slot</strong> dan <strong>aplikasi togel</strong> gratis!
                            </div>
                        </div>
                        <div class="tnt-slide">
                            <div class="tnt-name">YudiHartono</div>
                            <div class="tnt-comment"> BUGISTOTO adalah <strong>situs slot gacor hari ini</strong> dan
                                <strong>bandar togel terpercaya</strong> terbaik! Result <strong>slot gacor</strong> dan
                                <strong>togel online</strong> selalu akurat dan tidak pernah telat. Saya pernah tembus
                                <strong>jackpot slot</strong> 500 juta rupiah di Gates of Olympus dan jackpot
                                <strong>togel 4D</strong> 49 juta di Hongkong, dana kemenangan langsung masuk ke
                                rekening BRI malam itu juga tanpa potongan. <strong>Bandar slot terpercaya</strong> dan
                                <strong>bandar togel terpercaya</strong> yang selalu bayar lunas! <strong>Kemenangan
                                    dibayar lunas</strong> 100%!
                            </div>
                        </div>
                        <div class="tnt-slide">
                            <div class="tnt-name">SitiNurhaliza</div>
                            <div class="tnt-comment"> Main <strong>slot gacor</strong> dan <strong>togel online</strong>
                                di BUGISTOTO bikin nagih karena <strong>peluang maxwin</strong> dan jackpot lebih
                                terasa dibanding <strong>situs slot online</strong> dan <strong>bandar togel
                                    online</strong> lain. Saya sering main Sweet Bonanza, Wild West Gold dari Pragmatic
                                Play, dan tebak angka <strong>togel Singapore</strong>. <strong>Free spin</strong>
                                gampang muncul dan <strong>kemenangan besar</strong> sering masuk walaupun <strong>modal
                                    kecil</strong> 5-10 ribu. <strong>Situs slot gacor RTP tinggi</strong> dan
                                <strong>bandar togel resmi</strong> paling menguntungkan! <strong>Jackpot slot</strong>
                                mudah didapat!
                            </div>
                        </div>
                        <div class="tnt-slide">
                            <div class="tnt-name">BudiSantoso</div>
                            <div class="tnt-comment"> Customer service <strong>slot online</strong> dan <strong>togel
                                    online</strong> BUGISTOTO paling responsif dibanding <strong>bandar slot
                                    online</strong> dan <strong>platform bandar togel</strong> lainnya. Pernah akun saya
                                logout sendiri dan langsung dibantu aktif lagi cuma beberapa menit. <strong>Pelayanan
                                    livechat 24 jam</strong> dan <strong>WhatsApp 24 jam</strong> benar-benar membantu
                                pemain <strong>slot gacor terpercaya</strong> dan <strong>togel online
                                    terpercaya</strong>. CS ramah, cepat, dan solutif 24/7 nonstop untuk semua kendala!
                                <strong>CS 24 jam</strong> terbaik!
                            </div>
                        </div>
                        <div class="tnt-slide">
                            <div class="tnt-name">WulanAnggraini</div>
                            <div class="tnt-comment"> Situs resmi BUGISTOTO punya tampilan ringan dan gampang dipakai
                                di HP Android maupun iPhone. <strong>Deposit QRIS</strong>, Dana, OVO, Gopay semuanya
                                otomatis 3-10 detik. Saya suka karena bisa main <strong>slot gacor hari ini</strong> dan
                                <strong>togel online</strong> tanpa ribet dan transaksi selalu lancar 24 jam nonstop.
                                <strong>Aplikasi slot</strong> dan <strong>aplikasi togel</strong> BUGISTOTO juga
                                lebih ringan dari website! Perfect untuk <strong>slot mobile</strong> dan <strong>togel
                                    mobile</strong>! <strong>Link alternatif slot</strong> dan <strong>link alternatif
                                    togel</strong> selalu aktif!
                            </div>
                        </div>
                        <div class="tnt-slide">
                            <div class="tnt-name">EkoPrakoso</div>
                            <div class="tnt-comment"> Saya rekomendasiin BUGISTOTO buat siapa saja yang cari
                                <strong>bandar slot online resmi</strong>, <strong>platform bandar togel</strong>, dan
                                <strong>slot gacor RTP tinggi</strong>. <strong>5000+ game slot gacor</strong> lengkap
                                dari semua provider terbaik dan pasaran <strong>togel online</strong> terlengkap.
                                <strong>Winrate paling tinggi</strong> terbukti, <strong>jackpot maxwin
                                    terbesar</strong> hingga ratusan juta, dan hadiah <strong>togel 4D</strong> terbesar
                                49 juta. <strong>Situs slot VIP</strong>, <strong>bandar slot premium</strong>,
                                <strong>bandar togel VIP</strong> untuk pemain pemula hingga pro! <strong>Platform
                                    VIP</strong> & <strong>premium</strong>!
                            </div>
                        </div>
                        <div class="tnt-slide">
                            <div class="tnt-name">RatnaSari</div>
                            <div class="tnt-comment"> Sudah hampir setahun saya main di BUGISTOTO sebagai pemain
                                <strong>slot gacor</strong> dan <strong>togel online</strong> dan sejauh ini paling puas
                                dibanding <strong>situs bandar slot online</strong> dan <strong>platform bandar
                                    togel</strong> lain. Semua permainan <strong>slot gacor</strong> lengkap dari
                                Pragmatic Play, PG Soft, Habanero, Microgaming, Joker Gaming. <strong>RTP slot
                                    tertinggi</strong> di atas 97%, <strong>minimal deposit 5000 rupiah</strong>
                                termurah, <strong>withdraw 1-3 menit</strong> tercepat untuk <strong>slot</strong> dan
                                <strong>togel</strong>. <strong>Link alternatif slot</strong> dan <strong>link
                                    alternatif togel</strong> selalu aktif! <strong>Situs terpercaya</strong>!
                            </div>
                        </div>
                        <div class="tnt-slide">
                            <div class="tnt-name">WahyuHidayat</div>
                            <div class="tnt-comment"> BUGISTOTO adalah <strong>bandar slot online</strong> dan
                                <strong>platform bandar togel</strong> terbaik dengan <strong>server slot
                                    internasional</strong> dan <strong>server togel</strong> 99.9% uptime. Game
                                <strong>slot online</strong> tidak lag, tidak disconnect, spin lancar saja. Result
                                <strong>togel online</strong> selalu update cepat dan akurat. <strong>Enkripsi SSL
                                    256-bit</strong> aman 100%, tidak ada kebocoran data. <strong>Situs slot
                                    aman</strong> dan <strong>bandar togel aman</strong> paling terpercaya dengan
                                lisensi internasional. Main <strong>slot gacor</strong> dan <strong>togel
                                    online</strong> di sini tenang dan pasti! <strong>Keamanan data</strong> maksimal!
                            </div>
                        </div>
                        <div class="tnt-slide">
                            <div class="tnt-name">DinaWijaya</div>
                            <div class="tnt-comment"> <strong>Pola slot gacor</strong> 2026 di BUGISTOTO terbukti
                                maxwin! Pola Gates of Olympus: 10x manual, 30x auto kecil, 50x auto besar. <strong>Jam
                                    gacor slot</strong> malam 21.00-03.00 WIB peluang <strong>maxwin</strong> 30% lebih
                                besar. <strong>RTP live slot</strong> real-time memudahkan pilih game RTP tertinggi.
                                Untuk <strong>togel online</strong>, pakai data paito warna SGP, HK, SDY yang lengkap.
                                <strong>Situs slot gacor terpercaya</strong> dan <strong>bandar togel
                                    terpercaya</strong> yang kasih tips menang lengkap untuk <strong>slot</strong> dan
                                <strong>togel</strong>! <strong>Tips slot gacor</strong> & <strong>tips togel</strong>!
                            </div>
                        </div>
                        <div class="tnt-slide">
                            <div class="tnt-name">AriefBudiman</div>
                            <div class="tnt-comment"> <strong>Bonus new member 100%</strong> di BUGISTOTO langsung
                                masuk setelah deposit pertama! Saya dapat bonus 50rb dari deposit 50rb dan langsung
                                maxwin 2 juta di Mahjong Ways 2. <strong>Cashback slot</strong>, <strong>rollingan
                                    slot</strong>, dan <strong>bonus referral</strong> juga sangat membantu untuk
                                tambahan modal. <strong>Situs slot gacor</strong> dan <strong>bandar togel</strong>
                                dengan bonus termurah dan termudah! <strong>Bonus new member slot</strong> dan
                                <strong>bonus new member togel</strong> otomatis!
                            </div>
                        </div>
                        <div class="tnt-slide">
                            <div class="tnt-name">IndahPermata</div>
                            <div class="tnt-comment"> <strong>Pragmatic Play</strong> di BUGISTOTO bener-bener gacor!
                                Gates of Olympus, Sweet Bonanza, Mahjong Ways 2, Mahjong Ways 3, Starlight Princess,
                                Sugar Rush semua RTP 96.5-96.8% dan sering maxwin. <strong>PG Soft</strong> Lucky Neko,
                                Fortune Mouse juga tidak kalah panas dengan RTP 96.7%. <strong>Provider slot gacor no
                                    1</strong> semuanya ada! <strong>Slot gacor viral</strong> paling banyak di sini!
                                <strong>RTP slot live highest</strong>!
                            </div>
                        </div>
                        <div class="tnt-slide">
                            <div class="tnt-name">KompasGagma</div>
                            <div class="tnt-comment"> <strong>Togel Hongkong</strong> dengan hadiah 4D 49 juta di
                                BUGISTOTO adalah yang terbesar! Result cepat dan akurat setiap hari. Saya juga suka
                                <strong>togel Singapore</strong> dengan data SGP lengkap dan <strong>togel
                                    Sidney</strong> dengan payout tinggi. <strong>Pasaran togel terlengkap</strong> ada
                                semua: Macau, Cambodia VIP, Taiwan, China, Japan, Bullseye. <strong>Platform bandar
                                    togel</strong> terbesar dengan <strong>result tercepat</strong> dan <strong>data
                                    keluaran resmi</strong>! <strong>Togel online terpercaya</strong>!
                            </div>






                        </div>
                    </div>
                </div>

                <a href="https://satupintakunaikajah1.pages.dev/" target="_blank">
                    <img style="display:block;margin-left:auto;margin-right:auto;height: 250px;border: 2px solid rgb(211 13 13);border-radius: 20px;box-shadow: 1px 1px 1px black;"
                        alt="BUGISTOTO"
                        src="https://mcconnell-lab.org/aww5.png" width="250"
                        height="300" />
                </a>

        </div>

        <style>
            .tnt-review-mecha {
                background: radial-gradient(circle at center, #2a0000, #981a1a);
                border: 2px solid #16c48d;
                border-radius: 14px;
                padding: 20px;
                color: #ffecec;
                font-family: 'Orbitron', sans-serif;
                position: relative;
                overflow: hidden;
                box-shadow: 0 0 25px #16c48d, inset 0 0 20px rgba(255, 0, 0, 0.2);
            }

            /* scanline */
            .tnt-review-mecha::before {
                content: "";
                position: absolute;
                inset: 0;
                background: repeating-linear-gradient(to bottom,
                        rgba(255, 0, 0, 0.08),
                        rgba(255, 0, 0, 0.08) 1px,
                        transparent 2px,
                        transparent 4px);
                pointer-events: none;
            }

            .tnt-header h2 {
                font-size: 18px;
                color: #16c48d;
                text-shadow: 0 0 10px #16c48d, 0 0 20px #16c48d;
                margin-bottom: 5px;
            }

            .tnt-header p {
                font-size: 12px;
                opacity: 0.85;
                margin-bottom: 15px;
            }

            .tnt-slider {
                position: relative;
                height: 90px;
            }

            .tnt-slide {
                position: absolute;
                width: 100%;
                opacity: 0;
                transform: translateX(40px);
                transition: all .6s ease;
            }

            .tnt-slide.active {
                opacity: 1;
                transform: translateX(0);
            }

            .tnt-name {
                font-size: 14px;
                color: #16c48d;
                margin-bottom: 5px;
                text-shadow: 0 0 6px #16c48d;
            }

            .tnt-comment {
                font-size: 13px;
                line-height: 1.5;
            }

            /* glowing border animation */
            @keyframes pulseGlow {
                0% {
                    box-shadow: 0 0 10px #16c48d;
                }

                50% {
                    box-shadow: 0 0 25px #16c48d;
                }

                100% {
                    box-shadow: 0 0 10px #16c48d;
                }
            }

            .tnt-review-mecha {
                animation: pulseGlow 2.5s infinite;
            }
        </style>

        <script>
            let slides = document.querySelectorAll('.tnt-slide');
            let index = 0;

            setInterval(() => {
                slides[index].classList.remove('active');
                index = (index + 1) % slides.length;
                slides[index].classList.add('active');
            }, 3000);
        </script>

        <section class="pd-full-description cyber-mecha" id="deskripsi">
            <h2 class="pd-full-desc-title"></h2>

            <div class="pd-full-desc-body">


                <div class="mecha-header">
                    <h1 class="pd-title" id="pd-title">BUGISTOTO – Platform Informasi dan Komunitas Digital Online</h1>
                    <div class="mecha-content">
                        <p>Halo guys! Kalau kamu lagi cari <strong>platform bandar togel</strong> dan <strong>situs slot
                                gacor</strong> terpercaya di Indonesia tahun 2026, pasti udah nggak asing lagi sama nama
                            <strong>BUGISTOTO</strong>. Nah, di artikel ini aku bakal bahas lengkap banget kenapa
                            <strong>BUGISTOTO</strong> jadi pilihan utama ribuan pemain <strong>togel online</strong>
                            dan <strong>slot gacor</strong> setiap harinya. Yuk, kita bahas satu-satu!
                        </p>

                        <h2>BUGISTOTO Platform Bandar Togel & Situs Slot Gacor Terpercaya #1 Indonesia</h2>
                        <p><strong>BUGISTOTO</strong> hadir sebagai <strong>platform bandar togel</strong> resmi dan
                            <strong>situs slot gacor terpercaya</strong> nomor 1 di Indonesia dengan reputasi teruji
                            tahun 2026. Kalau kamu lagi nyari tempat main yang aman, terpercaya, dan gampang menang,
                            <strong>BUGISTOTO</strong> adalah jawaban terbaik untuk kebutuhan bermain <strong>togel
                                online</strong> dan <strong>slot gacor</strong> kamu. Sebagai <strong>bandar togel
                                online resmi</strong> dan <strong>bandar slot online resmi</strong> yang sudah
                            terpercaya, <strong>BUGISTOTO</strong> menawarkan pengalaman bermain dengan <strong>RTP
                                slot tertinggi</strong>, <strong>winrate paling tinggi</strong>, <strong>pasaran togel
                                terlengkap</strong>, dan <strong>peluang maxwin terbesar</strong> untuk semua member
                            Indonesia. Nggak cuma itu, <strong>minimal deposit</strong> di sini cuma <strong>5000
                                rupiah</strong> aja, jadi sangat terjangkau untuk semua kalangan!
                        </p>

                        <h2>Kenapa BUGISTOTO Jadi Pilihan Utama Pemain Togel Online & Slot Gacor?</h2>
                        <p>Ada banyak banget keunggulan yang bikin <strong>BUGISTOTO</strong> beda dari yang lain.
                            Berikut ini alasan kenapa kamu harus langsung daftar di <strong>BUGISTOTO</strong>:</p>

                        <h3>1. RTP Slot Tertinggi di Atas 97%</h3>
                        <p><strong>BUGISTOTO</strong> menawarkan <strong>RTP slot tertinggi</strong> di industri
                            dengan rata-rata di atas 97%, jauh lebih tinggi dibanding situs <strong>slot online</strong>
                            lain. <strong>RTP live slot</strong> yang ditampilkan secara real-time memudahkan kamu
                            memilih game <strong>slot gacor</strong> dengan peluang menang terbaik. Game seperti
                            <strong>Gates of Olympus</strong>, <strong>Mahjong Ways 2</strong>, <strong>Mahjong Ways
                                3</strong>, <strong>Sweet Bonanza</strong>, <strong>Starlight Princess</strong>, dan
                            <strong>Sugar Rush</strong> memiliki <strong>RTP tinggi</strong> dan <strong>volatilitas
                                optimal</strong> untuk maxwin hingga ratusan juta rupiah.
                        </p>

                        <h3>2. Pasaran Togel Online Terlengkap</h3>
                        <p>Sebagai <strong>platform bandar togel</strong> terbesar, <strong>BUGISTOTO</strong>
                            menyediakan pasaran <strong>togel online</strong> paling lengkap di Indonesia. Ada
                            <strong>togel Singapore</strong> (SGP) dengan result tercepat dan data SGP lengkap,
                            <strong>togel Hongkong</strong> (HK) dengan hadiah 4D terbesar 49 juta, <strong>togel
                                Sidney</strong> (SDY) dengan payout tinggi, <strong>togel Macau</strong> dengan peluang
                            menang tinggi, <strong>togel Cambodia</strong> VIP dengan bonus khusus, <strong>togel
                                Taiwan</strong>, <strong>togel China</strong>, <strong>togel Japan</strong>,
                            <strong>togel Bullseye</strong>, hingga <strong>togel online internasional</strong> lainnya.
                            Semua pasaran tersedia dengan result tercepat dan data keluaran resmi setiap hari. Nggak
                            perlu pindah-pindah situs, semua ada di <strong>BUGISTOTO</strong>!
                        </p>

                        <h3>3. Minimal Deposit 5000 Rupiah Termurah</h3>
                        <p><strong>Minimal deposit BUGISTOTO hanya 5000 rupiah</strong>! Ini adalah <strong>situs slot
                                deposit 5rb</strong> dan <strong>bandar togel deposit termurah</strong> paling
                            terjangkau di Indonesia. Tidak ada situs <strong>slot online</strong> atau <strong>bandar
                                togel online</strong> lain yang menawarkan deposit serendah ini dengan kualitas premium.
                            Cocok untuk pemula, pelajar, mahasiswa, hingga pemain pro yang ingin hemat modal. Deposit
                            via <strong>QRIS</strong> diproses instan dalam 3-10 detik saja, deposit via bank juga
                            sangat cepat.</p>

                        <h3>4. Winrate Paling Tinggi Terbukti</h3>
                        <p>Winrate <strong>BUGISTOTO</strong> sebagai <strong>bandar slot online</strong> terbukti
                            lebih tinggi dari kompetitor. Banyak player <strong>slot gacor</strong> berhasil tembus
                            <strong>maxwin juta-an</strong> bahkan <strong>ratusan juta rupiah</strong> dalam satu spin.
                            Server stabil dan algoritma <strong>slot gacor</strong> yang optimal membuat peluang
                            scatter, free spin, dan bonus round lebih sering muncul. Winrate tinggi juga terbukti di
                            <strong>togel online</strong> dengan peluang jackpot 4D, 3D, dan 2D yang sangat besar.
                        </p>

                        <h3>5. 5000+ Game Slot Gacor Lengkap</h3>
                        <p><strong>BUGISTOTO</strong> menyediakan lebih dari 5000 game <strong>slot gacor</strong>
                            dari semua provider terbaik dunia: <strong>Pragmatic Play</strong> (Gates of Olympus, Sweet
                            Bonanza, Mahjong Ways 2, Mahjong Ways 3, RTP 96.5-96.8%), <strong>PG Soft</strong> (Lucky
                            Neko, Fortune Mouse, Fortune Ox, Dragon Hatch, RTP 96.7%), <strong>Habanero</strong>
                            (Caishen Wins, Hot Hot Fruit, RTP 96.7%), <strong>Microgaming</strong> (Mega Moolah jackpot
                            progresif Rp 10+ miliar), <strong>Joker Gaming</strong> (88 Golden Dragon, Lucky God, RTP
                            96.8%), Play'n GO, NetEnt, Relax Gaming, Spadegaming, Amusnet, FA CHAI, Push Gaming, NoLimit
                            City, Yggdrasil. Total lebih dari 5000 game <strong>slot online gacor</strong> dengan
                            <strong>RTP live highest</strong>!
                        </p>

                        <h2>Cara Daftar Akun Togel Online & Slot Online di BUGISTOTO</h2>
                        <p>Proses <strong>daftar togel online</strong> dan <strong>daftar slot online</strong> di
                            <strong>BUGISTOTO</strong> sangat mudah hanya dalam 2-3 menit. Ikuti langkah-langkah
                            berikut:
                        </p>
                        <div class="white">
                            <ul>
                                <li>Buka <strong>website resmi BUGISTOTO</strong> via browser HP atau komputer</li>
                                <li>Klik tombol <strong>daftar</strong> atau <strong>register</strong> di pojok kanan
                                    atas</li>
                                <li>Isi <strong>username unik</strong> untuk login <strong>slot online</strong> dan
                                    <strong>togel online</strong>
                                </li>
                                <li>Isi <strong>password kuat</strong> kombinasi huruf besar, kecil, dan angka</li>
                                <li>Masukkan <strong>nomor WhatsApp aktif</strong> untuk verifikasi</li>
                                <li>Isi <strong>rekening bank</strong> atau <strong>e-wallet QRIS</strong> untuk deposit
                                </li>
                                <li>Isi <strong>email aktif</strong> untuk keamanan akun</li>
                                <li>Klik <strong>daftar sekarang</strong>, akun langsung aktif dalam 30 detik!</li>
                            </ul>
                        </div>
                        <p>Bonus <strong>new member 100%</strong> otomatis masuk ke akun setelah deposit pertama.
                            <strong>BUGISTOTO</strong> adalah <strong>situs slot gacor</strong> dan <strong>bandar
                                togel</strong> dengan bonus termurah dan termudah!
                        </p>

                        <h2>Cara Login Akun Togel Online & Slot Online BUGISTOTO</h2>
                        <p><strong>Login togel online</strong> dan <strong>login slot online</strong> di
                            <strong>BUGISTOTO</strong> sangat cepat dan mudah:
                        </p>
                        <div class="white">
                            <ol>
                                <li>Buka <strong>website BUGISTOTO</strong> via browser HP Android/iOS atau komputer
                                </li>
                                <li>Klik menu <strong>login</strong> di pojok kanan atas halaman utama</li>
                                <li>Masukkan <strong>username togel & slot</strong> yang sudah terdaftar saat daftar
                                </li>
                                <li>Masukkan <strong>password togel & slot</strong> akun kamu</li>
                                <li>Klik tombol <strong>masuk</strong></li>
                                <li>Akun <strong>slot gacor</strong> dan <strong>togel online</strong> siap digunakan,
                                    langsung deposit minimal 5000 dan main!</li>
                            </ol>
                        </div>
                        <p>Jika lupa password, hubungi <strong>CS 24 jam</strong> untuk reset gratis.
                            <strong>BUGISTOTO</strong> juga punya <strong>link alternatif togel</strong> dan
                            <strong>link alternatif slot</strong> untuk akses tanpa blokir Kominfo.
                        </p>

                        <h2>Minimal Deposit 5000 Rupiah via QRIS, Dana, OVO, Gopay</h2>
                        <p><strong>Minimal deposit BUGISTOTO hanya 5000 rupiah</strong>! Ini sangat terjangkau untuk
                            semua kalangan. BUGISTOTO mendukung semua metode <strong>deposit slot online</strong> dan
                            <strong>deposit togel online</strong> terlengkap: <strong>QRIS</strong> (instan 3-10 detik,
                            minimal 5000), <strong>Dana</strong>, <strong>OVO</strong>, <strong>Gopay</strong>,
                            <strong>ShopeePay</strong>, <strong>LinkAja</strong>, <strong>BCA</strong>,
                            <strong>BRI</strong>, <strong>Mandiri</strong>, <strong>BNI</strong>,
                            <strong>Permata</strong>, <strong>BTN</strong>, <strong>Danamon</strong>, <strong>CIMB
                                Niaga</strong>. <strong>Withdraw slot</strong> dan <strong>withdraw togel</strong>
                            diproses otomatis 1-3 menit, 24 jam nonstop tanpa libur. <strong>BUGISTOTO</strong> adalah
                            <strong>situs deposit cepat</strong> dan <strong>withdraw tercepat</strong> di Indonesia
                            dengan sistem otomatis anti ribet!
                        </p>

                        <h2>Provider Slot Gacor Terbaik di BUGISTOTO</h2>

                        <h3>Pragmatic Play Slot Gacor Paling Viral</h3>
                        <p><strong>Pragmatic Play</strong> adalah provider <strong>slot gacor</strong> paling populer
                            dengan RTP 96.5-96.8%. Game viral: <strong>Gates of Olympus</strong> (RTP 96.5%),
                            <strong>Sweet Bonanza</strong> (RTP 96.51%), <strong>Mahjong Ways 2</strong> (RTP 96.6%),
                            <strong>Mahjong Ways 3</strong> (RTP 96.7%), <strong>Starlight Princess</strong> (RTP
                            96.5%), <strong>Sugar Rush</strong> (RTP 96.5%), <strong>Wild West Gold</strong> (RTP
                            96.5%). <strong>Pragmatic Play</strong> adalah <strong>provider slot gacor no 1</strong> di
                            Indonesia!
                        </p>

                        <h3>PG Soft Slot Mobile Terbaik</h3>
                        <p><strong>PG Soft</strong> unggul di <strong>slot mobile</strong> dan <strong>slot HP</strong>
                            dengan tampilan portrait optimal. Game populer: <strong>Lucky Neko</strong> (RTP 96.7%),
                            <strong>Fortune Mouse</strong> (RTP 96.7%), <strong>Fortune Ox</strong> (RTP 96.7%),
                            <strong>Dragon Hatch</strong> (RTP 96.7%). PG Soft punya animasi keren dan gameplay lancar
                            tanpa lag di HP Android dan iOS!
                        </p>

                        <h3>Habanero Slot Free Spin Mudah</h3>
                        <p><strong>Habanero</strong> terkenal dengan <strong>slot free spin</strong> yang mudah muncul
                            dan RTP tinggi. Game favorit: <strong>Caishen Wins</strong> (RTP 96.7%), <strong>Hot Hot
                                Fruit</strong> (RTP 96.7%), <strong>Zen Fight</strong> (RTP 96.7%). Habanero punya
                            volatilitas sedang untuk kemenangan konsisten!</p>

                        <h3>Microgaming Slot Jackpot Progresif Terbesar</h3>
                        <p><strong>Microgaming</strong> adalah provider <strong>slot online</strong> legendaris dengan
                            <strong>jackpot progresif</strong> terbesar di dunia. <strong>Mega Moolah</strong> pernah
                            memberikan jackpot hingga Rp 10+ miliar!
                        </p>

                        <h3>Joker Gaming Slot Indonesia Favorit</h3>
                        <p><strong>Joker Gaming</strong> paling disukai pemain <strong>slot Indonesia</strong> karena
                            gameplay ringan dan RTP tinggi. Game top: <strong>88 Golden Dragon</strong> (RTP 96.8%),
                            <strong>Lucky God</strong> (RTP 96.8%), <strong>Caishen Wins</strong> (RTP 96.8%). Joker
                            Gaming optimized untuk HP Android dan iOS!
                        </p>

                        <h2>Tips Main Slot Gacor Maxwin Jutaan Rupiah</h2>

                        <h3>1. Main di Jam Gacor Slot Malam Hari</h3>
                        <p><strong>Jam gacor slot</strong> biasanya pukul <strong>21.00-03.00 WIB</strong> malam saat
                            server longgar dan RTP lebih tinggi. Hindari jam sibuk 12.00-14.00 WIB. Main di <strong>jam
                                gacor</strong> meningkatkan peluang scatter dan maxwin hingga 30%!</p>

                        <h3>2. Pilih Slot RTP Live Tertinggi di Atas 96.5%</h3>
                        <p>Selalu cek <strong>RTP live slot</strong> di <strong>BUGISTOTO</strong> sebelum bermain.
                            Pilih game dengan <strong>RTP slot tertinggi</strong> di atas 96.5%. Slot RTP 97% lebih
                            mungkin maxwin dibanding RTP 95%!</p>

                        <h3>3. Pakai Pola Slot Gacor Terbukti 2026</h3>
                        <p><strong>Pola slot gacor</strong> 2026 yang terbukti:
                            - <strong>Pola Gates of Olympus</strong>: 10x spin manual @200, 30x auto spin @100, 50x auto
                            spin @500 untuk maxwin
                            - <strong>Pola Lucky Neko</strong>: 15x manual @100, 25x auto @200, 40x auto @500
                            - <strong>Pola umum</strong>: 20x spin manual bet kecil, 30x auto spin bet sedang, 50x auto
                            spin bet besar
                            Uji berbagai pola untuk menemukan pola terbaikmu!</p>

                        <h3>4. Kelola Modal Slot dengan Bijak</h3>
                        <p>Tentukan <strong>budget slot</strong> harian sebelum main, misalnya 100rb-500rb. Jangan chase
                            loss (kejar kekalahan). Setel <strong>stop loss</strong> (batas kalah) dan <strong>take
                                profit</strong> (batas menang). Jika sudah profit 50-100%, tarik sebagian profit. Kelola
                            modal <strong>slot online</strong> bijak agar bisa main lama dan maxwin!</p>

                        <h3>5. Manfaatkan Bonus Slot untuk Modal Gratis</h3>
                        <p>Gunakan <strong>bonus new member slot</strong>, <strong>cashback slot</strong>,
                            <strong>rollingan slot</strong>, dan <strong>bonus referral</strong> untuk modal tambahan
                            tanpa risiko. Bonus bisa meningkatkan durasi bermain dan peluang maxwin tanpa tambahan
                            deposit!
                        </p>

                        <h2>Tips Main Togel Online Jackpot 4D Terbesar</h2>

                        <h3>1. Pilih Pasaran Togel dengan Hadiah Besar</h3>
                        <p>Pilih pasaran <strong>togel online</strong> dengan hadiah terbesar seperti <strong>togel
                                Hongkong</strong> (4D hadiah 49 juta), <strong>togel Singapore</strong> (4D hadiah 5
                            juta), <strong>togel Sidney</strong> (payout tinggi), dan <strong>togel Macau</strong>
                            (peluang menang tinggi). BUGISTOTO menyediakan semua pasaran dengan result resmi tercepat.
                        </p>

                        <h3>2. Gunakan Data Paito Warna untuk Analisis</h3>
                        <p>Gunakan <strong>data paito warna</strong> SGP, HK, SDY yang tersedia lengkap di BUGISTOTO
                            untuk menganalisis angka keluaran. Data akurat dan update setiap hari memudahkan kamu
                            mencari angka hoki dan meningkatkan peluang jackpot.</p>

                        <h3>3. Main Togel 4D, 3D, 2D dengan Bijak</h3>
                        <p>Main <strong>togel 4D</strong> untuk hadiah terbesar, <strong>togel 3D</strong> untuk balance
                            risiko, dan <strong>togel 2D</strong> untuk kemenangan lebih sering. Kelola modal dengan
                            bijak, jangan tebar semua uang di satu nomor. Gunakan sistem colok bebas, colok naga, atau
                            shio untuk variasi taruhan.</p>

                        <h2>Keunggulan BUGISTOTO Platform Bandar Togel & Bandar Slot Online Terbaik</h2>

                        <h3>Server Slot & Togel Internasional Stabil 99.9% Uptime</h3>
                        <p><strong>BUGISTOTO</strong> pakai <strong>server slot internasional</strong> dan
                            <strong>server togel</strong> dengan uptime 99.9%. Game <strong>slot online</strong> tidak
                            lag, tidak disconnect, spin lancar saja. Result <strong>togel online</strong> selalu update
                            cepat dan akurat. Server Singapore dan Eropa menjamin kecepatan akses tanpa hambatan!
                        </p>

                        <h3>Keamanan Data SSL 256-Bit Setara Bank</h3>
                        <p>Data member <strong>slot online</strong> dan <strong>togel online</strong> aman dengan
                            enkripsi <strong>SSL 256-bit</strong> setara bank. Tidak ada kebocoran data, peretasan akun,
                            atau penipuan. <strong>BUGISTOTO</strong> adalah <strong>situs slot aman</strong> dan
                            <strong>bandar togel aman</strong> paling terpercaya!
                        </p>

                        <h3>Link Alternatif Togel & Slot Anti Blokir</h3>
                        <p><strong>BUGISTOTO</strong> punya <strong>link alternatif togel</strong> dan <strong>link
                                alternatif slot</strong> lengkap. Selalu ada link baru jika satu link diblokir Kominfo.
                            Akses <strong>slot online</strong> dan <strong>togel online</strong> tanpa hambatan!</p>

                        <h3>Aplikasi Slot & Togel Android & iOS Resmi</h3>
                        <p>Download <strong>aplikasi BUGISTOTO</strong> untuk Android dan iOS. Aplikasi lebih ringan
                            dari website, notifikasi bonus langsung ke HP, dan akses lebih cepat. Gratis download tanpa
                            biaya. Compatible dengan semua HP Android dan iPhone!</p>

                        <h3>Live Casino & Sportsbook Terlengkap</h3>
                        <p>Selain <strong>slot online</strong> dan <strong>togel online</strong>,
                            <strong>BUGISTOTO</strong> juga punya <strong>live casino</strong> (Baccarat, Roulette,
                            Blackjack, Sicbo) dan <strong>sportsbook</strong> (bola, basket, tenis, voli) dengan odds
                            terbaik!
                        </p>

                        <h3>Customer Service Livechat & WhatsApp 24 Jam Nonstop</h3>
                        <p>Customer service <strong>slot online</strong> dan <strong>togel online</strong>
                            <strong>BUGISTOTO</strong> aktif 24 jam nonstop via <strong>livechat</strong> dan
                            <strong>WhatsApp</strong>. Tim support profesional siap bantu kendala deposit, withdraw,
                            login, register, atau pertanyaan tentang game <strong>slot gacor</strong>, <strong>RTP slot
                                live</strong>, <strong>pola slot</strong>, <strong>jam gacor</strong>, pasaran
                            <strong>togel online</strong>, result live draw, data SGP, data HK, dan lainnya. Respon
                            cepat dalam 1-2 menit, ramah, dan solutif!
                        </p>

                        <h2>BUGISTOTO Situs Slot Gacor & Bandar Togel Terpercaya #1 Indonesia</h2>
                        <p><strong>BUGISTOTO</strong> adalah <strong>bandar slot online</strong> dan <strong>platform
                                bandar togel</strong> terpercaya nomor 1 di Indonesia tahun 2026. Sebagai <strong>situs
                                slot gacor</strong> dengan <strong>minimal deposit 5000 rupiah</strong> termurah,
                            <strong>RTP tertinggi</strong> di atas 97%, <strong>winrate paling tinggi</strong>,
                            <strong>pasaran togel terlengkap</strong>, <strong>5000+ game slot gacor</strong> lengkap,
                            dan <strong>provider slot terbaik</strong> lengkap, <strong>BUGISTOTO</strong> adalah
                            pilihan utama ribuan pemain <strong>slot gacor</strong> dan <strong>togel online</strong>
                            setiap hari.
                        </p>

                        <p>Kalau kamu mencari <strong>bandar slot online</strong> resmi, <strong>platform bandar
                                togel</strong> terpercaya, <strong>situs slot deposit QRIS</strong> termurah,
                            <strong>slot gacor RTP tinggi</strong>, <strong>slot online maxwin</strong>, <strong>togel
                                online result tercepat</strong>, <strong>situs slot viral</strong>, atau
                            <strong>platform slot & togel terbaik 2026</strong>, <strong>BUGISTOTO</strong> adalah
                            jawaban tepat. Sebagai <strong>situs slot VIP</strong>, <strong>bandar slot
                                premium</strong>, <strong>bandar togel VIP</strong>, dan <strong>platform togel
                                premium</strong>, <strong>BUGISTOTO</strong> cocok untuk pemain pemula hingga pro!
                        </p>

                        <p><strong>Daftar slot online</strong> dan <strong>daftar togel online</strong> sekarang di
                            <strong>BUGISTOTO</strong> dan rasakan sensasi bermain <strong>slot gacor
                                terpercaya</strong> dan <strong>togel online terpercaya</strong> dengan <strong>peluang
                                maxwin terbesar</strong> hingga ratusan juta rupiah untuk slot, dan hadiah <strong>togel
                                4D</strong> terbesar 49 juta! Bonus new member 100% menanti! Jangan tunggu, jackpot
                            besar bisa datang kapan saja. <strong>Daftar BUGISTOTO</strong> sekarang, <strong>deposit
                                minimal 5000</strong>, dan mulai menaklukkan <strong>slot gacor</strong> dan
                            <strong>togel online</strong>!
                        </p>

                        <p><strong>BUGISTOTO</strong> adalah <strong>bandar slot online</strong> terbaik,
                            <strong>platform bandar togel</strong> terpercaya, <strong>situs slot deposit 5rb</strong>
                            termurah, <strong>slot online RTP tinggi</strong>, <strong>togel online result
                                tercepat</strong>, dan <strong>situs slot VIP</strong> nomor 1 di Indonesia. Main
                            <strong>slot gacor</strong> dan <strong>togel online</strong> sekarang, menangkan jackpot
                            besar, dan raih kekayaanmu bersama <strong>BUGISTOTO</strong>!
                        </p>
                    </div>





                    <p class="final-line">
                        <span class="glow-strong">FINAL STATUS:</span>
                        Seluruh kemenangan diproses <strong>CEPAT, AMAN & DIBAYAR LUNAS</strong> —
                        tanpa kendala, tidak ribet, dan sepenuhnya profesional.
                    </p>


                </div>

            </div>
            </div>
        </section>

        <style>
            @import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@400;600;800&display=swap');

            .cyber-mecha a {
                color: black;
            }


            .cyber-mecha {
                font-family: 'Orbitron', sans-serif;
                max-width: 900px;
                margin: 40px auto;
                padding: 25px;
                border-radius: 18px;

                /* deep elegant red */
                background: radial-gradient(circle at top, #3a0a0a, #0a0000 70%);

                border: 1px solid rgba(255, 90, 90, 0.35);

                box-shadow:
                    0 0 22px rgba(140, 20, 20, 0.35),
                    inset 0 0 20px rgba(255, 70, 70, 0.08);

                position: relative;
                overflow: hidden;
            }

            /* scanline effect */
            .cyber-mecha::before {
                content: "";
                position: absolute;
                inset: 0;
                background: repeating-linear-gradient(to bottom,
                        rgba(255, 90, 90, 0.03),
                        rgba(255, 90, 90, 0.03) 1px,
                        transparent 1px,
                        transparent 3px);
                pointer-events: none;
            }

            .pd-full-desc-title {
                text-align: center;
                font-size: 22px;
                font-weight: 800;

                /* elegant red (not neon) */
                color: #d46a6a;

                margin-bottom: 25px;
                text-shadow: 0 0 8px rgba(212, 106, 106, 0.5);
                letter-spacing: 1px;
            }

            /* FAQ BOX */
            .faq-item {
                margin-bottom: 15px;
                border-radius: 12px;

                border: 1px solid rgba(255, 100, 100, 0.18);
                background: rgba(60, 10, 10, 0.35);
                backdrop-filter: blur(8px);

                transition: all 0.3s ease;
                overflow: hidden;
            }

            .faq-item:hover {
                border-color: rgba(255, 120, 120, 0.45);
                box-shadow: 0 0 14px rgba(120, 30, 30, 0.25);
            }

            /* QUESTION */
            .faq-question {
                padding: 14px 18px;
                cursor: pointer;
                font-size: 14px;
                color: #f2c6c6;
                position: relative;
            }

            .faq-question::after {
                content: "＋";
                position: absolute;
                right: 15px;
                color: #c97a7a;
                font-weight: bold;
                transition: 0.3s;
            }

            /* ACTIVE */
            .faq-item.active .faq-question::after {
                content: "−";
            }

            /* ANSWER */
            .faq-answer {
                max-height: 0;
                overflow: hidden;
                padding: 0 18px;
                font-size: 13px;
                color: #f7e6e6;
                line-height: 1.6;
                transition: all 0.35s ease;
            }

            .faq-item.active .faq-answer {
                max-height: 200px;
                padding: 10px 18px 18px;
            }

            /* glow text (soft luxury, not neon) */
            .glow {
                color: #d46a6a;
                text-shadow: 0 0 6px rgba(212, 106, 106, 0.4);
            }

            .glow-strong {
                color: #e08b8b;
                text-shadow: 0 0 10px rgba(212, 106, 106, 0.5);
            }
        </style>

        <section class="pd-full-description cyber-mecha" id="deskripsi">

            <h2 class="pd-full-desc-title">FAQ</h2>

            <div class="pd-full-desc-body">


                <div class="faq-item">
                    <div class="faq-question"> Kenapa BUGISTOTO dikenal sebagai platform bandar togel & situs slot
                        gacor terpercaya #1 Indonesia 2026? </div>
                    <div class="faq-answer"> <strong>BUGISTOTO</strong> adalah <strong>platform bandar togel</strong>
                        resmi dan <strong>situs slot gacor terpercaya</strong> nomor 1 di Indonesia tahun 2026 dengan
                        <strong>RTP slot tertinggi</strong> di atas 97%, <strong>winrate paling tinggi</strong>
                        terbukti, <strong>pasaran togel terlengkap</strong>, dan <strong>minimal deposit 5000
                            rupiah</strong> termurah. Sebagai <strong>platform bandar togel & situs slot gacor</strong>
                        paling viral, BUGISTOTO menyediakan 5000+ game <strong>slot gacor</strong> dari provider
                        <strong>Pragmatic Play</strong>, <strong>PG Soft</strong>, <strong>Habanero</strong>,
                        <strong>Microgaming</strong>, <strong>Joker Gaming</strong> dengan <strong>jackpot maxwin
                            terbesar</strong> hingga ratusan juta rupiah, serta pasaran <strong>togel
                            Singapore</strong>, <strong>togel Hongkong</strong>, <strong>togel Sidney</strong>,
                        <strong>togel Macau</strong> dengan <strong>result resmi tercepat</strong> setiap hari.
                        <strong>Bandar togel online resmi</strong> dan <strong>bandar slot online resmi</strong> dengan
                        <strong>bonus new member 100%</strong>!
                    </div>
                </div>
                <div class="faq-item">
                    <div class="faq-question"> Provider slot gacor & pasaran togel apa saja yang tersedia di BUGISTOTO
                        platform bandar togel terbesar? </div>
                    <div class="faq-answer"> BUGISTOTO menghadirkan semua <strong>provider slot gacor</strong>
                        terbaik: <strong>Pragmatic Play</strong> (Gates of Olympus, Sweet Bonanza, Mahjong Ways 2,
                        Mahjong Ways 3, Starlight Princess, Sugar Rush, RTP 96.5-96.8%), <strong>PG Soft</strong> (Lucky
                        Neko, Fortune Mouse, Fortune Ox, Dragon Hatch, RTP 96.7%), <strong>Habanero</strong> (Caishen
                        Wins, Hot Hot Fruit, RTP 96.7%), <strong>Microgaming</strong> (Mega Moolah jackpot progresif Rp
                        10+ miliar), <strong>Joker Gaming</strong> (88 Golden Dragon, Lucky God, RTP 96.8%), Play'n GO,
                        NetEnt, Relax Gaming, Spadegaming. Total 5000+ game <strong>slot online gacor</strong> dengan
                        <strong>RTP live highest</strong>! Untuk <strong>togel online</strong>, tersedia <strong>togel
                            Singapore</strong> (SGP result tercepat), <strong>togel Hongkong</strong> (HK hadiah 4D 49
                        juta), <strong>togel Sidney</strong> (SDY payout tinggi), <strong>togel Macau</strong>,
                        <strong>togel Cambodia</strong> VIP, <strong>togel Taiwan</strong>, <strong>togel
                            China</strong>, <strong>togel Japan</strong>, <strong>togel Bullseye</strong> dengan
                        <strong>result tercepat</strong> dan <strong>data keluaran resmi</strong> setiap hari.
                        <strong>Provider slot online</strong> terlengkap!
                    </div>
                </div>
                <div class="faq-item">
                    <div class="faq-question"> Berapa minimal deposit di platform bandar togel & situs slot gacor
                        BUGISTOTO deposit 5000 rupiah? </div>
                    <div class="faq-answer"> <strong>Minimal deposit BUGISTOTO hanya 5000 rupiah</strong>! Ini adalah
                        <strong>situs slot deposit 5rb</strong> dan <strong>bandar togel deposit termurah</strong>
                        paling terjangkau di Indonesia. Tidak ada situs <strong>slot online</strong> atau <strong>bandar
                            togel online</strong> lain yang menawarkan deposit serendah ini dengan kualitas premium.
                        Deposit via <strong>QRIS</strong>, <strong>Dana</strong>, <strong>OVO</strong>,
                        <strong>Gopay</strong>, ShopeePay, LinkAja, BCA, BRI, Mandiri, BNI diproses <strong>instan 3-10
                            detik</strong>. <strong>Withdraw slot</strong> dan <strong>withdraw togel</strong> otomatis
                        <strong>1-3 menit</strong>, 24 jam nonstop tanpa libur. <strong>Situs slot deposit
                            cepat</strong> dan <strong>withdraw tercepat</strong> di Indonesia!
                    </div>
                </div>
                <div class="faq-item">
                    <div class="faq-question"> Bagaimana cara daftar akun togel online & slot online di BUGISTOTO
                        platform bandar togel resmi hanya 2-3 menit? </div>
                    <div class="faq-answer"> <strong>Cara daftar togel online & slot online di BUGISTOTO sangat mudah
                            hanya 2-3 menit</strong>: 1) Buka <strong>website resmi BUGISTOTO</strong> via browser
                        HP/komputer, 2) Klik tombol <strong>daftar</strong> atau <strong>register</strong> di pojok
                        kanan atas, 3) Isi <strong>username unik</strong> untuk login <strong>slot online</strong> dan
                        <strong>togel online</strong>, 4) Isi <strong>password kuat</strong> kombinasi huruf
                        besar+kecil+angka, 5) Masukkan <strong>nomor WhatsApp aktif</strong> untuk verifikasi, 6) Isi
                        <strong>rekening bank</strong> atau <strong>e-wallet QRIS</strong> untuk deposit, 7) Isi
                        <strong>email aktif</strong> untuk keamanan akun, 8) Klik <strong>daftar sekarang</strong>, akun
                        langsung aktif dalam 30 detik! Langsung <strong>deposit minimal 5000</strong> dan main
                        <strong>slot gacor</strong> & <strong>togel online</strong>! Bonus <strong>new member slot
                            100%</strong> dan <strong>new member togel</strong> otomatis masuk!
                    </div>
                </div>
                <div class="faq-item">
                    <div class="faq-question"> Bagaimana cara login akun togel online & slot online BUGISTOTO dengan
                        aman dan cepat link alternatif? </div>
                    <div class="faq-answer"> <strong>Cara login togel online & slot online di BUGISTOTO sangat cepat
                            dan mudah</strong>: 1) Buka <strong>website BUGISTOTO</strong> via browser HP Android/iOS
                        atau komputer, 2) Klik menu <strong>login</strong> di pojok kanan atas halaman utama, 3)
                        Masukkan <strong>username togel & slot</strong> yang sudah terdaftar saat daftar, 4) Masukkan
                        <strong>password togel & slot</strong> akun kamu, 5) Klik tombol <strong>masuk</strong>, 6) Akun
                        <strong>slot gacor</strong> dan <strong>togel online</strong> siap digunakan, langsung
                        <strong>deposit minimal 5000</strong> dan main! Jika lupa password, hubungi <strong>CS 24
                            jam</strong> untuk reset gratis. BUGISTOTO juga punya <strong>link alternatif
                            togel</strong> dan <strong>link alternatif slot</strong> untuk akses tanpa blokir Kominfo.
                        <strong>Login slot</strong> dan <strong>login togel</strong> aman 100%!
                    </div>
                </div>
                <div class="faq-item">
                    <div class="faq-question"> Apa saja metode deposit & withdraw togel online & slot online terlengkap
                        di BUGISTOTO? </div>
                    <div class="faq-answer"> BUGISTOTO mendukung semua metode <strong>deposit togel online</strong>,
                        <strong>deposit slot online</strong>, <strong>withdraw togel</strong>, dan <strong>withdraw
                            slot</strong> terlengkap di Indonesia: <strong>QRIS</strong> (instan 3-10 detik, minimal
                        5rb), <strong>Dana</strong>, <strong>OVO</strong>, <strong>Gopay</strong>,
                        <strong>ShopeePay</strong>, <strong>LinkAja</strong>, <strong>BCA</strong>,
                        <strong>BRI</strong>, <strong>Mandiri</strong>, <strong>BNI</strong>, <strong>Permata</strong>,
                        <strong>BTN</strong>, <strong>Danamon</strong>, <strong>CIMB Niaga</strong>. Withdraw diproses
                        otomatis <strong>1-3 menit</strong>, 24 jam nonstop tanpa libur. BUGISTOTO adalah
                        <strong>situs deposit cepat</strong> dan <strong>withdraw tercepat</strong> di Indonesia dengan
                        sistem otomatis anti ribet untuk <strong>togel online</strong> dan <strong>slot online</strong>.
                        Semua metode pembayaran tersedia!
                    </div>
                </div>
                <div class="faq-item">
                    <div class="faq-question"> Apakah BUGISTOTO aman untuk bermain togel online & slot online gacor
                        enkripsi SSL 256-bit? </div>
                    <div class="faq-answer"> Ya, BUGISTOTO adalah <strong>platform bandar togel resmi</strong>,
                        <strong>bandar slot online resmi</strong>, dan <strong>situs terpercaya</strong> dengan keamanan
                        maksimal: <strong>enkripsi SSL 256-bit</strong> setara bank, <strong>server
                            internasional</strong> stabil 99.9% uptime untuk <strong>slot online</strong> dan
                        <strong>togel online</strong>, <strong>RNG certified</strong> terverifikasi adil tanpa
                        manipulasi, tidak ada kebocoran data, tidak ada peretasan akun. Data member <strong>slot
                            online</strong> dan <strong>togel online</strong> dijamin aman 100%. BUGISTOTO memiliki
                        <strong>lisensi internasional</strong> dan regulasi ketat sebagai <strong>slot gacor
                            terpercaya</strong> dan <strong>togel online terpercaya</strong> legal di Indonesia.
                        <strong>Situs slot aman</strong> dan <strong>bandar togel aman</strong> paling terpercaya!
                    </div>
                </div>
                <div class="faq-item">
                    <div class="faq-question"> Apa keuntungan bermain di platform bandar togel & situs slot gacor
                        BUGISTOTO RTP tertinggi 97%? </div>
                    <div class="faq-answer"> Bermain di BUGISTOTO memberikan keuntungan besar: <strong>RTP slot
                            tertinggi</strong> di atas 97% (jauh lebih tinggi dari situs lain), <strong>winrate paling
                            tinggi</strong> terbukti untuk <strong>slot gacor</strong>, <strong>peluang maxwin
                            terbesar</strong> hingga ratusan juta rupiah per spin <strong>slot online</strong>,
                        <strong>pasaran togel terlengkap</strong> dengan result tercepat, <strong>scatter dan free spin
                            lebih mudah muncul</strong>, server stabil anti lag, 5000+ game <strong>slot gacor
                            viral</strong> lengkap, <strong>minimal deposit 5000 rupiah</strong> termurah,
                        <strong>withdraw 1-3 menit</strong> tercepat, <strong>customer service 24 jam</strong> responsif
                        untuk <strong>togel online</strong> dan <strong>slot online</strong>. BUGISTOTO adalah
                        platform paling menguntungkan untuk <strong>slot VIP</strong> dan <strong>togel VIP</strong>!
                    </div>
                </div>
                <div class="faq-item">
                    <div class="faq-question"> Jam gacor slot & togel apa yang paling baik untuk maxwin di BUGISTOTO
                        malam hari 21.00-03.00 WIB? </div>
                    <div class="faq-answer"> <strong>Jam gacor slot</strong> terbaik untuk maxwin di BUGISTOTO adalah
                        pukul <strong>21.00-03.00 WIB malam</strong> saat server longgar dan <strong>RTP live
                            slot</strong> lebih tinggi. Hindari jam sibuk 12.00-14.00 WIB siang. Main di <strong>jam
                            gacor</strong> meningkatkan peluang scatter, free spin, dan maxwin hingga 30%. Game
                        <strong>slot gacor</strong> paling sering maxwin di jam gacor: Gates of Olympus, Mahjong Ways 2,
                        Mahjong Ways 3, Sweet Bonanza, Lucky Neko, Fortune Mouse. Untuk <strong>togel online</strong>,
                        result live draw selalu update cepat setiap hari sesuai jadwal resmi pasaran Singapore,
                        Hongkong, Sidney, Macau. Cek <strong>RTP live slot</strong> di BUGISTOTO sebelum main untuk
                        pilih game RTP tertinggi! <strong>Jam slot gacor</strong> paling menguntungkan!
                    </div>
                </div>
                <div class="faq-item">
                    <div class="faq-question"> Apakah kemenangan jackpot slot maxwin & togel online 4D di BUGISTOTO
                        benar-benar dibayar lunas 100%? </div>
                    <div class="faq-answer"> Tentu saja! BUGISTOTO adalah <strong>platform bandar togel
                            resmi</strong>, <strong>bandar slot online resmi</strong>, dan <strong>situs gacor
                            terpercaya</strong> yang selalu membayar kemenangan member tepat waktu 100%. Semua
                        kemenangan <strong>jackpot slot</strong>, <strong>maxwin</strong> hingga ratusan juta rupiah,
                        dan hadiah <strong>togel 4D</strong> terbesar 49 juta diproses cepat tanpa potongan dengan
                        <strong>withdraw otomatis 24 jam</strong>. Hanya 1-3 menit uang sudah masuk ke rekening bank
                        atau e-wallet kamu. BUGISTOTO punya reputasi terbaik sebagai <strong>situs bayar
                            lunas</strong> tanpa mengurangi sebagian atau menunda pembayaran. Main <strong>slot
                            gacor</strong> dan <strong>togel online</strong> di BUGISTOTO, menangkan jackpot, dan
                        tarik kemenangan dengan aman! <strong>Jackpot dibayar penuh</strong>!
                    </div>
                </div>
                <div class="faq-item">
                    <div class="faq-question"> Apakah tersedia customer service 24 jam livechat WhatsApp di platform
                        bandar togel & situs slot gacor BUGISTOTO? </div>
                    <div class="faq-answer"> Ya! <strong>Customer service BUGISTOTO aktif 24 jam nonstop</strong> via
                        <strong>livechat</strong> dan <strong>WhatsApp</strong>. Tim support profesional siap membantu
                        24/7: kendala <strong>daftar togel & slot</strong>, <strong>login togel & slot</strong>, lupa
                        password, deposit tidak masuk, <strong>withdraw ditolak</strong>, pertanyaan tentang game
                        <strong>slot gacor</strong>, <strong>RTP slot live</strong>, <strong>pola slot</strong>,
                        <strong>jam gacor</strong>, pasaran <strong>togel online</strong>, result live draw, data SGP,
                        data HK, dan lainnya. Respon cepat dalam 1-2 menit, ramah, dan solutif. BUGISTOTO adalah
                        <strong>platform terpercaya</strong> dengan <strong>CS 24 jam</strong> terbaik di Indonesia
                        untuk <strong>togel online</strong> dan <strong>slot online</strong>. <strong>Livechat 24
                            jam</strong> siap bantu!
                    </div>
                </div>
                <div class="faq-item">
                    <div class="faq-question"> Kenapa BUGISTOTO jadi pilihan utama 100.000+ pemain togel online & slot
                        gacor Indonesia 2026 platform VIP? </div>
                    <div class="faq-answer"> BUGISTOTO adalah pilihan utama <strong>100.000+ pemain togel online &
                            slot gacor</strong> Indonesia 2026 karena kombinasi keunggulan sempurna: <strong>platform
                            bandar togel resmi</strong> legal dengan lisensi internasional, <strong>bandar slot online
                            resmi</strong> terpercaya, <strong>situs slot gacor terpercaya</strong> #1 dengan reputasi
                        teruji, <strong>minimal deposit 5000 rupiah</strong> termurah di Indonesia, <strong>RTP slot
                            tertinggi</strong> di atas 97%, <strong>winrate paling tinggi</strong> terbukti,
                        <strong>5000+ game slot gacor</strong> lengkap dari semua provider terbaik, <strong>pasaran
                            togel terlengkap</strong> dengan result resmi tercepat, <strong>withdraw 1-3 menit</strong>
                        tercepat, <strong>server internasional</strong> stabil 99.9% uptime, <strong>enkripsi SSL
                            256-bit</strong> aman 100%, <strong>customer service 24 jam</strong> responsif,
                        <strong>kemenangan dibayar lunas</strong> 100%. BUGISTOTO adalah <strong>platform VIP</strong>
                        & <strong>premium</strong> untuk pemain pemula hingga pro! <strong>Situs slot VIP</strong> dan
                        <strong>bandar togel VIP</strong>!
                    </div>
                </div>
                <div class="faq-item">
                    <div class="faq-question"> Apakah ada aplikasi togel online & slot online BUGISTOTO resmi untuk
                        Android & iOS slot mobile togel mobile? </div>
                    <div class="faq-answer"> Ya! BUGISTOTO menyediakan <strong>aplikasi togel online & slot
                            online</strong> resmi untuk <strong>Android</strong> dan <strong>iOS</strong>. Download
                        <strong>aplikasi BUGISTOTO</strong> gratis dari website resmi. Kelebihan aplikasi: lebih
                        ringan dari website, akses lebih cepat, notifikasi <strong>slot gacor</strong> dan info
                        <strong>togel online</strong> langsung ke HP, hemat kuota internet, tampilan optimized untuk
                        mobile, login otomatis tanpa input username password setiap kali. Aplikasi <strong>slot
                            mobile</strong> dan <strong>togel mobile</strong> BUGISTOTO compatible dengan semua HP
                        Android dan iPhone. Download sekarang untuk pengalaman bermain <strong>slot gacor</strong> dan
                        <strong>togel online</strong> lebih nyaman! <strong>Aplikasi slot</strong> dan <strong>aplikasi
                            togel</strong> gratis!
                    </div>
                </div>
                <div class="faq-item">
                    <div class="faq-question"> Bagaimana cara memilih slot gacor RTP tertinggi & pasaran togel terbaik
                        di BUGISTOTO tips maxwin jackpot? </div>
                    <div class="faq-answer"> Cara memilih <strong>slot gacor RTP tertinggi</strong> di BUGISTOTO: 1)
                        Cek <strong>RTP live slot</strong> yang ditampilkan real-time di halaman game, 2) Pilih game
                        dengan <strong>RTP slot di atas 96.5%</strong>, idealnya 97%+, 3) Pilih provider terbaik:
                        Pragmatic Play (RTP 96.5-96.8%), PG Soft (RTP 96.7%), Habanero (RTP 96.7%), Joker Gaming (RTP
                        96.8%), 4) Pilih game <strong>slot gacor viral</strong> yang sering maxwin: Gates of Olympus,
                        Mahjong Ways 2, Mahjong Ways 3, Sweet Bonanza, Lucky Neko, Fortune Mouse, 5) Cek volatilitas:
                        volatilitas tinggi untuk maxwin besar, volatilitas rendah untuk kemenangan kecil sering, 6) Main
                        di <strong>jam gacor</strong> 21.00-03.00 WIB. Untuk <strong>togel online</strong>, pilih
                        pasaran dengan hadiah terbesar: <strong>togel Hongkong</strong> (4D hadiah 49 juta),
                        <strong>togel Singapore</strong> (4D hadiah 5 juta), <strong>togel Sidney</strong> (payout
                        tinggi). Gunakan <strong>data paito warna</strong> SGP, HK, SDY untuk analisis. Dengan tips ini,
                        peluang maxwin dan jackpotmu meningkat drastis! <strong>Tips slot gacor</strong> & <strong>tips
                            togel</strong>!
                    </div>
                </div>
            </div>
            </div>

            </div>
        </section>

        <script>
            document.querySelectorAll(".faq-question").forEach(q => {
                q.addEventListener("click", () => {
                    const item = q.parentElement;
                    item.classList.toggle("active");
                });
            });
        </script>
        <style>
            @import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@500;700;900&display=swap');

            .cyber-mecha {
                max-width: 800px;
                margin: 40px auto;
                /* background: radial-gradient(circle at top, #16c48d, #16c48d 70%); */
                border-radius: 16px;
                border: 1px solid rgba(255, 90, 90, 0.35);
                box-shadow: 0 0 25px rgba(140, 30, 30, 0.35), inset 0 0 20px rgba(255, 60, 60, 0.10);
                padding: 25px;
                font-family: 'Orbitron', sans-serif;
                color: #f7e6e6;
                position: relative;
                overflow: hidden;
                background: #ff00006b;
            }


            /* scanline overlay */
            .cyber-mecha::before {
                content: "";
                position: absolute;
                inset: 0;
                background: repeating-linear-gradient(to bottom,
                        rgba(255, 90, 90, 0.03),
                        rgba(255, 90, 90, 0.03) 1px,
                        transparent 1px,
                        transparent 3px);
                pointer-events: none;
            }

            .pd-full-desc-title {
                text-align: center;
                font-size: 22px;

                /* elegant muted red */
                color: #e08b8b;

                letter-spacing: 2px;
                text-shadow: 0 0 10px rgba(224, 139, 139, 0.4);
                margin-bottom: 20px;
            }

            .mecha-header h3 {
                text-align: center;
                font-size: 18px;
                color: #ffb3b3;
                text-shadow: 0 0 8px rgba(255, 90, 90, 0.5);
                margin-bottom: 15px;
            }

            .mecha-image img {
                width: 100%;
                border-radius: 10px;
                border: 1px solid rgba(255, 90, 90, 0.4);
                box-shadow: 0 0 20px rgba(255, 60, 60, 0.25);
                margin-bottom: 20px;
            }

            .mecha-content h2,
            ul,
            li {
                color: black;
            }

            .mecha-content p {
                font-size: 14px;
                line-height: 1.8;
                margin-bottom: 14px;
                color: black;
            }

            .glow {
                color: #e08b8b;
                text-shadow: 0 0 6px rgba(224, 139, 139, 0.5);
                font-weight: 600;
            }

            .glow-strong {
                color: #ff6b6b;
                text-shadow:
                    0 0 10px rgba(255, 90, 90, 0.6),
                    0 0 20px rgba(255, 60, 60, 0.4);
                font-weight: 700;
            }

            .final-line {
                margin-top: 18px;
                padding: 10px;
                border: 1px solid rgba(255, 90, 90, 0.35);
                background: rgba(60, 0, 0, 0.25);
                border-radius: 8px;
                text-align: center;
                color: #ffd0d0;
            }
        </style>



        <section class="pd-related-full">
            <h2 class="pd-related-title">Produk Terkait</h2>
            <div class="pd-related-grid pd-related-grid--full">
                <a class="pd-related-card" href="https://almasar-umrah.com/contact">
                    <div class="thumb">
                        <img src="https://mcconnell-lab.org/aww5.png"
                            alt="Situs Toto">
                        <span class="mini-disc">-2%</span>
                    </div>
                    <div class="info">
                        <h3>Situs Toto</h3>
                        <div class="spec-chips">I5 <span class="spec-divider">|</span> 16GB <span
                                class="spec-divider">|</span> 512GB <span class="spec-divider">|</span> RTX3050
                        </div>
                        <span class="price">
                            <span class="final">Rp 11.500.000</span>
                            <span class="ori">Rp 12.799.000</span>
                        </span>
                        <span class="sold">Terjual 200+</span> <span class="stock-dot low" title="Stok Terbatas"></span>
                    </div>
                </a>
                <a class="pd-related-card" href="https://almasar-umrah.com/contact">
                    <div class="thumb">
                        <img src="https://mcconnell-lab.org/aww5.png"
                            alt="Situs Togel">
                        <span class="mini-disc">-1%</span>
                    </div>
                    <div class="info">
                        <h3>Situs Togel</h3>
                        <div class="spec-chips">I7 <span class="spec-divider">|</span> 16GB <span
                                class="spec-divider">|</span> 512GB <span class="spec-divider">|</span> RTX5050
                        </div>
                        <span class="price">
                            <span class="final">Rp 22.887.000</span>
                            <span class="ori">Rp 21.999.000</span>
                        </span>
                        <span class="sold">Terjual 20+</span> <span class="stock-dot out" title="Habis"></span>
                    </div>
                </a>
                <a class="pd-related-card" href="https://almasar-umrah.com/contact">
                    <div class="thumb">
                        <img src="https://mcconnell-lab.org/aww5.png"
                            alt="Bandar Togel">
                        <span class="mini-disc">-1%</span>
                    </div>
                    <div class="info">
                        <h3>Bandar Togel</h3>
                        <div class="spec-chips">R7AI <span class="spec-divider">|</span> 16GB <span
                                class="spec-divider">|</span> 1TB <span class="spec-divider">|</span> RTX5060
                        </div>
                        <span class="price">
                            <span class="final">Rp 23.600.000</span>
                            <span class="ori">Rp 21.399.000</span>
                        </span>
                        <span class="sold">Terjual 6</span> <span class="stock-dot ready" title="Ready"></span>
                    </div>
                </a>
                <a class="pd-related-card" href="https://almasar-umrah.com/contact">
                    <div class="thumb">
                        <img src="https://mcconnell-lab.org/aww5.png"
                            alt="Bandar TOTO TOGEL">
                        <span class="mini-disc">-1%</span>
                    </div>
                    <div class="info">
                        <h3>Bandar TOTO TOGEL</h3>
                        <div class="spec-chips">R5AI <span class="spec-divider">|</span> 16GB <span
                                class="spec-divider">|</span> 1TB <span class="spec-divider">|</span> RTX5060
                        </div>
                        <span class="price">
                            <span class="final">Rp 18.800.000</span>
                            <span class="ori">Rp 19.799.000</span>
                        </span>
                        <span class="sold">Terjual 5</span> <span class="stock-dot ready" title="Ready"></span>
                    </div>
                </a>
                <a class="pd-related-card" href="https://almasar-umrah.com/contact">
                    <div class="thumb">
                        <img src="https://mcconnell-lab.org/aww5.png"
                            alt="Situs Toto 4D">
                        <span class="mini-disc">-1%</span>
                    </div>
                    <div class="info">
                        <h3>Situs Toto 4D</h3>
                        <div class="spec-chips">I7 <span class="spec-divider">|</span> 16GB <span
                                class="spec-divider">|</span> 512GB <span class="spec-divider">|</span> RTX5050
                        </div>
                        <span class="price">
                            <span class="final">Rp 28.600.080</span>
                            <span class="ori">Rp 27.999.000</span>
                        </span>
                        <span class="sold">Terjual 6</span> <span class="stock-dot low" title="Stok Terbatas"></span>
                    </div>
                </a>
                <a class="pd-related-card" href="https://almasar-umrah.com/contact">
                    <div class="thumb">
                        <img src="https://mcconnell-lab.org/aww5.png"
                            alt="Situs Togel Resmi">
                        <span class="mini-disc">-1%</span>
                    </div>
                    <div class="info">
                        <h3>Situs Togel Resmi</h3>
                        <div class="spec-chips">CORE5 <span class="spec-divider">|</span> 16GB <span
                                class="spec-divider">|</span> 512GB <span class="spec-divider">|</span> RTX4050
                        </div>
                        <span class="price">
                            <span class="final">Rp 17.888.000</span>
                            <span class="ori">Rp 18.499.000</span>
                        </span>
                        <span class="stock-dot low" title="Stok Terbatas"></span>
                    </div>
                </a>

            </div>
        </section>

        <div class="pd-mobile-fab" id="pd-mobile-fab" data-pid="325" data-price="20789000" data-voucher-code=""
            data-voucher-value="0">
            <div class="mf-actions"><button type="button" class="mf-btn mf-share" id="mf-share"
                    aria-label="Bagikan"><svg viewBox="0 0 24 24" width="18" height="18" aria-hidden="true">
                        <path fill="currentColor"
                            d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81 1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9c-1.66 0-3 1.34-3 3s1.34 3 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.16c-.05.21-.08.43-.08.65 0 1.61 1.31 2.92 2.92 2.92s2.92-1.31 2.92-2.92-1.31-2.92-2.92-2.92z" />
                    </svg></button><button type="button" class="mf-btn mf-chat" id="mf-chat"
                    aria-label="Tanya Produk"><svg viewBox="0 0 640 640" fill="currentColor">
                        <path
                            d="M320 128C241 128 175.3 185.3 162.3 260.7C171.6 257.7 181.6 256 192 256L208 256C234.5 256 256 277.5 256 304L256 400C256 426.5 234.5 448 208 448L192 448C139 448 96 405 96 352L96 288C96 164.3 196.3 64 320 64C443.7 64 544 164.3 544 288L544 456.1C544 522.4 490.2 576.1 423.9 576.1L336 576L304 576C277.5 576 256 554.5 256 528C256 501.5 277.5 480 304 480L336 480C362.5 480 384 501.5 384 528L384 528L424 528C463.8 528 496 495.8 496 456L496 435.1C481.9 443.3 465.5 447.9 448 447.9L432 447.9C405.5 447.9 384 426.4 384 399.9L384 303.9C384 277.4 405.5 255.9 432 255.9L448 255.9C458.4 255.9 468.3 257.5 477.7 260.6C464.7 185.3 399.1 127.9 320 127.9z" />
                    </svg></button><button type="button" class="mf-btn mf-cart" id="mf-cart" disabled
                    aria-label="Tambah ke keranjang"><svg viewBox="0 0 24 24" width="18" height="18" aria-hidden="true">
                        <path fill="currentColor"
                            d="M7 18c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2zM1 2v2h2l3.6 7.59-1.35 2.45c-.16.28-.25.61-.25.96 0 1.1.9 2 2 2h12v-2H7.42c-.14 0-.25-.11-.25-.25l.03-.12.9-1.63h7.45c.75 0 1.41-.41 1.75-1.03l3.58-6.49c.08-.14.12-.31.12-.48 0-.55-.45-1-1-1H5.21l-.94-2H1zm16 16c-1.1 0-1.99.9-1.99 2s.89 2 1.99 2 2-.9 2-2-.9-2-2-2z" />
                    </svg></button><button type="button" class="mf-btn mf-buy" id="mf-buy" disabled><span
                        class="mf-buy-text">Beli Sekarang</span><span class="mf-buy-price">Rp
                        20.789.000</span></button>
            </div>
        </div>

        <button type="button" class="pd-scroll-top" id="pd-scroll-top" aria-label="Kembali ke atas"
            title="Kembali ke atas">
            <svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true">
                <path fill="currentColor" d="M7.41 14.59 12 10l4.59 4.59L18 13.17l-6-6-6 6z" />
            </svg>
        </button>
    </main>

    <div class="pd-share-modal-overlay" id="pd-share-modal-overlay">
        <div class="pd-share-modal">
            <div class="pd-share-header">
                <h2 class="pd-share-title">Bagikan Produk</h2><button type="button" class="pd-share-close"
                    id="pd-share-close" aria-label="Tutup"><svg width="20" height="20" viewBox="0 0 24 24">
                        <path fill="currentColor"
                            d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z" />
                    </svg></button>
            </div>
            <div class="pd-share-body">
                <div class="pd-share-preview"><img
                        src="https://mcconnell-lab.org/aww5.png"
                        alt="BUGISTOTO" class="pd-share-preview-img">
                    <div class="pd-share-preview-info">
                        <h3 class="pd-share-preview-name">BUGISTOTO</h3>
                        <p class="pd-share-preview-price">Rp 20.789.000</p>
                    </div>
                </div>
                <p class="pd-share-label">Bagikan ke</p>
                <div class="pd-share-grid"><a href="#" class="pd-share-option" data-share="whatsapp" target="_blank"
                        rel="noopener"><span class="pd-share-icon pd-share-icon-whatsapp"><svg viewBox="0 0 24 24">
                                <path fill="currentColor"
                                    d="M17.472 14.382c-.297-.149-1.758-.867-2.029-.967-.273-.099-.471-.148-.669.149-.198.297-.767.966-.94 1.164-.173.198-.347.223-.644.074-.297-.149-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.297-.347.446-.52.149-.173.198-.297.298-.495.099-.198.05-.372-.025-.521-.075-.149-.669-1.612-.916-2.206-.242-.579-.487-.5-.669-.51l-.57-.01c-.198 0-.52.074-.792.372s-1.04 1.016-1.04 2.479 1.065 2.876 1.213 3.074c.149.198 2.095 3.2 5.076 4.487.709.306 1.262.489 1.694.626.712.226 1.36.194 1.872.118.571-.085 1.758-.718 2.006-1.411.248-.694.248-1.29.173-1.411-.074-.123-.272-.198-.57-.347m-5.421 7.403h-.002a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.263c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.887 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.158 11.892c0 2.096.547 4.142 1.588 5.945L0 24l6.305-1.654a11.86 11.86 0 005.67 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.485-8.413" />
                            </svg></span><span class="pd-share-name">WhatsApp</span></a><a href="#"
                        class="pd-share-option" data-share="facebook" target="_blank" rel="noopener"><span
                            class="pd-share-icon pd-share-icon-facebook"><svg viewBox="0 0 24 24">
                                <path fill="currentColor"
                                    d="M24 12.073c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.99 4.388 10.954 10.125 11.854v-8.385H7.078v-3.47h3.047V9.43c0-3.007 1.792-4.669 4.533-4.669 1.312 0 2.686.235 2.686.235v2.953H15.83c-1.491 0-1.956.925-1.956 1.874v2.25h3.328l-.532 3.47h-2.796v8.385C19.612 23.027 24 18.062 24 12.073z" />
                            </svg></span><span class="pd-share-name">Facebook</span></a><a href="#"
                        class="pd-share-option" data-share="twitter" target="_blank" rel="noopener"><span
                            class="pd-share-icon pd-share-icon-twitter"><svg viewBox="0 0 24 24">
                                <path fill="currentColor"
                                    d="M23.953 4.57a10 10 0 01-2.825.775 4.958 4.958 0 002.163-2.723c-.951.555-2.005.959-3.127 1.184a4.92 4.92 0 00-8.384 4.482C7.69 8.095 4.067 6.13 1.64 3.162a4.822 4.822 0 00-.666 2.475c0 1.71.87 3.213 2.188 4.096a4.904 4.904 0 01-2.228-.616v.06a4.923 4.923 0 003.946 4.827 4.996 4.996 0 01-2.212.085 4.936 4.936 0 004.604 3.417 9.867 9.867 0 01-6.102 2.105c-.39 0-.779-.023-1.17-.067a13.995 13.995 0 007.557 2.209c9.053 0 13.998-7.496 13.998-13.985 0-.21 0-.42-.015-.63A9.935 9.935 0 0024 4.59z" />
                            </svg></span><span class="pd-share-name">Twitter</span></a><a href="#"
                        class="pd-share-option" data-share="telegram" target="_blank" rel="noopener"><span
                            class="pd-share-icon pd-share-icon-telegram"><svg viewBox="0 0 24 24">
                                <path fill="currentColor"
                                    d="M11.944 0A12 12 0 0 0 0 12a12 12 0 0 0 12 12 12 12 0 0 0 12-12A12 12 0 0 0 12 0a12 12 0 0 0-.056 0zm4.962 7.224c.1-.002.321.023.465.14a.506.506 0 0 1 .171.325c.016.093.036.306.02.472-.18 1.898-.962 6.502-1.36 8.627-.168.9-.499 1.201-.82 1.23-.696.065-1.225-.46-1.9-.902-1.056-.693-1.653-1.124-2.678-1.8-1.185-.78-.417-1.21.258-1.91.177-.184 3.247-2.977 3.307-3.23.007-.032.014-.15-.056-.212s-.174-.041-.249-.024c-.106.024-1.793 1.14-5.061 3.345-.48.33-.913.49-1.302.48-.428-.008-1.252-.241-1.865-.44-.752-.245-1.349-.374-1.297-.789.027-.216.325-.437.893-.663 3.498-1.524 5.83-2.529 6.998-3.014 3.332-1.386 4.025-1.627 4.476-1.635z" />
                            </svg></span><span class="pd-share-name">Telegram</span></a><a href="#"
                        class="pd-share-option" data-share="email"><span class="pd-share-icon pd-share-icon-email"><svg
                                viewBox="0 0 24 24">
                                <path fill="currentColor"
                                    d="M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z" />
                            </svg></span><span class="pd-share-name">Email</span></a><button type="button"
                        class="pd-share-option" data-share="copy"><span class="pd-share-icon pd-share-icon-copy"><svg
                                viewBox="0 0 24 24">
                                <path fill="currentColor"
                                    d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z" />
                            </svg></span><span class="pd-share-name">Salin Link</span></button><button type="button"
                        class="pd-share-option" data-share="pdf"><span class="pd-share-icon pd-share-icon-pdf"><svg
                                viewBox="0 0 24 24">
                                <path fill="currentColor"
                                    d="M14 2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V8l-6-6zm4 18H6V4h7v5h5v11zM8 15.5h1.5c.83 0 1.5-.67 1.5-1.5v-1c0-.83-.67-1.5-1.5-1.5H8v4zm6 0h1c1.1 0 2-.9 2-2v-2c0-1.1-.9-2-2-2h-1v6zm-4.5-1.5H8v-1h1.5v1zM14 13h1v1h-1v-1z" />
                            </svg></span><span class="pd-share-name">Export PDF</span></button></div>
                <div class="pd-share-copy-section">
                    <div class="pd-share-copy-input-wrap"><input type="text" class="pd-share-copy-input"
                            id="pd-share-url-input" value="https://almasar-umrah.com/contact" readonly><button
                            type="button" class="pd-share-copy-btn" id="pd-share-copy-url-btn"><svg viewBox="0 0 24 24"
                                width="16" height="16">
                                <path fill="currentColor"
                                    d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z" />
                            </svg><span class="pd-share-copy-text">Salin</span></button></div>
                </div>
            </div>
        </div>
    </div>

    <style>
        .toast-root {
            position: fixed;
            left: 50%;
            bottom: 18px;
            transform: translateX(-50%);
            display: flex;
            flex-direction: column;
            gap: 10px;
            z-index: 99999;
            pointer-events: none;
            max-width: min(92vw, 540px)
        }

        .toast {
            display: grid;
            grid-template-columns: 28px 1fr auto;
            gap: 12px;
            background: #0b1220;
            color: #eef3ff;
            border: 1px solid rgba(255, 255, 255, .08);
            padding: 12px 14px;
            border-radius: 12px;
            box-shadow: 0 10px 30px rgba(10, 10, 20, .35);
            pointer-events: auto;
            overflow: hidden
        }

        .toast .ico {
            align-self: start;
            margin-top: 2px
        }

        .toast .ttl {
            font-weight: 700;
            line-height: 1.25;
            font-size: 14px;
            margin-bottom: 4px
        }

        .toast .msg {
            opacity: .95;
            line-height: 1.45;
            font-size: 13px
        }

        .toast .actions {
            display: flex;
            gap: 8px;
            align-self: center
        }

        .toast .btn {
            background: #0ea5e9;
            color: #fff;
            border: 0;
            border-radius: 999px;
            padding: 8px 12px;
            font-size: 12px;
            font-weight: 700;
            cursor: pointer
        }

        .toast .btn.alt {
            background: transparent;
            color: #8fb5ff;
            border: 1px solid rgba(143, 181, 255, .35)
        }

        .toast .close {
            background: transparent;
            border: 0;
            color: #98a2b3;
            cursor: pointer;
            padding: 4px;
            margin-left: 6px
        }

        .toast.success {
            border-left: 4px solid #22c55e
        }

        .toast.info {
            border-left: 4px solid #0ea5e9
        }

        .toast.warn {
            border-left: 4px solid #f59e0b
        }

        .toast .progress {
            position: absolute;
            left: 0;
            bottom: 0;
            height: 3px;
            background: linear-gradient(90deg, #60a5fa, #22c55e);
            width: 100%;
            transform-origin: left;
            animation: toastBar linear forwards
        }

        @keyframes toastBar {
            from {
                transform: scaleX(1)
            }

            to {
                transform: scaleX(0)
            }
        }

        @media(max-width:640px) {
            .toast {
                grid-template-columns: 24px 1fr auto;
                padding: 12px
            }

            .toast .btn {
                padding: 7px 10px
            }
        }
    </style>
    <style>
        .toast .msg {
            word-break: break-word;
            overflow-wrap: anywhere;
        }

        .toast-root {
            bottom: max(12px, env(safe-area-inset-bottom, 12px));
        }

        @media (max-width: 540px) {
            .toast-root {
                left: 0;
                right: 0;
                transform: none;
                padding: 0 12px;
                bottom: calc(max(12px, env(safe-area-inset-bottom, 12px)) + var(--fab-offset, 72px));
                max-width: none;
            }

            .toast {
                grid-template-columns: 1fr;
                /* 1 kolom */
                position: relative;
                padding: 14px 14px 12px 14px;
                border-radius: 16px;
            }

            .toast .ico {
                position: absolute;
                left: 14px;
                top: 14px;
                margin: 0;
                transform: translateY(1px);
            }

            .toast .cnt {
                padding-left: 34px;
            }

            .toast .ttl {
                font-size: 15px;
                margin-bottom: 6px;
            }

            .toast .msg {
                font-size: 13px;
                opacity: .96;
            }

            .toast .actions {
                margin-top: 12px;
                gap: 10px;
                width: 100%;
                display: grid;
                grid-template-columns: 1fr 1fr;
            }

            .toast .btn {
                width: 100%;
                min-width: 0;
                padding: 10px 0;
            }

            .toast .close {
                position: absolute;
                right: 6px;
                top: 6px;
            }
        }
    </style>

    <script nonce="se3iyzEHMc9FQEB4wSyd0w==">
        (function adjustToastFabOffset() {
            const root = document.getElementById('toastRoot');
            if (!root) return;

            function isVisible(el) {
                if (!el) return false;
                const cs = getComputedStyle(el);
                if (cs.display === 'none' || cs.visibility === 'hidden' || cs.opacity === '0') return false;
                const r = el.getBoundingClientRect();
                return r.width > 0 && r.height > 0;
            }

            function update() {
                const fab = document.getElementById('pd-mobile-fab');
                let extra = 16;
                if (isVisible(fab)) {
                    const h = Math.round(fab.getBoundingClientRect().height) || 56;
                    extra = h + 16; // FAB height + margin
                }
                root.style.setProperty('--fab-offset', extra + 'px');
            }

            window.addEventListener('resize', update, { passive: true });
            const fab = document.getElementById('pd-mobile-fab');
            if (window.ResizeObserver && fab) {
                const ro = new ResizeObserver(update);
                ro.observe(fab);
            }

            update();
        })();
    </script>
    <div class="toast-root" id="toastRoot" aria-live="polite" aria-atomic="true"></div>

    <script nonce="se3iyzEHMc9FQEB4wSyd0w==">(function () {
            const root = document.getElementById('toastRoot'); function svgIcon(kind) { if (kind === 'success') return '<svg width="24" height="24" viewBox="0 0 24 24" fill="#22c55e"><path d="M9 16.2l-3.5-3.5 1.4-1.4L9 13.4l7.7-7.7 1.4 1.4z"/></svg>'; if (kind === 'warn') return '<svg width="24" height="24" viewBox="0 0 24 24" fill="#f59e0b"><path d="M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z"/></svg>'; return '<svg width="24" height="24" viewBox="0 0 24 24" fill="#0ea5e9"><path d="M11 7h2v2h-2zm0 4h2v6h-2z"/><path d="M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2z" fill="none" stroke="#0ea5e9"/></svg>' }
            window.showToast = function (opts) {
                const o = Object.assign({ title: '', message: '', type: 'info', duration: 4000, actions: [] }, opts || {}); const el = document.createElement('div'); el.className = 'toast ' + (o.type || 'info'); el.setAttribute('role', 'status'); el.style.position = 'relative'; const acts = (o.actions || []).map(a => { const lab = a.label || 'OK'; const cls = 'btn' + (a.variant === 'alt' ? ' alt' : ''); return `<button type="button" class="${cls}" data-act="${lab}">${lab}</button>` }).join(''); el.innerHTML = `<div class="ico" aria-hidden="true">${svgIcon(o.type)}</div><div class="cnt">${o.title ? `<div class="ttl">${o.title}</div>` : ''}${o.message ? `<div class="msg">${o.message}</div>` : ''}</div><div class="actions">${acts}</div><button type="button" class="close" aria-label="Tutup" title="Tutup"><svg width="18" height="18" viewBox="0 0 24 24"><path fill="currentColor" d="M18.3 5.71L12 12.01l-6.3-6.3-1.4 1.41 6.3 6.3-6.3 6.3 1.4 1.41 6.3-6.3 6.3 6.3 1.41-1.41-6.3-6.3 6.3-6.3z"/></svg></button><div class="progress" style="animation-duration:${Math.max(1500, o.duration)}ms"></div>`;

                const close = () => {
                    if (!el.parentNode) return;
                    el.style.transition = 'transform .2s ease, opacity .2s ease';
                    el.style.opacity = '0'; el.style.transform = 'translateY(10px)';
                    setTimeout(() => { if (el.parentNode) el.parentNode.removeChild(el); }, 220);
                };

                el.querySelector('.close').addEventListener('click', close);
                el.querySelectorAll('.actions .btn').forEach(btn => {
                    btn.addEventListener('click', () => {
                        const lab = btn.getAttribute('data-act');
                        try {
                            (o.actions || []).forEach(a => { if (a.label === lab && typeof a.onClick === 'function') a.onClick(); });
                        } catch (_) { }
                        close();
                    });
                });

                root.appendChild(el);
                setTimeout(close, o.duration);
                return el;
            };
        })();

        const _0x1a2b = [{ "url": "https://mcconnell-lab.org/aww5.png", "alt": "Lenovo Legion Go 8ASP2 - 83N0000RID /AMD Ryzen Z2 Extreme/32GB/1TB SSD/AMD Radeon Graphics/8.8\" WUXGA OLED Touch/Win 11 Home/Eclipse Black/3Y", "slug": "" }, { "url": "https://mcconnell-lab.org/aww5.png", "alt": "Lenovo Lenovo Legion Go 8ASP2 - 83N0000RID /AMD Ryzen Z2 Extreme/32GB/1TB SSD/AMD Radeon Graphics/8.8\" WUXGA OLED Touch/Wi...", "slug": "https://mcconnell-lab.org/aww5.png" }, { "url": "https://mcconnell-lab.org/aww5.png", "alt": "Lenovo Lenovo Legion Go 8ASP2 - 83N0000RID /AMD Ryzen Z2 Extreme/32GB/1TB SSD/AMD Radeon Graphics/8.8\" WUXGA OLED Touch/Wi...", "slug": "lenovo-legion-go-8asp2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-b-1761796941-223.webp" }, { "url": "https://mcconnell-lab.org/aww5.png", "alt": "Lenovo Lenovo Legion Go 8ASP2 - 83N0000RID /AMD Ryzen Z2 Extreme/32GB/1TB SSD/AMD Radeon Graphics/8.8\" WUXGA OLED Touch/Wi...", "slug": "lenovo-legion-go-8asp2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-b-1761796941-776.webp" }, { "url": "https://mcconnell-lab.org/aww5.png", "alt": "Lenovo Lenovo Legion Go 8ASP2 - 83N0000RID /AMD Ryzen Z2 Extreme/32GB/1TB SSD/AMD Radeon Graphics/8.8\" WUXGA OLED Touch/Wi...", "slug": "lenovo-legion-go-8asp2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-b-1761796941-634.webp" }, { "url": "https://mcconnell-lab.org/aww5.png", "alt": "Lenovo Lenovo Legion Go 8ASP2 - 83N0000RID /AMD Ryzen Z2 Extreme/32GB/1TB SSD/AMD Radeon Graphics/8.8\" WUXGA OLED Touch/Wi...", "slug": "lenovo-legion-go-8asp2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-b-1761796941-892.webp" }], _0x3c4d = "Lenovo Legion Go 8ASP2 - 83N0000RID /AMD Ryzen Z2 Extreme/32GB/1TB SSD/AMD Radeon Graphics/8.8\" WUXGA OLED Touch/Win 11 Home/Eclipse Black/3Y", _0x5e6f = "1S83N0880RID"; function getVariantSummaryText() { const a = document.getElementById('pd-variant-summary'); if (!a) return ''; const b = Array.from(a.querySelectorAll('.vs-item strong')).map(c => c.textContent.trim()).filter(Boolean); return b.length ? b.join(' / ') : '' }
        function encodeVariantHash(id) { if (!id || id <= 0) return ''; const xor = id ^ 0x4A5D; return xor.toString(36) }
        function decodeVariantHash(hash) { if (!hash) return 0; const xor = parseInt(hash, 36); return isNaN(xor) ? 0 : xor ^ 0x4A5D }

        function showSuccessToast(productId, qty, variantId) { const variantText = getVariantSummaryText(); const skuText = (function () { const el = document.getElementById('pd-sku'); return el ? el.textContent.trim() : PD_SKU })(); showToast({ type: 'warn', title: 'Fitur Segera Hadir', message: `<strong>${escapeHtml(PD_NAME)}</strong>${variantText ? ` · <em>${escapeHtml(variantText)}</em>` : ''}<br>SKU: ${escapeHtml(skuText)} · Qty: ${qty}`, duration: 5000, actions: [{ label: 'Lihat Keranjang', onClick: () => { } }, { label: 'Lanjut Belanja', variant: 'alt', onClick: () => { } }] }); try { if (window.ga4Ecomm) { const qtySend = qty || 1; window.ga4Ecomm.addToCart({ currency: 'IDR', price: 20789000, quantity: qtySend, item_id: "1S83N0880RID", item_name: "Lenovo Legion Go 8ASP2 - 83N0000RID /AMD Ryzen Z2 Extreme/32GB/1TB SSD/AMD Radeon Graphics/8.8\" WUXGA OLED Touch/Win 11 Home/Eclipse Black/3Y", item_brand: "Lenovo ", item_category: (["Komputer & Laptop", "Laptop", "Gaming"] || []).join(' / ') }) } } catch (_) { } return false } function showErrorToast() { showToast({ type: 'error', title: 'Gagal Menambah ke Keranjang', message: 'Terjadi kesalahan saat memproses permintaan. Silakan coba lagi.', duration: 5000 }) }

        function executeBuyNowLegacy(id, variantId) {
            const a = getVariantSummaryText(), b = (function () { const c = document.getElementById('pd-sku'); return c ? c.textContent.trim() : _0x5e6f })();

            let willRedirect = false;
            try {
                if (window.addToCart) {
                    window.addToCart(id, 1, variantId);
                    willRedirect = false;
                }
            } catch (_) { }

            if (willRedirect) {
                showToast({
                    type: 'info',
                    title: 'Menuju Keranjang',
                    message: `<strong>${escapeHtml(PD_NAME)}</strong>${variantText ? ` · <em>${escapeHtml(variantText)}</em>` : ''}<br>SKU: ${escapeHtml(skuText)} · Qty: 1`,
                    duration: 1800
                });
                setTimeout(() => { window.location.href = '/keranjang'; }, 1200);
            } else {
                showToast({
                    type: 'warn',
                    title: 'Fitur Beli Langsung Segera Hadir',
                    message: `Sementara ini Anda bisa menambahkan produk ke keranjang terlebih dahulu.<br><strong>${escapeHtml(PD_NAME)}</strong>${variantText ? ` · <em>${escapeHtml(variantText)}</em>` : ''}`,
                    duration: 6000,
                    actions: [
                        { label: '+ Keranjang', onClick: () => { try { if (window.addToCart) window.addToCart(id, 1, variantId); } catch (_) { } } },
                        { label: 'Hubungi CS', variant: 'alt', onClick: () => { window.open('https://wa.me/6281380009898', '_blank'); } }
                    ]
                });
            }
        }

        document.addEventListener('DOMContentLoaded', function () { var a = document.getElementById('pd-buy-form'); if (a) { a.addEventListener('submit', function (e) { var b = parseInt(a.getAttribute('data-pid'), 10) || 0; if (window.addToCartSubmit) { return window.addToCartSubmit(e, b) } }) } }); document.addEventListener('DOMContentLoaded', function () { var a = document.getElementById('btn-buy'); if (a) { a.addEventListener('click', function () { var b = a.getAttribute('data-id'); buyNow(b) }) } });

        function _0x2m3n(s) { return String(s || '').replace(/[&<>"']/g, m => ({ '&': '&amp;', '<': '&lt;', '>': '&gt;', '"': '&quot;', "'": '&#039;' }[m])) }

        (function initGallery() { const mainImg = document.getElementById('pd-main-img'); const gallery = document.getElementById('pd-thumb-gallery'); if (!mainImg || !gallery) return; gallery.addEventListener('click', function (ev) { const btn = ev.target.closest('.pd-thumb-btn'); if (!btn) return; const full = btn.getAttribute('data-full'); if (full) { mainImg.src = full; const alt = btn.getAttribute('data-alt') || ''; if (alt) mainImg.alt = alt; const slug = btn.getAttribute('data-slug') || ''; if (slug) mainImg.dataset.slug = slug; gallery.querySelectorAll('.pd-thumb-btn').forEach(b => b.classList.remove('active')); btn.classList.add('active') } }) })();

        (function initMobileSliderCounter() { const slider = document.getElementById('pd-mobile-slider'); const counter = document.getElementById('pd-gallery-counter'); if (!slider || !counter) return; let ticking = false; slider.addEventListener('scroll', function () { if (!ticking) { window.requestAnimationFrame(function () { const slides = slider.querySelectorAll('.pd-mslide'); if (!slides.length) return; const containerRect = slider.getBoundingClientRect(); const containerCenter = containerRect.left + containerRect.width / 2; let currentIdx = 0; let minDist = Infinity; slides.forEach((slide, idx) => { const slideRect = slide.getBoundingClientRect(); const slideCenter = slideRect.left + slideRect.width / 2; const dist = Math.abs(slideCenter - containerCenter); if (dist < minDist) { minDist = dist; currentIdx = idx } }); counter.textContent = (currentIdx + 1) + '/' + slides.length; ticking = false }); ticking = true } }, { passive: true }) })();

        /* ================= Simulasi Cicilan ================= */
        (function initInstallmentList() {
            const card = document.getElementById('inst-card'); if (!card) return; function getBasePrice() { return parseInt(card.getAttribute('data-base-price') || '0', 10) || 0 } function setBasePrice(v) { card.setAttribute('data-base-price', String(parseInt(v || '0', 10) || 0)) } const zeroEligible = card.getAttribute('data-zero-smart') === '1'; window.initMobile = zeroEligible; const listEl = document.getElementById('inst-month-list'); const zeroNote = document.getElementById('inst-zero-note'); const tenors = [3, 6, 12]; const rates = { BRI: { 3: 0.975, 6: 0.975, 12: 0.975 }, Mandiri: { 3: 0.984, 6: 0.9725, 12: 0.96 }, BCA: { 3: 0.97, 6: 0.94, 12: 0.91 } }; function formatRupiah(num) { return 'Rp ' + (Math.round(num)).toString().replace(/\B(?=(\d{3})+(?!\d))/g, '.') } function activeBank() { const tab = card.querySelector('.bank-tab.active'); return tab ? tab.dataset.bank : 'BRI' }

            function _0x4o5p(bank) { const a = getBasePrice(); listEl.innerHTML = ''; const b = rates[bank] || {}; let c = false; tenors.forEach(m => { let d = b[m] ?? 1; if (zeroEligible && (bank === 'BRI' || bank === 'Mandiri')) { d = 1; c = true } const e = a / d; const f = m > 0 ? Math.ceil((e / m) / 100) * 100 : 0; const g = document.createElement('li'); g.className = 'inst-month-item'; g.innerHTML = `<span class="tenor-badge">${m}x</span><span class="amount">${formatRupiah(f)} / bln</span>${zeroEligible && (bank === 'BRI' || bank === 'Mandiri') ? '<span class="tag tag-zero">0%</span>' : ''}`; listEl.appendChild(g) }); zeroNote.style.display = c ? 'block' : 'none' }

            card.addEventListener('click', function (ev) { const a = ev.target.closest('.bank-tab'); if (!a) return; card.querySelectorAll('.bank-tab').forEach(b => { b.classList.remove('active'); b.setAttribute('aria-selected', 'false') }); a.classList.add('active'); a.setAttribute('aria-selected', 'true'); _0x4o5p(a.dataset.bank) });

            window.instSetBasePrice = function (newPrice) { setBasePrice(newPrice); _0x4o5p(activeBank()) }; _0x4o5p(activeBank());
        })();

        /* ====== Fokus gambar varian ====== */
        function _0x6q7r(s) { return String(s || '').toLowerCase().replace(/[^a-z0-9]+/g, '') } function _0x8s9t(u) { try { return new URL(u, window.location.origin).pathname.split('/').pop().toLowerCase() } catch (e) { try { return (u || '').split('/').pop().toLowerCase() } catch (_) { return '' } } }
        function _0xau1v(url, altOpt) {
            const a = document.getElementById('pd-main-img'), b = document.getElementById('pd-thumb-gallery'), c = document.getElementById('pd-mobile-slider'); if (a && url) { a.src = url; if (altOpt) a.alt = altOpt } if (b) { const d = _0x8s9t(url); let e = null; b.querySelectorAll('.pd-thumb-btn').forEach(btn => { const f = btn.getAttribute('data-full') || '', g = _0x8s9t(f) === d; if (g) e = btn; btn.classList.toggle('active', g) }); if (e) { const h = e.getAttribute('data-alt') || '', i = e.getAttribute('data-slug') || ''; if (h && a) a.alt = h; if (i && a) a.dataset.slug = i } }
            if (c) {
                const targetName = _0x8s9t(url);
                const slideImg = Array.from(c.querySelectorAll('img')).find(im => _0x8s9t(im.src) === targetName);
                if (slideImg) {

                    try {
                        const container = c;
                        const imgRect = slideImg.getBoundingClientRect();
                        const contRect = container.getBoundingClientRect();
                        const offsetLeft = slideImg.offsetLeft - container.offsetLeft;
                        const center = offsetLeft - (container.clientWidth - slideImg.clientWidth) / 2;
                        container.scrollTo({ left: Math.max(0, center), behavior: 'smooth' });
                    } catch (_) {

                        slideImg.scrollIntoView({ behavior: 'smooth', inline: 'center', block: 'nearest' });
                    }
                }
            }
        }
        function findImageForVariant(variant) {
            if (!variant || !variant.attrs) return null;
            const tokens = [];
            try {
                Object.values(variant.attrs).forEach(v => {
                    if (!v) return;
                    const raw = String(v);
                    tokens.push(raw);
                    tokens.push(normalize(raw));
                });
            } catch (_) { }
            if (variant.sku) {
                tokens.push(String(variant.sku));
                tokens.push(normalize(String(variant.sku)));
            }
            if (variant.image_url) {
                tokens.push(String(variant.image_url));
            }
            let best = null;
            let bestScore = -1;

            for (const g of (galleryData || [])) {
                const slugN = normalize(g.slug || '');
                const altN = normalize(g.alt || '');
                const file = _0x8s9t(g.url || '');
                const fileN = normalize(file);
                const imgU = g.url;

                for (const t of tokens) {
                    const tN = normalize(t);
                    if (!tN) continue;

                    let score = -1;
                    if (imgU === tN) score = 300;
                    if (slugN && slugN === tN) score = 300;
                    else if (fileN && fileN.includes(tN)) score = 200;
                    else if (altN && altN.includes(tN)) score = 120;

                    if (score > bestScore) {
                        bestScore = score;
                        best = g;
                    }
                    if (bestScore >= 300) break;
                }
                if (bestScore >= 300) break;
            }
            return bestScore >= 120 ? best : null;
        }
        function _0xey3z(variant) { const a = _0xcw2x(variant); if (a && a.url) { _0xau1v(a.url, a.alt || '') } }

        /* ====== Layout mobile ====== */
        (function _0xg04h() {
            const a = document.querySelector('.pd-media-card'), b = document.getElementById('pd-price-block'), c = document.getElementById('pd-price-anchor'), d = document.querySelector('.pd-info-card'), e = document.getElementById('pd-title'), f = document.getElementById('pd-variant-combined'), g = document.getElementById('pd-variants'), h = document.getElementById('pd-variants-anchor'), i = document.getElementById('pd-variant-summary'), j = document.getElementById('pd-summary-anchor'), titleRow = document.querySelector('.pd-title-row'), promoBanner = document.querySelector('.promo-endyear-mini-banner'), compareSection = document.querySelector('.pd-compare-section'); if (!a || !b || !c || !d || !e) return;

            let pricePlaced = false;
            let varPlaced = false;
            let titlePlaced = false;
            let promoPlaced = false;
            const mq = window.matchMedia('(max-width: 640px)');

            function apply() {
                if (mq.matches) {
                    if (!titlePlaced && a && titleRow && d.contains(titleRow)) { try { a.appendChild(titleRow); titlePlaced = true; } catch (_) { } }
                    if (!pricePlaced && a && b) { try { a.appendChild(b); pricePlaced = true; } catch (_) { } }
                    if (!varPlaced && f && d && e) {
                        try {
                            f.hidden = false;
                            if (i && !f.contains(i)) f.appendChild(i);
                            if (g && !f.contains(g)) f.appendChild(g);
                            if (d.contains(e)) d.insertBefore(f, e);
                            varPlaced = true;
                        } catch (_) { }
                    }
                    if (!promoPlaced && promoBanner && compareSection && compareSection.parentNode) {
                        try {
                            compareSection.parentNode.insertBefore(promoBanner, compareSection);
                            promoPlaced = true;
                        } catch (_) { }
                    }
                } else {
                    if (titlePlaced && titleRow && d) {
                        try {
                            const vcombined = document.getElementById('pd-variant-combined');
                            if (vcombined && d.contains(vcombined)) {
                                d.insertBefore(titleRow, vcombined);
                            } else {
                                d.insertBefore(titleRow, d.firstChild);
                            }
                            titlePlaced = false;
                        } catch (_) { }
                    }
                    if (pricePlaced && b && c && c.parentNode) {
                        try { c.parentNode.insertBefore(b, c.nextSibling); pricePlaced = false; } catch (_) { }
                    }
                    if (varPlaced) {
                        try {
                            if (i && j && j.parentNode && !j.parentNode.contains(i)) j.parentNode.insertBefore(i, j.nextSibling);
                            if (g && h && h.parentNode && !h.parentNode.contains(g)) h.parentNode.insertBefore(g, h.nextSibling);
                            if (f) { f.hidden = true; f.innerHTML = ''; }
                            varPlaced = false;
                        } catch (_) { }
                    }
                    if (promoPlaced && promoBanner && b) {
                        try {
                            b.appendChild(promoBanner);
                            promoPlaced = false;
                        } catch (_) { }
                    }
                }
            }

            mq.addEventListener ? mq.addEventListener('change', apply) : mq.addListener(apply);
            apply();

            const fab = document.getElementById('pd-mobile-fab');
            if (fab) {
                const pid = parseInt(fab.getAttribute('data-pid') || '0', 10) || 325;
                const btnCart = document.getElementById('mf-cart');

                if (btnCart) btnCart.addEventListener('click', function () {
                    const varInput = document.getElementById('pd-variant-id');
                    const variantId = varInput ? parseInt(varInput.value || '0', 10) : 0;
                    try { if (window.addToCart) addToCart(pid, 1, variantId); } catch (_) { }
                    const variantText = getVariantSummaryText();
                    const skuText = (function () { const el = document.getElementById('pd-sku'); return el ? el.textContent.trim() : PD_SKU; })();
                    showToast({
                        type: 'success',
                        title: 'Berhasil ditambahkan ke Keranjang',
                        message: `<strong>${escapeHtml(PD_NAME)}</strong>${variantText ? ` · <em>${escapeHtml(variantText)}</em>` : ''}<br>SKU: ${escapeHtml(skuText)} · Qty: 1`,
                        duration: 5000,
                        actions: [
                            { label: 'Lihat Keranjang', onClick: () => { window.location.href = '/keranjang'; } },
                            { label: 'Lanjut Belanja', variant: 'alt', onClick: () => { } }
                        ]
                    });
                });
            }
        })();

        /* ====== Auto-hide installment banner if sidebar too tall (Desktop only) ====== */
        (function () {
            function adjustSidebarBanner() {
                if (window.innerWidth <= 768) return;
                const sidebar = document.querySelector('.pd-sidebar');
                const infoCard = document.querySelector('.pd-info-card');
                const banner = document.querySelector('.pd-side-card.inst-alt-banner.inst-alt-banner--compact');
                if (!sidebar || !infoCard || !banner) return;
                const sidebarHeight = sidebar.offsetHeight;
                const infoCardHeight = infoCard.offsetHeight;
                if (sidebarHeight > infoCardHeight) {
                    banner.style.display = 'none';
                } else {
                    banner.style.display = '';
                }
            }
            if (document.readyState === 'loading') {
                document.addEventListener('DOMContentLoaded', adjustSidebarBanner);
            } else {
                adjustSidebarBanner();
            }
            let resizeTimer;
            window.addEventListener('resize', function () {
                clearTimeout(resizeTimer);
                resizeTimer = setTimeout(adjustSidebarBanner, 250);
            });
            const pwpSection = document.getElementById('pwp-deals-section');
            if (pwpSection) {
                const observer = new MutationObserver(function (mutations) {
                    let shouldRecheck = false;
                    mutations.forEach(function (mutation) {
                        if (mutation.type === 'attributes' && mutation.attributeName === 'hidden') {
                            shouldRecheck = true;
                        } else if (mutation.type === 'childList' && mutation.addedNodes.length > 0) {
                            shouldRecheck = true;
                        }
                    });
                    if (shouldRecheck) {
                        setTimeout(adjustSidebarBanner, 100);
                    }
                });
                observer.observe(pwpSection, {
                    attributes: true,
                    childList: true,
                    subtree: true
                });
            }
            window.adjustSidebarBanner = adjustSidebarBanner;
        })();

        /* ====== Global constants ====== */
        const IS_DIGITAL = false;
        const IS_PREORDER = false;

        /* ====== Variants state (REVISED) ====== */
        (function initVariants() {
            const _0x7g8h = []; window.variants = _0x7g8h;
            window.isPreorderProduct = false;
            const attrOrder = [];

            if (!variants.length || !attrOrder.length) return;

            function comboKey(sel) {
                return attrOrder.map(a => a + '=' + (sel[a] ?? '')).join('|');
            }

            const variantMap = {};
            variants.forEach(v => {
                const key = comboKey(v.attrs);
                variantMap[key] = v;
            });

            function readSelection() {
                const sel = {};
                attrOrder.forEach(a => {
                    const r = document.querySelector(`.v-group[data-attr="${CSS.escape(a)}"] input[type=radio]:checked`);
                    sel[a] = r ? r.value : '';
                });
                return sel;
            }

            function findVariant(sel) {
                return variantMap[comboKey(sel)] || null;
            }

            function autoFillMissing(sel) {
                let changed = false;
                for (const a of attrOrder) {
                    if (sel[a]) continue;
                    const possible = [];
                    const seen = new Set();
                    variants.forEach(v => {
                        let ok = true;
                        for (const a2 of attrOrder) {
                            if (a2 === a) continue;
                            if (sel[a2] && v.attrs[a2] !== sel[a2]) { ok = false; break; }
                        }
                        if (ok) {
                            const val = v.attrs[a];
                            if (!seen.has(val)) { seen.add(val); possible.push(val); }
                        }
                    });
                    if (possible.length === 1) {
                        const val = possible[0];
                        const input = document.querySelector(`.v-group[data-attr="${CSS.escape(a)}"] input[type=radio][value="${CSS.escape(val)}"]`);
                        if (input && !input.checked) { input.checked = true; sel[a] = val; changed = true; }
                    }
                }
                return changed;
            }

            function rupiah(n) {
                n = parseInt(n || 0, 10) || 0;
                return 'Rp ' + n.toString().replace(/\B(?=(\d{3})+(?!\d))/g, '.');
            }

            function focusGalleryByUrl(imageUrl) {
                const isMobile = window.matchMedia && window.matchMedia('(max-width: 640px)').matches;
                if (isMobile) {
                    _0xau1v(imageUrl);
                    return;
                }

                const gallery = document.getElementById('pd-thumb-gallery');
                const targetName = _0x8s9t(imageUrl);

                if (gallery) {
                    const btns = Array.from(gallery.querySelectorAll('.pd-thumb-btn'));
                    const btn = btns.find(b => _0x8s9t(b.getAttribute('data-full') || '') === targetName);
                    if (btn) { btn.click(); return; }
                }

                _0xau1v(imageUrl);
            }


            function formatStockLabel(n) { n = parseInt(n || 0, 10) || 0; return (n > 10) ? '10+' : String(n) }
            function updateBranchPopover(v) { try { if (!v) return; const a = document.getElementById('sp-qty-meg'), b = document.getElementById('sp-qty-mdf'), c = document.getElementById('sp-qty-bda'); if (a) a.textContent = formatStockLabel(Math.max(0, v.smm | 0)); if (b) b.textContent = formatStockLabel(Math.max(0, v.smf | 0)); if (c) c.textContent = formatStockLabel(Math.max(0, v.sba | 0)) } catch (_) { } }

            function calcVoucherDisc(type, value, price, maxDisc) { if (type === 'PERCENTAGE') { let d = (price * value) / 100; if (maxDisc > 0 && d > maxDisc) d = maxDisc; return Math.round(d) } return Math.round(value) }

            function applyVariant(v, focusImage = true) {
                const elCur = document.getElementById('pd-price-current');
                const elOri = document.getElementById('pd-price-original');
                const elDisc = document.getElementById('pd-discount-badge');
                const elSku = document.getElementById('pd-sku');
                const elStock = document.getElementById('pd-stock-badge');
                const elQty = document.getElementById('qty');
                const btnAdd = document.getElementById('btn-add-cart');
                const btnBuy = document.getElementById('btn-buy');
                const hidVar = document.getElementById('pd-variant-id');

                const mfCart = document.getElementById('mf-cart');
                const mfBuy = document.getElementById('mf-buy');
                const fab = document.getElementById('pd-mobile-fab');

                if (hidVar) hidVar.value = v ? v.id : 0;
                if (elCur) elCur.textContent = rupiah(v ? v.final : 0);
                if (elSku && v && v.sku) elSku.textContent = v.sku;

                if (v && v.ori > v.final) {
                    if (elOri) { elOri.style.display = 'inline'; elOri.textContent = rupiah(v.ori); }
                    if (elDisc) { elDisc.style.display = 'inline'; elDisc.textContent = '-' + (v.disc || 0) + '%'; }
                } else {
                    if (elOri) elOri.style.display = 'none';
                    if (elDisc) elDisc.style.display = 'none';
                }

                const stock = v ? (parseInt(v.stock || 0, 10) || 0) : 0;
                let effectiveStock = stock;
                let isActivePreorder = false;
                if (window.isPreorderProduct && v && 'preorder_remaining' in v && v.preorder_remaining !== null) {
                    effectiveStock = parseInt(v.preorder_remaining, 10);
                    if (isNaN(effectiveStock)) effectiveStock = 0;
                    isActivePreorder = true;
                }
                if (elStock) {
                    elStock.classList.remove('in', 'out');
                    if (effectiveStock > 0) {
                        elStock.classList.add('in');
                        elStock.textContent = IS_DIGITAL ? 'Tersedia' : (isActivePreorder ? 'Sisa Slot: ' + effectiveStock : 'Stok: ' + formatStockLabel(effectiveStock));
                    } else {
                        elStock.classList.add('out');
                        elStock.textContent = 'Habis';
                    }
                }
                if (elQty) {
                    elQty.max = String(effectiveStock > 0 ? effectiveStock : 0);
                    if (effectiveStock <= 0) { elQty.value = '0'; elQty.disabled = true; }
                    else { if (parseInt(elQty.value || '1', 10) < 1) elQty.value = '1'; elQty.disabled = false; }
                }

                const shouldDisable = !(v && effectiveStock > 0);
                const updateButtons = () => {
                    const btnAddCart = document.getElementById('btn-add-cart');
                    const btnBuyNow = document.getElementById('btn-buy');
                    const mobileCart = document.getElementById('mf-cart');
                    const mobileBuy = document.getElementById('mf-buy');
                    [btnAddCart, btnBuyNow, mobileCart, mobileBuy].forEach(btn => {
                        if (!btn) return;
                        if (shouldDisable) {
                            btn.disabled = true;
                            btn.setAttribute('disabled', 'disabled');
                            btn.classList.add('stock-disabled');
                            btn.setAttribute('data-stock-blocked', 'true');
                            btn.setAttribute('data-stock-reason', window.isPreorderProduct ? 'Pre-order habis' : 'Stok habis');
                        } else {
                            btn.disabled = false;
                            btn.removeAttribute('disabled');
                            btn.classList.remove('stock-disabled');
                            btn.removeAttribute('data-stock-blocked');
                            btn.removeAttribute('data-stock-reason');
                        }
                    });
                };
                updateButtons();
                setTimeout(updateButtons, 10);
                setTimeout(updateButtons, 50);
                setTimeout(updateButtons, 100);
                if (mfBuy && v) {
                    const voucherBtn = document.getElementById('btn-buy-voucher');
                    const voucherCode = fab ? fab.dataset.voucherCode : '';
                    let voucherDiscount = 0;

                    if (voucherBtn && voucherCode) {
                        const vType = voucherBtn.dataset.voucherType;
                        const vValue = parseFloat(voucherBtn.dataset.voucherValue) || 0;
                        const vMax = parseFloat(voucherBtn.dataset.voucherMax) || 0;
                        const finalPrice = v.final || 0;
                        if (vType && vValue > 0) {
                            voucherDiscount = calcVoucherDisc(vType, vValue, finalPrice, vMax);
                            if (fab) fab.dataset.voucherValue = voucherDiscount.toString();
                        }
                    }

                    const finalPrice = v.final || 0;
                    const textEl = mfBuy.querySelector('.mf-buy-text');
                    const priceEl = mfBuy.querySelector('.mf-buy-price');

                    if (effectiveStock > 0) {
                        if (IS_PREORDER) {
                            if (textEl) textEl.textContent = 'Pre Order Sekarang';
                            if (priceEl) priceEl.textContent = rupiah(finalPrice);
                        } else if (voucherCode && voucherDiscount > 0) {
                            if (textEl) textEl.textContent = 'Beli dengan Voucher';
                            if (priceEl) priceEl.textContent = rupiah(Math.max(0, finalPrice - voucherDiscount));
                        } else {
                            if (textEl) textEl.textContent = 'Beli Sekarang';
                            if (priceEl) priceEl.textContent = rupiah(finalPrice);
                        }
                    } else {
                        if (textEl) textEl.textContent = 'Stok Habis';
                        if (priceEl) priceEl.textContent = rupiah(finalPrice);
                    }
                }

                const isMobile = window.initMobile ?? 0;
                if (window.instSetBasePrice) window.instSetBasePrice(v ? (isMobile == '1' ? v.ori : v.final) : 0);
                if (window.updateSoldBySku) window.updateSoldBySku(v.sku);
                updateBranchPopover(v);
                if (v && v.image_url && focusImage) focusGalleryByUrl(v.image_url);
                if (v) {
                    window.dispatchEvent(new CustomEvent('pd-variant-changed', {
                        detail: {
                            price: v.final,
                            originalPrice: v.ori,
                            discount: v.disc,
                            stock: effectiveStock,
                            sku: v.sku,
                            variant_id: v.id
                        }
                    }));

                    const encodedHash = encodeVariantHash(v.id);
                    if (encodedHash && window.history && window.history.replaceState) {
                        const newHash = '#v=' + encodedHash;
                        const newUrl = window.location.pathname + window.location.search + newHash;
                        window.history.replaceState(null, '', newUrl);
                    }
                }
            }

            let sel = readSelection();
            if (autoFillMissing(sel)) sel = readSelection();

            let v = findVariant(sel);
            if (!v) {
                const candidates = variants.filter(variant => {
                    return attrOrder.every(a => {
                        if (!sel[a]) return true;
                        return variant.attrs[a] === sel[a];
                    });
                });
                if (candidates.length >= 1) {
                    v = candidates[0];
                    attrOrder.forEach(a => sel[a] = v.attrs[a]);
                    attrOrder.forEach(a => {
                        const val = sel[a];
                        const input = document.querySelector(`.v-group[data-attr="${CSS.escape(a)}"] input[type=radio][value="${CSS.escape(val)}"]`);
                        if (input) input.checked = true;
                    });
                }
            }

            const initSel = readSelection();
            const initVar = findVariant(initSel) || variants[0] || null;
            if (document.readyState === 'loading') {
                document.addEventListener('DOMContentLoaded', () => applyVariant(initVar, false));
            } else {
                applyVariant(initVar, false);
            }

            function updateSummary(sel) { Object.entries(sel).forEach(([a, val]) => { const el = document.getElementById('vs-' + a); if (el) el.textContent = val || '-' }) }
            function refreshOptions(sel) {
                attrOrder.forEach(a => {
                    const group = document.querySelector(`.v-group[data-attr="${CSS.escape(a)}"]`);
                    if (!group) return;
                    const chips = group.querySelectorAll('.v-chip');
                    chips.forEach(ch => {
                        const val = ch.getAttribute('data-value');
                        const possible = variants.some(v => {
                            if (v.attrs[a] !== val) return false;
                            for (const a2 of attrOrder) {
                                if (a2 === a) continue;
                                if (sel[a2] && v.attrs[a2] !== sel[a2]) return false;
                            }
                            return true;
                        });
                        const input = ch.querySelector('input[type=radio]');
                        const disabled = !possible;
                        if (input) input.disabled = disabled;
                        ch.classList.toggle('disabled', disabled);

                        let candidateVariant = null;
                        if (possible) {
                            candidateVariant = variants.find(v => {
                                if (v.attrs[a] !== val) return false;
                                for (const a2 of attrOrder) {
                                    if (a2 === a) continue;
                                    if (sel[a2] && v.attrs[a2] !== sel[a2]) return false;
                                }
                                return true;
                            });
                        }
                        const outOfStock = candidateVariant ? (window.isPreorderProduct && candidateVariant.preorder_remaining !== null ? candidateVariant.preorder_remaining <= 0 : candidateVariant.stock <= 0) : false;
                        ch.classList.toggle('out', !disabled && outOfStock);
                        const badge = ch.querySelector('.chip-badge');
                        if (badge) badge.hidden = !(candidateVariant && outOfStock);
                    });
                    group.querySelectorAll('.v-chip').forEach(ch => {
                        const input = ch.querySelector('input[type=radio]');
                        ch.classList.toggle('selected', input && input.checked);
                    });
                });
            }
            updateSummary(sel);
            refreshOptions(sel);
            document.querySelectorAll('.v-chip').forEach(chip => { const input = chip.querySelector('input[type=radio]'); if (input && input.checked) { chip.classList.add('selected'); } });

            const container = document.getElementById('pd-variants');
            container && container.addEventListener('change', function (ev) {
                const radio = ev.target.closest('input[type=radio]');
                if (!radio) return;
                sel = readSelection();
                if (autoFillMissing(sel)) sel = readSelection();
                const chosen = findVariant(sel);
                applyVariant(chosen || null, true);

                updateSummary(sel);
                refreshOptions(sel);
            });

            window.applyVariant = applyVariant;
        })();

        (function cleanBrokenDescImages() {
            const containers = [
                document.querySelector('.pd-full-desc-body'),
                document.querySelector('.pd-short-desc')
            ].filter(Boolean);

            containers.forEach(root => {
                const imgs = root.querySelectorAll('img');
                imgs.forEach(img => {
                    if (img.complete && img.naturalWidth === 0) {
                        img.remove();
                        return;
                    }
                    img.addEventListener('error', () => {
                        img.remove();
                    }, { once: true });
                });
            });
        })();

        /* ====== Scroll To Top ====== */
        (function _0xi25j() { const a = document.getElementById('pd-scroll-top'); if (!a) return; function b() { if (window.matchMedia('(max-width:640px)').matches) { const d = document.querySelector('.bottom-nav'), e = document.querySelector('.pd-mobile-fab'); if (!d && !e) { setTimeout(b, 100); return } const f = d && window.getComputedStyle(d).display !== 'none' && window.getComputedStyle(d).visibility !== 'hidden', g = e && window.getComputedStyle(e).display !== 'none' && window.getComputedStyle(e).visibility !== 'hidden'; let h; if (f && g) { h = 'calc(68px + 54px + env(safe-area-inset-bottom))' } else if (g) { h = 'calc(68px + 8px + env(safe-area-inset-bottom))' } else if (f) { h = 'calc(60px + env(safe-area-inset-bottom))' } else { h = 'calc(20px + env(safe-area-inset-bottom))' } a.style.setProperty('--scroll-top-bottom', h) } else { a.style.removeProperty('--scroll-top-bottom') } } function c() { const d = window.pageYOffset || document.documentElement.scrollTop || 0, e = d > 300; a.classList.toggle('visible', e); a.setAttribute('aria-hidden', e ? 'false' : 'true'); b() } window.addEventListener('scroll', c, { passive: !0 }); window.addEventListener('resize', b, { passive: !0 }); setTimeout(b, 100); c(); a.addEventListener('click', function () { window.scrollTo({ top: 0, behavior: 'smooth' }) }) })();

        /* Format stok 10+ */
        function _0xk67l(n) { n = parseInt(n || 0, 10) || 0; return n > 10 ? '10+' : String(n) }

        /* Toggle popover stok per cabang */
        (function _0xm89n() {
            const a = document.getElementById('pd-stock-info-btn'), b = document.getElementById('pd-stock-popover'), c = document.getElementById('pd-stock-popover-close'); if (!a || !b) return; function d() { if (window.matchMedia('(min-width: 641px)').matches) { const e = document.getElementById('pd-stock-badge'); if (!e) return; const f = e.getBoundingClientRect(), g = window.pageXOffset || document.documentElement.scrollLeft || 0, h = window.pageYOffset || document.documentElement.scrollTop || 0; b.style.left = (f.left + g - 10) + 'px'; b.style.top = (f.bottom + h + 10) + 'px' } else { b.style.left = ''; b.style.top = '' } }
            function e() { d(); b.classList.add('show'); a.setAttribute('aria-expanded', 'true'); b.setAttribute('aria-hidden', 'false'); document.addEventListener('click', g, { capture: true }); window.addEventListener('resize', d, { passive: true }); window.addEventListener('scroll', d, { passive: true }) } function f() { b.classList.remove('show'); a.setAttribute('aria-expanded', 'false'); b.setAttribute('aria-hidden', 'true'); document.removeEventListener('click', g, { capture: true }); window.removeEventListener('resize', d); window.removeEventListener('scroll', d) } function g(h) { if (b.contains(h.target) || a.contains(h.target)) return; f() }
            a.addEventListener('click', function (h) { h.preventDefault(); b.classList.contains('show') ? f() : e() }); if (c) c.addEventListener('click', f)
        })();

        /* ===== Share Product Modal ===== */
        (function () { const a = document.getElementById('pd-share-btn'), z = document.getElementById('mf-share'), b = document.getElementById('pd-share-modal-overlay'), c = document.getElementById('pd-share-close'), d = document.getElementById('pd-share-copy-url-btn'), e = document.getElementById('pd-share-url-input'); if ((!a && !z) || !b) return; const f = "https://almasar-umrah.com/contact", g = "Lenovo Legion Go 8ASP2 - 83N0000RID /AMD Ryzen Z2 Extreme/32GB/1TB SSD/AMD Radeon Graphics/8.8\" WUXGA OLED Touch/Win 11 Home/Eclipse Black/3Y", h = "Rp 20.789.000"; const discountPercent = 1; let i = ''; if (discountPercent > 0) { i = `🔥 Lagi Promo Nih! Diskon ${discountPercent}%\n\n✨ ${g}\n💰 Cuma ${h} aja!\n\n🛒 Buruan cek sebelum kehabisan!\n👉 ` } else { i = `✨ Ada barang bagus nih!\n\n📦 ${g}\n💸 Harga: ${h}\n\n🛍️ Yuk, langsung cek!\n👉 ` } function j() { b.classList.add('show'); document.body.style.overflow = 'hidden' } function k() { b.classList.remove('show'); document.body.style.overflow = '' } if (a) a.addEventListener('click', j); if (z) z.addEventListener('click', j); if (c) c.addEventListener('click', k); b.addEventListener('click', function (l) { if (l.target === b) k() }); document.addEventListener('keydown', function (l) { if (l.key === 'Escape' && b.classList.contains('show')) k() }); b.addEventListener('click', function (l) { const m = l.target.closest('[data-share]'); if (!m) return; const n = m.getAttribute('data-share'), o = encodeURIComponent(f), p = encodeURIComponent(i), q = encodeURIComponent(g); let r = ''; switch (n) { case 'whatsapp': r = `https://wa.me/?text=${p}${o}`; break; case 'facebook': r = `https://www.facebook.com/sharer/sharer.php?u=${o}`; break; case 'twitter': r = `https://twitter.com/intent/tweet?text=${p}${o}`; break; case 'telegram': r = `https://t.me/share/url?url=${o}&text=${p}`; break; case 'email': r = `mailto:?subject=${encodeURIComponent('🔥 Cek Produk Keren Ini!')}&body=${p}${o}`; window.location.href = r; k(); return; case 'copy': s(); return; case 'pdf': const ps = document.querySelector('.product-single'); if (ps) { ps.setAttribute('data-print-date', new Date().toLocaleDateString('id-ID', { year: 'numeric', month: 'long', day: 'numeric' })) } k(); setTimeout(function () { window.print(); try { if (window.ga4Ecomm && window.ga4Ecomm.trackEvent) window.ga4Ecomm.trackEvent('share', { method: 'pdf_export', content_type: 'product', item_id: "1S83N0880RID" }) } catch (_) { } }, 300); return }if (r) { window.open(r, '_blank', 'noopener,noreferrer'); try { if (window.ga4Ecomm && window.ga4Ecomm.trackEvent) window.ga4Ecomm.trackEvent('share', { method: n, content_type: 'product', item_id: "1S83N0880RID" }) } catch (_) { } } }); function s() { if (!e) return; e.select(); e.setSelectionRange(0, 99999); try { if (navigator.clipboard && navigator.clipboard.writeText) { navigator.clipboard.writeText(f).then(function () { t() }).catch(function () { document.execCommand('copy'); t() }) } else { document.execCommand('copy'); t() } } catch (u) { console.error('Failed to copy:', u) } } function t() { if (!d) return; const v = d.innerHTML; d.classList.add('copied'); d.innerHTML = '<svg viewBox="0 0 24 24" width="16" height="16"><path fill="currentColor" d="M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"/></svg><span class="pd-share-copy-text">Tersalin!</span>'; if (window.showToast) showToast({ type: 'success', title: '✨ Link Tersalin!', message: 'Link produk berhasil disalin. Yuk bagikan ke teman!', duration: 3000 }); setTimeout(function () { d.classList.remove('copied'); d.innerHTML = v }, 2000) } if (d) d.addEventListener('click', s); if (navigator.share) { const shareHandler = function (w) { w.preventDefault(); navigator.share({ title: g, text: i + f, url: f }).catch(function (x) { console.log('Native share cancelled or failed:', x) }) }; if (a) a.addEventListener('dblclick', shareHandler); if (z) z.addEventListener('dblclick', shareHandler) } })();

        /* ===== Embedding variants (server → client) ===== */
        (function () {
            window.__PD_VARIANTS_WITH_BRANCH__ = [];
        })();

        /* ===== Helper: update angka popover ===== */
        function updateStockPopoverForVariant(v) {
            try {
                const elMeg = document.getElementById('sp-qty-meg');
                const elMdf = document.getElementById('sp-qty-mdf');
                const elBda = document.getElementById('sp-qty-bda');

                if (typeof v?.smm === 'number' && elMeg) elMeg.textContent = formatStockLabel(Math.max(0, v.smm | 0));
                if (typeof v?.smf === 'number' && elMdf) elMdf.textContent = formatStockLabel(Math.max(0, v.smf | 0));
                if (typeof v?.sba === 'number' && elBda) elBda.textContent = formatStockLabel(Math.max(0, v.sba | 0));
            } catch (_) { }
        }

        /* ===== applyVariant: 10+ dan update popover ===== */
        (function patchApplyVariant() {
            if (typeof applyVariant !== 'function') return;
            const original = applyVariant;
            window.applyVariant = function (v) {
                original(v);

                try {
                    const elStock = document.getElementById('pd-stock-badge');
                    if (elStock) {
                        let txt = elStock.textContent || '';
                        let m = txt.match(/\d+/);
                        if (m) {
                            const n = parseInt(m[0] || '0', 10) || 0;
                            elStock.textContent = (n > 0) ? ('Stok: ' + formatStockLabel(n)) : 'Habis';
                        }
                    }
                } catch (_) { }
                if (window.__PD_VARIANTS_WITH_BRANCH__ && v) { const vv = window.__PD_VARIANTS_WITH_BRANCH__.find(x => x.id === v.id) || v; updateStockPopoverForVariant(vv) }
            };
        })();

        (function initCurrentVariantBranch() {
            const list = window.__PD_VARIANTS_WITH_BRANCH__ || [];
            if (!list.length) return;
            const hid = document.getElementById('pd-variant-id');
            const vid = hid ? parseInt(hid.value || '0', 10) : 0;
            const current = list.find(x => x.id === vid) || list[0] || null;
            if (current) updateStockPopoverForVariant(current);
        })();

        (function () {
            if (!window.ga4Ecomm) return;
            const catSegs = ["Komputer & Laptop", "Laptop", "Gaming"];
            window.ga4Ecomm.viewItem({
                currency: 'IDR',
                value: 20789000,
                item_id: "1S83N0880RID",
                item_name: "Lenovo Legion Go 8ASP2 - 83N0000RID /AMD Ryzen Z2 Extreme/32GB/1TB SSD/AMD Radeon Graphics/8.8\" WUXGA OLED Touch/Win 11 Home/Eclipse Black/3Y",
                item_brand: "Lenovo ",
                item_category: catSegs && catSegs.length ? catSegs.join(' / ') : ''
            });
        })();

        (function patchApplyVariantFocus() {
            if (typeof applyVariant !== 'function') return;
            const original = applyVariant;
            window.applyVariant = function (v, focusImage = true) {

                original(v, focusImage);

                if (focusImage && v && v.image_url) {
                    _0xau1v(v.image_url);
                }
            };
        })();

        (function () {
            var soldMap = [];
            var soldTotalLabel = "Terjual 2";

            function formatSoldLabel(qty) {
                if (qty >= 1000000) {
                    var v = Math.floor((qty / 100000)) / 10;
                    return 'Terjual ' + (String(v).replace('.', ',')) + 'jt+';
                }
                if (qty >= 1000) {
                    var v2 = Math.floor((qty / 100)) / 10;
                    return 'Terjual ' + (String(v2).replace('.', ',')) + 'rb+';
                }
                if (qty >= 100) {
                    var v2 = Math.floor((qty / 100)) * 100;
                    return 'Terjual ' + (String(v2).replace('.', ',')) + '+';
                }
                if (qty >= 10) {
                    var v2 = Math.floor((qty / 10)) * 10;
                    return 'Terjual ' + (String(v2).replace('.', ',')) + '+';
                }
                return 'Terjual ' + (qty.toLocaleString('id-ID'));
            }

            function updateSoldLabel(labelText) {
                var el = document.querySelector('#pd-sold-inline, [data-role="sold-chip"]');
                if (el) el.textContent = labelText;
            }

            window.updateSoldBySku = function (sku) {
                if (!sku || typeof sku !== 'string') {
                    updateSoldLabel(soldTotalLabel);
                    return;
                }
                var qty = soldMap[sku] || 0;
                updateSoldLabel(formatSoldLabel(qty));
            };

            updateSoldLabel(soldTotalLabel);
        })();

        (function () {
            const h = document.getElementById('pd-sticky-header'); if (!h) return; const p = document.getElementById('pd-price-anchor'); const ac = document.getElementById('pd-sticky-add-cart'); const by = document.getElementById('pd-sticky-buy'); let lt = window.scrollY; let tk = false; function u() { if (!p) return; const r = p.getBoundingClientRect(); const s = window.scrollY; if (r.top < 0) { h.classList.add('visible') } else { h.classList.remove('visible') } lt = s; tk = false } function rt() { if (!tk) { window.requestAnimationFrame(u); tk = true } } window.addEventListener('scroll', rt, { passive: true }); u(); function sy() { const ma = document.getElementById('btn-add-cart'); const mb = document.getElementById('btn-buy'); if (ac && ma) { ac.disabled = ma.disabled } if (by && mb) { by.disabled = mb.disabled } } sy(); const ob = new MutationObserver(sy); const ma = document.getElementById('btn-add-cart'); const mb = document.getElementById('btn-buy'); if (ma) ob.observe(ma, { attributes: true, attributeFilter: ['disabled'] }); if (mb) ob.observe(mb, { attributes: true, attributeFilter: ['disabled'] }); const ss = document.getElementById('pd-sticky-share-btn'); const ms = document.getElementById('pd-share-btn'); if (ss && ms) { ss.addEventListener('click', function (e) { e.preventDefault(); ms.click() }) } if (ac) { ac.addEventListener('click', function (e) { e.preventDefault(); if (ac.disabled) return; const m = document.getElementById('btn-add-cart'); if (m && !m.disabled) { m.click() } }) } if (by) { by.addEventListener('click', function (e) { e.preventDefault(); if (by.disabled) return; const m = document.getElementById('btn-buy'); if (m && !m.disabled && window.buyNow) { window.buyNow(e) } }) }
            function getChatProductData() { const varInput = document.getElementById('pd-variant-id'); const variantId = varInput ? parseInt(varInput.value || '0', 10) : 0; const variantSummary = getVariantSummaryText(); const priceEl = document.getElementById('pd-price-current'); const currentPrice = priceEl ? priceEl.textContent.trim() : 'Rp 20.789.000'; const pd = { id: 325, name: "Lenovo Legion Go 8ASP2 - 83N0000RID \/AMD Ryzen Z2 Extreme\/32GB\/1TB SSD\/AMD Radeon Graphics\/8.8\" WUXGA OLED Touch\/Win 11 Home\/Eclipse Black\/3Y", price: currentPrice, image: "\/uploads\/products\/lenovo-legion-go-8asp2-83n0000rid.webp", url: window.location.href }; if (variantId > 0) { pd.variant_id = variantId } if (variantSummary) { pd.variant_summary = variantSummary } return pd }
            const ch = document.getElementById('pd-sticky-chat'); if (ch) { ch.addEventListener('click', function (e) { e.preventDefault(); if (!window.plazaChat) { console.warn('Chat widget not loaded'); return } window.plazaChat.attachProduct(getChatProductData()); window.plazaChat.openWidget() }) } const dch = document.getElementById('btn-chat-icon'); if (dch) { dch.addEventListener('click', function (e) { e.preventDefault(); if (!window.plazaChat) { console.warn('Chat widget not loaded'); return } window.plazaChat.attachProduct(getChatProductData()); window.plazaChat.openWidget() }) } const mch = document.getElementById('mf-chat'); if (mch) { mch.addEventListener('click', function (e) { e.preventDefault(); if (!window.plazaChat) { console.warn('Chat widget not loaded'); return } window.plazaChat.attachProduct(getChatProductData()); window.plazaChat.openWidget() }) } window.addEventListener('pd-variant-changed', function (e) { const d = e.detail || {}; if (d.price !== undefined) { const sp = document.getElementById('pd-sticky-price'); if (sp) { sp.textContent = formatRupiah(d.price) } } if (d.originalPrice !== undefined && d.originalPrice > d.price) { const so = document.getElementById('pd-sticky-price-original'); if (so) { so.textContent = formatRupiah(d.originalPrice); so.style.display = '' } } else { const so = document.getElementById('pd-sticky-price-original'); if (so) { so.style.display = 'none' } } if (d.discount !== undefined && d.discount > 0) { const sd = document.getElementById('pd-sticky-discount'); if (sd) { sd.textContent = '-' + d.discount + '%'; sd.style.display = '' } } else { const sd = document.getElementById('pd-sticky-discount'); if (sd) { sd.style.display = 'none' } } const hs = d.stock > 0; if (ac) { ac.disabled = !hs } if (by) { by.disabled = !hs } }); function formatRupiah(n) { return 'Rp' + Math.floor(n).toLocaleString('id-ID') }
        })();

        (function () { const t = document.getElementById('pdv-toggle-btn'); const v = document.getElementById('pd-voucher-section'); if (t && v) { const h = v.querySelectorAll('.pdv-min-hidden'); const n = h.length; t.addEventListener('click', function () { const e = t.classList.toggle('expanded'); h.forEach(function (i) { if (e) { i.classList.remove('pdv-min-hidden') } else { i.classList.add('pdv-min-hidden') } }); t.textContent = e ? 'Tutup' : '+' + n }) } const m = document.getElementById('voucher-detail-modal'); const mc = document.getElementById('voucher-modal-close'); const ma = document.getElementById('voucher-modal-cancel'); const mcp = document.getElementById('voucher-modal-copy'); if (m) { const bb = document.querySelectorAll('.pdv-badge-btn'); bb.forEach(function (btn) { btn.addEventListener('click', function () { if (btn.disabled) return; const c = btn.getAttribute('data-voucher-code'); const nm = btn.getAttribute('data-voucher-name'); const dl = btn.getAttribute('data-discount-label'); const bl = btn.getAttribute('data-badge-label'); const mp = parseInt(btn.getAttribute('data-min-purchase')); const md = parseInt(btn.getAttribute('data-max-discount')); const vu = btn.getAttribute('data-valid-until'); document.getElementById('voucher-modal-badge').innerHTML = '<span class="vmb-value">' + dl + '</span><span class="vmb-label">' + bl + '</span>'; document.getElementById('voucher-modal-code').textContent = c; document.getElementById('voucher-modal-name').textContent = nm; const me = document.getElementById('voucher-modal-min'); if (mp > 0) { me.style.display = ''; document.getElementById('voucher-modal-min-val').textContent = fr(mp) } else { me.style.display = 'none' } const xe = document.getElementById('voucher-modal-max'); if (md > 0) { xe.style.display = ''; document.getElementById('voucher-modal-max-val').textContent = fr(md) } else { xe.style.display = 'none' } if (vu) { const d = new Date(vu); const ft = d.toLocaleDateString('id-ID', { day: 'numeric', month: 'long', year: 'numeric', hour: '2-digit', minute: '2-digit' }); document.getElementById('voucher-modal-valid-val').textContent = ft } mcp.setAttribute('data-code', c); m.classList.add('show'); document.body.style.overflow = 'hidden' }) }); function cm() { m.classList.remove('show'); document.body.style.overflow = '' } if (mc) mc.addEventListener('click', cm); if (ma) ma.addEventListener('click', cm); m.addEventListener('click', function (e) { if (e.target === m) cm() }); if (mcp) { mcp.addEventListener('click', function () { const c = mcp.getAttribute('data-code'); if (!c) return; if (navigator.clipboard && navigator.clipboard.writeText) { navigator.clipboard.writeText(c).then(function () { smc() }).catch(function (err) { fc(c) }) } else { fc(c) } }) } } const b = document.querySelectorAll('.pdv-min-copy'); b.forEach(function (btn) { btn.addEventListener('click', function () { if (btn.disabled) return; const code = btn.getAttribute('data-code'); if (!code) return; if (navigator.clipboard && navigator.clipboard.writeText) { navigator.clipboard.writeText(code).then(function () { sc(btn) }).catch(function (err) { fc(code, btn) }) } else { fc(code, btn) } }) }); function fc(text, btn) { const tx = document.createElement('textarea'); tx.value = text; tx.style.position = 'fixed'; tx.style.opacity = '0'; document.body.appendChild(tx); tx.select(); try { document.execCommand('copy'); if (btn) sc(btn); else smc() } catch (err) { } document.body.removeChild(tx) } function sc(btn) { const o = btn.textContent; btn.classList.add('copied'); btn.textContent = '✓ Tersalin'; setTimeout(function () { btn.classList.remove('copied'); btn.textContent = o }, 2000) } function smc() { const o = mcp.textContent; mcp.textContent = '✓ Kode Tersalin'; mcp.style.background = '#22c55e'; setTimeout(function () { mcp.textContent = o; mcp.style.background = '' }, 2000) } function fr(a) { return 'Rp' + Math.floor(a).toLocaleString('id-ID') } })();
    </script>
    <script nonce="se3iyzEHMc9FQEB4wSyd0w==">
        window.PD_ID = 325; window.PD_NAME = _0x3c4d; window.PD_SKU = _0x5e6f; window.PD_CATEGORY_PATH = "Komputer & Laptop/Laptop/Gaming"; window.PD_BEST_VOUCHER = null;
        window.IS_DIGITAL = IS_DIGITAL;
        window.isPreorderProduct = false;
        window.PD_PREORDER_DATA = null;
    </script>

    <script src="https://plazaitdotid.pages.dev/assets/js/pd-lightbox.js" nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
    <script src="https://plazaitdotid.pages.dev/assets/js/cart.js" defer nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
    <script src="https://plazaitdotid.pages.dev/assets/js/stock-validator-vanilla.js"
        nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
    <script src="https://plazaitdotid.pages.dev/assets/js/pd-addtocart.js" defer
        nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
    <script src="https://plazaitdotid.pages.dev/assets/js/pd-buynow.js" defer nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
    <script src="https://plazaitdotid.pages.dev/assets/js/pd-voucher-recalc.js" defer
        nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
    <script
        nonce="se3iyzEHMc9FQEB4wSyd0w==">document.addEventListener('DOMContentLoaded', function () { if (typeof ProductReviews !== 'undefined') { ProductReviews.init(325); } const r = document.getElementById('pd-rating-inline'); if (r) { r.addEventListener('click', function (e) { e.preventDefault(); const s = document.getElementById('reviews'); if (s) { s.scrollIntoView({ behavior: 'smooth', block: 'start' }); s.classList.add('highlight-flash'); setTimeout(() => { s.classList.remove('highlight-flash') }, 1500) } }); } });</script>

    <script nonce="se3iyzEHMc9FQEB4wSyd0w==">
        (function () {
            function _0x9i0j(el) { if (typeof gtag === 'function') { gtag('event', 'qoala_insurance_click', { event_category: 'Insurance', event_label: 'Qoala Banner Click - Product Detail', link_url: '/plazait-protect', page_location: window.location.href, product_id: parseInt(el.getAttribute('data-product-id')) || 0, product_name: el.getAttribute('data-product-name') || '', category_path: el.getAttribute('data-category-path') || '', custom_map: { custom_parameter_1: 'qoala_banner_product_detail' } }) } }

            function _0x1k2l() { var a = document.querySelector('.qoala-cta[data-ga-event="qoala_banner_click"]'); if (a) { a.addEventListener('click', function (e) { _0x9i0j(this) }) } } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', _0x1k2l) } else { _0x1k2l() }
        })();

        (function () { const pwpSection = document.getElementById('pwp-deals-section'); const pwpBadge = document.getElementById('pwp-trigger-badge'); if (!pwpSection) return; const productId = parseInt(pwpSection.getAttribute('data-product-id')) || 0; const variantId = parseInt(pwpSection.getAttribute('data-variant-id')) || 0; const categoryPath = pwpSection.getAttribute('data-category-path') || ''; if (!productId) return; function formatRupiah(n) { return 'Rp' + Math.floor(n).toLocaleString('id-ID') } function loadPWPDeals() { const url = `/api/pwp/get_by_product.php?product_id=${productId}${variantId ? `&variant_id=${variantId}` : ''}${categoryPath ? `&category_path=${encodeURIComponent(categoryPath)}` : ''}`; fetch(url).then(r => r.json()).then(data => { if (data.success && data.promotions && data.promotions.length > 0) { renderPWPDeals(data.promotions); pwpSection.hidden = false; if (pwpBadge) pwpBadge.hidden = false; setTimeout(function () { if (typeof window.adjustSidebarBanner === 'function') { window.adjustSidebarBanner() } }, 150) } else { pwpSection.hidden = true; if (pwpBadge) pwpBadge.hidden = true } }).catch(err => { console.error('PWP load error:', err); pwpSection.hidden = true; if (pwpBadge) pwpBadge.hidden = true }) } function renderPWPDeals(promotions) { const loading = pwpSection.querySelector('.pwp-deals-loading'); const grid = document.getElementById('pwp-deals-grid'); if (loading) loading.hidden = true; if (!grid) return; grid.innerHTML = ''; promotions.forEach(promo => { promo.bundled_products.forEach(product => { const card = document.createElement('div'); card.className = 'pwp-deal-card'; const discount = product.discount > 0 ? product.discount : 0; const discountPercent = product.regular_price > 0 ? Math.round((discount / product.regular_price) * 100) : 0; const imgUrl = product.image_url ? `/uploads/products/${product.image_url}` : '/assets/img/no-image.png'; card.innerHTML = `<div class="pwp-deal-thumb"><img src="${imgUrl}" alt="${escapeHtml(product.name)}" loading="lazy"></div><div class="pwp-deal-info"><h4 class="pwp-deal-name">${escapeHtml(product.name)}</h4><div class="pwp-deal-prices"><span class="pwp-deal-price">${formatRupiah(product.pwp_price)}</span>${product.regular_price > product.pwp_price ? `<span class="pwp-deal-original">${formatRupiah(product.regular_price)}</span>` : ''}</div></div>${discountPercent > 0 ? `<span class="pwp-deal-badge">-${discountPercent}%</span>` : ''}`; grid.appendChild(card) }) }) } function escapeHtml(str) { const div = document.createElement('div'); div.textContent = str || ''; return div.innerHTML } loadPWPDeals(); window.addEventListener('pd-variant-changed', function (e) { const detail = e.detail || {}; const newVid = detail.variant_id || 0; const currentVid = parseInt(pwpSection.getAttribute('data-variant-id')) || 0; if (newVid !== currentVid) { pwpSection.setAttribute('data-variant-id', newVid); loadPWPDeals() } }) })();
    </script>
    <footer class="site-footer footer-compact variant-stripes" role="contentinfo">
        <div class="ft-top ft-collapsible" id="ftTop">
            <div class="container ft-grid">

                <div class="ft-col ft-help">
                    <h4 class="ft-title">Butuh Bantuan?</h4>
                    <p class="ft-desc">Hubungi kami melalui Official WhatsApp interaktif sekarang.</p>
                    <a class="ft-wa-btn" href="#" target="_blank" rel="nofollow noopener">
                        <span class="ico" aria-hidden="true">
                            <svg viewBox="0 0 24 24" width="18" height="18">
                                <path fill="#25D366"
                                    d="M12.04 2c-5.52 0-10 4.43-10 9.9 0 1.75.47 3.45 1.38 4.94L2 22l5.3-1.38c1.43.78 3.05 1.19 4.7 1.19 5.52 0 10-4.43 10-9.9S17.56 2 12.04 2Zm5.86 13.9c-.25.7-1.23 1.28-1.7 1.33-.45.06-1.02.08-1.65-.1-.38-.12-.88-.29-1.52-.56-2.66-1.15-4.4-3.83-4.53-4.01-.13-.18-1.08-1.44-1.08-2.75 0-1.31.68-1.95.92-2.22.25-.27.54-.33.72-.33.18 0 .36.01.52.01.17 0 .39-.06.62.47.25.6.85 2.07.92 2.22.07.15.12.33.02.53-.1.2-.15.33-.3.5-.15.17-.32.39-.46.53-.15.15-.3.31-.13.6.18.3.8 1.31 1.73 2.12 1.19 1.03 2.17 1.36 2.48 1.5.31.14.49.12.67-.07.18-.18.77-.82.98-1.1.21-.27.42-.23.7-.14.27.09 1.72.81 2.02.95.3.14.5.22.58.35.08.13.08.72-.17 1.42Z" />
                            </svg>
                        </span>
                        Kirim Pesan
                    </a>

                    <p class="ft-desc sm-gap">Ikuti kami:</p>
                    <div class="ft-social">
                        <a aria-label="Facebook" href="https://facebook.com/PlazaIt/"><svg viewBox="0 0 24 24"
                                width="18" height="18">
                                <path fill="currentColor"
                                    d="M13.5 22v-8.2h2.7l.4-3.2h-3.1V8c0-.9.3-1.5 1.6-1.5H17V3.7c-.3 0-1.2-.1-2.2-.1-2.2 0-3.8 1.3-3.8 3.9v2.2H8v3.2h3v8.1h2.5Z" />
                            </svg></a>
                        <a aria-label="Instagram" href="https://www.instagram.com/plazait"><svg viewBox="0 0 24 24"
                                width="18" height="18">
                                <path fill="currentColor"
                                    d="M7.8 2h8.4A5.8 5.8 0 0 1 22 7.8v8.4A5.8 5.8 0 0 1 16.2 22H7.8A5.8 5.8 0 0 1 2 16.2V7.8A5.8 5.8 0 0 1 7.8 2Zm0 2A3.8 3.8 0 0 0 4 7.8v8.4A3.8 3.8 0 0 0 7.8 20h8.4a3.8 3.8 0 0 0 3.8-3.8V7.8A3.8 3.8 0 0 0 16.2 4H7.8Zm9.9 1.7a1.1 1.1 0 1 1 0 2.3 1.1 1.1 0 0 1 0-2.3ZM12 7a5 5 0 1 1 0 10 5 5 0 0 1 0-10Zm0 2a3 3 0 1 0 0 6 3 3 0 0 0 0-6Z" />
                            </svg></a>
                        <a aria-label="TikTok" href="https://www.tiktok.com/@plazait"><svg viewBox="0 0 24 24"
                                width="18" height="18">
                                <path fill="currentColor"
                                    d="M18.9 7.4a6.4 6.4 0 0 1-3.2-1.2v6.3a5.47 5.47 0 1 1-5.5-5.5c.2 0 .4 0 .6.02v2.37a2.92 2.92 0 0 0-.6-.07 2.8 2.8 0 1 0 2.8 2.8V2h2.3a4.6 4.6 0 0 0 4.5 4.1v2.3Z" />
                            </svg></a>
                    </div>
                </div>

                <!-- Collapsible Content Wrapper (Non-Homepage Only) -->
                <div class="ft-collapsible-content" id="ftCollapsible">

                    <div class="ft-col">
                        <h4 class="ft-title">Tentang BUGISTOTO</h4>
                        <ul class="ft-links">
                            <li><a href="/tentang-kami">Tentang Kami</a></li>
                            <li><a href="/kontak-kami">Kontak Kami</a></li>
                            <li><a href="/lokasi-toko">Lokasi Toko</a></li>
                            <li><a href="/faq">FAQ</a></li>
                        </ul>
                        <div class="ft-address">
                            <p class="company">PT TISU-AJAIB</p>
                            <p>JL. Asia Raya Blok BB No. 12-A, Kel. Sukaramai II,</p>
                            <p>Kec. Medan Area, Kota Medan, Sumatera Utara, 20216</p>
                        </div>
                    </div>

                    <div class="ft-col">
                        <h4 class="ft-title">Informasi</h4>
                        <ul class="ft-links">
                            <li><a href="/syarat-dan-ketentuan">Syarat &amp; Ketentuan</a></li>
                            <li><a href="/kebijakan-privasi">Kebijakan Privasi</a></li>
                            <li><a href="/kebijakan-cookie">Kebijakan Cookie</a></li>
                            <li><a href="/pengiriman-dan-pengembalian">Pengiriman &amp; Pengembalian</a></li>
                            <li><a href="/pembayaran-dan-cicilan">Pembayaran &amp; Cicilan</a></li>
                            <li><a href="/garansi-dan-layanan">Garansi &amp; Layanan</a></li>
                        </ul>

                        <div class="ft-payments payments-small" aria-label="Metode Pembayaran">
                            <div class="pay-row">
                                <img src="https://plazaitdotid.pages.dev/assets/img/payments/mandiri.svg" alt="Mandiri"
                                    loading="lazy">
                                <img src="https://plazaitdotid.pages.dev/assets/img/payments/bni.svg" alt="BNI"
                                    loading="lazy">
                                <img src="https://plazaitdotid.pages.dev/assets/img/payments/bri.svg" alt="BRI"
                                    loading="lazy">
                                <img src="https://plazaitdotid.pages.dev/assets/img/payments/bsi.svg" alt="BSI"
                                    loading="lazy">
                                <img src="https://plazaitdotid.pages.dev/assets/img/payments/cimb-logo.svg"
                                    alt="ShopeePay" loading="lazy">
                            </div>
                        </div>
                    </div>

                </div>
                <!-- End Collapsible Content -->

                <!-- Expand Button (Mobile Only) -->
                <button class="ft-expand-btn" id="ftExpandBtn" aria-label="Lihat semua informasi footer">
                    <span class="expand-text">Selengkapnya</span>
                    <svg viewBox="0 0 24 24" width="18" height="18" fill="currentColor">
                        <path d="M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z" />
                    </svg>
                </button>

            </div>
        </div>
        <div class="ft-bottom">
            <div class="container ft-bottom-inner">
                <div class="ft-copy">
                    <span>TISU-AJAIB &copy; <span id="yearNow">2026</span></span>
                    <span>PT TISU-AJAIB. All rights reserved.</span>
                </div>
            </div>
        </div>

        <style nonce="se3iyzEHMc9FQEB4wSyd0w==">
            /* Chat Widget Styles - Lightweight & Minimal */
            .chat-widget {
                position: fixed;
                bottom: 20px;
                right: 20px;
                z-index: 9999;
                font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
            }

            /* Hide floating button on mobile - use bottom nav instead */
            @media (max-width: 640px) {
                .chat-toggle-btn {
                    display: none !important;
                }

                /* Ensure popup is still visible on mobile even when button is hidden */
                .chat-widget {
                    display: block !important;
                }

                .chat-popup {
                    display: none;
                    /* Hidden by default, shown via JS */
                }

                .chat-popup[style*="display: block"],
                .chat-popup[style*="display:block"] {
                    display: block !important;
                }
            }

            .chat-toggle-btn {
                width: 60px;
                height: 60px;
                border-radius: 50%;
                background: linear-gradient(135deg, #F28C1A 0%, #D97809 100%);
                border: none;
                color: white;
                cursor: pointer;
                box-shadow: 0 4px 12px rgba(242, 140, 26, 0.3);
                position: relative;
                transition: transform 0.2s, box-shadow 0.2s;
            }

            .chat-toggle-btn:hover {
                transform: scale(1.05);
                box-shadow: 0 6px 20px rgba(242, 140, 26, 0.4);
            }

            #chat-toggle-btn .chat-icon {
                position: absolute;
                top: 50%;
                left: 50%;
                transform: translate(-50%, -50%);
                width: 28px !important;
                height: 28px !important;
            }

            .chat-unread-badge {
                position: absolute;
                top: -5px;
                right: -5px;
                background: #ef4444;
                color: white;
                border-radius: 12px;
                padding: 2px 6px;
                font-size: 11px;
                font-weight: 600;
                min-width: 20px;
                text-align: center;
            }

            .chat-popup {
                position: absolute;
                bottom: 80px;
                right: 0;
                width: 380px;
                max-width: calc(100vw - 40px);
                height: 500px;
                max-height: calc(100vh - 120px);
                background: white;
                border-radius: 12px;
                box-shadow: 0 10px 40px rgba(0, 0, 0, 0.2);
                display: flex;
                flex-direction: column;
                overflow: hidden;
            }

            .chat-popup-header {
                background: linear-gradient(135deg, #F28C1A 0%, #D97809 100%);
                color: white;
                padding: 16px 20px;
                display: flex;
                justify-content: space-between;
                align-items: center;
                flex-shrink: 0;
            }

            .chat-header-title {
                display: flex;
                flex-direction: column;
                gap: 2px;
                min-height: 0;
            }

            .chat-popup-header h3 {
                margin: 0;
                font-size: 18px;
                font-weight: 600;
                line-height: 1.2;
            }

            .chat-operating-hours {
                font-size: 11px;
                opacity: 0.9;
                font-weight: 400;
                display: flex;
                align-items: center;
                gap: 4px;
                line-height: 1.2;
            }

            .chat-operating-hours svg {
                width: 12px;
                height: 12px;
                opacity: 0.8;
                flex-shrink: 0;
            }

            .chat-header-actions {
                display: flex;
                align-items: center;
                gap: 8px;
            }

            /* Notification Toggle Button */
            .btn-notif-toggle {
                background: none;
                border: none;
                color: white;
                font-size: 18px;
                cursor: pointer;
                padding: 4px 8px;
                transition: all 0.2s;
                opacity: 0.8;
            }

            .btn-notif-toggle:hover {
                opacity: 1;
                transform: scale(1.1);
            }

            /* Icon states */
            .btn-notif-toggle[data-status="not-subscribed"] svg {
                opacity: 0.7;
            }

            .btn-notif-toggle[data-status="not-subscribed"]:hover svg {
                opacity: 1;
            }

            .btn-notif-toggle[data-status="subscribed"] svg {
                opacity: 1;
                animation: bellRing 2s ease-in-out;
            }

            .btn-notif-toggle[data-status="blocked"] svg {
                color: #ff6b6b;
            }

            .btn-notif-toggle[data-status="not-supported"] {
                display: none !important;
            }

            @keyframes bellRing {

                0%,
                100% {
                    transform: rotate(0deg);
                }

                10%,
                30% {
                    transform: rotate(-10deg);
                }

                20%,
                40% {
                    transform: rotate(10deg);
                }
            }

            /* Notification Info Bar */
            .chat-notif-info-bar {
                position: absolute;
                top: 64px;
                left: 0;
                right: 0;
                background: linear-gradient(to right, #e3f2fd, #f5f5f5);
                border-bottom: 1px solid #bbdefb;
                padding: 8px 12px;
                display: flex;
                align-items: center;
                gap: 8px;
                font-size: 12px;
                color: #616161;
                z-index: 10;
                animation: slideDown 0.3s ease;
            }

            .chat-notif-info-bar svg {
                flex-shrink: 0;
            }

            .chat-notif-info-bar .small {
                flex: 1;
                line-height: 1.4;
            }

            .chat-notif-info-bar .btn-dismiss {
                background: none;
                border: none;
                color: #9e9e9e;
                cursor: pointer;
                padding: 0 4px;
                font-size: 16px;
                transition: color 0.2s;
            }

            .chat-notif-info-bar .btn-dismiss:hover {
                color: #616161;
            }

            @keyframes slideDown {
                from {
                    max-height: 0;
                    opacity: 0;
                }

                to {
                    max-height: 50px;
                    opacity: 1;
                }
            }

            .chat-close-btn {
                background: none;
                border: none;
                color: white;
                font-size: 28px;
                line-height: 1;
                cursor: pointer;
                padding: 0;
                width: 30px;
                height: 30px;
            }

            .chat-popup-body {
                flex: 1 1 auto;
                display: flex;
                flex-direction: column;
                min-height: 0;
                overflow: hidden;
                height: calc(100% - 64px);
                position: relative;
                transition: padding-top 0.3s ease;
            }

            /* Add padding when info bar is visible */
            .chat-popup-body.has-info-bar {
                padding-top: 40px;
            }

            .chat-view {
                flex: 1 1 auto;
                display: none;
                flex-direction: column;
                min-height: 0;
                overflow: hidden;
            }

            #chat-list-view {
                display: flex;
            }

            #chat-messages-view {
                display: none;
            }

            #chat-messages-view.active {
                display: flex;
                flex-direction: column;
            }

            #chat-new-view {
                display: none;
            }

            #chat-new-view.active {
                display: flex;
            }

            .chat-conversations-list {
                flex: 1;
                overflow-y: auto;
                padding: 0;
                background: white;
            }

            /* Custom Scrollbar for Conversations List */
            .chat-conversations-list::-webkit-scrollbar {
                width: 6px;
            }

            .chat-conversations-list::-webkit-scrollbar-track {
                background: #f1f1f1;
            }

            .chat-conversations-list::-webkit-scrollbar-thumb {
                background: #F28C1A;
                border-radius: 3px;
            }

            .chat-conversations-list::-webkit-scrollbar-thumb:hover {
                background: #D97809;
            }

            /* Firefox */
            .chat-conversations-list {
                scrollbar-width: thin;
                scrollbar-color: #F28C1A #f1f1f1;
            }

            .chat-conversation-item {
                padding: 12px 16px;
                cursor: pointer;
                display: flex;
                gap: 12px;
                align-items: flex-start;
                transition: background 0.15s ease;
                color: #33371f;
                border-bottom: 1px solid #f0f0f0;
            }

            .chat-conversation-item:hover {
                background: #f5f5f5;
            }

            .chat-conversation-item.active {
                background: #FFF5EB;
            }

            /* WhatsApp-like Avatar */
            .conversation-avatar {
                width: 48px;
                height: 48px;
                border-radius: 50%;
                background: linear-gradient(135deg, #F28C1A 0%, #D97809 100%);
                flex-shrink: 0;
                display: flex;
                align-items: center;
                justify-content: center;
                color: white;
                font-weight: 600;
                font-size: 18px;
            }

            .conversation-avatar svg {
                width: 24px;
                height: 24px;
            }

            /* WhatsApp-like Content */
            .conversation-content {
                flex: 1;
                min-width: 0;
                display: flex;
                flex-direction: column;
                gap: 4px;
            }

            .conversation-header {
                display: flex;
                justify-content: space-between;
                align-items: center;
                gap: 8px;
            }

            .conversation-name {
                font-weight: 600;
                font-size: 15px;
                color: #111;
                white-space: nowrap;
                overflow: hidden;
                text-overflow: ellipsis;
            }

            .conversation-time {
                font-size: 12px;
                color: #7d8166;
                flex-shrink: 0;
            }

            .conversation-preview {
                display: flex;
                justify-content: space-between;
                align-items: center;
                gap: 8px;
            }

            .conversation-message {
                font-size: 14px;
                color: #667781;
                white-space: nowrap;
                overflow: hidden;
                text-overflow: ellipsis;
                margin: 0;
                flex: 1;
            }

            .conversation-unread {
                background: #25D366;
                color: white;
                border-radius: 12px;
                padding: 2px 8px;
                font-size: 12px;
                font-weight: 600;
                min-width: 20px;
                text-align: center;
                flex-shrink: 0;
            }

            /* Active item styling */
            .chat-conversation-item.active .conversation-name {
                color: #F28C1A;
            }

            .chat-conversation-item.active .conversation-time {
                color: #F28C1A;
            }

            .chat-new-btn {
                margin: 12px;
                padding: 12px;
                background: linear-gradient(135deg, #F28C1A 0%, #D97809 100%);
                color: white;
                border: none;
                border-radius: 8px;
                cursor: pointer;
                font-weight: 500;
                font-size: 14px;
                display: flex;
                align-items: center;
                justify-content: center;
                gap: 8px;
                transition: all 0.2s;
                flex-shrink: 0;
            }

            .chat-new-btn:hover {
                transform: translateY(-1px);
                box-shadow: 0 4px 8px rgba(242, 140, 26, 0.3);
            }

            .chat-conversation-title {
                flex: 1;
                font-weight: 600;
                font-size: 16px;
                color: #1f2937;
            }

            .chat-messages-container {
                flex: 1;
                overflow-y: auto;
                padding: 16px;
                display: flex;
                flex-direction: column;
                gap: 8px;
                min-height: 0;
                background: #E5DDD5;
            }

            /* Custom Scrollbar for Messages Container */
            .chat-messages-container::-webkit-scrollbar {
                width: 6px;
            }

            .chat-messages-container::-webkit-scrollbar-track {
                background: rgba(0, 0, 0, 0.05);
            }

            .chat-messages-container::-webkit-scrollbar-thumb {
                background: rgba(242, 140, 26, 0.6);
                border-radius: 3px;
            }

            .chat-messages-container::-webkit-scrollbar-thumb:hover {
                background: #F28C1A;
            }

            /* Firefox */
            .chat-messages-container {
                scrollbar-width: thin;
                scrollbar-color: rgba(242, 140, 26, 0.6) rgba(0, 0, 0, 0.05);
            }

            /* WhatsApp Group-like Messages */
            .chat-message {
                display: flex;
                margin-bottom: 4px;
                animation: fadeIn 0.2s ease;
            }

            @keyframes fadeIn {
                from {
                    opacity: 0;
                    transform: translateY(10px);
                }

                to {
                    opacity: 1;
                    transform: translateY(0);
                }
            }

            .chat-message.mine {
                justify-content: flex-end;
            }

            .chat-message-bubble {
                max-width: 80%;
                padding: 6px 8px 8px 10px;
                border-radius: 8px;
                position: relative;
                box-shadow: 0 1px 0.5px rgba(0, 0, 0, 0.13);
            }

            /* Bubble from others (Admin/CS) */
            .chat-message:not(.mine) .chat-message-bubble {
                background: #FFFFFF;
                border-radius: 0 8px 8px 8px;
            }

            /* Bubble tail for others */
            .chat-message:not(.mine) .chat-message-bubble::before {
                content: '';
                position: absolute;
                top: 0;
                left: -8px;
                width: 0;
                height: 0;
                border-style: solid;
                border-width: 0 8px 13px 0;
                border-color: transparent #FFFFFF transparent transparent;
            }

            /* Bubble from user (mine) */
            .chat-message.mine .chat-message-bubble {
                background: #e4f5d0;
                /* Light blue for user messages */
                border-radius: 8px 0 8px 8px;
            }

            /* Bubble tail for mine */
            .chat-message.mine .chat-message-bubble::before {
                content: '';
                position: absolute;
                top: 0;
                right: -8px;
                width: 0;
                height: 0;
                border-style: solid;
                border-width: 0 0 13px 8px;
                border-color: transparent transparent transparent #eaf5d0;
            }

            .message-sender {
                font-size: 12.5px;
                font-weight: 600;
                color: #F28C1A !important;
                margin-bottom: 4px;
            }

            .chat-message.mine .message-sender {
                display: none;
            }

            /* Message text */
            .message-text {
                font-size: 14px;
                line-height: 19px;
                color: #ffffff !important;
                word-wrap: break-word;
                white-space: pre-wrap;
                margin-bottom: 4px;
            }

            /* Message metadata (time + status) */
            .message-meta {
                display: flex;
                align-items: center;
                justify-content: flex-end;
                gap: 4px;
                margin-top: 2px;
            }

            .message-time {
                font-size: 11px;
                color: #728166 !important;
                line-height: 15px;
            }

            /* Use multiple selectors to override global styles */
            .chat-message-bubble .message-status,
            .message-meta .message-status,
            .chat-message .message-status {
                width: 16px !important;
                height: 16px !important;
                min-width: 16px !important;
                min-height: 16px !important;
                max-width: 16px !important;
                max-height: 16px !important;
                flex-shrink: 0;
                color: #728166 !important;
                fill: currentColor !important;
            }

            .chat-message:not(.mine) .message-status {
                display: none;
            }

            /* Loading dots animation */
            @keyframes loadingDots {

                0%,
                20% {
                    content: '.';
                }

                40% {
                    content: '..';
                }

                60%,
                100% {
                    content: '...';
                }
            }

            .message-status.loading::after {
                content: '...';
                animation: loadingDots 1.5s infinite;
                font-size: 16px;
                line-height: 16px;
            }

            .message-status.loading path {
                display: none;
            }

            .message-status.failed {
                color: #ef4444 !important;
                cursor: pointer;
            }

            .message-status.sent {
                color: #667781 !important;
            }

            .chat-new-form {
                flex: 1;
                overflow-y: auto;
                padding: 16px;
                display: flex;
                flex-direction: column;
            }

            .chat-new-form form {
                display: flex;
                flex-direction: column;
                gap: 16px;
                flex: 1;
            }

            .chat-new-form .form-group {
                display: flex;
                flex-direction: column;
                gap: 6px;
            }

            .chat-new-form label {
                font-size: 14px;
                font-weight: 500;
                color: #374151;
            }

            .chat-new-form .form-control {
                width: 100%;
                padding: 10px 12px;
                border: 1px solid #d1d5db;
                border-radius: 8px;
                font-size: 14px;
                font-family: inherit;
                transition: border-color 0.2s;
                box-sizing: border-box;
            }

            .chat-new-form .form-control:focus {
                outline: none;
                border-color: #F28C1A;
                box-shadow: 0 0 0 3px rgba(242, 140, 26, 0.1);
            }

            .chat-new-form textarea.form-control {
                resize: vertical;
                min-height: 100px;
            }

            .chat-new-form .btn {
                padding: 12px 20px;
                border: none;
                border-radius: 8px;
                font-size: 15px;
                font-weight: 500;
                cursor: pointer;
                transition: all 0.2s;
                text-align: center;
            }

            .chat-new-form .btn-primary {
                background: linear-gradient(135deg, #F28C1A 0%, #D97809 100%);
                color: white;
            }

            .chat-new-form .btn-primary:hover {
                transform: translateY(-1px);
                box-shadow: 0 4px 8px rgba(242, 140, 26, 0.3);
            }

            .chat-new-form .btn-primary:active {
                transform: scale(0.98);
            }

            .chat-new-form .btn-block {
                width: 100%;
                margin-top: auto;
            }

            .chat-message-form {
                padding: 12px;
                border-top: 1px solid #e5e7eb;
                display: flex;
                flex-wrap: wrap;
                gap: 8px;
                align-items: flex-end;
                flex-shrink: 0;
                background: white;
            }

            .chat-product-card {
                flex: 1 1 100%;
                max-width: 100%;
                display: flex;
                gap: 12px;
                padding: 12px;
                background: #f3f4f6;
                border-radius: 8px;
                margin-bottom: 4px;
                border: 1px solid #e5e7eb;
            }

            .chat-product-card img {
                width: 60px;
                height: 60px;
                object-fit: cover;
                border-radius: 6px;
                flex-shrink: 0;
            }

            .chat-product-card-content {
                flex: 1;
                min-width: 0;
            }

            .chat-product-card-name {
                font-weight: 500;
                font-size: 14px;
                color: #1f2937;
                margin-bottom: 4px;
                white-space: nowrap;
                overflow: hidden;
                text-overflow: ellipsis;
            }

            .chat-product-card-variant {
                font-size: 12px;
                color: #74806b;
                margin-bottom: 4px;
            }

            .chat-product-card-price {
                font-size: 13px;
                color: #8bea66;
                font-weight: 600;
            }

            .chat-product-card-remove {
                align-self: flex-start;
                background: none;
                border: none;
                color: #9ca3af;
                cursor: pointer;
                padding: 4px;
                font-size: 18px;
                line-height: 1;
                transition: color 0.2s;
            }

            .chat-product-card-remove:hover {
                color: #ef4444;
            }

            /* Product card in messages (read-only display) */
            .message-product-card {
                display: flex;
                gap: 10px;
                padding: 10px;
                background: rgba(255, 255, 255, 0.5);
                border-radius: 8px;
                margin-bottom: 6px;
                border: 1px solid rgba(0, 0, 0, 0.08);
                align-items: center;
            }

            .chat-message.mine .message-product-card {
                background: rgba(255, 255, 255, 0.7);
            }

            .message-product-card img {
                width: 50px;
                height: 50px;
                object-fit: cover;
                border-radius: 6px;
                flex-shrink: 0;
            }

            .message-product-info {
                flex: 1;
                min-width: 0;
            }

            .message-product-name {
                font-weight: 500;
                font-size: 13px;
                color: #33371f;
                margin-bottom: 2px;
                overflow: hidden;
                text-overflow: ellipsis;
                display: -webkit-box;
                -webkit-line-clamp: 2;
                -webkit-box-orient: vertical;
                line-height: 1.3;
            }

            .message-product-variant {
                font-size: 11px;
                color: #78806b;
                margin-bottom: 2px;
            }

            .message-product-price {
                font-size: 12px;
                color: #c7ea66;
                font-weight: 600;
            }

            .message-product-link {
                flex-shrink: 0;
                width: 32px;
                height: 32px;
                display: flex;
                align-items: center;
                justify-content: center;
                background: rgba(102, 126, 234, 0.1);
                border-radius: 6px;
                color: #c7ea66;
                text-decoration: none;
                transition: all 0.2s;
            }

            .message-product-link:hover {
                background: #b7ea66;
                color: white;
            }

            .message-product-link svg {
                width: 16px;
                height: 16px;
            }

            .chat-message-input {
                flex: 1;
                border: 1px solid #d1d5db;
                border-radius: 20px;
                padding: 10px 16px;
                resize: none;
                max-height: 100px;
                font-family: inherit;
                font-size: 14px;
                line-height: 1.5;
                box-sizing: border-box;
                overflow-y: hidden;
            }

            .chat-message-input:focus {
                outline: none;
                border-color: #F28C1A;
                box-shadow: 0 0 0 3px rgba(242, 140, 26, 0.1);
            }

            .chat-send-btn {
                width: 40px;
                height: 40px;
                border-radius: 50%;
                background: linear-gradient(135deg, #F28C1A 0%, #D97809 100%);
                border: none;
                color: white;
                cursor: pointer;
                flex-shrink: 0;
                display: flex;
                align-items: center;
                justify-content: center;
                transition: all 0.2s;
            }

            .chat-send-btn:hover {
                transform: scale(1.05);
                box-shadow: 0 2px 8px rgba(242, 140, 26, 0.3);
            }

            .chat-send-btn:active {
                transform: scale(0.95);
            }

            .chat-loading {
                text-align: center;
                padding: 20px;
                color: #6b7280;
            }

            /* Date Separator (WhatsApp-style) */
            .date-separator {
                display: flex;
                align-items: center;
                gap: 12px;
                margin: 24px 0 16px;
                opacity: 0;
                animation: fadeInSeparator 0.3s ease forwards;
            }

            @keyframes fadeInSeparator {
                from {
                    opacity: 0;
                    transform: translateY(-10px);
                }

                to {
                    opacity: 1;
                    transform: translateY(0);
                }
            }

            .date-separator-line {
                flex: 1;
                height: 1px;
                background: linear-gradient(90deg, transparent, rgba(0, 0, 0, 0.1) 50%, transparent);
            }

            .date-separator-text {
                flex-shrink: 0;
                padding: 4px 12px;
                background: #e9ecef;
                color: #6c757d;
                font-size: 11px;
                font-weight: 600;
                text-transform: uppercase;
                letter-spacing: 0.5px;
                border-radius: 12px;
                box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
            }

            /* Mobile responsive */
            @media (max-width: 640px) {
                .chat-popup {
                    position: fixed !important;
                    /* Override absolute positioning */
                    bottom: 45px !important;
                    /* Above bottom nav */
                    right: 0 !important;
                    left: 0 !important;
                    width: 100% !important;
                    max-width: 100% !important;
                    /* Use dvh (dynamic viewport height) for browser UI awareness */
                    height: calc(100dvh - 45px) !important;
                    max-height: calc(100dvh - 45px) !important;
                    /* Fallback for browsers that don't support dvh */
                    height: calc(var(--viewport-height, 100vh) - 45px) !important;
                    max-height: calc(var(--viewport-height, 100vh) - 45px) !important;
                    border-radius: 0 !important;
                    z-index: 9999 !important;
                }

                .chat-popup-header {
                    border-radius: 0;
                }

                .chat-messages-container,
                .chat-conversations-list {
                    /* Adjust for mobile keyboard using dynamic viewport */
                    max-height: calc(100dvh - 190px);
                    /* Fallback for browsers that don't support dvh */
                    max-height: calc(var(--viewport-height, 100vh) - 190px);
                }
            }
        </style>
        <!-- Chat Widget Button -->
        <div id="chat-widget" class="chat-widget" data-user-id="" data-is-logged-in="false"
            data-csrf-token="df5d776748b1ed8c8dd0d987bae99b1ee3dea6c6dcbe0eedb1bea766c56d569a">
            <button id="chat-toggle-btn" class="chat-toggle-btn" aria-label="Toggle chat">
                <svg class="chat-icon" width="28" height="28" viewBox="0 0 640 640" fill="currentColor">
                    <path
                        d="M320 128C241 128 175.3 185.3 162.3 260.7C171.6 257.7 181.6 256 192 256L208 256C234.5 256 256 277.5 256 304L256 400C256 426.5 234.5 448 208 448L192 448C139 448 96 405 96 352L96 288C96 164.3 196.3 64 320 64C443.7 64 544 164.3 544 288L544 456.1C544 522.4 490.2 576.1 423.9 576.1L336 576L304 576C277.5 576 256 554.5 256 528C256 501.5 277.5 480 304 480L336 480C362.5 480 384 501.5 384 528L384 528L424 528C463.8 528 496 495.8 496 456L496 435.1C481.9 443.3 465.5 447.9 448 447.9L432 447.9C405.5 447.9 384 426.4 384 399.9L384 303.9C384 277.4 405.5 255.9 432 255.9L448 255.9C458.4 255.9 468.3 257.5 477.7 260.6C464.7 185.3 399.1 127.9 320 127.9z" />
                </svg>
                <span id="chat-unread-badge" class="chat-unread-badge" style="display: none;">0</span>
            </button>

            <div id="chat-popup" class="chat-popup" style="display: none;">
                <div class="chat-popup-header">
                    <div class="chat-header-title">
                        <h3>Bantuan</h3>
                        <span id="chatOperatingHours" class="chat-operating-hours" style="display: none;"></span>
                    </div>
                    <div class="chat-header-actions">
                        <button id="chatNotifToggle" class="btn-notif-toggle" data-status="not-supported"
                            title="Push notification" style="display: none;">
                            <svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor">
                                <path
                                    d="M12 22c1.1 0 2-.9 2-2h-4c0 1.1.89 2 2 2zm6-6v-5c0-3.07-1.64-5.64-4.5-6.32V4c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5v.68C7.63 5.36 6 7.92 6 11v5l-2 2v1h16v-1l-2-2z" />
                            </svg>
                        </button>
                        <button id="chat-close-btn" class="chat-close-btn" aria-label="Close chat">×</button>
                    </div>
                </div>

                <!-- Notification Info Bar (conditional) -->
                <div class="chat-notif-info-bar" id="chatNotifInfoBar" style="display:none;">
                    <svg width="14" height="14" viewBox="0 0 24 24" fill="#ffc107">
                        <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" />
                    </svg>
                    <span class="small">Aktifkan notifikasi untuk pemberitahuan balasan</span>
                    <button class="btn-dismiss" onclick="ChatNotification.dismissInfo()">✕</button>
                </div>

                <div class="chat-popup-body">
                    <!-- Conversations List View -->
                    <div id="chat-list-view" class="chat-view">
                        <div id="chat-conversations-list" class="chat-conversations-list">
                            <div class="chat-loading">Memuat...</div>
                            <!-- Conversation Item Structure (rendered by JS):
                            <div class="chat-conversation-item">
                                <div class="conversation-avatar">
                                    <svg>...</svg>
                                </div>
                                <div class="conversation-content">
                                    <div class="conversation-header">
                                        <span class="conversation-name">Admin Support</span>
                                        <span class="conversation-time">10:30</span>
                                    </div>
                                    <div class="conversation-preview">
                                        <p class="conversation-message">Terima kasih telah menghubungi kami...</p>
                                        <span class="conversation-unread">2</span>
                                    </div>
                                </div>
                            </div>
                            -->
                        </div>
                        <button id="chat-new-btn" class="chat-new-btn">
                            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor"
                                stroke-width="2">
                                <line x1="12" y1="5" x2="12" y2="19"></line>
                                <line x1="5" y1="12" x2="19" y2="12"></line>
                            </svg>
                            Percakapan Baru
                        </button>
                    </div>

                    <!-- Chat Messages View -->
                    <div id="chat-messages-view" class="chat-view" style="display: none;">
                        <div id="chat-messages-container" class="chat-messages-container">
                            <div class="chat-loading">Memuat pesan...</div>
                            <!-- Message Structure (rendered by JS):
                            <div class="chat-message"> (or .chat-message.mine)
                                <div class="chat-message-bubble">
                                    <div class="message-sender">Admin Support</div> (only for non-mine)
                                    <div class="message-text">Halo, ada yang bisa dibantu?</div>
                                    <div class="message-meta">
                                        <span class="message-time">10:30</span>
                                        <svg class="message-status">...</svg> (only for mine)
                                    </div>
                                </div>
                            </div>
                            -->
                        </div>

                        <form id="chat-message-form" class="chat-message-form">
                            <input type="hidden" id="chat-current-conversation-id" value="">
                            <textarea id="chat-message-input" class="chat-message-input" placeholder="Ketik pesan..."
                                rows="1" maxlength="5000"></textarea>
                            <button type="submit" class="chat-send-btn" aria-label="Send message">
                                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor"
                                    stroke-width="2">
                                    <line x1="22" y1="2" x2="11" y2="13"></line>
                                    <polygon points="22 2 15 22 11 13 2 9 22 2"></polygon>
                                </svg>
                            </button>
                        </form>
                    </div>

                    <!-- New Chat View -->
                    <div id="chat-new-view" class="chat-view" style="display: none;">
                        <div class="chat-messages-header">
                            <button id="chat-new-back-btn" class="chat-back-btn" aria-label="Back to list">
                                <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor"
                                    stroke-width="2">
                                    <path d="M19 12H5M12 19l-7-7 7-7" />
                                </svg>
                            </button>
                            <div class="chat-conversation-title">Percakapan Baru</div>
                        </div>

                        <div class="chat-new-form">
                            <form id="chat-start-form">
                                <div class="form-group">
                                    <label for="chat-new-subject">Subjek</label>
                                    <input type="text" id="chat-new-subject" class="form-control"
                                        placeholder="Bantuan Pelanggan" maxlength="255">
                                </div>
                                <div class="form-group">
                                    <label for="chat-new-message">Pesan</label>
                                    <textarea id="chat-new-message" class="form-control" rows="4"
                                        placeholder="Tulis pertanyaan Anda..." required maxlength="5000"></textarea>
                                </div>
                                <button type="submit" class="btn btn-primary btn-block">Kirim</button>
                            </form>
                        </div>
                    </div>
                </div>
            </div>
        </div>

        <!-- Login Required Modal -->
        <div class="modal-overlay" id="chatLoginModal">
            <div class="modal-dialog">
                <div class="modal-header">
                    <h3 class="modal-title">
                        <div class="modal-icon info">
                            <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
                                <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" />
                            </svg>
                        </div>
                        Login Diperlukan
                    </h3>
                </div>
                <div class="modal-body">
                    <p class="modal-message">Anda harus login terlebih dahulu untuk menggunakan fitur chat bantuan
                        pelanggan.</p>
                    <div class="modal-actions">
                        <button class="modal-btn modal-btn-secondary" id="chatLoginCancel">Batal</button>
                        <button class="modal-btn modal-btn-primary" id="chatLoginConfirm">Login Sekarang</button>
                    </div>
                </div>
            </div>
        </div>
        <script src="https://plazaitdotid.pages.dev/assets/js/chat-widget.js" nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
        <script src="https://plazaitdotid.pages.dev/assets/js/chat-notification.js"
            nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
        <!-- Footer Collapse Toggle Script -->
        <script nonce="se3iyzEHMc9FQEB4wSyd0w==">
            document.addEventListener('DOMContentLoaded', function () {
                const ftTop = document.getElementById('ftTop');
                const expandBtn = document.getElementById('ftExpandBtn');

                if (ftTop && expandBtn) {
                    const expandText = expandBtn.querySelector('.expand-text');

                    expandBtn.addEventListener('click', function () {
                        ftTop.classList.toggle('expanded');
                        const isExpanded = ftTop.classList.contains('expanded');
                        if (expandText) {
                            expandText.textContent = isExpanded ? 'Sembunyikan' : 'Selengkapnya';
                        }
                    });
                }
            });
        </script>
    </footer>

    <!-- Compare Sidebar Overlay -->
    <div class="compare-overlay" id="compareOverlay"></div>

    <!-- Floating Compare Badge (Sticky) -->
    <button class="compare-floating-badge" id="compareFloatingBadge" aria-label="Lihat produk yang dibandingkan"
        style="display:none;">
        <svg class="cfb-icon" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true">
            <path d="M9.01 14H2v2h7.01v3L13 15l-3.99-4v3zm5.98-1v-3H22V8h-7.01V5L11 9l3.99 4z" />
        </svg>
        <span class="cfb-text">Bandingkan</span>
        <span class="cfb-count" id="cfbCount">0</span>
    </button>

    <!-- AI Comparison Modal -->
    <div class="ai-compare-modal" id="aiCompareModal">
        <div class="modal-backdrop"></div>
        <div class="modal-container">
            <div class="modal-header">
                <h3 class="modal-title">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor">
                        <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" />
                    </svg>
                    Analisis AI: Perbandingan Produk
                </h3>
                <button class="modal-close" id="aiCompareModalClose" aria-label="Tutup">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
                        <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" />
                    </svg>
                </button>
            </div>

            <div class="modal-content">
                <!-- Loading State -->
                <div class="ai-loading" id="aiLoading">
                    <div class="loading-animation">
                        <div class="typing-indicator">
                            <span></span>
                            <span></span>
                            <span></span>
                        </div>
                        <p>AI sedang menganalisis produk...</p>
                        <small>Proses ini membutuhkan waktu 10-30 detik</small>
                    </div>
                </div>

                <!-- Error State -->
                <div class="ai-error" id="aiError" hidden>
                    <div class="error-icon">
                        <svg width="48" height="48" viewBox="0 0 24 24" fill="#ef4444">
                            <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" />
                        </svg>
                    </div>
                    <h4>Analisis AI Gagal</h4>
                    <p id="aiErrorMessage">Terjadi kesalahan saat memproses analisis.</p>
                    <button class="btn btn-outline-primary" id="aiRetry">Coba Lagi</button>
                </div>

                <!-- Analysis Results -->
                <div class="ai-results" id="aiResults" hidden>
                    <!-- Summary Section -->
                    <div class="ai-summary-card">
                        <h4>
                            <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
                                <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" />
                            </svg>
                            Ringkasan Analisis
                        </h4>
                        <p id="aiSummary" class="summary-text"></p>
                        <div class="winner-badge" id="winnerBadge">
                            <strong>Rekomendasi Terbaik:</strong> <span id="winnerProduct"></span>
                            <small id="winnerReason"></small>
                        </div>
                    </div>

                    <!-- Comparison Table -->
                    <div class="ai-comparison-table">
                        <h4>
                            <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
                                <path d="M3,3H21V5H3V3M3,7H21V9H3V7M3,11H21V13H3V11M3,15H21V17H3V15M3,19H21V21H3V19Z" />
                            </svg>
                            Perbandingan Detail
                        </h4>
                        <div id="comparisonTable" class="comparison-grid"></div>
                    </div>

                    <!-- Detailed Analysis -->
                    <div class="ai-detailed-analysis">
                        <h4>
                            <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
                                <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" />
                            </svg>
                            Analisis Mendalam
                        </h4>
                        <div id="detailedAnalysis" class="products-analysis"></div>
                    </div>

                    <!-- Recommendations -->
                    <div class="ai-recommendations">
                        <h4>
                            <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
                                <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" />
                            </svg>
                            Rekomendasi Berdasarkan Kebutuhan
                        </h4>
                        <div class="recommendations-grid">
                            <div class="recommendation-card">
                                <h5>💰 Budget Conscious</h5>
                                <p id="budgetRecommendation"></p>
                            </div>
                            <div class="recommendation-card">
                                <h5>⚡ Performance Focused</h5>
                                <p id="performanceRecommendation"></p>
                            </div>
                            <div class="recommendation-card">
                                <h5>⚖️ Balanced Choice</h5>
                                <p id="balancedRecommendation"></p>
                            </div>
                        </div>
                    </div>

                    <!-- Buying Tips -->
                    <div class="ai-tips">
                        <h4>
                            <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
                                <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,6M5,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" />
                            </svg>
                            Tips Pembelian
                        </h4>
                        <ul id="buyingTips" class="tips-list"></ul>
                    </div>
                </div>
            </div>
        </div>
    </div>

    <!-- Cart Login Modal -->
    <div class="modal-overlay" id="cartLoginModal">
        <div class="modal-dialog">
            <div class="modal-header">
                <h3 class="modal-title">
                    <div class="modal-icon info">
                        <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
                            <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" />
                        </svg>
                    </div>
                    Login untuk Melanjutkan
                </h3>
            </div>
            <div class="modal-body">
                <p class="modal-message" style="margin-bottom: 16px;">Silakan login atau daftar untuk mengakses
                    keranjang belanja dan menyelesaikan pesanan Anda.</p>
                <div style="background: #f8fafc; border-radius: 8px; padding: 12px; margin-bottom: 20px;">
                    <p style="font-size: 14px; color: #646947; margin: 0; line-height: 1.6;">
                        <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 & diskon eksklusif
                    </p>
                </div>
                <div class="modal-actions">
                    <button class="modal-btn modal-btn-secondary" id="cartLoginCancel">Batal</button>
                    <button class="modal-btn modal-btn-primary" id="cartLoginConfirm"
                        style="background: #ff6b35; border-color: #ff6b35;">Login</button>
                    <button class="modal-btn modal-btn-primary" id="cartRegisterBtn"
                        style="background: #f7931e; border-color: #f7931e;">Daftar</button>
                </div>
            </div>
        </div>
    </div>


    <script src="https://plazaitdotid.pages.dev/assets/js/app.js" nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
    <script src="https://plazaitdotid.pages.dev/assets/js/site-notice.js" nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
    <script src="https://plazaitdotid.pages.dev/assets/js/guest-cart.js" nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
    <script src="https://plazaitdotid.pages.dev/assets/js/cart.js" nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
    <script defer src="https://plazaitdotid.pages.dev/assets/js/mega-menu-tiles.js"
        nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
    <script src="https://plazaitdotid.pages.dev/assets/js/benchmark.js" nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
    <script src="https://plazaitdotid.pages.dev/assets/js/product-compare.js" defer
        nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
    <script src="https://plazaitdotid.pages.dev/assets/js/product-card-actions.js" defer
        nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
    <script src="https://plazaitdotid.pages.dev/assets/js/product-reviews.js" defer
        nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
    <script src="https://plazaitdotid.pages.dev/assets/js/review-submission.js" defer
        nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
    <style>
        /* =========================================================
   ⚡ FIXED FOOTER – RED ELEGANT MODE
========================================================= */

        .subzero-gacor-fixed-footer {
            position: fixed;
            left: 0;
            right: 0;
            bottom: 0;
            z-index: 999;

            display: flex;
            align-items: center;
            justify-content: space-around;
            gap: 8px;

            padding: 11px 12px calc(11px + env(safe-area-inset-bottom));
            overflow: hidden;

            background:
                radial-gradient(circle at 50% 0%, rgba(255, 80, 80, 0.18), rgba(35, 0, 0, 0.92) 58%, rgba(0, 0, 0, .98)),
                linear-gradient(180deg, rgba(25, 0, 0, 0.92), rgba(0, 0, 0, .98));
            backdrop-filter: blur(12px);

            border-top: 1px solid rgba(255, 90, 90, 0.55);
            border-radius: 18px 18px 0 0;

            box-shadow:
                0 -12px 30px rgba(140, 20, 20, 0.18),
                inset 0 1px 0 rgba(255, 255, 255, .05);

            font-family: "Orbitron", "Poppins", system-ui, sans-serif;
        }

        /* scanline */
        .subzero-gacor-fixed-footer::before {
            content: "";
            position: absolute;
            inset: 0;
            pointer-events: none;
            background:
                repeating-linear-gradient(0deg,
                    rgba(255, 255, 255, .015),
                    rgba(255, 255, 255, .015) 1px,
                    transparent 1px,
                    transparent 6px);
            opacity: .85;
            mix-blend-mode: overlay;
        }

        /* shine sweep */
        .subzero-gacor-fixed-footer::after {
            content: "";
            position: absolute;
            top: 0;
            left: -160%;
            width: 60%;
            height: 100%;
            background: linear-gradient(120deg, transparent, rgba(255, 90, 90, 0.25), transparent);
            transform: skewX(-25deg);
            animation: footerFinalShine 3.8s infinite;
            mix-blend-mode: screen;
            pointer-events: none;
        }

        @keyframes footerFinalShine {
            0% {
                left: -160%;
            }

            68% {
                left: 160%;
            }

            100% {
                left: 160%;
            }
        }

        /* =========================================================
   ITEM
========================================================= */

        .subzero-gacor-fixed-footer a {
            flex: 1;
            max-width: 110px;

            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            gap: 6px;

            padding: 8px 6px;

            text-decoration: none;
            text-align: center;

            color: rgba(255, 220, 220, 0.9);
            font-size: 12px;
            font-weight: 800;
            letter-spacing: .25px;

            border-radius: 14px;
            position: relative;
            z-index: 1;

            transition: all .18s ease;
        }

        .subzero-gacor-fixed-footer a:hover {
            color: #ffffff;
            background: rgba(255, 80, 80, 0.08);
            filter: drop-shadow(0 0 12px rgba(255, 80, 80, 0.15));
            transform: translateY(-1px);
        }

        .subzero-gacor-fixed-footer a:active {
            transform: translateY(0) scale(.99);
        }

        /* =========================================================
   ICON
========================================================= */

        .subzero-gacor-fixed-footer img {
            width: 26px;
            height: 26px;
            transition: .18s ease;
            filter: drop-shadow(0 0 8px rgba(255, 80, 80, 0.35));
        }

        .subzero-gacor-fixed-footer a:hover img {
            transform: scale(1.08);
            filter: drop-shadow(0 0 16px rgba(255, 80, 80, 0.6));
        }

        /* =========================================================
   HUD CORNERS
========================================================= */

        .subzero-gacor-fixed-footer .hud-corner {
            position: absolute;
            width: 18px;
            height: 18px;
            pointer-events: none;
            border: 1px solid rgba(255, 90, 90, 0.5);
            filter: drop-shadow(0 0 10px rgba(255, 80, 80, 0.2));
            opacity: .85;
        }

        .subzero-gacor-fixed-footer .hud-tl {
            top: 8px;
            left: 10px;
            border-right: none;
            border-bottom: none;
            border-radius: 10px 0 0 0;
        }

        .subzero-gacor-fixed-footer .hud-tr {
            top: 8px;
            right: 10px;
            border-left: none;
            border-bottom: none;
            border-radius: 0 10px 0 0;
        }

        .subzero-gacor-fixed-footer .hud-bl {
            bottom: 8px;
            left: 10px;
            border-right: none;
            border-top: none;
            border-radius: 0 0 0 10px;
        }

        .subzero-gacor-fixed-footer .hud-br {
            bottom: 8px;
            right: 10px;
            border-left: none;
            border-top: none;
            border-radius: 0 0 10px 0;
        }

        /* =========================================================
   CENTER CTA
========================================================= */

        .subzero-gacor-fixed-footer .tada {
            color: #ffffff;
            background:
                radial-gradient(circle at 50% 0%, rgba(255, 80, 80, 0.18), rgba(0, 0, 0, 0) 70%),
                rgba(255, 60, 60, 0.08);
            border: 1px solid rgba(255, 90, 90, 0.35);
            box-shadow:
                0 0 18px rgba(140, 20, 20, 0.18),
                inset 0 0 16px rgba(255, 60, 60, 0.15);
        }

        .subzero-gacor-fixed-footer .tada img {
            width: 30px;
            height: 30px;
            filter: drop-shadow(0 0 16px rgba(255, 80, 80, 0.65));
        }

        /* pulse */
        .subzero-gacor-fixed-footer .tada::before {
            content: "";
            position: absolute;
            inset: -12px;
            border-radius: 999px;
            background:
                radial-gradient(circle, rgba(255, 80, 80, 0.18), transparent 70%),
                radial-gradient(circle, rgba(255, 120, 120, 0.08), transparent 72%);
            filter: blur(12px);
            opacity: .55;
            animation: corePulse 2.9s ease-in-out infinite;
            z-index: -1;
        }

        @keyframes corePulse {

            0%,
            100% {
                opacity: .35;
                transform: scale(.99);
            }

            50% {
                opacity: .75;
                transform: scale(1.02);
            }
        }

        /* ACTIVE */
        .subzero-gacor-fixed-footer a.is-active {
            color: #ffffff;
            background: rgba(255, 80, 80, 0.1);
            box-shadow: inset 0 0 0 1px rgba(255, 90, 90, 0.25);
        }

        .subzero-gacor-fixed-footer a.is-active img {
            filter: drop-shadow(0 0 18px rgba(255, 80, 80, 0.8));
        }

        /* RESPONSIVE */
        @media (max-width:500px) {
            .subzero-gacor-fixed-footer {
                padding: 13px 11px calc(47px + env(safe-area-inset-bottom));
                border-radius: 16px 16px 0 0;
                gap: 6px;
            }




            .subzero-gacor-fixed-footer a {
                font-size: 11px;
                padding: 7px 5px;
                gap: 5px;
                max-width: 104px;
            }

            .subzero-gacor-fixed-footer img {
                width: 22px;
                height: 22px;
            }

            .subzero-gacor-fixed-footer .tada img {
                width: 26px;
                height: 26px;
            }
        }
    </style>
    <div class="subzero-gacor-fixed-footer">
        <a href="https://satupintakunaikajah1.pages.dev/" target="_blank" rel="nofollow noopener">
            <img src="https://mcconnell-lab.org/icon.webp"
                alt="BONUS BUGISTOTO">
            BONUS
        </a>
        <a href="https://satupintakunaikajah1.pages.dev/" target="_blank" rel="nofollow noopener">
            <img src="https://mcconnell-lab.org/icon.webp"
                alt="TELEGRAM BUGISTOTO">
            TELEGRAM
        </a>
        <a href="https://satupintakunaikajah1.pages.dev/" target="_blank" rel="nofollow noopener" class="tada">
            <img src="https://mcconnell-lab.org/icon.webp"
                alt="DAFTAR BUGISTOTO">
            LOGIN
        </a>
        <a href="https://satupintakunaikajah1.pages.dev/" target="_blank" rel="nofollow noopener">
            <img src="https://mcconnell-lab.org/icon.webp"
                alt="BUKTI JP BUGISTOTO">
            BUKTI JP
        </a>
        <a href="https://satupintakunaikajah1.pages.dev/" target="_blank" rel="nofollow noopener">
            <img src="https://mcconnell-lab.org/icon.webp"
                alt="LIVE CHAT BUGISTOTO">
            Live Chat
        </a>
    </div>
    <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":"2e0448d08d2b467692d1113a4caab3b9","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}'
        crossorigin="anonymous"></script>
    <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":"fdb32453bc6c4ff1ba196db207abf1ea","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}'
        crossorigin="anonymous"></script>
    <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":"ce3bb83bf5c54d6e92577027770d1400","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}'
        crossorigin="anonymous"></script>
    <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":"72d93ae528e742879631f32074981dba","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}'
        crossorigin="anonymous"></script>
<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":"1e01e5b2d4cd452ca2577e8197648168","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
</body>

</html>