:root {
	--blue: #00AEEF;
	--pink: #E8278D;
	--yellow:#FFDE16;
	--orange:#FFA500;
	--dark-green:#00A396;
	--bg-green:#A2C7BC;
	--bg-tan:#F0D3AD;
	--bg-lime:#DBDF93;
	--bg-dark-green:#00A396;
	--bg-purple:#D0BEE8;
	--bg-blue:#AFC6D9;
	--bg-beige:#FFF1E0;
	--black:#222222;
	--white:#ffffff;
	--gradient-green-orange:linear-gradient(90deg, #00A396 0%, #FAA51A 100%);
	--gradient-green-pink:linear-gradient(90deg, #00A396 0%, #E8278D 100%);
	--gradient-purple-green:linear-gradient(90deg, #532C84 0%, #00A396 100%);
	--gradient-purple-orange:linear-gradient(90deg, #532C84 0%, #FAA51A 100%);
	--gradient-blue-pink:linear-gradient(90deg, #00AEEF 0%, #E8278D 100%);
	--gradient-blue-orange:linear-gradient(90deg, #00AEEF 0%, #FFA500 100%);

	--gutter: 65px;
	--gap: 10px;
	--element-gap: 40px;
	--padding-v: 80px;
	--padding-w: 50px;
	--inner-width: 1114px;
	--easeOut: cubic-bezier(.12, .82, 0, 1);
}


* {
	box-sizing: border-box;
}



html {

	width: 100%;
	overflow-x: hidden;
}

body {
	width: 100%;
	overflow-x: hidden;
	margin: 0;
	padding: 0;
	min-height: 100vh;
	color:var(--black);
	position: relative;
	background: var(--white);
}


#page{
	padding-left:var(--gap);
	padding-right:var(--gap);
	padding-top:80px;
}
.flex {
	display: flex;
	flex-wrap: wrap;
}

section {
	width: 100%;
	position: relative;
	margin-bottom:var(--gap);
	border-radius: 20px;
}

.wrapper {
	margin: 0 auto;
	width: 100%;
}

.container{
	width:100%;
	margin:0 auto;
	max-width: 1200px;
}

.button{
	font-size: 20px;
	line-height: 20px;
	padding: 18px 30px;
	border-radius: 50px;
	min-width: 200px;
	color:var(--black);
	display: inline-block;
	text-align: center;
	color:var(--white);
	font-weight:500;
	background:var(--pink);
	margin-top: var(--element-gap);
	cursor: pointer;
    white-space: nowrap;
}
#masthead .button{
	padding:14px 20px;
	font-size:16px;
	min-width: unset;
	line-height: 16px;
}
.button.blue{
	background: var(--blue);
}

.button.orange{
	background: var(--orange);
}

.button.yellow{
	background: var(--yellow);
	color: var(--black);
}
.button:hover {
	opacity: .8;
}


.warning{
	border:1px solid var(--yellow);
	display: inline-block;
	padding:4px 15px;
	border-radius: 20px;
	font-weight:500;
	font-size:18px;
	line-height:25px;
	margin:20px 0px 0px 0px;
}

.warning::before{
	content: "⚠️";
	color: var(--black);
	margin-right: 8px;
}

.overlay{
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 2;
	background: rgba(0,0,0,1);
	border-radius: 20px;
	opacity: .8;
}

#footer .overlay{
	opacity: .9;
}

.home .banner .overlay{
	opacity: .6;
}

.overlay.black {
    background: rgba(50, 50, 50, 1);
}

.overlay.green-orange{
	background: var(--gradient-green-orange);
}
.overlay.green-pink{
	background: var(--gradient-green-pink);
}
.overlay.purple-green{
	background: var(--gradient-purple-green);
}
.overlay.purple-orange{
	background: var(--gradient-purple-orange);
}
.overlay.blue-pink{
	background: var(--gradient-blue-pink);
}
.overlay.blue-orange{
	background: var(--gradient-blue-orange);
}


.bg{
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-size: cover;
	z-index: 1;
	border-radius: 20px;
	overflow: hidden;
}

.bg iframe{
	width: 100vw;
    height: 56.25vw;
    min-height: 100vh;
    min-width: 177.77vh;
    position: absolute;
    top: 50%;
    left: 50%;
	transform: translate(-50%, -50%);
	border: 0;
	pointer-events: none;
}

.bg-tan{
	background: var(--bg-tan);
}
.bg-green{
	background: var(--bg-green);
}
.bg-purple{
	background: var(--bg-purple);
}

.bg-warning {
	background: #f44;
}

 .marquee.bg-warning .marquee-item{
	color: #ffffff;
	font-weight: 400;
	font-size: 18px;
}

 .marquee.bg-warning {
	 padding:10px 0px;
 }
.bg-beige{
	background: var(--bg-beige);
}
.bg-lime{
	background: var(--bg-lime);
}
.bg-blue{
	background: var(--bg-blue);
}
.bg-dark-blue{
	background: var(--blue);
}
.bg-dark-green{
	background: var(--bg-dark-green);
}
.bg-orange{
	background: var(--orange);
}
.bg-pink{
	background: var(--pink);
}

.marquee.bg-lime, .marquee.bg-blue{
	color:var(--black);
}
/* --------------------------------------------- MASTHEAD ------------------------------------------- */

#masthead {
	width: 100%;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 10;
	transition: all 0.3s ease;
	transform: translateY(0);
}

#masthead.scrolled {
	background: rgba(255, 255, 255, .6);
	backdrop-filter: blur(16px);
	width: calc(100% - 80px);
        margin: 0 40px;
        border-radius: 60px;
		top:20px;
}

#masthead.hidden {
	transform: translateY(-100%);
	top:0px;
}

