@charset "utf-8";
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  font-family: Arial, Helvetica, sans-serif;
  line-height: 1.6;
  background-color: #d1d1f7;
}

.hero-img {
  background-image: url("images/fleurballon2.jpg");
  background-color: #fff;
  background-position: center;
  background-repeat: no-repeat;
}

.hero-text {
  text-align: center;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: #d1d1f7;
}

header, footer {
  background-color: #6666cc;
  color: #d1d1f7;
  padding: 1rem 1.5rem;
}

header nav ul {
  list-style: none;
  display: flex;
  flex-direction: row;
  gap: 1rem;
  margin-top: 0.5rem;
}

header nav a:link {
  color: #d1d1f7;
  text-decoration: none;
}

header nav a:visited {
  color: #d1d1f7;
  text-decoration: none;
}

header nav a:active {
  color: #d1d1f7;
  text-decoration: none;
}

header nav a:hover {
  color: #6666cc;
  background-color: #d1d1f7;
  text-decoration: none;
}

main {
  padding: 1.5rem;
  gap: 1.5rem;
}

.scroll-indicator {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  color: #6666cc;
  animation: bounce 2s infinite;
  cursor: pointer;
}

@keyframes bounce {
  0%, 20%, 50%, 80%, 100% {
    transform: translateX(-50%) translateY(0);
  }
  40% {
    transform: translateX(-50%) translateY(-10px);
  }
  60% {
    transform: translateX(-50%) translateY(-5px);
  }
}

.contenu-principal {
  max-width: 1100px;
  margin: 0 auto;
  color: #666666;
}

h3 {
  color: #6666cc;
}

p {
  margin-bottom: 1em;
}

.liens {
  color: #6666cc;
  text-decoration: none;
}

.liens:visited {
  color: #6666cc;
  text-decoration: none;
}

.liens:active {
  color: #6666cc;
  text-decoration: none;
}

.liens:hover {
  color: #d1d1f7;
  background-color: #6666cc;
  text-decoration: none;
}

hr {
  border: none;
  height: 4px;
  background-color: #b3b3e0;
  width: 60%;
  margin: 20px auto;
}

table {
  margin: 0 auto;
  border-collapse: collapse;
}

.songs-table {
  margin: 0 auto;
  border-collapse: collapse;
}

.songs-table tbody tr {
  border-top: 1px solid #b3b3e0;
  border-bottom: 1px solid #b3b3e0;
}

.songs-table th {
  padding: 0 20px 0 0;
  text-align: left;
  font-weight: normal;
}

.songs-table td {
  padding: 0px;
}

/* Icônes de ressources */
.resources {
  gap: 10px;
}

.resource-icon {
  display: inline-flex;
  padding: 0px;
  align-items: center;
  justify-content: center;
  width: 80px;
  height: 20px;
  border-radius: 999px;
  text-decoration: none;
  font-size: 0.9em;
  color: #fff;
  opacity: 0.9;
  transition: transform 0.15s ease, opacity 0.15s ease;
}

.resource-icon:hover {
  transform: scale(1.1);
  opacity: 1;
}

.icon-texte { color: #f2fbff; background: #66aacc; }  /* texte */
.icon-tab   { color: #f2f6ff; background: #6684cc; }  /* tablature */
.icon-audio { color: #f4f2ff; background: #6f66cc; }  /* extrait audio */
.icon-audio2 { color: #f9f2ff; background: #9566cc; }  /* extrait audio */
.icon-video { color: #fdf2ff; background: #bb66cc; }  /* extrait vidéo */

.resource-icon.disabled {
  background: #ddd8ce;
  color: #b5afa3;
  cursor: default;
  pointer-events: none;
}

.bloc-audio figcaption {
    color: #7766cc;
    font-size: 0.9em;
}

.paroles {
  text-align: center;
  columns: 2;           /* nombre de colonnes */
  column-gap: 3rem;     /* espace entre les colonnes */
}

.paroles p {
  break-inside: avoid;   /* évite qu'une strophe soit coupée entre deux colonnes */
  margin-bottom: 1,2em;
}

.video-container {
  position: relative;
  width: 100%;
  max-width: 800px;
  margin: 0 auto;
  padding-top: 56.25%; /* ratio 16:9 = 9/16 */
  border: 3px solid #8c66cc;
  border-radius: 8px;
  overflow: hidden;
}

.video-container iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.tabschords {
  font-family: 'Courier New', monospace;
  white-space: pre;
  font-weight: 700;
  color: #6666cc;
}

.tabstext {
  font-family: 'Courier New', monospace;
  white-space: pre;
}

/* TABLEAU DE L'HISTORIQUE DES MEMBRES DU GROUPE */
.chart{max-width:400px; margin:0 auto; position:relative;}
.years{display:flex; position:relative; height:20px; margin-bottom:6px;}
.years span{position:absolute; transform:translateX(-50%); font-size:.75rem; color:var(--fg); opacity:.6;}
.grid{position:relative; border-left:1px solid var(--grid);}
.grid .vline{position:absolute; top:0; bottom:0; width:1px; background:var(--grid);}
.row{position:relative; height:20px; margin-bottom:6px;}
.bar{
  position:absolute; top:0; height:100%; border-radius:8px;
  display:flex; align-items:center; justify-content:center; padding:0 6px; color:#fff;
  font-size:.85rem; font-weight:600; white-space:nowrap; overflow:hidden;
}

footer {
  text-align: center;
}

/* ---------- Version smartphone (petit écran) ---------- */
@media (max-width: 499px) {
  .hero-img {
    width: 100%;
    height: 100vh; /* plein écran */
    overflow: hidden;
    position: relative;
  }

  .hero-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;      /* remplit l'espace sans déformer */
    object-position: center; /* recadrage centré par défaut */
    display: block;
  }

  .hero-text {
    font-size: 0.8rem;
  }

  .scroll-indicator {
    bottom: 10vh;
  }

  .contenu-principal {
    font-size: 0.8rem;
  }

  h2 {
    font-size: 0.8rem;
  }

  h3 {
    font-size: 0.8rem;
  }

  header, footer {
    margin: 0;
	width: 100vw;
	font-size: 0.8rem;
  }

  .songs-table, 
  .songs-table tbody, 
  .songs-table tr,
  .songs-table th,
  .songs-table td {
	display: block;
  }

  .songs-table th,
  .songs-table td {
    padding: 0px;
	text-align: center;
  }

  .songs-table td {
    padding-bottom: 10px;
  }

  .resource-icon {
    width: 40px;
  }

  .paroles {
    columns: 1;
  }
}

/* ---------- Version tablette (écran intermédiaire) ---------- */
@media (min-width: 500px) and (max-width: 999px) {
  .hero-img {
    height: 100vh;
    max-width: 100%;
  }

  .hero-svg {
    width: 900px;
  }

  .hero-text {
    font-size: 1.6rem;
  }

  .scroll-indicator {
    bottom: 10vh;
  }

  header, footer {
    margin: 0;
	width: 100vw;
  }

  .paroles {
    columns: 1;
  }
}

/* ---------- Version ordinateur (écran large) ---------- */
@media (min-width: 1000px) {
  .hero-img {
    height: 100vh;
    max-width: 100%;
  }

  .hero-svg {
    width: 900px;
  }

  .hero-text {
    font-size: 1.8rem;
  }

  .scroll-indicator {
    bottom: 2vh;
  }

  header, footer {
    max-width: 1100px;
    margin: 0 auto;
  }
}