*, *::before, *::after {
  box-sizing: border-box;
}
:root {
  --bg: rgba(13,13,13,1);
  --bg-mobile: rgba(7,7,7,1);
  --text: rgba(255,255,255,1);
  --text-muted: rgba(248,243,234,0.82);
  --accent: rgba(255,0,4,1);
  --surface: rgba(255,255,255,0.08);
  --surface-strong: rgba(255,255,255,0.12);
  --overlay: rgba(0,0,0,.7);
  --line-fade: rgba(255,255,255,0.1);
  --line-core: rgba(138,138,138,1);
  --white: #000000;
  --ease-premium: cubic-bezier(0.22, 1, 0.36, 1);
  --ease-soft: cubic-bezier(0.16, 1, 0.3, 1);
  --duration-fast: 0.38s;
  --duration-base: 0.72s;
  --duration-slow: 1.05s;
  --shadow-soft: 0 18px 42px rgba(0, 0, 0, 0.24);
}
html {
    font-family: "futura-pt", sans-serif;
    font-weight: 300;
    font-style: normal;
    font-size: 18px;
    letter-spacing: -0.4px;
    color: var(--text);
    background-color: var(--bg);
    min-height: 100%;
    scroll-behavior: smooth;
}
@media screen and (max-width: 768px) {
  html {
    font-size: 16px;
    letter-spacing: 0px;
	  background-color: var(--bg-mobile);
  }
}

html, body {
  height: 100%;
}
body {
  overflow-x: hidden;
}
body.menu-open {
  overflow: hidden;
}
a {
	text-decoration: none;
	color: var(--text);
	transition: color var(--duration-fast) var(--ease-soft), opacity var(--duration-fast) var(--ease-soft), transform var(--duration-fast) var(--ease-soft);
}
a:hover {
  color: var(--accent);
}
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
}
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}

/*-----------------------season-----------------------*/
.season {
	width: 80%;
	margin-left: auto;
	margin-right: auto;
	padding-bottom: 20vh;
  font-size: 20px;
  letter-spacing: -0.3px;
}
@media screen and (max-width: 768px) {
  .season {
	  width: 95%;
    font-size: 16px;
    letter-spacing: 0px;
  }
}
.season img {
	width: 100%;
  margin-bottom: -10vh;
}
@media screen and (max-width: 768px) {
  .season img {
	  width: 90%;
  }
}
.season .text {
  width: 80%;
  text-align:center;
}
.players {
  margin-left: auto;
  margin-right: auto;
  width: 210px;
}
.season_audio_box {
  width: auto;
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  padding-bottom: 10px;
  margin-right: auto;
  margin-left: auto;
}
.season a:hover {
	color: var(--text)
}
.date {
	margin-top: 5vh;
	width: auto;
	margin-left: auto;
	margin-right: auto;
	text-align: center;
}
@media screen and (max-width: 768px) {
  .date{
	  width: 100%;
	  text-align: left;
  }
}

/*-----------------------layout tokens-----------------------*/
.section-shell {
	width: min(80%, 72rem);
	margin-left: auto;
	margin-right: auto;
}
.section-copy {
	width: 80%;
}
.panel-center {
	display: flex;
	justify-content: center;
	align-items: center;
}
.panel-card {
	max-width: 800px;
	text-align: left;
}
.cta_wrap {
	text-align: center;
	margin-left: auto;
	margin-right: auto;
}
.cta_link,
.tickets_btn a,
.orchestra_btn a,
.shop_btn a {
	font-family: "Milano Sans", sans-serif;
	color: rgba(255,0,0,1.00) !important;
	background-color: rgba(255,255,255,0.00);
	font-size: 25px;
	letter-spacing: 10px;
	height: auto;
	width: auto;
	text-align: center;
	padding: 20px;
	margin-top: 2vh;
	margin-bottom: 2vh;
	border: 0.5px solid rgba(255,0,0,1.00) !important;
	transition: transform var(--duration-fast) var(--ease-premium), color var(--duration-fast) var(--ease-soft), border-color var(--duration-fast) var(--ease-soft), box-shadow var(--duration-fast) var(--ease-soft), background-color var(--duration-fast) var(--ease-soft);
	display: inline-block;
}
.cta_link:hover,
.tickets_btn a:hover,
.orchestra_btn a:hover,
.shop_btn a:hover {
	transform: translate3d(0, -4px, 0) scale(1.02);
	color: rgba(255,255,255,1.00) !important;
	border-color: rgba(255,255,255,1.00) !important;
	box-shadow: 0 14px 36px rgba(255, 0, 4, 0.14);
}
@media screen and (max-width: 768px) {
  .section-shell,
  .section-copy {
	  width: 95%;
  }
  .cta_link,
  .tickets_btn a,
  .orchestra_btn a,
  .shop_btn a {
	  font-size: 13px;
	  letter-spacing: 6px;
	  padding: 7px;
  }
}

/*----------------------cursor----------------------*/
.custom-cursor {
    position: fixed;
    top: 0;
    left: 0;
    width: 10px;
    height: 10px;
    background-color: transparent;
    background-color: var(--text);
    border-radius: 50%;
    pointer-events: none;
    display: flex;
    justify-content: center;
    align-items: center;
    transition: width 0.2s ease, height 0.2s ease, background-color 0.2s ease;
    z-index: 999;
}
@media screen and (max-width: 768px) {
  .custom-cursor{
    display: none
  }
}
.custom-cursor.hover-active {
  width: 15px;
  height: 15px;
  background-color: var(--accent);
}

/*----------------------image hover----------------------*/
a img {
	transition: transform 0.85s var(--ease-premium), filter 0.7s var(--ease-soft), box-shadow 0.7s var(--ease-soft);
	transform-origin: center center;
}
a img:hover {
	transform: scale(1.045);
}
a img:active {
	transform: scale(1.02);
}
strong {
	font-family:"futura", "sans-serif";
	font-size: 13px;
	letter-spacing: -.5px;
	font-weight: 600;
	color: var(--text);
	transition: color 0.2s ease-in-out 0.2s;
	text-transform: uppercase
}
@media screen and (max-width: 768px) {
  strong {
	  font-size: 10px;
	  letter-spacing: -.1px;
	  font-weight: 600;
  }
}

/*------------------------transition pages--------------------*/
.transition_pages {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 101;
  background-color: var(--white);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.7s var(--ease-premium), visibility 0.7s var(--ease-premium);
  visibility: hidden;
}
.transition_pages.is-active {
  pointer-events: all;
  opacity: 1;
  visibility: visible;
}

/*---------------------------lines hr-------------------------*/
.vertical {
  width: 1px;
	height: 300px;
  margin: 3vh;
	background-image: linear-gradient(0deg, var(--line-fade) 0%, var(--line-core) 50%, var(--line-fade) 100%);
}
@media screen and (max-width: 768px) {
  .vertical {
     display:none
  }
}
.horizontal {
  	margin-top: 3vh;
	  margin-bottom: 3vh;
  	margin-left: auto;
  	margin-right: auto;
    width: 400px;
    height: 1px;
	  background-image: linear-gradient(90deg, var(--line-fade) 0%, var(--line-core) 50%, var(--line-fade) 100%);
}
@media screen and (max-width: 768px) {
  .horizontal {
      width: 200px;
  }
}
.horizontal_2 {
	display:none
}
@media screen and (max-width: 768px) {
  .horizontal_3{
	margin-top: 3vh;
	margin-bottom: 3vh;
	margin-left: auto;
	margin-right: auto;
  width: 200px;
  height: 1px;
	background-image: linear-gradient(90deg, rgba(255,255,255,0.1) 0%, rgba(138,138,138,1) 50%, rgba(255,255,255,0.1) 100%);
  }
}
.orchestra_page .horizontal {
	margin-bottom: 1vh;
	margin-top: .5vh;
	margin-left: auto;
	margin-right: auto;
  width: 100%;
  height: 1px;
	background-image: linear-gradient(90deg, var(--line-fade) 0%, var(--line-core) 50%, var(--line-fade) 100%);
}
.shop_page .horizontal {
	margin-bottom: 1vh;
	margin-top: .5vh;
	margin-left: auto;
	margin-right: auto;
  min-width: 100%;
  height: 1px;
	background-image: linear-gradient(90deg, var(--line-fade) 0%, var(--line-core) 50%, var(--line-fade) 100%);
}
@media screen and (max-width: 768px) {
  .shop_page .horizontal {
    width: 80%;

    }
}

