/* Measured review contract: Poppins list, 16px corners, right-aligned media. */
.reviews { background:#fff; color:#000; padding:60px 2% 64px; font:400 14px/20px Poppins,sans-serif; }
.reviews *, .review-dialog * { box-sizing:border-box; }
.reviews button, .review-dialog button { font:inherit; color:inherit; cursor:pointer; }
.reviews-summary { margin:20px auto 7px; padding:0 7px 7px; display:flex; flex-direction:column; align-items:center; color:#282828; }
.reviews-average { display:flex; align-items:center; gap:12px; font-size:45px; line-height:51px; }
.reviews-average svg { width:51px; height:51px; }
.reviews-total { font-size:22px; line-height:32px; margin:20px 0 0; }
.review-stars { display:inline-flex; color:#dfaf71; vertical-align:middle; }
.review-stars svg { width:16px; height:16px; flex-shrink:0; }
.reviews-distribution { margin-top:25px; width:340px; max-width:100%; padding:3px 0; }
.reviews-rating-filter { display:flex; align-items:center; gap:12px; width:100%; height:36px; padding:0 4px; border:0; border-radius:4px; background:transparent; text-align:left; }
.reviews-rating-filter .review-stars svg { width:20px; height:20px; }
.reviews-rating-filter:hover, .reviews-rating-filter[aria-pressed="true"] { background:#dfaf7129; }
.reviews-bar { flex:1; height:10px; background:#0000000a; border-radius:2px; overflow:hidden; }
.reviews-bar span { display:block; height:100%; background:#7b7b7b; border-radius:2px; }
.reviews-rating-count { width:35px; font-size:14px; }
.reviews-actions { display:flex; gap:8px; margin-top:25px; width:340px; max-width:100%; position:relative; }
.reviews-write, .reviews-sort-toggle, .reviews-more { background:white; border:1px solid #e1e1e1; border-radius:16px; }
.reviews-write { flex:1; font-size:16px!important; height:40px; }
.reviews-sort-toggle { width:40px; height:40px; display:grid; place-items:center; }
.reviews-sort-toggle svg { width:22px; height:22px; }
.reviews-sort-menu { position:absolute; right:0; top:46px; width:190px; z-index:5; border:1px solid #ddd; border-radius:10px; padding:6px; background:white; box-shadow:0 6px 14px #0003; }
.reviews-sort-menu button { width:100%; text-align:left; padding:9px; background:white; border:0; border-radius:5px; }
.reviews-sort-menu button:hover, .reviews-sort-menu [aria-checked="true"] { background:#f4f4f4; }
.reviews-filter-status { text-align:center; margin:12px 7px; }
.reviews-reset { background:none; border:0; text-decoration:underline; margin-left:8px; }
.reviews-list { display:flex; flex-direction:column; padding:0 0 20px; }
.review-card { display:flex; align-items:flex-start; padding:10px; margin:7px; border-radius:16px; background:white; box-shadow:0 6px 14px #00000036; }
.review-card:hover { background:#f8f8f8; }
.review-main { width:100%; min-width:0; }
.review-card:has(.review-media) .review-main { width:85%; padding-right:32px; }
.review-author { display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin:0; font-size:16px; line-height:23px; font-weight:700; }
.review-verified { font-size:12px; font-weight:400; display:inline-flex; align-items:center; gap:4px; }
.review-verified svg { width:12px; height:12px; }
.review-date { display:block; padding-top:5px; color:#73777b; font-size:11px; line-height:15px; }
.review-rating { padding-top:10px; height:27px; line-height:17px; }
.review-text { white-space:pre-wrap; overflow-wrap:anywhere; margin:0; padding-top:10px; font-size:14px; line-height:19px; }
.review-item { margin-top:10px; font-size:13px; line-height:20px; }
.review-item span { display:block; font-size:11px; }
.review-media { position:relative; width:15%; flex-shrink:0; padding:0; border:0; background:transparent; border-radius:16px; overflow:hidden; }
.review-media img { display:block; width:100%; height:auto; max-height:215px; object-fit:cover; border-radius:16px; }
.review-play { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:50px; height:50px; display:grid; place-items:center; border:3px solid white; border-radius:50%; color:white; background:#0003; }
.review-play svg { width:24px; height:24px; }
.review-photo-count { position:absolute; top:8px; right:8px; padding:3px 5px; background:#ffffffe0; border-radius:20px; font-weight:600; line-height:20px; }
.reviews-pagination { text-align:center; padding-top:20px; }
.reviews-more { padding:5px 12px; font-size:12px!important; line-height:20px!important; }
.reviews-write:hover,.reviews-more:hover,.reviews-sort-toggle:hover { background:#f7f7f7; }
.reviews-live { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.review-dialog { position:fixed; inset:0; margin:auto; padding:0; width:min(920px,calc(100% - 32px)); max-height:90dvh; border:0; border-radius:16px; background:white; color:#000; overflow:auto; font:400 14px/20px Poppins,sans-serif; }
.review-dialog::backdrop { background:#000b; }
.review-modal-layout { display:flex; min-height:400px; }
.review-modal-media { position:relative; width:60%; background:#151515; display:flex; align-items:center; justify-content:center; }
.review-modal-media>img { display:block; width:100%; max-height:80dvh; object-fit:contain; }
.review-modal-media iframe { border:0; width:100%; aspect-ratio:9/16; max-height:80dvh; }
.review-modal-copy { flex:1; min-width:0; padding:48px 24px 24px; }
.review-modal-copy h2 { font:700 18px/25px Poppins,sans-serif; margin:0; }
.review-modal-close { position:absolute; z-index:2; right:10px; top:10px; width:32px; height:32px; border:0; border-radius:50%; background:white; box-shadow:0 1px 6px #0004; font-size:24px!important; }
.review-gallery-controls { position:absolute; bottom:12px; left:12px; right:12px; display:flex; align-items:center; justify-content:center; gap:12px; color:white; }
.review-gallery-controls button { border:1px solid #fff8; border-radius:8px; padding:6px 12px; background:#0009; color:white; }
.review-gallery-controls span { padding:5px 10px; border-radius:8px; background:#0009; }
.review-dialog.review-notice { width:min(440px,calc(100% - 32px)); padding:32px; }
body:has(.review-dialog[open]) { overflow:hidden; }
@media(max-width:749px) { .reviews { padding:60px 16px 64px; } }
@media(max-width:959px) {
 .review-card:has(.review-media) .review-main { width:70%; }
 .review-media { width:30%; }
}
@media(max-width:620px) {
 .review-dialog:not(.review-notice) { width:100vw; max-width:100vw; height:100dvh; max-height:100dvh; margin:0; border-radius:0; }
 .review-modal-layout { flex-direction:column; }
 .review-modal-media { width:100%; }
 .review-modal-media iframe { max-height:60dvh; }
 .review-modal-media>img { max-height:60dvh; }
 .review-modal-copy { padding:24px; }
}
