.reviews { padding-block: var(--section-space); background: var(--green); color: var(--paper); }
.reviews-heading { display: flex; align-items: end; justify-content: space-between; gap: 1.5rem; margin-bottom: 2rem; }
.reviews-heading h2 { max-width: 44rem; }
.reviews-intro { min-width: 0; }
.reviews-lead { margin-top: .875rem; color: #dce5df; font-size: 1rem; line-height: 1.5; }
.reviews-all { display: flex; align-items: center; gap: .5rem; width: fit-content; margin-top: 1.25rem; min-height: 2.75rem; font-size: .875rem; text-decoration: underline; text-underline-offset: .2em; }
.reviews-all:focus-visible { outline-color: var(--paper); }
.reviews-navigation { display: flex; align-items: center; gap: .625rem; flex-shrink: 0; }
.reviews-counter { margin-right: .625rem; font-size: .875rem; color: #dce5df; white-space: nowrap; font-variant-numeric: tabular-nums; }
.reviews-arrow { display: grid; place-items: center; width: 2.875rem; height: 2.875rem; border: 1px solid #91a69d; border-radius: 50%; color: var(--paper); }
.reviews-arrow:hover:not(:disabled) { background: #ffffff16; }
.reviews-arrow:disabled { cursor: default; opacity: .35; }
.reviews-arrow[data-review-direction="-1"] .icon { transform: rotate(180deg); }
.reviews-track { --review-gap: 1.25rem; display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 2 * var(--review-gap)) / 3); gap: var(--review-gap); overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-width: none; margin: 0; padding: .25rem 0; list-style: none; }
.reviews-track::-webkit-scrollbar { display: none; }
.reviews-track:focus-visible { outline: .1875rem solid var(--paper); outline-offset: .375rem; }
.review-card { display: flex; flex-direction: column; min-width: 0; scroll-snap-align: start; padding: 1.75rem; border-radius: .5rem; background: var(--surface); color: var(--ink); }
.review-author { display: flex; align-items: center; gap: .75rem; }
.review-avatar { display: grid; place-items: center; flex: 0 0 2.75rem; width: 2.75rem; height: 2.75rem; background: #e3eae2; border-radius: 50%; color: var(--green); font-size: 1rem; font-weight: 600; }
.review-person { min-width: 0; }
.review-name { font-size: 1rem; line-height: 1.4; font-weight: 600; }
.review-date { margin-top: .25rem; color: var(--muted); font-size: .875rem; line-height: 1.45; }
.review-rating { display: flex; gap: .2rem; margin-top: 1.125rem; color: #846036; font-size: 1rem; line-height: 1; letter-spacing: .075em; }
.review-rating-empty { color: #b6ad9e; }
.review-text { display: -webkit-box; -webkit-line-clamp: 5; -webkit-box-orient: vertical; overflow: hidden; margin: 1.25rem 0 0; font-size: 1rem; line-height: 1.65; white-space: pre-line; }
.review-footer { display: flex; align-items: center; justify-content: space-between; gap: .25rem 1rem; flex-wrap: wrap; margin-top: auto; padding-top: 1rem; }
.review-read, .review-source { display: inline-flex; align-items: center; gap: .375rem; min-height: 2.75rem; padding: .375rem 0; font-size: .875rem; line-height: 1.4; text-decoration: underline; text-underline-offset: .2em; }
.review-read { color: var(--green); font-weight: 600; }
.review-source { color: var(--muted); }
.review-source .icon { width: .875rem; height: .875rem; }
.reviews-navigation :focus-visible { outline-color: var(--paper); }
.review-dialog { max-width: 42rem; }
.review-dialog .review-text { display: block; overflow: visible; margin-block: 1.5rem; -webkit-line-clamp: unset; }
.review-dialog .review-author { margin-top: .25rem; }
.review-dialog .review-name, .review-dialog .review-date { margin: 0; }
.review-dialog .review-date { margin-top: .25rem; }
.review-dialog .dialog-content h2 { font-size: 1.5rem; margin-bottom: 1.5rem; }
@media (max-width: 1099px) {
  .reviews-track { grid-auto-columns: calc((100% - var(--review-gap)) / 2); }
}
@media (max-width: 767px) {
  .reviews-heading { align-items: start; flex-direction: column; gap: 1.25rem; margin-bottom: 1.5rem; }
  .reviews-track { grid-auto-columns: 92%; --review-gap: .875rem; }
  .review-card { padding: 1.25rem; }
  .reviews-navigation { width: 100%; }
  .reviews-counter { margin-right: auto; }
}
@media (prefers-reduced-motion: reduce) { .reviews-track { scroll-behavior: auto; } }
