* {
    box-sizing: border-box;
}

@font-face {
    font-family:'NKFONT';
    src: url('Fonts/SpotifyMix-BoldItalic.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
}

#body {
    background-color: rgb(40, 40, 40);
    overflow-x: hidden;
    min-height: 150vh; /* 150% de la hauteur de l'écran */
}

.navbar {
    position: relative; /* Contexte pour ::before */
    z-index: 10; /* Contenu visible par-dessus */
    width: 100%;
    height: 80px; /* Hauteur de la navbar */
    background-color: #585858; /* Couleur de fond */
    overflow: hidden; /* Masque ce qui dépasse */
    display: flex; /* Organisation interne */
    align-items: center; /* Centre verticalement */
    justify-content: space-between; /* Espacement des éléments */
    padding: 0 20px; /* Espacement latéral */
    margin: 0; /* S'assurer qu'il n'y a pas de marge ajoutée */
}

body, html {
    margin: 0;
    padding: 0;
}

.navbar::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 300%; /* Triple largeur pour garantir le débord */
    height: 1200%; /* Triple hauteur pour garantir le débord */
    background-image: url('Images/logo_site.png');
    background-size: 500px 500px; /* Taille des logos pour plus de densité */
    background-repeat: repeat; /* Répète partout */
    opacity: 0.05; /* Reste discret */
    transform: translate(0, 0) rotate(20deg); /* Inclinaison */
    z-index: -1; /* Passe derrière le contenu */
    animation: move-diagonal 10s linear infinite, fade-in-out-navbar 10s linear infinite; /* Ajout de l'animation de fondu */
}

/* Animation diagonale */
@keyframes move-diagonal {
    0% {
        transform: translate(-10%, -10%) rotate(20deg); /* Début */
    }
    100% {
        transform: translate(-22%, -22%) rotate(20deg); /* Fin */
    }
}

/* Animation de fondu pour la navbar */
@keyframes fade-in-out-navbar {
    0% {
        opacity: 0; /* Début du fondu (opacité nulle) */
    }
    10% {
        opacity: 0.05; /* Augmentation de l'opacité */
    }
    90% {
        opacity: 0.05; /* Opacité constante pendant l'animation */
    }
    100% {
        opacity: 0; /* Fin du fondu (opacité nulle) */
    }
}




#couleurlien{

    color:#ff9fff;
    padding-bottom: 5%;
    padding-top: 5%;
}

/* Centrer la barre de recherche en utilisant une combinaison de flexbox */

/* Pour les écrans de moins de 600px */
@media (max-width: 600px) {
    .logo img {
        height: 30px; /* Réduit la taille du logo */
    }
  }

    .logo img {
        height: 80px; /* Réduit la taille du logo */
        margin-top: 0%;
    }

.search-bar {
    display: flex;
    align-items: center;
    background-color: #555;
    border-radius: 20px;
    padding: 5px 15px; /* Réduit le padding pour ne pas gêner la hauteur */
    height: 45px; /* Une hauteur suffisante pour permettre la saisie */
    flex: 10;
    max-width: 500px;
    justify-content: space-between;


}

.search-bar input[type="text"] {
    border: none;
    background: none;
    color: white;
    padding: 5px 10px; /* Ajout d'un padding interne */
    outline: none;
    width: 90%; /* Éviter que l'input dépasse du conteneur */
    box-sizing: border-box;
    height: auto; /* Laissez le navigateur ajuster automatiquement */
    line-height: normal; /* Supprimez une éventuelle contrainte de hauteur */
    font-family: "NKFONT", sans-serif;
    font-size: 30px;
}

.search-bar input[type="text"]::placeholder {
    color: #ddd;
    font-size: 25px;
}
    


.search-bar button {
    background: none;
    border: none;
    color: white;
    cursor: pointer;
    padding: 5px;
    font-size: 20px;
}

/* Place les liens et le bouton de connexion à droite */
.nav-links,
.login-btn {
    display: flex;
    align-items: center;
    flex: 1;
    justify-content: flex-end;

}

.nav-links img{
    color: white;
    text-decoration: none;
    margin: 0 15px;
    font-size: 16px;
    font-family:NKFONT;
    padding-top: 5px;
    font-size: 125%;
    height: 30px;
}

