.mmgf-upcoming-events {
	display: grid;
	gap: 34px;
}

.mmgf-upcoming-events__heading {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 48px;
	align-items: end;
}

.mmgf-upcoming-events__heading-copy > span {
	color: #b3212d;
	font: 700 .72rem/1.3 Poppins, sans-serif;
	letter-spacing: .09em;
	text-transform: uppercase;
}

.mmgf-upcoming-events__heading h2 {
	max-width: 820px;
	margin: 12px 0 0;
	font: 750 clamp(2.2rem, 4.5vw, 4.5rem)/.98 Inter, sans-serif;
	letter-spacing: -.055em;
}

.mmgf-upcoming-events__heading-copy > p {
	max-width: 760px;
	margin: 20px 0 0;
	color: #625d56;
	font: 400 .94rem/1.75 Poppins, sans-serif;
}

.mmgf-upcoming-events__grid {
	display: grid;
	grid-template-columns: repeat(var(--mmgf-event-columns, 4), minmax(0, 1fr));
	gap: 18px;
}

.mmgf-upcoming-event-card {
	overflow: hidden;
	border-radius: 16px;
	background: #fff;
	box-shadow: 0 16px 42px rgba(24, 20, 13, .09);
	transition: transform .6s cubic-bezier(.22, 1, .36, 1), box-shadow .4s ease;
}

.mmgf-upcoming-event-card:hover {
	box-shadow: 0 28px 62px rgba(24, 20, 13, .15);
	transform: translateY(-7px);
}

.mmgf-upcoming-event-card__media {
	display: block;
	height: 220px;
	overflow: hidden;
	background: #111;
	text-decoration: none;
}

.mmgf-upcoming-event-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .75s cubic-bezier(.22, 1, .36, 1);
}

.mmgf-upcoming-event-card:hover .mmgf-upcoming-event-card__media img {
	transform: scale(1.055);
}

.mmgf-upcoming-event-card__media > span {
	display: grid;
	width: 100%;
	height: 100%;
	place-items: center;
	color: #efa83a;
	font: 750 2rem Inter, sans-serif;
	letter-spacing: .12em;
}

.mmgf-upcoming-event-card__body {
	display: grid;
	grid-template-columns: 58px minmax(0, 1fr);
	gap: 18px;
	padding: 24px;
}

.mmgf-upcoming-event-card__date {
	padding-right: 14px;
	border-right: 1px solid #e7e1d8;
	text-align: center;
}

.mmgf-upcoming-event-card__date strong,
.mmgf-upcoming-event-card__date span {
	display: block;
}

.mmgf-upcoming-event-card__date strong {
	font: 750 1.75rem/1 Inter, sans-serif;
}

.mmgf-upcoming-event-card__date span {
	margin-top: 7px;
	color: #b3212d;
	font: 700 .63rem/1.3 Poppins, sans-serif;
	text-transform: uppercase;
}

.mmgf-upcoming-event-card__content > span {
	color: #b3212d;
	font: 700 .62rem/1.35 Poppins, sans-serif;
	letter-spacing: .05em;
	text-transform: uppercase;
}

.mmgf-upcoming-event-card__content h3 {
	margin: 9px 0;
	font: 750 1.25rem/1.14 Inter, sans-serif;
	letter-spacing: -.025em;
}

.mmgf-upcoming-event-card__content p {
	margin: 0 0 18px;
	color: #6d665e;
	font: 400 .78rem/1.55 Poppins, sans-serif;
}

.mmgf-upcoming-event-card__content > a {
	color: #111;
	font: 700 .76rem/1.3 Poppins, sans-serif;
	text-decoration: none;
}

.mmgf-upcoming-event-card__content > a b {
	display: inline-block;
	color: #b3212d;
	transition: transform .3s ease;
}

.mmgf-upcoming-event-card__content > a:hover b {
	transform: translateX(5px);
}

.mmgf-upcoming-events__button {
	position: relative;
	display: inline-flex;
	align-self: start;
	width: max-content;
	min-height: 51px;
	margin-top: 40px;
	align-items: center;
	overflow: hidden;
	padding: 0 24px;
	border-radius: 8px;
	background: #b3212d !important;
	color: #fff !important;
	font: 700 .82rem Poppins, sans-serif;
	text-decoration: none;
	transition: letter-spacing .55s cubic-bezier(.22, 1, .36, 1);
}

.mmgf-upcoming-events__button::before {
	position: absolute;
	top: -25%;
	bottom: -25%;
	left: 0;
	width: 18%;
	background: rgba(255, 255, 255, .24);
	content: '';
	transform: translateX(-220%) skewX(-18deg);
	transition: transform 900ms cubic-bezier(.22, 1, .36, 1);
}

.mmgf-upcoming-events__button:hover {
	color: #fff !important;
	letter-spacing: .04em;
}

.mmgf-upcoming-events__button:hover::before {
	transform: translateX(680%) skewX(-18deg);
}

.mmgf-upcoming-events__empty {
	padding: 32px;
	border-radius: 14px;
	background: #fff;
	color: #686159;
	font: 500 .9rem Poppins, sans-serif;
}

@media (max-width: 1100px) {
	.mmgf-upcoming-events__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 700px) {
	.mmgf-upcoming-events__heading,
	.mmgf-upcoming-events__grid {
		grid-template-columns: 1fr;
	}

	.mmgf-upcoming-events__heading {
		gap: 28px;
	}

	.mmgf-upcoming-event-card__media {
		height: 250px;
	}

	.mmgf-upcoming-events__button {
		width: 100%;
		margin-top: 0;
		justify-content: center;
	}
}

@media (prefers-reduced-motion: reduce) {
	.mmgf-upcoming-event-card,
	.mmgf-upcoming-event-card__media img,
	.mmgf-upcoming-events__button,
	.mmgf-upcoming-events__button::before {
		transition: none;
	}

	.mmgf-upcoming-event-card:hover {
		transform: none;
	}
}
