/* ===========================
   POLICES
=========================== */
@font-face {
  font-family: 'SuperBrigade';
  src: url('fonts/superbrigade.ttf') format('truetype');
  font-display: swap;
}
@font-face {
  font-family: 'Blockkie';
  src: url('fonts/blockkie.ttf') format('truetype');
  font-display: swap;
}

/* ===========================
   VARIABLES
=========================== */
:root { --header-height: 0px; }

/* ===========================
   LAYOUT GLOBAL (footer collÃ© en bas)
=========================== */
html, body {
  height: 100%;
  display: flex;
  flex-direction: column;
}
body {
  margin: 0;
  padding: 0;
  background: url('images/fond.jpg') no-repeat center center fixed;
  background-size: cover;
  font-family: 'Blockkie', sans-serif;
  color: #000;
}
a { text-decoration: none; }

/* ===========================
   HEADER (fixe, masque ce qui passe derriÃ¨re)
=========================== */
header {
  position: fixed;
  top: 0; left: 0; width: 100%;
  display: flex; flex-direction: column; align-items: center;
  background: transparent;
  z-index: 2000;
  padding-top: 20px;
  overflow: hidden; /* coupe le contenu qui dÃ©file dessous */
}
header .logo img {
  width: clamp(340px, 28vw, 500px);
  max-width: 500px;
  height: auto;
  transition: transform 0.3s ease;
  display: block;
}

