@import url("https://fonts.googleapis.com/css2?family=IBM+Plex+Sans+Condensed:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;1,100;1,200;1,300;1,400;1,500;1,600;1,700&display=swap");
/* ============ TOKENS ============ */

* {
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
}
body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  font-family: "IBM Plex Sans Condensed", sans-serif;
  -webkit-font-smoothing: antialiased;
}
a {
  color: inherit;
  text-decoration: none;
}
button {
  font-family: inherit;
  cursor: pointer;
}
.container {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 20px;
}
.icon-search {
  width: 18px;
  height: 18px;
  fill: currentColor;
  flex-shrink: 0;
}

.text-primary {
  color: var(--primary);
}

.alert {
  padding: 12px 16px;
  margin: 8px 0;
  border-radius: 12px;
  font-size: 0.82rem;
  font-weight: 500;
  line-height: 1.4;
  display: flex;
  align-items: flex-start;
  gap: 10px;
  position: relative;
  z-index: 5;
}

.alert .info-icon {
  font-size: 1.1rem;
  line-height: 1;
  flex-shrink: 0;
}

.alert-pending,
.bg-pending {
  background-color: var(--pending);
  color: var(--pending-hover);
  border: 1px solid var(--pending);
}

.alert-success,
.bg-success {
  background-color: var(--success);
  color: var(--success-hover);
  border: 1px solid var(--success);
}

.alert-warning,
.bg-warning {
  background-color: var(--warning);
  color: var(--warning-hover);
  border: 1px solid var(--warning);
}

.alert-danger,
.bg-danger {
  background-color: var(--danger);
  color: var(--danger-hover);
  border: 1px solid var(--danger);
}

.nav-tabs-container {
  display: flex;
  background-color: var(--bg-alt);
  margin: 0 15px 15px 15px;
  border-radius: 12px;
  padding: 4px;
  border: 1px solid var(--bg-alt);
}

.nav-tab {
  flex: 1;
  background: transparent;
  border: none;
  color: var(--text);
  padding: 10px;
  font-size: 0.9rem;
  font-weight: 600;
  border-radius: 25px;
  cursor: pointer;
  transition: all 0.3s ease;
  text-align: center;
}

.nav-tab.active {
  background: var(--primary);
  color: #fff;
  box-shadow: 0 4px 12px rgba(37, 99, 235, 0.3);
  border-radius: 25px;
}

.tab-content {
  display: none;
  padding: 0 15px 20px 15px;
  flex-grow: 1;
}

.tab-content.active {
  display: block;
}
.show {
  display: block;
}
.hides {
  display: none;
}

/* ============ HEADER ============ */
.site-header {
  position: sticky;
  top: 0;
  z-index: 200;
  background: var(--bg-alt);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--border);
  height: var(--header-h);
}
.header-inner {
  max-width: 1400px;
  margin: 0 auto;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 20px;
  gap: 20px;
}
.header-left {
  display: flex;
  align-items: center;
  gap: 14px;
}

.logo {
  display: flex;
  align-items: center;
  gap: 8px;
  font-weight: 800;
  font-size: 19px;
  letter-spacing: 0.5px;
  flex-shrink: 0;
}

.main-nav {
  display: flex;
  align-items: center;
  gap: 6px;
  flex: 1;
  padding-left: 10px;
}
.nav-link {
  padding: 9px 14px;
  border: none;
  background: none;
  color: var(--text-dim);
  font-size: 0.875rem;
  font-weight: 500;
  border-radius: 8px;
  display: flex;
  align-items: center;
  gap: 4px;
  transition: 0.18s;
}
.nav-link:hover,
.nav-link.active {
  color: var(--primary);
}
.chev {
  font-size: 10px;
  margin-left: 2px;
}
.nav-dropdown {
  position: relative;
}
.nav-dropdown-menu {
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  min-width: 200px;
  background: var(--bg-alt);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 6px;
  display: none;
  flex-direction: column;
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.5);
}
.nav-dropdown-menu a {
  padding: 9px 12px;
  border-radius: 7px;
  font-size: 14px;
  color: var(--text-dim);
}
.nav-dropdown-menu a:hover {
  background: var(--bg);
  color: #fff;
}
.nav-dropdown.open .nav-dropdown-menu {
  display: flex;
}

.header-right {
  display: flex;
  align-items: center;
  gap: 12px;
}

.search-trigger {
  display: flex;
  align-items: center;
  gap: 10px;
  background: var(--bg-alt);
  border: 1px solid var(--border);
  padding: 9px 12px;
  border-radius: 25px;
  color: var(--text-dim);
  min-width: 435px;
  font-size: 12px;
}
.search-trigger span {
  flex: 1;
  text-align: left;
}
.search-trigger .kbd {
  flex: none;
  background: var(--bg-alt);
  border: 1px solid var(--border);
  padding: 2px 7px;
  border-radius: 5px;
  font-size: 11px;
  color: var(--text);
}
.search-icon-btn {
  display: none;
  background: var(--bg-alt);
  border: 1px solid var(--border);
  width: 36px;
  height: 36px;
  border-radius: 50%;
  align-items: center;
  justify-content: center;
  color: var(--text);
}

.lang-switch {
  position: relative;
}
.lang-btn {
  display: flex;
  align-items: center;
  gap: 6px;
  background: none;
  border: none;
  padding: 8px 12px;
  color: var(--text-dim);
  font-size: 12px;
  font-weight: 500;
}
.flag img {
  width: 17px;
  height: auto;
}
.lang-dropdown {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  min-width: 190px;
  background: var(--bg-alt);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 6px;
  display: none;
  flex-direction: column;
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.5);
  z-index: 50;
}
.lang-switch.open .lang-dropdown {
  display: flex;
}
.lang-option {
  background: none;
  border: none;
  color: var(--text-dim);
  text-align: left;
  padding: 9px 10px;
  border-radius: 7px;
  font-size: 12px;
  display: flex;
  gap: 8px;
  align-items: center;
}
.lang-option:hover {
  background: var(--bg);
  color: #fff;
}

.auth-buttons {
  display: flex;
  gap: 10px;
}
.btn {
  padding: 9px 18px;
  border-radius: 9px;
  font-size: 14px;
  font-weight: 700;
  border: none;
  display: inline-block;
  transition: 0.18s;
}
.btn-ghost {
  background: transparent;
  color: var(--text);
  border: 1px solid var(--border);
}
.btn-ghost:hover {
  background: var(--bg);
  color: #fff;
}
.btn-primary {
  background: var(--primary);
  color: #fff;
}
.btn-primary:hover {
  background: var(--primary-hover);
  color: var(--primary);
}

.hamburger-btn {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 4px;
  width: 36px;
  height: 36px;
  background: var(--bg-alt);
  border: 1px solid var(--border);
  border-radius: 50%;
}
.hamburger-btn span {
  width: 16px;
  height: 2px;
  background: var(--text);
  margin: 0 auto;
  border-radius: 2px;
}

.user-profile {
  position: relative;
}

.user-avatar-btn {
  display: flex;
  align-items: center;
  gap: 10px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 4px 8px;
  border-radius: 8px;
}

.user-avatar-btn:hover {
  color: var(--primary);
}

.avatar {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: var(--primary);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: bold;
  font-size: 14px;
}

.user-name {
  font-size: 12px;
  font-weight: 600;
  color: var(--text);
}

.profile-dropdown {
  position: absolute;
  right: 0;
  top: calc(100% + 8px);
  background: var(--bg-alt);
  border-radius: 12px;
  width: 220px;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
  border: 1px solid var(--border);
  display: none;
  overflow: hidden;
  z-index: 200;
}

.profile-dropdown a {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  color: var(--text);
  text-decoration: none;
  font-size: 14px;
  transition: background 0.15s ease;
}

.profile-dropdown a:hover {
  background-color: var(--primary);
  color: #fff;
}

.profile-dropdown a.logout-btn {
  color: var(--danger);
  border-top: 1px solid #f1f5f9;
}

.profile-dropdown a.logout-btn:hover {
  background: var(--danger);
  color: #fff;
}

.profile-dropdown i {
  width: 20px;
}

/* ============ SEARCH MODAL ============ */
.search-overlay {
  position: fixed;
  inset: 0;
  background: rgba(5, 7, 14, 0.75);
  backdrop-filter: blur(3px);
  z-index: 400;
  display: none;
  align-items: flex-start;
  justify-content: center;
  padding-top: 12vh;
}
.search-overlay.open {
  display: flex;
}
.search-modal {
  width: 92%;
  max-width: 560px;
  background: var(--bg-alt);
  border: 1px solid var(--border);
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.6);
  animation: popIn 0.18s ease;
}
@keyframes popIn {
  from {
    transform: translateY(-10px);
    opacity: 0;
  }
  to {
    transform: translateY(0);
    opacity: 1;
  }
}
.search-modal-input {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 16px 18px;
  border-bottom: 1px solid var(--border);
}
.search-modal-input input {
  flex: 1;
  background: none;
  border: none;
  outline: none;
  color: var(--text);
  font-size: 12px;
}
.search-close {
  background: var(--bg-alt);
  border: 1px solid var(--border);
  color: var(--text-dim);
  padding: 4px 9px;
  border-radius: 6px;
  font-size: 12px;
}
.search-suggest {
  padding: 16px 18px;
}
.search-suggest-title {
  margin: 0 0 10px;
  font-size: 12.5px;
  color: var(--text-faint);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.search-suggest-list {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}
.search-suggest-list span {
  font-size: 12px;
  color: var(--text-dim);
  text-align: center;
}
.search-suggest-list span img {
  display: block;
  margin: 0 auto;
  width: 60px;
  height: 60px;
  border-radius: 8px;
  margin-bottom: 8px;
  transition: all 0.3s ease;
}
.search-suggest-list span:hover {
  color: var(--heading);
}
.search-suggest-list span:hover img {
  border: 1px solid var(--primary);
  scale: 1.1;
}

/* ============ MOBILE SIDEBAR ============ */
.sidebar-overlay {
  position: fixed;
  inset: 0;
  background: rgba(5, 7, 14, 0.65);
  z-index: 290;
  display: none;
}
.sidebar-overlay.open {
  display: block;
}
.mobile-sidebar {
  position: fixed;
  top: 0;
  right: 0;
  height: 100%;
  width: 78%;
  max-width: 320px;
  background: var(--bg-alt);
  border-right: 1px solid var(--border);
  z-index: 300;
  transform: translateX(100%);
  transition: transform 0.32s cubic-bezier(0.4, 0, 0.2, 1);
  display: flex;
  flex-direction: column;
  overflow-y: auto;
}
.mobile-sidebar.open {
  transform: translateX(0);
}
.sidebar-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px;
  border-bottom: 1px solid var(--border);
}
.sidebar-close {
  background: none;
  border: none;
  color: var(--text-dim);
  font-size: 26px;
  line-height: 1;
}
.sidebar-auth {
  display: flex;
  gap: 10px;
  padding: 16px 18px;
}
.sidebar-auth .btn {
  flex: 1;
  text-align: center;
}
.sidebar-nav {
  display: flex;
  flex-direction: column;
  padding: 6px 10px 24px;
}
.sidebar-link {
  padding: 12px 12px;
  border-radius: 9px;
  color: var(--text-dim);
  font-weight: 500;
  font-size: 0.875rem;
}
.sidebar-link.active,
.sidebar-link:hover {
  background: var(--bg);
  color: #fff;
}
.sidebar-link.sub {
  font-weight: 500;
  font-size: 14px;
  padding-left: 22px;
  color: var(--text-dim);
}
.sidebar-group-title {
  margin: 12px 12px 2px;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: var(--text);
}

/* ============ HERO ============ */
.hero-sections {
  text-align: center;
  background: linear-gradient(
    180deg,
    rgba(11, 15, 25, 0.4) 0%,
    var(--bg-alt) 100%
  );
  background-image: url("../../../upload/bg_hero.webp");
  background-size: cover;
  background-repeat: no-repeat;
  width: 100%;
  height: 100%;
  border-bottom: 1px solid var(--border);
  overflow: hidden;
  margin-bottom: 25px;
}

.hero-overlay {
  padding: 70px 20px 50px;
  background: linear-gradient(
    to top,
    rgba(6, 9, 18, 0.95) 15%,
    rgba(6, 9, 18, 0.55) 60%,
    rgba(6, 9, 18, 0) 100%
  );
  transition:
    transform 0.35s cubic-bezier(0.4, 0, 0.2, 1),
    opacity 0.35s ease;
  align-content: center;
}

.hero-sections h1 {
  font-size: 42px;
  font-weight: 800;
  color: var(--primary);
  margin-bottom: 12px;
  letter-spacing: -0.5px;
}

.hero-sections p {
  font-size: 14px;
  color: var(--heading);
  max-width: 600px;
  margin: 0 auto;
  line-height: 1.6;
}
.leaderboard-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.leaderboard-card {
  background: none;
  padding: 0;
}
.leaderboard-card .card-title {
  position: absolute;
  background: var(--panel-2);
  border: 1px solid var(--border);
  padding: 8px 15px;
  font-size: 0.875rem;
  line-height: 1.25rem;
  color: var(--heading);
  font-weight: 700;
  border-top-left-radius: 1rem;
  border-top-right-radius: 1rem;
}
.leaderboard-card .ranking-list {
  display: flex;
  flex-direction: column;
  margin-top: 37px;
  background: var(--bg-alt);
  border: 1px solid var(--border);
  border-top-right-radius: 1rem;
  border-bottom-left-radius: 1rem;
  border-bottom-right-radius: 1rem;
}
.leaderboard-card .ranking-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 12px;
  font-size: 0.875rem;
  line-height: 1.25rem;
  transition: background 0.2s;
  border-top: 1px solid var(--border);
}
.leaderboard-card .ranking-item:hover {
  background: rgba(255, 255, 255, 0.03);
}
.leaderboard-card .ranking-item:first-child {
  border-top: none;
}
.leaderboard-card .ranking-left {
  display: flex;
  align-items: center;
  gap: 12px;
}