#masthead #logo {
	width: 250px;
	height: 213px;
	float: left;
	margin-left:var(--gap);
	margin-right:20px;
	transition:.3s all ease;
	display: block;
	background: url(../images/logo.svg) no-repeat;
	background-size: contain;
}

#masthead.scrolled #logo {
		width: 120px;
    height: 68px;
    background: url(../images/logo.webp) left top no-repeat;
    background-size: contain;
    margin-top: 8px;
	}

#main-menu {
}

#main-menu ul#menu-main-1 {
	margin: 0;
	padding: 0;
	display: flex;
}

#main-menu ul li {
	list-style: none;
	display: inline-block;
	margin: 0;
	padding: 0;
}



#main-menu ul li a {
	font-size: 16px;
	line-height: 18px;
	font-weight: 500;
	display: flex;
	justify-content: center;
	align-items: center;
	padding: 0 30px;
	color:var(--black);
	height: 50px;
}

#main-menu ul li a:hover {
}

#main-menu ul li:hover .sub-menu {
	visibility: visible;
	opacity: 1;
	transition: all .5s;
}


#main-menu .sub-menu {
	padding: 16px 0;
	margin: 0;
	opacity: 0;
	visibility: hidden;
    min-width: 200px;
	position: absolute;
	border-radius: 20px;
	background: var(--bg-beige);
}
.chevron-down {
    transition: transform 0.2s;
}

#menu .chevron-down{
	display: none !important;
}

.menu-item-has-children:hover > a .chevron-down {
    transform: rotate(180deg);
}
#main-menu ul.sub-menu li {
	display: block;
}

#main-menu ul.sub-menu li a {
	text-align: left;
	display: block;
	height: auto;
    padding: 12px 40px;
    color: var(--black);
	font-size: 16px;
}
#masthead ul{
	padding-left:0;
	margin-left:0;
}
#main-menu ul.sub-menu li a:hover {
	background:var(--bg-tan);
}


#masthead #menu-btn {
	cursor: pointer;
	float: right;
	width: 30px;
	height: 20px;
	position: relative;
	top: 10px;
	display: block;
	display: none;
}

#masthead #menu-btn .bar {
	height: 2px;
	background: var(--black);
	margin-bottom: 6px;
	float: right;
}

#masthead #menu-btn .bar1 {
	width: 100%;
}

#masthead #menu-btn .bar2 {
	width: 100%;
}

#masthead #menu-btn .bar3 {
	width: 100%;
}




/* --------------------------------------------- MENU ------------------------------------------- */
.sub-menu-toggle {
	display: none;
}



#menu ul {
	list-style: none;
	padding: 0;
	margin: 0;
	opacity: 0;
}

.menu-opened #menu ul {
	opacity: 1;
}



#menu ul.sub-menu li {
	margin-left: 40px;
}

#menu ul.sub-menu li a {

	font-size: 24px;
	line-height: 30px;
	padding: 8px 0px;
}

#menu ul li a:hover {
	color: var(--primary);
}

#menu ul.sub-menu {
	margin-bottom: 10px;
}

#menu a.close {
	width: 32px;
	height: 32px;
	background: url('../images/close.svg') center center no-repeat;
	background-size: 80%;
	display: block;
	position: absolute;
	right: 30px;
	top: 30px;
	cursor: pointer;
	transition: background .5s;
}

#menu a.close:hover {

	background-size: 100%;
}

