.spf_container {
    width: 100%;
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 0.5rem;
    padding: 1rem;
    white-space: normal;
}
.spf_container.spf_size_small {
    grid-template-columns: repeat(5, 1fr);
}

.spf_container .spf_item {
    position: relative;
    padding-bottom: 100%;
    overflow: hidden;
}

.spf_container.spf_size_small .spf_item {
    padding-bottom: 56%;
}

.spf_container .spf_item img {
    position: absolute;
    top: 0;
    left: 0;
    object-fit: cover;
    width: 100%;
    height: 100%;
    transition: all 0.2s ease-in-out;
}

.spf_container .spf_item img:hover {
    transform: scale(1.1);
}

.spf_caption {
    background: rgba(0, 0, 0, 0.85);
    color: #f0f0f0;
    font-size: 11px;
    padding: 0.5rem;
}

@media only screen and (max-width: 768px) {
    .spf_container {
        grid-template-columns: 1fr 1fr;
    }
    .spf_container.spf_size_small {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media only screen and (max-width: 480px) {
    .spf_container {
        grid-template-columns: 1fr;
    }
    .spf_container.spf_size_small {
        grid-template-columns: 1fr 1fr;
    }
}
