/* Common
------------------------*/

body,h1,h2,h3,h4,p,a,ul,li,dl,dt,dd,address {
	margin: 0;
	padding: 0;
	color: #000000;
	font-family: "noto-sans-cjk-jp", sans-serif;
	text-indent: none;
	list-style: none;
	text-decoration: none;
}
body {
	width: 1440px;
	margin: 0 auto;
}
table {
	border-collapse: collapse;
}
img {
	width: 100%;
}
.no-sp {
	display: inline-block;
}
.view-sp {
	display: none;
}
@media (max-width: 1024px) {
	body {
		width: 100%;
	}
	.no-sp {
		display: none;
	}
	.view-sp {
		display: inline-block;
	}
}

/* Header */

header {
	height: 96px;
}
header .logo {
	float: left;
	padding: 40px 0 0 56px;
}
header .logo img {
	width: 243px;
}
header .nav {
	overflow: hidden;
}
header .nav ul {
	float: right;
	margin: 49px 30px 0 0;
}
header .nav li {
	float: left;
	margin: 0 24px 0 0;
	padding-bottom: 2px;
	font-size: 16px;
	font-weight: 700;
}
header .nav li:hover,
header .nav li.active {
	border-bottom: 2px solid #007C7C;
}
header .nav li.lang:hover {
	border-bottom: none;
}
header .nav li.lang a:hover {
	text-decoration: underline;
}
header .nav li.lang-jp {
	margin: 0 0 0 40px;
	font-weight: 400;
}
header .nav li.lang-en {
	margin: 0;
	font-weight: 400;
}
header  li.lang a.active {
	color: #41A6A6;
	font-weight: 900;
	text-decoration: underline;
}

@media (max-width: 1024px) {
	body {
		width: 100%;
		margin: 0;
	}
	header {
		height: 60px;
	}
	footer .nav .logo,
	header .nav .logo {
		padding: 24px 0 0 20px;
	}
	footer .nav .logo img,
	header .nav .logo img {
		width: 139px;
	}
	header .nav .menu {
		display: none;
	}
}

/* Mobile-Navi */

@media (max-width: 1024px) {
    .menu-button {
		float: right;
		padding: 24px 20px 0 0;
		cursor: pointer;
    }
    .modal-overlay {
		position: fixed;
		inset: 0;
		background: white;
		z-index: 50;
		transform: translateX(100%);
		transition: transform 0.3s ease;
    }
    .modal-overlay.active {
		transform: translateX(0);
    }
    .modal-header {
		height: 60px;
    }
    .modal-title {
		float: left;
		padding: 24px 0 0 20px;
    }
    .modal-title img {
		width: 139px;
    }
    .close-button {
		float: right;
		padding: 24px 20px 0 0;
		cursor: pointer;
    }
    .modal-nav .menu li {
    	height: 60px;
    	padding: 0 0 0 53px;
    	line-height: 60px;
    	font-size: 16px;
    	font-weight: 700;
    	border-bottom: 1px solid rgba(65, 166, 166, 0.29);
    }
	.modal-nav .menu li a:hover {
		text-decoration: underline;
	}
	.modal-nav .menu li.lang {
		font-weight: 400;
		border: none;
	}
	.modal-nav .menu li.lang a.active {
		color: #41A6A6;
		font-weight: 900;
		text-decoration: underline;
	}
}

@media (min-width: 1025px) {
	.modal-overlay,
	.menu-button {
		display: none;
	}
}

/* Footer */

footer {
	height: 96px;
}
footer .logo {
	float: left;
	padding: 40px 0 0 116px;
}
footer .logo img {
	width: 324px;
}
footer .nav {
	overflow: hidden;
	margin: 0 0 30px;
}
footer .nav {
	overflow: hidden;
}
footer .nav ul {
	float: right;
	margin: 55px 55px 0 0;
}
footer .nav li {
	float: left;
	margin: 0 24px 0 0;
	font-size: 16px;
	font-weight: 700;
}
footer .nav li a:hover {
	text-decoration: underline;
}
footer .body {
	width: 100%;
	height: 125px;
	color: #FFFFFF;
	background: #41A6A6 url(../images/bg_footer01.png) top right no-repeat;
	background-size: auto 100%;
}
footer .body .company {
	padding: 15px 0 0 123px;
	color: #FFFFFF;
	font-size: 20px;
	font-weight: 700;
}
footer .body .contact {
	padding: 0 0 0 123px;
	color: #FFFFFF;
	font-size: 16px;
	font-weight: 700;
}
footer .body .contact .zip {
	display: inline-block;
	padding: 0 0.5em 0 0;
}
footer .body .contact .address {
	display: inline-block;
	padding: 0 2em 0 0;
}
footer .body .contact .tel {
	display: inline-block;
	padding: 0 1em 0 0;
}
footer .body .contact .fax {
	display: inline-block;
}
footer .body .copyright {
	padding: 15px 0 0 123px;
	color: #FFFFFF;
	font-size: 16px;
	font-weight: 400;
}

