@charset "UTF-8";
/*-----------------------------------------------
__Header
-----------------------------------------------*/
header{
	position: fixed;
	left: 0;
	top: 0;
	width: 100%;
	z-index: 999;
	transition: all ease 1.2s;
  }
  header.hide{
    transform: translateY(-100%);
	transition: all ease .7s;
}
  .header_inner {
	position: relative;
	height: 80px;
  }

header nav{
	width: 100%;
	height: 100%;
	padding-right: 24px;
	box-sizing: border-box;
}
#gl_nv{
	height: 100%;
	display: flex;
	justify-content: flex-end;
	align-items: center;
	gap: 0 24px;
	margin: 0 auto;
}
#gl_nv a{
	display: table;
	color: var(--main);
	position: relative;
}
#gl_nv a::after{
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	height: 1px;
	background-color: var(--main);
	transform: scale(0, 1);
	transform-origin: right top;
	transition: transform .3s;
}
#gl_nv a:hover::after{
	transform-origin: left top;
	transform: scale(1, 1);
}



/*-----------------------------------------------
__Main
-----------------------------------------------*/
main{
	display: flex;
	flex-direction: column;
	gap: 100px 0;
	padding-bottom: 100px;
}

h1, h2, h3{
	font-weight: normal;
}
main h2{
	font-size:2em;
	margin-bottom:0.5em;
	line-height: 1.4;
}
main h3{
	font-size: 1.4em;
	line-height: 1.4;
}
ul.list > li{
	list-style-type:disc;
	margin-left:1em;
	padding-left:0.5em;
	margin-bottom:0.5em;
}


#visual{
	position: relative;
	width: 100%;
	height: 100svh;
	min-height: 800px;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
}
#visual figure.visual_bg{
	position: absolute;
	z-index: 0;
	width: 100%;
	height: 100%;
	left: 0;
	top: 0;
}
#visual figure.pararaxItem{
	position: relative;
	z-index: 1;
	width: 100%;
	height: 100%;
	transition: transform 0.5s linear .008s;
	display: flex;
	align-items: center;
	justify-content: center;
}
#visual figure.pararaxItem img{
	max-height: 800px;
}
#visual > div.wrap{
	position: absolute;
	z-index: 2;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	width: 94%;
	height: 90svh;

	display: flex;
	flex-direction: column;
	justify-content: space-between;
}
#visual .txt_wrap{
	width: 100%;
	flex-direction: row-reverse;
	justify-content: space-between;
	align-items: flex-end;
}
#visual .txt_wrap section{
	max-width: 600px;
}
#visual .txt_wrap h2{
	display: flex;
	flex-direction: column;
}
#visual aside{
	opacity: 0.5;
}
#visual aside ul{
	display: flex;
	flex-wrap: wrap;
	max-width: 400px;
	gap: 0.25em 0.75em;
}
#visual aside ul > li::before{
	content: "#";
	padding-right: 0.2em;
}

.banner{
	margin: 0 auto;
	max-width: 80%;
}
.banner a{
	padding: 0 5%;
	border-left: 1px solid var(--main);
	border-right: 1px solid var(--main);
	text-decoration: none;
	align-items: center;
	transition: all ease 1s;
}
.banner a:hover{
	background-color: rgba(var(--main-rgb), 0.1);
	animation: hv_banner 1s forwards 0s ;
}
@keyframes hv_banner{
	0%{
		transform: scale(1.0);
	}
	100%{
		transform: scale(0.98);
	}
}
.banner a p{
	display: inline;
	margin-bottom: 0;
	padding-bottom: 3px;
    line-height: 2;
    background-image: linear-gradient(90deg, var(--main), var(--main));
    background-repeat: no-repeat;
    background-position: left bottom;
    background-size: 0 1px;
    text-decoration: none;
    transition: background-size 0.5s;
}
.banner a:hover p{
	background-size: 100% 1px;
}
.banner h2 .point::after{
	width: 5px;
	height: 5px;
}

