@charset "utf-8";

/*
=======================================================
 BASIC
=======================================================	
*/

/* FONTS ------------------------------------------- */
/* noto-sans-jp-medium */
@font-face {
  font-family: 'Noto Serif JP';
  font-style: normal;
  font-weight: 500;
  src: local(''),
       url('fonts/noto-serif-jp-medium.woff2') format('woff2'),
       url('fonts/noto-serif-jp-medium.woff') format('woff');
}
/* noto-sans-jp-bold */
@font-face {
  font-family: 'Noto Serif JP';
  font-style: normal;
  font-weight: 700;
  src: local(''),
       url('fonts/noto-serif-jp-bold.woff2') format('woff2'),
       url('fonts/noto-serif-jp-bold.woff') format('woff');
}
/* ------------------------------------------------- */

body, html {
	min-width: 1080px;
}
	
* {
	box-sizing: border-box;
	word-wrap: break-word;
}

body {
	font-family: 'Hiragino-sans', 'Hiragino Kaku Gothic ProN', Meiryo, Arial, sans-serif;
	font-weight: 400;
	margin: 0;
	padding: 0;
	font-size: 14px;
	color: #1a1a1a;
	height: 100%;
	line-height: 1.625;
	letter-spacing: .05em;
	background: #fff;
}
	
a {
	text-decoration: none;
	transition: opacity .3s ease, background .3s ease;
	color: inherit;
}

a:hover {
	text-decoration: none;
	opacity: .7;
}

ul,ol {
	list-style: none;
}

dt {
	font-weight: 600;
}

.clearfix::after {
	content: '';
	display: table;
	clear: both;
}

img {
	max-width: 100%;
	height: auto;
	vertical-align: bottom;
}

em {
	font-style: normal;
	font-weight: 600;
}

table {
	width: 100%;
	border-collapse: collapse;
}

input[type=text],
input[type=mail],
button, textarea, select {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    font-family: 'Noto Serif JP', serif;
    font-weight: 700;
    background: none;
}

select::-ms-expand {
    display: none;
}

button {
	border: none;
	line-height: 1;
	padding: 0;
	cursor: pointer;
	transition: opacity .3s ease;
}

button:hover {
	opacity: .7;
}

@media screen and (min-width: 768px) {
	
	.sp {display: none !important}
	
	a[href*="tel:"] {
		pointer-events: none;
		cursor: default;
		text-decoration: none;
	}
}

@media screen and (min-width: 326px) {
	
	.se {display: none !important}
	
}

.serif {
	font-family: 'Noto Serif JP', serif;
	font-weight: 500;
}

/*
=======================================================
 HEADER
=======================================================	
*/

header {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	background: #fff;
	padding: 0 70px;
	z-index: 10000;
}

header .container {
	width: 100%;
	display: -webkit-box;
	display: flex;
	-webkit-box-pack: justify;
	justify-content: space-between;
	-webkit-box-align: center;
	align-items: center;
}

/*
=======================================================
 GLOBAL NAVI
=======================================================	
*/

#nav-global ul {
	display: -webkit-box;
	display: flex;
}

#nav-global li a {
	display: -webkit-box;
	display: flex;
	-webkit-box-align: center;
	align-items: center;
	height: 70px;
	}
	#nav-global li:not(:last-child) a {
		margin-right: 10px;
		}
		#nav-global li:not(:last-child) a::after {
			content: '';
			display: block;
			width: 1px;
			height: 31px;
			background: #000;
			transform: skewX(-28deg);
			margin: 0 20px;
		}

#nav-global li span {
	display: block;
	font-family: 'Noto Serif JP', sans-serif;
	text-align: center;
	}
	#nav-global li span.icon {
		padding-right: 5px;
	}
	#nav-global li span:not(.icon) {
		font-size: 14px;
		font-weight: 800;
	}
	#nav-global li span.eng {
		font-weight: 700;
		font-size: 10px;
	}

/*
=======================================================
 COMMON
=======================================================	
*/

main {
	margin-top: 70px;
	}
	.pages {
		position: relative;
	}
	
section {
	padding: 80px 0;
	}
	.pages section:first-of-type {
		padding-top: 60px;
	}

.container {
	width: 1000px;
	margin: 0 auto;
}

.pages .keyvisual {
	position: relative;
	margin: 0 auto;
	padding: 0 70px;
}

.pages .keyvisual img {
	width: 100%;
	height:	356px;
	object-fit: cover;
}

.page-title {
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%,-50%);
	font-family: 'Noto Serif JP', serif;
	font-size: 40px;
	font-weight: 500;
	color: #fff;
	text-align: center;
	text-shadow: 2px 2px 6px rgba(0,0,0,.3);
}

.page-title span {
	font-family: 'Hiragino-sans', 'Hiragino Kaku Gothic ProN', Meiryo, sans-serif;
	font-weight: 600;
	font-size: 18px;
	display: block;
}

.title {
	font-family: 'Noto Serif JP', serif;
	text-align: center;
	margin-bottom: 40px;
	font-size: 34px;
	font-weight: 700;
	line-height: 1;
}

