/* Estilos Generales */
body {
    font-family: Arial, sans-serif;
    margin: 0;
    padding: 0;
    background-color: #1a1a1a; /* Fondo oscuro típico de un DJ */
    color: #ffffff; /* Texto claro */
}

/* --- Estilos del Navbar (Barra de Navegación) --- */
.navbar {
    background-color: #000000; /* Fondo negro */
    padding: 15px 30px;
    display: flex; /* Para alinear el logo y los enlaces */
    justify-content: space-between; /* Espacia el logo de los enlaces */
    align-items: center;
    position: sticky; /* Fija la barra en la parte superior */
    top: 0;
    z-index: 1000;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.5);
}
img {
    max-width: 100%; /* Las imágenes nunca serán más anchas que su contenedor */
    height: auto; /* Mantiene la proporción de la imagen */
}

/* Regla de seguridad para que el contenido no desborde */
* {
    box-sizing: border-box; /* Incluye padding y borde en el ancho/alto del elemento */
}
.logo {
    font-size: 1.8em;
    font-weight: bold;
    color: #ffffff; /* Color de acento llamativo (rojo/magenta) */
    text-transform: uppercase;
    letter-spacing: 2px;
}

.navbar nav ul {
    list-style: none; /* Quita los puntos de la lista */
    margin: 0;
    padding: 0;
    display: flex;
}
.portadas-grid {
    display: grid;
    /* 3 columnas por defecto (Escritorio) */
    grid-template-columns: repeat(3, 1fr); 
    gap: 30px; 
    margin: 40px auto; 
    max-width: 1200px; /* Asegura un buen ancho en escritorio */
    padding: 0 20px;
}

/* 1. Adaptación para Tablets (Opcional, 2 columnas) */
@media (max-width: 900px) {
    .portadas-grid {
        /* En pantallas medianas y tablets, se ve bien con 2 columnas */
        grid-template-columns: repeat(2, 1fr);
        gap: 20px;
    }
}

/* 2. Adaptación para Móviles (1 Columna Vertical) */
@media (max-width: 550px) {
    .portadas-grid {
        /* ¡LA CLAVE! En móviles pequeños, se muestra 1 sola portada por fila */
        grid-template-columns: 1fr;
        gap: 25px; /* Aumentamos el espacio vertical entre las portadas */
        padding: 0 40px; /* Agregamos más padding horizontal para que no se pegue al borde */
    }
}

