/* ==========================================================================
   UDS Text Styles
   Source: UDS Tokens (Figma) — uds/text/* (35 composite text styles)

   Each class maps 1:1 to a Figma text style. Values use semantic font tokens
   so they respond to font-family, font-scale, and density changes.

   Naming: .uds-text-{category}-{size}[-weight]
     - Default weight per category is Regular (omitted from class name)
     - Medium and Bold variants append the weight suffix
   ========================================================================== */

/* --------------------------------------------------------------------------
   Base reset: all text elements inside a UDS Shadow DOM host inherit the
   UDS font family. Scoped to :host so this rule does not leak into host
   documents that import this file (e.g. docs sites, Telerik/Radzen apps).
   -------------------------------------------------------------------------- */
:host, :host *, :host *::before, :host *::after {
  font-family: var(--uds-font-family);
}

/* ==========================================================================
   HEADINGS — uds/text/heading/*
   Always Bold weight.
   ========================================================================== */

.uds-text-heading-h1 {
  font-size:      var(--uds-font-size-4xl);
  font-weight:    var(--uds-font-weight-bold);
  line-height:    var(--uds-font-line-height-5xl);
  letter-spacing: 0;
}

.uds-text-heading-h2 {
  font-size:      var(--uds-font-size-2xl);
  font-weight:    var(--uds-font-weight-bold);
  line-height:    var(--uds-font-line-height-2xl);
  letter-spacing: 0;
}

.uds-text-heading-h3 {
  font-size:      var(--uds-font-size-lg);
  font-weight:    var(--uds-font-weight-bold);
  line-height:    var(--uds-font-line-height-lg);
  letter-spacing: 0;
}

.uds-text-heading-h4 {
  font-size:      var(--uds-font-size-md);
  font-weight:    var(--uds-font-weight-bold);
  line-height:    var(--uds-font-line-height-md);
  letter-spacing: 0;
}

/* ==========================================================================
   PARAGRAPHS — uds/text/paragraph/*
   6 sizes × 3 weights = 18 styles
   ========================================================================== */

/* ---- xs (10px / 12px lh) ---- */
.uds-text-paragraph-xs {
  font-size:      var(--uds-font-size-xs);
  font-weight:    var(--uds-font-weight-regular);
  line-height:    var(--uds-font-line-height-xs);
  letter-spacing: 0;
}
.uds-text-paragraph-xs-medium {
  font-size:      var(--uds-font-size-xs);
  font-weight:    var(--uds-font-weight-medium);
  line-height:    var(--uds-font-line-height-xs);
  letter-spacing: 0;
}
.uds-text-paragraph-xs-bold {
  font-size:      var(--uds-font-size-xs);
  font-weight:    var(--uds-font-weight-bold);
  line-height:    var(--uds-font-line-height-xs);
  letter-spacing: 0;
}

/* ---- sm (12px / 16px lh) ---- */
.uds-text-paragraph-sm {
  font-size:      var(--uds-font-size-sm);
  font-weight:    var(--uds-font-weight-regular);
  line-height:    var(--uds-font-line-height-sm);
  letter-spacing: 0;
}
.uds-text-paragraph-sm-medium {
  font-size:      var(--uds-font-size-sm);
  font-weight:    var(--uds-font-weight-medium);
  line-height:    var(--uds-font-line-height-sm);
  letter-spacing: 0;
}
.uds-text-paragraph-sm-bold {
  font-size:      var(--uds-font-size-sm);
  font-weight:    var(--uds-font-weight-bold);
  line-height:    var(--uds-font-line-height-sm);
  letter-spacing: 0;
}

/* ---- base (14px / 20px lh) ---- */
.uds-text-paragraph-base {
  font-size:      var(--uds-font-size-base);
  font-weight:    var(--uds-font-weight-regular);
  line-height:    var(--uds-font-line-height-base);
  letter-spacing: 0;
}
.uds-text-paragraph-base-medium {
  font-size:      var(--uds-font-size-base);
  font-weight:    var(--uds-font-weight-medium);
  line-height:    var(--uds-font-line-height-base);
  letter-spacing: 0;
}
.uds-text-paragraph-base-bold {
  font-size:      var(--uds-font-size-base);
  font-weight:    var(--uds-font-weight-bold);
  line-height:    var(--uds-font-line-height-base);
  letter-spacing: 0;
}

/* ---- md (16px / 24px lh) ---- */
.uds-text-paragraph-md {
  font-size:      var(--uds-font-size-md);
  font-weight:    var(--uds-font-weight-regular);
  line-height:    var(--uds-font-line-height-md);
  letter-spacing: 0;
}
.uds-text-paragraph-md-medium {
  font-size:      var(--uds-font-size-md);
  font-weight:    var(--uds-font-weight-medium);
  line-height:    var(--uds-font-line-height-md);
  letter-spacing: 0;
}
.uds-text-paragraph-md-bold {
  font-size:      var(--uds-font-size-md);
  font-weight:    var(--uds-font-weight-bold);
  line-height:    var(--uds-font-line-height-md);
  letter-spacing: 0;
}

