.yoguini-reviews {
    --yg-review-gap: 24px;
    --yg-review-card-width: 280px;
    --yg-review-card-height: 260px;
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    overflow: hidden;
}

.yoguini-reviews *,
.yoguini-reviews *::before,
.yoguini-reviews *::after {
    box-sizing: border-box;
}

.yoguini-reviews__viewport {
    width: 100%;
    overflow: hidden;
    padding: 22px 0 30px;
}

.yoguini-reviews__track {
    display: flex;
    width: max-content;
    margin-left: calc(var(--yg-review-card-width) / -2);
    will-change: transform;
    animation: yoguini-review-scroll var(--yg-review-duration) linear infinite;
}

.yoguini-reviews__group {
    display: flex;
    flex: none;
    gap: var(--yg-review-gap);
    padding-right: var(--yg-review-gap);
}

.yoguini-review-card {
    display: flex;
    flex: 0 0 var(--yg-review-card-width);
    flex-direction: column;
    width: var(--yg-review-card-width);
    height: var(--yg-review-card-height);
    min-width: 0;
    padding: 28px;
    overflow: hidden;
    border: 1px solid var(--yg-review-border-color);
    border-radius: var(--yg-review-border-radius);
    background: var(--yg-review-card-background);
    box-shadow: 0 12px 28px rgba(45, 35, 27, 0.08);
    color: inherit;
    text-align: left;
    text-decoration: none;
    transition: box-shadow 180ms ease, transform 180ms ease;
}

a.yoguini-review-card:hover,
a.yoguini-review-card:focus-visible {
    box-shadow: 0 16px 34px rgba(45, 35, 27, 0.14);
    color: inherit;
    text-decoration: none;
    transform: translateY(-2px);
}

a.yoguini-review-card:focus-visible {
    outline: 3px solid var(--yg-review-star-color);
    outline-offset: 3px;
}

.yoguini-review-card__stars {
    flex: none;
    margin-bottom: 14px;
    overflow: hidden;
    color: var(--yg-review-star-color);
    font-family: Arial, sans-serif;
    font-size: var(--yg-review-star-size);
    font-weight: 400;
    line-height: 1;
    letter-spacing: 0.08em;
    white-space: nowrap;
}

.yoguini-review-card__name {
    flex: none;
    margin-bottom: 12px;
    overflow: hidden;
    color: var(--yg-review-name-color);
    font-family: var(--yg-review-name-font);
    font-size: var(--yg-review-name-size);
    font-weight: 700;
    line-height: 1.25;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.yoguini-review-card__text {
    display: -webkit-box;
    flex: 1 1 auto;
    overflow: hidden;
    color: var(--yg-review-text-color);
    font-family: var(--yg-review-text-font);
    font-size: var(--yg-review-text-size);
    line-height: 1.55;
    text-overflow: ellipsis;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 6;
}

.yoguini-reviews:hover .yoguini-reviews__track,
.yoguini-reviews:focus-within .yoguini-reviews__track,
.yoguini-reviews.is-offscreen .yoguini-reviews__track {
    animation-play-state: paused;
}

@keyframes yoguini-review-scroll {
    from {
        transform: translate3d(0, 0, 0);
    }

    to {
        transform: translate3d(-50%, 0, 0);
    }
}

@media (max-width: 959px) {
    .yoguini-reviews {
        --yg-review-gap: 18px;
    }
}

@media (max-width: 639px) {
    .yoguini-reviews {
        --yg-review-gap: 14px;
        --yg-review-card-height: 250px;
    }

    .yoguini-review-card {
        padding: 24px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .yoguini-reviews__viewport {
        overflow-x: auto;
        scroll-snap-type: x mandatory;
    }

    .yoguini-reviews__track {
        margin-left: 0 !important;
        animation: none;
        transform: none;
    }

    .yoguini-review-card {
        scroll-snap-align: center;
        transition: none;
    }

    .yoguini-reviews__group[aria-hidden="true"] {
        display: none;
    }
}
