@charset "utf-8";

/*********************************
　全体設定
*********************************/

/* 全体設定 */
*
{
	margin: 0;
	padding: 0;
	border: 0;

	-webkit-padding-start: 0;
	-webkit-margin-before: 0;
	-webkit-margin-after: 0;
}

html
{
	font-size: 100%; /* font-size: 16px と同義 */
}

body
{
	color: #4c4948;

	line-height: 2;

    font-family: -apple-system, BlinkMacSystemFont, 'Helvetica', '游ゴシック体', 'YuGothic', '游ゴシック Medium', 'Yu Gothic Medium', 'YuGothic', 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', 'メイリオ', sans-serif;
	font-weight: normal;
	font-weight: 300;

	position: relative;
}

a
{
	color: #04c;
	text-decoration: none;
}

a:hover
{
	text-decoration: underline;
}

/* テーブル */
table,
th,
td
{
}

table
{
	margin: 0 auto;
}

th, td
{
	padding: 4px 8px;
	font-weight: normal;
	font-size: 1rem;
	vertical-align: middle;
	border: 1px solid #ccc;
}

th
{
	font-size: 110%;
}

td:last-child
{
	text-align: right;
}
/* プラント技術者一覧 */
#table_column2
{
	width: 96%;
	max-width: 760px;
	margin: 0 auto;
}
#table_column2 div
{
	float: left;
	box-sizing: border-box;
	width: 50%;
	width: calc(100% / 2);
}

/* レスポンシブテーブル用画像（PC非表示） */
th img
{
	display: none;
}

td
{
}

/* clearfix */
.clearfix:after,
header:after,
.contents .cat:after,
#buttons:after,
#banners:after,
.contents .doubleline > div:after,
.contents .div_float:after,
#foot_links:after
{
    content: "";
    clear: both;
    display: block;
}


/* inline-block */
.inline_block
{
	display: inline-block;
}

/* フォント指定 */
.serif
{
	font-family: "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
}
.maru_gothic
{
	font-family: "ヒラギノ丸ゴ Pro W4","ヒラギノ丸ゴ Pro","Hiragino Maru Gothic Pro","ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic Pro","HG丸ｺﾞｼｯｸM-PRO","HGMaruGothicMPRO";
}

/* とりあえず画像の最大サイズは親要素を超えないように */
img
{
	max-width: 100%;
}


/*********************************************************
 アニメーション定義
**********************************************************/

@keyframes sample_animation
{
	0% { color: white; }
	50% { color: black; }
	100% { color: white; }
}


/*********************************************************
header
**********************************************************/

header
{
	z-index: 400;
	width: 100%;
	background-color: #ffffff;
}
header > div
{
	position: relative;
	padding: 0.5rem 0;
}
header.menu_fixed
{
	position: fixed;
	top: 0;
}
@media print
{
	header.menu_fixed { position: static; }
}

header h1
{
	float: left;
	margin: 0;
	padding: 0 0 0 2rem;
}
header h1 a
{
	display: block;
	width: 240px;
	height: 40px;
}
header h1 img
{
	display: block;
	margin: 0 auto;
}

#head_nav
{
	float: right;
	font-size: 0.75rem;
	padding: 0.6rem 2rem 0 0;
}
#head_nav li
{
	display: inline-block;
	margin-right: 2em;
}
#head_nav li:last-child
{
	margin: 0;
}
#head_nav li a,
#foot_nav li a,
#copyright a
{
	color: #666;
}

#toggle,
#sm_tel,
#sm_contact
{
	display: none;
}
#sm_tel img,
#sm_contact img
{
	display: block;
	height: 40px;
}

#toggle
{
	position: relative;
	z-index: 450;
}

#toggle a span
{
	display: block;
	position: absolute;
	width: 28px;
	height: 5px;
	margin: auto;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background-color: #494949;

	-webkit-transform: rotate(0deg);
	transform: rotate(0deg);

	-webkit-transition: all 0.4s;
	transition: all 0.4s;
}

#toggle a span:nth-child(1)
{
	-webkit-transform: translateY(-8px);
	transform: translateY(-8px);
}
#toggle a span:nth-child(2)
{
	-webkit-transform: translateY(8px);
	transform: translateY(8px);
}

#toggle.opened a span
{
	background-color: white;
	height: 3px;
	width: 32px;
}

#toggle.opened a span:nth-child(1)
{
	-webkit-transform: rotate(-225deg) translateY(0px);
	transform: rotate(-225deg) translateY(0px);
}
#toggle.opened a span:nth-child(2)
{
	-webkit-transform: rotate(225deg) translateY(0px);
	transform: rotate(225deg) translateY(0px);
}

#sm_menu
{
	position: fixed;
	z-index: 50;
	-webkit-ovreflow-scrolling: touch;
	overflow-y: scroll;
	overflow-x: hidden;

	box-sizing: border-box;

	width: 75%;
	height: 100%;
	height: 100vh;

	padding: 64px 8px 32px;

	top: 0;
	left: -75%;

	-webkit-transition: all 0.4s;
	transition: all 0.4s;
}
#cover_display
{
	position: fixed;
	z-index: 45;
	overflow: hidden;

	box-sizing: border-box;
	width: 100%;
	height: 100%;
	height: 100vh;

	top: 0;
	left: -100%;

	opacity: 0;
	background-color: rgba(0, 0, 0, .65);

	-webkit-transition: opacity 0.3s;
	transition: opacity 0.3s;
}
.fixed
{
	position: fixed;
	width: 100%;
	height: 100%;
}


