/*
 * LIZARO CASINO - DESIGN SYSTEM
 * Wild West dark-only theme with orange/gold/green neon accents.
 * Fonts: Rye (display) + Barlow Semi Condensed (body)
 * Mobile-first. Breakpoints: 640, 900, 1200, 1280px.
 */

/* ============================================
   DESIGN TOKENS
   ============================================ */
:root {
    --background: #14100C;
    --foreground: #F2E9D8;
    --card: #1E1812;
    --card-foreground: #F2E9D8;
    --popover: #1E1812;
    --popover-foreground: #F2E9D8;
    --primary: #35E07A;
    --primary-foreground: #07130C;
    --secondary: #F97316;
    --secondary-foreground: #2A1204;
    --muted: #3A2E22;
    --muted-foreground: #C9B896;
    --accent: #F5C542;
    --accent-foreground: #241A05;
    --destructive: #E5484D;
    --destructive-foreground: #1A0405;
    --border: #3A2E22;
    --input: #1E1812;
    --ring: #F5C542;

    /* Typography */
    --font-display: "Rye", serif;
    --font-body: "Barlow Semi Condensed", sans-serif;

    /* Spacing */
    --space-xs: 4px;
    --space-sm: 8px;
    --space-md: 16px;
    --space-lg: 24px;
    --space-xl: 32px;
    --space-2xl: 48px;
    --space-3xl: 64px;
    --space-4xl: 96px;
    --space-5xl: 128px;

    /* Section spacing */
    --section-gap: 56px;
    --section-gap-desktop: 96px;

    /* Card */
    --card-radius: 12px;
    --card-padding: 20px;
    --card-padding-desktop: 32px;
    --grid-gap: 16px;

    /* Header height */
    --header-height: 64px;

    /* Transitions */
    --transition: 250ms ease-out;
    --transition-accordion: 300ms ease-out;

    /* Container */
    --container-max: 1200px;
    --container-wide: 1280px;
}

/* Dark theme is the only theme - .dark mirrors :root */
.dark {
    --background: #14100C;
    --foreground: #F2E9D8;
    --card: #1E1812;
    --card-foreground: #F2E9D8;
    --popover: #1E1812;
    --popover-foreground: #F2E9D8;
    --primary: #35E07A;
    --primary-foreground: #07130C;
    --secondary: #F97316;
    --secondary-foreground: #2A1204;
    --muted: #3A2E22;
    --muted-foreground: #C9B896;
    --accent: #F5C542;
    --accent-foreground: #241A05;
    --destructive: #E5484D;
    --destructive-foreground: #1A0405;
    --border: #3A2E22;
    --input: #1E1812;
    --ring: #F5C542;
}

/* ============================================
   RESET & BASE
   ============================================ */
*,
*::before,
*::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    scroll-behavior: smooth;
    -webkit-text-size-adjust: 100%;
}

