/* Team portraits + responsive desktop geometry — 2026-09-21 */
.team-card {
  background: transparent;
  overflow: hidden;
}

.team-photo {
  position: relative;
  overflow: hidden;
  background: transparent;
}

.team-photo img {
  position: absolute;
  left: 50%;
  bottom: 0;
  top: auto;
  right: auto;
  width: auto;
  height: 100%;
  max-width: none;
  max-height: none;
  object-fit: contain;
  object-position: center bottom;
  transform: translateX(-50%);
  filter: none;
  transition: transform .45s var(--ease);
}

.team-card:hover .team-photo img,
.team-card:focus-within .team-photo img {
  transform: translateX(-50%) translateY(-3px);
  filter: none;
}

.team-info {
  margin-top: 0;
  background: #fff;
  border: 1px solid var(--revamp-line);
}

/* Keep the desktop composition all the way down to tablet width.
   Everything scales with the available viewport instead of switching layout early. */
@media (min-width: 768px) {
  .people-section {
    --team-portrait-h: clamp(118px, 14vw, 220px);
    --team-info-min: clamp(78px, 8vw, 140px);
    display: grid !important;
    grid-template-columns: minmax(0, .78fr) minmax(0, 1.22fr) !important;
    grid-template-rows: auto auto !important;
    align-items: stretch !important;
    gap: clamp(16px, 2.2vw, 42px) clamp(14px, 2.2vw, 42px) !important;
    padding: clamp(44px, 5.2vw, 100px) clamp(16px, 3vw, 70px) !important;
  }

  .people-heading {
    position: static !important;
    top: auto !important;
    grid-column: 1 !important;
    grid-row: 1 !important;
    display: grid !important;
    align-items: end !important;
    gap: clamp(14px, 1.5vw, 28px) !important;
    min-width: 0 !important;
  }

  .people-heading h2 {
    max-width: none !important;
    font-size: clamp(36px, 4.5vw, 88px) !important;
    line-height: .95 !important;
  }

  .people-heading > p {
    max-width: 36ch !important;
    font-size: clamp(14px, 1.25vw, 24px) !important;
    line-height: 1.46 !important;
  }

  .team-grid {
    grid-column: 2 !important;
    grid-row: 1 / 3 !important;
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    grid-template-rows: repeat(2, auto) !important;
    grid-auto-rows: auto !important;
    align-self: start !important;
    align-content: start !important;
    gap: clamp(6px, .75vw, 14px) !important;
    min-width: 0 !important;
    width: 100% !important;
    height: auto !important;
    margin: 0 !important;
  }

  .team-card,
  .team-brand-tile {
    min-width: 0 !important;
    height: auto !important;
  }

  .team-card {
    display: flex !important;
    flex-direction: column !important;
    gap: 0 !important;
  }

  .team-photo {
    flex: 0 0 var(--team-portrait-h) !important;
    width: 100% !important;
    height: var(--team-portrait-h) !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 0 !important;
    overflow: hidden !important;
    background: transparent !important;
  }

  .team-photo img {
    inset: auto auto 0 50% !important;
    width: auto !important;
    height: 100% !important;
    max-width: none !important;
    max-height: none !important;
    transform: translateX(-50%) !important;
  }

  .team-card:hover .team-photo img,
  .team-card:focus-within .team-photo img {
    transform: translateX(-50%) translateY(-3px) !important;
  }

  .team-info,
  .team-card:nth-child(5) .team-info,
  .team-card:nth-child(6) .team-info,
  .team-card:nth-child(7) .team-info {
    flex: 0 0 auto !important;
    min-height: var(--team-info-min) !important;
    margin: 0 !important;
    padding: clamp(9px, 1vw, 18px) clamp(8px, .8vw, 14px) !important;
    border: 1px solid var(--revamp-line) !important;
    border-radius: clamp(10px, 1vw, 18px) !important;
  }

  .team-info h3 {
    font-size: clamp(13px, 1.05vw, 21px) !important;
    line-height: 1.08 !important;
    overflow-wrap: anywhere !important;
  }

  .team-info p {
    margin-top: clamp(5px, .5vw, 9px) !important;
    font-size: clamp(11px, .82vw, 16px) !important;
    line-height: 1.32 !important;
    overflow-wrap: anywhere !important;
  }

  .team-brand-tile {
    position: relative !important;
    top: auto !important;
    align-self: stretch !important;
    display: grid !important;
    place-items: center !important;
    min-height: calc(var(--team-portrait-h) + var(--team-info-min)) !important;
    padding: clamp(12px, 1.2vw, 18px) !important;
  }

  .team-brand-tile img {
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
  }

  .people-network {
    position: static !important;
    top: auto !important;
    grid-column: 1 !important;
    grid-row: 2 !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    align-self: start !important;
    gap: clamp(10px, 1.2vw, 24px) !important;
    min-width: 0 !important;
    width: 100% !important;
    height: auto !important;
    margin: 0 !important;
  }

  .network-group {
    min-width: 0 !important;
    padding: clamp(12px, 1.5vw, 24px) !important;
  }

  .network-group h3 {
    margin-bottom: clamp(12px, 1.3vw, 25px) !important;
    font-size: clamp(14px, 1.15vw, 20px) !important;
    line-height: 1.2 !important;
  }

  .network-logos {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: clamp(7px, .7vw, 12px) !important;
    min-width: 0 !important;
  }

  .network-logos a {
    min-width: 0 !important;
    min-height: clamp(64px, 7.5vw, 100px) !important;
    padding: clamp(8px, 1.2vw, 18px) !important;
  }

  .network-logos img {
    width: auto !important;
    max-width: 100% !important;
    max-height: clamp(34px, 4vw, 58px) !important;
  }

  .network-siemens {
    gap: clamp(5px, .5vw, 12px) !important;
  }

  .network-siemens span {
    font-size: clamp(11px, .9vw, 18px) !important;
    line-height: 1.15 !important;
    text-align: center !important;
  }
}

/* Phone layout remains intentionally stacked. */
@media (max-width: 767px) {
  .team-photo img {
    max-width: none;
  }

  .team-info {
    margin-top: 0;
  }
}
