/* Site reviews: the public "What families say" block (reviews.js) and the movie page form (review-form.js). */
.site-reviews { padding-block: clamp(56px, 10vw, 110px); }
.site-reviews > h2 { margin: 0 0 12px; }
.site-reviews__summary { display: flex; flex-wrap: wrap; align-items: baseline; gap: 10px; margin: 0 0 24px; color: var(--ink); font: 700 1.05rem/1.3 var(--display); }
.site-reviews__stars { color: var(--violet); font-size: 1.35rem; letter-spacing: 0.06em; }
.site-reviews__list { display: grid; gap: 14px; margin: 0; padding: 0; list-style: none; grid-template-columns: minmax(0, 1fr); }
.site-reviews__item { padding: 18px; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--surface); }
.site-reviews__item-stars { margin: 0 0 8px; color: var(--violet); letter-spacing: 0.06em; }
.site-reviews__item blockquote { margin: 0; }
.site-reviews__item blockquote p { margin: 0; color: var(--text); font-family: var(--body); line-height: 1.55; overflow-wrap: anywhere; }
.site-reviews__by { margin: 10px 0 0; color: var(--muted); font: 600 0.88rem/1.4 var(--display); }
.site-reviews__rules { margin: 18px 0 0; color: var(--muted); font-size: 0.86rem; }
@media (min-width: 700px) { .site-reviews__list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1040px) { .site-reviews__list { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

.review-box { margin: 28px 0 0; padding: 24px 0 0; border-top: 1px solid var(--line); text-align: left; }
.review-box__title { margin: 0 0 12px; font: 800 1.25rem/1.2 var(--display); color: var(--ink); }
.review-box__stars { margin: 0 0 8px; color: var(--violet); font-size: 1.3rem; letter-spacing: 0.06em; }
.review-box__quote { margin: 0 0 12px; padding: 14px 16px; border-radius: 12px; background: #faf8ff; }
.review-box__quote p { margin: 0 0 6px; color: var(--text); overflow-wrap: anywhere; }
.review-box__quote footer { color: var(--muted); font: 600 0.88rem/1.4 var(--display); }
.review-box__note { margin: 0 0 14px; color: var(--muted); font-size: 0.92rem; }
.review-box__form { display: grid; gap: 10px; }
.review-box__rating { display: grid; gap: 6px; margin: 0 0 6px; padding: 0; border: 0; }
.review-box__rating legend { margin-bottom: 6px; color: var(--ink); font: 700 0.87rem/1.4 var(--display); }
.review-box__star { display: flex; align-items: center; gap: 10px; min-height: 44px; padding: 0 12px; border: 1px solid #e4ddec; border-radius: 12px; color: var(--ink); cursor: pointer; }
.review-box__star input { width: 20px; height: 20px; accent-color: var(--violet); }
.review-box__star span { color: var(--violet); letter-spacing: 0.04em; }
.review-box__star:has(input:checked) { border-color: var(--violet); background: var(--lavender); }
.review-box__label { margin-top: 6px; color: var(--ink); font: 700 0.87rem/1.4 var(--display); }
.review-box__input { width: 100%; min-height: 48px; border: 1px solid #d5ccdc; border-radius: 12px; padding: 12px 14px; background: #fff; color: var(--ink); font: inherit; font-size: 1rem; }
.review-box__input:focus { border-color: var(--violet); outline: 3px solid rgb(99 70 199 / 20%); }
.review-box__consent { display: flex; gap: 10px; align-items: flex-start; min-height: 44px; margin-top: 6px; color: var(--text); font-size: 0.92rem; }
.review-box__consent input { width: 20px; height: 20px; margin-top: 2px; flex: none; accent-color: var(--violet); }
.review-box__form .button { justify-self: start; margin-top: 6px; }
.review-box__status:empty { display: none; }
.review-box__status { margin: 0; padding: 12px 14px; border-radius: 12px; background: #e6f7ec; color: #1b5e33; font-size: 0.92rem; font-weight: 600; }
.review-box__status[data-tone="error"] { background: #fdeaea; color: #8a1f1f; }
.review-box .button--secondary { background: #f7f3ff; color: var(--violet); border: 1px solid #cfc0ef; }
