/* ==========================================================================
   Náš tým — photo-card carousel (manual scroll + arrows + dots)
   ========================================================================== */

.tym__carousel { position: relative; }

.tym__track {
	display: flex;
	gap: clamp(1rem, 2vw, 1.75rem);
	list-style: none;
	margin: 0;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	padding-bottom: 0.5rem;
}
.tym__track::-webkit-scrollbar { display: none; }

.tym-card {
	scroll-snap-align: start;
	flex: 0 0 clamp(190px, 17vw, 220px);
	text-align: center;
}

/* Round 7: small circular avatar instead of the tall square photo card. */
.tym-card__photo {
	position: relative;
	width: clamp(7.5rem, 11vw, 9.5rem);
	aspect-ratio: 1;
	margin-inline: auto;
	border-radius: 50%;
	overflow: hidden;
	background: #c3c9c9;
}
.tym-card__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	/* Portraits are tall (850x1200), so a square crop has to lose height; bias
	   upward so the face, not the chest, sits in the circle. */
	object-position: 50% 15%;
	display: block;
}

.tym-card__info { padding: 1rem 0.25rem 0; }

/* Phones: two whole cards per view, never one card plus a cut-off sliver. */
@media (max-width: 600px) {
	.tym-card { flex-basis: calc((100% - 1rem) / 2); }
	.tym__track { gap: 1rem; }
	.tym-card__photo { width: 7rem; }
	.tym-card__info { padding-top: 0.75rem; }
	.tym-card__name { font-size: 1rem; }
	.tym-card__role { font-size: 0.85rem; }
}
.tym-card__name {
	font-size: 1.15rem;
	font-weight: 700;
	color: var(--heading);
	margin-bottom: 0.3rem;
}
.tym-card__role {
	display: block;
	color: var(--primary);
	font-weight: 600;
	font-size: 0.95rem;
}
.tym-card__loc {
	display: block;
	margin-top: 0.2rem;
	font-size: 0.82rem;
	color: var(--muted);
}

/* Arrows — circular, overlapping the photo row edges */
.tym__arrow {
	position: absolute;
	top: clamp(2.25rem, 4vw, 3.25rem); /* level with the avatar centre */
	width: 3rem;
	height: 3rem;
	border-radius: 50%;
	border: 1px solid var(--border);
	background: var(--bg-body);
	color: var(--heading);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	z-index: 2;
}
.tym__arrow:hover { background: var(--primary); border-color: var(--primary); color: #fff; }
.tym__arrow svg { width: 1.2rem; height: 1.2rem; }
.tym__arrow--prev { left: -0.75rem; }
.tym__arrow--prev svg { transform: rotate(180deg); }
.tym__arrow--next { right: -0.75rem; }

/* Dots */
.tym__dots {
	display: flex;
	justify-content: center;
	gap: 0.4rem;
	margin-top: 1.75rem;
}
.tym__dot {
	width: 1.4rem;
	height: 0.35rem;
	border-radius: var(--radius-pill);
	border: 0;
	background: var(--border-strong);
	cursor: pointer;
	padding: 0;
}
.tym__dot.is-active { background: var(--primary); width: 2.1rem; }
/* The homepage lists the whole staff (~35 people, round 8): keep that many
   dots to compact pills that wrap instead of running off a phone screen. */
.tym__dots { flex-wrap: wrap; }
.tym__dots:has(> :nth-child(13)) .tym__dot { width: 0.5rem; }
.tym__dots:has(> :nth-child(13)) .tym__dot.is-active { width: 1.4rem; }

@media (max-width: 620px) {
	.tym__arrow { display: none; }
}

/* --- Too few people to scroll -------------------------------------------
   The JS adds this when the whole track fits, so the arrows and dots do not
   sit there as controls that do nothing. */
.tym__carousel--static .tym__arrow,
.tym__carousel--static .tym__dots {
	display: none;
}
.tym__carousel--static .tym__track {
	overflow-x: visible;
}
