
/* --------------------------------------------------
	link
-------------------------------------------------- */
a,
a:hover {
  cursor:pointer;
  color: inherit;
  transition-property: opacity;
  transition-duration: 0.5s;
  transition: 0.2s all;
}

a:hover {
  opacity: 0.7; 
}

@media (min-width: 520px) {
  a[href^="tel:"] {
      pointer-events: none;
      cursor: default;
  }
}

@media only screen and (max-width: 520px) {
  a:hover {
    opacity: 1.0; 
  }
}

/* --------------------------------------------------
	ttl
-------------------------------------------------- */
.ttl { text-align: center;}
.ttl:after { content: ''; display: block; width: 60px; height: 3px; background: #209fd8; margin: 0 auto;}
.ttl h2 { margin-bottom: 15px; font-size: 30px; letter-spacing: 0.1rem; line-height: 1;}
.ttl p { margin-bottom: 15px; color: #b4b4b4; font-size: 20px; font-weight: 700;}
@media only screen and (max-width: 520px) {
	.ttl:after { width: 40px; height: 2px;}
	.ttl h2 { margin-bottom: 6px; font-size: 21px; letter-spacing: 0.05rem;}
	.ttl p { margin-bottom: 4px; font-size: 14px;}
}


/* --------------------------------------------------
	font
-------------------------------------------------- */
.noto {
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-style: normal;
}

.sourcehan {
	font-family: "source-han-sans-japanese", sans-serif;
	font-weight: 400;
	font-style: normal;
}

.sourcehan.bold {
	font-family: "source-han-sans-japanese", sans-serif;
	font-weight: 700;
	font-style: normal;
}

/* --------------------------------------------------
	common
-------------------------------------------------- */
body.home {
	word-break:break-all
}

body.home .inner-sct .ttl,
#cta .inner-sct .ttl {
	margin: 0 auto 40px
}

body.home .inner-sct .ttl:after,
#cta .inner-sct .ttl:after {
	display: none
}

body.home .inner-sct .ttl h2 span.en ,
#cta .inner-sct .ttl h2 span.en {
	display:block;
	font-size: 60px;
	font-weight: bold;
	letter-spacing: -0.01em;
	color: #299DD7;
	line-height:1
}

body.home .inner-sct .ttl h2 span.ja,
#cta .inner-sct .ttl h2 span.ja {
	display:block;
	font-size: 22px;
	font-weight: 500;
	letter-spacing: -0.01em;
	margin: 15px auto;
	line-height: 1
}

body.home section .ctn-flex {
	width: 100%;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	margin: 0 auto;
}

@media only screen and (max-width:881px) {
	body.home .inner-sct .ttl h2 span.en,
	#cta .inner-sct .ttl h2 span.en {
		font-size:calc(60px / 1.6);
	}

	body.home .inner-sct .ttl h2 span.ja,
	#cta .inner-sct .ttl h2 span.ja {
		font-size:calc(22px / 1.22);
	}
}


/*more*/
body.home .more {
	position: relative;
	text-align: center;
	margin:50px auto auto
}

body.home .more p {
	font-size: 16px;
}

body.home .more p a {
	text-decoration: none;
	border: 1px solid #299DD7;
	padding:18px 54px;
	background: #fff
}

body.home .more p a span {
	display: inline-block;
	vertical-align: middle;
}

body.home .more p a:hover span {
	text-decoration: none;
}

@media only screen and (max-width:881px) {
	body.home .more {
		margin:calc(50px / 1.25) auto auto
	}

	body.home .more p {
		font-size: calc(16px / 1.16);
	}

	body.home .more p a {
		box-sizing: border-box;
		padding:calc(18px / 1) 36px;
	}

}

@media only screen and (max-width:520px) {
	body.home .more {
		margin:calc(50px / 1.25) auto auto
	}

	body.home .more p {
		font-size: calc(16px / 1.16);
	}

	body.home .more p a {
		width: 100%;
		box-sizing: border-box;
		padding:calc(18px / 1) 18px;
	}

	body.home .more p a span {
		width: 75%!important;
		box-sizing: border-box!important;
	}
}


/* --------------------------------------------------
	header
-------------------------------------------------- */
#hd .inner-hd {
	box-shadow:none
}

#hd .nav ul li {
	width: 12%;
	max-width: auto
}

