:root {
    --afksp-primary: #d97a34;
    --afksp-primary-light: #e69456;
    --afksp-primary-dark: #b25e22;
    --afksp-primary-alpha-20: rgba(217,122,52,0.2);
    --afksp-accent: #c9a24b;
    --afksp-bg-dark: #0d0a08;
    --afksp-bg-light: #1a1512;
    --afksp-bg-card: #211a14;
    --afksp-bg-card-hover: #2e241b;
    --afksp-text-primary: #ffffff;
    --afksp-text-secondary: rgba(255,255,255,0.7);
    --afksp-text-muted: rgba(255,255,255,0.45);
    --afksp-success: #22c55e;
    --afksp-success-dark: #16a34a;
    --afksp-warning: #f59e0b;
    --afksp-danger: #ef4444;
    /* Flat accent system. --afksp-gradient-* keep their names for backwards
       compatibility (404.html and older blocks reference them) but no longer
       hold gradients — one flat ember drives every accent surface. */
    --afksp-ember: #e0813a;
    --afksp-ink: #0b0908;
    --afksp-gradient-primary: var(--afksp-ember);
    --afksp-gradient-dark: var(--afksp-bg-card);
    --afksp-radius-sm: 10px;
    --afksp-radius: 14px;
    --afksp-radius-lg: 20px;
    --afksp-transition: 0.28s ease;
    --afksp-spacing-sm: 6px;
    --afksp-font-heading: 'Poppins', sans-serif;
    --afksp-font-body: 'Inter', sans-serif;
}

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

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

body {
    font-family: var(--afksp-font-body);
    background-color: var(--afksp-bg-dark);
    color: var(--afksp-text-primary);
    line-height: 1.65;
    min-height: 100vh;
    display: grid;
    grid-template-rows: auto 1fr auto;
    grid-template-areas:
        "header"
        "content"
        "footer";
    overflow-x: hidden;
}

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

a:hover {
    color: var(--afksp-primary-light);
}

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

ul {
    list-style: none;
}

button {
    cursor: pointer;
    border: none;
    background: none;
    font-family: inherit;
}

/* ============================================================
   LAYOUT
   ============================================================ */
.afksp-frame {
    width: 100%;
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 24px;
}

.afksp-header {
    grid-area: header;
    position: sticky;
    top: 0;
    z-index: 1000;
    width: 100%;
}

.afksp-footer {
    grid-area: footer;
}

main.afksp-doc-body {
    grid-area: content;
    display: flex;
    flex-direction: column;
    width: 100%;
    min-width: 0;
    padding-left: 64px;
}

.afksp-frame {
    width: 100%;
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 24px;
}

/* ============================================================
   PROGRESS BAR
   ============================================================ */
#afksp-prog-line {
    position: fixed;
    top: 0;
    left: 0;
    height: 3px;
    width: 0%;
    background: var(--afksp-gradient-primary);
    z-index: 9999;
    transition: width 0.1s linear;
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.45);
}

/* ============================================================
   HEADER
   ============================================================ */
.afksp-header {
    background: rgba(13, 10, 8, 0.96);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-bottom: 1px solid var(--afksp-primary-alpha-20);
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.45);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    height: 64px;
    padding: 0 24px;
}

.logo-link {
    display: inline-flex;
    align-items: center;
    flex-shrink: 0;
    text-decoration: none;
}

.logo-link img,
.logo-img {
    height: 40px;
    width: auto;
    object-fit: contain;
}

.header-nav {
    display: flex;
    align-items: center;
    gap: 4px;
    flex: 1;
    justify-content: center;
}

.header-nav a,
.header-nav div {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    color: var(--afksp-text-secondary);
    font-family: var(--afksp-font-body);
    font-size: 0.875rem;
    font-weight: 500;
    border-radius: var(--afksp-radius-sm);
    cursor: pointer;
    transition: color var(--afksp-transition), background var(--afksp-transition);
    white-space: nowrap;
    text-decoration: none;
}

.header-nav a:hover,
.header-nav div:hover {
    color: var(--afksp-text-primary);
    background: var(--afksp-primary-alpha-20);
}

.header-nav a.active {
    color: var(--afksp-primary);
}

.header-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-shrink: 0;
}

.btn-login {
    padding: 8px 18px;
    border-radius: var(--afksp-radius-sm);
    border: 1px solid var(--afksp-primary);
    color: var(--afksp-primary);
    font-size: 0.875rem;
    font-weight: 600;
    cursor: pointer;
    transition: background var(--afksp-transition), color var(--afksp-transition), box-shadow 0.2s ease;
    white-space: nowrap;
    font-family: var(--afksp-font-body);
}

.btn-login:hover {
    background: var(--afksp-primary-alpha-20);
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.45);
}

.btn-register {
    padding: 8px 18px;
    border-radius: var(--afksp-radius-sm);
    background: var(--afksp-gradient-primary);
    color: #fff;
    font-size: 0.875rem;
    font-weight: 600;
    cursor: pointer;
    transition: opacity var(--afksp-transition), box-shadow 0.2s ease;
    white-space: nowrap;
    font-family: var(--afksp-font-body);
    border: none;
}

.btn-register:hover {
    opacity: 0.9;
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.45);
}

.btn-search {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: var(--afksp-radius-sm);
    color: var(--afksp-text-secondary);
    cursor: pointer;
    transition: color var(--afksp-transition), background var(--afksp-transition);
    font-size: 1rem;
}

.btn-search:hover {
    color: var(--afksp-primary);
    background: var(--afksp-primary-alpha-20);
}

.hamburger {
    display: none;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 5px;
    width: 38px;
    height: 38px;
    cursor: pointer;
    border-radius: var(--afksp-radius-sm);
    transition: background var(--afksp-transition);
    flex-shrink: 0;
}

.hamburger:hover {
    background: var(--afksp-primary-alpha-20);
}

.hamburger span {
    display: block;
    width: 22px;
    height: 2px;
    background: var(--afksp-text-primary);
    border-radius: 2px;
    transition: transform var(--afksp-transition);
}

/* ============================================================
   SIDEBAR
   ============================================================ */
.sidebar {
    position: fixed;
    left: 0;
    top: 64px;
    bottom: 0;
    width: 64px;
    background: rgba(26, 21, 18, 0.95);
    border-right: 1px solid var(--afksp-primary-alpha-20);
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 16px 0;
    gap: 4px;
    z-index: 900;
    overflow: hidden;
}

.sidebar-item {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: var(--afksp-radius-sm);
    color: var(--afksp-text-muted);
    font-size: 1.1rem;
    cursor: pointer;
    transition: color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
}

.sidebar-item:hover {
    color: var(--afksp-primary);
    background: var(--afksp-primary-alpha-20);
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.45);
}

.sidebar-item.active {
    color: var(--afksp-primary);
    background: var(--afksp-primary-alpha-20);
}

.sidebar-item .badge {
    position: absolute;
    top: 6px;
    right: 6px;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--afksp-primary);
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.45);
}

/* ============================================================
   MOBILE MENU
   ============================================================ */
.mobile-menu-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.7);
    z-index: 1100;
    opacity: 0;
    transition: opacity var(--afksp-transition);
}

.mobile-menu-overlay.active {
    display: block;
    opacity: 1;
}

.mobile-menu {
    position: fixed;
    top: 0;
    right: -320px;
    width: 300px;
    height: 100vh;
    background: var(--afksp-bg-light);
    border-left: 1px solid var(--afksp-primary-alpha-20);
    z-index: 1200;
    display: flex;
    flex-direction: column;
    transition: right var(--afksp-transition);
    overflow-y: auto;
}

.mobile-menu.active {
    right: 0;
}

.mobile-menu-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 20px;
    border-bottom: 1px solid var(--afksp-primary-alpha-20);
    flex-shrink: 0;
}

