@charset "utf-8";

/*--------------------------------------------------------------------------------------------------

   second

--------------------------------------------------------------------------------------------------*/
.banner img.pc {
  display: inline-block;
}

.phone-call.pc {
  display: inline-block;
}

.phone-call.sp {
  display: none;
}

.sp {
  display: none;
}

.pc {
  display: block;
}

.logo.sp {
	display: none !important;
}


@media all and (max-width: 768px) {

  .sp {
    display: block;
  }
  
  .pc {
    display: none;
  }
		
		.mw_wp_form input[type=submit] {
    -webkit-appearance: none;
		}
		
		.logo.pc {
			display: none !important;
		}
  
  .banner img.pc {
    display: none;
  }
  
  .phone-call.sp {
    display: inline-block;
  }
 
  .phone-call.pc {
    display: none;
  }
  
		.alignright, .alignleft, .aligncenter {
			display: block;
			margin: 0 auto 20px;
		}
		
  footer .info-menu ul  {
    display: none!important;
  }
  
		nav.pc {
    display: none;
  }

  .fl-left,
  .fl-right {
    float: none;
  }
  
  .container {
    width: 100%;
    padding-left: 10px!important;
    padding-right: 10px!important;
  }

  .full-max-width {
    max-width: 100%!important;
  }
  
  .full-width {
    width: 100%!important;
  }
  
		.header-top {
			height: 60px;
			background-color: #FFF;
		}
		.header-top h1 {
			margin: 10px 0 0;
			width: auto;
			float: none;
			text-align: left;
		}

		.header-top h1 a {
			display: inline;
		}

  .menubt {
    z-index: 3;
    width: 60px;
    height: 60px;
    display: block;
    right: 0%;
    top: 0;
    position: absolute;
    background: #000;
  }
  
  .menubt span {
    width: 30px;
    height: 3px;
    display: block;
    background: #fff;
    border-radius: 0;
    position: absolute;
    right: 15px;
    top: 20px;
    transition: all 0.4s;
    transform: rotate(0deg);
  }
  
  .menubt .top {
    -webkit-transform: translateY(-250%);
    -ms-transform: translateY(-250%);
    transform: translateY(-250%);
  }
  
  .menubt .bottom {
    -webkit-transform: translateY(250%);
    -ms-transform: translateY(250%);
    transform: translateY(250%);
  }
  
  .menubt .menuclick1 {
    transform: rotate(-215deg);
  }
  
  .menubt .menuclick2 {
    background-color: rgba(255,255,255,0);
  }
  
  .menubt .menuclick3 {
    transform: rotate(215deg);
  }
  
  .menubt .text-menu {
    color: #fff;
    padding-top: 32px;
  }

  nav .container {
    padding: 0;
  }
  
  nav {
    background: rgba(255,255,255,0.8);
    position: absolute;
    top: 60px;
    left: 0;
    z-index: 1;
    height: auto;
    padding-bottom: 40px;
    padding-top: 20px;
    width: 100%!important;
  }
  
  nav ul {
    width: 100%!important;
    height: auto!important;
  }
  
  nav li {
    width: 100%;
	height: auto;
    padding: 10px 0 13px 0;
  }
  
  nav li:hover,
		nav li:last-child:hover {
	background: none;
 }
  
  nav li a {
    width: 100%!important;
    line-height: normal;
    text-align: center;
    color: #000 !important;
    font-size: 16px;
    height: auto!important;
  }

  nav li a:hover {
			background: none;
  }
  
  nav li a:hover::before {
    top: 0px;
  }
		
		.header-top ul li {
			float: none;
			display: block;
		}
		
		.header-top ul li a {
			display: block;
		}

		.header-top ul li a:hover {
   color: #002878 !important;
		}
		
		.header-top ul li:last-child a:hover {
   color: #749A1F !important;
		}
		
  nav .info-contact {
    margin-top: 30px;
				text-align: center;
  }
  
		  nav .info-contact a {
					display: inline-block;
					width: 130px;
					height: 76px;
					color: #FFF;
				}

		  nav .info-contact a {
					padding: 14px 0 0;
				}
				
  /*nav .info-contact a:hover div {
    text-indent: -9999px;
    position: relative;
  }*/
  
		nav .info-contact .contact-header span.jpn {
	text-indent: 100%;
	overflow: hidden;
	white-space: nowrap;
	font-size: 0;
		}
		
				nav .info-contact .contact-header:hover span.en {
	text-indent: 100%;
	overflow: hidden;
	white-space: nowrap;
	font-size: 0;
		}

 	nav .info-contact .contact-header:hover span.jpn {
	font-size: 14px;
	text-indent: 0;
	overflow: inherit;
 color: #FFF;
		}
  
		nav .info-contact .contact-header:hover 
  nav .tel-header,
  nav .contact-header {
    width: 150px;
    padding: 10px;
    margin: 0 15px;
    color: #fff;
    text-align: center;
  }
  
   nav .tel-header img ,
  nav .contact-header img {
    height: 32px;
				display: block;
				margin: 0 auto 4px;
  }
  
  nav .tel-header {
    background: #82b227;
  }
  
  nav .contact-header {
    background: #002878;
  }
  
  nav li:nth-child(5) {
    display: none;
  }
		
		nav li a:hover span:nth-child(2) {
	padding-top: 0 !important;
}


  header .container  {
    background: #fff;
  }
  
  .header-top {
    z-index: 20;
  }
  
  header .header-top .flex {
    height: 60px;
  }
  
  header h1 {
    margin-right: 23px;
  }
  
  header h1 img {
    width: 222px;
  }

  .top-page {
			height: 60px;
			background-image: none;
  }
  
  .top-page .banner {
			display: block;
			position: relative;
			top: 0;
  }
		
		.sp-top-banner {
		 max-width: 100%;
			height: auto;
		}
  
  .top-page .banner img.sp {
  } 
  
  h2 {
    margin-bottom: 10px;
  }
  
  h2 .line {
    display: inline-block;
  }

  .table .cell,
  .table,
  .table .row,
  input[type="text"], textarea  {
    display: block;
    width: 100%!important;
  }
  
  .page {
    margin-top: 60px;
  }
		
		.page h2 {
			 font-size: 36px !important;
		}
		
  footer .info-contact .text {
    flex-wrap: wrap;
    -ms-flex-wrap: wrap;
  }
  
  footer .info-contact .info {
    margin: 0 5px;
  }
  
  footer .info-contact .info-phone {
    margin-bottom: 20px;
  }
  
  footer .info-detail {
    padding: 35px 0 40px 0; 
    text-align: center;
  }
  
  footer .info-detail .address {
    margin: 25px 0 0 0;
    text-align: left;
  }
  
  footer .info-detail .container {
    display: -webkit-box;
    display: -ms-flexbox;
    display: -webkit-flex;
    display: flex;
    -ms-justify-content: center;
    flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    justify-content: center;
    flex-direction: initial;
    -ms-flex-direction: initial;
  }
  
  h2 .line {
    display: inline-block;
    position: relative;
  }
  
  h2 .line::before {
    position: absolute;
    left: 0;
    top: 50%;
    width: 100%;
    height: 1.1px;
    background: #d2d2d2; 
    z-index: -1;
  } 
  
  #ptop {
    position: fixed;
    bottom: 2px;
    right: 10px;
				z-index: 2;
  }
  #ptop:hover {
				opacity: 1;
		}
		
		.scroll{
margin: 0 0 40px;
overflow: auto;
white-space: nowrap;
}
.scroll::-webkit-scrollbar{
 height: 5px;
}
.scroll::-webkit-scrollbar-track{
 background: #F1F1F1;
}
.scroll::-webkit-scrollbar-thumb {
 background: #BCBCBC;
}

  
  
