/*catalogo.CSS
Estilos exclusivos de las páginas de catálogo:
perfumes.html, cuidados.html y maquillaje.html
Este archivo solo se enlaza en esas 3 páginas */

/* TÍTULO DE SECCIÓN*/
.titulo-seccion {
    text-align: center;
    padding: 20px;
    color: var(--color-texto);
    font-size: 1.5em;
    font-weight: 700;
}

/* FILTROS DE PRODUCTOS
Los botones para filtrar por marca y género*/
.filtros {
    display: flex;
    gap: 10px;
    padding: 15px 20px;
    flex-wrap: wrap;    /* en móvil se van a la siguiente línea */
    align-items: center;
}

.grupo-filtro {
    display: flex;
    gap: 8px;
    align-items: center;
    flex-wrap: wrap;
}

.grupo-filtro span {
    color: var(--color-texto-suave);
    font-weight: 600;
    margin-right: 4px;
}

.btn-filtro {
    border: 2px solid var(--color-borde);
    background: var(--color-blanco);
    color: var(--color-texto-suave);
    padding: 10px 20px;
    border-radius: 12px;
    cursor: pointer;
    font-weight: 600;
    font-size: 14px;
    transition: var(--transicion);
    font-family: 'Nunito', sans-serif;
}

.btn-filtro:hover {
    border-color: var(--color-primario);
    color: var(--color-primario);
}

.grupo-genero {
    display: flex;
    gap: 8px;
    align-items: center;
    flex-wrap: wrap;
}

.grupo-genero span {
    color: var(--color-texto-suave);
    font-weight: 600;
    margin-right: 4px;
}

.btn-genero {
    border: 2px solid var(--color-borde);
    background: var(--color-blanco);
    color: var(--color-texto-suave);
    padding: 10px 20px;
    border-radius: 12px;
    cursor: pointer;
    font-weight: 600;
    font-size: 14px;
    transition: var(--transicion);
    font-family: 'Nunito', sans-serif;
}

/* outline visible al navegar con teclado — accesibilidad */
.btn-genero:focus {
    outline: 3px solid rgba(244, 121, 32, 0.4);
    outline-offset: 2px;
}

.btn-genero:hover {
    border-color: var(--color-primario);
    color: var(--color-primario);
}

.btn-genero.active {
    background: var(--color-primario);
    color: var(--color-blanco);
    border-color: var(--color-primario);
    box-shadow: 0 4px 12px rgba(244, 121, 32, 0.4);
}

/* outline visible al navegar con teclado — accesibilidad */
.btn-filtro:focus {
    outline: 3px solid rgba(244, 121, 32, 0.4);
    outline-offset: 2px;
}

/* botón actualmente seleccionado */
.btn-filtro.active {
    background: var(--color-primario);
    color: var(--color-blanco);
    border-color: var(--color-primario);
    box-shadow: 0 4px 12px rgba(244, 121, 32, 0.4);
}

/* subcategorías ocultas hasta que se seleccione una marca */
.filtro-subcategoria {
    display: none;
}


/* GRID DE PRODUCTOS
Empieza en 2 columnas en móvil y
crece con los @media queries de abajo */
.seccion-productos {
    padding: 20px;
    max-width: 1300px;
    margin: 0 auto; /* centrado en pantalla */
}

.producto-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
    padding: 20px 0;
}

/*TARJETA DE PRODUCTO*/
.producto-card {
    background-color: var(--color-blanco);
    border: 1px solid var(--color-borde);
    border-radius: var(--radio-carta);
    padding: 15px;
    text-align: center;
    transition: transform 0.2s, box-shadow 0.2s;
    display: flex;
    flex-direction: column; /* apila los elementos verticalmente */
    gap: 8px;               /* espacio entre cada elemento de la tarjeta */
}

/* efecto al pasar el mouse: sube y agrega sombra naranja */
.producto-card:hover {
    transform: translateY(-6px);
    box-shadow: var(--sombra-carta);
    border-color: var(--color-primario);
}

.producto-card img {
    width: 100%;
    height: 180px;
    object-fit: contain;    /* la imagen no se deforma */
    transition: transform 0.2s;
    margin: 0 auto;
}

/* la imagen se agranda levemente al hacer hover en la carta */
.producto-card:hover img {
    transform: scale(1.05);
}