@media (max-width: 1024px) {
	footer {
		height: auto;
		margin-top: 40px;
	}
	footer .nav .logo {
		float: none;
		padding: 0 0 10px 20px;
		border-bottom: 1px solid rgba(65, 166, 166, 1);
	}
	footer .nav ul {
		float: none;
		margin: 15px 0 0 20px;
		line-height: 2.5;
	}
	footer .nav li {
		float: none;
		margin: 0 24px 0 0;
		font-size: 16px;
		font-weight: 700;
	}
	footer .body {
		width: 100%;
		height: auto;
		color: #FFFFFF;
		background: #41A6A6 url(../images/bg_footer01m.png) top right no-repeat;
		background-size: auto 100%;
	}
	footer .body .company {
		padding: 10px 0 0 20px;
		color: #FFFFFF;
		font-size: 14px;
		font-weight: 700;
	}
	footer .body .contact {
		padding: 0 0 0 20px;
		color: #FFFFFF;
		font-size: 13px;
		font-weight: 700;
	}
	footer .body .contact .zip {
		display: inline-block;
		padding: 0 0.5em 0 0;
	}
	footer .body .contact .address {
		display: inline-block;
		padding: 0 2em 0 0;
	}
	footer .body .contact .tel {
		display: inline-block;
		padding: 0 1em 0 0;
	}
	footer .body .contact .fax {
		display: inline-block;
	}
	footer .body .copyright {
		padding: 15px 0 10px 20px;
		color: #FFFFFF;
		font-size: 12px;
		font-weight: 500;
	}
}


/* MV Movie */

#mv {
	position: relative;
	width: 100%;
	height: 720px;
	overflow: hidden;
}
#mv::after {
	content: "";
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 720px;
	background: url(../images/mv-overlay01.png) top left no-repeat;
	background-size: auto 100%;
	z-index: -1;
}
#mv video {
	position: absolute;
	width: 100%;
	top: 0;
	left: 0;
	z-index: -1;
}
#mv .mv-catch {
	position: absolute;
	top: 237px;
	left: 164px;
	color: #FFFFFF;
	font-size: 84px;
	font-weight: 900;
}

@media (max-width: 1024px) {
	#mv {
		width: 100%;
		height: 67vw;
		overflow: hidden;
	}
	#mv::after {
		background: url(../images/mv-overlay01m.png) top left no-repeat;
		background-size: 55% auto;
	}
	#mv video {
		width: 140%;
		height: 70vw;
		top: -1.5vw;
		left: -20%;
	}
	#mv .mv-catch {
		top: 25vw;
		left: 11vw;
		font-size: 6.667vw;
	}
}

/* MV Image */

#mv-image {
	position: relative;
	margin: 0 auto;
}
#mv-image .banner {
	position: relative;
	overflow: visible;
}
#mv-image .banner-title {
	position: absolute;
	top: 60px;
	left: 160px;
	font-size: 64px;
	font-weight: 700;
	color: #FFFFFF;
	text-shadow: 0px 0px 20px #a4a4a4;
}
#mv-image .banner-subtitle {
	position: absolute;
	top: 150px;
	left: 160px;
	font-size: 24px;
	font-weight: 500;
	color: #FFFFFF;
	text-shadow: 0px 0px 20px #a4a4a4;
}

@media (max-width: 1024px) {
	#mv-image {
		width: 100%;
		height: 26vw;
		margin: 0 auto 0px;
	}
	#mv-image .banner {
		position: relative;
		overflow: visible;
	}
	#mv-image .banner-title {
		position: absolute;
		top: 4.5vw;
		left: 4vw;
		font-size: 8vw;
	}
	#mv-image .banner-subtitle {
		position: absolute;
		top: 15vw;
		left: 4vw;
		font-size: 3vw;
	}
}

/* Main */

.page-title {
	margin: 50px 0 50px;
	font-size: 36px;
	font-weight: 700;
	line-height: 1.5;
	text-align: center;
}
.top .page-title {
	margin: 80px 0 60px;
}
.lead-text {
	margin: 0 0 100px;
	font-size: 20px;
	font-weight: 500;
	line-height: 2.2;
	text-align: center;
}

.btn-link {
  	position: relative;
	display: inline-block;
	height: 54px;
	font-size: 20px;
	font-weight: 700;
	padding: 0 0.6em;
	line-height: 54px;
	color: #FFFFFF;
	background: rgba(65, 166, 166, 1);
}
.btn-link::after {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	border-style: solid;
	border-width: 27px 0 27px 14px;
	border-color: transparent transparent transparent rgba(65, 166, 166, 1);
	translate: 100% 0;
}
.btn-link:hover {
	text-decoration: underline;
}

@media (max-width: 1024px) {
	.page-title {
		margin: 40px 20px 40px;
		font-size: 24px;
		text-align: left;
	}
	.top .page-title {
		margin: 50px 20px 40px;
	}
	.lead-text {
		margin: 0 20px 70px;
		font-size: 14px;
		line-height: 1.8;
		text-align: left;
	}
	.btn-link {
	  	position: relative;
		display: inline-block;
		height: 32px;
		font-size: 14px;
		line-height: 32px;
	}
	.btn-link::after {
		content: "";
		position: absolute;
		top: 0;
		right: 0;
		border-style: solid;
		border-width: 16px 0 16px 8px;
	}
}

/* Heading */

