/* Homepage is the approved visual reference. Every coded inner page inherits
   these content roles automatically; hero dimensions and compact UI stay separate. */
main:not(.homepage) {
  font-family: var(--font-body);
}
main:not(.homepage) :is(h1,h2,h3,h4) {
  font-family: var(--font-heading);
}
main:not(.homepage) h2.ts-blog-heading--h2 {
  font-size: var(--content-heading-size);
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: -.028em;
}
main:not(.homepage) h3.ts-blog-heading--h3 {
  font-size: var(--content-subheading-size);
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: -.028em;
}
/* Standard prose matches the homepage Why UpRango paragraph, not UI labels,
   statistics, portrait captions, names, or role descriptions. */
main:not(.homepage) p.body-copy,
main:not(.homepage) [class$="__intro"] > p:not(.section-eyebrow),
main:not(.homepage) .about-evolution__timeline li p,
main:not(.homepage) .about-approach__pillar p,
main:not(.homepage) .about-approach__closing,
main:not(.homepage) .services-faqs__item > p {
  font-family: var(--font-body);
  font-size: var(--body-copy-size);
  font-weight: var(--body-copy-weight);
  line-height: var(--body-copy-leading);
  letter-spacing: normal;
  text-align: justify;
  text-align-last: left;
}
/* Match the homepage's light-section eyebrow, retaining hero color treatments. */
main:not(.homepage) > section:not([class*="hero"]) .section-eyebrow {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
  margin: 0 0 12px;
  color: var(--color-primary-orange);
  font: 800 .78rem var(--font-body);
  letter-spacing: normal;
  text-transform: uppercase;
}
main:not(.homepage) > section:not([class*="hero"]) .section-eyebrow::before {
  width: 30px;
  height: 2px;
  background: currentColor;
}