#sm_menu li
{
	width: 50%;
	float: left;
	border-bottom: 1px solid white;
	line-height: 4;

	list-style: none;
}
#sm_menu li:first-child,
#sm_menu li:nth-child(2),
#sm_menu li.second
{
	border-top: 1px solid white;
}
#sm_menu li.second
{
	margin-top: 2em;
}

#sm_menu.full li
{
	width: 100%;
}
#sm_menu.full li:nth-child(2)
{
	border-top: none;
}

#sm_menu li a
{
	color: white;
	padding-left: 1em;

	-webkit-transition: all 0.3s;
	transition: all 0.3s;
}
#sm_menu li a:hover
{
	opacity: 0.7;
	text-decoration: none;
}
#sm_menu > li > span
{
	display: inline-block;
	float: right;
	margin-right: 1rem;
	cursor: pointer;
	color: white;

	-webkit-transform: scale(1.5);
	transform: scale(1.5);

	-webkit-transition: transform 0.3s;
	transition: transform 0.3s;
}
#sm_menu > li > span:after
{
	content: "";
	display: block;
	clear: both;
}
#sm_menu > li > span.open_child
{
	-webkit-transform: rotate(45deg) scale(1.5);
	transform: rotate(45deg) scale(1.5);
}
.sm_child_nav
{
	display: none;
}
#sm_menu .sm_child_nav li
{
	border: none;
	margin: 0 5%;
	list-style-type: none;
	padding: 0;
}

#topimage
{
	position: relative;
	background-color: #e9e9e9;
	width: 100%;
}
#topimage img
{
	position: relative;
	display: block;
	margin: 0 auto;
	width: 100%;
}
#topimage .topimage_cat
{
	position: absolute;
	max-width: 160px;
	right: 2rem;
	bottom: -1.5rem;
}

#topimage .colored
{
	position: absolute;
	width: 100%;
	height: 100%;
	display: block;
	top: 0;
	left: 0;

	background-color: rgba(0, 64, 192, .15);
}

#topimage.bg
{
	background-color: white;
}
#topimage.bg > span
{
	display: block;
	width: 100%;
	max-width: 1280px;
	height: 350px;

	margin: 0 auto;

	background-image: url(../images/topimage_medical.jpg);
	background-position: center;
	background-repeat: no-repeat;
	background-size: 1280px 350px;
}

#topimage h1
{
	margin: 0 auto;
	padding: 0;
	position: absolute;

	width: 40%;
	max-width: 640px;

	top: 8%;
	left: 0;
	right: 0;
}
#topimage h1#h1_plant
{
	width: 55%;
	max-width: 960px;
}
#topimage h1#h1_hydro_fire
{
	width: 51%;
	max-width: 960px;
}
#topimage h1 img
{
	display: block;
	max-width: 100%;
}

#topimage.bg.medical h1
{
	top: auto;
	max-width: 96%;
	bottom: 0.6em;
	margin: auto;
	text-align: center;
	line-height: 1.2;
}

/*********************************************************
section
**********************************************************/

section
{
	margin-bottom: 1.5em;
}


