/* Shared type treatment. Local fonts keep copy visible without a font download. */
:root {
  --font-text: "PingFang SC", -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Microsoft YaHei UI", "Microsoft YaHei", sans-serif;
  --font-display: "PingFang SC", "Helvetica Neue", -apple-system, BlinkMacSystemFont, "Microsoft YaHei UI", "Microsoft YaHei", sans-serif;
  font-family: var(--font-text);
  font-synthesis: none;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body { font-weight: 400; line-height: 1.6; }
button, input, select, textarea { font-family: var(--font-text); }
.search-dialog input { font-family: var(--font-text); letter-spacing: 0; }

.hero h1,
.statement p,
.highlight-caption h2,
.service-name,
.scenarios-heading h2,
.footer-cta,
.newsroom-intro h1,
.newsroom-section-heading h2 {
  font-family: var(--font-display);
  font-weight: 300;
}

.hero h1 { font-size: 76px; line-height: 1.26; letter-spacing: -.025em; }
.statement p { line-height: 1.48; letter-spacing: -.018em; }
.highlight-caption p { line-height: 1.5; letter-spacing: .025em; }
.highlight-caption h2 { line-height: 1.48; letter-spacing: -.02em; }
.services h2 { font-weight: 300; line-height: 1.35; letter-spacing: -.02em; }
.service-name { line-height: 1.16; letter-spacing: -.025em; }
.service-lead { line-height: 1.55; letter-spacing: .005em; }
.scenarios-heading h2 { line-height: 1.3; letter-spacing: -.02em; }
.scene-card h3 { line-height: 1.5; letter-spacing: 0; }
.scene-card-body { font-size: 17px; line-height: 26px; }
.footer-cta { line-height: 1.35; letter-spacing: -.025em; }
.footer-invitation { line-height: 1.7; letter-spacing: .015em; }
.footer-group-content { line-height: 1.65; }
.header-cta, .menu-contact { letter-spacing: .025em; }

.menu-dialog .menu-primary nav > a {
  font-family: var(--font-display);
  font-weight: 300;
  line-height: 1.4;
  letter-spacing: -.015em;
}
.menu-offerings > p { line-height: 1.65; }
.menu-news .news-title, .menu-news .news-summary { line-height: 1.6; }
.menu-quick > div { line-height: 1.6; }

.newsroom-intro h1 { line-height: 1.1; letter-spacing: -.035em; }
.newsroom-section-heading h2 { line-height: 1.35; letter-spacing: -.015em; }
.newsroom-list .news-title { line-height: 1.5; letter-spacing: -.015em; }
.newsroom-list .news-summary { line-height: 1.75; }

@media (min-width: 1500px) {
  .service-name { font-size: 160px; }
}
@media (max-width: 1499px) {
  .services h2 { font-weight: 400; letter-spacing: 0; }
  .service-name { font-size: 76px; }
}
@media (max-width: 1100px) {
  .hero h1 { font-size: 64px; }
}
@media (max-width: 700px) {
  .hero h1 { font-size: clamp(32px, 9.6vw, 50px); line-height: 1.4; letter-spacing: -.025em; }
  .statement p { line-height: 1.65; letter-spacing: -.01em; }
  .highlight-caption p { letter-spacing: .01em; }
  .highlight-caption h2 { line-height: 1.55; letter-spacing: -.02em; }
  .footer-cta { letter-spacing: -.025em; }
}
@media (max-width: 559px) {
  .service-name { font-size: clamp(50px, 16vw, 64px); letter-spacing: -.025em; }
  .service-lead { font-size: 17px; line-height: 1.6; }
}
