@charset "utf-8";


/* common.css
----------------------------------------- */
html,body{
    width: 100%;
}
body {
	    font-family: "Montserrat";
	font-size: 14px;
	color: #000;
	line-height: 1.8;
	letter-spacing: 0.1em;
	text-align: left;
	font-weight: 500;
	-webkit-text-size-adjust: 100%;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
h1, h2, h3, h4, h5, h6 {
    font-family: "Montserrat";
}
a {
	color: #000;
	text-decoration: none;
}
a:hover {
	color: #000;
	text-decoration: none;
}
a:focus {
	outline: none;
}
.pc {
	display: none !important;
}
.sp {
	display: block !important;
}
input:focus, 
select:focus, 
textarea:focus {
	outline: none;
}
img {
	width: 100%;
	height: auto;
	-webkit-backface-visibility: hidden;
}

/* common parts
----------------------------------------- */
/* loading */
#contents-wrap {
	opacity: 1;
	transition: all 0.8s;
}
#contents-wrap.fade-in {
	opacity: 1;
}
.loading-img {
	position: fixed;
	top: 50%;
	left: 50%;
	width: 60px;
	height: 60px;
	margin-top: -35px;
	margin-left: -30px;
	text-align: center;
	color: #fff;
	z-index: 2;
	text-align: center;
	display: none;
}
.loading-img img {
	width: 100%;
	height: auto;
}

/* page-visual */
.page-visual {
	position: relative;
	display: flex;
	align-items: flex-end;
	justify-content: center;
	height: 230px;
	z-index: -100;
	color: #fff;
	text-align: center;
}
.page-visual-ttl {
	position: relative;
	padding-bottom: 50px;
}
.page-visual .jpn {
	display: block;
	margin-bottom: 3px;
	font-size: 24px;
	font-weight: 600;
}
.page-visual .eng {
	font-family: 'Overpass', sans-serif;
	font-weight: 700;
	display: block;
	font-size: 11px;
	letter-spacing: 0.02em;
}
.page-visual-ttl::before {
	content: "";
	display: block;
	position: absolute;
	bottom: 0;
	left: 50%;
	width: 2px;
	height: 25px;
	margin-left: -1px;
	background-color: #fff;
}
.page-visual-ttl::after {
	content: "";
	display: block;
	position: absolute;
	bottom: -25px;
	left: 50%;
	width: 2px;
	height: 25px;
	margin-left: -1px;
	background-color: #005657;
}

/* ttl */
.sec-ttl-vertical {
	position: relative;
	padding: 60px 0 0 60px;
}
.sec-ttl-vertical::before {
	display: block;
	content: '';
	position: absolute;
	top: 0;
	left: 35px;
	width: 1px;
	height: 90px;
	background-color: #005657;
	-ms-transform: rotate(45deg);
	-webkit-transform: rotate(45deg);
	transform: rotate(45deg);
}
.sec-ttl-vertical .eng {
	font-family: 'Overpass', sans-serif;
	font-weight: 400;
	display: block;
	margin-bottom: 12px;
	font-size: 13px;
	line-height: 1.0;
	letter-spacing: 0.01em;
}
.sec-ttl-vertical .jpn {
	display: block;
	font-size: 26px;
	line-height: 1.0;
}
.sec-ttl-vertical .ttl-let-green {
	color: #005657;
}

.slash-ttl-wapper {
	padding: 0 30px;
}
.slash-ttl {
	position: relative;
	margin: 45px;
	
	font-size: 22px;
	line-height: 1.2;
}



.page-sub-ttl {
	font-size: 24px;
	line-height: 1.2;
	text-align: center;
}
.page-sub-ttl span {
	color: #005657;
}


/* btn */
.line-btn {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 210px;
	height: 55px;
	margin: 0 auto;
	background-color: #fff;
}
.line-btn-inner {
}
.line-btn-inner span {
	font-family: 'Overpass', sans-serif;
	font-weight: 400;
	font-size: 14px;
	line-height: 1.0;
}
.line-btn-inner::before {
	content: "";
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	width: 1px;
	height: 46px;
	background-color: #005657;
}
.line-btn-inner::after {
	content: "";
	display: block;
	position: absolute;
	bottom: 0;
	right: 0;
	width: 1px;
	height: 46px;
	background-color: #005657;
}
.line-btn-inner span::before {
	content: "";
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	width: 202px;
	height: 1px;
	background-color: #005657;
}
.line-btn-inner span::after {
	content: "";
	display: block;
	position: absolute;
	bottom: 0;
	right: 0;
	width: 202px;
	height: 1px;
	background-color: #005657;
}

