@charset "utf-8";
body {
	font-size: 20px;
	font-family: "ヒラギノ明朝 ProN W3", "ヒラギノ明朝 ProN W6", "游明朝 Light", "游明朝 Demibold";
	color: #202020;
	position: relative;
}

ul {
	list-style: none;
}

a {
	text-decoration: none;
	color: #202020;
}
img {
	max-width: 100%;
	vertical-align: bottom;
}
.blue {
	color: #518FD5;
}
.yellow {
	color: #F5F071;
}
.en {
	font-family: "Stencil";
	font-size: 70px;
	font-weight: 700;
	letter-spacing: 22px;
	color: #518FD5;
}
.ja {
	font-size: 50px;
	font-weight: 800;
}
.container {
	width: 90%;
	margin: 0 auto;
}
.flex {
	display: flex;
	justify-content: space-between;
}
.flex-2 {
	width: 48%;
}
.subpage {
	position: relative;
}
.page-ttl {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-size: 50px;
    font-weight: 800;
    text-shadow: 0 6px 6px #ffffff;
    width: 100%;
    text-align: center;
    padding: 50px 0;
    background: rgba(255,255,255,0.60);
}

/*==================================================
ヘッダー
===================================*/
#header {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	z-index: 90;
	background: rgba(81,143,213,0.50);
	padding: 10px 0;
}
.header-wrap {
	width: 95%;
	margin: 0 auto;
	display: flex;
	align-items: center;
}
.header-left {
	width: 20%;
	margin-right: auto;
}
.header-right {
	width: 70%;
	margin-left: auto;
}
.g-menu {
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.g-menu a {
	display: block;
	position: relative;
	font-weight: 600;
	font-size: 25px;
}
.g-menu a:hover::before {
	content: "";
	width: 20px;
	height: 3px;
	background: #F5F071;
	position: absolute;
	bottom: -3px;
	right: 50%;
	transform: translateX(50%);
}
.header-top {
    width: 25%;
    margin-left: auto;
	max-width: 350px;
}
.header-top a {
	display: block;
	width: 100%;
	font-size: 25px;
	font-weight: 600;
	text-align: center;
	padding: 5px 0;
	border-radius: 30px;
	border: 1px solid #518FD5;
	background: #FFFFFF;
}
.header-top a:hover {
	background: #518FD5;
	color: #FFFFFF;
}



/*==================================================
メインビジュアル
===================================*/
#mv {
	position: relative;
}
.cp {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 100%;
	padding: 35px 0;
	z-index: 5;
}
.cp span {
	display: block;
	text-align: center;
	font-size: 50px;
	font-family: "ヒラギノ明朝 ProN W3", "ヒラギノ明朝 ProN W6", "游明朝 Light", "游明朝 Demibold";
	font-weight: 700;
	text-shadow: 0 6px 6px #fff;
}


/*==================================================
ご挨拶
===================================*/
#greeting {
	position: relative;
	margin-top: 100px;
	padding-bottom: 90px;
	z-index: 1;
}
#greeting::after {
	content: "";
	width: 100%;
	height: 60%;
	background-image: url("img/top/greeting_bg.jpg");
	background-size: 100%;
	background-repeat: no-repeat;
	position: absolute;
	bottom: 0;
	z-index: -1;
}
h2.index-ttl {
    font-size: 40px;
    font-weight: 700;
    margin-bottom: 40px;
}
.txt p {
	margin-bottom: 10px;
}
.txt {
	margin-bottom: 40px;
}
.greeting-img {
	position: relative;
}


/*==================================================
特徴
===================================*/
#feature {
	margin-top: 100px;
}
.bg-gray {
	background: #F3F3F3;
}
.center {
	text-align: center;
}
.feature-wrap {
	padding: 50px 0;
}
.fea-flex {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 90%;
    margin-left: auto;
	margin-bottom: 120px;
}
.fea02 {
	flex-direction: row-reverse;
	margin-right: auto;
	margin-left: 0;
}
.fea-item {
	width: 40%;
}
.top-ttl {
	font-size: 30px;
	font-weight: 600;
	margin-bottom: 15px;
	border-bottom: 3px solid #F5F071;
	max-width: 550px;
}
.top-ttl .blue {
	font-size: 50px;
	font-weight: 700;
}
.fea-img {
	position: relative;
	z-index: 1;
	width: 55%;
}
.fea-img::before {
	content: "";
	width: 100%;
	height: 100%;
	background: #F5F071;
	position: absolute;
	top: 20px;
	left: -20px;
	z-index: -1;
}
.fea02 .fea-img::before {
	content: "";
	left: 20px;
}