.nav-links a:hover {
    color: #ddd;
}

.login-btn button {
    padding: 7px 7px;
    background-color: #555;
    color: white;
    border: none;
    cursor: pointer;
    border-radius: 6px;
    font-family:NKFONT;
    font-size: 100%;
}

.login-btn button:hover {
    background-color: #777;
}

.login-btn img{
    height: 40px;
}


/* Responsive pour mobile */
@media (max-width: 600px) {
    .logo img {
        height: 50px;
    }

    .nav-links img{
        font-size: 14px;
        height:30px;
    }

    .login-btn button {
        padding: 6px 10px;
        font-size: 10px;
    }

    .navbar {
        padding: 10px;
    }

    .search-bar {
        max-width: 100%;  /* La barre prend toute la largeur sur mobile */
        height: 40px;  /* Garder la hauteur correcte même sur mobile */
    }
    .search-bar input[type="text"]::placeholder {
        color: #ddd;
        font-size: 20px;
        font-family:NKFONT;
        width: 100%;  /* L'input s'étend pour remplir toute la largeur disponible */
        box-sizing: border-box; /* Pour ne pas que le padding dépasse la taille du conteneur */
    }

    .box-right {
        max-width: 100%;
    }
}


/* Style général de la section */
.album-section {
    border-radius: 10px; /* Ajustez la valeur pour plus ou moins d'arrondi */
    overflow: hidden;
    margin: 20px 0;
    padding: 10px;
}

.album-section h2 {
    font-size: 24px;
    margin-bottom: 10px;
}

/* Conteneur coulissant */
.album-container {
    display: flex;
    gap: 15px; /* Espace entre chaque album */
    padding-bottom: 10px;
    scroll-snap-type: x mandatory; /* Pour un défilement fluide */
}

#catalogue_recommande {
    border-radius: 15px;
    background-color: #363131;
    display: flex;               /* Utilisation du Flexbox pour aligner les éléments en ligne */
    gap: 3px;                     /* Espacement entre les boîtes */
    padding: 10px;               /* Padding autour du conteneur */
    justify-content: flex-start; /* Aligne les éléments au début de la ligne */
    overflow-x: hidden;          /* Cache la barre de défilement horizontale */
    cursor: grab;                /* Change le curseur pour indiquer un glissement */
    width: 100%;                 /* Prend toute la largeur disponible */
    scroll-behavior: smooth;     /* Défilement fluide optionnel */
}

#catalogue_favoris {
    border-radius: 15px;
    background-color: #363131;
    display: flex;                /* Utilisation du Flexbox pour aligner les éléments en ligne */
    gap: 1px;                     /* Espacement entre les boîtes */
    padding: 10px;                /* Padding autour du conteneur */
    justify-content: flex-start; /* Aligne les éléments au début de la ligne */
    overflow-x: hidden;          /* Cache la barre de défilement horizontale */
    cursor: grab;                /* Change le curseur pour indiquer un glissement */
    width: 100%;                 /* Prend toute la largeur disponible */
    scroll-behavior: smooth;  

}


.petite-boite {
    will-change: transform, box-shadow;
    position: relative;  /* ou 'static' */
    border-radius: 10px;
    max-width: 250px;            /* Limite la largeur pour éviter l'étirement */
    flex-shrink: 0;              /* Empêche les boîtes de rétrécir */
    min-width: 200px;           /* Largeur minimale de chaque boîte */
    margin-right: 15px;         /* Espace entre les boîtes */
    background-color: #eee;     /* Couleur de fond */
    user-select: none;          /* Empêche la sélection du texte */
    transition: transform 0.2s ease-in-out, box-shadow 0.3s ease; /* Transition fluide */
    overflow: visible;
    will-change: transform; /* Optimisation du rendu pour les animations de transformation */
}

/* Effet au survol */
.petite-boite:hover {
    transform: scale(1) rotate(-3deg) skew(5deg); /* Agrandit et incline légèrement */
    box-shadow: 0px 8px 15px rgba(0, 0, 0, 0.2); /* Ombre au survol */
    cursor: pointer; /* Change le curseur en pointeur */
    z-index: 1000;
}