.leaderboard-card .rank-num {
  font-weight: 700;
  width: 24px;
  color: var(--heading);
}

.leaderboard-card .username {
  font-weight: 600;
  color: #e5e7eb;
}

.leaderboard-card .medal-icon {
  font-size: 14px;
}

.leaderboard-card .medal-gold,
.leaderboard-card .top-1 {
  color: #facc15;
}
.leaderboard-card .medal-silver,
.leaderboard-card .top-2 {
  color: #cbd5e1;
}
.leaderboard-card .medal-bronze,
.leaderboard-card .top-3 {
  color: #d97706;
}

.leaderboard-card .amount {
  font-weight: 700;
  color: var(--heading);
}

.hero-section {
  background-image:
    linear-gradient(
      rgba(5, 5, 5, 0.8) 0%,
      rgba(12, 101, 191, 0) 50%,
      rgba(5, 5, 5, 0.8) 100%
    ),
    url("../../../upload/bg_slide.jpeg");
  background-size: cover;
  padding: 20px;
  margin: 0 auto;
}
.hero-carousel {
  position: relative;
  border-radius: 22px;
  height: auto;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.4);
}
.hero-track {
  display: flex;
  width: 100%;
  transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}
.hero-slide {
  flex: 0 0 100%;
  box-sizing: border-box;
  width: 100%;
  height: 100%;
}

.hero-slide::after {
  content: "";
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(
    115deg,
    rgba(255, 255, 255, 0.04) 0 2px,
    transparent 2px 40px
  );
  pointer-events: none;
}
.hero-content {
  position: relative;
  z-index: 2;
  padding: 0 60px;
  max-width: 640px;
}
.hero-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(255, 255, 255, 0.12);
  border: 1px solid rgba(255, 255, 255, 0.25);
  padding: 6px 14px;
  border-radius: 20px;
  font-weight: 700;
  font-size: 12.5px;
  letter-spacing: 1px;
  margin-bottom: 14px;
}
.hero-badge-mark {
  width: 18px;
  height: 18px;
  border-radius: 5px;
  background: #fff;
  color: var(--primary);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  font-weight: 900;
}
.hero-eyebrow {
  color: var(--warning);
  font-weight: 800;
  font-size: 15px;
  margin: 0 0 4px;
  letter-spacing: 0.5px;
}
.hero-content h1 {
  margin: 0 0 14px;
  font-size: 34px;
  line-height: 1.15;
  font-weight: 900;
  text-shadow: 0 4px 20px rgba(0, 0, 0, 0.35);
}
.hero-content h1 .dot {
  color: var(--warning);
}
.hero-sub {
  margin: 0 0 18px;
  font-size: 0.875rem;
  color: rgba(255, 255, 255, 0.85);
  font-weight: 500;
}
.hero-socials {
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-size: 12.5px;
  color: rgba(255, 255, 255, 0.75);
}

.hero-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 38px;
  height: 38px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.3);
  background: rgba(0, 0, 0, 0.3);
  color: #fff;
  font-size: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 5;
  transition: 0.2s;
}
.hero-arrow:hover {
  background: rgba(0, 0, 0, 0.55);
}
.hero-arrow-left {
  left: 16px;
}
.hero-arrow-right {
  right: 16px;
}
.hero-dots {
  position: absolute;
  bottom: 16px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 7px;
  z-index: 5;
}
.hero-dots .dot-item {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.35);
  transition: 0.2s;
}
.hero-dots .dot-item.active {
  background: #fff;
  width: 22px;
  border-radius: 5px;
}

/* ============ FLASH SALE ============ */
.flash-section {
  background: var(--bg-alt);
  border: 1px solid var(--border);
  border-radius: 0.75rem;
  padding: 10px 10px 20px;
  margin-top: 25px;
}
.flash-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 18px;
  flex-wrap: wrap;
  gap: 14px;
  border-bottom: 1px solid var(--border);
}
.flash-title-box {
  display: flex;
  align-items: center;
  gap: 16px;
}
.flash-tag {
  text-align: center;
  line-height: 1.25;
  padding: 8px;
}
.countdown {
  display: flex;
  align-items: center;
  gap: 6px;
}
.cd-unit {
  text-align: center;
  min-width: 35px;
}
.cd-unit span {
  display: block;
  font-size: 18px;
  font-weight: 800;
  color: #ffffff;
}
.cd-unit small {
  font-size: 9.5px;
  color: var(--text-dim);
  letter-spacing: 0.5px;
}
.cd-sep {
  color: var(--text-dim);
  font-weight: 700;
}
.flash-more {
  font-size: 12px;
  font-weight: 700;
  color: var(--primary);
}

.flash-carousel-wrap {
  overflow: hidden;
  padding-bottom: 6px;
}
.flash-track {
  display: flex;
  gap: 16px;
  transition: transform 0.6s cubic-bezier(0.25, 1, 0.5, 1);
  will-change: transform;
}
.flash-card {
  flex: 0 0 360px;
  background: var(--panel);
  border: 2px solid var(--border);
  border-radius: 14px;
  overflow: hidden;
  position: relative;
  transition: border-color 0.3s;
}
.flash-card:hover {
  border: 2px solid var(--primary);
}
/* .flash-thumb{height:110px;position:relative;display:flex;align-items:center;padding:0 14px;gap:10px;overflow:hidden;}
.flash-thumb .art{width:44px;height:44px;border-radius:10px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:900;color:#fff;}
.flash-thumb .thumb-title{font-size:12px;font-weight:700;line-height:1.3;}
.flash-badge{position:absolute;top:10px;right:10px;background:var(--warning);color:#3a2600;font-size:10.5px;font-weight:900;padding:5px 9px;border-radius:7px;transform:rotate(3deg);} */
.flash-body {
  padding: 0px 0px 0px;
  margin-top: -10px;
}
/* .flash-body .product-name{font-size:12px;font-weight:700;color:var(--text-dim);margin:0 0 8px;}
.flash-price{font-size:17px;font-weight:800;color:#fff;margin:0;}
.flash-price-old{font-size:12px;color:var(--text-faint);text-decoration:line-through;margin:2px 0 0;} */
.flash-stock {
  margin-top: 0;
  background: var(--bg-alt);
  border-bottom-left-radius: 6px;
  border-bottom-right-radius: 6px;
  height: 25px;
  position: relative;
}
.flash-stock::after {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 72%;
  background: var(--primary);
}
.flash-stock-label {
  font-size: 10px;
  color: #fff;
  text-align: center;
  display: block;
  position: relative;
  z-index: 1;
  align-content: center;
  margin-top: 10px;
  padding-top: 5px;
  font-weight: 700;
}
.flash-card-box {
  display: flex;
  height: 150px;
  flex: 0 0 360px;
  overflow: hidden;
  position: relative;
}

.card-col-1 {
  flex: 0 0 30%;
  height: 100%;
  position: relative;
  overflow: hidden;
  background: linear-gradient(135deg, #1e3c72, #2a5298);
}

.card-col-1 img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.card-col-2 {
  flex: 0 0 55%;
  padding: 16px 8px;
  display: flex;
  flex-direction: column;
  justify-content: top;
  gap: 4px;
}

.subtitle {
  font-size: 10px;
  font-weight: 700;
  color: var(--primary);
  text-transform: uppercase;
}

.title {
  font-size: 12px;
  font-weight: 700;
  color: #ffffff;
  margin-top: -2px;
}

.price-container {
  display: flex;
  flex-direction: column;
}

.current-price {
  font-size: 24px;
  font-weight: 900;
  color: var(--primary);
  margin-bottom: 5px;
}

.strike-price {
  font-size: 12px;
  font-weight: 900;
  color: var(--text-dim);
  text-decoration: line-through;
}

.card-col-3 {
  flex: 0 0 15%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  position: relative;
  padding-left: 10px;
}

.flash-tag-content {
  text-align: center;
  color: #000;
}

.flash-tag-content img {
  position: absolute;
  top: -2px;
  right: 0;
  width: 5rem;
  height: auto;
}

/* ============ SECTION SHARED ============ */
.section-title {
  font-size: 19px;
  font-weight: 800;
  margin: 0 0 6px;
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--heading);
}
.section-sub {
  color: var(--text);
  font-size: 12px;
  margin: 0 0 22px;
}
.popular-section,
.category-section,
.article-section {
  padding: 34px 0;
}

/* ============ POPULAR GRID ============ */
.popular-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
}
.popular-item {
  display: flex;
  align-items: center;
  gap: 12px;
  background: var(--populer);
  background-image: url("../../../upload/abstract_bg.png");
  background-repeat: no-repeat;
  background-position: 50%;
  background-size: cover;
  border: 2px solid var(--populer);
  border-radius: 12px;
  padding: 12px;
  transition: border-color 0.2s;
}
.popular-item:hover {
  border: 2px solid var(--primary);
}
.popular-thumb {
  width: 60px;
  height: 60px;
  border-radius: 6px;
  overflow: hidden;
  flex-shrink: 0;
  transition: transform 0.35s ease;
}
.popular-thumb img {
  width: 100%;
  height: 100%;
  transition: transform 0.35s ease;
}
.popular-item:hover .popular-thumb {
  transform: scale(1.18);
}
.popular-info .p-name {
  font-size: 16px;
  font-weight: 700;
  margin: 0 0 2px;
  color: var(--heading);
}
.popular-info .p-pub {
  font-size: 14px;
  color: var(--text);
  margin: 0;
}

/* ============ TABS + GAME GRID ============ */
.tab-bar-wrap {
  position: relative;
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 24px;
}
.tab-bar {
  display: flex;
  gap: 10px;
  overflow-x: auto;
  padding-bottom: 4px;
  scroll-behavior: smooth;
  flex: 1;
}
.tab-bar::-webkit-scrollbar {
  height: 0;
}
.tab-arrow {
  display: none;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 8px;
  background: var(--primary);
  border: 1px solid var(--border);
  color: #fff;
  font-size: 12px;
  transition: 0.18s;
}
.tab-arrow:hover {
  color: #fff;
  border-color: var(--primary);
}
.tab-arrow.is-disabled {
  opacity: 0.35;
  pointer-events: none;
}
.tab-btn {
  white-space: nowrap;
  background: var(--bg-alt);
  border: 1px solid var(--border);
  color: var(--text);
  padding: 10px 16px;
  border-radius: 25px;
  font-size: 12px;
  font-weight: 700;
  transition: 0.18s;
}
.tab-btn:hover {
  color: #fff;
}
.tab-btn.active {
  background: var(--primary);
  color: #fff;
  border-color: transparent;
}

.game-grid.wide {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 14px;
}
.wide .game-card {
  border-radius: 14px;
  overflow: hidden;
  background: var(--bg-alt);
  background-size: cover;
  background-position: center;
  border: 2px solid var(--bg);
  position: relative;
  height: 250px;
  transition:
    transform 0.3s ease,
    border-color 0.3s;
}
.wide .game-card:hover {
  transform: scale(1.05);
  border: 2px solid var(--primary);
}
.wide .game-overlay {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 2;
  padding: 28px 12px 12px;
  background: linear-gradient(
    to top,
    rgba(6, 9, 18, 0.95) 15%,
    rgba(6, 9, 18, 0.55) 60%,
    rgba(6, 9, 18, 0) 100%
  );
  transform: translateY(100%);
  opacity: 0;
  transition:
    transform 0.35s cubic-bezier(0.4, 0, 0.2, 1),
    opacity 0.35s ease;
  height: 250px;
  align-content: end;
}
.wide .game-card:hover .game-overlay {
  transform: translateY(0);
  opacity: 1;
}
.wide .game-overlay .g-name {
  font-size: 14px;
  font-weight: 800;
  letter-spacing: 0.3px;
  margin: 0;
  text-transform: uppercase;
  color: #fff;
  white-space: nowrap;
  width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
}
.wide .game-overlay .g-brand {
  font-size: 12px;
  color: var(--text);
  margin-top: 3px;
  display: flex;
  align-items: center;
  gap: 4px;
  white-space: nowrap;
  width: 100%;
  overflow: hidden;
}

.game-grid.boxed {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 24px;
}
.boxed .game-card {
  border-radius: 14px;
  overflow: hidden;
  background: var(--bg-alt);
  background-size: cover;
  background-position: center bottom;
  border: 2px solid var(--bg);
  position: relative;
  height: 250px;
  transition:
    transform 0.3s ease,
    border-color 0.3s;
}
.boxed .game-card:hover {
  transform: scale(1.05);
  rotate: 3deg;
  border: 2px solid var(--primary);
}
.boxed .game-overlay {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 2;
  padding: 12px;
  background: var(--panel);
  transition:
    transform 0.35s cubic-bezier(0.4, 0, 0.2, 1),
    opacity 0.35s ease;
  align-content: center;
}
.boxed .game-overlay .g-name {
  font-size: 14px;
  font-weight: 900;
  letter-spacing: 0.3px;
  margin: 0;
  text-transform: uppercase;
  color: #fff;
  white-space: nowrap;
  width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
}
.boxed .game-overlay .g-brand {
  font-size: 12px;
  color: var(--text);
  margin-top: 3px;
  display: flex;
  align-items: center;
  gap: 4px;
  white-space: nowrap;
  width: 100%;
  overflow: hidden;
}