.icon_blank {
	width: calc(25px/ 2);
	height: calc(25px /2);
	display: inline-block;
	vertical-align: middle;
	margin:-2px 0 0 5px
}

#hd .nav ul li.type-7:hover 	{border-bottom:4px solid #89CE56;}
#hd .nav ul li.type-8:hover 	{border-bottom:4px solid #29A1D4;}
#hd .nav ul li.type-9:hover 	{border-bottom:4px solid #FCBA5F;}
#hd .nav ul li.type-10:hover 	{border-bottom:4px solid #29A1D4;}

@media only screen and (max-width:881px) {
	#hd .inner-hd {
		box-shadow:none
	}

	#hd .nav ul li {
		width: auto;
		padding: 0 1.5%;
		max-width: auto;
		font-size:15px
	}

	#hd .nav ul li ul li:before,
	#hd .nav ul li > a:before,
	#hd .nav ul li span:before,
	#hd .nav ul li.on span:before {
		content: ''; 
		display: block; 
		width: 1px; 
		height: 10px; 
		background: #000; 
		position: absolute; 
		right: -10px; 
		top: 50%; 
		transform: translateY(-50%);
	}

	#hd .nav ul li ul li  {
		font-size:15px
	}

	.icon_blank {
		width: calc(25px/ 2);
		height: calc(25px /2);
		display: inline-block;
		vertical-align: middle;
		margin:-2px 0 0 5px
	}	
}

/* --------------------------------------------------
   index
-------------------------------------------------- */
#index-kv figure {
	box-shadow: none;
}

#index-kv .slider .slide {
	margin-bottom: -10px;
}

@media (max-width: 801px) {
	#index-kv .slider .slide { padding: 20px 0;}
}

/* --------------------------------------------------
   topics
-------------------------------------------------- */
#topics .inner-sct {
	padding: 15px 0px 90px
}

#topics .box figure {
	margin: 0 0 15px;
	border-radius: 0
}

#topics .box a  {
	text-decoration: none;
}

#topics .box .tit {
	margin-bottom: 10px
}

#topics .box .tit:after {
	display:none
}

@media only screen and (max-width:881px) {
	#topics .ctn-flex { display: block; margin: 0 auto;}
	#topics .box { width: 80%; max-width: 500px; margin: 0 auto 30px;}
	#topics .box:last-child { margin: 0 auto;}
	#topics .box .tit { margin-bottom: 15px;}
	#topics .box .tit h2 { margin-bottom: 8px;}
	#topics .box .tit h2 span.eng { font-size: 16px;}
}
@media only screen and (max-width:520px) {
	#topics .inner-sct { padding: 20px 0px 40px;}
	#topics .box { width: 100%; max-width: 500px; margin: 0 auto 30px;}
	#topics .box .tit:after { width: 30px; height: 2px;}
	#topics .box .tit h2 { margin-bottom: 8px; font-size: 18px;}
	#topics .box .tit h2 span.eng { padding-left: 12px; font-size: 12px;}
}


/* --------------------------------------------------
   about
-------------------------------------------------- */
#about {
	background-color: #EAF2F8
}

#about .inner-sct {
	width: 92%;
	max-width: 1200px;
	margin: 0 auto;
	padding: 70px 0 40px
}

#about .read {
	margin: 0 auto 40px
}

#about .read p {
	font-size: 20px;
	line-height: 2;
	text-align: center
}

#about .read p span {
	display: block;
}

@media only screen and (max-width:881px) {
	#about .inner-sct {
		padding: 40px 0px 20px
	}

	#about .read p {
		font-size: calc(20px / 1.18);
	}
}

@media only screen and (max-width:520px) {
	#about .read {
		margin: 0 auto 20px
	}

	#about .read p {
		font-size: calc(18px / 1.18);
		text-align: left;
	}
}


/* --------------------------------------------------
   services
-------------------------------------------------- */
#services .inner-sct {
	width: 92%;
	max-width: 1080px;
	margin: 0 auto;
	padding: 70px 0px 20px
}

#services .ctn-flex {
	padding-top: 50px;
}

#services .box {
	flex-basis: 48%;
	margin-bottom: 65px
}

#services .box a  {
	text-decoration: none;
}

#services .box figure {
	width: 100%;
	margin: 0 0 5px;
	border-radius: 0
}

