@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;700&display=swap');

:root {
    --color-principal: #5d806b; 
    --color-secundario: #9ea71f;
    --color-terciario: rgb(75, 82, 63);
    --color-fondo: #FFFFFF; /* Blanco */
    --color-fondo2: #f3f3f3; /* Blanco */
    --color-texto: #333333; /* Gris Oscuro */
    
    --font-size-small: 0.8rem; /* Tamaño de fuente pequeño */
    --font-size-medium: 1rem; /* Tamaño de fuente medio */
    --font-size-large: 1.8rem; /* Tamaño de fuente grande */
    --font-size-super-large: 2.8rem; /* Tamaño de fuente grande */
}

body {
    background-color: var(--color-fondo);
    color: var(--color-texto);
    font-family: 'Montserrat', sans-serif;
    font-size: var(--font-size-medium);
}

header {
    background-color: var(--color-principal); /* Color de fondo del header */
    padding: 20px; /* Espaciado interno */
    text-align: center; /* Centrar el texto */
    color: var(--color-fondo); /* Color del texto */
    display: flex; /* Usar flexbox para alinear elementos */
    justify-content: space-between; /* Espacio entre logo y menú */
    align-items: center; /* Alinear verticalmente */
    flex-wrap: wrap; /* Permitir que los elementos se envuelvan */
}

.logo {
    display: flex; /* Usar flexbox para el logo */
    align-items: center; /* Alinear logo y texto */
}

.logo img {
    height: 60px; /* Ajustar altura del logo */
    margin-right: 10px; /* Espacio entre logo y texto */
    border-radius: 50%; /* Asegurar que la imagen también sea redonda */
    background-color: white; /* Fondo blanco para el círculo */
    padding: 10px; /* Espacio interno para el círculo */
}

nav {
    flex: 1; /* Permitir que el menú ocupe espacio */
    text-align: right; /* Alinear el menú a la derecha */
}

nav ul {
    list-style-type: none; /* Eliminar estilo de lista */
    margin: 0; /* Eliminar margen */
    padding: 0; /* Eliminar padding */
    display: flex; /* Usar flexbox para el menú */
    flex-wrap: wrap; /* Permitir que los elementos del menú se envuelvan */
    justify-content: flex-end; /* Alinear el menú a la derecha */
    gap: 15px;
    align-items: flex-end;
}

nav ul li {
    display: inline; /* Mostrar elementos en línea */
    margin: 0 15px; /* Espacio entre elementos del menú */
}

a {
    color: var(--color-fondo); /* Color de los enlaces */
    text-decoration: none; /* Sin subrayado */
}

input[type="text"] {
    width: 100%; /* Hacer que el buscador ocupe el 100% del ancho */
    max-width: 250px; /* Limitar el ancho máximo */
    padding: 10px; /* Añadir padding para mayor comodidad */
    border: none; /* Sin bordes */
    border-radius: 5px; /* Bordes redondeados */
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1); /* Sombra sutil */
}


footer {
    text-align: center; /* Centrar el texto */
    padding: 10px; /* Espaciado interno */
    background-color: var(--color-principal); /* Color de fondo del footer */
    color: var(--color-fondo); /* Color del texto */
}

h1 {
    font-size: var(--font-size-super-large);
    padding-left: 20px;
}

h2 {
    font-size: var(--font-size-large);
    padding-top: 20px;
    text-align: center;
}

p {
    font-size: var(--font-size-small);
}

#banner {
    background-color: var(--color-terciario);
    color: var(--color-fondo);
    padding: 1px 20px 40px 20px;
    text-align: center;
    margin-top: 20px;
}

.banner-content {
    margin-top: 0px;
}

.banner-content h2 {
    font-size: var(--font-size-large);
}

.banner-content p {
    font-size: var(--font-size-medium);
}

.banner-content button {
    background-color: var(--color-secundario);
    color: var(--color-fondo);
    border: none;
    padding: 10px 20px;
    font-size: var(--font-size-medium);
    cursor: pointer;
    border-radius: 5px;
}

#ofertas {
    padding: 20px;
}

.ofertas-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
    gap: 20px;
}

.oferta-item {
    border: 1px solid #ccc;
    border-radius: 5px;
    padding: 10px;
    text-align: center;
}

.oferta-item img {
    max-width: 100%;
    border-radius: 5px;
}

#categorias {
    padding: 20px;
}

.categorias-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 20px;
}

.categoria-item {
    border: 1px solid #ccc;
    border-radius: 5px;
    padding: 10px;
    text-align: center;
}

.categoria-item img {
    max-width: 100%;
    border-radius: 5px;
}

#productos-destacados, #ofertas-y-promociones {
    padding: 20px;
}

