/* Festival 2: consolidated stylesheet. Edit this file for all Festival 2 styling. */
/* festival2-style.css */


/* DISPLAY NONE */
/* Info Banner for shoping Cart */
.wc-block-components-notice-banner {
	display: none !important;	
}


.woocommerce-checkout .checkout-inline-error-message {
	    color: #fff;
	       background: rgb(255, 0, 0);
    background: linear-gradient(90deg, rgba(255, 0, 0, 0.6741290266106443) 1%, rgba(255, 23, 0, 0.17833070728291311) 100%);
	    padding: 8px;
}

/* mailerlite */
.ml-error input, .ml-error select, .ml-error textarea {
	border: 2px;x
}


/* Post */
.nav-links, .entry-meta, 
.post-template-default .sub-navigation {
	display: none;
}

.post-template-default .entry-title {
	font-weight: 600;
}
.post-template-default  .site-branding {
	display: none;
}

.desktop-break {
    display: inline-block;
    margin: 23px;
}


.experience h2 {
    font-size: 1.4em;
    margin-bottom: 10px;
    padding: 0;
}


.experience .papyrus-bg {
	padding: 0 2.5em .5em 2.5em;
}


.attr-attribute_option {
	font-size: 13px;
    font-weight: 100;
	color: burlywood !important;
    line-height: 12px;
    text-transform: initial;
}

#variation_11397 {
	opacity: 0;
}

.cart .variation {
	display: inline-block;
	margin-left: 10px;	
}

.cart .variation  dt {
	float: none;
	display: inline-block;
}

.variation-TicketType {
	display: inline-block;
}
.variation .variation-TicketType:first-child,
.variation-MomOption {
	display: none !important;
}


.fancybox-slide {
	padding: 20px !important;
}




html {
  height: 100%;
  scroll-behavior: smooth;
}


body {
	background: #002b4a url(../../assets/img/desktop_bg.jpg) no-repeat fixed; 
	-webkit-background-size: cover;
	-moz-background-size: cover;
	-o-background-size: cover;
	background-size: cover;
	
	background-repeat: no-repeat;
	background-size: 100% 100%;
	
	margin: 0;
	font-family: Poppins;

}

.ease {
	opacity: 0;
}

 .section img {
  -webkit-border-radius: 8px; 
  -moz-border-radius: 8px; 
  border-radius: 8px; 
 }

*,
*:after,
*:before {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
}

p {
	font-size: 20px;
	color: #353535;
	font-weight: 300;
}

.keys p {
	font-size:30px !important;
	line-height: normal !important;
}

.section {
	margin: 0 auto;
	width:80vw;
}

.headline {
	text-transform: uppercase;
}
hr {
	border: 0;
    height: 2px;
    background: rgb(64,33,0);
    background: linear-gradient(90deg, rgba(64,33,0,1) 0%, rgba(129,87,0,0.217546393557423) 100%);
    opacity: 0.5;
}



h2, h3 {
	font-family: 'Chalkduster', sans-serif;
	letter-spacing: 0;
}	  
			
			
h1 {
    font-size: 1.7em;
    color: #3f3f3f;
    line-height: 1.3em;
    font-weight: 500;
    margin: 0;
    text-transform: uppercase;
}

h2 {
    font-size: 1.7em;
    color: #3f3f3f;
    font-weight: 500;
    text-transform: uppercase;
    line-height: 1.3em;
}


h3 {
    text-shadow: 0 1px 2px rgba(0,0,0,0.1);
    font-weight: 400;
    font-style: normal;
    text-decoration: none;
    font-size: 1.5em;
    line-height: 1.2em;
}

h1.pop {
	font-weight: normal;
    font-size: 29px;
    letter-spacing: 0;
    line-height: inherit;
    font-weight: 100;
    word-spacing: 0;
    text-transform: inherit;
}



.about-h1 {
	margin: 0;
}
.about-h3 {
	font-size: 1.5em;
    font-style: italic;
    text-shadow: 0 1px 2px rgba(0,0,0,0.1);
	margin-top: 2.5rem;
}

.article-title a {
	color: #323232;
}

b {
	font-weight: 600;
}

.text ul,
.text ol {
	margin-left: 20px;
}

.text ol li {
	font-size: 19px;
}


#lang .active {
	display: none;
}

#slider7vibes, #slider1-mobile {
	display: inline-block;
}
 
#slider7vibes p {
	text-align:initial; 
	color:#ffffff;
	text-transform: uppercase;
}

#slider1-mobile .keys-mobile p{
	color:#ffffff; 
	font-size:28px; 
	text-transform: uppercase;
	line-height: normal !important;
}

.slider-desc p {
	color: #000 !important; 
	margin-bottom: 10px !important; 
	text-transform: inherit !important;
}

.sliders .ls-nav-prev, 
.sliders .ls-nav-next {
	height: 70% !important;
}

.hide {
	display: none;
}
 
.break-desktop-hide {
	display: none;	
}
 
.desktop-hide {
	display: none;	
}

.mobile-hide {
	display: inline-block;	
}


.separator {
	height: 100px;
	width: 100%;
	display: block;
}

.desktop-separator {
	height: 100px;
	width: 100%;
	display: block;	
}

a {
	text-decoration: none;
	color: #19a9ae;
}


.bemember, .cta-blog {
background: rgb(0,0,0);
background: -moz-linear-gradient(0deg, rgba(0,0,0,1) 0%, rgba(122,122,122,1) 100%);
background: -webkit-linear-gradient(0deg, rgba(0,0,0,1) 0%, rgba(122,122,122,1) 100%);
background: linear-gradient(0deg, rgba(0,0,0,1) 0%, rgba(122,122,122,1) 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#000000",endColorstr="#7a7a7a",GradientType=1);
}

.intro-quote {
    border-left: 5px solid #562d00;
    padding: 25px;
    text-align: left;
    border-radius: 0;
    margin-bottom: 20px;
    display: inline-block;
    width: 100%;

background: rgb(225,137,0);
background: -moz-linear-gradient(90deg, rgba(225,137,0,0.06394432773109249) 0%, rgba(225,137,0,0.013524159663865554) 100%);
background: -webkit-linear-gradient(90deg, rgba(225,137,0,0.06394432773109249) 0%, rgba(225,137,0,0.013524159663865554) 100%);
background: linear-gradient(90deg, rgba(225,137,0,0.06394432773109249) 0%, rgba(225,137,0,0.013524159663865554) 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#e18900",endColorstr="#e18900",GradientType=1);

}





.papyrus {
    position: relative;
}

.papyrus p {
	margin-bottom: 0 !important;
}

.papyrus-bg {
	background: url(../../assets/img/pap_bg.png) repeat-y;
	background-position: center top;
	background-size: 100% auto;
	padding: 0 3em;
}

.papyrus-bg a {
	color: darkcyan !important;
	box-shadow: none !important;
}

.papyrus-bg a:hover {
	 color: #2c1000  !important;
}

.papyrus-bg * {
	color: #2c1000 !important;
}


.papyrus-top {
    position: relative;
    top: 8px;
    left: 0;
}

.papyrus-bottom {
    position: relative;
    top: -8px;
    left: 0;

}






#events .intro-quote {
	border-left: 4px solid saddlebrown;
    padding: 10px 15px;
    font-size: 13px;
}
#events .intro-quote a {
    color: saddlebrown !important;
}
.intro-quote h1 {
	margin: 0;
}

.intro-quote h3 {
	font-size: 1.2em;
	line-height: normal;
}

.cta-blog {
    padding: 3%;
    -webkit-border-radius: 15px;
    -moz-border-radius: 15px;
    border-radius: 15px;
}


.cta-blog * 	{
	color: #fff;
	font-size:20px;
}

.cta-blog a {
	text-decoration: underline;
}


.button, .bemember {
    text-transform: uppercase;
    padding: 10px 20px !important;
    border-radius: 5px !important;
    text-decoration: none;
    color: #fff !important;
	opacity: 1;
	display: inline-block;
    transition: all 0.4s ease;
    font-size: 1rem !important;
    height: auto !important;
    cursor: pointer;
    margin-top: 0.4em;
}

.papyrus-bg .button,
.papyrus-bg .button * {
	color: #fff !important;
}


.button.white {
	background: #fff; 
	border: 2px solid #000; 
	color: #000 !important; 
	padding: 8px 28px !important;
}

.button.white:hover {
	background: #e4e4e4;
}

.bemember {
	width: auto !important;
}

.dist .col-xs-6{
	min-height: inherit !important;
}

.dist img {
	width: 80%;
	padding: 20%;
}
.quote {
	font-size: 22px; 
	font-style: italic; 
	text-align: center; 
	margin: 0 auto;
	opacity: 0.6;
}
.quote span {
	font-size: 17px;
}


.videoWrapper {
	position: relative;
	padding-bottom: 56.25%; /* 16:9 */
	height: 0;
}

.video-wrapper a:hover {
	opacity: 1;
}

.videoWrapper iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}


strong, bold {
	font-weight: 600 !important;
}

.text-faro, .img-faro {
	width: 50%;
	display: inline-block;
}

.text-faro {
	float: left;
	padding-right: 5%;
}

.val .papyrus-bg {
	margin: 0;
}


.crowd-video video {
	position: relative;
	    -webkit-border-radius: 8px;
    -moz-border-radius: 8px;
    border-radius: 8px;
}

.crowd-video h4 {
    color: #fff;
    position: absolute;
    z-index: 999;
	line-height: 1em;
    bottom: 6%;
    margin-left: 4%;
    font-size: 1.8em;
    text-transform: uppercase;
}

.crowd-video h4 * {
	color: #fff !important;
}


.crowd-video h4 span {
	font-weight: 100 !important;
}



.origin * {
	text-align: left;
	color: #000;

}
  
.val.center * {
	text-align: center;
	color: #000;
}

/*
.val.center .row {
  margin-bottom: 3%;
}
*/
		 
.val.center h3 {
	color: #141414 !important;
	font-weight: 400;
}

.val.center h4 {
    font-size: 24px;
    font-weight: 500;
	font-weight: 600;
}

 
.img-faro img {
    width: 100%;
    top: 70px;
    position: relative;
}

.img-faro img {
	width: 100%;
}

#mc_embed_signup {
	clear:left; 
	font:14px Helvetica,Arial,sans-serif; 
}

#mc_embed_signup .mc-field-group {
	margin: 0 !important;
	padding: 0 !important;
}

.ls-layers p {
	text-shadow: 1px 3px 19px rgba(150, 150, 150, 0.5);
}

.videos img {
	width: 100%;
}

#mc_embed_signup .mc-field-group input {
font-size: 17px;
color: gray;
}


.ml-form-interestGroupsRowCheckbox {
    width: auto !important;
    FLOAT: left;
    margin-right: 2em !important;
}

form {
	padding: 0 !important;
}

label {
	font-weight: 400 !important;
}

.logo:hover {
	background: none !important;
}

.navigation {
	position: fixed;
	top: 0;
	z-index: 999;
	width: 100%;
}




.sticky {
	height: 60px;
-webkit-transition: height 0.5s ease;
    -moz-transition: height 0.5s ease;
      -o-transition: height 0.5s ease;
     -ms-transition: height 0.5s ease;
         transition: height 0.5s ease;
}

.sticky.small {
	height: 30px;	
}

.sticky.small a {
	line-height: 30px;
	font-size: 1rem;
	      transition: all 300ms ease-in-out;
}

.sticky.small .brand a {
	padding:  5px;
}
	
.sticky.small .brand img {
    top: 10px;
    width: 158px;
}


.pager {
	width: 100%;
	font-size: 20px;
}
 .pager i {
	 font-size: 16x;
 }
 .pager .next {
	 float: right;
 }
 .pager .prev {
	 float: left;
 }

.video-container {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.video-container video {
	min-width: 100%;
	min-height: 100%;
	width: 100%;
	height: auto;
	position: absolute;
	top: 65%;
	left: 50%;
	-webkit-transform: translate(-50%, -50%);
		transform: translate(-50%, -50%);
}











	@media only screen and (max-width: 800px)  {
		.video-container video {
			width: 181%;
			top: 49%;
		}

		.crowd-video {
			margin-top: 7em;
		}
			
		.crowd-video h4 {
		    bottom: 106%;
		    margin-left: 0;
		    font-size: 1.3em;
		}
	}
	@media only screen and (max-width: 350px)  {
		.video-container video {
		}
	}



.event-bottom-button {
	font-size: 20px !important;
}

.overlay {
    top: 100px;
    left: 0;
    margin: auto 7%;
    text-align: center;
    width: 86%;
    z-index: 9999;
}

.overlay h1 {
	color: #fff;
	font-size: 1.7em;
	text-shadow: 0 1 0.2em #000;
	font-weight: 400;
	line-height: 1.2em;
	font-weight: 300;
	margin: 0.3em 0 1em 0;
	text-transform: inherit;
}

.pulsate, .wpcf7-submit, .variations tr button, .button {
    background: url(https://www.7vibesjourney.com/assets/img/pap_top.png);
    background-position: -5px -34px;
}    

.pulsate i {
    -webkit-animation: pulsate 1s ease-out;
    -webkit-animation-iteration-count: infinite; 
    opacity: 0.3;
    margin-right: 5px;
}

@-webkit-keyframes pulsate {
    0% { 
	    opacity: 0.3;
    }
    50% { 
        opacity: 1.0;
    }
    100% { 
        opacity: 0.3;
    }
}


.overlay li span {
	color: #fff;
	font-size: 24px;
	font-weight: 300;
	
}

.overlay h1 b {
	font-size: 1.2em;
	line-height: 1.1em;
	margin-bottom: 8px;
	font-weight: 500;
	text-transform: uppercase;
}


#presskit .col-md-4{
	min-height: 240px;	
	overflow: hidden;
}

#presskit .lang.active {
	opacity: 0.3;
}

.navigation #lang a{
	padding: 0 15px;
	opacity: 0.5;
}

.navigation #lang a:hover{
	opacity: 1;
}


.overlay a {
	width: 100%;
    text-transform: uppercase;
    padding: 10px 20px;
    border: 1px solid #fff !important;
    display: block;
    margin: 0 0 16px 0;
}


.slider li {
	position: absolute;
	list-style: none;
	width: 100%;
/* 	display: none; */
}


.tagLine {
	overflow: hidden;
	opacity: .5;
}
.tagLine.footerlogo {
	opacity: 1;
}

.tagLine h2 {
	text-transform: inherit !important;
	font-size: 26px;
}

.wir p {
	text-align: center;
}


.navigation a {
	color: #fff;
    text-decoration: none;
    text-transform: uppercase;
    font-size: 20px;
    font-weight: 300;
    height: auto;
    border-left: 1px #fff solid;
    cursor: pointer;
}
nav ul li.is-active a,
.navigation a:hover, .social a:hover, .footer-cta  a:hover,
.overlay a:hover {
  color: #000;
background: #fff;
  opacity: 1;
  text-decoration: none;
}

.brand a {
	background: none;
  position: absolute;
  float: left;
  padding-left: 10px;
  color: #262626;
  z-index: 9999;
  top: -12px;
  border: none;
}

.brand img {
    position: relative;
    top: 28px;
    width: 227px;
    left: 8px;
    transition: all 300ms ease-in-out;
}
	
.brand a:hover img {
	opacity: 0.8;
}

.brand a:visited,
.brand a:active {
  color: #262626;
  position: relative;
}

.brand a:hover {
  text-decoration: none;
}

.quote-gallery img {
	width: 100% !important;
}

.origin-link {
	text-decoration: underline;
}

.container {
  max-width: 1000px;
  margin: 0 auto;
  padding: 0px 20px;
}

.nav-container {
  margin: 0 auto;
  padding: 0px 0px;
  position: relative;
  overflow: hidden;
}

nav {
  float: right;
  position: relative;
  display: inline-block;
  font-size: 14px;
  font-weight: 600;
  z-index: 99;
}

nav ul {
  list-style: none;
  text-align: left;
}

nav ul li {
  float: left;
  display: inline;
  position: relative;
  cursor: pointer;

}


nav ul li a {
  display: block;
  color: #666666;
  padding: 0 20px;
  line-height: 60px;
  
}

nav ul li a:hover,
nav ul li a:focus,
nav ul li a:active {
  text-decoration: none;
}
nav ul li > a:hover {
  background:  rgba(0,0,0,0.3) ;
}

nav ul li ul li {
  width: 190px;
}

nav ul li ul li a {
  background:  rgba(0,0,0,0.3) ;
  display: block;
  padding: 15px;
  line-height: 20px;
  z-index: 1;
}

nav ul li ul li a:hover {
  background: #dedede;
  color: #262626;
}

.participation {
	font-size: 1rem;	
}

.nav-mobile {
	z-index: 999999;
    display: none;
    position: absolute;
    top: 0;
    right: 0;
    height: 70px;
    width: 70px
}

#nav-toggle {
  position: absolute;
  border: none;	
  left: 18px;
  top: 18px;
  cursor: pointer;
  padding: 10px 35px 16px 0px;
  background: linear-gradient(0deg, rgba(0,25,34,0) 0%, rgba(0,25,34,.5) 100%);
}

#nav-toggle:hover {
	background: none;
}

#nav-toggle span,
#nav-toggle span:before,
#nav-toggle span:after {
  cursor: pointer;
  border-radius: 1px;
  height: 5px;
  width: 35px;
  background: #fff;
  position: absolute;
  display: block;
  content: '';
  transition: all 300ms ease-in-out;
}

#nav-toggle span:before {
  top: -10px;
}

#nav-toggle span:after {
  bottom: -10px;
}

#nav-toggle.active span {
  background-color: transparent;
}

#nav-toggle.active span:before,
#nav-toggle.active span:after {
  top: 0;
}

#nav-toggle.active span:before {
  transform: rotate(45deg);
}

#nav-toggle.active span:after {
  transform: rotate(-45deg);
}

.mob-contact {
	display: none;
}

.fixed {
	background: rgba(0,0,0,0.6);
  width: 100%;
  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.15);
}

.margin {
  margin-top: 75px;
}

#title {
  text-align: center;
  margin: 20px 0 20px 0;
  font-size: 10vw;
  padding: 0px;
  color: transparent;
  font-family: '8BITWONDERNominal', sans-serif;
  text-shadow: 5px -5px 0 #FCB42A, 1px -1px 0 #F7F461, 0px 0px 0 #2e2e2e, -1px 2px 0 #2c2c2c, -2px 3px 0 #2a2a2a, -3px 4px 0 #282828, -4px 5px 0 #262626, -5px 6px 0 #242424, -6px 7px 0 #222, -7px 8px 0 #202020, -8px 9px 0 #1e1e1e, -9px 10px 0 #1c1c1c, -10px 11px 0 #1a1a1a, -11px 12px 0 #181818, -12px 13px 0 #161616, -13px 14px 0 #141414, -14px 15px 0 #121212, -10px 15px 30px rgba(0, 0, 0, 0.9);
}

.list ul {
    margin: 0 20px;	
}

.event {
	width: 49%;
	display: inline-block;
	padding: 20px 0 40px 0;
}

.event.left {
	float: left;
}

.event.right {
	float: right;
}

.event-row {
	margin: 0 20px;
}

.event-row .col-md-3 {
	padding: 0 8px 8px 8px;
}

.event-row p {
	font-weight: bold;
	color: #5a5a5a;	
}

.event-row h2 {
	font-size: 1.6em;
}

.event-row h2 span {
	font-size: 16px;
    text-transform: none;
}

.eventwrap .article-header p {
    margin: 0 !important;
	color: #5d5d5d;
}

.keywords-event {
	font-size: 1em;
}

.joinus h3, .joinus p {
	color:  #fff !important;
	font-weight: 400;
	font-family: poppins;

}

.fa-clock-o {
    font-size: 24px;
    margin: 0px 4px 0px 0px;
    position: relative;
    top: 3px;
}


.brr {
	display: none;
}
/********************** BLOG *************************/
.article.single h1 {
	max-width: 70%;
	margin-top: 30px;
}

article img {
	 width: 100%;
}

.intro.text {
	color: #bababa;
	margin:0 0 20px 0;
}
.intro ul {
	margin: 18px;
}
.article-header h2 {
	margin: 0;
}
.article.index {
	display: inline-block;
	clear: both; 
}

.slider img {
	margin: 20px 0;	
}

.breadcrumb span  {
	color: #fff;
}




 
#footer {
	position: fixed;
	bottom: 0;
	width: 100%;
	z-index: 10;
	clear: both;
	height: 40px;
	z-index: 9999;

	background: rgb(0,25,34);
	background: linear-gradient(0deg, rgba(0,25,34,.6) 0%, rgba(0,25,34,0) 100%);
}
    
    


.social span {
    font-size: 12px;
    color: #fff;
    position: relative;
    bottom: 4px;
    right: 10px;
    opacity: 0.5;
}
.social .svg-footer  {
    display: inline-block;
    text-rendering: auto;
    -webkit-font-smoothing: antialiased;
}

.social .svg-footer img {
	top: 4px;
    position: relative;
    width: 27px;
}

.social span a {
	font-size: 12px;
    border: none;
    font-weight: 400;
    padding: 0;
	cursor: pointer;

}		  

.social span a:hover {
	background: none;
	color: inherit;
}

.social span a:after {
    position: absolute;
    content: '';
    height: 2px;
    bottom: 0px;
    margin: 0 auto;
    right: 2%;
    width: 35%;
    -ms-transition: .5s;
    -moz-transition: .5s;
    -webkit-transition: .5s;
    transition: .5s;
    background: #fff;
    opacity: 0.6;
	cursor: pointer;

    }

	 
.transparent {
	padding: 3em .5em  1em .5em;
	background: rgb(0,17,31);
	background: radial-gradient(circle, rgba(0,17,31,0.578890931372549) 0%, rgba(0,16,29,0.1) 100%);

	
}

.jobs .transparent {
	padding:30px !important;
}

.social span a:hover:after {

    width: 40%;
    right: 0;
    opacity: 1;
    }
    

.social {
	text-align: right;
	float: right;
}

.social a {
    border-left: 1px solid #fff;
    display: inline-block;
    padding: 1px 6px 0px 9px;
    color: #fff;
    font-size: 26px;
    font-weight: 100;
    cursor: pointer;
	border-image: 
    linear-gradient(
      to top, 
      #fff, 
      rgba(0, 0, 0, 0)
    ) 1 100%;
}


.social a:hover {
	background: rgba(0,25,34, 0.3);
	background: linear-gradient(180deg, rgba(0,25,34,0.8) 0%, rgba(0,25,34,1) 100%);
}



.footer-cta {
	float: left;
	z-index: 999999;
}


.footer-cta  a {
	color: #fff;
    display: inline-block;
    padding: 6px 12px 5px 38px;
    color: #fff;
    cursor: pointer;
    position: relative;
}
.footer-cta img {
    position: absolute;
	top: -10px;
    left: 3px;
    width: 36px;
}
	    
