.sh-program-grid,
.sh-program-sessions {
	display: grid;
	gap: 1.5rem;
}

.sh-program-sessions {
	grid-template-columns: 1fr;
}

.sh-program-slot {
	display: grid;
	grid-template-columns: minmax(5rem, 7rem) repeat(2, minmax(0, 1fr));
	gap: 1rem;
	align-items: stretch;
}

.sh-program-day > h3 {
	margin-bottom: 1rem;
}

.sh-program-session {
	padding: 1rem;
	border: 1px solid currentColor;
	border-radius: 0.5rem;
}

.sh-program-session.is-technical {
	padding-block: 0.65rem;
	border-style: dashed;
}

.sh-program-session.is-technical,
.sh-program-session.is-plenum {
	grid-column: 2 / -1;
}

.sh-program-time,
.sh-program-room,
.sh-program-speakers {
	font-size: 0.875rem;
}

.sh-program-time,
.sh-program-room {
	font-weight: 700;
}

.sh-program-session h4 {
	margin: 0;
}

.sh-program-session h4 a {
	color: inherit;
}

.sh-program-room,
.sh-program-speakers {
	margin-top: 0.35rem;
}

.sh-program-speaker {
	color: inherit;
}

.sh-speaker-wall {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
	gap: 1.5rem;
}

.sh-speaker-wall-card a,
.sh-speaker-wall-name,
.sh-speaker-wall-role {
	display: block;
}

.sh-speaker-wall-card a {
	color: inherit;
	text-decoration: none;
}

.sh-speaker-wall-portrait {
	display: block;
	width: 100%;
	aspect-ratio: 1;
	margin-bottom: 0.75rem;
	border-radius: 50%;
	overflow: hidden;
	background: color-mix(in srgb, currentColor 15%, transparent);
}

.sh-speaker-wall-image,
.sh-speaker-wall-placeholder {
	display: block;
	width: 100%;
	height: 100%;
	margin: 0;
	object-fit: cover;
}

.sh-speaker-wall-name {
	font-weight: 700;
}

.sh-speaker-wall-role {
	margin-top: 0.25rem;
	font-size: 0.875rem;
}

@media (max-width: 600px) {
	.sh-program-slot {
		grid-template-columns: 1fr;
	}

	.sh-program-session.is-technical,
	.sh-program-session.is-plenum {
		grid-column: auto;
	}
}