/* header
----------------------------------------- */
#top #header {
	position: relative;
	height: 100vh;
	min-height: 500px;
}
.header-logo {
	width: 200px;
	height: 33px;
	position: absolute;
	top: 25px;
	left: 20px;
}
.header-inner {
	position: relative;
}

/* slide-menu-btn */
.slide-menu-btn {
	position: absolute;
	top: 30px;
	right: 32px;
	z-index: 10000;
}
.slide-menu-nav {
	box-sizing: border-box;
	display: none;
	width: 100%;
	position: absolute;
	left: 0;
	top: 0;
	padding: 80px 0 45px;
	background-color: rgba(255,255,255,0.9);
	z-index: 9000;
	text-align: center;
}
.slide-menu-nav .gnav li {
	position: relative;
	margin-bottom: 20px;
	padding-bottom: 20px;
}
.slide-menu-nav .gnav li:last-child {
	margin-bottom: 0;
}
.slide-menu-nav .gnav li::after {
	content: "";
	position: absolute;
	bottom: 0px;
	left: 50%;
	width: 3px;
	height: 1px;
	margin-left: -2px;
	background-color: #000;
}
.slide-menu-nav .gnav li:last-child::after {
	display: none;
}
.slide-menu-nav .gnav a {
	display: inline-block;
	font-size: 15px;
	color: #000;
	line-height: 1.4;
	letter-spacing: 0.16em;
}
/* position-active */
#technology .slide-menu-nav .gnav01 a,
#quality .slide-menu-nav .gnav02 a,
#facility .slide-menu-nav .gnav03 a,
#company .slide-menu-nav .gnav04 a,
#credo .slide-menu-nav .gnav05 a,
#recruit .slide-menu-nav .gnav06 a{
	color: #999999;
}

/* menu-trigger */
.menu-trigger,
.menu-trigger span {
	display: inline-block;
	transition: all .3s;
	box-sizing: border-box;
}
.menu-trigger {
	position: relative;
	width: 25px;
	height: 16px;
}
.menu-trigger span {
	position: absolute;
	left: 0;
	width: 100%;
	height: 1px;
	background-color: #fff;
}
.menu-trigger span:nth-of-type(1) {
	top: 5px;
}
.menu-trigger span:nth-of-type(2) {
	top: 12px;
}
.menu-trigger.active span:nth-of-type(1) {
	-webkit-transform: translateY(4px) rotate(-45deg);
	transform: translateY(4px) rotate(-45deg);
	background-color: #000;
}
.menu-trigger.active span:nth-of-type(2) {
	-webkit-transform: translateY(-2px) rotate(45deg);
	transform: translateY(-3px) rotate(45deg);
	background-color: #000;
}

/* contents
----------------------------------------- */
/* strong-intro-sec */

.strong-intro-ttl {
	position: relative;
	margin-bottom: 20px;
	text-align: center;
}
.strong-intro-ttl .eng {
	font-family: 'Overpass', sans-serif;
	font-weight: 400;
	display: block;
	letter-spacing: -0.04em;
	font-size: 19.6vw;
	line-height: 1.0;
	color: #eaf3f3;
}
.strong-intro-ttl .jpn {
	box-sizing: border-box;
	display: block;
	position: absolute;
	top: 50%;
	left: 0;
	width: 100%;
	margin-top: -0.5em;
	padding-left: 0.5em;
	font-size: 20px;
	line-height: 1.0;
}
.strong-intro-ttl .jpn .ttl-let-green {
	color: #005657;
}
.strong-intro-ttl .jpn .ttl-let-large {
	font-size: 24px;
}

.strong-intro-main-text {
	margin-bottom: 40px;
	padding: 0 30px;
	font-size: 12px;
	line-height: 2.0;
}


