@charset "utf-8";

/*
-----------------------------------------------
▼基本デザイン 2023.10
----------------------------------------------- */

* {
box-sizing:border-box;
margin:0;
padding:0;
border:0;
outline:0;
font-style:normal;
word-break:normal;
word-wrap:break-word;
}

html {
font-size: 62.5%;
  overflow: auto;
}

.tsume{
font-feature-settings: "palt";
}

body {
font-size: 1.5rem;
-webkit-text-size-adjust:100%;
font-family: 'Noto Sans JP', sans-serif;
line-height:1.7;
background-color:#9fd7e6;
background-image:url(../img/all_bg.png);
background-repeat:no-repeat;
background-size:contain;
background-position:center 15vw;
}


.en{
  font-family: "Josefin Sans", sans-serif;
  font-optical-sizing: auto;
  font-weight: 500;
  font-style: normal;
}


small {
font-size:80%;
}
article,aside,figure,footer,header,main,menu,nav,section {
display:block;
}
audio,canvas,video {
display:inline-block;
}
img {
vertical-align:bottom;
}
input,select {
font-size:100%;
vertical-align:middle;
}
ul,ol {
list-style-type:none;
}
h1,h2,h3,h4,h5,h6,strong {
-webkit-font-smoothing:antialiased;
}
table {
border-collapse:collapse;
border-spacing:0;
}

a {
text-decoration:none;
}

a:hover,a:active {
text-decoration:underline;
}
a img {
transition:opacity 0.5s ease-in-out;
}

a:hover img {
opacity:0.8;
}


.pconly{
display:none;
}
@media screen and (min-width: 1025px) {
.pconly{
display:block;
}
}

.sponly{
display:block;
}
@media screen and (min-width: 1025px) {
.sponly{
display:none;
}
}

/*
-----------------------------------------------
flex
----------------------------------------------- */
.container01{
display:flex;
flex-wrap:wrap;
}

.container02{
display:flex;
flex-wrap:nowrap;
}

.container03{
display:flex;
flex-wrap:wrap-reverse;
}

.al-item01{
align-items:flex-end
}

.c-type01{
justify-content:space-between;
}

.c-type02{
justify-content:space-around;
}

.c-type03{
justify-content:flex-start;
}

.c-type04{
justify-content:center;
}

.c-type05{
justify-content:flex-end;
}

.ai-01{align-items:flex-start;}
.ai-02{align-items:flex-end;}
.ai-03{align-items:center;}
.ai-04{align-items:baseline;}
.ai-04{align-items:stretch;}

/*
-----------------------------------------------
▼全体
----------------------------------------------- */

.serif{
font-family: 'Noto Serif JP', serif;
}

.sans{font-family: 'Noto Sans JP', sans-serif;}

.mx-img{
width:auto;
height:auto;
max-width:100%;
}

/*
-----------------------------------------------
▼ヘッダー
----------------------------------------------- */
header {
position: relative;
width: 100%;
}


.head_in{
padding-top:60px;
width:100%;
margin-left:auto;
margin-right:auto;
display:flex;
flex-wrap:wrap;
justify-content:center;
}

.small_logo{
position:absolute;
top:12px;
right:30px;
}

@media screen and (max-width: 1125px) {

.head_in{
padding-left:5%;
padding-right:5%;
}

}


@media screen and (max-width: 767px) {
.small_logo{
position:absolute;
top:1.5vw;
right:1.5vw;
width:30vw;
}

.head_in{
padding-top:11vw;
padding-left:1vw;
padding-right:1vw;
}

}


/*
-----------------------------------------------
▼TOPページ
----------------------------------------------- */
#main{
position:relative;
z-index:1;
overflow:hidden;
}

.sp_foot_btn{
display:none;
}

.pc_side_btn{
position:fixed;
z-index:90;
top:320px;
right:0;
width:74px;
}

.pc_side_btn a{ 
color:#fff;
font-weight:bold;
font-size:2.5rem;
writing-mode:vertical-rl;
display:block;
background:#f19500;
padding:20px 15px;
border-radius:10px 0 0 10px;
border-top:solid 3px #fff;
border-left:solid 3px #fff;
border-bottom:solid 3px #fff;
}