/*--------------------------text-------------------------*/
.text {
	text-align: justify;
	height: auto;
	margin-left: auto;
	margin-right: auto;
	line-height: .95;
}
@media screen and (max-width: 768px) {
  .text {
    width: 95%;
    padding: 10px;
    }
}

/*----------------------------title-----------------------*/
.title {
    width: 95%;
	  padding-bottom: 5vh;
    font-family: "Milano Sans", sans-serif;
    font-style: normal;
    font-weight: lighter;
    font-size: 8vh;
    letter-spacing: -.5vh;
    color: var(--text);
    text-align: left;
    line-height: .8;
}
@media screen and (max-width: 768px) {
  .title {
      font-size: 5vh;
      letter-spacing: -2px;
	    margin-left: -1vh;
	    margin-bottom: 1vh;
    }
}
.title_2 {
	font-family: "Milano Sans", sans-serif;
    font-style: normal;
    font-weight: lighter;
    font-size: 3vh;
    letter-spacing: -.1vh;
    width: 95%;
    padding-bottom: 1vh;
    color: var(--text);
    text-align: left;
    line-height: .8;
}
@media screen and (max-width: 768px) {
  .title_2 {
      font-size: 3vh;
      letter-spacing: -.05vh;
	    padding-bottom: .5vh;
    }
}

/*---------------------pages name------------------------*/
.page_name {
    position: fixed;
    top: 45%;
    transform: translate(0, -50%) rotate(90deg);
    transform-origin: left center;
    text-align: center;
    height: auto;
    width: 180px;
    right: -160px;
    color: rgba(131,131,131,1.00);
    text-transform: uppercase;
    z-index: 1;
}
@media screen and (max-width: 768px) {
    .page_name {
		top: 40%;
		width: 180px;
    }
}
.page_name strong {
	color: rgba(131,131,131,1.00);
}

/*--------------------------container---------------------*/
.container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 2.5rem;
}
@media (max-width: 765px) {
    .container {
        flex-direction: column;
        width: 100%;
    }
}
.left {
    flex: 5;
    text-align: left;
    min-width: 0;
}
@media screen and (max-width: 768px) {
    .left {
        text-align: center;
        height: auto;
        width: 100%;
        padding: 0;
    }
}
.left .gallery img {
    display: block;
    margin-left: 25%;
    position: relative;
	align-items: center;
    max-width: 80%;
    height: auto;
}
@media screen and (max-width: 768px) {
    .left .gallery img {
   		width: 30vh;
		margin-left: auto;
		margin-right: auto
    }
}
.right {
    flex: 5;
    text-align: left;
    min-width: 0;
    display: flex;
    justify-content: flex-start;
}
@media screen and (max-width: 768px) {
    .right {
        width: 100%;
        text-align: left;
		margin-right: 0%;
        display: block;
    }
}
.left .text {
    width: 100%;
    margin-top: 5vh;
}
.pages .container + .container .left {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 0.42rem;
	text-align: right;
}
.pages .container + .container .left > .audio_box,
.pages .container + .container .left > .media_box {
	margin: 0;
}
@media screen and (max-width: 768px) {
  .pages .container + .container .left {
    gap: 0.32rem;
  }
}

/*-------------------------intro poster--------------------------*/
.intro_poster {
	position: relative;
	width: 100%;
	isolation: isolate;
	background: #000;
	margin-bottom: -12vh;
	z-index: 20;
}
.intro_poster_stage {
	position: relative;
	height: 100vh;
	overflow: hidden;
	background: #000;
}
.intro_poster_media,
.intro_poster_media img,
.intro_poster_overlay {
	position: absolute;
	inset: 0;
}
.intro_poster_media {
	inset: 5vh 0;
}
.intro_poster_media img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: center center;
	transform: translate3d(0, var(--parallax-y, 0px), 0) scale(var(--poster-scale, 1.16));
	transform-origin: center center;
	transition: transform 0.22s linear;
	will-change: transform;
}
.intro_poster_overlay {
	background:
		linear-gradient(180deg, rgba(7,7,7,0.08) 0%, rgba(7,7,7,0.18) 38%, rgba(7,7,7,0.34) 100%),
		linear-gradient(90deg, rgba(0,0,0,0.2) 0%, rgba(0,0,0,0.03) 50%, rgba(0,0,0,0.2) 100%);
	z-index: 1;
}
.intro_poster_scroll {
	position: relative;
	z-index: 2;
	margin-top: -4vh;
	padding: 0 4vw 0;
	pointer-events: auto;
}
.intro_poster_content {
	position: relative;
	width: 88%;
	margin: 0 auto;
	padding: 0 1rem;
	display: grid;
	gap: 1.4rem;
	text-align: left;
	color: rgba(248,243,234,1);
	backdrop-filter: blur(8px);
	pointer-events: auto;
	opacity: 0;
	visibility: hidden;
	z-index: 3;
	transition: opacity 0.75s var(--ease-premium), visibility 0.75s var(--ease-premium), transform 0.9s var(--ease-premium);
	will-change: transform, opacity;
}
.intro_poster_content.is-active {
	opacity: 1;
	visibility: visible;
}
.intro_poster_kicker {
	margin: 0;
	font-size: 0.82rem;
	letter-spacing: 0.45em;
	text-transform: uppercase;
	color: var(--text-muted);
}
.intro_poster_title {
	width: 95%;
	margin: 0;
	font-family: "Milano Sans", sans-serif;
	font-style: normal;
	font-weight: lighter;
	font-size: 9vh;
	letter-spacing: -.5vh;
	text-align: left;
	line-height: .8;
	text-wrap: pretty;
	text-shadow: 0 18px 40px rgba(0,0,0,0.24);
}
.intro_poster_title_accent {
	color: var(--accent);
}
.intro_poster_copy {
	width: 60%;
	margin-left: auto;
	margin-right: auto;
	font-size: clamp(1rem, 1.35vw, 1.12rem);
	line-height: .95;
	text-align: justify;
	color: rgba(248,243,234,0.9);
}
.intro_poster_copy p {
	margin: 0 0 1rem;
}
.intro_poster_copy p:last-child {
	margin-bottom: 0;
}
.intro_poster_booking {
	margin: 0 auto;
	display: inline-flex;
	width: auto;
	max-width: min(100%, 24rem);
	position: relative;
	z-index: 4;
}
.intro_poster_players {
	width: min(320px, 100%);
	margin-left: auto;
	color: rgba(248,243,234,0.92);
	font-size: 0.98rem;
	line-height: 1.4;
}
.intro_poster_players .season_audio_box {
	justify-content: flex-start;
}
.intro_poster_booking_text {
	display: grid;
	gap: 0.35rem;
	width: auto;
	text-align: left;
}
.intro_poster_booking_text span {
	font-size: 0.82rem;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: rgba(248,243,234,0.68);
}
.intro_poster_booking_text a {
	color: rgba(245,212,140,1) !important;
	font-size: clamp(1rem, 1.4vw, 1.2rem);
	text-decoration: none;
	border-bottom: 1px solid rgba(245,212,140,0.5);
	padding-bottom: 0.12rem;
	transition: color 0.3s ease, border-color 0.3s ease, opacity 0.3s ease;
	word-break: break-word;
}
.intro_poster_booking_text a:hover {
	color: rgba(255,240,201,1) !important;
	border-color: rgba(255,240,201,0.95);
	opacity: 1;
}
.intro_poster_partner {
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.95rem;
	flex: 0 0 auto;
	width: 100%;
	max-width: min(100%, 24rem);
	padding: 0.8rem 1rem;
	border: 1px solid rgba(255,255,255,0.18);
	background: rgba(10,10,10,0.28);
	backdrop-filter: blur(10px);
	text-align: left;
	transition: border-color var(--duration-fast) var(--ease-soft), background-color var(--duration-fast) var(--ease-soft), transform var(--duration-fast) var(--ease-premium);
}
.intro_poster_partner:hover {
	border-color: rgba(255,255,255,0.34);
	background: rgba(18,18,18,0.4);
	transform: translate3d(0, -2px, 0);
}
.intro_poster_partner picture {
	display: block;
	position: static;
	width: auto;
	height: auto;
}
.intro_poster_partner img {
	position: static;
	display: block;
	height: 3rem;
	width: auto;
	object-fit: contain;
	filter: drop-shadow(0 10px 24px rgba(0,0,0,0.28));
}
@media screen and (max-width: 768px) {
	.intro_poster {
		margin-bottom: -6vh;
	}
	.intro_poster_scroll {
		margin-top: -3vh;
		padding: 0 6vw 0;
	}
	.intro_poster_content {
		width: 100%;
		gap: 1.1rem;
		padding: 0 1rem;
	}
	.intro_poster_title {
		width: 95%;
		font-size: 5.5vh;
		letter-spacing: -2px;
		margin-left: -1vh;
	}
	.intro_poster_kicker {
		letter-spacing: 0.2em;
	}
	.intro_poster_copy {
		width: 95%;
		padding: 10px;
		line-height: .95;
	}
	.intro_poster_booking {
		width: auto;
		max-width: min(100%, 20rem);
	}
	.intro_poster_booking_text {
		text-align: left;
	}
	.intro_poster_booking {
		margin: 0 auto;
	}
	.intro_poster_partner {
		padding: 0.75rem 0.9rem;
	}
	.intro_poster_players {
		margin-left: auto;
		margin-right: auto;
	}
}

