/* Headings */
.h1, h1 {
  font-size: var(--text-3xl);
  font-weight: var(--font-bold);
  line-height: var(--leading-tight);
  letter-spacing: -0.02em;
}

.h2, h2 {
  font-size: var(--text-2xl);
  font-weight: var(--font-bold);
  line-height: var(--leading-tight);
  letter-spacing: -0.01em;
}

.h3, h3 {
  font-size: var(--text-xl);
  font-weight: var(--font-semibold);
  line-height: var(--leading-tight);
}

.h4, h4 {
  font-size: var(--text-lg);
  font-weight: var(--font-semibold);
  line-height: var(--leading-tight);
}

.h5, h5 {
  font-size: var(--text-base);
  font-weight: var(--font-semibold);
}

.h6, h6 {
  font-size: var(--text-sm);
  font-weight: var(--font-semibold);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

/* Tablet+ heading sizes */
@media (min-width: 768px) {
  .h1, h1 {
    font-size: var(--text-4xl);
  }

  .h2, h2 {
    font-size: var(--text-3xl);
  }

  .h3, h3 {
    font-size: var(--text-2xl);
  }

  .h4, h4 {
    font-size: var(--text-xl);
  }
}

/* Desktop heading sizes */
@media (min-width: 1024px) {
  .h1, h1 {
    font-size: var(--text-5xl);
  }

  .h2, h2 {
    font-size: var(--text-4xl);
  }

  .h3, h3 {
    font-size: var(--text-3xl);
  }
}

/* Display headings for hero sections */
.display-1 {
  font-size: var(--text-4xl);
  font-weight: var(--font-bold);
  line-height: 1.1;
  letter-spacing: -0.03em;
}

.display-2 {
  font-size: var(--text-3xl);
  font-weight: var(--font-bold);
  line-height: 1.1;
  letter-spacing: -0.02em;
}

@media (min-width: 768px) {
  .display-1 {
    font-size: var(--text-5xl);
  }

  .display-2 {
    font-size: var(--text-4xl);
  }
}

@media (min-width: 1024px) {
  .display-1 {
    font-size: var(--text-6xl);
  }

  .display-2 {
    font-size: var(--text-5xl);
  }
}

/* Body text */
.lead {
  font-size: var(--text-lg);
  line-height: var(--leading-relaxed);
  color: var(--color-gray-700);
}

@media (min-width: 768px) {
  .lead {
    font-size: var(--text-xl);
  }
}

.text-sm {
  font-size: var(--text-sm);
}

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

.text-lg {
  font-size: var(--text-lg);
}

/* Text colors */
.text-primary {
  color: var(--color-primary);
}

.text-secondary {
  color: var(--color-secondary);
}

.text-success {
  color: var(--color-success);
}

.text-info {
  color: var(--color-info);
}

.text-danger {
  color: var(--color-danger);
}

.text-muted {
  color: var(--color-gray-500);
}

.text-dark {
  color: var(--color-dark);
}

.text-white {
  color: var(--color-white);
}

/* Text alignment */
.text-left {
  text-align: left;
}

.text-center {
  text-align: center;
}

.text-right {
  text-align: right;
}

/* Font weights */
.font-normal {
  font-weight: var(--font-normal);
}

.font-medium {
  font-weight: var(--font-medium);
}

.font-semibold {
  font-weight: var(--font-semibold);
}

.font-bold {
  font-weight: var(--font-bold);
}
