/* ===================================================================
   GrooVVee — Typography System
   Font: Times New Roman throughout, base size 14px
   =================================================================== */

/* Base body type */
body {
  font-family: 'Times New Roman', Times, serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.6;
  color: var(--text-primary);
  background-color: var(--bg-base);
}

/* ── Display / Headings ──────────────────────────────────────── */
.font-display,
h1, h2, h3, h4, h5, h6 {
  font-family: 'Times New Roman', Times, serif;
  line-height: 1.2;
  font-weight: 700;
  color: var(--text-primary);
  letter-spacing: -0.02em;
}

/* Type Scale */
.text-display-2xl {
  font-size: clamp(2.5rem, 5vw, 4.5rem);
  font-weight: 900;
  line-height: 1.05;
  letter-spacing: -0.04em;
  font-family: 'Times New Roman', Times, serif;
}

.text-display-xl {
  font-size: clamp(2rem, 4vw, 3.5rem);
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: -0.03em;
  font-family: 'Times New Roman', Times, serif;
}

.text-display-lg {
  font-size: clamp(1.75rem, 3vw, 2.75rem);
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: -0.025em;
  font-family: 'Times New Roman', Times, serif;
}

h1, .text-h1 {
  font-size: clamp(1.5rem, 2.5vw, 2.25rem);
  font-weight: 700;
  letter-spacing: -0.02em;
}

h2, .text-h2 {
  font-size: clamp(1.25rem, 2vw, 1.75rem);
  font-weight: 700;
  letter-spacing: -0.015em;
}

h3, .text-h3 {
  font-size: clamp(1.1rem, 1.5vw, 1.375rem);
  font-weight: 600;
  letter-spacing: -0.01em;
}

h4, .text-h4 {
  font-size: 1.125rem;
  font-weight: 600;
  letter-spacing: -0.005em;
}

h5, .text-h5 {
  font-size: 14px;
  font-weight: 600;
}

h6, .text-h6 {
  font-size: 0.875rem;
  font-weight: 600;
  letter-spacing: 0.01em;
}

/* Body Sizes */
.text-xl    { font-size: 1.25rem;  line-height: 1.6; }
.text-lg    { font-size: 1.125rem; line-height: 1.6; }
.text-base  { font-size: 1rem;     line-height: 1.6; }
.text-sm    { font-size: 0.875rem; line-height: 1.5; }
.text-xs    { font-size: 0.75rem;  line-height: 1.5; }
.text-2xs   { font-size: 0.6875rem;line-height: 1.4; }

/* Weight utilities */
.font-light    { font-weight: 300; }
.font-regular  { font-weight: 400; }
.font-medium   { font-weight: 500; }
.font-semibold { font-weight: 600; }
.font-bold     { font-weight: 700; }
.font-extrabold{ font-weight: 800; }
.font-black    { font-weight: 900; }

/* Color utilities */
.text-primary   { color: var(--text-primary); }
.text-secondary { color: var(--text-secondary); }
.text-muted     { color: var(--text-muted); }
.text-disabled  { color: var(--text-disabled); }
.text-accent    { color: var(--text-accent); }
.text-brand     { color: var(--text-brand); }
.text-error     { color: var(--error-500); }
.text-success   { color: var(--success-500); }
.text-warning   { color: var(--warning-500); }

/* Special logo text */
.logo-text {
  font-family: 'Times New Roman', Times, serif;
  font-weight: 800;
  font-size: 1.375rem;
  letter-spacing: -0.025em;
  color: var(--text-primary);
  line-height: 1;
}

.logo-text--sm {
  font-size: 1.125rem;
}

/* Brand name is plain dark grey, no accent color — matches .logo-text. */
.logo-accent {
  color: var(--text-primary);
}

/* Gradient text utility */
.text-gradient-primary {
  background: var(--gradient-primary);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.text-gradient-accent {
  background: var(--gradient-accent);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.text-gradient-mixed {
  background: var(--gradient-mixed);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* Label / overline style */
.text-label {
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text-muted);
}

/* Truncation */
.truncate {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.line-clamp-2 {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.line-clamp-3 {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
