/* Manrope variable (SIL OFL 1.1, fonts/manrope/LICENSE), from @fontsource-variable/manrope */
@font-face {
    font-family: 'Manrope';
    font-style: normal;
    font-weight: 200 800;
    font-display: swap;
    src: url('../fonts/manrope/manrope-cyrillic-wght-normal.woff2') format('woff2');
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
    font-family: 'Manrope';
    font-style: normal;
    font-weight: 200 800;
    font-display: swap;
    src: url('../fonts/manrope/manrope-latin-ext-wght-normal.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;
}
@font-face {
    font-family: 'Manrope';
    font-style: normal;
    font-weight: 200 800;
    font-display: swap;
    src: url('../fonts/manrope/manrope-latin-wght-normal.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;
}
/* ZZ_Price still prints <i class="rouble">c</i>: this font maps "c" to the ruble sign */
@font-face {
    font-family: 'rouble';
    font-style: normal;
    font-weight: normal;
    font-display: block;
    src: url('../fonts/rouble-webfont.woff') format('woff');
}

:root {
    --bg: #f3f5f8;
    --card: #fff;
    --text: #1b2230;
    --muted: #5b6472;
    --line: #e3e7ee;
    --chip: #eef2f7;
    --primary: #1f73c2;
    --primary-hover: #1a64aa;
    --brand: #3490d7;
    --link: #1a6ab5;
    --soft: #e7f0fa;
    --accent: #d4163f;
    --good: #1a7f45;
    --warn: #8a4b00;
    --warn-bg: #fff4e0;
    --preorder: #ffb020;
    --foot: #141a25;
    --foot-text: #c9d1dc;
    --foot-muted: #9aa4b2;
    --foot-line: #2a3344;
    --r-s: 8px;
    --r-m: 12px;
    --r-l: 16px;
    --r-xl: 20px;
    --shadow: 0 1px 2px rgba(20, 26, 37, .06), 0 4px 16px rgba(20, 26, 37, .06);
    --font: 'Manrope', system-ui, -apple-system, 'Segoe UI', sans-serif;
    --wrap: 1200px;
    --gutter: 16px;
    --bottom-nav-h: 57px;
}
@media (min-width: 900px) {
    :root {
        --gutter: 40px;
    }
}

/* ---------- Base ---------- */
*,
*::before,
*::after {
    box-sizing: border-box;
}
html {
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
}
html:lang(zh) {
    --font: 'Manrope', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', 'Noto Sans SC', system-ui, sans-serif;
}
body {
    margin: 0;
    padding-bottom: calc(var(--bottom-nav-h) + env(safe-area-inset-bottom, 0px));
    background: var(--bg);
    color: var(--text);
    font-family: var(--font);
    font-size: 15px;
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
}
@media (min-width: 900px) {
    body {
        padding-bottom: 0;
        font-size: 14px;
    }
}
img {
    max-width: 100%;
    height: auto;
}
img,
svg {
    vertical-align: middle;
}
a {
    color: var(--link);
    text-decoration: none;
}
a:hover {
    color: var(--primary-hover);
}
h1, h2, h3, h4, h5, h6 {
    margin: 0 0 .5em;
    font-weight: 800;
    line-height: 1.25;
}
h1 { font-size: 24px; }
h2 { font-size: 20px; }
h3 { font-size: 17px; }
@media (min-width: 900px) {
    h1 { font-size: 30px; }
    h2 { font-size: 22px; }
    h3 { font-size: 18px; }
}
button,
input,
select,
textarea {
    font-family: inherit;
    color: inherit;
}
input,
select,
textarea {
    font-size: 16px;
}
@media (min-width: 900px) {
    input,
    select,
    textarea {
        font-size: 14px;
    }
}
button {
    cursor: pointer;
}
:focus-visible {
    outline: 2px solid var(--primary);
    outline-offset: 2px;
}
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
}
.i {
    flex: none;
    width: 20px;
    height: 20px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.rouble {
    font-family: 'rouble';
    font-style: normal;
    font-weight: normal;
}
.wrap {
    width: 100%;
    max-width: var(--wrap);
    margin: 0 auto;
    padding: 0 var(--gutter);
}
/* Kept for main2.min.js (.backgrounds .<color>), not part of the new look */
.backgrounds {
    display: none;
}
.site-main {
    padding-top: 12px;
    padding-bottom: 24px;
}
@media (min-width: 900px) {
    .site-main {
        padding-top: 24px;
    }
}

/* ---------- Buttons ---------- */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 44px;
    padding: 0 18px;
    border: 1px solid transparent;
    border-radius: var(--r-m);
    background: transparent;
    color: var(--text);
    font-size: 15px;
    font-weight: 800;
    line-height: 1.2;
    text-align: center;
    text-decoration: none;
}
.btn:hover {
    text-decoration: none;
}
.btn--primary,
.btn--blue {
    background: var(--primary);
    color: #fff;
}
.btn--primary:hover,
.btn--blue:hover {
    background: var(--primary-hover);
    color: #fff;
}
.btn--secondary {
    border-color: var(--line);
    color: var(--text);
}
.btn--secondary:hover {
    border-color: var(--muted);
    color: var(--text);
}
.btn--ghost,
.btn--no-line {
    color: var(--link);
}
.btn--ghost:hover,
.btn--no-line:hover {
    background: var(--soft);
    color: var(--link);
}
.btn--outline {
    border: 2px solid var(--primary);
    border-radius: 14px;
    color: var(--link);
}
.btn--outline:hover {
    background: var(--soft);
    color: var(--link);
}
.btn--lg {
    min-height: 56px;
    padding: 0 28px;
    font-size: 16px;
}
.btn--block {
    width: 100%;
}

/* ---------- Header ---------- */
.fixed-menu {
    position: relative;
    z-index: 50;
    background: var(--card);
    border-bottom: 1px solid var(--line);
}
@media (min-width: 900px) {
    .fixed-menu {
        position: -webkit-sticky;
        position: sticky;
        top: 0;
    }
}
.fixed-menu .simple {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 8px;
    padding-top: 8px;
    padding-bottom: 12px;
}
.fixed-menu .logo {
    display: flex;
    flex: 1 1 auto;
    align-items: center;
    gap: 8px;
    min-width: 0;
    min-height: 44px;
    color: var(--text);
    text-decoration: none;
}
.fixed-menu .logo .pic {
    display: flex;
    flex: none;
    width: 30px;
    height: 30px;
    transition: transform .7s ease-out;
}
.fixed-menu .logo .pic svg {
    display: block;
    width: 100%;
    height: 100%;
}
/* the mascot spins on hover, as on the old site (.hover is toggled by main2.min.js) */
.fixed-menu .logo:hover .pic,
.fixed-menu .logo .pic.hover {
    transform: rotate(359deg);
}
.fixed-menu .logo .text {
    display: flex;
    flex-direction: column;
    min-width: 0;
    font-size: 17px;
    font-weight: 800;
    letter-spacing: .5px;
    line-height: 1.15;
    white-space: nowrap;
}
.fixed-menu .logo small {
    display: none;
    color: var(--muted);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.burger-btn,
.register-btn,
.header-user-profile__btn,
.purchase-btn,
.basket-btn {
    position: relative;
    display: inline-flex;
    flex: none;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-width: 44px;
    min-height: 44px;
    padding: 0 10px;
    border: 0;
    border-radius: var(--r-m);
    background: transparent;
    color: var(--text);
    font-size: 14px;
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none;
    white-space: nowrap;
}
.burger-btn:hover,
.register-btn:hover,
.header-user-profile__btn:hover,
.purchase-btn:hover {
    background: var(--chip);
    color: var(--text);
}
.burger-btn {
    order: -1;
    margin-left: -10px;
}
.site-header__actions {
    display: flex;
    flex: none;
    align-items: center;
    gap: 8px;
}
.site-header__actions .register-btn,
.site-header__actions .header-user,
.site-header__actions .purchase-btn,
.site-header__actions .lang {
    display: none;
}

/* Language switcher (views/layouts/_lang.php): <details> in the header, chips in the drawer */
.lang {
    position: relative;
}
.lang__btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-width: 44px;
    min-height: 44px;
    padding: 0 10px;
    border-radius: var(--r-m);
    color: var(--text);
    font-size: 14px;
    font-weight: 700;
    line-height: 1.2;
    white-space: nowrap;
    cursor: pointer;
    list-style: none;
}
.lang__btn::-webkit-details-marker {
    display: none;
}
.lang__btn:hover,
.lang[open] .lang__btn {
    background: var(--chip);
}
.lang__btn .lang__name {
    display: none;
}
.lang__menu {
    position: absolute;
    z-index: 60;
    top: calc(100% + 8px);
    right: 0;
    min-width: 260px;
    padding: 8px;
    border: 1px solid var(--line);
    border-radius: var(--r-m);
    background: var(--card);
    box-shadow: var(--shadow);
    white-space: normal;
}
.lang__menu .lang__item {
    display: flex;
    align-items: center;
    gap: 6px;
    width: 100%;
    min-height: 44px;
    padding: 0 10px;
    border: 0;
    border-radius: var(--r-s);
    background: transparent;
    color: var(--text);
    font: inherit;
    font-weight: 700;
    text-align: left;
    cursor: pointer;
}
.lang__menu .lang__item:hover {
    background: var(--soft);
    color: var(--link);
}
.lang__menu .lang__item.active {
    background: var(--soft);
    color: var(--link);
    cursor: default;
}
.lang__item small {
    color: var(--muted);
    font-size: 12px;
    font-weight: 600;
}
.lang-drawer .lang__form {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 6px 16px 8px;
}
.lang-drawer .lang__item {
    min-height: 44px;
    padding: 0 14px;
    border: 1px solid var(--line);
    border-radius: 22px;
    background: var(--card);
    color: var(--text);
    font: inherit;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
}
.lang-drawer .lang__item:hover {
    border-color: var(--primary);
    color: var(--link);
}
.lang-drawer .lang__item.active {
    border-color: var(--primary);
    background: var(--soft);
    color: var(--link);
    cursor: default;
}

/* Cart button: main2.min.js writes the count into every `.basket-btn span` */
.basket-btn {
    background: var(--primary);
    color: #fff;
}
.basket-btn:hover,
.basket-btn.active {
    background: var(--primary-hover);
    color: #fff;
}
.basket-btn.disabled {
    cursor: default;
}
.basket-btn__label {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}
.basket-btn span {
    position: absolute;
    top: -5px;
    right: -5px;
    min-width: 20px;
    padding: 0 5px;
    border: 2px solid var(--card);
    border-radius: 10px;
    background: var(--accent);
    color: #fff;
    font-size: 11px;
    font-weight: 800;
    line-height: 16px;
    text-align: center;
}
.basket-btn.disabled span {
    display: none;
}

/* Search: one form for every width (main2.min.js binds `.search-panel input`) */
.fixed-menu .search-panel {
    /* main2.min.js hides .search-panel with inline display:none on every document click */
    display: flex !important;
    position: relative;
    order: 5;
    flex: 1 1 100%;
    align-items: center;
    min-width: 0;
    min-height: 44px;
    margin: 0;
    padding: 0 4px;
    border-radius: var(--r-m);
    background: var(--chip);
    color: var(--muted);
}
.fixed-menu .search-panel:focus-within {
    box-shadow: inset 0 0 0 2px var(--primary);
}
.fixed-menu .search-panel input {
    flex: 1 1 0;
    min-width: 0;
    padding: 10px 4px;
    border: 0;
    background: transparent;
    color: var(--text);
    outline: none;
}
.fixed-menu .search-panel input::placeholder {
    color: var(--muted);
    opacity: 1;
}
/* the magnifier is the form's submit button; no .search class: main2.min.js cancels clicks on .fixed-menu .simple .search */
.fixed-menu .search-panel .search-panel__submit {
    padding: 0;
    border: 0;
    background: none;
    font: inherit;
    color: inherit;
    cursor: pointer;
}
.fixed-menu .search-panel .search-panel__submit,
.fixed-menu .search-panel .gear {
    display: inline-flex;
    flex: none;
    align-items: center;
    justify-content: center;
    width: 44px;
    min-height: 44px;
    border-radius: var(--r-s);
    color: var(--muted);
}
.fixed-menu .search-panel .search-panel__submit:hover,
.fixed-menu .search-panel .gear:hover {
    color: var(--link);
}
.fixed-menu .search-panel .search-panel__submit .i,
.fixed-menu .search-panel .gear .i {
    width: 18px;
    height: 18px;
}

/* Search suggestions, built by main2.min.js: a#sugN > span(price), a.show-more */
.game-list {
    display: none;
    position: absolute;
    z-index: 60;
    top: calc(100% + 6px);
    left: 0;
    right: 0;
    max-height: 60vh;
    overflow-y: auto;
    padding: 6px;
    border: 1px solid var(--line);
    border-radius: var(--r-m);
    background: var(--card);
    box-shadow: var(--shadow);
}
.game-list a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-height: 44px;
    padding: 8px 10px;
    border-radius: var(--r-s);
    color: var(--text);
    font-weight: 600;
    line-height: 1.3;
}
.game-list a span {
    flex: none;
    font-weight: 800;
    white-space: nowrap;
}
.game-list a:hover,
.game-list a.selected {
    background: var(--soft);
    color: var(--link);
}
.game-list a.show-more {
    justify-content: center;
    color: var(--link);
    font-weight: 700;
}

/* Profile dropdown (main2.min.js toggles .header-user-profile-popup) */
.header-user,
.header-user-profile {
    position: relative;
}
.header-user-profile__login {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}
.header-user-profile__btn > i {
    position: absolute;
    top: 2px;
    left: 22px;
    min-width: 18px;
    padding: 0 5px;
    border-radius: 9px;
    background: var(--accent);
    color: #fff;
    font-size: 11px;
    font-style: normal;
    font-weight: 800;
    line-height: 18px;
    text-align: center;
}
.header-user-profile-popup {
    display: none;
    position: absolute;
    z-index: 60;
    top: calc(100% + 8px);
    right: 0;
    min-width: 260px;
    padding: 8px;
    border: 1px solid var(--line);
    border-radius: var(--r-m);
    background: var(--card);
    box-shadow: var(--shadow);
    white-space: normal;
}
.header-user-info {
    margin: 0 0 6px;
    padding: 6px 10px 10px;
    border-bottom: 1px solid var(--line);
    font-size: 13px;
    color: var(--muted);
}
.header-user-info__login {
    display: block;
    overflow: hidden;
    color: var(--text);
    font-size: 15px;
    font-weight: 800;
    text-overflow: ellipsis;
}
.header-user-level,
.header-user-medal,
.header-user-cup {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    margin-top: 4px;
}
.header-user-level b {
    color: var(--text);
}
.header-user-vip b {
    color: var(--warn);
}
.header-user-profile-popup a {
    display: flex;
    align-items: center;
    min-height: 44px;
    padding: 0 10px;
    border-radius: var(--r-s);
    color: var(--text);
    font-weight: 700;
}
.header-user-profile-popup a:hover {
    background: var(--soft);
    color: var(--link);
}
.header-user-profile-popup .header-user-profile-exit,
.burger-menu .drawer__section .drawer__auth,
.account__link.account__link--exit {
    color: var(--accent);
}
.header-user-profile-popup .header-user-profile-exit:hover,
.burger-menu .drawer__section .drawer__auth:hover,
.account__link.account__link--exit:hover {
    background: #fdecef;
    color: var(--accent);
}

/* Cart dropdown; items are built by main2.min.js */
.basket-menu {
    display: none;
    position: absolute;
    z-index: 60;
    top: calc(100% - 4px);
    left: 8px;
    right: 8px;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: var(--r-l);
    background: var(--card);
    box-shadow: var(--shadow);
}
.basket-menu.active {
    display: block;
}
.basket-menu .main_spinner {
    display: none;
    justify-content: center;
    padding: 16px;
}
.basket-menu.main_loader .main_spinner {
    display: flex;
}
.basket-menu.main_loader .nano {
    opacity: .4;
}
.basket-menu .nano {
    position: relative;
}
/* Native scrolling instead of nanoScroller's absolute layout (it would need a fixed height) */
.basket-menu .nano-content {
    max-height: min(55vh, 360px);
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 4px 8px;
}
.basket-menu .nano-pane {
    display: none;
}
.basket-menu .catalog-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 4px 8px 8px;
    border-bottom: 1px solid var(--line);
}
.basket-menu .catalog-item__name {
    flex: 1 1 auto;
    min-width: 0;
    font-weight: 700;
    line-height: 1.3;
}
.basket-menu .catalog-item__name a {
    color: var(--text);
}
.basket-menu .catalog-item__name a:hover {
    color: var(--link);
}
.basket-menu .catalog-item__price {
    flex: none;
    font-weight: 800;
    white-space: nowrap;
}
.catalog-item__delete--cart {
    display: flex;
    flex: none;
    border-radius: var(--r-s);
    cursor: pointer;
}
.catalog-item__delete--cart:hover {
    background: var(--chip);
}
/* main2.min.js listens on the svg itself, so the svg is the whole hit area */
.catalog-item__delete--cart svg {
    width: 36px;
    height: 36px;
    padding: 12px;
}
.basket-menu--footer {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 10px 12px;
    padding: 12px 16px 16px;
}
.basket-menu--total {
    font-weight: 700;
}
.basket-menu--total span {
    font-weight: 800;
    white-space: nowrap;
}
.basket-menu--btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 0 18px;
    border-radius: var(--r-m);
    background: var(--primary);
    color: #fff;
    font-weight: 800;
}
.basket-menu--btn:hover {
    background: var(--primary-hover);
    color: #fff;
}
@media (min-width: 600px) {
    .basket-menu {
        left: auto;
        right: var(--gutter);
        width: 380px;
    }
    .fixed-menu .logo small {
        display: block;
    }
}

@media (min-width: 900px) {
    .fixed-menu .simple {
        flex-wrap: nowrap;
        gap: 16px;
        padding-top: 14px;
        padding-bottom: 14px;
    }
    .fixed-menu .logo {
        flex: none;
        gap: 10px;
    }
    .fixed-menu .logo .pic {
        width: 40px;
        height: 40px;
    }
    .fixed-menu .logo .text {
        font-size: 19px;
    }
    .fixed-menu .logo small {
        display: none;
    }
    .fixed-menu .search-panel {
        order: 0;
        flex: 1 1 0;
        padding: 0 4px 0 6px;
    }
    .burger-btn {
        order: 0;
        margin: 0 -10px 0 0;
    }
    .site-header__actions .register-btn,
    .site-header__actions .header-user,
    .site-header__actions .purchase-btn {
        display: inline-flex;
    }
    .site-header__actions .lang {
        display: block;
    }
    .basket-btn {
        padding: 0 12px 0 16px;
    }
    .basket-btn .i {
        display: none;
    }
    .basket-btn__label {
        position: static;
        width: auto;
        height: auto;
        overflow: visible;
        clip: auto;
    }
    .basket-btn span,
    .basket-btn.disabled span {
        display: inline-block;
        position: static;
        border: 0;
        background: #fff;
        color: var(--primary);
        font-size: 12px;
        line-height: 18px;
    }
}
@media (min-width: 1200px) {
    .fixed-menu .logo small {
        display: block;
    }
    .header-user-profile__login {
        position: static;
        width: auto;
        max-width: 140px;
        height: auto;
        overflow: hidden;
        clip: auto;
        text-overflow: ellipsis;
    }
    .lang__btn .lang__name {
        display: inline;
    }
    .lang__btn .lang__code {
        display: none;
    }
}

/* Desktop section links under the header bar */
.site-nav {
    display: none;
    background: var(--card);
    border-bottom: 1px solid var(--line);
}
.site-nav .wrap {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0 16px;
}
.site-nav ul {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin: 0;
    padding: 6px 0;
    list-style: none;
}
.site-nav ul:first-child {
    margin-left: -12px;
}
.site-nav ul:last-child {
    margin-right: -12px;
}
.site-nav a {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 36px;
    padding: 0 12px;
    border-radius: 10px;
    color: var(--muted);
    font-weight: 700;
}
.site-nav a:hover,
.site-nav a.active {
    background: var(--soft);
    color: var(--link);
}
.site-nav__extra a {
    font-weight: 600;
}
@media (min-width: 900px) {
    .site-nav {
        display: block;
    }
}
.bounce {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: var(--accent);
    color: #fff;
    font-size: 12px;
    font-style: normal;
    font-weight: 800;
    line-height: 1;
}

/* ---------- Drawer (.burger-menu is toggled by main2.min.js, extras in site.js) ---------- */
.burger-menu {
    position: fixed;
    z-index: 90;
    top: 0;
    bottom: 0;
    left: 0;
    display: flex;
    flex-direction: column;
    width: min(86vw, 360px);
    overflow-y: auto;
    overscroll-behavior: contain;
    padding-bottom: env(safe-area-inset-bottom, 0px);
    background: var(--card);
    box-shadow: 0 0 32px rgba(20, 26, 37, .2);
    transform: translateX(-100%);
    visibility: hidden;
    transition: transform .25s ease, visibility 0s linear .25s;
}
.burger-menu.active {
    transform: none;
    visibility: visible;
    transition: transform .25s ease;
}
@media (min-width: 900px) {
    .burger-menu {
        left: auto;
        right: 0;
        transform: translateX(100%);
    }
}
.drawer-backdrop {
    position: fixed;
    z-index: 89;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background: rgba(20, 26, 37, .5);
    opacity: 0;
    visibility: hidden;
    transition: opacity .25s ease, visibility 0s linear .25s;
}
.burger-menu.active + .drawer-backdrop {
    opacity: 1;
    visibility: visible;
    transition: opacity .25s ease;
}
html.drawer-open,
html.drawer-open body {
    overflow: hidden;
}
.drawer__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 8px 8px 8px 16px;
    border-bottom: 1px solid var(--line);
}
.drawer__brand {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 17px;
    font-weight: 800;
    letter-spacing: .5px;
}
.drawer__mascot {
    display: flex;
    flex: none;
    width: 28px;
    height: 28px;
}
.drawer__mascot svg {
    width: 100%;
    height: 100%;
}
.drawer__close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border: 0;
    border-radius: var(--r-m);
    background: transparent;
    color: var(--text);
}
.drawer__close:hover {
    background: var(--chip);
}
.drawer__section {
    padding: 8px 0;
    border-bottom: 1px solid var(--line);
}
.drawer__section:last-child {
    border-bottom: 0;
}
.drawer__title {
    margin: 0;
    padding: 8px 16px 4px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}
.burger-menu ul {
    margin: 0;
    padding: 0;
    list-style: none;
}
.burger-menu .drawer__section a {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 44px;
    padding: 0 16px;
    color: var(--text);
    font-weight: 700;
}
.burger-menu .drawer__section a:hover {
    background: var(--soft);
    color: var(--link);
}

/* ---------- Bottom nav (phone) ---------- */
.bottom-nav {
    position: fixed;
    z-index: 40;
    left: 0;
    right: 0;
    bottom: 0;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    padding-bottom: env(safe-area-inset-bottom, 0px);
    border-top: 1px solid var(--line);
    background: var(--card);
}
.bottom-nav a {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    min-height: 56px;
    padding: 6px 4px;
    color: var(--muted);
    font-size: 11px;
    font-weight: 700;
    line-height: 1.2;
    text-align: center;
}
.bottom-nav a::before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    width: 22px;
    height: 4px;
    margin-left: -11px;
    border-radius: 0 0 2px 2px;
    background: transparent;
}
.bottom-nav a:hover,
.bottom-nav a.active {
    color: var(--link);
}
.bottom-nav a.active::before {
    background: var(--primary);
}
.bottom-nav .i {
    width: 22px;
    height: 22px;
}
@media (min-width: 900px) {
    .bottom-nav {
        display: none;
    }
}

/* ---------- Footer ---------- */
.site-footer {
    margin-top: 36px;
    background: var(--foot);
    color: var(--foot-text);
    font-size: 14px;
}
.site-footer a {
    color: var(--foot-text);
}
.site-footer a:hover {
    color: #fff;
}
.site-footer :focus-visible {
    outline-color: #fff;
}
.footer-info {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
    padding: 24px 0;
    border-bottom: 1px solid var(--foot-line);
}
/* phones: two per row; a single last button takes the whole row */
.footer-info a {
    display: flex;
    flex: 1 0 calc((100% - 8px) / 2);
    min-width: 0;
    align-items: center;
    gap: 10px;
    min-height: 44px;
    padding: 10px 12px;
    border-radius: var(--r-m);
    background: rgba(255, 255, 255, .04);
    font-size: 13px;
    font-weight: 700;
    line-height: 1.3;
}
.footer-info a:hover {
    background: rgba(255, 255, 255, .08);
}
.footer-info .i {
    width: 22px;
    height: 22px;
    color: var(--brand);
}
.footer-menu-container {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 20px;
    padding: 24px 0;
}
.footer-menu__title {
    margin: 0 0 6px;
    color: var(--foot-muted);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}