/*----------------------------home------------------------*/
.home {
  	position: relative;
    width: 100%;
    height: 100vh;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
	z-index: 1
}
@media screen and (max-width: 768px) {
    .home {
		margin-bottom: -30px;
    }
}
#home_video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
	  filter: brightness(.8);
	  padding-bottom: 10vh;
}
.home_logo {
	position: relative;
	width: min(94vw, 72rem);
	display: flex;
	flex-direction: column;
	align-items: center;
}
.home_logo .text{
    font-family: "Milano Sans", sans-serif;
    font-style: normal;
    font-weight: lighter;
    width: 100%;
    font-size: clamp(0.95rem, 2vw, 1.7rem);
    letter-spacing: clamp(0.65rem, 2.8vw, 2.9rem);
    margin-bottom: 12vh;
    color: rgba(255,0,0,1.00);
    text-align: center;
    text-transform: uppercase;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: clip;
    line-height: 1;
    bottom: 0
}
@media screen and (max-width: 768px) {
    .home_logo .text{
		width: 100%;
    	font-size: clamp(0.78rem, 2.35vw, 1rem);
		margin-bottom: 10%;
    	letter-spacing: clamp(0.38rem, 1.9vw, 1.1rem);
    }
}
.home_logo img{
    position: relative;
    top: 45%;
    left: 50%;
    transform: translate(-50%, -45%);
    width: 300px;
    z-index: 1;
}
@media screen and (max-width: 768px) {
    .home_logo img{
        width: 200px;
    }
}
@media screen and (max-width: 768px) {
    .home {
        height: 100vh;
    }
    #home_video {
        width: 100%;
        height: 100%;
    }
}

/*--------------------------social------------------------*/
.social_icons {
	position: relative;
	opacity: 0;
	transition: opacity 0.55s var(--ease-soft), transform 0.55s var(--ease-soft);
	transform: translate3d(0, 12px, 0);
	z-index: 9;
}
.social_icons.visible {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}
.social {
    display: flex;
    flex-direction: column;
    align-items: center;
  	position: fixed;
	  top: 40%;
	  gap: 20px;
	  left: 20px;
}
@media screen and (max-width: 992px) {
  .social {
	  left: 5px
    }
}
.social a {
    text-decoration: none;
}
.social img {
    width: 40px;
    height: auto;
    transition: transform 0.3s ease;
	filter: grayscale(1);
}
@media screen and (max-width: 992px) {
  .social img {
	  width: 25px;
    }
}
.social img:hover {
	filter: grayscale(0);
    transform: scale(1.1);
    cursor: pointer;
}
.logo {
	position: fixed;
	right: 3vh;
	bottom: 6vh;
}
.logo img {
	width: 70px;
}

/*-----------------------?-----------------------*/
.program2 {
	width: 100%;
	height: auto;
	color: rgba(72,72,72,1.00);
	margin-bottom: 1vh;
}
@media screen and (max-width: 768px) {
  .program2 {
	  padding: 12px;
  }
}
.date2 {
	margin-top: 5vh;
	width: auto;
	margin-left: auto;
	margin-right: auto;
	text-align: center;
}
@media screen and (max-width: 768px) {
  .date2{
	  width: 100%;
	  text-align: left;
  }
}

/*-----------------------past seasons-----------------------*/
.past_seasons {
	position: relative;
    width: 85%;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    margin-left: auto;
    margin-right: auto;
	z-index: 1
}
@media screen and (max-width: 768px) {
 .past_seasons {
	 width: 95%;
    }
}
.past_seasons img {
  	width: 150px;
    height: auto;
    transition: transform 0.7s var(--ease-premium), filter 0.55s var(--ease-soft), box-shadow 0.55s var(--ease-soft);
    cursor: pointer;
  	box-shadow: 10px 10px 26px -1px rgba(0, 0, 0, 0.3);
}
@media screen and (max-width: 768px) {
 .past_seasons img {
	  width: 80px;
    }
}
.past_seasons a {
    position: relative;
    margin: 10px;
    box-shadow: 10px 10px 26px -1px rgba(0, 0, 0, 0.05);
}
@media screen and (max-width: 768px) {
  .past_seasons a {
	  margin: 5px;
    }
}
.past_seasons a:hover img {
    transform: translate3d(0, -6px, 0) scale(1.035);
    filter: brightness(0.2);
    z-index: 2;
    position: relative;
    box-shadow: 0 20px 48px rgba(0, 0, 0, 0.34);
}
.past_seasons .hover-text {
    font-family: "Milano Sans", sans-serif;
    font-size: 5vh;
  	letter-spacing: -1px;
    color: rgba(255,255,255,1.00);
    margin-top: 20%;
    display: flex;
    justify-content: center;
    align-items: center;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 70%;
    opacity: 0;
    transition: opacity 0.3s ease;
    padding: 10px;
    box-sizing: border-box;
    text-align: center;
}
@media screen and (max-width: 768px) {
  .past_seasons .hover-text  {
	  font-size: 18px;
	  margin-top: 20px;
    }
}
.past_seasons a:hover .hover-text {
    opacity: 1;
    z-index: 3;
}

/*-------------------season 2025 orchestra---------------------*/
.orchestra {
	position: relative;
	text-align: center;
	width: 80%;
	height: auto;
	margin-left: auto;
	margin-right: auto;
}
@media screen and (max-width: 768px) {
  .orchestra {
	  width: 95%;
  }
}
.video_orchestra {
    width: 90%;
    height: auto;
	overflow: hidden;
	margin-left: auto;
	margin-right: auto;
}
@media screen and (max-width: 768px) {
  .video_orchestra {
	  width: 100%;
  }
}

/*-----------------------button link--------------------------*/
.tickets_btn {
	text-align: center;
	margin-left: auto;
	margin-right: auto;
	margin-top: 2vh;
}
.tickets_image img{
	display: block;
	margin-left: auto;
	margin-right: auto;
	padding-bottom: 10vh;
	width: 200px;
	margin-top: 1vh;
}
@media screen and (max-width: 768px) {
  .tickets_image img{
	  width: 150px;
	  padding-bottom: 20vh;
  }
}

/*------------------------button link-------------------------*/
.orchestra_btn {
	text-align: center;
	margin-left: auto;
	margin-right: auto;
	padding-bottom: 20vh;
}

/*---------------------button link----------------------------*/
.shop_btn {
	text-align: center;
	margin-left: auto;
	margin-right: auto;
}
.cd_box {
	margin-bottom: 5vh;
}

.shop em {
  color: red
}

/*-----------------------seasons modal box----------------------*/
.modal_btn {
	border: none;
  cursor: pointer;
  position: relative;
	font-weight: 400;
}
.modal_box {
	position: absolute;
	text-align: left;
	opacity: 0;
  visibility: hidden;
  bottom: 100%;
	left: -200px;
	margin-bottom: 20px;
  width: 400px;
	height: auto;
  padding: 60px;
	color: rgba(27,27,27,1.00);
  background-color: rgba(255,255,255,1.00);
  border: 0px solid #000;
  border-radius: 5px;
  box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.5);
  z-index: 99;
  transition: opacity 0.3s ease, visibility 0.3s ease;
	transition: transform 2s cubic-bezier(0.22, 1, 0.36, 1), opacity .3s ease, visibility .3s ease;
}
@media screen and (max-width: 768px) {
  .modal_box {
      width: 200px;
	  padding: 20px;
	  left: -120px;
	  margin-bottom: 5px;
    }
}
.modal_btn:hover .modal_box{
  	opacity: 1;
    visibility: visible;
}
.modal_box strong {
	color: rgba(27,27,27,1.00);
}