body {
    font-family: var(--font-body);
    font-size: 17px;
    line-height: 1.6;
    color: var(--foreground);
    background-color: var(--background);
    min-height: 100vh;
    overflow-x: hidden;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

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

a {
    color: var(--primary);
    text-decoration: none;
    transition: color var(--transition);
}

a:hover {
    color: var(--accent);
}

ul, ol {
    list-style: none;
}

p {
    margin-bottom: var(--space-lg);
    overflow-wrap: break-word;
}

p:last-child {
    margin-bottom: 0;
}

section {
    overflow: clip;
}

/* ============================================
   TYPOGRAPHY
   ============================================ */
h1, h2 {
    font-family: var(--font-display);
    font-weight: 400;
    line-height: 1.15;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    margin-bottom: var(--space-lg);
    background: linear-gradient(135deg, var(--accent) 0%, #E8A830 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    text-shadow: 0 0 30px rgba(245, 197, 66, 0.15);
}

h3, h4, h5, h6 {
    font-family: var(--font-body);
    font-weight: 700;
    line-height: 1.3;
    color: var(--foreground);
    margin-bottom: var(--space-md);
}

h1 {
    font-size: 30px;
    margin-bottom: var(--space-lg);
}

h2 {
    font-size: 26px;
    margin-bottom: var(--space-lg);
}

h3 {
    font-size: 20px;
}

h4 {
    font-size: 18px;
}

h5, h6 {
    font-size: 16px;
}

/* Desktop heading sizes */
@media (min-width: 900px) {
    h1 { font-size: 56px; }
    h2 { font-size: 40px; }
}

@media (min-width: 1200px) {
    h3 { font-size: 26px; }
    h4 { font-size: 20px; }
}

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

.container-wide {
    width: 100%;
    max-width: var(--container-wide);
    margin: 0 auto;
    padding: 0 var(--space-lg);
}

/* Section spacing */
.section {
    padding-top: var(--section-gap);
    padding-bottom: var(--section-gap);
}

@media (min-width: 900px) {
    .section {
        padding-top: var(--section-gap-desktop);
        padding-bottom: var(--section-gap-desktop);
    }
}

/* Text width limiter for readability */
.prose {
    max-width: 70ch;
}

.prose p {
    margin-bottom: var(--space-lg);
}

/* ============================================
   SKIP LINK
   ============================================ */
.skip-link {
    position: absolute;
    top: -100px;
    left: 0;
    background: var(--primary);
    color: var(--primary-foreground);
    padding: var(--space-md) var(--space-lg);
    font-weight: 700;
    z-index: 2000;
    border-radius: 0 0 var(--card-radius) 0;
}

.skip-link:focus {
    top: 0;
}

/* ============================================
   HEADER
   ============================================ */
.site-header {
    position: sticky;
    top: 0;
    z-index: 1000;
    background: var(--background);
    border-bottom: 1px solid var(--border);
    transition: background var(--transition), backdrop-filter var(--transition);
}

.site-header.scrolled {
    background: rgba(20, 16, 12, 0.92);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}

.header-inner {
    max-width: var(--container-wide);
    margin: 0 auto;
    padding: 0 var(--space-lg);
    height: var(--header-height);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-md);
}

.site-brand {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    flex-shrink: 0;
}

.site-brand__icon {
    display: flex;
    align-items: center;
    justify-content: center;
}

.site-brand__text {
    font-family: var(--font-display);
    font-size: 18px;
    color: var(--accent);
    letter-spacing: 0.02em;
    white-space: nowrap;
}

/* Desktop nav */
.desktop-nav {
    display: none;
}

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

    .nav-list {
        display: flex;
        gap: var(--space-xl);
        justify-content: center;
    }

    .nav-list a {
        font-family: var(--font-body);
        font-weight: 600;
        font-size: 16px;
        color: var(--foreground);
        padding: var(--space-sm) 0;
        position: relative;
    }

    .nav-list a::after {
        content: '';
        position: absolute;
        bottom: 0;
        left: 0;
        width: 0;
        height: 2px;
        background: var(--primary);
        transition: width var(--transition);
    }

    .nav-list a:hover::after {
        width: 100%;
    }

    .nav-list a:hover {
        color: var(--primary);
    }
}

/* Header CTA buttons */
.header-cta {
    display: none;
    align-items: center;
    gap: var(--space-md);
}

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

/* ============================================
   MOBILE MENU
   ============================================ */
.menu-toggle {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    width: 44px;
    height: 44px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
    z-index: 1001;
}

.menu-toggle span {
    display: block;
    width: 24px;
    height: 3px;
    background: var(--accent);
    border-radius: 2px;
    transition: transform var(--transition), opacity var(--transition);
}

.menu-toggle[aria-expanded="true"] span:nth-child(1) {
    transform: translateY(8px) rotate(45deg);
}

.menu-toggle[aria-expanded="true"] span:nth-child(2) {
    opacity: 0;
}

.menu-toggle[aria-expanded="true"] span:nth-child(3) {
    transform: translateY(-8px) rotate(-45deg);
}

@media (min-width: 900px) {
    .menu-toggle {
        display: none;
    }
}