header .logo img:hover {
  transform: scale(1.05); /* petit zoom fluide */
}
header .logo img:hover { transform: scale(1.05); }
nav ul {
  list-style: none; display: flex; justify-content: center; flex-wrap: wrap;
  margin: 16px 0 0; padding: 0; gap: 14px;
}
nav a {
  font-family: 'Blockkie', sans-serif;
  background: #000; color: #fff; padding: 4px 10px; transition: all 0.25s ease;
}
nav a:hover, nav a.active { background: #fff; color: #000; }

/* ===========================
   MAIN (espacement sous header)
=========================== */
main {
  flex: 1;
  max-width: 1100px;
  margin: 0 auto 100px auto;
  padding: calc(var(--header-height) + 40px) 20px 0;
  position: relative;
  z-index: 1; /* sous le header (z 2000) */
}
@media (max-width: 600px){
  main { padding-top: calc(var(--header-height) + 20px); }
}

/* ===========================
   BOUTONS (gÃ©nÃ©ral)
=========================== */
.btn {
  display: inline-block;
  background: #000; color: #fff;
  padding: 6px 14px;
  font-family: 'Blockkie', sans-serif;
  transition: all 0.25s ease;
}
.btn:hover { background: #fff; color: #000; }

/* ===========================
   INDEX (HOME)
=========================== */
/* Grille : 1/3 pochette, 2/3 texte */
.album-promo .promo-grid {
  display: grid;
  grid-template-columns: 1fr 2fr;
  align-items: center;
  gap: 24px;
}
@media (max-width: 900px) {
  .album-promo .promo-grid { grid-template-columns: 1fr; gap: 18px; }
}
/* Pochette (zoom interne) */
.cover-link { display: block; max-width: 100%; overflow: hidden; }
.cover-link img {
  display: block; width: 100%; height: auto;
  transform: scale(1); transition: transform 0.25s ease;
}
.cover-link:hover img { transform: scale(1.03); }

/* Colonne texte */
.promo-text { text-align: left; }
/* Titre */
.album-title {
  font-family: 'SuperBrigade', sans-serif;
  font-size: clamp(26px, 3.8vw, 40px);
  margin: 0 0 10px 0; color: #fff;
  text-shadow: 2px 2px 0 #000;
}
/* Date : blanc sur noir */
.release-date {
  display: inline-block;
  margin: 0 0 10px 0; background: #000; color: #fff;
  padding: 2px 6px; line-height: 1.2;
}
/* Description : noir sur fond blanc */
.album-desc {
  display: block;
  margin: 0 0 14px 0;
  background: #fff; color: #000;
  padding: 2px 6px; line-height: 1.25;
  max-width: 60ch;
}
/* Boutons cÃ´te Ã  cÃ´te */
.promo-buttons { display: flex; gap: 12px; flex-wrap: wrap; }
.promo-buttons .btn { white-space: nowrap; }

/* ===========================
   CARROUSEL (musique & clips)
=========================== */
.carousel-container { position: relative; max-width: 1100px; margin: 0 auto; overflow: visible; }
.carousel {
  display: flex; overflow-x: auto; scroll-behavior: smooth;
  gap: 20px; padding: 10px 12px;
  -ms-overflow-style: none; scrollbar-width: none;
}
.carousel::-webkit-scrollbar { height: 0; }
.carousel:hover { scrollbar-width: thin; }
.carousel:hover::-webkit-scrollbar { height: 8px; }
.carousel::-webkit-scrollbar-track { background: transparent; }
.carousel::-webkit-scrollbar-thumb { background: rgba(0,0,0,0.45); border-radius: 4px; }

.album-card {
  flex: 0 0 auto; width: 240px;
  display: flex; flex-direction: column; align-items: center; text-align: center; gap: 8px;
}
.cover-wrap { position: relative; width: 100%; overflow: hidden; cursor: pointer; }
.cover-wrap img { display: block; width: 100%; height: auto; transition: transform 0.3s ease; }
.cover-wrap:hover img { transform: scale(1.05); }
.cover-overlay {
  position: absolute; inset: 0; background: rgba(0,0,0,0.35);
  display: flex; flex-direction: column; justify-content: center; align-items: center;
  gap: 6px; opacity: 0; transition: opacity 0.25s ease;
}
.cover-wrap:hover .cover-overlay { opacity: 1; }
.cover-title {
  font-family: 'SuperBrigade', sans-serif; font-size: 1.2rem; color: #fff; text-shadow: 2px 2px 0 #000;
}
.cover-date {
  font-family: 'Blockkie', sans-serif; font-size: 0.9rem;
  background: #fff; color: #000; padding: 2px 6px; line-height: 1.2;
}
.album-meta {
  display: flex; flex-direction: column; align-items: center; gap: 6px; width: 100%;
  margin-top: 14px;
}

/* FlÃ¨ches carrousel (hors colonne centrale) */
.carousel-button {
  position: absolute; top: 50%; transform: translateY(-50%);
  width: 36px; height: 36px; background: rgba(0,0,0,0.6); color: #fff;
  border: 0; cursor: pointer; z-index: 5; display: grid; place-items: center;
  font-size: 18px; line-height: 1;
}
.carousel-button.left { left: -48px; }
.carousel-button.right { right: -48px; }
@media (max-width: 1200px) {
  .carousel-button.left { left: 4px; }
  .carousel-button.right { right: 4px; }
}
.carousel-button.left::before { content: "â€¹"; }
.carousel-button.right::before { content: "â€º"; }

/* ===========================
   CLIPS (strip horizontal)
=========================== */
.clips-wrapper { position: relative; max-width: 1100px; margin: 0 auto; overflow: visible; }
.clips-strip { display: flex; overflow-x: auto; scroll-behavior: smooth; gap: 20px; padding: 10px 12px; -ms-overflow-style: none; scrollbar-width: none; }
.clips-strip::-webkit-scrollbar { height: 0; }
.clips-strip:hover { scrollbar-width: thin; }
.clips-strip:hover::-webkit-scrollbar { height: 8px; }
.clips-strip::-webkit-scrollbar-track { background: transparent; }
.clips-strip::-webkit-scrollbar-thumb { background: rgba(0,0,0,0.45); border-radius: 4px; }
.clip-card { flex: 0 0 auto; width: 320px; position: relative; }
.clip-thumb { position: relative; display: block; width: 100%; overflow: hidden; background: #111; aspect-ratio: 16 / 9; }
.clip-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.3s ease; display: block; }
.clip-thumb:hover img { transform: scale(1.05); }
.clip-thumb .play { position: absolute; inset: 0; display: grid; place-items: center; font-size: 2rem; color: #fff; opacity: 0; transition: opacity 0.25s ease; }
.clip-thumb:hover .play { opacity: 1; }
.clips-btn { position: absolute; top: 50%; transform: translateY(-50%); width: 36px; height: 36px; background: rgba(0,0,0,0.6); color: #fff; border: none; cursor: pointer; z-index: 5; font-size: 18px; }
.clips-btn.left { left: -48px; } .clips-btn.right { right: -48px; }
@media (max-width: 1200px) { .clips-btn.left { left: 4px; } .clips-btn.right { right: 4px; } }
.clips-btn.left::before { content: "â€¹"; } .clips-btn.right::before { content: "â€º"; }

/* ===========================
   LIGHTBOX (gÃ©nÃ©rique)
=========================== */
.lightbox {
  display: none;
  position: fixed; inset: 0;
  background: rgba(0,0,0,0.9);
  z-index: 10000; /* ðŸ”¥ toujours au-dessus du header */
  justify-content: center; align-items: center;
}
.lightbox .lightbox-content {
  position: relative;
  max-width: 92vw; max-height: 90vh;
  padding: 0; background: transparent; overflow: hidden;
  display: flex; align-items: center; justify-content: center;
}
.lightbox img {
  width: auto; height: auto; max-width: 92vw; max-height: 90vh; object-fit: contain;
  border-radius: 0;
  transition: transform 0.3s ease;
}
.lightbox .close {
  position: absolute;
  top: 12px; right: 12px;
  width: 28px; height: 28px; line-height: 28px; text-align: center;
  background: #000; color: #fff; font-size: 18px; cursor: pointer; z-index: 2100;
}
.lightbox .credit {
  position: absolute; right: 12px; bottom: 12px;
  margin: 0; font-size: 12px; color: #fff; text-shadow: 1px 1px 0 #000; z-index: 2100;
}

/* Variante : Lightbox Premiers Extraits (croix hors boÃ®te) */
#lightboxExtraits .lightbox-content {
  background: #111; padding: 30px 20px; border-radius: 0; min-width: 280px;
}
#lightboxExtraits .close {
  position: fixed;
  top: 20px; right: 30px;
  background: transparent;
  font-size: 36px; width: auto; height: auto; line-height: 1;
}
.extraits-buttons { display: flex; flex-direction: column; gap: 12px; align-items: center; }
.extraits-buttons .btn { width: 220px; text-align: center; }
@media (min-width: 900px) { .extraits-buttons .btn { width: 260px; } }

/* ===========================
   FOOTER
=========================== */
footer {
  margin-top: auto;
  width: 100%; text-align: center; background: transparent; padding-bottom: 10px;
}
.social-icons { display: flex; justify-content: center; gap: 18px; margin-bottom: 8px; }
.social-icons img { width: 28px; height: auto; transition: transform 0.3s ease; }
.social-icons img:hover { transform: scale(1.1); }
footer .copyright {
  font-family: 'Blockkie', sans-serif;
  background: #000; color: #fff; display: inline-block; padding: 2px 8px; font-size: 0.85rem;
}

/* ===========================
   CONCERTS
=========================== */
.concerts { max-width: 900px; margin: 0 auto; padding: 20px; }
.concerts h2 {
  font-family: 'SuperBrigade', sans-serif;
  text-align: left;
  margin-bottom: 15px; color: #fff; text-shadow: 2px 2px 0 #000;
}
/* Lignes : noir sur blanc */
.concerts-list p {
  margin: 3px 0; background: #fff; color: #000;
  display: inline-block; padding: 1px 6px; line-height: 1.2;
}
/* Villes : blanc sur noir */
.concerts-list p .ville { background: #000; color: #fff; padding: 1px 4px; }
/* Lien cliquable (date spÃ©ciale) + hover inverse */
.concerts-list a {
  background: #fff; color: #000; display: inline-block;
  padding: 1px 6px; line-height: 1.2; text-decoration: none; transition: all 0.25s ease;
}
.concerts-list a .ville { background: #000; color: #fff; padding: 1px 4px; }
.concerts-list a:hover { background: #000; color: #fff; }
.concerts-list a:hover .ville { background: #fff; color: #000; }
/* PremiÃ¨res parties */
.first-parts { margin-top: 2vh; }
.first-parts p {
  margin: 2px 0; background: #000; color: #fff;
  display: inline-block; padding: 1px 6px; line-height: 1.2; font-size: 0.9em;
}

/* ===========================
   BIO â€“ 1/3 photo / 2/3 texte
=========================== */
.bio-grid{
  display: grid;
  grid-template-columns: minmax(0,1fr) minmax(0,2fr);
  gap: 20px;
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 20px; /* pas de padding vertical : main sâ€™en charge */
  align-items: stretch;
  min-height: calc(100vh - var(--header-height) - 100px);
}
/* Colonnes scrollables */
.bio-left, .bio-right {
  overflow: auto;
  -webkit-overflow-scrolling: touch;
}
/* Colonne PHOTOS */
.bio-left { padding-right: 6px; }
.bio-photo { margin-bottom: 14px; overflow: hidden; }
.bio-img {
  width: 100%; height: auto; display: block; cursor: pointer;
  transform: scale(1); transition: transform .3s ease;
}
.bio-img:hover { transform: scale(1.05); }
/* Colonne TEXTE */
.bio-right {
  padding-left: 6px;
  text-align: justify; text-justify: inter-word;
  hyphens: none; word-break: normal; overflow-wrap: break-word;
}
/* Paragraphe + surlignage serrÃ© via span.chip */
.bio-chip { margin: 0 0 12px 0; line-height: 1.35; display: block; background: none; color: inherit; }
.bio-chip .chip {
  display: inline; background: #fff; color: #000; padding: 2px 6px;
  -webkit-box-decoration-break: clone; box-decoration-break: clone;
}
/* Signature */
.bio-signature {
  display: block; text-align: right; background: #000; color: #fff;
  padding: 2px 6px; margin-top: 20px;
}
/* Mobile */
@media (max-width: 900px){
  .bio-grid { grid-template-columns: 1fr; min-height: auto; padding: 0 16px; }
  .bio-left, .bio-right { overflow: visible; padding: 0; }
}
/* Lightbox BIO */
#lightboxBio {
  display: none; position: fixed; inset: 0; background: rgba(0,0,0,0.9);
  justify-content: center; align-items: center;
}
#lightboxBio .lightbox-content { position: relative; max-width: 92vw; max-height: 92vh; }
#lightboxBio img {
  display: block; width: auto; height: auto; max-width: 92vw; max-height: 92vh;
  object-fit: contain; transform: none; transition: none;
}
#lightboxBio .close {
  position: absolute; top: 12px; right: 12px;
  background: #000; color: #fff; font-size: 24px; padding: 4px 10px; cursor: pointer; z-index: 10000;
}
#lightboxBio .credit {
  position: absolute; right: 12px; bottom: 12px; font-size: 13px; color: #fff; text-shadow: 1px 1px 0 #000;
}

/* ===========================
   CONTACT (grille 3 colonnes)
=========================== */
.contact { max-width: 1100px; margin: 0 auto; padding: 0 20px; }
.contact-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; align-items: start;
}
@media (max-width: 900px){ .contact-grid { grid-template-columns: 1fr; } }
.contact-card h3 {
  font-family: 'SuperBrigade', sans-serif; color: #fff; text-shadow: 2px 2px 0 #000;
  margin: 0 0 10px 0; font-size: clamp(18px, 2.4vw, 26px);
}
.contact-line, .contact-note {
  display: inline; background: #fff; color: #000; padding: 2px 6px; line-height: 1.35;
  -webkit-box-decoration-break: clone; box-decoration-break: clone;
}
.contact-block p { margin: 0 0 10px 0; }
.contact a { color: inherit; text-decoration: none; }
.contact a:hover { background: #000; color: #fff; }

/* ===========================
   PAROLES â€” carrousel + tracklists + lightbox (propre)
=========================== */

/* Carrousel */
#parolesCarousel{
  display:flex; overflow-x:auto; scroll-behavior:smooth;
  gap:20px; padding:10px 12px; -ms-overflow-style:none; scrollbar-width:none;
}
#parolesCarousel::-webkit-scrollbar{height:0;}
#parolesCarousel:hover{scrollbar-width:thin;}
#parolesCarousel:hover::-webkit-scrollbar{height:8px;}
#parolesCarousel::-webkit-scrollbar-track{background:transparent;}
#parolesCarousel::-webkit-scrollbar-thumb{background:rgba(0,0,0,0.45); border-radius:4px;}

:root{ --paroles-cover:240px; --paroles-pad:10px; }

#parolesCarousel .album-card{
  flex:0 0 auto; width:var(--paroles-cover);
  display:flex; flex-direction:column; align-items:center; text-align:center; gap:8px;
}