#services .box figure img {
	width: 100%
}

#services .box .tit {
	margin-bottom: 15px
}

#services .box .tit h2 {
	font-size: 28px;
}

#services .box .tit h2 span {
	display: inline-block;
	vertical-align: top;
}

#services .box .tit h2 span.icon {
	padding-left: 15px;
	line-height: 1.23456789
}

#services .box .tit h2 span.logo {
	padding-left: 10px;
	line-height: 1.4556789
}

#services .box .tit h2 span.icon img {
	width: calc(44px / 2)
}

#services .box .tit h2 span.logo img {
	width: calc(404px / 2)
}

@media only screen and (max-width:881px) {
	#services .inner-sct { padding: 40px 0px ;}
	#services .ctn-flex { margin: -50px auto auto;}
	#services .box { width: 80%; max-width: 500px; margin: 0 auto 30px;}
	#services .box:last-child { margin: 0 ;}
	#services .box .tit { margin-bottom: 15px;}
	#services .box .tit h2 { margin-bottom: 8px;font-size: calc(28px / 1.28)}
	#services .box .tit h2 span.eng { font-size: 16px;}
	#services .box .txt { font-size:calc(18px / 1.18);}
}

@media only screen and (max-width:520px) {
	#services .inner-sct { padding: 40px 0px ;}
	#services .ctn-flex { display: block; margin: -50px auto auto;}
	#services .box { width: 100%; max-width: 500px; margin: 0 auto 30px;}
	#services .box .tit:after { width: 30px; height: 2px;}
	#services .box .tit h2 { margin-bottom:-10px; font-size: 18px;}
	#services .box .tit h2 span.eng { padding-left: 12px; font-size: 12px;}

	#services .box figure {
		margin: 0 0 10px;
	}

	#services .box .tit h2 span.icon img {
		width: calc(44px / 3)
	}

	#services .box .tit h2 span.logo img {
		width: calc(404px / 3)
	}

}

/* --------------------------------------------------
   column
-------------------------------------------------- */
#column {
	background-color: #EAF2F8
}

#column .inner-sct {
	width: 92%;
	max-width: 1080px;
	margin: 0 auto;
	padding: 60px 0px 
}

#column .ctn-flex {
	padding-top: 10px;
}

#column .box {
	flex-basis: 30%
}

#column .box a {
	text-decoration: none;
}

#column .box figure {
	width: 100%;
	margin: 0 0 15px;
	border-radius: 0
}

#column .box figure img {
	width: 100%;;/*
	border-radius: 18px*/
	object-fit: cover;
	object-position: top center;
	height: 210px;
}

#column .box p.date {
	font-size: 16px;
	margin-bottom:5px;
}

#column .box p.txt {
	font-size: 16px
}

#column .box span.tag	{
	display: inline-block;
	width: 120px;
	font-size: 12px;
	margin-top: 9px;
	padding:2.25px ;
	border-radius: 100px;
	margin-right:5px;
	letter-spacing: -0.01em;
	line-height: 2;
	color: #fff!important;
	font-weight:500;
	text-align: center;
	position: relative;
	top: -2px!important;
}

#column .box span.tag a	{
	color: #fff!important;
}


@media only screen and (max-width:881px) {
	#column .inner-sct { padding: 40px 0px 60px;}
	#column .ctn-flex { margin: -15px auto -30px;}
	#column .box { width: 80%; max-width: 500px; margin: 0 auto 30px;}
	#column .box:last-child { margin: 0 auto;}
	#column .box .tit { margin-bottom: 15px;}
	#column .box .tit h2 { margin-bottom: 8px;}
	#column .box .tit h2 span.eng { font-size: 16px;}
	#column .box .txt { font-size:calc(18px / 1.18);}
}
@media only screen and (max-width:520px) {
	#column .inner-sct { padding: 40px 0px 60px;}
	#column .ctn-flex { display: block;width: 100%;margin-bottom: 40px}
	#column .box { width: 100%; margin: -10px auto 30px;}
	#column .box .tit:after { width: 30px; height: 2px;}
	#column .box .tit h2 { margin-bottom: 8px; font-size: 18px;}
	#column .box .tit h2 span.eng { padding-left: 12px; font-size: 12px;}

	#column .box figure {
		margin: 0 0 10px;
	}
}