#menu-overlay {
	position: fixed;
	z-index: 99;
	background: rgba(55, 55, 55, .7);
	width: 100%;
	height: 100%;
	left: 0;
	top: 0;
	backdrop-filter: blur(10px);
	opacity: 0;
	visibility: hidden;
	transition: all 2s;
}

body.menu-opened {

	overflow: hidden;
}

body.menu-opened #menu-overlay {

	visibility: visible;
	opacity: 1;
}

body.menu-opened #menu {
	right: 0;
}

#masthead #main-menu{
	float:left;
}
#masthead .button{
	margin-top: 20px;
    float: right;
    margin-right: var(--gap);
}

/* ------------------------------ MOBILE MENU ------------------------------------------- */

.sub-menu-toggle {
	display: none;
}

#menu {
	position: fixed;
	top: 0;
	right: -40%;
	background: var(--blue);
	padding: 60px 40px;
	z-index: 9999;
	overflow: auto;
	height: 100vh;
	width: 40%;
	transition: right .5s ease;
}

#menu ul {
	list-style: none;
	padding: 0;
	margin: 0;
	opacity: 0;
}

.menu-opened #menu ul {
	opacity: 1;
}

#menu ul li a {
	font-size: 14px;
	line-height: 20px;
	font-weight: 500;
	display: block;
	padding: 10px 0px;
	color: var(--white);
}

#menu ul.sub-menu li {
	margin-left: 0px;
}

#menu ul li {

	margin-bottom: 40px;
}

#menu ul.sub-menu {

}

#menu ul.sub-menu li {
	margin-bottom: 0;
}

#menu ul.sub-menu li a {
	border: none;
	font-size: 16px;
	font-weight: 400;
	line-height: 22px;
	padding: 6px 0px;
	color: #fff;
}

#menu ul li a:hover {}

#menu ul.sub-menu {
	margin-bottom: 10px;
}

#menu a.close {
	width: 32px;
	height: 32px;
	background: url('../images/close.svg') center center no-repeat;
	background-size: 70%;
	display: block;
	position: absolute;
	right: 10px;
	top: 10px;
	cursor: pointer;
	transition: background .5s;
}

#menu a.close:hover {

	background-size: 100%;
}

#menu-overlay {
	position: fixed;
	z-index: 99;
	background: rgba(255, 255, 255, .7);
	width: 100%;
	height: 100%;
	left: 0;
	top: 0;
	backdrop-filter: blur(10px);
	opacity: 0;
	visibility: hidden;
	transition: all .5s;
}

body.menu-opened {

	overflow: hidden;
}

body.menu-opened #menu-overlay {

	visibility: visible;
	opacity: 1;
}

body.menu-opened #menu {
	right: 0;
}


/* ------------------------------ BANNER ------------------------------------------- */

.banner{
	width: 100%;
	text-align: center;
	color:var(--white);
	min-height: 400px;
	display: flex;
	justify-content: center;
	align-items: center;
	text-align: center;
	padding: 0 var(--padding);
	position: relative;
	overflow: hidden;
	margin-bottom:var(--gap);
}

.banner.compact{
	min-height:200px;
}
.banner.compact .text{
}
.banner.compact .bg, .banner.compact .overlay{

}
	.home .banner{
	min-height:calc(100vh - 80px - var(--gap));
}

.banner .text{
	position: relative;
	z-index: 3;
}

.banner .text h6{
	margin-top:0;
}

.home
.banner h1.hero{
	margin-bottom:20px;
}


/* ------------------------------ FOOTER ------------------------------------------- */

#footer{
	width: 100%;
	color:var(--white);
	min-height: 480px;
	padding: 0 var(--padding-w);
	border-radius: 20px;

	padding-bottom:40px;
	position: relative;
	overflow: hidden;
	display: flex;
	align-items: flex-end;
}

#footer .content{
	display: flex;
	width:100%;
	z-index: 3;
	position: relative;
	justify-content: space-between;
	align-items: flex-end;
}
#footer .left{
	flex: 0 1 calc(100% - 250px);
}
#footer .right{
	flex: 1 0 250px;
}
#footer a{
	color:var(--white);
}

#footer h3{
	margin-bottom:20px;

}
.social{
	margin-bottom: 20px;
}
.social h6{
	display: inline-block;

}
.social a{
	border:1px solid var(--white);
	border-radius: 50%;
	width:40px;
	height:40px;
	display: inline-block;
	text-align: center;
	line-height: 40px;
	color:var(--white);
	margin: 0 2px;
}

.footer-logo img{

    max-width: 100%;
}

