/**************************************************************
IE7,8でPIE.htc利用の場合、respond.min.jsよりcss3-mediaqueries.js
を使用したほうが良い
 **************************************************************/


/**************************************************************/
/**********************      共通      ************************/
/**************************************************************/

html,body{
     height:100%;  /* フッター固定のため必要 */ /*IE6対策*/
}

#wrapper{
	padding:0;
	margin:0;
	width: 100%;
	height:auto !important;  /* フッター固定のため必要 */ /*IE6対策*/
	height: 100%;  /* フッター固定のため必要 */ /*IE6対策*/
	min-height: 100%;  /* フッター固定のため必要 */ /*IE6対策*/
	top: 0;
position: absolute;
}

.pc {
	display: none !important;
}

.sp {
	display: block !important;
}

.pull_left{
	float:left !important;
}

.pull_right{
	float:right !important;
}

.font_bold{
	font-weight:bold;
}

.red{
	color:red !important;
}

.blue{
	color:blue !important;
}

.white{
	color:white !important;
}

.font10px{
	font-size:10px;
}

.font12px{
	font-size:12px;
}

.font13px{
	font-size:13px;
}

.font16px{
	font-size:16px;
	line-height:18px;
}

.font18px{
	font-size:18px;
	line-height:20px;
}

.font20px{
	font-size:20px;
}

.font22px{
	font-size:22px;
}

.font24px{
	font-size:24px;
}

.font28px{
	font-size:28px !important;
}

.wd_100px{
	width:100px !important;
}

.wd_200px{
	width:200px !important;
}

.mb_10px{
	margin-bottom:10px !important;
}

.mb_20px{
	margin-bottom:20px !important;
}

.mb_30px{
	margin-bottom:30px !important;
}

.mb_40px{
	margin-bottom:40px !important;
}

.mb_50px{
	margin-bottom:50px !important;
}

.mt_10px{
	margin-top:10px !important;
}

.mt_20px{
	margin-top:20px !important;
}

.mt_30px{
	margin-top:30px !important;
}

.mt_40px{
	margin-top:40px !important;
}

.mt_50px{
	margin-top:50px !important;
}

.ml_10px{
	margin-left:10px !important;
}

.ml_20px{
	margin-left:20px !important;
}

.mr_10px{
	margin-right:10px !important;
}

.mr_20px{
	margin-right:20px !important;
}
.mr_30px{
	margin-right:30px !important;
}

.shadow{
	-moz-box-shadow: 6px 6px 10px 3px rgba(100,100,100,0.2);
	-webkit-box-shadow: 6px 6px 10px 3px rgba(100,100,100,0.2);
	-ms-box-shadow: 6px 6px 10px 3px rgba(100,100,100,0.2);
	-o-box-shadow: 6px 6px 10px 3px rgba(100,100,100,0.2);
	box-shadow: 6px 6px 10px 3px rgba(100,100,100,0.2);
	
	/* IE6-8 */
	behavior: url('PIE.php')\9;/* for IE */
	position:relative\9; /* for PIE.htc */
	box-shadow: 6px 6px 10px 3px rgba(220,220,220,0.1)\9;
}

.shadow:not(:target) { 	/* IE9 */
	behavior: url('PIE.php');/* for IE */
	position:relative; /* for PIE.htc */
	box-shadow: 6px 6px 10px 3px rgba(100,100,100,0.2);
}

/**************************************************************/
/**********************     スマホ     ************************/
/**************************************************************/


.container{
	width:100%;
	margin:0 auto;
	padding:0; /* for bootstrap */
}

#content{
	width:100%;
	margin:0 auto;
	/* padding-bottom:170px;  */
	padding-bottom:208px !important; /* フッター固定のためフッターの高さ指定 */
}

#main{
	/*width: 96%;*/
	/*margin:0 auto;*/
	width: auto;
	margin:0 auto;
}


/* +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
   header
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */

#header{
	width: 100%;
	height:82px;
	padding:0;
	border-bottom:solid 1px #dedede !important;
}

#header #header_main{
}

#header .logo{
	float:none;
	/*width: 102px;*/
	width: 80px;
	margin:0 auto;
}



#lang_menu_sp  {
	float:right;
	margin: 30px 10px 30px 0 ;
}

#lang_menu_sp li {
	display: inline-block;
	/*width: 80px;*/
	height: 16px;
	line-height: 16px;
	color: #19283C;
	text-align: right;
	z-index: 10;
}
#lang_menu_sp li+ li  {
	border-left: 1px solid #999;
	padding-left: 10px;
	margin-left: 10px;
}

