/* ===== PRODUCT CARD ===== */

.product-card{
    position:relative;
    overflow:hidden;
    border:1px solid rgba(255,60,60,.18);
    border-radius:18px;
    transition:.35s ease;
}

.product-card:hover{
    transform:translateY(-8px);
    border-color:#ff3b3b;
    box-shadow:
        0 0 18px rgba(255,60,60,.55),
        0 0 45px rgba(255,60,60,.28);
}

/* IMAGE */

.product-card img,
.product-image{
    transition:
        transform .45s ease,
        filter .45s ease;
}

.product-card:hover img,
.product-card:hover .product-image{
    transform:scale(1.14);
    filter:brightness(1.08);
}

/* BUTTON */

.buy-button{
    display:flex;
    justify-content:center;
    align-items:center;
    gap:10px;

    width:100%;

    padding:12px 16px;

    border:1px solid #ff3b3b;
    border-radius:12px;

    color:#fff;
    font-weight:700;

    background:linear-gradient(90deg,#ff2d2d,#ff5151);

    transition:.3s ease;

    box-shadow:
        0 0 12px rgba(255,60,60,.35);
}

.product-card:hover .buy-button{
    transform:translateY(-2px);

    box-shadow:
        0 0 18px rgba(255,60,60,.7),
        0 0 35px rgba(255,60,60,.35);
}

.buy-button svg{
    transition:.3s ease;
}

.product-card:hover .buy-button svg{
    transform:translateX(6px);
}
.hero-banner{
    border-radius:24px;
    overflow:hidden;

    border:1px solid rgba(255,60,60,.25);

    box-shadow:
        0 0 25px rgba(255,60,60,.15);

    transition:.35s;
}

.hero-banner:hover{
    transform:translateY(-4px);

    box-shadow:
        0 0 30px rgba(255,60,60,.35),
        0 0 70px rgba(255,60,60,.18);
}
.hero-banner img{
    transition:transform .6s ease;
}

.hero-banner:hover img{
    transform:scale(1.03);
}
.hero-banner{
    position:relative;
}

.hero-banner::after{
    content:"";
    position:absolute;
    left:0;
    right:0;
    bottom:0;
    height:140px;

    background:linear-gradient(
        transparent,
        #090b10
    );

    pointer-events:none;
}
.hero-banner::before{
    content:"";
    position:absolute;
    inset:0;

    background:
    radial-gradient(circle at 75% 45%,
    rgba(255,0,0,.18),
    transparent 45%);

    pointer-events:none;
}
</section>

dodaj:

<style>
.gallery-image{
    position:relative;
    overflow:hidden;
    border-radius:22px;
    transition:transform .45s ease, box-shadow .45s ease;
}

.gallery-image img{
    width:100%;
    height:100%;
    transition:transform .6s ease, filter .6s ease;
}

.gallery-image:hover{
    transform:translateY(-6px);
    box-shadow:
        0 0 20px rgba(255,60,60,.35),
        0 0 60px rgba(255,60,60,.18);
}

.gallery-image:hover img{
    transform:scale(1.04);
    filter:brightness(1.05);
}

.gallery-image::after{
    content:"";
    position:absolute;
    inset:0;
    border-radius:22px;
    border:1px solid rgba(255,60,60,.25);
    opacity:0;
    transition:.35s;
    pointer-events:none;
}

.gallery-image:hover::after{
    opacity:1;
    box-shadow:0 0 20px rgba(255,60,60,.55);
}
</style>