/* Blocco recensioni — carousel scroll-snap, fonte Google o manuale */

.b-rec__title {
  margin-bottom: var(--sp-3);
}

.b-rec__aggregate {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: var(--sp-2);
  margin-bottom: var(--sp-8);
  color: var(--c-text);
}

.b-rec__stars {
  display: inline-flex;
  gap: 2px;
  color: var(--c-amber);
}

/* Aggregato proporzionale: base spenta + strato ambra ritagliato
   alla percentuale del rating (--rec-fill, es. 4,6/5 → 92%) */
.b-rec__meter {
  position: relative;
  display: inline-flex;
}

.b-rec__meter-base,
.b-rec__meter-fill {
  display: inline-flex;
  gap: 2px;
}

.b-rec__meter-base {
  color: var(--c-surface-grey);
}

.b-rec__meter-fill {
  position: absolute;
  inset: 0;
  overflow: hidden;
  width: var(--rec-fill, 100%);
  color: var(--c-amber);
  white-space: nowrap;
}

.b-rec__track {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: min(340px, 85%);
  gap: var(--sp-6);
  list-style: none;
  margin: 0;
  padding: var(--sp-2);
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
}

.b-rec__item {
  scroll-snap-align: start;
  display: flex;
  flex-direction: column;
  gap: var(--sp-3);
  position: relative;
}

.b-rec__quote {
  color: var(--c-primary-light);
  position: absolute;
  top: var(--sp-4);
  right: var(--sp-4);
}

.b-rec__text {
  margin: 0;
  font-size: var(--fs-lg);
  line-height: 1.6;
  color: var(--c-text);
  display: -webkit-box;
  -webkit-line-clamp: 9;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Firma: avatar (foto o iniziale) + nome + data relativa */
.b-rec__who {
  margin-top: auto;
  display: flex;
  align-items: center;
  gap: var(--sp-3);
}

.b-rec__foto,
.b-rec__avatar {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  flex-shrink: 0;
}

.b-rec__foto {
  object-fit: cover;
  border: 2px solid var(--c-primary-light);
}

.b-rec__avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--c-primary-light);
  color: var(--c-primary-dark);
  font-weight: 700;
  font-size: 1.125rem;
}

.b-rec__author {
  margin: 0;
  font-weight: 600;
  color: var(--c-text-strong);
  font-size: var(--fs-sm);
  letter-spacing: 0.02em;
}

.b-rec__date {
  display: block;
  font-weight: 400;
  color: var(--c-text-muted);
  font-size: 0.75rem;
  letter-spacing: 0;
}

/* Attribuzione fonte Google */
.b-rec__source {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--sp-1);
  margin: var(--sp-5) 0 0;
  font-size: 0.75rem;
  color: var(--c-text-muted);
}

.b-rec__link {
  margin-top: var(--sp-4);
}

@media (min-width: 64rem) {
  /* Con 3 o meno recensioni: griglia statica */
  .b-rec__track {
    grid-auto-flow: row;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    grid-auto-columns: unset;
    overflow: visible;
  }
}