/* text-list01 */
.text-list01 {
	display: flex;
	flex-wrap: wrap;
	padding: 0 30px;
}
.text-list01 li {
	width: 47%;
	margin: 0 6% 15px 0;
	padding-bottom: 15px;
	border-bottom: 1px solid #e5e5e5;
	font-size: 12px;
}
.text-list01 li:nth-child(even) {
	margin-right: 0;
}

/* its-shotoku-box */
.its-shotoku-box {
	position: relative;
	padding: 25px 30px 30px;
}
.its-shotoku-box::before {
	content: '';
	position: absolute;
	top: 0;
	left: 30px;
	width: 70%;
	height: 1px;
	background-color: #005657;
}
.its-shotoku-box::after {
	content: '';
	position: absolute;
	bottom: 0;
	right: 30px;
	width: 70%;
	height: 1px;
	background-color: #005657;
}
.its-shotoku-img {
	max-width: 45%;
	margin: 0 auto 20px;
}
.its-shotoku-text {
	padding: 0 20px;
	font-size: 12px;
	line-height: 2.0;
}


/* footer
----------------------------------------- */
.page-top {
	display: block;
	position: absolute;
	top: 0;
	right: 30px;
	width: 50px;
	height: 50px;
}
.footer-gnav {
	margin-bottom: 40px;
	padding: 0 40px;
}
.footer-gnav li {
	margin-bottom: 18px;
	font-size: 12px;
}
.footer-gnav li:last-child {
	margin-bottom: 0;
}
.footer-inner {
	padding: 40px 30px 15px;
	background-color: #f7f7f7;
	border-top: 1px solid #eaeaea;
}
.footer-company-area {
}
.footer-logo {
	display: block;
	width: 200px;
	height: 29px;
	margin-bottom: 15px;
}
.footer-address {
	margin-bottom: 40px;
	font-size: 11px;
}
.copyright {
	font-family: 'Overpass', sans-serif;
	font-weight: 400;
	display: block;
	font-size: 10px;
	text-align: center;
	color: #666;
	letter-spacing: 0.06em;
}


.footer-ban{
padding: 0px 30px 15px;
}

.ban-container a img {
transition:opacity 0.5s ease-in-out;
}

.ban-container a:hover img {
opacity:0.7;
}

.ban-container div{
padding:0;
margin-bottom:20px;
}































