/* Shared website typography components. Loaded after page-family styles.
   Change a role here to update the homepage and every matching public page.
   Product demonstrations, tables, navigation and form controls keep their UI type. */
:root {
  --site-weight-regular:400;
  --site-weight-soft:450;
  --site-weight-medium:500;
  --site-weight-heading:540;
  --site-weight-strong:600;
  --type-hero-size:60px; --type-hero-leading:68px; --type-hero-tracking:-3px;
  --type-reading-title-size:48px; --type-reading-title-leading:56px; --type-reading-title-tracking:-2.4px;
  --type-section-size:36px; --type-section-leading:44px; --type-section-tracking:-1.8px;
  --type-feature-size:28px; --type-feature-leading:34px; --type-feature-tracking:-.8px;
  --type-card-size:20px; --type-card-leading:26px; --type-card-tracking:-.5px;
  --type-plan-size:22px; --type-plan-leading:28px;
  --type-body-size:16px; --type-body-leading:24px;
  --type-compact-size:14px; --type-compact-leading:22px;
  --type-label-size:14px; --type-label-leading:20px;
  --type-faq-size:16px; --type-faq-leading:24px;
  --type-button-size:13.5px; --type-button-leading:24px;
  --type-benefit-size:16px; --type-benefit-leading:24px;
}
@media(max-width:620px) {
  :root {
    --type-hero-size:48px; --type-hero-leading:56px; --type-hero-tracking:-2.4px;
    --type-reading-title-size:40px; --type-reading-title-leading:48px; --type-reading-title-tracking:-2px;
    --type-section-size:32px; --type-section-leading:40px; --type-section-tracking:-1.6px;
    --type-feature-size:24px; --type-feature-leading:28px; --type-feature-tracking:-.5px;
    --type-faq-size:14px; --type-faq-leading:22px;
    --type-button-size:13px;
    --type-benefit-size:14px; --type-benefit-leading:20px;
  }
}
@media(max-width:365px) {
  :root {
    --type-hero-size:40px; --type-hero-leading:48px; --type-hero-tracking:-2px;
    --type-reading-title-size:36px; --type-reading-title-leading:44px; --type-reading-title-tracking:-1.8px;
  }
}

/* Page titles; article titles use a reading variant for their narrower column. */
:is(.rq-site,.docs-page,.journal-page,.m-direction) :is(.rq-hero-copy h1,.rq-subhero h1,.docs-intro h1,.journal-intro h1,.m-hero h1,.f-hero h1,.bj-hero h1) {
  font-size:var(--type-hero-size); line-height:var(--type-hero-leading);
  font-weight:var(--site-weight-heading); letter-spacing:var(--type-hero-tracking);
}
:is(.rq-site,.docs-page,.journal-page) :is(.rq-product-opening h1,.docs-document-header h1,.journal-article-header h1) {
  font-size:var(--type-reading-title-size); line-height:var(--type-reading-title-leading);
  font-weight:var(--site-weight-heading); letter-spacing:var(--type-reading-title-tracking);
}

/* Section titles and closing invitations share the homepage scale. */
:is(.rq-site,.docs-page,.journal-page,.m-direction) :is(
  .rq-section-head h2,.rq-faq h2,.rq-benefits-intro h2,.rq-fit-section h2,.rq-accounting h2,
  .rq-resource-feature h2,.rq-closing-copy h2,.rzf-invitation h2,
  .docs-section-heading h2,.docs-questions h2,.docs-prose h2,
  .journal-library-heading h2,.journal-related-heading h2,.journal-prose h2,
  .m-section>h2,.m-prose h2,.p-section h2:where(:not(.p-visual h2)),.p-detail h2,.p-cta h2,
  .r-heading h2,.f-section-heading h2,.f-split h2,.f-demo-copy h2,.bf-heading h2,
  .bj-recognition h2,.bj-after h2,.bf-final h2,.res-calculator-heading h2,.res-download h2,
  .price-v2-heading h2,.booking-story h2,.m-faq>h2,.f-kit-header h1,.f-kit-header h2,
  .f-bridge h2,.f-download-row h2
) {
  font-size:var(--type-section-size); line-height:var(--type-section-leading);
  font-weight:var(--site-weight-heading); letter-spacing:var(--type-section-tracking);
}
/* Retain the homepage's compact section scale in short desktop windows. */
@media(max-height:720px) and (min-width:851px) {
  .rq-site .rq-section-head h2 { font-size:32px; line-height:40px; }
}

/* Feature titles and prose subheadings. */
:is(.rq-site,.docs-page,.journal-page,.m-direction) :is(
  .rq-feature-copy h3,.journal-feature h2,.docs-prose h3,.journal-prose h3,.m-prose h3,
  .docs-help h2,.p-feature-card h3
) {
  font-size:var(--type-feature-size); line-height:var(--type-feature-leading);
  font-weight:var(--site-weight-heading); letter-spacing:var(--type-feature-tracking);
}

