/* ============================================================
   BBN CATERERS — TYPOGRAPHY SYSTEM
   ============================================================ */

/* ─── Headings ─── */
.h1 { font-size: clamp(var(--text-4xl), 6vw, var(--text-8xl)); line-height: 1.05; }
.h2 { font-size: clamp(var(--text-3xl), 4vw, var(--text-5xl)); line-height: 1.15; }
.h3 { font-size: clamp(var(--text-2xl), 3vw, var(--text-4xl)); line-height: 1.2; }
.h4 { font-size: clamp(var(--text-xl), 2.5vw, var(--text-3xl)); line-height: 1.3; }
.h5 { font-size: var(--text-xl); line-height: 1.4; }
.h6 { font-size: var(--text-lg); line-height: 1.5; }

/* ─── Body Text ─── */
.text-xl   { font-size: var(--text-xl); }
.text-lg   { font-size: var(--text-lg); }
.text-base { font-size: var(--text-base); }
.text-sm   { font-size: var(--text-sm); }
.text-xs   { font-size: var(--text-xs); }

/* ─── Font Weights ─── */
.fw-light    { font-weight: var(--fw-light); }
.fw-regular  { font-weight: var(--fw-regular); }
.fw-medium   { font-weight: var(--fw-medium); }
.fw-semibold { font-weight: var(--fw-semibold); }
.fw-bold     { font-weight: var(--fw-bold); }
.fw-black    { font-weight: var(--fw-black); }

/* ─── Font Families ─── */
.font-heading { font-family: var(--font-heading); }
.font-body    { font-family: var(--font-body); }
.font-accent  { font-family: var(--font-accent); }

/* ─── Color Utilities ─── */
.text-primary  { color: var(--color-primary); }
.text-accent   { color: var(--color-accent); }
.text-cream    { color: var(--color-cream); }
.text-muted    { color: var(--color-text-muted); }
.text-dark     { color: var(--color-dark); }
.text-white    { color: var(--color-white); }

/* ─── Text Alignment ─── */
.text-center { text-align: center; }
.text-left   { text-align: left; }
.text-right  { text-align: right; }

/* ─── Letter Spacing ─── */
.tracking-wide   { letter-spacing: 0.05em; }
.tracking-wider  { letter-spacing: 0.10em; }
.tracking-widest { letter-spacing: 0.15em; }

/* ─── Line Height ─── */
.leading-tight  { line-height: 1.2; }
.leading-snug   { line-height: 1.4; }
.leading-normal { line-height: 1.6; }
.leading-relaxed{ line-height: 1.75; }
.leading-loose  { line-height: 2; }

/* ─── Special Text Styles ─── */
.text-uppercase { text-transform: uppercase; }
.text-italic    { font-style: italic; }

/* ─── Gold Gradient Text ─── */
.text-gradient-gold {
  background: var(--gradient-gold);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* ─── Dropcap ─── */
.dropcap::first-letter {
  float: left;
  font-family: var(--font-heading);
  font-size: 4em;
  line-height: 0.8;
  margin-right: 0.1em;
  color: var(--color-accent);
  font-weight: var(--fw-bold);
}

/* ─── Prose (long-form content) ─── */
.prose {
  font-size: var(--text-lg);
  line-height: 1.8;
  color: var(--color-text);
  max-width: 72ch;
}

.prose p + p {
  margin-top: var(--space-4);
}

.prose strong {
  font-weight: var(--fw-bold);
  color: var(--color-primary);
}

.prose em {
  font-style: italic;
  color: var(--color-accent-dark);
}
