#supertaikyu_nurburgring {
    .race_wrap {
        display: flex;
        flex-direction: column;
        font-weight: 700;
        overflow: clip;
        font-feature-settings: 'palt';
    }
    #liveMovieNavi a {
        padding: 20px;
    }
    .supertaikyu {
        background: #e4eaea url(./images/24h_race_2026/texture_blue_gray.jpg) repeat center 0;
        background-size: 9.6rem auto;
        position: relative;
        --theme-color: var(--color-blue);
    }
    .supertaikyu::before {
        content: '';
        position: absolute;
        bottom: 0;
        right: 0;
        background-color: var(--theme-color);
        mix-blend-mode: multiply;
        clip-path: polygon(100% 0, 0% 100%, 100% 100%);
    }
    @media screen and (min-width:641px) {
        .supertaikyu {
            padding-bottom: 12rem;
        }
        .supertaikyu::before {
            width: 90rem;
            height: 60rem;
        }
    }
    @media screen and (max-width:640px) {
        .supertaikyu {
            padding-bottom: 8rem;
        }
        .supertaikyu::before {
            width: 30rem;
            height: 20rem;
        }
    }

    .nurburgring {
        background: var(--color-black) url(./images/24h_race_2026/texture_black.jpg);
        background-size: 9.6rem auto;
        --theme-color: var(--color-yellow);
    }
    @media screen and (min-width:641px) {
    }
    @media screen and (max-width:640px) {
    }

    /* kv */
    .kv_inner {
        width: 90%;
        max-width: 1150px;
        margin-inline: auto;
    }

    .race_inner {
        width: 90%;
        margin: auto;
        max-width: 1150px;
    }

    /* tab */
    .tab_contents {
        display: flex;
        padding: 4px;
    }

    .tablist {
        display: flex;
        flex-direction: column;
        width: 22%;
        justify-content: space-between;
    }
    .tab {
        display: flex;
        flex-wrap: nowrap;
        background: #61818E;
        position: relative;
        cursor: pointer;
    }
    .tab.is_disabled {
        pointer-events: none;
    }
    .tab.is_disabled::after {
        content: '';
        display: block;
        position: absolute;
        inset: 0;
        background: rgb(0 0 0 / 50%);
        transition: opacity .3s;
    }
    .tab:hover::after,
    .tab.is_active::after {
        opacity: 0;
    }
    .tab.is_active::before {
        content: '';
        position: absolute;
        margin: auto;
        background-color: var(--theme-color);
    }

    .tab_ttl {
        text-align: center;
        padding-top: 5%;
        padding-inline: 2.5%;
    }
    .tab_img {
        flex: 1;
    }
    .tab.is_active .tab_ttl {
        background-color: var(--theme-color);
    }
    .nurburgring .tab path { 
        fill: var(--color-white);
    }
    .nurburgring .tab.is_active path {
        fill: var(--color-black);
    }

    .tabpanel_wrapper {
        width: 78%;
    }
    .tabpanel iframe {
        width: 100%;
        height: auto;
        aspect-ratio: 888/500;
    }
    [role='tabpanel']:target {
        display: revert;
    }
    /* 選択中のタブのスタイル */
    [role='tab'][aria-selected='true'] {
        background-color: var(--theme-color);
    }
    [role='tabpanel'] {
        opacity: 0;
        transition: opacity 0.8s ease;
    }
    [role="tabpanel"]:not([hidden]) {
        opacity: 1;
    }

    @media (any-hover: hover) {
        [role='tab']:not([aria-selected='true']):hover {
            /* 非選択のタブのホバースタイル */
            opacity: .7;
        }
    }

    .youtubeMovie {
        display: flex;
        background: #000;
        padding: 0.4rem;
    }
    .movieArea {
        width: 78%;
    }
    .liveMovieNavi {
        display: flex;
        justify-content: space-between;
    }
    .movieArea iframe {
        width: 100%;
        height: auto;
        aspect-ratio: 888/500;
    }
    @media screen and (min-width:641px) {
        .youtubeMovie {
            margin-top: 4.8rem;
        }
        .liveMovieNavi {
            flex-direction: column;
        }
        #supertaikyu_kv .liveMovieNavi {
            justify-content: flex-start;
            gap: min(8px, calc(8 / 1150 * 100vw));
        }
        .tab.is_active::before {
            top: 0;
            bottom: 0;
            right: 99.9%;
            width: 10px;
            height: 12px;
            clip-path: polygon(100% 0, 0 50%, 100% 100%);
        }
        .tablist {
            padding-left: 13px;
        }
        .tab_ttl {
            width: 12.2%;
        }
    }
    @media screen and (max-width:640px) {
        .youtubeMovie {
            flex-direction: column;
            margin-top: calc(297 / 390 * 100vw);
        }
        .movieArea {
            width: 100%;
        }
        .liveMovieNavi {
            flex-direction: row;
            justify-content: flex-start;
        }
        .tablist {
            width: 100%;
            gap: 0 7px;
            padding-top: 14px;
        }
        .tab {
            flex-direction: column;
            width: calc((100% - (7px * 3))  / 4);
        }
        .tab.is_active::before {
            bottom: 99.9%;
            width: 10px;
            height: 8px;
            left: 0;
            right: 0;
            clip-path: polygon(50% 0, 0 100%, 100% 100%);
        }
        [class].tab_ttl img {
            width: auto;
        }
    }

    .section_inner {
        width: 90%;
        max-width: 1150px;
        margin-inline: auto;
        position: relative;
        z-index: 1;
    }

    /* timetable */
    .timetable {
        position: relative;
    }
    .timetable::before {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 810px;
        mask-image: linear-gradient(to top, #00000000 0%, #000000 40%, #000000 100%);
    }
    .timetable_supertaikyu::before {
        background: url(./images/24h_race_2026/bg_taikyu_timetable.webp?v=1) no-repeat center top;
        background-size: 100% auto;
    }
    .timetable_nurburgring {
        background: var(--color-black);
    }
    .timetable_nurburgring::before {
        background: url(./images/24h_race_2026/bg_nur_timetable.webp) no-repeat center top;
        background-size: 100% auto;
    }
    .timetable_inner {
        width: 90%;
        max-width: 1150px;
        margin-inline: auto;
        position: relative;
        z-index: 1;
    }
    .timetable .section_ttl_jp {
        background-color: var(--color-black);
        color: var(--color-white);
    }
    .timetable_txt {
        text-align: center;
        color: var(--color-white);
    }
    .timetable_cs {
        position: relative;
        pointer-events: none;
    }
    .timetable_cs::after {
        content: '';
        display: block;
        position: absolute;
        inset: 0;
        background: rgba(255, 255, 255, 0.5);
        z-index: 2;
    }
    .timetable_cs_txt {
        position: absolute;
        top: 50%;
        left: 0;
        width: 100%;
        text-align: center;
        font-size: 6rem;
        color: var(--color-black);
        z-index: 3;
        line-height: 1;
        text-transform: uppercase;
        translate: 0 -50%;
    }
    @media screen and (max-width:640px) {
        .timetable_cs_txt {
            font-size: 4rem;
        }
        .timetable_supertaikyu {
            background: url(./images/24h_race_2026/texture_black.jpg) repeat center top / 9.6rem auto;
        }
        #supertaikyu .timetable_supertaikyu .timetable_note {
            color: var(--color-white);
        }
    }

    .race_wrap .timetable_btn {
        border: none;
        cursor: pointer;
        padding: 0;
        background-color: var(--theme-color);
        position: relative;
        width: 100%;
        display: flex;
        align-items: center;
    }
    .timetable_btn::after {
        content: '';
        position: absolute;
        margin: auto;
        clip-path: polygon(100% 0, 0 0, 50% 100%);
    }
    .is_open .timetable_btn::after {
        rotate: 180deg;
    }
    .timetable_btn_area {
        position: relative;
    }
    .timetable_btn_inner {
        display: flex;
        align-items: center;
        padding: 2.5rem 0;
    }
    .timetable_btn_img {
        width: 50%;
        line-height: 1;
        vertical-align: bottom;
    }

    .timetable_supertaikyu.is_open .timetable_btn {
        background-color: var(--color-black);
    }
    .timetable_supertaikyu .timetable_btn::after {
        background-color: var(--color-white);
    }
    .timetable_supertaikyu .timetable_btn_day {
        fill: var(--color-white);
    }

    .timetable_nurburgring.is_open .timetable_btn {
        background-color: var(--color-black);
    }
    .timetable_nurburgring .timetable_btn::after {
        background-color: var(--color-black);
    }
    .timetable_nurburgring.is_open .timetable_btn::after {
        background-color: var(--color-white);
    }
    .timetable_nurburgring .timetable_btn_day {
        fill: var(--color-black);
    }

    .is_open .timetable_btn_day {
        fill: var(--color-white);
    }
    .timetable_content {
        overflow: hidden;
        display: none;
    }
    .timetable_note {
        text-align: center;
        position: absolute;
        left: 0;
        width: 100%;
    }
    .timetable_supertaikyu .timetable_note {
        color: var(--color-black);
    }
    .timetable_nurburgring .timetable_note {
        color: var(--color-white);
    }

    @media screen and (min-width:641px) {
        .timetable {
            padding-top: 12rem;
            padding-bottom: 12rem;
        }
        .timetable.is_open {
            padding-bottom: 18rem;
        }
        .timetable_btn::after {
            width: 2rem;
            height: 1.6rem;
            top: 0;
            bottom: 0;
            right: 3.2rem;
        }
        .race_wrap .timetable_btn {
            padding: 2.25rem 0;
        }
        .timetable_txt {
            font-size: 2.4rem;
            margin-top: 8rem;
        }
        .timetable_btn_area {
            margin-top: 8rem;
        }
        .timetable_note {
            font-size: 1.4rem;
            bottom: -5rem;
        }
    }
    @media screen and (max-width:640px) {
        .timetable {
            padding-top: 8.8rem;
            padding-bottom: 8rem;
        }
        .timetable.is_open {
            padding-bottom: 11.4rem;
        }
        .timetable_supertaikyu::before {
            background-image: url(./images/24h_race_2026/bg_taikyu_timetable_sp.webp?v=1);
        }
        .timetable_nurburgring::before {
            background-image: url(./images/24h_race_2026/bg_nur_timetable_sp.webp);
        }
        .timetable_btn::after {
            width: 1.6rem;
            height: 1.2rem;
            bottom: 0.8rem;
            left: 0;
            right: 0;
        }
        .race_wrap .timetable_btn {
            padding: 3rem 0;
        }
        .timetable_btn_img svg {
            width: 37.6%;
            height: auto;
        }
        [class].timetable_ttl {
            width: calc(171 / 390 * 100%);
        }
        .timetable_txt {
            font-size: 1.6rem;
            line-height: 1.75;
            margin-top: 4rem;
            width: 110%;
            margin-left: -5%;
        }
        .timetable_btn_area {
            margin-top: 4rem;
        }
        .timetable_note {
            font-size: 1.2rem;
            bottom: -3rem;
        }
    }

    /* xBanner */
    .xBanner {
        background: #e4eaea url(./images/24h_race_2026/texture_black.jpg) repeat center 0;
        background-size: 9.6rem auto;
    }
    .xBanner_nurburgring {
        background: var(--color-black) url(./images/24h_race_2026/texture_black.jpg) repeat center 0;
        background-size: 9.6rem auto;
    }
    .xBanner_link {
        max-width: 980px;
        margin-inline:auto;
        display: block;
    }
    @media screen and (min-width:641px) {
        .xBanner {
            padding: 4rem 8.5rem;
        }
    }
    @media screen and (max-width:640px) {
        .xBanner {
            padding-block: 4rem;
        }
        .xBanner_link {
            width: 90%;
        }
    }

    .supertaikyu_kv {
        background: no-repeat center 50%;
        background-size: cover;
    }
    .nurburgring_kv {
        background: no-repeat center 20%;
        background-size: cover;
    }

    .race_wrap img {
        width: 100%;
        height: auto;
    }
    .race_wrap button {
        font-family: 'Noto Sans JP', sans-serif; 
        font-weight: inherit;
    }

    .supertaikyu_section,
    .nurburgring_section {
        position: relative;
        z-index: 1;
    }
    .section_ttl_area {
        display: flex;
        justify-content: space-between;
        align-items: center;
        flex-wrap: wrap;
        flex-direction: row-reverse;
        gap: 4rem;
    }
    .section_ttl_en {
        position: relative;
    }
    .section_ttl_en::after {
        content: '';
        position: absolute;
        bottom: 0;
        left: 0;
        width: 100%;
        background-color: var(--theme-color);
    }
    .supertaikyu_section .section_ttl_jp {
        background-color: var(--color-black);
        color: var(--color-white);
    }
    .nurburgring_section .section_ttl_jp {
        background-color: var(--color-white);
        color: var(--color-black);
    }
    .nurburgring_section_circuit {
        background:#000 no-repeat center top;
        background-size: cover;
    }
    .nurburgring_circuit_movie_main {
        margin-inline: auto;
    }
    .nurburgring_circuit_movie_main iframe {
        width: 100%;
        height: auto;
        aspect-ratio: 888 / 500;
    }
    .nurburgring_section_special {
        background:#3289C0 no-repeat center bottom;
        background-size: cover;
        position: relative;
    } 

    .nurburgring_special_wrap {
        display: flex;
    }
    .nurburgring_special_movie_list {
        display: flex;
        flex-direction: column;
    }
    .nurburgring_special_movie_main iframe {
        width: 100%;
        height: auto;
        aspect-ratio: 888 / 500;
    }
    .nurburgring_special_movie_link {
        position: relative;
        overflow: hidden;
        display: block;
    }
    .nurburgring_special_movie_link::after {
        content: '';
        position: absolute;
        display: block;
        top: 50%;
        left: 50%;
        translate: -50% -50%;
        background: url(./images/24h_race_2026/icon_play.svg) no-repeat center center / contain;
        z-index: 1;
    }
    .nurburgring_article_video {
        position: relative;
    }
    .nurburgring_article_video::before {
        content: '';
        position: absolute;
        display: block;
        top: 0;
        left: 0;
        background: var(--color-yellow) url(./images/24h_race_2026/texture_yellow.jpg) repeat center 0;
        background-size: 9.6rem auto;
        clip-path: polygon(100% 0, 0 0, 0 100%);
    }
    .nurburgring_loop {
        display: flex;
        overflow: hidden;
    }
    .nurburgring_loop_list {
        display: flex;
        animation: loop-list 80s linear infinite;
    }
    @media screen and (min-width:641px) {
        .section_ttl_en::after {
            height: 0.8rem;
        }
        .section_ttl_en {
            padding-bottom: 2.3rem;
        }
        .section_ttl_jp {
            font-size: 2.4rem;
            padding: 0.6rem 1.6rem;
        }
        .nurburgring_article_video {
            padding-block: 12rem;
        }
        .supertaikyu_section,
        .nurburgring_section + .nurburgring_section {
            margin-top: 12rem;
        }
        .nurburgring_section_circuit {
            background-image: url(./images/24h_race_2026/bg_nur_circuit.webp);
            padding-block: 12rem 12.4rem;
        }
        .nurburgring_circuit_movie_main {
            max-width: 88.8rem;
            margin-top: 2.8rem;
        }
        [class].nurburgring_section_special {
            margin-top: 0;
            padding-block: 12rem;
            background-image: url(./images/24h_race_2026/bg_nur_special.webp) ;
        }
        [class].nurburgring_section_short {
            margin-top: 0;
        }
        .nurburgring_special_wrap {
            justify-content: space-between;
            margin-top: 2.8rem;
        }
        .nurburgring_special_movie_main {
            width: min(881px, calc(881 / 1150 * 100vw));
            aspect-ratio: 16 / 9;
        }
        .nurburgring_special_movie_list {
            gap: 0.8rem 0;
            width: 18.5%;
        }
        .nurburgring_special_movie_link::after {
            width: 4rem;
            height: 4rem;
        }
        .nurburgring_article_video::before {
            width: 60rem;
            height: 40rem;
        }
        .nurburgring_loop_list > li {
            width: 45rem;
        }
        .supertaikyu_kv {
            padding-top: 7.2rem;
            padding-bottom: 6rem;
            background-image: url(./images/24h_race_2026/bg_taikyu.webp);
        }
        .nurburgring_kv {
            padding-top: 7.2rem;
            padding-bottom: 6rem;
            background-image:  url(./images/24h_race_2026/bg_nur.webp);
        }
        .content_list_area_article,
        .content_list_area_video {
            margin-top: 8rem;
        }
        @media(hover:hover){
            .nurburgring_special_movie_img {
                transition: scale .3s;
            }
            .nurburgring_special_movie_link:hover .nurburgring_special_movie_img {
                scale: 1.05;
            }
        }
    }
    @media screen and (max-width:640px) {
        .section_ttl_area {
            flex-direction: column;
            align-items: flex-start;
        }
        .section_ttl_en {
            width: 105.5%;
            padding-bottom: 1.7rem;
        }
        .section_ttl_en::after {
            height: 0.4rem;
        }
        .section_ttl_jp {
            font-size: 1.8rem;
            padding: 0.2rem 0.8rem;
        }
        .nurburgring_article_video {
            padding-block: 8rem;
        }
        .supertaikyu_section,
        .nurburgring_section + .nurburgring_section {
            margin-top: 8rem;
        }
        .nurburgring_section_circuit {
            background-image: url(./images/24h_race_2026/bg_nur_circuit_sp.webp);
            padding-block: 8rem;
        }
        .nurburgring_circuit_movie_main {
            margin-top: 4rem;
        }
        [class].ttl_nur_circuit {
            width: calc(322 / 390 * 105.5%);
        }
        [class].nurburgring_section_special {
            margin-top: 0;
            padding-block: 8rem;
            background-image: url(./images/24h_race_2026/bg_nur_special_sp.webp);
        }

        .nurburgring_special_wrap {
            align-items: flex-start;
            flex-direction: column;
            justify-content: space-between;
            margin-top: 4.4rem;
            gap: 0.4rem 0;
        }
        .nurburgring_special_movie_main {
            width: 100%;
        }
        .nurburgring_special_movie_list {
            flex-direction: row;
            flex-wrap: wrap;
            gap: 0.8rem;
        }
        .nurburgring_special_movie_list > li {
            width: calc(100% / 4 - 0.8rem);
        }
        .nurburgring_special_movie_link::after {
            width: 1.8rem;
            height: 1.8rem;
        }
        .nurburgring_article_video::before {
            width: 18rem;
            height: 12rem;
        }
        .nurburgring_loop_list > li {
            width: 30rem;
        }
        [class].ttl_taikyu_article {
            width: calc(279 / 390 * 105.5%);
        }
        [class].ttl_taikyu_video {
            width: calc(279 / 390 * 105.5%);
        }
        [class].ttl_taikyu_hydrogen {
            width: calc(276 / 390 * 105.5%);
        }
        [class].ttl_nur_special {
            width: calc(297 / 390 * 105.5%);
        }
        [class].ttl_nur_article {
            width: calc(296 / 390 * 105.5%);
        }
        [class].ttl_nur_video {
            width: calc(296 / 390 * 105.5%);
        }
        .supertaikyu_kv {
            padding-top: 4rem;
            padding-bottom: 6rem;
            background-image: url(./images/24h_race_2026/bg_taikyu_sp.webp);
        }
        .supertaikyu_kv_ttl {
            padding-inline: 2rem;
        }
        .nurburgring_kv {
            padding-top: 4rem;
            background: url(./images/24h_race_2026/bg_nur_sp.webp) no-repeat top center / 100% auto;
        }
        .nurburgring_kv_ttl {
            padding-inline: 1.7rem;
        }
        .content_list_area_article,
        .content_list_area_video {
            margin-top: 4rem;
        }
    }

    /* supertaikyu_hydrogen */
    .supertaikyu_hydrogen .section_inner{
        position: relative;
        background: url(./images/24h_race_2026/texture_white.jpg) repeat center 0;
        background-size: 9.6rem auto;
    }
    .supertaikyu_hydrogen .section_inner::before {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        background-color: var(--color-blue);
        mix-blend-mode: multiply;
        clip-path: polygon(100% 0, 0 0, 0 100%);
    }
    .supertaikyu_hydrogen .section_ttl_area {
        position: relative;
        z-index: 1;
    }
    .supertaikyu_hydrogen .section_ttl_jp {
        background-color: var(--color-black);
        color: var(--color-white);
    }
    @media screen and (min-width:641px) {
        .supertaikyu_hydrogen .section_inner{
            padding: 7.3rem 6.4rem 6.4rem;
        }
        .supertaikyu_hydrogen .section_inner::before {
            width: 42rem;
            height: 28rem;
        }
        .content_list_area_hydrogen {
            margin-top: 4.8rem;
        }
    }
    @media screen and (max-width:640px) {
        .supertaikyu_hydrogen .section_inner{
            padding: 9rem 1.2rem 8rem;
            overflow: hidden;
            width: 96%;
        }
        .supertaikyu_hydrogen .section_inner::before {
            width: 12rem;
            height: 8rem;
        }
        .content_list_area_hydrogen {
            margin-top: 4rem;
        }
    }


    [class].content_list_link {
        display: flex;
        flex-direction: column;
        background-color: var(--color-white);
        padding: 0;
        border: none;
        font-family: inherit;
        cursor: pointer;
    }
    .content_list_link[data-id] .content_list_link_img::after {
        content: '';
        position: absolute;
        top: 50%;
        left: 50%;
        background: url(./images/24h_race_2026/icon_play.svg) no-repeat center center / contain;
        translate: -50% -50%;
    }
    .content_list_link_img {
        overflow: hidden;
        position: relative;
    }
    .content_list_link_inner {
        padding: 0.8rem 1.6rem;
    }
    .content_list_link_ttl {
        overflow: hidden;
        display: -webkit-box;
        text-overflow: ellipsis;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
        text-align: left;
    }
    .content_list_link_date {
        text-align: right;
        font-weight: 400;
        display: block;
        margin-top: 0.8rem;
    }
    .swiper-button-prev,
    .swiper-button-next {
        width: 3.479%;
        height: calc(100% - 0.6rem);
        top: 0;
        margin-top: 0;
        background-color: var(--theme-color);
    }
    .swiper-button-prev {
        left: 0;
    }
    .swiper-button-next {
        right: 0;
    }
    .swiper-button-prev::after,
    .swiper-button-next::after {
        content: '';
        width: 1.5rem;
        height: 1.5rem;
        position: relative;
    }
    .supertaikyu .swiper-button-prev::after,
    .supertaikyu .swiper-button-next::after {
        border-top: 2px solid var(--color-white);
        border-right: 2px solid var(--color-white);
    }
    .nurburgring .swiper-button-prev::after,
    .nurburgring .swiper-button-next::after {
        border-top: 2px solid var(--color-black);
        border-right: 2px solid var(--color-black);
    }
    .supertaikyu .swiper-button-next.swiper-button-disabled, 
    .supertaikyu .swiper-button-prev.swiper-button-disabled,
    .nurburgring .swiper-button-next.swiper-button-disabled, 
    .nurburgring .swiper-button-prev.swiper-button-disabled {
        opacity: .6;
    }
    .supertaikyu .swiper-button-next.swiper-button-disabled, 
    .supertaikyu .swiper-button-prev.swiper-button-disabled {
        background-color: var(--color-black);
    }
    .nurburgring .swiper-button-next.swiper-button-disabled, 
    .nurburgring .swiper-button-prev.swiper-button-disabled {
        background-color: var(--color-white);
    }
    .swiper-button-next::after {
        rotate: 45deg;
        right: 0.5rem;
    }
    .swiper-button-prev::after {   
        rotate: -135deg;    
        right: -0.5rem;
    }
    @media screen and (min-width:641px) {
        .content_list_area {
            position: relative;
        }
        .content_list_area .swiper {
            width: 100%;
            padding-bottom: 0.6rem;
            overflow: visible;
        }
        .content_list {
            display: flex;
            flex-wrap: wrap;
            gap: 4.8rem 2.2rem;
        }
        .content_list_area .content_list_item {
            width: calc((100% - 6.6rem) / 4);
        }
        @media screen and (max-width:1000px) {
            .content_list_area .content_list_item {
                width: calc((100% - 4.4rem) / 3);
            }
            @media screen and (max-width:750px) {
                .content_list_area .content_list_item {
                    width: calc((100% - 2.2rem) / 2);
                }
            }
        }
        .content_list_link_ttl {
            font-size: 1.6rem;
            min-height: 3em;
        }
        .content_list_link_date {
            font-size: 1.2rem;
        }
        .content_list_link[data-id] .content_list_link_img::after {
            width: 4rem;
            height: 4rem;
        }
        @media screen and (max-width:900px) {
            .content_list_area_hydrogen .content_list_item {
                width: calc((100% - 1.2rem * 2) / 2);
            }
        }
        @media (hover:hover) {
            .content_list_link:hover {
                color: var(--color-black)!important;
            }
            .content_list_link_img > img {
                scale: 1;
                transition: scale 0.3s;
            }
            .content_list_link:hover .content_list_link_img > img {
                scale: 1.08;
            }
        }
    }
    @media screen and (max-width:640px) {
        .content_list_area .swiper {
            width: calc(100% + 2.4rem);
            padding-right: 5.4rem;
            padding-bottom: 0.4rem;
        }
        .content_list_item {
            width: 32rem;
        }
        .swiper-button-prev,
        .swiper-button-next {
            display: none;
        }
        .content_list_link_ttl {
            font-size: 1.4rem;
            min-height: 3em;
        }
        .content_list_link_date {
            font-size: 1rem;
        }
        .content_list_link[data-id] .content_list_link_img::after {
            width: 4.8rem;
            height: 4.8rem;
        }
    }
    @media (prefers-color-scheme: dark) {
        .content_list_link_ttl {
            color: var(--color-black);
        }
        .content_list_link_date {
            color: var(--color-black);
        }
        .relatedLinks_btn {
            color: var(--color-black);
        }
    }

    /* relatedLinks */
    .relatedLinks {
        background: url(./images/24h_race_2026/texture_white.jpg) repeat center 0;
        background-size: 9.6rem auto;
    }
    .relatedLinks img {
        width: auto;
    }
    .recommend_ttl {
        padding-bottom: 0.8rem;
        border-bottom: 0.4rem solid var(--color-black);
    }
    .relatedLinks_list > li {
        display: flex;
        margin-top: 4.8rem;
        flex-wrap: wrap;
        gap: 1.6rem 0;
    }
    .relatedLinks_ttl {
        width: 24.5rem;
    }
    .relatedLinks_btn_area {
        flex: 1;
    }
    .relatedLinks_btn_list {
        display: flex;
        flex-wrap: wrap;
    }
    #supertaikyu .relatedLinks_btn {
        display: flex;
        justify-content: center;
        align-items: center;
    }
    .relatedLinks_btn {
        background-color: var(--color-white);
        font-weight: 700;
        line-height: 1.75;
        position: relative;
        border: 2px solid var(--color-white);
    }
    .relatedLinks_btn::after {
        content: '';
        position: absolute;
        top: 0;
        bottom: 0;
        margin: auto;
        width: 0.6rem;
        height: 0.6rem;
        border-top: 2px solid var(--color-black);
        border-right: 2px solid var(--color-black);
        rotate: 45deg;
    }
    #supertaikyu .relatedLinks_btn::after {
        display: none;
    }
    .relatedLinks_btn_other_wrap {
        text-align: center;
    }
    .relatedLinks_btn_other {
        display: inline-block;
        position: relative;
        background-color: var(--color-white);
    }
    .relatedLinks_btn_other::after {
        content: '';
        position: absolute;
        top: 0;
        right: 2.4rem;
        bottom: 0;
        margin: auto;
        width: 0.6rem;
        height: 0.6rem;
        border-top: 2px solid var(--color-black);
        border-right: 2px solid var(--color-black);
        rotate: 45deg;
        margin-left: 0.5rem;
    }
    #nurburgring .relatedLinks_btn {
        padding: 0;
        line-height: 1.3;
        border: none;
        background-color: var(--color-black);
    }
    #nurburgring .relatedLinks_btn::after {
        display: none;
    }
    #nurburgring .relatedLinks_btn .text {
        display: block;
        text-align: center;
        background-color: var(--color-white);
    }
    @media screen and (min-width:641px) {
        .relatedLinks {
            padding: 12rem 0;
        }
        .relatedLinks_btn_list {
            gap: 2.4rem;
        }
        .relatedLinks_list > li {
            align-items: center;
        }
        .relatedLinks_btn {
            width: 40rem;
            font-size: 1.6rem;
            padding: 2rem 3.2rem;
        }
        #supertaikyu .relatedLinks_btn {
            height: 9.6rem;
        }
        #nurburgring .relatedLinks_btn {
            width: 27rem;
        }
        #nurburgring .relatedLinks_btn .text {
            padding: 1.2rem;
        }
        .relatedLinks_btn::after {
            right: 4.2rem; 
        }
        .relatedLinks_btn_other {
            font-size: 1.6rem;
            padding: 1rem 4rem 1rem 2.4rem;
        }
        .relatedLinks_btn_other_wrap {
            margin-top: 4.8rem;
        }
        #supertaikyu .recommend_supertaikyu {
            width: 35.4rem;
        }
        #supertaikyu .recommend_fujispeedway {
            width: 35.2rem;
        }
        @media(hover:hover) {
            .relatedLinks_btn {
                transition: background-color 0.3s, color 0.3s, border-color 0.3s;
            }
            .relatedLinks_btn:hover {
                border-color: var(--color-black);
                background-color: var(--color-red);
                color: var(--color-white)!important;
            }
            #supertaikyu .relatedLinks_btn:hover {
                background-color: var(--color-blue);
            }
            .relatedLinks_btn:hover::after {
                border-color: var(--color-white);
            }
            .relatedLinks_btn_other {
                transition: background-color 0.3s, color 0.3s, border-color 0.3s;
            }
            .relatedLinks_btn_other:hover {
                background-color: var(--color-blue);
                color: var(--color-white)!important;
            }
            .relatedLinks_btn_other:hover::after {
                border-color: var(--color-white);
            }
            #nurburgring .relatedLinks_btn:hover {
                color: var(--color-black)!important;
            }
            #nurburgring .relatedLinks_btn img {
                transition: opacity 0.2s;
            }
            #nurburgring .relatedLinks_btn:hover img {
                opacity: 0.5;
            }
        }
    }
    @media screen and (max-width:640px) {
        .relatedLinks {
            padding: 8rem 0;
        }
        .recommend_ttl_img {
            width: 41.6%;
            height: auto;
        }
        .relatedLinks_btn_list {
            gap: 1.6rem;
        }
        .relatedLinks_list > li {
            flex-direction: column;
        }
        .relatedLinks_btn_list,
        .relatedLinks_btn_list > li {
            width: 100%;
        }
        .relatedLinks_btn {
            width: 100%;
            display: block;
            font-size: 1.4rem;
            padding: 1.5rem 2.4rem;
        }
        .relatedLinks_btn::after {
            right: 2.4rem;
        }
        .relatedLinks_btn_other {
            font-size: 1.4rem;
            padding: 1.3rem 5.6rem 1.3rem 5.6rem;
        }
        .relatedLinks_btn_other_wrap {
            margin-top: 3.6rem;
        }
        #supertaikyu .recommend_supertaikyu {
            width: calc(295 / 390 * 100vw);
        }
        #supertaikyu .recommend_fujispeedway {
            width: calc(302 / 390 * 100vw);
        }
        #nurburgring .relatedLinks_btn {
            width: 16.7rem;
        }
        #nurburgring .relatedLinks_btn .text {
            padding: 0.8rem;
        }
    }

    /* short movie */
    .movie_slider {
        overflow: visible;
    }
    .movie_slider .swiper-slide {
        width: max-content;
    }
    .movie_link {
        display: block;
        text-align: left;
        border: none;
        overflow: hidden;
        position: relative;
        background-color: var(--color-white);
    }
    .movie_img_wrap {
        overflow: hidden;
        display: block;
        position: relative;
    }
    .movie_img_wrap::after {
        content: '';
        display: block;
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        z-index: 2;
        box-sizing: border-box;
    }
    .icon_play {
        position: absolute;
        top: 50%;
        left: 50%;
        translate: -50% -50%;
        z-index: 2;
    }
    .movie_link .icon_play_circle {
        fill: var(--color-red);
    }
    .movie_link .icon_play_arrow {
        fill: var(--color-white);
    }
    .movie_img {
        width: 100%;
        height: auto;
    }
    .movie_link_ttl_wrap {
        display: block;
    }
    .movie_link_ttl {
        font-weight: 700;
        overflow: hidden;
        display: -webkit-box;
        text-overflow: ellipsis;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
    }
    .movie_link_taglist {
        display: flex;
        flex-wrap: wrap;
        color: #ccc;
    }
    @media (min-width: 641px) {
        .movie_slider {
            margin-top: 6rem;
        }
        .movie_slider .swiper-slide + .swiper-slide {
            padding-left: 3.2rem;
        }
        .is_centered .swiper-wrapper {
            justify-content: center;
        }
        .movie_link {
            width: 26rem;
            border-radius: 2.4rem;
        }
        .movie_img_wrap {
            border-radius: 1.6rem 1.6rem 0 0;
        }
        .movie_img_wrap::after {
            border: 0.8rem solid var(--color-white);
            border-radius: 2.4rem 2.4rem 0 0;
        }
        .icon_play {
            width: 8rem;
        }
        .movie_link_ttl_wrap {
            padding: 0.8rem 2.4rem 2.4rem;
        }
        .movie_link_ttl {
            font-size: 1.6rem;
        }
        .movie_link_taglist {
            font-size: 1.2rem;
            column-gap: 1.6rem;
            margin-top: 1.2rem;
        }
        @media(hover:hover) {
            .movie_img_wrap::before {
                content: '';
                display: block;
                position: absolute;
                top: 0.8rem;
                left: 0.8rem;
                width: calc(100% - 1.6rem);
                height: calc(100% - 1.6rem);
                background-color: rgba(230, 0, 18, 0.5);
                opacity: 0;
                transition: opacity .4s;
                z-index: 1;
            }
            .movie_img_wrap::after {
                transition: border .4s;
            }
            .movie_link {
                cursor: pointer;
            }
            .movie_link_ttl_wrap {
                transition: color .4s, background .4s;
            }
            .movie_img {
                transition: scale .4s;
            }
            .movie_link:hover .movie_link_ttl_wrap {
                background-color: var(--color-red);
                color: var(--color-white);
            }
            .movie_link:hover .movie_img {
                scale: 1.08;
            }
            .movie_link:hover .icon_play_circle {
                fill: var(--color-white);
            }
            .movie_link:hover .icon_play_arrow {
                fill: var(--color-red);
            }
            .movie_link:hover .movie_img_wrap::before {
                opacity: 1;
            }
            .movie_link:hover .movie_img_wrap::after {
                border-width: 1.2rem;
                border-color: var(--color-red);
            }
        }
        .slider_btn {
            position: absolute;
            width: 32px;
            height: 120px;
            background-color: #333;
            top: 0;
            bottom: 48px;
            margin-block: auto;
            z-index: 100;
            border-radius: 4px;
            opacity: 0.8;
            border: 1px solid #333;
        }
        .slider_btn_prev {
            left: -13px;
        }
        .slider_btn_next {
            right: -13px;
        }
        .slider_btn svg {
            position: absolute;
            inset: 0;
            margin: auto;
        }
        @media (hover: hover) {
            .slider_btn {
                transition: background-color 0.3s;
            }
            .slider_btn:not(.swiper-button-disabled):hover {
                background-color: #fff;
            }
            .slider_btn path {
                transition: fill 0.3s;
            }
            .slider_btn:not(.swiper-button-disabled):hover path {
                fill: #333;
            }
        }
    }
    @media (max-width: 640px) {
        .movie_wrap {
            margin-top: calc(48 / 390 * 100vw);
        }
        .movie_slider {
            margin-top: calc(37 / 390 * 100vw);
        }
        .movie_slider .swiper-slide {
            padding-inline: calc(8 / 390 * 100vw);
        }
        .movie_link {
            width: calc(260 / 390 * 100vw);
            border-radius: calc(24 / 390 * 100vw);
        }
        .movie_img_wrap {
            border-radius: calc(16 / 390 * 100vw) calc(16 / 390 * 100vw) 0 0;
            padding: calc(8 / 390 * 100vw);
        }
        .movie_img_wrap::after {
            border: calc(8 / 390 * 100vw) solid var(--color-white);
            border-radius: calc(24 / 390 * 100vw) calc(24 / 390 * 100vw) 0 0;
        }
        .icon_play {
            width: calc(80 / 390 * 100vw);
        }
        .movie_link_ttl_wrap {
            padding: calc(10 / 390 * 100vw) calc(24 / 390 * 100vw) calc(16 / 390 * 100vw);
        }
        .movie_link_ttl {
            font-size: calc(14 / 390 * 100vw);
        }
        .movie_link_taglist {
            font-size: calc(10 / 390 * 100vw);
            column-gap: calc(16 / 390 * 100vw);
            margin-top: calc(11 / 390 * 100vw);
        }
        .swiper-scrollbar.movie-swiper-scrollbar,
        .swiper-scrollbar.article-swiper-scrollbar,
        .slider_btn {
            display: none;
        }
    }

    /* short */
     @media (min-width: 641px) {
        .nurburgring_section_short {
            padding-block: 12rem;
            background: url(./images/24h_race_2026/bg_nur_short.webp) no-repeat center / cover;
        }
     }
    @media (max-width: 640px) {
        #nurburgring_section_short.nurburgring_section_short {
            padding-block: calc(80 / 390 * 100vw);
            margin-top: 0;
            background: url(./images/24h_race_2026/bg_nur_short_sp.webp) no-repeat center / cover;
        }
        [class].ttl_nur_short {
            width: calc(201 / 390 * 105.5%);
        }
    }

    /*.special */
	#nur_special .txtTitleAll {
		color: #fff;
		overflow: hidden;
		margin-top:0;
		display: -webkit-box;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 2; /* 表示する行数を指定 */
		line-clamp: 2; /* 最新の仕様にも対応 */
		min-height: 3.1em;
	}
	#nur_special a.modal figure {
		position: relative;
	}
	#nur_special a.modal figure::after {
		content: "";
		display: block;
		width: 80px;
		height: 80px;
		position: absolute;
		top: 50%;
		left: 50%;
		background: transparent url(images/rallyjapan/icon_play.svg) no-repeat center center / cover;
		transform: translate3d(-50%, -50%, 0);
	}
    @media screen and (min-width:641px) {
		#nur_special .nurburgring_special_wrap {
			gap: min( 30px, calc(100vw / ( 1150 / 30 ) ) );
		}
		#nur_special .movieList {
			/* height: 100%; */
			flex: 1 0 auto;
			position: relative;
			overflow: hidden;
            width: min(233px, calc(233 / 1150 * 100vw));
            flex-shrink: 0;
		}
		#nur_special .movieList nav {
			display: content;
		}
		#nur_special .movieList nav .btnLeft,
		#nur_special .movieList nav .btnRight {
			display: flex;
			justify-content: center;
			align-items: center;
			position: absolute;
			left: 0;
			width: 100%;
			height: 26px;
			background-color: #000;
			transition: background-color .2s ease;
			cursor: default;
		}
		#nur_special .movieList nav a.active {
			background-color: #eb0a1e;
			cursor: pointer;
		}
		#nur_special .movieList nav a.active:hover {
			background-color: #61818E;
		}
		#nur_special .movieList nav .btnLeft {
			top: 0;
		}
		#nur_special .movieList nav .btnRight {
			bottom: 0;
		}
		#nur_special .movieList nav .btnLeft span,
		#nur_special .movieList nav .btnRight span {
			position: relative;
			display: block;
			width: 7px;
			height: 2px;
			transform: rotate(90deg);
		}
		#nur_special .movieList nav .btnLeft span::before,
		#nur_special .movieList nav .btnLeft span::after,
		#nur_special .movieList nav .btnRight span::before,
		#nur_special .movieList nav .btnRight span::after {
			content: "";
			display: block;
			position: absolute;
			left: 0;
			width: 100%;
			height: 2px;
			margin-left: 0;
			background-color: #FFF;
		}
		#nur_special .movieList nav .btnLeft span::before {
			transform-origin: bottom left;
			transform: translate3d(15%, 0, 0) rotate(-45deg);
		}
		#nur_special .movieList nav .btnLeft span::after {
			transform-origin: top left;
			transform: translate3d(15%, 0, 0) rotate(45deg);
		}
		#nur_special .movieList nav .btnRight span::before {
			transform-origin: bottom right;
			transform: translate3d(-15%, 0, 0) rotate(45deg);
		}
		#nur_special .movieList nav .btnRight span::after {
			transform-origin: top right;
			transform: translate3d(-15%, 0, 0) rotate(-45deg);
		}
		
		#nur_special .movieListWrap {
			position: absolute;
			right: 0;
			top: 0;
			padding-block: 30px;
            width: 100%;
		}
		#nur_special .contentsList {
			position: relative;
			display: grid;
			grid-template-rows: repeat(20, auto);
			margin-top: 0;
			transition: transform .2s ease;
			padding-left: 6px;
			grid-row-gap: min( 16px, calc(100vw / ( 1150 / 16 ) ) )
		}
		#nur_special .contentsList li {
			display: block;
			width: 100%;
			margin-top: 0;
            padding-block: 0;
		}
		#nur_special .contentsList .contentCard {
			position: relative;
            padding: 0;
		}
		#nur_special .contentsList li .txtData {
			position: absolute;
			right: 0;
			bottom: 0;
			left: 0;
			padding: .5em 1em;
			background-color: rgba(0, 0, 0, .5);
			color: #FFF;
			font-feature-settings: "palt";
		}
		#nur_special .contentsList li .txtData .txtDate {
			margin-top: 0;
			font-size: 1em;
		}
         #nur_special .contentsList .contentCard.blackShadow {
            display: block;
            box-shadow: -6px 6px 0 #000;
            border: none !important;
        }
		#nur_special .contentsList .contentCard a.modal figure::after {
			width: min(40px, calc(40 / 1150 * 100vw));
			height: min(40px, calc(40 / 1150 * 100vw));
		}
    }
    @media screen and (max-width:640px) {
        #nur_special .nurburgring_special_wrap {
            width: 90vw;
            display: block;
        }
		#nur_special .movieList {
			margin: 5vw -5vw 0;
		}
		#nur_special .movieList .movieListWrap {
		}
		#nur_special .movieList .contentsList {
			display: grid;
			grid-auto-flow: column;
			grid-auto-columns: calc((464 / 640* 100vw) + 5vw);
			padding-bottom: 4px;
			overflow: scroll;
			scroll-snap-type: x mandatory;
			padding-right: calc(5vw - 4px);
		}
		#nur_special .movieList .contentsList li {
			grid-row-start: 1;
			display: block;
			width: 100%;
			margin: 0;
			scroll-snap-align: start;
			padding: 0;
			padding-left: 5vw;
		}
		#nur_special .movieList .contentsList .contentCard {
			position: relative;
            margin: 0;
            padding: 0;
		}
		#nur_special .movieList .contentsList .contentCard figure img {
			width: 100%;
		}
		#nur_special .movieList .contentsList .contentCard .txtData {
			position: absolute;
			right: 0;
			bottom: 0;
			left: 0;
			padding: .5rem !important;
		}
		#nur_special .movieList .contentsList .contentCard .txtData .txtTitleAll {
			font-size: 1.2rem;
		}
		#nur_special .movieList .contentsList .contentCard .txtData .txtTitleAll span {
			background-color: #000;
			color: #fff;
		}
		#nur_special .movieList .contentsList .contentCard .txtData .attendData {
			margin-top: 0;
			border-top: none;
			font-size: 1.5rem;
			text-align: right;
		}
		#nur_special .movieList .contentsList .contentCard .txtData .attendData .txtDate {
			display: inline-block;
			margin-top: 0;
			padding: .25em .5em;
			background-color: #000;
			color: #fff;
			line-height: 1;
		}
		#nur_special .movieList nav {
			display: none;
		}
        #nur_special a.modal figure::after {
            width: 15vw;
            height: 15vw;
        }
        #nur_special .blackShadow {
            display: block;
            box-shadow: -4px 4px 0 #000;
        }
    }
}
@keyframes loop-list {
    from {
        transform: translateX(0);
    }
    to {
        transform: translateX(-100%);
    }
}
