/* Shared industrial typography scale. */
:root {
  --font: ui-sans-serif, system-ui, sans-serif;
}

body,
button,
input,
select,
textarea {
  font-family: var(--font);
}

/* Large display hierarchy. */
.hero h1,
.plp-hero h1,
.ind-hero h1,
.sol-hero h1,
.pdp-hero h1,
.bpt-hero-title,
.rfq-hero-title,
.news-hero-title {
  font-size: clamp(42px, 5vw, 72px);
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -0.02em;
}

.section-title,
.section h2:not(.cta-img-content h2),
.page-content h2 {
  font-size: clamp(28px, 3vw, 36px);
  font-weight: 700;
  line-height: 40px;
  letter-spacing: -0.9px;
}

.cta-img-content h2,
.plp-cta h2,
.ind-cta-inner h2,
.sol-cta-inner h2,
.pdp-cta h2,
.pp-cta-text h2,
.faq-cta-text h2 {
  font-size: clamp(32px, 4vw, 48px);
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -0.02em;
}

/* Cards and article structure. */
.product-card-title,
.process-card h3,
.quality-card h3,
.feature-card h3,
.industry-card h3,
.solution-card h3 {
  font-size: 20px;
  font-weight: 600;
  line-height: 28px;
}

.section h3,
.page-content h3,
.article-content h3 {
  font-size: 24px;
  font-weight: 600;
  line-height: 32px;
}

.section-tag,
.product-card-label,
.mega-section-title {
  font-size: 12px;
  font-weight: 700;
  line-height: 16px;
  letter-spacing: 1.8px;
}

/* Navigation and footer retain a compact, readable hierarchy. */
ul.primary-nav > li > a,
ul.primary-nav > li > .nav-label {
  font-size: 16px;
  font-weight: 600;
  line-height: 24px;
}

@media (max-width: 1320px) {
  ul.primary-nav > li > a,
  ul.primary-nav > li > .nav-label {
    font-size: 14px;
    font-weight: 500;
  }
}

/* CJK and RTL scripts need normal tracking and more vertical room. */
:where(html[lang^="ja"], html[lang^="ko"], html[lang^="ar"])
:is(.hero h1, .plp-hero h1, .ind-hero h1, .sol-hero h1, .pdp-hero h1, .bpt-hero-title, .rfq-hero-title, .news-hero-title,
    .cta-img-content h2, .plp-cta h2, .ind-cta-inner h2, .sol-cta-inner h2, .pdp-cta h2, .pp-cta-text h2, .faq-cta-text h2) {
  line-height: 1.2;
  letter-spacing: normal;
}

html[lang^="de"] .hero h1,
html[lang^="de"] .plp-hero h1,
html[lang^="de"] .ind-hero h1,
html[lang^="de"] .sol-hero h1,
html[lang^="de"] .pdp-hero h1,
html[lang^="de"] .bpt-hero-title,
html[lang^="de"] .rfq-hero-title,
html[lang^="de"] .news-hero-title {
  line-height: 1.2;
  letter-spacing: -0.01em;
}

.dropdown a,
.mega-product-links a,
.mega-res-desc {
  font-size: 15px;
  font-weight: 400;
  line-height: 22.5px;
}

.footer-col h4 {
  font-size: 20px;
  font-weight: 700;
  line-height: 30px;
  letter-spacing: 0.5px;
}

.footer-col ul a {
  font-size: 15px;
  line-height: 22.5px;
}

.btn,
.cookie-banner,
#filture-cookie-banner {
  font-size: 14px;
  font-weight: 500;
  line-height: 24px;
}

@media (max-width: 768px) {
  .hero h1,
  .plp-hero h1,
  .ind-hero h1,
  .sol-hero h1,
  .pdp-hero h1,
  .bpt-hero-title,
  .rfq-hero-title,
  .news-hero-title {
    font-size: clamp(34px, 10vw, 48px);
    letter-spacing: -0.02em;
  }

  .section-title,
  .section h2:not(.cta-img-content h2),
  .page-content h2 {
    font-size: 30px;
    line-height: 36px;
  }

  .cta-img-content h2,
  .plp-cta h2,
  .ind-cta-inner h2,
  .sol-cta-inner h2,
  .pdp-cta h2,
  .pp-cta-text h2,
  .faq-cta-text h2 {
    font-size: 36px;
    line-height: 40px;
  }
}
