.expo-training [hidden] { display: none !important; }
.expo-training-intro {
	max-width: 820px;
	margin: 0 auto 38px;
	text-align: center;
}
.expo-training-intro p { margin: 0 0 8px; }
.expo-training .expo-training-organization-logos {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
}
.expo-training-organization-logos li {
	display: grid;
	place-items: center;
	flex: 0 0 calc((100% - 40px) / 6);
	min-width: 0;
	height: 76px;
	padding: 8px 12px;
}
.expo-training-organization-logos img {
	display: block;
	width: min(100%, 138px);
	height: 52px;
	object-fit: contain;
	object-position: center;
}
.expo-training .expo-training-tabs {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: minmax(0, 1fr);
	max-width: 720px;
	margin-inline: auto;
}
.expo-training .expo-training-tabs button {
	min-height: 44px;
	padding: 8px 10px;
	border: 1px solid #d3d3d3;
	border-radius: 8px;
	background: #fff;
	color: var(--demo-ink);
	font: inherit;
	font-size: .875rem;
	font-weight: 600;
	line-height: 1.35;
	text-transform: none;
	white-space: normal;
	overflow-wrap: anywhere;
	text-wrap: balance;
	cursor: pointer;
}
.expo-training .expo-training-tabs button:hover { border-color: var(--demo-action); color: var(--demo-action); }
.expo-training .expo-training-tabs button[aria-selected="true"] {
	border-color: var(--demo-action);
	background: var(--demo-action);
	color: #fff;
}
.expo-training-tabs button:focus-visible,
.expo-training [role="tabpanel"]:focus-visible { outline: 2px solid var(--demo-action); outline-offset: 3px; }
.expo-training-tabbed .expo-demoday-day { margin-top: 0; }
.expo-training .expo-demoday-card {
	display: flex;
	flex-direction: column;
}
.expo-training .expo-demoday-card-header { align-items: flex-start; }
.expo-training .expo-demoday-session { flex: 1; }
.expo-training-speaker {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	margin-top: 12px;
}
.expo-training-speaker img {
	flex: 0 0 auto;
	width: 64px;
	height: 64px;
	border-radius: 8px;
	object-fit: cover;
	object-position: center 30%;
}
.expo-training-speaker-name { margin: 0; font-size: .875rem; font-weight: 600; }
.expo-training-affiliation,
.expo-training-description,
.expo-training-note { margin: 3px 0 0; color: var(--demo-muted); font-size: .875rem; white-space: pre-line; }
.expo-training-description, .expo-training-session-details { margin-top: 8px; }
.expo-training-note { margin: 0; font-size: .8125rem; }
.expo-training-format {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 14px;
	color: var(--demo-muted);
	font-size: .8125rem;
}
.expo-training-format-label { margin: 0; font-weight: 600; }
.expo-training-format ul { display: flex; flex-wrap: wrap; gap: 6px; }
.expo-training-format li {
	display: flex;
	gap: 6px;
	align-items: baseline;
	padding: 3px 9px;
	border: 1px solid #e0dddd;
	border-radius: 6px;
	background: #fff;
}
.expo-training-format strong { color: var(--demo-ink); white-space: nowrap; font-variant-numeric: tabular-nums; }
.expo-training-format + .expo-training-note { margin-top: 6px; }
.expo-training .expo-training-card-logos {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 86px));
	gap: 8px 12px;
	margin-top: 14px;
	padding-top: 12px;
	border-top: 1px solid var(--demo-line);
}
.expo-training-card-logos li {
	display: grid;
	place-items: center;
	min-width: 0;
	height: 38px;
}
.expo-training-card-logos img {
	display: block;
	width: 100%;
	height: 32px;
	object-fit: contain;
	object-position: center;
}
@supports (grid-template-rows: subgrid) {
	@media (min-width: 768px) {
		.expo-training .expo-demoday-cards { row-gap: 0; }
		/* Each pair shares tracks for the header, title, speaker, description, note and logos. */
		.expo-training .expo-demoday-card {
			display: grid;
			grid-row: span 6;
			grid-template-rows: subgrid;
			grid-template-columns: minmax(0, 1fr);
			margin-block-end: 16px;
		}
		.expo-training .expo-demoday-card:is(:last-child, :nth-last-child(2):nth-child(odd)) {
			margin-block-end: 0;
		}
		.expo-training .expo-demoday-card-header { grid-row: 1; }
		.expo-training .expo-demoday-session {
			display: grid;
			grid-row: 2 / 6;
			grid-template-rows: subgrid;
			grid-template-columns: minmax(0, 1fr);
		}
		.expo-training .expo-demoday-session h4 { grid-row: 1; }
		.expo-training .expo-training-speaker { grid-row: 2; }
		.expo-training .expo-training-description { grid-row: 3; }
		.expo-training .expo-training-session-details { grid-row: 4; }
		.expo-training .expo-training-card-logos {
			grid-row: 6;
			align-self: end;
		}
	}
}
@media (max-width: 1024px) {
	.expo-training-organization-logos li { flex-basis: calc((100% - 24px) / 4); }
}
@media (max-width: 767px) {
	.expo-training .expo-training-tabs {
		grid-auto-flow: row;
		grid-auto-columns: auto;
		grid-template-columns: minmax(0, 1fr);
	}
}
@media (max-width: 580px) {
	.expo-training-organization-logos li {
		flex-basis: calc((100% - 16px) / 3);
		height: 64px;
		padding: 6px;
	}
	.expo-training-organization-logos img { height: 42px; }
}
