/*****各ページ共通*****/
.container{
	margin: 0 auto;
}
.container,.page_header_text{
	width: 90%;
	max-width: 1200px;
}
.container a,.business_wrap a{
	text-decoration: underline;
}
.container a:hover,.business_wrap a:hover{
	text-decoration: none;
}

@media screen and (min-width:600px) and (max-width:959px) {
	.container,.page_header_text{
		width: 90%;
	}
}
@media screen and (max-width:599px) { 
	.container,.page_header_text{
		width: 94%;
	}	
}

/*** ページ見出し ***/

/* ページヘッダー画像・ビジネス画像 */
.page_header,.img_left,.img_right{
	width: 100%;
	height: auto;
	max-height: 600px;
    overflow: hidden;
}
.page_header img,.img_left img,.img_right img{
	width: 90vw;
	object-fit: cover;
}
.page_header img{
	height: 600px;
}
.img_left img,.img_right img{
	height: 600px;
}
.img_right{
	text-align: right;
}
#civil_eng img,#water_supply img{
	object-position: 50% 100%;
}

/* h1 */
.page_header_text{
	margin:10rem auto;
}
.page_header_text .title_en{
	font-size: 4.8rem;
	line-height: 4.8rem;
}
.page_header_text .title_jp{
	font-size: 2rem;
}
.page_header_text .title_jp_thanks{
	font-size: 3.2rem;
}
.achievement_header img{
	object-position: 100% 100%;
}

@media screen and (min-width:700px) and (max-width:979px) {
	 .page_header img,.img_left img,.img_right img{
		height: 520px;
	}
	.page_header_text{
		margin: 8rem auto;
	}
}
 @media screen and (max-width:699px) { 
	 .page_header img,.img_left img,.img_right img{
		height: 340px;
	}
	 .page_header img{
		width: 100%;
	}
	 .img_left img,.img_right img{
		width: 90%;
	}
 	.page_header_text{
		margin:4rem auto;
	}
	 #transport .img_left img{
		 object-position: 100% 50%;
	}
	 #dismantling .img_left img{
		 object-position: 0 50%;
	}
}

/* h2 */
.container h2,.business_container h2{
	font-size: 2.8rem;
	margin: 4.4rem 0 3.2rem;
	display: block;
	color: #222222;
	font-weight: 400;
}
@media screen and (max-width:599px) {
	.container h2,.business_container h2{
		font-size: 2.4rem;
		margin: 4.8rem auto 3.6rem;
	}
}

/* h3 */
.container h3,.business_container h3{
	font-size: 2rem;
	margin: 4rem auto 2rem;
	display: block;
	color: #222222;
	font-weight: 400;
}
@media screen and (max-width:599px) {
.container h3,.business_container h3{
		font-size: 1.8rem;
		margin: 3.6rem auto 1.6rem;
	}
}

/*** パンくずリスト ***/
.breadcrumbs{
	font-size: 1.4rem;
	margin: 6rem auto 0;
}

/*** ul ***/
.container ul,.business_section ul{
	margin: 1rem 0;
}
.container ul li,.business_section ul li{
	margin-left: 2rem;
}
.container ul li::before,.business_section ul li::before{
	content: '';
	display: inline-block;
	position: relative;
	left: -0.6rem;
	top: -0.3rem;
	width: 0.6rem;
	height: 0.6rem;
	background: #aaa;
}

/*** dl ***/
.container dl{
	display: flex;
	flex-flow: row wrap;
	width: 100%;
	margin: 1rem 0;
}
.container dt{
	flex-basis: 28%;
	padding: 20px;
	border-bottom: 1px solid #e8e8e8;
	font-weight: normal;
}
.container dd{
	flex-basis: 72%;
	margin:0;
	padding: 20px;
	border-bottom: 1px solid #e8e8e8;
}
.container dl dd dl,.container dl dd dl dt,.container dl dd dl dd{
	border: none;
	background: none;
	margin: 0;
	padding: 0;
}
.container dl dd dl dt{
	flex-basis: 36%;
}
.container dl dd dl dd{
	flex-basis: 64%;
}
@media screen and (min-width:600px) and (max-width:959px) {
	.container dl dd dl dt{
		flex-basis: 50%;
	}
	.container dl dd dl dd{
		flex-basis: 50%;
	}
}
@media screen and (max-width: 599px) {
	.container dl{
		flex-flow: column;
	}
	.container dt{
		border-bottom:none;
		border-right: none;
	}
	.container dl dd dl dd{
		padding-bottom: 1rem;;
	}
}

/***** 固定ページ *****/

/***** business *****/
.business_container{
	margin-top: 10rem;
}
.business_section{
	margin-bottom: 8rem;
}
.business_wrap{
	width: 80vw;
	margin: 0 auto 3.6rem;
	display: flex;
	justify-content: space-between;
}
.business_heding{
	width: 40%;	
}
.business_content{
	width: 54%;
	margin-top: 5.2rem;
}

@media screen and (max-width:799px) {
	.business_wrap{
		margin: 0 auto 3.6rem;
		display: block;
	}
	.business_heding{
		width: 100%;	
	}
	.business_content{
		width: 100%;
		margin-top: 0;
	}
}

