/* Meet the Team Section Styles */

/* HERO SECTION */

.mtt-hero-section {
  position: relative;
  background-color: #0283bf;
  background-image: url('https://fellowshiphall.com/wp-content/uploads/2026/01/hero-bg-scaled.png');
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
  padding: 80px 176px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  align-items: center;
  justify-content: center;
  max-height: 395px;
  height: 100%;
  overflow: hidden;
}

.mtt-hero-content {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  gap: 24px;
  align-items: flex-start;
  width: 100%;
  padding: 24px 0;
  text-align: center;
}

.mtt-heading-group {
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: 100%;
  line-height: 1.3;
  font-style: normal;
}

.mtt-subheading {
  font-size: 24px;
  color: white;
  margin: 0;
  font-weight: 600;
}

.mtt-main-heading {
  font-size: 48px;
  color: white;
  margin: 0;
  font-weight: 600;
}

.mtt-description {
  font-size: 24px;
  color: #f3f3f3;
  margin: 0;
  line-height: 1.62;
  letter-spacing: -0.24px;
  width: 100%;
  font-weight: 400;
}

/* LEADERSHIP TEAM SECTION */

.mtt-leadership-section {
  position: relative;
  padding: 80px 176px;
  display: flex;
  flex-direction: column;
  gap: 48px;
  align-items: center;
  width: 100%;
}

.mtt-section-title {
  font-size: 32px;
  color: #031322;
  font-weight: 600;
  text-align: center;
  margin: 0;
  line-height: 1.3;
  max-width: 1088px;
}

.mtt-team-grid {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 1088px;
}

.mtt-featured-member {
  display: flex;
  gap: 0;
  height: 478px;
  width: 100%;
  border-radius: 16px;
  overflow: hidden;
  margin-bottom: 16px;
}

