/**
 * Typography Styles
 * Additional text styles and formatting
 */

/* Text alignment */
.text-left {
  text-align: left;
}

.text-right {
  text-align: right;
}

.text-center {
  text-align: center;
}

.text-justify {
  text-align: justify;
}

/* Text transforms */
.text-lowercase {
  text-transform: lowercase;
}

.text-uppercase {
  text-transform: uppercase;
}

.text-capitalize {
  text-transform: capitalize;
}

/* Font weights */
.font-light {
  font-weight: var(--hvn-theme-font-weight-light);
}

.font-normal {
  font-weight: var(--hvn-theme-font-weight-regular);
}

.font-medium {
  font-weight: var(--hvn-theme-font-weight-medium);
}

.font-semibold {
  font-weight: var(--hvn-theme-font-weight-semibold);
}

.font-bold {
  font-weight: var(--hvn-theme-font-weight-bold);
}

/* Text colors */
.text-primary {
  color: var(--hvn-theme-text-primary);
}

.text-secondary {
  color: var(--hvn-theme-text-secondary);
}

.text-muted {
  color: var(--hvn-theme-text-muted);
}

.text-light {
  color: var(--hvn-theme-text-light);
}

/* Text utilities */
.text-truncate {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.text-wrap {
  word-wrap: break-word;
}

.text-nowrap {
  white-space: nowrap;
}

/* Links within text */
.text-content a {
  text-decoration: underline;
}

.text-content a:hover,
.text-content a:focus {
  text-decoration: none;
}

/* Drop caps */
.drop-cap:first-letter {
  font-size: 4rem;
  font-weight: var(--hvn-theme-font-weight-bold);
  float: left;
  line-height: 1;
  margin-right: var(--hvn-theme-space-sm);
  color: var(--hvn-theme-brand-primary);
}

/* Small text */
small,
.text-small {
  font-size: var(--hvn-theme-font-size-sm);
}

/* Large text */
.text-large {
  font-size: var(--hvn-theme-font-size-lg);
}

/* Lead paragraph */
.lead {
  font-size: var(--hvn-theme-font-size-lg);
  font-weight: var(--hvn-theme-font-weight-medium);
  line-height: var(--hvn-theme-line-height-loose);
  margin-bottom: var(--hvn-theme-space-lg);
}

/* Highlight text */
mark,
.highlight {
  background: var(--hvn-theme-brand-warning);
  padding: 0.125rem 0.25rem;
  border-radius: var(--hvn-theme-border-radius-xs);
}