.vv-events{
	display:grid;
	grid-template-columns:repeat(2,minmax(0,1fr));
	gap:1.75rem;
	align-items:stretch;
}

.vv-card{
	position:relative;
	display:flex;
	flex-direction:column;
	overflow:hidden;
	border:1px solid #dce8df;
	border-radius:12px;
	background:linear-gradient(180deg,#ffffff 0%,#fbf8ef 100%);
	box-shadow:0 14px 34px rgba(31,91,61,.10);
	transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}

.vv-card:hover{
	transform:translateY(-3px);
	border-color:#b8d8c3;
	box-shadow:0 18px 42px rgba(31,91,61,.16);
}

.vv-card img,.vv-single__image{
	display:block;
	width:100%;
	height:auto;
}

.vv-card img{
	aspect-ratio:16/9;
	object-fit:cover;
}

.vv-card__body{
	display:flex;
	flex:1;
	flex-direction:column;
	padding:1.45rem;
}

.vv-card h3{
	margin:.1rem 0 .7rem;
	color:#173f2a;
	font-size:clamp(1.2rem,2vw,1.55rem);
	line-height:1.22;
}

.vv-card h3 a{
	color:inherit;
	text-decoration:none;
}

.vv-card h3 a:hover{
	color:#2f7d4c;
	text-decoration:underline;
	text-decoration-thickness:2px;
	text-underline-offset:.18em;
}

.vv-card p{
	color:#3f4f45;
}

.vv-details{
	margin:1.25rem 0;
}

.vv-details>div{
	display:grid;
	grid-template-columns:minmax(8rem,1fr) 2fr;
	gap:1rem;
	padding:.5rem 0;
	border-bottom:1px solid #e6efe8;
}

.vv-details dt{
	font-weight:700;
	color:#244b34;
}

.vv-details dd{
	margin:0;
	color:#3f4f45;
}

.vv-details--compact{
	margin:.55rem 0 1rem;
}

.vv-details--compact>div{
	display:block;
	padding:.18rem 0;
	border-bottom:0;
}

.vv-details--compact dt{
	margin:0 0 .02rem;
	font-size:.9rem;
	text-transform:uppercase;
	letter-spacing:.04em;
	color:#6c7a70;
	line-height:1.15;
}

.vv-details--compact dd{
	font-size:1.12rem;
	font-weight:650;
	line-height:1.25;
}

.vv-map{
	width:100%;
	height:420px;
	margin:1.5rem 0;
	border:1px solid #d7e7db;
	border-radius:12px;
	box-shadow:0 12px 30px rgba(31,91,61,.10);
	z-index:1;
}

.vv-button{
	display:inline-block;
	align-self:flex-start;
	margin-top:auto;
	padding:.78em 1.15em;
	border:0;
	border-radius:8px;
	background:linear-gradient(135deg,#2f8f57,#1f6b45);
	box-shadow:0 8px 18px rgba(31,107,69,.22);
	color:#fff!important;
	font-weight:700;
	text-decoration:none;
	cursor:pointer;
	transition:transform .18s ease,box-shadow .18s ease,background .18s ease;
}

.vv-button:hover,.vv-button:focus{
	transform:translateY(-1px);
	box-shadow:0 11px 22px rgba(31,107,69,.28);
	background:linear-gradient(135deg,#37a565,#1f6b45);
	color:#fff!important;
	text-decoration:none;
}

.vv-button:focus-visible,
.vv-card h3 a:focus-visible,
.vv-privacy a:focus-visible,
.vv-map:focus-visible,
.vv-events-map:focus-visible{
	outline:3px solid #f2b84b;
	outline-offset:4px;
}

.vv-registration{
	margin-top:2rem;
	padding:1.5rem;
	border:1px solid #d7e7db;
	border-radius:12px;
	background:#fbfdf9;
	box-shadow:0 10px 28px rgba(31,91,61,.08);
}

.vv-registration input[type=text],.vv-registration input[type=email],.vv-registration input[type=number],.vv-filter select{
	box-sizing:border-box;
	padding:.7rem .8rem;
	border:1px solid #cfded3;
	border-radius:10px;
}

.vv-registration input[type=text],.vv-registration input[type=email]{
	width:100%;
	max-width:32rem;
}

.vv-registration input:focus-visible,.vv-filter select:focus-visible{
	outline:3px solid #f2b84b;
	outline-offset:2px;
	border-color:#2f8f57;
}

.vv-notice{
	padding:.85rem 1rem;
	border-left:4px solid #2f7d4c;
	border-radius:10px;
	background:#eef8f1;
}

.vv-sold-out{
	font-weight:700;
	color:#9f2d20;
}

.vv-capacity{
	max-width:32rem;
}

.vv-capacity p{
	margin-bottom:.4rem;
	color:#33463a;
	font-size:1rem;
}

.vv-capacity__track{
	display:flex;
	height:1.45rem;
	overflow:hidden;
	border-radius:999px;
	border:1px solid #b8d8c3;
	background:#dff0df;
	box-shadow:inset 0 1px 3px rgba(18,68,42,.16);
}

.vv-capacity__track span{
	display:block;
	height:100%;
	min-width:0;
	transition:width .3s ease;
}

.vv-capacity__occupied{
	background:
		repeating-linear-gradient(45deg,rgba(255,255,255,.18) 0,rgba(255,255,255,.18) 6px,transparent 6px,transparent 12px),
		linear-gradient(90deg,#145c35,#247a49);
}

.vv-capacity__free{
	background:linear-gradient(90deg,#7ccf7b,#b8e6a3);
}

.vv-filter{
	display:flex;
	align-items:center;
	flex-wrap:wrap;
	gap:.7rem;
	margin:0 0 1.5rem;
	padding:1rem;
	border:1px solid #dce8df;
	border-radius:12px;
	background:#fbfdf9;
}

.vv-filter select{
	min-width:15rem;
	padding:.65rem .85rem;
	border:1px solid #cfded3;
	border-radius:8px;
	background:#fff;
}

.vv-event-page{
	width:min(1100px,calc(100% - 2rem));
	margin:2rem auto;
}

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

.vv-registration input[type=number]{
	box-sizing:border-box;
	width:8rem;
}

.vv-privacy{
	font-size:.92em;
}

.vv-events-map{
	width:100%;
	height:600px;
	border:1px solid #d7e7db;
	border-radius:12px;
	box-shadow:0 12px 30px rgba(31,91,61,.10);
	z-index:1;
}

.vv-card-capacity{
	margin:.9rem 0 1.15rem;
}

.vv-card-capacity p{
	margin:0 0 .45rem;
	color:#405248;
	font-size:.94em;
	line-height:1.3;
}

.vv-card-capacity__track{
	display:flex;
	width:100%;
	height:1.05rem;
	overflow:hidden;
	border-radius:999px;
	border:1px solid #b8d8c3;
	background:#dff0df;
	box-shadow:inset 0 1px 3px rgba(18,68,42,.14);
}

.vv-card-capacity__track span{
	display:block;
	height:100%;
}

.vv-card-capacity__occupied{
	background:
		repeating-linear-gradient(45deg,rgba(255,255,255,.18) 0,rgba(255,255,255,.18) 5px,transparent 5px,transparent 10px),
		linear-gradient(90deg,#145c35,#247a49);
}

.vv-card-capacity__free{
	background:linear-gradient(90deg,#7ccf7b,#b8e6a3);
}

.vv-card-capacity__track--unlimited span{
	width:100%;
	background:linear-gradient(90deg,#58b96b,#b8e6a3);
}

@media(max-width:700px){
	.vv-events{grid-template-columns:1fr}
	.vv-form-grid{grid-template-columns:1fr}
	.vv-details>div{display:block}
	.vv-details dd{margin-top:.2rem}
	.vv-map{height:320px}
	.vv-events-map{height:420px}
}
