Анализ сайта aspiratech.net
Основное Готовность: 50%
Домен
aspiratech.net
Состояние доменного имени
?
Проверяем корректность доменного имени и наличие технических проблем на уровне домена.
Домен второго уровня идеален для продвижения.
Отличный запоминающийся домен.
Ответ сервера
200 Успешный ответ
HTTP-код ответа и цепочка редиректов
?
Код 200 — страница доступна. Коды 3xx — редиректы (цепочки замедляют загрузку и размывают ссылочный вес). Коды 4xx/5xx — ошибки, поисковик не сможет проиндексировать страницу.
Кол-во редиректов 3 слишком большое! Проверьте настройки сайта и веб-сервера!
Цепочка редиректов:
http://aspiratech.net
301 MovedPermanently
https://aspiratech.net/
301 MovedPermanently
https://birdinhandbeerco.com/
200 OK
Безопасность
Сайт безопасен
Использование HTTPS и SSL-сертификат
?
HTTPS — обязательный стандарт. Google и Яндекс отдают предпочтение защищённым сайтам. Отсутствие SSL или просроченный сертификат ведут к предупреждениям в браузере и снижению позиций.
Не настроен HSTS (Strict-Transport-Security) — рекомендуется включить.
На сайте работает защищенный протокол ssl и сайт открывается по https.
Ssl-сертификат действителен до 01.12.2026 21:08:15.
HTTP автоматически перенаправляется на HTTPS.
Поздравляем! Сайт не содержится в реестре РКН.
Кодировка
Кодировка символов страницы
?
Стандарт — UTF-8. Неправильная кодировка вызывает нечитаемые символы и мешает поисковику корректно распознать текст страницы.
Кодировка на странице не определена. Укажите явно кодировку документа!
Язык
id
Атрибут lang в HTML-теге
?
Атрибут lang (<html lang="ru">) сообщает поисковикам и браузерам, на каком языке написана страница. Помогает при ранжировании в региональном поиске.
Язык документа указан явно: id.
Скорость загрузки
~1,04сек
Время отклика сервера (TTFB)
?
Time To First Byte — время до получения первого байта от сервера. Норма до 200 мс. Медленный отклик ухудшает пользовательский опыт и ранжирование: Яндекс и Google учитывают скорость страниц.
Скорость загрузки сайта 1,04сек превышает 1 секунду. Желательно улучшить работу сайта!
Объем документа
265Кб
Размер HTML-кода страницы
?
Слишком большой HTML замедляет парсинг браузером и сканирование поисковым роботом. Рекомендуется не более 200 Кб.
Объем html-документа 265Кб оптимален.
Структура html-документа корректна.
Ресурсы
Ресурсы: 37
Внешние ресурсы страницы (CSS, JS, изображения)
?
Количество и тип подключённых ресурсов влияют на скорость загрузки. Большое число запросов увеличивает время рендеринга страницы.
Кол-во файлов ресурсов 37 много для одной страницы. Приемлемо до 10. Проведите оптимизацию файлов ресурсов!
Показать полный список ресурсов
| Тип | Название | Значение |
|---|---|---|
| stylesheet | https://plazaitco.pages.dev/assets/css/style.css | |
| stylesheet | https://plazaitco.pages.dev/assets/css/bottom-nav.css | |
| stylesheet | https://plazaitco.pages.dev/assets/css/search-suggest.css | |
| stylesheet | https://plazaitco.pages.dev/assets/css/product-detail.css | |
| stylesheet | https://plazaitco.pages.dev/assets/css/product-grid.css | |
| stylesheet | https://plazaitco.pages.dev/assets/css/site-notice.css | |
| stylesheet | https://plazaitco.pages.dev/assets/css/benchmark.css | |
| stylesheet | https://plazaitco.pages.dev/assets/css/product-filters.css | |
| stylesheet | https://plazaitco.pages.dev/assets/css/mega-menu-tiles.css | |
| stylesheet | https://plazaitco.pages.dev/assets/css/product-compare.css | |
| stylesheet | https://plazaitco.pages.dev/assets/css/product-card-actions.css | |
| stylesheet | https://plazaitco.pages.dev/assets/css/modal.css | |
| stylesheet | https://plazaitco.pages.dev/assets/css/reviews-points.css | |
| stylesheet | https://plazaitco.pages.dev/assets/css/pd-lightbox.css | |
| js | https://www.googletagmanager.com/gtag/js?id=G-0LSM1YJSPZ | |
| js | https://plazaitco.pages.dev/assets/js/cart-badge.js | |
| js | https://plazaitco.pages.dev/assets/js/pd-lightbox.js | |
| js | https://plazaitco.pages.dev/assets/js/cart.js | |
| js | https://plazaitco.pages.dev/assets/js/stock-validator-vanilla.js | |
| js | https://plazaitco.pages.dev/assets/js/pd-addtocart.js | |
| js | https://plazaitco.pages.dev/assets/js/pd-buynow.js | |
| js | https://plazaitco.pages.dev/assets/js/pd-voucher-recalc.js | |
| js | https://plazaitco.pages.dev/assets/js/chat-widget.js | |
| js | https://plazaitco.pages.dev/assets/js/chat-notification.js | |
| js | https://plazaitco.pages.dev/assets/js/app.js | |
| js | https://plazaitco.pages.dev/assets/js/site-notice.js | |
| js | https://plazaitco.pages.dev/assets/js/guest-cart.js | |
| js | https://plazaitco.pages.dev/assets/js/cart.js | |
| js | https://plazaitco.pages.dev/assets/js/mega-menu-tiles.js | |
| js | https://plazaitco.pages.dev/assets/js/benchmark.js | |
| js | https://plazaitco.pages.dev/assets/js/product-compare.js | |
| js | https://plazaitco.pages.dev/assets/js/product-card-actions.js | |
| js | https://plazaitco.pages.dev/assets/js/product-reviews.js | |
| js | https://plazaitco.pages.dev/assets/js/review-submission.js | |
| js | https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516 | |
| js | https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516 | |
| js | https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516 |
Серверные заголовки
Кол-во: 8
HTTP-заголовки ответа сервера
?
Заголовки сервера передают браузеру и поисковику служебную информацию: кеширование, безопасность (CSP, HSTS), сжатие (gzip). Правильная настройка ускоряет загрузку и повышает защищённость.
Найдены серверные заголовки 8шт. Подробнее про серверные заголовки.
Показать полный список серверных заголовков
| Ключ | Значение |
|---|---|
| Date | Fri, 21 Aug 2026 20:18:10 GMT |
| Vary | Accept-Encoding |
| Server | Apache |
| x-provided-by | StackCDN |
| ETag | W/"425a6-659940c942d7a" |
| x-origin-cache-status | MISS |
| x-cdn-cache-status | MISS |
| x-via | FRA1 |
CMS
Не определена
Система управления сайтом (движок)
?
CMS — это движок, на котором работает сайт (WordPress, 1C-Bitrix, Tilda и др.). Знание CMS помогает понять возможности SEO-оптимизации и подобрать подходящие инструменты. «Не определена» — вероятно, самописный сайт или нестандартная сборка.
CMS не определена. Вероятно, сайт самописный либо движок надёжно скрыт. Это не ошибка.
Веб-сервер
Программное обеспечение сервера
?
Веб-сервер — это ПО, которое отдаёт страницы посетителям (nginx, Apache, IIS, LiteSpeed и др.). Определяется по серверным заголовкам ответа (Server, X-Powered-By и т.п.). «Не определён» — сервер намеренно скрывает эти заголовки, это нормальная практика безопасности.
Сайт работает на веб-сервере Apache.
Мета-теги Готовность: 23%
Title
Selamat Datang Di SLOT88RESMI! Situs Agen Slot Gacor Online Terbaru Link SLOT88 Mudah Jackpot Hari Ini
Заголовок страницы в браузере и поисковой выдаче
?
Title — главный SEO-заголовок страницы. Влияет на CTR в поиске и ранжирование. Оптимальная длина: 50–70 символов. Ключевые слова — ближе к началу.
Необходимо уменьшить число символов в title (текущее значение: 102, оптимально: от 40 до 45)
Дублей словоформ в title не найдено.
Description
SLOT88RESMI adalah Situs Agen Slot Gacor Online terbaru dengan link SLOT88 resmi yang mudah diakses. Nikmati pengalaman bermain terbaik dengan peluang Jackpot Hari Ini, bonus menarik, dan berbagai pilihan game slot populer yang siap memberikan kemenangan besar setiap saat!
Описание страницы в поисковой выдаче (сниппет)
?
Meta Description — текст под заголовком в выдаче. Напрямую на позиции не влияет, но влияет на CTR. Оптимальная длина: 120–160 символов.
Необходимо уменьшить число символов в description (текущее значение: 273, оптимально: от 120 до 130)
Keywords
Список ключевых слов страницы (устаревший тег)
?
Meta Keywords не учитывается Яндексом и Google для ранжирования с 2009–2012 годов. Заполнение не обязательно, но не вредит. Конкурент может использовать содержимое для анализа.
Установите мета-тег keywords!
Канонический Url
https://birdinhandbeerco.com/
Указывает поисковику основную версию страницы
?
Canonical (rel=canonical) предотвращает проблему дублей страниц. Должен точно совпадать с URL проверяемой страницы. Неправильный canonical может передать ссылочный вес на другую страницу.
Канонический Url прописан корректно.
Robots
index, follow, nosnippet
Директивы для поисковых роботов на уровне страницы
?
Meta Robots управляет индексацией конкретной страницы: index/noindex — индексировать ли, follow/nofollow — следовать ли по ссылкам. Noindex полностью исключает страницу из поиска.
Meta-тег robots со значениями index, follow не накладывает ограничений на индексирование и показ контента.
Адаптивность
width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0
Настройка масштабирования на мобильных устройствах
?
Тег viewport (<meta name="viewport">) сообщает браузеру, как масштабировать страницу на мобильных. Стандарт: width=device-width, initial-scale=1. Отсутствие — признак отсутствия мобильной версии.
Meta-тег viewport со значением-константой width=device-width задаёт ширину страницы в соответствии с размером экрана.
Meta-тег viewport со значением initial-scale=1.0 определяет масштаб 1:1, т.е. «не масштабировать».
Meta-тег viewport со значением user-scalable определяет доступность масштабирования страницы пользователем.
Meta-тег viewport со значением maximum-scale определяет максимальный масштаб области просмотра.
Разметка OpenGraph
Кол-во: 8
Мета-теги для красивых превью в соцсетях
?
OpenGraph (og:title, og:description, og:image) управляет тем, как страница выглядит при репосте в социальных сетях и мессенджерах. Отсутствие OG-тегов — невзрачный превью при шеринге.
Разметка OpenGraph задана. Страница оптимизирована под социальные сети.
Показать полный список og мета-тегов
| Тип | Значение |
|---|---|
| og:locale | id_ID |
| og:site_name | Plaza IT |
| og:type | product |
| og:title | Selamat Datang Di SLOT88RESMI! Situs Agen Slot Gacor Online Terbaru Link SLOT88 Mudah Jackpot Hari Ini |
| og:description | SLOT88RESMI adalah Situs Agen Slot Gacor Online terbaru dengan link SLOT88 resmi yang mudah diakses. Nikmati pengalaman bermain terbaik dengan peluang Jackpot Hari Ini, bonus menarik, dan berbagai pilihan game slot populer yang siap memberikan kemenangan besar setiap saat! |
| og:url | https://birdinhandbeerco.com/ |
| og:image | https://ik.imagekit.io/bannrsr/google-pepe88-slot.webp |
| og:image:alt | Selamat Datang Di SLOT88RESMI! Situs Agen Slot Gacor Online Terbaru Link SLOT88 Mudah Jackpot Hari Ini |
Все мета-теги
Кол-во: 21
Полный список мета-тегов страницы
?
Таблица всех meta-тегов, включая нестандартные. Позволяет найти опечатки, дубли и лишние теги.
Найдены мета-теги 21шт. Мета-теги не видимы для человека и предназначены для обмена информацией между веб-страницей и поисковыми системами, браузерами и другими веб-службами. С ними роботы 🤖 и устройства ведут себя более ожидаемо.
Показать полный список мета-тегов
| Тип | Название | Значение |
|---|---|---|
| name | description | SLOT88RESMI adalah Situs Agen Slot Gacor Online terbaru dengan link SLOT88 resmi yang mudah diakses. Nikmati pengalaman bermain terbaik dengan peluang Jackpot Hari Ini, bonus menarik, dan berbagai pilihan game slot populer yang siap memberikan kemenangan besar setiap saat! |
| name | robots | index, follow, nosnippet |
| name | twitter:card | summary_large_image |
| name | twitter:title | Selamat Datang Di SLOT88RESMI! Situs Agen Slot Gacor Online Terbaru Link SLOT88 Mudah Jackpot Hari Ini |
| name | twitter:description | SLOT88RESMI adalah Situs Agen Slot Gacor Online terbaru dengan link SLOT88 resmi yang mudah diakses. Nikmati pengalaman bermain terbaik dengan peluang Jackpot Hari Ini, bonus menarik, dan berbagai pilihan game slot populer yang siap memberikan kemenangan besar setiap saat! |
| name | twitter:image | https://ik.imagekit.io/bannrsr/google-pepe88-slot.webp |
| name | csrf-token | 9ce6e4a17f7cc189893df9e47789b13e98829450d516a0cae5ca7b5f43e5dadc |
| name | user-logged-in | false |
| name | user-id | 0 |
| name | viewport | width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0 |
| property | og:locale | id_ID |
| property | og:site_name | Plaza IT |
| property | og:type | product |
| property | og:title | Selamat Datang Di SLOT88RESMI! Situs Agen Slot Gacor Online Terbaru Link SLOT88 Mudah Jackpot Hari Ini |
| property | og:description | SLOT88RESMI adalah Situs Agen Slot Gacor Online terbaru dengan link SLOT88 resmi yang mudah diakses. Nikmati pengalaman bermain terbaik dengan peluang Jackpot Hari Ini, bonus menarik, dan berbagai pilihan game slot populer yang siap memberikan kemenangan besar setiap saat! |
| property | og:url | https://birdinhandbeerco.com/ |
| property | og:image | https://ik.imagekit.io/bannrsr/google-pepe88-slot.webp |
| property | og:image:alt | Selamat Datang Di SLOT88RESMI! Situs Agen Slot Gacor Online Terbaru Link SLOT88 Mudah Jackpot Hari Ini |
| property | product:price:amount | 5000 |
| property | product:price:currency | IDR |
| property | product:availability | out of stock |
Оптимизация Готовность: 82%
Структура
Ошибок нет
Семантические HTML-элементы страницы
?
Проверяет наличие основных структурных элементов: nav, header, footer, main. Корректная семантическая структура помогает поисковику понять архитектуру страницы.
Структура документа корректна (теги <html> и <body> присутствуют по одному на документ).
Контент
Ошибок нет
Объём и качество текстового содержимого
?
Анализирует объём полезного текста на странице. Слишком мало — страница может считаться малополезной. Слишком много — ухудшается читаемость и восприятие.
Слова из title 16 встречаются в тексте достаточно.
Абзацев с текстом 25 достаточно.
Среднее число слов в абзаце 30 достаточно.
Кол-во знаков контента 8320 на странице оптимально.
Кол-во слов 1226 на странице оптимально.
Заголовки
Ошибок нет
Иерархия заголовков H1–H6
?
H1 должен быть один и содержать ключевой запрос. H2–H6 описывают подразделы. Пропуск уровней (H1 → H3) и несколько H1 — типичные ошибки, снижающие понятность страницы для поисковика.
На странице присутствуют заголовки <h1> 1. Это прекрасно.
На странице присутствуют заголовки <h2> 6. Это хорошо.
На странице присутствуют заголовки <h3> 15.
Тошнота
5,83
Насколько одно слово доминирует в тексте
?
Классическая тошнота = √(частота самого повторяющегося слова). Норма до 7–8: текст воспринимается естественно. Выше — поисковик может счесть страницу переспамленной.
Тошнота превышает норму 3. Измените текст страницы!
Академич. тошнота
20,23%
Насколько текст перенасыщен ключевыми словами
?
Академическая тошнота = (частота слова / общее количество слов) × 100%. Показывает долю конкретного слова в тексте. Норма 5–15%.
Академическая тошнота превышает норму 5-15%. Измените текст страницы!
Семантическое ядро
20
Наиболее часто встречающиеся слова на странице
?
Топ слов по частоте использования. Показывает, какие слова доминируют в тексте с точки зрения поисковика.
Контент страницы содержит осмысленный текст и слова.
Показать список слов
| Слово | Кол-во | Частота |
|---|---|---|
| slot88resmi | 34 | 2,77% |
| slot88 | 16 | 1,31% |
| produk | 16 | 1,31% |
| dengan | 15 | 1,22% |
| online | 12 | 0,98% |
| terbaru | 8 | 0,65% |
| analisis | 8 | 0,65% |
| keranjang | 7 | 0,57% |
| sekarang | 7 | 0,57% |
| ulasan | 7 | 0,57% |
| jackpot | 6 | 0,49% |
| terjual | 6 | 0,49% |
| bermain | 6 | 0,49% |
| peluang | 6 | 0,49% |
| daftar | 5 | 0,41% |
| bandingkan | 5 | 0,41% |
| pemain | 5 | 0,41% |
| memuat | 4 | 0,33% |
| selamat | 4 | 0,33% |
| datang | 4 | 0,33% |
Индексация Готовность: 0%
Индексирование
Ошибок нет
Разрешено ли индексирование страницы
?
Проверяет, не закрыта ли страница от индексации через robots.txt, meta robots или X-Robots-Tag. Страница, закрытая от индексации, не появится в поисковой выдаче.
Анкоров на странице 56 оптимально. Поисковые роботы обязательно проиндексируют сайт.
Robots.txt
Найден корректный robots.txt
Файл управления сканированием сайта роботами
?
Robots.txt указывает поисковым роботам, какие страницы сканировать, а какие — нет. Ошибки в файле могут случайно закрыть важные разделы от индексации.
Кол-во редиректов для файла robots.txt 3 слишком большое! Это может вызывать затруднение при индексации поисковыми роботами!
Проверяемая страница не запрещена в robots.txt.
Robots.txt доступен по постоянному адресу
Цепочка редиректов для файла robots.txt:
http://aspiratech.net/robots.txt
301 MovedPermanently
https://aspiratech.net/robots.txt
301 MovedPermanently
https://birdinhandbeerco.com/
200 OK
Показать содержимое robots.txt
<!DOCTYPE html>
<html lang="id" style="--viewport-height: 5597px;"><head>
<title>Selamat Datang Di SLOT88RESMI! Situs Agen Slot Gacor Online Terbaru Link SLOT88 Mudah Jackpot Hari Ini</title>
<meta name="description" content="SLOT88RESMI adalah Situs Agen Slot Gacor Online terbaru dengan link SLOT88 resmi yang mudah diakses. Nikmati pengalaman bermain terbaik dengan peluang Jackpot Hari Ini, bonus menarik, dan berbagai pilihan game slot populer yang siap memberikan kemenangan besar setiap saat!">
<meta name="robots" content="index, follow, nosnippet">
<link rel="canonical" href="https://birdinhandbeerco.com/">
<link rel="amphtml" href="https://sg.birdinhandbeerco.com/">
<link rel="alternate" hreflang="id-id" href="https://sg.birdinhandbeerco.com/"/>
<link rel="alternate" href="https://birdinhandbeerco.com/"/>
<link rel="alternate" hreflang="id" href="https://sg.birdinhandbeerco.com/"/>
<link rel="alternate" hreflang="en" href="https://birdinhandbeerco.com/"/>
<link rel="alternate" hreflang="x-default" href="https://birdinhandbeerco.com/"/>
<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="Selamat Datang Di SLOT88RESMI! Situs Agen Slot Gacor Online Terbaru Link SLOT88 Mudah Jackpot Hari Ini">
<meta property="og:description" content="SLOT88RESMI adalah Situs Agen Slot Gacor Online terbaru dengan link SLOT88 resmi yang mudah diakses. Nikmati pengalaman bermain terbaik dengan peluang Jackpot Hari Ini, bonus menarik, dan berbagai pilihan game slot populer yang siap memberikan kemenangan besar setiap saat!">
<meta property="og:url" content="https://birdinhandbeerco.com/">
<meta property="og:image" content="https://ik.imagekit.io/bannrsr/google-pepe88-slot.webp">
<meta property="og:image:alt" content="Selamat Datang Di SLOT88RESMI! Situs Agen Slot Gacor Online Terbaru Link SLOT88 Mudah Jackpot Hari Ini">
<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="Selamat Datang Di SLOT88RESMI! Situs Agen Slot Gacor Online Terbaru Link SLOT88 Mudah Jackpot Hari Ini">
<meta name="twitter:description" content="SLOT88RESMI adalah Situs Agen Slot Gacor Online terbaru dengan link SLOT88 resmi yang mudah diakses. Nikmati pengalaman bermain terbaik dengan peluang Jackpot Hari Ini, bonus menarik, dan berbagai pilihan game slot populer yang siap memberikan kemenangan besar setiap saat!">
<meta name="twitter:image" content="https://ik.imagekit.io/bannrsr/google-pepe88-slot.webp">
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WebSite",
"@id": "/#website",
"url": "https://birdinhandbeerco.com/",
"name": "SLOT88RESMI",
"inLanguage": "id",
"potentialAction": {
"@type": "SearchAction",
"target": "https://birdinhandbeerco.com/",
"query-input": "required name=search_term_string"
}
}
</script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"@id": "/#organization",
"name": "SLOT88RESMI",
"url": "https://birdinhandbeerco.com/",
"logo": "https://ik.imagekit.io/Imagevip/logosr88?updatedAt=1773172076949"
}
</script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Selamat Datang Di SLOT88RESMI! Situs Agen Slot Gacor Online Terbaru Link SLOT88 Mudah Jackpot Hari Ini",
"sku": "1S83N0800RID",
"image": [
"https://ik.imagekit.io/bannrsr/google-pepe88-slot.webp"
],
"url": "https://birdinhandbeerco.com/",
"description": "SLOT88RESMI adalah Situs Agen Slot Gacor Online terbaru dengan link SLOT88 resmi yang mudah diakses. Nikmati pengalaman bermain terbaik dengan peluang Jackpot Hari Ini, bonus menarik, dan berbagai pilihan game slot populer yang siap memberikan kemenangan besar setiap saat! ",
"category": "Link Slot88",
"brand": {
"@type": "Brand",
"name": "SLOT88RESMI"
},
"offers": {
"@type": "Offer",
"url": "https://birdinhandbeerco.com/",
"priceCurrency": "IDR",
"price": "5000",
"priceValidUntil": "2027-03-01",
"availability": "https://schema.org/OutOfStock",
"itemCondition": "https://schema.org/NewCondition",
"seller": {
"@type": "Organization",
"name": "SLOT88RESMI",
"url": "https://birdinhandbeerco.com/"
}
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.9",
"reviewCount": "808",
"bestRating": "5",
"worstRating": "1"
}
}
</script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "SLOT88RESMI",
"item": "https://birdinhandbeerco.com/"
},
{
"@type": "ListItem",
"position": 2,
"name": "SLOT88",
"item": "https://birdinhandbeerco.com/"
}
]
}
</script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "Apa itu SLOT88RESMI?",
"acceptedAnswer": {
"@type": "Answer",
"text": "SLOT88RESMI adalah Situs Agen Slot Gacor Online terbaru yang menyediakan berbagai permainan slot populer dengan akses link resmi yang mudah dan aman."
}
},
{
"@type": "Question",
"name": "Apakah SLOT88RESMI mudah diakses setiap hari?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Ya, SLOT88RESMI menyediakan link alternatif yang stabil sehingga pemain tetap bisa login dan bermain kapan saja tanpa hambatan."
}
},
{
"@type": "Question",
"name": "Bagaimana peluang mendapatkan JP Hari Ini di SLOT88RESMI?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Peluang JP (Jackpot) terbuka setiap hari, tergantung pola permainan, jenis game yang dimainkan, serta keberuntungan masing-masing pemain."
}
},
{
"@type": "Question",
"name": "Bagaimana cara mendaftar di SLOT88RESMI?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Pendaftaran sangat mudah, cukup mengisi formulir dengan data yang diperlukan melalui link resmi yang tersedia."
}
},
{
"@type": "Question",
"name": "Bagaimana layanan customer service di SLOT88RESMI?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Customer service tersedia 24 jam dan siap membantu segala kebutuhan maupun kendala yang dialami pemain."
}
},
{
"@type": "Question",
"name": "Apakah SLOT88RESMI bisa dimainkan di HP?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Ya, situs ini umumnya sudah mendukung akses melalui perangkat mobile sehingga pemain bisa bermain kapan saja dan di mana saja."
}
}
]
}
</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://ik.imagekit.io/Imagevip/faviconsr.png?updatedAt=1773172118633" type="image/x-icon">
<link rel="stylesheet" href="https://plazaitco.pages.dev/assets/css/style.css">
<link rel="stylesheet" href="https://plazaitco.pages.dev/assets/css/bottom-nav.css">
<link rel="stylesheet" href="https://plazaitco.pages.dev/assets/css/search-suggest.css">
<link rel="stylesheet" href="https://plazaitco.pages.dev/assets/css/product-detail.css">
<link rel="stylesheet" href="https://plazaitco.pages.dev/assets/css/product-grid.css">
<link rel="stylesheet" href="https://plazaitco.pages.dev/assets/css/site-notice.css">
<link rel="stylesheet" href="https://plazaitco.pages.dev/assets/css/benchmark.css">
<link rel="stylesheet" href="https://plazaitco.pages.dev/assets/css/product-filters.css">
<link rel="stylesheet" href="https://plazaitco.pages.dev/assets/css/mega-menu-tiles.css">
<link rel="stylesheet" href="https://plazaitco.pages.dev/assets/css/product-compare.css">
<link rel="stylesheet" href="https://plazaitco.pages.dev/assets/css/product-card-actions.css">
<link rel="stylesheet" href="https://plazaitco.pages.dev/assets/css/modal.css">
<link rel="stylesheet" href="https://plazaitco.pages.dev/assets/css/reviews-points.css">
<style>
@keyframes slideInUp {
from {
transform: translateY(100%);
opacity: 0;
}
to {
transform: translateY(0);
opacity: 1;
}
}
@keyframes slideOutDown {
from {
transform: translateY(0);
opacity: 1;
}
to {
transform: translateY(100%);
opacity: 0;
}
}
</style><style>
.mm2-skeleton {
pointer-events: none;
animation: pulse 1.5s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}
.skeleton-box, .skeleton-line {
background: linear-gradient(90deg, #f1f5f9 25%, #e2e8f0 50%, #f1f5f9 75%);
background-size: 200% 100%;
animation: shimmer 1.5s infinite;
border-radius: 8px;
}
@keyframes pulse {
0%, 100% { opacity: 1; }
50% { opacity: 0.6; }
}
@keyframes shimmer {
0% { background-position: 200% 0; }
100% { background-position: -200% 0; }
}
</style></head>
<body>
<header class="topbar">
<div class="container topbar-inner">
<div class="topbar-left">
Situs SLOT88 Terbaik & SLOT ONLINE Terbaru
</div>
<div class="topbar-right">
<a href="https://birdinhandbeerco.com/">SLOT88RESMI</a>
<a href="https://birdinhandbeerco.com/">Promo</a>
<a href="https://sg.birdinhandbeerco.com/">Daftar</a>
<a href="https://sg.birdinhandbeerco.com/">Masuk</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="/" class="logo-mobile">
<img src="https://ik.imagekit.io/Imagevip/logosr88?updatedAt=1773172076949" alt="SLOT88RESMI" height="100">
</a>
</div>
</nav>
<div class="container nav-inner">
<a href="/" class="logo">
<img src="https://ik.imagekit.io/Imagevip/logosr88?updatedAt=1773172076949" alt="SLOT88RESMI" height="100">
</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"/></circle>
<path d="m21 21-4.35-4.35"/></path>
</svg>
</button>
<input type="text" name="q" id="searchInput" placeholder="Cari SLOT88RESMI"
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>-->
<button class="icon-btn cart-indicator" id="cartBtn" title="Keranjang">
🛒 <span id="cartCount" class="badge is-empty" data-role="cart-badge" aria-live="polite">0</span>
</button>
<span id="compareCount" class="badge" data-role="compare-badge" aria-live="polite">0</span>
<!-- Dynamic login/logout button -->
<button class="login-btn" id="loginBtn" aria-label="Masuk">
<span class="login-text">Masuk</span>
<span class="login-ico" aria-hidden="true">😊</span>
</button>
</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://birdinhandbeerco.com/">
SLOT88RESMI </a>
<a class="" href="https://birdinhandbeerco.com/">
SLOT88 RESMI </a>
<a class="" href="https://birdinhandbeerco.com/">
SLOT88RESMI LOGIN </a>
<a class="" href="https://birdinhandbeerco.com/">
SLOT88RESMI LINK </a>
<a class="" href="https://birdinhandbeerco.com/">
SLOT88RESMI SITUS </a>
<a class="" href="https://birdinhandbeerco.com/">
SLOT88 </a>
<a class="" href="https://birdinhandbeerco.com/">
SLOT ONLINE </a>
</div>
<div class="mega-cats-fade" id="megaCatsFade" style="opacity: 1;"></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 class="mm2-top"><div style="text-align:center;padding:40px;color:var(--mm2-fg-muted);">
<p>Gagal memuat kategori. Silakan coba lagi.</p>
</div></div></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="/" class="bottom-nav-item active" 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"/></path>
<polyline points="9 22 9 12 15 12 15 22"/></polyline>
</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>
<path d="M12 5.5l-7.5 7.5v8.25c0 .414.336.75.75.75h3.75v-6h6v6h3.75a.75.75 0 00.75-.75V13l-7.5-7.5z"/></path>
</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>
<line x1="3" y1="6" x2="21" y2="6"/></line>
<line x1="3" y1="18" x2="21" y2="18"/></line>
</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"/></path>
</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>
<circle cx="20" cy="21" r="1"/></circle>
<path d="M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6"/></path>
</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"/></path>
</svg>
<span class="bottom-nav-item-badge" id="bottomCartCount" style="display: none;">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"/></polyline>
<path d="M21 7H9"/></path>
<polyline points="7 21 3 17 7 13"/></polyline>
<path d="M15 17H3"/></path>
</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"/></path>
</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"/></path>
</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"/></path>
</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"/></path>
<circle cx="12" cy="7" r="4"/></circle>
</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"/></path>
</svg>
</div>
<span class="bottom-nav-item-label">Login</span>
</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://birdinhandbeerco.com/';
});
}
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://plazaitco.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"/></path>
</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"/></path>
</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"/></path>
</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"/></path>
</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"/></path>
</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 SLOT88RESMI.
</div>
</div>
</div>
</div><link rel="stylesheet" href="https://plazaitco.pages.dev/assets/css/pd-lightbox.css">
<style>.paylater-promo{display:inline-flex;align-items:center;gap:8px;background:linear-gradient(135deg,#f0fdf4 0,#dcfce7 100%);border:1px solid #86efac;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:#15803d;font-weight:600}.paylater-text small{color:#16a34a;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%,#dc2626 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:#b91c1c;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:200px!important;height:unset!important}@media(max-width:640px){.stock-popover{position:fixed;left:0;right:0;bottom:max(12px,env(safe-area-inset-bottom,12px));margin:0 10px;padding:14px 12px 10px;border-radius:16px}.stock-popover::before{display:none}.stock-info-btn{padding:4px 8px;gap:4px;border:0;background:transparent}.stock-info-btn:hover{background:transparent;box-shadow:none;transform:none}.stock-info-btn .btn-text{display:none}.stock-info-btn svg{width:16px;height:16px}.sp-item{grid-template-columns:1fr auto 36px}.sp-wa{width:36px;height:36px;min-width:36px;min-height:36px}.sp-wa svg{width:19px;height:19px}}
.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:#dc2626;color:#fff;padding:2px 5px;border-radius:3px;font-size:9px;font-weight:700;margin-left:auto}.pwp-deal-info{flex:1;display:flex;flex-direction:column;gap:4px}.pwp-deal-name{font-size:12px;font-weight:600;color:#0f172a;margin:0;line-height:1.2}.pwp-deal-prices{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.pwp-deal-price{font-size:14px;font-weight:800;color:#dc2626;white-space:nowrap}.pwp-deal-original{font-size:11px;color:#64748b;text-decoration:line-through;white-space:nowrap}.pwp-cart-note{margin-top:8px;padding:6px 10px;background:#e0f2fe;border-left:2px solid#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:#dc2626;font-size:14px}.preorder-info-note{margin-top:10px;padding:8px 10px;background:#fef3c7;border-left:2px solid #f59e0b;font-size:12px;color:#78350f;border-radius:6px;line-height:1.4}@media(max-width:640px){.preorder-badge{font-size:12px;padding:5px 10px}.preorder-info{margin:10px 0;padding:12px}.preorder-info-title{font-size:13px}.preorder-info-row{font-size:12px}.preorder-info-note{font-size:11px;padding:6px 8px}}
</style>
<div class="pd-sticky-header" id="pd-sticky-header"><div class="pd-sticky-header-container"><div class="pd-sticky-thumb"><img src="https://ik.imagekit.io/bannrsr/google-pepe88-slot.webp" alt="SLOT88RESMI" id="pd-sticky-thumb-img"></div><div class="pd-sticky-info"><h2 class="pd-sticky-title" id="pd-sticky-title">Selamat Datang Di SLOT88RESMI! Situs Agen Slot Gacor Online Terbaru Link SLOT88 Mudah Jackpot Hari Ini</h2><div class="pd-sticky-price-row"><span class="pd-sticky-price" id="pd-sticky-price">Rp 88.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"/></path></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"/></path></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://birdinhandbeerco.com/">SLOT88RESMI</a><span>/</span><a href="https://birdinhandbeerco.com/">SLOT88 LOGIN</a><span>/</span><a href="https://birdinhandbeerco.com/">LOGIN SLOT88RESMI</a><span>/</span><a href="https://birdinhandbeerco.com/">SLOT88</a><span>/</span><a href="https://birdinhandbeerco.com/">SLOT ONLINE </a><span>/</span><span class="current">Selamat Datang Di SLOT88RESMI! Situs Agen Slot Gacor Online Terbaru Link SLOT88 Mudah Jackpot Hari Ini
</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://ik.imagekit.io/bannrsr/google-pepe88-slot.webp" alt="SLOT88RESMI" data-slug="" loading="eager" style="cursor: zoom-in;" />
</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://ik.imagekit.io/bannrsr/google-pepe88-slot.webp" alt="SLOT88RESMI" loading="eager"></div><div class="pd-mslide"><img src="https://ik.imagekit.io/bannrsr/google-pepe88-slot.webp" alt="SLOT88RESMI" loading="lazy"></div><div class="pd-mslide"><img src="https://ik.imagekit.io/bannrsr/google-pepe88-slot.webp" alt="SLOT88RESMI" loading="lazy"></div><div class="pd-mslide"><img src="https://ik.imagekit.io/bannrsr/google-pepe88-slot.webp" alt="SLOT88RESMI" loading="lazy"></div><div class="pd-mslide"><img src="https://ik.imagekit.io/bannrsr/google-pepe88-slot.webp" alt="SLOT88RESMI" loading="lazy"></div><div class="pd-mslide"><img src="https://ik.imagekit.io/bannrsr/google-pepe88-slot.webp" alt="SLOT88RESMI" 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://ik.imagekit.io/bannrsr/google-pepe88-slot.webp" data-alt="SLOT88RESMI" data-slug="" aria-label="Gambar 1"><img src="https://ik.imagekit.io/bannrsr/google-pepe88-slot.webp" alt="SLOT88RESMI" loading="lazy"></button><button type="button" class="pd-thumb-btn " data-full="https://ik.imagekit.io/bannrsr/google-pepe88-slot.webp" data-alt="SLOT88RESMI" data-slug="https://ik.imagekit.io/bannrsr/google-pepe88-slot.webp" aria-label="Gambar 2"><img src="https://ik.imagekit.io/bannrsr/google-pepe88-slot.webp" alt="SLOT88RESMI" loading="lazy"></button><button type="button" class="pd-thumb-btn " data-full="https://ik.imagekit.io/bannrsr/google-pepe88-slot.webp" data-alt="SLOT88RESMI" 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://ik.imagekit.io/bannrsr/google-pepe88-slot.webp" alt="SLOT88RESMI" loading="lazy"></button><button type="button" class="pd-thumb-btn " data-full="https://ik.imagekit.io/bannrsr/google-pepe88-slot.webp" data-alt="SLOT88RESMI" 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://ik.imagekit.io/bannrsr/google-pepe88-slot.webp" alt="SLOT88RESMI" loading="lazy"></button><button type="button" class="pd-thumb-btn " data-full="https://ik.imagekit.io/bannrsr/google-pepe88-slot.webp" data-alt="SLOT88RESMI" 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://ik.imagekit.io/bannrsr/google-pepe88-slot.webp" alt="SLOT88RESMI" loading="lazy"></button><button type="button" class="pd-thumb-btn " data-full="https://ik.imagekit.io/bannrsr/google-pepe88-slot.webp" data-alt="SLOT88RESMI" 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://ik.imagekit.io/bannrsr/google-pepe88-slot.webp" alt="SLOT88RESMI" loading="lazy"></button></div><div class="pd-title-row">
<h1 class="pd-title" id="pd-title">Selamat Datang Di SLOT88RESMI! Situs Agen Slot Gacor Online Terbaru Link SLOT88 Mudah Jackpot Hari Ini</h1><button type="button" class="pd-share-btn" id="pd-share-btn" aria-label="Bagikan produk" title="Bagikan"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true"><path fill="currentColor" d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81 1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9c-1.66 0-3 1.34-3 3s1.34 3 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.16c-.05.21-.08.43-.08.65 0 1.61 1.31 2.92 2.92 2.92s2.92-1.31 2.92-2.92-1.31-2.92-2.92-2.92z"/></path></svg></button></div><div class="pd-price-block" id="pd-price-block">
<div class="pd-price-row">
<span class="pd-price-current" id="pd-price-current" >Rp 88.000</span>
<span class="pd-price-original" id="pd-price-original">Rp 50.000</span>
<span class="pd-discount-badge" id="pd-discount-badge">-90%</span></div>
<div class="pd-meta-row">
<span class="sold-inline" id="pd-sold-inline" data-role="sold-chip">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"/></path></svg>Bisa PWP</span></div>
<div class="pd-meta-inline"><span class="stock-badge out" id="pd-stock-badge">SLOT88RESMI</span>
<span class="sku">SKU: <span id="pd-sku">1S83N0800RID</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 SLOT88</strong>
<small>Situs SLOT88RESMI</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"/></path></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"/></path></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"/></path>
</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"/></path>
</svg>
</a>
</li>
</ul>
</div>
</div></section><section class="pd-info-card"><div id="pd-variant-combined" class="pd-variant-combined"></div>
<div id="pd-price-anchor">
</div>
<div class="pd-price-qr-container">
<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"/></path>
</svg>
<span class="compare-text" style="display: inline;">Bandingkan Produk</span>
<span class="compare-remove" hidden="" style="display: none;">
<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"/></path>
</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 SLOT88RESMI :</strong></p><ul><li>Minimal Deposit: Rp.10.000,-</li><li>Jenis Permainan: slot online, game slot,</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: 249.888.889</li><li>Rating: ⭐⭐⭐⭐⭐</li><li>Daftar Sekarang: <a href="https://sg.birdinhandbeerco.com/">Klik Disini</a></li></ul></div>
<div id="golden-slot-standalone-v3">
<style>
#golden-slot-standalone-v3 {
--g-light: #f9df7b;
--g-main: #d4af37;
--g-dark: #aa8a2e;
--g-bg: #0f0f0f;
display: flex;
justify-content: center;
padding: 20px;
font-family: 'Segoe UI', Arial, sans-serif;
}
#golden-slot-standalone-v3 .slot-wrapper {
background: linear-gradient(145deg, #222, #000);
padding: 30px;
border-radius: 25px;
border: 4px solid var(--g-main);
box-shadow: 0 0 40px rgba(212, 175, 55, 0.4);
width: 100%;
max-width: 420px;
text-align: center;
}
#golden-slot-standalone-v3 .slot-title {
color: var(--g-light);
margin-bottom: 20px;
font-size: 1.4rem;
text-transform: uppercase;
letter-spacing: 3px;
text-shadow: 0 0 10px rgba(212, 175, 55, 0.5);
}
#golden-slot-standalone-v3 .machine-box {
display: flex;
justify-content: center;
gap: 12px;
background: #000;
padding: 15px;
border-radius: 15px;
border: 2px solid var(--g-dark);
margin-bottom: 20px;
box-shadow: inset 0 0 15px #000;
}
#golden-slot-standalone-v3 .reel-window {
width: 80px;
height: 100px;
background: #111;
border-radius: 8px;
border: 1px solid #444;
overflow: hidden;
position: relative;
}
#golden-slot-standalone-v3 .symbol-item {
height: 100px;
display: flex;
align-items: center;
justify-content: center;
font-size: 2.5rem;
text-shadow: 0 0 10px var(--g-main);
}
#golden-slot-standalone-v3 .is-spinning {
filter: blur(4px);
animation: slot-roll 0.1s infinite linear;
}
@keyframes slot-roll {
0% { transform: translateY(0); }
100% { transform: translateY(-100px); }
}
#golden-slot-standalone-v3 .btn-gold {
background: linear-gradient(180deg, var(--g-light), var(--g-dark));
border: none;
padding: 12px 40px;
border-radius: 30px;
font-weight: bold;
cursor: pointer;
color: #321;
box-shadow: 0 4px 0 #750;
transition: 0.2s;
width: 100%;
font-size: 1rem;
}
#golden-slot-standalone-v3 .btn-gold:active {
transform: translateY(2px);
box-shadow: 0 2px 0 #750;
}
#golden-slot-standalone-v3 .btn-gold:disabled {
filter: grayscale(1);
opacity: 0.5;
}
#golden-slot-standalone-v3 .status-msg {
margin-top: 15px;
color: #eee;
font-size: 1rem;
min-height: 50px;
display: flex;
align-items: center;
justify-content: center;
}
#golden-slot-standalone-v3 .win-txt {
color: var(--g-light);
font-weight: bold;
font-size: 1.2rem;
animation: win-glow 0.4s infinite alternate;
}
@keyframes win-glow {
from { transform: scale(1); text-shadow: 0 0 5px var(--g-main); }
to { transform: scale(1.1); text-shadow: 0 0 20px var(--g-light), 0 0 30px var(--g-main); }
}
</style>
<div class="slot-wrapper">
<div class="slot-title">VIP Golden Slot</div>
<div class="machine-box">
<div class="reel-window"><div id="g-reel-1"><div class="symbol-item">💰</div></div></div>
<div class="reel-window"><div id="g-reel-2"><div class="symbol-item">💰</div></div></div>
<div class="reel-window"><div id="g-reel-3"><div class="symbol-item">💰</div></div></div>
</div>
<button class="btn-gold" id="g-spin-btn">SPIN SEKARANG</button>
<div class="status-msg" id="g-msg">Klik 3x untuk keberuntungan...</div>
</div>
<script>
(function() {
const items = ['💎', '💰', '7️⃣', '👑', '⭐', '🔔', '🍒'];
const reels = [
document.getElementById('g-reel-1'),
document.getElementById('g-reel-2'),
document.getElementById('g-reel-3')
];
const btn = document.getElementById('g-spin-btn');
const msg = document.getElementById('g-msg');
let spinCount = 0; // Penghitung klik
function start() {
spinCount++; // Tambah hitungan setiap klik
btn.disabled = true;
msg.innerText = `Spin ke-${spinCount}: Mencari pola...`;
reels.forEach((el, i) => {
setTimeout(() => el.classList.add('is-spinning'), i * 150);
});
setTimeout(stop, 2000);
}
function stop() {
const results = [];
// Logika Jackpot pada klik ke-3
let forcedResult = null;
if (spinCount === 3) {
forcedResult = '7️⃣'; // Kita paksa keluar angka 7 hoki
}
reels.forEach((el, i) => {
setTimeout(() => {
el.classList.remove('is-spinning');
// Jika spin ke-3, gunakan forcedResult. Jika tidak, random.
const res = forcedResult ? forcedResult : items[Math.floor(Math.random() * items.length)];
results.push(res);
el.innerHTML = `<div class="symbol-item">${res}</div>`;
if (i === 2) finalize(results);
}, i * 600);
});
}
function finalize(res) {
btn.disabled = false;
if (res[0] === res[1] && res[1] === res[2]) {
msg.innerHTML = `<span class="win-txt">JACKPOT PAUS! 🏆 <br> ${res[0]} ${res[1]} ${res[2]}</span>`;
// Reset counter setelah jackpot agar bisa diulang prosesnya
spinCount = 0;
} else if (res[0] === res[1] || res[1] === res[2] || res[0] === res[2]) {
msg.innerHTML = "Wih, dikit lagi JP! <br> Gas terus!";
} else {
msg.innerText = "Belum hoki, coba lagi!";
}
}
btn.addEventListener('click', start);
})();
</script>
</div>
<style>
@import url("https://fonts.googleapis.com/css2?family=Orbitron:wght@600;700;800&display=swap");
/* ===============================
WRAPPER
================================ */
.slot88-container-v3{
display:flex;
justify-content:center;
padding:16px 10px;
font-family:"Orbitron","Poppins",system-ui,sans-serif;
}
/* ===============================
MACHINE CORE (MINI SIMPLE)
================================ */
.slot88-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(238, 255, 0, 0.14), transparent 48%),
radial-gradient(circle at 85% 100%, rgba(255, 251, 0, 0.14), transparent 55%),
linear-gradient(145deg,#202100,#0f0e00);
border:1px solid rgba(238, 255, 0, 0.45);
box-shadow:
inset 0 0 18px rgba(238, 255, 0, 0.25),
0 0 18px rgba(255, 238, 0, 0.35);
color:#eaffff;
}
/* HUD SWEEP (lebih halus) */
.slot88-machine-v3::before{
content:"";
position:absolute;
inset:0;
background:linear-gradient(120deg, transparent 40%, rgba(0,255,255,.08), transparent 65%);
animation:hudSweep 7s linear infinite;
pointer-events:none;
opacity:.8;
}
/* ===============================
TITLE
================================ */
.slot88-title-v3{
text-align:center;
margin:0 0 12px;
font-size:15px;
font-weight:900;
letter-spacing:1px;
text-shadow:0 0 6px rgba(238, 255, 0, 0.9);
}
/* ===============================
CONTROLS
================================ */
.slot88-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(251, 255, 0, 0.35);
box-shadow: inset 0 0 14px rgba(229, 255, 0, 0.22);
}
.slot88-controls-v3 label{
display:grid;
gap:6px;
font-size:10px;
letter-spacing:.8px;
text-transform:uppercase;
color:#f8ff9b;
}
.slot88-controls-v3 select,
.slot88-controls-v3 input{
background:rgba(32, 31, 0, 0.92);
color:#eaffff;
border:1px solid rgba(251, 255, 0, 0.5);
border-radius:10px;
padding:7px 9px;
font-weight:700;
font-size:12px;
outline:none;
box-shadow: inset 0 0 10px rgba(0,200,255,.20);
}
/* BUTTON */
#btnslot88Random{
grid-column:span 2;
display:flex;
align-items:center;
justify-content:center;
gap:8px;
background:linear-gradient(145deg,#8d7a11,#c59610);
border:none;
color:#001018;
font-weight:900;
letter-spacing:.8px;
border-radius:14px;
cursor:pointer;
padding:10px 12px;
font-size:12px;
box-shadow:0 0 16px rgba(255, 238, 0, 0.7);
transition:.2s ease;
}
#btnslot88Random:active{ transform:scale(.98); }
#btnslot88Random:disabled{ opacity:.75; cursor:not-allowed; }
/* ===============================
MAIN RESULT
================================ */
.slot88-main-result-v3{
margin-top:12px;
padding:12px;
border-radius:14px;
background:rgba(30, 27, 0, 0.78);
border:1px solid rgba(251, 255, 0, 0.35);
box-shadow: inset 0 0 16px rgba(251, 255, 0, 0.26);
}
.slot88-status-v3{
text-align:center;
font-weight:800;
letter-spacing:.8px;
color:#fffd9b;
margin-bottom:10px;
font-size:11px;
}
.slot88-highlight-box{
display:flex;
justify-content:space-between;
gap:12px;
padding-bottom:10px;
margin-bottom:10px;
border-bottom:1px dashed rgba(229, 255, 0, 0.3);
}
.k, .k-rtp{
font-size:10px;
color:#c3ff9b;
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:#e3ffbf; opacity:.95; }
.k-small{ color:#e9ff9b; font-size:10px; }
.v-small{ color:#f9ffea; font-weight:900; }
.v-rtp-huge{
font-size:2.4em;
font-weight:900;
color:#8d7a11;
text-shadow:0 0 10px rgba(145, 255, 0, 0.7);
line-height:1;
letter-spacing:1px;
}
/* DETAILS */
.slot88-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:#e7ff8f;
text-transform:uppercase;
}
.v-detail{
font-size:12px;
font-weight:800;
color:#ffffff;
margin-top:4px;
letter-spacing:.8px;
}
.slot88-tip-v3{
margin-top:10px;
font-size:10px;
color:#f5ffbf;
opacity:.9;
text-align:center;
}
/* ALTS */
.slot88-alts-v3{
margin-top:12px;
padding:12px;
border-radius:14px;
background:rgba(0,0,0,.40);
border:1px solid rgba(200, 255, 0, 0.35);
}
.slot88-alts-title-v3{
font-weight:900;
color:#9bffff;
margin-bottom:10px;
font-size:12px;
}
.slot88-alt-list-v3{
display:grid;
grid-template-columns:1fr;
gap:8px;
}
.slot88-alt-item{
background:rgba(0,14,34,.86);
border-radius:12px;
padding:10px;
border-left:3px solid rgba(217, 255, 0, 0.9);
}
.slot88-alt-item .g{ font-weight:900; color:#eaffff; font-size:12px; }
.slot88-alt-item .p{ font-size:10px; color:#9bdfff; margin-top:4px; }
.slot88-alt-item .r{ margin-top:6px; font-weight:900; color:#8d7a11; letter-spacing:.8px; font-size:12px; }
.slot88-note-v3{
margin-top:10px;
font-size:10px;
color:#e6ffbf;
opacity:.85;
text-align:center;
}
/* MOBILE */
@media(max-width:420px){
.slot88-highlight-box{flex-direction:column}
.slot88-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 SLOT88 (SIMULASI)
================================ */
const SLOT88_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 SLOT88_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 SLOT88_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 = $("#slot88AltList");
wrap.innerHTML = "";
list.forEach(x=>{
const el = document.createElement("div");
el.className = "slot88-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);
});
$("#btnslot88Random").addEventListener("click", (e)=>{
const btn = e.currentTarget;
const type = $("#typeFilter").value;
const filtered = applyFilters();
const st = $("#slot88Status");
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 & 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"/></path></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 data-product-id="325">+ Keranjang</button>
<button type="button" class="btn-buy" id="btn-buy" data-id="278426" disabled data-product-id="325">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"/></path></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 slot88</strong>
<small>Link Login SLOT88RESMI</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://ik.imagekit.io/Imagevip/faviconsr.png?updatedAt=1773172118633" alt="SLOT88RESMI" class="qoala-shield-img"></center>
</div>
<div class="qoala-text">
<div class="qoala-title">Login SLOT88RESMI</div>
<div class="qoala-subtitle">Verified</div>
</div>
</div>
<a href="https://birdinhandbeerco.com/" class="qoala-cta"
data-ga-event="qoala_banner_click"
data-product-id="325"
data-product-name="SLOT88RESMI"
data-category-path="Komputer & Laptop/Laptop/Gaming" target="_blank">Info</a>
</div>
<style>.qoala-banner-card{padding:0;overflow:hidden}.qoala-banner{background:linear-gradient(135deg, #d49e06 0%, #b26e08 100%);padding:12px 16px;display:flex;align-items:center;justify-content:space-between;color:white;text-decoration:none;min-height:60px}.qoala-banner-content{display:flex;align-items:center;gap:12px}.qoala-icon{display:flex;align-items:center;justify-content:center}.qoala-shield-img{width:36px;height:36px;object-fit:contain;opacity:0.9}.qoala-title{font-weight:600;font-size:14px;line-height:1.2}.qoala-subtitle{font-size:12px;opacity:0.9;line-height:1.2}.qoala-cta{background:rgba(255,255,255,0.2);color:white;padding:6px 12px;border-radius:6px;font-size:12px;font-weight:600;text-decoration:none;transition:background 0.2s ease;border:1px solid rgba(255,255,255,0.3)}.qoala-cta:hover{background:rgba(255,255,255,0.3);color:white}@media(max-width:768px){.qoala-banner{padding:10px 12px}.qoala-title{font-size:17px}.qoala-subtitle{font-size:11px}}</style>
</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 SLOT88RESMI</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 slot88" aria-selected="false">Prediksi slot88</button>
</div>
<ul class="inst-month-list" id="inst-month-list" aria-label="Daftar cicilan per bulan"><li class="inst-month-item"><span class="tenor-badge">3x</span><span class="amount">Rp 6.929.700 / bln</span></li><li class="inst-month-item"><span class="tenor-badge">6x</span><span class="amount">Rp 3.464.900 / bln</span></li><li class="inst-month-item"><span class="tenor-badge">12x</span><span class="amount">Rp 1.732.500 / bln</span></li></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 berhttps://healacl-what-is-an-acl.pages.dev/ sesuai kebijakan bank / penyedia.</div>
</div>
<!-- MECHA BLUE FINAL BOSS REVIEW SLIDER -->
<div class="tnt-review-mecha">
<div class="tnt-header">
<h2>SLOT88RESMI ♨️ #1</h2>
<p>Review Member Slot & slot88 Indonesia</p>
</div>
<div class="tnt-slider" id="tntSlider">
<div class="tnt-slide">
<div class="tnt-name">Reza Nst</div>
<div class="tnt-comment">"Main di SLOT88RESMI benar-benar nyaman dan gampang aksesnya. Pilihan game slot lengkap, loading cepat, dan saya berhasil JP hanya dalam beberapa putaran. Recommended banget buat pecinta slot online!"</div>
</div>
<div class="tnt-slide active">
<div class="tnt-name">Widya</div>
<div class="tnt-comment">"Sudah coba banyak situs slot, tapi SLOT88RESMI paling stabil dan mudah menang. Link selalu aktif, bonus melimpah, dan proses withdraw juga cepat tanpa ribet."</div>
</div>
<div class="tnt-slide">
<div class="tnt-name">Elvina</div>
<div class="tnt-comment">"Pengalaman bermain di SLOT88RESMI sangat memuaskan. Customer service responsif 24 jam dan peluang Jackpot Hari Ini terasa lebih besar dibanding situs lain. Mantap!"</div>
</div>
<div class="tnt-slide">
<div class="tnt-name">Bg Jack</div>
<div class="tnt-comment">"SLOT88RESMI jadi situs favorit saya sekarang. Tampilan simpel, game terbaru selalu update, dan sering kasih promo menarik. Cocok buat cari hiburan sekaligus peluang cuan."</div>
</div>
<div class="tnt-slide">
<div class="tnt-name">Hidayat</div>
<div class="tnt-comment">"Awalnya coba-coba, ternyata SLOT88RESMI memang terbukti gacor. Deposit mudah, permainan lancar di HP, dan kemenangan bisa langsung cair cepat. Pasti main lagi di sini!"</div>
</div>
</div>
</div>
<a href="https://sg.birdinhandbeerco.com/" target="_blank">
<img style="display:block;margin-left:auto;margin-right:auto;height: 250px;border: 2px solid rgb(211 157 13);border-radius: 20px;box-shadow: 1px 1px 1px black;" alt="SLOT88RESMI" src="https://ik.imagekit.io/bannrsr/google-pepe88-slot.webp" width="250" height="300"/>
</a>
</aside></div>
<style>
.tnt-review-mecha{
background: radial-gradient(circle at center, #001f2f, #000814);
border: 2px solid #8d7a11;
border-radius: 14px;
padding: 20px;
color: #eaffff;
font-family: 'Orbitron', sans-serif;
position: relative;
overflow: hidden;
box-shadow: 0 0 25px #8d7a11, inset 0 0 20px rgba(0,255,255,0.2);
}
/* scanline */
.tnt-review-mecha::before{
content:"";
position:absolute;
inset:0;
background: repeating-linear-gradient(
to bottom,
rgba(0,255,255,0.08),
rgba(0,255,255,0.08) 1px,
transparent 2px,
transparent 4px
);
pointer-events:none;
}
.tnt-header h2{
font-size: 18px;
color:#8d7a11;
text-shadow:0 0 10px #8d7a11,0 0 20px #8d7a11;
margin-bottom:5px;
}
.tnt-header p{
font-size:12px;
opacity:0.8;
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:#8d7a11;
margin-bottom:5px;
text-shadow:0 0 6px #8d7a11;
}
.tnt-comment{
font-size:13px;
line-height:1.5;
}
/* glowing border animation */
@keyframes pulseGlow{
0%{box-shadow:0 0 10px #8d7a11;}
50%{box-shadow:0 0 25px #8d7a11;}
100%{box-shadow:0 0 10px #8d7a11;}
}
.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">
<h3>SLOT88RESMI</h3>
</div>
<div class="mecha-image">
<center><img src="https://ik.imagekit.io/Imagevip/logosr88?updatedAt=1773172076949" alt="SLOT88RESMI System" /></center>
</div>
<div class="mecha-content">
<p><a href="https://birdinhandbeerco.com/">Selamat datang di SLOT88RESMI</a> Situs Agen Slot Gacor Online terbaru yang menghadirkan pengalaman bermain slot modern dengan akses link Slot88 resmi yang cepat dan stabil. Dirancang untuk memudahkan para pemain, platform ini menawarkan berbagai pilihan game slot populer dari provider ternama, tampilan yang user-friendly, serta sistem keamanan yang terjamin. Dengan peluang Jackpot Hari Ini yang selalu dinanti, SLOT88RESMI menjadi pilihan tepat bagi Anda yang ingin menikmati sensasi bermain slot secara praktis dan menguntungkan.</p>
<p>Tak hanya itu, SLOT88RESMI juga menghadirkan beragam bonus menarik dan promo eksklusif yang bisa dinikmati setiap hari. Mulai dari bonus member baru, cashback, hingga event spesial yang memberikan kesempatan menang lebih besar. Dukungan layanan pelanggan yang responsif serta proses transaksi yang cepat menjadikan situs ini semakin terpercaya. Bergabung sekarang dan rasakan sendiri keseruan bermain slot online dengan peluang kemenangan maksimal setiap harinya!</p>
<p class="final-line">
‼️ <span class="glow-strong">FINAL STATUS:</span>
Kemenangan cepat, aman, dan tanpa ribet di SLOT88RESMI.
</p>
</div>
</div>
</section>
<style>
@import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@400;600;800&display=swap');
.cyber-mecha {
font-family: 'Orbitron', sans-serif;
max-width: 900px;
margin: 40px auto;
padding: 25px;
border-radius: 18px;
background: radial-gradient(circle at top, #021a2f, #000814 70%);
border: 1px solid rgba(0,180,255,0.4);
box-shadow: 0 0 25px rgba(0,180,255,0.35),
inset 0 0 25px rgba(0,120,255,0.15);
position: relative;
overflow: hidden;
}
/* scanline effect */
.cyber-mecha::before {
content: "";
position: absolute;
inset: 0;
background: repeating-linear-gradient(
to bottom,
rgba(0,255,255,0.03),
rgba(0,255,255,0.03) 1px,
transparent 1px,
transparent 3px
);
pointer-events: none;
}
.pd-full-desc-title {
text-align: center;
font-size: 22px;
font-weight: 800;
color: #8d7a11;
margin-bottom: 25px;
text-shadow: 0 0 10px #8d7a11, 0 0 20px #ff0000;
letter-spacing: 1px;
}
/* FAQ BOX */
.faq-item {
margin-bottom: 15px;
border-radius: 12px;
border: 1px solid rgba(0,200,255,0.25);
background: rgba(0,30,60,0.45);
backdrop-filter: blur(8px);
transition: all 0.3s ease;
overflow: hidden;
}
.faq-item:hover {
border-color: rgba(0,220,255,0.8);
box-shadow: 0 0 15px rgba(0,200,255,0.4);
}
/* QUESTION */
.faq-question {
padding: 14px 18px;
cursor: pointer;
font-size: 14px;
color: #bffaff;
position: relative;
}
.faq-question::after {
content: "+";
position: absolute;
right: 15px;
color: #8d7a11;
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: #d9faff;
line-height: 1.6;
transition: all 0.35s ease;
}
.faq-item.active .faq-answer {
max-height: 200px;
padding: 10px 18px 18px;
}
/* glow text */
.glow {
color: #8d7a11;
text-shadow: 0 0 8px #8d7a11, 0 0 18px #e5ff00;
}
.glow-strong {
color: #00ffff;
text-shadow: 0 0 10px #00ffff, 0 0 25px #ff0000;
}
</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">Apa itu SLOT88RESMI?</div>
<div class="faq-answer">
<strong>SLOT88RESMI</strong> adalah Situs Agen Slot Gacor Online terbaru yang menyediakan berbagai permainan<span class="glow">slot populer</span> dengan akses link resmi yang mudah dan aman.
</div>
</div>
<div class="faq-item">
<div class="faq-question">Apakah SLOT88RESMI mudah diakses setiap hari?</div>
<div class="faq-answer">
Ya, <span class="glow">SLOT88RESMI</span> menyediakan link alternatif yang stabil sehingga pemain tetap bisa login dan bermain kapan saja tanpa hambatan.
</div>
</div>
<div class="faq-item">
<div class="faq-question">Bagaimana peluang mendapatkan JP Hari Ini di SLOT88RESMI?</div>
<div class="faq-answer">
Peluang JP (Jackpot) terbuka setiap hari, tergantung pola permainan, jenis game yang dimainkan, serta keberuntungan masing-masing pemain.
</div>
</div>
<div class="faq-item">
<div class="faq-question">Bagaimana cara mendaftar di SLOT88RESMI?</div>
<div class="faq-answer">
Ya, <span class="glow">Pendaftaran sangat mudah,</span> cukup mengisi formulir dengan data yang diperlukan melalui link resmi yang tersedia.
</div>
</div>
<div class="faq-item">
<div class="faq-question">Bagaimana layanan customer service di SLOT88RESMI?</div>
<div class="faq-answer">
Customer service tersedia 24 jam dan siap membantu segala kebutuhan maupun kendala yang dialami pemain.
</div>
</div>
<div class="faq-item">
<div class="faq-question">Apakah SLOT88RESMI bisa dimainkan di HP?</div>
<div class="faq-answer">
Ya, situs ini umumnya sudah mendukung akses melalui perangkat mobile sehingga pemain bisa bermain kapan saja dan di mana saja.
</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, rgba(160, 123, 0, 0.6), #8a7603c5 70%);
border-radius: 16px;
border: 1px solid rgba(255, 230, 0, 0.4);
box-shadow:
0 0 25px rgba(255, 174, 0, 0.4), inset 0 0 20px rgba(255, 230, 0, 0.2);
padding: 25px;
font-family: 'Orbitron', sans-serif;
color: #d8f6ff;
position: relative;
overflow: hidden;
}
/* scanline overlay */
.cyber-mecha::before {
content: "";
position: absolute;
inset: 0;
background: repeating-linear-gradient(
to bottom,
rgba(255,255,255,0.03),
rgba(255,255,255,0.03) 1px,
transparent 1px,
transparent 3px
);
pointer-events: none;
}
.pd-full-desc-title {
text-align: center;
font-size: 22px;
color: #775617;
letter-spacing: 2px;
text-shadow: 0 0 12px #ffb300;
margin-bottom: 20px;
}
.mecha-header h3 {
text-align: center;
font-size: 18px;
color: #8d7a11;
text-shadow: 0 0 10px #ffe600;
margin-bottom: 15px;
}
.mecha-image img {
width: 100%;
border-radius: 10px;
border: 1px solid rgba(255, 0, 0, 0.5);
box-shadow: 0 0 20px rgba(255, 0, 0, 0.4);
margin-bottom: 20px;
}
.mecha-content p {
font-size: 14px;
line-height: 1.8;
margin-bottom: 14px;
color: #e6ffbf;
}
.glow {
color: #8d7a11;
text-shadow: 0 0 8px #8d7a11;
font-weight: 600;
}
.glow-strong {
color: #ff0000;
text-shadow:
0 0 10px #f9a400, 0 0 20px #ff9900;
font-weight: 700;
}
.final-line {
margin-top: 18px;
padding: 10px;
border: 1px solid rgba(0,200,255,0.4);
background: rgba(0,120,255,0.08);
border-radius: 8px;
text-align: center;
}
</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://birdinhandbeerco.com/">
<div class="thumb">
<img src="https://ik.imagekit.io/bannrsr/google-pepe88-slot.webp" alt="Slot88 Terbaru">
<span class="mini-disc">-2%</span> </div>
<div class="info">
<h3>Slot88 Terbaru</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 10.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://birdinhandbeerco.com/">
<div class="thumb">
<img src="https://ik.imagekit.io/bannrsr/google-pepe88-slot.webp" alt="Slot88resmi">
<span class="mini-disc">-1%</span> </div>
<div class="info">
<h3>Slot88resmi</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 23.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://birdinhandbeerco.com/">
<div class="thumb">
<img src="https://ik.imagekit.io/bannrsr/google-pepe88-slot.webp" alt="Slot Online">
<span class="mini-disc">-1%</span> </div>
<div class="info">
<h3>Slot Online</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 24.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://birdinhandbeerco.com/">
<div class="thumb">
<img src="https://ik.imagekit.io/bannrsr/google-pepe88-slot.webp" alt="SLOT88">
<span class="mini-disc">-1%</span> </div>
<div class="info">
<h3>SLOT88</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 16.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://birdinhandbeerco.com/">
<div class="thumb">
<img src="https://ik.imagekit.io/bannrsr/google-pepe88-slot.webp" alt="Agen Slot">
<span class="mini-disc">-1%</span> </div>
<div class="info">
<h3>Agen Slot</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://birdinhandbeerco.com/">
<div class="thumb">
<img src="https://ik.imagekit.io/bannrsr/google-pepe88-slot.webp" alt="Agen slot88">
<span class="mini-disc">-1%</span> </div>
<div class="info">
<h3>Agen slot88</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"/></path></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"/></path></svg></button><button type="button" class="mf-btn mf-cart" id="mf-cart" disabled aria-label="Tambah ke keranjang" data-product-id="325"><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"/></path></svg></button><button type="button" class="mf-btn mf-buy" id="mf-buy" disabled data-product-id="325"><span class="mf-buy-text">Beli Sekarang</span><span class="mf-buy-price">Rp 20.789.000</span></button></div></div>
<button type="button" class="pd-scroll-top" id="pd-scroll-top" aria-label="Kembali ke atas" title="Kembali ke atas" aria-hidden="true" style="--scroll-top-bottom: calc(68px + 54px + env(safe-area-inset-bottom));">
<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"/></path>
</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"/></path></svg></button></div><div class="pd-share-body"><div class="pd-share-preview"><img src="https://ik.imagekit.io/bannrsr/google-pepe88-slot.webp" alt="SLOT88RESMI" class="pd-share-preview-img"><div class="pd-share-preview-info"><h3 class="pd-share-preview-name">SLOT88RESMI</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"/></path></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"/></path></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"/></path></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"/></path></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"/></path></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"/></path></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"/></path></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://birdinhandbeerco.com/" readonly><button type="button" class="pd-share-copy-btn" id="pd-share-copy-url-btn"><svg viewBox="0 0 24 24" width="16" height="16"><path fill="currentColor" d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></path></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://ik.imagekit.io/bannrsr/google-pepe88-slot.webp","alt":"Lenovo Legion Go 8ASP2 - 83N0000RID /AMD Ryzen Z2 Extreme/32GB/1TB SSD/AMD Radeon Graphics/8.8\" WUXGA OLED Touch/Win 11 Home/Eclipse Black/3Y","slug":""},{"url":"https://ik.imagekit.io/bannrsr/google-pepe88-slot.webp","alt":"Lenovo Lenovo Legion Go 8ASP2 - 83N0000RID /AMD Ryzen Z2 Extreme/32GB/1TB SSD/AMD Radeon Graphics/8.8\" WUXGA OLED Touch/Wi...","slug":"https://ik.imagekit.io/bannrsr/google-pepe88-slot.webp"},{"url":"https://ik.imagekit.io/bannrsr/google-pepe88-slot.webp","alt":"Lenovo Lenovo Legion Go 8ASP2 - 83N0000RID /AMD Ryzen Z2 Extreme/32GB/1TB SSD/AMD Radeon Graphics/8.8\" WUXGA OLED Touch/Wi...","slug":"lenovo-legion-go-8asp2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-b-1761796941-223.webp"},{"url":"https://ik.imagekit.io/bannrsr/google-pepe88-slot.webp","alt":"Lenovo Lenovo Legion Go 8ASP2 - 83N0000RID /AMD Ryzen Z2 Extreme/32GB/1TB SSD/AMD Radeon Graphics/8.8\" WUXGA OLED Touch/Wi...","slug":"lenovo-legion-go-8asp2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-b-1761796941-776.webp"},{"url":"https://ik.imagekit.io/bannrsr/google-pepe88-slot.webp","alt":"Lenovo Lenovo Legion Go 8ASP2 - 83N0000RID /AMD Ryzen Z2 Extreme/32GB/1TB SSD/AMD Radeon Graphics/8.8\" WUXGA OLED Touch/Wi...","slug":"lenovo-legion-go-8asp2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-b-1761796941-634.webp"},{"url":"https://ik.imagekit.io/bannrsr/google-pepe88-slot.webp","alt":"Lenovo Lenovo Legion Go 8ASP2 - 83N0000RID /AMD Ryzen Z2 Extreme/32GB/1TB SSD/AMD Radeon Graphics/8.8\" WUXGA OLED Touch/Wi...","slug":"lenovo-legion-go-8asp2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-b-1761796941-892.webp"}],_0x3c4d="Lenovo Legion Go 8ASP2 - 83N0000RID /AMD Ryzen Z2 Extreme/32GB/1TB SSD/AMD Radeon Graphics/8.8\" WUXGA OLED Touch/Win 11 Home/Eclipse Black/3Y",_0x5e6f="1S83N0800RID";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:"1S83N0800RID",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=>({'&':'&','<':'<','>':'>','"':'"',"'":'''}[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://birdinhandbeerco.com/",g="Lenovo Legion Go 8ASP2 - 83N0000RID /AMD Ryzen Z2 Extreme/32GB/1TB SSD/AMD Radeon Graphics/8.8\" WUXGA OLED Touch/Win 11 Home/Eclipse Black/3Y",h="Rp 20.789.000";const discountPercent=1;let i='';if(discountPercent>0){i=`🔥 Lagi Promo Nih! Diskon ${discountPercent}%\n\n✨ ${g}\n💰 Cuma ${h} aja!\n\n🛒 Buruan cek sebelum kehabisan!\n👉 `}else{i=`✨ Ada barang bagus nih!\n\n📦 ${g}\n💸 Harga: ${h}\n\n🛍️ Yuk, langsung cek!\n👉 `}function j(){b.classList.add('show');document.body.style.overflow='hidden'}function k(){b.classList.remove('show');document.body.style.overflow=''}if(a)a.addEventListener('click',j);if(z)z.addEventListener('click',j);if(c)c.addEventListener('click',k);b.addEventListener('click',function(l){if(l.target===b)k()});document.addEventListener('keydown',function(l){if(l.key==='Escape'&&b.classList.contains('show'))k()});b.addEventListener('click',function(l){const m=l.target.closest('[data-share]');if(!m)return;const n=m.getAttribute('data-share'),o=encodeURIComponent(f),p=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:"1S83N0800RID"})}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:"1S83N0800RID"})}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: "1S83N0800RID",
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://plazaitco.pages.dev/assets/js/pd-lightbox.js" nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
<script src="https://plazaitco.pages.dev/assets/js/cart.js" defer nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
<script src="https://plazaitco.pages.dev/assets/js/stock-validator-vanilla.js" nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
<script src="https://plazaitco.pages.dev/assets/js/pd-addtocart.js" defer nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
<script src="https://plazaitco.pages.dev/assets/js/pd-buynow.js" defer nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
<script src="https://plazaitco.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"/></path></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"/></path></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"/></path></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"/></path></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 SLOT88RESMI</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 & 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 & Pengembalian</a></li>
<li><a href="/pembayaran-dan-cicilan">Pembayaran & Cicilan</a></li>
<li><a href="/garansi-dan-layanan">Garansi & Layanan</a></li>
</ul>
<div class="ft-payments payments-small" aria-label="Metode Pembayaran">
<div class="pay-row">
<img src="https://plazaitco.pages.dev/assets/img/payments/mandiri.svg" alt="Mandiri" loading="lazy">
<img src="https://plazaitco.pages.dev/assets/img/payments/bni.svg" alt="BNI" loading="lazy">
<img src="https://plazaitco.pages.dev/assets/img/payments/bri.svg" alt="BRI" loading="lazy">
<img src="https://plazaitco.pages.dev/assets/img/payments/bsi.svg" alt="BSI" loading="lazy">
<img src="https://plazaitco.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"/></path>
</svg>
</button>
</div>
</div>
<div class="ft-bottom">
<div class="container ft-bottom-inner">
<div class="ft-copy">
<span>TISU-AJAIB © <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: #000000 !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"/></path>
</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="M20 18.69L7.84 6.14 5.27 3.49 4 4.76l2.8 2.8v.01c-.52.99-.8 2.16-.8 3.42v5l-2 2v1h13.73l2 2L21 19.72l-1-1.03zM12 22c1.1 0 2-.9 2-2h-4c0 1.1.89 2 2 2zm6-7.32V11c0-3.08-1.64-5.64-4.5-6.32V4c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5v.68c-.15.03-.29.08-.42.12-.1.03-.2.07-.3.11h-.01c-.01 0-.01 0-.02.01-.23.09-.46.2-.68.31 0 0-.01 0-.01.01L18 14.68z"></path></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"/></path>
</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" style="display: none;">
<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"/></path>
</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"/></path>
</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://plazaitco.pages.dev/assets/js/chat-widget.js" nonce="se3iyzEHMc9FQEB4wSyd0w=="></script><script src="https://plazaitco.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"/></path>
</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"/></path>
</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"/></path>
</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"/></path>
</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"/></path>
</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"/></path>
</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"/></path>
</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"/></path>
</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"/></path>
</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"/></path>
</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://plazaitco.pages.dev/assets/js/app.js" nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
<script src="https://plazaitco.pages.dev/assets/js/site-notice.js" nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
<script src="https://plazaitco.pages.dev/assets/js/guest-cart.js" nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
<script src="https://plazaitco.pages.dev/assets/js/cart.js" nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
<script defer src="https://plazaitco.pages.dev/assets/js/mega-menu-tiles.js" nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
<script src="https://plazaitco.pages.dev/assets/js/benchmark.js" nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
<script src="https://plazaitco.pages.dev/assets/js/product-compare.js" defer nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
<script src="https://plazaitco.pages.dev/assets/js/product-card-actions.js" defer nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
<script src="https://plazaitco.pages.dev/assets/js/product-reviews.js" defer nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
<script src="https://plazaitco.pages.dev/assets/js/review-submission.js" defer nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
<style>
/* =========================================================
🔴 FIXED FOOTER – CRIMSON MECHA MODE (SLOT88RESMI)
========================================================= */
.mawar-red-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 Merah Deep + Hitam */
background:
radial-gradient(circle at 50% 0%, rgba(255, 230, 0, 0.25), rgba(20, 15, 0, 0.95) 60%, rgba(0, 0, 0, 1)),
linear-gradient(180deg, rgba(40, 0, 0, 0.9), rgba(0, 0, 0, 1));
border-top: 2px solid rgba(255, 187, 0, 0.7);
border-radius: 20px 20px 0 0;
box-shadow:
0 -12px 35px rgba(255, 196, 0, 0.2),
inset 0 1px 0 rgba(255, 255, 255, 0.1);
font-family: "Orbitron", "Poppins", sans-serif;
}
/* 🌀 Scanline Halus (Red Cyber) */
.mawar-red-fixed-footer::before {
content: "";
position: absolute;
inset: 0;
pointer-events: none;
background: repeating-linear-gradient(
0deg,
rgba(255, 0, 0, 0.03),
rgba(255, 0, 0, 0.03) 1px,
transparent 1px,
transparent 4px
);
opacity: 0.8;
mix-blend-mode: overlay;
}
/* ⚡ Crimson Sweep Animation */
.mawar-red-fixed-footer::after {
content: "";
position: absolute;
top: 0; left: -160%;
width: 60%; height: 100%;
background: linear-gradient(120deg, transparent, rgba(255, 0, 0, 0.4), transparent);
transform: skewX(-25deg);
animation: redShine 4s infinite;
pointer-events: none;
}
@keyframes redShine {
0% { left: -160%; }
60% { left: 160%; }
100% { left: 160%; }
}
/* =========================================================
ITEM STYLE
========================================================= */
.mawar-red-fixed-footer a {
flex: 1;
max-width: 110px;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 5px;
padding: 8px 4px;
text-decoration: none;
text-align: center;
color: rgba(255, 200, 200, 0.9);
font-size: 11px;
font-weight: 800;
text-transform: uppercase;
transition: all 0.2s ease;
position: relative;
}
.mawar-red-fixed-footer a:hover {
color: #fff;
filter: drop-shadow(0 0 8px rgba(255, 0, 0, 0.8));
transform: translateY(-2px);
}
.mawar-red-fixed-footer img {
width: 24px;
height: 24px;
filter: drop-shadow(0 0 5px rgba(255, 0, 0, 0.6));
transition: transform 0.2s ease;
}
/* =========================================================
CENTER CTA – THE CORE (SLOT88RESMI)
========================================================= */
.mawar-red-fixed-footer .core-cta {
background: rgba(255, 0, 0, 0.15);
border: 1px solid rgba(255, 0, 0, 0.6);
border-radius: 12px;
box-shadow:
0 0 15px rgba(255, 0, 0, 0.3),
inset 0 0 10px rgba(255, 0, 0, 0.2);
transform: scale(1.05);
}
.mawar-red-fixed-footer .core-cta img {
width: 28px;
height: 28px;
filter: drop-shadow(0 0 10px rgba(255, 0, 0, 1));
}
/* Pulse Effect for Core */
.mawar-red-fixed-footer .core-cta::before {
content: "";
position: absolute;
inset: -5px;
border-radius: 15px;
background: radial-gradient(circle, rgba(255, 0, 0, 0.3), transparent 70%);
animation: redPulse 2s ease-in-out infinite;
z-index: -1;
}
@keyframes redPulse {
0%, 100% { opacity: 0.4; transform: scale(1); }
50% { opacity: 0.8; transform: scale(1.1); }
}
/* =========================================================
RESPONSIVE
========================================================= */
@media (max-width: 400px) {
.mawar-red-fixed-footer a { font-size: 10px; }
.mawar-red-fixed-footer img { width: 20px; height: 20px; }
.mawar-red-fixed-footer .core-cta img { width: 24px; height: 24px; }
}
</style>
<div class="mawar-red-fixed-footer">
<a href="https://sg.birdinhandbeerco.com/" target="_blank" rel="nofollow noopener">
<img src="https://ik.imagekit.io/Imagevip/faviconsr.png?updatedAt=1773172118633" alt="BONUS SLOT88RESMI">
PROMO
</a>
<a href="https://sg.birdinhandbeerco.com/" target="_blank" rel="nofollow noopener">
<img src="https://ik.imagekit.io/Imagevip/faviconsr.png?updatedAt=1773172118633" alt="TELEGRAM SLOT88RESMI">
TELEGRAM
</a>
<a href="https://sg.birdinhandbeerco.com/" target="_blank" rel="nofollow noopener" class="core-cta">
<img src="https://ik.imagekit.io/Imagevip/faviconsr.png?updatedAt=1773172118633" alt="DAFTAR SLOT88RESMI">
DAFTAR
</a>
<a href="https://sg.birdinhandbeerco.com/" target="_blank" rel="nofollow noopener">
<img src="https://ik.imagekit.io/Imagevip/faviconsr.png?updatedAt=1773172118633" alt="PREDIKSI SLOT88RESMI">
PREDIKSI
</a>
can
<a href="https://sg.birdinhandbeerco.com/" target="_blank" rel="nofollow noopener">
<img src="https://ik.imagekit.io/Imagevip/faviconsr.png?updatedAt=1773172118633" alt="LIVECHAT SLOT88RESMI">
CHAT
</a>
</div>
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516" integrity="sha512-8DS7rgIrAmghBFwoOTujcf6D9rXvH8xm8JQ1Ja01h9QX8EzXldiszufYa4IFfKdLUKTTrnSFXLDkUEOTrZQ8Qg==" data-cf-beacon='{"version":"2024.11.0","token":"36c9020aa89c44dfb12c7ff1d60c014d","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516" integrity="sha512-8DS7rgIrAmghBFwoOTujcf6D9rXvH8xm8JQ1Ja01h9QX8EzXldiszufYa4IFfKdLUKTTrnSFXLDkUEOTrZQ8Qg==" data-cf-beacon='{"version":"2024.11.0","token":"3acdaa69e4424c8daec6309daffaac51","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/v8c78df7c7c0f484497ecbca7046644da1771523124516" integrity="sha512-8DS7rgIrAmghBFwoOTujcf6D9rXvH8xm8JQ1Ja01h9QX8EzXldiszufYa4IFfKdLUKTTrnSFXLDkUEOTrZQ8Qg==" data-cf-beacon='{"version":"2024.11.0","token":"3acdaa69e4424c8daec6309daffaac51","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
<div class="modal-overlay" id="review-modal-overlay" style="display:none;">
<div class="modal-content review-modal">
<div class="modal-header">
<h3 class="modal-title">Tulis Ulasan</h3>
<button type="button" class="modal-close" id="review-modal-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"></path>
</svg>
</button>
</div>
<div class="modal-body">
<form id="review-form" class="review-form">
<!-- Product Info -->
<div class="review-product-info" id="review-product-info">
<img id="review-product-image" src="" alt="" class="review-product-thumb" />
<div class="review-product-details">
<h4 id="review-product-name"></h4>
<p id="review-product-sku"></p>
</div>
</div>
<!-- Rating -->
<div class="form-group">
<label class="form-label">Rating <span style="color:#ef4444;">*</span></label>
<div class="star-rating-input" id="star-rating-input">
<button type="button" class="star-btn" data-rating="1">★</button>
<button type="button" class="star-btn" data-rating="2">★</button>
<button type="button" class="star-btn" data-rating="3">★</button>
<button type="button" class="star-btn" data-rating="4">★</button>
<button type="button" class="star-btn" data-rating="5">★</button>
</div>
<p class="rating-label" id="rating-label">Pilih rating Anda</p>
</div>
<!-- Review Text -->
<div class="form-group">
<label class="form-label" for="review-text">Ulasan Anda <span style="color:#ef4444;">*</span></label>
<textarea id="review-text" name="review_text" class="form-control" rows="6" placeholder="Ceritakan pengalaman Anda dengan produk ini..." minlength="20" maxlength="5000" required=""></textarea>
<p class="form-hint">
<span id="review-char-count">0</span>/5000 karakter
<span style="color:#059669;font-weight:500;">
💰 +1,000 point untuk ulasan ≥ 100 karakter
</span>
</p>
</div>
<!-- Image Upload -->
<div class="form-group">
<label class="form-label">Upload Foto (Opsional)</label>
<div class="image-upload-container">
<input type="file" id="review-images" name="images[]" accept="image/jpeg,image/jpg,image/png,image/webp" multiple="" style="display:none;" />
<button type="button" class="btn-upload-trigger" id="upload-trigger">
<svg width="24" height="24" viewBox="0 0 24 24">
<path fill="currentColor" d="M19 7v2.99s-1.99.01-2 0V7h-3s.01-1.99 0-2h3V2h2v3h3v2h-3zm-3 4V8h-3V5H5c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2v-8h-3zM5 19l3-4 2 3 3-4 4 5H5z"></path>
</svg>
<span>Pilih Foto</span>
</button>
<p class="form-hint">
Max 5 foto, format JPG/PNG/WebP, max 2MB per foto
<span style="color:#059669;font-weight:500;">
💰 +2,000 point untuk ulasan dengan foto
</span>
</p>
</div>
<div class="image-preview-grid" id="image-preview-grid"></div>
</div>
<!-- Point Reward Info -->
<div class="point-reward-info">
<div class="pri-header">
<span>🎁</span>
<span>Dapatkan Point Reward</span>
</div>
<ul class="pri-list">
<li>✅ Ulasan dasar: <strong>5,000 point</strong></li>
<li id="pri-long-text" style="opacity:0.5;">📝 Ulasan panjang (≥100 kata): <strong>+1,000 point</strong></li>
<li id="pri-images" style="opacity:0.5;">📸 Dengan foto: <strong>+2,000 point</strong></li>
</ul>
<div class="pri-total">
Total Reward: <strong id="pri-total-points">5,000 point</strong>
</div>
</div>
<!-- Privacy Option -->
<div class="form-group" style="margin-top:20px;padding:15px;background:#f8fafc;border-radius:8px;">
<label class="checkbox-label" style="display:flex;align-items:center;cursor:pointer;margin:0;">
<input type="checkbox" id="review-anonymous" name="is_anonymous" style="margin-right:8px;width:18px;height:18px;cursor:pointer;" />
<span style="font-size:14px;">
<strong>🔒 Sembunyikan nama saya</strong>
<span style="color:#64748b;display:block;font-size:13px;margin-top:4px;" id="review-anonymous-preview">
Nama Anda akan ditampilkan dengan disamarkan untuk menjaga privasi
</span>
</span>
</label>
</div>
<!-- Error Alert -->
<div class="form-error" id="review-form-error" style="display:none;"></div>
<!-- Submit Buttons -->
<div class="modal-footer">
<button type="button" class="btn btn-secondary" id="review-cancel">Batal</button>
<button type="submit" class="btn btn-primary" id="review-submit">
Kirim Ulasan
</button>
</div>
</form>
</div>
</div>
</div>
<div class="pd-lb" id="pd-lightbox" role="dialog" aria-modal="true" aria-hidden="true" tabindex="-1">
<div class="pd-lb-canvas"><img class="pd-lb-img" id="pd-lb-img" alt="" /></div>
<button class="pd-lb-close" aria-label="Tutup" title="Tutup">×</button>
<button class="pd-lb-prev" aria-label="Sebelumnya" title="Sebelumnya">❮</button>
<button class="pd-lb-next" aria-label="Berikutnya" title="Berikutnya">❯</button>
<div class="pd-lb-counter" id="pd-lb-counter">1 / 1</div>
</div><div class="pca-overlay"></div><div class="pca-bottom-sheet">
<div class="pca-sheet-handle"></div>
<div class="pca-sheet-product" id="pca-product-preview">
<!-- Product info will be inserted here -->
</div>
<div class="pca-sheet-actions">
<button type="button" class="pca-action-item cart" id="pca-add-cart">
<svg class="pca-action-icon" 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"></path>
</svg>
<div class="pca-action-content">
<div class="pca-action-label">Tambah ke Keranjang</div>
<div class="pca-action-desc">Lanjut belanja produk lain</div>
</div>
</button>
<button type="button" class="pca-action-item compare" id="pca-add-compare">
<svg class="pca-action-icon" viewBox="0 0 24 24" fill="currentColor">
<path d="M21,9L17,5V8H10V10H17V13M7,11L3,15L7,19V16H14V14H7V11Z"></path>
</svg>
<div class="pca-action-content">
<div class="pca-action-label">Bandingkan Produk</div>
<div class="pca-action-desc">Analisis dengan AI</div>
</div>
<span class="pca-action-badge compare" id="pca-compare-count" style="display:none;">0</span>
</button>
</div>
</div></body></html>
Sitemap
Кол-во: 0
XML-карта сайта для поисковиков
?
Sitemap.xml помогает поисковику быстрее находить и индексировать страницы. Особенно важен для крупных сайтов и новых страниц, на которые ещё нет входящих ссылок.
Robots.txt не содержит ссылку на карту сайта. Рекомендуется добавить карту сайта и указать ссылку на нее в robots.txt.
Внутренние ссылки
Кол-во: 11
Ссылки на другие страницы своего сайта
?
Внутренние ссылки распределяют ссылочный вес между страницами и помогают поисковику обходить сайт. Пустые анкоры и ссылки на запрещённые robots.txt страницы — типичные ошибки.
Внутренних ссылок на странице 11 оптимально.
Внутренние ссылки не запрещены к индексации в robots.txt.
На странице присутствуют изображения 2.
Показать внутренние ссылки
| Url | Анкор | Состояние | Анализировать |
|---|---|---|---|
| / |
<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"></path>
<polyline points="9 22 9 12 15 12 15 22"></polyline>
</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>
<path d="M12 5.5l-7.5 7.5v8.25c0 .414.336.75.75.75h3.75v-6h6v6h3.75a.75.75 0 00.75-.75V13l-7.5-7.5z"></path>
</svg>
</div>
<span class="bottom-nav-item-label">Home</span>
|
|
Анализировать url |
| /tentang-kami |
Tentang Kami
|
|
Анализировать url |
| /kontak-kami |
Kontak Kami
|
|
Анализировать url |
| /lokasi-toko |
Lokasi Toko
|
|
Анализировать url |
| /faq |
FAQ
|
|
Анализировать url |
| /syarat-dan-ketentuan |
Syarat & Ketentuan
|
|
Анализировать url |
| /kebijakan-privasi |
Kebijakan Privasi
|
|
Анализировать url |
| /kebijakan-cookie |
Kebijakan Cookie
|
|
Анализировать url |
| /pengiriman-dan-pengembalian |
Pengiriman & Pengembalian
|
|
Анализировать url |
| /pembayaran-dan-cicilan |
Pembayaran & Cicilan
|
|
Анализировать url |
| /garansi-dan-layanan |
Garansi & Layanan
|
|
Анализировать url |
Внешние ссылки
Кол-во: 26
Ссылки на сторонние сайты
?
Исходящие внешние ссылки передают часть ссылочного веса на чужие сайты. Ссылки на авторитетные ресурсы безопасны; ссылки на мусорные сайты могут навредить репутации страницы.
Внешних ссылок на странице 26 слишком много. Спрячьте лишние ссылки в тег noindex или атрибут rel='nofollow'!
На странице ссылки с атрибутом rel='nofollow' 2.
Показать внешние ссылки
| Url | Анкор | Анализировать |
|---|---|---|
| birdinhandbeerco.com |
SLOT88RESMI
|
Анализировать url |
| birdinhandbeerco.com |
Promo
|
Анализировать url |
| sg.birdinhandbeerco.com |
Daftar
|
Анализировать url |
| sg.birdinhandbeerco.com |
Masuk
|
Анализировать url |
| birdinhandbeerco.com |
SLOT88RESMI
|
Анализировать url |
| birdinhandbeerco.com |
SLOT88 RESMI
|
Анализировать url |
| birdinhandbeerco.com |
SLOT88RESMI LOGIN
|
Анализировать url |
| birdinhandbeerco.com |
SLOT88RESMI LINK
|
Анализировать url |
| birdinhandbeerco.com |
SLOT88RESMI SITUS
|
Анализировать url |
| birdinhandbeerco.com |
SLOT88
|
Анализировать url |
| birdinhandbeerco.com |
SLOT ONLINE
|
Анализировать url |
| birdinhandbeerco.com |
SLOT88RESMI
|
Анализировать url |
| birdinhandbeerco.com |
SLOT88 LOGIN
|
Анализировать url |
| birdinhandbeerco.com |
LOGIN SLOT88RESMI
|
Анализировать url |
| birdinhandbeerco.com |
SLOT88
|
Анализировать url |
| birdinhandbeerco.com |
SLOT ONLINE
|
Анализировать url |
| wa.me |
<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"></path></svg>
|
|
| wa.me |
<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"></path>
</svg>
|
|
| wa.me |
<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"></path>
</svg>
|
|
| sg.birdinhandbeerco.com |
Klik Disini
|
Анализировать url |
| birdinhandbeerco.com |
Info
|
Анализировать url |
| sg.birdinhandbeerco.com |
<img style="display:block;margin-left:auto;margin-right:auto;height: 250px;border: 2px solid rgb(211 157 13);border-radius: 20px;box-shadow: 1px 1px 1px black;" alt="SLOT88RESMI" src="https://ik.imagekit.io/bannrsr/google-pepe88-slot.webp" width="250" height="300">
|
Анализировать url |
| birdinhandbeerco.com |
Selamat datang di SLOT88RESMI
|
Анализировать url |
| facebook.com |
<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"></path></svg>
|
|
| instagram.com |
<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"></path></svg>
|
|
| tiktok.com |
<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"></path></svg>
|
Конкуренты Готовность: 0%
Конкуренты в Яндексе
Кол-во: 0
Топ сайтов-конкурентов в Яндексе
?
Сайты, чаще всего появляющиеся в ТОПе Яндекса по запросам из семантического ядра этой страницы.
Мы не нашли у вас конкурентов в Яндексе. Сайт или очень молодой или плохо продвигается.
Конкурентов в ТОП-10 Яндекса не нашлось.
Конкуренты в Google
Кол-во: 0
Топ сайтов-конкурентов в Google
?
Сайты, чаще всего появляющиеся в ТОПе Google по запросам из семантического ядра этой страницы.
Конкуренты в Google тоже не найдены. Займитесь продвижением сайта!
Конкурентов в ТОП-10 Google не нашлось.
ЗоЗПП: права потребителей Готовность: 100%
Нарушения
Не выявлены
Признаков дистанционной продажи товаров (интернет-магазина) не обнаружено — требования ЗоЗПП о раскрытии информации продавца к сайту не применяются. Нарушений нет.
ФЗ-149: рекомендательные технологии Готовность: 100%
Нарушения
Не выявлены
Рекомендательные блоки («с этим покупают», «похожие товары» и т.п.) на сайте не обнаружены — требования ст. 10.7 ФЗ-149 к сайту не применяются. Нарушений нет.
ФЗ-38: реклама Готовность: 100%
Нарушения
Не выявлены
Рекламных тематик с обязательными оговорками (медицина, БАД, кредиты и займы, новостройки) на сайте не обнаружено. Нарушений нет.
ФЗ-436: защита детей Готовность: 100%
Нарушения
Не выявлены
Признаков информационной продукции (новости, видео, книги, игры, курсы) не обнаружено — обязательная возрастная маркировка по ФЗ-436 сайту не требуется. Нарушений нет.
Вердикт
Анализ сайта aspiratech.net, слабо оптимизирован на 39%. Для хорошей оптимизации и выхода на первые места в поиске требуется:
Постарайтесь исправить общие ошибки.
Исправьте ошибки в мета-тегах.
Исправьте ошибки индексации.
Поделитесь с друзьями: