/* Google Fonts */
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800;900&display=swap');

/* CSS Reset & Base */
*, *::before, *::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

/* FIX: Prevent horizontal scroll */
html, body {
  overflow-x: hidden;
  max-width: 100vw;
}

:root {
  /* Spinbara Casino Dark Theme - Purple/Gold */
  --background: hsl(252 60% 8%);
  --foreground: hsl(0 0% 98%);
  --card: hsl(252 50% 12%);
  --card-foreground: hsl(0 0% 98%);
  --popover: hsl(252 50% 10%);
  --popover-foreground: hsl(0 0% 98%);
  --primary: hsl(264 80% 55%);
  --primary-foreground: hsl(0 0% 100%);
  --secondary: hsl(252 45% 18%);
  --secondary-foreground: hsl(0 0% 98%);
  --muted: hsl(252 30% 20%);
  --muted-foreground: hsl(252 20% 70%);
  --accent: hsl(45 100% 50%);
  --accent-foreground: hsl(252 60% 8%);
  --destructive: hsl(0 84% 60%);
  --destructive-foreground: hsl(0 0% 98%);
  --border: hsl(252 40% 22%);
  --input: hsl(252 40% 18%);
  --ring: hsl(264 80% 55%);
  --radius: 0.75rem;
  
  /* Casino colors */
  --casino-purple: hsl(264 80% 55%);
  --casino-purple-dark: hsl(252 60% 12%);
  --casino-purple-light: hsl(264 70% 70%);
  --casino-gold: hsl(45 100% 50%);
  --casino-gold-light: hsl(45 100% 65%);
  --casino-green: hsl(145 80% 45%);
  --casino-red: hsl(0 85% 55%);
  --casino-pink: hsl(330 80% 60%);
}

html {
  scroll-behavior: smooth;
}

body {
  font-family: 'Montserrat', sans-serif;
  background-color: var(--background);
  color: var(--foreground);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Container */
.container {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 16px;
}

/* Promo/Game image links - size limits */
.promo-image-link img,
.games-image-link img {
  max-width: 500px;
  width: 100%;
  border-radius: 16px;
  object-fit: cover;
  height: auto;
}

/* Comparison Card */
.comparison-card {
  padding: 1.5rem;
  background: var(--card);
  border-radius: var(--radius);
  border: 1px solid var(--border);
  border-left-width: 4px;
}

.comparison-card h4 {
  font-weight: 700;
  color: var(--foreground);
  margin-bottom: 0.75rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.comparison-card ul {
  list-style: none;
}

.comparison-card li {
  font-size: 0.875rem;
  color: var(--muted-foreground);
  margin-bottom: 0.5rem;
}

.comparison-card.highlight {
  border-left-color: var(--primary);
  background: hsla(264, 80%, 55%, 0.05);
}

/* Typography */
h1, h2, h3, h4, h5, h6 {
  font-weight: 800;
  line-height: 1.2;
}

a {
  color: inherit;
  text-decoration: none;
}

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

/* FIX: Section images - limit size */
.section-image,
.promo-image,
.content-image,
.game-section img,
.promo-section img,
.content-section img:not(.author-avatar-img):not(.header-logo):not(.footer-logo) {
  max-width: 400px;
  max-height: 300px;
  width: 100%;
  height: auto;
  object-fit: cover;
  border-radius: var(--radius);
  margin: 0 auto;
}

@media (min-width: 768px) {
  .section-image,
  .promo-image,
  .content-image {
    max-width: 500px;
    max-height: 350px;
  }
}

/* FIX: Prevent images from causing horizontal scroll */
.hero-bg img,
.section-bg img {
  width: 100%;
  min-width: 100%;
  object-fit: cover;
}

/* Layout */
.min-h-screen {
  min-height: 100vh;
}

.flex {
  display: flex;
}

.flex-col {
  flex-direction: column;
}

.flex-1 {
  flex: 1;
}

.items-center {
  align-items: center;
}

.items-start {
  align-items: flex-start;
}

.justify-center {
  justify-content: center;
}

.justify-between {
  justify-content: space-between;
}

.gap-2 { gap: 0.5rem; }
.gap-3 { gap: 0.75rem; }
.gap-4 { gap: 1rem; }
.gap-6 { gap: 1.5rem; }
.gap-8 { gap: 2rem; }

.flex-wrap {
  flex-wrap: wrap;
}

.flex-shrink-0 {
  flex-shrink: 0;
}

/* Grid */
.grid {
  display: grid;
}

.grid-cols-1 { grid-template-columns: repeat(1, 1fr); }
.grid-cols-2 { grid-template-columns: repeat(2, 1fr); }

@media (min-width: 768px) {
  .md\:grid-cols-2 { grid-template-columns: repeat(2, 1fr); }
  .md\:grid-cols-3 { grid-template-columns: repeat(3, 1fr); }
  .md\:grid-cols-4 { grid-template-columns: repeat(4, 1fr); }
  .md\:grid-cols-5 { grid-template-columns: repeat(5, 1fr); }
  .md\:col-span-2 { grid-column: span 2; }
  .md\:col-span-3 { grid-column: span 3; }
}

@media (min-width: 1024px) {
  .lg\:grid-cols-3 { grid-template-columns: repeat(3, 1fr); }
  .lg\:grid-cols-5 { grid-template-columns: repeat(5, 1fr); }
  .lg\:grid-cols-6 { grid-template-columns: repeat(6, 1fr); }
}

/* Spacing */
.p-4 { padding: 1rem; }
.p-5 { padding: 1.25rem; }
.p-6 { padding: 1.5rem; }
.p-8 { padding: 2rem; }
.px-3 { padding-left: 0.75rem; padding-right: 0.75rem; }
.px-4 { padding-left: 1rem; padding-right: 1rem; }
.px-6 { padding-left: 1.5rem; padding-right: 1.5rem; }
.px-8 { padding-left: 2rem; padding-right: 2rem; }
.py-3 { padding-top: 0.75rem; padding-bottom: 0.75rem; }
.py-4 { padding-top: 1rem; padding-bottom: 1rem; }
.py-5 { padding-top: 1.25rem; padding-bottom: 1.25rem; }
.py-6 { padding-top: 1.5rem; padding-bottom: 1.5rem; }
.py-8 { padding-top: 2rem; padding-bottom: 2rem; }
.py-10 { padding-top: 2.5rem; padding-bottom: 2.5rem; }
.py-12 { padding-top: 3rem; padding-bottom: 3rem; }
.py-14 { padding-top: 3.5rem; padding-bottom: 3.5rem; }
.py-16 { padding-top: 4rem; padding-bottom: 4rem; }
.py-20 { padding-top: 5rem; padding-bottom: 5rem; }

.mb-1 { margin-bottom: 0.25rem; }
.mb-2 { margin-bottom: 0.5rem; }
.mb-3 { margin-bottom: 0.75rem; }
.mb-4 { margin-bottom: 1rem; }
.mb-6 { margin-bottom: 1.5rem; }
.mb-8 { margin-bottom: 2rem; }
.mb-10 { margin-bottom: 2.5rem; }
.mb-12 { margin-bottom: 3rem; }
.mt-2 { margin-top: 0.5rem; }
.mt-3 { margin-top: 0.75rem; }
.mt-4 { margin-top: 1rem; }
.mt-6 { margin-top: 1.5rem; }
.mt-8 { margin-top: 2rem; }
.mt-10 { margin-top: 2.5rem; }
.mx-auto { margin-left: auto; margin-right: auto; }

/* Text */
.text-center { text-align: center; }
.text-left { text-align: left; }
.text-right { text-align: right; }

.text-xs { font-size: 0.75rem; }
.text-sm { font-size: 0.875rem; }
.text-base { font-size: 1rem; }
.text-lg { font-size: 1.125rem; }
.text-xl { font-size: 1.25rem; }
.text-2xl { font-size: 1.5rem; }
.text-3xl { font-size: 1.875rem; }
.text-4xl { font-size: 2.25rem; }
.text-5xl { font-size: 3rem; }
.text-6xl { font-size: 3.75rem; }

@media (min-width: 768px) {
  .md\:text-2xl { font-size: 1.5rem; }
  .md\:text-3xl { font-size: 1.875rem; }
  .md\:text-4xl { font-size: 2.25rem; }
  .md\:text-5xl { font-size: 3rem; }
}

.font-medium { font-weight: 500; }
.font-semibold { font-weight: 600; }
.font-bold { font-weight: 700; }
.font-black { font-weight: 900; }

.uppercase { text-transform: uppercase; }
.italic { font-style: italic; }
.leading-tight { line-height: 1.25; }
.leading-relaxed { line-height: 1.625; }
.tracking-wide { letter-spacing: 0.025em; }

/* Colors */
.text-foreground { color: var(--foreground); }
.text-muted-foreground { color: var(--muted-foreground); }
.text-primary { color: var(--primary); }
.text-primary-foreground { color: var(--primary-foreground); }
.text-destructive { color: var(--destructive); }
.text-casino-green { color: var(--casino-green); }
.text-casino-gold { color: var(--casino-gold); }
.text-casino-pink { color: var(--casino-pink); }

.bg-background { background-color: var(--background); }
.bg-card { background-color: var(--card); }
.bg-primary { background-color: var(--primary); }
.bg-secondary { background-color: var(--secondary); }
.bg-muted { background-color: var(--muted); }
.bg-destructive { background-color: var(--destructive); }

/* Borders */
.border { border: 1px solid var(--border); }
.border-t { border-top: 1px solid var(--border); }
.border-b { border-bottom: 1px solid var(--border); }
.border-l { border-left: 1px solid var(--border); }
.border-l-4 { border-left: 4px solid var(--border); }
.border-primary { border-color: var(--primary); }
.border-border { border-color: var(--border); }

.rounded { border-radius: 0.25rem; }
.rounded-lg { border-radius: 0.5rem; }
.rounded-xl { border-radius: 0.75rem; }
.rounded-2xl { border-radius: 1rem; }
.rounded-full { border-radius: 9999px; }

/* Positioning */
.relative { position: relative; }
.absolute { position: absolute; }
.fixed { position: fixed; }
.sticky { position: sticky; }
.top-0 { top: 0; }
.bottom-0 { bottom: 0; }
.left-0 { left: 0; }
.right-0 { right: 0; }
.inset-0 { inset: 0; }
.z-10 { z-index: 10; }
.z-50 { z-index: 50; }

/* Sizing */
.w-full { width: 100%; }
.w-auto { width: auto; }
.h-auto { height: auto; }
.max-w-full { max-width: 100%; }
.max-w-xl { max-width: 36rem; }
.max-w-2xl { max-width: 42rem; }
.max-w-3xl { max-width: 48rem; }
.max-w-4xl { max-width: 56rem; }

/* Display */
.block { display: block; }
.inline-block { display: inline-block; }
.inline-flex { display: inline-flex; }
.hidden { display: none; }

@media (min-width: 768px) {
  .md\:flex { display: flex; }
  .md\:hidden { display: none; }
  .md\:block { display: block; }
  .md\:h-20 { height: 5rem; }
  .md\:order-1 { order: 1; }
  .md\:order-2 { order: 2; }
}

/* Overflow */
.overflow-hidden { overflow: hidden; }
.overflow-x-auto { overflow-x: auto; }

/* Transitions */
.transition-all {
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 300ms;
}

.transition-colors {
  transition-property: color, background-color, border-color;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 300ms;
}

.transition-transform {
  transition-property: transform;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 300ms;
}

.duration-300 { transition-duration: 300ms; }
.duration-500 { transition-duration: 500ms; }

/* Transforms */
.hover\:scale-105:hover { transform: scale(1.05); }
.hover\:scale-110:hover { transform: scale(1.1); }
.group:hover .group-hover\:scale-105 { transform: scale(1.05); }
.group:hover .group-hover\:scale-110 { transform: scale(1.1); }
.hover\:translate-x-1:hover { transform: translateX(0.25rem); }

/* Opacity */
.opacity-0 { opacity: 0; }
.opacity-100 { opacity: 1; }

/* Backdrop */
.backdrop-blur-sm { backdrop-filter: blur(4px); }
.backdrop-blur-xl { backdrop-filter: blur(24px); }

/* ===================== CASINO COMPONENTS ===================== */

/* Casino Card */
.casino-card {
  background-color: var(--card);
  border-radius: var(--radius);
  border: 1px solid rgba(var(--border), 0.5);
  backdrop-filter: blur(4px);
  box-shadow: 0 8px 32px hsla(264, 80%, 55%, 0.15);
}

/* Casino Button Primary */
.casino-button-primary {
  position: relative;
  overflow: hidden;
  border-radius: 9999px;
  font-weight: 700;
  font-size: 1.125rem;
  padding: 1rem 2rem;
  transition: all 0.3s ease;
  background: linear-gradient(135deg, var(--casino-green) 0%, hsl(145 80% 55%) 100%);
  color: white;
  border: none;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  box-shadow: 0 4px 20px hsla(145, 80%, 45%, 0.4);
  text-decoration: none;
}

.casino-button-primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 30px hsla(145, 80%, 45%, 0.5);
}

/* Button Outline */
.btn-outline {
  background: transparent;
  border: 2px solid hsla(264, 80%, 55%, 0.5);
  color: var(--primary);
  border-radius: 9999px;
  font-weight: 700;
  padding: 1rem 2rem;
  transition: all 0.3s ease;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
}

.btn-outline:hover {
  background: hsla(264, 80%, 55%, 0.1);
  border-color: var(--primary);
}

/* Badge */
.badge {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.25rem 0.75rem;
  border-radius: 9999px;
  font-size: 0.75rem;
  font-weight: 600;
  border: 1px solid;
}

.badge-primary {
  background: hsla(264, 80%, 55%, 0.2);
  color: var(--primary);
  border-color: hsla(264, 80%, 55%, 0.3);
}

.badge-secondary {
  background: var(--secondary);
  color: var(--foreground);
  border-color: transparent;
}

/* Text Gradients */
.text-gradient-gold {
  background: linear-gradient(135deg, var(--casino-gold) 0%, hsl(35 100% 65%) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.text-gradient-purple {
  background: linear-gradient(135deg, hsl(264 80% 65%) 0%, var(--casino-pink) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* Diagonal sections */
.diagonal-top {
  clip-path: polygon(0 5%, 100% 0, 100% 100%, 0 100%);
}

.diagonal-bottom {
  clip-path: polygon(0 0, 100% 0, 100% 95%, 0 100%);
}

/* Asymmetric border */
.border-asymmetric {
  border-radius: 1rem 3rem 1rem 3rem;
}

/* Casino gradient background */
.casino-gradient-bg {
  background: linear-gradient(135deg, hsla(264, 80%, 55%, 0.3) 0%, hsla(330, 80%, 60%, 0.2) 50%, var(--background) 100%);
}

/* Casino glow */
.casino-glow {
  box-shadow: 0 0 40px hsla(264, 80%, 55%, 0.3), 0 0 80px hsla(264, 80%, 55%, 0.1);
}

/* Hover effects */
.hover-lift {
  transition: all 0.3s ease;
}

.hover-lift:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 40px hsla(264, 80%, 55%, 0.25);
}

.hover-scale {
  transition: transform 0.3s ease;
}

.hover-scale:hover {
  transform: scale(1.03);
}

.hover-glow {
  transition: all 0.3s ease;
}

.hover-glow:hover {
  box-shadow: 0 0 30px hsla(264, 80%, 55%, 0.4);
}

/* Game Cards */
.game-card {
  aspect-ratio: 3/4;
  transition: all 0.3s ease;
}

.game-card-icon {
  height: 100%;
  background: linear-gradient(135deg, hsla(264, 80%, 55%, 0.2), hsla(330, 80%, 60%, 0.1), hsla(45, 100%, 50%, 0.2));
  transition: all 0.3s ease;
}

.game-card:hover .game-card-icon {
  background: linear-gradient(135deg, hsla(264, 80%, 55%, 0.3), hsla(330, 80%, 60%, 0.3));
}

.game-card:hover .game-card-icon svg {
  transform: scale(1.25) rotate(12deg);
  transition: transform 0.3s ease;
}

/* ===================== ANIMATIONS ===================== */

@keyframes float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-10px); }
}

@keyframes pulse-glow {
  0%, 100% { box-shadow: 0 0 20px hsla(264, 80%, 55%, 0.3); }
  50% { box-shadow: 0 0 40px hsla(264, 80%, 55%, 0.6); }
}

@keyframes slide-up {
  from { opacity: 0; transform: translateY(30px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes slide-right {
  from { opacity: 0; transform: translateX(-30px); }
  to { opacity: 1; transform: translateX(0); }
}

@keyframes fade-in {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes bounce-subtle {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-5px); }
}

@keyframes glow-pulse {
  0%, 100% { 
    box-shadow: 0 0 20px hsla(145, 80%, 45%, 0.3), 0 4px 20px hsla(145, 80%, 45%, 0.4);
  }
  50% { 
    box-shadow: 0 0 40px hsla(145, 80%, 45%, 0.5), 0 8px 30px hsla(145, 80%, 45%, 0.6);
  }
}

@keyframes spin {
  to { transform: rotate(360deg); }
}

@keyframes ping {
  75%, 100% {
    transform: scale(2);
    opacity: 0;
  }
}

.animate-float { animation: float 3s ease-in-out infinite; }
.animate-pulse-glow { animation: pulse-glow 2s ease-in-out infinite; }
.animate-slide-up { animation: slide-up 0.6s ease-out forwards; }
.animate-slide-right { animation: slide-right 0.6s ease-out forwards; }
.animate-fade-in { animation: fade-in 0.5s ease-out forwards; }
.animate-bounce-subtle { animation: bounce-subtle 2s ease-in-out infinite; }
.animate-glow-pulse { animation: glow-pulse 2s ease-in-out infinite; }
.animate-spin { animation: spin 1s linear infinite; }

/* Live indicator ping */
@keyframes ping {
  75%, 100% {
    transform: scale(2);
    opacity: 0;
  }
}

.animate-ping {
  animation: ping 1s cubic-bezier(0, 0, 0.2, 1) infinite;
}

/* ===================== HEADER ===================== */

.header {
  position: sticky;
  top: 0;
  z-index: 50;
  width: 100%;
  transition: all 0.3s ease;
}

.header.scrolled {
  background: hsla(252, 60%, 8%, 0.9);
  backdrop-filter: blur(24px);
  border-bottom: 1px solid hsla(252, 40%, 22%, 0.5);
  box-shadow: 0 4px 20px hsla(264, 80%, 55%, 0.05);
}

.header-container {
  display: flex;
  height: 4rem;
  align-items: center;
  justify-content: space-between;
}

@media (min-width: 768px) {
  .header-container {
    height: 5rem;
  }
}

.header-logo {
  height: 2.5rem;
  width: auto;
  transition: transform 0.3s ease;
}

.header-logo:hover {
  transform: scale(1.05);
}

@media (min-width: 768px) {
  .header-logo {
    height: 3rem;
  }
}

.nav-desktop {
  display: none;
  align-items: center;
  gap: 1.5rem;
}

@media (min-width: 768px) {
  .nav-desktop {
    display: flex;
  }
}

.nav-link {
  position: relative;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.025em;
  color: var(--muted-foreground);
  transition: all 0.3s ease;
}

.nav-link:hover,
.nav-link.active {
  color: var(--primary);
}

.nav-link::after {
  content: '';
  position: absolute;
  bottom: -4px;
  left: 0;
  width: 0;
  height: 2px;
  background: var(--primary);
  transition: width 0.3s ease;
}

.nav-link:hover::after,
.nav-link.active::after {
  width: 100%;
}

.nav-link svg {
  width: 1rem;
  height: 1rem;
  transition: transform 0.3s ease;
}

.nav-link:hover svg {
  transform: scale(1.1);
}

.header-cta {
  display: none;
  align-items: center;
  gap: 0.75rem;
}

@media (min-width: 768px) {
  .header-cta {
    display: flex;
  }
}

.header-btn-outline {
  padding: 0.5rem 1rem;
  border: 1px solid hsla(264, 80%, 55%, 0.5);
  border-radius: var(--radius);
  color: var(--primary);
  font-weight: 600;
  font-size: 0.875rem;
  transition: all 0.3s ease;
}

.header-btn-outline:hover {
  background: hsla(264, 80%, 55%, 0.1);
  border-color: var(--primary);
  transform: scale(1.05);
}

.header-btn-primary {
  padding: 0.5rem 1rem;
  background: linear-gradient(135deg, var(--casino-green) 0%, hsl(145 80% 55%) 100%);
  border-radius: 9999px;
  color: white;
  font-weight: 700;
  font-size: 0.875rem;
  transition: all 0.3s ease;
  box-shadow: 0 2px 10px hsla(145, 80%, 45%, 0.3);
}

.header-btn-primary:hover {
  transform: scale(1.05);
  box-shadow: 0 4px 15px hsla(145, 80%, 45%, 0.4);
}

/* Mobile menu button */
.mobile-menu-btn {
  display: block;
  padding: 0.5rem;
  color: var(--foreground);
  background: none;
  border: none;
  cursor: pointer;
  transition: color 0.3s ease;
}

.mobile-menu-btn:hover {
  color: var(--primary);
}

.mobile-menu-btn svg {
  width: 1.75rem;
  height: 1.75rem;
}

@media (min-width: 768px) {
  .mobile-menu-btn {
    display: none;
  }
}

/* Mobile Menu Overlay */
.mobile-menu-overlay {
  position: fixed;
  inset: 0;
  background: hsla(0, 0%, 0%, 0.5);
  backdrop-filter: blur(4px);
  z-index: 100;
  opacity: 0;
  visibility: hidden;
  transition: all 0.3s ease;
}

.mobile-menu-overlay.open {
  opacity: 1;
  visibility: visible;
}

.mobile-menu {
  position: fixed;
  top: 0;
  right: 0;
  width: 300px;
  height: 100%;
  background: hsla(252, 60%, 8%, 0.98);
  backdrop-filter: blur(24px);
  border-left: 1px solid hsla(252, 40%, 22%, 0.5);
  z-index: 101;
  transform: translateX(100%);
  transition: transform 0.3s ease;
  display: flex;
  flex-direction: column;
  padding: 2rem 1.5rem;
}

.mobile-menu.open {
  transform: translateX(0);
}

.mobile-menu-close {
  position: absolute;
  top: 1rem;
  right: 1rem;
  padding: 0.5rem;
  background: none;
  border: none;
  color: var(--muted-foreground);
  cursor: pointer;
  transition: color 0.3s ease;
}

.mobile-menu-close:hover {
  color: var(--foreground);
}

.mobile-nav {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin-top: 2rem;
}

.mobile-nav-link {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1rem;
  border-radius: var(--radius);
  color: var(--foreground);
  font-weight: 600;
  transition: all 0.3s ease;
}

.mobile-nav-link:hover {
  background: var(--secondary);
  transform: translateX(0.5rem);
}

.mobile-nav-link.active {
  background: hsla(264, 80%, 55%, 0.1);
  color: var(--primary);
  border: 1px solid hsla(264, 80%, 55%, 0.3);
}

.mobile-nav-link svg {
  width: 1.25rem;
  height: 1.25rem;
}

.mobile-menu-cta {
  margin-top: auto;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  padding-top: 1.5rem;
  border-top: 1px solid hsla(252, 40%, 22%, 0.5);
}

.mobile-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 3.5rem;
  font-size: 1.125rem;
  font-weight: 700;
  border-radius: var(--radius);
  transition: all 0.3s ease;
}

.mobile-btn-outline {
  border: 1px solid hsla(264, 80%, 55%, 0.5);
  color: var(--primary);
  background: transparent;
}

.mobile-btn-primary {
  background: linear-gradient(135deg, var(--casino-green) 0%, hsl(145 80% 55%) 100%);
  color: white;
  border: none;
}

/* ===================== FOOTER ===================== */

.footer {
  background: linear-gradient(to bottom, var(--card), var(--background));
  border-top: 1px solid hsla(252, 40%, 22%, 0.5);
}

.footer-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2rem;
}

@media (min-width: 768px) {
  .footer-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (min-width: 1024px) {
  .footer-grid {
    grid-template-columns: repeat(5, 1fr);
  }
}

.footer-column h4 {
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--foreground);
  margin-bottom: 1rem;
}

.footer-column ul {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.footer-column a {
  font-size: 0.75rem;
  color: var(--muted-foreground);
  transition: color 0.3s ease;
}

.footer-column a:hover {
  color: var(--primary);
}

.footer-external {
  margin-top: 2.5rem;
  padding-top: 2rem;
  border-top: 1px solid hsla(252, 40%, 22%, 0.3);
}

.footer-external h4 {
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--foreground);
  margin-bottom: 1rem;
}

.footer-external-links {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
}

.footer-external-links a {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  font-size: 0.75rem;
  color: var(--muted-foreground);
  transition: color 0.3s ease;
}

.footer-external-links a:hover {
  color: var(--primary);
}

.footer-external-links svg {
  width: 0.75rem;
  height: 0.75rem;
}

.footer-payments {
  border-top: 1px solid hsla(252, 40%, 22%, 0.5);
  padding: 1.5rem 0;
}

.footer-payments-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 1rem;
}

.footer-payments-label {
  font-size: 0.75rem;
  color: var(--muted-foreground);
}

.payment-icons {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.payment-icon {
  padding: 0.5rem 0.75rem;
  border-radius: 0.25rem;
  font-size: 0.75rem;
  font-weight: 700;
  color: white;
}

.payment-visa { background: #1A1F71; }
.payment-btc { background: #F7931A; }
.payment-usdt { background: #26A17B; }
.payment-eth { background: #627EEA; }

.footer-disclaimer {
  border-top: 1px solid hsla(252, 40%, 22%, 0.5);
  background: hsla(252, 60%, 8%, 0.5);
  padding: 1.5rem 0;
}

.footer-disclaimer-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  text-align: center;
}

.age-badge {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 50%;
  background: hsla(0, 84%, 60%, 0.1);
  border: 2px solid var(--destructive);
  color: var(--destructive);
  font-weight: 900;
  font-size: 0.875rem;
}

.footer-disclaimer p {
  font-size: 0.75rem;
  color: var(--muted-foreground);
  max-width: 48rem;
}

/* ===================== SCROLL TO TOP ===================== */

.scroll-to-top {
  position: fixed;
  bottom: 1.5rem;
  right: 1.5rem;
  z-index: 50;
  padding: 1rem;
  border-radius: 50%;
  background: var(--primary);
  color: var(--primary-foreground);
  border: none;
  cursor: pointer;
  box-shadow: 0 4px 20px hsla(264, 80%, 55%, 0.3);
  transition: all 0.3s ease;
  opacity: 0;
  transform: translateY(2.5rem);
  pointer-events: none;
}

.scroll-to-top.visible {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

.scroll-to-top:hover {
  transform: scale(1.1);
  box-shadow: 0 8px 30px hsla(264, 80%, 55%, 0.4);
}

.scroll-to-top svg {
  width: 1.25rem;
  height: 1.25rem;
}

/* ===================== HERO SECTION ===================== */

.hero {
  position: relative;
  overflow: hidden;
  min-height: 280px;
  max-height: 320px;
  height: auto;
  padding: 2rem 0;
}

@media (min-width: 768px) {
  .hero {
    min-height: 280px;
    max-height: 320px;
  }
}

@media (max-width: 767px) {
  .hero {
    min-height: 200px;
    max-height: 260px;
    padding: 1.5rem 0;
  }
}

.hero-bg {
  position: absolute;
  inset: 0;
}

.hero-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}

.hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to right, var(--background), hsla(252, 60%, 8%, 0.85), hsla(252, 60%, 8%, 0.6), transparent);
}

.hero-overlay-right {
  position: absolute;
  inset: 0;
  background: linear-gradient(to right, var(--background), hsla(252, 60%, 8%, 0.8), transparent);
}

.hero-overlay-bottom {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, var(--background), hsla(252, 60%, 8%, 0.3), transparent);
}

.hero-accent {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 0.5rem;
  background: linear-gradient(to right, var(--primary), var(--casino-pink), var(--primary));
  transform: skewY(-1deg);
}

.hero-content {
  position: relative;
  z-index: 10;
  height: 100%;
  display: flex;
  align-items: center;
}

.hero-text {
  max-width: 42rem;
}

.hero-text h1 {
  font-size: 1.75rem;
  line-height: 1.2;
  margin-bottom: 0.5rem;
}

@media (min-width: 768px) {
  .hero-text h1 {
    font-size: 2.25rem;
  }
}

.hero-subtitle {
  font-size: 1rem;
  color: var(--muted-foreground);
  margin-bottom: 1rem;
}

@media (min-width: 768px) {
  .hero-subtitle {
    font-size: 1.125rem;
  }
}

/* Hero buttons - 2 identical primary */
.hero-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-bottom: 1rem;
}

