.schedule {
	display: grid;
	grid-template-columns: 1fr 11fr 4fr; /* слева 1fr обязательный отсутп, справа 4Fr на карту, внутри оставшихся 11-ти делим место поровну */
	grid-auto-flow: column;
	background-color: whitesmoke;
}

.schedule .cardsBox {
	grid-column: 2/3;
	place-self: center center;
	width: 100%;
	display: grid;	
	grid-auto-flow: column;
	grid-auto-columns: auto; /* чтобы ширина трека соответствовала ширине карточки */
	justify-content: space-evenly;
}

.schedule .imageBox {
	grid-column: 3/4;
	padding: 4rem 0;
	overflow: hidden; /* см ниже */
}

.schedule .imageBox img {
	width: auto;	/* чтобы картинка не занимала весь блок, а имела собственную ширину и пряталась за оверфлоу, если не помещается */
}

.schedule .textBox {
	grid-column: 1/2;
	place-self: center center;
}



@media(max-width: 1050px) {
	.schedule {
		grid-template-columns: var(--mobileGutter) 1fr var(--mobileGutter);
		grid-template-rows: auto auto;
	}
	.schedule .cardsBox {
		grid-column: 2/3;
		grid-row: 1/2;
		display: block;
	}
	.schedule .imageBox {
		grid-column: 1/4;
		grid-row: 2/3;
		place-self: start end;
	}	
	.schedule .imageBox img {
		width: 100%;	/* чтобы картинка занимала весь блок и ресайзилась в зависимости от ширины экрана */
	}
}