/* --------------------------------------------------
   news
-------------------------------------------------- */
#news .inner-sct {
	width: 92%;
	max-width: 1280px;
	margin: 0 auto;
	padding: 70px 0px 90px
}

#news .newsList  {
	border-bottom: solid 1px #E2E2E2;
	margin-bottom: 50px;
}

#news .newsList dl {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-start;
	align-items: top;
	position: relative;
	font-size: 18px;
	line-height: 1.4;
	padding:25px 0;
	letter-spacing: 0.1rem;
	border-top: solid 1px #E2E2E2
}

#news .newsList dt {
	flex-basis: 10%;
	font-size: 16px;
	line-height: 2;
}

#news .newsList dd {
	flex-basis: 90%;
	line-height: 2;
	text-align: left
}

#news .newsList dd span.tag 	{
	display: inline-block;
	width: 120px;
	font-size: 12px;
	padding:2.25px ;
	border-radius: 100px;
	margin-right:5px;
	letter-spacing: -0.01em;
	line-height: 2;
	color: #fff!important;
	font-weight:500;
	text-align: center;
	position: relative;
	top: -2px!important;
}

/*
	#news .newsList dd span.tag.jimu { background: #DC245B;}
	#news .newsList dd span.tag.saiyou { background:#009FB5;}
	#news .newsList dd span.tag.office { background: #214E75;}
	#news .newsList dd span.tag.parttime { background: #FFAE89;}
	#news .newsList dd span.tag.sougou { background: #3D3F58;}
	#news .newsList dd span.tag.kurashi { background: #89CE56;}
	#news .newsList dd span.tag.etc { background: #969696;}
*/

#news .newsList dd a {
	display: inline;
	text-decoration: none;
}

#news .newsList a:hover  {
	text-decoration: underline
}

@media only screen and (max-width:881px) {
	#news .inner-sct {
		margin: 0 auto;
		padding: 40px 0px 60px
	}

	#news .newsList  {
		margin-bottom: 40px;
	}

	#news .newsList dl {
		font-size: calc(18px / 1.18);
		padding:20px 0;
	}

	#news .newsList dt {
		flex-basis: 15%;
		font-size: calc(18px / 1.18);
	}

	#news .newsList dd {
		flex-basis: 85%;
		font-size: calc(18px / 1.18);
	}

	#news .newsList dd span.tag 	{
		font-size: calc(12px / 1.15);
	}

}


@media only screen and (max-width:520px) {
	#news .inner-sct {
		margin: 0 auto;
		padding: 40px 0px  60px
	}

	#news .newsList  {
		margin-bottom: 40px;
	}

	#news .newsList dl {
		font-size: calc(18px / 1.18);
		padding:20px 0;
	}

	#news .newsList dt {
		flex-basis: 100%;
		font-size: calc(18px / 1.16);
	}

	#news .newsList dd {
		flex-basis: 100%;
	}

}

/* --------------------------------------------------
   cta
-------------------------------------------------- */
#cta {
	position: relative;
	background-image: url(/img/cta.jpg);
	background-position: top center;
	background-repeat: no-repeat;
	background-size: cover;
}

#cta .inner-sct {
	width: 92%;
	max-width: 1080px;
	margin: 0 auto;
	padding: 50px 0px 
}

#cta .ctn-flex  {
	display: flex; 
	flex-direction: wrap; 
	margin-left: auto;
	margin-right: auto;
	justify-content: space-between;
	max-width: 835px;
}

#cta .ctn-flex .box {
	flex-basis: 48%;
	background-color: #fff;
	border-radius: 9px;
	border: 1px solid #E2E2E2;
}

#cta .ctn-flex .box a {
	display: block;
	text-decoration: none;
	border-radius: 9px;
	height: 110px;
}

	#cta .ctn-flex .box.tel a {
		padding:9px 30px;
	}

	#cta .ctn-flex .box.mail a {
		padding: 36px 54px;
	}

#cta .ctn-flex .box img {
	display: inline-block;
	vertical-align: middle;
}

#cta .ctn-flex .box div.txt {
	display: inline-block;
	vertical-align: middle;
}

	#cta .ctn-flex .box.tel img {
		width: 65px;
		margin-top: 9px;
	}

	#cta .ctn-flex .box.tel div.txt {
		width: calc(100% - 65px);
		margin-left: -10px;
	}

	#cta .ctn-flex .box.mail img {
		width: 28px;
	}

	#cta .ctn-flex .box.mail div.txt {
		width: calc(100% - 40px);
	}