.footer-menu {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 12px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.footer-menu a {
    display: flex;
    align-items: center;
    min-height: 44px;
    overflow-wrap: break-word;
    hyphens: auto;
}
.footer-social {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.footer-social .btn {
    min-height: 44px;
    padding: 0 16px;
    border: 1px solid var(--foot-line);
    border-radius: 22px;
    background: transparent;
    color: var(--foot-text);
    font-size: 14px;
    font-weight: 700;
}
.footer-social .btn:hover {
    border-color: var(--foot-muted);
    color: #fff;
}
.footer-social .btn.email {
    border-color: var(--primary);
    background: var(--primary);
    color: #fff;
}
.footer-social .btn.email:hover {
    background: var(--primary-hover);
}
.copyright-zone {
    padding: 20px 0 24px;
    border-top: 1px solid var(--foot-line);
    color: var(--foot-muted);
    font-size: 12px;
}
.footer-text p {
    margin: 0 0 12px;
}
.footer-copyright {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 16px;
    color: var(--foot-text);
}
@media (min-width: 600px) {
    .footer-info a {
        flex: 0 0 calc((100% - 16px) / 3);
    }
    .footer-menu-container {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 24px;
    }
}
@media (min-width: 900px) {
    .footer-menu-container {
        grid-template-columns: repeat(4, minmax(0, 1fr)) minmax(0, 1.3fr);
        padding: 28px 0;
    }
    .footer-menu {
        grid-template-columns: minmax(0, 1fr);
    }
    .footer-menu a {
        display: inline-block;
        min-height: 0;
        padding: 4px 0;
    }
}
@media (min-width: 1200px) {
    .footer-info a {
        flex: 1 1 0;
    }
}

/* ---------- Popups (markup unchanged; .active / .modal__loader set by main2.min.js) ---------- */
.popup {
    position: fixed;
    z-index: 100;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 16px;
}
.popup.active {
    display: flex;
}
.popup .overlay {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background: rgba(20, 26, 37, .55);
}
.popup .modal {
    position: relative;
    width: 100%;
    max-width: 520px;
    /* mailSubscribe() sets an inline pixel height on .modal */
    height: auto !important;
    max-height: calc(100vh - 32px);
    overflow-y: auto;
    padding: 20px;
    border-radius: var(--r-l);
    background: var(--card);
    box-shadow: var(--shadow);
}
.popup .title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}
.popup .title .logo::before {
    content: "ZAKA-ZAKA";
    font-size: 17px;
    font-weight: 800;
    letter-spacing: .5px;
}
.popup .close {
    position: relative;
    flex: none;
    width: 44px;
    height: 44px;
    margin: -10px -10px 0 auto;
    border-radius: var(--r-m);
    cursor: pointer;
}
.popup .close:hover {
    background: var(--chip);
}
.popup .close::before,
.popup .close::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 18px;
    height: 2px;
    margin: -1px 0 0 -9px;
    border-radius: 1px;
    background: var(--muted);
    transform: rotate(45deg);
}
.popup .close::after {
    transform: rotate(-45deg);
}
.popup .btns {
    margin-bottom: 12px;
}
.popup .btns .register {
    font-size: 18px;
    font-weight: 800;
}
.popup.email .column > * {
    margin: 0 0 12px;
}
.popup.email input[type="text"] {
    display: block;
    width: 100%;
    min-height: 44px;
    padding: 0 14px;
    border: 1px solid var(--line);
    border-radius: var(--r-m);
    background: var(--card);
}
.popup.email input[type="checkbox"] {
    width: 20px;
    height: 20px;
    margin: 0 8px 0 0;
    vertical-align: middle;
}
.popup.email label {
    font-size: 14px;
}
.popup.email .error {
    color: var(--accent);
    font-size: 13px;
}
.popup.email .error:empty {
    display: none;
}
.popup.email button {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 44px;
    border: 0;
    border-radius: var(--r-m);
    background: var(--primary);
    color: #fff;
    font-size: 15px;
    font-weight: 800;
}
.popup.email button:hover {
    background: var(--primary-hover);
}
.popup.email .subscribe button {
    margin-top: 16px;
}
.popup.email .subs .favorites {
    border: 1px solid var(--line);
    background: transparent;
    color: var(--text);
}
.popup.message .positive p {
    color: var(--good);
}
.popup.message .negative p {
    color: var(--accent);
}
.popup.message.new .modal {
    padding-right: 56px;
}
.popup.message.new .close {
    position: absolute;
    top: 8px;
    right: 8px;
    margin: 0;
}
.popup.message.new .messages-container > div {
    margin: 0 0 8px;
}
/* Confirm dialog (profile/subscribe.php): a question and two buttons; closed like every popup (.overlay, .close, [data-dismiss="modal"] in main2.min.js) */
.popup.confirm .modal {
    max-width: 420px;
}
.popup.confirm .confirm__text {
    margin: 0 0 16px;
    font-size: 16px;
    line-height: 1.4;
}
.popup.confirm .confirm__btns {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 8px;
}

/* Add-to-cart popup */
.popup.buy .modal {
    max-width: 560px;
}
.popup.buy.modal__loader .modal {
    min-height: 160px;
}
.popup.buy.modal__loader .modal > * {
    visibility: hidden;
}
.popup.buy.modal__loader .modal::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 36px;
    height: 36px;
    margin: -18px 0 0 -18px;
    border: 3px solid var(--line);
    border-top-color: var(--primary);
    border-radius: 50%;
    animation: zz-spin .8s linear infinite;
}
@keyframes zz-spin {
    to {
        transform: rotate(360deg);
    }
}
.popup.buy .modal-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 16px;
}
.popup.buy .modal-title {
    margin: 0;
    font-size: 18px;
}
.popup.buy .cart-total-main {
    display: block;
    margin-top: 4px;
    color: var(--muted);
    font-size: 13px;
    font-weight: 600;
}
.popup.buy .modal-error--hidden {
    display: none;
}
.code-alert__title {
    color: var(--accent);
    font-size: 18px;
    font-weight: 800;
}
.code-alert__description {
    margin: 8px 0 0;
}
.main-header__dropdown--products-btns,
.main-header__dropdown--products-btns > div {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 8px;
}
.main-header__dropdown--products-btns {
    margin-top: 16px;
}
.catalog--cart-success .catalog-item {
    display: grid;
    grid-template-columns: 96px minmax(0, 1fr);
    gap: 4px 12px;
    align-items: start;
}
.catalog--cart-success .catalog-item__img {
    grid-row: span 2;
}
.catalog--cart-success .catalog-item__img img {
    display: block;
    width: 100%;
    aspect-ratio: 185 / 107;
    object-fit: cover;
    border-radius: var(--r-s);
}
.catalog--cart-success .catalog-item__name {
    font-weight: 700;
    line-height: 1.3;
}
.catalog-item__genres {
    margin-top: 2px;
    color: var(--muted);
    font-size: 13px;
    font-weight: 500;
}
.catalog-item__platforms {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin-top: 6px;
}
.catalog--cart-success .catalog-item__platforms span {
    padding: 1px 6px;
    border-radius: 6px;
    background: var(--chip);
    color: var(--muted);
    font-size: 11px;
    font-weight: 700;
}
/* Cart.php sends empty icon spans; label them in text */
.catalog--cart-success .catalog-item__platforms .steam::before { content: "Steam"; }
.catalog--cart-success .catalog-item__platforms .origin::before { content: "Origin"; }
.catalog--cart-success .catalog-item__platforms .uplay::before { content: "Uplay"; }
.catalog--cart-success .catalog-item__platforms .battlenet::before { content: "Battle.net"; }
.catalog--cart-success .catalog-item__platforms .windows::before { content: "Windows"; }
.catalog--cart-success .catalog-item__platforms .apple::before { content: "macOS"; }
.catalog--cart-success .catalog-item__platforms .linux::before { content: "Linux"; }
.catalog--cart-success .catalog-item__price {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0 8px;
}
.catalog--cart-success .game-block-discount {
    padding: 2px 8px;
    border-radius: var(--r-s);
    background: var(--accent);
    color: #fff;
    font-size: 13px;
    font-weight: 800;
}
.catalog--cart-success .game-block-discount-sum {
    margin-right: 8px;
    color: var(--muted);
    font-size: 13px;
}
.catalog-item__price-span {
    font-size: 18px;
    font-weight: 800;
}
@media (min-width: 600px) {
    .catalog--cart-success .catalog-item {
        grid-template-columns: 120px minmax(0, 1fr) auto;
    }
    .catalog--cart-success .catalog-item__img {
        grid-row: auto;
    }
    .catalog--cart-success .catalog-item__price {
        flex-direction: column;
        align-items: flex-end;
    }
}

/* ---------- Shared components for the page stages ---------- */
.card {
    padding: 16px;
    border-radius: var(--r-xl);
    background: var(--card);
}
.card__title {
    margin: 0 0 8px;
    font-size: 16px;
    font-weight: 800;
}
@media (min-width: 900px) {
    .card {
        padding: 18px;
    }
}

.section-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 12px;
    margin: 0 0 14px;
}
.section-head__title {
    flex: 1 1 auto;
    margin: 0;
    font-size: 20px;
    font-weight: 800;
    line-height: 1.25;
}
.section-head__link {
    font-weight: 700;
}
.segmented {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    max-width: 100%;
    padding: 4px;
    border-radius: var(--r-m);
    background: var(--card);
}
.segmented > * {
    display: inline-flex;
    flex: none;
    align-items: center;
    min-height: 44px;
    padding: 0 10px;
    white-space: nowrap;
    border: 0;
    border-radius: 9px;
    background: transparent;
    color: var(--muted);
    font-weight: 700;
    cursor: pointer;
}
.segmented > :hover {
    color: var(--link);
}
.segmented > .active {
    background: var(--primary);
    color: #fff;
}
.section-head > .segmented {
    flex: 1 1 100%;
}
.section-head > .segmented > * {
    flex: 1 1 auto;
    justify-content: center;
    padding: 0 6px;
    font-size: 13px;
}
@media (min-width: 600px) {
    .section-head > .segmented {
        flex: 0 1 auto;
    }
    .section-head > .segmented > * {
        flex: none;
        padding: 0 10px;
        font-size: inherit;
    }
}
@media (min-width: 900px) {
    .section-head__title {
        font-size: 22px;
    }
    .segmented > *,
    .section-head > .segmented > * {
        min-height: 36px;
        padding: 0 14px;
    }
}

.chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0;
    padding: 0 0 4px;
    list-style: none;
}
.chip {
    display: inline-flex;
    flex: none;
    align-items: center;
    gap: 6px;
    min-height: 44px;
    padding: 10px 14px;
    border: 1px solid var(--line);
    border-radius: 22px;
    background: var(--card);
    color: var(--text);
    font-size: 14px;
    font-weight: 600;
    line-height: 1.2;
    white-space: nowrap;
    cursor: pointer;
}
.chip:hover {
    border-color: var(--primary);
    color: var(--link);
}
.chip.active,
.chip[aria-current],
.chip[aria-pressed="true"] {
    border-color: var(--primary);
    background: var(--soft);
    color: var(--link);
}
@media (min-width: 900px) {
    .chip {
        min-height: 40px;
        padding: 9px 14px;
    }
}

.tiles {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.tile {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
    overflow: hidden;
    padding-bottom: 10px;
    border: 1px solid var(--line);
    border-radius: var(--r-l);
    background: var(--card);
    color: var(--text);
    text-decoration: none;
    transition: box-shadow .15s ease;
}
.tile:hover,
.tile.hover {
    box-shadow: var(--shadow);
    color: var(--text);
}
.tile__cover {
    position: relative;
    display: block;
    aspect-ratio: 273 / 112;
    overflow: hidden;
    margin-bottom: 2px;
    background: var(--chip);
}
.tile__cover img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.tile__cover--contain img {
    object-fit: contain;
}
.tile--series .tile__cover {
    aspect-ratio: 185 / 107;
}
.tile__badge {
    position: absolute;
    padding: 2px 7px;
    border-radius: var(--r-s);
    font-size: 12px;
    font-weight: 800;
    line-height: 1.4;
}
.tile__badge--pre {
    top: 8px;
    left: 8px;
    background: var(--preorder);
    color: var(--text);
    font-size: 11px;
    text-transform: uppercase;
}
.tile__badge--pre + .tile__badge--pre {
    top: 34px;
}
/* Tile content is flat (no body wrapper): profile/subscribe.php reads .game-block-unsubscribe.next() as the name and removes its parent */
.tile__title,
.tile__sub,
.tile__price,
.tile__meta,
.tile__lucky {
    padding: 0 10px;
}
.tile__title {
    display: -webkit-box;
    overflow: hidden;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.3;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}
.tile__sub {
    overflow: hidden;
    color: var(--muted);
    font-size: 12px;
    line-height: 1.3;
    white-space: nowrap;
    text-overflow: ellipsis;
}
.tile__price {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 2px 8px;
    margin-top: auto;
}
.tile__price-now {
    font-size: 16px;
    font-weight: 800;
}
.tile__price-old {
    color: var(--muted);
    font-size: 13px;
    text-decoration: line-through;
}
/* the chip's filled box reads by its middle: centre it on the price digits, the two prices keep their common baseline */
.tile__discount {
    align-self: center;
    padding: 0 6px;
    border-radius: 6px;
    background: var(--accent);
    color: #fff;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.5;
    white-space: nowrap;
}
/* narrow tiles (phones, 3 columns at 600-719px): with the chip shown, the old price would push the price row onto a second line */
.tile__discount + .tile__price-old {
    display: none;
}
@media (min-width: 720px) {
    .tile__discount + .tile__price-old {
        display: inline;
    }
}
.tile__price--na {
    color: var(--muted);
    font-size: 13px;
    font-weight: 700;
}
.tile__meta {
    overflow: hidden;
    color: var(--muted);
    font-size: 11px;
    font-weight: 600;
    line-height: 1.4;
    white-space: nowrap;
    text-overflow: ellipsis;
}
.tile__meta > span + span::before {
    content: "·";
    margin-right: 4px;
}
.tile__lucky {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 4px;
    margin-top: auto;
    color: var(--muted);
    font-size: 10px;
    font-weight: 800;
    text-align: center;
}
.tile__lucky b {
    display: block;
    color: var(--text);
    font-size: 13px;
}
.tile--more {
    align-items: center;
    justify-content: center;
    min-height: 120px;
    padding: 16px;
    border: 2px dashed var(--line);
    background: transparent;
    color: var(--link);
    font-weight: 800;
}
.tile--more:hover {
    border-color: var(--primary);
    color: var(--link);
}
.game-block-unsubscribe {
    position: absolute;
    z-index: 2;
    top: 6px;
    right: 6px;
    display: inline-flex;
    align-items: center;
    min-height: 32px;
    padding: 0 10px;
    border-radius: var(--r-s);
    background: rgba(20, 26, 37, .78);
    color: #fff;
    font-size: 12px;
    font-weight: 800;
    cursor: pointer;
}
@media (min-width: 600px) {
    .tiles {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 16px;
    }
    .tile {
        gap: 8px;
        padding-bottom: 14px;
    }
    .tile__title,
    .tile__sub,
    .tile__price,
    .tile__meta,
    .tile__lucky {
        padding: 0 14px;
    }
    .tile__title {
        font-size: 15px;
    }
    .tile__price-now {
        font-size: 19px;
    }
}
@media (min-width: 1200px) {
    .tiles {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

/* ---------- Lists: tabs, pagination, "show more" ---------- */
.tabs-content {
    display: none;
}
.tabs-content.active {
    display: block;
}
/* news/list.php tabs are plain div.tabs-btn: same look as .segmented */
.tabs > .tabs-btns:not(.section-head) {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    max-width: 100%;
    margin: 0 0 14px;
    padding: 4px;
    border-radius: var(--r-m);
    background: var(--card);
}
.tabs > .tabs-btns:not(.section-head) > .tabs-btn {
    display: inline-flex;
    flex: none;
    align-items: center;
    min-height: 44px;
    padding: 0 12px;
    border-radius: 9px;
    color: var(--muted);
    font-weight: 700;
    white-space: nowrap;
    cursor: pointer;
}
.tabs > .tabs-btns:not(.section-head) > .tabs-btn.active {
    background: var(--primary);
    color: #fff;
}
.pagination {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 6px;
    margin: 24px 0 0;
}
.pagination a {
    display: flex;
    border-radius: var(--r-m);
    color: var(--text);
}
.pagination-page,
.pagination-arrow-r,
.pagination-arrow-l {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    height: 44px;
    padding: 0 10px;
    border: 1px solid var(--line);
    border-radius: var(--r-m);
    background: var(--card);
    font-weight: 700;
}
.pagination a:hover > div {
    border-color: var(--primary);
    color: var(--link);
}
.pagination-page.active,
.pagination a:hover > .pagination-page.active {
    border-color: var(--primary);
    background: var(--primary);
    color: #fff;
}
/* Pager2: arrow-r is the "previous" link, arrow-l the "next" one */
.pagination-arrow-r::before,
.pagination-arrow-l::before {
    content: "";
    width: 9px;
    height: 9px;
    border: solid currentColor;
    border-width: 0 2px 2px 0;
}
.pagination-arrow-r::before {
    margin-left: 4px;
    transform: rotate(135deg);
}
.pagination-arrow-l::before {
    margin-right: 4px;
    transform: rotate(-45deg);
}
.pagination-dots {
    padding: 0 4px;
    color: var(--muted);
    letter-spacing: 2px;
}
/* phones: one row - compact buttons; in a long list (it has dots) only the first and last pages, the current one with its neighbours
   and the pages next to the first/last stay. :has() is an enhancement: without it the row wraps as before */
@media (max-width: 599.98px) {
    .pagination {
        gap: 2px;
    }
    .pagination-page,
    .pagination-arrow-r,
    .pagination-arrow-l {
        min-width: 32px;
        padding: 0 2px;
        font-size: 14px;
    }
    .pagination-dots {
        padding: 0 2px;
        font-size: 12px;
        letter-spacing: 0;
    }
    .pagination:has(> .pagination-dots) > a:has(> .pagination-page):not(:nth-child(2)):not(:nth-child(3)):not(:nth-last-child(2)):not(:nth-last-child(3)):not(:has(> .active)):not(:has(+ a > .active)):not(:has(> .active) + a) {
        display: none;
    }
}
@media (max-width: 359.98px) {
    .pagination {
        gap: 1px;
    }
}
.gifts-users-show-more {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 0 18px;
    border: 1px solid var(--line);
    border-radius: var(--r-m);
    background: var(--card);
    color: var(--link);
    font-weight: 800;
    cursor: pointer;
}
.gifts-users-show-more:hover {
    border-color: var(--primary);
}
.search-results > .gifts-users-show-more {
    grid-column: 1 / -1;
}
.catalog-more {
    display: flex;
    justify-content: center;
    margin: 24px 0 0;
}
.catalog-more .btn {
    width: 100%;
}
@media (min-width: 600px) {
    .catalog-more .btn {
        width: auto;
    }
}

/* ---------- Filters row (components/views/MenuChips.php) ---------- */
/* <900: the chips take the whole width and «Все разделы» follows them, so its dropdown (.filters__panel) opens right under it;
   the 4px row gap plus the chips' 4px bottom padding make the 8px of the chip rows. >=900: one row, «Все разделы» on the right */
.filters {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 4px 8px;
    margin: 0 0 20px;
}
.filters__chips {
    flex: 1 1 100%;
    min-width: 0;
}
.filters__all {
    flex: none;
}
.filters__all > summary {
    list-style: none;
}
.filters__all > summary::-webkit-details-marker {
    display: none;
}
.filters__all > summary .i {
    width: 16px;
    height: 16px;
    transition: transform .15s ease;
}
.filters__all[open] > summary {
    border-color: var(--primary);
    background: var(--soft);
    color: var(--link);
}
.filters__all[open] > summary .i {
    transform: rotate(180deg);
}
.filters__panel {
    position: absolute;
    z-index: 30;
    top: calc(100% + 6px);
    left: 0;
    right: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: 0 24px;
    max-height: min(70vh, 560px);
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 4px 16px 12px;
    border: 1px solid var(--line);
    border-radius: var(--r-l);
    background: var(--card);
    box-shadow: var(--shadow);
}
.filters__title {
    margin: 12px 0 2px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}
.filters__group ul {
    margin: 0;
    padding: 0;
    list-style: none;
}
.filters__group a {
    display: flex;
    align-items: center;
    min-height: 44px;
    color: var(--text);
    font-weight: 600;
}
.filters__group a:hover {
    color: var(--link);
}
@media (min-width: 900px) {
    .filters {
        flex-wrap: nowrap;
        margin-bottom: 24px;
    }
    .filters__chips {
        flex: 1 1 auto;
    }
    .filters__panel {
        padding: 8px 24px 16px;
    }
    .filters__group a {
        min-height: 32px;
    }
}

/* ---------- Hero: components/views/Slider.php + bxSlider (fade) ---------- */
.hero {
    margin: 0 0 16px;
}
.top-slider-container {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    border-radius: var(--r-xl);
    background: #26324a;
    color: #fff;
}
.top-slider-subview-bg,
.bx-loading {
    display: none;
}
.top-slider {
    margin: 0;
    padding: 0;
    list-style: none;
}
.top-slider > li {
    position: relative;
}
.top-slider-slide {
    position: relative;
    display: block;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    color: #fff;
}
.top-slider-slide:hover {
    color: #fff;
}
.top-slider-pic {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.top-slider-shadow {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background: linear-gradient(to top, rgba(10, 14, 21, .88), rgba(10, 14, 21, .2) 55%, rgba(10, 14, 21, 0));
}
.top-slider-platforms {
    position: absolute;
    top: 12px;
    left: 16px;
    display: flex;
    gap: 6px;
}
.top-slider-platforms span {
    padding: 2px 8px;
    border-radius: 6px;
    background: rgba(10, 14, 21, .6);
    font-size: 11px;
    font-weight: 700;
}
.top-slider-name {
    position: absolute;
    left: 16px;
    right: 16px;
    bottom: 46px;
    display: -webkit-box;
    overflow: hidden;
    font-size: 19px;
    font-weight: 800;
    line-height: 1.2;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}
.top-slider-prices {
    position: absolute;
    left: 16px;
    bottom: 14px;
    display: flex;
    align-items: center;
    gap: 8px;
}
.top-slider-discount {
    order: 1;
    padding: 2px 8px;
    border-radius: var(--r-s);
    background: var(--accent);
    font-size: 13px;
    font-weight: 800;
}
.top-slider-price {
    font-size: 18px;
    font-weight: 800;
}
.top-slider-subview {
    display: none;
}
.bx-wrapper {
    position: relative;
}
.bx-controls-direction a {
    position: absolute;
    z-index: 60;
    top: 50%;
    width: 44px;
    height: 44px;
    margin-top: -22px;
    border-radius: 50%;
    background: rgba(10, 14, 21, .55);
    color: #fff;
}
.bx-controls-direction a:hover {
    background: rgba(10, 14, 21, .8);
}
.bx-controls-direction a::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 10px;
    height: 10px;
    border: solid currentColor;
    border-width: 0 2px 2px 0;
}
.bx-prev {
    left: 8px;
}
.bx-prev::before {
    margin: -5px 0 0 -3px;
    transform: rotate(135deg);
}
.bx-next {
    right: 8px;
}
.bx-next::before {
    margin: -5px 0 0 -7px;
    transform: rotate(-45deg);
}
@media (min-width: 900px) {
    .hero {
        margin-bottom: 20px;
    }
    .top-slider-slide {
        width: 66.667%;
        aspect-ratio: 2 / 1;
    }
    .top-slider-name {
        left: 24px;
        right: 24px;
        bottom: 56px;
        font-size: 28px;
    }
    .top-slider-prices {
        left: 24px;
        bottom: 20px;
    }
    .top-slider-platforms {
        left: 24px;
    }
    .top-slider-subview {
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        display: flex;
        flex-direction: column;
        width: 33.333%;
        overflow: hidden;
        padding: 24px;
        background: #1b2436;
    }
    .top-slider-subview-title {
        margin-bottom: 8px;
        font-size: 19px;
        font-weight: 800;
        line-height: 1.25;
    }
    .top-slider-subview-desc {
        display: -webkit-box;
        overflow: hidden;
        color: var(--foot-text);
        font-size: 14px;
        -webkit-line-clamp: 8;
        -webkit-box-orient: vertical;
    }
    .top-slider-subview-props {
        margin-top: auto;
        padding-top: 12px;
        color: var(--foot-muted);
        font-size: 13px;
    }
    .top-slider-subview-props span {
        color: #fff;
    }
    .bx-next {
        right: calc(33.333% + 8px);
    }
}

/* phones: banner arrows go to the top-right corner so they never cover the slide title */
@media (max-width: 899.98px) {
    .hero .bx-controls-direction a {
        top: 10px;
        margin-top: 0;
    }
    .hero .bx-prev {
        left: auto;
        right: 62px;
    }
    .hero .bx-next {
        right: 10px;
    }
}

/* ---------- Side widgets: cards with vertical Swiper lists of mini-cards ---------- */
.side-widgets {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 16px;
    margin: 32px 0 0;
}
.side-widgets > .card,
.side-widgets .card {
    position: relative;
    min-width: 0;
}
.card .card__title {
    display: flex;
    align-items: center;
    min-height: 44px;
    margin: -6px 0 8px;
}
.card .card__title a {
    color: var(--text);
}
.card .card__title a:hover {
    color: var(--link);
}
.right-slider-container .card__title,
.top-right-slider-container .card__title,
.bottom-slider-container .card__title {
    padding-right: 100px;
}
.card .swiper-button-prev,
.card .swiper-button-next {
    position: absolute;
    top: 12px;
    left: auto;
    width: 44px;
    height: 44px;
    margin: 0;
    border-radius: 50%;
    background: var(--chip);
    color: var(--text);
}
.card .swiper-button-prev {
    right: 64px;
}
.card .swiper-button-next {
    right: 14px;
}
.card .swiper-button-prev:hover,
.card .swiper-button-next:hover {
    background: var(--soft);
    color: var(--link);
}
.side-widgets .swiper-button-disabled,
.side-widgets .swiper-button-disabled:hover {
    background: var(--chip);
    color: var(--text);
    opacity: .4;
    cursor: default;
}
.card .swiper-button-prev::before,
.card .swiper-button-next::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 9px;
    height: 9px;
    margin: -3px 0 0 -5px;
    border: solid currentColor;
    border-width: 2px 0 0 2px;
    transform: rotate(45deg);
}
.card .swiper-button-next::before {
    margin-top: -7px;
    transform: rotate(225deg);
}
.bottom-slider-container.card .swiper-button-prev::before {
    margin: -5px 0 0 -3px;
    transform: rotate(-45deg);
}
.bottom-slider-container.card .swiper-button-next::before {
    margin: -5px 0 0 -7px;
    transform: rotate(135deg);
}
/* Vertical Swiper sizes its slides from the container height: 3 rows of 72px with 3px gaps */
.right-slider3,
.right-gifts-slider-main {
    height: 222px;
}
.bottom-slider-container {
    position: relative;
    overflow: hidden;
}
.bottom-slider {
    margin: 0;
    padding: 0;
    list-style: none;
}

/* ---------- Mini card (components/views/_mini.php) ---------- */
.mini {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
    height: 100%;
    padding: 4px;
    border-radius: var(--r-m);
    color: var(--text);
}
.mini:hover,
.mini.hover {
    background: var(--soft);
    color: var(--text);
}
.mini__cover {
    position: relative;
    flex: none;
    width: 96px;
    aspect-ratio: 273 / 112;
    overflow: hidden;
    border-radius: var(--r-s);
    background: var(--chip);
}
.mini__cover img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.mini__badge {
    align-self: center;
    padding: 0 5px;
    border-radius: 6px;
    background: var(--accent);
    color: #fff;
    font-size: 11px;
    font-weight: 800;
    line-height: 16px;
    white-space: nowrap;
}
.mini__body {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}
.mini__title {
    display: -webkit-box;
    overflow: hidden;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.3;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}
.mini__price {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0 6px;
}
.mini__price-now {
    font-size: 14px;
    font-weight: 800;
}
.mini__price-now--down {
    color: var(--good);
}
.mini__price-old {
    color: var(--muted);
    font-size: 12px;
}
.mini--col {
    flex-direction: column;
    align-items: stretch;
    height: auto;
}
.mini--col .mini__cover {
    width: 100%;
}
/* phones: the bottom sliders' cards are narrow, so the chip goes under the price on every card (rows stay even) */
.mini--col .mini__price {
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
}
/* in the column a centred chip would move to the middle of the card */
.mini--col .mini__badge {
    align-self: flex-start;
}
@media (min-width: 600px) {
    .mini--col .mini__price {
        flex-direction: row;
        align-items: baseline;
        gap: 0 6px;
    }
    .mini--col .mini__badge {
        align-self: center;
    }
}
.game-miniblock-time {
    color: var(--muted);
    font-size: 12px;
    font-weight: 700;
}
.mini__sub {
    color: var(--muted);
    font-size: 12px;
}

/* ---------- Product page, "Игры из серии" tab (components/views/GameSeries.php) ---------- */
.product-detail-tab-games {
    position: relative;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: 10px;
}
/* main2.min.js positions this preview by 117px list rows; in the tile grid site.js opens the lightbox instead */
.product-detail-game-preview,
.product-detail-game-preview.active {
    display: none;
}
.product-detail-game-container {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
}
.product-detail-game,
.product-detail-game > .tile {
    flex: 1 1 auto;
}
.product-detail-game {
    display: flex;
}
.product-detail-game-screen {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 4px;
}
/* GameSeries.php writes the first screenshots as an inline `background` shorthand */
.product-detail-game-screen > div {
    aspect-ratio: 16 / 9;
    overflow: hidden;
    border-radius: 6px;
    background-color: var(--chip);
    background-position: center !important;
    background-size: cover !important;
    cursor: zoom-in;
}
@media (min-width: 600px) {
    .product-detail-tab-games {
        grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
        gap: 16px;
    }
}

/* ---------- Product page (views/game/view.php) ---------- */
/* Phone: one column, media first; the buy bar is fixed above the bottom nav. >=900: two columns, sticky buy box */
.product-detail {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 14px;
    align-items: start;
}
/* .product-main only wraps media + buy box; its children join the page grid */
.product-main {
    display: contents;
}
.product-detail .product-preview {
    order: -2;
}
.product-detail > .header {
    order: -1;
    min-width: 0;
}
.product-detail > .header .subtitle {
    color: var(--muted);
    font-size: 12px;
    font-weight: 600;
}
/* inline padding widens the tap area without changing the line */
.product-detail > .header .subtitle a {
    padding: 13px 0;
    color: var(--muted);
}
.product-detail > .header .subtitle a:hover {
    color: var(--link);
}
.product-detail .title {
    margin: 4px 0 0;
    font-size: 26px;
    line-height: 1.2;
    overflow-wrap: anywhere;
}
.product-detail .title--long {
    font-size: 21px;
}

/* Media: big picture/video + thumbnails (Swiper, main2.min.js) */
.product-preview {
    display: grid;
    gap: 10px;
    min-width: 0;
}
.product-preview-items {
    position: relative;
    overflow: hidden;
    aspect-ratio: 16 / 9;
    border-radius: var(--r-l);
    background: #232c3d;
}
.product-preview-item {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    display: none;
}
.product-preview-item.active {
    display: block;
}
.product-preview-item.picture {
    cursor: zoom-in;
}
.product-preview-item > div {
    width: 100%;
    height: 100%;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}
.product-preview-item iframe {
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
}
.product-mini-preview-container {
    position: relative;
    min-width: 0;
}
.product-mini-preview {
    overflow: hidden;
}
/* the width is a fallback until Swiper writes its own */
.product-mini-preview .item {
    position: relative;
    width: calc(25% - 10px);
    height: auto;
    aspect-ratio: 16 / 9;
    border-radius: var(--r-s);
    background-color: var(--chip);
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    cursor: pointer;
}
.product-mini-preview .item:hover {
    box-shadow: 0 0 0 2px var(--primary);
}
.product-mini-preview .item.video::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    margin: -8px 0 0 -5px;
    border-style: solid;
    border-width: 8px 0 8px 13px;
    border-color: transparent transparent transparent #fff;
    filter: drop-shadow(0 1px 2px rgba(0, 0, 0, .6));
}
/* phone: thumbnails are swiped */
.product-mini-preview-prev,
.product-mini-preview-next {
    display: none;
}

/* Buy box */
.specification {
    display: flex;
    flex-direction: column;
    gap: 12px;
    min-width: 0;
    padding: 16px;
    border-radius: var(--r-l);
    background: var(--card);
}
.specification > .buy-zone {
    order: -1;
}
.product-detail-timer {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0 5px;
    padding: 10px 12px 10px 38px;
    border-radius: var(--r-m);
    background: var(--soft);
    color: var(--link);
    font-size: 13px;
    font-weight: 700;
    line-height: 1.4;
}
.product-detail-timer::before {
    content: "";
    position: absolute;
    top: 10px;
    left: 12px;
    width: 18px;
    height: 18px;
    background: currentColor;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E") center / contain no-repeat;
}
.product-detail-timer .timer-item {
    display: inline-flex;
    gap: 3px;
}
.product-detail-timer .timer-time {
    font-variant-numeric: tabular-nums;
}
.product-detail-timer .timer-time-type {
    font-weight: 600;
}
.buy-zone {
    display: flex;
    flex-direction: column;
    gap: 10px;
    min-width: 0;
}
.buy-price {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px 10px;
}
.buy-price .price {
    order: -1;
    font-size: 32px;
    font-weight: 800;
    line-height: 1.1;
}
.buy-price .discount,
.buy-bar__discount {
    padding: 2px 8px;
    border-radius: 7px;
    background: var(--accent);
    color: #fff;
    font-size: 13px;
    font-weight: 800;
}
.buy-price .old-price {
    order: 1;
    color: var(--muted);
    text-decoration: line-through;
}
.notavailable-price {
    color: var(--muted);
    font-size: 15px;
    font-weight: 700;
}
.product-economy {
    position: relative;
    align-self: flex-start;
    color: var(--good);
    font-size: 13px;
    font-weight: 700;
    cursor: help;
}
.product-economy-notice {
    display: none;
    position: absolute;
    z-index: 6;
    top: 100%;
    left: 0;
    width: 240px;
    margin-top: 6px;
    padding: 8px 10px;
    border-radius: var(--r-s);
    background: var(--text);
    color: #fff;
    font-size: 12px;
    font-weight: 500;
    line-height: 1.4;
}
.product-economy:hover .product-economy-notice {
    display: block;
}

/* Buy bar: price + wishlist + main button */
.buy-bar {
    position: fixed;
    z-index: 39;
    right: 0;
    bottom: calc(var(--bottom-nav-h) + env(safe-area-inset-bottom, 0px));
    left: 0;
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 65px;
    padding: 8px var(--gutter);
    border-top: 1px solid var(--line);
    background: var(--card);
    box-shadow: 0 -4px 16px rgba(20, 26, 37, .06);
}
body.has-buy-bar {
    padding-bottom: calc(var(--bottom-nav-h) + 65px + env(safe-area-inset-bottom, 0px));
}
/* price + discount chip: takes only the room the buttons leave (basis 0), never less than its widest item, so the price is never cut and
   the buttons keep their width; when price and chip don't fit side by side (320px, long prices) the chip wraps under the price */
.buy-bar__price {
    display: flex;
    flex: 1 1 0;
    flex-wrap: wrap;
    align-items: center;
    gap: 0 8px;
    min-width: min-content;
    font-size: 20px;
    font-weight: 800;
    line-height: 1.2;
    white-space: nowrap;
}
.buy-bar__now {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}
.buy-bar__discount {
    flex: none;
    line-height: 1.4;
}
.buy-bar > .product-wish {
    order: 1;
}
.buy-bar > a {
    order: 2;
}
.buy-bar > .notavailable-btn,
.buy-bar > .product-detail-download-btn {
    flex: 1 1 auto;
}
.simple-buy-btn,
.notavailable-btn {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1px;
    min-height: 48px;
    padding: 4px 20px;
    border-radius: 14px;
    font-size: 16px;
    font-weight: 800;
    line-height: 1.2;
    text-align: center;
    text-decoration: none;
}
.simple-buy-btn {
    background: var(--primary);
    color: #fff;
    cursor: pointer;
}
.simple-buy-btn:hover {
    background: var(--primary-hover);
    color: #fff;
}
.product-detail-buy-btn:not(.product-preorder-btn) {
    flex-direction: row;
    gap: 8px;
}
.product-buy-btn--click.in_cart {
    background: var(--soft);
    color: var(--link);
}
.product-buy-btn--click.in_cart:hover {
    background: #d9e8f7;
    color: var(--link);
}
.notavailable-btn {
    background: var(--chip);
    color: var(--text);
    cursor: default;
}
.notavailable-notice {
    color: var(--link);
    font-size: 12px;
    font-weight: 700;
    text-decoration: underline;
    cursor: pointer;
}
.product-detail-download-btn .notavailable-notice {
    color: #fff;
    text-decoration: none;
    cursor: inherit;
}
.product-preorder-notice {
    font-size: 12px;
    font-weight: 600;
    text-decoration: underline;
}
/* main2.min.js swaps in the long text and adds .full; on the phone it opens above the bar */
.product-preorder-notice.full {
    position: absolute;
    z-index: 6;
    right: var(--gutter);
    bottom: calc(100% + 8px);
    left: var(--gutter);
    padding: 10px 12px;
    border-radius: var(--r-m);
    background: var(--text);
    color: #fff;
    font-size: 13px;
    font-weight: 500;
    line-height: 1.45;
    text-align: left;
    text-decoration: none;
    box-shadow: var(--shadow);
}

/* Wishlist: main2.min.js rewrites the inner <p>, so the heart is drawn in CSS */
.product-wish .subscribe {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 48px;
    height: 48px;
    padding: 0;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: var(--card);
    color: var(--text);
    font-size: 15px;
    font-weight: 700;
}
.product-wish .subscribe:hover {
    border-color: var(--muted);
}
.product-wish .subscribe::before {
    content: "";
    flex: none;
    width: 20px;
    height: 20px;
    background: currentColor;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linejoin='round'%3E%3Cpath d='M12 20s-7-4.5-7-10a4 4 0 0 1 7-2.5A4 4 0 0 1 19 10c0 5.5-7 10-7 10z'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linejoin='round'%3E%3Cpath d='M12 20s-7-4.5-7-10a4 4 0 0 1 7-2.5A4 4 0 0 1 19 10c0 5.5-7 10-7 10z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.product-wish .subscribe.done {
    color: var(--accent);
}
.product-wish .subscribe.done::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000' stroke='%23000' stroke-width='2' stroke-linejoin='round'%3E%3Cpath d='M12 20s-7-4.5-7-10a4 4 0 0 1 7-2.5A4 4 0 0 1 19 10c0 5.5-7 10-7 10z'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000' stroke='%23000' stroke-width='2' stroke-linejoin='round'%3E%3Cpath d='M12 20s-7-4.5-7-10a4 4 0 0 1 7-2.5A4 4 0 0 1 19 10c0 5.5-7 10-7 10z'/%3E%3C/svg%3E");
}
.product-wish .subscribe p {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}
.subscribe-panel {
    display: none;
}
.subscribe-panel.active {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
    gap: 10px;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: var(--r-m);
    background: var(--card);
}
.buy-bar .subscribe-panel.active {
    position: absolute;
    right: var(--gutter);
    bottom: calc(100% + 8px);
    left: var(--gutter);
    box-shadow: var(--shadow);
}
/* copies of the main wishlist button, kept for main2.min.js */
.subscribe-panel .subscribe {
    display: none;
}
.subscribe-panel-notice,
.subscribe-panel-email {
    grid-column: 1 / -1;
}
.subscribe-panel-notice {
    color: var(--muted);
    font-size: 13px;
    line-height: 1.45;
}
/* shown by main2.min.js for guests */
.subscribe-panel-email {
    display: none;
}
.subscribe-panel-email input {
    display: block;
    width: 100%;
    min-height: 44px;
    padding: 0 14px;
    border: 1px solid var(--line);
    border-radius: var(--r-m);
    background: var(--card);
}
.subscribe-panel-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 0 14px;
    border: 1px solid transparent;
    border-radius: var(--r-m);
    background: var(--primary);
    color: #fff;
    font-weight: 800;
    text-align: center;
    cursor: pointer;
}
.subscribe-panel-btn:hover {
    background: var(--primary-hover);
}
.make-subscribe .subscribe-panel-btn {
    grid-column: 1 / -1;
}
.subscribe-panel-btn.unsub,
.subscribe-panel-btn.subed {
    border-color: var(--line);
    background: transparent;
    color: var(--text);
}
.subscribe-panel-btn.unsub:hover,
.subscribe-panel-btn.subed:hover {
    border-color: var(--muted);
    background: transparent;
}

