@charset "utf-8";

/*
=======================================================
 Common
=======================================================	
*/

body, html {
	min-width: 1120px;
}

body {
	font-family: Arial, "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "メイリオ", sans-serif;
	margin:0;
	padding:0;
	
	line-height: 1.75;
	color: #222;
	height: 100%;
	font-weight: 500;
	}
	
a {
	text-decoration: none;
	transition: all .3s ease;
	color: #222;
	cursor: pointer;
}

a:hover {
	text-decoration: none;
	opacity: .8;
	color: #1a1a1a;
}

table {
	border-collapse: collapse;
	border-spacing: 0;
}

tr, td, th {
	padding: 0;
}

ul, ol {
	list-style: none;
	margin: 0;
	padding: 0;
}

h1,h2,h3,h4,h5 {
	margin-bottom: 0;
}

p {
	margin-bottom: 0;
}

dl,dd {
	margin-bottom: 0;
}

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

img {
	max-width: 100%;
}

.gothic {
    font-family: Arial, "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "メイリオ", sans-serif !important;
}

/*
=======================================================
 Header
=======================================================	
*/

header {
	margin: 0;
	padding: 0;
	position: relative;
}

.headcont {
	overflow: hidden;
}

h1 {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 2;
}

h1 a {
	display: block;
	background: url(../images/header_logo.png) no-repeat;
	text-indent: -9999px;
	width: 181px;
	height: 230px;
}

h1 a:hover {
	opacity: 1;
}


/*
=======================================================
 Global Navi
=======================================================	
*/

#global {
	float: right;
	width: calc(100% - 230px);
	max-width: 1310px;
}

#global ul {
	display: table;
}

#global li {
	display: table-cell;
	width: 16%;
	max-width: 180px;
	min-width: 120px;
	}
	#global li:last-child {
		margin-left: 30px;
		min-width: 200px;
		background: #222;
	}
	
#global li a {
	display: block;
	height: 100px;
	padding: 42px 0 0;
	text-align: center;
	font-weight: bold;
	font-size: 19px;
	line-height: 1;
	}
	#global li:first-child a {
		background: url(../images/gnav_icon01.png) center 20px no-repeat;
	}
	#global li:nth-child(2) a {
		background: url(../images/gnav_icon02.png) center 20px no-repeat;
	}
	#global li:nth-child(3) a {
		background: url(../images/gnav_icon03.png) center 20px no-repeat;
	}
	#global li:nth-child(4) a {
		background: url(../images/gnav_icon04.png) center 20px no-repeat;
	}
	#global li:nth-child(5) a {
		background: url(../images/gnav_icon05.png) center 20px no-repeat;
	}
	#global li:nth-child(6) a {
		background: url(../images/gnav_icon06.png) center 20px no-repeat;
	}
	#global li:last-child a {
		color: #fff;
		padding: 42px 10px 0;
	}
	
#global li a span {
	display: block;
	font-weight: normal;
	font-size: 14px;
	margin-top: 8px;
	}
	#global li:last-child a span {
		display: inline-block;
		font-size: 19px;
		margin-top: 0;
		background: url(../images/gnav_icon07.png) left center no-repeat;
		padding-left: 26px;
	}
	
/*
=======================================================
 Top
=======================================================	
*/

#main {
  width: 100%;
	line-height: 0;
	position: relative;
	text-align: center;
	overflow: hidden;
}

#main h2 {
	position: absolute;
	top: 0;
	width: 100%;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	justify-content: center;
	overflow: hidden;
}
.mainSlid{
	position: relative;
	left: 50%;
	width: 1920px;
	height: 740px;
	margin-left: -960px;
	margin-bottom: 0 !important;
}
.mainSlid li {
	position: absolute;
	top: 0;
	right: 0;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	justify-content: center;
	overflow: hidden;
	height: 740px;
}
.mainSlid img{
    height: auto;
    width: 100%;
}
/*slick setting*/
.slick-prev:before,
.slick-next:before {
    color: #000;
}

.slick-dots {
	bottom: 55px !important;
}

.slick-dots li button:before {
	font-size: 14px !important;
}

.slick-dots li button:before  {
	color: white !important;
	opacity: 1 !important;
}

.slick-dots li.slick-active button:before {
	color: black !important;
	opacity: 1 !important;
}



#main img {
	max-width: none;
}

/* News Ticker */

.ticker {
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	line-height: 40px;
	font-size: 18px;
	background: rgba(255,255,255,.8);
	margin: 0 auto;
	text-align: center;
	overflow: hidden;
}

.ticker ul {
	width: 100%;
	position: relative;
}

.ticker ul li {
	width: 100%;
	/*display: none;*/
}

section {
	padding: 80px 0 120px;
	background-size: cover !important;
}

.content {
	width: 1120px;
	margin: 0 auto;
	text-align: justify;
	text-justify: inter-ideograph;
}

