/**
 * Homepage upcoming-events strip. Selectors stay more specific than typical
 * theme content rules (.entry-content ul/li/h2/h3/a/img) so the theme cannot
 * restyle the strip. Cards reuse the kalender markup (.wpco-calendar__item).
 * size="small|medium|large|xlarge" sets grid columns and card count (5/4/3/2);
 * cards wrap on smaller screens without scrolling.
 */

pre.wp-block-shortcode:has(.wpco-carousel),
figure.wp-block-shortcode:has(.wpco-carousel),
.wp-block-shortcode:has(.wpco-carousel),
p:has(> .wpco-carousel),
.elementor-widget-shortcode:has(.wpco-carousel),
.elementor-widget-text-editor:has(.wpco-carousel),
.elementor-shortcode:has(.wpco-carousel),
.elementor-widget-container:has(.wpco-carousel) {
	display: block !important;
	font-family: inherit !important;
	font-size: inherit !important;
	line-height: inherit !important;
	white-space: normal !important;
	background: transparent !important;
	border: 0 !important;
	padding: 0 !important;
	margin: 0 0 1.5em !important;
	overflow: visible !important;
	max-width: 100% !important;
	width: 100% !important;
	box-shadow: none !important;
	color: inherit !important;
}

.wpco-carousel[data-wpco-carousel],
.wpco-carousel[data-wpco-carousel] *,
.wpco-carousel[data-wpco-carousel] *::before,
.wpco-carousel[data-wpco-carousel] *::after {
	box-sizing: border-box;
}

.wpco-carousel[data-wpco-carousel] {
	--wpco-color-primary: #5e7e7e;
	--wpco-color-primary-light: #eef2f2;
	--wpco-color-text: #1a1a1a;
	--wpco-color-muted: #5c5c5c;
	--wpco-color-border: #d4dcdb;
	--wpco-color-bg: #f5f7f7;
	--wpco-radius: 8px;
	--wpco-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
	--wpco-carousel-visible: 4;
	--wpco-carousel-gap: 1.25rem;
	isolation: isolate;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--wpco-color-text);
	font-family: inherit;
	-webkit-text-size-adjust: 100%;
}

.wpco-carousel[data-wpco-carousel].wpco-carousel--small {
	--wpco-carousel-visible: 5;
}

.wpco-carousel[data-wpco-carousel].wpco-carousel--medium {
	--wpco-carousel-visible: 4;
}

.wpco-carousel[data-wpco-carousel].wpco-carousel--large {
	--wpco-carousel-visible: 3;
}

.wpco-carousel[data-wpco-carousel].wpco-carousel--xlarge {
	--wpco-carousel-visible: 2;
}

.wpco-carousel[data-wpco-carousel] .wpco-carousel__see-all-wrap {
	display: flex;
	justify-content: flex-end;
	margin: 1.25rem 0 1.75rem;
	padding: 0;
	border: 0;
	background: none;
}