/* Hero badges - 3 badges row */
.hero-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 0.75rem;
}

/* Update badge */
.badge-update {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.25rem 0.75rem;
  border-radius: 9999px;
  font-size: 0.75rem;
  font-weight: 600;
  background: hsla(145, 80%, 45%, 0.15);
  color: var(--casino-green);
  border: 1px solid hsla(145, 80%, 45%, 0.3);
  margin-bottom: 0.75rem;
}

.badge-update svg {
  width: 14px;
  height: 14px;
}

/* ===================== TABLES ===================== */

table {
  width: 100%;
  text-align: left;
  border-collapse: collapse;
  font-size: 0.875rem;
}

th {
  padding: 0.75rem 1rem;
  color: var(--foreground);
  border-bottom: 1px solid var(--border);
}

td {
  padding: 0.75rem 1rem;
  color: var(--muted-foreground);
  border-bottom: 1px solid hsla(252, 40%, 22%, 0.5);
}

tr:last-child td {
  border-bottom: none;
}

/* ===================== PROSE ===================== */

.prose {
  max-width: none;
}

.prose p {
  margin-bottom: 1.5rem;
}

.prose h2 {
  margin-top: 2rem;
  margin-bottom: 1rem;
}

.prose h3 {
  margin-top: 1.5rem;
  margin-bottom: 0.75rem;
}