/*==================================================
ページリンク
===================================*/
#page-link {
	margin: 140px auto;
}
.flex-3 {
	width: 30%;
}
.link-btn {
	display: block;
	position: relative;
}
.link-txt {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	background: rgba(255,255,255,0.60);
	font-size: 30px;
	font-weight: 600;
	width: 100%;
	padding: 35px 0;
}
.link-btn img {
	width: 100%;
}
.link-txt::before {
	content: "";
	width: 50px;
	height: 3px;
	background: #F5F071;
	position: absolute;
	bottom: 30px;
	right: 50%;
	transform: translateX(50%);
}
.link-btn:hover {
	opacity: 0.7;
}


/*==================================================
対応エリア
===================================*/
#area {
	background-image: url("img/top/area_bg.jpg");
	background-repeat: no-repeat;
	background-size: cover;
	padding: 80px 0;
}
#area .container {
	width: 70%;
}
#area img {
	display: block;
	margin-left: auto;
}

/*==================================================
採用情報
===================================*/
#top-recruit {
	margin-top: 80px;
	margin-bottom: 90px;
}
.recruit-wrap {
	position: relative;
	z-index: 1;
	padding-top: 80px;
	padding-bottom: 50px;
}
.recruit-wrap::before {
	content: "";
	width: 35%;
	height: 65%;
	background: rgba(81,143,213,0.70);
	position: absolute;
	top:0;
	left: 0;
	z-index: -2;
}
.recruit-wrap::after {
	content: "";
	width: 75%;
	height: 90%;
	background: #F3F3F3;
	position: absolute;
	bottom: 0;
	right: 0;
	z-index: -1;
}
.more {
	margin-top: 50px;
}
.more-btn {
	display: block;
	max-width: 320px;
	font-size: 25px;
	text-align: center;
	padding: 25px 0;
	background: #FFFFFF;
	position: relative;
	margin: 0 auto;
	font-weight: 600;
	z-index: 1;
}
.more-btn::before {
	content: "";
	width: 100%;
	height: 100%;
	background: #FFFFFF;
	border: 1px solid #518FD5;
	position: absolute;
	top: 0;
	left: 0;
	z-index: -1;
}
.more-btn::after {
	content: "";
	width: 100%;
	height: 100%;
	background: #F5F071;
	position: absolute;
	top: 7px;
	left: 7px;
	z-index: -2;
}
.more-btn:hover {
	opacity: 0.7;
}


/*==================================================
フッター
===================================*/
#page_top{
  width: 60px;
  height: 60px;
  position: fixed;
  right: 20px;
  bottom: 30px;
  background: #F5F071;
  border-radius: 50%;
	z-index: 999;
}
#page_top a{
  position: relative;
  display: block;
  width: 60px;
  height: 60px;
  text-decoration: none;
}
#page_top a::before{
  font-family: 'Font Awesome 5 Free';
  font-weight: 900;
  content: '\f106';
  font-size: 30px;
  color: #fff;
  position: absolute;
  width: 30px;
  height: 30px;
  top: -5px;
  bottom: 0;
  right: 0;
  left: 0;
  margin: auto;
  text-align: center;
}
#footer {
	background-image: url("img/footer_bg.jpg");
	background-repeat: no-repeat;
	background-size: cover;
	padding-top: 60px;
}
.adress {
	margin: 40px auto;
}
.footer-link {
	width: 80%;
}
.footer-btn {
	width: 49%;
	display: block;
	max-width: 300px;
	background: #FFFFFF;
	border-radius: 50px;
	border: 1px solid #518FD5;
	font-size: 25px;
	text-align: center;
	font-weight: 700;
	padding: 20px 0;
}
.footer-btn:hover {
	color: #FFFFFF;
	background: #518FD5;
}
.sitemap {
	margin: 60px auto 20px;
	width: 70%;
	font-weight: 600;
	font-size: 25px;
}
.sitemap a:hover {
	opacity: 0.7;
}
.copyright {
	text-align: center;
	padding: 10px 0;
	background: #518FD5;
	color: #FFFFFF;
	font-size: 16px;
}
	.sp-nav {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		position: fixed;
	}
	.nav_wrapper {
		position: fixed;
		width: 100%;
		display: flex;
		flex-wrap: wrap;
		bottom: 0;
	}
	.nav_wrapper div:first-child {
		border-left: 1px solid #F3F3F3;
	}
	.nav_wrapper div {
		width: 25%;
		display: flex;
		background: #518FD5;
		align-items: center;
		justify-content: center;
		border-right: 1px solid #F3F3F3;
		border-top: 1px solid #F3F3F3;
	}
	.nav_wrapper a {
		padding: 10px;
	}