/*----------------------------contact---------------------------*/
.contact {
	width: 80%;
	margin-left: auto;
	margin-right: auto;
	padding-top: 20vh;
}
@media screen and (max-width: 768px) {
.contact {
      width: 95%
    }
}
.contact .title {
	margin-left: 1vh
}
.contact .text {
	margin-top: 5vh;
	text-align: center;
	margin-left: auto;
	margin-right: auto;
}
@media screen and (max-width: 768px) {
.contact .text {
      margin-top: 2vh;
    }
}
.contact img {
	width: 70px;
	padding: 10px;
	transition: transform 0.3s ease-in-out 0.2s;

}
@media screen and (max-width: 768px) {
.contact img {
    width: 40px;
  	padding: 5px;
    }
}
.contact img:hover{
	transform: scale(1.3);
}

/*--------------------------sponsors------------------------*/
.sponsors {
	width: 100%;
	padding: 10vh;
	margin-top: 10vh;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
	margin-left: auto;
	margin-right: auto;
  gap: 40px;
}
@media screen and (max-width: 768px) {
  .sponsors  {
	  gap: 10px;
	  padding: 3vh;
	  padding-bottom: 5vh;
    }
}
.sponsors  div {
    display: flex;
    align-items: center;
}
.sponsors img {
	height: 50px;
}
@media screen and (max-width: 768px) {
  .sponsors img {
	  height: 25px;
    }
}
.sponsors_title {
    width: 100%;
    color: rgba(27,27,27,1.00);
    text-align: center;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 2vh;
    display: flex;
    justify-content: center;
    align-items: center;
  	filter: invert(1)
}

/*------------------------pages--------------------------*/
.pages {
	padding-top: 10vh;
}
@media screen and (max-width: 768px) {
  .pages  {
	  padding-top: 5vh;
    }
}
.pages img {
	width: 450px;
 	display: block;
 	margin-left: auto;
 	margin-right: auto;
	margin-bottom: 5vh;
}
@media screen and (max-width: 768px) {
  .pages img {
     max-width: 80%;
	  margin-bottom: -5vh;
    }
}
.pages .text {
	width: 80%;
	margin-bottom: 5vh
}
@media screen and (max-width: 768px) {
  .pages .text {
      width: 95%;
    }
}

/*-----------------------shop page-----------------------------*/
.shop_page {
	padding-top: 5vh;
	margin-bottom: 10vh;
}
.shop_page .box {
	display: flex;
	justify-content: center;
	align-items: center;
	margin-top: 50px;
}
.shop_page .text strong {
	display: block;
	margin-bottom: 10px;
}
.shop_page .text picture + strong,
.shop_page .text img + strong {
	margin-top: 1rem;
}
.shop_page img {
	width: 130px;
	height: 130px;
	margin-right: 20px;
  object-fit: contain;
  transition: transform 0.75s var(--ease-premium), filter 0.55s var(--ease-soft), box-shadow 0.55s var(--ease-soft);
}
@media screen and (max-width: 768px) {
.shop_page .box {
	flex-direction: column;
	margin-top: 50px;
    align-items: center;
}
.shop_page img {
	  margin-left: 0;
    margin-right: 0;
    margin-bottom: 15px;
	}
}
.shop em{
  font-size: 14px;
}
.shop {
	width: 60%;
	margin-left: auto;
	margin-right: auto;
}
@media screen and (max-width: 768px) {
  .shop {
	  width: 95%
  }
}
.shop_page .form {
	width: 100%;
}
@media screen and (max-width: 768px) {
  .shop_page .horizontal {
	  margin-bottom: 5vh;
  }
}
.options {
	padding-bottom: 100px;
	margin-top: 100px;
	margin-left: auto;
	margin-right: auto;
	width: min(100%, 52rem);
}
@media screen and (max-width: 768px) {
  .options{
	  width: 100%;
  }
}
.options_label {
	margin-bottom: 20px;
	display: grid;
	grid-template-columns: auto auto 1fr;
	align-items: center;
	gap: 0.9rem;
}
@media screen and (max-width: 768px) {
  .options_label {
    grid-template-columns: auto auto 1fr;
    gap: 0.7rem;
  }
}
.options_label img {
  display: block;
  width: 62px;
  height: 62px;
  object-fit: cover;
}
@media screen and (max-width: 768px) {
  .options_label img {
    width: 50px;
    height: 50px;
  }
}
label {
  min-width: 0;
}
select {
    width: 64px;
    padding: 15px 34px 15px 12px;
    color: rgba(255,255,255,1);
    background-color: var(--surface-strong);
    outline: none;
    -webkit-appearance: none;
    appearance: none;
    cursor: pointer;
  	border: 0px solid #000000;
    border-radius: 12px;
    background-position: right 10px center;
    background-size: 16px;
}
@media screen and (max-width: 768px) {
 select {
	 width: 54px;
     padding: 9px 26px 9px 10px;
  }
}
select:focus {
    outline: none;
    border: 0px solid #000000;
}
#Monster\:Movies, #Contes\:Légendes, #Space\:Symphony, #Thriller\:Jazz, #Hollywood\:Sounds, #Intégrale {
    background-color: rgba(255,255,255,1.00);
}
select option {
    background-color: rgba(255,255,255,1.00);
    color: rgba(27,27,27,1.00);
}
select {
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="gray"><path d="M7 10l5 5 5-5H7z"/></svg>');
    background-repeat: no-repeat;
    background-position: right 10px top 50%;
    background-size: 20px;
}

/*-----------------------orchestra page-----------------------*/
.orchestra_page {
	width: 80%;
	margin-left: auto;
	margin-right: auto;
	padding-top: 5vh;
}
@media screen and (max-width: 768px) {
  .orchestra_page {
      width: 95%
    }
}
.orchestra_page img{
	width: 60%;
	display: block;
	margin-left: auto;
 	margin-right: auto;
}
@media screen and (max-width: 768px) {
  .orchestra_page img{
      width: 95%
    }
}
.orchestra_page .text {
	width: 60%;
	margin-bottom: 20vh
}
@media screen and (max-width: 768px) {
  .orchestra_page .text{
      width: 95%
    }
}
.orchestra_page .title{
	padding-top: 5vh;
	padding-bottom: 10vh;
}
.foundation .text_2 {
	width: 60%;
	text-align: left;
	margin-left: auto;
	margin-right: auto
}
@media screen and (max-width: 768px) {
  .foundation .text_2{
      width: 90%
    }
}

/*------------------------guest---------------------------*/
.guest {
    width: 80%;
    color: rgba(255,255,255, 1.0);
    background-color: rgba(0,0,0,1.00);
    height: auto;
    padding: 50px;
    margin-top: 10vh;
    margin-bottom: 10vh;
    gap: 30px;
    border-radius: 10px;
    margin-left: auto;
    margin-right: auto;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    text-align: justify;
}
.guest img {
    margin: 20px;
	border-radius: 5px
    }
.guest_text {
	width: 30%;
	line-height: .9
}
@media screen and (max-width: 768px) {
    .guest {
		width: 95%;
        flex-direction: column;
		padding: 10px;
		gap: 0px;
    }
    .guest img {
      	width: 200px;
    }
	.guest_text {
		width: 100%;
	}
}
.guest_title {
	width: 10%;
	text-align: right;
}
@media screen and (max-width: 768px) {
   .guest_title  {
	   width: 100%;
	   padding: 20px;
    }
}

/*--------------------------musiciens----------------------*/
.musiciens {
	height: auto;
	width: fit-content;
	max-width: 100%;
	margin-left: -2rem;
	margin-right: auto;
}
.pages .right .musiciens_box {
	margin-bottom: 0.35rem;
}
@media screen and (max-width: 768px) {
	.musiciens {
		left: 0;
		width: 100%;
		margin-left: 0;
	}
}