.wpco-carousel[data-wpco-carousel] a.wpco-carousel__see-all,
.wpco-carousel[data-wpco-carousel] a.wpco-carousel__see-all:link,
.wpco-carousel[data-wpco-carousel] a.wpco-carousel__see-all:visited {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 0.65rem 1.1rem !important;
	border: 0 !important;
	border-radius: var(--wpco-radius, 8px) !important;
	background: var(--wpco-color-primary, #5e7e7e) !important;
	color: #fff !important;
	text-decoration: none !important;
	box-shadow: none !important;
	font-family: inherit;
	font-size: 0.92rem !important;
	font-weight: 700 !important;
	line-height: 1.2 !important;
	white-space: nowrap;
	flex-shrink: 0;
	transition: filter 0.2s ease, transform 0.2s ease;
}

.wpco-carousel[data-wpco-carousel] a.wpco-carousel__see-all:hover,
.wpco-carousel[data-wpco-carousel] a.wpco-carousel__see-all:focus {
	filter: brightness(0.95);
	color: #fff !important;
	text-decoration: none !important;
	background: var(--wpco-color-primary, #5e7e7e) !important;
	transform: translateY(-1px);
}

.wpco-carousel[data-wpco-carousel] ul.wpco-carousel__track,
.wpco-carousel[data-wpco-carousel] ul.wpco-carousel__list {
	display: grid !important;
	grid-template-columns: repeat(var(--wpco-carousel-visible), minmax(0, 1fr));
	align-items: stretch;
	gap: var(--wpco-carousel-gap);
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
	width: 100%;
	max-width: none;
	background: none;
	border: 0;
	overflow: visible;
}

.wpco-carousel[data-wpco-carousel] ul.wpco-carousel__track > li.wpco-calendar__item,
.wpco-carousel[data-wpco-carousel] .wpco-carousel__card {
	width: 100% !important;
	min-width: 0 !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}

.wpco-carousel[data-wpco-carousel] ul.wpco-carousel__track > li.wpco-calendar__item .wpco-calendar__item-card,
.wpco-carousel[data-wpco-carousel] article.wpco-calendar__item-card,
.wpco-carousel[data-wpco-carousel] .wpco-carousel__card-link {
	display: flex !important;
	flex-direction: column;
	height: 100%;
	margin: 0 !important;
	padding: 0 !important;
	background: #fff !important;
	border: 1px solid var(--wpco-color-border, #d4dcdb) !important;
	border-radius: var(--wpco-radius, 8px) !important;
	box-shadow: var(--wpco-shadow, 0 2px 8px rgba(0, 0, 0, 0.06)) !important;
	overflow: hidden;
	transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.wpco-carousel[data-wpco-carousel] article.wpco-calendar__item-card:hover,
.wpco-carousel[data-wpco-carousel] article.wpco-calendar__item-card:focus-within {
	border-color: var(--wpco-color-primary, #5e7e7e) !important;
	box-shadow: 0 8px 24px rgba(94, 126, 126, 0.14) !important;
	transform: translateY(-2px);
}

.wpco-carousel[data-wpco-carousel] a.wpco-calendar__item-link,
.wpco-carousel[data-wpco-carousel] a.wpco-calendar__item-link:link,
.wpco-carousel[data-wpco-carousel] a.wpco-calendar__item-link:visited,
.wpco-carousel[data-wpco-carousel] a.wpco-carousel__card-link,
.wpco-carousel[data-wpco-carousel] a.wpco-carousel__card-link:link,
.wpco-carousel[data-wpco-carousel] a.wpco-carousel__card-link:visited {
	display: flex !important;
	flex-direction: column;
	flex: 1;
	height: 100%;
	margin: 0 !important;
	padding: 0 !important;
	background: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	text-decoration: none !important;
	color: inherit !important;
}

.wpco-carousel[data-wpco-carousel] a.wpco-calendar__item-link:hover,
.wpco-carousel[data-wpco-carousel] a.wpco-calendar__item-link:focus,
.wpco-carousel[data-wpco-carousel] a.wpco-carousel__card-link:hover,
.wpco-carousel[data-wpco-carousel] a.wpco-carousel__card-link:focus {
	color: inherit !important;
	text-decoration: none !important;
	background: transparent !important;
}

.wpco-carousel[data-wpco-carousel] .wpco-calendar__item-media {
	position: relative;
	aspect-ratio: 1 / 1;
	overflow: hidden;
	background: var(--wpco-color-primary-light, #eef2f2);
}

.wpco-carousel[data-wpco-carousel] .wpco-calendar__item-media-placeholder {
	width: 100%;
	height: 100%;
	background:
		linear-gradient(135deg, var(--wpco-color-primary-light, #eef2f2) 0%, #fff 55%, var(--wpco-color-primary-light, #eef2f2) 100%);
}

.wpco-carousel[data-wpco-carousel] img.wpco-calendar__thumbnail,
.wpco-carousel[data-wpco-carousel] .wpco-calendar__thumbnail {
	position: absolute !important;
	inset: 0 !important;
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	max-height: none !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	object-fit: cover !important;
}

.wpco-carousel[data-wpco-carousel] .wpco-calendar__item-location-badge {
	position: absolute;
	z-index: 1;
	top: 0.75rem;
	left: 0.75rem;
	max-width: calc(100% - 1.5rem);
	padding: 0.3rem 0.65rem !important;
	background: var(--wpco-color-primary, #5e7e7e) !important;
	color: #fff !important;
	font-size: 0.72rem !important;
	font-weight: 700 !important;
	line-height: 1.2 !important;
	border-radius: 999px;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.wpco-carousel[data-wpco-carousel] .wpco-calendar__item-body {
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
	flex: 1;
	padding: 1rem !important;
	margin: 0;
	background: none;
}

.wpco-carousel[data-wpco-carousel] h3.wpco-calendar__item-title {
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: none !important;
	font-family: inherit;
	font-size: 1.05rem !important;
	font-weight: 700 !important;
	line-height: 1.35 !important;
	color: var(--wpco-color-text, #1a1a1a) !important;
	text-transform: none !important;
	letter-spacing: normal !important;
}

.wpco-carousel[data-wpco-carousel] p.wpco-calendar__item-date-text {
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: none !important;
	font-family: inherit;
	font-size: 0.88rem !important;
	line-height: 1.45 !important;
	font-weight: 600 !important;
	color: var(--wpco-color-primary, #5e7e7e) !important;
}

.wpco-carousel[data-wpco-carousel] li.wpco-calendar__item--past article.wpco-calendar__item-card {
	opacity: 0.62;
}

.wpco-carousel[data-wpco-carousel] li.wpco-calendar__item--past h3.wpco-calendar__item-title,
.wpco-carousel[data-wpco-carousel] li.wpco-calendar__item--past p.wpco-calendar__item-date-text {
	color: var(--wpco-color-muted, #5c5c5c) !important;
}

.wpco-carousel[data-wpco-carousel] li.wpco-calendar__item--past img.wpco-calendar__thumbnail,
.wpco-carousel[data-wpco-carousel] li.wpco-calendar__item--past .wpco-calendar__item-media-placeholder {
	filter: grayscale(0.35);
}

@media (max-width: 1100px) {
	.wpco-carousel[data-wpco-carousel].wpco-carousel--small {
		--wpco-carousel-visible: 3;
	}

	.wpco-carousel[data-wpco-carousel].wpco-carousel--medium {
		--wpco-carousel-visible: 2;
	}
}

@media (max-width: 720px) {
	.wpco-carousel[data-wpco-carousel] .wpco-carousel__see-all-wrap {
		margin: 1rem 0 1.5rem;
	}

	.wpco-carousel[data-wpco-carousel] a.wpco-carousel__see-all,
	.wpco-carousel[data-wpco-carousel] a.wpco-carousel__see-all:link,
	.wpco-carousel[data-wpco-carousel] a.wpco-carousel__see-all:visited {
		min-height: 40px;
		padding: 0.55rem 0.9rem !important;
		font-size: 0.85rem !important;
	}

	.wpco-carousel[data-wpco-carousel].wpco-carousel--small,
	.wpco-carousel[data-wpco-carousel].wpco-carousel--medium,
	.wpco-carousel[data-wpco-carousel].wpco-carousel--large,
	.wpco-carousel[data-wpco-carousel].wpco-carousel--xlarge {
		--wpco-carousel-visible: 2;
		--wpco-carousel-gap: 0.85rem;
	}

	.wpco-carousel[data-wpco-carousel] .wpco-calendar__item-body {
		padding: 0.85rem !important;
	}

	.wpco-carousel[data-wpco-carousel] h3.wpco-calendar__item-title {
		font-size: 0.98rem !important;
		word-break: break-word;
	}

	.wpco-carousel[data-wpco-carousel] p.wpco-calendar__item-date-text {
		font-size: 0.82rem !important;
	}
}

@media (max-width: 480px) {
	.wpco-carousel[data-wpco-carousel].wpco-carousel--small,
	.wpco-carousel[data-wpco-carousel].wpco-carousel--medium,
	.wpco-carousel[data-wpco-carousel].wpco-carousel--large,
	.wpco-carousel[data-wpco-carousel].wpco-carousel--xlarge {
		--wpco-carousel-visible: 1;
		--wpco-carousel-gap: 0.75rem;
	}

	.wpco-carousel[data-wpco-carousel] a.wpco-carousel__see-all,
	.wpco-carousel[data-wpco-carousel] a.wpco-carousel__see-all:link,
	.wpco-carousel[data-wpco-carousel] a.wpco-carousel__see-all:visited {
		min-height: 44px;
	}
}