.mobile-menu-close {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: var(--afksp-radius-sm);
    color: var(--afksp-text-secondary);
    font-size: 1.1rem;
    cursor: pointer;
    transition: color var(--afksp-transition), background var(--afksp-transition);
    background: none;
    border: none;
}

.mobile-menu-close:hover {
    color: var(--afksp-primary);
    background: var(--afksp-primary-alpha-20);
}

.mobile-menu-body {
    flex: 1;
    display: flex;
    flex-direction: column;
    padding: 16px 0;
}

.mobile-menu-auth {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 0 16px 16px;
    border-bottom: 1px solid var(--afksp-primary-alpha-20);
    margin-bottom: 8px;
}

.mobile-menu-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 11px 20px;
    border-radius: var(--afksp-radius-sm);
    font-size: 0.9rem;
    font-weight: 600;
    cursor: pointer;
    background: var(--afksp-gradient-primary);
    color: #fff;
    transition: opacity var(--afksp-transition), box-shadow 0.2s ease;
    text-align: center;
}

.mobile-menu-btn:hover {
    opacity: 0.9;
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.45);
}

.mobile-menu-btn-secondary {
    background: none;
    border: 1px solid var(--afksp-primary);
    color: var(--afksp-primary);
}

.mobile-menu-btn-secondary:hover {
    background: var(--afksp-primary-alpha-20);
}

.mobile-menu-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 13px 20px;
    color: var(--afksp-text-secondary);
    font-size: 0.9rem;
    font-weight: 500;
    cursor: pointer;
    transition: color var(--afksp-transition), background var(--afksp-transition);
    border-radius: 0;
}

.mobile-menu-item:hover {
    color: var(--afksp-primary);
    background: var(--afksp-primary-alpha-20);
}

.mobile-menu-item i {
    width: 18px;
    text-align: center;
    color: var(--afksp-accent);
    font-size: 0.95rem;
}

.mobile-menu-footer {
    padding: 16px 20px;
    border-top: 1px solid var(--afksp-primary-alpha-20);
    font-size: 0.75rem;
    color: var(--afksp-text-muted);
    text-align: center;
    flex-shrink: 0;
}

/* ============================================================
   BREADCRUMB
   ============================================================ */
.afksp-bc,
.afksp-bc {
    padding: 14px 0 8px;
}

.afksp-bc-list,
.afksp-bc-list {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px;
    list-style: none;
    padding: 0;
    margin: 0;
}

.afksp-trail-item,
.afksp-trail-item {
    display: flex;
    align-items: center;
    font-size: 0.8rem;
    color: var(--afksp-text-muted);
}

.afksp-trail-item a,
.afksp-trail-item a {
    color: var(--afksp-text-muted);
    text-decoration: none;
    transition: color var(--afksp-transition);
}

.afksp-trail-item a:hover,
.afksp-trail-item a:hover {
    color: var(--afksp-primary);
}

.afksp-trail-item + .afksp-trail-item::before,
.afksp-trail-item + .afksp-trail-item::before {
    content: '/';
    margin-right: 4px;
    color: var(--afksp-text-muted);
    opacity: 0.5;
}

.afksp-path-here,
.afksp-path-here {
    color: var(--afksp-primary);
    font-weight: 500;
}

/* ============================================================
   ARTICLE WRAPPER & PAGE TITLE
   ============================================================ */
.afksp-head-title,
.afksp-head-title {
    font-family: var(--afksp-font-heading);
    font-size: clamp(1.8rem, 4vw, 2.8rem);
    font-weight: 800;
    line-height: 1.2;
    color: var(--afksp-text-primary);
    margin: 12px 0 16px;
    letter-spacing: -0.022em;
    background: none;
    -webkit-text-fill-color: currentColor;
    text-wrap: balance;
}

.afksp-opener,
.afksp-opener {
    color: var(--afksp-text-secondary);
    font-size: 1rem;
    line-height: 1.75;
    margin-bottom: 24px;
}

.afksp-opener p {
    margin-bottom: 14px;
}

.afksp-claim,
.afksp-claim {
    font-family: var(--afksp-font-heading);
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--afksp-accent);
    font-style: italic;
    margin-top: 8px;
}

.afksp-doc-body {
    max-width: 900px;
}

/* Byline */
.afksp-byline {
    font-size: 0.85rem;
    color: var(--afksp-text-muted);
    margin-bottom: 20px;
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    align-items: center;
}

.afksp-byline-name {
    color: var(--afksp-accent);
    font-weight: 600;
}

.afksp-byline-sep {
    color: var(--afksp-text-muted);
}

.afksp-byline-role {
    color: var(--afksp-text-muted);
}

/* ============================================================
   CTA BUTTONS
   ============================================================ */
.afksp-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 13px 28px;
    border-radius: var(--afksp-radius-sm);
    font-family: var(--afksp-font-body);
    font-size: 0.95rem;
    font-weight: 700;
    cursor: pointer;
    transition: opacity var(--afksp-transition), box-shadow 0.2s ease, transform 0.2s ease;
    border: none;
    text-decoration: none;
    white-space: nowrap;
}

.afksp-btn:hover {
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.45);
    transform: translateY(-1px);
}

.afksp-btn-primary {
    background: var(--afksp-gradient-primary);
    color: #fff;
}

.afksp-btn-primary:hover {
    opacity: 0.92;
}

/* ============================================================
   HERO / BANNER
   ============================================================ */
.afksp-banner-top {
    padding: 0 0 32px;
}

.afksp-top-grad,
.afksp-banner-top,
.afksp-top-grad {
    position: relative;
    border-radius: var(--afksp-radius-lg);
    overflow: hidden;
    background-image: url('/images/banner.png');
        /* image-set() overrides fallback above in modern browsers */
        background-image:
            image-set(
                url('/images/banner.avif') type('image/avif'),
                url('/images/banner.webp') type('image/webp'),
                url('/images/banner.png') type('image/png')
            );
    /* Solid scrim blended into the artwork instead of a stacked gradient layer */
    background-color: rgba(11, 9, 8, 0.52);
    background-blend-mode: darken;
    border: 1px solid var(--afksp-primary-alpha-20);
    padding: 48px 40px;
    min-height: 260px;
    display: flex;
    align-items: center;
}

.afksp-hero-overlay {
    position: absolute;
    inset: 0;
    background: none;
    pointer-events: none;
}

.afksp-bonus-badge-corner {
    position: absolute;
    top: 24px;
    right: 24px;
    background: var(--afksp-gradient-primary);
    border-radius: var(--afksp-radius);
    padding: 12px 20px;
    text-align: center;
    box-shadow: 0 8px 24px rgba(217,122,52,0.4);
}

.afksp-bonus-badge-amount {
    display: block;
    font-family: var(--afksp-font-heading);
    font-size: 1.5rem;
    font-weight: 800;
    color: #fff;
    line-height: 1;
}

.afksp-bonus-badge-label {
    display: block;
    font-size: 0.8rem;
    font-weight: 600;
    color: rgba(255,255,255,0.85);
    margin-top: 4px;
}

.afksp-banner-content {
    position: relative;
    z-index: 1;
    max-width: 600px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.afksp-banner-label {
    display: inline-block;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--afksp-accent);
    padding: 4px 12px;
    border: 1px solid var(--afksp-accent);
    border-radius: 50px;
    width: fit-content;
}

.afksp-banner-title {
    font-family: var(--afksp-font-heading);
    font-size: clamp(1.4rem, 3vw, 2.2rem);
    font-weight: 800;
    color: var(--afksp-text-primary);
    line-height: 1.2;
}

.afksp-banner-text {
    color: var(--afksp-text-secondary);
    font-size: 0.95rem;
    line-height: 1.6;
    max-width: 520px;
}