.heading01 {
	margin: 0 0 60px 0;
	line-height: 1.1;
}
.heading01 .sup {
	margin: 0 0 10px 0;
	font-size: 20px;
	font-weight: 500;
	text-align: center;
}
.heading01 .heading {
	margin: 0 0 15px 0;
	font-size: 40px;
	font-weight: 700;
	color: #003A3A;
	text-align: center;
}
.heading01::after {
	content: "";
	display: block;
	width: 120px;
	height: 2px;
	margin: 0 auto;
	background: #007C7C;
}
@media (max-width: 1024px) {
	.heading01 .sup {
		margin: 0 0 5px 0;
		font-size: 12px;
	}
	.heading01 .heading {
		margin: 0 0 10px 0;
		font-size: 24px;
	}
	.heading01::after {
		width: 64px;
	}
}

/* Top Page
------------------------*/

.banner-area {
	position: relative;
	width: 1120px;
	margin: 0 auto 150px;
}
.banner-area .banner {
	position: relative;
	overflow: visible;
}
.banner-area .banner::after {
	position: absolute;
	content: "";
	display: block;
	width: 634px;
	height: 306px;
	top: 90px;
	right: -160px;
	background: url(../images/banner-shadow1.svg) top left no-repeat;
	z-index: -1;
}
.banner-area .banner-title {
	position: absolute;
	top: 60px;
	left: 30px;
	font-size: 64px;
	font-weight: 700;
	color: #FFFFFF;
}
.banner-area .banner-subtitle {
	position: absolute;
	top: 150px;
	left: 30px;
	font-size: 24px;
	font-weight: 500;
	color: #FFFFFF;
}
.banner-area .copy {
	margin: 15px 0 0 0;
	font-size: 24px;
	font-weight: 500;
	line-height: 2.2;
}
.banner-area .link-btn {
	position: absolute;
	right: 19px;
	bottom: 0;
}

.banner-area2 {
	width: 1120px;
	margin: 0 auto 100px;
	overflow: hidden;
}
.banner-area2 .banner-title {
	float: left;
	margin: 0 35px 15px 0;
	font-size: 40px;
	line-height: 54px;
}
.banner-area2 .right,
.banner-area2 .left {
	width: 550px;
}
.banner-area2 .left {
	float: left;
}
.banner-area2 .right {
	float: right;
}
.banner-area2 .link-btn {
	margin: 0;
}

@media (max-width: 1024px) {
	.banner-area {
		width: 100%;
		height: 60vw;
		margin: 0 auto 0px;
	}
	.banner-area.vision {
		height: 54vw;
		overflow: hidden;
	}
	.banner-area .banner {
		position: relative;
		overflow: visible;
	}
	.banner-area .banner::after {
		position: absolute;
		content: "";
		display: block;
		width: 82%;
		height: 40vw;
		top: 8vw;
		right: 0;
		background: url(../images/banner-shadow1.svg) top left no-repeat;
		background-size: contain;
		z-index: -1;
	}
	.banner-area.vision .banner::after {
		top: 2vw;
	}
	.banner-area .banner-title {
		position: absolute;
		top: 3.5vw;
		left: 3vw;
		font-size: 8vw;
	}
	.banner-area .banner-subtitle {
		position: absolute;
		top: 14vw;
		left: 3vw;
		font-size: 3vw;
	}
	.banner-area .copy {
		margin: 2vw 20px 0;
		font-size: 14px;
		line-height: 1.7;
	}
	.banner-area .link-btn {
		position: absolute;
		right: 19px;
		bottom: auto;
		top: 44vw;
	}
	.banner-area.vision .link-btn {
		top: 35vw;
	}

	.banner-area2 {
		width: 100%;
		margin: 0 auto;
		overflow: hidden;
	}
	.banner-area2 .banner-title {
		float: left;
		margin: 0 35px 15px 0;
		font-size: 24px;
		line-height: 32px;
	}
	.banner-area2 .left,
	.banner-area2 .right {
		float: none;
		width: auto;
		margin: 0 20px 20px;
	}
	.banner-area2 .link-btn {
		margin: 0;
	}
	body.top footer {
		margin-top: 20px;
	}
}

/* Technology Page
------------------------*/

.tech-body {
	overflow: hidden;
	margin: 0 0 100px 0;
	line-height: 1.1;
}
.tech-text-l {
	float: left;
	width: 660px;
	margin: 5px 0 0 160px;
}
.tech-text-r {
	float: right;
	width: 690px;	
	margin: 5px 160px 0 0;
}
.tech-photo-l {
	position: relative;
	overflow: hidden;
	float: left;
	width: 540px;
	padding: 0 27px 27px 0;
}
.tech-photo-r {
	position: relative;
	overflow: hidden;
	float: right;
	width: 540px;
	padding: 0 27px 27px 0;
}
.tech-photo-l::after,
.tech-photo-r::after {
	position: absolute;
	content: "";
	display: block;
	width: 470px;
	height: 351px;
	right: -27px;
	bottom: -27px;
	background: url(../images/banner-shadow2.svg) bottom right no-repeat;
	background-size: contain;
	z-index: -1;
}

.tech-heading01 {
	margin: 0 0 40px 0;
	line-height: ;
}
.tech-heading01 .sup {
	margin: 0 0 10px 0;
	color: #007C7C;
	font-weight: 700;
	font-size: 24px;
}
.tech-heading01 .heading {
	margin: 0 0 10px 0;
	color: #000000;
	font-weight: 700;
	font-size: 36px;
}

.tech-body .text {
	font-size: 20px;
	font-weight: 400;
	line-height: 2.2;
}