.prose ul {
  list-style: none;
  padding: 0;
}

.prose li {
  margin-bottom: 0.5rem;
}

.prose strong {
  color: var(--foreground);
}

.prose em {
  font-style: italic;
}

/* ===================== ICON STYLES (SVG) ===================== */

.icon {
  width: 1rem;
  height: 1rem;
  display: inline-block;
  vertical-align: middle;
}

.icon-sm { width: 0.875rem; height: 0.875rem; }
.icon-md { width: 1.25rem; height: 1.25rem; }
.icon-lg { width: 1.5rem; height: 1.5rem; }
.icon-xl { width: 2rem; height: 2rem; }

/* Fill colors for SVG icons */
.fill-current { fill: currentColor; }
.fill-casino-gold { fill: var(--casino-gold); }
.fill-casino-green { fill: var(--casino-green); }
.fill-primary { fill: var(--primary); }

/* ===================== SPACE BETWEEN ITEMS ===================== */

.space-y-2 > * + * { margin-top: 0.5rem; }
.space-y-3 > * + * { margin-top: 0.75rem; }
.space-y-4 > * + * { margin-top: 1rem; }
.space-y-6 > * + * { margin-top: 1.5rem; }

/* ===================== ASPECT RATIO ===================== */

.aspect-3-4 {
  aspect-ratio: 3 / 4;
}

/* ===================== OBJECT FIT ===================== */

.object-cover { object-fit: cover; }
.object-center { object-position: center; }

/* ===================== RESPONSIVE UTILITIES ===================== */

@media (min-width: 640px) {
  .sm\:flex-row { flex-direction: row; }
  .sm\:col-span-2 { grid-column: span 2; }
}

@media (min-width: 768px) {
  .md\:py-14 { padding-top: 3.5rem; padding-bottom: 3.5rem; }
  .md\:py-16 { padding-top: 4rem; padding-bottom: 4rem; }
  .md\:py-24 { padding-top: 6rem; padding-bottom: 6rem; }
  .md\:gap-6 { gap: 1.5rem; }
  .md\:gap-8 { gap: 2rem; }
  .md\:gap-10 { gap: 2.5rem; }
  .md\:gap-12 { gap: 3rem; }
  .md\:text-right { text-align: right; }
  .md\:items-end { align-items: flex-end; }
}

/* ===================== ADDITIONAL COMPONENTS ===================== */

/* Author Block */
.author-block {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem;
  padding: 1.5rem;
  background: var(--card);
  border-radius: var(--radius);
  border: 1px solid var(--border);
  margin-bottom: 2rem;
}

.author-avatar {
  width: 3rem;
  height: 3rem;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--primary), var(--casino-pink));
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 1rem;
  color: white;
}

.author-info {
  flex: 1;
  min-width: 150px;
}

.author-name {
  font-weight: 700;
  color: var(--foreground);
}

.author-role {
  font-size: 0.875rem;
  color: var(--muted-foreground);
}

.author-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  font-size: 0.75rem;
  color: var(--muted-foreground);
}

/* Content Section */
.content-section {
  padding: 3rem 0;
}

.content-wrapper {
  max-width: 900px;
  margin: 0 auto;
}

/* Trust Block */
.trust-block {
  display: flex;
  flex-wrap: wrap;
  gap: 1.5rem;
  padding: 1.5rem;
  background: var(--card);
  border-radius: var(--radius);
  border: 1px solid var(--border);
  margin-top: 2rem;
}