/* Notices, spec list, help links */
.detail-happy-hour {
    display: flex;
    align-items: center;
    min-height: 44px;
    padding: 0 12px;
    border-radius: var(--r-m);
    background: var(--warn-bg);
    color: var(--warn);
    font-size: 13px;
    font-weight: 800;
}
.detail-happy-hour:hover {
    color: var(--warn);
    text-decoration: underline;
}
.product-warn {
    margin: 0;
    padding: 10px 12px;
    border-radius: var(--r-m);
    background: var(--warn-bg);
    color: var(--warn);
    font-size: 13px;
    font-weight: 700;
    line-height: 1.4;
    cursor: help;
}
.specification .description {
    display: grid;
    grid-template-columns: 104px minmax(0, 1fr);
    gap: 10px 12px;
    margin: 0;
    font-size: 13px;
    line-height: 1.45;
}
.description dt {
    color: var(--muted);
}
.description dd {
    margin: 0;
    font-weight: 600;
    overflow-wrap: anywhere;
}
.description dd a:not(.link-activation) {
    padding: 13px 0;
}
.description__links a + a {
    margin-left: 6px;
}
/* getActivation() prints icon-only links */
.description a.icon-steam:empty::before { content: "Steam"; }
.description a.icon-origin:empty::before { content: "Origin"; }
.description a.icon-uplay:empty::before { content: "Uplay"; }
.description a.icon-battlenet:empty::before { content: "Battle.net"; }
.description a.icon-xbox:empty::before { content: "Xbox"; }
.description a.icon-playstation:empty::before { content: "PlayStation"; }
.link-activation {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: var(--soft);
    color: var(--link);
    font-size: 12px;
    font-weight: 800;
    vertical-align: 1px;
}
.link-activation::after {
    content: "";
    position: absolute;
    top: -11px;
    right: -11px;
    bottom: -11px;
    left: -11px;
}
.stock--high { color: var(--good); }
.stock--mid { color: var(--text); }
.stock--low { color: var(--warn); }
.stock--none { color: var(--accent); }
.product-desc-btns {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 8px;
}
.product-detail-garantee,
.product-detail-howbuy {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 6px 10px;
    border-radius: 10px;
    background: var(--chip);
    color: var(--text);
    font-size: 13px;
    font-weight: 700;
    text-align: center;
}
.product-detail-garantee:hover,
.product-detail-howbuy:hover {
    background: var(--soft);
    color: var(--link);
}
.product-detail-simple {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 600;
    text-align: center;
}
.product-detail-simple:hover {
    color: var(--link);
}

/* Feature chips (GameController::getCategory prints supported features only) */
.product-detail > .types {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}
.types > div {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 10px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: var(--card);
    font-size: 12px;
    font-weight: 600;
    line-height: 1.3;
}
.types > div::before {
    content: "";
    flex: none;
    width: 14px;
    height: 14px;
    background: var(--good);
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* Purchase bonus (models/Coupon.php) */
.product-bonus-wrap {
    display: grid;
    gap: 10px;
}
.product-bonus {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: start;
    gap: 2px 12px;
    padding: 14px;
    border: 1px solid #f3c1cc;
    border-radius: var(--r-l);
    background: #fdecef;
}
.product-bonus-coupon {
    grid-row: span 2;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 56px;
    height: 56px;
    padding: 0 8px;
    border-radius: var(--r-m);
    background: var(--accent);
    color: #fff;
    font-size: 18px;
    font-weight: 800;
}
.product-bonus-coupon .steam::before {
    content: "Steam";
    font-size: 13px;
}
.product-bonus-title {
    font-weight: 800;
}
.product-bonus-desc {
    color: var(--muted);
    font-size: 13px;
    line-height: 1.5;
}

/* Tabs: main2.min.js hides/shows the panels with inline display */
.product-detail-desc {
    min-width: 0;
    border-radius: var(--r-l);
    background: var(--card);
}
.product-detail-tabs-btns {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    padding: 8px;
    border-bottom: 1px solid var(--line);
}
.product-detail-tabs-btns > div {
    display: inline-flex;
    flex: none;
    align-items: center;
    min-height: 44px;
    padding: 0 14px;
    border-radius: 10px;
    color: var(--muted);
    font-weight: 700;
    white-space: nowrap;
    cursor: pointer;
}
.product-detail-tabs-btns > div:hover {
    color: var(--link);
}
.product-detail-tabs-btns > .active {
    background: var(--soft);
    color: var(--link);
}
.product-detail-tabs {
    padding: 16px;
}
.product-detail-tabs > div:not(.active) {
    display: none;
}
/* jQuery .show() writes display:block inline; this panel is a grid */
.product-detail-tabs > .product-detail-tab-games[style*="block"] {
    display: grid !important;
}
.product-detail-tab-desc {
    line-height: 1.6;
    overflow-wrap: break-word;
}
.product-detail-tab-desc p {
    margin: 0 0 12px;
}
.product-detail-tab-desc img,
.product-detail-tab-desc iframe,
.product-detail-tab-desc video {
    max-width: 100%;
}
.product-detail-tab-desc img {
    height: auto;
}
.product-detail-tab-desc table {
    display: block;
    max-width: 100%;
    overflow-x: auto;
}
.product-detail-tab-desc hr,
.product-detail-tab-description hr {
    margin: 16px 0;
    border: 0;
    border-top: 1px solid var(--line);
}
.pink-panel {
    margin: 0 0 14px;
    padding: 12px 14px;
    border-radius: var(--r-m);
    background: var(--warn-bg);
    color: var(--warn);
    font-weight: 600;
    line-height: 1.5;
}
.white-panel {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr);
    align-items: start;
    gap: 4px 12px;
    margin: 0 0 14px;
    padding: 14px;
    border-radius: var(--r-m);
    background: var(--chip);
    font-size: 14px;
}
.product-detail-tabs .white-panel:last-child {
    margin: 16px 0 0;
}
.white-panel h3 {
    margin: 3px 0 4px;
    font-size: 15px;
}
.white-panel ul {
    grid-column: 2;
    margin: 0;
    padding-left: 18px;
}
.white-panel > span {
    color: var(--muted);
    font-size: 13px;
    line-height: 1.5;
}
.white-panel--warn {
    background: var(--warn-bg);
}
.white-panel--warn > span {
    color: var(--warn);
    font-weight: 600;
}
.white-panel-pic {
    grid-row: span 2;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--card);
    position: relative;
}
.white-panel-pic::before {
    content: "";
    position: absolute;
    top: 5px;
    left: 5px;
    width: 18px;
    height: 18px;
    background: var(--link);
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='9' width='16' height='11' rx='1.5'/%3E%3Cpath d='M12 9v11M3 9h18M12 9C10 5 6.5 4.5 6.5 7S10 9 12 9zm0 0c2-4 5.5-4.5 5.5-2S14 9 12 9z'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='9' width='16' height='11' rx='1.5'/%3E%3Cpath d='M12 9v11M3 9h18M12 9C10 5 6.5 4.5 6.5 7S10 9 12 9zm0 0c2-4 5.5-4.5 5.5-2S14 9 12 9z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.white-panel-pic.attention::before {
    background: var(--muted);
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7.5v5.5M12 16.5v.5'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7.5v5.5M12 16.5v.5'/%3E%3C/svg%3E");
}
.white-panel--warn .white-panel-pic.attention::before {
    background: var(--warn);
}
.white-panel-text {
    margin: 0 0 12px;
    line-height: 1.6;
}
/* hard line breaks from the template read badly at phone width */
.white-panel-text br {
    display: none;
}
.product-intab-text {
    margin: 12px 0 8px;
    font-weight: 700;
}
.product-intab-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 0 18px;
    border: 1px solid var(--line);
    border-radius: var(--r-m);
    color: var(--link);
    font-weight: 800;
}
.product-intab-btn:hover {
    border-color: var(--primary);
    color: var(--link);
}
.product-sys-req-tabs-btns {
    display: inline-flex;
    gap: 4px;
    margin: 0 0 8px;
    padding: 4px;
    border-radius: var(--r-m);
    background: var(--chip);
}
.product-sys-req-tabs-btns > div {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    padding: 0 16px;
    border-radius: 9px;
    color: var(--muted);
    font-weight: 700;
    cursor: pointer;
}
.product-sys-req-tabs-btns > .active {
    background: var(--card);
    color: var(--link);
    box-shadow: 0 1px 2px rgba(20, 26, 37, .08);
}
.product-sys-req-tabs > div {
    display: none;
}
.product-sys-req-tabs > .active {
    display: block;
}
.sys-req {
    display: grid;
    gap: 2px;
    padding: 10px 0;
    border-bottom: 1px solid var(--line);
}
.sys-req > span {
    color: var(--muted);
    font-size: 13px;
}
.sys-req > div {
    font-weight: 600;
    overflow-wrap: anywhere;
}
.product-detail-tab-system-req .product-intab-text {
    margin-top: 14px;
    font-weight: 600;
}

/* Tags under the tabs; the rest opens with .detail-tags-btn (main2.min.js toggles ul.active) */
.detail-tags {
    padding: 0 16px 16px;
}
.detail-tags ul {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.detail-tags-title {
    flex: 1 1 100%;
    color: var(--muted);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .04em;
}
.detail-tags li a,
.detail-tags-btn {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    padding: 6px 12px;
    border-radius: 22px;
    background: var(--chip);
    color: var(--text);
    font-size: 13px;
    font-weight: 600;
}
.detail-tags li a:hover {
    background: var(--soft);
    color: var(--link);
}
.detail-tags-btn {
    background: transparent;
    color: var(--link);
    font-weight: 800;
    cursor: pointer;
}
.detail-tags ul:not(.active) .detail-tags-btn ~ li {
    display: none;
}
.detail-tags ul.active .detail-tags-btn {
    order: 1;
}

/* Picture viewer, built by main2.min.js (imagePopup); it writes the picture as an inline `background` shorthand */
.image-popup {
    position: fixed;
    z-index: 110;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 16px;
}
.image-popup.image-popup-flex {
    display: flex;
}
.image-popup-overlay {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background: rgba(20, 26, 37, .88);
}
.image-popup-container {
    position: relative;
    width: min(1100px, 100%);
    aspect-ratio: 16 / 9;
    max-height: calc(100vh - 32px);
    background-position: center !important;
    background-repeat: no-repeat !important;
    background-size: contain !important;
}
.image-popup-prev,
.image-popup-next,
.image-popup-close {
    position: absolute;
    z-index: 1;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: rgba(255, 255, 255, .92);
    color: var(--text);
    cursor: pointer;
}
.image-popup-prev,
.image-popup-next {
    top: 50%;
    margin-top: -22px;
}
.image-popup-prev {
    left: 8px;
}
.image-popup-next {
    right: 8px;
}
.image-popup-close {
    top: 8px;
    right: 8px;
}
.image-popup-prev::before,
.image-popup-next::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 10px;
    height: 10px;
    margin: -5px 0 0 -3px;
    border: solid currentColor;
    border-width: 2px 0 0 2px;
    transform: rotate(-45deg);
}
.image-popup-next::before {
    margin-left: -7px;
    transform: rotate(135deg);
}
.image-popup-close::before,
.image-popup-close::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 18px;
    height: 2px;
    margin: -1px 0 0 -9px;
    border-radius: 1px;
    background: currentColor;
    transform: rotate(45deg);
}
.image-popup-close::after {
    transform: rotate(-45deg);
}

/* Under the product (views/game/_aside.php): similar games grid, advantages chips, then the giveaways slider (layouts/_game.php) */
.product-detail-aside {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 24px;
    margin: 32px 0 0;
}
.product-advantages__title {
    margin: 0 0 10px;
    font-size: 15px;
    font-weight: 800;
}
.product-detail-aside ~ .bottom-slider-container {
    margin-top: 16px;
}
/* «Name / Все …»: each part stays whole; when both don't fit beside the arrows, the link goes under the name */
.bottom-slider-container .card__title {
    flex-wrap: wrap;
    gap: 0 6px;
    white-space: nowrap;
}
.bottom-slider-container .card__title a {
    padding: 10px 0;
}