.footer-ticket a{
	right: 0;
    display: inline-block;
    z-index: 0;
    width: 171px;
    top: -46px;
    position: absolute;
    text-align: left;
    font-size: 18px;
    padding: 5px 5px 5px 27px;
    background: url(https://www.7vibesjourney.com/assets/img/pap_top.png) -9px -24px no-repeat;
}

.footer-ticket * {
    color: #fff !important;
}
	
.footer-ticket a:hover {
	opacity: 1;
}


.video-wrapper video {
    width:100%;
    height:100%;
}


.video-wrapper {
	display: flex;
	max-width: 900px;	
	margin: 0 auto;
-webkit-mask: url("../img/video-mask.svg") no-repeat 50% 50%/contain;
mask: url("../img/video-mask.svg") no-repeat 50% 50%/contain;
mask-mode: alpha;
	top: 0;
	position: relative;


}

.cloud-wrapper {

	background: #fff;
		display: flex;
	max-width: 690px;	
	margin: 0 auto;
-webkit-mask: url("https://www.7vibesjourney.com/assets/img/cloud.svg") no-repeat 50% 50%/contain;
mask: url("https://www.7vibesjourney.com/assets/img/cloud.svg") no-repeat 50% 50%/contain;
	top: 0;
	position: relative;

}


.video-wrapper-w {
	position: relative;	
}



.head-title {
    font-family: Kalam, Poppins;
    font-weight: 100;
    font-weight: 100;
    line-height: 1em;
    bottom: 10%;
    z-index: 999;
    left: 13%;
    font-size: 1.9em;
    margin-bottom: 4px;
}
.video-wrapper-w .home-head {
	position: absolute;
    font-weight: 100;
    bottom: 9%;
    left: 23%;
    font-size: 1.6em;
    z-index: 1;		
}

.home-head {
	margin-top: 3px;
}

	
.kalam {
	font-size: 1.3em;
    margin-bottom: 8px;
}

.kalam span {
 	display: inline-block;
}

.kalam br {
 	display: none;
 }


.social .env {
	display: none;
}

.footer-cta  a i{
    font-size: 29px;
    position: absolute;
    top: 5px;v
    left: 10px;
}

.social-content a {* {
color: #fff !important;	
}

	font-size: 60px;
	margin-right: 10px;
}

.val .col-xs-6 {
	min-height: 19em;
	padding: 0;
	

}

.event-city, 
.soldout,
.big-edition {
    position: absolute;
    width: 150px;
    left: -14px;
    top: -11px;
}

.big-edition-soldout {
    width: 130px;
    left: -11px;
    top: -30px;
    position: absolute;
}


.flag {
	position: absolute;
    transform: rotate(-14deg);
    font-size: 3em;
    top: -27px;
    left: 2px;
}

.logo-sub-footer {
	background: rgb(0,25,34);
	background: linear-gradient(180deg, rgba(0,25,34,0.2) 0%, rgba(0,25,34,.9) 100%);
 	padding: 30px 30px 80px 30px;
}

.logo-sub-footer .sponsor img{
    width: 100%;
    max-width: 130px;
    position: relative;
}

.quote i {
	color: rgb(25,169,174); 
	font-size: 17px;
}

.rainbow-vibes-wrap .tab_content {
	padding: 0;
}

.rainbow-vibes-wrap tr.tabs th.first {
	padding-left: 0;
}
.rainbow-vibes-wrap tr.tabs th.last {
	padding-right: 0;
}


.treeentry {
    font-size: 28px;
    color: #353535;
    font-weight: 500;
}

.treeentry img {
    position: relative;
    margin-right: 16px;
    top: 6px;
}

.contact img {
	margin-top: 100px;
	max-height: 100px;
}

.tab_content {
	width: 100%;
	height: auto;
	border: none;
	padding: 10px;
	display: none;
	position: relative;
	overflow: hidden;

}

.tab_content img {
	width: 100%;
	border-radius: 0;
}


.tab_content p {
    position: absolute;
    color: #fff;
    font-size: 1.5em;
    line-height: 1.4em;
    bottom: -3px;
    left: 0;
    background: rgba(0,0,0,0.4);
    width: 100%;
    padding: 2% 4%;
    border-radius: 0 0 12px 12px;
    overflow: hidden;
    font-weight: 300;
}
.tab_content strong {
	font-size: 1.7em;
}
.tab_container .next, .tab_container .prev {
	cursor: pointer;
	position: absolute;
	z-index: 999;
    font-size: 4em;
    color: #fff;
    opacity: 0.7;
    top: 37%;
}

table.abendkasse p {
	margin:0 !important; 
}
table.abendkasse p.sold-out-text {

	font-size: 17px !important; 
	font-weight: 500 !important;
	color: salmon !important; 
}

.sold-out-text a {
	font-size: 16px !important;
	color: #7a7a7a !important;
}

.tab_container .next:hover, .tab_container .prev:hover {
	opacity: 1;
}

.tab_container .next {
    right: 4%;
}

.tab_container .prev {
    left: 4%;
}

tr.tabs {
	margin: 0;
	padding: 0;
/* 	float: left; */
	list-style: none;
	width: 100%;
}

tr.tabs th {
	cursor: pointer;
	padding: 0 4px;
	color: #ccc;
	overflow: hidden;
	position: relative;
}
	
.tab_container iframe {
	position: absolute;
	top: 53px;
    left: 0;
}

.tab_container h3 div {
/* 	position: relative; */
}

#press-kit .soundcloud iframe {
	position: relative;
	top: 0;
	left: 0;
}
.link {
	text-decoration: underline;
	font-weight: bold;
}
.album  h3 span {
	font-size: 18px;
	font-weight: normal;
}

tr.tabs th img {
	width: 100%;
	opacity: 0.3;

	  -webkit-transition: opacity 0.15s ease-in-out;
  -moz-transition: opacity 0.15s ease-in-out;
  -ms-transition: opacity 0.15s ease-in-out;
  -o-transition: opacity 0.15s ease-in-out;
  transition: opacity 0.15s ease-in-out;
}
tr.tabs th:hover img,
tr.tabs th.active img,
tr.tabs th:hover span,
tr.tabs th.active span {
	opacity: 1;
}

.tab_container {
	overflow: auto;
	position: relative;
	
}



.passed {
	opacity: 0.5;
}

.passed a{
	cursor: default !important;
}

.passed a.button:hover {
	opacity: 0.2;
}

.sponsor {
	opacity: 0.55;
}

.units p {
    margin: 0 0 30px 0 !important;
    font-size: 1rem;
}

.press-kit .tab_drawer_heading {
	    text-shadow: none;
    position: relative;
    margin: 0;
    padding: 6px 5px 11px 52px;
    display: block;
    border-bottom: 1px solid #000;
    cursor: pointer;
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    font-weight: bold;
    font-size: 1.5em;
    color: #000 !important;
}
.press-kit .tab_drawer_heading span {
	font-weight: normal;
	font-size: 16px;
}

.press-kit .tab_drawer_heading p {
    font-weight: normal;
    font-size: 1.1rem;
    opacity: 0.8;
    text-transform: initial;
    display: block;
    margin-top: 5px !important;
    position: relative;
}
.press-kit .tab_drawer_heading img {
	max-width: 30px;
    margin-right: 20px;
    position: absolute;
    top: 10px;
    left: 10px;
    -webkit-border-radius: 0;
    -moz-border-radius: 0;
    border-radius: 0;
}


.press-kit .tab_drawer_heading img.mood {
    left: inherit;
    right: 0;
    top: 6%;
    height: 88%;
    width: 160px;
    max-width: 25%;
    margin-right: 0;
}

.press-kit .tab_content p {
    position: relative;
    color: #000;
    /* font-size: 1.2em; */
    line-height: 1.4em;
    bottom: inherit;
    left: inherit;
    background: inherit;
    width: 100%;
    padding: 0;
    border-radius: inherit;
    overflow: inherit;
}

.tree-entry em {
	font-size: 1rem;
}

.vibes-about .tab_container .tab_drawer_heading{
	padding: 6px 5px 20px 52px;
}

.vibes-about .tab_container h3{
	cursor: inherit !important;
}


.vibes-about .tab_container .tab_drawer_heading:hover {
	background: inherit !important;
}
.vibes-about iframe {
    position: relative;
    top: 9px;
}

.vibes-about .tab_content p {
    position: absolute;
    color: #fff;
    font-size: 1.6em;
    line-height: 1.5em;
    bottom: 7px;
    left: 0;
    background: rgba(0,0,0,0.4);
    width: 98%;
    padding: 2% 4%;
    border-radius: 0;
    overflow: hidden;
    font-weight: 300;
    margin: 10px !important;
}

.value p {
    font-size: 16px !important;
    line-height: normal !important;
    padding: 0 15px;
    margin: 0 !important;
}

.tempo h2, .tempo p {
	color: #000;
	font-weight: 400;
}


.shop .button {
	width: 100%;
	text-align: center;	
}

.shop p {
	text-align: center;
	font-size: 1.2rem;
	font-weight: 400;
	margin: 0 !important;
}

.rumi img {
	width: 50%;
}

.aftermovie  .aftermovie_sub {
	padding: 0px 4px !important;		
}


.aftermovie_sub {
	position: relative;
}

.after-movies span {
    font-size: 60%;
    font-weight: 100;
}

.white-link {
    text-decoration-line: underline;
    text-decoration-color: darkgoldenrod;
    text-decoration-thickness: 2px;
	font-weight: 500;
}

.white-link:hover {
    text-decoration-color: #fff;
    opacity: 0.8;
}

.moretext,
.moretext-interviews {
   display: none;
}
    
.aftermovie_sub h3 {
    position: absolute;
    text-transform: uppercase;
    font-size: 1.5em;
    color: #fff;
    padding: 7%;
    bottom: 0;
    font-family: poppins;
    font-weight: 600;
}
.aftermovie_sub span {
	color: #fff;
    position: absolute;
    font-size: 4.5em;
    opacity: 60%;
    margin: 45% 35%;
}


.intro-video .aftermovie_sub span {
    margin: 40% 42%;
	font-size: 7em;
}


.aftermovie_sub span.morepictures {
	    margin: 35% 35%;
}


.pictures .aftermovie_sub {
	padding: 0 3px!important;
}

.pictures .aftermovie_sub img:hover {
	opacity: .8;
}


.lottie svg :host * {
	stroke: #fff !important;
	fill: #fff !important;	
}

.tab_drawer_heading { display: none; }

	@media only screen and (min-width: 1200px)  {
		.section {
			max-width:950px;
		}
		
	}
	
	@media only screen and (max-width : 900px) {
		.text-faro, .img-faro {
			width: 100%;
			float: none;
		}

		.section {
			width:90vw;
		}
		#mce-EMAIL {
			width: 100% !important;
		}
			

	}
	
	
	@media only screen and (max-width : 1000px) {
			.navigation a {
			    font-size: 18px;
			    padding: 0 10px;
			}
			
			
		.brand img {
	    	top: 30px;
	    	width: 200px;
		}

	

	.logo {
		position: absolute;
	}
	
	
	
	}	
		
	
	@media only screen and (max-width : 567px) {
		#slider0 {
			display: none !important;
		}
		.footer-ticket a {
			   font-size: 17px;
			   top: -43px;
		}
				
				.joinus h3{
					font-size: 20px !important;
				}

				.joinus p{
					font-size: 14px !important;
				}
				
		
		.intro img {
			width: 100% !important;
			opacity: 0.6;
		}
		


			
	}
	
	

	


.mobile-links {
	display: none;
}
	
	li.desktop-links {
		display: block;
	}




@media only screen and (max-width: 768px) {
	
	
	#faq .vibes {
	padding: 0 !important;
}

	#faq .tab_drawer_heading {
		font-size: 1em;
	}

	.break-desktop-hide {
	display: block;	
	}

	.desktop-break {
   	 display: none;
	}


	.big-edition  {
	    width: 200px;
	}    
	
	
	.attr-attribute_option {
	font-size: 14px:
	}	
		
	.flag {
        font-size: 3.5em;
        top: -28px;
        left: -3px;
	}    
    	
	.video-wrapper-w .home-head {
		bottom: 16%;
		left: 5%;
		font-size: .9em;
	}
	


	.papyrus-bg {
		padding: 0 2em .5em 2em !important;
	}
	

	#home .head-title {
		font-size: 1.5em;
		
		margin-bottom: 16px;
	}
	
	 nav ul li.is-active a,
	 .navigation.sticky .nav-container {
		     background: rgba(0,25,34, 0.5);
    background: linear-gradient(0deg, rgba(0,25,34,0) 0%, rgba(0,25,34,.8) 100%);
	}
	
	
	nav ul {

    background: rgb(0,25,34);
    background: linear-gradient(90deg, rgba(0,25,34,1) 0%, rgba(0,25,34,0) 100%);
    height: 100vh;
    padding-top: 100px;
    position: relative;
    top: -60px;

		
    
	}
	
	
	nav ul li.is-active a {
		background: none !important;
	}
	
		
	.button, .wpcf7-submit {
     background: url(https://www.7vibesjourney.com/assets/img/pap_top.png);
   	 background-position: -0 -51px;
	}
	
	.event-row {
	margin:0 !important;
	}

	
	.event-row h2 {
    	font-size: 1.3em;
    }
	.event-row h4 {
	    font-size: .8em;
    }
    


	body {
		
		background: #002b4a url(../../assets/img/mobile_bg.jpg) 0 0 repeat-y;
		background-size: 100% auto !important;
	}

	.kalam {
    line-height: 20px;
    font-size: 1em !important;
    margin: 4px 0px 18px 0px;
	}

	
	.kalam span {
		display: none;
	}
	
	.kalam br {
		display: block;
	}
	.crowd-video h4 * {
		color: #2c1000 !important;
	}

	.aftermovie_sub span {
		margin: 41% 38%;
	}


	.video-wrapper {
		top: -30px;	
	}

	.mobile-links {
		display: block;
	}
	
	li.desktop-links  {
		display: none !important;
	}



	.rumi img {
		width: 100%;
	}
	
	.social-sub-footer {
		display: none;
	}


	.logo-sub-footer img{
	    left: 0;
	    width: 70%;
	}
	
	.event-row h2 span {
		display: block;
	}

	#events .papyrus-bg h2 {
		padding-left: 40px !important;
	}

	 
	.desktop-hide {
		display: inline-block !important;	
	}
	.mobile-hide {
		display: none !important;	
	}

	h1 {
		font-size: 1.2em;
		font-weight: 600;
	}
	
	h2 {
		font-size: 1.5em;
	}
	
	
	.brr {
		display: inline-block;
	}

	
	
	.intro-quote {
	    padding: 12px;
	    text-align: left;
	    font-size: .9rem;
    }
	.nav-list li:nth-child(5) {
		display: block !important;
	}
	
	.social .contact {
		display: none;
	}
	
	.dist img {
		width: 70%;
	}
	
	.button {
    	display: block;
		text-align: center;
	}
	
	.tagLine h2 {
		font-size: 16px;
	}


	.controls.baby-controls {
		display: none;
	}


	.desktop-separator {
		height: 40px;
	}



	.vibes-about .tab_container .tab_drawer_heading {
	padding: 12px 5px 20px 52px;	
	}
	
	.mob-contact {
		display: block !important;
	}

	.tab_container .next, .tab_container .prev {
		display: none;
	}
	.tab_content img {
		border-radius: 0;
	}
	.val .col-xs-6 {
		min-height: 16em;
		    display: contents;
	}
	
	.val .col-xs-6 * {
		padding: 0;
	}
	.val .col-xs-6 h4 {
		font-size: 18px;
	}

	.val .col-xs-6 p {
        font-size: 18px !important;
        margin: 0 0 40px 0 !important;
        padding: 0 30px;
        font-weight: 400;

	}

	dotlottie-player {
		padding: 10px;
	}
	p {
		font-size:	16px;
		font-weight: 400;
	}



	nav {
	    width: 100%;
	    padding: 60px 0 0 0;
	}
	
	nav ul {
	display: none;
    margin-top: 0px;
	
	}
	nav ul li {
		width: 100%;
		float: none;
		font-size: 24px;
		text-align: center;
	}
	nav ul li > a {
	font-size: 1.7em !important;
    height: 59px !important;
    line-height: 60px !important;
    padding-left: 20px !important;
    text-align: left;
	}
	
			.nav-mobile {
		display: block;
	}
	.col-4 {
		padding: 0;	
	}
	
	.joinus * {
		text-align: center;
	}
	
	.joinus {
		padding-bottom: 100px;
	}
	
	
	
	
	.navigation .nav-container {
	    background-position: top right;
    }


	#flow {
  	  left: 52.5% !important;
	}    
	
	.value .col-sm-3 {
        float: left;
        width: 50%;
        padding: 0;
	}


	.value {
		padding: 50px 0px;
	}
	
	.value p {
		padding: 0;
        font-size: 16px;
        margin: 0 0 20px 0;
        font-weight: 400;
	}
	
		
	.event-row .button {
		margin-bottom: 0 !important;
	}
	
	h1.pop, .quote {
		font-size: 1.1em;
	}
	
	h3 {
		font-size: 1.1em;
        margin-bottom: 10px;
        text-transform: uppercase;
        line-height: inherit;
	}

	.fb_iframe_widget, .fb_iframe_widget span, .fb_iframe_widget span iframe[style] {
	width: 100% !important;
	}
	
	#fb-root {
	display: none;
	}

	nav ul li.is-active a, .navigation a:hover, .social a:hover, .footer-cta a:hover, .overlay a:hover {
		color: #FFF !important;
    }
	
	.wrap, .intro, .ease {
	margin-top: 40px !important;
	}
	.separator {
		height: 40px !important;
	}


	.navigation a {
		border-left: none !important;
		    border-top: 1px solid rgba(255, 255, 255, 0.8);
	}

	.breadcrumb {
		display: none;	
	}
	.article.single h1 {
		margin: 0;
		max-width: 100%;
	}
			
	.atelier {
		width: 100%;
	}
	


	.brand img, 
	.sticky.small .brand img {
    top: 30px;
    width: 201px;
	}

	.sticky.small .brand a {
		padding: 0 10px;
	}

	
	.social {
	    text-align: center;
	 }
	 
	.env {
		display: inline-block !important;
	}

	.social a {
	    padding: 0 14px 0px 14px;
	}    
	

	.tabs {
		display: none;
	}
	
	.tab_drawer_heading {
		text-shadow: none;
		position: relative;
		margin: 0;
		padding: 6px 5px 11px 52px;
		display: block;
		border-bottom: 1px solid #000;
		cursor: pointer;
		-webkit-touch-callout: none;
		-webkit-user-select: none;
		-khtml-user-select: none;
		-moz-user-select: none;
		-ms-user-select: none;
		user-select: none;
		font-weight: bold;
		font-size: 1.5em;
		color: #000 !important;
	}
	.tab_drawer_heading img {
		max-width: 30px;
		margin-right: 20px;
		position: absolute;
		top: 10px;
		left: 10px;
		-webkit-border-radius: 0;
		-moz-border-radius: 0;
		border-radius: 0;
	}
	
	.d_active {
		color: #fff;
	}
	
	.tab_content p {
		font-size: 1em;
		-webkit-border-radius: 0;
		-moz-border-radius: 0;
		border-radius: 0;

	}
	
	.overlay {
    top: 100px;
    left: 0;
    margin: auto 7%;
    text-align: center;
    width: 86%;
    z-index: 9999;
	}
	
	.overlay h1 {
		font-size: 1.6em !important;
		text-align: center;
	}  
	.overlay li {
		text-align: center;
	}  
	
	  
	.overlay a {
		width: 100% !important;
		display: inline-block;
		text-align: center;
		margin: 4px 0;
	}
	
		
	.event {
		width: 100%;
		display: inline-block;
	}
	
	.event-cta * {
		text-align: center;
	}
	
	.sticky.small {
		height: 60px;	
	}
	
	#news .ease {
		padding-bottom: 200px;
	}
	
	.social span {
		display: none;
	}


	.press-kit .tab_drawer_heading {
		font-size: 1em;
		    padding: 13px 5px 9px 52px;
	}
	.press-kit .tab_drawer_heading span {
		font-size: 14px;
	}


	.val.center h4 {
		font-size: 20px !important;
	}
	
		
	.hugi {
		width: 60%;
	}
	
	
	
}
@media screen and (min-width: 1000px) {
	.nav-list {
		display: block !important;
	}
}



.tab_content .button , .tab_content .bemember{
	font-size:18px !important;
	text-decoration: none;
}


.section li {
	font-size:20px;	
}


.press-kit .tab_drawer_heading {
	display: block !important;
	cursor: pointer;
	
}
.press-kit .tab_drawer_heading:hover {
    background: rgba(0,0,0,0.07);
}


.kw img {
	width: 100%;
}



.now_sold {
    background: #000080;
    color: #fff;
    font-size: 14px;
    font-weight: 700;
    padding: 6px 12px;
    position: absolute;
    right: 0;
    top: 0;
}





/* Flow animation */
/* Legacy late font import removed: browsers ignored it after style rules. */
@-webkit-keyframes part {
  0%, 100% {
    opacity: 0.2;
  }
  50% {
    opacity: 0.7;
  }
}
@-moz-keyframes part {
  0%, 100% {
    opacity: 0.2;
  }
  50% {
    opacity: 0.9;
  }
}
@keyframes part {
  0%, 100% {
    opacity: 0.2;
  }
  50% {
    opacity: 0.7;
  }
}

#flow {
	overflow: hidden;
    position: fixed;
    top: 50%;
    left: 50.5%;
    margin-right: -50%;
    transform: translate(-50%, -50%);
    z-index: -1;
}
#flow svg {
  height: 120vh;
  width: auto;
}
#flow path {
  opacity: 0.1;
}

#flow circle {
  -moz-animation: part 1.6s infinite ease-in-out;
  -webkit-animation: part 1.6s infinite ease-in-out;
  animation: part 1.6s infinite ease-in-out;
}

* {
color: #fff !important;	
}

.wide .papyrus-top {
    top: 8px;
}

.wide .papyrus-bottom {
    top: -15px;
}



	

.navigation.fixed-header {
	background: rgba(0,25,34, 0.2);
	background: linear-gradient(0deg, rgba(0,25,34,0.05) 0%, rgba(0,25,34,.2) 100%);
}


.navigation.sticky .nav-container {
	background: rgba(0,25,34, 0.2);
	background: linear-gradient(0deg, rgba(0,25,34,0) 0%, rgba(0,25,34,.5) 100%);

}

.navigation a {
	border-image: 
    linear-gradient(
      to bottom, 
      #fff, 
      rgba(0, 0, 0, 0)
    ) 1 100%;
}
    

nav ul li.is-active a, .navigation a:hover, .social a:hover, .footer-cta a:hover, .overlay a:hover {
	background: rgba(0,25,34, 0.7);
	background: linear-gradient(0deg, rgba(0,25,34,0) 0%, rgba(0,25,34,.7) 100%);
 }  


.zoom, .button, button, .btn  {
  transition: transform .2s; /* Animation */
}  

button:hover, .zoom:hover, .button:hover, .btn:hover  {
	  transform: scale(1.05); 
}



.product-quantity * {
	color: #000 !important;
}




  /* Default: show desktop, hide mobile */
  .video-home-desktop {
    display: block;
    width: 100%;
  }
  .video-home-mobile {
    width: 100%;
    display: none;
  }

  /* On small screens (phones/tablets): show mobile video */
  @media (max-width: 768px) {
    .video-home-desktop {
      display: none;
    }
    .video-home-mobile {
      display: block;
    }
  }
  
  
  
  
  
  
  .blockUI.blockOverlay {
  		background-color: rgba(0, 0, 0, 0.5) !important;
  		opacity: 0.8 !important;
   }


/* festival2-site-overrides.css */
.tracking-frame { display: none; visibility: hidden; }

.home-video-fade {
    opacity: 0;
    transition: opacity 320ms ease-out;
}

.home-video-fade.is-video-loaded {
    opacity: 1;
}

.sponsor {
    opacity: 0.1;
}

.site-header--city .nav-container,
.site-header--festival .nav-container {
    overflow: visible;
}

.site-header--city .brand a {
    align-items: flex-start;
    display: flex;
    height: 60px;
    padding: 14px 0 0 18px;
    top: 0;
}

.site-header--city .brand img {
    left: 0;
    top: 0;
    width: 200px;
}

.site-header--festival .brand img {
    width: 295px;
}

.site-header--city .sticky.small .brand a {
    height: 30px;
    padding: 6px 0 0 10px;
    top: 0;
}

.site-header--city .sticky.small .brand img {
    top: 0;
    width: 110px;
}

.site-header--festival .sticky.small .brand img {
    width: 205px;
}

@media only screen and (max-width: 1000px) {
    .site-header--festival {
        --nav-icon-side: 3px;
    }

    .site-header--festival .brand a {
        left: 5px;
        padding-left: 0;
    }

    .site-header--festival .brand img {
        left: 0;
        top: 22px;
    }
}

.alternative-navigation {
    background: rgba(0, 0, 0, 0.78);
    border-top: 1px solid rgba(255, 255, 255, 0.12);
    box-sizing: border-box;
    clear: both;
    float: none;
    left: 0;
    padding: 7px 20px;
    position: absolute;
    text-align: right;
    top: 60px;
    width: 100%;
    z-index: 1000;
}

.alternative-navigation[hidden] {
    display: none;
}

.alternative-navigation--toggleable.is-open {
    display: block;
}

.sticky.small .alternative-navigation {
    top: 30px;
}

.navigation-more {
    position: relative;
}

.navigation-more summary {
    border-left: 1px solid rgba(255, 255, 255, 0.7);
    color: #fff;
    cursor: pointer;
    font-size: 20px;
    font-weight: 300;
    list-style: none;
    line-height: 60px;
    padding: 0 20px;
    text-transform: uppercase;
}