.trust-item {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.trust-item svg {
  width: 1.5rem;
  height: 1.5rem;
  color: var(--casino-green);
}

.trust-item strong {
  display: block;
  color: var(--foreground);
}

.trust-item span {
  font-size: 0.75rem;
  color: var(--muted-foreground);
}

/* Icon colors */
.icon-green {
  color: var(--casino-green);
}

.icon-gold {
  color: var(--casino-gold);
}

.icon-red {
  color: var(--casino-red);
}

/* Affiliate Disclosure */
.affiliate-disclosure {
  margin-top: 2rem;
  padding: 1rem 1.5rem;
  background: hsla(252, 40%, 18%, 0.5);
  border-radius: var(--radius);
  border-left: 4px solid var(--primary);
  font-size: 0.875rem;
  color: var(--muted-foreground);
}

.affiliate-disclosure p {
  margin-bottom: 0.5rem;
}

.affiliate-disclosure p:last-child {
  margin-bottom: 0;
}

/* FAQ Block */
.faq-block {
  margin-top: 3rem;
  padding: 2rem;
  background: var(--card);
  border-radius: var(--radius);
  border: 1px solid var(--border);
}

.faq-block h2 {
  margin-bottom: 1.5rem;
  font-size: 1.5rem;
}

.faq-item {
  border-bottom: 1px solid var(--border);
  padding: 1rem 0;
}

.faq-item:last-child {
  border-bottom: none;
}

.faq-question {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  padding: 0;
  background: none;
  border: none;
  color: var(--foreground);
  font-weight: 600;
  font-size: 1rem;
  text-align: left;
  cursor: pointer;
}

.faq-question svg {
  width: 1.25rem;
  height: 1.25rem;
  transition: transform 0.3s ease;
  flex-shrink: 0;
}

.faq-item.open .faq-question svg {
  transform: rotate(180deg);
}

.faq-answer {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease;
  color: var(--muted-foreground);
}

.faq-item.open .faq-answer {
  max-height: 500px;
  padding-top: 1rem;
}

/* Rating Block */
.rating-block {
  margin-top: 2rem;
  padding: 2rem;
  background: var(--card);
  border-radius: var(--radius);
  border: 1px solid var(--border);
}

.rating-card {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem;
  margin-top: 1.5rem;
}

.stars {
  display: flex;
  gap: 0.25rem;
}

.star {
  width: 1.5rem;
  height: 1.5rem;
  color: var(--casino-gold);
}

.rating-score {
  font-size: 2rem;
  font-weight: 900;
}

.rating-count {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.875rem;
  color: var(--muted-foreground);
}

/* Promo Section */
.promo-section {
  margin-top: 3rem;
  padding: 2rem;
  background: linear-gradient(135deg, var(--card), var(--secondary));
  border-radius: var(--radius);
  border: 1px solid var(--border);
}

.promo-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  align-items: center;
}

@media (min-width: 768px) {
  .promo-grid {
    grid-template-columns: 1fr 1fr;
  }
}

.promo-content h3 {
  font-size: 1.5rem;
  margin-bottom: 1rem;
}

.promo-content p {
  color: var(--muted-foreground);
  margin-bottom: 1.5rem;
}

/* Review Card */
.review-card {
  padding: 1.5rem;
  background: var(--card);
  border-radius: var(--radius);
  border: 1px solid var(--border);
  margin-bottom: 1.5rem;
}

.review-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 1rem;
}

.review-author {
  font-weight: 700;
  color: var(--foreground);
}

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

.review-rating {
  display: flex;
  gap: 0.25rem;
}

.review-rating svg {
  width: 1rem;
  height: 1rem;
  color: var(--casino-gold);
}

.review-text {
  color: var(--muted-foreground);
  font-size: 0.9375rem;
}

/* Reviews Grid */
.reviews-grid {
  display: grid;
  gap: 1.5rem;
}

@media (min-width: 768px) {
  .reviews-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* Pros/Cons */
.pros-cons-grid {
  display: grid;
  gap: 1.5rem;
  margin-top: 2rem;
}

@media (min-width: 768px) {
  .pros-cons-grid {
    grid-template-columns: 1fr 1fr;
  }
}

.pros-card,
.cons-card {
  padding: 1.5rem;
  border-radius: var(--radius);
  border: 1px solid var(--border);
}

.pros-card {
  background: hsla(145, 80%, 45%, 0.1);
  border-color: hsla(145, 80%, 45%, 0.3);
}

.cons-card {
  background: hsla(0, 84%, 60%, 0.1);
  border-color: hsla(0, 84%, 60%, 0.3);
}

.pros-card h3 {
  color: var(--casino-green);
  margin-bottom: 1rem;
}

.cons-card h3 {
  color: var(--casino-red);
  margin-bottom: 1rem;
}

.pros-list,
.cons-list {
  list-style: none;
}

.pros-list li,
.cons-list li {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  margin-bottom: 0.75rem;
  color: var(--muted-foreground);
}

.pros-list svg {
  width: 1.25rem;
  height: 1.25rem;
  color: var(--casino-green);
  flex-shrink: 0;
  margin-top: 0.125rem;
}

.cons-list svg {
  width: 1.25rem;
  height: 1.25rem;
  color: var(--casino-red);
  flex-shrink: 0;
  margin-top: 0.125rem;
}

/* CTA Section */
.cta-section {
  margin-top: 3rem;
  padding: 3rem 2rem;
  background: linear-gradient(135deg, var(--primary), var(--casino-pink));
  border-radius: var(--radius);
  text-align: center;
}

.cta-section h2 {
  color: white;
  margin-bottom: 1rem;
}

.cta-section p {
  color: hsla(0, 0%, 100%, 0.9);
  margin-bottom: 2rem;
  max-width: 600px;
  margin-left: auto;
  margin-right: auto;
}

.cta-buttons {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1rem;
}

/* Button CTA Primary */
.btn-casino-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 1rem 2rem;
  background: linear-gradient(135deg, var(--casino-green), hsl(145 80% 55%));
  color: white;
  font-weight: 700;
  font-size: 1.125rem;
  border-radius: 9999px;
  border: none;
  cursor: pointer;
  transition: all 0.3s ease;
  text-decoration: none;
  box-shadow: 0 4px 20px hsla(145, 80%, 45%, 0.4);
}

.btn-casino-primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 30px hsla(145, 80%, 45%, 0.5);
}

.btn-lg {
  padding: 1rem 2rem;
  font-size: 1.125rem;
}

/* Changelog Block */
.changelog-block {
  margin-top: 2rem;
  padding: 1.5rem;
  background: var(--card);
  border-radius: var(--radius);
  border: 1px solid var(--border);
}

.changelog-title {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-weight: 700;
  margin-bottom: 1rem;
}

.changelog-list {
  list-style: none;
}

.changelog-item {
  display: flex;
  gap: 1rem;
  padding: 0.75rem 0;
  border-left: 2px solid var(--border);
  padding-left: 1rem;
  margin-left: 0.5rem;
}

.changelog-date {
  font-size: 0.75rem;
  color: var(--muted-foreground);
  white-space: nowrap;
}

.changelog-text {
  font-size: 0.875rem;
  color: var(--foreground);
}

/* Carousel/Slider */
.carousel-container {
  position: relative;
  overflow: hidden;
}

.carousel-wrapper {
  display: flex;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  -ms-overflow-style: none;
  gap: 1rem;
  padding: 1rem 0;
}

.carousel-wrapper::-webkit-scrollbar {
  display: none;
}

.carousel-item {
  flex: 0 0 auto;
  scroll-snap-align: start;
}

.carousel-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 3rem;
  height: 3rem;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.3s ease;
  z-index: 10;
}

