/*
 * Softer desktop typography for the Growth template.
 * This file is intentionally loaded last so it can normalize the older
 * showcase, page and carousel layers without duplicating their layouts.
 */

:root {
  --growth-font-sans: "Inter Variable", -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif;
  --growth-display-font: var(--growth-font-sans);
}

body.geo-site {
  font-family: var(--growth-font-sans);
  font-weight: 400;
  font-synthesis: none;
  letter-spacing: 0;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.brand,
.site-nav a,
.hero-primary-link,
.hero-text-link,
.primary-btn,
.outline-link,
.card-link,
.site-consult-float {
  font-weight: 600;
}

.growth-hero-carousel .hero-copy .hero-title,
.growth-hero-carousel.has-hero-image .hero-copy .hero-title {
  max-width: 700px;
  font-family: var(--growth-display-font);
  font-size: clamp(46px, 4.15vw, 64px) !important;
  font-weight: 700 !important;
  line-height: 1.17 !important;
  letter-spacing: 0 !important;
  color: color-mix(in srgb, var(--hero-text-color) 86%, white) !important;
  text-shadow: 0 2px 12px rgba(15, 23, 42, .08) !important;
  text-wrap: balance;
}

.growth-hero-carousel .hero-slide {
  --hero-text-color: #304762;
}

.growth-hero-carousel .hero-text {
  max-width: 680px;
  color: color-mix(in srgb, var(--hero-text-color) 58%, white) !important;
  font-size: 15px !important;
  line-height: 1.92 !important;
  text-shadow: none !important;
}

.growth-hero-carousel .hero-text-link,
.growth-hero-carousel .hero-text-link span {
  color: color-mix(in srgb, var(--hero-text-color) 64%, white) !important;
  font-weight: 500;
  text-shadow: none !important;
}

.growth-hero-carousel .hero-promises span {
  color: color-mix(in srgb, var(--hero-text-color) 62%, white) !important;
  font-weight: 500;
  text-shadow: none !important;
}

.growth-hero-carousel .hero-promises span::before {
  background: color-mix(in srgb, var(--hero-text-color) 54%, white) !important;
}

.page-hero h1,
.page-hero-content h1,
.detail h1 {
  font-size: clamp(38px, 3vw, 52px);
  font-family: var(--growth-display-font);
  font-weight: 600;
  line-height: 1.22;
  letter-spacing: -.018em;
}

.product-hero h1 {
  max-width: 720px;
  font-family: var(--growth-display-font);
  font-size: clamp(30px, 2vw, 40px);
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: -.018em;
}

.section-heading h2,
.about-copy h2,
.contact-band h2,
.service-section-heading h2,
.process-heading h2,
.news-heading h2 {
  font-size: clamp(32px, 2.3vw, 40px);
  font-family: var(--growth-display-font);
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: -.018em;
}

.service-showcase-copy h2,
.case-story-copy h2 {
  font-size: clamp(29px, 2vw, 36px);
  font-family: var(--growth-display-font);
  font-weight: 600;
  line-height: 1.32;
  letter-spacing: -.018em;
}

.service-card h3,
.service-catalog-grid .service-card h3,
.process-copy h3,
.solution-copy h3,
.archive-card h2,
.case-card-copy h2,
.news-card h3,
.faq-item summary strong {
  font-weight: 600;
  letter-spacing: -.01em;
}

.process-copy h3 {
  font-size: 25px;
  line-height: 1.42;
}

.service-card h3,
.service-catalog-grid .service-card h3 {
  font-size: 20px;
  line-height: 1.48;
}

.hero-text,
.page-hero p:not(.section-kicker):not(.eyebrow),
.service-showcase-copy > p:not(.section-kicker),
.process-copy p {
  font-weight: 400;
  letter-spacing: 0;
}