.portadas-grid img {
    /* Mantiene las imágenes cuadradas y asegura que cubran el espacio */
    width: 100%; 
    aspect-ratio: 1 / 1; 
    object-fit: cover; 
    
    /* Estilo visual */
    border-radius: 10px; /* Bordes más suaves */
    border: 2px solid #8f8f8f; /* Borde sutil y definido */
    
    /* Efecto al pasar el mouse para interactividad */
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.portadas-grid img:hover {
    transform: scale(1.05); /* Ligeramente más grande */
    box-shadow: 0 0 20px #ffc600; /* Sombra de brillo Rosa */
    border-color: #ffc600;
    cursor: pointer;
}

.navbar nav ul li {
    margin-left: 25px; /* Espacio entre los elementos del menú */
}

.navbar nav ul li a {
    color: #ffffff;
    text-decoration: none; 
    font-weight: bold;
    font-size: 1.1em;
    padding: 5px 10px;
    
    /* 1. SUAVIZA TODOS LOS CAMBIOS */
    transition: color 0.3s ease, background-color 0.3s ease, transform 0.3s ease; 
    
    text-transform: uppercase;
    letter-spacing: 1px;
}

.navbar nav ul li a:hover,
.navbar nav ul li a:focus {
    color: #000000; /* Texto negro al pasar el ratón */
    background-color: #ffc600; /* Fondo del color de acento al pasar el ratón */
    border-radius: 9px;
}

/* --- Estilos de las Secciones de Contenido --- */

.hero {
    /* Estilo para la sección principal */
    background-color: #333333;
    text-align: center;
    padding: 100px 20px;
    min-height: 40vh; /* Altura mínima de la sección */
    border-bottom: 3px solid #ff0055;
}
/* --- Estilos para Redes Sociales en la Sección INICIO --- */

.social-links {
    margin-top: 35px; 
    display: flex; 
    gap: 20px; 
    
    /* NUEVOS CAMBIOS PARA CENTRAR HORIZONTALMENTE */
    justify-content: center; /* Centra los elementos (íconos) dentro del contenedor */
    
    /* Asegura que los links estén centrados en la página (si tienen un ancho limitado) */
    width: fit-content; /* El contenedor solo ocupa el espacio de los íconos */
    margin-left: auto;   /* Centra el contenedor completo */
    margin-right: auto;
}

.social-icon {
    display: flex; 
    justify-content: center;
    align-items: center;
    width: 55px; /* Ícono más grande */
    height: 55px; 
    border-radius: 50%; 
    background-color: rgba(255, 255, 255, 0.1); /* Fondo semitransparente */
    color: #ffffff;
    text-decoration: none;
    font-size: 1.5em; /* Tamaño del ícono */
    transition: background-color 0.3s ease, transform 0.2s ease, color 0.3s ease;
    border: 2px solid #555555;
}

/* Efecto al pasar el mouse (hover) */
.social-icon:hover {
    background-color: #ff0055; /* Fondo del color de acento */
    border-color: #ff0055;
    color: #000000;
    transform: scale(1.1); /* Ligeramente más grande */
    box-shadow: 0 0 10px rgba(255, 255, 255, 0.7);
}

/* Opcional: Colores específicos para cada marca al pasar el ratón */
.social-icon.youtube:hover { background-color: #ff0000; border-color: #ff0000; color: white;}
.social-icon.tiktok:hover { background-color: #69C9D0; border-color: #69C9D0; color: black;}
.social-icon.facebook:hover { background-color: #1877F2; border-color: #1877F2; color: rgb(255, 255, 255);}
.social-icon.instagram:hover { 
    /* Fondo degradado para Instagram */
    background: linear-gradient(45deg, #f09433 0%, #e6683c 25%, #dc2743 50%, #cc2366 75%, #bc1888 100%);
    border-color: #e6683c; 
    color: white;
}

.hero h1 {
    font-size: 3em;
    margin-bottom: 10px;
}

.hero p {
    font-size: 1.2em;
    color: #fff;
}

.content-section {
    padding: 80px 40px;
    text-align: center;
    /* Debe ser max-width, no width, para que pueda encogerse */
    max-width: 1200px; 
    margin: 0 auto;
}

.content-section h2 {
    color: #ffffff;
    margin-bottom: 20px;
}

button {
    background-color: #ff0055;
    color: white;
    border: none;
    padding: 10px 20px;
    font-size: 1em;
    cursor: pointer;
    border-radius: 5px;
    margin-top: 15px;
    transition: background-color 0.3s ease;
}

button:hover {
    background-color: #ffc600;
}
/* --- Estilos para la Página de Detalle (4 Cuadros de Semanas) --- */

.detalle-content {
    padding: 60px 20px;
    text-align: center;
    max-width: 900px;
    margin: 0 auto;
}

.detalle-content h1 {
    color: #ffffff;
    margin-bottom: 40px;
}

.semanas-grid {
    display: grid;
    /* 4 cuadros en una fila */
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
    margin-bottom: 40px;
}

.semana-box {
    display: block;
    padding: 20px 10px;
    text-decoration: none; /* Quita el subrayado del enlace */
    background-color: #252525;
    border: 2px solid #555555;
    border-radius: 10px;
    color: #ffffff;
    transition: all 0.3s ease;
    text-align: center;
}

.semana-box h3 {
    margin-top: 0;
    color: #ffffff;
    font-size: 1.2em;
}
/* ... (otros estilos de texto y hover) ... */

/* Responsividad para móviles (2x2) */
@media (max-width: 700px) {
    .semanas-grid {
        /* En móviles, cambia a 2 columnas */
        grid-template-columns: repeat(2, 1fr);
    }
}

.semana-box p {
    font-size: 0.9em;
    color: #ffffff;
}

/* Efecto al pasar el mouse */
.semana-box:hover {
    background-color: #0f93e0;
    border-color: #0f93e0;
    color: #000000;
    transform: translateY(-5px); /* Se levanta un poco */
    box-shadow: 0 5px 15px #0f93e0;
}

.semana-box:hover h3 {
    color: #000000;
}

.volver-link {
    margin-top: 30px;
    font-size: 1.1em;
}

.volver-link a {
    color: #ffffff;
    text-decoration: none;
    transition: color 0.3s ease;
}

.volver-link a:hover {
    color: #0f93e0;
}

/* Responsividad para móviles (2x2) */
@media (max-width: 700px) {
    .semanas-grid {
        /* En móviles, cambia a 2 columnas */
        grid-template-columns: repeat(2, 1fr);
    }
}
.whatsapp-float {
    /* Fija el elemento en la pantalla, independientemente del scroll */
    position: fixed; 
    
    /* Lo coloca en la esquina inferior derecha */
    width: 60px;
    height: 60px;
    bottom: 40px; 
    right: 40px;
    
    /* Estilo visual */
    background-color: #25D366; /* El verde oficial de WhatsApp */
    color: #FFF;
    border-radius: 50px; /* Lo hace circular */
    text-align: center;
    font-size: 30px; /* Tamaño del ícono */
    z-index: 10000; /* Asegura que esté por encima de todos los demás elementos */
    
    /* Centra el ícono dentro del círculo */
    display: flex;
    justify-content: center;
    align-items: center;

    /* Sombra y Transición para un efecto profesional */
    box-shadow: 2px 2px 3px rgba(15, 184, 52, 0.3);
    transition: all 0.3s ease;
}
/* --- Estilos para la Página de Contenido de la Semana --- */

.contenido-semana-section {
    padding: 60px 20px;
    text-align: center;
    max-width: 800px; /* Limita el ancho del contenido */
    margin: 0 auto;
}

.page-title {
    color: #ffffff;
    margin-bottom: 40px;
    font-size: 2.2em;
}

/* Estilo del Reproductor de Audio */
.audio-player-box {
    background-color: #333333;
    padding: 20px;
    border-radius: 10px;
    margin-bottom: 40px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.4);
}

.audio-player-box audio {
    width: 100%;
    /* Estilos básicos para que el reproductor se vea bien en el fondo oscuro */
    filter: invert(1) hue-rotate(180deg); /* Hace que el reproductor nativo sea visible en fondo oscuro */
}

/* Estilo de la Descripción */
.descripcion-box {
    text-align: left; /* Alinea el texto a la izquierda para mejor lectura */
    background-color: #252525;
    padding: 30px;
    border-radius: 10px;
    border-left: 5px solid #0f93e0; /* Una barra de acento lateral */
    margin-bottom: 30px;
}

.descripcion-box h2 {
    color: #ffffff;
    border-bottom: 1px solid #444444;
    padding-bottom: 10px;
    margin-top: 0;
}

.descripcion-list {
    list-style: none; /* Quita los puntos */
    padding: 0;
    margin-top: 20px;
}

.descripcion-list li {
    padding: 8px 0;
    border-bottom: 1px dashed #3a3a3a;
    font-size: 1.05em;
    color: #ffffff;
}

.descripcion-list li:last-child {
    border-bottom: none;
}

/* Estilo del botón de Descarga */
.download-button {
    background-color: #0f93e0;
    color: white;
    border: none;
    padding: 15px 40px;
    font-size: 1.2em;
    cursor: pointer;
    border-radius: 50px;
    font-weight: bold;
    transition: background-color 0.3s ease, transform 0.2s ease;
    text-transform: uppercase;
}
.free-mixes-grid {
    display: grid;
    /* Cuadrícula de 3 columnas */
    grid-template-columns: repeat(3, 1fr); 
    gap: 30px; 
    margin: 40px auto; 
    max-width: 1000px; /* Ancho para que las portadas se vean grandes */
    padding: 0 20px;
}

.mix-card {
    background-color: #252525;
    padding: 15px;
    border-radius: 10px;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.4);
    transition: transform 0.3s ease;
}

.mix-card:hover {
    transform: translateY(-5px); /* Efecto de "levantamiento" al pasar el mouse */
}

.mix-card img {
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    border-radius: 5px;
    margin-bottom: 10px;
    border: 1px solid #444;
}

.mix-title {
    color: #cccccc;
    font-weight: bold;
    margin: 10px 0;
}

/* Estilo del Botón DESCARGAR AHORA */
.download-button-free {
    display: block; /* Para que ocupe todo el ancho */
    background-color: #00b300; /* Un verde vibrante (diferente al de WhatsApp) */
    color: white;
    text-decoration: none;
    padding: 12px 0;
    margin-top: 15px;
    border-radius: 50px;
    font-weight: bold;
    font-size: 1.1em;
    transition: background-color 0.3s ease, transform 0.2s ease;
}

.download-button-free:hover {
    background-color: #008000;
    transform: scale(0.98);
}

/* Responsividad para móviles (2 columnas) */
.free-mixes-grid {
    display: grid;
    /* Cuadrícula de 3 columnas para escritorio */
    grid-template-columns: repeat(3, 1fr); 
    gap: 30px; 
    margin: 40px auto; 
    max-width: 1000px;
    padding: 0 20px;
}

/* ... (resto de estilos de .mix-card y botones) ... */


/* Responsividad para móviles (2 columnas) */
@media (max-width: 768px) {
    .free-mixes-grid {
        /* En pantallas medianas y tablets, cambia a 2 columnas */
        grid-template-columns: repeat(2, 1fr);
        gap: 20px;
    }
}

/* Responsividad para móviles pequeños (1 columna) */
@media (max-width: 500px) {
    .free-mixes-grid {
        /* ¡ESTA ES LA CLAVE! En móviles pequeños, solo 1 columna */
        grid-template-columns: 1fr;
        padding: 0 15px; /* Añade un poco de padding para que no toque los bordes */
    }
}


.whatsapp-float:hover {
    background-color: #16d620; /* Verde oscuro al pasar el ratón */
    transform: scale(1.1); /* Ligeramente más grande */
}

/* Ajuste para móviles (se ve mejor más pequeño y más pegado a la esquina) */
@media (max-width: 600px) {
    .whatsapp-float {
        width: 50px;
        height: 50px;
        bottom: 20px;
        right: 20px;
        font-size: 24px;
    }
}


/* Pie de Página (Footer) */
footer {
    background-color: #0d0d0d; /* Fondo negro muy oscuro */
    color: #cccccc;
    padding-top: 0;
    font-size: 1em;
}

.footer-top-bar {
    width: 100%;
    height: 5px; /* Altura de la barra de acento */
    background-color: #ff0055; /* Color de acento */
}

.footer-content {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    max-width: 1200px;
    margin: 0 auto;
    padding: 40px 20px;
    border-bottom: 1px solid #222222;
}

.footer-col {
    padding: 0 15px;
    flex-basis: 33%; /* Distribución equitativa para las 3 columnas */
}

.footer-col h3 {
    color: #ffffff;
    font-size: 1.2em;
    margin-bottom: 20px;
    border-bottom: 2px solid #333333;
    padding-bottom: 5px;
}

/* Estilo de los Enlaces en el Footer */
.footer-col ul {
    list-style: none;
    padding: 0;
}

.footer-col ul li a,
.footer-col a {
    color: #cccccc;
    text-decoration: none;
    transition: color 0.3s ease;
    line-height: 1.8;
}

.footer-col a:hover {
    color: #ff0055; /* Resalta al pasar el mouse */
}

.logo-col .logo {
    font-size: 1.5em; /* Más pequeño que el logo del navbar */
    margin-bottom: 10px;
}
.tagline {
    font-size: 0.9em;
    color: #fff;
}

.footer-copyright {
    text-align: center;
    padding: 20px 20px;
    background-color: #000000; /* La parte más inferior, completamente negra */
}

.footer-copyright p {
    margin: 0;
    font-size: 0.85em;
    color: #555555;
}

/* Responsividad para móviles (pilas de columnas) */
@media (max-width: 768px) {
    .footer-content {
        flex-direction: column; /* Apila las columnas verticalmente */
        text-align: center;
    }
    .footer-col {
        flex-basis: 100%;
        margin-bottom: 30px;
    }
    .footer-col ul {
        display: flex; /* Enlaces en fila para móviles */
        justify-content: center;
        gap: 15px;
    }
    @media (max-width: 768px) {
    /* Reduce el padding general en secciones para móviles */
    main section {
        padding: 40px 15px;
    }

    /* Reduce el tamaño del título principal en móviles */
    .hero h1 {
        font-size: 2.5em; 
    }

    /* Reduce el tamaño de los títulos de contenido */
    .content-section h2 {
        font-size: 2em;
    }
}

/* Ajuste específico para el Navbar en móviles */
@media (max-width: 600px) {
    .navbar {
        flex-direction: column; /* Apila el logo y los enlaces */
        padding: 10px 15px;
    }

    .navbar nav ul {
        justify-content: center;
        margin-top: 10px;
    }

    .navbar nav ul li {
        margin: 0 10px;
    }
}
@media (max-width: 600px) {
    .navbar {
        /* Pasa de ser una fila horizontal a una columna vertical */
        flex-direction: column; 
        
        /* Reduce el padding para ahorrar espacio en móviles */
        padding: 15px 10px;
    }
    
    .navbar .logo {
        margin-bottom: 15px; /* Espacio debajo del logo */
    }

    .navbar nav {
        width: 100%; /* El contenedor de navegación ocupa todo el ancho */
    }

    .navbar nav ul {
        /* Centra horizontalmente toda la lista de enlaces */
        justify-content: center; 
        
        /* Asegura que los enlaces no estén muy apretados */
        gap: 15px; 
    }

    .navbar nav ul li a {
        font-size: 1em; /* Reduce ligeramente el tamaño del texto del enlace */
        padding: 5px 0;
    }
}
}