@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800;900&display=swap');

:root {
  --mpx-ink: #0b1224;
  --mpx-muted: #64748b;
  --mpx-blue: #1455d9;
  --mpx-blue-2: #0f2f88;
  --mpx-sky: #32a8ff;
  --mpx-gold: #f6b73c;
  --mpx-green: #18b981;
  --mpx-red: #ef4444;
  --mpx-line: rgba(15, 23, 42, .105);
  --mpx-soft: #f5f8fd;
  --mpx-card: rgba(255, 255, 255, .96);
  --mpx-shadow: 0 18px 48px rgba(15, 23, 42, .105);
  --mpx-shadow-strong: 0 28px 80px rgba(15, 23, 42, .16);
}

/* Bangjeff-style homepage sections */
body.home-marketplace {
  --home-bg: #151517;
  --home-panel: #1f1f22;
  --home-card: #29292c;
  --home-card-soft: #343436;
  --home-line: rgba(255, 255, 255, .08);
  --home-text: #f8fafc;
  --home-muted: rgba(248, 250, 252, .72);
  --home-orange: #ff7a1a;
  background: var(--home-bg) !important;
  color: var(--home-text) !important;
}

body.home-marketplace::before {
  display: none !important;
}

body.home-marketplace .site-header {
  background: rgba(31, 31, 34, .96) !important;
  color: var(--home-text) !important;
  border-bottom-color: var(--home-line) !important;
  box-shadow: 0 18px 42px rgba(0, 0, 0, .25) !important;
}

body.home-marketplace .brand,
body.home-marketplace .brand-text-logo,
body.home-marketplace h1,
body.home-marketplace h2,
body.home-marketplace h3,
body.home-marketplace #catalogTitle,
body.home-marketplace .brand-card h3 {
  color: var(--home-text) !important;
}

body.home-marketplace p,
body.home-marketplace small,
body.home-marketplace .text-muted,
body.home-marketplace #catalogSubtitle {
  color: var(--home-muted) !important;
}

body.home-marketplace .search-wrap,
body.home-marketplace .member-balance-pill,
body.home-marketplace .member-profile-btn,
body.home-marketplace .member-login-btn {
  background: rgba(255, 255, 255, .08) !important;
  color: var(--home-text) !important;
  border-color: var(--home-line) !important;
  box-shadow: none !important;
}

body.home-marketplace .search-input {
  color: var(--home-text) !important;
}

body.home-marketplace .hero-carousel {
  margin-top: 24px !important;
  max-height: none !important;
  border-radius: 26px !important;
  border: 1px solid var(--home-line) !important;
  background: transparent !important;
  box-shadow: 0 24px 70px rgba(0, 0, 0, .34) !important;
  cursor: grab;
  touch-action: pan-y;
}

body.home-marketplace .hero-track.dragging {
  cursor: grabbing;
}

body.home-marketplace .hero-slide {
  user-select: none;
}

body.home-marketplace .hero-slide img {
  min-height: clamp(190px, 31vw, 430px) !important;
  border-radius: 26px !important;
  user-select: none;
  -webkit-user-drag: none;
}

body.home-marketplace .hero-dot {
  background: rgba(255, 255, 255, .28) !important;
}

body.home-marketplace .hero-dot.active {
  background: var(--home-orange) !important;
}

body.home-marketplace .home-feature-section {
  margin-top: 32px;
  padding: clamp(18px, 2.5vw, 28px);
  border-radius: 24px;
  background: var(--home-panel);
  border: 1px solid var(--home-line);
  box-shadow: 0 20px 54px rgba(0, 0, 0, .24);
}

body.home-marketplace .home-feature-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 20px;
}

body.home-marketplace .home-feature-head h2 {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 6px;
  font-size: clamp(1.45rem, 3vw, 2rem);
  letter-spacing: .04em !important;
  text-transform: uppercase;
}

body.home-marketplace .home-feature-head h2 i {
  color: var(--home-orange);
}

body.home-marketplace .home-feature-head p {
  margin: 0;
}