/* ============================================================
   GAMES SECTION
   ============================================================ */
.afksp-slots-block,
.afksp-slots-block {
    padding: 32px 0;
}

.games-section-title {
    font-family: var(--afksp-font-heading);
    font-size: 1.3rem;
    font-weight: 700;
    color: var(--afksp-text-primary);
    margin-bottom: 20px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.games-section-title i {
    color: var(--afksp-primary);
}

.afksp-lobby-grid,
.afksp-lobby-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: 16px;
    margin-bottom: 24px;
}

.afksp-play-item,
.afksp-play-item {
    position: relative;
    border-radius: var(--afksp-radius);
    overflow: hidden;
    background: var(--afksp-bg-card);
    cursor: pointer;
    aspect-ratio: 3/4;
    border: 1px solid rgba(255,255,255,0.06);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.afksp-play-item img,
.afksp-play-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.3s ease;
}

.afksp-play-item:hover img,
.afksp-play-item:hover img {
    transform: scale(1.06);
}

.afksp-play-item:hover,
.afksp-play-item:hover {
    transform: scale(1.04);
    box-shadow: 0 24px 48px rgba(0,0,0,0.5);
}

.afksp-tile-cover,
.afksp-tile-cover {
    position: absolute;
    inset: 0;
    background: rgba(11, 9, 8, 0.78);
    background: color-mix(in oklab, var(--afksp-ink) 78%, transparent);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
    padding: 12px;
    opacity: 0;
    transition: opacity 0.2s ease;
}

.afksp-play-item:hover .afksp-tile-cover,
.afksp-play-item:hover .afksp-tile-cover {
    opacity: 1;
}

.afksp-play-title {
    font-size: 0.78rem;
    font-weight: 600;
    color: #fff;
    text-align: center;
    line-height: 1.3;
    margin-bottom: 8px;
}

.afksp-spin-btn,
.afksp-spin-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 7px 18px;
    background: var(--afksp-gradient-primary);
    color: #fff;
    font-size: 0.8rem;
    font-weight: 700;
    border-radius: 50px;
    cursor: pointer;
    transition: box-shadow 0.2s ease;
    white-space: nowrap;
}

.afksp-spin-btn:hover,
.afksp-spin-btn:hover {
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.45);
}

.afksp-tile-ph {
    width: 100%;
    height: 100%;
    background: var(--afksp-bg-card);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--afksp-text-muted);
    font-size: 2rem;
}

.btn-view-all-games {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 28px;
    background: transparent;
    border: 1px solid var(--afksp-primary);
    color: var(--afksp-primary);
    font-size: 0.9rem;
    font-weight: 600;
    border-radius: var(--afksp-radius-sm);
    cursor: pointer;
    transition: background var(--afksp-transition), box-shadow 0.2s ease;
    margin: 0 auto;
}

.btn-view-all-games:hover {
    background: var(--afksp-primary-alpha-20);
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.45);
}

/* ============================================================
   CONTENT SECTIONS
   ============================================================ */
.afksp-txt-zone,
.afksp-txt-zone {
    padding: 36px 0;
    border-bottom: 1px solid var(--afksp-primary-alpha-20);
}

.afksp-txt-zone.afksp-fade-in {
    opacity: 0;
    transform: translateY(16px);
    transition: opacity 0.5s ease, transform 0.5s ease;
}

.afksp-txt-zone.afksp-fade-in.afksp-shown {
    opacity: 1;
    transform: translateY(0);
}

.afksp-txt-zone h2,
.afksp-txt-zone h2 {
    font-family: var(--afksp-font-heading);
    font-size: clamp(1.3rem, 2.5vw, 1.8rem);
    font-weight: 700;
    color: var(--afksp-text-primary);
    margin-bottom: 16px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--afksp-primary-alpha-20);
    position: relative;
}

.afksp-txt-zone h2::after {
    content: '';
    position: absolute;
    bottom: -1px;
    left: 0;
    width: 48px;
    height: 2px;
    background: var(--afksp-gradient-primary);
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.45);
    border-radius: 2px;
}

.afksp-txt-zone h3,
.afksp-txt-zone h3 {
    font-family: var(--afksp-font-heading);
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--afksp-accent);
    margin: 24px 0 10px;
}

.afksp-txt-zone h4 {
    font-size: 1rem;
    font-weight: 600;
    color: var(--afksp-text-primary);
    margin-bottom: 6px;
}

.afksp-txt-zone p,
.afksp-txt-zone p {
    color: var(--afksp-text-secondary);
    font-size: 0.95rem;
    line-height: 1.75;
    margin-bottom: 14px;
}

.afksp-txt-zone ul,
.afksp-txt-zone ul {
    margin: 12px 0 16px 4px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.afksp-txt-zone ul li,
.afksp-txt-zone ul li {
    color: var(--afksp-text-secondary);
    font-size: 0.93rem;
    padding-left: 18px;
    position: relative;
    line-height: 1.6;
}

.afksp-txt-zone ul li::before {
    content: '›';
    position: absolute;
    left: 0;
    color: var(--afksp-primary);
    font-weight: 700;
}

.table-wrapper {
    overflow-x: auto;
    margin: 16px 0;
    border-radius: var(--afksp-radius);
    border: 1px solid var(--afksp-primary-alpha-20);
}

.afksp-overview-table,
.afksp-overview-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.88rem;
    min-width: 400px;
}

.afksp-overview-table th,
.afksp-overview-table td,
.afksp-overview-table th,
.afksp-overview-table td {
    padding: 11px 16px;
    text-align: left;
    border-bottom: 1px solid rgba(255,255,255,0.06);
    color: var(--afksp-text-secondary);
    line-height: 1.5;
}

.afksp-overview-table th,
.afksp-overview-table th {
    background: rgba(217,122,52,0.1);
    color: var(--afksp-text-primary);
    font-weight: 600;
    font-size: 0.82rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.afksp-overview-table tr:last-child td {
    border-bottom: none;
}

.afksp-overview-table tr:nth-child(even) td {
    background: rgba(255,255,255,0.02);
}

.afksp-overview-table tr:hover td {
    background: rgba(217,122,52,0.06);
    transition: background 0.2s ease;
}

/* ============================================================
   STATS GRID / NUMBERS
   ============================================================ */
.afksp-num-grid,
.afksp-num-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
    gap: 16px;
    margin: 24px 0;
}

.afksp-fig-box,
.afksp-fig-box {
    background: var(--afksp-bg-card);
    border: 1px solid var(--afksp-primary-alpha-20);
    border-radius: var(--afksp-radius);
    padding: 20px 16px;
    text-align: center;
    transition: transform 0.2s ease, border-left 0.2s ease, box-shadow 0.2s ease;
    cursor: default;
}

.afksp-fig-box:hover,
.afksp-fig-box:hover {
    transform: translateY(-4px);
    border-left: 3px solid var(--afksp-primary);
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.45);
}

.afksp-kpi-mark,
.afksp-kpi-mark {
    font-size: 1.3rem;
    color: var(--afksp-primary);
    margin-bottom: 8px;
}

.afksp-fig-val,
.afksp-fig-val {
    font-family: var(--afksp-font-heading);
    font-size: 1.5rem;
    font-weight: 800;
    color: var(--afksp-text-primary);
    line-height: 1.1;
    margin-bottom: 4px;
}

