.vsfc-catalogue {
	--vsfc-red: #ff0000;
	--vsfc-text: #777;
	background: #f2f2f2;
	box-sizing: border-box;
	color: var(--vsfc-text);
	padding: 36px clamp(22px, 7vw, 110px) 48px;
	text-align: left;
}

.vsfc-catalogue-title {
	color: #222 !important;
	font-size: 22px !important;
	font-weight: 400 !important;
	line-height: 1.3 !important;
	margin: 0 !important;
	padding: 0 !important;
	text-align: center;
}

.vsfc-catalogue-rule {
	background: var(--vsfc-red);
	height: 3px;
	margin: 20px auto 38px;
	width: 30px;
}

.vsfc-catalogue-groups {
	margin: 0 auto;
	max-width: 1080px;
}

.vsfc-catalogue-group {
	clear: both;
	margin: 0 0 24px !important;
	padding: 0 !important;
	text-align: left !important;
}

.vsfc-catalogue-group h3 {
	color: var(--vsfc-red) !important;
	font-family: "Open Sans", Arial, sans-serif !important;
	font-size: 20px !important;
	font-weight: 600 !important;
	line-height: 22px !important;
	margin: 0 0 12px !important;
	padding: 0 !important;
	text-align: left !important;
}

.vsfc-catalogue-group ul {
	column-count: 2;
	column-gap: clamp(34px, 8vw, 120px);
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
	text-align: left !important;
}

.vsfc-catalogue-group li {
	break-inside: avoid;
	font-size: 13px !important;
	font-weight: 400 !important;
	line-height: 1.55 !important;
	list-style: none !important;
	margin: 0 0 5px !important;
	padding: 0 0 0 12px !important;
	position: relative;
	text-align: left !important;
}

.vsfc-catalogue-group li::before {
	background: #777;
	content: "";
	height: 4px;
	left: 1px;
	position: absolute;
	top: 7px;
	width: 4px;
}

.vsfc-catalogue-group a {
	color: var(--vsfc-text) !important;
	display: inline !important;
	font-size: inherit !important;
	font-weight: inherit !important;
	line-height: inherit !important;
	text-decoration: none !important;
}

.vsfc-catalogue-group a:hover,
.vsfc-catalogue-group a:focus {
	color: var(--vsfc-red) !important;
	text-decoration: underline !important;
}

.vsfc-upcoming {
	box-sizing: border-box;
	color: #777;
	font-family: "Open Sans", Arial, sans-serif;
	padding-left: clamp(22px, 7vw, 110px);
	padding-right: clamp(22px, 7vw, 110px);
	width: 100%;
}

.vsfc-upcoming ul {
	column-count: 2;
	column-gap: clamp(34px, 8vw, 120px);
	list-style: none !important;
	margin: 0 auto !important;
	max-width: 1080px;
	padding: 0 !important;
}

.vsfc-upcoming li {
	align-items: baseline;
	break-inside: avoid;
	display: flex;
	font-size: 13px !important;
	line-height: 1.5 !important;
	list-style: none !important;
	margin: 0 0 9px !important;
	padding: 0 0 0 15px !important;
	position: relative;
}

.vsfc-upcoming li::before {
	background: #ff0000;
	content: "";
	height: 3px;
	left: 2px;
	position: absolute;
	top: .66em;
	width: 3px;
}

.vsfc-upcoming time {
	color: #3f3f3f;
	flex: 0 0 auto;
	font-variant-numeric: tabular-nums;
	font-weight: 600;
	letter-spacing: .01em;
}

.vsfc-upcoming-separator { color: #aaa; flex: 0 0 auto; margin: 0 7px; }
.vsfc-upcoming a { color: #747474 !important; text-decoration: none !important; transition: color .15s ease; }
.vsfc-upcoming a:hover,
.vsfc-upcoming a:focus { color: #ff0000 !important; text-decoration: underline !important; }

@media (max-width: 700px) {
	.vsfc-catalogue {
		padding: 30px 22px 38px;
	}

	.vsfc-catalogue-group ul {
		column-count: 1;
	}

	.vsfc-upcoming ul { column-count: 1; }
	.vsfc-upcoming { padding-left: 22px; padding-right: 22px; }
}