.title span {
	display: block;
	font-family: 'Hiragino-sans', 'Hiragino Kaku Gothic ProN', Meiryo, sans-serif;
	font-size: 14px;
	font-weight: 400;
	position: relative;
	}
	.title span::before {
		content: '';
		display: block;
		width: 1px;
		height: 28px;
		background: #006bb6;
		margin: 8px auto;
		transform: rotate(45deg);
	}
	
.breadcrumbs {
	padding: 0 70px;
}

.breadcrumbs ul {
	display: -webkit-box;
	display: flex;
	font-size: 12px;
	font-weight: 400;
	padding: 5px 0;
	line-height: 1;
}

.breadcrumbs li:not(:last-child)::after {
	content: '＞';
	display: inline-block;
	margin: 0 2px;
}

.breadcrumbs li a {
	padding: 2px 0;
	}
	.breadcrumbs li:last-child a {
		pointer-events: none;
	}

.page-nav-wrapper {
	padding: 0 70px;
}
	
#page-nav {
	background: #006bb6;
	padding: 25px 0 0 0;
}

#page-nav ul {
	display: -webkit-box;
	display: flex;
	-webkit-box-pack: center;
	justify-content: center;
	flex-wrap: wrap;
	width: 1000px;
	margin: 0 auto;
}

#page-nav li {
	margin: 0 8px 25px 8px;
}

#page-nav li a {
	display: block;
	background: #3fa9f5;
	border-radius: 4px;
	color: #fff;
	font-size: 16px;
	line-height: 1;
	padding: 17px 32px;
	transition: color .3s ease, background .3s ease;
	}
	#page-nav li.current a {
		position: relative;
		pointer-events: none;
		color: #006bb6;
		background: #fff;
		filter: drop-shadow(2px 2px 2px rgba(0,0,0,.3));
		}
		#page-nav li.current a::before {
			content: '';
			display: block;
			width: 16px;
			height: 16px;
			background: #fff;
			transform: rotate(45deg);
			position: absolute;
			bottom: -8px;
			left: 50%;
			margin-left: -8px;
		}
	
#page-nav li a:hover {
	color: #006bb6;
	background: #fff;
	opacity: 1;
}
	
table {
	width: 100%;
	margin: 0 auto;
	border: 1px solid #ccc;
	margin-bottom: 40px;
}

th {
	background: #eeeeee;
	font-weight: 500;
	text-align: left;
	padding: 23px 40px;
	width: 268px;
	border-bottom: 1px solid #fff;
	white-space: nowrap;
	}
	th::before {
		content: '■';
		color: #007ece;
		display: inline-block;
		margin-right: 5px;
	}

td {
	border-bottom: 1px solid #e2e2e2;
	padding: 23px 40px;
	vertical-align: middle;
}

tr:last-child th,
tr:last-child td {
	border-bottom: none;
}

.btn-link {
	display: inline-block;
	position: relative;
	vertical-align: bottom;
	color: #fff;
	width: 245px;
	font-family: 'Noto Serif JP', serif;
	font-size: 12px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: .3em;
	padding: 19px 0;
	transition: opacity .3s ease;
	background: url(../images/common/arrow_wht.svg) left center no-repeat;
}

.btn-link.more {
	color: #1a1a1a;
	background-image: url(../images/common/arrow_blue.svg);
	margin-top: 20px;
	width: auto;
	padding-left: 86px;
}
		
/*
=======================================================
 HOME
=======================================================	
*/

body>a {
	display: none;
}

.home section {
	padding: 80px 0;
}

.home .keyvisual {
	position: relative;
	height: 692px;
}

.home .keyvisual .video img {
	display: block;
	width: 100%;
	height:	692px;
	object-fit: cover;
}

.btn-scroll {
	position: absolute;
	left: 0;
	bottom: 0;
	width: 70px;
	text-align: center;
	z-index: 10;
}

.video{
  width: calc(100% - 140px);
  height: 692px;
  background: url(../movie/main.jpg) no-repeat center/cover;
  position: absolute;
  top: 0;
  left: 70px;
  overflow: hidden;
  z-index: -1;
}

.video::after{
  content: '';
  width: 100%;
  height: 100%;
  display: block;
  position: absolute;
  left: 0;
  top: 0;
}

.video video{
  min-width: 100%;
  min-height: 100%;
  width: auto;
  height: auto;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translateX(-50%) translateY(-50%);
}

.keyvisual-msg {
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	padding-bottom: 60px;
	color: #fff;
	text-align: center;
	width: 100%;
}

.keyvisual-msg p {
	font-family: 'Noto Serif JP', sans-serif;
	font-size: 36px;
	font-weight: 500;
	line-height: 1;
	margin-bottom: 40px;
	letter-spacing: .25em;
	text-shadow: 2px 2px 6px rgba(0,0,0,.3);
}

.keyvisual-msg p span {
	display: block;
	font-size: 16px;
	font-weight: 700;
	margin-top: 30px;
	letter-spacing: .15em;
}

