/* ==========================================================================
   PK888 Game — Royal Vault Edition
   pages/games.css — slot catalogue
   ========================================================================== */

/* --------------------------------------------------------------------------
   Page hero
   -------------------------------------------------------------------------- */

.page-hero {
  position: relative;
  overflow: hidden;
  padding-block: clamp(48px, 5.5vw, 92px) clamp(40px, 4.5vw, 72px);
  border-bottom: 1px solid var(--color-border);
}

.page-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(ellipse 60% 70% at 88% 20%, rgba(201, 162, 75, 0.13), transparent 62%),
    radial-gradient(ellipse 50% 60% at 6% 90%, rgba(158, 16, 48, 0.13), transparent 64%);
}

.page-hero__inner {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr);
  gap: clamp(30px, 4vw, 64px);
  align-items: end;
}

@media (max-width: 900px) {
  .page-hero__inner { grid-template-columns: minmax(0, 1fr); }
}

/* .breadcrumb lives in main.css — shared across every inner page. */

.page-hero__title { margin-bottom: var(--space-5); }

.page-hero__lede { font-size: var(--fs-lg); max-width: 60ch; }

.page-hero__facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-3);
  list-style: none;
  margin: 0;
  padding: 0;
}

.page-hero__facts li {
  padding: var(--space-4) var(--space-5);
  background: rgba(44, 22, 80, 0.55);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
}

.page-hero__facts b {
  display: block;
  font-family: var(--font-display);
  font-size: var(--fs-xl);
  color: var(--color-gold-bright);
  line-height: 1.1;
}

.page-hero__facts span {
  font-size: var(--fs-3xs);
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--color-text-muted);
}

/* --------------------------------------------------------------------------
   Vault tab filters
   -------------------------------------------------------------------------- */

.filters {
  position: sticky;
  top: 84px;
  z-index: var(--z-sticky);
  padding-block: var(--space-5);
  background: rgba(18, 8, 35, 0.92);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--color-border);
}

@media (max-width: 520px) {
  .filters { top: 72px; }
}

.filters__inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
}

.filters__tabs {
  display: flex;
  gap: 10px;
  overflow-x: auto;
  padding-bottom: 4px;
  scrollbar-width: thin;
  -webkit-overflow-scrolling: touch;
  max-width: 100%;
}

.filters__tabs::-webkit-scrollbar { height: 5px; }
.filters__tabs::-webkit-scrollbar-track { background: rgba(255, 255, 255, 0.04); border-radius: 3px; }
.filters__tabs::-webkit-scrollbar-thumb { background: var(--color-gold-line); border-radius: 3px; }

.tab {
  flex: 0 0 auto;
  padding: 11px 20px;
  font-size: var(--fs-2xs);
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-text-secondary);
  background: rgba(44, 22, 80, 0.6);
  border: 1px solid var(--color-border-soft);
  border-radius: var(--radius-sm) var(--radius-sm) 2px 2px;
  white-space: nowrap;
  position: relative;
  transition: color var(--dur-fast) var(--ease-soft),
              border-color var(--dur-fast) var(--ease-soft),
              background-color var(--dur-fast) var(--ease-soft),
              transform var(--dur-fast) var(--ease-metal);
}

.tab:hover { color: var(--color-gold-bright); border-color: var(--color-border); transform: translateY(-2px); }

.tab.is-active {
  color: var(--color-text-on-gold);
  background-image: var(--gradient-gold-plate);
  border-color: var(--color-gold-bright);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.4) inset, 0 6px 16px rgba(0, 0, 0, 0.4);
}

.filters__count {
  font-size: var(--fs-2xs);
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--color-text-muted);
  white-space: nowrap;
}

.filters__count b { color: var(--color-gold-bright); }

/* --------------------------------------------------------------------------
   Catalogue grid — mixed sizing for an asymmetric rhythm
   -------------------------------------------------------------------------- */

.catalogue {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 178px), 1fr));
  gap: clamp(14px, 1.6vw, 22px);
  /* Each card sizes to its own aspect-ratio rather than stretching to match
     the tallest item in its row — required so the wide nth(7n+1) tile below
     doesn't force every other card that row to stretch (and crop) too. */
  align-items: start;
}

@media (max-width: 460px) {
  .catalogue { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
}

/* Every seventh tile spans two columns for an editorial break in the rhythm.
   The media keeps its native 211:260 ratio (no aspect-ratio override) so the
   artwork simply scales up rather than being cropped by a mismatched box. */
@media (min-width: 700px) {
  .catalogue > [data-category]:nth-child(7n + 1) { grid-column: span 2; }
}

.catalogue__empty {
  grid-column: 1 / -1;
  padding: var(--space-9) var(--space-5);
  text-align: center;
  color: var(--color-text-muted);
}

.load-more-wrap {
  display: flex;
  justify-content: center;
  margin-top: var(--space-8);
}

/* --------------------------------------------------------------------------
   Category explainer strip
   -------------------------------------------------------------------------- */

.cat-note {
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr);
  gap: var(--space-4);
  padding: var(--space-5) var(--space-6);
  background: rgba(34, 16, 63, 0.55);
  border: 1px solid var(--color-border-soft);
  border-radius: var(--radius-md);
}

.cat-note__mark {
  width: 46px;
  height: 46px;
  display: grid;
  place-content: center;
  border-radius: var(--radius-sm);
  background: linear-gradient(150deg, rgba(201, 162, 75, 0.2), rgba(201, 162, 75, 0.05));
  border: 1px solid var(--color-border);
  color: var(--color-gold-bright);
  font-family: var(--font-display);
  font-weight: 900;
}

.cat-note h3 {
  font-family: var(--font-body);
  font-size: var(--fs-md);
  font-weight: 800;
  color: var(--color-text-primary);
  margin-bottom: 5px;
}

.cat-note p { font-size: var(--fs-sm); margin: 0; }
