#reviews { display:block; flex:none; padding:clamp(2.5rem,6vw,5rem) clamp(1rem,3vw,2rem); scroll-margin-top:5rem; color:var(--text); }
.reviews-page { margin:0; color:var(--text); }
.reviews-page,.reviews-page * { box-sizing:border-box; }
.reviews-page main { max-width:1280px; margin:auto; width:100%; }
.reviews-page footer { padding:24px; text-align:center; line-height:1.8; }
.reviews-page a { color:var(--gold-bright); }
#reviews [hidden] { display:none!important; }
.reviews-shell { max-width:1120px; margin:auto; min-width:0; }
#reviews .reviews-heading { display:block; position:static; padding:0; background:none; border:0; text-align:center; margin:0 auto 2.5rem; z-index:auto; max-width:740px; }
.reviews-heading .eyebrow { display:block; color:var(--gold-bright); letter-spacing:.14em; margin:0 0 1rem; overflow-wrap:anywhere; }
.reviews-heading .eyebrow::before { display:none; }
.reviews-heading h1 { font:normal clamp(2rem,4.5vw,3.4rem)/1.15 Georgia,serif; letter-spacing:-.035em; margin:0 auto 1.2rem; text-wrap:balance; }
.reviews-heading > p:last-child { font-size:1.05rem; line-height:1.8; color:var(--muted); margin:0; text-wrap:pretty; }
.reviews-note { font: .875rem/1.7 system-ui,sans-serif; color:var(--muted); overflow-wrap:anywhere; }
.reviews-summary { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:clamp(1.5rem,4vw,3rem); padding:clamp(1.25rem,3vw,2.5rem); margin:0 0 1rem; background:var(--panel); border:1px solid var(--border); border-radius:18px; box-shadow:0 6px 24px #00000005; }
.reviews-summary:empty { display:none; }
.reviews-score { display:flex; flex-direction:column; justify-content:center; align-items:flex-start; min-width:0; }
.reviews-summary-label { font:600 .875rem/1.5 system-ui,sans-serif; color:var(--muted); margin:0 0 .8rem; letter-spacing:.02em; }
.reviews-average { font:normal clamp(2.8rem,6vw,4.5rem)/1.1 Georgia,serif; color:var(--text); font-variant-numeric:tabular-nums; }
.reviews-summary-count { font:.875rem/1.7 system-ui,sans-serif; color:var(--muted); margin:.8rem 0 0; overflow-wrap:anywhere; }
.reviews-breakdown { min-width:0; }
.reviews-breakdown-row { display:grid; grid-template-columns:2.75em minmax(0,1fr) max-content; align-items:center; gap:.75rem; margin:.55rem 0; font:.875rem/1.5 system-ui,sans-serif; }
.reviews-breakdown-row > span:first-child { color:var(--gold-bright); font-weight:600; white-space:nowrap; }
.reviews-rating-count { color:var(--muted); min-width:2ch; text-align:end; font-variant-numeric:tabular-nums; }
.reviews-breakdown meter { width:100%; height:12px; min-width:0; border:0; background:var(--panel-2); border-radius:99px; overflow:hidden; }
.reviews-breakdown meter::-webkit-meter-bar { border:0; border-radius:99px; background:var(--panel-2); }
.reviews-breakdown meter::-webkit-meter-optimum-value { background:var(--gold); border-radius:99px; }
.reviews-breakdown meter::-moz-meter-bar { background:var(--gold); border-radius:99px; }
.reviews-list-heading { display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:1rem 2rem; margin:2.5rem 0 1rem; }
.reviews-list-heading > h2 { font:normal 1.6rem/1.3 Georgia,serif; margin:0; }
.reviews-tools,.reviews-actions,.reviews-pagination { display:flex; align-items:center; gap:.75rem; flex-wrap:wrap; }
.reviews-tools { align-items:flex-end; min-width:0; }
.reviews-tools label { display:grid; gap:.4rem; min-width:0; }
.reviews-tools label > span { font:600 .75rem/1.5 system-ui,sans-serif; color:var(--muted); }
#reviews select,#reviews textarea { font:inherit; font-size:1rem; color:var(--text); background:var(--panel); border:1px solid var(--border); border-radius:8px; padding:.75rem; max-width:100%; }
#reviews select { min-height:46px; }
#reviews textarea { line-height:1.7; resize:vertical; min-height:120px; }
#reviews button { font:500 .875rem/1.5 system-ui,sans-serif; min-height:46px; padding:.7rem 1rem; border:1px solid var(--border); border-radius:8px; cursor:pointer; color:var(--text); background:var(--panel); white-space:normal; overflow-wrap:anywhere; max-width:100%; }
#reviews button:not(:disabled):hover { border-color:var(--gold); background:var(--panel-2); }
#reviews button:disabled { opacity:.5; cursor:default; }
#reviews :focus-visible { outline:3px solid var(--gold-bright); outline-offset:3px; }
#reviewsStatus { min-height:1.5em; margin:0 0 1rem; font:.875rem/1.7 system-ui,sans-serif; overflow-wrap:anywhere; }
#reviewsStatus:not(:empty) { padding:.8rem 1rem; border:1px solid var(--border); border-radius:8px; background:var(--panel); }
.reviews-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); align-items:start; gap:1.1rem; min-width:0; }
.review-card { min-width:0; border:1px solid var(--border); border-radius:14px; padding:clamp(1.1rem,2vw,1.5rem); background:var(--panel); box-shadow:0 3px 14px #00000004; }
.review-author { display:flex; align-items:center; gap:.75rem; margin-bottom:1rem; min-width:0; }
.review-author > a { min-width:0; overflow-wrap:anywhere; color:var(--text); font:600 .9rem/1.5 system-ui,sans-serif; text-decoration:none; }
.review-author > a:hover { text-decoration:underline; text-underline-offset:3px; }
.review-avatar { overflow:hidden; display:grid; place-items:center; width:42px; height:42px; border-radius:50%; background:var(--panel-2); color:var(--text); flex-shrink:0; font:600 1rem system-ui,sans-serif; }
.review-avatar img { display:block; width:42px; height:42px; object-fit:cover; border-radius:50%; }
.review-stars { color:var(--gold-bright); letter-spacing:.12em; font-size:1.2rem; line-height:1.5; }
.review-message { white-space:pre-wrap; overflow-wrap:anywhere; line-height:1.8; margin:.9rem 0 1.25rem; }
.review-message-collapsed { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:4; line-clamp:4; overflow:hidden; max-height:7.2em; }
#reviews .review-expand { display:block; margin:0 0 1rem; padding:.35rem 0; min-height:44px; border:0; border-radius:0; background:none; color:var(--gold-bright); text-align:start; text-decoration:underline; text-underline-offset:3px; }
#reviews .review-expand:hover { background:none; color:var(--text); }
.review-card time { font:.75rem/1.6 system-ui,sans-serif; color:var(--muted); }
.review-date { display:block; padding-top:.75rem; border-top:1px solid var(--border); }
.review-card > .reviews-note { margin:.5rem 0 0; }
.review-card details { margin-top:1rem; border-top:1px solid var(--border); padding-top:.8rem; }
.review-card details summary { font:.875rem/1.6 system-ui,sans-serif; cursor:pointer; overflow-wrap:anywhere; padding:.35rem 0; min-height:44px; }
.review-card details textarea { width:100%; }
.reviews-empty { grid-column:1/-1; margin:0; border:1px dashed var(--border); border-radius:14px; padding:2.5rem 1.25rem; background:var(--panel); text-align:center; color:var(--muted); line-height:1.8; overflow-wrap:anywhere; }
.reviews-pagination { justify-content:center; margin:1.75rem 0 2.5rem; }
#reviewsPage { font:.875rem/1.5 system-ui,sans-serif; color:var(--muted); }
.reviews-compose { border:1px solid var(--border); border-radius:14px; padding:clamp(1rem,3vw,2rem); background:var(--panel); margin:1.5rem 0; }
#reviews #reviewToggle,#reviews #reviewSave { background:var(--gold-bright); color:var(--bg); border-color:var(--gold-bright); }
#reviews #reviewToggle:hover,#reviews #reviewSave:not(:disabled):hover { background:var(--text); border-color:var(--text); }
#reviews #reviewDelete { color:var(--danger); }
#reviewComposeBody { margin-top:1.5rem; border-top:1px solid var(--border); padding-top:1rem; }
#reviewsAccount { font:.9rem/1.7 system-ui,sans-serif; overflow-wrap:anywhere; }
#reviewForm > label { display:block; margin:1.2rem 0 .5rem; font:600 .875rem/1.7 system-ui,sans-serif; }
#reviewBody { width:100%; min-height:160px; }
#reviewStars { border:0; margin:0 0 1rem; padding:0; min-width:0; }
#reviewStars legend { font:600 .875rem/1.7 system-ui,sans-serif; margin-bottom:.75rem; overflow-wrap:anywhere; }
.review-star-inputs { display:flex; flex-wrap:wrap; gap:6px; max-width:420px; }
.review-star-inputs label { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.35rem; flex:1 0 2.75em; min-width:44px; min-height:64px; margin:0; padding:.6rem .25rem; border:1px solid var(--border); border-radius:8px; cursor:pointer; }
.review-star-inputs input { accent-color:var(--gold-bright); width:16px; height:16px; margin:0; }
.review-star-inputs span { white-space:nowrap; color:var(--gold-bright); }
.review-star-inputs label:has(input:checked) { border-color:var(--gold-bright); background:var(--panel-2); box-shadow:inset 0 0 0 1px var(--gold-bright); }
.review-star-inputs label:focus-within { outline:2px solid var(--gold-bright); outline-offset:3px; }
.reviews-actions { margin-top:1.2rem; }
.review-owner-reply { display:block; margin-top:1.5rem; padding:1rem; border-inline-start:3px solid var(--gold); background:var(--panel-2); border-radius:8px; min-width:0; overflow-wrap:anywhere; }
.review-owner-reply h3 { font:600 .8rem/1.6 system-ui,sans-serif; margin:0 0 .5rem; color:var(--gold-bright); }
.review-owner-reply > a { font:.85rem/1.6 system-ui,sans-serif; }
.review-owner-reply .review-message { font-size:.95em; margin:.75rem 0; }
.review-reply-form label { display:block; margin:.75rem 0 .35rem; font:.875rem/1.6 system-ui,sans-serif; }
.review-reply-form button { margin:.5rem .5rem 0 0; }
@media (max-width:1000px) { .reviews-cards { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:640px) {
  .reviews-summary { grid-template-columns:minmax(0,1fr); gap:1.5rem; }
  .reviews-score { align-items:center; text-align:center; padding-bottom:1.5rem; border-bottom:1px solid var(--border); }
  .reviews-cards { grid-template-columns:minmax(0,1fr); }
  .reviews-list-heading { align-items:stretch; gap:1rem; }
  .reviews-tools { width:100%; gap:.75rem; }
  .reviews-tools label { flex:1 1 120px; }
  .reviews-tools select { width:100%; }
  #reviewsRefresh { flex:1 1 100%; }
  .reviews-actions > button { flex:1 1 100%; }
  .reviews-pagination { gap:.5rem; }
  .reviews-pagination button { flex:1; }
}
@media (prefers-reduced-motion:reduce) { #reviews :is(button,a) { transition:none; } }
@media (forced-colors:active) { .review-card,.reviews-summary,.reviews-compose { border-color:CanvasText; } }
@media print { .reviews-tools,.reviews-pagination,.reviews-compose,.review-card details,.review-expand { display:none!important; } .review-message-collapsed { display:block; max-height:none; overflow:visible; } .reviews-cards { display:block; } .review-card { margin-bottom:1rem; break-inside:avoid; box-shadow:none; } }
