/* Event cards grid component styles. Override the namespaced variables as needed. */
.sfc-event-cards {
	--sfc-event-cards-columns: var(--sfc-event-cards-mobile, 1);
	width: 100%;
	min-width: 0;
	/* Stay clickable when a page builder box is shorter than the component. */
	position: relative;
	z-index: 1;
	color: var(--sfc-event-cards-body-color, inherit);
}
.sfc-event-cards *, .sfc-event-cards *::before, .sfc-event-cards *::after { box-sizing: border-box; }
.sfc-event-cards [hidden] { display: none !important; }
.sfc-event-cards .sfc-event-cards__heading {
	margin: 0 0 28px;
	color: var(--sfc-event-cards-heading-color, var(--sfc-blue, #013C78));
	font-size: clamp(1.75rem, 3vw, 2.5rem);
	font-weight: 700;
	line-height: 1.2;
	text-align: left;
	text-wrap: balance;
}
/* The asterisk-marked word in the heading renders as a rounded pill. */
.sfc-event-cards .sfc-event-cards__heading-pill {
	display: inline-block;
	padding: 0.08em 0.55em 0.14em;
	border-radius: 999px;
	background: var(--sfc-event-cards-pill-background, var(--sfc-gold, #E2AD2D));
	color: var(--sfc-event-cards-pill-text, #FEFEFE);
}
.sfc-event-cards .sfc-event-cards__grid { display: grid; grid-template-columns: repeat(var(--sfc-event-cards-columns), minmax(0, 1fr)); gap: 24px; align-items: stretch; }
@media (min-width: 640px) { .sfc-event-cards .sfc-event-cards__grid { grid-template-columns: repeat(var(--sfc-event-cards-tablet, 2), minmax(0, 1fr)); } }
@media (min-width: 1024px) { .sfc-event-cards .sfc-event-cards__grid { grid-template-columns: repeat(var(--sfc-event-cards-desktop, 4), minmax(0, 1fr)); } }
.sfc-event-cards .sfc-event-cards__card {
	display: flex;
	flex-direction: column;
	padding: var(--sfc-event-cards-card-padding, 8px) var(--sfc-event-cards-card-padding-x, 8px);
	border: var(--sfc-event-cards-border-width, 1px) solid var(--sfc-event-cards-border-color, rgba(1, 60, 120, 0.14));
	border-radius: var(--sfc-event-cards-border-radius, 16px);
	background: var(--sfc-event-cards-card-background, Canvas);
	transition: transform 160ms ease, box-shadow 160ms ease;
}
.sfc-event-cards .sfc-event-cards__card:hover { transform: translateY(-4px); box-shadow: 0 12px 28px rgba(1, 60, 120, 0.14); }
/* Hover effects off (Cards Appearance): the card stays put. */
.sfc-event-cards--hover-off .sfc-event-cards__card:hover { transform: none; box-shadow: none; }
.sfc-event-cards .sfc-event-cards__card-image { display: block; aspect-ratio: var(--sfc-event-cards-image-ratio, 16/10); margin: 0 0 14px; border-radius: var(--sfc-event-cards-image-radius, 12px); overflow: hidden; background: color-mix(in srgb, var(--sfc-event-cards-border-color, #013C78) 8%, Canvas); }
.sfc-event-cards .sfc-event-cards__card-image img { display: block; width: 100%; height: 100%; object-fit: var(--sfc-event-cards-image-fit, cover); transition: transform 0.2s ease; }
/* The banner links to the booking page when one is set; hovering zooms it slightly. */
.sfc-event-cards .sfc-event-cards__card-image:hover img { transform: scale(1.04); }
.sfc-event-cards .sfc-event-cards__card-body { display: flex; flex-direction: column; flex: 1; padding: var(--sfc-event-cards-body-padding, 0 4px); }
/* Date pill on the left, time and platform stacked on the right. */
.sfc-event-cards .sfc-event-cards__when { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 0 0 14px; }
.sfc-event-cards .sfc-event-cards__date {
	flex: none;
	padding: var(--sfc-event-cards-date-padding, 12px) var(--sfc-event-cards-date-padding-x, 20px);
	border-radius: 999px;
	background: var(--sfc-event-cards-date-background, var(--sfc-gold, #E2AD2D));
	color: var(--sfc-event-cards-date-text, #FEFEFE);
	font-size: var(--sfc-event-cards-date-font-size, 0.95rem);
	font-weight: 600;
	line-height: 1.2;
	white-space: nowrap;
}
.sfc-event-cards .sfc-event-cards__details { display: flex; flex-direction: column; gap: var(--sfc-event-cards-details-gap, 8px); min-width: 0; }
.sfc-event-cards .sfc-event-cards__detail { display: flex; align-items: center; gap: 8px; font-size: var(--sfc-event-cards-text-font-size, 0.95rem); line-height: 1.35; }
.sfc-event-cards .sfc-event-cards__detail svg { width: var(--sfc-event-cards-icon-size, 20px); height: var(--sfc-event-cards-icon-size, 20px); fill: var(--sfc-event-cards-icon-color, var(--sfc-blue, #013C78)); flex: none; }
.sfc-event-cards .sfc-event-cards__title {
	margin: 0 0 16px;
	color: var(--sfc-event-cards-title-color, var(--sfc-blue, #013C78));
	font-size: var(--sfc-event-cards-title-font-size, clamp(1.125rem, 1.5vw, 1.375rem));
	font-weight: 700;
	line-height: 1.25;
}
/* The title links to the booking page when one is set; hover warms it to gold. */
.sfc-event-cards .sfc-event-cards__title a { color: inherit; text-decoration: none; transition: color 0.1s ease; }
.sfc-event-cards .sfc-event-cards__title a:hover { color: var(--sfc-event-cards-button-hover, var(--sfc-gold, #E2AD2D)); }
/* The full-width Book Now button: label left, chevron hard right. */
.sfc-event-cards .sfc-event-cards__button {
	margin-top: auto;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 6px;
	width: 100%;
	padding: var(--sfc-event-cards-button-padding, 14px) var(--sfc-event-cards-button-padding-x, 22px);
	border-radius: var(--sfc-event-cards-button-radius, 24px);
	background: var(--sfc-event-cards-button-background, var(--sfc-blue, #013C78));
	color: var(--sfc-event-cards-button-text, #FEFEFE);
	font: inherit;
	font-size: var(--sfc-event-cards-button-font-size, 0.95rem);
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
	transition: background-color 0.1s ease, color 0.1s ease;
}
.sfc-event-cards .sfc-event-cards__button:hover { background: var(--sfc-event-cards-button-hover, var(--sfc-gold, #E2AD2D)); color: var(--sfc-event-cards-button-hover-text, var(--sfc-blue, #013C78)); }
.sfc-event-cards .sfc-event-cards__button:focus-visible { outline: 2px solid var(--sfc-event-cards-button-hover, var(--sfc-blue, #013C78)); outline-offset: 2px; }
.sfc-event-cards .sfc-event-cards__see-all-wrap { text-align: center; margin: 28px 0 0; }
.sfc-event-cards .sfc-event-cards__see-all {
	display: inline-block;
	padding: 14px 32px;
	border-radius: 999px;
	background: var(--sfc-event-cards-see-all-background, var(--sfc-blue, #013C78));
	color: var(--sfc-event-cards-see-all-text, #FEFEFE);
	font: inherit;
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
	transition: background-color 0.1s ease, color 0.1s ease;
}
.sfc-event-cards .sfc-event-cards__see-all:hover { background: var(--sfc-event-cards-see-all-hover, var(--sfc-gold, #E2AD2D)); color: var(--sfc-event-cards-see-all-hover-text, var(--sfc-blue, #013C78)); }
.sfc-event-cards .sfc-event-cards__see-all:focus-visible { outline: 2px solid var(--sfc-event-cards-see-all-hover, var(--sfc-blue, #013C78)); outline-offset: 2px; }
@media (max-width: 639px) {
	.sfc-event-cards .sfc-event-cards__grid { gap: 14px; }
	.sfc-event-cards .sfc-event-cards__card-image { margin-bottom: 12px; border-radius: 10px; }
	.sfc-event-cards .sfc-event-cards__when { gap: 10px; margin-bottom: 12px; }
	.sfc-event-cards .sfc-event-cards__title { margin-bottom: 12px; }
}
@media (prefers-reduced-motion: reduce) {
	.sfc-event-cards .sfc-event-cards__card,
	.sfc-event-cards .sfc-event-cards__button,
	.sfc-event-cards .sfc-event-cards__see-all,
	.sfc-event-cards .sfc-event-cards__title a,
	.sfc-event-cards .sfc-event-cards__card-image img { transition: none; }
	.sfc-event-cards .sfc-event-cards__card:hover { transform: none; }
	.sfc-event-cards .sfc-event-cards__card-image:hover img { transform: none; }
}