#lang_menu_sp li.active a{
	color: #bc142d !important;
}

.menu {
	display:none;
	position: absolute;
	top:102px;
	width: 100%;
	color: #fff;
	overflow: hidden;
	z-index:10000;
}

.menu ul {
	padding: 0;
	margin: 0;
	list-style: none;
}

.menu li {
	position: relative;
}

.menu a {
    display: block;
    width:100%;
	color: #ccc !important;
	text-decoration: none;
	padding: 15px 10px;
	border-bottom: 1px solid #aaa;
	font-size: 20px;
	background-color:#000;
	opacity:0.8;
    *filter:alpha(opacity=80);
}

.menu a:hover {
	background-color:#000;
	opacity:0.8;
    *filter:alpha(opacity=80);
}


/* +++++++++++++++++++++++++++++++++++++++++++++++++++++
   フッター
++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */

#footer{
	width: 100%;
	position: absolute; /* フッター固定のため必要 */
	bottom: 0; /* フッター固定のため必要 */
	height: 208px;
	background:#f3f3f3;
}

#footer .container{
	width: 80%;
	min-width:auto;
	margin:0 auto;
} 

#footer .bloc{
	width: 30%;
	margin:40px 0;
	height:90px;
} 

#footer .bloc + .bloc{
	width: 35%;
	border-left: 1px solid #ccc;
	margin:40px 0;
}

#footer .bloc + .bloc + .bloc{
	width: 35%;
	border-left: 1px solid #ccc;
	margin:40px 0;
}

#footer .bloc img{
	margin-left:0;
	width: 55%;
	max-width: 85px;
} 

#footer .bloc ul{
	margin-left:10px;
} 

#footer .bloc ul li{
	height:24px;
	margin-bottom:10px;
} 

#footer .bloc ul li a{
	line-height:20px;
} 


#footer .bloc3 ul li a{
	position: absolute;
} 

#footer .bloc3 ul li a span.mini{
	display:none ;
} 

#footer .bloc3 ul li a span.icon_link{
	display:inline-block ;
}

#footer .bloc3 ul li a span.icon_link:after{
	display:inline-block;
	content:url(images/icon_link.png);
	position: relative;
	top:2px;
	right:0px;
}

#footer #copyright{
	background:#333;
	text-align:center;
	height:38px;
	line-height:38px;
}
#footer  #copyright .container{
	width: 100%;
} 

#footer #copyright div{
	color:#eaeaea !important;
	font-size:12px !important;
}


/* +++++++++++++++++++++++++++++++++++++++++++++++++++++
   共通
++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */

#lower_header{
	margin-bottom: 50px;
}

#main .section{
	/*margin-bottom:40px;*/
}

#main.sub .section h3{
	text-align:center;
	font-size:32px;
	margin-top:25px;
	letter-spacing: 3px;
}

#main.sub .section h3 + p{
	text-align:center;
	font-size:14px;
	margin-bottom:25px;
	margin-top: -7px;
}

/* +++++++++++++++++++++++++++++++++++++++++++++++++++++
   TOP
++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */

#main.top .section{
	margin-bottom:40px;
}

#main.top .section h3{
	text-align:center;
	font-size:32px;
	margin-top:25px;
	letter-spacing: 3px;
}

#main.top .section h3 + p{
	text-align:center;
	font-size:14px;
	margin-bottom:20px;
	margin-top: -7px;
}


#main.top .service {
	width: 96%;
	text-align:center;
}

#main.top .service .box{
	position: relative;
	width:48.97959183673469%;
	float:left;
	margin-bottom:15px;
}

#main.top .service .box.right_box{
	margin-left:2%;
}

#main.top .service .box dl{
	position: absolute;
	top:8px;
	left:10px;
}

#main.top .service .box dl dt{
	font-size:16px;
	margin-bottom:0px;
	text-align:left;
}

#main.top .service .box dl dd{
	font-size:11px;
	line-height:16px;
	text-align:left;
}

#main.top .works {
	width: 96%;
	text-align:center;
}


#main.top .works .box{
	position: relative;
	width:23.46938775510204%;
    overflow: hidden;
	float:left;
}

#main.top .works .box + .box{
	margin-left:2%;
}



#main.top .works .box .web {
    width: 100px;
    padding: 3px 15px;
    background: #333;
    color: #fff;
    text-align: center;
    display: inline-block;
    position: absolute;
    top: 10px;
    left: -25px;
    text-transform: uppercase;
    /*transform: rotate(315deg);*/
    transform: rotate(325deg);
}

