@charset "utf-8";

/*-------------------------------------------------------------------
　common
-------------------------------------------------------------------*/
#wrapper{
	width:100%;
	margin:100px 0 0 0;
	overflow: hidden;
	border:0px solid #000;
}

#wrapper img{
	width:100%;
	height:auto;
	backface-visibility:hidden;
}

#wrapper a:hover img{
	opacity:0.8;
}

.contents{
	width: 1200px;
	margin: 0 auto 100px auto;
	border:0px solid #000;
}

#rec_btn{
	position:fixed;
	z-index: 99;/*ボタンを最前面に*/
	bottom:20px;
	right: 20px;
	cursor: pointer;
	width: 100px;
	height:100px;
}

#rec_btn img {
    width: 100px;
		height: 100px;
    transition: 1.0s;
    transform: rotateY(0deg );
}

#wrapper a:hover img{
	opacity:1;
}

#rec_btn:hover img {
	transform: rotateY( 360deg );
	opacity:1;
}

/* ---- pc 1200px ---------- */
@media only screen and (max-width:1200px){
.contents{width: 90%;}
}

/* ---- sp 767 ------------- */
@media only screen and (max-width:767px){
#wrapper{margin:70px 0 0 0;}
.contents{margin:0 auto 70px auto;}

#rec_btn{
	bottom:35px;
	right: 20px;
	width: 80px;
	height:80px;
}

#rec_btn img {
    width: 100%;
		height: auto;
}
}

/* ---- sp 480 ------------- */
@media only screen and (max-width:480px){
#wrapper{margin:50px 0 0 0;}
.contents{width: 85%;margin:0 auto 60px auto;}

#rec_btn{
	width: 70px;
	height:70px;
	bottom:40px;
}
}

/*-------------------------------------------------------------------
　MAIN TITLE
-------------------------------------------------------------------*/
.mainTitle_en{
	font-family: 'Niconne', cursive;
	font-size: 40px;
	color: #054270;
	text-align: left;
	display: flex;
	align-items: center;
	margin-bottom: -10px;
}

.mainTitle_en::after{
  content:"";
	width: 100px;
	/*flex-grow: 0.2;*/
	height: 1px;
	background: #054270;
	display: block;
	margin-left: 0.5em;
}

.mainTitle{
	font-size: 30px;
	font-weight: bold;
	color: #054270;
	line-height: 1.5em;
	margin-bottom: 20px;
}

/* ---- pc 1200px ---------- */
@media only screen and (max-width:1200px){
.mainTitle_en{font-size: 36px;}
.mainTitle{font-size: 26px;}
}

/* ---- sp 767 ------------- */
@media only screen and (max-width:767px){
}

/* ---- sp 480 ------------- */
@media only screen and (max-width:480px){
.mainTitle_en{font-size: 30px;margin-bottom: 0px;}
.mainTitle{font-size: 20px;}
}


/*-------------------------------------------------------------------
　about us
-------------------------------------------------------------------*/
#about{
	width: 80%;
	display: flex;
	justify-content: space-between;
	background: #FFF;
	margin: 0 auto 100px;
	padding: 70px;
	border-radius: 20px;
}

#about_ph{width: 40%;}
#about_ph img{border-radius: 20px;}

#about_det{width: 55%;}

/* ---- pc 1500px ---------- */
@media only screen and (max-width:1500px){
#about{width: 90%;}
}

/* ---- pc 1300px ---------- */
@media only screen and (max-width:1300px){
#about{
	width: 90%;
	padding: 50px;
}
}

/* ---- pc 1200px ---------- */
@media only screen and (max-width:1200px){
#about{
	width: 90%;
	padding: 40px;
}
}

/* ---- tablet ------------- */
@media only screen and (max-width:1024px){
#about{
	width: 90%;
	flex-direction: column;
	padding: 40px;
}

#about_ph{width: 100%;margin-bottom: 20px;}
#about_det{width: 100%;}
}

/* ---- sp 767 ------------- */
@media only screen and (max-width:767px){
#about{
	width: 90%;
	margin: 0 auto 70px;
}
}

/* ---- sp 480 ------------- */
@media only screen and (max-width:480px){
#about{
	width: 85%;
	padding: 25px;
	margin: 0 auto 50px;
}

#about_ph{
	width: 100%;
	margin-bottom: 10px;
}
}


/*-------------------------------------------------------------------
　service
-------------------------------------------------------------------*/
.serviceWrap{
	width: 100%;
	margin: 0px 0 100px 0;
}

.serBg{
	background: url("../images/service_bg.jpg") no-repeat 0 0;
}

.serviceWrap.bg_detail{
	-webkit-background-size: 100% auto;
	-o-background-size: 100% auto;
	background-size: 100% auto;
}