/* ---- lg (18px / 26px lh) ---- */
.uds-text-paragraph-lg {
  font-size:      var(--uds-font-size-lg);
  font-weight:    var(--uds-font-weight-regular);
  line-height:    var(--uds-font-line-height-lg);
  letter-spacing: 0;
}
.uds-text-paragraph-lg-medium {
  font-size:      var(--uds-font-size-lg);
  font-weight:    var(--uds-font-weight-medium);
  line-height:    var(--uds-font-line-height-lg);
  letter-spacing: 0;
}
.uds-text-paragraph-lg-bold {
  font-size:      var(--uds-font-size-lg);
  font-weight:    var(--uds-font-weight-bold);
  line-height:    var(--uds-font-line-height-lg);
  letter-spacing: 0;
}

/* ---- xl (20px / 28px lh) ---- */
.uds-text-paragraph-xl {
  font-size:      var(--uds-font-size-xl);
  font-weight:    var(--uds-font-weight-regular);
  line-height:    var(--uds-font-line-height-xl);
  letter-spacing: 0;
}
.uds-text-paragraph-xl-medium {
  font-size:      var(--uds-font-size-xl);
  font-weight:    var(--uds-font-weight-medium);
  line-height:    var(--uds-font-line-height-xl);
  letter-spacing: 0;
}
.uds-text-paragraph-xl-bold {
  font-size:      var(--uds-font-size-xl);
  font-weight:    var(--uds-font-weight-bold);
  line-height:    var(--uds-font-line-height-xl);
  letter-spacing: 0;
}

/* ==========================================================================
   LABELS — uds/text/label/*
   2 sizes × 3 weights = 6 styles
   ========================================================================== */

/* ---- sm (12px / 16px lh) ---- */
.uds-text-label-sm {
  font-size:      var(--uds-font-size-sm);
  font-weight:    var(--uds-font-weight-regular);
  line-height:    var(--uds-font-line-height-sm);
  letter-spacing: 0;
}
.uds-text-label-sm-medium {
  font-size:      var(--uds-font-size-sm);
  font-weight:    var(--uds-font-weight-medium);
  line-height:    var(--uds-font-line-height-sm);
  letter-spacing: 0;
}
.uds-text-label-sm-bold {
  font-size:      var(--uds-font-size-sm);
  font-weight:    var(--uds-font-weight-bold);
  line-height:    var(--uds-font-line-height-sm);
  letter-spacing: 0;
}

/* ---- base (14px / 20px lh) ---- */
.uds-text-label-base {
  font-size:      var(--uds-font-size-base);
  font-weight:    var(--uds-font-weight-regular);
  line-height:    var(--uds-font-line-height-base);
  letter-spacing: 0;
}
.uds-text-label-base-medium {
  font-size:      var(--uds-font-size-base);
  font-weight:    var(--uds-font-weight-medium);
  line-height:    var(--uds-font-line-height-base);
  letter-spacing: 0;
}
.uds-text-label-base-bold {
  font-size:      var(--uds-font-size-base);
  font-weight:    var(--uds-font-weight-bold);
  line-height:    var(--uds-font-line-height-base);
  letter-spacing: 0;
}

/* ==========================================================================
   INPUTS — uds/text/input/*
   1 size × 3 weights + 1 helper = 4 styles
   ========================================================================== */

.uds-text-input-base {
  font-size:      var(--uds-font-size-base);
  font-weight:    var(--uds-font-weight-regular);
  line-height:    var(--uds-font-line-height-base);
  letter-spacing: 0;
}
.uds-text-input-base-medium {
  font-size:      var(--uds-font-size-base);
  font-weight:    var(--uds-font-weight-medium);
  line-height:    var(--uds-font-line-height-base);
  letter-spacing: 0;
}
.uds-text-input-base-bold {
  font-size:      var(--uds-font-size-base);
  font-weight:    var(--uds-font-weight-bold);
  line-height:    var(--uds-font-line-height-base);
  letter-spacing: 0;
}
.uds-text-input-helper {
  font-size:      var(--uds-font-size-xs);
  font-weight:    var(--uds-font-weight-regular);
  line-height:    var(--uds-font-line-height-xs);
  letter-spacing: 0;
}

/* ==========================================================================
   DATA — uds/text/data/*
   1 size × 3 weights = 3 styles
   ========================================================================== */

.uds-text-data-cell {
  font-size:      var(--uds-font-size-base);
  font-weight:    var(--uds-font-weight-regular);
  line-height:    var(--uds-font-line-height-base);
  letter-spacing: 0;
}
.uds-text-data-cell-medium {
  font-size:      var(--uds-font-size-base);
  font-weight:    var(--uds-font-weight-medium);
  line-height:    var(--uds-font-line-height-base);
  letter-spacing: 0;
}
.uds-text-data-cell-bold {
  font-size:      var(--uds-font-size-base);
  font-weight:    var(--uds-font-weight-bold);
  line-height:    var(--uds-font-line-height-base);
  letter-spacing: 0;
}