#main.top .more{
	display:inline-block;
	border: 1px solid #ccc;
	text-align:center;
	width:80%;
	height:40px;
	line-height:40px;
	font-size:16px;
}

#main.top .more:hover{
	border: 1px solid #bd132d;
}

#main.top .about{
	width:100%;
	margin-bottom:0;
}

#main.top .about .box{
	position: relative;
    overflow:hidden;
    width:100%;
    height:398px;
}
#main.top .about .box {
    width:100%;
    height:318px;
	background:url(images/top_about.jpg) no-repeat 0 0;
	background-size:cover;
}


#main.top .about .box .message{
	position: absolute;
	top:90px;
	left:0;
	right: 0;
	bottom: 0;
	margin: auto;
	width: 86%;
	font-size:16px;
	color:#fff;
	text-align:center;
	line-height:30px;
  text-shadow:1px 1px 3px #888;
  font-weight:bold;
}
#main.top .about .box .message span a{
  font-weight:normal;
  letter-spacing:0.1em;
  text-decoration:underline;
  color:#ffffff!important;
  font-size:20px;
  display:block;
  margin-top:20px;
}
#main.top .about .box .message span a:hover{
  text-decoration:none;
  color:#ffffff!important;
}


/* +++++++++++++++++++++++++++++++++++++++++++++++++++++
   SERVICE
++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */


#main.service .box{
	position: relative;
	width:90%;
	margin:0 auto;
	float:none;
}

#main.service .box.right_box{
	margin-left:2%;
}

#main.service .box.image{
	width:80%;
	margin-bottom:0;
}
#main.service .box.image dl{
	position: absolute;
	top:15px;
	left:20px;
}

#main.service .box.image dl dt{
	font-size:22px;
	margin-bottom:-2px;
	letter-spacing:0.05em
}

#main.service .box.image dl dd{
	font-size:10px;
	line-height:20px;
}

#main.service .box.msg{
	width: 80%;
	border:solid 1px #ddd;
	padding:25px 25px 10px 25px;
	margin-bottom:30px;
}

#main.service .box.msg dt{
	font-size:16px;
	margin-bottom:15px;
}

#main.service .box.msg dd{
	font-size:14px;
	margin-bottom:15px;
}

/* +++++++++++++++++++++++++++++++++++++++++++++++++++++
   WORKS
++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */

/*
#main.works .box_area{
	margin: 0 3%;
}
*/
#main.works .box{
	width:40%;
	float:left;
	margin: 0 0 50px 7%;
}

#main.works .box:nth-child(2n){
	margin: 0 7% 50px 6%;
}

#main.works .box img{
	margin-bottom:10px;
    border:solid 1px #ddd;
}

#main.works .box img:hover{
    border:solid 1px #bd132d;
}

#main.works .box div{
	margin-bottom:5px;
}

#main.works .box .date {
    font-size:16px;
	color:#999999;
}

#main.works .box .web {
    width: 56px;
    height:26px;
    font-size:18px;
    line-height:26px;
    padding: 0;
    border:solid 1px #ddd;
    text-align: center;
    display: inline-block;
    margin-right:10px;
	color:#666666;
}

#main.works .box dt a:after{
	display:inline-block;
	content:url(images/icon_link.png);
	padding-left:5px;
}

#main.works .box dt a{
	color:#666;
}


#main.works .box dd{
	color:#666;
}

#main.sub .section h4{
	text-align:center;
	font-size:30px;
	margin:20px auto 30px ;
}

/*
#main.works .box_area2{
	margin: 0 3%;
}
*/
#main.works .box2{
	width:84%;
	float:none;
	margin: 0 auto;
}

#main.works .box2 iframe{
	width:100%;
	margin: 0 auto 20px;
}

#main.works .box2:nth-child(2n){
	margin: 0 auto;
}

#main.works .box2 div{
	margin-bottom:5px;
}

#main.works .box2 .date {
    font-size:16px;
	color:#999999;
}

#main.works .box2 .web {
    width: 56px;
    height:26px;
    font-size:18px;
    line-height:26px;
    padding: 0;
    border:solid 1px #ddd;
    text-align: center;
    display: inline-block;
    margin-right:10px;
	color:#666666;
}

#main.works .box2 dt a:after{
	display:inline-block;
	content:url(images/icon_link.png);
	padding-left:5px;
}