/*--------------------------------------------------------------------------------------------
  top
--------------------------------------------------------------------------------------------*/
  
  h2 {
    position: relative;
  }
  
  h2.line span {
    z-index: 1;
    background: #f7f7f7;
  }
  
  h2.line::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    width: 100%;
    height: 2px;
    background: #d2d2d2;
    z-index: 1;
  }
  
  h2.line span::before, 
  h2.line span::after {
    left: 0;
    right: 0;
    width: 0;
    background: none;
  }
  
  #top-affiliated h2.line::before {
    background: none;
  }
  
  #top-affiliated h2.line span {
    background: none;
    padding: 0;
  }
  
  footer .info-contact h2.line span {
    background: #000;
  }

  #top-news ul {
    flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    justify-content: center;
    -ms-justify-content: center;
    margin-bottom: 0;
  }
  
  #top-news li {
    width: 100%;
    background-size: 1px 100%, 100% 1px, 1px 100%, 100% 1px;
    margin-bottom: 20px;
  }
  
  #top-news li a {
    text-align: center;
				padding: 20px 25px 30px;
  }
  
  #top-news .title-top,
  #top-news h3  {
    text-align: left;
  }
  
  #top-box02 .box-strenght,
  #top-box02 .box-company,
  #top-box02 .box-works  {
    height: 628px;
  }
  
  #top-box02 .info::before {
    width: 100%;
    border-bottom: none;
    border-right: none;
    height: 628px;
  }
  
  #top-box02 .left::before { 
    background: rgba(0,0,0,0.4);
  }
  
  #top-box02 .right::before { 
    background: rgba(255,255,255,0.7);
  }
  
  #top-box02 .info .text {
    width: auto;
    height: 628px;
    padding: 0 20px;
  }
  
  #top-box02 .info p {
    margin-bottom: 25px;
  }
  
  #top-box02 .info .box-link {
    text-align: center;
  }
  
  #top-affiliated .flex {
    flex-wrap: wrap;
  }
  
  #top-affiliated .flex a {
    margin-bottom: 40px;
  }
  
  #top-affiliated {
    padding-bottom: 20px;
  }
  
  #top-affiliated h2 .line {
    padding: 0;
  }
		
