@charset “utf-8”;

@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap");
@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@200..900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=TASA+Explorer:wght@400..800&display=swap');

/*------------------------------------------
general
------------------------------------------*/

:root {
	--maincolor: #024099;
	--textbase:#121212;
	--lightblue:#00C4FF;
	--bluegray:#EEF2F8;
	--gray:#EBEBEB;
	--serif: 'Noto Serif JP', "游明朝", "Yu Mincho", YuMincho, "ヒラギノ明朝 Pro W3", "Hiragino Mincho Pro", "HGS明朝E", "ＭＳ Ｐ明朝", "MS PMincho", "Times New Roman", Times, Garamond, Georgia, serif;
	--sans_serif: "Noto Sans JP", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "Meiryo", "メイリオ", "ＭＳ Ｐゴシック", sans-serif;
	--tasa: "TASA Explorer", sans-serif;
}

html{
	font-size: 62.5%;
	scroll-behavior: smooth;
}
body{
	font-family: "Noto Sans JP", sans-serif;
	font-optical-sizing: auto;
	font-style: normal;
	color:var(--textbase);
	overflow-x:hidden;
	font-size:1.6rem;
	-webkit-text-size-adjust:none;
	line-height:1.86667;
}
img:not(.clickok) {
	pointer-events: none;
	-webkit-user-drag: none; /* Chrome, Safari, Operaを禁止する場合 */
	-khtml-user-drag: none; /* Konquerorを禁止する場合 */
	-moz-user-drag: none; /* Firefoxを禁止する場合 */
}
p{
	font-size:1.8rem;
}
@media screen and (max-width: 1199px) {
	p{
		font-size:1.4rem;
	}
}
a{
	text-decoration:none;
	transition: all 0.5s 0s ease-in-out;
	color:var(--textbase);
}
a img{
	transition:0.3s all;
}
a img:hover{
	transform:scale(1.05);
}

a.underline {
    display: inline-block;
    padding-bottom: 4px;
    border-bottom: 1px solid #0000EE;
    margin-bottom: 15px;
    color:#0000EE;
}


.f_tasa_bold{
	font-family: "TASA Explorer", sans-serif;
	font-optical-sizing: auto;
	font-weight: bold;
	font-style: normal;
}

.mx-auto{
	margin-left:auto;
	margin-right:auto;
}
.mt-0{
	margin-top:0px !important;
}
.mt-15{
	margin-top:15px;
}
.mt-30{
	margin-top:30px;
}
.mt-50{
	margin-top:50px;
}
.text-center{
	text-align:center;
}
.text-left{
	text-align:left !important;
}

