@charset "utf-8"; 

#mv{
  padding: 285px 0 120px;
}
#mv .wrap{
  position: relative;
}
#mv .wrap::before{
  content: '';
  position: absolute;
  bottom: -55px;
  right: -30px;
  width: 1050px;
  height: 227px;
  background: url(../img/bg_mv.png) 0 0 no-repeat;
  background-size: 100% auto;
  z-index: -1;
}
#mv .ttl{
  position: relative;
  display: inline-block;
  font-size: 4.8rem;
  line-height: 1.4;
  margin-bottom: 0.4em;
}
#mv .ttl::before{
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 20px;
  background: #FEFF00;
  z-index: -1;
}
#mv .subttl{
  font-size: 3.4rem;
  text-align: left;
}
#mv .txt{
  margin-top: 100px;
}
#mv .txt p{
  font-size: 1.6rem;
}
#mv .txt p + p{
  margin-top: 1.5em;
}
.headline{
  position: relative;
  font-size: 3.5rem;
  text-align: center;
  line-height: 1.4;
  margin-bottom: 40px;
  z-index: 2;
}
.headline span{
  position: relative;
  display: inline-block;
  padding: 0 1em;
}
.headline span::before{
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 20px;
  background: #FEFF00;
  z-index: -1;
}
.subttl{
  text-align: center;
  font-size: 2.3rem;
}
#about{
  position: relative;
  background: linear-gradient(90deg, #CEF3FF 0%, #CEF3FF 50%, #DBE3F1 50%, #DBE3F1 100%);
  padding: 80px 0;
  overflow: hidden;
  box-sizing: border-box;
}
#about::before{
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: url(../img/bg_about.png) 0 0 no-repeat;
  background-size: 100% 100%;
  z-index: 0;
}
#about .wrap{
  position: relative;
  z-index: 2;
}
#about .block{
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  padding: 0 50px;
  margin-top: 60px;
}
#about .block .img{
  position: relative;
}
#about .block .img .en{
  position: absolute;
  top: -0.55em;
  left: -50px;
  font-size: 4.0rem;
  letter-spacing: 0.12em;
  line-height: 1.2;
  color: #666;
}
#about .txtWrap{
  padding-left: 90px;
}
#about .txt{
  font-size: 1.5rem;
}
#about .txt + .txt{
  margin-top: 2em;
}
#about .nameWrap{
  margin-top: 80px;
}
#about .nameWrap .name{
  font-size: 1.8rem;
  letter-spacing: 0.12em;
  line-height: 1.4;
}
#about .nameWrap .name span{
  display: block;
  font-size: 2.5rem;
}
#about .nameWrap .affiliation{
  font-size: 1.5rem;
  margin: 1em 0 0;
}
#profile{
  padding: 140px 0 0;
}
#profile .subttl{
  margin: 0 0 1.2em;
}
#profile table{
  width: 950px;
  border-spacing: 0;
  margin: 0 auto;
}
#profile table th{
  width: 240px;
  border-top: 1px solid #BBB;
  box-sizing: border-box;
  padding: 1.6em 0 1.6em 75px;
}
#profile table td{
  border-top: 1px solid #BBB;
  padding: 1.6em 0;
}
#profile table td ul li{
  position: relative;
  padding: 0 0 0 1em;
}
#profile table td ul li::before{
  content: '・';
  position: absolute;
  top: 0;
  left: 0;
}
#news{
  padding: 140px 0 0;
}
#news .txt{
  text-align: center;
  margin-top: 2em;
}
#news .overview{
  position: relative;
  background: url(../img/bg_news.jpg) 0 bottom no-repeat #fff;
  background-size: cover;
  padding: 0 0 30px;
  z-index: 2;
}
#news .overview .block{
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  padding: 0 30px;
  margin-top: 90px;
}
#news .overview .block .img{
  margin-right: -30px;
}
#news .overview .block .ttl{
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 2.3rem;
  margin: 0 0 1em;
}
#news .overview .block .ttl::before,
#news .overview .block .ttl::after{
  content: '';
  width: 80px;
  height: 1px;
  background: #fff;
  margin: 0 0.5em;
}
#news .overview .block ul{
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  width: 620px;
}
#news .overview .block ul li{
  width: 48%;
  font-size: 1.8rem;
  border: 1px solid #000;
  text-align: center;
  line-height: 1.0;
  background: rgba(255,255,255,0.85);
  margin-top: 0.6em;
  padding: 0.8em 0;
}
#news .overview .block ul li:nth-child(-n+2){
  margin-top: 0;
}
#news .news{
  background: #F3EBDD;
  padding: 40px 0 30px;
}
#news .news .subttl{
  margin-bottom: 1em;
}
#news .news dl{
  width: 900px;
  margin: 0 auto;
}
#news .news dl dt{
  clear: left;
  float: left;
  width: 145px;
  line-height: 1.6;
  padding: 1em 0 0 0;
}
#news .news dl dt:first-of-type,
#news .news dl dd:first-of-type{
  padding-top: 0;
}
#news .news dl dd{
  line-height: 1.6;
  padding: 1em 0 0 145px;
}

