/* Shared review banners, score rows and community controls; no duplicate star renderer. */
.rio-review-strip,.rio-review-verdict-box { --rio-review-rule-width:3px; container-type:inline-size; color:var(--rio-ink,#20344b); font:var(--rio-content-weight,400) var(--rio-content-size,16px)/1.75 var(--rio-font,system-ui,sans-serif); min-width:0; text-transform:var(--rio-content-transform,none); }
.rio-review-strip { margin:0 0 28px; }
.rio-review-verdict-box { margin:36px 0; border:1px solid var(--rio-line,#dce2e7); border-top:var(--rio-review-rule-width) solid var(--rio-accent,#00fe01); background:var(--rio-paper,#fff); }
.rio-review-banner { --rio-stars-color:var(--rio-accent,#00fe01); position:relative; isolation:isolate; background:var(--rio-ink,#20344b); color:#fff; overflow:hidden; }
.rio-review-banner-image { position:absolute; inset:0; z-index:-2; pointer-events:none; }
.rio-review-banner-image img { display:block; width:100%; height:100%; object-fit:cover; object-position:center; max-width:none; }
.rio-review-banner::before { content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,rgba(10,22,36,.92),rgba(10,22,36,.54) 55%,rgba(10,22,36,.88)); pointer-events:none; }
.rio-review-banner-compact { display:flex; align-items:center; gap:20px; min-height:136px; padding:22px 24px; border-left:var(--rio-review-rule-width) solid var(--rio-accent,#00fe01); }
.rio-review-strip-score { flex:0 0 76px; display:grid; align-content:center; justify-items:center; min-height:84px; padding:10px 7px; background:var(--rio-accent,#00fe01); color:var(--rio-on-accent,var(--rio-ink,#20344b)); }
.rio-review-strip-score strong { font:700 40px/1 var(--rio-heading,system-ui,sans-serif); }
.rio-review-strip-score>span { margin-top:4px; font-size:11px; line-height:1.4; }
.rio-review-strip-copy { flex:1; min-width:0; }
.rio-review-kicker { display:block; margin:0 0 7px; font:600 10px/1.4 var(--rio-font,system-ui,sans-serif); text-transform:uppercase; letter-spacing:.08em; }
.rio-review-strip-copy h2 { margin:0 0 10px; font:var(--rio-heading-weight,700) var(--rio-heading-current-size,var(--rio-heading-size,26px))/1.08 var(--rio-heading,system-ui,sans-serif); text-transform:var(--rio-heading-transform,uppercase); color:inherit; }
.rio-review-strip-copy .rio-rating-display { --rio-star-size:23px; --rio-star-icon-size:20px; }
.rio-review-strip-cta { display:grid; gap:7px; justify-items:center; flex:0 0 auto; max-width:100%; }
.rio-review-strip-cta>.rio-button { min-width:156px; }
.rio-review-link-note { font:400 11px/1.5 var(--rio-font,system-ui,sans-serif); }
.rio-review-banner-summary { display:flex; justify-content:space-between; align-items:center; gap:28px; min-height:200px; padding:30px; }
.rio-review-banner-title { min-width:0; max-width:70%; }
.rio-review-banner-title h2 { margin:0; font:var(--rio-heading-weight,700) var(--rio-heading-current-size,var(--rio-heading-size,34px))/1.08 var(--rio-heading,system-ui,sans-serif); text-transform:var(--rio-heading-transform,uppercase); color:inherit; }
.rio-review-banner-score { display:grid; justify-items:end; align-content:center; gap:8px; flex:0 0 auto; }
.rio-review-banner-score>span:not(.rio-rating-display) { font:400 11px/1.5 var(--rio-font,system-ui,sans-serif); }
.rio-review-banner-score>strong { font:700 48px/1 var(--rio-heading,system-ui,sans-serif); }
.rio-review-banner-score small,.rio-review-community-score small { font:500 14px/1.4 var(--rio-font,system-ui,sans-serif); }
.rio-review-verdict-body { padding:30px; min-width:0; }
.rio-review-verdict-body h3 { margin:0 0 16px; font:var(--rio-heading-weight,700) var(--rio-heading-current-size,var(--rio-heading-size,25px))/1.15 var(--rio-heading,system-ui,sans-serif); text-transform:var(--rio-heading-transform,uppercase); }
.rio-review-verdict-body p { font:inherit; margin:0; overflow-wrap:anywhere; }
.rio-review-criteria { padding-bottom:26px; border-bottom:1px solid var(--rio-line,#dce2e7); }
.rio-review-criteria dl { display:grid; margin:0; gap:0; }
.rio-review-criteria dl>div { display:flex; justify-content:space-between; align-items:center; gap:16px; padding:17px 0; border-bottom:1px solid var(--rio-line,#dce2e7); }
.rio-review-criteria dl>div:last-child { border-bottom:0; padding-bottom:0; }
.rio-review-criteria dt { margin:0; border-left:var(--rio-review-rule-width) solid var(--rio-accent,#00fe01); padding-left:12px; font-weight:600; min-width:0; overflow-wrap:anywhere; }
.rio-review-criteria dd { display:flex; align-items:center; gap:12px; margin:0; flex-shrink:0; }
.rio-review-criteria dd>strong { min-width:58px; text-align:right; font-size:14px; }
.rio-review-criteria dd>strong>span { font-weight:400; }
.rio-review-balance { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr)); gap:28px; padding:28px 0; border-bottom:1px solid var(--rio-line,#dce2e7); }
.rio-review-balance:first-child { padding-top:0; }
.rio-review-balance h3 { display:flex; gap:10px; align-items:center; }
.rio-review-balance h3 .rio-icon { width:22px; height:22px; }
.rio-review-balance ul { display:grid; gap:9px; list-style:none; padding:0; margin:0; }
.rio-review-balance li { position:relative; margin:0; padding-left:18px; overflow-wrap:anywhere; }
.rio-review-balance li::before { content:''; position:absolute; top:.68em; left:0; width:7px; height:7px; border-radius:50%; background:var(--rio-accent,#00fe01); }
.rio-review-balance-cons li::before { background:var(--rio-danger,#8f1d1a); }
.rio-review-verdict { margin:28px 0; }
.rio-review-verdict:first-child { margin-top:0; }
.rio-review-verdict-offer { display:flex; align-items:center; flex-wrap:wrap; gap:10px 18px; margin:26px 0; }
.rio-review-verdict-body .rio-review-disclosure { margin:24px 0; padding:18px; background:var(--rio-soft,#f4f6f7); }
.rio-review-community { display:flex; justify-content:space-between; align-items:center; gap:18px; padding:26px 0; border-top:1px solid var(--rio-line,#dce2e7); }
.rio-review-community:first-child { border-top:0; padding-top:0; }
.rio-review-community h3 { margin-bottom:7px; }
.rio-review-community-score { display:grid; gap:6px; justify-items:end; flex-shrink:0; }
.rio-review-community-score>strong { font:700 27px/1.2 var(--rio-heading,system-ui,sans-serif); }
.rio-review-actions { display:flex; flex-wrap:wrap; align-items:stretch; gap:10px; margin-bottom:20px; }
.rio-review-actions .rio-button { flex:1 1 160px; min-height:50px; }
.rio-review-verdict-body .rio-review-compose { margin-bottom:0; }
@container (max-width:740px) { .rio-review-actions .rio-button { flex-basis:100%; } }
@container (max-width:620px) {
 .rio-review-banner-compact { flex-wrap:wrap; padding:18px; gap:14px; }
 .rio-review-strip-cta { flex:1 1 100%; }
 .rio-review-strip-cta>.rio-button { width:100%; }
 .rio-review-strip-copy h2 { font-size:var(--rio-heading-current-size,var(--rio-heading-size,24px)); }
 .rio-review-banner-summary { min-height:190px; padding:24px; gap:18px; }
 .rio-review-banner-title h2 { font-size:var(--rio-heading-current-size,var(--rio-heading-size,28px)); }
 .rio-review-banner-title { max-width:none; }
 .rio-review-banner-score { --rio-star-size:22px; --rio-star-icon-size:18px; }
 .rio-review-verdict-body { padding:22px; }
 .rio-review-balance { grid-template-columns:minmax(0,1fr); gap:24px; }
}
@container (max-width:420px) {
 .rio-review-banner-summary { align-items:flex-start; flex-direction:column; }
 .rio-review-banner-score { justify-items:start; grid-template-columns:auto auto; column-gap:16px; }
 .rio-review-banner-score>.rio-rating-display { grid-row:1; }
 .rio-review-banner-score>strong { grid-column:2; grid-row:1 / span 2; align-self:center; font-size:40px; }
 .rio-review-banner-score>span:not(.rio-rating-display) { grid-column:1; }
 .rio-review-criteria dl>div { align-items:flex-start; flex-direction:column; gap:10px; }
 .rio-review-criteria dd { align-self:flex-end; }
 .rio-review-community { align-items:flex-start; flex-direction:column; }
 .rio-review-community-score { justify-items:start; }
}
@media print { .rio-review-strip-cta,.rio-review-actions,.rio-review-verdict-offer { display:none; }.rio-review-banner { print-color-adjust:exact; }.rio-review-balance>section,.rio-review-criteria dl>div { break-inside:avoid; } }

.rio-review-compose { border:1px solid var(--rio-line,#dce2e7); background:var(--rio-paper,#fff); margin:0 0 30px; }
.rio-review-compose>summary { display:grid; grid-template-columns:18px minmax(0,1fr) 18px; align-items:center; gap:10px; min-height:50px; padding:12px 14px; cursor:pointer; list-style:none; font:600 16px/1.5 var(--rio-font,system-ui,sans-serif); text-transform:none; letter-spacing:0; }
.rio-review-compose-label { min-width:0; text-align:left; white-space:normal; word-break:normal; }
.rio-review-compose>summary>.rio-review-toggle { justify-self:end; }
.rio-review-compose>summary .rio-icon { display:block; width:18px; height:18px; flex:0 0 18px; }
.rio-review-compose>summary:hover { background:var(--rio-soft,#f4f6f7); }
.rio-review-compose>summary:focus-visible { outline:2px solid var(--rio-focus,var(--rio-ink,#20344b)); outline-offset:2px; }
.rio-review-compose>summary::-webkit-details-marker { display:none; }
.rio-review-compose[open]>summary { border-bottom:1px solid var(--rio-line,#dce2e7); }
.rio-review-toggle { display:inline-flex; align-items:center; justify-content:center; flex:0 0 18px; width:18px; height:18px; transition:inherit; }
.rio-review-compose[open] .rio-review-toggle { transform:rotate(180deg); }
.rio-review-compose-body { padding:24px; }
.rio-review-compose .rio-review-compose-note { font:inherit; margin:0 0 20px; }
.rio-rating-form { gap:20px; }
.rio-rating-form label { font-size:14px; }
.rio-rating-form textarea { min-height:110px; }
.rio-rating-form .rio-star-field { padding:0; border:0; margin:0; }
.rio-rating-form .rio-star-field legend { margin:0 0 2px; font:600 14px/1.5 var(--rio-font,system-ui,sans-serif); text-transform:none; }
.rio-rating-selection { display:flex; align-items:center; flex-wrap:wrap; gap:10px 18px; }
.rio-star-input { display:flex; gap:0; margin-inline-start:-3px; }
.rio-form .rio-star-input label { position:relative; display:grid; place-items:center; flex:0 0 36px; width:36px; height:44px; margin:0; padding:7px 3px; cursor:pointer; background:transparent; border:0; gap:0; border-radius:0; }
.rio-form .rio-star-input label>.rio-icon { width:30px; height:30px; flex:0 0 30px; color:var(--rio-line,#dce2e7); }
.rio-form .rio-star-input label.is-lit>.rio-icon { color:var(--rio-accent,#00fe01); }
.rio-form .rio-star-input input[type=radio] { position:absolute; width:1px; height:1px; min-width:1px; min-height:1px; padding:0; margin:0; opacity:0; clip-path:inset(50%); }
.rio-star-input label:has(input:focus-visible) { outline:2px solid var(--rio-ink,#20344b); outline-offset:0; }
.rio-star-input .screen-reader-text { position:absolute; width:1px; height:1px; clip-path:inset(50%); overflow:hidden; }
.rio-rating-selected { font-size:12px; }
.rio-rating-form-actions { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.rio-rating-form-actions .rio-button { min-height:50px; }
.rio-reviews-dialog { width:min(560px,100%); max-width:100%; }
.rio-reviews-dialog .rio-dialog-header { padding:20px 24px; align-items:flex-start; }
.rio-reviews-dialog .rio-dialog-header h2 { margin:0; font-size:var(--rio-heading-current-size,var(--rio-heading-size,29px)); }
.rio-reviews-dialog .rio-dialog-header p { font-size:12px; line-height:1.5; margin:5px 0 0; }
.rio-reviews-dialog .rio-dialog-body { padding:22px 24px; }
.rio-reviews-toolbar { display:flex; align-items:center; gap:18px; flex-wrap:wrap; justify-content:space-between; padding-bottom:20px; border-bottom:1px solid var(--rio-line,#dce2e7); }
.rio-reviews-average { display:flex; align-items:center; gap:8px; }
.rio-reviews-average>strong { font:700 28px/1 var(--rio-heading,system-ui,sans-serif); }
.rio-reviews-average>span { font-size:12px; }
.rio-reviews-toolbar label { display:grid; gap:5px; font-size:11px; }
.rio-reviews-toolbar select { max-width:200px; }
.rio-review-list { padding:0; margin:0; list-style:none; }
.rio-review-entry { padding:24px 0; border-bottom:1px solid var(--rio-line,#dce2e7); }
.rio-review-entry>header { display:flex; align-items:center; gap:12px; }
.rio-review-entry .rio-avatar { width:40px; height:40px; flex:0 0 40px; border-radius:50%; }
.rio-review-entry-author { display:grid; gap:3px; min-width:0; }
.rio-review-entry-author :is(a,strong) { font-size:14px; font-weight:600; overflow-wrap:anywhere; }
.rio-review-entry-author time { font-size:11px; }
.rio-review-entry-score { display:flex; align-items:center; gap:14px; margin:14px 0 10px; }
.rio-review-entry-score>strong { font-size:12px; }
.rio-review-text { white-space:normal; overflow-wrap:anywhere; font:var(--rio-content-weight,400) var(--rio-content-size,14px)/1.8 var(--rio-font,system-ui,sans-serif); margin:0; text-transform:var(--rio-content-transform,none); }
.rio-review-text-empty { font-size:12px; }
.rio-review-entry-actions { display:flex; align-items:center; flex-wrap:wrap; gap:10px; margin-top:16px; }
.rio-review-helpful.is-helpful { --rio-btn-bg:var(--rio-accent,#00fe01); --rio-btn-border:var(--rio-accent,#00fe01); }
.rio-review-list-empty { text-align:center; padding:38px 8px; }
.rio-review-list-empty>.rio-icon { width:32px; height:32px; margin-bottom:16px; }
.rio-review-list-empty h3 { font-size:var(--rio-heading-current-size,var(--rio-heading-size,25px)); }
.rio-review-list-empty p { font-size:13px; line-height:1.7; }
.rio-reviews-status { margin:16px 0; font-size:13px; line-height:1.6; }
.rio-reviews-status:empty { display:none; }
.rio-reviews-pagination { display:flex; align-items:center; justify-content:center; gap:16px; margin-top:22px; font-size:12px; }
.rio-review-fallback { margin-top:24px; }
@media(max-width:699px) {
 .rio-review-compose>summary { font-size:14px; }.rio-review-compose-body { padding:18px; }
 .rio-rating-selection { flex-direction:column; align-items:stretch; gap:6px; }
 .rio-star-input { width:100%; margin-inline-start:0; }
 .rio-form .rio-star-input label { flex:1 1 0; width:auto; min-width:0; padding:2px 0; }
 .rio-form .rio-star-input label>.rio-icon { width:min(40px,100%); height:auto; aspect-ratio:1; flex-basis:40px; }
 .rio-rating-selected { text-align:center; }
 .rio-reviews-dialog .rio-dialog-header { padding:16px 18px; }.rio-reviews-dialog .rio-dialog-body { padding:18px; }
}
