.acf-gallery-wrap {
    max-width: 1200px;
    margin: 0 auto 60px auto;
}

.acf-gallery-featured {
    display: block;
    overflow: hidden;
    border-radius: 22px;
    margin-bottom: 18px;
    box-shadow: 0 12px 30px rgba(0,0,0,.12);
}

.acf-gallery-featured img {
    width: 100%;
    height: clamp(320px, 46vw, 620px);
    display: block;
    object-fit: cover;
    transition: transform .35s ease;
}

.acf-gallery-featured:hover img {
    transform: scale(1.02);
}

.acf-gallery-grid {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    gap: 18px;
    grid-auto-flow: dense;
}

.acf-gallery-item {
    grid-column: span 4;
    grid-row: span 1;
    display: block;
    overflow: hidden;
    border-radius: 18px;
    box-shadow: 0 8px 24px rgba(0,0,0,.10);
    background: #f2f2f2;
}

.acf-gallery-item.item-wide {
    grid-column: span 8;
}

.acf-gallery-item.item-tall {
    grid-row: span 2;
}

.acf-gallery-item img {
    width: 100%;
    height: 100%;
    min-height: 260px;
    display: block;
    object-fit: cover;
    transition: transform .35s ease;
}

.acf-gallery-item.item-tall img {
    min-height: 540px;
}

.acf-gallery-item:hover img {
    transform: scale(1.03);
}

@media (max-width: 991px) {
    .acf-gallery-item {
        grid-column: span 6;
    }

    .acf-gallery-item.item-wide {
        grid-column: span 12;
    }

    .acf-gallery-item.item-tall {
        grid-row: span 1;
    }

    .acf-gallery-item.item-tall img {
        min-height: 320px;
    }
}

@media (max-width: 575px) {
    .acf-gallery-wrap {
    
    padding: 0 15px;
}
    .acf-gallery-grid {
        grid-template-columns: repeat(1, 1fr);
    }

    .acf-gallery-item,
    .acf-gallery-item.item-wide {
        grid-column: span 1;
    }

    .acf-gallery-item img,
    .acf-gallery-item.item-tall img {
        min-height: 220px;
    }

    .acf-gallery-featured img {
        height: 260px;
    }
}