#main.works .box2 dt a{
	color:#666;
}


#main.works .box2 dd{
	color:#666;
}

/* +++++++++++++++++++++++++++++++++++++++++++++++++++++
   CONTACT
++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
#main.contact{
	width:96%;
	margin:0 auto;
}

div#mfp_hidden input {
	margin: 0;
}
.mfp_element_all {
	max-width:100% !important;
}
.mfp_element_text,
.mfp_element_number,
.mfp_element_select-one,
.mfp_element_email,
.mfp_element_tel,
.mfp_element_textarea,
.mfp_element_date {
	box-shadow: 0px !important;
	padding:10px;
	margin: 0 !important;
}

#main.contact section{
	padding:0;
}

#main.contact dl dt{
	line-height:40px;
	font-size:12px !important;
	font-weight:normal !important;
}

#main.contact dl.confirm dt{
	line-height:20px;
}

#main.contact dl.parent{
	margin-bottom:20px;
	display: flex;
	justify-content: flex-start;
	align-items: flex-start;
}

#main.contact dl.parent dt{
	/* float:left !important; */
	width:30% !important;
	padding: 0;
	border-top: none;
	text-align: left;
}

#main.contact dl.parent dt span{
	font-size:12px !important;
}

#main.contact dl.parent dd{
	float:left !important;
	width:70% !important;
	padding:0 !important;
}

#main.contact dl.child{
	/* float:left; */
	width:100%;
	display: flex;
	justify-content: flex-start;
	align-items: flex-start;
}

#main.contact dl.child:first-child{
	margin-bottom:10px;
}

#main.contact dl.child.last_name_field{
	margin-left:0;
}

#main.contact dl.child dt{
	float:left;
	width:30% !important;
}

#main.contact dl.child dd{
	float:left;
	width:70% !important;
	padding:0 !important;
}

.mfp_buttons #btn-confirm{
	display:inline-block;
	border: 1px solid #ccc;
	text-align:center;
	width:80%;
	height:40px;
	line-height:40px;
	background:none;
	font-size:18px;
	font-weight:normal;
	padding:0;
	border-radius: 0;
	color:#666;
	cursor:pointer;
}
.mfp_buttons #mfp_button_cancel,
.mfp_buttons #mfp_button_send{
	display:inline-block;
	border: 1px solid #ccc;
	text-align:center;
	width:30%;
	margin:0 10%;
	height:40px;
	line-height:40px;
	background:none;
	font-size:18px;
	font-weight:normal;
	padding:0;
	border-radius: 0;
	color:#666;
}
.mfp_buttons  #mfp_button_cancel:hover,
.mfp_buttons  #mfp_button_send:hover,
.mfp_buttons  #btn-confirm:hover{
	box-shadow: none !important;
	border: 1px solid #bd132d;
	color:#bd132d;
}

#mfp_phase_confirm_inner h4{
	margin-bottom:40px;
}

#mfp_confirm_table {
	margin-bottom:40px;
}

#mfp_confirm_table th,
#mfp_confirm_table td{
	padding:20px !important;
	border:none !important;
}

.mfp_element_all {
	max-width: 100% !important;
}


input[type="text"],
input[type="email"]{
	width:100% !important;
	border-radius: 5px;
	height:40px;
	padding:10px;
}
 
textarea{
	width:100% !important;
	border-radius: 5px;
	height:180px !important;
	padding:10px !important;
}
 
 div.mfp_err {
    padding-left: 0;
    background: none;
    color:#f00;
} 

#main.thanks p.message{
	text-align:center;
	font-size:32px;
	padding:150px 0;
	border: solid 1px #ccc;
}


/* +++++++++++++++++++++++++++++++++++++++++++++++++++++
   ABOUT
++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
#main.about{
    width:100%;
	margin-bottom:20px;
}


#main.about  .main_area {
    position:relative;
    overflow:hidden;
    width:100%;
    height:532px;
	margin-bottom:60px;
}

#main.about .main_area img {
    position:absolute;
    left:50%;
    width:898px;
    height:532px;
    margin-left:-449px;
}

#main.about .main_area p {
    position:absolute;
    top:40px;
    width:100%;
    text-align:center;
    line-height:26px;
    font-size:12px;
}
#main.about .main_area p span{
    font-weight: bold!important
}
/***
#main.about .main_area img {
    position:absolute;
    left:50%;
    width:1496px;
    height:887px;
    margin-left:-748px;
}

#main.about .main_area p {
    position:absolute;
    top:300px;
    width:100%;
    text-align:center;
    line-height:40px;
    font-size:12px;
}
***/
#main.about .info_area{
	margin:0 auto 60px!important;
	border-left:solid 1px #ddd;
	border-right:solid 1px #ddd;
	border-top:solid 1px #ddd;
}
#main.about .info_area dl{
	border-bottom:solid 1px #ddd;
	padding:20px!important;
}