.navigation-more summary::-webkit-details-marker {
    display: none;
}

.navigation-more summary:hover,
.navigation-more summary:focus-visible,
.navigation-more[open] summary {
    background: rgba(0, 25, 34, 0.7);
    color: #fff;
}

.sticky.small .navigation-more summary {
    line-height: 30px;
    font-size: 1rem;
    transition: all 300ms ease-in-out;
}

.navigation-more__menu {
    background: rgb(0, 25, 34);
    text-align: right;
    min-width: 264px;
    padding: 0;
    position: absolute;
    right: 0;
    top: 100%;
    z-index: 1002;
}

:is(#festival-faq-page, #festival-how-to-get-there-page, #festival-contact-page) .site-header--festival .navigation-more__menu {
    background: #f8f5f0;
    min-width: 264px;
    padding: 0;
    margin: 0;
    list-style: none;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}

:is(#festival-faq-page, #festival-how-to-get-there-page, #festival-contact-page) .site-header--festival .navigation-more__menu li a {
    color: #4d3b30 !important;
    font-family: "Poppins", sans-serif;
    font-size: 20px;
    font-weight: 300;
    letter-spacing: 0.04em;
    padding: 12px 20px;
    line-height: 1.5;
    text-transform: uppercase;
    text-decoration: none;
}

:is(#festival-faq-page, #festival-how-to-get-there-page, #festival-contact-page) .site-header--festival .navigation-more__menu li a:hover,
:is(#festival-faq-page, #festival-how-to-get-there-page, #festival-contact-page) .site-header--festival .navigation-more__menu li a:focus-visible {
    color: #4d3b30 !important;
    background: rgba(77, 59, 48, 0.1);
    text-decoration: none;
}

.navigation-more__menu li {
    display: block;
    float: none;
    width: 100%;
}

.navigation-more__menu li a {
    border: 0;
    box-sizing: border-box;
    line-height: 1.3;
    padding: 14px 18px;
    width: 100%;
}

.alternative-navigation ul {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 22px;
    justify-content: flex-end;
    list-style: none;
    margin: 0 auto;
    max-width: 1160px;
    padding: 0;
}

.alternative-navigation a {
    color: #fff;
    font-size: 12px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.alternative-navigation .is-active a {
    color: #efb56f;
}

.footer-alt-navigation {
    display: inline-flex;
    float: none;
    flex-wrap: wrap;
    gap: 6px 14px;
    margin: 0 12px;
    vertical-align: middle;
}

.footer-alt-navigation .contact {
    font-size: 17.6px;
    margin: 0;
}

.footer-alt-navigation .footer-navigation-button {
    border-left: 1px solid #fff;
    display: inline-block;
    font-weight: 400 !important;
    line-height: inherit;
    padding: 1px 6px 0 9px;
}

.footer-alt-navigation--festival {
    gap: 0;
}

.footer-alt-navigation--festival .contact {
    border-left: 1px solid #fff;
    padding-left: 10px;
    padding-right: 10px;
}

.footer-alt-navigation--festival .contact:first-child {
    border-left: 0;
}

#events .past-journeys .row.event-row {
    opacity: .4;
}


.journey-switcher {
    background: #050505;
    display: flex;
    height: 100vh;
    height: 100dvh;
    overflow: hidden;
    position: relative;
    width: 100%;
}

body#switcher {
    background: #050505;
    margin: 0;
    overflow: hidden;
}

.journey-choice {
    align-items: center;
    background: #050505;
    border: 0;
    box-sizing: border-box;
    color: #fff;
    display: flex;
    flex: 0 0 50%;
    height: 100%;
    justify-content: center;
    overflow: hidden;
    padding: 0;
    position: relative;
    isolation: isolate;
}

.journey-choice__video {
    filter: brightness(1.3);
    height: 100%;
    inset: 0;
    object-fit: cover;
    position: absolute;
    transform: scale(1.035);
    transition: filter 300ms ease, transform 550ms cubic-bezier(.2,.65,.25,1);
    width: 100%;
    z-index: 0;
}

.journey-choice__shade {
    background: rgba(0, 0, 0, 0.42);
    inset: 0;
    position: absolute;
    transition: background 300ms ease;
    z-index: 1;
}

.journey-choice__logo {
    display: block;
    height: auto;
    max-height: 38vh;
    position: relative;
    transition: opacity 500ms ease, filter 500ms ease, transform 400ms ease;
    width: min(48%, 470px);
    z-index: 3;
}

.journey-choice__logo--city {
    width: min(39.6%, 396px);
}

.journey-choice:hover .journey-choice__video,
.journey-choice:focus-visible .journey-choice__video {
    filter: saturate(1.08) brightness(1.06);
    transform: scale(1);
}

.journey-choice:hover .journey-choice__shade,
.journey-choice:focus-visible .journey-choice__shade {
    background: rgba(0, 0, 0, 0.1);
}

.journey-choice:hover .journey-choice__logo,
.journey-choice:focus-visible .journey-choice__logo {
    filter: drop-shadow(0 4px 15px rgba(0, 0, 0, 0.48));
    animation: switcher-logo-pulse 1.1s ease-in-out infinite alternate;
    opacity: 1;
}

.journey-switcher:has(.journey-choice:hover) .journey-choice:not(:hover) .journey-choice__video {
    filter: brightness(1.3);
}

.journey-switcher:has(.journey-choice:hover) .journey-choice:not(:hover) .journey-choice__shade {
    background: rgba(0, 0, 0, 0.62);
}

.journey-switcher:has(.journey-choice:hover) .journey-choice:not(:hover) .journey-choice__logo {
    filter: brightness(0) invert(1);
    opacity: 0.3;
}

@keyframes switcher-logo-pulse {
    from { transform: scale(1); }
    to { transform: scale(1.06); }
}

.switcher-navigation {
    position: fixed;
    right: 24px;
    top: 24px;
    z-index: 20;
}

.switcher-navigation summary {
    align-items: center;
    background: transparent;
    border: 0;
    box-sizing: border-box;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    gap: 6px;
    height: 48px;
    justify-content: center;
    list-style: none;
    width: 48px;
}

.switcher-navigation summary::-webkit-details-marker {
    display: none;
}

.switcher-navigation summary span {
    background: #fff;
    display: block;
    border-radius: 1px;
    height: 5px;
    position: relative;
    transition: all 300ms ease-in-out;
    width: 35px;
}

.switcher-navigation summary span::before,
.switcher-navigation summary span::after {
    background: #fff;
    border-radius: 1px;
    content: "";
    display: block;
    height: 5px;
    left: 0;
    position: absolute;
    transition: all 300ms ease-in-out;
    width: 35px;
}

.switcher-navigation summary span::before {
    top: -10px;
}

.switcher-navigation summary span::after {
    top: 10px;
}

.switcher-navigation[open] summary span {
    background: transparent;
}

.switcher-navigation[open] summary span::before,
.switcher-navigation[open] summary span::after {
    top: 0;
}

.switcher-navigation[open] summary span::before {
    transform: rotate(45deg);
}

.switcher-navigation[open] summary span::after {
    transform: rotate(-45deg);
}

.switcher-navigation nav {
    background: rgba(0, 0, 0, 0.88);
    left: 0;
    margin: 0;
    padding: 0;
    position: fixed;
    right: 0;
    top: 80px;
    width: 100%;
}

.switcher-navigation ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

.switcher-navigation a {
    border-top: 1px solid rgba(255, 255, 255, 0.8);
    color: #fff;
    display: block;
    font-size: 17px;
    padding: 15px 20px;
    text-align: center;
    text-decoration: none;
    text-transform: uppercase;
}

.switcher-navigation a:hover,
.switcher-navigation a:focus-visible {
    background: #fff;
    color: #111;
}

/* Switcher uses the same navigation structure and controller as the City menu. */
.journey-switcher .switcher-navigation {
    float: none;
    font-size: inherit;
    position: static;
}

.journey-switcher .switcher-navigation .nav-mobile {
    display: block;
    height: 55px;
    position: fixed;
    right: env(safe-area-inset-right, 0px);
    top: env(safe-area-inset-top, 0px);
    width: 55px;
    z-index: 22;
}

.journey-switcher .switcher-navigation .nav-list {
    background: rgba(0, 0, 0, 0.88);
    display: none !important;
    float: none;
    left: 0;
    margin: 0;
    padding: 0;
    position: fixed;
    right: 0;
    text-align: center;
    top: 80px;
    width: 100%;
    z-index: 21;
}

.journey-switcher .switcher-navigation .nav-list.is-open {
    display: block !important;
}

.journey-switcher .switcher-navigation .nav-list li {
    display: block;
    float: none;
    width: 100%;
}

.journey-switcher .switcher-navigation .nav-list a {
    border-left: 0;
    border-top: 1px solid rgba(255, 255, 255, 0.8);
    box-sizing: border-box;
    line-height: 30px;
    width: 100%;
}

.category-page {
    align-items: center;
    background: #003f5c url("../img/desktop_bg.jpg") center / cover fixed;
    box-sizing: border-box;
    display: flex;
    justify-content: center;
    min-height: 78vh;
    padding: 130px 24px 90px;
}

.category-page__inner {
    max-width: 1040px;
    text-align: center;
    width: 100%;
}

.category-page h1 {
    color: #fff;
    font-size: clamp(38px, 7vw, 76px);
    margin: 0 0 38px;
}

.category-page__eyebrow {
    color: #efb56f;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}

.category-page__status {
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.festival-home {
    background: #003f5c url("../img/desktop_bg.jpg") center / cover fixed;
    min-height: 80vh;
    padding: 145px 24px 90px;
}

.festival-home__hero {
    align-items: center;
    display: flex;
    justify-content: center;
    min-height: 390px;
    text-align: center;
}

.festival-home__hero > div {
    background: rgba(92, 44, 14, 0.86);
    box-sizing: border-box;
    max-width: 760px;
    padding: 55px 40px;
    width: 100%;
}

.festival-home__hero h1 {
    color: #fff;
    font-size: clamp(56px, 9vw, 104px);
    margin: 0;
}

.festival-home__sections {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    margin: 30px auto 0;
    max-width: 1040px;
}

.festival-home__sections a {
    background: rgba(0, 31, 48, 0.86);
    border: 1px solid rgba(255, 255, 255, 0.22);
    color: #fff;
    display: flex;
    font-weight: 700;
    justify-content: space-between;
    padding: 22px 18px;
    text-transform: uppercase;
}

.festival-home__sections a:hover,
.festival-home__sections a:focus-visible {
    background: rgba(92, 44, 14, 0.94);
    color: #fff;
}

.category-page__inner {
    background: rgba(0, 31, 48, 0.82);
    color: #fff;
    max-width: 760px;
    padding: 65px 45px;
}

.category-page--festival .category-page__inner {
    background: rgba(92, 44, 14, 0.86);
}

.category-page__status {
    color: #efb56f;
    font-size: 18px;
    margin: 28px 0;
}

@media (max-width: 767px) {
    .alternative-navigation {
        text-align: center;
    }

    .alternative-navigation ul {
        gap: 7px 14px;
        justify-content: center;
    }

    .footer-alt-navigation {
        display: flex;
        justify-content: center;
        margin: 12px 0;
        width: 100%;
    }

    .journey-switcher {
        flex-direction: column;
    }

    .journey-choice {
        flex-basis: 50%;
        height: 50%;
        width: 100%;
    }

    .journey-choice--festival {
        order: 1;
    }

    .journey-choice--city {
        order: 2;
    }

    .journey-choice__logo {
        max-height: 19vh;
        width: min(58%, 390px);
    }

    .journey-choice__logo--city {
        width: min(48%, 360px);
    }

    .festival-home__sections {
        grid-template-columns: 1fr;
    }
}

/* Keep every legacy section inside the viewport. The old stylesheet gives
   sections a fixed 950px width, which otherwise overflows narrow windows. */
.section {
    box-sizing: border-box;
    margin-left: auto;
    margin-right: auto;
    max-width: 950px;
    width: calc(100% - 30px);
}

.section.row {
    display: block !important;
    margin-left: auto !important;
    margin-right: auto !important;
    max-width: 950px;
    width: calc(100% - 30px);
}

.section.row::after {
    clear: both;
    content: "";
    display: table;
}

.papyrus.wide {
    box-sizing: border-box;
    max-width: 100%;
}

.papyrus.wide > img {
    height: auto;
    max-width: 100%;
}

.section.contact {
    margin-left: auto !important;
    margin-right: auto !important;
    overflow-wrap: anywhere;
}


/* Native layout grid. It preserves the existing class names while removing Bootstrap. */
.row {
    display: flex;
    flex-wrap: wrap;
    margin-right: -15px;
    margin-left: -15px;
}

.row::before,
.row::after {
    display: none;
}

.row > [class*="col-"] {
    flex: 0 0 100%;
    min-height: 1px;
    padding-right: 15px;
    padding-left: 15px;
    position: relative;
    width: 100%;
}

/* Some legacy templates nest columns inside another column instead of placing
   them directly below .row. Keep those layouts responsive without Bootstrap. */
[class*="col-xs-"],
[class*="col-sm-"],
[class*="col-md-"] {
    box-sizing: border-box;
    min-height: 1px;
}

.col-xs-3 { float: left; width: 25%; }
.col-xs-4 { float: left; width: 33.333333%; }
.col-xs-6 { float: left; width: 50%; }
.col-xs-12 { float: left; width: 100%; }

.row > .col-3 { flex-basis: 25%; max-width: 25%; }
.row > .col-4 { flex-basis: 33.333333%; max-width: 33.333333%; }
.row > .col-6 { flex-basis: 50%; max-width: 50%; }
.row > .col-9 { flex-basis: 75%; max-width: 75%; }
.row > .col-12 { flex-basis: 100%; max-width: 100%; }
.row > .col-xs-3 { flex-basis: 25%; max-width: 25%; }
.row > .col-xs-4 { flex-basis: 33.333333%; max-width: 33.333333%; }
.row > .col-xs-6 { flex-basis: 50%; max-width: 50%; }
.row > .col-xs-12 { flex-basis: 100%; max-width: 100%; }

@media (min-width: 768px) {
    .col-sm-3 { float: left; width: 25%; }
    .col-sm-4 { float: left; width: 33.333333%; }
    .col-sm-6 { float: left; width: 50%; }
    .col-sm-9 { float: left; width: 75%; }
    .col-sm-12 { float: left; width: 100%; }
    .row > .col-sm-3 { flex-basis: 25%; max-width: 25%; }
    .row > .col-sm-4 { flex-basis: 33.333333%; max-width: 33.333333%; }
    .row > .col-sm-6 { flex-basis: 50%; max-width: 50%; }
    .row > .col-sm-9 { flex-basis: 75%; max-width: 75%; }
    .row > .col-sm-12 { flex-basis: 100%; max-width: 100%; }
}

@media (min-width: 992px) {
    .col-md-3 { float: left; width: 25%; }
    .col-md-4 { float: left; width: 33.333333%; }
    .col-md-6 { float: left; width: 50%; }
    .col-md-9 { float: left; width: 75%; }
    .col-md-12 { float: left; width: 100%; }
    .row > .col-md-3 { flex-basis: 25%; max-width: 25%; }
    .row > .col-md-4 { flex-basis: 33.333333%; max-width: 33.333333%; }
    .row > .col-md-6 { flex-basis: 50%; max-width: 50%; }
    .row > .col-md-9 { flex-basis: 75%; max-width: 75%; }
    .row > .col-md-12 { flex-basis: 100%; max-width: 100%; }
}

/* Event rows must remain horizontal even when legacy page styles are present. */
.event-row {
    display: flex !important;
    flex-wrap: wrap !important;
}

.event-row > .col-3,
.event-row > .col-sm-3,
.event-row > .col-md-3 {
    flex: 0 0 25%;
    max-width: 25%;
}

.event-row > .col-6,
.event-row > .col-sm-6,
.event-row > .col-md-6 {
    flex: 0 0 50%;
    max-width: 50%;
}

.event-row > .col-9,
.event-row > .col-sm-9,
.event-row > .col-md-9 {
    flex: 0 0 75%;
    max-width: 75%;
}

/* The values heading belongs above the four cards, not inside their columns. */
.value > center {
    flex: 0 0 100%;
    max-width: 100%;
    width: 100%;
}

.value > br {
    display: none;
}

@media (max-width: 767px) {
    .vibes-columns > .col-6 {
        flex: 0 0 100%;
        max-width: 100%;
        width: 100%;
    }

    .event-row > .col-3,
    .event-row > .col-sm-3,
    .event-row > .col-md-3,
    .event-row > .col-6,
    .event-row > .col-sm-6,
    .event-row > .col-md-6 {
        flex: 0 0 100%;
        max-width: 100%;
        width: 100%;
    }

    .event-row > [class*="col-"] {
        margin-bottom: 12px;
        text-align: center;
    }

    .event-row .button {
        box-sizing: border-box;
        display: block;
        margin: 0;
        width: 100%;
    }

    .event-row h2 {
        line-height: 1.1;
        margin: 0 0 2px;
    }

    .event-row h4 {
        line-height: 1.15;
        margin: 0 0 8px;
    }

    .event-row > .col-6,
    .event-row > .col-sm-6,
    .event-row > .col-md-6 {
        line-height: 1.35;
    }

    .event-row .desktop-break + br {
        display: none;
    }

    .value > .col-3,
    .value > .col-sm-3,
    .value > .col-md-3 {
        flex: 0 0 50%;
        max-width: 50%;
        width: 50%;
    }
}

.nav-mobile {
    position: fixed;
    top: env(safe-area-inset-top, 0px);
    right: env(safe-area-inset-right, 0px);
    width: 55px;
    height: 55px;
}

#nav-toggle {
    appearance: none;
    background: transparent;
    border: 0;
    cursor: pointer;
    display: block;
    height: 55px;
    left: 0;
    top: 0;
    padding: 0;
    width: 55px;
}

#nav-toggle > span {
    left: auto;
    right: var(--nav-icon-side, 18px);
    top: calc(var(--nav-icon-top, 14px) + 10px);
}

.site-header--city {
    --nav-icon-top: 15px;
    --nav-icon-side: 18px;
}

.site-header--festival {
    --nav-icon-top: 15px;
    --nav-icon-side: 18px;
}

.site-header--city .sticky.small {
    --nav-icon-top: 6px;
    --nav-icon-side: 10px;
}

.site-header--festival .sticky.small {
    --nav-icon-top: 6px;
    --nav-icon-side: 10px;
}

@media only screen and (min-width: 1001px) {
    .site-header--festival .sticky.small {
        --nav-icon-side: 6px;
    }

    .site-header--festival .sticky.small .brand img {
        left: 4px;
    }
}

@media only screen and (max-width: 1000px) {
    .site-header--festival .sticky.small {
        --nav-icon-top: 5px;
        --nav-icon-side: 3px;
    }

    .site-header--festival .sticky.small .brand a {
        left: 5px;
        padding: 0;
        top: 3px;
    }

    .site-header--festival .sticky.small .brand img {
        left: 0;
        top: 0;
    }

    .site-header--festival .sticky.small .nav-container {
        min-height: 80px;
    }
}

.nav-list.is-open {
    display: block;
}

.mobile-menu-backdrop {
    position: fixed;
    inset: 0;
    background: linear-gradient(90deg, rgba(0, 25, 34, 1), rgba(0, 25, 34, 0)), rgba(0, 0, 0, .12);
    -webkit-backdrop-filter: blur(5px);
    backdrop-filter: blur(5px);
    z-index: 999999;
}

.mobile-menu-open .site-header,
.mobile-menu-open .journey-switcher .switcher-navigation {
    position: relative;
    z-index: 1000000;
}

.mobile-menu-open .navigation {
    z-index: 1000001;
}

.mobile-menu-open .nav-container {
    position: relative;
    z-index: 1000002;
}

.mobile-menu-open .nav-container .brand {
    filter: none;
}

.mobile-menu-open .site-header .navigation,
.mobile-menu-open .site-header .nav-container,
.mobile-menu-open .site-header .nav-list.is-open {
    background: transparent;
}

.footer-newsletter-link {
    background: transparent;
    border: 0;
    color: inherit;
    cursor: pointer;
    font: inherit;
}

.ease {
    opacity: 0;
    transition: opacity 1s ease;
}

.ease.is-visible {
    opacity: 1;
}

.moretext.is-expanded,
.moretext-interviews.is-expanded,
.tab_content.is-active {
    display: block;
}

[hidden] {
    display: none !important;
}

.reveal-ready .reCenter,
.reveal-ready .popUp,
.reveal-ready .tagLine,
.reveal-ready .hug {
    opacity: 0;
    transform: translateY(10%) scale(0.92);
}

.reveal-ready .reLeft {
    opacity: 0;
    transform: translateX(-40%) scale(0.9);
}

.reveal-ready .reRight {
    opacity: 0;
    transform: translateX(40%) scale(0.9);
}

.reveal-ready .reCenter,
.reveal-ready .reLeft,
.reveal-ready .reRight,
.reveal-ready .popUp,
.reveal-ready .tagLine,
.reveal-ready .hug {
    transition: opacity 1s ease var(--reveal-delay, 0ms), transform 1s ease var(--reveal-delay, 0ms);
}

.reveal-ready .is-revealed {
    opacity: 1;
    transform: none;
}

.glightbox-container {
    z-index: 1000000;
}

.glightbox-city-vertical .gslide-video {
    height: min(100dvh, 177.778vw);
    max-height: 100dvh;
    max-width: min(100vw, 56.25dvh) !important;
    width: min(100vw, 56.25dvh) !important;
}

.glightbox-city-vertical .gvideo-wrapper,
.glightbox-city-vertical .plyr,
.glightbox-city-vertical .plyr__video-wrapper,
.glightbox-city-vertical iframe {
    height: 100% !important;
    width: 100% !important;
}

.application-frame {
    border: 0;
    display: block;
    min-height: 100dvh;
    width: 100%;
}

body#application {
    background: #fff;
    height: 100%;
    overflow: hidden;
}

.visually-hidden {
    border: 0;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    white-space: nowrap;
    width: 1px;
}

.error-page {
    align-items: center;
    display: flex;
    justify-content: center;
    min-height: 70vh;
    padding: 8rem 1.5rem;
    text-align: center;
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
    }
}

@media (max-width: 767px) {
    .sponsor > .col-xs-4 {
        flex: 0 0 33.333%;
        max-width: 33.333%;
        width: 33.333%;
    }

    .newsletter-social-links {
        align-items: center;
        display: flex;
        float: none;
        justify-content: center;
        margin: 0 auto;
        width: 70%;
    }

    .newsletter-social-links > [class*="col-"] {
        flex: 0 0 33.333%;
        max-width: 33.333%;
        padding: 0 3px;
        width: 33.333%;
    }
}

/* Shared, full-width Taggbox feeds for City and Festival pages. */
.taggbox-section {
    box-sizing: border-box;
    margin: 0;
    max-width: none;
    padding: 55px 0 0;
    width: 100%;
    scroll-margin-top: 70px;
}
.taggbox-section__heading {
    color: inherit !important;
    font-family: "Poppins", sans-serif;
    font-size: clamp(32px, 4.1vw, 64px);
    font-weight: 500;
    letter-spacing: -.045em;
    line-height: 1.12;
    margin: 0;
    padding: 0 24px 35px;
    text-align: center;
    text-transform: none;
}
.site-category--festival .taggbox-section {
    background: #f8f5f0;
    color: #4d3b30 !important;
}

@media only screen and (max-width: 768px) {
    nav ul {
        padding-top: 3.3em !important;
    }

    nav ul li {
        font-size: 18px;
    }

    nav ul li > a {
        font-size: 2.3em !important;
        height: 1.2em !important;
        line-height: 1em !important;
        padding-left: 1em !important;
        text-align: left;
    }
}

.nav-list > .mobile-menu-alternative { display: none !important; }

@media only screen and (max-width: 1000px) {
    .nav-list.is-open > .mobile-menu-alternative { display: block !important; }
    .nav-list > .menu-item--more { display: none !important; }
    .nav-list > .menu-item--desktop-only { display: none !important; }
    .nav-list > .mobile-menu-alternative--first { margin-top: 0; }
    .nav-list > .mobile-menu-alternative > a {
        font-size: .85em !important;
        height: auto !important;
        line-height: 1em !important;
        padding: 8px 20px !important;
        box-sizing: border-box;
    }
    .site-header .nav-list.is-open {
        max-height: calc(100svh - 60px);
        overflow-y: auto;
        padding-bottom: 24px;
        box-sizing: border-box;
    }
}

