/* Partial: person */
.sw-person { display: grid; gap: var(--gap-ml); }

.sw-person__media {
	position: relative;
	display: flex;
	justify-content: center;
	align-items: flex-end;
	inline-size: 16.25rem;
	max-inline-size: 100%;
	aspect-ratio: 1;
	padding-inline: var(--space-24);
	overflow: hidden;
	background: var(--color-bg-alt);
}

.sw-person__pattern {
	position: absolute;
	inset-inline: 0;
	inset-block-end: 0;
	block-size: 55%;
}

.sw-person__photo {
	position: relative;
	inline-size: auto;
	max-inline-size: 100%;
	block-size: 100%;
	object-fit: contain;
	object-position: bottom;
}

.sw-person__body { display: grid; justify-items: start; gap: var(--space-24); }
.sw-person__heading { display: grid; gap: var(--space-4); }
.sw-person__bio { max-inline-size: 29rem; }

.sw-person--row .sw-person__body { gap: var(--space-16); }
.sw-person--row .sw-person__bio { max-inline-size: 23.125rem; }
.sw-person--row .sw-contact-list { margin-block-start: var(--space-8); }

/* Stack sits in a narrow side column (contact). Below 62em that column is full width, so it looks like a row. */
@media (max-width: 61.99em) {
	.sw-person--stack .sw-person__body { gap: var(--space-16); }
	.sw-person--stack .sw-person__bio { max-inline-size: 23.125rem; }
	.sw-person--stack .sw-contact-list { margin-block-start: var(--space-8); }
	.sw-person--stack .sw-person__name {
		font-size: var(--text-h4);
		line-height: var(--leading-h4);
		font-weight: var(--weight-medium);
		letter-spacing: var(--tracking-label);
	}
}

@media (min-width: 48em) {
	.sw-person--row,
	.sw-person--stack {
		grid-template-columns: 16.25rem minmax(0, 1fr);
		gap: var(--gap-ml);
	}
}

@media (min-width: 62em) {
	.sw-person--stack { grid-template-columns: none; }
}

@media (min-width: 75em) {
	.sw-person--row { gap: var(--space-64); }
}