.mobile-nav {
    display: none;
    position: fixed;
    top: var(--header-height);
    left: 0;
    right: 0;
    bottom: 0;
    background: var(--background);
    z-index: 999;
    overflow-y: auto;
    padding: var(--space-xl) var(--space-lg);
}

.mobile-nav.is-open {
    display: block;
}

.mobile-nav__list {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: var(--space-md);
    margin-bottom: var(--space-2xl);
}

.mobile-nav__list a {
    display: flex;
    align-items: center;
    min-height: 48px;
    padding: var(--space-md) var(--space-lg);
    font-size: 18px;
    font-weight: 600;
    color: var(--foreground);
    border-radius: var(--card-radius);
    background: var(--card);
    border: 1px solid var(--border);
}

.mobile-nav__list a:hover {
    color: var(--primary);
    border-color: var(--primary);
}

.mobile-nav__cta {
    display: flex;
    flex-direction: column;
    gap: var(--space-md);
}

/* ============================================
   BUTTONS
   ============================================ */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-body);
    font-weight: 700;
    font-size: 16px;
    text-decoration: none;
    border: none;
    cursor: pointer;
    border-radius: 999px;
    padding: 14px 28px;
    min-height: 48px;
    transition: transform var(--transition), box-shadow var(--transition), background var(--transition), color var(--transition);
    position: relative;
    overflow: hidden;
    text-align: center;
    line-height: 1.2;
}

.btn:active {
    transform: scale(0.97);
}

.btn-sm {
    padding: 10px 20px;
    font-size: 15px;
    min-height: 40px;
}

.btn-lg {
    padding: 18px 36px;
    font-size: 18px;
    min-height: 56px;
}

.btn-block {
    display: flex;
    width: 100%;
}

.btn-primary {
    background: var(--primary);
    color: var(--primary-foreground);
    box-shadow: 0 0 20px rgba(53, 224, 122, 0.3);
}

.btn-primary:hover {
    background: #2BC568;
    color: var(--primary-foreground);
    box-shadow: 0 0 30px rgba(53, 224, 122, 0.5);
    transform: translateY(-1px);
}

/* Shimmer sweep on primary buttons */
.btn-primary::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 60%;
    height: 100%;
    background: linear-gradient(105deg, transparent 30%, rgba(255,255,255,0.25) 50%, transparent 70%);
    transition: left 600ms ease-out;
}

.btn-primary:hover::before {
    left: 120%;
}

.btn-ghost {
    background: transparent;
    color: var(--foreground);
    border: 2px solid var(--border);
}

.btn-ghost:hover {
    border-color: var(--accent);
    color: var(--accent);
    background: rgba(245, 197, 66, 0.08);
}

/* ============================================
   DESERT HORIZON DIVIDER
   ============================================ */
.horizon-divider {
    width: 100%;
    height: 48px;
    background: var(--background);
    position: relative;
    flex-shrink: 0;
}

.horizon-divider::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    background: linear-gradient(90deg, transparent 0%, var(--accent) 20%, var(--accent) 80%, transparent 100%);
    box-shadow: 0 0 8px rgba(245, 197, 66, 0.4);
}

.horizon-divider::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 46px;
    background-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201200%2048'%20preserveAspectRatio='none'%3E%3Cpath%20d='M0%2048%20L0%2030%20L40%2030%20L40%2018%20L50%2018%20L50%2030%20L80%2030%20L80%2022%20L90%2022%20L90%2030%20L130%2030%20L130%2010%20L140%2010%20L140%2030%20L200%2030%20L200%2025%20L210%2025%20L210%2030%20L280%2030%20L280%2015%20L290%2015%20L290%2030%20L360%2030%20L360%2020%20L370%2020%20L370%2030%20L450%2030%20L450%208%20L460%208%20L460%2030%20L530%2030%20L530%2025%20L540%2025%20L540%2030%20L620%2030%20L620%2012%20L630%2012%20L630%2030%20L700%2030%20L700%2022%20L710%2022%20L710%2030%20L780%2030%20L780%2018%20L790%2018%20L790%2030%20L860%2030%20L860%2025%20L870%2025%20L870%2030%20L940%2030%20L940%2015%20L950%2015%20L950%2030%20L1020%2030%20L1020%2020%20L1030%2020%20L1030%2030%20L1100%2030%20L1100%2010%20L1110%2010%20L1110%2030%20L1160%2030%20L1160%2022%20L1170%2022%20L1170%2030%20L1200%2030%20L1200%2048%20Z'%20fill='%233A2E22'%20opacity='0.5'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-size: cover;
}

