﻿
/* CSS Document */
@media screen and (max-width:1150px){
	#header .header_logo {
		width: 200px;
		height: 120px;
		padding: 24px;
	}
	#header .header_inner {
		width: calc(100% - 200px);
	}
	#gnav > ul > li + li {
	    margin-left: 16px;
	}
	#gnav > ul > li.contact {
	    margin-left: 24px;
	}
	.langchange {
	    margin-left: 16px;
	}
	#gnav > ul > li.contact a {
		padding: 32px 24px;
	}
	#subSlider {
		justify-content: center;
		width: 100%;
		max-width: 600px;
		margin: 0 auto;
	}
	.mv_bottom {
		bottom: 32px;
		transform: translate(-50%,0);
	}
	#topMv .mv_catch {
		top: calc(50% - 32px);
	}
	.mv_news {
		position: relative;
		transform: none;
		width: 100%;
	}
	#lwRotate .lwclm {
		display: block;
	}
	#lwRotate .lwclm .left_box,
	#lwRotate .lwclm .right_box {
		width: 100%;
	}
	.flow_list {
		justify-content: center;
	}
	.flow_list li + li {
		margin-left: 20px;
	}
 
}



@media screen and (min-width:970px){
	.sp-only { display: none!important; }

	#gnav > ul > li:not(.contact) a:before {
		content: "";
		width: 0;
		height: 0;
		border-radius: 50%;
		background: #ffc914;
		position: absolute;
		opacity: .2;
		bottom: 0;
		left: 50%;
		transition: .8s;
		transform: translate(-50%,50%);
		-webkit-filter: blur(15px);
		-moz-filter: blur(15px);
		-o-filter: blur(15px);
		-ms-filter: blur(15px);
		filter: blur(15px);
	}
	#gnav > ul > li:not(.contact) a:after {
		content: "";
		position: absolute;
		bottom: 0;
		left: 50%;
		width: 100%;
		height: 6px;
		background: #1956af;
		border-radius: 6px 6px 0 0;
		transform: translateX(-50%);
		opacity: 0;
		visibility: hidden;
		transition: .3s;
	}
}


