/* Reviews & ratings — shared by the public site and the admin. */

/* Read-only stars: five grey stars with a gold overlay clipped to the rating (--pct). */
.hc-stars { position: relative; display: inline-block; line-height: 1; letter-spacing: .08em; color: #d5dfe0; white-space: nowrap; font-size: 1rem; }
.hc-stars::before { content: "★★★★★"; }
.hc-stars::after { content: "★★★★★"; position: absolute; left: 0; top: 0; width: var(--pct, 0%); overflow: hidden; color: #e8a33d; }
.hc-stars.lg { font-size: 1.5rem; }
.hc-stars.sm { font-size: .82rem; }
[data-bs-theme=dark] .hc-stars { color: #3a4a4c; }

/* Star picker: radio inputs rendered right-to-left so :hover ~ label lights up everything "below". */
.hc-star-input { display: inline-flex; flex-direction: row-reverse; gap: .15rem; }
.hc-star-input input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.hc-star-input label { font-size: 2rem; line-height: 1; color: #d5dfe0; cursor: pointer; transition: transform .1s, color .1s; padding: 0 .05rem; }
.hc-star-input label:hover, .hc-star-input label:hover ~ label,
.hc-star-input input:checked ~ label { color: #e8a33d; }
.hc-star-input label:active { transform: scale(.9); }
.hc-star-input input:focus-visible + label { outline: 2px solid #0f626a; outline-offset: 2px; border-radius: 4px; }
[data-bs-theme=dark] .hc-star-input label { color: #3a4a4c; }
[data-bs-theme=dark] .hc-star-input label:hover, [data-bs-theme=dark] .hc-star-input label:hover ~ label,
[data-bs-theme=dark] .hc-star-input input:checked ~ label { color: #e8a33d; }

/* Summary: big average + distribution bars. */
.hc-rev-summary { display: flex; gap: 1.5rem; align-items: center; flex-wrap: wrap; }
.hc-rev-avg { font-size: 2.6rem; font-weight: 800; line-height: 1; color: #0c2d33; }
[data-bs-theme=dark] .hc-rev-avg { color: #e6f1f2; }
.hc-rev-bars { flex: 1; min-width: 200px; }
.hc-rev-bar { display: flex; align-items: center; gap: .5rem; font-size: .8rem; color: #557076; }
.hc-rev-bar .track { flex: 1; height: 7px; background: #e6eeef; border-radius: 99px; overflow: hidden; }
.hc-rev-bar .fill { height: 100%; background: #e8a33d; border-radius: 99px; }
[data-bs-theme=dark] .hc-rev-bar .track { background: #243436; }

.hc-review { padding: 1rem 0; border-top: 1px solid rgba(0,0,0,.07); }
.hc-review:first-child { border-top: 0; }
[data-bs-theme=dark] .hc-review { border-top-color: rgba(255,255,255,.08); }
.hc-review .avatar { width: 38px; height: 38px; border-radius: 50%; object-fit: cover; background: #0f626a; color: #fff; display: inline-flex; align-items: center; justify-content: center; font-weight: 700; font-size: .85rem; flex-shrink: 0; }
.hc-review .body { white-space: pre-line; }
.hc-reply { margin-top: .6rem; padding: .6rem .85rem; background: rgba(15,98,106,.07); border-left: 3px solid #0f626a; border-radius: 0 .5rem .5rem 0; font-size: .92rem; }

/* Review photos: small square thumbnails; the full image opens on tap. */
.hc-rev-photos { display: flex; flex-wrap: wrap; gap: .5rem; }
.hc-rev-photos img { width: 84px; height: 84px; object-fit: cover; border-radius: .55rem; border: 1px solid rgba(0,0,0,.08); background: #eef3f3; }
.hc-rev-photos a { display: inline-block; line-height: 0; }
.hc-rev-photo-existing { display: inline-flex; flex-direction: column; align-items: center; cursor: pointer; }

.hc-rev-part { border: 1px solid rgba(15,98,106,.18); border-radius: .9rem; padding: 1.1rem 1.2rem; margin-bottom: 1rem; }
.hc-rev-part.primary { border-width: 2px; border-color: #0f626a; }
.hc-rev-badge { font-size: .7rem; text-transform: uppercase; letter-spacing: .04em; font-weight: 700; }
