:root {
	--mmtv-event-ink: #11151b;
	--mmtv-event-muted: #68707a;
	--mmtv-event-line: #e4e7ea;
	--mmtv-event-soft: #f4f5f6;
	--mmtv-event-lime: #c8ff00;
}

.mmtv-upcoming-events {
	box-sizing: border-box;
	width: min(100%, 1480px);
	margin: 0 auto;
	padding: clamp(64px, 8vw, 116px) clamp(22px, 4vw, 64px);
	color: var(--mmtv-event-ink);
}

.mmtv-upcoming-events *,
.mmtv-upcoming-events *::before,
.mmtv-upcoming-events *::after {
	box-sizing: border-box;
}

.mmtv-upcoming-events__header {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 32px;
	margin-bottom: clamp(30px, 4vw, 52px);
}

.mmtv-upcoming-events__header > div {
	max-width: 760px;
}

.mmtv-upcoming-events__eyebrow,
.mmtv-featured-event__eyebrow {
	margin: 0 0 12px;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .16em;
	line-height: 1.2;
	text-transform: uppercase;
}

.mmtv-upcoming-events__header h2 {
	margin: 0;
	font-size: clamp(38px, 5vw, 72px);
	font-weight: 750;
	letter-spacing: -.055em;
	line-height: .98;
}

.mmtv-upcoming-events__header p:not(.mmtv-upcoming-events__eyebrow) {
	max-width: 680px;
	margin: 18px 0 0;
	color: var(--mmtv-event-muted);
	font-size: clamp(16px, 1.5vw, 19px);
	line-height: 1.6;
}

.mmtv-upcoming-events__header > a,
.mmtv-event-card__link {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	flex: 0 0 auto;
	color: var(--mmtv-event-ink);
	font-size: 14px;
	font-weight: 750;
	text-decoration: none;
}

.mmtv-upcoming-events__header > a {
	padding-bottom: 8px;
	border-bottom: 2px solid var(--mmtv-event-lime);
}

.mmtv-event-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(22px, 2.4vw, 36px);
}

.mmtv-event-card {
	display: flex;
	min-width: 0;
	flex-direction: column;
	overflow: hidden;
	border: 1px solid var(--mmtv-event-line);
	border-radius: 22px;
	background: #fff;
	box-shadow: 0 18px 54px rgba(17, 21, 27, .06);
	transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

.mmtv-event-card:hover {
	transform: translateY(-4px);
	border-color: #d7dbe0;
	box-shadow: 0 24px 70px rgba(17, 21, 27, .1);
}

.mmtv-event-card__media {
	display: block;
	position: relative;
	overflow: hidden;
	aspect-ratio: 16 / 9;
	background: #eef0f1;
}

.mmtv-event-card__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .45s ease;
}

.mmtv-event-card:hover .mmtv-event-card__media img {
	transform: scale(1.025);
}

