:root{
    --base-font-size: 16px;
    --green: #007055;
    --purple: #70002c;
    --grey: #545454;
    --green-light: #16c2b9;
    --pink: #f1beff;
    --blue: #6ea5ef;
    --blue-dark: #070d5f;
    --grey-dark: #262626;
    --title: #fff;
    --band-1: #70002c;
    --band-1-text: #fff;
    --band-title: #ffd700;
    --band-2: #000;
    --band-rights: #95033c;
    --header-nav-active: #fff;
    --header-nav-hover: #ffd700;
    --header-nav: #ababab;
    --mobile-nav-text: #95033c;
    --background-color : #000;
}
#layout {
    display: flex;
    flex-direction: column;
}
.background-animation::before {
    opacity: 0.2;
    animation: background-fade 2s ease forwards; /* Apply the fade-in animation */
}
#page {
    min-height: 100vh;
}
.section-image{
    background-repeat: no-repeat;
    background-position-x: center;
    background-size: 100%;
    min-height: 100vh; 
    background-attachment: fixed;
    filter: grayscale(0%);
    transition: filter 3s ease; /* Transition de 1 seconde */
}
#home{
    background-image: url(../images/drambaud.jpg);
}
#home:hover{
    filter: grayscale(100%); /* L'image devient en noir et blanc au survol */
}
#home-catalog{
    background-image: url(../images/concerts.jpg);
    filter:brightness(0.5);
    transition: filter 2s ease;
}
#home-catalog:hover{
    filter:brightness(1);
}
#home-compositions{
    background-image: url(../images/home.jpg);
}
#home-compositions:hover {
    filter: grayscale(100%); /* L'image devient en noir et blanc au survol */
}
article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary {
    display: block
}
video {
    display: inline-block
}
audio:not([controls]) {
    display: none;
    height: 0
}
[hidden],template {
    display: none
}
html,body {
    margin: 0;
    padding: 0;
    background-color: var(--background-color);    
    color:#fff;
    font-size: var(--base-font-size);
}
a {
    background: 0 0
}
a:focus {
    outline: thin dotted
}
a:active,a:hover {
    outline: 0
}
h1 {
    font-size: 2em;
    margin: .67em 0
}
dfn {
    font-style: italic
}
hr {
    -moz-box-sizing: content-box;
    box-sizing: content-box;
    height: 0
}
small {
    font-size: 80%
}
sub,sup {
    font-size: 75%;
    line-height: 0;
    position: relative;
    vertical-align: baseline
}
sup {
    top: -.5em
}
sub {
    bottom: -.25em
}
fieldset {
    border: 1px solid silver;
    margin: 0 2px;
    padding: .35em .625em .75em
}
legend {
    border: 0;
    padding: 0
}
button,input,select,textarea {
    font-family: inherit;
    font-size: 100%;
    margin: 0
}
button,input {
    line-height: normal
}
button,select {
    text-transform: none
}
button,html input[type=button],input[type=reset],input[type=submit] {
     cursor: pointer
}
button[disabled],html input[disabled] {
    cursor: default
}

input[type=checkbox],input[type=radio] {
    box-sizing: border-box;
    padding: 0
}

input[type=search] {
    -moz-box-sizing: content-box;
    -webkit-box-sizing: content-box;
    box-sizing: content-box
}

input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration {
    -webkit-appearance: none
}

button::-moz-focus-inner,input::-moz-focus-inner {
    border: 0;
    padding: 0
}

textarea {
    overflow: auto;
    vertical-align: top
}
table {
    border-collapse: collapse;
    border-spacing: 0
}

