@charset "utf-8";

@-ms-viewport {
  width: device-width;
}

@viewport {
  width: device-width;
}


@media screen and (max-width:768px){

* {
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  font-size:3.7vw
}
	
.pc{display:none!important;}
.sp{display:block!important;}	
.space{display:none!important;}
.w100per{
	width:100%;
	height:auto;
}


/*Contents layout
----------------------------------------------------*/
.contents{
	width:90%;
	padding-bottom:8vw;
}

.contents p{
	margin-bottom:4vw;
}

.contents img{
	width:100%;
	margin:0 auto;
}

.contents img.gensun{
	width:100%;
	margin:0 auto;
} 

.scrollfix{
	width: 100%;
	height: 100%;
	position: fixed;
}


/*header
----------------------------------------------------*/
header .box_left{
	position:relative;
	float:none;
	width:100%;
	height:10vw;
	background:rgba(255,255,255,0.9);
}

header .box_right{
	float:none;
	width:100%;
}

header .box_left a{
	position:relative;
	top:2vw;
	width:26%;
	height:auto;
	margin:0;
	padding:0 3%;
	background:none;
	display:inline-block;
}

header .box_left img{
	width:100%;
	height:auto;
	margin:0!important;
	padding:0!important;
}

header .box_right .box_ttl{
	height:auto;
	padding:2vw 3%;
}

header .box_right .box_ttl h1,
header .box_right .box_ttl p{
	max-width:100%;
	font-size:4.0vw;
	line-height:1.4;
}

header .box_right .box_ttl dl{
	display:none;
}


/*top
----------------------------------------------------*/
.mv{
	height:64vw;
	background:url(../img/mv_top.jpg) no-repeat center 22vw / cover;
}

.mv h2{
	padding:34vw 0 0 3%;
	font-size:5vw;
}

.sec_top01{
	padding:4vw 0 0 0;
	background:url(../img/bg01.jpg) no-repeat left -85vw top / cover;
}

.sec_top01 .contents{
	padding-left:30%;
}

.sec_top01 .contents h2{
	margin-bottom:6vw;
	padding:8vw 0 4vw 0;
	font-size:5.0vw;
	
}

.sec_top01 .contents h2 span{
	width:8vw;
	margin-top:4vw!important;
}

.sec_top01 .contents p{
	padding:3vw;
	background:rgba(255,255,255,.85)
}

.sec_top02{
	margin:8vw auto 0 auto;
	padding:0 0 50vw 0;
	background:url(../img/bg03_sp.jpg) no-repeat center bottom / contain;
}

.sec_top02 .contents{
	padding:0;
}

.sec_top02 .contents h2{
	margin-bottom:6vw;
	padding:0 0 4vw 0;
	font-size:5.0vw;
	
}

.sec_top02 .contents h2 span{
	width:8vw;
	margin-top:4vw!important;
}

.sec_top03{
	padding-bottom:12vw;
	background:url(../img/bg02_sp.jpg) no-repeat bottom center / cover;
}

.sec_top03 .kakomi{
	font-size:4.4vw;
}

.sec_top04{
	margin:8vw auto 0 auto;
	padding:0 0 50vw 0;
	background:url(../img/bg06_sp.jpg) no-repeat center bottom / contain;
}

.sec_top04 .contents{
	padding:0;
}

.sec_top04 .contents h2{
	margin-bottom:6vw;
	padding:0 0 4vw 0;
	font-size:5.0vw;	
}

.sec_top04 .contents h2 span{
	width:8vw;
	margin-top:4vw!important;
}

.btn a{
	min-width:200px;
	padding:10px 10px;
	background:linear-gradient(to left, #33A1DB, #094FA4);
	font-weight:bold;
	color:#FFF;
	text-align:center;
	display:block;
}

.btn a span{
	padding-right:15px;
	background:url(../img/icon_link_w.png) no-repeat right center / 8px auto;
	display:block;
}


/*common
----------------------------------------------------*/
.mv_business{
	height:54vw;
	background:url(../img/mv_business.jpg) no-repeat left top / cover;
}

.mv_business h1{
	padding:36vw 0 0 3%;
	font-size:5vw;
}

.path{
	padding:4vw 3%;
}

.path ul li{
	font-size:2.8vw;
}

.path ul li a{
	padding-right:4vw;
	font-size:2.8vw;
}

.bg_ttl{
	background:url(../img/bg_ttl.jpg) no-repeat center top / 160% auto;
}

.bg_ttl_reference{
	background:url(../img/bg_ttl.jpg) no-repeat center top / 260% auto;
}

.bg_ttl h2{
	padding:8vw 0;
	font-size:5.0vw;
}

.bg_ttl_inner{
	padding-top:8vw;
}

.contents h2{
	margin-bottom:6vw;
	padding:12vw 0 6vw 0;
	font-size:5.0vw;
	
}

.contents h2 span{
	width:6vw;
	margin-top:4vw!important;
}

.contents h3{
	margin-bottom:4vw;
	padding:8vw 0 0 0;
	font-size:4.6vw;
	
}

.contents h4{
	margin-bottom:15px;
	padding:50px 0 10px 0;
	border-bottom:1px solid #BBB;
	font-size:4.2vw;
}

.contents h5{
	padding:6vw 0 1vw 0;
	font-size:4.0vw;
}


.contents .box_left{
	float:none;
	width:100%;
	margin-bottom:6vw;
}

.contents .box_right{
	float:none;
	width:100%;
}

.contents .kakomi{
	width:94%;
	margin:8vw auto;
	padding:6vw;
	box-shadow: 0 0 4vw 0 rgba(0, 0, 0, .12);
}

.contents .kakomi h3{
	padding:0 4vw;
}

.contents ul{
	margin:0;
	padding:0 0 2vw 5vw;
}

.contents ol{
	margin:0;
	padding:0 0 6vw 3vw;
}

.contents table{
	border-top:1px solid #BBB;
	margin-bottom:6vw;
}

.contents table th{
	border-top:0;
	display:block;
}

.contents table td{
	border-top:0;
	display:block;
}

.contents .link_pdf{
	padding-right:4.4vw;
	background:url(../img/icon_pdf.png) no-repeat right center / 3vw;
	text-decoration:underline;
}

.contents .box_tri dl{
	float:none;
	width:100%;
	margin:0 0 8vw 0;
}

.contents .box_tri dl:nth-of-type(3n){
	margin:0 0 8vw 0;
}

.contents .box_tri dl dt em{
	width:100%;
	height:40vw;
}

.contents .box_tri dl dt span{
	padding:4vw 4vw 0 4vw;
}

.contents .box_tri dl dd{
	padding:4vw 4vw 0 4vw;
}

#sec02,
#sec03,
#sec04{
	margin-top:-12vw!important;
	padding-top:26vw!important;
}


/*counter
----------------------------------------------------*/
.block {
	margin-bottom: 4vw;
	overflow: hidden;
	transition: height 500ms;
}

.block p {
	margin: 0;
}

.block p + p {
	margin-top: 1em;
}

.block__title {
	position: relative;
	padding: 0;
	line-height: 2vw;
	cursor: pointer;
	user-select: none;
}

.block__title:hover {
	opacity: .8;
}

.block__title h4 {
	margin: 0;
	padding:0 6vw 4vw 12vw;
	border-bottom:0;
	line-height:1.6;
}

.block__title h4:before {
	top:0;
	left:0;
	min-height:5vw;
	font-size:10vw;
	line-height:1.0;
}

.block__title::after {
	display: flex;
	align-items: center;
	justify-content: center;
	position: absolute;
	top: 0;
	right: 0;
	width: .75em;
	height: 70%;
	padding-right: 1rem;
	font-size: 1.17em;
}

.block.is-collapsed .block__title::after {
	content: '＋';
	font-size:4vw;
}

.block.is-expanded .block__title::after {
	content: '―';
	font-size:4vw;
}

.block__content {
	padding:4vw 0 4vw 12vw;
}

.block__content ul::before {
	top:2vw;
	font-size:10vw;
}


/*sec_contact
----------------------------------------------------*/
.sec_contact{
	padding:10vw 2%;
}

.sec_contact .contents{
	padding:6vw 6vw 4vw 6vw;
	box-shadow: 0 0 4vw 0 rgba(0, 0, 0, .12);
}

.sec_contact .contents .box_left{
	float:none;
	width:100%;
	padding:0;
}

.sec_contact .contents .box_right{
	float:none;
	width:100%;
	padding:6vw 0 0 0;
	border-left:0;
	border-top:1px solid #BBB;
}

.sec_contact .contents .box_left span{
	min-height:auto;
	padding:0 4vw 0;
	font-size:5vw;
}

.sec_contact .contents .box_right p{
	margin-bottom:20px;
	font-size:14px;
	font-weight:bold;
}

.sec_contact .contents .box_right p span{
	font-size:20px;
	display:block;
}

.sec_contact .contents .box_right p.icon_map{
	padding-left:36px;
	background:url(../img/icon_map.png) no-repeat left center / 18px auto;
	font-weight:normal;
}

.sec_contact .contents .box_right p.icon_phone{
	padding:5px 0 5px 36px;
	background:url(../img/icon_phone.png) no-repeat left center / 16px auto;
	font-weight:normal;
}


/*footer
----------------------------------------------------*/
footer{
	background:url(../img/bg04_sp.jpg) no-repeat center top / 100% auto;
}

footer h2{
	padding:2vw 3%;
	font-size:5vw;
}

footer .box_link{
	padding:2vw 3% 8vw 3%;
}

footer .box_link ol{
	width:94%;
}

footer .box_link ol li{
	float:none;
	width:100%;
	margin:0;
	border-bottom:1px solid #999;
}

footer .box_link ol li:nth-of-type(1){
	margin:0;
}

footer .box_link ol li a{
	padding:4vw 0;
	border-right:0;
	line-height:1.6;
}

footer .box_link ol li:nth-of-type(1) a{
	border-left:0;
}

footer .box_link ol li a.sub{
	background:url(../img/icon_link_nav.png) no-repeat right 5% center / 10px;
}

footer .box_link ul{
	padding:4vw 0;
}

footer .box_link ul li{
	margin-bottom:0;
	border-bottom:0;
}

footer .box_link ul li a{
	padding:1.5vw 0 1.5vw 18px;
	background:url(../img/icon_link.png) no-repeat left 3.5vw / 6px auto;
	border:0;
	color:#000;
	text-align:left!important;
	display:block;
}

footer .box_link ul li:nth-of-type(1) a{
	border:0;
}



footer .box_link .block {
	height:auto;
	margin-bottom:0;
	border-bottom:0;
}

footer .block__title::after {
	display: none;
}

footer .block__content {
	padding:0;
}

.block__content:before {
	display:none;
}

footer .block__content ul:before {
	display:none;
}





footer .box_link ul li{
	margin:0 0 2vw 0;
}

footer .box_link ul li:nth-of-type(1){
	margin:0 0 2vw 0;
}

footer .box_about{
	padding:8vw 3% 6vw 3%;
}

footer .box_about p{
	margin-bottom:4vw;
	font-size:3.4vw;
}

footer #footer_menu{
	margin-bottom:4vw;
}

footer #footer_menu li {
  display: block;
  margin-right: 0;
  font-size: 100%;
  margin-top: 0;
}

footer #footer_menu li:first-child{
  padding-left: 0;
}

footer #footer_menu li::after {
	display:none;
}

footer #footer_menu li:first-child::before{
	display:none;
}

footer #footer_menu li a{
	padding:1vw 0;
	color:#FFF;
	display:block;
}


/*page top
--------------------------------------------*/
#page-top a{
	padding:3vw 2vw;
}
#page-top a img{
	width:6vw;
}

}