.review-image-upload{margin-top:20px}.review-image-upload>label{display:block;font-weight:600;margin-bottom:8px}.review-image-upload>p{font-size:13px;line-height:1.5;margin:0 0 10px;color:#555}.review-image-upload input[type=file]{display:block;max-width:100%;font:inherit;font-size:13px}.review-image-upload input::file-selector-button{background:#fff;border:1px solid #aaa;border-radius:0;padding:10px 14px;margin-right:10px;font:inherit;cursor:pointer}.review-image-gallery,.review-image-previews{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}.review-image-gallery a{display:block;border:1px solid #ddd}.review-image-gallery img,.review-image-previews img{display:block;width:80px;height:80px;object-fit:cover}.review-image-previews>div{position:relative;margin-top:6px}.review-image-previews button{position:absolute;right:-6px;top:-6px;width:28px;height:28px;background:#fff;color:#111;border:1px solid #777;border-radius:50%;font-size:20px;line-height:1;cursor:pointer}.review-image-upload .review-image-status{margin-top:10px;color:#8b2500}.review-image-message{background:#fff4e5;border-left:3px solid #b96700;padding:16px;line-height:1.5}
.review-image-dialog{box-sizing:border-box;position:fixed;inset:0;width:100%;height:100%;height:100dvh;max-width:none;max-height:none;margin:0;border:0;padding:24px;background:transparent;color:#222;overflow:auto}
.review-image-dialog[open]{display:flex;align-items:flex-start;justify-content:center}
.review-image-dialog::backdrop{background:rgba(16,17,16,.94);animation:review-overlay-in 240ms ease-out both}
.review-image-dialog.is-closing::backdrop{animation:review-overlay-out 180ms ease-in both}
@keyframes review-overlay-in{from{opacity:0}to{opacity:1}}
@keyframes review-overlay-out{from{opacity:1}to{opacity:0}}
@media(prefers-reduced-motion:reduce){.review-image-dialog::backdrop,.review-image-dialog.is-closing::backdrop{animation:none}}
.review-image-card{box-sizing:border-box;background:transparent;color:#fff;width:min(100%,580px);margin:auto;padding:20px;border:0;box-shadow:none}
.review-image-stars{text-align:center;color:#dfb900;font-size:23px;letter-spacing:4px;line-height:1.3;margin-bottom:16px}
.review-image-stage{position:relative;display:flex;width:fit-content;max-width:100%;margin:0 auto;justify-content:center;background:transparent}
.review-image-stage>img{display:block;width:auto;height:auto;max-width:100%;max-height:60vh;object-fit:contain;border-radius:15px}
.review-image-controls{position:absolute;inset:0;pointer-events:none}
.review-image-controls button{position:absolute;display:flex;align-items:center;justify-content:center;width:42px;height:42px;padding:0;border:1px solid #ddd;border-radius:50%;background:#fff;color:#222;box-shadow:0 2px 8px #0002;cursor:pointer;pointer-events:auto}
.review-image-controls button:hover{background:#f1f1f1}
.review-image-controls svg{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.review-image-controls .review-image-close{right:10px;top:10px}
.review-image-controls .review-image-previous{left:10px;top:calc(50% - 21px)}
.review-image-controls .review-image-next{right:10px;top:calc(50% - 21px)}
.review-image-controls button[hidden]{display:none}
.review-image-quote{text-align:center;font-size:16px;line-height:1.6;margin:18px 0 14px;white-space:pre-line;overflow-wrap:anywhere}
.review-image-byline{text-align:center;font-size:12px;line-height:1.5;color:rgba(255,255,255,.7);padding-top:4px}
.review-image-gallery a:focus-visible,.review-image-upload button:focus-visible,.review-image-controls button:focus-visible{outline:3px solid #005fcc;outline-offset:3px}
@media(max-width:600px){.review-image-dialog{padding:16px}.review-image-card{padding:14px}.review-image-stage>img{max-height:56vh}.review-image-quote{text-align:center;font-size:14px}}

@media(hover:hover) and (pointer:fine){
 .review-image-controls button{opacity:0;pointer-events:none;transition:opacity .18s ease}
 .review-image-stage:hover .review-image-controls button,.review-image-controls button:focus-visible{opacity:1;pointer-events:auto}
}
@media(prefers-reduced-motion:reduce){.review-image-controls button{transition:none}}
