.carousel {
        position: relative;
        width: 100%;
        max-width: 1100px;
        margin: 40px auto;
        overflow: hidden;
        background: #fff;
        padding: 30px 12px 20px; /* space for zoom */
    }

    .carousel-track {
        display: flex;
        gap: 24px;
        transition: transform 0.35s ease;
    }

    .card {
        flex: 0 0 calc((100% - 48px) / 3);
        background: #fff;
        border-radius: .1rem; /* your update */
        box-shadow: 0 4px 14px rgba(0,0,0,0.12);
        overflow: hidden;
        box-sizing: border-box;
        display: flex;
        flex-direction: column;

        /* centered zoom hover */
        transition: transform 0.3s ease, box-shadow 0.3s ease;
        transform-origin: center center;

        /* taller cards */
        min-height: 420px;
    }

    .card:hover {
        transform: scale(1.02);
    }

    .card img {
        width: 100%;
        height: 260px; /* taller image */
        object-fit: cover;
        display: block;
    }

    .card-content {
        padding: 16px;
        flex: 1;
        display: flex;
        flex-direction: column;
    }

    .card h3 {
        margin: 0 0 8px;
        font-weight: 300;
        color: #875574;
        letter-spacing: 0.6px;
    }

    .card p {
        font-size: 14px;
        color: #555;
        margin: 16px 0 24px;
        flex: 1;
    }

    .card button {
        padding: 15px 24px;
        border: none;
        background: #875574; /* your color */
        color: white;
        border-radius: .1rem; /* your update */
        cursor: pointer;
        align-self: flex-end; /* your update */
    }

    .nav {
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        border: none;
        width: 42px;          
        height: 42px;         
        border-radius: 50%;   
        display: flex;        
        align-items: center;
        justify-content: center;
        cursor: pointer;
        font-size: 22px;
        z-index: 10;
        opacity: 0;
        transition: opacity 0.3s;
        padding: 0;           
        background: #eceff1b3;
        color: #875574;
    }

    .carousel:hover .nav {
        opacity: 1;
    }

    .nav.left { left: 20px; }
    .nav.right { right: 20px; }

    .dots {
        display: flex;
        justify-content: center;
        gap: 8px;
        padding: 24px 0;
    }

    .dot {
        width: 10px;
        height: 10px;
        background: #bbb;
        border-radius: 50%;
        cursor: pointer;
        transition: background 0.3s;
    }

    .dot.active {
        background: #875574; /* your color */
    }

    .clamp-4 {
        display: -webkit-box;
        -webkit-line-clamp: 4;   /* limit to 4 lines */
        line-clamp: 4;
        -webkit-box-orient: vertical;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    @media (max-width: 768px) {
        .card {
            flex: 0 0 100%;
            min-height: 380px;
        }
        .card img {
            height: 200px;
        }
    }