.rv-block {
    /* ── подстрой под бренд ── */
    --rv-dark:   #0B1B48;
    --rv-green:  #12B886; /* цвет точек-рейтинга — поставь свой */
    --rv-light:  #f3f4f6; /* фон блока-сводки */
    --rv-orange: #ff7a00; /* акцент/кнопка */
    --rv-muted:  rgba(11, 27, 72, .5);

    color: var(--rv-dark);
    margin: 32px 0;
}

.rv-title { font-size: 20px; font-weight: 800; margin: 0 0 24px; }
.rv-star { width: 20px; height: 20px; color: var(--rv-dark); flex-shrink: 0; }

/* ── Сводный блок ── */
.rv-summary {
    background: var(--rv-light);
    border-radius: 8px;
    padding: 24px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 24px;
    margin-bottom: 24px;
}
@media (min-width: 640px) {
    .rv-summary { flex-direction: row; justify-content: center; padding: 32px; }
}
.rv-summary-total { text-align: center; }
@media (min-width: 640px) { .rv-summary-total { padding-right: 48px; } }

.rv-total-value {
    display: flex; align-items: center; justify-content: center; gap: 6px;
    font-size: 40px; font-weight: 700; line-height: 1;
}
.rv-total-value .rv-star { width: 28px; height: 28px; }
.rv-total-title { font-size: 16px; font-weight: 700; margin: 8px 0 4px; }
.rv-total-info { font-size: 14px; font-weight: 600; display: inline-flex; align-items: center; gap: 4px; }
.rv-info { display: inline-flex; cursor: help; }
.rv-info-svg { width: 14px; height: 14px; }

/* ── Точки рейтинга (ReviewPoints) ── */
.rv-point-row { display: flex; align-items: center; gap: 12px; margin: 3px 0; }
.rv-point-title { font-size: 14px; font-weight: 600; }
.review-points { display: flex; gap: 4px; }
.review-dot {
    width: 16px; height: 16px;
    border: 1px solid var(--rv-green);
    border-radius: 50%;
    overflow: hidden;
    display: flex;
}
.rv-half { flex: 1; }
.rv-half.filled { background: var(--rv-green); }

/* ── Список отзывов ── */
.rv-review { padding: 16px 0; }
@media (min-width: 640px)  { .rv-review { padding: 20px; } }
@media (min-width: 1024px) { .rv-review { padding: 20px 112px; } }

.rv-review-head {
    display: flex; align-items: flex-start; gap: 12px;
    font-weight: 700; margin-bottom: 12px;
}
@media (min-width: 640px) { .rv-review-head { align-items: center; } }
.rv-review-score { display: flex; align-items: center; gap: 4px; flex-shrink: 0; }
.rv-review-score .rv-star { width: 18px; height: 18px; }
@media (min-width: 640px) { .rv-review-score { width: 80px; } }
.rv-review-title span { font-weight: 600; }

.rv-review-body { display: flex; gap: 12px; }
.rv-review-spacer { display: none; flex-shrink: 0; width: 80px; }
@media (min-width: 640px) { .rv-review-spacer { display: block; } }
.rv-review-content { flex: 1; min-width: 0; }

.rv-review-text { font-size: 15px; font-weight: 500; line-height: 1.5; }
.rv-review-subranks { margin-top: 8px; }

/* Затухание текста, когда отзыв свёрнут */
.rv-expand { position: relative; }
.rv-expand-content { position: relative; }
.rv-expand.is-collapsed .rv-expand-content::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 2.4em;
    pointer-events: none;
    background: linear-gradient(to bottom, rgba(255, 255, 255, 0), #fff);
}

.rv-expand-btn {
    margin-top: 8px; padding: 0; border: 0; background: none; cursor: pointer;
    font-weight: 700; font-size: 13px; color: var(--rv-dark);
    display: inline-flex; align-items: center; transition: opacity .2s;
}
.rv-expand-btn:hover { opacity: .7; }

.rv-review-meta { margin-top: 12px; display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.rv-review-date { font-size: 13px; font-weight: 600; }
.rv-review-author { font-size: 12px; font-weight: 500; color: var(--rv-muted); }

/* ── Кнопка "ещё" ── */
.rv-footer { display: flex; margin-top: 8px; }
@media (min-width: 640px)  { .rv-footer { padding-left: 92px; } }
@media (min-width: 1024px) { .rv-footer { padding-left: 132px; } }
.rv-more-btn {
    font-weight: 700; border: 2px solid var(--rv-dark); background: transparent;
    color: var(--rv-dark); border-radius: 999px; padding: 8px 24px; cursor: pointer;
    transition: transform .2s;
}
.rv-more-btn:hover { transform: scale(1.04); }