@charset "UTF-8";

* {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
	font-family: 'Noto Sans JP', sans-serif;
	font-weight: 400;
	color: #222222;
	line-height: 1;
}
p {
	font-size: 16px;
	line-height: 28px;
}
ul li {
	list-style: none;
}
img {
	width: 100%;
}
.flex {
	display: flex;
	justify-content: space-between;
}

.hover {
    transition: .4s;
}
.sp {
	display: none !important;
}

/* font-family */
.ff-montserrat {
    font-family: 'Montserrat', sans-serif;
}

body {
	position: relative;
	min-height: 100vh;
	box-sizing: border-box;
}

/* header */
header {
	position: fixed;
	width: 100%;
	left: 0;
	top: 0;
	padding: 0 0 0 40px;
	display: flex;
	justify-content: space-between;
	z-index: 10;
    height: 98px;
}
header h1 {
    margin-top: 43px;
    width: 431px;
    height: 43.63px;
}
header .header_menu-btn {
	cursor: pointer;
	position: absolute;
	top: 47px;
	right: 35px;
	width: 43px;
	height: 33px;
	z-index: 10;
}
header .header_menu-btn span {
	display: block;
	background: #003284;
	width: 43px;
	height: 3px;
	transition: .5s;
    box-shadow: 0 0 7px rgb(255 255 255 / 45%);
}
header .header_menu-btn span:nth-of-type(2) {
	width: 34px;
	margin-top: 11px;
}
header .header_menu-btn span:nth-of-type(3) {
	width: 28px;
	margin-top: 11px;
}
header .open.header_menu-btn span:nth-of-type(1) {
	transform: rotate(45deg);
	width: 43px;
	position: relative;
	top: 13px;
}
header .open.header_menu-btn span:nth-of-type(2) {
	opacity: 0;
}
header .open.header_menu-btn span:nth-of-type(3) {
	margin-top: 0;
	width: 43px;
	transform: rotate(-45deg);
	position: relative;
	top: -3px;
}
header .header_menu {
	position: fixed;
	right: -400px;
	top: 0;
	transition: .8s;
	display: block;
	width: 400px;
	height: 100vh;
    background-color: rgba(255,255,255,0.85);
    padding: 170px 74px 100px 85px;
    opacity: 0;
}
/* open後 */
header .header_menu.open {
    right: 0;
    opacity: 1;
}

.header_link nav ul > li + li {
	margin-top: 19.5px;
}
.header_link nav a {
	text-decoration: none;
}
.header_link nav a:hover {
	opacity: .7;
}
.header_link nav a span.ttl-en {
	color: #222222;
	font-size: 26px;
	display: block;
	letter-spacing: .7px;
	font-weight: bold;
	line-height: 1;
}
.header_link nav a span.ttl-jp {
	font-size: 14px;
	color: #607AA5;
	display: block;
    margin-top: 4px;
    line-height: 1;
}
.header_link .ttl-home {
	width: 85px;
}
.header_link .ttl-service {
	width: 122px;
}
.header_link .ttl-works {
	width: 110px;
}
.header_link .ttl-product {
	width: 142px;
}
.header_link .ttl-company {
	width: 147px;
}
.header_link .ttl-news {
	width: 85px;
}
.header_btns {
	margin-top: 69px;
}
.header_btns a {
	display: block;
	text-decoration: none;
    width: 190px;
    line-height: 44px;
    height: 44px;
    border-radius: 22px;
    color: #ffffff;
    font-size: 14px;
    text-align: center;
    margin: 14px auto 0 0;
    letter-spacing: 3px;
    font-weight: 500;
}
.header_btns .header_btn-recruit a {
    background: url(../images/common/ico-recruit.svg) no-repeat center left 21px;
    background-color: #003284;
    padding-left: 11px;
}
.header_btns .header_btn-recruit a:hover {
	background-color: #222;
}
.header_btns .header_btn-contact a {
    padding-left: 19px;
    background: url(../images/common/ico-mail-white.png) no-repeat top 11px left 21px;
    background-color: #222222;
    background-size: 23px;
}
.header_btns .header_btn-contact a:hover {
	background-color: #003284;
}