@media (max-width: 1024px) {
	.tech-body {
		margin: 0 0 50px 0;
		line-height: 1.1;
	}
	.tech-text-l {
		float: none;
		width: auto;
		margin: 0 20px 10px 20px;
	}
	.tech-text-r {
		float: none;
		width: auto;
		margin: 0 20px 10px 20px;
	}
	.tech-photo-l {
		float: none;
		width: auto;
		margin: 0 0 0 20px;
		padding: 0 0 20px 0;
	}
	.tech-photo-r {
		float: none;
		width: auto;
		margin: 0 0 0 20px;
		padding: 0 0 20px 0;
	}
	.tech-photo-l::after,
	.tech-photo-r::after {
		width: 85%;
		height: 90vw;
		right: 0;
		bottom: -20px;
		background: url(../images/banner-shadow2.svg) bottom right no-repeat;
		background-size: contain;
		z-index: -1;
	}
	.tech-heading01 {
		margin: 0 0 20px 0;
		line-height: ;
	}
	.tech-heading01 .sup {
		margin: 0 0 5px 0;
		font-size: 12px;
	}
	.tech-heading01 .heading {
		margin: 0 0 10px 0;
		color: #000000;
		font-weight: 700;
		font-size: 24px;
	}

	.tech-body .text {
		font-size: 14px;
		font-weight: 400;
		line-height: 1.8;
	}
}

/* Products Page
------------------------*/

.products-pickup {
	overflow: hidden;
	margin: 0 0 100px;
	padding: 60px 160px;
	background: #F5F5F5;
}
.products-pickup .pickup-title {
	margin: 0 0 15px 0;
	font-size: 40px;
	font-weight: 700;
}
.products-pickup .pickup-lead {
	margin: 0 0 40px 0;
	font-size: 20px;
	font-weight: 400;
	line-height: 1.8;
}
.products-pickup .pickup-items .pickup-item {
	width: 500px;
}
.products-pickup .pickup-items .pickup-item:nth-child(1) {
	float: left;
}
.products-pickup .pickup-items .pickup-item .item-photo {
	margin: 0 0 35px;
}
.products-pickup .pickup-items .pickup-item:nth-child(1) .item-photo {
	padding-left: 46px;
}
.products-pickup .pickup-items .pickup-item:nth-child(2) {
	float: right;
}
.products-pickup .pickup-items .pickup-item:nth-child(2) .item-photo {
	padding: 0 23px;
}
.products-pickup .pickup-items .pickup-item .item-title {
	margin: 0 0 30px;
	font-size: 24px;
	font-weight: 700;
	text-align: center;
}
.products-pickup .pickup-items .pickup-item .item-copy {
	font-size: 20px;
	font-weight: 400;
	line-height: 1.8;
}

.products2-pickup {
	overflow: hidden;
	margin: 0 0 100px;
	padding: 0 160px;
}
.products2-pickup .pickup-title {
	margin: 0 0 15px 0;
	font-size: 40px;
	font-weight: 700;
}
.products2-pickup .pickup-lead {
	margin: 0 0 40px 0;
	font-size: 20px;
	font-weight: 400;
	line-height: 1.8;
}
.products2-pickup .pickup-items .pickup-item {
	width: 500px;
}
.products2-pickup .pickup-items .pickup-item:nth-child(1) {
	float: left;
}
.products2-pickup .pickup-items .pickup-item .item-photo {
	margin: 0 0 35px;
}
.products2-pickup .pickup-items .pickup-item:nth-child(2) {
	float: right;
}
.products2-pickup .pickup-items .pickup-item:nth-child(3) {
	clear: both;
	margin: 0 auto;
	padding: 60px 0 0 0;
}
.products2-pickup .pickup-items .pickup-item .item-title {
	margin: 0 0 35px;
	font-size: 24px;
	font-weight: 700;
	text-align: center;
}
.products2-pickup .pickup-items .pickup-item .item-copy {
	font-size: 20px;
	font-weight: 400;
	line-height: 1.8;
}
.products-clients {
	margin: 0 0 100px 0;
	font-size: 20px;
	font-weight: 400;
	text-align: center;
	line-height: 2.2;
}
.products-quality {
	overflow: hidden;
	margin: 0 0 100px 0;
}
.products-quality .quality-lead {
	margin: 0 0 40px 0;
	font-size: 20px;
	font-weight: 500;
	text-align: center;
	z-index: 999;
}
.products-quality .photo {
	float: right;
	width: 500px;
	margin: 0 190px 0 0;
}
.products-quality .text {
	float: left;
	width: 500px;
	margin: 0 0 0 190px;
	text-align: center;
	font-size: 20px;
	font-weight: 400;
	text-align: center;
	line-height: 1.8;
}

