@charset "utf-8";
/* CSS Document */

html {
	height: 100%;
	width: 100%;
	margin: 0;
	padding: 0;
	background-color: #000;
	color: #FFF;
	line-height: 1.8;
	font-size: 62.5%;
	letter-spacing: 0.1em;
    scrollbar-width:thin;
}

body {
    position: relative;
	font-size: 1.6rem;
	/* 16px */
	margin: 0;
	padding: 0;
	height: 100%;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
    font-family: "Montserrat","Noto Sans JP", sans-serif;
    font-optical-sizing: auto;
}

html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary, time, mark, audio, video {
    margin: 0;
    padding: 0;
    border: 0;
    outline: 0;
}


h1, h2, h3, h4, h5 {
    padding: 0;
    margin: 0;
    font-weight: 600;
}

h5{
    font-size: 1.2em;
}

ul,ol{
	list-style: none;
	padding: 0;
}

a,button{
    color: #FFF;
    transition: 0.5s;
}

button{
    padding: 0;
    background-color: transparent;
    border: 0;
}

a:link, a:visited, a:active {
    text-decoration: none;
	color: #FFF;
}

*, *::after, *::before {
    box-sizing: border-box;
}

img,svg{
	width: 100%;
	height: auto;
	vertical-align: bottom;
}


/*========= マージン ===============*/
.mb1{
    margin-bottom: 1rem;
}
.mb2{
    margin-bottom: 2rem;
}
.mb3{
    margin-bottom: 3rem;
}
.mb4{
    margin-bottom: 4rem;
}


/*========= フォント ===============*/

.rock-salt {
  font-family: "Rock Salt", cursive;
  font-weight: 400;
  font-style: normal;
}


.montserrat{
  font-family: "Montserrat", sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
}

.public-sans {
  font-family: "Public Sans", sans-serif;
  font-optical-sizing: auto;
  font-weight: 800;
  font-style: normal;
}


/*========= 流れるテキスト ===============*/

/*全共通*/

.slide-in{
    overflow: hidden;
    display: inline-block;
    width: 100%;
}

.slide-in_inner{
	display: inline-block;
    width: 100%;
}

/*左右のアニメーション*/
.leftAnime{
    opacity: 0;/*事前に透過0にして消しておく*/
    line-height: inherit;
    vertical-align: bottom;
}

.slideAnimeLeftRight {
	animation-name:slideTextX100;
	animation-duration:1.2s;
	animation-fill-mode:forwards;
    animation-direction:ease-in;
    opacity: 0;
}



@keyframes slideTextX100 {
  from {
    transform: translateX(-100%); /*要素を左の枠外に移動*/
    opacity: 0;
  }

  to {
	transform: translateX(0);/*要素を元の位置に移動*/
    opacity: 1;
  }
}

.slideAnimeRightLeft {
	animation-name:slideTextX-100;
	animation-duration:1.2s;
	animation-fill-mode:forwards;
    opacity: 0;
}

@keyframes slideTextX-100 {
  from {
	transform: translateX(100%);/*要素を右の枠外に移動*/
    opacity: 0;
  }

  to {
	transform: translateX(0);/*要素を元の位置に移動*/
    opacity: 1;
  }
}

/*========= 一文字ずつ現れるテキスト ===============*/
.text_up {
    display: flex;
    overflow-y: clip;
    justify-content: center;
}

.text_up span {
    transform: translateY(2em);
    transition: 0.5s all;
}

.text_up_in span {
    transform: translateY(0);
}