#case{
  padding: 150px 0 40px;
}
#case .block{
  position: relative;
  display: flex;
  justify-content: space-between;
  flex-flow: wrap;
  margin: 30px 0 0;
  z-index: 2;
}
#case .block li{
  width: 360px;
  border: 20px solid #DAF6FF;
  box-sizing: border-box;
  border-radius: 50px;
  margin-top: 45px;
  padding: 25px 20px;
}
#case .block li:nth-child(-n+3){
  margin-top: 0;
}
#case .block .img{
  display: flex;
  align-items: center;
  margin: 0 0 10px;
}
#case .block .img p{
  display: flex;
  align-items: center;
  justify-content: center;
  width: 189px;
  height: 63px;
  background: url(../img/bg_case.png) 0 0 no-repeat;
  font-size: 1.5rem;
  line-height: 1.4;
  padding: 0 0.8em 0 2.8em;
  box-sizing: border-box;
}
#case .block .txt{
  background: rgb(255,191,255,0.2);
  font-size: 1.5rem;
  padding: 1em 1.3em;
}
#case .notes{
  display: flex;
  align-items: center;
  justify-content: center;
  height: 271px;
  text-align: center;
  background: url(../img/bg_solution.jpg) center center no-repeat;
  margin-top: -40px;
  z-index: 1;
}

#flow{
  background: rgba(55,94,177,0.15);
  padding: 95px 0 30px;
}
#flow ul{
  margin: 20px 0;
}
#flow ul + p{
  text-align: center;
}
#flow ul li{
  position: relative;
  display: flex;
  justify-content: space-between;
  height: 90px;
  background: #fff;
}
#flow ul li + li{
  margin-top: 90px;
}
#flow ul li + li::before{
  position: absolute;
  top: -79px;
  left: 50%;
  content: '';
  width: 80px;
  height: 68px;
  background: url(../img/icon_arrow.png) 0 0 no-repeat;
  background-size: 100% auto;
  transform: translateX(-50%);
}
#flow ul li .ttlWrap{
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 250px;
  background: #3960AF;
  padding: 0 20px;
  box-sizing: border-box;
}
#flow ul li .ttlWrap p{
  color: #fff;
}
#flow ul li .ttlWrap .num{
  font-size: 3.5rem;
  width: 1.1em;
}
#flow ul li .ttlWrap .ttl{
  width: 10em;
  font-size: 2.0rem;
  text-align: center;
}
#flow ul li .txt{
  display: flex;
  align-items: center;
  justify-content: flex-start;
  width: calc(100% - 250px);
  line-height: 1.6;
  padding: 0 30px;
  box-sizing: border-box;
}
#flow .priceWrap{
  width: 520px;
  padding: 80px 0 0 0;
  margin: 0 auto;
}
#flow .priceWrap .subttl{
  margin-bottom: 0.5em;
}
#flow .price{
  border: 1px solid #375EB1;
  background: #fff;
  padding: 20px 0 15px;
}
#flow .price p{
  text-align: center;
  line-height: 1.0;
}
#flow .price .ex{
  font-size: 1.8rem;
}
#flow .price .ex span{
  font-size: 4.0rem;
  margin-left: 0.2em;
}
#flow .price .ex + p{
  margin-top: 0.8em;
}
#flow .notes{
  width: 830px;
  margin: 30px auto 0;
}
#flow .notes a{
  color: #375EB1;
  border-bottom: 1px solid #375EB1;
}
#flow .notes a:hover{
  border-bottom: 1px solid transparent;
}
#access{
  padding: 150px 0;
}
#access .map iframe{
  width: 100%;
  height: 430px;
}
#access .map{
  margin: 10px 0 20px;
}
#contact{
  background: #EBF2F1;
  padding: 90px 0 0;
}
#contact .notes{
  text-align: center;
  margin: 0.5em 0 0;
}
#contact dl{
  width: 600px;
  margin: 30px auto 50px;
}
#contact dl dt{
  margin-bottom: 0.5em;
}
#contact dl dt span{
  color: #B20000;
  margin-right: 0.5em;
}
#contact dl dd + dt{
  margin-top: 35px;
}
#contact input[type="text"],
#contact input[type="email"],
#contact input[type="tel"],
#contact textarea{
  -webkit-appearance: none;
  width: 100%;
  font-size: 1.6rem;
  border: 1px solid #000;
  font-family: 'Noto Sans JP', sans-serif;
  padding: 0.5em 0.5em;
  box-sizing: border-box;
  outline: none;
}
#contact textarea{
  height: 180px;
  font-size: 1.6rem;
  font-family: 'Noto Sans JP', sans-serif;
  resize: vertical;
}
#contact button[type="submit"]{
  display: block;
  width: 600px;
  -webkit-appearance: none;
  font-size: 1.8rem;
  text-align: center;
  color: #fff;
  border: 0;
  margin: 0 auto 1em;
  background: #000;
  border: 1px solid #000;
  padding: 1.2em 0;
  transition: 0.3s;
  cursor: pointer;
}
#contact button[type="submit"]:hover{
  background: #fff;
  color: #000;
}
#contact .link{
  text-align: center;
}
#contact .link a:hover{
  color: #375EB1;
}
#thanks{
	padding: 175px 0 60px;
}
#thanks p{
	text-align: center;
}
#thanks .ttl{
	font-size: 2.0rem;
	font-weight: 700;
	margin: 0 0 1em;
}

