@charset "UTF-8";

/*
Theme Name: Vilnius Events (new)
Version: 1.0
*/

@font-face {
	font-family: 'TT Commons';
	src: url('assets/fonts/TTCommons-Light.woff2') format('woff2');
	font-weight: 300;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'TT Commons';
	src: url('assets/fonts/TTCommons-Regular.woff2') format('woff2');
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'TT Commons';
	src: url('assets/fonts/TTCommons-Medium.otf') format('opentype');
	font-weight: 500;
	font-style: normal;
	font-display: swap;
}


@font-face {
	font-family: 'TT Commons';
	src: url('assets/fonts/TTCommons-DemiBold.woff2') format('woff2');
	font-weight: 600;
	font-style: normal;
	font-display: swap;
}

/* Legacy single-variant aliases — keeps existing code working */
@font-face {
	font-family: 'TTCommons-Light';
	src: url('assets/fonts/TTCommons-Light.woff2') format('woff2');
	font-weight: normal;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'TTCommons-Regular';
	src: url('assets/fonts/TTCommons-Regular.woff2') format('woff2');
	font-weight: normal;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'TTCommons-DemiBold';
	src: url('assets/fonts/TTCommons-DemiBold.woff2') format('woff2');
	font-weight: normal;
	font-style: normal;
	font-display: swap;
}

/* ============================================================
   HEADER
   ============================================================ */

:root {
	--page-padding: 120px;
}

@media (max-width: 1400px) {
	:root {
		--page-padding: 20px;
	}
}

@media (min-width: 1440px) {
	:root {
		--page-padding: calc((100vw - 1200px) / 2);
	}
}

/* <header> element — relative position, always white */
.o-header {
	padding: 0 20px;
}

@media (min-width: 1000px) {
	.o-header {
		padding: 0 var(--page-padding);
	}
}


/* Desktop: header in normal flow (keeps the header-redesign behaviour) */
.o-header,
.o-header.o-header--fixed,
.o-header.o-header--white-bg-desktop,
.o-header.o-header--white-bg-mobile {
	position: relative !important;
	top: auto !important;
	z-index: 100;
	background: #fff !important;
	border-bottom: 1px solid rgba(65, 68, 84, 0.12);
}

/* Mobile: always fixed at top — immune to JS class manipulation */
@media (max-width: 999px) {
	.o-header,
	.o-header.o-header--fixed,
	.o-header.o-header--white-bg-desktop,
	.o-header.o-header--white-bg-mobile {
		position: fixed !important;
		top: 0 !important;
		left: 0 !important;
		right: 0 !important;
		width: 100% !important;
		z-index: 300;
		background: #fff !important;
		border-bottom: 1px solid rgba(65, 68, 84, 0.12) !important;
		box-shadow: none !important;
		transition: none !important;
	}
	/* Non-home pages: restore spacer to push content below fixed header */
	body:not(.home) .a-container-spacing {
		display: block !important;
		height: 72px;
		margin: 0;
		padding: 0;
		visibility: hidden;
	}
	/* Home page: use the same spacer so fixed header never overlaps hero. */
	body.home .a-container-spacing {
		display: block !important;
		height: 72px;
		margin: 0;
		padding: 0;
		visibility: hidden;
	}
}

.o-header .o-header__wrapper {
	display: flex !important;
	flex-direction: row !important;
	align-items: center !important;
	justify-content: flex-start !important;
	height: 104px !important;
	max-width: 1440px;
	width: 100%;
	gap: 27px;
}

.a-container-spacing { display: none !important; }

/* ── Logo ───────────────────────────────────────────────────────────────── */
.o-hdr-logo {
	display: flex;
	align-items: center;
	flex-shrink: 0;
	line-height: 0;
	text-decoration: none;
}
.o-hdr-logo img {
	height: 52px;
	width: auto;
	object-fit: contain;
}
@media (max-width: 767px) {
	.o-hdr-logo img { height: 36px; }
}

.o-hdr-nav {
	flex: 1;
	display: flex;
	align-items: stretch;
	height: 100%;
	min-width: 0;
	overflow: hidden;
}

.o-hdr-menu {
	display: flex;
	align-items: center;
	list-style: none;
	margin: 0;
	padding: 0;
	height: 100%;
	width: 100%;
}
.o-hdr-menu > .nav-item {
	display: flex;
	align-items: center;
	height: 100%;
}
.o-hdr-menu > .nav-item > .nav-link {
	display: flex;
	align-items: center;
	height: 100%;
	padding: 0 20px;
	font-family: 'TT Commons', sans-serif;
	font-size: 18px;
	color: #414454;
	white-space: nowrap;
	text-decoration: none;
}
.o-hdr-menu > .nav-item > .nav-link:hover {
	color: #ed1c24;
	text-decoration: none;
}

.o-hdr-menu > .menu-item--submit-event {
	margin-left: auto !important;
	align-self: center;
	padding: 0;
}
.o-hdr-menu > .menu-item--submit-event > .nav-link {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	gap: 8px;
	height: 40px;
	padding: 12px 16px !important;
	background: #ed1c24;
	color: #fff !important;
	border-radius: 8px;
	font-weight: 500;
	font-size: 18px;
	white-space: nowrap;
	text-decoration: none;
	border: none;
	transition: background 0.2s;
}
.o-hdr-menu > .menu-item--submit-event > .nav-link svg {
	width: 20px !important;
	height: 20px !important;
	flex-shrink: 0;
	display: block;
}
.o-hdr-menu > .menu-item--submit-event > .nav-link:hover {
	background: #c1272d;
	color: #fff !important;
	text-decoration: none;
}

@media (max-width: 999px) {
	.o-hdr-nav { display: none; }
}

/* ── Right actions ──────────────────────────────────────────────────────────── */
.o-hdr-actions {
	display: flex !important;
	align-items: center !important;
	gap: 22px;
	flex-shrink: 0;
	position: relative;
	margin-top: 0 !important;
	margin-left: 0 !important;
}

.o-hdr-actions .o-hdr-filter { display: none; }
.o-hdr-actions.visible-filter .o-hdr-filter { display: flex; align-items: center; }
.visible-filter #filter-top-container { pointer-events: auto; }

.o-hdr-actions .search-form {
	display: none !important;
}

.o-hdr-actions > .o-mob-add-btn,
.o-hdr-actions > .o-header-onetap,
.o-hdr-actions > .btn--search,
.o-hdr-actions > .m-language-dropdown,
.o-hdr-actions > .o-burger-menu-container {
	margin-left: 0 !important;
	margin-right: 0 !important;
}

.o-hdr-icon-btn {
	display: flex !important;
	align-items: center;
	justify-content: center;
	background: transparent !important;
	border: none !important;
	border-radius: 0 !important;
	width: auto !important;
	min-width: 0 !important;
	height: auto !important;
	padding: 4px !important;
	cursor: pointer;
	color: #414454;
	line-height: 0;
}
.o-hdr-icon-btn:hover { color: #ed1c24; background: transparent !important; }

.o-header .btn--search {
	border: none !important;
	background: transparent !important;
	border-radius: 0 !important;
	width: auto !important;
	min-width: 0 !important;
	height: auto !important;
	padding: 4px !important;
	color: #414454;
	display: flex;
	align-items: center;
	justify-content: center;
}
.o-header .btn--search:hover { color: #ed1c24; background: transparent !important; }

/* OneTap accessibility */
.o-header-onetap { display: flex; align-items: center; }
/* Hide the plugin's default sticky toggle button — header button is used instead */
.onetap-container-toggle { display: none !important; }

.o-hdr-sep {
	display: block;
	width: 1px;
	height: 20px;
	background: rgba(65, 68, 84, 0.25);
	flex-shrink: 0;
	align-self: center;
	margin-inline: 5px;
}

.o-header .m-language-dropdown .btn-lang-toggle {
	border: none !important;
	background: transparent !important;
	border-radius: 0 !important;
	width: auto !important;
	min-width: 0 !important;
	height: auto !important;
	padding: 0 !important;
	display: inline-flex !important;
	align-items: center;
	gap: 4px;
	font-family: "TTCommons-Regular", sans-serif;
	font-size: 18px;
	font-weight: 500;
	color: #414454 !important;
	text-transform: uppercase;
	line-height: 1;
}
@media (hover: hover) and (pointer: fine) {
	.o-header .m-language-dropdown .btn-lang-toggle:hover { opacity: 0.7; background: transparent !important; }
}
.o-header .m-language-dropdown .btn-lang-toggle .lang-chevron { width: 16px; height: 16px; flex-shrink: 0; display: block; }

.o-header .m-language-dropdown__content.dropdown-menu {
	min-width: 68px !important;
	width: auto !important;
	border: 1px solid rgba(187, 187, 187, 0.35) !important;
	border-radius: 0 !important;
	background: #fff !important;
	padding: 12px 0 !important;
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08) !important;
	margin-top: 6px !important;
	flex-direction: column;
	gap: 6px;
	/* Centre under the toggle button */
	left: 30% !important;
	right: auto !important;
	transform: translateX(-50%) !important;
}
/* Show as flex-column when Bootstrap adds .show */
.o-header .m-language-dropdown__content.dropdown-menu.show {
	display: flex !important;
}
.o-header .m-language-dropdown__content .lang-option {
	display: block;
	width: 100%;
	padding: 2px 12px;
	text-align: center;
	font-family: 'TT Commons', sans-serif;
	font-size: 18px;
	font-weight: 500;
	color: #3C3C3C;
	text-transform: uppercase;
	text-decoration: none;
	cursor: pointer;
	background: transparent;
	border: none;
	border-radius: 0;
}
@media (hover: hover) and (pointer: fine) {
	.o-header .m-language-dropdown__content .lang-option:hover { opacity: 0.7; color: #3C3C3C; text-decoration: none; }
}

/* Mobile */
@media (max-width: 999px) {
	.o-header .o-header__wrapper {
		height: 72px !important;
		justify-content: space-between !important;
	}
	/* Burger menu replaced by the working search icon on mobile */
	.search-form,
	.o-hdr-sep,
	#menu-container {
		display: none !important;
	}
	.btn--search {
		display: flex !important;
	}
	/* Language switcher shown on mobile too, same as desktop */
	.m-language-dropdown {
		display: flex !important;
		margin-left: 0 !important;
	}
	/* Equal gap between the +, accessibility, search and language icons */
	.o-hdr-actions {
		gap: 14px !important;
	}
	.o-header .m-language-dropdown__content.dropdown-menu {
		left: auto !important;
		right: 0 !important;
		transform: none !important;
	}
}
@media (max-width: 767px) {
	.o-hdr-sep { display: none; }
}

/* ============================================================
   Hero Carousel
   ============================================================ */

/* Outer wrapper: white background with horizontal padding */
.hero-carousel-wrapper {
	background: #ffffff;
	padding: 0 var(--page-padding) 48px;
	justify-content: center;
    display: flex;
}

@media (max-width: 1000px) {
	.hero-carousel-wrapper {
    	display: unset;
	}
}

.hero-carousel-inner {
	position: relative;
	overflow: hidden;
	border-radius: 0 20px 20px 20px;
	/* aspect-ratio: 1440 / 440; */
	max-height: 440px;
}

.hero-slick-slider,
.hero-slick-slider .slick-list,
.hero-slick-slider .slick-track {
	height: 100% !important;
}

/* Individual slide */
.hero-slide {
	position: relative;
	height: 100%;
}

.hero-slide__link {
	display: block;
	height: 100%;
}

.hero-slide img,
.hero-slide picture {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}


/* "Remiama / Sponsored" optional tag — bottom-right of each slide */
.hero-slide__sponsored {
	position: absolute;
	bottom: 20px;
	right: 20px;
	background: rgba(255, 255, 255, 0.75);
	border-radius: 12px;
	padding: 4px 8px;
	font-family: "TTCommons-Regular", sans-serif;
	font-size: 12px;
	font-weight: 400;
	line-height: 16px;
	color: #3c3c3c;
	white-space: nowrap;
	pointer-events: none;
	z-index: 2;
}

/* Prev / Next arrow buttons */
.hero-carousel-inner .slick-prev,
.hero-carousel-inner .slick-next {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 5;
	width: 48px;
	height: 48px;
	min-width: 0;
	padding: 0;
	border: none;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.7);
	box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1), 0 2px 4px rgba(0, 0, 0, 0.1);
	cursor: pointer;
	display: flex !important;
	align-items: center;
	justify-content: center;
	font-size: 0;
	line-height: 0;
	color: transparent;
	opacity: 1;
	transition: background 0.2s ease;
}

.hero-carousel-inner .slick-prev { left: 20px; }
.hero-carousel-inner .slick-next { right: 20px; }

.hero-carousel-inner .slick-prev:hover,
.hero-carousel-inner .slick-next:hover {
	background: rgba(255, 255, 255, 0.9);
}

.hero-carousel-inner .slick-prev:active,
.hero-carousel-inner .slick-next:active {
	background: rgba(255, 255, 255, 0.7);
}

.hero-carousel-inner .slick-prev:focus:not(:hover),
.hero-carousel-inner .slick-next:focus:not(:hover),
.hero-carousel-inner .slick-prev:focus-visible:not(:hover),
.hero-carousel-inner .slick-next:focus-visible:not(:hover) {
	background: rgba(255, 255, 255, 0.7);
	opacity: 1;
}

.hero-carousel-inner .slick-prev::before,
.hero-carousel-inner .slick-next::before {
	content: none; /* remove Slick's default arrow text */
}

.hero-carousel-inner .slick-prev svg,
.hero-carousel-inner .slick-next svg {
	width: 24px;
	height: 24px;
	flex-shrink: 0;
	color: #3c3c3c;
}

/* Dot navigation — positioned inside the carousel at the bottom */
.hero-carousel-inner .slick-dots {
	position: absolute;
	bottom: 16px;
	left: 50%;
	transform: translateX(-50%);
	display: flex !important;
	gap: 8px;
	align-items: center;
	margin: 0;
	padding: 0;
	list-style: none;
	z-index: 4;
}

.hero-carousel-inner .slick-dots li {
	width: 8px;
	height: 8px;
	margin: 0;
	padding: 0;
	transition: width 0.2s ease;
}