/* h2 */
main h2 {
	text-align: center;
	margin-top: 39px;
}
main h2 span.ttl-en {
	display: block;
	font-weight: bold;
	font-size: 46px;
	text-align: center;
	color: #fff;
	line-height: 1;
    letter-spacing: 3.4px;
}
main h2 span.ttl-jp {
	display: block;
    text-align: center;
    color: #fff;
    font-size: 20px;
    line-height: 1;
    font-weight: 100;
    letter-spacing: 6px;
    margin-top: 14px;
}

/* footer */
footer {
	position: absolute;
	bottom: 0;
	width: 100%;
	background: #EAEEF3;
}
footer .footer_inner {
	max-width: 1100px;
	width: 100%;
	margin: 0 auto;
    padding: 50px 0 44px;
}
footer .footer_logo {
	width: 238px;
    margin-bottom: 38px;
}
.footer_col {
	display: flex;
	justify-content: space-between;
}
.footer-link {
	display: flex;
    width: 100%;
    justify-content: space-between;
}
.footer_menu {
	width: 45%;
	padding-right: 20px;
}
.footer_menu dt,
.footer_contact dt {
	line-height: 1;
}
.footer_menu ul {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}
.footer_menu ul > li {
	width: 50%;
    margin-top: 13.5px;
    padding-right: 20px;
}
.footer_menu ul > li a:hover {
    opacity: .7;
}
.footer_contact {
	width: 55%;
	padding-right: 20px;
}
.footer_contact dt {
	margin-bottom: 17px;
}
.footer_bnr {
	position: relative;
	width: 40%;
	min-width: 463px;
	overflow: hidden;
	line-height: 1;
	height: 166px;
}
.footer_bnr .bnr-recruit-txt {
	position: absolute;
	top: 50%;
	left: 50%;
	margin: -46px 0 0 -62.5px;
	width: 125px;
	height: 82px;
	z-index: 1;
}
.footer_bnr img.bnr-recruit {
	transition: .5s all;
}
.footer_bnr a:hover {
	line-height: 1;
}
.footer_bnr a:hover img.bnr-recruit {
	transform:scale(1.05,1.05);
}
.footer-link dt span {
	color: #607AA5;
	font-weight: bold;
	font-size: 14px;
    letter-spacing: .7px;
}
.footer_col ul li a {
	color: #003284;
	font-size: 15px;
	text-decoration: none;
	letter-spacing: 2.2px;
}
.footer_contact-tel,
.footer_contact-fax {
	padding-left: 25px;
	position: relative;
}
.footer_contact-fax {
    margin-top: 11px;	
}
footer .tel,
footer .fax {
	font-weight: bold;
	color: #003284;
	font-size: 22px;
	letter-spacing: 2px;
}
footer .ico-tel {
	width: 20px;
	position: absolute;
	top: 1px;
	left: 0;
}
footer .ico-fax {
	width: 20px;
	position: absolute;
	top: 2px;
    left: -2px;
}
.footer_contact-note {
	color: #003284;
	font-size: 12px;
	padding-left: 25px;
	margin-top: 3px;
    letter-spacing: 1.2px;
}
.footer_contact-btn a {
	display: block;
    max-width: 207px;
    width: 100%;
    line-height: 38px;
    height: 38px;
    border-radius: 19px;
    color: #ffffff;
    font-size: 13px;
    text-align: center;
    text-decoration: none;
    margin: 14px auto 0 0;
    letter-spacing: 2.4px;
    font-weight: 300;
    background: url(../images/common/ico-mail-white.png) no-repeat center left 28px;
    background-color: #003284;
    background-size: 21px;
    padding-left: 17px;
}
.footer_contact-btn a:hover {
	color: #003284;
	background: url(../images/common/ico-mail-blue.png) no-repeat center left 28px;
    background-size: 21px;
	background-color: #fff;
}
footer .copylight {
	background: #fff;
	text-align: center;
	height: 44px;
	line-height: 44px;
}
footer small {
	font-size: 12px;
	color: #003284;
	line-height: 1;
    letter-spacing: .6px;
    font-weight: 100;
}
html {
	position: relative;
}
/*#pagetop {
	position: relative;
}*/
.pagetop {
	bottom: 0;
	left: 50%;
	margin-left: 564px;
	width: 50px;
	height: 50px;
}
.pagetop a {
	transition: .3s;
}
.pagetop a:hover {
	opacity: .7;
}

