/* Scoped review, policy and estimate components; no header or billboard rules. */
.review-text { white-space: pre-wrap; overflow-wrap: anywhere; line-height: 1.65; }
.review-policy,.review-editor,.review-settings { max-width: 52rem; margin-inline: auto; }
.review-policy h1 { margin-bottom: 1.5rem; }
.review-settings textarea { display: block; width: 100%; box-sizing: border-box; font: inherit; line-height: 1.5; }
.review-policy form,.review-editor form { display: grid; gap: 1rem; }
.review-editor input:not([type=radio]):not([type=checkbox]):not([type=hidden]),.review-editor textarea { width: 100%; max-width: 100%; box-sizing: border-box; }
.review-star-input { display: flex; gap: .35rem; }
.review-star-input label { position: relative; width: 44px; height: 48px; cursor: pointer; }
.review-star-input input { position: absolute; opacity: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.review-star-input label>span:first-of-type,.review-display-stars span { color: white; -webkit-text-stroke: 1.5px #111; font-size: 2rem; line-height: 1.4; }
.review-star-input label:has(input:checked)>span:first-of-type,.review-star-input label:has(~ label input:checked)>span:first-of-type,
.review-display-stars span.filled { color: #ffd33d; }
.review-star-input label:has(input:focus-visible) { outline: 3px solid #174ea6; outline-offset: 3px; border-radius: 4px; }
.review-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.review-video { display: block; width: 100%; max-width: 32rem; max-height: 24rem; background: #101827; margin-block: 1rem; }
.review-purchase { padding: 1rem 0; border-bottom: 1px solid #aebec9; }
.product-service-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 1rem; margin-block: 1.25rem; align-items: start; }
.shipping-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .8rem; }
.shipping-fields label { display: grid; gap: .3rem; min-width: 0; }
.shipping-fields input,.shipping-fields select { width: 100%; box-sizing: border-box; min-width: 0; min-height: 44px; font: inherit; }
.shipping-estimator .check { display: block; margin-block: 1rem; }
.shipping-results { white-space: pre-line; line-height: 1.6; }
.review-summary-card .review-count { margin-bottom: .2rem; font-weight: 700; }
.review-summary-card .review-display-stars { margin-bottom: .7rem; }
.customer-review-dialog { width: min(48ch,calc(100vw - 2rem)); max-width: calc(100vw - 2rem); max-height: calc(100dvh - 3rem); overflow-y: auto; box-sizing: border-box; padding: 1.25rem; border: 1px solid #aebec9; border-radius: .8rem; background: #fff; color: #172033; box-shadow: 0 14px 50px #0005; }
.customer-review-dialog::backdrop { background: #10182780; }
.review-dialog-heading { display: flex; align-items: start; justify-content: space-between; gap: 1rem; }
.review-dialog-heading h2 { margin: 0; }
.review-dialog-heading button { min-width: 44px; min-height: 44px; font-size: 1.5rem; }
.customer-review-dialog article { padding-block: 1rem; border-bottom: 1px solid #dde5ed; }
.customer-review-dialog h3 { margin-block: .5rem; overflow-wrap: anywhere; }
.customer-review-dialog .review-video { max-height: 20rem; }
.review-moderation { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 1rem; align-items: end; }
.review-moderation form { display: flex; flex-wrap: wrap; align-items: end; gap: .5rem; }
.review-moderation label { display: grid; }
.review-filter { display: flex; gap: .7rem; margin-bottom: 1rem; }
.review-notification { display: inline-block; padding: .6rem .75rem; border-radius: .4rem; background: #fff1b0; color: #553c00; font-weight: 700; white-space: nowrap; }
.review-notification[hidden] { display: none; }
.payment-security { display: flex; gap: .4rem; align-items: center; }
@media(max-width:700px) { .product-service-grid { grid-template-columns: minmax(0,1fr); } .customer-review-dialog { padding: 1rem; } }
@media(max-width:360px) { .shipping-fields { grid-template-columns: minmax(0,1fr); } }
