.webvio-events-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 40px;
}

.webvio-event-card {
	border-radius: 14px;
	overflow: hidden;
}

.webvio-event-image-link,
.webvio-event-image-wrap {
	display: block;
}

.webvio-event-image {
	display: block;
	width: 100%;
	height: 260px;
	object-fit: cover;
}

.webvio-event-category {
	text-align: center;
	padding: 8px 10px;
}

.webvio-event-category a,
.webvio-event-category span {
	color: #ffffff;
	text-decoration: none;
	font-weight: 700;
	font-size: 20px;
	line-height: 1.2;
}

.webvio-event-content {
	padding: 28px 30px 70px;
	text-align: left;
}

.webvio-event-title {
	margin: 0 0 8px;
	font-size: 40px;
	line-height: 1.15;
}

.webvio-event-subline,
.webvio-event-leitung,
.webvio-event-terms {
	margin: 0 0 6px;
	line-height: 1.3;
	padding: 0;
}
.webvio-event-content strong {
	font-weight: 700 !important;
}
.webvio-event-terms {
	margin-bottom: 16px;
}

.webvio-event-btn {
	display: inline-block;
	padding: 8px 20px;
	border-radius: 40px;
	background-color: #4aa39b;
	color: #ffffff;
	text-decoration: none;
	font-weight: 700;
	line-height: 1;
}

.webvio-events-filters {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-bottom: 24px;
	justify-content: center;
}

.webvio-filter-btn-all {
	background-color: #1A8A3E !important;
}

.webvio-filter-btn {
	border: 0;
	border-radius: 999px;
	padding: 8px 18px;
	background-color: #8f85ba;
	color: #ffffff;
	cursor: pointer;
	font-size: 16px;
	line-height: 1;
	font-weight: 700;
	min-width: 286px;
}

.webvio-filter-btn.is-active {
	outline: 2px solid #1a8a3e;
	outline-offset: 2px;
}

.webvio-events-grid.is-loading {
	opacity: 0.5;
	pointer-events: none;
}

.webvio-no-events {
	margin: 0;
	font-size: 18px;
	text-align: center;
	grid-column: 1 / -1;
}

/* Calendar view */
.webvio-calendar-wrap {
	margin-bottom: 24px;
}

.webvio-calendar-filters {
	margin-bottom: 20px;
}

.webvio-calendar-week-view {
	display: none;
}

.webvio-calendar-week-month-bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	background-color: #1a8a3e;
	color: #fff;
	padding: 5px 16px;
	font-weight: 700;
}

.webvio-calendar-week-month-bar button {
	background: transparent;
	border: 0;
	color: #fff;
	cursor: pointer;
	font-size: 20px;
	padding: 5px;
	line-height: 1;
}

.webvio-calendar-week-month-label {
	text-transform: uppercase;
}

.webvio-calendar-week-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	background-color: #1a8a3e8a;
	padding: 5px 16px;
	font-weight: 700;
}

.webvio-calendar-week-header button {
	background: transparent;
	border: 0;
	cursor: pointer;
	font-size: 20px;
	padding: 4px 8px;
	line-height: 1;
}

.webvio-calendar-week-label {
	text-transform: uppercase;
}

.webvio-calendar-week-list {
	border: 1px solid #ddd;
	border-top: 0;
}

.webvio-calendar-week-day {
	border-bottom: 1px solid #ddd;
}

.webvio-calendar-week-day:last-child {
	border-bottom: 0;
}

.webvio-calendar-week-day-header {
	background-color: #555555d1;
	color: #fff;
	padding: 4px 16px;
	font-weight: 700;
	font-size: 17px;
}

.webvio-calendar-week-day-events {
	padding: 12px 16px;
}

.webvio-calendar-week-day-events .webvio-calendar-card + .webvio-calendar-card {
	margin-top: 12px;
}

.webvio-calendar-week-content.is-loading {
	opacity: 0.6;
	pointer-events: none;
}

.webvio-calendar-month-header {
	background-color: #1a8a3e;
	color: #fff;
	text-align: center;
	padding: 12px 16px;
	font-weight: 700;
	text-transform: uppercase;
}