@media (min-width: 600px) {
    .sys-req {
        grid-template-columns: 180px minmax(0, 1fr);
        gap: 12px;
    }
}
@media (min-width: 900px) {
    .product-detail {
        grid-template-columns: minmax(0, 1fr) 360px;
        grid-template-areas:
            "head head"
            "media buy"
            "feat buy"
            "bonus buy"
            "tabs buy";
        gap: 16px 24px;
    }
    .product-detail > .header {
        grid-area: head;
    }
    .product-detail .product-preview {
        grid-area: media;
    }
    .product-detail .specification {
        grid-area: buy;
        position: sticky;
        top: 16px;
        gap: 14px;
        padding: 22px;
        border-radius: var(--r-xl);
    }
    .product-detail > .types {
        grid-area: feat;
    }
    .product-detail > .product-bonus-wrap {
        grid-area: bonus;
    }
    .product-detail > .product-detail-desc {
        grid-area: tabs;
    }
    .product-detail .title {
        font-size: 34px;
    }
    .product-detail .title--long {
        font-size: 26px;
    }
    .product-preview-items {
        border-radius: var(--r-xl);
    }
    .product-mini-preview-prev,
    .product-mini-preview-next {
        position: absolute;
        z-index: 2;
        top: 50%;
        display: block;
        width: 32px;
        height: 32px;
        margin-top: -16px;
        border-radius: 50%;
        background: rgba(255, 255, 255, .94);
        box-shadow: var(--shadow);
        color: var(--text);
        cursor: pointer;
    }
    .product-mini-preview-prev {
        left: 6px;
    }
    .product-mini-preview-next {
        right: 6px;
    }
    .product-mini-preview-prev::before,
    .product-mini-preview-next::before {
        content: "";
        position: absolute;
        top: 50%;
        left: 50%;
        width: 8px;
        height: 8px;
        margin: -4px 0 0 -2px;
        border: solid currentColor;
        border-width: 2px 0 0 2px;
        transform: rotate(-45deg);
    }
    .product-mini-preview-next::before {
        margin-left: -6px;
        transform: rotate(135deg);
    }
    .product-mini-preview-prev.swiper-button-disabled,
    .product-mini-preview-next.swiper-button-disabled {
        display: none;
    }
    .specification > .buy-zone {
        order: 0;
    }
    .buy-price {
        display: grid;
        grid-template-columns: auto 1fr;
        grid-template-areas:
            "price badge"
            "price old";
        align-items: end;
        gap: 4px 12px;
    }
    .buy-price .price {
        grid-area: price;
        font-size: 38px;
        line-height: 1;
    }
    .buy-price .discount {
        grid-area: badge;
        justify-self: start;
    }
    .buy-price .old-price {
        grid-area: old;
    }
    .buy-bar {
        position: static;
        flex-direction: column;
        align-items: stretch;
        gap: 10px;
        min-height: 0;
        padding: 0;
        border: 0;
        background: none;
        box-shadow: none;
    }
    body.has-buy-bar {
        padding-bottom: 0;
    }
    .buy-bar__price {
        display: none;
    }
    .buy-bar > .product-wish {
        order: 3;
    }
    .buy-bar > .subscribe-panel {
        order: 4;
    }
    .buy-bar .subscribe-panel.active {
        position: static;
        box-shadow: none;
    }
    .simple-buy-btn,
    .notavailable-btn {
        min-height: 56px;
        font-size: 17px;
    }
    .product-preorder-btn {
        position: relative;
    }
    .product-preorder-notice.full {
        right: 0;
        left: 0;
    }
    .product-wish .subscribe {
        width: 100%;
    }
    .product-wish .subscribe p {
        position: static;
        width: auto;
        height: auto;
        margin: 0;
        overflow: visible;
        clip: auto;
        white-space: normal;
    }
    .types > div {
        padding: 8px 12px;
        font-size: 13px;
    }
    .product-detail-desc {
        border-radius: var(--r-xl);
    }
    .product-detail-tabs-btns > div,
    .product-sys-req-tabs-btns > div {
        min-height: 40px;
    }
    .product-detail-tabs {
        padding: 20px 24px;
    }
    .detail-tags {
        padding: 0 24px 20px;
    }
    .detail-tags li a,
    .detail-tags-btn {
        min-height: 36px;
    }
}
@media (min-width: 1200px) {
    .product-detail {
        grid-template-columns: minmax(0, 1fr) 380px;
    }
}

/* ---------- Cart (views/buy/cart.php) ---------- */
/* Phone: one column, total + checkout button stick above the bottom nav. >=900: form | sticky summary */
.cart-page {
    max-width: 1120px;
    margin: 0 auto;
}
.cart > * + * {
    margin-top: 14px;
}
.cart .payment-types-title {
    margin: 0;
}
.cart__main {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 14px;
    min-width: 0;
}
.cart .card .title {
    margin: 0 0 10px;
    font-size: 16px;
    font-weight: 800;
}
.cart .clear {
    display: none;
}
.cart .alert {
    display: none;
    margin-top: 8px;
    padding: 10px 12px;
    border: 1px solid #f3c1cc;
    border-radius: var(--r-m);
    background: #fdecef;
    color: var(--accent);
    font-size: 13px;
    font-weight: 600;
}
.cart .alert--show {
    display: block;
}

/* Items: the row and its direct children are read by the page script (delete, quantity) */
.pay-product-main.card {
    padding-top: 4px;
    padding-bottom: 4px;
}
.pay-product-main--row {
    display: grid;
    grid-template-columns: 88px minmax(0, 1fr) auto auto;
    grid-template-areas:
        "img name name name"
        "qty qty price del";
    align-items: center;
    gap: 8px 12px;
    padding: 14px 0;
    border-bottom: 1px solid var(--line);
}
.pay-product-main--row:last-child {
    border-bottom: 0;
}
.pay-product-main--item.catalog-item__img {
    grid-area: img;
    align-self: start;
}
.pay-product-main .catalog-item__img a {
    display: block;
    overflow: hidden;
    border-radius: var(--r-s);
}
.pay-product-main .catalog-item__img img {
    display: block;
    width: 100%;
    aspect-ratio: 185 / 107;
    object-fit: cover;
    border-radius: var(--r-s);
    background: var(--chip);
}
.pay-product-main--item.catalog-item__name {
    grid-area: name;
    align-self: start;
    min-width: 0;
    font-weight: 800;
    line-height: 1.3;
}
.pay-product-main .catalog-item__name > a {
    color: var(--text);
}
.pay-product-main .catalog-item__name > a:hover {
    color: var(--link);
}
.pay-product-main .catalog-item__regions {
    margin-top: 4px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 500;
    line-height: 1.4;
}
.pay-product-main .catalog-item__error {
    display: inline-block;
    margin-top: 6px;
    padding: 3px 8px;
    border-radius: var(--r-s);
    background: #fdecef;
    color: var(--accent);
    font-size: 12px;
    font-weight: 700;
}
.pay-product-main--item.digit-field {
    grid-area: qty;
    justify-self: start;
}
.digit-field {
    display: inline-flex;
    align-items: stretch;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: var(--r-m);
    background: var(--card);
}
.digit-field-button {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    min-height: 44px;
    color: var(--text);
    font-size: 20px;
    font-weight: 700;
    cursor: pointer;
    user-select: none;
}
.digit-field-button:hover {
    background: var(--chip);
}
.digit-field-button.inactive {
    background: none;
    color: #9aa4b2;
    cursor: default;
}
.digit-field .quant_value {
    width: 40px;
    padding: 0;
    border: 0;
    background: transparent;
    font-size: 16px;
    font-weight: 700;
    text-align: center;
}
.pay-product-main--item.catalog-item__price {
    grid-area: price;
    justify-self: end;
    font-size: 17px;
    font-weight: 800;
    white-space: nowrap;
}
.pay-product-main--item.product__delete {
    grid-area: del;
    justify-self: end;
    margin-right: -10px;
}
/* the page script listens on the svg itself, so the svg is the whole hit area */
.product__delete svg {
    display: block;
    width: 44px;
    height: 44px;
    padding: 15px;
    border-radius: 50%;
    cursor: pointer;
}
.product__delete svg path {
    fill: var(--muted);
}
.product__delete svg:hover {
    background: var(--chip);
}

/* Payment method: pseudo select; the list is wrapped by jquery.scrollbar (.scroll-wrapper > .scroll-content, both keep the classes) */
.pay-options {
    display: grid;
    gap: 4px;
}
.payment-method-container {
    position: relative;
}
.payment-method-container > label {
    display: block;
    margin: 0 0 10px;
    font-size: 16px;
    font-weight: 800;
}
.pseudo-selector {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 52px;
    padding: 0 44px 0 10px;
    border: 1px solid var(--line);
    border-radius: var(--r-m);
    background: var(--card);
    cursor: pointer;
}
.pseudo-selector:hover {
    border-color: var(--muted);
}
.pseudo-selector::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 18px;
    width: 8px;
    height: 8px;
    margin-top: -6px;
    border: solid var(--muted);
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}
.pseudo-selector.opened::after {
    margin-top: -2px;
    transform: rotate(-135deg);
}
.payment-method {
    display: flex;
    align-items: center;
    min-height: 44px;
    padding-left: 52px;
    background-position: left center;
    background-repeat: no-repeat;
    background-size: 38px 25px;
    font-weight: 600;
    line-height: 1.3;
}
.pseudo-selector-list {
    display: none;
    position: absolute;
    z-index: 35;
    top: 100%;
    right: 0;
    left: 0;
    max-height: 320px;
    margin-top: 4px;
    overflow-y: auto;
    padding: 4px;
    border: 1px solid var(--line);
    border-radius: var(--r-m);
    background: var(--card);
    box-shadow: var(--shadow);
}
.pseudo-selector-list.scroll-content {
    max-height: 310px;
    box-shadow: none;
}
.pseudo-selector-list .payment-method {
    min-height: 48px;
    padding: 0 12px 0 64px;
    border-radius: var(--r-s);
    background-position: 14px center;
    cursor: pointer;
}
.pseudo-selector-list .payment-method:hover,
.pseudo-selector-list .payment-method.selected {
    background-color: var(--soft);
}
.payment-method.bln { background-image: url(/images/paysystems/icon-beeline.svg); }
.payment-method.s2pc { background-image: url(/images/paysystems/icon-bankcard.svg); }
.payment-method.rcc { background-image: url(/images/paysystems/icon-bankcard.svg); }
.payment-method.sbp { background-image: url(/images/paysystems/icon-sbp.svg); }
.payment-method.tbank { background-image: url(/images/paysystems/icon-tbank.svg); }
.payment-method.atm { background-image: url(/images/paysystems/icon-terminal.svg); }
.payment-method.megafon { background-image: url(/images/paysystems/icon-megafon.svg); }
.payment-method.mts { background-image: url(/images/paysystems/icon-mts.svg); }
.payment-method.qiwi { background-image: url(/images/paysystems/icon-qiwi.svg); }
.payment-method.tl2 { background-image: url(/images/paysystems/icon-tele2.svg); }
.payment-method.yandex { background-image: url(/images/paysystems/icon-yandex.svg); }
.payment-method.wmr { background-image: url(/images/paysystems/icon-webmoney.svg); }
.payment-method.moneta { background-image: url(/images/paysystems/icon-moneta.svg); }
.payment-method.alipay { background-image: url(/images/paysystems/icon-alipay.svg); }
.payment-method.unionpay { background-image: url(/images/paysystems/icon-unionpay.svg); }
.payment-method.wechat { background-image: url(/images/paysystems/icon-wechat.svg); }
.payment-method.sberpay { background-image: url(/images/paysystems/icon-sberpay.svg); }
.payment-method.yoomoney { background-image: url(/images/paysystems/icon-yoomoney.svg); }
.payment-method.account {
    background-image: url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIyIDQgMjEgMTYiIGhlaWdodD0iMTlweCIgd2lkdGg9IjE5cHgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0iI2Y2MzI1YyIgZD0iTTE5LDRINUEzLDMsMCwwLDAsMiw3VjE3YTMsMywwLDAsMCwzLDNIMTlhMywzLDAsMCwwLDMtM1Y3QTMsMywwLDAsMCwxOSw0Wm0xLDEwLjNIMTdhMi4zLDIuMywwLDAsMSwwLTQuNmgzWk0yMCw4SDE3YTQsNCwwLDAsMCwwLDhoM3YxYTEsMSwwLDAsMS0xLDFINWExLDEsMCwwLDEtMS0xVjdBMSwxLDAsMCwxLDUsNkgxOWExLDEsMCwwLDEsMSwxWm0tNCw0YTEsMSwwLDEsMCwxLTFBMSwxLDAsMCwwLDE2LDEyWiI+PC9wYXRoPjwvc3ZnPg==");
    background-size: 36px 22px;
}
.payment-method-hint {
    padding: 12px 14px;
    border-radius: var(--r-m);
    background: var(--soft);
    font-size: 13px;
    line-height: 1.5;
}
.payment-method-hint p {
    margin: 0 0 4px;
}
.payment-method-hint .payment-method-hint__img {
    margin-top: 8px;
}
.payment-method-hint img {
    max-width: 100%;
    height: auto;
}

/* Promo code and loyalty discount */
.promocode-hint {
    margin: 0 0 10px;
    color: var(--muted);
    font-size: 13px;
    line-height: 1.5;
}
.promocode-error-hint {
    display: none;
    margin: 0 0 10px;
    color: var(--accent);
    font-size: 13px;
}
.promocode-form {
    display: flex;
    gap: 8px;
}
.promocode-form input {
    flex: 1 1 auto;
    min-width: 0;
    min-height: 44px;
    padding: 0 14px;
    border: 1px solid var(--line);
    border-radius: var(--r-m);
    background: var(--card);
}
.promocode-button {
    display: inline-flex;
    flex: none;
    align-items: center;
    min-height: 44px;
    padding: 0 18px;
    border-radius: var(--r-m);
    background: var(--primary);
    color: #fff;
    font-weight: 800;
    cursor: pointer;
}
.promocode-button:hover {
    background: var(--primary-hover);
}
.promocode-value {
    display: flex;
    flex: 1 1 auto;
    align-items: center;
    min-width: 0;
    min-height: 44px;
    padding: 0 14px;
    border: 1px dashed var(--good);
    border-radius: var(--r-m);
    background: #eef8f1;
    color: var(--good);
    font-weight: 800;
    overflow-wrap: anywhere;
}
.promocode-remove-button {
    position: relative;
    flex: none;
    width: 44px;
    height: 44px;
    border-radius: var(--r-m);
    background: var(--chip);
    cursor: pointer;
}
.promocode-remove-button::before,
.promocode-remove-button::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 16px;
    height: 2px;
    margin: -1px 0 0 -8px;
    border-radius: 1px;
    background: var(--muted);
    transform: rotate(45deg);
}
.promocode-remove-button::after {
    transform: rotate(-45deg);
}
.discount-text {
    margin: 0 0 6px;
    color: var(--muted);
    font-size: 13px;
    line-height: 1.5;
}
.discount-list > br {
    display: none;
}
.discount-list {
    display: grid;
    margin: 0 0 10px;
}
.discount-row {
    display: flex;
    justify-content: space-between;
    padding: 6px 0;
    border-bottom: 1px solid var(--line);
    font-size: 14px;
}
.discount-value {
    font-weight: 800;
}
.discount-hint {
    padding: 10px 12px;
    border-radius: var(--r-m);
    background: var(--soft);
    font-size: 13px;
    line-height: 1.5;
}

/* Guest: e-mail, terms, captcha */
.tools--main {
    display: grid;
    gap: 16px;
}
.email-container input {
    display: block;
    width: 100%;
    min-height: 48px;
    margin: 0 0 8px;
    padding: 0 14px;
    border: 1px solid var(--line);
    border-radius: var(--r-m);
    background: var(--card);
}
.email-container p {
    margin: 0;
    font-weight: 700;
    overflow-wrap: anywhere;
}
.email-container #prev_button {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    margin-left: 6px;
    color: var(--link);
    text-decoration: underline;
    cursor: pointer;
}
.custom-checkbox__checkbox {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
}
.custom-checkbox__content {
    display: flex;
    align-items: flex-start;
    gap: 10px;
}
.custom-checkbox__custom {
    display: flex;
    flex: none;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    margin: -10px -6px -10px -10px;
    cursor: pointer;
}
.custom-checkbox__custom-box {
    display: block;
    width: 24px;
    height: 24px;
    border: 2px solid var(--muted);
    border-radius: 6px;
    background: var(--card);
}
.custom-checkbox__checkbox:checked + .custom-checkbox__content .custom-checkbox__custom-box {
    border-color: var(--primary);
    background: var(--primary) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7'/%3E%3C/svg%3E") center / 16px no-repeat;
}
.custom-checkbox__checkbox:focus-visible + .custom-checkbox__content .custom-checkbox__custom-box {
    outline: 2px solid var(--primary);
    outline-offset: 2px;
}
.custom-checkbox__label {
    font-size: 13px;
    line-height: 1.5;
}

/* Summary: sticks to the bottom on the phone, to the top of the right column from 900px */
.cart__summary {
    position: sticky;
    z-index: 30;
    bottom: calc(var(--bottom-nav-h) + env(safe-area-inset-bottom, 0px));
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 8px 12px;
    margin: 14px calc(var(--gutter) * -1) 0;
    padding: 10px var(--gutter);
    border-top: 1px solid var(--line);
    background: var(--card);
    box-shadow: 0 -4px 16px rgba(20, 26, 37, .06);
}
.cart__summary > .cart-error-container {
    grid-column: 1 / -1;
    order: -1;
}
.cart__summary .cart-error-container .alert {
    margin-top: 0;
}
.total-container {
    min-width: 0;
}
.total-container .title {
    margin: 0;
    font-size: 18px;
    font-weight: 800;
    line-height: 1.25;
}
.total-container .title span {
    margin-left: 6px;
}
.service-charge,
.promocode--notification,
.discount--notification,
.payment-fee--notification {
    margin: 2px 0 0;
    color: var(--muted);
    font-size: 12px;
    font-weight: 500;
    line-height: 1.35;
}
.service-charge {
    margin: 0 0 2px;
}
.pay-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 0 24px;
    border: 0;
    border-radius: 14px;
    background: var(--primary);
    color: #fff;
    font-size: 16px;
    font-weight: 800;
}
.pay-button:hover {
    background: var(--primary-hover);
}
.cart-empty {
    margin: 0;
    padding: 48px 16px;
    border-radius: var(--r-xl);
    background: var(--card);
    color: var(--muted);
    font-size: 18px;
    font-weight: 800;
    text-align: center;
}

@media (min-width: 600px) {
    .pay-product-main--row {
        grid-template-columns: 120px minmax(0, 1fr) auto auto 44px;
        grid-template-areas: "img name qty price del";
    }
    .pay-product-main--item.catalog-item__name {
        align-self: center;
    }
    .pay-product-main--item.product__delete {
        margin: 0;
    }
}
@media (min-width: 900px) {
    .cart {
        display: grid;
        grid-template-columns: minmax(0, 1fr) 340px;
        grid-template-areas:
            "title title"
            "main sum";
        gap: 20px 24px;
    }
    .cart > * + * {
        margin-top: 0;
    }
    .cart .payment-types-title {
        grid-area: title;
    }
    .cart__main {
        grid-area: main;
        gap: 16px;
    }
    .cart__summary {
        grid-area: sum;
        align-self: start;
        top: 16px;
        bottom: auto;
        grid-template-columns: minmax(0, 1fr);
        gap: 14px;
        margin: 0;
        padding: 20px;
        border: 0;
        border-radius: var(--r-xl);
        box-shadow: none;
    }
    .total-container .title {
        font-size: 24px;
    }
    .pay-button {
        width: 100%;
        min-height: 56px;
        font-size: 17px;
    }
    .digit-field-button {
        width: 36px;
        min-height: 36px;
    }
}

/* ---------- Catalog (views/site/search.php; FullSearch in main2.min.js drives the filters) ---------- */
/* Phone: filters sit in a full-height panel (site.js opens it). >=900: sticky left column 280px */
.catalog__head {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 2px 12px;
    margin: 0 0 12px;
}
.catalog__title {
    margin: 0;
}
.catalog__found {
    margin: 0;
    color: var(--muted);
    font-weight: 600;
}
.catalog__found .search-items {
    color: var(--text);
    font-weight: 800;
}
.catalog__search {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 12px;
}
.catalog__search-field {
    position: relative;
    display: flex;
    flex: 1 1 auto;
    align-items: center;
    min-width: 0;
    min-height: 48px;
    border: 1px solid var(--line);
    border-radius: var(--r-m);
    background: var(--card);
    color: var(--muted);
}
.catalog__search-field:focus-within {
    border-color: var(--primary);
    box-shadow: inset 0 0 0 1px var(--primary);
}
.catalog__search-field .i {
    position: absolute;
    left: 14px;
    pointer-events: none;
}
.catalog__search-field input {
    width: 100%;
    min-width: 0;
    min-height: 46px;
    padding: 0 14px 0 44px;
    border: 0;
    border-radius: var(--r-m);
    background: transparent;
    color: var(--text);
    outline: none;
}
.catalog__search-field input::placeholder,
.filter-search::placeholder,
.filter-select-input::placeholder {
    color: var(--muted);
    opacity: 1;
}
.catalog__search .search-page-top-reset {
    flex: none;
    padding: 0 12px;
}

/* Filters panel */
.catalog__filters {
    position: fixed;
    z-index: 90;
    top: 0;
    right: 0;
    bottom: 0;
    display: flex;
    flex-direction: column;
    width: min(100%, 420px);
    background: var(--card);
    box-shadow: 0 0 32px rgba(20, 26, 37, .2);
    transform: translateX(100%);
    visibility: hidden;
    transition: transform .25s ease, visibility 0s linear .25s;
}
.catalog__filters.is-open {
    transform: none;
    visibility: visible;
    transition: transform .25s ease;
}
.catalog__filters.is-open + .drawer-backdrop {
    opacity: 1;
    visibility: visible;
    transition: opacity .25s ease;
}
.catalog__filters-title {
    margin: 0;
    font-size: 18px;
}
.catalog__filters-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 0 16px 16px;
}
.catalog__filters-foot {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 8px;
    padding: 12px 16px calc(12px + env(safe-area-inset-bottom, 0px));
    border-top: 1px solid var(--line);
    background: var(--card);
}
.catalog__apply {
    gap: .25em;
}
.filter-group {
    padding: 16px 0;
    border-bottom: 1px solid var(--line);
}
.filter-group:last-child {
    border-bottom: 0;
}
.filter-group__title {
    display: block;
    margin: 0 0 10px;
    font-size: 14px;
    font-weight: 800;
}

