/**
 * Site-wide typography — section titles, subheads, product copy, CTA text.
 * Main heroes (lp-hero-heading, primary .hero-heading) keep page-specific sizes.
 * Font-family is enforced by lp-montserrat.css on live pages.
 */

/* Product name emphasis in hero subheadings */
.product-name {
  font-family: Montserrat, sans-serif !important;
  font-style: normal !important;
  font-weight: 600 !important;
}

.page-landing .process-step-label,
.page-landing .process-step-slash {
  font-weight: 600 !important;
}

.page-landing .industries-panel-heading {
  font-weight: 600 !important;
}

.systems-video-carousel__caption {
  font-weight: 600 !important;
}

/* --- Section titles (landing / page sections; CTA headings excluded — see below) --- */
.section-heading:not(.benefits):not(.hs-product-block__title),
.hero-section.smaller .hero-heading {
  font-family: Montserrat, sans-serif !important;
  font-size: 32px !important;
  font-weight: 600 !important;
  line-height: 1.2 !important;
  letter-spacing: -0.02em !important;
  color: #0a1628 !important;
  -webkit-text-fill-color: #0a1628 !important;
  background: none !important;
  background-image: none !important;
  -webkit-background-clip: border-box !important;
  background-clip: border-box !important;
}

@media screen and (min-width: 1280px) {
  .section-heading:not(.benefits):not(.hs-product-block__title) {
    font-size: 38px !important;
  }
}

@media screen and (max-width: 767px) {
  .section-heading:not(.benefits):not(.hs-product-block__title) {
    font-size: 30px !important;
  }
}

/* --- Product block H2 titles — smaller than page section headings --- */
.hs-product-block__title.section-heading {
  font-family: Montserrat, sans-serif !important;
  font-size: clamp(calc(1.5rem - 4px), calc(1.05rem + 1vw - 4px), calc(2rem - 4px)) !important;
  font-weight: 600 !important;
  line-height: 1.2 !important;
  letter-spacing: -0.02em !important;
  color: #0a1628 !important;
  -webkit-text-fill-color: #0a1628 !important;
  background: none !important;
  background-image: none !important;
  -webkit-background-clip: border-box !important;
  background-clip: border-box !important;
  padding-bottom: clamp(10px, 1.4vw, 16px) !important;
}

/* --- Final CTA titles — larger than section titles --- */
.final-cta .section-heading,
.final-cta .cta-heading {
  font-family: Montserrat, sans-serif !important;
  font-size: clamp(22px, 3.2vw, 30px) !important;
  font-weight: 600 !important;
  line-height: 1.28 !important;
  letter-spacing: normal !important;
  background: none !important;
  background-image: none !important;
  -webkit-background-clip: border-box !important;
  background-clip: border-box !important;
}

.final-cta-wrapper .final-cta .section-heading,
.final-cta-wrapper .final-cta .cta-heading {
  color: #0a1628 !important;
  -webkit-text-fill-color: #0a1628 !important;
  text-align: left !important;
  margin: 0 !important;
  padding-bottom: 0 !important;
  width: 100% !important;
  max-width: 42rem !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: clamp(12px, 1.6vw, 20px) !important;
}

/* --- Product page main heroes --- */
.page-health-safety .hero-section:not(.smaller) .hero-heading,
.page-mp-products .hero-section:not(.smaller) .hero-heading {
  font-size: 40px !important;
}

.page-health-safety .hero-section .hero-heading,
.page-health-safety .hero-section.smaller .hero-heading,
.page-mp-products .hero-section .hero-heading,
.page-mp-products .hero-section.smaller .hero-heading {
  font-family: Montserrat, sans-serif !important;
  font-weight: 600 !important;
  line-height: 1.12 !important;
  letter-spacing: -0.02em !important;
  color: #0a1628 !important;
  -webkit-text-fill-color: #0a1628 !important;
  background: none !important;
  background-image: none !important;
  -webkit-background-clip: border-box !important;
  background-clip: border-box !important;
}

.page-health-safety .hero-section .hero-subheading,
.page-health-safety .hero-section.smaller .hero-subheading,
.page-mp-products .hero-section .hero-subheading,
.page-mp-products .hero-section.smaller .hero-subheading {
  font-family: Montserrat, sans-serif !important;
  font-size: clamp(calc(1.125rem - 2px), calc(1.45vw - 2px), calc(1.75rem - 2px)) !important;
  line-height: 1.55 !important;
  font-weight: 300 !important;
  letter-spacing: 0.02em !important;
  color: rgba(10, 22, 40, 0.88) !important;
  -webkit-text-fill-color: rgba(10, 22, 40, 0.88) !important;
}

