@charset "utf-8"; 
:root{
    --red-color:#d7000f;
    --ani-time:0.3s;
}
@font-face {
    font-family: "Arial";
    src: url("../fonts/Arial_Bold-sub.woff") format("woff");
}
@font-face {
    font-family: "A-OTF-ShinGoPro-Ultra";
    src: url("../fonts/A-OTF-ShinGoPro-Ultra.woff") format("woff");
}
/*@font-face {
    font-family: "EngraversGothicBT-regular";
    src: url("../fonts/EngraversGothicBT-Regular.ttf") format("truetype");
}

@font-face {
    font-family: "Constantia";
    src: url("../fonts/Constantia.ttf") format("truetype");
}*/

/*start 共通*/
html{
    font-size:calc(1000px / 62);
    min-height:0;
}
@media (max-width:850px){
    html{
        font-size:calc(100vw / 62);
    }   
}

@media (max-width:768px){
    html{
        font-size:calc(100vw / 48);
    }
}

@media (max-width:480px){
    html{
        font-size:calc(100vw / 34);
    }
}


@media (min-width:481px){ .show-S{ display:none !important; } }
@media (min-width:769px){ .show-MS{ display:none !important; } }
@media (min-width:769px) and (max-width:480px){ .show-M{ display:none !important; } }
@media (max-width:480px){ .show-LM{ display:none !important; } }
@media (max-width:768px){ .show-L{ display:none !important; } }


* {
    box-sizing: border-box;
    -webkit-touch-callout:none;
    -webkit-tap-highlight-color:transparent;
    font-family:inherit;
}

body {
    color: #333;
    font-family: sans-serif;
}

a {
    color: inherit;
    text-decoration: none;
    transition:initial;
}

body,p {
    /* margin: 0; */
    font-size: 1rem;
}
h1,h2,h3,h4,h5,h6 {
    font-weight: normal;
    margin:0;
    line-height: 1;
    font-size:inherit;
}

.image {
    display: inline-block;
    vertical-align: bottom;
    max-width: 100%;
}
.image a{
    display:block;
    width:100%;
}
.imageh{
    display: inline-block;
    vertical-align: bottom;
    height:100%;
}
.imageh a{
    height:100%;
}
.imageh img{
    height:100%;
}

.image img {
    width: 100%;
    display: block;
}
.image-full{
    width:100%;
}

.image-base {
    position: relative;
    background-color: rgba(255,255,255,0.3);
}

.image-base img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
}

.image-base a {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 2;
}

img {
    vertical-align: bottom;
}

ul {
    list-style: none;
    padding: 0;
    margin: 0;
}


[href^="tel:"] {
    color: inherit;
    font-size: inherit;
}

/*[href]{
    opacity:1;
    transition:opacity 0.3s ease;
}
[href]:hover{
    opacity:0.5;
}*/

[data-smooth]{
    cursor:pointer;
}
body .body-inner{
    overflow:hidden;
}
.inner-width{
    max-width: 850px;
    margin:0 auto;
    padding:0 1rem;
}
#driver{
    background-size:cover;
    background-position:center;
    background-repeat:repeat;
}

.title_line{
    background-color:var(--red-color);
    color:#fff;
    text-align:center;
    overflow:hidden;
}
.title_line h2{
    line-height: 0.75;
    font-size: 5rem;
    font-family: "Arial",sans-serif;
    font-weight: bold;
    transform-origin: center top;
    transform: scale(1.12);
    display: inline-block;
}

@media (max-width:480px){
    .title_line h2{
        transform: scale(1.12);
    }
}