.hero-carousel-inner .slick-dots li.slick-active {
	width: 28px;
}

.hero-carousel-inner .slick-dots li button {
	display: block;
	width: 100%;
	height: 8px;
	padding: 0;
	border: none;
	border-radius: 100px;
	background: rgba(255, 255, 255, 0.6);
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.1);
	cursor: pointer;
	font-size: 0;
	line-height: 0;
	transition: width 0.2s ease, background 0.2s ease;
}

.hero-carousel-inner .slick-dots li.slick-active button {
	background: #ffffff;
	width: 28px;
}

/* Mobile adjustments */
@media (max-width: 1000px) {
	.hero-carousel-wrapper {
		padding: 0;
	}

	.hero-carousel-inner {
		border-radius: 0;
		width: 100%;
		margin-top: 73px;
		height: 440px;
	}

	/* Hide prev/next arrows on mobile */
	.hero-carousel-inner .slick-prev,
	.hero-carousel-inner .slick-next {
		display: none !important;
	}
}

@media (max-width: 767px) {
	.hero-carousel-inner {
		aspect-ratio: 393 / 440;
	}
}

.o-header__content .btn.btn--filter {
	display: flex;
	justify-content: flex-start;
	align-items: center;
	padding-right: 20px;
	padding-left: 20px;
	border: none;
}

.o-header__content .btn.btn--filter svg {
	width: 19px;
	height: 19px;
	order: -1;
	margin-right: 8px;
}

.o-burger-menu-container .o-burger-menu {
	display: none;
}

.o-burger-menu-container .feather-x,
.o-burger-menu-container.active .feather-menu
{
	display: none;
}

.o-burger-menu-container.active .feather-x,
.o-burger-menu-container .feather-menu
{
	display: inline-block;
}

.o-burger-menu-container.active .o-burger-menu {
	display: block;
}

.o-burger-menu {
	left: auto;
	right: 0;
}

.o-burger-menu:before {
	left: auto;
	right: 40px;
}

.date-picker-range .react-datepicker-wrapper .form-control {
	background-color: #f2f2f2;
	cursor: pointer;
}

.date-picker-range .react-datepicker-wrapper .form-control:focus,
.date-picker-range .react-datepicker-wrapper .form-control:hover,
.date-picker-range .react-datepicker-wrapper .form-control
{
box-shadow: none;	
}

.date-picker-range .react-datepicker-wrapper {
	margin-right: 20px;
}

.checkbox-group-wrapper {
	width: 100%;
}

.btn-float-right {
	float: right;
}

.o-header__content #filter-menu [class*="btn"] {
	margin-left: 0px;
}

.m-filter-section .form-control {
	margin-bottom: 0px;
}

.rd-container {
	z-index: 99;
	border-radius: 30px;
}

.rd-day-body {
    padding: 0px;
    border: none;
	font-size: 16px;
}

.nav-link a {
	color: #75798a;
}

.social-links-tooltip-toggle span.copied,
.social-links-tooltip-toggle.copied-wrapper span.copy
{
	display: none;
}

.social-links-tooltip-toggle.copied-wrapper span.copied {
	display: inline-block;
}

.slick-dots > li {
	display: inline-block;
}

.slick-dots > li:only-child {
    display: none;
}

.carousel-slider {
	position: relative;
}

.carousel-slider .wishlist-icon {
	z-index: 1;
}

.weekday-label {
	min-width: 130px;
	display: inline-block;
}

.m-text-section h6 p {
	margin-left: 0px;
	max-width: 100% !important;
}

/* Override gov.bundle.css 750px content width cap on simple pages */
.accordion-content ol,
.accordion-content p:not(.large-paragraph),
.accordion-content ul,
.m-content-block ol,
.m-content-block p:not(.large-paragraph),
.m-content-block ul,
.m-text-section ol,
.m-text-section p:not(.large-paragraph),
.m-text-section ul {
	max-width: 100% !important;
}

.upload-files {	
	position: relative;
}

.upload-files button {
	position: absolute;
	top: 0px;
	left: 0px;
}

.form-control[type="textarea"] {
	margin-bottom: 25px;
}

h6.error {
	color: #dc3545;
	margin-bottom: 20px;
}

h6.success {
	color: #00ab14;
}

.a-logo-slang {
	display: none;
}

/*
.a-logo-slang {
	width: 120px;
	margin-left: 24px;
	margin-top: 31px;
	font-size: 34px;
	font-family: TTCommons-DemiBold;
}

.o-header--white-bg-desktop .m-logo-container .a-logo-slang {
	background: -webkit-linear-gradient(45deg, #e41d2f, #e45f1d 75%);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
}
*/
.btn-filter-close,
.btn-filter-clear
{
	/*margin-top: -30px;*/
}

.filter-content-wrapper .btn-filter-clear {
	margin-bottom: 20px;
}

.filter-content-wrapper .o-burger-menu-container .feather-x {
	display: inline-block;
}

.btn span.mob {
	display: none;
}

.o-card.ve .m-card__category {
	color: #999;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
	margin-bottom: 0;
}

.o-card.ve p.m-card__location {
	display: block;
	overflow: visible;
	margin-bottom: 4px;
}

.o-card.ve p.m-card__location > a {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	overflow-wrap: anywhere;
	word-break: break-word;
	margin-bottom: 0;
}

.page-slider.ve {
	margin-bottom: 0px;
}

.o-card .image-wrapper {
	position: relative;
}

.o-card .card-gradient {
    width: 100%;
    height: 75px;
    position: absolute;
    bottom: 0;
    background: hsla(0,0%,100%,0);
    background: -webkit-linear-gradient(legacy-direction(to bottom),hsla(0,0%,100%,0),rgba(0,0,0,.7));
    background: linear-gradient(180deg, hsla(0,0%,100%,0),rgba(0,0,0,.7));
}

.o-card .m-card__over-container {
	color: #ffffff;
	position: absolute;
	left: 22px;
	bottom: 16px;
}

.o-card .m-card__over-container .m-card__description-date {
	color: #fff;
	margin-bottom: 0px;
	font-size: 18px;
}

.o-card .m-card__description-container {
	height: auto;
	min-height: 215px;
}

.o-card.ve {
	display: flex;
	flex-direction: column;
}

.o-card.ve .m-card__description-container {
	flex: 1;
	height: auto;
	min-height: unset;
}

.o-card.ve .m-card__description-title {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	height: auto;
	min-height: 0;
	max-height: none;
	margin-bottom: 4px;
}

.o-card.ve:hover .m-card__description-title {
	color: #e62428;
	transition: 0.5s all;
}

.more-wrapper {
	display: flex;
	justify-content: center;
}

.more-date-block,
.center-block
{
	position: relative;
	margin-bottom: 30px;
	clear: both;
	width: 100%;
	text-align: center;
}

.btn.more-date {
	white-space: nowrap;
	color: #414454;
	background-color: #f3f4f5;
	opacity: 1;
	width: 230px;
	cursor: pointer;
}

.more-date-block.hide {
	display: none;
}

.cards-list.no-margin-bottom {
	margin-bottom: 0px;
}

.btn.more_3_days,
.btn.more_3_days.btn--primary {
	border-radius: 15px !important;
	font-family: 'TT Commons', sans-serif;
	font-size: 18px;
	font-weight: 500;
	padding-top: 3px;
}

.checkbox-group-wrapper, .ie-fix-wrapper {
	max-height: 150px;
}

@media (max-width: 767px) {
	
/*	
	#filter-menu.o-burger-menu .btn.btn--secondary {
		border: 1px solid transparent;
		background-color: #e62428;
		color: #fff;
		transition-timing-function: ease-in-out;
		-webkit-transition: background-color 0.3s;
		-moz-transition: 0.3s background-color;
		-ms-transition: 0.3s background-color;
		-o-transition: 0.3s background-color;
		transition: background-color 0.3s;
	}
*/
}

.m-language-dropdown span,
.m-language-dropdown__content span {
	text-transform: uppercase;
}

.search-form input.btn {
	padding: 0px 20px;
	width: 300px;
	position: absolute;
	right: 0px;
	background-color: #ffffff;
	display: none;
}

.btn--search {
	z-index: 9;
}

.btn--search.active {
	color: rgba(65, 68, 84, 0.5);
	border-color: rgba(65, 68, 84, 0.5);
	background-color: #fff;
}

.search-form input.btn.active {
	display: block;
	color: #000000;
}

.o-header__wrapper.header-search-active .o-hdr-nav,
.o-header__wrapper.header-search-active .o-hdr-actions > *:not(.btn--search):not(.search-form),
.o-header__wrapper:has(.input--search.active) .o-hdr-nav,
.o-header__wrapper:has(.input--search.active) .o-hdr-actions > *:not(.btn--search):not(.search-form) {
	visibility: hidden;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.15s ease;
}

.o-header__content {
	position: relative;
}

.o-header--fixed.o-header--white-bg-mobile {
	padding: 0 20px !important;
}

.carousel-slider h3 {
	color: #ffffff;
    margin-bottom: 0px;
}

@media (min-width: 900px) {
	.o-card .image-wrapper {
		min-height: 209px;
	}
}

@media (max-width: 900px) {
	.o-card--title-image-subtitle .m-card__description-title {
		max-height: 40px;
		min-height: 40px;
		height: 40px;
		font-size: 18px;
		line-height: 20px;
	}
	
	.btn span.des {
		display: none;
	}
	
	.btn span.mob {
		display: inline-block;
	}
}

/* ============================================================
   Filter Results — Loader
   ============================================================ */

.ve-results-loader {
	display: flex;
	justify-content: center;
	align-items: center;
	min-height: 260px;
	width: 100%;
}

.ve-results-loader__spinner {
	width: 48px;
	height: 48px;
	border: 4px solid rgba(237, 28, 36, 0.15);
	border-top-color: #ED1C24;
	border-radius: 50%;
	animation: ve-spin 0.75s linear infinite;
}

@keyframes ve-spin {
	to { transform: rotate(360deg); }
}

/* Skeleton loader (list view) */
.ve-results-loader--skeleton {
	display: block;
	min-height: unset;
}

.ve-skeleton-card {
	display: flex;
	flex-direction: column;
	background: #fff;
	overflow: hidden;
	height: 100%;
}

.ve-skeleton__image {
	width: 100%;
	height: 170px;
	flex-shrink: 0;
}

.ve-skeleton__body {
	display: flex;
	flex-direction: column;
	padding: 16px;
	gap: 10px;
	flex: 1;
}

.ve-skeleton__tag-line {
	height: 20px;
	width: 38%;
	border-radius: 12px;
}

.ve-skeleton__title-line {
	height: 20px;
	width: 92%;
	border-radius: 6px;
}

.ve-skeleton__title-line--short {
	width: 66%;
}

.ve-skeleton__meta-line {
	height: 16px;
	width: 68%;
	border-radius: 4px;
	margin-top: 4px;
}

.ve-skeleton__meta-line--short {
	width: 48%;
}

@keyframes ve-shimmer {
	0%   { background-position: 200% 0; }
	100% { background-position: -200% 0; }
}

.ve-skeleton-shimmer {
	background: linear-gradient(
		90deg,
		#efefef 25%,
		#e0e0e0 50%,
		#efefef 75%
	);
	background-size: 200% 100%;
	animation: ve-shimmer 1.4s ease-in-out infinite;
}

/* ============================================================
   Map View — View Switcher
   ============================================================ */

.ve-view-switcher-wrap {
	display: flex;
	justify-content: flex-end;
	margin: 0 var(--page-padding);
	padding: 0 0 16px;
	position: relative;
	z-index: 5;
}

.ve-view-switcher {
	display: inline-flex;
	align-items: center;
	background: #ffffff;
	border: 1px solid #CFD1D5;
	padding: 4px;
	border-radius: 12px;
	gap: 0;
	height: 48px;

}

.ve-view-btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	height: 40px;
	padding: 0 12px;
	border-radius: 8px;
	font-family: "TTCommons-Regular", sans-serif;
	font-size: 18px;
	font-weight: 500;
	/* line-height: 28px; */
	border: none;
	cursor: pointer;
	background: transparent;
	color: #3C3C3C;
	transition: background 0.15s ease, color 0.15s ease;
	white-space: nowrap;
}

.ve-view-btn svg {
	flex-shrink: 0;
}

.ve-view-btn.active {
	background: #ED1C24;
	color: #ffffff;
}

.ve-view-btn.active:hover {
	background: #ED1C24;
	color: #ffffff;
}

.ve-view-btn:hover {
	background: #F3F4F5;
}

/* ============================================================
   Map View — Map Container
   ============================================================ */

.ve-map-outer-wrap {
	position: relative;
	margin: 0 auto;
	/* max-width: 1280px; */
	padding: 0 var(--page-padding) 58px var(--page-padding);
}

#ve-google-map {
	width: 100%;
	height: 600px;
	overflow: hidden;
}

/* Mobile-only elements — hidden on desktop */
.ve-map-mobile-header,
.ve-map-mobile-controls {
	display: none;
}

