@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=Lora:wght@400;500;600;700&family=Roboto:wght@400;500;700&family=Zen+Old+Mincho:wght@400;500;600;700&display=swap');
html,body,h1,h2,h3,h4,h5,h6,p,span,div,object,iframe,em,ul,ol,li,label,dl,dt,dd,form,label,table,tbody,tr,th,td { margin:0; padding:0; border:0; outline:0; font-size: 100%; font-weight:inherit; font-style:inherit; font-family:inherit; list-style-type:none; } html { overflow-y:scroll; font-size: 62.5%; letter-spacing: 0.05em; } img { border:none; vertical-align:bottom !important; line-height:0; font-size:0; user-select:none; -webkit-user-select:none; -moz-user-select:none; -khtml-user-select:none; -webkit-user-drag:none; -khtml-user-drag:none; } body { font-family:Lora,'Zen Old Mincho',sans-serif; font-size:1.7rem; line-height:1.8; font-weight:400; color:#373737; background: #f4f4f4; } .clearfix { zoom:1; min-height: 1px; } .clearfix:after { content: " "; display: block; clear: both; height: 0; visibility: hidden; font-size: 0.1em; line-height: 0; } .clearboth { clear: both; height: 1px; } *html .clearfix{ height: 1px; /*\*//*/ height: auto; overflow: hidden; /**/ }
.nopc { display: none; }
.nosp { display: inline-block; }
a { color: inherit; text-decoration: none; }
a:hover { filter: alpha(80); opacity: 0.8; }
.kome { display:inline-block; font-size:90%; line-height:1.5; text-align:left; }
.kome dd { margin: -1.5em 0 0 1.1em; }

@media screen and (max-width:768px) {
	body { font-size: 1.6rem; }
	.nosp { display: none; }
	.nopc { display: inline-block; }
	.kome { display: block; padding: 2px 0; font-size: 90%; }
}

/* --------------------------------------------------------------------------
   header / footer
-------------------------------------------------------------------------- */

@media screen and (min-width:769px) {
	header {
		position: relative; display: flex; justify-content: space-between; 
		width: 100%; min-width: 1190px; padding: 30px; background: rgba(244,244,244,.8);
		align-items: center; box-sizing: border-box; z-index: 999;
	}
	header h1 { width: 240px; overflow: hidden; }
	header nav { text-align: right; }
	header nav a {
		font: 500 1.6rem/2.8 Roboto,'Zen Old Mincho'; margin-left: 20px; color: #373737;
	}
	header nav a.lg {
		padding: 10px 9px; background: #7b6e50; color: #fff; border-radius: 60px;
	}
	header nav a span, header .ico-nav { display: none; }
	.home header nav a { color: #fff; }

	footer { margin: 48px 0 0; }
	footer div { position: relative; width: 1100px; margin: 0 auto; }
	footer .logo { width: 240px; margin: 0 0 64px; }
	footer h5 { font-size: 1.8rem; font-weight: 500; margin: 0 0 24px; }
	footer h5 span { display: block; font-size: 1.6rem; font-weight: 400; }
	footer p { width: 50%; font-size: 1.5rem; }
	footer nav { margin: 36px 0 0; }
	footer nav a { font-size: 1.6rem; margin-right: 20px; }
	footer .copy {
		position: absolute; bottom: 0; left: 50%; display: inline-block; width: auto;
		font-size: 1.4rem; transform: translateX(-50%);
	}
}

header h1 a {
	display: block; width: 100%; height: 0; padding: 0 0 20%;
	background: url(../img/logo.png) top left no-repeat; background-size: 100% auto;
	text-indent: 100%; white-space: nowrap; overflow: hidden;
}
.home header { background: rgba(0,0,0,0); }
.home header h1 a { background-position: bottom left; }
footer { position: relative; padding: 80px 0 40px; background: #373737; color: #fff; }
footer .logo span {
	display: block; width: 100%; height: 0; padding: 0 0 20%;
	background: url(../img/logo.png) bottom left no-repeat; background-size: 100% auto;
	text-indent: 100%; white-space: nowrap; overflow: hidden;
}
.totop {
	display: block; position: fixed; bottom: 60px; right: 30px; width: 50px; height: 50px;
	background: url(../img/ico.png) 100% 0 no-repeat; background-size: 300% auto;
	text-indent: 100%; white-space: nowrap; overflow: hidden; z-index: 999;
}

@media screen and (max-width:768px) {
	header {
		position: relative; top: 0; left: 0; display: block; width: 100%;
		background: rgba(244,244,244,.8); box-sizing: border-box; z-index: 9999;
	}
	.home header { background: none; }
	header h1 { position: absolute; top: 0; left: 4vw; width: 200px; padding: 10px 0; }
	header .navbtn { position: fixed; top: 0; right: 0; z-index: 999; }
	header .navbtn a {
		position: relative; display: block; width: 60px; height: 60px;
		background: url(../img/ico.png) 0 0 no-repeat; background-size: 300% auto;
	}
	header nav {
		display: none; position: fixed; top: 0; left: 0; width: 100vw; height: 100vh;
		padding: 100px 0 0; background: rgba(244,244,244,.95); z-index: 998;
	}
	header nav a {
		display: block; padding: 0.5em 0; text-align: center;
		font: 500 2.0rem/1.8 Roboto,'Zen Old Mincho'; color: #373737;
	}
	header nav a.lg {
		display: block; width: 30%; margin: 12px auto 0; padding: 0; background: #7b6e50;
		border-radius: 50px; line-height: 2.0; color: #fff;
	}
	.home .navbtn a { background-position: 0 0; }
	.opened header h1 { position: fixed; z-index: 9998; }
	.opened header h1 a { background-position: top left; }
	.opened header .navbtn a { background-position: 50% 0; }

	footer { margin: 48px 0 0; padding: 48px 0 36px; }
	footer.fix { position: fixed; bottom: 0; left: 0; }
	footer div { width: 90%; margin: 0 auto; }
	footer .logo { width: 200px; margin: 0 0 24px; }
	footer h5 { font-size: 1.5rem; font-weight: 500; margin: 0 0 16px; }
	footer h5 span { display: block; font-size: 1.3rem; font-weight: 400; }
	footer p { font-size: 1.4rem; }
	footer nav { display: flex; justify-content: space-between; margin: 12px 0 0; }
	footer nav a { padding: 12px 0; font-size: 1.4rem; }
	footer .copy { margin: 20px 0 0; text-align: left; font-size: 1.3rem; }
	.totop { bottom: 30px; right: 5%; }
	.home .totop { bottom: 70px; }
}

/* --------------------------------------------------------------------------
   common
-------------------------------------------------------------------------- */

#fls { display: flex; flex-direction: column; width: 100%; height: 100vh; min-height: 100vh; }
#fls footer { flex-shrink: 0; }
#fls #main { flex: 1; }

#main * { box-sizing: border-box; }
section { position: relative; padding: 80px 0; }
section h2 {
	font: 400 2.0rem/1.0 Lora,'Zen Old Mincho'; text-align: center; letter-spacing: 0.1em;
	margin: 0 0 64px;
}
section h2 span { display: block; font: 500 5.0rem/1.0 Roboto; color: #7b6e50; }
section h2 span::after {
	content: ''; display: block; width: 180px; height: 1px; margin: 10px auto 12px;
	background: #7b6e50;
}
section h3, section * h3 {
	position:relative; font: 600 3.0rem/1.8 Lora,'Zen Old Mincho'; text-align:center;
}
section * h4 { font: 600 2.6rem/1.6 Lora,'Zen Old Mincho'; }
section * h5 { font: 500 2.0rem/1.8 Lora,'Zen Old Mincho'; }
section * h6 { font-weight: 500; }
section * img { width: 100%; }
article, .sector { width: 1100px; margin: 0 auto; }
.cover { padding: 80px 0 0; text-align: center; }
.cover .fig { position:relative; width: 1190px; height: 400px; margin: 0 auto; overflow: hidden; }
.cover .fig img {
	position: relative; top: 50%; left: 50%; width: 100%; height: auto;
	transform: translate(-50%, -50%);
}
.deci { padding-left: 1.2em; margin-left: 1.0em; }
.deci li { list-style-type: decimal; }
.disc { padding-left: 1.2em; }
.disc li { list-style-type: disc; }
.kana, .roma { padding-left: 1.5em; margin-left: 1.0em; }
.kana li { list-style-type: katakana; }
.kana li span { display: inline-block; width: 9.0em; }
.roma li { list-style-type: lower-alpha; }
.pare { margin-left: 2.6em; }
.pare li { list-style-type: none; counter-increment: cnt; text-indent: -2.5em; }
.pare li::before { content: "("counter(cnt,decimal-leading-zero)") "; }
.mov { position:relative; width:100%; height:0; margin:0; padding: 0 0 56.25%; overflow:hidden; }
.mov video, .mov iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
a.more { position: relative; padding-left: 36px; font-weight: 500; }
a.more::before {
	content: ''; position: absolute; top: 50%; left: 0; width: 30px; height: 1px;
	border-top: solid 1px #373737; transform: translateY(-50%);
}

@media screen and (min-width:769px) {
	#main { min-width: 1190px; }
	.ff footer { position: fixed; bottom: 0; left: 0; }
}
@media screen and (max-width:768px) {
	section { padding: 48px 0; }
	section h2 { font-size: 1.8rem; margin: 0 0 48px; }
	section h2 span { font-size: 3.4rem; }
	section h3, section * h3 { font-size: 2.2rem; }
	.home section * h3 { font-size: 2.2rem; }
	.home section * h3.en { font-size: 2.0rem; }
	section * h4 { font-size: 2.0rem; }
	section * h5 { font-size: 1.8rem; }
	article, .sector { width: 90%; }
	.cover { padding: 100px 0 0; }
	.cover .fig { width: 90vw; height: 120vw; }
	.cover .fig img { width: auto; height: 100%; }
	.pare { margin-left: 1.6em; }
	.pare li { text-indent: -1.6em; }
}

/* --------------------------------------------------------------------------
   top
-------------------------------------------------------------------------- */

.home section h3 { text-align: left; }
.home h3.obi span {
	display: inline-block; margin: 0 0 10px; padding: 0 12px; background: #fff;
}
.front {
	position: relative; width: 100%; height: 0; padding: 0 0 56.25%; color: #fff;
	background: url(../img/main.jpg) top center no-repeat; background-size: 100% auto;
}
.front h2 {
	position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%);
	text-shadow: #000 0 0 10px; font-size: 3.6rem; line-height: 2.6; text-align: center;
	z-index: 2;
}

.intro { display: flex; justify-content: space-between; align-items: end; }
.intro li:first-child { width: 640px; }
.intro li:last-child { width: 320px; }
.intro video {
	background: url(../img/video.jpg) center center no-repeat; background-size: 100% auto;
}
.intro li .lead { padding: 36px 0 0 48px; }
.intro li p { padding: 16px 12px; }

.concept {
	background: url(/image/top_02.jpg) bottom center no-repeat; background-size: auto 100%;
	color: #fff;
}
.concept .leaf { width: 480px; }
.concept .leaf h3 { padding: 40px 0 64px; text-align: left; }
.concept .leaf h3::before {
	content: ''; position: absolute; top: 0; left: 0; width: 160px; height: 32px;
	background: url(../img/logo.png) bottom left no-repeat; background-size: 100% auto;
}
.concept .leaf p { text-shadow: 0 0 5px #000, 0 0 0.2em #000; }

.news .gist { width: 800px; height: 16em; margin: 0 auto 48px; overflow-y: scroll; }
.news .gist a { display: block; margin: 0 0 1.0em; border-bottom: solid 1px #373737; }
.news .gist span { display: inline-block; width: 16%; }
.news .btn {
	display: block; width: 800px; margin: 0 auto; background: #fff; border: solid 1px #373737;
	line-height: 2.4; text-align: center;
}
.news .btn span { border-bottom: solid 1px #373737; }

.areas article { text-align: center; }
.areas .prefs { display: flex; flex-wrap: wrap; width: 1020px; margin: 48px auto 0; }
.areas .prefs a {
	display: block; width: 180px; margin: 0 30px 30px 0; background: #fff; color: #8c6464;
	border: solid 1px #8c6464;  border-radius: 12px; font-size: 2.0rem; line-height: 4.6;
}
.areas dl { display: inline-block; text-align: left; }
.areas dd { margin: -1.8em 0 0 1.1em; }

.project li { float: right; width: 50%; }
.project li p { padding: 36px 12px; }

.flow li h4 {
	display: block; width: 230px; margin: 0 auto; background: #373737; color: #fff;
	font-size: 2.0rem; line-height: 2.4; text-align: center; box-shadow: 0 24px 0 #f4f4f4;
	border-radius: 12px;
}
.flow li p { margin: 0 0 16px; counter-increment: cnt; text-indent: -2.0em; }
.flow li p::before { content: counter(cnt, decimal-leading-zero)" - "; }
.flow li:nth-of-type(4) p { counter-reset: cnt 7; }
.flow li:nth-of-type(6) p:first-child { counter-reset: cnt 8; }
.flow li:last-of-type p { counter-reset: cnt 11; }
.flow li p .note { display: block; margin-left: 0.8em; text-indent: -0.8em; }
.flow li p a { color: #7b6e50; border-bottom: solid 1px #7b6e50; }

@media screen and (min-width:769px) {
	.areas .prefs a:nth-of-type(5n) { margin: 0 0 30px; }
	.flow ul { display: flex; flex-wrap: wrap; margin: 0 auto; }
	.flow li { width: 50%; margin: 0 0 24px; padding: 0 0 24px; }
	.flow li:nth-of-type(odd) {
		background: linear-gradient(to right,#f4f4f4 49.8%,#373737 50%,#f4f4f4 50.2%);
	}
	.flow li:nth-of-type(7) { background: #f4f4f4; }
}
@media screen and (max-width:768px) {
	.front {
		width: 100vw; height: 80vh; padding: 0; overflow: hidden;
		background: url(../img/main_s.jpg) top center no-repeat; background-size: 100% auto;
	}
	.front h2 { font-size: 2.8rem; white-space: nowrap; }
	.front h2.en { font-size: 2.4rem; }
	.intro { display: block; }
	.intro li:first-child { width: 100%; }
	.intro li:last-child { width: 70%; margin: 0 auto; }
	.intro li .lead { padding: 24px 0; }
	.concept { background-position: 55% 100%; }
	.concept .leaf { width: 100%; }
	.concept .leaf h3 { padding: 40px 0 36px; }
	.concept .leaf p { font-weight: 500; text-shadow: -2px -2px 5px #000, 2px 2px 5px #000; }
	.news .gist { width: 90%; margin: 0 auto 24px; }
	.news .gist span { display: block; width: 100%; border-bottom: none; }
	.news .btn { width: 90%; padding: 10px 0; line-height: 1.6; }
	.areas .prefs { width: 100%; }
	.areas .prefs a { width: 31%; margin: 0 3.5% 5vw 0; font-size: 1.7rem; line-height: 3.0; }
	.areas .prefs a:nth-of-type(3n) { margin: 0 0 5vw; }
	.project .sector { width: 100%; }
	.project li { float: none; width: 100%; }
	.project li:last-child { width: 90%; margin: 24px auto 0; }
	.project li p { padding: 16px 0; }
	.flow li { width: 100%; }
	.flow li:nth-of-type(even) { margin: 12px 0 36px; }
	.flow li h4 { font-size: 1.8rem; }
	.flow li p { padding-left: 2.0em; text-indent: -2.2em; }
}

/* --------------------------------------------------------------------------
   benchmark
-------------------------------------------------------------------------- */

#bench {
	position: relative; display: block; width: 800px; margin: 0 auto; padding: 0;
	outline: solid 4px #8c6464; border: solid 2px #fff; background: #8c6464; color: #fff;
	border-radius: 100px; font: 500 1.8rem/3.2 Lora,'Zen Old Mincho'; text-align: center;
	cursor: pointer; box-sizing: border-box; 
}
#bench.fixed {
	position: fixed; bottom: 10px; left: 50%; opacity: 0;
	animation: mgin 1s forwards cubic-bezier(.215,.61,.355,1); animation-delay: 1s;
}
#bench::before {
	content: ''; display: inline-block; width: 30px; height: 30px; margin-right: 10px; 
	background: url(../img/ico.png) -60px -30px no-repeat; background-size: 300% auto;
	transform: translateY(6px);
}
#bench::after {
	content: ''; display: inline-block; width: 8px; height: 8px; margin: 0 0 2px 5px;
	border: solid 2px #fff; border-width: 2px 2px 0 0; transform: rotate(45deg);
}
#inline { position: relative; display: none; width: 640px; margin: 0 auto; }
#inline iframe { width: 100%; min-height: 500px; border: 0; outline: 0; }
.formbox-editor-1750230 { width: 100% !important; }

@media screen and (max-width:768px) {
	#bench { width: 90%; padding: 0.6em 0; font-size: 1.7rem; line-height: 1.5; }
	#bench::before { position: absolute; top: 50%; left: 16px; transform: translateY(-55%); }
	#bench::after { position: absolute; top: 50%; right: 16px; transform: translateY(-50%) rotate(45deg); margin: 0; }
	#inline { width: 90%; font-size: 1.8rem; }
	.fancybox__container { z-index: 99999; }
	.fancybox__content { padding: 0 !important; }
	.formbox-editor-150230 { padding: 30px 5% !important; }
}

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

/* --------------------------------------------------------------------------
   area & plan
-------------------------------------------------------------------------- */

.plans { padding: 16px 0; }
.plans article { padding: 80px 0; }
.plans h3 {
	position: relative; font: 600 4.0rem/64px Lora,'Zen Old Mincho'; letter-spacing: 0.2em;
	text-align: left; 
}
.plans.en h3 { letter-spacing: 0.05em; }
.plans h3::before {
	content: ''; position: absolute; top: 0; left: -80px; width: 64px; height: 64px;
	background: url(../img/ico.png) 0 100% no-repeat; background-size: 300% auto;
}
.plans .venue { display: flex; margin: 24px 0 0; justify-content: space-between; }
.plans .venue:first-of-type { margin: 0; }
.plans .venue li { width: 50%; margin: 48px 0 0; }
.plans .venue li:last-child { width: 45%; }
.plans .venue li h4 { margin: 0 0 24px; font-size: 2.5rem; line-height: 1.6; }
.plans .venue li dl { display: flex; padding: 12px 0; flex-wrap: wrap; align-items: center; }
.plans .venue li dl:first-of-type { border-bottom: solid 1px #373737; }
.plans .venue li dt { width: 32%; }
.plans .venue li dd { width: 68%; }
.plans .venue li dl:last-of-type dd { font-size: 2.2rem; }
.plans .venue li .note { margin-left:1.0em; text-indent:-1.0em; font-size:87.5%; color: #af1616; }
.plans .venue li .note.en { margin-left: 0.8em; text-indent: -0.8em; }
.plans .venue li .btn {
	display: block; margin: 16px 0 0; background: #fff; border: solid 1px #373737;
	font-size: 1.8rem; line-height: 2.4; text-align: center;
}
.plans .venue li .map { padding: 12px 16px 0; }
.plans .venue li .map a { display: inline-block; border-bottom: solid 1px #373737; }

@media screen and (max-width:768px) {
	.cover .fig.ap img { transform: translate(-40%,-50%); }
	.plans { padding: 12px 0; }
	.plans article { padding: 36px 0; }
	.plans h3 {
		padding-left: 60px; line-height: 48px; font: 600 3.4rem/48px Lora,'Zen Old Mincho';
	}
	.plans h3::before { left: 0; width: 48px; height: 48px; }
	.plans .venue {
		display: block; margin: 48px 0 0; padding: 0 0 64px;
		background-image: radial-gradient(#dcd0c0 30%, transparent 30%);
		background-size: 20px 20px; background-position: bottom left; background-repeat: repeat-x;
	}
	.plans .venue:last-of-type { padding: 0 0 20px; background: none; }
	.plans .venue li { width: 100%; margin: 24px 0 0; }
	.plans .venue li:last-child { width: 100%; }
	.plans .venue li h4 { margin: 0 0 12px; }
	.plans .venue li dt { width: 35%; }
	.plans .venue li dd { width: 65%; }
	.plans .venue li dl:first-of-type { align-items: flex-start; }
	.plans .venue li dl:last-of-type dt { width: 40%; }
	.plans .venue li dl:last-of-type dd { width: 60%; }
	.plans.en .venue li dt { width: 50%; }
	.plans.en .venue li dd { width: 50%; }
	.plans.en .venue li dl:last-of-type dt { width: 50%; }
	.plans.en .venue li dl:last-of-type dd { width: 50%; }
}

/* --------------------------------------------------------------------------
   story
-------------------------------------------------------------------------- */

.story h4 { margin: 0 0 36px; }
.prof { padding: 0 0 36px; }
.prof li:nth-child(even) { float: left; width: 50%; margin: 0; }
.prof li .prof { padding: 12px; background: #fff; }
.folio { display: flex; justify-content: space-between; align-items: center; margin: 64px 0 0; }
.folio li { width: 50%; }
.folio li:last-child { width: 35%; }
.folio li h4 { margin: 0 0 36px; }

@media screen and (min-width:769px) {
	.prof li { float: right; width: 40%; margin-left: 10%; }
	.prof li:first-child { margin: 0 0 200px; }
}
@media screen and (max-width:768px) {
	.cover .fig.st img { transform: translate(-35%,-50%); }
	.story h4 { margin: 0 0 24px; }
	.prof { padding: 0 0 24px; }
	.prof li { width: 100%; }
	.prof li:nth-child(even) { float: none; width: 100%; margin: 24px 0; }
	.folio { display: block; margin: 48px 0 0; }
	.folio li { width: 100%; }
	.folio li:last-child { width: 70%; margin: 16px auto 0; }
	.folio li h4 { margin: 0 0 24px; }
}

/* --------------------------------------------------------------------------
   interview
-------------------------------------------------------------------------- */

.toc h3 { text-align: center; }
.toc ul { display: flex; justify-content: space-between; flex-wrap: wrap; }
.toc li { width: 45%; margin: 48px 0 0; }
.toc li a { display: block; }
.toc li h4 { margin: 12px 0 0; line-height: 2.8; }

@media screen and (max-width:768px) {
	.cover .fig.iv img { transform: translate(-55%,-50%); }
	.toc .sector { display: block; }
	.toc li { width: 100%; margin: 36px 0 0; }
}

.speaker h3 { text-align: center; margin: 0 0 48px; }
.speaker ul {
	display: flex; width: 1100px; margin: 0 auto; justify-content: space-between;
	align-items: center; text-align: left; 
}
.speaker li:first-child { width: 50%; }
.speaker li:last-child { width: 45%; }
.speaker li h4 { margin: 0 0 24px; }
.draft { width: 740px; margin: 0 auto 80px; }
.draft h4 { margin: 0 0 36px; }
.draft h5 { margin: 0 0 16px; }
.draft .photo { display: block; margin: 48px auto; }
.info { width: 740px; margin: 0 auto; text-align: center; }
.info dl {
	display: flex; margin: 0 0 80px; flex-wrap: wrap; border-top: solid 1px #999;
	text-align: left;
}
.info dt { width: 20%; padding: 6px 10px; border-bottom: solid 1px #999; }
.info dd { width: 80%; padding: 6px 10px; border-bottom: solid 1px #999; }
.info dd .note { margin-left: 1.0em; text-indent: -1.0em; }
.info dd span { display: inline-block; width: 9em; }
.info a { font-size: 2.2rem; border-bottom: solid 1px #000; line-height: 2.4; }

@media screen and (max-width:768px) {
	.speaker { padding: 100px 0 48px; }
	.speaker ul { display: block; width: 90%; }
	.speaker li:first-child { width: 100%; margin: 0 0 20px; }
	.speaker li:last-child { width: 100%; }
	.speaker li h4 { margin: 0 0 12px; }
	.draft { width: 90%; margin: 0 auto 48px; }
	.draft h4 { margin: 0 0 24px; }
	.info { width: 90%; }
	.info dl { display: block; margin: 0 0 48px; }
	.info dt { width: 100%; padding: 8px 10px 0; font-weight: 600; border: none; }
	.info dd { width: 100%; padding: 5px 10px 8px; }
	.info dd span { display: block; width: 100%; }
	.info a { font-size: 2.0rem; }
}

/* --------------------------------------------------------------------------
   hanabi
-------------------------------------------------------------------------- */

.type .sector { display: flex; justify-content: space-between; flex-wrap: wrap; }
.type li { width: 31%; margin: 36px 0 0; }
.type li h5 { line-height: 2.8; }
.bloom { margin: 48px auto 0; }
.bloom .graph {
	width: 100%; height: 0; padding: 0 0 62.5%; margin: 0 0 16px; 
	background: url(../img/graph.png) top center/cover no-repeat;
	text-indent: 100%; white-space: nowrap; overflow: hidden;
}
.bloom .graph.en { background-image: url(../img/graph_e.png); }
.bloom .safety { display: none; }

@media screen and (max-width:768px) {
	.type .sector { display: block; margin: 36px auto 12px; }
	.type li { width: 100%; margin: 0 0 24px; }
	.bloom { margin: 36px auto 0; }
	.bloom .graph {
		padding: 0 0 160%; background: url(../img/graph_sp.png) top center/cover no-repeat;
	}
	.bloom .graph.en { background-image: url(../img/graph_e_sp.png); }
	.bloom .safety { display: block; }
	.bloom .safety dl {
		display: block; margin: 0 0 16px; border: solid 1px #373737; border-width: 1px 0 1px 0;
		text-align: right; line-height: 2.0; 
	}
	.bloom .safety dt { width: 4.0em; }
	.bloom .safety dd { margin: -2.0em 0 0 4.0em; padding-right: 2.0em; }
}

/* --------------------------------------------------------------------------
   faq / policy
-------------------------------------------------------------------------- */

.faq h2 { margin: 0; }
.faq h4 { margin: 0 0 16px; padding: 64px 0 0; border-bottom: solid 1px #373737; }
.faq .col { margin: 0 0 24px; }
.faq dl { margin: 16px 0 0; line-height: 2.0; }
.faq dd { margin: -2.0em 0 0 12em; }
.faq dl.en dd { margin: -2.0em 0 0 24em; }
.faq a {
	display: block; width: 360px; margin: 12px 0 0; background: #fff; border: solid 1px #373737;
	line-height: 2.8; text-align: center;
}

#terms h5 { margin: 20px 0 0; }
#terms .date { margin: 1.0em 0 0; text-align: right; }
#privacy .deci li { margin: 1.2em 0 0; }
#privacy .deci li .disc li { margin: 0; }
#privacy li span { font-size: inherit; color: inherit; text-decoration: underline; }
#privacy li span.note { margin-right: 1.0em; }
#privacy .num { margin-left: 2.6em; }
#privacy .num li {
	list-style-type: none; counter-increment: cnt; text-indent: -2.2em; margin: 0; 
}
#privacy .num.san li::before { content: "3-"counter(cnt)". "; }
#privacy .num.six li::before { content: "6-"counter(cnt)". "; }
#privacy .dot dd { margin: -1.8em 0 0 1.0em; }
#privacy a {
	display: block; width: 360px; margin: 12px 0 0; background: #fff; border: solid 1px #373737;
	line-height: 2.8; text-align: center;
}
#partner .pyro {
	display: flex; justify-content: space-between; flex-wrap: wrap; margin: 0 0 24px;
}
#partner .pyro p {
	width: 32%; text-align: center; line-height: 2.8; background: rgba(0,0,0,.05);
	margin: 0 0 12px; 
}
#partner a {
	display: block; width: 360px; margin: 12px 0 0; background: #fff;
	border: solid 1px #373737; line-height: 2.8; text-align: center;
}

@media screen and (max-width:768px) {
	.faq { padding: 100px 0 48px; }
	.faq h4 { padding: 36px 0 0; }
	.faq dl.en dt { font-weight: 500; }
	.faq dl.en dd { margin: 0 0 0.5em; }
	.faq a { width: 100%; }
	#terms { padding: 100px 0 48px; }
	#privacy a { width: 100%; }
	#partner .pyro { display: block; }
	#partner .pyro p { width: 100%; margin: 0 0 12px; }
	#partner a { width: 100%; }
}

/* --------------------------------------------------------------------------
   contact
-------------------------------------------------------------------------- */

.formbox .lead { margin: 0 0 48px; text-align: center; }
.formbox .tac { text-align: center; }

#inq form { width: 980px; margin: 0 auto; }
#inq dl { display: flex; padding: 20px; }
#inq dt { width: 260px; font-weight: 500; line-height: 2.0; }
#inq dd { position: relative; width: 680px; }
#inq dd p { margin: 6px 0 0; font-size: 90%; color: #626368; }
#inq input { box-sizing: border-box; }
#inq input[type=text] {
	appearance: none; -webkit-appearance: none; -moz-appearance: none; 
	width: 100%; padding: 0 10px; background: #fff; border: solid 1px #373737;
	border-radius: 5px; font-size: 1.8rem; line-height: 2.0; font-family: inherit;
}
#inq textarea {
	width:100%; padding: 10px; background: #fff; border: solid 1px #373737;
	border-radius: 5px; font-size: 1.8rem; line-height:1.5; font-family: inherit;
}
#inq select {
	appearance: none; -webkit-appearance: none; -moz-appearance: none; cursor: pointer;
	position: relative; width: 100%; padding: 0 10px; background: #fff; color: #373737;
	border: solid 1px #373737; border-radius: 5px;
	font-size: 1.8rem; line-height: 2.0; font-family: inherit; box-sizing: border-box;
}
#inq .slt::after {
	content: ''; display: block; position: absolute; top: 0; right: 20px; 
	width: 10px; height: 10px; border: solid 2px #373737; border-width: 0 2px 2px 0;
	transform: translateY(75%) rotate(45deg); cursor: pointer;
}
#inq input[type=checkbox] { opacity: 0; margin-left: -12px; }
#inq .chb { position: relative; padding-left: 24px; cursor: pointer; white-space: nowrap; }
#inq .chb::before {
	content: ''; position: absolute; top: 50%; left: 0; transform: translateY(-50%);
	display: block; width: 16px; height: 16px; border-radius: 4px; border: solid 1px #373737;
}
#inq .chb::after {
	content: ''; position: absolute; top: 3px; left: 5px; opacity: 0;
	display: block; width: 5px; height: 9px; transform: rotate(45deg);
	border: solid 3px #373737; border-width: 0 3px 3px 0;
}
#inq input[type=checkbox]:checked + .chb::after { opacity: 1; }
#inq .agreement a {
	display: block; width: 360px; margin: 24px auto; border-bottom: solid 1px #373737;
	font-weight: 600; text-align: center;
}
#inq button {
	width: 360px; margin: 24px 10px 0; background: #373737; border-style: none; color: #fff; 
	border-radius: 8px; font: 500 2.0rem/2.6 Lora,'Zen Old Mincho'; cursor: pointer;
}
#inq button.inact { background: rgba(55,55,55,.6); }
#inq button:disabled { cursor: default; }
#inq button.back { background: #929398; }

@media screen and (max-width:768px) {
	#inq { padding: 100px 0 48px; }
	.formbox .lead { margin: 0 0 24px; }
	#inq form { width: 100%; margin: 0 auto; }
	#inq dl { display: block; padding: 12px 0; }
	#inq dt, #inq dd { width: 100%; }
	#inq input[type=text] { font-size: 1.6rem; line-height: 2.4; }
	#inq textarea { font-size: 1.6rem; line-height: 1.5; }
	#inq select { font-size: 1.6rem; line-height:2.4; }
	#inq .agreement a { width: 90%; }
	#inq button {
		width: 80%; margin: 16px auto 0; font: 500 1.7rem/2.8 Lora,'Zen Old Mincho';
	}
}

/* --------------------------------------------------------------------------
   Not Found
-------------------------------------------------------------------------- */

#nfd h2 { margin: 0 0 24px; }
#nfd p { text-align: center; }

/* --------------------------------------------------------------------------
   animation
-------------------------------------------------------------------------- */

.dri { opacity: 0; transform: translateY(-30px); }
.dri.active {
	transition: transform 1s cubic-bezier(0.215, 0.61, 0.355, 1) 0s, opacity 1s ease 0s;
	opacity: 1; transform: translateY(0);
}

/* --------------------------------------------------------------------------
 icons
-------------------------------------------------------------------------- */

[class*="ico-"] {
	display: inline-block; height: 0; margin: 0;
	background: url(../img/ico.png) top left no-repeat;
	vertical-align: baseline; overflow: hidden; text-indent: 100%; white-space: nowrap;
}