/*==================================================
会社概要ページ
===================================*/
#company-info {
	margin: 80px auto 140px;
	padding: 80px 0;
	background: #F3F3F3;
	width: 95%;
}
.ttl {
	position: relative;
	padding: 60px 0 60px 20px;
	background: #FFFFFF;
	border: 1px solid #518FD5;
}
.ttl::before {
	content: "";
	width: 0;
	height: 0;
	border-right: 50px solid transparent;
	border-bottom: 50px solid #518FD5;
	position: absolute;
	bottom: 0;
	left: 0;
}
.ttl::after {
	content: "";
	width: 0;
	height: 0;
	border-left: 50px solid transparent;
	border-top: 50px solid #518FD5;
	position: absolute;
	top: 0;
	right: 0;
}
.content {
	padding-top: 80px;
}
.item {
	border-bottom: 1px solid #202020;
	display: flex;
	padding-bottom: 5px;
	width: 90%;
	margin: 0 auto 50px;
}
.item-ttl {
    width: 20%;
    text-align: center;
}

/*==================================================
事業内容ページ
===================================*/
#business {
	margin: 80px auto 140px;	
}
.biz-item {
	margin-top: 100px;
}
.biz-ttl {
	font-size: 40px;
	font-weight: 700;
	margin-bottom: 80px;
	position: relative;
	width: 50%;
}
.biz-ttl::before {
	content: "";
	width: 100%;
	height: 30px;
	background: #518FD5;
	position: absolute;
	bottom: -25px;
	left: 0;
}
.biz-ttl::after {
	content: "";
	width: 0;
	height: 0;
	border-left: 50px solid transparent;
	border-top: 50px solid #FFFFFF;
	position: absolute;
	bottom: -25px;
	right: 0;
}
.biz-content {
	width: 90%;
	margin: 0 auto;
}
.biz-content img {
	display: block;
	margin-left: auto;
}

/*==================================================
採用情報ページ
===================================*/
#recruit {
	margin: 80px auto 140px;
}
.sub-ttl {
	font-size: 40px;
	font-weight: 700;
	padding-bottom: 50px;
}
#recruit img {
	display: block;
	margin-left: auto;
}


/*==================================================
お問い合わせページ
===================================*/
#form {
	margin: 80px auto 140px;
	padding: 80px 0;
	background: #F3F3F3;
	width: 95%;
}
.contactform {
	width: 90%;
	margin: 0 auto;
	padding-top: 110px;
}
.warning {
	font-size: 18px;
	width: 65%;
	margin: 30px auto;
}
.contact-table {
	width: 100%;
	margin-bottom: 20px;
}
.contact-item,
.contact-body {
	padding: 20px;
	border-bottom: 1px solid #707070;
}

.contact-item {
  text-align: left; /* テキスト左寄せ */
  width: 30%; /* 横幅30%指定（グレーの背景色部分） */
}

