/* Рейтинг и отзывы: звёзды на карточках, блок отзывов в карточке товара, сортировка каталога */
.rating-stars { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; }
.rating-stars__bar { position: relative; display: inline-block; line-height: 1; white-space: nowrap; color: #d1d5db; letter-spacing: 1px; }
.rating-stars__fill { position: absolute; left: 0; top: 0; overflow: hidden; white-space: nowrap; color: #f5a524; letter-spacing: 1px; }
.rating-stars--empty .rating-stars__text { opacity: .65; }
.pd-rating-link { text-decoration: none; color: inherit; }

.catalog-sort { display: inline-flex; align-items: center; gap: 8px; margin-left: auto; font-size: 14px; }
.catalog-sort select, .filters-select { padding: 6px 10px; border-radius: 8px; border: 1px solid rgba(128, 128, 128, .4); background: transparent; color: inherit; }

.reviews { margin-top: 28px; }
.reviews__title { margin-bottom: 12px; }
.reviews__summary { display: flex; flex-wrap: wrap; gap: 24px; align-items: center; margin-bottom: 16px; }
.reviews__avg { font-size: 2.2rem; font-weight: 700; margin-right: 8px; }
.reviews__bars { list-style: none; margin: 0; padding: 0; min-width: 220px; }
.reviews__bars li { display: grid; grid-template-columns: 34px 1fr 28px; gap: 8px; align-items: center; font-size: 13px; }
.reviews__bar { height: 8px; border-radius: 4px; background: rgba(128, 128, 128, .25); overflow: hidden; }
.reviews__bar span { display: block; height: 100%; background: #f5a524; }
.reviews__empty, .reviews__hint { opacity: .8; }
.reviews__flash { padding: 10px 14px; border-radius: 10px; }
.reviews__flash--ok { background: rgba(25, 135, 84, .15); }
.reviews__flash--error { background: rgba(220, 53, 69, .15); }
.reviews__list { list-style: none; margin: 18px 0 0; padding: 0; display: grid; gap: 14px; }
.review { padding: 14px 16px; border-radius: 12px; background: rgba(128, 128, 128, .08); }
.review__head { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: baseline; }
.review__rating { color: #f5a524; letter-spacing: 1px; }
.review__badge { font-size: 12px; padding: 2px 8px; border-radius: 999px; background: rgba(25, 135, 84, .18); }
.review__text { margin: 8px 0 0; }
.review__photos { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.review__photos img { width: 88px; height: 88px; object-fit: cover; border-radius: 8px; }
.review-form { display: grid; gap: 12px; margin: 16px 0; padding: 16px; border-radius: 12px; background: rgba(128, 128, 128, .08); }
.review-form__field { display: grid; gap: 6px; }
.review-form__field textarea { padding: 10px; border-radius: 8px; border: 1px solid rgba(128, 128, 128, .4); background: transparent; color: inherit; font: inherit; }
.review-form__hint { font-size: 13px; opacity: .75; margin: 0; }
/* выбор звёзд: радио в обратном порядке, подсветка выбранной и всех правее в DOM (то есть меньших по значению) */
.review-form__stars { border: 0; padding: 0; margin: 0; display: inline-flex; flex-direction: row-reverse; justify-content: flex-end; gap: 4px; }
.review-form__stars legend { float: left; margin-right: 12px; font-size: 14px; }
.review-form__stars input { position: absolute; opacity: 0; pointer-events: none; }
.review-form__stars label { font-size: 30px; line-height: 1; cursor: pointer; color: #d1d5db; }
.review-form__stars input:checked ~ label, .review-form__stars label:hover, .review-form__stars label:hover ~ label { color: #f5a524; }
.review-form__stars input:focus-visible + label { outline: 2px solid #198754; border-radius: 4px; }
.review-form__consent { display: flex; gap: 10px; align-items: flex-start; font-size: 13px; line-height: 1.4; }
.review-form__consent input { margin-top: 3px; flex: none; }
.review-link { font-size: 13px; }
@media (max-width: 600px) { .catalog-sort { margin-left: 0; width: 100%; } }