.petite-boite img {
    width: 100%;                 /* L'image prend toute la largeur de la boîte */
    height: auto;
    border-radius: 6px;         /* Arrondit les coins de l'image */
    user-select: none;           /* Empêche la sélection de l'image */
    pointer-events: none;        /* Empêche l'interaction avec l'image (clic droit, drag) */
    -webkit-user-drag: none;     /* Empêche le glisser-déposer de l'image dans les navigateurs Webkit */
}

.petite-boite p {
    font-family: NKFONT;
    font-size: 130%;
    color: #ffffff;
    
}

.play-button {
    background: rgba(0, 0, 0, 0.123);
    border: none;
    color: white;
    font-size: 20px;
    cursor: pointer;
    transition: transform 0.1s ease-in-out; /* Transition fluide */
    transform-origin: center; /* Point de transformation */
    cursor: pointer; /* Change le curseur pour indiquer une action */
}
.play-button:hover {
    color: rgba(255, 255, 255, 0.479); /* Change de couleur au survol */
    transform: skewX(-15deg); /* Incline le cœur vers la gauche */
}
.box-right {
    position: fixed;
    top: 80px;
    right: -10px;
    width: 50%;
    max-width: 1920px;
    height: calc(100vh - 160px);
    background-color: rgba(0, 0, 0, 0.8);
    color: white;
    padding: 20px;
    overflow-y: auto; /* Permet le défilement vertical */
    overflow-x: hidden; /* Empêche le défilement horizontal */
    box-sizing: border-box;
    border-radius: 10px;
    z-index: 1000;
    font-family: "NKFONT";

    /* Initialement masquée */
    opacity: 0;
    transform: translateX(100%);
    pointer-events: none; /* Désactive les interactions lorsque masquée */
    transition: opacity 0.5s ease, transform 0.5s ease; /* Animation fluide */
}

/* Lorsque la boîte est visible */
.box-right.visible {
    opacity: 1;
    transform: translateX(0);
    pointer-events: auto; /* Active les interactions */
    z-index: 101010;
}

/* Media query pour les petits écrans (par exemple, smartphones) */
@media screen and (max-width: 768px) {
    .box-right {
        top: 80px;
        right: 0;
        width: 100%; /* Prend toute la largeur */
        height: calc(100vh - 170px);
        padding: 10px; /* Réduction du padding pour mieux s'adapter */
    }
}

#box-right h3 {
    font-size: 1.5em; /* Taille de police relative */
    word-wrap: break-word; /* Gère les très longs mots */
    text-align: center; /* Centrer le titre */
}

#box-right p {
    font-size: 1em; /* Taille de police relative */
    line-height: 1.5; /* Meilleure lisibilité */
    text-align: center; /* Justifie le texte pour un look soigné */
}

#box-right img {
    max-width: 100%; /* S'assure que l'image reste dans les limites */
    max-height: 500px; /* Limite la hauteur des images */
    object-fit: contain; /* Ajuste l'image sans déformation */
    margin-top: 10px;
    margin: 0 auto; /* Centre l'image horizontalement */
    display: block; /* Force un conteneur de bloc */
}

#box-right a {
    display: block; /* Nécessaire si ce n'est pas un texte sur une seule ligne */
    text-align: center; /* Centre le contenu textuel */
    margin: 0 auto; /* Si utilisé avec une largeur */
    width: fit-content; /* Ajuste la largeur au contenu */
}