/* tablet 600px - 799px */
@media only screen and (min-width: 600px) {

/* common parts
----------------------------------------- */
/* page-visual */
.page-visual {
	position: relative;
	display: flex;
	align-items: flex-end;
	justify-content: center;
	height: 230px;
	z-index: -100;
	color: #fff;
	text-align: center;
}
.page-visual-ttl {
	position: relative;
	padding-bottom: 50px;
}
.page-visual .jpn {
	display: block;
	margin-bottom: 3px;
	font-size: 24px;
	font-weight: 600;
}
.page-visual .eng {
	font-family: 'Overpass', sans-serif;
	font-weight: 700;
	display: block;
	font-size: 11px;
	letter-spacing: 0.02em;
}
.page-visual-ttl::before {
	content: "";
	display: block;
	position: absolute;
	bottom: 0;
	left: 50%;
	width: 2px;
	height: 25px;
	margin-left: -1px;
	background-color: #fff;
}
.page-visual-ttl::after {
	content: "";
	display: block;
	position: absolute;
	bottom: -25px;
	left: 50%;
	width: 2px;
	height: 25px;
	margin-left: -1px;
	background-color: #005657;
}

/* ttl */
.sec-ttl-vertical {
	position: relative;
	padding: 60px 0 0 60px;
}
.sec-ttl-vertical::before {
	display: block;
	content: '';
	position: absolute;
	top: 0;
	left: 35px;
	width: 1px;
	height: 90px;
	background-color: #005657;
	-ms-transform: rotate(45deg);
	-webkit-transform: rotate(45deg);
	transform: rotate(45deg);
}
.sec-ttl-vertical .eng {
	font-family: 'Overpass', sans-serif;
	font-weight: 400;
	display: block;
	margin-bottom: 12px;
	font-size: 13px;
	line-height: 1.0;
	letter-spacing: 0.01em;
}
.sec-ttl-vertical .jpn {
	display: block;
	font-size: 26px;
	line-height: 1.0;
}
.sec-ttl-vertical .ttl-let-green {
	color: #005657;
}

.slash-ttl-wapper {
	padding: 0 60px 0 0;
	text-align: center;
}
.slash-ttl {
	position: relative;
	display: inline-block;
	margin: 45px;
	
	font-size: 26px;
	line-height: 1.2;
}
.slash-ttl span {
	color: #005657;
}
.slash-ttl::before {
	display: block;
	position: absolute;
	top: 0;
	left: 35px;
	width: 1px;
	height: 90px;
	background-color: #005657;
	-ms-transform: rotate(45deg);
	-webkit-transform: rotate(45deg);
	transform: rotate(45deg);
}

.page-sub-ttl {
	font-size: 28px;
	line-height: 1.2;
	text-align: center;
}
.page-sub-ttl span {
	color: #005657;
}

/* btn */
.line-btn {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 210px;
	height: 55px;
	margin: 0 auto;
	background-color: #fff;
}
.line-btn-inner {
}
.line-btn-inner span {
	font-family: 'Overpass', sans-serif;
	font-weight: 400;
	font-size: 14px;
	line-height: 1.0;
}
.line-btn-inner::before {
	content: "";
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	width: 1px;
	height: 46px;
	background-color: #005657;
}
.line-btn-inner::after {
	content: "";
	display: block;
	position: absolute;
	bottom: 0;
	right: 0;
	width: 1px;
	height: 46px;
	background-color: #005657;
}
.line-btn-inner span::before {
	content: "";
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	width: 202px;
	height: 1px;
	background-color: #005657;
}
.line-btn-inner span::after {
	content: "";
	display: block;
	position: absolute;
	bottom: 0;
	right: 0;
	width: 202px;
	height: 1px;
	background-color: #005657;
}

/* header
----------------------------------------- */
#top #header {
	position: relative;
	height: 100vh;
	min-height: 800px;
}
.header-logo {
	width: 240px;
	height: 40px;
	position: absolute;
	top: 35px;
	left: 30px;
}

/* slide-menu-btn */
.slide-menu-btn {
	position: absolute;
	top: 42px;
	right: 42px;
	z-index: 10000;
}
.slide-menu-nav {
	box-sizing: border-box;
	display: none;
	width: 100%;
	position: absolute;
	left: 0;
	top: 0;
	padding: 90px 0 65px;
	background-color: rgba(255,255,255,0.9);
	z-index: 9000;
	text-align: center;
}
.slide-menu-nav .gnav li {
	position: relative;
	margin-bottom: 20px;
	padding-bottom: 20px;
}
.slide-menu-nav .gnav li:last-child {
	margin-bottom: 0;
}
.slide-menu-nav .gnav li::after {
	content: "";
	position: absolute;
	bottom: 0px;
	left: 50%;
	width: 3px;
	height: 1px;
	margin-left: -2px;
	background-color: #000;
}
.slide-menu-nav .gnav li:last-child::after {
	display: none;
}
.slide-menu-nav .gnav a {
	display: inline-block;
	font-size: 15px;
	color: #000;
	line-height: 1.4;
	letter-spacing: 0.16em;
}
/* position-active */
#technology .slide-menu-nav .gnav01 a,
#quality .slide-menu-nav .gnav02 a,
#facility .slide-menu-nav .gnav03 a,
#company .slide-menu-nav .gnav04 a,
#credo .slide-menu-nav .gnav05 a,
#recruit .slide-menu-nav .gnav06 a{
	color: #999999;
}

