.reviews-main { padding-top: 36px; padding-bottom: 64px; }
.reviews-intro { max-width: 760px; margin-bottom: 30px; }
body.reviews-page .reviews-intro h1 { font-size: clamp(2rem,4vw,3.1rem); line-height: 1.15; margin: 14px 0; }
.reviews-intro p { font-size: 1.0625rem; color: #435b70; }
.reviews-intro .eyebrow { font-size: .875rem; }
.back-link { display: inline-flex; min-height: 44px; align-items: center; color: #174fbf; margin-bottom: 10px; }
.review-layout { display: grid; grid-template-columns: minmax(0,1.7fr) minmax(240px,1fr); gap: 38px; align-items: start; }
#customer-review-form { background: #fff; border: 1px solid #cfdae6; border-radius: 10px; padding: 28px; }
#customer-review-form>label,.review-fields>label { display: grid; gap: 8px; font-size: 1rem; font-weight: 650; margin-bottom: 22px; }
#customer-review-form>label:not(.consent-row),.review-fields>label { display: block; }
#customer-review-form>label:not(.consent-row)>input,#customer-review-form>label>select,#customer-review-form>label>textarea,.review-fields>label>input { display: block; margin-top: 8px; }
.review-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
#customer-review-form input:not([type=radio]):not([type=checkbox]):not([type=file]),#customer-review-form select,#customer-review-form textarea,.reject-reason { width: 100%; min-height: 48px; border: 1px solid #8fa4b9; border-radius: 6px; padding: 11px 12px; background: #fff; color: #152c3e; font-size: 1rem; }
#customer-review-form textarea { resize: vertical; min-height: 145px; line-height: 1.55; }
#customer-review-form fieldset { padding: 0; border: 0; margin: 0 0 24px; }
#customer-review-form legend { font-size: 1rem; font-weight: 700; margin-bottom: 12px; }
.rating-options { display: flex; gap: 10px; }
.rating-options label { flex: 1; max-width: 75px; position: relative; cursor: pointer; }
.rating-options input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.rating-options label>span { display: flex; align-items: center; justify-content: center; flex-direction: column; min-height: 70px; border: 1px solid #b4c5d5; border-radius: 7px; font-weight: 700; color: #38526a; }
.rating-options b { font-size: 1.5rem; line-height: 1.2; color: #8a5a00; }
.rating-options input:checked+span { color: #133d87; border: 2px solid #1d63ed; background: #eaf2ff; }
.rating-options input:focus-visible+span { outline: 3px solid #1453cb; outline-offset: 3px; }
.field-help,.optional { font-size: .875rem; font-weight: 400; color: #4b6378; line-height: 1.55; }
.upload-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.upload-button { position: relative; display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 12px 16px; border: 1px solid #b4c5d5; border-radius: 6px; background: #eef5ff; color: #164497; font-weight: 700; cursor: pointer; }
.upload-button input { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; }
.upload-button:focus-within { outline: 3px solid #1453cb; outline-offset: 3px; }
.media-previews { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; margin-top: 18px; }
.media-preview { margin: 0; border: 1px solid #cbd7e4; border-radius: 6px; padding: 8px; }
.media-preview img,.media-preview video { width: 100%; height: auto; aspect-ratio: 4/3; object-fit: contain; background: #f0f4f8; }
.media-preview figcaption { font-size: .875rem; overflow-wrap: anywhere; margin: 5px 0; }
.media-preview button { width: 100%; border: 1px solid #c4d2e0; min-height: 44px; background: #fff; color: #922e25; border-radius: 4px; font-size: .875rem; cursor: pointer; }
#customer-review-form .consent-row { display: flex; align-items: flex-start; gap: 12px; font-weight: 400; }
.consent-row input { flex: 0 0 22px; width: 22px; height: 22px; margin-top: 3px; accent-color: #1d63ed; }
.review-submit,.moderation-actions button { display: inline-flex; justify-content: center; align-items: center; min-height: 48px; padding: 12px 22px; border: 0; border-radius: 6px; color: #fff; background: #1d63ed; font-size: 1rem; font-weight: 700; cursor: pointer; text-align: center; }
#customer-review-form .review-submit { width: 100%; }
.review-submit:disabled,.moderation-actions button:disabled { opacity: .6; cursor: wait; }
.review-note { padding: 26px; border-radius: 8px; background: #f2f6fb; border-left: 4px solid #1d63ed; }
.review-note h2 { margin-top: 0; font-size: 1.3rem; }
.review-note p { color: #435b70; }
.review-note a,.review-policy a { color: #174fbf; text-decoration: underline; }
#form-status,#media-status { margin-bottom: 0; overflow-wrap: anywhere; }
.has-error { color: #a3281d; }
.has-success { color: #11613c; }
#upload-progress { width: 100%; height: 18px; margin-top: 16px; }
.form-trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.review-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
.review-card { border: 1px solid #ccd9e6; border-radius: 9px; padding: 26px; background: #fff; min-width: 0; }
.review-card h2 { font-size: 1.25rem; margin: 0 0 4px; line-height: 1.35; }
.review-card header p { color: #4b6378; margin: 0 0 8px; font-size: .9375rem; }
.review-stars { font-size: 1.4rem; color: #8a5a00; letter-spacing: .1em; }
.review-card time { font-size: .875rem; color: #536676; }
.review-message { white-space: pre-wrap; overflow-wrap: anywhere; line-height: 1.7; }
.review-media { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.review-media img,.review-media video { display: block; width: 100%; height: auto; aspect-ratio: 4/3; object-fit: contain; background: #f0f4f8; border-radius: 5px; }
.review-media figure { margin: 0; }
.review-media figcaption a { display: inline-flex; align-items: center; min-height: 44px; color: #174fbf; text-decoration: underline; }
.reviews-empty { padding: 28px; border: 1px solid #ccdae8; border-radius: 8px; background: #f5f8fc; }
.reviews-empty h2 { font-size: 1.35rem; margin-top: 0; }
.review-policy { font-size: .9375rem; color: #435b70; margin-top: 32px; }
.review-tabs,.review-pagination { display: flex; flex-wrap: wrap; gap: 12px; margin: 22px 0; }
.review-tabs a,.review-pagination a { padding: 11px 16px; min-height: 44px; border: 1px solid #c6d5e4; border-radius: 5px; color: #174fbf; }
.review-tabs [aria-current] { background: #1d63ed; color: #fff; }
.moderation-actions { display: flex; flex-wrap: wrap; gap: 12px; border-top: 1px solid #d6e0ea; padding-top: 20px; margin-top: 18px; }
.moderation-actions label,.moderation-status { flex-basis: 100%; }
.moderation-actions label { display: grid; gap: 8px; }
.moderation-actions .reject-button { background: #9d2f25; }
@media(max-width:900px) { .review-layout { grid-template-columns: minmax(0,1fr); gap: 24px; } }
@media(max-width:640px) {
  .reviews-main { padding-top: 24px; }
  #customer-review-form { padding: 20px 16px; }
  .review-fields,.review-list { grid-template-columns: minmax(0,1fr); gap: 0; }
  .review-list { gap: 16px; }
  .review-card { padding: 20px; }
  .rating-options { gap: 7px; }
  .rating-options label>span { min-height: 66px; }
  .upload-actions { display: grid; grid-template-columns: minmax(0,1fr); }
  .media-previews { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .review-note { padding: 20px; }
  .reviews-intro .review-submit { width: 100%; }
}
@media(max-width:360px) { .review-media { grid-template-columns: minmax(0,1fr); } }