/*------------------------medias---------------------------*/
.medias {
	position: relative;
	padding-bottom: 10vh;
}
@media screen and (max-width: 768px) {
  .medias {
		padding-bottom: 7vh;
  }
}
.medias .text {
	margin-top: 30px;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.2rem;
	width: 100%;
	justify-content: flex-start;
}
.medias .text:has(.media_box img),
.medias .text:has(.box_medias img) {
	flex-direction: row;
	flex-wrap: wrap;
	gap: 0.2rem 1rem;
}
.medias .title {
	width: 100%;
}
.medias .text > span {
	width: 100%;
	color: rgba(255,0,4,1.00);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	margin-bottom: 0.15rem;
}
.media_box,
.box_medias {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	gap: 0.8rem;
	width: 100%;
	margin: 0;
	padding: 0.18rem 0;
	text-align: left;
	border: 0;
	align-self: flex-start;
}
.medias .audio_box {
	display: inline-flex;
	justify-content: flex-start !important;
	align-items: center;
	gap: 0.8rem;
	width: auto;
	max-width: 100%;
	margin: 0;
	margin-right: auto;
	padding: 0.18rem 0;
	text-align: left;
	align-self: flex-start;
}
.medias .audio_box,
.medias .audio_box * {
	text-align: left;
}
.medias .audio_box .audio_player {
	order: 2;
	flex: 0 0 auto;
}
.medias .audio_box > a,
.medias .audio_box > strong,
.medias .audio_box > span,
.medias .audio_box > div:not(.audio_player) {
	order: 1;
	margin-right: 0;
}
.medias .audio_box > span {
	display: inline-block;
}
.medias .audio_box > a {
	display: inline-flex;
	justify-content: flex-start;
	width: auto;
}
.medias .text > .audio_box {
	margin-left: 0 !important;
}
.medias .audio_box a,
.medias .audio_box strong,
.medias .audio_box span {
	order: 1;
}
.medias .audio_box .radio_label,
.medias .audio_box .radio_source {
	color: var(--text);
	letter-spacing: 0;
	text-transform: none;
}
.medias .audio_box .radio_source {
	font-family:"futura", "sans-serif";
	font-size: 13px;
	font-weight: 600;
}
.media_box:has(> span),
.box_medias:has(> span) {
	flex-direction: column;
	align-items: flex-start;
	gap: 0.2rem;
}
.media_box img,
.box_medias img {
	flex: 0 0 auto;
	margin-right: 0;
}
.media_box:has(img),
.box_medias:has(img) {
	width: auto;
	padding: 0;
	border: 0;
	background: transparent;
}
.media_box:has(img) a,
.box_medias:has(img) a {
	display: block;
	width: auto;
}
.media_box:has(img) img,
.box_medias:has(img) img {
	display: block;
	height: 78px;
	width: auto;
	border: 1px solid rgba(255,255,255,0.1);
	box-shadow: 0 10px 24px rgba(0,0,0,0.22);
}
.medias a {
	display: inline-flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 0.45rem;
	min-width: 0;
	text-decoration: none;
	justify-content: flex-start;
}
.medias img {
	height: 42px;
	width: auto;
	object-fit: contain;
}
.medias span {
	flex: 0 0 auto;
	min-width: 5rem;
	color: rgba(255,0,4,1.00);
	text-transform: uppercase;
	letter-spacing: 0.08em;
}
.medias strong:hover {
	color: rgba(255,0,4,1.00)
}
@media screen and (max-width: 768px) {
  .media_box,
  .box_medias,
  .medias .audio_box {
		align-items: flex-start;
		gap: 0.55rem;
		padding: 0.7rem 0;
  }
  .medias a {
    width: 100%;
  }
  .medias img {
    height: 34px;
  }
  .media_box:has(img),
  .box_medias:has(img) {
    padding: 0;
  }
  .media_box:has(img) a,
  .box_medias:has(img) a {
    width: auto;
  }
  .media_box:has(img) img,
  .box_medias:has(img) img {
    height: 64px;
  }
  .medias span {
		min-width: 4.25rem;
  }
}

/*-------------------------gallery---------------------------*/
.gallery {
  	margin-left: auto;
	  margin-right: auto;
    flex-wrap: wrap;
	  text-align: center;
  	height: auto;
  	margin-top: 10vh;
  	padding-bottom: 10vh;
}
@media screen and (max-width: 768px) {
    .gallery {
	     margin-top: 0vh;
	     margin-bottom: 0vh;
    }
}
.gallery a {
    cursor: pointer;
}
.gallery img {
	margin: 30px;
	box-shadow: 2px 6px 10px rgba(0, 0, 0, 0.2);
    transition: transform 0.75s var(--ease-premium), box-shadow 0.75s var(--ease-soft), filter 0.55s var(--ease-soft);
}
@media screen and (max-width: 768px) {
    .gallery img{
	margin: 10px;
    }
}
.gallery img:hover {
    transform: translate3d(0, -8px, 0) scale(1.05);
    box-shadow: 0 18px 42px rgba(0, 0, 0, 0.3);
}
.fullscreen {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    padding: 5vh 5vw;
    background-color: rgba(0,0,0,.72);
  	backdrop-filter: blur(10px);
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
    z-index: 999;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.55s var(--ease-premium), visibility 0.55s var(--ease-premium), background-color 0.55s var(--ease-soft);
}
.fullscreen picture {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 100%;
    max-width: 100%;
    max-height: 100%;
    margin: 0;
}
.fullscreen img {
    display: block;
    max-height: calc(100vh - 10vh);
	max-width: calc(100vw - 10vw);
	width: auto;
    height: auto;
    object-fit: contain;
    opacity: 0;
    transform: translate3d(0, 18px, 0) scale(0.94);
    transition: opacity 0.55s var(--ease-premium), transform 0.55s var(--ease-premium);
	box-shadow: 2px 6px 10px rgba(0, 0, 0, 0.3);
    will-change: transform, opacity;
}
@media screen and (max-width: 768px) {
  .fullscreen {
      padding: 4vh 4vw;
    }
  .fullscreen picture {
      width: 100%;
      height: 100%;
    }
  .fullscreen img  {
      width: auto;
	  max-width: calc(100vw - 8vw);
	  max-height: calc(100vh - 8vh);
    }
}
.fullscreen.active {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}
.fullscreen.active img {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
}
.fullscreen.closing {
    opacity: 0;
    visibility: visible;
    pointer-events: none;
}
.fullscreen.closing img {
    opacity: 0;
    transform: translate3d(0, 18px, 0) scale(0.94);
}
.fullscreen img:hover {
    transform: translate3d(0, 0, 0) scale(1.02);
}
#gallery_2023 {
	padding-top: 10vh
}
/*-----------------gallery 2024--------------------*/
#gallery_2024 img {
	height: 25vh;
}
@media screen and (max-width: 768px) {
   #gallery_2024 img  {
	   height: 15vh;
	   width: auto
    }
}
/*-----------------gallery 2023--------------------*/
#gallery_2023 img {
	height: 20vh;
}
@media screen and (max-width: 768px) {
   #gallery_2023 img  {
	   height: 10vh;
	   width: auto
    }
}
/*-----------------gallery 2022--------------------*/
#gallery_2022 img {
	height: 25vh;
}
@media screen and (max-width: 768px) {
   #gallery_2022 img  {
	   height: 13vh;
	   width: auto
    }
}
/*-----------------gallery 2019--------------------*/
#gallery_2019 img {
	height: 28vh;
}
@media screen and (max-width: 768px) {
   #gallery_2019 img  {
	   height: 13vh;
	   width: auto
    }
}
/*-----------------gallery 2018--------------------*/
#gallery_2018 img {
	height: 20vh;
}
@media screen and (max-width: 768px) {
   #gallery_2018 img  {
	   height: 10vh;
	   width: auto
    }
}
/*-----------------gallery 2017--------------------*/
#gallery_2017 img {
	height: 20vh;
}
@media screen and (max-width: 768px) {
   #gallery_2017 img  {
	   height: 12vh;
	   width: auto
    }
}
/*-----------------gallery 2016--------------------*/
#gallery_2016 img {
	height: 20vh;
}
@media screen and (max-width: 768px) {
   #gallery_2016 img  {
	   height: 13vh;
	   width: auto
    }
}
/*-----------------gallery 2015--------------------*/
#gallery_2015 img {
	height: 20vh;
}
@media screen and (max-width: 768px) {
   #gallery_2015 img  {
	   height: 13vh;
	   width: auto
    }
}

