/* ============================================== */
/* ESTILOS GLOBALES / RESET */
/* ============================================== */
/* Opción 1 de tipografía: Clásica y Elegante
   Puedes reemplazar por otra opción si quieres */
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;700&family=Roboto:wght@400;700&display=swap');

body {
    font-family: Arial, sans-serif;
    margin: 0;
    padding: 0;
    background-color: #1a2a3a; /* Color de fondo oscuro como en tu imagen de referencia */
    color: #f0f0f0; /* Color de texto por defecto para contraste */
}

/* ============================================== */
/* ESTILOS DEL MENÚ SUPERIOR (TOP NAV) - BASADO EN TU IMAGEN */
/* ============================================== */
.top-nav {
    background-color: #570303;
    /*background-color: #2a3a4a; /* Fondo oscuro para el nav */
    padding: 10px 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    color: #e0e0e0;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
}

.top-nav .logo {
    font-weight: bold;
    font-size: 1.2em;
}

.top-nav ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
}

.top-nav ul li {
    margin-left: 20px;
}

.top-nav ul li a {
    text-decoration: none;
    color: #e0e0e0;
    font-size: 0.95em;
    padding: 5px 0;
    transition: color 0.3s ease;
}

.top-nav ul li a:hover {
    color: #ffcc00; /* Un color de resaltado */
}

/* ============================================== */
/* 1. ESTILOS DEL BANNER HORIZONTAL (5 ELEMENTOS) */
/* ============================================== */

.banner-horizontal {
    display: flex; /* CLAVE: Usa Flexbox para disposición horizontal */
    justify-content: center; /* Centra los elementos */
    align-items: flex-start; /* Alineación superior */
    padding: 15px 0; /* Más padding para separarlo del nav */
    background-color: #1a2a3a; /* Mismo fondo que el body para integrar */
    gap: 15px; /* Espacio entre los elementos Flexbox */
    max-width: 1200px; /* Limita el ancho del banner */
    margin: 0 auto; /* Centra el banner en la página */
}

.banner-item {
    position:relative;
    overflow: hidden;
    display: block;
    flex: 0 0 210px; /* Tamaño fijo para cada elemento en escritorio */
    text-align: center;
    text-decoration: none; /* Quita el subrayado del enlace */
    color: #f0f0f0; /* Color del texto para los items */
    background-color: #2a3a4a; /* Fondo para cada item */
    padding: 8px;
    border-radius: 8px;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    border: 1px solid #3a4a5a; /* Borde sutil */
}

.banner-item:hover {
    transform: translateY(-5px); /* Pequeño efecto al pasar el ratón */
    box-shadow: 0 6px 12px rgba(0, 0, 0, 0.4);
}

.banner-item img {
    width: 100%; 
    height: 220px; /* CLAVE: AUMENTADO a 150px para mayor altura */
    object-fit: cover; /* Recorta la imagen para que quepa sin distorsionarse */
    display: block;
    border-radius: 4px; 
    border: 1px solid #4a5a6a;
}

/* 3. Estilos para el texto nuevo superpuesto (el oscuro) */
.overlay-text {
    /* Posicionamiento */
    position: absolute; 
    bottom: 45px;   /* Abajo del todo */
    left: 0;     /* De izquierda a derecha */
    width: 95%; /* Ocupa todo el ancho */
    
    /* Diseño (Color Oscuro) */
   /* background-color: rgba(0, 0, 0, 0.75); /* Fondo negro con 75% de opacidad */
    color: rgb(208, 220, 233); /* Texto blanco para el contraste */
    
    /* Tipografía */
    padding: 3px 5px; /* Relleno */
    font-size: 0.9em; /* Tamaño de fuente */
    text-align: center; /* Centrado */
    z-index: 10; /* Asegura que esté por encima de la imagen */
}


.banner-item p {
    font-size: 0.9em;
    margin-top: 10px;
    margin-bottom: 0;
    color: #ffcc00; /* Color de texto para el título del item */
}

/* ============================================== */
/* 2. ESTILOS DEL BODY CON IMAGEN PRINCIPAL COMPLETA */
/* ============================================== */

.main-body {
    padding: 0; /* Elimina padding, la imagen debe ocupar el espacio */
    margin: 0; /* Elimina márgenes */
    max-width: none; /* Asegura que no haya límite de ancho */
    background-color: transparent; /* Fondo transparente */
    box-shadow: none;
    text-align: center; /* Para centrar la imagen si es más estrecha que la pantalla */
}

.main-image-full {
    width: 100%; /* CLAVE: La imagen ocupa el 100% del ancho del viewport */
    height: auto; /* CLAVE: Mantiene la proporción de la imagen y se ve completa */
    display: block; /* Elimina espacio extra debajo de la imagen */
    max-width: 100%; /* Asegura que no se desborde */
}

/* ============================================== */
/* RESPONSIVIDAD GENERAL */
/* ============================================== */

@media (max-width: 1024px) {
    .top-nav ul li {
        margin-left: 15px;
    }
    .banner-item {
        flex: 0 0 160px; /* Reducir un poco el tamaño en pantallas medianas */
    }
    .banner-item img {
        height: 90px;
    }
}

@media (max-width: 768px) {
    .top-nav {
        flex-direction: column; /* Apila el logo y el menú */
        align-items: center;
    }
    .top-nav ul {
        margin-top: 10px;
        flex-wrap: wrap; /* Permite que el menú se envuelva */
        justify-content: center;
    }
    .top-nav ul li {
        margin: 5px 10px; /* Espacio entre items de menú */
    }

    .banner-horizontal {
        flex-wrap: wrap; /* CLAVE: Permite que los items del banner se envuelvan */
        justify-content: center; /* Centra los items cuando se envuelven */
        gap: 10px; /* Espacio entre los items */
    }
    .banner-item {
        flex: 0 0 calc(50% - 20px); /* Dos items por línea, ajustando el gap */
        max-width: 250px; /* Ancho máximo para items en tablet */
    }
    .banner-item img {
        height: 120px; /* Ajustar altura para mantener la visibilidad */
    }
}

@media (max-width: 480px) {
    .top-nav .logo {
        font-size: 1em;
    }
    .top-nav ul li a {
        font-size: 0.8em;
    }
    .banner-item {
        flex: 0 0 calc(100% - 20px); /* Un item por línea en móvil */
        max-width: 300px;
    }
    .banner-item img {
        height: 150px; /* Ajustar altura para buena visibilidad en móvil */
    }
}
/* 5. MEDIA QUERY para pantallas pequeñas (Mobile) 📱 */

@media (max-width: 600px) {
    
    .overlay-text {
        /* Reducimos el tamaño de la fuente para que quepa mejor */
        font-size: 0.85em; 
        
        /* Reducimos el relleno para que el texto tenga más espacio vertical */
        padding: 5px; 
        
        line-height: 1.2;
    }
}