// ==========================================================================
// Member List Block
// Vertically stacked member profiles: photo + name, position, bio, link
//
// OVERRIDE PATTERN:
// ✓  .b-member-list .btn { ... }
// ✗  .btn--member (never add block-specific modifiers to components)
// ==========================================================================

.b-member-list {
  $self: &;

  // ==========================================================================
  // Item list
  // ==========================================================================
  &__header {
    @include media-breakpoint-up(md) {
      margin-bottom: 3rem;
    }
    h2.section-title {
      font-size: $h2-font-size;
    }
  }
  // Standard layout: row-cols-1, border separator between col wrappers
  &__items {
    &:not(&--two-cols) {
      > .col {
        padding-top: $spacer * 2.5;
        padding-bottom: $spacer * 1.5;

        &:first-child {
          padding-top: 0;
        }

        &:last-child {
          border-bottom: none;
          padding-bottom: 0;
        }
      }

      // Image is always first on mobile — only body col (last child) gets top padding when stacked
      #{$self}__item > :last-child {
        @include media-breakpoint-down(xl) {
          // padding-top: $tm-column-padding-top-sm;
        }

        @include media-breakpoint-down(md) {
          // padding-top: $tm-column-padding-top-sm;
        }
      }
    }

    // ==========================================================================
    // Two-columns layout
    // Bootstrap row-cols handles the outer grid; no separator lines needed
    // ==========================================================================
    &--two-cols {
      .c-media-grid {
        @include media-breakpoint-up(sm) {
          max-width: none;
        }
      }

      #{$self}__item {
        --member-item-split-padding: 0;

        @include media-breakpoint-up(sm) {
          --member-item-split-padding: 1.5rem;
        }
        @include media-breakpoint-up(lg) {
          --member-item-split-padding: 1rem;
        }

        @include media-breakpoint-up(xl) {
          --member-item-split-padding: 1rem;
        }

        @include media-breakpoint-up(xxl) {
          --member-item-split-padding: 1.5rem;
        }
      }

      #{$self}__name {
        @include media-breakpoint-up(sm) {
          margin-top: 0;
        }
        @include media-breakpoint-up(xl) {
          margin-top: 1rem;
        }
      }
      #{$self}__text {
        @include media-breakpoint-up(md) {
          margin-top: 0.25rem;
        }
      }

      #{$self}__action {
        margin-top: 0;
        justify-content: flex-start;
      }

      #{$self}__position {
        margin: 0 0 0.5rem;
      }
    }
  }

  // ==========================================================================
  // Article col-gap — matches col-gap-md from text-media (xl+: side by side)
  // ==========================================================================
  &__item {
    @include media-breakpoint-up(sm) {
      --member-item-split-padding: 1.5rem;
      > :first-child {
        padding-right: var(--member-item-split-padding);
      }

      > :last-child {
        padding-left: var(--member-item-split-padding);
      }
    }
    @include media-breakpoint-up(lg) {
      --member-item-split-padding: 2rem;
    }
    @include media-breakpoint-up(xl) {
      --member-item-split-padding: 2.5rem;
    }

    @include media-breakpoint-up(xxl) {
      --member-item-split-padding: 3.5rem;
    }
  }
  .container-narrow {
    #{$self}__item {
      @include media-breakpoint-up(sm) {
        --member-item-split-padding: 1.5rem;
        > :first-child {
          padding-right: var(--member-item-split-padding);
        }

        > :last-child {
          padding-left: var(--member-item-split-padding);
        }
      }
      @include media-breakpoint-up(lg) {
        --member-item-split-padding: 2rem;
      }
      @include media-breakpoint-up(xl) {
        --member-item-split-padding: 2rem;
      }

      @include media-breakpoint-up(xxl) {
        --member-item-split-padding: 2rem;
      }
    }
  }

  // ==========================================================================
  // Image column — uses c-media-grid component
  // ==========================================================================
  .c-media-grid {
    @include media-breakpoint-down(xl) {
      max-width: 220px;
    }

    // Default (stretch): fill column height — aspect-ratio unset, relies on align-items-stretch
    &__item {
      aspect-ratio: unset;
    }

    // No-stretch: portrait framing with top-aligned face
    &.c-media-grid--no-stretch .c-media-grid__item {
      img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: top center;
      }
    }
  }

  &__image--placeholder {
    width: 100%;
    aspect-ratio: 3 / 4;
    background-color: $primary-15;
  }

  // ==========================================================================
  // Content column
  // ==========================================================================
  &__body {
    display: flex;
    flex-direction: column;
    height: 100%;
    @include media-breakpoint-down(sm) {
      padding-top: 1rem;
    }
  }

  &__name {
    color: $primary;
    font-size: $h3-font-size;
    font-weight: $font-weight-bold;
    margin: 1rem 0 $spacer * 0.5;
    @include media-breakpoint-up(sm) {
      margin: 2rem 0 $spacer * 0.75;
    }
    @include media-breakpoint-up(xl) {
      font-size: $member-name-font-size-xl;
      margin-bottom: 0.75rem;
    }
  }

  &__position {
    font-size: $font-size-sm;
    font-weight: $font-weight-semibold;
    margin: 0 0 $spacer * 1;
    // color: $primary;
  }

  &__text {
    flex: 1;
    margin-bottom: $spacer * 1.5;
    line-height: 1.6;
    p:last-child {
      margin-bottom: 0;
    }
  }

  &__action {
    display: flex;
    justify-content: flex-start;
    // margin-top: 1rem;
  }

  // ==========================================================================
  // Link style (two-columns layout)
  // Plain text link, right-aligned — replaces btn-primary in two-cols
  // ==========================================================================
  &__link {
    font-size: $font-size-base;
    font-weight: $font-weight-extrabold;
  }
}
