.sp3kcc-cal-card {
	margin-bottom: 1.15rem;
}

.sp3kcc-cal-card h2,
.sp3kcc-cal-card h3 {
	margin: 0;
	font-family: "Black Ops One", "Arial Black", sans-serif;
	letter-spacing: 0.03em;
	font-size: clamp(1.2rem, 3vw, 1.7rem);
}

.sp3kcc-cal-pics {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	align-items: flex-start;
}

.sp3kcc-cal-pics.is-top {
	justify-content: center;
	margin: 0 0 0.75rem;
}

.sp3kcc-cal-pics.is-bottom {
	justify-content: center;
	margin: 0.75rem 0 0;
}

.sp3kcc-wrap .sp3kcc-card.sp3kcc-cal-card .sp3kcc-cal-pic,
.sp3kcc-cal .sp3kcc-card.sp3kcc-cal-card .sp3kcc-cal-pic,
.sp3kcc-cal-pic {
	display: block;
	width: auto;
	max-width: 10.5rem;
	height: auto;
	max-height: 7.5rem;
	object-fit: contain;
	object-position: center;
	background: #fff;
	border: 3px solid #111;
	border-radius: 8px;
	box-shadow: 4px 4px 0 rgba(22, 50, 20, 0.18);
}

.sp3kcc-wrap .sp3kcc-card.sp3kcc-cal-card .sp3kcc-cal-pics.is-bottom .sp3kcc-cal-pic,
.sp3kcc-cal .sp3kcc-card.sp3kcc-cal-card .sp3kcc-cal-pics.is-bottom .sp3kcc-cal-pic,
.sp3kcc-cal-pics.is-bottom .sp3kcc-cal-pic {
	max-width: 9.5rem;
	max-height: 6.75rem;
}

.sp3kcc-cal-row {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem 0.9rem;
	align-items: flex-start;
}

.sp3kcc-cal-copy {
	flex: 1 1 14rem;
	min-width: 0;
}

.sp3kcc-cal-pics.is-side {
	flex: 0 0 auto;
	width: auto;
	max-width: 7.6rem;
}

.sp3kcc-wrap .sp3kcc-card.sp3kcc-cal-card .sp3kcc-cal-pics.is-side .sp3kcc-cal-pic,
.sp3kcc-cal .sp3kcc-card.sp3kcc-cal-card .sp3kcc-cal-pics.is-side .sp3kcc-cal-pic,
.sp3kcc-cal-pics.is-side .sp3kcc-cal-pic {
	max-width: 7.6rem;
	max-height: 7.6rem;
}

.sp3kcc-cal-copy-top {
	display: flex;
	gap: 0.85rem;
	align-items: flex-start;
}

.sp3kcc-cal-leaf {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-width: 4.1rem;
	flex-shrink: 0;
	padding: 0.35rem 0.5rem 0.45rem;
	background: #fff;
	border: 3px solid #111;
	border-radius: 8px;
	box-shadow: 4px 4px 0 #111;
	color: #111;
	line-height: 1;
}

.sp3kcc-cal-leaf-mon {
	font-size: 0.68rem;
	font-weight: 800;
	letter-spacing: 0.14em;
	color: #7a1212;
}

.sp3kcc-cal-leaf-day {
	font-family: "Black Ops One", "Arial Black", sans-serif;
	font-size: 1.85rem;
	letter-spacing: 0.02em;
}

.sp3kcc-cal-kicker {
	margin: 0 0 0.2rem;
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: #2a4f1f;
}

.sp3kcc-cal-kicker span {
	display: inline-flex;
	align-items: center;
	gap: 0.35em;
	background: #f0c400;
	color: #111;
	padding: 0.12rem 0.4rem;
	border-radius: 6px;
	letter-spacing: 0.08em;
}

.sp3kcc-cal-meta {
	margin: 0.3rem 0 0;
	font-weight: 700;
}

.sp3kcc-cal-note {
	margin: 0.55rem 0 0;
	font-weight: 600;
}

.sp3kcc-cal-banner-cta {
	margin: 0.9rem 0 0;
}

.sp3kcc-cal {
	margin: 0 0 1.5rem;
}

.sp3kcc-page > article.sp3kcc-card:has(.sp3kcc-cal) {
	background: transparent;
	border: 0;
	box-shadow: none;
	padding: 0;
}

.sp3kcc-cal-h {
	margin: 0 0 0.7rem;
	font-family: "Black Ops One", "Arial Black", sans-serif;
	letter-spacing: 0.03em;
	font-size: 1.25rem;
}

.sp3kcc-cal-list + .sp3kcc-cal-h {
	margin-top: 1.35rem;
}

