
@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:#151515;
	--white: #ffffeb;
	--gray: #9C9C9C;
	
	--purple: #4D1F54;
	--purple-glow: #FBF5FF;

	--green: #1ED760;
	--green-glow: #E8FBEF;

	--purpler:#4B5CFF;
	--purpler-glow: #dcdefd;
}

html {
	scroll-behavior: smooth;
}

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

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

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

	background: url('https://hitthecity-festival.nl/wp-content/uploads/2025/04/bg-2025-night.svg');
	background-repeat: no-repeat;
	background-size: cover;
	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: url('_images/gradient.png');
	background-size: 100%;
	background-repeat: no-repeat;
	background-color: 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: 32px;
	line-height: 34px;
	font-weight: bold;
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

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

.font__size--title {
	font-size: 24px;
	line-height: 26px;
	font-weight: bold;
}

.font__size--body {
	font-size: 16px;
	line-height: 24px;
}

.font__size--body-s {
	font-size: 12px;
	line-height: 18px;
	letter-spacing: 0;
}

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

.font__size--fixed {
	font-size: 14px;
	line-height: 20px;	
}

.font__size--btn {
	font-style: normal;
	font-weight: 700;
	font-size: 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%;

	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 auto;
}

/* 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: #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: #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: #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: 96px;
	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: 0 8px;
	/*background-color: rgba(0, 0, 0, 0.1);*/
	background-color: #e5e5e5;
	border: none;
	font-family: inherit;
	font-size: 12px;
	text-transform: uppercase;
	line-height: 24px;
	letter-spacing: 0.04em;
}

.btn__day {
	font-size: 20px;
	letter-spacing: 0.04em;
	font-family: 'VG5000';
	text-transform: uppercase;

	border: none;
	background-color: transparent;
	color: white;

	padding: 0 16px;
	line-height: 32px;

	display: inline-block;
	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: linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent);
	transition: left 0.5s;
}

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

.btn__day:hover {
	background: #66597e;
	transform: translateY(-2px);
	box-shadow: 0 4px 12px rgba(0,0,0,0.3);
}

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

/* 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);
}*/


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

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

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

	.festival__logo--header {
		width: auto;
	}

	/* 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: #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;
	}


}