/* IAF Slides — pile sticky CSS native + titre section sticky (v1.0.81). */

:root {
  --iaf-slides-max-width: 1440px;
  --iaf-slides-padding-inline: 64px;
  --iaf-slides-padding-block: 120px;
  --iaf-slides-grid-gap: 32px;
  --iaf-slides-picto-gap: 20px;
  --iaf-slides-picto-col-width: 20px;
  --iaf-slides-stack-top: 60px;
  --headline-stack-gap: 89px;
  --headline-band-height: 89px;
  --iaf-slides-open-gap: 122px;
  --iaf-slides-item-padding-top: 16px;
  --iaf-slides-headline-row-height: var(--gt-h3-lh, 36px);
  --iaf-slides-headline-inner-gap: 20px;
  --iaf-slides-headline-divider: 1px;
  --iaf-slides-stack-tail: 60px;
}

/* Évite double espacement ACF (souvent 120px) : queue gérée par margin section. */
.iaf-ext-spacing:has(.iaf-slides) {
  padding-bottom: 0 !important;
}

.iaf-slides {
  position: relative;
  width: 100%;
  box-sizing: border-box;
  padding: var(--iaf-slides-padding-block) var(--iaf-slides-padding-inline);
  margin-bottom: var(--iaf-slides-stack-tail);
  background-color: transparent;
  display: flex;
  justify-content: center;
  min-width: 0;
  overflow: visible;
}

.iaf-slides__inner {
  width: 100%;
  max-width: calc(var(--iaf-slides-max-width) - (var(--iaf-slides-padding-inline) * 2));
}

.iaf-slides__grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  column-gap: var(--iaf-slides-grid-gap);
  align-items: start;
}

.iaf-slides__title-col {
  grid-column: 1 / span 2;
  align-self: start;
  min-height: 0;
  max-width: 100%;
}

.iaf-slides__title-wrap {
  margin: 0;
  padding: 0;
}

/* Filet interne — mobile uniquement (le titre + sa ligne deviennent sticky). */
.iaf-slides__title-rule {
  display: none;
}

/* Desktop : colonne titre = hauteur colonne cartes ; wrap sticky (cf. iaf-modular). */
@media (min-width: 1024px) {
  .iaf-slides.iaf-ext {
    overflow: visible;
    contain: none;
  }

  .iaf-slides__inner {
    overflow: visible;
    contain: none;
  }

  .iaf-slides__grid {
    align-items: stretch;
  }

  .iaf-slides__title-col,
  .iaf-slides__col {
    grid-row: 1;
  }

  .iaf-slides__title-col {
    align-self: stretch;
    min-height: 0;
  }

  .iaf-slides__title-wrap {
    position: sticky;
    top: var(--iaf-slides-stack-top, 60px);
    z-index: 2;
  }
}

@media (max-width: 1023px) {
  /* Le titre + sa ligne restent fixes pendant le scroll de la pile de cartes.
     z-index: 1 — les cartes (col z-index: 2, index croissant) passent par-dessus
     en fin de scroll, la dernière recouvrant le titre. */
  .iaf-slides__title-col {
    grid-column: 1 / -1;
    margin-bottom: clamp(52px, 11vh, 80px);
    position: sticky;
    top: 0;
    z-index: 1;
    background-color: var(--page-bg-color);
    /* Air avant la ligne (séparation depuis l’extension précédente). */
    padding-top: var(--iaf-ext-divider-gap-before, 32px);
    /* Espace entre le titre épinglé et la première carte épinglée. */
    padding-bottom: var(--iaf-ext-item-divider-gap, 16px);
  }

  /* Pas de filet interne quand l’extension n’a pas de filet haut (ex. après hero image). */
  .iaf-ext-spacing:not(.iaf-ext-spacing--has-top-divider) .iaf-slides__title-col {
    padding-top: 0;
  }

  .iaf-slides__title-wrap {
    position: static;
    top: auto;
  }

  /* Filet interne (remplace le filet externe du wrapper, qui ne peut pas être sticky). */
  .iaf-ext-spacing--has-top-divider > .iaf-slides .iaf-slides__title-rule {
    display: block;
    height: var(--iaf-separator-thickness, 1px);
    width: 100%;
    background-color: var(--iaf-separator-color, var(--iaf-canvas-border-strong));
    margin: 0 0 var(--iaf-ext-divider-gap, 16px);
  }

  /* Masque le filet externe du wrapper pour Card Slides (repris en interne). */
  .iaf-ext-spacing--has-top-divider:has(> .iaf-slides)::before {
    display: none;
  }
}

.iaf-slides h2.iaf-slides__title {
  margin: 0;
  margin-block: 0;
  padding: 0;
  color: var(--iaf-canvas-heading);
  text-wrap: balance;
}

.iaf-slides__col {
  grid-column: 3 / span 4;
  min-width: 0;
  box-sizing: border-box;
}

.iaf-slides[data-iaf-slides-notitle] .iaf-slides__col {
  grid-column: 1 / -1;
}

.iaf-slides__sticky {
  display: flex;
  flex-direction: column;
  margin: 0;
  padding: 0;
  min-width: 0;
  box-sizing: border-box;
  overflow: visible;
}

.iaf-slides__stack-runway {
  flex-shrink: 0;
  width: 100%;
  height: calc((var(--iaf-slides-count, 1) - 1) * var(--headline-stack-gap, 89px));
  pointer-events: none;
}

.iaf-slides__stack-sentinel {
  flex-shrink: 0;
  width: 100%;
  height: 1px;
  margin: 0;
  padding: 0;
  pointer-events: none;
  visibility: hidden;
}