section h3 {
	font-size: 38px;
	font-weight: normal;
	letter-spacing: .4em;
	text-align: center;
	line-height: 1;
	position: relative;
	}
	section h3::after {
		content: '';
		display: block;
		height: 1px;
		width: 50px;
		margin: 0 auto 20px;
	}
	section:nth-of-type(3n+1) h3::after,
	#commitment h3::after {
		background: #005bac;
		border-left: 25px solid #b6d316;
	}
	section:nth-of-type(3n+2) h3::after,
	#contact h3::after,
	#construction h3::after {
		background: #fcc601;
		border-left: 25px solid #eb5d39;
	}
	section:nth-of-type(3n) h3::after {
		background: #9c5aa1;
		border-left: 25px solid #e74173;
	}

section h3 span {
	display: block;
	font-size: 15px;
	padding: 20px 0 28px 0;
	letter-spacing: .4em;
}

section h4 {
	font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", serif;
	font-size: 28px;
	font-weight: 600;
	text-align: center;
	color: #581818;
	margin-bottom: 1em;
}
	
.btn {
	margin-top: 2em;
	text-align: center;
}

.btn a {
	display: inline-block;
	letter-spacing: .4em;
	font-weight: 400;
	background: #222;
	position: relative;
	color: #fff;
}

a.common {
	
	line-height: 50px;
	width: 250px;
	padding-right: 5px;
	}
	a.common::after {
		content: url(../images/btn_arrow_common.png);
		display: block;
		position: absolute;
		right: 15px;
		top: 0;
	}
	
#advantage .content {
	text-align: center;
        margin-bottom: -40px;
}

#advantage p {
	display: inline-block;
	text-align: left;
	font-size: 18px;
}

#service {
	background: #fafafa;
}

#service p {
	letter-spacing: -.05em;
	text-align: left !important;
}

#service .content>p {
	font-size: 18px;
}

#service a.common {
	padding-right: 15px;
}

.services {
	margin-top: 4em;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	justify-content:space-between;
	flex-wrap: wrap;
}

.services>div {
	width: 520px;
	position: relative;
	}
	.services>div:nth-child(-n+4) {
		margin-bottom: 100px;
	}

.services .pic {
	position: relative;
}

.services .txt {
	margin-top: -48px;
	position: relative;
	z-index: 2;
}

.services .txt h5 {
	font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", serif;
	font-size: 24px;
	font-weight: 600;
	text-align: center;
	color: #581818;
	display: inline-block;
	background: #fff;
	line-height: 48px;
	float: right;
	margin-bottom: 1em;
	padding: 0 .9em;
	letter-spacing: .1em;
	}
	.services>div:nth-child(n+3) .txt h5 {
		padding: 0 .75em;
		letter-spacing: .03em;
	}

.services .txt p {
	font-size: 14px;
	clear: right;
	height: 7em;
	}
	.services>div:nth-child(-n+2) .txt p {
		height: 8.75em;
	}

.services .btn {
	margin-top: 1.5em;
}

.services dt {
	font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", serif;
	font-size: 23px;
	font-weight: 600;
	text-align: center;
	border-bottom: 1px solid #222;
}

.services dd {
	font-size: 15px;
	border-bottom: 1px solid #222;
	padding: 30px 10px 30px 110px;
	}
	.services dd:first-of-type {
		background: url(../images/service_type01.png) 10px center no-repeat;
	}
	.services dd:last-of-type {
		background: url(../images/service_type02.png) 10px center no-repeat;
	}

.services dl+p {
	letter-spacing: 0;
	font-size: 13px;
	margin-top: 1.5em;
}

#works h4 {
	font-size: 22px;
}

.cases {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	justify-content:space-between;
	flex-wrap: wrap;
}

.cases li {
	width: 530px;
	margin-top: 40px;
}

.cases dt {
	height: 310px;
	position: relative;
	}
	.cases li:first-child dt {
		background: url(../images/works_ps.jpg) center center no-repeat;
	}
	.cases li:nth-child(2) dt {
		background: url(../images/works_fr.jpg) center center no-repeat;
	}
	.cases li:nth-child(3) dt {
		background: url(../images/works_ea.jpg) center center no-repeat;
	}
	.cases li:nth-child(4) dt {
		background: url(../images/works_nm.jpg) center center no-repeat;
	}
	.cases li:nth-child(5) dt {
		background: url(../images/works_sn.jpg) center center no-repeat;
	}
	.cases li:nth-child(6) dt {
		background: url(../images/works_nm2.jpg) center center no-repeat;
	}
	.cases li:nth-child(7) dt {
		background: url(../images/works_koto.jpg) center center no-repeat;
	}
	.cases li:nth-child(8) dt {
		background: url(../images/works_kai.jpg) center center no-repeat;
	}


.cases dt a {
	display: block;
	width: 100%;
	height: 100%;
	border: 13px solid rgba(0,0,0,0);
}

.cases dt a:hover {
	border: 13px solid rgba(0,0,0,.5);
}

.cases dt a span {
	display: block;
	position: absolute;
	left: 0;
	bottom: 0;
	text-align: center;
	width: 100%;
	color: #fff;
	background: rgba(34,34,34,.9) url(../images/workslist_btn_arrow.png) 469px center no-repeat;
	font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", serif;
	font-weight: 600;
	font-size: 22px;
	line-height: 50px;
	letter-spacing: .1em;
	}
	.cases dt a span::before {
		content: '';
		display: block;
		position: absolute;
		top: -12px;
		left: -12px;
		width: 0;
		height: 0;
		border: 12px solid transparent;
		border-bottom: 12px solid rgba(255,255,255,.25);
		transform: rotate(-45deg);
		-webkit-transform: rotate(-45deg);
	}