.sp3kcc-cal-list {
	display: grid;
	gap: 0.15rem;
}

.sp3kcc-cal-card.is-home {
	position: relative;
	outline: 3px solid #f0c400;
	box-shadow: 7px 7px 0 rgba(22, 50, 20, 0.22), 0 0 0 6px rgba(240, 196, 0, 0.35);
	padding-top: 1.45rem;
}

.sp3kcc-cal-card.is-home::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	height: 7px;
	border-radius: 9px 9px 0 0;
	background: repeating-linear-gradient(
		-45deg,
		#f0c400 0 9px,
		#111 9px 14px
	);
	background-size: 26px 7px;
	animation: sp-cal-stripe 0.7s linear infinite;
}

.sp3kcc-cal-card.is-home .sp3kcc-cal-kicker span::before {
	content: "";
	width: 0.52em;
	height: 0.52em;
	border-radius: 50%;
	background: #c41212;
	box-shadow: 0 0 0 0 rgba(196, 18, 18, 0.55);
	animation: sp-cal-dot 1.25s ease-out infinite;
	flex-shrink: 0;
}

.sp3kcc-cal-card.is-home .sp3kcc-cal-leaf {
	animation: sp-cal-leaf 1.5s ease-in-out infinite;
}

.sp3kcc-cal-card.is-home .sp3kcc-cal-banner-cta .sp3kcc-btn {
	animation: sp-cal-btn 1.7s ease-in-out infinite;
}

@keyframes sp-cal-stripe {
	to { background-position: 26px 0; }
}

@keyframes sp-cal-dot {
	0% { box-shadow: 0 0 0 0 rgba(196, 18, 18, 0.55); }
	70% { box-shadow: 0 0 0 0.55rem rgba(196, 18, 18, 0); }
	100% { box-shadow: 0 0 0 0 rgba(196, 18, 18, 0); }
}

@keyframes sp-cal-leaf {
	0%, 100% { transform: translateY(0); }
	50% { transform: translateY(-2px); }
}

@keyframes sp-cal-btn {
	0%, 100% { transform: translateY(0); box-shadow: 3px 3px 0 #111; }
	50% { transform: translateY(-2px); box-shadow: 3px 5px 0 #111; }
}

@media (max-width: 720px) {
	.sp3kcc-cal-pics.is-side {
		flex: 1 1 100%;
		width: 100%;
		max-width: none;
		justify-content: center;
	}
	.sp3kcc-cal-banner-cta .sp3kcc-btn {
		width: 100%;
		min-height: 2.85rem;
	}
	.sp3kcc-wrap .sp3kcc-card.sp3kcc-cal-card .sp3kcc-cal-pic,
	.sp3kcc-cal .sp3kcc-card.sp3kcc-cal-card .sp3kcc-cal-pic,
	.sp3kcc-cal-pic {
		max-width: min(8.6rem, 42vw);
		max-height: 6.2rem;
	}
	.sp3kcc-wrap .sp3kcc-card.sp3kcc-cal-card .sp3kcc-cal-pics.is-bottom .sp3kcc-cal-pic,
	.sp3kcc-cal .sp3kcc-card.sp3kcc-cal-card .sp3kcc-cal-pics.is-bottom .sp3kcc-cal-pic,
	.sp3kcc-cal-pics.is-bottom .sp3kcc-cal-pic,
	.sp3kcc-wrap .sp3kcc-card.sp3kcc-cal-card .sp3kcc-cal-pics.is-side .sp3kcc-cal-pic,
	.sp3kcc-cal .sp3kcc-card.sp3kcc-cal-card .sp3kcc-cal-pics.is-side .sp3kcc-cal-pic,
	.sp3kcc-cal-pics.is-side .sp3kcc-cal-pic {
		max-width: min(7.8rem, 40vw);
		max-height: 5.8rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.sp3kcc-cal-card.is-home::before,
	.sp3kcc-cal-card.is-home .sp3kcc-cal-kicker span::before,
	.sp3kcc-cal-card.is-home .sp3kcc-cal-leaf,
	.sp3kcc-cal-card.is-home .sp3kcc-cal-banner-cta .sp3kcc-btn {
		animation: none;
	}
}

body.sp3kcc-nye .sp3kcc-cal-kicker {
	color: #92680a;
}

body.sp3kcc-nye .sp3kcc-cal-kicker span {
	background: #f5d76e;
}

body.sp3kcc-nye .sp3kcc-cal-card.is-home {
	outline-color: #f5d76e;
	box-shadow: 7px 7px 0 rgba(5, 8, 20, 0.35), 0 0 0 6px rgba(245, 215, 110, 0.4);
}