.afksp-fig-cap,
.afksp-fig-cap {
    font-size: 0.77rem;
    color: var(--afksp-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-weight: 500;
}

/* ============================================================
   INFO BOXES / CALLOUTS
   ============================================================ */
.afksp-note-box,
.afksp-note-box {
    display: flex;
    gap: 14px;
    padding: 16px 20px;
    border-radius: var(--afksp-radius);
    border: 1px solid transparent;
    margin: 20px 0;
    background: var(--afksp-bg-card);
    align-items: flex-start;
}

.afksp-callout-ok,
.afksp-callout-ok {
    border-color: rgba(34,197,94,0.3);
    background: rgba(34,197,94,0.07);
}

.afksp-callout-warn,
.afksp-callout-warn {
    border-color: rgba(245,158,11,0.35);
    background: rgba(245,158,11,0.07);
}

.afksp-callout-glyph,
.afksp-callout-glyph {
    font-size: 1.1rem;
    flex-shrink: 0;
    margin-top: 2px;
}

.afksp-callout-ok .afksp-callout-glyph,
.afksp-callout-ok .afksp-callout-glyph {
    color: var(--afksp-success);
}

.afksp-callout-warn .afksp-callout-glyph,
.afksp-callout-warn .afksp-callout-glyph {
    color: var(--afksp-warning);
}

.afksp-note-body,
.afksp-note-body {
    color: var(--afksp-text-secondary);
    font-size: 0.88rem;
    line-height: 1.65;
}

.afksp-note-body strong {
    color: var(--afksp-text-primary);
}

/* ============================================================
   PROMO CODE
   ============================================================ */
.afksp-code-feature {
    background: var(--afksp-bg-card);
    border: 1px solid var(--afksp-primary-alpha-20);
    border-radius: var(--afksp-radius);
    padding: 20px 24px;
    margin: 20px 0;
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
}

.afksp-voucher-tag {
    background: var(--afksp-gradient-primary);
    border-radius: var(--afksp-radius-sm);
    padding: 8px 14px;
    flex-shrink: 0;
}

.afksp-code-glyph {
    font-size: 1.4rem;
    color: #fff;
}

.afksp-deal-body {
    flex: 1;
    min-width: 0;
}

.afksp-promo-cap {
    font-size: 0.78rem;
    color: var(--afksp-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin-bottom: 4px;
}

.afksp-voucher-val {
    font-family: 'Space Mono', monospace;
    font-size: 1.2rem;
    font-weight: 700;
    color: var(--afksp-primary);
    letter-spacing: 0.1em;
}

.afksp-code-copy {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 9px 18px;
    background: var(--afksp-primary-alpha-20);
    border: 1px solid var(--afksp-primary);
    color: var(--afksp-primary);
    border-radius: var(--afksp-radius-sm);
    font-size: 0.85rem;
    font-weight: 600;
    cursor: pointer;
    transition: background var(--afksp-transition), box-shadow 0.2s ease;
    flex-shrink: 0;
}

.afksp-code-copy:hover {
    background: var(--afksp-primary);
    color: #fff;
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.45);
}

/* ============================================================
   TIMELINE / ROADMAP
   ============================================================ */
.afksp-roadmap,
.afksp-roadmap {
    display: flex;
    flex-direction: column;
    gap: 0;
    margin: 20px 0;
    position: relative;
}

.afksp-roadmap::before,
.afksp-roadmap::before {
    content: '';
    position: absolute;
    left: 20px;
    top: 0;
    bottom: 0;
    width: 2px;
    background: rgba(224, 129, 58, 0.45);
    background: color-mix(in oklab, var(--afksp-ember) 45%, transparent);
    opacity: 0.4;
}

.afksp-roadmap-item,
.afksp-roadmap-item {
    display: flex;
    gap: 16px;
    padding: 16px 0 16px 0;
    position: relative;
}

.afksp-step-num,
.afksp-step-num {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--afksp-gradient-primary);
    color: #fff;
    font-weight: 800;
    font-size: 0.95rem;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.45);
    position: relative;
    z-index: 1;
}

.afksp-stage-body,
.afksp-stage-body {
    flex: 1;
    padding-top: 8px;
    min-width: 0;
}

.afksp-stage-title,
.afksp-stage-title {
    font-family: var(--afksp-font-heading);
    font-size: 1rem;
    font-weight: 700;
    color: var(--afksp-text-primary);
    margin-bottom: 4px;
}

.afksp-roadmap-text,
.afksp-roadmap-text {
    font-size: 0.88rem;
    color: var(--afksp-text-secondary);
    line-height: 1.6;
    margin: 0;
}

/* ============================================================
   CASHBACK SECTION
   ============================================================ */
.afksp-rebate-block {
    padding: 36px 0;
}

.afksp-rebate-box {
    background: var(--afksp-bg-card);
    border: 1px solid var(--afksp-primary-alpha-20);
    border-radius: var(--afksp-radius-lg);
    overflow: hidden;
}

.afksp-cb-spot {
    background: var(--afksp-gradient-primary);
    padding: 24px 28px;
    display: flex;
    align-items: center;
    gap: 16px;
}

.afksp-refund-ico {
    font-size: 2rem;
    color: rgba(255,255,255,0.9);
}

.afksp-rebate-val {
    font-family: var(--afksp-font-heading);
    font-size: 2rem;
    font-weight: 800;
    color: #fff;
    line-height: 1;
}

.afksp-rebate-lab {
    font-size: 0.85rem;
    color: rgba(255,255,255,0.8);
    margin-top: 4px;
}

.afksp-cb-text {
    padding: 24px 28px;
}

.afksp-refund-stats {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
    gap: 16px;
    margin-top: 16px;
}

.afksp-refund-fig {
    text-align: center;
    padding: 12px;
    background: var(--afksp-bg-light);
    border-radius: var(--afksp-radius-sm);
    border: 1px solid var(--afksp-primary-alpha-20);
}

.afksp-cb-fnum {
    font-family: var(--afksp-font-heading);
    font-size: 1.2rem;
    font-weight: 700;
    color: var(--afksp-primary);
}

.afksp-rebate-fcap {
    font-size: 0.75rem;
    color: var(--afksp-text-muted);
    margin-top: 4px;
}

/* ============================================================
   PROVIDER TAGS / SUPPLIER GRID
   ============================================================ */
.afksp-supplier-grid,
.afksp-supplier-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 16px 0;
}

.afksp-vendor-chip,
.afksp-vendor-chip {
    display: inline-flex;
    align-items: center;
    padding: 6px 14px;
    background: var(--afksp-bg-card);
    border: 1px solid var(--afksp-primary-alpha-20);
    border-radius: 50px;
    font-size: 0.82rem;
    font-weight: 500;
    color: var(--afksp-text-secondary);
    transition: color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
    cursor: default;
}

.afksp-vendor-chip:hover,
.afksp-vendor-chip:hover {
    color: var(--afksp-primary);
    border-color: var(--afksp-primary);
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.45);
}

/* ============================================================
   SECURITY SECTION
   ============================================================ */
.afksp-trust-block,
.afksp-trust-block {
    padding: 36px 0;
}

.afksp-sec-grid,
.afksp-sec-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 16px;
    margin: 20px 0;
}

.afksp-guard-badge,
.afksp-guard-badge {
    background: var(--afksp-bg-card);
    border: 1px solid var(--afksp-primary-alpha-20);
    border-radius: var(--afksp-radius);
    padding: 20px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.afksp-guard-badge:hover,
.afksp-guard-badge:hover {
    border-color: var(--afksp-primary);
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.45);
}

.afksp-guard-ico,
.afksp-guard-ico {
    font-size: 1.5rem;
    color: var(--afksp-primary);
}

.afksp-guard-title,
.afksp-guard-title {
    font-weight: 700;
    font-size: 0.95rem;
    color: var(--afksp-text-primary);
}

.afksp-safe-body,
.afksp-safe-body {
    font-size: 0.83rem;
    color: var(--afksp-text-muted);
    line-height: 1.6;
}

/* ============================================================
   WHEEL OF FORTUNE
   ============================================================ */
.afksp-fortune-zone {
    padding: 36px 0;
}

