/* -- Variables de Color: Usar variables hace que sea fácil cambiar los colores de todo el sitio en un solo lugar -- */
:root {
    --background-color: #FBF9F6; /* Un blanco cálido, color crema */
    --text-color: #4A4A4A;      /* Un gris oscuro suave para el texto */
    --accent-color: #B89E84;     /* El dorado/bronce sutil de tu moodboard */
    --accent-hover-color: #A98F74; /* Un tono ligeramente más oscuro para interacciones */
    --font-heading: 'Playfair Display', serif; /* Fuente elegante para títulos */
    --font-body: 'Lato', sans-serif;           /* Fuente limpia para el cuerpo de texto */
}

/* -- Estilos Generales -- */
body {
    font-family: var(--font-body);
    margin: 0;
    padding: 0;
    background-color: var(--background-color);
    color: var(--text-color);
}

/* -- Encabezado y Navegación -- */
/* Borra los estilos de header y header h1 que tenías y reemplázalos con todo esto */

/* ======== ESTILOS DEL ENCABEZADO PRINCIPAL ======== */

.main-header {
    /* Hacemos que el header se quede fijo en la parte superior */
    position: sticky;
    top: 0;
    z-index: 1000; /* Asegura que esté por encima de otro contenido */
    
    /* Le damos un fondo para que el contenido no se transparente al hacer scroll */
    background-color: rgba(251, 249, 246, 0.95); /* El color de fondo con ligera transparencia */
    backdrop-filter: blur(10px); /* Efecto "vidrio esmerilado" muy moderno */
    
    /* Usamos Flexbox para alinear los 3 elementos (logo, nav, iconos) */
    display: flex;
    justify-content: space-between; /* Espacio equitativo entre elementos */
    align-items: center;
    
    padding: 15px 40px; /* Espaciado interno (arriba/abajo, izquierda/derecha) */
    border-bottom: 1px solid #EAE0D5;
}

/* --- Logo --- */
.logo a {
    font-family: var(--font-heading);
    font-size: 1.5em;
    font-weight: 500;
    letter-spacing: 1.5px;
    color: var(--text-color);
    text-decoration: none;
}

/* --- Menú de Navegación --- */
.main-nav ul {
    margin: 0;
    padding: 0;
    list-style: none; /* Quitamos los puntos de la lista */
    display: flex; /* Ponemos los elementos en horizontal */
    gap: 35px; /* Espacio entre cada enlace */
}

.main-nav a {
    font-family: var(--font-body);
    text-decoration: none;
    color: var(--text-color);
    font-size: 0.9em;
    text-transform: uppercase;
    letter-spacing: 1px;
    padding: 5px 0;
    position: relative; /* Necesario para el efecto hover */
    transition: color 0.3s;
}

/* Efecto hover con una línea sutil debajo */
.main-nav a::after {
    content: '';
    position: absolute;
    width: 0;
    height: 1px;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    background-color: var(--accent-color);
    transition: width 0.4s ease;
}

.main-nav a:hover {
    color: var(--accent-color);
}

.main-nav a:hover::after {
    width: 100%;
}


/* --- Iconos de la Derecha --- */
.header-icons {
    display: flex;
    gap: 20px; /* Espacio entre iconos */
}

.header-icons a {
    color: var(--text-color);
    text-decoration: none;
    transition: color 0.3s, transform 0.3s;
}

.header-icons a:hover {
    color: var(--accent-color);
    transform: scale(1.1);
}

.header-icons .material-symbols-outlined {
    font-size: 26px; /* Ajustamos el tamaño de los iconos */
}

/* -- Página de Producto -- */
.product-page {
    display: flex;
    max-width: 1100px;
    margin: 60px auto; /* Más espacio vertical para que respire */
    padding: 0 20px;
    gap: 60px; /* Más espacio entre imagen y texto */
    align-items: center; /* Centra verticalmente los elementos */
}

.product-image img {
    max-width: 100%;
    border-radius: 4px; /* Un borde muy sutil, casi recto */
}