/* ------------------------------ CENTERED TEXT ------------------------------------------- */

section.centered-text{

	text-align: center;
	padding: var(--padding-v) var(--padding-w);
	background:var(--bg-beige);
}

section.centered-text h2{
	max-width: 1000px;
	margin:20px auto 0 auto;
}

section.centered-text .images.bubbles{
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	max-width: 840px;
	gap: 20px;
    margin-left: auto;
    margin-right: auto;
	margin-top: var(--element-gap);
}
section.centered-text .bubbles .image{
	width:120px;
	height:120px;
	border-radius:60px;
	border:3px solid var(--white);
}

section.centered-text .writeup{
	max-width: 840px;
	margin:0 auto;
	margin-top:var(--element-gap);
}

section.centered-text .images.portraits{
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	gap: var(--gap);
	width:100%;
	margin-top: var(--element-gap);
}

/* Center the portraits layout when there are exactly 2 items. */
section.centered-text .images.portraits:has(> .image:nth-child(2):last-child){
	grid-template-columns: 1fr 1fr;
	width: calc(66.666% - (var(--gap) / 3));
	margin-left: auto;
	margin-right: auto;
}


section.centered-text .portraits .media{

	aspect-ratio: 2/3;
	border-radius: 20px;
	position: relative;
    overflow: hidden;
}

section.centered-text .portraits .title{


background: linear-gradient(90deg, rgba(232, 39, 141, 0.3) 0%, rgba(0, 174, 239, 0.3) 100%);
backdrop-filter: blur(20px);
border-radius: 50px;
	position: absolute;
	width:calc(100% - 20px);
	left:10px;
	font-weight:500;
	bottom:10px;
	color:var(--white);
	text-align: left;
	padding:13px 62px 13px 20px;
	font-size:20px;
	line-height: 1.2;


}
section.centered-text .portraits .portrait_link{
	position: absolute;
	top:0;
	left:0;
	width:100%;
	height:100%;
	z-index: 1;
}
section.centered-text .portraits .portrait:hover .title::after{
	background-color:var(--pink);
	right: 3px;
}

section.centered-text .portraits .portrait
.title::after{
	content:"";
	position: absolute;
	transition:all .3s ease;
	right: 10px;
	top: 50%;
	transform: translateY(-50%);
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background-color: var(--blue);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h12' stroke='%23fff' stroke-width='2.4' stroke-linecap='round'/%3E%3Cpath d='m13 7 5 5-5 5' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: center;
	background-size: 24px 24px;
}

section.centered-text .portraits .image.video {
	overflow: hidden;
}
section.centered-text .images.portraits .image{
	border-radius: 20px;
	position: relative;
	overflow: hidden;
}
iframe.video{


	width: 100vw;
    height: 56.25vw;
    min-height: 100vh;
    min-width: 177.77vh;
    position: absolute;
    top: 50%;
    left: 50%;
	transform: translate(-50%, -50%);
	border: 0;
	pointer-events: none;
	background:#000;
}

/* ------------------------------ VIMEO POSTER COVER ------------------------------------------- */

.vimeo-poster {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-size: cover;
	background-position: center center;
	background-repeat: no-repeat;
	z-index: 1;
	transition: opacity 0.3s ease;
	pointer-events: none;
	background-size:50px 50px;
}

.vimeo-poster.vimeo-poster--hidden {
	opacity: 0;
}

/* ------------------------------ CARDS ------------------------------------------- */

section.overlay_panel .text{
	position: relative;
	z-index: 3;
}

.overlay_panel_extra{
	width:100%;
	aspect-ratio: 16/9;
	overflow:hidden;
	position: relative;
	display: none;
}

.overlay_panel_extra iframe.video.landscape{
	width: 100%;
	height: 100%;
	min-height: unset;
	min-width: unset;
	position: absolute;
	top: 0;
	left: 0;
	transform: translate(0, 0);
	border: 0;
	pointer-events: none;

}

.card{
	position: relative;
	display: flex;
    text-align: center;
    align-items: center;
	border-radius: 20px;
	padding:var(--padding-w);
    min-height: 45vw;
	overflow: hidden;
}

.card.bg-pink{
	color:var(--white);
}
.card .icon{
	margin-bottom:20px;
}

.card .writeup{
}
.card h2{
	margin-bottom:20px;
}
.three_cards{
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	gap: var(--gap);
	justify-content: center;
}

.card.image-type .image{
	position: absolute;
	top:0;
	left:0;
	width:100%;
	height:100%;
}