.afksp-fortune-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 16px;
    margin: 20px 0;
}

.afksp-spin-card {
    background: var(--afksp-bg-card);
    border: 1px solid var(--afksp-primary-alpha-20);
    border-radius: var(--afksp-radius);
    overflow: hidden;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.afksp-spin-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.45);
}

.afksp-fortune-top {
    background: var(--afksp-gradient-primary);
    padding: 16px 20px;
    display: flex;
    align-items: center;
    gap: 12px;
}

.afksp-spin-ico {
    font-size: 1.4rem;
    color: #fff;
}

.afksp-wh-name {
    font-weight: 700;
    color: #fff;
    font-size: 0.95rem;
}

.afksp-fortune-price {
    font-size: 0.8rem;
    color: rgba(255,255,255,0.8);
    margin-top: 2px;
}

.afksp-fortune-grid {
    padding: 16px;
}

/* ============================================================
   BONUS SHOP
   ============================================================ */
.afksp-sh-section {
    padding: 36px 0;
}

.afksp-bonus-shop-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 16px;
    margin: 20px 0;
}

.afksp-bonus-shop-card {
    background: var(--afksp-bg-card);
    border: 1px solid var(--afksp-primary-alpha-20);
    border-radius: var(--afksp-radius);
    overflow: hidden;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.afksp-bonus-shop-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.45);
}

.afksp-store-head {
    padding: 16px 20px;
    background: rgba(217,122,52,0.1);
    border-bottom: 1px solid var(--afksp-primary-alpha-20);
    display: flex;
    align-items: center;
    gap: 10px;
}

.afksp-sh-ico {
    font-size: 1.3rem;
    color: var(--afksp-primary);
}

.afksp-sh-cat {
    font-weight: 700;
    color: var(--afksp-text-primary);
    font-size: 0.9rem;
}

.afksp-sh-count {
    font-size: 0.78rem;
    color: var(--afksp-text-muted);
    margin-top: 2px;
}

.afksp-sh-table {
    padding: 16px;
}

/* ============================================================
   LANGUAGES & COUNTRIES
   ============================================================ */
.afksp-lang-block {
    padding: 36px 0;
}

.afksp-loc-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 16px 0;
}

.afksp-i18n-tag {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 14px;
    background: var(--afksp-bg-card);
    border: 1px solid var(--afksp-primary-alpha-20);
    border-radius: 50px;
    font-size: 0.82rem;
    color: var(--afksp-text-secondary);
    transition: color 0.2s ease, border-color 0.2s ease;
}

.afksp-i18n-tag:hover {
    color: var(--afksp-primary);
    border-color: var(--afksp-primary);
}

.afksp-ban-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: 8px;
    margin: 16px 0;
}

.afksp-block-item {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    background: rgba(239,68,68,0.08);
    border: 1px solid rgba(239,68,68,0.2);
    border-radius: var(--afksp-radius-sm);
    font-size: 0.82rem;
    color: var(--afksp-text-secondary);
}

.afksp-block-item::before {
    content: '✕';
    color: var(--afksp-danger);
    font-weight: 700;
    font-size: 0.75rem;
}

/* ============================================================
   SITE SCREENSHOT
   ============================================================ */
.afksp-thumb-frame,
.afksp-thumb-frame,
picture.afksp-thumb-frame {
    display: block;
    margin: 24px 0;
    border-radius: var(--afksp-radius-lg);
    overflow: hidden;
    border: 1px solid var(--afksp-primary-alpha-20);
    box-shadow: 0 16px 40px rgba(0,0,0,0.4);
}

.afksp-snap,
.afksp-snap {
    width: 100%;
    height: auto;
    display: block;
    border-radius: var(--afksp-radius-lg);
}

.afksp-section-image-wrap {
    display: block;
    margin: 24px auto;
    max-width: 1100px;
    padding: 0 24px;
    border-radius: var(--afksp-radius-lg);
    overflow: hidden;
}

.afksp-section-image {
    width: 100%;
    height: auto;
    display: block;
    border-radius: var(--afksp-radius-lg);
    border: 1px solid var(--afksp-primary-alpha-20);
}

/* ============================================================
   FAQ
   ============================================================ */
.afksp-help-block,
.afksp-help-block {
    padding: 36px 0;
}

.afksp-fq-list,
.afksp-fq-list {
    display: flex;
    flex-direction: column;
    gap: 0;
    margin-top: 20px;
}

.afksp-ask-block,
.afksp-ask-block {
    border-bottom: 1px solid var(--afksp-primary-alpha-20);
    overflow: hidden;
}

.afksp-qa-q,
.afksp-qa-q {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 0;
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--afksp-text-primary);
    cursor: pointer;
    transition: color var(--afksp-transition);
    user-select: none;
}

.afksp-qa-q:hover,
.afksp-qa-q:hover {
    color: var(--afksp-primary);
}

.afksp-qa-q::after {
    content: '+';
    font-size: 1.3rem;
    font-weight: 400;
    color: var(--afksp-primary);
    flex-shrink: 0;
    transition: transform var(--afksp-transition);
}

.afksp-ask-block.open .afksp-qa-q::after {
    transform: rotate(45deg);
}

.afksp-fq-text,
.afksp-fq-text {
    display: none;
    padding-bottom: 16px;
    color: var(--afksp-text-secondary);
    font-size: 0.88rem;
    line-height: 1.7;
}

.afksp-ask-block.open .afksp-fq-text,
.afksp-ask-block.open .afksp-fq-text {
    display: block;
}

/* ============================================================
   AUTHOR BOX
   ============================================================ */
.afksp-author-box {
    margin: 32px auto;
    max-width: 1100px;
    padding: 28px 24px;
    background: var(--afksp-bg-card);
    border: 1px solid var(--afksp-primary-alpha-20);
    border-left: 3px solid var(--afksp-primary);
    border-radius: var(--afksp-radius);
}

.afksp-author-heading {
    font-family: var(--afksp-font-heading);
    font-size: 0.8rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--afksp-text-muted);
    margin-bottom: 16px;
}

.afksp-author-inner {
    display: flex;
    gap: 20px;
    align-items: flex-start;
}

.afksp-author-text {
    flex: 1;
}

.afksp-author-name {
    font-weight: 700;
    color: var(--afksp-text-primary);
    font-size: 1rem;
    margin-bottom: 4px;
}

.afksp-author-role {
    color: var(--afksp-accent);
    font-weight: 600;
}

.afksp-author-creds {
    font-size: 0.82rem;
    color: var(--afksp-text-muted);
    margin-bottom: 10px;
}

.afksp-author-bio {
    font-size: 0.88rem;
    color: var(--afksp-text-secondary);
    line-height: 1.7;
    margin: 0;
}

/* ============================================================
   FLOAT BAR
   ============================================================ */
#afksp-float-bar {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 1050;
    background: rgba(26, 21, 18, 0.97);
    border-top: 1px solid var(--afksp-primary-alpha-20);
    backdrop-filter: blur(12px);
    padding: 12px 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    transform: translateY(100%);
    transition: transform 0.3s ease;
    box-shadow: 0 -4px 20px rgba(0,0,0,0.4);
}

.afksp-fixed-bonus {
    font-size: 0.85rem;
    color: var(--afksp-text-secondary);
    flex: 1;
    min-width: 0;
}

.afksp-float-acts {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-shrink: 0;
}

.afksp-pin-btn {
    padding: 9px 20px;
    background: var(--afksp-gradient-primary);
    color: #fff;
    font-weight: 700;
    font-size: 0.85rem;
    border-radius: var(--afksp-radius-sm);
    cursor: pointer;
    transition: opacity var(--afksp-transition), box-shadow 0.2s ease;
}

.afksp-pin-btn:hover {
    opacity: 0.9;
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.45);
}