/* -- Detalles del Producto -- */
.product-details h2 {
    font-family: var(--font-heading);
    font-size: 3em;
    margin-top: 0;
    margin-bottom: 10px;
    color: var(--text-color);
}

.product-details .price {
    font-size: 1.5em;
    color: var(--accent-color);
    margin-bottom: 30px;
}

.product-details .description {
    font-size: 1.1em;
    line-height: 1.7; /* Mayor interlineado para facilitar la lectura */
}

/* -- Botón 'Añadir a mi ritual' -- */
.add-to-cart-btn {
    background-color: var(--accent-color);
    color: white;
    border: none;
    padding: 18px 30px;
    font-family: var(--font-body);
    font-weight: 700;
    text-transform: uppercase; /* MAYÚSCULAS para un look más audaz */
    letter-spacing: 1px;
    font-size: 0.9em;
    cursor: pointer;
    border-radius: 2px;
    margin-top: 30px;
    width: 100%;
    transition: background-color 0.3s, transform 0.2s;
}

.add-to-cart-btn:hover {
    background-color: var(--accent-hover-color);
    transform: scale(1.02); /* Un ligero crecimiento al pasar el mouse */
}

/* -- Pie de Página -- */
footer {
    text-align: center;
    padding: 40px 20px;
    margin-top: 60px;
    border-top: 1px solid #EAE0D5;
    font-size: 0.9em;
    color: #999;
}

/* Pega esto al final de tu archivo styles.css */

/* ======== ESTILOS DE LA SECCIÓN HERO ======== */

.hero {
    /* Usamos la imagen que elegiste como fondo */
    background-image: url('https://producslumea.blob.core.windows.net/imagenes-productos/page/juego-luces-naturaleza-B.png');
    
    /* Aseguramos que la imagen cubra toda la sección */
    background-size: cover;
    background-position: center;

    /* Le damos una altura que ocupe gran parte de la pantalla */
    height: 85vh; /* vh = viewport height. 85% de la altura de la pantalla */
    
    /* Usamos Flexbox para centrar el contenido vertical y horizontalmente */
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    
    /* Un color de fondo por si la imagen no carga */
    background-color: var(--background-color); 
}

.hero-content {
    /* Un fondo semi-transparente opcional para mejorar la legibilidad del texto */
    background-color: rgba(251, 249, 246, 0.5);
    padding: 40px 60px;
    border-radius: 4px;
    max-width: 600px;
}

/* Estilo para el título principal del Hero */
.hero-content h2 {
    font-family: var(--font-heading);
    font-size: 3.5em; /* Un tamaño grande e impactante */
    font-weight: 700;
    color: var(--text-color);
    margin: 0;
    line-height: 1.2;
}

/* Estilo para el subtítulo */
.hero-content p {
    font-family: var(--font-body);
    font-size: 1.4em;
    color: var(--text-color);
    margin: 15px 0 30px 0;
}

/* Estilo para el botón de llamada a la acción */
.cta-button {
    background-color: var(--accent-color);
    color: white;
    padding: 18px 35px;
    text-decoration: none; /* Quitamos el subrayado de los enlaces */
    font-family: var(--font-body);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    font-size: 0.9em;
    border-radius: 2px;
    transition: background-color 0.3s, transform 0.2s;
}

.cta-button:hover {
    background-color: var(--accent-hover-color);
    transform: translateY(-3px); /* Efecto sutil de elevación */
}

/* Pega esto al final de tu archivo styles.css */

/* ======== ESTILOS DE LA COLECCIÓN DESTACADA ======== */

.featured-collection {
    padding: 80px 40px; /* Amplio espacio vertical y horizontal */
    background-color: var(--background-color);
    text-align: center;
}

.section-title {
    font-family: var(--font-heading);
    font-size: 2.8em;
    font-weight: 500;
    margin-bottom: 50px;
    color: var(--text-color);
}

