/* ============================================================
   Секция schedule — «Ближайшие игры» (тёмная панель)
   ============================================================ */

/* Контент над абсолютным декором (лента/стикер имеют z-index: 0) */
.s-schedule__in { position: relative; z-index: 1; }

/* ---------- Шапка + стрелки ---------- */
.s-schedule__headrow {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px;
	margin-bottom: clamp(24px, 4vw, 40px);
}
.s-schedule__headrow .section__head { margin-bottom: 0; max-width: 640px; }
.s-schedule__nav { display: flex; gap: 8px; flex-shrink: 0; }
.s-schedule__arrow {
	width: 48px;
	height: 48px;
	display: grid;
	place-items: center;
	border-radius: 50%;
	border: 1px solid var(--surface-line);
	background: rgba(255, 255, 255, 0.05);
	color: var(--c-grey-light);
	cursor: pointer;
	transition: background .15s ease, color .15s ease, opacity .15s ease;
}
.s-schedule__arrow svg { width: 20px; height: 20px; }
.s-schedule__arrow:hover:not(:disabled) { background: rgba(255, 255, 255, 0.12); color: #fff; }
.s-schedule__arrow:disabled { opacity: 0.35; cursor: default; }

/* ---------- Вкладки: для новичков / тематические ---------- */
/* hidden у панели не должен перебиваться чьим-то display */
.s-schedule [hidden] { display: none !important; }
/* Строка над лентой: подсказка новичку + вкладки */
.s-schedule__filter {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px 24px;
	margin-bottom: clamp(16px, 2.5vw, 24px);
}
.s-schedule__first { margin: 0; max-width: 560px; color: var(--c-grey-light); }
.s-schedule__first b { color: #fff; font-weight: 600; }
.s-schedule__tabs {
	display: inline-flex;
	flex-shrink: 0;
	gap: 4px;
	padding: 4px;
	border: 1px solid var(--surface-line);
	border-radius: var(--r-pill);
	background: rgba(255, 255, 255, 0.04);
}
.s-schedule__tab {
	padding: 10px 18px;
	border: 0;
	border-radius: var(--r-pill);
	background: transparent;
	color: var(--c-grey-light);
	font: inherit;
	font-size: var(--fs-caption);
	font-weight: 600;
	cursor: pointer;
	transition: background .15s ease, color .15s ease;
}
.s-schedule__tab:hover { color: #fff; }
.s-schedule__tab[aria-selected="true"] { background: #fff; color: var(--c-black); }

/* Знака ₽ нет в GraublauSlab — рубль берём из текстового шрифта, а не из системного serif */
.s-schedule__rub { font-family: var(--font-body); font-weight: 600; }

/* ---------- Карусель ---------- */
.s-schedule__slider { position: relative; }
.s-schedule__track {
	list-style: none;
	margin: 0;
	padding: 4px 0;
	display: flex;
	gap: clamp(12px, 2vw, 20px);
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
}
.s-schedule__track::-webkit-scrollbar { display: none; }

/* ---------- Карточка игры ---------- */
.s-schedule__card {
	scroll-snap-align: start;
	flex: 0 0 clamp(272px, 31%, 360px);
	display: flex;
	flex-direction: column;
	gap: 10px;
	transition: border-color .2s ease;
}
.s-schedule__card:hover { border-color: rgba(227, 228, 241, 0.32); }

.s-schedule__top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	flex-wrap: wrap;
}
.s-schedule__date { white-space: nowrap; }

.s-schedule__title {
	font-size: var(--fs-h5);
	margin: 6px 0 2px;
	overflow-wrap: anywhere;
	/* GraublauSlab шире Roboto Slab: «Кино и Музыка 53 День 2» оставлял «2» одну на строке */
	text-wrap: balance;
}

.s-schedule__venue {
	margin: 0;
	font-weight: 600;
	color: var(--c-grey-light);
}
.s-schedule__address { margin: 0; }

/* Цена + запись прижаты к низу — карточки в ряду ровные при разной высоте текста */
.s-schedule__actions {
	margin-top: auto;
	padding-top: 18px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}
.s-schedule__price {
	font-family: var(--font-head);
	font-size: 1.375rem;
	font-weight: 700;
	color: var(--c-white);
	white-space: nowrap;
}
.s-schedule__actions .btn { flex: 0 0 auto; }

/* Пустое расписание: API недоступно и сохранённой копии нет */
.s-schedule__empty {
	margin: 0;
	text-align: center;
	color: var(--c-grey-light);
}
.s-schedule__empty p { margin: 0; }

/* ---------- Низ секции ---------- */
.s-schedule__more {
	margin-top: clamp(32px, 5vw, 48px);
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
	text-align: center;
}

/* ---------- Адаптив ---------- */
@media (max-width: 900px) {
	.s-schedule__card { flex-basis: clamp(272px, 46%, 340px); }
}

@media (max-width: 700px) {
	.s-schedule__headrow { flex-direction: column; align-items: flex-start; gap: 16px; }
	.s-schedule__nav { display: none; } /* на мобиле листаем свайпом */
	.s-schedule__card { flex-basis: 84%; }
	/* край ленты «подсказывает» продолжение */
	.s-schedule__track { scroll-padding-left: 0; }
}

/* ---------- «Смотреть все игры»: та же лента разворачивается в сетку ---------- */
.s-schedule__more-actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px;
}
.s-schedule.is-grid .s-schedule__nav { display: none; } /* стрелки в сетке не нужны */
.s-schedule.is-grid .s-schedule__track {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	overflow: visible;
	scroll-snap-type: none;
}
@media (max-width: 900px) {
	.s-schedule.is-grid .s-schedule__track { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
	.s-schedule.is-grid .s-schedule__track { grid-template-columns: minmax(0, 1fr); }
}
