/* ============================================
   Listing 4 colomns Logo — même structure que listing, avec logo + lien flèche.
   ============================================ */

:root {
  --iaf-listing-logo-max-width: 1440px;
  --iaf-listing-logo-padding-inline: 64px;
  --iaf-listing-logo-padding-block: 120px;
  --iaf-listing-logo-grid-gap: 32px;
  --iaf-listing-logo-items-gap: 36px;
  --iaf-listing-logo-separator-pad: 16px;
  --iaf-listing-logo-logo-height: 34px;
  --iaf-listing-logo-title-text-gap: 16px;
  --iaf-listing-logo-section-text-max-width: 340px;
  --iaf-listing-logo-link-btn-width: 40px;
  --iaf-listing-logo-link-btn-height: 36px;
  --iaf-listing-logo-content-btn-gap: 24px;
  --iaf-listing-logo-columns: 4;
}

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

.iaf-ext-spacing:not(.iaf-ext-spacing--has-top-divider) > .iaf-listing-logo {
  padding-top: var(--iaf-listing-logo-padding-block);
}

.iaf-ext-spacing--has-top-divider > .iaf-listing-logo,
.iaf-ext-spacing--has-bottom-divider + .iaf-ext-spacing > .iaf-listing-logo {
  padding-top: 0;
}

.iaf-listing-logo__inner {
  width: 100%;
  max-width: calc(var(--iaf-listing-logo-max-width) - (var(--iaf-listing-logo-padding-inline) * 2));
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  column-gap: var(--iaf-listing-logo-grid-gap);
  align-items: start;
}

.iaf-listing-logo__title-wrap {
  grid-column: 1 / span 2;
}

.iaf-listing-logo__title {
  margin: 0;
  color: var(--iaf-canvas-heading);
  text-wrap: balance;
}

.iaf-listing-logo__section-text {
  margin-top: 20px;
  max-width: var(--iaf-listing-logo-section-text-max-width);
  color: var(--iaf-canvas-text);
}

.iaf-listing-logo__section-text p {
  margin: 0;
}

.iaf-listing-logo__section-text p + p {
  margin-top: 16px;
}

.iaf-listing-logo__items {
  grid-column: 3 / span 4;
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  grid-template-columns: repeat(var(--iaf-listing-logo-columns, 4), minmax(0, 1fr));
  gap: var(--iaf-listing-logo-items-gap);
  align-items: stretch;
}

.iaf-listing-logo[data-iaf-listing-logo-notitle] .iaf-listing-logo__items {
  grid-column: 1 / -1;
}

.iaf-listing-logo__item {
  display: flex;
  flex-direction: column;
  border-left: 1px solid var(--iaf-canvas-border-strong);
  padding-left: var(--iaf-listing-logo-separator-pad);
  box-sizing: border-box;
  min-height: 430px;
  min-width: 0;
}

.iaf-listing-logo__content {
  margin-top: auto;
  min-width: 0;
  width: 100%;
  max-width: 100%;
}

.iaf-listing-logo__item-title,
.iaf-listing-logo__item-text {
  max-width: 100%;
  hyphens: none;
  overflow-wrap: normal;
  word-break: normal;
}

.iaf-listing-logo__item-text,
.iaf-listing-logo__item-text p {
  text-wrap: pretty;
}

.iaf-listing-logo__logo-wrap {
  display: flex;
  align-items: flex-start;
  min-height: var(--iaf-listing-logo-logo-height);
  flex-shrink: 0;
}

.iaf-listing-logo__logo {
  width: auto;
  max-width: 100%;
  max-height: var(--iaf-listing-logo-logo-height);
  height: auto;
  display: block;
  object-fit: contain;
}

.iaf-listing-logo__item-title {
  margin: 0;
  color: var(--iaf-canvas-accent);
}

.iaf-listing-logo__item-text {
  margin-top: var(--iaf-listing-logo-title-text-gap);
  color: var(--iaf-canvas-text);
}

.iaf-listing-logo__item-text p {
  margin: 0;
}

.iaf-listing-logo__item-text p + p {
  margin-top: 16px;
}

