@charset "UTF-8";

*{
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	box-sizing: border-box;
}

a{
	color:inherit;
	text-decoration: none;
	transition: 0.3s;
	-webkit-tap-highlight-color:rgba(0,0,0,0);
	outline: none;
}

a:hover{
	color: #999;
}

.mb10{margin-bottom: 10px;}
.mb15{margin-bottom: 15px;}
.mb20{margin-bottom: 20px;}
.mb30{margin-bottom: 30px;}
.mb40{margin-bottom: 40px;}
.mb50{margin-bottom: 50px;}
.mb60{margin-bottom: 60px;}
.mb80{margin-bottom: 80px;}
.mb100{margin-bottom: 100px;}
.mb200{margin-bottom: 200px;}

.normal{font-weight: normal;}
.small{font-size: 1.0rem;}

#text{
	display: none;
}


/* SP版ベースに構築 ---------------------------------------- */

/* 共通設定 */
.sp_none{
	display: none;
 }
.pc_none{
	display: block;
 }

/*html {
  visibility: hidden;
}
html.wf-active {
  visibility: visible;
}*/

html{
	font-size: 62.5%;
	height: 100%;
	width: 100%;
}

body {
	font-family: a-otf-futo-go-b101-pr6n, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック体", "YuGothic", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", "Meiryo", "verdana", sans-serif;
	font-weight: 500;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	font-style: normal;
	font-size: 1.3rem;
	background-color: #111;
	color: #111;
	line-height: 2.0;
	overflow-x: hidden;
	-webkit-text-size-adjust: 100%;
	font-feature-settings : "palt";
	letter-spacing: 0.05em;
	width: 100vw;
	min-width: 100vw;
}

.contents_wrap{
	width: 100vw;
    overflow-x: hidden;
	background-color: #f9fafa;
}


.loading{
	width: 100vw;
	height: 100vh;
	position: fixed;
	top: 0;
	left: 0;
	background-color: #111;
	z-index: 102;
}

.bodyfixed{
	overflow: hidden;
}

.justify{
	text-align: justify;
    text-justify: inter-ideograph;
}

.red{
	color:#BF0508
}


h2{
	font-family: itc-avant-garde-gothic-pro, sans-serif;
	font-weight: 300;
	font-size: 2.9rem;
	line-height: 1;
	text-transform:uppercase;
	letter-spacing: 0;
	margin-bottom: 50px;
}

.text_gray{
	color: #898989;
}

.contents{
	padding-top: 55px;
}

.contents article section{
	margin-left: 8vw;
	margin-right: 8vw;
}


/*FVモーション*/
.firstview{
	overflow: hidden;
	background-position: center center;
	background-size: 38.8% auto, cover;
	background-repeat: no-repeat;
}

.firstview.on{
	background-image: url("../img/logo_w.svg"), url("../img/fv_back_sp.jpg");
}


@media screen and (max-width:812px) {
  .motion video {
    width: 100vw;
    height: auto;
    transform: translate(0, -50%);
    position: relative;
  }
}

.motion.sponly{
	display: block;
}
	
.motion.pconly{
	display: none;
}


/*各コンテンツ*/

.concept{
	margin-bottom: 125px;
}

.concept h3, .about h3{
	font-size: 1.7rem;
	letter-spacing: 0.1em;
	font-family: a-otf-midashi-go-mb31-pr6n, sans-serif;
	font-weight: 600;
	font-style: normal;
	margin-bottom: 20px;
	line-height: 1;
}

.hwp{
	font-family: itc-avant-garde-gothic-pro, sans-serif;
	font-weight: 600;
	margin-bottom: 50px;
	font-size: 1.3rem;
	line-height: 1;
}

.copy{
	color: #898989;
	line-height: 2.9;
}

.works, .about, .flow, .contact, .company {
	margin-bottom: 125px;
}

.works ul{
	width: 84vw;
	margin: 0 auto;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}

.works ul li{
	width: 40vw;
	margin-bottom: 30px;
	overflow: hidden;
	color: #898989;
	line-height: 1.75;
}

.works li span img{
	width: 100%;
	height: auto;
	display: block;
	object-fit: cover;
	margin-bottom: 5px;
}

.works li p{
	color: #898989;
	text-align: justify;
    text-justify: inter-ideograph;
}