.keyvisual-msg .btn-link {
	background: none;
	position: relative;
	}
	.keyvisual-msg .btn-link::before {
		content: '';
		display: block;
		width: 100%;
		height: 100%;
		background: url(../images/common/arrow_short_wht.svg) left center no-repeat;
		filter: drop-shadow(2px 2px 2px rgba(0,0,0,.3));
		-webkit-filter: drop-shadow(2px 2px 2px rgba(0,0,0,.3));
		position: absolute;
		left: 0;
		top: 0;
		z-index: 2;
	}
	.keyvisual-msg .btn-link::after {
		content: '';
		display: block;
		width: 100%;
		height: 100%;
		border: 1px solid #fff;
		background: transparent;
		filter: drop-shadow(2px 2px 2px rgba(0,0,0,.3));
		-webkit-filter: drop-shadow(2px 2px 2px rgba(0,0,0,.3));
		position: absolute;
		left: 0;
		top: 0;
		z-index: 1;
		transition: all .3s ease;
	}
	
.keyvisual-msg .btn-link span {
	position: relative;
	display: inline-block;
	text-shadow: 2px 2px 2px rgba(0,0,0,.3);
	z-index: 3;
}

.keyvisual-msg .btn-link:hover,
.keyvisual-msg .btn-link:active {
	opacity: 1;
	}
	.keyvisual-msg .btn-link:hover::after,
	.keyvisual-msg .btn-link:active::after {
		border-color: #007ece;
		background: #007ece;
	}

.keyvisual-info {
	position: absolute;
	bottom: 0;
	right: 70px;
	display: inline-block;
	z-index: 2;
	color: #fff;
}
		
.info-container a {
	display: inline-block;
	z-index: 9;
	padding: 19px 20px;
	font-size: 12px;
	letter-spacing: .15em;
	}
	.info-container a::before {
		content: '';
		display: inline-block;
		width: 55px;
		height: 1em;
		background: url(../images/common/arrow_short_wht.svg) left center no-repeat;
	}
	
	.info-container .date::before {
		content: 'INFORMATION / ';
	}
	.info-container span:not(.date)::after {
		content: '…';
		display: inline-block;
	}
	
.home #sec-01 {
	padding-bottom: 0;
}
	
.home #sec-01>div {
	background-repeat: no-repeat;
	background-size: cover;
	margin-bottom: 105px;
	}	
	.dept-01 {
		background-image: url(../images/home/bg_visual_01.jpg);
	}
	.dept-02 {
		background-image: url(../images/home/bg_visual_02.jpg);
	}
	
.home #sec-01 .container {
	display: -webkit-box;
	
	display: flex;
	}
	.home #sec-01 .dept-02 .container {
		-webkit-box-pack: end;
		justify-content: flex-end;
	}

.home .dept-desc {
	width: 100%;
	}
	.home .dept-02 .dept-desc {
		display: -webkit-box;
		display: flex;
		-webkit-box-pack: end;
		justify-content: flex-end;
		flex-wrap: wrap;
		overflow: hidden;
	}
	.home .dept-desc::before {
		display: inline-block;
		font-size: 70px;
		font-weight: 600;
		letter-spacing: .3em;
		color: #fff;
		line-height: 1.2;
		padding: 20px 0;
		text-shadow: 2px 2px 2px rgba(0,0,0,.3);
		}
		.home .dept-01 .dept-desc::before {
			content: 'RENEWABLE ENERGY';
		}
		.home .dept-02 .dept-desc::before {
			content: 'ELECTRICAL EQUIPMENT';
			text-align: right;
			margin-right: -15px;
		}

.home .dept-desc .box {
	background: #fff;
	outline-offset: 8px;
	outline: 1px solid #fff;
	margin: 9px;
	margin-bottom: 0;
	padding: 35px 40px;
	width: 438px;
}

.home .dept-desc h3 {
	font-family: 'Noto Serif JP', serif;
	font-size: 28px;
	font-weight: 700;
	margin-bottom: 20px;
}

.home .dept-desc h3 span {
	display: block;
	font-size: 18px;
}

.home .dept-desc p {
	font-size: 16px;
}

.home .dept-desc .btn-link.more {
	display: block;
	text-align: center;
	width: 270px;
	padding: 12px 0;
	padding-left: 30px;
	background-image: url(../images/common/arrow_wht.svg);
	background-color: #007ece;
	color: #fff;
	box-shadow: 2px 2px 6px rgba(0,0,0,.3);
	text-shadow: 1px 1px 2px rgba(0,0,0,.2);
	margin: 40px 0 0 auto;
}
	
.home #sec-02 {
	background: url(../images/common/bg_blue.png);
}

.home #sec-02 h2 {
	color: #fff;
}

.home #sec-02 h2 span::before {
	background: #fff;
}

.home #sec-02 .container {
	background: #fff;
	padding: 20px 40px;
	box-shadow: 2px 2px 6px rgba(0,0,0,.3);
}

.news li:not(:last-child) {
	border-bottom: .5px dashed #1a1a1a;
	}
	.news li:last-child {
		text-align: right;
	}

.news li:not(:last-child)>a {
	display: -webkit-box;
	display: flex;
	padding: 32px 0;
	font-family: 'Noto Serif JP', serif;
	font-weight: 500;
	font-size: 16px;
	position: relative;
	}
	.news li:not(:last-child)>a::after {
		content: '＞';
		font-family: 'Hiragino-sans', 'Hiragino Kaku Gothic ProN', Meiryo, sans-serif;
		font-weight: 600;
		color: #007ece;
		display: block;
		position: absolute;
		right: 0;
		top: 50%;
		transform: translateY(-50%);
	}

