@charset "UTF-8";

#index .main_container{
	position: relative;
	z-index: 2;
	background: #1c1818;
}

#index .mainvisual{
	position: relative;
	z-index: 2;
	width:100%;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-start;
}

#index .mainvisual figure.bg{
	width:100%;
	height: 120dvh;
	position: relative;
}

#index .mainvisual figure.bg::after{
	content: "";
	width:100%;
	height: 120dvh;
	display: block;
	position: absolute;
	top:0;
	left:0;
	background: linear-gradient(0deg, rgba(28,24,24,1) 0%, rgba(28,24,24,0) 51%);
}

#index .mainvisual .innerbox{
	padding:0 min(8vw,100px);
	position: absolute;
	top:0;
	left:0;
	height: 100dvh;
	width:100%;
	display: flex;
	align-items: center;
	justify-content: center;
}

#index .mainvisual h1 figure{
	width:240px;
	height: auto;
}

#index .flexbox{
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding:min(8vw,100px);
		
}

#index .flexbox .txbox{
	width:calc(50% - min(2vw,25px));
		
}

#index .flexbox .txbox .subtl{
	font-size: 0.9em;
	letter-spacing: 0.4em;
	color:#e2d8c9;
	margin:0 0 15px 0;
}

#index .flexbox .txbox h2{
	font-size: 2.6em;
	letter-spacing: 0.1em;
	line-height: 1.57em;
	color:#e2d8c9;
	margin:0 0 40px 0;
}

#index .flexbox .txbox .tx{
	font-size: 1.4em;
	letter-spacing: 0.1em;
	line-height: 2.2em;
	color:#fff;
	margin:0 0 80px 0;
}

#index .flexbox .txbox table{
	font-size: 1.4em;
	letter-spacing: 0.1em;
	line-height: 2.2em;
	color:#fff;
	margin:0 0 80px 0;
}

#index .flexbox .txbox table tr td{
	vertical-align: top !important;
}

#index .flexbox .txbox table tr td:nth-child(1){
	padding:0 2.5em 0 0;
	white-space: nowrap;
	vertical-align: top;
}

#index .flexbox .txbox a{
	width:100%;
	max-width: 300px;
}

#index .flexbox .mask_ph{
	position: relative;
	width:50%;
}

#index .flexbox .mask_ph .mask1{
	clip-path: polygon(0 15%, calc(33% - 4px) 15%, calc(33% - 4px) 85%, 0% 85%);
}

#index .flexbox .mask_ph .mask2{
	position: absolute;
	top:0;
	left:0;
	width:100%;
	height: 100%;
	clip-path: polygon(calc(33%) 25%, calc(66% - 4px) 25%, calc(66% - 4px) 95%, calc(33%) 95%);
}

#index .flexbox .mask_ph .mask3{
	position: absolute;
	top:0;
	left:0;
	width:100%;
	clip-path: polygon(66% 20%, 100% 20%, 100% 90%, 66% 90%);
}

#index .style_headcont{
	width:100%;
	padding:160px 0 0 0;
	position: relative;
}

#index .style_headcont .tlbox{
	padding:0 min(8vw,100px); 
	position: absolute;
	top:0;
	left:0;
	width:100%;
	display: flex;
	flex-direction: row-reverse;
}

#index .style_headcont .tlbox .subtl{
	font-size: 0.9em;
	letter-spacing: 0.4em;
	color:#e2d8c9;
	writing-mode: vertical-rl;
	margin:0 0 0 1em;
}

#index .style_headcont .tlbox h2{
	font-size: 2.6em;
	letter-spacing: 0.1em;
	line-height: 1.57em;
	color:#e2d8c9;
	margin:0 0 0 2em;
	writing-mode: vertical-rl;
}

#index .style_headcont .tlbox h2 span{
	text-combine-upright: all;
	margin:0 0 0.1em 0;
	position: relative;
	right:0.1em;
	display: inline-block;
	letter-spacing: 0em;
}

@-moz-document url-prefix() {
#index .style_headcont .tlbox h2 span{
	text-combine-upright: all;
	margin:0 0 0.1em 0;
	position: relative;
	right:0em;
	display: inline-block;
	letter-spacing: 0em;
}
}

_::-webkit-full-page-media, _:future, :root #index .style_headcont .tlbox h2 span {
    text-combine-upright: all;
	margin:0 0 0.1em 0;
	position: relative;
	right:0em;
	display: inline-block;
	letter-spacing: 0em;
}