.show-more-wrap {
  text-align: center;
  margin-top: 26px;
}
.btn-show-more {
  background: var(--bg-alt);
  border: 1px solid var(--border);
  color: var(--text);
  padding: 11px 26px;
  border-radius: 10px;
  font-size: 12px;
  font-weight: 700;
  transition:
    transform 0.3s ease,
    border-color 0.3s;
}
.btn-show-more:hover {
  color: var(--primary);
  border-color: var(--primary);
}
.btn-show-more.is-hidden {
  display: none;
}

/* ============ ARTICLES ============ */
.article-carousel-wrap {
  overflow: hidden;
  padding-bottom: 6px;
  margin-bottom: 20px;
}
.article-track {
  display: flex;
  flex-wrap: nowrap;
  gap: 20px;
  will-change: transform;
}
.article-card {
  flex: 0 0 calc(33.333% - 14px);
  max-width: calc(33.333% - 14px);
  box-sizing: border-box;
  overflow: hidden;
  background: none;
  border: none;
  transition: border-color 0.2s;
}
.article-card:hover {
  border-color: var(--primary);
}
.article-thumb {
  height: 225px;
  border-radius: 14px;
}
.article-thumb img {
  width: 100%;
  height: 100%;
  display: block;
  margin: 0 auto;
  border-radius: 14px;
}
.article-body {
  padding: 16px 5px;
}
.article-body h3 {
  font-size: 15px;
  line-height: 1.4;
  margin: 0 0 10px;
  font-weight: 700;
  color: var(--heading);
}
.article-body .art-source {
  font-size: 12px;
  font-weight: 700;
  color: var(--text);
  margin: 0 0 4px;
}
.article-body .art-sub {
  font-size: 12px;
  color: var(--text);
  margin: 0;
  line-height: 1.4;
}

.artikel-track {
  display: flex;
  gap: 20px;
  will-change: transform;
}
.artikel-card {
  flex: 0 0 calc(33.333% - 14px);
  max-width: calc(33.333% - 14px);
  box-sizing: border-box;
  overflow: hidden;
  background: none;
  border: none;
  transition: border-color 0.2s;
}
.artikel-card:hover {
  border-color: var(--primary);
}
.artikel-thumb {
  height: 225px;
  border-radius: 14px;
}
.artikel-thumb img {
  width: 100%;
  height: 100%;
  display: block;
  margin: 0 auto;
  border-radius: 14px;
}
.artikel-body {
  padding: 16px 5px;
}
.artikel-body h3 {
  font-size: 15px;
  line-height: 1.4;
  margin: 0 0 10px;
  font-weight: 700;
  color: var(--heading);
}
.artikel-body .art-source {
  font-size: 12px;
  font-weight: 700;
  color: var(--text);
  margin: 0 0 4px;
}
.artikel-body .art-sub {
  font-size: 12px;
  color: var(--text);
  margin: 0;
  line-height: 1.4;
}
.link-underline {
  font-size: 12px;
  font-weight: 700;
  color: var(--primary);
  text-decoration: underline;
}

/* ============ ORDER PAGE ============ */

.banner_product {
  width: 100%;
  height: 300px;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
}
.bg_product {
  border-bottom: 1px solid var(--border);
  background-color: hsl(60 9.09% 97.84%;);
  color: hsl(60 9.09% 97.84%);
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgMTkyMCAxMDAwIj48c3R5bGUgdHlwZT0idGV4dC9jc3MiPnBhdGh7b3BhY2l0eTouMTtjbGlwLXBhdGg6dXJsKCNjbGlwUGF0aCk7ZmlsbDp1cmwoI2xpbmVhckdyYWRpZW50KTt9PC9zdHlsZT48Y2xpcFBhdGggaWQ9ImNsaXBQYXRoIj48cmVjdCB3aWR0aD0iMTkyMCIgaGVpZ2h0PSIxMDAwIi8+PC9jbGlwUGF0aD48bGluZWFyR3JhZGllbnQgaWQ9ImxpbmVhckdyYWRpZW50IiB4MT0iMCUiIHkxPSIwJSIgeDI9IjkwJSIgeTI9IjAlIj48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9ImhzbCgwIDAlIDEwMCUvMSkiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9ImhzbCgwIDAlIDEwMCUvMCkiLz48L2xpbmVhckdyYWRpZW50PjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE5MjAsMTAwMClzY2FsZSgtMSwtMSkiPjxwYXRoIGQ9Ik0xMzg0LjUgMzQzLjJMMTkyLjcgMTUzNWwtMjEzLjUtM0wxMzgzIDEyOC4ybDEuNSAyMTV6Ii8+PHBhdGggZD0iTTE5MTkuNyA0NDguM0wxMzU5IDEwMDlsLTEwMC40LTEuNEwxOTE5IDM0Ny4xbC43IDEwMS4yeiIvPjxwYXRoIGQ9Ik0xMTc2LjcgNTE0LjNMNjE2IDEwNzVsLTEwMC40LTEuNEwxMTc2IDQxMy4xbC43IDEwMS4yeiIvPjxwYXRoIGQ9Ik02NDQuNyA0NTcuM0w4NCAxMDE4bC0xMDAuNC0xLjRMNjQ0IDM1Ni4xbC43IDEwMS4yeiIvPjxwYXRoIGQ9Ik0xMzg3LjcgNDQ4LjNMODI3IDEwMDlsLTEwMC40LTEuNEwxMzg3IDM0Ny4xbC43IDEwMS4yeiIvPjxwYXRoIGQ9Ik0xMjUwLjEgNDkzLjhsLTU0NSA1NDUtNTIuNyA0My42IDY0MS45LTY0MS45LTQ0LjIgNTMuM3oiLz48cGF0aCBkPSJNODkxLjEgNjM5LjFMLTc3OCAyMzA4LjNsLTI5OC45LTQuMkw4ODkgMzM4LjFsMi4xIDMwMXoiLz48cGF0aCBkPSJNMTg3MC40IDQxOS44TC0yOC44IDIzMTlsLTM0MC4xLTQuOEwxODY4IDc3LjNsMi40IDM0Mi41eiIvPjxwYXRoIGQ9Ik05MDguNCA0MzYuOEwtOTkwLjggMjMzNmwtMzQwLjEtNC44TDkwNiA5NC4zbDIuNCAzNDIuNXoiLz48cGF0aCBkPSJNMTYzMi40IDUxNS44TC0yNjYuOCAyNDE1bC0zNDAuMS00LjhMMTYzMCAxNzMuM2wyLjQgMzQyLjV6Ii8+PHBhdGggZD0iTTExNzYuMyA1NjcuMUwtMTQ0NS42IDMxODlsLTQ2OS41LTYuNkwxMTczIDk0LjNsMy4zIDQ3Mi44eiIvPjxwYXRoIGQ9Ik0xNDI3LjMgNTgwLjFMLTExOTQuNiAzMjAybC00NjkuNS02LjZMMTQyNCAxMDcuM2wzLjMgNDcyLjh6Ii8+PHBhdGggZD0iTTE2NDkuNSA4ODAuMkw0NTcuNyAyMDcybC0yMTMuNS0zTDE2NDggNjY1LjJsMS41IDIxNXoiLz48cGF0aCBkPSJNNjc1LjggNTIyLjJsLTI2MjEuOSAyNjIxLjktNDY5LjQtNi42TDY3Mi41IDQ5LjRsMy4zIDQ3Mi44eiIvPjxwYXRoIGQ9Ik0yNTk1LjkgNTIyLjJMLTI2IDMxNDQuMWwtNDY5LjUtNi42TDI1OTIuNiA0OS40bDMuMyA0NzIuOHoiLz48L2c+PC9zdmc+);
  background-repeat: repeat-x;
  background-position: top;
  background-size:
    clamp(60em, 100rem, 100em) auto,
    cover;
}
.product-header {
  display: flex;
  gap: 26px;
  padding: 10px 40px 15px;
  max-width: 1400px;
  margin: 0 auto;
  align-items: flex-start;
  max-height: 150px;
}
.product-thumb {
  perspective: 25em;
}
.product-thumb img {
  position: relative;
  top: -6rem;
  transform: rotateY(20deg) rotateX(-4deg) !important;
  transform-origin: left center;
  width: 200px;
  height: 200px;
}

.product-thumb img.shadow-2xl {
  --tw-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
  --tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);
}

.product-thumb img.object-cover {
  -o-object-fit: cover;
  object-fit: cover;
}

.product-thumb img.rounded-2xl {
  border-radius: 1rem;
}

.product-thumb img.aspect-square {
  aspect-ratio: 1/1;
}
.product-info {
  flex: 1;
  padding-top: 4px;
}
.product-info .product-hide {
  display: block;
}
.product-info h1 {
  font-size: 1.125rem;
  font-weight: 900;
  letter-spacing: 0.5px;
  margin-bottom: 4px;
}
.product-info .publisher {
  color: var(--muted);
  font-size: 1.125rem;
  margin-bottom: 18px;
}
.product-badgese {
  display: none;
}
.product-badges {
  display: flex;
  gap: 34px;
  flex-wrap: wrap;
}
.product-badges .badge {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  color: #cfd6e6;
}
.product-badges .badge img {
  width: 2rem;
  height: 2rem;
}

.trust-strip {
  background: var(--bg-alt);
  border-bottom: 1px solid var(--border);
  margin: 15px;
  border-radius: 25px;
}
.trust-inner {
  max-width: 1400px;
  margin: 0 auto;
  padding: 12px 40px;
  display: flex;
  justify-content: center;
  gap: 60px;
  flex-wrap: wrap;
}
.trust-item {
  display: flex;
  align-items: center;
  gap: 9px;
  font-size: 12px;
  color: #cfd6e6;
  font-weight: 500;
}
.trust-item .icon {
  color: var(--blue-light);
  font-size: 16px;
}

.main-layout {
  max-width: 1400px;
  margin: 30px auto 0;
  padding: 15px;
  display: grid;
  grid-template-columns: 1fr 380px;
  gap: 26px;
  align-items: start;
}
.panel {
  background: var(--bg-alt);
  border-radius: var(--radius);
  overflow: hidden;
  margin-bottom: 26px;
}
.panel-header {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 0;
  background: var(--panel);
  border-bottom: 1px solid var(--border);
  color: #fff;
}
.step-num {
  width: 48px;
  height: 48px;
  background: var(--primary);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  font-size: 14px;
  flex-shrink: 0;
  border-top-left-radius: var(--radius);
}
.panel-header h2 {
  font-size: 16px;
  font-weight: 700;
}
.panel-body {
  padding: 24px 12px;
}
.panel-body p,
.panel-body li {
  font-size: 0.875rem;
  font-weight: 400;
}
.panel-body .box-logo {
  display: block;
  margin: 0 auto;
  width: 200px;
  height: auto;
  padding: 15px;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 12px;
}
.panel-body .box-logo img {
  display: block;
  margin: 0 auto;
  width: auto;
  height: 50px;
}
.form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin-bottom: 10px;
}
.field label {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  color: var(--muted);
  margin-bottom: 8px;
}
.field label svg {
  width: 20px;
  height: 20px;
  fill: var(--text);
}
.field label .info-dot {
  width: 14px;
  height: 14px;
  border: 1px solid var(--muted);
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 10px;
}
.field input,
.field select {
  width: 100%;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 25px;
  padding: 12px 14px;
  color: var(--text);
  font-size: 12px;
  outline: none;
  transition: border-color 0.15s ease;
}
.field input:focus {
  border-color: var(--primary);
}
.field input::placeholder {
  color: var(--text-dim);
  font-size: 10px;
}
.field textarea {
  width: 100%;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 12px 14px;
  color: var(--text);
  font-size: 14px;
  outline: none;
  transition: border-color 0.15s ease;
}
.find-id-btn {
  margin-top: 16px;
  background: none;
  border: none;
  color: var(--text-dim);
  font-size: 12px;
  display: flex;
  align-items: center;
  gap: 7px;
  cursor: pointer;
  text-decoration: underline dotted;
}
.find-id-btn:hover {
  color: var(--text);
}
.find-id-btn .info-dot {
  width: 15px;
  height: 15px;
  border: 1px solid var(--text-dim);
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 10px;
  flex-shrink: 0;
}
.calc-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 1.5rem;
}

.calc-title {
  color: var(--primary);
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
}

.calc-value-display {
  font-size: 2.5rem;
  font-weight: 700;
  line-height: 1;
}
.slider-container {
  margin-bottom: 2.5rem;
}

.custom-slider {
  width: 100%;
  height: 8px;
  background: #1f293d;
  border-radius: 4px;
  outline: none;
  -webkit-appearance: none;
  margin-bottom: 0.75rem;
  cursor: pointer;
}

.custom-slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  width: 22px;
  height: 22px;
  background: #ffffff;
  border-radius: 50%;
  cursor: pointer;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
}

.slider-labels {
  display: flex;
  justify-content: space-between;
  color: var(--text-dim);
  font-size: 0.8rem;
  font-weight: 500;
}
.cost-estimate-box {
  background-color: var(--bg);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 2rem 1rem;
  text-align: center;
  margin-bottom: 2rem;
}

