@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&family=Noto+Sans+JP:wght@100..900&display=swap');


/* =================== */
/*       pubulic       */
/* =================== */
html {
	overflow-x:hidden;
	scroll-padding-top:150px !important;
}
html,body {
  font-size:clamp(10px, 1.33vw, 20px);
  font-family: "Noto Sans JP", sans-serif;
  font-weight:400;
	position:relative;
  /*-webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;*/
  overflow-x:hidden;
}


.act-font {
  font-family:"Montserrat", serif;
  font-optical-sizing:auto;
  font-weight:400;
  font-style:normal;
}



img {
  width:100%;
  height:auto;
}
.sp-on { display:none; }
a { transition:0.3s ease all; }


.flex-box {
  display:-webkit-box;
  display:flex;
  -webkit-box-pack:justify;
  justify-content:space-between;
  align-items:center;
}

.in-w75 {
	width:75rem;
	margin:0 auto;
	position:relative;
}
.in-w60 {
	width:60rem;
	margin:0 auto;
	position:relative;
}
.in-w55 {
	width:55rem;
	margin:0 auto;
	position:relative;
}

.fadein {
	opacity:0;
	transform:translate(0, 15%);
	transition:1s;
}
.fadein.is-show {
	transform:translate(0, 0);
	opacity:1;
}
.blur {
	filter:blur(10px);
	transition:1.5s;
}
.blur.is-show {
	filter:blur(0);
	opacity:1;
}



/* =================== */
/*       #header       */
/* =================== */
#header {
	height:5rem;
	position:fixed;
	top:0;
	left:0;
	width:100%;
	z-index:100;
}
#header.fixed { background:#fff; }
#header .head-main-box {
	width:72rem;
	margin:0 auto;
	height:100%;
}
#header #site-logo { width:15.15rem; }
#header .main-nav { margin-right:1.5rem; }
#header .main-nav li { font-size:.8rem; }
#header .main-nav li .parent-link > a { padding:.5rem .75rem; }
#header .main-nav li:hover .parent-link a { background:#3b67d5; color:#fff; }
#header .main-nav li.hav-child .parent-link a::after {
	content:"";
	display: inline-block;
  vertical-align:baseline;
  color: #000;
  line-height: 1;
  width:.7em;
  height:.7em;
  border: 0.1em solid currentColor;
  border-left: 0;
  border-bottom: 0;
  box-sizing: border-box;
  transform: translateY(-25%) rotate(135deg);
  margin-left:.5rem;
}
#header .main-nav li:hover .parent-link a::after { color:#fff; }
#header .main-nav li.hav-child .child-box {
	position:fixed;
	left:0;
	/*top:4.2rem;*/
	top:3.5rem;
	width:100vmax;
	background:#3b67d5;
	color:#fff;
	padding:2rem 0 2.5rem;
	display:none;
}
#header .main-nav li.hav-child:hover > .child-box { display:block; }
#header .main-nav li.hav-child .child-box > .flex-box { align-items:flex-start; }
#header .main-nav li.hav-child .child-box .parent-name { width:9rem; margin-top:1.5rem; }
#header .main-nav li.hav-child .child-box .parent-name a:hover { opacity:.5; }
#header .main-nav li.hav-child .child-box .parent-name .en { font-size:.7rem; display:block; }
#header .main-nav li.hav-child .child-box .parent-name .jp {
	font-size:1.4rem;
	display:block;
	font-weight:bold;
	margin-top:.5rem;
}
#header .main-nav li.hav-child .child-box .child-link-box {
	width:calc(100% - 9rem);
	justify-content:flex-start;
	align-items:flex-start;
}
#header .main-nav li.hav-child .child-box .child-link-box a:hover { opacity:.5; }
#header .main-nav li.hav-child .child-box .child-pic-list { align-items:flex-start; }
#header .main-nav li.hav-child .child-box .child-pic-list li .child-name {
	font-size:.8rem;
	text-align:center;
	margin-top:.5rem;
	line-height:1.2;
}
#header .main-nav li.hav-child .child-box .child-pic-list { justify-content:flex-start; }
#header .main-nav li.hav-child .child-box .child-pic-list li { width:10.6rem; margin-right:1.5rem; }
#header .main-nav li.hav-child .child-box.business .child-pic-list { justify-content:space-between; }
#header .main-nav li.hav-child .child-box.business .child-pic-list li { width:calc((100% - 4rem) / 5); margin-right:0; }
#header .main-nav li.hav-child .child-box .child-txt-list { margin-top:.5rem; margin-left:1.5rem; }
#header .main-nav li.hav-child .child-box .child-txt-list li {
	font-size:.8rem;
	margin-bottom:1rem;
}
#header .main-nav li.hav-child .child-box .child-txt-list li::before {
	content:"-";
	display:inline-block;
	margin-right:.5rem;
}