/*-----------------------------menu----------------------------*/
.navToggle {
	position: fixed;
	border: 0;
	padding: 0;
	background: transparent;
	width: 80px;
	height: 80px;
	right: 1px;
	top: 1px;
	cursor: pointer;
	display: flex;
	justify-content: center;
	align-items: center;
	opacity: 0;
  transform: translateY(-10px);
  transition: opacity 0.55s var(--ease-soft), transform 0.55s var(--ease-soft);
  pointer-events: none;
	z-index: 999;
}
.navToggle.visible {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
}
@media (max-width: 992px) {
	.navToggle {
		width: 45px;
		height: 45px;
		right: 1px;
		top: 1px;
	}
}
.navToggle .icon {
	position: relative;
	width: 45px;
	height: 1px;
	background-color: transparent;
	transition: transform 0.45s var(--ease-premium);
}
@media (max-width: 992px) {
	.navToggle .icon {
		width: 20px;
		height: 2px;
	}
}
.navToggle .icon:before,
.navToggle .icon:after {
	content: '';
	position: absolute;
	width: 100%;
	height: 1px;
	background-color: var(--accent);
	left: 0;
	transition: transform 0.45s var(--ease-premium), top 0.3s var(--ease-soft), width 0.3s var(--ease-soft), opacity 0.25s var(--ease-soft);
}
.navToggle .icon:before {
	top: -8px;
	width: 100%;
}
.navToggle .icon:after {
	top: 8px;
	width: 100%;
}
.navToggle:hover .icon {
	transform: scaleX(1.04);
}
.navToggle:hover .icon:before {
	top: -10px;
}
.navToggle:hover .icon:after {
	top: 10px;
}
.navToggle.open .icon {
	transform: rotate(0deg);
}
.navToggle.open .icon:before {
	top: 0;
	width: 100%;
	transform: rotate(45deg);
}
.navToggle.open .icon:after {
	top: 0;
	width: 100%;
	transform: rotate(-45deg);
}

#menu {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto;
    text-align: center;
    overflow: hidden;
    background-color: var(--overlay);
 	  backdrop-filter: blur(10px);
    transition: opacity 0.7s var(--ease-premium), transform 0.7s var(--ease-premium), visibility 0.7s var(--ease-premium);
    z-index: 99;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translate3d(0, -3%, 0);
}
#menu ul {
    list-style: none;
    padding: 0;
    margin: 0;
    font-size: 15px;
    letter-spacing: 7px;
    text-transform: uppercase;
}
#menu.active {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translate3d(0, 0, 0);
}
#menu .buttons a{
	font-family: "Milano Sans", sans-serif;
	color: var(--accent);
	font-size: 3vh;
	letter-spacing: -.08vh;
  transition: color var(--duration-fast) var(--ease-soft), transform var(--duration-fast) var(--ease-premium), opacity var(--duration-fast) var(--ease-soft);
}
#menu .buttons a:hover{
color: var(--text);
transform: translate3d(0, -3px, 0);
}
#menu .buttons a:hover::after {
    width: 100%;
}
#menu li:first-child {
	margin-top: 0;
}
li {
	display: block;
    position: relative;
	margin: 0;
}

/*-----------------------------form-----------------------------*/
.form {
	width: 60%;
    margin-left: auto;
    margin-right: auto;
	margin-bottom: 10vh;
}
@media screen and (max-width: 768px) {
    .form {
 		width: 100%
	}
}
.submit {
	margin-top: 10px;
	width: 100%;
	margin-left: auto;
	margin-right: auto;
	text-transform: uppercase
}
input {
	padding: 10px;
	text-align: left;
    box-sizing: border-box;
	outline: none;
}
input[type="submit"] {
	font-family: "Milano Sans", sans-serif;
    font-size: 25px;
	letter-spacing: 10px;
	color: rgba(255,0,0,1.00);
	border: 0.5px solid rgba(255,0,0,1.00) !important;
	transition: transform var(--duration-fast) var(--ease-premium), color var(--duration-fast) var(--ease-soft), border-color var(--duration-fast) var(--ease-soft), box-shadow var(--duration-fast) var(--ease-soft), background-color var(--duration-fast) var(--ease-soft);
	display: inline-block;
    width: 100%;
	text-transform: uppercase;
    cursor: pointer;
	background-color: rgba(255,255,255,.00);
}
@media screen and (max-width: 768px) {
    input[type="submit"] {
		font-size: 13px;
		letter-spacing: 6px;
		padding: 7px;
	}
}
input[type="submit"]:hover {
   	transform: translate3d(0, -4px, 0) scale(1.015);
	color: rgba(255,255,255,1.00) !important;
	border-color: rgba(255,255,255,1.00) !important;
  box-shadow: 0 14px 36px rgba(255, 0, 4, 0.14);
}
input[type=text],
input[type=message],
input[type=date],
input[type=email],
input[type=time],
textarea {
    width: 100%;
    min-height: 54px;
	padding: 14px 16px;
    resize: vertical;
    font: inherit;
    border: none;
    color: rgba(255,255,255,1.00);
    background-color: var(--surface);
    border-radius: 14px;
    transition: background-color var(--duration-fast) var(--ease-soft), box-shadow var(--duration-fast) var(--ease-soft), transform var(--duration-fast) var(--ease-soft);
}
@media screen and (max-width: 768px) {
	input[type=text],
	input[type=message],
	input[type=date],
	input[type=email],
	input[type=time],
	textarea {
		width: 100%;
		min-height: 48px;
	}
}
input[type=text]:hover,
input[type=message]:hover,
input[type=date]:hover,
input[type=email]:hover,
input[type=time]:hover,
textarea:hover {
  background-color: var(--surface-strong);
}
input[type=text]:focus,
input[type=message]:focus,
input[type=date]:focus,
input[type=email]:focus,
input[type=time]:focus,
textarea:focus {
  background-color: rgba(255,255,255,0.14);
  box-shadow: 0 0 0 1px rgba(255,0,4,0.55);
}
#message  textarea {
	margin-top: 10px;
	background-color: rgba(0,0,0,.00);
  min-height: 120px;
}
.underline::after,
.underline::after {
    display: block;
    content: '';
    width: 0px;
    height: 12px;
    border-top: solid 1px rgba(255,255,255,1.0);
    transition: .2s ease-in;
}
.underline:hover::after,
.underline:focus::after,
.active .underline::after {
    width: 100%;
    border-color: rgba(255,255,255,1);
}
.options_label a{
	color: rgba(255,0,4,1.00)
}
.commander {
	color: rgba(255,0,4,1.00);
	font-weight: 800;
	text-transform: uppercase;
	margin-left: 10px;
}
.confirmation_commande {
 	height: 100vh;
 	text-align: center;
  padding: 2rem 1.25rem;
}
.confirmation_commande_text {
 	margin: 0 20px;
}
.confirmation_commande_text img{
	width: 22%;
}
@media screen and (max-width: 768px) {
  .confirmation_commande {
    min-height: 100svh;
    height: auto;
  }
  .confirmation_commande_text {
    margin: 0;
  }
  .confirmation_commande_text img {
    width: min(120px, 36vw);
  }
}

/*-------------------------audio-------------------------------*/
.audio_box {
	max-width: 100%;
	display: flex;
    justify-content: flex-end;
    align-items: center;
	margin-bottom: 0;
	margin-right: 0;
	text-align: right;
}
.audio_box strong:hover {
	color: rgba(255,0,4,1.00)
}
.program_line,
.audio_box,
.pages .left > .media_box {
	text-align: right;
}
.pages .left > .media_box {
	display: inline-flex;
	flex-direction: row !important;
	flex-wrap: nowrap;
	justify-content: flex-end;
	align-items: center;
	width: auto;
	max-width: 100%;
	margin: 0;
	padding: 0 0 0 40px !important;
	gap: 0.2em !important;
	text-align: right;
	border-bottom: 0;
	min-height: 0;
	line-height: 1;
	align-self: flex-end;
	white-space: nowrap;
}
.pages .left > .media_box:has(> span) {
	flex-direction: row !important;
	align-items: center !important;
	gap: 0.2em !important;
}
.pages .left > .media_box::before {
	content: none;
}
.pages .left > .media_box strong {
	margin-right: 0;
	white-space: nowrap;
}
.pages .left > .media_box .composer {
	display: inline-block;
	margin-left: 0;
	font-weight: 300;
	white-space: nowrap;
}
.pages .left > .media_box .composer:empty {
	display: none;
}
.people_list .musiciens_box,
.musiciens_box {
	display: block;
	margin: 0;
	padding: 0;
	text-align: left;
}
.pages .left > .media_box + .media_box,
.pages .left > .audio_box + .media_box,
.pages .left > .media_box + .audio_box {
  margin-top: 0;
}
@media screen and (max-width: 768px) {
  .pages .left > .media_box {
    padding-left: 20px !important;
    white-space: nowrap;
    max-width: none;
  }
  .pages .container + .container .left {
    gap: 0.28rem;
  }
  .pages .left > .media_box,
  .pages .left > .audio_box {
    font-size: 0.9rem;
  }
  .pages .left > .media_box .composer {
    font-size: 0.95em;
  }
}