@media (max-width: 1000px) {
	.ve-map-outer-wrap {
		padding: 0;
	}
	#ve-google-map {
		height: 450px;
	}

	/* Full-screen map overlay when active */
	body.ve-map-view-active {
		overflow: hidden;
	}

	body.ve-map-view-active .ve-map-outer-wrap {
		position: fixed !important;
		top: 0;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 9000;
		display: flex !important;
		flex-direction: column;
		margin: 0;
		padding: 0;
		overflow: hidden;
	}

	body.ve-map-view-active #ve-google-map {
		flex: 1;
		height: auto !important;
		min-height: 0;
	}

	/* --- Mobile title bar --- */
	.ve-map-mobile-header {
		display: flex;
		align-items: center;
		position: relative;
		height: 64px;
		background: #ffffff;
		flex-shrink: 0;
		z-index: 2;
	}

	.ve-map-mobile-title {
		font-family: "TTCommons-Regular", sans-serif;
		font-size: 20px;
		font-weight: 600;
		line-height: 28px;
		color: #3C3C3C;
		text-align: center;
		overflow: hidden;
		text-overflow: ellipsis;
		white-space: nowrap;
		flex: 1;
		margin: 0;
	}

	.ve-map-mobile-close {
		position: absolute;
		right: 20px;
		top: 50%;
		transform: translateY(-50%);
		width: 32px;
		height: 32px;
		border-radius: 50%;
		border: 1px solid rgba(65, 68, 84, 0.2);
		background: #ffffff;
		cursor: pointer;
		padding: 0;
		display: flex;
		align-items: center;
		justify-content: center;
		flex-shrink: 0;
		line-height: 0;
	}

	/* --- Mobile controls (search + filter) — overlaid on map --- */
	.ve-map-mobile-controls {
		display: flex;
		flex-direction: column;
		gap: 12px;
		padding: 12px 20px;
		position: absolute;
		top: 64px;
		left: 0;
		right: 0;
		z-index: 20;
		pointer-events: none;
	}

	.ve-map-mobile-controls > * {
		pointer-events: auto;
	}

	.ve-map-mobile-search {
		display: flex;
		align-items: center;
		gap: 8px;
		height: 48px;
		background: #ffffff;
		border: 1px solid #CFD1D5;
		border-radius: 1000px;
		padding: 0 16px;
		cursor: text;
		box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
	}

	.ve-map-mobile-search svg {
		flex-shrink: 0;
	}

	.ve-map-mobile-search-text {
		font-family: "TT Commons", sans-serif;
		font-size: 18px;
		line-height: 28px;
		color: #96979F;
	}

	.ve-map-mobile-search.is-editing .ve-map-mobile-search-text {
		display: none;
	}

	.ve-map-mobile-search-input {
		flex: 1;
		width: 100%;
		min-width: 0;
		border: 0;
		outline: none;
		background: transparent;
		font-family: "TT Commons", sans-serif;
		font-size: 18px;
		line-height: 28px;
		color: #3C3C3C !important;
		opacity: 1;
		-webkit-text-fill-color: #3C3C3C;
	}

	.ve-map-mobile-search-input::placeholder {
		color: #96979F !important;
		opacity: 1;
	}

	.ve-map-mobile-search-clear {
		display: none;
		width: 24px;
		height: 24px;
		border: 0;
		background: transparent;
		padding: 0;
		align-items: center;
		justify-content: center;
		cursor: pointer;
		flex-shrink: 0;
	}

	.ve-map-mobile-search-clear.is-visible {
		display: inline-flex;
	}

	.ve-map-mobile-search-clear svg {
		display: block;
	}

	.ve-map-mobile-filter-btn {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 10px;
		height: 48px;
		background: #ffffff;
		border: 1.5px solid #CFD1D5;
		border-radius: 1000px;
		padding: 0 24px;
		font-family: "TT Commons", sans-serif;
		font-size: 18px;
		font-weight: 500;
		color: #3C3C3C;
		cursor: pointer;
		box-shadow: none;
	}

	.ve-map-mobile-filter-btn .ve-map-filter-icon {
		flex-shrink: 0;
	}

	.ve-map-mobile-filter-btn.has-filters {
		border-color: #CFD1D5;
		color: #3C3C3C;
	}

	.ve-map-mobile-filter-btn.has-filters .ve-map-filter-icon {
		display: none;
	}

	.ve-map-filter-badge {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 18px;
		height: 18px;
		background: #ED1C24;
		color: #ffffff;
		border-radius: 50%;
		font-size: 11px;
		font-weight: 600;
		flex-shrink: 0;
		display: none;
	}

	.ve-map-filter-badge[hidden] {
		display: none;
	}

	.ve-map-mobile-filter-btn.has-filters .ve-map-filter-badge:not([hidden]) {
		display: inline-flex;
	}
}

/* ============================================================
   Map View — Event Popup Card
   ============================================================ */

#ve-map-popup {
	position: absolute;
	z-index: 10;
	width: 280px;
	max-width: calc(100% - 40px);
}

.ve-map-popup__card {
	position: relative;
	width: 280px;
	background: #ffffff;
	/* left: 112px; */
	overflow: visible;
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.18);
}

.ve-map-popup__image-wrap {
	display: block;
	position: relative;
	height: 135px;
	overflow: hidden;
	background: #F3F4F5;
	text-decoration: none;
}

.ve-map-popup__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ve-map-popup__img--placeholder {
	width: 100%;
	height: 100%;
	background: #F3F4F5;
}

/* Category tag (overlaid on image) */
.ve-map-popup__category {
	position: absolute;
	top: 12px;
	left: 12px;
	background: #F3F4F5;
	border-radius: 12px;
	padding: 4px 8px;
	font-family: "TTCommons-Regular", sans-serif;
	font-size: 12px;
	font-weight: 500;
	line-height: 16px;
	color: #3C3C3C;
	white-space: nowrap;
	pointer-events: none;
	z-index: 2;
}

/* Close button (top-right, overlaid on whole card) */
.ve-map-popup__close {
	position: absolute;
	top: 12px;
	right: 12px;
	width: 32px;
	height: 32px;
	padding: 0;
	border: none;
	background: none;
	cursor: pointer;
	z-index: 5;
	line-height: 0;
}

.ve-map-popup__close svg {
	display: block;
}

/* Content panel — overlaps image bottom, rounded top corners */
.ve-map-popup__content {
	position: relative;
	background: #ffffff;
	padding: 12px 16px 16px;
	border-radius: 20px 20px 0 0;
	margin-top: -20px;
	box-shadow: 0 -6px 10px rgba(0, 0, 0, 0.08);
}

.ve-map-popup__title {
	font-family: "TTCommons-Regular", sans-serif;
	font-size: 14px;
	font-weight: 600;
	line-height: 20px;
	color: #3C3C3C;
	margin: 0 0 8px;
	overflow: hidden;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
}

.ve-map-popup__title a {
	color: inherit;
	text-decoration: none;
}

.ve-map-popup__title a:hover {
	color: #ED1C24;
}

/* Details (date / time / location rows) */
.ve-map-popup__details {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin-bottom: 8px;
}

.ve-map-popup__detail {
	display: flex;
	align-items: center;
	gap: 8px;
	min-height: 20px;
}

.ve-map-popup__detail svg {
	flex-shrink: 0;
	width: 16px;
	height: 16px;
	color: #3C3C3C;
}

.ve-map-popup__detail span {
	font-family: "TTCommons-Regular", sans-serif;
	font-size: 14px;
	font-weight: 400;
	line-height: 20px;
	color: #3C3C3C;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

/* Price */
.ve-map-popup__price {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 6px;
	margin-top: 4px;
}

.ve-map-popup__price-from {
	font-family: "TTCommons-Regular", sans-serif;
	font-size: 14px;
	font-weight: 400;
	line-height: 20px;
	color: #96979F;
}

.ve-map-popup__price-amount {
	font-family: "TTCommons-Regular", sans-serif;
	font-size: 20px;
	font-weight: 700;
	line-height: 28px;
	color: #3C3C3C;
}

/* Multi-event navigation row */
.ve-map-popup__nav {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	margin-top: 10px;
	padding-top: 10px;
	border-top: 1px solid #F3F4F5;
}

.ve-map-popup__nav-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	padding: 0;
	border: 1px solid #E0E0E0;
	border-radius: 50%;
	background: #fff;
	cursor: pointer;
	color: #3C3C3C;
	transition: background 0.15s, color 0.15s, border-color 0.15s;
	line-height: 0;
}

.ve-map-popup__nav-btn:hover:not(:disabled) {
	background: #ED1C24;
	border-color: #ED1C24;
	color: #fff;
}

.ve-map-popup__nav-btn:disabled {
	opacity: 0.35;
	cursor: default;
}

.ve-map-popup__nav-counter {
	font-family: "TTCommons-Regular", sans-serif;
	font-size: 13px;
	font-weight: 500;
	color: #96979F;
	min-width: 36px;
	text-align: center;
}

/* ============================================================
   Mobile Map Popup — fixed bottom sheet
   ============================================================ */
@media (max-width: 1000px) {
	#ve-map-popup {
		position: absolute !important;
		bottom: 0 !important;
		left: 0 !important;
		right: 0 !important;
		top: auto !important;
		width: 100% !important;
		max-width: 100% !important;
		z-index: 10;
	}

	.ve-map-popup__card {
		width: 100%;
		left: 0;
		border-radius: 0;
		box-shadow: 0 -10px 30px rgba(0, 0, 0, 0.12);
	}

	.ve-map-popup__image-wrap {
		height: 200px;
	}

	.ve-map-popup__content {
		display: flex;
		flex-wrap: wrap;
		align-items: flex-end;
		gap: 8px 16px;
	}

	.ve-map-popup__title {
		flex: 0 0 100%;
		margin-bottom: 0;
		-webkit-line-clamp: 2;
	}

	.ve-map-popup__details {
		flex: 1;
		min-width: 0;
		margin-bottom: 0;
	}

	.ve-map-popup__price {
		flex: 0 0 auto;
		margin-top: 0;
		flex-direction: column;
		align-items: flex-end;
		justify-content: flex-end;
		gap: 0;
	}

	.ve-map-popup__price-from {
		text-align: right;
	}

	.ve-map-popup__price-amount {
		text-align: right;
	}

	.ve-map-popup__nav {
		flex: 0 0 100%;
		margin-top: 0;
		justify-content: center;
	}
}

.rd-month-label,
.rd-back,
.rd-next
{
	font-size: 26px;
}

.rd-day-selected, .rd-time-selected, .rd-time-option:hover {
    cursor: pointer;
    background-color: #e62428;
    color: #fff;
    border-radius: 50%;
}

.o-burger-wrapper .m-burger-main-menu > .nav-item > .nav-link {
		font-size: 20px;
		color: #414454;
		line-height: 42px;
	}
.o-burger-wrapper .m-burger-main-menu > .nav-item > .nav-link:hover {
    color: #e62428;
}

@media (min-width: 1200px) {
	
	.o-burger-menu-container .btn--circle + .o-burger-menu:before {
		left: auto;
	}
	
	.o-burger-menu-container .btn--circle + .o-burger-menu {
		left: auto;
		right: -28px;
	}

}

@media (max-width: 1200px) {
	.o-burger-menu {
		width: 100%;
	}
}

.upload-files input {
	padding-left: 60px;
    height: 47px;
    font-size: 16px;
    line-height: 40px;
}

.btn svg.feather-menu {
    width: 19px;
    height: 19px;
}

.filter-content-wrapper .o-burger-menu-container {
	margin-left: 0px;
	box-shadow: 7px 12px 11px rgba(65,68,84,.02);
}

.filter-content-wrapper .o-burger-menu-container .o-burger-menu {
	display: block;
	position: relative;
	top: auto;
	z-index: 0;
}

.filter-content-wrapper h6 {
	font-size: 30px;
}

.filter-content-wrapper h6 span {
	display: none;
}

.filter-content-wrapper #filter-button-dummy {
	position: absolute;
	top: -23px;
	right: 25px;
	z-index: 1;
	cursor: default;
}

.filter-content-wrapper .button-wrapper {
	display: none;
}

.filter-content-wrapper #filter-form .m-filter-section h6 {
	display: inline-block;
}

.filter-content-wrapper .m-filter-section .dates-group h6 {
	margin-bottom: 12px;
	margin-right: 80px;
}

#filter-form .m-filter-section h6 {
	font-size: 25px;
}

#filter-form .button-wrapper button {
	display: none;
}

.filter-content-wrapper .btn-filter-close {
	display: none;
}

.filter-content-wrapper .date-picker-range {
	justify-content: flex-start;
}

.carousel-slider--wide.o-wide-content-container {
	margin-bottom: 50px;
}

.filter-content-wrapper .o-burger-menu .o-burger-wrapper {
	padding-bottom: 5px;
}

#filter-container {
	/*display: none;*/
}

.home #filter-button {
	transition: margin-top 0.2s;
}
.visible-filter #filter-button {
	margin-top: -75px;
}
.visible-filter #filter-top-container {
	pointer-events: none;
}

.ve-no-results-card {
	background: #ffffff;
	border: 1px solid #edf0f2;
	border-radius: 14px;
	padding: 64px 0px;
	text-align: center;
	max-width: 1200px;
	margin: 32px auto 56px;
}

.ve-no-results-content > * {
	margin: 0;
	font-size: 16px;
	line-height: 1.55;
	font-weight: 400;
	color: #96979F;
}

.ve-no-results-content > * + * {
	margin-top: 6px;
}

.ve-no-results-content > *:first-child {
	font-weight: 700;
	font-size: 18px;
	color: #3C3C3C;
}

@media (min-width: 900px) {
	
	.filter-content-wrapper #filter-button-dummy {
		right: 50px;
	}
	
	#filter-container {
		display: block;
	}
	.filter-content-wrapper #filter-form .m-filter-section h6 {
		display: none;
	}

	.filter-content-wrapper .m-filter-section .dates-group h6 {
		display: none;
	}
	
	.filter-content-wrapper .dates-group {
		display: flex;
		align-items: center;
		margin-bottom: 0px;
		margin-left: 15px;
	}	

	.filter-content-wrapper .checkbox-group-wrapper {
		max-height: 120px;
	}	
	
}

@media (max-width: 900px) {
	.checkbox-group-wrapper {
		margin-left: 0px;
	}
	
	#filter-form .button-wrapper button.btn-filter-close {
		display: inline-block;
	}
	
	.home .carousel-slider--wide.o-wide-content-container {
		margin-bottom: 0px;
	}
	
	.checkbox-group-wrapper,
	.ie-fix-wrapper
	{
		max-height: 200px;
	}
	
	.filter-on #filter-menu.o-burger-menu,
	.filter-on #menu-container.o-burger-menu,
	BODY:not(.home) #filter-menu.o-burger-menu,
	BODY:not(.home) #menu-container.o-burger-menu
	{
		top: 0px;
		padding: 30px;
		z-index: 10;
	}
}

@media (min-width: 1000px) {
	.hidden-on-desktop {
		display: none;
	}
}

.file-upload-field .btn {
	border-bottom-right-radius: 0px;
    border-top-right-radius: 0px;
}