#main.about .info_area dt{
	float:left;
	width:35%;
}

#main.about .info_area dt span{
	font-size:13px;
}


#main.about .info_area dl:first-child dt{
	width:100%;
}

#main.about .info_area dd{
	float:left;
	width:65%;
}

#main.about .info_area a {
	text-decoration: underline ;
}

#main.about .info_area a:hover {
	text-decoration: none ;
}

#page-top {
	margin-top:-9999px;
}









/**************************************************************/
/**********************     PC設定     ************************/
/**************************************************************/

@media only screen and (min-width : 768px ) {


.pc {
	display: block !important;
}

.sp {
	display: none !important;
}

.mb_10px{
	margin-bottom:20px !important;
}

.mb_20px{
	margin-bottom:40px !important;
}

.mb_30px{
	margin-bottom:60px !important;
}

.mb_40px{
	margin-bottom:80px !important;
}

.mb_50px{
	margin-bottom:100px !important;
}

.mt_10px{
	margin-top:20px !important;
}

.mt_20px{
	margin-top:40px !important;
}

.mt_30px{
	margin-top:60px !important;
}

.mt_40px{
	margin-top:80px !important;
}

.mt_50px{
	margin-top:100px !important;
}


.container{
	width:100%;
	max-width:980px;
	/*min-width:980px;*/
	margin:0 auto;
}

#content{
	width: 100%;
	margin:0 auto;
	padding-bottom:268px !important; /* フッター固定のためフッターの高さ指定、important必要 */
}

#main{
	width:100%;
}



/* +++++++++++++++++++++++++++++++++++++++++++++++++++++
   header
++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
#header{
	width: 100%;
	height:auto;
	/*min-width: 980px;*/
}

#header .logo{
	float:left;
	width: 85px;
}

#header .header_upper{
	margin:0;
	height: 34px;
	line-height: 34px;
	border-bottom:solid 1px #dedede;
}

#header .header_upper #lang_menu li {
	float:right;
	position: relative;
	display: inline-block;
	width: 90px;
	/*min-width: 115px;*/
	height: 34px;
	line-height: 34px;
	color: #19283C;
	text-align: center;
	border-right: 1px solid #dedede;
	border-bottom: 1px solid #dedede;
	z-index: 10;
}
#header .header_upper #lang_menu li+ li  {
	border-left: 1px solid #dedede;
}
#header .header_upper #lang_menu li.active a{
	color:#bc142d !important;
}

#header .header_upper #lang_menu li.active:before {
	content: "";
	position: absolute;
	bottom: -8px;
	left: 50%;
	margin-left: -9px;
	width: 0px;
	height: 0px;
	border-style: solid;
	border-width: 9px 9px 0 9px;
	border-color: #fff transparent transparent transparent;
	z-index: 0;
}
#header .header_upper #lang_menu li.active:after {
	content: "";
	position: absolute;
	bottom: -10px;
	left: 50%;
	margin-left: -10px;
	width: 0px;
	height: 0px;
	border-style: solid;
	border-width: 10px 10px 0 10px;
	border-color: #dedede transparent transparent transparent;
	z-index: -1;
}
#header #header_main{
	margin: 0;
}

#header #header_menu{
	background:#fff;
	/*width: 380px;*/
	height:102px;
}

#header #header_menu li{
	float:right;
	line-height:102px;
	text-align:right;
	padding-left:44px;
}



#header #header_menu li a {
	display:block;
	width:100%;
	font-size:14px;
}

#header #header_menu li.active a {
	color:#bc142d !important;
}

#header #header_menu li a:hover {
	cursor:pointer;
}

.menu {
	display:none !important;
}





/* +++++++++++++++++++++++++++++++++++++++++++++++++++++
   フッター
++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
#footer{
	width: 100%;
	/*min-width:980px !important;*/
	position: absolute; /* フッター固定のため必要 */
	bottom: 0; /* フッター固定のため必要 */
	height: 268px !important;
	background:#f3f3f3;
}

#footer .container{
	width:100% !important;
	/*min-width:980px !important;*/
	margin:0 auto;
} 