@media all and (-ms-high-contrast: none){
  .cases dt a span{
    padding-top: 5px; /* IE10以上 */
  }
}

.cases dd {
	font-size: 13px;
	border-bottom: 2px solid #fdca35;
	padding: 4px 0 11px 0;
	position: relative;
	}
	.cases dd::after {
		content: '';
		display: block;
		position: absolute;
		right: 0;
		bottom: -2px;
		width: 50px;
		height: 2px;
	}
	.cases li:first-child dd::after {
		background: #e74173;
	}
	.cases li:nth-child(2) dd::after {
		background: #005bac;
	}
	.cases li:nth-child(3) dd::after {
		background: #b6d316;
	}
	.cases li:nth-child(4) dd::after {
		background: #9c5aa1;
	}
	.cases li:nth-child(5) dd::after {
		background: #e74173;
	}
	.cases li:nth-child(6) dd::after {
		background: #005bac;
	}
	.cases li:nth-child(7) dd::after {
		background: #b6d316;
	}
	.cases li:nth-child(8) dd::after {
		background: #9c5aa1;
	}


	

.cases table {
	width: 100%;
}

.cases th {
	width: 74px;
	padding: 7px 0 0;
	text-align: center;
	font-weight: normal;
	vertical-align: middle;
}

.cases th span {
	display: block;
	border: 1px solid #222;
	line-height: 21px;
	padding-top: 1px;
}

.cases td {
	padding: 7px 0 0 10px;
	vertical-align: middle;
}

#works .btn {
	margin-top: 70px;
}

a.wlist {
	width: 450px;
	font-size: 20px;
	padding: 8px 0 12px;
	background: #222 url(../images/workslist_btn_line.png) center center no-repeat;
}

a.wlist span {
	display: block;
	font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", serif;
	font-weight: 600;
	font-size: 14px;
	padding-top: 16px;
	letter-spacing: 0;
}

.works-insta {
	margin-top: 90px;
	padding-top: 90px;
	border-top: 2px solid #fdca35;
}

#works h4 a {
	display: inline-block;
	color: #581818;
	background: url(../images/insta_logo.png) left center no-repeat;
	padding-left: 242px;
	line-height: 48px;
	}
	#works h4 a::after {
		content: url(../images/insta_arrow.png);
		display: inline-block;
		line-height: 1;
		vertical-align: middle;
		margin-left: 24px;
	}
	
#flow {
	background: url(../images/flow_bg.png);
}

.links {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	justify-content:space-between;
}

.links a {
	display: block;
	width: 540px;
	height: 200px;
	position: relative;
	}
	.links a:first-child {
		background: url(../images/flow01.png) no-repeat;
	}
	.links a:last-child {
		background: url(../images/flow02.png) no-repeat;
	}
	.links a::before {
		content: '';
		display: block;
		width: 100%;
		height: 100%;
		position: absolute;
		left: 0;
		top: 0;
		border: 13px solid rgba(34,34,34,.5);
		z-index: 2;
		opacity: 0;
		transition: .4s ease;
	}
	
.links a:hover::before {
	opacity: 1;
}
	
.links a>span {
	display: block;
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	height: 57px;
	padding: 7px 0 0 25px;
	font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", serif;
	font-weight: 600;
	font-size: 20px;
	letter-spacing: .07em;
	background: rgba(255,255,255,.6) url(../images/flow_btn_arrow.png) 453px 20px no-repeat;
}

.links .small {
	display: inline-block;
	font-family: arial, sans-serif;
	font-weight: 400;
	font-size: 14px;
	margin-left: .5em;
}

#contact {
	background: url(../images/contact_bg.png);
	position: relative;
	padding-bottom: 105px;
	}
	#contact::before {
		content: '';
		display: block;
		width: 100%;
		height: 65px;
		background: #fdca35;
		position: absolute;
		bottom: 0;
		left: 0;
		z-index: -1;
	}
	
#contact h4 {
	font-size: 22px;
}

.cbox {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	justify-content:space-between;
	width: 946px;
	margin: 1em auto 0;
}

.cbox>div {
	width: 474px;
	background: #fff;
}

.byphone {
	padding: 12px 11px;
	text-align: center;
}

.byphone span {
	display: block;
	font-size: 14px;
	line-height: 1.4;
	margin-bottom: 6px;
}

.bymail {
	padding: 10px;
}

.bymail a {
	display: block;
	height: 60px;
	background: #222 url(../images/contact_arrow.png) 388px center no-repeat;
	color: #fff;
	font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", serif;
	font-weight: 400;
	font-size: 22px;
	padding-left: 30px;
}

.bymail a span {
	display: inline-block;
	line-height: 60px;
	background: url(../images/contact_icon.png) left center no-repeat;
	padding-left: 1.5em;
}

@media all and (-ms-high-contrast: none){
  .bymail a span {
		line-height: 65px;
  }
}

