/*
 * Proper Reviews — front-end stylesheet.
 * Every colour and length below is a --pr-* custom property with a var()
 * fallback, so a theme can restyle the whole thing by defining --pr-* on
 * any ancestor without ever editing this file, and without any forced,
 * higher-priority rule anywhere in it.
 */
.pr-reviews {
    display: grid;
    gap: var(--pr-gap, 1.5rem);
    grid-template-columns: repeat(auto-fit, minmax(var(--pr-card-min, 18rem), 1fr));
    list-style: none;
    margin: 0;
    padding: 0;
}

.pr-review {
    display: flex;
    flex-direction: column;
    gap: var(--pr-gap-sm, 0.75rem);
    background: var(--pr-bg, #fff);
    color: var(--pr-fg, #1a1a1a);
    border-radius: var(--pr-radius, 0.5rem);
    padding: var(--pr-pad, 1.25rem);
    font-family: var(--pr-font, inherit);
}

.pr-review__head {
    display: flex;
    align-items: center;
    gap: var(--pr-gap-sm, 0.75rem);
}

.pr-review__avatar {
    border-radius: 50%;
    flex-shrink: 0;
}

.pr-review__author {
    font-weight: 600;
    color: var(--pr-fg, #1a1a1a);
}

.pr-review__stars {
    margin-left: auto;
    color: var(--pr-star, #f5a623);
    letter-spacing: 0.05em;
}

.pr-review__text {
    margin: 0;
    color: var(--pr-fg, #1a1a1a);
}

.pr-review__link {
    color: var(--pr-muted, #6b7280);
    text-decoration: underline;
    align-self: flex-start;
}

.pr-reviews-rail { overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scroll-behavior: smooth; }
.pr-reviews--rail { display: flex; gap: var(--pr-rail-gap, var(--pr-gap, 1.5rem)); list-style: none; margin: 0; padding: 0; }
.pr-reviews--rail > .pr-review { flex: 0 0 var(--pr-rail-card-w, 20rem); scroll-snap-align: start; }
.pr-reviews-rail:focus-visible { outline: 2px solid var(--pr-focus, #f439a0); outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) { .pr-reviews-rail { scroll-behavior: auto; } }

.pr-reviews--quote { margin: 0; padding: var(--pr-pad, 1rem 1.25rem); }
.pr-reviews--quote .pr-review__text { font-size: var(--pr-quote-size, 1.5rem); line-height: 1.35; margin: 0; }
.pr-reviews--quote .pr-review__text::before { content: "\201C"; color: var(--pr-quote-mark, var(--pr-star, #ff4713)); }
.pr-reviews--quote .pr-review__cite { display: flex; align-items: center; gap: var(--pr-gap-sm, 0.5rem); margin-top: var(--pr-gap-sm, 0.5rem); color: var(--pr-muted, #757575); }

.pr-reviews--list { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--pr-list-gap, 0.75rem); }
.pr-reviews--list > .pr-review--row { display: flex; align-items: baseline; gap: var(--pr-gap-sm, 0.5rem); }
.pr-reviews--list .pr-review__text { display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden; }

.pr-stars { width: 5.5em; height: 1.1em; flex: none; }
.pr-stars__empty { fill: var(--pr-star-empty, #cccccc); }
.pr-stars__full { fill: var(--pr-star, #ff4713); }