nav ul {
    list-style-type: none;
    margin: 0;
    padding: 0; 
}
@keyframes fadeIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}
@keyframes background-fade {
    from {
        opacity: 0.2;
    }
    to {
        opacity: 1;
    }
}
@keyframes bounceIn {
    0% {
        opacity: 0;
        transform: scale(.3)
    }

    50% {
        opacity: 1;
        transform: scale(1.1)
    }

    70% {
        transform: scale(.9)
    }

    100% {
        transform: scale(1)
    }
}
@keyframes bounceOut {
    0% {
        transform: scale(1)
    }

    25% {
        transform: scale(.95)
    }

    50% {
        opacity: 1;
        transform: scale(1.1)
    }

    100% {
        opacity: 0;
        transform: scale(.3)
    }
}
@keyframes slideIn {
    from {
        transform: translateX(-100%); /* Start from off-screen left */
        opacity: 0;
    }
    to {
        transform: translateX(0); /* End at the original position */
        opacity: 1;
    }
}
@keyframes shadowAppear {
    0% {
        opacity: 0;
        text-shadow: none;
    }

    25% {
        opacity: 0.25;
        text-shadow: 1px 1px 0 rgba(255, 215, 0, 0.1);
    }

    50% {
        opacity: 0.5;
        text-shadow: 
        1px 1px 0 rgba(255, 215, 0, 0.2),
        2px 2px 2px rgba(0, 0, 0, 0.2);
    }

    75% {
        opacity: 0.75;
        text-shadow:
        1px 1px 0 rgba(255, 215, 0, 0.3),
        2px 2px 2px rgba(0, 0, 0, 0.3),
        3px 3px 6px rgba(0, 0, 0, 0.2);
    }

    100% {
        opacity: 1;
        text-shadow: 
        1px 1px 0 #fff8dc,
        2px 2px 2px #f5deb3,
        3px 3px 4px rgba(0, 0, 0, 0.3),
        4px 4px 10px rgba(0, 0, 0, 0.5);
    }
}
body.no-scroll {
    height: 100%;
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0
}
.no-scroll {
    overflow: hidden !important
}
.page-footer{
    min-height: 5vh;
    font-size: 0.80em;
    text-align: center;
    color: #fff;
}
footer ul{
    list-style-type: none;    
}
footer ul li{
    display: inline-block;
    cursor:pointer;
    vertical-align: middle;
    padding: 0 5px;
}
footer ul li a{
    color: #fff;
}
header .header-bar {
    position: relative;
    z-index: 2;
    width: 100%;
    box-sizing: border-box;
    padding-top: 2vw;
    padding-bottom: 2vw;
    padding-left: 4vw;
    padding-right: 4vw;
    pointer-events: auto;
    background-color: var(--background-color);
}
header .header-display {
    position: relative;
    display: flex;
    width: 100%;
    box-sizing: border-box;
    justify-content: flex-start;
    align-items: center;  
}
header .header-title-nav {
    display: flex;
    flex-wrap: nowrap;
    flex: 1 0 50%;
    align-items: center;
}
header .header-title {
    flex-grow: 0;
    flex-shrink: 0;
    backface-visibility: hidden;
    animation: bounceIn 2s ease-in forwards; /* Animation with duration and easing */
}
.header-nav {
    flex-grow: 1;
    flex-shrink: 1;
    text-align: right;
    margin-left: auto;
    padding-left: 2.5vw;
    animation: fadeIn 4s ease-in forwards; 
}
.header-nav-list {
    display: inline-flex;
    flex-wrap: wrap;
    align-items:center;
    transition: font-size 2s ease, color 2s ease;
}
.header-title img {
    width: auto;
    max-width: 100%;
    max-height: 42px;
    filter: drop-shadow(0px 0px 30px #bb09ec);
}
.header-nav-list .header-nav-item:not(:first-child) {
    margin-left: 1.5vw;
}
.scaleIn:not([data-override-initial-global-animation]) {
    opacity: 1 !important;
}
.scaleIn {
    transform: scale(1) !important;
}
.preScale {
    opacity: 0;
    transform: scale(0.9);
    transition-property: transform, opacity;
}
.header-nav-list a{
    text-decoration:none;
    color: var(--header-nav);    
}
.header-nav-list a:hover{
    font-size: 1.2em;
    color: var(--header-nav-hover);
    font-weight: bold;
}
.header-nav-list .active a{
    color: var(--header-nav-active);
    font-weight: bold;
    text-decoration: underline;
}
.header-title a{
    color: var(--title);
    text-decoration: none;
    font-size: 1.8em;  
    font-style:italic;
}
.header-media {
    flex-grow: 0;
    flex-shrink: 1;
    display: inline-flex;
    align-items: center;
    margin-left: 2.2vw;
    animation: fadeIn 4s ease-in forwards;
}
.header-media-icons {
    display: flex;
    margin-left: 0.7vw;   
}
.header-flag{
    margin-left: 2vw;
    animation: fadeIn 4s ease-in forwards;
}
.section-events{
    background-color: var(--band-1);
}
.section-events .content-title{
    color: var(--band-title);
}
.section-message{
    background-color: var(--band-2);
}
.section-message .content-title{
    color: var(--band-title);
}
.section-bio{
    background-color: var(--band-1);   
}
.section-bio .content-title{
    color: var(--band-title);
}
.section-compositions{
    background-color: var(--band-1);
}
.section-compositions .content-title{
    color: var(--band-title);
}
.compositions{
    margin-top: 35px;
}
.compositions-list{
    display: flex;
}
.compositions-list:not(:last-child){
    margin-bottom: 50px;
}
.compositionlist{
    width: 50%;
}
.compositionlist-title{
    font-style: italic;
    font-size: 1.2em;
    padding-bottom: 20px;
}
.compositionlist-resume{
    padding-bottom: 10px;
    padding-right: 5px;
    text-align: justify;
}
.composition-list-record{
    margin-left: 35px;
}
.section-arrangements{
    background-color: var(--band-2);
}
.section-arrangements .content-title{
    color: var(--band-title);
}
.arrangements{
    margin-top: 35px;
}
.section-rights{
    background-color: var(--band-rights);
    font-size: 0.8em;
}
.section-media{
    background-color: #000;
}
.section-media .media{
    margin:0 20%;
    display:inline-flex;
}
.section .content-wrapper {
    padding-top: 5vmax;
    padding-bottom: 5vmax;    
    max-width: 100%;
    padding-left: 18vmax;
    padding-right: 18vmax;
}
.content-wrapper .content{
    margin: 10px;
}
.content-wrapper .content-title{
    font-size: 1.6em;
    padding-bottom: 25px;
    text-align: center;
    font-weight: bold;
    text-transform: uppercase;
    letter-spacing: 4px;
    opacity: 0;
}
.content-title.visible{
    animation: shadowAppear 1s ease-out forwards;
}
.content-wrapper .content-footer{
    margin: 25px 10px 0;
    font-size: 1.2em;
    color: #fff;
    font-family: cursive;
    text-align: center;
}
footer .section{
    padding-top: 1vmax;
    padding-bottom: 1vmax;
    text-align: center;
    max-width: 100%;
}
.eventslist{
    display:inline-block;
    min-width: 400px;
}
.eventlist {
    position: relative;    
    padding: 0;
    margin: 35px 0;
    display: flex;
    flex-direction: row;
    justify-content: flex-start;
    align-content: flex-start;
}
.eventlist-column-date {
    display: block; 
    width: 70px;
    margin: 0;
    padding: 0;
    text-align: center;
    color: var(--purple);
    font-weight: bold;
}
.eventlist-column-info {
    width: calc(100% - 70px);
    width: -webkit-calc(100% - 70px);
    width: -moz-calc(100% - 70px);
    padding: 0 0 0 34px;
}
.eventlist-date{
    background-color: #fff;
    padding: 5px;
    font-weight: bold;
}
.eventlist-title{
    font-family: fantasy;
    font-size: 1.2em;
    padding-bottom: 20px;
}
.eventlist-info{
    padding-bottom: 10px;
}
.eventlist-place{
    padding-bottom: 10px;
    font-style: italic;
}
.eventlist-hour{
    padding-bottom: 10px;
}
.eventlist-link a{
    color: #fff;
    font-weight: bold;
    text-decoration: underline;
    font-size: 0.8em;
}
.citation{
    margin: auto;
    width: 90%; 
    padding-top: 25px;
    padding-bottom: 25px;
    text-align: center;
}
.citation-content{
    margin: auto;
    width: 100%;
    padding-top: 10px;
    color:var(--green-light);
    font-style:italic;    
    font-size: 0.8em;
}
.citation-resume{
    color: var(--blue);
    font-size: 0.9em;
}
.catalog{
    margin-bottom: 20px;
}
.cataloglist {
    position: relative;    
    padding: 0;
    margin-bottom: 150px;
    display: flex;
    flex-direction: row;
    justify-content: flex-start;
    align-content: flex-start;
}
.cataloglist-column-date {
    display: block; 
    width: 70px;
    margin: 0;
    padding: 0;
    text-align: center;
    color: var(--purple);
    font-weight: bold;
}
.cataloglist-column-info {
    width: 50%;
    padding-left: 34px;
}
.cataloglist-column-img{
    padding-left: 50px;
}
.cataloglist-image{  
    max-height: 250px;
    opacity: 0;
    transition: opacity 2s ease-in-out;
}
.cataloglist-image:hover {
    transform: scale(1.5);
}
.cataloglist-image.visible {
    opacity: 1;
}
.cataloglist-date{
    background-color: #fff;
    padding: 5px;
    font-weight: bold;
}
.cataloglist-title{
    font-family: fantasy;
    font-size: 1.2em;
    padding-bottom: 10px;
}
.cataloglist-info{
    padding-bottom: 10px;
}
.cataloglist-place{
    font-style: italic;
}
.cataloglist-link a{
    color: #fff;
    font-weight: bold;
    text-decoration: underline;
    font-size: 0.8em;
}
.cataloglist-programme .piece{
    display: flex;
    justify-content: space-between;
    margin: 10px 0;
    font-size: 0.8em;
}
.cataloglist-performers .performer{
    display: flex;
    justify-content: space-between;
    margin: 10px 0;
    font-size: 0.8em;
}
.social-icons {
    display: flex;
    gap: 16px; /* espace entre les icônes */
    align-items: center;
}
.social-icons img{
    width:20px;
    height: 20px;
}
.social-icons svg {
    width: 20px;
    height: 20px;
    transition: transform 0.2s ease;
}
.social-icons a:hover svg {
    transform: scale(1.2);
}
.header-flag img{
    transition: transform 0.2s ease;
}
.header-flag a:hover img{
    transform: scale(1.5);
}
.footer-flag{
    margin-left: 16px;
}
.footer-flag a:hover img{
    transform: scale(1.5);
}
.mobile-menu a:hover img{
    transform: scale(1.5);
}
.flag-icon{
    text-align: center;
}
.frmrecord{
    display: inline-block;
    margin: 0 50px 100px;
    width: 400px;
    height: 200px;
}
.frmvideo{
    width: 400px;
    height: 200px;
}
.header-menu {
    position: fixed;
    z-index: 1;
    display: none;
    top: 70px;
    right: 0;
    bottom: 0;
    width: 150px;
    height:fit-content;
    text-align: right;
}
.header-menu-nav-list {
    position: absolute;
    display: flex;
    top: 0;
    width: 100%;    
    justify-content: flex-start;
    flex-direction: column;
}
.header-menu-nav-item {
    background-color: #000;
    padding-right: 6vw;
    padding-bottom: 3vw;
}
.header-menu-nav-list:first-child{
    padding-top: 3vw;
}
.header-menu-nav-list a{
    text-decoration:none;
    color: var(--header-nav);    
}
.header-menu-nav-list a:hover{
    font-size: 1.2em;
    color: var(--header-nav-hover);
    font-weight: bold;
}
.header-mobile{
    display: none;
    width: 100%;
}
.menu-burger {
    float: right;
    width: 45px; 
    cursor: pointer;
    position: relative;
    z-index: 2;
    background-color: var(--band-1);
    transition: max-height 0.4s ease, background-color 0.4s ease;
    padding-top: 5px;
    padding-bottom: 6px;
    align-items: center;
    justify-content: center;    
}
.menu-burger.active{
    background-color: var(--band-rights);
}
.menu-burger span {
    display: block;
    margin: 5px 10px;
    height: 2px;
    background: #fff;
    border-radius: 2px;
    transition: 0.4s ease;
}
.menu-burger.active span:nth-child(1) {
    transition-delay:.12s;
    transition-timing-function:cubic-bezier(.215,.61,.355,1);
    transform:rotate(225deg) translate(-5px, -5px);
}  
.menu-burger.active span:nth-child(2) {
    opacity: 0;
}
.menu-burger.active span:nth-child(3) {
    transition:bottom .1s ease-out,transform .22s cubic-bezier(.215,.61,.355,1) .12s;
    transform:rotate(-225deg) translate(-5px, 5px);
}
.mobile-menu{
    display: none;
    height: 100vh;
    margin-top: 10vh;
}
.mobile-menu.show {
    /*display: block;*/
    transform: translateY(0);
    pointer-events: auto;
}
.mobile-menu ul {
    text-align: center;
    list-style: none;
    margin: 0;
    padding: 10px 0;
}
.mobile-menu li {
    padding: 10px 20px;
    margin-bottom: 5px;
    border-radius: 10px;
    border: 1px solid #535353;
}
.mobile-menu li a {
    text-decoration: none;
    color: var(--band-1-text);
    display: block;
}
.mobile-menu li:hover{
    background-color:var(--grey-dark);
    font-size: 1.2em;
    transition: font-size 1s ease;
}
.mobile-menu li a:hover {
    color: var(--mobile-nav-text);
    font-weight: bold;
    transition: color 1s ease;
}
#scrollTopBtn {    
    display: none;
    position: fixed;
    bottom: 30px;
    right: 0px;
    z-index: 100;
    background-color: #333;
    border: none;
    padding: 10px;
    cursor: pointer;
    transition: opacity 0.3s ease, transform 0.2s ease;
}
#scrollTopBtn:hover {
    background-color: #555;
    transform: scale(1.1);
}
#scrollTopBtn svg {
    display: block;
    margin: auto;
}
@media all and (max-width: 1280px) {
    .section .content-wrapper{
        padding-left: 10vmax;
        padding-right: 10vmax;
    }
    .cataloglist-image{
        max-height: 250px;
        max-width: 300px;
    }
    .mobile-menu.show {
        display: none;
    }
}
@media all and (max-width: 1024px) {  

    #home {
        min-height: 55vh;
    }
    #home-catalog {
        min-height: 65vh;
    }
    #home-compositions {
        min-height: 55vh;
    }
    .section .content-wrapper{
        padding-left: 2vmax;
        padding-right: 1vmax;
    }
    .compositions{
        display: inline-block;
        width: 100%;
    }
    .cataloglist{
        display: inline-block;
        width: 100%;
    }
    .cataloglist-column-date{
        display: inline-block;
        vertical-align: top;
    }
    .cataloglist-column-info{
        display: inline-block;
        width: 75%;
        padding-left: 5px;
    }
    .cataloglist-column-img{
        padding-left: 75px;
        margin-top: 30px;
    }
    .cataloglist-image{
        max-height: 250px;
        max-width: 250px;
    }
    .instrument{
        text-align: right;
    }
    .title{
        text-align: right;
    }

}
@media all and (max-width: 768px) {
 
    #home {
        min-height: 35vh;
    }
    #home-catalog {
        min-height: 25vh;
    }    
    #home-compositions {
        min-height: 45vh;
    }
    .header-nav{
        display: none;
    }
    .header-media{
        display: none;
    }
    .header-flag{
        display: none;
    }
    .header-mobile{
        display: block;
    }
    .mobile-menu.show {
        display: block;
    }
    .menu-burger {
        display: block;
    }
    .content-wrapper .content-title {
        padding-bottom: 10px;
    }
    .eventslist {
        min-width: 100%;
    }
    .compositions{
        min-width: 100%;
    }
    .compositions-list{
        display: inline-block;
        width: 100%;
    }
    .composition-list::not(:last-child){
        margin-bottom: 30px;
    }
    .compositionlist{
        width: 100%;
    }
    .composition-list-record{
        width: 100%;
        margin-left: 0px;
    }
    .cataloglist{
        margin-bottom: 50px;
    }
    #mobile-menu .social-icons{
        flex-direction: column; 
    }
    #mobile-menu .flag-icon{
        margin-bottom: 25px;
    }
    #home-catalog{
        filter:brightness(1);
    }
    #home-catalog:hover{
        filter:brightness(0.6);
    }

}
@media all and (max-width: 600px) {

    .frmrecord{
        margin: 5px 0 10px 5px;
        width: 90%;
        height: 200px;
    }
    .frmvideo{
        width: 90%;
        height: 200px;
        margin-top: 10px;
    }

}
@media all and (max-width: 480px) {

    .header-title a{
        font-size: 1.6em;  
    }
    .cataloglist-column-date {
        width: 60px;
    }
    .cataloglist-image {
        max-width: 200px;
    }

}

