*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([class]){color:inherit;text-decoration:none}a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}

@charset "UTF-8";

@font-face {
    font-family: 'Noto Sans Japanese';
    font-style: normal;
    font-weight: 400;
    src: url('fonts/NotoSansCJKjp-Regular.woff2') format('woff2'),
	     url('fonts/NotoSansCJKjp-Regular.woff') format('woff'),
	     url('fonts/NotoSansCJKjp-Regular.ttf')  format('truetype'),
         url('fonts/NotoSansCJKjp-Regular.eot') format('embedded-opentype');
}
@font-face {
    font-family: 'Noto Sans Japanese';
    font-style: normal;
    font-weight: 500;
    src: url('fonts/NotoSansCJKjp-Medium.woff2') format('woff2'),
	     url('fonts/NotoSansCJKjp-Medium.woff') format('woff'),
	     url('fonts/NotoSansCJKjp-Medium.ttf')  format('truetype'),
         url('fonts/NotoSansCJKjp-Medium.eot') format('embedded-opentype');
}
@font-face {
    font-family: 'Noto Sans Japanese';
    font-style: normal;
    font-weight: 700;
    src: url('fonts/NotoSansCJKjp-Bold.woff2') format('woff2'),
	     url('fonts/NotoSansCJKjp-Bold.woff') format('woff'),
	     url('fonts/NotoSansCJKjp-Bold.ttf')  format('truetype'),
         url('fonts/NotoSansCJKjp-Bold.eot') format('embedded-opentype');
}
@font-face {
    font-family: 'Noto Sans Japanese';
    font-style: normal;
    font-weight: 900;
    src: url('fonts/NotoSansCJKjp-Black.woff2') format('woff2'),
	     url('fonts/NotoSansCJKjp-Black.woff') format('woff'),
	     url('fonts/NotoSansCJKjp-Black.ttf')  format('truetype'),
         url('fonts/NotoSansCJKjp-Black.eot') format('embedded-opentype');
}

@font-face {
  font-family: 'Futura';
  font-style: normal;
  font-weight: 400;
    src: local("Futura"),
      url(fonts/Futura.woff2) format('woff2'),
      url(fonts/Futura.woff) format('woff'),
      url(fonts/Futura.ttf) format('truetype');
}

@font-face {
  font-family: 'Futura';
  font-style: bold;
  font-weight: 700;
    src: local("Futura"),
      url(fonts/Futura_bold.woff2) format('woff2'),
      url(fonts/Futura_bold.woff) format('woff'),
      url(fonts/Futura_bold.otf) format('truetype');
}

.sp,.sp.ib	{
	display: none !important;
}

*	{
	font-family: 'Noto Sans Japanese', sans-serif !important;
	color: #4a4a4a;
	letter-spacing: 0.5px;
}

a	{
	color: #555;

}
span.red	{
	color: #C22A2C !important;
}

.fa, .fab, .fad, .fal, .far, .fas	{
	font-family: "Font Awesome 5 Brands" !important;
}

.fa, .far, .fas	{
	font-family: "Font Awesome 5 Pro" !important;
}

body	{
	position: relative;
}
.body_wrapper	{
	position: relative;
}
.body_inner	{
	overflow: hidden;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
}

.bodybg	{
	margin: 0;
	padding: 0;
	background-image: url('images/kai_key.jpg');
	background-size: 100% auto;
	background-position: top center;
	background-attachment: fixed;
	display: block;
	width: 100vw;
	top: 0;
	left: 0;
	position: absolute;
	top: 0;
	left: 0;
}

.bodybefore	{
	background-size: 100% auto;
	background-position: top center;
	background-attachment: fixed;
	position: absolute;
	top: 0;
	left: -50%;
	width: 75%;
	display: block;
  	transform: skewX(-15deg);
  	background-color: white;
  	z-index: 2;
	animation: anime3 1.5s ease .5s;
}

.bodyafter	{
	position: absolute;
	top: 0;
	right: -50%;
	width: 75%;
	display: block;
	content: '';
	background-color: white;
	transform: skewX(-15deg);
  	z-index: 2;
}

.bodybefore,.bodyafter	{
  	mix-blend-mode: saturation;
}

.bodybeforewhite,.bodybeforewhite2	{
	position: absolute;
	top: 0;
	left: -50%;
	width: 70%;
	display: block;
	content: '';
	background-color: white;
	transform: skewX(-15deg);
  	z-index: 2;
  	mix-blend-mode: overlay;
	animation: anime2 1.5s ease .5s;
}

.bodyafterwhite,.bodyafterwhite2	{
	position: absolute;
	top: 0;
	right: -50%;
	width: 70%;
	display: block;
	content: '';
	background-color: white;
	transform: skewX(-15deg);
  	z-index: 2;
  	mix-blend-mode: overlay;
}

.bodybeforewhite2,.bodyafterwhite2	{
	opacity: 0.8;
  	mix-blend-mode: luminosity;
}

div.keyarea, div.sec1, div.sec2, div.sec3	{
	min-height: 100vh;
}

