@charset "utf-8";

/*
  File Name   : common.css
  Description : コンテンツエリア共通
*/

/* section
============================================================ */
*{
	box-sizing:border-box;
	padding:0;
	margin:0;
	word-break:normal;
	word-wrap:break-word;

}
body{
	font-family: "メイリオ", Meiryo, "Meiryo",
    "ヒラギノ角ゴ ProN W3", "HIragino Kaku Gothic Pro W3",
    "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro",
    YuGothic, "游ゴシック", Osaka, "ＭＳ Ｐゴシック", "MS PGothic", "MS P Gothic", sans-serif;
	background-color:#fff;
	color:#595857;
	line-height: 1.85;
    font-size: 14px;
    color: #595857;
    word-wrap: break-word;
    width: 100%;
    min-width: 320px;
    margin: 0;
    padding: 0;
}
img{
	vertical-align:bottom;
	margin:0;
	padding:0;
	border:0;
	max-width:100%;
}
.clearfix:before,
.clearfix:after{
	display: table;
 	content: " ";
}
.clearfix:after{
	clear: both;
}
table {
  border-spacing: 0;
  border-collapse: collapse;
}
td,
th {
  padding: 0;
}
table {
  background-color: transparent;
}
table col[class*="col-"] {
  position: static;
  display: table-column;
  float: none;
}
table td[class*="col-"],
table th[class*="col-"] {
  position: static;
  display: table-cell;
  float: none;
}
ul li{
	list-style:none;
}
h1,h2,h3,h4,h5,h6,p{
	margin:0px;
	font-size: 100%;
}

i{
	font-style: normal;
}

.fixedcontainer{
	width:1200px;
	margin:0 auto;
	padding:0px;
}
a:visited,
a:link,
a:hover,
a:active,
a:focus{
	outline:none;
	text-decoration:none;
}
a:hover{
	opacity:0.8;
	transition:opacity 0.5s ease;
}
a{
	color: inherit;
}
.nolink {
	pointer-events: none;
	cursor: auto;
}
.red{
	color:#c0163e;
}
.green{
	color: #8fc31f;
}

.bkyellow{
	background-color:#fff100;
}
.bold{
	font-weight:bold;
}
.btline{
	text-decoration:underline;
}
.underline{
	text-decoration:underline;
}
.text-center{
	text-align:center;
}
.text-left{
	text-align:left;
}
.text-right{
	text-align:right;
}

.flex{
  display:-webkit-flex;
  display:-webkit-box;
  display:-moz-flex;
  display:-moz-box;
  display:-ms-flexbox;
  display:flex;
  flex-direction:row;
  flex-wrap: nowrap;
}

.container{
    margin-left: auto;
    margin-right: auto;
    width:100%;
    max-width: 1200px;
}
.container_in{
    width: 100%;
    max-width: 1094px;
    margin-left: auto;
    margin-right: auto;
    margin-top: 25px;
    overflow: hidden;
}

header{
    text-align: center;
    width: 100%;
}
.header_top{
    text-align: left;
    padding: 30px 0;
    overflow: hidden;
}
.header_logo{
    display: inline-block;
    margin-right: 25px;
}
.header_logo img{
    width: 215px;
    vertical-align: inherit;
}
.header_title{
    font-size: 14px;
    display: inline-block;
    font-weight: normal;
	line-height: 1.2;
}
.header-lang {
	float: right;
	margin-right: 80px;
}
.header-lang-list {
	display: flex;
}
.header-lang-list li:first-child:after {
	content: "｜";
	margin: 0 15px;
}
.header-lang-list a:hover{
    color: #c0163e;
    opacity: 1;
}
.header_tel{
    float: right;
	text-align: center;
}
.header_tel_img {
	margin-bottom: 10px;
}
.header_tel_txt{
    font-size: 11px;
	line-height: 1.4;
}
.menu{
    text-align: right;
    /* font-size: 13.5px; */
    font-size: 12px;
}
.menu ul li{
    display: inline-block;
    position: relative;
}
.menu a{
	cursor: pointer;
}
.menu a:hover{
    color: #c0163e;
    opacity: 1;
}
.submenu{
	position: relative;
}
.submenu div{
	visibility: hidden; /* hides sub-menu */
  opacity: 0;
  position: absolute;
  top: 100%;
  left: 0;
  transform: translateY(-2rem);
  transition: all 0.3s ease-in-out 0s, visibility 0s linear 0.3s, z-index 0s linear 0.01s;

	width: calc(100% + 80px);

	z-index: 1;
	margin: 0 -40px;
	border-top: 1px solid #fff;
}
.submenu:focus div{
  visibility: visible; /* shows sub-menu */
  opacity: 1;
  transform: translateY(0%);
  transition-delay: 0s, 0s, 0.3s; /* this removes the transition delay so the menu will be visible while the other styles transition */
}
.submenu:focus-within div{
  visibility: visible; /* shows sub-menu */
  opacity: 1;
  transform: translateY(0%);
  transition-delay: 0s, 0s, 0.3s; /* this removes the transition delay so the menu will be visible while the other styles transition */
}
.submenu:hover div {
  visibility: visible; /* shows sub-menu */
  opacity: 1;
  transform: translateY(0%);
  transition-delay: 0s, 0s, 0.3s; /* this removes the transition delay so the menu will be visible while the other styles transition */
}
.submenu div a{
	display: block;
	padding: 10px 0;
	text-align: center;
	border-bottom: 1px solid #fff;
	background: #000000;
	color: #fff;
}