/* ============================================
   HERO BANNER
   ============================================ */
.hero-banner {
    position: relative;
    min-height: 600px;
    display: flex;
    align-items: center;
    overflow: clip;
    padding: var(--space-4xl) 0;
}

.hero-bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    z-index: 0;
}

.hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(20, 16, 12, 0.85) 0%, rgba(20, 16, 12, 0.6) 50%, rgba(20, 16, 12, 0.75) 100%);
    z-index: 1;
}

.hero-coins {
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
}

.hero-coin {
    position: absolute;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: radial-gradient(circle at 35% 35%, var(--accent), #C99A20);
    box-shadow: 0 0 12px rgba(245, 197, 66, 0.5);
    opacity: 0.7;
}

.hero-coin--1 { top: 20%; left: 10%; animation: float-coin 4s ease-in-out infinite; }
.hero-coin--2 { top: 60%; left: 15%; width: 18px; height: 18px; animation: float-coin 5s ease-in-out infinite 0.5s; }
.hero-coin--3 { top: 30%; left: 45%; width: 16px; height: 16px; animation: float-coin 6s ease-in-out infinite 1s; }
.hero-coin--4 { top: 70%; left: 40%; width: 20px; height: 20px; animation: float-coin 4.5s ease-in-out infinite 1.5s; }

@keyframes float-coin {
    0%, 100% { transform: translateY(0) rotate(0deg); opacity: 0.7; }
    50% { transform: translateY(-20px) rotate(180deg); opacity: 0.4; }
}

.hero-content {
    position: relative;
    z-index: 3;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: var(--space-2xl);
}

.hero-text {
    max-width: 600px;
}

.hero-headline {
    font-size: 30px;
    margin-bottom: var(--space-lg);
}

.hero-subline {
    font-size: 18px;
    color: var(--muted-foreground);
    margin-bottom: var(--space-xl);
    line-height: 1.5;
}

.hero-cta {
    width: 100%;
    max-width: 320px;
}

.hero-mascot {
    order: -1;
    max-width: 280px;
}

.hero-mascot img {
    width: 100%;
    height: auto;
}

@media (min-width: 640px) {
    .hero-cta {
        width: auto;
    }
}

@media (min-width: 900px) {
    .hero-banner {
        min-height: 700px;
        padding: var(--space-5xl) 0;
    }

    .hero-content {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
        text-align: left;
    }

    .hero-headline {
        font-size: 56px;
    }

    .hero-subline {
        font-size: 20px;
    }

    .hero-mascot {
        order: 0;
        max-width: 450px;
        flex-shrink: 0;
    }

    .hero-cta {
        width: auto;
        max-width: none;
    }
}

@media (min-width: 1200px) {
    .hero-mascot {
        max-width: 500px;
    }
}

/* ============================================
   STAT HIGHLIGHT ROW
   ============================================ */
.stat-row {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-md);
    padding: var(--space-xl) var(--space-lg);
    background: var(--card);
    border-radius: var(--card-radius);
    border: 1px solid var(--border);
}

.stat-block {
    text-align: center;
    padding: var(--space-md);
    position: relative;
    min-width: 0;
}

.stat-block:nth-child(odd)::after {
    content: '';
    position: absolute;
    right: 0;
    top: 20%;
    height: 60%;
    width: 1px;
    background: var(--accent);
    opacity: 0.3;
}

.stat-block__number {
    display: block;
    font-family: var(--font-display);
    font-size: 36px;
    color: var(--accent);
    text-shadow: 0 0 20px rgba(245, 197, 66, 0.3);
    margin-bottom: var(--space-xs);
}

