/* PrecastFlow typography.
   Scale follows the AlignUI-style ramp the source is built on. The product
   is dense B2B: base body is 14px, micro labels 11–12px. Weights map to the
   League Spartan cuts shipped in fonts.css (400 / 500 / 600 / 700).
   Sizes/line-heights are transcribed from the source's observed values. */

:root {
  /* ── Display numerals (dashboard KPI figures) ── Zalando Sans Medium */
  --text-display-2xl: 128px;   --leading-display-2xl: 120px;
  --text-display-xl:  56px;    --leading-display-xl:  64px;

  /* ── Titles ── League Spartan */
  --text-title-h1: 40px;  --leading-title-h1: 48px;
  --text-title-h2: 32px;  --leading-title-h2: 40px;
  --text-title-h3: 24px;  --leading-title-h3: 32px;
  --text-title-h4: 20px;  --leading-title-h4: 28px;
  --text-title-h5: 18px;  --leading-title-h5: 24px;

  /* ── Labels (controls, buttons, table headers) ── */
  --text-label-lg: 18px;  --leading-label-lg: 24px;
  --text-label-md: 16px;  --leading-label-md: 24px;
  --text-label-sm: 14px;  --leading-label-sm: 20px;
  --text-label-xs: 12px;  --leading-label-xs: 16px;

  /* ── Paragraphs (body copy) ── */
  --text-paragraph-lg: 18px;  --leading-paragraph-lg: 28px;
  --text-paragraph-md: 16px;  --leading-paragraph-md: 24px;
  --text-paragraph-sm: 14px;  --leading-paragraph-sm: 20px;
  --text-paragraph-xs: 12px;  --leading-paragraph-xs: 16px;

  /* ── Subheadings (uppercase eyebrows, section labels) ── */
  --text-subheading-md:  16px; --leading-subheading-md:  24px;
  --text-subheading-sm:  14px; --leading-subheading-sm:  20px;
  --text-subheading-xs:  12px; --leading-subheading-xs:  16px;
  --text-subheading-2xs: 11px; --leading-subheading-2xs: 12px;

  --tracking-subheading: 0.06em;

  --weight-regular: 400;
  --weight-medium: 500;
  --weight-semibold: 600;
  --weight-bold: 700;
}

/* ── Specimen / utility classes ─────────────────────────────────── */
.pf-display-2xl { font-family: var(--font-secondary); font-weight: 500;
  font-size: var(--text-display-2xl); line-height: var(--leading-display-2xl); letter-spacing: -0.02em; }
.pf-display-xl { font-family: var(--font-secondary); font-weight: 500;
  font-size: var(--text-display-xl); line-height: var(--leading-display-xl); letter-spacing: -0.02em; }

.pf-title-h1 { font-family: var(--font-sans); font-weight: 600;
  font-size: var(--text-title-h1); line-height: var(--leading-title-h1); letter-spacing: -0.01em; }
.pf-title-h2 { font-family: var(--font-sans); font-weight: 600;
  font-size: var(--text-title-h2); line-height: var(--leading-title-h2); letter-spacing: -0.01em; }
.pf-title-h3 { font-family: var(--font-sans); font-weight: 600;
  font-size: var(--text-title-h3); line-height: var(--leading-title-h3); }
.pf-title-h4 { font-family: var(--font-sans); font-weight: 600;
  font-size: var(--text-title-h4); line-height: var(--leading-title-h4); }
.pf-title-h5 { font-family: var(--font-sans); font-weight: 600;
  font-size: var(--text-title-h5); line-height: var(--leading-title-h5); }

.pf-label-lg { font-family: var(--font-sans); font-weight: 500;
  font-size: var(--text-label-lg); line-height: var(--leading-label-lg); }
.pf-label-md { font-family: var(--font-sans); font-weight: 500;
  font-size: var(--text-label-md); line-height: var(--leading-label-md); }
.pf-label-sm { font-family: var(--font-sans); font-weight: 500;
  font-size: var(--text-label-sm); line-height: var(--leading-label-sm); }
.pf-label-xs { font-family: var(--font-sans); font-weight: 500;
  font-size: var(--text-label-xs); line-height: var(--leading-label-xs); }

.pf-paragraph-lg { font-family: var(--font-sans); font-weight: 400;
  font-size: var(--text-paragraph-lg); line-height: var(--leading-paragraph-lg); }
.pf-paragraph-md { font-family: var(--font-sans); font-weight: 400;
  font-size: var(--text-paragraph-md); line-height: var(--leading-paragraph-md); }
.pf-paragraph-sm { font-family: var(--font-sans); font-weight: 400;
  font-size: var(--text-paragraph-sm); line-height: var(--leading-paragraph-sm); }
.pf-paragraph-xs { font-family: var(--font-sans); font-weight: 400;
  font-size: var(--text-paragraph-xs); line-height: var(--leading-paragraph-xs); }

.pf-subheading-md  { font-family: var(--font-sans); font-weight: 500; text-transform: uppercase;
  font-size: var(--text-subheading-md);  line-height: var(--leading-subheading-md);  letter-spacing: var(--tracking-subheading); }
.pf-subheading-sm  { font-family: var(--font-sans); font-weight: 500; text-transform: uppercase;
  font-size: var(--text-subheading-sm);  line-height: var(--leading-subheading-sm);  letter-spacing: var(--tracking-subheading); }
.pf-subheading-xs  { font-family: var(--font-sans); font-weight: 500; text-transform: uppercase;
  font-size: var(--text-subheading-xs);  line-height: var(--leading-subheading-xs);  letter-spacing: var(--tracking-subheading); }
.pf-subheading-2xs { font-family: var(--font-data); font-weight: 500; text-transform: uppercase;
  font-size: var(--text-subheading-2xs); line-height: var(--leading-subheading-2xs); letter-spacing: var(--tracking-subheading); }

/* Krona One eyebrow / wordmark lockup */
.pf-eyebrow { font-family: var(--font-display); font-weight: 400; text-transform: uppercase;
  font-size: var(--text-subheading-xs); line-height: var(--leading-subheading-xs); letter-spacing: 0.04em; }
