@import url('animations.css');
@import url('lightbox.css');
@import url('../../../styles/core/reset.css');
@import url('../../../styles/core/responsive.css');
@import url('../../../styles/plugins/remixicon.css');

/*//////////////////////////////////////////*/
/* Core */
/*//////////////////////////////////////////*/

html{
	background: #f4f7ff;
	min-width:360px;

	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	box-sizing: border-box;
}
body{
	width: 1400px;
	max-width: calc(100% - 30px);
	min-height: 100vh;
	margin: 0 auto;
	color: #121b24;
	background: #f4f7ff;
	font-family: "Rubik", sans-serif;
	font-optical-sizing: auto;
	font-weight: 400;
	font-size: 16px;
	font-style: normal;
	overflow-x:hidden;
}

/*//////////////////////////////////////////*/
/* Common */
/*//////////////////////////////////////////*/

/* Links */

a{
	color:inherit;
	text-decoration:none;
	transition:all 200ms linear;
}
a:hover{
	color:inherit;
	text-decoration:none;
}
a.link_anchor{
	border-bottom: 1px dashed currentcolor;
}
a.link_anchor:hover{
	border-bottom: 1px solid currentcolor;
}
a.link_undrl{
	text-decoration:underline;
}
a.link_undrl:hover{
	text-decoration:none;
}

/* Texts */

.txt_500{
	font-weight: 500;
}
.txt_12_16{
    font-size: 12px;
    line-height: 16px;
}
.txt_14_18{
	font-size: 14px;
	line-height: 18px;
}
.txt_16_22{
	font-size: 16px;
	line-height: 22px;
}
.txt_18_24{
	font-size: 18px;
	line-height: 24px;
}
@media (max-width:600px) {
	.txt_18_24{
		font-size: 16px;
		line-height: 22px;
	}
}
.txt_32_38{
	font-size: 32px;
	line-height: 38px;
}
@media (max-width:600px) {
	.txt_32_38{
		font-size: 24px;
		line-height: 30px;
	}
}

/* Call to action */

.c2a{
	display: inline-flex;
    flex-direction: row;
    align-items: center;
	white-space: nowrap;
	line-height: 50px;
	padding: 0 20px;
    border-radius: 25px;
    background: #f3a044;
    font-size: 14px;
    text-transform: uppercase;
	box-shadow: 0 0 0 0 rgba(210, 137, 32, 0);
	animation: c2a 1000ms infinite;
	text-shadow: none !important;
	color: #121b24 !important;
}
.c2a i{
	display: inline-block;
	padding-right: 5px;
    font-size: 18px;
}

/* Shadows */

.shdw_1{
    box-shadow: 0 5px 40px 0 rgba(0, 17, 67, 0.15);
}

/* Images */

.img_cover{
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
}
.img_contain{
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}

/* Blocks */

.hide_me{
	display: none;
}
.blck_narrow{
	padding-left: 60px;
	padding-right: 60px;
}
@media (max-width:1100px) {
	.blck_narrow{
		padding-left: 30px;
		padding-right: 30px;
	}
}
@media (max-width:600px) {
	.blck_narrow{
		padding-left: 15px;
		padding-right: 15px;
	}
}

/*//////////////////////////////////////////*/
/* Ticket */
/*//////////////////////////////////////////*/

#ticket{
	display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
	padding: 90px 0 0;
	min-height: calc(100vh - 190px);
}
#ticket .ticket{
	background: #ffffff;
	padding: 30px;
	width: 500px;
	max-width: 100%;
	border-radius: 15px;
}
#ticket .ticket .redirecting{
	display: flex;
	flex-direction: column;
	text-align: center;
	gap: 10px;
}
#ticket .ticket .redirecting div{
	margin: 0 auto;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	border: 2px solid rgba(9, 86, 155, 0.35);
	border-right: 2px solid #f4f7ff;
	animation: spin 400ms infinite linear;
}
#ticket .ticket .title strong{
	display: block;
	font-size: 12px;
    text-transform: uppercase;
    color: #09569b;
}
#ticket .ticket .title svg{
	display: block;
    width: 400px;
    max-width: 100%;
    height: auto;
    fill: #09569b !important;
    margin: 10px 0 15px;
}
#ticket .ticket .title div{
	display: block;
}
#ticket .ticket .number{
	padding: 30px 0 15px;
}
#ticket .ticket .number strong{
	display: flex;
    align-items: center;
    gap: 10px;
}
#ticket .ticket .number strong span{
	display: block;
	font-weight: 400;
	font-size: 12px;
    text-transform: uppercase;
	padding: 0 8px;
    background: #a9e592;
    border-radius: 5px;
}
#ticket .ticket .data{
	margin-bottom: 15px;
}
#ticket .ticket .sent{
	margin-bottom: 30px;
}
#ticket .ticket .not_found{
	text-align: center;
	padding: 30px 0 60px;
}
#ticket .ticket .back{
	display: block;
	text-align: center;
	padding: 15px 10px;
    color: #ffffff;
    background: #09569b;
    border-radius: 10px;
}