.news-date::after {
	display: inline-block;
	color: #fff;
	font-size: 13px;
	width: 104px;
	text-align: center;
	margin: 0 1em;
	vertical-align: baseline;
	font-family: 'Hiragino-sans', 'Hiragino Kaku Gothic ProN', Meiryo, sans-serif;
	border-width: 1px;
	border-style: solid;
	}
	.news-date.cat-info::after {
		content: 'お知らせ';
		border-color: #007ece;
		color: #007ece;
	}
	.news-date.cat-recruit::after {
		content: '採用情報';
		border-color: #58b624;
		color: #58b624;
	}
	.news-date.cat-achieve::after {
		content: '実績紹介';
		border-color: #f6a100;
		color: #f6a100;
	}
	
.news .btn-link.more {
	color: #1a1a1a;
	background-image: url(../images/common/arrow_blue.svg);
	margin-top: 20px;
	width: auto;
}

.bottom-container {
	padding: 60px 0;
	background: url(../images/home/page_link_bg.png) center center no-repeat;
	background-size: 100% auto;
}

.page-link-btns {
	width: 1000px;
	margin: 0 auto;
}

.page-link-btns ul {
	display: -webkit-box;
	display: flex;
	-webkit-box-pack: justify;
	justify-content: space-between;
	flex-wrap: wrap;
}

.page-link-btns li {
	margin: 40px 0;
	position: relative;
	-webkit-filter: drop-shadow(2px 2px 4px rgba(0,0,0,.3));
	filter: drop-shadow(2px 2px 4px rgba(0,0,0,.3));
	}
	.page-link-btns li:nth-child(odd) {
		margin-left: 28px;
		margin-right: -28px;
	}
	.page-link-btns li:nth-child(even) {
		margin-right: 28px;
		margin-left: -28px;
	}

.page-link-btns .content {
	position: absolute;
	display: -webkit-box;
	display: flex;
	-webkit-box-align: end;
	align-items: flex-end;
	}
	.page-link-btns li:nth-child(odd) .content {
		top: -20px;
		left: -20px;
	}
	.page-link-btns li:nth-child(even) .content {
		top: -20px;
		right: -20px;
		-webkit-box-orient: horizontal;
		-webkit-box-direction: reverse;
		flex-direction: row-reverse;
		}
		.page-link-btns .content::before {
			content: '';
			display: block;
			width: 180px;
			height: 180px;
			background-size: cover;
			background-repeat: no-repeat;
		}
		.page-link-btns li:first-child .content::before {
			margin-right: 20px;
			background-image: url(../images/home/page_link_img_01.jpg);
		}
		.page-link-btns li:nth-child(2) .content::before {
			margin-left: 20px;
			background-image: url(../images/home/page_link_img_02.jpg);
		}
		.page-link-btns li:nth-child(3) .content::before {
			margin-right: 20px;
			background-image: url(../images/home/page_link_img_03.jpg);
		}
		.page-link-btns li:last-child .content::before {
			margin-left: 20px;
			background-image: url(../images/home/page_link_img_04.jpg);
		}
		
.page-link-btns .content div {
	transition: opacity .3s ease;
	}		
	.page-link-btns a:hover .content div {
		opacity: .7;
	}

.page-link-title span {
	display: block;
	line-height: 1.25;
	}
	.page-link-title span:not(.eng) {
		font-family: 'Noto Serif JP', serif;
		font-size: 24px;
		font-weight: 700;
		margin-bottom: 14px;
	}
	.page-link-title .eng {
		font-size: 15px;
		font-weight: 600;
	}

.page-link-btns a:hover {
	opacity: 1;
}

.page-link-btns .btn-link.more {
	padding-top: 10px;
	padding-bottom: 10px;
	margin-left: 20px;
}

.gmap {
	width: 100%;
	overflow: hidden;
	position: relative;
	height: 422px;
}

.gmap iframe {
	position: absolute;
	left: 0;
	top: 0;
	min-width: 100%;
	min-height: 100%;
}

/*
=======================================================
 CORPORATE
=======================================================	
*/

.footer-icons {
	width: 1001px;
	position: absolute;
	left: 50%;
	bottom: -25px;
	transform: translateX(-50%);
}

.corporate #sec-02 {
	background: url(../images/common/bg_stripe.png);
	padding-bottom: 120px;
}

.corporate .maps {
	background: #fff;
	padding: 30px 40px 50px 40px;
	line-height: 1.75;
}

.corporate .maps li {
	font-size: 16px;
	}
	.corporate .maps li:not(:last-child) {
		margin-bottom: 80px;
	}
	
.corporate .maps h3:first-letter {
	color: #007ece;
}
	
.corporate .maps p {
	padding-left: 1.5em;
}

.corporate .gmap {
	margin-top: 30px;
}

/*
-------------------------------------------------------
 PHILOSOPHY
-------------------------------------------------------
*/

.philosophy #sec-01 {
	text-align: center;
}

.philosophy h3 {
	font-size: 44px;
	font-weight: 700;
	color: #007ece;
	text-shadow: 2px 2px 4px rgba(0,0,0,.2);
	margin: 70px 0 40px 0;
}