@media screen and (max-width:969px){
	/*==========================
	　　　　　  Common
	==========================*/
	#wrapper {
		margin-top: 56px;
	}
	.w10,.w20,.w30,.w40,.w50,.w60,.w70,.w80,.w90 {width: 100%;}
	.left_clm  {float: left;}
	.right_clm {float: right;}
	.pc-only { display: none!important; }

	#overlay {
		position: fixed;
		width: 100vw;
		height: 100vh;
		top: 0;
		left: 0;
		background: rgba(0,0,0,.72);
		opacity: 0;
		visibility: hidden;
		z-index: -1;
		transition: .6s;
	}
	#overlay.open {
		opacity: 1;
		visibility: visible;
		transition: .6s;
		z-index: 99998;
	}
	#topSus .outer,
	.sus_menu li a {
		border-radius: 10px;
	}


	/*==========================
	　　　　　　Header
	==========================*/
	#header .header_inner {
		height: 56px;
	}
	#header .header_logo {
		height: 100px;
		z-index: 1;
	}
	#header.fixed .header_logo {
	    height: 56px;
	}
	/* gnav */
	#gnav {
		position: fixed;
		top:50%;
		left: 50%;
		width: calc(100% - 64px);
		max-width: 400px;
		height: calc(100vh - 120px);
		background: #fff;
		transition: .4s;
		transform: translate(-50%,-50%);
		border-radius: 16px;
		box-shadow: 0 0 32px rgba(0,0,0,.08);
		z-index: 99999;
		display: flex;
		justify-content: center;
		align-items: center;
		flex-wrap: wrap;
		opacity: 0;
		visibility: hidden;
		transition: .6s;
		max-height: 560px;
		overflow: scroll;
	}
	#gnav.open {
		transition: .6s;
		opacity: 1;
		visibility: visible;
	}
	#gnav ul:not(.langchange) {
		display: block;
		padding: 0 24px 32px;
		width: 100%;
	}
	#gnav > ul:not(.langchange) > li a,
	#gnav > ul:not(.langchange) > li.contact a {
		padding: 24px;
		text-align: center;
		font-size: 1.4rem;
	}
	#gnav > ul:not(.langchange) > li + li,
	#gnav > ul:not(.langchange) > li.contact {
		margin-left: 0;
	}
	#gnav > ul:not(.langchange) > li + li:not(.contact) {
		border-top:1px solid #ebecef;
	}
	#gnav > ul:not(.langchange) > li a:before,
	#gnav > ul:not(.langchange) > li a:after {
	    content: "";
	    position: absolute;
	    top: 50%;
	    right: 16px;
	    display: block;
	}
	#gnav > ul:not(.langchange) > li a:before {
	    width: 10px;
	    height: 1px;
	    background: #ebecef;
	    transform: translateY(-50%);
	}
	#gnav > ul:not(.langchange) > li a:after {
	    width: 5px;
	    height: 5px;
	    border-top: 1px solid #ebecef;
	    border-right: 1px solid #ebecef;
	    transform: translateY(-50%) rotate(45deg);
	}
	#header .langchange {
		width: 100%;
		justify-content: center;
		margin: 32px 0;
	}

	/* burger button */
	#burger {
		display: block;
		width: 18px;
		height: 18px;
		text-align: center;
		position: fixed;
		top: 20px;
		right: 15px;
		z-index: 999999;
	}
	#burger span {
		display: block;
		height: 2px;
		width: 18px;
		background-color: #000;
		margin: 4px auto;
		transition: .5s;
	}
	#burger.open span:first-child {
		transform: translateY(3px) rotate(45deg);
		transition: .5s;
		background: #fff;
	}
	#burger.open span:last-child {
		transform: translateY(-3px) rotate(-45deg);
		transition: .5s;
		background: #fff;
	}



	/*==========================
	　　　　　　Main
	==========================*/
	/*　Common
	￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣*/
	.c-btn01 {
	    margin-top: 32px;
	}


	/*　TopPage
	￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣*/
	.topsc {
	   padding: 80px 24px;
	}
	#subSlider {
		max-width: 400px;
	}
	.c-sc01,
	#topSus .inner,
	#topRecruit .title_wrap {
		display: block;
	}
	.c-sc01 .left_box,
	.c-sc01 .right_box,
	#topSus .left_box,
	#topSus .right_box {
		width: 100%;
	}
	.c-sc01_nav li {
	    padding: 0 16px;
	}
	.c-sc01_nav li:nth-child(1), .c-sc01_nav li:nth-child(4) {
	    width: 23.6%;
	}
	.c-sc01_nav li:nth-child(2), .c-sc01_nav li:nth-child(3) {
	    width: 26%;
	}
	.c-sc01_bottom {
	    margin-top: 32px;
	    padding-top: 16px;
	}
	#topSus .right_box,
	#topRecruit .c-btn01 {
		margin-top: 40px;
	}
	.sus_menu li a {
		height: 140px;
	}
	#topTech .left_box {
	    width: 60%;
	}
	#topTech .right_box {
		transform: none;
		width: 30%;
	}
	#topTech .right_box .image:last-child {
		position: relative;
		bottom: auto;
		left: auto;
	}




	/*　LowerPage -- 共通
	￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣￣*/
	#lwMv {
		height: 400px;
	}
	.lw_mv_title .main {
	    font-size: 4.8rem;
	}
	.ir_top_wrap {
		padding-top: 104px;
	}
	.lwtop_title {
	    font-size: 4rem;
	}
	.lwtop_menu li {
		padding: 40px 0;
	}
	.lwtop_menu li:nth-child(odd) {
	    padding-right: 40px;
	}
	.lwtop_menu li:nth-child(even) {
	    padding-left: 40px;
	}
	.single_wrap {
		display: block;
	}
	.single_wrap .main,
	.single_wrap .side {
		width: 100%;
	}
	.single_wrap .side {
		margin-top: 80px;
	}
	#lwProductPost #subSlider {
		max-width: none;
	}
	.lwclm {
		display: block;
	}
	.lwclm .left_box,
	.lwclm .right_box {
		width: 100%;
	}
	.mag_list {
		display: block;
	}
	.mag_list li {
		width: 100%;
	}
	.mag_list li:nth-child(odd),
	.mag_list li:nth-child(even) {
		padding: 64px 0;
		border-right: none;
	}
	.mag_list li .image {
		position: relative;
		bottom: 0;
		width: 100%;
	}
	#lwStory .lwclm .left_box,
	#lwStory .lwclm .right_box {
		width: 100%;
	}
	#lwStory .lwclm .left_box .image {
		text-align: center;
	}


	/*==========================
	　　　　　　Footer
	==========================*/
	.footer_middle {
		display: block;
	}
	.footer_sitemap {
		justify-content: center;
	}
	.footer_btn {
		width: 100%;
		max-width: 700px;
		margin: 40px auto 0;
	}
}