.text_up_in span:first-child{
    transition-delay: 0;
}
.text_up_in span:nth-child(2){
    transition-delay: 0.02s;
}
.text_up_in span:nth-child(3){
    transition-delay: 0.04s;
}
.text_up_in span:nth-child(4){
    transition-delay: 0.06s;
}
.text_up_in span:nth-child(5){
    transition-delay: 0.08s;
}
.text_up_in span:nth-child(6){
    transition-delay: 0.1s;
}
.text_up_in span:nth-child(7){
    transition-delay: 0.12s;
}
.text_up_in span:nth-child(8){
    transition-delay: 0.14s;
}
.text_up_in span:nth-child(9){
    transition-delay: 0.16s;
}
.text_up_in span:nth-child(10){
    transition-delay: 0.18s;
}
.text_up_in span:nth-child(11){
    transition-delay: 0.2s;
}
.text_up_in span:nth-child(12){
    transition-delay: 0.22s;
}
.text_up_in span:nth-child(13){
    transition-delay: 0.24s;
}
.text_up_in span:nth-child(14){
    transition-delay: 0.26s;
}
.text_up_in span:nth-child(15){
    transition-delay: 0.28s;
}
.text_up_in span:nth-child(16){
    transition-delay: 0.3s;
}
.text_up_in span:nth-child(17){
    transition-delay: 0.32s;
}
.text_up_in span:nth-child(18){
    transition-delay: 0.34s;
}
.text_up_in span:nth-child(19){
    transition-delay: 0.36s;
}
.text_up_in span:nth-child(20){
    transition-delay: 0.38s;
}
.text_up_in span:nth-child(21){
    transition-delay: 0.4s;
}
.text_up_in span:nth-child(22){
    transition-delay: 0.42s;
}
.text_up_in span:nth-child(23){
    transition-delay: 0.44s;
}
.text_up_in span:nth-child(24){
    transition-delay: 0.46s;
}
.text_up_in span:nth-child(25){
    transition-delay: 0.48s;
}


@media screen and (min-width:768px) {

    #event_schedule .line_2.text_up_in span:first-child{
        transition-delay: 0.22s !important;
    }
    #event_schedule .line_2.text_up_in span:nth-child(2){
        transition-delay: 0.24s !important;
    }
    #event_schedule .line_2.text_up_in span:nth-child(3){
        transition-delay: 0.26s !important;
    }
    #event_schedule .line_2.text_up_in span:nth-child(4){
        transition-delay: 0.28s !important;
    }
    #event_schedule .line_2.text_up_in span:nth-child(5){
        transition-delay: 0.3s !important;
    }
    #event_schedule .line_2.text_up_in span:nth-child(6){
        transition-delay: 0.32s !important;
    }
    #event_schedule .line_2.text_up_in span:nth-child(7){
        transition-delay: 0.34s !important;
    }
    #event_schedule .line_2.text_up_in span:nth-child(8){
        transition-delay: 0.36s !important;
    }
    
    #event_25 .line_2.text_up_in span:first-child{
        transition-delay: 0.22s !important;
    }
    #event_25 .line_2.text_up_in span:nth-child(2){
        transition-delay: 0.24s !important;
    }
    #event_25 .line_2.text_up_in span:nth-child(3){
        transition-delay: 0.26s !important;
    }
    #event_25 .line_2.text_up_in span:nth-child(4){
        transition-delay: 0.28s !important;
    }


    #event_25 .line_3.text_up_in span:first-child{
        transition-delay: 0.1s !important;
    }
    #event_25 .line_3.text_up_in span:nth-child(2){
        transition-delay: 0.12s !important;
    }
    #event_25 .line_3.text_up_in span:nth-child(3){
        transition-delay: 0.14s !important;
    }
    #event_25 .line_3.text_up_in span:nth-child(4){
        transition-delay: 0.16s !important;
    }
}





/* フェードイン */

.fadein{
    opacity: 0;
    transition:
        opacity 1s cubic-bezier(0.165, 0.84, 0.44, 1) 0s,
        transform 1s cubic-bezier(0.165, 0.84, 0.44, 1) 0s,
        -webkit-transform 1s cubic-bezier(0.165, 0.84, 0.44, 1) 0s;
}

.fadein.fadein-up{
    transform: translateY(4rem);
}

.fadein.fadein-down{
    transform: translateY(-4rem);
}

.fadein.fadein-left{
    transform: translateX(-4rem);
}

.fadein.fadein-right{
    transform: translateX(4rem);
}
.fadein.fadein-active{
    opacity: 1;
    transform: translate(0,0) !important;    
}

.product_main_box{
    transition:
        opacity 1s cubic-bezier(0.165, 0.84, 0.44, 1) 0.5s,
        transform 1s cubic-bezier(0.165, 0.84, 0.44, 1) 0.5s,
        -webkit-transform 1s cubic-bezier(0.165, 0.84, 0.44, 1) 0.5s;
}







/* bg */

header,main,footer{
    position: relative;
    z-index: 2;
}

.bg_video {
    width: 100%;
    height: 100vh;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1;
}