@media (max-width: 1024px) {
	.products-pickup {
		margin: 0 0 50px;
		padding: 40px 20px;
	}
	.products-pickup .pickup-title {
		margin: 0 0 15px 0;
		font-size: 24px;
	}
	.products-pickup .pickup-lead {
		font-size: 14px;
	}
	.products-pickup .pickup-items .pickup-item {
		width: auto;
		margin: 0 auto;
	}
	.products-pickup .pickup-items .pickup-item:nth-child(1) {
		float: none;
		margin-bottom: 40px;
	}
	.products-pickup .pickup-items .pickup-item .item-photo {
		margin: 0 0 35px;
	}
	.products-pickup .pickup-items .pickup-item:nth-child(1) .item-photo {
		padding: 0 23px;
	}
	.products-pickup .pickup-items .pickup-item:nth-child(2) {
		float: none;
	}
	.products-pickup .pickup-items .pickup-item:nth-child(2) .item-photo {
		padding: 0 23px;
	}
	.products-pickup .pickup-items .pickup-item .item-title {
		margin: 0 0 30px;
		font-size: 16px;
	}
	.products-pickup .pickup-items .pickup-item .item-copy {
		font-size: 14px;
	}

	.products2-pickup {
		overflow: hidden;
		margin: 0 0 50px;
		padding: 0 20px;
	}
	.products2-pickup .heading01 {
		margin-bottom: 40px;
	}
	.products2-pickup .pickup-items .pickup-item {
		width: auto;
	}
	.products2-pickup .pickup-items .pickup-item:nth-child(1) {
		float: none;
		margin-bottom: 40px;
	}
	.products2-pickup .pickup-items .pickup-item .item-photo {
		margin: 0 0 15px;
	}
	.products2-pickup .pickup-items .pickup-item:nth-child(2) {
		float: none;
	}
	.products2-pickup .pickup-items .pickup-item:nth-child(3) {
		margin: 0 auto;
		padding: 60px 0 0 0;
	}
	.products2-pickup .pickup-items .pickup-item .item-title {
		margin: 0 0 15px 0;
		font-size: 16px;
	}
	.products2-pickup .pickup-items .pickup-item .item-copy {
		font-size: 14px;
	}
	.heading01.clients {
		margin-bottom: 40px;
	}
	.products-clients {
		margin: 0 0 50px 0;
		font-size: 14px;
		line-height: 2.2;
	}
	.products-quality {
		margin: 0 20px 100px;
	}
	.products-quality .heading01 {
		margin-bottom: 40px;
	}
	.products-quality .quality-lead {
		margin: 0 0 15px 0;
		font-size: 14px;
		line-height: 1.8;
	}
	.products-quality .photo {
		float: none;
		width: auto;
		margin: 0 0 5px;
	}
	.products-quality .text {
		float: none;
		width: auto;
		margin: 0 0 0;
		font-size: 14px;
		text-align: left;
	}

}

/* Vision Page
------------------------*/

.vision-header {
	position: relative;
	overflow: hidden;
	width: 100%;
	margin-bottom: 50px;
	padding: 70px 0 180px;
}
.vision-header::before {
	content: "";
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 255px;
	background: url(../images/vision_bg01.png) top left no-repeat;
	background-size: auto 100%;
}
.vision-header::after {
	content: "";
	display: block;
	position: absolute;
	bottom: 0;
	right: 0;
	width: 100%;
	height: 262px;
	background: url(../images/vision_bg02.png) bottom right no-repeat;
	background-size: auto 100%;
}
.vision-header .lead-text {
	margin-bottom: 1em;
}
.vision-header .lead-text:last-child {
	margin-bottom: 0;
}
.vision .message {
	overflow: hidden;
	margin: 0 0 100px 0;
} 
.vision .message .heading01 .heading {
	font-size: 24px;
}
.vision .message .photo {
	float: left;
	width: 295px;
	margin: 0 0 0 230px;
}
.vision .message .body  {
	float: right;
	width: 634px;
	margin: 0 230px 0 0;
}
.vision .message .body .text {
	margin: 0 0 1.5em 0;
	font-size: 20px;
	font-weight: 500;
	line-height: 1.8;
}
.vision-philosophy {
	overflow: hidden;
	margin: 0 0 100px 0;
}
.vision-philosophy .item-box {
	float: left;
	width: 330px;
	margin: 0 0 0 65px;
}
.vision-philosophy .item-box:nth-child(1) {
	margin: 0 0 0 160px;
}
.vision-philosophy .item-box .item-title {
	margin: 0 0 30px 0;
	font-size: 24px;
	font-weight: 700;
	text-align: center;
}
.vision-philosophy .item-box:nth-child(1) .item-icon {
	margin: 0 0 36px 0;
	padding: 0 105px;
}
.vision-philosophy .item-box:nth-child(2) .item-icon {
	margin: 0 0 10px 0;
	padding: 9px 90px 0;
}
.vision-philosophy .item-box:nth-child(3) .item-icon {
	margin: 0 0 30px 0;
	padding: 3px 100px 0;
}
.vision-philosophy .item-box .item-copy {
	font-size: 20px;
	font-weight: 400;
	line-height: 1.5;
}


