/* ==========================================================================
   Google Reviews Section — acf/tc94-google-reviews
   ==========================================================================
   Deliberately NOT built on .tc94-quote-card. That card sets its blockquote to
   font-size xl at semibold, which suits a one-line curated pull quote and
   buckles under a real Google review of several hundred characters. These cards
   read at body size instead, so the text stays the point and the rating is the
   accent.
   ========================================================================== */

/* Matches the Reviews Carousel: the shared carousel viewport bleeds into the
   gutter by design, and the section contains it. */
.tc94-greviews { overflow: hidden; }

.tc94-greviews__summary {
  display: flex;
  align-items: center;
  gap: var(--wp--preset--spacing--40);
}

.tc94-greviews__score {
  margin: 0;
  font-size: var(--wp--preset--font-size--xxl);
  font-weight: var(--wp--custom--weight--extrabold);
  line-height: var(--wp--custom--leading--tight);
  letter-spacing: var(--wp--custom--tracking--tight);
  color: var(--wp--custom--color--text);
}

.tc94-greviews__score-meta {
  display: flex;
  flex-direction: column;
  gap: var(--wp--preset--spacing--10);
}

.tc94-greviews__count {
  margin: 0;
  font-size: var(--wp--preset--font-size--sm);
  color: var(--wp--custom--color--text-muted);
}

/* --- The cards ----------------------------------------------------------- */

.tc94-greviews__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--wp--preset--spacing--50);
  margin: 0;
  padding: 0;
  list-style: none;
}

.tc94-greviews__grid > li {
  display: flex;
  min-width: 0;
}

@media (min-width: 40rem) {
  .tc94-greviews__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 64rem) {
  .tc94-greviews__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.tc94-greview {
  display: flex;
  flex-direction: column;
  gap: var(--wp--preset--spacing--40);
  width: 100%;
  padding: var(--wp--preset--spacing--60);
  background-color: var(--wp--preset--color--base);
  border: 1px solid var(--wp--preset--color--line);
  border-radius: var(--wp--custom--radius--md);
  box-shadow: var(--wp--custom--shadow--sm);
}

.tc94-greview__head {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--wp--preset--spacing--30);
}

.tc94-greview__avatar {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: var(--wp--custom--radius--circle);
  background-color: var(--wp--preset--color--surface-subtle);
  color: var(--wp--custom--color--text);
  font-size: var(--wp--preset--font-size--sm);
  font-weight: var(--wp--custom--weight--bold);
  line-height: 1;
  letter-spacing: var(--wp--custom--tracking--snug);
}

.tc94-greview__avatar--photo {
  object-fit: cover;
  background-color: var(--wp--preset--color--surface-subtle);
}

.tc94-greview__who {
  flex: 1 1 auto;
  min-width: 0;
}

.tc94-greview__name {
  margin: 0;
  font-size: var(--wp--preset--font-size--sm);
  font-weight: var(--wp--custom--weight--bold);
  line-height: var(--wp--custom--leading--snug);
  color: var(--wp--custom--color--text);
  overflow-wrap: break-word;
}

.tc94-greview__date {
  margin: 0;
  font-size: var(--wp--preset--font-size--xs);
  color: var(--wp--custom--color--text-subtle);
}

/* Narrower than the card's own content box the stars take their own line,
   which reads better than squeezing the reviewer's name. */
.tc94-greview__stars {
  flex: 0 0 auto;
}

.tc94-greview__stars .tc94-icon {
  width: var(--wp--custom--icon--size-sm);
  height: var(--wp--custom--icon--size-sm);
}

.tc94-greview__text {
  margin: 0;
  font-size: var(--wp--preset--font-size--base);
  line-height: var(--wp--custom--leading--relaxed);
  color: var(--wp--custom--color--text-muted);
  overflow-wrap: break-word;
}

/* --- The carousel variant ------------------------------------------------ */

/* The shared carousel slide is sized for the tall pull-quote card; a Google
   card is shorter and reads better a little wider. */
.tc94-greviews__carousel .tc94-carousel__slide {
  flex-basis: min(100%, 27rem);
}

/* --- Footer actions ------------------------------------------------------ */

.tc94-greviews__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--wp--preset--spacing--40);
  margin-top: var(--wp--preset--spacing--60);
}

@media (max-width: 29.9375rem) {
  .tc94-greviews__actions .tc94-btn {
    width: 100%;
    justify-content: center;
  }

  /* The text link is only as tall as its own line, which is a small target on a
     phone. The padding grows the touch area to ~45px and the matching negative
     margin pulls the layout back, so nothing moves. */
  .tc94-greviews__actions .tc94-link-arrow {
    padding-block: 0.6875rem;
    margin-block: -0.6875rem;
  }
}