#header .contact-btn a {
	line-height:1.8rem;
	width:8.5rem;
	background:#3b67d5;
	border-radius:100vmax;
	color:#fff;
	font-size:.75rem;
	text-align:center;
	display:block;
	border:2px solid #3b67d5;
	box-sizing:border-box;
}
#header .contact-btn a:hover {
	color:#3b67d5;
	background:#fff;
}
#header .download-btn { margin-right:.5rem; }
#header .download-btn a {
	line-height:1.8rem;
	width:8.5rem;
	background:#666;
	border-radius:100vmax;
	color:#fff;
	font-size:.75rem;
	text-align:center;
	display:block;
	border:2px solid #666;
	box-sizing:border-box;
}
#header .download-btn a:hover {
	color:#666;
	background:#fff;
}
#header .sub-nav {
	justify-content:flex-end;
	margin-bottom:.7rem;
}
#header .sub-nav li { font-size:.7rem; }
#header .sub-nav li:last-child {
	border-left:1px solid #000;
	padding-left:1rem;
	margin-left:1rem;
}





/* =================== */
/*       #footer       */
/* =================== */
#footer {
	background:#404040;
	padding:3.5rem 0 ;
	color:#fff;
}
#footer .foot-main-box {
	align-items:flex-start;
	width:72rem;
}
/*#footer .name-box { margin-left:-4rem; }*/
#footer .name-box .logo-mark {
	width:6.75rem;
	margin:0 auto;
}
#footer .name-box .name {
	font-size:.75rem;
	margin-top:.5rem;
}
#footer .foot-nav { align-items:flex-start; }
#footer .foot-nav > li { margin-left:2.5rem; }
#footer .foot-nav li .parent-name {
	font-size:.9rem;
	margin-bottom:1.5rem;
}
#footer .foot-nav li li {
	font-size:.8rem;
	color:#999;
	margin-bottom:1rem;
}
#footer .foot-sub-nav {
	margin:3rem auto 1rem;
	justify-content:center;
}
#footer .foot-sub-nav li {
	font-size:.7rem;
	margin-right:1rem;
}
#footer .foot-sub-nav li::after {
	content:"|";
	display:inline-block;
	margin-left:1rem;
}
#footer .foot-sub-nav li:last-child { margin-right:0; }
#footer .foot-sub-nav li:last-child::after { display:none; }
#footer a:hover { opacity:.5; }
#footer small {
	font-size:.7rem;
	text-align:center;
	display:block;
}








/* =================== */
/*        main         */
/* =================== */
.blue-btn a {
	background:#3b67d5;
	color:#fff;
	border-radius:100vmax;
	font-size:1rem;
	line-height:2.7rem;
	width:12.5rem;
	display:block;
	margin:0 auto;
	text-align:center;
	box-sizing:border-box;
	border:2px solid #3b67d5;
}
.blue-btn a:hover {
	background:#fff;
	color:#3b67d5;
}

body.index main h2 .en {
	display:block;
	color:#3b67d5;
	font-size:.9rem;
	text-align:center;
	letter-spacing:.05em;
	font-weight:500;
	margin-bottom:.8rem;
}
body.index main h2 .jp {
	display:block;
	font-size:1.8rem;
	text-align:center;
	font-weight:bold;
}
body.index main h2 .jp::after {
	content:"";
	width:2rem;
	height:1px;
	background:#34495e;
	display:block;
	margin:1.5rem auto;
}
body.index main .sec-desp {
	font-size:1rem;
	line-height:2;
	text-align:center;
	margin-bottom:3rem;
}

body.index #kv-box {
	height:36rem;
	position:relative;
}
body.index #kv-box .kv-pic {
	width:100%;
	height:100%;
	position:absolute;
	left:0;
	top:0;
}
body.index #kv-box .kv-pic #particles-js {
	width:100%;
	height:100%;
}
body.index #kv-box .kv-pic #particles-js canvas { object-fit:cover; }
body.index #kv-box .kv-pic img {
	width:100%;
	height:100%;
	object-fit:cover;
}
body.index #kv-box .txt-wrap {
	justify-content:center;
	align-items:center;
	position:absolute;
  top:0;
  left:0;
  width:100%;
  height:100%;
}
body.index #kv-box .txt-wrap .en-copy {
	text-align:center;
	/*font-size:5.5rem;*/
	font-size:5rem;
	font-weight:500;
}
body.index #kv-box .txt-wrap .jp-copy {
	font-size:1.45rem;
	text-align:center;
	margin:3rem auto 2rem;
}