.philosophy #sec-01 p {
	font-size: 24px;
	line-height: 2.1;
	padding-bottom: 90px;
	background: url(../images/corp/ph_logo.png) right bottom no-repeat;
}

.philosophy #sec-02 {
	background: url(../images/common/bg_pattern.png);
	position: relative;
	}
	.philosophy #sec-02::before {
		content: '';
		display: block;
		width: 100%;
		height: 322px;
		background: url(../images/common/bg_blue.png);
		position: absolute;
		left: 0;
		top: 0;
	}

.philosophy #sec-02 .container {
	width: 100%;
}

.philosophy #sec-02 .title {
	color: #fff;
	position: relative;
	z-index: 2;
}

.philosophy #sec-02 .title span::before {
	background: #fff;
}

.philosophy #sec-02 .content {
	position: relative;
	z-index: 2;
	background: url(../images/corp/msg_visual.jpg) no-repeat;
	background-size: contain;
	padding: 40px 0;
}

.msg-box-wrapper {
	width: 1000px;
	margin: 0 auto;
	display: -webkit-box;
	display: flex;
	-webkit-box-pack: end;
	justify-content: flex-end;
}

.msg-box {
	background: rgba(255,255,255,.94);
	display: block;
	padding: 35px 40px;
}

.msg-box p {
	font-family: 'Noto Serif JP', serif;
	font-weight: 500;
	font-size: 18px;
	line-height: 1.75;
}

.msg-box .ceo {
	text-align: right;
	margin-top: 40px;
	font-size: 26px;
	line-height: 1.5;
}

.msg-box .ceo img {
	width: 315px;
}

.msg-box .ceo span {
	display: block;
	font-size: 22px;
}

/*
-------------------------------------------------------
 OFFICE
-------------------------------------------------------
*/

.office section {
	background: url(../images/common/bg_pattern.png);
}

.office .container {
	width: 100%;
	padding: 0 70px;
}

.office .maps {
	text-align: center;
}

.office .maps li {
	margin-top: 70px;
}

.office .maps h2 {
	font-weight: 500;
	font-size: 20px;
	margin-bottom: 10px;
	}
	.office .maps h2::before {
		content: '■';
		color: #007ece;
		display: inline-block;
		margin-right: .5em;
	}
	
.office .maps p {
	font-size: 16px;
}

.office .gmap {
	margin-top: 50px;
	height: 470px;
}

/*
-------------------------------------------------------
 NEWS
-------------------------------------------------------
*/

.news-archive-list li {
	padding-top: 70px;
	margin-top: -70px;
	border-bottom: .5px dashed #000;
}

.news-archive-list li>div {
	display: -webkit-box;
	display: flex;
	padding: 32px 0;
	font-family: 'Noto Serif JP', serif;
	font-weight: 500;
	font-size: 16px;
}

.news-archive-list li>div a {
	text-decoration: underline;
}


/*
-------------------------------------------------------
 PRIVACY POLICY
-------------------------------------------------------
*/

.privacy section {
	font-size: 16px;
	line-height: 1.75;
}

.privacy dl {
	margin-top: 3em;
	counter-reset: number 0;
}

.privacy dt {
	display: inline-block;
	margin-bottom: 1em;
	position: relative;
	padding-left: 32px;
	padding-bottom: 9px;
	line-height: 1;
	background: url(../images/common/border_blue.png) 32px bottom no-repeat;
	}
	.privacy dt::before {
		counter-increment: number;
		content: counter(number);
		display: block;
		position: absolute;
		left: 0;
		top: 0;
		color: #fff;
		width: 25px;
		height: 25px;
		background: #1a1a1a;
		text-align: center;
		font-family: 'YuMincho', 'Noto Serif JP', serif;
		font-size: 20px;
		padding-top: 2px;
		box-sizing: border-box;
	}

.privacy dd {
	margin-bottom: 3em;
	}
	.privacy dd:last-child {
		margin-top: -2em;
		text-align: right;
	}
	
/*
=======================================================
 SERVICE
=======================================================	
*/
	
.service section {
	text-align: center;
	}
	.service section.subsec {
		padding-bottom: 0;
		margin-top: 60px;
	}

.service section:not(.subsec)>.container {
	width: 100%;
}

.service section p {
	font-size: 20px;
	margin: 40px 0;
}

.service p.note {
	font-size: 16px !important;
	margin-bottom: 0 !important;
}

.service-top section,
.electric-works section {
	background: url(../images/common/bg_pattern.png);
	}
	.service-top section:first-of-type {
		padding-bottom: 0;
	}

.service-top .container {
	width: 1000px !important;
}

.service-top section ul {
	display: -webkit-box;
	display: flex;
	justify-content: space-around;
	flex-wrap: wrap;
	}
	.service-top section ul.ge {
		-webkit-box-pack: start;
		justify-content: flex-start;
		padding-left: 8px;
	}

.service-top section li {
	width: 318px;
	}
	.service-top section li:nth-child(-n+3) {
		margin-bottom: 50px;
	}
	
.service-page-img {
	outline: 2px solid #fff;
	outline-offset: -10px;
}

.service-page-title {
	background: url(../images/common/bg_blue.png);
	padding: 0 20px;
}