/* --- La Cuadrícula de Productos (Grid) --- */
.product-grid {
    display: grid;
    /* Creamos 3 columnas de igual tamaño */
    grid-template-columns: repeat(3, 1fr); 
    /* Espacio entre las tarjetas */
    gap: 40px; 
    max-width: 1200px;
    margin: 0 auto; /* Centramos la cuadrícula */
}

/* --- La Tarjeta de Producto Individual --- */
.product-card {
    text-align: left;
}

.product-card a {
    text-decoration: none;
    color: var(--text-color);
}

.product-image-container {
    overflow: hidden; /* Oculta el exceso de la imagen al hacer zoom */
    border-radius: 4px; /* Opcional: bordes redondeados */
}

.product-card img {
    width: 100%;
    height: auto;
    display: block; /* Elimina espacio extra debajo de la imagen */
    transition: transform 0.5s ease; /* La transición para el efecto de zoom */
}

/* El efecto de zoom al pasar el mouse */
.product-card:hover img {
    transform: scale(1.05);
}

.product-card h3 {
    font-family: var(--font-heading);
    font-size: 1.4em;
    font-weight: 500;
    margin: 20px 0 10px 0;
    transition: color 0.3s;
}

.product-card .price {
    font-family: var(--font-body);
    font-size: 1.1em;
    color: var(--accent-color);
}

.product-card:hover h3 {
    color: var(--accent-color);
}


/* ======== ESTILOS PARA PÁGINA DE COLECCIÓN ======== */
.collection-page {
    padding: 60px 40px; /* Espaciado para la sección principal */
    max-width: 1200px;
    margin: 0 auto;
}

.page-title {
    font-family: var(--font-heading);
    font-size: 3em;
    text-align: center;
    margin-bottom: 50px;
    font-weight: 500;
}
/* ======== ANIMACIÓN DE APARICIÓN AL HACER SCROLL ======== */

/* 1. Definimos el estado inicial de las tarjetas (ocultas) */
.collection-page .product-card {
  opacity: 0;
  transform: translateY(30px); /* Empiezan un poco más abajo */
  transition: opacity 1.4s ease-out, transform 1.4s ease-out; /* Preparamos una transición suave */
}

/* 2. Definimos el estado final (visible) que activará JavaScript */
.collection-page .product-card.visible {
  opacity: 1;
  transform: translateY(0); /* Vuelven a su posición original */
}


/* ======== ESTILOS PARA PÁGINA DE PRODUCTO INDIVIDUAL ======== */

.product-page-layout {
    display: grid;
    grid-template-columns: 40% 60%; /* Columna izquierda 40%, derecha 60% */
    gap: 50px;
    max-width: 1400px;
    margin: 40px auto;
    padding: 0 40px;
}

/* --- Columna de Información (Izquierda) --- */
.product-info-column {
    position: sticky; /* ¡La magia! */
    top: 120px; /* Espacio para el header fijo */
    height: fit-content; /* Se ajusta a la altura de su contenido */
}

.product-info-column h1 {
    font-family: var(--font-heading);
    font-size: 3.2em;
    margin-top: 0;
}

.product-options {
    margin: 30px 0;
}

/* --- Acordeones de Detalles --- */
.product-details-accordion {
    margin-top: 40px;
    border-top: 1px solid #EAE0D5;
}

.product-details-accordion details {
    padding: 20px 0;
    border-bottom: 1px solid #EAE0D5;
}

.product-details-accordion summary {
    cursor: pointer;
    font-weight: bold;
    list-style: none; /* Quita el marcador por defecto */
    display: flex;
    justify-content: space-between;
}

.product-details-accordion summary::after {
    content: '+'; /* Usamos un '+' como ícono */
    font-size: 1.5em;
    transition: transform 0.3s ease;
}

.product-details-accordion details[open] summary::after {
    transform: rotate(45deg); /* Gira el '+' para que parezca una 'x' */
}


/* --- Columna de Galería (Derecha) --- */
.product-gallery-column {
    display: flex;
    flex-direction: column;
    gap: 30px;
}

.gallery-image {
    width: 100%;
    opacity: 0; /* Estado inicial para la animación de scroll */
    transform: translateY(30px);
    transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}

