.section__items__container.youtube__playlist__container {
    --_dot__selected__color: #C24740;
    --_dot__color: #CED8D8;
    --detail-medium-contrast: rgb(234, 234, 234);
    --text-high-contrast-rgb-value: 49, 49, 49;
    --detail-high-contrast: rgb(192, 192, 192);
    display: grid;

    &:has(>.now__loading) {
        display: grid;
        place-items: center
    }

    .device-type-desktop & {
        --slide-height: 100%;
        --slide-spacing: .5rem;
        --slide-top: 50px;
        --slide-top-minus: -50px;
        --slide-size: calc(100% / 3);
        --dot-size: 13px;
        --dot-gap: 8px;
        --dot-margin: 0 5px;
        --arrow-before: 8px;
        --arrow-after: 0;
        --_chevron__w: 43px;
        --_chevron__h: 82px;
        --_icon-size: 54px;
        gap: 24px;
        padding: 0
    }

    .device-type-mobile & {
        --slide-height: 100%;
        --slide-spacing: calc(8vw / var(--_mbw));
        --slide-top: calc(30vw / var(--_mbw));
        --slide-top-minus: calc(-30vw / var(--_mbw));
        --slide-size: 50%;
        --dot-size: calc(8vw / var(--_mbw2));
        --dot-gap: calc(8vw / var(--_mbw2));
        --_chevron__w: calc(24vw / var(--_mbw));
        --dot-margin: 0 calc(3vw / var(--_mbw2));
        --_chevron__h: calc(45vw / var(--_mbw));
        --_icon-size: calc(37vw / var(--_mbw2));
        gap: calc(16vw / var(--_mbw2));
        padding: 0
    }
}

.youtube__playlist__loading {
    color: #00000080;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 1rem;
    min-height: 4rem;

    .spinner {
        display: flex;
        flex-wrap: nowrap;
        justify-content: center;
        align-items: center;
        gap: .5rem
    }

    .spinner>div {
        --_size: .75rem;
        width: var(--_size);
        height: var(--_size);
        background-color: currentColor;
        border-radius: 100%;
        display: inline-block;
        animation: sk-bouncedelay 1.4s infinite ease-in-out both
    }

    .spinner .bounce1 {
        -webkit-animation-delay: -.32s;
        animation-delay: -.32s
    }

    .spinner .bounce2 {
        -webkit-animation-delay: -.16s;
        animation-delay: -.16s
    }

    .youtube__playlist__loading__text {
        font-size: 1rem;
        color: currentColor
    }
}

@-webkit-keyframes sk-bouncedelay {

    0%,
    80%,
    to {
        -webkit-transform: scale(0)
    }

    40% {
        -webkit-transform: scale(1)
    }
}

@keyframes sk-bouncedelay {

    0%,
    80%,
    to {
        -webkit-transform: scale(0);
        transform: scale(0)
    }

    40% {
        -webkit-transform: scale(1);
        transform: scale(1)
    }
}

.youtube__playlist__items {
    max-width: 680px;
    margin: auto;
    position: relative;
    width: 100%;

    /* PC：前へボタン */

    .device-type-desktop & .youtube__playlist__button--prev {
        position: absolute;
        top: 50%;
        left: -12px;
        transform: translate(50%, -50%) rotate(180deg);
        width: 32px;
        height: 32px;
        background-image: url(../common-img/icon_arrow_right.svg);
        background-size: 32px 32px;
        opacity: 0;
        transition: opacity .5s ease-out, transform .5s ease-out;

        svg {
            display: none;
        }
    }

    .device-type-desktop &:hover .youtube__playlist__button--prev {
        opacity: 1;
        transform: translate(0, -50%) rotate(180deg);
    }

    /* PC：次へボタン */

    .device-type-desktop & .youtube__playlist__button--next {
        position: absolute;
        top: 50%;
        right: -12px;
        transform: translate(-50%, -50%);
        width: 32px;
        height: 32px;
        background-image: url(../common-img/icon_arrow_right.svg);
        background-size: 32px 32px;
        opacity: 0;
        transition: opacity .5s ease-out, transform .5s ease-out;

        svg {
            display: none;
        }
    }

    .device-type-desktop &:hover .youtube__playlist__button--next {
        opacity: 1;
        transform: translate(0, -50%);
    }

    /* SP：前へボタン */

    .device-type-mobile & .youtube__playlist__button--prev {
        position: absolute;
        top: 50%;
        left: calc(-22 * 100vw / 390);
        transform: translate(50%, -50%) rotate(180deg);
        width: calc(24 * 100vw / 390);
        height: calc(24 * 100vw / 390);
        background-image: url(../common-img/icon_arrow_right.svg);
        background-size: calc(24 * 100vw / 390) calc(24 * 100vw / 390);
        transition: opacity .5s ease-out, transform .5s ease-out;

        svg {
            display: none;
        }

    }

    /* SP：次へボタン */

    .device-type-mobile & .youtube__playlist__button--next {
        position: absolute;
        top: 50%;
        right: calc(-22 * 100vw / 390);
        transform: translate(-50%, -50%);
        width: calc(24 * 100vw / 390);
        height: calc(24 * 100vw / 390);
        background-image: url(../common-img/icon_arrow_right.svg);
        background-size: calc(24 * 100vw / 390) calc(24 * 100vw / 390);
        transition: opacity .5s ease-out, transform .5s ease-out;

        svg {
            display: none;
        }

    }
}

