.product-reviews { scroll-margin-top: 110px; }
.product-reviews [hidden] { display: none !important; }
.product-reviews__subject { color: #526078; margin-top: 0; }
.product-reviews__summary { display: flex; align-items: center; flex-wrap: wrap; gap: 18px; margin: 22px 0; }
.product-reviews__summary strong { color: #183d8d; font-size: 2rem; line-height: 1.2; }
.product-reviews__summary small { font-size: 1rem; color: #526078; }
.product-reviews__empty { padding: 18px; background: #f5f7fb; border-radius: 12px; }
.product-reviews__item { padding: 20px 0; border-bottom: 1px solid #e1e7ef; }
.product-reviews__item-head { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; }
.product-reviews__verified { font-size: .78rem; background: #eaf5ee; color: #24663c; padding: 4px 9px; border-radius: 20px; }
.product-reviews__stars { color: #986500; margin-left: auto; letter-spacing: 2px; }
.product-reviews__body { white-space: pre-wrap; overflow-wrap: anywhere; }
.product-reviews__item time { font-size: .8rem; color: #64748b; }
.product-reviews__write { margin-top: 24px; padding-top: 8px; }
.product-reviews__form { display: grid; gap: 16px; max-width: 680px; margin-top: 18px; }
.product-reviews__form label { display: grid; gap: 7px; font-weight: 500; }
.product-reviews__form input[type=text], .product-reviews__form textarea, .product-reviews__form select { box-sizing: border-box; width: 100%; border: 1px solid #bac6d8; border-radius: 9px; padding: 11px 13px; font: inherit; background: #fff; color: #18243b; }
.product-reviews__form textarea { resize: vertical; min-height: 140px; }
.product-reviews__form input:focus-visible, .product-reviews__form textarea:focus-visible, .product-reviews__form select:focus-visible { outline: 3px solid #bed4ff; outline-offset: 2px; }
.product-reviews__form .product-reviews__consent { display: flex; align-items: flex-start; gap: 10px; font-size: .88rem; font-weight: 400; }
.product-reviews__consent input { width: 18px; height: 18px; margin: 3px 0 0; flex-shrink: 0; }
.product-reviews__identity-help { margin: -8px 0 0; color: #526078; font-size: .85rem; }
.product-reviews__form button { justify-self: start; }
.product-reviews__notice { padding: 14px 16px; border-radius: 9px; background: #edf6ef; color: #24663c; }
.product-reviews__notice.is-error { background: #fff1f0; color: #9b2826; }
.product-reviews__pagination { display: flex; gap: 20px; align-items: center; margin: 20px 0; }
@media (max-width: 600px) { .product-reviews__summary { gap: 12px; } .product-reviews__stars { margin-left: 0; width: 100%; } .product-reviews__form button { width: 100%; } }

.product-review-admin__form { display: grid; gap: 10px; max-width: 680px; }
.product-review-admin__form select, .product-review-admin__form textarea { box-sizing: border-box; width: 100%; border: 1px solid #bac6d8; border-radius: 8px; padding: 10px 12px; font: inherit; background: #fff; color: #18243b; }
.product-review-admin__form textarea { min-height: 95px; resize: vertical; }
.product-review-admin__form button { justify-self: start; border: 0; border-radius: 8px; background: #183d8d; color: #fff; padding: 10px 16px; font: inherit; cursor: pointer; }
.product-review-admin article p { overflow-wrap: anywhere; }

/* Adapted from CodeFronts #05 Accessible ARIA Star Rating (MIT licensed):
   https://codefronts.com/components/css-star-ratings/accessible-aria-star-rating/
   Natural 1..5 DOM order preserves native left/right arrow direction.
   Scoped classes handle fill without requiring :has(), including Safari. */
.product-review-rating { min-width: 0; border: 0; padding: 0; margin: 0; }
.product-review-rating legend { font-weight: 600; margin-bottom: 10px; }
.product-review-rating__stars { position: relative; display: flex; gap: 0; width: max-content; max-width: 100%; }
.product-review-rating__stars input[type=radio] { position: absolute; width: 1px; height: 1px; margin: 0; padding: 0; opacity: 0; -webkit-clip-path: inset(50%); clip-path: inset(50%); clip: rect(0,0,0,0); overflow: hidden; }
.product-reviews__form .product-review-rating__stars label { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0; margin-right: 4px; width: 46px; min-height: 62px; border-radius: 9px; cursor: pointer; color: #526078; font-size: .75rem; font-weight: 500; transition: transform .16s ease, background .16s ease; }
.product-review-rating__stars label::before { content: ''; display: block; width: 36px; height: 36px; background: #a3afc2; -webkit-clip-path: polygon(50% 0%,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%); clip-path: polygon(50% 0%,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%); transition: background .16s ease; }
.product-review-rating__stars label.is-filled::before { background: #ad7100; }
.product-review-rating__stars label span { margin-top: 3px; }
.product-review-rating__stars label.is-selected { background: #fff5dc; color: #835600; font-weight: 700; }
.product-review-rating__stars input:focus + label { outline: 3px solid #183d8d; outline-offset: 3px; background: #edf3ff; }
.product-review-rating__status { color: #526078; font-size: .85rem; margin: 10px 0 0; }
@media (hover: hover) {
    .product-review-rating__stars label:hover { transform: translateY(-2px); }
}
@media (prefers-reduced-motion: reduce) { .product-reviews__form .product-review-rating__stars label, .product-review-rating__stars label::before { transition: none; } }
@media (forced-colors: active) {
    .product-review-rating__stars label::before { display: none; }
    .product-reviews__form .product-review-rating__stars label { border: 1px solid ButtonText; color: ButtonText; font-size: 1rem; }
    .product-review-rating__stars input:checked + label { outline: 3px solid Highlight; background: Highlight; color: HighlightText; }
}
