.xSlider {
    --side-pad: 20px;
    --card-gap: 20px;
    --card-width: calc(
        (100vw - var(--side-pad) - var(--side-pad) - var(--card-gap) - var(--card-gap)) / 2.35
    );

    margin-top: 20px;
    overflow: hidden;
    padding: 0 var(--side-pad);

    h3 {
        color: #222;
        font-size: 18px;
        font-weight: 600;
        margin: 10px 0;
        float: left;
        max-width: 80%;
    }

    nav {
        float: right;
        white-space: nowrap;
        margin: 0 0 10px 0;

        a {
            display: inline-block;
            position: relative;
            width: 34px;
            height: 34px;
            border-radius: 50%;
            border: none;
            background: #f1f1f1;
            color: #222;
            vertical-align: top;

            svg {
                width: 17px;
                height: 17px;
                margin: 8px;
                stroke: currentColor;
                stroke-width: 2.25;
                stroke-linecap: round;
                stroke-linejoin: round;
                fill: none;
            }
        }

        a.disabled {
            color: #c4c4c4;
            background: #f7f7f7;
            cursor: default;
        }

        a:active {
            background: #e5e5e5;
        }

        a.disabled:active {
            background: #f7f7f7;
        }
    }

    .slide {
        clear: both;
        display: flex;
        gap: var(--card-gap);
        margin: 0 calc(-1 * var(--side-pad));
        overflow-x: auto;
        scroll-behavior: smooth;
        scrollbar-width: none;
        -ms-overflow-style: none;
        padding: 0 var(--side-pad) 8px;
        scroll-padding-inline: var(--side-pad);
        -webkit-overflow-scrolling: touch;
        overscroll-behavior-x: contain;

        &::-webkit-scrollbar {
            display: none;
        }

        > a {
            flex: 0 0 var(--card-width);
            display: block;
            text-decoration: none;
        }
    }
}

@media (min-width: 1200px) {
    .xSlider {
        --card-width: calc(
            (
                100%
                - var(--card-gap)
                - var(--card-gap)
                - var(--card-gap)
                - var(--card-gap)
            ) / 5
        );

        .slide {
            margin: 0;
            padding: 0 0 8px;
            scroll-padding-inline: 0;
        }
    }
}

@media (max-width: 1199px) {
    .xSlider {
        --card-width: 260px;

        .slide {
            scroll-snap-type: x mandatory;

            > a {
                scroll-snap-align: start;
            }

            > a:last-child {
                scroll-snap-align: end;
            }
        }
    }
}

@media (max-width: 539px) {
    .xSlider {
        .slide > a {
            scroll-snap-stop: always;
        }
    }
}