.reviews-filters{display:flex;flex-wrap:wrap;gap:10px;padding:8px 0 40px}
.reviews-filters button{padding:10px 18px;border-radius:999px;border:1px solid var(--line);font:600 14px "Bricolage Grotesque";color:var(--ink);background:var(--white);cursor:pointer;transition:background .2s ease,color .2s ease,border-color .2s ease}
.reviews-filters button:hover,.reviews-filters button.active{background:var(--ink);color:#fff;border-color:var(--ink)}
.reviews-grid{columns:3 280px;column-gap:24px;margin:0 0 48px}
.review-card{break-inside:avoid;margin-bottom:24px;border:1px solid var(--line);border-radius:var(--radius);background:var(--white);padding:26px 24px 22px;display:flex;flex-direction:column;gap:14px;transition:opacity .28s cubic-bezier(.16,1,.3,1),transform .28s cubic-bezier(.16,1,.3,1)}
.review-card.is-fading-out{opacity:0;transform:scale(.95);pointer-events:none}
.review-card.is-hidden{display:none}
@media (prefers-reduced-motion: reduce){.review-card{transition:none !important}}
.review-card .review-stars{color:#65733d;font-size:14px;letter-spacing:3px}
.review-card p{color:var(--ink);font-size:15.5px;line-height:1.6;margin:0}
.review-card .review-meta{display:flex;flex-direction:column;gap:2px;border-top:1px solid var(--line);padding-top:12px}
.review-card .review-author{font-weight:600;color:var(--ink);font-size:14px}
.review-card .review-project{color:var(--muted);font-size:13px}
@media (max-width:900px){.reviews-grid{columns:2 240px}}
@media (max-width:600px){.reviews-grid{columns:1}}
.reviews-leave-cta{border:1px solid var(--line);border-radius:var(--radius);background:var(--soft);padding:36px var(--gutter);text-align:center;margin-bottom:48px}
.reviews-leave-cta h2{font-size:clamp(20px,2.6vw,28px);font-weight:600}
.reviews-leave-cta p{color:var(--muted);margin-top:10px}
.reviews-leave-cta .btn{margin-top:18px}
