:root {
  --sans: "Manrope", "Segoe UI", Arial, sans-serif;
  --serif: "Manrope", "Segoe UI", Arial, sans-serif;
  --editorial: "Source Serif 4", Georgia, "Times New Roman", serif;
  --type-display: clamp(3rem, 5.6vw, 5.5rem);
  --type-title: clamp(2.15rem, 3.6vw, 3.55rem);
  --type-subtitle: clamp(1.35rem, 1.8vw, 1.75rem);
  --type-lead: clamp(1.05rem, 1.35vw, 1.18rem);
  --type-body: 1rem;
  --type-small: 0.9rem;
  --type-label: 0.72rem;
  --leading-display: 1.02;
  --leading-title: 1.1;
  --leading-copy: 1.65;
}

html {
  font-family: var(--sans);
  font-size: 100%;
  font-optical-sizing: auto;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

body,
button,
input,
select,
textarea {
  font-family: var(--sans);
}

body {
  font-size: var(--type-body);
  font-weight: 400;
  line-height: var(--leading-copy);
}

h1,
h2,
h3,
h4,
h5,
h6,
legend,
summary {
  font-family: var(--sans);
  text-wrap: balance;
}

.home-hero h1,
.plain-hero h1,
.blog-hero h1,
.article-header h1,
.legal h1 {
  margin-top: 0.75rem;
  font-size: var(--type-display);
  font-weight: 650;
  line-height: var(--leading-display);
  letter-spacing: -0.045em;
}

.home-hero h1 em,
.plain-hero h1 em,
.blog-hero h1 em,
.section h2 em,
.form-section h2 em {
  font-family: inherit;
  font-style: normal;
  font-weight: inherit;
}

.section h2,
.home-page .section h2,
.form-section h2,
.process-heading h2,
.home-page .process-heading h2,
.closing h2,
.home-page .closing h2,
.blog-empty h2,
.article-body h2,
.article-cta h2 {
  font-size: var(--type-title);
  font-weight: 600;
  line-height: var(--leading-title);
  letter-spacing: -0.035em;
}

.steps h3,
.process-section .steps h3,
.article-body h3 {
  font-size: var(--type-subtitle);
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -0.02em;
}

.home-hero__content > p:not(.eyebrow),
.plain-hero > p:not(.eyebrow),
.blog-hero > p:last-child,
.article-lead {
  font-size: var(--type-lead);
  font-weight: 400;
  line-height: 1.65;
}

p,
.steps p,
.process-section .steps p,
.faq-list p,
.blog-card__body > p:not(.eyebrow),
.site-footer {
  font-size: var(--type-body);
  font-weight: 400;
  line-height: var(--leading-copy);
}

.intro > div:last-child,
.intro blockquote,
.founder p,
.article-body,
.article-lead,
.legal > p,
.legal li {
  font-family: var(--editorial);
  font-weight: 400;
}

.intro > div:last-child,
.founder p,
.article-body {
  font-size: clamp(1.05rem, 1.25vw, 1.16rem);
  line-height: 1.78;
}

.eyebrow,
.site-header nav a,
.header-cta,
.menu-toggle,
.actions a,
.text-link,
.button,
.plain-hero > .button,
label,
.article-meta {
  font-family: var(--sans);
  font-size: var(--type-label);
  font-weight: 600;
  line-height: 1.25;
  letter-spacing: 0.115em;
}

.button,
.actions a,
.text-link,
.site-header nav a,
.header-cta {
  text-wrap: nowrap;
}

input,
select,
textarea {
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5;
}

legend {
  font-size: clamp(1.35rem, 1.8vw, 1.65rem);
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: -0.02em;
}

.blog-card h2 {
  font-size: clamp(1.55rem, 2.15vw, 2.25rem);
  font-weight: 600;
  line-height: 1.18;
  letter-spacing: -0.025em;
}

.faq-list summary {
  font-size: var(--type-subtitle);
  font-weight: 600;
  line-height: 1.35;
  letter-spacing: -0.02em;
}

.intro blockquote {
  font-size: clamp(1.35rem, 1.8vw, 1.7rem);
  line-height: 1.5;
}

.article-body {
  line-height: 1.82;
}

@media (max-width: 850px) {
  :root {
    --type-display: clamp(2.55rem, 11vw, 4rem);
    --type-title: clamp(2rem, 8.7vw, 3.05rem);
    --type-subtitle: clamp(1.3rem, 5.5vw, 1.65rem);
    --type-lead: 1.03rem;
    --type-body: 1rem;
  }

  .home-hero h1,
  .plain-hero h1,
  .blog-hero h1,
  .article-header h1,
  .legal h1 {
    letter-spacing: -0.035em;
  }

  .site-header nav a,
  .menu-toggle,
  .header-cta,
  .button,
  .actions a,
  .text-link {
    font-size: 0.7rem;
  }

  .actions a {
    min-width: 0;
    white-space: normal;
    text-wrap: wrap;
  }
}

@media (max-width: 390px) {
  :root {
    --type-display: clamp(2.35rem, 11.5vw, 3.25rem);
    --type-title: clamp(1.85rem, 8.4vw, 2.65rem);
  }

  .home-hero h1,
  .plain-hero h1,
  .blog-hero h1,
  .article-header h1,
  .legal h1 {
    letter-spacing: -0.03em;
  }
}