/*-------------------------premium motion---------------------------*/
.motion-reveal {
  opacity: 0;
  filter: blur(10px);
  transform: translate3d(0, 34px, 0);
  transition:
    opacity var(--duration-base) var(--ease-soft),
    transform var(--duration-slow) var(--ease-premium),
    filter var(--duration-base) var(--ease-soft);
  transition-delay: calc(var(--reveal-order, 0) * 70ms);
  will-change: opacity, transform, filter;
}
.motion-reveal.is-visible {
  opacity: 1;
  filter: blur(0);
  transform: translate3d(0, 0, 0);
}
.motion-depth {
  transform: translate3d(0, var(--parallax-y, 0px), 0) scale(var(--parallax-scale, 1));
  transform-origin: center center;
  transition: transform 0.18s linear;
  will-change: transform;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}
.shop_page .box:hover img.motion-depth,
.guest:hover img.motion-depth {
  filter: saturate(1.05);
}
@media (prefers-reduced-motion: reduce) {
  .motion-reveal {
    opacity: 1;
    filter: none;
    transform: none;
    transition: none;
  }
  .motion-depth,
  .intro_poster_media img {
    transform: none !important;
    transition: none !important;
  }
}
.audio_player {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
}
@media screen and (max-width: 768px) {
  .audio_player {
	  width: 20px;
  }
}
.audio_player button {
    border: none;
    background: none;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 24px;
    height: 18px;
	margin-left: 4px;
	margin-right: 10px;
  padding: 0;
  cursor: pointer;
}
@media screen and (max-width: 768px) {
  .audio_player button {
	  margin-right: 0px;
    }
}
.audio_player button.is-playing .play_icon {
  display: none;
}
.play_icon {
    width: 0;
    height: 0;
    border-left: 13px solid var(--accent);
    border-top: 8px solid transparent;
    border-bottom: 8px solid transparent;
}
@media screen and (max-width: 768px) {
  .play_icon {
	  border-left: 8px solid var(--accent);
      border-top: 5px solid transparent;
      border-bottom: 5px solid transparent;
    }
}
.audio_player button::before,
.audio_player button::after {
  content: "";
  display: none;
  width: 4px;
  height: 13px;
  background-color: var(--accent);
}
.audio_player button.is-playing::before,
.audio_player button.is-playing::after {
  display: block;
}
.audio_player button.is-playing {
  gap: 2px;
}
.pause_icon {
    display: flex;
    justify-content: space-between;
    width: 13px;
    height: 13px;
}
@media screen and (max-width: 768px) {
  .pause_icon {
    width: 9px;
    height: 9px;
    }
}
.pause_icon div {
    background-color: var(--accent);
    width: 10px;
    height: 100%;
    margin-right: 1px;
}

/*---------------------------arrow-----------------------------*/
.arrow {
 	width: 60px;
 	height: 60px;
	margin-left: 1px;
	margin-top: 5px;
	display: inline-block;
	position: fixed;
	transition: transform 0.3s ease;
	z-index: 1
}
.arrow::before {
 	content: '';
 	display: block;
 	width: 30px;
 	height: 30px;
 	top: 50%;
  left: 45%;
 	border-style: solid;
 	border-color: rgba(255,0,0,1.00);
 	border-width: 1px 1px 0 0;
 	position: absolute;
 	transform-origin: 50% 50%;
}
.arrow.left::before {
 	transform: rotate(-135deg);
 	margin: -15px 0 0 -10px;
}
.arrow::after {
 	content: '';
 	display: block;
 	top: 50%;
 	left: 45%;
 	border-style: solid;
 	border-color: rgba(255,0,0,1.00);
 	position: absolute;
 	transform-origin: 50% 50%;
}
.arrow.left::after {
  	width: 40px;
  	height: 0;
  	border-width: 1px 0 0 0;
  	transform: translate(-14px, -1px);
}
.arrow:hover::before {
	transition: transform 0.3s ease;
}
.arrow:hover::after {
  border-color: rgba(255,0,0,1.00);
}
.arrow.square {
	background-color: rgba(255,255,255,0);
}
.square:hover {
  transform: scale(1.2);
}
@media (max-width: 768px) {
  .arrow {
   	  width: 30px;
   	  height: 30px;
	  margin-left: 0px;
	  margin-top: 0px;
  }
  .arrow::before {
  	  width: 15px;
  	  height: 15px;
  	  left: 40%;
	  top:16px;
  }
  .arrow.left::before {
  	  margin: -7px 0 0 -5px;
  }
  .arrow::after {
	  top: 16px;
   	  left: 40%;
  }
  .arrow.left::after {
   	  width: 20px;
   	  transform: translate(-7px, -1px);
  }
}

