/* =========================================================================
   Aster — Patient reviews
   A snap track that keeps to the container on the left and runs past it on
   the right, so the row reads as continuing off the page.
   ========================================================================= */

.aster-reviews { padding-bottom: var(--wp--custom--section-space); }

.aster-reviews__head {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-end;
  gap: var(--wp--preset--spacing--60);
  margin-bottom: var(--wp--preset--spacing--80);
}

.aster-reviews__meta { text-align: right; }

.aster-reviews__rating {
  margin: 0;
  font-family: var(--wp--preset--font-family--display);
  font-size: var(--wp--preset--font-size--xl);
  /* Body leading, not heading leading: the score is a paragraph, and the
     extra height is what sets it off the line beneath. */
  line-height: var(--wp--custom--leading-relaxed);
  letter-spacing: var(--wp--custom--tracking-tight);
  color: var(--wp--preset--color--contrast);
}

.aster-reviews__count {
  margin: 0 0 var(--wp--preset--spacing--50);
  font-size: var(--wp--preset--font-size--sm);
  line-height: var(--wp--custom--leading-relaxed);
  color: var(--wp--preset--color--ink-muted);
}


/* -------------------------------------------------------------------------
   Arrows
   ------------------------------------------------------------------------- */
.aster-slider-controls {
  display: flex;
  justify-content: flex-end;
  gap: var(--wp--preset--spacing--20);
}

.aster-slider-btn {
  display: grid;
  place-items: center;
  width: 2.75rem;
  height: 2.75rem;
  padding: 0;
  background: none;
  border: var(--wp--custom--line-hairline) solid var(--wp--preset--color--line-strong);
  border-radius: var(--wp--custom--radius-sm);
  color: var(--wp--preset--color--contrast);
  cursor: pointer;
  transition: border-color var(--wp--custom--duration-fast) var(--wp--custom--ease-out),
              color var(--wp--custom--duration-fast) var(--wp--custom--ease-out),
              opacity var(--wp--custom--duration-fast) var(--wp--custom--ease-out);
}
.aster-slider-btn .aster-icon {
  width: 1.1rem;
  height: 1.1rem;
}
.aster-slider-btn:hover:not(:disabled) { border-color: var(--wp--preset--color--contrast); }
.aster-slider-btn:disabled {
  opacity: 0.28;
  cursor: default;
}


/* -------------------------------------------------------------------------
   The track
   ------------------------------------------------------------------------- */
.aster-reviews__track {
  display: flex;
  gap: var(--wp--custom--grid-gap);
  max-width: var(--wp--custom--container);
  margin-inline: auto;
  padding-inline: var(--wp--custom--gutter);
  padding-bottom: var(--wp--preset--spacing--40);
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scroll-padding-inline: var(--wp--custom--gutter);
  scrollbar-width: none;
}
.aster-reviews__track::-webkit-scrollbar { display: none; }

@media (prefers-reduced-motion: reduce) {
  .aster-reviews__track { scroll-behavior: auto; }
}

.aster-review-card {
  flex: 0 0 min(24rem, 78vw);
  scroll-snap-align: start;
  display: flex;
  flex-direction: column;
  padding: var(--wp--preset--spacing--60);
  background: var(--wp--preset--color--base);
  border: var(--wp--custom--line-hairline) solid var(--wp--preset--color--line);
  border-radius: var(--wp--custom--radius-sm);
}

.aster-review-card__stars {
  margin: 0 0 var(--wp--preset--spacing--50);
  font-size: var(--wp--preset--font-size--sm);
  line-height: var(--wp--custom--leading-relaxed);
  letter-spacing: 0.22em;
  color: var(--wp--preset--color--accent);
}
.aster-star--empty { color: var(--wp--preset--color--line-strong); }

.aster-review-card__quote {
  flex: 1;
  margin: 0;
}
.aster-review-card__quote p {
  margin: 0 0 var(--wp--preset--spacing--50);
  font-size: var(--wp--preset--font-size--base);
  line-height: var(--wp--custom--leading-relaxed);
  color: var(--wp--preset--color--ink-secondary);
}
.aster-review-card__quote p:last-child { margin-bottom: 0; }

.aster-review-card__name {
  margin: var(--wp--preset--spacing--60) 0 0;
  padding-top: var(--wp--preset--spacing--50);
  border-top: var(--wp--custom--line-hairline) solid var(--wp--preset--color--line);
  font-family: var(--wp--preset--font-family--display);
  font-size: var(--wp--preset--font-size--sm);
  font-weight: var(--wp--custom--weight-medium);
  line-height: var(--wp--custom--leading-relaxed);
  letter-spacing: var(--wp--custom--tracking-label);
  text-transform: uppercase;
  color: var(--wp--preset--color--contrast);
}


/* -------------------------------------------------------------------------
   Phone — the rating block moves under the heading
   ------------------------------------------------------------------------- */
@media (max-width: 46rem) {
  .aster-reviews__head {
    flex-direction: column;
    align-items: flex-start;
  }
  .aster-reviews__meta { text-align: left; }
  .aster-slider-controls { justify-content: flex-start; }
}
