/*
 * VIS Staff Block - stili front-end.
 * Eredita font e colore dal tema. Per personalizzare, sovrascrivi queste variabili
 * (es. nel CSS aggiuntivo del tema):  .vis-staff { --vis-staff-muted: #444; }
 */
.vis-staff {
	--vis-staff-muted: #5b6470;
	--vis-staff-rule: rgba(0, 0, 0, 0.18);
	--vis-staff-tint: #e8ecf0;
	--vis-staff-gap-x: 1.5rem;
	--vis-staff-gap-y: 2.25rem;
}

.vis-staff__section + .vis-staff__section {
	margin-top: 3.5rem;
}

.vis-staff__title {
	margin: 0 0 1.5rem;
	padding-bottom: 0.5rem;
	border-bottom: 1px solid var(--vis-staff-rule);
	font-size: clamp(1.4rem, 1.1rem + 1vw, 1.9rem);
	line-height: 1.2;
}

.vis-staff__list {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 190px), 1fr));
	gap: var(--vis-staff-gap-y) var(--vis-staff-gap-x);
	margin: 0;
	padding: 0;
	list-style: none;
}

.vis-staff__item {
	margin: 0;
	padding: 0;
}

.vis-staff__card {
	display: block;
	color: inherit;
	text-decoration: none;
}

.vis-staff__media {
	display: block;
	aspect-ratio: 4 / 5;
	overflow: hidden;
	border-radius: 2px;
	background: var(--vis-staff-tint);
}

.vis-staff__photo {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.vis-staff__initials {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	color: var(--vis-staff-muted);
	font-size: clamp(2rem, 1.5rem + 2vw, 3rem);
	font-weight: 600;
	letter-spacing: 0.04em;
}

.vis-staff__name {
	margin: 0.75rem 0 0.2rem;
	font-size: 1.05rem;
	font-weight: 600;
	line-height: 1.25;
}

.vis-staff__role {
	margin: 0;
	color: var(--vis-staff-muted);
	font-size: 0.9rem;
	line-height: 1.4;
}

a.vis-staff__card:hover .vis-staff__name {
	text-decoration: underline;
	text-underline-offset: 0.2em;
	text-decoration-thickness: 1px;
}

a.vis-staff__card:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 4px;
}

/* Variante senza foto (es. "Administration"): elenco testuale a colonne. */
.vis-staff__list--compact {
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr));
	gap: 0 var(--vis-staff-gap-x);
}

.vis-staff__list--compact .vis-staff__card {
	padding: 0.85rem 0;
	border-top: 1px solid var(--vis-staff-rule);
}

.vis-staff__list--compact .vis-staff__name {
	margin-top: 0;
}