/* The switcher intentionally keeps the shared mobile navigation interaction
   on every viewport, including desktop. */
#switcher .site-header .nav-mobile {
    display: block !important;
}

#switcher .site-header nav {
    float: none;
    padding: 60px 0 0;
    width: 100%;
}

#switcher .site-header .nav-list {
    display: none !important;
    float: none;
    margin: 0;
    max-height: 100svh;
    overflow-y: auto;
    padding: 100px 0 30px !important;
    width: 100%;
}

#switcher .site-header .nav-list.is-open {
    display: block !important;
}

#switcher .site-header .nav-list > li {
    display: block;
    float: none;
    text-align: left;
    width: 100%;
}

#switcher .site-header .nav-list > li > a {
    box-sizing: border-box;
    font-size: 2.3em !important;
    height: auto !important;
    line-height: 1.1 !important;
    padding: 12px 1em !important;
    width: 100%;
}

@media only screen and (max-width: 768px) {
    .nav-list > .mobile-menu-alternative > a {
        font-size: 1.15em !important;
        padding-left: 2em !important;
    }
}

@media only screen and (max-width: 1000px) {
    .mobile-menu-open .site-header { --overlay-menu-inset: 20px; }
    .site-header .navigation .brand img {
        transition: opacity 200ms ease;
    }
    .mobile-menu-open .site-header .navigation .brand a {
        position: fixed;
        top: var(--overlay-menu-inset);
        left: var(--overlay-menu-inset);
        height: auto;
        padding: 0;
        line-height: 1;
    }
    .mobile-menu-open .site-header .navigation .brand img {
        animation: mobile-logo-fade-in 220ms ease-out both;
        top: 0;
        left: 0;
        display: block;
        width: 125px;
        max-width: calc(100vw - var(--overlay-menu-inset) - 80px);
        max-height: 72px;
        object-fit: contain;
        object-position: left top;
    }
    .mobile-menu-open .site-header .nav-list.is-open {
        padding-top: calc(var(--overlay-menu-inset) + 72px + 4px) !important;
        max-height: 100svh;
    }
}
@media only screen and (max-width: 768px) {
    .mobile-menu-open .site-header { --overlay-menu-inset: 41.4px; }
}

@keyframes mobile-logo-fade-in {
    from { opacity: 0; }
    to { opacity: 1; }
}

.mobile-menu-open .nav-list.is-open > li > a {
    animation: mobile-menu-item-enter 900ms cubic-bezier(.25, .8, .25, 1) both;
    animation-delay: var(--menu-item-delay, 0ms);
}

@keyframes mobile-menu-item-enter {
    from { opacity: 0; transform: translateX(-6px); }
    to { opacity: 1; transform: translateX(0); }
}

.mobile-menu-open .nav-list > li > a {
    transition: translate 220ms ease, filter 220ms ease;
}

.mobile-menu-open .nav-list > li > a:is(:hover, :focus-visible) {
    translate: -10px 0;
    background: transparent;
}

.mobile-menu-open .nav-list:has(> li > a:is(:hover, :focus-visible)) > li > a:not(:hover):not(:focus-visible) {
    filter: opacity(.7);
}

@media (prefers-reduced-motion: reduce) {
    .mobile-menu-open .nav-list.is-open > li > a {
        animation: none;
    }
    .mobile-menu-open .site-header .navigation .brand img {
        animation: none;
    }
}

.nav-list > .mobile-menu-festival { display: none !important; }
@media only screen and (max-width: 1000px) {
    .nav-list.is-open > .mobile-menu-festival {
        display: block !important;
        float: none;
        width: 100%;
        box-sizing: border-box;
        padding: 20px var(--overlay-menu-inset, 20px) 0;
    }
    .mobile-menu-festival__divider {
        height: 1px;
        background: linear-gradient(to right, rgba(255, 255, 255, .5) 0%, rgba(255, 255, 255, .5) 50%, transparent 100%);
        margin-bottom: 24px;
    }
    .nav-list > .mobile-menu-festival > a {
        border: 0;
        background: transparent;
        display: inline-block;
        font-size: 1em !important;
        height: auto !important;
        line-height: 1 !important;
        padding: 0 !important;
        width: 183.75px;
        max-width: 100%;
    }
    .mobile-menu-festival img {
        display: block;
        height: auto;
        width: 183.75px;
        max-width: 100%;
    }
    .nav-list > .mobile-menu-festival { text-align: left; }

    .mobile-menu-open .site-header--festival .navigation .brand img {
        width: 162.5px;
    }

    .site-header--festival .nav-list > .mobile-menu-festival > a,
    .site-header--festival .mobile-menu-festival img {
        width: 132.3px;
    }
}

/* Temporary Festival launch navigation: burger menu on every viewport. */
@media only screen and (max-width: 1000px) {
.mobile-menu-open .site-header--festival {
    --overlay-menu-inset: 41.4px;
}

.mobile-menu-open .site-header--festival .navigation .brand a {
    height: auto;
    left: 28px;
    line-height: 1;
    padding: 0;
    position: fixed;
    top: 10px;
}

.mobile-menu-open .site-header--festival .navigation .brand img {
    display: block;
    left: 0;
    max-height: 72px;
    max-width: calc(100vw - 108px);
    object-fit: contain;
    object-position: left top;
    top: 0;
    width: 236px;
}

.site-header--festival .nav-mobile {
    display: block !important;
}

.site-header--festival nav {
    float: none;
    padding: 60px 0 0;
    width: 100%;
}

.site-header--festival .nav-list {
    background: transparent;
    box-sizing: border-box;
    display: none !important;
    float: none;
    height: 100svh;
    inset: 0;
    margin: 0;
    overflow-y: auto;
    padding: calc(var(--overlay-menu-inset, 20px) + 76px) 0 24px !important;
    position: fixed;
    top: 0;
    width: 100%;
}

.site-header--festival .nav-list.is-open {
    display: block !important;
}

.site-header--festival .nav-list > li {
    display: block;
    float: none;
    font-size: 18px;
    text-align: left;
    width: 100%;
}

.site-header--festival .nav-list > li > a {
    background: transparent;
    border-left: 1px solid #fff;
    box-sizing: border-box;
    color: #fff;
    font-size: 1.84em !important;
    font-weight: 300;
    height: 1.2em !important;
    line-height: 1 !important;
    padding: 0 0 0 1em !important;
    text-align: left;
    text-transform: uppercase;
    width: 100%;
}

.site-header--festival .nav-list > .festival-menu-socials {
    align-items: center;
    display: flex !important;
    justify-content: flex-start;
    padding: 22px 0 4px 41.4px;
    text-align: left;
}

.site-header--festival .festival-menu-socials > a {
    align-items: center;
    background: transparent;
    border: 0;
    border-left: 1px solid #fff;
    border-image: linear-gradient(to bottom, #fff, rgba(255, 255, 255, 0)) 1 100%;
    display: inline-flex;
    font-size: 1.45rem !important;
    height: 42px !important;
    justify-content: flex-start;
    line-height: 1 !important;
    padding: 0 !important;
    width: 59px;
}

.site-header--festival .nav-list.is-open > .mobile-menu-festival {
    box-sizing: border-box;
    display: block !important;
    float: none;
    padding: 18px 0 0 41.4px;
    width: 100%;
}

.site-header--festival .mobile-menu-festival__divider {
    background: rgba(255, 255, 255, .48);
    height: 1px;
    margin: 0 0 22px;
    max-width: calc(100% - 41.4px);
}

.site-header--festival .nav-list > .mobile-menu-festival > a {
    background: transparent;
    border: 0;
    display: inline-block;
    height: auto !important;
    line-height: 1 !important;
    padding: 0 !important;
    width: 158px;
}

.site-header--festival .mobile-menu-festival img {
    display: block;
    height: auto;
    max-width: 100%;
    width: 158px;
}
}


/* Footer navigation remains available in the markup for easy reactivation. */
.site-category--festival .footer-alt-navigation--festival {
    display: none !important;
}

/* Standalone links hub, visually aligned with the navigation overlay. */
#links {
    background: #001922;
    color: #fff;
    margin: 0;
    min-height: 100%;
}

#links .site-header,
#links #footer {
    display: none !important;
}

.links-hub {
    box-sizing: border-box;
    color: #fff;
    isolation: isolate;
    min-height: 100svh;
    overflow: hidden;
    padding: clamp(34px, 6vw, 72px);
    position: relative;
}

.links-hub::before {
    background-image: url("../img/festival/elements/seven-vibes-journey-festival-switzerland.jpg");
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    content: "";
    filter: blur(5px);
    inset: -10px;
    position: absolute;
    z-index: -2;
}

.links-hub::after {
    background: linear-gradient(90deg, rgba(0, 25, 34, .98) 0%, rgba(0, 25, 34, .82) 42%, rgba(0, 25, 34, .3) 100%), rgba(0, 0, 0, .12);
    content: "";
    inset: 0;
    position: absolute;
    z-index: -1;
}

.links-hub__panel {
    max-width: 680px;
    position: relative;
    z-index: 1;
}

.links-hub__group {
    width: 100%;
}

.links-hub__group > summary {
    align-items: center;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    list-style: none;
    min-height: 76px;
    width: 100%;
}

.links-hub__group > summary::-webkit-details-marker {
    display: none;
}

.links-hub__group > summary::after {
    color: rgba(255, 255, 255, .82);
    content: "+";
    font-family: "Poppins", sans-serif;
    font-size: 23px;
    font-weight: 300;
    line-height: 1;
    padding-left: 30px;
}

.links-hub__group[open] > summary::after {
    content: "−";
}

.links-hub__group > summary:focus-visible {
    outline: 1px solid rgba(255, 255, 255, .85);
    outline-offset: 8px;
}

.links-hub__city-logo,
.links-hub__festival-logo {
    display: block;
    height: auto;
}

.links-hub__festival-logo {
    width: clamp(215px, 28vw, 330px);
}

.links-hub__city-logo {
    width: clamp(155px, 20vw, 215px);
}

.links-hub__navigation {
    align-items: flex-start;
    border-left: 1px solid rgba(255, 255, 255, .7);
    display: flex;
    flex-direction: column;
    margin: 24px 0 14px;
    padding-left: 20px;
}

.links-hub__navigation a,
.links-hub__navigation button {
    background: transparent;
    border: 0;
    color: #fff;
    cursor: pointer;
    display: block;
    font-family: "Poppins", sans-serif;
    font-size: clamp(28px, 3.5vw, 46px);
    font-weight: 300;
    letter-spacing: -.035em;
    line-height: 1.18;
    padding: 0;
    text-align: left;
    text-decoration: none;
    text-transform: uppercase;
    transition: opacity 180ms ease, transform 180ms ease;
}

.links-hub__navigation .links-hub__secondary {
    font-size: clamp(17px, 1.6vw, 21px);
    letter-spacing: 0;
    line-height: 1.65;
}

.links-hub__navigation a:hover,
.links-hub__navigation a:focus-visible,
.links-hub__navigation button:hover,
.links-hub__navigation button:focus-visible {
    color: #fff;
    opacity: .72;
    outline: 0;
    transform: translateX(8px);
}

.links-hub__divider {
    background: linear-gradient(to right, rgba(255, 255, 255, .55), rgba(255, 255, 255, 0));
    height: 1px;
    margin: 28px 0;
    max-width: 560px;
}

@media (max-width: 800px) {
    .links-hub {
        padding: 36px 28px 48px;
    }

    .links-hub::before {
        background-image: url("../img/festival/elements/seven-vibes-journey-festival-switzerland-mobile.jpg");
        background-position: center top;
    }

    .links-hub::after {
        background: linear-gradient(90deg, rgba(0, 25, 34, .98), rgba(0, 25, 34, .72)), rgba(0, 0, 0, .12);
    }

    .links-hub__festival-logo {
        width: min(250px, 75vw);
    }

    .links-hub__city-logo {
        width: 150px;
    }

    .links-hub__navigation a,
    .links-hub__navigation button {
        font-size: clamp(27px, 8.4vw, 38px);
    }

    .links-hub__navigation .links-hub__secondary {
        font-size: 17px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .links-hub__navigation a,
    .links-hub__navigation button {
        transition: none;
    }
}


/* Festival styles */
/*
 * 7 Vibes Journey Festival
 * Loaded only on /festival routes.
 * Keep Festival design rules scoped to .site-category--festival.
 */

.site-category--festival {
    --festival-background: #f8f5f0;
    --festival-text: #ffffff;
    --festival-accent: #ffffff;
    --festival-content-width: 1600px;
    --festival-description-size: clamp(20px, 2.2vw, 30px);
    --festival-section-description-size: clamp(16px, 1.76vw, 24px);
    --festival-section-description-line-height: 1.37;
    background: var(--festival-background);
    max-width: 100%;
    overflow-x: hidden;
    overflow-x: clip;
}

body.festival-video-modal-open {
    overflow: hidden;
}

.festival-video-modal {
    align-items: center;
    -webkit-backdrop-filter: blur(18px);
    backdrop-filter: blur(18px);
    background: rgba(3, 13, 16, .9);
    border: 0;
    height: 100dvh;
    inset: 0;
    justify-items: center;
    margin: 0;
    max-height: none;
    max-width: none;
    opacity: 0;
    overflow: hidden;
    padding: 0;
    position: fixed;
    transition: opacity 240ms cubic-bezier(.22, 1, .36, 1);
    width: 100vw;
    z-index: 1000000;
}

.festival-video-modal[open] {
    display: grid;
}

.festival-video-modal.is-open {
    opacity: 1;
}

.festival-video-modal.is-closing {
    opacity: 0;
}

.festival-video-modal::backdrop {
    background: rgba(0, 0, 0, 0);
    transition: background-color 240ms ease;
}

.festival-video-modal.is-open::backdrop {
    background: rgba(0, 0, 0, .72);
}

.festival-video-modal.is-closing::backdrop {
    background: rgba(0, 0, 0, 0);
}

.festival-video-modal__stage {
    aspect-ratio: 9 / 16;
    background: #000;
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 20px;
    box-shadow: 0 30px 90px rgba(0, 0, 0, .58);
    max-height: calc(100dvh - 24px);
    overflow: hidden;
    opacity: 0;
    position: relative;
    transform: translateY(14px) scale(.985);
    transition: opacity 260ms ease, transform 320ms cubic-bezier(.22, 1, .36, 1);
    width: min(calc(100vw - 24px), calc((100dvh - 24px) * .5625));
}

.festival-video-modal.is-open .festival-video-modal__stage {
    opacity: 1;
    transform: translateY(0) scale(1);
}

.festival-video-modal.is-closing .festival-video-modal__stage {
    opacity: 0;
    transform: translateY(8px) scale(.99);
}

.festival-video-modal__stage video {
    border: 0;
    display: block;
    height: 100%;
    object-fit: contain;
    width: 100%;
}

.festival-video-modal__stage video::-webkit-media-controls,
.festival-video-modal__stage video::-webkit-media-controls-enclosure,
.festival-video-modal__stage video::-webkit-media-controls-panel {
    display: none !important;
    -webkit-appearance: none;
}

.festival-video-modal__close {
    align-items: center;
    -webkit-backdrop-filter: blur(12px);
    backdrop-filter: blur(12px);
    background: rgba(8, 24, 28, .42);
    border: 1px solid rgba(255, 255, 255, .24);
    border-radius: 12px;
    color: #fff;
    cursor: pointer;
    display: flex;
    height: 42px;
    justify-content: center;
    opacity: 0;
    padding: 0;
    position: fixed;
    right: max(16px, env(safe-area-inset-right));
    top: max(16px, env(safe-area-inset-top));
    transform: translateY(-6px);
    transition: background-color 180ms ease, border-color 180ms ease, opacity 220ms ease, transform 220ms ease;
    width: 42px;
    z-index: 2;
}

.festival-video-modal.is-open .festival-video-modal__close {
    opacity: 1;
    transform: translateY(0);
}

.festival-video-modal__close svg {
    fill: none;
    height: 30px;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-width: 2;
    width: 30px;
}

.festival-video-modal__close:hover,
.festival-video-modal__close:focus-visible {
    background: rgba(255, 255, 255, .1);
    border-color: rgba(255, 255, 255, .52);
    outline: none;
}

.festival-video-modal__controls {
    align-items: center;
    -webkit-backdrop-filter: blur(14px);
    backdrop-filter: blur(14px);
    background: rgba(3, 14, 17, .58);
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 14px;
    bottom: 12px;
    display: flex;
    gap: 12px;
    left: 12px;
    padding: 8px 11px;
    position: absolute;
    right: 12px;
    transition: opacity 200ms ease, transform 200ms ease;
}

.festival-video-modal.is-controls-hidden .festival-video-modal__controls {
    opacity: 0;
    pointer-events: none;
    transform: translateY(8px);
}

.festival-video-modal.is-controls-hidden .festival-video-modal__close {
    opacity: 0;
    pointer-events: none;
    transform: translateY(-6px);
}

.festival-video-modal__play {
    align-items: center;
    background: transparent;
    border: 0;
    color: #fff;
    cursor: pointer;
    display: inline-flex;
    flex: 0 0 32px;
    height: 32px;
    justify-content: center;
    padding: 0;
}

.festival-video-modal__play svg {
    fill: currentColor;
    height: 20px;
    width: 20px;
}

.festival-video-modal__icon-pause,
.festival-video-modal__play.is-playing .festival-video-modal__icon-play {
    display: none;
}

.festival-video-modal__play.is-playing .festival-video-modal__icon-pause {
    display: block;
}

.festival-video-modal__progress {
    --video-progress: 0%;
    -webkit-appearance: none;
    appearance: none;
    background: linear-gradient(to right, #27d3cc 0 var(--video-progress), rgba(255, 255, 255, .24) var(--video-progress) 100%);
    border: 0;
    border-radius: 999px;
    cursor: pointer;
    flex: 1 1 auto;
    height: 3px;
    margin: 0;
    min-width: 0;
}

.festival-video-modal__progress::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    background: #fff;
    border: 0;
    border-radius: 50%;
    box-shadow: 0 0 0 4px rgba(39, 211, 204, .18);
    height: 11px;
    width: 11px;
}

.festival-video-modal__progress::-moz-range-thumb {
    background: #fff;
    border: 0;
    border-radius: 50%;
    box-shadow: 0 0 0 4px rgba(39, 211, 204, .18);
    height: 11px;
    width: 11px;
}

.festival-video-modal__time {
    color: rgba(255, 255, 255, .82);
    flex: 0 0 auto;
    font: 500 12px/1 "Poppins", sans-serif;
    min-width: 76px;
    text-align: right;
}

@media (prefers-reduced-motion: reduce) {
    .festival-video-modal,
    .festival-video-modal__stage,
    .festival-video-modal__close {
        transition: none;
    }
}

.site-category--festival .festival-experience,
.site-category--festival .festival-community,
.site-category--festival .festival-story,
.site-category--festival .festival-vibes {
    max-width: 100%;
    overflow-x: hidden;
    overflow-x: clip;
    width: 100%;
}

.site-category--festival img,
.site-category--festival svg,
.site-category--festival video {
    max-width: 100%;
}

.site-category--festival main h1,
.site-category--festival main h2,
.site-category--festival main h3,
.site-category--festival main p,
.site-category--festival main li,
.site-category--festival main a,
.site-category--festival main time {
    -webkit-user-select: text;
    user-select: text;
}

.site-category--festival .lazy-fade {
    opacity: 0;
    transition: opacity .9s ease-out;
}

.site-category--festival .lazy-fade.is-lazy-loaded {
    opacity: 1;
}

.site-category--festival .scroll-reveal {
    opacity: 0;
    transform: translateY(32px);
    transition: opacity .8s ease-out, transform .8s ease-out;
}

.site-category--festival .scroll-reveal.is-scroll-visible {
    opacity: 1;
    transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
    .site-category--festival .scroll-reveal {
        opacity: 1;
        transform: none;
        transition: none;
    }
}

.site-category--festival .festival-home,
.site-category--festival .category-page {
    background: var(--festival-background);
    background-image: none;
}

.festival-footer-visual {
    background: #f8f5f0;
    line-height: 0;
    overflow: hidden;
    width: 100%;
}

.site-category--festival #footer .social {
    display: none !important;
}

.site-category--festival #footer {
    background: transparent !important;
    box-shadow: none !important;
    height: 0;
    pointer-events: none;
}

.site-category--festival #footer .footer-ticket {
    display: block !important;
    pointer-events: auto;
}

.site-category--festival #footer .footer-ticket a {
    background: url("../img/pap_top.png") -9px -24px no-repeat;
    bottom: 20px;
    pointer-events: auto;
    position: fixed;
    right: 0;
    top: auto;
    width: 245px;
    z-index: 10001;
}

.festival-footer-visual__intro {
    color: #111 !important;
    line-height: 1.4;
    padding: clamp(70px, 9vw, 135px) 24px clamp(45px, 6vw, 85px);
    text-align: center;
}

.festival-footer-visual__intro img {
    filter: brightness(0);
    height: auto;
    margin: 0 auto 10px;
    max-width: 420px;
    width: min(70vw, 420px);
}

.festival-footer-visual__intro p,
.festival-footer-visual__intro time {
    color: #111 !important;
    display: block;
    font-family: "Poppins", sans-serif;
}

.festival-footer-visual__intro p {
    font-size: clamp(22px, 2.4vw, 34px);
    font-weight: 600;
    margin: 40px 0 10px;
}

.festival-footer-visual__intro time {
    font-family: "Kalam", cursive;
    font-size: clamp(23px, calc(1.8vw + 5px), 30px);
}

.festival-footer-visual__contact {
    color: #111 !important;
    font-family: "Poppins", sans-serif;
    font-size: 16px;
    margin-top: 20px;
}

.festival-footer-visual__contact a {
    color: #111 !important;
}

.festival-footer-visual__art {
    line-height: 0;
    position: relative;
}

.festival-footer-visual__art::after {
    background: linear-gradient(to top, rgba(0, 0, 0, .3) 0%, rgba(0, 0, 0, 0) 100%);
    content: "";
    inset: 0;
    pointer-events: none;
    position: absolute;
    z-index: 0;
}

.festival-footer-visual__background {
    display: block;
    height: auto;
    width: 100%;
}

.festival-footer-visual__logo {
    filter: brightness(0) invert(1);
    height: auto;
    left: 50%;
    max-width: 540px !important;
    position: absolute;
    top: 52%;
    transform: translate(-50%, -50%);
    width: clamp(225px, 36vw, 540px);
    z-index: 1;
}

.festival-footer-visual__logo svg {
    display: block;
    height: auto;
    width: 100%;
}

.festival-footer-visual__caption {
    color: #fff !important;
    left: 50%;
    line-height: 1.35;
    position: absolute;
    text-align: center;
    top: 74%;
    transform: translateX(-50%);
    width: calc(100% - 40px);
    z-index: 1;
}

.festival-footer-visual__caption p,
.festival-footer-visual__caption time {
    color: #fff !important;
    display: block;
}

.festival-footer-visual__caption p {
    font-size: clamp(22px, 2.4vw, 34px);
    font-weight: 600;
    margin: 0 0 10px;
}

.festival-footer-visual__caption time {
    font-family: "Kalam", cursive;
    font-size: clamp(23px, calc(1.8vw + 5px), 30px);
}

@media (max-width: 800px) {
    .festival-footer-visual__logo {
        width: clamp(292.5px, 46.8vw, 540px);
    }
}

@media (max-width: 500px) {
    .festival-footer-visual__logo {
        width: clamp(219.375px, 35.1vw, 405px);
    }
}

.site-category--festival .festival-home,
.site-category--festival .category-page--festival {
    display: block;
    padding: 0;
}

.festival-hero {
    align-items: center;
    aspect-ratio: 1246 / 1262;
    background: #f8f5f0;
    box-sizing: border-box;
    display: flex;
    justify-content: center;
    height: auto;
    min-height: 0;
    overflow: hidden;
    padding: 120px 24px 90px;
    position: relative;
    text-align: center;
}

.festival-hero__image,
.festival-hero__overlay {
    height: 100%;
    inset: 0;
    position: absolute;
    width: 100%;
}

