/* Compact star rating for product cards.
   Stars carry the glance value; the numeric score carries the precision.
   Partial fill is done by clipping a filled layer over an outline layer, so a
   4.5 never rounds up to look like a 5. */
.au-rating{display:flex;align-items:center;gap:var(--space-2);margin-top:var(--space-2);font-size:var(--text-sm);line-height:1}
.au-stars{position:relative;display:inline-block;flex-shrink:0;line-height:0}
.au-stars-base,.au-stars-fill{display:flex;gap:2px}
.au-stars-fill{position:absolute;inset:0 auto 0 0;width:var(--au-fill,0%);overflow:hidden}
.au-stars .au-icon{width:14px;height:14px;stroke:var(--primary);fill:none;flex-shrink:0}
.au-stars-fill .au-icon{fill:var(--primary)}
.au-rating-score{font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}
.au-rating-count{color:var(--muted);font-variant-numeric:tabular-nums}

/* Mobile cards are ~160px wide, so five stars plus the price never share a line.
   Collapse to a single solid star used as a symbol — the score carries the value. */
@media(max-width:767px){
  .au-rating{font-size:var(--text-xs);gap:var(--space-1);margin-top:var(--space-1)}
  .au-stars .au-icon{width:13px;height:13px}
  .au-stars-base .au-icon+.au-icon,
  .au-stars-fill .au-icon+.au-icon{display:none}
  .au-stars-fill{width:auto}
  .au-card-meta{gap:var(--space-1) var(--space-2)}
}

/* Price and rating share one baseline row on the card: price leads, rating trails right. */
.au-card-meta{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-2) var(--space-3);flex-wrap:wrap}
.au-card-meta .au-price{margin:0}
.au-card-meta .au-rating{margin-top:0}
.au-card-meta .au-stars{transform:translateY(2px)}
