/* ============================================
   IAF Text — sur-titre caption bold + corps H3 serif + CTA pill sous le corps
   Fond : canvas global (`--page-bg-color` + data-iaf-bg-color sur la section).
   ============================================ */

:root {
  --iaf-text-padding-block: 160px;
  --iaf-text-padding-inline: 32px;
  --iaf-text-max-width: 820px;

  /* Espace vertical sub-header ↔ body. */
  --iaf-text-gap: 24px;

  /* Espace vertical entre deux paragraphes du body. */
  --iaf-text-paragraph-gap: 28px;

  /* Espace body → CTA (un peu moins que entre paragraphes). */
  --iaf-text-cta-gap: 12px;
}

.iaf-text {
  width: 100%;
  box-sizing: border-box;
  padding-bottom: var(--iaf-text-padding-block);
  padding-inline: var(--iaf-text-padding-inline);
  display: flex;
  justify-content: center;
  background-color: transparent;
  overflow: visible;
}

/* Sans filet haut wrapper : padding haut standard. */
.iaf-ext-spacing:not(.iaf-ext-spacing--has-top-divider) > .iaf-text {
  padding-top: var(--iaf-text-padding-block);
}

/* Intro Text + filet haut : conserver le padding section d’origine (160px) — l’écart
   ne passe pas par --iaf-ext-divider-gap (cf. exception ::before margin dans separator). */
.iaf-ext-spacing--has-top-divider > .iaf-text {
  padding-top: var(--iaf-text-padding-block);
}

.iaf-text__inner {
  width: 100%;
  max-width: var(--iaf-text-max-width);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: var(--iaf-text-gap);
}

.iaf-text__sub {
  margin: 0;
  color: var(--iaf-canvas-accent);
}

.iaf-text__body {
  color: var(--iaf-canvas-heading);
  text-wrap: pretty;
  width: 100%;
}

.iaf-text__body p {
  margin: 0;
}

.iaf-text__body p + p {
  margin-top: var(--iaf-text-paragraph-gap);
}

.iaf-text__body em {
  font-style: italic;
}

.iaf-text__cta-wrap {
  margin: 0;
  margin-top: var(--iaf-text-cta-gap);
}

/* --- Responsive --- */
@media (max-width: 1023px) {
  :root {
    --iaf-text-padding-block: var(--iaf-layout-padding-block-tablet, 64px);
    --iaf-text-padding-inline: var(--iaf-layout-padding-inline-tablet, 24px);
    --iaf-text-gap: 22px;
    --iaf-text-paragraph-gap: 26px;
  }

  /* Copy principal = tier body (16px) ; eyebrow inchangé (gt-caption-bold). */
  .iaf-text .iaf-text__body.iaf-rich-content {
    font-size: var(--iaf-m-body);
    line-height: var(--iaf-m-body-lh);
  }

  .iaf-ext-spacing--has-top-divider > .iaf-text {
    padding-top: var(--iaf-text-padding-block) !important;
  }
}

@media (max-width: 768px) {
  :root {
    --iaf-text-padding-block: 96px;
    --iaf-text-padding-inline: var(--iaf-layout-padding-inline-phone, 20px);
    --iaf-text-gap: 20px;
    --iaf-text-paragraph-gap: 24px;
    --iaf-text-cta-gap: 12px;
  }
}