@media screen and (max-width:640px){
	#header .header_logo {
		width: 160px;
		padding: 16px;
		height: 88px;
	}
	#header .header_inner {
	    width: calc(100% - 160px);
	}
	.langchange {
	    margin-left: 8px;
	}
	#topMv .mv_catch .mv_catch_main {
	    font-size: 4.1rem;
	    letter-spacing: 0;
	}
	#topMv .mv_catch .mv_catch_sub {
	    font-size: 1.5rem;
	    margin-top: 24px;
	}
	#topMv .mv_catch .mv_txt {
		font-size: 1.4rem;
	}
	.mv_news {
		padding: 0;
	}
	.news_list li {
		display: block;
	}
	.news_list li .title {
		padding: 0;
		margin: 8px 0 0;
		width: 100%;
		border: 0;
	}
	.mv_news .news_list li .title {
		width: 100%;
		margin: 8px 0 0;
		border: none;
	}
	#topMv,
	#mainSlider .slick-slide {
		height: 420px;
	}
	#mainSlider {
	    position: relative;
	    height: 100%;
	}
	#mainSlider .slick-slide img {
		object-position: 70% top;
	}
	#mainSlider .slick-slide:nth-child(2) img {
	    object-position: 50% top;
	}
	#topTech .outer {
		display: block;
	}
	#topTech .left_box,
	#topTech .right_box {
		width: 100%;
	}
	.c-title01 .jp {
		font-size: 2.4rem;
	}
	.c-title01 .eng {
	    font-size: 1.4rem;
	    margin-top: 8px;
	}
	.c-title01 {
	    margin-bottom: 32px;
	}
	.c-list01 {
		margin-top: 32px;
		display: block;
	}
	.c-list01 li {
		width: 100%;
	}
	.c-list01 li:nth-child(even) {
		margin: 0;
	}
	.c-list01 li:nth-child(2) {
		border-top: 0;
	}
	.c-list01 li a {
		font-size: 1.7rem;
	}
	#topTech .right_box {
		display: flex;
		justify-content: space-between;
		align-items: flex-start;
		margin-top: 40px;
	}
	#topTech .right_box .image:first-child {
		margin-right: 24px;
	}
	.topsc {
	    padding: 56px 16px;
	}
	#topTech {
	    padding-top: 160px;
	    padding-bottom: 56px;
	}
	.c-sc01_nav li:nth-child(1),
	.c-sc01_nav li:nth-child(2),
	.c-sc01_nav li:nth-child(3),
	.c-sc01_nav li:nth-child(4) {
		width: 50%;
		padding: 24px;
	}
	.c-sc01_nav li:nth-child(odd) {
		padding-left: 0;
	}
	.c-sc01_nav li:nth-child(even) {
		padding-right: 0;
	}
	.c-sc01_bottom {
		padding-top: 0;
	}
	.c-sc01_nav li + li {
		border: none;
	}
	.c-sc01_nav li:not(:nth-child(-n+2)) {
		border-top: 1px solid #ebecef;
	}
	.c-sc01_nav li:nth-child(even) {
		border-left: 1px solid #ebecef;
	}
	.c-sc01_nav li .caption {
	    font-size: 1.4rem;
	    margin-top: 16px;
	}
	#topSus, #topIR, #topRecruit {
		padding: 0 16px;
	}
	#topSus .outer {
		padding: 56px 16px;
	}
	.sus_menu li a {
	    height: 100px;
	}
	.sus_menu li + li {
	    margin-top: 16px;
	}
	.sus_menu li .title .jp {
	    font-size: 1.7rem;
	}
	.recruit_title .eng {
	    font-size: 4rem;
	}
	#topRecruit .title_wrap {
		margin-top: 24px;
	}
	.recruit_title .jp {
	    font-size: 1.6rem;
	    margin-top: 8px;
	}
	#topRecruit .c-btn01 {
	    margin-top: 24px;
	    max-width: none;
	    width: 100%;
	}
	.tab_wrap {
		overflow-x: scroll;
		padding-bottom: 16px;
		margin-bottom: 16px;
	}
	.tab_wrap .tab {
		width: 600px;
		margin: 0;
	}
	.tab_wrap .cat_list {
		min-width: 540px;
		margin: 0;
		justify-content: flex-start;
		flex-wrap: nowrap;
	}
	#lwMv {
	    height: 240px;
	    padding: 0 16px;
	}
	#lwMv .bread {
	    bottom: 40px;
	    right: auto;
	    left: 16px;
	}
	.bread li {
		font-size: 1.1rem;
	}
	.lw_content_wrap {
		margin-top: -24px;
	}
	.lw_mv_title {
		margin-bottom: 24px;
	}
	.lw_mv_title .main {
	    font-size: 3rem;
	}
	.lw_content_inner {
	    padding: 64px 16px 80px;
	}
	.lwtop_inner {
		display: block;
	}
	.lwtop_title {
	    font-size: 3rem;
	}
	.lwtop_inner .bread {
		margin-top: 24px;
	}
	.ir_top_wrap {
	    padding-top: 64px;
	    width: calc(100% - 32px);
	}
	.ir_top_wrap .txt {
	    line-height: 1.7;
	    margin-top: 32px;
	}
	#wrapper.lwtop:before {
	    width: 320px;
	    height: 294px;
	}
	.lwtopsc {
	    margin-top: 56px;
	}
	#lwTop {
	    padding: 0 16px;
	}
	#lwTop .topsc {
	    padding: 56px 0;
	}
	.lwtop_menu {
		margin-top: 72px;
	}
	.lwtop_menu li,
	.lwtop_menu li:nth-child(odd),
	.lwtop_menu li:nth-child(even) {
		width: 50%;
		padding: 24px;
	}
	.lwtop_menu li:nth-child(odd) {
		padding-left: 0;
	}
	.lwtop_menu li:nth-child(even) {
		padding-right: 0;
	}
	.lwtop_menu .title {
	    font-size: 1.6rem;
	}
	.lwtop_menu .title a {
		padding: 0 16px 0 0;
	    font-size: 1.4rem;
	    display: flex;
	    justify-content: flex-start;
	    align-items: center;
	    height: 64px;
	}
	.arrow01:before {
		right: 0;
	}
	.arrow01:after {
		right: 6px;
	}
	.product_list li .title {
	    font-size: 1.7rem;
	    margin-top: 16px;
	    margin-bottom: 16px;
	}
	#ltTopSus, #ltTopCompany, #lwSitemap {
	    padding-bottom: 56px;
	}
	.lwsc {
	    padding: 56px 0;
	}
	.lwsc.lastsc {
	    padding-bottom: 72px;
	}
	#lwProductPost #mainSlider .slick-slide {
		height: 240px;
	}
	#lwProductPost #subSlider {
		margin-top: -18px;
	}
	.c-table02 thead th, .c-table02 thead td, .c-table02 tbody th, .c-table02 tbody td {
	    padding: 12px;
	    font-size: 1.4rem;
	    line-height: 1.4;
	}
	.c-list02 .item {
		font-size: 1.3rem;
	}
	.c-title04, .single_content h4 {
		font-size: 2rem;
		margin-bottom: 24px;
	}
	.pager_wrap {
		margin-top: 32px;
	}
	#lwContent .pager_wrap .c-btn01 {
		width: 100%;
		max-width: none;
	}
	#lwContent .pager_wrap .c-btn01 + .c-btn01 {
	    margin: 16px 0 0;
	}
	#lwProductPost .c-title04 {
	    margin-top: 64px;
	}
	.square {
		max-width: 100px;
	}
	.flow_list li + li:after {
		width: 24px;
		height: 24px;
		right: 106%;
	}
	.flow_list li + li:before, .flow_list li + li span:after {
		right: 108%;
	}
	.c-title02 {
		font-size: 1.8rem;
	}
	.tech_list li {
		display: block;
	}
	.tech_list li .square {
	    max-width: 229px;
	    margin: 0 auto;
	}
	.tech_list li .content {
		width: 100%;
		margin: 32px 0 0;
	}
	.message_catch {
		font-size: 1.8rem;
	}
	.mag_list li:nth-child(odd), .mag_list li:nth-child(even) {
	    padding: 32px 0;
	}
	.message_catch br {
		display: none;
	}
	.c-table03 tbody tr th, .c-table03 tbody tr td {
		padding: 10px 8px;
		font-size: 1.3rem;
	}
	.c-table03 tbody tr th:not(:last-child):after, .c-table03 tbody tr td:not(:last-child):after {
		height: calc(100% - 20px);
	}
	.cat_list li a, .cat_list li .item {
		padding: 24px;
		white-space: nowrap;
		background: #f8f8f8;
	}
	.c-list04 li {
		display: block;
		padding: 16px 0;
	}
	.c-list04 li:before, .c-list04 li:after {
		right: 8px;
	}
	.c-list04 li .title {
		font-size: 1.5rem;
	}
	.news_list li .title, .c-list04 li .title {
		width: 100%;
		padding: 0 32px 0 0;
		margin: 8px 0 0;
	}
	#lwContent .pager_wrap .c-btn01 + a {
		margin: 24px 0 0;
		text-align: center;
		width: 100%;
	}
	.single_title {
    	font-size: 2.6rem;
    }
    .single_content {
	    margin-top: 40px;
	}
	.single_content h4:not(:first-child) {
	    margin-top: 64px;
	}
	.c-table01 tbody tr th, .c-table01 tbody tr td {
		padding: 16px 0;
		display: block;
	}
	.c-list03 li {
		font-size: 1.5rem;
	}
	.gray_box {
		padding: 24px;
	}
	.sdgs_list {
		flex-wrap: wrap;
	}
	.sdgs_list li {
	    width: 64px;
	    margin: 2px;
	}
	.message_content .message_catch {
	    margin-bottom: 16px;
	}
	.message_content {
	    margin-top: 32px;
	}
	.message_bottom {
		display: block;
		margin-top: 40px;
	}
	.message_bottom .name {
		margin-top: 16px;
		font-size: 1.7rem;
	}
	.story_list .year .main {
	    font-size: 5.6rem;
	}
	.story_list .c-table01 {
	    margin-top: 24px;
	}
	.history_title {
		font-size: 2.4rem;
		margin-bottom: 16px;
	}
	.history_title br {
		display: none;
	}
	#lwOutline .gmap {
		padding-bottom: 0;
	}
	#lwOutline .gmap iframe {
		height: 200px;
	}
	#lwContent .c-btn01 {
		max-width: none;
	}
	.office_list li {
		display: block;
	}
	.office_list li .image,
	.office_list li .content {
		width: 100%;
		padding: 0;
	}
	.office_list li .content {
		margin-top: 32px;
	}
	.office_list li .content .c-title02 {
		margin-bottom: 16px;
	}
	.c-list05 li {
		padding: 24px;
	}
	.c-list05 li + li {
	    margin-top: 16px;
	}
	.gmap {
	    padding-bottom: 56px;
	}
	.gmap iframe {
		height: 200px;
	}
	.contact_list li:nth-child(odd) {
		margin-right: 0;
	}
	.contact_list li {
		width: 100%;
	}
	.contact_list li:nth-child(2) {
		margin-top: 48px;
	}
	.form_tab li {
		padding: 16px;
		font-size: 1.5rem;
	}
	.contact_box {
	    padding: 40px 16px;
	}
	.form_tb tr th,
	.form_tb tr td {
		display: block;
		width: 100%;
	}
	#lwContact .wpcf7-list-item-label {
		line-height: 1.5;
		text-align: left;
		display: inline-block;
	}
	.agree__wrap {
	    padding: 32px 0 40px;
	    font-size: 1.4rem;
	}
	.contact_list .title {
		margin-bottom: 16px;
	}
	.contact_list .group {
	    margin-top: 8px;
	}
	.tech_list li .c-table01 {
	    margin-top: 16px;
	}
	#lwDisclaimer .c-btn01 {
		max-width: none;
	}
	.faq_box + .faq_box {
		margin-top: 8px;
	}
	.faq_box dt {
		padding: 16px;
		font-size: 1.4rem;
		padding-right: 32px;
	}
	.faq_box dt:after {
		width: 5px;
		height: 5px;
		right: 16px;
	}
	.faq_box dd {
		padding: 16px;
		font-size: 1.4rem;
	}
	.footer_top {
		display: block;
	}
	.footer_logo {
		text-align: center;
	}
	#footer {
	    padding: 56px 16px;
	}
	#footer .langchange {
		margin: 24px 0 0;
		justify-content: center;
	}
	.footer_sitemap{
		display: block;
	}
	.footer_nav {
		padding: 24px 0;
	}
	.footer_nav:first-child {
		padding-top: 0;
	}
	.footer_nav ul {
		padding-left: 16px;
	}
	.footer_nav + .footer_nav {
	    border-top: 1px solid #ebecef;
	    margin: 0;
	}
	.footer_middle {
		padding-top: 40px;
	}
	.footer_top {
	    padding-bottom: 40px;
	}
	#footer_subnav {
		width: 100%;
	}
	#footer_subnav ul {
		justify-content: center;
	}
	.copyright {
		width: 100%;
		margin-top: 32px;
		text-align: center;
	}
}

@media screen and (max-width:640px){
	#topMv .mv_catch .mv_catch_main {
    	font-size: 3.6rem;
	}
	#subSlider li + li {
	    margin-left: 8px;
	}
}