/* Vous pouvez ajouter un style pour le bouton de la navbar */
/* Bouton toggle avec des couleurs dynamiques */
.toggle-button {
    border-radius: 10%;
    font-size: 45px;
    position: fixed;
    bottom: 1%;
    left: 15px;
    background: linear-gradient(45deg, #ff7e5f, #feb47b, #6a11cb, #2575fc, #00c6ff);
    background-size: 400% 400%; /* Taille du fond pour permettre un dégradé fluide */
    color: white;
    border: none;
    padding: 10px;
    cursor: pointer;
    z-index: 10000;
    animation: gradientAnimation 5s ease infinite; /* Animation du gradient */
    transition: transform 0.3s ease, background-color 0.3s ease; /* Transition pour la taille et la couleur */
}

/* Animation du dégradé */
@keyframes gradientAnimation {
    0% {
        background-position: 0% 50%;
    }
    50% {
        background-position: 100% 50%;
    }
    100% {
        background-position: 0% 50%;
    }
}

/* Effet de survol de la souris */
.toggle-button:hover {
    transform: scale(1.1); /* Agrandir le bouton légèrement */
    animation: none; /* Stopper l'animation du dégradé */
    background-color: #6a11cb; /* Couleur violette éclatante */
}



.audio-bar {
    overflow: hidden;
    background-color: rgb(22, 22, 22); /* Couleur de fond originale */
    position: fixed; /* Garder la barre fixée en bas de la page */
    bottom: 0px; /* Assurer qu'elle est bien en bas */
    left: 0; /* Alignée à gauche */
    width: 100%; /* Prend toute la largeur */
    height: 10%; /* Hauteur de la barre */
    box-sizing: border-box;
    z-index: 9999; /* Placer la barre au-dessus du reste du contenu */
    color: #ddd;
    font-family: "NKFONT";
    
    /* Centrer les boutons horizontalement et les espacer un peu moins */
    display: flex;
    justify-content: center; /* Centrer les éléments horizontalement */
    align-items: center; /* Centrer verticalement */
    padding: 5px; /* Marge interne de la barre */
}

.audio-bar::before {
    content: '';
    position: absolute; /* Positionner l'élément par rapport à la barre */
    top: 0;
    left: 0;
    width: 200%; /* Étendre la largeur pour permettre au logo de défiler correctement */
    height: 1200%; /* Garder la hauteur de la barre */
    background-image: url('Images/logo_site.png'); /* Logo utilisé pour l'animation */
    background-size: 100px 100px; /* Taille des logos */
    background-repeat: repeat; /* Répéter les logos */
    opacity: 0.05; /* Opacité pour un effet léger */
    transform: rotate(-15deg); /* Rotation pour l'effet dynamique */
    z-index: -1; /* Placer derrière les autres éléments */
    animation: move-diagonal-audio 10s linear infinite, fade-in-out 10s linear infinite; /* Animation fluide avec fondu */
}

/* Animation pour faire bouger le logo de gauche à droite et de bas en haut */
@keyframes move-diagonal-audio {
    0% {
        transform: translate(-30%, -30%) rotate(-15deg); /* Départ de la position */
    }
    100% {
        transform: translate(-22%, -22%) rotate(-15deg); /* Fin du déplacement */
    }
}

/* Animation de fondu pour cacher la coupure à la fin et au début de la boucle */
@keyframes fade-in-out {
    0% {
        opacity: 0; /* Début du fondu (opacité nulle) */
    }
    10% {
        opacity: 0.05; /* Augmentation de l'opacité */
    }
    90% {
        opacity: 0.05; /* Opacité constante pendant l'animation */
    }
    100% {
        opacity: 0; /* Fin du fondu (opacité nulle) */
    }
}



/* Style pour les boutons de contrôle audio */
.audio-btn {
    position: fixed;
    left: 45%;
    background-color: transparent;
    border: none;
    color: #ddd;
    font-size: 30%;
    cursor: pointer;
    padding: 10px;
    margin: 0 5px; /* Réduire l'espace entre les boutons */
    transition: color 0.3s;
}

.audio-btn:hover {
    color: white; /* Change la couleur au survol */
}

#playPause {
    font-size: 150%; /* Taille plus grande pour le bouton play/pause */
}

.audio-btn img {
    width: 40px;
    height: 40px;
    transition: transform 0.3s;
}

.audio-btn img:hover {
    transform: scale(1.1);
}


#catalogue_recommande {
    display: flex;               /* Disposition en ligne (horizontalement) */
    overflow-x: auto;            /* Permet le défilement horizontal */
    width: 100%;                 /* Prend toute la largeur disponible */
    cursor: grab;                /* Curseur "grab" quand la souris n'est pas enfoncée */
    -ms-overflow-style: none;    /* Masque la barre de défilement sur Internet Explorer */
    scrollbar-width: none;       /* Masque la barre de défilement sur Firefox */
}

#catalogue_recommande::-webkit-scrollbar {
    display: none; /* Masquer la barre de défilement pour les navigateurs Webkit (Chrome, Safari, etc.) */
}

/* Assurez-vous que le h1-reco a une marge en bas et un espacement suffisant par rapport à la navbar */
.navbar {
    position: fixed;
    top: 0;
    width: 100%;
    height: 80px; /* Hauteur fixe pour compenser */
    background-color: #333;
    z-index: 10000;
}