@media (max-width: 1024px) {
	.vision-header {
		margin-bottom: 70px;
		padding-top: 36px;
		padding-bottom: 40px;
	}
	.vision-header::before {
		height: 120px;
	}
	.vision-header::after {
		height: 120px;
	}
	.vision .message .heading01 .heading {
		font-size: 16px;
	}
	.heading01.vision {
		margin-bottom: 40px;
	}
	.heading01.vision .heading {
		font-size: 24px;
	}
	.vision .message {
		overflow: hidden;
		margin: 0 0 50px 0;
	}
	.vision .message .photo {
		float: none;
		width: 190px;
		margin: 0 auto 15px;
	}
	.vision .message .body  {
		float: none;
		width: auto;
		margin: 0 20px 0;
	}
	.vision .message .body .text {
		margin: 0 0 1.5em 0;
		font-size: 14px;
		line-height: 1.8;
	}
	.vision-philosophy {
		overflow: hidden;
		margin: 0 20px 100px;
	}
	.vision-philosophy .item-box {
		float: none;
		width: 100%;
		margin: 0 0 50px;
	}
	.vision-philosophy .item-box:nth-child(1) {
		margin: 0 0 50px;
	}
	.vision-philosophy .item-box .item-title {
		margin: 0 0 15px 0;
		font-size: 16px;
		font-weight: 700;
		text-align: center;
	}
	.vision-philosophy .item-box:nth-child(1) .item-icon {
		width: 104px;
		margin: 0 auto 10px;
		padding: 0;
	}
	.vision-philosophy .item-box:nth-child(2) .item-icon {
		width: 110px;
		margin: 0 auto 10px;
		padding: 0;
	}
	.vision-philosophy .item-box:nth-child(3) .item-icon {
		width: 95px;
		margin: 0 auto 10px;
		padding: 0;
	}
	.vision-philosophy .item-box .item-copy {
		font-size: 14px;
		line-height: 1.8;
	}
}


/* Company Page
------------------------*/

.company #mv-image .banner-title,
.company #mv-image .banner-subtitle {
	text-shadow: none;
}
.company table.spec01 {
	width: 835px;
	margin: 0 auto 100px;
	text-align: center;
	border-top: 1px solid #000000;
	border-left: 1px solid #000000;
}
.company table.spec01 th,
.company table.spec01 td {
	height: 60px;
	font-size: 16px;
	border-bottom: 1px solid #000000;
	border-right: 1px solid #000000;
}
.company table.spec01 th {
	font-weight: 700;
	color: #FFFFFF;
	background: #000000;
}
.company table.spec01 td {
	font-weight: 500;
}
.company table.spec01 tr td:nth-child(1) {
	width: 270px;
	font-weight: 700;
	background: #F0F0F0;
}
.company-location,
.company-access {
	margin: 0 0 100px;
}
.company-map {
	overflow: hidden;
	margin: 0 180px 50px;
}
.company-map .pic {
	float: right;
	width: 500px;
}
.company-map .text {
	float: left;
	width: 550px;
}
.company-map .text p {
	margin: 0 0 1em 0;
	font-size: 20px;
	font-weight: 400;
}
.company .heading01.clients {
	margin-top: 100px;
}
.company-equipment {
	overflow: hidden;
	margin: 0 227px 50px;
}
.company table.spec02.left {
	float: left;
}
.company table.spec02.right {
	float: right;
}
.company table.spec02 {
	margin: 0;
	text-align: center;
	border-top: 1px solid #000000;
	border-left: 1px solid #000000;
}
.company table.spec02 th,
.company table.spec02 td {
	box-sizing: border-box;
	width: 155px;
	padding: 10px;
	font-size: 16px;
	line-height: 1.1;
	border-bottom: 1px solid #000000;
	border-right: 1px solid #000000;
}
.company table.spec02 th {
	font-weight: 700;
	color: #FFFFFF;
	background: #000000;
}
.company table.spec02 td {
	font-weight: 400;
}
.company table.spec02 tr td:nth-child(1) {
	background: #F0F0F0;
}
.company .icon-area {
	overflow: hidden;
	margin: 0 115px 50px;
}
.company .icon-area .icon {
	float: left;
	width: 380px;
	margin: 0 0 50px 35px;
}
.company .icon-area .icon:nth-child(3n-2) {
	margin-left: 0;
}
.company .icon-area .icon .name {
	font-size: 20px;
	font-weight: 500;
}
.company-history {
	overflow: hidden;
	margin: 0 286px 100px;
}
.company-history dl {
	overflow: hidden;
	font-size: 20px;
	font-weight: 500;
	margin: 0 0 1em;
}
.company-history dl dt {
	float: left;
}
.company-history dl dd {
	float: right;
	width: 700px;
}