#footer .bloc{
	width: 150px;
	margin:70px 0;
	height:90px;
} 

#footer .bloc + .bloc{
	width: 150px;
	border-left: 1px solid #ccc;
	margin:70px 0;
}

#footer .bloc + .bloc + .bloc{
	width: 300px;
	border-left: 1px solid #ccc;
	margin:70px 0;
}

#footer .bloc img{
	width: 85px;
} 

#footer .bloc ul{
	margin-left:20px;
} 

#footer .bloc ul li{
	height:24px;
	margin-bottom:10px;
} 

#footer .bloc ul li a{
	line-height:20px;
} 
#footer .bloc3 ul li a{
	position: absolute;
} 

#footer .bloc3 ul li a span.mini{
	display:inline-block ;
} 

#footer .bloc3 ul li a span.icon_link{
	display:inline-block ;
}

#footer .bloc3 ul li a span.icon_link:after{
	content:url(images/icon_link.png);
	position: relative;
	top:2px;
	right:-10px;
}
#footer  #copyright .container{
	width: 100%;
} 

#footer #copyright div{
	font-size:12px !important;
	text-align:right;
}


/* ページトップへ戻る */
#page-top {
    position: fixed;
    bottom: 30px;
    right: 30px;
	z-index:999;
}
#page-top a {
    text-decoration: none;
    color: #fff;
    text-align: center;
}


/* +++++++++++++++++++++++++++++++++++++++++++++++++++++
   共通
++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */

#lower_header{
	margin-bottom: 50px;
}

#main .section{
	/*margin-bottom:40px;*/
}

#main.sub .section h3{
	text-align:center;
	font-size:40px;
	margin-top:38px;
}

#main.sub .section h3 + p{
	text-align:center;
	font-size:12px;
	margin-bottom:50px;
}
	
#main.sub .section h4{
	text-align:center;
	font-size:30px;
	margin:20px 0 30px 0;
}

/* +++++++++++++++++++++++++++++++++++++++++++++++++++++
   TOP
++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */

#main.top .section{
	max-width:980px;
	margin-bottom:60px;
}


#main.top .section h3{
	text-align:center;
	font-size:42px;
}

#main.top .section h3 + p{
	font-size:12px;
	margin-bottom:38px;
	text-align:center;
}

#main.top .service .box{
	position: relative;
	margin-bottom:20px;
}


#main.top .service .box dl{
	position: absolute;
	top:20px;
	left:20px;
}

#main.top .section.service .box dl dt{
	font-size:28px;
	margin-bottom:10px;
}

#main.top .section.service .box dl dd{
	font-size:12px;
}


#main.top .section.about{
	width:100%;
	max-width:100%;
	/*max-width:auto;
	min-width:1000px;*/
	margin-bottom:0 !important;
}

#main.top .section.about .box{
	position: relative;
}


#main.top .section.about .box .message{
	position: absolute;
	top:80px;
	left:0;
	right: 0;
	bottom: 0;
	margin: auto;
	width: 450px;
	font-size:20px;
	color:#fff;
	text-align:center;
	line-height:200%;
	letter-spacing:0.1em;
}
#main.top .section.about .box .message a{
	padding-top:20px;
}
#main.top  .more{
	display:inline-block;
	border: 1px solid #ccc;
	text-align:center;
	width:480px;
	height:50px;
	line-height:50px;
}
#main.top .about .box  {
    position:absolute;
    left:50%;
    width:1496px;
    height:398px;
	background:url(images/top_about.jpg) no-repeat 0 0;
    margin-left:-748px;
/*    width:1196px;
    height:318px;
    margin-left:-598px;*/
}

/* +++++++++++++++++++++++++++++++++++++++++++++++++++++
   SERVICE
++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */

#main.service .box{
	position: relative;
	width:48.97959183673469%;
	float:left;
	min-height:300px;
}

#main.service .box.right_box{
	margin-left:2%;
}

#main.service .box.image{
	width:auto;
	margin-bottom:30px;
}

#main.service .box.image dl{
	position: absolute;
	top:17px;
	left:23px;
}

#main.service .box.image dl dt{
	font-size:28px;
	margin-bottom:10px;
	letter-spacing:0
}

#main.service .box.image dl dd{
	font-size:12px;
}

#main.service .box.msg{
	width:480px;
	margin-bottom:30px;
	border:solid 1px #ddd;
	padding:20px 20px 15px 20px;
}

#main.service .box.msg dt{
	font-size:18px;
	margin-bottom:15px;
}