.producto-card h3 {
    font-size: 0.95em;
    color: var(--color-texto);
    margin: 0;
    font-weight: 700;
}

/* PRECIO*/
.precio {
    color: var(--color-primario);
    font-weight: bold;
    font-size: 1.2em;
    margin: 0;
}

/* SELECTOR DE CANTIDAD (+/-) */
.selector-cantidad {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    margin: 4px 0;
}

/* botones circulares + y - */
.btn-menos, .btn-mas {
    background: var(--color-primario);
    color: var(--color-blanco);
    border: none;
    border-radius: 50%;  /* círculo perfecto */
    width: 28px;
    height: 28px;
    cursor: pointer;
    font-weight: bold;
    font-size: 16px;
    transition: var(--transicion);
    display: flex;
    align-items: center;
    justify-content: center;
}

.btn-menos:hover, .btn-mas:hover {
    background: var(--color-primario-oscuro);
}

/* outline visible al navegar con teclado — accesibilidad */
.btn-menos:focus, .btn-mas:focus {
    outline: 3px solid rgba(244, 121, 32, 0.4);
}

.cantidad {
    font-weight: bold;
    font-size: 16px;
    min-width: 20px;
    text-align: center;
}

/* BOTONES DE PRODUCTO */
/* botón Ver más — fondo blanco con borde naranja */
.btn-detalles {
    background-color: var(--color-blanco);
    color: var(--color-primario);
    border: 2px solid var(--color-primario);
    padding: 8px 16px;
    border-radius: var(--radio-boton);
    cursor: pointer;
    font-weight: bold;
    width: 100%;
    font-family: 'Nunito', sans-serif;
    transition: var(--transicion);
}

.btn-detalles:hover {
    background-color: #fff5ee;
}

/* outline visible al navegar con teclado — accesibilidad */
.btn-detalles:focus {
    outline: 3px solid rgba(244, 121, 32, 0.4);
}

/* botón Agregar — fondo naranja sólido */
.btn-agregar {
    background-color: var(--color-primario);
    color: var(--color-blanco);
    border: none;
    padding: 8px 16px;
    border-radius: var(--radio-boton);
    cursor: pointer;
    font-weight: bold;
    width: 100%;
    font-family: 'Nunito', sans-serif;
    transition: var(--transicion);
}

.btn-agregar:hover {
    background-color: var(--color-primario-oscuro);
}

/* outline visible al navegar con teclado — accesibilidad */
.btn-agregar:focus {
    outline: 3px solid rgba(244, 121, 32, 0.4);
}

/* RESPONSIVIDAD — GRID DE PRODUCTOS */
/* tablet pequeña */
@media (min-width: 600px) and (max-width: 768px) {
    .producto-grid { grid-template-columns: repeat(2, 1fr); }
    .filtros {
        padding: 10px 15px;
        gap: 8px;
    }
    .btn-filtro {
        padding: 8px 14px;
        font-size: 13px;
    }
    .titulo-seccion {
        font-size: 1.3em;
    }
}

/* tablet */
@media (min-width: 769px) and (max-width: 1023px) {
    .producto-grid { grid-template-columns: repeat(3, 1fr); }
    .filtros { padding: 12px 18px; }
    .producto-card img { height: 160px; }
    .titulo-seccion { font-size: 1.4em; }
}

/* escritorio */
@media (min-width: 1024px) {
    .producto-grid { grid-template-columns: repeat(4, 1fr); }
    .seccion-productos { padding: 30px 40px; }
    .producto-card img { height: 200px; }
    .precio { font-size: 1.3em; }
}

/* pantalla grande */
@media (min-width: 1200px) {
    .producto-grid { grid-template-columns: repeat(4, 1fr); }
    .seccion-productos { padding: 30px 40px; }
    .producto-card img { height: 200px; }
    .precio { font-size: 1.3em; }
}

/* COLORES DE BANNER POR PÁGINA
   Cada página de catálogo tiene su propio color */

/* perfumes.html — azul oscuro */
.banner-perfumes {
    background: linear-gradient(135deg, #1a1a2e, #16213e, #0f3460);
}

/* cuidados.html — verde */
.banner-cuidados {
    background: linear-gradient(135deg, #2d6a4f, #40916c, #74c69d);
}

/* maquillaje.html — (el color que tenga) */
.banner-maquillaje {
    background: linear-gradient(135deg, #4a0030, #800050, #c0006a);
}