#body {
    padding-top: 80px; /* Compense la hauteur de la navbar */
}

#h1-reco {
    padding-left: 1%;
    font-size: 175%;
    font-family: "NKFONT";
    color: rgb(184, 174, 161);
}

#h1-fav {
    padding-left: 1%;
    font-size: 175%;
    font-family: "NKFONT";
    color: rgb(184, 174, 161);
}

.favoris-button {
    font-size: 30px;
    color:rgb(255, 255, 255);
    display: inline-block;
    font-family: "Arial", sans-serif; /* Choisissez une police adaptée */
    transition: transform 0.1s ease-in-out; /* Transition fluide */
    transform-origin: center; /* Point de transformation */
    cursor: pointer; /* Change le curseur pour indiquer une action */

}

.favoris-button:hover {
    font-size: 30px;
    color:rgba(255, 255, 255, 0.493);
    transform: skewX(-15deg); /* Incline le cœur vers la gauche */

}

#onkonk{

    font-family: "NKFONT";
    font-size: 1000px;
    padding-top: 10px;
}

.container {
    position: relative; /* Si ce n'est pas déjà défini */
    overflow: visible;  /* Permet aux éléments enfants de déborder */
}

/* Conteneur de la barre de volume */
.volume-control {
    position: absolute; /* Position absolue pour la placer à droite */
    right: 20px; /* Espacement depuis le bord droit */
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 20px;
    padding: 5px;
    border-radius: 20px;
    background-color: #272427a4;
    max-width: 500px;
    
}

/* Label de la barre */
.volume-label {
    font-size: 1em;
    font-weight: bold;
    color: #ffffff;
}

/* Slider stylisé */
.volume-slider {
    -webkit-appearance: none; /* Pour supprimer le style par défaut */
    appearance: none;
    width: 110%;
    height: 18px;
    padding: 2px;
    background: linear-gradient(90deg, #311733, #6a0377);
    border-radius: 10px;
    outline: none;
    cursor: pointer;
    transition: 0.3s ease;
}

/* Curseur de la barre */
.volume-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background-color: #611868;
    border: 10px solid #680e0e;
    cursor: pointer;
    transition: background-color 0.3s ease, transform 0.2s ease;
}

.volume-slider::-webkit-slider-thumb:hover {
    background-color: #551f55;
    transform: scale(1.2);
}

.volume-slider::-moz-range-thumb {
    width: 12px;
    height: 12px;
    background-color: #ffffff;
    border: 1px solid #000000;
    cursor: pointer;
    transition: background-color 0.3s ease, transform 0.2s ease;
}

.volume-slider::-moz-range-thumb:hover {
    background-color: #ff00dd46;
    transform: scale(1.2);
}


/* Media Query pour les petits écrans (smartphones) */
@media (max-width: 600px) {
    /* Réduire la largeur de la barre de volume sur les petits écrans */
    .volume-slider {
        width: 100px; /* Réduire la largeur */
    }
    .audio-btn {
        left: 20%;
    }
    /* Réduire la taille du curseur */
    .volume-slider::-webkit-slider-thumb,
    .volume-slider::-moz-range-thumb {
        width: 15px;
        height: 15px;
    }
}

.boite-active {
    box-shadow: 0 8px 16px rgba(255, 255, 255, 0.8), 0 0 15px rgba(255, 255, 255, 1);
    transform: scale(1.02); /* Optionnel : léger agrandissement */
    transition: all 0.3s ease-in-out; /* Animation pour un effet fluide */
}

.audio-btn {
    margin-right: 10px;
    border: none;
    background: none;
    cursor: pointer;
}

.progress-container {
    flex-grow: 1;
    margin: 0 10px;
}

.progress-bar {
    width: 50%;
    position: fixed;
    left: 20%;
    cursor: pointer;
    background-color: #ddd;
    border: 1px solid #ccc;
    border-radius: 5px;
    height: 1%;
}

.volume-control {
    display: flex;
    align-items: center;
}


#catalogue_recommande, #catalogue_favoris {
    scroll-behavior: smooth;
    overflow-x: auto;
    cursor: grab;
    -webkit-overflow-scrolling: touch; /* Pour le scrolling fluide sur iOS */
}