.schedule-box{
    background-color:rgba(0,0,0,0.7);
    color:#fff;
    padding:1rem 1.5rem;
}
.schedule-title{
    font-size: 2.5rem;
    font-weight:bold;
    color:var(--red-color);
    /* text-align:center; */
}
.schedule-row{
    display:flex;
    align-items: center;
    justify-content:space-between;
    font-size:1.3rem;
    margin-top:1.5rem;
    letter-spacing:0.05rem;
}
.schedule-row.cancel{
    position:relative;
}
.schedule-row.cancel:before{
    content:"";
    position:absolute;
    top:0;
    bottom:0;
    left:0;
    margin:auto;
    display:block;
    height:2px;
    width: calc(100% - 7rem);
    background-color:#d7010f;
}
.schedule-row > a{
    display:flex;
    align-items:center;
    justify-content: center;
    background-color: #d7010f;
    padding:0.5rem;
    font-size:0.6em;
    border-radius:0.5rem;
    color:#fff;
    transition:background-color 0.3s ease;
}
.schedule-row > a:hover{
    color:#fff !important;
    background-color: #a1030e;
}
.schedule-row .item > span{
    display:inline-block;
}
.schedule-row .item > .rd{
    width: calc(1.3rem * 5.5);
}
.schedule-row .item > .date{
    width: calc(1.3rem * 8.5);
}
.schedule-row .item > .location{
    width: calc(1.3rem * 11.5);
}
.schedule-row .item_2{
    display:flex;
    align-items:center;
}
.schedule-row > a.coming{
    background-color:#888;
    pointer-events:none;
}
@media (max-width:768px){
    .schedule-title{
        font-size: 2.5rem;
    }

    .schedule-row > a{
        /* justify-content:flex-start; */
        /* flex-wrap:wrap; */
        font-size: 0.9rem;
    }
    .schedule-row .item_1{
        width: 60%;
    }
    .schedule-row .item > .rd{
        width:calc(1.3rem * 6.5);
    }
    .schedule-row .item > .date{
        width: calc(1.3rem * 8);
    }
    .schedule-row .item > .location{
        width:calc(1.3rem * 12.5);
    }
    .schedule-row .item_2{
        width: calc(1.3rem * 7);
        justify-content: flex-end;
    }
}
@media (max-width:480px){
    .schedule-title{
        font-size: 1.75rem;
    }

    .schedule-row > a{
        /* justify-content:flex-start; */
        /* flex-wrap:wrap; */
        width: 11rem;
    }
    
    .schedule-row .item_1{
        width: 47%;
    }
    .schedule-row .item > .rd{
        width:calc(1.3rem * 6.5);
    }
    .schedule-row .item > .date{
        width: calc(1.3rem * 8);
    }
    .schedule-row .item > .location{
        width:calc(1.3rem * 12.5);
    }
    .schedule-row .item_2{
        width: calc(1.3rem * 12);
        justify-content: flex-end;
        margin-right: 1rem;
    }
}

.movie {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
}

.movie>.item {
    width: calc((100% - 2rem) / 3);
    margin-top:1rem;
}

.movie-image{
    position:relative;
    width: 100%;
    padding-top:calc((100% / 1280) * 720);
}
.movie-image > img:first-child{
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:100%;
}
.movie-image .play{
    position:absolute;
    left:0;
    top:0;
    right:0;
    bottom:0;
    margin:auto;
    width:2rem;
    height:2rem;
}
.movie-image .support{
    position:absolute;
    top:-0.5rem;
    right: -0.4rem;
    margin:auto;
    width:60%;
    display:none;
}
.support_movie .movie-image .support{
    display: block;
}
.movie-box{
    background-color:#000;
    box-shadow:3px 3px 10px rgba(0,0,0,0.75);
    /* padding:1rem; */
    color:#fff;
    opacity:1;
    transition:opacity var(--ani-time) ease;
}
.movie-box:hover{
    opacity:0.8;
}
.movie-box > a{
    height:100%;
    display:block;
    padding:1rem;
}
.date-row{
    background-color:var(--red-color);
    text-align:center;
    font-size:0.8rem;
    margin-top:0.5rem;
    color: #fff;
}
.date-row > span:last-child{
    font-size:0.8em;
}
.driver_info-row{
    text-align:center;
    margin-top:0.5rem;
    color: #fff;
}
.driver_info-row > div{
    display:inline-block;
    text-align:left;
}
.driver_info-row > div:first-child{
    font-size: 0.9rem;
    font-weight:bold;
    line-height:1.3
}
.driver_info-row > div:last-child{
    font-size: 0.77rem;
    margin-top:0.5rem;
}
@media (max-width:480px) {
    .movie>.item{
        margin-top:1rem;
    }
    .movie>.item {
        width: calc((100% - 1rem) / 2);
    }
}



.race-title{
    font-size:1.5rem;
    text-align:center;
    font-weight:bold;
}
.race-title > span{
    text-align:left;
}

#gallery .sec-inner {
    padding:0 1rem;
}
.gallery-title{
    background-color:rgba(0,0,0,1);
    color:#fff;
    text-align:center;
    padding:1rem;
    border-radius:1.25rem;
    display:flex;
    align-items:center;
    justify-content:space-between;
    transition: opacity var(--ani-time) 0.3s , background-color var(--ani-time) ease;
    background-color:#000;
    cursor:pointer;
    opacity:1;
    position: relative;
}
@media (min-width:481px){
    .commingsoon{
        position:absolute;
        left:1rem;
    }
}
.status_wrap{
    position:absolute;
    right:1rem;
}
.gallery-title:hover{
    opacity:0.8;
}