.pc_side_btn a:hover{
text-decoration:none;
opacity:1;
background:#dd2520;
}




.wrap01{
position:relative;
padding:40px 0;
background:#fff;
border-radius:30px;
max-width:1100px;
margin-left:auto;
margin-right:auto;
margin-bottom:60px;
}

.h-type01{
font-size:3.4rem;
color:#f29600;
border-bottom:dashed 3px #ff9900;
display:inline-block;
}

.h-type02{
font-size:3.6rem;
color:#ea5c77;
border-bottom:dashed 3px #ea5c77;
display:inline-block;
margin-bottom:36px;
}

.h-type02 span{
font-size:6.0rem;
color:#ea5c77;
display:inline-block;
margin:0 6px;
}


.h-type03{
font-size:3.0rem;
color:#f29600;
}

.h-type04{
font-size:3.0rem;
color:#ea5c77;
margin-bottom:30px;
}

.h-type05{
font-size:4.0rem;
color:#1b82af;
margin-bottom:30px;
position:relative;
}
.h-type05:before{
  content: '';
  position: absolute;
  bottom: -15px;
  display: inline-block;
  width: 60px;
  height: 6px;
  left: 50%;
  -webkit-transform: translateX(-50%);
  transform: translateX(-50%);
  background-color: #1b82af;
  border-radius: 10px;
}

.h-type06{
font-size:2.4rem;
margin:15px 0 30px;
}



.sho_ttl{
font-size:3.4rem;
font-weight:700;
letter-spacing:0.2em;
height:56px;
line-height:56px;
width:180px;
text-align:center;
border-radius:40px;
color:#fff;
margin-left:auto;
margin-right:auto;
margin-bottom:15px;

}