/* menu-trigger */
.menu-trigger,
.menu-trigger span {
	display: inline-block;
	transition: all .3s;
	box-sizing: border-box;
}
.menu-trigger {
	position: relative;
	width: 25px;
	height: 16px;
}
.menu-trigger span {
	position: absolute;
	left: 0;
	width: 100%;
	height: 1px;
	background-color: #fff;
}
.menu-trigger span:nth-of-type(1) {
	top: 5px;
}
.menu-trigger span:nth-of-type(2) {
	top: 12px;
}
.menu-trigger.active span:nth-of-type(1) {
	-webkit-transform: translateY(4px) rotate(-45deg);
	transform: translateY(4px) rotate(-45deg);
	background-color: #000;
}
.menu-trigger.active span:nth-of-type(2) {
	-webkit-transform: translateY(-2px) rotate(45deg);
	transform: translateY(-3px) rotate(45deg);
	background-color: #000;
}

/* contents
----------------------------------------- */
/* strong-intro-sec */


.strong-intro-ttl {
	position: relative;
	margin-bottom: 20px;
	text-align: center;
}
.strong-intro-ttl .eng {
	font-family: 'Overpass', sans-serif;
	font-weight: 400;
	display: block;
	letter-spacing: -0.04em;
	font-size: 80px;
	line-height: 1.0;
	color: #eaf3f3;
}
.strong-intro-ttl .jpn {
	box-sizing: border-box;
	display: block;
	position: absolute;
	top: 50%;
	left: 0;
	width: 100%;
	margin-top: -0.5em;
	padding-left: 0.5em;
	font-size: 20px;
	line-height: 1.0;
}
.strong-intro-ttl .jpn .ttl-let-green {
	color: #005657;
}
.strong-intro-ttl .jpn .ttl-let-large {
	font-size: 24px;
}

.strong-intro-main-text {
	margin-bottom: 40px;
	padding: 0 80px;
	font-size: 13px;
	line-height: 2.0;
}
.strong-intro-main-img {
	width: 60%;
	margin: 0 auto;
}

/* text-list01 */
.text-list01 {
	display: flex;
	flex-wrap: wrap;
}
.text-list01 li {
	width: 47%;
	margin: 0 6% 15px 0;
	padding-bottom: 15px;
	border-bottom: 1px solid #e5e5e5;
	font-size: 12px;
}
.text-list01 li:nth-child(even) {
	margin-right: 0;
}

/* its-shotoku-box */
.its-shotoku-box {
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	max-width: 1300px;
	padding: 20px 30px 20px;
}
.its-shotoku-box::before {
	content: '';
	position: absolute;
	top: 0;
	left: 30px;
	width: 60%;
	height: 1px;
	background-color: #005657;
}
.its-shotoku-box::after {
	content: '';
	position: absolute;
	bottom: 0;
	right: 30px;
	width: 60%;
	height: 1px;
	background-color: #005657;
}
.its-shotoku-img {
	max-width: 30%;
	margin: 0;
}
.its-shotoku-text {
	width: 70%;
	padding: 0 7%;
	font-size: 12px;
	line-height: 2.2;
}




/* footer
----------------------------------------- */
.page-top {
	display: block;
	position: absolute;
	top: 0;
	right: 30px;
	width: 50px;
	height: 50px;
}
.footer-gnav {
	margin-bottom: 40px;
	padding: 0 40px;
}
.footer-gnav li {
	display: inline-block;
	margin: 0 20px 0 0;
	font-size: 12px;
}
.footer-gnav li:last-child {
	margin-bottom: 0;
}
.footer-inner {
	padding: 40px 30px 25px;
	background-color: #f7f7f7;
	border-top: 1px solid #eaeaea;
}
.footer-company-area {
}
.footer-logo {
	display: block;
	width: 200px;
	height: 29px;
	margin-bottom: 15px;
}
.footer-address {
	margin-bottom: 40px;
	font-size: 11px;
}
.copyright {
	font-family: 'Overpass', sans-serif;
	font-weight: 400;
	display: block;
	font-size: 10px;
	text-align: center;
	color: #666;
	letter-spacing: 0.06em;
}


} /* tablet end */




































