@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;700&display=swap');

.sg {
  font-family: "Space Grotesk", sans-serif;	
}

html {
  scroll-behavior: smooth;
}

body {
  font-family: "Noto sans jp", sans-serif;
  line-height: 1.6;
	font-size: 16px;
}

@media screen and (max-width: 550px) {
	body {
		font-size: 15px;
	}
}

body#strengths ,
body#products ,
body#works-list ,
body#about ,
body#contact ,
body#privacy ,
body#news-list,
body#single {
	background-image: url(img/common/bg.jpg);
	background-repeat: no-repeat;
	background-position: top right;
}

* {
  box-sizing: border-box;
}

a {
  text-decoration: none;
	transition: 0.3s all;
}
a:hover {
	opacity: 0.7;
}

img {
  max-width: 100%;
}

.w1200 {
  max-width: 1200px;
	width: 100%;
	margin-left: auto;
	margin-right: auto;
}
.w1400 {
  max-width: 1400px;
	width: 100%;
	margin-left: auto;
	margin-right: auto;
}
.w1600 {
  max-width: 1600px;
	width: 100%;
	margin-left: auto;
	margin-right: auto;
}
.w1920 {
  max-width: 1920px;
	width: 100%;
	margin-left: auto;
	margin-right: auto;
}

.h-18 {
	line-height: 1.8;
}

.pad-1rem {
	padding-left: 1rem;
	padding-right: 1rem;
}
.inblock {
  display: inline-block;
}
.bold {
  font-weight: bold;
}
.grecaptcha-badge {
	visibility: hidden;
}
body#contact .grecaptcha-badge {
	visibility: unset;
}
.flex {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}
.anchor {
	padding-top: 90px;
	margin-top: -90px;
}
.mb-25 {
	margin-bottom: 25px;
}
.mb-40 {
	margin-bottom: 40px;
}
.mb-50 {
	margin-bottom: 50px;
}
.mb-60 {
	margin-bottom: 60px;
}

.pl-40 {
	padding-left: 40px;
}

.bread {
	margin-top: 40px;
}
.bread a,
.bread span {
	display: inline-block;
	font-size: 15px;
	color: black;
}

.gmap-wrap {
  position: relative;
  height: 0;
  padding-bottom: 36.18%;
  overflow: hidden;
	margin-bottom: 20px;
}
.gmap-wrap iframe,
.gmap-wrap object,
.gmap-wrap embed {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

br.sp {
	display: none;
}

@media screen and (max-width: 768px) {
	br.pc {
		display: none;
	}
	br.sp {
		display: block;
	}
}


/************************************************************************************
* header
**************************************************************************************/
body#top .header,
body#recruit .header,
body#recruitment .header,
body#staff .header {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	margin: auto;
	z-index: 10;
}
body#top .header .h-list a {
	color: white;
}

.toppage-logo {
	display: none;
}
body#top .toppage-logo {
	display: block;
}
body#top .lowerpage-logo {
	display: none;
}

.header {
	display: flex;
	justify-content: space-between;
	padding: 25px 1.5rem;
}

.h-list {
	display: flex;
	align-items: center;
	justify-content: space-between;
	max-width: 866px;
	width: calc(95% - 414px);
}

.h-list a {
	font-size: 17px;
	color: black;
}