#main.service .box.msg dd{
	font-size:14px;
	margin-bottom:10px;
}

/* +++++++++++++++++++++++++++++++++++++++++++++++++++++
   WORKS
++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */

#main.works .box{
	width:23.46938775510204%;
	float:left;
	margin: 0 0 50px 0;
}

#main.works .box:nth-child(2n){
	width:23.46938775510204%;
	margin: 0 0 50px 0;
}


#main.works .box:nth-child(2n),
#main.works .box:nth-child(3n),
#main.works .box:nth-child(4n){
	margin-left:2%;
}

#main.works .box .date {
    font-size:12px;
    line-height:20px;
}

#main.works .box .web {
    width: 40px;
    height:20px;
    font-size:12px;
    line-height:20px;
    padding: 0;
    border:solid 1px #ddd;
    text-align: center;
    display: inline-block;
    margin-right:10px;
}


#main.works .box dt a{
	font-size:12px;
}


#main.works .box dd{
	font-size:12px;
}

#main.works .box2{
	width:40%;
	float:left;
	margin: 0 0 0 7%;
}

#main.works .box2:nth-child(2n){
	margin: 0 7% 50px 6%;
}

#main.works .box2 div{
	margin-bottom:5px;
}

#main.works .box2 .date {
    font-size:16px;
	color:#999999;
}

#main.works .box2 .web {
    width: 56px;
    height:26px;
    font-size:18px;
    line-height:26px;
    padding: 0;
    border:solid 1px #ddd;
    text-align: center;
    display: inline-block;
    margin-right:10px;
	color:#666666;
}

#main.works .box2 dt a:after{
	display:inline-block;
	content:url(images/icon_link.png);
	padding-left:5px;
}

#main.works .box2 dt a{
	color:#666;
}


#main.works .box2 dd{
	color:#666;
}
	
	
/* +++++++++++++++++++++++++++++++++++++++++++++++++++++
   ABOUT
++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
#main.about  .main_area {
    position:relative !important;
    overflow:hidden !important;
    width:100%;
    /*height:887px !important;*/
    height:auto;
    min-height:887px;
	margin:0 0 80px;
}

#main.about .main_area img {
    position:absolute;
    left:50%;
    width:1496px;
    /*height:887px;*/
    min-height:887px;
    margin-left:-748px;
}

#main.about .main_area p {
    top:70px;
    line-height:40px;
    font-size:16px;
}

#main.about .main_area p span {
    font-size:18px;
}

#main.about .info_area dt{
	width:18%;
}
#main.about .info_area dt span{
	font-size:12px;
}


#main.about .info_area dd{
	width:80%;
}

#main.about .info_area{
	width:980px;
	margin:20px auto 0;
}

/* +++++++++++++++++++++++++++++++++++++++++++++++++++++
   CONTACT
++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */

#main.contact section{
	padding:0 10%;
}

#main.contact dl dt{
	line-height:40px;
}

#main.contact dl.confirm dt{
	line-height:20px;
}

#main.contact dl.parent{
	margin-bottom:40px;
	display: flex;
	justify-content: flex-start;
	align-items: center;
}

#main.contact dl.parent dt{
	float:left;
	width:20% !important;
}

#main.contact dl.parent dd{
	float:left;
	width:80% !important;
	padding:0 !important;
	border-top: none;
}

#main.contact dl.child{
	float:left;
	width:47%;
	margin-bottom: 0 !important;
}

#main.contact dl.child.last_name_field{
	margin-left:6% !important;
}

#main.contact dl.child dt{
	float:left;
	width:30% !important;
}

#main.contact dl.child dd{
	float:left;
	width:70% !important;
	padding:0 !important;
}

.mfp_buttons #btn-confirm{
	display:inline-block;
	border: 1px solid #ccc;
	text-align:center;
	width:50%;
	height:40px;
	line-height:40px;
	background:none;
	font-size:18px;
	font-weight:normal;
	padding:0;
	border-radius: 0;
}
.mfp_buttons #mfp_button_cancel,
.mfp_buttons #mfp_button_send{
	display:inline-block;
	border: 1px solid #ccc;
	text-align:center;
	width:30%;
	margin:0 10%;
	height:40px;
	line-height:40px;
	background:none;
	font-size:18px;
	font-weight:normal;
	padding:0;
	border-radius: 0;
}
.mfp_buttons  #mfp_button_cancel:hover,
.mfp_buttons  #mfp_button_send:hover,
.mfp_buttons  #btn-confirm:hover{
	box-shadow: none !important;
	border: 1px solid #bd132d;
	color:#bd132d;
}