/* PC 800px - */
@media only screen and (min-width: 800px) {

.pc {
	display: block !important;
}
.sp {
	display: none !important;
}

/* common parts
----------------------------------------- */
/* page-visual */
.page-visual {
	position: relative;
	display: flex;
	align-items: flex-end;
	justify-content: center;
	height: 480px;
	z-index: -100;
	color: #fff;
	text-align: center;
}
.page-visual-ttl {
	position: relative;
	padding-bottom: 80px;
}
.page-visual .jpn {
	display: block;
	margin-bottom: 7px;
	font-size: 40px;
	font-weight: 600;
}
.page-visual .eng {
	font-family: 'Overpass', sans-serif;
	font-weight: 700;
	display: block;
	font-size: 16px;
	letter-spacing: 0.02em;
	text-transform: capitalize;
}
.page-visual-ttl::before {
	content: "";
	display: block;
	position: absolute;
	bottom: 0;
	left: 50%;
	width: 2px;
	height: 40px;
	margin-left: -1px;
	background-color: #fff;
}
.page-visual-ttl::after {
	content: "";
	display: block;
	position: absolute;
	bottom: -40px;
	left: 50%;
	width: 2px;
	height: 40px;
	margin-left: -1px;
	background-color: #005657;
}

/* ttl */
.sec-ttl-vertical {
	position: relative;
	display: inline-block;
	padding: 95px 0 0 80px;
}
.sec-ttl-vertical::before {
	display: none;
	content: '';
	position: absolute;
	top: 0;
	left: 55px;
	width: 1px;
	height: 120px;
	background-color: #005657;
	-ms-transform: rotate(45deg);
	-webkit-transform: rotate(45deg);
	transform: rotate(45deg);
}
.sec-ttl-vertical .eng {
	font-family: 'Overpass', sans-serif;
	font-weight: 400;
	display: block;
	position: absolute;
	top: 95px;
	left: 210px;
	margin-bottom: 12px;
	font-size: 16px;
	line-height: 1.0;
	letter-spacing: 0.06em;
	-webkit-writing-mode: vertical-rl;
	-ms-writing-mode: tb-rl;
	writing-mode: vertical-rl;
}
.sec-ttl-vertical .jpn {
	display: inline-block;
	font-size: 36px;
	line-height: 1.0;
	-webkit-writing-mode: vertical-rl;
	-ms-writing-mode: tb-rl;
	writing-mode: vertical-rl;
	letter-spacing: 0.1em;
}
.sec-ttl-vertical .ttl-let-green {
	font-size: 60px;
    font-weight: bold;
    line-height: 1.0;
    font-family: "Montserrat";
    color: #FBBD02;
}
.sec-ttl-vertical .ttl-let-green::before{
	display: none;
}
.slash-ttl-wapper {
	padding: 0 80px 0 0;
	text-align: center;
}
.slash-ttl {
	position: relative;
	display: block;
	margin: 80px;
	font-size: 60px;
	text-align: center;
	    font-weight: bold;
    line-height: 1.0;
    font-family: "Montserrat";
    color: #FBBD02;
}
.slash-ttl span {
	font-size: 60px;
	    font-weight: bold;
    line-height: 1.0;
    font-family: "Montserrat";
    color: #FBBD02;
}
.slash-ttl::before {
	display: block;
	position: absolute;
	top: 0;
	left: 55px;
	width: 1px;
	height: 120px;
	background-color: #005657;
	-ms-transform: rotate(45deg);
	-webkit-transform: rotate(45deg);
	transform: rotate(45deg);
}

.page-sub-ttl {
	font-size: 36px;
	line-height: 1.2;
	text-align: center;
}
.page-sub-ttl span {
	color: #005657;
}

/* btn */
.line-btn {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 260px;
	height: 70px;
	margin: 0 auto;
	background-color: #fff;
	transition: all .3s;
}
.line-btn:hover {
	color: #005657;
}
.line-btn-inner {
}
.line-btn-inner span {
	font-family: 'Overpass', sans-serif;
	font-weight: 400;
	font-size: 17px;
	line-height: 1.0;
}
.line-btn-inner::before {
	content: "";
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	width: 1px;
	height: 62px;
	background-color: #005657;
	transition: all .3s;
}
.line-btn-inner::after {
	content: "";
	display: block;
	position: absolute;
	bottom: 0;
	right: 0;
	width: 1px;
	height: 62px;
	background-color: #005657;
	transition: all .3s;
}
.line-btn-inner span::before {
	content: "";
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	width: 252px;
	height: 1px;
	background-color: #005657;
	transition: all .3s;
}
.line-btn-inner span::after {
	content: "";
	display: block;
	position: absolute;
	bottom: 0;
	right: 0;
	width: 252px;
	height: 1px;
	background-color: #005657;
	transition: all .3s;
}
.line-btn:hover .line-btn-inner::before {
	width: 1px;
	height: 70px;
}
.line-btn:hover .line-btn-inner::after {
	width: 1px;
	height: 70px;
}
.line-btn:hover .line-btn-inner span::before {
	width: 260px;
	height: 1px;
}
.line-btn:hover .line-btn-inner span::after {
	width: 260px;
	height: 1px;
}


/* header
----------------------------------------- */
#top #header {
	position: relative;
	height: 100vh;
	min-height: 980px;
}
.header-logo {
	width: 315px;
	height: 52px;
	position: absolute;
	top: 45px;
	left: 50px;
}
.header-nav-pc {
	position: absolute;
	top: 130px;
	right: 0;
	padding: 0 0 26px 0;
	border-bottom: 1px solid;
	border-color: rgba(255,255,255,0.3)
}
.header-nav-pc li {
	position: relative;
	display: inline-block;
	margin-right: 50px;
}
.header-nav-pc li:last-child {
	margin-right: 70px;
}
.header-nav-pc li a {
	display: inline-block;
	color: #fff;
	line-height: 1.0;
	font-size: 15px;
	font-weight: 600;
	transition: all .3s;
}
.header-nav-pc li:first-child a {
	padding-left: 5px;
}
.header-nav-pc li a:hover {
	color: #999;
}
.header-nav-pc li a::after {
	content: "";
	display: block;
	position: absolute;
	bottom: -27px;
	left: 0;
	width: 100%;
	height: 1px;
	opacity: 0;
	background-color: #fff;
	transition: all .3s;
}
.header-nav-pc li a:hover::after {
	opacity: 1;
}
.header-nav-pc a span {
	display: block;
	font-family: 'Overpass', sans-serif;
	font-weight: 700;
	padding-top: 14px;
	opacity: 0.3;
	font-size: 10px;
	letter-spacing: 0.02em;
	line-height: 1.0;
}
.header-contact {
	box-sizing: border-box;
	display: flex;
	justify-content: center;
	position: absolute;
	top: 370px;
	right: 0;
	width: 60px;
	height: 160px;
	padding-top: 40px;
	background-color: #005657;
	transition: all .3s;
}
#top .header-contact {
	position: absolute;
	top: 330px;
	right: 0;
}
.header-contact:hover {
	background-color: #0c6c6d;
}