.submenu div a:hover{

}
.submenu:hover div{
	display: block;
}
.content{
	width: 824px;
	float: left;
}
.subtitle{
	font-size: 20px;
	background: #efefef;
	padding: 10px 0;
	font-weight: normal;
	margin-bottom: 20px;
}
.subtitle span{
	padding: 5px 10px;
	color: #fff;
	background: #c0163e;
}
.txt1{
	margin: 20px 0;
	text-align: center;
}
.subpage_bar{
	text-align: center;
	line-height: 4px;
	margin: 20px 0;
}
.company_div{
	border: 2px solid #dcdddd;
	padding: 25px 20px;
	margin: 20px 0;
}
.company_div p{
	border-bottom: 1px dashed #dcdddd;
}
.company_div p:first-child{
	border-top: 1px dashed #dcdddd;
}

.side{
	width: 250px;
	float: right;
}
.barnar{
	margin-bottom: 20px;
}
.barnar_link{
	display: block;
}
.barnar_link:hover{
	background: #c0163e;
}
.barnar_link:hover img{
	opacity: 0.5;
}
.company_barnar_link{
	display: block;
	padding: 26px 0 18px;
	text-align: center;
	font-size: 20px;
	background: #efefef;
	line-height: 1;
}
.company_barnar_link span{
	display: block;
}
.company_barnar_link img{
	vertical-align: middle;
}
.company_barnar_link .hover{
	display: none;
}
.company_barnar_link:hover .unhover{
	display: none;
}
.company_barnar_link:hover .hover{
	display: inline-block;
}
#news {
    font-size: 11px;
    margin-top: 15px;
}
.news_title{
	font-size: 15px;
}
#news dl {
    /* width: 240px; */
    width: 250px;
    height: 320px;
    overflow: auto;
    margin-top: 5px;
    padding: 10px 5px 10px 5px;
    background-color: #efefef;
}
#news dd {
    padding-bottom: 10px;
    margin-bottom: 10px;
    border-bottom: 1px #cfcfcf dotted;
}


.footer_menu{
	font-size: 12px;
	margin-bottom: 25px;
}
.footer_menu a:hover{
	color: #c0163e;
}
.footer_info{
	overflow: hidden;
}
.footer_info_company{
	margin-bottom: 10px;
	font-size: 12px;
	float: left;
}
.footer_info_bottom {
	font-size: 12px;
	margin-top: -1em;
}
.footer_info_img {
	margin-left: 40px;
	/* padding-top: 20px; */
	float: left;
}
.copyright{
	padding-right: 40px;
	float: right;
	font-size: 12px;
}
.footer{
	padding: 0 0 25px;
}

.g-nav{
	display: none;
}
.sp_top{
	display: none;
}
.menu-trigger{
	display: none;
}


