/* Grid: desktop N cols → tablet 2 → phone 1 */
/* --- Centered, responsive row using a fixed card width --- */
.plteam-grid {
  /* layout */
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 2rem;

  /* column math */
  --card-w: 260px;     /* tweak to taste */
  --cols: 4;           /* default, overridden by modifier class below */
  max-width: calc(var(--cols) * var(--card-w) + (var(--cols) - 1) * 2rem);
  margin-left: auto;
  margin-right: auto;
}

/* map your shortcode columns to --cols */
.plteam-cols-1 { --cols: 1; }
.plteam-cols-2 { --cols: 2; }
.plteam-cols-3 { --cols: 3; }
.plteam-cols-4 { --cols: 4; }
.plteam-cols-5 { --cols: 5; }
.plteam-cols-6 { --cols: 6; }

/* cards take a fixed width so the container can center the last row */
.plteam-card { 
  flex: 0 0 var(--card-w);
  text-align: center;
}

/* Responsive: collapse to 2, then 1, while staying centered */
@media (max-width: 980px) { .plteam-grid { --cols: 2; max-width: calc(var(--cols) * var(--card-w) + (var(--cols) - 1) * 2rem); } }
@media (max-width: 767px) { .plteam-grid { --cols: 1; max-width: calc(var(--cols) * var(--card-w) + (var(--cols) - 1) * 2rem); } }

/* existing bits kept */
.plteam-photo-wrap { aspect-ratio: 3/4; overflow: hidden; border-radius: 6px; transition: transform .18s ease; }
.plteam-photo { width: 100%; height: 100%; object-fit: cover; display: block; }
.plteam-photo.placeholder { background: #eee; }
.plteam-name { margin: .75rem 0 .25rem; font-size: 1.1rem; }
.plteam-position { opacity: 1; margin-bottom: .5rem; color:#fff; }

/* clickable affordance from earlier */
.plteam-card--clickable { cursor: pointer; }
.plteam-card--clickable:focus { outline: 0px solid #333; outline-offset: 4px; }
.plteam-card--clickable:hover .plteam-photo-wrap { transform: translateY(-2px); }

.plteam-card { text-align: center; }
.plteam-photo-wrap { aspect-ratio: 1/0.95; overflow: hidden; border-radius: 0px; }
.plteam-photo { width: 100%; height: 100%; object-fit: cover; display: block; }
.plteam-photo.placeholder { background: #eee; }

.plteam-name { margin: .75rem 0 0; font-size: 16px; padding:0; font-weight:600; color:#fbb034; }
.plteam-position { font-size: 16px;  }

.plteam-bio-btn {
  margin-top: .35rem;
  background: transparent;
  border: 2px solid currentColor;
  padding: .4rem .75rem;
  border-radius: 999px;
  cursor: pointer;
}

/* Portal is just a container, no special styles required */
#plteam-portal { /* intentionally blank */ }

/* Prevent background scroll while open */
.plteam-modal-open,
.plteam-modal-open body { overflow: hidden; }

/* Modal, very high z-index to beat theme elements */
.plteam-modal[aria-hidden="true"] { display: none; }
.plteam-modal {
  position: fixed;
  inset: 0;
  z-index: 2147483647; /* max practical */
  display: flex;
  align-items: center;
  justify-content: center;
}
.plteam-modal::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.5);
}

/* Dialog */
.plteam-modal__dialog {
  position: relative;
  z-index: 1;
  width: min(820px, 92vw);
  max-height: 90vh;
  overflow: auto;
  background: #fff;
  color: #000!important;
  border-radius: 0px;
  padding: 1.25rem 1.25rem 1rem;
  box-shadow: 0 10px 40px rgba(0,0,0,.4);
  outline: none;
}

/* Close button stays above everything */
.plteam-modal__close {
  position: absolute;
  top: 10px; right: 12px;
  font-size: 1.8rem; line-height: 1;
  background: transparent; border: 0; cursor: pointer;
  z-index: 2;
}

/* Clickable card affordance */
.plteam-card--clickable { cursor: pointer; }
.plteam-card--clickable:focus { outline: 0 solid #333; outline-offset: 4px; }
.plteam-photo-wrap { transition: transform .18s ease; }
.plteam-card--clickable:hover .plteam-photo-wrap { transform: translateY(-2px); }

.plteam-modal__title { margin: 0 0 .25rem;color:#fbb034;padding:0; }
.plteam-modal__position { margin: 0 0 .5rem; font-size:16px; font-weight:600; }
.plteam-modal__content {font-size:16px!important}
.plteam-modal__content p { margin: 0; font-size:16px!important}
.plteam-modal__content em {color:#777;