*::-ms-backdrop, .selector {
	.ticker {
		line-height: 37px;
		padding-top: 3px;
	}
	
	.services .txt h5 {
		line-height: 45px;
		padding-top: 3px;
	}
	
	.cases dt a {
		line-height: 47px;
		padding-top: 3px;
	}
	
	.cases th span {
		line-height: 18px;
		padding-top: 4px;
	}
	
	.bymail a span {
		line-height: 57px;
		padding-top: 3px;
	}
}

/*
=======================================================
 Other Pages
=======================================================	
*/

#title {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	justify-content: center;
	align-items: center;
	height: 300px;
	background: url(../images/title_bg.png) center top;
}

section .content>p {
	text-align: center;
}

/*
=======================================================
 Concept
=======================================================	
*/

#philosophy .content {
	width: 100%;
}

.wrap {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
	margin-top: 60px;
}

.wrap>div {
	width: 50%;
	text-align: left;
}

.left {
	background: url(../images/concept_ph_img01.jpg) right top no-repeat;
	padding-top: 580px;
	overflow: hidden;
}

.left h4,
.left p {
	float: right;
}

.right {
	background: url(../images/concept_ph_img02.jpg) left bottom no-repeat;
	padding-bottom: 688px;
}

#philosophy h4 {
	width: 560px;
	height: 230px;
	background: url(../images/concept_ph_head_bg.png) no-repeat;
	text-align: left;
	padding: 50px 0 0 70px;
	font-size: 30px;
	line-height: 1.3;
	margin-bottom: 50px;
	text-shadow: 2px 2px 0 rgba(255,255,255,.4);
}

#philosophy h4 span {
	display: block;
	font-family: Arial, sans-serif;
	font-weight: normal;
	font-size: 10px;
	letter-spacing: .4em;
	}
	#philosophy h4 span::before {
		content: '';
		display: block;
		width: 15px;
		height: 1px;
		background: #581818;
		margin: 15px 0 25px;
	}
	
#philosophy p {
	width: 560px;
	padding: 0 70px;
	font-size: 15px;
	margin-bottom: 2em;
}

.box {
	margin-top: 60px;
	border: 10px solid #ededed;
	background: url(../images/concept_msg_bg.png) no-repeat;
	position: relative;
	width: 100%;
	min-height: 612px;
	position: relative;
}

.box p {
	padding: 50px 70px;
	
	line-height: 1.875;
	letter-spacing: -.05em;
}

.box img {
	position: absolute;
	right: 10px;
	bottom: -10px;
}

.members {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content:space-between;
	flex-wrap: wrap;
}

.members dl {
	width: 540px;
	margin-top: 55px;
	border: 8px solid #f7f7f7;
	border-top: none;
	}
	.members dl:nth-child(-n+2) {
		margin-top: 40px;
	}
	
.members dt {
	font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", serif;
	font-weight: 600;
	font-size: 22px;
	color: #581818;
	letter-spacing: .1em;
	background: #fdca35 url(../images/concept_mb_line.png) left bottom no-repeat;
	padding: 14px 25px 13px;
	text-shadow: 2px 2px 0 rgba(255,255,255,.3);
	margin: 0 -8px;
}

.members dt span {
	display: inline-block;
	font-family: Arial, sans-serif;
	font-size: 12px;
	font-weight: normal;
	letter-spacing: .4em;
	margin-left: 20px;
	color: #222;
}

.members dd {
	overflow: hidden;
	padding: 30px 18px;
}

.members dd .photo {
	float: right;
	border: 1px solid #cdcdcd;
	position: relative;
	margin-left: 1em;
	}
	.members dd .photo::before {
		content: '';
		display: block;
		position: absolute;
		top: -15px;
		left: -15px;
		width: 0;
		height: 0;
		border: 15px solid transparent;
		border-bottom: 15px solid #cdcdcd;
		transform: rotate(-45deg);
		-webkit-transform: rotate(-45deg);
	}

#member .members p {
	overflow: hidden;
	font-size: 14px;
	text-align: left;
	letter-spacing: -.05em;
}

/*
=======================================================
 Works
=======================================================	
*/

#archive .content>p {
	margin-top: 60px;
}

.works-cases {
	margin-top: 230px;
	}
	.works-cases#case01 {
		margin-top: 100px;
	}
	.works-cases#case07 {
		margin-bottom: 80px;
	}

.gallery {
	overflow: hidden;
	position: relative;
	}
	.gallery::before,
	.gallery::after {
		content: '';
		position: absolute;
		left: 0;
		top: 0;
		display: block;
	}
	.gallery::before {
		width: 60px;
		height: 60px;
		background: rgba(0,0,0,.7);
		z-index: 1000;
	}
	.gallery::after {
		width: 90px;
		height: 90px;
		background: rgba(253,189,0,.6);
		/* mix-blend-mode: color-dodge; */
		z-index: 1001;
	}

.number {
	display: block;
	position: absolute;
	left: 8px;
	top: 8px;
	color: #efeeea;
	z-index: 10;
	width: 90px;
	height: 90px;
	border: 1px solid #fff;
	font-family: Arial, sans-serif;
	font-size: 40px;
	padding-top: 15px;
	padding-left: .1em;
	line-height: 1;
	letter-spacing: .08em;
	text-align: center;
	z-index: 1002;
	}
	.number::before {
		content: 'case';
		font-size: 15.5px;
		display: block;
		font-weight: 400;
	}