.mmtv-event-card__placeholder {
	display: flex;
	width: 100%;
	height: 100%;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	background: linear-gradient(135deg, #f7f8f8, #e9ecee);
	color: var(--mmtv-event-ink);
}

.mmtv-event-card__placeholder small {
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .22em;
}

.mmtv-event-card__placeholder strong {
	font-size: 46px;
	letter-spacing: -.06em;
}

.mmtv-event-card__body {
	display: flex;
	height: 100%;
	padding: clamp(22px, 2.2vw, 30px);
	flex-direction: column;
}

.mmtv-event-card__badges {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
	margin-bottom: 15px;
}

.mmtv-event-badge {
	display: inline-flex;
	align-items: center;
	width: max-content;
	min-height: 26px;
	padding: 6px 10px;
	border-radius: 999px;
	background: #eef0f2;
	color: #343a42;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .08em;
	line-height: 1;
	text-transform: uppercase;
}

.mmtv-event-badge--today,
.mmtv-event-badge--ongoing,
.mmtv-event-badge--featured {
	background: var(--mmtv-event-lime);
	color: #0d1207;
}

.mmtv-event-badge--cancelled {
	background: #ffe9e7;
	color: #a52117;
}

.mmtv-event-badge--postponed {
	background: #fff1d6;
	color: #835900;
}

.mmtv-event-card h3,
.mmtv-event-list h3,
.mmtv-featured-event h3 {
	margin: 0;
	font-size: clamp(22px, 2vw, 29px);
	font-weight: 750;
	letter-spacing: -.035em;
	line-height: 1.12;
}

.mmtv-event-card h3 a,
.mmtv-event-list h3 a,
.mmtv-featured-event h3 a {
	color: inherit;
	text-decoration: none;
}

.mmtv-event-card__body > p {
	margin: 18px 0 0;
	color: var(--mmtv-event-muted);
	font-size: 15px;
	line-height: 1.55;
}

.mmtv-event-meta {
	display: grid;
	gap: 10px;
	margin-top: 18px;
	color: var(--mmtv-event-muted);
	font-size: 14px;
	line-height: 1.45;
}

.mmtv-event-meta > * {
	display: flex;
	align-items: flex-start;
	gap: 8px;
}

.mmtv-event-meta > * > span[aria-hidden] {
	color: #313740;
}

.mmtv-event-card__link {
	margin-top: auto;
	padding-top: 24px;
}

.mmtv-event-list {
	display: grid;
	border-top: 1px solid var(--mmtv-event-line);
}

.mmtv-event-list__item {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding: 26px 0;
	border-bottom: 1px solid var(--mmtv-event-line);
}

.mmtv-event-list__item h3 {
	margin-top: 12px;
}

.mmtv-event-list__arrow {
	display: grid;
	width: 46px;
	height: 46px;
	place-items: center;
	flex: 0 0 auto;
	border-radius: 50%;
	background: var(--mmtv-event-soft);
	color: var(--mmtv-event-ink);
	font-size: 20px;
	text-decoration: none;
}

.mmtv-featured-event {
	display: grid;
	grid-template-columns: minmax(0, 1.35fr) minmax(320px, .65fr);
	overflow: hidden;
	border-radius: 26px;
	background: #0f1216;
	color: #fff;
}

.mmtv-featured-event__media {
	min-height: 480px;
}

.mmtv-featured-event__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.mmtv-featured-event__body {
	display: flex;
	justify-content: center;
	padding: clamp(34px, 4vw, 64px);
	flex-direction: column;
}

.mmtv-featured-event__body > p:not(.mmtv-featured-event__eyebrow) {
	color: #bdc2c8;
	line-height: 1.6;
}

.mmtv-featured-event .mmtv-event-meta {
	color: #d1d5da;
}

.mmtv-event-button {
	display: inline-flex;
	width: max-content;
	margin-top: 14px;
	padding: 13px 19px;
	border-radius: 999px;
	background: var(--mmtv-event-lime);
	color: #0c1107;
	font-size: 13px;
	font-weight: 800;
	text-decoration: none;
}

.mmtv-empty-events {
	display: flex;
	align-items: center;
	gap: clamp(20px, 3vw, 36px);
	padding: clamp(26px, 4vw, 44px);
	border: 1px solid var(--mmtv-event-line);
	border-radius: 22px;
	background: var(--mmtv-event-soft);
}

.mmtv-empty-events > span {
	display: grid;
	width: 88px;
	min-height: 88px;
	place-items: center;
	flex: 0 0 auto;
	border-radius: 18px;
	background: #fff;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .12em;
}

.mmtv-empty-events h3 {
	margin: 0;
	font-size: 22px;
}

.mmtv-empty-events p {
	margin: 8px 0 0;
	color: var(--mmtv-event-muted);
}

.mmtv-loading-events {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
}

.mmtv-loading-events span {
	display: block;
	aspect-ratio: 16 / 9;
	border-radius: 20px;
	background: var(--mmtv-event-soft);
	animation: mmtv-event-pulse 1.4s ease-in-out infinite alternate;
}

.mmtv-loading-events p {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
}

@keyframes mmtv-event-pulse {
	to { opacity: .55; }
}

.mmtv-event-card a:focus-visible,
.mmtv-event-list a:focus-visible,
.mmtv-upcoming-events__header a:focus-visible,
.mmtv-featured-event a:focus-visible {
	outline: 3px solid #6f8c00;
	outline-offset: 4px;
}

@media (max-width: 1020px) {
	.mmtv-event-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.mmtv-featured-event {
		grid-template-columns: 1fr;
	}

	.mmtv-featured-event__media {
		min-height: 0;
		aspect-ratio: 16 / 9;
	}
}

@media (max-width: 680px) {
	.mmtv-upcoming-events {
		padding-inline: 18px;
	}

	.mmtv-upcoming-events__header {
		align-items: flex-start;
		flex-direction: column;
	}

	.mmtv-event-grid {
		grid-template-columns: 1fr;
	}

	.mmtv-event-card {
		border-radius: 18px;
	}

	.mmtv-event-list__item {
		align-items: flex-start;
	}

	.mmtv-featured-event {
		border-radius: 20px;
	}

	.mmtv-empty-events {
		align-items: flex-start;
		flex-direction: column;
	}

	.mmtv-loading-events {
		grid-template-columns: 1fr;
	}
}

@media (prefers-reduced-motion: reduce) {
	.mmtv-event-card,
	.mmtv-event-card__media img,
	.mmtv-loading-events span {
		animation: none;
		transition: none;
	}
}