#cta .ctn-flex .box.tel span.en {
	display: block;
	font-weight: 900;
	font-size: 37px;
	text-align: center;
	letter-spacing: -0.01em;
	line-height: 1.6789;
}

#cta .ctn-flex .box.tel span.ja {
	display: block;
	font-size: 18px;
	text-align: center;
	line-height: 1;
}

#cta .ctn-flex .box.mail span.ja {
	display: block;
	font-weight: bold;
	font-size:24px;
	text-align: left;
	margin-left: 9px;
}

@media only screen and (max-width:881px) {
	#cta .inner-sct {
		width: 92%;
		max-width: 100%;
		padding: 40px 0px 
	}

	#cta .ctn-flex  {
		max-width: 100%;
		margin-top: -15px;
	}

	#cta .ctn-flex .box {
		margin: 5px auto;
	}

	#cta .ctn-flex .box a {
		height: auto;
		min-height: 72px;
	}

		#cta .ctn-flex .box.tel a {
			padding:10px 30px 15px;
		}

		#cta .ctn-flex .box.mail a {
			padding:30px;
		}

		#cta .ctn-flex .box.tel img {
			width: 40px;
			margin-top: 9px;
		}

		#cta .ctn-flex .box.tel div.txt {
			width: calc(100% - 50px);
			margin-left: 0px;
		}

		#cta .ctn-flex .box.mail img {
			width: 28px;
		}

		#cta .ctn-flex .box.mail div.txt {
			width: calc(100% - 50px);
			text-indent: 20px;
		}

	#cta .ctn-flex .box.tel span.en {
		font-size: calc(37px / 1.15);
	}

	#cta .ctn-flex .box.tel span.ja {
		font-size: calc(18px / 1.09);
	}

	#cta .ctn-flex .box.mail span.ja {
		font-size: calc(24px / 1.12);
	}

}

@media only screen and (max-width:520px) {
	#cta .inner-sct {
		width: 92%;
		max-width: 100%;
		padding: 40px 0px 
	}

	#cta .ttl {
		margin-bottom:20px;
	}

	#cta .ctn-flex  {
		display: block;
		max-width: 100%;
		margin-top: -15px;
	}

	#cta .ctn-flex .box {
		flex-basis: 100%;
		margin: 5px auto;
	}

	#cta .ctn-flex .box a {
		height: auto;
		min-height: 72px;
	}

		#cta .ctn-flex .box.tel a {
			padding:7.5px 30px 15px;
		}

		#cta .ctn-flex .box.mail a {
			padding:20px 30px;
		}

		#cta .ctn-flex .box.tel img {
			width: 40px;
			margin-top: 9px;
		}

		#cta .ctn-flex .box.tel div.txt {
			width: calc(100% - 50px);
			margin-left: -10px;
		}

		#cta .ctn-flex .box.mail img {
			width: 28px;
		}

		#cta .ctn-flex .box.mail div.txt {
			width: calc(100% - 50px);
			text-indent: 20px;
		}

	#cta .ctn-flex .box.tel span.en {
		font-size: calc(37px / 1.37);
	}

	#cta .ctn-flex .box.tel span.ja {
		font-size: calc(18px / 1.18);
	}

	#cta .ctn-flex .box.mail span.ja {
		font-size: calc(24px / 1.24);
	}

}


/* --------------------------------------------------
   ft
-------------------------------------------------- */
.pagetop {
	right: 4%;
	left: auto;
}

#ft .ctn-flex .box.blank div {
	padding-top: 0;
	border-top: none
}

.ft-sns {
	padding: 10px 0 30px;
	text-align: center;
	margin: auto;
}

.ft-sns ul li {
	display: inline-block;
	vertical-align: middle;
	margin: 0 7.5px;
}

.ft-sns ul li img {
	width:calc(97px /2) ;
}


@media only screen and (max-width: 520px) {
	.copyright,
	.copyright p {
		text-align: center!important;
		margin: auto!important;
		padding-bottom: 120px;
	}

	.bn_rpo {
		text-align: center;
		margin: auto;
	}

	.bn_rpo img {
		text-align: center;
		margin:20px auto;
	}
}
