/* Adxfy 2.1.1: spacing and reading alignment for the expanded page copy. */

/* The page gutter follows the hero and navigation. Keep text readable without
   centering the reading column inside the much wider site container. */
.page-content > section > .wrap.section > .prose,
.page-content > section > .wrap.section.article-layout > .prose {
  margin-inline: 0;
  text-align: start;
  width: 100%;
  min-width: 0;
  max-width: 76ch;
}

/* Use one deliberate gap between consecutive editorial sections, rather than
   adding a full top and bottom padding on both sides of every boundary. */
.page-content > section:not(.strategy-band) > .wrap.section {
  padding-block: clamp(36px, 4.4vw, 60px);
}
.page-content > section:not(.hero):not(.strategy-band) + section:not(.strategy-band) > .wrap.section {
  padding-top: 0;
}

/* The first heading and final paragraph must not add another blank band. */
.page-content > section:not(.strategy-band) > .wrap.section > :first-child,
.page-content > section > .wrap.section > .prose > :first-child {
  margin-top: 0;
}
.page-content > section:not(.strategy-band) > .wrap.section > :last-child,
.page-content > section > .wrap.section > .prose > :last-child {
  margin-bottom: 0;
}

/* Body headings have a reading scale. Hero, service-index, strategy, and footer
   headings retain their display treatment. */
.page-content .section .prose h2 {
  font-size: clamp(28px, 3vw, 40px);
  line-height: 1.14;
  letter-spacing: -.035em;
  margin: 42px 0 18px;
  max-width: 26ch;
}
.page-content .section .prose > h2:first-child {
  margin-top: 0;
}
.page-content .section .prose h3 {
  font-size: clamp(22px, 2vw, 27px);
  line-height: 1.22;
  margin: 28px 0 12px;
}
.page-content .section .prose p {
  line-height: 1.7;
  margin-bottom: 20px;
}
.page-content .section .prose > p:last-child {
  margin-bottom: 0;
}

/* Long-form pages keep a reading column and a compact right-hand index. */
.page-content .section.article-layout {
  grid-template-columns: minmax(0, 820px) minmax(200px, 1fr);
  column-gap: clamp(36px, 5vw, 76px);
  align-items: start;
}
.page-content .section.article-layout > aside {
  min-width: 0;
  padding-left: 24px;
  max-height: calc(100dvh - 160px);
  overflow-y: auto;
  overscroll-behavior: contain;
}
.page-content .section.article-layout > aside .eyebrow {
  margin-bottom: 18px;
}
.page-content .section.article-layout > aside a {
  line-height: 1.45;
  margin-bottom: 12px;
}

@media (max-width: 850px) {
  .page-content .section.article-layout {
    grid-template-columns: minmax(0, 1fr);
    gap: 28px;
  }
  .page-content .section.article-layout > aside {
    position: static;
    grid-row: 1;
    max-height: none;
    overflow: visible;
    padding-left: 18px;
  }
}

@media (max-width: 700px) {
  .page-content > section:not(.strategy-band) > .wrap.section {
    padding-block: 34px;
  }
  .page-content > section:not(.hero):not(.strategy-band) + section:not(.strategy-band) > .wrap.section {
    padding-top: 0;
  }
  .page-content .section .prose h2 {
    margin-top: 34px;
  }
  .page-content .section .prose > h2:first-child {
    margin-top: 0;
  }
}