.bg_video video{
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0.6;
}

.video_overlay{
    position: absolute;
    top:0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: url("../images/video_overlay.webp");
    background-repeat: repeat;
    z-index: 1;
}


/* header */

header {
    position: fixed;
    width: 100%;
    z-index: 3;
}

header .header_box{
    display: flex;
    justify-content: space-between;
    padding: 2rem 2rem 0;
    opacity: 0;
    transform: translateY(-30px); /* 上から30pxズレて */
    animation: fadeDown 0.8s ease-out 0.3s forwards;
}

@keyframes fadeDown {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.header_menu {
    letter-spacing: -0.05em;
    font-size: 1.6rem;
    line-height: 1;
}

.header_menu a{
    display: inline-block;
    overflow-x: hidden;
    width: 0;
    animation: header_menu_a 0.5s ease-out 0.5s forwards;
}

@keyframes header_menu_a {
  to {
    width: 100%;
  }
}


.slide_in_menu{
    display: inline-block;
    overflow: hidden;
    line-height: 1;
    position: relative;
    white-space: nowrap;
}




.slide_in_menu:before{
    display: block;
    position: absolute;
    width: 100%;
    height: 100%;
    content: "";
    transform: translateX(0);
    animation: slide_in_menu 0.2s ease-out 0.9s forwards;
    background: #FFF;
    top: 0;
    left: 0;
}

@keyframes slide_in_menu {
  to {
    opacity: 1;
    transform: translateX(100%);
  }
}


.link_slide_up:after{
    display: block;
    position: absolute;
    width: 100%;
    height: 100%;
    content: "";
    transform: translateY(1em);
    transition: all 0.2s ease-out;
    background: #FFF;
    top: 0;
    left: 0;
    mix-blend-mode: color;
}

.link_slide_up:hover{
    color:#000 !important;
}


.link_slide_up:hover:after{
    transform: translateY(0);
}

.header_logo {
    width: 3.5rem;
}



/* section */

section{
    padding: 10rem 0;
}

@media screen and (min-width:768px) {

section{
    padding: 15vw 0;
}    
    
}

/* main */

#main_img {
    width: 100%;
    padding: 0;
    position: relative;
    margin-bottom: 10vw;
}

@media screen and (min-width:768px) and (orientation:landscape) {

    #main_img {
        height: 100% !important;
        aspect-ratio: 16 / 9;
        overflow: hidden;
    }

}

#main_img video {
    object-fit: cover;
    width: 100%;
    height: auto;
}

#main_img .video_overlay{
    opacity: 0.2 !important;
}

#main_img > div {
    display: grid;
    width: 100%;
    height: 100%;
    align-content: center;
}


#main_img .main_img_box{
    animation: img_blink 0.7s 1s ease-in infinite;
}

@keyframes img_blink {
  0% { opacity: 0.7; }
  5% { opacity: 1; }
  12% { opacity: 0.8; }
  19% { opacity: 0.9; }
  23% { opacity: 0.7; }
  25% { opacity: 1; }
  30% { opacity: 0.9; }
  38% { opacity: 0.8; }
  49% { opacity: 1; }
  60% { opacity: 0.8; }
  68% { opacity: 0.7; }
  70% { opacity: 0.9; }
  74% { opacity: 1; }
  79% { opacity: 0.7; }
  83% { opacity: 0.8; }
  87% { opacity: 1; }
  95% { opacity: 0.8; }
  98% { opacity: 0.9; }
  100% { opacity: 1; }
}

#main_img img {
    max-width: 660px;
    width: 100%;
    margin: auto;
    opacity: 0;
    animation: main_img 0.7s 1s ease-in forwards;
}

@keyframes main_img {
  0% {
    opacity: 0;
    transform: translateY(0.5rem);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}




.scroll-down {
    position: absolute;
    display: block !important;
    width: fit-content !important;
    height: fit-content !important;
    bottom: 1rem;
    right: 2rem;
    text-align: right;
    color: #FFF;
    font-size: 1rem;
    font-weight: normal;
    text-decoration: none;
    letter-spacing: normal;
}

.gradient-line {
    width: 1px;
    height: 80px;
    background: #FFF;
    animation: extend 2s infinite;
    margin: 0 0 0 auto;
}

@keyframes extend {
  0%,
  100% {
    height: 80px;
  }
  50% {
    height: 0;
  }
}








/* event_info */


.collabo_logo img {
    width: 80%;
    max-width: 600px;
    margin: 0 auto 3vw;
    display: block;
}

#event_info p {
    width: 90%;
    margin: auto;
    padding: 0;
    text-align: justify;
    word-break: break-all;
    font-size: 13px;
}