.festival-hero__image {
    object-fit: contain;
    object-position: center top;
}

.festival-community .festival-hero {
    aspect-ratio: 1574 / 999;
}

.festival-community .festival-hero__image {
    object-fit: contain;
}

.festival-community .festival-hero__overlay {
    background: linear-gradient(
        180deg,
        rgba(0, 0, 0, 0.464) 0%,
        rgba(0, 0, 0, 0.34) 24%,
        rgba(0, 0, 0, 0.12) 43%,
        rgba(0, 0, 0, 0) 58%
    );
}

.festival-hero__overlay {
    background: linear-gradient(
        180deg,
        rgba(0, 0, 0, 0.58) 0%,
        rgba(0, 0, 0, 0.34) 24%,
        rgba(0, 0, 0, 0.12) 43%,
        rgba(0, 0, 0, 0) 58%
    );
}

.festival-hero__content {
    box-sizing: border-box;
    color: #fff;
    left: 50vw;
    max-width: 900px;
    position: absolute;
    text-shadow: 0 2px 18px rgba(0, 0, 0, 0.5);
    top: 150px;
    transform: translateX(-50%);
    width: calc(100vw - 48px);
    z-index: 3;
}

.festival-location-video.video-wrapper-w {
    position: relative;
    z-index: 4;
    width: 100%;
    max-width: var(--festival-content-width);
    box-sizing: border-box;
    padding: 0 60px;
    margin: clamp(-180px, -12vw, -60px) auto 0;
    text-align: center;
}
.festival-location-video .video-wrapper {
    display: block;
    position: relative;
    width: 100%;
    max-width: none;
    height: auto;
    margin: 0;
    aspect-ratio: 6044 / 4293;
    -webkit-mask: url("../img/festival/elements/festival-mask-7vj.svg") no-repeat center / contain;
    mask: url("../img/festival/elements/festival-mask-7vj.svg") no-repeat center / contain;
    mask-mode: alpha;
}
.festival-location-video .video-wrapper > a,
.festival-location-video .video-wrapper video {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.festival-location-video > .festival-hero__button {
    position: absolute;
    inset: 50% auto auto 50%;
    transform: translate(-50%, -50%);
    z-index: 5;
}
@media (max-width: 1000px) {
    .festival-location-video.video-wrapper-w { padding: 0 24px; }
    .festival-location-video .video-wrapper {
        aspect-ratio: 2319 / 2239;
        -webkit-mask: url("../img/video-mask.svg") no-repeat center / contain;
        mask: url("../img/video-mask.svg") no-repeat center / contain;
    }
}
.festival-hero__video {
    left: 50%;
    max-width: none;
    position: absolute;
    top: 55%;
    transform: translate(-50%, -50%);
    width: 100%;
    z-index: 1;
}

.festival-hero__video .video-wrapper {
    aspect-ratio: 16 / 9;
    -webkit-mask: url("../img/festival/elements/festival-mask-7vj.svg") no-repeat center / contain;
    mask: url("../img/festival/elements/festival-mask-7vj.svg") no-repeat center / contain;
    mask-mode: alpha;
    max-width: none;
    margin-left: auto;
    margin-right: auto;
    width: 100%;
}

.festival-hero__video .video-wrapper > a {
    display: block;
    height: 100%;
    width: 100%;
}

.festival-hero__video video {
    display: block;
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.festival-hero__video .video-home-mobile {
    display: none;
}

@media (min-width: 1001px) {
    .festival-hero--video {
        align-items: center;
        flex-direction: column;
        justify-content: flex-start;
    }

    .festival-hero--video .festival-hero__content {
        flex: 0 0 auto;
        left: auto;
        margin-top: 150px;
        order: 1;
        position: relative;
        top: auto;
        transform: translateY(-150px);
    }

    .festival-hero--video .festival-hero__video {
        flex: 0 0 auto;
        left: auto;
        margin-top: 35px;
        order: 2;
        position: relative;
        top: auto;
        transform: translateY(-150px);
    }

}

.festival-hero__content h1 {
    color: inherit;
    font-family: "Poppins", sans-serif;
    font-size: clamp(21.56px, 3.234vw, 47.74px);
    font-weight: 600;
    line-height: 1.1;
    margin: 0;
}

.festival-hero__content p {
    font-size: var(--festival-description-size);
    line-height: 1.16;
    margin: 14px auto 12px;
    max-width: 760px;
}

.site-category--festival .festival-hero__content .festival-hero__subtitle {
    color: inherit;
    font-size: calc(var(--festival-description-size) * 1.21);
    letter-spacing: 2px !important;
    line-height: 1.16;
    margin: 14px auto 12px;
    max-width: 760px;
    text-transform: none;
}

@media (max-width: 800px) {
    .site-category--festival .festival-hero__content .festival-hero__subtitle {
        font-size: calc(var(--festival-description-size) * 1.3915);
    }
    .site-category--festival .festival-experience .festival-hero__content .festival-hero__subtitle {
        font-size: calc(var(--festival-description-size) * 1.3915 - 3px);
    }
}

.festival-hero__date {
    display: block;
    font-family: "Kalam", cursive;
    font-size: clamp(22px, 2.15vw, 32px);
    font-weight: 400;
    letter-spacing: .02em;
    line-height: 1.2;
    margin: 0 auto 18px;
}

.festival-hero__button {
    --glow-x: 50%;
    --glow-y: 50%;
    background: transparent;
    border: 0;
    border-radius: 20px;
    color: #fff;
    display: inline-flex;
    align-items: center;
    font-size: 16px;
    font-weight: 400;
    justify-content: center;
    isolation: isolate;
    line-height: 1.2;
    max-width: 100%;
    padding: 0;
    position: relative;
    text-decoration: none;
    text-shadow: none;
    text-transform: uppercase;
    transition: transform 200ms ease-out;
}

.festival-hero__video > .festival-hero__button {
    left: 50%;
    position: absolute;
    top: calc(100% - clamp(20px, 4vw, 55px) - 100px);
    transform: translate(-50%, -100%);
    z-index: 4;
}

.festival-hero__video > .festival-hero__button:hover,
.festival-hero__video > .festival-hero__button:focus-visible {
    transform: translate(-50%, -100%) scale(1.05);
}

@media (min-width: 1001px) {
    .festival-hero__video > .festival-hero__button {
        top: calc(100% - clamp(20px, 4vw, 55px) - 110px);
    }
}

@media (min-width: 1600px) {
    .festival-hero__video > .festival-hero__button {
        top: calc(100% - clamp(20px, 4vw, 55px) - 260px);
    }
}

.festival-hero__button:hover,
.festival-hero__button:focus-visible {
    background: transparent;
    color: #fff;
    transform: scale(1.05);
}

.festival-hero__button:focus-visible {
    outline: 2px solid #a5e6ff;
    outline-offset: 6px;
}

/* Galaxy Glow design adapted from the supplied Elyakim Goldfus button. */
.festival-hero__button-shell {
    background: rgba(5, 27, 38, .10);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .68), 0 8px 24px rgba(0, 0, 0, .24);
    border-radius: inherit;
    display: flex;
    overflow: hidden;
    padding: 2px;
    position: relative;
    width: 100%;
    z-index: 1;
}

.festival-hero__button-face {
    background: transparent;
    border-radius: inherit;
    box-sizing: border-box;
    padding: 17.6px clamp(22.4px, 3.2vw, 52px);
    position: relative;
    width: 100%;
    z-index: 1;
}

.festival-hero__button-label {
    background: linear-gradient(0deg, #e4f9ff, #fff);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

.festival-hero__button-shell::before,
.festival-hero__button-halo {
    background: radial-gradient(ellipse, #d5f7ff 0%, #45beff 25%, #3be8ff80 45%, transparent 70%);
    content: "";
    height: 150px;
    left: var(--glow-x);
    opacity: 0;
    pointer-events: none;
    position: absolute;
    top: var(--glow-y);
    transform: translate(-50%, -50%) scale(.2);
    transition: opacity 500ms ease, transform 300ms ease;
    width: 200px;
}

.festival-hero__button-shell::before {
    filter: blur(20px);
}

.festival-hero__button-halo {
    filter: blur(15px);
    height: 100px;
    width: 100px;
    z-index: 0;
}

.festival-hero__button-halo::after {
    animation: festival-button-star 5s linear infinite;
    background: #a9edff;
    clip-path: polygon(50% 0, 58% 40%, 100% 50%, 58% 60%, 50% 100%, 42% 60%, 0 50%, 42% 40%);
    content: "";
    inset: -20%;
    opacity: .37;
    position: absolute;
}

.festival-hero__button:is(:hover, :focus-visible) .festival-hero__button-shell::before,
.festival-hero__button:is(:hover, :focus-visible) .festival-hero__button-halo {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
}

@keyframes festival-button-star {
    to { transform: rotate(360deg); }
}

.festival-hero__button-dust {
    inset: 0;
    opacity: 1;
    pointer-events: none;
    position: absolute;
    transition: opacity 350ms ease;
    z-index: 2;
}

.festival-hero__button-dust > span {
    animation: festival-button-dust var(--dust-duration) linear var(--dust-delay) infinite;
    background: #e1faff;
    border-radius: 50%;
    box-shadow: 0 0 4px #fff, 0 0 9px #45beff;
    height: var(--dust-size);
    width: var(--dust-size);
    position: absolute;
    opacity: 0;
}

.festival-hero__button:is(:hover, :focus-visible) .festival-hero__button-dust {
    opacity: 1;
}

.festival-hero__button:is(:hover, :focus-visible) .festival-hero__button-dust > span {
    animation-play-state: running;
}

@keyframes festival-button-dust {
    0% { opacity: .25; transform: translate(calc(var(--dust-x) * .35), calc(var(--dust-y) * .35)) scale(.7); }
    25% { opacity: 1; }
    65% { opacity: .85; }
    100% { opacity: .15; transform: translate(var(--dust-x), var(--dust-y)) scale(.6); }
}

@media (prefers-reduced-motion: reduce) {
    .festival-hero__button,
    .festival-hero__button-shell::before,
    .festival-hero__button-halo {
        transition: none;
    }

    .festival-hero__button-halo::after { animation: none; }
    .festival-hero__button-dust { transition: none; }
    .festival-hero__button-dust > span {
        animation: none;
        opacity: .6;
        transform: translate(var(--dust-x), var(--dust-y));
    }
    .festival-hero__button:is(:hover, :focus-visible) { transform: none; }
}

.site-category--festival .festival-home__sections,
.site-category--festival .category-page--festival > .category-page__inner {
    margin-left: auto;
    margin-right: auto;
}

.site-category--festival .festival-home__sections {
    padding-bottom: 90px;
}

.site-category--festival .category-page--festival > .category-page__inner {
    margin-bottom: 90px;
    margin-top: 90px;
}

.site-category--festival .site-header--festival .brand img {
    filter: none;
}

.site-category--festival .site-header--festival .navigation a,
.site-category--festival .site-header--festival .nav-list > .menu-item > a,
.site-category--festival .site-header--festival .navigation-more summary,
.site-category--festival .site-header--festival .navigation-more__menu a,
.site-category--festival .site-header--festival .alternative-navigation a {
    border-color: #fff;
    color: #fff !important;
}

.site-category--festival .site-header--festival .navigation a:hover,
.site-category--festival .site-header--festival .navigation a:focus-visible,
.site-category--festival .site-header--festival .navigation-more summary:hover,
.site-category--festival .site-header--festival .navigation-more summary:focus-visible {
    color: #fff !important;
}

.site-category--festival .site-header--festival .navigation-more summary {
    border-left: 1px solid #fff;
    border-image: linear-gradient(to bottom, #fff, rgba(255, 255, 255, 0)) 1 100%;
}

.site-category--festival .site-header--festival #nav-toggle span,
.site-category--festival .site-header--festival #nav-toggle span::before,
.site-category--festival .site-header--festival #nav-toggle span::after {
    background: #fff;
}

.site-category--festival .site-header--festival #nav-toggle.active > span {
    background: transparent;
}

@media (max-width: 1024px) {
    .festival-hero--video .festival-hero__image {
        object-fit: cover;
        object-position: center center;
    }
}

@media (max-width: 1000px) {
    .site-category--festival {
        --festival-description-size: clamp(17px, 4.8vw, 22px);
        --festival-section-description-size: clamp(13.6px, 3.84vw, 17.6px);
    }

    .festival-hero.festival-hero--video {
        aspect-ratio: 4 / 9;
        display: flex;
        flex-direction: column;
        height: auto;
        justify-content: flex-start;
        margin-bottom: 0;
        min-height: 100svh;
        overflow: hidden;
        padding: 150px 20px 56px;
    }

    .festival-hero:not(.festival-hero--video) {
        padding: 105px 20px 70px;
    }

    .festival-hero--video .festival-hero__content {
        left: auto;
        order: 1;
        position: relative;
        top: auto;
        transform: none;
        width: 100%;
    }

    .festival-hero__content {
        width: calc(100vw - 40px);
    }

    .festival-hero__content h1 {
        font-size: clamp(23.52px, 6vw, 33.6px);
    }

    .festival-experience .festival-hero__content h1 {
        font-size: calc(clamp(23.52px, 6vw, 33.6px) - 3px);
    }

    .festival-hero__image {
        object-position: center top;
    }

    .festival-hero__content p {
        font-size: var(--festival-description-size);
        line-height: 1.08;
        margin: 8px auto 10px;
        max-width: 34rem;
    }

    .festival-hero__date {
        font-size: clamp(21px, 6vw, 28px);
        margin-bottom: 14px;
    }

    .festival-hero__video {
        box-sizing: border-box;
        flex: 0 0 auto;
        left: auto;
        margin: 42px auto 0;
        max-width: 700px;
        order: 2;
        position: relative;
        top: auto;
        transform: none;
        width: 100%;
    }

    .festival-hero__video .video-wrapper,
    .festival-hero__video .video-wrapper.festival-mask-is-ready {
        aspect-ratio: auto;
        display: block;
        margin: 0;
        max-width: 100%;
        overflow: hidden;
        top: 0;
        width: 100%;
        -webkit-mask: url("../img/video-mask.svg") no-repeat center / contain;
        mask: url("../img/video-mask.svg") no-repeat center / contain;
    }

    .festival-hero__video .video-wrapper > a,
    .festival-hero__video video {
        display: block;
        height: auto;
        max-width: 100%;
        width: 100%;
    }

    .festival-hero__video .video-home-desktop {
        display: none;
    }

    .festival-hero__video .video-home-mobile {
        display: block;
    }

    .festival-hero__button {
        box-sizing: border-box;
        width: min(100%, 320px);
    }

    .festival-hero__button-face {
        padding: 15.4px clamp(19.6px, 2.8vw, 45.5px);
    }

    .festival-hero__video > .festival-hero__button {
        top: calc(100% - 72px);
    }
}

/* Interactive seven-vibes section on the Festival Experience page. */
.festival-vibes {
    background: #f8f5f0;
    display: grid;
    overflow: hidden;
    place-items: center;
    width: 100%;
}

.festival-vibes__scene {
    aspect-ratio: 1402 / 1122;
    background-color: #f8f5f0;
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    margin: 0 auto clamp(80px, 8vw, 130px);
    max-width: var(--festival-content-width);
    position: relative;
    width: calc(100% - 80px);
}

.festival-vibes__scene::before,
.festival-vibes__scene::after {
    content: none !important;
    display: none !important;
}

.festival-vibes__background {
    animation: none;
    height: 100%;
    inset: 0;
    object-fit: contain;
    opacity: 1 !important;
    pointer-events: none;
    position: absolute;
    transition: opacity 1s ease-in-out;
    user-select: none;
    width: 100%;
}

.festival-vibes__stage {
    aspect-ratio: 1387 / 1231;
    height: auto;
    left: 49.2%;
    position: absolute;
    top: calc(52.7% + 25px);
    transform: translate(-50%, -50%);
    width: 44.7%;
    z-index: 2;
}

.festival-vibes__logo,
.festival-vibes__connectors {
    height: 100%;
    inset: 0;
    pointer-events: none;
    position: absolute;
    width: 100%;
}

.festival-vibes__logo {
    filter: brightness(0) invert(1) drop-shadow(0 0 4px rgba(255, 255, 255, .35));
    opacity: 0;
    transition: opacity 1s ease-in-out;
    z-index: 1;
}

.festival-vibes__logo svg {
    display: block;
    height: 100%;
    overflow: visible;
    width: 100%;
}

.festival-vibes__logo svg,
.festival-vibes__logo svg path {
    animation: none !important;
}

.festival-vibes__logo svg path {
    fill: #fff !important;
    filter: none !important;
    opacity: 1 !important;
}

.festival-vibes__stage.is-logo-visible .festival-vibes__logo {
    opacity: 1;
}

.festival-vibes__connectors { overflow: visible; z-index: 1; }

.festival-vibes__center {
    align-items: center;
    background: radial-gradient(circle at 50% 42%, rgba(5, 56, 61, .78), rgba(8, 104, 108, .72) 52%, rgba(24, 190, 184, .78));
    border-radius: 50%;
    display: flex;
    height: auto;
    justify-content: center;
    left: 50%;
    opacity: 0;
    position: absolute;
    top: calc(44% - 3px);
    transform: translate(-50%, -50%) scale(.96);
    transition: opacity 1s ease, transform 1s ease;
    width: 56.32%;
    aspect-ratio: 1;
    z-index: 2;
}

.festival-vibes__copy {
    color: #fff;
    opacity: 0;
    position: absolute;
    text-align: center;
    transition: opacity 1s ease;
    width: 82%;
}

.festival-vibes__copy h2 {
    color: #fff;
    font-size: clamp(13.5px, 1.701vw, 28.35px);
    letter-spacing: .04em;
    line-height: 1;
    margin: 0 0 .28em;
    text-transform: uppercase;
}

.festival-vibes__copy p {
    color: #fff;
    font-size: clamp(9.6px, 1.2vw, 20.4px);
    line-height: 1.28;
    margin: 0;
}

/* Only the parent Vibe copy fades; generic scroll reveals must not move its text. */
.festival-vibes__copy h2,
.festival-vibes__copy p {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
}

.festival-vibes__circle-fill {
    aspect-ratio: 1;
    background: #fff;
    border-radius: 50%;
    opacity: 0;
    pointer-events: none;
    position: absolute;
    transform: translate(-50%, -50%) scale(.92);
    transition: opacity var(--festival-circle-fade-duration, 220ms) ease-in-out,
                transform var(--festival-circle-fade-duration, 220ms) ease-in-out;
    width: 17.3%;
    z-index: 0;
}

.festival-vibes__circle-fill.is-active {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
}

.festival-vibes .circle-fill-1 { left: 20.84%; top: 10.4%; }
.festival-vibes .circle-fill-2 { left: 8.94%; top: 43.62%; }
.festival-vibes .circle-fill-3 { left: 20.84%; top: 76.36%; }
.festival-vibes .circle-fill-4 { left: 50.04%; top: 90.01%; }
.festival-vibes .circle-fill-5 { left: 79.31%; top: 76.36%; }
.festival-vibes .circle-fill-6 { left: 91.2%; top: 43.62%; }
.festival-vibes .circle-fill-7 { left: 79.38%; top: 10.4%; }

.festival-vibes__connector,
.festival-vibes__circle,
.festival-vibes__symbol {
    opacity: 0;
    pointer-events: none;
    position: absolute;
    transition: opacity var(--festival-circle-fade-duration, 220ms) ease-in-out,
                transform var(--festival-circle-fade-duration, 220ms) ease-in-out;
}

.festival-vibes__circle {
    aspect-ratio: 1;
    border: clamp(2px, .25vw, 4px) solid #27d3cc;
    border-radius: 50%;
    box-sizing: border-box;
    transform: translate(-50%, -50%) scale(.92);
    width: 17.3%;
    z-index: 3;
}

.festival-vibes__symbol {
    aspect-ratio: 1;
    color: #27d3cc;
    fill: none;
    filter: none !important;
    height: 12%;
    overflow: visible;
    stroke: #27d3cc;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 8;
    transform: translate(-50%, -50%);
    width: 12%;
    z-index: 4;
}

.festival-vibes__symbol > path,
.festival-vibes__symbol > circle {
    fill: none !important;
    stroke: #27d3cc !important;
    stroke-linecap: round;
    stroke-linejoin: round;
    shape-rendering: geometricPrecision;
    stroke-width: 8;
    vector-effect: none !important;
    opacity: 1 !important;
    animation: none !important;
    filter: none !important;
}

.festival-vibes__connector {
    animation: festival-connector-flow .9s linear infinite;
    filter: drop-shadow(0 0 5px rgba(39, 211, 204, .9));
    stroke: #27d3cc;
    stroke-dasharray: 7 5;
    stroke-linecap: round;
    stroke-width: 2.2;
    vector-effect: non-scaling-stroke;
}

@keyframes festival-connector-flow { to { stroke-dashoffset: -16; } }

.festival-vibes .circle-1, .festival-vibes .symbol-1 { left: 20.84%; top: 10.4%; }
.festival-vibes .circle-2, .festival-vibes .symbol-2 { left: 8.94%; top: 43.62%; }
.festival-vibes .circle-3, .festival-vibes .symbol-3 { left: 20.84%; top: 76.36%; }
.festival-vibes .circle-4, .festival-vibes .symbol-4 { left: 50.04%; top: 90.01%; }
.festival-vibes .circle-5, .festival-vibes .symbol-5 { left: 79.31%; top: 76.36%; }
.festival-vibes .circle-6, .festival-vibes .symbol-6 { left: 91.2%; top: 43.62%; }
.festival-vibes .circle-7, .festival-vibes .symbol-7 { left: 79.38%; top: 10.4%; }

.festival-vibes__stage.has-active-vibe .festival-vibes__center {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
}

.festival-vibes__connector.is-active,
.festival-vibes__copy.is-active,
.festival-vibes__symbol.is-active {
    opacity: 1;
}

.festival-vibes__circle.is-active {
    filter: drop-shadow(0 0 9px rgba(39, 211, 204, .85));
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
}

.festival-vibes__symbol.is-active {
    filter: none !important;
    transform: translate(-50%, -50%);
}

@media (prefers-reduced-motion: reduce) {
    .festival-vibes__background { animation: none; opacity: 1; }
    .festival-vibes__connector { animation: none; }
}

@media (max-width: 800px) {
    .festival-vibes__scene {
        aspect-ratio: 660 / 819;
        background-size: contain;
        margin-bottom: 70px;
        width: 100%;
    }

    .festival-vibes__stage {
        height: auto;
        left: 48.65%;
        top: 54.2%;
        width: 70.8%;
    }

    .festival-vibes__logo {
        transform: none;
    }

    .festival-vibes__copy h2 { font-size: clamp(14px, 4.1vw, 22px); }
    .festival-vibes__copy p { font-size: clamp(10px, 2.9vw, 17px); line-height: 1.28; }

    .festival-vibes__symbol,
    .festival-vibes__symbol.is-active,
    .festival-vibes__circle,
    .festival-vibes__circle.is-active,
    .festival-vibes__connector {
        box-shadow: none !important;
        filter: none !important;
        text-shadow: none !important;
    }
}

/* Festival Experience chapters. */
.festival-story {
    --story-ink: #4d3b30;
    --story-muted: #4d3b30;
    background: #f8f5f0;
    color: var(--story-ink) !important;
    font-family: "Poppins", sans-serif;
    text-align: left;
}
.festival-story * { box-sizing: border-box; color: inherit !important; }
.festival-story h2, .festival-story h3 { font-family: "Poppins", sans-serif; }
.festival-story .festival-story__community { color: #fff !important; }
.festival-story h2, .festival-story h3, .festival-story p { color: inherit; }
.festival-story h2 {
    font-size: clamp(25.92px, 3.321vw, 51.84px);
    font-weight: 500;
    letter-spacing: -.045em;
    line-height: 1.12;
    margin: 0 0 15px;
    text-transform: none;
}
.festival-story h3 { font-size: 23px; font-weight: 500; line-height: 1.3; margin: 24px 0 12px; }
.festival-story p { font-size: 16px; line-height: 1.85; margin: 0 0 20px; }
.festival-story .festival-story__eyebrow {
    color: #69765e !important;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .2em;
    line-height: 1.6;
    margin: 0 0 24px;
    text-transform: uppercase;
}
.festival-story section[id] { scroll-margin-top: 70px; }
.festival-story__intro,
.festival-story__chapter,
.festival-story__discover,
.festival-story__discover-grid,
.festival-story__discover-grid > article,
.festival-story__values,
.festival-story__values-grid > div,
.festival-story__next {
    background: #f8f5f0;
}
.festival-story__intro, .festival-story__discover, .festival-story__values, .festival-story__next {
    margin: 0 auto;
    max-width: var(--festival-content-width);
    padding: 110px 60px;
}
.festival-story__intro { max-width: var(--festival-content-width); text-align: center; }
.festival-story .festival-story__lead { color: var(--story-muted); font-size: clamp(18px, 2vw, 21px); margin: 0 auto; max-width: 730px; }
.festival-story__nav { display: flex; float: none; flex-wrap: wrap; gap: 16px 28px; justify-content: center; margin-top: 42px; width: 100%; }
.festival-story__nav a { border-bottom: 1px solid #bac2b5; color: var(--story-ink); font-size: 13px; padding-bottom: 7px; }
.festival-story__chapter { align-items: center; display: grid; gap: 7%; grid-template-columns: 1.1fr 1fr; margin: 0 auto; max-width: var(--festival-content-width); padding: 45px 60px 85px; }
.festival-story__chapter--reverse .festival-story__image { order: 2; }
.festival-story__image { margin: 0; min-width: 0; position: relative; }
.festival-story__image img { aspect-ratio: 4 / 5; display: block; height: auto; object-fit: cover; width: 100%; }
.festival-story__image figcaption { color: var(--story-muted); font-size: 11px; line-height: 1.6; margin-top: 14px; }
.festival-story__copy p { color: var(--story-muted); }
.festival-story__link { align-items: center; border-bottom: 1px solid currentColor; color: inherit; display: inline-flex; font-size: 14px; gap: 28px; margin-top: 14px; padding-bottom: 10px; }
.festival-story a { text-decoration: none; transition: color 180ms ease; }
.festival-story a:hover { color: #aa6b31; }
.festival-story a:focus-visible { outline: 2px solid currentColor; outline-offset: 6px; }
.festival-story__discover { border-top: 0; }
.festival-story__section-heading { margin-bottom: 50px; max-width: 690px; }
.festival-story__section-heading > p:last-child { color: var(--story-muted); }
.festival-story__discover-grid { display: grid; gap: 30px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.festival-story__discover-grid img { aspect-ratio: 4 / 5; display: block; height: auto; object-fit: cover; width: 100%; }
.festival-story__discover-grid article:nth-child(2) { padding-top: 65px; }
.festival-story__discover-grid article p { color: var(--story-muted); font-size: 14px; }
.festival-story__community { background: #0c2425; color: #fff; isolation: isolate; min-height: 650px; padding: 120px max(60px, calc((100vw - var(--festival-content-width)) / 2)); position: relative; }
.festival-story__community > img { height: 100%; inset: 0; object-fit: cover; position: absolute; width: 100%; z-index: -2; }
.festival-story__community::before { background: linear-gradient(90deg, rgba(5, 25, 26, .94), rgba(5, 25, 26, .58) 55%, rgba(5, 25, 26, .15)); content: ""; inset: 0; position: absolute; z-index: -1; }
.festival-story__community-copy { max-width: 550px; }
.festival-story__community .festival-story__eyebrow { color: #c2d9be; }
.festival-story__values-grid { display: grid; gap: 35px; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.festival-story__values-grid > div { border-top: 1px solid #bcc4b7; padding-top: 22px; }
.festival-story__values-grid span { color: #8a7553; font-size: 12px; }
.festival-story__values-grid p { color: var(--story-muted); font-size: 14px; }
.festival-story__location {
    --location-copy-space: 0px;
    background: #f8f5f0;
    isolation: isolate;
    position: relative;
    min-height: calc(var(--location-copy-space) + 150vw);
    padding: 0;
    text-align: left;
    width: 100%;
}
@media (min-width: 1001px) {
    .festival-story__location {
        --location-copy-space: 100px;
        min-height: calc(var(--location-copy-space) + 124.02vw);
    }
}
.festival-story__location::before {
    background-color: #f8f5f0;
    background-image: var(--festival-location-image, none);
    background-position: center top;
    background-repeat: no-repeat;
    background-size: 100% auto;
    content: "";
    inset: var(--location-copy-space) 0 0;
    pointer-events: none;
    opacity: 1;
    position: absolute;
    z-index: -1;
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201440%20120%22%20preserveAspectRatio%3D%22none%22%3E%0A%20%20%3Cdefs%3E%0A%20%20%20%20%3Cpath%20id%3D%22edge%22%20d%3D%22M0%2042%20L13%2046%2019%2039%2027%2043%2034%2032%2043%2037%2051%2034%2060%2046%2071%2042%2080%2053%2094%2048%20102%2056%20112%2050%20126%2054%20137%2042%20145%2047%20157%2035%20169%2040%20176%2032%20188%2037%20198%2024%20207%2031%20219%2028%20230%2038%20238%2034%20251%2044%20261%2039%20270%2049%20285%2043%20295%2048%20308%2035%20319%2038%20331%2029%20339%2036%20352%2031%20363%2042%20377%2038%20386%2050%20396%2044%20410%2054%20423%2049%20435%2061%20447%2057%20455%2064%20469%2058%20479%2061%20492%2048%20505%2053%20516%2042%20528%2047%20537%2034%20547%2040%20560%2033%20571%2039%20582%2027%20594%2034%20604%2029%20618%2041%20630%2035%20640%2045%20651%2040%20664%2049%20675%2043%20687%2053%20699%2047%20711%2055%20724%2049%20735%2058%20747%2051%20759%2056%20770%2044%20782%2049%20794%2036%20807%2040%20816%2028%20828%2033%20840%2024%20850%2030%20864%2026%20873%2037%20887%2032%20896%2044%20909%2038%20920%2047%20932%2041%20945%2052%20958%2047%20968%2059%20981%2052%20993%2057%201005%2044%201016%2049%201027%2037%201040%2042%201051%2029%201063%2035%201073%2025%201087%2031%201099%2023%201112%2036%201124%2030%201136%2042%201148%2036%201158%2046%201170%2041%201184%2051%201195%2045%201208%2056%201219%2050%201231%2059%201243%2052%201256%2057%201267%2046%201279%2050%201291%2039%201304%2044%201315%2031%201327%2036%201337%2027%201350%2032%201363%2024%201374%2035%201386%2029%201398%2040%201410%2034%201422%2045%201432%2038%201440%2042%20V140%20H0Z%22%2F%3E%0A%20%20%3C%2Fdefs%3E%0A%20%20%3Cuse%20href%3D%22%23edge%22%20fill%3D%22white%22%20opacity%3D%22.14%22%20transform%3D%22translate%280%20-16%29%22%2F%3E%0A%20%20%3Cuse%20href%3D%22%23edge%22%20fill%3D%22white%22%20opacity%3D%22.3%22%20transform%3D%22translate%280%20-8%29%22%2F%3E%0A%20%20%3Cuse%20href%3D%22%23edge%22%20fill%3D%22white%22%2F%3E%0A%20%20%3Cg%20fill%3D%22white%22%20opacity%3D%22.35%22%3E%0A%20%20%20%20%3Ccircle%20cx%3D%22153%22%20cy%3D%2219%22%20r%3D%223%22%2F%3E%3Ccircle%20cx%3D%22402%22%20cy%3D%2231%22%20r%3D%222%22%2F%3E%0A%20%20%20%20%3Ccircle%20cx%3D%22594%22%20cy%3D%2214%22%20r%3D%222.5%22%2F%3E%3Ccircle%20cx%3D%22754%22%20cy%3D%2232%22%20r%3D%223%22%2F%3E%0A%20%20%20%20%3Ccircle%20cx%3D%221050%22%20cy%3D%2215%22%20r%3D%222%22%2F%3E%3Ccircle%20cx%3D%221240%22%20cy%3D%2234%22%20r%3D%223%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E%0A"), linear-gradient(#000, #000);
    mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201440%20120%22%20preserveAspectRatio%3D%22none%22%3E%0A%20%20%3Cdefs%3E%0A%20%20%20%20%3Cpath%20id%3D%22edge%22%20d%3D%22M0%2042%20L13%2046%2019%2039%2027%2043%2034%2032%2043%2037%2051%2034%2060%2046%2071%2042%2080%2053%2094%2048%20102%2056%20112%2050%20126%2054%20137%2042%20145%2047%20157%2035%20169%2040%20176%2032%20188%2037%20198%2024%20207%2031%20219%2028%20230%2038%20238%2034%20251%2044%20261%2039%20270%2049%20285%2043%20295%2048%20308%2035%20319%2038%20331%2029%20339%2036%20352%2031%20363%2042%20377%2038%20386%2050%20396%2044%20410%2054%20423%2049%20435%2061%20447%2057%20455%2064%20469%2058%20479%2061%20492%2048%20505%2053%20516%2042%20528%2047%20537%2034%20547%2040%20560%2033%20571%2039%20582%2027%20594%2034%20604%2029%20618%2041%20630%2035%20640%2045%20651%2040%20664%2049%20675%2043%20687%2053%20699%2047%20711%2055%20724%2049%20735%2058%20747%2051%20759%2056%20770%2044%20782%2049%20794%2036%20807%2040%20816%2028%20828%2033%20840%2024%20850%2030%20864%2026%20873%2037%20887%2032%20896%2044%20909%2038%20920%2047%20932%2041%20945%2052%20958%2047%20968%2059%20981%2052%20993%2057%201005%2044%201016%2049%201027%2037%201040%2042%201051%2029%201063%2035%201073%2025%201087%2031%201099%2023%201112%2036%201124%2030%201136%2042%201148%2036%201158%2046%201170%2041%201184%2051%201195%2045%201208%2056%201219%2050%201231%2059%201243%2052%201256%2057%201267%2046%201279%2050%201291%2039%201304%2044%201315%2031%201327%2036%201337%2027%201350%2032%201363%2024%201374%2035%201386%2029%201398%2040%201410%2034%201422%2045%201432%2038%201440%2042%20V140%20H0Z%22%2F%3E%0A%20%20%3C%2Fdefs%3E%0A%20%20%3Cuse%20href%3D%22%23edge%22%20fill%3D%22white%22%20opacity%3D%22.14%22%20transform%3D%22translate%280%20-16%29%22%2F%3E%0A%20%20%3Cuse%20href%3D%22%23edge%22%20fill%3D%22white%22%20opacity%3D%22.3%22%20transform%3D%22translate%280%20-8%29%22%2F%3E%0A%20%20%3Cuse%20href%3D%22%23edge%22%20fill%3D%22white%22%2F%3E%0A%20%20%3Cg%20fill%3D%22white%22%20opacity%3D%22.35%22%3E%0A%20%20%20%20%3Ccircle%20cx%3D%22153%22%20cy%3D%2219%22%20r%3D%223%22%2F%3E%3Ccircle%20cx%3D%22402%22%20cy%3D%2231%22%20r%3D%222%22%2F%3E%0A%20%20%20%20%3Ccircle%20cx%3D%22594%22%20cy%3D%2214%22%20r%3D%222.5%22%2F%3E%3Ccircle%20cx%3D%22754%22%20cy%3D%2232%22%20r%3D%223%22%2F%3E%0A%20%20%20%20%3Ccircle%20cx%3D%221050%22%20cy%3D%2215%22%20r%3D%222%22%2F%3E%3Ccircle%20cx%3D%221240%22%20cy%3D%2234%22%20r%3D%223%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E%0A"), linear-gradient(#000, #000);
    -webkit-mask-size: 100% 120px, 100% calc(100% - 119px);
    mask-size: 100% 120px, 100% calc(100% - 119px);
    -webkit-mask-position: top, bottom;
    mask-position: top, bottom;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-image: none;
    mask-image: none;
}
.festival-story__location::after {
    content: none;
}
@media (max-width: 1000px) {
    .festival-story__location::before {
        background-image: url("../img/festival/elements/seven-vibes-journey-festival-location-mobile.jpg");
    }
}
.festival-story__location-copy {
    background: linear-gradient(to bottom, rgba(248, 245, 240, 1) 0%, rgba(248, 245, 240, 0) 100%);
    box-sizing: border-box;
    left: 0;
    margin: 0;
    max-width: none;
    padding: 32px 40px 90px;
    position: absolute;
    text-align: center;
    top: clamp(40px, calc(8vw - 30px), 100px);
    transform: none;
    width: 100%;
    z-index: 1;
}
.festival-story__location-copy p:not(.festival-story__eyebrow) {
    margin-top: 0;
    margin-left: auto;
    margin-right: auto;
    max-width: 760px;
}
.festival-story__location-copy h2 {
    margin-bottom: 15px;
}
.festival-story__location-copy p:not(.festival-story__eyebrow) { font-size: var(--festival-section-description-size); }
.festival-story__next { border-top: 1px solid #d7d9cf; text-align: center; }
.festival-story__next > p:not(.festival-story__eyebrow) { color: var(--story-muted); margin: 0 auto 38px; max-width: 580px; }
.festival-story__next-links { display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; }
.festival-story__next-links a { border: 1px solid #adb9a8; border-radius: 999px; color: var(--story-ink); display: inline-flex; font-size: 13px; gap: 24px; padding: 18px 25px; }
@media (max-width: 900px) {
    .festival-story__chapter { gap: 35px; padding: 30px 30px 65px; }
    .festival-story__intro, .festival-story__discover, .festival-story__values, .festival-story__next { padding: 75px 30px; }
    .festival-story__community { padding: 85px 30px; }
    .festival-story__values-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
    .festival-story__intro, .festival-story__discover, .festival-story__values, .festival-story__next { padding: 65px 22px; }
    .festival-story__chapter { gap: 30px; grid-template-columns: 1fr; padding: 20px 22px 65px; }
    .festival-story__chapter--reverse .festival-story__image { order: 0; }
    .festival-story__image img { aspect-ratio: 5 / 4; }
    .festival-story__discover-grid { gap: 35px; grid-template-columns: 1fr; }
    .festival-story__discover-grid img { aspect-ratio: 5 / 4; }
    .festival-story__discover-grid article:nth-child(2) { padding-top: 0; }
    .festival-story__community { min-height: 560px; padding: 80px 22px; }
    .festival-story__community::before { background: rgba(5, 25, 26, .75); }
    .festival-story__values-grid { gap: 25px; }
    .festival-story__values-grid h3 { font-size: 19px; }
    .festival-story__next-links { flex-direction: column; }
    .festival-story__next-links a { justify-content: space-between; }
}

/* Organic image edges for Follow your curiosity. */
.shape-1 {
    clip-path: polygon(100% 7.118%,100% 7.118%,100.009% 6.545%,100.014% 6.027%,100.01% 5.563%,99.994% 5.147%,99.962% 4.776%,99.909% 4.445%,99.834% 4.152%,99.731% 3.892%,99.596% 3.662%,99.427% 3.457%,99.427% 3.457%,99.227% 3.28%,98.998% 3.137%,98.738% 3.021%,98.442% 2.931%,98.106% 2.861%,97.728% 2.808%,97.302% 2.768%,96.826% 2.737%,96.296% 2.712%,95.707% 2.687%,28.73% .013%,28.73% .013%,28.684% .011%,28.643% .009%,28.606% .008%,28.572% .007%,28.541% .006%,28.513% .005%,28.486% .005%,28.461% .005%,28.436% .005%,28.412% .005%,28.412% .005%,28.389% .006%,28.364% .008%,28.339% .009%,28.312% .011%,28.284% .013%,28.253% .016%,28.219% .019%,28.182% .023%,28.141% .027%,28.096% .031%,4.056% 2.397%,4.056% 2.397%,3.507% 2.451%,3.011% 2.504%,2.567% 2.559%,2.17% 2.619%,1.816% 2.689%,1.504% 2.771%,1.228% 2.871%,.985% 2.991%,.773% 3.136%,.587% 3.309%,.587% 3.309%,.431% 3.508%,.306% 3.729%,.209% 3.976%,.137% 4.254%,.086% 4.566%,.053% 4.915%,.034% 5.306%,.027% 5.743%,.026% 6.228%,.03% 6.766%,.684% 94.622%,.684% 94.622%,.689% 95.177%,.697% 95.678%,.712% 96.127%,.738% 96.53%,.777% 96.889%,.835% 97.208%,.915% 97.492%,1.019% 97.744%,1.153% 97.967%,1.32% 98.166%,1.32% 98.166%,1.516% 98.337%,1.739% 98.477%,1.992% 98.59%,2.28% 98.68%,2.605% 98.751%,2.971% 98.806%,3.383% 98.849%,3.844% 98.884%,4.357% 98.915%,4.926% 98.944%,25.504% 100%,94.06% 98.866%,94.06% 98.866%,94.643% 98.856%,95.169% 98.843%,95.642% 98.823%,96.064% 98.794%,96.441% 98.75%,96.775% 98.689%,97.071% 98.606%,97.333% 98.498%,97.564% 98.362%,97.768% 98.192%,97.768% 98.192%,97.942% 97.993%,98.082% 97.769%,98.193% 97.514%,98.278% 97.226%,98.341% 96.9%,98.386% 96.533%,98.416% 96.122%,98.436% 95.662%,98.45% 95.15%,98.46% 94.582%,100% 7.118%);
}
.shape-2 {
    clip-path: polygon(.19% 13.678%,.19% 13.678%,.166% 12.223%,.15% 10.912%,.148% 9.734%,.166% 8.68%,.21% 7.74%,.286% 6.904%,.4% 6.163%,.557% 5.506%,.763% 4.924%,1.023% 4.407%,1.023% 4.407%,1.334% 3.965%,1.688% 3.606%,2.091% 3.322%,2.551% 3.103%,3.071% 2.937%,3.658% 2.817%,4.318% 2.732%,5.057% 2.673%,5.88% 2.629%,6.794% 2.591%,71.664% 0,93.642% 2.163%,93.642% 2.163%,94.511% 2.25%,95.295% 2.337%,95.997% 2.435%,96.625% 2.552%,97.184% 2.697%,97.679% 2.882%,98.116% 3.114%,98.5% 3.403%,98.837% 3.759%,99.133% 4.192%,99.133% 4.192%,99.382% 4.693%,99.58% 5.254%,99.733% 5.885%,99.847% 6.596%,99.926% 7.396%,99.976% 8.294%,100.003% 9.299%,100.012% 10.423%,100.009% 11.672%,100% 13.059%,99.439% 88.406%,99.439% 88.406%,99.427% 89.799%,99.411% 91.056%,99.385% 92.184%,99.343% 93.194%,99.279% 94.094%,99.187% 94.894%,99.062% 95.603%,98.899% 96.231%,98.691% 96.786%,98.432% 97.278%,98.432% 97.278%,98.128% 97.7%,97.784% 98.042%,97.393% 98.316%,96.95% 98.528%,96.45% 98.69%,95.886% 98.811%,95.253% 98.899%,94.545% 98.963%,93.756% 99.014%,92.881% 99.061%,74.573% 100%,8.209% 98.902%,8.209% 98.902%,7.329% 98.886%,6.536% 98.862%,5.824% 98.822%,5.186% 98.756%,4.618% 98.654%,4.113% 98.509%,3.666% 98.31%,3.27% 98.049%,2.92% 97.716%,2.61% 97.302%,2.61% 97.302%,2.344% 96.815%,2.129% 96.264%,1.958% 95.638%,1.825% 94.93%,1.725% 94.128%,1.651% 93.226%,1.599% 92.212%,1.561% 91.079%,1.532% 89.817%,1.506% 88.416%,.19% 13.678%);
}
.shape-3 {
    clip-path: polygon(100% 86.322%,100% 86.322%,100.025% 87.776%,100.041% 89.088%,100.042% 90.265%,100.024% 91.32%,99.98% 92.26%,99.904% 93.096%,99.79% 93.837%,99.633% 94.494%,99.427% 95.076%,99.166% 95.593%,99.166% 95.593%,98.855% 96.035%,98.501% 96.393%,98.097% 96.678%,97.637% 96.897%,97.116% 97.063%,96.528% 97.183%,95.867% 97.268%,95.128% 97.327%,94.303% 97.371%,93.389% 97.409%,28.445% 100%,6.441% 97.837%,6.441% 97.837%,5.571% 97.75%,4.787% 97.663%,4.083% 97.565%,3.455% 97.448%,2.895% 97.303%,2.4% 97.118%,1.962% 96.886%,1.578% 96.597%,1.24% 96.241%,.944% 95.808%,.944% 95.808%,.695% 95.307%,.496% 94.746%,.343% 94.114%,.23% 93.404%,.151% 92.604%,.1% 91.706%,.073% 90.7%,.064% 89.577%,.067% 88.327%,.076% 86.941%,.638% 11.594%,.638% 11.594%,.65% 10.2%,.666% 8.944%,.692% 7.816%,.734% 6.806%,.798% 5.906%,.89% 5.106%,1.015% 4.397%,1.179% 3.769%,1.387% 3.214%,1.646% 2.721%,1.646% 2.721%,1.95% 2.3%,2.295% 1.957%,2.686% 1.684%,3.129% 1.471%,3.631% 1.309%,4.195% 1.189%,4.829% 1.101%,5.538% 1.036%,6.327% .986%,7.203% .939%,25.533% 0,91.972% 1.098%,91.972% 1.098%,92.853% 1.114%,93.647% 1.137%,94.36% 1.178%,94.998% 1.244%,95.567% 1.346%,96.073% 1.491%,96.521% 1.69%,96.917% 1.951%,97.267% 2.284%,97.578% 2.698%,97.578% 2.698%,97.843% 3.184%,98.059% 3.736%,98.23% 4.361%,98.363% 5.07%,98.464% 5.871%,98.537% 6.774%,98.59% 7.788%,98.628% 8.921%,98.657% 10.183%,98.683% 11.583%,100% 86.322%);
}

/* Horizontally scrollable curiosity cards: 3½ desktop, 2½ mobile. */
.festival-story .festival-story__discover {
    max-width: none;
    padding-left: 0;
    padding-right: 0;
}
.festival-story__discover > .festival-story__section-heading {
    box-sizing: border-box;
    margin-left: auto;
    margin-right: auto;
    max-width: var(--festival-content-width);
    padding: 0 60px;
}
.festival-story__discover-grid {
    --curiosity-gap: 24px;
    display: flex;
    gap: var(--curiosity-gap);
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scrollbar-width: none;
    scroll-snap-type: x mandatory;
    padding-bottom: 8px;
}
.festival-story__discover-grid::-webkit-scrollbar { display: none; }
.festival-story__discover-grid > article {
    flex: 0 0 calc((100% - 3 * var(--curiosity-gap)) / 3.5);
    min-width: 0;
    scroll-snap-align: start;
}
.festival-story__discover-grid article:nth-child(2) { padding-top: 0; }
.festival-story__discover-grid img { aspect-ratio: 4 / 5; }
.festival-story__discover-grid article h3,
.festival-story__discover-grid article p { padding: 0 12px; }
.festival-curiosity-controls {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    margin-top: 24px;
}
.festival-curiosity-controls button {
    background: transparent;
    border: 1px solid #aebbb0;
    border-radius: 20px;
    cursor: pointer;
    font: inherit;
    font-size: 14px;
    min-width: 44px;
    min-height: 44px;
    padding: 8px 16px;
}
.festival-curiosity-controls button:hover { background: #e4e9df; }
.festival-curiosity-controls button:focus-visible,
.festival-story__discover-grid:focus-visible { outline: 2px solid #173735; outline-offset: -3px; }
@media (max-width: 900px) {
    .festival-story__discover > .festival-story__section-heading { padding: 0 30px; }
}
@media (max-width: 768px) {
    .festival-story__discover-grid { --curiosity-gap: 12px; }
    .festival-story__discover-grid > article { flex-basis: calc((100% - 2 * var(--curiosity-gap)) / 2.5); }
    .festival-story__discover-grid article h3 { font-size: 17px; margin-top: 16px; }
    .festival-story__discover-grid article p { font-size: 13px; line-height: 1.6; }
    .festival-story__discover-grid article h3,
    .festival-story__discover-grid article p { padding: 0 6px; }
}
@media (max-width: 600px) {
    .festival-story__discover > .festival-story__section-heading { padding: 0 22px; }
}

/* Festival landing-page sections. */
.festival-story__about,
.festival-story__feature,
.festival-story__travel,
.festival-story__volunteer,
.festival-story__ticket,
.festival-story__newsletter {
    background: #f8f5f0;
    box-sizing: border-box;
    color: #4d3b30 !important;
}

.site-category--festival .festival-story__about {
    align-items: center;
    display: grid;
    gap: clamp(40px, 7vw, 100px);
    grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
    margin: 0 auto;
    max-width: var(--festival-content-width);
    padding: clamp(90px, 10vw, 155px) 60px;
    width: calc(100% - 80px);
}

.festival-story__about-copy { max-width: 620px; }
.festival-story__meta {
    color: #69765e !important;
    font-family: "Poppins", sans-serif;
    font-size: 16px !important;
    font-weight: 400;
    letter-spacing: .02em;
    text-transform: none;
}

.festival-story__placeholder {
    align-items: center;
    aspect-ratio: 4 / 5;
    background: transparent;
    border: 1px dashed #9ca99a;
    color: #69765e !important;
    display: flex;
    flex-direction: column;
    gap: 10px;
    justify-content: center;
    min-height: 340px;
    padding: 30px;
    text-align: center;
}

.festival-story__placeholder--landscape { aspect-ratio: 4 / 3; }
.festival-story__placeholder span { font-size: 13px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.festival-story__placeholder small { font-size: 12px; line-height: 1.6; max-width: 360px; }
.festival-story__example-image {
    border: 0;
    display: block;
    height: auto;
    object-fit: cover;
    padding: 0;
    width: 100%;
}

.site-category--festival .festival-experience .festival-vibes__intro {
    background: #f8f5f0;
    color: #4d3b30 !important;
    padding: clamp(68px, 7.2vw, 112px) 24px 0;
    position: relative;
    text-align: center;
    top: auto;
    z-index: 1;
}

.site-category--festival .festival-experience .festival-vibes__intro h2 {
    color: #4d3b30 !important;
    font-family: "Poppins", sans-serif;
    font-size: clamp(25.92px, 3.321vw, 51.84px);
    font-weight: 500;
    letter-spacing: -.045em;
    line-height: 1.08;
    margin: 0 auto 8px;
    max-width: 950px;
    text-transform: none;
}

.site-category--festival .festival-experience .festival-vibes__intro > p:last-child { color: #4d3b30 !important; font-size: var(--festival-section-description-size); line-height: var(--festival-section-description-line-height); margin: 0 auto; max-width: 790px; }

@media (min-width: 801px) {
    .festival-story h2,
    .site-category--festival .festival-experience .festival-vibes__intro h2 {
        font-size: clamp(25.92px, 3.321vw, 51.84px);
    }
}

.festival-story__feature {
    align-items: center;
    display: grid;
    gap: clamp(40px, 7vw, 100px);
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin: 0 auto;
    max-width: var(--festival-content-width);
    min-height: 0;
    padding: clamp(80px, 9vw, 140px) 60px;
}

.festival-story .festival-story__community {
    background: #f8f5f0;
    color: #4d3b30 !important;
    gap: clamp(10px, calc(7vw - 30px), 70px);
    grid-template-columns: 1fr;
    isolation: auto;
    z-index: 3;
    min-height: 0;
    padding: clamp(80px, 9vw, 140px) 60px;
}

.festival-story__community::before { content: none; display: none; }
.festival-story__community > .festival-story__community-media {
    height: auto;
    inset: auto;
    order: 0;
    position: relative;
    width: 100%;
    z-index: auto;
}
.festival-story__community-media {
    min-width: 0;
    overflow: hidden;
    width: 100%;
}
.festival-story__community-media > picture {
    display: block;
    width: 100%;
}
.festival-story__community-media > picture > img {
    aspect-ratio: 1200 / 762;
    display: block;
    height: auto;
    object-fit: cover;
    position: relative;
    width: 100%;
}
@media (max-width: 1000px) {
    .festival-story__community-media > picture > img {
        aspect-ratio: 749 / 762;
    }
}
.festival-story__community-media > h2 {
    box-sizing: border-box;
    color: #fff !important;
    margin: 0;
    position: absolute;
    text-align: center;
    text-shadow: 0 2px 18px rgba(0, 0, 0, .65);
    text-transform: capitalize;
    top: clamp(24px, 5vw, 72px);
    transform: none;
    white-space: normal;
    width: 100%;
    z-index: 1;
}

.site-category--festival #festival-community-title {
    text-align: center !important;
    text-transform: capitalize !important;
}
.festival-story__community .festival-story__feature-copy {
    max-width: none;
    order: 1;
    text-align: center;
    width: 100%;
}
.festival-story__feature-copy { max-width: 620px; }
.festival-story__feature-copy strong { font-weight: 600; }
.festival-story__program { padding-top: clamp(90px, 10vw, 150px); }
.festival-story__program--slider-hidden .festival-story__discover-grid,
.festival-story__program--slider-hidden .festival-curiosity-controls {
    display: none !important;
}
.festival-story .festival-story__program--slider-hidden {
    display: block;
    margin: 0 auto;
    max-width: var(--festival-content-width);
    padding: clamp(80px, 9vw, 140px) 60px;
}
.festival-story__program--slider-hidden > .festival-story__section-heading {
    margin: 0 0 clamp(45px, 6vw, 85px);
    max-width: none;
    padding: 0;
}
.festival-story__right-element {
    display: block;
    height: auto;
    max-width: 100%;
    width: auto;
}
.festival-story__left-element {
    display: block;
    height: auto;
    max-width: 100%;
    width: auto;
}
.festival-story__left-element-anchor,
.festival-story__right-element-anchor {
    height: 0;
    pointer-events: none;
    position: relative;
    width: 100%;
    z-index: 2;
}
.festival-story__left-element-anchor .festival-story__left-element {
    left: 0;
    max-height: min(80vh, 864px);
    max-width: min(32vw, 430px);
    position: absolute;
    top: 0;
    transform: translateY(calc(-50% - 65px));
}
.festival-story__right-element-anchor .festival-story__right-element {
    max-height: min(80vh, 864px);
    position: absolute;
    right: 0;
    top: 0;
    transform: translateY(calc(-50% + 130px));
}
.festival-story__community > *,
.festival-story__stay > *,
.festival-story__program--slider-hidden > * {
    position: relative;
    z-index: 3;
}
.festival-story__experience-gallery {
    display: grid;
    gap: clamp(14px, 2vw, 28px);
    grid-template-columns: repeat(3, minmax(0, 1fr));
}
.festival-story__experience-gallery img {
    aspect-ratio: 1 / 1;
    display: block;
    height: auto;
    object-fit: cover;
    width: 100%;
}
.festival-story__program .festival-story__placeholder { aspect-ratio: 4 / 5; min-height: 0; width: 100%; }

.festival-story__volunteer {
    margin: 0 auto;
    max-width: var(--festival-content-width);
    padding: clamp(90px, 10vw, 150px) 60px;
}
.festival-story__volunteer > .festival-story__section-heading {
    margin-left: auto;
    margin-right: auto;
    text-align: center;
}
.festival-story__volunteer .festival-story__cta,
.festival-story__travel .festival-story__cta {
    display: inline-flex;
    margin-top: 24px;
    text-decoration: none;
}
.festival-story__travel {
    margin: 0;
    max-width: none;
    padding: clamp(90px, 10vw, 150px) 0;
}
.festival-story__travel-intro {
    align-items: center;
    display: block;
    padding-left: max(60px, calc((100vw - var(--festival-content-width)) / 2));
    padding-right: max(60px, calc((100vw - var(--festival-content-width)) / 2));
}
.festival-story__travel-intro > .festival-story__section-heading {
    margin: 0 auto;
    max-width: 850px;
    text-align: center;
}
.festival-story__travel-intro,
.festival-story__newsletter > * {
    position: relative;
    z-index: 3;
}

.festival-story__source { font-size: 12px !important; margin-top: 20px !important; text-align: right; }

.festival-volunteer-grid { display: grid; gap: 12px; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 50px; }
.festival-volunteer-grid a {
    align-items: center;
    border: 1px solid #adb9a8;
    display: flex;
    font-size: 20.16px;
    justify-content: space-between;
    min-height: 76px;
    padding: 10px 19px;
}
.festival-volunteer-grid a:hover { border-color: #27a9a2; color: #147d78 !important; }
.festival-get-involved .festival-hero {
    align-items: flex-start;
    aspect-ratio: 1239 / 1269;
    min-height: 100vh;
    padding: 150px 60px 90px;
}
.festival-get-involved .festival-hero__image {
    height: auto;
    object-fit: contain;
    object-position: center top;
}
.festival-get-involved .festival-hero__overlay {
    background: linear-gradient(to bottom, rgba(0, 0, 0, 0.35) 0%, rgba(0, 0, 0, 0) 75%);
}
.festival-get-involved .festival-hero__content {
    position: relative;
    top: auto;
    left: auto;
    transform: none;
    width: 100%;
    max-width: calc(var(--festival-content-width) - 120px);
    text-align: left;
}
.festival-get-involved .festival-hero__content p { margin-left: 0; margin-right: 0; }
@media (max-width: 1000px) {
    .festival-get-involved .festival-hero {
        padding-inline: 24px;
        aspect-ratio: auto;
        min-height: 100svh;
    }
    .festival-get-involved .festival-hero__image {
        height: 100%;
        object-fit: cover;
    }
    .festival-get-involved .festival-hero__content { max-width: none; }
}
.festival-get-involved .festival-volunteer-grid {
    margin-top: 24px;
    text-align: left;
}
.festival-get-involved .festival-volunteer-grid a {
    box-sizing: border-box;
    min-height: 0;
    background: rgba(0, 0, 0, 0.1);
    color: inherit;
    border-color: rgba(255, 255, 255, .6);
    text-decoration: none;
}
.festival-story__other-idea { margin-top: 35px !important; }
.festival-story__other-idea a { border-bottom: 1px solid currentColor; }

.festival-story__ticket,
.festival-story__newsletter {
    border-top: 1px solid #d1c9bc;
    padding: clamp(90px, 10vw, 145px) 24px;
    text-align: center;
}
.festival-story__newsletter {
    border-top: 0;
}
.festival-story .festival-story__ticket {
    border-top: 0;
    display: block;
    isolation: auto;
    max-width: none;
    padding: clamp(80px, 9vw, 140px) max(60px, calc((100vw - var(--festival-content-width)) / 2));
    position: relative;
}
.festival-story .festival-story__ticket::after {
    content: none;
    display: none;
}
.festival-story__ticket-copy {
    margin: 0 auto;
    max-width: 900px;
    position: relative;
    text-align: center;
    z-index: 3;
}
.festival-story__ticket-copy > p {
    color: #4d3b30;
    font-size: var(--festival-section-description-size);
    line-height: var(--festival-section-description-line-height);
    margin: 0 auto 34px;
    max-width: 670px;
    text-align: center;
}
.festival-story__ticket h2,
.festival-story__newsletter h2 { margin-left: auto; margin-right: auto; max-width: 900px; }
.festival-story__ticket > p:not(.festival-story__eyebrow),
.festival-story__newsletter > p:not(.festival-story__eyebrow) { color: #4d3b30; margin: 0 auto 34px; max-width: 670px; }
.festival-story__location-copy > p,
.festival-story__feature-copy > p,
.festival-story__section-heading > p,
.festival-story__ticket > p,
.festival-story__newsletter > p {
    font-size: var(--festival-section-description-size);
    font-weight: 400;
    line-height: var(--festival-section-description-line-height);
}
.festival-story__cta {
    background: transparent;
    border: 1px solid #27a9a2;
    border-radius: 999px;
    color: #4d3b30;
    cursor: pointer;
    font: inherit;
    font-size: 16.1px;
    padding: 18px 30px;
    transition: border-color 180ms ease, box-shadow 180ms ease, color 180ms ease, transform 180ms ease;
}
.festival-story__cta:hover { border-color: #27a9a2; box-shadow: inset 0 0 0 1px #27a9a2; color: #147d78; transform: scale(1.04); }
.festival-story__cta:focus-visible { outline: 2px solid #173735; outline-offset: 4px; }

@media (prefers-reduced-motion: reduce) {
    .festival-story__cta { transition: none; }
    .festival-story__cta:hover { transform: none; }
}

.festival-story .taggbox-section { background: #f8f5f0; padding-bottom: clamp(75px, 8vw, 120px); }
.festival-story .taggbox-section__heading {
    margin: 0 auto 38px;
    max-width: 1050px;
    padding: 0 24px;
    text-align: center;
}
.festival-story .taggbox-section__description { color: #4d3b30 !important; font-size: var(--festival-section-description-size); line-height: var(--festival-section-description-line-height); margin: -18px auto 38px; max-width: 720px; padding: 0 24px; text-align: center; }

@media (max-width: 800px) {
    .site-category--festival {
        --festival-section-description-size: clamp(16.32px, 4.608vw, 21.12px);
    }

    .festival-story .taggbox-section__heading {
        text-align: left;
    }

    .site-category--festival .festival-experience .festival-vibes__intro,
    .site-category--festival .festival-experience .festival-vibes__intro h2,
    .site-category--festival .festival-experience .festival-vibes__intro > p:last-child {
        text-align: left;
    }

    .festival-story h2,
    .site-category--festival .festival-experience .festival-vibes__intro h2 {
        font-size: clamp(32.90725px, 4.21636vw, 65.8168px);
    }
    .site-category--festival .festival-story__about,
    .festival-story__feature { gap: 40px; grid-template-columns: 1fr; padding: 80px 24px; }
    .site-category--festival .festival-story__about { width: calc(100% - 32px); }
    .festival-story__about-copy,
    .festival-story__feature-copy { max-width: none; }
    .festival-story .festival-story__community { padding: 80px 24px; }
    .festival-story__community-media > h2 {
        top: 40px;
        text-align: center;
    }
    .site-category--festival #festival-community-title {
        font-size: calc(clamp(42.78px, 5.4809vw, 85.56px) - 20px);
        padding-left: 5px;
        padding-right: 5px;
        text-align: center !important;
    }
    .festival-story__community .festival-story__feature-copy {
        text-align: left !important;
    }
    .festival-story .festival-story__program--slider-hidden {
        padding: 80px 24px;
    }
    .festival-story__experience-gallery {
        gap: 14px;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .image-gallery .festival-story__experience-gallery > a:last-child:nth-child(odd) {
        grid-column: 1 / -1;
    }
    .festival-story .festival-story__ticket {
        display: block;
        padding: 80px 24px;
        position: relative;
    }
    .festival-story__left-element-anchor .festival-story__left-element {
        max-height: min(70vh, 620px);
        max-width: 50vw;
    }
    .festival-story__ticket-copy {
        padding-left: 0;
        position: relative;
        text-align: left;
        z-index: 3;
    }
    .festival-story__ticket-copy > h2,
    .festival-story__ticket-copy > p {
        margin-left: 0;
        margin-right: 0;
        padding-right: 30%;
        text-align: left;
    }
    .festival-story__location-copy {
        left: 0;
        padding: 24px 24px 70px;
        position: relative;
        text-align: left;
        top: 0;
        transform: none;
        width: 100%;
    }
    .festival-experience .festival-story__location {
        --location-copy-space: clamp(140px, 40vw, 200px);
    }
    .festival-story__location-copy h2 {
        margin-bottom: 15px;
    }
    .festival-story__location-copy > p {
        margin-left: 0;
        margin-right: 0;
        text-align: left;
    }
    .festival-story__community .festival-story__placeholder { order: 0; }
    .festival-story__volunteer {
        padding: 80px 24px;
        text-align: left;
    }
    .festival-story__volunteer > .festival-story__section-heading {
        margin-left: 0;
        margin-right: 0;
        position: relative;
        text-align: left;
        z-index: 3;
    }
    .festival-story__volunteer .festival-volunteer-grid a,
    .festival-story__volunteer .festival-story__other-idea {
        text-align: left;
    }
    .festival-story__travel { padding: 80px 0; }
    .festival-story__travel-intro {
        display: grid;
        grid-template-columns: 1fr;
        padding-left: 24px;
        padding-right: 24px;
    }
    .festival-story__right-element-anchor .festival-story__right-element {
        max-height: 65vh;
        max-width: 48vw;
        right: 0;
    }
    .festival-volunteer-grid { grid-template-columns: 1fr; }
}

/* Festival2 desktop uses the same navigation rules and logo sizing as City. */
@media (min-width: 1001px) {
    .site-header--festival .brand a {
        align-items: flex-start;
        display: flex;
        height: 60px;
        padding: 14px 0 0 18px;
        top: 0;
    }
    .site-header--festival .brand img {
        left: 0;
        top: 0;
        width: 200px;
    }
    .site-header--festival .sticky.small .brand a {
        height: 30px;
        padding: 6px 0 0 10px;
        top: 0;
    }
    .site-header--festival .sticky.small .brand img {
        left: 0;
        top: 0;
        width: 110px;
    }
    .site-header--festival .festival-menu-socials { display: none !important; }
}

@media (min-width: 1001px) {
    /* Reserve the same logo space as City when Festival has more links. */
    .site-header--festival .nav-container > nav {
        float: right;
        max-width: calc(100% - 230px);
    }
    .site-header--festival .nav-list {
        display: flex !important;
        flex-wrap: wrap;
        justify-content: flex-end;
        margin: 0;
        padding: 0;
    }
    .site-header--festival .nav-list > .menu-item > a {
        white-space: nowrap;
    }
}
.site-category--festival h2 {
    font-family: "Marcellus", serif !important;
    font-weight: 700 !important;
    letter-spacing: 0 !important;
}
.festival-vibes__intro .festival-vibes__eyebrow {
    color: #4d3b30 !important;
    font-size: clamp(29.04px, 2.838vw, 42.24px);
    margin-bottom: 0;
}

@media (max-width: 1000px) {
    .festival-vibes__intro .festival-vibes__eyebrow {
        font-size: clamp(27.72px, 7.92vw, 36.96px);
    }
}

:is(#festival-faq-page, #festival-how-to-get-there-page, #festival-contact-page) .site-header--festival .navigation,
:is(#festival-faq-page, #festival-how-to-get-there-page, #festival-contact-page) .site-header--festival .navigation-more__menu,
:is(#festival-faq-page, #festival-how-to-get-there-page, #festival-contact-page) .site-header--festival .nav-list {
    background: #f8f5f0;
}
@media (max-width: 1000px) {
    :is(#festival-faq-page, #festival-how-to-get-there-page, #festival-contact-page) .site-header--festival .navigation .nav-container,
    :is(#festival-faq-page, #festival-how-to-get-there-page, #festival-contact-page) .site-header--festival .nav-mobile {
        background: #f8f5f0;
    }
}
:is(#festival-faq-page, #festival-how-to-get-there-page, #festival-contact-page) .site-header--festival .brand img,
:is(#festival-faq-page, #festival-how-to-get-there-page, #festival-contact-page) .site-header--festival .mobile-menu-festival img {
    filter: brightness(0) saturate(100%) invert(22%) sepia(18%) saturate(794%) hue-rotate(342deg) brightness(91%) contrast(91%);
}
:is(#festival-faq-page, #festival-how-to-get-there-page, #festival-contact-page) .site-header--festival .navigation a,
:is(#festival-faq-page, #festival-how-to-get-there-page, #festival-contact-page) .site-header--festival .navigation-more summary {
    color: #4d3b30 !important;
    border-color: #4d3b30;
    border-image: linear-gradient(to bottom, #4d3b30, transparent) 1 100%;
}
:is(#festival-faq-page, #festival-how-to-get-there-page, #festival-contact-page) .site-header--festival .navigation-more__menu li a {
    background: transparent !important;
    border: 0;
    border-image: none;
    box-shadow: none;
    opacity: 1;
}
:is(#festival-faq-page, #festival-how-to-get-there-page, #festival-contact-page) .site-header--festival .navigation-more__menu li a:hover,
:is(#festival-faq-page, #festival-how-to-get-there-page, #festival-contact-page) .site-header--festival .navigation-more__menu li a:focus-visible {
    background: rgba(77, 59, 48, .1) !important;
}
:is(#festival-faq-page, #festival-how-to-get-there-page, #festival-contact-page) .site-header--festival .nav-list > .menu-item > a:hover,
:is(#festival-faq-page, #festival-how-to-get-there-page, #festival-contact-page) .site-header--festival .nav-list > .menu-item > a:focus-visible,
:is(#festival-faq-page, #festival-how-to-get-there-page, #festival-contact-page) .site-header--festival .nav-list > .menu-item.is-active > a,
:is(#festival-faq-page, #festival-how-to-get-there-page, #festival-contact-page) .site-header--festival .menu-item--more.is-active > .navigation-more > summary,
:is(#festival-faq-page, #festival-how-to-get-there-page, #festival-contact-page) .site-header--festival .navigation-more summary:hover,
:is(#festival-faq-page, #festival-how-to-get-there-page, #festival-contact-page) .site-header--festival .navigation-more summary:focus-visible,
:is(#festival-faq-page, #festival-how-to-get-there-page, #festival-contact-page) .site-header--festival .navigation-more[open] > summary,
:is(#festival-faq-page, #festival-how-to-get-there-page, #festival-contact-page) .site-header--festival .navigation-more__menu a:hover,
:is(#festival-faq-page, #festival-how-to-get-there-page, #festival-contact-page) .site-header--festival .navigation-more__menu a:focus-visible {
    color: #4d3b30 !important;
    background: rgba(77, 59, 48, .1);
    text-decoration: none;
}
:is(#festival-faq-page, #festival-how-to-get-there-page, #festival-contact-page) .site-header--festival #nav-toggle span,
:is(#festival-faq-page, #festival-how-to-get-there-page, #festival-contact-page) .site-header--festival #nav-toggle span::before,
:is(#festival-faq-page, #festival-how-to-get-there-page, #festival-contact-page) .site-header--festival #nav-toggle span::after { background: #4d3b30; }
:is(#festival-faq-page, #festival-how-to-get-there-page, #festival-contact-page) .site-header--festival #nav-toggle.active > span { background: transparent; }
:is(#festival-faq-page, #festival-how-to-get-there-page, #festival-contact-page) .festival-faq { padding-top: 140px; }
.site-category--festival .festival-faq,
.site-category--festival .festival-faq :is(h1, h2, h3, p, summary, .festival-faq__arrow) {
    color: #4d3b30 !important;
}
.festival-faq__intro { max-width: 900px; margin-bottom: 60px; }
.festival-faq__intro h1 { font-family: "Marcellus", serif; font-size: clamp(36px, 5vw, 64px); margin-bottom: 11px; }
.festival-faq__intro p { font-size: 24px; line-height: 1.7; margin-top: 0; }
.festival-faq__intro { padding-inline: 10px; }
.festival-faq__description p,
.festival-faq__description > a { padding-inline: 10px; }
.festival-faq {
    box-sizing: border-box;
    max-width: var(--festival-content-width);
    margin: 0 auto;
    padding: clamp(60px, 8vw, 120px) 60px;
    color: #4d3b30;
}
.festival-faq__topic { border-bottom: 1px solid #b7c4bd; }
.festival-faq__topic > summary > h2 { display: flex; align-items: center; gap: 14px; }
.festival-faq__topic > summary .festival-icon { width: 28px; height: 28px; flex: 0 0 28px; }
.site-category--festival .festival-faq__topic > summary > h2 > span,
.site-category--festival .festival-faq .festival-icon,
.site-category--festival .festival-faq .festival-icon * {
    color: #4d3b30 !important;
}
.festival-faq summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 24px 10px;
    cursor: pointer;
    list-style: none;
}
.festival-faq summary::-webkit-details-marker { display: none; }
.festival-faq summary { transition: background-color 180ms ease; }
@media (hover: hover) {
    .festival-faq summary:hover { background-color: #fefae9; }
}
.festival-faq summary:focus-visible { background-color: #fefae9; }
.festival-faq summary:focus-visible { outline: 2px solid #177d78; outline-offset: 4px; }
.festival-faq h2, .festival-faq h3 { margin: 0; color: inherit; }
.festival-faq h2 { font-family: "Poppins", sans-serif; font-size: clamp(25px, 3vw, 36px); font-weight: 600; }
.site-category--festival .festival-faq__topic > summary > h2 {
    font-family: "Poppins", sans-serif !important;
    font-weight: 400 !important;
}
.festival-faq h3 { font-family: "Poppins", sans-serif; font-size: clamp(17px, 1.5vw, 21px); font-weight: 500; }
.festival-faq__questions { padding: 0 0 24px 28px; }
.festival-faq__question { border-top: 1px solid #d4dad4; }
.festival-faq__question summary { padding: 20px 10px; }
.festival-faq__question[open] > summary { padding-bottom: 8px; }
.site-category--festival .festival-faq .scroll-reveal {
    opacity: 1;
    transform: none;
    transition: none;
}
.festival-faq__description { max-width: 900px; padding: 0 36px 24px 0; font-family: "Poppins", sans-serif; line-height: 1.7; }
.festival-faq__description p { margin: 0 0 12px; }
.festival-faq__description a { color: #177d78; text-decoration: underline; }
.festival-faq__arrow { width: 10px; height: 10px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); flex: 0 0 auto; margin-right: 5px; }
.festival-faq details[open] > summary > .festival-faq__arrow { transform: rotate(225deg); }
@media (max-width: 1000px) {
    .festival-faq { padding: 60px 24px; }
    .festival-faq__questions { padding-left: 14px; }
}

/* Shared content width for every PHP festival page. */
.festival-community__origin-image { display: block; width: 100%; height: auto; }
#festival-city-gallery .festival-story__experience-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 1000px) {
    #festival-city-gallery .festival-story__experience-gallery { grid-template-columns: 1fr; }
}
.festival-icon { display: inline-block; width: 20px; height: 20px; vertical-align: middle; flex-shrink: 0; }
.festival-icon :is(path, circle, rect) { animation: none !important; opacity: 1; transform: none; }
.site-category--festival main :is(.festival-story__cta, .button) {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    min-height: 50px;
    padding: 15px 30px;
    border: 0;
    border-radius: 0;
    background: url("../img/festival/elements/festival-ticket-button.svg") center / 100% 100% no-repeat;
    color: #81600d !important;
    font-family: "Marcellus", serif;
    font-size: 20px;
    font-weight: 400;
    line-height: 1.2;
    text-transform: none;
    text-decoration: none;
    text-shadow: none;
    box-shadow: none;
    filter: drop-shadow(0 3px 5px rgba(112, 75, 42, .12));
    transition: filter 350ms ease, color 350ms ease, translate 350ms ease;
    isolation: isolate;
}
.site-category--festival main :is(.festival-story__cta, .button) { position: relative; }
.site-category--festival main :is(.festival-story__cta, .button):hover {
    color: #5e4308 !important;
    box-shadow: none;
    filter: drop-shadow(0 6px 10px rgba(166, 124, 49, .3));
    translate: 0 -2px;
}
.site-category--festival main :is(.festival-story__cta, .button)::after {
    content: "";
    position: absolute;
    inset: 6px 12px;
    background: linear-gradient(110deg, transparent 25%, rgba(255, 255, 255, .65) 50%, transparent 75%);
    background-size: 250% 100%;
    background-position: 100% 0;
    opacity: 0;
    pointer-events: none;
    z-index: -1;
    transition: background-position 650ms ease, opacity 350ms ease;
}
.site-category--festival main :is(.festival-story__cta, .button):hover::after {
    background-position: 0 0;
    opacity: 1;
}
@media (prefers-reduced-motion: reduce) {
    .site-category--festival main :is(.festival-story__cta, .button),
    .site-category--festival main :is(.festival-story__cta, .button)::after { transition: none; }
    .site-category--festival main :is(.festival-story__cta, .button):hover { translate: none; }
}

.site-category--festival .glightbox-container .goverlay {
    background: rgba(0, 0, 0, 0.8);
}
.site-category--festival .glightbox-container .gslide-image img {
    border-radius: 8px;
}
@media (max-width: 768px) {
    .site-category--festival .glightbox-container :is(.gprev, .gnext) {
        display: flex;
        position: absolute;
        top: 50%;
        bottom: auto;
        transform: translateY(-50%);
        width: 40px;
        height: 50px;
        background-color: rgba(0, 0, 0, 0.32);
        z-index: 100000;
    }
    .site-category--festival .glightbox-container .gprev { left: 12px; }
    .site-category--festival .glightbox-container .gnext { right: 12px; }
    .site-category--festival .glightbox-container :is(.gprev, .gnext) svg path {
        animation: none;
        opacity: 1;
    }
}
.festival-stay__camp { padding-block: 90px; }
#festival-stay-page .festival-hero__content > .festival-hero__button { margin-top: 10px; }
.festival-stay__camp-image { display: block; width: 100%; height: auto; }
.festival-travel-rows { margin-top: 70px; display: grid; gap: 80px; }
.festival-travel-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: clamp(30px, 5vw, 80px); align-items: center; }
.festival-travel-row--reverse { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }
.festival-travel-row__copy h2 { margin-bottom: 18px; }
.festival-travel-row__copy p { margin: 0; line-height: 1.7; }
.festival-travel-row--address { grid-template-columns: 1fr; text-align: center; }
.festival-travel-row--address h2 { display: flex; align-items: center; justify-content: center; gap: 10px; }
.festival-travel-row__image { display: block; width: 100%; height: auto; max-width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.festival-travel-row--reverse .festival-travel-row__image { grid-column: 1; grid-row: 1; }
.festival-travel-row--reverse .festival-travel-row__copy { grid-column: 2; grid-row: 1; }
@media (max-width: 760px) {
    .festival-travel-rows { gap: 50px; }
    .festival-travel-row,
    .festival-travel-row--reverse { grid-template-columns: 1fr; gap: 24px; }
    .festival-travel-row--reverse .festival-travel-row__image,
    .festival-travel-row--reverse .festival-travel-row__copy { grid-column: auto; grid-row: auto; }
}
.site-category--festival .festival-experience .festival-hero,
#festival-stay-page .festival-hero {
    aspect-ratio: 1239 / 1269;
}
.site-category--festival .festival-experience .festival-hero__image,
#festival-stay-page .festival-hero__image {
    width: 100%;
    height: auto;
    object-fit: contain;
    object-position: center top;
}
@media (max-width: 1000px) {
    .site-category--festival .festival-experience .festival-hero,
    #festival-stay-page .festival-hero { aspect-ratio: 800 / 1800; }
}
.site-category--festival { --festival-container-gutter: 60px; }
.site-category--festival main :is(
    .category-page__inner,
    .festival-home__sections,
    .festival-stay__camp,
    .festival-faq,
    .festival-location-video,
    .festival-story__intro,
    .festival-story__chapter,
    .festival-story__about,
    .festival-story__feature,
    .festival-story__discover,
    .festival-story__volunteer,
    .festival-story__newsletter
) {
    box-sizing: border-box;
    width: 100%;
    max-width: var(--festival-content-width);
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--festival-container-gutter);
    padding-right: var(--festival-container-gutter);
}
.site-category--festival .festival-hero__content {
    max-width: calc(var(--festival-content-width) - 2 * var(--festival-container-gutter));
    width: calc(100% - 2 * var(--festival-container-gutter));
}
.site-category--festival .festival-get-involved .festival-hero {
    padding-inline: var(--festival-container-gutter);
}
.site-category--festival .festival-get-involved .festival-hero__content { width: 100%; }
@media (max-width: 1000px) {
    .site-category--festival { --festival-container-gutter: 24px; }
}
.site-category--festival #footer .footer-ticket a.festival-floating-ticket {
    background: none;
    right: -10px;
    width: 206px;
    height: 50px;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: "Marcellus", serif;
    font-size: 20px;
    font-weight: 400;
    text-decoration: none;
    color: #81600d !important;
    filter: drop-shadow(0 4px 8px rgba(112, 75, 42, .12));
    transition: filter 250ms ease, color 250ms ease;
}
.site-category--festival #footer .festival-floating-ticket * { color: inherit !important; }
.festival-floating-ticket svg { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.festival-floating-ticket__frame { fill: url(#floating-ticket-paper); stroke: currentColor; stroke-width: 1; }
.site-category--festival #footer .festival-floating-ticket svg path {
    animation: none !important;
    opacity: 1;
    transform: none;
}
.festival-floating-ticket__ornament { fill: none; stroke: currentColor; stroke-width: .75; }
.festival-floating-ticket span { position: relative; }
.site-category--festival #footer .footer-ticket a.festival-floating-ticket:hover,
.site-category--festival #footer .footer-ticket a.festival-floating-ticket:focus-visible {
    background: none;
    color: #5e4308 !important;
    filter: drop-shadow(0 4px 10px rgba(112, 75, 42, .24));
}
@media (prefers-reduced-motion: reduce) {
    .site-category--festival #footer .footer-ticket a.festival-floating-ticket { transition: none; }
}
@media (max-width: 600px) {
    .site-category--festival #footer .footer-ticket a.festival-floating-ticket { bottom: 12px; }
}

/* Keep FAQ answer links readable on the paper background. */
.site-category--festival .festival-faq__description a,
.site-category--festival .festival-faq__description a:visited,
.site-category--festival .festival-faq__description a:hover,
.site-category--festival .festival-faq__description a:focus-visible {
    color: #4d3b30 !important;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* City Edition video uses the Location mask within the Community content width. */
.festival-community .festival-location-video.festival-community__city-video {
    margin: 0;
    padding: 0;
}

/* Ticket category columns. */
.festival-story .festival-ticket-categories {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: stretch;
    gap: clamp(12px, 3vw, 48px);
    width: 100%;
    max-width: 1280px;
    margin: 64px auto 0;
    position: relative;
    z-index: 3;
}
.festival-ticket-categories > .festival-ticket-category {
    display: flex;
    flex-direction: column;
    min-width: 0;
    margin: 0;
    padding: 0;
    text-align: center;
}
.festival-ticket-category--entry { --category-accent: #846511; }
.festival-ticket-category--camping { --category-accent: #138246; }
.festival-ticket-category--vehicle { --category-accent: #078299; }
.festival-ticket-categories .festival-ticket-category > img {
    display: block;
    width: 100%;
    max-width: 230px;
    height: clamp(80px, 18vw, 230px);
    object-fit: contain;
    margin: 0 auto 24px;
}
.festival-ticket-categories .festival-ticket-category > h3 {
    flex: 1;
    position: relative;
    margin: 0;
    padding: 24px 0 0;
    color: var(--category-accent) !important;
    font-family: "Marcellus", serif;
    font-size: clamp(14px, 2.4vw, 38px);
    font-weight: 400;
    letter-spacing: -.02em;
    line-height: 1.2;
    text-transform: none;
}
.festival-ticket-categories .festival-ticket-category > h3::before {
    content: "";
    position: absolute;
    inset: 0 0 auto;
    height: 1px;
    background: linear-gradient(90deg, var(--category-accent), transparent);
    opacity: .6;
}
.festival-ticket-categories .festival-ticket-category > h3 > span {
    display: inline-block;
    margin-left: 5px;
    font-size: .48em;
    vertical-align: super;
}
.festival-ticket-categories .festival-ticket-category > .festival-story__cta {
    align-self: center;
    margin-top: 28px;
    max-width: 100%;
    box-sizing: border-box;
    white-space: nowrap;
}
@media (max-width: 1000px) {
    .festival-story .festival-ticket-categories {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 44px 16px;
        margin-top: 48px;
    }
    .festival-ticket-categories > .festival-ticket-category {
        width: 100%;
        max-width: 380px;
        margin: 0 auto;
    }
    .festival-ticket-categories > .festival-ticket-category--entry {
        grid-column: 1 / -1;
    }
    .festival-ticket-categories .festival-ticket-category > img {
        width: min(100%, 190px);
        height: 190px;
        margin-bottom: 16px;
    }
    .festival-ticket-categories .festival-ticket-category > h3 {
        padding-top: 16px;
        font-size: clamp(20px, 4vw, 32px);
    }
    .festival-ticket-categories .festival-ticket-category > .festival-story__cta {
        font-size: clamp(14px, 3.4vw, 16px);
        min-height: 40px;
        padding: 10px 14px;
        width: fit-content;
    }
}

/* Festival2 Experience carousel; other galleries retain their grid. */
.festival-experience-slider .festival-experience-slider__track {
    display: flex;
    position: relative;
    gap: 24px;
    overflow-x: auto;
    overflow-y: hidden;
    overscroll-behavior: auto;
    touch-action: pan-x pan-y pinch-zoom;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    padding-bottom: 8px;
    cursor: grab;
    user-select: none;
    -webkit-user-select: none;
}
.festival-experience-slider .festival-experience-slider__track.is-dragging {
    cursor: grabbing;
    scroll-snap-type: none;
}
.festival-experience-slider .festival-experience-slider__track.is-scrolling {
    scroll-snap-type: none;
}
.festival-experience-slider__track::-webkit-scrollbar { display: none; }
.festival-experience-slider .festival-experience-slider__track > .festival-experience-slider__slide {
    display: block;
    flex: 0 0 calc((100% - 72px) / 3.5);
    width: calc((100% - 72px) / 3.5);
    min-width: 0;
    scroll-snap-align: start;
}
.festival-experience-slider .festival-experience-slider__slide > img {
    width: 100%;
    height: auto;
    aspect-ratio: 1;
    object-fit: cover;
}
.festival-experience-slider__dots {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-top: 18px;
}
.festival-experience-slider__dots[hidden] { display: none; }
.festival-experience-slider__dots button {
    display: grid;
    place-items: center;
    width: 24px;
    min-height: 44px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    cursor: pointer;
}
.festival-experience-slider__dots button::before {
    content: "";
    display: block;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #4d3b30;
    opacity: .28;
    transition: opacity 200ms ease, transform 200ms ease;
}
.festival-experience-slider__dots button[aria-current="true"]::before {
    opacity: 1;
    transform: scale(1.3);
}
.festival-experience-slider__dots button:hover::before { opacity: .75; }
.festival-experience-slider__dots button:focus-visible,
.festival-experience-slider__slide:focus-visible,
.festival-experience-slider__track:focus-visible {
    outline: 2px solid #4d3b30;
    outline-offset: -3px;
}
@media (max-width: 1000px) {
    .festival-experience-slider .festival-experience-slider__track { gap: 16px; }
    .festival-experience-slider .festival-experience-slider__track > .festival-experience-slider__slide {
        flex-basis: calc((100% - 16px) / 1.5);
        width: calc((100% - 16px) / 1.5);
    }
}
@media (prefers-reduced-motion: reduce) {
    .festival-experience-slider__dots button::before { transition: none; }
}

/* Community: Music & Art and Dance share one row on desktop only. */
@media (min-width: 1001px) {
    .festival-community__values-row {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: clamp(32px, 4vw, 64px);
        box-sizing: border-box;
        width: 100%;
        max-width: var(--festival-content-width);
        margin: 0 auto;
        padding: clamp(90px, 10vw, 150px) var(--festival-container-gutter);
    }
    .site-category--festival main .festival-community__values-row > .festival-story__volunteer {
        min-width: 0;
        width: 100%;
        max-width: none;
        margin: 0;
        padding: 0;
    }
}

/* Festival2 camping gallery sits below the text and signup button. */
.festival-story .festival-story__stay--gallery {
    grid-template-columns: minmax(0, 1fr);
    gap: 48px;
}
.festival-story__stay--gallery > .festival-story__feature-copy {
    max-width: none;
}
.festival-story__stay--gallery > .festival-experience-slider {
    min-width: 0;
    width: 100%;
}

.festival-story__newsletter-image {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
    margin: clamp(32px, 5vw, 64px) auto 0;
}

/* Story signup: bring the button closer to its text and give the image more space. */
#festival-newsletter > p {
    margin-bottom: 18px;
}
#festival-newsletter > .festival-story__newsletter-image {
    margin-top: clamp(56px, 7vw, 96px);
}

/* Contact landing page for Festival2. */
.site-category--festival .festival-contact {
    box-sizing: border-box;
    width: 100%;
    max-width: var(--festival-content-width);
    margin: 0 auto;
    padding: 160px var(--festival-container-gutter) 100px;
    color: #4d3b30;
}
.festival-contact :is(h1, h2, p, address) { color: #4d3b30 !important; }
.festival-contact__intro { max-width: 950px; }
.festival-contact__intro h1 {
    color: #4d3b30 !important;
    font-family: "Marcellus", serif;
    font-size: clamp(40px, 5vw, 64px);
    margin: 0 0 24px;
}
.festival-contact__intro p { font-size: clamp(18px, 2vw, 24px); line-height: 1.7; margin-bottom: 0; }
.festival-contact a:not(.festival-story__cta) {
    color: #4d3b30 !important;
    text-decoration: underline;
    text-underline-offset: 4px;
    overflow-wrap: anywhere;
}
.festival-contact__options { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px; margin-top: 30px; }
.festival-contact__options section { border-top: 1px solid #d1c9bc; padding-top: 28px; min-width: 0; }
.festival-contact__options h2 { font-size: clamp(26px, 2.5vw, 36px); margin: 0 0 24px; }
.festival-contact__address { margin-top: 80px; font-style: normal; font-size: 19px; line-height: 1.8; }
@media (max-width: 1000px) {
    .site-category--festival .festival-contact { padding-top: 130px; padding-bottom: 70px; }
    .festival-contact__options { grid-template-columns: minmax(0, 1fr); }
}
.festival-contact__options h2 { text-transform: none; }
/* Social links in the Festival2 More menu and mobile navigation. */
.site-category--festival .site-header--festival .navigation-more__menu > li > a {
    background: transparent !important;
}
.site-header--festival .navigation-more__menu > .festival-navigation-socials,
.site-header--festival .nav-list > .festival-navigation-socials {
    align-items: center;
    box-sizing: border-box;
    display: flex !important;
    flex-wrap: nowrap;
    gap: 14px;
    justify-content: flex-start;
    padding: 18px;
    width: 100%;
}
.site-category--festival .site-header--festival .festival-navigation-socials > a {
    align-items: center;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    border-image: none;
    color: inherit !important;
    display: inline-flex;
    flex: 0 0 30px;
    height: 32px !important;
    justify-content: center;
    line-height: 1;
    padding: 0 !important;
    width: 30px;
}
.site-header--festival .festival-navigation-social-icon {
    background-color: currentColor;
    display: block;
    flex: none;
    mask-position: center;
    mask-repeat: no-repeat;
    mask-size: contain;
    animation: none !important;
    color: inherit !important;
    height: 22px;
    opacity: 1 !important;
    width: 22px;
}
@media (min-width: 1001px) {
    .site-header--festival .nav-list > .festival-navigation-socials { display: none !important; }
}
@media (max-width: 1000px) {
    .site-header--festival .nav-list > .festival-navigation-socials { padding-left: 41.4px; }
    .site-header--festival .festival-navigation-social-icon {
        height: 28px;
        width: 28px;
    }
}

.site-header--festival .festival-navigation-socials { color: #fff; }
:is(#festival-faq-page, #festival-how-to-get-there-page, #festival-contact-page) .site-header--festival .navigation-more__menu > .festival-navigation-socials { color: #4d3b30; }

 .festival-navigation-social-icon--instagram { mask-image: url("../img/festival/elements/social_icons/instagram.svg"); }
 .festival-navigation-social-icon--tiktok { mask-image: url("../img/festival/elements/social_icons/tiktok.svg"); }
 .festival-navigation-social-icon--youtube { mask-image: url("../img/festival/elements/social_icons/youtube.svg"); }
 .festival-navigation-social-icon--soundcloud { mask-image: url("../img/festival/elements/social_icons/soundcloud.svg"); }

.site-category--festival .site-header--festival .festival-navigation-socials,
.site-category--festival .site-header--festival .festival-navigation-socials > a:is(:hover, :focus, :active) {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}
.site-header--festival .festival-navigation-socials > a::before,
.site-header--festival .festival-navigation-socials > a::after {
    content: none !important;
}

/* Social icons below the Festival2 footer date and location. */
.festival-footer-socials {
    align-items: center;
    display: flex;
    flex-wrap: nowrap;
    gap: 18px;
    justify-content: center;
    margin-top: 24px;
}
.festival-footer-socials > a {
    align-items: center;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    color: #111 !important;
    display: inline-flex;
    height: 36px;
    justify-content: center;
    padding: 0;
    width: 36px;
}
.festival-footer-socials .festival-navigation-social-icon {
    background-color: #111 !important;
    color: #111 !important;
    display: block;
    height: 28px;
    mask-position: center;
    mask-repeat: no-repeat;
    mask-size: contain;
    width: 28px;
}
.festival-footer-socials > a:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 4px;
}

/* Location mobile artwork fills the hero; the video follows in normal flow. */
@media (max-width: 1000px) {
    .festival-location > .festival-hero {
        aspect-ratio: 837 / 1170 !important;
        padding: 0;
        width: 100%;
    }
    .festival-location > .festival-hero > picture {
        display: block;
        height: 100%;
        inset: 0;
        position: absolute;
        width: 100%;
    }
    .festival-location > .festival-hero .festival-hero__image {
        object-fit: cover;
        width: 100%;
    }
    .festival-location > .festival-hero .festival-hero__content {
        top: 135px;
    }
    .festival-location > .festival-location-video {
        margin-top: 0;
    }
    .festival-location > .festival-location-video .video-wrapper {
        top: 0;
    }
}

/* Community mobile hero uses the full width of its portrait artwork. */
@media (max-width: 1000px) {
    .festival-community > .festival-hero {
        aspect-ratio: auto;
        display: block;
        padding: 0;
        width: 100%;
    }
    .festival-community > .festival-hero > picture {
        display: block;
        height: auto;
        position: relative;
        width: 100%;
    }
    .festival-community > .festival-hero .festival-hero__image {
        display: block;
        height: auto;
        inset: auto;
        object-fit: contain;
        position: relative;
        width: 100%;
    }
}

/* Keep the embedded feed out of percentage-height feedback and scroll anchoring. */
.site-category--festival .festival-experience .taggbox {
    height: auto !important;
    overflow: visible !important;
    overflow-anchor: none;
}
@media (max-width: 1000px) {
    /* Mobile reveals fade without moving or retaining transformed text layers. */
    .site-category--festival .festival-experience .scroll-reveal {
        transform: none !important;
        transition: opacity .8s ease-out;
    }
    .site-category--festival .festival-experience :is(.festival-story__cta, .button, button),
    .site-category--festival .festival-experience :is(.festival-story__cta, .button, button):hover {
        transform: none !important;
        translate: none !important;
        transition: opacity .8s ease-out, color 180ms ease;
    }
    .site-category--festival .festival-experience :is(.festival-story__cta, .button),
    .site-category--festival .festival-experience :is(.festival-story__cta, .button):hover {
        filter: none !important;
        box-shadow: none !important;
    }
    .site-category--festival .festival-experience :is(.festival-story__cta, .button)::after {
        content: none;
    }
}

@media (max-width: 1000px) {
    .site-header--festival .sticky:not(.small) .brand img {
        width: 236px;
    }
    .site-header--festival #nav-toggle span,
    .site-header--festival #nav-toggle span::before,
    .site-header--festival #nav-toggle span::after {
        height: 2px;
    }
    .site-header--festival #nav-toggle > span {
        right: calc(var(--nav-icon-side, 18px) - 2px);
    }
    .festival-community > .festival-hero .festival-hero__content {
        top: 135px;
    }
}

/* Compact Community values on mobile. */
@media (max-width: 1000px) {
    .festival-community .festival-community__value {
        padding-top: 40px;
        padding-bottom: 40px;
    }
    .festival-community__value > .festival-story__section-heading {
        margin-bottom: 24px;
    }
    .festival-community__value > .festival-story__section-heading > p {
        margin-bottom: 0;
    }
}

/* Light dropdown uses the same right-to-left opacity fade as the dark menu. */
:is(#festival-faq-page, #festival-how-to-get-there-page, #festival-contact-page) .site-header--festival .navigation-more__menu {
    background: linear-gradient(to right, rgba(248, 245, 240, 0.4), rgb(248, 245, 240));
}

.site-header--festival .navigation-more__menu > .festival-navigation-socials {
    justify-content: flex-end;
}

/* Keep the scrolled dark navigation readable over photos and video. */
.site-category--festival:not(#festival-faq-page):not(#festival-how-to-get-there-page):not(#festival-contact-page) .site-header--festival .navigation.sticky.small .nav-container {
    background: rgba(0, 12, 18, 0.96);
}