.card.text-type{

    min-width: 440px;
}
section.overlay_panel{
	position: relative;
	min-height: 480px;
    display: flex;
    overflow: hidden;
}
section.overlay_panel.right{
	justify-content: flex-end;
}
section.overlay_panel .card{
	color:var(--white);
	max-width:33%;
    z-index: 3;
	    background: linear-gradient(270deg, rgba(232, 39, 141, 0.4) 0%, rgba(0, 174, 239, 0.4) 100%);
		backdrop-filter: blur(28px);
}

.two_cards{
	display: grid;
	grid-template-columns: 1fr  1fr 1fr;
	gap: var(--gap);
	justify-content: center;
}

.two_cards .card.image-type, .two_cards .card.video-type{
	grid-column: span 2;
	aspect-ratio: unset;
}

/* ------------------------------ BULLETS ------------------------------------------- */

section.bullet_points{
	padding: var(--padding-v) var(--padding-w);
	background:var(--bg-beige);
}

section.bullet_points .text p{
	margin-top:30px;
}
section.bullet_points .text{
	text-align:center;
	max-width: 840px;
	margin:0 auto;
}

section.bullet_points .bullets{
	margin:60px auto;
	max-width:1200px;
	width:100%;
	flex-wrap: wrap;
    justify-content: center;
	display: flex;

    gap: 20px;
}



section.bullet_points .bullet p{
	margin-top:10px;
    font-size: 16px;
    line-height: 22px;
}
section.bullet_points .bullets .bullet{
	flex: 0 1 calc(50% - var(--gap));
	background:var(--white);
	border-radius: 20px;
	display: flex;
	align-items: center;
	position: relative;
    padding: 10px;
}

section.bullet_points .bullets .bullet .info{
	text-align: left;
    padding: 20px;
}
section.bullet_points .bullets .bullet.bullet.has-link .info{
	padding-right:60px;
}

section.bullet_points .bullets .bullet h6{
	margin:0;
	margin-bottom:10px;
}
section.bullet_points .bullets .bullet .image{
	width: 140px;
	aspect-ratio: 1;
	border-radius: 20px;
	background-size: cover;
	background-position: center;
	flex-shrink: 0;
}

section.bullet_points .bullets .bullet.has-link::after {
    content: "";
    position: absolute;
    transition: all .3s ease;
    right: 20px;
    bottom:0px;
    transform: translateY(-50%);
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background-color: var(--pink);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h12' stroke='%23fff' stroke-width='2.4' stroke-linecap='round'/%3E%3Cpath d='m13 7 5 5-5 5' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
    background-size: 24px 24px;
}

section.bullet_points .bullets .bullet .link{
	position: absolute;
	top:0;
	left:0;
	width:100%;
	height:100%;
	z-index: 1;
}

section.bullet_points .bullets .bullet:hover::after{
	background-color: var(--blue);
	right: 15px;
}
/* ------------------------------ TEXT_ONLY ------------------------------------------- */

section.text-only{
	padding: var(--padding-v) var(--padding-w);
}

section.text-only h6{
	margin:0 0 20px 0;
}

section.text-only h2{
	margin:0;
}

section.text-only .text{
	display: flex;
	gap:5vw;
}

section.text-only .text .left{
    flex: 1 0 400px;
}

/* ------------------------------ TWOTEXT_COLUMNS ------------------------------------------- */


section.two_text_columns .columns{
	display: grid;
	grid-template-columns: 1fr 2fr ;
	gap: var(--gap);
	margin: 0 auto;
}

section.two_text_columns .column{
	border-radius: 20px;
    padding: var(--padding-w);
	display: flex;
	flex-direction: column;
	position: relative;
	align-items: flex-start;
	min-height: 100%;
}

section.two_text_columns .column .icon{

	position: absolute;
    z-index: 3;
    top: var(--padding-w);
    right: var(--padding-w);
}

section.two_text_columns .column .free_text{
	width: 100%;

    margin: 60px 0 40px 0;
}

section.two_text_columns .column .free_text a:not(.button){
	text-decoration: underline;
	color:var(--black);
	text-underline-offset: 3px;
}
section.two_text_columns .column .free_text h2,
section.two_text_columns .column .free_text h3,
section.two_text_columns .column .free_text h4,
section.two_text_columns .column .free_text h5,
section.two_text_columns .column .free_text h6{
	margin-bottom:16px;
}

section.two_text_columns .column .free_text > *:first-child{
	margin-top: 0;
}

section.two_text_columns .column .free_text > *:last-child{
	margin-bottom: 0;
}

