.geovi-lpv-carousel-wrap {
    --lpv-accent: #5f6b4f;
    --lpv-orange: #f9a11b;
    --lpv-coral: #ef4123;
    --lpv-radius: 24px;
    --lpv-per-page-desktop: 2;
    max-width: 100%;
    margin: 0 auto;
}

.geovi-lpv-carousel-wrap .lpv-carousel {
    position: relative;
    max-width: 520px;
    margin: 0 auto;
}

.geovi-lpv-carousel-wrap .lpv-carousel__viewport {
    overflow: hidden;
    border-radius: var(--lpv-radius);
}

.geovi-lpv-carousel-wrap .lpv-carousel__track {
    display: flex;
    width: calc(100% * var(--lpv-slide-count, 1));
    transition: transform 0.45s ease;
    will-change: transform;
}

.geovi-lpv-carousel-wrap .lpv-carousel__slide {
    flex: 0 0 calc(100% / var(--lpv-slide-count, 1));
    box-sizing: border-box;
}

.geovi-lpv-carousel-wrap .lpv-carousel__image {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 12px;
    box-shadow: 0 16px 40px rgba(52, 55, 44, 0.12);
}

.geovi-lpv-carousel-wrap .lpv-carousel__nav {
    position: absolute;
    top: 50%;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    margin-top: -23px;
    padding: 0;
    border: none;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.96);
    color: var(--lpv-accent);
    font-size: 26px;
    font-weight: 700;
    line-height: 1;
    cursor: pointer;
    box-shadow: 0 8px 24px rgba(52, 55, 44, 0.16);
    transition: transform 160ms ease-out, background 160ms ease-out, color 160ms ease-out;
}

.geovi-lpv-carousel-wrap .lpv-carousel__nav:hover {
    transform: translateY(-1px);
    background: #fff;
    color: var(--lpv-orange);
}

.geovi-lpv-carousel-wrap .lpv-carousel__nav--prev {
    left: -18px;
}

.geovi-lpv-carousel-wrap .lpv-carousel__nav--next {
    right: -18px;
}

.geovi-lpv-carousel-wrap .lpv-carousel__dots {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 18px;
}

.geovi-lpv-carousel-wrap .lpv-carousel__dot {
    width: 12px;
    height: 12px;
    padding: 0;
    border: none;
    border-radius: 3px;
    background: rgba(95, 107, 79, 0.28);
    cursor: pointer;
    transition: transform 160ms ease-out, background 160ms ease-out;
}

.geovi-lpv-carousel-wrap .lpv-carousel__dot.is-active {
    background: var(--lpv-orange);
    transform: scale(1.1);
}

.geovi-lpv-carousel-wrap__buy {
    display: flex;
    justify-content: center;
    margin-top: 24px;
}

.geovi-lpv-carousel-buy {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    font-weight: 800;
    font-size: 15px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    text-decoration: none;
    border-radius: 999px;
    padding: 18px 38px;
    border: none;
    cursor: pointer;
    background: linear-gradient(90deg, var(--lpv-orange), var(--lpv-coral));
    color: #fff;
    box-shadow: 0 10px 28px rgba(239, 65, 35, 0.28);
    transition: transform 160ms ease-out, box-shadow 160ms ease-out;
}

.geovi-lpv-carousel-buy:hover {
    transform: translateY(-2px);
    color: #fff;
}

@media (min-width: 961px) {
    .geovi-lpv-carousel-wrap {
        width: min(1280px, calc(100vw - 48px));
        max-width: none;
    }

    .geovi-lpv-carousel-wrap .lpv-carousel {
        max-width: 100%;
        width: 100%;
    }

    .geovi-lpv-carousel-wrap .lpv-carousel__track {
        width: calc(100% * var(--lpv-slide-count, 1) / var(--lpv-per-page-desktop));
    }

    .geovi-lpv-carousel-wrap .lpv-carousel__slide {
        padding: 0 8px;
    }

    /* Na LP o carrossel pode ultrapassar a coluna estreita do texto */
    .lpv-container--narrow .geovi-lpv-carousel-wrap {
        width: min(1280px, calc(100vw - 48px));
        margin-left: 50%;
        transform: translateX(-50%);
    }

    .geovi-lpv-carousel-wrap .lpv-carousel__nav--prev {
        left: 4px;
    }

    .geovi-lpv-carousel-wrap .lpv-carousel__nav--next {
        right: 4px;
    }
}

@media (max-width: 960px) {
    .geovi-lpv-carousel-wrap .lpv-carousel__nav--prev {
        left: 8px;
    }

    .geovi-lpv-carousel-wrap .lpv-carousel__nav--next {
        right: 8px;
    }
}

/* Landing page: herda tokens e mantém espaçamento da seção intro */
.lpv-landing .geovi-lpv-carousel-wrap .lpv-carousel {
    margin-top: 40px;
}
