/* Team page: member cards with bios */
.team.team-bio { display: flex; flex-wrap: wrap; justify-content: center; gap: 28px; }
.team.team-bio .member { flex: 0 1 calc((100% - 56px) / 3); background: #fff; border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 10px 10px 26px; transition: transform .5s var(--ease), box-shadow .5s var(--ease); }
.team.team-bio .member:hover { transform: translateY(-6px); box-shadow: var(--shadow-lg); }
.team.team-bio .member .portrait { aspect-ratio: 16 / 11; border-radius: calc(var(--radius-lg) - 8px); }
.team.team-bio .member .txt { padding: 0 16px; }
.team.team-bio .member h3 { font-size: 21px; font-weight: 700; color: var(--forest-800); margin-top: 20px; }
.team.team-bio .member .role { color: var(--green-600); font-weight: 600; font-size: 14.5px; margin-bottom: 12px; }
.team.team-bio .member .bio { color: var(--ink-500); font-size: 15.5px; margin: 0; }
@media (max-width: 960px) { .team.team-bio .member { flex-basis: calc((100% - 28px) / 2); } }
@media (max-width: 620px) { .team.team-bio .member { flex-basis: 100%; } }

/* Team members: compact cards with photo, name and role */
.team-members { display: flex; flex-wrap: wrap; justify-content: center; gap: 34px 24px; margin-top: 50px; }
.team-members .tm { flex: 0 1 200px; }
.tm { margin: 0; text-align: center; }
.tm-photo { position: relative; width: min(170px, 100%); aspect-ratio: 1; margin: 0 auto; border-radius: 50%; overflow: hidden; display: grid; place-items: center; background: linear-gradient(160deg, #5b8a35 0%, #114f35 100%); box-shadow: 0 0 0 4px #fff, 0 0 0 5px var(--line); transition: box-shadow .4s, transform .5s var(--ease); }
.tm:hover .tm-photo { transform: translateY(-6px); box-shadow: 0 0 0 4px #fff, 0 0 0 7px var(--lime-400), var(--shadow); }
.tm-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease); }
.tm:hover .tm-photo img { transform: scale(1.06); }
.tm-photo .initials { font-family: var(--font-head); font-weight: 800; font-size: 46px; letter-spacing: -0.04em; color: rgba(255, 255, 255, .92); }
.tm figcaption { margin-top: 18px; display: grid; gap: 4px; }
.tm figcaption strong { font-family: var(--font-head); font-size: 17.5px; font-weight: 700; color: var(--forest-800); letter-spacing: -0.02em; }
.tm figcaption span { font-size: 14.5px; color: var(--ink-500); line-height: 1.4; }
@media (max-width: 520px) { .team-members { gap: 28px 14px; } .team-members .tm { flex-basis: calc(50% - 7px); } .tm-photo .initials { font-size: 36px; } }