.webvio-calendar-weekdays {
	display: flex;
	flex-wrap: nowrap;
	background-color: #555;
	color: #fff;
	font-weight: 700;
}

.webvio-calendar-weekday {
	flex: 1 1 0;
	min-width: 0;
	padding: 10px 8px;
	text-align: center;
}

.webvio-calendar-weekday:last-child {
	border-right: 0;
}

.webvio-calendar-grid {
	display: flex;
	flex-wrap: wrap;
	border: 1px solid #ddd;
	border-top: 0;
}

.webvio-calendar-day {
	flex: 0 0 14.2857%;
	width: 14.2857%;
	box-sizing: border-box;
	min-height: 140px;
	border-right: 2px solid #8e8484;
	border-bottom: 2px solid #8e8484;
	padding: 8px;
	position: relative;
	background: #fff;
}

.webvio-calendar-day:nth-child(7n) {
	border-right: 0;
}

.webvio-calendar-day--other {
	background-color: #f9f9f9;
}

.webvio-calendar-day--other .webvio-calendar-day-num {
	color: #999;
}

.webvio-calendar-day-num {
	display: block;
	font-weight: 700;
	margin-bottom: 8px;
	color: #1a8a3e;
}

.webvio-calendar-day--has-events .webvio-calendar-day-num {
	color: #000;
}

.webvio-calendar-day-events {
	display: flex;
	flex-direction: column;
	margin: -8px;
}

.webvio-calendar-card {
	overflow: hidden;
	margin: 0;
}

.webvio-calendar-card + .webvio-calendar-card {
    border-top: 2px solid #8e8484;
}

.webvio-calendar-card-content {
	padding: 14px;
}

.webvio-calendar-card-title {
    margin: 0 0 6px;
    font-size: 18px !important;
    font-weight: 700;
    line-height: 1.25 !important;
    padding: 0;
}

.webvio-calendar-card-subline {
	margin: 0 0 10px;
	line-height: 1.35;
}

.webvio-calendar-card-btn {
	display: inline-block;
	padding: 6px 14px;
	border-radius: 56px;
	color: #fff;
	text-decoration: none;
	font-weight: 700;
	font-size: 13px;
	line-height: 1;
}

.webvio-calendar-card-closed {
	font-size: 13px;
	font-style: italic;
}

.webvio-calendar-content.is-loading {
	opacity: 0.6;
	pointer-events: none;
}

.webvio-calendar-nav {
	display: flex;
	justify-content: space-between;
	gap: 24px;
	margin-top: 20px;
}

.webvio-calendar-prev,
.webvio-calendar-next {
	display: inline-flex;
	align-items: center;
	gap: 20px;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
    font-weight: 700;
    color: #333;
    font-size: 18px;
}

.webvio-calendar-nav-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background-color: #E8F5E9;
	border: 1px solid #A5D6A7;
	color: #333;
	font-size: 20px;
	line-height: 1;
}

.webvio-calendar-prev:hover .webvio-calendar-nav-icon,
.webvio-calendar-next:hover .webvio-calendar-nav-icon {
	background-color: #C8E6C9;
}

@media (max-width: 1024px) {
	.webvio-events-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 767px) {
	.webvio-events-grid {
		grid-template-columns: 1fr;
	}

	.webvio-calendar-month-view {
		display: none;
	}

	.webvio-calendar-week-view {
		display: block;
	}
}

@media (max-width: 767px) {
	.webvio-event-content {
		padding: 20px;
	}
	.webvio-event-image {
		height: 200px;
	}
	.webvio-calendar-week-day-events {
		padding: 0;
	}
	.webvio-calendar-week-list{
		border: none;
	}
	.webvio-calendar-week-month-bar ,.webvio-calendar-week-label {
		font-size: 20px;
	}
	.webvio-calendar-week-header {
		background-color: #1a8a3e8a;
		padding: 5px 16px;
	}
	.webvio-calendar-card + .webvio-calendar-card {
		border-top: 1px solid #8e8484;
	}
	.webvio-events-grid {
		gap: 20px;
	}
	.webvio-calendar-week-day-events .webvio-calendar-card + .webvio-calendar-card {
		margin-top: 0;
	}
	.webvio-calendar-card-subline {
		font-size: 15px;
	}
}