:root {
  --type-display-size: var(--theme-h1, clamp(3.1rem, 3.6vw, 4rem));
  --type-section-title-size: var(--theme-h2, clamp(2.45rem, 3vw, 3.5rem));
  --type-card-title-size: var(--theme-h3, clamp(1.65rem, 2vw, 2.1rem));
  --type-display-leading: 1.04;
  --type-display-tracking: -0.045em;
  --type-display-weight: 410;

  --type-body-size: var(--theme-body, 1.0625rem);
  --type-body-leading: 1.62;
  --type-lead-size: 17px;
  --type-lead-leading: 1.62;
  --type-lead-weight: 390;

  --type-kicker-size: 12px;
  --type-kicker-leading: 1.4;
  --type-kicker-tracking: 0.13em;
  --type-kicker-weight: 680;

  --type-label-size: 13px;
  --type-meta-size: 12px;
  --type-control-size: 15px;
  --type-navigation-size: 15px;
  --type-card-label-size: 16px;
  --type-card-meta-size: 13px;
}

body.itmsft-theme {
  font-family: Inter, "SF Pro Text", "Segoe UI Variable Text", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: var(--type-body-size);
  line-height: var(--type-body-leading);
  font-kerning: normal;
  text-rendering: optimizeLegibility;
}

/* One restrained display style for all first-level and section headings. */
.hero-rays-screen .hero-slide h1,
.content-screen .wa-page h1,
.direction-screen.direction-screen--development .direction-copy h2,
.direction-screen.direction-screen--cloud .direction-copy h2,
.direction-screen.direction-screen--marketing .direction-copy h2,
.combined-silk-screen .combined-silk-pane h2,
.blog-stream-screen .blog-stream-heading h2,
.finale-shell .finale-about h2,
.finale-shell .finale-contacts h2,
.content-screen .wa-page h2 {
  font-family: Inter, "SF Pro Display", "Segoe UI Variable Display", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-weight: var(--type-display-weight);
  line-height: var(--type-display-leading);
  letter-spacing: var(--type-display-tracking);
}

.hero-rays-screen .hero-slide h1,
.content-screen .wa-page h1 {
  font-size: var(--type-display-size);
}

.direction-screen.direction-screen--development .direction-copy h2,
.direction-screen.direction-screen--cloud .direction-copy h2,
.direction-screen.direction-screen--marketing .direction-copy h2,
.combined-silk-screen .combined-silk-pane h2,
.blog-stream-screen .blog-stream-heading h2,
.finale-shell .finale-about h2,
.finale-shell .finale-contacts h2,
.content-screen .wa-page h2 {
  font-size: var(--type-section-title-size);
}

.blog-stream-screen .blog-card__body h3,
.content-screen .wa-page h3 {
  font-family: Inter, "SF Pro Display", "Segoe UI Variable Display", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: var(--type-card-title-size);
  font-weight: 440;
  line-height: 1.14;
  letter-spacing: -0.035em;
}

/* Introductory text directly below headings. */
.hero-rays-screen .hero-slide__lead,
.direction-screen .direction-copy .section-lead,
.combined-silk-screen .combined-silk-lead,
.blog-stream-screen .blog-stream-intro > p,
.finale-shell .finale-lead,
.finale-shell .finale-contacts__heading > p:last-child {
  font-size: var(--type-lead-size);
  font-weight: var(--type-lead-weight);
  line-height: var(--type-lead-leading);
}

/* A single readable scale for section labels. */
.hero-rays-screen .hero-slider__meta,
.hero-rays-screen .hero-slide__kicker,
.direction-screen .direction-kicker,
.combined-silk-screen .combined-silk-kicker,
.blog-stream-screen .blog-stream-kicker,
.finale-shell .finale-kicker,
.content-screen .content-kicker {
  font-size: var(--type-kicker-size);
  font-weight: var(--type-kicker-weight);
  line-height: var(--type-kicker-leading);
  letter-spacing: var(--type-kicker-tracking);
}

/* Body copy remains comfortable instead of collapsing to 10–12 px. */
.blog-stream-screen .blog-card__body > p,
.finale-shell .finale-partners__heading > p:last-child,
.finale-shell .finale-contact-row span,
.content-screen .wa-page p,
.content-screen .wa-page li,
.content-screen .wa-page .wa-form {
  font-size: var(--type-body-size);
  line-height: var(--type-body-leading);
}