.page-health-safety .hs-product-block__pill,
.page-health-safety .hs-product-block__title,
.page-health-safety .hs-product-block__lead,
.page-health-safety .hs-product-block__prose,
.page-health-safety .benefit-heading,
.page-health-safety .benefit-text,
.page-mp-products .hs-product-block__pill,
.page-mp-products .hs-product-block__title,
.page-mp-products .hs-product-block__lead,
.page-mp-products .hs-product-block__prose,
.page-mp-products .benefit-heading,
.page-mp-products .benefit-text {
  font-family: Montserrat, sans-serif !important;
}

.page-landing .lp-hero-heading,
.page-landing .lp-text,
.page-landing .section-heading,
.page-landing .section-subheading,
.page-landing .product-tile-heading,
.page-landing .product-tile-text,
.page-landing .process-step-label,
.page-landing .process-step-slash,
.page-landing .process-step-desc,
.page-landing .systems-video-carousel__caption {
  font-family: Montserrat, sans-serif !important;
}

.page-process .hero-section .hero-heading {
  font-family: Montserrat, sans-serif !important;
  font-size: 40px !important;
  font-weight: 600 !important;
  line-height: 1.12 !important;
  letter-spacing: -0.02em !important;
  color: #0a1628 !important;
  -webkit-text-fill-color: #0a1628 !important;
  background: none !important;
  background-image: none !important;
  -webkit-background-clip: border-box !important;
  background-clip: border-box !important;
}

.page-process .hero-section .hero-subheading {
  font-family: Montserrat, sans-serif !important;
  font-size: clamp(calc(1.125rem - 2px), calc(1.45vw - 2px), calc(1.75rem - 2px)) !important;
  line-height: 1.55 !important;
  font-weight: 300 !important;
  letter-spacing: 0.02em !important;
  color: rgba(10, 22, 40, 0.88) !important;
  -webkit-text-fill-color: rgba(10, 22, 40, 0.88) !important;
}

.page-process .process-steps-header .section-heading,
.page-process .process-bespoke-copy .section-heading {
  font-family: Montserrat, sans-serif !important;
  font-weight: 600 !important;
  color: #0a1628 !important;
  -webkit-text-fill-color: #0a1628 !important;
  background: none !important;
  background-image: none !important;
  -webkit-background-clip: border-box !important;
  background-clip: border-box !important;
}

.page-process .process-steps-header .section-subheading,
.page-process .process-bespoke-copy .section-subheading {
  font-family: Montserrat, sans-serif !important;
  font-size: clamp(calc(1.125rem - 2px), calc(1.45vw - 2px), calc(1.75rem - 2px)) !important;
  line-height: 1.55 !important;
  font-weight: 300 !important;
  letter-spacing: 0.02em !important;
  color: #4a5764 !important;
  -webkit-text-fill-color: #4a5764 !important;
  padding-top: 0 !important;
}

.page-process .process-step-slash,
.page-process .process-step-label,
.page-process .process-step-desc {
  font-family: Montserrat, sans-serif !important;
}

.page-process .process-step-label {
  font-weight: 600 !important;
}

/* Cross-link section titles — landing page section heading scale */
.page-health-safety .mp-more-products .section-heading,
.page-mp-products .mp-more-products .section-heading {
  text-align: center !important;
  margin: 0 auto clamp(28px, 4vw, 44px) !important;
  padding-bottom: 0 !important;
}

.page-about-us .hero-section.about-us .hero-heading,
.page-about-us .hero-section.about-us.mobile .hero-heading {
  font-family: Montserrat, sans-serif !important;
  font-size: 40px !important;
  font-weight: 600 !important;
  line-height: 1.12 !important;
  letter-spacing: -0.02em !important;
  color: #0a1628 !important;
  -webkit-text-fill-color: #0a1628 !important;
  background: none !important;
  background-image: none !important;
  -webkit-background-clip: border-box !important;
  background-clip: border-box !important;
}

.page-about-us .hero-section.about-us .hero-subheading,
.page-about-us .hero-section.about-us.mobile .hero-subheading {
  font-family: Montserrat, sans-serif !important;
  font-size: clamp(calc(1.125rem - 2px), calc(1.45vw - 2px), calc(1.75rem - 2px)) !important;
  line-height: 1.55 !important;
  font-weight: 300 !important;
  letter-spacing: 0.02em !important;
  color: rgba(10, 22, 40, 0.88) !important;
  -webkit-text-fill-color: rgba(10, 22, 40, 0.88) !important;
}

.page-about-us .section.about-us-text .section-heading,
.page-about-us .section.mobile .section-heading,
.page-about-us .section.purple-bg.our-values .section-heading {
  font-family: Montserrat, sans-serif !important;
  font-weight: 600 !important;
  color: #0a1628 !important;
  -webkit-text-fill-color: #0a1628 !important;
  background: none !important;
  background-image: none !important;
  -webkit-background-clip: border-box !important;
  background-clip: border-box !important;
}

.page-about-us .section.about-us-text .section-subheading,
.page-about-us .section.mobile .section-subheading {
  font-family: Montserrat, sans-serif !important;
  font-size: clamp(calc(1.125rem - 2px), calc(1.45vw - 2px), calc(1.75rem - 2px)) !important;
  line-height: 1.55 !important;
  font-weight: 300 !important;
  letter-spacing: 0.02em !important;
  color: #4a5764 !important;
  -webkit-text-fill-color: #4a5764 !important;
  padding-top: 0 !important;
}

