/* reset CSS */
*{
    padding: 0;
    margin: 0;
    box-sizing: border-box;
}
/* estilos generales */
html, body {
    height: 100%;
}
body{
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    background-color: #2f373e;
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    color: #5c8d5c;
}
main {
    flex: 1;
}
.contenedor{
    width: 80%;
    max-width: 1100px;
    margin: 0 auto;
    padding: 40px 0;
}
/* estilos header y footer */
header, footer{
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    min-height: 80px;
    padding: 40 px 10px;
    background-color: #a3d9a5;
    color: #2f373e;
    text-align: center;
}
header h1 {
    font-size: 2rem;
}
.hero {
    text-align: center;
}
.hero .contenedor {
    padding-bottom: 10px;
}
.galeria-section h2,
.hero h2 {
    margin-bottom: 15px;
}
.galeria-section .contenedor {
    padding-top: 10px;
}
/* estilos galeria masonry*/
.grilla-masonry {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    grid-auto-rows: 260px;
    gap: 15px;
    margin-top: 20px;
}
.grilla-masonry .item {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    border-radius: 8px;
    color: #fff;
    text-align: center;
    padding: 10px;
    width: 100%;
    height: 100%;
}
.grilla-masonry .item .nombre {
    font-size: 1.1rem;
    font-weight: bold;
}
.grilla-masonry .item .codigo {
    font-size: 0.85rem;
    opacity: 0.85;
    font-weight: normal;
}
/* estilos 1ra fila */
.item-1 {
    grid-column: span 6;
    background-color: #D5D717;
}
.item-2 {
    grid-column: span 3;
    background-color: #FF6F61;
}
.item-3 {
    grid-column: span 3;
    background-color: #7E5E9A;
}
/* estilos 2da fila */
.item-4 {
    grid-column: span 4;
    background-color: #0088A5;
}
.item-5 {
    grid-column: span 4;
    background-color: #EE6D8A;
}
.item-6 {
    grid-column: span 4;
    background-color: #A32857;
}
/* estilos media screen */
@media screen and (max-width: 991px) {
    .grilla-masonry {
        grid-template-columns: 1fr;
        grid-auto-rows: auto;
    }
    .grilla-masonry .item {
        grid-column: span 1 !important;
        width: 100% !important;
        height: 180px;
    }
}