/* ============================================================
   TERMINUS PARTNERS — Design System Tokens
   Version 1.0 — April 2026
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,600;1,300;1,400&family=Inter:wght@400;600&display=swap');

/* ------------------------------------------------------------
   COLOR TOKENS
   ------------------------------------------------------------ */
:root {
  /* Primary palette */
  --color-ink:        #0F1923;
  --color-navy:       #1C2B3D;
  --color-steel:      #4E8FBF;
  --color-stone:      #F1F2F4;
  --color-white:      #FFFFFF;

  /* Extended palette */
  --color-slate:      #7A9BB8;
  --color-charcoal:   #374455;
  --color-bone:       #E8E7E2;

  /* Semantic aliases */
  --bg-primary:       var(--color-white);
  --bg-dark:          var(--color-ink);
  --bg-subtle:        var(--color-stone);
  --bg-warm:          var(--color-bone);

  --text-primary:     var(--color-ink);
  --text-secondary:   var(--color-charcoal);
  --text-on-dark:     var(--color-white);
  --text-muted-dark:  var(--color-slate);
  --text-accent:      var(--color-steel);

  --accent:           var(--color-steel);
  --rule:             var(--color-steel);
  --border-subtle:    var(--color-bone);
  --border-dark:      var(--color-navy);
}

/* ------------------------------------------------------------
   TYPOGRAPHY TOKENS
   ------------------------------------------------------------ */
:root {
  /* Font families */
  --font-display:  'Cormorant Garamond', Georgia, serif;
  --font-body:     'Inter', Calibri, Arial, sans-serif;

  /* Font weights */
  --fw-light:      300;
  --fw-regular:    400;
  --fw-semibold:   600;

  /* Type scale — base 16px */
  --text-display:  clamp(36px, 5vw, 72px);
  --text-h1:       clamp(28px, 3.5vw, 40px);
  --text-h2:       clamp(22px, 2.5vw, 28px);
  --text-h3:       clamp(18px, 2vw, 22px);
  --text-body:     15px;
  --text-small:    13px;
  --text-caption:  11px;
  --text-label:    10px;
  --text-pullquote: clamp(18px, 2vw, 24px);

  /* Leading */
  --leading-tight:  1.15;
  --leading-normal: 1.55;
  --leading-loose:  1.75;

  /* Tracking */
  --tracking-display:  0.12em;
  --tracking-label:    0.08em;
  --tracking-body:     0.01em;
}

/* ------------------------------------------------------------
   TYPE UTILITY CLASSES
   ------------------------------------------------------------ */

/* Display */
.t-display {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-size: var(--text-display);
  letter-spacing: var(--tracking-display);
  line-height: var(--leading-tight);
  color: var(--text-primary);
  text-transform: uppercase;
}

/* Headings */
.t-h1 {
  font-family: var(--font-display);
  font-weight: var(--fw-regular);
  font-size: var(--text-h1);
  letter-spacing: 0.03em;
  line-height: var(--leading-tight);
  color: var(--text-primary);
}

.t-h2 {
  font-family: var(--font-display);
  font-weight: var(--fw-regular);
  font-size: var(--text-h2);
  letter-spacing: 0.02em;
  line-height: var(--leading-tight);
  color: var(--text-primary);
}

.t-h3 {
  font-family: var(--font-display);
  font-weight: var(--fw-semibold);
  font-size: var(--text-h3);
  letter-spacing: 0.01em;
  line-height: var(--leading-normal);
  color: var(--text-primary);
}

/* Body */
.t-body {
  font-family: var(--font-body);
  font-weight: var(--fw-regular);
  font-size: var(--text-body);
  letter-spacing: var(--tracking-body);
  line-height: var(--leading-normal);
  color: var(--text-primary);
}

/* Small / Caption */
.t-caption {
  font-family: var(--font-body);
  font-weight: var(--fw-regular);
  font-size: var(--text-caption);
  letter-spacing: 0.02em;
  line-height: var(--leading-normal);
  color: var(--text-secondary);
}

/* Label / UI */
.t-label {
  font-family: var(--font-body);
  font-weight: var(--fw-semibold);
  font-size: var(--text-label);
  letter-spacing: var(--tracking-label);
  text-transform: uppercase;
  color: var(--text-secondary);
}

/* Pull quote */
.t-pullquote {
  font-family: var(--font-display);
  font-weight: var(--fw-light);
  font-style: italic;
  font-size: var(--text-pullquote);
  line-height: var(--leading-loose);
  color: var(--text-accent);
  letter-spacing: 0.01em;
}

/* Wordmark */
.t-wordmark {
  font-family: var(--font-display);
  font-weight: var(--fw-regular);
  letter-spacing: var(--tracking-display);
  text-transform: uppercase;
  line-height: 1;
}

/* Steel rule */
.rule-steel {
  border: none;
  border-top: 1px solid var(--color-steel);
  margin: 0;
}

.rule-steel-thick {
  border: none;
  border-top: 2px solid var(--color-steel);
  margin: 0;
}
