/* ============================================================
   TYPOGRAPHY
   Font-face fallbacks + type scale
   (Fonts are loaded in index.html <head> for performance)
   ============================================================ */



/* Fallback font-metric overrides (matches Framer's placeholder approach) */
@font-face {
  font-family: 'DM Sans Placeholder';
  src: local('Arial');
  ascent-override: 94.36%;
  descent-override: 29.49%;
  line-gap-override: 0.00%;
  size-adjust: 105.13%;
}

@font-face {
  font-family: 'Inter Placeholder';
  src: local('Arial');
  ascent-override: 89.79%;
  descent-override: 22.36%;
  line-gap-override: 0.00%;
  size-adjust: 107.89%;
}

/* ── Type Scale ──────────────────────────────────────────── */

/* Display / Hero */
.text-hero {
  font-family: var(--font-primary);
  font-size: var(--fs-hero);
  font-weight: var(--fw-black);
  line-height: var(--lh-tight);
  letter-spacing: var(--ls-tight);
}

/* Section headings */
.text-h1 {
  font-family: var(--font-primary);
  font-size: var(--fs-5xl);
  font-weight: var(--fw-bold);
  line-height: var(--lh-snug);
  letter-spacing: var(--ls-tight);
}

.text-h2 {
  font-family: var(--font-primary);
  font-size: var(--fs-4xl);
  font-weight: var(--fw-bold);
  line-height: var(--lh-snug);
  letter-spacing: var(--ls-tight);
}

.text-h3 {
  font-family: var(--font-primary);
  font-size: var(--fs-3xl);
  font-weight: var(--fw-semibold);
  line-height: var(--lh-snug);
  letter-spacing: var(--ls-normal);
}

/* Body text */
.text-body {
  font-family: var(--font-primary);
  font-size: var(--fs-md);
  font-weight: var(--fw-regular);
  line-height: var(--lh-relaxed);
  letter-spacing: var(--ls-normal);
}

.text-body-sm {
  font-family: var(--font-primary);
  font-size: var(--fs-base);
  font-weight: var(--fw-regular);
  line-height: var(--lh-normal);
}

/* Labels / caps */
.text-label {
  font-family: var(--font-primary);
  font-size: var(--fs-xs);
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-wider);
  text-transform: uppercase;
}

/* Handwritten accent (Architects Daughter) */
.text-handwritten {
  font-family: var(--font-accent);
  font-weight: var(--fw-regular);
}

/* Nav text */
.text-nav {
  font-family: var(--font-primary);
  font-size: var(--fs-base);
  font-weight: var(--fw-medium);
  letter-spacing: -0.01em;
}

/* Card title */
.text-card-title {
  font-family: var(--font-primary);
  font-size: var(--fs-sm);
  font-weight: var(--fw-semibold);
  line-height: var(--lh-snug);
}

/* Tag text */
.text-tag {
  font-family: var(--font-primary);
  font-size: var(--fs-xs);
  font-weight: var(--fw-medium);
  letter-spacing: 0.02em;
}

/* Responsive type scaling */
@media (max-width: 1199px) {
  :root {
    --fs-hero: 72px;
    --fs-5xl: 56px;
    --fs-4xl: 44px;
    --fs-3xl: 30px;
  }
}

@media (max-width: 809px) {
  :root {
    --fs-hero: 48px;
    --fs-5xl: 40px;
    --fs-4xl: 32px;
    --fs-3xl: 24px;
    --fs-2xl: 22px;
    --fs-xl: 18px;
    --section-pad-x: 20px;
  }
}
