/* opening */
.opening {
    --ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
    position: fixed;
    top: 0;
    left: 0;
    background-color: #fff;
    z-index: 100;
    width: 100%;
    height: 100%;
    opacity: 1;
}
.opening_list,
.opening_list > li {
    position: absolute;
    top:0;
    left:0;
    width:100%;
    height:100%;
}
.opening_txt_wrap {
    position: absolute;
}
.opening_txt_cover {
    line-height: 0;
    overflow:hidden;
}
.opening_txt {
    display: inline-block;
    background:#fff;
    color: #000;
    font-weight: 700;
    line-height: 1;
    font-feature-settings: "palt";
}
.opening_catch_cover {
    line-height: 0;
    overflow:hidden;
}
.opening_catch_cover + .opening_catch_cover {
    margin-top: calc(var(--opening-size) * -8);
}
.opening_catch {
    display: inline-block;
    background:#000;
}
.op_txt_1 {
    display: block;
    height: auto;
}
.op_txt_2 {
    display: block;
    height: auto;
}
.op_txt_3 {
    display: block;
    height: auto;
}
.opening_img_1 {
    --animation-opening-delay: 0s;
}
.opening_img_2 {
    --animation-opening-delay: 1s;
}
.opening_img_3 {
    --animation-opening-delay: 2s;
}
.opening_img_4 {
    --animation-opening-delay: 3s;
}
.opening_animaition_txt {
    clip-path: polygon(0% 0%, 0% 100%, 0% 100%, 0% 0%);
}
.opening_animaition_txt_1 {
    --animation-opening-delay: 1s;
}
.opening_animaition_txt_2 {
    --animation-opening-delay: 1.8s;
}
.opening_animaition_txt_3 {
    --animation-opening-delay: 2.6s;
}
.opening_list > li {
    opacity:0;
}
.opening_start .opening_list > li {
    --animation-opening-speed: 1s;
    opacity:1;
    transition: opacity var(--animation-opening-speed) var(--animation-opening-delay);
}
.opening_start .opening_animaition_txt {
    --animation-opening-speed: 0.8s;
    clip-path: polygon(0% 0%, 0% 100%, 100% 100%, 100% 0%);
    transition: clip-path var(--animation-opening-speed) var(--animation-opening-delay) var(--ease-out-expo);
}
.opening.opening_start {
    opacity: 0;
    transition: opacity 1.5s 5s;
    pointer-events: none;
}
.opening.opening_shortcut {
    opacity: 0;
    transition: opacity 1s 1s;
    pointer-events: none;
}
@media screen and (min-width:641px) {
    .opening {
        --opening-size: min(calc(100/1440*1vw), calc(100/810*1vh));
    }
    .opening_img_1 {
        background: url(./images/op_1.webp) no-repeat 50% 0 / cover;
    }
    .opening_img_2 {
        background: url(./images/op_2.webp) no-repeat 50% 0 / cover;
    }
    .opening_img_3 {
        background: url(./images/op_3.webp) no-repeat 50% 0 / cover;
    }
    .opening_img_4 {
        background: url(./images/op_4.webp) no-repeat 50% 0 / cover;
    }
    .opening_txt_wrap {
        left: calc(var(--opening-size) * 48);
        bottom: calc(var(--opening-size) * 48);
    }
    .opening_txt_cover {
        margin-top: calc(var(--opening-size) * 16);
    }
    .opening_txt {
        padding: calc(var(--opening-size) * 4) calc(var(--opening-size) * 24);
        font-size: calc(var(--opening-size) * 24);
    }
    .opening_catch_cover + .opening_catch_cover {
        margin-top: calc(var(--opening-size) * -8);
    }
    .opening_catch {
        padding: calc(var(--opening-size) * 16) calc(var(--opening-size) * 24);
        height: calc(var(--opening-size) * 112);
    }
    .op_txt_1 {
        width: calc(var(--opening-size) * 624);
    }
    .op_txt_2 {
        width: calc(var(--opening-size) * 714);
    }
    .op_txt_3 {
        width: calc(var(--opening-size) * 509.5);
    }
}
@media screen and (max-width:640px) {
    .opening {
        --opening-size: min(calc(100/390*1vw), calc(100/800*1vh));
    }
    .opening_img_1 {
        background: url(./images/op_1_sp.webp) no-repeat 50% 0 / cover;
    }
    .opening_img_2 {
        background: url(./images/op_2_sp.webp) no-repeat 50% 0 / cover;
    }
    .opening_img_3 {
        background: url(./images/op_3_sp.webp) no-repeat 50% 0 / cover;
    }
    .opening_img_4 {
        background: url(./images/op_4_sp.webp) no-repeat 50% 0 / cover;
    }
    .opening_txt_wrap {
        left: calc(var(--opening-size) * 23);
        bottom: calc(var(--opening-size) * 48);
    }
    .opening_txt_cover {
        margin-top: calc(var(--opening-size) * 8);
    }
    .opening_txt {
        padding: calc(var(--opening-size) * 8) calc(var(--opening-size) * 12);
        font-size: calc(var(--opening-size) * 16);
    }
    .opening_catch_cover + .opening_catch_cover {
        margin-top: calc(var(--opening-size) * -4);
    }
    .opening_catch {
        padding: calc(var(--opening-size) * 8) calc(var(--opening-size) * 12);
        height: calc(var(--opening-size) * 48);
    }
    .op_txt_1 {
        width: calc(var(--opening-size) * 265);
    }
    .op_txt_2 {
        width: calc(var(--opening-size) * 303);
    }
    .op_txt_3 {
        width: calc(var(--opening-size) * 320);
    }
}

