@charset "UTF-8";

/*-----------------------------------------------------------------
　　reset
-----------------------------------------------------------------*/
html, body, header, footer, main, section,
article, aside, menu, nav, div,
h1, h2, h3, h4, h5, h6, p, span, a,
address, cite, code, q, em, figure, img,
small, strong, dialog, time,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td  {
    margin: 0;
    padding: 0;
    border: 0;
    outline: 0;
    font-size: 100%;
    background: transparent;
}
body {
    line-height:1;
    -webkit-font-smoothing: antialiased;
    -webkit-text-size-adjust: 100%;
    -webkit-print-color-adjust: exact;
}
footer, header, main, section,
article, aside, figure, nav {
    display: block;
}
nav ul {
    list-style: none;
}
table {
    border-collapse: collapse;
    border-spacing: 0;
}
blockquote, q {
    quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
    content: '';
    content: none;
}
input, select {
    vertical-align: middle;
}
button,
input[type="text"],
input[type="number"],
input[type="tel"],
input[type="search"],
input[type="password"],
input[type="submit"],
textarea {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    background: none;
    border: none;
    border-radius: 0;
    outline: none;
}
img {
    line-height: 1;
    max-width: 100%;
    height: auto;
}

/*-----------------------------------------------------------------
　　setting
-----------------------------------------------------------------*/
body {
    font-family: -apple-system, BlinkMacSystemFont, "ヒラギノ角ゴ ProN W3", "メイリオ", Meiryo, sans-serif;
    background: url(../img/header_line.png) repeat-x 0 0;
	font-size: 15px;
}
a {
    color: #06f;
	text-decoration: none;
}
a:hover {
	text-decoration: underline;
}
.cf:after {
    content: '';
    display: block;
    clear: both;
}
.sprite {
    overflow: hidden;
    text-indent: 120%;
    white-space: nowrap;
}

/*---------------------------------------
　　header
---------------------------------------*/
header {
    width: 950px;
    margin: 0 auto;
    padding: 10px 0 13px;
}
header h1,
header .contact {
    display: block;
    overflow: hidden;
    text-indent: 120%;
    white-space: nowrap;
}
header h1 {
    width: 393px;
    height: 94px;
    margin: 13px 0 0;
    background: url(../img/logo.png) no-repeat;
    float: left;
}
header .contact {
    width: 335px;
    height: 81px;
	margin: 19px 0 0;
    background: url(../img/header_contact.png) no-repeat;
    float: right;
}

@media screen and (max-width: 640px) {
	header {
		width: 100%;
	}
	header h1 {
		float: none;
		margin: 10px auto 20px;
		width: 275px;
		height: 60px;
		background-size: 275px 60px;
	}
	header .contact {
		float: none;
		margin: 0 auto;
		width: 234px;
		height: 57px;
		background-size: 234px 57px;
	}
}

/*---------------------------------------
　　global navi
---------------------------------------*/
nav {
    height: 60px;
    margin: 0 0 12px;
    background: url(../img/nav_bg.png) repeat-x;
    box-shadow: 0 10px 10px -10px #666;
}
nav ul {
    width: 950px;
    margin: 0 auto;
}
nav li {
    float: left;
}
nav li a {
    position: relative;
    display: block;
    height: 60px;
    background-repeat: no-repeat;
    background-position: right top;
    overflow: hidden;
    text-indent: 120%;
    white-space: nowrap;
}
nav li.home a {
    width: 150px;
    background-image: url(../img/nav_home.png);
}
nav li.business a {
    width: 153px;
    background-image: url(../img/nav_business.png);
}
nav li.construction a {
    width: 162px;
    background-image: url(../img/nav_construction.png);
}
nav li.recruit a {
    width: 154px;
    background-image: url(../img/nav_recruit.png);
}
nav li.company a {
    width: 152px;
    background-image: url(../img/nav_company.png);
}
nav li.contact a {
    width: 179px;
    background-image: url(../img/nav_contact.png);
}

@media screen and (min-width: 641px) {
	nav li a::before {
		content: '';
		width: 0;
		height: 0;
		border: solid 6px transparent;
		border-left: solid 9px #fff;
		position: absolute;
		left: 26px;
		top: 25px;
		opacity: 0;
		transition: all 0.3s;
	}
	nav li.current a::before,
	nav li a:hover::before {
		opacity: 1;
	}
}