/* sp
------------------------------------------------------------ */
@media screen and (max-width:768px){
	body{
		font-size: 12px;
	}
	.visible-sp{
		display:block;
	}
	.hidden-sp{
		display:none;
	}
	.header_tel{
		display: none;
	}
	.menu{
		display: none;
	}
	.sp_menu{
		display: block;
		position: fixed;
		width: 100%;
		padding: 2% 2%;
		top: 0;
		left: 0;
		z-index: 2;
		background: #fff;
	}
	.container{
		width: 96%;
		/* margin: 70px auto 0; */
		margin: 100px auto 0;
	}

	.header_title{
		display: block;
		text-align: center;
		padding: 3vw 0 1vw;
		font-size: 3.5vw;
	}
	.header_logo {
		width: 55%;
		max-width: 297px;
		min-width: 150px;
		margin-top: 5px;
	}
	.menu-trigger,
	.menu-trigger span {
	  display: inline-block;
	  transition: all .4s;
	  box-sizing: border-box;
	}
	.menu-trigger {
		float: right;
	  position: relative;
	  width: 40px;
	  height: 36px;
	}
	.menu-trigger span {
	  position: absolute;
	  left: 0;
	  width: 100%;
	  height: 5px;
	  background-color: #c0163e;
	}
	.menu-trigger span:nth-of-type(1) {
	  top: 0;
	}
	.menu-trigger span:nth-of-type(2) {
	  top: 16px;
	}
	.menu-trigger span:nth-of-type(3) {
	  bottom: 0;
	}
	.menu-trigger.active span:nth-of-type(1) {
	  -webkit-transform: translateY(16px) rotate(-45deg);
	  transform: translateY(16px) rotate(-45deg);
	}
	.menu-trigger.active span:nth-of-type(2) {
	  left: 50%;
	  opacity: 0;
	  -webkit-animation: active-menu-bar02 .8s forwards;
	  animation: active-menu-bar02 .8s forwards;
	}
	@-webkit-keyframes active-menu-bar02 {
	  100% {
	    height: 0;
	  }
	}
	@keyframes active-menu-bar02 {
	  100% {
	    height: 0;
	  }
	}
	.menu-trigger.active span:nth-of-type(3) {
	  -webkit-transform: translateY(-16px) rotate(45deg);
	  transform: translateY(-16px) rotate(45deg);
	}
	.g-nav{
		display: none;
		height: 100vh;
		top: 0;
		position: fixed;
		left: 0;
		z-index: 1;
		padding: 0 2%;
		width: 100%;
		/* padding-top: 80px; */
		padding-top: 100px;
		background: #ffffff;
		overflow-y: scroll;
	}
	.g-nav a{
		display: block;
		padding: 10px;
		/* font-size: 16px; */
		font-size: 15px;
		text-align: left;
	}
	.g-nav a::after{
		content: '>';
		display: inline-block;
		float: right;
	}
	.g-nav a.parent::after{
		content: '+';
		display: inline-block;
		float: right;
	}
	.g-nav a.parent.open::after{
		content: 'ㅡ	';
	}
	.g-nav ul li:nth-child(2n+1) a{
		background: #efefef;
	}
	.g-nav ul li:nth-child(2n+1) ul li:nth-child(2n+1) a{
		background: #fff;
	}
	.child{
		display: none;
	}
	.content{
		width: 100%;
		float: none;
	}
	.side{
		width: 100%;
		float: none;
		margin: 5vw auto;
	}
	#news dl{
		width: 100%;
	}
	.footer_menu{
		overflow: hidden;
	}
	.footer_menu a{
		width: 48%;
		margin-left: 4%;
		margin-bottom: 4%;
		display: block;
		padding: 10px 0;
		text-align: center;
		background: #595857;
		color: #fff;
		float: left;
	}
	.footer_menu a:nth-child(2n-1){
		margin-left: 0;
	}

	.footer_info{
		display: flex;
	}








	.sp_top{
		display: block;
		position: fixed;
		bottom: 2%;
		right: 2%;
		z-index: 1;
		width: 10vw;
    	max-width: 57px;
	}
	.footer_info_company{
		font-size: 12px;
		float: none;
	}
	.copyright{
		font-size: 12px;
		text-align: center;
		float: none;
		margin-top: 10px;
	}

	.subtitle{
		font-size: 14px;
	}
	.company_div{
		padding: 15px 10px;
	}
	.company_div p{
		border: none;
	}
	.company_div p:first-child{
		border: none;
	}
}