.main-photo {
	width: 894px;
	float: left;
}

.thumbnails,
.thumbnails .slick-track {
	height: 592px !important;
	width: 214px !important;
	margin-left: 12px;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	flex-flow: column;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content:space-between;
}

.slick-track {
	transform: none !important;
}

.thumbnails li:focus {
	outline: none;
}

.slick-track::before,
.slick-track::after {
	content: none !important;
}

.thumbnails li,
.thumbnails .slick-slide {
	float: none;
	width: 214px !important;
	height: auto !important;
	opacity: .5;
	transition: .5s ease;
	cursor: pointer;
}

.thumbnails .slick-slide.slick-current {
	opacity: 1;
}

.case-details {
	text-align: center;
}

.case-details dt {
	font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", serif;
	font-size: 26px;
	font-weight: 600;
	padding: 1em 0 .2em;
	display: inline-block;
	position: relative;
	}
	.case-details dt::after {
		content: '';
		display: inline-block;
		width: 100%;
		height: 2px;
		background: #fdca35;
		position: absolute;
		bottom: 0;
		left: 0;
	}
	.works-cases:nth-of-type(4n+1) dt::after {border-right: 40px solid #e74173;}
	.works-cases:nth-of-type(4n+2) dt::after {border-right: 40px solid #005bac;}
	.works-cases:nth-of-type(4n+3) dt::after {border-right: 40px solid #b6d316;}
	.works-cases:nth-of-type(4n) dt::after {border-right: 40px solid #9c5aa1;}
	
.case-details dd {
	text-align: left;
	
}

.desc {
	padding: 2em 0;
	
}

.data {
	border-top: 2px solid #222;
	border-bottom: 2px solid #222;
	padding: 9px 0 21px 107px;
}

.data table {
	width: 100%;
	table-layout: fixed;
}

.data th {
	width: 94px;
	padding: 12px 0 0;
	text-align: center;
	font-weight: normal;
	vertical-align: middle;
}

.data th span {
	display: block;
	border: 1px solid #222;
	line-height: 25px;
	padding-top: 2px;
}

.data td {
	padding: 9px 0 0 32px;
	vertical-align: middle;
}

/*
=======================================================
 Service
=======================================================	
*/

#lead {
	padding: 80px 0;
}

#lead h4 {
	margin-bottom: 0;
	line-height: 1.43;
}

#commitment {
	background: url(../images/commit_bg.jpg) center top no-repeat;
}

#commitment h4 {
	margin: 50px 0;
}

#commitment ul {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content:space-between;
}

#commitment li {
	padding: 0 24px 8px;
	border-right: 1px solid #d19e00;
	width: 33.33%;
	}
	#commitment li:first-child {
		padding-left: 0;
	}
	#commitment li:last-child {
		border-right: none;
		padding-right: 0;
	}
	
#commitment h5 {
	font-size: 24px;
	font-weight: bold;
	text-align: center;
	width: 240px;
	margin: 0 auto 1.2em;
	padding-top: 138px;
	}
	#commitment li:first-child h5 {
		background: url(../images/commit_icon01.png) center 32px no-repeat;
	}
	#commitment li:nth-child(2) h5 {
		background: url(../images/commit_icon02.png) center 25px no-repeat;
	}
	#commitment li:last-child h5 {
		background: url(../images/commit_icon03.png) center 34px no-repeat;
	}

#commitment h5 span {
	display: block;
	border-top: 1px solid #d19e00;
	margin-top: 2px;
}
	
#commitment li p {
	
	letter-spacing: -.05em;
}

#construction dl {
	margin-top: 30px;
}

#construction dt {
    text-align: center;
    margin-bottom: 45px;
    padding-top: 30px;
}

#construction dt span {
	display: block;
	font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", serif;
    font-size: 28px;
    font-weight: 600;
    color: #581818;
    border: 1px solid #581818;
}

#construction dd {
	margin-bottom: 100px;
	overflow: hidden;
	}
	#construction dd:last-of-type {
		margin-bottom: 0;
	}

#construction dd img {
	float: right;
	margin-left: 40px;
}

#construction h6 {
	font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", serif;
    font-size: 20px;
    font-weight: 600;
    color: #581818;
    margin: 2em 0 1em;
    border-bottom: 1px solid #581818;
    overflow: hidden;
    padding-bottom: 10px;
}

/*
=======================================================
 Flow
=======================================================	
*/

#request ul {
	margin-top: 20px;
	position: relative;
	}
	#request ul::before {
		content: '';
		width: 1px;
		height: 90%;
		position: absolute;
		top: 50px;
		left: 60px;
		background: #222;
		z-index: -1;
	}

#request li {
	overflow: hidden;
	padding: 30px 0 0 0;
}


