/* ============================================================
   sportsbet365 theme — base.css
   Fonts, typography, resets, scrollbar, focus, small utilities.
   ============================================================ */

/* ---- Inter variable font, self-hosted (replaces 4 Google families) ---- */
@font-face {
    font-family: 'Inter';
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url('../../fonts/inter/inter-latin.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: 'Inter';
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url('../../fonts/inter/inter-latin-ext.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

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

body {
    font-family: 'Inter', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
    font-size: 15px;
    line-height: 1.5;
    background-color: var(--sb-bg);
    color: var(--sb-text);
    min-height: 100vh;
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
    font-weight: 800;
    letter-spacing: -.01em;
}

h1, .h1 { font-size: 2rem; }
h2, .h2 { font-size: 1.5rem; }
h3, .h3 { font-size: 1.25rem; }
h4, .h4 { font-size: 1.05rem; }

a {
    text-decoration: none;
    transition: color var(--sb-fast) var(--sb-ease);
}

img {
    max-width: 100%;
}

::selection {
    background: var(--sb-green);
    color: var(--sb-text-on-accent);
}

/* ---- Scrollbar ---- */
* {
    scrollbar-width: thin;
    scrollbar-color: var(--sb-surface-3) transparent;
}
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb {
    background: var(--sb-surface-3);
    border-radius: var(--sb-radius-pill);
}
::-webkit-scrollbar-thumb:hover { background: var(--sb-text-dim); }

/* ---- Focus visibility (keyboard users) ---- */
:focus-visible {
    outline: 2px solid var(--sb-green);
    outline-offset: 2px;
    border-radius: 4px;
}

/* ---- Utilities ---- */

/* money / jackpot numerals never jitter */
.num {
    font-variant-numeric: tabular-nums;
    font-feature-settings: 'tnum';
}

.text-gradient-gold {
    background: var(--sb-grad-text-gold);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
}

.text-muted-2 { color: var(--sb-text-muted) !important; }
.text-dim { color: var(--sb-text-dim) !important; }

.surface   { background: var(--sb-surface); }
.surface-2 { background: var(--sb-surface-2); }

/* horizontal scroller with hidden scrollbar + snap (chip rows, card rows) */
.hscroll {
    display: flex;
    gap: .5rem;
    overflow-x: auto;
    scroll-snap-type: x proximity;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding-bottom: 2px;
}
.hscroll::-webkit-scrollbar { display: none; }
.hscroll > * { scroll-snap-align: start; flex-shrink: 0; }

/* screen-reader only */
.visually-hidden-sb {
    position: absolute !important;
    width: 1px; height: 1px;
    margin: -1px; padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }
}