/*//////////////////////////////////////////*/
/* Intro */
/*//////////////////////////////////////////*/

#intro{
	display: flex;
	flex-direction: column;
    justify-content: space-between;
	gap: 30px;
	padding: 30px 0 0;
	min-height: 700px;
}
@media (max-width:1000px) {
	#intro{
		padding: 15px 0 0;
	}
}

/* String */

#intro .string{
	display: flex;
	flex-direction: row;
    justify-content: space-between;
    align-items: center;
    height: 50px;
}
#intro .string .logos{
	display: flex;
	flex-direction: row;
    align-items: center;
	gap: 10px;
	min-width: 25%;
}
#intro .string .logos a{
	display: block;
	opacity: 0.6;
}
#intro .string .logos a:hover{
	opacity: 1;
}
#intro .string .logos a svg{
	display: block;
    width: auto;
    max-width: 100px;
    height: 40px;
	fill: #09569b;
}
@media (max-width:500px) {
	#intro .string .logos a svg{
        max-width: 65px;
        height: 30px;
	}
}
#intro .string .nav{
	display: flex;
    justify-content: center;
	min-width: 50%;
}
#intro .string .nav ul{
	display: inline-flex;
    justify-content: center;
    align-items: center;
    gap: 15px;
	height: 50px;
	background-color: #ffffff;
	padding: 0 20px;
	border-radius: 25px;
}
#intro .string .nav ul li{
	display: flex;
    align-items: center;
    gap: 15px;
}
#intro .string .nav ul li:not(:first-child):before{
	content: '';
	display: block;
	width: 10px;
	height: 10px;
    background: #f3a044;
    border-radius: 50%;
}
#intro .string .nav ul li.dd{
	display: none;
}
#intro .string .nav ul li a{
	display: block;
	line-height: 30px;
}
#intro .string .nav ul li a:hover{
	color: #09569b;
}
@media (max-width:1000px) {
	#intro .string .nav{
		display: none;
		position: fixed;
		top: 80px;
		right: 15px;
		min-width: 100px;
		z-index: 100;
	}
	#intro .string .nav.mobile{
		display: block;
	}
	#intro .string .nav.mobile ul{
		display: flex;
		flex-direction: column;
	    justify-content: unset;
        align-items: stretch;
	    gap: 10px;
		height: unset;
		padding: 15px 0;
		border-radius: 15px;
	}
	#intro .string .nav ul li:not(:first-child):before{
		display: none;
	}
	#intro .string .nav ul li,
	#intro .string .nav ul li.dd{
		display: block;
	}
	#intro .string .nav ul li a{
		padding: 0 25px;
	}
}
#intro .string .join{
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-end;
	gap: 10px;
	min-width: 25%;
}
@media (max-width:1000px) {
	#intro .string .join{
	    position: fixed;
	    right: 15px;
	    top: 15px;
	    z-index: 100;
	}
}
#intro .string .join .c2a span:first-of-type{
	display: inline;
}
#intro .string .join .c2a span:last-of-type{
	display: none;
}
@media (max-width:1100px) {
	#intro .string .join .c2a span:first-of-type{
		display: none;
	}
	#intro .string .join .c2a span:last-of-type{
		display: inline;
	}
}
#intro .string .join .burger{
    display: none;
    width: 50px;
	height: 50px;
	line-height: 50px;
	border-radius: 50%;
	text-align: center;
	background: #ffffff;
	font-size: 20px;
}
@media (max-width:1000px) {
	#intro .string .join .burger{
	    display: block;
	}
}
#intro .string .join .burger i:first-child,
#intro .string .join .burger.open i:last-child{
    display: inline-block;
}
#intro .string .join .burger.open i:first-child,
#intro .string .join .burger i:last-child{
    display: none;
}

/* Title */

#intro .title{
	display: flex;
	flex-direction: row;
    justify-content: space-between;
    align-items: center;
	gap: 15px;
	margin: 30px 0;
}
@media (max-width:1100px) {
	#intro .title{
		flex-direction: column;
		text-align: center;
	}
}
@media (min-width:1100px) {
	#intro .title .first{
		width: 40%;
	}
}
#intro .title .first .tagline{
	font-size: 18px;
	text-transform: uppercase;
	color: #09569b;
}
#intro .title .first h1{
	font-size: 0;
}
#intro .title .first svg{
	display: block;
	width: 460px;
	max-width: 100%;
	height: auto;
	fill: #09569b !important;
	margin: 10px 0 20px;
}
#intro .title .first .dates{
	display: block;
}
#intro .title .second{
	text-align: right;
	max-width: 700px;
}
@media (min-width:1100px) {
	#intro .title .second{
		width: 50%;
	}
}
@media (max-width:1100px) {
	#intro .title .second{
		text-align: center;
	}
}

/* Poster */