.steps {
	font-family: Arial, sans-serif;
	width: 120px;
	height: 120px;
	background: #fdca35;
	float: left;
	margin-right: 37px;	
	padding-top: 26px;
	text-align: center;
	font-size: 32px;
	font-weight: bold;
	line-height: 1.6;
	}
	.steps::before {
		content: 'STEP';
		display: block;
		font-size: 12px;
		width: 45px;
		margin: 0 auto;
		font-weight: normal;
		padding-bottom: 7px;
		letter-spacing: .3em;
	}
	li:nth-child(5n+1) .steps::before {
		border-bottom: 3px solid #b6d316;
	}
	li:nth-child(5n+2) .steps::before {
		border-bottom: 3px solid #005bac;
	}
	li:nth-child(3) .steps::before {
		border-bottom: 3px solid #eb5d39;
	}
	li:nth-child(4) .steps::before {
		border-bottom: 3px solid #e74173;
	}
	li:nth-child(5) .steps::before {
		border-bottom: 3px solid #9c5aa1;
	}

#request li p.flowlist {
	font-size: 28px;
	font-weight: 600;
	margin: .5em 0 .25em;
}

#request li p:last-of-type {
	border-bottom: 1px solid #cdcdcd;
	overflow: hidden;
	padding-bottom: 50px;
	
	letter-spacing: -.05em;
	}
	#request li:last-child p:last-of-type {
		border-bottom: none;
	}

#faq {
	background: #f5f5f5;
	padding: 110px 0 60px;
}

#faq .content {
	text-align: center;
}

#faq h4 {
	display: inline-block;
	padding-right: 2em;
	background: url(../images/flow_faq_icon.png) right top no-repeat;
	margin-bottom: 50px;
}

#faq dl {
	text-align: left;
	margin-bottom: 60px;
	background: #fff;
}

#faq dd:first-child {
	background: #222;
	color: #fff;
	font-family: Arial, sans-serif;
	font-weight: normal;
	font-size: 15px;
	letter-spacing: .4em;
	padding: 7px 30px;
	}
	#faq dl:first-of-type dd:first-child {
		border-left: 5px solid #fcc601;
	}
	#faq dl:nth-of-type(2) dd:first-child {
		border-left: 5px solid #b6d316;
	}
	#faq dl:last-of-type dd:first-child {
		border-left: 5px solid #005bac;
	}
	
#faq dt {
	padding: 10px 30px;
	font-size: 20px;
	border-bottom: 1px solid #222;
	}
	#faq dt::before {
		content: 'Q.';
		display: inline-block;
		margin-right: .25em;
		font-family: Arial, sans-serif;
		font-weight: normal;
		font-size: 38px;
		line-height: 1;
	}

#faq dd:last-child {
	padding: 20px 30px;
}

/*
=======================================================
 Company
=======================================================	
*/

#overview,#overview02 {
	background: url(../images/company_bg.png) right top no-repeat;
	background-size: contain !important;
	padding: 80px 0 0 0;
}

#overview table {
	width: 100%;
	border-collapse: separate;
	border-spacing: 3px;
}

#overview th {
	width: 250px;
	background: #222;
	color: #fff;
	vertical-align: middle;
	font-weight: normal;
	padding: 1em 2em;
	font-size: 18px;
	position: relative;
	}
	#overview th::before {
		content: '-';
		display: inline-block;
		margin-right: 14px;
	}
	#overview th::after {
		content: '';
		display: block;
		position: absolute;
		bottom: -3px;
		left: 0;
		width: 35px;
		height: 3px;
	}
	#overview tr:nth-child(6n+1) th::after {
		background: #fcc601;
	}
	#overview tr:nth-child(6n+2) th::after {
		background: #b6d316;
	}
	#overview tr:nth-child(3n) th::after {
		background: #005bac;
	}
	#overview tr:nth-child(6n+4) th::after {
		background: #9c5aa1;
	}
	#overview tr:nth-child(6n+5) th::after {
		background: #e74173;
	}
	#overview tr:last-child th::after {
		background: #eb5d39;
	}
	#overview tr:nth-child(10) th {
		vertical-align: top;
	}
	
#overview td {
	padding-left: 90px;
	position: relative;
	}
	#overview td::before,
	#overview td::after {
		content: '';
		display: block;
		position: absolute;
		bottom: -3px;
		left: 0;
		width: 100%;
		height: 3px;
		background: #222;
	}
	#overview td::after {
		width: 47px;
		background: #fff;
	}
	#overview tr:nth-child(10) td {
		padding-top: .5em;
		padding-bottom: .5em;
	}

#overview td span {
	display: block;
	float: left;
	margin-right: 1em;
}

#overview td span.sm {
	font-size: 0.9em;
}

#office1,
#office2,
#office4{
	padding: 120px 0 0 0;
}

#office3 {
	padding: 120px 0;
}

.offices h3 {
	margin-bottom: 45px;
}

.offices .content>p {
	text-align: left;
}

.offices .content>p.loc {
	text-indent: 0.4em;
}

.offices .map {
	margin-top: 25px;
}

p.loc {
	margin: 1.5em 0 1em 0;
}


/*
=======================================================
recruit
=======================================================	
*/

#overview,#overview02 {
	background: url(../images/company_bg.png) right top no-repeat;
	background-size: contain !important;
	padding: 80px 0 0 0;
}

#overview02  table {
	width: 100%;
	border-collapse: separate;
	border-spacing: 3px;
}