.header-contact span {
	-webkit-writing-mode: vertical-rl;
	-ms-writing-mode: tb-rl;
	writing-mode: vertical-rl;
	color: #fff;
	font-size: 13px;
	font-weight: 600;
}
/* position-active */
#technology .header-nav-pc .gnav01 a::after,
#quality .header-nav-pc .gnav02 a::after,
#facility .header-nav-pc .gnav03 a::after,
#company .header-nav-pc .gnav04 a::after,
#credo .header-nav-pc .gnav05 a::after,
#recruit .header-nav-pc .gnav06 a::after {
	content: "";
	display: block;
	position: absolute;
	bottom: -27px;
	left: 0;
	width: 100%;
	height: 1px;
	opacity: 1;
	background-color: #fff;
}

/* contents
----------------------------------------- */
/* strong-intro-sec */


.strong-intro-ttl {
	position: relative;
	margin-bottom: 50px;
	text-align: left;
}
.strong-intro-ttl .eng {
	font-family: 'Overpass', sans-serif;
	font-weight: 400;
	display: block;
	letter-spacing: -0.04em;
	font-size: 160px;
	line-height: 1.0;
	color: #fff;
}
.strong-intro-ttl .jpn {
	box-sizing: border-box;
	display: block;
	position: absolute;
	top: 50%;
	left: 0;
	width: 100%;
	margin-top: -0.5em;
	padding-left: 0.5em;
	font-size: 60px;
	    font-weight: bold;
	line-height: 1.0;
	font-family: "Montserrat";
	    color: #FBBD02;
}
.strong-intro-ttl .jpn .ttl-let-green {
	    color: #FBBD02;
}
.strong-intro-ttl .jpn .ttl-let-large {
	font-size: 44px;
}
.strong-intro-main {
	position: relative;
}
.strong-intro-main::after {
	content: '';
	position: absolute;
	bottom: 10%;
	right: 0;
	width: 100%;
	height: 70%;
	background-color:#054586;
	z-index: -100;
}
.strong-intro-main-text {
	box-sizing: border-box;
	position: absolute;
	top: 0;
	right: 6.7%; 
	width: 52%;
	min-width: 660px;
	margin: 0;
	padding: 60px 100px 90px;
	background-color: #fff;
	z-index: 100;
	font-size: 16px;
	line-height: 1.8;
	font-family: "Montserrat";
}
.strong-intro-main-img {
	width: 57%;
	min-width: 760px;
	max-width: 1000px;
	margin: 0;
}