.carousel-nav:hover {
  background: var(--secondary);
}

.carousel-prev {
  left: 0.5rem;
}

.carousel-next {
  right: 0.5rem;
}

/* Footer improvements */
.footer-brand {
  grid-column: span 2;
}

@media (min-width: 768px) {
  .footer-brand {
    grid-column: span 1;
  }
}

.footer-brand img {
  height: 2rem;
  width: auto;
  margin-bottom: 1rem;
}

.footer-brand p {
  font-size: 0.875rem;
  color: var(--muted-foreground);
}

.footer-links {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.footer-links h4 {
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--foreground);
  margin-bottom: 0.5rem;
}

.footer-links a {
  font-size: 0.8125rem;
  color: var(--muted-foreground);
  transition: color 0.3s ease;
}

.footer-links a:hover {
  color: var(--primary);
}

.footer-bottom {
  margin-top: 2rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--border);
  text-align: center;
}

.footer-bottom p {
  font-size: 0.8125rem;
  color: var(--muted-foreground);
  margin-bottom: 0.5rem;
}

.footer-bottom .disclaimer {
  font-size: 0.75rem;
}

/* Logo styling */
.logo img,
.footer-logo {
  height: 2.5rem;
  width: auto;
}

@media (min-width: 768px) {
  .logo img {
    height: 3rem;
  }
}

/* Hero buttons */
.hero-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  margin-top: 1.5rem;
}

.hero-stats {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  margin-top: 1.5rem;
  font-size: 0.875rem;
  color: var(--muted-foreground);
}

.stat {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
}

.stat-divider {
  color: var(--border);
}

.hero-subtitle {
  font-size: 1.125rem;
  color: var(--muted-foreground);
  margin-top: 0.5rem;
}

/* Mobile menu hamburger */
.mobile-menu-btn span {
  display: block;
  width: 1.5rem;
  height: 2px;
  background: var(--foreground);
  margin: 5px 0;
  transition: all 0.3s ease;
}

/* Btn primary for header */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.5rem 1rem;
  border-radius: var(--radius);
  font-weight: 600;
  font-size: 0.875rem;
  transition: all 0.3s ease;
  text-decoration: none;
  cursor: pointer;
  border: none;
}

.btn-primary {
  background: linear-gradient(135deg, var(--casino-green), hsl(145 80% 55%));
  color: white;
  box-shadow: 0 2px 10px hsla(145, 80%, 45%, 0.3);
}

.btn-primary:hover {
  transform: scale(1.05);
  box-shadow: 0 4px 15px hsla(145, 80%, 45%, 0.4);
}

/* Mobile CTA */
.mobile-cta {
  margin-top: 1rem;
  width: 100%;
  padding: 1rem !important;
  font-size: 1rem !important;
}

/* ===================== MOBILE RESPONSIVE FIXES ===================== */

/* Mobile: Small screens (max-width: 639px) */
@media (max-width: 639px) {
  /* Typography scaling */
  .text-3xl { font-size: 1.5rem; }
  .text-4xl { font-size: 1.875rem; }
  .text-5xl { font-size: 2.25rem; }
  
  /* Hero text */
  .hero-text h1 {
    font-size: 1.75rem;
    line-height: 1.2;
  }
  
  /* Container padding */
  .container {
    padding: 0 12px;
  }
  
  /* Cards */
  .casino-card {
    padding: 1rem;
  }
  
  /* Buttons */
  .casino-button-primary {
    padding: 0.875rem 1.5rem;
    font-size: 1rem;
  }
  
  .btn-outline {
    padding: 0.875rem 1.5rem;
  }
  
  /* Tables - horizontal scroll */
  table {
    font-size: 0.75rem;
  }
  
  th, td {
    padding: 0.5rem;
  }
  
  /* Hide desktop-only elements */
  .md\:block {
    display: none !important;
  }
  
  /* Stack flex items */
  .flex-wrap {
    gap: 0.5rem;
  }
  
  /* Image sections */
  .promo-image-link img,
  .games-image-link img {
    max-width: 100%;
  }
  
  /* Author block */
  .author-block {
    flex-direction: column;
    gap: 0.75rem;
    padding: 1rem;
  }
  
  .author-meta {
    flex-direction: column;
    gap: 0.5rem;
  }
  
  /* Trust block */
  .trust-block {
    flex-direction: column;
    gap: 1rem;
    padding: 1rem;
  }
  
  /* Promo section */
  .promo-grid {
    grid-template-columns: 1fr;
  }
  
  /* Pros/Cons grid */
  .pros-cons-grid {
    grid-template-columns: 1fr;
  }
  
  /* Reviews grid */
  .reviews-grid {
    grid-template-columns: 1fr;
  }
  
  /* Footer grid */
  .footer-grid {
    grid-template-columns: 1fr;
    text-align: center;
  }
  
  .footer-column {
    text-align: center;
  }
  
  .footer-column ul {
    align-items: center;
  }
  
  /* Hero height adjustment */
  .hero {
    min-height: 200px;
    max-height: 260px;
    padding: 1.5rem 0;
  }
  
  .hero-content {
    padding: 0.75rem 0;
  }
  
  .hero-text h1 {
    font-size: 1.5rem;
  }
  
  .hero-badges {
    gap: 0.375rem;
  }
  
  .hero-badge {
    padding: 0.375rem 0.5rem;
  }
  
  .hero-badge span {
    font-size: 0.625rem;
  }
  
  /* FAQ block */
  .faq-block {
    padding: 1.25rem;
  }
  
  .faq-question {
    font-size: 0.875rem;
  }
  
  /* Rating block */
  .rating-block {
    padding: 1.25rem;
  }
  
  /* CTA section */
  .cta-section {
    padding: 2rem 1rem;
  }
  
  .cta-buttons {
    flex-direction: column;
    width: 100%;
  }
  
  .cta-buttons a,
  .cta-buttons button {
    width: 100%;
  }
}

/* Mobile: Very small screens (max-width: 374px) */
@media (max-width: 374px) {
  .text-2xl { font-size: 1.25rem; }
  .text-3xl { font-size: 1.375rem; }
  
  .casino-button-primary {
    padding: 0.75rem 1rem;
    font-size: 0.875rem;
  }
  
  .header-container {
    height: 3.5rem;
  }
  
  .header-logo {
    height: 2rem;
  }
}

/* Tablet adjustments */
@media (min-width: 640px) and (max-width: 767px) {
  .grid-cols-1 {
    grid-template-columns: repeat(2, 1fr);
  }
  
  .hero {
    height: 300px;
  }
}

/* Fix touch targets for mobile */
@media (hover: none) and (pointer: coarse) {
  .nav-link,
  .mobile-nav-link,
  a,
  button {
    min-height: 44px;
    min-width: 44px;
  }
  
  /* Remove hover effects on touch */
  .hover-lift:hover,
  .hover-scale:hover,
  .hover-glow:hover {
    transform: none;
    box-shadow: none;
  }
  
  .hover-lift:active,
  .hover-scale:active {
    transform: scale(0.98);
  }
}