#featured{
	display: flex;
	flex-direction: column;
	gap: 80px 0;
	padding: 60px 0;
}
#featured .featured_top > .txt_box{
	width: 30%;
}
#featured .featured_top > .img_box{
	width: 65%;
}
.featured_top dl{
	height: 100%;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}
.featured_top dt{
	font-size: 2.6em;
	font-weight: 300;
}
.featured_top dd .fl_box{
	margin-bottom: 40px;
}
.featured_top dd .num{
	font-size: 5em;
	font-weight: 300;
}
.featured_top dd .fl_box figure{
	width: 100px;
}
.featured_img{
	justify-content: flex-start !important;
	width: 90% !important;
	margin-top:40px ;
	gap: 0 40px;
}
.featured_img .sm{
	width: 70%;
}
.featured_img .sm figure{
	aspect-ratio: 1 / 1;
	width: 100%;
}
.featured_img .lg figure{
	aspect-ratio: 3 / 4;
}

.featured_long{
	padding: 20px 8%;
}
.featured_long .fl_box{
	aspect-ratio: 4 / 1;
	justify-content: flex-start;
	align-items: center;
	gap: 0 100px;
}
.featured_long dt{
	font-size: 2.6em;
	font-weight: 300;
}
.featured_long dd{
	font-size: 1.2em;
}

#about_sz{
	align-items: center;
}


#story .parallax_box{
	width: 100%;
	height: 100svh;
	min-height: 800px;
	overflow-y: scroll;
	scrollbar-width: none;
}
#story .parallax_box::-webkit-scrollbar{
	display: none;
}
#story .parallax_content{
	width: 100%;
	height: 100%;
	background-attachment: fixed ;
	display: flex;
	align-items: center;
	justify-content: center;
}
.slide01{
	background-image: url(../images/story_01.jpg);
	background-size: cover;
  	background-position: center;
}
.slide02{
	background-image: url(../images/story_02.jpg);
	background-size: cover;
  	background-position: center;
}
.slide03{
	background-image: url(../images/story_03.jpg);
	background-size: cover;
  	background-position: center;
}
.slide04{
	background-image: url(../images/story_04.jpg);
	background-size: cover;
  	background-position: center;
}
#story .txt_wrap{
	color: #fff;
}
#story .txt_wrap p{
	font-size: 1.1em;
	line-height: 2;
	margin-bottom: 0;
}

#line-up .line-up_item{
	gap: 60px 40px;
}
#line-up .line-up_item article{
	border: 1px solid rgba(var(--main-rgb),0.5);
	padding: 60px 40px;
}
#line-up .line-up_item dl{
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 60px 0;
}
#line-up .line-up_item dt{
	font-size: 1.6em;
}

#guide section{
	padding: 60px 0;
}
#guide .img_box{
	width: 30%;
}
#guide .txt_box{
	width: 65%;
}
#guide ol{
	counter-reset: ol_list;
}
#guide ol > li{
	counter-increment: ol_list;
}
#guide ol > li::before{
	content: counter(ol_list)".";
	padding-right: 0.5em;
}
#guide .bd_box{
	margin-top: 40px;
	padding: 40px;
	border: 1px solid var(--main);
}
#guide .accordion{
	display: flex;
	flex-direction: column;
	gap: 24px 0;
}
#guide .accordion dt{
	cursor: pointer;
	transition: var(--tra);
	margin-bottom: 0.5em;
}
#guide .accordion dt::before{
	content: "Q.";
	padding-right: 0.5em;
}
#guide .accordion dt:hover{
	opacity: 0.7;
}
#guide .accordion dt.open{
	opacity: 0.5;
}
#guide .accordion dd::before{
	content: "A.";
	padding-right: 0.5em;
}