span.linemarker {
	  background:linear-gradient(transparent 60%, #ff6 60%);
}
.red{
	color:#ff0000;
}
.lightblue{
	color:var(--lightblue);
}
.bold{
	font-weight:600;
}
.small{
	font-size:88%;
}
.spbr{
	display:none;
}
.disp_sp{
	display:none;
}
.sp_left{
	text-align:center;
}
@media screen and (max-width: 767px) {
	.spbr{
		display:block;
	}
	.pcbr{
		display:none;
	}
	.disp_pc{
		display:none !important;
	}
	.disp_sp{
		display:block;
	}

	.sp_left{
		text-align:left !important;
	}
}

.boxshadow{
	-webkit-box-shadow:0 0 8px rgba(0,0,0,0.3);
	box-shadow:0 0 8px rgba(0,0,0,0.3);
}
.boxshadow2{
	-webkit-box-shadow:0 0 4px rgba(0,0,0,0.2);
	box-shadow:1 1 3px rgba(0,0,0,0.2);
}

.wrapper{
	max-width:1827px;
	margin-inline:auto;
	padding-left:26px;
	padding-right:26px;
}
@media screen and (max-width:767px){
	.wrapper{
		padding-left:15px;
		padding-right:15px;
	}
}
.row{
	display:flex;
}

.cnr_ttl h2{
	font-size:3.6rem;
	font-weight:300;
}
.cnr_ttl p{
	margin-top:10px;
	letter-spacing: 0.12em;
}

ul.kome{
	list-style: none;
	padding: 0;
}
ul.kome li{
	display: flex;
	padding:2px 0;
}
ul.kome li::before {
	content: "\203B";
	margin-right: .25em;
}
ul.maru{
	list-style: none;
	padding: 0;
}
ul.maru li{
	display: flex;
	padding:2px 0;
}
ul.maru li::before {
	content: "\25CF";
	margin-right: .25em;
}

ol.maruno {
	counter-reset: my-counter;
	list-style: none;
	padding: 0;
	margin: 0;
}
ol.maruno li {
	font-size: 16px;
	line-height: 1.5;
	padding-left: 30px;
	position: relative;
}
ol.maruno li:before {
	content: counter(my-counter);
	counter-increment: my-counter;
	background-color: #fff;
	border: 1px solid #707070;
	border-radius: 50%;
	box-sizing: border-box;
	display: flex;
	justify-content: center;
	align-items: center;
	height: 20px;
	width: 20px;
	font-size: 85%;
	line-height: 1;
	position: absolute;
	top: 0;
	left: 0;
} 

.btn_std_wbd{
	height:80px;
	width:360px;
	display:flex;
	align-items:center;
	position:relative;
	border:3px solid #fff;
}
@media screen and (max-width:767px){
	.btn_std_wbd{
		height:65px;
	}
}
.btn_std_wbd p{
	display:flex;
	align-items:center;
	padding-left:10px;
	font-weight:bold;
	color:#fff;
	font-size:1.5rem;
	z-index:1;
}
.btn_std_wbd p::before{
	display:inline-block;
	content: "";
	height: 1px;
	width: 30px;
	background-color: #fff;
	margin-right: 5rem;
}
.btn_std_wbd::before{
	position: absolute;
	width: 0;
	height: 100%;
	content: '';
	background-color: var(--maincolor);
	left: 0;
	transition-duration: .2s;
}
.btn_std_wbd:hover::before{
	width: 100%;
}

.btn_std_w{
	height:80px;
	width:360px;
	display:flex;
	align-items:center;
	position:relative;
	background:#fff;
	border:3px solid var(--maincolor);
}
.btn_std_w p{
	display:flex;
	align-items:center;
	padding-left:10px;
	font-weight:bold;
	color:var(--maincolor);
	font-size:1.5rem;
	z-index:1;
}
@media screen and (max-width:767px){
	.btn_std_w{
		height:65px;
		width:100%;
	}
}
.btn_std_w p::before{
	display:inline-block;
	content: "";
	height: 1px;
	width: 30px;
	background-color: var(--maincolor);
	margin-right: 5rem;
}
.btn_std_w::before{
	position: absolute;
	width: 0;
	height: 100%;
	content: '';
	background-color: var(--maincolor);
	left: 0;
	transition-duration: .2s;
}
.btn_std_w:hover::before{
	width: 100%;
}
.btn_std_w:hover p{
	color:#fff;;
}
.btn_std_w:hover p::before{
	background-color: #fff;
}
.btn_more{
	display:inline-block;
	cursor: pointer;
	position: relative;
	line-height: 50px;
}
.btn_more::before {
	content: "";
	position: absolute;
	width: 100%;
	height: 2px;
	left: 0;
	bottom: 0;
	background: var(--maincolor);
}
.btn_more:hover::before {
	animation: hideAndShowUnderline 0.6s forwards;
}
@keyframes hideAndShowUnderline {
  0% {
    width: 100%;
  }
  5% {
    width: 0%;
  }
  100% {
    width: 100%;
  }
}
@media screen and (max-width:767px){
	.btn_more{
		font-size:1.4rem;
	}
}
/*------------------------------------------
scroll animation
------------------------------------------*/
/* 読み込み時フェードイン */

@keyframes fadeInUp {
  0% {
    opacity: 0;
    transform: translateY(30px); /* 開始時は30px下にずらす */
  }
  100% {
    opacity: 1;
    transform: translateY(0); /* 終了時は元の位置に戻す */
  }
}

.pre_fadein {
  animation-name: fadeInUp; /* 上で定義したアニメーション名 */
  animation-duration: 1s; /* アニメーションの時間 */
  animation-timing-function: ease-out; /* 動きの緩急（終わりを滑らかに） */
  animation-fill-mode: forwards; /* アニメーション終了後もスタイルを保持 */
  opacity: 0; /* 初期状態は透明にしておく */
}

/* スクロールフェードイン */
/* フェードイン(初期値) */
.js-fadeUp {
  opacity: 0; /* 最初は非表示 */
  transform: translateY(30px); /* 下に30pxの位置から */
  transition: opacity .8s, transform .8s; /* 透過率と縦方向の移動を0.8秒 */
}
/* フェードイン(スクロールした後) */
.js-fadeUp.is-inview {
  opacity: 1; /* 表示領域に入ったら表示 */
  transform: translateY(0); /* 30px上に移動する */
  transition-delay: .5s; /* フェード開始を0.5秒遅らせる */
}
/*------------------------------------------
header
------------------------------------------*/

.header_nav {
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: space-between;
	background-color: #fff;
	/* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */
	color: #FFF;
	height: 100px;
	position:relative;
}
.sitelogo img{
	width:289px;
	margin-left:30px;
}
.navpanel{
	width:calc(100% - 350px);
	max-width:1045px;
	display: flex;
	align-items: stretch;
	height:100%;
}
.menu {
	display: flex;
	flex-direction: row;
	list-style-type: none;
	margin: 0;
	padding: 0;
	align-items: stretch;
	height:100%;
	justify-content:space-between;
	width:100%;
}

.menu > li {	
	overflow: hidden;
	display: flex;
	align-items: stretch;
}
.menu > li:nth-child(1) {	
	display: none;
}
.menu > li a {
	display: flex;
	align-items: center;
	caret-color: #fff;
	font-size:1.8rem;
	font-weight:bold;
	position:relative;
}
@media (max-width: 1199px) {
	.menu > li a {
		font-size:1.6rem;
	}
}
.menu > li:not(.menu_contact) a::after {
	position: absolute;
	left: 0;
	content: '';
	width: 100%;
	height: 2px;
	background: var(--maincolor);
	bottom: 30px;
	transform: scale(0, 1);
	transform-origin: center top;
	transition: transform 0.3s;
}
.menu > li:not(.menu_contact) a:hover {
	color:var(--maincolor);
}
.menu > li:not(.menu_contact) a:hover::after {
	transform: scale(1, 1);
}

.menu > li.menu_contact a{
	color:#fff;
	background:#000000;
	width:213px;
	display: flex;
	align-items: center;
	position:relative;
}
.menu > li.menu_contact a p{
	z-index:1;
	display: flex;
	align-items: center;
	width:100%;
}
.menu > li.menu_contact a p::before{
	content: "";
	height: 1px;
	flex-grow: 0.5;
	background-color: #fff;
	margin-right: 1rem;
}
.menu > li.menu_contact a::before{
	position: absolute;
	width: 0;
	height: 100%;
	content: '';
	background-color: var(--maincolor);
	left: 0;
	transition-duration: .2s;
}
.menu > li.menu_contact a:hover::before{
	width: 100%;
}
@media (max-width: 1169px) {
	.header_nav {
		height: 50px;
	}
	.sitelogo img{
		width:170px;
		margin-left:10px;
	}
}

.menu-button-container {
	display: none;
	height: 100%;
	width: 30px;
	cursor: pointer;
	flex-direction: column;
	justify-content: center;
	align-items: center;
}

#menu-toggle {
	display: none;
}