#index .style_headcont .tlbox .tx{
	font-size: 1.4em;
	letter-spacing: 0.1em;
	line-height: 2.2em;
	color:#fff;
	margin:0 0 0 0;
	writing-mode: vertical-rl;
}

#index .style_headcont .tlbox .tx span{
	text-combine-upright: all;
	margin:0 0 0.2em 0;
}


#index .scroll_container {
  height: 400dvh;
}

#index .scroll_container .triger{
  height: 100dvh;
}

#index .sticky_wrap {
  overflow: hidden;
  position: sticky;
  top: 0;
  height: 100dvh;
  width:100%;
}

#index .horizontal_scroll {
  position: absolute;
  top: 0;
  height: 100%;
  width: calc(400vw - 80px) ;
  will-change: transform;
  display: flex;
  justify-content: space-between;
}

#index .horizontal_scroll .innerbox{
	display: flex;
}

#index .horizontal_scroll .box{
	width:calc(100vw - 80px);
	height: 100dvh;
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding:0 min(8vw,100px);
}

#index .horizontal_scroll .txbox{
	width:calc(50% - min(2vw,25px));
}

#index .horizontal_scroll .txbox .tlbox{
	color:#e2d8c9;
	display: flex;
	align-items: center;
	margin:0 0 40px 0;
}

#index .horizontal_scroll .txbox .tlbox .subtl{
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-content: center;
	text-align: center;
	font-size: min(2.1vw,2.6em);
	white-space: nowrap;
	letter-spacing: 0.1em;
	padding:30px 0;
	background-image:url("/images/arrow_top.svg"),url("/images/arrow_bottom.svg");
	background-repeat: no-repeat;
	background-size: max(3.6vw,44px);
	background-position:top center,bottom center;
}

#index .horizontal_scroll .txbox .tlbox span{
	font-size: 0.46em;
	display: block;
	margin:0 0 0.5em 0;
}

#index .horizontal_scroll .txbox .tlbox h2{
	font-size: min(2.7vw,3.8em);
	letter-spacing: 0.1em;
	margin:0 0 0 20px;
	white-space: nowrap;
}

#index .horizontal_scroll .txbox .tlbox h2 span{
	font-size: 0.68em;
	margin:15px 0 0 0;
}

#index .horizontal_scroll .txbox .tlbox h2 span::before{
	content: "";
	border-bottom:1px solid #e2d8c9;
	width:12px;
	vertical-align: middle;
	margin:0 10px 0 0;
	display: inline-block;
	position: relative;
	top:-0.1em;
}

#index .horizontal_scroll .txbox .tlbox h2 span::after{
	content: "";
	border-bottom:1px solid #e2d8c9;
	width:12px;
	vertical-align: middle;
	margin:0 0 0 10px;
	display: inline-block;
	position: relative;
	top:-0.1em;
}

#index .horizontal_scroll .txbox p.tx{
	font-size:1.4em;
	line-height: 2.2em;
	color:#fff;
	letter-spacing: 0.1em;
}

#index .horizontal_scroll .phbox{
	width:45%;
}

#index .horizontal_scroll .phbox figure{
	width:100%;
	aspect-ratio: 1 / 1;
	overflow: hidden;
}

#index .style_btnbox{
	display: flex;
	justify-content:center;
	margin:0 0 230px 0;
}

#index .style_btnbox a{
	width:300px;
}

#index .menu_cont{
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding:0 min(8vw,100px) min(8vw,100px) 0;
		
}

#index .menu_cont .txbox{
	width:calc(35% - min(8vw,100px));
	order:1;
		
}

#index .menu_cont .txbox .subtl{
	font-size: 0.9em;
	letter-spacing: 0.4em;
	color:#e2d8c9;
	margin:0 0 15px 0;
}

#index .menu_cont .txbox h2{
	font-size: 2.6em;
	letter-spacing: 0.1em;
	line-height: 1.57em;
	color:#e2d8c9;
	margin:0 0 40px 0;
}

#index .menu_cont .txbox .tx{
	font-size: 1.4em;
	letter-spacing: 0.1em;
	line-height: 2.2em;
	color:#fff;
	margin:0 0 80px 0;
}

#index .menu_cont .txbox a{
	width:100%;
	max-width: 300px;
}

#index .menu_cont figure{
	position: relative;
	width:65%;
}

