/* =========================
   MAIN WRAPPER
========================= */

.npc-carousel-wrapper{
    position:relative;
    overflow:hidden;
    width:100%;
    padding:35px 0;
    background:#fff;
}

/* fade edges */

.npc-carousel-wrapper::before,
.npc-carousel-wrapper::after{
    content:"";
    position:absolute;
    top:0;
    width:80px;
    height:100%;
    z-index:2;
    pointer-events:none;
}

.npc-carousel-wrapper::before{
    left:0;
    background:linear-gradient(to right,#fff 0%,transparent 100%);
}

.npc-carousel-wrapper::after{
    right:0;
    background:linear-gradient(to left,#fff 0%,transparent 100%);
}

/* =========================
   TRACK
========================= */

.npc-carousel-track{
    display:flex;
    align-items:stretch;
    gap:24px;

    width:max-content;

    cursor:grab;

    user-select:none;

    will-change:transform;
}

.npc-carousel-track.dragging{
    cursor:grabbing;
}

/* =========================
   PRODUCT CARD
========================= */

.npc-product{
    width:240px;
    flex-shrink:0;

    display:flex;
    flex-direction:column;

    text-decoration:none;

    background:#ffffff;

    border-radius:20px;

    overflow:hidden;

    box-shadow:
        0 6px 18px rgba(0,0,0,0.08);

    transition:
        transform 0.3s ease,
        box-shadow 0.3s ease;
}

.npc-product:hover{
    transform:translateY(-6px);

    box-shadow:
        0 14px 28px rgba(0,0,0,0.14);
}

/* =========================
   IMAGE
========================= */

.npc-product img{
    width:100%;
    height:240px;

    object-fit:cover;

    display:block;

    transition:transform 0.5s ease;
}

.npc-product:hover img{
    transform:scale(1.05);
}

/* =========================
   CAPTION BELOW IMAGE
========================= */

.npc-caption{
    padding:18px 16px 22px;

    background:#ffffff;

    text-align:center;
}

.npc-caption h3{
    margin:0;

    color:#10406a;

    font-size:16px;
    font-weight:700;
    line-height:1.5;

    text-align:center;
}

/* =========================
   VIEW MORE BUTTON
========================= */

.npc-viewmore-wrap{
    text-align:center;
    margin-top:35px;
}

.npc-viewmore-btn{
    display:inline-block;

    padding:14px 36px;

    background:#f0ab2e;
    color:#000000;

    text-decoration:none;

    font-size:15px;
    font-weight:700;

    border-radius:50px;

    transition:
        transform 0.3s ease,
        box-shadow 0.3s ease,
        background 0.3s ease;

    animation:npcPulse 2.2s infinite;
}

.npc-viewmore-btn:hover{
    background:#ffbc47;

    transform:translateY(-4px);

    box-shadow:
        0 12px 24px rgba(240,171,46,0.35);
}

/* pulse effect */

@keyframes npcPulse{

    0%{
        box-shadow:0 0 0 0 rgba(240,171,46,0.5);
    }

    70%{
        box-shadow:0 0 0 16px rgba(240,171,46,0);
    }

    100%{
        box-shadow:0 0 0 0 rgba(240,171,46,0);
    }
}

/* =========================
   CAROUSEL ANIMATION
========================= */



/* =========================
   MOBILE
========================= */

@media(max-width:768px){

    .npc-carousel-wrapper{
        padding:25px 0;
    }

    .npc-carousel-track{
        gap:18px;
    }

    .npc-product{
        width:180px;
        border-radius:16px;
    }

    .npc-product img{
        height:180px;
    }

    .npc-caption{
        padding:14px 12px 18px;
    }

    .npc-caption h3{
        font-size:14px;
    }

    .npc-viewmore-btn{
        padding:12px 28px;
        font-size:14px;
    }

    .npc-carousel-wrapper::before,
    .npc-carousel-wrapper::after{
        width:40px;
    }
}

/* draggable cursor */

.npc-carousel-track{
    cursor:grab;
}

.npc-carousel-track.dragging{
    cursor:grabbing;
}