/*
 * Event cards + grid (loop-templates/content-event-card.php).
 * Used by the events archive and "More events" on single events. Plain CSS, no build step.
 */

.event-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 2rem;
}

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

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

.event-card {
	--event-purple: var(--wp--preset--color--purple, #322173);
	--event-text: #212529; /* the site's main text colour (body copy), not the palette's #000 */
	--event-card-bg: #fff; /* set per context, e.g. light grey on the white events archive */
	height: 100%;
}

.event-card__link {
	display: flex;
	flex-direction: column;
	height: 100%;
	background: var(--event-card-bg);
	color: var(--event-text);
	transition: transform 0.2s ease;
}

@media (prefers-reduced-motion: reduce) {
	.event-card__link {
		transition: none;
	}
}

.event-card__link:hover,
.event-card__link:focus {
	transform: translateY(-2px);
	color: var(--event-text);
	text-decoration: none;
}

/* Fixed 16:9 frame (the size editors upload at); other ratios are contained, never cropped,
   over a blurred copy of themselves. */
.event-card__media {
	position: relative;
	isolation: isolate;
	display: block;
	overflow: hidden;
	aspect-ratio: 16 / 9;
	background: var(--event-purple);
}

/* Same treatment as the single-event hero: greyscale texture only, so the frame stays brand purple. */
.event-card__media::before {
	content: "";
	position: absolute;
	inset: -1.5rem;
	z-index: -1;
	background: var(--event-image) center / cover no-repeat;
	filter: blur(16px) grayscale(1) contrast(1.2);
	opacity: 0.55;
	mix-blend-mode: soft-light;
}

.event-card__media img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: contain;
}

/* Sticky events. */
.event-card__tag {
	position: absolute;
	top: 1rem;
	left: 1rem;
	padding: 0.3rem 0.85rem;
	border-radius: 30px;
	background: var(--wp--preset--color--yellow, #ffcf21);
	color: var(--event-text);
	font-family: "GillSansNova-SemiBold", sans-serif;
	font-size: 0.8125rem;
	letter-spacing: 0.05em;
	line-height: 1.2;
	text-transform: uppercase;
}

.event-card__body {
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
	padding: 1.25rem 1.5rem 1.5rem;
}

.event-card__date {
	color: var(--event-purple);
	font-family: "GillSansNova-SemiBold", sans-serif;
	font-size: 0.875rem;
	letter-spacing: 0.03em;
	text-transform: uppercase;
}

.event-card__past {
	color: var(--event-text);
}

.event-card__title {
	margin: 0;
	color: inherit;
	font-family: "GillSansNova-SemiBold", sans-serif;
	font-weight: normal; /* SemiBold is its own family; the theme's heading weight would be synthesised */
	font-size: 1.375rem;
	line-height: 1.25;
}

.event-card__title {
	transition: color 0.2s ease;
}

.event-card__link:hover .event-card__title,
.event-card__link:focus .event-card__title {
	color: var(--event-purple);
}

.event-card__location {
	color: var(--event-text);
	font-size: 1rem;
}

.event-card__location .fa {
	margin-right: 0.25rem;
	color: var(--event-purple);
}