@media screen and (min-width:768px) {
    #event_info p {
        font-size: 16px;
    }    
}






/* artist */


.artist_list {
    display: grid;
    grid-template-columns: 1fr;
    grid-gap: 3rem 0.5rem;
}

.artist {
    width: 100%;
    border: 0;
    background: transparent;
    text-align: center;
}

.artist button {
    cursor: pointer;
    background: transparent;
    padding: 0;
    border: none;
}



.artist .artist_img{
    width: 100%;
    height: auto;
    overflow: hidden;
    margin-bottom: 1rem;
    position: relative;
    background: #000;
}

.artist .artist_img:before,
.artist .artist_img:after{
    position: absolute;
    width: 100%;
    height: 100%;
    display: block;
    content: "";
    left: 0;
    top: 0;
}


.artist .artist_img:before{
    background: #000;
    z-index: 2;
    transition: left 0.3s ease-out;
}

.artist .artist_img:after{
    background: #FFF;
    z-index: 1;
    transition: left 0.2s 0.3s ease-out;
}

.artist .artist_img.img_slide_in:before,
.artist .artist_img.img_slide_in:after{
    left: 100%;
}

.artist:nth-child(even) .artist_img.img_slide_in:before{
    transition: left 0.3s 0.1s ease-out;
}

.artist:nth-child(even) .artist_img.img_slide_in:after{
    transition: left 0.2s 0.4s ease-out;
}



.artist .artist_img img{
    width: 100%;
    height: auto;
    object-fit: cover;
    background: #000;
}

@media screen and (min-width:768px) {
    
.artist button .artist_img img{
    transition: 0.5s all;
    opacity: 0.4;
}

.artist button:hover .artist_img img{
    opacity: 1.0;
}  
    
}

.artist_detail h3 {
    font-size: 1.8rem;
    line-height: 1.5;
    margin-bottom: 0.5rem;
}

.artist_logo img {
    width: 50% !important;
    margin: 1rem auto 0;
    object-position: center;
    object-fit: contain !important;
    height: 4rem !important;
}

@media screen and (min-width:768px) {
    
    .artist_list {
        display: grid;
        grid-template-columns: 1fr 1fr;
    }
    

    .artist_logo img {
        width: 30% !important;
        height: 8rem !important;
    }
    .artist_detail h3 {
        font-size: 2.4rem;
    }

    
}

/* artist POPUP */
.artist_box {
    display: grid;
    grid-gap: 1rem;
}

.artist_img_box img {
    aspect-ratio: 4 / 3;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 0 20%;
}

.artist_pop_detail {
    display: grid;
    grid-gap: 1rem;
    text-align: center;
}

.artist_pop_detail h1 {
    font-size: 4vw;
}

.artist_pop_detail h3 {
    font-size: 1.8rem;
    line-height: 1.5;
}

.artist_pop_detail .artist_logo img {
    width: 40% !important;
    margin: 0 auto;
    object-position: center;
    object-fit: contain !important;
    height: auto !important;
}

.artist_pop_detail p {
    font-size: 10px;
    text-align: justify;
    word-break: break-all;
}


@media screen and (min-width:768px) {
    

.artist_modal .modalWrapper {
    max-width: 1000px;
    padding: 3vw;
}
    
.artist_box {
    grid-template-columns: 1fr 1fr;
    grid-gap: 0 3vw;
    align-items: center;
}
      
.artist_img_box img {
    aspect-ratio: 3 / 4;
    object-position: top;
}    
 
.artist_pop_detail {
    grid-gap: 3rem;
}
    
.artist_pop_detail h1 {
    font-size: 2rem;
}    
 
.artist_pop_detail p {
    font-size: 1.2rem;
}    
    
.artist_modal .closeModal {
    grid-column: 1 / 3;
}    
}

/* フレンドからのお祝いメッセージ */

.section_title_box{
    text-align: center;
}

