/* Fixed rem steps respect browser text-size preferences. No viewport-based type.
   Use these utilities directly in JSX or @apply them in shared components. */
@theme {
  --text-copy: 1rem;
  --text-copy--line-height: 1.5;
  --text-caption: 0.875rem;
  --text-caption--line-height: 1.5;
  --text-ui-heading: 1.125rem;
  --text-ui-heading--line-height: 1.5;
  --text-lead: 1.25rem;
  --text-lead--line-height: 1.5;
  --text-title: 2rem;
  --text-title--line-height: 1.25;
  --text-section: 3rem;
  --text-section--line-height: 1.125;
  --text-display: 4.5rem;
  --text-display--line-height: 1.125;
}

@utility type-body { @apply text-copy; }
@utility type-small { @apply text-caption; }
@utility type-ui-heading {
  @apply text-ui-heading;
  font-family: var(--ds-sans);
  font-weight: 500;
  letter-spacing: normal;
}
@utility type-label {
  @apply text-caption;
  font-weight: 500;
  letter-spacing: 0.08em;
}
@utility type-eyebrow {
  font-size: 0.75rem;
  line-height: 1.5;
  font-weight: 400;
  letter-spacing: 0.08em;
}
@utility type-lead { @apply text-lead; }
@utility type-title {
  @apply text-title;
  font-family: var(--ds-serif);
  font-weight: 400;
  letter-spacing: -0.02em;
}
@utility type-section {
  @apply text-section;
  font-family: var(--ds-serif);
  font-weight: 400;
  letter-spacing: -0.02em;
  @media (max-width: 40rem) { font-size: 2.25rem; line-height: 1.25; }
}
@utility type-display {
  @apply text-display;
  font-family: var(--ds-serif);
  font-weight: 400;
  letter-spacing: -0.025em;
  @media (max-width: 40rem) { font-size: 3rem; line-height: 1.125; }
}
@utility type-control {
  font-size: 1.5rem;
  line-height: 1.25;
}