.company_div.history p{
	position: relative;
	padding-left: 120px;
}
.company_div.history p span{
	position: absolute;
	display: inline-block;
	width: 100px;
	left: 0px;
	margin-right: 0;
	border-bottom: 1px dashed #dcdddd;
}
@media screen and (max-width:768px){
	.company_div.history p{
		padding-left: 100px;
	}

	.company_div.history p span{
		border: none;
		width: 90px;
	}
}
.company_div.history{

}
.company_img{
	width: 185px;
	float: right;
	padding-left: 20px;
	text-align: center;
	position: relative;
    z-index: 1;
    background: #fff;
    font-size: 11px;
}
@media screen and (max-width:768px){
	.company_img{
		width: auto;
		float: none;
		padding: 0;
	}
	.company_div.outline p span{
		display: block;
		position: relative;
	}
	.company_div.outline p{
		padding-left: 0;
	}
	.company_div.outline iframe{
		width: 100%;
		height: 50%;
	}
}


.service_img{
	text-align: center;
	margin: 20px 0;
}
.service_img span{
	display: inline-block;
	padding: 10px;
}
.txt2{
	font-size: 17px;
	font-weight: bold;
	line-height: 1.5;
	text-align: center;
}
.txt1 img{
	vertical-align: middle;
}
.txt2 span{
	font-size: 20px;
	color: #c0163e;
	display: block;
}
.txt3{
	font-size: 20px;
	font-weight: bold;
	margin: 20px 0;
	text-align: center;
}
.notice {
	font-size: 14px;
	font-weight: bold;
	line-height: 1.5;
	color: #c0163e;
}
.company_div .service_img{
	margin: 10px 0;
}
.txt1.nomargin{
	margin: 0;
}
.company_div.service p{
	padding-left: 20px;
	position: relative;
}
.company_div.service p span{
	position: absolute;
	left: 0;
	color: #c0163e;
}
@media screen and (max-width:768px){
	.service_img span{
		width: 49%;
	}
	.txt1{
		text-align: left;
	}
	.txt3{
		font-size: 16px;
		text-align: left;
		margin: 10px 0;
	}
	.txt2{
		font-size: 14px;
		margin: 10px 0;
		text-align: left;
	}
	.txt2 span{
		font-size: 16px;
	}
	.subpage_bar{
		margin: 10px 0;
	}
}


.company_div.management{
	overflow: hidden;
	margin: 10px 0 0;
}
.company_div.management ul{
	width: 25%;
	border-top: 1px dashed #dcdddd;
	float: left;
}
.company_div.management ul.txt-nowrap{
	white-space: nowrap;
}
.management_one .company_div.management ul{
	width: 50%;
}
.management_txt{
	overflow: hidden;
}
.company_div.management ul li{
	border-bottom: 1px dashed #dcdddd;
}
.management_in{
  overflow: hidden;
}
.management_one{
	width: 48%;
	margin-right: 4%;
	float: left;
	margin-top: 30px;
}
.management_one .txt-small{
	font-size: 12px;
	color: #595857;
}
.management_one:nth-child(2n){
	margin-right: 0;
}
.management_img{
	text-align: center;
	padding: 10px 0;
}

@media screen and (max-width:768px){
	.company_div.management ul{
		width: 50%;
		border: none;
	}
	.company_div.management ul li{
		border: none;
	}
	.management_one {
	    width: 100%;
	    margin-right: 0%;
	    float: none;
	}
}

.company_div.certify .company_img{
	width: 165px;
	margin-top: -20px;
}
.certify_imgs{
	overflow: hidden;
}
.certify_imgs p{
	width: 50%;
	float: left;
	padding: 0 10px;
}
.management_one .txt2{
	font-weight: normal;
}
.management_one .mb30{
	margin-bottom: 30px;
}
@media screen and (max-width:768px){
	.certify_imgs p{
		width: 100%;
		padding: 0;
		margin-bottom: 20px;
	}
	.management_one .mb30{
		margin-bottom: 0;
	}
}

.environment .subtitle span{
	background: #8fc31f;
}
.environment .company_div.service p span{
	color: #8fc31f;
}

.sitemap{
	overflow: hidden;
}
.sitemap_in{
	width: 48%;
	margin: 0 1%;
	float: left;
	border: 2px solid #dcdddd;
	padding: 20px;
}
.sitemap_in p{
	border-bottom: 1px dashed #dcdddd;
}
.sitemap_in p:first-child{
	border-top: 1px dashed #dcdddd;
}

@media screen and (max-width:768px){
	.sitemap_in{
		width: 100%;
		margin: 0 0 20px;
		float: none;
		padding: 15px;
	}
	.sitemap_in p{
		border:none;
	}
	.sitemap_in p:first-child{
		border:none;
	}
}

.link-red:hover {
	color: #c0163e;
}