.contact-body {
  width: 70%; /* 横幅70%指定（白背景色部分） */
}
.form-text {
  width: 100%;
  padding: 5px;
  border-radius: 5px;
  border: 1px solid #ccc;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
}
.form-textarea {
  width: 100%;
  padding: 10px;
  height: 200px;
  border-radius: 5px;
  border: 1px solid #ccc;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
}

.contact-submit {
  width: 250px; /* 横幅指定 */
  background-color: #FFFFFF; /* 背景色 */
  color: #518FD5; /* 文字色 */
  font-weight: bold; /* 文字の太さ */
  display: block; /* インライン要素をブロック要素に変更 */
  margin: 0 auto; /* 中央寄せ */
  font-size: 20px; /* 文字の大きさ */
  padding: 15px; /* 内側の余白 */
  border-radius: 100vh; /* 角丸指定 */
  border: 1px solid #518FD5;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  cursor: pointer;
}
.contact-submit:hover {
	background: #518FD5;
	color: #FFFFFF;
}
.contact-item span {
    background: #F5F071;
	color: #FF001A;
    padding: 3px 10px;
    margin-right: 5px;
    font-size: 15px;
    border-radius: 50px;
    position: relative;
    top: -2px;
}


/*==================================================
ふわっ
===================================*/

/* その場で */
.fadeIn{
animation-name:fadeInAnime;
animation-duration:1s;
animation-fill-mode:forwards;
opacity:0;
}

@keyframes fadeInAnime{
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

/* 下から */

.fadeUp{
animation-name:fadeUpAnime;
animation-duration:0.5s;
animation-fill-mode:forwards;
opacity:0;
}

@keyframes fadeUpAnime{
  from {
    opacity: 0;
  transform: translateY(100px);
  }

  to {
    opacity: 1;
  transform: translateY(0);
  }
}

/* 上から */

.fadeDown{
animation-name:fadeDownAnime;
animation-duration:0.5s;
animation-fill-mode:forwards;
opacity:0;
}

@keyframes fadeDownAnime{
  from {
    opacity: 0;
  transform: translateY(-100px);
  }

  to {
    opacity: 1;
  transform: translateY(0);
  }
}

/* 左から */

.fadeLeft{
animation-name:fadeLeftAnime;
animation-duration:0.5s;
animation-fill-mode:forwards;
opacity:0;
}

@keyframes fadeLeftAnime{
  from {
    opacity: 0;
  transform: translateX(-100px);
  }

  to {
    opacity: 1;
  transform: translateX(0);
  }
}

/* 右から */

.fadeRight{
animation-name:fadeRightAnime;
animation-duration:0.5s;
animation-fill-mode:forwards;
opacity:0;
}

@keyframes fadeRightAnime{
  from {
    opacity: 0;
  transform: translateX(100px);
  }

  to {
    opacity: 1;
  transform: translateX(0);
  }
}

/* スクロールをしたら出現する要素にはじめに透過0を指定　*/
 
.fadeInTrigger,
.fadeUpTrigger,
.fadeDownTrigger,
.fadeLeftTrigger,
.fadeRightTrigger{
    opacity: 0;
}



/*==================================================
レスポンシブ設定
===================================*/
	/* 480px以上は写さない */
@media (min-width: 480px) {
	.sp-only {
		display: none!important;
	}
}

	/* 960px以下に適用されるCSS（タブレット用） */
@media screen and (max-width: 960px) {
	body {
		font-size: 16px;
	}
	.header-left {
		width: 30%;
	}
	.header-top {
		width: 40%;
	}
	.header-top a {
		font-size: 20px;
	}
	.g-menu {
		width: 90%;
		margin-left: auto;
	}
	.g-menu a {
		font-size: 17px;
	}
	.cp span {
		font-size: 38px;
	}
	.en {
		letter-spacing: 5px;
		font-size: 60px;
	}
	h2.index-ttl {
		font-size: 32px;
	}
	.fea-img::before {
		top: 10px;
		left: -10px;
	}
	.fea02 .fea-img::before {
		left: 10px;
	}
	#page-link {
		margin: 80px auto;
	}
	.link-txt {
		font-size: 28px;
		padding: 20px 0;
	}
	.link-txt::before {
		bottom: 20px;
	}
	.more-btn {
		max-width: 250px;
		font-size: 20px;
		padding: 20px 0;
	}
	#footer .flex {
		flex-direction: column;
	}
	#footer .flex-2 {
		width: 100%;
		margin-bottom: 10px;
	}
	.footer-link, .sitemap {
		flex-direction: row!important;
	}
	.footer-link {
		margin: 0 auto;
	}
	.adress {
		text-align: center;
	}
	#footer img {
		display: block;
		margin: 0 auto;
	}
	.sitemap {
		font-size: 18px;
	}
	.ttl {
		padding: 30px 0 30px 20px;
	}
	.ja {
		font-size: 40px;
	}
	.biz-item {
		margin-top: 80px;
	}
	.biz-ttl {
		font-size: 32px;
		margin-bottom: 50px;
	}
	.biz-ttl::before {
		height: 20px;
		bottom: -20px;
	}
	.biz-content {
		width: 95%;
	}
	.sub-ttl {
		font-size: 30px;
	}
	.contactform {
		width: 100%;
		padding-top: 70px;
	}
	.contact-item {
		width: 35%;
	}
	.contact-body {
		width: 65%;
	}
	.warning {
		font-size: 15px;
		width: 80%;
	}
	
	
}




	/* 480px以下に適用されるCSS（スマホ用） */