.cost-title {
  color: var(--primary);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 1px;
  margin-bottom: 0.5rem;
  text-transform: uppercase;
}

.cost-value {
  font-size: 2.75rem;
  font-weight: 700;
  letter-spacing: -0.5px;
}

.cost-unit {
  color: var(--primary);
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 1px;
  margin-left: 0.25rem;
}
.tab-scroll {
  display: flex;
  gap: 12px;
  overflow-x: auto;
  padding: 0;
  scrollbar-width: thin;
  margin-bottom: 15px;
}
.tab-scroll::-webkit-scrollbar {
  height: 6px;
}
.tab-scroll::-webkit-scrollbar-thumb {
  background: var(--panel);
  border-radius: 6px;
}
.tab-item {
  flex: 0 0 auto;
  width: 115px;
  background: var(--panel);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 14px 8px;
  text-align: center;
  cursor: pointer;
  transition:
    border-color 0.15s ease,
    background 0.15s ease;
  user-select: none;
}
.tab-item .tab-icon {
  font-size: 22px;
  margin-bottom: 8px;
}
.tab-item .tab-label {
  font-size: 10px;
  font-weight: 500;
  color: var(--text-dim);
}
.tab-item:hover {
  border-color: var(--primary-hover);
}
.tab-item.active {
  background: var(--primary-hover);
  border-color: var(--primary);
  color: var(--primary);
}
.tab-item.active .tab-label {
  color: var(--text);
}
.section-label {
  font-size: 14px;
  font-weight: 700;
  padding: 0;
  margin-top: 10px;
  margin-bottom: 10px;
  color: #dbe1ee;
}
.product-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  padding: 0;
}
.product-card {
  background: var(--panel);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 32px 0 0;
  text-align: center;
  cursor: pointer;
  transition:
    border-color 0.15s ease,
    transform 0.1s ease,
    background 0.15s ease;
  position: relative;
}
.product-card:hover {
  transform: translateY(-2px);
}
.product-card.selected {
  border-color: var(--primary);
  background: rgba(47, 111, 237, 0.12);
  box-shadow: 0 0 0 1px var(--primary) inset;
}
.product-card .check-mark {
  position: absolute;
  top: 8px;
  right: 8px;
  width: 18px;
  height: 18px;
  background: var(--primary);
  border-radius: 50%;
  display: none;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  color: #fff;
}
.product-card.selected .check-mark {
  display: flex;
}

.product-card .icon {
  font-size: 34px;
  margin-bottom: 12px;
}
.product-card .name {
  font-size: 0.875rem;
  font-weight: 700;
  margin-bottom: 10px;
  min-height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-left: 12px;
  margin-right: 12px;
  color: var(--heading);
}
.product-card .points {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: rgba(255, 176, 32, 0.12);
  color: var(--primary);
  font-size: 10px;
  font-weight: 600;
  padding: 4px 10px;
  border-radius: 999px;
  margin-bottom: 10px;
}
.product-card .box-price {
  background: var(--panel-2);
  border-bottom-left-radius: 8px;
  border-bottom-right-radius: 8px;
  padding: 10px 5px;
  margin-top: 15px;
}
.product-card .price {
  font-size: 0.875rem;
  font-weight: 800;
  color: var(--heading);
}
.product-listed.hidden-item {
  display: none;
}
.main-layout .sidebar {
  position: sticky;
  top: 80px;
  height: fit-content;
}

.sidebar .panel-body {
  background: var(--bg-alt);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 22px;
}
.quantity-wrapper {
  display: flex;
  align-items: center;
  gap: 12px;
}
.quantity-input {
  flex: 1;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 25px;
  padding: 12px 14px;
  color: var(--text);
  font-size: 12px;
  outline: none;
  transition: border-color 0.15s ease;
}
.quantity-input:focus {
  border-color: var(--primary);
}
.quantity-input::placeholder {
  color: var(--text-dim);
  font-size: 10px;
}
.qty-btn {
  width: 45px;
  height: 45px;
  border-radius: 50%;
  border: none;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  cursor: pointer;
  transition:
    opacity 0.2s,
    transform 0.1s;
}

.qty-btn:active {
  transform: scale(0.95);
}
.btn-plus {
  background-color: var(--primary);
  color: #fff;
}
.btn-plus:hover {
  background-color: var(--primary-hover);
  color: var(--primary);
}
.btn-minus {
  background-color: #21262d;
  border: 1px solid #30363d;
  color: #8b949e;
}
.btn-minus:hover {
  background-color: #30363d;
  color: white;
}
.promo-row {
  display: flex;
  gap: 12px;
  margin-bottom: 15px;
}
.promo-input {
  flex: 1;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 25px;
  padding: 12px 14px;
  color: var(--text);
  font-size: 12px;
  outline: none;
  transition: border-color 0.15s ease;
}
input.promo-input::placeholder {
  color: var(--text-dim);
  font-size: 10px;
}
.promo-input:focus {
  border-color: var(--primary);
}
.btn-gunakan {
  background-color: var(--primary);
  color: #fff;
  border: none;
  border-radius: 8px;
  padding: 0 24px;
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  transition: background 0.2s;
  white-space: nowrap;
}
.btn-gunakan:hover {
  background-color: var(--primary-hover);
  color: var(--primary);
}
.btn-tersedia {
  background-color: var(--primary);
  color: #fff;
  border: none;
  border-radius: 8px;
  padding: 10px 16px;
  font-size: 12px;
  font-weight: 500;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  transition: background 0.2s;
}
.btn-tersedia:hover {
  background-color: var(--primary-hover);
  color: var(--primary);
}
.modal-overlay {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.7);
  z-index: 1000;
  justify-content: center;
  align-items: center;
}

.modal-box {
  background-color: var(--bg-alt);
  border: 1px solid var(--bg-alt);
  border-radius: 12px;
  width: 90%;
  max-width: 400px;
  padding: 24px;
  text-align: center;
  position: relative;
  animation: fadeIn 0.2s ease-in-out;
}
.modal-icon {
  font-size: 40px;
  margin-bottom: 15px;
}
.modal-icon.success {
  color: var(--success);
}
.modal-icon.error {
  color: var(--danger);
}
.modal-title {
  font-size: 18px;
  font-weight: 600;
  margin-bottom: 8px;
}
.modal-desc {
  font-size: 12px;
  color: var(--text);
  margin-bottom: 20px;
  line-height: 1.5;
}
.btn-modal-close {
  background-color: var(--primary);
  border: 1px solid var(--primary);
  color: white;
  padding: 10px 20px;
  border-radius: 8px;
  font-size: 14px;
  cursor: pointer;
  width: 100%;
  transition: background 0.2s;
}
.btn-modal-close:hover {
  background-color: var(--primary-hover);
  color: var(--primary);
}
@keyframes fadeIn {
  from {
    opacity: 0;
    transform: scale(0.95);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}
.accordion-item {
  background-color: var(--bg);
  border: 1px solid var(--bg);
  border-radius: 12px;
  overflow: hidden;
  transition: border-color 0.2s;
  margin-bottom: 10px;
}
.accordion-header {
  background-color: var(--primary);
  color: #fff;
  padding: 16px 20px;
  font-size: 15px;
  font-weight: 600;
  display: flex;
  justify-content: space-between;
  align-items: center;
  cursor: pointer;
  user-select: none;
  transition: background-color 0.2s;
}

.accordion-header:hover {
  background-color: var(--primary-hover);
  color: var(--primary);
}
.accordion-header i {
  transition: transform 0.3s ease;
}
.accordion-item.active .accordion-header i {
  transform: rotate(180deg);
}
.accordion-content {
  display: none; /* Default tertutup */
  padding: 20px;
}
.payment-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
  gap: 15px;
}
.payment-card {
  background-color: #0d0f12;
  border: 1px solid #30363d;
  border-radius: 10px;
  padding: 15px;
  cursor: pointer;
  transition: all 0.2s;
  position: relative;
}

.payment-card:hover {
  border-color: var(--primary);
  transform: translateY(-2px);
}

.payment-card.selected {
  border-color: var(--primary);
  background-color: #1a2332;
}

.payment-logo {
  background: #fff;
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  width: 100px;
  height: 40px;
  border-radius: 8px;
  padding: 8px;
}

.payment-logo img {
  width: 100%;
  height: 100%;
}
.payment-price {
  font-size: 14px;
  font-weight: 600;
  color: #ffffff;
  margin-bottom: 4px;
}
.payment-desc {
  font-size: 12px;
  color: #8b949e;
  font-style: italic;
  border-top: 1px dotted #8b949e;
  margin-top: 8px;
  padding-top: 8px;
}
.va-logos {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.va-badge {
  background-color: #0d0f12;
  border: 1px solid #30363d;
  padding: 6px 10px;
  border-radius: 6px;
  font-size: 11px;
  font-weight: 600;
  color: #8b949e;
}

.rating-box {
  display: flex;
  gap: 14px;
  align-items: flex-start;
}

.rating-title {
  font-size: 10px;
  font-weight: 900;
  color: var(--heading);
  margin-bottom: 5px;
}
.rating-score {
  font-size: 40px;
  font-weight: 900;
  color: var(--heading);
}
.stars {
  color: #ffb020;
  font-size: 40px;
  letter-spacing: 2px;
  margin-top: 14px;
}
.rating-count {
  font-size: 10px;
  font-weight: 900;
  color: var(--heading);
  margin-top: 4px;
}

.help-box {
  display: flex;
  gap: 14px;
  align-items: flex-start;
  padding: 18px 22px;
  background: var(--bg-alt);
  border: 1px solid var(--border);
  border-radius: 16px;
  margin-top: 8px;
}
.help-box .icon-circle {
  width: 50px;
  height: 50px;
  background: none;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--heading);
  font-size: 42px;
  flex-shrink: 0;
}
.help-box h3 {
  font-size: 14px;
  margin-bottom: 0;
  line-height: 6px;
  color: var(--heading);
}
.help-box p {
  font-size: 12px;
  color: var(--heading);
}

.order-summary-box {
  margin: 18px 0;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 5px 20px;
  min-height: 64px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: var(--muted);
  font-size: 12px;
}
.order-summary-box.has-item {
  display: block;
  text-align: left;
}
.order-summary-box .sum-title p {
  font-size: 18px;
  font-weight: 900;
  line-height: 20px;
  margin-bottom: 5px;
  margin-top: 10px;
}
.order-summary-box .sum-row {
  display: flex;
  justify-content: space-between;
  font-size: 12px;
  margin-top: 8px;
  margin-bottom: 8px;
  color: #cfd6e6;
}
.order-summary-box .sum-total {
  display: flex;
  justify-content: space-between;
  font-size: 14px;
  font-weight: 800;
  padding-top: 10px;
  margin-top: 6px;
  border-top: 1px dashed var(--border);
}
.order-summary-box .sum-total span:last-child {
  color: var(--primary);
}

.order-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  width: 100%;
  margin: 4px 0 22px;
  background: var(--primary);
  color: #fff;
  border: none;
  padding: 10px;
  border-radius: 25px;
  font-weight: 700;
  font-size: 15px;
  cursor: pointer;
  transition:
    background 0.15s ease,
    opacity 0.15s ease,
    transform 0.1s ease;
}
.order-btn:hover {
  background: var(--primary-hover);
  color: var(--primary);
}
.order-btn:active {
  transform: scale(0.98);
}
.order-btn:disabled {
  background: #2a3245;
  color: #6b7385;
  cursor: not-allowed;
}

.review-header {
  text-align: center;
  margin-bottom: 24px;
}

.rating-main {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-size: 40px;
  font-weight: 700;
  color: var(--text);
}

.rating-main .star-icon {
  color: var(--warning);
  font-size: 36px;
}

.rating-main span.max-score {
  font-size: 20px;
  color: var(--text-dim);
  font-weight: 400;
}

.rating-desc {
  font-size: 14px;
  color: var(--text-dim);
  margin-top: 6px;
}

.rating-breakdown {
  margin-bottom: 24px;
}

.rating-bar-row {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 8px;
  font-size: 14px;
}

.star-label {
  display: flex;
  align-items: center;
  gap: 4px;
  width: 35px;
  color: var(--text);
}

.star-label span {
  color: var(--warning);
}

.progress-bar {
  flex-grow: 1;
  height: 8px;
  background-color: var(--bg-alt);
  border-radius: 4px;
  overflow: hidden;
}

.progress-fill {
  height: 100%;
  background-color: var(--warning);
  border-radius: 4px;
}

.rating-counts {
  width: 40px;
  text-align: right;
  color: var(--text-dim);
  font-size: 12px;
}

.cta-review {
  font-size: 14px;
  color: #dcdcdc;
  line-height: 1.5;
  margin-bottom: 20px;
}

.divider {
  border: none;
  border-top: 1px solid #333333;
  margin-bottom: 20px;
}

.review-item {
  margin-bottom: 20px;
  padding-bottom: 16px;
  border-bottom: 1px solid #2a2a2a;
}

.review-item:last-child {
  border-bottom: none;
  margin-bottom: 0;
  padding-bottom: 0;
}

.review-item-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 4px;
}

.user-name {
  font-weight: 600;
  font-size: 14px;
  color: #ffffff;
}

.stars-group {
  color: var(--warning);
  font-size: 12px;
}

.product-variant {
  font-size: 12px;
  color: #aaaaaa;
  margin-bottom: 6px;
}

