/* Typography Styles */

/* Headings */
h1, .h1 {
  font-size: clamp(var(--font-size-3xl), 4vw, var(--font-size-5xl));
  font-weight: var(--font-weight-medium);
  letter-spacing: -0.02em;
  margin-bottom: var(--spacing-lg);
}

h2, .h2 {
  font-size: clamp(var(--font-size-2xl), 3vw, var(--font-size-4xl));
  font-weight: var(--font-weight-medium);
  letter-spacing: -0.01em;
  margin-bottom: var(--spacing-md);
}

h3, .h3 {
  font-size: clamp(var(--font-size-xl), 2.5vw, var(--font-size-3xl));
  font-weight: var(--font-weight-medium);
  margin-bottom: var(--spacing-md);
}

h4, .h4 {
  font-size: clamp(var(--font-size-lg), 2vw, var(--font-size-2xl));
  font-weight: var(--font-weight-medium);
  margin-bottom: var(--spacing-sm);
}

h5, .h5 {
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-semibold);
  margin-bottom: var(--spacing-sm);
}

h6, .h6 {
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-semibold);
  margin-bottom: var(--spacing-sm);
}

/* Body Text */
.text-large {
  font-size: var(--font-size-lg);
  line-height: var(--line-height-relaxed);
}

.text-base {
  font-size: var(--font-size-base);
  line-height: var(--line-height-base);
}

.text-small {
  font-size: var(--font-size-sm);
  line-height: var(--line-height-base);
}

.text-xs {
  font-size: var(--font-size-xs);
  line-height: var(--line-height-base);
}

/* Lead Text */
.lead {
  font-size: var(--font-size-xl);
  line-height: var(--line-height-relaxed);
  color: var(--color-text-secondary);
  font-weight: var(--font-weight-normal);
}

/* Text Alignment */
.text-left { text-align: left; }
.text-center { text-align: center; }
.text-right { text-align: right; }
.text-justify { text-align: justify; }

/* Font Weight */
.font-normal { font-weight: var(--font-weight-normal); }
.font-medium { font-weight: var(--font-weight-medium); }
.font-semibold { font-weight: var(--font-weight-semibold); }
.font-bold { font-weight: var(--font-weight-bold); }

/* Text Color */
.text-primary { color: var(--color-text-primary); }
.text-secondary { color: var(--color-text-secondary); }
.text-accent { color: var(--color-accent); }
.text-blue-dark { color: var(--color-blue-dark); }
.text-white { color: white; }

/* Letter Spacing */
.tracking-tight { letter-spacing: -0.02em; }
.tracking-normal { letter-spacing: 0; }
.tracking-wide { letter-spacing: 0.02em; }

/* Text Transform */
.uppercase { text-transform: uppercase; }
.lowercase { text-transform: lowercase; }
.capitalize { text-transform: capitalize; }

/* Link Styles */
a {
  transition: color var(--transition-fast);
}

a:hover {
  color: var(--color-primary-hover);
}

.link-underline {
  text-decoration: underline;
  text-underline-offset: 2px;
  text-decoration-thickness: 1px;
}