#index .map_cont{
	display: flex;
	flex-direction: column;
	padding:0 min(8vw,100px) 150px;
		
}

#index .map_cont .map{
	aspect-ratio: 1000 / 480;
	position: relative;
	filter:grayscale(1);
}

#index .map_cont .map iframe{
	width:100%;
	height:100%;
	position: absolute;
	top:0;
	left:0;
}

#index .map_cont a.icon{
	font-size: 0.9em;
	letter-spacing: 0.4em;
	color:#e2d8c9;
	margin:15px 0 0 auto;
}

#index .map_cont a.icon::after{
	content: "";
	width:10px;
	height: 14px;
	background-image:url("/images/map_icon.svg");
	background-size: contain;
	background-repeat: no-repeat;
	display: inline-block;
	margin:0 0 0 10px;
	vertical-align: middle;
	position: relative;
	top:-2px;
}

#index .fixed_bgbox{
	width:100%;
	position: relative;
	z-index: 1;
}

#index .fixed_bgbox .bg{
	width:100vw;
	height:100dvh;
	position: fixed;
	top:0;
	left:0;
}

#index .fixed_bgbox .innerbox{
	padding:60px min(8vw,100px);
	position: relative;
	z-index: 2;
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
}

#index .fixed_bgbox .innerbox h2{
	font-size:2.6em;
	color:#fff;
	letter-spacing: 0.1em;
	margin:0 0 20px 0;
}

#index .fixed_bgbox .innerbox .tx{
	font-size:1.4em;
	line-height: 2.2em;
	color:#fff;
	letter-spacing: 0.1em;
	margin:0 0 0 0;
	text-align: center;
}

#index .fixed_bgbox .innerbox figure{
	width:250px;
}

#index .fixed_bgbox .innerbox a{
  width: 270px;
  border-radius: 5px;
  height: 52px;
  display: flex;
  font-size: 1.4em;
  justify-content: center;
  align-items: center;
  background-color: #e2d8c9;
  color: #221815;
}

#index .fixed_bgbox .innerbox a::after{
	content: "";
  width: 12px;
	height: 10px;
   background-image: url("/images/blank.svg");
  background-repeat: no-repeat;
  background-size: contain;
	display: inline-block;
	margin:0 0 0 10px;
	vertical-align: middle;
}

@media screen and (max-width:750px) {
#index .main_container{
	position: relative;
	z-index: 2;
	background: #1c1818;
}

#index .mainvisual{
	position: relative;
	z-index: 2;
	width:100%;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-start;
}

#index .mainvisual figure.bg{
	width:100%;
	height: 120dvh;
	position: relative;
}

#index .mainvisual figure.bg::after{
	content: "";
	width:100%;
	height: 120dvh;
	position: relative;
	display: block;
	position: absolute;
	top:0;
	left:0;
	background: linear-gradient(0deg, rgba(28,24,24,1) 0%, rgba(28,24,24,0) 51%);
}

#index .mainvisual .innerbox{
	padding:0 5%;
	position: absolute;
	top:0;
	left:0;
	height: 100dvh;
	width:100%;
	display: flex;
	align-items: center;
	justify-content: center;
}

#index .mainvisual h1 figure{
	width:170px;
	height: auto;
}

#index .flexbox{
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-direction: column;
	padding:70px 5% 140px;
}

#index .flexbox .txbox{
	width:100%;
	order: 1;
		
}

#index .flexbox .txbox .subtl{
	font-size: 0.8em;
	letter-spacing: 0.4em;
	color:#e2d8c9;
	margin:0 0 10px 0;
}

#index .flexbox .txbox h2{
	font-size: 2em;
	letter-spacing: 0.1em;
	line-height: 1.57em;
	color:#e2d8c9;
	margin:0 0 20px 0;
}

#index .flexbox .txbox .tx{
	font-size: 1.3em;
	letter-spacing: 0.1em;
	line-height: 1.8em;
	color:#fff;
	margin:0 0 50px 0;
}

#index .flexbox .txbox table{
	font-size: 1.3em;
	letter-spacing: 0.1em;
	line-height: 2.2em;
	color:#fff;
	margin:0 0 0 0;
}

#index .flexbox .txbox table tr td{
	vertical-align: top !important;
}

#index .flexbox .txbox table tr td:nth-child(1){
	padding:0 2.5em 0 0;
	white-space: nowrap;
	vertical-align: top;
}

