/* ==========================================================================
   Typography — Carbon type scale as reusable classes (prefix: t-)
   ========================================================================== */

.t-label-01 {
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 400;
  letter-spacing: 0.02em;
}

.t-helper-01 {
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 400;
  letter-spacing: 0.02em;
  color: var(--cds-text-helper);
}

.t-body-01 {
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 400;
  letter-spacing: 0.01em;
}

.t-body-02 {
  font-size: 1rem;
  line-height: 1.5rem;
  font-weight: 400;
}

.t-heading-01 {
  font-size: 0.875rem;
  line-height: 1.125rem;
  font-weight: 600;
  letter-spacing: 0.01em;
}

.t-heading-02 {
  font-size: 1rem;
  line-height: 1.5rem;
  font-weight: 600;
}

.t-heading-03 {
  font-size: 1.25rem;
  line-height: 1.75rem;
  font-weight: 400;
}

.t-heading-04 {
  font-size: 1.75rem;
  line-height: 2.25rem;
  font-weight: 400;
}

.t-heading-05 {
  font-size: 2rem;
  line-height: 2.5rem;
  font-weight: 400;
}

.t-heading-06 {
  font-size: 2.625rem;
  line-height: 3.125rem;
  font-weight: 300;
}

.t-heading-07 {
  font-size: 3.375rem;
  line-height: 4rem;
  font-weight: 300;
}

/* Fluid display heading — Carbon fluid-display approximation */
.t-display {
  font-size: clamp(2.625rem, 1.5rem + 4.5vw, 4.75rem);
  line-height: 1.1;
  font-weight: 300;
  letter-spacing: -0.01em;
}

.t-mono {
  font-family: var(--cds-font-mono);
}

.t-khmer {
  font-family: var(--cds-font-khmer);
}

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

/* Khmer mode: Khmer-first font stack, taller lines (stacked vowels and subscripts),
   and slightly larger small text for legibility */
html[lang="km"] body {
  font-family: var(--cds-font-khmer);
  line-height: 1.75;
}

html[lang="km"] .t-label-01,
html[lang="km"] .t-helper-01,
html[lang="km"] .tag {
  font-size: 0.8125rem;
}

html[lang="km"] .t-body-01,
html[lang="km"] .tile__description,
html[lang="km"] .card__desc,
html[lang="km"] .card__sub,
html[lang="km"] .cert__issuer,
html[lang="km"] .step__text,
html[lang="km"] .meter__head,
html[lang="km"] .section-head p {
  font-size: 0.9375rem;
}

/* Khmer words are long and unspaced: smaller floor for the display size on phones */
html[lang="km"] .t-display {
  font-size: clamp(2rem, 1.2rem + 4vw, 4.25rem);
  font-weight: 400;
}

html[lang="km"] .t-heading-06 {
  font-weight: 400;
}

html[lang="km"] .t-display,
html[lang="km"] .t-heading-06,
html[lang="km"] .t-heading-04 {
  line-height: 1.4;
}

html[lang="km"] .t-label-01,
html[lang="km"] .t-helper-01,
html[lang="km"] .t-body-01 {
  line-height: 1.6;
}