body.home-marketplace .flash-countdown {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

body.home-marketplace .flash-countdown span {
  min-width: 44px;
  min-height: 44px;
  display: inline-grid;
  place-items: center;
  border-radius: 999px;
  background: #111113;
  color: #fff;
  font-weight: 900;
}

body.home-marketplace .flash-sale-row {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(260px, 360px);
  gap: 16px;
  overflow-x: auto;
  padding-bottom: 10px;
  scroll-snap-type: x proximity;
}

body.home-marketplace .flash-sale-card {
  scroll-snap-align: start;
  min-height: 210px;
  display: grid;
  grid-template-columns: 96px minmax(0, 1fr);
  gap: 18px;
  padding: 18px;
  border-radius: 18px;
  background: var(--home-card-soft);
  color: var(--home-text);
  border: 1px solid rgba(255, 255, 255, .06);
  text-decoration: none;
}

body.home-marketplace .flash-product-image {
  align-self: start;
  width: 86px;
  height: 86px;
  border-radius: 18px;
  background: #424245;
  display: grid;
  place-items: center;
  overflow: hidden;
}

body.home-marketplace .flash-product-image img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 10px;
}

body.home-marketplace .flash-product-image span {
  font-weight: 900;
}

body.home-marketplace .flash-product-body {
  min-width: 0;
}

body.home-marketplace .flash-product-body h3 {
  margin: 0 0 6px;
  font-size: 1rem;
  line-height: 1.28;
}

body.home-marketplace .flash-product-body p {
  margin: 0 0 14px;
  font-size: .88rem;
}

body.home-marketplace .flash-product-body strong {
  display: block;
  color: var(--home-orange);
  font-size: 1.25rem;
  font-weight: 900;
}

body.home-marketplace .flash-product-body del {
  color: #ff5f63;
  font-weight: 700;
}

body.home-marketplace .flash-progress {
  height: 8px;
  margin: 14px 0 8px;
  border-radius: 999px;
  background: #161618;
  overflow: hidden;
}

body.home-marketplace .flash-progress span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--home-orange);
}

body.home-marketplace .trending-brand-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

body.home-marketplace .trending-brand-card {
  min-height: 118px;
  display: grid;
  grid-template-columns: 88px minmax(0, 1fr);
  align-items: center;
  gap: 18px;
  padding: 12px;
  border-radius: 18px;
  color: var(--home-text);
  background:
    radial-gradient(circle at 12px 12px, rgba(255, 255, 255, .12) 1px, transparent 1px) 0 0 / 12px 12px,
    #252528;
  border: 1px solid rgba(255, 255, 255, .06);
  text-decoration: none;
}

body.home-marketplace .trending-brand-card:first-child {
  border-color: rgba(255, 122, 26, .55);
  box-shadow: inset 0 0 0 1px rgba(255, 122, 26, .15);
}

body.home-marketplace .trending-brand-logo {
  position: relative;
  width: 88px;
  height: 88px;
  border-radius: 16px;
  overflow: hidden;
  background: #1a1a1c;
}

body.home-marketplace .trending-brand-logo img,
body.home-marketplace .trending-brand-logo .brand-fallback {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  border-radius: 16px !important;
}

body.home-marketplace .trending-brand-card h3 {
  margin: 0 0 8px;
  font-size: 1rem;
}

body.home-marketplace .trending-brand-card p {
  margin: 0;
  font-size: .88rem;
}

body.home-marketplace .category-tabs {
  margin-top: 34px !important;
}

body.home-marketplace .category-tab {
  background: #242427 !important;
  color: var(--home-text) !important;
  border-color: var(--home-line) !important;
  box-shadow: none !important;
}

body.home-marketplace .category-tab.active {
  background: var(--home-orange) !important;
  border-color: var(--home-orange) !important;
}

body.home-marketplace .brand-card {
  background: var(--home-card) !important;
  color: var(--home-text) !important;
  border-color: var(--home-line) !important;
  box-shadow: none !important;
}

body.home-marketplace .brand-grid .brand-card img,
body.home-marketplace .brand-card .brand-logo {
  background: #202023 !important;
}

body.home-marketplace .suggestion-banner,
body.home-marketplace .content-info {
  background: var(--home-panel) !important;
  color: var(--home-text) !important;
  border-color: var(--home-line) !important;
}

@media (max-width: 900px) {
  body.home-marketplace .trending-brand-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  body.home-marketplace .site-header {
    grid-template-columns: 1fr auto auto !important;
  }

  body.home-marketplace .search-wrap {
    display: none !important;
  }

  body.home-marketplace .shell {
    width: min(100% - 28px, 1280px) !important;
    padding-top: 18px !important;
  }

  body.home-marketplace .hero-carousel {
    margin-inline: 0 !important;
    border-radius: 20px !important;
  }

  body.home-marketplace .hero-slide img {
    min-height: 164px !important;
    border-radius: 20px !important;
  }

  body.home-marketplace .home-feature-head {
    align-items: flex-start;
    flex-direction: column;
  }

  body.home-marketplace .flash-sale-row {
    grid-auto-columns: minmax(245px, 78vw);
  }

  body.home-marketplace .flash-sale-card {
    grid-template-columns: 72px minmax(0, 1fr);
  }

  body.home-marketplace .flash-product-image {
    width: 68px;
    height: 68px;
  }

  body.home-marketplace .trending-brand-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }

  body.home-marketplace .trending-brand-card {
    min-height: 98px;
    grid-template-columns: 64px minmax(0, 1fr);
    gap: 12px;
  }

  body.home-marketplace .trending-brand-logo {
    width: 64px;
    height: 64px;
  }
}