.service-page-title span {
	display: block;
	font-size: 16px;
	font-weight: 700;
	color: #fff;
	padding: 26px 0;
	background: url(../images/common/arrow_circle.svg) right center no-repeat;
}

.pv-guide-map {
	position: relative;
	padding: 20px 0;
	}
	.pv-guide-map::before {
		content: '';
		display: block;
		width: 100%;
		height: 250px;
		background: #80bee6;
		position: absolute;
		bottom: -25px;
		left: 0;
		z-index: -1;
	}
	
.pv-guide-box {
	border: 2px solid #007ece;
	background: #fff;
	width: 980px;
	margin: 0 auto;
	padding: 30px;
	display: -webkit-box;
	display: flex;
	-webkit-box-pack: justify;
	justify-content: space-between;
	box-shadow: 2px 2px 8px rgba(0,0,0,.3);
}

.pv-guide-box ul {
	font-family: 'Hiragino-sans', 'Hiragino Kaku Gothic ProN', Meiryo, sans-serif;
	text-align: left;
	}
	.pv-guide-box ul:nth-child(2) {
		counter-reset: number 3;
	}

.pv-guide-box li {
	font-size: 18px;
	font-weight: 600;
	letter-spacing: 0;
	line-height: 1.9;
	}
	
.pv-guide-box li span {
	color: #007ece;
	}
	.pv-guide-box li span::after {
		content: '……';
		color: #1a1a1a;
	}
	
.pv-guide-box li span {
	color: #007ece;
}
	
.service .subsec h2 {
	font-size: 24px;
	font-weight: 700;
	margin-bottom: 40px;
	position: relative;
	}
	.service .subsec h2::before {
		content: '';
		display: block;
		width: 100%;
		height: 2px;
		background: #007ece;
		position: absolute;
		top: 50%;
		margin-top: -1px;
		left: 0;
	}

.service .subsec h2 span {
	display: inline-block;
	background: #fff;
	position: relative;
	z-index: 2;
	padding: 0 30px;
}

.battery section:not(.subsec)>.container {
	position: relative;
	padding-bottom: 64px;
	}
	.battery section:not(.subsec)>.container::before {
		content: '';
		display: block;
		width: 100%;
		height: 250px;
		background: #80bee6;
		position: absolute;
		left: 0;
		bottom: 0;
		z-index: -1;
	}
	
.battery img {
	box-shadow: 2px 2px 8px rgba(0,0,0,.3);
	}
	.battery .subsec img {
		box-shadow: none;
	}
	
.electric-works .photo-container {
	display: -webkit-box;
	display: flex;
	-webkit-box-pack: center;
	justify-content: center;
	-webkit-box-orient: horizontal;
  	-webkit-box-direction: reverse;
  	flex-direction: row-reverse;
  	margin: 65px 0 75px 0; 
}

.electric-works .photo-container img {
	display: block;
	width: 475px;
	margin: 0 15px;
	box-shadow: 2px 2px 6px rgba(0,0,0,.3);
}
	
/*
-------------------------------------------------------
 FAQ
-------------------------------------------------------
*/
	
.faq section {
	background: url(../images/common/bg_dots.png);
}

.faq dl {
	padding: 40px;
	background: #fff;
	font-size: 16px;
}

.faq dt {
	color: #007ece;
	padding: 17px 15px;
	padding-left: 85px;
	position: relative;
	background: #e1e1e1;
	}
	.faq dt::before {
		content: '';
		display: block;
		width: 50px;
		height: 50px;
		background: url(../images/service/faq_icon_Q.svg) no-repeat;
		background-size: contain;
		position: absolute;
		left: 15px;
		top: 50%;
		transform: translateY(-50%);
		z-index: 2;
	}
	.faq dt::after {
		content: '';
		display: block;
		width: 8px;
		height: 100%;
		position: absolute;
		top: 0;
		left: 36px;
		background: #fff;
	}
	
.faq dd {
	padding: 12px 15px;
	padding-left: 85px;
	margin: 30px 0 40px 0;
	position: relative;
	}
	.faq dd:last-child {
		margin-bottom: 0;
		}
		.faq dd::before {
			content: '';
			display: block;
			width: 50px;
			height: 50px;
			background: url(../images/service/faq_icon_A.svg) no-repeat;
			background-size: contain;
			position: absolute;
			left: 15px;
			top: 50%;
			transform: translateY(-50%);
		}
	
/*
-------------------------------------------------------
 EQUIPMENT
-------------------------------------------------------
*/

.equipment section {
	background: url(../images/common/bg_dots.png);
}

.equipment section .container {
	width: 1000px !important;
}

.equipment-list>ul {
	background: #fff;
	box-shadow: 2px 2px 8px rgba(0,0,0,.3);
}

.equipment-list>ul>li {
	margin-bottom: 20px;
	padding: 0 40px 20px 40px;
}

.equip-cat-name {
	padding: 40px 0;
	display: -webkit-box;
	display: flex;
	text-align: left;
	}
	.equip-03 .equip-cat-name {
		-webkit-box-align: center;
		align-items: center;
	}

