/**
 * Base typography — display / body hierarchy.
 */

.v-display-1,
.v-display-2,
.v-display-3,
.v-heading-1,
.v-heading-2,
.v-heading-3,
.v-heading-4 {
  font-family: var(--v-font-display);
  font-weight: var(--v-font-weight-medium);
  letter-spacing: var(--v-letter-tight);
  line-height: var(--v-leading-tight);
  color: var(--v-color-ink);
  margin: 0;
}

.v-display-1 { font-size: clamp(var(--v-text-5xl), 6vw, var(--v-text-7xl)); }
.v-display-2 { font-size: clamp(var(--v-text-4xl), 5vw, var(--v-text-6xl)); }
.v-display-3 { font-size: clamp(var(--v-text-3xl), 4vw, var(--v-text-5xl)); }

.v-heading-1 { font-size: clamp(var(--v-text-3xl), 3.5vw, var(--v-text-4xl)); }
.v-heading-2 { font-size: clamp(var(--v-text-2xl), 2.5vw, var(--v-text-3xl)); }
.v-heading-3 { font-size: var(--v-text-2xl); }
.v-heading-4 {
  font-size: var(--v-text-xl);
  font-family: var(--v-font-body);
  font-weight: var(--v-font-weight-semibold);
  letter-spacing: var(--v-letter-normal);
}

.v-eyebrow {
  font-family: var(--v-font-body);
  font-size: var(--v-text-xs);
  font-weight: var(--v-font-weight-semibold);
  letter-spacing: var(--v-letter-wider);
  text-transform: uppercase;
  color: var(--v-color-ink-muted);
  margin: 0;
}

.v-body-lg {
  font-size: var(--v-text-lg);
  line-height: var(--v-leading-relaxed);
}

.v-body {
  font-size: var(--v-text-base);
  line-height: var(--v-leading-normal);
}

.v-body-sm {
  font-size: var(--v-text-sm);
  line-height: var(--v-leading-normal);
}

.v-caption {
  font-size: var(--v-text-xs);
  line-height: var(--v-leading-snug);
  color: var(--v-color-text-muted);
}

.v-price {
  font-family: var(--v-font-body);
  font-weight: var(--v-font-weight-medium);
  letter-spacing: var(--v-letter-normal);
  font-variant-numeric: tabular-nums;
}

.v-price--sale {
  color: var(--v-color-danger);
}

.v-price--compare {
  color: var(--v-color-text-muted);
  text-decoration: line-through;
  font-weight: var(--v-font-weight-regular);
}