.iaf-slides__slide,
.iaf-slides__item,
.iaf-slides__headline-band,
.iaf-slides__panel {
  background-color: var(--page-bg-color);
  transition: background-color var(--iaf-page-bg-transition-duration, 2600ms)
    var(--iaf-page-bg-transition-easing, cubic-bezier(0.25, 0.8, 0.25, 1));
}

.iaf-slides__slide,
.iaf-slides__item {
  position: relative;
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  border: none;
  z-index: calc(var(--stack-index, 0) + 1);
  isolation: isolate;
}

.iaf-slides__headline-band {
  box-sizing: border-box;
  position: relative;
  z-index: 1;
  padding-top: var(--iaf-slides-item-padding-top);
  padding-bottom: var(--iaf-slides-headline-inner-gap);
  border-bottom: var(--iaf-slides-headline-divider) solid var(--iaf-canvas-border-strong);
}

.iaf-slides__slide--first .iaf-slides__headline-band,
.iaf-slides__item--first .iaf-slides__headline-band {
  border-top: none;
}

.iaf-slides__slide--last .iaf-slides__headline-band,
.iaf-slides__item--last .iaf-slides__headline-band {
  border-bottom: none;
}

.iaf-slides__headline {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: var(--iaf-slides-picto-gap);
  margin: 0;
  min-height: var(--iaf-slides-headline-row-height);
}

.iaf-slides__picto-cell {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex: 0 0 var(--iaf-slides-picto-col-width);
  width: var(--iaf-slides-picto-col-width);
  min-height: var(--iaf-slides-headline-row-height);
  line-height: 0;
}

.iaf-slides__picto.iaf-picto-wrap,
.iaf-slides__picto .iaf-picto {
  display: block;
}

.iaf-slides__item-title {
  margin: 0;
  flex: 1 1 auto;
  min-width: 0;
  color: var(--iaf-canvas-accent);
}

.iaf-slides__panel {
  display: block;
  position: relative;
  z-index: 0;
  margin-top: 32px;
}

.iaf-slides__body {
  color: var(--iaf-canvas-text);
  margin: 0;
}

.iaf-slides__body p {
  margin: 0;
}

.iaf-slides__body p + p {
  margin-top: 16px;
}

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

.iaf-slides__more-wrap {
  margin: 28px 0 0;
}

@media (prefers-reduced-motion: no-preference) {
  /* État ouvert : espace entre cartes (≠ cran sticky ~93px). Sticky pile sur desktop et mobile. */
  .iaf-slides__slide:not(:last-child),
  .iaf-slides__item:not(:last-child) {
    margin-bottom: var(--iaf-slides-open-gap);
  }

  .iaf-slides__slide,
  .iaf-slides__item {
    position: sticky;
    top: calc(
      var(--iaf-slides-stack-top) + var(--stack-index, 0) * var(--headline-stack-gap, 89px)
    );
  }
}

@media (max-width: 1023px) {
  :root {
    --iaf-slides-padding-block: var(--iaf-layout-padding-block-tablet, 64px);
    --iaf-slides-padding-inline: var(--iaf-layout-padding-inline-tablet, 24px);
    --iaf-slides-open-gap: 64px;
    --iaf-slides-stack-top: 48px;
  }

  .iaf-slides {
    padding-inline: var(--iaf-slides-padding-inline);
    padding-bottom: var(--iaf-slides-padding-block);
  }

  .iaf-ext-spacing:not(.iaf-ext-spacing--has-top-divider) > .iaf-slides {
    padding-top: clamp(80px, 14vh, 104px);
  }

  .iaf-slides__grid {
    grid-template-columns: 1fr;
  }

  .iaf-slides__title-col,
  .iaf-slides__col {
    grid-column: 1;
  }

  /* Colonne cartes au-dessus du titre sticky : la dernière carte recouvre le titre en scroll. */
  .iaf-slides__col {
    position: relative;
    z-index: 2;
  }

  .iaf-slides__title-col {
    margin-bottom: clamp(52px, 11vh, 80px);
  }

  .iaf-slides__panel {
    margin-top: 24px;
  }

  .iaf-slides__headline-band,
  .iaf-slides__panel {
    position: relative;
    top: auto;
  }
}

@media (max-width: 768px) {
  :root {
    --iaf-slides-padding-block: var(--iaf-layout-padding-block-phone, 56px);
    --iaf-slides-padding-inline: var(--iaf-layout-padding-inline-phone, 20px);
    --iaf-slides-headline-inner-gap: 16px;
    --iaf-slides-open-gap: 56px;
    --headline-stack-gap: 85px;
    --headline-band-height: 85px;
    --iaf-slides-stack-top: 40px;
  }

  .iaf-ext-spacing:not(.iaf-ext-spacing--has-top-divider) > .iaf-slides {
    padding-top: clamp(72px, 13vh, 96px);
  }

  .iaf-slides__grid {
    grid-template-columns: 1fr;
  }

  .iaf-slides__title-col,
  .iaf-slides__col {
    grid-column: 1;
  }
}

@media (prefers-reduced-motion: reduce) {
  .iaf-slides__slide:not(:last-child),
  .iaf-slides__item:not(:last-child) {
    margin-bottom: var(--iaf-slides-open-gap);
  }

  .iaf-slides__sticky {
    padding-bottom: 0;
  }

  .iaf-slides__slide,
  .iaf-slides__item,
  .iaf-slides__headline-band,
  .iaf-slides__panel {
    position: relative;
    top: auto;
    transition: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .iaf-slides__slide:not(:last-child),
  .iaf-slides__item:not(:last-child) {
    margin-bottom: var(--iaf-slides-open-gap);
  }

  .iaf-slides__sticky {
    padding-bottom: 0;
  }

  .iaf-slides__slide,
  .iaf-slides__item,
  .iaf-slides__headline-band,
  .iaf-slides__panel {
    position: relative;
    top: auto;
    transition: none;
  }
}