.file-upload-field .btn {
	width: 150px;
	margin-left: auto;
	height: 47px;
}

@media (max-width: 600px) {
	.o-header__content .btn.btn--filter svg {
		margin-right: 0px;
		margin-top: 4px;
	}
	
	.o-header__content .btn.btn--filter {
		padding-left: 12px;
		padding-right: 12px;
	}
	
	.o-header__content .btn.btn--filter span {
		display: none;
	}

	.o-header__content {
		margin-left: 0px;
	}
	
}

.o-footer__menu p {
	color: #75798a;
}

.o-footer__menu a.inline {
	display: inline-block;
}

.o-modal {
	display:none;
}

.o-modal.active {
	display: block;
}

#modal-vote .o-modal__btn-container {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
}

#modal-vote h3 {
	text-align: center;
	margin-bottom: 25px;
}

#modal-vote .o-modal__btn-container .thumbs-up {
	display: inline-block;
	padding: 5px 0px 10px 0px;
	transition: padding 0.1s ease-in;
	margin-right: 50px;
}

#modal-vote .o-modal__btn-container .thumbs-up:hover  {
	padding: 0px 0px 15px 0px;
	transition: padding 0.1s ease-in;
}

#modal-vote .o-modal__btn-container .thumbs-down {
	display: inline-block;
	padding: 37px 0px 5px 0px;
	transition: padding 0.1s ease-in;
}

#modal-vote .o-modal__btn-container .thumbs-down:hover {
	padding: 42px 0px 0px 0px;
	transition: padding 0.1s ease-in;
}

#modal-vote .o-modal__btn-container .thumbs-up img {
	transform: scaleY(-1);
}

#modal-vote .voted {
	color: #e62428;
	font-size: 36px;
	line-height: 142px;
	font-family: TTCommons-DemiBold, sans-serif;
    font-weight: 400;
	text-align: center; 
	display: none;
}

.o-footer__menu .m-nav-list {
	color: #75798a;
	font-size: 13px;
}

.m-nav-list {
	color: #75798a;
	font-size: 15px;
}

/* ============================================================
   Footer redesign  (.o-footer--dark)
   ============================================================ */

.o-footer--dark {
	background: #000;
	max-width: none;
	width: 100%;
	margin: 0;
	padding: 0;
}

.o-footer--dark .o-footer__inner {
	max-width: 1440px;
	margin: 0 auto;
	padding: 87px 118px;
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
}

.o-footer--dark .o-footer__col--left {
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.o-footer--dark .o-footer__logo-link {
	display: inline-block;
	line-height: 0;
}

.o-footer--dark .o-footer__logo-img {
	filter: brightness(0) invert(1);
	height: 32px;
	width: auto;
}

.o-footer--dark .o-footer__contacts {
	display: flex;
	flex-direction: column;
	gap: 0;
	
}

.o-footer--dark .o-footer__contacts p,
.o-footer--dark .o-footer__contacts div {
	color: #fff;
	font-family: TTCommons-Regular, sans-serif;
	font-size: 18px;
	line-height: 1.22;
	height: 45px;
	margin: 0;
}


.o-footer--dark .o-footer__contacts p:last-child,
.o-footer--dark .o-footer__contacts div:last-child {
	margin-bottom: 0;
}

.o-footer--dark .o-footer__contacts a {
	color: #fff;
	text-decoration: none;
}

.o-footer--dark .o-footer__contacts a:hover {
	opacity: 0.7;
}

.o-footer--dark .o-footer__social {
	display: flex;
	flex-direction: row;
	gap: 27px;
	flex-wrap: wrap;
}

.o-footer--dark .o-footer__social-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	text-decoration: none;
	transition: opacity 0.2s;
	flex-shrink: 0;
	line-height: 0;
}

.o-footer--dark .o-footer__social-link:hover {
	opacity: 0.65;
}

.o-footer--dark .o-footer__social-link svg {
	width: 24px;
	height: 24px;
	display: block;
}

/* FB/TikTok source icons are visually denser than the others at 24px — scale down slightly to match */
.o-footer--dark .o-footer__social-link--fb svg {
	width: 18px;
	height: 18px;
}
.o-footer--dark .o-footer__social-link--tiktok svg {
	width: 20px;
	height: 20px;
}

.o-footer--dark .o-footer__col--right {
	display: flex;
	flex-direction: column;
	gap: 24px;
	flex-shrink: 0;
}

.o-footer--dark .o-footer__nav-heading {
	display: block;
	color: #fff;
	font-family: TTCommons-DemiBold, sans-serif;
	font-size: 18px;
	line-height: 24px;
	letter-spacing: 0.9px;
	text-transform: uppercase;
}

.o-footer--dark .o-footer__nav-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 8px;
	width: 144px;
}

.o-footer--dark .o-footer__nav-list .menu-item {
	line-height: 1;
	height: 45px;
}

.o-footer--dark .o-footer__nav-list .menu-item:nth-child(3) {
	height: 38px;
}

.o-footer--dark .o-footer__nav-list .nav-link,
.o-footer--dark .o-footer__nav-list a {
	color: #fff !important;
	font-size: 16px;
	line-height: normal;
	text-decoration: none;
}

.o-footer--dark .o-footer__nav-list .nav-link:hover,
.o-footer--dark .o-footer__nav-list a:hover {
	opacity: 0.7;
}

@media (max-width: 1199px) {
	.o-footer--dark .o-footer__inner {
		flex-direction: column;
		padding: 48px 24px;
		gap: 40px;
	}
	.o-footer--dark .o-footer__nav-list {
		width: auto;
	}
}

.carousel-slider--narrow .slide-container {
	height: auto;
}

.wrap-links-inside a {
    white-space: pre-wrap; /* css-3 */    
    white-space: -moz-pre-wrap; /* Mozilla, since 1999 */
    white-space: -pre-wrap; /* Opera 4-6 */    
    white-space: -o-pre-wrap; /* Opera 7 */    
    word-wrap: break-word; /* Internet Explorer 5.5+ */
}

/* ============================================================
   Other Events slider  (.oe-*)
   ============================================================ */

.oe-section {
	margin-top: 48px;
	margin-bottom: 48px;
}

.oe-heading {
	font-size: 36px;
	font-weight: 300;
	line-height: 36px;
	color: #3c3c3c;
	margin-bottom: 24px;
	font-family: TTCommons-DemiBold, sans-serif;
}

.oe-slider-wrapper {
	position: relative;
	overflow: visible;
	padding: 0;
}

/* Arrow buttons */
.oe-arrow {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 10;
	width: 48px;
	height: 48px;
	min-width: 0;
	padding: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	background: #1a1a1a;
	border: none;
	border-radius: 50%;
	color: #fff;
	cursor: pointer;
	transition: background 0.2s;
}

.oe-arrow:hover,
.oe-arrow:focus {
	background: #000;
	outline: none;
}

.oe-arrow--prev {
	left: -28px;
}

.oe-arrow--next {
	right: -28px;
}

.oe-arrow--hidden {
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
}

/* Card */
.oe-card {
	display: flex;
	flex-direction: column;
	background: #fff;
	overflow: hidden;
	text-decoration: none;
	color: inherit;
	height: 100%;
	transition: box-shadow 0.2s;
}

.oe-card:hover {
	box-shadow: 0 6px 6px rgba(0, 0, 0, 0.05);
	text-decoration: none;
	color: inherit;
}

.oe-card:hover .oe-card__image {
	transform: scale(1.15);
}

.oe-card__image-wrap {
	width: 100%;
	height: 170px;
	overflow: hidden;
	flex-shrink: 0;
	background: #e9eaec;
}

.oe-card__image {
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	object-position: center;
	display: block;
	transition: transform 0.35s ease;
}

.oe-card__image-placeholder {
	width: 100%;
	height: 100%;
	background: #e9eaec;
}

/* Body: padding 16px, gap 20px between content group and price footer */
.oe-card__body {
	display: flex;
	flex-direction: column;
	padding: 16px;
	gap: 20px;
	flex: 1;
}

/* Content group: gap 16px between tags+title block and meta rows */
.oe-card__content {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

/* Tags + title group: gap 12px */
.oe-card__top {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

/* Category tags */
.oe-card__tags {
	display: flex;
	flex-wrap: nowrap;
	gap: 8px;
	min-width: 0;
	overflow: hidden;
}

.oe-card__tag {
	display: inline-block;
	flex-shrink: 0;
	white-space: nowrap;
	background: #f3f4f5;
	color: #3c3c3c;
	font-size: 12px;
	font-weight: 500;
	line-height: 16px;
	padding: 4px 8px;
	border-radius: 12px;
	vertical-align: middle;
}

/* Second tag (and any further) shrinks and truncates */
.oe-card__tag + .oe-card__tag {
	flex-shrink: 1;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
}

/* Title */
.oe-card__title {
	font-size: 18px;
	font-weight: 300;
	line-height: 20px;
	height: 40px;
	color: #3c3c3c;
	margin: 0;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	font-family: TTCommons-DemiBold, sans-serif;
}

@media (max-width: 1000px) {
	.oe-card__title {
		height: 20px;
	}
}

/* Meta rows (date / location) */
.oe-card__meta {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.oe-card__meta-row {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 14px;
	line-height: 20px;
	color: #3c3c3c;
	font-family: TTCommons-Regular, sans-serif;
}

.oe-icon {
	flex-shrink: 0;
	color: #3c3c3c;
}

.oe-card__location {
	overflow: hidden;
	white-space: nowrap;
	text-overflow: ellipsis;
}

/* Footer / price */
.oe-card__footer {
	margin-top: auto;
	display: flex;
	align-items: center;
	justify-content: flex-end;
}

.oe-card__price {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

.oe-card__price-from {
	font-size: 14px;
	font-weight: 400;
	line-height: 20px;
	color: #96979f;
	font-family: TTCommons-Regular, sans-serif;
}

.oe-card__price-value {
    font-family: "TT Commons", sans-serif;
    font-size: 20px;
    font-weight: 600;
    line-height: 28px;
	color: #3c3c3c;
}

/* Slick overrides for the oe-slider */
.oe-slider .slick-list {
	overflow: hidden;
	padding: 16px 0px !important; 
	margin: -16px -12px;
}

.oe-slider .slick-track {
	display: flex;
	align-items: stretch;
}

.oe-slider .slick-slide {
	display: flex !important;
	height: auto;
}

.oe-slide {
	display: flex;
	flex-direction: column;
	height: 100%;
	padding: 0 12px;
}

@media (max-width: 600px) {
	.oe-slide { padding: 0 6px; }
	.oe-slider .slick-list {
		padding: 16px 0px !important;
		margin: -16px -6px;
	}
}

@media (max-width: 1199px) {
	.oe-arrow--prev { left: -8px; }
	.oe-arrow--next { right: -8px; }
}

/* ============================================================
   Mobile Overlay Menu  (.o-mob-menu-*)
   ============================================================ */

/* Hamburger trigger button */
.o-mob-burger-btn {
	background: transparent !important;
	border: none !important;
	padding: 4px !important;
	display: flex !important;
	align-items: center;
	justify-content: center;
	line-height: 0;
	cursor: pointer;
}

/* Mobile + Add event button (hidden on desktop) */
.o-mob-add-btn {
	display: none;
	align-items: center;
	justify-content: center;
	width: 33px;
	height: 33px;
	background: #ED1C24;
	border-radius: 8px;
	text-decoration: none;
	flex-shrink: 0;
	transition: background 0.2s;
}
.o-mob-add-btn:hover {
	background: #c1272d;
	text-decoration: none;
}
@media (max-width: 999px) {
	.o-mob-add-btn { display: flex; }
}

/* Hide the hamburger button when overlay is open */
#menu-container.active .o-mob-burger-btn {
	display: none !important;
}

/* Lock body scroll when overlay is open */
body:has(#menu-container.active) {
	overflow: hidden;
}

/* Overlay — full-screen, column layout (hidden by default via .o-burger-menu-container rule) */
#menu-container .o-mob-menu-overlay {
	position: fixed !important;
	top: 0 !important;
	left: 0 !important;
	right: 0 !important;
	bottom: 0 !important;
	width: 100vw !important;
	height: 100vh !important;
	background-color: #ffffff !important;
	padding: 0 !important;
	overflow: hidden !important;
	flex-direction: column;
	z-index: 9999 !important;
}

/* Show as flex-column when active */
#menu-container.active .o-mob-menu-overlay {
	display: flex !important;
}

/* ── Top bar: search | logo | close ─────────────────────────── */
.o-mob-menu-top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	height: 72px;
	padding: 0 20px;
	flex-shrink: 0;
	border-bottom: 1px solid rgba(65, 68, 84, 0.1);
}

.o-mob-menu-search-bar {
	display: none;
	align-items: center;
	gap: 12px;
	height: 72px;
	padding: 0 20px;
	flex-shrink: 0;
	border-bottom: 1px solid rgba(65, 68, 84, 0.1);
}

.o-mob-menu-overlay.mob-search-active .o-mob-menu-top {
	display: none;
}
.o-mob-menu-overlay.mob-search-active .o-mob-menu-search-bar {
	display: flex;
}