.info-contact {
  padding: 20px 0 40px 0 !important;
}
  
		#service h2 {
			margin-bottom: 10px;
		}
		
		#service h3 {
			font-size: 18px;
		}
		
  #service li>div {
    text-align: center;
  }
  
  #service li .text {
    text-align: left;
  }
  
  #service li .text {
    width: 100%;
    padding: 30px 15px 20px 15px;
    margin-top: 0;
  }
  
  #service li .left img, #service li .right img {
    position: relative;
  }
  
  #service .container {
    padding: 0!important;
  }
  
  #service .box-work {
    width: 100%;
    height: 600px;
    background: url(../../image/service/bg-work-sp.png) no-repeat center top;
  }
  
  #service .box-work .frame {
    border-bottom: none;
    border-right: none;
    height: 303px;
    width: 100%;
    background: rgba(255,255,255,0.8);
  }
  
  #service .box-work .info {
    padding: 55px 32px 40px 32px;
  }
  
  #service .photo img {
    /*padding: 0 10px;*/
  }
		
		#service .s-process {
			margin: -40px 10px 0;
			padding: 40px 0 0;
		}
		
		#service .s-process p.title {
			margin-top: 50px;
			font-size: 22px;
			line-height: 1.1;
		}
  
		#service .s-process p.title span {
			display: block;
			font-size: 14px;
			padding-left: 0;
		}
		
		#service .s-process .ippan {
			font-size: 16px;
		}
		
		#service li h4 {
			font-size: 17px;
		}
		
		#service li h4 .font-blue {
			font-size: 22px;
		}
		
		#service .s-process dt {
			font-size: 17px;
			margin-bottom: 5px;
		}
		
		#works h2 {
			margin-bottom: 20px;
		}
			
  #works .container {
    padding: 0!important;
  }
  
  #works .info .list-photo img {
    margin-bottom: 15px;
  }
  
  #works .info .list-photo .flex {
    display: inline-block;
    text-align: center;
  }
  
  #works .info .list-photo .flex img {
    margin: 0 0 15px 0;
    width: calc(50% - 15px);
  }

  #works .info .list-photo .flex img:nth-child(2n+1) {
    margin-right: 15px;
  }    
  
  #works .info .list-photo .flex img:nth-child(2n+0) {
    margin-right: 0;
  } 
  
  #works .info {
    padding: 20px 0 60px 0!important;
  }
  
  #works h3, #company h3, #contact h3 {
    width: auto;
				padding: 30px;
				font-size: 20px;
  }
  
  #works h3 {
    margin: 0 10px;
				font-size: 20px;
  }
		
		#works h4 {
			font-size: 20px;
		}
  
		#works h3 .pc {
			display: none;
		}
		
  #works .info .list-photo {
    padding: 0 10px 25px 10px;
  }
  
  #works .intro {
    padding: 25px 30px 35px 30px;
  }
  
  #works .text-col p {
    padding: 15px 10px;
  }
		
		#works .text-col .title {
  padding: 15px 0;
}
		
		#works .text-col .title {
			width: 130px;
		}
  
		#company h2 {
			margin-bottom: 10px !important;
		}
		
  #company h2.line span {
    padding: 0 20px;
  }
  
  #company .box02 {
    padding-top: 0;
  }
  
  #company .box02 .flex {
    flex-direction: column;
    -ms-flex-direction: column;
  }
  
  #company .box02 li {
    display: -webkit-box;
    display: -ms-flexbox;
    display: -webkit-flex;
    display: flex;
    margin: 0 20px 0 20px;
  }
  
  #company .box02 li span.font-blue {
    flex-shrink: 0;
    -ms-flex-shrink: 0;
  }
  
  #company .box04 li {
    padding: 55px 0px 0 0;
    text-align: center;
  }
  
  #company .box04 li .text {
    text-align: left;
  }
  
  #company .box04 li .text {
    margin-top: 40px;
  }
  
  #company .table-info .cell-text {
    padding-left: 20px;
  }
  
  #company .table-info .cell-title {
    text-align: left;
    padding-left: 20px;
  }
  
  #company .table-info {
    padding-top: 20px;
				padding-bottom: 30px;
  }
		
  #company .table-info .row:nth-child(10) .cell-text {
			margin-top: -1px;
		}
 
  #company .box06 .photo-map {
    margin: 20px 0 45px 0px;
  }
  
  #company .box06 .flex {
    flex-direction: column;
    -ms-flex-direction: column;
  }
  
  #company .box06 .info li {
    margin-right: 0;
    margin-top: 20px;
  }
  
  #company .box06 .info li img {
			width: 30px;
			height: auto;
		}
		
		#company .box06 h5 span {
			line-height: 30px;
		}
		
		#company .box06 .info li p {
			margin-left: 40px;
		}

  #company .box06 .info-top {
    display: block;
    text-align: center;
  }
  
  #company .box06 .info-top a {
			display: inline-block;
			text-decoration: underline;
		}

  #company .box06 .info-top div {
    text-align: left;
  }
  
  #company .box06 .info-top div {
    margin-right: 0;
    margin-bottom: 20px;
  }
  
  #company .box03 p {
    margin-top: 20px;
				font-size: 17px;
				line-height: 1.8;
  }
  
  #company .box01 .fl-left {
    margin-top: 30px;
  }
		
		#company .box01 .c-greet {
	float: none;
	width: 100%;
	padding: 0;
}