@media (min-width: 641px) {
    [disp-only]:not([disp-only~='pc']) {
        display: none !important;
    }
    .box_shadow {
        box-shadow: 0.6rem 0.6rem 0 0 var(--color-black);
    }
    @media(hover:hover){
        .hover_opacity {
            transition: opacity .3s;
        }
        .hover_opacity:hover {
            opacity: .7;
        }
    }
}
@media (max-width: 640px) {
    [disp-only]:not([disp-only~='sp']) {
        display: none !important;
    }
    .box_shadow {
        box-shadow: 0.4rem 0.4rem 0 0 var(--color-black);
    }
}

#mainBody {
    --color-red: #EB0A1E;
    --color-blue: #0A42EB;
    --color-yellow: #FCFF00;
    --color-white: #fff;
    --color-black: #000;
}
.race_wrap {
    display: flex;
    flex-direction: column;
    font-weight: 700;
    overflow: clip;
    font-feature-settings: 'palt';
}
.fw400 {
    font-weight: 400;
}
.race_wrap.race_nurburgring {
    flex-direction: column-reverse;
}
#liveMovieNavi a {
    padding: 20px;
}

.anchor_nav_list {
    position: fixed;
    display: flex;
    z-index: 2;
}
.anchor_nav_link {
    display: flex;
    flex-direction: column;
}
.anchor_nav_link .anchor_nav_link_ttl,
.anchor_nav_link .anchor_nav_link_date,
.anchor_nav_link .anchor_nav_link_arrow::after {
    opacity: 0.5;
}
.anchor_nav_link.is_active .anchor_nav_link_ttl,
.anchor_nav_link.is_active .anchor_nav_link_date,
.anchor_nav_link.is_active .anchor_nav_link_arrow::after {
    opacity: 1;
}
.anchor_nav_link_inner {
    display: flex;
    flex-direction: column;
    padding: 0.8rem 1.6rem;
    background: #61818E;
    justify-content: center;
    color: var(--color-white);
    align-items: center;
}
.anchor_nav_link_taikyu.is_active .anchor_nav_link_inner {
    background-color: var(--color-blue);
}
.anchor_nav_link_nur.is_active .anchor_nav_link_inner {
    background-color: var(--color-yellow);
    color: var(--color-black);
}
.anchor_nav_link_arrow {
    background-color: var(--color-black);
    position: relative;
    height: 1.1rem;
    padding-top: 0.3rem;
    display: flex;
    justify-content: center;
    align-items: center;
}
.anchor_nav_link_arrow::after {
    content: '';
    display: block;
    width: 1rem;
    height: 0.8rem;
    margin: auto;
    background-color: var(--color-white);
    clip-path: polygon(100% 0, 0 0, 50% 100%);
}
@media screen and (min-width:641px) {
    .anchor_nav_list {
        top: 50%;
        translate: 0 -50%;
        right: 0;
        gap: 0.8rem 0;
        flex-direction: column;
    }
    .race_wrap.race_nurburgring .anchor_nav_list {
        flex-direction: column-reverse;
    }
    .anchor_nav_link_ttl {
        font-size: 1.6rem;
    }
    .anchor_nav_link_date {
        font-size: 1.2rem;
    }
    .anchor_nav_link_inner {
        transition: background-color .3s, color .3s;
    }
    .anchor_nav_link_arrow {
        transition: background-color .3s;
    }
    .anchor_nav_link:hover {
        translate: 0.3rem 0.3rem;
        box-shadow: 0.3rem 0.3rem 0 0 var(--color-black);
    }
    .anchor_nav_link:hover .anchor_nav_link_inner {
        background-color: var(--color-white);
    }
    .anchor_nav_link_taikyu:hover .anchor_nav_link_inner {
        color: var(--color-blue);
    }
    .anchor_nav_link_taikyu:hover .anchor_nav_link_arrow {
        background-color: var(--color-blue);
    }
    .anchor_nav_link_nur:hover .anchor_nav_link_inner {
        background-color: var(--color-white);
        color: var(--color-black);
    }
    .anchor_nav_link_nur:hover .anchor_nav_link_arrow {
        background-color: var(--color-yellow);
    }
    .anchor_nav_link_nur:hover .anchor_nav_link_arrow::after {
        background-color: var(--color-black);
    }

    .anchor_nav_link_ttl,
    .anchor_nav_link_date,
    .anchor_nav_link_arrow::after {
        transition: opacity .3s;
    }
    .anchor_nav_link:hover .anchor_nav_link_ttl,
    .anchor_nav_link:hover .anchor_nav_link_date,
    .anchor_nav_link:hover .anchor_nav_link_arrow::after {
        opacity: 1;
    }
}
@media screen and (max-width:640px) {
    .anchor_nav_list {
        bottom: 0.4rem;
        left: 0;
        gap: 0 0.8rem;
        width: 100%;
        flex-direction: row;
        justify-content: center;
    }
    .race_wrap.race_nurburgring .anchor_nav_list {
        flex-direction: row-reverse;
    }
    .anchor_nav_link_inner {
        width: 12.9rem;
    }
}