.section_title {
    text-align: center;
    font-size: 12vw;
    text-transform: uppercase;
    letter-spacing: -0.08em;
    line-height: 1;
        padding: 0 1rem;
}

.section_subtitle {
    text-align: center;
    display: block;
    font-family: 'Montserrat';
    font-weight: 400;
    font-size: 1.0rem;
    margin-top: 1rem;
    text-transform: uppercase;
    letter-spacing: normal;
}

.shop_list{
    padding: 0 0.5rem;
    display: grid;
    grid-template-columns: 1fr;
    grid-gap: 3rem 0.5rem;
}

.row1_title {
    display: flex;
    justify-content: center;
    gap: 0.2em;
}

@media screen and (min-width:768px) {
    .section_title {
        font-size: 8.8vw;
        display: flex;
        justify-content: center;
        gap: 0.2em;
    }
    

}


.shop .shop_img{
    width: 100%;
    height: 100%;
    overflow: hidden;
    aspect-ratio: 16 / 9;
    margin-bottom: 1rem;
    position: relative;
    transition: all 0.5s; 
}

.shop .shop_img:before,
.shop .shop_img:after{
    position: absolute;
    width: 100%;
    height: 100%;
    display: block;
    content: "";
    left: 0;
    top: 0;
}


.shop .shop_img:before{
    background: #000;
    z-index: 2;
    transition: left 0.3s ease-out;
}

.shop .shop_img:after{
    background: #FFF;
    z-index: 1;
    transition: left 0.2s 0.3s ease-out;
}

.shop .shop_img.img_slide_in:before,
.shop .shop_img.img_slide_in:after{
    left: 100%;
}

.shop:nth-child(even) .shop_img.img_slide_in:before{
    transition: left 0.3s 0.1s ease-out;
}

.shop:nth-child(even) .shop_img.img_slide_in:after{
    transition: left 0.2s 0.4s ease-out;
}

@media screen and (min-width:768px) {
    
.shop:nth-child(2) .shop_img.img_slide_in:before,
.shop:nth-child(6) .shop_img.img_slide_in:before,
.shop:nth-child(10) .shop_img.img_slide_in:before,
.shop:nth-child(14) .shop_img.img_slide_in:before,
.shop:nth-child(18) .shop_img.img_slide_in:before{
    transition: left 0.3s 0.1s ease-out;
}

.shop:nth-child(2) .shop_img.img_slide_in:after,
.shop:nth-child(6) .shop_img.img_slide_in:after,
.shop:nth-child(10) .shop_img.img_slide_in:after,
.shop:nth-child(14) .shop_img.img_slide_in:after,
.shop:nth-child(18) .shop_img.img_slide_in:after{
    transition: left 0.2s 0.4s ease-out;
}
    
.shop:nth-child(3) .shop_img.img_slide_in:before,
.shop:nth-child(7) .shop_img.img_slide_in:before,
.shop:nth-child(11) .shop_img.img_slide_in:before,
.shop:nth-child(15) .shop_img.img_slide_in:before,
.shop:nth-child(19) .shop_img.img_slide_in:before{
    transition: left 0.3s 0.2s ease-out;
}

.shop:nth-child(3) .shop_img.img_slide_in:after,
.shop:nth-child(7) .shop_img.img_slide_in:after,
.shop:nth-child(11) .shop_img.img_slide_in:after,
.shop:nth-child(15) .shop_img.img_slide_in:after,
.shop:nth-child(19) .shop_img.img_slide_in:after{
    transition: left 0.2s 0.5s ease-out;
}
    
.shop:nth-child(4) .shop_img.img_slide_in:before,
.shop:nth-child(8) .shop_img.img_slide_in:before,
.shop:nth-child(12) .shop_img.img_slide_in:before,
.shop:nth-child(16) .shop_img.img_slide_in:before,
.shop:nth-child(20) .shop_img.img_slide_in:before{
    transition: left 0.3s 0.3s ease-out;
}

.shop:nth-child(4) .shop_img.img_slide_in:after,
.shop:nth-child(8) .shop_img.img_slide_in:after,
.shop:nth-child(12) .shop_img.img_slide_in:after,
.shop:nth-child(16) .shop_img.img_slide_in:after,
.shop:nth-child(20) .shop_img.img_slide_in:after{
    transition: left 0.2s 0.6s ease-out;
}       
    
    
    
    
}