#parolesCarousel .cover-wrap{
  position:relative; width:100%; aspect-ratio:1/1; overflow:hidden; cursor:pointer;
}
#parolesCarousel .cover-wrap img{
  width:100%; height:100%; object-fit:cover; transition:transform .3s ease;
}
#parolesCarousel .cover-wrap:hover img{ transform:scale(1.05); }

#parolesCarousel .cover-overlay{
  position:absolute; inset:0; background:rgba(0,0,0,.45);
  display:flex; justify-content:center; align-items:center; opacity:0; transition:opacity .25s ease;
}
#parolesCarousel .cover-wrap:hover .cover-overlay{ opacity:1; }

#parolesCarousel .cover-title{
  font-family:'SuperBrigade',sans-serif; font-size:1.2rem; color:#fff; text-shadow:2px 2px 0 #000;
}

/* FlÃ¨ches calÃ©es sur le milieu des pochettes */
.carousel-button{
  position:absolute; top:calc(var(--paroles-pad) + (var(--paroles-cover)/2)); transform:translateY(-50%);
  width:36px; height:36px; background:rgba(0,0,0,.6); color:#fff; border:0; cursor:pointer; z-index:5;
  display:grid; place-items:center; font-size:18px; line-height:1;
}
.carousel-button.left{ left:-48px; }
.carousel-button.right{ right:-48px; }
@media (max-width:1200px){
  .carousel-button.left{ left:4px; }
  .carousel-button.right{ right:4px; }
}
.carousel-button.left::before{ content:"â€¹"; }
.carousel-button.right::before{ content:"â€º"; }

