/* team-archive.css — CPT `team_member` archive (Figma "/Zespol/Grid-L").
   Hero (heading + intro + wide banner) + one section per city with a 4-col grid
   of member cards. */

.team { padding-bottom: var(--space-5xl); }
.team__container { display: flex; flex-direction: column; }

/* ---------- Hero ---------- */
.team__hero {
  display: flex;
  flex-direction: column;
  gap: var(--space-5xl);
  padding-top: var(--space-m);
}
.team__head {
  display: flex;
  flex-direction: column;
  gap: var(--space-l);
  max-width: 800px;
  margin-inline: auto;
  text-align: center;
}
.team__title { margin: 0; color: var(--color-grey-900); }
.team__title em, .team__title i { font-style: italic; }
.team__intro { margin: 0; font-size: var(--fs-body-m); line-height: var(--lh-body-m); color: var(--color-grey-900); }
.team__banner {
  width: 100%;
  aspect-ratio: 3 / 1;
  border-radius: var(--radius-s);
  overflow: hidden;
  background: var(--color-grey-200);
}
.team__banner-img { width: 100%; height: 100%; object-fit: cover; }

/* ---------- Section ---------- */
.team__section { padding-top: var(--space-5xl); }
.team__section-title {
  margin: 0 0 var(--space-l);
  font-family: var(--font-heading);
  font-weight: 400;
  font-size: var(--fs-h-l);
  line-height: var(--lh-h-l);
  letter-spacing: var(--ls-h-l);
  color: var(--color-grey-900);
}
.team__section-desc {
  max-width: 720px;
  margin: calc(-1 * var(--space-2x)) 0 var(--space-l);
  font-size: var(--fs-body-m);
  line-height: var(--lh-body-m);
  color: var(--color-grey-700, #4e4e4e);
}
.team__section-desc p { margin: 0 0 var(--space-2x); }
.team__section-desc p:last-child { margin-bottom: 0; }
.team__empty { padding-top: var(--space-3xl); color: var(--color-grey-600); }

.team__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--space-l);
  align-items: stretch;
}

/* ---------- Member card ---------- */
.team-card {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: var(--space-m);
  height: 100%;
}
.team-card__top { display: flex; flex-direction: column; gap: var(--space-3xs); }
.team-card__media {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 5;
  border-radius: var(--radius-s);
  overflow: hidden;
  background: var(--color-grey-200);
}
.team-card__img { width: 100%; height: 100%; object-fit: cover; }
.team-card__caption {
  margin: 0;
  font-size: var(--fs-caption);
  line-height: var(--lh-caption);
  letter-spacing: var(--ls-caption);
  text-transform: uppercase;
  color: var(--color-grey-600);
}
.team-card__text { display: flex; flex-direction: column; }
.team-card__name { margin: 0; font-size: var(--fs-body-m); line-height: var(--lh-body-m); font-weight: 500; color: var(--color-grey-900); }
.team-card__name-link { color: inherit; text-decoration: none; }
.team-card__name-link:hover { text-decoration: underline; }
.team-card__role { margin: 0; font-size: var(--fs-body-s); line-height: var(--lh-body-s); color: var(--color-grey-700, #4e4e4e); }
.team-card__role-link { color: inherit; text-decoration: none; }
.team-card__role-link:hover, .team-card__role-link:focus-visible { text-decoration: underline; }
.team-card__btn { width: 100%; justify-content: center; }

/* ---------- Tablet: 3 columns ---------- */
@media (max-width: 1024px) {
  .team__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* ---------- Mobile: single column ---------- */
@media (max-width: 600px) {
  .team__hero { gap: var(--space-2xl); }
  .team__title { font-size: var(--fs-h-l); line-height: var(--lh-h-l); letter-spacing: var(--ls-h-l); }
  .team__banner { aspect-ratio: 3 / 2; }
  .team { padding-bottom: var(--space-3xl); }
  .team__section { padding-top: var(--space-3xl); }
  .team__section-title { font-size: var(--fs-h-m); line-height: var(--lh-h-m); letter-spacing: var(--ls-h-m); }
  .team__grid { grid-template-columns: 1fr; }
}
