/* Team Grid Section Component Styles */

.team-grid-section {
  width: 100%
}

.team-grid-title {
  margin-top: 2rem;
  margin-bottom: 2rem;
  text-align: center;
  font-size: var(--font-h2);
  line-height: var(--line-height);
  letter-spacing: var(--letter-spacing);
  font-weight: var(--font-weight-bold);
  color: var(--color-text)
}

.team-grid-container {
  width: 100%
}

/* Grid layouts based on member count - Direct children are profile cards */

.team-grid-members {
  width: 100%
}

/* 1 item - center aligned using flex */

.team-grid-members.members-1 {
  display: flex;
  justify-content: center
}

/* 2 items - space around using flex */

.team-grid-members.members-2 {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-around;
  gap: 1.5rem
}

/* 3 or more items - responsive grid */

.team-grid-members.members-3-plus {
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  gap: 1.5rem
}

@media (min-width: 768px) {
  .team-grid-members.members-3-plus {
    grid-template-columns: repeat(2, minmax(0, 1fr))
  }
}

@media (min-width: 1024px) {
  .team-grid-members.members-3-plus {
    grid-template-columns: repeat(3, minmax(0, 1fr))
  }
}

/* Profile card within team grid - inherits from rs_component_profile_card */

.team-grid-members .profile-card {
  width: 100%;
  max-width: 350px
}

/* For 1 and 2 member layouts, limit card width */

.team-grid-members.members-1 .profile-card,
.team-grid-members.members-2 .profile-card {
  max-width: 300px
}

/* Ensure profile cards maintain their distinctive appearance */

.team-grid-members .profile-card .profile-image-container {
  position: relative;
  aspect-ratio: 1 / 1;
  height: 100%;
  width: 100%;
  overflow: hidden;
  border-radius: 30px
}

.team-grid-members .profile-card .profile-image {
  height: 100%;
  width: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 30px
}

.team-grid-members .profile-card .profile-image img {
  margin-left: auto;
  margin-right: auto;
  max-width: 90%
}

.team-grid-members .profile-card .profile-info-box {
  position: absolute;
  bottom: 0px;
  left: 0px;
  right: 0px;
  z-index: 10;
  display: flex;
  height: auto;
  min-height: 112px;
  width: 100%;
  flex-direction: column;
  justify-content: center
}

.team-grid-members .profile-card .profile-info-box > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.625rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.625rem * var(--tw-space-y-reverse))
}

.team-grid-members .profile-card .profile-info-box {
  border-radius: 20px;
  background-color: var(--color-text);
  padding: 1.25rem;
  --tw-shadow: 4px 4px 30px 0px rgba(0,0,0,0.1);
  --tw-shadow-colored: 4px 4px 30px 0px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
  --tw-backdrop-blur: blur(10px);
  -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)
}

.team-grid-members .profile-card .profile-name {
  text-align: center;
  font-size: var(--font-h4);
  line-height: var(--line-height);
  letter-spacing: var(--letter-spacing);
  font-weight: var(--font-weight-regular);
  font-weight: var(--font-weight-bold);
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1))
}

.team-grid-members .profile-card .profile-role {
  text-align: center;
  font-size: var(--font-p);
  line-height: var(--line-height);
  letter-spacing: var(--letter-spacing);
  font-weight: var(--font-weight-regular);
  line-height: 150%;
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1))
}

/* PDF Download Section */

.team-grid-download-section {
  margin-top: 3rem;
  display: flex;
  justify-content: center
}

.team-grid-download-button {
  display: inline-flex;
  align-items: center;
  border-radius: 45px;
  border-width: 1px;
  border-color: transparent;
  background-color: var(--color-primary-100);
  padding-left: 1.5rem;
  padding-right: 1.5rem;
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
  font-size: 1rem;
  line-height: 1.5rem;
  font-weight: 500;
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 200ms
}

.team-grid-download-button:hover {
  background-color: var(--color-primary-300)
}

.team-grid-download-button:focus {
  background-color: var(--color-primary-300);
  outline: 2px solid transparent;
  outline-offset: 2px;
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
  --tw-ring-offset-width: 2px
}

/* Separator */

.team-grid-separator {
  margin-top: 2rem;
  height: 1px;
  width: 100%;
  background-color: var(--color-gray-200)
}

/* Responsive adjustments */

@media (max-width: 768px) {
  .team-grid-title {
    margin-bottom: 1.5rem;
    font-size: var(--font-h3);
    line-height: var(--line-height);
    letter-spacing: var(--letter-spacing);
    font-weight: var(--font-weight-semi-bold)
  }

  .team-grid-members.members-2 .field__items {
    flex-direction: column;
    align-items: center
  }

  .team-grid-download-section {
    margin-top: 2rem
  }
}

@media (max-width: 1024px) and (min-width: 769px) {
  .team-grid-members.members-3-plus .field__items {
    grid-template-columns: repeat(2, minmax(0, 1fr))
  }
}