#access .section_img{
	height: 50vh;
	overflow: hidden;
	margin-bottom: 100px;
}
#access p.bg.ta_center{
	padding: 10px;
	margin-bottom: 40px;
	border: 1px solid var(--main);
	font-size: 1.2em;
}
#access .fl_box{
	margin-top: 60px;
	justify-content: space-around;
}
#access .fl_box > div{
	width: 45%;
}
#access .fl_box figure{
	width: 100%;
	aspect-ratio: 3 / 2;
	overflow: hidden;
	margin-bottom: 32px;
}
#access .txt_wrap{
	display: flex;
	flex-direction: column;
	gap: 8px 0;
}
#access .txt_wrap .info{
	font-size: 90%;
	display: flex;
	flex-direction: column;
	gap: 4px 0;
	margin-bottom: 32px;
}
#access .txt_wrap .info > div{
	width: 100%;
	display: flex;
	gap: 0 24px;
}
#access .txt_wrap .info dt{
	width:5em;
}
#access .txt_wrap .info dd{
	width: 60%;
}


/*-----------------------------------------------
__Common
-----------------------------------------------*/
.btn_link a{
	display: inline-flex;
	align-items: center;
	gap: 0 20px;
	text-decoration: none;
	padding: 10px 0;
	position: relative;
	overflow: hidden;
}
.btn_link a::after{
	content: "";
	width: 1em;
	height: 1em;
	background-image: url(../images/icon_arrow.svg);
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
}
.btn_link a::before{
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	height: 1px;
	background-color: var(--main);
	transition: var(--tra);
}
.btn_link a:hover::before{
	animation: hv_btn_link 1.6s ease-in-out infinite;
}
@keyframes hv_btn_link{
  0% {
    width: 0;
    left: 0;
  }
  20% {
    width: 100%;
  }
  100% {
    left: 100%;
  }
}
.btn_link.bg_btn a{
	background-color: var(--main);
	color: var(--wh);
	text-align: center;
	border-radius: 50px;
	padding: 10px 24px;
}
.btn_link.bg_btn a:hover{
	opacity: 0.7;
}
.btn_link.bg_btn a::before{
	display: none;
}
.btn_link.bg_btn a::after{
	width: 0.9em;
	height: 0.9em;
	background-image: url(../images/icon_arrow_wh.svg);
}

.fl_box{
	display:flex;
	justify-content: space-between;
	width:100%;
}
.fl_box.wrap{
	width: 90%;
}
.fl_box > .txt_box{
	width: 55%;
}
.fl_box > .img_box{
	width: 40%;
}
.img_box > figure{
	width: 100%;
	aspect-ratio: 3 / 2;
	overflow: hidden;
}

.bg{
	background-color: rgba(var(--main-rgb), 0.1);
}
.point{
	position: relative;
}
.point::after{
	content: "";
	position: absolute;
	right: -5px;
	top: -5px;
	width: 3px;
	height: 3px;
	border-radius: 50%;
	background-color: var(--point);
}

.pc_no{
	display:none;
}
a.tel{
	pointer-events:none;
}
.ta_center{
	text-align:center;
}



/*-----------------------------------------------
__Footer
-----------------------------------------------*/
footer{
	min-height: 80vh;
	color: var(--wh);
	position: relative;
	background-color: var(--main);
	display: flex;
}
footer > figure{
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	height: 100%;
}
footer .wrap{
	padding: 160px 0 60px;
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 60px 0;
}
footer .f_top{
	align-items: center;
}
footer .f_top .txt_box{
	display: flex;
	flex-direction: column;
	font-size:2em;
}

footer .info{
	align-items: flex-end;
}
footer a.a_tel{
	color: var(--wh);
	text-decoration: none;
}
footer .btn_link a{
	color: var(--wh);
	font-size: 0.9em;
	opacity: 0.7;
}
footer .btn_link a::after{
	background-image: url(../images/icon_arrow_wh.svg);
}
footer .btn_link a::before{
	background-color: var(--wh);
}