.direction-screen .capability-list li,
.combined-silk-screen .combined-silk-capabilities li,
.direction-screen .direction-proof,
.combined-silk-screen .combined-silk-proof,
.blog-stream-screen .blog-card__topline,
.blog-stream-screen .blog-card__footer,
.finale-shell .finale-facts p,
.finale-shell .finale-contact-row small {
  font-size: var(--type-label-size);
  line-height: 1.5;
}

.hero-rays-screen .hero-directions a strong {
  font-size: var(--type-card-label-size);
  line-height: 1.25;
}

.hero-rays-screen .hero-directions a small {
  font-size: var(--type-card-meta-size);
  line-height: 1.35;
}

.site-header .desktop-nav a,
.site-header .mobile-menu nav > a {
  font-size: var(--type-navigation-size);
  line-height: 1.35;
}

.site-header .desktop-nav .nav-submenu a {
  font-size: 14px;
  line-height: 1.3;
}

.site-header .mobile-menu .mobile-submenu a {
  font-size: 14px;
}

.site-header .locale-switch a {
  font-size: var(--type-meta-size);
}

body.itmsft-theme .glass-button,
body.itmsft-theme .text-link,
body.itmsft-theme .blog-stream-all,
body.itmsft-theme .blog-card__footer a {
  font-size: var(--type-control-size);
  line-height: 1.3;
}

.hero-rays-screen .hero-stage__footer,
.blog-stream-screen .blog-slider__progress,
.finale-shell .finale-contact-row small,
.content-screen .breadcrumbs {
  font-size: var(--type-meta-size);
}

.finale-shell .partner-logo span {
  font-size: 14px;
}

.finale-shell .finale-footer .footer-links strong {
  font-size: 12px;
  line-height: 1.4;
}

.finale-shell .finale-footer .footer-links a {
  font-size: var(--footer-link-size, 14px);
  line-height: 1.5;
}

.finale-shell .finale-footer .footer-brand p,
.finale-shell .finale-footer .footer-rights,
.finale-shell .finale-footer .footer-back {
  font-size: var(--type-meta-size);
  line-height: 1.5;
}

@media (min-width: 1181px) {
  .direction-screen.direction-screen--development .direction-layout,
  .direction-screen.direction-screen--cloud .direction-layout,
  .direction-screen.direction-screen--marketing .direction-layout {
    grid-template-columns: minmax(0, 0.98fr) minmax(520px, 1.02fr);
    gap: clamp(44px, 5vw, 92px);
  }
}

@media (max-width: 1180px) {
  :root {
    --type-display-size: clamp(46px, 4.6vw, 54px);
    --type-section-title-size: clamp(40px, 4.1vw, 48px);
    --type-card-title-size: clamp(28px, 3vw, 32px);
    --type-lead-size: 16px;
  }
}

@media (min-width: 901px) and (max-width: 1180px) {
  .direction-screen.direction-screen--development .direction-layout,
  .direction-screen.direction-screen--cloud .direction-layout,
  .direction-screen.direction-screen--marketing .direction-layout {
    grid-template-columns: minmax(0, 0.99fr) minmax(440px, 1.01fr);
  }
}

@media (max-width: 900px) {
  :root {
    --type-display-size: clamp(40px, 6vw, 48px);
    --type-section-title-size: clamp(36px, 5.4vw, 42px);
    --type-card-title-size: clamp(26px, 4vw, 30px);
    --type-body-size: 16px;
    --type-lead-size: 16px;
    --type-label-size: 13px;
    --type-card-label-size: 15px;
    --type-card-meta-size: 12px;
  }
}

@media (max-width: 640px) {
  :root {
    --type-display-size: clamp(36px, 10vw, 40px);
    --type-section-title-size: clamp(32px, 8.7vw, 36px);
    --type-card-title-size: clamp(25px, 7vw, 29px);
    --type-display-leading: 1.08;
    --type-display-tracking: -0.038em;
    --type-body-size: 15px;
    --type-body-leading: 1.58;
    --type-lead-size: 15px;
    --type-lead-leading: 1.58;
    --type-kicker-size: 11px;
    --type-label-size: 13px;
    --type-meta-size: 11px;
    --type-control-size: 14px;
    --type-navigation-size: 16px;
  }

  .direction-screen.direction-screen--cloud .direction-copy h2 {
    max-width: 100%;
  }

  .finale-shell .finale-footer .footer-links a,
  .finale-shell .partner-logo span {
    font-size: 14px;
  }
}

@media (max-width: 380px) {
  :root {
    --type-display-size: 36px;
    --type-section-title-size: 32px;
    --type-card-title-size: 25px;
  }
}
