.reviews{ scroll-margin-top:120px; }
.reviews-shell{ padding:clamp(20px,3vw,36px); border:1px solid var(--stroke); border-radius:28px; background:rgba(255,255,255,.8); box-shadow:0 18px 50px rgba(17,19,18,.06); }
.reviews-heading{ display:flex; justify-content:space-between; align-items:center; gap:32px; margin-bottom:28px; }
.reviews-kicker{ margin:0 0 12px; color:var(--green2); font-size:11px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; }
.reviews-heading h2{ margin:0; max-width:21ch; font-size:clamp(25px,3.4vw,40px); line-height:1.14; letter-spacing:-.035em; font-weight:850; }
.reviews-lead{ margin:14px 0 0; color:var(--muted); line-height:1.6; font-size:15px; }
.reviews-score{ flex:0 0 auto; text-align:center; padding:16px 28px; border-left:1px solid var(--stroke); }
.reviews-score strong{ font-size:42px; font-weight:800; letter-spacing:-.04em; }
.reviews-score small{ display:block; margin-top:8px; color:var(--muted); }
.reviews-stars{ display:inline-flex; gap:3px; font-size:19px; color:#c9c7bd; line-height:1.4; }
.reviews-stars .is-filled{ color:#997322; }
.reviews-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; align-items:start; }
.review-card{ min-width:0; padding:20px; border:1px solid var(--stroke); border-radius:18px; background:#fff; }
.review-card-top{ display:flex; align-items:center; gap:10px; margin-bottom:14px; }
.review-avatar{ display:grid; place-items:center; width:38px; height:38px; flex:0 0 38px; border-radius:50%; background:#edf2eb; color:var(--green2); font-size:14px; font-weight:800; }
.review-card h3{ margin:0 0 3px; font-size:14px; line-height:1.4; overflow-wrap:anywhere; }
.review-card time{ color:var(--muted); font-size:12px; }
.review-message{ margin:12px 0 0; font-size:14px; line-height:1.7; white-space:pre-wrap; overflow-wrap:anywhere; }
.review-store-reply{ margin-top:18px; padding:14px 16px; border-left:3px solid var(--green); border-radius:0 10px 10px 0; background:#edf2eb; }
.review-store-reply strong{ display:block; color:var(--green2); font-size:12px; line-height:1.5; }
.review-store-reply time{ display:block; margin-top:3px; font-size:11px; }
.review-store-reply p{ margin:9px 0 0; font-size:13px; line-height:1.7; white-space:pre-wrap; overflow-wrap:anywhere; }
.review-photo{ display:block; position:relative; margin-top:18px; border-radius:12px; overflow:hidden; background:#f5f4ef; }
.review-photo img{ display:block; width:100%; height:auto; aspect-ratio:4/3; object-fit:contain; }
.review-photo span{ display:block; padding:9px 10px; background:#edf2eb; color:var(--green2); font-size:11px; font-weight:700; }
.reviews-empty{ display:flex; flex-direction:column; align-items:center; text-align:center; padding:26px 16px; border:1px dashed rgba(30,79,49,.24); border-radius:18px; background:rgba(246,240,227,.25); }
.reviews-empty-stars{ margin-bottom:12px; color:#997322; font-size:30px; letter-spacing:4px; }
.reviews-empty strong{ font-size:18px; }
.reviews-empty p{ margin:9px 0 0; color:var(--muted); font-size:14px; line-height:1.6; }
.reviews-notice{ margin:0 0 22px; padding:16px 18px; border:1px solid var(--stroke); border-radius:12px; background:#f5f4ef; line-height:1.6; font-size:14px; }
.reviews-notice--success{ background:#edf5ee; color:#173d26; border-color:#b5cbb8; }
.reviews-notice--error{ background:#fff1ec; color:#8a3425; border-color:#e4b9ae; }
.reviews-pagination{ display:flex; gap:16px; justify-content:center; align-items:center; flex-wrap:wrap; margin-top:24px; font-size:13px; }
.reviews-compose{ margin-top:26px; border-top:1px solid var(--stroke); }
.reviews-compose summary{ list-style:none; display:flex; justify-content:space-between; align-items:center; gap:16px; padding:24px 0 0; cursor:pointer; color:var(--green2); font-size:16px; font-weight:800; }
.reviews-compose summary::-webkit-details-marker{ display:none; }
.reviews-compose-plus{ display:grid; place-items:center; width:32px; height:32px; border-radius:50%; border:1px solid var(--stroke); font-size:24px; font-weight:400; line-height:1; }
.reviews-compose[open] .reviews-compose-plus{ transform:rotate(45deg); }
.reviews-form{ position:relative; margin-top:24px; }
.reviews-form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:24px; align-items:start; }
.reviews-field{ min-width:0; display:flex; flex-direction:column; gap:9px; }
.reviews-field--wide{ grid-column:1 / -1; }
.reviews-field>label,.reviews-rating legend{ font-size:14px; font-weight:750; }
.reviews-field>label span,.reviews-rating legend span{ font-size:12px; color:var(--muted); font-weight:400; }
.reviews-field input[type=text],.reviews-field textarea{ width:100%; min-height:46px; padding:12px 14px; border:1px solid rgba(20,28,22,.2); border-radius:10px; background:#fff; color:var(--text); font:inherit; font-size:16px; }
.reviews-field textarea{ resize:vertical; line-height:1.6; }
.reviews-field input::placeholder,.reviews-field textarea::placeholder{ color:#72776f; font-size:14px; }
.reviews-field small,.reviews-rating-help{ font-size:12px; color:var(--muted); line-height:1.6; }
.reviews-rating{ margin:0; padding:0; border:0; min-width:0; }
.reviews-rating legend{ padding:0; margin-bottom:4px; }
.reviews-rating-options{ display:inline-flex; position:relative; }
.reviews-rating-options input,.reviews-sr-only{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.reviews-rating-options label{ display:grid; place-items:center; width:44px; height:44px; color:#989e94; font-size:34px; cursor:pointer; border-radius:5px; }
.reviews-rating-options input:checked + label,.reviews-rating-options label:has(~ input:checked){ color:#997322; }
.reviews-rating-options:has(label:hover) label{ color:#989e94; }
.reviews-rating-options:has(label:hover) label:hover,.reviews-rating-options:has(label:hover) label:has(~ label:hover){ color:#997322; }
.reviews-rating-options input:focus-visible + label{ outline:2px solid var(--green); outline-offset:1px; }
.reviews-rating-help{ display:block; }
.reviews-upload{ display:flex; align-items:center; gap:16px; border:1px dashed rgba(30,79,49,.3); border-radius:12px; padding:18px; background:#f8f9f5; }
.reviews-upload>svg{ flex:0 0 28px; color:var(--green2); }
.reviews-upload>div{ min-width:0; flex:1; }
.reviews-upload input{ display:block; max-width:100%; width:100%; color:var(--text); font:inherit; font-size:13px; }
.reviews-upload input::file-selector-button{ padding:9px 12px; margin:0 12px 8px 0; border:1px solid var(--stroke); border-radius:8px; color:var(--green2); background:#fff; font:inherit; font-weight:700; cursor:pointer; }
.reviews-preview{ display:flex; align-items:center; gap:14px; }
.reviews-preview img{ display:block; border-radius:10px; object-fit:contain; background:#f5f4ef; }
.reviews-preview[hidden],.reviews-photo-error[hidden]{ display:none; }
.reviews-photo-error{ margin:0; color:#8a3425; font-size:13px; }
.reviews-form-bottom{ display:flex; justify-content:space-between; align-items:center; gap:28px; margin-top:24px; }
.reviews-form-bottom p{ max-width:62ch; margin:0; font-size:12px; color:var(--muted); line-height:1.7; }
.reviews-form-bottom .btn{ flex:0 0 auto; min-height:48px; gap:20px; }
.reviews-honeypot{ position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.reviews :is(input,textarea,button,a,summary):focus-visible{ outline:3px solid rgba(30,79,49,.6); outline-offset:3px; }
@media(max-width:900px){ .reviews-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:640px){
  .reviews-shell{ padding:22px 16px; border-radius:22px; }
  .reviews-heading{ flex-direction:column; align-items:flex-start; gap:20px; }
  .reviews-heading h2{ font-size:27px; }
  .reviews-score{ padding:0; border:0; text-align:left; }
  .reviews-grid{ grid-template-columns:1fr; }
  .reviews-form-grid{ grid-template-columns:1fr; gap:20px; }
  .reviews-form-bottom{ flex-direction:column; align-items:stretch; gap:18px; }
  .reviews-upload{ padding:14px; gap:10px; align-items:flex-start; }
  .reviews-preview{ flex-wrap:wrap; }
}