#intro .poster{
	display: flex;
	flex-direction: column;
    justify-content: space-between;
	padding-top: 500px;
	position: relative;
}
@media (max-width:600px) {
	#intro .poster{
		display: flex;
		flex-direction: column;
	    justify-content: space-between;
		padding-top: 350px;
		position: relative;
	}
}
#intro .poster .copyright{
    color: #ffffff;
	top: 15px;
	left: 15px;
	font-size: 11px;
	line-height: 13px;
	text-transform: uppercase;
	position: absolute;
	z-index: 10;
    text-shadow: 0px 0 5px rgba(0, 0, 0, 0.65);
}
#intro .poster .vanlifefest{
    width: 130px;
    height: 19px;
    top: 70px;
    right: -45px;
	background-image: url('../images/logo-vlf-214x30.svg');
    transform: rotate(90deg);
    opacity: 0.6;
	position: absolute;
	z-index: 10;
}
#intro .poster .items{
	display: flex;
	flex-direction: row;
	gap: 15px;
	position: relative;
	z-index: 10;
}
@media (max-width:1100px) {
	#intro .poster .items{
		display: grid;
		grid-template-columns: 1fr 1fr;
		grid-template-rows: 1fr 1fr;
		gap: 10px;
	}
}
@media (max-width:600px) {
	#intro .poster .items{
		display: flex;
		flex-direction: column;
	}
}
#intro .poster .items .item{
	display: flex;
	flex-direction: column;
	gap: 10px;
	width: 100%;
	height: 100px;
	background-color: #ffffff;
	border-radius: 15px;
	padding: 15px 15px 13px;
}
#intro .poster .items .item strong{
	font-size: 14px;
	text-transform: uppercase;
	position: relative;
	padding-right: 20px;
}
#intro .poster .items .item strong i{
	width: 22px;
	height: 22px;
	font-size: 22px;
	text-align: center;
	color: #09569b;
	position: absolute;
	right: -2px;
	top: -4px;
}
#intro .poster .items .item p{
	line-height: 20px;
	margin-top: auto;
}
#intro .poster .items .item p i{
	position: relative;
    margin-right: 3px;
	font-style: normal;
}
#intro .poster .items .item p i:before{
	content: '';
	position: absolute;
    top: 9px;
    left: -2px;
    width: calc(100% + 4px);
    height: 2px;
    background: #c52424;
    transform: rotate(-8deg);
}
#intro .poster .items .item p span{
	display: block;
	font-size: 12px;
	line-height: 14px;
}
#intro .poster .bg{
	position: absolute;
	top: 0;
	right: 0;
	left: 0;
	bottom: 50px;
	z-index: 5;
	border-radius: 25px;
	background-image: url('../images/poster.jpg');
    background-position: 60% calc(50% + 10px);
    background-repeat: no-repeat;
	transition: all 200ms linear;
}
@media (max-width:1100px) {
	#intro .poster .bg{
		bottom: 160px;
	}
}
@media (max-width:600px) {
	#intro .poster .bg{
		bottom: 380px;
	}
}

/*//////////////////////////////////////////*/
/* Festival */
/*//////////////////////////////////////////*/

#festival{
	padding: 90px 0;
	position: relative;
}
#festival:before,
#festival:after{
	content: '';
	position: absolute;
	left: 0;
	right: 0;
}
@media (max-width:1100px) {
	#festival:before,
	#festival:after{
		left: -15px;
		right: -15px;
	}
}
#festival:before{
	background: #f4f7ff;
    height: 50%;
    top: 0;
	z-index: 1;
}
#festival:after{
	background-color: #858229;
	background-image: url('../images/festival-grass.jpg');
	background-repeat: no-repeat;
	background-position: bottom;
    border-radius: 0 0 25px 25px;
    height: 50%;
    bottom: 0;
	z-index: 1;
}
#festival h2{
	max-width: 500px;
	display: block;
}
#festival p{
	padding-top: 15px;
	position: relative;
	z-index: 10;
}
#festival div{
	position: relative;
	z-index: 10;
}
#festival .first p{
	max-width: 800px;
}
#festival .second{
	color: #ffffff;
    text-shadow: 0 0 5px rgba(0, 46, 10, 0.7);
}
#festival .second p{
	color: #ffffff;
	column-count: 2;
	column-gap: 30px;
}
@media (max-width:900px) {
	#festival .second p{
		column-count: 1;
	}
}
#festival .image{
	margin: -10% 0;
	position: relative;
	z-index: 5;
}
@media (max-width:1100px) {
	#festival .image{
		margin: -5% -15px;
	}
}
@media (max-width:900px) {
	#festival .image{
		margin: 0 -15px;
	}
}
#festival .image img{
	display: block;
	width: 100%;
}
#festival .image span{
	position: absolute;
	top: 70%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 300px;
	text-align: center;
	color: rgba(255, 255, 255, 0.6);
}

/*//////////////////////////////////////////*/
/* History */
/*//////////////////////////////////////////*/