.menu-button,
.menu-button::before,
.menu-button::after {
	display: block;
	background-color: #fff;
	position: absolute;
	height: 1px;
	width: 21px;
	transition: transform 400ms cubic-bezier(0.23, 1, 0.32, 1);
}

.menu-button::before {
	content: '';
	margin-top: -8px;
}

.menu-button::after {
	content: '';
	margin-top: 8px;
}

#menu-toggle:checked + .menu-button-container .menu-button::before {
	margin-top: 0px;
	transform: rotate(405deg);
}

#menu-toggle:checked + .menu-button-container .menu-button {
	background: rgba(255, 255, 255, 0);
}

#menu-toggle:checked + .menu-button-container .menu-button::after {
	margin-top: 0px;
	transform: rotate(-405deg);
}

.navpanel_bnr,
.navpanel_bottom{
	display:none;
}
@media (max-width: 1170px) {
	.menu-button-container {
		display: flex;
		background:#000;
		width:50px;
		caret-color: #000;
	}
	.navpanel{
		position: absolute;
		top: 50px;
		left: 0;
		height:0;
		overflow:hidden;
		width:100%;
		background:var(--maincolor);
		display:block;
	}
	.menu {
		flex-direction: column;
		width: 100%;
		height:auto;
		justify-content: center;
		align-items: center;
		margin-block-start: 0;
		margin-block-end: 0;
		padding-inline-start:0;
		margin-top:20px;
		padding-left:40px;
		padding-right:40px;
	}
	#menu-toggle ~ .navpanel {
		height: 0;
		margin: 0;
		padding: 0;
		border: 0;
		transition: height 400ms cubic-bezier(0.23, 1, 0.32, 1);
		z-index:2;
	}
	#menu-toggle:checked ~ .navpanel {
		/*height: calc(100vh - 50px);*/
		height: 100vh;
		transition: height 400ms cubic-bezier(0.23, 1, 0.32, 1);
		align-items:start;
	}
	.menu > li {
		display: flex;
		margin: 0;
		/*padding: 1em 0;*/
padding: 8px 0;
		width: 100%;
		color: white;
	}

	.menu > li:nth-child(1) {
		display: flex;
	}
	.menu > li:nth-child(6),
	.menu > li:nth-child(7) {
		display: none;
	}

	.menu > li a{
		color:#fff;
		font-size:1.5rem;
		display:flex;
		width:100%;
	}

	.menu > li a::before{
		display:inline-block;
		content: "";
		height: 1px;
		width: 30px;
		background-color: #fff;
		margin-right: 1rem;
	}

	.navpanel_bnr{
		display:block;
		margin-top:20px;
		padding-left:40px;
		padding-right:40px;
	}

	.navpanel_bnr .bnr_unit{
		height:50px;
		display:flex;
		border:1px solid #fff;
		align-items:center;
		padding-left:10px;
		line-height:1.2;
		font-size:1.4rem;
		font-weight:bold;
		color:#fff;
		background-size:cover;
		background-repeat:no-repeat;
	}
	.navpanel_bnr .bnr_unit span{
		font-size:1rem;
	}
	.navpanel_bnr .bnr_unit::before{
		display:inline-block;
		content: "";
		height: 1px;
		width: 30px;
		background-color: #fff;
		margin-right: 1rem;
	}
	.navpanel_bnr .bnr_unit.bnr_partner{
		background-image:url("../images/top/bg_partner.jpg");
		background-position:center center;
	}
	.navpanel_bnr .bnr_unit.bnr_recruit{
		background-image:url("../images/top/bg_recruit.jpg");
		background-position:center center;
		margin-top:18px;
	}
	.navpanel_bottom{
		display:block;
		margin-top:36px;
		padding-top:30px;
		padding-left:40px;
		padding-right:0px;
		border-top:1px solid #fff;
	}
	.navpanel_bottom h2{
		font-size:1.4rem;
	}
	.navpanel_bottom .address{
		font-size:1.3rem;
		margin-top:10px;
	}
	.navpanel_bottom .tel{
		font-weight:500;
		margin-top:6px;
		margin-bottom:15px;
	}
	.btn_wbd{
		height:50px;
		width:225px;
		display:flex;
		border:1px solid #fff;
		align-items:center;
		padding-left:10px;
		line-height:1.2;
		font-size:1.4rem;
		font-weight:bold;
		color:#fff;
	}
	.btn_wbd::before{
		display:inline-block;
		content: "";
		height: 1px;
		width: 30px;
		background-color: #fff;
		margin-right: 1rem;
	}
}