.b_cr01{background:#f29600;}
.b_cr02{background:#ea5c77;}


.in-box01{
margin-left:auto;
margin-right:auto;
position:relative;
max-width:900px;
}

.in-box02{
}

.in-box03{
margin-left:auto;
margin-right:auto;
position:relative;
max-width:996px;
}

.present_box01{
border:solid 3px #ff9900;
display:flex;
flex-wrap:wrap;
justify-content:space-between;
align-items:center;
padding:30px;
margin:15px 0 40px;
}

.present_list01{
width:62%;
}




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

.present_shop{
width:48%;
border:solid 1px #ea5c77;
}

.present_shop h4{
text-align:center;
color:#fff;
background:#ea5c77;
font-size:2.6rem;
line-height:1.6;
padding:0.2em;
}

.present_shop h4 span{
display:block;
font-size:2.0rem;
}


.present_list01 dl{
display:flex;
flex-wrap:wrap;
justify-content:space-between;
border-bottom:dotted 2px #ff9900;
font-size:2.3rem;
font-weight:700;
padding:3px 0;
}
.present_list01 dt{
width:47%;
}
.present_list01 dd{
width:50%;
}


.present_shop_data{
display:flex;
flex-wrap:wrap;
justify-content:space-between;
align-items:center;
margin-bottom:10px;
}

.shop_data01{width:25%;}
.shop_data02{width:65%;}

.shop_data03{width:32%;}
.shop_data04{width:65%;}

.present_shop .p01{
color:#c62c51;
font-weight:700;
font-size:2.6rem;
text-align:center;
}

.present_shop .p01 span{
font-size:3.5rem;
margin:0 5px;
}

.present_shop_in{
padding:5px 25px 15px;
}

.kome_p{
font-size:1.4rem;
margin-left:1em;
line-height:1.5;
}
.kome_p:before{
content:"※";
margin-left:-1em;
}

.tac-all{
  margin-left:auto;
  margin-right:auto;
  text-align:center;
}

.sp_step{
display:none;
}




@media screen and (max-width: 1125px) {

.pc_side_btn a{ 
font-size:2.4vw;
padding:2vw 1.5vw;
border-radius:7px 0 0 7px;
}


.wrap01{
padding:5% 0;
max-width:90%;
margin-left:auto;
margin-right:auto;
margin-bottom:60px;
}

.h-type01{
font-size:3.4vw;
}

.h-type02{
font-size:3.7vw;
margin-bottom:36px;
}

.h-type02 span{
font-size:5vw;
margin:0 4px;
}

.in-box01{
max-width:90%;
}

.present_ticket{
width:28%;
}

.present_list01{
width:70%;
}

.present_list01 dl{
font-size:2vw;
}

.present_shop .p01{
font-size:2.5vw;
}

.present_shop .p01 span{
font-size:4vw;
}

.present_shop_in{
padding:1.8vw;
}

.kome_p{
font-size:1.3vw;
}

.in-box02{
width:87vw;
margin-left:auto;
margin-right:auto;
}

.entry_btn{
width:60vw;
margin-left:auto;
margin-right:auto;
}

.h-type06{
font-size:2vw;
margin:15px 0 30px;
}

.in-box03{
margin-left:auto;
margin-right:auto;
position:relative;
max-width:85vw;
}

}


@media screen and (max-width: 767px) {
.wrap01{
margin-bottom:30px;
}


.sp_foot_btn{
display:block;
position:fixed;
z-index:1;
bottom:0;
left:0;
background:#f19500;
padding:15px 0;
width:100%;
text-align:center;
}

.sp_foot_btn a{ 
color:#f19500;
width:66vw;
font-weight:bold;
font-size:2.0rem;
display:block;
background:#fff;
padding:1vw;
border-radius:40px;
margin:0 auto;
}

.sp_foot_btn a:hover{ 
text-decoration:none;
opacity:1;
}


.pc_side_btn{
display:none;
}


.pc_step{
display:none;
}

.sp_step{
display:block;
width:80vw;
margin:5vw auto;
}

.h-type01{
font-size:3.7vw;
border-bottom:dotted 2px #ff9900;
display:inline-block;
}

.h-type02{
font-size:5vw;
border-bottom:dotted 2px #ea5c77;
line-height:1.5;
margin-bottom:25px;
}

.h-type02 span{
font-size:8.0vw;
margin:0 3px;
}


.sho_ttl{
font-size:5vw;
height:10vw;
line-height:10vw;
width:30vw;
margin-bottom:5px;
}

.h-type03{
font-size:4.6vw;
}

.h-type04{
font-size:5vw;
margin-bottom:15px;
}


.h-type05{
font-size:7vw;
}
.h-type05:before{
  bottom: -10px;
  width: 40px;
  height: 4px;
}

.h-type06{
font-size:3.8vw;
margin:15px 0 15px;
}



.present_box01{
border:none;
display:block;
padding:0;
margin:15px 0 40px;
}

.present_ticket{
width:50%;
margin-left:25%;
margin-bottom:15px;
}


.present_list01{
width:100%;
}

.present_list01 dl{
font-size:3.9vw;
font-weight:700;
padding:4px 0;
}
.present_list01 dt{
width:44%;
}
.present_list01 dd{
width:53%;
}

.present_shop{
width:100%;
margin-bottom:15px;
}

.present_shop h4{
font-size:4.2vw;
line-height:1.6;
padding:0.4em 0.2em;
}

.present_shop h4 span{
display:inline-block;
font-size:3.7vw;
margin-left:1.8vw;
}


.present_shop .p01{
font-size:5vw;
}

.present_shop .p01 span{
font-size:8vw;
}

.present_shop_in{
padding:0 1.8vw 1.8vw;
}

.kome_p{
font-size:2.8vw;
}

.entry_btn{
width:84vw;
margin-left:auto;
margin-right:auto;
}

}


/*
-----------------------------------------------
▼GP 各店舗
----------------------------------------------- */

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

.gp_shop{
width:312px;
margin-bottom:32px;
}

.gp_shop a{
text-decoration:none;
color:#333;
}

.gp_shop p{
font-size:1.4rem;
font-weight:500;
}

.gp_shop_name{
font-weight:bold;
font-size:2.0rem;
}

.gp_shop_name span{
font-size:1.6rem;
margin-right:5px;
}

.gp_shop_img{
position:relative;
}

.gp_shop_img span{
position:absolute;
display:inline-block;
bottom:0;
left:0;
color:#fff;
background-color:#ea5c77;
height:26px;
line-height:26px;
font-size:1.8rem;
padding:0 0.8em;
}




@media screen and (max-width: 1125px) {
.gp_shop{
width:27vw;
margin-bottom:3vw;
}

.gp_shop p{
font-size:1.4vw;
}

.gp_shop_name{
font-size:1.8vw;
}

.gp_shop_name span{
font-size:1.3vw;
margin-right:5px;
}

}



@media screen and (max-width: 767px) {
.gp_logo_p{
width:40vw;
margin:0 auto;
}

.gp_shop{
width:80%;
margin-left:10%;
margin-bottom:6vw;
}

.gp_shop_name{
margin-top:7px;
font-size:4.8vw;
}

.gp_shop_name span{
font-size:3.5vw;
margin-right:5px;
}

.gp_shop p{
font-size:3.2vw;
}

}




/*
-----------------------------------------------
▼フッター
----------------------------------------------- */

footer{
padding:20px 0 20px 0;
position:relative;
background:#fff;
display:flex;
flex-wrap:wrap;
justify-content:center;
column-gap:2%;
align-items:center;
}

address{
font-size:2.5rem;
font-weight:bold;
}

address span{
display:block;
font-size:2.0rem;
}

.foot_tel{
font-weight:bold;
font-size:2.0rem;
background:#eae8e9;
padding:8px 30px;
}

.foot_tel span{
display:block;
font-size:2.0rem;
}

@media screen and (max-width: 767px) {
footer{
padding:4vw 8vw 22vw;
column-gap:2%;
}

address{
width:50%;
font-size:3.7vw;
text-align:center;
}

address span{
display:block;
font-size:3vw;
}

.foot_tel{
width:48%;
padding:10px 0;
text-align:center;
font-size:3vw;
}

.foot_tel span{
display:block;
font-size:3vw;
}

}



/*リンクの形状*/
#page-top a{
	display: flex;
	justify-content:center;
	align-items:center;
	width: 40px;
	height: 40px;
	transition:all 0.3s;
}
@media screen and (min-width: 1025px) {
#page-top a{
	width: 60px;
	height: 60px;
}
}


