/*
 * proof/team. Figma "About v2" team 2612:305, see
 * sites/proof/design/about-spec.md. The copy column is as tall as the
 * cards (758) and spreads its parts with space-between, as in Figma; the
 * dashed rules sit above the quote and at the bottom.
 */

.pf-block.pf-team {
	padding-top: calc(227 * var(--pf-u));
}
.pf-team-row {
	display: flex;
	justify-content: space-between;
	margin-top: calc(126 * var(--pf-u));
}
/* Figma's H2 cap line sits 10 below the card tops; with the untrimmed line
   box that is 2 above them. */
.pf-team-intro {
	margin-top: calc(-3 * var(--pf-u));
}
.pf-team-copy {
	position: relative;
	display: flex;
	flex: none;
	flex-direction: column;
	width: calc(587 * var(--pf-u));
}
/* Bottom dashed rule, level with the card bottoms. */
.pf-team-copy::after,
.pf-block .pf-team-quote {
	background: repeating-linear-gradient(90deg, rgba(0, 0, 0, 0.22) 0 4px, transparent 4px 8px) top / 100% 1px no-repeat;
}
.pf-team-copy::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 1px;
}
.pf-block .pf-team-text {
	margin-top: calc(11 * var(--pf-u));
	font-size: calc(16 * var(--pf-t));
	line-height: 1.5;
	letter-spacing: -0.04em;
	color: rgba(0, 0, 0, 0.5);
}

.pf-block .pf-team-checks {
	margin-top: calc(43 * var(--pf-u));
	display: flex;
	flex-direction: column;
	gap: calc(24 * var(--pf-u));
}
.pf-team-checks li {
	display: flex;
	align-items: center;
	gap: calc(16 * var(--pf-u));
	font-weight: 500;
	font-size: calc(20 * var(--pf-t));
	line-height: 1.4;
	letter-spacing: -0.01em;
	color: rgba(0, 0, 0, 0.5);
}
.pf-team-checks li::before {
	content: "";
	flex: none;
	width: calc(16 * var(--pf-u));
	height: calc(16 * var(--pf-u));
	background: #96db0f;
}

/* Dashed rule on top (drawn as a gradient: a dashed border renders 3px
   dashes), then the quote mark and the text. Pinned to the bottom. */
.pf-block .pf-team-quote {
	margin-top: auto;
	padding: calc(41.6 * var(--pf-u)) 0 calc(43 * var(--pf-u));
	font-size: calc(20 * var(--pf-t));
	font-style: normal;
	line-height: 1.5;
	letter-spacing: -0.04em;
	color: rgba(0, 0, 0, 0.72);
}
/* 587 in Figma, which breaks line 1 before "lectus"; Chrome sets the text
   a little narrower. */
.pf-team-quote p {
	max-width: calc(580 * var(--pf-u));
}
.pf-team-quote::before {
	content: "";
	display: block;
	width: calc(36 * var(--pf-u));
	height: calc(31.59 * var(--pf-u));
	margin-bottom: calc(25 * var(--pf-u));
	background: url("../../assets/img/quote-green.svg") no-repeat center / contain;
}

.pf-tcards {
	display: flex;
	flex: none;
	gap: calc(25 * var(--pf-u));
}
.pf-block .pf-tcard {
	position: relative;
	width: calc(508 * var(--pf-u));
	height: calc(758 * var(--pf-u));
	overflow: hidden;
	border-radius: calc(6 * var(--pf-u));
	background: var(--pf-blue);
}
.pf-block .pf-tcard-img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.pf-tcard-meta {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	display: flex;
	align-items: center;
	gap: calc(24 * var(--pf-u));
	padding: calc(32 * var(--pf-u)) calc(32 * var(--pf-u)) calc(40 * var(--pf-u)) calc(40 * var(--pf-u));
	font-style: normal;
}
/* 72 disc; play-ring.svg (88) adds the 8 ring around it. */
.pf-tcard-play {
	position: relative;
	flex: none;
	width: calc(72 * var(--pf-u));
	height: calc(72 * var(--pf-u));
	border-radius: 50%;
}
.pf-tcard-play::before {
	content: "";
	position: absolute;
	inset: calc(-8 * var(--pf-u));
	background: url("../../assets/img/play-ring.svg") no-repeat center / contain;
	transition: transform 0.25s ease;
}
a.pf-tcard-play:hover::before {
	transform: scale(1.06);
}
a.pf-tcard-play:focus-visible {
	outline: 2px solid var(--pf-lime);
	outline-offset: 10px;
}
.pf-tcard-text {
	display: flex;
	flex-direction: column;
	min-width: 0;
	font-size: calc(24 * var(--pf-t));
	line-height: calc(32 * var(--pf-t));
	letter-spacing: -0.03em;
}
.pf-tcard-name {
	font-weight: 500;
	color: #fff;
}
.pf-tcard-role {
	color: rgba(255, 255, 255, 0.72);
}

@media (max-width: 1024px) {
	.pf-block.pf-team {
		padding-top: 96px;
	}
	.pf-team-row {
		flex-direction: column;
		gap: 56px;
		margin-top: 48px;
	}
	.pf-team-copy {
		gap: 32px;
		width: 100%;
		padding: 0 0 32px;
	}
	.pf-block .pf-team-text {
		margin-top: 14px;
		font-size: 16px;
	}
	/* Stacked, the column's 32 gap spaces intro, checklist and quote; the
	   desktop offset (43) would double it. */
	.pf-block .pf-team-checks {
		gap: 16px;
		margin-top: 0;
	}
	.pf-team-checks li {
		gap: 14px;
		font-size: 18px;
	}
	.pf-team-checks li::before {
		width: 14px;
		height: 14px;
	}
	.pf-block .pf-team-quote {
		padding: 32px 0 0;
		font-size: 18px;
	}
	.pf-team-quote::before {
		width: 32px;
		height: 28px;
		margin-bottom: 16px;
	}
	.pf-tcards {
		gap: 16px;
	}
	.pf-block .pf-tcard {
		flex: 1;
		width: auto;
		height: auto;
		aspect-ratio: 508 / 758;
	}
	.pf-tcard-meta {
		gap: 16px;
		padding: 20px 20px 24px 24px;
	}
	.pf-tcard-play {
		width: 52px;
		height: 52px;
	}
	.pf-tcard-play::before {
		inset: -6px;
	}
	.pf-tcard-text {
		font-size: 18px;
		line-height: 24px;
	}
}
/* Phones: the cards become a swipeable row. */
@media (max-width: 767px) {
	.pf-block.pf-team {
		padding-top: 72px;
	}
	.pf-team-row {
		gap: 40px;
		margin-top: 40px;
	}
	.pf-team-checks li {
		font-size: 17px;
	}
	.pf-block .pf-team-quote {
		font-size: 17px;
	}
	.pf-tcards {
		gap: 12px;
		margin-inline: calc(-1 * var(--pf-gutter));
		padding-inline: var(--pf-gutter);
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		scroll-padding-inline: var(--pf-gutter);
		scrollbar-width: none;
	}
	.pf-tcards::-webkit-scrollbar {
		display: none;
	}
	.pf-block .pf-tcard {
		flex: 0 0 min(80%, 320px);
		scroll-snap-align: start;
	}
	.pf-tcards:has(.pf-tcard:only-child) .pf-tcard {
		flex-basis: 100%;
	}
	.pf-tcard-meta {
		gap: 14px;
		padding: 16px 16px 20px 20px;
	}
	.pf-tcard-play {
		width: 48px;
		height: 48px;
	}
	.pf-tcard-text {
		font-size: 16px;
		line-height: 22px;
	}
}