.h-list .contact-link a {
	color: white;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 230px;
	height: 60px;
	background: linear-gradient(to right, #121C84 0%, #376AB2 50%, #121C84 100%);
	background-size: 200% auto;
	background-position: right center;
	position: relative;
}
.h-list .contact-link a:hover {
	background-position: left center;
	opacity: 1;
}

.h-list .contact-link a::before {
	content: '';
	width: 27px;
	height: 20px;
	background-image: url(img/common/mail.png);
	background-repeat: no-repeat;
	background-size: contain;
	background-position: center;
	margin-right: 15px;
}

.h-list.recsite {
	max-width: 789px;
	width: calc(95% - 584px);
}

.h-links {
	display: flex;
	justify-content: space-between;
}

.h-list .corporate-link  {
	font-size: 17px;
	color: white;
	background-color: black;
	width: 205px;
	height: 60px;
	display: flex;
	align-items: center;
	justify-content: center;
}

.h-list .entry-link {
	position: relative;
	width: 205px;
	height: 60px;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-left: 12px;
	font-size: 25px;
	font-weight: 500;
	color: white;
	background: linear-gradient(to right, #121C84 0%, #376AB2 50%, #121C84 100%);
	background-size: 200% auto;
	background-position: right center;
}
.h-list .entry-link:hover {
	background-position: left center;
	opacity: 1;
}

.h-list .entry-link::before {
	content: '';
	width: 27px;
	height: 20px;
	background-image: url(img/common/mail.png);
	background-repeat: no-repeat;
	background-size: contain;
	background-position: center;
	margin-right: 15px;
}

.h-scroll {
	display: none;
	position: fixed;
	top: 0;
	z-index: 100;
	padding: 15px 1.5rem;
	width: 100%;
	max-width: 1920px;
	margin: auto;
	background-color: white;
	box-shadow: 3px 3px 5px #cfcfcf;
}
.h-scroll.fadeIn {
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.h-logo .sp {
	display: none;
}

.h-scroll .sp {
	display: none;
}


@media screen and (min-width: 1100px) {
	.fadeIn {
		animation-name: fadeInAnime;
		animation-duration: 0.3s;
		animation-fill-mode: forwards;
		opacity: 0;
	}
	@keyframes fadeInAnime{
		from {
			opacity: 0;
		}
		to {
			opacity: 1;
		}
	}
}


@media screen and (max-width: 1500px) {
	.h-list.recsite .corporate-link {
		width: 170px;
		font-size: 16px;
	}
	.h-list.recsite .entry-link {
		width: 170px;
		font-size: 20px;
	}
	.h-list .entry-link::before {
		width: 24px;
		height: 18px;
	}
	.h-list a {
		font-size: 16px;
	}
}

@media screen and (max-width: 1350px) {
	.h-list.recsite a {
		font-size: 1.185185vw;
	}
	.h-list.recsite .corporate-link {
		width: 145px;
		font-size: 14px;
	}
	.h-list.recsite .entry-link {
		width: 145px;
		font-size: 18px;
	}
	.h-list .entry-link::before {
		width: 21px;
		height: 16px;
	}
	.h-logo .sp {
		display: block;
	}
	.h-logo .pc {
		display: none;
	}
	.h-list.recsite {
		width: calc(95% - 418px);	
	}

	.h-scroll .sp {
		display: block;
	}
	.h-scroll .pc {
		display: none;
	}
}


@media screen and (max-width: 1300px) {
	.h-list .contact-link a {
		width: 190px;
	}
	.h-list a {
		font-size: 1.230769vw;
	}
}

@media screen and (max-width: 1100px) {
	.h-scroll {
		display: flex;
		position: sticky !important;
		top: 0;
		z-index: 100;
		background-color: white;
		padding: 15px 1.5rem 5px;
		box-shadow: 3px 3px 5px #cfcfcf;
		height: 75px;
	}
	.h-list {
		display: none;
	}
	.header {
		display: none !important;
	}
}
@media screen and (max-width: 550px) {
	.h-scroll {
		padding: 10px 80px 5px 0.5rem;
		align-items: center;
	}
}


/************************************************************************************
* footer
**************************************************************************************/
.f-contact {
	text-align: center;
	background-image: url(img/common/contact-bg.jpg);
	background-repeat: no-repeat;
	background-position: center;
	background-size: cover;
	padding-top: 130px;
	padding-bottom: 150px;
}

.f-contact .ttl {
	color: white;
}
.f-contact .ttl .en {
	font-family: "Space Grotesk", sans-serif;
	font-size: 25px;
	position: relative;
	padding-bottom: 15px;
}
.f-contact .ttl .en::after {
	position: absolute;
	content: '';
	width: 30px;
	height: 1px;
	background-color: white;
	left: 0;
	right: 0;
	bottom: 0;
	margin: auto;
}
.f-contact .ttl .jp {
	position: relative;
	font-size: 38px;
	font-weight: 500;
	margin-top: 12px;
	/* padding-top: 7px; */
}
/* .f-contact .ttl .jp::before {
	position: absolute;
	content: '';
	width: 30px;
	height: 1px;
	background-color: white;
	left: 0;
	right: 0;
	top: 0;
	margin: auto;
} */

.f-contact .link-wrap {
	max-width: 700px;
	padding: 40px 0;
	margin: 40px auto 0;
	background-color: white;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
}
.f-contact .link-wrap .tel {
	width: 50%;
}
.f-contact .link-wrap .form {
	width: 50%;
}

.f-contact .tel a {
	font-size: 30px;
}
.f-contact .tel a img {
	display: block;
	margin: auto;
}
.f-contact p {
	text-align: right;
}

.f-contact .form a {
	color: white;
	display: flex;
	justify-content: center;
	align-items: center;
	max-width: 300px;
	width: 100%;
	height: 60px;
	background: linear-gradient(to right, #121C84 0%, #376AB2 50%, #121C84 100%);
	background-size: 200% auto;
	background-position: right center;
	position: relative;
}
.f-contact .form a::before {
	content: '';
	width: 27px;
	height: 20px;
	background-image: url(img/common/mail.png);
	background-repeat: no-repeat;
	background-size: contain;
	background-position: center;
	margin-right: 15px;
}
.f-contact .form a:hover {
    background-position: left center;
    opacity: 1;
}

.f-inner {
	max-width: 1200px;
	margin: auto;
	padding: 70px 0;
	text-align: left;
}

.f-bot {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: flex-start;
	margin-top: 50px;
}

.f-bot .left {
	width: 250px;
	font-size: 18px;
}

.f-bot .right {
	max-width: 816px;
	width: calc(98% - 250px);
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
}

.f-list li {
	margin-bottom: 12px;
}

.f-list li a {
	font-size: 20px;
	color: black;
}

.f-video {
	width: 100%;
	text-align: right;
	margin-top: 15px;
}

.copyright {
	margin-top: 60px;
}

@media screen and (max-width: 1000px) {
	.f-list li a {
		font-size: 18px;
	}
	.f-bot .right .f-list {
		margin-right: 20px;
	}
	.f-bot .right .f-list:last-of-type {
		margin-right: 0;
	}
}

@media screen and (max-width: 768px) {
	.f-contact .ttl .jp {
		font-size: 32px;
	}
	.f-contact .ttl .en {
		font-size: 21px;
	}
	.f-contact {
		padding-top: 100px;
		padding-bottom: 120px;
	}
	.f-contact .link-wrap {
		padding: 40px 1rem;
	}
	.f-contact .link-wrap .tel {
		width: 100%;
	}
	.f-contact .link-wrap .form {
		width: 100%;		
	}
	.f-contact .form a {
		margin: 30px auto 0;
	}
	.f-bot .right .f-list {
		display: none;
	}
	.f-bot .left {
		width: 100%;
	}
	.f-bot .right {
		width: 100%;
	}
	.f-inner {
		max-width: 300px;
		margin: auto;
	}
	.f-inner img {
		display: block;
		margin: auto;
	}
	.copyright {
		text-align: center;
	}
}
@media screen and (max-width: 550px) {
	.f-contact {
		padding-top: 80px;
		padding-bottom: 100px;
	}
	.f-contact .ttl .jp {
		font-size: 28px;
	}
	.f-contact .ttl .en {
		font-size: 18px;
	}
}


/************************************************************************************
* 共通
**************************************************************************************/

.top-section {
	margin: auto;
	width: 100%;
	height: 550px;
	display: flex;
	align-items: center;
	justify-content: flex-start;
}

.top-section > .w1400 {
	width: 85%;
}
.top-section img {
	display: block;
}
.top-section img.sp,
.top-section-rec img.sp {
	display: none;
}

.top-section .en {
	font-size: 110px;
	line-height: 1.2;
	margin-bottom: 15px;
}
.top-section .en.small {
	font-size: 80px;
	line-height: 1.2;
	margin-bottom: 20px;
}
.top-section .en,
.top-section .en span {
	font-weight: 500;
}

.top-section .jp {
	font-size: 25px;
	color: #376ab2;
	margin-top: 10px;
}

.top-section-rec {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	padding-top: 120px;
	height: 613px;
	background-image: url(img/recruitment/top-bg.jpg);
	background-repeat: no-repeat;
	background-position: center;
	background-size: cover;
	margin-bottom: 45px;
}
.top-section-rec .jp {
	font-size: 25px;
	color: #376ab2;
	margin-top: 10px;
}

.bread {
	max-width: 1400px;
	margin: 0 auto 130px;
	width: 100%;
}
/* .bread .w1400 {
	width: 85%;
} */

span.slash {
	padding: 0 7px;
}

.f-space {
	display: block;
	width: 100%;
	height: 200px;
}

.cmn-ttl1 {
	margin-bottom: 45px;
}
.cmn-ttl1 .en {
	font-family: "Space Grotesk", sans-serif;
	font-size: 70px;
	font-weight: 500;
	line-height: 1;
}
.cmn-ttl1 .jp {
	font-size: 16px;
	color: #376ab2;
	font-weight: 500;
	/* margin-top: 7px; */
}


.cmn-ttl2 {
	margin-bottom: 25px;
}
.cmn-ttl2 .en {
	font-size: 55px;
	line-height: 1.1;
	font-weight: 500;
}
.cmn-ttl2 .jp {
	font-size: 15px;
	color: #376ab2;
	font-weight: 500;
}
.cmn-ttl2.white .en,
.cmn-ttl2.white .jp {
	color: white;
}
.cmn-ttl3 {
	font-size: 45px;
	font-weight: bold;
	margin-bottom: 30px;
}
.cmn-ttl3 span {
	font-weight: bold;
	color: #376ab2;
}


.sec-mb {
	margin-bottom: 150px;
}

.blue-txt {
	color: #376ab2;
}


.link-box {
	position: relative;
	color: white;
	display: flex;
	align-items: center;
	width: 300px;
	height: 60px;
	background: linear-gradient(to right, #121C84 0%, #376AB2 50%, #121C84 100%);
	background-size: 200% auto;
	background-position: right center;
	font-size: 17px;
	font-family: "Noto sans jp", sans-serif;
	text-align: left;
	padding: 10px 20px;
	pointer-events: auto;
	transition: 0.3s all;
}
.link-box:hover {
	background-position: left center;
	opacity: 1;
}
.link-box::before {
	position: absolute;
	content: '';
	width: 50px;
	height: 1px;
	right: 20px;
	top: 0;
	bottom: 0;
	margin: auto;
	background-color: #8C95C6;
	z-index: 2;
}
.link-box::after {
	position: absolute;
	content: '';
	width: 11px;
	height: 11px;
	background-color: white;
	right: 64px;
	top: 0;
	bottom: 0;
	margin: auto;
	border-radius: 50%;
	z-index: 3;
	transition: 0.3s all;
}
.link-box:hover::after {
	transform: translateX(50px);
}

.link-box.long {
	width: 600px;
	height: 80px;
}


@media screen and (max-width: 1000px) {
	.top-section-rec {
		height: 450px;
		padding-top: 0;
	}
	.top-section-rec > .w1400 {
		width: 85%;
		margin-left: auto;
		margin-right: auto;
	}
	.top-section {
		height: 450px;
	}
	.cmn-ttl1 .en {
		font-size: 55px;
	}
	.cmn-ttl2 .en{
		font-size: 45px;
	}
	.cmn-ttl3 {
		font-size: 40px;
	}
}
@media screen and (max-width: 768px) {
	#strengths .top-section img { width: 418px; }
	#products .top-section img { width: 398px; }
	#works-list .top-section img { width: 256px; }
	#about .top-section img { width: 245px; }
	#contact .top-section img { width: 327px; }
	#privacy .top-section img { width: 570px; }
	#news-list .top-section img { width: 200px; }
	#single .top-section img { width: 200px; }
	#staff .top-section-rec img { width: 210px; }
	#recruitment .top-section-rec img { width: 437px; }

	.sec-mb {
		margin-bottom: 100px;
	}

	.top-section-rec .jp {
		font-size: 20px;
	}

	.top-section {
		height: 340px;
	}
	.top-section .jp {
		font-size: 20px;
	}
	.top-section > .w1400 {
		display: inline-block;
		width: auto;
	}
	.top-section img.pc,
	.top-section-rec img.pc {
		display: none;
	}
	.top-section img.sp,
	.top-section-rec img.sp {
		display: block;
	}
	.bread {
		margin-bottom: 100px;
		text-align: right;
	}
	.top-section-rec {
		height: 340px;
	}
	/* .bread .w1400 {
		width: 100%;
	} */
	.link-box {
		width: 90%;
		max-width: 300px;
		font-size: 16px;
		height: 55px;
	}
	.link-box.long {
		width: 90%;
		max-width: 600px;	
	}
	.link-box::before {
		width: 40px;
	}
	.link-box::after {
		right: 52px;
	}
	.link-box:hover::after {
		transform: translateX(38px);
	}
	.cmn-ttl1 .en {
		font-size: 45px;
	}
	.cmn-ttl2 {
		margin-bottom: 20px;
	}
	.cmn-ttl2 .en {
		font-size: 40px;
	}
	.cmn-ttl3 {
		font-size: 34px;
		margin-bottom: 20px;
	}
	.f-space {
		height: 150px;
	}
	.top-section-rec > .w1400 {
		display: inline-block;
		width: auto;
	}
}
@media screen and (max-width: 550px) {
	#strengths .top-section img { width: 239px; }
	#products .top-section img { width: 227px; }
	#works-list .top-section img { width: 146px; }
	#about .top-section img { width: 140px; }
	#contact .top-section img { width: 187px; }
	#privacy .top-section img { width: 325px; }
	#news-list .top-section img { width: 115px; }
	#single .top-section img { width: 115px; }
	#staff .top-section-rec img { width: 120px; }
	#recruitment .top-section-rec img { width: 250px; }

	.link-box.long {
		height: 70px;
	}
	 .cmn-ttl1 {
		margin-bottom: 30px;
	 }
	 .cmn-ttl1 .en {
		font-size: 32px;
	 }
	 .cmn-ttl1 .jp {
		font-size: 15px;
	 }
	.cmn-ttl3 {
		font-size: 28px;
	}
	.f-space {
		height: 120px;
	}
	.top-section-rec {
		height: 250px;
	}
	.top-section-rec img {
		max-width: 95%;
		margin-left: auto;
		margin-right: auto;
	}
	.top-section-rec .jp {
		font-size: 16px;
		width: 95%;
		margin-left: auto;
		margin-right: auto;
	}
	.top-section {
		height: 250px;
	}
	.top-section img {
		max-width: 95%;
		margin-left: auto;
		margin-right: auto;
	}
	.top-section .jp {
		font-size: 16px;
		width: 95%;
		margin-left: auto;
		margin-right: auto;
	}
	 .bread {
		margin-bottom: 70px;
	 }
	 .bread a,
	 .bread span {
		font-size: 13px;
	 }
	 span.slash {
		padding: 0 2px;
	 }
	 .sec-mb {
		margin-bottom: 70px;
	 }
}


/************************************************************************************
* TOPページ
**************************************************************************************/
.toppage-top {
	position: relative;
	width: 100%;
	height: 1080px;
	background-image: url(img/top/top-img.jpg);
	background-repeat: no-repeat;
	background-size: cover;
	background-position:center;
	display: flex;
	justify-content: flex-start;
	align-items: center;
	padding: 110px 2rem 0;
}

.main-logo {
	position: absolute;
	max-width: 1500px;
	width: 78%;
	top: 0;
	bottom: 20px;
	margin: auto;
	z-index: 1;
}

.toppage-top .inner {
	width: 85%;
	max-width: 1400px;
	margin: auto;
	color: white;
	z-index: 2;
	position: relative;
}

.toppage-top .inner .p1 {
	opacity: 0;
	font-size: 20px;
	font-weight: 500;
	margin-bottom: 60px;
	animation: fadein 1s linear 4s forwards;
}

.toppage-top .inner .p2 {
	opacity: 0;
	font-size: 25px;
	font-weight: 500;
	margin-top: 55px;
	animation: fadein 1s linear 4s forwards;
}

@keyframes fadein {
	0% {
		opacity: 0;
	}
	100% {
		opacity: 1;
	}
}

.toppage-top .space {
	display: block;
	height: 25px;
	width: 100%;
}

.toppage-top .svg1,
.toppage-top .svg2 {
	max-width: 100%;
}


.top1 {
	background-image: url(img/top/ab2.jpg);
	background-repeat: no-repeat;
	background-position: center;
	padding-right: 1rem;
}
.top1 .flex {
	padding-top: 140px;
}
.top1 .flex figure {
	width: 42.85%;
	margin-bottom: -80px;
}
.top1 .flex figure img {
	display: block;
	margin: auto;
}
.top1 .flex .txtarea {
	width: 47%;
	padding-top: 70px;
	padding-bottom: 20px;
}
.top1 .txtarea p {
	font-size: 20px;
	margin-bottom: 50px;
	line-height: 1.8;
}

.top2 {
	background-image: url(img/top/st4.jpg);
	background-repeat: no-repeat;
	background-position: top center;
	background-size: auto;
	padding-top: 200px;
	padding-bottom: 150px;
}

.top2-ttl {
	text-align: center;
	color: white;
	margin-bottom: 50px;
}
.top2-ttl .en {
	font-size: 75px;
	font-weight: 500;
	line-height: 1;
}
.top2-ttl .jp {
	font-size: 17px;
	font-weight: 500;
}
.top2-list {
	background-color: white;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: flex-start;
	padding-top: 50px;
	margin-bottom: 80px;
}
.top2-list li {
	position: relative;
	width: 33.33%;
	padding: 0 4%;
}
.top2-list li::after {
	content: '';
	position: absolute;
	top: 0;
	bottom: 0;
	right: 0;
	width: 1px;
	background-color: #dcdddd;
}
.top2-list li:last-child::after {
	display: none;
}
.top2-list li img {
	display: block;
}
.top2-list .num {
	font-size: 20px;
	color: #376ab2;
	font-weight: 500;
	margin-top: 30px;
	line-height: 1;
}
.top2-list .ttl {
	font-size: 32px;
	font-weight: 500;
	line-height: 1.2;
	padding: 10px 0 15px;
}
.top2-list .ttl span {
	font-weight: 500;
}
.top2-list p {
	line-height: 1.8;
}
.top2 .link-box {
	margin: auto;
}

.top3 .left,
.top3 .right {
	width: 50%;
	min-height: 700px;
	border-right: solid white 1px;
	background-repeat: no-repeat;
	background-position: center;
	background-size: cover;
	color: white;
	text-align: center;
	display: flex;
	align-items: center;
	justify-content: center;
}
.top3 .left {
	background-image: url(img/top/pro.jpg);
}
.top3 .right {
	background-image: url(img/top/fac.jpg);
}

.top3 .ttl .en {
	position: relative;
	font-size: 25px;
	padding-bottom: 12px;
	margin-bottom: 15px;
}
.top3 .ttl .en::before {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	margin: auto;
	width: 30px;
	height: 1px;
	background-color: white;
}
.top3 .ttl .jp {
	font-size: 38px;
	font-weight: 500;
	margin-bottom: 30px;
}

.top3 .txt {
	max-width: 510px;
	width: 100%;
	margin: auto;
	text-align: left;
	display: block;
	font-size: 20px;
	margin-bottom: 45px;
}
.top3 .link-box {
	margin: auto;
}

.top4 {
	padding-top: 110px;
	padding-bottom: 140px;
	background-image: url(img/top/work4.jpg);
	background-repeat: no-repeat;
	background-position: top 40px center;
	background-size: auto;
}
.top4-flex {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	margin-bottom: 30px;
}
.top4-ttl {
	width: 250px;
}
.top4-ttl .en {
	font-size: 55px;
	font-weight: 500;
	line-height: 1;
}
.top4-ttl .jp {
	font-size: 15px;
	color: #376ab2;
	font-weight: 500;
}
.top4-flex .txt {
	font-size: 20px;
	padding-top: 22px;
	width: calc(100% - 250px);
}

.top4-list {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	grid-column-gap: 1.5%;
	margin-bottom: 60px;
}
.top4-list img {
	display: block;
}
.top4-list .tag {
	display: block;
	margin: 22px auto 14px;
}
.top4-list .tag span {
	display: inline-block;
	width: 100px;
	text-align: center;
	color: #376ab2;
	border: solid 1px #376ab2;
	font-size: 15px;
	margin-right: 10px;
}
.top4-list .name {
	font-size: 25px;
	line-height: 1.3;
}
.top4 .link-box {
	margin: auto;
}

.top5 {
	padding-top: 150px;
	padding-bottom: 150px;
	background-image: url(img/top/rec2.jpg);
	background-repeat: no-repeat;
	background-position: center;
	background-size: cover;
}

.top5 .w1600 {
	position: relative;
}

.top5 .txtarea {
	width: 50%;
	margin-right: auto;
	margin-left: 0;
}

.top5 .txt {
	line-height: 1.8;
	margin-bottom: 50px;
	font-size: 20px;
}
.top5 .imgarea {
	position: absolute;
	top: 100px;
	right: 0;
	width: 45%;
	max-width: 670px;
}

.top-news-wrap {
	position: absolute;
	bottom: 0;
	right: 0;
	background-color: rgba(255,255,255,0.8);
	display: flex;
	flex-wrap: wrap;
	padding: 40px 30px 30px 40px;
}
.top-news-wrap .ttl {
	margin-right: 30px;
}
.top-news-wrap .ttl .en {
	font-size: 39px;
	font-weight: 500;
	line-height: 1.2;
}
.top-news-wrap .ttl .jp {
	font-size: 15px;
	color: #376ab2;
}

.top-news-list li {
	margin-bottom: 15px;
}
.top-news-list li:last-child {
	margin-bottom: 0;
}
.top-news-list li a {
	position: relative;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	padding-right: 90px;
}
.top-news-list li a::before {
	position: absolute;
	content: '';
	width: 50px;
	height: 1px;
	right: 20px;
	top: 0;
	bottom: 0;
	margin: auto;
	background-color: #c9caca;
	z-index: 2;
}
.top-news-list li a::after {
	position: absolute;
	content: '';
	width: 11px;
	height: 11px;
	background-color: #376ab2;
	right: 64px;
	top: 0;
	bottom: 0;
	margin: auto;
	border-radius: 50%;
	z-index: 3;
	transition: 0.3s all;
}
.top-news-list li a:hover::after {
	transform: translateX(50px);
}
.top-news-list .post-date {
	color: #376ab2;
	font-size: 15px;
	margin-right: 20px;
}
.top-news-list .post-title {
	font-size: 18px;
	color: black;
}



@media screen and (max-width: 1200px) {
	.toppage-top {
		height: 900px;
		padding-bottom: 80px;
	}
}
@media screen and (max-width: 1100px) {
	.toppage-top {
		padding-top: 0;
		padding-bottom: 100px;
	}
	.top2 {
		padding-top: 140px;
	}
}
@media screen and (max-width: 1000px) {
	.top1 .flex .txtarea {
		width: 50%;
	}
	.top1 .txtarea p {
		font-size: 17px;
	}
	.top3 .left,
	.top3 .right {
		min-height: 550px;
	}
	.top4-list .name {
		font-size: 22px;
	}
}
@media screen and (max-width: 768px) {
	.toppage-top .inner {
		width: 100%;
	}
	/* .toppage-top {
		height: 750px;
	} */
	.main-logo {
		width: 90%;
		left: 0;
		right: 0;
		margin: auto;
	}
	.top1 {
		padding-left: 1rem;
		background-position: top center;
	}
	.top1 .flex figure {
		order: 2;
		width: 100%;
		margin: 0 auto 50px;
	}
	.top1 .flex .txtarea {
		width: 100%;
		padding-top: 0;
		padding-bottom: 45px;
	}
	.top1 .txtarea p {
		margin-bottom: 35px;
	}
	.top1 .link-box {
		margin-left: auto;
	}
	.top2 {
		padding-top: 110px;
	}

	.top2-list {
		margin-bottom: 30px;
	}
	.top2-list li p {
		padding-bottom: 25px;
	}

	.top2-ttl .en {
		font-size: 58px;
	}
	.top2-list li {
		width: 100%;
		padding-bottom: 25px;
		margin-bottom: 50px;
	}
	.top2-list li::after {
		bottom: 0;
		left: 0;
		right: 0;
		top: auto;
		margin: auto;
		width: auto;
		height: 1px;
	}
	.top2-list li:last-child {
		margin-bottom: 0;
	}
	.top2-list li img {
		margin: auto;
	}
	.top2-list .ttl {
		font-size: 27px;
	}
	.top3 .left, .top3 .right {
		width: 100%;
		border-right: none;
		border-bottom: solid 1px white;
	}
	.top3 .right {
		border-bottom: none;
	}
	.top4-ttl {
		width: 100%;
	 }
	 .top4-ttl .en {
		font-size: 48px;
	 }
	 .top4-flex .txt {
		font-size: 18px;
		width: 100%;
	 }
	.top4-list {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
	}
	.top4-list li:not(:last-child) {
		margin-bottom: 30px;
	}

	.top5 {
		padding-top: 100px;
		padding-bottom: 120px;
	}
	.top5 .txtarea {
		width: 100%;
	}
	.top5 .txt {
		font-size: 18px;
	}

	.top5 .imgarea {
		position: relative;
		top: 0;
		width: 100%;
		margin: 50px auto 0;
	}
}
@media screen and (max-width: 630px) {
	.toppage-top .inner .p2 {
		font-size: 3.9682539vw;
	}
}
@media screen and (max-width: 600px) {
	.toppage-top {
		flex-wrap: wrap;
    align-items: flex-end;
    padding: 0;
		height: auto;
	}
	.toppage-top .inner {
		padding: 120px 1.5rem 180px;
    margin: unset;
	}
	.main-logo {
		top: 20%;
		bottom: auto;
	}
	.top-news-wrap {
		left: 0;
		padding: 30px 4% 20px;
		position: relative;
    width: 100%;
	}
	.top-news-wrap .ttl {
		width: 100%;
		margin-bottom: 20px;
		margin-right: 0;
	}
	.top-news-wrap .ttl .en,
	.top-news-wrap .ttl .jp {
		display: inline-block;
	}
	.top-news-wrap .ttl .en {
		margin-right: 15px;
		font-size: 30px;
	}
	.top-news-wrap .ttl .jp {
		font-size: 14px;
	}
	.top-news-list .post-date {
		width: 100%;
		font-size: 14px;
	}
	.top-news-list .post-title {
		width: 100%;
		font-size: 16px;
	}
	.top-news-list {
		width: 100%;
	}
	.top-news-list li a {
		padding-right: 60px;
	}
	.top-news-list li a::before {
		width: 40px;
		right: 10px;
		top: 34px;
		bottom: auto;
	}
	.top-news-list li a::after {
		right: 42px;
		top: 29px;
		bottom: auto;
	}
	.top-news-list li a:hover::after {
		transform: translateX(34px);
	}
}
@media screen and (max-width: 550px) {
	/* .toppage-top {
		padding-left: 1.5rem;
		padding-right: 1.5rem;
		height: 136.3636vw;
	} */
	.toppage-top .inner .p1 {
		font-size: 3.6363636vw;
		margin-bottom: 10.909090vw;
	}
	.toppage-top .inner .p2 {
		margin-top: 10vw;
	}
	.top1 .flex {
		padding-top: 110px;
	}
	.top2-ttl .en {
		font-size: 42px;
	}
	.top2-list .ttl {
		font-size: 24px;
	}
	
	.top3 .ttl .en {
		font-size: 20px;
	}
	.top3 .ttl .jp {
		font-size: 30px;
	}
	.top3 .txt {
		font-size: 17px;
	}
	.top3 .left, .top3 .right {
		min-height: 450px;
	}
	.top3 .ttl .jp {
		font-size: 26px;
	}
	.top3 .ttl .en {
		font-size: 17px;
	}
	.top4 {
		padding-bottom: 110px;
	}
	.top4-ttl .en {
		font-size: 42px;
	}
	.top4-flex .txt {
		font-size: 17px;
	}
	.top4-list .tag {
		margin: 15px auto 8px;
	}
	.top4-list .name {
		font-size: 21px;
	}
	.top5 .txt {
		font-size: 16px;
	}
	.top4-list .tag span {
		font-size: 14px;
	}
}


/************************************************************************************
* strengths
**************************************************************************************/

.str-num {
	font-size: 32px;
	line-height: 1;
	color: #376ab2;
}

.str-ttl {
	font-size: 32px;
	font-weight: 500;
	margin-bottom: 45px;
}
.str-ttl span {
	font-weight: 500;
}

.str-txt {
	margin-bottom: 60px;
}

.str-slider .slick-slide {
	padding: 0 10px;
}

.pickup {
  font-family: "Space Grotesk", sans-serif;
	width: 100%;
	padding: 80px 4%;
	background: linear-gradient(to bottom right, #DDEBF7 0%, #fff 80%);	
}

.pickup .ttl {
	font-size: 32px;
	font-weight: 500;
	color: #376ab2;
	margin-bottom: 30px;
	text-align: center;
}

.pickup .list {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: flex-start;
	max-width: 1042px;
	width: 100%;
	margin: auto;
}

.pickup .list li {
	width: 31.86%;
}

.certification {
	padding: 80px 4%;
	background: linear-gradient(to bottom right, #121C84 0%, #376AB2 100%);	
}

.certification .ttl {
	font-size: 25px;
	color: white;
	text-align: center;
	margin-bottom: 30px;
}

.certification .list {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr 1fr;
	column-gap: 1%;
	row-gap: 12px;
}

.certification .list li {
	min-height: 66px;
	font-size: 18px;
	color: #376ab2;
	background-color: white;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 10px;
}


@media screen and (max-width: 768px) {
	.str-num {
		font-size: 26px;
	}
	.str-ttl {
		font-size: 26px;
		margin-bottom: 30px;
	}
	.str-txt {
		margin-bottom: 40px;
	}
	.str-slider .slick-slide {
		padding: 0 5px;
	}
	.pickup {
		padding: 65px 4%;
	}
	.certification .list {
		grid-template-columns: 1fr 1fr 1fr;
	}
	.certification .list li {
		font-size: 17px;
	}
}

@media screen and (max-width: 550px) {
	.pickup .list li {
		width: 100%;
		margin-bottom: 25px;
	}
	.pickup .list li:last-child {
		margin-bottom: 0;
	}
	.pickup .list li img {
		display: block;
		margin: auto;
	}
	.str-ttl {
		font-size: 21px;
	}
	.pickup {
		padding: 50px 4%;
	}
	.certification {
		padding: 50px 2%;
	}
	.certification .list {
		grid-template-columns: 1fr;
		row-gap: 6px;
	}
	.certification .list li {
		font-size: 16px;
		min-height: 60px;
	}
	.certification .ttl {
		font-size: 21px;
	}
}


/************************************************************************************
* products and equipment
**************************************************************************************/

.pro-list {
	display: grid;
	grid-template-columns: 1fr 1fr;
	column-gap: 4.2%;
	row-gap: 70px;
}
.pro-list .ttl {
	font-size: 32px;
	font-weight: 500;
	margin-top: 15px;
	margin-bottom: 10px;
}
.pro-list p {
	line-height: 1.8;
}

.equip-list {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	column-gap: 3%;
	row-gap: 50px;
}
.equip-list .ttl {
	margin-top: 20px;
	font-weight: 500;
	font-size: 22px;
}
.equip-list p {
	margin-top: 6px;
}


@media screen and (max-width: 768px) {
	.pro-list {
		column-gap: 3%;
		row-gap: 50px;
	}
	.pro-list .ttl {
		font-size: 24px;
		margin-top: 7px;
    margin-bottom: 5px;
	}
	.pro-list p {
		line-height: 1.6;
	}

	.equip-list {
		grid-template-columns: 1fr 1fr;
		column-gap: 2%;
		row-gap: 35px;
	}
	.equip-list .ttl {
		font-size: 20px;
		margin-top: 10px;
		line-height: 1.3;
	}
}

@media screen and (max-width: 550px) {
	.pro-list {
		column-gap: 2%;
		row-gap: 35px;
	}
	.pro-list .ttl {
		font-size: 19px;
	}
	.pro-list p {
		line-height: 1.5;
	}

	.equip-list {
		row-gap: 25px;
	}
	.equip-list .ttl {
		font-size: 17px;
		margin-top: 5px;
	}
	.equip-list p {
		margin-top: 2px;
	}
}



/************************************************************************************
* about
**************************************************************************************/

.abo1 figure {
	position: relative;
	width: 465px;
	padding-top: 100px;
	padding-left: 20px;
}

.abo1 .txtarea {
	width: calc(96% - 465px);
	padding-top: 130px;
}

.abo1 figure .mes {
	position: absolute;
	top: 0;
	left: 0;
}

.abo1-ttl {
	font-size: 32px;
	font-weight: 500;
	padding-bottom: 25px;
}
.abo1-ttl span {
	font-weight: 500;
}

.abo1 .txtarea p {
	line-height: 2;
	padding-bottom: 20px;
}

.president-name {
	display: block;
	margin-left: auto;
	margin-right: 0;
}

.cmn-table {
	margin-bottom: 120px;
}

.cmn-table,
.cmn-table tbody {
	display: block;
	width: 100%;
}

.cmn-table tr {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}

.cmn-table th {
	position: relative;
	width: 200px;
	font-size: 20px;
	padding: 35px 15px;
	text-align: left;
}
.cmn-table th::after {
	content: '';
	position: absolute;
	width: 100%;
	height: 1px;
	left: 0;
	right: 0;
	bottom: 0;
	margin: auto;
	background-color: #b3b3b3;
	background: linear-gradient(to right, #376AB2 0%, #121D84 100%);
}

.cmn-table td {
	position: relative;
	width: calc(100% - 200px);
	padding: 38px 15px 35px;
}
.cmn-table td::after {
	content: '';
	position: absolute;
	width: 100%;
	height: 1px;
	left: 0;
	right: 0;
	bottom: 0;
	margin: auto;
	background-color: #b3b3b3;
}

.cmn-table .map {
	position: relative;
	display: inline-block;
	margin-left: 10px;
}
.cmn-table .map::before {
	content: url(img/about/pin.png);
	margin-right: 3px;
}

.abo3-list li {
	position: relative;
	display: flex;
	justify-content: space-between;
	max-width: 420px;
	width: 100%;
	padding-left: 20px;
	margin-bottom: 17px;
}
.abo3-list li:last-child {
	margin-bottom: 0;
}
.abo3-list li::before {
	content: '';
	position: absolute;
	left: 2px;
	top: 12px;
	width: 4px;
	height: 4px;
	border-radius: 50%;
	background-color: #376ab2;
}
.abo3-list li::after {
	content: '';
	position: absolute;
	left: 30px;
	right: 10px;
	top: 12px;
	margin: auto;
	height: 1px;
	background-image: linear-gradient(to right, rgb(0, 0, 0), rgb(0, 0, 0) 2px, transparent 2px, transparent 5px);
	background-size: 8px 10px;
	background-position: bottom;
	background-repeat: repeat-x;
}

.abo3-list li .worker,
.abo3-list li .num {
	position: relative;
	z-index: 5;
}
.abo3-list li .worker::before,
.abo3-list li .num::before {
	content: '';
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	top: 0;
	margin: auto;
	background-color: white;
	z-index: -1;
}
.abo3-list li .worker::before { right: -10px; }
.abo3-list li .num::before { left: -5px; }

.abo4-list {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: flex-start;
}
.abo4-list li {
	position: relative;
	width: 49%;
	padding-left: 20px;
	padding-bottom: 10px;
}
.abo4-list li::before {
	content: '';
	position: absolute;
	left: 2px;
	top: 12px;
	width: 4px;
	height: 4px;
	border-radius: 50%;
	background-color: #376ab2;
}


@media screen and (max-width: 1000px) {
	.abo1 figure {
		width: 44%;
	}
	.abo1 .txtarea {
		width: 52%;
	}
	.abo1-ttl {
		font-size: 26px;
	}
	.abo1-ttl br {
		display: none;
	}
}
@media screen and (max-width: 768px) {
	.abo1 figure {
		max-width: 355px;
		width: 80%;
		margin-left: auto;
		margin-right: auto;
		padding-top: 75px;
	}
	.abo1 figure .mes {
		width: 260px;
	}
	.abo1 .txtarea {
		width: 100%;
		max-width: 600px;
		padding-top: 30px;
		margin: auto;
	}
	.abo1-ttl {
		font-size: 24px;
		padding-bottom: 12px;
	}
	.abo1-ttl br {
		display: block;
	}
	.abo1 .txtarea p {
		line-height: 1.7;
		padding-bottom: 10px;
	}
	.president-name {
		width: 220px;
	}

	.cmn-table th,
	.cmn-table td {
		width: 100%;
	}
	.cmn-table th {
		font-size: 17px;
		padding: 15px 10px 0;
		font-weight: bold;
	}
	.cmn-table th::after {
		display: none;
	}
	.cmn-table td {
		padding: 5px 10px 15px 15px;
	}
}

@media screen and (max-width: 550px) {
	.abo1 figure .mes {
		width: 200px;
	}
	.abo1 figure {
		padding-top: 54px;
	}
	.abo1-ttl {
		font-size: 20px;
	}
	/* .abo1 .txtarea .blue-txt {
		padding-bottom: 5px;
	} */
	.abo1 .txtarea p {
		line-height: 1.8;
	}
	.president-name {
		width: 200px;
	}
	.abo1 .txtarea p .inblock {
		display: inline;
	}

	.cmn-table {
		margin-bottom: 70px;
	}
	.cmn-table th {
		font-size: 16px;
	}

	.abo3-list li {
		padding-left: 15px;
	}
	.abo4-list li {
		width: 100%;
	}
}




/************************************************************************************
* contact
**************************************************************************************/

.con-lead {
	display: flex;
	align-items: center;
	justify-content: space-around;
	margin-bottom: 100px;
	background-color: #f1f3f3;
	padding: 20px;
	min-height: 180px;
}
.con-lead .inner {
	max-width: 940px;
	width: 100%;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-around;
}
.con-lead .t1 {
	font-size: 20px;
	margin-right: 10px;
}
.con-lead .t2 {
	font-size: 15px;
	margin-left: 10px;
}

.con-ttl {
	position: relative;
	display: flex;
	align-items: center;
	height: 80px;
	font-size: 30px;
	padding-left: 45px;
	margin-bottom: 60px;
}
.con-ttl::before {
	content: '';
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	margin: auto;
	width: 9px;
	background: linear-gradient(to bottom, #121D84 0%, #376AB2 100%);	
}

body#contact form {
	padding: 70px 4% 90px;
	background-color: #F2F4F4;
}

.con-table-wrap {
	width: 100%;
	/* padding: 70px 4% 90px;
	background-color: #F2F4F4; */
}
.con-table,
.con-table tbody {
	display: block;
	width: 100%;
}
.con-table tr {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 35px;
}
.con-table tr.start {
	align-items: flex-start;
}
.con-table tr.start th {
	padding-top: 9px;
}
.con-table th {
	width: 240px;
	font-size: 20px;
	color: #376ab2;
	text-align: left;
	display: flex;
	align-items: center;
	justify-content: flex-start;
}
.con-table th p {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	font-weight: 500;
}
.con-table td {
	width: calc(98% - 240px);
}
.con-table input[type="text"],
.con-table input[type="email"],
.con-table input[type="tel"],
.con-table textarea {
	background-color: white;
	width: 100%;
	font-size: 16px;
  font-family: "Noto sans jp", sans-serif;
	padding: 15px 20px;
	border-radius: 10px;
	border: none;
}
.con-table input[type="radio"] {
	margin-right: 5px;
}
.radio-wrap {
	background-color: white;
	width: 100%;
	font-size: 16px;
  font-family: "Noto sans jp", sans-serif;
	padding: 15px 20px;
	border-radius: 10px;
	border: none;
}
span.hissu {
	display: inline-block;
	margin-left: 15px;
	color: white;
	background-color: #c1272d;
	font-size: 13px;
	padding: 0 7px;
}
.con-table-wrap .wpcf7-list-item {
	margin: 0 2em 0 0;
}
.accept-wrap {
	padding-top: 10px;
}
.accept-wrap .wpcf7-list-item-label {
	cursor: pointer;
  display: flex;
  justify-content: center;
}
.accept-wrap .wpcf7-list-item-label span {
	text-decoration: underline;
	font-size: 20px;
	padding-left: 10px;
	color: #376ab2;
}
.accept-wrap input[type="checkbox"] {
  opacity: 0;
  position: absolute;
  pointer-events: none;
}
/* チェック前のチェックボックス */
.accept-wrap input[type="checkbox"] + .wpcf7-list-item-label::before {
  background: white;
  border: 2px solid #376ab2;
  content: "";
  margin-bottom: auto;
  margin-right: 0.2em;
  margin-top: auto;
  height: 20px;
  width: 20px;
}
/* チェック後のチェックボックス */
.accept-wrap input[type="checkbox"] + .wpcf7-list-item-label::after {
  border-right: 6px solid #0080cc;
  border-bottom: 3px solid #0080cc;
  content: "";
  display: block;
  height: 20px;
  left: 0.5em;
  margin-top: -20px;
  opacity: 0;
  position: absolute;
  top: 40%;
  transform: rotate(45deg);
  width: 9px;
}
.accept-wrap input[type="checkbox"]:checked + .wpcf7-list-item-label::after {
  opacity: 1;
}

.send-btn {
	position: relative;
	width: 300px;
	pointer-events: none;
}
.send-btn::before {
	position: absolute;
	content: '';
	width: 50px;
	height: 1px;
	right: 20px;
	top: 30px;
	margin: auto;
	background-color: #8C95C6;
	z-index: 2;
}
.send-btn::after {
	position: absolute;
	content: '';
	width: 11px;
	height: 11px;
	background-color: white;
	right: 64px;
	top: 25px;
	margin: auto;
	border-radius: 50%;
	z-index: 3;
	transition: 0.3s all;
}
.send-btn:hover::after {
	transform: translateX(50px);
}
.send-btn input {
	position: relative;
	color: white;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 300px;
	height: 60px;
	background: linear-gradient(to right, #121C84 0%, #376AB2 50%, #121C84 100%);
	background-size: 200% auto;
	background-position: right center;
	font-size: 17px;
  font-family: "Noto sans jp", sans-serif;
	margin-top: 20px;
	text-align: left;
	padding: 10px 20px;
	pointer-events: auto;
	transition: 0.3s all;
}
.send-btn input:hover {
	background-position: left center;
	opacity: 1;
}


@media screen and (max-width: 1000px) {
	.con-lead {
		max-width: 800px;
		min-height: auto;
		margin-left: auto;
		margin-right: auto;
	}
	.con-lead .inner {
		display: block;
		text-align: center;
	}
	.con-lead .inner span {
		display: block;
		margin: auto;
	}
	.con-lead .inner img {
		width: 336px;
		margin: 20px auto 10px;
	}
}

@media screen and (max-width: 768px) {
	.con-lead {
		margin-bottom: 70px;
	}
	.con-ttl {
		font-size: 24px;
		height: 60px;
		margin-bottom: 30px;
	}
	.con-table-wrap {
		padding: 60px 4%;
	}
	.con-table th {
		width: 100%;
		font-size: 17px;
		margin-bottom: 7px;
	}
	.con-table td {
		width: 100%;
	}
	.accept-wrap {
		text-align: center;
		padding-top: 50px;
	}
	.accept-wrap .wpcf7-list-item-label span {
		font-size: 18px;
	}
	.accept-wrap input[type="checkbox"] + .wpcf7-list-item-label::before {
		width: 16px;
		height: 16px;
	}
	.accept-wrap input[type="checkbox"] + .wpcf7-list-item-label::after {
		height: 16px;
		width: 5px;
		top: 60%;
	}
	.send-btn {
		margin: auto;
	}
}

@media screen and (max-width: 550px) {
	.con-lead .t1 {
		font-size: 18px;
	}
	.con-lead .inner img {
		width: 250px;
		margin: 15px auto 5px;
	}
	.con-lead .t2 {
		font-size: 14px;
	}
	.con-ttl {
		font-size: 20px;
		padding-left: 25px;
		height: 40px;
		margin-bottom: 25px;
	}
	.accept-wrap .wpcf7-list-item-label span {
		font-size: 16px;
	}
	.con-table-wrap {
		padding-bottom: 20px;
	}
	.con-table input[type="text"],
	.con-table input[type="email"],
	.con-table input[type="tel"],
	.con-table textarea,
	.radio-wrap {
		border-radius: 5px;
	}
	.send-btn input {
		font-size: 16px;
	}
}


/************************************************************************************
* privacy policy
**************************************************************************************/

.priv {
	line-height: 2;
}

.priv .ttl {
	font-size: 25px;
	line-height: 1.5;
	margin-bottom: 5px;
	color: #376ab2;
}

.priv article {
	margin-bottom: 40px;
}

.priv article:last-child {
	margin-bottom: 0;
}


@media screen and (max-width: 768px) {
	.priv .ttl {
		font-size: 21px;
	}
}
@media screen and (max-width: 550px) {
	.priv {
		line-height: 1.8;
	}
	.priv .ttl {
		font-size: 19px;
	}
}


/************************************************************************************
*
* recruit
*
**************************************************************************************/

.rec1 {
	position: relative;
	background-image: url(img/recruit/bg1.jpg);
	background-repeat: no-repeat;
	background-position: center;
	background-size: cover;
	padding-top: 120px;
	overflow: hidden;
}

.rec1 .w1920 {
	position: relative;
	padding-left: 2rem;
	padding-right: 2rem;
}

.rec1 .bg-img {
	position: absolute;
	/* left: -8%; */
	right: 41.4%;
	top: 30px;
	z-index: 1;
	max-width: 65%;
}

.rec1 .inner {
	position: relative;
	max-width: 1650px;
	width: 100%;
	margin: auto;
	padding-top: 138px;
}

.rec_svg1,
.rec_svg2,
.rec_svg3 {
	position: relative;
	display: block;
	z-index: 2;
}
.rec_svg1 { margin-top: 40px; }
.rec_svg2 { margin-top: 35px; }
.rec_svg3 { margin-top: 35px; }

.slider-num {
  font-family: "Space Grotesk", sans-serif;	
	margin-top: 60px;
	width: 100%;
	height: 96px;
}
.slider-num li {
	/* position: relative; */
	/* display: none; */

	position: absolute;
	display: flex;
	align-items: center;
	opacity: 0;
	transition: 1.0s all;

	font-size: 40px;
}
.slider-num li.active {
	transition: 1.5s all;
	opacity: 1;
	/* animation: fadein 1.5s linear forwards; */
}
.slider-num .current {
	position: relative;
	color: white;
	font-weight: bold;
	z-index: 1;
	width: 96px;
	height: 96px;
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 2;
}
.slider-num .current::before {
	content: '';
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	margin: auto;
	background: linear-gradient(to right, #376AB2 0%, #121C84 100%);
	border-radius: 50%;
	z-index: -1;
}
.slider-num .next {
	font-weight: 500;
}
.slider-num hr {
	display: block;
	width: 122px;
	height: 1px;
	border-top: solid 1px black;
	margin: auto 28px;
}

.slider-rec {
	position: absolute;
	top: 130px;
	right: 0;
	width: 54%;
}

.slider-rec .slick-dots {
	display: flex;
	justify-content: flex-end;
}

.slider-rec .slick-dots li button:before {
	content: '';
	background-color: black;
	border-radius: 50%;
}

.slider-rec .slick-dots li {
	margin: 0 8px;
}

.slider-rec .slick-dots li,
.slider-rec .slick-dots li button,
.slider-rec .slick-dots li button:before {
	width: 11px;
	height: 11px;
}

.wh-ttl {
	margin-top: 130px;
	width: 100%;
}

@media screen and (max-width: 1550px) {
	.rec1 .bg-img { max-width: 81%; }
	.rec_svg1 { width: 42.5%; }
	.rec_svg2 { width: 33.5%; }
	.rec_svg3 { width: 26.7%; }
	.wh-ttl { margin-top: 8.387vw; }
}

.rec2 {
	position: relative;
	max-width: 1920px;
	margin: 200px auto 80px;
	overflow: hidden;
}
.rec2-img {
	position: absolute;
	left: 0;
	top: 0;
	width: 53.5%;
	z-index: 1;
}
.rec2-box {
	position: relative;
	width: 1154px;
	margin-top: 158px;
	margin-left: auto;
	color: white;
	background: linear-gradient(to right, #376AB2 0%, #121C84 100%);
	padding: 140px 1rem 140px 350px;
}
@media screen and (max-width: 1920px) {
	.rec2-box {
		width: calc(1154px - (1920px - 100%)/2);
		padding-left: 18.2%;
	}
}
.rec2-box .inner {
	max-width: 530px;
}
.rec2-txt {
	line-height: 2;
}

.rec3 {	
	background-image: url(img/top/work4.jpg);
	background-repeat: no-repeat;
	background-position: top center;
	background-size: cover;
	padding-top: 120px;
}
.rec3-flex {
	display: flex;
	align-items: flex-start;
	flex-wrap: wrap;
	margin-bottom: 40px;
}
.rec3-ttl {
	width: 250px;
}
.rec3-ttl .en {
	font-size: 55px;
	font-weight: 500;
	line-height: 1;
}
.rec3-ttl .jp {
	font-size: 15px;
	color: #376ab2;
	font-weight: 500;
}
.rec3-flex .txt {
	font-size: 20px;
	padding-top: 22px;
	width: calc(100% - 250px);
}

.rec3-list {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	column-gap: 1.8%;
	margin-bottom: 80px;
}
.rec3-list img {
	display: block;
}
.rec3-list .name {
	font-size: 35px;
	color: #376ab2;
	font-weight: 500;
	display: flex;
	justify-content: center;
	align-items: center;
	background-color: #f1f3f3;
	min-height: 180px;
}

.rec3 .link-box {
	margin: auto;
}

.rec4 {
	position: relative;
	margin-top: 180px;
	background-image: url(img/recruit/info3.jpg);
	background-repeat: no-repeat;
	background-position: center;
	background-size: cover;
	padding: 120px 1rem 115px;
	margin-bottom: 260px;
}
.rec4 .txt {
	line-height: 1.8;
	margin-bottom: 45px;
}

.rec4 .info1 {
	position: absolute;
	top: -195px;
	right: 0;
}
.rec4 .info2 {
	position: absolute;
	left: 51%;
	bottom: -200px;
}

.rec4 .w1600 {
	position: relative;
}
.rec4 .txtarea {
	position: relative;
	z-index: 5;
	text-shadow: 1px 1px 1px white;
}



@media screen and (max-width: 1200px) {
	.rec4 .info1 {
		width: 30vw;
		top: 80px;
	}
	.rec4 .info2 {
		width: 30vw;
		left: auto;
		right: 10%;
	}
}

@media screen and (max-width: 1000px) {
	.rec1 {
		padding-top: 70px;
	}
	.wh-ttl {
		margin-top: 6vw;
	}
	.rec3-list .name {
		min-height: 18vw;
	}
}

@media screen and (max-width: 768px) {
	.rec1 {
		padding-top: 90px;
	}
	.slider-num {
		display: none;
	}
	.slider-rec {
		position: relative;
		top: 0;
    width: 95%;
    margin: 80px auto 0;
	}
	.rec1 .bg-img {
		top: 0;
		left: 0;
		right: 0;
		margin: auto;
		max-width: 90%;
	}
	.rec1 .inner {
		padding-top: 0;
	}
	.rec_svg1 {
		width: 80%;
		max-width: 660px;
		margin-top: 0;
		margin-left: 10%;
	}
	.rec_svg2 {
		width: 63%;
		max-width: 520px;
		margin-left: 10%;
	}
	.rec_svg3 {
		width: 50%;
		max-width: 414px;
		margin-left: 10%;
	}

	.rec2 {
		display: flex;
		flex-wrap: wrap;
		margin-top: 0;
		margin-bottom: 40px;
	}
	.rec2-img {
		position: relative;
		order: 2;
		width: 80%;
		margin: auto;
		left: auto;
		top: auto;
		margin-top: -40px;
	}
	.rec2-box {
		width: 100%;
		padding: 120px 1rem 100px;
		display: flex;
		align-items: center;
		justify-content: center;
		margin-top: 0;
	}

	.rec3-flex {
		display: block;
	}
	.rec3-ttl .en {
		font-size: 48px;
	}
	.rec3-flex .txt {
		width: 100%;
		font-size: 18px;
	}

	.rec4 .txtarea {
		margin-bottom: 50px;
		text-shadow: none;
	}
	.rec4 .info1 {
		display: inline-block;
		position: relative;
    top: auto;
    right: auto;
    width: 48%;
		margin-right: 2%;
	}
	.rec4 .info2 {
		display: inline-block;
    position: relative;
    width: auto;
    right: auto;
    bottom: auto;
		width: 48%;
	}
	.rec4 .link-box {
		margin-left: auto;
	}

	.rec4 {
		margin-bottom: 0;
		padding-bottom: 150px;
	}
}

@media screen and (max-width: 550px) {
	.rec_svg1 {
		width: 100%;
		margin-left: 0;
	}
	.rec_svg2 {
		width: 78.78%;
		margin-left: 0;
	}
	.rec_svg3 {
		width: 62.72%;
		margin-left: 0;
	}
	
	.rec3-ttl .en {
		font-size: 42px;
	}
	.rec3-flex .txt {
		font-size: 17px;
	}
	.rec3-list {
		grid-template-columns: 1fr;
		row-gap: 40px;
		max-width: 450px;
		margin: 0 auto 50px;
	}
	.rec3-list .name {
		min-height: 80px;
		font-size: 28px;
	}
}


/************************************************************************************
* recruitment
**************************************************************************************/

.recruit-ttl {
	font-size: 32px;
	font-weight: 500;
	margin-bottom: 60px;
}

.recruit1 .cmn-table tr:first-child th::before {
	content: '';
	position: absolute;
	width: 100%;
	height: 1px;
	left: 0;
	right: 0;
	top: 0;
	margin: auto;
	background: linear-gradient(to right, #376AB2 0%, #121D84 100%);
}

.recruit1 .cmn-table tr:first-child td::before {
	content: '';
	position: absolute;
	width: 100%;
	height: 1px;
	left: 0;
	right: 0;
	top: 0;
	margin: auto;
	background-color: #b3b3b3;
}


@media screen and (max-width: 768px) {
	.recruit1 .cmn-table tr:first-child td::before {
		display: none;	
	}
	.recruit-ttl {
		font-size: 26px;
	}
}
@media screen and (max-width: 550px) {
	.recruit-ttl {
		font-size: 24px;
	}
}


/************************************************************************************
* staff
**************************************************************************************/

.staff1 {
	padding-bottom: 230px;
}

.staff-list li {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	margin-bottom: 110px;
}
.staff-list li:last-child {
	margin-bottom: 0;
}

.staff-list figure {
	width: 514px;
}
.staff-list figure img {
	display: block;
}

.staff-list .txtarea {
	width: calc(95% - 514px);
	padding-top: 55px;
}

.staff-list .ttl span {
	display: inline-block;
	position: relative;
	color: white;
	font-size: 32px;
	font-weight: 500;
	padding: 10px 0 10px 15px;
	margin-bottom: 10px;
	line-height: 1.2;
}
.staff-list .ttl span::before {
	content: '';
	position: absolute;
	top: 0;
	bottom: 0;
	right: 0;
	left: 0;
	margin: auto;
	background: linear-gradient(to right, #376AB2 0%, #121D84 100%);
	z-index: -1;
}

.staff-list .init {
	font-size: 35px;
	font-weight: 500;
	color: #376ab2;
	line-height: 1.2;
	margin-top: 30px;
	margin-bottom: 70px;
}

.staff-list .txt {
	line-height: 2;
}

@media screen and (max-width: 1200px) {
	.staff-list figure {
		width: 44.6%;
	}
	.staff-list .txtarea {
		width: 51%;
	}
	.staff-list .ttl span {
		font-size: 26px;
	}
	.staff-list .init {
		margin-top: 20px;
		margin-bottom: 50px;
	}
	.staff-list .txt {
		line-height: 1.8;
	}
}

@media screen and (max-width: 768px) {
	.staff1 {
		padding-bottom: 180px;
	}
	.staff-list figure {
		width: 65%;
		max-width: 350px;
	}
	.staff-list .init {
		text-align: right;
		margin-top: 0;
		margin-right: 20px;
	}
	.staff-list li {
		flex-wrap: wrap;
		justify-content: center;
		margin-bottom: 80px;
	}
	.staff-list .txtarea {
		width: 100%;
		max-width: 500px;
		padding-top: 30px;
	}
	.staff-list .init {
		margin-bottom: 30px;
		font-size: 28px;
	}
	.staff-list .ttl span {
		font-size: 23px;
	}
}

@media screen and (max-width: 550px) {
	.staff1 {
		padding-bottom: 150px;
	}
	.staff-list .ttl span {
		font-size: 19px;
	}
	.staff-list .init {
		margin-bottom: 30px;
		font-size: 24px;
	}
}


/************************************************************************************
* NEWS
**************************************************************************************/

.news-list li {
	border-bottom: solid 1px #dcdddd;
	padding: 20px 20px;
	min-height: 130px;
	margin-bottom: 50px;
}
.news-list li:last-child {
	margin-bottom: 0;
}
.news-list .post-date {
	color: #376ab2;
	font-size: 15px;
	margin-bottom: 5px;
}
.news-list .post-title {
	font-size: 20px;
	color: black;
}

.wp-pagenavi {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	margin-top: 90px;
}
.wp-pagenavi a {
	color: #376ab2;
}
.wp-pagenavi a,
.wp-pagenavi span {
	min-width: 60px;
	height: 60px;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 1px solid white;
	font-size: 20px;
	margin: 5px 7px;
}
.wp-pagenavi a:hover:not(.current) {
	border-color: #666666;
	opacity: 1;
}
.wp-pagenavi span.current {
	color: white;
	background: linear-gradient(to right, #376AB2 0%, #121D84 100%);
}

.wp-pagenavi .previouspostslink,
.wp-pagenavi .nextpostslink {
	position: relative;
	color: white;
	background-color: white;
	border: solid 1px #666666;
}
.wp-pagenavi .previouspostslink::before,
.wp-pagenavi .nextpostslink::before {
	content: '';
	position: absolute;
	border-style: solid;
	top: 0;
	bottom: 0;
	height: 0px;
	margin: auto;
}
.wp-pagenavi .previouspostslink::before {
  border-width: 6px 10px 6px 0;
  border-color: transparent #666666 transparent transparent;
	left: 12px;
}
.wp-pagenavi .nextpostslink::before {
	border-width: 6px 0 6px 10px;
	border-color: transparent transparent transparent #666666;
	right: 12px;
}
.wp-pagenavi .previouspostslink::after,
.wp-pagenavi .nextpostslink::after {
	content: '';
	position: absolute;
	top: 0;
	bottom: 0;
	right: 0;
	left: 0;
	margin: auto;
	width: 30px;
	height: 1px;
	background-color: #666666;
}

.wp-pagenavi a.first,
.wp-pagenavi a.last {
	border: solid 1px #666;
	color: #666;
	padding: 0 3px;
}

.entry-header {
	padding-bottom: 20px;
	min-height: 130px;
	border-bottom: solid 1px #dcdddd;
}
.entry-header .date {
	font-size: 15px;
	color: #376ab2;
	margin-bottom: 5px;
}
.entry-title {
	font-size: 30px;
}

.entry-header .inner,
.entry-content .inner {
	max-width: 1160px;
	display: block;
	margin: auto;
}

.entry-content {
	padding-top: 80px;
	padding-bottom: 80px;
	margin-bottom: 80px;
	border-bottom: solid 1px #dcdddd;
}

#single .link-box {
	margin: auto;
}


@media screen and (max-width: 768px) {
	.news-list .post-title {
		font-size: 18px;
	}
	.wp-pagenavi a,
	.wp-pagenavi span {
		height: 40px;
		min-width: 40px;
	}
	.wp-pagenavi a.first,
	.wp-pagenavi a.last {
		font-size: 16px;
	}
	.wp-pagenavi .previouspostslink::before {
		left: 7px;
	}
	.wp-pagenavi .nextpostslink::before {
		right: 7px;
	}
	.wp-pagenavi .previouspostslink::after,
	.wp-pagenavi .nextpostslink::after  {
		width: 20px;
	}
	.wp-pagenavi a,
	.wp-pagenavi span {
		font-size: 18px;
	}

	.entry-title {
		font-size: 24px;
	}
	.entry-content {
		padding-top: 60px;
		padding-bottom: 60px;
		margin-bottom: 70px;
	}
}

@media screen and (max-width: 550px) {
	.news-list li {
		margin-bottom: 30px;
	}
	.news-list .post-date {
		font-size: 14px;
	}
	.news-list .post-title {
		font-size: 17px;
	}
	.entry-title {
		font-size: 21px;
		line-height: 1.3;
	}
}


/************************************************************************************
* works
**************************************************************************************/

.works-list button {
	cursor: pointer;
	display: block;
	background: none;
	border: none;
	padding: 0;
	margin: 0;
}
.works-list > li {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	/* align-items: flex-start; */
	border-bottom: solid 1px #b3b3b3;
	padding-top: 80px;
	padding-bottom: 80px;
}
.works-list .left {
	width: 50%;
	padding: 15px 3% 0;
	display: flex;
	flex-wrap: wrap;
}
.works-list .right {
 width: 50%;
}
.works-list img {
	display: block;
}

.works-list .txtarea {
	margin-bottom: 40px;
}
.works-list .sp-txt {
	display: none;
}

.works-ttl {
	font-size: 30px;
	font-weight: 500;
	padding-bottom: 10px;
}
.tagarea {
	width: 100%;
}
.tagarea span {
	display: inline-block;
	font-size: 15px;
	color: #376ab2;
	min-width: 100px;
	padding: 2px 10px;
	border: solid 1px #376ab2;
	margin-right: 10px;
	margin-bottom: 10px;
	text-align: center;
}
.switch-list {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	column-gap: 3%;
	row-gap: 20px;
	margin-top: auto;
}
.switch-list li img {
	display: block;
	object-fit: cover;
}


@media screen and (max-width: 1000px) {
	.works-list .left {
		padding-top: 0;
	}
}

@media screen and (max-width: 768px) {
	.works-list .sp-txt {
		display: block;
		width: 100%;
	}
	.works-list .txtarea {
		display: none;
	}
	.works-list .left {
		order: 2;
		width: 100%;
		margin-top: 12px;
		padding-left: 0;
		padding-right: 0;
	}
	.works-list .right {
		width: 100%;
		margin: auto;
	}
	.switch-list {
		grid-template-columns: 1fr 1fr 1fr 1fr;
	}

	.works-ttl {
		display: inline-block;
		font-size: 22px;
		padding-bottom: 8px;
		line-height: 1.3;
		margin-right: 10px;
	}
	.tagarea {
		display: inline-block;
		width: auto;
		padding-bottom: 10px;
	}
	.tagarea span {
		font-size: 13px;
		min-width: auto;
		padding: 0 8px;
	}
}
@media screen and (max-width: 550px) {
	.tagarea span {
		margin-right: 6px;
	}
	.switch-list {
		grid-template-columns: 1fr 1fr 1fr;
		row-gap: 10px;
	}
	.wp-pagenavi a,
	.wp-pagenavi span {
		min-width: 30px;
		height: 30px;
		margin-left: 4px;
		margin-right: 4px;
	}
	.wp-pagenavi .previouspostslink::before {
		left: 3px;
		border-width: 5px 8px 5px 0;
	}
	.wp-pagenavi .nextpostslink::before {
		right: 3px;
		border-width: 5px 0 5px 8px;
	}
}


/************************************************************************************
* フェードイン
**************************************************************************************/

.fadeIn {
  opacity: 0;
}
.fadeIn.view {
  animation-duration: 1.0s;
  opacity: 1;
}
.fadeIn.view.rightIn { animation-name: fadein-Right; }
.fadeIn.view.leftIn { animation-name: fadein-Left; }
.fadeIn.view.upIn { animation-name: fadein-Up; }
.fadeIn.view.downIn { animation-name: fadein-Down; }

@keyframes fadein-Up {
  from {
    opacity: 0;
    transform: translateY(75px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes fadein-Right {
  from {
    opacity: 0;
    transform: translateX(-75px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}
@keyframes fadein-Left {
  from {
    opacity: 0;
    transform: translateX(75px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}
@keyframes fadein-Down {
  from {
    opacity: 0;
    transform: translateY(-75px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}