div.sec1, div.sec2, div.sec3	{
	min-height: 120vh;
}

.keyarea,.sec1,.sec2,.sec3	{
	position: relative;
}

.sec3 img	{
	margin-bottom: 200px;
}

.keytextarea	{
	position: absolute;
	top: 50%;
	left: 10%;
	z-index: 4;
	animation: anime1 5s ease -2s;
	transform: translateY(-50%);
}
.keytextarea .infoarea	{
	padding-top: 15px;
	padding-left: 15px;
}
.keytextarea h1	{
	font-family: 'Futura' !important;
	font-weight: 200;
	font-style: italic;
	color: #C22A2C;
	font-size: 18px;
}
.keytextarea .infoarea ul	{
	margin: 15px 0 30px;
	padding: 0;
}
.keytextarea .infoarea ul li	{
	font-size: 12px;
	list-style-type: none;
	max-width: 300px;
}
.menu	{
	position: absolute;
	top: 30px;
	right: 30px;
	z-index: 4;
	animation: anime4 5s ease;
}

.menu .navi,.menu .sns	{
	display: inline-block;
}

.menu li	{
	display: table-cell;
}


.menu .navi li a	{
	color: white;
	font-family: 'Futura' !important;
	font-size: 14px;
}

.sns	{
	padding-inline-start:0;
}
.menu .sns li	{
	padding-left: 15px;
}
.menu .sns li a i	{
	color: white;
	font-size: 14px;
}

.elem	{
	position: absolute;
	top: 50%;
	left: 50%;
	z-index: 4;
	transform: translate(-50%,-50%);
}

.elem {
  opacity: 0;
  transform: translate(-50%, -40%); /* フェードインで動く高さを指定 */
  transition: all 2000ms; /* フェードインにかかる時間を指定 */
}

.effect-scroll {
  opacity: 1;
  transform: translate(-50%, -50%);
}

footer	{
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	padding: 30px 0;
	text-align: center;
	background-color: #4a4a4a;
	z-index: 5;
}

footer p	{
	font-size: 12px;
	color: white;
}

.blocker	{
	 z-index: 1000 !important;
}
.modal	{
	 padding: 40px !important;
 }
.blocker ul	{
	padding-left: 0;
	
} 
.blocker ul li	{
	list-style: none;
	font-size: 14px;
	margin-bottom: 10px;
	display: flex;
}

.blocker ul li .red	{
	width: 20px;
	margin-right: 10px;
} 
.blocker ul li:last-child	{
	margin-bottom: 0;
}
#loading{
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%,-50%);
  }
      
#loader-bg {
    position: fixed;
    width: 100%;
    height: 100%;
    top: 0px;
    left: 0px;
    background: #fff;
    z-index: 6;
 }
 
body{
  background:white;
}

@keyframes anime1 {
0% {opacity: 0;	transform: translate(-100px, -50%);}
100% {opacity: 1;transform: translate(0, -50%);}
}

@keyframes anime2 {
0% {left: -55%;}
100% {left: -50%;}
}

@keyframes anime3 {
0% {left: -55%;}
100% {left: -50%;}
}

@keyframes anime4 {
0% {right: 0;}
100% {right: 30px;}
}

.sec	{
	min-height: 100vh;
}
.sec_inner	{
	max-width: 800px;
	border: 3px solid #C22A2C;
	background-color: rgba(0,0,0,0.5);
	width: 100%;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
	padding: 50px;
	text-align: center;
}
.sec_inner h1,.sec_inner h1 span,.sec_inner h2,.sec_inner h3,.sec_inner p,.sec_inner p strong	{
	color: white;
	text-align: center;
}
.sec_inner h1,.sec_inner h1 span,.sec_inner h2,.sec_inner h3	{
	font-family: 'Futura', 'Noto Sans Japanese', sans-serif !important;
	font-weight: normal;
	margin-bottom: 30px;
}

.sec2 .sec_inner h1	{
	margin-bottom: 0;
}
.sec_inner h1	{
	position: relative;
	display: inline-block;
	letter-spacing: 2px;
}

.sec_inner h1:after	{
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	height: 20px;
	display: block;
	background-color: #C22A2C;
	z-index: 1;
	width: 100%;
}
.sec_inner h1 span	{
	position: relative;
	z-index: 2;
}
.sec_inner p	{
	font-size: 14px;
}
.slick-track	{
	display: flex !important;
	align-items: center;
}
.gridInnerDetail	{
	display: flex !important;
	align-items: center;
}
.sec_inner .gridInnerDetail a	{
	width: 33.333%;
	display: flex;
	align-items: center;
	justify-content: center;
}

.sec_inner .gridInnerDetail a img	{
	width: 100%;
}
.sec_inner .gridInnerDetail p	{
	display: block;
	width: 66.666%;
}
.singleItem	{
	display: block;
}

.singleItem a	{
	text-align: center;
	display: flex;
	aspect-ratio: 1/1;
	padding: 10px;
	box-sizing: border-box;
	align-items: center;
	justify-content: center;
}

