.reviews-section { background: linear-gradient(135deg, #f1faf7, #f7fafb 60%, #fffaf0); }
.reviews-intro { text-align: center; max-width: 46rem; margin: 0 auto 2.75rem; }
.reviews-intro .section-title { margin-bottom: 1rem; }
.reviews-intro > p { color: var(--muted); font-size: 1.125rem; margin: 0; }
.reviews-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(1.5rem, 4vw, 3rem); align-items: start; }
.reviews-section h3, .reviews-admin h2 { margin: 0; font-size: 1.375rem; line-height: 1.35; }
.reviews-heading-row { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: .75rem; }
.reviews-heading-row > a { color: var(--turquoise-dark); font-size: .875rem; text-underline-offset: .2em; }
.reviews-published { padding-top: .5rem; min-width: 0; }
.reviews-summary { color: var(--muted); margin: .75rem 0 1.5rem; }
.reviews-summary strong { color: var(--ink); font-size: 1.6rem; }
.reviews-empty { background: rgb(255 255 255 / 75%); border: 1px dashed #a8cfc5; border-radius: var(--radius); padding: 2.5rem 1.5rem; text-align: center; color: var(--muted); }
.reviews-empty h4 { margin: 0 0 .5rem; color: var(--ink); font-size: 1.2rem; }
.reviews-empty p { max-width: 26rem; margin: 0 auto; }
.reviews-policy { font-size: .8125rem; color: var(--muted); margin: 1.25rem 0 0; max-width: 38rem; }
.reviews-form-card { padding: clamp(1.25rem, 3vw, 2rem); background: white; border: 1px solid #dcebe7; border-radius: var(--radius); box-shadow: 0 .75rem 2.5rem rgb(20 78 61 / 7%); }
.reviews-form-heading { display: flex; gap: 1rem; margin-bottom: 1.75rem; align-items: center; }
.reviews-form-heading p { margin: .25rem 0 0; color: var(--muted); font-size: .9375rem; }
.reviews-note-icon { flex: 0 0 3rem; width: 3rem; height: 3rem; padding: .75rem; background: #e5f4ee; color: #246950; border-radius: .9rem; }
.reviews-note-icon svg { display: block; width: 100%; height: 100%; }
.review-rating-field { border: 0; margin: 0 0 1.25rem; padding: 0; }
.review-rating-field legend, .review-field > label { font-weight: 650; font-size: .9375rem; }
.review-rating-field legend span, .review-field label span { font-weight: 400; color: var(--muted); }
.review-stars { display: flex; gap: .375rem; margin-top: .55rem; }
.review-stars label { position: relative; display: grid; place-items: center; width: 2.85rem; height: 2.85rem; border: 1px solid #d2e0dc; border-radius: .6rem; cursor: pointer; font-size: 1.8rem; color: #637d76; transition: background .16s ease, color .16s ease; }
.review-stars input { position: absolute; width: 100%; height: 100%; inset: 0; opacity: 0; margin: 0; cursor: pointer; }
.review-stars label:has(input:focus-visible) { outline: 2px solid var(--navy); outline-offset: 3px; }
.review-stars label:has(input:checked), .review-stars label.is-selected { background: #fff5dc; color: #996007; border-color: #deb15b; }
.review-stars label:hover { background: #fff5dc; }
.review-field { margin-bottom: 1.15rem; }
.review-field > label { display: block; margin-bottom: .45rem; }
.review-field input, .review-field textarea { display: block; width: 100%; min-width: 0; border: 1px solid #b7cbc4; background: #fcfefd; border-radius: .625rem; padding: .7rem .8rem; color: var(--ink); font-size: 1rem; }
.review-field textarea { resize: vertical; min-height: 7rem; }
.review-field-note { font-size: .8125rem; color: var(--muted); margin: .35rem 0 0; line-height: 1.5; }
.review-field-notes { display: flex; gap: .8rem; align-items: start; }
.review-field-notes > span { white-space: nowrap; margin-left: auto; }
.review-consent { display: flex; gap: .65rem; align-items: start; font-size: .8125rem; line-height: 1.6; color: var(--muted); margin: 1.25rem 0; cursor: pointer; }
.review-consent input { width: 1.1rem; height: 1.1rem; margin: .2rem 0 0; flex: 0 0 1.1rem; accent-color: var(--turquoise-dark); }
#review-submit { border: 0; width: 100%; cursor: pointer; }
.reviews-section button:disabled, .reviews-admin button:disabled { opacity: .55; cursor: wait; }
.review-approval-note { text-align: center; font-size: .75rem; color: var(--muted); margin: .65rem 0 0; }
.review-status { margin: .8rem 0 0; color: var(--success); font-size: .9375rem; }
.review-status:empty { display: none; }
.review-status.is-error { color: var(--danger); }
.review-spam-trap { display: none; }
.review-visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.reviews-list { display: grid; gap: 1rem; }
.review-entry { padding: 1.35rem; background: white; border: 1px solid #dcebe7; border-radius: 1rem; overflow-wrap: anywhere; }
.review-entry-header { display: flex; justify-content: space-between; gap: 1rem; align-items: center; flex-wrap: wrap; }
.review-entry h4 { margin: 0; font-size: 1rem; }
.review-entry time { color: var(--muted); font-size: .8125rem; }
.review-entry-stars { color: #996007; font-size: 1.125rem; letter-spacing: .12em; margin: .45rem 0; }
.review-entry-comment { white-space: pre-wrap; margin: .5rem 0 0; font-size: .9375rem; }
.reviews-outline-button { color: var(--turquoise-dark); background: white; border: 1px solid #9dc5b8; border-radius: .65rem; padding: .6rem 1rem; margin-top: 1rem; cursor: pointer; font-weight: 650; }
.reviews-admin { max-width: 65rem; padding-block: 3rem; }
.reviews-admin-heading { display: flex; justify-content: space-between; align-items: start; flex-wrap: wrap; gap: 1rem; }
.reviews-admin-heading a { color: var(--turquoise-dark); }
.reviews-admin h1 { margin: 0; }
.reviews-admin .reviews-policy { font-size: .9375rem; max-width: 52rem; }
.reviews-admin-filters { display: flex; flex-wrap: wrap; gap: .7rem; margin: 1.5rem 0; }
.reviews-admin-filters button { margin: 0; }
.reviews-admin-filters button[aria-pressed="true"] { color: white; background: #246950; border-color: #246950; }
.review-admin-actions { display: flex; flex-wrap: wrap; gap: .65rem; }
.review-admin-actions button { font-size: .875rem; }
.review-admin-actions button[data-action="approve"] { color: white; background: #246950; border-color: #246950; }
.review-admin-actions button[data-action="reject"] { color: var(--danger); border-color: #d5aaaa; }
.reviews-admin-identity { color: var(--muted); font-size: .875rem; overflow-wrap: anywhere; }
@media (max-width: 47.99rem) {
  .reviews-layout { grid-template-columns: minmax(0, 1fr); }
  .reviews-intro { margin-bottom: 2rem; }
  .reviews-published { order: 1; }
  .reviews-form-card { order: 2; }
}
@media (prefers-reduced-motion: reduce) { .review-stars label { transition: none; } }