.o-mob-search-back-btn {
	background: transparent !important;
	border: none !important;
	padding: 4px !important;
	display: flex !important;
	align-items: center;
	justify-content: center;
	line-height: 0;
	cursor: pointer;
	color: #3c3c3c;
	flex-shrink: 0;
}
.o-mob-search-back-btn:hover { color: #ed1c24; background: transparent !important; }

.o-mob-search-form {
	flex: 1;
	display: flex;
	align-items: center;
	gap: 8px;
}

.o-mob-search-input {
	flex: 1;
	height: 44px;
	border: 1px solid rgba(65, 68, 84, 0.2);
	border-radius: 8px;
	padding: 0 16px;
	font-family: 'TT Commons', sans-serif;
	font-size: 18px;
	color: #3c3c3c;
	background: #f3f4f5;
	outline: none;
	width: 100%;
}
.o-mob-search-input:focus {
	border-color: #3c3c3c;
	background: #fff;
}

.o-mob-search-submit-btn {
	background: #ED1C24 !important;
	border: none !important;
	border-radius: 8px !important;
	width: 40px;
	height: 40px;
	display: flex !important;
	align-items: center;
	justify-content: center;
	color: #fff;
	flex-shrink: 0;
	padding: 0 !important;
	cursor: pointer;
	transition: background 0.2s;
}
.o-mob-search-submit-btn:hover {
	background: #c1272d !important;
	color: #fff;
}

.o-mob-menu-search-btn,
.o-mob-menu-close-btn {
	background: transparent !important;
	border: none !important;
	padding: 6px !important;
	display: flex !important;
	align-items: center;
	justify-content: center;
	line-height: 0;
	cursor: pointer;
	color: #3c3c3c;
	width: 36px;
	height: 36px;
	flex-shrink: 0;
}
.o-mob-menu-search-btn:hover,
.o-mob-menu-close-btn:hover {
	color: #ed1c24;
	background: transparent !important;
}

.o-mob-menu-logo-link {
	display: flex;
	align-items: center;
	justify-content: center;
	text-decoration: none;
}
.o-mob-menu-logo-link img {
	height: 40px;
	width: auto;
	object-fit: contain;
}

/* ── Navigation items ─────────────────────────────────────────── */
.o-mob-menu-nav {
	flex: 1;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
}

.o-mob-menu-nav .m-burger-main-menu {
	list-style: none;
	margin: 0;
	padding: 0;
	text-align: left;
}

/* ============================================================
   Filter Results Grid  (.ve-cards-grid / .ve-list-item)
   ============================================================ */

.ve-cards-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px 24px;
}

@media (max-width: 1199px) {
	.ve-cards-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 20px;
	}
}

@media (max-width: 599px) {
	.ve-cards-grid {
		grid-template-columns: 1fr;
		gap: 20px;
	}
}

.ve-list-item {
	position: relative;
	min-width: 0; /* prevent grid blowout — grid items default to min-width:auto which lets content widen the column */
}

.ve-list-item .oe-card {
	height: 100%;
}

.ve-card-wpfp {
	position: absolute;
	top: 8px;
	right: 8px;
	z-index: 2;
}

/* ============================================================
   New Filter Bar  (.ve-filter-bar-*)
   ============================================================ */

/* Outer wrapper: hide the legacy hidden form visually */
.ve-filter-form-hidden {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0,0,0,0);
	white-space: nowrap;
	border: 0;
	pointer-events: none;
}

/* Filter bar container */
.ve-filter-bar {
	display: flex;
	align-items: center;
	gap: 16px;
}

/* ── Search field ── */
.ve-filter-search {
	display: flex;
	align-items: center;
	gap: 8px;
	flex: 1 1 auto;
	max-width: 598px;
	min-width: 180px;
	height: 48px;
	background: #ffffff;
	border: 1.5px solid #CFD1D5;
	border-radius: 1000px;
	padding: 0 16px;
	transition: border-color 0.15s;
}
.ve-filter-search:focus-within {
	border-color: #3C3C3C;
}
.ve-filter-search > svg {
	flex-shrink: 0;
}
.ve-search-input {
	flex: 1;
	border: none;
	outline: none;
	background: transparent;
	font-family: 'TT Commons', sans-serif;
	font-size: 18px;
	font-weight: 400;
	color: #3C3C3C;
	line-height: 28px;
	padding: 0;
	min-width: 0;
}
.ve-search-input::placeholder {
	color: #96979F;
}
.ve-search-clear {
	display: flex;
	align-items: center;
	justify-content: center;
	background: transparent;
	border: none;
	padding: 2px;
	cursor: pointer;
	line-height: 0;
	flex-shrink: 0;
}
.ve-search-clear:hover svg path { stroke: #3C3C3C; }

/* ── Filter buttons (date, categories) ── */
.ve-filter-btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	height: 48px;
	padding: 0 16px;
	background: #ffffff;
	border: 1.5px solid #CFD1D5;
	border-radius: 50px;
	font-family: 'TT Commons', sans-serif;
	font-size: 18px;
	font-weight: 400;
	color: #3C3C3C;
	cursor: pointer;
	white-space: nowrap;
	transition: border-color 0.15s, background 0.15s;
	flex-shrink: 0;
}
#ve-date-btn {
	width: 282px;
	flex: 0 0 282px;
}
#ve-cats-btn {
	width: 288px;
}
/* Free events toggle button — pill shape, Figma 2939:8765 */
.ve-filter-btn--free {
	border-radius: 50px;
	padding: 0 24px;
	gap: 8px;
	font-weight: 500;
	width: 288px; /* bad on mobile? */
	justify-content: center;
}
#ve-free-btn {
	flex: 0 0 288px;
}
.ve-filter-btn--free span {
	/* line-height: 1; */
	padding-top: 3px; 
}
.ve-filter-btn--free svg {
	flex-shrink: 0;
	display: block;
}
.ve-filter-btn--free:hover {
	border-color: #060708;
	background: #ffffff;
}
/* Selected state: dark background, white text */
.ve-filter-btn--free-active {
	background: #060708;
	border-color: #060708;
	color: #ffffff;
}
.ve-filter-btn--free-active svg {
	stroke: #ffffff;
}
/* Keep dark bg + white text + white icon on hover when selected */
.ve-filter-btn.ve-filter-btn--free-active:hover {
	background: #1a1a1a;
	border-color: #1a1a1a;
	color: #ffffff;
}
.ve-filter-btn.ve-filter-btn--free-active:hover svg {
	stroke: #ffffff;
}
.ve-filter-btn:hover {
	border-color: #121419;
	color: #121419;
}
.ve-filter-btn--active {
	border-color: #ED1C24;
	color: #ED1C24;
}
.ve-filter-btn--active svg path,
.ve-filter-btn--active svg rect {
	stroke: #ED1C24;
}
/* Date active: dark border + dark circle around chevron */
.ve-filter-btn--date-active {
	border-color: #121419;
}
.ve-filter-btn--date-active .ve-filter-btn__chevron {
	width: 24px;
	height: 24px;
	background: #121419;
	border-radius: 50%;
	padding: 4px;
	color: #ffffff;
	flex-shrink: 0;
}
.ve-filter-btn--date-active .ve-filter-btn__chevron path {
	stroke: #ffffff;
}
.ve-filter-btn__label {
	flex: 1;
	text-align: left;
	font-size: 18px;
	line-height: 28px;
	overflow: hidden;
	text-overflow: ellipsis;
}
.ve-filter-btn__chevron {
	flex-shrink: 0;
	transition: transform 0.2s;
}
.ve-filter-btn__chevron--open {
	transform: rotate(180deg);
}
[aria-expanded="true"] .ve-filter-btn__chevron {
	transform: rotate(180deg);
}

/* ── Modal / Dropdown ── */
.ve-filter-modal {
	display: none;
	flex-direction: column;
	gap: 16px;
	background: #ffffff;
	border: 0.67px solid #E5E7EB;
	border-radius: 14px;
	box-shadow: 0 10px 7.5px rgba(0,0,0,0.1), 0 4px 3px rgba(0,0,0,0.1);
	padding: 16px;
	width: 280px;
	z-index: 9999;
}
.ve-filter-modal.is-visible {
	display: flex;
}

/* Quick-date radio options */
.ve-modal-options {
	display: flex;
	flex-direction: column;
	gap: 16px;
	padding: 8px 0;
}
.ve-radio-row {
	display: flex;
	align-items: center;
	gap: 10px;
	cursor: pointer;
	font-family: 'TT Commons', sans-serif;
	font-size: 18px;
	color: #414454;
	line-height: 28px;
	user-select: none;
}
.ve-radio-circle {
	width: 20px;
	height: 20px;
	border-radius: 50%;
	border: 1.5px solid #96979F;
	flex-shrink: 0;
	box-sizing: border-box;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: border-color 0.15s;
}
.ve-radio-circle--active {
	border-color: #ED1C24;
	border-width: 5px;
}

/* Calendar */
.ve-cal {
	width: 100%;
}
.ve-cal-header {
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 8px;
}
.ve-cal-month-label {
	font-family: 'TT Commons', sans-serif;
	font-size: 14px;
	font-weight: 500;
	color: #3C3C3C;
	text-align: center;
	padding-inline: 24px;
}
.ve-cal-nav {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border: none;
	background: transparent;
	border-radius: 8px;
	cursor: pointer;
	padding: 0;
	opacity: 0.5;
	transition: opacity 0.15s;
}
.ve-cal-nav:hover { opacity: 1; }

.ve-cal-grid {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	row-gap: 2px;
}
.ve-cal-day-hdr {
	font-family: 'TT Commons', sans-serif;
	font-size: 13px;
	color: #75798A;
	text-align: center;
	padding: 4px 0 6px;
	user-select: none;
}
.ve-cal-day {
	width: 32px;
	height: 32px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: 'TT Commons', sans-serif;
	font-size: 14px;
	color: #3C3C3C;
	border-radius: 8px;
	cursor: pointer;
	position: relative;
	z-index: 1;
	user-select: none;
	transition: background 0.1s;
}
.ve-cal-day:hover:not(.ve-cal-day--past):not(.ve-cal-day--other):not(.ve-cal-day--start):not(.ve-cal-day--end) {
	background: #F3F4F5;
}
.ve-cal-day--other {
	color: #EBEBEB;
	cursor: default;
}
.ve-cal-day--past {
	color: #EBEBEB;
	cursor: default;
}
.ve-cal-day--start,
.ve-cal-day--end {
	background: #ED1C24;
	color: #ffffff;
	border-radius: 8px;
	z-index: 2;
}
.ve-cal-day--range {
	background: rgba(237,28,36,0.1);
	border-radius: 0;
}
.ve-cal-day--range-left {
	border-radius: 8px 0 0 8px;
}
.ve-cal-day--range-right {
	border-radius: 0 8px 8px 0;
}

/* Category list */
.ve-modal-cats-list {
	max-height: 260px;
	overflow-y: auto;
	display: flex;
	flex-direction: column;
	gap: 16px;
	padding: 8px 0;
}
.ve-modal-cats-list::-webkit-scrollbar {
	width: 8px;
}
.ve-modal-cats-list::-webkit-scrollbar-track {
	background: transparent;
}
.ve-modal-cats-list::-webkit-scrollbar-thumb {
	background: #CFD1D5;
	border-radius: 5px;
}
.ve-cat-row {
	display: flex;
	align-items: center;
	gap: 12px;
	cursor: pointer;
	font-family: 'TT Commons', sans-serif;
	font-size: 18px;
	color: #3C3C3C;
	line-height: 16px;
	user-select: none;
}
.ve-checkbox {
	width: 20px;
	height: 20px;
	border: 1.5px solid #96979F;
	border-radius: 2px;
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	transition: background 0.12s, border-color 0.12s;
}
.ve-checkbox--checked {
	background: #ED1C24;
	border-color: #ED1C24;
}
.ve-checkbox--checked::after {
	content: '';
	display: block;
	width: 11px;
	height: 6px;
	border-left: 2px solid #fff;
	border-bottom: 2px solid #fff;
	transform: rotate(-45deg) translateY(-1px);
	flex-shrink: 0;
}

/* Clear / Apply buttons */
.ve-modal-btns {
	display: flex;
	gap: 16px;
}
.ve-modal-btn {
	flex: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 14px 24px;
	border-radius: 15px;
	font-family: 'TT Commons', sans-serif;
	font-size: 18px;
	font-weight: 600;
	cursor: pointer;
	white-space: nowrap;
	transition: opacity 0.15s;
	min-width: 0;
}
.ve-modal-btn:hover { opacity: 0.8; }
.ve-modal-btn--clear {
	border: 1px solid rgba(65,68,84,0.2);
	background: #ffffff;
	color: #ED1C24;
}
.ve-modal-btn--apply {
	background: #ED1C24;
	border: none;
	color: #ffffff;
}

/* ============================================================
   Filter section header (title + view switcher) — static row
   ============================================================ */
.ve-filter-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding-top: 56px;
}
.ve-results-title {
	font-family: 'TTCommons-DemiBold', sans-serif;
	font-size: 52px;
	line-height: 1.12;
	color: #3C3C3C;
	margin: 0;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	min-width: 0;
}
/* Keep existing view-switcher styles working inside the new row */
.ve-filter-header .ve-view-switcher {
	flex-shrink: 0;
}

@media (min-width: 1000px) and (max-width: 1439px) {
	/* Preserve one-row layout before the 1200px fixed-content breakpoint */
	.ve-filter-bar {
		gap: 12px;
	}
	#ve-date-btn {
		width: clamp(190px, 20vw, 282px);
		flex: 0 0 clamp(190px, 20vw, 282px);
	}
	.ve-filter-btn--free {
		width: clamp(200px, 22vw, 288px);
		padding: 0 18px;
	}
	#ve-free-btn {
		flex: 0 0 clamp(200px, 22vw, 288px);
	}
}

/* ── Mobile adjustments ── */
@media (max-width: 767px) {
	.ve-filter-bar {
		flex-direction: column;
		align-items: stretch;
		gap: 8px;
	}
	.ve-filter-search,
	#ve-date-btn,
	#ve-cats-btn {
		width: 100%;
	}
	.ve-filter-btn {
		justify-content: space-between;
	}
	.ve-filter-modal {
		display: flex !important;
		visibility: hidden;
		pointer-events: none;
		position: fixed !important;
		bottom: 0;
		left: 0 !important;
		right: 0 !important;
		top: auto !important;
		width: 100% !important;
		border-radius: 20px 20px 0 0;
		max-height: 90vh;
		overflow-y: auto;
		transform: translateY(105%);
		transition: transform 0.38s cubic-bezier(0.32, 0.72, 0, 1),
		            visibility 0s linear 0.38s;
	}
	.ve-filter-modal.is-visible {
		visibility: visible;
		pointer-events: auto;
		transform: translateY(0);
		transition: transform 0.38s cubic-bezier(0.32, 0.72, 0, 1),
		            visibility 0s linear 0s;
	}
	.ve-results-title {
		font-size: 36px;
		line-height: 1.2;
		white-space: normal;
		overflow: visible;
		text-overflow: clip;
		width: 100%;
	}
	.ve-filter-header {
		flex-direction: column;
		align-items: flex-start;
		gap: 12px;
		padding-top: 40px;
	}
}