.to_insta a{
	display: block;
	width: 180px;
	height: 37px;
	line-height: 35px;
	text-align: center;
	text-transform:uppercase;
	font-family: itc-avant-garde-gothic-pro, sans-serif;
	font-weight: 300;
	margin: 0 auto;
	border: 1px solid #111;
}

.about_pic, .flow_pic{
	width: 100%;
	height: auto;
	display: block;
	margin-bottom: 50px;
}

.flow dt, .system_illust dd{
	font-size: 1.7rem;
	letter-spacing: 0.1em;
	font-family: a-otf-midashi-go-mb31-pr6n, sans-serif;
	font-weight: 600;
	font-style: normal;
	text-align: center;
	line-height: 1;
}

.flow dt{
    margin-bottom: 25px;
}

.flow dt:before, .system_illust dd:before{
	font-size: 1.4rem;
	font-family: itc-avant-garde-gothic-pro, sans-serif;
	font-weight: bold;
	display: block;
	letter-spacing: 0.03em;
	background-image: url("../img/flow_no_bottom.svg");
	background-position: center bottom;
	background-repeat: no-repeat;
    background-size: auto 2px;
    line-height: 1;
    height: 18px;
    width: 15px;
    margin-left: auto;
    margin-right: auto;
}

.flow dt:before{
	margin-bottom: 25px;
}

.flow dt.flow01:before, .system_illust dd.flow01:before{
	content: "01";
}
.flow dt.flow02:before, .system_illust dd.flow02:before{
	content: "02";
}
.flow dt.flow03:before, .system_illust dd.flow03:before{
	content: "03";
}
.flow dt.flow04:before, .system_illust dd.flow04:before{
	content: "04";
}
.flow dt.flow05:before, .system_illust dd.flow05:before{
	content: "05";
}

.flow dd{
	text-align: center;
}

.flow dd:after{
	content: "";
	display: block;
	width: 1px;
	height: 26px;
	background-color: #222;
	margin: 25px auto;
}

.flow dd:last-child:after{
	display: none;
}

.form_wrap table th, .form_wrap table td{
	display: list-item;
	list-style-type: none;
}

.form_wrap table th{
	text-align: left;
}

.form_wrap table td{
	margin-bottom: 20px;
}

.form_wrap table input, .form_wrap table textarea{
	width: 100% !important;
	border: 1px solid #222;
	background-color: #fff;
	padding: 10px;
	-webkit-appearance: none;
}

.form_wrap table input{
	height: 30px !important;
}

.form_wrap table textarea{
	height: 120px !important;
}

.attention{
	text-align: center;
	margin-bottom: 30px;
}

.submit_button{
	display: block;
	margin: 0 auto;
	width: 180px;
	height:40px;
	color: #fff;
	background-color: #111;
	border: 0;
	letter-spacing: 0.5em;
	text-indent: 0.5em;
}

.company h3{
	width: 111px;
	height: 40px;
	margin-bottom: 30px;
}

.company h3 img{
	width: 100%;
	height: 100%;
}

address{
	font-style: normal;
}

address span{
	font-size: 1.4rem;
	font-family: itc-avant-garde-gothic-pro, sans-serif;
	font-weight: 300;
}

address p:first-of-type{
	margin-bottom: 30px;
}

.contents article.login section{
	margin-left: 0;
	margin-right: 0;
}

.login h2{
	background-color: #111;
	color: #fff;
	padding-top: 50px;
	padding-bottom: 40px;
	padding-left: 8vw;
	line-height: 1;
	margin-bottom: 0;
}

.login_back{
	background-image: url("../img/to_login.jpg");
	background-position: left bottom;
	background-size: cover;
	background-repeat: no-repeat;
	min-height: 250px;
	text-align: right;
	padding-top: 55px;
	padding-right: 40px;
	font-size: 1.4rem;
}

.login_back a span{
	text-decoration: underline;
}

small{
	background-color: #111;
	display: flex;
	color: #fff;
	justify-content: center;
	align-items: center;
	height: 100px;
	font-family: itc-avant-garde-gothic-pro, sans-serif;
	font-weight: 300;
}

.system_top{
	background-image: url("../img/system_top.jpg");
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	width: 100vw;
	height: 100vw;
}