#history{
	padding: 90px 0;
}
#history .row{
	margin: 0 -5px;
}
#history .title{
	text-align: center;
	margin: 0 auto 20px;
	max-width: 700px;
}
#history .item{
	margin: 10px 5px 0;
	border-radius: 15px;
}
#history .item.thumb{
	display: block;
	aspect-ratio: 16 / 10;
	cursor: zoom-in;
	overflow: hidden;
	background: rgba(255, 255, 255, 0.4);
}
#history .item.thumb:hover{
	background: rgba(255, 255, 255, 0.8);
}
#history .item.thumb img{
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	display: block;
	border-radius: 10px;
}
#history .item.more{
	display: flex;
	flex-direction: column;
	text-align: center;
    justify-content: center;
    gap: 5px;
    min-height: calc(100% - 10px);
	text-transform: uppercase;
	letter-spacing: 0.5px;
	background: #09569b;
	color: #ffffff;
}
#history .item.more i{
	font-size: 24px;
}

/*//////////////////////////////////////////*/
/* Route */
/*//////////////////////////////////////////*/

#route{
	padding: 90px 0;
	background: rgba(9, 86, 155, 0.15);
	border-radius: 25px;
}
@media (max-width:1100px) {
	#route{
		margin: 0 -15px;
	}
}
#route h2{
	padding: 0 0 30px;
}
#route .cards{
	display: grid; 
	grid-template-columns: 1fr 1fr 1fr; 
	grid-template-rows: 1fr 1fr auto 1fr 1fr; 
	gap: 10px; 
	grid-template-areas: 
		"card1 card2 card3"
		"card1 card4 card5"
		"card6 card6 card6"
		"card7 card8 card9"
		"card10 card11 card11"; 
}
@media (max-width:1100px) {
	#route .cards{
		grid-template-columns: 1fr 1fr; 
		grid-template-rows: 1fr 1fr 1fr auto 1fr 1fr 1fr; 
		grid-template-areas: 
			"card1 card2"
			"card1 card3"
			"card4 card5"
			"card6 card6"
			"card7 card8"
			"card9 card10"
			"card11 card11"; 
	}
}
@media (max-width:700px) {
	#route .cards{
		display: flex;
		flex-direction: column;
		max-width: 500px;
		margin: 0 auto;
	}
}
#route .cards .card1 { grid-area: card1; }
#route .cards .card2 { grid-area: card2; }
#route .cards .card3 { grid-area: card3; }
#route .cards .card4 { grid-area: card4; }
#route .cards .card5 { grid-area: card5; }
#route .cards .card6 { grid-area: card6; }
#route .cards .card7 { grid-area: card7; }
#route .cards .card8 { grid-area: card8; }
#route .cards .card9 { grid-area: card9; }
#route .cards .card10 { grid-area: card10; }
#route .cards .card11 { grid-area: card11; }

#route .cards .card{
	display: flex;
	flex-direction: column;
	position: relative;
}
#route .cards .card div{
	color: #ffffff;
	text-shadow: 0 0 3px #000000;
	position: relative;
	z-index: 15;
}
#route .cards .card div.date{
	display: flex;
	flex-direction: column;
	gap: 3px;
	text-transform: uppercase;
	padding: 20px 20px 0;
	margin-bottom: 30px;
	position: relative;
}
#route .cards .card div.date strong{
	display: block;
	font-size: 12px;
	letter-spacing: 0.5px;
}
#route .cards .card div.date span{
	font-size: 10px;
	opacity: 0.7;
}
#route .cards .card div.date i{
	position: absolute;
	top: 20px;
	right: 16px;
	font-size: 25px;
	opacity: 0.7;
}
#route .cards .card div.desc{
	position: relative;
	margin: auto 0 0;
	padding: 40px 20px 16px;
	border-radius: 0 0 15px 15px;
	background: linear-gradient(0deg,rgba(18, 27, 36, 0.7) 0%, rgba(18, 27, 36, 0.2) calc(100% - 40px), rgba(18, 27, 36, 0) 100%);
}
#route .cards .card div.desc h3{
	display: block;
	padding-bottom: 5px;
}
#route .cards .card .img_cover{
	border-radius: 15px;
	overflow: hidden;
	filter: contrast(85%);
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 5;
}
#route .cards .card .img_cover:before{
	content: '';
	background: rgba(0, 0, 0, 0.45);
	transition: all 150ms linear;
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
}
#route .cards .card:hover .img_cover:before{
	background: rgba(0, 0, 0, 0.55);
	backdrop-filter: blur(2px);
}
#route .cards .card .btw{
	display: flex;
    align-items: center;
	gap: 10px;
	padding: 18px 20px;
	border-radius: 15px;
    background: #09569b;
}
@media (max-width:800px) {
	#route .cards .card .btw{
		flex-direction: column;
	}
}
#route .cards .card .btw p{
	flex-shrink: 1;
	max-width: 800px;
}
#route .cards .card .btw .c2a{
	flex-shrink: 0;
	margin-left: auto;
}
#route .important{
	position: relative;
}
#route .important .title{
	position: relative;
	overflow: hidden;
	text-align: center;
	margin: 60px 0;
}
#route .important .title strong{
	position: relative;
    font-size: 18px;
    text-transform: uppercase;
    color: #09569b;
}
#route .important .title strong:before,
#route .important .title strong:after{
	content: '';
	position: absolute;
	top: calc(50% - 1px);
	height: 2px;
	width: 300px;
    background: #09569b;
    border-radius: 2px;
}
#route .important .title strong:before{
	left: -305px;
}
#route .important .title strong:after{
	right: -305px;
}
#route .important .blocks{
	display: flex;
	flex-direction: row;
	gap: 10px;
}
#route .important .blocks .block{
	display: flex;
	flex-direction: column;
	gap: 15px;
	width: 25%;
	flex-shrink: 1;
	padding: 15px;
	border: 1px solid rgba(9, 86, 155, 0.25);
	border-radius: 15px;
}
@media (max-width:1100px) {
	#route .important .blocks{
		flex-wrap: wrap;
	}
	#route .important .blocks .block{
		width: calc(50% - 5px);
	}
}
@media (max-width:600px) {
	#route .important .blocks{
		flex-direction: column;
	}
	#route .important .blocks .block{
		width: 100%;
	}
}
#route .important .blocks .block i{
	font-size: 22px;
    color: #09569b;
}
#route .excursions{
	margin-top: 10px;
	padding: 15px;
	border: 1px solid rgba(9, 86, 155, 0.25);
	border-radius: 15px;
}