.serviceWrap.bg_detail:before {
  content:"";
  display: block;
  padding-top:25%;
}

.serviceWrap.bg_detail #serviceArea{
	width:80%;
	margin: 0 auto;
	background-color:#FFF;
	padding:40px 70px;
	border-radius: 20px;
}

#service_list{
	width: 100%;
	display: flex;
	flex-wrap: wrap;
}

.serviceBox{
	width: 31%;
	margin: 0 3.5% 3.5% 0;
	box-sizing: border-box;
}

.serviceBox:nth-child(3n){
	margin-right: -3.5%;
}

.serPh{
	width: 100%;
	position: relative;
}

.serPh img{
	width: 100%;
	height:auto;
	border:6px solid #054270;
	border-radius: 20px;	
	box-sizing: border-box;
}

.serPh a:hover{
	opacity:0.8 !important;
}

.ser_caption{
	width: 80%;
	position: absolute;
	bottom:-8%;
	left:10%;
	font-size: 25px;
	font-weight: bold;
	text-align:center;
	color: #054270;
	background: rgba(255, 224, 77, 1);
	padding: 5px 5px 5px;
	box-sizing:border-box;
	border-radius: 15px;
}

.serTx{
	margin-top: 35px;
}

/* ---- pc 1500px ---------- */
@media only screen and (max-width:1500px){
.serviceWrap.bg_detail #serviceArea{width:90%;}
}

/* ---- pc 1300px ---------- */
@media only screen and (max-width:1300px){
.serviceWrap.bg_detail #serviceArea{
	width:90%;
	padding:40px 50px;
}
}

/* ---- pc 1200px ---------- */
@media only screen and (max-width:1200px){
.serviceWrap.bg_detail #serviceArea{
	width:90%;
	padding:40px 40px;
}

.ser_caption{
	font-size: 22px;
}
}

/* ---- tablet ------------- */
@media only screen and (max-width:1024px){
.serviceBox{
	width: 47%;
	margin: 0 6% 3.5% 0;
	box-sizing: border-box;
}

.serviceBox:nth-child(3n){margin-right: 6%;}
.serviceBox:nth-child(2n){margin-right: -6%;}
}

/* ---- sp 767 ------------- */
@media only screen and (max-width:767px){
.serviceWrap{
	width: 100%;
	margin: 0px 0 70px 0;
}

.serBg{
	background: url("../images/service_bg767.jpg") no-repeat 0 0;
}

#service_list{
	width: 100%;
	flex-direction: column;
}

.serviceBox{
	width: 100%;
	margin: 0 0 40px 0;
}

.serviceBox:last-child{margin-bottom: 0;}

.ser_caption{
	width: 80%;
	bottom:-20px;
	left:10%;
	font-size: 22px;
}
}

/* ---- sp 480 ------------- */
@media only screen and (max-width:480px){
.serviceWrap{
	width: 100%;
	margin: 0px 0 50px 0;
}

.serviceWrap.bg_detail #serviceArea{
	width:85%;
	padding:25px 25px;
}

.ser_caption{
	font-size: 20px;
}
}


/*-------------------------------------------------------------------
　recruit
-------------------------------------------------------------------*/
#recruit{
	width: 90%;
	margin: 0 0 150px 10%;
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-direction: row-reverse;
}

#recPh{width: 55%;}
#recDet{width: 40%;}

#detBtn{
	width: 300px;
}

#detBtn a{
	width: 100%;
	display: block;
	color: #FFF;
	padding: 10px;
	margin-top: 40px;
	text-align: center;
	background: #054270;
	border-radius: 10px;
}

#detBtn a:hover{
	text-decoration: none;
	opacity: 0.8;
}

/* ---- pc 1500px ---------- */
@media only screen and (max-width:1500px){
#recruit{
	width: 95%;
	margin: 0 0 150px 5%;
}
}

/* ---- tablet ------------- */
@media only screen and (max-width:1024px){
#recruit{
	width: 90%;
	margin: 0 auto 150px auto;
	flex-direction: column;
}

#recPh{
	width: 100%;
	margin-bottom: 20px;
}

#recPh img{border-radius: 20px;}
#recDet{width: 100%;}

#detBtn{
	width: 300px;
	margin: 40px auto 0 auto;
}
}

/* ---- sp 767 ------------- */
@media only screen and (max-width:767px){
#recruit{
	width: 90%;
	margin: 0 auto 120px auto;
}
}

/* ---- sp 480 ------------- */
@media only screen and (max-width:480px){
#recruit{
	width: 85%;
	margin: 0 auto 100px auto;
}

#detBtn{
	width: 80%;
	margin: 40px auto 0 auto;
}
}