/*------------------------------------------
footer
------------------------------------------*/

footer{
	padding:111px 0 0;
}
.footer_inner{
	display:flex;
	gap:13%;
}
.footer_1 img{
	width:375px;
	margin-bottom:60px;
}
.footer_1 .address{
	font-weight:500;
	margin-bottom:37px;
}
.footer_1 .tel{
	font-size:2.1rem;
	font-weight:500;
	margin-bottom:60px;
}

.btn_k{
	height:74px;
	max-width:390px;
	display:flex;
	background:#000;
	align-items:center;
	position:relative;
}
.btn_k p{
	display:flex;
	align-items:center;
	padding-left:10px;
	font-size:1.4rem;
	font-weight:bold;
	color:#fff;
	z-index:1;
}
.btn_k p::before{
	display:inline-block;
	content: "";
	height: 1px;
	width: 30px;
	background-color: #fff;
	margin-right: 5rem;
}
.btn_k::before{
	position: absolute;
	width: 0;
	height: 100%;
	content: '';
	background-color: var(--maincolor);
	left: 0;
	transition-duration: .2s;
}
.btn_k:hover::before{
	width: 100%;
}
.footer_nav {
	display:flex;
	gap:20%;
	justify-content:space-between;
}
.footer_nav h3{
	color:var(--maincolor);
	font-size:1.8rem;
	margin-bottom:30px;
	font-family:var(--tasa);
}
.footer_nav h4{
	font-size:1.8rem;
	font-weight:bold;
	display:flex;
	align-items:center;
	white-space:nowrap;
}
.footer_nav h4::before{
	display:inline-block;
	content: "";
	height: 1px;
	width: 12px;
	background-color: var(--maincolor);
	margin-right: 1rem;
}
.footer_nav ul li a{
	white-space:nowrap;
}

