@charset "utf-8";
@font-face {
  /*フォントの名前*/
  font-family: "Noto Serif CJK JP";
  /*フォントファイルへのパス（複数指定の場合、上から順に読み込まれる）*/
  src: url("../font/tsukushi.woff2") format("woff2"),
       url("../font/tsukushi.woff") format("woff");
}
@font-face {
  font-family: "筑紫A丸ゴシック";
  src: url("../font/tsukushi.woff2") format("woff2"),
       url("../font/tsukushi.woff") format("woff");
}
:root {--main-color: #1A3065;}
:root {--sub-color: #1A4EA0;}
:root {--sub02-color: #00A7EB;}
:root {--accent-color: #EBA200;}
:root {--main-font: "Noto Serif CJK JP";}
:root {--sub-font: "FOT-筑紫明朝 Pro";}

section{
	width: 100%;
	position: relative;
	overflow: hidden;
}
.inner{
	width: 92%;
	max-width: 850px;
	padding: 60px 0;
	position: relative;
	margin: 0 auto;
}
p{
	font-size: 15px;
	line-height: 2.5;
    letter-spacing: 0.15em;
	color: #000;
}
h1,h2,h3,h4,h5{
	font-weight: normal;
	line-height: 1.7;
	letter-spacing: 0.15em;
	color: #000;
}
h2{
	font-size: 24px;
	text-align: center;
}
.btn{
	display: block;
	width: 100%;
	max-width: 655px;
	font-size: 16px;
	font-family: var(--sub-font);
	text-align: center;
	letter-spacing: 0.25em;
	color: #FFF;
	background: var(--main-color);
	padding: 15px 0;
	margin: 0 auto;
	position: relative;
}
.btn::after{
	display: block;
	content: "";
	width:  20%;
	max-width: 110px;
	height: 1px;
	background: var(--accent-color);
	position: absolute;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
}
.btnwhite{
	color: var(--main-color);
	background: #FFF;
}
.btnwhite::after{
	background: var(--main-color);
}
.btnnormal::after{
	display: none;
}
.bgmain{
	color: #FFF;
	background: var(--main-color);
}
.bgmain h2,.bgsub h2,.bgmain p,.bgsub p{
	color: #FFF;
}
.bgsub{
	color: #FFF;
	background: var(--sub-color);
}
.bggray{
	background: #E6E6E6;
}
.blue{
	color: var(--sub-color);
}
.red{
	color: #FA1C00;
}
@media screen and (max-width: 420px) {
	p{ font-size: 13px;}
	h2{ font-size: 20px;}
}
/*==================================================================================================*/
/*header*/
header{
	position: fixed;
	z-index: 1000;
	transition: all .2s ease-out;
}
header::before,header::after{
	display: block;
	content: "";
	width: 100%;
	height: 7px;
	background: var(--main-color);
	position: absolute;
	top: 0;
	z-index: 1;
}
header::after{
	height: 3px;
	background: var(--accent-color);
	top: 7px;
	z-index: 0;
}
.headInner{
	width: 100%;
	max-width: 1000px;
	margin: 0 auto;
	position: relative;
	top: 5px;
}
h1.logo{
	width: 80px;
	background: var(--main-color);
	position: relative;
	left: 30px;
	z-index: 1;
}
h1.logo::after{
	display: block;
	content: "";
	width: 80px;
	height: 10px;
	background: var(--sub-color);
	position: absolute;
	bottom: 0;
	z-index: 10;
}
h1.logo a{
	display: flex;
	padding: 15px 10px 20px 10px;
	position: relative;
}
#nav_toggle{
	display: none;
}
nav{
	max-width: 600px;
}
nav ul{
	display: flex;
}
nav ul li{
	width: fit-content;
}
nav ul li a{
	display: block;
	font-size: 17px;
	text-align: center;
	line-height: 1;
	color: #544C47;
	padding: 5px 20px;
}
nav ul li a span{
	font-size: 10px;
}
nav ul li:last-child a{
	color: #FFF;
	background: var(--sub-color);
}
@media screen and (max-width: 768px) {
	nav.nav_content{
		display: none;
		width: 100%;
		max-width: 100%;
		height: 100vh;
		background: rgba(0,42,101,0.9);
		position: fixed;
		top: 0;
		left: 0;
		z-index: 100;
		overflow: scroll;
	}
	nav.nav_content ul{
		width: 80%;
		max-width: 500px;
		flex-wrap: wrap;
		position: absolute;
		top: 50%;
		left: 50%;
		transform: translate(-50%, -50%);
		-webkit-transform: translate(-50%, -50%);
		-ms-transform: translate(-50%, -50%);
	}
	nav.nav_content ul li{
		width: 100%;
		margin: 0;
	}
	nav.nav_content ul a{
		display: block;
		width: 100%;
		font-size: 20px;
		text-align: center;
		color: #FFF;
		padding: 15px 0;
		border-bottom: solid 1px #FFF;
		margin: 0;
	}
	nav ul li:last-child{
		border-bottom: none;
	}
	nav ul li:last-child a{
		background: none;
	}
	/*開閉ボタン*/
	#nav_toggle{
		display: block;
		width: 75px;
		height: 75px;
		background: var(--main-color);
		position: fixed;
		top: 0; right: 0;
		z-index: 1000;
		-webkit-transition: 0.5s ease-in-out;
		-moz-transition: 0.5s ease-in-out;
		transition: 0.5s ease-in-out;
		padding: 18px;
	}
	.open #nav_toggle{ background: #FFF;}

	#nav_toggle div { position: relative; top: 5px;}
	#nav_toggle span{
		display: block;
		height: 3px;
		border-radius: 2px;
		background: #FFF;
		position:absolute;
		width: 100%;
		left: 0;
		-webkit-transition: 0.5s ease-in-out;
		-moz-transition: 0.5s ease-in-out;
		transition: 0.5s ease-in-out;	
	}

	#nav_toggle span:nth-child(1){ top:0px;}
	#nav_toggle span:nth-child(2){ top:13px;}
	#nav_toggle span:nth-child(3){ top:26px;}

	/*開閉ボタンopen時*/
	.open #nav_toggle span:nth-child(1),
	.open #nav_toggle span:nth-child(3){
		background: var(--main-color);
		top: 15px;
	}
	.open #nav_toggle span:nth-child(1) {
	   -webkit-transform: rotate(135deg);
		-moz-transform: rotate(135deg);
		transform: rotate(135deg);
	}
	.open #nav_toggle span:nth-child(2) { height: 0;}
	.open #nav_toggle span:nth-child(3) {
		-webkit-transform: rotate(-135deg);
		-moz-transform: rotate(-135deg);
		transform: rotate(-135deg);
	}
}
@media screen and (max-width: 420px) {
	header{
		position: fixed;
		z-index: 100;
	}
	h1.logo{ left: 10px;}
	#nav_toggle{
		width: 70px;
		height: 70px;
		padding: 19px;
	}
	#nav_toggle span{ height: 2px;}
	#nav_toggle span:nth-child(1){ top:5px;}
	#nav_toggle span:nth-child(2){ top:15px;}
	#nav_toggle span:nth-child(3){ top:25px;}
	#nav_toggle div{ top: 0;}
}
/*==================================================================================================*/
/*fastView*/
.fv .inner{
	height: 80vh;
	max-height: 520px;
	padding: 90px 0;
}
.fv div div{
	width: 60%;
}
.fv div .svganimeblock{
	width: 40%;
	object-fit: contain;
}
.fv h2{
	font-size: 28px;
	font-family: var(--sub-font);
	text-align: left;
}
.fv p{
	font-size: 10px;
	font-family: var(--sub-font);
	letter-spacing: 0.3em;
}
@media screen and (max-width: 420px) {
	.fv {
		height: 90vh;
		display: flex;
		align-items: center;
	}
	.fv div div{
		width: 100%;
		position: relative;
		top: -20px;
		z-index: 1;
	}
	.fv div .svganimeblock{
		width: 70%;
		position: absolute;
		top: 70%;
		right: 0;
		transform: translateY(-50%);
		-webkit-transform: translateY(-50%);
		-ms-transform: translateY(-50%);
		z-index: 0;
	}
	.fv h2{ font-size: 26px;}
}
/*==================================================================================================*/
/*company*/
.company::before,.company::after{
	display: block;
	content: "";
	width: 100%;
	height: 3px;
	background: var(--accent-color);
	position: absolute;
	top: 0;
	z-index: 1;
}
.company::after{
	top: auto;
	bottom: 0;
}
.company h2{
	width: 50%;
	text-align: left;
}
.company ul{
	width: 50%;
}
.company ul li{
	font-size: 17px;
	line-height: 1;
	padding: 15px 0;
}
.company ul li::before{
	display: inline-block;
	content: "";
	width: 2px;
	height: 18px;
	background: #FFF;
	margin: 0 10px 0 0;
	position: relative;
	top: 3px; 
}
@media screen and (max-width: 420px) {
	.company h2{ width: 100%;}
	.company ul{ width: 100%;}
	.company ul li{ font-size: 13px;}
	.company ul li::before{ height: 14px;}
}
/*==================================================================================================*/
/*consulting*/
.consulting .inner{
	max-width: 655px;
	padding: 80px 0;
}
.consulting h2{
	font-size: 28px;
	margin: 0 0 20px;
}
.consulting p{
	margin: 0 0 40px;
}
.consulting ul{
	margin: 0 0 30px;
}
.consulting ul li{
	width: 33%;
	padding: 0 50px;
	border-right: solid 1px #E6E6E6;
}
.consulting ul li:last-child{
	border-right: none;
}
.consulting ul li img{
	padding: 0 20px;
	margin: 0 0 20px;
}
.consulting ul li p{
	font-size: 16px;
	text-align: center;
	color: var(--main-color);
	margin: 0;
}
@media screen and (max-width: 420px) {
	.consulting .inner{ padding: 60px 0;}
	.consulting h2{ font-size: 20px;}
	.consulting ul li{
		width: 60%;
		padding: 20px 40px;
		border-right: none;
		border-bottom: solid 1px #E6E6E6;
		margin: 0 auto;
	}
	.consulting ul li:last-child{ border-bottom: none;}
}
/*==================================================================================================*/
/*news*/
.news h2{
	margin: 0 auto 20px;
}
.news ul{
	max-width: 800px;
	border-radius: 50px;
	padding: 50px 80px;
	background: #FFF;
	margin: 0 auto 50px;
}
.news ul li a{
	padding: 15px 0;
	border-bottom: solid 1px #E6E6E6;
}
.news ul li:last-child a{
	padding: 15px 0 0;
	border-bottom: none;
}
.news ul li a{
	position: relative;
	overflow: hidden;
}
.news ul li a::before,.news ul li a::after{
	display: block;
	content: "";
	width: 1px;
	height: 30px;
	transform: rotate(-35deg);
	background: #E6E6E6;
	position: absolute;
	right: 0;
}
.news ul li a::after{
	transform: rotate(35deg);
	right: 0;
}
.news ul li span{
	display: block;
	width: 15%;
	font-size: 11px;
	letter-spacing: 0.15em;
	color: #999999;
}
.news ul li p{
	width: 85%;
	font-size: 14px;
}
@media screen and (max-width: 420px) {
	.news ul{
		border-radius: 30px;
		padding: 20px 30px;
		margin: 0 auto 50px;
	}
	.news ul li span{ width: 100%;}
	.news ul li p{
		width: 100%;
		font-size: 13px;
	}
}
/*==================================================================================================*/
/*contact*/
.contact div{
	width: 50%;
	padding: 50px;
}
.contact p{
	font-size: 14px;
	text-align: center;
	margin: 0 0 30px;
}
.contact .btn{
	max-width: 400px;
	padding: 10px 0;
}
@media screen and (max-width: 420px) {
	.contact div{ width: 100%;}
}
/*==================================================================================================*/
/*banner*/
.banner{
	padding: 60px 0;
}
.banner .flex{
	width: 90%;
	max-width: 800px;
	background: center / cover no-repeat url("../img/bg-banner.jpg");	
	padding: 25px 30px;
	margin: 0 auto;
}
.banner .flex h2{
	width: 50%;
}
.banner .flex div{
	width: 45%;
}
.banner .flex p{
	color: #FFF;
	line-height: 1.5;
	margin: 0 0 15px;
}
.banner .flex .btn{
	padding: 0;
}
@media screen and (max-width: 768px) {
	.banner .flex h2{ width: 47%;}
	.banner .flex div{ width: 50%;}
}
@media screen and (max-width: 420px) {
	.banner .flex h2{
		width: 100%;
		margin: 0 0 15px;
	}
	.banner .flex div{ width: 100%;}
}
.map{
	width: 100%;
}
.map iframe{
	vertical-align:bottom;
}
/*==================================================================================================*/
/*footer*/
.Fbottom .flex{
	align-content: space-between;
}
.Flogo,.Fnav,.Fbottom p,small{
	width: 50%;
}
.Flogo{
	padding: 0 30% 0 0;
	margin: 0 0 80px;
}
.Fnav{
	margin: 0 0 auto;
}
.Fnavul li{
	width: fit-content;
	color: #FFF;
	margin: 0 0 10px;
}
.Fnavul li a{
	font-size: 16px;
	color: #FFF;
}
.Fsnsul {
	max-width: 120px;
	margin: 0 0 0 auto;
}
.Fsnsul li{
	width: 30%;
	padding: 0 5px;
}
.Fbottom p{
	font-size: 16px;
	line-height: 1.3;
}
.Fbottom p span{
	font-size: 12px;
}
small{
	display: block;
	width: fit-content;
	font-size: 10px;
	line-height: 1;
	margin: auto 0 0 ;
}
@media screen and (max-width: 420px) {
	.Flogo{ padding: 0 10% 0 0;}
}