/* =====================================================================
   reviews.css — единый вид карточек отзывов для всего сайта.

   Один и тот же формат карточки на главной ({lang}/index.php) и на
   деталках ({lang}/{slug}/index.php), на всех языках. Разметку рисует
   общий партиал assets/partials/review-cards.php, форму — этот файл.
   Подключается и в home.php, и в app-detail.php.

   Форма: звёзды сверху (заполненные + пустые), курсивная цитата в
   кавычках с декоративным знаком «"» в углу, автор снизу через тире и
   мелкая строка источника. Длинная цитата (>5 строк) обрезается и
   раскрывается по клику без JS — скрытый чекбокс (остаётся в таб-порядке)
   + два <label for> показывают «Читать полностью» / «Свернуть» через
   CSS :checked ~. Обёртку добавляет партиал только для длинных отзывов.

   Подпись автора прижата к нижнему краю карточки (flex-колонка +
   margin-top:auto), чтобы у карточек с разной длиной цитаты подписи
   стояли на одной линии. Токены (--amber/--navy/--border/...) приходят
   из site.css (деталка) и home.css (главная) — совпадают по значениям.
   ===================================================================== */
.reviews-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.review-card {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: 24px;
  border: 1px solid var(--border);
  border-radius: 18px;
  background: #fff;
  box-shadow: var(--shadow-card);
}
.review-card::before {
  content: "\201C";
  position: absolute; right: 18px; top: 6px;
  font-family: 'Nunito', sans-serif; font-size: 54px; line-height: 1; color: #DDEDE9;
}
.review-stars { color: var(--amber); font-size: 13px; letter-spacing: 2px; margin: 0 0 12px; }
.review-text { margin: 0; color: var(--navy); font-size: 14px; font-weight: 500; font-style: italic; line-height: 1.6; }
.review-text.is-clamped {
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 5; line-clamp: 5;
  overflow: hidden;
}
.review-toggle-input {
  position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0;
  overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.review-toggle-input:checked ~ .review-text.is-clamped {
  -webkit-line-clamp: unset; line-clamp: unset; overflow: visible;
}
.review-toggle { display: inline-block; width: fit-content; margin: 8px 0 0; color: var(--teal); font-size: 12.5px; font-weight: 700; cursor: pointer; }
.review-toggle-less { display: none; }
.review-toggle-input:checked ~ .review-toggle-more { display: none; }
.review-toggle-input:checked ~ .review-toggle-less { display: inline-block; }
.review-toggle-input:focus-visible ~ .review-toggle { outline: 2px solid var(--teal); outline-offset: 2px; border-radius: 4px; }
.review-author { margin-top: auto; padding-top: 14px; color: #5A707D; font-size: 12.5px; font-weight: 600; }
.review-meta { display: block; margin-top: 4px; color: #A0ADB5; font-size: 11px; font-weight: 600; }
@media (max-width: 900px) { .reviews-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .reviews-grid { grid-template-columns: 1fr; } }