/*//////////////////////////////////////////*/
/* Partners */
/*//////////////////////////////////////////*/

#partners{
	padding: 90px 0;
	position: relative;
	z-index: 5;
}
#partners .title{
	text-align: center;
	padding: 0 0 30px;
}
#partners .row{
	margin: 0 -5px;
}
#partners .partner{
	display: flex;
	flex-direction: column;
    align-items: center;
    justify-content: center;
	position: relative;
	margin: 10px 5px 0;
	padding: 10px;
	z-index: 5;
	text-align: center;
	aspect-ratio: 3 / 2;
	background: #ffffff;
	border-radius: 15px;
	opacity: 0.8;
}
#partners .partner:hover{
	transform: scale(1.1, 1.1);
	opacity: 1;
	z-index: 10;
}
#partners .partner img{
	width: 80%;
	height: 80%;
	object-fit: cover;
	object-position: center;
	display: block;
}

/*//////////////////////////////////////////*/
/* Join */
/*//////////////////////////////////////////*/

#join{
	padding: 90px 0;
	border-radius: 25px;
	position: relative;
	z-index: 10;
}
@media (max-width:1100px) {
	#join{
		margin: 0 -15px;
	}
}
@media (max-width:600px) {
	#join{
		padding: 90px 0 0;
	}
}
#join .artwork{
	border-radius: 25px;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 5;
	background-image: url('../images/join.jpg');
}
#join .artwork{
	border-radius: 25px;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 5;
	background-image: url('../images/join.jpg');
}
@media (max-width:600px) {
	#join .artwork{
	    position: relative;
	    height: 500px;
	    top: unset;
	    left: unset;
	    right: unset;
	    bottom: unset;
        margin: -90px 0 -150px;
	}
	#join .artwork:before{
		content: '';
		border-radius: 25px;
		background: rgba(0, 0, 0, 0.3);
	    position: absolute;
	    top: 0;
	    left: 0;
	    right: 0;
	    bottom: 0;
	    z-index: 5;
	}
}
#join .artwork .copyright{
	color: #ffffff;
    top: 15px;
    right: 15px;
    font-size: 11px;
    line-height: 13px;
    text-transform: uppercase;
    text-align: right;
    position: absolute;
    z-index: 10;
    text-shadow: 0px 0 5px rgba(0, 0, 0, 0.65);
}
#join form{
	padding: 30px;
	background: #f4f7ff;
	border-radius: 15px;
	width: 520px;
	max-width: 100%;
	min-height: 600px;
	position: relative;
	z-index: 10;
}
@media (max-width:900px) {
	#join form{
		margin: 0 auto;
	}
}
@media (max-width:600px) {
	#join form{
		padding: 15px;
	}
}
#join form .title h2{
    font-size: 18px;
    text-transform: uppercase;
    color: #09569b;
}
#join form .anchor{
    position: absolute;
    top: -90px;
    width: 100%;
    height: 1px;
}
#join form .title svg{
    display: block;
    width: 460px;
    max-width: 90%;
    height: auto;
    fill: #09569b !important;
    margin: 10px 0 0;
}
#join form .note{
    margin: 15px 0 20px;
}
#join form .discount{
	margin: 0 15px;
	padding: 8px 15px;
	border-radius: 10px 10px 0 0;
	background: #a9e592;
}
#join form .switcher{
    display: flex;
	border: 1px solid rgba(9, 86, 155, 0.25);
	border-radius: 10px;
	margin-bottom: 20px;
}
#join form .switcher label{
	position: relative;
	overflow: hidden;
    display: block;
    padding: 10px 10px 10px 40px;
    width: 50%;
    cursor: pointer;
	transition: all 200ms linear;
}
#join form .switcher label:first-of-type{
    border-radius: 10px 0 0 10px;
}
#join form .switcher label:last-of-type{
    border-radius: 0 10px 10px 0;
}
#join form .switcher label:has(input[type="radio"]:checked){
    background: rgba(9, 86, 155, 0.15);
}
#join form .switcher label .check{
	position: absolute;
	top: 7px;
	left: 7px;
	display: flex;
	flex-direction: column;
    align-items: center;
    justify-content: center;
	font-size: 24px;
	width: 30px;
	height: 30px;
	opacity: 0.4;
	transition: all 200ms linear;
}
#join form .switcher label:has(input[type="radio"]:checked) .check{
    color: #09569b;
    opacity: 1;
}
#join form .switcher label .check i:last-of-type,
#join form .switcher label:has(input[type="radio"]:checked) .check i:first-of-type{
    display: none;
}
#join form .switcher label .check i:first-of-type,
#join form .switcher label:has(input[type="radio"]:checked) .check i:last-of-type{
    display: block;
}
#join form .switcher label p{
	display: block;
	padding-bottom: 5px;
}
#join form .switcher label strong{
	display: block;
	font-size: 16px;
	font-weight: 600;
}
#join form .switcher label input{
    display: block;
    width: 1px;
    height: 1px;
    border: 0;
    padding: 0;
    position: absolute;
    left: -100px;
}
#join form input,
#join form select,
#join form button{
	font-family: "Rubik", sans-serif;
	font-weight: 400;
	font-size: 16px;
}
#join form input,
#join form select{
	display: block;
    width: 100%;
    height: 40px;
    background: transparent;
	padding: 0 10px;
	border: 1px solid rgba(9, 86, 155, 0.25);
	border-radius: 10px;
}
#join form select{
	cursor: pointer;
}
#join form .field{
    margin-bottom: 15px;
}
#join form .field:has(select) {
	display: flex;
    gap: 10px;
}
#join form .promocode_form{
    display: flex;
    flex-direction: row;
    position: relative;
    width: 100%;
    height: 40px;
    margin-bottom: 5px;
}
#join form .promocode_form input{
    display: block;
    width: 100%;
    height: 40px;
    background: transparent;
    flex-shrink: 1;
	padding: 0 10px;
	border: 1px solid rgba(9, 86, 155, 0.25);
	border-right: 0;
	border-radius: 10px 0 0 10px;
	text-transform: uppercase;
}
#join form .promocode_form a{
    display: block;
    line-height: 38px;
    flex-shrink: 1;
	padding: 0 10px;
	border: 1px solid rgba(9, 86, 155, 0.25);
	border-radius: 0 10px 10px 0;
	font-size: 12px;
	letter-spacing: 0.5px;
	text-transform: uppercase;
}
#join form .promocode_form a:hover{
	background: rgba(9, 86, 155, 0.15);
    color: #09569b;
}
#join form .promocode_form .process{
	display: none;
    align-items: center;
    justify-content: center;
	gap: 5px;
	padding: 5px;
	background: #f4f7ff;
	border: 1px solid rgba(9, 86, 155, 0.25);
	border-radius: 10px;
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	font-size: 12px;
	letter-spacing: 0.5px;
	text-transform: uppercase;
}
#join form .promocode_form .process.show{
	display: flex;
}
#join form .promocode_form .process div{
	width: 20px;
	height: 20px;
	border-radius: 50%;
	border: 2px solid rgba(9, 86, 155, 0.35);
	border-right: 2px solid #f4f7ff;
	animation: spin 400ms infinite linear;
}
#join form .promocode_status{
	display: none;
	background: rgba(9, 86, 155, 0.15);
	border-radius: 10px;
	padding: 8px 10px;
	margin-bottom: 5px;
	font-size: 14px;
	line-height: 20px;
	color: rgba(9, 86, 155, 0.85);
}
#join form .submit{
	padding: 15px 0;
	text-align: right;
}
#join form .submit button{
	display: inline-block;
	cursor: pointer;
	height: 50px;
	padding: 0 25px;
    background: #09569b;
    border-radius: 25px;
    border: 0;
	color: #ffffff;
}
#join form .rules{
	opacity: 0.6;
	text-align: center;
}
#join form .loader{
	display: none;
	flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
	text-align: center;
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 10;
	background: #f4f7ff;
	border-radius: 15px;
	opacity: 0;
	transition: all 200ms linear;
}
#join form .loader div{
	width: 50px;
	height: 50px;
	border-radius: 50%;
	border: 2px solid rgba(9, 86, 155, 0.35);
	border-right: 2px solid #f4f7ff;
	animation: spin 400ms infinite linear;
}