.mtt-member-headshot {
  position: relative;
  width: 352px;
  height: 478px;
  flex-shrink: 0;
  border-radius: 16px 0 0 16px;
  overflow: hidden;
  background: linear-gradient(90deg, #0283bf 0%, #0283bf 100%);
}

.mtt-member-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.mtt-member-info {
  flex: 1;
  background-color: #f3f3f3;
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 24px;
  border-radius: 0 16px 16px 0;
  overflow-y: auto;
}

.mtt-member-top {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.mtt-member-title-badge {
  display: inline-block;
  background-color: #0283bf;
  color: white;
  padding: 4px 8px;
  border-radius: 4px;
  font-size: 16px;
  font-weight: 600;
  width: fit-content;
  font-family: 'Franie', sans-serif;
}

.mtt-member-details {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.mtt-member-name {
  font-size: 32px;
  color: #031322;
  margin: 0;
  font-weight: 600;
  line-height: 1.3;
  font-family: 'Franie', sans-serif;
}

.mtt-member-credentials {
  font-size: 18px;
  color: #031322;
  margin: 0;
  font-weight: 600;
  line-height: 1.3;
  font-family: 'Franie', sans-serif;
}

.mtt-member-bio {
  flex: 1;
  background-color: white;
  border: 3px solid white;
  padding: 16px;
  border-radius: 8px;
  -ms-overflow-style: none;
  /* Internet Explorer and Edge */
  scrollbar-width: none;
  /* Firefox */
  overflow-y: scroll;
  /* Ensures content is scrollable */
}

.mtt-member-bio::-webkit-scrollbar {
  display: none;
  /* Chrome, Safari, Opera, older Edge */
  width: 0px;
  /* Optional: makes scrollbar transparent in width */
  background: transparent;
  /* Optional: make scrollbar transparent */
}

.mtt-member-bio p {
  font-size: 16px;
  color: #2f2f2f;
  line-height: 1.62;
  letter-spacing: -0.16px;
  margin: 0 0 1em 0;
  font-family: 'Franie', sans-serif;
}

.mtt-member-bio p:last-child {
  margin-bottom: 0;
}

.mtt-team-cards {
  display: flex;
  flex-direction: row;
  gap: 16px;
  width: 100%;
  flex-wrap: wrap;
}

.mtt-team-card {
  position: relative;
  width: 352px;
  height: 352px;
  background-color: #0283bf;
  border-radius: 16px;
  overflow: hidden;
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  align-items: flex-end;
  justify-content: flex-end;
}

.mtt-card-headshot {
  position: absolute;
  top: 0;
  left: 0;
  width: 352px;
  height: 352px;
  border-radius: 16px;
  overflow: hidden;
  z-index: 1;
}

.mtt-card-headshot::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(180deg, rgba(3, 19, 34, 0.00) 50%, rgba(3, 19, 34, 0.50) 100%);
  pointer-events: none;
  z-index: 2;
}

.mtt-card-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform 0.3s ease;
}

.mtt-card-info {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: row;
  gap: 8px;
  align-items: flex-end;
  width: 100%;
  color: white;
  justify-content: space-between;
}

.mtt-card-copy {
  display: flex;
  flex-direction: column;
  align-items: start;
}

.mtt-card-name {
  font-size: 24px;
  color: white;
  margin: 0;
  font-weight: 600;
  line-height: 1.3;
  font-family: 'Franie', sans-serif;
}

.mtt-card-credentials {
  font-size: 15px;
  color: white;
  margin: 0;
  font-weight: 400;
  line-height: 1.3;
  font-family: 'Franie', sans-serif;
}

.mtt-card-title {
  font-size: 16px;
  color: white;
  margin: 0;
  font-weight: 600;
  line-height: 1.3;
  font-family: 'Franie', sans-serif;
}

.mtt-card-button {
  font-size: 32px;
  color: white;
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  opacity: 0.5;
  margin-top: auto;
  height: 38px;
}

.mtt-team-card:hover .mtt-card-button {
  opacity: 1;

}

.mtt-team-card:hover .mtt-card-image {
  transform: scale(1.10);
}

.mtt-card-button:focus,
.mtt-card-button:focus-visible {
  outline: none;
}

/* SHOW/HIDE SYSTEM */

/* Team cards row container */
.mtt-team-cards-row {
  display: flex;
  gap: 16px;
  justify-content: flex-start;
  width: 100%;
  margin-bottom: 16px;
  flex-wrap: wrap;
}

/* Card dimming when another is active */
.mtt-team-card.mtt-card--dimmed .mtt-card-headshot::after {
  background: linear-gradient(180deg, rgba(3, 19, 34, 0.00) 50%, rgba(3, 19, 34, 0.50) 100%), #031322;
  opacity: 0.75;
}

/* Card active state */
.mtt-team-card.mtt-card--active {
  /* No visual change needed, button shows minus icon via JS */
}

/* Bio container styles */
.mtt-bio-container {
  background-color: #f3f3f3;
  border-radius: 16px;
  padding: 0px;
  flex-direction: column;
  gap: 24px;
  width: 100%;
  margin-bottom: 0px;
  max-height: 0;
  overflow: hidden;
  transform: translateY(-20px);
  opacity: 0;
  pointer-events: none;
  position: relative;
  transition: max-height 0.4s ease, margin-bottom 0.4s ease, padding 0.4s ease, transform 0.4s ease, opacity 0.4s ease;
}

.mtt-bio-container.mtt-bio-container--open {
  max-height: 600px;
  transform: translateY(0);
  opacity: 1;
  pointer-events: auto;
  padding: 24px;
  margin-bottom: 24px;
}

.mtt-bio-content {
  display: flex;
  flex-direction: column;
  gap: 24px;
  opacity: 0;
  position: absolute;
  width: 100%;
  pointer-events: none;
  transition: opacity 0.3s ease;
}

.mtt-bio-content.mtt-bio-content--active {
  opacity: 1;
  position: static;
  pointer-events: auto;
}

.mtt-bio-header {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.mtt-member-title-badge {
  background-color: #0283bf;
  color: white;
  padding: 4px 8px;
  border-radius: 4px;
  font-size: 14px;
  font-weight: 600;
  width: fit-content;
  font-family: 'Franie', sans-serif;
}

.mtt-bio-name-group {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.mtt-bio-name {
  font-size: 32px;
  font-weight: 600;
  color: #031322;
  margin: 0;
  font-family: 'Franie', sans-serif;
}

.mtt-bio-credentials {
  font-size: 18px;
  color: #031322;
  margin: 0;
  font-weight: 400;
  font-family: 'Franie', sans-serif;
}

.mtt-bio-text {
  font-size: 16px;
  line-height: 1.62;
  color: #2f2f2f;
  letter-spacing: -0.16px;
  width: 95%;
}

.mtt-bio-text p {
  margin: 0 0 16px 0;
  font-family: 'Franie', sans-serif;
}

.mtt-bio-text p:last-child {
  margin-bottom: 0;
}

/* CORE TEAM SECTION */

.ctm-core-team-section {
  position: relative;
  background-color: #f3f3f3;
  padding: 80px 176px;
  display: flex;
  flex-direction: column;
  gap: 48px;
  align-items: center;
  width: 100%;
}

.ctm-section-title {
  font-size: 32px;
  color: #031322;
  font-weight: 600;
  text-align: center;
  margin: 0;
  line-height: 1.3;
  font-family: 'Franie', sans-serif;
}

.ctm-team-grid {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  width: 100%;
  max-width: 1088px;
  gap: 16px;
}

.ctm-team-cards-row {
  display: contents;
}

/* All cards maintain equal width - 4 per row */
.ctm-team-card {
  position: relative;
  flex: 0 0 calc(25% - 12px);
  aspect-ratio: 30 / 40;
  border-radius: 16px;
  overflow: hidden;
  padding: 16px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: flex-start;
}

.ctm-card-headshot {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border-radius: 16px;
  overflow: hidden;
  z-index: 1;
}

.ctm-card-headshot::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(180deg, rgba(3, 19, 34, 0) 50%, rgba(3, 19, 34, 0.66) 100%);
  mix-blend-mode: multiply;
  z-index: 2;
}

.ctm-card-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 0px;
}

.ctm-card-info {
  position: relative;
  z-index: 3;
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: 100%;
}

.ctm-card-name {
  font-size: 24px;
  color: white;
  margin: 0;
  font-weight: 600;
  line-height: 1.3;
  font-family: 'Franie', sans-serif;
}

.ctm-card-title {
  font-size: 16px;
  color: white;
  margin: 0;
  font-weight: 600;
  line-height: 1.3;
  font-family: 'Franie', sans-serif;
}

/* BOARD OF DIRECTORS SECTION */

.bod-board-section {
  position: relative;
  background-color: #f3f3f3;
  padding: 80px 176px;
  display: flex;
  flex-direction: column;
  gap: 48px;
  align-items: center;
  width: 100%;
}

.bod-section-title {
  font-size: 32px;
  color: #031322;
  font-weight: 600;
  text-align: center;
  margin: 0;
  line-height: 1.3;
  font-family: 'Franie', sans-serif;
  max-width: 1088px;
}

.bod-members-grid {
  display: flex;
  gap: 32px;
  justify-content: center;
  width: 100%;
  max-width: 1088px;
}

.bod-members-column {
  flex: 1;
  list-style: disc;
  margin: 0;
  padding-left: 1.5em;
}

.bod-member {
  display: list-item;
  margin-bottom: 12px;
  font-size: 16px;
  color: #2f2f2f;
  line-height: 1.62;
  letter-spacing: -0.16px;
  list-style: disc;
}

.bod-member:last-child {
  margin-bottom: 0;
}

.bod-box {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
}

.bod-member-name {
  font-weight: 600;
  font-family: 'Franie', sans-serif;
}

.bod-member-role {
  font-weight: 400;
  font-family: 'Franie', sans-serif;
}

/* MOBILE CAROUSEL STYLES */

/* Hide mobile carousel by default (desktop) */
.mtt-mobile-carousel {
  display: none;
}

/* Hide mobile nav by default */
.mtt-mobile-nav {
  display: none;
}

/* Hide mobile core team carousel by default */
.ctm-mobile-carousel {
  display: none;
}

.ctm-mobile-nav {
  display: none;
}

/* RESPONSIVE DESIGN */

/* Desktop - 1280px and below */
@media (max-width: 1280px) {

  .bod-board-section, .ctm-core-team-section, .mtt-leadership-section {
    padding: 48px 24px;
  }

  /* Leadership team cards - reduce to fit 3 per row */
  /* .mtt-team-card {
    width: 298px;
    height: 298px;
  }

  .mtt-card-headshot {
    width: 298px;
    height: 298px;
  } */
}

/* Tablet - 481px to 1439px */
@media (min-width: 481px) {

  /* Leadership team cards - 3 columns, sized to fit */
  .mtt-team-card {
    width: calc(33.333% - 11px);
    height: 320px;
  }

  .mtt-card-headshot {
    width: 100%;
    height: 320px;
  }

  /* Core team cards - 3 columns */
  .ctm-team-card {
    flex: 0 0 calc(33.333% - 11px);
  }
}

/* Mobile - 480px and below */
@media (max-width: 480px) {

  .mtt-member-bio {
    height: 100%;
    max-height: 255px;
    
  }

  .mtt-bio-text {
    font-size: 14px;
    width: 100%;
  }

  .mtt-member-bio p {
    font-size: 14px;
  }
	
	.mtt-member-image {
		object-position: top center;
	}

  /* Hide desktop grid elements on mobile */
  .mtt-team-cards-row,
  .mtt-bio-container {
    display: none;
  }

  /* Show mobile carousel */
  .mtt-mobile-carousel {
    display: block;
    width: 100%;
    margin-top: 16px;
  }

  /* Horizontal scroll container */
  .mtt-mobile-scroll-container {
    display: flex;
    flex-direction: row;
    gap: 16px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
    padding: 0 24px 16px 24px;
    /* Hide scrollbar but keep functionality */
    scrollbar-width: none;
    -ms-overflow-style: none;
  }

  .mtt-mobile-scroll-container::-webkit-scrollbar {
    display: none;
  }

  /* Card wrapper - contains card and bio drawer */
  .mtt-mobile-card-wrapper {
    flex: 0 0 calc(100vw - 48px);
    scroll-snap-align: center;
    display: flex;
    flex-direction: column;
    gap: 0;
  }

  /* Reset card sizing for mobile */
  .mtt-mobile-card-wrapper .mtt-team-card {
    width: 100%;
    height: auto;
    aspect-ratio: 1 / 1;
    flex-shrink: 0;
  }

  .mtt-mobile-card-wrapper .mtt-card-headshot {
    width: 100%;
    height: 100%;
  }

  /* Disable image zoom on mobile */
  .mtt-mobile-card-wrapper .mtt-team-card:hover .mtt-card-image,
  .mtt-mobile-card-wrapper .mtt-team-card .mtt-card-image {
    transform: none;
  }

  /* Mobile bio drawer - hidden by default */
  .mtt-mobile-bio-drawer {
    background-color: #f3f3f3;
    border-radius: 0 0 16px 16px;
    padding: 0;
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    transition: max-height 0.4s ease, padding 0.4s ease, opacity 0.3s ease, margin-top 0.4s ease;
    margin-top: 0;
  }

  /* When card wrapper is active, show the bio drawer */
  .mtt-mobile-card-wrapper.mtt-mobile-card--active .mtt-mobile-bio-drawer {
    max-height: 255px;
    padding: 24px;
    opacity: 1;
    margin-top: 0px;
    -ms-overflow-style: none;
    scrollbar-width: none;
    overflow-y: scroll;
  }

  /* Adjust card border radius when bio is open */
  .mtt-mobile-card-wrapper.mtt-mobile-card--active .mtt-team-card {
    border-radius: 16px 16px 0 0;
  }

  .mtt-mobile-card-wrapper.mtt-mobile-card--active .mtt-card-headshot {
    border-radius: 16px 16px 0 0;
  }

  /* Mobile button styling */
  .mtt-mobile-card-button {
    font-size: 32px;
    color: white;
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    opacity: 0.5;
    margin-top: auto;
    height: 38px;
    transition: opacity 0.3s ease;
  }

  .mtt-mobile-card-wrapper.mtt-mobile-card--active .mtt-mobile-card-button {
    opacity: 1;
  }

  /* Mobile Navigation Arrows - show on mobile */
  .mtt-mobile-nav {
    display: flex !important;
    gap: 48px;
    align-items: center;
    justify-content: center;
    padding: 16px 24px 0 24px;
  }

  .mtt-mobile-nav-btn {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background-color: #0283bf;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    transition: background-color 0.2s ease, opacity 0.2s ease;
  }

  .mtt-mobile-nav-btn:hover {
    background-color: #026a9c;
  }

  .mtt-mobile-nav-btn:disabled {
    opacity: 0.4;
    cursor: not-allowed;
  }

  .mtt-mobile-nav-btn svg {
    width: 16px;
    height: 16px;
  }

  /* Hero section mobile */
  .mtt-hero-section {
    padding: 48px 24px;
  }

  .mtt-leadership-section {
    padding: 48px 0px;
  }

  .mtt-team-grid {
    padding: 0px 24px;
  }

  .mtt-featured-member {
    height: auto;
    flex-direction: column;
  }

  .mtt-member-headshot {
    width: 100%;
    height: 352px;
    border-radius: 16px 16px 0 0;
  }

  .mtt-member-info {
    border-radius: 0 0 16px 16px;
  }

  .bod-board-section {
    padding: 48px 24px;
  }

  .bod-section-title {
    font-size: 24px;
  }

  .bod-members-grid {
    flex-direction: column;
    align-items: center;
    gap: 0;
  }

  .bod-members-column {
    list-style: none;
    padding-left: 0;
    margin: 0;
    width: 100%;
  }

  .bod-member {
    list-style: none;
    text-align: center;
    margin-bottom: 16px;
  }

  .bod-member:last-child {
    margin-bottom: 16px;
  }

  .bod-box {
    flex-direction: row;
    justify-content: center;
    gap: 0;
  }

  .bod-member-name {
    font-weight: 700;
    margin-right: 4px;
  }

  .bod-member-role {
    font-weight: 300;
  }

  /* Core team section mobile */
  .ctm-core-team-section {
    padding: 48px 0px;
  }

  .ctm-section-title {
    padding: 0 24px;
  }

  /* Hide desktop grid on mobile */
  .ctm-team-grid {
    display: none;
  }

  /* Show mobile core team carousel */
  .ctm-mobile-carousel {
    display: block;
    width: 100%;
  }

  /* Horizontal scroll container */
  .ctm-mobile-scroll-container {
    display: flex;
    flex-direction: row;
    gap: 16px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
    padding: 0 24px 16px 24px;
    scrollbar-width: none;
    -ms-overflow-style: none;
  }

  .ctm-mobile-scroll-container::-webkit-scrollbar {
    display: none;
  }

  /* Mobile card styling */
  .ctm-mobile-card {
    flex: 0 0 calc(100vw - 48px);
    scroll-snap-align: center;
    position: relative;
    aspect-ratio: 260 / 347;
    border-radius: 16px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 16px;
  }

  .ctm-mobile-card .ctm-card-headshot {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border-radius: 16px;
    overflow: hidden;
    z-index: 1;
  }

  .ctm-mobile-card .ctm-card-headshot::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(180deg, rgba(3, 19, 34, 0) 50%, rgba(3, 19, 34, 0.66) 100%);
    mix-blend-mode: multiply;
    z-index: 2;
  }

  .ctm-mobile-card .ctm-card-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top center;
  }

  .ctm-mobile-card .ctm-card-info {
    position: relative;
    z-index: 3;
    display: flex;
    flex-direction: column;
    gap: 8px;
  }

  .ctm-mobile-card .ctm-card-name {
    font-size: 24px;
    color: white;
    margin: 0;
    font-weight: 600;
    line-height: 1.3;
    font-family: 'Franie', sans-serif;
  }

  .ctm-mobile-card .ctm-card-title {
    font-size: 16px;
    color: white;
    margin: 0;
    font-weight: 600;
    line-height: 1.3;
    font-family: 'Franie', sans-serif;
  }

  /* Mobile Core Team Navigation Arrows */
  .ctm-mobile-nav {
    display: flex !important;
    gap: 48px;
    align-items: center;
    justify-content: center;
    padding: 16px 24px 0 24px;
  }

  .ctm-mobile-nav-btn {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background-color: #0283bf;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    transition: background-color 0.2s ease, opacity 0.2s ease;
  }

  .ctm-mobile-nav-btn:hover {
    background-color: #026a9c;
  }

  .ctm-mobile-nav-btn:disabled {
    opacity: 0.4;
    cursor: not-allowed;
  }

  .ctm-mobile-nav-btn:focus, .ctm-mobile-nav-btn:focus-within, .mtt-mobile-nav-btn:focus, .mtt-mobile-nav-btn:focus-within {
    outline: none;
  }

  .ctm-mobile-nav-btn svg {
    width: 16px;
    height: 16px;
  }
}