/*
 * Review list and review form on the product page. WooCommerce's markup,
 * styled with the theme's tokens (the theme itself never styled them).
 */
.woocommerce-Reviews { display: grid; gap: var(--sb-space-8, 2.5rem); }
.woocommerce-Reviews .woocommerce-Reviews-title { font-family: var(--sb-font-display, Georgia, serif); font-size: var(--sb-text-display-sm, 1.25rem); margin: 0 0 var(--sb-space-4, 1rem); }
.woocommerce-Reviews .commentlist { list-style: none; padding: 0; margin: 0; display: grid; gap: var(--sb-space-4, 1rem); }
.woocommerce-Reviews .commentlist .comment_container { display: grid; grid-template-columns: 3rem minmax(0, 1fr); gap: var(--sb-space-4, 1rem); padding: var(--sb-space-5, 1.25rem); background-color: var(--sb-c-surface, #EDE9E2); border: 1px solid var(--sb-c-border, #DED8CD); }
.woocommerce-Reviews .commentlist .avatar { width: 3rem; height: 3rem; border-radius: 999px; object-fit: cover; }
.woocommerce-Reviews .comment-text { min-width: 0; }
.woocommerce-Reviews .comment-text .meta { font-size: var(--sb-text-body-sm, .875rem); color: var(--sb-c-text-muted, #60645E); margin: .25rem 0 .5rem; }
.woocommerce-Reviews .comment-text .meta strong { color: var(--sb-c-text, #181E1A); font-weight: 500; }
.woocommerce-Reviews .comment-text .description { font-size: var(--sb-text-body, .9375rem); line-height: 1.6; }
.woocommerce-Reviews .comment-text .description p { margin: 0 0 .5rem; }
.woocommerce-Reviews .star-rating,
#review_form .star-rating { position: relative; display: inline-block; width: 5.2em; height: 1em; line-height: 1; font-size: 0.95rem; overflow: hidden; color: var(--sb-c-accent, #B8893D); letter-spacing: 0.04em; }
.woocommerce-Reviews .star-rating::before { content: "☆☆☆☆☆"; position: absolute; inset-block-start: 0; inset-inline-start: 0; opacity: .5; }
.woocommerce-Reviews .star-rating span { position: absolute; inset-block-start: 0; inset-inline-start: 0; overflow: hidden; padding-block-start: 1.5em; height: 0; }
.woocommerce-Reviews .star-rating span::before { content: "★★★★★"; position: absolute; inset-block-start: 0; inset-inline-start: 0; }
.woocommerce-Reviews .star-rating .rating { position: absolute; clip: rect(0 0 0 0); width: 1px; height: 1px; overflow: hidden; }
.woocommerce-Reviews .woocommerce-review__verified { font-size: .72rem; color: var(--sb-c-text-muted, #60645E); }
.woocommerce-Reviews .woocommerce-verification-required { font-size: var(--sb-text-body-sm, .875rem); color: var(--sb-c-text-muted, #60645E); }
.woocommerce-Reviews .comment-text .meta::before { display: none; }
.woocommerce-Reviews .commentlist .children { list-style: none; padding: 0 0 0 var(--sb-space-6, 1.5rem); margin: var(--sb-space-3, .75rem) 0 0; }
.woocommerce-Reviews .commentlist .children .comment_container { background-color: var(--sb-c-page, #F5F2EC); border-inline-start: 3px solid var(--sb-c-accent, #B8893D); }
.woocommerce-Reviews .woocommerce-noreviews { color: var(--sb-c-text-muted, #60645E); font-size: var(--sb-text-body-sm, .875rem); }

/* Photos on a review */
.sb-review__photos { display: flex; flex-wrap: wrap; gap: var(--sb-space-2, .5rem); list-style: none; padding: 0; margin: var(--sb-space-3, .75rem) 0 0; }
.sb-review__photos img { width: 4.5rem; height: 4.5rem; object-fit: cover; border-radius: 3px; display: block; background: var(--sb-c-surface-alt, #E6E1D8); }

/* Form */
#review_form_wrapper { border: 1px solid var(--sb-c-border, #DED8CD); padding: var(--sb-space-6, 1.5rem); background-color: var(--sb-c-page, #F5F2EC); }
#review_form .comment-reply-title { display: block; font-family: var(--sb-font-display, Georgia, serif); font-size: var(--sb-text-display-sm, 1.25rem); margin-bottom: var(--sb-space-2, .5rem); }
#review_form .comment-notes { font-size: var(--sb-text-body-sm, .875rem); color: var(--sb-c-text-muted, #60645E); margin: 0 0 var(--sb-space-4, 1rem); }
#review_form p { margin: 0 0 var(--sb-space-4, 1rem); }
#review_form label { display: block; font-size: var(--sb-text-body-sm, .875rem); color: var(--sb-c-text-muted, #60645E); margin-bottom: .35rem; }
#review_form input[type="text"], #review_form input[type="email"], #review_form textarea, #review_form select { width: 100%; padding: .85rem 1rem; background-color: #fff; border: 1px solid var(--sb-c-border, #DED8CD); border-radius: 5px; font: inherit; font-size: var(--sb-text-body, .9375rem); }
#review_form textarea { min-height: 8rem; resize: vertical; }
/* Rating picker: five radio buttons drawn as stars, right-to-left in the
   markup so "fill up to the hovered / chosen star" is plain sibling CSS. */
.sb-review-rating { border: 0; padding: 0; margin: 0 0 var(--sb-space-4, 1rem); }
.sb-review-rating__label { display: block; font-size: var(--sb-text-body-sm, .875rem); color: var(--sb-c-text-muted, #60645E); margin-bottom: .35rem; padding: 0; }
.sb-review-rating__stars { display: inline-flex; flex-direction: row-reverse; gap: .15rem; }
.sb-review-rating__input { position: absolute; opacity: 0; width: 0; height: 0; pointer-events: none; }
.sb-review-rating__star { display: inline-block; width: 2rem; height: 2rem; cursor: pointer; color: var(--sb-c-accent, #B8893D); font-size: 1.9rem; line-height: 2rem; text-align: center; }
.sb-review-rating__star::before { content: "☆"; }
/* Chosen: that star and every one to its left (later in the reversed DOM). */
.sb-review-rating__input:checked ~ .sb-review-rating__star::before { content: "★"; }
/* Hovering previews a new choice: clear, then fill up to the hovered star. */
.sb-review-rating__stars:hover .sb-review-rating__star::before { content: "☆"; }
.sb-review-rating__stars .sb-review-rating__star:hover::before,
.sb-review-rating__stars .sb-review-rating__star:hover ~ .sb-review-rating__star::before { content: "★"; }
.sb-review-rating__input:focus-visible + .sb-review-rating__star { outline: 2px solid var(--sb-c-accent, #B8893D); outline-offset: 2px; border-radius: 4px; }
#review_form select#rating, #review_form p.stars { display: none !important; }
#review_form .comment-form-cookies-consent { display: flex; gap: .5rem; align-items: flex-start; font-size: var(--sb-text-body-sm, .875rem); }
#review_form .comment-form-cookies-consent label { margin: 0; }
#review_form .form-submit .submit { display: inline-flex; align-items: center; padding: .95rem 1.75rem; background-color: var(--sb-c-inverse, #0E2A1C); color: var(--sb-c-text-invert, #F5F2EC); border: 0; border-radius: 3px; font: inherit; font-size: var(--sb-text-body-sm, .875rem); font-weight: 500; cursor: pointer; }
#review_form .form-submit .submit:hover { background-color: var(--sb-c-action-hover, #2E523E); }
.sb-review-photos-field input[type="file"] { display: block; width: 100%; padding: .65rem; border: 1px dashed var(--sb-c-border, #DED8CD); border-radius: 5px; background: #fff; font-size: var(--sb-text-body-sm, .875rem); }
.sb-review-photos-field__help { display: block; margin-top: .35rem; font-size: .78rem; color: var(--sb-c-text-muted, #60645E); }
@media (min-width: 768px) {
  #review_form .comment-form-author, #review_form .comment-form-email { display: inline-block; width: calc(50% - .5rem); vertical-align: top; }
  #review_form .comment-form-author { margin-inline-end: 1rem; }
}