html {
  background: #f7faff;
}

body {
  font-family: 'Plus Jakarta Sans', system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  color: var(--mpx-ink) !important;
  background:
    linear-gradient(180deg, rgba(243, 248, 255, .98) 0%, #ffffff 42%, #f7faff 100%) !important;
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: -1;
  background:
    linear-gradient(90deg, rgba(20, 85, 217, .045) 1px, transparent 1px),
    linear-gradient(rgba(20, 85, 217, .035) 1px, transparent 1px);
  background-size: 42px 42px;
  mask-image: linear-gradient(180deg, black 0, transparent 62%);
}

a {
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

button,
input,
textarea,
select {
  font-family: inherit !important;
}

header,
.site-header,
.payment-header,
.topbar {
  min-height: 82px !important;
  background: rgba(255, 255, 255, .9) !important;
  color: var(--mpx-ink) !important;
  border-bottom: 1px solid var(--mpx-line) !important;
  box-shadow: 0 12px 34px rgba(15, 23, 42, .06) !important;
  backdrop-filter: blur(18px) saturate(1.2) !important;
}

.brand,
.site-brand {
  color: var(--mpx-ink) !important;
  font-weight: 900 !important;
  letter-spacing: 0 !important;
}

.nav-link,
.back-link,
.btn-header {
  border: 1px solid rgba(20, 85, 217, .16) !important;
  border-radius: 999px !important;
  background: #fff !important;
  color: var(--mpx-blue-2) !important;
  box-shadow: 0 10px 22px rgba(15, 23, 42, .06) !important;
  font-weight: 900 !important;
}

.hero,
.hero-section,
.hero-banner,
.hero-slider,
.banner-slider,
.suggestion-banner {
  border-radius: 28px !important;
  border: 1px solid rgba(20, 85, 217, .12) !important;
  box-shadow: var(--mpx-shadow-strong) !important;
  overflow: hidden !important;
}

.search-box,
.search-wrap,
.search-container,
.catalog-search {
  border: 1px solid rgba(20, 85, 217, .16) !important;
  background: rgba(255, 255, 255, .94) !important;
  box-shadow: 0 18px 44px rgba(15, 23, 42, .08) !important;
  border-radius: 999px !important;
}

.search-box input,
.catalog-search input,
input[type="search"] {
  color: var(--mpx-ink) !important;
}

.category-tabs,
.category-filter,
.categories-row,
.category-list {
  gap: 12px !important;
}

.category-tab,
.category-pill,
.category-filter button,
.category-card {
  border-radius: 999px !important;
  border: 1px solid rgba(20, 85, 217, .14) !important;
  background: rgba(255, 255, 255, .95) !important;
  color: var(--mpx-blue-2) !important;
  box-shadow: 0 10px 24px rgba(15, 23, 42, .055) !important;
  font-weight: 900 !important;
}

.category-tab.active,
.category-pill.active,
.category-filter button.active,
.category-card.active {
  background: linear-gradient(135deg, #0f2f88, #1455d9) !important;
  color: #fff !important;
  border-color: rgba(20, 85, 217, .7) !important;
}

.brand-card,
.product-card,
.catalog-card,
.product-option,
.payment-method-card,
.card,
.panel,
.section-card,
.step-card,
.side-card,
.summary-card,
.payment-card,
.detail-card,
.order-card,
.info-card,
.checkout-card,
.brand-faq-item {
  border-radius: 22px !important;
  border: 1px solid var(--mpx-line) !important;
  background: var(--mpx-card) !important;
  color: var(--mpx-ink) !important;
  box-shadow: var(--mpx-shadow) !important;
}

.brand-card:hover,
.product-card:hover,
.catalog-card:hover,
.product-option:hover,
.payment-method-card:hover {
  transform: translateY(-3px);
  border-color: rgba(20, 85, 217, .28) !important;
  box-shadow: var(--mpx-shadow-strong) !important;
}

.product-option.selected,
.payment-method-card.selected {
  border-color: rgba(20, 85, 217, .72) !important;
  background:
    linear-gradient(#fff, #fff) padding-box,
    linear-gradient(135deg, #1455d9, #32a8ff) border-box !important;
  box-shadow: 0 20px 54px rgba(20, 85, 217, .18) !important;
}

.brand-card img,
.brand-logo,
.payment-logo,
.product-image,
.catalog-card img {
  border-radius: 18px !important;
}

h1,
h2,
h3,
.section-title,
.page-title {
  letter-spacing: 0 !important;
  color: var(--mpx-ink) !important;
}

p,
small,
.muted,
.note,
.subtitle,
.text-muted {
  color: var(--mpx-muted) !important;
}

.step-no {
  background: linear-gradient(135deg, #eaf3ff, #dcecff) !important;
  color: var(--mpx-blue-2) !important;
  border: 1px solid rgba(20, 85, 217, .16) !important;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .7) !important;
}

.required,
.payment-badge,
.eyebrow,
.badge {
  border-radius: 999px !important;
  background: #eaf3ff !important;
  color: var(--mpx-blue-2) !important;
  border: 1px solid rgba(20, 85, 217, .12) !important;
  font-weight: 900 !important;
}

.confirm-btn,
.btn-primary,
button.primary,
.primary-btn {
  border-radius: 16px !important;
  background: linear-gradient(135deg, #1455d9, #0f2f88) !important;
  color: #fff !important;
  border: 0 !important;
  box-shadow: 0 16px 34px rgba(20, 85, 217, .28) !important;
  font-weight: 900 !important;
}

.confirm-btn:hover,
.btn-primary:hover,
button.primary:hover,
.primary-btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 20px 44px rgba(20, 85, 217, .34) !important;
}

.input-field,
.form-input,
.form-control,
input,
textarea,
select {
  border-radius: 16px !important;
  border: 1px solid rgba(15, 23, 42, .14) !important;
  background: rgba(255, 255, 255, .96) !important;
  color: var(--mpx-ink) !important;
}

.input-field:focus,
.form-input:focus,
.form-control:focus,
input:focus,
textarea:focus,
select:focus {
  border-color: rgba(20, 85, 217, .62) !important;
  box-shadow: 0 0 0 4px rgba(20, 85, 217, .12) !important;
  outline: none !important;
}

.summary-total strong,
.total-price,
.price,
.product-price,
#summaryTotal,
#modalTotal,
#detailTotal,
#qrisAmount {
  color: var(--mpx-blue) !important;
  font-weight: 900 !important;
}

.status,
.pay-alert,
.notice-box,
.refund-box {
  border-radius: 18px !important;
  border: 1px solid rgba(20, 85, 217, .14) !important;
  background: #eef6ff !important;
  color: #17356f !important;
}

.status.error,
.pay-alert.danger,
.notice-box.danger {
  border-color: rgba(239, 68, 68, .22) !important;
  background: #fff1f2 !important;
  color: #991b1b !important;
}

.empty-state,
.empty {
  border-radius: 22px !important;
  border: 1px dashed rgba(20, 85, 217, .18) !important;
  background: rgba(247, 250, 255, .86) !important;
  color: var(--mpx-muted) !important;
}

.payment-shell,
.checkout-layout,
main.page-shell,
main {
  position: relative;
}

.checkout-layout {
  align-items: start !important;
}

.side-card {
  position: sticky !important;
  top: 104px !important;
}

.summary-card {
  background: rgba(255, 255, 255, .98) !important;
  backdrop-filter: blur(18px) !important;
}

.order-modal-card,
.modal-content,
.login-card {
  border-radius: 26px !important;
  border: 1px solid rgba(255, 255, 255, .14) !important;
  box-shadow: 0 34px 100px rgba(2, 6, 23, .4) !important;
}

.brand-faq-question {
  color: var(--mpx-ink) !important;
}

.brand-faq-answer {
  color: var(--mpx-muted) !important;
}

/* Homepage marketplace surface */
.site-header {
  display: grid !important;
  grid-template-columns: auto minmax(280px, 1fr) auto !important;
  gap: clamp(14px, 3vw, 30px) !important;
}

.shell {
  width: min(100% - 36px, 1280px) !important;
  margin: 0 auto !important;
  padding-top: 28px !important;
}

.hero-carousel {
  max-height: 330px !important;
  background: linear-gradient(135deg, #0a1f5c, #1455d9) !important;
}

.hero-slide img {
  width: 100% !important;
  min-height: 220px !important;
  object-fit: cover !important;
}

.hero-controls {
  margin-top: 18px !important;
}

.hero-controls button,
.hero-controls span {
  border-radius: 999px !important;
  background: rgba(15, 47, 136, .28) !important;
}

.category-tabs {
  margin: 34px 0 28px !important;
  padding: 4px 2px 10px !important;
  overflow-x: auto !important;
  scrollbar-width: thin !important;
}

.category-tabs button {
  min-height: 54px !important;
  padding: 0 22px !important;
  white-space: nowrap !important;
}

.section-head {
  display: flex !important;
  align-items: end !important;
  justify-content: space-between !important;
  margin: 12px 0 18px !important;
}

.section-head h2,
#catalogTitle {
  font-size: clamp(2rem, 4.8vw, 3.4rem) !important;
  line-height: 1 !important;
  margin: 0 !important;
}

.brand-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(164px, 1fr)) !important;
  gap: 18px !important;
}

.brand-grid .brand-card,
.brand-card {
  min-height: 206px !important;
  padding: 16px !important;
  display: grid !important;
  align-content: space-between !important;
}

.brand-grid .brand-card img,
.brand-card .brand-img,
.brand-card .brand-logo {
  width: 100% !important;
  aspect-ratio: 1.14 / 1 !important;
  object-fit: contain !important;
  background: linear-gradient(180deg, #f2f7ff, #eaf1fb) !important;
  padding: 18px !important;
}

.brand-card h3,
.brand-card strong,
.brand-card-title {
  color: var(--mpx-ink) !important;
  font-weight: 900 !important;
  text-align: center !important;
}

.suggestion-banner,
.content-info {
  margin-top: 34px !important;
  background: #fff !important;
  color: var(--mpx-ink) !important;
}

.content-info {
  border-radius: 28px !important;
  border: 1px solid var(--mpx-line) !important;
  box-shadow: var(--mpx-shadow) !important;
  padding: clamp(22px, 4vw, 36px) !important;
}

.site-footer {
  margin-top: 42px !important;
  background: #071331 !important;
  color: #eaf1ff !important;
}

.site-footer p,
.site-footer a,
.site-footer small {
  color: rgba(234, 241, 255, .78) !important;
}

/* Payment/check pages */
.payment-shell .card,
.payment-shell .payment-card,
.payment-shell .summary-card,
.payment-shell .detail-card {
  background: rgba(255, 255, 255, .97) !important;
}

.payment-shell .card-head {
  border-bottom: 1px solid var(--mpx-line) !important;
  background: linear-gradient(180deg, #fff, #f7faff) !important;
}

.qr-box,
.qris-box,
canvas {
  border-radius: 22px !important;
}

.panel {
  border-radius: 26px !important;
}

.panel-body {
  background: rgba(255, 255, 255, .96) !important;
}

.badge {
  display: inline-flex !important;
  align-items: center !important;
  min-height: 32px !important;
  padding: 0 12px !important;
}

@media (max-width: 900px) {
  header,
  .site-header,
  .payment-header {
    min-height: 72px !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  .checkout-layout,
  .payment-shell,
  main:not(.shell) {
    width: min(100% - 24px, 720px) !important;
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }

  .site-header {
    grid-template-columns: 1fr auto !important;
  }

  .site-header .search-wrap {
    grid-column: 1 / -1 !important;
    order: 3 !important;
    width: 100% !important;
  }

  .shell {
    width: min(100% - 24px, 720px) !important;
    padding-top: 18px !important;
  }

  .brand-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 14px !important;
  }

  .side-card {
    position: static !important;
  }

  .summary-card {
    position: sticky !important;
    bottom: 12px !important;
    z-index: 30 !important;
    border-radius: 22px !important;
  }

  .brand-card,
  .product-card,
  .catalog-card,
  .product-option,
  .payment-method-card,
  .step-card,
  .side-card,
  .summary-card {
    border-radius: 18px !important;
  }
}

@media (max-width: 560px) {
  body {
    background: linear-gradient(180deg, #f7faff 0%, #fff 48%, #f6f9ff 100%) !important;
  }

  header,
  .site-header {
    min-height: 68px !important;
  }

  .brand,
  .site-brand {
    font-size: 1.12rem !important;
  }

  .nav-link,
  .back-link,
  .btn-header {
    min-height: 42px !important;
    padding: 0 12px !important;
    font-size: .82rem !important;
  }

  h1 {
    font-size: clamp(1.8rem, 9vw, 2.5rem) !important;
  }

  h2 {
    font-size: clamp(1.35rem, 7vw, 2rem) !important;
  }

  .voucher-row,
  .summary-card {
    grid-template-columns: 1fr !important;
  }

  .confirm-btn,
  .btn-primary {
    width: 100%;
  }
}