#overview02  th {
	width: 280px;
	background: #222;
	color: #fff;
	vertical-align: middle;
	font-weight: normal;
	padding: 2em 2em;
	font-size: 18px;
	position: relative;
	}

	#overview02 th::after {
		content: '';
		display: block;
		position: absolute;
		bottom: -3px;
		left: 0;
		width: 35px;
		height: 3px;
	}

.recruitTableTitle {
    margin: 0 3px 0;
  background-color:#222;
  color: #fff;
  padding: 0.2em 0.1em;
  text-align: center;
  font-size: 1.2em;  
    letter-spacing: 0.5em;
}

	#overview02 tr:nth-child(6n+1) th::after {
		background: #fcc601;
	}
	#overview02 tr:nth-child(6n+2) th::after {
		background: #b6d316;
	}
	#overview02 tr:nth-child(3n) th::after {
		background: #005bac;
	}
	#overview02 tr:nth-child(6n+4) th::after {
		background: #9c5aa1;
	}
	#overview02 tr:nth-child(6n+5) th::after {
		background: #e74173;
	}
	#overview02 tr:last-child th::after {
		background: #eb5d39;
	}
	#overview02 tr:nth-child(10) th {
		vertical-align: top;
	}
	
#overview02 td {
	padding-left: 90px;
	position: relative;
	}
	#overview02 td::before,
	#overview02 td::after {
		content: '';
		display: block;
		position: absolute;
		bottom: -3px;
		left: 0;
		width: 100%;
		height: 3px;
		background: #222;
	}
	#overview02 td::after {
		width: 47px;
		background: #fff;
	}
	#overview02 tr:nth-child(10) td {
		padding-top: .5em;
		padding-bottom: .5em;
	}

#overview02 td span {
    /*
	display: block;
	float: left;
    */
	margin-right: 1em;
}

#overview td span.sm {
	font-size: 0.9em;
}

#office1,
#office2 {
	padding: 120px 0 0 0;
}

#office3 {
	padding: 120px 0;
}

.offices h3 {
	margin-bottom: 45px;
}

.offices .content>p {
	text-align: left;
}

.offices .content>p.loc {
	text-indent: 0.4em;
}

.offices .map {
	margin-top: 25px;
}

p.loc {
	margin: 1.5em 0 1em 0;
}

.recruit_title {
	display: block;
	font-size: 36px;
	padding: 20px 0 28px 0;
	letter-spacing: 0.05em;
    margin-top: -100px;
}

.recruit_f {
    text-align: center;
    margin-bottom: 30px;
}

.recruit_f img {
    text-align: center;
    margin-right: 5px;
    width:42px;
}



.steps01 {
	font-family: Arial, sans-serif;
	width: 120px;
	height: 120px;
	background: #fdca35;
	float: left;
	margin-right: 37px;	
	padding-top: 26px;
	text-align: center;
	font-size: 32px;
	font-weight: bold;
	line-height: 1.6;
    border-radius: 90px;
	}
	.steps01::before {
		content: 'STEP';
		display: block;
		font-size: 12px;
		width: 45px;
		margin: 0 auto;
		font-weight: normal;
		padding-bottom: 7px;
		letter-spacing: .3em;
	}
	li:nth-child(5n+1) .steps01::before {
		border-bottom: 3px solid #b6d316;
	}
	li:nth-child(5n+2) .steps01::before {
		border-bottom: 3px solid #005bac;
	}
	li:nth-child(3) .steps01::before {
		border-bottom: 3px solid #eb5d39;
	}
	li:nth-child(4) .steps01::before {
		border-bottom: 3px solid #e74173;
	}
	li:nth-child(5) .steps01::before {
		border-bottom: 3px solid #9c5aa1;
	}

#request01 ul {
	margin-top: 26px;
	position: relative;
	}
	#request01 ul::before {
		content: '';
		width: 1px;
		height: 90%;
		position: absolute;
		top: 50px;
		left: 60px;
		background: #222;
		z-index: -1;
	}

#request01 li {
	overflow: hidden;
	padding: 30px 0 0 0;
}

#request01 li p.flowlist01 {
	font-size: 18px;
	font-weight: 600;
	margin: 2em 0 0.5em 5em;
}

#request01 li p:last-of-type {
	border-bottom: 1px solid #cdcdcd;
	overflow: hidden;
	padding-bottom: 90px;
    padding-top: 10px;
	letter-spacing: -.05em;
	}
	#request01 li:last-child p:last-of-type {
		border-bottom: none;
	}
/*
=======================================================
 entry
=======================================================	
*/

select {
	-moz-appearance: none;
	-webkit-appearance: none;
	appearance: none;
	border: none;
	border-radius: 0;
	margin-left: 5px;
	padding: .35em 2em .35em 1em;
	background: #ebf0f7 url(../images/entry_select_arrow.png) right center no-repeat;
	}
	select:first-of-type {
		margin-left: 0;
	}


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

input[type=radio] {
	display: none;
}