/* Toggles: <i>/<span> with .active, set by main2.min.js (aria-pressed follows in site.js) */
.filter-toggles {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.filter-toggles > .chip,
.search-result-sort-types > .chip {
    font-style: normal;
    user-select: none;
}
.filter-toggles > .chip.active,
.search-result-sort-types > .chip.active {
    border-color: var(--primary);
    background: var(--primary);
    color: #fff;
}
.filter-toggles > .chip.active::before {
    content: "";
    width: 10px;
    height: 6px;
    margin: -3px 0 0;
    border: solid currentColor;
    border-width: 0 0 2px 2px;
    transform: rotate(-45deg);
}

/* Checkboxes: label > text + input + i; the input stays focusable, the <i> draws the box (tags: the chip) */
.filter-cb {
    position: relative;
}
.filter-cb label {
    position: relative;
    display: flex;
    align-items: center;
    cursor: pointer;
}
.filter-cb input {
    position: absolute;
    top: 50%;
    left: 0;
    width: 20px;
    height: 20px;
    margin: -10px 0 0;
    opacity: 0;
}
.filter-options {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 12px;
    margin-top: 10px;
}
.filter-cb120 label {
    min-height: 44px;
    padding-left: 30px;
    font-weight: 600;
    line-height: 1.25;
}
.filter-cb120 i {
    position: absolute;
    top: 50%;
    left: 0;
    width: 20px;
    height: 20px;
    margin-top: -10px;
    border: 2px solid var(--muted);
    border-radius: 6px;
    background: var(--card);
}
.filter-cb120 input:checked + i {
    border-color: var(--primary);
    background: var(--primary);
}
.filter-cb120 input:checked + i::after {
    content: "";
    position: absolute;
    top: 1px;
    left: 5px;
    width: 6px;
    height: 11px;
    border: solid #fff;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}
.filter-cb input:focus-visible + i {
    outline: 2px solid var(--primary);
    outline-offset: 2px;
}

/* Tags: built by main2.min.js from ?tags= JSON (.filter-cb175, .hidden over 14, "Показать больше") */
.filter-search,
.filter-select-input {
    width: 100%;
    min-height: 44px;
    padding: 0 14px;
    border: 1px solid var(--line);
    border-radius: var(--r-m);
    background: var(--card);
    color: var(--text);
}
.filter-search:focus,
.filter-select-input:focus {
    border-color: var(--primary);
    outline: none;
    box-shadow: inset 0 0 0 1px var(--primary);
}
.tags-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.filter-search + .tags-list:not(:empty) {
    margin-top: 12px;
}
.tags-list .filter-cb.hidden {
    display: none;
}
.filter-cb175 label {
    z-index: 0;
    min-height: 44px;
    padding: 0 14px;
    border-radius: 22px;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.2;
}
.filter-cb175 i {
    position: absolute;
    z-index: -1;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    border: 1px solid var(--line);
    border-radius: inherit;
    background: var(--card);
}
.filter-cb175 label:hover i {
    border-color: var(--primary);
}
.filter-cb175 input:checked + i {
    border-color: var(--primary);
    background: var(--soft);
}
/* white text needs :has(); without it the checked tag stays on the light fill above */
@supports selector(:has(*)) {
    .filter-cb175 input:checked + i {
        background: var(--primary);
    }
    .filter-cb175 label:has(input:checked) {
        color: #fff;
    }
}
.tags-list .gifts-users-show-more {
    min-height: 44px;
    border: 0;
    background: transparent;
}

/* Price: jQuery UI slider; main2.min.js puts <label> (value) + <input> (shown on dblclick, .active) in each handle */
.filter-price {
    padding: 18px 30px 6px;
}
/* «Нет в наличии» under the slider: clear of the handles, which hang 7px below .filter-price */
.filter-price + .filter-cb {
    margin-top: 14px;
}
.filter-slider {
    position: relative;
    height: 4px;
    border-radius: 2px;
    background: var(--line);
    touch-action: none;
}
.filter-slider .ui-slider-range {
    position: absolute;
    top: 0;
    height: 100%;
    border-radius: 2px;
    background: var(--primary);
}
.filter-slider .ui-slider-handle {
    position: absolute;
    z-index: 2;
    top: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 56px;
    height: 30px;
    margin: -15px 0 0 -28px;
    padding: 0 8px;
    border-radius: 15px;
    background: var(--primary);
    color: #fff;
    font-size: 13px;
    font-weight: 800;
    cursor: grab;
    touch-action: none;
}
/* 44px touch target around the 30px pill */
.filter-slider .ui-slider-handle::before {
    content: "";
    position: absolute;
    top: -7px;
    right: -4px;
    bottom: -7px;
    left: -4px;
}
.filter-slider .ui-slider-handle label {
    cursor: inherit;
}
.filter-slider .ui-slider-handle input {
    display: none;
    width: 64px;
    height: 30px;
    padding: 0 6px;
    border: 0;
    border-radius: 15px;
    background: transparent;
    color: var(--text);
    font-weight: 800;
    text-align: center;
    outline: none;
}
.filter-slider .ui-slider-handle.active {
    background: var(--card);
    box-shadow: inset 0 0 0 2px var(--primary);
}
.filter-slider .ui-slider-handle.active input {
    display: block;
}
.filter-slider .ui-slider-handle.active label {
    display: none;
}

/* Publisher: pseudo select; jquery.scrollbar (desktop, classic scrollbars) wraps the list and copies its classes to the wrapper */
.filter-select {
    position: relative;
}
.filter-select::after {
    content: "";
    position: absolute;
    top: 22px;
    right: 18px;
    width: 8px;
    height: 8px;
    margin-top: -6px;
    border: solid var(--muted);
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
    pointer-events: none;
}
.filter-select-input {
    padding-right: 40px;
    overflow: hidden;
    text-overflow: ellipsis;
    cursor: pointer;
}
.filter-select-list {
    display: none;
    position: absolute;
    z-index: 5;
    top: 100%;
    right: 0;
    left: 0;
    max-height: 300px;
    margin: 4px 0 0;
    overflow-y: auto;
    padding: 4px;
    list-style: none;
    border: 1px solid var(--line);
    border-radius: var(--r-m);
    background: var(--card);
    box-shadow: var(--shadow);
}
.filter-select-list.scroll-content {
    margin: 0;
    border-radius: 0;
    box-shadow: none;
}
.filter-select-list li {
    display: flex;
    align-items: center;
    min-height: 44px;
    padding: 6px 12px;
    border-radius: var(--r-s);
    line-height: 1.3;
    cursor: pointer;
}
.filter-select-list li:hover {
    background: var(--soft);
    color: var(--link);
}

/* Results: filters button (phone) + sort chips + direction; main2.min.js shows only the active direction */
.catalog__sort {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 8px;
    margin: 0 0 14px;
}
.catalog__filters-btn {
    background: var(--card);
}
.catalog__badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    height: 20px;
    padding: 0 6px;
    border-radius: 10px;
    background: var(--primary);
    color: #fff;
    font-size: 12px;
    font-weight: 800;
}
.catalog__badge[hidden] {
    display: none;
}
.catalog__sort-label {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}
.search-result-sort-title {
    margin-left: auto;
}
.search-result-sort-title > span {
    display: none;
}
.search-result-sort-title > .active {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 44px;
    padding: 0 12px;
    border-radius: var(--r-m);
    color: var(--link);
    font-weight: 700;
    cursor: pointer;
    user-select: none;
}
.search-result-sort-title > .active:hover {
    background: var(--soft);
}
.search-result-sort-title b {
    font-weight: inherit;
}
.search-result-sort-types {
    flex: 1 1 100%;
    order: 1;
}
.search-results > .show-before {
    margin-bottom: 4px;
}
.search-results > .show-next {
    margin-top: 8px;
}

/* Back to top: shown by main2.min.js when there are more than 7 results, faded in by site.js after a screen of scrolling */
.search-page-arrow {
    position: fixed;
    z-index: 35;
    right: 16px;
    bottom: calc(var(--bottom-nav-h) + env(safe-area-inset-bottom, 0px) + 16px);
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border: 1px solid var(--line);
    border-radius: 50%;
    background: var(--card);
    color: var(--text);
    box-shadow: var(--shadow);
    cursor: pointer;
    opacity: 0;
    visibility: hidden;
    transition: opacity .2s ease, visibility 0s linear .2s;
}
.search-page-arrow::before {
    content: "";
    width: 12px;
    height: 12px;
    margin-top: 6px;
    border: solid currentColor;
    border-width: 2px 0 0 2px;
    transform: rotate(45deg);
}
.search-page-arrow:hover {
    border-color: var(--primary);
    color: var(--link);
}
html.is-scrolled .search-page-arrow {
    opacity: 1;
    visibility: visible;
    transition: opacity .2s ease;
}

@media (min-width: 900px) {
    .catalog__head {
        margin-bottom: 16px;
    }
    .catalog__search {
        margin-bottom: 20px;
    }
    .catalog__layout {
        display: grid;
        grid-template-columns: 280px minmax(0, 1fr);
        align-items: start;
        gap: 24px;
    }
    /* top: under the sticky header (73px) */
    .catalog__filters {
        position: sticky;
        z-index: 1;
        top: 89px;
        right: auto;
        bottom: auto;
        width: auto;
        max-height: calc(100vh - 105px);
        overflow-y: auto;
        overscroll-behavior: contain;
        border-radius: var(--r-xl);
        box-shadow: none;
        transform: none;
        visibility: visible;
        transition: none;
    }
    .catalog__filters-head {
        padding: 16px 18px 4px;
        border-bottom: 0;
    }
    .catalog__filters-body {
        flex: none;
        overflow: visible;
        padding: 0 18px 6px;
    }
    .catalog__filters-close,
    .catalog__filters-foot,
    .catalog__backdrop,
    .catalog__filters-btn {
        display: none;
    }
    .filter-group {
        padding: 14px 0;
    }
    .filter-toggles {
        gap: 6px;
    }
    .filter-toggles > .chip {
        min-height: 34px;
        padding: 0 12px;
        font-size: 13px;
    }
    .filter-cb120 label {
        min-height: 34px;
        font-size: 13px;
    }
    .filter-cb175 label {
        min-height: 34px;
        padding: 0 12px;
        font-size: 13px;
    }
    .filter-search,
    .filter-select-input {
        min-height: 40px;
    }
    .filter-select::after {
        top: 20px;
    }
    .filter-select-list li {
        min-height: 36px;
    }
    .tags-list {
        gap: 6px;
    }
    .catalog__sort-label {
        position: static;
        width: auto;
        height: auto;
        overflow: visible;
        clip: auto;
        color: var(--muted);
        font-weight: 700;
    }
    /* one row in the 816px column: label, direction (icon only), chips */
    .search-result-sort-title {
        margin-left: 0;
    }
    .search-result-sort-title > .active {
        justify-content: center;
        width: 36px;
        min-height: 36px;
        padding: 0;
        border: 1px solid var(--line);
        background: var(--card);
    }
    .search-result-sort-title b {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip: rect(0 0 0 0);
        white-space: nowrap;
    }
    .search-result-sort-types {
        flex: 1 1 0;
        min-width: 0;
        margin: 0;
        padding: 0;
        gap: 4px;
    }
    .search-result-sort-types > .chip {
        min-height: 36px;
        padding: 0 10px;
        font-size: 13px;
    }
    .catalog__results .tiles {
        grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    }
    .search-page-arrow {
        right: 24px;
        bottom: 24px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .fixed-menu .logo .pic,
    .burger-menu,
    .burger-menu.active,
    .drawer-backdrop,
    .burger-menu.active + .drawer-backdrop,
    .tile,
    .filters__all > summary .i,
    .catalog__filters,
    .catalog__filters.is-open,
    .catalog__filters.is-open + .drawer-backdrop,
    .search-page-arrow,
    html.is-scrolled .search-page-arrow {
        transition: none;
    }
}

/* ---------- Profile (layouts/_profile.php, views/profile/*) ---------- */
/* The layouts print the same menu twice. Phone: the <details> dropdown above the page. >=900: the <nav> card in a sticky left column */
.account {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
}
.account__title {
    margin: 0;
    font-size: 22px;
}
.account__nav {
    display: none;
}
.account__drop {
    border: 1px solid var(--line);
    border-radius: var(--r-l);
    background: var(--card);
}
.account__drop-btn {
    display: flex;
    align-items: center;
    gap: 6px;
    min-height: 48px;
    padding: 10px 16px;
    border-radius: var(--r-l);
    font-size: 15px;
    font-weight: 800;
    list-style: none;
    cursor: pointer;
}
.account__drop-btn::-webkit-details-marker {
    display: none;
}
.account__drop-btn::after {
    content: "";
    flex: none;
    width: 9px;
    height: 9px;
    margin: -4px 4px 0 auto;
    border: solid var(--muted);
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}
.account__drop[open] > .account__drop-btn {
    border-bottom: 1px solid var(--line);
    border-radius: var(--r-l) var(--r-l) 0 0;
}
.account__drop[open] > .account__drop-btn::after {
    margin-top: 4px;
    transform: rotate(225deg);
}
.account__menu {
    display: flex;
    flex-direction: column;
    gap: 2px;
    margin: 0;
    padding: 6px;
    list-style: none;
}
.account__menu li {
    display: block;
    flex: none;
}
.account__sub {
    margin: 0;
    padding: 0;
    list-style: none;
}
.account__link {
    display: flex;
    align-items: center;
    gap: 6px;
    width: 100%;
    min-height: 44px;
    padding: 10px 12px;
    border-radius: var(--r-m);
    color: var(--text);
    font-size: 14px;
    font-weight: 600;
    line-height: 1.2;
}
.account__link:hover {
    background: var(--chip);
    color: var(--text);
}
.account__link.active {
    background: var(--soft);
    color: var(--link);
    font-weight: 800;
}
.account__link--sub {
    padding-left: 28px;
    font-weight: 500;
}
/* ZZ_User::getNotice(): <i title="новых событий">N</i> */
.account__link i,
.account__drop-btn i {
    min-width: 20px;
    height: 20px;
    padding: 0 6px;
    border-radius: 10px;
    background: var(--accent);
    color: #fff;
    font-size: 12px;
    font-style: normal;
    font-weight: 800;
    line-height: 20px;
    text-align: center;
}
.account__main {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-content: start;
    gap: 14px;
    min-width: 0;
}
@media (min-width: 900px) {
    .account {
        grid-template-columns: 240px minmax(0, 1fr);
        gap: 20px 24px;
        align-items: start;
    }
    .account__title {
        grid-column: 1 / -1;
        font-size: 30px;
    }
    .account__drop {
        display: none;
    }
    /* top: under the sticky header (73px) */
    .account__nav {
        display: block;
        position: sticky;
        top: 89px;
        padding: 8px;
        border-radius: var(--r-xl);
        background: var(--card);
    }
    .account__menu {
        flex-direction: column;
        gap: 2px;
        margin: 0;
        padding: 0;
        overflow: visible;
    }
    .account__menu li,
    .account__sub {
        display: block;
    }
    .account__link {
        display: flex;
        width: 100%;
        min-height: 40px;
        padding: 8px 12px;
        border: 0;
        border-radius: var(--r-m);
        background: transparent;
        white-space: normal;
    }
    .account__link:hover {
        background: var(--chip);
        color: var(--text);
    }
    .account__link.active {
        background: var(--soft);
        color: var(--link);
    }
    .account__link--sub {
        padding-left: 28px;
        font-size: 13px;
    }
    .account__link--exit {
        margin-top: 6px;
    }
}

/* Page text, titles, cards */
.account .profile-panel-title {
    margin: 0;
    font-size: 20px;
    font-weight: 800;
    line-height: 1.25;
}
.account .profile-gray-title,
.account .profile-message-title,
.account .partner-title {
    margin: 0 0 10px;
    font-size: 17px;
    font-weight: 800;
}
.account .partner-title {
    margin: 6px 0 0;
}
.account .card p {
    margin: 0 0 10px;
}
.account .card p:last-child {
    margin-bottom: 0;
}
.account .profile-panel-desc.card {
    display: grid;
    gap: 10px;
}
.account .new-red,
.unsubscribe-page .new-red {
    color: var(--accent);
    font-weight: 700;
}
.account .new-green {
    color: var(--good);
    font-weight: 700;
}
.profile-link-icon {
    display: inline-flex;
    align-items: center;
    justify-self: start;
    min-height: 44px;
    font-weight: 700;
}
@media (min-width: 900px) {
    .account .profile-panel-title {
        font-size: 22px;
    }
}

/* Messages and status badges */
.acc-alert {
    padding: 12px 14px;
    border: 1px solid #cfe0f3;
    border-radius: var(--r-m);
    background: var(--soft);
    font-size: 14px;
    font-weight: 600;
    overflow-wrap: anywhere;
}
.acc-alert--error {
    border-color: #f3c1cc;
    background: #fdecef;
    color: var(--accent);
}
.acc-alert--success {
    border-color: #bfe3cd;
    background: #e9f7ef;
    color: var(--good);
}
.acc-alert .errorMessage + .errorMessage,
.profile-flash .flash-success + .flash-success {
    margin-top: 6px;
}
.acc-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 3px 10px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 700;
    white-space: nowrap;
}
.acc-badge::before {
    content: "";
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: currentColor;
}
.acc-badge--ok {
    background: #e9f7ef;
    color: var(--good);
}
.acc-badge--back {
    background: var(--warn-bg);
    color: var(--warn);
}

/* Fields */
.account input[type="text"],
.account input[type="password"],
.account input[type="number"],
.account input[type="date"],
.account textarea {
    display: block;
    width: 100%;
    min-height: 48px;
    padding: 0 14px;
    border: 1px solid var(--line);
    border-radius: var(--r-m);
    background: var(--card);
    color: var(--text);
}
.account textarea {
    min-height: 120px;
    padding: 12px 14px;
    resize: vertical;
}
.account input:focus,
.account textarea:focus {
    border-color: var(--primary);
}
.account input[readonly] {
    background: var(--chip);
}
.profile-form {
    display: grid;
    gap: 16px;
}
.profile-input-container {
    display: grid;
    gap: 6px;
}
.profile-input-container > span:first-child,
.profile-input-container > label:first-child {
    font-size: 14px;
    font-weight: 700;
}
.profile-input-container > span:empty {
    display: none;
}
.profile-input-container p {
    margin: 6px 0 0;
    color: var(--muted);
    font-size: 13px;
}
.profile-input-container .errorMessage,
.profile-coupon-errors .errorMessage {
    margin-top: 6px;
    color: var(--accent);
    font-size: 13px;
    font-weight: 600;
}
.profile-input-wrap {
    position: relative;
    min-width: 0;
}
.profile-input-value {
    font-weight: 600;
    overflow-wrap: anywhere;
}
.profile-form__actions .btn {
    width: 100%;
}
@media (min-width: 700px) {
    .profile-input-container {
        grid-template-columns: 200px minmax(0, 1fr);
        column-gap: 16px;
        align-items: start;
    }
    .profile-input-container > span:first-child,
    .profile-input-container > label:first-child {
        padding-top: 13px;
    }
    .profile-input-container > span:empty {
        display: block;
    }
    .profile-form__actions {
        padding-left: 216px;
    }
    .profile-form__actions .btn {
        width: auto;
    }
}

/* Settings: avatars and upload (profile.js) */
.profile-avatar-select {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}
.profile-avatar-select i {
    position: relative;
    width: 64px;
    height: 64px;
    border: 3px solid transparent;
    border-radius: 50%;
    background-color: var(--chip);
    background-position: center;
    background-size: cover;
    cursor: pointer;
}
.profile-avatar-select i.active {
    border-color: var(--primary);
}
.profile-avatar-select i span {
    position: absolute;
    top: -8px;
    right: -8px;
    width: 28px;
    height: 28px;
    border: 1px solid var(--line);
    border-radius: 50%;
    background: var(--card);
    color: var(--accent);
    font-size: 12px;
    font-style: normal;
    font-weight: 800;
    line-height: 26px;
    text-align: center;
}
/* 44px touch target around the 28px circle */
.profile-avatar-select i span::after {
    content: "";
    position: absolute;
    top: -8px;
    right: -8px;
    bottom: -8px;
    left: -8px;
}
.profile-input-container input[type="file"] {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
}
.profile-input-container:focus-within .profile-file-upload-btn {
    outline: 2px solid var(--primary);
    outline-offset: 2px;
}
.profile-file-upload-btn {
    justify-self: start;
    cursor: pointer;
}
.profile-file-upload-btn i {
    order: 2;
    color: var(--muted);
    font-size: 12px;
    font-style: normal;
    font-weight: 600;
}
.popup.avatar .modal {
    max-width: 100%;
}
.popup.avatar .data {
    display: grid;
    justify-items: center;
    gap: 12px;
    margin-top: 12px;
}
.popup.avatar .profile-btn-save {
    min-height: 44px;
    padding: 0 18px;
    border: 0;
    border-radius: var(--r-m);
    background: var(--primary);
    color: #fff;
    font-weight: 800;
}

/* Tooltips: shown on hover or tap (focus); they span the row they belong to, so they never leave the screen */
.account .user-popup-notice {
    position: absolute;
    z-index: 20;
    top: calc(100% + 6px);
    right: 0;
    left: 0;
    display: none;
    padding: 8px 12px;
    border-radius: var(--r-m);
    background: var(--text);
    color: #fff;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.4;
}
.account .user-popup-notice p {
    margin: 0;
}
.account [tabindex]:hover > .user-popup-notice,
.account [tabindex]:focus > .user-popup-notice,
.profile-input-wrap:hover > .user-popup-notice,
.profile-input-wrap:focus-within > .user-popup-notice {
    display: block;
}

/* Profile page (index.php, member.php) */
.profile-card {
    display: grid;
    gap: 16px;
}
.profile-user-top {
    position: relative;
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr);
    gap: 14px;
    align-items: center;
}
.profile-user-photo {
    width: 72px;
    height: 72px;
    border-radius: 50%;
    background: var(--chip) center / cover no-repeat;
}
.profile-user-name {
    font-size: 18px;
    font-weight: 800;
    line-height: 1.3;
    overflow-wrap: anywhere;
}
.profile-user-name span {
    margin-left: 8px;
    padding: 2px 8px;
    border-radius: var(--r-s);
    background: var(--preorder);
    color: var(--text);
    font-size: 12px;
    vertical-align: middle;
}
.profile-user-status {
    color: var(--muted);
}
.profile-user-badges {
    display: flex;
    flex-wrap: wrap;
    grid-column: 1 / -1;
    gap: 8px;
}
.profile-user-badges > div,
.profile-panel-priority > .profile-user-priority {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-width: 44px;
    min-height: 44px;
    padding: 0 14px;
    border: 1px solid var(--line);
    border-radius: 22px;
    background: var(--card);
    color: var(--link);
    font-size: 16px;
    font-weight: 800;
    cursor: help;
}
.profile-user-level::before,
.profile-user-priority::before,
.profile-user-balance::before {
    content: "";
    width: 18px;
    height: 18px;
    background: center / contain no-repeat;
}
.profile-user-level::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231a6ab5' stroke-width='2' stroke-linejoin='round'%3E%3Cpath d='M12 3l2.7 5.6 6.1.9-4.4 4.3 1 6.1L12 17l-5.4 2.9 1-6.1-4.4-4.3 6.1-.9z'/%3E%3C/svg%3E");
}
.profile-user-priority::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231a6ab5' stroke-width='2' stroke-linejoin='round'%3E%3Cpath d='M13 2L4 14h7l-1 8 9-12h-7z'/%3E%3C/svg%3E");
}
.profile-user-balance::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231a6ab5' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='8'/%3E%3Cpath d='M12 8v8M9.5 10h4a1.5 1.5 0 0 1 0 3h-3a1.5 1.5 0 0 0 0 3h4'/%3E%3C/svg%3E");
}
.profile-user-info {
    position: relative;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}
.profile-user-info > div {
    padding: 12px;
    border-radius: var(--r-m);
    background: var(--bg);
}
.profile-user-info > div > span {
    display: block;
    font-size: 20px;
    font-weight: 800;
}
.profile-user-info-title {
    color: var(--muted);
    font-size: 13px;
    line-height: 1.35;
}
.profile-user-info > [tabindex] {
    cursor: help;
}
@media (min-width: 600px) {
    .profile-user-top {
        grid-template-columns: 96px minmax(0, 1fr) auto;
    }
    .profile-user-photo {
        width: 96px;
        height: 96px;
    }
    .profile-user-badges {
        grid-column: auto;
        justify-content: flex-end;
    }
    .profile-user-info {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}
@media (min-width: 1100px) {
    .profile-user-info {
        grid-template-columns: repeat(5, minmax(0, 1fr));
    }
}

/* Progress: the text above, the bar (profile.js animates the <i> to data-width %) on a track drawn as background */
.profile-achievement-meter,
.profile-achieve-meter {
    display: flex;
    flex-direction: column;
    gap: 6px;
    background: linear-gradient(var(--chip), var(--chip)) left bottom / 100% 10px no-repeat;
}
.profile-achievement-meter i,
.profile-achieve-meter i {
    display: block;
    order: 2;
    width: 0;
    height: 10px;
    border-radius: 5px;
    background: var(--primary);
}
.profile-achievement-meter span {
    font-size: 14px;
    font-weight: 700;
}
.profile-achieve-meter {
    position: relative;
    flex-direction: row;
    align-items: center;
    min-height: 20px;
    padding-right: 56px;
    background-position: left center;
    background-size: calc(100% - 56px) 8px;
}
.profile-achieve-meter i {
    height: 8px;
}
.profile-achieve-meter span {
    position: absolute;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
    color: var(--muted);
    font-size: 13px;
    font-weight: 700;
}

/* Coupons */
.account .coupon-buy-coupon-item {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 72px;
    min-height: 44px;
    padding: 0 12px;
    border: 2px dashed var(--primary);
    border-radius: var(--r-m);
    background: var(--soft);
    color: var(--link);
    font-size: 16px;
    font-weight: 800;
    white-space: nowrap;
}
.account .coupon-buy-coupon-item.old {
    border-color: #b9c2cf;
    background: var(--chip);
    color: var(--muted);
}
.profile-panel-priority {
    position: relative;
    display: flex;
}
.profile-coupon-activator {
    position: relative;
    display: grid;
    gap: 10px;
}
.account .profile-coupon-activator input {
    min-height: 52px;
    font-size: 18px;
    font-weight: 700;
}
.profile-coupon-activator i {
    position: absolute;
    top: 0;
    left: 15px;
    display: flex;
    align-items: center;
    height: 52px;
    color: var(--muted);
    font-style: normal;
    pointer-events: none;
}
.profile-coupon-activator input:focus + i,
.profile-coupon-activator .not-empty + i {
    display: none;
}
.profile-coupon-activator .btn {
    min-height: 52px;
}
.profile-coupon-errors:empty {
    display: none;
}
.faq-feedback-container {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    margin-top: 10px;
}
.faq-feedback-container .faq-feedback-captcha {
    width: 120px;
    height: 35px;
    background-repeat: no-repeat;
    cursor: pointer;
}
.account .faq-feedback-container .faq-feedback-code {
    flex: 1 1 160px;
    width: auto;
}
.profile-coupons-gift {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 16px;
}
.profile-coupons-gift .profile-gray-title {
    flex: 1 1 100%;
    margin: 0;
}
.profile-coupons-gift-block {
    display: flex;
    align-items: center;
    gap: 10px;
}
.profile-coupons-active,
.profile-coupons-history {
    display: grid;
    gap: 10px;
}
.profile-coupons-active-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px 24px;
}
.profile-coupons-active-desc {
    color: var(--muted);
    font-size: 13px;
}
.profile-coupons-active-time,
.profile-coupons-active-subdesc {
    font-weight: 700;
}
.account .timer {
    display: flex;
    gap: 6px;
    margin-top: 4px;
}
.account .timer-item {
    min-width: 46px;
    padding: 4px 6px;
    border-radius: var(--r-s);
    background: var(--bg);
    text-align: center;
}
.account .timer-time {
    font-weight: 800;
    font-variant-numeric: tabular-nums;
}
.account .timer-time-type {
    color: var(--muted);
    font-size: 11px;
}
@media (min-width: 600px) {
    .profile-coupon-activator {
        grid-template-columns: minmax(0, 1fr) auto;
    }
}

/* Prizes (the button is a sibling after each card; profile.js adds .active and writes the prize into its <span>) */
.profile-gift.card {
    display: grid;
    gap: 12px;
}
.profile-gift .gift {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px 8px;
    overflow: hidden;
    padding-bottom: 10px;
    border: 1px solid var(--line);
    border-radius: var(--r-l);
}
.profile-gift .gift-pic {
    flex: 1 1 100%;
    aspect-ratio: 185 / 107;
    background: var(--chip) center / cover no-repeat;
}
.profile-gift .gift-title {
    flex: 1 1 100%;
    padding: 4px 10px 0;
    font-weight: 700;
}
.profile-gift .gift-members {
    padding-left: 10px;
    font-weight: 800;
}
.profile-gift .gift-members-popup {
    color: var(--muted);
    font-size: 13px;
}
.profile-gift .gift-winners {
    flex: 1 1 100%;
    padding: 0 10px;
}
.profile-gift .gift-winners span {
    display: inline-block;
    padding: 2px 8px;
    border-radius: var(--r-s);
    background: #e9f7ef;
    color: var(--good);
    font-size: 13px;
    font-weight: 800;
}
.profile-gift-title {
    font-size: 18px;
    font-weight: 800;
}
.profile-gift-subtitle {
    color: var(--muted);
}
.profile-gift-name {
    font-weight: 700;
}
.profile-gift-date {
    color: var(--muted);
    font-size: 13px;
}
.profile-gift-date span {
    color: var(--text);
    font-weight: 700;
}
.profile-gift-btn {
    margin-top: 8px;
}
.profile-gift-btn > div {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 0 18px;
    border-radius: var(--r-m);
    background: var(--primary);
    color: #fff;
    font-weight: 800;
    letter-spacing: .3px;
    cursor: pointer;
}
.profile-gift-btn > div:hover {
    background: var(--primary-hover);
}
.profile-gift-btn > .is-won,
.profile-gift-btn > .is-won:hover {
    background: var(--good);
}
.profile-gift-btn > span {
    display: none;
    padding: 12px 14px;
    border-radius: var(--r-m);
    background: var(--card);
    overflow-wrap: anywhere;
}
.profile-gift-btn.active > span {
    display: block;
}
.profile-gift-btn.active > div {
    display: none;
}
@media (min-width: 700px) {
    .profile-gift.card {
        grid-template-columns: 240px minmax(0, 1fr);
        align-items: start;
    }
    .profile-gift .profile-gift-date {
        grid-column: 2;
    }
}

