/* banner0 */

.gal-section {
    background: linear-gradient(rgba(0, 35, 102, 0.5), rgba(0, 35, 102, 0.5)), url('../img/company.jpeg'); 
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    
    width: 100%;
    height: 400px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.gal-title {
    color: #ffffff;
    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
    font-size: 48px;
    font-weight: 700;
    margin: 0;
    letter-spacing: -1px; 
}

/* banner  */


/* --- Image Grid Section --- */
/* --- Main Section Styling --- */
.image-grid-section {
    padding: 60px 5%;
    background-color: #f8fafc;
    font-family: 'Montserrat', sans-serif;
}

/* --- Grid Layout --- */
.grid-container {
    display: grid;
    /* Desktop: 4 columns */
    grid-template-columns: repeat(4, 1fr); 
    gap: 20px;
    max-width: 1200px;
    margin: 0 auto;
}

/* --- Image Styling & Animations --- */
.grid-container img {
    width: 100%;
    aspect-ratio: 1 / 1; /* Keeps images square */
    object-fit: cover;
    border-radius: 12px;
    background-color: #e2e8f0;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
    display: block;
    transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
    
    /* Animation for new images added via JS */
    animation: fadeInGrid 0.6s ease forwards;
}

.grid-container img:hover {
    transform: scale(1.05);
}

/* --- View More Button --- */
.view-more-container {
    text-align: center;
    margin-top: 50px;
}

.view-more-btn {
    background-color: #e82c33; /* Safe Group Red */
    color: #ffffff;
    padding: 16px 45px;
    border: none;
    border-radius: 8px;
    font-weight: 700;
    text-transform: uppercase;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    letter-spacing: 1px;
}

.view-more-btn:hover {
    background-color: #011740; /* Safe Group Navy */
    transform: translateY(-3px);
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
}

.view-more-btn:active {
    transform: translateY(-1px);
}

/* --- Helper Classes --- */
.hidden {
    display: none !important;
}

/* --- Animations --- */
@keyframes fadeInGrid {
    from { 
        opacity: 0; 
        transform: translateY(20px); 
    }
    to { 
        opacity: 1; 
        transform: translateY(0); 
    }
}

/* --- Responsive Breakpoints --- */
@media (max-width: 1024px) {
    .grid-container { 
        grid-template-columns: repeat(2, 1fr); 
        gap: 15px;
    }
}

@media (max-width: 480px) {
    .grid-container { 
        grid-template-columns: 1fr; 
    }
    .view-more-btn {
        width: 100%; /* Full width on small phones */
        padding: 16px 20px;
    }
}