/* =========================================================
   カウントダウンタイマー
   ========================================================= */

.top__countdown-block {
	margin-top: 24rem;
	background:
		radial-gradient(ellipse at 20% 80%, rgba(0, 153, 203, .25) 0%, transparent 50%),
		radial-gradient(ellipse at 80% 20%, rgba(0, 153, 203, .15) 0%, transparent 50%),
		linear-gradient(135deg, var(--Blue, #0B2D7D), var(--logo_blue, #0099CB));
	padding: 28rem 12rem;
	text-align: center;
	overflow: hidden;
}

.top__countdown-body {
	max-width: 900rem;
	margin: 0 auto;
}

.top__countdown-sub {
	font: var(--font-body);
	color: rgba(255, 255, 255, .8);
}

.top__countdown-label {
	font: var(--font-title);
	color: rgba(255, 255, 255, .9);
	margin-top: 16rem;
}

.top__countdown-timer {
	display: flex;
	justify-content: center;
	align-items: baseline;
	gap: 2rem;
	margin-top: 8rem;
}

.top__countdown-unit {
	display: flex;
	align-items: baseline;
}

.top__countdown-unit--ms {
	opacity: .6;
}

.top__countdown-unit--ms::before {
	content: ".";
	font: 600 28rem/1 "Bebas Neue", sans-serif;
	color: var(--white, #FFF);
}

.top__countdown-number {
	font: 600 40rem/1 "Bebas Neue", sans-serif;
	color: var(--white, #FFF);
	font-variant-numeric: tabular-nums;
	text-shadow:
		0 0 20rem rgba(0, 153, 203, .6),
		0 0 40rem rgba(0, 153, 203, .3);
}

.top__countdown-number--ms {
	font-size: 28rem;
}

.top__countdown-suffix {
	font: var(--font-title);
	color: rgba(255, 255, 255, .85);
	margin-right: 2rem;
}

.top__countdown-finished {
	font: var(--font-display);
	color: var(--white, #FFF);
	animation: countdown-pulse 2s ease-in-out infinite;
}

@keyframes countdown-pulse {
	0%, 100% { opacity: 1; transform: scale(1); }
	50% { opacity: .75; transform: scale(1.04); }
}

/* PC -------------------------------------------------------- */
@media (min-width: 768px) {
	.top__countdown-block {
		margin-top: 40rem;
		padding: 48rem 24rem;
	}

	.top__countdown-label {
		font: var(--font-headline);
		color: rgba(255, 255, 255, .9);
		margin-top: 24rem;
	}

	.top__countdown-timer {
		gap: 4rem;
		margin-top: 12rem;
	}

	.top__countdown-number {
		font-size: 120rem;
		text-shadow:
			0 0 30rem rgba(0, 153, 203, .6),
			0 0 60rem rgba(0, 153, 203, .3);
	}

	.top__countdown-number--ms {
		font-size: 72rem;
	}

	.top__countdown-unit--ms::before {
		font-size: 72rem;
	}

	.top__countdown-suffix {
		font: var(--font-title);
		color: rgba(255, 255, 255, .85);
		margin-right: 4rem;
	}
}


/* =========================================================
   ハイライト（スケジュール）
   ========================================================= */

.top__schedule-block {
	padding: 40rem 0 48rem;
	background: linear-gradient(160deg, #0a1f3f 0%, var(--Blue, #0B2D7D) 100%);
}

.top__schedule-body {
	max-width: 1108rem;
	margin: 0 auto;
}

.top__schedule-content {
	padding: 0 20rem;
}

.top__schedule-title {
	font: var(--font-display);
	color: var(--white, #FFF);
	text-align: center;
	letter-spacing: 0;
	margin-bottom: 20rem;
}

/* タブ */
.top__schedule-tabs {
	display: flex;
	gap: 8rem;
	justify-content: center;
	margin-bottom: 24rem;
}

.top__schedule-tab {
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 10rem 20rem;
	border: 2px solid rgba(255, 255, 255, .3);
	border-radius: 8rem;
	background: transparent;
	color: rgba(255, 255, 255, .7);
	cursor: pointer;
	transition: all .2s ease;
}

.top__schedule-tab--active {
	border-color: var(--logo_blue, #0099CB);
	background: var(--logo_blue, #0099CB);
	color: var(--white, #FFF);
}

.top__schedule-tab-date {
	font: 600 18rem/1.2 "Bebas Neue", var(--Barlow), sans-serif;
	letter-spacing: .02em;
}

.top__schedule-tab-dow {
	font: var(--font-caption);
}

.top__schedule-tab--active .top__schedule-tab-dow {
	color: rgba(255, 255, 255, .85);
}

/* パネル */
.top__schedule-day {
	display: none;
}

.top__schedule-day--active {
	display: block;
}

.top__schedule-empty {
	font: var(--font-body);
	color: rgba(255, 255, 255, .6);
	text-align: center;
	padding: 40rem 0;
}

/* カードリスト */
.top__schedule-list {
	margin-bottom: 24rem;
}

.top__schedule-item-inner {
	display: flex;
	gap: 12rem;
	padding: 16rem;
	background: rgba(255, 255, 255, .07);
	border-radius: 8rem;
	border-left: 4px solid var(--logo_blue, #0099CB);
	text-decoration: none;
	color: inherit;
	transition: background .2s ease;
}

a.top__schedule-item-inner:hover {
	background: rgba(255, 255, 255, .13);
}

/* サムネイル */
.top__schedule-item-thumb {
	width: 72rem;
	min-width: 72rem;
	aspect-ratio: 1 / 1;
	border-radius: 4rem;
	overflow: hidden;
}

.top__schedule-item-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* 情報 */
.top__schedule-item-info {
	display: flex;
	flex-direction: column;
	gap: 4rem;
	min-width: 0;
}

.top__schedule-item-meta {
	display: flex;
	align-items: center;
	gap: 8rem;
	flex-wrap: wrap;
}

.top__schedule-item-time {
	font: 600 14rem/1 "Bebas Neue", var(--Barlow), sans-serif;
	color: var(--logo_blue, #0099CB);
	letter-spacing: .02em;
}

.top__schedule-item-venue {
	font: var(--font-caption);
	color: rgba(255, 255, 255, .55);
}

.top__schedule-item-title {
	font: var(--font-title);
	color: var(--white, #FFF);
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.top__schedule-item-cat {
	display: inline-block;
	font: var(--font-caption);
	color: var(--white, #FFF);
	background-color: rgba(255, 255, 255, .15);
	padding: 2rem 8rem;
	border-radius: 4rem;
	width: fit-content;
}

/* もっと見るボタン（白抜き） */
.top__schedule-more-button {
	border-color: rgba(255, 255, 255, .35);
}

.top__schedule-more-button .top__news-more-button-text {
	color: var(--white, #FFF);
}

.top__schedule-more-button .top__news-more-button-text::after {
	border-top-color: var(--white, #FFF);
	border-right-color: var(--white, #FFF);
}

/* PC -------------------------------------------------------- */
@media (min-width: 768px) {
	.top__schedule-block {
		padding: 60rem 0 64rem;
	}

	.top__schedule-title {
		margin-bottom: 32rem;
	}

	.top__schedule-tabs {
		gap: 12rem;
		margin-bottom: 32rem;
	}

	.top__schedule-tab {
		padding: 12rem 32rem;
		border-radius: 10rem;
	}

	.top__schedule-tab:not(.top__schedule-tab--active):hover {
		border-color: var(--logo_blue, #0099CB);
		color: var(--white, #FFF);
	}

	.top__schedule-tab-date {
		font-size: 28rem;
	}

	.top__schedule-list {
		margin-bottom: 32rem;
	}

	.top__schedule-item-inner {
		gap: 20rem;
		padding: 20rem 24rem;
	}

	.top__schedule-item-thumb {
		width: 96rem;
		min-width: 96rem;
	}

	.top__schedule-item-time {
		font-size: 20rem;
	}

	a.top__schedule-item-inner:hover .top__schedule-item-title {
		color: var(--logo_blue, #0099CB);
	}

	.top__schedule-more-button:hover {
		border-color: var(--white, #FFF);
	}
}