body.index #service {
	background:#f4f4f4;
	padding:4rem 0 5rem;
}
body.index #service .blue-btn a {
	font-size:.85rem;
	line-height:2.35rem;
	width:10.85rem;
}
body.index #service .service-list {
	flex-wrap:wrap;
	align-items:initial;
	margin-bottom:3rem;
}
body.index #service .service-list li {
	background:#fff;
	border-radius:.5rem;
}
body.index #service .service-list li a:hover { opacity:.5; }
body.index #service .service-list li.big {
	width:calc((100% - 1.5rem) / 2);
	margin-bottom:1.5rem;
	padding:2.5rem 1.3rem;
}
body.index #service .service-list li.sml {
	width:calc((100% - 3rem) / 3);
	padding:2rem 1.3rem;
}
body.index #service li .ttl-box img { width:1.2rem; margin-right:.5rem; }
body.index #service li .ttl-box h3 { font-size:1.5rem; }
body.index #service li .txt {
	font-size:.85rem;
	line-height:1.53;
}
body.index #service li .txt::before {
	content:"";
	width:2.5rem;
	height:2px;
	background:#3b67d5;
	display:block;
	margin:1.2rem 0 1rem;
}

body.index #info { padding:4rem 0; }
body.index #info .blue-btn a {
	line-height:1.9rem;
	width:7rem;
	font-size:.75rem;
}
body.index #info ul.info-list {
	width:42rem;
	border-top:1px solid #d2d2d2;
}
body.index #info ul.info-list li {
	padding:1.5rem 1rem;
	border-bottom:1px solid #d2d2d2;
	display:flex;
	font-size:.8rem;
	letter-spacing:.05em;
	line-height:1.3;
}
body.index #info ul.info-list li time { width:7em; }
body.index #info ul.info-list li .info-title { width:calc(100% - 7em); }
body.index #info ul.info-list li .info-title a {
	overflow:hidden;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:1;
}
body.index #info ul.info-list li .info-title a:hover { opacity:.5; }

body.index .blue-bk {
	position:relative;
	/*padding-top:4rem;*/
}
/*body.index .blue-bk::before {
	content:"";
	width:100%;
	height:39.5rem;
	background:#3b67d5;
	position:absolute;
	top:0;
	left:0;
}*/
body.index #company {
	padding:4rem;
	color:#fff;
}
body.index #company::before {
	content:"";
	width:100vw;
	height:100%;
	background:#3b67d5;
	position:absolute;
	left:0;
  right:0;
  top:0;
  z-index:-1;
  margin:0 calc(50% - 50vw);
}
body.index #company .l-box { position:relative; }
body.index #company .l-box::after {
	content:"";
	width:1px;
	height:100%;
	background:#fff;
	position:absolute;
	right:-4rem;
	top:0;
}
body.index #company .l-box h2 .jp { text-align:left; }
body.index #company .l-box h2 .en {
	text-align:left;
	color:#fff;
}
body.index #company .l-box h2 .jp::after {
	margin:1.5rem 0;
	background:#fff;
}
body.index #company .l-box .sec-desp {
	text-align:left;
	margin-bottom:1.5rem;
}
body.index #company .l-box .blue-btn a {
	background:#fff;
	color:#3b67d5;
	font-size:.85rem;
  line-height:2.35rem;
  width:10.85rem;
  margin:0;
}
body.index #company .l-box .blue-btn a:hover {
	background:#3b67d5;
	color:#fff;
	border:2px solid #fff;
}
body.index #company .company-list {
	width:21.5rem;
	border-top:1px solid #fff;
}
body.index #company .company-list li { border-bottom:1px solid #fff; }
body.index #company .company-list li a {
	color:#fff;
	font-size:1rem;
	padding:.95rem 1rem;
	display:flex;
	justify-content:space-between;
	align-items:center;
}
body.index #company .company-list li a:hover { opacity:.5; }
body.index #company .company-list li img { width:1rem; }
body.index #recruit {
	background:url(../img/recruit_bk.png) no-repeat;
	background-size:cover;
	width:55.4rem;
	height:21.2rem;
	margin-top:5rem;
	justify-content:flex-end;
	margin-bottom:5rem;
}
body.index #recruit .txt-box {
	width:23.5rem;
	margin-right:2rem;
}
body.index #recruit .txt-box h2 .en { text-align:left; }
body.index #recruit .txt-box h2 .jp { text-align:left; }
body.index #recruit .txt-box h2 .jp::after { display:none; }
body.index #recruit .txt-box .sec-desp {
	text-align:left;
	margin:1rem 0 .5rem;
}
body.index #recruit .txt-box .txt {
	font-size:.9rem;
	line-height:1.55;
	margin-bottom:1.5rem;
}
body.index #recruit .txt-box .blue-btn a {
	font-size:.85rem;
  line-height:2.35rem;
  width:10.85rem;
  margin:0;
}