.review-date {
  font-size: 12px;
  color: var(--secondary);
  float: right;
}

.review-comment {
  font-size: 14px;
  color: var(--heading);
  font-style: italic;
  margin-top: 4px;
}

.invoice-card {
  max-width: 500px;
  margin: 0 auto;
  background: var(--bg-alt);
  padding: 30px;
  border-radius: 12px;
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
  margin-top: 50px;
  margin-bottom: 50px;
}

.invoice-card .header {
  text-align: center;
  margin-bottom: 25px;
}

.invoice-card .header h1 {
  color: var(--heading);
  margin-bottom: 5px;
}

.invoice-card .status-badge {
  display: inline-block;
  padding: 5px 15px;
  background: #fef3c7;
  color: #d97706;
  border-radius: 20px;
  font-size: 12px;
  font-weight: bold;
  margin-bottom: 20px;
}

.invoice-card .info-row {
  display: flex;
  justify-content: space-between;
  margin-bottom: 10px;
  font-size: 14px;
}

.invoice-card .divider {
  border-top: 2px dashed var(--border);
  margin: 20px 0;
}

.invoice-card .payment-box {
  background: rgba(0, 0, 0, 0.3);
  padding: 15px;
  border-radius: 8px;
  border: 1px solid var(--border);
  text-align: center;
}

.invoice-card .va-number {
  font-size: 20px;
  font-weight: bold;
  color: var(--primary);
  margin: 10px 0;
  display: block;
}

.invoice-card .btn-copy {
  background: var(--primary);
  color: white;
  border: none;
  padding: 8px 16px;
  border-radius: 6px;
  cursor: pointer;
  font-size: 12px;
  transition: all 0.3s ease;
}

.invoice-card .btn-copy:hover {
  background: var(--primary-hover);
  color: var(--primary);
}

.invoice-card .footer-note {
  font-size: 12px;
  color: var(--text);
  text-align: center;
  margin-top: 20px;
}

.cektrx .header {
  text-align: center;
  margin-top: 75px;
  margin-bottom: 25px;
}

.cektrx .header h2 {
  font-size: 2.25rem;
  line-height: 2.5rem;
  font-weight: 900;
  color: var(--heading);
  margin-bottom: 0;
}

.cektrx .header p {
  font-size: 1rem;
  line-height: 1.5rem;
  color: var(--text);
}

.cektrx .panel {
  margin: 0 auto;
  background: var(--bg-alt);
  border: 1px solid var(--border);
  padding: 30px;
  border-radius: 16px;
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
  margin-top: 25px;
  margin-bottom: 50px;
}

.cektrx .box-title {
  width: 100%;
  height: 35px;
  border-bottom: 1px solid var(--border);
  text-align: center;
  justify-content: center;
  margin-bottom: 15px;
}

.cektrx .box-title .box-title-head {
  padding: 12px 15px;
  border-bottom: 2px solid var(--primary);
  font-weight: 900;
  color: #fff;
}

.cektrx .search-boxe {
  margin-bottom: 25px;
}

.cektrx .btn-search {
  padding: 12px 20px;
  background-color: var(--primary);
  color: #fff;
  border: none;
  border-radius: 16px;
  cursor: pointer;
  font-weight: 600;
  transition: background-color 0.3s;
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  text-align: center;
  justify-content: center;
  margin-top: 15px;
}

.cektrx .btn-search:hover {
  background-color: var(--primary-hover);
  color: var(--primary);
}

.cektrx .loading {
  display: none;
  text-align: center;
  margin: 20px 0;
  color: var(--primary);
}

.cektrx .result-card {
  display: none;
  background-color: var(--bg);
  border-radius: 12px;
  padding: 20px;
  border: 1px solid var(--border);
  margin-top: 25px;
  animation: fadeIn 0.4s ease-in-out;
}

@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.cektrx .status-badge {
  display: inline-block;
  padding: 0.35rem 0.85rem;
  border-radius: 50px;
  font-size: 0.75rem;
  font-weight: 600;
  text-align: center;
}

.cektrx .status-success {
  background-color: rgba(34, 197, 94, 0.15);
  color: var(--success);
  border: 1px solid var(--success);
}

.cektrx .status-pending {
  background-color: rgba(234, 179, 8, 0.15);
  color: var(--warning);
  border: 1px solid var(--warning);
}

.cektrx .status-failed {
  background-color: rgba(239, 68, 68, 0.15);
  color: var(--danger);
  border: 1px solid var(--danger);
}

.cektrx .detail-row {
  display: flex;
  justify-content: space-between;
  margin-bottom: 12px;
  font-size: 12px;
  border-bottom: 1px dashed var(--border);
  padding-bottom: 8px;
}

.cektrx .detail-row:last-child {
  border-bottom: none;
  margin-bottom: 0;
  padding-bottom: 0;
}

.cektrx .detail-label {
  color: var(--text);
}

.cektrx .detail-value {
  font-weight: 600;
  text-align: right;
}

.cektrx .error-msg {
  display: none;
  color: var(--danger);
  background-color: rgba(239, 68, 68, 0.1);
  border: 1px solid var(--danger);
  padding: 12px;
  border-radius: 8px;
  font-size: 12px;
  text-align: center;
  margin-top: 15px;
}

.ulasan .header {
  text-align: center;
  margin-top: 75px;
  margin-bottom: 25px;
}

.ulasan .header h2 {
  font-size: 2.25rem;
  line-height: 2.5rem;
  font-weight: 900;
  color: var(--heading);
  margin-top: 0;
  margin-bottom: 50px;
}

.ulasan .header p {
  font-size: 0.875rem;
  line-height: 1.25rem;
  color: var(--primary);
}

.ulasan .panel {
  margin: 0 auto;
  background: var(--bg-alt);
  border: 1px solid var(--border);
  padding: 30px;
  border-radius: 16px;
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
  margin-top: 25px;
  margin-bottom: 50px;
}

.ulasan .rating-overview {
  display: grid;
  grid-template-columns: 280px 1fr;
  background-color: var(--bg);
  border-radius: 12px;
  gap: 2rem;
  align-items: center;
  margin: 0 auto;
  margin-bottom: 2.5rem;
  max-width: 800px;
}

.ulasan .rating-score-box {
  text-align: center;
  border-right: 1px solid var(--border);
}

.ulasan .rating-score-box h2 {
  font-size: 3.75rem;
  line-height: 1;
  font-weight: 700;
  margin-bottom: 0.25rem;
}

.ulasan .rating-stars {
  color: var(--warning);
  font-size: 1.1rem;
  margin-bottom: 0.5rem;
}

.ulasan .rating-score-box p {
  color: var(--text);
  font-size: 0.8rem;
}

.ulasan .filter-section {
  display: flex;
  margin-bottom: 1.5rem;
  gap: 1rem;
}
.ulasan .filter-section span {
  font-size: 0.85rem;
  align-items: center;
  display: flex;
  gap: 6px;
}
.ulasan .filter-section span svg {
  width: 20px;
  height: 20px;
}
.ulasan .filter-dropdown {
  background-color: var(--bg);
  border: 1px solid var(--border);
  color: var(--text-dim);
  padding: 0.6rem 1rem;
  border-radius: 8px;
  font-size: 0.85rem;
  outline: none;
  cursor: pointer;
  width: 50%;
}
.ulasan .reviews-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
  margin-bottom: 2.5rem;
}

.ulasan .review-card {
  background-color: var(--bg);
  border: 1px solid var(--bg);
  border-radius: 10px;
  padding: 1.25rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.ulasan .review-game {
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--text);
  letter-spacing: 0.5px;
  margin-bottom: 0.75rem;
  text-transform: uppercase;
}

.ulasan .review-comment {
  font-size: 0.95rem;
  font-weight: 400;
  margin-bottom: 1rem;
  font-style: italic;
}

.ulasan .review-footer {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  border-top: 1px solid rgba(255, 255, 255, 0.05);
  padding-top: 0.75rem;
}

.ulasan .review-user {
  color: var(--text);
  font-size: 0.8rem;
}

.ulasan .review-meta-right {
  text-align: right;
}

.ulasan .review-card-stars {
  color: var(--warning);
  font-size: 1.4rem;
  margin-bottom: 0.25rem;
}

.ulasan .review-date {
  color: var(--text);
  font-size: 0.75rem;
}

.ulasan .review-item-name {
  color: var(--text);
  font-size: 0.75rem;
  margin-top: 0.5rem;
}

/* Paginasi */
.ulasan .pagination {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 3rem;
}

.ulasan .page-btn {
  background-color: var(--bg-alt);
  border: 1px solid var(--border);
  color: var(--text-main);
  padding: 0.5rem 0.85rem;
  border-radius: 6px;
  font-size: 0.85rem;
  cursor: pointer;
  transition: background-color 0.2s;
}

.ulasan .page-btn.active,
.page-btn:hover {
  background-color: var(--primary);
  border-color: var(--primary);
}

.contact-container {
  max-width: 1400px;
  width: 100%;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: start;
  flex: 1;
  padding-top: 50px;
  padding-bottom: 50px;
}
.contact-info h1 {
  font-size: 2rem;
  font-weight: 700;
  margin-bottom: 1.25rem;
  color: var(--heading);
}

.contact-info p {
  color: var(--text);
  font-size: 0.95rem;
  line-height: 1.6;
  margin-bottom: 1.5rem;
}

.location-title {
  font-weight: 600;
  font-size: 1rem;
  margin-bottom: 1rem;
}

.contact-details {
  display: flex;
  gap: 0.75rem;
}

.contact-item {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  color: var(--text);
  font-size: 0.9rem;
  text-decoration: none;
}

.contact-item i {
  color: var(--text);
}

.contact-item svg {
  width: 20px;
  height: 20px;
}

.contact-item:hover {
  color: var(--text);
}

.contact-form-card {
  background-color: var(--bg-alt);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 2rem;
}

.contact-form-card h3 {
  font-size: 1.25rem;
  font-weight: 600;
  text-align: center;
  margin-bottom: 0.75rem;
}

.contact-form-card > p {
  color: var(--text-muted);
  font-size: 0.825rem;
  text-align: center;
  margin-bottom: 1.75rem;
  line-height: 1.5;
}

.form-footer-note {
  text-align: center;
  color: var(--text-dim);
  font-size: 0.875rem;
  margin-top: 15px;
}

.toast {
  position: fixed;
  top: 50px;
  left: 50%;
  transform: translateX(-50%) translateY(20px);
  background: var(--bg-alt);
  border: 1px solid var(--primary);
  color: #fff;
  padding: 14px 26px;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 600;
  opacity: 0;
  pointer-events: none;
  transition:
    opacity 0.25s ease,
    transform 0.25s ease;
  z-index: 999;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.4);
}
.toast.show {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}

/* ============ FOOTER ============ */
.bg_footer {
  width: 100%;
  height: auto;
  margin-top: 50px;
}
.bg_footer img {
  width: 100%;
  height: 100%;
}
.site-footer {
  background: var(--bg-alt);
  border-top: 1px solid var(--border);
}
.footer-brand-banner {
  text-align: center;
  padding: 50px 20px 30px;
  background: radial-gradient(
    ellipse at 50% 0%,
    rgba(30, 111, 255, 0.25),
    transparent 70%
  );
}
.footer-brand-banner span {
  font-size: clamp(40px, 9vw, 86px);
  font-weight: 900;
  letter-spacing: 2px;
  background: linear-gradient(180deg, #fff, #4da3ff 140%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.footer-columns {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: 30px;
  padding: 34px 20px 34px;
}
.footer-columns-mobile {
  display: none;
}
.footer-col-show {
  display: none !important;
}
.footer-col h4 {
  font-size: 14px;
  margin: 0 0 14px;
  color: var(--primary);
}
.footer-col a {
  display: block;
  font-size: 12px;
  color: var(--text);
  margin-bottom: 10px;
}
.footer-col a:hover {
  color: var(--primary);
}
.footer-about p {
  font-size: 12px;
  color: var(--text);
  line-height: 1.6;
  margin: 14px 0;
}
.guarded-badge {
  display: flex;
  align-items: center;
  gap: 6px;
  background-color: var(--bg);
  border: 1px solid var(--border);
  padding: 6px 12px;
  border-radius: 20px;
  font-size: 9px;
  color: var(--text);
  font-weight: 500;
  margin-top: 40px;
  justify-content: end;
  width: 68%;
  float: right;
}

.guarded-badge i {
  background: #00e676;
  color: #fff;
  padding: 3px;
  border-radius: 50%;
}
.payment-title {
  font-size: 12px;
  font-weight: 700;
  color: var(--text) !important;
  margin-bottom: 10px !important;
}
.payment-icons {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 8px;
}
.pay-badge {
  background: #fff;
  border: 1px solid var(--border);
  padding: 5px;
  border-radius: 8px;
  width: 60px;
  height: 35px;
}
.pay-badge img {
  width: 100%;
  height: 100%;
}
.payment-more {
  font-size: 11.5px;
  color: var(--text-dim);
}
.wa-btn {
  display: flex !important;
  background: hsl(216 79% 54%/0.1);
  color: #fff !important;
  padding: 9px 16px;
  border: 1px solid var(--border);
  border-radius: 1rem;
  font-size: 12px;
  font-weight: 700;
  margin-bottom: 14px;
  justify-content: space-between;
  align-items: center;
  transition: all 0.3s ease;
}
.wa-btn:hover {
  background: hsl(216 79% 54%/0.3);
  color: #fff !important;
}
.wa-btn span {
  display: flex;
  align-items: center;
}
.wa-btn img {
  width: 20px;
  height: 20px;
  margin-right: 8px;
}
.footer-info {
  font-size: 12.5px;
  color: var(--text);
  margin: 0 0 8px;
}
.jaminan-title {
  font-size: 12.5px;
  font-weight: 700;
  color: var(--text);
  margin: 14px 0 8px;
}
.social-title {
  margin-top: 20px;
}
.social-icons {
  display: flex;
  gap: 10px;
}
.social-icons a {
  width: 34px;
  height: 34px;
  background: var(--bg-alt);
  border: 1px solid var(--border);
  border-radius: 9px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
}

.footer-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 10px;
  border-top: 1px solid var(--border);
  padding: 18px 20px;
  font-size: 12.5px;
  color: var(--text);
}
.footer-bottom-links {
  display: flex;
  align-items: center;
  gap: 18px;
  flex-wrap: wrap;
}
.footer-bottom-links a {
  color: var(--primary);
}
.footer-bottom-links a:hover {
  color: var(--text);
}
.region-select-wrapper {
  position: relative;
  display: inline-block;
}
.region-select {
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  user-select: none;
  color: var(--text-dim);
}
.region-select img {
  width: 15px;
  height: auto;
}
.region-dropdown-menu {
  display: none;
  position: absolute;
  bottom: 100%;
  left: 0;
  margin-bottom: 8px;
  background: var(--bg-alt);
  border: 1px solid var(--border);
  border-radius: 6px;
  box-shadow: 0 -4px 12px rgba(0, 0, 0, 0.1);
  list-style: none;
  padding: 6px 0;
  min-width: 150px;
  z-index: 999;
}
.region-dropdown-menu li a {
  display: block;
  padding: 8px 16px;
  color: var(--text-dim);
  text-decoration: none;
  font-size: 14px;
}
.region-dropdown-menu li a:hover {
  background: var(--bg);
  color: var(--heading);
}
.region-dropdown-menu li a img {
  width: 15px;
  height: auto;
}
.region-select-wrapper.show .region-dropdown-menu {
  display: block;
}

