:root {
    --bg: #ffb5f0;
    --text: #370059;
    --heading: #52016d;
    --link: #770082;
    --hot: #ff00ee;
    --card: #ffffff;
    --border: #f0b8e6;
}

* { box-sizing: border-box; }

body {
    margin: 0;
    background: var(--bg);
    color: var(--text);
    font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, Arial, sans-serif;
    line-height: 1.6;
    font-size: 15px;
}

a { color: var(--link); text-decoration: none; }
a:hover { text-decoration: underline; }
img { max-width: 100%; height: auto; }
ul { margin: 0; padding: 0; list-style: none; }
h1, h2, h3, h4 { color: var(--heading); line-height: 1.3; margin: 0 0 14px; }
p { margin: 0 0 14px; }

.container { max-width: 1200px; margin: 0 auto; padding: 0 20px; }
.row { display: flex; flex-wrap: wrap; }

.page_wrap { min-height: 100vh; }

/* ---- Шапка ---- */
.page_header { background: rgba(255,255,255,.5); backdrop-filter: blur(6px); position: relative; z-index: 50; }
.header_desktop .container { display: flex; align-items: center; gap: 24px; padding: 14px 20px; }
.logo img { height: 44px; width: auto; }

ul.menu#menu_header { display: flex; flex-wrap: wrap; align-items: center; gap: 4px; flex: 1; overflow: visible; }
#menu_header > li { position: relative; }
#menu_header > li > a {
    display: block;
    padding: 10px 14px;
    color: #39128e;
    font-weight: 700;
    font-size: 14px;
    white-space: nowrap;
}
#menu_header > li:hover > a { color: var(--hot); text-decoration: none; }
#menu_header .sub-menu {
    display: none;
    position: absolute;
    top: 100%; left: 0;
    background: #000;
    padding: 8px 10px;
    border-radius: 8px;
    min-width: 220px;
    flex-direction: column;
    gap: 4px;
    z-index: 60;
}
#menu_header .menu-item-has-children:hover .sub-menu { display: flex; }
#menu_header .sub-menu li a { display: block; padding: 8px 10px; color: #fff !important; font-size: 13px; border-radius: 5px; }
#menu_header .sub-menu li:hover a { background: var(--hot); color: #fff !important; }

.menu__btn-open { display: none; width: 34px; height: 34px; cursor: pointer; }
.menu__btn-open img { width: 100%; height: 100%; }
.header_mobile { display: none; }

/* ---- Кнопки ---- */
.button {
    display: inline-block;
    padding: 12px 26px;
    border-radius: 10px;
    font-weight: 700;
    font-size: 14px;
    text-align: center;
    cursor: pointer;
    text-decoration: none !important;
}
.button.primary {
    background: linear-gradient(180deg, #02ffdd 0%, #ee91ff 100%);
    color: #2b0037 !important;
}
.button.secondary {
    background: #fff;
    color: var(--text) !important;
    border: 2px solid var(--heading);
}
.button:hover { opacity: .88; }

/* ---- Баннер ---- */
.page__banner-title, .page__banner-text { color: #fff !important; }
.custom-banner { position: relative; border-radius: 14px; overflow: hidden; margin: 20px 0; }
.custom-banner__img { width: 100%; display: block; }
.custom-banner__content {
    position: absolute; left: 0; right: 0; bottom: 0;
    padding: 20px;
    display: flex; gap: 12px; flex-wrap: wrap; justify-content: center;
    background: linear-gradient(to top, rgba(0,0,0,.55), transparent);
}

/* ---- Контент статьи ---- */
.games_page { padding: 30px 0 40px; }
article.content {
    background: var(--card);
    border-radius: 14px;
    padding: 28px 32px;
    max-width: 900px;
    margin: 0 auto;
}
article.content h1 { font-size: 26px; }
article.content h2 { font-size: 21px; margin-top: 26px; }
article.content ul, article.content ol { padding-left: 22px; margin: 0 0 14px; }
article.content li { margin-bottom: 6px; }

/* ---- Оглавление ---- */
.toc__items { border: 2px solid var(--text); border-radius: 10px; padding: 14px 18px; margin: 20px 0; }
.toc__link { display: block; padding: 6px 0; color: var(--heading); }
.toc__link:hover { color: #fff; background: var(--hot); border-radius: 6px; padding-left: 8px; text-decoration: none; }
.toc__link:before { content: ""; display: inline-block; width: 14px; height: 14px; margin-right: 8px; background-size: contain; vertical-align: middle; }

/* ---- Отзывы ---- */
.comments__rows-single {
    background: var(--card);
    border-radius: 10px;
    padding: 16px 18px;
    margin-bottom: 14px;
}
.comment__single-title { font-weight: 700; color: var(--heading); margin-bottom: 4px; }
.comment__single-rating-stars { color: #ffb300; margin-bottom: 6px; }
.comment__single-text { color: var(--text); }

/* ---- Футер ---- */
.page_footer {
    margin-top: 40px;
    padding: 24px 0;
    background: rgba(0,0,0,.08);
}
.page_footer .footer_menu { display: flex; justify-content: center; gap: 20px; flex-wrap: wrap; }
.page_footer .footer_menu a { color: var(--text); font-weight: 600; }
.page_footer .providers { text-align: center; margin: 16px 0; }
.page_footer .providers img { height: 28px; width: auto; margin: 0 auto; }
.page_footer .description p { text-align: center; color: var(--text); font-size: 13px; margin: 0; }

.button_go_top {
    position: fixed; right: 20px; bottom: 20px; z-index: 80;
    width: 46px; height: 46px; border-radius: 50%;
    background: var(--hot); color: #fff; border: none; cursor: pointer;
    display: none; align-items: center; justify-content: center; font-size: 18px;
}
.button_go_top.active { display: flex; }

/* ---- Адаптив ---- */
@media (max-width: 900px) {
    .header_desktop { display: none; }
    .header_mobile { display: block; }
    .header_mobile .container { padding: 14px 20px; }
    .header_logo { display: flex; align-items: center; justify-content: space-between; }
    .menu__btn-open { display: block; }
    .mobile__menu { display: none; position: fixed; inset: 0; z-index: 200; }
    .mobile__menu.open { display: block; }
    .mobile__menu-backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.5); }
    .fixed__menu-all {
        position: absolute; top: 0; right: 0; bottom: 0; width: 280px; max-width: 85vw;
        background: #1a0022; padding: 20px; overflow-y: auto;
    }
    .menu__btn-close { width: 28px; height: 28px; margin-bottom: 16px; cursor: pointer; }
    #header_menu-mobile li a { display: block; padding: 10px 0; color: #fff; font-weight: 600; border-bottom: 1px solid rgba(255,255,255,.15); }
    #header_menu-mobile .sub-menu { padding-left: 12px; }
    #header_menu-mobile .sub-menu li a { color: #e6b8ff; font-size: 13px; border-bottom: none; padding: 6px 0; }
    article.content { padding: 20px; }
    .page__banner-wrapper { flex-direction: column; }
}