#company .box01 .c-greet .text {
  font-size: 20px;
  line-height: 1.4;
  font-weight: bold;
			margin: 0 0 20px;
}

#company .box01 .c-greet .sig {
	text-align: right;
	margin-top: 20px;
}

#company .box01 .c-greet-img {
	float: none;
	padding: 30px 0 0;
}

  #company .box02 .p {
	float: none;
	width: 100%;
	margin-bottom: 30px;
}

#company .box02 .q {
	float: none;
	width: 100%;
}

#company .box02 .p h4 ,
#company .box02 .q h4 {
  padding: 2px 15px;
  border-left: 10px solid #012778;
  font-size: 20px;
  font-weight: bold;
  margin-bottom: 20px;
  line-height: 1.2;
}

#company .box02 .p p,
#company .box02 .q p {
	margin-left: 24px;
}

#company .box06 .for ul {
	padding: 10px 20px 20px;
}

  #news {
    padding-bottom: 60px;
  }
		
		#news h2 {
			margin-bottom: 10px;
		}
		
		#news #top-news li {
			margin-bottom: 20px;
		}
  
		#news .pagination li {
			width: 40px;
			height: 50px;
			margin: 0 4px;
		}
		
		#news .content-right h4 {
			font-size: 18px;
		}
		
  .news_detail .box-link {
    flex-direction: column;
    justify-content: center;
    -ms-flex-direction: column;
    -ms-justify-content: center;
  }
  
  .news_detail .box-link .btn {
    margin: 10px auto;
  }
		
		.nobtn {
			width: 210px;
			margin: 10px auto;
			color: #000;
			background-color: #EEE;
			border: 1px solid #AAA;
		}
		
		.news_detail h3 {
			font-size: 20px;
		}
		
		.news_detail .top {
			font-size: 16px;
			margin-bottom: 0;
		}
  
  #contact .intro .box-phone .text-phone img {
    margin-top: 8px;
  }
  
  #contact .intro .box-phone .text-phone .phone-call {
    font-size: 35px;
  }
  
  #contact .content-form .cell-title {
    padding-top: 20px!important;
  }
  
  #contact .content-form .cell {
    padding-top: 10px !important;
  }
  
  #contact .content-form .radio {
    margin-right: 20px;
    margin-bottom: 10px;
  }
  
  #contact .content-form textarea {
    margin-top: 10px;
  font-size: 16px;
  }
  
  #contact .content-form input[type="text"] {
    margin-right: 0;
    display: block;
    margin-bottom: 15px;
  }
		
		input[type=text] {
  font-size: 16px;
		}
		
		#contact .content-form .table {
			background-color: transparent;
		}
		
		.mw_wp_form_confirm .btn:first-child {
			margin-right: 0;
			margin-bottom: 10px;
		}
  
  #contact h3 {
    margin-bottom: 30px;
  }
  
  .contact-confirm .content-form .cell {
    padding-top: 10px !important;
  }
  
  #contact .content-form .cell-title {
    font-weight: bold;
  }
  
  .contact-confirm .box-link .btn:first-child {
    margin-right: 20px;
  }
  
  .contact-confirm .content-form .row:first-child .cell {
    padding-top: 20px !important;
  }
  
  #world .banner {
    height: 380px;
    background: url(../../image/world/banner-sp.png) no-repeat center center;
    background-size: cover;
  }
  
  #world .banner .text1 {
    height: 230px;
  }
  
  #world .banner .text2 {
    top: 330px;
    height: 44px;
  }
  
  #world .box-tab {
    padding: 20px 0 20px 0;
				text-align: center;
  }
  
		#world .box-tab .container h1 {
			float: none !important;
		}
		
  #world .box-tab h1 {
    margin-bottom: 19px;
  }
		
  #world .box-tab h1 img {
			width: 290px;
			height: auto;
		}

  
  #world .box-tab ul {
    width: 100%;
				margin: 0 auto !important;
				padding: 0 0 10px;
				text-align: center;
				background-color: #000;
				float: none !important;
  }
  
  #world .box-tab li {
    padding: 0 5% 0 4%;
				display: inline-block;
				float: none !important;
  }
		
		  #world .box-tab li:last-child {
					padding: 0 5% 0 4%;
				}

  #world .box-tab .container {
				text-align: center;
				padding: 0!important;
  }
  
		.wc01 {
			padding: 34px 0 0;
		}
		
		#world-box01 .container {
	  margin-top: 0px;
			padding-top: 0px;
			padding-bottom: 0;
	 }
		
  #world-box01 .info li,
  #world-box01 .info li:last-child  {
    flex-direction: column;
    -ms-flex-direction: column;
  }
  
  #world-box01 .info li .text {
    margin-bottom: 30px;
  }
		
		#world-box02 {
  color: #fff;
		padding-top: 124px;
	margin-bottom: -124px;
}

  #world .list-photo {
    display: inline-block;
    text-align: center;
  }
  
  #world .list-photo img {
   /* margin: 10px;*/
  }
  
  #world-box04 .fl-left {
    margin-bottom: 30px;
    background: none;
  }
  
  #world-box04 .fl-left .flex img {
    flex-shrink: 0;
    align-self: start;
    -ms-flex-shrink: 0;
    -ms-align-self: start;
  }
  
  #world-box04 .info-contact .info-mail {
    margin: 0;
  }
  
  #world .list-photo img {
    /*margin: 7px;
    width: calc(50% - 20px);*/
  }
  
  #world-box03 li img {
    height: auto;
    max-width: 100%;
  }
		
		#world-box02 td,