.stat-block__label {
    display: block;
    font-family: var(--font-body);
    font-weight: 700;
    font-size: 16px;
    color: var(--foreground);
    margin-bottom: var(--space-xs);
    overflow-wrap: break-word;
}

.stat-block__caption {
    display: block;
    font-size: 14px;
    color: var(--muted-foreground);
    line-height: 1.5;
    overflow-wrap: break-word;
}

@media (min-width: 900px) {
    .stat-row {
        grid-template-columns: repeat(4, 1fr);
        gap: 0;
        padding: var(--space-2xl) var(--space-xl);
    }

    .stat-block {
        padding: var(--space-md) var(--space-lg);
    }

    .stat-block:nth-child(odd)::after {
        display: none;
    }

    .stat-block:not(:last-child)::after {
        content: '';
        position: absolute;
        right: 0;
        top: 20%;
        height: 60%;
        width: 1px;
        background: var(--accent);
        opacity: 0.3;
    }

    .stat-block__number {
        font-size: 48px;
    }
}

/* ============================================
   GAME CARD GRID
   ============================================ */
.game-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--grid-gap);
}

.game-card {
    display: block;
    background: var(--card);
    border-radius: var(--card-radius);
    border: 1px solid var(--border);
    overflow: hidden;
    text-decoration: none;
    color: var(--foreground);
    transition: transform var(--transition), box-shadow var(--transition), border-color var(--transition);
}

.game-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 30px rgba(245, 197, 66, 0.2);
    border-color: var(--accent);
}

.game-card__image {
    position: relative;
    overflow: hidden;
    aspect-ratio: 4 / 3;
}

.game-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--transition);
}

.game-card:hover .game-card__image img {
    transform: scale(1.03);
}

.game-card__badge {
    position: absolute;
    top: var(--space-sm);
    right: var(--space-sm);
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.game-card__badge--hot {
    background: var(--secondary);
    color: var(--secondary-foreground);
}

.game-card__badge--jackpot {
    background: var(--accent);
    color: var(--accent-foreground);
}

.game-card__badge--live {
    background: var(--destructive);
    color: var(--destructive-foreground);
    animation: pulse-live 2s ease-in-out infinite;
}

@keyframes pulse-live {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.7; }
}

.game-card__body {
    padding: var(--space-md);
}

.game-card__title {
    font-size: 16px;
    font-weight: 700;
    color: var(--foreground);
    margin-bottom: 4px;
}

.game-card__provider {
    font-size: 14px;
    color: var(--muted-foreground);
}

@media (min-width: 900px) {
    .game-grid {
        grid-template-columns: repeat(4, 1fr);
    }

    .game-card__body {
        padding: var(--space-lg);
    }

    .game-card__title {
        font-size: 18px;
    }
}

/* ============================================
   CTA BONUS BANNER
   ============================================ */
.cta-banner {
    position: relative;
    padding: var(--space-4xl) var(--space-lg);
    background: var(--card);
    overflow: clip;
}

.cta-banner__glow {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    background: linear-gradient(90deg, transparent 0%, var(--accent) 20%, var(--accent) 80%, transparent 100%);
    box-shadow: 0 0 12px rgba(245, 197, 66, 0.5);
}

.cta-banner::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 48px;
    background-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201200%2048'%20preserveAspectRatio='none'%3E%3Cpath%20d='M0%2048%20L0%2030%20L40%2030%20L40%2018%20L50%2018%20L50%2030%20L80%2030%20L80%2022%20L90%2022%20L90%2030%20L130%2030%20L130%2010%20L140%2010%20L140%2030%20L200%2030%20L200%2025%20L210%2025%20L210%2030%20L280%2030%20L280%2015%20L290%2015%20L290%2030%20L360%2030%20L360%2020%20L370%2020%20L370%2030%20L450%2030%20L450%208%20L460%208%20L460%2030%20L530%2030%20L530%2025%20L540%2025%20L540%2030%20L620%2030%20L620%2012%20L630%2012%20L630%2030%20L700%2030%20L700%2022%20L710%2022%20L710%2030%20L780%2030%20L780%2018%20L790%2018%20L790%2030%20L860%2030%20L860%2025%20L870%2025%20L870%2030%20L940%2030%20L940%2015%20L950%2015%20L950%2030%20L1020%2030%20L1020%2020%20L1030%2020%20L1030%2030%20L1100%2030%20L1100%2010%20L1110%2010%20L1110%2030%20L1160%2030%20L1160%2022%20L1170%2022%20L1170%2030%20L1200%2030%20L1200%2048%20Z'%20fill='%233A2E22'%20opacity='0.3'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-size: cover;
}