.gallery-image.visible {
    opacity: 1;
    transform: translateY(0);
}



/* ======== ESTILOS PARA EL ESTADO DE CARGA ======== */

/* Contenedor principal del producto, oculto por defecto */
.product-page-layout {
  visibility: hidden; /* Lo hacemos invisible en lugar de display:none para evitar saltos de layout */
  opacity: 0;
  transition: opacity 0.5s ease-in-out;
}

/* Clase que añadiremos con JS para mostrar el contenido */
.product-page-layout.loaded {
  visibility: visible;
  opacity: 1;
}

/* Estilos para el indicador de carga */
.loader-container {
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 50vh; /* Ocupa un buen espacio vertical */
  flex-direction: column;
  gap: 15px;
}

.loader {
  border: 4px solid #f3f3f3; /* Gris claro */
  border-top: 4px solid var(--accent-color); /* Color de acento */
  border-radius: 50%;
  width: 50px;
  height: 50px;
  animation: spin 1s linear infinite;
}

/* ======== ESTILOS REDISEÑO INDEX ======== */

/* --- Sección Comprar por Categoría --- */
.shop-by-category {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    padding: 80px 40px;
    max-width: 1400px;
    margin: 0 auto;
}
.category-card {
    position: relative;
    overflow: hidden;
    border-radius: 4px;
}
.category-card img {
    width: 100%;
    display: block;
    transition: transform 0.5s ease;
}
.category-card:hover img {
    transform: scale(1.05);
}
.category-title {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    padding: 30px;
    box-sizing: border-box;
    text-align: center;
    color: white;
    font-family: var(--font-heading);
    font-size: 2em;
    background: linear-gradient(to top, rgba(0,0,0,0.7), transparent);
    transition: background 0.3s ease;
}

/* --- Sección Manifiesto --- */
.manifesto-section {
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: center;
    background-color: #f7f2ed; /* Un color de fondo suave */
    max-width: 100%;
    margin: 40px 0;
}
.manifesto-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.manifesto-text {
    padding: 5vw; /* Espaciado adaptable */
}
.manifesto-text h3 {
    text-transform: uppercase;
    letter-spacing: 2px;
    color: var(--accent-color);
}
.manifesto-text h2 {
    font-family: var(--font-heading);
    font-size: 3em;
    margin: 10px 0 20px 0;
}
.cta-button-secondary {
    display: inline-block;
    margin-top: 20px;
    font-weight: bold;
    color: var(--text-color);
    text-decoration: none;
    border-bottom: 2px solid var(--accent-color);
    padding-bottom: 5px;
}

/* --- Ajustes Responsivos para el Rediseño --- */
@media (max-width: 768px) {
    .shop-by-category {
        grid-template-columns: 1fr;
    }
    .manifesto-section {
        grid-template-columns: 1fr;
    }
}

/* ======== ESTILOS PÁGINA DE MANIFIESTO INMERSIVA ======== */
.manifesto-body {
    background-color: var(--background-color);
    color: var(--text-color);
    overflow-x: hidden;
}
.manifesto-section {
    position: relative;
    width: 100%;
    padding: 5vw;
    box-sizing: border-box;
}
.manifesto-section.fullscreen {
    height: 100vh;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 0;
}
.background-video {
    opacity: 0;
    transition: opacity 1s ease; /* Transición suave para aparecer */
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 1;
}
.manifesto-main-title {
    font-family: var(--font-heading);
    font-size: 5vw;
    color: white;
    text-shadow: 0 2px 10px rgba(0,0,0,0.5);
    position: relative; /* Añade esto */
    z-index: 2;   
}