.theme-switch {
  position: relative;
}
.theme-btn {
  display: flex;
  align-items: center;
  gap: 7px;
  color: var(--text-dim);
  font-size: 12px;
  font-weight: 600;
  background: none;
  border: 0;
}
.theme-btn:hover {
  color: #fff;
}
.theme-icon {
  font-size: 14px;
  line-height: 1;
}
.theme-dropdown {
  position: absolute;
  bottom: calc(100% + 10px);
  right: 0;
  min-width: 160px;
  background: var(--bg-alt);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 6px;
  display: none;
  flex-direction: column;
  box-shadow: 0 -12px 30px rgba(0, 0, 0, 0.45);
  z-index: 50;
}
.theme-switch.open .theme-dropdown {
  display: flex;
}
.theme-option {
  display: flex;
  align-items: center;
  gap: 8px;
  background: none;
  border: none;
  color: var(--text);
  text-align: left;
  padding: 9px 10px;
  border-radius: 7px;
  font-size: 12px;
}
.theme-option:hover {
  background: var(--bg-alt);
  color: var(--text);
}
.theme-option.active {
  color: var(--text);
  background: var(--bg-alt);
}

/* ============ MOBILE BOTTOM NAV ============ */
.mobile-bottom-nav {
  display: none;
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 250;
  background: var(--bg-alt);
  backdrop-filter: blur(10px);
  border-top: 1px solid var(--border);
  padding: 6px 4px calc(6px + env(safe-area-inset-bottom));
  align-items: center;
  justify-content: space-between;
}
.bottom-nav-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
  padding: 6px 4px;
  border-radius: 10px;
  color: var(--text-faint);
  font-size: 10px;
  font-weight: 600;
  transition: 0.18s;
  flex: 1;
  min-width: 0;
  text-align: center;
  white-space: nowrap;
}
.bottom-nav-item span {
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}
.bottom-nav-item svg {
  width: 25px;
  height: 25px;
  fill: var(--bg-alt);
  stroke: var(--text-dim);
  stroke-width: 25px;
  transition: fill 0.3s ease;
}
.bottom-nav-item.active,
.bottom-nav-item:hover {
  color: var(--text-dim);
}
.bottom-nav-item.active .bottom-nav-icon {
  color: var(--text-dim);
}

/* Table */

.table-responsive {
  display: block;
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

table {
  border-collapse: separated;
  border-spacing: 0 10px;
}

.table {
  width: 100%;
  margin-bottom: 1rem;
  color: var(--text);
}

.table-hover tbody tr:hover {
  opacity: 0.8;
}

.table th,
.table td {
  padding: 1rem;
  vertical-align: center;
  font-size: 0.875rem;
  line-height: 1.25rem;
}

.table thead th {
  text-align: left;
  vertical-align: bottom;
  border-bottom: 1px solid var(--border);
  white-space: nowrap;
}

.table tbody tr {
  margin-top: 5px;
}

.table tbody td {
  background: var(--border);
  color: var(--text-dim);
  margin-top: 5px;
  vertical-align: middle;
  white-space: nowrap;
}

.artikel .article-container {
  width: 100%;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 2.2fr 1fr;
  gap: 32px;
  padding-top: 50px;
  padding-bottom: 50px;
}
.artikel .category-badge {
  display: inline-block;
  background: var(--primary);
  color: #fff;
  font-size: 0.8rem;
  font-weight: 700;
  text-transform: uppercase;
  padding: 4px 12px;
  border-radius: 20px;
  letter-spacing: 0.5px;
}

.artikel .article-meta {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 16px;
  flex-wrap: wrap;
}

.artikel .article-date {
  font-size: 0.875rem;
  color: var(--text);
}

.artikel .main-article .article-title {
  font-size: 2rem;
  color: var(--heading);
  line-height: 1.3;
  margin-bottom: 20px;
  font-weight: 800;
}
.artikel .featured-image-container {
  width: 100%;
  height: 380px;
  border-radius: 12px;
  overflow: hidden;
  margin-bottom: 24px;
  background-color: #e2e8f0;
}

.artikel .featured-image-container img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.artikel .article-content ol,
.artikel .article-content ul {
  margin-left: 20px;
  list-style-type: none; /* Removes default 1, 2, 3 */
  padding-left: 0;
}

.artikel .article-content li {
  position: relative;
  padding-left: 28px; /* Space for the symbol */
  margin-bottom: 10px;
  font-size: 0.85rem;
  color: var(--text);
}

.artikel .article-content li::before {
  content: "✔";
  position: absolute;
  left: 0;
  color: var(--primary); /* Symbol color */
  font-weight: bold;
}

.artikel .article-content p {
  margin-bottom: 18px;
  font-size: 0.85rem;
  color: var(--text);
}

.artikel .article-content h2 {
  font-size: 1.4rem;
  color: var(--text);
  margin: 28px 0 12px 0;
}
.sidebar-title {
  font-size: 1.25rem;
  color: var(--primary);
  font-weight: 700;
  margin-bottom: 20px;
  padding-bottom: 10px;
  border-bottom: 2px solid var(--border);
  position: relative;
}

.sidebar-title::after {
  content: "";
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 50px;
  height: 2px;
  background-color: var(--primary);
}

.related-list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.related-item {
  display: flex;
  gap: 14px;
  align-items: center;
  text-decoration: none;
  color: inherit;
  padding: 8px;
  border-radius: 10px;
  transition:
    background-color 0.2s ease,
    transform 0.2s ease;
}

.related-item:hover {
  background-color: var(--primary-hover);
  color: var(--primary);
  transform: translateX(4px);
}

.related-image {
  width: 80px;
  height: 80px;
  border-radius: 8px;
  object-fit: cover;
  flex-shrink: 0;
  background-color: #cbd5e1;
}

.related-info {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.related-info .category-badge {
  font-size: 0.7rem;
  padding: 2px 8px;
  align-self: flex-start;
}

.related-title {
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--primary);
  line-height: 1.4;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.related-item:hover .related-title {
  color: var(--primary-hover);
}

.login-container {
  display: block;
  margin: 0 auto;
  width: 100%;
  max-width: 1100px;
  background-color: var(--bg-alt);
  border-radius: 16px;
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.6);
  display: flex;
  overflow: hidden;
  position: relative;
  border: 1px solid var(--border);
  margin-top: 50px;
  margin-bottom: 50px;
}
.login .close-btn {
  position: absolute;
  top: 20px;
  right: 20px;
  color: var(--primary);
  background: none;
  border: none;
  font-size: 18px;
  cursor: pointer;
  z-index: 10;
  transition: color 0.2s;
}

.login .close-btn:hover {
  color: var(--text);
}

.login .login-banner {
  flex: 1;
  position: relative;
  background: url("../../../upload/photo-1607604276583-eef5d076aa5f.jpeg?q=80&w=1000&auto=format&fit=crop")
    center/cover no-repeat;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 30px;
}
.login .login-banner::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(
    to top,
    rgba(11, 15, 25, 0.95) 10%,
    rgba(11, 15, 25, 0.2) 60%
  );
}

.login .banner-content {
  position: relative;
  z-index: 2;
}

.login .brand-title {
  font-size: 24px;
  font-weight: 700;
  color: var(--primary);
  margin-bottom: 6px;
}

.login .brand-desc {
  font-size: 12px;
  color: var(--text);
}

.login .login-form-section {
  flex: 1.4;
  padding: 50px 40px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.login .form-header h2 {
  font-size: 1.875rem;
  line-height: 2.25rem;
  font-weight: 700;
  color: var(--primary);
  margin-bottom: 6px;
}

.login .form-header p {
  font-size: 12px;
  color: var(--text);
  margin-bottom: 25px;
}

.login .input-group {
  margin-bottom: 18px;
}

.login .input-group label {
  display: block;
  font-size: 12px;
  color: var(--heading);
  margin-bottom: 8px;
}

.login .input-wrapper {
  position: relative;
  display: flex;
  align-items: center;
}

.login .input-wrapper input {
  width: 100%;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 25px;
  padding: 12px 14px;
  color: var(--text);
  font-size: 12px;
  outline: none;
  transition: border-color 0.15s ease;
}

.login .input-wrapper input::placeholder {
  color: var(--text-dim);
  font-size: 10px;
}

.login .input-wrapper input:focus {
  border-color: var(--primary);
}

.login .toggle-password {
  position: absolute;
  right: 14px;
  background: none;
  border: none;
  color: var(--text-dim);
  cursor: pointer;
  font-size: 14px;
}

.login .form-options {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 12px;
  margin-bottom: 25px;
}

.login .remember-me {
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--text-dim);
  cursor: pointer;
}

.login .remember-me input {
  accent-color: var(--primary);
  width: 14px;
  height: 14px;
  cursor: pointer;
}

.login .forgot-password {
  color: var(--primary);
  text-decoration: none;
}

.login .forgot-password:hover {
  text-decoration: underline;
}
.login .btn-submit {
  width: 100%;
  background-color: var(--primary);
  color: #ffffff;
  border: none;
  border-radius: 25px;
  padding: 12px;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  transition: background-color 0.2s;
}

.login .btn-submit:hover {
  background-color: var(--primary-hover);
  color: var(--primary);
}
.login .form-footer {
  text-align: center;
  margin-top: 25px;
  font-size: 12px;
  color: var(--text-dim);
}

.login .form-footer a {
  color: var(--primary);
  text-decoration: none;
  font-weight: 500;
}

.login .form-footer a:hover {
  text-decoration: underline;
}

.register .form-row {
  display: flex;
  gap: 15px;
  margin-bottom: 14px;
}
.register .input-group {
  flex: 1;
}

.register .input-group.full-width {
  width: 100%;
  margin-bottom: 14px;
}
.register .phone-wrapper {
  background-color: var(--bg);
  border: 1px solid var(--border);
  border-radius: 25px;
  display: flex;
  align-items: center;
  overflow: hidden;
  transition: border-color 0.2s;
}

.register .phone-wrapper:focus-within {
  border-color: var(--primary);
}

.register .phone-wrapper input::placeholder {
  color: var(--text-dim);
  font-size: 10px;
}

.register .country-code {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 0 12px;
  border-right: 1px solid var(--border);
  font-size: 12px;
  color: var(--text);
  background-color: var(--bg);
  height: 100%;
}

.register .country-code img {
  width: 20px;
  border-radius: 2px;
}

.register .phone-wrapper input {
  width: 100%;
  background: var(--bg);
  border: none;
  border-radius: 25px;
  padding: 12px 14px;
  color: var(--text);
  font-size: 12px;
  outline: none;
  transition: border-color 0.15s ease;
}

.register .phone-hint {
  font-size: 11px;
  color: var(--text-dim);
  margin-top: 5px;
  line-height: 1.4;
}

.register .terms-group {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-size: 12px;
  color: var(--text);
  margin: 18px 0;
  cursor: pointer;
}

.register .terms-group input {
  accent-color: var(--primary);
  width: 15px;
  height: 15px;
  margin-top: 1px;
  cursor: pointer;
}

.register .terms-group a {
  color: var(--primary);
  text-decoration: none;
}

.register .terms-group a:hover {
  text-decoration: underline;
}

/* MEMBER AREA */

.member-container {
  max-width: 1400px;
  margin: 50px auto;
  padding: 0 20px;
  display: flex;
  gap: 20px;
}

