/* ==================== Star Rating Component ==================== */
.star-rating {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: var(--space-sm);
}

.star-rating__input {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.star-rating__display {
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: var(--space-xs);
  user-select: none;
}

.star-rating--readonly .star-rating__display {
  cursor: default;
}

.star-rating__stars {
  display: block;
}

.star-rating__fill {
  transition: width var(--transition-fast);
}

.star-rating__value {
  font-family: var(--font-body);
  font-weight: 600;
  color: var(--color-mocha);
  min-width: 2.5em;
  white-space: nowrap;
}

/* Size variants */
.star-rating--small .star-rating__value {
  font-size: 0.75rem;
  min-width: 2em;
}

.star-rating--medium .star-rating__value {
  font-size: 0.925rem;
}

.star-rating--large .star-rating__value {
  font-size: 1.1rem;
}

/* Hover state */
.star-rating:not(.star-rating--readonly) .star-rating__display:hover .star-rating__value {
  color: var(--color-gold);
}