/*//////////////////////////////////////////*/
/* Guests */
/*//////////////////////////////////////////*/

#guests{
	padding: 60px 0 0;
	margin: -60px 15px 0;
	position: relative;
	border: 1px solid rgba(9, 86, 155, 0.35);
	border-radius: 0 0 25px 25px;
	z-index: 5;
}
#guests .label{
	padding: 10px 15px;
	text-align: center;
}
#guests .list{
	display: none;
	max-width: 100%;
	overflow-x: auto;
}
#guests .list table{
	width: 100%;
	min-width: 1100px;
	table-layout: fixed;
	border-collapse: collapse;
}
#guests .list table th{
	font-size: 12px;
	text-transform: uppercase;
	background: rgba(9, 86, 155, 0.05);
}
#guests .list table tbody tr{
	transition:all 200ms linear;
}
#guests .list table tbody tr:hover{
	background: rgba(9, 86, 155, 0.05);
}
#guests .list table th,
#guests .list table td{
	padding: 10px;
	font-weight: 400;
	border-top: 1px solid rgba(9, 86, 155, 0.15);
}
#guests .list table thead tr th:nth-child(1),
#guests .list table tbody tr td:nth-child(1){
	width: 50px;
	text-align: center;
}
#guests .list table thead tr th:nth-child(2),
#guests .list table tbody tr td:nth-child(2){
	min-width: 300px;
	text-align: left;
}
#guests .list table thead tr th:nth-child(3),
#guests .list table tbody tr td:nth-child(3){
	width: 200px;
	text-align: left;
}
#guests .list table thead tr th:nth-child(4),
#guests .list table tbody tr td:nth-child(4){
	width: 200px;
	text-align: left;
}
#guests .list table thead tr th:nth-child(5),
#guests .list table tbody tr td:nth-child(5){
	width: 200px;
	text-align: left;
}
#guests .list table thead tr th:nth-child(6),
#guests .list table tbody tr td:nth-child(6){
	width: 150px;
	text-align: center;
}
#guests .list table thead tr th:nth-child(7),
#guests .list table tbody tr td:nth-child(7){
	width: 150px;
	text-align: right;
}
#guests .list table tfoot tr{
	text-align: right;
	border-top: 1px solid rgba(9, 86, 155, 0.15);
}
#guests .list table tfoot tr td:nth-child(1){
	text-align: right;
}
#guests .list table tfoot tr td:nth-child(2){
	width: 150px;
	text-align: center;
}
#guests .list table tfoot tr td:nth-child(3){
	width: 150px;
	text-align: right;
}

