body { background-color: #F3E5DC; color: #000000; font-family: sans-serif; display: flex; flex-direction: column; min-height: 100vh; }
main { flex-grow: 1; }
h1, h2, h3, h4, h5, h6 { color: #16A34A; font-weight: bold; }
.btn-flotante-container { position: fixed; bottom: 20px; right: 20px; display: flex; flex-direction: column; gap: 10px; z-index: 1000; }
.btn-flotante { width: 50px; height: 50px; border-radius: 50%; display: flex; align-items: center; justify-content: center; color: white; box-shadow: 0 4px 6px rgba(0,0,0,0.3); transition: transform 0.2s; text-decoration: none; font-size: 24px; }
.btn-flotante:hover { transform: scale(1.1); color: white; }
.btn-subir { background-color: #16A34A; cursor: pointer; border: none; }
.btn-whatsapp { background-color: #25D366; }
.card { background: white; border-radius: 0.5rem; box-shadow: 0 4px 6px rgba(0,0,0,0.1); padding: 1.5rem; height: 100%; }
.nav-link { color: white; padding: 0.5rem 1rem; border-radius: 0.25rem; }
.nav-link:hover, .nav-link.active { background-color: rgba(255,255,255,0.2); }

/* Estilos especificos de cantos */

c { color: #dc2626; font-weight: bold; font-size: 0.8em; }

pre.song-pre {
  font-family: 'Cascadia Mono', 'SF Mono', 'Consolas', 'Liberation Mono', monospace;
  font-size: 0.82rem;
  white-space: pre-wrap;
  word-break: break-word;
  margin: 0;
  line-height: 1.4;
  padding: 0.5rem;
  background: #fafaf8;
  border-radius: 0.25rem;
  letter-spacing: -0.03em;
  font-weight: 500;
}

@media (max-width: 640px) {
  pre.song-pre { font-size: 0.7rem; letter-spacing: -0.04em; }
}

.index-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 6px; }
.index-link { color: #16A34A; text-decoration: none; padding: 4px 0; display: block; font-size: 0.9rem; }
.index-link:hover { text-decoration: underline; }

.filter-btn { padding: 0.35rem 0.75rem; border-radius: 9999px; font-size: 0.8rem; border: 1px solid #d1d5db; background: white; cursor: pointer; transition: all 0.2s; white-space: nowrap; }
.filter-btn:hover { border-color: #16A34A; color: #16A34A; }
.filter-btn.active { background: #16A34A; color: white; border-color: #16A34A; }

.filter-section { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.filter-label { font-weight: 600; font-size: 0.8rem; color: #555; margin-right: 4px; }

.song-card { transition: opacity 0.2s; }
.song-card.hidden-filter { display: none; }

#search-input { background: white; border: 1px solid #d1d5db; border-radius: 0.5rem; padding: 0.5rem 1rem 0.5rem 2.5rem; width: 100%; font-size: 0.95rem; }
#search-input:focus { outline: none; border-color: #16A34A; box-shadow: 0 0 0 2px rgba(22,163,74,0.2); }

/* Estilos del Banner */
.banner-container { overflow: hidden; position: relative; width: 100%; height: 400px; border-radius: 0.5rem; background: #000; }
.banner-slide { position: absolute; inset: 0; opacity: 0; transition: opacity 1s ease-in-out; display: flex; align-items: flex-end; cursor: pointer; }
.banner-slide.active { opacity: 1; z-index: 10; }
.banner-image { width: 100%; height: 100%; object-fit: contain; position: absolute; inset: 0; z-index: -1; background-color: transparent; }
.banner-image-blur { width: 100%; height: 100%; object-fit: cover; position: absolute; inset: 0; z-index: -2; filter: blur(15px); opacity: 0.6; transform: scale(1.1); }
.banner-overlay { background: linear-gradient(transparent, rgba(0, 0, 0, 0.9)); width: 100%; padding: 40px 20px 20px 20px; color: white; }
.banner-title { font-size: 1.8rem; color: white !important; text-shadow: 1px 1px 3px black; margin-bottom: 0; font-weight: bold; }