#world-box02 th {
  text-align: center;
  padding: 10px;
  font-weight: bold;
  /*line-height: 30px;*/
  border-left: 2px solid #fff;
  border-top: 2px solid #fff;
}
  
  /* table reponsive bootrap*/
  
  table {
    border-collapse: collapse;
    border-spacing: 0;
  }
  
  .table-responsive {
    overflow-x: auto !important;
  }
		
.table-responsive{
margin: 0 0 20px;
overflow: auto;
white-space: nowrap;
}
.table-responsive::-webkit-scrollbar{
 height: 5px;
}
.table-responsive::-webkit-scrollbar-track{
 background: #F1F1F1;
}
.table-responsive::-webkit-scrollbar-thumb {
 background: #BCBCBC;
}

/*  
   .table-responsive > .table > tbody > tr > td, .table-responsive > .table > tbody > tr > th, .table-responsive > .table > tfoot > tr > td, .table-responsive > .table > tfoot > tr > th, .table-responsive > .table > thead > tr > td, .table-responsive > .table > thead > tr > th {
    white-space: nowrap;
  }
  */
		
  /* End table reponsive bootrap*/
  
		#world #world-box03 h2,
		#world #world-box02 h2 {
			margin-top: 30px;
			margin-bottom: 30px;
		}

		#world #world-box01 h2 {
			margin-top: 40px;
		}
		
		#world #world-box04 h2 {
			margin-top: 50px;
		}
		
		#world h2 .text-jp {
			font-size: 30px;
			line-height: 36px;
		}
		
  #world h2 .text-en {
    font-size: 28px;
  }
		
		.inlineframe {
			width: 100%;
		}
		
		#world-box03 h3 {
			font-size: 20px;
			padding-top: 10px;
			padding-bottom: 10px;
		}
		
		#world-box03 h3 span {
			font-size: 18px;
		}
		
		#world-box03 h4 {
			padding-bottom: 10px;
		}
		
		#world-box03 li {
			padding-bottom: 10px;
		}
		
		#world-box04  {
	margin-top: -84px;
	padding-top: 84px;
}

.backHome {
	background-color: #c0c0c0;
	padding: 40px 10px;
}

.backHome a {
	display: block;
	width: 380px;
	margin: 0 auto;
	font-size: 18px;
	font-weight: 600;
	text-align: center;
	background-color: #FFF;
	padding: 27px;
}

.backHome a:hover {
	opacity: 0.7;
}

}

@media all and (max-width: 520px) {
  #world-box04 .fl-left .flex {
    flex-direction: column;
    justify-content: center;
    -ms-flex-direction: column;
    -ms-justify-content: center;
  }
  
  #world-box04 .fl-left .flex img {
    max-width: 100%;
    margin-bottom: 20px;
    align-self: center;
    -ms-align-self: center;
  }
  
  #world-box04 .info .text {
    margin-left: 0;
  }
}