.system_top section{
	color: #fff;
	text-align: right;
	display: flex;
	justify-content: center;
    height: 100%;
    flex-direction: column;
	padding-right: 8vw;
}

.system_top h1{
	font-family: a-otf-midashi-go-mb31-pr6n, sans-serif;
	font-weight: 600;
	font-size: 1.7rem;
}

.system_top em{
	font-style: normal;
	font-family: itc-avant-garde-gothic-pro, sans-serif;
	font-weight: 300;
	font-size: 1.3rem;
}

.how{
	margin-top: 50px;
}

.how section{
	margin-left: 8vw;
	margin-right: 8vw;
	margin-bottom: 100px;
}

.how h2, .chart h2{
	font-size: 1.5rem;
	margin-bottom: 30px;
	font-family: a-otf-futo-go-b101-pr6n, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック体", "YuGothic", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", "Meiryo", "verdana", sans-serif;
    font-weight: bold;
	position: relative;
}

.how h2:before, .chart h2:before{
	display: inline-block;
	content: "";
	width: 27px;
	height: 1px;
	background-color: #111;
	top: -0.3em;
    position: relative;
    margin-right: 10px;
}

.how ol li{
	padding-left: 10px;
	margin-bottom: 20px;
	position: relative;
}

.how ol li:before{
		display: inline-block;
		content: "";
		width: 3px;
		height: 3px;
		border-radius: 50%;
		background-color: #111;
		position: absolute;
		top: 12px;
		left: 0;
		transition: 0.3s;
}

.system_illust{
	margin-left: 8vw;
	margin-right: 8vw;
}

.system_illust dt{
	font-family: itc-avant-garde-gothic-pro, sans-serif;
	font-weight: 300;
	text-transform: capitalize;
	text-align: center;
	color: #727171;
	font-size: 1.5rem;
}

.system_illust dt:after{
	display: block;
	content: "";
	margin: 20px auto;
	width: 1px;
	height: 60px;
	background-color: #727171;
}

.system_illust dd{
	margin-bottom: 50px;
}

.system_illust dd:before{
	color: #727171;
	background-image: url("../img/flow_no_bottomGray.svg");
}

.system_illust dd.flow01:before{
	margin-bottom: 20px;
}

.system_illust dd img{
	width: 60%;
	height: auto;
	display: block;
	margin: 0 auto;
}

.chart p{
	color: #898989;
	margin-bottom: 100px;
}

.chart h3{
	text-align: center;
	color: #727171;
	margin-bottom: 30px;
}

.chart img{
	width: 56%;
	min-width: 210px;
	height: auto;
	display: block;
	margin: 0 auto;
	margin-bottom: 100px;
	position: relative;
	left: 7%;
}

.to_index a{
	background-color: #c9caca;
	width: 180px;
	height: 30px;
	line-height: 30px;
	display: block;
	padding-left: 20px;
	background-image: url("../img/cursol.svg");
	background-position: right 10px center;
	background-repeat: no-repeat;
	background-size: 33px 7px;
	margin: 0 auto;
    color: #111;
	font-family: itc-avant-garde-gothic-pro, sans-serif;
	font-weight: 300;
}