.youtube__playlist__viewport {
    overflow: hidden;
    margin-top: var(--slide-top-minus)
}

.youtube__playlist__items__container {
    display: flex;
    touch-action: pan-y pinch-zoom;
    margin-left: calc(var(--slide-spacing) * -1)
}

.youtube__playlist__slide {
    transform: translateZ(0);
    flex: 0 0 var(--slide-size);
    min-width: 0;
    padding-left: var(--slide-spacing);
    padding-top: var(--slide-top);

    .device-type-mobile & {
        width: 100%
    }
}

.youtube__playlist__slide__number {
    font-size: 4rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    height: var(--slide-height);
    user-select: none;
    position: relative;
    background-color: #000;

    .device-type-desktop & {
        &.external-link {
            &:hover {
                .youtube__playlist__slide__thumb {
                    opacity: 1
                }
            }
        }
    }

    .youtube__playlist__slide__thumb {
        width: 100%;
        height: auto;
        opacity: .6;
        transition: .6s
    }

    .youtube__playlist__play__icon {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        z-index: 2;
        width: var(--_icon-size);
        height: var(--_icon-size);
    }

    >svg {
        .device-type-desktop & {
            --_size: 4rem
        }

        .device-type-mobile & {
            --_size: 3rem
        }

        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        width: var(--_size);
        height: var(--_size);
        fill: #fff;
        z-index: 2
    }
}

.youtube__playlist__controls {
    display: grid;
    grid-template-columns: auto 1fr;
    justify-content: space-between;
    gap: 1.2rem;
    margin-top: 1.8rem
}

.youtube__playlist__buttons {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: .6rem;
    align-items: center
}

.youtube__playlist__button {
    -webkit-tap-highlight-color: rgba(var(--text-high-contrast-rgb-value), .5);
    -webkit-appearance: none;
    appearance: none;
    background-color: transparent;
    touch-action: manipulation;
    display: inline-flex;
    text-decoration: none;
    cursor: pointer;
    border: 0;
    padding: 0;
    margin: 0;
    box-shadow: inset 0 0 0 .2rem var(--detail-medium-contrast);
    width: var(--button-size);
    height: var(--button-size);
    z-index: 1;
    border-radius: 50%;
    color: var(--text-body);
    display: flex;
    align-items: center;
    justify-content: center
}

.youtube__playlist__button:disabled {
    color: var(--detail-high-contrast)
}

.youtube__playlist__button__svg {
    color: #191e28
}

.youtube__playlist__dots {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: var(--dot-gap) 0
}

.youtube__playlist__dot {
    -webkit-appearance: none;
    appearance: none;
    background-color: var(--_dot__color);
    touch-action: manipulation;
    display: inline-flex;
    text-decoration: none;
    cursor: pointer;
    border: 0;
    padding: 0;
    margin: var(--dot-margin);
    width: var(--dot-size);
    height: var(--dot-size);
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%
}

.youtube__playlist__dot:after {
    width: var(--dot-size);
    height: var(--dot-size);
    border-radius: 50%;
    display: flex;
    align-items: center;
    content: ""
}

.youtube__playlist__dot--selected:after {
    background-color: var(--_dot__selected__color)
}