.o-mob-menu-nav .m-burger-main-menu > .nav-item {
	border-bottom: 1px solid rgba(65, 68, 84, 0.1);
	text-align: left;
}

.o-mob-menu-nav .m-burger-main-menu > .nav-item > .nav-link {
	display: block;
	position: relative;
	padding: 18px 44px 18px 20px;
	font-family: 'TT Commons', sans-serif;
	font-size: 20px;
	font-weight: 400;
	line-height: 1.2;
	color: #3c3c3c !important;
	text-decoration: none;
	text-align: left;
}
.o-mob-menu-nav .m-burger-main-menu > .nav-item > .nav-link:hover {
	color: #ed1c24 !important;
	text-decoration: none;
}

.o-mob-menu-nav .m-burger-main-menu > .menu-item-has-children > .nav-link::after {
	content: '';
	display: block;
	position: absolute;
	right: 22px;
	top: 50%;
	transform: translateY(-50%) rotate(-45deg);
	width: 10px;
	height: 10px;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
}

.o-mob-menu-nav .m-burger-main-menu .sub-menu {
	display: none;
}

.o-mob-menu-footer {
    display: flex;
    align-items: stretch;
    flex-shrink: 0;
    height: 170px;
    overflow: hidden;
}

.o-mob-menu-langs {
    flex: 0 0 50%;
    display: flex;
    align-items: center;
    padding: 0 20px;
    gap: 20px;
}

.o-mob-lang-item {
	font-family: 'TT Commons', sans-serif;
	font-size: 16px;
	font-weight: 400;
	color: #96979f;
	text-decoration: none;
	text-transform: uppercase;
	cursor: pointer;
	transition: color 0.15s;
}
.o-mob-lang-item:hover {
	color: #3c3c3c;
	text-decoration: none;
}
.o-mob-lang-item--active {
	color: #3c3c3c;
	font-weight: 600;
	cursor: default;
}

.o-mob-menu-bg-decor {
    flex: 0 0 50%;
    position: relative;
    overflow: hidden;
    pointer-events: none;
}

.o-mob-menu-bg-decor svg {
    position: absolute;
    bottom: 0;
    left: 0;
    width: auto;
    height: 170px;
}
/* ============================================================
   Desktop Search Modal
   ============================================================ */
.o-search-modal {
	display: none;
	position: fixed;
	inset: 0;
	z-index: 10000;
	background: #F3F4F5;
	flex-direction: column;
	align-items: center;
}

.o-search-modal.is-open {
	display: flex;
}

body:has(.o-search-modal.is-open) {
	overflow: hidden;
}

/* Top content area — search input centred */
.o-search-modal__body {
	flex: 1;
	width: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 140px 24px 0;
}

@media (max-width: 767px) {
	.o-search-modal__body {
		padding-top: 60px;
	}
}

.o-search-modal__form {
	width: 100%;
	max-width: 600px;
}

/* Pill-shaped input row */
.o-search-modal__input-wrap {
	display: flex;
	align-items: center;
	background: #fff;
	border-radius: 100px;
	height: 56px;
	padding: 0 8px 0 20px;
	box-shadow: 0 2px 16px rgba(0, 0, 0, 0.1);
}

.o-search-modal__search-icon {
	display: flex;
	align-items: center;
	color: #3c3c3c;
	flex-shrink: 0;
	margin-right: 12px;
	line-height: 0;
}

.o-search-modal__input {
	flex: 1;
	border: none;
	outline: none;
	background: transparent;
	font-family: 'TT Commons', sans-serif;
	font-size: 20px;
	color: #3c3c3c;
	height: 100%;
	min-width: 0;
}

.o-search-modal__input::placeholder {
	color: #96979f;
}

/* X button: clears text if present, closes modal if empty */
.o-search-modal__clear-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	background: transparent;
	border: none;
	cursor: pointer;
	color: #3c3c3c;
	width: 40px;
	height: 40px;
	flex-shrink: 0;
	border-radius: 50%;
	padding: 0;
	transition: color 0.15s, background 0.15s;
}

.o-search-modal__clear-btn:hover {
	color: #ed1c24;
	background: rgba(237, 28, 36, 0.06);
}
.o-search-modal__bg-decor {
	position: absolute;
	right: 0;
	bottom: 0;
	width: 260px;
	height: 209px;
	overflow: hidden;
	pointer-events: none;
}

.o-search-modal__bg-decor svg {
	position: absolute;
	right: 0;
	bottom: 0;
	width: 521px;
	max-width: none;
	height: auto;
}

/* -----------------------------------------------------------
   CATEGORY FILTER BAR
   ----------------------------------------------------------- */

/* Bar wrapper */
.o-cat-bar {
background: #fff;
width: 100%;
padding: 0 var(--page-padding);
}

@media (max-width: 1000px) {
	.o-cat-bar {
		padding: 0 20px;
	}
}

/* Horizontally-scrollable row */
.o-cat-bar__scroller {
overflow-x: auto;
-webkit-overflow-scrolling: touch;
scrollbar-width: none; /* Firefox */
user-select: none;
-webkit-user-select: none;
}
.o-cat-bar__scroller::-webkit-scrollbar { display: none; }
@media (max-width: 1509px) {
.o-cat-bar__scroller { cursor: grab; }
.o-cat-bar__scroller.is-grabbing { cursor: grabbing; }
}

/* Inner centred container — width:max-content lets the scroller actually scroll */
.o-cat-bar__container {
display: flex;
align-items: center;
gap: 30px;
height: 72px;
box-sizing: border-box;
white-space: nowrap;
justify-content: space-between;
}

/* Individual category button */
.o-cat-btn {
display: inline-flex;
align-items: center;
height: 40px;
padding: 16px 0px;
background: transparent;
border: none;
border-radius: 6px;
font-family: 'TT Commons', sans-serif;
font-weight: 500;
font-size: 18px;
line-height: 1;
color: #3C3C3C;
cursor: pointer;
white-space: nowrap;
transition: background 0.15s, color 0.15s;
flex-shrink: 0;
}

/* ============================================================
   Single Event page  (se-*)
   ============================================================ */

/* ── Left content column ── */
.se-content {
	background: #fff;
	border-radius: 0 0 10px 10px;
	padding: 0 24px 24px;
	width: auto;
}
@media (max-width: 999px) {
	.se-content {
		border-radius: 0;
		padding: 24px 16px 16px;
		order: 3;
		border-top: 1px solid #eaeaec;
		margin-top: 20px;
	}
}

/* ── Content top (title, tags, hero) ── */
.se-content-top {
	background: #fff;
	border-radius: 10px 10px 0 0;
	padding: 24px 24px 24px;
}
@media (max-width: 999px) {
	.se-content-top {
		background: transparent;
		border-radius: 0;
		padding: 0;
		display: flex;
		flex-direction: column;
		order: 1;
		width: 100%;
	}
	/* Mobile order: image FIRST, then tags, then title */
	.se-content-top .se-hero {
		order: 0;
		margin: 0;
	}
	.se-content-top .oe-card__tags {
		order: 1;
		padding: 24px 20px 12px;
		margin-bottom: 0;
		background: #fff;
		flex-wrap: wrap;
		overflow: visible;
		row-gap: 8px;
	}
	.se-content-top .oe-card__tag {
		flex-shrink: 0;
		white-space: nowrap;
	}
	.se-content-top .oe-card__tag + .oe-card__tag {
		flex-shrink: 0;
		min-width: auto;
		overflow: visible;
		text-overflow: clip;
	}
	.se-content-top .se-title {
		order: 2;
		padding: 0px 20px 16px;
		margin-top: 0;
		margin-bottom: 0;
		background: #fff;
	}
}

/* ── Layout ── */
.se-main-grid {
	display: grid;
	grid-template-columns: 1fr 375px;
	grid-template-areas: "left sidebar";
	column-gap: 40px;
	row-gap: 0;
	align-items: start;
	padding: 0 0 48px;
}
.se-content-col { grid-area: left; }
.se-content-top { grid-area: unset; }
.se-content { grid-area: unset; }
.se-sidebar { grid-area: sidebar; }
@media (max-width: 999px) {
	.se-content-col { display: contents; }
}
@media (max-width: 999px) {
	.se-main-grid {
		display: flex;
		flex-direction: column;
		align-items: stretch;
		gap: 0;
		padding: 0 0 32px;
	}
}

.se-back {
	padding: 15px 0;
	margin: 24px 0;
}
@media (max-width: 999px) {
	.se-back {
		background: #fff;
		margin: 72px 0 0;
		padding: 14px 16px;
		border-bottom: 1px solid #eaeaec;
	}
}

.se-back-btn {
	color: #3C3C3C;
	font-family: "TT Commons";
	font-size: 20px;
	font-weight: 500;
}

@media (max-width: 1000px) {
	.se-back-btn {
		font-size: 16px;
	}
}

.arrow-padding {
	margin-right: 8px;
}

/* ── Title ── */
.se-title {
	font-family: 'TT Commons', sans-serif;
	font-size: 36px;
	font-weight: 600;
	color: #3c3c3c;
	margin: 0 0 12px;
	padding-top: 8px;
	line-height: 36px; 
}
@media (max-width: 999px) {
	.se-title { font-size: 20px; line-height: 28px; }
}

/* ── Description heading ── */
.se-desc-heading {
	font-family: 'TT Commons', sans-serif;
	font-weight: 600;
	color: #3c3c3c;
	margin-bottom: 12px;
	font-size: 20px;
	line-height: normal;
}

/* ── Hero image ── */
.se-hero {
	margin: 24px 0 0;
}
.se-hero__img {
	width: 100%;
	display: block;
	border-radius: 16px;
	object-fit: cover;
	/* max-height: 480px; */
}
@media (max-width: 999px) {
	.se-content-top .se-hero__img { max-height: 300px; border-radius: 0; width: 100%; }
	.se-gallery__hero { max-height: 260px; }
	.se-gallery__extra .se-gallery__thumb { flex: 0 0 calc(33.333% - 6px); }
}

/* ── Description ── */
.se-description {
	margin-bottom: 32px;
	font-family: "TT Commons",sans-serif;
	font-size: 16px;
	font-weight: 400;
}
.se-description p:last-child { margin-bottom: 0; }
/* gov.bundle.css resets `ol, ul { list-style-type: none; }` globally — restore
   real bullet/number markers for event description content (the_content()). */
.se-description ul {
	list-style-type: disc;
	padding-left: 20px;
	margin-bottom: 16px;
}
.se-description ol {
	list-style-type: decimal;
	padding-left: 20px;
	margin-bottom: 16px;
}
.se-description ul ul,
.se-description ol ul { list-style-type: circle; }
.se-description li { margin-bottom: 4px; }
.se-description ul:last-child,
.se-description ol:last-child { margin-bottom: 0; }

/* ── Gallery ── */
.se-gallery {
	margin-bottom: 40px;
}
.se-gallery__main {
	position: relative;
	border-radius: 16px;
	overflow: hidden;
	margin-bottom: 10px;
	background: #111;
	line-height: 0;
}
.se-gallery__hero {
	width: 100%;
	display: block;
	object-fit: cover;
	max-height: 480px;
	/* border-radius: 16px; */
}
.se-gallery__arr {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	background: rgba(255, 255, 255, 0.7);
	border: none;
	border-radius: 50%;
	width: 36px;
	height: 36px;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #3c3c3c;
	cursor: pointer;
	z-index: 2;
	box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1), 0 2px 4px rgba(0, 0, 0, 0.1);
	transition: background 0.2s ease;
	padding: 0;
}
.se-gallery__arr:hover { background: rgba(255, 255, 255, 0.9); }
.se-gallery__arr:active { background: rgba(255, 255, 255, 0.7); }
.se-gallery__arr--prev { left: 20px; }
.se-gallery__arr--next { right: 20px; }
.se-gallery__arr svg { width: 24px; height: 24px; flex-shrink: 0; }

.se-gallery__thumbs-row {
	display: flex;
	gap: 12px;
	flex-wrap: wrap;
}
.se-gallery__thumb {
	flex: 0 0 calc(33.333% - 8px);
	border-radius: 10px;
	overflow: hidden;
	cursor: pointer;
	position: relative;
	aspect-ratio: 4 / 3;
	outline: 2px solid transparent;
	transition: outline-color 0.15s;
}
.se-gallery__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.se-gallery__thumb--active {
	outline-color: #ed1c24;
}
.se-gallery__more-overlay {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.48);
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	font-size: 22px;
	font-weight: 600;
	font-family: 'TT Commons', sans-serif;
	border-radius: 10px;
	pointer-events: none;
}
.se-gallery__extra {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
	width: 100%;
	margin-top: 8px;
}
.se-gallery__extra[hidden] {
	display: none !important;
}
.se-gallery__extra .se-gallery__thumb {
	flex: 0 0 calc(25% - 6px);
}
@media (max-width: 999px) {
	.se-gallery__hero { max-height: 260px; }
	.se-gallery__extra .se-gallery__thumb { flex: 0 0 calc(33.333% - 6px); }
}

/* ── Single event: YouTube video player ── */
.se-video {
	position: relative;
	/* border-radius: 16px; */
	overflow: hidden;
	background: #111;
	line-height: 0;
	margin-bottom: 40px;
	aspect-ratio: 16 / 9;
}
.se-video__cover {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.se-video__cover[hidden] { display: none !important; }
.se-video__play {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(0, 0, 0, 0.25);
	border: none;
	cursor: pointer;
	padding: 0;
	transition: background 0.2s;
}
.se-video__play:hover { background: rgba(0, 0, 0, 0.4); }
.se-video__play[hidden] { display: none !important; }
.se-video__play svg {
	filter: drop-shadow(0 2px 12px rgba(0, 0, 0, 0.5));
	transition: transform 0.2s;
}
.se-video__play:hover svg { transform: scale(1.12); }
.se-video__iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: none;
}
.se-video__iframe[hidden] { display: none !important; }