.thanks section{
	height: 100vh;
	min-height: 100vh;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.thanks section p{
	margin-top: 100px;
	margin-left: 8vw;
	margin-right: 8vw;
}

.ex{
	margin-bottom: 125px;
	overflow-x: visible;
}

.ex img{
	display: block;
}

.ex_pc {
	display: none;
}

.scroll_wrap{
    width: 100vw;
    overflow: hidden;
    display: inline-block;
	margin-left: 20px;
 }

.whiteSlide{
    z-index: 3;
    display: block;
    top: 0px;
	right: 0;
	position: absolute;
	background-color: #111;
}

.effect{
	position: relative;
	display: block;
}

/* SP横向き */

@media screen and (orientation: landscape) and (max-width: 812px){
	.form_wrap table{
		margin: 0 auto;
	}
}


/* PC版上書き ---------------------------------------- */

@media screen and (min-width:813px){
	body{
		font-size: 1.4rem;
		overflow-y: scroll;
	}
	
	.pc_none{
		display: none;
    }
	.sp_none{
		display: block;
    }
	
	.firstview{
		position: relative;
		z-index: 2;
		margin: 0 auto;
		width: 100%;
		left: 0;
		right: 0;
		top: 0;
		bottom: 0;
	}
	
	.motion.sponly{
		display: none;
	}
	
	.motion.pconly{
		display: block;
	}
	
	.motion {
	  position: relative;
	  overflow: hidden;
	  width: 100%;
	  height: 100vh;
	}
	.motion video {
	  min-width: 100%;
	  min-height: 100vh;
	  position: absolute;
	}
	
	/*画面サイズが変わっても常に動画の中央が表示されるようにする*/
	/*動画よりも画面が横に長くなるとき用*/
	@media (aspect-ratio: 16/9), (min-aspect-ratio: 16/9) {
	  video {
	    width: 100%;
	    top: 50%;
	    transform: translateY(-50%);
	  }
	}
	/*動画よりも画面が縦に長くなるとき用*/
	@media (max-aspect-ratio: 16/9) {
	  video {
	    height: 100%;
	    left: 50%;
	    transform: translateX(-50%);
	  }
	}
	
	.firstview.on{
		background-image: url("../img/logo_w.svg"), url("../img/fv_back_pc.jpg");
	}
	
	.firstview{
		background-size: 19.8% auto, cover;
	}
	
	
	.contents {
		padding-top: 200px;
	}
	
	h2{
		font-size: 6.7rem;
	}
	
	.concept h3, .about h3{
		font-size: 2.5rem;
	}
	
	.hwp{
		font-weight: 300;
		font-size: 2.0rem;
	}
	
	.works{
		background-color: #898989;
		padding-bottom: 80px;
	}
	
	.concept {
		margin-bottom: 200px;
	}
	
	.works h2{
		text-align: center;
		position: relative;
		top: -0.5em;
		margin-bottom: calc(100px - 0.5em);
	}
	
	.works ul{
		padding-bottom: 80px;
	}
	
	.works ul li {
		width: 18vw;
		margin-bottom: 0px;
	}
	
	.works li p {
		color: #000;
	}
	
	.works li span img{
		margin-bottom: 20px;
	}
	
	.to_insta a:hover{
		background-color: #111;
		color: #fff;
	}
	
	.about{
		display: flex;
		margin-bottom: 300px;
	}
	
	.about_pic{
		width: 46vw;
		margin-bottom: 0;
	}
	
	.about h2{
		margin-bottom: 85px;
	}
	
	.about h3{
		margin-bottom: 60px;
	}
	
	.about p{
		line-height: 2.8;
	}
	
	.flow{
		display: flex;
		flex-direction: row-reverse;
		justify-content: center;
		margin-bottom: 300px;
	}
	
	.flow h2{
		margin-bottom: 80px;
	}
	
	.flow_pic{
		width: auto;
		height: 676px;
		margin-bottom: 0;
		margin-left: -250px;
	}
	
	.flow{
		margin-left: 5px;
	}
	
	.flow dt{
		text-align: left;
		margin-bottom: 5px;
	}
	
	.flow dd{
		text-align: left;
		padding-left: 85px;
		margin-bottom: 50px;
	}
	
	.flow dt:before {
		margin-bottom: 0;
		margin-right: 20px;
		display: inline-block;
		background-image: url("../img/pcflow_line.svg");
		background-position: right top 6px;
		background-repeat: no-repeat;
		background-size: 26px auto;
		font-weight: 300;
		width: 65px;
	}
	
	.flow dd:after{
		display: none;
	}
	
	.flow_pic_wrap{
		width: 35vw;
		overflow: hidden;
		margin-right: 8vw;
	}
	
	.contact{
		margin-bottom: 300px;
	}
	
	.contact h2{
		text-align: center;
	}
	
	.form_wrap table input, .form_wrap table textarea {
		width: 730px !important;
	}
	
	.form_wrap table input {
		height: 40px !important;
	}
	
	.form_wrap table textarea {
		height: 180px !important;
	}
	
	.form_wrap table{
		margin: 0 auto;
	}
	
	.submit_button:hover{
		cursor: pointer;
	}
	
	.company{
		height: 450px;
		background-image: url("../img/company.jpg");
		background-position: right center;
		background-repeat: no-repeat;
		background-size: 44vw auto;
		margin-bottom: 300px;
	}
	
	.company h2{
		margin-bottom: 9%;
	}
	
	.login{
		background-color: #111;
		padding-right: 5.7vw;
		padding-top: 5.7vw;
	}
	
	.login h2 {
		background-color: transparent;
		color: #111;
		padding-top: 0;
		padding-left: 0;
		padding-right: 0px;
		padding-bottom: 70px;
		text-align: left;
	}
	
	.login section{
		background-image: url(../img/to_login.jpg);
		background-position: right center;
		background-size: cover;
		height: 627px;
		display: flex;
		justify-content: center;
		flex-direction: column;
		align-items: flex-end;
		padding-right: 8vw;
	}
	
	.login_back{
		background-image: none;
		min-height: auto;
		padding-right: 0;
		padding-top: 0;
		text-align: left;
		margin-right: -10px;
	}
	
	.login_back p:first-of-type{
		margin-bottom: 10px;
	}
	
	small{
		height: 120px;
	}
	
	.thanks section p {
		margin-top: 150px;
	}
	
	.system_top{
		height: 650px;
		background-position: center bottom 200px;
		background-size: cover;
	}
	
	.system_top section {
		color: #111;
		text-align: left;
		justify-content: flex-end;
		padding-right: 0;
		padding-left: 8vw;
	}
	
	.system_top h1{
		font-size: 2.5rem;
		color: #898989;
	}
	
	.system_top em{
		font-size: 2.0rem;
		color: #898989;
	}
	
	.contents.system_wrap{
		padding-top: 125px;
	}
	
	.ml37{
		margin-left: 37px;
	}
	
	.how{
		margin-bottom: 200px;
		margin-top: 0;
	}
	
	.how ol li{
		margin-bottom: 5px;
	}
	
	.how section{
		margin-bottom: 0;
	}
	
	.system_illust{
		margin-top: -150px;
	}
	
	.system_illust dl{
		min-width: 1000px;
	}
	
	.system_illust dt{
		writing-mode: vertical-rl;
		-webkit-writing-mode:vertical-rl; 
		-ms-writing-mode: tb-rl;
		width: 80%;
		padding-right: 80px;
		font-size: 2.5rem;
		color: #111;
		margin-bottom: 20px;
	}
	
	.system_illust dt:after{
		display: inline-block;
		font-size: 2.5rem;
		color: #111;
		margin: 10px auto;
		margin-left: -5px;
		height: 110px;
	}
	
	.system_illust dd {
		position: relative;
		padding-left: 50px;
		margin-bottom: 0;
	}
	
	.system_illust dd.flow02{
		padding-left: 30px;
	}
	
	.system_illust dd.flow03 {
		margin-right: 0;
		padding-left: 15px;
	}
	
	.system_illust dd:before{
		margin-bottom: 20px;
		position: absolute;
		transform: translate(0, -50%);
		left: 0;
		top: 50%;
	}
	
	.system_illust dd img {
		width: 15vw;
		min-width: 205px;
		height: auto;
		display: inline-block;
	}
	
	.flow_wrap{
		display: flex;
		justify-content: space-between;
		width: 80%;
	}
	
	.chart img {
		width: 100%;
		min-width: auto;
		margin: 0;
		left: auto;
		max-width: 1000px;
	}
	
	.chart h3{
		text-align: left;
	}
	
	.to_index a {
	  height: 50px;
	  line-height: 50px;
	  margin: 0;
	  margin-left: auto;
	  margin-top: 170px;
	}
	
	.to_index a:hover {
	  color: #fff;
	  background-color: #111;
	  background-image: url("../img/cursol_w.svg");
	}

	
	.ex{
		display: none;
	}
	
	.ex_pc {
		display: block;
		margin-bottom: 300px;
	}
	
	.my-paroller{
		width: 2070px;
		height: 676px;
	}
	
}


/* tablet版上書き ---------------------------------------- */

@media only screen and (min-width:813px) and (max-width:1024px) {
	
	
} /* tablet版終わり */



/* 印刷用 ---------------------------------------- */
@media print{
	*{
		transition-property: none !important;
		animation-name: none !important;
		opacity: 1 !important;
		font-family:initial;
	}
}