.pankuzu {
	padding-left: 40px;
	margin-bottom: 32px;
}
.pankuzu ul {
	display: flex;
}
.pankuzu ul li {
    padding-right: 12px;
}
.pankuzu ul li a {
	text-decoration: none;
	font-size: 16px;
    padding-right: 12px;
}
.pankuzu ul li span {
	font-size: 16px;
}
.next-block {
	height: 330px;
}
.next-block a {
	position: relative;
	display: flex;
    text-align: center;
    align-items: center;
    height: 330px;
    justify-content: center;
    text-decoration: none;
}
.next-block a:before {
	content: "";
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(6,47,114,.7);
    transition: .5s all;
}
.next-block a:hover:before {
	background: rgba(6,47,114,.5);
}
.next-block .next-text {
	position: relative;
	display: inline-block;
	padding-right: 54px;
	background: url(../images/common/ico-arrow-next.png) no-repeat center right;
}
.next-block .next-text * {
	color: #fff;
}
.next-block .next-text p {
	text-align: left;
    margin-bottom: 5px;
    font-size: 16px;
    line-height: 1;
    font-weight: 100;
    letter-spacing: 1.5px;
}
.next-block a span {
    display: block;
    text-align: center;
    margin-top: 5px;
}
.next-block a span.ttl-en {
	font-weight: bold;
    letter-spacing: 4.3px;
	font-size: 46px;
}
.next-block a span.ttl-jp {
    letter-spacing: 4.8px;
	font-size: 20px;
}
.next-block .next {
	width: 45px;
}

