/* Responsive type + spacing scale (loaded last on every page).
   Desktop: H1 hero 64 / page title 52 / H2 44.  Tablet (<=1024): 52 / 44 / 38.  Mobile (<=700): 38 / 36 / 30.
   Sections keep 60px top/bottom padding on tablet and mobile (was 80-120). */
:root { --text-h1: 52px; --text-h1--line-height: 60px; --text-h2: 44px; --text-h2--line-height: 52px; --text-h3: 28px; --text-h3--line-height: 34px; }

/* desktop */
html body main h2:not(.sr-only):not(.q-article h2):not(.q-article-body h2):not(.sys-article-layout .q-prose h2):not(.ind-d-cta h2):not(.ra-need h2):not(.ct-box h2):not(.st-panel h2):not(.pv-card h2):not(.demo-modal h2):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz) { font-size: 44px !important; line-height: 52px !important; letter-spacing: -1px !important; }
html body main .sys-hero h1:not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz),
html body main .q-page-hero h1:not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz),
html body main .q-hero h1:not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz),
html body main .q-home-hero h1:not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz),
html body main .wd-title h1:not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz) { font-size: 52px !important; line-height: 60px !important; letter-spacing: -1px !important; }
html body main .f-art-hero:not(.f-art-hero--short) h1:not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz),
html body main .f-about-hero h1:not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz),
html body main .os-banner h1:not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz),
html body main .tp-hero h1:not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz),
html body main .ai-hero h1:not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz),
html body main .sp-hero h1:not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz),
html body main .sol-hero h1:not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz),
html body main .ra-hero h1:not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz),
html body main .ct-hero h1:not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz),
html body main .pv-hero h1:not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz),
html body main .f-consulting-hero h1:not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz) { font-size: 64px !important; line-height: 72px !important; letter-spacing: -1.5px !important; }

@media (max-width: 1024px) {
  :root { --text-h1: 44px; --text-h1--line-height: 52px; --text-h2: 38px; --text-h2--line-height: 44px; --text-h3: 26px; --text-h3--line-height: 32px; }
  html body main h2:not(.sr-only):not(.q-article h2):not(.q-article-body h2):not(.sys-article-layout .q-prose h2):not(.ind-d-cta h2):not(.ra-need h2):not(.ct-box h2):not(.st-panel h2):not(.pv-card h2):not(.demo-modal h2):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz) { font-size: 38px !important; line-height: 44px !important; }
  html body main .sys-hero h1:not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz),
html body main .q-page-hero h1:not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz),
html body main .q-hero h1:not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz),
html body main .q-home-hero h1:not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz),
html body main .wd-title h1:not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz) { font-size: 44px !important; line-height: 52px !important; }
  html body main .f-art-hero:not(.f-art-hero--short) h1:not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz),
