/* Отзывы в карточке сервиса — дизайн 2 */
.rv2 .d-h { display: flex; align-items: center; gap: 10px; }
.rv2 .rv-cnt { min-width: 26px; height: 26px; padding: 0 8px; border-radius: 13px; background: var(--fill); color: var(--t2); font: 700 14px/26px var(--f); text-align: center; }
.rv2 .rv-cnt:empty { display: none; }
.rv2 .rs { display: inline-flex; gap: 2px; }
.rv2 .rs svg.st { width: 18px; height: 18px; }
.rv2 .rs.lg svg.st { width: 22px; height: 22px; }
.rv2 .rs svg.st.on, .rv2 .rv-pick2 button.on svg.st { fill: #ffb400; fill-opacity: 1; stroke: #ffb400; }

/* итог: компактная полоса — оценка, звёзды, мини-распределение */
.rv-sum2 { display: flex; align-items: center; gap: 28px; padding: 14px 20px; border-radius: var(--r3); background: var(--fill); }
.rv-big { display: flex; align-items: center; gap: 14px; }
.rv-big b { font: 700 36px/40px var(--f); letter-spacing: -.03em; color: var(--t1); }
.rv-big div { display: grid; gap: 2px; }
.rv-big div span:last-child { font: 400 14px/18px var(--f); color: var(--t2); }
.rv-dist { flex: 1; display: grid; gap: 3px; max-width: 280px; margin-left: auto; }
.rv-dist > div { display: grid; grid-template-columns: 10px 1fr; gap: 10px; align-items: center; font: 500 12px/12px var(--f); color: var(--t3); }
.rv-dist .bar { height: 5px; border-radius: 3px; background: #fff; overflow: hidden; }
.rv-dist u { display: block; height: 100%; border-radius: 3px; background: #ffb400; transition: width .5s var(--ease); }

.rv-bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin: 12px 0 2px; }
.rv-bar .btn { height: 40px; padding: 0 16px; font-size: 15px; }
.rv-bar .btn svg { width: 18px; height: 18px; }
.rv-sort { display: flex; gap: 2px; padding: 3px; border-radius: var(--r2); background: var(--fill); }
.rv-sort button { height: 32px; padding: 0 12px; border-radius: 9px; font: 500 14px/1 var(--f); color: var(--t2); transition: background .15s, color .15s; }
.rv-sort button.on { background: #fff; color: var(--t1); box-shadow: 0 1px 3px rgba(10, 20, 40, .1); }

/* отзыв: свёрнутая строка раскрывается по клику */
.rv-list2 { list-style: none; margin: 6px 0 0; padding: 0; }
.rv-i { border-top: 1px solid var(--stroke-2); }
.rv-i:first-child { border-top: 0; }
.rv-i.pending { margin: 6px -10px 0; padding: 0 10px; border: 0; border-radius: var(--r3); background: #fff8e6; }
.rv-row { display: grid; grid-template-columns: 32px 1fr 24px; gap: 12px; align-items: start; padding: 12px 0; cursor: pointer; border-radius: var(--r2); outline: none; }
.rv-row:focus-visible { box-shadow: 0 0 0 2px var(--blue); }
.rv-av { width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; background: hsl(var(--h) 70% 92%); color: hsl(var(--h) 60% 32%); font: 700 14px/1 var(--f); flex: none; }
.rv-mid { min-width: 0; }
.rv-h2 { display: flex; align-items: center; gap: 4px 10px; flex-wrap: wrap; }
.rv-h2 b { font: 700 15px/20px var(--f); color: var(--t1); }
.rv2 .rv-h2 .rs svg.st { width: 14px; height: 14px; }
.rv-h2 time { margin-left: auto; font: 400 13px/20px var(--f); color: var(--t3); }
.rv-badge { display: inline-block; height: 22px; padding: 0 8px; border-radius: 6px; background: var(--fill); color: var(--t2); font: 500 13px/22px var(--f); }
.rv-badge.wait { background: #ffe9a8; color: #6b4a00; }
.rv-prev { margin: 2px 0 0; font: 400 15px/21px var(--f); color: var(--t2); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; overflow-wrap: anywhere; transition: opacity .2s; }
.rv-chev { width: 24px; height: 24px; margin-top: 4px; color: var(--t3); transition: transform .25s var(--ease), color .15s; }
.rv-chev svg { width: 24px; height: 24px; }
.rv-row:hover .rv-chev { color: var(--t1); }
.rv-i.open .rv-chev { transform: rotate(180deg); }
.rv-i.open .rv-prev { -webkit-line-clamp: unset; display: none; }
.rv-more { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .3s var(--ease); }
.rv-i.open .rv-more { grid-template-rows: 1fr; }
.rv-more-in { overflow: hidden; min-height: 0; padding-left: 44px; }
.rv-i.open .rv-more-in { padding-bottom: 14px; }
.rv-pc { margin: 8px 0 0; font: 400 15px/22px var(--f); color: var(--t1); overflow-wrap: anywhere; }
.rv-pc b { display: block; margin-bottom: 1px; font: 700 12px/16px var(--f); letter-spacing: .05em; text-transform: uppercase; }
.rv-pc.pro b { color: var(--ok); } .rv-pc.con b { color: #d6342a; }
.rv-t { margin: 8px 0 0; font: 400 15px/22px var(--f); color: var(--t2); overflow-wrap: anywhere; }
.rv-note { margin: 8px 0 0; font: 400 14px/20px var(--f); color: #6b4a00; }
.rv-f { display: flex; align-items: center; gap: 6px; margin-top: 10px; }
.rv-help { display: inline-flex; align-items: center; gap: 6px; height: 32px; padding: 0 12px; border-radius: 10px; background: var(--fill); color: var(--t1); font: 500 14px/1 var(--f); transition: background .15s, color .15s; }
.rv-help:hover { background: var(--fill-2); }
.rv-help svg { width: 16px; height: 16px; }
.rv-help span { color: var(--t3); }
.rv-help.on { background: var(--blue-bg); color: var(--blue); } .rv-help.on span { color: var(--blue); }
.rv-rep { height: 32px; padding: 0 10px; border-radius: 10px; font: 400 14px/1 var(--f); color: var(--t3); }
.rv-rep:hover:not(:disabled) { color: var(--t1); background: var(--fill); }
.rv-all { display: flex; align-items: center; justify-content: center; gap: 4px; width: 100%; height: 44px; margin-top: 4px; border-radius: var(--r2); background: var(--fill); font: 500 15px/1 var(--f); color: var(--t1); transition: background .15s; }
.rv-all:hover { background: var(--fill-2); }
.rv-all svg { width: 22px; height: 22px; }
.rv-empty2 { margin: 14px 0 0; font: 400 15px/22px var(--f); color: var(--t3); }

/* вход / форма / «отправлено» */
.rv-card { margin-top: 18px; padding: 24px; border-radius: var(--r3); background: #fff; box-shadow: inset 0 0 0 2px var(--stroke-2); }
.rv-card h5 { margin: 0 0 6px; font: 700 20px/26px var(--f); color: var(--t1); }
.rv-card > p { margin: 0 0 18px; font: 400 16px/24px var(--f); color: var(--t2); }
.rv-card.login, .rv-card.done { text-align: center; display: grid; justify-items: center; }
.rv-card.login > p, .rv-card.done > p { max-width: 460px; }
.rv-lock, .rv-ok { width: 56px; height: 56px; border-radius: 18px; display: grid; place-items: center; margin-bottom: 14px; background: var(--blue-bg); color: var(--blue); }
.rv-ok { background: var(--green-bg); color: var(--ok); }
.rv-lock svg, .rv-ok svg { width: 28px; height: 28px; }
.rv-g { display: inline-flex; align-items: center; justify-content: center; gap: 12px; height: 52px; padding: 0 28px; border-radius: var(--r2); background: #fff; box-shadow: inset 0 0 0 2px var(--stroke-2); font: 500 17px/1 var(--f); color: var(--t1); transition: box-shadow .15s, background .15s; }
.rv-g:hover { background: var(--fill); box-shadow: inset 0 0 0 2px var(--fill-2); }
.rv-g svg { flex: none; }
.rv-card.login small { margin-top: 12px; font: 400 13px/18px var(--f); color: var(--t3); }

.rv-me { display: flex; align-items: center; gap: 12px; padding-bottom: 18px; margin-bottom: 4px; border-bottom: 1px solid var(--stroke-2); }
.rv-me > div { display: grid; min-width: 0; }
.rv-me b { font: 700 16px/22px var(--f); }
.rv-me span:not(.rv-av) { font: 400 14px/18px var(--f); color: var(--t3); overflow: hidden; text-overflow: ellipsis; }
.rv-out { margin-left: auto; height: 36px; padding: 0 12px; border-radius: 10px; font: 500 14px/1 var(--f); color: var(--t2); }
.rv-out:hover { background: var(--fill); color: var(--t1); }
.rv-lbl { display: block; margin: 18px 0 8px; font: 700 14px/18px var(--f); color: var(--t1); }
.rv-lbl i { font-style: normal; font-weight: 400; color: var(--t3); }
.rv-pick2 { display: flex; align-items: center; gap: 4px; margin-left: -4px; }
.rv-pick2 button { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 12px; color: var(--t3); transition: background .15s, transform .15s; }
.rv-pick2 button:hover { background: var(--fill); transform: scale(1.06); }
.rv-pick2 button svg.st { width: 32px; height: 32px; }
.rv-rt { margin-left: 10px; font: 500 16px/22px var(--f); color: var(--t2); }
.rv-terms { display: flex; flex-wrap: wrap; gap: 8px; }
.rv-terms button { height: 40px; padding: 0 16px; border-radius: 12px; background: var(--fill); font: 500 15px/1 var(--f); color: var(--t1); transition: background .15s, color .15s; }
.rv-terms button:hover { background: var(--fill-2); }
.rv-terms button.on { background: var(--blue); color: #fff; }
.rv-two { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.rv-form2 textarea { width: 100%; box-sizing: border-box; padding: 12px 14px; border: 0; border-radius: var(--r2); background: var(--fill); color: var(--t1); font: 400 16px/24px var(--f); outline: none; resize: vertical; min-height: 84px; transition: box-shadow .15s, background .15s; }
.rv-form2 textarea::placeholder { color: var(--t3); }
.rv-form2 textarea:focus { background: #fff; box-shadow: inset 0 0 0 2px var(--blue); }
.rv-chk { display: flex; align-items: flex-start; gap: 12px; margin-top: 18px; cursor: pointer; font: 400 15px/22px var(--f); color: var(--t2); }
.rv-chk input { appearance: none; flex: none; width: 22px; height: 22px; margin: 0; border-radius: 7px; background: var(--fill); box-shadow: inset 0 0 0 2px var(--stroke-2); display: grid; place-items: center; cursor: pointer; transition: background .15s; }
.rv-chk input:checked { background: var(--blue); box-shadow: none; }
.rv-chk input:checked::after { content: ""; width: 6px; height: 11px; margin-top: -2px; border: solid #fff; border-width: 0 2.5px 2.5px 0; transform: rotate(45deg); }
.rv-err { margin: 14px 0 0; padding: 10px 14px; border-radius: var(--r2); background: #fdecea; color: #b3261e; font: 500 15px/22px var(--f); }
.rv-act { display: flex; gap: 8px; margin-top: 20px; }
.rv-rules { margin: 14px 0 0; font: 400 13px/18px var(--f); color: var(--t3); }

@media (max-width: 680px) {
  .rv-sum2 { gap: 16px; padding: 12px 16px; } .rv-dist { max-width: 120px; }
  .rv-two { grid-template-columns: 1fr; gap: 0; }
  .rv-more-in { padding-left: 0; }
  .rv-h2 time { margin-left: 0; width: 100%; }
  .rv-card { padding: 18px; }
  .rv-pick2 button { width: 48px; height: 48px; }
  .rv-sort { width: 100%; overflow-x: auto; } .rv-sort button { flex: none; }
  .rv-act .btn { flex: 1; }
}

/* карточка: строки ведут на страницу отзывов; страница: полная сводка со счётчиками */
.rv-chev.go { color: var(--t3); }
.rv-chev.go svg { width: 20px; height: 20px; margin: 2px; }
.rv-row:hover .rv-chev.go { color: var(--blue); }
.rv-bar .btn.ghost { background: var(--fill); color: var(--t1); }
.rv-bar .btn.ghost:hover { background: var(--fill-2); }
.rv-page .rv-dist { max-width: 360px; gap: 5px; }
.rv-page .rv-dist > div { grid-template-columns: 10px 1fr 28px; }
.rv-page .rv-dist em { font-style: normal; text-align: right; color: var(--t2); font-weight: 500; }
.rv-page .rv-list2 { margin-top: 10px; }
.rv-page .rv-row { padding: 16px 0; }
.rv-page .rv-prev { -webkit-line-clamp: 3; }
.rvp .s-title { font-size: 22px; line-height: 28px; }

/* блок отзывов в карточке: серая шапка (оценка + белая кнопка «Все отзывы»), отзывы, внизу призыв и синяя «Написать отзыв» */
.rv-box { position: relative; padding: 0; overflow: hidden; border-radius: var(--r3); box-shadow: none; }
.rv-box::after { content: ""; position: absolute; inset: 0; border-radius: inherit; box-shadow: inset 0 0 0 2px var(--stroke); pointer-events: none; }
.rv-hd { display: flex; align-items: center; gap: 0; min-height: 64px; padding: 0 8px 0 0; background: var(--fill); }
.rv-hd h4 { margin: 0; padding: 0 14px 0 20px; font: 700 20px/28px var(--f); color: var(--t1); }
.rv-avg { display: inline-flex; align-items: center; gap: 8px; }
.rv-avg b { font: 700 16px/1 var(--f); color: var(--t1); }
.rv-avg i { font: 400 14px/1 var(--f); font-style: normal; color: var(--t2); }
.rv2 .rv-avg .rs svg.st { width: 15px; height: 15px; }
.rv-link { margin-left: auto; display: inline-flex; align-items: center; gap: 2px; height: 44px; padding: 0 12px 0 18px; border-radius: var(--r2); background: #fff; color: var(--t1); font: 500 16px/1 var(--f); box-shadow: 0 0 0 1.5px var(--fill-2); transition: background .15s, box-shadow .15s; }
.rv-link:hover { background: var(--blue-bg); color: var(--blue); box-shadow: 0 0 0 1.5px var(--blue-bg); }
.rv-link svg { width: 22px; height: 22px; transform: rotate(-90deg); }
.rv-box .rv-list2 { margin: 0; padding: 6px 20px; }
.rv-box .rv-i { border-top: 0; }
.rv-box .rv-i + .rv-i { border-top: 1px solid var(--stroke-2); }
.rv-box .rv-row { display: block; margin: 0 -12px; padding: 14px 12px; transition: background .15s; }
.rv-box .rv-row:hover { background: var(--fill); }
.rv-box .rv-row .rv-av { display: none; }
.rv-box .rv-h2 { gap: 6px 10px; margin-bottom: 4px; }
.rv-box .rv-h2 time { margin: 0; font-size: 14px; }
.rv-box .rv-h2 .rs { margin-left: auto; }
.rv2 .rv-box .rv-h2 .rs svg.st { width: 16px; height: 16px; }
.rv-box .rv-prev { margin: 0; -webkit-line-clamp: 2; font: 400 16px/22px var(--f); color: var(--t1); }
.rv-box .rv-i.pending { margin: 0 -12px; padding: 0; border-radius: var(--r2); }
.rv-box .rv-i.pending .rv-row { margin: 0; }
.rv-foot { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 20px; border-top: 1px solid var(--stroke-2); }
.rv-foot span { font: 400 15px/20px var(--f); color: var(--t2); }
.rv-foot .btn { height: 44px; padding: 0 20px; font-size: 16px; flex: none; }
.rv-box .rv-empty2 { margin: 0; padding: 18px 20px 4px; }
@media (max-width: 680px) { .rv-hd { min-height: 56px; } .rv-hd h4 { padding: 0 10px 0 16px; font-size: 18px; } .rv-avg i { display: none; } .rv-link { height: 40px; padding: 0 8px 0 14px; } .rv-box .rv-list2 { padding: 4px 14px; } .rv-foot { padding: 12px 14px; flex-wrap: wrap; } .rv-foot span { display: none; } .rv-foot .btn { width: 100%; } }
.rv-page .rv-h2 time { margin-left: 0; } .rv-page .rv-h2 .rs { margin-left: auto; }

/* кнопка «+» вместо крупной «Написать отзыв» */
.rv-plus { flex: none; display: inline-flex; align-items: center; justify-content: center; gap: 6px; width: 44px; height: 44px; margin-left: 8px; border-radius: var(--r2); background: #fff; color: var(--t1); box-shadow: 0 0 0 1.5px var(--fill-2); transition: background .15s, color .15s, box-shadow .15s; }
.rv-plus:hover { background: var(--blue-bg); color: var(--blue); box-shadow: 0 0 0 1.5px var(--blue-bg); }
.rv-plus svg { width: 22px; height: 22px; }
.rv-plus.lbl { width: auto; margin: 0; padding: 0 16px 0 12px; background: var(--fill); box-shadow: none; font: 500 16px/1 var(--f); }
.rv-plus.lbl:hover { background: var(--blue-bg); }
.rv-hd .rv-link { margin-left: auto; }
.rv-box .rv-list2 { padding-bottom: 8px; }
.rv-box .rv-empty2 { padding-bottom: 18px; }

/* страница отзывов: отзыв целиком, крупнее, без раскрытия */
.rv-page .rv-bar { margin: 14px 0 4px; }
.rv-page .rv-list2 { margin-top: 6px; }
.rv-page .rv-i { border-top: 1px solid var(--stroke-2); }
.rv-page .rv-i:first-child { border-top: 0; }
.rv-full { display: grid; grid-template-columns: 44px 1fr; gap: 16px; padding: 22px 0; }
.rv-page .rv-av { width: 44px; height: 44px; font-size: 18px; }
.rv-page .rv-h2 { gap: 6px 12px; margin-bottom: 8px; }
.rv-page .rv-h2 b { font: 700 18px/24px var(--f); }
.rv-page .rv-h2 time { font: 400 15px/24px var(--f); }
.rv2 .rv-page .rv-h2 .rs svg.st { width: 18px; height: 18px; }
.rv-page .rv-badge { height: 26px; padding: 0 10px; font: 500 14px/26px var(--f); margin-bottom: 4px; }
.rv-page .rv-pc { margin-top: 10px; font: 400 17px/26px var(--f); }
.rv-page .rv-pc b { font-size: 13px; line-height: 18px; }
.rv-page .rv-t { margin-top: 10px; font: 400 17px/26px var(--f); }
.rv-page .rv-f { margin-top: 14px; }
.rv-page .rv-help { height: 36px; padding: 0 14px; font-size: 15px; }
.rv-page .rv-rep { height: 36px; font-size: 15px; }
.rv-page .rv-i.pending { margin: 8px -12px 0; padding: 0 12px; border-radius: var(--r3); }
.rv-page .rv-i.pending + .rv-i { border-top: 0; }
.rv-page .rv-i.flash { animation: rvflash 1.6s var(--ease); }
@keyframes rvflash { 0%, 40% { background: var(--blue-bg); } 100% { background: transparent; } }

/* заголовок страницы: понятная кнопка «Назад» и ровное название */
.d2 .d-top .back { display: inline-flex; align-items: center; gap: 4px; height: 40px; padding: 0 16px 0 10px; border-radius: var(--r2); background: var(--fill); color: var(--t1); font: 500 16px/1 var(--f); flex: none; transition: background .15s; }
.d2 .d-top .back:hover { background: var(--fill-2); }
.d2 .d-top .back svg { width: 22px; height: 22px; }
.d2 .d-top .s-title { margin: 0; font: 700 22px/28px var(--f); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
@media (max-width: 680px) { .rv-full { grid-template-columns: 1fr; gap: 10px; } .rv-full .rv-av { display: none; } .rv-page .rv-h2 b { font-size: 17px; } }

/* страница отзывов — во всю высоту и пошире, чтобы помещалось 2–3 отзыва; «+ Отзыв» синий, вровень с переключателем сортировки */
.d2 .sheet.rvp { width: min(860px, calc(100% - 32px)); }
.rv-page .rv-plus.lbl { height: 38px; padding: 0 16px 0 12px; border-radius: 10px; background: var(--blue); color: #fff; font: 500 15px/1 var(--f); }
.rv-page .rv-plus.lbl:hover { background: var(--blue-2); }
.rv-page .rv-sort button { height: 32px; }
.rv-full { padding: 18px 0; }
@media (max-width: 680px) { .d2 .sheet.rvp { width: calc(100% - 16px); } }
.rv-page .rv-sum2 { padding: 10px 18px; } .rv-page .rv-big b { font-size: 34px; } .rv-page .rv-dist { gap: 3px; }
.rv-page .rv-bar { margin: 10px 0 0; }

/* страница отзывов — компактные отзывы: без бейджа срока, плюсы/минусы одной строкой с маркером */
.rv-full { grid-template-columns: 36px 1fr; gap: 12px; padding: 14px 0; }
.rv-page .rv-av { width: 36px; height: 36px; font-size: 15px; }
.rv-page .rv-h2 { gap: 4px 10px; margin-bottom: 4px; }
.rv-page .rv-h2 b { font: 700 16px/22px var(--f); }
.rv-page .rv-h2 time { font: 400 14px/22px var(--f); }
.rv2 .rv-page .rv-h2 .rs svg.st { width: 16px; height: 16px; }
.rv-page .rv-pc { position: relative; margin: 2px 0 0; padding-left: 20px; font: 400 15px/22px var(--f); color: var(--t1); }
.rv-page .rv-pc i { position: absolute; left: 0; top: 0; width: 16px; text-align: center; font: 700 17px/22px var(--f); font-style: normal; }
.rv-page .rv-pc.pro i { color: var(--ok); } .rv-page .rv-pc.con i { color: #d6342a; }
.rv-page .rv-t { margin: 4px 0 0; font: 400 15px/22px var(--f); color: var(--t2); }
.rv-page .rv-f { gap: 2px; margin-top: 6px; margin-left: -8px; }
.rv-page .rv-help { height: 30px; padding: 0 10px; background: none; font: 500 14px/1 var(--f); color: var(--t2); }
.rv-page .rv-help:hover { background: var(--fill); color: var(--t1); }
.rv-page .rv-help.on { background: var(--blue-bg); color: var(--blue); }
.rv-page .rv-rep { height: 30px; padding: 0 10px; font-size: 14px; }

/* заголовок: «Отзывы» + значок сервиса вместо названия */
.rv-ttl { display: flex; align-items: center; gap: 12px; }
.rv-tool .thumb { width: 36px; height: 36px; border-radius: 10px; }

/* итоговая плашка на странице: оценка слева, гистограмма занимает всё остальное место */
.rv-page .rv-sum2 { display: grid; grid-template-columns: auto 1fr; gap: 32px; padding: 14px 20px; }
.rv-page .rv-dist { max-width: none; margin-left: 0; gap: 4px; }
.rv-page .rv-dist > div { grid-template-columns: 12px 1fr 24px; gap: 12px; }
.rv-page .rv-dist .bar { height: 6px; }
.rv-page .rv-big { gap: 16px; }

/* отдельное окно отзыва */
.d2 .sheet.rvw { width: min(560px, calc(100% - 32px)); }
.rv-write .rv-card { margin-top: 8px; box-shadow: none; padding: 4px 0 0; }
.rv-write .rv-card.login, .rv-write .rv-card.done { padding: 24px 0 8px; }
@media (max-width: 680px) { .d2 .sheet.rvw { width: calc(100% - 16px); } .rv-page .rv-sum2 { gap: 16px; } }

/* отзыв на странице — классическая структура: автор и оценка сверху, ниже «Достоинства / Недостатки / Комментарий» */
.rv-full { display: block; padding: 16px 0 14px; }
.rv-top { display: flex; align-items: center; gap: 12px; margin-bottom: 8px; }
.rv-who { display: grid; min-width: 0; margin-right: auto; }
.rv-who b { font: 700 16px/20px var(--f); color: var(--t1); }
.rv-who time { font: 400 13px/18px var(--f); color: var(--t3); }
.rv-top .rs { margin-left: 0; }
.rv2 .rv-page .rv-top .rs svg.st { width: 17px; height: 17px; }
.rv-dl { display: grid; grid-template-columns: 112px 1fr; gap: 6px 14px; margin: 0; }
.rv-dl dt { font: 400 14px/22px var(--f); color: var(--t3); }
.rv-dl dd { margin: 0; font: 400 15px/22px var(--f); color: var(--t1); overflow-wrap: anywhere; }
.rv-page .rv-f { margin: 8px 0 0 -8px; }
.rv-page .rv-note { margin: 6px 0 0; }
@media (max-width: 680px) { .rv-dl { grid-template-columns: 1fr; gap: 0; } .rv-dl dt { margin-top: 6px; line-height: 18px; } }

/* окно «Оставить отзыв»: только крестик сверху, кнопка отправки всегда видна внизу */
.rv-wtop { justify-content: flex-end; padding-bottom: 0; min-height: 0; }
.rv-wtop .s-x { margin-left: auto; }
.rv-write .rv-form2 { position: relative; padding-bottom: 0; }
.rv-write .rv-act { position: sticky; bottom: 0; z-index: 2; margin: 18px -2px 0; padding: 14px 2px 4px; background: #fff; box-shadow: 0 -1px 0 var(--stroke-2); }
.rv-write .rv-act .btn { height: 48px; padding: 0 28px; font-size: 16px; }
.rv-write .rv-act .btn:first-child { flex: 1; }
.rv-write .rv-rules { margin-top: 8px; }
.rv-write .rv-lbl { margin: 14px 0 6px; }
.rv-write .rv-me { padding-bottom: 12px; }
.d2 .sheet.rvw { border-radius: var(--r4); }
.rv-write .rv-form2 textarea { min-height: 64px; }
.rv-write .rv-me { margin-bottom: 0; }

/* отзыв на странице: аватар слева, текст под именем; плюсы и минусы — цветные плашки с подписью в строку */
.rv-top { margin-bottom: 6px; }
.rv-col { padding-left: 48px; }
.rv-body2 { display: grid; gap: 6px; }
.rv-page .rv-body2 .rv-pc { margin: 0; padding: 8px 12px; border-radius: 10px; font: 400 15px/22px var(--f); color: var(--t1); }
.rv-page .rv-body2 .rv-pc b { display: inline; margin: 0 8px 0 0; font: 700 15px/22px var(--f); letter-spacing: 0; text-transform: none; }
.rv-page .rv-body2 .rv-pc.pro { background: var(--green-bg); } .rv-page .rv-body2 .rv-pc.pro b { color: var(--ok); }
.rv-page .rv-body2 .rv-pc.con { background: #fdecea; } .rv-page .rv-body2 .rv-pc.con b { color: #d6342a; }
.rv-page .rv-body2 .rv-t { margin: 2px 0 0; padding: 0 2px; font: 400 15px/22px var(--f); color: var(--t1); }
.rv-ph { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
.rv-ph button { width: 76px; height: 76px; border-radius: 10px; overflow: hidden; box-shadow: inset 0 0 0 1px var(--stroke-2); transition: transform .15s; }
.rv-ph button:hover { transform: scale(1.04); }
.rv-ph img { width: 100%; height: 100%; object-fit: cover; display: block; }
.rv-page .rv-f { margin: 6px 0 0 -8px; }
@media (max-width: 680px) { .rv-col { padding-left: 0; } }

/* форма: кнопка не растянута, фото, подтверждение выхода */
.rv-write .rv-act .btn:first-child { flex: none; }
.rv-act { align-items: center; }
.rv-photos { display: flex; flex-wrap: wrap; gap: 8px; }
.rv-ph-i { position: relative; width: 64px; height: 64px; border-radius: 10px; overflow: hidden; box-shadow: inset 0 0 0 1px var(--stroke-2); }
.rv-ph-i img { width: 100%; height: 100%; object-fit: cover; display: block; }
.rv-ph-i button { position: absolute; top: 3px; right: 3px; width: 22px; height: 22px; border-radius: 50%; display: grid; place-items: center; background: rgba(10, 16, 32, .65); color: #fff; }
.rv-ph-i button svg { width: 14px; height: 14px; }
.rv-add { display: inline-flex; align-items: center; gap: 8px; height: 64px; padding: 0 18px 0 14px; border-radius: 10px; background: var(--fill); color: var(--t2); font: 500 15px/1 var(--f); cursor: pointer; transition: background .15s, color .15s; }
.rv-add:hover { background: var(--blue-bg); color: var(--blue); }
.rv-add svg { width: 24px; height: 24px; }
.rv-conf { margin-left: auto; display: inline-flex; align-items: center; gap: 4px; font: 400 14px/20px var(--f); color: var(--t2); }
.rv-conf button { height: 32px; padding: 0 12px; border-radius: 9px; font: 500 14px/1 var(--f); background: var(--fill); color: var(--t1); }
.rv-conf button:hover { background: var(--fill-2); }
.rv-conf button.yes { background: #fdecea; color: #d6342a; margin-left: 8px; }
.rv-conf button.yes:hover { background: #fbd9d5; }

/* просмотр фото */
.rv-lb { position: fixed; inset: 0; z-index: 60; display: grid; place-items: center; background: rgba(10, 16, 32, .88); cursor: zoom-out; animation: lbin .2s; }
.rv-lb img { max-width: min(92vw, 900px); max-height: 82vh; border-radius: 12px; cursor: default; box-shadow: 0 20px 60px rgba(0, 0, 0, .4); }
.rv-lb .lb-x, .rv-lb .lb-n { position: absolute; width: 48px; height: 48px; border-radius: 50%; display: grid; place-items: center; background: rgba(255, 255, 255, .14); color: #fff; }
.rv-lb .lb-x:hover, .rv-lb .lb-n:hover { background: rgba(255, 255, 255, .26); }
.rv-lb .lb-x { top: 16px; right: 16px; } .rv-lb .lb-n { right: 16px; top: 50%; margin-top: -24px; } .rv-lb .lb-n svg { transform: rotate(-90deg); }
.rv-lb svg { width: 26px; height: 26px; }
.rv-lb .lb-c { position: absolute; bottom: 18px; left: 50%; transform: translateX(-50%); color: rgba(255, 255, 255, .7); font: 500 14px/1 var(--f); }
@keyframes lbin { from { opacity: 0; } }


/* заголовок страницы отзывов: значок сервиса и слово «Отзывы» одной группой, как фирменный знак */
.d2 .d-top .rv-ttl { display: flex; align-items: center; gap: 12px; margin: 0 auto 0 4px; }
.d2 .d-top .rv-tool { display: block; flex: none; }
.d2 .d-top .rv-tool .thumb { width: 40px; height: 40px; border-radius: 12px; box-shadow: inset 0 0 0 1.5px var(--stroke-2); }
.d2 .d-top .rv-tool .thumb img { padding: 0; }
.d2 .d-top .rv-ttl > span:last-child { font: 700 24px/28px var(--f); letter-spacing: -.02em; }

/* ===== отзыв на странице отзывов: шапка (автор · звёзды · дата, справа «полезно» и жалоба), текст, справа до трёх фото ===== */
.rv-page .rr { padding: 20px 0; border-top: 1px solid var(--stroke-2); }
.rv-page .rr:first-child { border-top: 0; padding-top: 12px; }
.rv-page .rr.pending { margin: 8px 0; padding: 16px; border: 0; border-radius: var(--r3); background: #fff8e6; }
.rv-page .rr.pending + .rr { border-top: 0; }
.rv-page .rr.flash { animation: rvflash 1.6s var(--ease); }
.rr-h { display: flex; align-items: center; gap: 12px; }
.rv-page .rr-h .rv-av { width: 40px; height: 40px; font-size: 16px; }
.rr-h > div:first-of-type { min-width: 0; display: grid; gap: 2px; }
.rr-h b { font: 700 16px/20px var(--f); color: var(--t1); }
.rr-h > div > span { display: flex; align-items: center; gap: 8px; }
.rr-h time { font: 400 14px/18px var(--f); color: var(--t3); }
.rv2 .rr-h .rs svg.st { width: 15px; height: 15px; }
.rr-h .rv-badge { margin-left: auto; align-self: flex-start; }

.rr-f { margin-left: auto; align-self: flex-start; display: flex; gap: 4px; }
.rr-f button { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-width: 36px; height: 36px; padding: 0 9px; border-radius: 18px; color: var(--t3); font: 600 14px/1 var(--f); transition: color .15s, background .15s; }
.rr-f button:hover:not(:disabled) { color: var(--t1); background: var(--fill); }
.rr-f svg { width: 18px; height: 18px; flex: none; }
.rr-f .rr-help span:empty { display: none; }
.rr-f .rr-help.on, .rr-f .rr-help.on:hover { color: var(--blue); background: var(--blue-bg); }
.rr-f .rr-help.on svg { fill: currentColor; }
.rr-f .rr-rep.done { color: var(--ok); cursor: default; }

.rr-b { margin-top: 12px; }
.rr-b.has-ph { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 20px; align-items: start; }
.rr-t { display: grid; gap: 10px; }
.rr-p { margin: 0; font: 400 16px/24px var(--f); color: var(--t1); overflow-wrap: anywhere; }
.rr-p b { display: block; font: 700 14px/20px var(--f); color: var(--t1); }
.rr-phs { display: flex; gap: 8px; }
.rr-phs button { width: 72px; height: 72px; border-radius: 12px; overflow: hidden; box-shadow: inset 0 0 0 1px var(--stroke-2); transition: opacity .15s; }
.rr-phs button:hover { opacity: .85; }
.rr-phs img { width: 100%; height: 100%; object-fit: cover; display: block; }
@media (max-width: 680px) { .rr-b.has-ph { gap: 14px; } .rr-phs { gap: 6px; } .rr-phs button { width: 56px; height: 56px; } }
@media (max-width: 520px) { .rr-b.has-ph { grid-template-columns: 1fr; gap: 12px; } .rr-phs button { width: 72px; height: 72px; } }
.rr-f svg.lu { fill: none; stroke: currentColor; }
.rr-f .rr-help.on svg.lu { fill: currentColor; fill-opacity: .18; }

/* собранный отзыв: аватар слева, всё остальное — одной колонкой под именем; плюсы/минусы — строками с подписью в начале */
.rv-page .rr { display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 0 14px; padding: 18px 0; }
.rv-page .rr .rv-av { width: 40px; height: 40px; font-size: 16px; }
.rr-m { min-width: 0; }
.rr-h { align-items: flex-start; min-height: 40px; }
.rr-h > div:first-of-type { padding-top: 1px; }
.rr-b { margin-top: 8px; }
.rr-b.has-ph { gap: 16px; }
.rr-t { gap: 6px; }
.rr-p { font: 400 15px/22px var(--f); }
.rr-pc { color: var(--t2); }
.rr-pc b { display: inline; font: 600 15px/22px var(--f); color: var(--t1); margin-right: 2px; }
.rr-pc b::after { content: ":"; }
.rr-phs button { width: 64px; height: 64px; border-radius: 10px; }
.rr-f { margin-top: -2px; margin-right: -6px; }
.rv-page .rr.pending { padding: 16px; }
.rv-page .rr .rv-note { margin-top: 10px; }
@media (max-width: 680px) { .rr-phs button { width: 52px; height: 52px; } }
@media (max-width: 520px) { .rv-page .rr { grid-template-columns: 32px minmax(0, 1fr); gap: 0 10px; } .rv-page .rr .rv-av { width: 32px; height: 32px; font-size: 14px; } .rr-phs button { width: 64px; height: 64px; } }

/* правка своего отзыва, тестовый вход (только локально) */
.rv-edit { margin: 0; padding: 10px 12px; border-radius: var(--r2); background: var(--fill); font: 400 14px/20px var(--f); color: var(--t2); }
.rv-del { margin-left: auto; height: 44px; padding: 0 4px; font: 500 14px/1 var(--f); color: var(--t3); }
.rv-del:hover { color: #c0392b; }
.rv-dev { margin: 12px 0 0; font: 400 13px/18px var(--f); color: var(--t3); }
.rv-dev a { color: var(--blue); }

/* окно входа и «спасибо»: котик в коробке, ровная колонка по центру, кнопки одной ширины */
.rv-write .rv-card.login, .rv-write .rv-card.done { padding: 0 8px 12px; gap: 0; }
.rv-cat { width: 132px; margin: -4px 0 18px; }
.rv-cat svg { display: block; width: 100%; height: auto; overflow: visible; }
.rv-card.login h5, .rv-card.done h5 { margin: 0 0 8px; font: 700 24px/30px var(--f); letter-spacing: -.01em; max-width: 380px; text-wrap: balance; }
.rv-card.login > p, .rv-card.done > p { margin: 0 0 24px; max-width: 380px; font: 400 16px/24px var(--f); color: var(--t2); text-wrap: pretty; }
.rv-card.login .rv-g { width: min(340px, 100%); height: 52px; font: 500 17px/1 var(--f); }
.rv-card .rv-dev { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; width: min(340px, 100%); margin: 8px 0 0; }
.rv-card .rv-dev .btn { display: inline-flex; align-items: center; justify-content: center; text-align: center; height: 44px; padding: 0 12px; font: 500 15px/1 var(--f); text-decoration: none; }
.rv-card.login small { display: block; margin-top: 10px; font: 400 13px/18px var(--f); color: var(--t3); }
.rv-card.done .btn { min-width: 160px; }

/* заголовок страницы отзывов: значок сервиса + «Отзывы» и под ним название сервиса и число отзывов */
.d2 .d-top .rv-ttl { gap: 14px; align-items: center; }
.d2 .d-top .rv-tool .thumb { width: 48px; height: 48px; border-radius: 14px; }
.d2 .d-top .rv-ttl > span.rv-tt { display: grid; gap: 2px; font: inherit; letter-spacing: 0; min-width: 0; }
.d2 .d-top .rv-tt b { font: 700 24px/28px var(--f); letter-spacing: -.02em; color: var(--t1); }
.d2 .d-top .rv-tt i { font: 400 15px/20px var(--f); font-style: normal; color: var(--t3); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
@media (max-width: 520px) { .d2 .d-top .rv-tool .thumb { width: 42px; height: 42px; border-radius: 12px; } .d2 .d-top .rv-tt b { font-size: 21px; line-height: 24px; } .d2 .d-top .rv-ttl { gap: 10px; } }
