/* ============================================================
   LIFA SITEWIDE SECTION TITLE SYSTEM V1
   Interior section introductions reuse the homepage's title scale,
   full container measure, and compact heading-to-content rhythm.
   ============================================================ */

:root {
  --site-title-container: 1180px;
  --site-title-reading-measure: 790px;
  --site-title-column-gap: clamp(44px, 6vw, 78px);
  --site-title-content-gap: clamp(26px, 2.75vw, 36px);
  --site-title-size: clamp(2.45rem, 4.375vw, 2.8rem);
}

/* FAQ headings already use the homepage FAQ composition. This contract is
   for section introductions that precede grids, cards, media, and process
   layouts; it deliberately excludes hero, article, card, and tool headings. */
:is(#lifa-title-system-a#lifa-title-system-b#lifa-title-system-c#lifa-title-system-d, html)
  body[data-page-family]:not(.home-page) main .section
  > :is(.container, .hpv2-container)
  > .section-heading:not([data-inquiry-guide]):not(:has(+ .faq-wrap, + .faq-list)) {
  display: block !important;
  width: 100% !important;
  max-width: min(100%, var(--site-title-reading-measure)) !important;
  min-height: 0 !important;
  margin: 0 auto var(--site-title-content-gap) !important;
  padding: 0 !important;
  text-align: center !important;
}

/* Preserve deliberate sub-section transitions without reviving the oversized
   whitespace that the shared title system removes. */
:is(#lifa-title-system-a#lifa-title-system-b#lifa-title-system-c#lifa-title-system-d, html)
  body[data-page-family]:not(.home-page) main .section
  > :is(.container, .hpv2-container)
  > .section-heading.lifa-mt-48:not([data-inquiry-guide]):not(:has(+ .faq-wrap, + .faq-list)) {
  margin-top: clamp(32px, 4vw, 48px) !important;
}

:is(#lifa-title-system-a#lifa-title-system-b#lifa-title-system-c#lifa-title-system-d, html)
  body[data-page-family]:not(.home-page) main .section
  > :is(.container, .hpv2-container)
  > .section-heading:not([data-inquiry-guide]):not(:has(+ .faq-wrap, + .faq-list)) > .eyebrow {
  display: inline-flex !important;
  width: auto !important;
  max-width: 100% !important;
  margin: 0 auto 10px !important;
  justify-content: center !important;
}

:is(#lifa-title-system-a#lifa-title-system-b#lifa-title-system-c#lifa-title-system-d, html)
  body[data-page-family]:not(.home-page) main .section
  > :is(.container, .hpv2-container)
  > .section-heading:not([data-inquiry-guide]):not(:has(+ .faq-wrap, + .faq-list)) > h2 {
  display: block !important;
  max-width: 100% !important;
  margin: 0 auto 14px !important;
  font-size: var(--site-title-size) !important;
  line-height: 1.05 !important;
  letter-spacing: 0 !important;
  text-align: center !important;
  text-wrap: balance;
}

:is(#lifa-title-system-a#lifa-title-system-b#lifa-title-system-c#lifa-title-system-d, html)
  body[data-page-family]:not(.home-page) main .section
  > :is(.container, .hpv2-container)
  > .section-heading:not([data-inquiry-guide]):not(:has(+ .faq-wrap, + .faq-list)) > p {
  display: block !important;
  max-width: 68ch !important;
  margin: 0 auto !important;
  font-size: 1rem !important;
  line-height: 1.65 !important;
  text-align: center !important;
  text-wrap: pretty;
}

@media (min-width: 901px) {
  :is(#lifa-title-system-a#lifa-title-system-b#lifa-title-system-c#lifa-title-system-d, html)
    body[data-page-family]:not(.home-page) main .section
    > :is(.container, .hpv2-container)
    > .section-heading:not([data-inquiry-guide]):not(:has(+ .faq-wrap, + .faq-list)):has(> p) {
    display: grid !important;
    max-width: min(100%, var(--site-title-container)) !important;
    grid-template-columns: minmax(0, 1.08fr) minmax(310px, .72fr) !important;
    grid-template-rows: auto auto !important;
    column-gap: var(--site-title-column-gap) !important;
    row-gap: 0 !important;
    align-items: end !important;
    text-align: left !important;
  }

  :is(#lifa-title-system-a#lifa-title-system-b#lifa-title-system-c#lifa-title-system-d, html)
    body[data-page-family]:not(.home-page) main .section
    > :is(.container, .hpv2-container)
    > .section-heading:not([data-inquiry-guide]):not(:has(+ .faq-wrap, + .faq-list)):has(> p) > .eyebrow {
    grid-column: 1 / -1 !important;
    margin: 0 0 10px !important;
    justify-content: flex-start !important;
  }

  :is(#lifa-title-system-a#lifa-title-system-b#lifa-title-system-c#lifa-title-system-d, html)
    body[data-page-family]:not(.home-page) main .section
    > :is(.container, .hpv2-container)
    > .section-heading:not([data-inquiry-guide]):not(:has(+ .faq-wrap, + .faq-list)):has(> p) > h2 {
    grid-column: 1 !important;
    max-width: min(100%, 53.2rem) !important;
    margin: 0 !important;
    text-align: left !important;
  }

  :is(#lifa-title-system-a#lifa-title-system-b#lifa-title-system-c#lifa-title-system-d, html)
    body[data-page-family]:not(.home-page) main .section
    > :is(.container, .hpv2-container)
    > .section-heading:not([data-inquiry-guide]):not(:has(+ .faq-wrap, + .faq-list)):has(> p) > p {
    grid-column: 2 !important;
    max-width: 58ch !important;
    margin: 0 0 4px !important;
    text-align: left !important;
  }
}

@media (max-width: 900px) {
  :root {
    --site-title-size: clamp(2rem, 4.8vw, 2.45rem);
  }
}

@media (max-width: 640px) {
  :root {
    --site-title-content-gap: 24px;
  }

  :is(#lifa-title-system-a#lifa-title-system-b#lifa-title-system-c#lifa-title-system-d, html)
    body[data-page-family]:not(.home-page) main .section
    > :is(.container, .hpv2-container)
    > .section-heading:not([data-inquiry-guide]):not(:has(+ .faq-wrap, + .faq-list)) > h2 {
    margin-bottom: 12px !important;
  }
}