/* ── Sidebar card ── */
.se-sidebar {
	background: #fff;
	border-radius: 10px;
	padding: 24px;
	position: sticky;
	top: 80px;
	width: 375px; 
}
@media (max-width: 999px) {
	.se-sidebar {
		display: contents;
	}
}

/* ── Sidebar primary/secondary wrappers ── */
.se-sidebar__primary,
.se-sidebar__secondary {
	/* desktop: plain grouping divs inside the sidebar card */
}
@media (max-width: 999px) {
	.se-sidebar__primary {
		order: 2;
		padding: 0px 20px 24px;
		background: #fff;
	}
	.se-sidebar__secondary {
		order: 4;
		padding: 24px 20px;
		background: #fff;
		border-top: 1px solid #eaeaec;
	}
}

/* ── Sidebar sections ── */
.se-sidebar__section {
	margin-bottom: 24px;
	padding-bottom: 24px;
	border-bottom: 1px solid #eaeaec;
}
.se-sidebar__section:last-child {
	border-bottom: none;
	margin-bottom: 0;
	padding-bottom: 0;
	color: #3C3C3C;
}
/* With primary/secondary wrappers: fix last-child semantics */
.se-sidebar__secondary .se-sidebar__section:last-child,
.se-sidebar__primary:last-child .se-sidebar__section:last-child {
	border-bottom: none;
	margin-bottom: 0;
	padding-bottom: 0;
	color: #3C3C3C;
}
/* No separator after "upcoming dates" when action buttons (tickets/about) follow */
.se-sidebar__dates:has(+ .se-sidebar__actions .se-btn--about),
.se-sidebar__dates:has(+ .se-sidebar__actions .se-btn--tickets) {
	border-bottom: none;
	margin-bottom: 0;
}
@media (min-width: 1000px) {
	/* On desktop restore border on primary's last child (secondary follows) */
	.se-sidebar__primary .se-sidebar__section:last-child {
		border-bottom: 1px solid #eaeaec;
		margin-bottom: 24px;
		padding-bottom: 24px;
		color: inherit;
	}
}

/* ── Price block ── */
.se-price-line {
	padding-top: 8px;
	display: flex;
	align-items: center;
	gap: 6px;
}
.se-price-prefix {
	font-size: 16px;
	font-weight: 500;
	color: #3c3c3c;
	line-height: 25px;
}
.se-price-amount {
	font-size: 36px;
	font-weight: 600;
	font-family: 'TT Commons', sans-serif;
	color: #3c3c3c;
	line-height: 36px;
}

@media (max-width: 999px) {
	.se-price-amount {
		font-size: 20px;
		font-weight: 600;
		line-height: 28px;
	}
}

/* ── Label / value pairs ── */
.se-sidebar__label {
	font-size: 20px;
	font-family: 'TT Commons', sans-serif;
	font-weight: 600;
	line-height: 28px;
	color: #3C3C3C;
	margin-bottom: 8px;
	display: flex;
	align-items: center;
	gap: 8px;
}

/* ── Dates section ── */
.se-dates-heading {
	font-size: 20px;
	font-weight: 600;
	color: #3c3c3c;
	margin-bottom: 12px;
	line-height: 28px;
	font-family: 'TT Commons', sans-serif;
}
.se-date-card {
	background: #f3f4f5;
	border-radius: 10px;
	padding: 12px;
	margin-bottom: 8px;
}
.se-date-card:last-child { margin-bottom: 0; }
.se-date-card__date,
.se-date-card__time {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 16px;
	color: #3c3c3c;
	line-height: 20px;
	font-family: 'TT Commons', sans-serif;
}
.se-date-card__date { margin-bottom: 8px; }
.se-date-card__time { margin-bottom: 4px; }
.se-date-card__date svg,
.se-date-card__time svg { flex-shrink: 0;}

/* ── Add-to-calendar (Add to Calendar Button plugin) ── */
.se-cal-wrap {
	position: relative;
}
.se-cal-wrap add-to-calendar-button::part(atcb-button) {
	background: none;
	border: none;
	box-shadow: none;
	padding: 0;
	margin: 0;
	border-radius: 0;
	min-width: 0;
	font-size: 16px;
	font-family: 'TT Commons', sans-serif;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	gap: 4px;
	line-height: 24px;
	font-weight: 400;
	color: #3C3C3C;
}
.se-cal-wrap add-to-calendar-button::part(atcb-button):hover {
	color: #ed1c24;
}
.se-cal-wrap add-to-calendar-button::part(atcb-button-text) {
	text-decoration: underline;
}
.se-cal-wrap add-to-calendar-button::part(atcb-button-chevron) {
	display: none;
}
.se-cal-wrap add-to-calendar-button::part(atcb-button)::after {
	content: '';
	display: inline-block;
	width: 16px;
	height: 16px;
	flex-shrink: 0;
	background-color: currentColor;
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 6L8 10L12 6' stroke='black' stroke-width='1.33333' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 6L8 10L12 6' stroke='black' stroke-width='1.33333' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
}
@media (max-width: 999px) {
	.se-cal-wrap add-to-calendar-button::part(atcb-dropdown) {
		min-width: 260px;
	}
}
.se-sidebar__value {
	font-size: 16px;
	color: #3C3C3C;
	font-weight: 400;
	line-height: 24px;
}
/* .se-sidebar__value a {
	text-decoration: underline;
} */
.se-sidebar__value a:hover { text-decoration: underline; }

.se-sidebar-organizer-label {
	font-family: 'TT Commons', sans-serif;
	font-size: 20px;
	font-weight: 600;
	line-height: 28px;
	margin-bottom: 4px;
}

/* ── Location ── */
/* .se-location__name {
	display: block;
	font-weight: 600;
	color: #3c3c3c;
	margin-bottom: 2px;
} */
.se-location__address {
	font-size: 16px;
	color: #3C3C3C;
	margin-bottom: 8px;
	font-weight: 400;
	line-height: 24px;
}

/* ── Organizer ── */
.se-organizer__name {
	display: block;
	color: #3c3c3c;
	margin-bottom: 4px;
	font-family: 'TT Commons', sans-serif;
	font-size: 16px;
	font-weight: 400;
	line-height: 24px; 
}
.se-organizer__email,
.se-organizer__phone {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 16px;
	text-decoration: none;
	margin-bottom: 4px;
	line-height: 24px;
	font-family: 'TT Commons', sans-serif;
}
.se-organizer__email:hover,
.se-organizer__phone:hover { text-decoration: underline; }
.se-organizer__email svg,
.se-organizer__phone svg { flex-shrink: 0; color: #3C3C3C; }

/* ── Action buttons ── */
.se-btn--tickets,
.se-btn--about {
	display: block;
	width: 100%;
	padding: 16px 24px;
	border-radius: 15px;
	text-align: center;
	font-size: 18px;
	line-height: 16px;
	font-weight: 600;
	font-family: 'TT Commons', sans-serif;
	text-decoration: none;
	transition: opacity 0.15s;
}
.se-btn--tickets {
	background: #ed1c24;
	color: #fff;
	margin-bottom: 16px;
}
.se-btn--tickets:hover { background: #c1272d; color: #fff; transition: ease-in 0.15s }
.se-btn--about {
	background: transparent;
	color: #ed1c24;
	font-size: 18px;
	border: 1px solid rgba(65, 68, 84, 0.20);
}
.se-btn--about:hover { transition: ease-in 0.15s; background: #ed1c24; color: #fff; border-color: #ed1c24; }

/* ── Map button ── */
.se-btn--map {
	text-decoration: underline;
}
.se-btn--map:hover {
	color: #ed1c24;
}

/* ── Wishlist in sidebar ── */
.se-sidebar__wishlist { text-align: center; }

.o-cat-btn:hover {
color: #ED1C24;
background: transparent;
}

/* Active / selected state */
.o-cat-btn--active {
color: #ED1C24;
}


/* "Daugiau / More" button - same look as other category buttons */
.o-cat-btn--more {
background: transparent;
}
.o-cat-btn--more:hover {
background: transparent;
}
/* hidden attribute must win over .o-cat-btn display:inline-flex */
.o-cat-btn--more[hidden] {
display: none !important;
}

/* Chevron icon inside "More" */
.o-cat-chevron {
transition: transform 0.2s;
flex-shrink: 0;
}
.o-cat-chevron--open {
transform: rotate(180deg);
}

/* Dropdown panel — positioned via JS, lives outside the overflow scroller */
.o-cat-more__dropdown {
	position: fixed;
	z-index: 9999;
	background: #fff;
	border: 0.67px solid #E5E7EB;
	border-radius: 14px;
	box-shadow: 0 10px 7.5px rgba(0,0,0,0.1), 0 4px 3px rgba(0,0,0,0.1);
	padding: 8px;
	min-width: 220px;
	display: flex;
	flex-direction: column;
	gap: 4px;
}
/* hidden attribute must win over display:flex */
.o-cat-more__dropdown[hidden] {
	display: none !important;
}

/* Dropdown items */
.o-cat-btn--dropdown-item {
width: 100%;
justify-content: flex-start;
padding: 0 12px;
border-radius: 6px;
}
.o-cat-btn--dropdown-item:hover {
background: #F3F4F5;
color: #3C3C3C;
}
.o-cat-btn--dropdown-item.o-cat-btn--active {
color: #ED1C24;
}
/* No underline indicator inside dropdown */
.o-cat-btn--dropdown-item.o-cat-btn--active::after {
display: none;
}

/* -- Mobile adjustments -------------------------------------- */
@media (max-width: 767px) {
.o-cat-bar__container {
height: 60px;
padding: 0 12px;
gap: 2px;
}
.o-cat-btn {
font-size: 16px;
padding: 0 10px;
}
}

/* ============================================================
   Mobile Event List Redesign — Sticky Filter Bar + Full Panel
   ============================================================ */

/* ── Desktop-only elements (hidden on mobile/tablet) ── */
@media (max-width: 999px) {
	.ve-desktop-only {
		display: none !important;
	}
}

/* ── Desktop: filter/results containers use 120px padding (match header/carousel) ── */
@media (min-width: 1000px) {
	.ve-filter-bar-outer {
		padding-left: var(--page-padding);
		padding-right: var(--page-padding);
	}
	/* Reset inner container side padding so --padded class doesn't double-indent */
	.ve-filter-bar-outer .o-narrow-content-container {
		padding-left: 0;
		padding-right: 0;
		max-width: none;
		margin-left: 0;
		margin-right: 0;
		margin-bottom: 32px;
	}
	#ve-list-container {
		max-width: 1200px;
		margin-left: auto;
		margin-right: auto;
	}
}

/* ── Mobile: hide category bar (categories are inside the filter panel) ── */
@media (max-width: 999px) {
	.o-cat-bar {
		display: none;
	}
}

/* ── Mobile: hide static view switcher (Map button in filter row replaces it) ── */
@media (max-width: 999px) {
	#ve-view-switcher-static {
		display: none;
	}
}

/* ── Sticky filter wrap (mobile) — class toggled by JS ── */
@media (max-width: 999px) {
	.ve-filter-sticky-wrap {
		z-index: 200;
		/* background: #fff; */
		border-bottom: 0;
	}
	/* JS adds this class when filter bar has been scrolled past */
	.ve-filter-sticky-wrap.is-filter-fixed {
		position: fixed !important;
		top: 72px !important;
		left: 0;
		right: 0;
		width: 100%;
		z-index: 250;
		background: #fff;
		border-bottom: 0;
		box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
	}
	/* Override filter-bar layout on mobile: stack search then mob row */
	.ve-filter-bar {
		flex-direction: column;
		align-items: stretch;
		gap: 12px;
		padding: 12px 0;
	}
	.ve-filter-search {
		width: 100%;
		max-width: none;
	}
}

/* ── Mobile filter row (Filtrai btn + Map btn + active pills) ── */
.ve-mob-filter-row {
	display: none; /* hidden on desktop */
}
@media (max-width: 999px) {
	.ve-mob-filter-row {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 12px;
		width: 100%;
		overflow: visible;
	}
	.ve-mob-filter-row .ve-filtrai-btn {
		flex: 1 1 0;
		width: calc(50% - 6px);
		min-width: 0;
		height: 48px;
		padding: 0 16px;
		justify-content: center;
		gap: 8px;
		font-size: 18px;
		line-height: 28px;
	}
	.ve-mob-filter-row .ve-filtrai-btn svg {
		width: 20px;
		height: 20px;
		flex-shrink: 0;
	}
	.ve-mob-filter-row .ve-filtrai-btn span {
		line-height: 28px;
		padding-top: 2px;
	}
	/* Map button active state on mobile */
	.ve-mob-filter-row .ve-view-btn--map.active {
		background: #ED1C24;
		color: #fff;
		border-color: #ED1C24;
	}
	.ve-mob-filter-row .ve-view-btn--map.active svg {
		stroke: #fff;
	}
}

/* ── "Filtrai" trigger button ── */
.ve-filtrai-btn {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	height: 36px;
	padding: 0 12px;
	border: 1.5px solid #CFD1D5;
	border-radius: 50px;
	background: #fff;
	font-size: 14px;
	font-weight: 500;
	line-height: 1;
	color: #3C3C3C;
	cursor: pointer;
	white-space: nowrap;
	flex-shrink: 0;
	font-family: 'TT Commons', sans-serif;
	transition: border-color 0.15s;
}
.ve-filtrai-btn:hover {
	border-color: #3C3C3C;
}
.ve-filtrai-btn.has-filters {
	border-color: #CFD1D5;
	color: #3C3C3C;
}
.ve-filtrai-btn.has-filters svg {
	display: none;
}
.ve-filtrai-count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: #ED1C24;
	color: #fff;
	min-width: 18px;
	height: 18px;
	border-radius: 50px;
	font-size: 11px;
	font-weight: 600;
	padding: 0 4px;
	display: none;
}
.ve-filtrai-count[hidden],
.ve-filtrai-count:empty {
	display: none !important;
}

.ve-filtrai-btn.has-filters .ve-filtrai-count:not([hidden]) {
	display: inline-flex;
}
.ve-terms-page {
	background-color: #fff;
}