.supertaikyu {
    background: #e4eaea url(./images/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/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::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;
    }
    .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: 20.5rem;
    }
    .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/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/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;
    }
}

.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: 12rem;
    }
    .timetable_supertaikyu::before {
        background-image: url(./images/bg_taikyu_timetable_sp.webp?v=1);
    }
    .timetable_nurburgring::before {
        background-image: url(./images/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/texture_blue_gray.jpg) repeat center 0;
    background-size: 9.6rem auto;
}
.xBanner_nurburgring {
    background: var(--color-black) url(./images/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/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/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;
}
@keyframes loop-list {
    from {
        transform: translateX(0);
    }
    to {
        transform: translateX(-100%);
    }
}
@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/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/bg_nur_special.webp) ;
    }
    .nurburgring_special_wrap {
        align-items: flex-start;
        justify-content: space-between;
        margin-top: 2.8rem;
    }
    .nurburgring_special_movie_main {
        width: 77.22%;
    }
    .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/bg_taikyu.webp);
    }
    .nurburgring_kv {
        padding-top: 7.2rem;
        padding-bottom: 6rem;
        background-image:  url(./images/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/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/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/bg_taikyu_sp.webp);
    }
    .supertaikyu_kv_ttl {
        padding-inline: 2rem;
    }
    .nurburgring_kv {
        padding-top: 4rem;
        background-image:  url(./images/bg_nur_sp.webp);
    }
    .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/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/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_article .swiper,
    .content_list_area_video .swiper {
        width: 90%;
        padding-bottom: 0.6rem;
    }
    .content_list_area_hydrogen .swiper {
        overflow: visible;
    }
    .content_list_area_hydrogen .content_list {
        display: flex;
        flex-wrap: wrap;
        gap: 4rem 2.4rem;
    }
    .content_list_area_hydrogen .content_list_item {
        width: calc((100% - 2.4rem * 2) / 3);
    }
    .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;
    }
}

/* relatedLinks */
.relatedLinks {
    background: url(./images/texture_white.jpg) repeat center 0;
    background-size: 9.6rem 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;
}
.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;
}
.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;
}
@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;
    }
    .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;
    }
    @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;
        }
        .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);
        }
    }
}
@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;
    }
}