@media screen and (max-width: 640px) {
	nav {
		height: auto;
		margin: 0 0 12px;
		background: none;
	}
	nav ul {
		width: 100%;
		margin: 0 auto;
	}
	nav li {
		width: 50%;
		height: 50px;
		background: url(../img/nav_bg.png) repeat-x left -6px;
		overflow: hidden;
	}
	nav li a {
		background-position: center -6px;
	}
	nav li:nth-child(odd) a {
		border-right: solid 1px #83a8b9;
	}
	nav li.home a,
	nav li.business a,
	nav li.construction a,
	nav li.recruit a,
	nav li.company a,
	nav li.contact a {
		width: auto;
	}
}

/*---------------------------------------
　　Slider
---------------------------------------*/
#slider img {
	display: block;
	margin: 0 5px;
}
@media screen and (max-width: 640px) {
	#slider img {
		width: 450px;
	}
}
@media screen and (max-width: 450px) {
	#slider img {
		width: 320px;
	}
}

/*---------------------------------------
　　#title
---------------------------------------*/
#title {
	max-width: 950px;
	margin: 0 auto;
}

/*---------------------------------------
　　#contents
---------------------------------------*/
#contents {
	width: 950px;
	margin: 0 auto;
}
#sidebar {
	width: 260px;
	margin: 7px 0 0;
	float: left;
}
main {
	width: 650px;
	margin: 20px 0 0;
	float: right;
}
section {
	margin: 0 0 70px;
	line-height: 1.5;
}
@media screen and (max-width: 640px) {
	#contents {
		width: auto;
	}
	#sidebar {
		width: auto;
		margin: 7px 0 0;
		padding: 20px 0 10px;
		float: none;
		background: #f0f0f0;
		text-align: center;
	}
	main {
		width: auto;
		margin: 14px 0 0;
		padding: 0 10px;
		float: none;
	}
	section {
		margin: 0 0 70px;
		line-height: 1.5;
	}
}

/*---------------------------------------
　　#sidebar
---------------------------------------*/
#sidebar a {
	display: block;
	width: 260px;
	margin: 0 auto 10px;
	margin-bottom: 10px;
	transition: all 0.3s;
}
#sidebar .fb-page {
	width: 260px;
	height: 470px;
	margin: 0 auto 15px;
}
@media screen and (min-width: 641px) {
	#sidebar a:hover {
		opacity: 0.7;
	}
}



/*---------------------------------------
　　main
---------------------------------------*/
/*
　　Heading
-----------------*/
section h2 {
	position: relative;
	height: 26px;
	padding: 12px 10px 10px 56px;
	margin: 0 0 20px;
	background: url(../img/heading_line.png) repeat-x left bottom;
	font-size: 17px;
}
section h2 .en {
	float: right;
	font-size: 16px;
}
section h2:before {
	content: '';
	width: 38px;
	height: 38px;
	background: url(../img/heading_icon.png) no-repeat;
	position: absolute;
	left: 3px;
	top: 0;
}

section h3 {
	margin-bottom: 12px;
}

/*
　　Box
-----------------*/
section p {
	margin: 0 0 10px;
}
.note {
	color: #f00;
}
.box {
	margin-bottom: 30px;
}
.right {
	text-align: right;
}
.center {
	text-align: center;
}
.float_left {
	float: left;
	margin: 0 20px 20px 0;
}
.float_right {
	float: right;
	margin: 0 0 20px 30px;
}
@media screen and (max-width: 640px) {
	.box {
		padding-bottom: 30px;
		border-bottom: solid 1px #ccc;
	}
	.float_left,
	.float_right {
		float: none;
		margin: 0 0 20px;
		text-align: center
	}
}

/*
　　Table
-----------------*/
table {
	width: 100%;
	border: solid 2px #333;
	font-size: 14px;
}
table th,
table td {
	padding: 10px;
	border: solid 1px #333;
}
table th {
	white-space: nowrap;
	background: #f2f2f2;
}


