/* ============================================
   Team — profils principaux + liste simple de noms.
   Toggle bio : classes .iaf-modular__toggle* (voir iaf-modular.css).
   ============================================ */

:root {
  --iaf-team-max-width: 1440px;
  --iaf-team-padding-inline: 64px;
  --iaf-team-padding-block: 120px;
  --iaf-team-grid-gap: 32px;
  --iaf-team-toggle-grid-gap: 48px;
  --iaf-team-profile-pad-y: 20px;
  --iaf-team-links-gap: 4px;
  --iaf-team-portrait-width: 260px;
  --iaf-team-portrait-height: calc(var(--iaf-team-portrait-width) * 5 / 4);
  --iaf-team-profile-header-estimate: 120px;
  /* Hauteur minimale corps carte : header + zone intro (hauteur portrait). */
  --iaf-team-profile-body-min-h: calc(
    var(--iaf-team-portrait-height) + var(--iaf-team-profile-header-estimate)
  );
  --iaf-team-bio-divider-gap: 24px;
  /* Espace entre texte de présentation (subline) et bouton Read More — profils principaux. */
  --iaf-team-intro-more-gap: 16px;
  /* Espace entre bio dépliée et bouton Close. */
  --iaf-team-close-gap: 32px;
  /* Toggle bio — plus lent et plus doux que le modular services par défaut. */
  --iaf-team-toggle-duration: 1400ms;
  --iaf-team-toggle-easing: cubic-bezier(0.22, 1, 0.36, 1);
  --iaf-team-toggle-fade-duration: var(--iaf-team-toggle-duration);
  --iaf-team-bio-color: var(--iaf-canvas-accent, #2398ff);
}

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

.iaf-team__inner {
  width: 100%;
  max-width: calc(var(--iaf-team-max-width) - (var(--iaf-team-padding-inline) * 2));
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  column-gap: var(--iaf-team-grid-gap);
}

.iaf-team__profiles {
  grid-column: 1 / -1;
}

.iaf-team__profile {
  border-top: 1px solid var(--iaf-canvas-border-strong);
  padding: var(--iaf-team-profile-pad-y) 0;
}

/* Section wrapper already draws Satzspiegel divider + gap — avoid double rule before first lead profile. */
.iaf-ext-spacing--has-top-divider > .iaf-team .iaf-team__profile:first-child {
  border-top: none;
}

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

.iaf-team__role-wrap {
  grid-column: 1 / span 2;
  align-self: start;
}

.iaf-team__role {
  margin: 0;
  color: var(--iaf-canvas-heading);
}

.iaf-team__main {
  grid-column: 3 / -1;
  min-width: 0;
  display: flex;
  flex-direction: column;
}

/* Legacy / sans wrapper profile-body : même logique flex sur __main. */
.iaf-team__profile:not(.iaf-team__profile--no-image) .iaf-team__main:not(:has(.iaf-team__profile-body)) {
  min-height: var(--iaf-team-profile-body-min-h);
}

.iaf-team__main:not(:has(.iaf-team__profile-body)) > .iaf-team__header {
  flex: 0 0 auto;
}

.iaf-team__main:not(:has(.iaf-team__profile-body)) > .iaf-modular__toggle,
.iaf-team__main:not(:has(.iaf-team__profile-body)) > .iaf-team__intro-row--static {
  margin-top: auto;
  flex-shrink: 0;
  width: 100%;
}

/* Corps carte : header en haut ; zone intro poussée en bas (flex-end). */
.iaf-team__profile-body {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
}

.iaf-team__profile-body--with-image {
  min-height: var(--iaf-team-profile-body-min-h);
}

.iaf-team__profile-header {
  flex: 0 0 auto;
  min-width: 0;
}

.iaf-team__profile-lower {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  margin-top: 0;
  min-width: 0;
  width: 100%;
}

.iaf-team__profile:not(.iaf-team__profile--no-image) .iaf-team__profile-lower {
  min-height: var(--iaf-team-portrait-height);
}

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

.iaf-team__position {
  margin: 4px 0 0;
  color: var(--iaf-canvas-text);
}

.iaf-team__links {
  margin: 12px 0 0;
  display: flex;
  flex-direction: column;
  gap: var(--iaf-team-links-gap);
}

.iaf-team__link {
  color: var(--iaf-canvas-accent);
}

.iaf-team .iaf-modular__toggle {
  border: 0;
  padding: 0;
  margin: 0;
}

/* Grille texte (subline + bio) | portrait — portrait ancré en bas du bloc ouvert. */
.iaf-team .iaf-modular__toggle-body.iaf-team__toggle-body,
.iaf-team__toggle-body--static {
  display: grid;
  grid-template-columns: minmax(0, 1fr) min(var(--iaf-team-portrait-width), 40%);
  column-gap: var(--iaf-team-toggle-grid-gap);
  row-gap: 0;
  align-items: end;
  min-width: 0;
  width: 100%;
}

.iaf-team__profile--no-image .iaf-modular__toggle-body.iaf-team__toggle-body,
.iaf-team__profile--no-image .iaf-team__toggle-body--static {
  grid-template-columns: minmax(0, 1fr);
}

.iaf-team__toggle-content {
  display: contents;
}

.iaf-team__intro-stack {
  grid-column: 1;
  grid-row: 1;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  min-height: var(--iaf-team-portrait-height);
  min-width: 0;
  width: 100%;
  max-width: 100%;
  flex-shrink: 0;
}

.iaf-team__profile--no-image .iaf-team__intro-stack {
  min-height: 0;
}

.iaf-team__profile-lower > .iaf-modular__toggle {
  width: 100%;
}

.iaf-team .iaf-modular__toggle-intro {
  margin: 0;
  max-width: 100%;
  width: 100%;
  min-width: 0;
}

.iaf-team .iaf-modular__toggle-footer--closed {
  grid-column: 1;
  grid-row: 2;
  margin-top: var(--iaf-team-intro-more-gap);
  min-width: 0;
  width: 100%;
  max-width: 100%;
  flex-shrink: 0;
  align-self: flex-start;
}

.iaf-team__toggle-body > .iaf-team__media,
.iaf-team__toggle-body--static > .iaf-team__media {
  grid-column: 2;
  /* Fermé : rangée 1 seule — bas du portrait = bas de la subline. */
  grid-row: 1 / 2;
  align-self: end;
  justify-self: end;
}

/* Ouvert : span les 4 rangées implicites (subline, READ MORE replié, bio, CLOSE).
   `1 / -1` ne couvre que les lignes explicites, pas les rangées implicites. */
.iaf-team__profile:has(.iaf-modular__toggle.is-open) .iaf-team__toggle-body > .iaf-team__media {
  grid-row: 1 / span 4;
}

.iaf-team__profile--no-image .iaf-team__toggle-body > .iaf-team__media {
  display: none;
}

.iaf-team__media {
  width: min(100%, var(--iaf-team-portrait-width));
}

.iaf-team__portrait {
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  object-position: center;
  border-radius: 4px;
  display: block;
}

.iaf-team .iaf-modular__toggle-panel {
  grid-column: 1;
  grid-row: 3;
  min-width: 0;
  width: 100%;
  max-width: 100%;
  flex: 0 0 auto;
  align-self: stretch;
  transition: grid-template-rows var(--iaf-team-toggle-duration) var(--iaf-team-toggle-easing);
}

.iaf-team .iaf-modular__toggle-panel-inner {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  margin-top: 0;
  padding-top: 0;
  border-top: 1px solid transparent;
  transition:
    margin-top var(--iaf-team-toggle-duration) var(--iaf-team-toggle-easing),
    padding-top var(--iaf-team-toggle-duration) var(--iaf-team-toggle-easing),
    border-color var(--iaf-team-toggle-duration) var(--iaf-team-toggle-easing);
}

.iaf-team .iaf-modular__toggle-panel.is-open .iaf-modular__toggle-panel-inner {
  margin-top: var(--iaf-team-bio-divider-gap);
  padding-top: var(--iaf-team-bio-divider-gap);
  border-top-color: var(--iaf-canvas-border-strong);
}

.iaf-team .iaf-modular__toggle-full.iaf-team__bio {
  max-width: 100%;
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  color: var(--iaf-team-bio-color);
  opacity: 0;
  transition: opacity var(--iaf-team-toggle-fade-duration) var(--iaf-team-toggle-easing);
}

.iaf-team .iaf-modular__toggle-panel.is-open .iaf-modular__toggle-full.iaf-team__bio {
  opacity: 1;
}

.iaf-team .iaf-modular__toggle-full.iaf-team__bio p + p {
  margin-top: var(--gt-caption-lh, 23px);
}

.iaf-team .iaf-modular__toggle-footer--open {
  grid-column: 1;
  grid-row: 4;
  display: inline-flex;
  align-items: center;
  gap: var(--iaf-modular-toggle-trigger-gap);
  color: var(--iaf-primary-1, #2398ff);
  min-width: 0;
  width: 100%;
  max-width: 100%;
  align-self: flex-start;
}

.iaf-team .iaf-modular__toggle.is-open .iaf-modular__toggle-footer--open {
  margin-top: var(--iaf-team-close-gap);
}

.iaf-team__toggle-body--static .iaf-team__toggle-content {
  display: block;
  grid-column: 1;
  min-width: 0;
  width: 100%;
  max-width: 100%;
}

.iaf-team__toggle-body--static .iaf-modular__toggle-full {
  margin: 0;
  max-width: 100%;
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  color: var(--iaf-team-bio-color);
}

/* Liste Team — sous-section avec label gauche + membres à droite. */
.iaf-team__list-section {
  grid-column: 1 / -1;
}

.iaf-team__list-divider {
  border-top: 1px solid var(--iaf-canvas-border-strong);
  margin: 0;
}

.iaf-team__list-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  column-gap: var(--iaf-team-grid-gap);
  align-items: start;
  padding-top: var(--iaf-team-profile-pad-y);
}

.iaf-team__list-label-wrap {
  grid-column: 1 / span 2;
}

.iaf-team__list-label {
  margin: 0;
}

.iaf-team__list {
  grid-column: 3 / -1;
  margin: 0;
  padding: 0;
  list-style: none;
  min-width: 0;
}

.iaf-team__list-item {
  padding: 12px 0;
}

.iaf-team__list-item:not(:last-child) {
  border-bottom: 1px solid var(--iaf-canvas-border-strong);
}

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

.iaf-team__list-meta {
  margin-top: 4px;
  display: flex;
  flex-direction: row;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 12px;
}

.iaf-team__list-meta .iaf-team__list-position {
  margin: 0;
}

.iaf-team__list-meta .iaf-team__link {
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

.iaf-team__list-position {
  margin: 4px 0 0;
  color: var(--iaf-canvas-text-muted, var(--iaf-canvas-text));
  opacity: 0.72;
}

.iaf-team--white-surface .iaf-team__profile,
.iaf-team--white-surface .iaf-team__list-divider,
.iaf-team--white-surface .iaf-team__list-item:not(:last-child) {
  border-color: #1e1e1e;
}

@media (max-width: 1023px) {
  :root {
    --iaf-team-padding-inline: var(--iaf-layout-padding-inline-tablet, 24px);
    --iaf-team-padding-block: var(--iaf-layout-padding-block-tablet, 64px);
    --iaf-team-toggle-grid-gap: 20px;
    --iaf-team-mobile-links-intro-gap: 32px;
    --iaf-team-mobile-readmore-photo-gap: 20px;
    --iaf-team-mobile-photo-rule-gap: 40px;
  }

  .iaf-team__inner,
  .iaf-team__profile-grid,
  .iaf-team__list-grid {
    grid-template-columns: 1fr;
  }

  .iaf-team__role-wrap,
  .iaf-team__main,
  .iaf-team__list-label-wrap,
  .iaf-team__list {
    grid-column: 1 / -1;
  }

  .iaf-team__role-wrap,
  .iaf-team__list-label-wrap {
    margin-bottom: 16px;
  }

  /* LinkedIn / liens → texte de présentation (subline). */
  .iaf-team__profile-lower {
    margin-top: var(--iaf-team-mobile-links-intro-gap);
  }

  .iaf-team .iaf-modular__toggle-body.iaf-team__toggle-body,
  .iaf-team__toggle-body--static {
    grid-template-columns: 1fr;
    row-gap: 20px;
  }

  /* Fermé : pas de row-gap fantôme entre READ MORE, panel replié et portrait. */
  .iaf-team__profile:not(:has(.iaf-modular__toggle.is-open)) .iaf-modular__toggle-body.iaf-team__toggle-body,
  .iaf-team__profile:not(:has(.iaf-modular__toggle.is-open)) .iaf-team__toggle-body--static {
    row-gap: 0;
  }

  .iaf-team__toggle-body > .iaf-team__media,
  .iaf-team__toggle-body--static > .iaf-team__media {
    grid-column: 1;
    grid-row: auto;
    justify-self: start;
    align-self: start;
    margin-top: var(--iaf-team-mobile-photo-rule-gap);
  }

  .iaf-team__profile:not(:has(.iaf-modular__toggle.is-open)) .iaf-team__toggle-body > .iaf-team__media,
  .iaf-team__profile:not(:has(.iaf-modular__toggle.is-open)) .iaf-team__toggle-body--static > .iaf-team__media {
    margin-top: var(--iaf-team-mobile-readmore-photo-gap);
  }

  .iaf-team__profile:has(.iaf-modular__toggle.is-open) .iaf-team__media {
    margin-top: calc(var(--iaf-team-mobile-photo-rule-gap) + 8px);
  }

  .iaf-team__profile:not(.iaf-team__profile--no-image) {
    padding-bottom: calc(var(--iaf-team-profile-pad-y) + 12px);
  }

  .iaf-team__profile:has(.iaf-modular__toggle.is-open) .iaf-team__toggle-body > .iaf-team__media {
    grid-row: auto;
  }

  .iaf-team__intro-stack,
  .iaf-team__profile:not(.iaf-team__profile--no-image) .iaf-team__profile-lower,
  .iaf-team__profile-body--with-image {
    min-height: 0;
  }
}

@media (max-width: 768px) {
  :root {
    --iaf-team-padding-inline: var(--iaf-layout-padding-inline-phone, 20px);
    --iaf-team-padding-block: var(--iaf-layout-padding-block-phone, 56px);
  }
}

@media (prefers-reduced-motion: reduce) {
  .iaf-team .iaf-modular__toggle-panel {
    transition: none;
  }

  .iaf-team .iaf-modular__toggle-full.iaf-team__bio {
    transition-duration: var(--iaf-modular-toggle-fade-duration-reduced);
  }
}
