body {
    margin: 0;
    font-family: Arial, sans-serif;
    background-color: #fdfdfd;
    color: #ffffff;
}

/* NUEVA REGLA SEMÁNTICA: El contenido principal */
/* El main abarca todo el contenido principal, ayudando a la organización */
main {
    width: 100%;
    margin: 0 auto; /* Asegura que el main esté centrado si definieras un ancho máximo */
}

/* Barra superior (header) */
.barra-superior {
    background-color: #5e3b1e;
    color: rgb(255, 255, 255);
    padding: 18px 20px;
    text-align: left;
}

.barra-superior h1 {
    font-family: 'DM Serif Display', serif; /* Fuente solo para el título */
    font-size: 33px;
    margin: 0;
}

/* Imagen principal (Hero) */
.imagen-principal {
    position: relative;
    text-align: center;
}

.imagen-principal img {
    width: 100%;
    height: auto;
    display: block;
}

.titulo-imagen {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: rgb(255, 255, 255);
    background: rgba(0, 0, 0, 0);
    padding: 20px;
    font-size: 2em;
    border-radius: 10px;
    /* NUEVA REGLA (MEJORA): Asegura que el texto esté visible en dispositivos pequeños */
    white-space: nowrap; 
}

/* Contacto */
.contacto {
    background-color: rgb(93, 58, 29);
    padding: 30px 20px;
    text-align: center;
}

.contacto h2 {
    margin-bottom: 15px;
    color: #ffffff;
}

.contacto ul {
    list-style: none;
    padding: 0;
    line-height: 1.8;
}

/* NUEVA REGLA (MEJORA): Estilo para enlaces en el contacto */
.contacto a {
    color: #ffffff; /* Color similar al marrón del encabezado */
    text-decoration: none;
    font-weight: bold;
}
.contacto a:hover {
    text-decoration: underline;
}


/* Contenido principal */
.contenido-principal {
    background-color: #f0f0f0; /* Cambiado a un gris claro para contraste */
    padding: 40px 20px;
    /* NUEVA REGLA (FLEXBOX): Para poner el texto y la imagen lado a lado en escritorio */
    display: flex;
    flex-direction: column; /* Por defecto en móvil, apilado */
    align-items: center;
    gap: 30px;
}

/* Media Query para Escritorio (aplica la distribución en columnas) */
@media (min-width: 768px) {
    .contenido-principal {
        flex-direction: row; /* En escritorio, lado a lado */
        text-align: left;
        max-width: 1200px;
        margin: 0 auto;
    }
    .contenido-principal .texto {
        flex: 1; /* Ocupa espacio flexible */
        padding-right: 20px;
    }
    .contenido-principal img {
        flex: 1; /* Ocupa el otro espacio flexible */
        width: 100%;
    }
}


.contenido-principal .texto {
    margin-bottom: 20px;
}

.contenido-principal img {
    width: 90%;
    max-width: 800px;
    height: auto;
    box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}


.producto:hover {
    transform: translateY(-5px); /* Efecto sutil al pasar el ratón */
    box-shadow: 0 6px 12px rgba(0,0,0,0.1);
}



/* NUEVA REGLA SEMÁNTICA: Estilos para el footer (Pie de página) */
footer {
    background-color: #333; /* Un color oscuro para el pie de página */
    color: white;
    padding: 20px;
    text-align: center;
    font-size: 0.9em;
}

/* NUEVA REGLA SEMÁNTICA: Estilos para la dirección dentro del footer */
footer address {
    font-style: normal; /* Quita la cursiva predeterminada */
    margin-top: 5px;
}

footer a {
    color: #ffd700; /* Un color de acento, como amarillo-oro, para enlaces */
    text-decoration: none;
}
footer a:hover {
    text-decoration: underline;
}


/* Estilos para la nueva sección de Mapa y Ubicación */
.mapa-ubicacion {
    /* Quita el fondo gris aquí. Solo queremos que el padre tenga un padding exterior. */
    background-color: transparent; /* O puedes usar el color del fondo de la página, #fdfdfd */
    padding: 40px 20px;
}

.contenedor-mapa-flex {
    /* CLAVE: Define el ancho máximo (la caja más chica) y lo centra */
    max-width: 950px; /* Puedes ajustar este valor: 900px, 1000px, etc. */
    margin: 0 auto;    /* Centra la caja horizontalmente */
    
    /* Propiedades visuales */
    background-color: rgb(93, 58, 29); /* Color de fondo sólido para la caja (mejor que gris transparente) */
    border-radius: 12px; /* Redondea las esquinas (ajusta el radio si lo deseas) */
    overflow: hidden;    /* Importante para recortar el mapa dentro de las esquinas */
    box-shadow: 0 4px 15px rgba(93, 58, 29, 0.522); /* Sombra sutil para darle profundidad */
    padding: 30px; /* Añade espacio interno para que el texto y el mapa no toquen los bordes */

    /* Propiedades Flexbox para las 2 columnas */
    display: flex;
    flex-direction: column; /* Por defecto, apila verticalmente */
    gap: 25px;
}

.texto-mapa h3 {
    color: #ffffff;
    margin-top: 0;
    font-size: 2.0em;
}

/* Reglas para alinear en dos columnas en pantallas grandes */
@media (min-width: 768px) {
    .contenedor-mapa-flex {
        flex-direction: row; /* Cambia a horizontal */
        align-items: flex-start; /* Alinea los elementos a la parte superior */
    }

    .texto-mapa {
        flex: 1; /* Ocupa menos espacio (columna izquierda) */
        padding-right: 30px;
    }

    .mapa-iframe {
        flex: 2; /* Ocupa más espacio (columna derecha, haciendo que se vea alineado a la derecha) */
        min-width: 400px; /* Asegura que el mapa se vea bien */
    }
}