/* Synced from ReforgeLicenseServer/wwwroot/shared/carbon/ - keep in sync manually */
/* ==========================================================================
   Soft Carbon — Type scale
   Carbon v11 type tokens as utility classes + element defaults.
   Fixed tokens for product UI; fluid display tokens for marketing heroes.
   Base: 16px = 1rem. Letter-spacing values are Carbon's, in px.
   ========================================================================== */

/* ------ Utility classes (match Carbon token names) ------ */

.type-label-01 {
  font-size: 0.75rem;      /* 12px */
  line-height: 1rem;       /* 16px */
  font-weight: 400;
  letter-spacing: 0.32px;
}

.type-label-02 {
  font-size: 0.875rem;     /* 14px */
  line-height: 1.125rem;   /* 18px */
  font-weight: 400;
  letter-spacing: 0.16px;
}

.type-helper-text-01 {
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 400;
  letter-spacing: 0.32px;
}

.type-legal-01 {
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 400;
  letter-spacing: 0.32px;
}

.type-code-01 {
  font-family: var(--cds-font-mono);
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 400;
  letter-spacing: 0.32px;
}

.type-code-02 {
  font-family: var(--cds-font-mono);
  font-size: 0.875rem;
  line-height: 1.25rem;    /* 20px */
  font-weight: 400;
  letter-spacing: 0.32px;
}

.type-body-compact-01 {
  font-size: 0.875rem;
  line-height: 1.125rem;
  font-weight: 400;
  letter-spacing: 0.16px;
}

.type-body-01 {
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 400;
  letter-spacing: 0.16px;
}

.type-body-02 {
  font-size: 1rem;         /* 16px */
  line-height: 1.5rem;     /* 24px */
  font-weight: 400;
  letter-spacing: 0;
}

.type-heading-compact-01 {
  font-size: 0.875rem;
  line-height: 1.125rem;
  font-weight: 600;
  letter-spacing: 0.16px;
}

.type-heading-01 {
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 600;
  letter-spacing: 0.16px;
}

.type-heading-02 {
  font-size: 1rem;
  line-height: 1.5rem;
  font-weight: 600;
  letter-spacing: 0;
}

.type-heading-03 {
  font-size: 1.25rem;      /* 20px */
  line-height: 1.75rem;    /* 28px */
  font-weight: 400;
  letter-spacing: 0;
}

.type-heading-04 {
  font-size: 1.75rem;      /* 28px */
  line-height: 2.25rem;    /* 36px */
  font-weight: 400;
  letter-spacing: 0;
}

.type-heading-05 {
  font-size: 2rem;         /* 32px */
  line-height: 2.5rem;     /* 40px */
  font-weight: 400;
  letter-spacing: 0;
}

.type-heading-06 {
  font-size: 2.625rem;     /* 42px */
  line-height: 3.125rem;   /* 50px */
  font-weight: 300;
  letter-spacing: 0;
}

.type-heading-07 {
  font-size: 3.375rem;     /* 54px */
  line-height: 4rem;       /* 64px */
  font-weight: 300;
  letter-spacing: 0;
}

/* Fluid display tokens — marketing heroes (Carbon for IBM.com leadspace).
   Interpolate 42px @ 672px viewport → max @ 1584px. */
.type-display-01 {
  font-size: clamp(2.625rem, 1.031rem + 3.79vw, 4.75rem);  /* 42 → 76px */
  line-height: 1.19;
  font-weight: 300;
  letter-spacing: -0.64px;
}

.type-display-02 {
  font-size: clamp(2.625rem, 1.031rem + 3.79vw, 4.75rem);  /* 42 → 76px */
  line-height: 1.19;
  font-weight: 600;
  letter-spacing: -0.64px;
}

.type-fluid-heading-05 {
  font-size: clamp(2rem, 0.688rem + 3.13vw, 3.75rem);      /* 32 → 60px */
  line-height: 1.17;
  font-weight: 300;
  letter-spacing: 0;
}

/* ------ Element defaults (apply once carbon stack is imported) ------ */

body {
  font-family: var(--cds-font-sans);
  font-size: 1rem;
  line-height: 1.5rem;
  font-weight: 400;
}

code,
kbd,
pre,
samp {
  font-family: var(--cds-font-mono);
}

strong,
b {
  font-weight: 600; /* Plex has no 700; Carbon uses SemiBold for emphasis */
}