.footer_3 h4{
	margin-bottom:20px;
}

.footer_1{

}
.footer_2{

}
@media (max-width: 1300px) {
	.footer_inner{
		gap:10%;
	}
	.footer_nav {
		gap:10%;
	}
}
@media (max-width: 1199px) {
	.footer_inner{
		align-items:center;
		flex-direction:column;
		gap:50px;
	}
	.footer_nav h4{
		font-size:1.6rem;
	}
	.footer_nav ul li a{
		font-size:1.6rem;
	}
	.footer_2{

	}
}

.copyright_wrap{
	border-top:1px solid #C3C3C3;
	margin-top:60px;
}
.copyright_wrap .wrapper{
	display:flex;
	align-items:center;
	justify-content:space-between;
	height:86px;
}
.copyright_wrap a,
.copyright_wrap p{
	color:#C3C3C3;
	font-weight:bold;
}


#page_top {
	position: fixed;
	z-index: 99999;
	bottom: 20px;
	right: 0;
}
#page_top a img{
	-moz-opacity: .8;
	opacity: .8;
	cursor: pointer;
	width: 50px;
	height: 50px;
}

@media (max-width: 787px) {
	footer{
		padding:40px 0 0;
	}
	.footer_1 img{
		width:200px;
		margin:0 auto 40px;
	}
	.footer_1 .address{
		font-size:1.3rem;
		margin-bottom:30px;
	}
	.footer_1 .tel{
		font-size:1.8rem;
		margin-bottom:30px;
	}
	.footer_1{
		text-align:center;
		margin-right:0px;
		padding-bottom:30px;
		border-bottom:1px solid var(--gray);
	}
	.footer_nav {
		flex-direction:column;
		gap:0;
	}
	.footer_2{

	}
	.footer_3{
		padding-top:40px;
	}
	.btn_k{
		height:40px;
		width:210px;
		margin:auto;
	}
	.btn_k p{
		font-size:1.2rem;
	}
	.btn_k p::before{
		margin-right: 2rem;
	}
	.footer_nav h3{
		margin-bottom:24px;
	}
	.footer_nav h4{
		font-size:1.4rem;
	}
	.footer_nav ul li a{
		font-size:1.2rem;
	}
	.footer_3 .h4_flex{
		display:flex;
		flex-wrap:wrap;
	}
	.footer_3 .h4_flex h4{
		width:50%;
	}
	.copyright_wrap{
		margin-top:45px;
	}
	.copyright_wrap .wrapper{
		flex-direction:column;
		justify-content:center;
		height:86px;
	}
	.copyright_wrap a,
	.copyright_wrap p{
		font-size:1.2rem;
	}
}