.cta-banner__inner {
    position: relative;
    z-index: 1;
    text-align: center;
    max-width: 700px;
    margin: 0 auto;
}

.cta-banner__headline {
    margin-bottom: var(--space-lg);
}

.cta-banner__benefit {
    font-size: 18px;
    color: var(--foreground);
    margin-bottom: var(--space-xl);
}

.cta-banner__btn {
    width: 100%;
    max-width: 320px;
}

.cta-banner__micro {
    font-size: 14px;
    color: var(--muted-foreground);
    line-height: 1.5;
    margin-top: var(--space-md);
}

@media (min-width: 640px) {
    .cta-banner__btn {
        width: auto;
        max-width: none;
    }
}

@media (min-width: 900px) {
    .cta-banner {
        padding: var(--space-5xl) var(--space-lg);
    }

    .cta-banner__headline {
        font-size: 40px;
    }

    .cta-banner__benefit {
        font-size: 20px;
    }
}

/* ============================================
   CONTENT BLOCKS - Engagement & CRO Patterns
   ============================================ */

/* Summary / TL;DR box */
.summary-box {
    background: var(--card);
    border: 1px solid var(--border);
    border-left: 4px solid var(--primary);
    border-radius: var(--card-radius);
    padding: var(--space-xl);
    margin: var(--space-xl) 0;
}

.summary-box__title {
    font-size: 16px;
    font-weight: 700;
    color: var(--primary);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: var(--space-md);
}

/* Callout / highlight box */
.callout {
    background: var(--card);
    border: 1px solid var(--border);
    border-left: 4px solid var(--secondary);
    border-radius: var(--card-radius);
    padding: var(--space-xl);
    margin: var(--space-xl) 0;
}

.callout--accent {
    border-left-color: var(--accent);
}

.callout--primary {
    border-left-color: var(--primary);
}

/* Pull quote */
.pull-quote {
    font-family: var(--font-body);
    font-style: italic;
    font-size: 22px;
    line-height: 1.5;
    color: var(--foreground);
    border-left: 4px solid var(--secondary);
    padding: var(--space-lg) var(--space-xl);
    margin: var(--space-2xl) 0;
    background: rgba(249, 115, 22, 0.05);
    border-radius: 0 var(--card-radius) var(--card-radius) 0;
}

.pull-quote cite {
    display: block;
    font-style: normal;
    font-size: 14px;
    color: var(--muted-foreground);
    margin-top: var(--space-md);
}

/* Details / Summary accordion */
details {
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: var(--card-radius);
    margin-bottom: var(--space-md);
    overflow: hidden;
}

summary {
    cursor: pointer;
    padding: var(--space-lg);
    font-weight: 700;
    font-size: 17px;
    color: var(--foreground);
    list-style: none;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-md);
    transition: background var(--transition);
}

summary::-webkit-details-marker {
    display: none;
}

summary::after {
    content: '+';
    font-size: 24px;
    color: var(--accent);
    font-weight: 400;
    flex-shrink: 0;
    transition: transform var(--transition-accordion);
}

details[open] summary::after {
    content: '−';
    transform: rotate(180deg);
}

summary:hover {
    background: rgba(245, 197, 66, 0.05);
}

details > *:not(summary) {
    padding: 0 var(--space-lg) var(--space-lg);
    color: var(--muted-foreground);
    line-height: 1.6;
}

/* Trust badges row */
.trust-badges {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-md);
    align-items: center;
    justify-content: center;
    padding: var(--space-xl) 0;
}

