/*
 * ============================================================
 * YEP CASINO DEUTSCHLAND — styles.css
 * yepcasino-2026.de
 * ============================================================
 * Table of Contents:
 *  1.  CSS Custom Properties (Design Tokens)
 *  2.  Reset & Base
 *  3.  Typography
 *  4.  Layout Utilities (.container, .section__grid)
 *  5.  Accessibility (skip-link, focus styles)
 *  6.  Buttons
 *  7.  Header & Navigation
 *  8.  Mobile Menu
 *  9.  Hero Banner
 * 10.  Breadcrumbs
 * 11.  Section Defaults & Tags
 * 12.  Stats Row
 * 13.  Tables (responsive card pattern on mobile)
 * 14.  Steps List (registration)
 * 15.  Feature Grid (login)
 * 16.  Bonus Cards (welcome package)
 * 17.  No-Deposit Cards
 * 18.  Game Categories Grid
 * 19.  Provider Badges
 * 20.  Slots Gallery
 * 21.  Live Games List
 * 22.  Insta-Games
 * 23.  App Features
 * 24.  VIP Tiers
 * 25.  VIP Benefits
 * 26.  Security Badges
 * 27.  Final CTA Banner
 * 28.  Footer
 * 29.  Back to Top Button
 * 30.  Particle Canvas
 * 31.  Scroll Animations
 * 32.  Responsive Breakpoints
 * ============================================================
 */

/* ============================================================
   1. CSS CUSTOM PROPERTIES (DESIGN TOKENS)
   Central place for all theme values — change once, updates everywhere
   ============================================================ */
:root {
  /* Color palette — dark casino theme with gold accents */
  --color-bg-base:       #07070f;    /* near-black with slight purple tint */
  --color-bg-alt:        #0d0d1e;    /* slightly lighter dark for alternate sections */
  --color-bg-card:       rgba(255, 255, 255, 0.04);  /* glassmorphism card bg */
  --color-bg-card-hover: rgba(255, 255, 255, 0.07);

  --color-gold:          #f0b429;    /* primary gold accent */
  --color-gold-light:    #ffd166;    /* lighter gold for hover / gradients */
  --color-gold-dark:     #c8901c;    /* darker gold for pressed states */

  --color-neon:          #00e5ff;    /* electric cyan – used sparingly for contrast */
  --color-red:           #ff4d6d;    /* urgency / hot badges */

  --color-text:          #e8e8f4;    /* main body text */
  --color-text-muted:    #8888aa;    /* secondary / helper text */
  --color-border:        rgba(240, 180, 41, 0.18); /* subtle gold borders */
  --color-border-strong: rgba(240, 180, 41, 0.5);

  /* Typography */
  --font-body:    'Inter', sans-serif;
  --font-display: 'Orbitron', sans-serif;

  /* Spacing scale */
  --space-xs:  0.25rem;   /* 4px  */
  --space-sm:  0.5rem;    /* 8px  */
  --space-md:  1rem;      /* 16px */
  --space-lg:  1.5rem;    /* 24px */
  --space-xl:  2.5rem;    /* 40px */
  --space-2xl: 4rem;      /* 64px */
  --space-3xl: 6rem;      /* 96px */

  /* Border-radius */
  --radius-sm:   6px;
  --radius-md:   12px;
  --radius-lg:   20px;
  --radius-full: 9999px;

  /* Shadows */
  --shadow-card:   0 4px 30px rgba(0, 0, 0, 0.4);
  --shadow-gold:   0 0 20px rgba(240, 180, 41, 0.35);
  --shadow-glow:   0 0 40px rgba(240, 180, 41, 0.5), 0 0 80px rgba(240, 180, 41, 0.2);

  /* Transitions */
  --transition-fast:   150ms ease;
  --transition-normal: 300ms ease;
  --transition-slow:   600ms ease;

  /* Layout */
  --container-max:  1240px;
  --header-height:  72px;
}


/* ============================================================
   2. RESET & BASE
   Minimal reset to normalise cross-browser defaults
   ============================================================ */
*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  font-size: 16px;
  scroll-behavior: smooth;        /* enables smooth anchor scrolling */
  /* Pinch-to-zoom is enabled by HTML meta viewport (maximum-scale=5.0) */
}

