/* ============================================================
   GARABATO · Tipografía
   Montserrat Alternates en titulares (display + h1/h2/h3),
   Poppins en body y UI. Peso alto para display.
   ============================================================ */

/* Display — para hero, section-openers, declaraciones */
.t-display-xl {
  font-family: var(--font-display);
  font-size: clamp(4rem, 10vw, var(--fs-128));
  font-weight: var(--fw-black);
  line-height: var(--lh-tight);
  letter-spacing: var(--tracking-tight);
}
.t-display-lg {
  font-family: var(--font-display);
  font-size: clamp(3rem, 7vw, var(--fs-96));
  font-weight: var(--fw-black);
  line-height: var(--lh-tight);
  letter-spacing: var(--tracking-tight);
}
.t-display-md {
  font-family: var(--font-display);
  font-size: clamp(2.25rem, 5vw, var(--fs-72));
  font-weight: var(--fw-bold);
  line-height: var(--lh-tight);
  letter-spacing: var(--tracking-tight);
}
.t-display-sm {
  font-family: var(--font-display);
  font-size: clamp(1.75rem, 4vw, var(--fs-56));
  font-weight: var(--fw-bold);
  line-height: var(--lh-snug);
  letter-spacing: var(--tracking-snug);
}

/* Headings */
.t-h1 { font-family: var(--font-display); font-size: var(--fs-40); font-weight: var(--fw-bold);     line-height: var(--lh-snug); letter-spacing: var(--tracking-snug); }
.t-h2 { font-family: var(--font-display); font-size: var(--fs-32); font-weight: var(--fw-semibold); line-height: var(--lh-snug); letter-spacing: var(--tracking-snug); }
.t-h3 { font-family: var(--font-display); font-size: var(--fs-24); font-weight: var(--fw-semibold); line-height: var(--lh-snug); }
.t-h4 { font-size: var(--fs-20); font-weight: var(--fw-semibold); line-height: var(--lh-snug); }
.t-h5 { font-size: var(--fs-18); font-weight: var(--fw-semibold); line-height: var(--lh-normal); }

/* Body */
.t-body-lg { font-size: var(--fs-20); font-weight: var(--fw-regular); line-height: var(--lh-relaxed); }
.t-body    { font-size: var(--fs-16); font-weight: var(--fw-regular); line-height: var(--lh-relaxed); }
.t-body-sm { font-size: var(--fs-14); font-weight: var(--fw-regular); line-height: var(--lh-normal); }

/* UI — labels, buttons, nav */
.t-label    { font-size: var(--fs-14); font-weight: var(--fw-medium); line-height: 1.3; }
.t-label-sm { font-size: var(--fs-12); font-weight: var(--fw-medium); line-height: 1.3; }

/* Eyebrow / overline — alineado editorial */
.t-eyebrow {
  font-size: var(--fs-12);
  font-weight: var(--fw-semibold);
  letter-spacing: var(--tracking-wider);
  text-transform: uppercase;
  line-height: 1;
}

/* Caption */
.t-caption {
  font-size: var(--fs-12);
  font-weight: var(--fw-regular);
  color: var(--fg-muted);
  line-height: var(--lh-normal);
}

/* Código */
.t-code {
  font-family: var(--font-mono);
  font-size: 0.875em;
  background: var(--ink-100);
  padding: 0.1em 0.4em;
  border-radius: var(--r-sm);
}

/* Utilidades */
.t-tabular { font-variant-numeric: tabular-nums; }
.t-italic  { font-style: italic; }
.t-underline { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 3px; }
