/* =====================================================================
   Выравнивание главной страницы.
   Единая сетка: левая колонка (меню, блок "Магазин/Кейсы/Онлайн") и правая
   (карточки, контент) идут ровно друг под другом; между блоками везде 30px.
   ===================================================================== */

/* ---------- Верхний ряд: карточки разделов + блок "Магазин / Кейсы / Онлайн" ---------- */
.home-top {
    margin-bottom: 30px;
}

/* у карточек были свои отступы (padding 10px и margin 30px) — из-за них низ ряда "прыгал" */
.home-top .bs-cards {
    margin-bottom: 0 !important;
    padding: 0 !important;
}

@media (min-width: 992px) {
    /* блок слева растягивается ровно на высоту карточек — верх и низ ряда совпадают */
    .home-top__side {
        position: relative;
    }

    .home-top__side .right-swiper__block {
        position: absolute;
        top: 0;
        bottom: 0;
        left: 15px;
        right: 15px;
        height: auto !important;
        margin: 0 !important;
    }
}

@media (max-width: 991.98px) {
    .home-top__main {
        margin-bottom: 30px;
    }

    /* на планшете у блока была высота "95%" от колонки без высоты — он схлопывался до 40px */
    .home-top .right-swiper__block {
        margin-bottom: 0 !important;
        height: 330px !important;
    }
}

/* внутренняя сетка блока: три ряда одинаковой высоты, ничего не вылезает */
.right-swiper__block {
    gap: 10px !important;
}

.right-swiper__block > .card,
.right-swiper__second,
.right-swiper__online {
    flex: 1 1 0;
    min-height: 0;
    height: auto !important;
    margin: 0 !important;
}

.right-swiper__second > .card,
.right-swiper__online > .card {
    height: auto !important;
    min-width: 0;
    margin: 0 !important;
}

/* было 70% + 30% + отступ 10px = больше 100%, плитка Telegram вылезала */
.right-swiper__second > .right-swiper__store { flex: 7 1 0; width: auto !important; }
.right-swiper__second > .right-swiper__ds    { flex: 3 1 0; width: auto !important; }
.right-swiper__online > .right-swiper__site,
.right-swiper__online > .right-swiper__server { flex: 1 1 0; width: auto !important; }

/* шрифт Unbounded на сайте не подключён — без запасного браузер рисовал Times с засечками */
.right-swiper__block .card {
    padding: 0 16px !important;
    font-family: "Unbounded", "Montserrat", "Roboto", Arial, sans-serif !important;
    font-size: 18px;
}

.right-swiper__block #users_online_number,
.right-swiper__block #count_of_last_onl_us {
    padding: 3px 12px !important;
}

/* Нижний ряд — карточка "Посетители" (модуль site_visitors) вместо плиток "Онлайн" / "Посетили".
   Ей нужно чуть больше места, чем плиткам: ряд выше остальных в 1,35 раза. */
.right-swiper__visitors {
    display: flex;
    flex: 1.35 1 0;
    min-height: 0;
    margin: 0 !important;
}

.right-swiper__visitors > #site_visitors {
    flex: 1 1 auto;
    min-width: 0;
}

/* ---------- Новости: такой же отступ, как у всех блоков ---------- */
#new_news .news_block {
    margin-bottom: 30px !important;
}

/* ---------- Последние события: аккуратная строка вместо "плавающих" колонок ---------- */
#events .event {
    display: flex;
    align-items: center;
    gap: 14px;
    height: auto !important;
    min-height: 64px;
    padding: 8px 14px;
}

#events .event > div {
    float: none !important;
    display: block !important;
    flex: 1 1 auto;
    min-width: 0;
    width: auto !important;
    height: auto !important;
}

#events .event > div > a {
    display: block !important;
    height: auto !important;
    line-height: 1.4 !important;
}

#events .event > a:not(.btn) {
    float: none !important;
    display: flex !important;
    align-items: center;
    gap: 8px;
    flex: 0 0 auto;
    width: auto !important;
    max-width: 190px;
    height: auto !important;
    line-height: normal !important;
    overflow: hidden;
}

#events .event > a:not(.btn) img {
    width: 36px;
    height: 36px !important;
    margin: 0 !important;
    flex-shrink: 0;
    object-fit: cover;
}

#events .event > a:not(.btn) > span {
    overflow: hidden;
    text-overflow: ellipsis;
}

#events .event > span {
    float: none !important;
    flex: 0 0 120px;
    width: auto !important;
    height: auto !important;
    line-height: normal !important;
}

#events .event > a.btn {
    float: none !important;
    flex: 0 0 auto;
    width: auto !important;
    margin: 0 !important;
    padding: 6px 14px !important;
}

#events .event > i {
    top: 4px;
    right: 6px;
}

/* ---------- Боковая колонка ---------- */
/* строка "рейтинг / сообщения / спасибо" в топе не помещалась на узких экранах */
.order-is-last .block a[href*="profile?id="] > div {
    min-width: 0;
}

.order-is-last .block a[href*="profile?id="] p {
    flex-wrap: wrap;
    margin-bottom: 0;
}

.order-is-last .bonus-message {
    white-space: normal;
    overflow-wrap: anywhere;
}

.order-is-last .case-banner-img {
    display: block;
    width: 100%;
    height: auto;
}

/* на 992–1199px колонка узкая (~210px): заголовки "Топ пользователей" и т.п. не помещались */
@media (min-width: 992px) and (max-width: 1199.98px) {
    .order-is-last .block .block_head {
        padding: 14px 10px !important;
        font-size: 15px !important;
        overflow-wrap: anywhere;
    }
}

/* ---------- Подвал: строка статистики не должна давать горизонтальную прокрутку ---------- */
#site_stats .row {
    margin-left: 0;
    margin-right: 0;
}

/* ---------- Форум: длинное название последней темы — с многоточием, а не обрезано ---------- */
#forum .row .col-lg-4 p {
    overflow: hidden;
    text-overflow: ellipsis;
}
