.card-group-element {
    display: flex;
    flex-wrap: wrap;
    gap: 1.5rem;
}

.card-group-element-align-left { justify-content: flex-start; }
.card-group-element-align-center { justify-content: center; }
.card-group-element-align-right { justify-content: flex-end; }

.card-group-element-item {
    display: flex;
}

.card-group-element-columns-1 .card-group-element-item { flex: 0 0 100%; }
.card-group-element-columns-2 .card-group-element-item { flex: 0 0 calc(50% - 0.75rem); }
.card-group-element-columns-3 .card-group-element-item { flex: 0 0 calc(33.333% - 1rem); }
.card-group-element-columns-4 .card-group-element-item { flex: 0 0 calc(25% - 1.125rem); }

@media (max-width: 991px) {
    .card-group-element-columns-3 .card-group-element-item,
    .card-group-element-columns-4 .card-group-element-item {
        flex: 0 0 calc(50% - 0.75rem);
    }
}

@media (max-width: 575px) {
    .card-group-element-item {
        flex: 0 0 100% !important;
    }
}

.card-group-element .card {
    width: 100%;
    border: none;
    border-radius: 0;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
    background: #fff;
    display: flex;
    flex-direction: column;
    transition: box-shadow 0.2s ease;
}

.card-group-element .card:hover {
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.14);
}

.card-group-element .card-img-top {
    border-radius: 0;
    overflow: hidden;
}

.card-group-element .card-img-top img {
    width: 100%;
    height: auto;
    display: block;
}