/* Tracklists (garde lâ€™alignement Ã  gauche sous la pochette) */
.tracklist{
  list-style:none; padding:0; margin:12px 0 0 0; text-align:left; width:100%;
}
.tracklist li{ margin:3px 0; }

/* Lâ€™ANCRE est le bloc cliquable â†’ pas de bleu/soulignÃ© */
.tracklist a.track-item{
  display:block;
  background:#fff; color:#000;
  padding:2px 6px; line-height:1.3;
  font-family:'Blockkie',sans-serif;
  text-decoration:none;                 /* enlÃ¨ve le soulignÃ© */
  transition:all .25s ease;
}
.tracklist a.track-item sup{
  font-size:.7em; vertical-align:super;
}
.tracklist a.track-item:hover{
  background:#000; color:#fff;
}
.tracklist a.track-item:hover sup{ color:#fff; }

/* Lightbox PAROLES */
#lightboxParoles{
  display:none; position:fixed; inset:0; background:rgba(0,0,0,.9);
  justify-content:center; align-items:center;
}
.paroles-box{
  background:#fff; color:#000; padding:30px 40px;
  max-width:800px; max-height:90vh; overflow-y:auto; text-align:left;
}
.paroles-box h2{
  font-family:'SuperBrigade',sans-serif; font-size:1.3rem; /* POUR LA TAILLE DU TITRE DE LA CHANSON */
  margin:0 0 16px 0; text-align:left; color:#000;
}

