
@import url("https://use.typekit.net/ouy4xld.css");

@font-face {
	font-family: 'VG5000';
	src: url('_fonts/VG5000-Regular.woff2') format('woff2'),
		url('_fonts/VG5000-Regular.woff') format('woff');
	font-weight: normal;
	font-style: normal;
	font-display: swap;
}

*:focus {
	outline: none;
}

:root {
/*	--black: #0F1414;*/
	--black: var(--color-primary-black, #151515);
	--white: var(--color-primary-white, #ffffeb);
	--gray: var(--color-primary-gray, #9C9C9C);
	
	--purple: var(--color-brand-purple, #4D1F54);
	--purple-glow: var(--color-brand-purpleGlow, #FBF5FF);

	--green: var(--color-brand-green, #1ED760);
	--green-glow: var(--color-brand-greenGlow, #E8FBEF);

	--purpler: var(--color-brand-purpleAlt, #4B5CFF);
	--purpler-glow: var(--color-brand-purpleAltGlow, #dcdefd);
}

html {
	scroll-behavior: smooth;
}

body, html {
	height: 100%;
	width: 100%;
	margin: 0;
	padding: 0;
}

body {
	
	font-family: var(--font-primary, "neue-haas-grotesk-text"), sans-serif;
	font-weight: 400;

	scroll-behavior: smooth;
	color: var(--black);
	letter-spacing: -0.01em;

	background: var(--background-main);
	background-repeat: var(--background-repeat, no-repeat);
	background-size: var(--background-size, cover);
	background-attachment: var(--background-attachment, fixed);

}

a {
	text-decoration: none;
	color: currentColor;
}

p {
	padding: 0;
	margin: 0;
}

/* BACKGRUONDS  */

.bg--black {
	background-color: var(--black);
	color: var(--white);
}

.bg--white {
	background-color: white;
	color: var(--black);
}

.bg--purple {
	background-color: var(--purple);
	color: var(--white);
}

.bg--purpleglow {
	background-color: var(--purple-glow);
	color: var(--black);
}

.bg--fade {
	background: var(--background-fade, url('_images/gradient.png'));
	background-size: var(--background-fade-size, 100%);
	background-repeat: var(--background-fade-repeat, no-repeat);
	background-color: var(--background-fade-color, var(--color-primary-white, white));
}

.font__set--color--black {
	color: var(--black);
}

.font__set--color--white {
	color: var(--white);
}


h1, h2, h3, h4, h5 {
	padding: 0;
	margin: 0;
	font-weight: normal;

/*	text-transform: uppercase;
	letter-spacing: -1px;*/
}

h3 {
	font-weight: bold;
}

/* FONTS SIZE */

.font__size--head {
	font-size: var(--font-size-head-desktop, 32px);
	line-height: var(--line-height-head-desktop, 34px);
	font-weight: bold;
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

.font__size--sub {
	font-size: var(--font-size-sub-desktop, 20px);
	line-height: var(--line-height-sub-desktop, 24px);
	font-weight: bold;
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

.font__size--title {
	font-size: var(--font-size-title-desktop, 24px);
	line-height: var(--line-height-title-desktop, 26px);
	font-weight: bold;
}

.font__size--body {
	font-size: var(--font-size-body-desktop, 16px);
	line-height: var(--line-height-body-desktop, 24px);
}

.font__size--body-s {
	font-size: var(--font-size-bodySmall-desktop, 12px);
	line-height: var(--line-height-bodySmall-desktop, 18px);
	letter-spacing: 0;
}

.font__size--label {
	font-size: var(--font-size-label-desktop, 10px);
	line-height: var(--line-height-label-desktop, 12px);
	letter-spacing: 0.05em;
	text-transform: uppercase;
}

.font__size--fixed {
	font-size: var(--font-size-fixed-desktop, 14px);
	line-height: var(--line-height-fixed-desktop, 20px);	
}

.font__size--btn {
	font-style: normal;
	font-weight: 700;
	font-size: var(--font-size-button-desktop, 15px);

	letter-spacing: 0.1em;
	text-transform: uppercase;
}


/* GRID */

.section, section, footer, header, main {
	position: relative;
	margin: 0;
	padding: 0vw 0;
}

.section__margin {
	position: relative;
	width: calc(100% - 24px - 24px);
	padding: 0 24px;

	display: flex;
	flex-direction: column;
	gap: 24px;
}

section .section__margin {
	position: relative;
	width: calc(100% - 16px - 16px);
	padding: 16px;
}

.grid--12 {
	position: relative;
/*	width: 100%;*/

	width: calc(100% - 0vw);
    padding-left: 0vw;

	display: grid;
	grid-template-columns: repeat(12, [col-start] 1fr);
	gap: 2.4vw 3.2vw;
}

.col--1 {
	position: relative;
	grid-column: span 1;
}

.col--2 {
	position: relative;
	grid-column: span 2;
}

.col--3 {
	position: relative;
	grid-column: span 3;
}

.col--4 {
	position: relative;
	grid-column: span 4;
}

.col--5 {
	position: relative;
	grid-column: span 5;
}

.col--6 {
	position: relative;
	grid-column: span 6;
}

.col--7 {
	position: relative;
	grid-column: span 7;
}

.col--8 {
	position: relative;
	grid-column: span 8;
}

.col--9 {
	position: relative;
	grid-column: span 9;
}

.col--10 {
	position: relative;
	grid-column: span 10;
}

.col--11 {
	position: relative;
	grid-column: span 11;
}

.col--12 {
	position: relative;
	grid-column: span 12;
}

/* HEADER */

header.header__fixed {
	position: fixed;
		top: 0;
		left: 0;

	width: 100%;
	height: var(--header-height, 88px);
	background: black;

	z-index: 400;
}


header .section__margin {
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	align-items: center;

	padding: 24px;
}

.festival__logo--header {
	flex: 0 0 30%;
	
}

.nav__main--title {
	flex: 1 1 40%;
	/* border:1px solid #e0f2d0; */
}

.nav__main--right {
	flex: 0 0 30%;
	display: flex;
	justify-content: flex-end;
}

/* Main Navigation Styles */
.navbar-nav {
	display: flex;
	align-items: center;
}

.menu-primary-inner {
	display: flex;
	list-style: none;
	margin: 0;
	padding: 0;
	gap: 32px;
}

.menu-primary-inner li {
	position: relative;
}

.menu-primary-inner a {
	color: var(--color-layout-text, #333);
	text-decoration: none;
	font-size: 17px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	transition: color 0.2s ease;
}

.menu-primary-inner a:hover {
	color: var(--purple);
}

.menu-primary-inner .fa-dropdown {
	margin-left: 4px;
	font-size: 12px;
}

/* Social Icons Styles */
.menu-smart-social {
	display: flex;
	list-style: none;
	margin: 0;
	padding: 0;
	gap: 16px;
	align-items: center;
}

.menu-smart-social li {
	position: relative;
}

.social-menu-link {
	color: var(--color-layout-text, #333);
	text-decoration: none;
	font-size: 16px;
	transition: color 0.2s ease;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	border-radius: 4px;
}

.social-menu-link:hover {
	color: var(--purple);
}

.search-icon a {
	color: var(--color-layout-text, #333);
	text-decoration: none;
	font-size: 16px;
	transition: color 0.2s ease;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	border-radius: 4px;
}

.search-icon a:hover {
	color: var(--purple);
}

/* Dropdown menu styles */
.drop-menu {
	position: absolute;
	top: 100%;
	left: 0;
	background: white;
	border: 1px solid #eee;
	border-radius: 4px;
	padding: 8px 0;
	min-width: 200px;
	box-shadow: 0 4px 12px rgba(0,0,0,0.1);
	z-index: 1000;
}

.drop-menu .search {
	padding: 8px 12px;
}

.search-field {
	width: 100%;
	padding: 8px 12px;
	border: 1px solid #ddd;
	border-radius: 4px;
	font-size: 14px;
}

.desktop-hidden {
	display: none;
}

/* Hide mobile home link on desktop */
.nav__mobile-home {
	display: none;
}

.festival__logo--header img {
	width: var(--logo-width, 96px);
	height: var(--logo-height, auto);
	margin-bottom: -12px;
}



/* FOOTER */

footer {
	position: fixed;
		left: 0;
		bottom: 0;

	width: 100%;
	display: none;
}

footer .section__margin {
	display: flex;
	flex-direction: row;
	justify-content: space-between;

	padding: 24px;
}

/* PAGES */

.main__app {
	position: relative;
	width: 100%;
	height: 100%;
}

.btn--main {
	box-sizing: border-box;

	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: center;

	padding: 16px 0px;
	gap: 8px;

	width: 100%;
	height: 48px;

	color: white;

	background: var(--purple);
	border: 1px solid var(--purple);

	cursor: pointer;
}

.btn--main:hover {
	background-color: white;
	color: var(--purple);
}

.btn--disabled {
	background-color: white;
	color: var(--purple);
	border: 1px dashed var(--purple);
}

.btn--toggle {
	padding: 2px 4px;
	border:1px solid;
}

.btn--purple {
	color: var(--purpler);
	border-color: var(--purpler-glow);
}

.btn--purple.active {
	border-color: var(--purpler);
}

.btn--green {
	color: var(--green);
	border-color: var(--green-glow);
}

.btn__second {
	padding: 4px 8px;
	background-color: black;
	color: #dbf2cb;
	border: 1px solid black;
	font-family: var(--components-timetableToggle-normal-fontFamily, var(--nav-control-fontFamily, inherit));
	font-size: 20px;
	text-transform: var(--components-timetableToggle-normal-textTransform, uppercase);
	line-height: var(--components-timetableToggle-normal-lineHeight, var(--nav-control-lineHeight, 24px));
	letter-spacing: var(--components-timetableToggle-normal-letterSpacing, 0.04em);
	border-radius: 40px;

}

.btn__second:hover {
	background-color: var(--components-timetableToggle-hover-background, var(--nav-control-hover-background, rgba(0, 0, 0, 0.2)));
	
	transform: var(--components-timetableToggle-hover-transform, none);
}

.btn__second.active {
	background-color: black;
	color: #dbf2cb;
	font-weight: normal;
	padding: 0;
}

.btn__day {
	font-size: var(--components-dayButtons-normal-fontSize, var(--nav-day-fontSize, 20px));
	letter-spacing: 0.04em;
	font-family: var(--components-dayButtons-normal-fontFamily, var(--nav-day-fontFamily, 'VG5000'));
	text-transform: uppercase;

	border: var(--components-dayButtons-normal-border, none);
	border-width: 1px;
	border-color: #dbf2cb;
	border-style: var(--components-dayButtons-normal-borderStyle, solid);
	background-color: transparent;
	color: var(--components-dayButtons-normal-color, var(--nav-day-color, white));

	padding: var(--components-dayButtons-normal-padding, var(--nav-day-padding, 0 16px));
	line-height: var(--components-dayButtons-normal-lineHeight, var(--nav-day-lineHeight, 32px));
	border-radius: 0;
	border-top-left-radius: 80px;
	border-bottom-left-radius: 80px;

	display: inline-block;
	background: var(--components-dayButtons-normal-background, var(--nav-day-background, linear-gradient(45deg, #66597e, #2f435f)));
	transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
	position: relative;
	overflow: hidden;
	cursor: pointer;
}

.btn__day::before {
	content: '';
	position: absolute;
	top: 0;
	left: -100%;
	width: 100%;
	height: 100%;
	background: var(--gradient-shimmer, linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent));
	transition: left 0.5s;
}

.btn__day:hover::before {
	left: 100%;
}

.btn__day:hover {
	
}

.btn__day.selected {
	background: var(--navigation-dayButtons-active-background, var(--nav-day-active-background, black));
	color: black;
	
	transform: translateY(-1px);
	box-shadow: 0 2px 8px rgba(0,0,0,0.4);
	/*border-bottom: 1px solid var(--purple-glow);*/
}

.btn__day:last-child {
	border-top-left-radius: 0;
	border-bottom-left-radius: 0;
	border-top-right-radius: 80px;
	border-bottom-right-radius: 80px;
}

/* MAIN */

main {
	padding: 128px 0;
}

/* Hide all timeline view buttons globally */


/* Show desktop button on desktop, hide mobile button on desktop */
.btn__second--desktop {
	display: block !important;
	visibility: visible !important;
	opacity: 1 !important;
	position: relative !important;
	left: auto !important;
	width: auto !important;
	height: auto !important;
	overflow: visible !important;
	
}

.btn__second--mobile {
	display: none !important;
	visibility: hidden !important;
	opacity: 0 !important;
	position: absolute !important;
	left: -9999px !important;
	width: 0 !important;
	height: 0 !important;
	overflow: hidden !important;
}

/* TIMETABLE */

/*.timetable__main .section__margin {
	padding-left: 0px;
	padding-right: 0;
	width: calc(100% - 0px - 0px);
}*/


.Label {
	position: absolute;
	top: -1px;
    right: 200px;
}

.Label_logo {
	width: 64px;
}

.Label_logo img {
	width: 100%;
}

.Label_location {
	position: absolute;
    top: 18px;
    right: calc(100% + 16px);
    font-size: 12px;
    font-weight: 400;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: white;
    width: max-content;
    text-align: right;
}

.timetable__nav--controls-mobile {
	display: none !important;
}

@media screen and (max-width: 768px){

	.font__size--head {
		font-size: var(--font-size-head-mobile, 20px);
		line-height: var(--line-height-head-mobile, 24px);
	}
	
	.font__size--sub {
		font-size: var(--font-size-sub-mobile, 16px);
		line-height: var(--line-height-sub-mobile, 20px);
	}
	
	.font__size--title {
		font-size: var(--font-size-title-mobile, 18px);
		line-height: var(--line-height-title-mobile, 20px);
	}
	
	.font__size--body {
		font-size: var(--font-size-body-mobile, 14px);
		line-height: var(--line-height-body-mobile, 20px);
	}
	
	.font__size--body-s {
		font-size: var(--font-size-bodySmall-mobile, 10px);
		line-height: var(--line-height-bodySmall-mobile, 14px);
	}
	
	.font__size--label {
		font-size: var(--font-size-label-mobile, 8px);
		line-height: var(--line-height-label-mobile, 10px);
	}
	
	.font__size--fixed {
		font-size: var(--font-size-fixed-mobile, 12px);
		line-height: var(--line-height-fixed-mobile, 16px);	
	}
	
	.font__size--btn {
		font-size: var(--font-size-button-mobile, 12px);
	}

	header .section__margin {
		flex-direction: row;
		padding: 16px;
		gap: 16px;
		align-items: center;
	}

	.festival__logo--header {
		width: auto;
		height: 44px;
	}

	/* Hide main navigation on mobile */
	.navbar-nav {
		display: none;
	}

	/* Hide social icons on mobile */
	.menu-smart-social {
		display: none;
	}

	/* Show mobile home link on mobile */
	.nav__mobile-home {
		display: block;
	}

	.nav__mobile-home-link {
		color: var(--color-layout-text, #333);
		text-decoration: none;
		font-size: 14px;
		font-weight: 700;
		text-transform: uppercase;
		letter-spacing: 0.05em;
		padding: 8px 16px;
		transition: all 0.2s ease;
	}

	.nav__mobile-home-link:hover {
		color: var(--purple);
	}

	/* Hide desktop view toggle on mobile */
	.timetable__nav--head .btn__second--desktop,
	.timetable__nav--head #view-toggle,
	.timetable__nav--head button.btn__second {
		display: none !important;
		visibility: hidden !important;
		opacity: 0 !important;
		position: absolute !important;
		left: -9999px !important;
		width: 0 !important;
		height: 0 !important;
		overflow: hidden !important;
	}

	/* Show mobile button on mobile, hide desktop button on mobile */
	.btn__second--desktop {
		display: none !important;
		visibility: hidden !important;
		opacity: 0 !important;
		position: absolute !important;
		left: -9999px !important;
		width: 0 !important;
		height: 0 !important;
		overflow: hidden !important;
	}

	.btn__second--mobile {
		display: block !important;
		visibility: visible !important;
		opacity: 1 !important;
		position: relative !important;
		left: auto !important;
		width: auto !important;
		height: auto !important;
		overflow: visible !important;
	}

	header.header__fixed {
		top: 0px;
		padding-top: 4px;
	}

	.Label {
		position: absolute;
		top: -1px;
		right: 16px;
	}
	
	.Label_logo {
		width: 56px;
	}
	
	.Label_logo img {
		width: 100%;
	}

	.nav__main--right div {
		display: none !important;
	}

	.timetable__nav--controls-mobile {
		display: flex !important;
	}

}