/* Achievements (Swiper with fade: the slides need their own background) */
.profile-achievements {
    display: grid;
    gap: 14px;
}
.profile-achievements-simple {
    position: relative;
}
.profile-achievements-simple .profile-gray-title,
.profile-slider .profile-gray-title {
    padding-right: 110px;
}
.profile-achievements-simple-hide {
    position: absolute;
    z-index: 2;
    top: 8px;
    right: 8px;
    display: flex;
    align-items: center;
    min-height: 44px;
    padding: 0 12px;
    border-radius: var(--r-m);
    color: var(--link);
    font-weight: 700;
    cursor: pointer;
}
.profile-achievements-simple-hide:hover {
    background: var(--soft);
}
.profile-achieve {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr);
    gap: 6px 12px;
    align-items: center;
    padding: 12px 0;
    border-top: 1px solid var(--line);
}
.profile-achieve-icon {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: var(--chip) center / 22px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235b6472' stroke-width='2' stroke-linejoin='round'%3E%3Cpath d='M12 3l2.7 5.6 6.1.9-4.4 4.3 1 6.1L12 17l-5.4 2.9 1-6.1-4.4-4.3 6.1-.9z'/%3E%3C/svg%3E");
}
.profile-achieve.completed .profile-achieve-icon {
    background-color: #e9f7ef;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231a7f45' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7'/%3E%3C/svg%3E");
}
.profile-achieve-desc {
    display: grid;
    gap: 2px;
    min-width: 0;
}
.profile-achieve-desc > span:first-child {
    font-weight: 700;
}
.profile-achieve-desc > span + span {
    color: var(--muted);
    font-size: 13px;
}
.profile-achive-prize {
    display: flex;
    grid-column: 2;
    align-items: center;
    gap: 8px;
}
.profile-achive-prize:empty {
    display: none;
}
.profile-achive-prize-title {
    color: var(--muted);
    font-size: 13px;
}
.profile-slider {
    position: relative;
    overflow: hidden;
}
.profile-slider .swiper-slide {
    background: var(--card);
}
.profile-slider-next,
.profile-slider-prev {
    position: absolute;
    z-index: 2;
    top: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border: 1px solid var(--line);
    border-radius: var(--r-m);
    background: var(--card);
    cursor: pointer;
}
.profile-slider-next {
    right: 8px;
}
.profile-slider-prev {
    right: 58px;
}
.profile-slider-next::before,
.profile-slider-prev::before {
    content: "";
    width: 9px;
    height: 9px;
    border: solid var(--text);
    border-width: 0 2px 2px 0;
}
.profile-slider-next::before {
    margin-right: 4px;
    transform: rotate(-45deg);
}
.profile-slider-prev::before {
    margin-left: 4px;
    transform: rotate(135deg);
}
.profile-slider .swiper-button-disabled {
    opacity: .4;
    cursor: default;
}
@media (min-width: 600px) {
    .profile-achieve {
        grid-template-columns: 44px minmax(0, 1fr) auto;
    }
    .profile-achive-prize {
        grid-column: auto;
    }
}

/* Messages, wishlist */
.profile-message-text {
    padding: 12px 0;
    border-top: 1px solid var(--line);
    overflow-wrap: anywhere;
}
.profile-message-text > span {
    display: block;
    color: var(--muted);
    font-size: 13px;
    font-weight: 600;
}
.subscribe-mail i {
    font-style: normal;
    font-weight: 700;
}

/* Tables (purchases, partner sales and transfers): rows become cards on the phone; scroll inside the card on desktop */
.purchases-container.card {
    overflow-x: auto;
}
.acc-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
}
.acc-table th {
    padding: 0 12px 10px 0;
    color: var(--muted);
    font-size: 13px;
    font-weight: 700;
    text-align: left;
    white-space: nowrap;
}
.acc-table td {
    padding: 12px 12px 12px 0;
    border-top: 1px solid var(--line);
    vertical-align: top;
}
.acc-table th:last-child,
.acc-table td:last-child {
    padding-right: 0;
}
.acc-table .name a {
    display: block;
    font-weight: 700;
}
.acc-table .name a + a {
    margin-top: 4px;
}
.acc-table .price,
.acc-table .reward {
    font-weight: 700;
    white-space: nowrap;
}
.acc-table .date,
.acc-table .quantity {
    white-space: nowrap;
}
.acc-table .purse {
    overflow-wrap: anywhere;
}
@media (max-width: 699px) {
    .acc-table,
    .acc-table tbody {
        display: block;
    }
    .acc-table .name a {
        display: flex;
        align-items: center;
        min-height: 44px;
    }
    .acc-table .name a + a {
        margin-top: 0;
    }
    .acc-table thead {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip: rect(0 0 0 0);
    }
    .acc-table tr {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 4px 14px;
        padding: 12px 0;
        border-top: 1px solid var(--line);
    }
    .acc-table tbody tr:first-child {
        padding-top: 0;
        border-top: 0;
    }
    .acc-table td {
        display: block;
        padding: 0;
        border: 0;
    }
    .acc-table td:first-child {
        flex: 1 1 100%;
    }
    .acc-table td[data-label]::before {
        content: attr(data-label) " ";
        color: var(--muted);
        font-weight: 500;
    }
    .acc-table td.status {
        margin-left: auto;
    }
}
/* Pager3: arrow-l is the "previous" link, arrow-r the "next" one; .inactive = no such page */
.pagination.new .pagination-arrow-l::before {
    margin: 0 0 0 4px;
    transform: rotate(135deg);
}
.pagination.new .pagination-arrow-r::before {
    margin: 0 4px 0 0;
    transform: rotate(-45deg);
}
.pagination.new .pagination-arrow.inactive {
    opacity: .45;
}

/* Partner program */
.partner-balance {
    font-weight: 800;
}
.partner-period {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 8px 10px;
    width: 100%;
}
.partner-period .btn {
    grid-column: 1 / -1;
}
/* iOS Safari: the native date field keeps its intrinsic width and sticks out of the card; let it shrink and draw it like the other fields */
.account .partner-period input[type="date"] {
    min-width: 0;
    -webkit-appearance: none;
    appearance: none;
}
.account .partner-period input[type="date"]::-webkit-date-and-time-value {
    text-align: left;
}
.partner-withdraw-hint {
    margin-top: 6px;
    color: var(--muted);
    font-weight: 700;
}
.partner-withdraw-hint:empty {
    display: none;
}
.account .profile-panel-desc .key-value {
    margin-top: 6px;
}
.partner-panel ol {
    margin: 0;
    padding-left: 20px;
}
.partner-panel li + li {
    margin-top: 6px;
}
.partner-panel .container-wide-desc-left {
    margin: 0 0 12px;
}
.partner-panel .container-wide-h2-left {
    margin: 18px 0 8px;
    font-size: 17px;
}
.partner-panel .profile-panel-title {
    margin-bottom: 10px;
}
.partner-panel .partner-panel__caps {
    font-size: 14px;
    text-transform: uppercase;
}
.partner-sample {
    color: var(--link);
    overflow-wrap: anywhere;
}
.partner-code {
    display: grid;
    justify-items: start;
    gap: 8px;
    margin: 4px 0 12px;
    padding: 14px 16px;
    border-radius: var(--r-l);
    background: var(--soft);
}
.partner-panel .partner-code p {
    margin: 0;
}
.partner-code > label[for] {
    font-weight: 700;
}
.partner-code .key-value,
.partner-code .acc-alert,
.partner-code__own {
    justify-self: stretch;
}
.partner-code__option {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 44px;
    font-weight: 600;
    cursor: pointer;
}
.partner-code__option input {
    flex: none;
    width: 20px;
    height: 20px;
    margin: 0;
    accent-color: var(--primary);
}
.partner-code .btn:disabled {
    opacity: .6;
    cursor: progress;
}
.container-wide-table--feed {
    width: 100%;
    border-collapse: collapse;
}
.container-wide-table--feed td {
    padding: 6px 12px 6px 0;
    vertical-align: top;
    overflow-wrap: anywhere;
}
.container-wide-table--feed td:first-child {
    color: var(--muted);
    white-space: nowrap;
}
.container-wide-table--feed .partner-feed__gap {
    height: 16px;
    padding: 0;
}
@media (min-width: 600px) {
    .partner-period {
        display: flex;
        flex-wrap: wrap;
    }
    .account .partner-period input[type="date"] {
        flex: 1 1 140px;
        width: auto;
    }
    .partner-period .btn {
        flex: none;
    }
}

/* Sign in, sign up, password reminder (main2.min.js regLogForm: .reg-log, .LoginForm*, .RegForm*, shows/hides the messages) */
.auth {
    width: 100%;
    max-width: 460px;
    padding: 20px 16px;
    border-radius: var(--r-xl);
    background: var(--card);
}
.auth__tabs {
    display: flex;
    gap: 4px;
    margin: 0 0 16px;
    padding: 4px;
    border-radius: var(--r-m);
    background: var(--chip);
}
.auth__tabs > * {
    display: flex;
    flex: 1 1 0;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    border-radius: 9px;
    color: var(--muted);
    font-weight: 800;
}
.auth__tabs > a:hover {
    color: var(--link);
}
.auth__tabs > .active {
    background: var(--card);
    color: var(--text);
    box-shadow: 0 1px 2px rgba(20, 26, 37, .1);
}
.auth__title {
    margin: 0 0 12px;
    font-size: 20px;
}
.auth__form .column {
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.auth__form p {
    margin: 0;
    color: var(--muted);
}
.auth .error,
.auth .success {
    display: none;
    padding: 10px 12px;
    border-radius: var(--r-m);
    background: #fdecef;
    color: var(--accent);
    font-size: 13px;
    font-weight: 600;
}
.auth .success {
    background: #e9f7ef;
    color: var(--good);
}
.auth .success.black {
    background: var(--bg);
    color: var(--text);
}
.auth .hide,
.auth .LoginForm_prev {
    display: none;
}
.auth .email-main {
    display: flex;
    flex-direction: column;
}
.auth .LoginForm_prev {
    align-self: flex-start;
    padding: 12px 0;
    color: var(--link);
    font-weight: 700;
    cursor: pointer;
}
.auth .remind-link a,
.auth__back {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    font-weight: 700;
}
.auth__back {
    align-self: center;
    padding: 0 12px;
}
.auth__agree {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 13px;
    line-height: 1.5;
}
.auth__agree input {
    flex: none;
    width: 22px;
    height: 22px;
    margin: 0;
    accent-color: var(--primary);
}
@media (min-width: 600px) {
    .auth {
        padding: 28px;
    }
}
/* reCAPTCHA is 304px wide */
@media (max-width: 359px) {
    .auth #recaptcha-container {
        transform: scale(.85);
        transform-origin: 0 0;
    }
}

/* Purchase: keys first, then the invoice, help, review and support */
.purchase {
    display: grid;
    gap: 14px;
}
.purchase__back {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    justify-self: start;
    min-height: 44px;
    font-weight: 700;
}
.purchase__back::before {
    content: "";
    width: 8px;
    height: 8px;
    border: solid currentColor;
    border-width: 0 2px 2px 0;
    transform: rotate(135deg);
}
.purchase .segmented {
    justify-self: start;
}
.purchase-keys-container > * + * {
    margin-top: 12px;
}
.purchase-keys-container.bonus-keys {
    display: none;
}
.purchase-key.card {
    display: grid;
    gap: 12px;
    box-shadow: var(--shadow);
}
.purchase-key .key-name {
    margin: 0;
    font-size: 18px;
    font-weight: 800;
    line-height: 1.3;
    overflow-wrap: anywhere;
}
.purchase-key--bundled.card {
    border-left: 4px solid var(--soft);
    box-shadow: none;
}
.purchase-key--bundled .key-name {
    font-size: 15px;
}
.key-notice {
    padding: 10px 12px;
    border-radius: var(--r-m);
    background: var(--warn-bg);
    color: var(--warn);
    font-size: 13px;
    font-weight: 600;
}
.account .key-value {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
}
.account .key-value input {
    flex: 1 1 240px;
    min-width: 0;
}
.key-copy {
    flex: 1 1 100%;
}
.key-copy.is-done,
.key-copy.is-done:hover {
    border-color: var(--good);
    background: var(--good);
    color: #fff;
}
.account .purchase-key .key-value input {
    flex: 1 1 calc(35ch + 24px);
    min-height: 56px;
    padding: 0 10px;
    border: 2px dashed #8fb8e3;
    background: var(--soft);
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, 'Liberation Mono', monospace;
    font-size: 16px;
    font-weight: 700;
}
.purchase-key .key-copy {
    min-height: 56px;
}
.purchase-key .key-value.photo a {
    font-size: 16px;
    font-weight: 700;
    overflow-wrap: anywhere;
}
.purchase-key .key-gift,
.purchase-key .key-preorder {
    display: block;
    padding: 12px 14px;
    border-radius: var(--r-m);
}
.purchase-key .key-gift {
    background: var(--warn-bg);
    color: var(--warn);
}
.purchase-key .key-gift p {
    margin: 0 0 6px;
}
.purchase-key .key-gift p:first-child {
    font-weight: 800;
}
.purchase-key .key-gift p:last-child {
    margin: 0;
    color: var(--text);
}
.purchase-key .key-preorder {
    background: var(--soft);
}
.purchase-key .key-preorder p {
    margin: 0;
}
.purchase-button {
    width: 100%;
}
.purchase-wait.card {
    background: var(--soft);
    font-weight: 600;
}
.purchase__info {
    display: grid;
    gap: 14px;
}
.purchase-details dl {
    display: grid;
    gap: 12px;
    margin: 0;
}
.purchase-details dl > div {
    display: grid;
    gap: 2px;
}
.purchase-details dt {
    color: var(--muted);
    font-size: 13px;
    font-weight: 600;
}
.purchase-details dd {
    margin: 0;
    font-weight: 600;
    overflow-wrap: anywhere;
}
.purchase-help ul {
    margin: 0;
    padding: 0;
    list-style: none;
}
.purchase-help li + li {
    border-top: 1px solid var(--line);
}
.purchase-help a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    min-height: 44px;
    font-weight: 700;
}
.purchase-help a::after {
    content: "";
    flex: none;
    width: 8px;
    height: 8px;
    border: solid currentColor;
    border-width: 0 2px 2px 0;
    transform: rotate(-45deg);
}
.purchase-discount summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-height: 44px;
    list-style: none;
    cursor: pointer;
}
.account .purchase-discount .profile-panel-title {
    font-size: 17px;
}
.purchase-discount summary::-webkit-details-marker {
    display: none;
}
.purchase-discount summary::after {
    content: "";
    flex: none;
    width: 9px;
    height: 9px;
    margin-top: -4px;
    border: solid var(--muted);
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}
.purchase-discount[open] summary::after {
    margin-top: 4px;
    transform: rotate(225deg);
}
.purchase-discount .discount {
    display: grid;
    gap: 14px;
    margin-top: 12px;
}
.discount-hint {
    padding: 12px 14px;
    border-radius: var(--r-m);
    background: var(--soft);
}
.discount-list {
    display: grid;
    gap: 6px;
}
.discount-text {
    margin-bottom: 4px;
    color: var(--muted);
}
.discount-row {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 8px 12px;
    border-radius: var(--r-s);
    background: var(--bg);
}
.discount-value {
    font-weight: 800;
}
.purchase-talk {
    display: grid;
    gap: 14px;
}
.purchase-talk .blue-tab-content > * + *,
.purchase-review-rating {
    margin-top: 12px;
}
.purchase-talk .blue-tab-content p {
    margin: 0 0 10px;
}
.purchase-rating {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 10px;
}
.purchase-rating-radio {
    position: relative;
}
.purchase-rating-radio input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
}
.purchase-rating-label {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 44px;
    padding: 0 16px;
    border: 1px solid var(--line);
    border-radius: 22px;
    background: var(--card);
    font-weight: 700;
    cursor: pointer;
}
.purchase-rating-label::before {
    content: "";
    width: 18px;
    height: 18px;
    background: center / contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231a7f45' stroke-width='2' stroke-linejoin='round'%3E%3Cpath d='M7 11v9H4v-9h3zm0 0l4-8a2 2 0 0 1 2 2v4h5a2 2 0 0 1 2 2.3l-1.3 7A2 2 0 0 1 16.7 20H7'/%3E%3C/svg%3E");
}
.purchase-rating-radio.bad .purchase-rating-label::before {
    transform: rotate(180deg);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23d4163f' stroke-width='2' stroke-linejoin='round'%3E%3Cpath d='M7 11v9H4v-9h3zm0 0l4-8a2 2 0 0 1 2 2v4h5a2 2 0 0 1 2 2.3l-1.3 7A2 2 0 0 1 16.7 20H7'/%3E%3C/svg%3E");
}
.purchase-rating-radio input:focus-visible + label {
    outline: 2px solid var(--primary);
    outline-offset: 2px;
}
.purchase-rating-radio.good input:checked + label,
#purchase-review-view .purchase-rating-radio.good .purchase-rating-label {
    border-color: var(--good);
    background: #e9f7ef;
    color: var(--good);
}
.purchase-rating-radio.bad input:checked + label,
#purchase-review-view .purchase-rating-radio.bad .purchase-rating-label {
    border-color: var(--accent);
    background: #fdecef;
    color: var(--accent);
}
#purchase-review-view .purchase-rating-label {
    cursor: default;
}
.purchase-review {
    display: grid;
    gap: 10px;
}
.purchase-review .btn,
.purchase-support-button {
    width: 100%;
}
.purchase-review-title {
    font-weight: 800;
}
.purchase-talk .purchase-review-title {
    margin: 0;
}
.purchase-review-description {
    padding: 12px 14px;
    border-radius: var(--r-m);
    background: var(--bg);
    overflow-wrap: anywhere;
}
.purchase-review-delimiter {
    height: 1px;
    background: var(--line);
}
.purchase-review-delimiter:last-child {
    display: none;
}
.purchase-support {
    display: grid;
    gap: 12px;
}
.purchase-support-message {
    max-width: 92%;
    padding: 10px 14px;
    border-radius: var(--r-l);
}
.purchase-support-message.user {
    justify-self: end;
    border-bottom-right-radius: 4px;
    background: var(--soft);
}
.purchase-support-message.admin {
    justify-self: start;
    border: 1px solid var(--line);
    border-bottom-left-radius: 4px;
    background: var(--card);
}
.purchase-support-name {
    font-size: 13px;
    font-weight: 800;
}
.purchase-support-date {
    color: var(--muted);
    font-size: 12px;
}
.purchase-support-content {
    margin-top: 6px;
    overflow-wrap: anywhere;
}
.purchase-support-screenshot img {
    margin-top: 8px;
    border-radius: var(--r-s);
}
.purchase-support-form form {
    display: grid;
    gap: 10px;
}
/* the file input covers the whole dashed box: click or drop a file anywhere on it */
.upload-container {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 12px;
    padding: 12px;
    border: 1px dashed #b9c2cf;
    border-radius: var(--r-m);
}
.upload-container input[type="file"] {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
}
.upload-container:focus-within {
    outline: 2px solid var(--primary);
    outline-offset: 2px;
}
.upload-hint {
    color: var(--muted);
    font-size: 13px;
}
#upload-filename {
    flex: 1 1 100%;
    font-size: 13px;
    font-weight: 600;
    overflow-wrap: anywhere;
}
#upload-filename:empty {
    display: none;
}
@media (min-width: 600px) {
    .key-copy,
    .purchase-button,
    .purchase-review .btn,
    .purchase-support-button {
        flex: none;
        justify-self: start;
        width: auto;
    }
    .key-copy {
        min-width: 160px;
    }
    .purchase-details dl > div {
        grid-template-columns: 170px minmax(0, 1fr);
        gap: 12px;
    }
}
@media (min-width: 700px) {
    .purchase-discount .discount {
        grid-template-columns: 220px minmax(0, 1fr);
        align-items: start;
    }
    .purchase-support-message {
        max-width: 80%;
    }
}
@media (min-width: 900px) {
    .account .purchase-key .key-value input {
        font-size: 20px;
    }
}
@media (min-width: 1100px) {
    .purchase__info {
        grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
        align-items: start;
    }
}

/* Unsubscribe pages from e-mail links (layouts/_simple.php) */
.unsubscribe-page {
    max-width: 640px;
    font-size: 16px;
    font-weight: 700;
}

/* ---------- Content pages: page head and text from the database (.prose) ---------- */
.page-head {
    display: grid;
    gap: 8px;
    margin: 0 0 16px;
}
.page-head__title {
    margin: 0;
    font-size: 24px;
    overflow-wrap: anywhere;
}
/* text from the database still names the old site fonts (Proxima Nova, Open Sans), which are no longer loaded */
.site-main [style*="font-family"] {
    font-family: inherit !important;
}
/* titles stored in the database carry their own inline font styles */
.page-head__title [style] {
    font-size: inherit !important;
    font-weight: inherit !important;
}
.page-head__lead {
    max-width: 760px;
    margin: 0;
    color: var(--muted);
}
.page-head__lead p {
    margin: 0 0 8px;
}
.page-head__lead > :last-child,
.page-head__lead p:last-child {
    margin-bottom: 0;
}
@media (min-width: 900px) {
    .page-head {
        margin-bottom: 20px;
    }
    .page-head__title {
        font-size: 30px;
    }
}

