.reviews-page { width: min(760px, calc(100% - 36px)); margin: 28px auto 72px; overflow-wrap: anywhere; }
.reviews-page h1 { font-size: clamp(28px, 6vw, 44px); line-height: 1.15; }
.reviews-page h2 { font-size: 23px; }
.reviews-summary, .review-compose, .public-review { background: var(--surface); border: 1px solid var(--line); border-radius: 18px; padding: clamp(18px, 4vw, 30px); margin: 20px 0; }
.reviews-summary { text-align: center; }
.reviews-score { display: flex; justify-content: center; align-items: baseline; gap: 12px; color: var(--gold); }
.reviews-score strong { font-size: 60px; }.reviews-score span { font-size: 32px; }.reviews-score small { font-size: 20px; }
.reviews-page fieldset { margin: 0 0 20px; padding: 0; border: 0; }
.review-stars { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 10px; }
.review-stars label { position: relative; cursor: pointer; }
.review-stars input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.review-stars span { display: block; padding: 12px; border: 1px solid var(--line); border-radius: 9px; }
.review-stars input:checked + span { background: var(--gold); color: #17131b; }
.review-stars input:focus-visible + span { outline: 2px solid var(--gold); outline-offset: 3px; }
.review-comment { display: grid; gap: 10px; }.review-comment textarea { width: 100%; min-width: 0; box-sizing: border-box; padding: 14px; font: inherit; color: var(--text); background: transparent; border: 1px solid var(--line); border-radius: 9px; resize: vertical; }
.review-phone { display: grid; gap: 10px; margin: 0 0 20px; grid-template-columns:minmax(0,1fr) auto; align-items:end; }
.review-phone label { display:grid; gap:10px; }
.review-phone input { width: 100%; min-width: 0; box-sizing: border-box; padding: 14px; font: inherit; color: var(--text); background: transparent; border: 1px solid var(--line); border-radius: 9px; }
.review-phone input:focus { outline: 2px solid var(--gold); outline-offset: 2px; }
.guest-cleaner-review { border:1px solid rgba(123,97,168,.55); border-radius:14px; margin-bottom:22px; padding:18px; background:rgba(123,97,168,.09); }
.guest-cleaner-review h3 { margin:5px 0; font-size:24px; }.guest-cleaner-review > p:not(.eyebrow) { color:var(--muted); margin-top:0; }
@media (max-width:560px) { .review-phone { grid-template-columns:1fr; }.review-phone .button { width:100%; } }
.review-note, .review-load-error, .public-review time { color: var(--muted); font-size: 14px; }
.public-review header { display: flex; justify-content: space-between; align-items: baseline; gap: 14px; flex-wrap: wrap; }
.public-review p { white-space: pre-wrap; line-height: 1.6; }.public-review .stars { color: var(--gold); letter-spacing: 2px; }
.review-compose a { color: var(--gold); text-decoration: underline; }.reviews-page button:disabled { opacity: .6; cursor: wait; }
[hidden] { display: none !important; }