/* Collection cards, supporting cards and explanatory steps. */
:is(.rq-site,.docs-page,.journal-page,.m-direction) :is(
  .rq-article h3,.rq-resource-links h3,.rq-setup-steps h3,.docs-start h2,.docs-group h3,
  .journal-card h3,.journal-empty h3,.m-card h3,.m-contact-card h3,.p-methods h3,
  .p-steps h3,.p-flow h3,.p-definition-grid h3,.p-import-scope h3,.r-choice h3,
  .r-library-card h3,.r-steps h3,.res-resource-card h3,.res-methods h3,.res-steps h3,
  .res-source-records h3,.bj-step-copy h3,.bf-onboarding h3,.bf-demo-agenda h3,
  .evaluation-next h3,.billing-records h3,.booking-calendar-heading h3,
  .booking-panel .m-form h3,.booking-success h3
) {
  font-size:var(--type-card-size); line-height:var(--type-card-leading);
  font-weight:var(--site-weight-heading); letter-spacing:var(--type-card-tracking);
}
:is(.rq-site,.m-direction) :is(.rq-pricing .rq-plan h3,.m-pricing-cards h3) {
  font-size:var(--type-plan-size); line-height:var(--type-plan-leading);
  font-weight:var(--site-weight-heading); letter-spacing:var(--type-card-tracking);
}
:is(.rq-site,.m-direction) :is(.rq-benefits h3,.rp-agenda h3) {
  font-size:var(--type-benefit-size); line-height:var(--type-benefit-leading);
  font-weight:var(--site-weight-soft); letter-spacing:-.02em;
}

/* Reading and introductory body copy. */
:is(.rq-site,.docs-page,.journal-page,.m-direction) :is(
  .rq-section-head>p,.rq-section-head>div>p,.rq-faq-intro>p,.rq-feature-copy>p,
  .rq-fit-intro p,.rq-accounting-copy p,.docs-intro>p:where(:not(.docs-pill)),.docs-questions-intro>p:where(:not(.docs-pill)),
  .docs-help p,.docs-prose,.journal-intro>p:where(:last-child),.journal-feature-excerpt,.journal-article-deck,
  .journal-prose,.journal-prose aside,.m-intro,.f-intro,.bj-hero-lead,.m-prose,
  .m-prose p,.m-prose li,.m-section>p,.p-section-head>p:where(:not(.p-kicker)),
  .p-detail>div>p:where(:not(.p-kicker)),.r-heading>p:where(:last-child):where(:not(.r-kicker)),
  .f-section-heading>p:where(:not(.f-eyebrow)),.f-split>div>p:where(:not(.f-eyebrow)),
  .f-demo-copy>p:where(:not(.f-eyebrow)),.bf-intro,.p-feature-card p
) {
  font-size:var(--type-body-size); line-height:var(--type-body-leading);
  font-weight:var(--site-weight-regular); letter-spacing:-.02em;
}
:is(.rq-site,.docs-page,.journal-page,.m-direction) :is(
  .rq-article>p,.rq-setup-steps p,.rq-fit-details dd,.docs-start-copy p,.docs-group>p,
  .journal-card-excerpt,.m-card p,.m-contact-card p,.p-methods p:where(:not(.p-kicker)),
  .p-definition-grid p,.p-steps p,.r-steps p,.r-choice>p:where(:last-child),.r-library-card>p,
  .res-card-copy>p:where(:not(.res-kicker)),.res-methods p,.res-steps p,.bj-step-copy>p
) {
  font-size:var(--type-compact-size); line-height:var(--type-compact-leading);
  font-weight:var(--site-weight-regular); letter-spacing:-.02em;
}

/* One FAQ typography component for all native details/summary implementations.
   Navigation disclosures and comparison tables are deliberately not FAQ rows. */
:is(.rq-site,.docs-page,.m-direction) :is(.rq-faq-list,.docs-faq,.m-faq,.p-faq,.f-faq,.bf-faq) summary {
  font-size:var(--type-faq-size); line-height:var(--type-faq-leading);
  font-weight:var(--site-weight-medium); letter-spacing:-.02em;
}
:is(.rq-site,.docs-page,.m-direction) :is(
  .rq-faq-list details>div>p,.docs-faq-answer,.docs-faq-answer p,
  .m-faq details>p,.p-faq details>p,.f-faq details>p,.bf-faq details>p,
  .m-faq details>.m-prose,.m-faq details>.m-prose p
) {
  font-size:var(--type-faq-size); line-height:var(--type-faq-leading);
  font-weight:var(--site-weight-regular); letter-spacing:-.02em;
}

/* Section labels and CTA text. The announcement keeps its distinct New badge. */
:is(.rq-site,.docs-page,.journal-page,.m-direction) :is(
  .rq-section-pill,.docs-pill,.journal-pill,.eyebrow,.m-kicker,.p-kicker,.r-kicker,
  .res-kicker,.f-eyebrow,.bf-eyebrow,.bj-kicker,.evaluation-label,.price-v2-eyebrow,.rzf-kicker
) {
  font-size:var(--type-label-size); line-height:var(--type-label-leading);
  font-weight:var(--site-weight-regular); letter-spacing:-.02em;
}
body:is(.rq-site,.docs-page,.journal-page,.m-direction) :is(main,.rzf-footer) :is(.button,.price-v2-button) {
  font-size:var(--type-button-size); line-height:var(--type-button-leading);
  font-weight:var(--site-weight-medium); letter-spacing:-.02em;
}