.prose {
    min-width: 0;
    font-size: 15px;
    line-height: 1.6;
    overflow-wrap: break-word;
}
.prose p,
.prose ul,
.prose ol,
.prose dl,
.prose table,
.prose blockquote,
.prose pre,
.prose figure {
    margin: 0 0 12px;
}
.prose h1,
.prose h2,
.prose h3,
.prose h4,
.prose h5,
.prose h6 {
    margin: 22px 0 8px;
    line-height: 1.3;
}
.prose h1 { font-size: 22px; }
.prose h2 { font-size: 20px; }
.prose h3 { font-size: 17px; }
.prose h4,
.prose h5,
.prose h6 { font-size: 15px; }
.prose > :first-child,
.prose .static > :first-child,
.prose .container-wide-desc-left > :first-child {
    margin-top: 0;
}
.prose > :last-child,
.prose .static > :last-child,
.prose .container-wide-desc-left > :last-child {
    margin-bottom: 0;
}
.prose ul,
.prose ol {
    padding-left: 22px;
}
.prose li + li {
    margin-top: 4px;
}
.prose li > ul,
.prose li > ol {
    margin: 4px 0 0;
}
.prose a {
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 2px;
}
.prose a:hover {
    text-decoration-thickness: 2px;
}
.prose a.btn {
    text-decoration: none;
}
.prose b,
.prose strong,
.prose .hard {
    font-weight: 800;
}
.prose hr {
    margin: 18px 0;
    border: 0;
    border-top: 1px solid var(--line);
}
.prose img {
    max-width: 100%;
    height: auto;
    border-radius: var(--r-s);
}
.prose iframe,
.prose video,
.prose embed,
.prose object {
    display: block;
    max-width: 100%;
}
/* the editor stores embeds with fixed width/height attributes or inline sizes */
.prose iframe,
.prose video {
    width: 100%;
    height: auto !important;
    aspect-ratio: 16 / 9;
    border: 0;
    border-radius: var(--r-m);
}
/* a wide table scrolls inside the text instead of widening the page */
.prose table {
    display: block;
    max-width: 100%;
    overflow-x: auto;
    border-collapse: collapse;
    font-size: 14px;
}
.prose th,
.prose td {
    padding: 8px 10px;
    border: 1px solid var(--line);
    text-align: left;
    vertical-align: top;
}
.prose th {
    background: var(--chip);
    font-weight: 800;
}
.prose blockquote {
    padding: 10px 14px;
    border-left: 3px solid var(--primary);
    border-radius: 0 var(--r-m) var(--r-m) 0;
    background: var(--soft);
}
.prose pre {
    overflow-x: auto;
    padding: 12px;
    border-radius: var(--r-m);
    background: var(--chip);
    font-size: 13px;
}
/* Old editor markup kept in the database (help pages, news, offers) */
.prose .container-wide-title-left,
.prose .container-wide-title {
    margin: 22px 0 8px;
    font-size: 20px;
    font-weight: 800;
    line-height: 1.3;
}
.prose .container-wide-desc-left,
.prose .container-wide-desc {
    margin: 0 0 12px;
}
.prose .container-wide-gray {
    margin: 16px 0;
    padding: 14px 16px;
    border-radius: var(--r-l);
    background: var(--bg);
}
.prose .container-wide-gray > :first-child {
    margin-top: 0;
}
.prose .faq-ok-string {
    position: relative;
    margin: 8px 0 0;
    padding-left: 30px;
    font-weight: 600;
}
.prose .faq-ok-string::before {
    content: "";
    position: absolute;
    top: 2px;
    left: 0;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: var(--good) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 12px no-repeat;
}
.prose .profile-btn,
.prose .faq-test-buy-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 44px;
    padding: 0 18px;
    border: 0;
    border-radius: var(--r-m);
    background: var(--primary);
    color: #fff;
    font-size: 15px;
    font-weight: 800;
    line-height: 1.2;
    text-decoration: none;
    cursor: pointer;
}
.prose .profile-btn:hover,
.prose .faq-test-buy-link:hover {
    background: var(--primary-hover);
    color: #fff;
}
/* Warranty text (database): the retired «Новости сайта» button */
.prose .excursion {
    display: none;
}
/* Activation: platform tiles (/faq/activation/) */
.prose .faq-activation {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin: 12px 0 16px;
}
.prose .faq-activation-row,
.prose .faq-activation-row-simple {
    display: contents;
}
.prose .faq-activation a {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 52px;
    padding: 8px 12px;
    border: 1px solid var(--line);
    border-radius: var(--r-m);
    background: var(--card);
    color: var(--text);
    font-weight: 800;
    line-height: 1.25;
    text-align: center;
    text-decoration: none;
}
.prose .faq-activation a:hover {
    border-color: var(--primary);
    color: var(--link);
}
@media (min-width: 600px) {
    .prose .faq-activation {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}
/* Warranty: facts grid. main2.min.js toggles .active on a tap; site.js opens the tile's text
   in .faq-nav-panel right under the tile's row, the tile stays in place */
.prose .faq-nav {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    gap: 8px;
    margin: 14px 0;
}
.prose .faq-nav-icon {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    padding: 12px 10px;
    border: 1px solid var(--line);
    border-radius: var(--r-m);
    background: var(--card);
    text-align: center;
    cursor: pointer;
}
.prose .faq-nav-icon:hover,
.prose .faq-nav-icon.active {
    border-color: var(--primary);
}
.prose .faq-nav-icon.active {
    background: var(--soft);
}
.prose .faq-nav-icon > div {
    display: grid;
    place-items: center;
    width: 52px;
    height: 52px;
    margin-bottom: 6px;
    border-radius: 50%;
    background: var(--soft);
}
.prose .faq-nav-icon.active > div {
    background: var(--card);
}
/* The database text gives each tile two pictures, <i style="background: url(/images/faq/faq9/N.png)">, plain and hover.
   One Lucide icon (lucide.dev, ISC licence) replaces them: a mask painted --link, chosen by the picture's file name;
   !important beats the inline background */
/* Lucide icons (lucide-static 1.51.0): Copyright (c) 2026 Lucide Icons and Contributors. ISC License:
   Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby
   granted, provided that the above copyright notice and this permission notice appear in all copies.
   THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
   IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
   INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
   ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
   OF THIS SOFTWARE. */
.prose .faq-nav-icon-hover {
    display: none;
}
.prose .faq-nav-icon-nothover {
    --faq-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='m16 9-5.5 5.5L8 12'/%3E%3C/svg%3E");
    width: 26px;
    height: 26px;
    background: var(--link) !important;
    -webkit-mask: var(--faq-icon) center / contain no-repeat;
    mask: var(--faq-icon) center / contain no-repeat;
}
.prose .faq-nav-icon-nothover[style*="faq9/1.png"] {
    --faq-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 2v3'/%3E%3Cpath d='M16 2v3'/%3E%3Crect x='3' y='3' width='18' height='18' rx='2'/%3E%3Cpath d='M3 9h18'/%3E%3Cpath d='m9 15 2 2 4-4'/%3E%3C/svg%3E");
}
.prose .faq-nav-icon-nothover[style*="faq9/2.png"] {
    --faq-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='6' x2='10' y1='11' y2='11'/%3E%3Cline x1='8' x2='8' y1='9' y2='13'/%3E%3Cline x1='15' x2='15.01' y1='12' y2='12'/%3E%3Cline x1='18' x2='18.01' y1='10' y2='10'/%3E%3Cpath d='M17.32 5H6.68a4 4 0 0 0-3.978 3.59c-.006.052-.01.101-.017.152C2.604 9.416 2 14.456 2 16a3 3 0 0 0 3 3c1 0 1.5-.5 2-1l1.414-1.414A2 2 0 0 1 9.828 16h4.344a2 2 0 0 1 1.414.586L17 18c.5.5 1 1 2 1a3 3 0 0 0 3-3c0-1.545-.604-6.584-.685-7.258-.007-.05-.011-.1-.017-.151A4 4 0 0 0 17.32 5z'/%3E%3C/svg%3E");
}
.prose .faq-nav-icon-nothover[style*="faq9/4.png"] {
    --faq-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z'/%3E%3Cpath d='M7.5 9.5c0 .687.265 1.383.697 1.844l3.009 3.264a1.14 1.14 0 0 0 .407.314 1 1 0 0 0 .783-.004 1.14 1.14 0 0 0 .398-.31l3.008-3.264A2.77 2.77 0 0 0 16.5 9.5 2.5 2.5 0 0 0 12 8a2.5 2.5 0 0 0-4.5 1.5'/%3E%3C/svg%3E");
}
.prose .faq-nav-icon-nothover[style*="faq9/3.png"] {
    --faq-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m11 17 2 2a1 1 0 1 0 3-3'/%3E%3Cpath d='m14 14 2.5 2.5a1 1 0 1 0 3-3l-3.88-3.88a3 3 0 0 0-4.24 0l-.88.88a1 1 0 1 1-3-3l2.81-2.81a5.79 5.79 0 0 1 7.06-.87l.47.28a2 2 0 0 0 1.42.25L21 4'/%3E%3Cpath d='m21 3 1 11h-2'/%3E%3Cpath d='M3 3 2 14l6.5 6.5a1 1 0 1 0 3-3'/%3E%3Cpath d='M3 4h8'/%3E%3C/svg%3E");
}
.prose .faq-nav-icon-nothover[style*="faq9/6.png"] {
    --faq-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z'/%3E%3Cpath d='m16 9-5.5 5.5L8 12'/%3E%3C/svg%3E");
}
.prose .faq-nav-icon-nothover[style*="faq9/7.png"] {
    --faq-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15.914 4a1.5 1.5 0 00-2.474-1.561l-9 9A1.5 1.5 0 005.5 14h4.002a.5.5 0 01.471.666L8.086 20a1.5 1.5 0 002.475 1.56l9-9A1.5 1.5 0 0018.5 10h-3.997a.5.5 0 01-.472-.667z'/%3E%3C/svg%3E");
}
.prose .faq-nav-icon-nothover[style*="faq9/8.png"] {
    --faq-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 11h3.75a2 2 0 0 1 1.6.8l.45.6a4 4 0 0 0 6.4 0l.45-.6a2 2 0 0 1 1.6-.8H21'/%3E%3Cpath d='M3 7h18'/%3E%3Crect x='3' y='3' width='18' height='18' rx='2'/%3E%3C/svg%3E");
}
.prose .faq-nav-icon-nothover[style*="faq9/9.png"] {
    --faq-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 11h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-5Zm0 0a9 9 0 1 1 18 0m0 0v5a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3Z'/%3E%3Cpath d='M21 16v2a4 4 0 0 1-4 4h-5'/%3E%3C/svg%3E");
}
.prose .faq-nav-icon-nothover[style*="faq9/10.png"] {
    --faq-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M11 17h3v2a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1v-3a3.16 3.16 0 0 0 2-2h1a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1h-1a5 5 0 0 0-2-4V3a4 4 0 0 0-3.2 1.6l-.3.4H11a6 6 0 0 0-6 6v1a5 5 0 0 0 2 4v3a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1z'/%3E%3Cpath d='M16 10h.01'/%3E%3Cpath d='M2 8v1a2 2 0 0 0 2 2h1'/%3E%3C/svg%3E");
}
.prose .faq-nav-icon-nothover[style*="faq9/11.png"] {
    --faq-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z'/%3E%3Cpath d='m15 9-6 6'/%3E%3Cpath d='M9 9h.01'/%3E%3Cpath d='M15 15h.01'/%3E%3C/svg%3E");
}
.prose .faq-nav-icon-nothover[style*="faq9/16.png"] {
    --faq-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2'/%3E%3Cpath d='M16 3.128a4 4 0 0 1 0 7.744'/%3E%3Cpath d='M22 21v-2a4 4 0 0 0-3-3.87'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3C/svg%3E");
}
.prose .faq-nav-icon-nothover[style*="faq9/13.png"] {
    --faq-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 7v14'/%3E%3Cpath d='M20 11v8a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-8'/%3E%3Cpath d='M7.5 7a1 1 0 0 1 0-5A4.8 8 0 0 1 12 7a4.8 8 0 0 1 4.5-5 1 1 0 0 1 0 5'/%3E%3Crect x='3' y='7' width='18' height='4' rx='1'/%3E%3C/svg%3E");
}
.prose .faq-nav-icon-nothover[style*="faq9/12.png"] {
    --faq-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 9a3 3 0 1 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 1 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z'/%3E%3Cpath d='M9 9h.01'/%3E%3Cpath d='m15 9-6 6'/%3E%3Cpath d='M15 15h.01'/%3E%3C/svg%3E");
}
.prose .faq-nav-icon-nothover[style*="faq9/15.png"] {
    --faq-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M11 6a13 13 0 0 0 8.4-2.8A1 1 0 0 1 21 4v12a1 1 0 0 1-1.6.8A13 13 0 0 0 11 14H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2z'/%3E%3Cpath d='M6 14a12 12 0 0 0 2.4 7.2 2 2 0 0 0 3.2-2.4A8 8 0 0 1 10 14'/%3E%3Cpath d='M8 6v8'/%3E%3C/svg%3E");
}
.prose .faq-nav-icon-text {
    color: var(--accent);
    font-weight: 800;
}
.prose .faq-nav-icon-desc {
    font-size: 13px;
    font-weight: 700;
    line-height: 1.3;
}
.prose .faq-nav-icon-annotation {
    display: none;
}
.prose .faq-nav-panel {
    position: relative;
    grid-column: 1 / -1;
    padding: 12px 14px;
    border: 1px solid var(--primary);
    border-radius: var(--r-m);
    background: var(--soft);
    font-size: 14px;
    line-height: 1.5;
    scroll-margin-bottom: calc(var(--bottom-nav-h) + env(safe-area-inset-bottom, 0px) + 16px);
}
@media (min-width: 900px) {
    .prose .faq-nav-panel {
        scroll-margin-bottom: 16px;
    }
}
/* the notch points at the open tile; site.js sets --caret to the tile's centre */
.prose .faq-nav-panel::before {
    content: "";
    position: absolute;
    top: -7px;
    left: var(--caret, 50%);
    width: 12px;
    height: 12px;
    margin-left: -6px;
    border: solid var(--primary);
    border-width: 1px 0 0 1px;
    background: var(--soft);
    transform: rotate(45deg);
}
/* Promo code (/faq/promo/): main2.min.js shows the code over the masked field */
.prose .faq-promo {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 14px 0;
}
.prose .faq-promo input,
.prose .faq-promo-code {
    width: min(100%, 300px);
    height: 48px;
    border-radius: var(--r-m);
    font-size: 16px;
    font-weight: 800;
    letter-spacing: 3px;
    text-align: center;
}
.prose .faq-promo input {
    padding: 0 12px;
    border: 1px dashed var(--primary);
    background: var(--soft);
    color: var(--muted);
}
.prose .faq-promo-code {
    position: absolute;
    top: 0;
    left: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px dashed var(--primary);
    background: var(--card);
    color: var(--text);
    opacity: 0;
    pointer-events: none;
    transition: opacity .3s;
}
.prose .faq-promo-code.active {
    opacity: 1;
    pointer-events: auto;
    user-select: all;
}
/* agreement-type pages (FaqController $liststyle): numbering 1. / 1.1. / 1.1.1. from counters */
.prose .static--numbered li {
    list-style-type: none;
    padding-bottom: 10px;
}
.prose .static--numbered ol {
    padding: 10px 0 10px 15px;
    counter-reset: list1;
}
.prose .static--numbered ol li::before {
    counter-increment: list1;
    content: counter(list1) ".\00a0";
    font-weight: bold;
}
.prose .static--numbered ol ol {
    counter-reset: list2;
    padding-bottom: 0;
}
.prose .static--numbered ol ol li::before {
    counter-increment: list2;
    content: counter(list1) "." counter(list2) ".\00a0";
    font-weight: normal;
}
.prose .static--numbered ol ol ol {
    counter-reset: list3;
}
.prose .static--numbered ol ol ol li::before {
    counter-increment: list3;
    content: counter(list1) "." counter(list2) "." counter(list3) ".\00a0";
}
.prose .static--numbered ol ol ol ol {
    counter-reset: list4;
}
.prose .static--numbered ol ol ol ol li::before {
    counter-increment: list4;
    content: counter(list1) "." counter(list2) "." counter(list3) "." counter(list4) ".\00a0";
}
.prose .static--numbered ul li {
    list-style: disc;
}

/* ---------- Help (layouts/_faq.php): the account layout with grouped sections ---------- */
.account__crumb {
    display: block;
    margin-bottom: 2px;
    color: var(--muted);
    font-size: 13px;
    font-weight: 700;
}
.account--help .account__title {
    overflow-wrap: anywhere;
}
.account__heading {
    display: flex;
    align-items: center;
    margin: 0;
    padding: 10px 12px 4px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
    white-space: nowrap;
}
.account--help .account__group + .account__group {
    margin-top: 6px;
}
@media (min-width: 900px) {
    .account--help .account__nav {
        max-height: calc(100vh - 105px);
        overflow-y: auto;
        overscroll-behavior: contain;
        scrollbar-width: thin;
    }
    .account--help .account__group + .account__group {
        margin: 6px 0 0;
    }
    .account__heading {
        padding: 10px 12px 4px;
        font-size: 11px;
    }
    .account--help .account__link {
        min-height: 34px;
        padding: 6px 12px;
        font-size: 13px;
    }
}
.faq-panel .static > .container-wide-desc-left:only-child,
.faq-panel > .container-wide-desc-left:last-child {
    margin-bottom: 0;
}
.faq-cta {
    margin: 16px 0;
}
/* Payment methods (views/faq/pay.php, the list from accounts; logos: views/faq/_pay_logo.php) */
.prose .pay-methods {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    gap: 10px;
    margin: 16px 0 0;
    padding: 0;
    list-style: none;
}
.prose .pay-methods li + li {
    margin-top: 0;
}
.pay-methods__item {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 104px;
    padding: 16px 12px;
    border: 1px solid var(--line);
    border-radius: var(--r-l);
    background: var(--card);
    color: var(--text);
    text-align: center;
}
.pay-methods__logo {
    width: auto;
    max-width: 100%;
    height: 36px;
}
.pay-methods__name {
    color: var(--muted);
    font-size: 13px;
    font-weight: 700;
    line-height: 1.3;
}
.pay-methods__plate {
    display: flex;
    align-items: center;
    min-height: 36px;
    font-size: 17px;
    font-weight: 800;
    line-height: 1.2;
}
.prose .pay-methods__empty {
    margin: 16px 0 0;
    color: var(--muted);
}
/* Loyalty discount (views/faq/discount.php, levels 0 % to 7 %; main2.min.js pageDiscount marks the user's level).
   Dusty tints from neutral grey (0 %) through grey-blue and steel to blue (6 %) and green (7 %);
   the user's level: stronger tint and a frame */
#discountForm .container-wide-title {
    margin: 0 0 4px;
    font-size: 17px;
}
.faq-discount {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 10px 0 16px;
}
.faq-discount input {
    flex: 1 1 220px;
    max-width: 360px;
    min-height: 44px;
    padding: 0 14px;
    border: 1px solid var(--line);
    border-radius: var(--r-m);
    background: var(--card);
}
.faq-discount input:focus {
    border-color: var(--primary);
    outline: none;
}
.discount-table {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}
.discount-table > div {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 2px 8px;
    padding: 10px 12px;
    border: 1px solid var(--lv-strong);
    border-radius: var(--r-m);
    background: var(--lv-bg);
}
.discount-table > div:nth-child(1) {
    --lv-bg: #f2f2f2;
    --lv-strong: #dbdbdb;
    --lv-ink: #494949;
}
.discount-table > div:nth-child(2) {
    --lv-bg: #e9f1f5;
    --lv-strong: #cedbe3;
    --lv-ink: #384c56;
}
.discount-table > div:nth-child(3) {
    --lv-bg: #e3eef9;
    --lv-strong: #c4d9ec;
    --lv-ink: #2b4c64;
}
.discount-table > div:nth-child(4) {
    --lv-bg: #e1ebfe;
    --lv-strong: #c3d5f3;
    --lv-ink: #2c4b6e;
}
.discount-table > div:nth-child(5) {
    --lv-bg: #e3e7fe;
    --lv-strong: #c7cff9;
    --lv-ink: #364776;
}
.discount-table > div:nth-child(6) {
    --lv-bg: #e7e2fd;
    --lv-strong: #d1c9fa;
    --lv-ink: #46427b;
}
.discount-table > div:nth-child(7) {
    --lv-bg: #d7e9fe;
    --lv-strong: #add4fe;
    --lv-ink: #004d76;
}
.discount-table > div:nth-child(8) {
    --lv-bg: #dbf3e0;
    --lv-strong: #b3e3be;
    --lv-ink: #205833;
}
.discount-table span:first-child {
    color: var(--muted);
    font-size: 13px;
    font-weight: 700;
}
.discount-table span + span {
    color: var(--lv-ink);
    font-size: 18px;
    font-weight: 800;
}
.discount-table .discount-table-active {
    border-color: var(--lv-ink);
    box-shadow: inset 0 0 0 1px var(--lv-ink);
    background: var(--lv-strong);
}
.discount-table .discount-table-active span:first-child {
    color: var(--lv-ink);
}
.discount-table i {
    flex-basis: 100%;
    color: var(--lv-ink);
    font-size: 12px;
    font-style: normal;
    font-weight: 800;
}
@media (min-width: 600px) {
    .discount-table {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}
/* Help questions on the contacts page (views/faq/feedback.php, _questions.php; site.js switches tabs, toggles .active) */
.prose .faq-help__title,
.faq-help__title {
    margin: 0 0 4px;
    font-size: 18px;
    font-weight: 800;
    line-height: 1.3;
}
.prose .faq-help__lead,
.faq-help__lead {
    margin: 0;
    color: var(--muted);
}
.faq-panel .faq-help {
    margin-bottom: 24px;
}
.faq-panel .faq-help__title--contacts {
    margin-bottom: 12px;
}
.faq-comments-tabs-btns {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    max-width: 100%;
    margin: 14px 0;
    padding: 4px;
    border-radius: var(--r-m);
    background: var(--chip);
}
.faq-comments-tabs-btns > button {
    display: inline-flex;
    flex: none;
    align-items: center;
    min-height: 44px;
    padding: 0 12px;
    border: 0;
    border-radius: 9px;
    background: none;
    color: var(--muted);
    font: inherit;
    font-weight: 700;
    white-space: nowrap;
    cursor: pointer;
}
.faq-comments-tabs-btns > button:hover {
    color: var(--link);
}
.faq-comments-tabs-btns > .active,
.faq-comments-tabs-btns > .active:hover {
    background: var(--primary);
    color: #fff;
}
.faq-comments-tabs > div {
    display: none;
}
.faq-comments-tabs > .active {
    display: block;
}
.faq-question {
    border-top: 1px solid var(--line);
}
.faq-question:last-child {
    border-bottom: 1px solid var(--line);
}
.faq-question-title {
    position: relative;
    display: flex;
    align-items: center;
    width: 100%;
    min-height: 48px;
    padding: 10px 36px 10px 0;
    border: 0;
    background: none;
    color: var(--text);
    font: inherit;
    font-weight: 800;
    line-height: 1.35;
    text-align: left;
}
.faq-question-title:hover {
    color: var(--link);
}
.faq-question-title::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 10px;
    width: 9px;
    height: 9px;
    margin-top: -7px;
    border: solid currentColor;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
    transition: transform .2s;
}
.faq-question.active .faq-question-title::after {
    margin-top: -2px;
    transform: rotate(-135deg);
}
.faq-question-text-container {
    display: none;
    padding: 0 0 14px;
}
.faq-question.active .faq-question-text-container {
    display: block;
}
.faq-question-text p {
    margin: 0 0 8px;
}
/* All materials (views/faq/list_all.php) */
.prose .faq-list-header {
    margin: 22px 0 6px;
    font-size: 18px;
}
.prose .faq-list-header:first-child {
    margin-top: 0;
}
.faq-list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 2px 12px;
}
.prose .faq-list a {
    display: flex;
    align-items: center;
    min-height: 44px;
    padding: 4px 10px;
    border-radius: var(--r-s);
    color: var(--text);
    font-weight: 600;
    line-height: 1.3;
    text-decoration: none;
}
.prose .faq-list a:hover {
    background: var(--soft);
    color: var(--link);
}
/* Contacts (views/faq/feedback.php: help layout for guests, account layout when signed in) */
.contact-cards {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
}
.faq-panel .contact-cards:not(:last-child) {
    margin-bottom: 14px;
}
.faq-contact-item {
    position: relative;
    display: grid;
    align-content: center;
    gap: 2px;
    min-height: 68px;
    padding: 12px 14px 12px 64px;
    border: 1px solid var(--line);
    border-radius: var(--r-l);
    background: var(--card);
    color: var(--text);
}
.prose .faq-contact-item {
    text-decoration: none;
}
.faq-contact-item:hover {
    border-color: var(--primary);
    color: var(--text);
}
.faq-contact-item::before,
.faq-contact-item::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 14px;
    width: 38px;
    height: 38px;
    margin-top: -19px;
    border-radius: 50%;
}
.faq-contact-item::before {
    background: var(--soft);
}
.faq-contact-item::after {
    background: var(--link);
    -webkit-mask: var(--contact-icon) center / 20px no-repeat;
    mask: var(--contact-icon) center / 20px no-repeat;
}
.faq-contact-item.online {
    --contact-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 12a8 8 0 0 1-11.6 7.1L4 20.5l1.4-4.8A8 8 0 1 1 21 12z'/%3E%3C/svg%3E");
}
.faq-contact-item.support {
    --contact-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='M3 7l9 6 9-6'/%3E%3C/svg%3E");
}
.faq-contact-item.vk {
    --contact-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='8' r='3.5'/%3E%3Cpath d='M2.5 20a6.5 6.5 0 0 1 13 0M16 4.5a3.5 3.5 0 0 1 0 7M18 14.5a6.5 6.5 0 0 1 3.5 5.5'/%3E%3C/svg%3E");
}
.faq-contact-item__title {
    font-weight: 800;
    overflow-wrap: anywhere;
}
.faq-contact-item-annotation {
    color: var(--muted);
    font-size: 13px;
    font-weight: 600;
    line-height: 1.4;
}
@media (min-width: 600px) {
    .contact-cards {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .contact-cards > :last-child:nth-child(odd) {
        grid-column: 1 / -1;
    }
}
@media (min-width: 1200px) {
    .contact-cards {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
    .contact-cards > :last-child:nth-child(odd) {
        grid-column: auto;
    }
}
/* Site map (views/site/sitemap.php) */
.sitemap__title {
    margin-bottom: 12px;
}

/* ---------- Comments (CommentsWS / CommentsSlot widgets; main2.min.js adds replies and new comments) ---------- */
.comment-panel {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 10px;
}
.comment-panel:not(:empty) {
    margin: 0 0 12px;
}
.comment-panel-title {
    flex: 1 1 100%;
    font-size: 17px;
    font-weight: 800;
}
.comment-panel-text {
    flex: 1 1 200px;
    min-width: 0;
    min-height: 44px;
    padding: 0 14px;
    border: 1px solid var(--line);
    border-radius: var(--r-m);
    background: var(--chip);
}
.comment-panel-btn {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    padding: 0 16px;
    border-radius: var(--r-m);
    background: var(--chip);
    color: var(--muted);
    font-weight: 800;
    cursor: pointer;
}
/* shown by main2.min.js (jQuery toggle) after a tap on the disabled button */
.comment-panel-notice {
    display: none;
    flex: 1 1 100%;
    padding: 10px 12px;
    border-radius: var(--r-m);
    background: var(--soft);
    font-size: 14px;
}
.comment-panel-notice.active {
    display: block;
}
.comment-panel-notice a {
    font-weight: 800;
}
.profile-your-comment {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
    margin: 0 0 12px;
}
.profile-your-comment .input_comm {
    width: 100%;
    min-height: 44px;
    padding: 10px 14px;
    border: 1px solid var(--line);
    border-radius: var(--r-m);
    background: var(--card);
}
.profile-your-comment .input_comm:focus {
    border-color: var(--primary);
    outline: none;
}
.profile-your-comment textarea.input_comm {
    grid-column: 1 / -1;
    min-height: 120px;
    resize: vertical;
}
.profile-your-comment .submit {
    min-height: 44px;
    padding: 0 18px;
    border: 0;
    border-radius: var(--r-m);
    background: var(--primary);
    color: #fff;
    font-weight: 800;
}
.profile-your-comment .submit:hover {
    background: var(--primary-hover);
}
.profile-your-comment textarea + .submit {
    grid-column: 1 / -1;
    justify-self: start;
}
.profile-your-comment .error,
.profile-your-comment .upload-container {
    grid-column: 1 / -1;
}
.profile-your-comment .error {
    color: var(--accent);
    font-size: 13px;
    font-weight: 700;
}
.comment {
    position: relative;
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr);
    gap: 4px 12px;
    padding: 12px 0;
    border-top: 1px solid var(--line);
}
/* avatars come as an inline `background: url() no-repeat` shorthand */
.comment-photo {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background-color: var(--chip);
    background-position: center !important;
    background-size: cover !important;
}
.comment-id {
    position: absolute;
    top: 12px;
    right: 0;
    color: var(--muted);
    font-size: 12px;
}
.comment-desc {
    grid-column: 2;
    min-width: 0;
}
.comment > .profile-comments-title {
    grid-column: 1 / -1;
    padding-right: 48px;
    color: var(--muted);
    font-size: 13px;
    font-weight: 700;
}
.comment-username {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 2px 8px;
    padding-right: 64px;
}
.comment-username a {
    color: var(--text);
    font-weight: 800;
}
.comment-username a.admin {
    color: var(--accent);
}
.comment-username a.comment-vip::after {
    content: "VIP";
    margin-left: 6px;
    padding: 1px 5px;
    border-radius: 5px;
    background: var(--preorder);
    color: var(--text);
    font-size: 10px;
    vertical-align: 2px;
}
.comment-username span {
    color: var(--muted);
    font-size: 12px;
}
.comment-text {
    margin-top: 4px;
    overflow-wrap: anywhere;
}
.comment-text img {
    max-width: 100%;
    height: auto;
    border-radius: var(--r-s);
}
.comment-reply {
    display: inline-flex;
    align-items: center;
    min-height: 32px;
    margin-top: 2px;
    color: var(--link);
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
}
.comment-delete {
    position: absolute;
    top: 8px;
    right: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    color: var(--muted);
    font-size: 12px;
    font-weight: 800;
    cursor: pointer;
}
.comment-delete:hover {
    background: var(--chip);
    color: var(--accent);
}
.comment .hide {
    display: none;
}
.comment-to {
    margin: 6px 0 4px;
}
.comment-parent,
.comment-to .comment {
    margin-top: 8px;
    padding: 10px 12px;
    border: 0;
    border-radius: var(--r-m);
    background: var(--bg);
}
.comment-answerWS {
    grid-template-columns: minmax(0, 1fr);
}
.comment-answerWS .comment-desc {
    grid-column: 1;
}
/* main2.min.js makeReply() appends a copy of the form to the comment */
.comment-reply-form {
    margin-top: 8px;
}
.comment > .comment-reply-form {
    grid-column: 2;
    margin-bottom: 0;
}
.showmore > .showmorebutton {
    display: block;
    margin-top: 12px;
}

/* ---------- News (layouts/_news.php, _news_detail.php, views/news/*) ---------- */
.tabs > .tabs-btns:not(.section-head) > button.tabs-btn {
    border: 0;
    background: transparent;
    font: inherit;
    font-weight: 700;
}
.tabs > .tabs-btns:not(.section-head) > button.tabs-btn.active {
    background: var(--primary);
}
.news-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
}
/* phone: picture on the left; >=600: cards in a grid */
.news-block {
    display: grid;
    grid-template-columns: 112px minmax(0, 1fr);
    grid-template-rows: auto auto 1fr;
    gap: 2px 12px;
    min-width: 0;
    padding: 10px;
    border: 1px solid var(--line);
    border-radius: var(--r-l);
    background: var(--card);
    color: var(--text);
    transition: box-shadow .15s ease;
}
.news-block:hover,
.news-block.hover {
    box-shadow: var(--shadow);
    color: var(--text);
}
.news-block-picture {
    grid-row: 1 / span 3;
    display: block;
    aspect-ratio: 185 / 107;
    overflow: hidden;
    border-radius: var(--r-s);
    background: var(--chip);
}
.news-block-image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.news-block-date {
    color: var(--muted);
    font-size: 12px;
    font-weight: 700;
}
.news-block-title {
    display: -webkit-box;
    overflow: hidden;
    font-size: 14px;
    font-weight: 800;
    line-height: 1.3;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
}
.news-block-desc {
    display: none;
}
@media (min-width: 600px) {
    .news-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 16px;
    }
    .news-block {
        display: flex;
        flex-direction: column;
        gap: 6px;
        overflow: hidden;
        padding: 0 0 16px;
    }
    .news-block-picture {
        margin-bottom: 4px;
        border-radius: 0;
    }
    .news-block-date,
    .news-block-title,
    .news-block-desc {
        padding: 0 16px;
    }
    .news-block-title {
        font-size: 16px;
    }
    .news-block-desc {
        display: -webkit-box;
        overflow: hidden;
        color: var(--muted);
        font-size: 14px;
        line-height: 1.45;
        -webkit-line-clamp: 3;
        -webkit-box-orient: vertical;
    }
}
@media (min-width: 1000px) {
    .news-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}