/*//////////////////////////////////////////*/
/* Feedback */
/*//////////////////////////////////////////*/

#feedback{
	padding: 90px 0;
}
#feedback .grid{
	position: relative;
}
#feedback .grid .content{
	width: 60%;
	padding: 0 30px;
}
#feedback .grid h2{
	display: block;
	padding-bottom: 15px;
}
#feedback .grid .inner{
	border-radius: 25px;
	margin: 30px 0;
	padding: 30px 0;
    background: rgba(9, 86, 155, 0.15);
}
#feedback .grid .inner .links{
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 5px;
    padding: 15px 0 30px;
}
#feedback .grid .inner .links a{
    display: block;
    padding: 6px 15px;
    background: rgba(9, 86, 155, 0.15);
    border-radius: 15px;
}
#feedback .grid .inner .links a:hover{
    display: block;
    padding: 6px 15px;
    background: rgba(9, 86, 155, 0.25);
    border-radius: 15px;
}
#feedback .grid .inner .numbers{
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}
#feedback .grid .inner .numbers .legend{
    width: 100%;
    flex-shrink: 0;
    padding: 12px 15px;
    border: 1px solid rgba(9, 86, 155, 0.15);
    border-radius: 15px;
}
#feedback .grid .inner .numbers .num{
    width: calc(50% - 5px);
    padding: 12px 15px;
    flex-shrink: 1;
    border: 1px solid rgba(9, 86, 155, 0.15);
    border-radius: 15px;
}
#feedback .grid .inner .numbers .num strong{
    display: block;
	font-size: 22px;
	color: #09569b;
	padding-bottom: 5px;
}
#feedback .grid .inner .award{
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
	position: absolute;
	top: 0;
	bottom: 0;
	left: 60%;
	right: 30px;
}
#feedback .grid .inner .award a{
    display: inline-block;
    max-height: 100%;
    max-width: 100%;
	cursor: zoom-in;
	border: 10px solid #ffffff;
	background: #ffffff;
	border-radius: 15px;
}
#feedback .grid .inner .award a img{
	display: block;
	width: auto;
    max-width: 100%;
	height: 100%;
    max-height: 100%;
    object-fit: contain;
	margin: 0 auto;
	border-radius: 10px;
}
#feedback .grid .legal{
	opacity: 0.6;
}
@media (max-width:1100px) {
	#feedback{
		margin: 0 -15px;
	}
	#feedback .grid .inner .award{
    	justify-content: flex-start;
	}
}
@media (max-width:900px) {
	#feedback .grid .content{
		width: 100%;
	}
	#feedback .grid .inner{
	    padding: 30px 0 0;
	}
	#feedback .grid .inner .award{
		width: 300px;
		max-width: calc(100% - 30px);
		height: 350px;
		overflow: hidden;
		margin: 30px auto 0;
    	position: relative;
		top: unset;
		bottom: unset;
		left: unset;
		right: unset;
	}
	#feedback .grid .inner .award a{
		width: 100%;
		border-radius: 15px 15px 0 0;
	}
	#feedback .grid .inner .award a img{
		width: 100%;
        height: auto;
        max-height: unset;
        object-fit: unset;
	}
}
@media (max-width:600px) {
	#feedback .grid .content{
		padding: 0;
	}
	#feedback .grid .inner{
	    margin: 15px -15px;
	    padding: 15px 15px 0;
	}
}

