.mt-elementor-points-product {
    --points-section-padding-y: 6.9444vw;
    --points-header-gap: 3.4722vw;
    --points-title-font: 2.5vw;
    --points-title-line: 3.0556vw;
    --points-title-letter: 0.14em;

    --points-desc-margin-top: 2.0833vw;
    --points-desc-font: 0.9722vw;
    --points-desc-line: 1.5278vw;

    --product-gap: 1.4vw;
    --product-visible-count: 4.5626;

    --product-item-height: 20.8333vw;
    --product-image-wrap-height: 17.6389vw;
    --product-title-height: 1.6667vw;
    --product-title-font: 1.1111vw;
    --product-title-line: 1.6667vw;

    --product-placeholder-width: 7.6389vw;
    --product-placeholder-height: 9.7222vw;
    --product-placeholder-radius: 0.6944vw;
    --product-placeholder-font: 0.8333vw;

    --product-controls-margin-top: 3.4722vw;
    --product-controls-padding-x: 6.9444vw;
    --product-arrow-size: 2.7778vw;
    --product-arrow-fallback-font: 2.9167vw;

    --product-dot-width: 0.9028vw;
    --product-dot-height: 0.4167vw;
    --product-dot-gap: 0.2778vw;
    --product-dot-active-width: 6.9444vw;

    width: 100%;
    padding: var(--points-section-padding-y) 0;
    background: #ffffff;
    overflow: hidden;
}

.mt-elementor-points-product-header {
    text-align: center;
    margin-bottom: var(--points-header-gap);
}

.mt-elementor-points-product-header h2 {
    margin: 0;
    font-family: var(--vape-font-brand);
    font-weight: 700;
    font-size: var(--points-title-font);
    line-height: var(--points-title-line);
    letter-spacing: var(--points-title-letter);
    color: #000000;
}

.mt-elementor-points-product-header p {
    margin: var(--points-desc-margin-top) 0 0;
    font-family: var(--vape-font-body);
    font-weight: 500;
    font-size: var(--points-desc-font);
    line-height: var(--points-desc-line);
    color: #000000;
}

.mt-elementor-points-product-stage {
    position: relative;
    width: 100%;
}

.mt-elementor-points-product-viewport {
    width: 100%;
    overflow: hidden;
    cursor: grab;
}

.mt-elementor-points-product-viewport.is-dragging {
    cursor: grabbing;
}

.mt-elementor-points-product-track {
    display: flex;
    align-items: flex-start;
    gap: var(--product-gap);
    padding: 0;
    transform: translate3d(0, 0, 0);
    transition: transform 0.42s cubic-bezier(0.22, 1, 0.36, 1);
    will-change: transform;
    user-select: none;
}

.mt-elementor-points-product-viewport.is-dragging .mt-elementor-points-product-track {
    transition: none;
}

.mt-elementor-points-product-item {
    flex: 0 0 calc((100% - (var(--product-visible-count) - 1) * var(--product-gap)) / var(--product-visible-count));
    min-width: 0;
    height: var(--product-item-height);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    text-align: center;
}

.mt-elementor-points-product-image-wrap {
    width: 100%;
    height: var(--product-image-wrap-height);
    display: flex;
    align-items: center;
    justify-content: center;
}

.mt-elementor-points-product .mt-elementor-points-product-image {
    max-width: 100%;
    max-height: var(--product-image-wrap-height);
    width: auto;
    height: auto;
    display: block;
    object-fit: contain;
    pointer-events: none;
}

.mt-elementor-points-product-placeholder {
    width: var(--product-placeholder-width);
    height: var(--product-placeholder-height);
    border-radius: var(--product-placeholder-radius);
    background: #e9e9e9;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #777777;
    font-family: var(--vape-font-brand);
    font-size: var(--product-placeholder-font);
    font-weight: 700;
}

.mt-elementor-points-product-item h3 {
    width: 100%;
    height: var(--product-title-height);
    margin: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--vape-font-brand);
    font-weight: 700;
    font-size: var(--product-title-font);
    line-height: var(--product-title-line);
    color: #000000;
}

.mt-elementor-points-product-controls {
    width: 100%;
    margin-top: var(--product-controls-margin-top);
    padding: 0 var(--product-controls-padding-x);
    display: grid;
    grid-template-columns: var(--product-arrow-size) 1fr var(--product-arrow-size);
    align-items: center;
}