/* text-list01 */
.text-list01 {
	display: flex;
	flex-wrap: wrap;
	max-width: 1000px;
	margin: 0 auto;
}
.text-list01 li {
	width: 29%;
	margin: 0 6.5% 25px 0;
	padding-bottom: 25px;
	border-bottom: 1px solid #e5e5e5;
	font-size: 15px;
}
.text-list01 li:nth-child(even) {
	margin-right: 6.5%;
}
.text-list01 li:nth-child(3n) {
	margin-right: 0;
}

/* its-shotoku-box */
.its-shotoku-box {
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	max-width: 1300px;
	margin: 0 auto;
	padding: 10px 0 10px;
}
.its-shotoku-box::before {
	display: none;
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 60%;
	height: 1px;
	background-color: #005657;
}
.its-shotoku-box::after {
	content: '';
	position: absolute;
	bottom: 0;
	right: 0;
	width: 60%;
	height: 1px;
	background-color: #005657;
}
.its-shotoku-img {
	max-width: 30%;
	margin: 0;
}
.its-shotoku-text {
	width: 70%;
	padding: 0 10%;
	    font-size: 17px;
    line-height: 1.7;
    font-family: Montserrat";
	    
}



/* footer
----------------------------------------- */
.page-top {
	display: block;
	position: absolute;
	top: 0;
	right: 50px;
	width: 70px;
	height: 70px;
	transition: all .3s;
}
.page-top:hover {
	opacity: 0.4;
}
.footer-gnav {
	margin-bottom: 40px;
	padding: 0 40px;
	text-align: center;
}
.footer-gnav li {
	display: inline-block;
	margin: 0 60px 0 0;
	font-size: 14px;
}
.footer-gnav li a {
	transition: all .3s;
}
.footer-gnav li a:hover {
	color: #999;
}
.footer-gnav li:last-child {
	margin: 0;
}
.footer-inner {
	box-sizing: border-box;
	width: 85%;
	margin: 0 auto;
	padding: 70px 60px 30px;
	background-color: #f7f7f7;
	border-top: 1px solid #eaeaea;
}
.footer-company-area {
}
.footer-logo {
	display: block;
	width: 264px;
	height: 38px;
	margin-bottom: 20px;
}
.footer-address {
	margin-bottom: 50px;
	font-size: 13px;
}
.copyright {
	font-family: 'Overpass', sans-serif;
	font-weight: 400;
	display: block;
	font-size: 12px;
	text-align: center;
	color: #666;
	letter-spacing: 0.06em;
}




.footer-ban {
	box-sizing: border-box;
	width: 85%;
	margin: 0 auto;
	padding: 0px 60px 30px;
}

.ban-container {
display: flex;
justify-content:space-around;
}

.ban-container div{
padding:0 0.8%;
}

} /* PC end */























/* PC 1000px - */
@media only screen and (min-width: 1000px) {




} /* PC 1000px - end */


.youtube2 {
  position: relative;
  width: 100%;
  padding-top: 56.25%;
}
.youtube2 iframe {
  position: absolute;
  top: 0;
  right: 0;
  width: 100% !important;
  height: 100% !important;
}

.news-body a{
text-decoration:underline !important;
}

