/* ==========================================================================
   Dexter Martin Real Estate — Typography tokens
   Editorial, luxury-adjacent. Wide tracking on labels & callouts.
   ========================================================================== */

:root {
  /* ---- Families (roles are fixed — do not swap) ---- */
  --font-display: 'Libre Baskerville', Georgia, 'Times New Roman', serif;
  --font-callout: 'Cooper Hewitt', 'Helvetica Neue', Arial, sans-serif;
  --font-body:    'Open Sans', 'Helvetica Neue', Arial, sans-serif;

  /* ---- Weights ---- */
  --fw-light:    300; /* @kind font */  /* Open Sans light — airy body */
  --fw-regular:  400; /* @kind font */
  --fw-medium:   500; /* @kind font */
  --fw-semibold: 600; /* @kind font */
  --fw-bold:     700; /* @kind font */  /* Cooper Hewitt callouts, Libre Baskerville headline bold */
  --fw-heavy:    900; /* @kind font */  /* Cooper Hewitt oversized stats */

  /* ---- Tracking (letter-spacing) — a signature of the brand ---- */
  --track-tight:  0.02em; /* @kind other */
  --track-normal: 0.04em; /* @kind other */  /* callout default */
  --track-wide:   0.12em; /* @kind other */
  --track-wider:  0.20em; /* @kind other */  /* uppercase callouts */
  --track-label:  0.25em; /* @kind other */  /* small tracked labels */
  --track-max:    0.35em; /* @kind other */  /* hero eyebrow labels */

  /* ---- Line heights ---- */
  --lh-tight:   1.05; /* @kind other */  /* large display */
  --lh-snug:    1.15; /* @kind other */  /* headlines */
  --lh-normal:  1.5; /* @kind other */
  --lh-relaxed: 1.7; /* @kind other */   /* body default */
  --lh-loose:   1.85; /* @kind other */  /* long-form body */

  /* ---- Type scale (px) ---- */
  --fs-display-xl: 100px; /* hero name lockup */
  --fs-display-l:  64px;
  --fs-display-m:  46px;  /* section H2 */
  --fs-display-s:  32px;
  --fs-h3:         22px;  /* serif subhead */
  --fs-callout:    14px;  /* tracked uppercase callout */
  --fs-body-l:     16px;
  --fs-body:       14px;  /* default body */
  --fs-caption:    12px;
  --fs-label:      10px;  /* tracked grey labels */

  /* ==== Semantic role aliases ==== */
  --text-headline:  var(--fw-regular) var(--fs-display-m)/var(--lh-snug) var(--font-display); /* @kind font */
  --text-h3:        var(--fw-regular) var(--fs-h3)/var(--lh-snug) var(--font-display); /* @kind font */
  --text-body:      var(--fw-regular) var(--fs-body)/var(--lh-loose) var(--font-body); /* @kind font */
  --text-body-light:var(--fw-light) var(--fs-body)/var(--lh-loose) var(--font-body); /* @kind font */
}

/* ---- Convenience utility classes (optional helpers for cards/kits) ---- */
.dm-eyebrow {
  font-family: var(--font-body);
  font-size: var(--fs-label);
  font-weight: var(--fw-semibold);
  letter-spacing: var(--track-max);
  text-transform: uppercase;
  color: var(--text-label);
}
.dm-callout {
  font-family: var(--font-callout);
  font-weight: var(--fw-bold);
  letter-spacing: var(--track-wider);
  text-transform: uppercase;
}
.dm-headline {
  font-family: var(--font-display);
  font-weight: var(--fw-regular);
  line-height: var(--lh-snug);
}
.dm-quote {
  font-family: var(--font-display);
  font-style: italic;
  font-weight: var(--fw-regular);
}