.equip-cat-name h2 {
	background: url(../images/equipment/cat_name_bg.png) right top no-repeat;
	font-size: 16px;
	font-weight: 500;
	line-height: 1;
	padding: 32px 30px 32px 40px;
	margin-left: -50px;
	min-width: 250px;
	color: #fff;
	white-space: nowrap;
	flex-shrink: 0;
}

p.equip-desc {
	font-size: 16px !important;
	padding-left: 20px;
	margin: 0 !important;
	letter-spacing: 0;
}

.equip-photo-container {
	position: relative;
}

.equip-spec {
	text-align: left;
	background: rgba(255,255,255,.9);
	outline: 2px solid #fff;
	outline-offset: 5px;
	padding: 20px;
	position: absolute;
	left: 20px;
	bottom: 20px;
}

.equip-photo-container ul {
	display: -webkit-box;
	display: flex;
	-webkit-box-pack: justify;
	justify-content: space-between;
	flex-wrap: wrap;
}

.equip-photo-container li {
	width: 440px;
	margin-bottom: 30px;
}

.equip-name {
	background: #333;
	font-size: 16px;
	color: #fff;
	padding: 16px;
}


/*
-------------------------------------------------------
 COMMON
-------------------------------------------------------
*/

.bottom {
	background: #e1e1e1;
	padding: 60px 0;
}

.bottom .container {
	background: url(../images/service/bottom_bg.jpg) no-repeat;
	background-size: cover;
	text-align: center;
	color: #fff;
	padding: 30px 0;
}

.bottom h2 {
	font-size: 24px;
	font-weight: 700;
	line-height: 1;
	text-shadow: 0 2px 2px rgba(0,0,0,.5);
}

.bottom h2 .eng {
	font-family: 'Hiragino-sans', 'Hiragino Kaku Gothic ProN', Meiryo, sans-serif;
	font-size: 14px;
	font-weight: 400;
	display: block;
	margin-top: 12px;
}

.bottom p {
	margin: 22.5px 0 27px 0;
	font-size: 18px;
	line-height: 1.55;
	text-shadow: 0 2px 2px rgba(0,0,0,.5);
}

.bottom .btn-link {
	font-size: 16px;
	color: #007ece;
	background-image: url(../images/common/arrow_short_blue.svg);
	background-size: 42px auto;
	background-color: #fff;
	width: 262px;
	letter-spacing: .05em;
	padding: 13px 0;
	box-shadow: 2px 2px 6px rgba(0,0,0,.3);
}

/*
=======================================================
 ACHIEVEMENT
=======================================================	
*/

.achievem section:not(.subsec) {
	text-align: center;
	padding-bottom: 0;
}

.achievem .container {
	width: 900px;
}

.achievem p {
	font-size: 20px;
	margin: 40px 0;
}

.pref-list {
	margin: 80px 0;
}

.pref-list dt {
	font-size: 20px;
	line-height: 1;
	color: #fff;
	background: url(../images/common/bg_blue.png);
	padding: 19px 0;
}

.pref-list dd {
	border: 1px solid #007ece;
	padding: 15px;
}

.pref-list dd span {
	display: inline-block;
	text-align: left;
	font-size: 16px;
}

.achievem .subsec {
	background: url(../images/common/bg_pattern.png);
	padding-top: 0 !important;
}

.achievem .subsec h2 {
	font-size: 24px;
	font-weight: 700;
	color: #fff;
	padding: 20px 0 46px 0;
	background: url(../images/achievem/results_title_bg.png) center center repeat-x;
	text-align: center;
}

.results li {
	margin-top: 80px;
}
	
.result-head {
	border-bottom: 2px solid #007ece;
	padding-bottom: 20px;
	font-size: 18px;
	display: -webkit-box;
	display: flex;
	margin-bottom: 45px;
}

.result-head>div {
	width: 50%;
	text-align: left;
	}
	.result-head>div::before {
		display: inline-block;
		width: 90px;
		padding: 11px 0;
		background: #007ece;
		color: #fff;
		text-align: center;
		margin-right: 20px;
		line-height: 1;
		}
		.result-name::before {
			content: '名称';
		}
		.result-area::before {
			content: 'エリア';
		}

.result-photo {
	box-shadow: 2px 2px 6px rgba(0,0,0,.3);
}

/*
=======================================================
 RECRIT
=======================================================	
*/

.recruitTitle {
	padding: 15px 40px;
	color: white;
	font-size: 20px;
	font-weight: 700;
	background-color: #006bb6;
}

.recruitTable {
	font-size: 16px;
}

.recruitTable th::before {
	content: none;
}

.recruitTable th {
}

.recruitTable th span {
	display: inline-block;
	padding: 0 0 0 30px;
	background-image: url("../images/recruit/icon01.svg");
	background-position: 0 3px;
	background-repeat: no-repeat;
}

.recruitTable .recruitTr02 th span {
	background-image: url("../images/recruit/icon02.svg");
}

.recruitTable .recruitTr03 th span {
	background-image: url("../images/recruit/icon03.svg");
}

.recruitTable .recruitTr04 th span {
	background-image: url("../images/recruit/icon04.svg");
}

.recruitTable .recruitTr05 th span {
	background-image: url("../images/recruit/icon05.svg");
}

.recruitTable .recruitTr06 th span {
	background-image: url("../images/recruit/icon06.svg");
}

