/* public/css/shared/typography.css */
/*
  RealRates shared typography foundation.

  Phase 1 defines the semantic type scale only. Existing components keep their
  current appearance until later phases replace local font-size declarations
  with these variables.

  Managed shells:
  - .page-user-app
  - .page-public-shell.page-public-static
  - .page-coming-soon

  The complex public homepage uses .page-public-home and is deliberately
  excluded until its separate portrait-layout project.
*/

:root {
  /* Existing brand font stacks remain the source of truth. */
  --rr-font-sans: var(
    --font-sans,
    Inter,
    system-ui,
    -apple-system,
    BlinkMacSystemFont,
    "Segoe UI",
    sans-serif
  );
  --rr-font-serif: var(
    --font-serif,
    "Playfair Display",
    Georgia,
    "Times New Roman",
    serif
  );

  /* Fixed text roles. */
  --rr-text-micro: 0.75rem;
  --rr-text-small: 0.875rem;
  --rr-text-body: 1rem;
  --rr-text-lead: 1.125rem;
  --rr-text-control: 1rem;
  --rr-text-button: 0.875rem;

  /* Fluid heading roles. */
  --rr-heading-card-min: 1rem;
  --rr-heading-card-max: 1.3rem;
  --rr-heading-card: clamp(
    var(--rr-heading-card-min),
    0.94rem + 0.28vw,
    var(--rr-heading-card-max)
  );

  --rr-heading-section-min: 1.35rem;
  --rr-heading-section-max: 2rem;
  --rr-heading-section: clamp(
    var(--rr-heading-section-min),
    1.15rem + 0.8vw,
    var(--rr-heading-section-max)
  );

  --rr-heading-page-min: 2rem;
  --rr-heading-page-max: 3.5rem;
  --rr-heading-page: clamp(
    var(--rr-heading-page-min),
    1.65rem + 1.7vw,
    var(--rr-heading-page-max)
  );

  /* Shared rhythm and emphasis. */
  --rr-line-height-tight: 1.08;
  --rr-line-height-copy: 1.45;
  --rr-line-height-relaxed: 1.6;
  --rr-letter-spacing-heading: -0.025em;
  --rr-weight-regular: 400;
  --rr-weight-medium: 600;
  --rr-weight-strong: 700;
  --rr-weight-emphasis: 800;
}

/* Compact application scale for authenticated user routes. */
.page-user-app {
  --rr-heading-card: clamp(1rem, 0.94rem + 0.28vw, 1.25rem);
  --rr-heading-section: clamp(1.3rem, 1.15rem + 0.65vw, 1.85rem);
  --rr-heading-page: clamp(2rem, 1.7rem + 1.5vw, 3.25rem);
}

/* Slightly larger editorial scale for public static pages. */
.page-public-shell.page-public-static,
.page-coming-soon {
  --rr-heading-card: clamp(1.05rem, 0.96rem + 0.4vw, 1.4rem);
  --rr-heading-section: clamp(1.5rem, 1.2rem + 1.1vw, 2.6rem);
  --rr-heading-page: clamp(2.25rem, 1.75rem + 2.2vw, 4.5rem);
}