/*---------------------player video-------------------*/
.player {
    max-width:100%;
    position: relative;
    overflow: hidden;
}
.player__video {
    width: 100%;
}
.player__slider {
    width:10px;
    height:30px;
}
.player__controls {
    position: absolute;
    bottom: 0;
    width: 100%;
    transform: translateY(100%) translateY(-2px);
    transition: transform .3s, background-color .3s;
    background: rgba(0,0,0,0.1);
}
.player:hover .player__controls {
    transform: translateY(0);
}
.player:hover .progress {
    height:5px;
}
.progress {
    position: relative;
    height:2px;
    transition:height 0.3s;
    background:rgba(255,255,255,0.1);
    cursor: pointer;
}
.progress__filled {
	width:0;
    background:rgba(99,99,99,1);
    height: 100%;
}
.player__buttons{
	height: 30px;
	width: 100%;
}
.play__button,
.mute__button,
.player__slider{
	display: block;
	float: left;
}
.mute__button, .play__button {
	background:none;
	border:0;
	line-height:1;
	color: rgba(255,255,255,1.0);
 	text-align: center;
 	outline:0;
 	cursor:pointer;
 	max-width:50px;
 	padding: 0 10px;
 	height: 30px;
}
.mute__button svg, .play__button svg{
 	height: 50%;
 	margin-top: 25%;
}
.big__play {
 	position: absolute;
    height: 50px;
    width: 50px;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    margin: auto;
    border-radius: 50%;
    pointer-events: none;
    background-color: rgba(255,0,0,.7);
}
.big__play svg{
    height: 40%;
   	position: absolute;
   	top: 0;
   	left: 10%;
   	right: 0;
   	bottom: 0;
   	margin: auto;
}
.player__buttons input[type="range"] {
    -webkit-appearance: none;
    -webkit-tap-highlight-color: rgba(255, 255, 255, 0);
    width: 60px;
    height: 2px;
    margin: 12px 0;
    border: none;
    padding: 0;
    border-radius: 0;
    background: rgba(255,255,255, .5);
    outline: none;
}
.player__buttons input[type="range"]::-moz-range-track {
    border: inherit;
    background: transparent;
}
.player__buttons input[type="range"]::-ms-track {
    border: inherit;
    color: transparent;
    background: transparent;
}
.player__buttons input[type="range"]::-ms-fill-lower,
.player__buttons input[type="range"]::-ms-fill-upper {
    background: transparent;
}
.player__buttons input[type="range"]::-ms-tooltip {
    display: none;
}
.player__buttons input[type="range"]::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 12px;
    height: 6px;
    border: none;
    border-radius: 12px;
    background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #f1f1f1), color-stop(100%, #b1b1b1));
    background-image: -webkit-linear-gradient(top , #f1f1f1 0, #b1b1b1 100%);
    background-image: linear-gradient(to bottom, #f1f1f1 0, #b1b1b1 100%);
}
.player__buttons input[type="range"]::-moz-range-thumb {
    width: 12px;
    height: 6px;
    border: none;
    border-radius: 12px;
    background-image: linear-gradient(to bottom, #f1f1f1 0, #b1b1b1 100%);
}
.player__buttons input[type="range"]::-ms-thumb {
    width:12px;
    height: 6px;
    border-radius: 12px;
    border: 0;
    background-image: linear-gradient(to bottom, #f1f1f1 0, #b1b1b1 100%);
}
.fullscreen__button {
  	background: none;
    border: 0;
    line-height: 1;
    color: rgba(255, 255, 255, 1.0);
    text-align: center;
    outline: 0;
    cursor: pointer;
    max-width: 50px;
    padding: 0 10px;
    height: 30px;
}

.fullscreen__button svg {
  	height: 50%;
  	margin-top: 25%;
}

/*-------------------------sign------------------------*/
.sign {
  display: inline-flex;
  align-items: center;
  min-height: 1em;
}
.sign_link {
  position: relative;
  left: auto;
  bottom: auto;
  z-index: 11;
  display: inline-flex;
  margin: 10vh auto 5vh;
}
body:not(.home_page) .sign_link {
  position: fixed;
  left: 1.2rem;
  bottom: 0.75rem;
  margin: 0;
}
.sign_trigger {
  display: inline-block;
  font-family: "futura-pt", sans-serif;
  font-size: 4.7rem;
  font-weight: 100;
  line-height: 0.72;
  color: rgba(255,0,4,1);
  cursor: pointer;
  user-select: none;
}
.sign_text {
  color: #b84dff;
  font-family: "futura-pt", sans-serif;
  font-size: 0.8rem;
  letter-spacing: 0;
  margin: 0;
}
.sign_copy {
  color: #ffffff;
}
.sign_mark {
  display: inline-block;
  font-size: 5.2em;
  font-weight: 100;
  line-height: 0.7;
  vertical-align: -0.28em;
  margin: 0 -0.08em;
  color: rgba(255,0,4,1);
}
.sign_hover_card {
  --sign-hover-x: 0px;
  --sign-hover-y: 0px;
  position: absolute;
  left: 0;
  bottom: calc(100% + 1rem);
  width: 190px;
  min-height: 190px;
  padding: 1rem 1.05rem;
  background: #ffffff;
  color: #292929;
  font-family: "Milano Sans", sans-serif;
  font-size: 0.78rem;
  font-weight: 500;
  line-height: 1.05;
  letter-spacing: -0.02em;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  text-align: left;
  box-sizing: border-box;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translate3d(var(--sign-hover-x), calc(14px + var(--sign-hover-y)), 0) scale(0.92);
  transform-origin: bottom left;
  transition:
    opacity 0.38s cubic-bezier(0.22, 1, 0.36, 1),
    visibility 0.38s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.48s cubic-bezier(0.22, 1, 0.36, 1);
}
.sign_link:hover .sign_hover_card,
.sign_link:focus-visible .sign_hover_card {
  opacity: 1;
  visibility: visible;
  transform: translate3d(var(--sign-hover-x), var(--sign-hover-y), 0) scale(1);
}
@media screen and (max-width: 768px) {
  .sign_link {
    margin: 8vh auto 4vh;
  }
  body:not(.home_page) .sign_link {
    left: 0.75rem;
    bottom: 0.45rem;
    margin: 0;
  }
  .sign_trigger {
    font-size: 4rem;
  }
  .sign_text {
    font-size: 0.56rem;
    letter-spacing: 0;
  }
  .sign_mark {
    font-size: 5.1em;
  }
  .sign_hover_card {
    width: 150px;
    min-height: 150px;
    padding: 0.8rem;
    font-size: 0.62rem;
  }
}

/*-------------------------responsive polish------------------------*/
@media screen and (max-width: 1024px) {
  .intro_poster_stage {
    height: auto;
    min-height: 100svh;
  }

  .intro_poster_media {
    inset: 4vh 0;
  }

  .intro_poster_content {
    width: min(100%, 56rem);
    gap: 1.25rem;
  }

  .intro_poster_title {
    width: 100%;
    font-size: clamp(3.6rem, 9vw, 5.8rem);
    letter-spacing: -0.18rem;
  }

  .intro_poster_copy {
    width: min(100%, 42rem);
    line-height: 1.1;
  }

  .intro_poster_booking {
    max-width: min(100%, 24rem);
  }

  .intro_poster_players {
    width: min(100%, 22rem);
  }

  .home_logo .text {
    width: min(100%, 94vw);
    letter-spacing: clamp(0.48rem, 1.95vw, 1.35rem);
    margin-bottom: 8vh;
    text-align: center;
  }

  .home_logo img {
    width: min(42vw, 280px);
  }

  .past_seasons {
    width: min(96%, 58rem);
    gap: 0.75rem;
  }

  .past_seasons a {
    margin: 0;
  }

  .past_seasons img {
    width: clamp(92px, 13vw, 138px);
  }

  .orchestra,
  .contact,
  .pages,
  .shop_page,
  .orchestra_page {
    width: min(94%, 58rem);
  }

  .video_orchestra {
    width: 100%;
  }

  .contact {
    padding-top: 14vh;
  }

  .sponsors {
    padding: 6vh 4vw;
    gap: 1.5rem 2rem;
  }
}

@media screen and (max-width: 640px) {
  html {
    font-size: 15px;
  }

  .title {
    width: 100%;
    font-size: clamp(2.4rem, 14vw, 3.7rem);
    letter-spacing: -0.08rem;
    line-height: 0.86;
    padding-bottom: 3vh;
    margin-left: 0;
  }

  .title_2 {
    width: 100%;
    font-size: clamp(1.5rem, 7vw, 2rem);
    letter-spacing: -0.04rem;
    line-height: 0.92;
  }

  .text,
  .intro_poster_copy,
  .contact .text,
  .pages .text,
  .orchestra_page .text,
  .shop {
    width: 100%;
    padding-left: 0;
    padding-right: 0;
    line-height: 1.15;
    text-align: left;
  }

  .intro_poster {
    margin-bottom: 0;
  }

  .intro_poster_stage {
    min-height: 82svh;
  }

  .intro_poster_media {
    inset: 2vh 0;
  }

  .intro_poster_media img {
    object-fit: cover;
    object-position: center top;
  }

  .intro_poster_scroll {
    margin-top: 0;
    padding: 0 1rem;
  }

  .intro_poster_content {
    padding: 0;
    gap: 1rem;
  }

  .intro_poster_title {
    font-size: clamp(2.5rem, 12vw, 4rem);
    letter-spacing: -0.08rem;
    margin-left: 0;
  }

  .intro_poster_booking {
    width: 100%;
  }

  .intro_poster_booking_text span {
    font-size: 0.72rem;
    letter-spacing: 0.14em;
  }

  .intro_poster_partner {
    width: 100%;
    padding: 0.75rem 0.9rem;
  }

  .intro_poster_partner img {
    height: 2.5rem;
  }

  .players,
  .intro_poster_players {
    width: 100%;
    max-width: 20rem;
  }

  .season_audio_box {
    align-items: center;
    gap: 0.5rem;
    padding-bottom: 0.65rem;
  }

  .home {
    min-height: 100svh;
    padding: 0 1rem;
    margin-bottom: 0;
  }

  #home_video {
    padding-bottom: 0;
  }

  .home_logo {
    width: 100%;
  }

  .home_logo .text {
    width: 100%;
    font-size: clamp(0.72rem, 2.45vw, 0.9rem);
    letter-spacing: clamp(0.22rem, 1.15vw, 0.62rem);
    margin-bottom: 2.5rem;
    padding: 0 0.4rem;
    white-space: nowrap;
  }

  .home_logo img {
    width: min(68vw, 240px);
  }

  .social {
    top: auto;
    bottom: 1rem;
    left: 0.75rem;
    gap: 0.6rem;
  }

  .logo {
    right: 0.75rem;
    bottom: 1rem;
  }

  .logo img {
    width: 52px;
  }

  .orchestra,
  .past_seasons,
  .contact,
  .pages,
  .shop_page,
  .orchestra_page {
    width: calc(100% - 2rem);
  }

  .orchestra_btn,
  .shop_btn {
    padding-bottom: 12vh;
  }

  .orchestra_btn a,
  .shop_btn a,
  .tickets_btn a {
    width: 100%;
    max-width: 22rem;
    padding: 0.9rem 1rem;
    letter-spacing: 0.22rem;
  }

  .past_seasons {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
    align-items: start;
  }

  .past_seasons a {
    display: block;
    width: 100%;
  }

  .past_seasons img {
    width: 100%;
    display: block;
  }

  .past_seasons .hover-text {
    font-size: 1.1rem;
    margin-top: 0;
    height: 100%;
  }

  .contact {
    padding-top: 12vh;
  }

  .contact img {
    width: 36px;
  }

  .newsletter,
  .form,
  #from_newsletter,
  #form_messages {
    width: 100%;
  }

  .sponsors {
    gap: 1rem 1.25rem;
    padding: 4vh 1rem 5vh;
  }

  .sponsors_title {
    margin-bottom: 1rem;
    line-height: 1.2;
  }

  .sponsors img {
    max-width: 100%;
    height: 22px;
  }

  .sign_link {
    margin: 5vh auto 3vh;
  }
}