/* Landscape mobile */
@media (max-height: 500px) and (orientation: landscape) {
  .hero {
    height: auto;
    min-height: 200px;
    padding: 1.5rem 0;
  }
  
  .hero-text h1 {
    font-size: 1.5rem;
  }
}

/* Safe area for notched devices */
@supports (padding: env(safe-area-inset-bottom)) {
  .footer-disclaimer {
    padding-bottom: calc(1.5rem + env(safe-area-inset-bottom));
  }
  
  .scroll-to-top {
    bottom: calc(1.5rem + env(safe-area-inset-bottom));
  }
  
  .mobile-menu {
    padding-bottom: calc(2rem + env(safe-area-inset-bottom));
  }
}

/* Image lazy load placeholder */
img[loading="lazy"] {
  background: var(--card);
}

/* Print styles - hide non-essential */
@media print {
  .header,
  .footer,
  .mobile-menu,
  .mobile-menu-overlay,
  .scroll-to-top,
  .casino-button-primary,
  .btn-outline {
    display: none !important;
  }
  
  body {
    background: white;
    color: black;
  }
}

/* =====================================================
   UTILITY CLASSES - Replacing inline styles
   ===================================================== */

/* Color utilities */
.text-foreground { color: var(--foreground); }
.text-muted { color: var(--muted-foreground); }
.text-primary { color: var(--primary); }
.text-accent { color: var(--accent); }
.text-casino-green { color: var(--casino-green); }
.text-casino-gold { color: var(--casino-gold); }

/* Background utilities */
.bg-card-translucent {
  background: hsla(252, 50%, 12%, 0.8);
  border: 1px solid hsla(252, 40%, 22%, 0.5);
}

.bg-primary-translucent {
  background: hsla(264, 80%, 55%, 0.2);
  border: 2px solid hsla(264, 80%, 55%, 0.3);
}

.bg-green-translucent {
  background: hsla(145, 80%, 45%, 0.15);
  border: 1px solid hsla(145, 80%, 45%, 0.3);
}

.bg-gold-translucent {
  background: hsla(45, 100%, 50%, 0.15);
  border: 1px solid hsla(45, 100%, 50%, 0.3);
}

.bg-red-translucent {
  background: hsla(0, 85%, 55%, 0.15);
  border: 1px solid hsla(0, 85%, 55%, 0.3);
}

/* Size utilities */
.size-12 { width: 12px; height: 12px; }
.size-14 { width: 14px; height: 14px; }
.size-28 { width: 28px; height: 28px; }
.size-56 { width: 56px; height: 56px; }

/* Avatar */
.author-avatar {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: hsla(264, 80%, 55%, 0.2);
  display: flex;
  align-items: center;
  justify-content: center;
  border: 2px solid hsla(264, 80%, 55%, 0.3);
}

.author-avatar svg {
  width: 28px;
  height: 28px;
  color: var(--primary);
}

/* Separator */
.vertical-separator {
  width: 1px;
  height: 48px;
  background: var(--border);
}

/* Flexbox author */
.author-row {
  display: flex;
  flex-direction: row;
  align-items: center;
}

@media (max-width: 639px) {
  .author-row {
    flex-direction: column;
    align-items: flex-start;
  }
}

/* Hero badge */
.hero-badge {
  background: hsla(252, 50%, 12%, 0.8);
  border: 1px solid hsla(252, 40%, 22%, 0.5);
  padding: 0.5rem 0.75rem;
  border-radius: 9999px;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.hero-badge span {
  font-size: 0.75rem;
  color: var(--muted-foreground);
}

.hero-badge svg {
  width: 16px;
  height: 16px;
  color: var(--casino-green);
}

/* Rating stars */
.rating-stars {
  display: flex;
  gap: 0.25rem;
}

.rating-stars svg {
  width: 20px;
  height: 20px;
  fill: var(--casino-gold);
  color: var(--casino-gold);
}

/* Icon colors via class */
.icon-green { color: var(--casino-green); }
.icon-gold { color: var(--casino-gold); }
.icon-red { color: var(--casino-red); }
.icon-primary { color: var(--primary); }

/* Feature badge */
.feature-badge {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.75rem 1rem;
  border-radius: 9999px;
  background: var(--card);
  border: 1px solid var(--border);
}

.feature-badge svg {
  width: 16px;
  height: 16px;
  color: var(--casino-green);
}

.feature-badge span {
  font-size: 0.875rem;
  color: var(--foreground);
}

/* Hide on mobile utility */
.hide-mobile {
  display: block;
}

@media (max-width: 639px) {
  .hide-mobile {
    display: none;
  }
}

/* =====================================================
   EXTENDED UTILITY CLASSES - For removing inline styles
   ===================================================== */

/* Text colors */
.text-white-90 { color: hsla(0, 0%, 98%, 0.9); }
.text-destructive { color: var(--destructive); }
.text-casino-green { color: var(--casino-green); }

/* Text gradients */
.text-gradient-purple {
  background: linear-gradient(135deg, var(--primary), var(--casino-pink));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* Card variants */
.card-primary-subtle {
  background: hsla(264, 80%, 55%, 0.05);
  border-color: hsla(264, 80%, 55%, 0.2);
}

.card-danger-subtle {
  background: hsla(0, 84%, 60%, 0.1);
  border-color: hsla(0, 84%, 60%, 0.3);
}

.card-green-subtle {
  background: hsla(145, 80%, 45%, 0.1);
  border-color: hsla(145, 80%, 45%, 0.3);
}

.card-gold-subtle {
  background: hsla(45, 100%, 50%, 0.1);
  border-color: hsla(45, 100%, 50%, 0.3);
}

/* Icon sizes */
.icon-32 { width: 32px; height: 32px; flex-shrink: 0; }
.icon-24 { width: 24px; height: 24px; }
.icon-20 { width: 20px; height: 20px; }
.icon-16 { width: 16px; height: 16px; }
.icon-12 { width: 12px; height: 12px; }

/* Table cell colors */
.td-green { color: var(--casino-green); }
.td-red { color: var(--destructive); }
.th-green { color: var(--casino-green); }
.th-red { color: var(--destructive); }

/* Flexbox utilities */
.flex-shrink-0 { flex-shrink: 0; }

/* Additional gradients */
.bg-gradient-primary-subtle {
  background: linear-gradient(135deg, hsla(264, 80%, 55%, 0.1), hsla(330, 80%, 60%, 0.05));
}

/* SVG fill utilities */
.fill-gold { fill: var(--casino-gold); }
.fill-primary { fill: var(--primary); }

/* Border utilities */
.border-primary-subtle { border-color: hsla(264, 80%, 55%, 0.3); }
.border-green-subtle { border-color: hsla(145, 80%, 45%, 0.3); }
.border-gold-subtle { border-color: hsla(45, 100%, 50%, 0.3); }
.border-red-subtle { border-color: hsla(0, 84%, 60%, 0.3); }