.iaf-listing-logo__link-btn {
  margin-top: var(--iaf-listing-logo-content-btn-gap);
  flex-shrink: 0;
  width: var(--iaf-listing-logo-link-btn-width);
  height: var(--iaf-listing-logo-link-btn-height);
  border-radius: 4px;
  background: #fff;
  color: var(--iaf-canvas-accent);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.iaf-listing-logo__link-glyph {
  line-height: 1;
  font-size: var(--gt-copy-size);
  font-weight: var(--iaf-listing-logo-link-glyph-weight);
}

/* Surface charte #EEEEEE : filets verticaux noirs (le titre suit --iaf-canvas-heading). */
.iaf-listing-logo--white-surface .iaf-listing-logo__item {
  border-left-color: #1e1e1e;
}

.iaf-listing-logo--white-surface .iaf-listing-logo__item-title {
  color: #2398ff;
}

.iaf-listing-logo--white-surface .iaf-listing-logo__item-text,
.iaf-listing-logo--white-surface .iaf-listing-logo__section-text {
  color: #1e1e1e;
}

@media (max-width: 1023px) {
  :root {
    --iaf-listing-logo-padding-inline: var(--iaf-layout-padding-inline-tablet, 24px);
    --iaf-listing-logo-padding-block: var(--iaf-layout-padding-block-tablet, 64px);
    --iaf-listing-logo-grid-gap: 0;
    --iaf-listing-logo-items-gap: 24px;
    --iaf-listing-logo-logo-title-gap: 30px;
    --iaf-listing-logo-link-btn-width: 28px;
    --iaf-listing-logo-link-btn-height: 28px;
    --iaf-listing-logo-link-glyph-size: 14px;
    --iaf-listing-logo-section-items-gap: clamp(40px, 10vh, 56px);
  }

  /* Sans filet : espace depuis l’extension précédente. Avec filet : 16px via --iaf-ext-divider-gap. */
  .iaf-ext-spacing:not(.iaf-ext-spacing--has-top-divider) > .iaf-listing-logo {
    padding-top: clamp(80px, 14vh, 104px);
  }

  .iaf-listing-logo {
    padding-bottom: clamp(96px, 18vh, 128px);
  }

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

  .iaf-listing-logo__title-wrap,
  .iaf-listing-logo__items {
    grid-column: 1 / -1;
  }

  .iaf-listing-logo__title-wrap {
    margin-bottom: 0;
  }

  .iaf-listing-logo:has(.iaf-listing-logo__title-wrap) .iaf-listing-logo__items {
    margin-top: var(--iaf-listing-logo-section-items-gap);
  }

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

  /* Mobile : logo à gauche, flèche à droite (si lien URL renseigné). */
  .iaf-listing-logo__item--has-link {
    grid-template-columns: 1fr auto;
  }

  .iaf-listing-logo__item {
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: auto 1fr;
    align-items: start;
    min-height: 0;
    border-left: none;
    border-top: none;
    padding-left: 0;
    padding-top: 0;
    margin-top: 0;
  }

  .iaf-listing-logo__logo-wrap {
    grid-column: 1;
    grid-row: 1;
    align-items: center;
    margin-bottom: var(--iaf-listing-logo-logo-title-gap);
  }

  .iaf-listing-logo__item--has-link .iaf-listing-logo__link-btn {
    grid-column: 2;
    grid-row: 1;
    align-self: center;
    justify-self: end;
    margin-top: 0;
    width: var(--iaf-listing-logo-link-btn-width);
    height: var(--iaf-listing-logo-link-btn-height);
  }

  .iaf-listing-logo__link-glyph {
    font-size: var(--iaf-listing-logo-link-glyph-size);
  }

  .iaf-listing-logo__content {
    grid-column: 1 / -1;
    grid-row: 2;
    align-self: end;
    margin-top: 0;
  }

  .iaf-listing-logo__item + .iaf-listing-logo__item {
    margin-top: var(--iaf-ext-divider-gap-before, 32px);
    padding-top: var(--iaf-ext-item-divider-gap, 16px);
    border-top: 1px solid var(--iaf-canvas-border-strong);
  }
}

@media (max-width: 768px) {
  :root {
    --iaf-listing-logo-padding-inline: var(--iaf-layout-padding-inline-phone, 20px);
    --iaf-listing-logo-padding-block: var(--iaf-layout-padding-block-phone, 56px);
    --iaf-listing-logo-items-gap: 20px;
    --iaf-listing-logo-logo-title-gap: 26px;
  }

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

  .iaf-listing-logo {
    padding-bottom: clamp(88px, 16vh, 112px);
  }
}