.contents:nth-of-type(odd) { background-color: #e9e9e9; }

.contents
{
	padding: 3em 0;
}

.contents .box
{
	box-sizing: border-box;
	position: relative;
	background-color: #e9e9e9;
	width: 96%;
	width: calc(100% - 2em);
	max-width: 920px;
	margin: 0 auto 1em;
	padding: 1em 2em;
	border-radius: 16px;
}
.contents:nth-of-type(odd) .box
{
	background-color: white;
}
.contents .box.white
{
	background-color: white;
}
.contents .box.black
{
	color: #e9e9e9;
	background-color: #535353;

}
.contents .box.orange
{
	background-color: #e96d51;
}

.contents .box.inspection
{
	border-radius: 16px 16px 16px 0;
	margin: 0 auto;
}

.contents .box_after
{
	position: relative;
	box-sizing: border-box;
	width: 96%;
	width: calc(100% - 2em);
	max-width: 920px;
	margin: 0 auto 1em;
	padding: 0;
	border-radius: 0 0 16px 16px;
}
.contents .box_after > div
{
	position: relative;
	box-sizing: border-box;
	background-color: white;
	width: 75%;
	padding: 1em 2em;
	border-radius: 0 0 16px 16px;
}

.contents .box_after > div h4,
.contents .box_after > div p
{
	text-align: left;
}
.contents .box_after > div p .mainsite_link
{
	display: block;
	text-align: right;
	margin-top: 1.5rem;
}
.contents .box_after > div p .mainsite_link a
{
	color: #4c4948;
}
.contents .box_after > div p .mainsite_link a:hover
{
	opacity: 0.7;
	text-decoration: none;
}
.contents .title.stock h4,
.contents .box_after > div h4
{
	color: #e96d51;
}
.contents .box_after > div p
{
	min-height: 8em;
}

.contents .box_after .box_after_cat
{
	position: absolute;
	bottom: 0;
	right: 1rem;

	width: 20%;
}

.contents .box_after > div:after
{
	position: absolute;
	content: " ";
	width: 0;
	height: 0;
	margin: auto;
	bottom: 5em;
	right: -2.3em;

	border-top: 1.2em solid transparent;
	border-bottom: 1.2em solid transparent;
	border-left: 1.2em solid white;
	border-right: 1.2em solid transparent;
}

.contents .box.arrow
{
	font-size: 1.5rem;
	margin-bottom: 1.5em;
}
.contents .box.arrow:after
{
	position: absolute;
	content: " ";
	width: 0;
	height: 0;
	bottom: -2em;
	left: 0;
	right: 0;
	margin: 0 auto;


	border-top: 1em solid #494949;
	border-bottom: 1em solid transparent;
	border-left: 1em solid transparent;
	border-right: 1em solid transparent;

}

.contents .box.inspection
{

}

.contents .box img
{
	display: block;
	margin: 0 auto;
}




.photomap_head
{
}
.photomap_head > div
{
	position: relative;
	box-sizing: border-box;
	width: 50%;
	padding-left: 90px;
	background-color: #e9e9e9;
	border-radius: 8px 8px 0 0;
	height: 3rem;
	line-height: 3;
}
.photomap_head > div img
{
	display: block;
	position: absolute;
	width: 82px;
	bottom: 0;
	left: 0;
}
.photomap_body
{
	position: relative;
}
.photomap
{
	position: relative;
	width: 50%;
	float: left;
}
.photomap2
{
	position: relative;
	width: 96%;
	max-width: 640px;
	float: none;
	margin: 0 auto;
}


.photomap a {
	position: absolute;

	font-size: 1.2rem;

	-webkit-transition: all 0.3s;
	transition: all 0.3s;

	cursor: pointer;
}
.photomap span {
	position: absolute;

	font-size: 1.2rem;
}
.photomap a:hover { position: absolute; background-color: red; color: yellow; text-decoration: none; }

/* 建屋 */

#photomap_building_1 a:nth-of-type(1) { top: 82%; left: 78%; }
#photomap_building_1 a:nth-of-type(2) { top: 59%; left: 55%; }
#photomap_building_1 a:nth-of-type(3) { top: 62%; left: 78%; }
#photomap_building_1 a:nth-of-type(4) { top: 90%; left: 86%; }

#photomap_building_2 a:nth-of-type(1) { top: 55%; left: 42%; }
#photomap_building_2 a:nth-of-type(2) { top: 53%; left: 66%; }
#photomap_building_2 a:nth-of-type(3) { top: 64%; left: 53%; }
#photomap_building_2 a:nth-of-type(4) { top: 66%; left: 68%; }
#photomap_building_2 a:nth-of-type(5) { top: 76%; left: 55%; }

/* 橋梁 */
#photomap_bridge_1 a:nth-of-type(1) { top: 34%; left: 40%; }
#photomap_bridge_1 a:nth-of-type(2) { top: 35%; left: 66%; }
#photomap_bridge_1 a:nth-of-type(3) { top: 30%; left: 56%; }

#photomap_bridge_2 a:nth-of-type(1) { top: 70%; left: 52%; }
#photomap_bridge_2 a:nth-of-type(2) { top: 78%; left: 13%; }
#photomap_bridge_2 a:nth-of-type(3) { top: 60%; left: 36%; }

/* IoT */
#photomap_iot_1 a:nth-of-type(1) { top: 46%; left: 42%; }
#photomap_iot_1 a:nth-of-type(2) { top: 63%; left: 32%; }

#photomap_iot_2 a:nth-of-type(1) { top: 75%; left: 35%; }
#photomap_iot_2 a:nth-of-type(2) { top: 13%; left: 33%; }

/* プラント */
#photomap_plant_1 a:nth-of-type(1) { top: 68%; left: 87%; }
#photomap_plant_1 a:nth-of-type(2) { top: 77%; left: 80%; }
#photomap_plant_1 a:nth-of-type(3) { top: 74%; left: 61%; }

#photomap_plant_2 a:nth-of-type(1) { top: 55%; left: 42%; }
#photomap_plant_2 a:nth-of-type(2) { top: 43%; left: 43%; }
#photomap_plant_2 a:nth-of-type(3) { top: 60%; left: 23%; }

/* 水力発電所 */
#photomap_hydro_1 a:nth-of-type(1) { top: 14%; left: 16%; }
#photomap_hydro_1 a:nth-of-type(2) { top: 60%; left: 45%; }
#photomap_hydro_1 a:nth-of-type(3) { top: 50%; left: 58%; }

#photomap_hydro_01 span:nth-of-type(1) { top: 16.5%; left: 18%; }
#photomap_hydro_01 span:nth-of-type(2) { top: 61.5%; left: 45%; }
#photomap_hydro_01 span:nth-of-type(3) { top: 54%; left: 60%; }




.photomap img
{
	display: block;
	width: 100%;
}
.photomap_body .title
{
	float: left;
	width: 48%;
	margin-left: 2%;
}
.photomap_body .title.stock
{
	display: none;
}
.photomap_body .title p
{
	box-sizing: border-box;
	font-size: 1.1rem;
	padding: 0;
	width: 100%;
	margin-bottom: 0.3rem;
	text-align: left;

}
.photomap_body .title p .mainsite_link
{
	display: block;
	text-align: right;
	margin-top: 1.5rem;
}
.photomap_body .title p .mainsite_link a
{
	color: #4c4948;
}
.photomap_body .title p .mainsite_link a:hover
{
	opacity: 0.7;
	text-decoration: none;
}
.photomap_body .title p:first-of-type
{
	padding: 0 0 0 2rem;
	text-indent: -2rem;
}
.photomap_body .title img
{
	max-width: 75%;
}





.contents h2,
.contents h3,
.contents p
{
	width: 92%;
	max-width: 960px;
}

.contents .text_small
{
	font-size: 0.8rem;
	line-height: 1.8;
	padding-left: 6px;
}
.contents .text_small:last-child
{
	padding-bottom: 0.2rem;
}

.contents h2
{
	font-size: 3rem;
	line-height: 1.05;
	text-align: center;
	font-weight: normal;
	font-weight: 500;

	margin: 0 auto 0.8em;
}

.contents h2.sub
{
	font-size: 2.4rem;
}
.contents h2.sub:before,
.contents h2.sub:after
{
	content: "●";
}


.contents h2 small
{
	font-size: 1.5rem;
}

.contents h3
{
	font-size: 1rem;
}
.contents h3.table_head
{
	width: 100%;
	font-weight: normal;
	color: #e9e9e9;
	border-bottom: 1px solid #fff;
	margin-bottom: 1em;
}
.contents h3.inspection
{
	width: 100%;
	font-size: 1.5rem;
	line-height: 1.6;
	border-bottom: 1px solid #494949;
	text-align: center;
	margin-bottom: 0.8rem;
}

.contents p
{
	font-size: 1rem;
	text-align: center;

	margin: 0 auto;

}
footer p
{
	font-size: 0.8rem;
	text-align: center;
}

.contents .div_float
{
	width: 92%;
	max-width: 960px;
	margin: 0 auto;
}
.contents .div_float p
{
	width: 100%;
}

.contents .div_float .left { display: block; float: left; }
.contents .div_float .right { display: block; float: right; }
.contents .div_float .w30 { width: 30%; }
.contents .div_float .w35 { width: 35%; }
.contents .div_float .w40 { width: 40%; }
.contents .div_float .w45 { width: 45%; }
.contents .div_float .w50 { width: 50%; }
.contents .div_float .w55 { width: 55%; }
.contents .div_float .w60 { width: 60%; }
.contents .div_float .w65 { width: 65%; }
.contents .div_float .w70 { width: 70%; }


.contents p.large,
.contents p .large
{
	font-size: 1.5rem;
	line-height: 1.5;
}

.contents p.proposal
{
	font-size: 1.4rem;
	line-height: 1.7;
}

.contents p.large .large,
.contents p.tel_link,
footer p.large
{
	font-size: 2rem;
	line-height: 1.4;
}
.contents .color_orange
{
	color: #e94d40;
}

.contents p.tel_link
{
	text-align: center;
}
.contents p.tel_link a
{
	color: #4d4849;
}

.contents p.voice
{
	position: relative;
	font-size: 1.5rem;

	margin-bottom: 1em;
	text-align: center;
}

.contents p.voice > span
{
	position: relative;
	display: inline-block;
	padding: 0.2em 3em;
	border: 2px solid #494949;
	border-radius: 12px;
}
.contents p.voice > span > span
{
	font-size: 1rem;
	padding-left: 1em;
}

.contents p.voice > span:after
{
	position: absolute;
	content: " ";
	width: 0;
	height: 0;
	bottom: -2em;
	left: 0;
	right: 0;
	margin: 0 auto;

	font-size: 1.5rem;

	border-top: 1em solid #494949;
	border-bottom: 1em solid transparent;
	border-left: 1em solid transparent;
	border-right: 1em solid transparent;

}
.contents figure
{
	position: relative;
	margin: 0 auto;
	width: 92%;
	max-width: 960px;
}
.contents figure img
{
	display: block;
	max-width: 100%;
	margin: 0 auto;
}
.contents figure figcaption
{
	position: absolute;
	bottom: 0;
}

.contents figure.med_01 figcaption
{
	left: 62.5%;
	bottom: 2em;
}

.contents table.damage
{
	width: 100%;
	margin: 0 auto;
}

.contents table.damage th,
.contents table.damage td
{
	font-size: 1rem;
	text-align: left;
	border: none;
	padding: 0 0.8em;
}
.contents table.damage th
{
	line-height: 2;
	color: #494949;
	background-color: #e9e9e9;
}
.contents table.damage td
{
	line-height: 2;
	padding-top: 0.5em;
	padding-bottom: 0.5em;
	color: #e9e9e9;
}
.contents table.damage tr:last-child td
{
}

.contents .cat
{
	width: 100%;
	max-width: 720px;
	margin: 0 auto;
	padding-top: 5px;
}

.contents .cat > div
{
	float: left;
}
.contents .cat .left
{
	box-sizing: border-box;
	width: 44%;
	width: calc(50% - 45px);
	text-align: right;
	padding-top: 2em;
	padding-right: 0.5em;
}
.contents .cat .center
{
	width: 12%;
	width: calc(90px);
	position: relative;
}
.contents .cat .right
{
	box-sizing: border-box;
	width: 44%;
	width: calc(50% - 45px);
	padding-top: 2em;
	padding-left: 0.5em;
}
/* あいぺんくんアニメーション */
.ipen_anime01
{
	-webkit-animation-name: ipen_patapata01;
	-webkit-animation-duration: 0.5s;
	-webkit-animation-iteration-count: infinite;
	-webkit-animation-direction: alternate;

	animation-name: ipen_patapata01;
	animation-duration: 0.5s;
	animation-iteration-count: infinite;
	animation-direction: alternate;
}
.ipen_anime02
{
	position: absolute;
	top: 0;
	left: 0;
	opacity: 0;

	-webkit-animation-name: ipen_patapata02;
	-webkit-animation-duration: 0.5s;
	-webkit-animation-iteration-count: infinite;
	-webkit-animation-direction: alternate;

	animation-name: ipen_patapata02;
	animation-duration: 0.5s;
	animation-iteration-count: infinite;
	animation-direction: alternate;
}
.ipen_anime03
{
	position: absolute;
	top: 0;
	left: 0;
	opacity: 0;
}
@-webkit-keyframes ipen_patapata01
{
	0% { opacity: 1; }
	50% { opacity: 1; }
	51% { opacity: 0; }
	100% { opacity: 0; }
}
@keyframes ipen_patapata01
{
	0% { opacity: 1; }
	50% { opacity: 1; }
	51% { opacity: 0; }
	100% { opacity: 0; }
}
@-webkit-keyframes ipen_patapata02
{
	0% { opacity: 0; }
	50% { opacity: 0; }
	51% { opacity: 1; }
	100% { opacity: 1; }
}
@keyframes ipen_patapata02
{
	0% { opacity: 0; }
	50% { opacity: 0; }
	51% { opacity: 1; }
	100% { opacity: 1; }
}
a:hover .ipen_anime03
{
	opacity: 0.6;
}
a:hover .ipen_anime01,
a:hover .ipen_anime02
{
	-webkit-animation: none;
	animation: none;

	opacity: 0;
}

.cat .center .point_ipen
{
	position: relative;
}
.cat .center .point_ipen_hover
{
	position: absolute;
	top: 0;
	left: 0;
	opacity: 0;
}
.cat .center a:hover .point_ipen
{
	opacity: 0;
}
.cat .center a:hover .point_ipen_hover
{
	opacity: 0.6;
}
.cat .center:hover .point_ipen
{
	opacity: 0;
}
.cat .center:hover .point_ipen_hover
{
	opacity: 1;
}


.medical_inline_ipen
{
	margin-right: 16px;
	margin-top: 16px;
}

.txt_center
{
	text-align: center;
}
.engineer_link a
{
	background-color: #535353;
	padding: 0.8em 4em;
	font-size: 0.8rem;
	display: inline-block;
	color: #e9e9e9;

	-webkit-transition: all 0.3s;
	transition: all 0.3s;
}


.contents .doubleline
{

}
.contents .doubleline > div
{
	box-sizing: border-box;
	position: relative;
	width: 96%;
	width: calc(100% - 2em);
	max-width: 920px;
	margin: 0 auto;
}
.contents .doubleline > div > div
{
	box-sizing: border-box;
	position: relative;
	background-color: #fff;

	width: 49%;
	width: calc(50% - 0.5rem);
	float: left;

	padding: 0 0 0.5rem;
	border-radius: 0;

	font-size: 0.9rem;
	overflow: hidden;
}
.contents .doubleline > div > div:nth-child(2)
{
	float: right;
}
.contents .doubleline > .head > div
{
	border-radius: 16px 16px 0 0;
}
.contents .doubleline > .head p
{
	box-sizing: border-box;
	padding: 0;
	margin: 0 auto;
	width: 92%;
	max-width: 14em;
	color: white;
	background-color: #616672;

	text-align: center;
}
.contents .doubleline > .item
{
	line-height: 1;
}
.contents .doubleline > .item > div
{
	text-align: center;
}
.contents .doubleline > .item > div img
{
	display: block;
	max-width: 100%;
	margin: 0 auto 4px;
}
.contents .doubleline > .item > div span
{
	box-sizing: border-box;
	display: block;
	width: 96%;
	max-width: 14rem;
	margin: 0 auto;
	padding: 0.5em 0;
	border: 1px solid #9aa0ad;
	border-radius: 4px;
}

.contents .doubleline > .arrow > div
{
	overflow: initial;
	height: 2em;
	font-size: 1.5rem;
	margin: 0 auto;

}
.contents .doubleline > .arrow > div:after
{
	position: absolute;
	content: " ";
	width: 0;
	height: 0;
	top: 0.5em;
	left: 0;
	right: 0;
	margin: 0 auto;

	border-top: 1em solid #616672;
	border-bottom: 1em solid transparent;
	border-left: 1em solid transparent;
	border-right: 1em solid transparent;

}
.contents .doubleline > .foot
{}
.contents .doubleline > .foot > div
{
	overflow: initial;
	border-radius: 0 0 16px 16px;
	margin: 0 auto 2em;
	font-size: 1.5rem;
	height: 0.5em;
}

.contents .doubleline > .foot > div:after
{
	position: absolute;
	content: " ";
	width: 0;
	height: 0;
	top: 0.5em;
	left: 0;
	right: 0;
	margin: 0 auto;

	border-top: 1em solid #616672;
	border-bottom: 1em solid transparent;
	border-left: 1em solid transparent;
	border-right: 1em solid transparent;

}

.contents.before_footer
{
	padding: 2em 0 0;
	text-align: center;
}
.contents.before_footer .large
{
	font-size: 1.1rem;
	line-height: 1.2;
}

#footer_logo
{
	display: inline-block;
	width: 360px;
	height: 60px;
	margin: 0.5em auto;
	background-color: #ccc;
}



/*********************************************************
 footer
**********************************************************/

footer
{
	padding: 0;
	box-sizing: border-box;

	background-color: #e9e9e9;
}

footer .bg_black
{
	background-color: #494949;
}

#buttons,
#banners
{
	width: 96%;
	max-width: 720px;
	margin: 0 auto;
	padding: 1.5em 0 0.5em;
	text-align: center;
}
#banners
{
	padding: 1.5em 0;
}
#buttons li,
#banners li
{
	display: inline-block;
	box-sizing: border-box;
	width: 33%;
	width: calc(100% / 3);

	padding: 0 0.5em;
	margin-bottom: 1em;
}
#banners li
{
	margin-bottom: 0;
}

#buttons li a,
#banners li a
{
	display: block;
	width: 100%;
	text-align: center;
	font-size: 0.8rem;
	padding: 0;

	-webkit-transition: all 0.3s;
	transition: all 0.3s;
}
#buttons li a
{
	background-color: #494949;
	color: #e9e9e9;
	padding: 0.8em 0;
}
#banners li a
{
	background-color: white;
	backface-visibility: hidden;
	padding: 1em 0;
	color: #000000;

	-webkit-transition: all 0.3s;
	transition: all 0.3s;
}

#banners li a img
{
	display: block;
	width: 100%;

	-webkit-transition: all 0.3s;
	transition: all 0.3s;
}

a:hover img,
#buttons li a:hover,
.engineer_link a:hover
{
	text-decoration: none;
	opacity: .6;
}
#banners li a:hover
{
	text-decoration: none;
	opacity: .7;
}

#foot_nav,
#copyright
{
	background-color: white;
}

#foot_nav
{
	font-size: 0.75rem;
	text-align: center;
	padding: 2em 0;
}
#foot_nav li
{
	display: inline-block;
	margin-left: 1em;
	margin-right: 1em;
}

footer > div
{
	width: 100%;
}
footer > div > div
{
	width: 92%;
	max-width: 960px;
	margin: 0 auto;
}
#foot_links
{
	width: 92%;
	/* max-width: 960px; 20240627*/
	max-width: 1110px;
	font-size: 0;
	margin: 0 auto;
	padding: 2rem 0;

	display: -webkit-flex;
	-webkit-flex-flow: row nowrap;
	flex-flow: row nowrap;
	justify-content: space-between;
	-webkit-box-pack: justify;
	display: -moz-flex;
	display: -ms-flex;
	display: -o-flex;
	display: flex;
}
#foot_links ul
{
	float: left;
	width: 16.5%;
}
#foot_links ul.small_foot
{
	width: 12%;
}
#foot_links ul:last-child
{
	width: 10%;
}
#foot_links li
{
	width: 100%;
	font-size: 0.8rem;
	display: block;
}
#foot_links li.strong
{
	font-weight: bold;
	margin-top: 1em;
}
#foot_links li.strong:first-child
{
	margin-top: 0;
}

#foot_links li.border_bottom
{
	position: relative;
	margin-bottom: 2em;
}
#foot_links li.border_bottom:after
{
	content: " ";
	position: absolute;
	border-bottom: 1px dotted #494949;
	width: 90%;
	height: 0;
	left: 0;
	top: 3em;
}
#foot_links li a
{
	color: inherit;
}
#footer_nav
{
	display: none;

	width: 92%;
	max-width: 960px;
	margin: 0 auto;
	list-style-type: none;
}
#footer_nav li
{
	line-height: 4;
	border-bottom: 1px solid #4c4849;
	padding: 0 1rem;
}
#footer_nav li:last-child
{
	border-bottom: none;
}
#footer_nav li a
{
	display: inline-block;
	color: #4c4948;

	-webkit-transition: all 0.3s;
	transition: all 0.3s;

}
#footer_nav li a:hover
{
	opacity: 0.7;
	text-decoration: none;
}
#footer_nav > li > span
{
	display: inline-block;
	float: right;
	margin-right: 1rem;
	cursor: pointer;

	-webkit-transform: scale(1.5);
	transform: scale(1.5);

	-webkit-transition: transform 0.3s;
	transition: transform 0.3s;
}
#footer_nav > li > span:after
{
	content: "";
	display: block;
	clear: both;
}
#footer_nav > li > span.open_child
{
	-webkit-transform: rotate(45deg) scale(1.5);
	transform: rotate(45deg) scale(1.5);
}
.sm_child_nav
{
	display: none;
}
#footer_nav .sm_child_nav li
{
	border: none;
	margin: 0 5%;
	list-style-type: none;
	padding: 0;
}

#copyright
{
	box-sizing: border-box;
	font-size: 0.8rem;
	padding: 0 0 2em;
}
#copyright.bg_on
{
	background-color: transparent;
}
#copyright a
{
	display: inline-block;
	margin-left: 2em;
}
#copyright:before
{
	content: " ";
	display: block;

	width: 100%;
	height: 0;
	max-width: 960px;
	margin: 0 auto 2em;
	border-top: 1px solid #494949;
}
.lp_copyright
{
	background-color: #ffffff;
}

.circle_orange
{
	display: inline-block;

	color: white;
	background-color: #e94d40;

	height: 1.5em;
	line-height: 1.5;
	width: 1.5em;
	text-indent: 0;

	border-radius: 50%;

	text-align: center;
}

.text_left { text-align: left !important; }
.text_center { text-align: center !important; }
.text_right { text-align: right !important; }

.space_bottom
{
	margin-bottom: 2rem !important;
}
.space_bottom_hyper
{
	margin-bottom: 4rem !important;
}

.padding_left_3rem
{
	padding-left: 3rem;
}

/*********************************************************
 jump_top
**********************************************************/

#jump_top
{
	position: fixed;
	z-index: 500;

	bottom: 0;
	right: 10%;

	width: 64px;

	transition: bottom 0.2s;
	opacity: 0.8;
}

#jump_top.hide
{
	bottom: -128px;
}


#jump_top a
{
	display: block;
	width: 100%;
}


#jump_top a:hover
{
	opacity: 0.8;

	-webkit-transition: opacity 0.3s;
	transition: opacity 0.3s;
}

#jump_top img
{
	display: block;
	width: 100%;
}



/*********************************************************
 メディアクエリ
**********************************************************/

/* PC表示（横1079px以下） */
@media screen and (max-width: 1079px)
{
	#topimage h1
	{
		width: 60%;
		max-width: 432px;
	}
	#topimage h1#h1_plant
	{
		width: 80%;
		max-width: 648px;
	}
	#topimage h1#h1_hydro_fire
	{
		width: 75%;
		max-width: 648px;
	}
}

@media screen and (max-width: 813px) {

}
/* PC・タブレット表示（横999px以下） */
@media screen and (max-width: 999px)
{
	header h1,
	#head_nav
	{
		float: none;
		padding: 0.3rem 0 0;
		margin: 0 auto;
	}
	header h1 a
	{
		margin: 0 auto;
	}
	#head_nav
	{
		text-align: center;
		padding-top: 1rem;
	}
	#topimage .topimage_cat
	{
		max-width: 128px;
		right: 1rem;
		bottom: -1.5rem;
	}

	#topimage.bg > span
	{
		height: 0;
		padding-top: 35%;

		background-size: 128% 100%;
	}
	#topimage.bg.medical h1
	{
		position: static;
		padding: 0.5rem 0;

		font-weight: bold;
		color: #4c4948;
	}
	#topimage.bg.medical h1 br
	{
		display: none;
	}

	.photomap_head > div
	{
		width: 100%;
		background-color: transparent;
		margin-bottom: 0.3rem;
	}
	.contents .box_after .box_after_cat
	{
		margin: auto;
	}

	.contents h2
	{
		line-height: 1.15;
	}
	.contents h2.sub:after,
	.contents h2.sub:before
	{
		content: "";
	}
	.contents h2 span
	{
		display: inline-block;
	}
	.contents h2 small
	{
		font-size: 1rem;
	}


}

/* タブレット・スマートフォン表示（横799px以下） */
@media screen and (max-width: 799px)
{
	/* プラント技術者一覧 */
	#table_column2 div
	{
		width: 100%;
		float: none;
	}
}

/* タブレット・スマートフォン表示（横768px以下） */

@media screen and (max-width: 768px)
{
	html { font-size: 87.5%; }

	header h1 { padding: 0.3rem 0;}
	#head_nav
	{
		display: none;
	}

	#toggle,
	#sm_tel,
	#sm_contact
	{
		display: block;
		position: fixed;
		width: 40px;
		height: 40px;
		top: 8px;
		bottom: 0;
		margin: 0 auto;
		right: 8px;
	}
	#toggle
	{
		right: auto;
		left: 8px;
		cursor: pointer;
	}
	#toggle a
	{
		display: block;
		width: 100%;
		height: 100%;
	}
	#sm_tel
	{
		right: 64px;
	}

	#sm_menu.opened
	{
		left: 0;

		background-color: rgba(36, 36, 36, .8);
		box-shadow: 0 0 24px black;
	}
	#cover_display.opened
	{
		left: 0;

		opacity: 1;
	}

	#topimage .topimage_cat
	{
		max-width: 96px;
		right: 0.5rem;
		bottom: -1rem;
	}


	.contents figure figcaption
	{
		position: static !important;
		text-align: center;
		margin: 0 auto 8px;
	}
	.contents figure.med_01 figcaption br
	{
		display: none;
	}

	.contents .div_float .left,
	.contents .div_float .right
	{
		float: none;
		width: 100% !important;
	}
	.contents .div_float p
	{
		width: 100%;
	}

	.photomap_head
	{
		display: none;
	}
	.photomap
	{
		float: none;
		width: 100%;
		max-width: 480px;
		margin: 0 auto 1rem;
	}
	.photomap > img
	{
		margin-bottom: 2rem;
	}
	.photomap_body .title
	{
		display: none;
		position: relative;
		width: 100%;
	}
	.photomap_body .title.stock
	{
		float: none;
		box-sizing: border-box;
		width: 100%;
		display: block;
		padding-bottom: 1rem;
		border-bottom: 1px solid #ccc;
		margin: 0 auto 1.5rem;
	}
	.photomap_body .title.stock:last-of-type
	{
		border: none;
		padding-bottom: 0;
		margin-bottom: 0;
	}
	.photomap_body .title.stock p
	{
		margin-bottom: 0.8rem;
	}
	.photomap_body .title.stock p:nth-of-type(2)
	{
		font-size: 1rem;
	}
	.photomap_body .title.stock img
	{
		display: block;
		margin: 0 auto 0.8rem;
	}
	.photomap_body .title.stock h4
	{
		display: none;
	}
	.contents .box.inspection
	{
		border-radius: 16px 16px 0 0;
	}
	.contents .box_after
	{
		background-color: white;
		border-radius: 0 0 16px 16px;
	}
	.contents .box_after > div
	{
		background-color: transparent;
		width: 100%;
		padding: 1em 0.5em;
	}

	.contents .box_after > div h4,
	.contents .box_after > div p,
	.contents .box_after .box_after_cat,
	.contents .box_after > div:after
	{
		display: none;
	}

	/* footer */
	#foot_links
	{
		display: none;
	}
	#footer_nav
	{
		display: block;
	}
	footer #copyright
	{
		text-align: left;
	}

	#buttons li,
	#banners li
	{
		width: 50% !important;
	}
	#banners li
	{
		margin-bottom: 1em !important;
	}
	#banners li:last-child
	{
		margin-bottom: 0 !important;
	}

	/*
	header h1,
	#head_nav,
	#sm_tel,
	#sm_contact,
	section,
	footer
	{
		-webkit-transition: -webkit-filter 1s;
	}
	.blur header h1,
	.blur #head_nav,
	.blur #sm_tel,
	.blur #sm_contact,
	.blur section,
	.blur footer
	{
		-webkit-filter: blur(6px);
	}

	*/

	#jump_top
	{
		right: 2%;
	}

}

/* スマートフォン表示（横640px以下） */
@media screen and (max-width: 640px)
{
	.contents h2
	{
		font-size: 2.2rem;
		line-height: 1.25;
	}
	.contents h2.sub
	{
		font-size: 1.8rem;
	}

	.contents .box
	{
		padding: 0.5em;
	}

	.contents p,
	.contents figure figcaption

	{
		text-align: left;
	}
	.contents .txt_center
	{
		text-align: center;
	}

	.contents p br,
	.contents figure figcaption br
	{
		display: none;
	}
	.contents p.voice > span
	{
		padding: 0.2em 0;
		width: 96%;
	}
	.contents p.voice > span > span
	{
		display: block;
	}

	.sm_block
	{
		display: block;
	}
}

/* スマートフォン表示（横480px以下） */
@media screen and (max-width: 480px)
{
	header h1 a,
	header h1 a img,
	#sm_tel img,
	#sm_contact img
	{
		height: 32px;
	}
	#sm_tel,
	#sm_contact,
	#toggle
	{
		width: 32px;
		height: 32px;
	}

	#sm_tel
	{
		right: 48px;
	}
	#sm_contact
	{
		right: 8px;
	}

	#sm_menu
	{
		width: 85%;
		left: -85%;
	}

	#topimage .topimage_cat
	{
		max-width: 64px;
		right: 0.5rem;
		bottom: -1rem;
	}

	.contents .cat .left,
	.contents .cat .right
	{
		width: 45%;
		width: calc(50% - 42px);
	}
	.contents .cat .center
	{
		width: 10%;
		width: calc(84px);
	}

	.contents p.voice
	{
		font-size: 1.3rem;
	}

	#buttons
	{
		padding: 1.5em 0 0.5em !important;
	}
	#buttons li,
	#banners li
	{
		width: 92% !important;
		max-width: 320px;
		float: none !important;
		margin: 0 auto 1em !important;
	}
	#banners li
	{
		margin-bottom: 1em;
	}
	#banners li:last-child
	{
		margin-bottom: 0;
	}
}

/* スマートフォン表示（横400px以下） */
@media screen and (max-width: 400px)
{
	.contents p.large,
	.contents p .large
	{
		font-size: 1.45rem;
	}

	.contents .doubleline > div
	{
		width: 98%;
		width: calc(100% - 1em);
	}
	.contents .doubleline > div > div
	{
		width: 49.5%;
		width: calc(50% - 0.25rem);
	}
	.contents .cat
	{
		font-size: 0.95rem;
	}
}
