@import url( https://fonts.googleapis.com/css?family=Noto+Sans+JP&display=swap );




* { font-size :1.0vw;; font-weight: bold; line-height:2.0em; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; margin: 0; padding: 0px; }
html { width:100%; min-height: 100%; position: relative; }
body { width:100%;  display:block; margin:0; padding:0;  line-height: 1.25em; min-height: 100%; position : absolute;
	font-family: 'Noto Sans JP', 'YuGothicM', 'YuGothic', 'Hiragino Kaku Gothic Pro', 'Osaka', 'MS PGothic';
	 color:#242424; background:#ffffff; }
body *{ line-height:1.5em; }


@media screen and (min-width: 480px) {
.sp_br {
  display: none;}}

@media screen and (max-width: 480px) {
	* { font-size : 2.8vw; }
}


li{ list-style-type:none; }
a:hover{ opacity: .8; }
#loader{ display: block;width: 100%; height:100%; position: fixed; top:0; left:0; z-index: 99; background: #fff; }




header{ display: block; width: 100%; position: fixed; top:0; left:0; z-index: 98; background: rgba(255, 255, 255, 0.801); }
header ol{ display: table; width:100%; max-width: 1800px; margin:0 auto; }
header ol li{ display: table-cell; vertical-align: middle; padding:1em .5em; }
header ol li img { display: block; height:5.5vw; max-height: 60px; }
header ol li:nth-of-type(2){ padding:0 .5em; }
header ol li:nth-of-type(2) img{ margin:0 0 0 auto; height:7.0vw; max-height: 70px; }
header ol li:nth-of-type(3) img{ margin:0 0 0 auto; }
header ol li .smp{ display: none; }
header ol li .pc{ display: block; }
header>.smp{ display: block; position: fixed; bottom:-30vw; z-index: 98; }
@media screen and (max-width: 480px) {
	header ol li{ display: table-cell; padding:1em 1em 1em 2em; }
	header ol li img { display: block; height:8vw; max-height: 60px; }
	header ol li:nth-of-type(2){ padding:1em 2em 1em 1em; }
	header ol li:nth-of-type(3){ display: none; }
	header ol li .smp{ display: block; }
	header ol li .pc{ display: none; }
	header>.smp{ display: block; position: fixed; bottom:3vw; right:4vw; width:50vw; }
	header>.smp img{ display: block; width:100%; }
}





article#mainv{ background: url("./img/mainv_bg_pc.jpg"); background-size: cover; padding:10vw 0 0 0; }
article#mainv .pc dl{ display: block; width: 100%; margin: 0 auto; }
article#mainv .pc dl dt{ font-weight: bold; font-size: 3.0em; }
article#mainv .pc dl dd{ font-weight: bold; font-size: 1.5em; padding:1em 1em 0 1em; }
article#mainv #cap{ display: block; max-width: 1200px; margin: 0 auto;  text-align: center;}
article#mainv #cap img{ width: 100%; }
article#mainv section{ display: block; width: 100%; padding-bottom: 5em}
article#mainv section>ol{color: #40739F; display: block; text-align: center; font-size: 1.5em; background-color: rgb(255, 255, 255);white-space: normal; padding:0.5em 0 0.5em 0; font-family: serif ;}
article#mainv>dd{}
article#mainv .pc{ display: block; }
article#mainv .smp{ display: none; }

@media screen and (max-width: 480px) {
	article#mainv{ background: url("./img/mainv_bg_smp.jpg"); background-size: cover; background-position: top; padding:15vw 0 0 0; }
	article#mainv .smp dl dt{font-size: 1.3em;; padding-top:3.5em; text-align: center; }
	article#mainv .smp dl dd{ font-size: 1.0em; padding:4em 0 2em 0; text-align: center; }
	article#mainv #cap{ padding:0; }
	article#mainv #cap img{ width: 100%; padding-bottom: 25em;}
	article#mainv section{ display: block; width: 100%;}
    article#mainv section>ol{font-size: 1.2em;}
    article#mainv>dd{padding:2em 1em 0 1em; }
	article#mainv .pc{ display: none; }
	article#mainv .smp{ display: block; }
}




article#visual_02 dl.v01 img{ display:block; width: 100%; }
article#visual_02 dl.v01 img.pc{display: block; }
article#visual_02 dl.v01 img.smp{ display: none; }
@keyframes infinity-scroll-left { from { transform: translateX(0); } to { transform: translateX(-100%); } }
article#visual_02 .scroll-infinity__wrap { display: flex; overflow: hidden; }
article#visual_02 .scroll-infinity__list { display: flex; list-style: none; padding: 0 }
article#visual_02 .scroll-infinity__list--left { animation: infinity-scroll-left 80s infinite linear 0.5s both; }
article#visual_02 .scroll-infinity__item { width: calc(100vw / 5); padding:.5em }
article#visual_02 .scroll-infinity__item>img { width: 100%; }
@media screen and (max-width: 480px) {
	article#visual_02 .scroll-infinity__item { width: calc(100vw / 3); padding:.5em }
	article#visual_02 dl.v01 img.pc{display: none; }
	article#visual_02 dl.v01 img.smp{ display: block; }
	} 


article#visual_03 dl.v01 img{ display:block; width: 100%; }
article#visual_03 dl.v01 img.pc{display: block; }
article#visual_03 dl.v01 img.smp{ display: none; }
article#visual_03 .yt001{text-align: center;}
article#visual_03 .yt001>iframe{width: 40%; padding: 0 0 3em 0;}
article#visual_03 div ul li{text-align: center; padding: 1em 0 1em 0; width: 100%; }
article#visual_03 img{width: 40%; }

@media screen and (max-width: 480px) {
	article#visual_03 dl.v01 img.pc{display: none; }
	article#visual_03 dl.v01 img.smp{ display: block; }
	article#visual_03 .yt001>iframe{width: 80%; height: 60%;}
	article#visual_03 img{width: 80%; }
	} 






article#about1{ background: url("./img/about1_bg.jpg") no-repeat; background-size: cover; text-align: center; padding-left: 10em;}
article#about1 h2{color:#40739F ; font-size: 2.8em; line-height: 1.5em; font-family: serif; font-weight: 700; display: inline-block;
  border-bottom: solid 2px #FFBB00; }
article#about1 dl.item_reverse{display: table; table-layout: fixed; width:100%; margin: 0 auto; }
article#about1 dl.item_reverse dt{ display: table-cell; padding:2.5em 1.5em; vertical-align: middle; width:50%;}
article#about1 dl.item_reverse dt img{ display:block; width: 100%; }
article#about1 dl.item_reverse dd{display: table-cell; padding:2.5em 1.5em; vertical-align: middle; text-align: left;}
article#about1 dl.item_reverse div.ttl_theme{height: 50px; line-height: 50px; font-family: serif; text-align: center; font-size: 1.8em; padding:0 0 1em 0;  background-color: #40739F; color: #fff; }
/* article#work2 dl.item2 div.ttl_sub{ font-size: 1.8em; padding:1em 0; text-align: left;} */
article#about1 dl.item_reverse div.comment{padding-top: 2em; margin: 0 auto; font-size: 1.7em; line-height: 2em;font-family: serif;}
/* article#work2 dl.item2 div.ttl_sub{ font-size: 1.8em; padding:1em 0; text-align: left;} */
article#about1 ul img{width: 100%; display: none;}
@media screen and (max-width: 480px) {
	article#about1{ background: url("./img/about1_bg.smp.jpg") no-repeat; background-size: cover; text-align: center; padding-top: 5em; padding-left: 2em; }
	article#about1 .item_reverse{ text-align: right; }
	article#about1 h2{font-size: 1.8em; }
	article#about1 dl.item_reverse{ display: block; margin-bottom: 4em;  }
	article#about1 dl.item_reverse dt img{ display:none;}

	article#about1 dl.item_reverse:nth-last-of-type(2){ padding-bottom:2em;}
	article#about1 dl.item_reverse dt{ display: block; padding:1em; width:100%; }
	article#about1 dl.item_reverse dd{ display: block; padding:1em; }
	article#about1 dl.item_reverse div.ttl_theme{ font-size: 1.4em; padding:0 0 1em 0; text-align: center;}
	article#about1 dl.item_reverse div.comment{ font-size: 1.2em; text-align: left; margin-bottom: -1em;}
	article#about1 li img{width: 100%; display:block; }
}



article#about2{ text-align: center;  background: url("./img/about2_bg.jpg") no-repeat; background-size: contain; }
article#about2 h2{color:#40739F ; font-size: 2.8em; line-height: 1.5em; font-family: serif; font-weight: 700; display: inline-block;
  border-bottom: solid 2px #FFBB00;}
  article#about2 h3{color:#40739F ; font-size: 4em; line-height: 1.5em; font-family: serif; font-weight: 700; display: inline-block;}
  article#about2 h4{color:#40739F ; font-size: 2.8em; line-height: 1.5em; font-family: serif; font-weight: 700; display: inline-block;
  border-bottom: solid 2px #FFBB00;}

article#about2 dl.title { display: table; table-layout: fixed; width:100%; margin: 0 auto; padding: 3%; }
article#about2 dl.item{ display: table; table-layout: fixed; width:100%; margin: 0 auto; }
article#about2 dl.item dt{ display: table-cell; padding:2.5em 1.5em; vertical-align: middle; width:40%;}
article#about2 dl.item dt img{ display:block; width: 100%;}
article#about2 dl.item dd{display: table-cell; padding:2.5em 1.5em; vertical-align: middle; text-align: left;}
article#about2 dl.item div.ttl_theme{height: 50px; line-height: 50px; font-family: serif; text-align: center; font-size: 1.8em; padding:0 0 1em 0;  background-color: #40739F; color: #fff; }
article#about2 dl.item div.comment{padding-top: 2em; margin: 0 auto; font-size: 1.4em; line-height: 2em; font-weight:500}
article#about2 dl.item li{ display: table-cell; padding:2.5em 1.5em; vertical-align: middle; width:50%;}
article#about2 li img{width: 100%; display: none;}

@media screen and (max-width: 480px) {
	article#about2{background: url("./img/about2_bg.smp.jpg") no-repeat; background-size: contain; }
	article#about2 .item{ text-align: right;}
	article#about2 h2{ font-size: 1.4em; display: none;}
	article#about2 h3{ font-size: 2em; display: none;}
	article#about2 h4{ font-size: 1.8em; }
	article#about2 dl.item{ display: block; margin-bottom: 4em;  }
	article#about2 dl.item dt img{ display:none;}

	article#about2 dl.item:nth-last-of-type(2){ padding-bottom:2em;}
	article#about2 dl.item dt{ display: block; padding:1em; width:100%; }
	article#about2 dl.item dd{ display: block; padding:1em; }
	article#about2 dl.item div.ttl_theme{ font-size: 1.4em; padding:0 0 1em 0; text-align: center;}
	article#about2 dl.item div.comment{ font-size: 1.2em; text-align: left; }
	article#about2 li img{width: 100%; display:block; }
}




article#work{ background: url("./img/work_bg_pc.jpg") no-repeat; background-size: cover; text-align: center}
article#work h2{color:#40739F ; font-size: 2.8em; line-height: 1.5em; font-family: serif; font-weight: 700; display: inline-block;
  border-bottom: solid 2px #FFBB00; padding-top: 3em;}
article#work>div{ display:table; table-layout: fixed; border-spacing: 2em; width: 100%; margin: 0 auto; }
article#work>div dl{ display: table-cell; }
article#work>div dt{ font-size: 2.2em; text-align: center; line-height: 1.5em;  color:#40739F; padding: 1em 0 1em 0; font-family: serif;}
article#work>div dd>img{ display: block; width: 80%; margin: 0 auto; }
article#work>div li{ width: 80%; margin: 0 auto; font-size: 1.4em; line-height: 2em; font-weight:500; text-align: left; }
article#work>div li img{ display: block; width: 100%; }
article#work .pc{ display: block; }
article#work .smp{ display: none; }
@media screen and (max-width: 480px) {
	article#work{ background: url("./img/work_bg_smp.jpg") no-repeat; background-size: cover;  }
	article#work h2{ font-size: 1.8em; }
	article#work>div{ display:block; }
	article#work>div dl{ display:block; }
	article#work>div dt{ font-size: 1.5em; line-height: 2em; padding-top: 2em; }
	article#work>div ol{ display:table; table-layout:auto; border-spacing: 1em; width: 100%; padding:0 1em; }
	article#work>div li{ display: table-cell; width:auto; vertical-align: top; font-size: 1.2em; line-height: 2em; }
	article#work>div li img{ width:38vw; }
	article#work .pc{ display: none; }
	article#work .smp{ display: block; }
}


article#work2{ text-align: center; }
article#work2 h2{color:#40739F ; font-size: 2.8em; line-height: 1.5em; font-family: serif; font-weight: 700; display: inline-block;
  border-bottom: solid 2px #FFBB00;}
article#work2 dl.title { display: table; table-layout: fixed; width:100%; margin: 0 auto; }
article#work2 dl.item{ display: table; table-layout: fixed; width:100%; margin: 0 auto; }
article#work2 dl.item dt{ display: table-cell; padding:2.5em 1.5em; vertical-align: middle; width:50%;}
article#work2 dl.item dt img{ display:block; width: 100%; }
article#work2 dl.item dd{display: table-cell; padding:2.5em 1.5em; vertical-align: middle; text-align: left;}
article#work2 dl.item div.ttl_theme{height: 50px; line-height: 50px; font-family: serif; text-align: center; font-size: 1.8em; padding:0 0 1em 0;  background-color: #40739F; color: #fff; }
/* article#work2 dl.item div.ttl_sub{ font-size: 1.8em; padding:1em 0; text-align: left;} */
article#work2 dl.item div.comment{ margin: 0 auto; font-size: 1.4em; line-height: 2em; font-weight:500}
/* article#work2 dl.item div.ttl_sub{ font-size: 1.8em; padding:1em 0; text-align: left;} */
article#work2 dl.item li{ display: table-cell; padding:2.5em 1.5em; vertical-align: middle; width:50%;}
article#work2 li img{width: 100%; display: none;}


article#work2 dl.item_reverse{display: table; table-layout: fixed; width:100%; margin: 0 auto; }
article#work2 dl.item_reverse dt{ display: table-cell; padding:2.5em 1.5em; vertical-align: middle; width:50%;}
article#work2 dl.item_reverse dt img{ display:block; width: 100%; }
article#work2 dl.item_reverse dd{display: table-cell; padding:2.5em 1.5em; vertical-align: middle; text-align: left;}
article#work2 dl.item_reverse div.ttl_theme{height: 50px; line-height: 50px; font-family: serif; text-align: center; font-size: 1.8em; padding:0 0 1em 0;  background-color: #40739F; color: #fff; }
/* article#work2 dl.item2 div.ttl_sub{ font-size: 1.8em; padding:1em 0; text-align: left;} */
article#work2 dl.item_reverse div.comment{ margin: 0 auto; font-size: 1.4em; line-height: 2em; font-weight:500; padding-top:2em; }
/* article#work2 dl.item2 div.ttl_sub{ font-size: 1.8em; padding:1em 0; text-align: left;} */
article#work2 ul img{width: 100%; display: none;}


@media screen and (max-width: 480px) {
	article#work2 h2{ font-size: 1.8em; }
	article#work2 dl.item{ display: block;}
	article#work2 dl.item dt img{ display:none;}

	article#work2 dl.item dt{ display: block; padding:1em; width:100%; }
	article#work2 dl.item dd{ display: block; padding:1em; }
	/* article#work2 dl.item div.ttl_sub{ padding:.5em 0; } */
	article#work2 dl.item div.ttl_theme{ font-size: 1.4em; padding:0 0 1em 0; text-align: center; }
    /* article#work2 dl.item div.ttl_sub{ font-size: 1.4em; padding:1em 0; text-align: left;} */
	article#work2 dl.item div.comment{ font-size: 1.2em; text-align: left;}
	article#work2 li img{ display:block; padding-bottom:2em;}



	article#work2 dl.item_reverse{ display: block; }
	article#work2 dl.item_reverse dt{ display: block; padding:1em; width:100%; }
	article#work2 dl.item_reverse dd{ display: block; padding:1em; }
	article#work2 dl.item_reverse dt img{ display:none;}
	/* article#work2 dl.item div.ttl_sub{ padding:.5em 0; } */
	article#work2 dl.item_reverse div.ttl_theme{ font-size: 1.4em; padding:0 0 1em 0; text-align: center;}
    /* article#work2 dl.item div.ttl_sub{ font-size: 1.4em; padding:1em 0; text-align: left;} */
	article#work2 dl.item_reverse div.comment{ font-size: 1.2em; text-align: left; padding:2em 0 0 0; }
	article#work2 ul img{ display:block; }
}






article#visual_05 dl.v01 img{ display:block; width: 100%; }
article#visual_05 dl.v01 img.pc{display: block; }
article#visual_05 dl.v01 img.smp{ display: none; }
	
@media screen and (max-width: 480px) {
	article#visual_05 dl.v01 img.pc{display: none; }
	article#visual_05 dl.v01 img.smp{ display: block; }
	} 

				

article#contact{ background: url("./img/cantact_bg_pc.jpg") center / cover; position: relative; width: 100%; min-height: 100%;}
article#contact p{ text-align: center; padding: 2em 0 2em; margin: 0 auto; font-size: 1.2em; line-height: 2em; font-weight:500}

article#contact form div{ display: table; margin:0 auto;  }
article#contact form dl{ display: table-row; }
article#contact form dl dt{ display: table-cell;  vertical-align: top; text-align: right; white-space:nowrap;  padding:1em 3.5em .8em .5em;position: relative; }
article#contact form dt:after{ content:"任意"; background:#56A41C; box-shadow: .2em .2em .5em rgba(0, 0, 0, .4);
	display: block; position: absolute; top: 2.0em; right:1em; font-size:.6em; line-height: 2em; padding:.1em 1em; color:#ffffff; }
article#contact form dt.need:after{ content:"必須"; background:#D64545; color:#ffffff; }
article#contact form div dl dd{ display: table-cell; vertical-align: top; padding:.8em 1em;  text-align: left;}
article#contact form input[type="text"]{ display:block; width:20em; padding:.2em 1em; border:0; border-radius:.6em; box-shadow: inset 5px 5px 5px rgba(194, 194, 194, 0.5); }
article#contact form label{ margin-right:1em; }
article#contact form input[type="checkbox"] { position: relative; width: 2em; height: 2em; margin-right:.5em; background: #fff; border-radius:.6em; vertical-align:top; appearance: none; box-shadow: inset 5px 5px 5px rgba(194, 194, 194, 0.5); }
article#contact form input[type="checkbox"]:checked:before { content: ''; position: absolute; top: 0; left: 0;  width: 2em; height: 2em; background: url("./img/check.png") center / cover  no-repeat; }
article#contact form input,textarea,select {font-size: 16px; }

article#contact form textarea{ display:block; width:20em; height:8em; padding:.1em 1em; border:0; border-radius:.6em; box-shadow: inset 5px 5px 5px rgba(194, 194, 194, 0.5); }
article#contact form label{ display: inline-block; }
article#contact form #button{ display: block; width:8em; line-height: 2em; text-align: center; background:#fff; color:#414141; margin:0 0 0 auto; border-radius: .6em; }
article#contact form a.link{ text-decoration: underline; }
article#contact form a.link:after{ content:""; display: inline-block; width:1.5em; height:1.5em; vertical-align: top; background: url("./img/link-icon01.png") center / cover  no-repeat; }


article#contact footer{ text-align: center; padding: 4em 0 2em 0;}
@media screen and (max-width: 480px) {
	article#contact{ background: url("./img/cantact_bg_smp.jpg") no-repeat; background-size: cover; padding:5em 0 3em 0; }

	article#contact p{ font-size: 1.0em;}
	article#contact form div{ width:100%; }
	article#contact form input[type="text"]{  width:100%;  }
	article#contact form textarea{  width:100%;  }
}



	article#contact footer{ font-size: .8em; padding: 4em 0 2em 0;}

footer{ display: block; font-size: 1em; text-align: center; padding:8em 0 6em 0; }


/*------------------
プライバシー
------------------*/
article#policy{ width:80%; max-width: 1500px; margin:0 auto; }
article#policy #ttl{ padding:10em 0 0 0;}
article#policy #mess{ padding:3em 0; }
article#policy dl dt{ padding:1em 0;  }
article#policy dl dd{ padding:0 0 2em 2em;  }