.slick-slide img	{
	margin: 0 auto;
	max-width: 100%;
	max-height: 100%;
}

@media (orientation: portrait) {
  .bodybg	{
	  background-size: auto 100%;
	  background-position: right -30vw top;
  }
  
}

@media screen and (max-width: 840px)	{
	.pc	{
		display: none !important;
	}
	
	.sp	{
		display: block !important;
	}
	.sp.ib,br.sp	{
		display: inline-block !important;
	}

	.sec_inner	{
		width: calc(100% - 60px);
	}
	.bodybg	{
		  background-size: auto 100%;
		  background-position: right -45vw top;
	  }
	
	.keytextarea	{
		  left: 30px;
	  }
	.bodybefore	{
		left: -65vw;
		width: 80%;
	}
	.bodybeforewhite,.bodybeforewhite2	{
		left: -70vw;
		width: 80%;
	}
	.bodyafterwhite,.bodyafterwhite2	{
		right: -70vw;
		width: 80%;
	}
	.bodyafter	{
		right: -65vw;
		width: 80%;
	}
	
}
@media screen and (max-width: 540px)	{
	.bodybg	{
		background-size: auto 100%;
		background-position: right -80vw top;
	}
	
	.keytextarea	{
		  left: 10px;
		  width: 50%;
		  top: 50%;
	  }
	.keytextarea img.keylogo	{
		width: 100%;
	}
	.keytextarea .infoarea	{
		padding-left: 0;
	}
	
	.keytextarea .infoarea ul li	{
		margin-bottom: 15px;
		font-size: 10px;
		text-shadow: 1px 1px 2px white, 1px -1px 2px white, -1px 1px 2px white, -1px -1px 2px white;
	}
	.keytextarea .infoarea ul li:nth-child(2)	{
		width: 90%;
	}
	.keytextarea .infoarea ul li:nth-child(3)	{
		width: 80%;
	}
	.keytextarea .infoarea ul li:nth-child(4)	{
		width: 70%;
	}

	.keytextarea .keytext	{
		width: 50%;
	}
	
	.blocker ul li	{
		font-size: 10px;
	}
	.sec_inner	{
		position: relative;
		top: auto;
		left: auto;
		transform: none;
		padding: 30px 15px;
		width: 100%;
	}
	
	div.sec1, div.sec2, div.sec3	{
		padding: 50px 30px;
	}
	
	.sec_inner h1,.sec_inner h1 span,.sec_inner h2,.sec_inner h3	{
		margin-bottom: 10px;
	}
	.sec_inner h1	{
		font-size: 8vw;
	}
	.sec_inner h1:after	{
		height: 2.5vw;
	}
	.sec_inner h2	{
		font-size: 6vw;
	}
	.sec_inner h3	{
		font-size: 4vw;
		margin-bottom: 30px;
	}
	
	.sec_inner p	{
		font-size: 3vw;
	}
	.slick-track	{
		align-items: flex-start;
	}
	.gridInnerDetail	{
		flex-direction: column;
		align-items: flex-start;
	}
	
	.sec2 .sec_inner h1	{
		margin-bottom: 30px;
	}
	
	.sec_inner .gridInnerDetail a,.sec_inner .gridInnerDetail p	{
		width: 100%;
	}
	.sec_inner .gridInnerDetail a	{
		max-height: 80vw;
	}
	.sec_inner .gridInnerDetail p	{
		font-size: 10px;
	}
	.slick-slide img	{
		width: 90%;
	}
	.gridInnerDetail a img	{
		width: auto !important;
		height: 100%;
	}
	
	.sec_inner .gridInnerDetail p	{
		margin-bottom: 0;
		padding: 30px 0;
	}
	.slick-prev	{
		left: 0 !important;
	}
	.slick-next	{
		right: 0 !important;
	}
	
	.gridWrapperFor	{
		padding: 0 30px;
	}
	.gridWrapper	{
		display: none;
	}
	.bodybefore	{
		left: -105vw;
		width: 80%;
	}
	.bodybeforewhite,.bodybeforewhite2	{
		left: -110vw;
		width: 80%;
	}
	.bodyafterwhite,.bodyafterwhite2	{
		right: -90vw;
		width: 80%;
	}
	.bodyafter	{
		right: -85vw;
		width: 80%;
	}
	#loading{
		width: 70vw;
	  }
	#loading img	{
		width: 100%;
	}
}
@media screen and (max-width: 400px)	{
	.bodybefore	{
		left: -100vw;
		width: 80%;
	}
	.bodybeforewhite,.bodybeforewhite2	{
		left: -105vw;
		width: 80%;
	}
	.bodyafterwhite,.bodyafterwhite2	{
		right: -50vw;
		width: 80%;
	}
	.bodyafter	{
		right: -45vw;
		width: 80%;
	}
}

@media screen and (max-width: 375px) and (min-height: 700px)	{
	.bodybg	{
		background-position: right -95vw top;
	}
}