.manifesto-section.text-focus {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
}
.statement-line, .closing-line {
    font-family: var(--font-heading);
    font-size: 3.5vw;
    margin: 10px 0;
}
.scroll-story {
    max-width: 1200px;
    margin: 0 auto;
}
.story-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 5vw;
    align-items: center;
    min-height: 80vh;
}
.story-row.text-only {
    display: flex;
    justify-content: center;
    text-align: center;
    font-size: 1.5em; /* Aumenta el tamaño para el texto solo */
}
.story-text.left { text-align: left; }
.story-text.right { text-align: right; grid-column: 2; grid-row: 1; }
.story-image.left { grid-column: 1; grid-row: 1; }
.story-text h2 { font-family: var(--font-heading); font-size: 3vw; line-height: 1.4; }
.story-image img { width: 100%; border-radius: 4px; }

.manifesto-cta {
    font-family: var(--font-body);
    font-size: 1.2em;
    font-weight: bold;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    color: var(--text-color);
    text-decoration: none;
    padding: 15px 35px;
    border: 2px solid var(--accent-color);
    border-radius: 50px;
    transition: all 0.3s ease;
}
.manifesto-cta:hover {
    background-color: var(--accent-color);
    color: white;
}

/* Animación de rotación */
@keyframes spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

/* --- Ajustes responsivos para la página de producto --- */
@media (max-width: 768px) {
    .product-page-layout {
        grid-template-columns: 1fr; /* Apilamos las columnas */
    }
    .product-info-column {
        position: static; /* Quitamos el efecto 'sticky' en móvil */
        order: 2; /* Movemos la información debajo de la galería */
    }
    .product-gallery-column {
        order: 1;
    }
    .product-info-column h1 {
        font-size: 2.5em;
    }
}

/* ====================================================== */
/* ======== REGLAS PARA DISEÑO RESPONSIVO (MÓVIL) ======== */
/* ====================================================== */

@media (max-width: 768px) {

    /* -- 1. Ajustes para el Encabezado -- */
    .main-header {
        padding: 15px 20px; /* Reducimos el espaciado lateral */
    }

    .main-nav {
        display: none; /* Ocultamos el menú de navegación principal */
    }

    .header-icons a:not(:last-child) {
        display: none; /* Ocultamos todos los íconos excepto el último (el carrito) */
    }

    .mobile-menu-icon {
        display: block; /* Mostramos el ícono de hamburguesa */
        background: none;
        border: none;
        color: var(--text-color);
        cursor: pointer;
    }
    
    .mobile-menu-icon .material-symbols-outlined {
        font-size: 30px; /* Hacemos el ícono un poco más grande */
    }

    


    /* -- 2. Ajustes para la Sección Hero -- */
    .hero {
        height: 70vh; /* Hacemos el hero un poco más corto en móviles */
    }
    
    .hero-content {
        padding: 20px;
    }

    .hero-content h2 {
        font-size: 2.5em; /* Reducimos drásticamente el tamaño del título */
    }

    .hero-content p {
        font-size: 1.2em; /* Reducimos el subtítulo */
    }


    /* -- 3. Ajustes para la Colección Destacada -- */
    .featured-collection {
        padding: 60px 20px;
    }

    .section-title {
        font-size: 2.2em;
    }

    .product-grid {
        /* ¡La magia! Cambiamos la cuadrícula a una sola columna */
        grid-template-columns: 1fr; 
        gap: 50px; /* Aumentamos el espacio vertical entre productos */
    }

    /* Ocultamos este botón porque el de la sección Hero ya es visible y suficiente */
    .section-cta {
        display: none;
    }

    /* Ocultamos el logo en el pie de página para un look más limpio */
    footer .logo {
        display: none;
    }
}


/* Inicialmente ocultamos el ícono de menú en la versión de escritorio */
.mobile-menu-icon {
    display: none;
}

/* --- Estilos del contador del carrito en el header --- */
.cart-icon-link {
    position: relative; /* Necesario para posicionar el contador */
}

#cart-item-count {
    position: absolute;
    top: -5px;
    right: -10px;
    background-color: var(--accent-color);
    color: white;
    border-radius: 50%;
    width: 20px;
    height: 20px;
    font-size: 12px;
    font-weight: bold;
    display: none; /* Oculto por defecto */
    justify-content: center;
    align-items: center;
}