section.two_text_columns .column .button{
	margin-top: 10px;
}
section.two_text_columns p:last-of-type{
	margin-bottom:0;
}

/* ------------------------------ SCHEDULE ------------------------------------------- */

section.schedule{
	padding:  var(--padding-v) 0;
}

section.schedule .container{
	max-width: unset;
	display: grid;
	grid-template-columns: 1fr ;
	gap:var(--gap);
}

.schedule .schedule-tabs{
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px;
	padding:10px;
    background: var(--bg-tan);
	border-radius: 20px;
}

.schedule .schedule-tab{
	border: 0;
	background: var(--white);
	color: var(--black);
	padding: 10px 24px;
	border-radius: 50px;
	font-family: "filson-pro", sans-serif;
	font-size: 18px;
	line-height: 22px;
	font-weight: 500;
	cursor: pointer;
	transition: all .25s ease;
}

.schedule .schedule-tab:hover,
.schedule .schedule-tab:focus-visible,
.schedule .schedule-tab.is-active{
	background: #333;
	color: var(--white);
	outline: none;
}

.schedule .schedule-month-panel{
	display: grid;
	gap: var(--gap);
}

.schedule .schedule-month-panel[hidden]{
	display: none;
}
.single-event section.schedule{
	padding-bottom:0;
}
.event{
	color:var(--white);
	position: relative;
	display: block;
    border-radius: 20px;
	overflow: hidden;
}
.event h2{
	margin-top:10px;
}

.view-all{
	text-align: center;
}
.event .image{
	position: absolute;
	z-index: 1;
	top:0;
	left:0;
	width:100%;
	height:100%;
	background-size: cover;
	background-position: center;
}
.post-edit-link{
	z-index: 333;
	background:red;
	color:#fff;
	position: relative;
}
.event .info{
	position: relative;
	z-index: 3;
	padding:var(--padding-w);
}
.event .overlay{
	transition: all .3s ease;
	opacity: 1;
}
.event:hover .info::after{
	right: 25px;
}
.event:hover .overlay{
	opacity: .85;
}
.event .info h6{
	margin:0;
	font-weight: 500;
}

.event .info .place{
	display: block;
	padding-right:50px;
	font-weight:500;
	text-align:right;
	font-size:23px;
	line-height:28px;
    position: absolute;
    right: 5vw;
    top: calc(50% - 12px);
}

.event .info::after{
	content: "";
    position: absolute;
    transition: all .3s ease;
    right: 30px;
	top:50%;
    transform: translateY(-50%);
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background-color: var(--white);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h12' stroke='%23222222' stroke-width='2.4' stroke-linecap='round'/%3E%3Cpath d='m13 7 5 5-5 5' fill='none' stroke='%23222222' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
    background-size: 24px 24px;
}
.schedule .head h4{
	margin:0;
}
.schedule .head{
	text-align: center;
	padding-bottom:40px;
}

/* ------------------------------ RIDES GRID ------------------------------------------- */

section.rides-nodes{
	padding: var(--padding-v) var(--padding-w);
	background:var(--bg-beige);
}
section.rides-nodes .container{
	max-width: unset;
}
#filter{
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 10px;
    margin-bottom: 60px;
}

#filter .filter-button{
	border: 0;
    background: var(--white);
    color: var(--black);
    padding: 10px 26px;
    border-radius: 50px;
    font-family: "filson-pro", sans-serif;
    font-size: 20px;
    line-height: 25px;
    font-weight: 500;
    cursor: pointer;
    transition: all .25s ease;
}

#filter .filter-button.active,
#filter .filter-button:hover{
	background: var(--pink);
	color: var(--white);
}

.rides-grid{
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--gap);
}

.ride-node{
	position: relative;
	display: block;
	border-radius: 20px;
	overflow: hidden;
	padding:10px;
	color: var(--black);
	background: var(--white);
	transition: opacity .22s ease, transform .22s ease;
}

.ride-node.is-hiding{
	opacity: 0;
	transform: scale(.96);
	pointer-events: none;
}

.ride-node.is-hidden{
	display: none;
}

.ride-node .image{
	aspect-ratio: 3/2;
	border-radius: 10px;
	transition: transform .4s ease;
}

.ride-node .info{
	width: 100%;

}

.ride-node .info h6{
	font-weight: 600;
	margin: 14px 0 0 0;
	margin-bottom:6px;
	font-size:20px;
	text-align: center;
	letter-spacing: -.4px;
}



.ride-node:hover {
	background:var(--pink);
	color: var(--white);
}

/* ------------------------------ SUGGESTIONS ------------------------------------------- */