/*//////////////////////////////////////////*/
/* Calendar */
/*//////////////////////////////////////////*/

#calendar{
	position: relative;
}
#calendar .blck_narrow .title{
	width: 600px;
	max-width: 100%;
	margin: 0 auto 30px;
	text-align: center;
}
#calendar .blck_narrow .title h3{
	padding-bottom: 15px;
}
#calendar .blck_narrow .list{
	display: flex;
	flex-wrap: wrap;
	flex-direction: row;
	gap: 15px;
	padding: 30px 30px 90px;
	border-radius: 25px 25px 0 0;
    border: 1px solid rgba(9, 86, 155, 0.35);
    border-bottom: 0;
}
#calendar .blck_narrow .list .event{
	display: flex;
	flex-direction: row;
    align-items: center;
	gap: 10px;
	width: calc(50% - 7.5px);
}
#calendar .blck_narrow .list .event .thumb{
	width: 200px;
	aspect-ratio: 3 / 2;
	flex-shrink: 0;
	border-radius: 15px;
    border: 1px solid rgba(9, 86, 155, 0.15);
}
#calendar .blck_narrow .list .event .desc span{
	display: block;
	padding: 0 0 5px;
	opacity: 0.8;
}
#calendar .blck_narrow .list .event .desc p{
	display: block;
	opacity: 0.7;
}
#calendar .blck_narrow .list .more{
	display: block;
	width: 100%;
	flex-shrink: 0;
	text-align: center;
	text-transform: uppercase;
	padding: 15px 0;
	margin-top: 15px;
    border: 1px solid rgba(9, 86, 155, 0.35);
    border-radius: 15px;
}
#calendar .blck_narrow .list .more:hover{
	background: rgba(9, 86, 155, 0.15);
}
@media (max-width:1000px) {
	#calendar .blck_narrow .list{
		padding: 15px 15px 90px;
	}
	#calendar .blck_narrow .list .event{
		flex-direction: column;
	    align-items: unset;
		width: calc(33.333333% - 15px);
	}
	#calendar .blck_narrow .list .event .thumb{
		width: 100%;
	}
	#calendar .blck_narrow .list .event .desc{
		padding: 0 10px;
	}
}
@media (max-width:800px) {
	#calendar .blck_narrow .list .event{
		width: calc(50% - 7.5px);
	}
}
@media (max-width:600px) {
	#calendar .blck_narrow .list .event{
		width: 100%;
		max-width: 300px;
		margin: 0 auto;
	}
}

/*//////////////////////////////////////////*/
/* Footer */
/*//////////////////////////////////////////*/

#footer{
	padding:90px 15px 60px;
	margin-bottom: 15px;
	position: relative;
	z-index: 10;
	overflow: hidden;
	text-align: center;
	color:#ffffff;
	border-radius: 25px;
	background-color: #121b24;
	background-image: url('../images/footer.jpg');
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
}
#footer:before{
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	border-radius: 25px;
	background-color: #121b24;
	opacity: 0.8;
}
#footer .rvland{
	display:inline-block;
	position: relative;
	z-index: 10;
}
#footer .rvland img{
	display:block;
	width:80px;
	height:auto;
}
#footer ul{
	display:flex;
	flex-direction: row;
    justify-content: center;
    flex-wrap: wrap;
	gap: 10px;
	margin-top: 30px;
	font-size: 0;
	position: relative;
	z-index: 10;
}
#footer ul li{
	display:inline-block;
}
#footer ul li a{
	display:block;
	padding:0 15px;
	height: 30px;
	line-height: 30px;
	font-size:12px;
	text-transform: uppercase;
	color:#ffffff;
	background: rgba(255, 255, 255, 0.2);
	text-decoration: none;
	border-radius: 15px;
}
#footer ul li a:hover{
	background: rgba(255, 255, 255, 0.3);
}
#footer p{
	font-size: 12px;
	line-height: 16px;
	opacity: 0.6;
	max-width: 800px;
	margin: 30px auto 0;
}
#footer p a{
	color: inherit;
}