.recruitTable .recruitTr07 th span {
	background-image: url("../images/recruit/icon07.svg");
}

.recruitTable .recruitTr08 th span {
	background-image: url("../images/recruit/icon08.svg");
}

.recruitTable .recruitTr09 th span {
	background-image: url("../images/recruit/icon09.svg");
}

.recruitTable .recruitTr10 th span {
	background-image: url("../images/recruit/icon10.svg");
}

.recruitBtn {
	width: 400px;
	margin: 30px auto 80px;
	padding: 30px 30px;
	display: block;
	font-size: 24px;
	font-weight: 700;
	text-align: left;
	color: white;
	background-color: #3f98e4;
	border-radius: 4px;
	box-shadow: 2px 2px 6px 0px rgba(0,0,0,0.3);
	background-image: url("../images/recruit/btn_icon.svg");
	background-position: right 20px center;
	background-repeat: no-repeat;
}

.rotate {
	display: inline-block;
	transform: rotate(90deg);
}




/*
=======================================================
 FOOTER
=======================================================	
*/

footer {
	border-top: 4px solid #007ece;
}

footer .container {
	width: 100%;
	padding: 32px 20px 30px 20px;
	display: -webkit-box;
	display: flex;
	-webkit-box-pack: center;
	justify-content: center;
}

.footer-info {
	width: 376px;
	margin-top: -8px;
}

.footer-logo {
	margin-bottom: 10px;
}

.footer-logo img {
	width: 226px;
	height: auto;
}

.footer-info p span {
	display: block;
	}
	.footer-info p span:not(.cp-name) {
		font-family: 'Noto Serif JP', serif;
		line-height: 1.57;
		font-size: 14px;
		font-weight: 500;
	}
	.footer-info p .cp-name {
		font-size: 20px;
		font-weight: 700;
		margin-bottom: 8px;
		line-height: 1.1;
	}

#nav-footer ul {
	display: -webkit-box;
	display: flex;
	flex-wrap: wrap;
	max-width: 710px;
	line-height: 2;
	}
	#nav-footer ul:first-child {
		margin-bottom: 1em;
	}

#nav-footer li:not(:last-child) {
	margin-right: 35px;
	}
	#nav-footer li:first-child {
		width: 100%;
	}
	#nav-footer ul:nth-child(2) li:nth-child(4) {
		width: 30%;
	}
	
#nav-footer li a {
	font-family: 'Noto Serif JP', serif;
	font-size: 14px;
	font-weight: 500;
	background: url(../images/common/footer_nav_arrow.svg) left center no-repeat;
	padding-left: 20px;
}

.copy {
	background: #000;
	text-align: center;
	padding: 39px 0;
	line-height: 1;
	font-size: 12px;
	color: #fff;
}

.gotop {
	position: fixed;
	bottom: 65px;
	right: 10%;
	z-index: 100;
}

.gotop a {
	display: block;
	border-radius: 50%;
	box-shadow: 2px 2px 6px rgba(0,0,0,.3);
	width: 50px;
	height: 50px;
	overflow: hidden;
	text-indent: 100%;
	white-space: nowrap;
	background: #007ece url(../images/common/gotop.svg) center center no-repeat;
}


/*------------------------------------------------------------------*/
	@media screen and (min-width: 768px) and (max-width: 1079px) {
/*------------------------------------------------------------------*/
	
	header,
	.home .keyvisual,
	.pages .keyvisual,
	.breadcrumbs,
	.page-nav-wrapper {
		padding: 0 40px;
	}
	
	#nav-global li:not(:last-child) a {
		margin-right: 0;
		}
		#nav-global li:not(:last-child) a::after {
			margin: 0 15px;
		}
		
	.btn-scroll {
		width: 40px;
	}
		
	.home .keyvisual .video img,
	.pages .keyvisual img {
		height: auto;
	}
		
	.keyvisual-msg p {
		white-space: nowrap;
	}
	
	#page-nav li a {
		padding: 15px 25px;
	}

/*------------------------------------------------------------------*/
	}
/*------------------------------------------------------------------*/
	


/*------------------------------------------------------------------*/
/* safari */
/*------------------------------------------------------------------*/
	_::-webkit-full-page-media, _:future, :root .page-link-title .eng {
		font-size: 11px;
	}
	_::-webkit-full-page-media, _:future, :root #page-nav ul {
		width: 100%;
	}
	_::-webkit-full-page-media, _:future, :root #page-nav li a {
		font-size: 13px;
		padding: 10px 15px;
	}
/*------------------------------------------------------------------*/
/*------------------------------------------------------------------*/





/*------------------------------------------------------------------*/
	@media screen and (max-width: 1180px) {
/*------------------------------------------------------------------*/
	#nav-global li span.icon img {
		max-width: 18px;
		max-height: 18px;
	}
	#nav-global li:nth-child(5) span.icon img {
		max-width: 25px;
	}
	#nav-global li span:not(.icon) {
		font-size: 12px;
	}
	#nav-global li span.eng {
		font-size: 9px;
	}
	#nav-global li:not(:last-child) a::after {
		margin-right: 5px;
		margin-left: 15px;
	}
/*------------------------------------------------------------------*/
	}
/*------------------------------------------------------------------*/