.news-page {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
    align-items: start;
}
.news-page__main {
    display: grid;
    gap: 16px;
    min-width: 0;
}
.news-article__head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px 12px;
    align-items: start;
    margin: 0 0 14px;
}
.news-detail-top {
    display: flex;
    grid-column: 1 / -1;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px 12px;
    color: var(--muted);
    font-size: 13px;
    font-weight: 700;
}
.news-article__title {
    margin: 0;
    font-size: 22px;
    overflow-wrap: anywhere;
}
.admin-edit {
    font-size: .8em;
}
.news-detail-top-picture {
    display: block;
    width: 100%;
    height: auto;
    margin: 0 0 16px;
    border-radius: var(--r-l);
    background: var(--chip);
}
.container-wide-footer-news {
    margin-top: 20px;
}
.news-page__aside {
    min-width: 0;
}
@media (min-width: 900px) {
    .news-article.card {
        padding: 24px 28px;
    }
    .news-article__title {
        font-size: 28px;
    }
    .news-in-column {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
        gap: 24px;
        align-items: start;
    }
    .news-in-column .news-detail-top-picture {
        margin: 0;
    }
}
@media (min-width: 1100px) {
    .news-page--aside {
        grid-template-columns: minmax(0, 1fr) 320px;
    }
    .news-page__aside {
        position: sticky;
        top: 89px;
    }
}
/* Previous / next arrows (news article, giveaway, giveaway history) */
.gifts-pagination {
    display: flex;
    gap: 6px;
}
.gifts-pagination-prev,
.gifts-pagination-next {
    position: relative;
    display: flex;
    flex: none;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border: 1px solid var(--line);
    border-radius: 50%;
    background: var(--card);
    color: var(--text);
    cursor: pointer;
}
.gifts-pagination-prev::before,
.gifts-pagination-next::before {
    content: "";
    width: 9px;
    height: 9px;
    border: solid currentColor;
    border-width: 0 0 2px 2px;
    transform: rotate(45deg);
    margin-left: 4px;
}
.gifts-pagination-next::before {
    margin: 0 4px 0 0;
    transform: rotate(-135deg);
}
.gifts-pagination-prev:not(.disabled):hover,
.gifts-pagination-next:not(.disabled):hover {
    border-color: var(--primary);
    color: var(--link);
}
.gifts-pagination .disabled {
    opacity: .4;
    cursor: default;
}

/* ---------- Giveaways (views/gifts/*) ---------- */
.gifts {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
}
.gift {
    position: relative;
    display: flex;
    flex-direction: column;
    min-width: 0;
    border: 1px solid var(--line);
    border-radius: var(--r-l);
    background: var(--card);
    transition: box-shadow .15s ease;
}
.gift:hover,
.gift.hover {
    box-shadow: var(--shadow);
}
.gift-link {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    gap: 6px;
    padding-bottom: 12px;
    border-radius: var(--r-l) var(--r-l) 0 0;
    color: var(--text);
}
a.gift-link:hover {
    color: var(--text);
}
.gift-cover {
    display: block;
    aspect-ratio: 2 / 1;
    overflow: hidden;
    margin-bottom: 4px;
    border-radius: var(--r-l) var(--r-l) 0 0;
    background: var(--chip);
}
.gift-cover img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.gift-cover--empty {
    background: var(--chip) url(/images/gifts/_334.png) center / cover no-repeat;
}
.gift-desc {
    display: -webkit-box;
    overflow: hidden;
    padding: 0 14px;
    font-size: 16px;
    font-weight: 800;
    line-height: 1.3;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}
.gift-link .gift-title {
    padding: 0 14px;
    color: var(--muted);
    font-size: 13px;
    font-weight: 600;
}
.gift-title .timer-tiny,
.gift-title .stop {
    color: var(--text);
    font-weight: 800;
    font-variant-numeric: tabular-nums;
}
.gift-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    margin: 0 14px 14px;
    padding: 0 16px;
    border: 0;
    border-radius: var(--r-m);
    background: var(--primary);
    color: #fff;
    font: inherit;
    font-weight: 800;
    cursor: pointer;
}
.gift-link .gift-btn {
    margin: auto 14px 2px;
}
.gift-link:hover .gift-btn {
    background: var(--primary-hover);
}
.gift-btn.green,
.gift-link:hover .gift-btn.green {
    background: var(--good);
}
.gift-disactive > .gift-btn {
    background: var(--chip);
    color: var(--text);
}
.gift-disactive > .gift-btn:hover,
.gift.clicked > .gift-btn {
    background: var(--soft);
    color: var(--link);
}
.gift-popup {
    display: none;
    margin: -6px 14px 14px;
    padding: 10px 12px;
    border-radius: var(--r-m);
    background: var(--warn-bg);
    color: var(--warn);
    font-size: 13px;
    font-weight: 600;
}
.gift.clicked > .gift-popup {
    display: block;
}
.gift-popup .link {
    color: var(--link);
    font-weight: 800;
    text-decoration: underline;
}
.gifts-promo {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 56px;
    margin: 16px 0;
    padding: 12px 16px;
    border-radius: var(--r-l);
    background: var(--soft);
    color: var(--link);
    font-weight: 800;
}
.gifts-promo:hover {
    color: var(--primary-hover);
    text-decoration: underline;
}
.gifts-promo i {
    margin-left: 8px;
    padding: 2px 7px;
    border-radius: var(--r-s);
    background: var(--accent);
    color: #fff;
    font-size: 11px;
    font-style: normal;
    text-transform: uppercase;
    vertical-align: 1px;
}
.gifts-stat {
    display: grid;
    gap: 12px;
}
.gifts-stat-items {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}
.gifts-stat-title {
    grid-column: 1 / -1;
    margin: 0;
    font-size: 17px;
}
.gifts-stat-item {
    padding: 12px 14px;
    border-radius: var(--r-l);
    background: var(--card);
}
.gifts-stat-item-count {
    font-size: 22px;
    font-weight: 800;
    line-height: 1.2;
    font-variant-numeric: tabular-nums;
}
.gifts-stat-item-title {
    color: var(--muted);
    font-size: 13px;
    font-weight: 700;
}
@media (min-width: 600px) {
    .gifts {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 16px;
    }
    .gifts-stat-items {
        grid-template-columns: repeat(5, minmax(0, 1fr));
    }
}
/* One giveaway (views/gifts/current.php; main2.min.js gifts2 drives #gift_confirm and the notice) */
.giveaway {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 14px;
}
.giveaway__head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 2px 12px;
    align-items: start;
}
.giveaway__sub {
    margin: 0;
    color: var(--muted);
    font-size: 13px;
    font-weight: 700;
}
.giveaway__title {
    grid-column: 1;
    margin: 0;
    font-size: 24px;
    overflow-wrap: anywhere;
}
.giveaway__head > .gifts-pagination {
    grid-column: 2;
    grid-row: 1 / span 2;
}
.giveaway__media {
    display: grid;
    gap: 12px;
    min-width: 0;
}
.gift-detail-preview {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 620 / 380;
    object-fit: cover;
    border-radius: var(--r-l);
    background: var(--chip);
}
.gift-detail-desc {
    padding: 14px 16px;
    border-radius: var(--r-l);
    background: var(--card);
}
.gift-detail-desc:empty {
    display: none;
}
.gifts-detail-spec {
    display: grid;
    gap: 12px;
    align-content: start;
}
.gifts-detail-btn {
    display: grid;
    gap: 8px;
}
.gifts-detail-btn__action,
.gifts-detail-btn__label {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 56px;
    padding: 0 18px;
    border: 0;
    border-radius: var(--r-m);
    font: inherit;
    font-size: 16px;
    font-weight: 800;
}
.gifts-detail-btn__action {
    background: var(--primary);
    color: #fff;
    cursor: pointer;
}
.gifts-detail-btn__action:hover {
    background: var(--primary-hover);
}
.gifts-detail-btn__label {
    background: var(--chip);
    color: var(--muted);
}
.gifts-detail-btn.active .gifts-detail-btn__label,
.gifts-detail-btn.active .gifts-detail-btn__action {
    background: #e3f4ea;
    color: var(--good);
}
.gifts-detail-btn-notice {
    padding: 10px 12px;
    border-radius: var(--r-m);
    background: var(--warn-bg);
    color: var(--warn);
    font-size: 13px;
    font-weight: 600;
}
.gifts-detail-btn-notice:empty {
    display: none;
}
.gifts-detail-btn.active .gifts-detail-btn-notice {
    background: var(--soft);
    color: var(--link);
}
.gifts-detail-btn-notice a {
    color: var(--link);
    font-weight: 800;
    text-decoration: underline;
}
.gifts-detail-stat {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}
.gifts-detail-stat .gifts-stat-item {
    background: var(--bg);
}
.gifts-detail-priority {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 10px;
}
.gifts-detail-priority__label {
    color: var(--muted);
    font-size: 13px;
    font-weight: 700;
}
.profile-user-priority {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    height: 44px;
    padding: 0 12px;
    border-radius: 22px;
    background: var(--soft);
    color: var(--link);
    font-size: 18px;
    font-weight: 800;
    cursor: default;
}
.profile-user-priority .user-popup-notice {
    position: absolute;
    z-index: 20;
    bottom: calc(100% + 6px);
    left: 0;
    display: none;
    width: max-content;
    max-width: 240px;
    padding: 8px 12px;
    border-radius: var(--r-m);
    background: var(--text);
    color: #fff;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.4;
}
.profile-user-priority:hover .user-popup-notice,
.profile-user-priority:focus .user-popup-notice {
    display: block;
}
.gifts-detail-priority .btn-buy-coupon {
    margin-left: auto;
}
.gifts-detail-links {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2px 8px;
    padding-top: 10px;
    border-top: 1px solid var(--line);
}
.gifts-detail-links a {
    display: flex;
    align-items: center;
    min-height: 44px;
    padding: 4px 8px;
    border-radius: var(--r-s);
    color: var(--text);
    font-size: 14px;
    font-weight: 600;
    line-height: 1.3;
}
.gifts-detail-links a:hover {
    background: var(--soft);
    color: var(--link);
}
.gift-detail-footer h2 {
    font-size: 18px;
}
.giveaway > .gifts-promo {
    margin: 0;
}
@media (min-width: 900px) {
    .giveaway {
        grid-template-columns: minmax(0, 1fr) 360px;
        grid-template-areas:
            "head head"
            "media spec"
            "foot spec"
            "promo promo";
        gap: 20px 24px;
        align-items: start;
    }
    .giveaway__head { grid-area: head; }
    .giveaway__media { grid-area: media; }
    .gifts-detail-spec {
        grid-area: spec;
        position: sticky;
        top: 89px;
    }
    .gift-detail-footer { grid-area: foot; }
    .giveaway > .gifts-promo { grid-area: promo; }
    .giveaway__title {
        font-size: 30px;
    }
}
.giveaway ~ .bottom-slider-container {
    margin-top: 16px;
}
/* History (views/gifts/archive*.php; main2.min.js partical() loads days by the arrows) */
.gifts-history {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin: 0 0 16px;
}
.gifts-history-title {
    margin: 0;
    font-size: 24px;
}
.gifts-history-date {
    margin: 2px 0 0;
    color: var(--muted);
    font-weight: 700;
}
.gift--archive {
    padding-bottom: 12px;
}
.gift-pic {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 2 / 1;
    margin-bottom: 8px;
    object-fit: cover;
    border-radius: var(--r-l) var(--r-l) 0 0;
    background-color: var(--chip);
}
.gift--archive .gift-title {
    padding: 0 14px;
    font-size: 16px;
    font-weight: 800;
    line-height: 1.3;
}
.gift-members {
    padding: 2px 14px 0;
    color: var(--muted);
    font-size: 13px;
    font-weight: 600;
}
.gift-members b {
    color: var(--text);
}
/* main2.min.js shows it (inline-block) with the winner's name */
.gift-popup-winner {
    display: none;
    align-self: flex-start;
    margin: 8px 14px 0;
    padding: 6px 10px;
    border-radius: var(--r-s);
    background: var(--soft);
    color: var(--link);
    font-weight: 800;
}
.gift-winners {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    padding: 8px 14px 0;
    color: var(--muted);
    font-size: 13px;
    font-weight: 700;
}
/* avatars: inline background image, the div itself is the button main2.min.js listens to */
.gift-winners-user {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background-color: var(--chip);
    background-position: center;
    background-size: cover;
    cursor: pointer;
}
.gift-winners-user:hover {
    box-shadow: 0 0 0 2px var(--primary);
}
@media (min-width: 900px) {
    .gifts-history-title {
        font-size: 30px;
    }
}
/* Participants (views/gifts/members*.php; main2.min.js showmore() appends pages) */
.gifts-users-game {
    display: grid;
    grid-template-columns: 112px minmax(0, 1fr);
    gap: 2px 14px;
    align-items: center;
    margin: 0 0 16px;
}
.gifts-users-game-pic {
    grid-row: 1 / span 2;
    width: 112px;
    height: auto;
    aspect-ratio: 273 / 112;
    object-fit: cover;
    border-radius: var(--r-m);
    background: var(--chip);
}
.gifts-users-game-title {
    align-self: end;
    margin: 0;
    font-size: 20px;
    overflow-wrap: anywhere;
}
.gifts-users-game-subtitle {
    align-self: start;
    margin: 0;
    color: var(--muted);
    font-size: 13px;
    font-weight: 700;
}
.gifts-btn-back {
    grid-column: 1 / -1;
    justify-self: start;
    margin-top: 10px;
}
.gifts-users-container {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
    gap: 8px;
}
.gifts-users-user {
    display: grid;
    grid-template-columns: 36px minmax(0, 1fr);
    gap: 0 10px;
    align-items: center;
    min-height: 56px;
    padding: 8px 10px;
    border: 1px solid var(--line);
    border-radius: var(--r-m);
    background: var(--card);
    color: var(--text);
}
.gifts-users-user:hover {
    border-color: var(--primary);
    color: var(--text);
}
.gifts-users-user-photo {
    grid-row: 1 / span 2;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background-color: var(--chip);
    background-position: center;
    background-size: cover;
}
.gifts-users-user-name {
    overflow: hidden;
    font-weight: 800;
    white-space: nowrap;
    text-overflow: ellipsis;
}
.gifts-users-user-time {
    color: var(--muted);
    font-size: 12px;
    font-variant-numeric: tabular-nums;
}
.gifts-users-container > .showmorebutton {
    grid-column: 1 / -1;
}
@media (min-width: 900px) {
    .gifts-users-game {
        grid-template-columns: 185px minmax(0, 1fr) auto;
    }
    .gifts-users-game-pic {
        width: 185px;
    }
    .gifts-users-game-title {
        font-size: 26px;
    }
    .gifts-btn-back {
        grid-column: 3;
        grid-row: 1 / span 2;
        margin: 0;
    }
}

/* ---------- Super offers (/random/, views/random/list.php; special.goods.min.js selects a column) ---------- */
/* Phone: one card per offer, labels inside; the legend keeps the choice and the explanations. >=900: a table, rows lined up with subgrid */
.random-page .beauty-desc-pink {
    color: var(--text);
    font-weight: 700;
}
.lucky-table {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
}
.lucky-table-column {
    display: flex;
    flex-direction: column;
    min-width: 0;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: var(--r-l);
    background: var(--card);
}
.lucky-table-column.selectable {
    cursor: pointer;
}
.lucky-table-column.selected {
    border-color: var(--primary);
    box-shadow: 0 0 0 1px var(--primary);
}
/* phone: the explanations follow the offers */
.lucky-table-column.desc {
    order: 1;
}
.lucky-table-column-item {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px 10px;
    padding: 8px 14px;
}
.lucky-label {
    flex: 1 1 auto;
    color: var(--muted);
    font-size: 13px;
    font-weight: 700;
}
.lucky-table .cloud {
    font-weight: 800;
}
.lucky-table .cloud i {
    display: none;
}
.lucky-table-hint {
    flex: 1 1 100%;
    color: var(--muted);
    font-size: 13px;
    font-weight: 500;
    line-height: 1.45;
}
.lucky-table-hint a {
    font-weight: 700;
}
.lucky-table-column.desc .lucky-row--poster,
.lucky-table-column.desc .lucky-row--name,
.lucky-table-column.desc .lucky-row--price,
.lucky-table-column.desc .lucky-row--buy,
.lucky-table-column.selectable .lucky-table-hint {
    display: none;
}
.lucky-table-your-choice.active .cloud {
    color: var(--link);
}
.lucky-table-column-item.head {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr);
    gap: 0 10px;
    padding: 12px 14px;
    background: var(--soft);
}
.lucky-table-column-item.head--any {
    background: #e3f4ea;
}
.lucky-table-column-item-pic {
    grid-row: 1 / span 2;
    width: 44px;
    height: 44px;
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
}
.lucky-logo--any { background-image: url(/images/logos/logo-any.png); }
.lucky-logo--gold { background-image: url(/images/logos/logo-gold.png); }
.lucky-logo--bronze { background-image: url(/images/logos/logo-bronze.png); }
.lucky-table-column-item-title {
    align-self: end;
    color: var(--muted);
    font-size: 12px;
    font-weight: 700;
}
.lucky-table-column-item-subtitle {
    align-self: start;
    font-size: 18px;
    font-weight: 800;
    line-height: 1.2;
}
.selectable .lucky-table-pic {
    padding: 0;
}
/* special.goods.min.js rewrites the poster as an inline `background` shorthand */
.selectable .lucky-table-pic > div {
    width: 100%;
    aspect-ratio: 185 / 107;
    background-color: var(--chip);
    background-position: center !important;
    background-size: cover !important;
}
.lucky-table-game a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    color: var(--text);
    font-weight: 800;
}
.lucky-table-game a:hover {
    color: var(--link);
}
.lucky-column .price-start {
    color: var(--muted);
    text-decoration: line-through;
}
.lucky-column .price-now {
    font-size: 22px;
    font-weight: 800;
}
.lucky-column .sale {
    padding: 2px 7px;
    border-radius: var(--r-s);
    background: var(--accent);
    color: #fff;
    font-size: 12px;
    font-weight: 800;
}
.lucky-coupons {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    font-weight: 800;
}
.lucky-table-coupon {
    padding: 2px 8px;
    border-radius: var(--r-s);
    background: var(--chip);
    font-weight: 800;
}
.lucky-table-column-item-button {
    margin-top: auto;
    padding: 10px 14px 14px;
}
.lucky-table-column-button {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 48px;
    border-radius: var(--r-m);
    background: var(--primary);
    color: #fff;
    font-weight: 800;
}
.lucky-table-column-button:hover {
    background: var(--primary-hover);
    color: #fff;
}
.lucky-table-column-button.notavailable,
.lucky-table-column-button.notavailable:hover {
    background: var(--chip);
    color: var(--muted);
    cursor: default;
}
.random-page__outro {
    margin: 20px 0 0;
    color: var(--muted);
    font-weight: 700;
    text-align: center;
}
@media (min-width: 900px) {
    .lucky-table {
        grid-template-columns: 220px repeat(3, minmax(0, 1fr));
        grid-template-rows: repeat(8, auto);
        gap: 0 12px;
    }
    .lucky-table-column {
        display: grid;
        grid-row: 1 / span 8;
        grid-template-rows: subgrid;
    }
    .lucky-table-column-item {
        justify-content: center;
        text-align: center;
    }
    .lucky-table-column.selectable .lucky-table-column-item + .lucky-table-column-item:not(.lucky-table-pic) {
        border-top: 1px solid var(--line);
    }
    .lucky-table-column.desc {
        order: 0;
        overflow: visible;
        border-color: transparent;
        background: transparent;
    }
    .lucky-table-column.desc .lucky-table-column-item {
        display: flex;
        justify-content: flex-start;
        text-align: left;
    }
    .lucky-table-column.desc .lucky-row--buy {
        color: var(--muted);
        font-weight: 800;
    }
    .lucky-label {
        display: none;
    }
    .lucky-table .cloud i {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 18px;
        height: 18px;
        margin-left: 6px;
        border-radius: 50%;
        background: var(--chip);
        color: var(--muted);
        font-size: 11px;
        font-style: normal;
    }
    /* explanations open as tooltips; they belong to the row, so moving onto a link keeps them open */
    .lucky-table-column.desc .lucky-table-hint {
        position: absolute;
        z-index: 20;
        top: calc(100% - 4px);
        left: 8px;
        display: none;
        width: 300px;
        padding: 10px 12px;
        border-radius: var(--r-m);
        background: var(--text);
        color: #fff;
        box-shadow: var(--shadow);
    }
    .lucky-table-column.desc .lucky-table-hint a {
        color: #9fcbf3;
    }
    .lucky-table-column.desc .lucky-table-column-item:hover > .lucky-table-hint {
        display: block;
    }
    .lucky-coupons {
        justify-content: center;
    }
}

/* ---------- Coupons (views/coupon/index.php) ---------- */
.coupon-link {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    font-weight: 800;
}
.create-coupon {
    margin: 0 0 16px;
}
.coupon-about > h2:first-child {
    margin-top: 0;
}
.coupon-about > div {
    max-width: 820px;
}

/* ---------- Happy Hour (views/happyHour/*): game tiles from site/index_list, coupon offers - tiles with a buy button ---------- */
.tile__buy {
    margin: auto 10px 0;
}
.tile__price + .tile__buy {
    margin-top: 4px;
}
@media (min-width: 600px) {
    .tile__buy {
        margin-right: 14px;
        margin-left: 14px;
    }
}
.hh-empty {
    display: grid;
    justify-items: start;
    gap: 12px;
}
.happy-hour-empty-notice {
    margin: 0;
    font-size: 16px;
    font-weight: 700;
}
.hh-page__outro {
    margin: 20px 0 0;
    font-size: 18px;
    font-weight: 800;
    text-align: center;
}
.hh-page ~ .bottom-slider-container {
    margin-top: 24px;
}

/* ---------- Promotions (views/site/stock.php, layouts/_stock.php) ---------- */
.stock-page .page-head .product-detail-timer {
    justify-self: start;
}
.end-timer {
    padding-left: 12px;
}
.end-timer::before {
    display: none;
}
.sale-wide {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px 20px;
    margin: 0 0 16px;
}
.sale-desc {
    flex: 1 1 320px;
    min-width: 0;
}
.sale-desc-title {
    margin: 0 0 4px;
    font-size: 18px;
}
.sale-desc-text {
    color: var(--muted);
}
.sale-block {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
}
.sale-item {
    display: grid;
    justify-items: start;
    gap: 10px;
}
.sale-item-title {
    margin: 0;
    font-size: 18px;
}
.sale-item-desc,
.sale-item-gifts,
.sale-item-date {
    max-width: 100%;
    overflow-wrap: anywhere;
}
/* a comma-separated list of game links: taller lines keep them apart for a finger */
.sale-item-gifts {
    line-height: 2;
}
.sale-item-gifts span {
    margin-right: 4px;
    font-weight: 800;
}
.sale-item-date {
    color: var(--muted);
    font-size: 13px;
    font-weight: 700;
}
.btn-show-more {
    min-height: 44px;
    padding: 0;
    border: 0;
    background: none;
    color: var(--link);
    font: inherit;
    font-weight: 800;
}
/* the page script measures it, then animates the height from 0 */
.sale-item-info {
    display: none;
    overflow: hidden;
    width: 100%;
}
.sale-block-links {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}
.sale-block-link {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: var(--r-l);
    background: var(--card);
    color: var(--text);
    font-weight: 800;
}
.sale-block-link:hover {
    border-color: var(--primary);
    color: var(--link);
}
.sale-block-link-pic {
    display: block;
    aspect-ratio: 2 / 1;
    background: var(--chip) center / cover no-repeat;
}
.sale-block-link-pic--new { background-image: url(/images/stock-new.png); }
.sale-block-link-pic--preorder { background-image: url(/images/stock-new2.png); }
.sale-block-link-text {
    padding: 10px 14px;
}
@media (min-width: 900px) {
    .sale-block {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 16px;
    }
    .sale-block-links {
        grid-column: 1 / -1;
    }
}

/* ---------- Errors (views/site/error.php, error404.php) ---------- */
.error-page {
    display: grid;
    justify-items: center;
    gap: 8px;
    max-width: 560px;
    margin: 16px auto;
    padding: 32px 20px;
    border-radius: var(--r-xl);
    background: var(--card);
    text-align: center;
}
.error-page__code {
    margin: 0;
    color: var(--link);
    font-size: 64px;
    font-weight: 800;
    line-height: 1;
    font-variant-numeric: tabular-nums;
}
.error-page__title {
    margin: 4px 0 0;
    font-size: 22px;
}
.error-page__text {
    max-width: 420px;
    margin: 0;
    color: var(--muted);
}
.error-page__actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
    width: 100%;
    margin-top: 12px;
}
.error-page__actions .btn {
    flex: 1 1 150px;
    max-width: 220px;
}
@media (min-width: 900px) {
    .error-page {
        margin: 40px auto;
        padding: 48px 32px;
    }
}