.member .sidebar {
  width: 250px;
  background-color: var(--bg-alt);
  border-radius: 10px;
  padding: 15px;
  height: fit-content;
  position: sticky;
  top: 50px;
}

.member .sidebar-menu {
  list-style: none;
  margin-left: -35px;
}

.member .menu-item a {
  padding: 12px 15px;
  border-radius: 8px;
  color: var(--text);
  cursor: pointer;
  margin-bottom: 5px;
  transition: 0.3s;
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 0.875rem;
}

.member .menu-item a:hover,
.member .menu-item.active a {
  background-color: var(--primary);
  color: #fff;
}

.member .menu-item i {
  width: 20px;
}

.member .content-area {
  flex: 1;
}

.member .welcome-banner {
  background: var(--primary);
  padding: 20px;
  border-radius: 10px;
  margin-bottom: 20px;
  color: #fff;
}
.member .welcome-banner h2 {
  margin-bottom: 0;
}

.member .cards-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 15px;
  margin-bottom: 20px;
}

.member .card {
  background-color: var(--bg-alt);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.member .card-info span {
  font-size: 0.85rem;
  color: var(--text-dim);
}

.member .card-info h3 {
  margin-top: 5px;
  font-size: 1.3rem;
}

.member .card-icon {
  font-size: 2rem;
  color: var(--primary);
}

.member .badge-vip {
  color: var(--primary);
}

.member .table-responsive {
  width: 100%;
  overflow-x: auto; /* Mengaktifkan scroll horizontal */
  -webkit-overflow-scrolling: touch; /* Biar scroll smooth di iOS Safari */
}

.member .data-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 800px; /* Lebar minimal tabel agar tidak terhimpit di layar HP */
  white-space: nowrap; /* Mencegah teks turun ke bawah / patah kalimat */
}

.member .data-table th,
.member .data-table td {
  padding: 12px;
  text-align: left;
  border-bottom: 1px solid var(--border);
  font-size: 12px;
}

.member .data-table th {
  background: var(--primary);
  color: #fff;
  text-align: center;
}

.member .status {
  padding: 4px 8px;
  border-radius: 4px;
  font-size: 10px;
  font-weight: bold;
}

.member .status-success {
  background-color: rgba(34, 197, 94, 0.15);
  color: #4ade80;
  border: 1px solid #22c55e;
}

.member .status-pending {
  background-color: rgba(234, 179, 8, 0.15);
  color: #facc15;
  border: 1px solid #eab308;
}

.member .status-failed {
  background-color: rgba(239, 68, 68, 0.15);
  color: #f87171;
  border: 1px solid #ef4444;
}

.member .filter-card {
  background-color: var(--bg-alt);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 20px;
  margin-bottom: 20px;
}

.member .filter-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 15px;
  align-items: end;
}