.shop i{
    line-height: 1.8;
}

.shop button{
    width: 100%;
}

.shop button img{
    width: 100%;
    height: 100%;
    object-fit: cover;
}



@media screen and (min-width:768px) {
    
    .shop button img{
        transition: 0.5s all;
        filter: grayscale(100%); 
    }

    .shop button:hover img{
        filter: grayscale(0%); 
    }  
    
}

.shop h3 {
    font-size: 1.7rem;
    line-height: 1.5;
    margin-bottom: 0.5rem;
}


.shop h4 {
    font-size: 1.5rem;
    line-height: 1.5;
    font-weight: 400;
}

.shop h3 span,
.shop h4 span{
    line-height: 1.5 !important;
    margin: 0;
}

.sns {
    display: flex;
    justify-content: center;
    gap: 2rem;
    padding: 0;
}

/* モーダルCSS */


.modalInner::before, .modalWrapper::before {
    height: 0px;
    width: 1px;
    opacity: 0.5;
}

.modalInner::before, .modalInner::after {
    position: absolute;
    content: "";
    right: 0px;
    bottom: 0px;
    background: rgb(255, 255, 255);
}


.modalArea {
  display: none;
  position: fixed;
  z-index: 10;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.modalBg {
  width: 100%;
  height: 100%;
  background-color: rgba(30,30,30,0.9);
}

.modalWrapper {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    max-width: 700px;
    width: 90%;
    padding: 2rem 2rem 1rem;
    background: rgba(0, 0, 0, 0.6);
    box-shadow: 0 0 10px #000;
}

.modalContents{
    width: 100%;
    height: 100%;
    display: grid;
    align-content: center;
    justify-items: center;
}

.closeModal {
    cursor: pointer;
    line-height: 1;
    text-align: right;
    display: flex;
    align-items: center;
    justify-content: end;
    padding: 0.5rem 0 0;
    width: 100%;
    margin: auto;
}

.closeModal_text {
    font-size: 1rem;
    margin-right: 0.5rem;
    font-weight: 500;
}

.closeModal_cross {
    font-size: 1.6rem;
}


/* 以下ボタンスタイル */
#event_schedule button {
    cursor: pointer;
    background: transparent;
    padding: 0;
    border: none;
}

@media screen and (min-width:768px) {
    
.shop_list{
        grid-template-columns: repeat(2, 1fr);
        width: 100%;
        margin: auto;
}

}

.shop_box {
    width: 100%;
}


.shop_name{
    margin-bottom: 1rem;
    text-align: center;
}
.shop_box h1 {
    font-size: 3.5vw;
}
.shop_box h2 {
    font-size: 3vw;
}


.shop_box .map_box iframe {
    width: 100%;
    height: 100%;
    aspect-ratio: 1 / 1;
}



@media screen and (min-width:768px) and (orientation:portrait) {

.shop_box h1 {
    font-size: 3.5vw;
}
    
.shop_box h2 {
    font-size: 2vw;
}
     
}


@media screen and (min-width:768px) and (orientation:landscape) {


.shop_box .map_box iframe {
    width: 100%;
    height: 100%;
    aspect-ratio: 16 / 9;
}

.shop_box h1 {
    font-size: 1.6vw;
}
    
.shop_box h2 {
    font-size: 1vw;
}
     
}


/* イベントリスト */


.product_list {
    width: 100%;
    padding: 0;
    margin: auto;
    display: grid;
    grid-template-columns: 1fr;
    grid-gap: 6rem;
    overflow: hidden;
}


#product .product_main_box{
    width: 100%;
    overflow: hidden;
    position: relative;
    transition: all 0.5s; 
}

#product .product_main_box:before,
#product .product_main_box:after{
    position: absolute;
    width: 100%;
    height: 100%;
    display: block;
    content: "";
    left: 0;
    top: 0;
}


#product .product_main_box:before{
    background: #000;
    z-index: 2;
    transition: left 0.3s ease-out;
}

#product .product_main_box:after{
    background: #FFF;
    z-index: 1;
    transition: left 0.2s 0.3s ease-out;
}

#product .product_main_box.img_slide_in:before,
#product .product_main_box.img_slide_in:after{
    left: 100%;
}

#product .product_main_box.img_slide_in:before{
    transition: left 0.3s 0.1s ease-out;
}