#index .flexbox .txbox a{
	width:90%;
	max-width: 300px;
	margin:0 auto;
}

#index .flexbox .mask_ph{
	position: relative;
	width:100%;
}

#index .flexbox .mask_ph .mask1{
	clip-path: polygon(0 15%, calc(33% - 4px) 15%, calc(33% - 4px) 85%, 0% 85%);
}

#index .flexbox .mask_ph .mask2{
	position: absolute;
	top:0;
	left:0;
	width:100%;
	height: 100%;
	clip-path: polygon(calc(33%) 25%, calc(66% - 4px) 25%, calc(66% - 4px) 95%, calc(33%) 95%);
}

#index .flexbox .mask_ph .mask3{
	position: absolute;
	top:0;
	left:0;
	width:100%;
	clip-path: polygon(66% 20%, 100% 20%, 100% 90%, 66% 90%);
}

#index .style_headcont{
	width:100%;
	padding:200px 0 0 0;
	position: relative;
}

#index .style_headcont .tlbox{
	padding:0 min(8vw,100px); 
	position: absolute;
	top:0;
	left:0;
	width:100%;
	display: flex;
	flex-direction: row-reverse;
}

#index .style_headcont .tlbox .subtl{
	font-size: 0.8em;
	letter-spacing: 0.4em;
	color:#e2d8c9;
	writing-mode: vertical-rl;
	margin:0 0 0 1em;
}

#index .style_headcont .tlbox h2{
	font-size: 2em;
	letter-spacing: 0.1em;
	line-height: 1.57em;
	color:#e2d8c9;
	margin:0 0 0 1em;
	writing-mode: vertical-rl;
}

#index .style_headcont .tlbox h2 span{
	text-combine-upright: all;
	margin:0 0 0.1em 0;
}

#index .style_headcont .tlbox .tx{
	font-size: 1.3em;
	letter-spacing: 0.1em;
	line-height: 1.7em;
	color:#fff;
	margin:0 0 0 0;
	writing-mode: vertical-rl;
}

#index .style_headcont .tlbox .tx span{
	text-combine-upright: all;
	margin:0 0 0.2em 0;
}
	
#index .style_headcont figure{
	aspect-ratio: 1 / 1;
}
	
#index .style_headcont figure img{
	object-fit: cover;
	width:100%;
	height: 100%;
}


#index .scroll_container {
  height: 400dvh;
}

#index .scroll_container .triger{
  height: 100dvh;
}

#index .sticky_wrap {
  overflow: hidden;
  position: sticky;
  top: 0;
  height: 100dvh;
  width:100%;
}

#index .horizontal_scroll {
  position: absolute;
  top: 0;
  height: 100%;
  width: calc(400vw) ;
  will-change: transform;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}

#index .horizontal_scroll .innerbox{
	display: flex;
}

#index .horizontal_scroll .box{
	width:calc(100vw);
 	height: calc(100dvh - 50px);
	display: flex;
	justify-content: space-between;
	flex-direction: column;
	align-items: center;
	padding:100px 5vw 10vw;
}

#index .horizontal_scroll .txbox{
	width:100%;
}

#index .horizontal_scroll .txbox .tlbox{
	color:#e2d8c9;
	display: flex;
	align-items: center;
	margin:0 0 20px 0;
}

#index .horizontal_scroll .txbox .tlbox .subtl{
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-content: center;
	text-align: center;
	font-size: min(4.1vw,2em);
	white-space: nowrap;
	letter-spacing: 0.1em;
	padding:30px 0;
	background-image:url("/images/arrow_top.svg"),url("/images/arrow_bottom.svg");
	background-repeat: no-repeat;
	background-size: max(3.6vw,44px);
	background-position:top center,bottom center;
}

#index .horizontal_scroll .txbox .tlbox span{
	font-size: 0.46em;
	display: block;
	margin:0 0 0.5em 0;
}

#index .horizontal_scroll .txbox .tlbox h2{
	font-size: min(5vw,2em);
	letter-spacing: 0.1em;
	margin:0 0 0 20px;
	white-space: nowrap;
}

#index .horizontal_scroll .txbox .tlbox h2 span{
	font-size: 0.68em;
	margin:15px 0 0 0;
}

