/* ============================================
   Swiss IAF — Rich text presets (Level 1)
   Figma sizes mapped to theme tokens where possible.
   ============================================ */

.iaf-rich-content {
  color: inherit;
  text-wrap: pretty;
}

.iaf-rich-content p {
  margin: 0;
}

.iaf-rich-content p + p {
  margin-top: 1em;
}

/* Inline modifiers (Level 2) */
.iaf-rich-content .iaf-txt-serif,
.iaf-txt-serif {
  font-family: var(--font-martina);
  letter-spacing: var(--mp-copy-ls, 0.01em);
}

.iaf-rich-content .iaf-txt-upper,
.iaf-txt-upper {
  text-transform: uppercase;
  letter-spacing: var(--gt-copy-upper-ls, 0.03em);
}

/* H1 Reg — 52 / 110% */
.iaf-txt-h1 {
  font-family: var(--font-gt-america);
  font-weight: var(--gt-h2-weight);
  font-size: 52px;
  line-height: 1.1;
}

/* H2 Reg — 40 / 52 */
.iaf-txt-h2 {
  font-family: var(--font-gt-america);
  font-weight: var(--gt-h2-weight);
  font-size: 40px;
  line-height: 52px;
}

/* H2 Serif */
.iaf-txt-h2-serif {
  font-family: var(--font-martina);
  font-weight: var(--mp-h2-weight);
  font-size: var(--mp-h2-size);
  line-height: var(--mp-h2-lh);
}

/* H3 Reg — 28 / 40 */
.iaf-txt-h3 {
  font-family: var(--font-gt-america);
  font-weight: var(--gt-h3-weight);
  font-size: 28px;
  line-height: 40px;
}

/* H3 Serif */
.iaf-txt-h3-serif {
  font-family: var(--font-martina);
  font-weight: var(--mp-h3-weight);
  font-size: 28px;
  line-height: 40px;
  letter-spacing: var(--mp-h3-ls);
}

/* H3 Serif Upper */
.iaf-txt-h3-serif-upper {
  font-family: var(--font-martina);
  font-weight: var(--mp-h3-weight);
  font-size: 28px;
  line-height: 40px;
  text-transform: uppercase;
  letter-spacing: var(--mp-h3-upper-ls);
}

/* H3 Bold */
.iaf-txt-h3-bold {
  font-family: var(--font-gt-america);
  font-weight: var(--gt-h3-bold-weight);
  font-size: 28px;
  line-height: 40px;
}

/* H4 Serif — 23 / 32 */
.iaf-txt-h4-serif {
  font-family: var(--font-martina);
  font-weight: var(--mp-h4-weight);
  font-size: var(--mp-h4-size);
  line-height: var(--mp-h4-lh);
  letter-spacing: var(--mp-h4-ls);
}

/* H4 Serif Upper — 23 / 32 (same as H4; uppercase + tracking) */
.iaf-txt-h4-serif-upper {
  font-family: var(--font-martina);
  font-weight: var(--mp-h4-weight);
  font-size: var(--mp-h4-size);
  line-height: var(--mp-h4-lh);
  text-transform: uppercase;
  letter-spacing: var(--mp-h4-upper-ls);
}

/* P Reg — 19 / 28 (default body) */
.iaf-txt-p {
  font-family: var(--font-gt-america);
  font-weight: var(--gt-copy-weight);
  font-size: 19px;
  line-height: 28px;
}

.iaf-txt-p-serif {
  font-family: var(--font-martina);
  font-weight: var(--mp-copy-weight);
  font-size: 19px;
  line-height: 28px;
  letter-spacing: var(--mp-copy-ls);
}

/* P Serif Upper — 16 / 23 (matches P Bold Upper step-down from P Reg) */
.iaf-txt-p-serif-upper {
  font-family: var(--font-martina);
  font-weight: var(--mp-copy-weight);
  font-size: var(--gt-copy-upper-size);
  line-height: var(--gt-copy-upper-lh);
  text-transform: uppercase;
  letter-spacing: var(--mp-copy-upper-ls);
}

.iaf-txt-p-bold {
  font-family: var(--font-gt-america);
  font-weight: var(--gt-copy-bold-weight);
  font-size: 19px;
  line-height: 28px;
}

.iaf-txt-p-bold-upper {
  font-family: var(--font-gt-america);
  font-weight: var(--gt-copy-upper-weight);
  font-size: var(--gt-copy-upper-size);
  line-height: var(--gt-copy-upper-lh);
  text-transform: uppercase;
  letter-spacing: var(--gt-copy-upper-ls);
}

.iaf-txt-p-light {
  font-family: var(--font-gt-america);
  font-weight: var(--gt-h3-weight);
  font-size: 19px;
  line-height: 28px;
}

/* BU — 16 / 20–23 */
.iaf-txt-bu {
  font-family: var(--font-gt-america);
  font-weight: var(--gt-caption-weight);
  font-size: 16px;
  line-height: 23px;
  letter-spacing: var(--gt-caption-ls);
}

.iaf-txt-bu-serif {
  font-family: var(--font-martina);
  font-weight: var(--mp-caption-weight);
  font-size: var(--mp-caption-size);
  line-height: var(--mp-caption-lh);
  letter-spacing: var(--mp-caption-ls);
}

.iaf-txt-bu ul,
.iaf-txt-bu ol {
  margin: 0;
  padding-left: 1.25em;
}

/* ============================================
   Mobile (≤1023px) — presets follow --iaf-m-* roles
   ============================================ */

@media (max-width: 1023px) {
  .iaf-txt-h1 {
    font-size: var(--iaf-m-hero);
    line-height: var(--iaf-m-hero-lh);
  }

  .iaf-txt-h2,
  .iaf-txt-h2-serif {
    font-size: var(--iaf-m-display);
    line-height: var(--iaf-m-display-lh);
  }

  .iaf-txt-h3,
  .iaf-txt-h3-serif,
  .iaf-txt-h3-serif-upper {
    font-size: var(--iaf-m-h3);
    line-height: var(--iaf-m-h3-lh);
  }

  .iaf-txt-h3-bold {
    font-size: var(--iaf-m-section);
    line-height: var(--iaf-m-section-lh);
  }

  .iaf-txt-h4-serif,
  .iaf-txt-h4-serif-upper {
    font-size: var(--iaf-m-h3);
    line-height: var(--iaf-m-h3-lh);
  }

  .iaf-txt-p-light {
    font-size: var(--iaf-m-body);
    line-height: var(--iaf-m-body-lh);
  }

  .iaf-txt-p,
  .iaf-txt-p-serif {
    font-size: var(--iaf-m-body);
    line-height: var(--iaf-m-body-lh);
  }

  .iaf-txt-p-bold,
  .iaf-txt-p-bold-upper {
    font-size: var(--iaf-m-item);
    line-height: var(--iaf-m-item-lh);
  }

  .iaf-txt-p-serif-upper {
    font-size: var(--iaf-m-meta);
    line-height: var(--iaf-m-meta-lh);
  }

  .iaf-txt-bu {
    font-size: var(--iaf-m-eyebrow);
    line-height: var(--iaf-m-eyebrow-lh);
  }

  .iaf-txt-bu-serif {
    font-size: var(--iaf-m-eyebrow);
    line-height: var(--iaf-m-eyebrow-lh);
  }
}