html body main .f-about-hero h1:not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz),
html body main .os-banner h1:not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz),
html body main .tp-hero h1:not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz),
html body main .ai-hero h1:not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz),
html body main .sp-hero h1:not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz),
html body main .sol-hero h1:not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz),
html body main .ra-hero h1:not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz),
html body main .ct-hero h1:not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz),
html body main .pv-hero h1:not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz),
html body main .f-consulting-hero h1:not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz) { font-size: 52px !important; line-height: 60px !important; letter-spacing: -1px !important; }
}
@media (max-width: 900px) {
  html body main > section:not(.q-page-hero):not(.sys-hero):not(.f-art-hero):not(.f-about-hero):not(.f-consulting-hero):not(.ai-hero):not(.sp-hero):not(.sol-hero):not(.ra-hero):not(.tp-hero):not(.os-banner):not(.ct-hero):not(.pv-hero):not(.q-hero):not(.wd-hero):not(.os-hero):not(.ai-marquee):not([data-hero]):not([data-section-hero]):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz), html body main > div > section:not(.q-page-hero):not(.sys-hero):not(.f-art-hero):not(.f-about-hero):not(.f-consulting-hero):not(.ai-hero):not(.sp-hero):not(.sol-hero):not(.ra-hero):not(.tp-hero):not(.os-banner):not(.ct-hero):not(.pv-hero):not(.q-hero):not(.wd-hero):not(.os-hero):not(.ai-marquee):not([data-hero]):not([data-section-hero]):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz) { padding-top: 60px !important; padding-bottom: 60px !important; }
  /* A plain listing section (blog grid, projects grid, etc.) directly after a compact page-hero
     (title + a filter dropdown, no big heading/paragraph) leaves a very tall gap on phones -
     hero bottom padding plus this section's own top padding. Trim just that first section's
     top padding; untouched when a hero is followed by anything else. */
  html body main > .q-page-hero + section:not(.sys-hero):not(.f-art-hero):not(.f-about-hero):not(.f-consulting-hero):not(.ai-hero):not(.sp-hero):not(.sol-hero):not(.ra-hero):not(.tp-hero):not(.os-banner):not(.ct-hero):not(.pv-hero):not(.q-hero):not(.wd-hero):not(.os-hero):not(.ai-marquee):not([data-hero]):not([data-section-hero]):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz), html body main > div > .q-page-hero + section:not(.sys-hero):not(.f-art-hero):not(.f-about-hero):not(.f-consulting-hero):not(.ai-hero):not(.sp-hero):not(.sol-hero):not(.ra-hero):not(.tp-hero):not(.os-banner):not(.ct-hero):not(.pv-hero):not(.q-hero):not(.wd-hero):not(.os-hero):not(.ai-marquee):not([data-hero]):not([data-section-hero]):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz) { padding-top: 28px !important; }
  html body main .wd-more:not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz) { margin-top: 60px !important; padding: 60px 0 !important; }
  html body main .post-related:not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz) { padding: 60px 0 !important; }
}
@media (max-width: 700px) {
  :root { --text-h1: 38px; --text-h1--line-height: 44px; --text-h2: 30px; --text-h2--line-height: 36px; --text-h3: 22px; --text-h3--line-height: 28px; }
  html body main h2:not(.sr-only):not(.q-article h2):not(.q-article-body h2):not(.sys-article-layout .q-prose h2):not(.ind-d-cta h2):not(.ra-need h2):not(.ct-box h2):not(.st-panel h2):not(.pv-card h2):not(.demo-modal h2):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz) { font-size: 30px !important; line-height: 36px !important; letter-spacing: -.5px !important; }
  html body main .sys-hero h1:not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz),
html body main .q-page-hero h1:not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz),
html body main .q-hero h1:not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz),
html body main .q-home-hero h1:not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz),
html body main .wd-title h1:not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz) { font-size: 36px !important; line-height: 42px !important; letter-spacing: -.6px !important; }
  html body main .f-art-hero:not(.f-art-hero--short) h1:not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz),
html body main .f-about-hero h1:not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz),
html body main .os-banner h1:not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz),
html body main .tp-hero h1:not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz),
html body main .ai-hero h1:not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz),
html body main .sp-hero h1:not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz),
html body main .sol-hero h1:not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz),
html body main .ra-hero h1:not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz),
html body main .ct-hero h1:not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz),
html body main .pv-hero h1:not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz),
html body main .f-consulting-hero h1:not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz) { font-size: 38px !important; line-height: 44px !important; letter-spacing: -.8px !important; }
}

/* remaining large headings: form title, Resource Augmentation row/how headings, home hero on phones */
html body main .ct-box h2:not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz), html body .demo-modal .ct-box h2:not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz) { font-size: 36px !important; line-height: 42px !important; }
html body main .ra-row-copy h3:not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz) { font-size: 32px !important; line-height: 38px !important; }
html body main .ra-how-copy h3:not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz) { font-size: 28px !important; line-height: 34px !important; }
@media (max-width: 700px) {
  html body main .ct-box h2:not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz), html body .demo-modal .ct-box h2:not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz) { font-size: 28px !important; line-height: 34px !important; }
  html body main .ra-row-copy h3:not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz) { font-size: 26px !important; line-height: 32px !important; }
  html body main .ra-how-copy h3:not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz) { font-size: 24px !important; line-height: 30px !important; }
  html body main .st-panel h2:not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz) { font-size: 28px !important; line-height: 34px !important; }
  html body main .js-hero-heading:not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz):not(.zz) { font-size: 38px !important; line-height: 44px !important; }
}