.foot-bnr-box {
	background:#f7f7f7;
	padding:3rem 0;
}
.foot-bnr-box .bnr { width:29rem; }
.foot-bnr-box .bnr a:hover { opacity:.5; }


#btm-business-sub-list-box {
	background:#f7f7f7;
	padding:3rem 0;
}
#btm-business-sub-list-box li { width:calc((100% - 2rem) / 2); }
#btm-business-sub-list-box li a:hover { opacity:.5; }





@media screen and (max-width: 960px) {
	.in-w75 { width:95%; max-width:750px; }
}

@media screen and (max-width: 750px) {
	html { scroll-padding-top:80px !important; }
	.pc-on { display:none; }
	.sp-on { display:initial; }

	body.open { height:100svh; overflow:hidden; }

	.in-w75 { width:86.6%; }
	.in-w60 { width:86.6%; }
	.in-w55 { width:86.6%; }

	#header { height:70px; }
	#header #site-logo { width:212px; margin-left:15px; }
	#header #hamburger {
		display:block;
		width:45px;
		height:45px;
		cursor:pointer;
		z-index:10000;
		position:fixed;
		right:10px;
		top:12px;
	}
	#header #hamburger .inner_line {
		display:block;
		margin:0 auto;
		width:35px;
		height:2px;
		transition:1s;
		background:#404040;
		position:absolute;
		left:5px;
	}
	#header #hamburger .inner_line span { transition:all .4s; }
	#header #hamburger #line1 { top:13px; }
	#header #hamburger #line2 { top:21px; }
	#header #hamburger #line3 { top:29px; }
	#header #hamburger.open #line1 { transform:translateY(6px) rotate(-45deg); background:#fff; }
	#header #hamburger.open #line2 { transform:translateY(-2px) rotate(45deg); background:#fff; }
	#header #hamburger.open #line3 { display:none; }
	#header .sub-nav { display:none; }
	#header .nav-wrap { display:none; }
	#header.open .nav-wrap { display:block; position:fixed; background:#3b67d5; color:#fff; width:100%; height:100vh; top:0; left:0; display:block; }
	#header.open .main-nav { display:block; width:325px; margin:80px auto 0; }
	#header.open .main-nav > li { font-size:15px; border-bottom:1px solid #fff; }
	#header .main-nav li .parent-link > a { padding:15px; display:block; }
	#header .download-btn,
	#header .contact-btn { width:325px; margin:0 auto; border-bottom:1px solid #fff; }
	#header .download-btn a,
	#header .contact-btn a { width:100%; background:none; border-radius:0; padding:15px; font-size:15px; border:0; text-align:left; }
	#header .download-btn a:hover,
	#header .contact-btn a:hover { background:none; color:#fff; }
	#header .main-nav li.hav-child .parent-link a::after { display:none; }
	#header .main-nav li.hav-child .parent-link { position:relative; display:flex; justify-content:space-between; align-items:center; }
	#header .main-nav li.hav-child .parent-link::after { content:"+"; display:block; width:50px; height:100%; font-size:30px; text-align:center; }
	#header .main-nav li.hav-child.open .parent-link::after { content:"−"; }
	#header .main-nav li.hav-child .parent-link a { width:calc(100% - 50px); }
	#header .main-nav li.hav-child .child-box { position:initial; display:none; width:100%; padding:0 0 15px; }
	#header .main-nav li.hav-child.open .child-box { display:block; }
	#header .main-nav li.hav-child .child-box > .flex-box { width:100%; }
	#header .main-nav li.hav-child .child-box .parent-name { display:none; }
	#header .main-nav li.hav-child .child-box .child-pic-list li { font-size:13px; width:100% !important; padding:5px 0; margin-right:0; }
	#header .main-nav li.hav-child .child-box .child-pic-list li .pic { display:none; }
	#header .main-nav li.hav-child .child-box .child-pic-list { display:block; }
	#header .main-nav li.hav-child .child-box .child-link-box { width:100%; padding:0 15px; display:block; }
	#header .main-nav li.hav-child .child-box .child-pic-list li .child-name { font-size:13px; text-align:left; margin-top:0; }
	#header .main-nav li.hav-child .child-box .child-txt-list li { font-size:13px; padding:5px 0; margin-bottom:0; }
	#header .main-nav li.hav-child .child-box .child-txt-list li::before { display:none; }
	#header .main-nav li.hav-child .child-box .child-txt-list { margin:0; }
	#header .main-nav li.hav-child:hover > .child-box { display:none; }
	#header .main-nav li.hav-child.open:hover > .child-box { display:block; }
	#header .main-nav li.hav-child .child-box .child-link-box a:hover { opacity:1; }
	#header .sp-link-list { display:none; }
	#header.open .sp-link-list { display:block; width:325px; margin:20px auto 0; font-size:13px; }
	#header.open .sp-link-list li { padding:10px 15px; }
	#header.open .sp-link-list li.bdr a { padding:10px; border:1px solid #fff; display:inline-block; margin-bottom:5px; }

	.blue-btn a { font-size:14px; width:170px; line-height:40px; }

	body.index #kv-box { height:45.7rem; }
	body.index #kv-box .txt-wrap { padding-top:45px; }
	body.index #kv-box .txt-wrap .en-copy { font-size:39px; }
	body.index #kv-box .txt-wrap .jp-copy { font-size:15px; margin:30px auto; }
	body.index main h2 .en { font-size:13px; }
	body.index main h2 .jp { font-size:23px; }
	body.index main h2 .jp::after { width:30px; margin:25px auto; }
	body.index main .sec-desp { font-size:14px; }
	body.index #service .service-list { display:block; }
	body.index #service .service-list li { width:100% !important; padding:30px 20px !important; margin-bottom:20px; border-radius:7px; }
	body.index #service li .ttl-box h3 { font-size:21px; }
	body.index #service li .txt::before { width:35px; margin:17px 0 15px; }
	body.index #service li .txt { font-size:14px; }
	body.index #service li .ttl-box img { width:17px; margin-right:0; }
	body.index #service .blue-btn a { font-size:14px; width:182px; line-height:43px; }
	body.index #info { display:block; padding:50px 0; }
	body.index #info ul.info-list { width:100%; margin-bottom:30px; margin-top:30px; }
	body.index #info ul.info-list li { display:block; font-size:14px; margin:20px 10px; }
	body.index #info ul.info-list li time { width:100%; margin-bottom:5px; }
	body.index #info ul.info-list li .info-title { width:100%; margin-top:5px; }
	body.index #info .blue-btn a { font-size:14px; width:182px; line-height:43px; }
	body.index #company { display:block; padding:50px 0; }
	/*body.index .blue-bk { padding-top:50px; }*/
	body.index #company .l-box h2 .en { text-align:center; }
	body.index #company .l-box h2 .jp { text-align:center; }
	body.index #company .l-box h2 .jp::after { margin:15px auto; }
	body.index #company .l-box .sec-desp { text-align:center; }
	body.index #company .l-box .blue-btn a { font-size:14px; width:182px; line-height:43px; margin:0 auto; }
	body.index #company .company-list { width:100%; margin-top:30px; }
	body.index #company .company-list li a { font-size:14px; padding:15px; }
	body.index #company .company-list li img { width:17px; }
	body.index #company .l-box::after { display:none; }
	body.index .blue-bk::before { height:92%; }
	body.index #recruit { width:86.6%; height:auto; display:block; border-radius:14px; overflow:hidden; background:#eafcfe; }
	body.index #recruit .txt-box { width:100%; padding:30px; }
	body.index #recruit .txt-box h2 .en { text-align:center; }
	body.index #recruit .txt-box h2 .jp { text-align:center; }
	body.index #recruit .txt-box .sec-desp { font-size:19px; text-align:center; }
	body.index #recruit .pic { display:block; }
	body.index #recruit .txt-box .txt { font-size:14px; }
	body.index #recruit .txt-box .blue-btn a { font-size:14px; width:182px; line-height:43px; margin:0 auto; }

	.foot-bnr-box > .flex-box { display:block; }
	.foot-bnr-box .bnr { width:100%; }
	.foot-bnr-box .bnr1 { margin-bottom:20px; }
	#footer { padding:40px 0 45px; }
	#footer .foot-main-box { width:86.6%; }
	#footer .foot-nav { display:none; }
	#footer .name-box { margin:0 auto; }
	#footer .name-box .logo-mark { width:95px; }
	#footer .name-box .name { font-size:12px; }
	#footer .foot-sub-nav { display:none; }
	#footer small { font-size:10px; margin-top:30px; }

	#btm-business-sub-list-box .business-sub-list { display:block; }
	#btm-business-sub-list-box li { width:100%; }
	#btm-business-sub-list-box li:first-child { margin-bottom:20px; }
}