/***** works *****/
#history{
	padding: .8rem 0 6rem;
}

/*** アコーディオン ***/
.ac {
  width: 100%;
	margin-bottom: 2.8rem;
}
.achievement_section .ac h3{
	margin: 1rem 0;
}
/* クリック領域 */
.ac_parent {
	padding-left:2rem;
	text-align: start;
	line-height: 6rem;
	cursor: pointer;
	position: relative;
	background: #fefefe;
}
.container #history h3{
	font-size: 2rem;
	margin: 0;
	background-color: #f8f8f8;
}
.container #history h3 .gengou{
	color: #A62A2A;
	padding-right: 1.6rem;
}
.ac_parent .ac{
	
}
/* クリックしたら表示される領域 */
.ac_child {
  display: none;
  padding: 1.2rem 0 2.4rem;
	border-top: solid 1px #f8f8f8;
	border-bottom: solid 1px #eee;
	border-left: solid 1px #eee;
	border-right: solid 1px #eee;
}
.ac_child dl dt,.ac_child dl dd{
	padding: 20px 0;
}
.ac_child dl dt{
	flex-basis: 76%;
	padding-right: 2rem;
}
.ac_child dl dd{
	flex-basis: 24%;
}

/* 擬似要素で下三角形を作成 */
.ac_parent:after {
	content: "";
	display: inline-block;
	position: absolute;
	top: 45%;
	right: 2rem;
	width: 10px;
	height: 10px;
	border-right: 3px solid #666;
	border-bottom: 3px solid #666;
	transform: translateY(-50%) rotate(45deg);
	transition: .3s;
}
/* オープン時にopenクラスを付与 */
.ac_parent.open:after {
	transform: rotate(225deg);
}
.ac_wrap{
	background: #fefefe;
    padding: 2% 20px 6%;
}
@media screen and (max-width:599px) { 
	.ac_child dl dt{
		padding-bottom: 0;
	}
}

/***** company *****/
dl.company{
	display: flex;
	flex-flow: row wrap;
	width: 100%;
	border: none;
}
dl.company dt,dl.company dd{
	border-bottom: 1px solid #ccc;
	background-color: #fefefe;
}
dl.company dt{
	flex-basis: 24%;
	padding: 20px;
	font-weight:bold;
	border-right:none;
}
dl.company dd{
	flex-basis: 76%;
	margin:0;
	padding: 20px;
}
dl.company dd dl dt{
	font-weight:normal;
}

@media screen and (max-width: 599px) {
	dl.company{
		flex-flow: column;
	}
	dl.company dt{
		padding-bottom:0;
		border-bottom:none;
	}
}

dl.company ul{
	margin: 0;
}
dl.company ul li{
	margin-left: 0;
}
dl.company ul li::before{
	content: none;
}
.map {
	height: 0;
	overflow: hidden;
	padding-bottom: 72%;
	position: relative;
}
.map iframe {
	position: absolute;
	left: 0;
	top: 0;
	height: 100%;
	width: 100%;
}

/***** contact *****/

/*** Contact Form7 ***/
.contact7 {
	max-width: 100%;
	box-sizing: border-box;
	margin-top: 6rem;
}
.contact7 dl{
	justify-content: space-between;
	align-items: baseline;
	margin-top: 4rem;
}
.contact7 dl,.contact7 dl dt,.contact7 dl dd{
	border: #fff;
}
.contact7 dl dt {
    display: flex;
    justify-content: space-between;
	flex-basis: 32%;
	background-color: #fff;
}
.contact7 dl dd {
	width: 630px;
	flex-basis: 68%;
}
.contact7 dl dd select,.contact7 dl dd textarea,.contact7 dl dd input{
	width: 100%;
	height: 100%;
	padding: 2rem 1.6rem;
	background: #f8f8f8;
}
 
/* 必須マーク */
.contact7 .must {
	background: #F1686D;
}
 /* 任意マーク */
.contact7 .optional {
	background: #999;
}
.contact7 .must,.contact7 .optional {
	color: #FFF;
	font-size: 12px;
	margin-left: 10px;
	padding: 5px 10px;
	letter-spacing: 2px;
}
/* CF7チェックボックスとラジオボタンを縦並びに */
span.wpcf7-list-item {
margin-top:5px;
}
.check{
	display: block;
	margin: 6rem auto 4rem;
}
.btn_contact7 input {
	width: 100%;
	padding: 1rem;
	background-color: #A62A2A;
	color: #FFF;
	font-size: 1.1em;
	font-weight: bold;
	text-align: center;
	-webkit-transition: 0.3s;
	-moz-transition: 0.3s;
	-o-transition: 0.3s;
	-ms-transition: 0.3s;
	transition: 0.3s;
}
.btn_contact7 input:hover {
	background-color: #222222;
}

@media screen and (max-width: 979px) {
	.contact7 dl{
		display: block;
	}
.contact7 dl dt {
	justify-content: flex-start;
	flex-basis: auto;
	}
.contact7 dl dd {
	flex-basis: auto;
	width: 100%;
	padding-left:0; 
	padding-right:0; 
	} 
}