.mt-elementor-points-product-arrow {
    width: var(--product-arrow-size);
    height: var(--product-arrow-size);
    padding: 0;
    margin: 0;
    border: 0;
    background: transparent;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

.mt-elementor-points-product-arrow-prev {
    justify-self: start;
}

.mt-elementor-points-product-arrow-next {
    justify-self: end;
}

.mt-elementor-points-product-arrow img {
    width: 100%;
    height: 100%;
    max-width: none;
    display: block;
    object-fit: contain;
    pointer-events: none;
}

.mt-elementor-points-product-arrow span {
    font-size: var(--product-arrow-fallback-font);
    font-weight: 200;
    line-height: 1;
    color: #0d0d0d;
    pointer-events: none;
}

.mt-elementor-points-product-dots {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: var(--product-dot-height);
    gap: var(--product-dot-gap);
}

.mt-elementor-points-product-dot {
    width: var(--product-dot-width);
    height: var(--product-dot-height);
    border: 0;
    border-radius: 99px;
    background: #f2f2f2;
    padding: 0;
    cursor: pointer;
    transition:
        width 0.36s cubic-bezier(0.22, 1, 0.36, 1),
        background-color 0.28s ease,
        opacity 0.28s ease;
}

.mt-elementor-points-product-dot.is-active {
    width: var(--product-dot-active-width);
    background: #2ef0d6;
}

.mt-elementor-points-product-dot:hover {
    opacity: 0.75;
}

@media (max-width: 1024px) {
    .mt-elementor-points-product {
        --points-section-padding-y: 7.0313vw;
        --points-header-gap: 4.8828vw;
        --points-title-font: 3.125vw;
        --points-title-line: 3.9063vw;

        --points-desc-margin-top: 2.3438vw;
        --points-desc-font: 1.3672vw;
        --points-desc-line: 2.1484vw;

        --product-gap: 4.6875vw;
        --product-visible-count: 3;

        --product-item-height: 27.3438vw;
        --product-image-wrap-height: 22.4609vw;
        --product-title-height: 2.3438vw;
        --product-title-font: 1.3672vw;
        --product-title-line: 2.1484vw;

        --product-placeholder-width: 10.7422vw;
        --product-placeholder-height: 13.6719vw;
        --product-placeholder-radius: 0.9766vw;
        --product-placeholder-font: 1.1719vw;

        --product-controls-margin-top: 4.8828vw;
        --product-controls-padding-x: 5.4688vw;
        --product-arrow-size: 3.9063vw;
        --product-arrow-fallback-font: 4.1016vw;

        --product-dot-width: 1.2695vw;
        --product-dot-height: 0.5859vw;
        --product-dot-gap: 0.3906vw;
        --product-dot-active-width: 9.7656vw;
    }

    .mt-elementor-points-product-track {
        padding: 0 var(--product-controls-padding-x);
    }
}

@media (max-width: 768px) {
    .mt-elementor-points-product {
        --points-section-padding-y: 14.9333vw;
        --points-header-gap: 11.7333vw;

        --points-title-font: 6.4vw;
        --points-title-line: 8.5333vw;
        --points-title-letter: 0.12em;

        --points-desc-margin-top: 4.8vw;
        --points-desc-font: 3.4667vw;
        --points-desc-line: 5.8667vw;

        --product-gap: 7.4667vw;
        --product-visible-count: 2;

        --product-item-height: 48vw;
        --product-image-wrap-height: 34.6667vw;
        --product-title-height: 8vw;
        --product-title-font: 3.4667vw;
        --product-title-line: 5.3333vw;

        --product-placeholder-width: 22vw;
        --product-placeholder-height: 28vw;
        --product-placeholder-radius: 2.6667vw;
        --product-placeholder-font: 3.2vw;

        --product-controls-margin-top: 10.6667vw;
        --product-controls-padding-x: 8.5333vw;
        --product-arrow-size: 0px;

        --product-dot-width: 3.4667vw;
        --product-dot-height: 1.6vw;
        --product-dot-gap: 1.0667vw;
        --product-dot-active-width: 15.4667vw;
    }

    .mt-elementor-points-product-header {
        padding: 0 4.8vw;
    }

    .mt-elementor-points-product-track {
        padding: 0 var(--product-controls-padding-x);
    }

    .mt-elementor-points-product-arrow {
        display: none;
    }

    .mt-elementor-points-product-controls {
        grid-template-columns: 1fr;
        padding: 0 var(--product-controls-padding-x);
    }
}