@media (max-width: 1024px) {
	.company .heading01 {
		margin-bottom: 40px;
	}
	.company table.spec01 {
		box-sizing: border-box;
		width: calc(100% - 40px);
		margin: 0 20px 100px;
	}
	.company table.spec01 th,
	.company table.spec01 td {
		box-sizing: border-box;
		width: auto;
		height: auto;
		padding: 10px;
		font-size: 12px;
	}
	.company table.spec01 tr td:nth-child(1) {
		width: 33.3%;
		font-weight: 700;
		background: #F0F0F0;
	}
	.company-map {
		overflow: hidden;
		margin: 0 20px 40px;
	}
	.company-map .pic {
		float: none;
		width: 100%;
		margin: 0 0 15px;
	}
	.company-map .pic.map {
		position: relative;
		width: 100%;
		height: 0;
		margin: 0 0 15px;
		padding-top: 60%;
		overflow: hidden;
	}
	.company-map .pic.map iframe {
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
	}
	.company-map .text {
		float: none;
		width: 100%;
	}
	.company-map .text p {
		font-size: 14px;
	}
	.company-map .text p:last-child {
		margin-bottom: 0;
	}
	.company-equipment {
		width: calc(100% - 40px);
		margin: 0 20px 50px;
		text-align: center;
	}
	.company table.spec02.left {
		float: none;
	}
	.company table.spec02.right {
		float: none;
	}
	.company table.spec02 {
		margin: 0 auto;
		text-align: center;
		border-top: 1px solid #000000;
		border-left: 1px solid #000000;
	}
	.company table.spec02 th,
	.company table.spec02 td {
		box-sizing: border-box;
		width: auto;
		padding: 10px;
		font-size: 14px;
		line-height: 1.1;
		border-bottom: 1px solid #000000;
		border-right: 1px solid #000000;
	}
	.company table.spec02 th {
		font-weight: 700;
		color: #FFFFFF;
		background: #000000;
	}
	.company table.spec02 td {
		font-weight: 400;
	}
	.company table.spec02 tr td:nth-child(1) {
		width: 35%;
		background: #F0F0F0;
	}
	.company table.spec02 tr td:nth-child(2) {
		width: 40%;
	}
	.company table.spec02 tr td:nth-child(3) {
		width: 25%;
	}
	.company .icon-area {
		overflow: hidden;
		margin: 0 20px 75px;
	}
	.company .icon-area .icon {
		float: none;
		width: 100%;
		margin: 0 0 25px 0;
	}
	.company .icon-area .icon .name {
		font-size: 12px;
	}
	.company-history {
		overflow: hidden;
		margin: 0 20px 100px;
	}
	.company-history dl {
		overflow: hidden;
		font-size: 14px;
		font-weight: 500;
		margin: 0 0 1em;
	}
	.company-history dl dt {
		float: left;
	}
	.company-history dl dd {
		float: right;
		width: 75%;
	}

}


/* Recruit Page
------------------------*/

.recruit .recruiting {
	overflow: hidden;
	margin: 0 170px 100px;
}
.recruit .recruiting-body {
	float: left;
	width: 520px;
	font-size: 20px;
	font-weight: 400;
	line-height: 1.7;
}
.recruit .recruiting-head01 {
	margin: 0 0 0.5em 0;
	font-size: 24px;
	font-weight: 700;
}
.recruit .recruiting-head02 {
	font-size: 20px;
	font-weight: 700;
	margin: 2em 0 0 0;
}
.recruit .recruiting-list01 li::before {
	content: "・";
}
.recruit .recruiting-list01 li {
	margin-left: 1em;
	text-indent: -1em;
}
.recruit .recruiting-photo {
	float: right;
	width: 545px;
	padding-top: 124px;
}
.recruit .environment {
	overflow: hidden;
	margin: 0 255px 100px;
}
.recruit .environment .item {
	width: 420px;
	text-align: center;
}
.recruit .environment .item:nth-child(1) {
	float: left;
	margin-bottom: 50px;
}
.recruit .environment .item:nth-child(2) {
	float: right;
	margin-bottom: 50px;
}
.recruit .environment .item:nth-child(3) {
	clear: both;
	float: left;
}
.recruit .environment .item:nth-child(4) {
	float: right;
}
.recruit .environment .item .item-title {
	margin: 0 0 20px 0;
	font-size: 24px;
	font-weight: 700;
	text-align: center;
}
.recruit .environment .item .item-icon {
	margin-bottom: 20px;
}
.recruit .environment .item:nth-child(1) .item-icon img,
.recruit .environment .item:nth-child(2) .item-icon img,
.recruit .environment .item:nth-child(4) .item-icon img {
	width: auto;
	height: 150px;
	margin: 0;
}
.recruit .environment .item:nth-child(3) .item-icon img {
	width: auto;
	height: 130px;
	margin: 10px 0;
}
.recruit .environment .item .item-text {
	font-size: 20px;
	font-weight: 400;
	line-height: 1.8;
	text-align: left;
}
.recruit .dormitory {
	margin: 0 0 100px 0;
}
.recruit .dormitory .dormitory-title {
	margin: 0 0 20px 0;
	font-size: 24px;
	font-weight: 700;
	text-align: center;
}
.recruit .dormitory .dormitory-photo {
	width: 600px;
	margin: 0 auto 20px;
	text-align: center;
}
.recruit .dormitory .dormitory-text {
	font-size: 20px;
	font-weight: 400;
	line-height: 1.8;
	text-align: center;
}
.recruit .voice {
	width: 960px;
	margin: 0 auto 100px;
}
.recruit .voice .member {
	overflow: hidden;
	margin: 0 0 60px 0;
}
.recruit .voice .member .photo {
	float: left;
	width: 250px;
}
.recruit .voice .member .message {
	float: right;
	width: 655px;
}
.recruit .voice .member .message .message-title {
	font-size: 24px;
	font-weight: 700;
	line-height: 1.5;
	margin: 0 0 15px;
}
.recruit .voice .member .message .message-text {
	font-size: 20px;
	font-weight: 400;
	line-height: 1.5;
}
.recruit table.spec01 {
	width: 835px;
	margin: 0 auto 100px;
	text-align: center;
	border-top: 1px solid #000000;
	border-left: 1px solid #000000;
}
.recruit table.spec01 th,
.recruit table.spec01 td {
	height: 60px;
	font-size: 16px;
	border-bottom: 1px solid #000000;
	border-right: 1px solid #000000;
}
.recruit table.spec01 th {
	font-weight: 700;
	color: #FFFFFF;
	background: #000000;
}
.recruit table.spec01 td {
	font-weight: 500;
}
.recruit table.spec01 td strong {
	font-weight: 700;
}
.recruit table.spec01 tr td:nth-child(1) {
	width: 270px;
	font-weight: 700;
	background: #F0F0F0;
}
.recruit .recruit-contact {
	height: 416px;
	margin: 0 0 100px;
	background: url(../images/bg_recruit01.png) top center no-repeat;
	background-size: auto 100%;
}
.recruit .recruit-contact .contact-title {
	padding: 1.8em 0;
	font-size: 24px;
	font-weight: 700;
	text-align: center;
}
.recruit .recruit-contact .contact-info {
	margin: 0 0 0 567px;
}
.recruit .recruit-contact .contact-info p {
	margin: 0 0 1em;
	font-size: 16px;
	font-weight: 500;
	line-height: 1.8;
}
.recruit .recruit-contact .contact-info p strong {
	font-weight: 700;
}
.recruit .recruit-contact .contact-info a {
	text-decoration: underline;
}
.recruit .recruit-contact .contact-info a:hover {
	text-decoration: none;
}





