.price {
  align-items: baseline;
  color: var(--spruce-base-color-text);
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem 0.5rem;
  margin: 0;
}
.price__amount {
  color: var(--spruce-base-color-heading);
  font-family: var(--spruce-font-family-heading);
  font-size: clamp(1.0625rem, 2vw + 1rem, 1.25rem);
  font-variant-numeric: tabular-nums;
  font-weight: 700;
  line-height: 1.2;
}
.price__prefix, .price__suffix {
  color: var(--spruce-base-color-muted);
  font-size: var(--spruce-font-size-sm);
}
.price__compare {
  color: var(--spruce-base-color-muted);
  text-decoration-thickness: 1px;
}
.price__badge {
  align-self: center;
  background-color: color-mix(in srgb, var(--spruce-alert-color-danger) 12%, transparent);
  border-radius: var(--spruce-border-radius-pill);
  color: var(--spruce-base-color-heading);
  font-size: 0.75rem;
  font-weight: 700;
  line-height: 1;
  padding: 0.35em 0.65em;
}
.price__unit {
  color: var(--spruce-base-color-muted);
  flex-basis: 100%;
  font-size: var(--spruce-font-size-sm);
}
.price__unit abbr {
  border: 0;
  cursor: default;
  text-decoration: none;
}
.price__cents {
  font-size: 0.55em;
  vertical-align: super;
}
.price--sale .price__amount {
  color: var(--spruce-alert-color-danger);
}
.price--member .price__badge {
  background-color: color-mix(in srgb, var(--spruce-base-color-primary) 12%, transparent);
  color: var(--spruce-base-color-primary);
}
.price--lg .price__amount {
  font-size: clamp(2.0751953125rem, 2vw + 1rem, 2.44140625rem);
}

.price-demo {
  display: grid;
  gap: 1.5rem;
  grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr));
}
.price-demo__item {
  border: var(--spruce-border-width-base) solid var(--spruce-base-color-border);
  border-radius: var(--spruce-border-radius-md);
  padding: 1rem;
}
.price-demo__item > * {
  margin-block-end: 0;
  margin-block-start: 0;
}
.price-demo__item > * + * {
  margin-block-start: 0.5rem;
}
.price-demo__label {
  color: var(--spruce-base-color-muted);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  margin: 0;
  text-transform: uppercase;
}