body {
  font-family:      var(--font-body);
  background-color: var(--color-bg-base);
  color:            var(--color-text);
  line-height:      1.65;
  overflow-x:       hidden; /* prevent horizontal scrollbars from decorative elements */
  -webkit-font-smoothing:  antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Custom scrollbar — subtle gold on dark */
::-webkit-scrollbar       { width: 8px; }
::-webkit-scrollbar-track { background: var(--color-bg-base); }
::-webkit-scrollbar-thumb { background: var(--color-border-strong); border-radius: var(--radius-full); }
::-webkit-scrollbar-thumb:hover { background: var(--color-gold); }

img,
video {
  max-width: 100%;
  height: auto;
  display: block;
}

ul,
ol { list-style: none; }

a {
  color: var(--color-gold);
  text-decoration: none;
  transition: color var(--transition-fast);
}
a:hover { color: var(--color-gold-light); }


/* ============================================================
   3. TYPOGRAPHY
   Scale and styles for all heading levels
   ============================================================ */
h1, h2, h3, h4, h5, h6 {
  font-family:  var(--font-display);
  line-height:  1.2;
  color:        var(--color-text);
  letter-spacing: 0.01em;
}

h1 { font-size: clamp(2rem,   5vw, 3.5rem); }
h2 { font-size: clamp(1.6rem, 3vw, 2.4rem); }
h3 { font-size: clamp(1.1rem, 2vw, 1.5rem); }
h4 { font-size: 1.1rem; }

p { margin-bottom: var(--space-md); }
p:last-child { margin-bottom: 0; }

strong { color: var(--color-gold-light); font-weight: 600; }
em     { color: var(--color-neon); font-style: normal; }

/* Reusable gradient-text utility */
.gradient-text {
  background: linear-gradient(135deg, var(--color-gold) 0%, var(--color-gold-light) 50%, #fff 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.text-link {
  color: var(--color-gold);
  text-decoration: underline dotted;
  transition: color var(--transition-fast);
}
.text-link:hover { color: var(--color-gold-light); }


/* ============================================================
   4. LAYOUT UTILITIES
   ============================================================ */
/* Centred max-width container with horizontal padding */
.container {
  width:   100%;
  max-width: var(--container-max);
  margin:  0 auto;
  padding: 0 var(--space-lg);
}

/* Two-column asymmetric grids */
.section__grid {
  display: grid;
  gap: var(--space-xl);
  align-items: start;
}
.section__grid--2col  { grid-template-columns: 1fr 1fr; }
.section__grid--60-40 { grid-template-columns: 1.5fr 1fr; }


/* ============================================================
   5. ACCESSIBILITY
   ============================================================ */
/* Skip link — visible on focus for keyboard users */
.skip-link {
  position:   absolute;
  top:        -100%;
  left:       var(--space-md);
  padding:    var(--space-sm) var(--space-md);
  background: var(--color-gold);
  color:      #000;
  font-weight: 600;
  border-radius: var(--radius-sm);
  z-index:    9999;
  transition: top var(--transition-fast);
}
.skip-link:focus { top: var(--space-md); }

/* Focus ring — visible and on-brand */
:focus-visible {
  outline:        2px solid var(--color-gold);
  outline-offset: 3px;
  border-radius:  var(--radius-sm);
}


/* ============================================================
   6. BUTTONS
   Three button variants: gold (primary), outline, ghost, nav
   ============================================================ */
.btn {
  display:         inline-flex;
  align-items:     center;
  justify-content: center;
  gap:             var(--space-sm);
  padding:         0.75em 1.8em;
  font-family:     var(--font-display);
  font-size:       0.875rem;
  font-weight:     700;
  letter-spacing:  0.06em;
  text-transform:  uppercase;
  border:          2px solid transparent;
  border-radius:   var(--radius-full);
  cursor:          pointer;
  white-space:     nowrap;
  transition:      all var(--transition-normal);
  text-decoration: none;
}

/* Gold / Primary — used for main conversions */
.btn--gold {
  background:  linear-gradient(135deg, var(--color-gold) 0%, var(--color-gold-dark) 100%);
  color:       #000;
  border-color: transparent;
}
.btn--gold:hover {
  background: linear-gradient(135deg, var(--color-gold-light) 0%, var(--color-gold) 100%);
  color:      #000;
  transform:  translateY(-2px);
  box-shadow: var(--shadow-gold);
}

/* Glowing pulse — used on main hero CTA */
.btn--glow {
  animation: pulse-glow 2.5s ease-in-out infinite;
}
@keyframes pulse-glow {
  0%, 100% { box-shadow: 0 0 10px rgba(240, 180, 41, 0.4); }
  50%       { box-shadow: 0 0 30px rgba(240, 180, 41, 0.8), 0 0 60px rgba(240, 180, 41, 0.3); }
}

/* Outline — secondary actions */
.btn--outline {
  background:   transparent;
  border-color: var(--color-gold);
  color:        var(--color-gold);
}
.btn--outline:hover {
  background:  var(--color-gold);
  color:       #000;
  transform:   translateY(-2px);
}

/* Ghost — tertiary, subtle */
.btn--ghost {
  background:   transparent;
  border-color: var(--color-border-strong);
  color:        var(--color-text);
}
.btn--ghost:hover {
  border-color: var(--color-gold);
  color:        var(--color-gold);
}

/* Navigation header variant */
.btn--nav {
  background:  linear-gradient(135deg, var(--color-gold), var(--color-gold-dark));
  color:       #000;
  padding:     0.5em 1.4em;
  font-size:   0.8rem;
}
.btn--nav:hover { transform: scale(1.05); box-shadow: var(--shadow-gold); }

/* Sizes */
.btn--large { padding: 1em 2.4em; font-size: 1rem; }
.btn--sm    { padding: 0.5em 1.2em; font-size: 0.75rem; }
.btn--full  { width: 100%; }


/* ============================================================
   7. HEADER & NAVIGATION
   Sticky header with backdrop blur — shrinks on scroll (JS adds .scrolled)
   ============================================================ */
.site-header {
  position:   fixed;
  top:        0;
  left:       0;
  right:      0;
  z-index:    1000;
  height:     var(--header-height);
  background: rgba(7, 7, 15, 0.85);
  backdrop-filter:         blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-bottom: 1px solid var(--color-border);
  transition: all var(--transition-normal);
}

/* When user scrolls down, header shrinks slightly */
.site-header.scrolled {
  height:     60px;
  background: rgba(7, 7, 15, 0.96);
}

.header__inner {
  display:         flex;
  align-items:     center;
  justify-content: space-between;
  height:          100%;
}

.header__logo img {
  height:    40px;
  width:     auto;
  transition: opacity var(--transition-fast);
}
.header__logo:hover img { opacity: 0.85; }

/* Desktop nav — horizontal list */
.header__nav .nav__list {
  display:     flex;
  align-items: center;
  gap:         var(--space-md);
}

.nav__link {
  font-family:    var(--font-display);
  font-size:      0.78rem;
  font-weight:    600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color:          var(--color-text-muted);
  padding:        var(--space-xs) var(--space-sm);
  border-radius:  var(--radius-sm);
  transition:     color var(--transition-fast), background var(--transition-fast);
}
.nav__link:hover,
.nav__link.active {
  color:      var(--color-gold);
  background: rgba(240, 180, 41, 0.08);
}

/* Hamburger button — visible only on mobile */
.hamburger {
  display:         none;   /* hidden on desktop */
  flex-direction:  column;
  gap:             5px;
  background:      transparent;
  border:          none;
  cursor:          pointer;
  padding:         var(--space-sm);
  border-radius:   var(--radius-sm);
}
.hamburger__line {
  display:      block;
  width:        24px;
  height:       2px;
  background:   var(--color-text);
  border-radius: var(--radius-full);
  transition:   all var(--transition-normal);
  transform-origin: center;
}

/* Animated X when open */
.hamburger.is-active .hamburger__line:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.hamburger.is-active .hamburger__line:nth-child(2) { opacity: 0; transform: scaleX(0); }
.hamburger.is-active .hamburger__line:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }


/* ============================================================
   8. MOBILE MENU
   Full-width slide-down panel, hidden by default
   ============================================================ */
.mobile-menu {
  position:   fixed;
  top:        var(--header-height);
  left:       0;
  right:      0;
  background: rgba(7, 7, 15, 0.98);
  backdrop-filter:         blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-bottom: 1px solid var(--color-border);
  z-index:    999;
  overflow:   hidden;
  max-height: 0;
  transition: max-height var(--transition-slow);
}
.mobile-menu.is-open {
  max-height: 90vh;
  overflow-y: auto;
}

.mobile-menu__list {
  padding: var(--space-lg);
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
}

.mobile-menu__link {
  display:       block;
  padding:       var(--space-md) var(--space-md);
  font-family:   var(--font-display);
  font-size:     0.9rem;
  color:         var(--color-text);
  border-radius: var(--radius-md);
  transition:    all var(--transition-fast);
  border:        1px solid transparent;
}
.mobile-menu__link:hover {
  color:        var(--color-gold);
  background:   rgba(240, 180, 41, 0.06);
  border-color: var(--color-border);
}

.mobile-menu__cta {
  margin-top: var(--space-md);
  text-align: center;
}


/* ============================================================
   9. HERO BANNER
   Full-viewport-height banner section.
   Desktop:  background from banner.png
   Mobile:   background switches to banner-mobile.png via @media
   ============================================================ */
.hero {
  position:            relative;
  width:               100%;
  min-height:          100vh;        /* fills the viewport */
  background-image:    url('img/banner/banner.png');
  background-size:     cover;
  background-position: center top;
  background-repeat:   no-repeat;
  margin-top:          var(--header-height); /* clear sticky header */
  display:             flex;
  align-items:         center;
}

/* Semi-transparent overlay — sits above the image, below the text */
.hero__overlay {
  position:   absolute;
  inset:      0;
  /* Dark-to-transparent gradient for better text legibility while showing the image */
  background: linear-gradient(
    135deg,
    rgba(7, 7, 15, 0.78) 0%,
    rgba(7, 7, 15, 0.55) 50%,
    rgba(7, 7, 15, 0.35) 100%
  );
  display:         flex;
  /* flex-start so content sits near the top, not dead-centre of the viewport */
  align-items:     flex-start;
  justify-content: center;
}

/* Content inside overlay — centred horizontally, shifted toward the top */
.hero__content {
  text-align: center;
  max-width:  700px;
  width:      100%;
  margin:     0 auto;
  /* ~12 % of viewport height gives a comfortable gap below the sticky header */
  padding:    12vh var(--space-lg) var(--space-2xl);
}

/* Pre-heading badge */
.hero__badge {
  display:          inline-block;
  padding:          0.3em 1em;
  background:       rgba(240, 180, 41, 0.15);
  border:           1px solid var(--color-border-strong);
  border-radius:    var(--radius-full);
  font-size:        0.75rem;
  font-family:      var(--font-display);
  letter-spacing:   0.1em;
  text-transform:   uppercase;
  color:            var(--color-gold);
  margin-bottom:    var(--space-md);
  backdrop-filter:  blur(4px);
}

/* Main h1 — large and impactful */
.hero__title {
  font-size:      clamp(2.5rem, 7vw, 5rem);
  font-weight:    900;
  line-height:    1.1;
  color:          #fff;
  text-shadow:    0 2px 20px rgba(0, 0, 0, 0.8);
  margin-bottom:  var(--space-md);
}
.hero__title--gold {
  background:              linear-gradient(135deg, var(--color-gold), var(--color-gold-light), #fff9e0);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip:         text;
  display:                 block;
}

.hero__subtitle {
  font-size:     clamp(1rem, 2vw, 1.25rem);
  color:         rgba(255, 255, 255, 0.85);
  margin-bottom: var(--space-xl);
  text-shadow:   0 1px 8px rgba(0, 0, 0, 0.5);
}

/* CTA button group — flex-wrap for small screens */
.hero__buttons {
  display:         flex;
  gap:             var(--space-md);
  justify-content: center;
  flex-wrap:       wrap;
  margin-bottom:   var(--space-xl);
}

/* Trust badges row below CTA */
.hero__trust {
  display:         flex;
  gap:             var(--space-md);
  justify-content: center;
  flex-wrap:       wrap;
}
.trust-badge {
  padding:        0.3em 0.9em;
  background:     rgba(255, 255, 255, 0.08);
  border:         1px solid rgba(255, 255, 255, 0.15);
  border-radius:  var(--radius-full);
  font-size:      0.75rem;
  backdrop-filter: blur(4px);
}


/* ============================================================
   10. BREADCRUMBS
   Slim navigation strip below the hero
   ============================================================ */
.breadcrumbs {
  background:    rgba(255, 255, 255, 0.03);
  border-bottom: 1px solid var(--color-border);
  padding:       var(--space-sm) 0;
}

.breadcrumbs__list {
  display:     flex;
  align-items: center;
  gap:         var(--space-sm);
  flex-wrap:   wrap;
}

.breadcrumbs__item { display: flex; align-items: center; gap: var(--space-xs); }

.breadcrumbs__link {
  display:     inline-flex;
  align-items: center;
  gap:         var(--space-xs);
  font-size:   0.8rem;
  color:       var(--color-text-muted);
  transition:  color var(--transition-fast);
}
.breadcrumbs__link:hover { color: var(--color-gold); }

.breadcrumbs__item--separator { color: var(--color-text-muted); font-size: 0.9rem; }
.breadcrumbs__item--current   { font-size: 0.8rem; color: var(--color-gold); }


/* ============================================================
   11. SECTION DEFAULTS & TAGS
   Consistent vertical padding and heading decoration
   ============================================================ */
.section {
  padding: var(--space-3xl) 0;
}
/* Alternate background for visual rhythm between sections */
.section--alt {
  background: var(--color-bg-alt);
  position:   relative;
}
/* Subtle top border accent */
.section--alt::before {
  content:    '';
  position:   absolute;
  top:        0;
  left:       50%;
  transform:  translateX(-50%);
  width:      120px;
  height:     2px;
  background: linear-gradient(90deg, transparent, var(--color-gold), transparent);
}

/* Section header centering */
.section__header {
  text-align:    center;
  margin-bottom: var(--space-xl);
}

/* Small uppercase tag above section titles */
.section__tag {
  display:        inline-block;
  padding:        0.2em 0.8em;
  font-family:    var(--font-display);
  font-size:      0.7rem;
  font-weight:    700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color:          var(--color-gold);
  background:     rgba(240, 180, 41, 0.1);
  border:         1px solid var(--color-border);
  border-radius:  var(--radius-full);
  margin-bottom:  var(--space-md);
}

.section__title {
  margin-bottom: var(--space-md);
}

.section__lead {
  font-size:  1.05rem;
  color:      var(--color-text-muted);
  max-width:  680px;
  margin:     0 auto;
  line-height: 1.7;
}

/* Centred CTA row below section content */
.section__cta {
  text-align:  center;
  margin-top:  var(--space-xl);
}

/* Small legal / info note */
.section__note {
  margin-top:  var(--space-xl);
  padding:     var(--space-md) var(--space-lg);
  background:  rgba(255, 255, 255, 0.03);
  border-left: 3px solid var(--color-gold);
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
  font-size:   0.875rem;
  color:       var(--color-text-muted);
}


/* ============================================================
   12. STATS ROW
   Counter numbers shown in the overview section
   ============================================================ */
.stats-row {
  display:         flex;
  gap:             var(--space-lg);
  flex-wrap:       wrap;
  margin-top:      var(--space-xl);
  padding-top:     var(--space-xl);
  border-top:      1px solid var(--color-border);
}

.stat-item {
  display:        flex;
  flex-direction: column;
  align-items:    flex-start;
  gap:            var(--space-xs);
}

.stat-item__number {
  font-family:    var(--font-display);
  font-size:      clamp(1.8rem, 4vw, 2.5rem);
  font-weight:    900;
  background:     linear-gradient(135deg, var(--color-gold), var(--color-gold-light));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  line-height:    1;
}

.stat-item__label {
  font-size:   0.75rem;
  font-family: var(--font-display);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color:       var(--color-text-muted);
}


/* ============================================================
   13. TABLES — Responsive Card Pattern
   On small screens, cells stack vertically using data-label attrs
   ============================================================ */

/* Scrollable wrapper for overflow on very small screens */
.table-wrapper {
  overflow-x:    auto;
  border-radius: var(--radius-md);
  border:        1px solid var(--color-border);
  /* The -webkit-overflow-scrolling ensures smooth scrolling on iOS */
  -webkit-overflow-scrolling: touch;
}

.data-table {
  width:           100%;
  border-collapse: collapse;
  font-size:       0.9rem;
  background:      var(--color-bg-card);
}

/* Visually hidden caption still available to screen readers */
.data-table__caption {
  caption-side: top;
  padding:       var(--space-md) var(--space-lg);
  font-family:   var(--font-display);
  font-size:     0.8rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color:         var(--color-gold);
  text-align:    left;
  background:    rgba(240, 180, 41, 0.06);
  border-bottom: 1px solid var(--color-border);
}

.data-table thead tr {
  background: rgba(240, 180, 41, 0.1);
}

.data-table th {
  padding:        var(--space-md) var(--space-lg);
  font-family:    var(--font-display);
  font-size:      0.75rem;
  font-weight:    700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color:          var(--color-gold);
  text-align:     left;
  white-space:    nowrap;
  border-bottom:  1px solid var(--color-border);
}

.data-table td {
  padding:       var(--space-md) var(--space-lg);
  border-bottom: 1px solid var(--color-border);
  color:         var(--color-text);
  vertical-align: middle;
}

/* Alternating row stripes */
.data-table tbody tr:nth-child(even) { background: rgba(255, 255, 255, 0.02); }
.data-table tbody tr:hover           { background: rgba(240, 180, 41, 0.04); }
.data-table tbody tr:last-child td   { border-bottom: none; }


/* ============================================================
   14. STEPS LIST (Registration section)
   Numbered vertical steps with connecting line
   ============================================================ */
.steps-list {
  counter-reset: steps;
  display:       flex;
  flex-direction: column;
  gap:           0;
  position:      relative;
  max-width:     800px;
  margin:        0 auto var(--space-xl);
}

/* Vertical connecting line between steps */
.steps-list::before {
  content:    '';
  position:   absolute;
  left:       calc(2rem - 1px); /* centred on the number circle */
  top:        2.5rem;
  bottom:     2.5rem;
  width:      2px;
  background: linear-gradient(to bottom, var(--color-gold), transparent);
}

.steps-list__item {
  display:     flex;
  gap:         var(--space-lg);
  align-items: flex-start;
  padding:     var(--space-lg) 0;
  position:    relative;
}

/* Gold numbered circle */
.steps-list__number {
  flex-shrink:     0;
  width:           4rem;
  height:          4rem;
  border-radius:   50%;
  background:      linear-gradient(135deg, var(--color-gold), var(--color-gold-dark));
  color:           #000;
  font-family:     var(--font-display);
  font-weight:     900;
  font-size:       1.1rem;
  display:         flex;
  align-items:     center;
  justify-content: center;
  box-shadow:      var(--shadow-gold);
  position:        relative;
  z-index:         1;        /* sits above the connecting line */
}

.steps-list__content {
  padding-top: var(--space-sm);
}
.steps-list__heading {
  margin-bottom: var(--space-xs);
  color:         var(--color-gold-light);
}


/* ============================================================
   15. FEATURE GRID (Login section)
   2×2 card grid
   ============================================================ */
.feature-grid {
  display:               grid;
  grid-template-columns: 1fr 1fr;
  gap:                   var(--space-md);
}

.feature-card {
  padding:       var(--space-lg);
  background:    var(--color-bg-card);
  border:        1px solid var(--color-border);
  border-radius: var(--radius-md);
  transition:    all var(--transition-normal);
}
.feature-card:hover {
  background:    var(--color-bg-card-hover);
  border-color:  var(--color-gold);
  transform:     translateY(-3px);
  box-shadow:    var(--shadow-card);
}

.feature-card__icon {
  display:       block;
  font-size:     2rem;
  margin-bottom: var(--space-sm);
}

.feature-card__title {
  margin-bottom: var(--space-xs);
  font-size:     0.95rem;
}

.feature-card__text {
  font-size:     0.85rem;
  color:         var(--color-text-muted);
  margin-bottom: 0;
}


/* ============================================================
   16. BONUS CARDS (Welcome package section)
   3 cards side-by-side with hover glow; featured card larger
   ============================================================ */
.bonus-cards {
  display:               grid;
  grid-template-columns: repeat(3, 1fr);
  gap:                   var(--space-lg);
  margin-bottom:         var(--space-xl);
}

.bonus-card {
  position:      relative;
  padding:       var(--space-xl) var(--space-lg);
  background:    var(--color-bg-card);
  border:        1px solid var(--color-border);
  border-radius: var(--radius-lg);
  text-align:    center;
  transition:    all var(--transition-normal);
  overflow:      hidden;
}
/* Subtle shimmer layer at top */
.bonus-card::before {
  content:  '';
  position: absolute;
  top:      0;
  left:     0;
  right:    0;
  height:   3px;
  background: linear-gradient(90deg, transparent, var(--color-gold), transparent);
}
.bonus-card:hover {
  transform:    translateY(-6px);
  border-color: var(--color-gold);
  box-shadow:   var(--shadow-glow);
}

/* Featured (2nd) card — slightly raised and brighter */
.bonus-card--featured {
  background: linear-gradient(160deg, rgba(240, 180, 41, 0.1) 0%, var(--color-bg-card) 60%);
  border-color: var(--color-gold);
  transform:    scale(1.03);
}
.bonus-card--featured:hover { transform: scale(1.03) translateY(-6px); }

.bonus-card__badge {
  display:       inline-block;
  padding:       0.2em 0.8em;
  background:    rgba(240, 180, 41, 0.12);
  border:        1px solid var(--color-border);
  border-radius: var(--radius-full);
  font-size:     0.7rem;
  font-family:   var(--font-display);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color:         var(--color-gold);
  margin-bottom: var(--space-md);
}

.bonus-card__badge--hot {
  background:  rgba(255, 77, 109, 0.15);
  border-color: rgba(255, 77, 109, 0.4);
  color:        var(--color-red);
}

/* Large percentage number */
.bonus-card__percent {
  font-family:    var(--font-display);
  font-size:      clamp(3rem, 6vw, 4.5rem);
  font-weight:    900;
  background:     linear-gradient(135deg, var(--color-gold), var(--color-gold-light));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  line-height:    1;
  margin-bottom:  var(--space-xs);
}
.bonus-card__percent span { font-size: 0.5em; }

.bonus-card__title {
  margin-bottom: var(--space-md);
  color:         var(--color-text);
}

.bonus-card__details {
  text-align: left;
  margin-bottom: var(--space-lg);
}
.bonus-card__details li {
  padding:     var(--space-xs) 0;
  font-size:   0.85rem;
  color:       var(--color-text-muted);
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}
.bonus-card__details li:last-child { border-bottom: none; }


/* ============================================================
   17. NO-DEPOSIT CARDS
   Three cards for free cash / promo code / free spins
   ============================================================ */
.ndb-cards {
  display:               grid;
  grid-template-columns: repeat(3, 1fr);
  gap:                   var(--space-lg);
  margin-bottom:         var(--space-xl);
}

.ndb-card {
  padding:       var(--space-xl) var(--space-lg);
  background:    var(--color-bg-card);
  border:        1px solid var(--color-border);
  border-radius: var(--radius-lg);
  text-align:    center;
  transition:    all var(--transition-normal);
}
.ndb-card:hover {
  border-color:  var(--color-gold);
  transform:     translateY(-4px);
  box-shadow:    var(--shadow-card);
}

.ndb-card__icon {
  font-size:     3rem;
  margin-bottom: var(--space-md);
  display:       block;
}

.ndb-card__title {
  margin-bottom: var(--space-sm);
}

.ndb-card__amount {
  font-family:    var(--font-display);
  font-size:      2rem;
  font-weight:    900;
  background:     linear-gradient(135deg, var(--color-gold), var(--color-gold-light));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  margin-bottom:  var(--space-md);
}

.ndb-card__details {
  text-align:    left;
  margin-bottom: var(--space-lg);
}
.ndb-card__details li {
  font-size:    0.85rem;
  color:        var(--color-text-muted);
  padding:      var(--space-xs) 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}
.ndb-card__details li:last-child { border-bottom: none; }


/* ============================================================
   18. GAME CATEGORIES GRID
   2×3 grid of game type cards
   ============================================================ */
.game-categories {
  display:               grid;
  grid-template-columns: repeat(3, 1fr);
  gap:                   var(--space-lg);
  margin-bottom:         var(--space-xl);
}

.game-cat {
  padding:       var(--space-xl) var(--space-lg);
  background:    var(--color-bg-card);
  border:        1px solid var(--color-border);
  border-radius: var(--radius-lg);
  text-align:    center;
  transition:    all var(--transition-normal);
  display:       flex;
  flex-direction: column;
  gap:           var(--space-sm);
}
.game-cat:hover {
  border-color: var(--color-gold);
  transform:    translateY(-4px);
  box-shadow:   var(--shadow-card);
}

.game-cat__icon {
  font-size: 2.5rem;
  display:   block;
}

.game-cat__title {
  font-size: 1rem;
}

.game-cat__text {
  font-size:   0.85rem;
  color:       var(--color-text-muted);
  margin-bottom: 0;
  flex: 1;
}


/* ============================================================
   19. PROVIDER BADGES
   Horizontal scrollable row of provider name chips
   ============================================================ */
.providers {
  display:     flex;
  align-items: center;
  gap:         var(--space-md);
  flex-wrap:   wrap;
  padding:     var(--space-lg) 0;
  border-top:  1px solid var(--color-border);
}

.providers__label {
  font-family:    var(--font-display);
  font-size:      0.75rem;
  font-weight:    700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color:          var(--color-text-muted);
  white-space:    nowrap;
  margin-bottom:  0;
}

.providers__list {
  display:  flex;
  gap:      var(--space-sm);
  flex-wrap: wrap;
}

.provider-badge {
  padding:       0.35em 0.9em;
  background:    rgba(255, 255, 255, 0.04);
  border:        1px solid var(--color-border);
  border-radius: var(--radius-full);
  font-size:     0.78rem;
  color:         var(--color-text-muted);
  transition:    all var(--transition-fast);
  cursor:        default;
}
.provider-badge:hover {
  border-color: var(--color-gold);
  color:        var(--color-gold);
}


/* ============================================================
   20. SLOTS GALLERY
   Responsive masonry-like grid of game thumbnails
   ============================================================ */
.slots-grid {
  display:               grid;
  grid-template-columns: repeat(6, 1fr);  /* 6 per row on desktop */
  gap:                   var(--space-md);
  margin-bottom:         var(--space-xl);
}

.slot-card {
  border-radius: var(--radius-md);
  overflow:      hidden;
  transition:    transform var(--transition-normal);
}
.slot-card:hover { transform: scale(1.04); }

.slot-card a {
  display:        flex;
  flex-direction: column;
  color:          var(--color-text);
  text-decoration: none;
}

.slot-card__img-wrapper {
  position:      relative;
  overflow:      hidden;
  aspect-ratio:  3 / 4;
  background:    var(--color-bg-card);
}

.slot-card__img {
  width:      100%;
  height:     100%;
  object-fit: cover;
  display:    block;
  transition: transform var(--transition-slow);
}
.slot-card:hover .slot-card__img { transform: scale(1.1); }

/* Play overlay that appears on hover */
.slot-card__overlay {
  position:        absolute;
  inset:           0;
  background:      rgba(7, 7, 15, 0.65);
  display:         flex;
  align-items:     center;
  justify-content: center;
  opacity:         0;
  transition:      opacity var(--transition-normal);
}
.slot-card:hover .slot-card__overlay { opacity: 1; }

.slot-card__play {
  font-family:    var(--font-display);
  font-size:      0.85rem;
  font-weight:    700;
  color:          var(--color-gold);
  padding:        0.4em 1em;
  border:         1px solid var(--color-gold);
  border-radius:  var(--radius-full);
  backdrop-filter: blur(4px);
}

.slot-card__name {
  display:     block;
  padding:     var(--space-xs) var(--space-sm);
  font-size:   0.75rem;
  font-family: var(--font-display);
  text-align:  center;
  color:       var(--color-text-muted);
  background:  rgba(255, 255, 255, 0.03);
  border:      1px solid var(--color-border);
  border-top:  none;
  border-radius: 0 0 var(--radius-md) var(--radius-md);
  white-space: nowrap;
  overflow:    hidden;
  text-overflow: ellipsis;
}


/* ============================================================
   21. LIVE GAMES LIST
   Pulsing green dot indicator + game names
   ============================================================ */
.live-games {
  display:        flex;
  flex-direction: column;
  gap:            var(--space-sm);
}

.live-game-item {
  display:        flex;
  align-items:    center;
  gap:            var(--space-md);
  padding:        var(--space-sm) var(--space-md);
  background:     var(--color-bg-card);
  border:         1px solid var(--color-border);
  border-radius:  var(--radius-md);
  font-size:      0.9rem;
  transition:     all var(--transition-fast);
}
.live-game-item:hover {
  border-color: var(--color-gold);
  color:        var(--color-gold);
}

/* Pulsing green "live" indicator dot */
.live-game-item__dot {
  width:         10px;
  height:        10px;
  border-radius: 50%;
  flex-shrink:   0;
}
.live--green {
  background: #22c55e;
  box-shadow: 0 0 0 0 rgba(34, 197, 94, 0.5);
  animation:  pulse-green 2s infinite;
}
@keyframes pulse-green {
  0%   { box-shadow: 0 0 0 0   rgba(34, 197, 94, 0.6); }
  70%  { box-shadow: 0 0 0 8px rgba(34, 197, 94, 0);   }
  100% { box-shadow: 0 0 0 0   rgba(34, 197, 94, 0);   }
}


/* ============================================================
   22. INSTA-GAMES
   Icon + title + description items
   ============================================================ */
.insta-highlights {
  display:        flex;
  flex-direction: column;
  gap:            var(--space-md);
}

.insta-item {
  display:        flex;
  align-items:    center;
  gap:            var(--space-md);
  padding:        var(--space-md) var(--space-lg);
  background:     var(--color-bg-card);
  border:         1px solid var(--color-border);
  border-radius:  var(--radius-md);
  transition:     all var(--transition-normal);
}
.insta-item:hover {
  border-color: var(--color-gold);
  box-shadow:   var(--shadow-card);
  transform:    translateX(4px);
}

.insta-item__icon {
  font-size:  2rem;
  flex-shrink: 0;
}

.insta-item div {
  display:        flex;
  flex-direction: column;
  gap:            var(--space-xs);
}
.insta-item strong { color: var(--color-text); font-size: 1rem; }
.insta-item span   { font-size: 0.82rem; color: var(--color-text-muted); }


/* ============================================================
   23. APP FEATURES
   ============================================================ */
.app-features {
  display:        flex;
  flex-direction: column;
  gap:            var(--space-md);
}

.app-feature {
  display:       flex;
  align-items:   flex-start;
  gap:           var(--space-md);
  padding:       var(--space-md) var(--space-lg);
  background:    var(--color-bg-card);
  border:        1px solid var(--color-border);
  border-radius: var(--radius-md);
  transition:    all var(--transition-fast);
}
.app-feature:hover { border-color: var(--color-gold); }

.app-feature__icon { font-size: 2rem; flex-shrink: 0; }

.app-feature div {
  display:        flex;
  flex-direction: column;
  gap:            var(--space-xs);
}
.app-feature strong { color: var(--color-text); }
.app-feature span   { font-size: 0.85rem; color: var(--color-text-muted); }

/* App store badge buttons */
.app-badges {
  display:   flex;
  gap:       var(--space-md);
  flex-wrap: wrap;
  margin-top: var(--space-lg);
}
.app-badge {
  display:         inline-flex;
  align-items:     center;
  gap:             var(--space-sm);
  padding:         0.6em 1.4em;
  background:      var(--color-bg-card);
  border:          1px solid var(--color-border);
  border-radius:   var(--radius-md);
  font-family:     var(--font-display);
  font-size:       0.8rem;
  font-weight:     600;
  color:           var(--color-text);
  transition:      all var(--transition-fast);
}
.app-badge:hover {
  border-color: var(--color-gold);
  color:        var(--color-gold);
}


/* ============================================================
   24. VIP TIERS
   Horizontal scrollable row of tier chips
   ============================================================ */
.vip-tiers-wrapper {
  overflow-x: auto;
  padding:    var(--space-sm) 0;
  margin-bottom: var(--space-xl);
  -webkit-overflow-scrolling: touch;
}

.vip-tiers {
  display:         flex;
  gap:             var(--space-md);
  min-width:       max-content;  /* prevents wrapping; scroll instead */
  padding:         var(--space-sm) var(--space-xs);
}

.vip-tier {
  display:         flex;
  flex-direction:  column;
  align-items:     center;
  gap:             var(--space-xs);
  padding:         var(--space-lg) var(--space-xl);
  background:      var(--color-bg-card);
  border:          1px solid var(--color-border);
  border-radius:   var(--radius-lg);
  min-width:       120px;
  text-align:      center;
  transition:      all var(--transition-normal);
  cursor:          default;
}
.vip-tier:hover {
  border-color: var(--color-gold);
  transform:    translateY(-4px);
  box-shadow:   var(--shadow-card);
}

/* Top tier — gold glow */
.vip-tier--top {
  background: linear-gradient(160deg, rgba(240, 180, 41, 0.15), var(--color-bg-card));
  border-color: var(--color-gold);
  box-shadow:   var(--shadow-gold);
}

.vip-tier__icon { font-size: 2rem; }
.vip-tier__name {
  font-family: var(--font-display);
  font-size:   0.8rem;
  font-weight: 700;
  color:       var(--color-text);
}
.vip-tier__cashback {
  font-size:  0.75rem;
  color:      var(--color-gold);
  font-family: var(--font-display);
}


/* ============================================================
   25. VIP BENEFITS GRID
   3-column grid of benefit cards
   ============================================================ */
.vip-benefits {
  display:               grid;
  grid-template-columns: repeat(3, 1fr);
  gap:                   var(--space-lg);
}

.vip-benefit {
  padding:       var(--space-lg);
  background:    var(--color-bg-card);
  border:        1px solid var(--color-border);
  border-radius: var(--radius-lg);
  text-align:    center;
  transition:    all var(--transition-normal);
}
.vip-benefit:hover {
  border-color: var(--color-gold);
  transform:    translateY(-3px);
}

.vip-benefit__icon { font-size: 2.5rem; display: block; margin-bottom: var(--space-sm); }
.vip-benefit__title { font-size: 0.95rem; margin-bottom: var(--space-xs); }
.vip-benefit p { font-size: 0.85rem; color: var(--color-text-muted); margin: 0; }


/* ============================================================
   26. SECURITY BADGES
   ============================================================ */
.security-badges {
  display:        flex;
  flex-direction: column;
  gap:            var(--space-sm);
}

.security-badge {
  display:       flex;
  align-items:   center;
  gap:           var(--space-md);
  padding:       var(--space-md) var(--space-lg);
  background:    var(--color-bg-card);
  border:        1px solid var(--color-border);
  border-radius: var(--radius-md);
  transition:    all var(--transition-fast);
}
.security-badge:hover { border-color: var(--color-gold); }

.security-badge__icon { font-size: 1.8rem; flex-shrink: 0; }

.security-badge div {
  display:        flex;
  flex-direction: column;
  gap:            2px;
}
.security-badge strong { font-size: 0.9rem; color: var(--color-text); }
.security-badge span   { font-size: 0.8rem; color: var(--color-text-muted); }


/* ============================================================
   27. FINAL CTA BANNER
   Large conversion block at the bottom of the page
   ============================================================ */
.final-cta {
  margin-top:    var(--space-2xl);
  padding:       var(--space-2xl);
  background:    linear-gradient(135deg, rgba(240, 180, 41, 0.12) 0%, rgba(7, 7, 15, 0.6) 100%);
  border:        1px solid var(--color-gold);
  border-radius: var(--radius-lg);
  text-align:    center;
  position:      relative;
  overflow:      hidden;
}

/* Decorative glowing orb behind the CTA */
.final-cta::before {
  content:       '';
  position:      absolute;
  top:           50%;
  left:          50%;
  transform:     translate(-50%, -50%);
  width:         400px;
  height:        400px;
  background:    radial-gradient(circle, rgba(240, 180, 41, 0.12) 0%, transparent 70%);
  pointer-events: none;
}

.final-cta__title {
  font-size:     clamp(1.5rem, 4vw, 2.5rem);
  margin-bottom: var(--space-md);
  background:    linear-gradient(135deg, var(--color-gold), var(--color-gold-light), #fff);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  position:      relative;
  z-index:       1;
}

.final-cta__text {
  font-size:     1.05rem;
  color:         var(--color-text-muted);
  margin-bottom: var(--space-xl);
  position:      relative;
  z-index:       1;
}

.final-cta__buttons {
  display:         flex;
  gap:             var(--space-lg);
  justify-content: center;
  flex-wrap:       wrap;
  position:        relative;
  z-index:         1;
}


/* ============================================================
   28. FOOTER
   Multi-column layout with legal disclaimer
   ============================================================ */
.site-footer {
  background:    var(--color-bg-alt);
  border-top:    1px solid var(--color-border);
  padding:       var(--space-3xl) 0 var(--space-xl);
  margin-top:    0;
}

.footer__inner {
  display:               grid;
  grid-template-columns: 1.5fr 2fr;
  gap:                   var(--space-2xl);
  margin-bottom:         var(--space-xl);
  padding-bottom:        var(--space-xl);
  border-bottom:         1px solid var(--color-border);
}

.footer__brand p.footer__tagline {
  font-size:   0.85rem;
  color:       var(--color-text-muted);
  margin:      var(--space-md) 0;
}

.footer__social {
  display: flex;
  gap:     var(--space-sm);
}
.social-icon {
  display:         flex;
  align-items:     center;
  justify-content: center;
  width:           36px;
  height:          36px;
  background:      var(--color-bg-card);
  border:          1px solid var(--color-border);
  border-radius:   var(--radius-full);
  font-size:       0.8rem;
  color:           var(--color-text-muted);
  transition:      all var(--transition-fast);
}
.social-icon:hover { border-color: var(--color-gold); color: var(--color-gold); }

/* Nav columns */
.footer__nav {
  display:               grid;
  grid-template-columns: repeat(3, 1fr);
  gap:                   var(--space-lg);
}

.footer__nav-heading {
  font-family:    var(--font-display);
  font-size:      0.75rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color:          var(--color-gold);
  margin-bottom:  var(--space-md);
}

.footer__nav-col ul li { margin-bottom: var(--space-sm); }
.footer__nav-col ul li a {
  font-size:   0.85rem;
  color:       var(--color-text-muted);
  transition:  color var(--transition-fast);
}
.footer__nav-col ul li a:hover { color: var(--color-gold); }

/* Responsible gaming row */
.footer__responsible {
  display:         flex;
  gap:             var(--space-md);
  flex-wrap:       wrap;
  align-items:     center;
  padding:         var(--space-md) 0;
  border-bottom:   1px solid var(--color-border);
  margin-bottom:   var(--space-lg);
}
.resp-badge {
  padding:       0.3em 0.9em;
  background:    rgba(255, 255, 255, 0.04);
  border:        1px solid var(--color-border);
  border-radius: var(--radius-full);
  font-size:     0.75rem;
  color:         var(--color-text-muted);
}

/* Legal disclaimer */
.footer__legal {
  font-size: 0.78rem;
  color:     var(--color-text-muted);
  line-height: 1.6;
}
.footer__legal p { margin-bottom: var(--space-sm); }
.footer__legal-link {
  color:           var(--color-text-muted);
  text-decoration: underline dotted;
}
.footer__legal-link:hover { color: var(--color-gold); }
.footer__copyright { opacity: 0.7; }


/* ============================================================
   29. BACK TO TOP BUTTON
   Fixed button that appears after scrolling past the fold
   ============================================================ */
.back-to-top {
  position:        fixed;
  bottom:          var(--space-xl);
  right:           var(--space-xl);
  width:           48px;
  height:          48px;
  border-radius:   50%;
  background:      linear-gradient(135deg, var(--color-gold), var(--color-gold-dark));
  color:           #000;
  font-size:       1.2rem;
  font-weight:     700;
  border:          none;
  cursor:          pointer;
  z-index:         500;
  transition:      all var(--transition-normal);
  box-shadow:      var(--shadow-gold);
  display:         flex;
  align-items:     center;
  justify-content: center;
}
.back-to-top:hover { transform: translateY(-3px); box-shadow: var(--shadow-glow); }
/* The hidden attribute is managed by JS; this handles the transition */
.back-to-top[hidden] { display: none; }


/* ============================================================
   30. PARTICLE CANVAS
   Positioned behind all content as a decorative background
   ============================================================ */
#particles-canvas {
  position: fixed;
  top:      0;
  left:     0;
  width:    100%;
  height:   100%;
  pointer-events: none;  /* never intercepts clicks */
  z-index:  0;           /* behind all content */
  opacity:  0.35;
}

/* Ensure all main content sits above the canvas */
.site-header,
main,
.site-footer,
.back-to-top {
  position: relative;
  z-index:  1;
}


/* ============================================================
   31. SCROLL ANIMATIONS
   Elements with [data-animate] fade/slide in via IntersectionObserver (JS)
   ============================================================ */
[data-animate] {
  opacity:   0;
  transform: translateY(24px);
  transition: opacity 0.65s ease, transform 0.65s ease;
}

[data-animate].is-visible {
  opacity:   1;
  transform: translateY(0);
}


/* ============================================================
   32. RESPONSIVE BREAKPOINTS
   Mobile-first approach: base styles are mobile, we add layout complexity at larger sizes
   ============================================================ */

/* ── Large Desktop: ≥ 1200px ─────────────────────────────────── */
@media (max-width: 1200px) {
  .slots-grid { grid-template-columns: repeat(4, 1fr); }
}

/* ── Tablet: ≤ 1024px ────────────────────────────────────────── */
@media (max-width: 1024px) {
  .section__grid--2col,
  .section__grid--60-40 { grid-template-columns: 1fr; }

  .bonus-cards  { grid-template-columns: 1fr; }
  .bonus-card--featured { transform: none; }   /* no scale on mobile */
  .bonus-card--featured:hover { transform: translateY(-6px); }

  .ndb-cards    { grid-template-columns: 1fr; }
  .game-categories { grid-template-columns: repeat(2, 1fr); }
  .vip-benefits { grid-template-columns: repeat(2, 1fr); }

  .footer__inner { grid-template-columns: 1fr; gap: var(--space-xl); }
  .footer__nav   { grid-template-columns: repeat(3, 1fr); }
}

/* ── Mobile: ≤ 768px ─────────────────────────────────────────── */
@media (max-width: 768px) {
  /* Swap hero banner to mobile image */
  .hero {
    background-image: url('img/banner/banner-mobile.png');
    min-height:       100svh;  /* svh for correct mobile height (avoids address bar issues) */
  }

  /* Stack nav vertically; show hamburger, hide desktop nav */
  .header__nav { display: none; }
  .hamburger   { display: flex; }

  /* Slot grid: 2 columns on mobile */
  .slots-grid { grid-template-columns: repeat(2, 1fr); gap: var(--space-sm); }

  /* Game categories: 1 column */
  .game-categories { grid-template-columns: 1fr; }

  /* VIP benefits: 1 column */
  .vip-benefits { grid-template-columns: 1fr; }

  /* Feature grid: 1 column */
  .feature-grid { grid-template-columns: 1fr; }

  /* Footer nav: 2 columns */
  .footer__nav { grid-template-columns: 1fr 1fr; }

  /* Shrink section padding on mobile */
  .section { padding: var(--space-2xl) 0; }

  /* Hero content full-width padding on mobile */
  .hero__content { padding: 10vh var(--space-md) var(--space-xl); }
  .hero__buttons { flex-direction: column; align-items: center; }

  /* Steps — reduce font sizes and number circle */
  .steps-list::before { display: none; } /* hide connecting line on mobile */
  .steps-list__number { width: 3rem; height: 3rem; font-size: 0.9rem; }

  /* Bonus cards — full width, vertically stacked */
  .bonus-cards,
  .ndb-cards { grid-template-columns: 1fr; }

  /* Back-to-top: smaller, more compact */
  .back-to-top { bottom: var(--space-lg); right: var(--space-md); width: 40px; height: 40px; }

  /* Stats row: wrap on small screens */
  .stats-row { flex-wrap: wrap; gap: var(--space-md); }

  /* Final CTA padding */
  .final-cta { padding: var(--space-xl) var(--space-md); }

  /*
   * RESPONSIVE TABLE — card pattern for mobile
   * Hides thead and converts each row to a card with pseudo-element labels
   * Uses data-label attributes set in HTML
   */
  .data-table thead { display: none; }
  .data-table tbody,
  .data-table tr,
  .data-table td   { display: block; }

  .data-table tr {
    margin-bottom:  var(--space-md);
    border:         1px solid var(--color-border);
    border-radius:  var(--radius-md);
    overflow:       hidden;
    background:     var(--color-bg-card);
  }

  .data-table td {
    display:       flex;
    justify-content: space-between;
    align-items:   flex-start;
    gap:           var(--space-md);
    padding:       var(--space-sm) var(--space-md);
    border-bottom: 1px solid rgba(255, 255, 255, 0.05);
    font-size:     0.85rem;
  }
  .data-table td:last-child { border-bottom: none; }

  /* Column label shown inline before cell content */
  .data-table td::before {
    content:        attr(data-label);
    font-family:    var(--font-display);
    font-size:      0.7rem;
    font-weight:    700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color:          var(--color-gold);
    min-width:      80px;
    flex-shrink:    0;
  }

  /* Caption visible on mobile (was top-aligned) */
  .data-table__caption {
    border-radius: var(--radius-md) var(--radius-md) 0 0;
  }

  /* VIP tiers scrollable row stays horizontal on mobile */
  .vip-tiers { gap: var(--space-sm); }
  .vip-tier  { min-width: 100px; padding: var(--space-md); }
}

/* ── Small Mobile: ≤ 480px ───────────────────────────────────── */
@media (max-width: 480px) {
  .container { padding: 0 var(--space-md); }

  /* Slots: 2 per row even on smallest screens */
  .slots-grid { grid-template-columns: repeat(2, 1fr); }

  /* Footer nav: single column */
  .footer__nav { grid-template-columns: 1fr; }

  h1 { font-size: 2rem; }
  h2 { font-size: 1.4rem; }

  .hero__title { font-size: 2.2rem; }
}