.trust-badge {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    padding: var(--space-md) var(--space-lg);
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: var(--card-radius);
    font-size: 14px;
    color: var(--muted-foreground);
    font-weight: 600;
}

/* Comparison table */
.table-wrapper {
    max-width: 100%;
    overflow-x: auto;
    border-radius: var(--card-radius);
    border: 1px solid var(--border);
}

table {
    width: 100%;
    border-collapse: collapse;
    min-width: 0;
}

th, td {
    padding: var(--space-md) var(--space-lg);
    text-align: left;
    border-bottom: 1px solid var(--border);
    overflow-wrap: break-word;
}

th {
    background: var(--card);
    font-weight: 700;
    color: var(--foreground);
    font-size: 15px;
}

td {
    color: var(--muted-foreground);
    font-size: 15px;
}

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

.table-highlight {
    background: rgba(53, 224, 122, 0.08);
    border-left: 3px solid var(--primary);
}

.table-highlight th {
    color: var(--primary);
}

/* ============================================
   FOOTER
   ============================================ */
.site-footer {
    background: var(--card);
    border-top: 1px solid var(--border);
    padding-top: var(--space-2xl);
    margin-top: var(--space-4xl);
}

.footer-inner {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-2xl);
    padding-bottom: var(--space-2xl);
}

.footer-col h3 {
    font-family: var(--font-body);
    font-weight: 700;
    font-size: 16px;
    color: var(--accent);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: var(--space-md);
}

.footer-links {
    display: flex;
    flex-direction: column;
    gap: var(--space-sm);
}

.footer-links a {
    font-size: 15px;
    color: var(--muted-foreground);
}

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

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

.payment-badge {
    display: inline-flex;
    align-items: center;
    padding: var(--space-sm) var(--space-md);
    background: var(--background);
    border: 1px solid var(--border);
    border-radius: 8px;
    font-size: 13px;
    font-weight: 600;
    color: var(--muted-foreground);
}

.footer-legal {
    font-size: 14px;
    color: var(--muted-foreground);
    margin-bottom: var(--space-sm);
}

.footer-age {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    margin-bottom: var(--space-md);
}

.age-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    border: 2px solid var(--accent);
    font-weight: 900;
    font-size: 14px;
    color: var(--accent);
    flex-shrink: 0;
}

.footer-sitemap {
    display: inline-block;
    font-size: 14px;
    color: var(--muted-foreground);
    text-decoration: underline;
    text-underline-offset: 2px;
}

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

.footer-bottom {
    border-top: 1px solid var(--border);
    padding: var(--space-lg) 0;
    text-align: center;
}

.footer-bottom p {
    font-size: 14px;
    color: var(--muted-foreground);
}

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

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

/* ============================================
   SCROLL ANIMATIONS
   ============================================ */
.animate-on-scroll {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 600ms ease-out, transform 600ms ease-out;
}

.animate-on-scroll.is-visible {
    opacity: 1;
    transform: translateY(0);
}

/* ============================================
   REDUCED MOTION
   ============================================ */
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }

    .animate-on-scroll {
        opacity: 1;
        transform: none;
    }

    .hero-coin {
        animation: none;
    }

    .game-card__badge--live {
        animation: none;
    }
}

/* ============================================
   MISC UTILITY CLASSES
   ============================================ */
.text-center { text-align: center; }
.text-accent { color: var(--accent); }
.text-primary { color: var(--primary); }
.text-secondary { color: var(--secondary); }
.text-muted { color: var(--muted-foreground); }

.grid-2 {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-lg);
}

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

.grid-3 {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-lg);
}

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

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

/* Split layout */
.split-layout {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-xl);
    align-items: center;
}

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

/* Filter button row */
.filter-row {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-md);
    margin-bottom: var(--space-xl);
}

.filter-btn {
    padding: 10px 20px;
    border-radius: 999px;
    border: 1px solid var(--border);
    background: var(--card);
    color: var(--muted-foreground);
    font-family: var(--font-body);
    font-weight: 600;
    font-size: 15px;
    cursor: pointer;
    transition: all var(--transition);
    min-height: 48px;
    display: inline-flex;
    align-items: center;
}

