:root {
  --public-type-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --public-type-display: clamp(3.4rem, 6vw, 5.7rem);
  --public-type-display-compact: clamp(2.35rem, 4vw, 4rem);
  --public-type-display-card: clamp(3rem, 5.2vw, 5.1rem);
  --public-type-section: clamp(2.3rem, 4vw, 4.2rem);
  --public-type-section-feature: clamp(2.4rem, 4vw, 4.5rem);
  --public-type-section-compact: clamp(1.8rem, 3vw, 2.8rem);
  --public-type-card-title: clamp(1.45rem, 2vw, 2rem);
  --public-type-lead: clamp(1.15rem, 1.8vw, 1.5rem);
  --public-type-body-large: 1.08rem;
  --public-type-body: 1rem;
  --public-type-eyebrow: 0.95rem;
}

:where(body.public-canvas, body) {
  font-family: var(--public-type-family);
  line-height: 1.1;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

:where(body.public-canvas, body) .brand {
  font-size: 1.68rem;
  font-weight: 700;
  letter-spacing: -0.04em;
}

:where(body.public-canvas, body) .nav-links {
  font-size: 1.02rem;
  font-weight: 600;
}

:where(body.public-canvas, body) .nav-menu a {
  font-size: 0.96rem;
  font-weight: 600;
}

:where(body.public-canvas, body) .mobile-nav-head > a,
:where(body.public-canvas, body) .mobile-submenu a {
  font-size: 0.95rem;
  font-weight: 600;
  line-height: 1.35;
}

:where(body.public-canvas, body) .eyebrow {
  font-size: var(--public-type-eyebrow);
  font-weight: 700;
  line-height: 1.15;
}

:where(body.public-canvas, body) h1 {
  font-size: var(--public-type-display);
  letter-spacing: -0.05em;
  line-height: 0.96;
}

:where(body.public-canvas, body) .section-header.compact-head h1 {
  font-size: var(--public-type-display-compact);
  letter-spacing: -0.06em;
  line-height: 1;
}

:where(body.public-canvas, body) .hero-title {
  font-size: var(--public-type-display-card);
  letter-spacing: -0.06em;
  line-height: 0.95;
}

:where(body.public-canvas, body) .section-header h2,
:where(body.public-canvas, body) .note-shell h2,
:where(body.public-canvas, body) .consulting-live-copy h2 {
  font-size: var(--public-type-section);
  letter-spacing: -0.055em;
  line-height: 1.02;
}

:where(body.public-canvas, body) .faq-copy h2 {
  font-size: var(--public-type-section-feature);
  letter-spacing: -0.06em;
  line-height: 1.02;
}

:where(body.public-canvas, body) .faq-shell h2,
:where(body.public-canvas, body) .form-card h2,
:where(body.public-canvas, body) .newsletter-row h2,
:where(body.public-canvas, body) .footer-copy h2 {
  font-size: var(--public-type-section-compact);
  letter-spacing: -0.05em;
  line-height: 1.02;
}

:where(body.public-canvas, body) .contact-card h2,
:where(body.public-canvas, body) .legal-card h2,
:where(body.public-canvas, body) .trust-card h3,
:where(body.public-canvas, body) .time-compare-head h3,
:where(body.public-canvas, body) .time-savings-copy h3 {
  font-size: var(--public-type-card-title);
  letter-spacing: -0.04em;
  line-height: 1.08;
}

:where(body.public-canvas, body) .lead,
:where(body.public-canvas, body) .hero-lead,
:where(body.public-canvas, body) .contact-hero p,
:where(body.public-canvas, body) .legal-hero p,
:where(body.public-canvas, body) .section-header p,
:where(body.public-canvas, body) .section-header.compact-head p,
:where(body.public-canvas, body) .faq-copy p {
  font-size: var(--public-type-lead);
  line-height: 1.4;
}

:where(body.public-canvas, body) .form-card > p,
:where(body.public-canvas, body) .success-card p,
:where(body.public-canvas, body) .faq-shell p,
:where(body.public-canvas, body) .faq-answer p,
:where(body.public-canvas, body) .consulting-live-copy p,
:where(body.public-canvas, body) .hero-facts p,
:where(body.public-canvas, body) .time-savings-copy p,
:where(body.public-canvas, body) .note-shell p,
:where(body.public-canvas, body) .footer-copy p {
  font-size: var(--public-type-body-large);
  line-height: 1.55;
}

:where(body.public-canvas, body) .hero-point p,
:where(body.public-canvas, body) .detail-item p,
:where(body.public-canvas, body) .detail-card p,
:where(body.public-canvas, body) .trust-card p,
:where(body.public-canvas, body) .time-compare-head p,
:where(body.public-canvas, body) .pricing-facts p,
:where(body.public-canvas, body) .billing-step p,
:where(body.public-canvas, body) .audience-side-block p,
:where(body.public-canvas, body) .control-card p,
:where(body.public-canvas, body) .contact-card p,
:where(body.public-canvas, body) .contact-card li,
:where(body.public-canvas, body) .legal-card p,
:where(body.public-canvas, body) .legal-card li {
  font-size: var(--public-type-body);
  line-height: 1.55;
}

@media (max-width: 820px) {
  :where(body.public-canvas, body) h1,
  :where(body.public-canvas, body) .hero-title {
    max-width: 100%;
    overflow-wrap: anywhere;
    hyphens: auto;
  }

  :where(body.public-canvas, body) .lead,
  :where(body.public-canvas, body) .hero-lead,
  :where(body.public-canvas, body) .contact-hero p,
  :where(body.public-canvas, body) .legal-hero p,
  :where(body.public-canvas, body) .section-header p,
  :where(body.public-canvas, body) .section-header.compact-head p,
  :where(body.public-canvas, body) .faq-copy p {
    font-size: 1.1rem;
  }
}

@media (max-width: 360px) {
  :where(body.public-canvas, body) {
    --public-type-display: 2.75rem;
    --public-type-display-card: 2.55rem;
    --public-type-section: 2.05rem;
    --public-type-section-feature: 2.1rem;
  }

  :where(body.public-canvas, body) h1,
  :where(body.public-canvas, body) .hero-title {
    line-height: 1;
    letter-spacing: -0.04em;
  }
}