@media screen and (max-width : 767px){

  .headline{
    font-size: 5.0vw;
    font-weight: 700;
    margin: 0 0 6vw;
  }
  .headline span{
    display: inline;
    background:-moz-linear-gradient(transparent 70%, #FFFF00 70%);
    background:-webkit-linear-gradient(transparent 70%, #FFFF00 70%);
    background:linear-gradient(transparent 70%, #FFFF00 70%);
    padding: 0 0.2em;
  }
  .headline span::before{
    content: none;
  }
  .subttl{
    font-size: 4.8vw;
  }
  #mv .ttl::before{
    height: 0.5em;
  }
  #mv{
    position: relative;
    height: auto;
    overflow: hidden;
    background: #fff;
    padding: 26vw 0 13.2vw;
    z-index: 10;
  }
  #mv .ttl{
    font-size: 7.2vw;
    margin: 0 0 0.5em;
  }
  #mv .subttl{
    font-size: 4.5vw;
    text-align: left;
  }
  #mv .txt{
    margin-top: 15vw;
  }
  #mv .wrap{
    padding-bottom: 2vw;
  }
  #mv .wrap::before{
    left: 5vw;
    bottom: 0;
    width: calc(100% - 10vw);
    height: 19vw;
  }
  #about{
    background: #D5F2FD;
    padding: calc(14.5vw + 14vw) 0 0;
    z-index: 9;
  }
  #about::before{
    content: none;
  }
  #about .wrap{
    padding: 0;
  }
  #about .block{
    display: block;
    padding: 0;
  }
  #about .block .img{
    padding: 0 25vw 8vw;
  }
  #about .block .img .en{
    top: -0.6em;
    left: 19vw;
    font-size: 5.3vw;
  }
  #about .nameWrap{
    margin: 5vw 0 0;
  }
  #about .nameWrap p{
    text-align: center;
  }
  #about .nameWrap .name{
    font-size: 4vw;
  }
  #about .nameWrap .name span{
    font-size: 5.3vw;
  }
  #about .nameWrap .affiliation{
    font-size: 4vw;
    margin: 0.5em 0 0;
  }
  #about .txtWrap{
    background: #D9E3F2;
    padding: 9vw 5vw;
  }
  
  #profile{
    padding: calc(16vw + 14vw) 0 0;
    z-index: 8;
  }
  #profile table{
    width: auto;
  }
  #profile table th{
    display: block;
    width: 100%;
    line-height: 1.6;
    padding: 4vw 0 0 0;
  }
  #profile table td{
    display: block;
    line-height: 1.6;
    border-top: 0;
    padding: 0 0 4vw 0;
  }
  #profile table tr:first-child th{
    border-top: 0;
    padding-top: 0;
  }
  
  #news{
    padding-top: calc(23vw + 14vw);
    z-index: 7;
  }
  #news .wrap{
    padding: 0;
  }
  #news .txt{
    text-align: left;
    margin-top: 1em;
    padding: 0 5vw;
  }
  #news .overview{
    background: none;
    padding: 0;
  }
  #news .overview .block{
    display: block;
    background: url(../img/bg_news_sp.jpg) 0 0 no-repeat;
    background-size: 100% auto;
    margin: 5vw 0 0;
    padding: 115vw 5vw 0;
  }
  #news .overview .block .ttl{
    font-size: 4.8vw;
    color: #000;
  }
  #news .overview .block .ttl::before,
  #news .overview .block .ttl::after{
    width: 2em;
    background: #000;
  }
  #news .overview .block ul{
    width: auto;
  }
  #news .overview .block ul li{
    display: flex;
    align-items: center;
    justify-content: center;
    height: 10vw;
    line-height: 1.2;
    font-size: 3.7vw;
    padding: 0;
  }
  #news .overview .block .img{
    margin: 7vw 0 0;
  }
  #news .news{
    padding: calc(8vw + 14vw) 5vw 8vw 5vw;
  }
  #news .news dl{
    width: auto;
  }
  #news .news dl dt{
    float: none;
    width: auto;    
  }
  #news .news dl dd{
    padding: 0;
  }
  #case{
    background: #fff;
    padding: calc(17vw + 14vw) 0 12vw;
    z-index: 6;
  }
  #case .block{
    display: block;
    margin: 4vw 0 0 0;
  }
  #case .block li{
    width: auto;
    border-width: 4vw;
    border-radius: 10vw;
    margin-top: 5vw;
    padding: 4vw;
  }
  #case .block li:nth-child(-n+3){
    margin-top: 5vw;
  }
  #case .block li:first-child{
    margin-top: 0;
  }
  #case .block .img img{
    width: 12vw;
  }
  #case .block .img p{
    width: calc(100% - 10vw);
    height: 12vw;
    font-size: 4vw;
    line-height: 1.2;
    justify-content: flex-start;
    letter-spacing: -0.05em;
    background: url(../img/bg_case_sp.png) 0 0 no-repeat;
    background-size: 100% 100%;
    padding: 0 0.5em 0 1.5em;
  }
  #case .block .txt{
    font-size: 3.7vw;
  }
  #case .notes{
    width: auto;
    height: auto;
    background-size: 80% auto;
    background-position: center center;
    margin: 10vw 0 0;
  }
  #flow{
    padding: calc(12vw + 14vw) 0 12vw 0;
    z-index: 5;
  }
  #flow ul{
    margin: 8vw 0 0;
  }
  #flow ul li{
    display: block;
    height: auto;
  }
  #flow ul li .ttlWrap{
    width: auto;
  }
  #flow ul li .txt{
    width: auto;
    padding: 3vw 4vw;
  }
  #flow ul li .ttlWrap .ttl{
    width: calc(100% - 2em);
    box-sizing: border-box;
    font-size: 4.8vw;
    padding: 0 2em 0 0;
  }
  #flow ul li .ttlWrap .num{
    font-size: 5.3vw;
  }
  #flow ul li + li::before{
    top: -17vw;
    width: 16vw;
    height: 14vw;
  }
  #flow ul li + li{
    margin-top: 20vw;
  }
  #flow ul + p{
    margin-top: 0.5em;
  }
  #flow .priceWrap{
    width: auto;
    padding: calc(10vw + 14vw) 0 0 0;
    margin-top: -10vw;
  }
  #flow .priceWrap .subttl{
    margin-bottom: 0.8em;
  }
  #flow .price{
    padding: 4vw 0;
  }
  #flow .price .ex{
    font-size: 4.3vw;
  }
  #flow .price .ex + p{
    font-size: 3.7vw;
  }
  #flow .price .ex span{
    font-size: 8.4vw;
  }
  #flow .notes{
    width: auto;
    margin: 5vw 0 0;
  }
  
  #access{
    background: #fff;
    padding: calc(14vw + 14vw) 0 14vw 0;
    z-index: 4;
  }
  #access .map{
    margin: 4vw 0;
  }
  #access .map iframe{
    height: 100vw;
  }
  #contact{
    padding: calc(14vw + 14vw) 0 14vw 0;
    z-index: 3;
  }
  #contact .notes{
    text-align: left;
  }
  #contact dl{
    width: auto;
    margin: 10vw 0 0;
  }
  #contact dl dd + dt{
    margin-top: 7vw;
  }
  #contact button[type="submit"]{
    width: 100%;
    font-size: 3.7vw;
    padding: 1em 0;
    margin: 8vw 0 6vw;
  }
  #contact .link{
    margin: 1em 0 0;
  }
  .ank{
    position: relative;
    margin-top: -14vw;
  }

}

@media screen and (max-width: 768px) {
	.formError{
		position: relative;
		pointer-events: none;
		z-index: 0;
	}
	.formError::before{
		content: '';
		display: block;
		width: 1px;
	}
	.formError::before{
		height: 25vw;
		margin-top: -25vw;
	}
}
@media (orientation: landscape) and (max-width : 767px){


}