@media (max-width: 1024px) {
	.recruit .heading01 {
		margin-bottom: 40px;
	}
	.recruit .recruiting {
		margin: 0 20px 100px;
	}
	.recruit .recruiting-body {
		width: auto;
		float: none;
		font-size: 14px;
		font-weight: 400;
	}
	.recruit .recruiting-head01 {
		font-size: 16px;
	}
	.recruit .recruiting-head02 {
		font-size: 16px;
		margin: 1em 0 0 0;
	}
	.recruit .recruiting-list01 {
		width: auto;
	}
	.recruit .recruiting-list01 li {
		font-size: 14px;
	}
	.recruit .recruiting-photo {
		float: none;
		width: 100%;
		padding-top: 50px;
	}
	.recruit .environment {
		overflow: hidden;
		margin: 0 20px 50px;
	}
	.recruit .environment .item {
		width: 100%;
	}
	.recruit .environment .item:nth-child(1),
	.recruit .environment .item:nth-child(2),
	.recruit .environment .item:nth-child(3),
	.recruit .environment .item:nth-child(4) {
		float: none;
		margin-bottom: 40px;
	}
	.recruit .environment .item .item-title {
		margin: 0 0 20px 0;
		font-size: 16px;
	}
	.recruit .environment .item .item-icon {
		margin-bottom: 15px;
	}
	.recruit .environment .item:nth-child(1) .item-icon img,
	.recruit .environment .item:nth-child(2) .item-icon img,
	.recruit .environment .item:nth-child(4) .item-icon img {
		width: auto;
		height: 110px;
		margin: 0;
	}
	.recruit .environment .item:nth-child(3) .item-icon img {
		width: auto;
		height: 100px;
		margin: 10px 0;
	}
	.recruit .environment .item .item-text {
		font-size: 14px;
	}
	.recruit .dormitory {
		margin: 0 20px 50px;
	}
	.recruit .dormitory .dormitory-title {
		margin: 0 0 10px 0;
		font-size: 16px;
	}
	.recruit .dormitory .dormitory-photo {
		width: 100%;
		margin: 0 auto 10px;
		text-align: center;
	}
	.recruit .dormitory .dormitory-text {
		font-size: 14px;
		font-weight: 400;
		line-height: 1.5;
		text-align: center;
	}
	.recruit .voice {
		width: auto;
		margin: 0 20px 50px;
	}
	.recruit .voice .member {
		margin: 0 0 40px 0;
	}
	.recruit .voice .member .photo {
		float: none;
		width: 190px;
		margin: 0 auto 15px;
	}
	.recruit .voice .member .message {
		float: none;
		width: 100%;
	}
	.recruit .voice .member .message .message-title {
		font-size: 16px;
		margin: 0 0 15px;
	}
	.recruit .voice .member .message .message-text {
		font-size: 14px;
	}
	.recruit table.spec01 {
		box-sizing: border-box;
		width: calc(100% - 40px);
		margin: 0 20px 100px;
	}
	.recruit table.spec01 th,
	.recruit table.spec01 td {
		box-sizing: border-box;
		height: auto;
		padding: 10px;
		font-size: 12px;
	}
	.recruit   table.spec01 tr td:nth-child(1) {
		width: 33.3%;
		font-weight: 700;
		background: #F0F0F0;
	}
	.recruit .recruit-contact {
		height: 280px;
		margin: 0 0 100px;
		padding: 0 20px;
		background: url(../images/bg_recruit01.png) top center no-repeat;
		background-size: auto 100%;
	}
	.recruit .recruit-contact .contact-title {
		padding: 1.8em 0 1em;
		font-size: 16px;
		font-weight: 700;
		text-align: left;
	}
	.recruit .recruit-contact .contact-info {
		margin: 0;
	}
	.recruit .recruit-contact .contact-info p {
		margin: 0 0 0.7em;
		font-size: 14px;
		font-weight: 400;
		line-height: 1.8;
	}
	.recruit .recruit-contact .contact-info p strong {
		font-weight: 700;
	}
	.recruit .recruit-contact .contact-info a {
		text-decoration: underline;
	}
	.recruit .recruit-contact .contact-info a:hover {
		text-decoration: none;
	}
}