.movie-wrap {
    text-align: center;
    width: 600px;
    margin: 0 auto;
}
.movie-wrap iframe {
    width: 600px;
    height: 360px;
}
.company-loop {
	display: none;
}
@media screen and (min-width:768px) and (max-width:1100px) {
	.pagetop {
	    margin-left: 0;
	    left: auto;
	    right: 10px;
	}
}
@media screen and (max-width:768px) {
	body.fixed {
		position: fixed;
		left: 0;
		width: 100%;
	}
	.sp {
		display: block !important;
	}
	.pc {
		display: none !important;
	}
	/* header */
	header {
		padding: 0;
	    height: auto;
	}
	header h1 {
	    margin: 4.2vw 0 0 3.6vw;
	    width: 56vw;
		height: auto;
	}
	header .header_menu-btn {
		top: 5.3vw;
		right: 3vw;
		width: 7.47vw;
		height: 5.07vw;
	}
	header .header_menu-btn span {
	    box-shadow: 0 0 1vw rgb(255 255 255 / 45%);
		width: 7.47vw;
		height: 0.53vw;
	}
	header .header_menu-btn span:nth-of-type(2) {
		width: 5.87vw;
		margin-top: 1.7vw;
	}
	header .header_menu-btn span:nth-of-type(3) {
		width: 4.8vw;
		margin-top: 1.7vw;
	}

	header .header_menu {
		width: 100%;
		position: fixed;
	    padding: 24.5vw 27.5vw 18vw;
	    right: -100vw;
	    height: 100%;
	}
	/* open後 */
	header .header_menu.open {
		overflow: auto;
	}
	header .header_menu.open .header_menu-btn span {
		height: .35vw;
	}
	header .open.header_menu-btn span:nth-of-type(1) {
	    width: 6vw;
	    top: 2.5vw;
	}
	header .open.header_menu-btn span:nth-of-type(3) {
	    width: 6vw;
	    top: -.2vw;
	}
	.header_link nav {
		padding: 0 3.55vw;
	}
	.header_link nav ul > li + li {
		margin-top: 5.4vw;
	}
	.header_link nav a span.ttl-en {
		font-size: 6.67vw;
		letter-spacing: .2vw;
	}
	.header_link nav a span.ttl-jp {
		font-size: 2.93vw;
	    line-height: 1;
	    margin-top: 0;
	    letter-spacing: .4vw;
	}
	.header_link .ttl-home {
		width: 22vw;
	}
	.header_link .ttl-service {
		width: 30.5vw;
	}
	.header_link .ttl-works {
		width: 27.4vw;
	}
	.header_link .ttl-product {
		width: 36vw;
	}
	.header_link .ttl-company {
		width: 37.5vw;
	}
	.header_link .ttl-news {
		width: 21.5vw;
	}
	.header_btns {
		margin-top: 12.3vw;
	}
	.header_btns a {
	    width: 100%;
	    line-height: 11.73vw;
	    height: 11.73vw;
	    border-radius: 6vw;
	    font-size: 3.73vw;
	    margin: 3.73vw auto 0 0;
	    letter-spacing: .5vw;
	}
	.header_btns .header_btn-recruit a {
	    background: url(../images/common/ico-recruit.svg) no-repeat center left 4.5vw;
	    background-color: #003284;
	    padding-left: 2vw;
	}
	.header_btns .header_btn-contact a {
		padding-left: 4vw;
		background: url(../images/common/ico-mail-white.png) no-repeat top 2.77vw left 4.3vw;
		background-size: 5.5vw;
		background-color: #222222;
	}

	/* h2 */
	main h2 {
	    margin-top: 6vw;
	}
	main h2 span.ttl-en {
		font-size: 8vw;
	    letter-spacing: .6vw;
	}
	main h2 span.ttl-jp {
		font-size: 3.2vw;
	    letter-spacing: 1vw;
	    margin-top: 1vw;
	}

	/* footer */
	footer .footer_inner {
	    padding: 13.3vw 10vw 13.4vw;
	}
	footer .footer_logo {
		width: 60.53vw;
	    margin: 0 auto 14.5vw;
	}
	.footer_col {
		display: block;
	}
	.footer-link {
		display: block;
	}
	.footer_menu {
		width: 100%;
		border-bottom: 1px solid #fff;
		padding-bottom: 14.4vw;
		padding-right: 0;
	}
	.footer_menu ul {
		justify-content: center;
	}
	.footer_menu ul > li {
	    text-align: center;
		width: calc(100% / 3);
	    margin-top: 3.8vw;
        padding-right: 0;
	}
	.footer_menu ul > li:nth-of-type(2) {
		order: 4;
	}
	.footer_menu ul > li:nth-of-type(3) {
		order: 2;
	}
	.footer_menu ul > li:nth-of-type(4) {
		order: 5;
	}
	.footer_menu ul > li:nth-of-type(5) {
		order: 3;
	}
	.footer_menu ul > li + li {
		position: relative;
	}
	.footer_menu ul > li + li:before {
		position: absolute;
		content: "";
		display: block;
		width: 1px;
		height: 3.2vw;
		background: #CDD5E3;
		top: 1.41vw;
		letter-spacing: 0;
	}
	.footer_menu ul > li:nth-of-type(2):before {
		display: none;
	}
	.footer_contact {
		padding-right: 0;
		width: 100%;
	    padding-top: 7.2vw;
	}
	.footer_menu dt,
	.footer_contact dt {
		text-align: center;
	}
	.footer_contact dt {
		margin-bottom: 5.8vw;
	}
	.footer_bnr {
		width: 100%;
		min-width: 100%;
		line-height: 0;
		margin-top: 10vw;
		height: 100%;
	}
	.footer-link dt {
		text-align: center;
	}
	.footer-link .footer_menu dt {
	    margin-bottom: .5vw;
	}
	.footer-link .footer_contact dt {
	    margin-bottom: 5.2vw;
	}
	.footer-link dt span {
		font-size: 4.27vw;
		letter-spacing: .4vw;
	}
	.footer_col ul li a {
		font-size: 3vw;
		letter-spacing: .9vw;
		opacity: 1;
	}
	.footer_contact-num {
		padding: 0 7vw;
	}
	.footer_contact-tel,
	.footer_contact-fax {
		padding-left: 9vw;
	}
	.footer_contact-fax {
	    margin-top: 2vw;
	}
	.footer_contact-num span {
		font-size: 6.93vw;
		letter-spacing: .7vw;
	}
	footer .tel,
	footer .fax {
		text-decoration: none;
		font-size: 6.93vw;
		letter-spacing: 0.7vw;
	}
	footer .fax {
	    letter-spacing: 0.55vw;
	}
	footer .ico-tel {
		width: 6vw;
		top: 1.3vw;
		left: 0.1vw;
	}
	footer .ico-fax {
		width: 5.4vw;
		top: 1.3vw;
		left: .5vw;
	}
	.footer_contact-note {
		font-size: 3.2vw;
		padding-left: 9.6vw;
		margin-top: .4vw;
		letter-spacing: .3vw;
	}
	.footer_contact-btn a {
	    max-width: 100%;
	    width: 100%;
	    line-height: 12.8vw;
	    height: 12.8vw;
	    border-radius: 6.4vw;
	    font-size: 3.5vw;
	    margin: 6vw auto 0 0;
	    letter-spacing: .9vw;
	    background: url(../images/common/ico-mail-white.png) no-repeat center left 11.8vw;
	    background-color: #003284;
	    background-size: 7vw;
	    padding-left: 2.5vw;
	}
	footer .copylight {
		background: #EAEEF3;
		height: 1;
		line-height: 1;
	    padding-bottom: 23.5vw;
	}
	footer small {
		font-size: 2.93vw;
		color: #222222;
	    letter-spacing: .16vw;
	}

	.pagetop {
		bottom: 4vw;
		left: auto;
		right: 4vw;
		margin-left: 0;
		width: 10.67vw;
		height: 10.67vw;
	}
	.pankuzu {
		margin-bottom: 4.3vw;
	    padding: 0 4vw;
	}
	.pankuzu ul li {
	    padding-right: 1.2vw;
	}
	.pankuzu ul li a {
		font-size: 3.2vw;
	    padding-right: 1.2vw;
	    letter-spacing: .2vw;
	}
	.pankuzu ul li span {
		font-size: 3.2vw;
		letter-spacing: .2vw;
	}
	.next-block {
		height: 41.33vw;
	}
	.next-block a {
	    height: 41.33vw;
	    background: url(../images/common/ico-arrow-next.png) no-repeat center right 10.5vw;
	    background-size: 3.6vw;
	}
	.next-block .next-text {
		padding-right: 0;
	    padding-bottom: 1vw;
		background: none;
	}
	.next-block .next-text p {
	    margin-bottom: 2vw;
	    font-size: 2.67vw;
	    letter-spacing: .3vw;
	}
	.next-block a span {
	    margin-top: .4vw;
	}
	.next-block a span.ttl-en {
	    letter-spacing: .6vw;
		font-size: 6.93vw;
	}
	.next-block a span.ttl-jp {
	    letter-spacing: .9vw;
		font-size: 3.2vw;
	}
	.next-block .next-text p {
	    margin-bottom: .4vw;
	}
	.next-block a:before {
		display: none;
	}
	.next-block a span {
		font-size: 3.2vw;
	    letter-spacing: 1vw;
	    margin-top: .8vw;
	}
	.next-block .next {
		width: 8vw;
	}
	.movie-wrap {
	    width: 100%
	}
	.movie-wrap iframe {
		width: 100%;
		height: 300px;
	}
	.company-loop {
		display: none;
	}
}

/*
動画
TOP・SERVICE
*/
.movie_list_wrap {
    position: relative;
    width: 100%;
    padding-top: 56.25%;
}
.movie_list_wrap video {
    position: absolute;
    top: 0;
    right: 0;
    width: 100% !important;
    height: 100% !important;
}