/*
 * ╔══════════════════════════════════════════════════════════════╗
 * ║                  NUDGE — TYPOGRAPHY                         ║
 * ║                                                              ║
 * ║  All text styles: headings, body, labels, utilities.        ║
 * ║  Fonts: Inter (body) + Urbanist (hero / display).           ║
 * ╚══════════════════════════════════════════════════════════════╝
 */

/* ─────────────────────────────────────────────
   BASE BODY
   ───────────────────────────────────────────── */
body {
  font-family: var(--font-body);
  font-size: var(--text-body);       /* 16px */
  font-weight: var(--weight-regular);
  line-height: var(--leading-normal);
  color: var(--foreground);
  background-color: var(--app-background);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}


/* ─────────────────────────────────────────────
   HERO H1
   Display font, fluid 44px → 84px, gradient fill
   ───────────────────────────────────────────── */
.hero-h1 {
  font-family: var(--font-display);
  font-size: var(--text-hero);            /* clamp(2.75rem, 6vw, 5.25rem) */
  font-weight: var(--weight-bold);
  line-height: var(--leading-snug);
  letter-spacing: var(--tracking-tight);
  padding-bottom: 0.05em;
  background: linear-gradient(180deg, #454545 0%, #0E0E0E 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  text-wrap: balance;
}

[data-theme="dark"] .hero-h1 {
  background: linear-gradient(180deg, #FFFFFF 0%, #C8C4BF 100%);
  -webkit-background-clip: text;
  background-clip: text;
}


/* ─────────────────────────────────────────────
   SECTION HEADING (H2)
   Used as the primary title on every content section.
   32px → 56px fluid. Apply .section-heading to any <h2>.
   ───────────────────────────────────────────── */
.section-heading {
  font-size: var(--text-section);         /* clamp(2rem, 4vw, 3.5rem) */
  font-weight: var(--weight-semibold);
  line-height: var(--leading-tight);
  color: var(--foreground);
  text-wrap: balance;
}

.section-dark .section-heading {
  color: var(--dark-section-fg);
}


/* ─────────────────────────────────────────────
   SECTION OVERLINE / LABEL
   Small all-caps label above a section heading.
   Usage: <p class="section-overline">Built for your industry</p>
   ───────────────────────────────────────────── */
.section-overline {
  font-size: var(--text-xs);              /* 11px */
  font-weight: var(--weight-bold);
  letter-spacing: var(--tracking-wider);  /* 0.1em */
  text-transform: uppercase;
  color: var(--primary);
  margin-bottom: 16px;
}

/* Muted variant — used in light-colored sections */
.section-overline-muted {
  font-size: var(--text-xs);
  font-weight: var(--weight-semibold);
  letter-spacing: var(--tracking-wider);
  text-transform: uppercase;
  color: rgba(28,25,23,0.45);
  margin-bottom: 14px;
}


/* ─────────────────────────────────────────────
   SECTION DESCRIPTION
   Standard paragraph under a section heading.
   17px, muted, relaxed line-height.
   Usage: <p class="section-description">...</p>
   ───────────────────────────────────────────── */
.section-description {
  font-size: var(--text-lg);              /* 1.0625rem = 17px */
  color: var(--muted-foreground);
  line-height: var(--leading-loose);      /* 1.65 */
  max-width: 560px;
  margin: 0 auto;
  text-wrap: balance;
}


/* ─────────────────────────────────────────────
   HERO SUBTITLE
   Slightly larger than section description.
   Used directly under the hero H1.
   ───────────────────────────────────────────── */
.hero-subtitle {
  font-size: var(--text-2xl);             /* 1.25rem = 20px */
  font-weight: var(--weight-medium);
  color: var(--muted-foreground);
  line-height: 1.55;
  max-width: 560px;
  margin: 0 auto;
}


/* ─────────────────────────────────────────────
   CARD TITLE / CARD BODY
   Text inside feature cards, infra cards, etc.
   ───────────────────────────────────────────── */
.card-title {
  font-size: var(--text-md);              /* 15px */
  font-weight: var(--weight-semibold);
  color: var(--foreground);
  margin-bottom: 4px;
}

.card-body {
  font-size: 0.8125rem;                   /* 13px */
  color: var(--muted-foreground);
  line-height: var(--leading-loose);
}


/* ─────────────────────────────────────────────
   FINE PRINT
   Legal / disclaimer text under CTAs, pricing, etc.
   ───────────────────────────────────────────── */
.fine-print {
  font-size: var(--text-base);            /* 14px */
  color: var(--muted-foreground);
  line-height: var(--leading-relaxed);
  letter-spacing: 0.01em;
}

.fine-print-xs {
  font-size: var(--text-sm);             /* 12px */
  color: var(--muted-foreground);
  opacity: 0.7;
}


/* ─────────────────────────────────────────────
   STEP LABEL (legacy — use .section-overline)
   ───────────────────────────────────────────── */
.step-label {
  font-size: var(--text-xs);
  font-weight: var(--weight-semibold);
  letter-spacing: var(--tracking-wider);
  text-transform: uppercase;
  color: var(--primary);
}


/* ─────────────────────────────────────────────
   TEXT COLOUR UTILITIES
   ───────────────────────────────────────────── */
.text-muted    { color: var(--muted-foreground); }
.text-primary  { color: var(--primary); }
.text-on-dark  { color: var(--dark-section-fg); }

.text-sm-muted {
  font-size: var(--text-base);
  color: var(--muted-foreground);
  line-height: var(--leading-relaxed);
}


/* ─────────────────────────────────────────────
   FOOTER LINKS
   ───────────────────────────────────────────── */
footer a {
  color: var(--muted-foreground);
  text-decoration: none;
  font-size: var(--text-base);
  transition: color var(--transition-base);
}
footer a:hover { color: var(--foreground); }