.page-contact .hero-section.contact-us .hero-heading,
.page-contact .hero-section.contact-us .hero-heading.contact {
  font-family: Montserrat, sans-serif !important;
  font-size: 40px !important;
  font-weight: 600 !important;
  line-height: 1.12 !important;
  letter-spacing: -0.02em !important;
  color: #0a1628 !important;
  -webkit-text-fill-color: #0a1628 !important;
  background: none !important;
  background-image: none !important;
  -webkit-background-clip: border-box !important;
  background-clip: border-box !important;
}

.page-contact .hero-section.contact-us .hero-subheading,
.page-contact .hero-section.contact-us .hero-subheading.contact {
  font-family: Montserrat, sans-serif !important;
  font-size: clamp(calc(1.125rem - 2px), calc(1.45vw - 2px), calc(1.75rem - 2px)) !important;
  line-height: 1.55 !important;
  font-weight: 300 !important;
  letter-spacing: 0.02em !important;
  color: rgba(10, 22, 40, 0.88) !important;
  -webkit-text-fill-color: rgba(10, 22, 40, 0.88) !important;
}

.page-contact .contact-form-section .section-heading {
  font-family: Montserrat, sans-serif !important;
  text-align: left !important;
  margin: 0 !important;
  padding: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  color: #0a1628 !important;
  -webkit-text-fill-color: #0a1628 !important;
  background: none !important;
  background-image: none !important;
  -webkit-background-clip: border-box !important;
  background-clip: border-box !important;
}

.page-contact .contact-form-section .section-subheading {
  font-family: Montserrat, sans-serif !important;
  text-align: left !important;
  margin: 0 !important;
  padding: 0 !important;
  padding-bottom: 0 !important;
  max-width: 100% !important;
  color: #4a5764 !important;
  -webkit-text-fill-color: #4a5764 !important;
  letter-spacing: 0.02em !important;
}

/* Dark-band sections — white text, same scale */
.industries-section .section-heading:not(.benefits),
.footer-section .section-heading,
/* Dark standalone CTA (e.g. process page) — white text, same scale */
section.final-cta > .container .section-heading,
section.final-cta > .container .cta-heading {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
}

.industries-section .section-subheading {
  color: rgba(255, 255, 255, 0.88) !important;
  -webkit-text-fill-color: rgba(255, 255, 255, 0.88) !important;
}

/* --- Body / subhead copy on light backgrounds --- */
.section-subheading,
.product-subheading.dark-colour,
.hs-product-block__lead.product-subheading.dark-colour,
.hs-product-block__prose.product-subheading.dark-colour,
.hs-product-block__copy .hs-product-block__lead.product-subheading.dark-colour,
.hs-product-block__copy .hs-product-block__prose.product-subheading.dark-colour {
  font-family: Montserrat, sans-serif !important;
  font-size: clamp(calc(1.125rem - 2px), calc(1.45vw - 2px), calc(1.75rem - 2px)) !important;
  line-height: 1.55 !important;
  font-weight: 300 !important;
  letter-spacing: 0.02em !important;
  color: #4a5764 !important;
  -webkit-text-fill-color: #4a5764 !important;
}

/* --- CTA copy --- */
.final-cta-wrapper .final-cta .cta-text {
  font-family: Montserrat, sans-serif !important;
  font-size: clamp(calc(1.125rem - 2px), calc(1.45vw - 2px), calc(1.75rem - 2px)) !important;
  line-height: 1.55 !important;
  font-weight: 300 !important;
  letter-spacing: 0.02em !important;
  color: #4a5764 !important;
  -webkit-text-fill-color: #4a5764 !important;
  text-align: left !important;
  width: auto !important;
  max-width: 42rem !important;
}

/* Dark-band CTA (e.g. process page) — left-aligned copy */
section.final-cta > .container .cta-stack {
  align-items: flex-start !important;
  text-align: left !important;
}

section.final-cta > .container .cta-cell {
  justify-content: flex-start !important;
  align-items: flex-start !important;
}

section.final-cta > .container .section-heading,
section.final-cta > .container .cta-heading,
section.final-cta > .container .cta-text {
  text-align: left !important;
  width: auto !important;
  max-width: 42rem !important;
}

section.final-cta > .container .cta-text {
  font-family: Montserrat, sans-serif !important;
  font-size: clamp(calc(1.125rem - 2px), calc(1.45vw - 2px), calc(1.75rem - 2px)) !important;
  line-height: 1.55 !important;
  font-weight: 300 !important;
  letter-spacing: 0.02em !important;
  color: rgba(255, 255, 255, 0.9) !important;
  -webkit-text-fill-color: rgba(255, 255, 255, 0.9) !important;
}