.afksp-float-close {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    background: none;
    border: none;
    color: var(--afksp-text-muted);
    font-size: 1rem;
    cursor: pointer;
    border-radius: var(--afksp-radius-sm);
    transition: color var(--afksp-transition);
}

.afksp-float-close:hover {
    color: var(--afksp-text-primary);
}

/* ============================================================
   FLASH TOAST
   ============================================================ */
#afksp-flash-msg {
    position: fixed;
    bottom: 80px;
    left: 50%;
    transform: translateX(-50%) translateY(20px);
    background: var(--afksp-bg-card);
    border: 1px solid var(--afksp-primary);
    color: var(--afksp-text-primary);
    font-size: 0.88rem;
    font-weight: 600;
    padding: 10px 24px;
    border-radius: 50px;
    opacity: 0;
    transition: opacity 0.3s ease, transform 0.3s ease;
    pointer-events: none;
    z-index: 9999;
    white-space: nowrap;
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.45);
}

#afksp-flash-msg.afksp-flash-msg-show {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
}

/* ============================================================
   SECTION IMAGE
   ============================================================ */
.afksp-sec-head {
    font-family: var(--afksp-font-heading);
    font-size: clamp(1.2rem, 2.5vw, 1.7rem);
    font-weight: 700;
    color: var(--afksp-text-primary);
    margin-bottom: 20px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.afksp-sec-head::before {
    content: '';
    display: block;
    width: 4px;
    height: 22px;
    background: var(--afksp-gradient-primary);
    border-radius: 2px;
}

/* ============================================================
   FOOTER
   ============================================================ */
.afksp-footer {
    background: var(--afksp-bg-light);
    border-top: 1px solid var(--afksp-primary-alpha-20);
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.45);
    margin-top: 40px;
}

.afksp-footer-top {
    padding: 36px 0 24px;
    border-bottom: 1px solid var(--afksp-primary-alpha-20);
}

.afksp-footer-cols {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 32px;
    padding: 32px 0;
    border-bottom: 1px solid var(--afksp-primary-alpha-20);
}

.footer-col strong {
    display: block;
    font-family: var(--afksp-font-heading);
    font-size: 0.85rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--afksp-text-primary);
    margin-bottom: 14px;
}

.footer-col ul {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.footer-col ul li a,
.footer-col ul li div {
    color: var(--afksp-text-muted);
    font-size: 0.84rem;
    cursor: pointer;
    transition: color var(--afksp-transition);
    text-decoration: none;
    display: inline-block;
}

.footer-col ul li a:hover,
.footer-col ul li div:hover {
    color: var(--afksp-primary);
}

.afksp-footer-disclaimer,
.footer-disclaimer {
    padding: 20px 0;
    font-size: 0.77rem;
    color: var(--afksp-text-muted);
    line-height: 1.65;
    border-bottom: 1px solid var(--afksp-primary-alpha-20);
}

.afksp-footer-bottom,
.footer-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 20px 0;
    gap: 16px;
    flex-wrap: wrap;
}

.afksp-footer-bottom span:first-child {
    font-size: 0.82rem;
    color: var(--afksp-text-muted);
}

.afksp-footer-badges,
.footer-badges {
    display: flex;
    align-items: center;
    gap: 10px;
}

.afksp-eighteen-chip,
.afksp-eighteen-chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--afksp-danger);
    color: #fff;
    font-size: 0.7rem;
    font-weight: 800;
}

.afksp-cert-badge,
.afksp-cert-badge {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 5px 12px;
    background: rgba(34,197,94,0.1);
    border: 1px solid rgba(34,197,94,0.3);
    border-radius: 50px;
    color: var(--afksp-success);
    font-size: 0.75rem;
    font-weight: 600;
}

.afksp-footer-copyright {
    font-size: 0.82rem;
    color: var(--afksp-text-muted);
}

/* ============================================================
   UTILITY
   ============================================================ */


a.afksp-go {
    cursor: pointer;
    text-decoration: none;
}

/* ============================================================
   MOTION & PAGE LOAD ANIMATIONS
   ============================================================ */
@media (prefers-reduced-motion: no-preference) {
    @keyframes fd-fade-up {
        from { opacity: 0; transform: translateY(20px); }
        to   { opacity: 1; transform: translateY(0); }
    }

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

    @keyframes fd-scale-in {
        from { opacity: 0; transform: scale(0.96); }
        to   { opacity: 1; transform: scale(1); }
    }

    .afksp-head-title,
    .afksp-head-title {
        animation: fd-fade-up 0.5s ease-out both;
    }

    .afksp-opener,
    .afksp-opener {
        animation: fd-fade-up 0.5s ease-out 0.15s both;
    }

    .afksp-banner-top,
    .afksp-banner-top {
        animation: fd-fade-in 0.5s ease-out 0.25s both;
    }

    .afksp-slots-block,
    .afksp-slots-block {
        animation: fd-fade-up 0.5s ease-out 0.35s both;
    }

    .afksp-play-item:nth-child(1),
    .afksp-play-item:nth-child(1) {
        animation: fd-scale-in 0.4s ease-out 0s both;
    }

    .afksp-play-item:nth-child(2),
    .afksp-play-item:nth-child(2) {
        animation: fd-scale-in 0.4s ease-out 0.05s both;
    }

    .afksp-play-item:nth-child(3),
    .afksp-play-item:nth-child(3) {
        animation: fd-scale-in 0.4s ease-out 0.1s both;
    }

    .afksp-play-item:nth-child(4),
    .afksp-play-item:nth-child(4) {
        animation: fd-scale-in 0.4s ease-out 0.15s both;
    }

    .afksp-play-item:nth-child(5),
    .afksp-play-item:nth-child(5) {
        animation: fd-scale-in 0.4s ease-out 0.2s both;
    }

    .afksp-play-item:nth-child(6),
    .afksp-play-item:nth-child(6) {
        animation: fd-scale-in 0.4s ease-out 0.25s both;
    }

    .afksp-play-item:nth-child(7),
    .afksp-play-item:nth-child(7) {
        animation: fd-scale-in 0.4s ease-out 0.3s both;
    }

    .afksp-play-item:nth-child(8),
    .afksp-play-item:nth-child(8) {
        animation: fd-scale-in 0.4s ease-out 0.35s both;
    }

    .afksp-play-item:hover,
    .afksp-play-item:hover {
        transform: scale(1.04);
        box-shadow: 0 24px 48px rgba(0,0,0,0.5);
    }

    .afksp-fig-box:hover,
    .afksp-fig-box:hover {
        transform: translateY(-4px);
        border-left: 3px solid var(--afksp-primary);
        box-shadow: 0 6px 18px rgba(0, 0, 0, 0.45);
    }
}

/* ============================================================
   RESPONSIVE – 1320px
   ============================================================ */
@media (max-width: 1320px) {
    .afksp-frame {
        max-width: 100%;
    }

    .afksp-footer-cols {
        grid-template-columns: repeat(2, 1fr);
        gap: 24px;
    }

    .afksp-lobby-grid,
    .afksp-lobby-grid {
        grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    }
}

/* ============================================================
   RESPONSIVE – 1040px
   ============================================================ */
@media (max-width: 1040px) {
    main.afksp-doc-body {
        padding-left: 56px;
    }

    .sidebar {
        width: 56px;
    }

    .header-nav a,
    .header-nav div {
        padding: 8px 10px;
        font-size: 0.82rem;
    }

    .afksp-num-grid,
    .afksp-num-grid {
        grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
    }

    .afksp-top-grad,
    .afksp-banner-top,
    .afksp-top-grad {
        padding: 36px 28px;
    }

    .afksp-bonus-badge-corner {
        position: static;
        margin-top: 20px;
        align-self: flex-start;
    }

    .afksp-top-grad {
        flex-direction: column;
        align-items: flex-start;
    }

    .afksp-sec-grid,
    .afksp-sec-grid {
        grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    }
}