section.suggestions{
	padding: var(--padding-v) var(--padding-w);
	background: var(--bg-beige);
    text-align: center;
}

section.suggestions > h4{
	text-align: center;
	margin-bottom: 30px;
}

.suggestions-grid{
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--gap);
}

.home .schedule .head, .single-event .schedule .head{
	display: block;

}
.page-id-45 section.schedule{
	padding:0;
}
.page-id-45 section.schedule .head{
	display: none;
}

/* --------------------------------------------- MARQUEE ------------------------------------------- */

.marquee{
	padding: 16px 0;
	color:var(--white);
	overflow: hidden;

}

.marquee .marquee-content{
	font-size: 21px;
	line-height: 25px;
	font-weight: 500;
	overflow: hidden;
	position: relative;
}

.marquee .marquee-track{
	display: flex;
	align-items: center;
	width: max-content;
	white-space: nowrap;
	animation: marquee-scroll 80s linear infinite;
	will-change: transform;
}

.marquee .marquee-group{
	display: inline-flex;
	align-items: center;
	justify-content: flex-start;
	width: max-content;
	flex-shrink: 0;
    gap: 5vw;
	margin-right:5vw;
}

.marquee .marquee-item{
	display: inline-flex;
	align-items: center;
	flex: 0 0 auto;
}

.marquee .marquee-separator{
	opacity: .8;
	margin: 0;
}

.marquee-link{
	position:absolute;
	z-index: 1;
	top:0;
	left:0;
	width:100%;
	height:100%;
}

@keyframes marquee-scroll {
	from {
		transform: translateX(0);
	}
	to {
		transform: translateX(-50%);
	}
}

@media (prefers-reduced-motion: reduce) {
	.marquee .marquee-track{
		animation: none;
	}
}

/* --------------------------------------------- INLINE VIDEO ------------------------------------------- */
section.inline_video{
    text-align: center;
    padding: var(--padding-v) var(--padding-w);
}

section.inline_video .vimeo-poster{
	display: none;
}
section.inline_video iframe{
	width: 100%;
	max-width: 800px;
	aspect-ratio: 16/9;
	border: 0;
	border-radius: 20px;
}

/* --------------------------------------------- FORM ------------------------------------------- */
section.form{
	padding: var(--padding-v) var(--padding-w);
	background: var(--bg-beige);
}

.gform-theme--framework .gf_progressbar .percentbar_blue{
	background-color: var(--blue) !important;
}
form .gf_progressbar_title{
	color:var(--black) !important;
}

form h3{

    font-size: 25px;
    line-height: 35px;
    font-weight: 500;
    letter-spacing: -.5px;
    margin-bottom: 10px;
}

#page form{
	max-width: 900px;
	margin: 0 auto;
}



#page label.gform-field-label{
	font-size:16px;
	line-height:21px;
    font-weight: 400;
}

#page legend, #page .gfield--type-textarea label, #page label, #page label.gfield_label{
	font-size: 18px;
	line-height: 24px;
	font-weight: 500;
	letter-spacing: -.5px;
	margin-bottom: 10px;
	color:var(--black);
}
#page legend{
	margin-bottom:10px;
}
#page label{
	margin-bottom:0px;
}
#page .gf_progressbar_wrapper{
    margin-bottom: 40px;
}

#page form .gform_body{
	    padding: 60px;
    background: #f5e3ce;
    border-radius: 20px;
}

#page form .gfield--type-section{
	border:none;
}

#page form .gfield_consent_description{
	border:none;
	padding:0;
	padding-bottom:10px;
    margin-top: 0;
}
#page label.gform-field-label--type-sub, #page .gfield_description, .gsection_description{
	color:Var(--black);
	font-size:14px;
	font-weight:300;
	line-height:21px;
    margin-top: 5px;
}

#page form .gform_fields{
	row-gap:40px;
}
#page form input[type="submit"]{
	border: 0;
	background: var(--pink);
	color: var(--white);
	padding: 14px 30px;
	border-radius: 50px;
	font-family: "filson-pro", sans-serif;
	font-size: 18px;
	line-height: 22px;
	font-weight: 500;
	cursor: pointer;
	transition: all .25s ease;
}

#page form input[type="submit"]:hover{
	background: var(--blue);
}


#page form .gform_previous_button, #page form .gform_next_button{
	border:none;
	border-radius: 50px;
	    padding: 14px 20px;
    font-size: 16px;
    min-width: unset;
    line-height: 16px;
}

#page form .gform_next_button{
	background:var(--blue);
}

#page form .gform_page_footer{
	margin-top:40px;
}

