/* NeoSoft etalase PDP + variant bottom sheet + gallery lightbox */
.neo-pdp{--pdp-accent:#0284c7;--pdp-ink:#0f172a;--pdp-muted:#64748b;background:#f8fafc;min-height:100%;padding-bottom:1.5rem}
.neo-pdp__crumb{display:flex;flex-wrap:wrap;align-items:center;gap:.2rem .4rem;padding:.55rem .9rem .25rem;font-size:.78rem;line-height:1.4;color:#64748b;background:transparent}
.neo-pdp__crumb a{color:#2563eb;text-decoration:none;font-weight:600}
.neo-pdp__crumb a:hover{text-decoration:underline}
.neo-pdp__crumb-sep{color:#94a3b8;font-weight:500;user-select:none}
.neo-pdp__crumb-cur{color:#334155;font-weight:500;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:min(100%,28rem)}
.neo-pdp__top{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.65rem .9rem;background:rgba(248,250,252,.92);backdrop-filter:blur(8px);border-bottom:1px solid #e2e8f0}
.neo-pdp__top-shop{display:flex;align-items:center;gap:.5rem;min-width:0;flex:1;text-decoration:none;color:inherit;justify-content:center}
.neo-pdp__top-logo{width:1.65rem;height:1.65rem;border-radius:.4rem;overflow:hidden;background:#f1f5f9;border:1px solid #e2e8f0;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;color:#1e3a6e;font-size:.7rem}
.neo-pdp__top-logo img{width:100%;height:100%;object-fit:cover;display:block}
.neo-pdp__top-name{font-weight:800;font-size:.84rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:14rem;color:#0f172a}
.neo-pdp__iconbtn{width:2.25rem;height:2.25rem;border-radius:999px;border:1px solid #e2e8f0;background:#fff;display:inline-flex;align-items:center;justify-content:center;color:#334155;position:relative;text-decoration:none}
.neo-pdp__badge{position:absolute;top:-.2rem;right:-.2rem;min-width:1rem;height:1rem;padding:0 .25rem;border-radius:999px;background:var(--pdp-accent);color:#fff;font-size:9px;font-weight:800;display:flex;align-items:center;justify-content:center}

/* Gallery */
.neo-pdp__gallery-wrap{background:#fff}
.neo-pdp__gallery{position:relative;background:#f1f5f9;aspect-ratio:1/1;width:100%;max-width:100%;overflow:hidden}
.neo-pdp__gallery-track{display:flex;height:100%;width:100%;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;cursor:zoom-in}
.neo-pdp__gallery-track::-webkit-scrollbar{display:none}
.neo-pdp__slide{flex:0 0 100%;width:100%;min-width:100%;height:100%;scroll-snap-align:start;display:flex;align-items:center;justify-content:center;background:#f1f5f9;position:relative}
.neo-pdp__slide img{width:100%;height:100%;object-fit:cover;object-position:center;pointer-events:none;display:block}
.neo-pdp__counter{position:absolute;right:.75rem;bottom:.75rem;background:rgba(15,23,42,.65);color:#fff;font-size:11px;font-weight:700;padding:.2rem .55rem;border-radius:999px;z-index:2}
.neo-pdp__nav{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:2.1rem;height:2.1rem;border:0;border-radius:.35rem;background:rgba(15,23,42,.45);color:#fff;display:none;align-items:center;justify-content:center;cursor:pointer}
.neo-pdp__nav:hover{background:rgba(15,23,42,.7)}
.neo-pdp__nav--prev{left:.55rem}
.neo-pdp__nav--next{right:.55rem}
.neo-pdp__gallery.is-multi .neo-pdp__nav{display:inline-flex}
.neo-pdp__thumbs{display:flex;gap:.45rem;padding:.55rem .75rem .75rem;overflow-x:auto;scrollbar-width:none;background:#fff}
.neo-pdp__thumbs::-webkit-scrollbar{display:none}
.neo-pdp__thumb{flex:0 0 auto;width:3.35rem;height:3.35rem;border:2px solid transparent;border-radius:.4rem;padding:0;overflow:hidden;background:#f1f5f9;cursor:pointer}
.neo-pdp__thumb img{width:100%;height:100%;object-fit:cover;display:block}
.neo-pdp__thumb.is-on{border-color:var(--pdp-accent)}
.neo-pdp__thumbs:empty{display:none}

/* Shop brand strip — di atas detail produk */
.neo-pdp__shop{
  display:flex;align-items:center;gap:.75rem;
  background:#fff;padding:.75rem .95rem;
  border-bottom:8px solid #f1f5f9;
  text-decoration:none;color:inherit;
}
.neo-pdp__shop:hover .neo-pdp__shop-name{color:#1e3a6e}
.neo-pdp__shop-logo{
  width:3rem;height:3rem;border-radius:.75rem;overflow:hidden;flex-shrink:0;
  background:#eef5fb;border:1px solid #b8d9f0;
  display:inline-flex;align-items:center;justify-content:center;color:#1e3a6e;font-size:1rem;
}
.neo-pdp__shop-logo img{width:100%;height:100%;object-fit:cover;display:block}
.neo-pdp__shop-info{min-width:0;display:flex;flex-direction:column;gap:.15rem}
.neo-pdp__shop-name{font-size:.92rem;font-weight:900;color:#0f172a;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.neo-pdp__shop-presence{display:inline-flex;align-items:center;gap:.3rem;font-size:.72rem;font-weight:700;color:#94a3b8;line-height:1.2}
.neo-pdp__shop-presence i{font-size:.45rem;color:#cbd5e1}
.neo-pdp__shop-presence.is-on{color:#15803d}
.neo-pdp__shop-presence.is-on i{color:#22c55e}
.neo-pdp__shop-cta{font-size:.68rem;font-weight:700;color:#1e3a6e}
.neo-pdp__shop-cta i{font-size:.55rem;margin-left:.15rem}

.neo-pdp__body{background:#fff;padding:1rem 1rem 1.25rem;border-bottom:8px solid #f1f5f9;box-sizing:border-box}
.neo-pdp__price-wrap{display:flex;flex-wrap:wrap;align-items:baseline;gap:.55rem .75rem}
.neo-pdp__price{font-size:1.55rem;font-weight:900;color:var(--pdp-accent);letter-spacing:-.02em}
.neo-pdp__promo{display:inline-flex;align-items:center;gap:.4rem}
.neo-pdp__coret{font-size:.9rem;font-weight:700;color:#94a3b8;text-decoration:line-through}
.neo-pdp__disc{font-size:.72rem;font-weight:900;color:#fff;background:var(--pdp-accent);padding:.15rem .4rem;border-radius:.3rem}
.neo-pdp__name{margin-top:.55rem;font-size:.98rem;font-weight:700;color:var(--pdp-ink);line-height:1.4}
.neo-pdp__tags{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.55rem}
.neo-pdp__tag{display:inline-flex;align-items:center;font-size:.68rem;font-weight:800;padding:.2rem .5rem;border-radius:.35rem;background:#f1f5f9;color:#475569}
.neo-pdp__tag.is-baru{background:#f0f7fc;color:#047857}
.neo-pdp__tag.is-bekas{background:#e0f2fe;color:#c2410c}
.neo-pdp__tag.is-preorder{background:#eff6ff;color:#1d4ed8}
.neo-pdp__tag.is-bahaya{background:#fef2f2;color:#b91c1c}
.neo-pdp__meta{margin-top:.45rem;font-size:.75rem;color:var(--pdp-muted);font-weight:600;display:flex;flex-wrap:wrap;align-items:center;gap:.35rem}
.neo-pdp__cod-badge{display:inline-block;padding:.1rem .35rem;border-radius:.3rem;border:1px solid #b8d9f0;background:#eef5fb;color:#1e3a6e;font-size:.65rem;font-weight:800;letter-spacing:.04em}
.neo-pdp__note{margin-top:.55rem;font-size:.72rem;font-weight:700;line-height:1.4;padding:.55rem .7rem;border-radius:.55rem;background:#eff6ff;color:#1e40af}
.neo-pdp__note.is-preorder{border:1px solid #bfdbfe}
.neo-pdp__share{margin-top:.65rem;display:flex;flex-wrap:wrap;gap:.45rem}
.neo-pdp__share-fb{display:inline-flex;align-items:center;gap:.4rem;padding:.45rem .75rem;border-radius:.55rem;background:#1877f2;color:#fff;font-size:.75rem;font-weight:800;text-decoration:none}
.neo-pdp__share-fb:hover{filter:brightness(1.05)}
.neo-pdp__share-wa{display:inline-flex;align-items:center;gap:.4rem;padding:.45rem .75rem;border-radius:.55rem;background:#128c7e;color:#fff;font-size:.75rem;font-weight:800;text-decoration:none}
.neo-pdp__share-wa:hover{filter:brightness(1.05)}
.neo-pdp__aff{margin-top:.65rem;display:flex;align-items:flex-start;gap:.55rem;padding:.65rem .75rem;border-radius:.65rem;background:#eef5fb;border:1px solid #b8d9f0;text-decoration:none;color:#1e3a6e}
.neo-pdp__aff i{margin-top:.15rem}
.neo-pdp__aff strong{display:block;font-size:.8rem;font-weight:900;color:#0f172a}
.neo-pdp__aff small{display:block;font-size:.68rem;font-weight:700;color:#1e3a6e;margin-top:.1rem;line-height:1.35}
.neo-pdp__ship{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.45rem}
.neo-pdp__ship li{display:flex;justify-content:space-between;gap:.75rem;font-size:.8rem;font-weight:600;color:#475569}
.neo-pdp__ship li strong{color:#0f172a;text-align:right;font-weight:800}
.neo-pdp__spec{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:.55rem 1.25rem}
.neo-pdp__spec li{display:flex;justify-content:space-between;gap:.75rem;font-size:.82rem;font-weight:600;color:#64748b;padding:.2rem 0;border-bottom:1px dashed #f1f5f9}
.neo-pdp__spec li strong{color:#0f172a;font-weight:800;text-align:right}
.neo-pdp__shop-panel{background:#fff;padding:.85rem 1rem;border-bottom:8px solid #f1f5f9;box-sizing:border-box}
.neo-pdp__shop-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}
.neo-pdp__shop-actions{display:flex;flex-wrap:wrap;gap:.45rem}
.neo-pdp__shop-btn{display:inline-flex;align-items:center;gap:.35rem;padding:.5rem .75rem;border-radius:.55rem;font-size:.75rem;font-weight:800;text-decoration:none;background:#2563eb;color:#fff}
.neo-pdp__shop-btn--outline{background:#fff;color:#1d4ed8;border:1px solid #93c5fd}
@media (max-width:640px){
  .neo-pdp__spec{grid-template-columns:1fr}
}
.neo-pdp__section{background:#fff;padding:1rem 1rem;border-bottom:8px solid #f1f5f9;box-sizing:border-box}
.neo-pdp__section h3{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--pdp-muted);margin:0 0 .65rem}
.neo-pdp__chips{display:flex;flex-wrap:wrap;gap:.45rem}
.neo-pdp__chip{position:relative;border:1px solid #cbd5e1;background:#fff;border-radius:.55rem;padding:.45rem .7rem;font-size:.78rem;font-weight:700;color:#334155;text-align:left}
.neo-pdp__chip.is-on{border-color:var(--pdp-accent);color:var(--pdp-accent);box-shadow:0 0 0 1px var(--pdp-accent) inset}
.neo-pdp__chip.is-on::after{content:"";position:absolute;right:0;bottom:0;width:0;height:0;border-style:solid;border-width:0 0 14px 14px;border-color:transparent transparent var(--pdp-accent) transparent}
.neo-pdp__chip:disabled{opacity:.35}
.neo-pdp__chip-lab{display:block;line-height:1.2}
.neo-pdp__chip-harga{display:block;margin-top:.2rem;font-size:.68rem;font-weight:800;color:var(--pdp-accent);opacity:.9}
.neo-pdp__varian-price{
  font-size:1.35rem;font-weight:900;color:var(--pdp-accent,#0284c7);
  margin:0 0 .65rem;line-height:1.2;letter-spacing:-.02em
}
.neo-pdp__section--varian-under-img h3{margin-top:.15rem}
.neo-pdp__warna{display:flex;gap:.5rem;overflow-x:auto;padding-bottom:.2rem;scrollbar-width:none}
.neo-pdp__warna::-webkit-scrollbar{display:none}
.neo-pdp__warna-btn{flex:0 0 auto;width:3.4rem;border:2px solid transparent;border-radius:.65rem;padding:0;background:#fff;overflow:hidden}
.neo-pdp__warna-btn.is-on{border-color:var(--pdp-accent)}
.neo-pdp__warna-btn img,.neo-pdp__warna-btn .ph{width:3.15rem;height:3.15rem;object-fit:cover;display:block;background:#e2e8f0}
.neo-pdp__warna-btn .ph{display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:800;color:#64748b;text-align:center;padding:.2rem}
.neo-pdp__warna-lab{display:block;font-size:9px;font-weight:700;text-align:center;padding:.15rem;color:#475569;max-width:3.15rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.neo-pdp__desc{font-size:.84rem;line-height:1.55;color:#475569;white-space:pre-wrap}
.neo-pdp__bar{position:relative;left:auto;right:auto;bottom:auto;z-index:20;display:flex;align-items:center;gap:.35rem;background:#fff;border:1px solid #e2e8f0;border-radius:.85rem;margin:.65rem .75rem 1rem;padding:.4rem .45rem;box-shadow:0 4px 14px rgba(15,23,42,.08)}
.neo-pdp__bar--inline{margin:.85rem 0 0;box-shadow:none;background:#f8fafc}
.neo-pdp__bar-ico{width:2.65rem;min-width:2.65rem;height:2.65rem;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.05rem;font-size:8px;font-weight:800;color:#475569;text-decoration:none;border:0;background:transparent;cursor:pointer;padding:0;border-radius:.55rem}
.neo-pdp__bar-ico i{font-size:.95rem;line-height:1}
.neo-pdp__bar-ico span{line-height:1;max-width:2.6rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.neo-pdp__bar-love.is-on,
.neo-pdp__bar-love.is-on i{color:#e11d48}
.neo-pdp__bar-love:hover{background:#fff1f2}
.neo-pdp__bar-cta{flex:1 1 auto;min-width:0;border:0;border-radius:.6rem;background:linear-gradient(90deg,#0369a1,#0284c7);color:#fff;font-weight:900;font-size:.82rem;padding:.65rem .55rem;white-space:nowrap}
.neo-pdp__bar-cta:disabled{opacity:.45}
.neo-pdp__bar-cart{flex:0 0 auto;border:0;border-radius:.6rem;background:#e0f2fe;color:var(--pdp-accent);border:1px solid #7dd3fc;font-weight:800;font-size:.78rem;padding:.65rem .7rem;margin:0;white-space:nowrap}
.neo-vsheet{position:fixed;inset:0;z-index:60;display:none}
.neo-vsheet.is-open{display:block}
.neo-vsheet__mask{position:absolute;inset:0;background:rgba(15,23,42,.45)}
.neo-vsheet__panel{position:absolute;left:0;right:0;bottom:0;max-height:88vh;overflow:auto;background:#fff;border-radius:1rem 1rem 0 0;padding:1rem 1rem calc(1rem + env(safe-area-inset-bottom,0px));transform:translateY(110%);transition:transform .22s ease;-webkit-overflow-scrolling:touch}
.neo-vsheet.is-open .neo-vsheet__panel{transform:translateY(0)}
/* Sheet terbuka: sembunyikan tab/FAB agar CTA tidak tertutup (iPhone PWA) */
body.neo-vsheet-open .neo-portal-tabs,
body.neo-vsheet-open .neo-pdp__bar,
body.neo-vsheet-open .neo-ai-chat-wrap,
body.neo-vsheet-open .neo-ai-chat-fab,
body.neo-vsheet-open #neoAiChatFab,
body.neo-vsheet-open .neo-aktif-fab{
  visibility:hidden!important;
  pointer-events:none!important;
}
body.neo-vsheet-open{
  overflow:hidden!important;
}
.neo-vsheet__head{display:flex;gap:.75rem;align-items:flex-start;margin-bottom:1rem}
.neo-vsheet__thumb{width:4.5rem;height:4.5rem;border-radius:.55rem;overflow:hidden;background:#f1f5f9;flex-shrink:0}
.neo-vsheet__thumb img{width:100%;height:100%;object-fit:cover}
.neo-vsheet__price{font-size:1.25rem;font-weight:900;color:var(--pdp-accent)}
.neo-vsheet__stok{font-size:.75rem;color:var(--pdp-muted);font-weight:600;margin-top:.2rem}
.neo-vsheet__x{margin-left:auto;border:0;background:transparent;font-size:1.2rem;color:#64748b;padding:.2rem}
.neo-vsheet__block{margin-bottom:1rem}
.neo-vsheet__block h4{font-size:.8rem;font-weight:800;margin:0 0 .55rem;color:#0f172a;display:flex;justify-content:space-between;align-items:center}
.neo-vsheet__qty{display:flex;align-items:center;justify-content:flex-end;gap:.35rem}
.neo-vsheet__qty button{width:1.85rem;height:1.85rem;border:1px solid #cbd5e1;border-radius:.4rem;background:#fff;font-weight:800}
.neo-vsheet__qty input{width:2.6rem;text-align:center;border:1px solid #e2e8f0;border-radius:.4rem;height:1.85rem;font-weight:800}
.neo-vsheet__cta{width:100%;border:0;border-radius:.75rem;background:linear-gradient(90deg,#0369a1,#0284c7);color:#fff;font-weight:900;padding:1rem;font-size:.95rem}
.neo-vsheet__cta:disabled{background:#cbd5e1;color:#64748b}
a.neo-et-prod{text-decoration:none;color:inherit;display:block}

/* Lightbox gallery (Shopee-like) */
.neo-lb{position:fixed;inset:0;z-index:400;display:none;align-items:center;justify-content:center;padding:1rem}
.neo-lb.is-open{display:flex}
.neo-lb__mask{position:absolute;inset:0;background:rgba(15,23,42,.55)}
.neo-lb__box{position:relative;z-index:1;width:min(1100px,96vw);max-height:92vh;background:#fff;border-radius:.5rem;display:grid;grid-template-columns:minmax(0,1fr) 11.5rem;overflow:hidden;box-shadow:0 20px 50px rgba(15,23,42,.35)}
.neo-lb__main{position:relative;background:#f8fafc;min-height:min(70vh,520px);display:flex;align-items:center;justify-content:center}
.neo-lb__main img{max-width:100%;max-height:min(78vh,640px);object-fit:contain;position:relative;z-index:0;pointer-events:none}
.neo-lb__side{border-left:1px solid #e2e8f0;padding:.85rem .7rem;overflow:auto;background:#fff}
.neo-lb__title{font-size:.78rem;font-weight:800;color:#0f172a;line-height:1.35;margin:0 0 .65rem}
.neo-lb__thumbs{display:grid;grid-template-columns:1fr 1fr;gap:.4rem}
.neo-lb__thumb{border:2px solid transparent;border-radius:.3rem;padding:0;overflow:hidden;background:#f1f5f9;aspect-ratio:1;cursor:pointer}
.neo-lb__thumb img{width:100%;height:100%;object-fit:cover;display:block}
.neo-lb__thumb.is-on{border-color:var(--pdp-accent)}
.neo-lb__nav{position:absolute;top:50%;transform:translateY(-50%);width:2.4rem;height:2.4rem;border:0;border-radius:.35rem;background:rgba(15,23,42,.5);color:#fff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;z-index:5;pointer-events:auto}
.neo-lb__nav:hover{background:rgba(15,23,42,.75)}
.neo-lb__nav--prev{left:.75rem}
.neo-lb__nav--next{right:.75rem}
.neo-lb__close{position:absolute;top:.55rem;right:.55rem;z-index:3;width:2rem;height:2rem;border:0;border-radius:999px;background:rgba(15,23,42,.55);color:#fff;font-size:1.1rem;cursor:pointer}
.neo-lb__count{position:absolute;left:.75rem;bottom:.75rem;background:rgba(15,23,42,.6);color:#fff;font-size:11px;font-weight:700;padding:.2rem .55rem;border-radius:999px}

/* Review */
.neo-pdp__review-head{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:.85rem}
.neo-pdp__review-avg{display:flex;align-items:center;gap:.4rem;margin-top:.35rem;font-size:.85rem}
.neo-pdp__review-note{font-size:.68rem;font-weight:700;color:#94a3b8}
.neo-pdp__review-all{font-size:.75rem;font-weight:800;color:#0284c7;text-decoration:none;white-space:nowrap}
.neo-pdp__review-empty{font-size:.82rem;color:#64748b;font-weight:600;padding:.35rem 0 .2rem}
.neo-pdp__review-card{border-top:1px solid #f1f5f9;padding:.85rem 0}
.neo-pdp__review-top{display:flex;justify-content:space-between;gap:.5rem;align-items:flex-start}
.neo-pdp__review-user{font-size:.82rem;font-weight:800;color:#0f172a}
.neo-pdp__review-date{font-size:.68rem;font-weight:600;color:#94a3b8}
.neo-pdp__review-var{margin-top:.3rem;font-size:.72rem;font-weight:700;color:#64748b}
.neo-pdp__review-text{margin:.4rem 0 0;font-size:.84rem;line-height:1.45;color:#334155}
.neo-pdp__review-text.is-muted{color:#94a3b8;font-style:italic}
.neo-pdp__ulasan-block{margin-top:.85rem;padding-top:.75rem;border-top:1px solid #f1f5f9}
.neo-pdp__ulasan-title{margin:0 0 .55rem;font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:#64748b}

.neo-pdp__related{display:none}
.neo-pdp__buy-card{display:contents}
.neo-pdp__related-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.5rem;
  margin-bottom:.65rem;
}
.neo-pdp__related-head h3{
  margin:0;
  font-size:.72rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.04em;
  color:#64748b;
}
.neo-pdp__related-head a{
  font-size:.72rem;
  font-weight:800;
  color:#1e3a6e;
  text-decoration:none;
  white-space:nowrap;
}
.neo-pdp__related-list{
  display:flex;
  flex-direction:column;
  gap:.55rem;
}
.neo-pdp__related-item{
  display:flex;
  gap:.65rem;
  align-items:flex-start;
  text-decoration:none;
  color:inherit;
  padding:.35rem;
  margin:-.35rem;
  border-radius:.55rem;
}
.neo-pdp__related-thumb{
  width:3.6rem;
  height:3.6rem;
  border-radius:.5rem;
  overflow:hidden;
  flex-shrink:0;
  background:#f1f5f9;
  border:1px solid #e2e8f0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:#94a3b8;
  font-size:.9rem;
}
.neo-pdp__related-thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.neo-pdp__related-meta{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:.12rem;
}
.neo-pdp__related-name{
  font-size:.78rem;
  font-weight:700;
  color:#0f172a;
  line-height:1.35;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.neo-pdp__related-toko{
  font-size:.65rem;
  font-weight:700;
  color:#64748b;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.neo-pdp__related-price{
  font-size:.82rem;
  font-weight:900;
  color:#0284c7;
}
.neo-pdp__related-price em{
  margin-left:.35rem;
  font-style:normal;
  font-size:.68rem;
  font-weight:700;
  color:#94a3b8;
  text-decoration:line-through;
}

/* Mode PC: layout marketplace — media (gambar+varian) | beli (harga+share+pengiriman+ulasan+deskripsi) */
body:not(.neo-portal-app) .neo-pdp{
  --neo-pdp-max: min(96vw, 75rem);
  max-width: var(--neo-pdp-max);
  width: 100%;
  margin: 0 auto;
  box-sizing: border-box;
}
@media (min-width:1024px){
  body:not(.neo-portal-app) .neo-pdp{
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    grid-template-areas:
      "crumb crumb"
      "media buy"
      "below below";
    align-items: start;
    column-gap: 1.25rem;
    row-gap: 1rem;
    padding: 1rem clamp(1rem, 2vw, 1.75rem) 2.75rem;
    background: #eef2f6;
  }
  body:not(.neo-portal-app) .neo-pdp__crumb{
    grid-area: crumb;
    padding: 0 0 .15rem;
    font-size: .8rem;
    background: transparent;
  }
  body:not(.neo-portal-app) .neo-pdp__crumb-cur{
    max-width: min(100%, 42rem);
  }
  body:not(.neo-portal-app) .neo-pdp__top{
    display: none;
  }
  body:not(.neo-portal-app) .neo-pdp__col--media{
    grid-area: media;
    display: flex;
    flex-direction: column;
    gap: .85rem;
    min-width: 0;
  }
  body:not(.neo-portal-app) .neo-pdp__gallery-wrap{
    border-radius: .85rem;
    overflow: hidden;
    background: #fff;
    border: 1px solid #e2e8f0;
    width: 100%;
  }
  body:not(.neo-portal-app) .neo-pdp__gallery{
    /* Kotak ala Shopee — penuh kolom kiri */
    width: 100%;
    max-width: 100%;
    aspect-ratio: 1 / 1;
    height: auto;
    max-height: min(32rem, 56vh);
  }
  body:not(.neo-portal-app) .neo-pdp__slide img{
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;
    background: #fff;
  }
  body:not(.neo-portal-app) .neo-pdp__thumbs{
    padding: .55rem .75rem .7rem;
  }
  body:not(.neo-portal-app) .neo-pdp__thumb{
    width: 3.5rem;
    height: 3.5rem;
  }
  body:not(.neo-portal-app) .neo-pdp__thumbs{
    padding: .65rem .75rem .85rem;
  }
  body:not(.neo-portal-app) .neo-pdp__thumb{
    width: 4rem;
    height: 4rem;
  }
  body:not(.neo-portal-app) .neo-pdp__col--buy{
    grid-area: buy;
    display: flex;
    flex-direction: column;
    gap: .85rem;
    min-width: 0;
    width: 100%;
    background: transparent;
    border: none;
    border-radius: 0;
    overflow: visible;
    position: static;
    max-height: none;
  }
  body:not(.neo-portal-app) .neo-pdp__buy-card{
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    background: #fff;
    border-radius: .85rem;
    border: 1px solid #e2e8f0;
    overflow: hidden;
    position: sticky;
    top: 4.75rem;
    align-self: stretch;
    z-index: 4;
  }
  /* Satukan kartu di kolom beli */
  body:not(.neo-portal-app) .neo-pdp__body,
  body:not(.neo-portal-app) .neo-pdp__section--buy,
  body:not(.neo-portal-app) .neo-pdp__bar{
    margin: 0;
    border-radius: 0;
    border-bottom: 1px solid #f1f5f9;
    background: transparent;
    box-shadow: none;
  }
  body:not(.neo-portal-app) .neo-pdp__shop{
    border-bottom: 0;
    padding: 0;
    background: transparent;
  }
  body:not(.neo-portal-app) .neo-pdp__shop-logo{
    width: 3.35rem;
    height: 3.35rem;
    border-radius: .85rem;
  }
  body:not(.neo-portal-app) .neo-pdp__body{
    padding: 1rem 1.1rem 1.15rem;
  }
  body:not(.neo-portal-app) .neo-pdp__section--buy{
    padding: 1rem 1.1rem;
  }
  body:not(.neo-portal-app) .neo-pdp__bar{
    position: relative;
    bottom: auto;
    z-index: 5;
    margin: .85rem 0 0;
    border-radius: .75rem;
    border: 1px solid #e2e8f0;
    border-bottom: 1px solid #e2e8f0;
    background: #f8fafc;
    box-shadow: none;
    padding: .45rem;
  }
  body:not(.neo-portal-app) .neo-pdp__bar--inline{
    margin-top: 1rem;
  }
  /* Pengiriman singkat di kolom beli */
  body:not(.neo-portal-app) .neo-pdp__ship--inline{
    margin: .85rem 0 0;
    padding: .65rem 0 0;
    border-top: 1px solid #f1f5f9;
  }
  /* Blok bawah full-width: toko → spek → deskripsi → ulasan */
  body:not(.neo-portal-app) .neo-pdp__col--below{
    grid-area: below;
    display: flex;
    flex-direction: column;
    gap: .85rem;
    min-width: 0;
    width: 100%;
  }
  body:not(.neo-portal-app) .neo-pdp__shop-panel{
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: .85rem;
    padding: .85rem 1.1rem;
  }
  body:not(.neo-portal-app) .neo-pdp__shop-row{
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
  }
  body:not(.neo-portal-app) .neo-pdp__shop{
    flex: 1;
    min-width: 12rem;
    border: 0;
    padding: 0;
    background: transparent;
  }
  body:not(.neo-portal-app) .neo-pdp__shop-actions{
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
  }
  body:not(.neo-portal-app) .neo-pdp__shop-btn{
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .55rem .9rem;
    border-radius: .55rem;
    font-size: .78rem;
    font-weight: 800;
    text-decoration: none;
    background: #2563eb;
    color: #fff;
  }
  body:not(.neo-portal-app) .neo-pdp__shop-btn--outline{
    background: #fff;
    color: #1d4ed8;
    border: 1px solid #93c5fd;
  }
  body:not(.neo-portal-app) .neo-pdp__section--spec,
  body:not(.neo-portal-app) .neo-pdp__section--desc,
  body:not(.neo-portal-app) .neo-pdp__review{
    margin: 0;
    border-radius: .85rem;
    border: 1px solid #e2e8f0;
    background: #fff;
  }
  body:not(.neo-portal-app) .neo-pdp__related{
    display: block;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    background: #fff;
    border-radius: .85rem;
    border: 1px solid #e2e8f0;
    padding: .9rem 1rem 1rem;
    overflow: hidden;
  }
  body:not(.neo-portal-app) .neo-pdp__related-item:hover{
    background: #f8fafc;
  }
  body:not(.neo-portal-app) .neo-pdp__section--varian-under-img{
    margin: 0;
    border-radius: .85rem;
    border: 1px solid #e2e8f0;
    background: #fff;
  }
  body:not(.neo-portal-app) .neo-vsheet__panel{
    left: 50%;
    right: auto;
    width: min(28rem, 100%);
    transform: translate(-50%, 110%);
  }
  body:not(.neo-portal-app) .neo-vsheet.is-open .neo-vsheet__panel{
    transform: translate(-50%, 0);
  }
}

@media (max-width:900px){
  .neo-lb__box{grid-template-columns:1fr;width:min(96vw,520px)}
  .neo-lb__side{border-left:0;border-top:1px solid #e2e8f0;max-height:28vh}
  .neo-lb__thumbs{grid-template-columns:repeat(5,minmax(0,1fr))}
  .neo-lb__main{min-height:45vh}
}

/* Mode Android: dock fixed di atas bottom tabs */
body.neo-portal-app .neo-pdp{
  --pdp-pad-x: 16px;
  max-width:100%;
  margin:0 !important;
  width:100% !important;
  box-sizing:border-box !important;
  /* Padding di container — WebView sering buang padding anak saat display:contents */
  padding:0 var(--pdp-pad-x) 0 !important;
  display:flex;
  flex-direction:column;
}
/* Gallery + header: full-bleed keluar dari padding container (bar fixed sudah full width) */
body.neo-portal-app .neo-pdp__top,
body.neo-portal-app .neo-pdp__gallery-wrap{
  margin-left: calc(-1 * var(--pdp-pad-x)) !important;
  margin-right: calc(-1 * var(--pdp-pad-x)) !important;
  width: calc(100% + 2 * var(--pdp-pad-x)) !important;
  max-width: none !important;
  box-sizing: border-box !important;
}
body.neo-portal-app .neo-pdp__col--media,
body.neo-portal-app .neo-pdp__col--buy,
body.neo-portal-app .neo-pdp__col--below{
  display:contents;
}
body.neo-portal-app .neo-pdp__crumb{
  display:none;
}
body.neo-portal-app .neo-pdp__top{
  order:-20;
  top:0;
  position:sticky;
  z-index:25;
  background:#fff;
  border-bottom:1px solid #e2e8f0;
  box-shadow:0 1px 0 rgba(15,23,42,.04);
  padding:.55rem .9rem;
}
body.neo-portal-app.portal-hide-topbar .neo-pdp__top{
  padding-top:calc(.55rem + var(--portal-safe-t)) !important;
}
body.neo-portal-app .neo-pdp__top-name{
  max-width:none;
  font-size:.8rem;
}
body.neo-portal-app .neo-pdp--varian .neo-pdp__body > .neo-pdp__price-wrap > .neo-pdp__price{
  display:none;
}
body.neo-portal-app .neo-pdp--varian .neo-pdp__body > .neo-pdp__price-wrap{
  margin-bottom:0;
}
body.neo-portal-app .neo-pdp__price,
body.neo-portal-app .neo-pdp__varian-price{
  font-size:1.45rem;
}
body.neo-portal-app .neo-pdp__gallery-wrap{
  order:0;
}
body.neo-portal-app .neo-pdp__section--varian-under-img{
  order:5;
}
body.neo-portal-app .neo-pdp__body{
  order:10;
  padding:1.05rem 0 .9rem !important;
  box-sizing:border-box !important;
  width:100%;
  max-width:100%;
}
body.neo-portal-app .neo-pdp__ship--inline{
  display:none;
}
body.neo-portal-app .neo-pdp__share{
  flex-direction:column;
  gap:.45rem;
  margin-top:.75rem;
}
body.neo-portal-app .neo-pdp__share-fb,
body.neo-portal-app .neo-pdp__share-wa{
  width:100%;
  justify-content:center;
  box-sizing:border-box;
  padding:.55rem .75rem;
}
body.neo-portal-app .neo-pdp__meta{
  gap:.25rem .35rem;
  line-height:1.45;
}
/* Hindari display:contents bertingkat — WebView APK sering buang padding anak */
body.neo-portal-app .neo-pdp__buy-card{
  display:flex;
  flex-direction:column;
  order:10;
  width:100%;
  max-width:100%;
  box-sizing:border-box;
  background:#fff;
}
body.neo-portal-app .neo-pdp__buy-card > .neo-pdp__body{
  order:unset;
}
/* Produk sejenis & spek di bawah toko */
body.neo-portal-app .neo-pdp__shop-panel{
  order:80;
  padding:.9rem 0 !important;
  box-sizing:border-box !important;
  width:100%;
}
body.neo-portal-app .neo-pdp__shop-panel .neo-pdp__shop{
  padding:0;
  border-bottom:0;
  flex:1;
  min-width:0;
}
body.neo-portal-app .neo-pdp__shop-panel .neo-pdp__shop-logo{
  width:2.65rem;
  height:2.65rem;
  border-radius:.65rem;
}
body.neo-portal-app .neo-pdp__shop-row{
  flex-direction:column;
  align-items:stretch;
  gap:.55rem;
}
body.neo-portal-app .neo-pdp__shop-actions{
  display:none;
}
body.neo-portal-app .neo-pdp__spec{
  grid-template-columns:1fr;
  gap:0;
}
body.neo-portal-app .neo-pdp__spec li{
  padding:.5rem 0;
  gap:1rem;
}
body.neo-portal-app .neo-pdp__spec li strong{
  text-align:right;
  max-width:58%;
  word-break:break-word;
}
body.neo-portal-app .neo-pdp__section{
  padding:1rem 0 1.1rem !important;
  box-sizing:border-box !important;
  width:100%;
  max-width:100%;
}
body.neo-portal-app .neo-pdp__section--spec{ order: 85; }
body.neo-portal-app .neo-pdp__section--desc{ order: 88; }
body.neo-portal-app .neo-pdp__review{
  order: 90;
  padding:1rem 0 1.1rem !important;
  box-sizing:border-box !important;
}
body.neo-portal-app .neo-pdp__section--varian-under-img{
  padding: .85rem 0 1rem !important;
  box-sizing:border-box !important;
}
body.neo-portal-app .neo-pdp__name{
  padding:0;
  word-break:break-word;
}
body.neo-portal-app .neo-pdp__note{
  box-sizing:border-box;
}
body.neo-portal-app .neo-pdp__related{
  display:block;
  order: 100;
  margin: .65rem 0 1rem;
  padding: .9rem .85rem 1rem;
  background:#fff;
  border-radius:.85rem;
  border:1px solid #e2e8f0;
  box-sizing:border-box;
}
body.neo-portal-app .neo-pdp__gallery{
  max-height: min(100vw, 70vh);
}
body.neo-portal-app:has(.neo-pdp) .neo-portal-frame{
  transform:none;
}
@media (max-width: 1023px) {
  body:not(.neo-portal-app) .neo-pdp__gallery {
    max-height: min(100vw, 70vh);
  }
}
body.neo-portal-app .neo-portal-main:has(.neo-pdp){
  padding-left:0 !important;
  padding-right:0 !important;
  padding-top:0 !important;
  padding-bottom:calc(var(--portal-tab-h) + var(--portal-safe-b) + 3.25rem) !important;
}
body.neo-portal-app .neo-pdp__bar{
  position:fixed;
  left:0;
  right:0;
  bottom:calc(var(--portal-tab-h) + var(--portal-safe-b));
  z-index:220;
  width:100%;
  max-width:100%;
  margin:0;
  border-radius:0;
  border-left:0;
  border-right:0;
  border-bottom:0;
  border-top:1px solid #e2e8f0;
  transform:none;
  box-shadow:0 -4px 16px rgba(15,23,42,.1);
  padding:.38rem .5rem;
  gap:.3rem;
  background:#fff;
  box-sizing:border-box;
}
body.neo-portal-app .neo-pdp__bar--inline{
  margin:0;
  background:#fff;
  box-shadow:none;
}
body.neo-portal-app .neo-pdp__bar-ico{
  width:2.35rem;
  min-width:2.35rem;
  height:2.45rem;
  font-size:7px;
}
body.neo-portal-app .neo-pdp__bar-cart{
  font-size:.72rem;
  padding:.58rem .5rem;
  white-space:nowrap;
}
body.neo-portal-app .neo-pdp__bar-cta{
  font-size:.78rem;
  padding:.58rem .65rem;
  flex:1.15 1 auto;
}
body.neo-portal-app:has(.neo-pdp) .neo-ai-chat-wrap{
  display:none !important;
  visibility:hidden !important;
  pointer-events:none !important;
}
body.neo-portal-app:has(.neo-pdp) .neo-ai-chat-panel{
  display:none !important;
}
/* FAB pesanan aktif: jangan nutup tombol Beli/Checkout di PDP */
body.neo-portal-app:has(.neo-pdp) .neo-aktif-fab{
  left: .75rem;
  right: auto;
  bottom: calc(var(--portal-tab-h, 3.5rem) + var(--portal-safe-b, 0px) + 4.35rem);
  z-index: 210;
  max-width: min(11.5rem, calc(100vw - 1.5rem));
}
body.neo-portal-app .neo-vsheet{
  position:fixed;
  inset:0;
  /* Di atas .neo-portal-tabs (z=200) + sticky bar; samakan dengan ke-note-sheet */
  z-index:12000;
}
body.neo-portal-app .neo-vsheet__panel{
  left:0;
  right:0;
  width:auto;
  transform:translateY(110%);
  bottom:0;
  max-height:min(88vh, calc(100% - 2rem));
  /* Tab disembunyikan saat open — cukup safe-area (home indicator iPhone) */
  padding-bottom:calc(1rem + var(--portal-safe-b, env(safe-area-inset-bottom, 0px)));
}
body.neo-portal-app .neo-vsheet.is-open .neo-vsheet__panel{
  transform:translateY(0);
}
body.neo-portal-app .neo-lb{
  z-index:12010;
}

/* Guest / publik desktop: lebar ala Shopee (2 kolom), mobile tetap stack */
body.neo-pdp-guest{
  background: #f5f5f5 !important;
}
body.neo-pdp-guest .neo-pdp-guest-main{
  width: min(100%, 75rem) !important;
  max-width: 75rem !important;
  margin: 0 auto !important;
  padding: 0 !important;
}
body.neo-pdp-guest .neo-pdp{
  --neo-pdp-max: min(96vw, 75rem);
  max-width: var(--neo-pdp-max) !important;
  width: 100% !important;
  margin: 0 auto !important;
}
@media (min-width: 1024px){
  body.neo-pdp-guest .neo-pdp{
    display: grid !important;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr) !important;
    grid-template-areas:
      "crumb crumb"
      "media buy"
      "below below" !important;
    align-items: start !important;
    column-gap: 1.25rem !important;
    row-gap: 1rem !important;
    padding: 1rem clamp(1rem, 2vw, 1.75rem) 2.5rem !important;
    background: transparent !important;
    flex-direction: unset !important;
  }
  body.neo-pdp-guest .neo-pdp__crumb{
    grid-area: crumb;
    padding: 0 0 .15rem !important;
    font-size: .8rem;
  }
  body.neo-pdp-guest .neo-pdp__top{
    display: none !important;
  }
  body.neo-pdp-guest .neo-pdp__col--media{
    grid-area: media;
    display: flex !important;
    flex-direction: column !important;
    gap: .85rem;
    min-width: 0;
    width: auto !important;
  }
  body.neo-pdp-guest .neo-pdp__col--buy{
    grid-area: buy;
    display: flex !important;
    flex-direction: column !important;
    gap: .85rem;
    min-width: 0;
    width: auto !important;
  }
  body.neo-pdp-guest .neo-pdp__col--below{
    grid-area: below;
    display: flex !important;
    flex-direction: column !important;
    gap: .85rem;
    width: 100% !important;
  }
  body.neo-pdp-guest .neo-pdp__gallery-wrap{
    border-radius: .85rem !important;
    border: 1px solid #e2e8f0 !important;
    overflow: hidden;
    background: #fff;
  }
  body.neo-pdp-guest .neo-pdp__gallery{
    aspect-ratio: 1 / 1 !important;
    max-height: min(32rem, 56vh) !important;
    height: auto !important;
  }
  body.neo-pdp-guest .neo-pdp__buy-card{
    position: sticky !important;
    top: 4.75rem !important;
    border-radius: .85rem !important;
    border: 1px solid #e2e8f0 !important;
    overflow: hidden !important;
    background: #fff;
  }
  body.neo-pdp-guest .neo-pdp__related{
    margin: 0 !important;
  }
  body.neo-pdp-guest .neo-pdp-guest-bar{
    padding-left: max(1rem, calc((100vw - 75rem) / 2 + 1rem));
    padding-right: max(1rem, calc((100vw - 75rem) / 2 + 1rem));
  }
}
@media (max-width: 1023px){
  body.neo-pdp-guest .neo-pdp{
    display: flex !important;
    flex-direction: column !important;
    max-width: 100% !important;
    padding: 0 0 1.25rem !important;
    background: transparent !important;
    gap: 0 !important;
  }
  body.neo-pdp-guest .neo-pdp__top{
    border-radius: 0 !important;
    margin: 0 !important;
  }
  body.neo-pdp-guest .neo-pdp__col--media,
  body.neo-pdp-guest .neo-pdp__col--buy{
    display: block !important;
    width: 100% !important;
  }
  body.neo-pdp-guest .neo-pdp__gallery-wrap{
    border-radius: 0 !important;
    border-left: 0 !important;
    border-right: 0 !important;
  }
  body.neo-pdp-guest .neo-pdp__gallery{
    aspect-ratio: 1 / 1 !important;
    max-height: min(100vw, 28rem) !important;
  }
  body.neo-pdp-guest .neo-pdp__buy-card{
    position: static !important;
    border-radius: 0 !important;
    border-left: 0 !important;
    border-right: 0 !important;
  }
  body.neo-pdp-guest .neo-pdp__related{
    margin: .75rem .75rem 0 !important;
  }
}
