/* Buyer reviews: home-page section (hidden until the first approved review) and the /review form. */
[data-reviews][hidden] { display: none !important; }
.rsum { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; align-items: center; font-size: 16px; color: var(--ink-2); margin-top: 10px; }
.rstars { color: #b8782f; letter-spacing: 2px; font-size: 18px; }
.rgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 18px; }
.rgrid .tcard .rstars { font-size: 16px; }
.rgrid .tcard blockquote { white-space: pre-line; }
.rnote { margin: 22px 0 0; }
.rnote a { text-decoration: underline; }
.rmore { display: flex; justify-content: center; margin-top: 18px; }

.star-input { border: 0; padding: 0; margin: 0; min-width: 0; }
.star-input legend { font-size: 14px; color: var(--ink-2); padding: 0; margin-bottom: 6px; }
.star-row { display: flex; gap: 2px; }
.star-row input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.star-row label { font-size: 38px; line-height: 1; color: #cfc7bb; cursor: pointer; padding: 2px 4px; border-radius: 8px; }
.star-row label.on { color: #b8782f; }
.star-row input:focus-visible + label { outline: 2px solid var(--ink); }
.star-input.invalid legend { color: #b3261e; }
.consent-row { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; color: var(--ink-2); line-height: 1.5; }
.consent-row input { width: 20px; height: 20px; margin-top: 2px; flex: none; }
.consent-row.invalid { color: #b3261e; }
.review-status { font-size: 14px; font-weight: 500; color: #b3261e; min-height: 1em; }
.review-done { background: #eef6ee; border: 1px solid #b9d8b9; border-radius: 12px; padding: 18px; font-size: 16px; line-height: 1.6; }
.review-done b { display: block; font-size: 18px; margin-bottom: 4px; }
.info-item.static:hover strong { color: inherit; }
.info-item.static strong { font-size: 17px; }
.rgrid .tcard[hidden] { display: none; }