#mfp_phase_confirm_inner h4{
	margin-bottom:40px;
}

#mfp_confirm_table {
	margin-bottom:40px;
}

#mfp_confirm_table th,
#mfp_confirm_table td{
	padding:20px !important;
	border:none !important;
}

.mfp_element_all {
	max-width: 100% !important;
}


input[type="text"],
input[type="email"]{
	width:100% !important;
	border-radius: 5px;
	height:40px;
	padding:10px;
}
 
textarea{
	width:100% !important;
	border-radius: 5px;
	height:180px !important;
	padding:10px !important;
}
 
 div.mfp_err {
    padding-left: 0;
    background: none;
    color:#f00;
} 
#main.thanks p.message{
	text-align:center;
	font-size:32px;
	padding:150px 0;
	border: solid 1px #ccc;
}

}

@media only screen and (min-width : 768px) and (max-width: 980px) {
	#main.works section,
	#main.service section{
		width:96% !important;
		margin:0 auto;
	}
	
.service .pc {
	display: none !important;
}

.service .sp {
	display: block !important;
}

/* +++++++++++++++++++++++++++++++++++++++++++++++++++++
   SERVICE
++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */


#main.service .box{
	position: relative;
	width:90%;
	margin:0 auto;
	float:none;
	text-align:center;
	min-height:200px;
}

#main.service .box.right_box{
	margin-left:2%;
}

#main.service .box.image{
	width:80%;
	margin:0 auto;
}
#main.service .box.image dl{
	position: absolute;
	top:15px;
	left:20px;
}

#main.service .box.image dl dt{
	font-size:22px;
	margin-bottom:-2px;
	letter-spacing:0.05em
}

#main.service .box.image dl dd{
	font-size:10px;
	line-height:20px;
}

#main.service .box.msg{
	width:80%;
	border:solid 1px #ddd;
	padding:25px 10% 10px;
	margin:0 auto 30px;
}

#main.service .box.msg dt{
	font-size:16px;
	margin-bottom:15px;
}

#main.service .box.msg dd{
	font-size:14px;
	margin-bottom:15px;
	text-align:left;
}

}

@media only screen and (min-width : 1496px ) {

/* +++++++++++++++++++++++++++++++++++++++++++++++++++++
   ABOUT
++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */

#main.top .about  .box {
    height:auto;
    min-height:398px;
}

#main.top .about .box img {
    width:100%;
    height:auto;
    min-height:887px;
    margin-left:-50%;
}

#main.about  .main_area {
    position:static;
    height:auto;
}

#main.about .main_area img {
    position:static;
    width:100%;
    height:auto;
    margin-left:0 !important;
}

}


.menu-button-left {
    float:left;
	top:25px;
	left:15px;
	position:absolute;
	cursor:pointer;
}

/*slidemenu*/
.slidemenu {
    background-color: #F4F4F4;
	border-right:#CCCCCC 1px solid;
}
.slidemenu li {
    list-style: none;
    border-top: 1px solid #E4E4E4;
    font-size:14px;
    line-height: 2.2;
}
.slidemenu li a {
    padding:10px 0 10px 20px;
    display: block;
    text-decoration: none;
    color: #fff;
}
.slidemenu li:first-child {
    border-top: none;
}
.slidemenu li:last-child {
    border-bottom: 1px solid #E4E4E4;
}
.slidemenu .slidemenu-header {
    height: 49px;
    border-bottom: 1px solid #000;
    box-shadow: 0 1px 3px rgba(34,25,25,.4);
    -moz-box-shadow: 0 1px 3px rgba(34,25,25,.4);
    -webkit-box-shadow: 0 1px 3px rgba(34,25,25,.4);
    background-color: #333;
}
.slidemenu .slidemenu-header div {
    padding: 17px 0px 0px 19px;
    text-decoration: none;
    color: #fff;
}
/*plugin*/
.slidemenu {
  top: 0;
  width: 300px;
  position: fixed;
  visibility: hidden;
  z-index: 99999;
}
.slidemenu .slidemenu-header {
  position: relative;

}
.slidemenu .slidemenu-body {
  height: 100%;
  overflow: hidden;
  position: relative;
}
.slidemenu .slidemenu-body .slidemenu-content {
  position: relative;
}
.slidemenu-left {
    left: 0;
}
.slidemenu-right {
    right: 0;
}

.mfp_buttons {
	display: flex;
	justify-content: center;
}