.productos-grid, .ofertas-promociones-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 20px;
}

.producto-item, .oferta-promocion-item {
    border: 1px solid #ccc;
    border-radius: 5px;
    padding: 10px;
    text-align: center;
}

.producto-item img, .oferta-promocion-item img {
    max-width: 100%;
    border-radius: 5px;
}

.container {
    width: 85%;
    margin: 20px auto; /* Centra el contenedor y agrega margen superior e inferior */
    background-color: #e7e7e7; /* Color de fondo gris claro */
    border-radius: 8px; /* Bordes redondeados */
    padding: 20px; /* Espaciado interno */
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); /* Sombra para efecto de tarjeta */
}

.ofertas-grid, .categorias-grid, .productos-grid, .ofertas-promociones-grid {
    display: flex; /* Utiliza flexbox para alinear los elementos */
    justify-content: center; /* Centra los elementos horizontalmente */
    flex-wrap: wrap; /* Permite que los elementos se envuelvan en varias líneas si es necesario */
}

.oferta-item, .categoria-item, .producto-item, .oferta-promocion-item {
    width: 250px; /* Ancho fijo para las tarjetas */
    height: 380px; /* Alto fijo para las tarjetas */
    margin: 10px; /* Espaciado entre tarjetas */
    padding: 15px; /* Espaciado interno */
    background-color: #fff; /* Color de fondo blanco para las tarjetas */
    border-radius: 8px; /* Bordes redondeados */
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); /* Sombra para efecto de tarjeta */
    display: flex; /* Usar flexbox para alinear el contenido */
    flex-direction: column; /* Alinear el contenido en columna */
    justify-content: space-between; /* Espacio entre los elementos */
    overflow: hidden; /* Ocultar el desbordamiento */
}

.oferta-item img, .categoria-item img, .producto-item img, .oferta-promocion-item img {
    width: 100%; /* Asegura que la imagen ocupe todo el ancho de la tarjeta */
    height: 200px; /* Altura fija para las imágenes */
    object-fit: cover; /* Mantiene la proporción de la imagen y recorta si es necesario */
}

/* Estilos para favoritos */
.btn-favorito {
    background: none;
    border: none;
    cursor: pointer;
    font-size: 1.5rem;
    padding: 5px;
    transition: transform 0.2s;
}

.btn-favorito:hover {
    transform: scale(1.2);
}

/* Notificaciones */
.notificacion {
    position: fixed;
    bottom: 20px;
    right: 20px;
    background-color: #333;
    color: white;
    padding: 15px 25px;
    border-radius: 5px;
    opacity: 0;
    transform: translateY(100%);
    transition: all 0.3s ease;
    z-index: 1000;
}

.notificacion.mostrar {
    opacity: 1;
    transform: translateY(0);
}

/* Mensaje vacío */
.mensaje-vacio {
    text-align: center;
    padding: 2rem;
    color: #666;
    font-size: 1.2rem;
}

/* Mensaje de error */
.mensaje-error {
    text-align: center;
    padding: 2rem;
    color: #dc3545;
    font-size: 1.2rem;
}

/* Sección de favoritos */
#favoritos-section {
    padding: 2rem;
}

#favoritos-section h2 {
    text-align: center;
    margin-bottom: 2rem;
}

/* Media query para pantallas pequeñas */
@media (max-width: 600px) {

    #ofertas, #categorias, #productor-destacados, #ofertas-y-promociones {
        padding: 10px;
    }

    
    .container {
        width: 100%;
        padding: 0px;
    }

    header {
        flex-direction: column; /* Cambiar a columna en pantallas pequeñas */
        align-items: flex-start; /* Alinear elementos al inicio */
    }

    h1 {
        padding-left: 0;
    }

    nav {
        text-align: left; /* Alinear el menú a la izquierda */
        width: 100%; /* Hacer que el menú ocupe el 100% del ancho */
    }

    nav ul {
        flex-direction: column;
        align-content: center;
        align-items: flex-start;
    }

    input[type="text"] {
        margin-top: 20px; /* Espacio superior para el buscador */
        width: 100%; /* Asegurar que el buscador ocupe el 100% del ancho */
        align-self: center;
    }
}

.carrito-icono {
    position: relative;
    width: 25px;
    height: 25px;
    display: block;
}

.contador {
    position: absolute;
    top: -7px;
    right: -10px;
    background-color: #e74c3c;
    color: white;
    border-radius: 50%;
    padding: 2px 5px;
    font-size: 12px; /* Tamaño de fuente */
    width: 5px;
    height: 11px;
    display: flex; /* Usar flexbox para centrar el contenido */
    justify-content: center; /* Centrar horizontalmente */
    align-items: center; /* Centrar verticalmente */
}