@media (max-width: 1000px) {
	.ve-terms-page {
		margin-top: 73px;
	}
}

.ve-terms-hero {
	width: 100%;
	overflow: hidden;
}

.ve-terms-hero__img {
	display: block;
	width: 100%;
	height: 470px;
	object-fit: cover;
	object-position: center 30%;
	transform: scale(1);
	transform-origin: center 60%;
}

.ve-terms-container {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 20px;
	box-sizing: border-box;
}

.ve-terms-title-wrap {
	position: relative;
	z-index: 2;
}

.ve-terms-title-wrap--no-hero {
	margin-top: 40px;
}

.ve-terms-title-wrap--no-hero .ve-terms-title-box {
	position: static;
}

.ve-terms-title-box {
	position: absolute;
	left: 0;
	bottom: -40px;
	z-index: 2;
	display: flex;
	align-items: center;
	box-sizing: border-box;
	width: auto;
	min-width: 664px;
	max-width: calc(100% - 160px);
	min-height: 120px;
	max-height: 120px;
	padding: 20px 0;
	background: #ed1c24;
	border-radius: 30px;
	border-bottom-left-radius: 0;
	overflow: hidden;
}

.ve-terms-title-box h1 {
	margin: 0;
	width: 100%;
	padding: 0 32px;
	box-sizing: border-box;
	color: #fff;
	font-family: 'TT Commons', sans-serif;
	font-weight: 600;
	font-size: 60px;
	line-height: 1.2;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.ve-terms-content-bg {
	width: 100%;
	background: #fff;
	padding-top: 84px;
	padding-bottom: 64px;
}

.ve-terms-content {
	color: #3c3c3c;
	font-family: 'TT Commons', sans-serif;
	font-weight: 400;
	font-size: 20px;
}

.ve-terms-content p {
	margin: 0 0 20px;
}

.ve-terms-content ul {
	list-style-type: disc;
	margin: 0 0 20px;
	padding-left: 22px;
}

.ve-terms-content ol {
	list-style-type: decimal;
	margin: 0 10px 20px;
	padding-left: 22px;
}

.ve-terms-content ul ul,
.ve-terms-content ol ul {
	list-style-type: circle;
}

.ve-terms-content strong {
	font-weight: 500;
}

.ve-terms-content a {
	color: #ed1c24;
	text-decoration: underline;
}

@media (max-width: 1199px) {
	.ve-terms-hero__img {
		height: 320px;
	}
}

@media (max-width: 767px) {
	.ve-terms-hero__img {
		height: 220px;
        object-position: 20% 32%;
        transform-origin: 18% 23%;
	}
	.ve-terms-title-box {
		width: 100%;
		min-width: 0;
		max-width: 100%;
		min-height: 76px;
		max-height: 112px;
		border-radius: 20px;
		border-bottom-left-radius: 0;
	}
	.ve-terms-title-box h1 {
		font-size: 32px;
		white-space: normal;
		display: -webkit-box;
		-webkit-line-clamp: 2;
		-webkit-box-orient: vertical;
		overflow: hidden;
		text-overflow: ellipsis;
	}
	.ve-terms-content {
		font-size: 16px;
	}
}

@media (max-width: 600px) {
	.ve-terms-content-bg {
		padding-top: 54px;
	}
}

/* ============================================================
   Full-screen filter panel (mobile)
   ============================================================ */
.ve-full-panel {
	position: fixed;
	inset: 0;
	z-index: 9999;
	background: #fff;
	display: flex;
	flex-direction: column;
	overflow: hidden;
	transform: translateY(100%);
	transition: transform 0.38s cubic-bezier(0.32, 0.72, 0, 1);
}
.ve-full-panel[hidden] {
	display: none;
}
.ve-full-panel.is-open {
	transform: translateY(0);
}

/* Panel header */
.ve-full-panel__hdr {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 18px 20px;
	border-bottom: 1px solid #DBDBDB;
	flex-shrink: 0;
}
.ve-full-panel__hdr-spacer {
	width: 32px; /* balance the close button width */
	flex-shrink: 0;
}
.ve-full-panel__title {
	font-family: 'TT Commons', sans-serif;
	font-size: 20px;
	font-weight: 600;
	color: #3C3C3C;
	margin: 0;
	text-align: center;
	flex: 1;
}
.ve-full-panel__close {
	width: 32px;
	height: 32px;
	border-radius: 50%;
	border: 1.5px solid #CFD1D5;
	background: transparent;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	padding: 0;
	flex-shrink: 0;
	transition: border-color 0.15s;
}
.ve-full-panel__close:hover {
	border-color: #3C3C3C;
}

/* Scrollable body */
.ve-full-panel__body {
	flex: 1;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
}

/* Sections */
.ve-full-panel__section {
	padding: 20px 20px 4px;
}

.ve-full-panel__section-date-filter {
	padding: 0px 20px 24px;
}

.ve-full-panel__section-hdr {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 8px;
}
.ve-full-panel__section-ttl {
	font-family: 'TT Commons', sans-serif;
	font-size: 18px;
	font-weight: 600;
	color: #3C3C3C;
	margin: 0;
}
.ve-full-panel__clear-lnk {
	background: none;
	border: none;
	color: #ED1C24;
	font-size: 18px;
	font-weight: 500;
	cursor: pointer;
	padding: 4px 0;
	font-family: 'TT Commons', sans-serif;
	transition: opacity 0.15s;
}
.ve-full-panel__clear-lnk:hover {
	opacity: 0.75;
}
.ve-full-panel__clear-lnk:disabled {
	color: #96979F;
	cursor: default;
}

.ve-full-panel__divider {
	height: 1px;
	background: #DBDBDB;
	margin: 14px 0;
}

/* Category rows in panel */
.ve-panel-cat-row {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 10px 0;
	cursor: pointer;
	font-family: 'TT Commons', sans-serif;
	font-size: 18px;
	color: #3C3C3C;
	line-height: 28px;
	user-select: none;
	border-bottom: none;
}
.ve-panel-cat-row:last-child {
	border-bottom: none;
}

/* Panel footer */
.ve-full-panel__footer {
	display: flex;
	gap: 12px;
	padding: 16px 20px;
	border-top: 1px solid #DBDBDB;
	flex-shrink: 0;
	background: #fff;
}
.ve-full-panel__footer .ve-modal-btn {
	border-radius: 15px;
	font-size: 16px;
}


.o-content-container {
  width: 100%;
  margin-top: 20px;
}
@media (max-width: 1200px) {
  .o-content-container {
      max-width: 750px;
      margin: 20px auto;
  }
}

@media (max-width: 1000px) {
  .o-content-container--header {
    margin: 100px 10px 0px;
  }
}

/* ── Mobile: Event cards ── */
@media (max-width: 767px) {
	.oe-card {
		border-radius: 0;
	}
	.oe-card__image-wrap {
		height: 200px;
	}
	.ve-cards-grid {
		gap: 20px;
	}
}

/* Search input placeholder update (mobile) */
@media (max-width: 999px) {
	.ve-search-input::placeholder {
		font-size: 16px;
	}
}

/* Prevent body scroll when full panel is open */
@media (max-width: 999px) {
	body.ve-panel-open {
		overflow: hidden;
		height: 100%;
	}

	.search-result {
		margin-top: 100px !important;
	}
}

.search-result {
	margin-top: 40px !important;
}

/* ============================================================
   Recommended Block  (.ve-rec-block)
   ============================================================ */

.ve-rec-block {
	background: #ED1C24;
	overflow: visible;
	max-width: 1296px;
	max-height: 506px;
	transform: translateZ(0);
	border-radius: 20px 20px 0 20px;
	margin: 44px auto;
    padding: 48px;
}

@media (min-width: 1584px) {
	.ve-rec-block {
		margin-left: auto;
		margin-right: auto;
	}
}

.ve-rec-inner {
	display: flex;
	align-items: stretch;
	gap: 24px;
}

/* Left: heading panel */
.ve-rec-label {
	flex: 0 0 282px;
	width: 282px;
	min-width: 282px;
	display: flex;
	align-items: center;
}

.ve-rec-title {
	font-family: 'TT Commons', sans-serif;
	font-size: 32px;
	font-weight: 600;
	line-height: 40px;
	color: #fff;
	margin: 0;
}

/* Right: slider panel */
.ve-rec-slider-outer {
	flex: 1;
	background: transparent;
	position: relative;
	padding: 0;
	min-width: 0;
}

/* Decorative surface backdrop behind the cards — inset 24px beyond the card row
   so it touches the label on the left and the border's inner edge on the right/top/bottom,
   without shifting the card row itself (which stays aligned with the main grid). */
.ve-rec-slider-outer::before {
	content: '';
	position: absolute;
	top: -24px;
	right: -24px;
	bottom: -24px;
	left: -24px;
	border-radius: 16px;
	z-index: 0;
}

.ve-rec-slider {
	position: relative;
	z-index: 1;
	display: flex;
	justify-content: flex-start;
	gap: 24px;
	overflow-x: auto;
	scroll-behavior: smooth;
	scroll-snap-type: x proximity;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
}

.ve-rec-slider::-webkit-scrollbar {
	display: none;
}

/* Card width matches .ve-list-item .oe-card (main grid) exactly; never stretches */
.ve-rec-slide {
	flex: 0 0 282px;
	width: 282px;
	scroll-snap-align: start;
	display: flex;
	flex-direction: column;
}

.ve-rec-slide .oe-card {
	height: 100%;
}

/* Arrow buttons — straddle the edge of the grey card container (half over the card) */
.ve-rec-arrow {
	position: absolute;
	top: 50%;
	z-index: 2;
	background: rgba(255, 255, 255, 0.7);
	border: 1px solid #cfd1d5;
	color: #3c3c3c;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	flex-shrink: 0;
	transition: opacity 0.2s, background 0.2s;
}

.ve-rec-arrow:hover,
.ve-rec-arrow:focus {
	background: #fff;
	outline: none;
}

.ve-rec-arrow--prev {
	left: 0;
	transform: translate(-50%, -50%);
}

.ve-rec-arrow--next {
	right: 0;
	left: auto;
	transform: translate(50%, -50%);
}


/* Desktop: mirror the list-container centering */
@media (min-width: 1000px) {
	.ve-list-container-2 {
		max-width: 1200px;
		margin-left: auto;
		margin-right: auto;
	}

	.ve-list-container-3 {
		max-width: 1200px;
		margin-left: auto;
		margin-right: auto;
	}
}

/* Mobile adjustments */
@media (max-width: 999px) {
	.ve-rec-block {
		margin: 0 0 32px;
		padding: 0;
		max-height: none;
		border-radius: 0;
	}

	.ve-rec-inner {
		flex-direction: column;
		gap: 24px;
		padding: 24px 0 24px 20px;
	}

	.ve-rec-label {
		flex: 0 0 auto;
		width: auto;
		min-width: 0;
		padding: 0;
	}

	.ve-rec-title {
		font-size: 32px;
		line-height: 40px;
		width: 246px;
	}

	/* No decorative grey backdrop / white container on mobile — just the cards on red */
	.ve-rec-slider-outer {
		background: transparent;
	}

	.ve-rec-slider-outer::before {
		display: none;
	}

	.ve-rec-slider {
		gap: 24px;
	}

	/* Fixed card width (matches Figma) so the next card peeks in, hinting scrollability */
	.ve-rec-slide {
		flex: 0 0 282px;
		width: 282px;
	}

	.ve-rec-slide .oe-card,
	.ve-rec-slide .oe-card__image,
	.ve-rec-slide .oe-card__image-placeholder {
		border-radius: 0;
	}

	.ve-rec-arrow {
		display: none;
	}
}

/* ============================================================
   Sponsored Block  (.ve-spon-block)
   ============================================================ */

.ve-spon-block {
	max-width: 1200px;
	margin: 44px auto;
	border-radius: 0 20px 20px 20px; /* top-left corner not rounded */
	overflow: hidden;
	position: relative;
}

.ve-spon-slide {
	width: 100%;
}

.ve-spon-link {
	display: block;
	text-decoration: none;
}

.ve-spon-image-wrap {
	position: relative;
	width: 100%;
	overflow: hidden;
	font-size: 0; /* remove inline gap under <picture> */
}

.ve-spon-image-wrap picture {
	display: block;
}

.ve-spon-image {
	width: 100%;
	height: auto;
	display: block;
}

/* Dot navigation — identical to hero carousel (pill shape, expands on active) */
.ve-spon-block .slick-dots {
	position: absolute;
	bottom: 16px;
	left: 50%;
	transform: translateX(-50%);
	display: flex !important;
	gap: 8px;
	align-items: center;
	margin: 0;
	padding: 0;
	list-style: none;
	z-index: 4;
}

.ve-spon-block .slick-dots li {
	width: 8px;
	height: 8px;
	margin: 0;
	padding: 0;
	transition: width 0.2s ease;
}

.ve-spon-block .slick-dots li.slick-active {
	width: 28px;
}

.ve-spon-block .slick-dots li button {
	display: block;
	width: 100%;
	height: 8px;
	padding: 0;
	border: none;
	border-radius: 100px;
	background: rgba(255, 255, 255, 0.6);
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.1);
	cursor: pointer;
	font-size: 0;
	line-height: 0;
	transition: width 0.2s ease, background 0.2s ease;
}

.ve-spon-block .slick-dots li.slick-active button {
	background: #ffffff;
	width: 28px;
}

/* Mobile layout */
@media (max-width: 1000px) {
	.ve-spon-block {
		max-width: none;
		width: 100%;
		margin: 16px 0 36px 0;
		border-radius: 0;
	}
}

/* "Remiama / Sponsored" tag — bottom-right of each slide */
.ve-spon-tag {
	position: absolute;
	bottom: 20px;
	right: 20px;
	background: rgba(255, 255, 255, 0.75);
	border-radius: 12px;
	padding: 4px 8px;
	font-family: "TTCommons-Regular", sans-serif;
	font-size: 12px;
	font-weight: 400;
	line-height: 16px;
	color: #3c3c3c;
	white-space: nowrap;
	pointer-events: none;
	z-index: 2;
}




