.asg-grid {
    display: grid;
    grid-template-columns: repeat(var(--asg-cols, 3), 1fr);
    gap: var(--asg-gap, 30px);
}

@media (max-width: 980px) {
    .asg-grid {
        grid-template-columns: repeat(var(--asg-cols-t, 2), 1fr);
    }
}

@media (max-width: 767px) {
    .asg-grid {
        grid-template-columns: repeat(var(--asg-cols-m, 1), 1fr);
    }
}

/* Card */
.asg-card {
    overflow: visible;
    text-align: center;
    background-color: var(--asg-card-bg, transparent);
    border-radius: var(--asg-card-r, 25px);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.asg-card:hover {
    transform: translateY(-4px);
}

/* Image */
.asg-image {
    display: block;
    overflow: hidden;
    border-radius: var(--asg-img-r, 25px);
    background-color: var(--asg-img-bg, transparent);
    line-height: 0;
    max-width: var(--asg-img-mw, 100%);
    margin-left: auto;
    margin-right: auto;
    padding: var(--asg-img-pad, 0);
}

.asg-image .asg-img {
    width: 100%;
    height: auto;
    max-height: var(--asg-img-mh, none);
    object-fit: cover;
    display: block;
    transition: transform 0.4s ease;
}

.asg-zoom:hover .asg-img {
    transform: scale(1.08);
}

/* Title area */
.asg-card-text {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--asg-title-pad, 35px);
    min-height: 80px;
    margin-top: calc(-1 * var(--asg-title-off, 0px));
    margin-left: 10px;
    margin-right: 10px;
    background-color: var(--asg-title-bg, transparent);
    border-width: var(--asg-title-bw, 0);
    border-style: solid;
    border-color: var(--asg-title-bc, #e0e0e0);
    border-radius: var(--asg-title-br, 0);
    box-shadow: var(--asg-title-sh, none);
}

.asg-title {
    text-decoration: none;
    color: var(--asg-title-c, #000000);
    font-size: var(--asg-title-s, 20px);
    font-weight: var(--asg-title-w, 700);
}

.asg-title:hover {
    opacity: 0.8;
}