table.construction {
	margin: 0 0 10px;
}
table.construction th {
	width: 100px;
	white-space: nowrap;
}


/*
　　Table
-----------------*/


table.construction td:last-child {
	width: 40%;
	padding: 0;
}
table.construction img {
	display: block;
}

table.recruit {
	margin: 0 0 15px;
}
table.recruit th,
table.recruit td {
	padding: 20px 10px;
}
table.recruit th {
	background: #e1ffe9;
}

table.contact {
	border: none;
}
table.contact th,
table.contact td {
	border: solid 1px #369;
	vertical-align: top;
	text-align: left;
}
table.contact th {
	background: #f0f8ff;
	font-weight: normal;
}

@media screen and (max-width: 640px) {
	table,
	table tbody,
	table tr,
	table th,
	table td {
		display: block;
	}
	table {
		border-bottom-width: 1px;
	}
	table th,
	table td,
	table.recruit th,
	table.recruit td {
		border: none;
		border-bottom: solid 1px #333;
	}
	table th,
	table.recruit th {
		padding: 5px 10px;
	}
	table td,
	table.recruit td {
		padding: 10px 10px 20px;
	}
	
	table.construction {
		display: table;
	}
	table.construction tbody {
		display: table-row-group;
	}
	table.construction tr {
		display: table-row;
	}
	table.construction th,
	table.construction td {
		display: table-cell;
		font-size: 12px;
		padding: 5px;
	}
	table.construction th {
		width: 80px;
	}
		
}

/*
　　Form
-----------------*/
span.req {
	display: inline-block;
	padding: 0 5px 0 0;
	color: #f00;
	font-size: 16px;
}
form label {
	display: block;
}
form input[type=text],
form input[type=tel],
form textarea {
	border: solid 1px #999;
	padding: 5px;
	font-size: 13px;
}
form .address {
	display: table;
}
form .address div {
	display: table-row;
}
form .address p {
	display: table-cell;
	padding: 3px 5px 3px 0;
	vertical-align: middle;
}
form .address p:first-child {
	white-space: nowrap;
}
.contact_submit {
	text-align: center;
	margin: 25px 0 0;
}
.contact_submit .back,
.contact_submit input[type=submit] {
	padding: 8px 10px;
	margin: 0 10px;
	border: solid 1px #999;
	background: #d8d8d8;
	background: linear-gradient(#f0f0f0, #d8d8d8);
	font-size: 14px;
	line-height: 1;
	cursor: pointer;
	transition: opacity 0.3s;
}
.contact_submit input#send {
	background: linear-gradient(#f0f0f0, #bacae0);
}
.contact_submit .back:hover,
.contact_submit input[type=submit]:hover {
	opacity: 0.8;
	text-decoration: none;
}
@media screen and (max-width: 640px) {
	form input.free,
	form textarea {
		width: 90%;
	}
}


/*
　　News
-----------------*/
section.news ul {
	list-style: none;
}
section.news li {
	position: relative;
	padding: 10px 5px 10px 100px;
	border-bottom: solid 1px #ccc;
}
section.news time {
	position: absolute;
	left: 5px;
	top: 10px;
	font-size: 14px;
}

/*
　　Company > map
-----------------*/
.map {
    position: relative;
    width: 100%;    /* 左右に余白が必要なら値を変更してもOK */
    height: 0;
    padding-bottom: 70%;    /* padding-topでもOK */
    overflow: hidden;
}
.map iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;    /* 必要であれば!importantを付けてください */
    height: 100%;    /* 必要であれば!importantを付けてください */
}




/*---------------------------------------
　　Footer
---------------------------------------*/
footer {
	height: 125px;
	padding: 45px 0 0;
	background: url(../img/footer_bg.png);
	text-align: center;
	color: #fff;
}
footer ul {
	margin-bottom: 30px
}
footer li {
	display: inline;
	line-height: 1.5;
}
footer li:after {
	display: inline;
	content: '/';
	margin: 0 5px;
}
footer li:last-child:after {
	display: none;
}
footer a {
	color: #fff;
}
@media screen and (max-width: 640px) {
	footer li:nth-child(3):after {
		content: '\A';
		margin: 0;
		white-space: pre;
	}
}