/* --------------------------------------------- POPUP ------------------------------------------- */

section.wca-popup-block {
		--wca-bg: #0b1420;
		--wca-surface: #f8f5ef;
		--wca-overlay: rgba(6, 12, 21, 0.72);
		padding: 20px;
    background: var(--bg-lime);
	}

	section.wca-popup-block .content{
		    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
	}
	.wca-popup-launch {
		appearance: none;
		border:none;
		background: var(--orange);
		padding: 10px 20px;
		border-radius: 50px;
		font-size: 16px;
		line-height: 20px;
		font-weight: 500;
		cursor: pointer;
		display: inline-block;
    white-space: nowrap;
	}

	.wca-popup-content table {
		width: 100%;
		border-collapse: collapse;
		margin: 10px 0;
		font-size: 0.95rem;
		line-height: 1.6;
		border: 2px solid rgba(11, 20, 32, 1);
		border-radius: 0.5rem;
		overflow: hidden;
    background: #fff;
	}

	.wca-popup-content table thead {
		background: rgba(11, 20, 32, 0.12);
	}

	.wca-popup-content table th {
		padding: 0.85rem 1rem;
		text-align: left;
		font-weight: 700;
		color: var(--wca-bg);
		border-bottom: 2px solid rgba(11, 20, 32, 0.2);
	}

	.wca-popup-content table tbody tr {
		transition: background-color 0.2s ease;
	}

	.wca-popup-content table tbody tr:nth-child(odd) {
		background: rgba(11, 20, 32, 0.03);
	}

	.wca-popup-content table tbody tr:nth-child(even) {
		background: rgba(11, 20, 32, 0.10);
	}


	.wca-popup-content table td {
		padding: 0.85rem 1rem;
		color: var(--wca-text);
	}
	.wca-popup-content hr{
		margin:60px 0px;
	}

section.wca-popup-block h6{
	margin:0;
}

	.wca-popup-content table td:first-of-type{
		font-weight:500;
	}
	.wca-popup-overlay {
		position: fixed;
		inset: 0;
		display: grid;
		place-items: center;
		padding: 1rem;
    	background: rgba(0, 0, 0, .7);
	backdrop-filter: blur(16px);

		z-index: 9999;
	}

	.wca-popup-overlay[hidden] {
		display: none !important;
	}

	.wca-popup-dialog {
		position: relative;
		width: min(100%, 1200px);
		max-height: 88vh;
		overflow: auto;
		border-radius: 1rem;
		background: radial-gradient(circle at 100% 0%, #ffffff 0%, var(--wca-surface) 65%);
		border: 1px solid rgba(11, 20, 32, 0.15);
		box-shadow: 0 30px 60px rgba(0, 0, 0, 0.35);
	}

	.wca-popup-content {
		padding: clamp(1.1rem, 4vw, 2.25rem);
		color: var(--wca-text);
			display: grid;
    background: var(--bg-beige);
		grid-template-columns: 1fr 1fr;
		gap: 40px;
	}

	.wca-popup-eyebrow {
		margin: 0 0 0.4rem;
		color: var(--wca-accent);
		font-size: 0.82rem;
		text-transform: uppercase;
		letter-spacing: 0.09em;
		font-weight: 700;
	}

	.wca-popup-content h2 {
		margin: 0;
		font-size: clamp(1.35rem, 5vw, 2rem);
		line-height: 1.15;
	}

	.wca-popup-content p {
		margin: 0.85rem 0 1.25rem;
		font-size: clamp(0.98rem, 2.8vw, 1.08rem);
		line-height: 1.55;
	}

	.wca-popup-cta {
		display: inline-block;
		text-decoration: none;
		background: var(--wca-bg);
		color: #fff;
		border-radius: 0.65rem;
		padding: 0.8rem 1rem;
		font-weight: 600;
	}

	.wca-popup-close {
		position: absolute;
		top: 0.55rem;
		right: 0.55rem;
		z-index: 2;
		display: grid;
		place-items: center;
		width: 2.2rem;
		height: 2.2rem;
		border: 0;
		border-radius: 999px;

		background: var(--pink);
		color: #fff;
		font-size: 30px;
		line-height: 35px;
		cursor: pointer;
	}

	.wca-popup-close:hover,
	.wca-popup-close:focus-visible {
		outline: none;
	}

	section.form .head h4{
		text-align: center;
		margin-bottom:30px;
	}

	section.event-map{
		overflow: hidden;
	}

	.single-event .view-all{
		margin-bottom:var(--padding-v);
	}

.gform_confirmation_message{
	text-align: center !important;
}