#index .horizontal_scroll .txbox .tlbox h2 span::before{
	content: "";
	border-bottom:1px solid #e2d8c9;
	width:12px;
	vertical-align: middle;
	margin:0 10px 0 0;
	display: inline-block;
	position: relative;
	top:-0.1em;
}

#index .horizontal_scroll .txbox .tlbox h2 span::after{
	content: "";
	border-bottom:1px solid #e2d8c9;
	width:12px;
	vertical-align: middle;
	margin:0 0 0 10px;
	display: inline-block;
	position: relative;
	top:-0.1em;
}

#index .horizontal_scroll .txbox p.tx{
	font-size:1.3em;
	line-height: 2.2em;
	color:#fff;
	letter-spacing: 0.1em;
}

#index .horizontal_scroll .phbox{
	margin-top:20px;
	width:100%;
}

#index .horizontal_scroll .phbox figure{
	width:100%;
	aspect-ratio: 1.5 / 1;
	overflow: hidden;
	margin-top:auto;
}
	
#index .horizontal_scroll .phbox figure img{
	object-fit:cover;
	width:100%;
	height: 100%;
}

#index .style_btnbox{
	display: flex;
	justify-content:center;
	margin:0 0 100px 0;
}

#index .style_btnbox a{
	max-width:300px;
	width:90%;
}

#index .menu_cont{
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-direction: column;
	padding:0 0;
		
}

#index .menu_cont .txbox{
	width:90%;
	margin:40px auto 0;
	order:1;
		
}

#index .menu_cont .txbox .subtl{
	font-size: 0.8em;
	letter-spacing: 0.4em;
	color:#e2d8c9;
	margin:0 0 10px 0;
}

#index .menu_cont .txbox h2{
	font-size: 2em;
	letter-spacing: 0.1em;
	line-height: 1.57em;
	color:#e2d8c9;
	margin:0 0 20px 0;
}

#index .menu_cont .txbox .tx{
	font-size: 1.3em;
	letter-spacing: 0.1em;
	line-height: 2.2em;
	color:#fff;
	margin:0 0 50px 0;
}

#index .menu_cont .txbox a{
	width:90%;
	max-width: 300px;
	margin:0 auto;
}

#index .menu_cont figure{
	position: relative;
	width:100%;
}

#index .map_cont{
	display: flex;
	flex-direction: column;
	padding:0 0 70px;
		
}

#index .map_cont .map{
	aspect-ratio: 750 / 450;
	position: relative;
	filter:grayscale(1);
}

#index .map_cont .map iframe{
	width:100%;
	height:100%;
	position: absolute;
	top:0;
	left:0;
}

#index .map_cont a.icon{
	font-size: 0.8em;
	letter-spacing: 0.4em;
	color:#e2d8c9;
	margin:15px 5% 0 auto;
}

#index .map_cont a.icon::after{
	content: "";
	width:9px;
	height: 13px;
	background-image:url("/images/map_icon.svg");
	background-size: contain;
	background-repeat: no-repeat;
	display: inline-block;
	margin:0 0 0 5px;
	vertical-align: middle;
	position: relative;
	top:-2px;
}

#index .fixed_bgbox{
	width:100%;
	position: relative;
	z-index: 1;
}

#index .fixed_bgbox .bg{
	width:100vw;
	height:100dvh;
	position: fixed;
	top:0;
	left:0;
}

#index .fixed_bgbox .innerbox{
	padding:50px 5%;
	position: relative;
	z-index: 2;
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
}

#index .fixed_bgbox .innerbox h2{
	font-size:2em;
	color:#fff;
	letter-spacing: 0.1em;
	margin:0 0 10px 0;
}

#index .fixed_bgbox .innerbox .tx{
	font-size:1.3em;
	line-height: 2.2em;
	color:#fff;
	letter-spacing: 0.1em;
	margin:0 0 0 0;
	text-align: center;
}

#index .fixed_bgbox .innerbox figure{
	width:210px;
}

#index .fixed_bgbox .innerbox a{
  width: 270px;
  border-radius: 5px;
  height: 52px;
  display: flex;
  font-size: 1.4em;
  justify-content: center;
  align-items: center;
  background-color: #e2d8c9;
  color: #221815;
}

#index .fixed_bgbox .innerbox a::after{
	content: "";
  width: 12px;
	height: 10px;
   background-image: url("/images/blank.svg");
  background-repeat: no-repeat;
  background-size: contain;
	display: inline-block;
	margin:0 0 0 10px;
	vertical-align: middle;
}
}