@media screen and (max-width: 480px) {
	.pc-only {
		display: none!important;
	}
	#page_top {
		display: none!important;
	}
	.header-left {
		width: 55%;
	}
	.header-left img {
		vertical-align: middle;
	}
	.cp {
		top: 40%;
	}
	.cp span {
		font-size: 30px;
	}
	.flex {
		flex-direction: column;
	}
	.flex-2, .flex-3 {
		width: 100%;
		margin-bottom: 20px;
	}
	h2.index-ttl {
		font-size: 27px;
	}
	.en {
		font-size: 50px;
	}
	#greeting::after {
		height: 45%;
		background-size: cover;
	}
	.fea-flex {
		flex-direction: column-reverse;
	}
	.fea-item, .fea-img {
		width: 100%;
	}
	.top-ttl .blue {
		font-size: 40px;
	}
	.top-ttl {
		font-size: 27px;
	}
	#area {
		padding: 50px 0;
	}
	.recruit-wrap::before {
		width: 80%;
		height: 25%;
	}
	.recruit-wrap::after {
		width: 87%;
	}
	.recruit-wrap {
		padding-top: 40px;
		padding-bottom: 30px;
	}
	#footer {
		padding-bottom: 75px;
	}
	.footer-link {
		flex-direction: column!important;
	}
	.footer-btn {
		width: 100%;
		font-size: 20px;
		padding: 10px 0;
		margin-bottom: 20px;
	}
	.sitemap {
		display: none!important;
	}
	.page-ttl {
		top: 70%;
		font-size: 32px;
		padding: 10px 0;
	}
	.ja {
		font-size: 25px;
	}
	.ttl {
		padding: 20px 0 20px 10px;
		font-size: 16px;
	}
	.ttl::before {
		border-right: 30px solid transparent;
    	border-bottom: 30px solid #518FD5;
	}
	.ttl::after {
		border-left: 30px solid transparent;
		border-top: 30px solid #518FD5;
	}
	.item {
		flex-direction: column;
	}
	.item-ttl {
		width: 100%;
		margin-bottom: 5px;
		text-align: left;
	}
	.biz-ttl {
		font-size: 28px;
		width: 65%;
	}
	.biz-ttl::before {
		height: 15px;
		bottom: -15px;
	}
	.biz-ttl::after {
		right: -5px;
	}
	.sub-ttl {
		font-size: 17px;
		padding-bottom: 20px;
	}
	.contact-table tr {
		display: flex;
		flex-direction: column;
	}
	.contact-item {
		width: 100%;
		border-bottom: none;
		padding: 20px 20px 0;
	}
	.contact-body {
		width: 100%;
		padding: 10px 20px;
	}
	.warning {
		width: 100%;
	}
	
	
}