label {
	display: inline-block;
	margin-right: 1.5em;
	padding-left: 35px;
	position: relative;
	cursor: pointer;
	}
	label::before,
	label::after {
		content: '';
		display: inline-block;
		position: absolute;
	}
	label::before {
		width: 20px;
		height: 20px;
		left: 5px;
		top: 50%;
		margin-top: -10px;
		border: 1px solid #bdbdbd;
		border-radius: 50%;
		background: #eee;
	}
	input[type=radio]:checked + label::after {
		left: 9px;
		top: 50%;
		margin-top: -6px;
		width: 12px;
		height: 12px;
		background: #004094;
		border-radius: 50%;
	}

.termsbox {
	width: 760px;
	margin: 80px auto;
}

.termsbox dl {
	border: 1px solid #004094;
	background: #fff;
	color: #313131;
}

.termsbox dt {
	background: #eee;
	padding: 0;
	text-align: center;
	border-bottom: 1px solid #004094;
	font-weight: normal;
}

.termsbox dd {
	height: 70px;
	padding: .75em 1em;
	overflow-y: scroll;
	font-size: 0.9rem;
}


/*
=======================================================
 Footer
=======================================================	
*/

.pagetop {
    display: none;
    position: fixed;
    bottom: 30px;
    right: 30px;
}
.pagetop a {
    display: block;
    text-align: center;
		filter:alpha(opacity=100);
    -moz-opacity: 1.0;
    opacity: 1.0;
}
.pagetop a:hover {
}

#fnav {
	width: 100%;
	position: absolute;
	bottom: 0;
	left: 0;
	text-align: center;
}

#fnav, .snsbtns {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content:center;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	height: 65px;
}

#fnav a {
	display: block;
	}
	#fnav>a:nth-child(-n+7)::after {
		content: "｜";
	}

@media all and (-ms-high-contrast: none){
  #fnav a {
    padding-top: 5px;
  }
}
	
.snsbtns {
	margin-left: 10px;
}

.snsbtns a {
	margin-left: 10px;
}

footer {
	text-align: center;
	width: 100%;
	color: #fff;
}

.footcont {
	background: #222;
	padding: 60px 0;
}

footer .logo {
	background: url(../images/footer_logo.png) center top no-repeat;
	font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", serif;
	font-weight: 600;
	font-size: 18px;
	padding-top: 50px;
}

.address {
	font-size: 14px;
	margin-top: 2em;
}

.address a {
	color: #fff;
	text-decoration: underline;
}

.copy {
	color: #777;
	font-size: 11px;
	padding: 1.5em 0;
}

/*
=======================================================
お知らせ
=======================================================	
*/

#NEWS {
    /*background: url(../images/flow_y_bg.png);*/
    margin: -70px 0 70px;
}

.info {
    margin-top: 2em;
    margin-left: 130px;
    text-align: justify;
    text-justify: inter-ideograph;
    overflow: hidden;
    width:930px
}

.info dt {
	float: left;
	font-weight: normal;
	padding-right: 1em;
    line-height:1.4em;
	}
	.info dt::after {
		display: inline-block;	
		font-weight: 300;	
		/*border-radius: 4px;*/
		padding-top: 1px;
		margin-left: 1.4em;
		width: 80px;
		text-align: center;
        font-size:0.95em;
	}
	.info dt.cat01::after {
        color: #DCB857;
		content: 'お知らせ';
		background: #fff;
        border: solid 2px #DCB857;
	}
	.info dt.cat02::after {
		content: 'トピックス';
        color: #2971b9;
        letter-spacing: -.15em;
		background: #fff;
        border: solid 2px #2971b9;
        padding-right: .3em;
	}
	.info dt.cat03::after {
		content: 'イベント';
        color: #ed5f8d;
		background: #fff;
		letter-spacing: -.05em;
        border: solid 2px #ed5f8d;
	}	
	.info dt.cat03::after {
		content: 'イベント';
        color: #ed5f8d;
		background: #fff;
		letter-spacing: -.05em;
        border: solid 2px #ed5f8d;
	}	

	.info dt.cat04::after {
		content: '採用情報';
        color: #b6d315;
		background: #fff;
		letter-spacing: -.05em;
        border: solid 2px #b6d315;
	}

.info dd {
    margin-bottom: 3em;
    margin-left: 220px;
    line-height:1.6em;
    font-size:0.95em;
    padding-top: 3px;
}

.info dd p{
    /*text-indent:-0.5em;*/
    margin-bottom: -22px;
    margin-right: 60px;
}

.content02 {
    width: 1120px;
    margin: -30px auto;
    text-align: justify;
    text-justify: inter-ideograph;
    margin-bottom: -90px;
}

.oshirase {
    text-align: center;
    margin-bottom: 24px;
}

.newsleft {
    margin-left: 50px;
    
}

.newsright {
    float: right;
    margin-right: 50px;
}

section h7 {
    font-size: 38px;
    font-weight: normal;
    letter-spacing: .4em;
    text-align: center;
    line-height: 1;
    position: relative; 
}

section h7::after {
    content: '';
    display: block;
    height: 1px;
    width: 50px;
    margin: 0 auto 20px;
}

section h7 span {
    display: block;
    font-size: 15px;
    padding: 20px 0 28px 0;
    letter-spacing: .4em;
    margin-bottom: -20px;
}

li.breadcrumbs {
    list-style: none;
    margin-left: 40px;
}