/* ============================================================
   RESPONSIVE – 790px (MOBILE)
   ============================================================ */
@media (max-width: 790px) {
    /* CRITICAL mobile rules */
    .btn-login { display: none; }
    .btn-search { display: none; }
    .header-nav { display: none; }
    .hamburger { display: flex; }

    /* Sidebar hidden on mobile */
    .sidebar {
        display: none;
    }

    /* Main no sidebar padding */
    main.afksp-doc-body {
        padding-left: 0;
    }

    /* Header */
    .afksp-header {
        padding: 0 16px;
        height: 56px;
    }

    /* Frame */
    .afksp-frame {
        padding: 0 16px;
    }

    /* Page title */
    .afksp-head-title,
    .afksp-head-title {
        font-size: 1.6rem;
    }

    /* Banner */
    .afksp-banner-top {
        padding: 0 0 20px;
    }

    .afksp-top-grad,
    .afksp-banner-top,
    .afksp-top-grad {
        padding: 28px 20px;
        border-radius: var(--afksp-radius);
        flex-direction: column;
        min-height: auto;
    }

    .afksp-banner-title {
        font-size: 1.4rem;
    }

    .afksp-bonus-badge-corner {
        position: static;
        margin-top: 16px;
        width: fit-content;
    }

    /* Games grid */
    .afksp-lobby-grid,
    .afksp-lobby-grid {
        grid-template-columns: repeat(3, 1fr);
        gap: 10px;
    }

    /* Stats grid */
    .afksp-num-grid,
    .afksp-num-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 12px;
    }

    /* Footer cols */
    .afksp-footer-cols {
        grid-template-columns: repeat(2, 1fr);
        gap: 20px;
    }

    /* Footer bottom */
    .afksp-footer-bottom,
    .footer-bottom {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
    }

    /* Security grid */
    .afksp-sec-grid,
    .afksp-sec-grid {
        grid-template-columns: 1fr;
    }

    /* Table */
    .afksp-overview-table,
    .afksp-overview-table {
        font-size: 0.82rem;
    }

    .afksp-overview-table th,
    .afksp-overview-table td,
    .afksp-overview-table th,
    .afksp-overview-table td {
        padding: 9px 12px;
    }

    /* Timeline */
    .afksp-roadmap::before,
    .afksp-roadmap::before {
        left: 18px;
    }

    /* Float bar */
    #afksp-float-bar {
        flex-direction: column;
        padding: 12px 16px;
        gap: 10px;
    }

    .afksp-float-acts {
        width: 100%;
        justify-content: space-between;
    }

    .afksp-pin-btn {
        flex: 1;
        text-align: center;
    }

    /* Promo code */
    .afksp-code-feature {
        flex-direction: column;
        align-items: flex-start;
    }

    /* Provider grid */
    .afksp-supplier-grid,
    .afksp-supplier-grid {
        gap: 8px;
    }

    /* Author box */
    .afksp-author-box {
        margin: 20px 16px;
    }

    .afksp-author-inner {
        flex-direction: column;
    }

    /* Wheel & shop grids */
    .afksp-fortune-list,
    .afksp-bonus-shop-grid {
        grid-template-columns: 1fr;
    }

    /* Cashback */
    .afksp-refund-stats {
        grid-template-columns: repeat(2, 1fr);
    }

    /* Restricted */
    .afksp-ban-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    /* Section image */
    .afksp-section-image-wrap {
        padding: 0 16px;
    }

    /* H2 adjustments */
    .afksp-txt-zone h2 {
        font-size: 1.25rem;
    }

    /* Txt zone padding */
    .afksp-txt-zone,
    .afksp-txt-zone {
        padding: 24px 0;
    }
}
/* ── HERO BANNER SIZING (post-patch) ─────────────── */
.afksp-top-grad {
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
}
/* ── BREADCRUMB LIST MARKERS (post-patch) ────────── */
ol.afksp-bc-list { list-style-type: none !important; padding-left: 0 !important; margin: 0 !important; }

/* ── OVERFLOW FIX (post-patch) ───────────────────── */
html { overflow-x: clip !important; }
body { display: block !important; overflow-x: clip !important; width: 100%; }
/* H1 size cap — 20% smaller than default */
[class*="-head-title"], main h1:first-child { font-size: clamp(1.45rem, 3.2vw, 2.1rem) !important; }
/* Kill any grid-area LLM put on structural elements */
.afksp-header, main, .afksp-footer, footer { grid-area: unset !important; }
/* Header: always flex, single row */
.afksp-header { display: flex !important; align-items: center !important; justify-content: space-between !important; height: 80px !important; padding: 0 20px !important; }
/* Toast: hidden by default via opacity (translateX alone not enough) */
#afksp-flash-msg { opacity: 0 !important; }
.afksp-flash-msg-show { opacity: 1 !important; transform: translateX(0) !important; }

/* ── MOBILE GRID FIX (post-patch) ────────────────── */
@media (max-width: 790px) {
    [class*="-lobby-grid"] { grid-template-columns: repeat(2, 1fr) !important; }
    [class*="-num-grid"] { grid-template-columns: repeat(2, 1fr) !important; }
    [class*="-supplier-grid"] { grid-template-columns: repeat(3, 1fr) !important; }
    [class*="-footer-cols"] { grid-template-columns: 1fr 1fr !important; }
    [class*="-frame"] { max-width: 100% !important; padding: 0 15px !important; box-sizing: border-box !important; }
    main, [class*="-doc-body"] { margin: 0 !important; width: 100% !important; max-width: 100% !important; box-sizing: border-box !important; }
    main > div:first-child,
    main > [class*="-frame"]:first-child { padding-top: 80px !important; }
    main { overflow: visible !important; }
    body { overflow-x: clip !important; }
}

/* ── GAMES GRID MOBILE FIX (post-patch) ─────────── */
@media (max-width: 790px) {
    .afksp-lobby-grid, [class*="-lobby-grid"] {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 8px !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }
    .afksp-play-item, [class*="-play-item"] {
        width: 100% !important;
        min-width: 0 !important;
        box-sizing: border-box !important;
    }
    .afksp-slots-block .afksp-frame,
    [class*="-slots-block"] [class*="-frame"] {
        padding: 0 10px !important;
        overflow: hidden !important;
    }
}

/* ── LAYOUT (post-patch, canonical flow-based) ───── */
body { display: block; min-height: 100vh; }
.afksp-header { position: sticky; top: 0; z-index: 1000; width: 100%; }
.sidebar { position: fixed; left: 0; top: 80px; bottom: 0; width: 200px; z-index: 999; overflow-y: auto; }
main { margin-left: 200px; min-width: 0; max-width: 100%; overflow: hidden; }
.afksp-footer { margin-left: 200px; }
@media (max-width: 1040px) {
    .sidebar { width: 56px !important; }
    main { margin-left: 56px !important; }
    .afksp-footer { margin-left: 56px !important; }
}
@media (max-width: 790px) {
    .sidebar { display: none !important; }
    main { margin-left: 0 !important; overflow: visible !important; width: 100% !important; max-width: 100% !important; }
    .afksp-footer { margin-left: 0 !important; }
    [class*="-frame"] { max-width: 100% !important; padding: 0 15px !important; box-sizing: border-box !important; }
    [class*="-lobby-grid"] { grid-template-columns: repeat(2, 1fr) !important; gap: 8px !important; }
    [class*="-num-grid"] { grid-template-columns: repeat(2, 1fr) !important; }
    [class*="-supplier-grid"] { grid-template-columns: repeat(3, 1fr) !important; }
    [class*="-footer-cols"] { grid-template-columns: 1fr 1fr !important; }
}