.filter-btn:hover,
.filter-btn.is-active {
    background: var(--primary);
    color: var(--primary-foreground);
    border-color: var(--primary);
}

/* Filter count + hidden filterable cards */
.filter-count {
    font-size: 14px;
    color: var(--muted-foreground);
    margin-bottom: var(--space-lg);
}

.game-card.is-hidden {
    display: none;
}

/* Numbered step cards */
.step-card {
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: var(--card-radius);
    padding: var(--card-padding);
    position: relative;
}

.step-card__number {
    font-family: var(--font-display);
    font-size: 32px;
    color: var(--accent);
    margin-bottom: var(--space-md);
    display: block;
}

@media (min-width: 900px) {
    .step-card {
        padding: var(--card-padding-desktop);
    }

    .step-card__number {
        font-size: 40px;
    }
}

/* Section heading wrapper */
.section-heading {
    text-align: center;
    margin-bottom: var(--space-2xl);
}

.section-heading h2 {
    margin-bottom: var(--space-md);
}

.section-heading p {
    font-size: 17px;
    color: var(--muted-foreground);
    max-width: 60ch;
    margin: 0 auto;
}

/* Payment methods grid */
.payment-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--grid-gap);
}

.payment-card {
    display: flex;
    flex-direction: column;
    gap: var(--space-xs);
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: var(--card-radius);
    padding: var(--space-md);
    text-align: center;
    transition: transform var(--transition), box-shadow var(--transition), border-color var(--transition);
}

.payment-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 30px rgba(245, 197, 66, 0.2);
    border-color: var(--accent);
}

.payment-card img {
    width: 100%;
    aspect-ratio: 3 / 2;
    object-fit: cover;
    border-radius: 8px;
    margin-bottom: var(--space-sm);
}

.payment-card__name {
    font-weight: 700;
    font-size: 17px;
    color: var(--foreground);
}

.payment-card__desc {
    font-size: 14px;
    color: var(--muted-foreground);
    line-height: 1.5;
}

@media (min-width: 900px) {
    .payment-grid {
        grid-template-columns: repeat(4, 1fr);
    }

    .payment-card {
        padding: var(--space-lg);
    }
}

/* Content images inside split layouts */
.content-img {
    width: 100%;
    border-radius: var(--card-radius);
    border: 1px solid var(--border);
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.4);
}

/* Badge inline */
.badge {
    display: inline-flex;
    align-items: center;
    padding: 4px 12px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

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

.badge--jackpot {
    background: var(--accent);
    color: var(--accent-foreground);
}

.badge--live {
    background: var(--destructive);
    color: var(--destructive-foreground);
}

.badge--new {
    background: var(--primary);
    color: var(--primary-foreground);
}

/* Sitemap list */
.sitemap-list {
    display: flex;
    flex-direction: column;
    gap: var(--space-md);
}

.sitemap-item {
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: var(--card-radius);
    padding: var(--card-padding);
    transition: transform var(--transition), box-shadow var(--transition), border-color var(--transition);
}

.sitemap-item:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 30px rgba(245, 197, 66, 0.15);
    border-color: var(--accent);
}

.sitemap-item h3 {
    font-size: 20px;
    margin-bottom: var(--space-sm);
}

.sitemap-item h3 a {
    color: var(--foreground);
}

.sitemap-item h3 a:hover {
    color: var(--primary);
}

.sitemap-item p {
    color: var(--muted-foreground);
    font-size: 16px;
    margin-bottom: 0;
}

@media (min-width: 900px) {
    .sitemap-item {
        padding: var(--card-padding-desktop);
    }
}

/* a11y-autofix: link-in-text-block */
/* axe link-in-text-block: inline links inside body copy must be
   distinguishable without relying on color. Scope to text containers so
   nav/button/card links (already visually distinct) keep their styling. */
:where(p, li, blockquote, figcaption, dd, .prose, .seo-text, article)
  a:not([class]) {
  text-decoration: underline;
  text-underline-offset: 0.15em;
}