button.page-top {
  position: fixed;
  display: flex;
  align-items: center;
  justify-content: center;
  right: 40px;
  bottom: 20px;
  cursor: pointer;
  opacity: 0;
  /*visibility: hidden;*/
  border: 0;
  background: none;
  transition: .2s;
  z-index:2;
  color:#000;
}

button.page-top p{
  writing-mode: vertical-rl;
  text-decoration: none;
  text-transform: uppercase;
  height: 85px;
  margin: 0;
  letter-spacing: 5px;
  text-align: right;
  color:#000;
}

button.page-top p:before {
    content: "";
    position: absolute;
    top: 2px;
    right: -5px;
    width: 2px;
    height: 20px;
    background: #000;
    transform: skewX(-150deg);
}

button.page-top p:after {
    content: "";
    position: absolute;
    bottom: 0px;
    right: 0;
    width: 2px;
    height: 85px;
    background: #000;
}

button.page-top.is-active {
  opacity: 1 !important;
  visibility: visible;
}


/*------------------------------------------
lower
------------------------------------------*/
#sec_pagehead{
	height:386px;
	background:linear-gradient(rgba(12, 72, 158, 0.8), rgba(12, 72, 158, 0.8) ),url("../images/vision/mark_float_2.png");
	background-size:100% auto, 1500px auto;
	background-repeat:no-repeat,no-repeat;
	background-position:top left, center bottom -150px;
	position:relative;
}
#sec_pagehead .wrapper{
	display:flex;
	align-items:center;
	justify-content:flex-start;
	height:100%;
}
#sec_pagehead .ttl p.ttl_anime_p{
	font-family: var(--tasa);
	font-weight:bold;
	font-size:8.1rem;
	line-height:1;
}
.ttl_anime_p{
	color: transparent;
	display: block;
	overflow: hidden;
	position: relative;
	transition: color 0ms 0.5s;
	width: max-content;
}
.ttl_anime_p::after{
	content: "";
	left: 0;
	display: block;
	position: absolute;
	top: 0;
	transform: translateX(-100%);
	width: 100%;
	height: 100%;
	background-color: var(--maincolor);
}
.ttl_anime_p.active{
	color:rgba(255,255,255,0.19);
}
.ttl_anime_p.active::after{
	animation: ttlAnime 1s;
}
@keyframes ttlAnime {
	0% {
		transform: translateX(-100%)
	}
	50% {
		transform: translateX(0)
	}
	100% {
		transform: translateX(100%)
	}
}

#sec_pagehead .ttl h2.ttl_anime_h2{
	font-weight:bold;
	font-size:3.6rem;
}
.ttl_anime_h2{
	color: transparent;
	display: block;
	overflow: hidden;
	position: relative;
	transition: color 0ms 0.5s;
	width: max-content;
}
.ttl_anime_h2::after{
	content: "";
	left: 0;
	display: block;
	position: absolute;
	top: 0;
	transform: translateX(-100%);
	width: 100%;
	height: 100%;
	background-color: var(--maincolor);
}
.ttl_anime_h2.active{
	color:#fff;
}
.ttl_anime_h2.active::after{
	animation: ttlAnime_h2 1s;
}
@keyframes ttlAnime_h2 {
	0% {
		transform: translateX(-100%)
	}
	50% {
		transform: translateX(0)
	}
	100% {
		transform: translateX(100%)
	}
}

#sec_pagehead img{
	position:absolute;
	width:40%;
	top:50%;
	right:0;
}

@media screen and (max-width: 767px) {
	#sec_pagehead{
		height:149px;
		background-size:100% auto, 600px auto;
	}
	#sec_pagehead .ttl p.ttl_anime_p{
		font-size:3.6rem;
	}
	#sec_pagehead .ttl h2.ttl_anime_h2{
		font-size:1.4rem;
	}
	#sec_pagehead img{
		width:50%;
		top:65%;
		right:0;
	}
}