/* ── COMPLIANCE BLOCKS (post-patch) ─────────────────── */
/* Container styling only — typography (h2 gradient, h3 color, p opacity) is
   inherited from .afksp-txt-zone which is ALSO applied to this section.
   Do not override font-size/color here or it will break visual consistency
   with other content sections. */
.afksp-responsible-gaming, section.responsible-gaming {
    margin: 2rem 0;
    padding: 1.25rem 1.5rem;
    background: rgba(255,255,255,0.02);
    border-left: 3px solid var(--afksp-primary, rgba(255,255,255,0.2));
    border-radius: 6px;
}
.footer-license-info, .license-info {
    font-size: 0.78rem;
    color: var(--afksp-text-muted, rgba(255,255,255,0.6));
    line-height: 1.6;
    padding: 0.5rem 0 1rem 0;
    border-top: 1px solid rgba(255,255,255,0.06);
}
.footer-license-info span, .license-info span {
    display: inline-block;
}
a.dmca-badge {
    display: inline-flex;
    align-items: center;
    line-height: 0;
    opacity: 0.85;
    transition: opacity 0.2s;
}
a.dmca-badge:hover { opacity: 1; }
a.dmca-badge img {
    height: 28px;
    width: auto;
    display: block;
}
@media (max-width: 600px) {
    a.dmca-badge img { height: 24px; }
    .footer-license-info, .license-info { font-size: 0.72rem; }
}


/* ============================================================
   DESIGN REFRESH 2026-07-30 — flat accent system, no gradients
   Layered last so it wins on equal specificity. Everything here
   is a deliberate replacement for a gradient or a neon glow.
   ============================================================ */

/* --- Accent is spent on ACTIONS only. Ink label on ember passes AA
       (6.9:1); the previous white-on-orange did not (2.9:1). ------- */
.btn-register,
.afksp-btn-primary,
.afksp-spin-btn,
.afksp-pin-btn,
.mobile-menu-btn,
.afksp-bonus-badge-corner {
    background: var(--afksp-ember);
    color: var(--afksp-ink);
    border: 1px solid transparent;
}

.btn-register *,
.afksp-btn-primary *,
.afksp-spin-btn *,
.afksp-pin-btn *,
.mobile-menu-btn *,
.afksp-bonus-badge-corner * {
    color: inherit;
}

.btn-register:hover,
.afksp-btn-primary:hover,
.afksp-spin-btn:hover,
.afksp-pin-btn:hover,
.mobile-menu-btn:hover {
    background: #f0913f;
    background: color-mix(in oklab, var(--afksp-ember) 88%, #ffffff);
    opacity: 1;
    box-shadow: 0 8px 22px rgba(0, 0, 0, 0.5);
}

.btn-register:active,
.afksp-btn-primary:active,
.afksp-spin-btn:active,
.afksp-pin-btn:active {
    transform: translateY(0);
    box-shadow: none;
}

/* --- Structural headers are surface + an ember edge, not ember slabs.
       One accent shouting everywhere is what made this read templated. -- */
.afksp-cb-spot,
.afksp-fortune-top {
    background: var(--afksp-bg-card-hover);
    border-left: 3px solid var(--afksp-ember);
}

.afksp-refund-ico,
.afksp-spin-ico {
    color: var(--afksp-ember);
}

/* --- Bonus code: a data chip, so it gets tabular figures and a hairline,
       not a solid orange plate. ------------------------------------- */
.afksp-voucher-tag {
    background: #2a201a;
    background: color-mix(in oklab, var(--afksp-ember) 14%, var(--afksp-bg-card-hover));
    border: 1px solid rgba(224, 129, 58, 0.45);
    border: 1px solid color-mix(in oklab, var(--afksp-ember) 45%, transparent);
}

.afksp-code-glyph {
    color: var(--afksp-ember);
    font-family: var(--afksp-font-body);
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.06em;
}

/* --- Step numbers read as numbers, not as buttons. ----------------- */
.afksp-step-num,
.afksp-step-num {
    background: var(--afksp-bg-card-hover);
    color: var(--afksp-ember);
    border: 1px solid rgba(224, 129, 58, 0.5);
    border: 1px solid color-mix(in oklab, var(--afksp-ember) 50%, transparent);
    box-shadow: none;
    font-variant-numeric: tabular-nums;
}

/* --- One repeated structural mark: a 3px ember bar opens every level
       of heading. Same device at h1/h2/h3 = the reader learns it once. -- */
.afksp-head-title::before {
    content: "";
    display: block;
    width: 56px;
    height: 3px;
    background: var(--afksp-ember);
    border-radius: 2px;
    margin: 0 0 18px;
}

.afksp-txt-zone h2::after {
    height: 3px;
    width: 56px;
    background: var(--afksp-ember);
    box-shadow: none;
}

.afksp-sec-head::before {
    background: var(--afksp-ember);
}

/* --- Progress rail and chrome: elevation, never glow. -------------- */
#afksp-prog-line {
    background: var(--afksp-ember);
    box-shadow: none;
}

.afksp-header {
    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.04);
}

.afksp-footer {
    box-shadow: none;
}

/* --- Typography does the work the gradient used to. ---------------- */
.afksp-txt-zone h2 {
    letter-spacing: -0.015em;
    text-wrap: balance;
}

.afksp-txt-zone h3 {
    letter-spacing: -0.01em;
    text-wrap: balance;
}

.afksp-txt-zone p,
.afksp-opener p {
    text-wrap: pretty;
}

.afksp-overview-table td,
.afksp-fig-val {
    font-variant-numeric: tabular-nums;
}

/* --- Accessibility floor: the site had no visible focus ring. ------ */
:focus-visible {
    outline: 2px solid var(--afksp-ember);
    outline-offset: 3px;
    border-radius: 4px;
}

a:focus-visible,
button:focus-visible {
    text-decoration: none;
}

/* --- Anchor links land below the 80px sticky header. --------------- */
[id] {
    scroll-margin-top: 96px;
}

/* content-visibility was trialled here and REMOVED: the intrinsic-size
   estimate left phantom height below the footer and clipped it on jump-to-end.
   The real weight on this page was the 4.2 MB hero PNG, now an 78 KB AVIF. */

/* --- Mobile menu should not scroll-chain to the page behind it. ---- */
.afksp-mobile-menu,
.mobile-menu {
    overscroll-behavior: contain;
}

/* --- Honour reduced motion for every transition, not just keyframes. */
@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;
    }

    .afksp-play-item:hover,
    .afksp-spin-card:hover {
        transform: none;
    }
}

/* --- Sidebar labels. Only the DE rail ships <span class="sidebar-label">
       plus the .sidebar--wide modifier, and NEITHER had any CSS — so the
       labels rendered as loose block text on top of the 44px icon boxes.
       Turn the wide rail into real icon+label rows; collapse to icon-only
       (label kept for screen readers) once the rail narrows to 56px. ----- */
.sidebar--wide .sidebar-item {
    width: calc(100% - 24px);
    height: auto;
    min-height: 44px;
    justify-content: flex-start;
    gap: 12px;
    padding: 9px 12px;
}

.sidebar--wide .sidebar-item i {
    flex: 0 0 20px;
    text-align: center;
}

.sidebar--wide .sidebar-label {
    font-family: var(--afksp-font-body);
    font-size: 0.82rem;
    font-weight: 500;
    line-height: 1.3;
    letter-spacing: 0.01em;
}

@media (max-width: 1040px) {
    .sidebar--wide .sidebar-item {
        width: 44px;
        height: 44px;
        justify-content: center;
        gap: 0;
        padding: 0;
    }

    .sidebar--wide .sidebar-label {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip-path: inset(50%);
        white-space: nowrap;
    }
}