.member .filter-group {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.member .filter-group label {
  font-size: 0.85rem;
  color: var(--text-dim);
}

.member input[type="text"],
.member select {
  width: 100%;
  background: var(--bg);
  border: none;
  border-radius: 25px;
  padding: 12px 14px;
  color: var(--text);
  font-size: 12px;
  outline: none;
  transition: border-color 0.15s ease;
}

.member input:focus,
.member select:focus {
  border-color: var(--primary);
}

.member .filter-actions {
  display: flex;
  gap: 10px;
}

.member .btn-filter,
.member .btn-reset {
  padding: 10px 15px;
  border-radius: 6px;
  border: none;
  font-weight: bold;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  font-size: 0.9rem;
  transition: 0.2s;
}

.member .btn-filter {
  background-color: var(--primary);
  color: #fff;
  flex: 1;
}

.member .btn-filter:hover {
  background-color: var(--primary-hover);
  color: var(--primary);
}

.member .btn-reset {
  background-color: transparent;
  border: 1px solid var(--border);
  color: var(--text-dim);
}

.member .btn-reset:hover {
  background-color: var(--border);
  color: var(--text);
}

.member .section-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.member .section-title {
  display: block;
  font-size: 20px;
  font-weight: 700;
  color: var(--heading);
  margin-bottom: 24px;
}
.member .section-title span {
  color: var(--text-dim);
}

.member .referral-box-card {
  background-color: var(--bg-alt);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 24px;
  margin-bottom: 25px;
}

.member .referral-box-card h3 {
  font-size: 15px;
  font-weight: 600;
  margin-bottom: 8px;
  color: var(--text);
}

.member .referral-box-card p {
  font-size: 12px;
  color: var(-text-dim);
  margin-bottom: 16px;
}

.member .input-copy-group {
  display: flex;
  gap: 10px;
}

.member .input-copy-group input {
  flex: 1;
  background-color: var(--bg);
  border: 1px solid var(--border);
  border-radius: 25px;
  padding: 11px 14px;
  font-size: 12px;
  color: var(--text);
  outline: none;
}

.member .btn-copy {
  background-color: var(--primary);
  color: #ffffff;
  border: none;
  border-radius: 8px;
  padding: 0 20px;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 8px;
  transition: background-color 0.2s;
  white-space: nowrap;
}

.member .btn-copy:hover {
  background-color: var(--primary-hover);
  color: var(--primary);
}

.member .horizontal-form {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.member .form-group-horizontal {
  display: grid;
  grid-template-columns: 30% 1fr;
  align-items: center;
  gap: 16px;
}

.member .form-label-horizontal {
  font-size: 14px;
  font-weight: 600;
  color: var(--heading);
  padding-top: 4px;
  align-self: start;
}

.member .form-label-horizontal small {
  color: var(--text-dim);
  font-size: 10px;
}

.member .form-label-horizontal span.required {
  color: var(--primary);
}

.member .form-input-wrapper {
  display: flex;
  flex-direction: column;
  gap: 6px;
  position: relative;
  align-items: start;
}

.member .form-input-wrapper .toggle-password {
  position: absolute;
  right: 14px;
  top: 12px;
  color: var(--text-dim);
  font-size: 18px;
  cursor: pointer;
  transition: color 0.2s;
}

.member .form-input-wrapper .toggle-password:hover {
  color: var(--text);
}

.member .form-control {
  width: 100%;
  background: var(--bg);
  border: none;
  border-radius: 25px;
  padding: 12px 14px;
  color: var(--text);
  font-size: 12px;
  outline: none;
  transition: border-color 0.15s ease;
}

.member .form-control:focus {
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.15);
}

.member .form-control::placeholder {
  color: var(--text-dim);
  opacity: 0.6;
  font-size: 10px;
}

.member select.form-control {
  cursor: pointer;
}

.member select.form-control option {
  background-color: var(--bg);
  color: var(--text);
}

.member textarea.form-control {
  resize: vertical;
  min-height: 100px;
}

.member .form-hint {
  font-size: 10px;
  color: var(--text-dim);
  text-align: left;
}

.member .form-check-group {
  display: flex;
  gap: 20px;
  padding-top: 6px;
}

.member .form-check-label {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  color: var(--text);
  cursor: pointer;
}

.member .form-actions-horizontal {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 16px;
  margin-top: 12px;
  padding-top: 20px;
  border-top: 1px solid var(--border);
}

.member .form-actions-content {
  grid-column: 2; /* Menyejajarkan tombol dengan kolom input */
  display: flex;
  justify-content: flex-end;
  gap: 12px;
}

/* ============ RESPONSIVE ============ */
@media (max-width: 980px) {
  body {
    padding-bottom: 64px;
  }
  .tab-arrow {
    display: flex;
  }
  .main-nav,
  .search-trigger,
  .auth-buttons {
    display: none;
  }
  .search-icon-btn,
  .hamburger-btn {
    display: flex;
  }
  .header-right {
    gap: 8px;
  }
  .lang-btn span:not(.flag) {
    display: block;
  }
  .lang-btn {
    padding: 8px 9px;
  }
  .hero-content h1 {
    font-size: 24px;
  }
  .hero-content {
    padding: 0 26px;
  }
  .hero-socials {
    display: none;
  }
  .popular-grid {
    grid-template-columns: repeat(1, 1fr);
  }
  .game-grid.wide {
    grid-template-columns: repeat(3, 1fr);
  }
  .game-grid.boxed {
    grid-template-columns: repeat(3, 1fr);
  }
  .contact-container {
    grid-template-columns: 1fr;
    gap: 2.5rem;
  }
  .footer-columns {
    grid-template-columns: 1fr 1fr;
  }
  .footer-columns-mobile {
    display: none;
  }
  .footer-col-hide {
    display: block;
  }
  .footer-col-show {
    display: block !important;
  }
  .footer-about {
    grid-column: 1/-1;
  }

  .product-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
    padding: 0;
  }
  .mobile-bottom-nav {
    display: flex;
  }

  .ulasan .reviews-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .ulasan .rating-overview {
    grid-template-columns: 1fr;
  }
  .ulasan .rating-score-box {
    border-right: none;
    border-bottom: 1px solid var(--border);
    padding-bottom: 1rem;
  }
  .artikel .article-container {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 560px) {
  #langLabel {
    display: none;
  }
  .user-name {
    display: none;
  }
  .search-suggest-list {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
  }
  .popular-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .popular-thumb {
    width: 35px;
    height: 35px;
    border-radius: 8px;
    overflow: hidden;
    flex-shrink: 0;
  }
  .popular-info .p-name {
    font-size: 14px;
    font-weight: 700;
    margin: 0 0 2px;
    white-space: nowrap;
    width: 78px;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .popular-info .p-pub {
    font-size: 10px;
    color: var(--text-faint);
    margin: 0;
    white-space: nowrap;
    width: 78px;
    overflow: hidden;
  }

  .game-grid.wide {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
  }
  .game-grid.boxed {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
  }
  .wide .game-card {
    border-radius: 14px;
    overflow: hidden;
    background: var(--bg-alt);
    background-size: cover;
    background-position: center;
    border: 2px solid var(--bg);
    position: relative;
    height: 175px;
    transition:
      transform 0.3s ease,
      border-color 0.3s;
  }
  .wide .game-card:hover {
    transform: scale(1.05);
    border: 2px solid var(--primary);
  }
  .wide .game-overlay {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 160px;
    z-index: 2;
    padding: 10px;
    background: linear-gradient(
      to top,
      rgba(6, 9, 18, 0.95) 15%,
      rgba(6, 9, 18, 0.55) 60%,
      rgba(6, 9, 18, 0) 100%
    );
    transform: translateY(100%);
    opacity: 1;
    transition:
      transform 0.35s cubic-bezier(0.4, 0, 0.2, 1),
      opacity 0.35s ease;
    height: 160px;
    align-content: end;
  }
  .wide .game-card:hover .game-overlay {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 160px;
    z-index: 2;
    padding: 10px;
    background: linear-gradient(
      to top,
      rgba(6, 9, 18, 0.95) 15%,
      rgba(6, 9, 18, 0.55) 60%,
      rgba(6, 9, 18, 0) 100%
    );
    transform: translateY(100%);
    opacity: 1;
    transition:
      transform 0.35s cubic-bezier(0.4, 0, 0.2, 1),
      opacity 0.35s ease;
    height: 160px;
    align-content: end;
  }
  .wide .game-overlay .g-name {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.3px;
    margin: 0;
    text-transform: uppercase;
    color: #fff;
    white-space: nowrap;
    width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .wide .game-overlay .g-brand {
    font-size: 10px;
    color: var(--text);
    margin-top: 3px;
    display: flex;
    align-items: center;
    gap: 4px;
    white-space: nowrap;
    width: 100%;
    overflow: hidden;
  }
  .boxed .game-card {
    border-radius: 14px;
    overflow: hidden;
    background: var(--bg-alt);
    background-size: cover;
    background-position: center;
    border: 2px solid var(--bg);
    position: relative;
    height: 175px;
    transition:
      transform 0.3s ease,
      border-color 0.3s;
  }
  .boxed .game-card:hover {
    transform: scale(1.05);
    rotate: 3deg;
    border: 2px solid var(--primary);
  }
  .boxed .game-overlay {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 2;
    padding: 10px;
    background: var(--panel);
    opacity: 1;
    transition:
      transform 0.35s cubic-bezier(0.4, 0, 0.2, 1),
      opacity 0.35s ease;
    align-content: center;
  }
  .boxed .game-overlay .g-name {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.3px;
    margin: 0;
    text-transform: uppercase;
    color: #fff;
    white-space: nowrap;
    width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .boxed .game-overlay .g-brand {
    font-size: 10px;
    color: var(--text);
    margin-top: 3px;
    display: flex;
    align-items: center;
    gap: 4px;
    white-space: nowrap;
    width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .show-more-wrap {
    text-align: center;
    margin-top: 26px;
  }
  .btn-show-more {
    background: var(--bg-alt);
    border: 1px solid var(--border);
    color: var(--text);
    padding: 11px 26px;
    border-radius: 10px;
    font-size: 12px;
    font-weight: 700;
    transition:
      transform 0.3s ease,
      border-color 0.3s;
  }
  .btn-show-more:hover {
    color: var(--primary);
    border-color: var(--primary);
  }
  .btn-show-more.is-hidden {
    display: none;
  }

  .flash-header {
    align-items: flex-start;
  }
  .banner_product {
    width: 100%;
    height: 200px;
    background-image: url("../../../upload/top_banner.png");
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
  }
  .bg_product {
    border-bottom: 1px solid var(--border);
    background-color: hsl(60 9.09% 97.84%;);
    color: hsl(60 9.09% 97.84%);
    background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgMTkyMCAxMDAwIj48c3R5bGUgdHlwZT0idGV4dC9jc3MiPnBhdGh7b3BhY2l0eTouMTtjbGlwLXBhdGg6dXJsKCNjbGlwUGF0aCk7ZmlsbDp1cmwoI2xpbmVhckdyYWRpZW50KTt9PC9zdHlsZT48Y2xpcFBhdGggaWQ9ImNsaXBQYXRoIj48cmVjdCB3aWR0aD0iMTkyMCIgaGVpZ2h0PSIxMDAwIi8+PC9jbGlwUGF0aD48bGluZWFyR3JhZGllbnQgaWQ9ImxpbmVhckdyYWRpZW50IiB4MT0iMCUiIHkxPSIwJSIgeDI9IjkwJSIgeTI9IjAlIj48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9ImhzbCgwIDAlIDEwMCUvMSkiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9ImhzbCgwIDAlIDEwMCUvMCkiLz48L2xpbmVhckdyYWRpZW50PjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE5MjAsMTAwMClzY2FsZSgtMSwtMSkiPjxwYXRoIGQ9Ik0xMzg0LjUgMzQzLjJMMTkyLjcgMTUzNWwtMjEzLjUtM0wxMzgzIDEyOC4ybDEuNSAyMTV6Ii8+PHBhdGggZD0iTTE5MTkuNyA0NDguM0wxMzU5IDEwMDlsLTEwMC40LTEuNEwxOTE5IDM0Ny4xbC43IDEwMS4yeiIvPjxwYXRoIGQ9Ik0xMTc2LjcgNTE0LjNMNjE2IDEwNzVsLTEwMC40LTEuNEwxMTc2IDQxMy4xbC43IDEwMS4yeiIvPjxwYXRoIGQ9Ik02NDQuNyA0NTcuM0w4NCAxMDE4bC0xMDAuNC0xLjRMNjQ0IDM1Ni4xbC43IDEwMS4yeiIvPjxwYXRoIGQ9Ik0xMzg3LjcgNDQ4LjNMODI3IDEwMDlsLTEwMC40LTEuNEwxMzg3IDM0Ny4xbC43IDEwMS4yeiIvPjxwYXRoIGQ9Ik0xMjUwLjEgNDkzLjhsLTU0NSA1NDUtNTIuNyA0My42IDY0MS45LTY0MS45LTQ0LjIgNTMuM3oiLz48cGF0aCBkPSJNODkxLjEgNjM5LjFMLTc3OCAyMzA4LjNsLTI5OC45LTQuMkw4ODkgMzM4LjFsMi4xIDMwMXoiLz48cGF0aCBkPSJNMTg3MC40IDQxOS44TC0yOC44IDIzMTlsLTM0MC4xLTQuOEwxODY4IDc3LjNsMi40IDM0Mi41eiIvPjxwYXRoIGQ9Ik05MDguNCA0MzYuOEwtOTkwLjggMjMzNmwtMzQwLjEtNC44TDkwNiA5NC4zbDIuNCAzNDIuNXoiLz48cGF0aCBkPSJNMTYzMi40IDUxNS44TC0yNjYuOCAyNDE1bC0zNDAuMS00LjhMMTYzMCAxNzMuM2wyLjQgMzQyLjV6Ii8+PHBhdGggZD0iTTExNzYuMyA1NjcuMUwtMTQ0NS42IDMxODlsLTQ2OS41LTYuNkwxMTczIDk0LjNsMy4zIDQ3Mi44eiIvPjxwYXRoIGQ9Ik0xNDI3LjMgNTgwLjFMLTExOTQuNiAzMjAybC00NjkuNS02LjZMMTQyNCAxMDcuM2wzLjMgNDcyLjh6Ii8+PHBhdGggZD0iTTE2NDkuNSA4ODAuMkw0NTcuNyAyMDcybC0yMTMuNS0zTDE2NDggNjY1LjJsMS41IDIxNXoiLz48cGF0aCBkPSJNNjc1LjggNTIyLjJsLTI2MjEuOSAyNjIxLjktNDY5LjQtNi42TDY3Mi41IDQ5LjRsMy4zIDQ3Mi44eiIvPjxwYXRoIGQ9Ik0yNTk1LjkgNTIyLjJMLTI2IDMxNDQuMWwtNDY5LjUtNi42TDI1OTIuNiA0OS40bDMuMyA0NzIuOHoiLz48L2c+PC9zdmc+);
    background-repeat: repeat-x;
    background-position: top;
    background-size:
      clamp(60em, 100rem, 100em) auto,
      cover;
  }
  .product-header {
    display: flex;
    gap: 12px;
    padding: 15px;
    margin: 0 auto;
    align-items: flex-start;
  }
  .product-thumb {
    perspective: 25em;
  }
  .product-thumb img {
    position: relative;
    top: -4rem;
    transform: rotateY(20deg) rotateX(-4deg) !important;
    transform-origin: left center;
    width: 125px;
    height: 125px;
  }

  .product-thumb img.shadow-2xl {
    --tw-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
    --tw-shadow-colored: 0 25px 50px -12px var(--primary);
  }

  .product-thumb img.object-cover {
    -o-object-fit: cover;
    object-fit: cover;
  }

  .product-thumb img.rounded-2xl {
    border-radius: 1rem;
  }

  .product-thumb img.aspect-square {
    aspect-ratio: 1/1;
  }
  .product-info {
    flex: 1;
    padding-top: 4px;
  }
  .product-info .product-hide {
    display: none;
  }
  .product-info .product-show {
    display: block;
  }
  .product-info h1 {
    font-size: 0.75rem;
    font-weight: 900;
    letter-spacing: 0.5px;
    margin-bottom: 4px;
  }
  .product-info .publisher {
    color: var(--dim);
    font-size: 0.75rem;
    margin-bottom: 18px;
  }
  .product-badges {
    display: none;
  }
  .product-badgese {
    display: flex;
    gap: 5px;
    flex-wrap: wrap;
    padding: 0 15px 15px;
    margin-top: -60px;
  }
  .product-badgese .badge {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 10px;
    font-weight: 500;
    color: #cfd6e6;
    white-space: nowrap;
  }
  .product-badgese .badge img {
    width: 1.5rem;
    height: 1.5rem;
  }
  .trust-strip {
    background: var(--bg-alt);
    border-bottom: 1px solid var(--border);
    margin: 15px;
    border-radius: 25px;
  }
  .trust-inner {
    max-width: 1400px;
    margin: 0 auto;
    padding: 12px 40px;
    display: flex;
    justify-content: left;
    gap: 10px;
    flex-wrap: wrap;
  }
  .trust-item {
    display: flex;
    align-items: center;
    gap: 9px;
    font-size: 12px;
    color: #cfd6e6;
    font-weight: 500;
  }
  .trust-item .icon {
    color: var(--blue-light);
    font-size: 16px;
  }
  .product-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
    padding: 0;
  }
  .panel-body {
    padding: 24px 8px;
  }

  .accordion-content {
    padding: 20px 10px;
  }

  .form-row {
    grid-template-columns: 1fr 1fr;
  }
  .qty-btn {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    border: none;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    cursor: pointer;
    transition:
      opacity 0.2s,
      transform 0.1s;
  }
  .summary-fixed-bottom {
    position: fixed;
    bottom: 0;
    width: 100%;
    height: auto;
    padding: 10px;
    background: var(--bg-alt);
    z-index: 9999;
  }
  .payment-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
  }
  .payment-card {
    background-color: #0d0f12;
    border: 1px solid #30363d;
    border-radius: 10px;
    padding: 15px;
    cursor: pointer;
    transition: all 0.2s;
    position: relative;
  }

  .payment-card:hover {
    border-color: var(--primary);
    transform: translateY(-2px);
  }

  .payment-card.selected {
    border-color: var(--primary);
    background-color: #1a2332;
  }

  .payment-logo {
    background: #fff;
    margin-bottom: 12px;
    display: flex;
    align-items: center;
    width: 100px;
    height: 40px;
    border-radius: 8px;
    padding: 3px;
  }

  .payment-logo img {
    width: 100%;
    height: 100%;
  }
  .payment-price {
    font-size: 12px;
    font-weight: 600;
    color: #ffffff;
    margin-bottom: 4px;
  }

  .cektrx .panel {
    padding: 24px 8px;
  }
  .payment-desc {
    font-size: 8px;
    color: #8b949e;
    font-style: italic;
    border-top: 1px dotted #8b949e;
    margin-top: 8px;
    padding-top: 8px;
  }
  .contact-container {
    grid-template-columns: 1fr;
    gap: 2.5rem;
  }
  .footer-columns {
    grid-template-columns: 1fr;
  }
  .footer-columns-mobile {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    padding: 0 20px 34px;
  }
  .footer-col-hide {
    display: none;
  }
  .footer-col-show {
    display: block;
  }
  .foot-link {
    color: var(--primary);
    font-weight: 700;
    margin: 10px;
  }
  .foot-link:hover {
    color: var(--primary-hover);
  }
  .flash-card {
    flex: 0 0 90%;
  }

  .flash-tag-content img {
    position: absolute;
    top: -2px;
    right: 0;
    width: 3rem;
    height: auto;
  }
  .flash-card-box {
    display: flex;
    height: 115px;
    flex: 0 0 360px;
    overflow: hidden;
    position: relative;
  }

  .card-col-1 {
    flex: 0 0 30%;
    height: 100%;
    position: relative;
    overflow: hidden;
    background: linear-gradient(135deg, #1e3c72, #2a5298);
  }

  .card-col-1 img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  .card-col-2 {
    flex: 0 0 55%;
    padding: 16px 8px;
    display: flex;
    flex-direction: column;
    justify-content: top;
    gap: 4px;
  }

  .subtitle {
    font-size: 8px;
    font-weight: 700;
    color: var(--primary);
    text-transform: uppercase;
  }

  .title {
    font-size: 10px;
    font-weight: 700;
    color: #ffffff;
    margin-top: -2px;
  }

  .price-container {
    display: flex;
    flex-direction: column;
  }

  .current-price {
    font-size: 16px;
    font-weight: 900;
    color: var(--primary);
    margin-bottom: 5px;
  }

  .strike-price {
    font-size: 10px;
    font-weight: 900;
    color: var(--text-dim);
    text-decoration: line-through;
  }

  .card-col-3 {
    flex: 0 0 15%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    position: relative;
    padding-left: 10px;
  }

  .flash-tag-content {
    text-align: center;
    color: #000;
  }

  .flash-tag-content img {
    position: absolute;
    top: -2px;
    right: 0;
    width: 5rem;
    height: auto;
  }

  .ulasan .reviews-grid {
    grid-template-columns: 1fr;
  }
  .ulasan .rating-overview {
    grid-template-columns: 1fr;
  }
  .artikel .article-container {
    grid-template-columns: 1fr; /* Kolom kiri lebih lebar */
  }
  .artikel .main-article .article-title {
    font-size: 2.4rem;
  }

  .article-grid {
    grid-template-columns: 1fr;
  }
  .article-card {
    flex: 0 0 calc(50% - 14px);
    max-width: calc(50% - 14px);
    box-sizing: border-box;
  }
  .article-thumb {
    height: 150px;
    border-radius: 14px;
  }
  .article-thumb img {
    width: 100%;
    height: 100%;
    display: block;
    margin: 0 auto;
    border-radius: 14px;
  }
  .article-body {
    padding: 16px 0;
  }
  .article-body h3 {
    font-size: 12px;
    line-height: 1.4;
    margin: 0 0 10px;
    font-weight: 700;
    color: var(--heading);
  }
  .article-body .art-source {
    font-size: 10px;
    font-weight: 700;
    color: var(--text);
    margin: 0 0 4px;
  }
  .article-body .art-sub {
    font-size: 10px;
    color: var(--text);
    margin: 0;
    line-height: 1.4;
  }

  .artikel-card {
    flex: 0 0 calc(50% - 14px);
    max-width: calc(50% - 14px);
    box-sizing: border-box;
  }
  .artikel-thumb {
    height: 150px;
    border-radius: 14px;
  }
  .artikel-thumb img {
    width: 100%;
    height: 100%;
    display: block;
    margin: 0 auto;
    border-radius: 14px;
  }
  .artikel-body {
    padding: 16px 0;
  }
  .artikel-body h3 {
    font-size: 12px;
    line-height: 1.4;
    margin: 0 0 10px;
    font-weight: 700;
    color: var(--heading);
  }
  .artikel-body .art-source {
    font-size: 10px;
    font-weight: 700;
    color: var(--text);
    margin: 0 0 4px;
  }
  .artikel-body .art-sub {
    font-size: 10px;
    color: var(--text);
    margin: 0;
    line-height: 1.4;
  }
  .link-underline {
    font-size: 12px;
    font-weight: 700;
    color: var(--primary);
    text-decoration: underline;
  }

  .login-container {
    max-width: 90%;
  }

  .login .login-banner {
    display: none;
  }

  .register .form-row {
    flex-direction: column;
    gap: 14px;
  }

  .member-container {
    flex-direction: column;
  }

  .member .sidebar {
    display: none;
  }

  .filter-actions {
    grid-column: span 1;
  }

  .member .form-group-horizontal,
  .member .form-actions-horizontal {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .member .form-actions-content {
    grid-column: 1;
    justify-content: flex-end;
  }

  .leaderboard-grid {
    grid-template-columns: 1fr;
  }
}