#page-top img{
opacity:0.9 !important;
}

/*リンクを右下に固定*/
#page-top {
	position: fixed;
	right: 10px;
	bottom:20px;
	z-index: 1;
    /*はじめは非表示*/
	opacity: 0;
	transform: translateY(100px);
}

/*　上に上がる動き　*/

#page-top.UpMove{
	animation: UpAnime 0.5s forwards;
}
@keyframes UpAnime{
  from {
    opacity: 0;
	transform: translateY(100px);
  }
  to {
    opacity: 1;
	transform: translateY(0);
  }
}

/*　下に下がる動き　*/

#page-top.DownMove{
	animation: DownAnime 0.5s forwards;
}
@keyframes DownAnime{
  from {
  	opacity: 1;
	transform: translateY(0);
  }
  to {
  	opacity: 1;
	transform: translateY(100px);
  }
}






/*
-----------------------------------------------
▼オープニング
----------------------------------------------- */
.loading {
  content: '';
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  top: 0;
  z-index: 1000;
  background: #fff;
  height: 100vh;
}
.loading div {
  top: 50%;
  left: 50%;
transform:translateX(-50%)translateY(-50%);
  position: absolute;
}

  .loading div img {
width:500px;
height:auto;
  }

@media screen and (max-width: 767px) {
  .loading div {
    top: 40%;
    left: 50%;
    width:80%;
    transform: translate(-50%, -50%);
    position: absolute;
  }

  .loading div img {
width:100%;
height:auto;
  }

}




.loading p {
  animation: open .8s linear;
}
@keyframes open {
  0% {
    opacity: 0;
    transform: scaleY(3) scaleX(3);
  }

  50% {
    opacity: 0.1;
    transform: scaleY(2) scaleX(2);
  }
  
  100% {
    opacity: 1;
    transform: scaleY(1) scaleX(1);
  }
}








.slider{
 margin: 0px -20px 60px;
 padding:30px 0;
 }

.slider div{
 margin: 0 20px;
 transition: none;
 }


@media screen and (max-width: 1125px) {
.slider{
 margin: 0px -20px 30px;
 padding:30px 0;
 }
}

@media screen and (max-width: 767px) {
.slider{
 margin: 0px -20px 30px;
 padding:30px 0 15px;
 }

.slider div{
 margin: 0 10px;
 }

}


/* css_end */
