/**
 * Journey: `grid gap-12 lg:grid-cols-12 lg:gap-16`, the text in 5, the list
 * in 7. The text `mt-6 space-y-5 text-lg` under the heading, the note
 * `mt-6 text-sm` muted. The list `grid gap-x-8 sm:grid-cols-2`, a stop
 * `border-t`, its button `flex items-baseline gap-4 py-3.5`: the number
 * `w-6 text-sm tabular-nums` muted, the country `font-medium` (dark red on
 * hover and while shown), the landmark `mt-0.5 text-sm` muted, the time
 * `text-lg font-semibold tabular-nums`. The destination spans both columns
 * under `border-t-2` in the dark red. Over the list a line in the note's
 * style says what its times are (the opening times, since the strip above
 * shows the current ones), 28px that the prototype did not have. Each stop
 * carries a 40px round thumbnail of its landmark between the number and
 * the place (the destination an empty ring), centered on the row, ringed
 * in the dark red while the strip shows the stop. Armed by the script
 * (is-armed), the thumbnails wait small and transparent until the list is
 * in view (is-revealed), then grow in one after the other, 180ms apart in
 * the journey's order; under reduced motion the script does not arm them.
 *
 * The buttons carry two classes per rule: the kit's Theme Style reaches
 * button elements.
 */

.sba-c-journey .sba-c-journey-split {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 48px;
}

.sba-c-journey .sba-c-journey-text .sba-c-prose {
	margin-top: 24px;
}

.sba-c-journey .sba-c-journey-note {
	margin: 24px 0 0;
	color: var(--sba-slate);
	font-size: 14px;
	line-height: 20px;
}

.sba-c-journey .sba-c-journey-times {
	margin: 0 0 8px;
	color: var(--sba-slate);
	font-size: 14px;
	line-height: 20px;
}

.sba-c-journey .sba-c-journey-stops {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	column-gap: 32px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.sba-c-journey .sba-c-journey-stops > li {
	margin: 0;
	border-top: 1px solid var(--sba-border);
}

.sba-c-journey .sba-c-journey-stops > .sba-c-journey-finale {
	border-top: 2px solid var(--sba-red-dark);
}

.sba-c-journey-stop.sba-c-journey-stop {
	display: flex;
	align-items: baseline;
	gap: 16px;
	width: 100%;
	min-height: 0;
	margin: 0;
	padding: 14px 0;
	border: 0;
	border-radius: 0;
	background: none;
	box-shadow: none;
	color: var(--sba-charcoal);
	font-family: var(--sba-font-sans);
	font-size: 16px;
	font-weight: 400;
	line-height: 24px;
	text-align: left;
	text-transform: none;
	letter-spacing: normal;
}

button.sba-c-journey-stop.sba-c-journey-stop {
	cursor: pointer;
	transition: color var(--sba-duration-hover) ease;
}

button.sba-c-journey-stop.sba-c-journey-stop:focus-visible {
	outline: 2px solid var(--sba-ring);
	outline-offset: 2px;
}

.sba-c-journey .sba-c-journey-number {
	flex: 0 0 24px;
	color: var(--sba-slate);
	font-size: 14px;
	font-variant-numeric: tabular-nums;
	line-height: 20px;
}

/* The Swiss Biotech Day's hours since the start, "+30 h", where the list numbers its stops. */
.sba-c-journey .is-hours .sba-c-journey-number {
	flex-basis: 44px;
	white-space: nowrap;
}

.sba-c-journey .sba-c-journey-thumb {
	flex: 0 0 40px;
	align-self: center;
	width: 40px;
	height: 40px;
	overflow: hidden;
	border-radius: 50%;
	background: var(--sba-border);
	box-shadow: 0 0 0 2px transparent;
	transition: box-shadow var(--sba-duration-hover) ease;
}

.sba-c-journey .sba-c-journey-thumb img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: var(--sba-landmark-focus, 50% 50%);
}

.sba-c-journey .sba-c-journey-thumb-finale {
	box-sizing: border-box;
	border: 2px solid var(--sba-red-dark);
	background: none;
}

.sba-c-journey .sba-c-journey-stop.is-active .sba-c-journey-thumb {
	box-shadow: 0 0 0 2px var(--sba-red-dark);
}

.sba-c-journey .sba-c-journey-stops.is-armed .sba-c-journey-thumb {
	opacity: 0;
	transform: scale(0.5);
}

.sba-c-journey .sba-c-journey-stops.is-armed.is-revealed .sba-c-journey-thumb {
	opacity: 1;
	transform: none;
	transition:
		opacity 600ms ease calc(var(--sba-journey-i, 0) * 180ms),
		transform 600ms cubic-bezier(0.2, 0.8, 0.2, 1) calc(var(--sba-journey-i, 0) * 180ms),
		box-shadow var(--sba-duration-hover) ease;
}

.sba-c-journey .sba-c-journey-place {
	flex: 1 1 auto;
	min-width: 0;
}

.sba-c-journey .sba-c-journey-country {
	display: block;
	color: var(--sba-charcoal);
	font-weight: 500;
	transition: color var(--sba-duration-hover) ease;
}

.sba-c-journey .sba-c-journey-landmark {
	display: block;
	margin-top: 2px;
	color: var(--sba-slate);
	font-size: 14px;
	line-height: 20px;
}

.sba-c-journey .sba-c-journey-time {
	flex: 0 0 auto;
	color: var(--sba-charcoal);
	font-size: 18px;
	font-variant-numeric: tabular-nums;
	font-weight: 600;
	line-height: 28px;
	text-align: right;
}

/* The day over a row's time in Basel, "Mon, April 26, 2027". */
.sba-c-journey .sba-c-journey-day {
	display: block;
	color: var(--sba-slate);
	font-size: 12px;
	font-weight: 400;
	line-height: 16px;
}

.sba-c-journey button.sba-c-journey-stop:hover .sba-c-journey-country,
.sba-c-journey .sba-c-journey-stop.is-active .sba-c-journey-country {
	color: var(--sba-red-dark);
}

.sba-c-journey .sba-c-journey-stop.is-active .sba-c-journey-number {
	color: var(--sba-red-dark);
	font-weight: 600;
}

.sba-c-journey .sba-c-journey-finale .sba-c-journey-number {
	color: var(--sba-red-dark);
	font-weight: 600;
}

.sba-c-journey .sba-c-journey-finale .sba-c-journey-country,
.sba-c-journey .sba-c-journey-finale .sba-c-journey-time {
	color: var(--sba-red-dark);
	font-weight: var(--sba-heading-weight);
}

/* On a phone the date breaks after the day, so the place keeps its width. */
@media (max-width: 639px) {
	.sba-c-journey .sba-c-journey-stops.is-hours .sba-c-journey-time {
		max-width: 92px;
	}
}

@media (min-width: 640px) {
	.sba-c-journey .sba-c-journey-stops {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.sba-c-journey .sba-c-journey-finale {
		grid-column: 1 / -1;
	}

	/* The hours, the world and Basel need a row's full width, and the table reads top down. */
	.sba-c-journey .sba-c-journey-stops.is-hours {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (min-width: 1024px) {
	.sba-c-journey .sba-c-journey-split {
		grid-template-columns: repeat(12, minmax(0, 1fr));
		gap: 64px;
	}

	.sba-c-journey .sba-c-journey-text {
		grid-column: span 5;
	}

	.sba-c-journey .sba-c-journey-list {
		grid-column: span 7;
		align-self: start;
	}
}
