/* ============================================================
   Fortify Ecom — Typography
   Two workhorse faces (Display ≥19px, Text <20px) share one
   Inter/system stack; a serif brand face is reserved for the
   wordmark. The ladder is 300 / 400 / 600 / 700 — weight 500
   is deliberately absent. Negative tracking at ≥17px produces
   the signature tight headline cadence.
   ============================================================ */

:root {
  /* ---- Families ------------------------------------------- */
  --font-display: system-ui, -apple-system, BlinkMacSystemFont, "Inter", sans-serif;
  --font-text:    system-ui, -apple-system, BlinkMacSystemFont, "Inter", sans-serif;
  --font-brand:   "Playfair Display", Georgia, "Times New Roman", serif;

  /* ---- Weight ladder (no 500) ----------------------------- */
  --weight-light:   300;
  --weight-regular: 400;
  --weight-semibold:600;
  --weight-bold:    700;

  /* ---- Type scale: size / weight / line-height / tracking -- */
  --type-hero-size: 56px;  --type-hero-lh: 1.07; --type-hero-ls: -0.28px;  /* hero headline */
  --type-display-lg-size: 40px; --type-display-lg-lh: 1.10; --type-display-lg-ls: 0px; /* tile headline */
  --type-display-md-size: 34px; --type-display-md-lh: 1.47; --type-display-md-ls: -0.374px; /* section head */
  --type-lead-size: 28px; --type-lead-lh: 1.14; --type-lead-ls: 0.196px; /* tile subcopy */
  --type-lead-airy-size: 24px; --type-lead-airy-lh: 1.5; --type-lead-airy-ls: 0px; /* airy lead (weight 300) */
  --type-tagline-size: 21px; --type-tagline-lh: 1.19; --type-tagline-ls: 0.231px; /* sub-nav / sub-tile */
  --type-body-size: 17px; --type-body-lh: 1.47; --type-body-ls: -0.374px; /* default paragraph */
  --type-dense-link-lh: 2.41; /* footer/store link stacks — relaxed leading */
  --type-caption-size: 14px; --type-caption-lh: 1.43; --type-caption-ls: -0.224px;
  --type-button-large-size: 18px; --type-button-large-ls: 0px; /* store hero CTA (weight 300) */
  --type-fine-print-size: 12px; --type-fine-print-lh: 1.0; --type-fine-print-ls: -0.12px;
  --type-micro-size: 10px; --type-micro-lh: 1.3; --type-micro-ls: -0.08px;
  --type-nav-size: 12px; --type-nav-lh: 1.0; --type-nav-ls: -0.12px;
}

/* ---- Ready-made type utility classes ---------------------- */
.type-hero {
  font-family: var(--font-display); font-weight: var(--weight-semibold);
  font-size: var(--type-hero-size); line-height: var(--type-hero-lh);
  letter-spacing: var(--type-hero-ls);
}
.type-display-lg {
  font-family: var(--font-display); font-weight: var(--weight-semibold);
  font-size: var(--type-display-lg-size); line-height: var(--type-display-lg-lh);
  letter-spacing: var(--type-display-lg-ls);
}
.type-display-md {
  font-family: var(--font-display); font-weight: var(--weight-semibold);
  font-size: var(--type-display-md-size); line-height: var(--type-display-md-lh);
  letter-spacing: var(--type-display-md-ls);
}
.type-lead {
  font-family: var(--font-text); font-weight: var(--weight-regular);
  font-size: var(--type-lead-size); line-height: var(--type-lead-lh);
  letter-spacing: var(--type-lead-ls);
}
.type-lead-airy {
  font-family: var(--font-text); font-weight: var(--weight-light);
  font-size: var(--type-lead-airy-size); line-height: var(--type-lead-airy-lh);
  letter-spacing: var(--type-lead-airy-ls);
}
.type-tagline {
  font-family: var(--font-display); font-weight: var(--weight-semibold);
  font-size: var(--type-tagline-size); line-height: var(--type-tagline-lh);
  letter-spacing: var(--type-tagline-ls);
}
.type-body {
  font-family: var(--font-text); font-weight: var(--weight-regular);
  font-size: var(--type-body-size); line-height: var(--type-body-lh);
  letter-spacing: var(--type-body-ls);
}
.type-body-strong { font-weight: var(--weight-semibold); }
.type-caption {
  font-family: var(--font-text); font-weight: var(--weight-regular);
  font-size: var(--type-caption-size); line-height: var(--type-caption-lh);
  letter-spacing: var(--type-caption-ls);
}
.type-caption-strong {
  font-family: var(--font-text); font-weight: var(--weight-semibold);
  font-size: var(--type-caption-size); line-height: 1.29;
  letter-spacing: var(--type-caption-ls);
}
.type-fine-print {
  font-family: var(--font-text); font-weight: var(--weight-regular);
  font-size: var(--type-fine-print-size); line-height: var(--type-fine-print-lh);
  letter-spacing: var(--type-fine-print-ls);
}
.type-brand {
  font-family: var(--font-brand); font-weight: var(--weight-bold);
  letter-spacing: -0.01em;
}