/* ðŸŽ¯ Interlignage & strophes â€” forcÃ© avec !important pour gagner tous les conflits */
#lightboxParoles .paroles-text{
  font-family:'Blockkie',sans-serif !important;
  font-size:1rem !important;
  line-height:0.5 !important;          /* POUR L'INTERLIGNE */
  white-space:pre-line !important;       /* respecte les retours Ã  la ligne */
  margin:0 !important;
}
#lightboxParoles .paroles-text p{
  margin:0 0 .55em 0 !important;        /* espace ~1 ligne entre strophes */
  line-height:inherit !important;
}

/* CrÃ©dit */
.paroles-credit{
  margin-top:20px; font-size:.9em; font-style:italic; text-align:left; opacity:.85;
}

/* Croix en haut Ã  droite de la fenÃªtre */
#lightboxParoles .close{
  position:fixed; top:20px; right:30px;
  font-size:32px; font-weight:bold; color:#fff; background:transparent; cursor:pointer; z-index:6000; line-height:1; border:0;
}

/* Global — empêche le scroll quand une lightbox est ouverte */
body.no-scroll { overflow: hidden; }

@media (prefers-reduced-motion: reduce) {
  * {
    animation-duration: 1ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 1ms !important;
    scroll-behavior: auto !important;
  }
}
/* ========== CONCERTS — supprimer le halo blanc autour des dates cliquables ========== */
/* Si une ligne contient un <a>, on retire le fond/padding du conteneur */
.concerts-list p:has(a) {
  background: transparent !important;
  padding: 0 !important;
}

/* On laisse l'ancre gérer l'inversion comme avant (règles existantes déjà OK) */


/* ========== CONTACT — inversion sur le bloc complet, pas seulement le lien ========== */
/* Au survol, on inverse le fond/couleur du chip entier (pas de double fond sur le <a>) */
.contact-line:hover,
.contact-note:hover {
  background: #000;
  color: #fff;
}

/* Le lien n'ajoute pas de fond : il hérite simplement (évite le petit cadre) */
.contact .contact-line a,
.contact .contact-note a {
  color: inherit;
  text-decoration: none;
}

.contact .contact-line a:hover,
.contact .contact-note a:hover {
  background: transparent !important;
  color: inherit !important;
}
/* CONTACT – textes non-liens toujours en blanc avec surlignage noir */
.contact-line:not(:has(a)),
.contact-note:not(:has(a)) {
  background: #000;
  color: #fff;
}

:root { 
  /* valeur par défaut pour éviter le chevauchement au premier affichage */
  --header-height: 140px;
}

/* Assure-toi que ton main a un fallback */
main {
  padding: calc(var(--header-height, 140px) + 40px) 20px 0;
}
@media (max-width: 600px){
  main { padding-top: calc(var(--header-height, 140px) + 20px); }
}

/* (optionnel mais utile) : fixe le ratio du logo pour stabiliser le header */
header .logo img {
  aspect-ratio: auto; /* adapte selon ton image */
}