#product .product_main_box.img_slide_in:after{
    transition: left 0.2s 0.4s ease-out;
}



.product_list .product_img_box{
    width: 100vw;
}


.product_box {
    display: grid;
    grid-gap: 2rem;
}

.product_detail_box {
    padding: 0 3rem;
    display: grid;
    grid-gap: 1rem;
}

.product_name_jp {
    font-size: 2.5vw;
}

.product_name_us {
    letter-spacing: normal;
    font-size:8vw;
    font-weight: 900;
    line-height: 1.1;
}

.product_list p{
    font-size: 11px;
    text-align: justify;
    word-break: break-all;
}


.swiper-button-next,
.swiper-button-prev {
    width: 2rem !important;
    height: 2rem !important;
}

.swiper-button-next {
        left: auto !important;
        right: 1rem !important;
}

.swiper-button-prev {
        left: 1rem !important;
        right: auto !important;
}
.swiper-button-next svg path,
.swiper-button-prev svg path {
    fill: #FFF !important;
}

.swiper-pagination-bullet {
    background: #FFF;
    border-radius: 0;
    width: 5rem;
    height: 3px;
    margin: 0 5px !important;
    transition: opacity 0.5s;
}

.product_attention {
    padding: 3rem;
}

@media screen and (min-width:768px) and (orientation:landscape) {

    .product_box {
        grid-template-columns: 1fr 1fr;
        grid-gap: 0;
        align-items: center;
    }
    
    .product_list {
        grid-gap: 2px;
        background: #111;
    }
    
    .product_list .product_img_box{
        width: 50vw;
    }

    .product_detail_box {
        padding: 0 5vw;
        display: grid;
        grid-gap: 1rem;
        width: 50vw;
    }
    
    .product_name_jp {
        font-size: 1vw;
    }
    
  .product_name_us {
        font-size: 3.5vw;
    }  
    
    .product_list p {
        font-size: 0.9vw;
    }
    
    .RRR025 div:first-child {
        order: 2;
    }
    
    .RRR025 div:last-child {
        order: 1;
    }
    
    .product_attention {
        padding: 5vw;
        width: fit-content;
        margin: auto;
        text-align: center;
    }

    .product_attention > *{
        text-align: center !important;
    }    
    
    .product_attention h3 {
        margin-bottom: 2rem;
    }
    
}









/* フッター */





.footer_menu_box {
    padding: 0 2rem 2rem;
    margin-bottom: 1rem;
    border-bottom: 1px solid #333;
}


.sns_box {
    display: flex;
    justify-content: center;
    gap: 2rem;
    padding-bottom: 5rem;
    line-height: 1;
}




.footer_menu_2 {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.back_top {
    font-size: 1rem;
}

.looptext_box{
    padding-bottom: 1rem;
}

.looptext{
    overflow: hidden;
    position: relative;
    width: 100%;
    margin-inline: auto;
    font-size: 30vw;
    letter-spacing: -0.05em;
    line-height: 1;
}

.loop {
    padding-right: 4rem;
    animation: loop 30s linear infinite;
    width: max-content;
}

.loop2{
    position: absolute;
    top: 0;
    left: 0;
    animation: loop 30s -15s linear infinite;
}


@keyframes loop {
  0%{
    transform: translateX(100%);
  }
  100%{
    transform: translateX(-100%);
  }
}


@media screen and (min-width:768px) {
    
    
    .sns_box {
        padding-bottom: 10vw;
        font-size: 2rem;
    }

    
    .looptext{
        font-size: 13vw;
    }    
}


copy {
    font-size: 1rem;
    display: block;
    text-align: right;
}




#overlay {
  position: fixed;
  top: 0; left: 0;
  width: 100%; height: 100%;
  background: black;
  z-index: 9999;
  opacity: 0;
  pointer-events: none;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity 0.6s ease-out;
}

#overlay.active {
  opacity: 1;
  pointer-events: auto;
}

#overlay .logo_box{
    width: 60px;
    height: 60px;
    display: block;
    overflow: hidden;
}

#overlay img {
max-width: 60px;
opacity: 0;
transform: translateY(60px);
transition: all 0.6s ease-out;
}

#overlay.active img {
  opacity: 1;
  transform: translateY(0);
}
