/* Repair Hi Plus — Typography tokens
   Montserrat (Latin) / Cairo (Arabic). Headlines: Bold 700 with tight
   negative tracking at large sizes. Body 16/26. Utility 13–14 semibold.
   Overline: wide-tracked uppercase (Latin only — never on Arabic).
   For Arabic, weights stay the same; add ~+2px line-height (RTL rule below). */
:root {
  /* Display & headlines */
  --type-display-size: 44px;
  --type-display-line: 48px;
  --type-display-weight: 700;
  --type-display-track: -1.5px;

  --type-h1-size: 32px;   --type-h1-line: 40px;  --type-h1-weight: 700; --type-h1-track: -0.8px;
  --type-h2-size: 24px;   --type-h2-line: 32px;  --type-h2-weight: 700; --type-h2-track: -0.5px;
  --type-h3-size: 20px;   --type-h3-line: 28px;  --type-h3-weight: 600; --type-h3-track: -0.2px;

  /* Body */
  --type-body-lg-size: 18px; --type-body-lg-line: 28px;
  --type-body-size: 16px;    --type-body-line: 26px;
  --type-body-sm-size: 14px; --type-body-sm-line: 20px;

  /* Labels / utility */
  --type-label-lg-size: 14px; --type-label-lg-line: 20px; --type-label-weight: 600;
  --type-label-md-size: 13px; --type-label-md-line: 18px;
  --type-label-sm-size: 12px; --type-label-sm-line: 16px; --type-label-sm-track: 0.04em;

  /* Overline (Latin uppercase accent) */
  --type-overline-size: 12px; --type-overline-line: 16px;
  --type-overline-weight: 700; --type-overline-track: 0.18em;

  --line-height-body: 1.625;
  --line-height-arabic: 1.8;   /* Arabic breathes more */
}

/* Convenience composite classes (optional helpers) */
.rh-display { font-family: var(--font-sans); font-weight: var(--type-display-weight);
  font-size: var(--type-display-size); line-height: var(--type-display-line);
  letter-spacing: var(--type-display-track); color: var(--text-strong); }
.rh-h1 { font-family: var(--font-sans); font-weight: var(--type-h1-weight);
  font-size: var(--type-h1-size); line-height: var(--type-h1-line);
  letter-spacing: var(--type-h1-track); color: var(--text-strong); }
.rh-h2 { font-family: var(--font-sans); font-weight: var(--type-h2-weight);
  font-size: var(--type-h2-size); line-height: var(--type-h2-line);
  letter-spacing: var(--type-h2-track); color: var(--text-strong); }
.rh-h3 { font-family: var(--font-sans); font-weight: var(--type-h3-weight);
  font-size: var(--type-h3-size); line-height: var(--type-h3-line);
  letter-spacing: var(--type-h3-track); color: var(--text-strong); }
.rh-body-lg { font-family: var(--font-sans); font-weight: 400;
  font-size: var(--type-body-lg-size); line-height: var(--type-body-lg-line); color: var(--text-body); }
.rh-body { font-family: var(--font-sans); font-weight: 400;
  font-size: var(--type-body-size); line-height: var(--type-body-line); color: var(--text-body); }
.rh-body-sm { font-family: var(--font-sans); font-weight: 400;
  font-size: var(--type-body-sm-size); line-height: var(--type-body-sm-line); color: var(--text-secondary); }
.rh-overline { font-family: var(--font-sans); font-weight: var(--type-overline-weight);
  font-size: var(--type-overline-size); line-height: var(--type-overline-line);
  letter-spacing: var(--type-overline-track); text-transform: uppercase; color: var(--text-secondary); }

/* Arabic / RTL: never uppercase, italicize, or letter-space. Restore spacing
   and give text more line-height. Emphasis via weight, not case or tracking. */
[dir="rtl"] .rh-overline { text-transform: none; letter-spacing: 0; }
[dir="rtl"] .rh-body, [dir="rtl"] .rh-body-lg { line-height: var(--line-height-arabic); }
[dir="rtl"] { letter-spacing: 0 !important; font-style: normal; }
