:root{
    --bg:#0c0d10; --card:#14161b; --muted:#aab0bd; --text:#e9ecf2; --accent:#e2b857; --accent-2:#27d4a5; --danger:#ff5c5c;
    --shadow:0 20px 50px rgba(0,0,0,.35);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font:16px/1.6 system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,"Helvetica Neue",Arial}
a{color:var(--accent)} a:hover{opacity:.9}
.container{max-width:1120px;margin:0 auto;padding:0 20px}
header{position:sticky;top:0;background:rgba(12,13,16,.85);backdrop-filter:saturate(140%) blur(10px);z-index:50;border-bottom:1px solid #1f2230}
.nav{display:flex;align-items:center;justify-content:space-between;height:64px}
.brand{display:flex;gap:10px;align-items:center;font-weight:700;letter-spacing:.3px}
.brand .mark{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#1b1d26,#0e0f14);border:1px solid #242838;box-shadow:var(--shadow)}
.brand .mark svg{width:20px;height:20px;fill:var(--accent)}
nav ul{display:flex;gap:18px;list-style:none;margin:0;padding:0}
nav a{color:var(--text);text-decoration:none;opacity:.85}
nav a:hover{opacity:1}
.btn{display:inline-flex;align-items:center;gap:.5rem;background:var(--accent);color:#111;padding:12px 18px;border-radius:12px;text-decoration:none;font-weight:700;border:0;cursor:pointer}
.btn.ghost{background:transparent;color:var(--accent);border:1px solid #2a2e42}

.hero{padding:56px 0 28px;border-bottom:1px solid #1f2230;background:radial-gradient(1200px 600px at 80% -10%,rgba(226,184,87,.12),transparent),radial-gradient(900px 400px at -10% 0,rgba(39,212,165,.08),transparent)}
.hero h1{font-size:clamp(32px,3.5vw,48px);line-height:1.15;margin:.4em 0 .2em}
.hero p.lead{max-width:750px;opacity:.9}
.cta-group{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px}
.badges{display:flex;gap:12px;flex-wrap:wrap;margin-top:16px}
.badge{padding:6px 10px;border:1px solid #2a2e42;border-radius:999px;font-size:12px;opacity:.9}

.section{padding:40px 0;border-bottom:1px solid #1f2230}
.section h2{font-size:clamp(22px,2.5vw,32px);margin:0 0 16px}

.grid{display:grid;gap:16px}
@media(min-width:720px){.grid.cols-3{grid-template-columns:repeat(3,1fr)}.grid.cols-2{grid-template-columns:repeat(2,1fr)}}

.card{background:var(--card);border:1px solid #242838;border-radius:18px;box-shadow:var(--shadow);padding:18px}
/* NEW casino card layout: big centered logo, title, desc, bonus, CTA */
.card.casino{padding:26px 20px;text-align:center}
.casino-hero{display:flex;justify-content:center;align-items:center;margin-top:4px;margin-bottom:14px}
.casino-hero-logo{width:min(70vw,220px);height:auto;max-height:120px;object-fit:contain;filter: drop-shadow(0 6px 18px rgba(0,0,0,.35));}
@media(min-width:720px){.casino-hero-logo{width:240px;max-height:140px}}
.casino-title{font-size:22px;margin:8px 0 8px}
.casino-desc{color:var(--muted);margin:0 0 10px}
.bonus-line{margin:10px 0 16px;font-weight:700}
.btn.full.xl{padding:16px 20px;font-size:16px;border-radius:14px}
/* compact list look */
.why.compact{margin:6px auto 0;max-width:540px}
.why.compact li{background:#12151d}
/* hide old header row styles in casino cards */
.card.casino .casino-head,.card.casino .casino-id{display:none}
/* make grid breathe on mobile */
@media(max-width:719px){.grid.cols-3{grid-template-columns:1fr}}
@media(min-width:720px) and (max-width:1023px){.grid.cols-3{grid-template-columns:repeat(2,1fr)}}
.card h3{margin:.2em 0 .6em;font-size:18px}
.casino-meta{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;color:var(--muted);font-size:14px}
/* Casino card header with logo */
.casino-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px}
.casino-id{display:flex;align-items:center;gap:10px;min-width:0}
.casino-logo{width:72px;height:72px;border-radius:16px;background:#0f1118;border:1px solid #2a2e42;display:grid;place-items:center;overflow:hidden;flex:0 0 auto}
.casino-logo img{max-width:95%;max-height:95%;object-fit:contain;display:block}
@media(min-width:720px){.casino-logo{width:92px;height:92px}}
.casino-logo img{max-width:90%;max-height:80%;object-fit:contain;display:block}
@media(min-width:720px){.casino-logo{width:56px;height:56px}}
.card h3{margin:0;font-size:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.pill{padding:6px 10px;border-radius:999px;background:#1a1d29;border:1px solid #2a2e42;font-size:12px}
.btn.full{width:100%;justify-content:center}

.slots-list .item{display:flex;gap:14px;align-items:flex-start;padding:14px;border:1px solid #242838;border-radius:14px}
.slots-list img{width:72px;height:72px;border-radius:12px;object-fit:cover;border:1px solid #2a2e42}
.slots-list h4{margin:.1em 0 .2em}
.slots-list p{margin:0;color:var(--muted)}

.why ul{display:grid;gap:10px}
.why li{list-style:none;padding:12px 12px 12px 14px;border:1px solid #242838;border-radius:14px;background:#141720}

.seo{color:#cfd4de;opacity:.95}

.faq details{background:#12151d;border:1px solid #242838;border-radius:14px;padding:12px}
.faq details+details{margin-top:10px}
.faq summary{cursor:pointer;font-weight:600}

footer{padding:28px 0;color:#9aa1af;font-size:14px}
.footgrid{display:grid;gap:12px}
@media(min-width:720px){.footgrid{grid-template-columns:2fr 1fr}}
.legal{font-size:12px;color:#8990a0}
/* Hero banner as real HTML image (not CSS background) */
.hero{padding:0;border-bottom:1px solid #1f2230;background:none}
.hero-visual{position:relative;isolation:isolate}
.hero-visual picture,.hero-visual img{display:block;width:100%;height:auto;object-fit:cover;max-height:520px}
.hero-content{position:absolute;inset:0;display:flex;align-items:center}
.hero-content .container{padding-top:24px;padding-bottom:24px}
@media(max-width:860px){.hero-content{position:static;display:block}}
.hero-overlay-left{max-width:760px}
.hero-overlay-left h1{font-size:clamp(28px,3.5vw,48px);line-height:1.15;margin:.4em 0 .2em}
.hero-overlay-left p.lead{max-width:720px;opacity:.9}
.hero-spacer{height:0}
/* Mafia Slots & Live Games cards */
.slot-card,.live-card{background:var(--card);border:1px solid #242838;border-radius:18px;box-shadow:var(--shadow);padding:14px;display:flex;gap:14px}
.slot-card img,.live-card img{width:88px;height:88px;border-radius:12px;border:1px solid #2a2e42;object-fit:cover;flex:0 0 auto}
.slot-card h4,.live-card h4{margin:.1em 0 .2em}
.slot-card p,.live-card p{margin:0;color:var(--muted)}
.game-tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.game-tags .pill{background:#151927}
@media(min-width:720px){.slots-grid.cols-2{grid-template-columns:repeat(2,1fr)}.slots-grid.cols-3{grid-template-columns:repeat(3,1fr)}}
/* === TABLE STYLES (FreespinMafia) === */
table {
    width: 100%;
    border-collapse: collapse;
    margin: 1.5em 0;
    background: var(--card);
    border: 1px solid #2a2e42;
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 10px 30px rgba(0, 0, 0, .3);
}

thead {
    background: rgba(255, 255, 255, .05);
}

th, td {
    padding: 12px 16px;
    text-align: left;
    border-bottom: 1px solid #2a2e42;
}

th {
    font-weight: 700;
    text-transform: uppercase;
    font-size: 13px;
    color: var(--accent);
    letter-spacing: 0.5px;
}

td {
    color: var(--text);
    font-size: 15px;
    line-height: 1.5;
}

tr:nth-child(even) td {
    background: rgba(255, 255, 255, .02);
}

tr:hover td {
    background: rgba(226, 184, 87, .08);
    transition: background .25s ease;
}

@media (max-width: 720px) {
    table, thead, tbody, th, td, tr {
        display: block;
        width: 100%;
    }

    thead {
        display: none;
    }

    tr {
        margin-bottom: 1em;
        border: 1px solid #2a2e42;
        border-radius: 12px;
        background: var(--card);
        padding: 10px;
    }

    td {
        display: flex;
        justify-content: space-between;
        font-size: 14px;
        padding: 8px 0;
    }

    td::before {
        content: attr(data-label);
        font-weight: 600;
        color: var(--accent);
    }
}

/* ====== NAV: desktop vs mobile ====== */
.nav-desktop { display: none; }
.nav-cta { display: none; }
.burger {
    appearance: none; border: 0; background: transparent; cursor: pointer;
    width: 42px; height: 42px; border-radius: 10px; display: grid; place-items: center;
}
.burger:hover { background: #151822; }
.burger-box { display: inline-grid; gap: 5px; }
.burger-line {
    width: 20px; height: 2px; background: var(--text); border-radius: 2px; transition: transform .25s ease, opacity .2s ease;
}
/* X state */
.burger.is-active .burger-line:nth-child(1){ transform: translateY(7px) rotate(45deg); }
.burger.is-active .burger-line:nth-child(2){ opacity: 0; }
.burger.is-active .burger-line:nth-child(3){ transform: translateY(-7px) rotate(-45deg); }

/* Desktop: показать обычное меню */
@media (min-width: 980px) {
    .burger { display:none; }
    .nav-desktop { display:block; }
    .nav-cta { display:inline-flex; }
    header .nav { gap: 14px; }
}

/* ====== MOBILE MENU (off-canvas right) ====== */
.mobile-menu {
    position: fixed; inset: 0; z-index: 70;
    display: grid; grid-template-columns: 1fr max(280px, 70vw); /* backdrop + panel */
    pointer-events: none; /* пока скрыто */
}
.mobile-menu[hidden] { display: none; }

.mobile-menu__backdrop {
    grid-column: 1 / 2; background: rgba(0,0,0,.55); border: 0; margin: 0; padding: 0; width: 100%; height: 100%;
    cursor: pointer; opacity: 0; transition: opacity .25s ease;
}

.mobile-menu__panel {
    grid-column: 2 / 3;
    background: var(--card); border-left: 1px solid #242838; box-shadow: var(--shadow);
    height: 100%; transform: translateX(100%); transition: transform .25s ease;
    display: flex; flex-direction: column; gap: 16px; padding: 16px;
}
.mobile-menu__head { display: flex; justify-content: space-between; align-items: center; }
.brand.mini { display:flex; gap:8px; align-items:center; font-weight:700; }
.brand.mini span { font-size: 18px; }

.mobile-menu__nav { display: grid; gap: 6px; margin-top: 6px; }
.mobile-menu__nav a {
    display: block; padding: 12px 10px; border-radius: 12px; text-decoration: none; color: var(--text);
    border: 1px solid #242838; background: #141720;
}
.mobile-menu__nav a:hover { background: #171b27; }

.mobile-menu.open { pointer-events: auto; }
.mobile-menu.open .mobile-menu__panel { transform: translateX(0); }
.mobile-menu.open .mobile-menu__backdrop { opacity: 1; }

/* Запрет скролла под меню */
body.menu-open { overflow: hidden; }

/* Header tweaks (чтобы кнопки красиво сидели) */
header .nav { gap: 8px; }

.logo {
    width: 140px;
    height: auto;
    display: block;
    object-fit: contain;
    filter: drop-shadow(0 2px 8px rgba(0,0,0,0.5));
}
@media (max-width: 720px) {
    .logo {
        width: 110px;
    }
}
