/**
 * Organigramme dynamique — mêmes dimensions et espacements que la mise en page Elementor d'origine.
 */

/* Titre hero : exactement 2 lignes (ligne 1 ne doit pas se couper) */
@media (min-width: 768px) {
  .elementor-20871 .elementor-element.elementor-element-e8110d6 {
    width: 65% !important;
  }

  .elementor-20871 .elementor-element.elementor-element-3dfbe20 {
    width: 25% !important;
  }

  .elementor-20871 .elementor-element.elementor-element-e8110d6 > .elementor-element-populated.elementor-column-wrap,
  .elementor-20871 .elementor-element.elementor-element-e8110d6 > .elementor-element-populated.elementor-widget-wrap {
    padding: 0 !important;
  }

  .elementor-20871 .elementor-element.elementor-element-35d84a8 {
    width: 100% !important;
    max-width: none !important;
    --container-widget-width: 100% !important;
  }

  .elementor-20871 .elementor-element.elementor-element-35d84a8 .lspd-title-2l-line:first-child {
    white-space: nowrap;
  }
}

#lspd-organigramme-members .lspd-org-member {
  margin-top: 30px;
  margin-bottom: 30px;
  padding: 0;
}

#lspd-organigramme-members .lspd-org-member .elementor-container {
  align-items: center;
}

#lspd-organigramme-members .lspd-org-member .elementor-column > .elementor-widget-wrap {
  align-content: center;
  align-items: center;
}

/* Colonnes : mêmes proportions que elementor-20871 */
@media (min-width: 768px) {
  #lspd-organigramme-members .lspd-org-col-badge {
    width: 10.605%;
  }

  #lspd-organigramme-members .lspd-org-col-photo {
    width: 27.573%;
  }

  #lspd-organigramme-members .lspd-org-col-info {
    width: 61.486%;
  }
}

/* Insigne (grade) — 212 × 300 px */
#lspd-organigramme-members .lspd-org-badge-wrap {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  width: 100%;
}

#lspd-organigramme-members .lspd-org-badge-frame {
  width: 212px;
  max-width: 100%;
  height: 300px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

#lspd-organigramme-members .lspd-org-badge-frame img {
  display: block;
  width: 212px;
  max-width: 100%;
  height: 300px;
  object-fit: contain;
  object-position: center;
}

/* Photo portrait — 276 × 300 px, recadrée si plus grande */
#lspd-organigramme-members .lspd-org-photo-widget {
  width: 80.496%;
  max-width: 276px;
}

#lspd-organigramme-members .lspd-org-photo-frame {
  width: 276px;
  max-width: 100%;
  height: 300px;
  overflow: hidden;
  display: block;
  flex-shrink: 0;
  background: #f0f0f0;
}

#lspd-organigramme-members .lspd-org-photo-frame img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
}

/* Textes */
#lspd-organigramme-members .lspd-org-member h6.elementor-heading-title {
  color: var(--e-global-color-813c2ca, #ffbb00);
  margin: 0 0 5px;
  padding: 0;
}

#lspd-organigramme-members .lspd-org-member h5.elementor-heading-title {
  color: #05335a;
  margin: 0;
  padding: 0;
}

@media (max-width: 767px) {
  #lspd-organigramme-members .lspd-org-member .elementor-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 16px;
  }

  #lspd-organigramme-members .lspd-org-col-badge,
  #lspd-organigramme-members .lspd-org-col-photo,
  #lspd-organigramme-members .lspd-org-col-info {
    width: 100% !important;
    max-width: 100%;
  }

  #lspd-organigramme-members .lspd-org-member {
    margin-top: 28px;
    margin-bottom: 28px;
  }

  #lspd-organigramme-members .lspd-org-member .elementor-column > .elementor-widget-wrap {
    align-items: center;
    justify-content: center;
    width: 100%;
  }

  #lspd-organigramme-members .lspd-org-badge-wrap {
    justify-content: center;
  }

  #lspd-organigramme-members .lspd-org-badge-frame,
  #lspd-organigramme-members .lspd-org-badge-frame img {
    width: 140px;
    height: 198px;
    margin: 0 auto;
  }

  #lspd-organigramme-members .lspd-org-photo-frame {
    width: 200px;
    height: 218px;
    margin: 0 auto;
  }

  #lspd-organigramme-members .lspd-org-photo-widget {
    width: 100%;
    max-width: 200px;
    margin: 0 auto;
  }

  #lspd-organigramme-members .lspd-org-col-info {
    padding: 0 12px;
  }

  #lspd-organigramme-members .lspd-org-member h6.elementor-heading-title,
  #lspd-organigramme-members .lspd-org-member h5.elementor-heading-title {
    text-align: center;
    word-break: break-word;
  }
}
