/* ============================================================================
 * Text utilities — alignment, weight, transform, color, size.
 * ========================================================================== */

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

/* Weight */
.wb-font-light     { font-weight: var(--wb-fw-light); }
.wb-font-regular   { font-weight: var(--wb-fw-regular); }
.wb-font-medium    { font-weight: var(--wb-fw-medium); }
.wb-font-semibold  { font-weight: var(--wb-fw-semibold); }
.wb-font-bold      { font-weight: var(--wb-fw-bold); }
.wb-font-extrabold { font-weight: var(--wb-fw-extrabold); }

/* Size */
.wb-text-xs   { font-size: var(--wb-text-xs); }
.wb-text-sm   { font-size: var(--wb-text-sm); }
.wb-text-base { font-size: var(--wb-text-base); }
.wb-text-lg   { font-size: var(--wb-text-lg); }
.wb-text-xl   { font-size: var(--wb-text-xl); }
.wb-text-2xl  { font-size: var(--wb-text-2xl); }
.wb-text-3xl  { font-size: var(--wb-text-3xl); }
.wb-text-4xl  { font-size: var(--wb-text-4xl); }
.wb-text-5xl  { font-size: var(--wb-text-5xl); }

/* Color */
.wb-text-ink        { color: var(--wb-color-ink); }
.wb-text-default    { color: var(--wb-color-text); }
.wb-text-muted      { color: var(--wb-color-text-muted); }
.wb-text-soft       { color: var(--wb-color-text-soft); }
.wb-text-white      { color: var(--wb-color-white); }
.wb-text-brand      { color: var(--wb-color-brand); }
.wb-text-brand-ink  { color: var(--wb-color-brand-ink); }

/* Transform */
.wb-uppercase  { text-transform: uppercase; letter-spacing: var(--wb-ls-wide); }
.wb-lowercase  { text-transform: lowercase; }
.wb-capitalize { text-transform: capitalize; }
.wb-normal-case{ text-transform: none; }

/* Line height */
.wb-leading-tight   { line-height: var(--wb-lh-tight); }
.wb-leading-snug    { line-height: var(--wb-lh-snug); }
.wb-leading-normal  { line-height: var(--wb-lh-normal); }
.wb-leading-relaxed { line-height: var(--wb-lh-relaxed); }

/* Tracking */
.wb-tracking-tight  { letter-spacing: var(--wb-ls-tight); }
.wb-tracking-normal { letter-spacing: var(--wb-ls-normal); }
.wb-tracking-wide   { letter-spacing: var(--wb-ls-wide); }

/* Truncation */
.wb-truncate {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.wb-line-clamp-2 {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.wb-line-clamp-3 {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.wb-text-balance { text-wrap: balance; }
.wb-text-pretty  { text-wrap: pretty; }
