.fg-group-carousel-widget {
    --fgc-card-w: 180px;
    --fgc-card-w-desktop: 240px;
    --fgc-gap: 1.5rem;
    --fgc-gap-desktop: 2.5rem;
    --fgc-duration: 40s;
    position: relative;
    width: 100%;
    overflow: hidden;
}

.fg-group-carousel-widget .fgc-header {
    padding: 1rem 0;
    margin-bottom: 1rem;
}

.fg-group-carousel-widget .fgc-title {
    font-weight: bold;
    color: var(--theme-color);
    margin-bottom: 0.5rem;
    line-height: 1.4;
}

.fg-group-carousel-widget .fgc-subtitle {
    color: var(--muted-2-color);
    margin: 0;
    line-height: 1.6;
}

.fg-group-carousel-widget .fgc-main {
    width: 100%;
    padding: 0.5rem 0;
}

.fg-group-carousel-widget .fgc-row {
    position: relative;
    overflow: hidden;
    margin-bottom: 1rem;
}

.fg-group-carousel-widget .fgc-row:last-child {
    margin-bottom: 0;
}

.fg-group-carousel-widget .fgc-track {
    display: flex;
    width: max-content;
    will-change: transform;
    animation: fgc-scroll-left var(--fgc-duration, 40s) linear infinite;
    animation-play-state: paused;
}

.fg-group-carousel-widget .fgc-dir-right .fgc-track {
    animation-name: fgc-scroll-right;
}

.fg-group-carousel-widget .fgc-track[data-fgc-ready] {
    animation-play-state: running;
}

.fg-group-carousel-widget .fgc-row:hover .fgc-track {
    animation-play-state: paused;
}

.fg-group-carousel-widget .fgc-group {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: stretch;
    width: max-content !important;
    min-width: max-content !important;
    max-width: none !important;
    gap: var(--fgc-gap);
    padding: 0 var(--fgc-gap) 0 0 !important;
    margin: 0 !important;
    overflow: visible !important;
    flex-shrink: 0;
}

.fg-group-carousel-widget .fgc-group.links-box:not(.zib-widget):not(.links-style-simple):not(.links-style-image) {
    margin: 0 !important;
}

.fg-group-carousel-widget .author-minicard {
    display: block;
    flex: 0 0 var(--fgc-card-w) !important;
    width: var(--fgc-card-w) !important;
    min-width: var(--fgc-card-w) !important;
    max-width: var(--fgc-card-w) !important;
    margin: 0 !important;
}

.fg-group-carousel-widget .author-minicard .list-inline {
    width: 100%;
}

@media (min-width: 768px) {
    .fg-group-carousel-widget .fgc-header {
        padding: 1.5rem 0;
        margin-bottom: 1.5rem;
    }

    .fg-group-carousel-widget .fgc-main {
        padding: 1rem 0;
    }

    .fg-group-carousel-widget .fgc-row {
        margin-bottom: 1.5rem;
    }

    .fg-group-carousel-widget .fgc-group {
        gap: var(--fgc-gap-desktop);
        padding-right: var(--fgc-gap-desktop) !important;
    }

    .fg-group-carousel-widget .author-minicard {
        flex-basis: var(--fgc-card-w-desktop) !important;
        width: var(--fgc-card-w-desktop) !important;
        min-width: var(--fgc-card-w-desktop) !important;
        max-width: var(--fgc-card-w-desktop) !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    .fg-group-carousel-widget .fgc-track {
        animation: none !important;
        transform: none !important;
    }
}

@keyframes fgc-scroll-left {
    from {
        transform: translate3d(0, 0, 0);
    }

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

@keyframes fgc-scroll-right {
    from {
        transform: translate3d(var(--fgc-shift, -50%), 0, 0);
    }

    to {
        transform: translate3d(0, 0, 0);
    }
}