.gallery-title > .title{
    font-size:1.25rem;
    width: 100%;
}
.status{
    background-color:#fff;
    width:1.1rem;
    height:1.1rem;
    border-radius:100%;
    position:relative;
}
.status:before,
.status:after{
    content:"";
    display:block;
    position:absolute;
    top:0;
    bottom:0;
    left:0;
    right:0;
    margin:auto;
    width:80%;
    height:2px;
    background-color:rgba(0,0,0,1);
    border-radius:1px;
    transform:rotate(0deg);
    transition: transform var(--ani-time) ease , background-color var(--ani-time) ease;
}
[data-toggle="off"] .status:after{
    transform:rotate(90deg);
    
}
.commingsoon_ .status:before,
.commingsoon_ .status:after{
    background-color:#bfbfbf;
}


.commingsoon-image{
    width:7rem;
}
.commingsoon-image img{
    background-color:var(--red-color);
}
.commingsoon_{
    pointer-events:none;
}

.commingsoon_ .gallery-title{
    background-color:#bfbfbf;
}
.commingsoon_ .commingsoon{
    display:block;
}
.commingsoon{
    display:none;
}

.gallery-row.cancel .title{
    text-decoration:line-through;
    color:#d7010f;
}
.gallery-row.cancel .title > span{
    color:#fff;
}


.gallery-box{
    margin:0 -1rem;
    margin-top:0.5rem;
    transition:height var(--ani-time) ease , margin-bottom var(--ani-time) ease;
    overflow: hidden;
    margin-bottom:1.5rem;
}
[data-toggle="off"] .gallery-box{
    height:0 !important;
    margin-bottom:0rem;
}
.gallery {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    background-color:#000;
    padding:1rem;
}

.gallery>.item {
    width: calc((100% - 3rem) / 4);
    margin-top: 1rem;
}
.gallery-image{
    position:relative;
    width:100%;
    padding-top:calc((100% / 1242) * 828);
}
.gallery-image.tate{
    padding-top:calc((100% / 828) * 1242);
}
.gallery-image > a{
    display:block;
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:100%;
}
.gallery-image > a > img{
    object-fit: cover;
    width:100%;
    aspect-ratio:1242 / 828;
}

@media (max-width:480px) {
    .gallery>.item {
        width: calc((100% - 1rem) / 2);
    }

    .gallery-title{
        padding:0.5rem 1rem;
        border-radius: 1rem;
    }
    .gallery-title > .title{
        font-size:1rem;
    }
    
}





#supporter{
    background-position:center;
    background-size:cover;
}
#supporter > .sec-inner{
    position:relative;
}
#supporter > .sec-inner > h2{
    position:absolute;
    top:-1.5rem;
    left: 1rem;
    z-index:10000;
}
.supporter-image{
    height:1.5rem;
}
.supporter-row{
    text-align: center;;
    color:#fff;
}
.supporter-row h2{
    font-weight:bold;
    font-size:2.5rem;
    font-family: "A-OTF-ShinGoPro-Ultra";
}
.supporter-row p{
    margin-top:1rem;
    line-height: 1.5;
    color: #fff;
}

.supporter_image-row{
    text-align:center;
    margin-top: -2rem;
}
.supporter_link-image{
    position: relative;
    max-width:47rem;
    transform: translateX(-3rem);
}
.supporter_link-image a{
    position:absolute;
    display:block;
    z-index:1000;
    top: 21%;
    left: 26%;
    width: 69.2%;
    height: 66%;
}
.supporter_link-image a + img{
    transition:opacity 0.3s ease;
}
.supporter_link-image a:hover + img{
    opacity:0.8;
}
@media (max-width:768px){
    #supporter > .sec-inner{
        max-width:calc(70vw + 1rem);
    }
    #supporter > .sec-inner > h2{
        top:-2rem;
    }
    .supporter-image{
        height:2rem;
    }
    .supporter_link-image{
            transform: translateX(-2rem);
    }
    .supporter_image-row{
        margin:0;
    }
}
@media (max-width:480px){
    #supporter > .sec-inner{
        max-width:none;
    }
    .supporter-row h2{
        font-size:2.2rem;
        white-space: nowrap;
    }
    .supporter-row p{
        margin-top:2rem;
        line-height:1.7;
    }
    .supporter_link-image{
            transform: translateX(-1rem);
    }
}




.space8{
    height:calc(8rem / 1);
    width:100%;
}
.space5{
    height:calc(5rem / 1);
    width:100%;
}
.space3{
    height:calc(3rem / 1);
    width:100%;
}
.space2{
    height:calc(2rem / 1);
    width:100%;
}


@media (max-width:480px){
    .space08{
        height:calc(8rem / 2);
    }
    .space5{
        height:calc(5rem / 1);
    }   
    .space3{
        height:calc(3rem / 1);
    }
    .space2{
        height:calc(2rem / 1);
    }
}