@charset "UTF-8";
/* CSS Document */

body{
	font-family:"游ゴシック", YuGothic, "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
	font-size:16px;
	line-height:180%;
	color:#333;
	margin:0;
	padding:0;
	background-color:#fff;
}
a{
	color:#06F;
}
a:visited{
	color:#06C;
}
a:hover{
	color:#3399FF;
}
img{
	border:none;
	vertical-align: bottom;
}
table{
	width:100%;
}
table th,
table td{
	text-align:left;
	padding:6px;
}
table caption{
	font-size:1.2em;
	text-align:center;
	font-weight:bold;
}

form input[type="text"],
form input[type="number"],
form input[type="email"],
form input[type="url"],
form textarea{
	padding:10px; 
	font-size:1.1em; 
	color:#464646;
	border:solid 1px #ccc;
	border-radius: 3px;
}
form textarea{
	width: 100%;
	box-sizing: border-box;
}
form input[type="radio"]{
	width: auto;
}

form input[type="submit"]{
	text-align:center;
	background-color:#a51c25;
	color:#fff;
	border-radius:6px;
}
form .form-error,
form .form-error p{
	text-align:center;
}
form .form-error ul{
	padding:0;
	color:#f00;
}
form .form-error ul li{
	display:inline;
}
form .form-error ul li:after{
	content:" / ";
}

.imgtxt{
	text-indent:-9999px;
	overflow:hidden;
}
.img-responsive{
	display: block;
    max-width: 100%;
    height: auto;
}
.float-left{
	float: left;
}
.float-right{
	float: right;
}
.clear{
	clear:both;
}
.red{
	color:#f00;
}
.white{
	color:#fff;
}
.no-margin{
	margin:0;
}
.center{
	text-align:center;
}
.right{
	text-align:right;
}
.mawarikomi-l{
	float:left;
	margin:0 12px 12px 0;
}
.mawarikomi-r{
	float:right;
	margin:0 0 12px 12px;
}
.strong{
	font-weight:bold;
}
.small{
	font-size:0.85em;
}
.require{
	color:#f00;
	font-weight:normal;
	font-size:0.9em;
}
.pc{
	display:inherit;
}
.smp{
	display:none;
}
.pc-center{/* PC時のみセンタリング */
	text-align:center;
}
.smp-center{
	text-align:left;
}


.flex{
	overflow:auto;
	margin: 2em 0;
	display:flex;
	flex-wrap:wrap;
}
.flex .col-2,
.flex .col-3,
.flex .col-4,
.flex .col-5,
.flex .col-6,
.flex .col-7,
.flex .col-8,
.flex .col-9,
.flex .col-10{
	box-sizing:border-box;
	padding:0 0.5em; 
}
.flex .col-12{
	box-sizing:border-box;
	padding:0 0.5em; 
	margin-bottom:2em;
}

.flex .col-2{/*5分割*/
	width:16.6%;
}
.flex .col-3{/*4分割*/
	width:25%;
}
.flex .col-4{/*3分割*/
	width:33%;
}
.flex .col-5{
	width:41%;
}
.flex .col-6{/*2分割*/
	width:49.9%;
}
.flex .col-7{
	width:59%;
}
.flex .col-8{
	width:67%;
}
.flex .col-9{
	width:75%;
	float:left;
}
.flex .col-10{
	width:83%;
}
.flex .col-12{
	margin-bottom:0;
	width:100%;
}

/*img*/

.img-responsive{
	height:auto;
	max-width:100%;
}
.img-full{
	width:100%;
	height:auto;
}

/* 全体レイアウト */

main{
	width: 1000px;
	margin:0 auto;
}
article{
	width: 710px;
	float: left;
}
section#cases{
	width: 250px;
	float: right;
}
.contents{
	margin:0 auto;
	width: 1000px;
}
h2{
	color: #A41C25;
}
header {
	background-color: #A41C25;	
	width: 100%;
	margin-bottom: 2em;
}
header p{
	color: #ffffff;
}
header h1{
	background-image: url(../img/logo_white.png);
	background-repeat: no-repeat;
	width: 306px;
	height: 100px;
	text-indent: -9999px;
	float: left;
}
header .btn{
	color: #3E3A39;
	background-color: #ffffff;
	font-weight: bold;
	text-align: center;
	border-radius: 20px;
	padding: 0.5em 2em;
	margin: 2.5em 0;
	text-decoration: none;
	float: right;
	font-size: 1.3em;
}
header .info{
	float: right;
	margin: 3em 0;
}
header .info p{
	margin: 0 0.5em;
	line-height: 100%;
	font-size: 1.5em;
	float: left;
}
header .info span{
	font-size: 0.5em;
}
header .info a{
	float: right;
	margin-top: 0.5em;
}

#mainvis{
	background:url(../img/mainvis.png) no-repeat left top;
	height: 572px;
	position: relative;
	z-index: 10;
}
#mainvis p{
	text-indent: -9999px;
}

section.outsource{
	background-color: #E9E9E9;
	padding: 2.5em;
	margin: 0 0 4em;
}
section.outsource h3{
	color: #A41C25;
	font-size: 1.5em;
	margin-top: 2em;
}
section .outsource_info p{
	margin: 0;
	float: left;
}
section .outsource_info a{
	text-align: center;
	font-weight: bold;
	color: #000000;
	background-color: #ffffff;
	border: 2px solid #000000;
	margin: 0;
	padding: 0.3em 1.5em;
	text-decoration: none;
	float: right;
}
.support h4{
	color: #ffffff;
	background-color: #A41C25;
	font-size: 1.8em;
	text-align: center;
	padding: 0.5em;
	margin: 0;
}
.support table{
	background-color: #ffffff;
	padding: 1em;
}
.support table th{
	font-size: 1.1em;
	width: 42%;
	padding: 1em 0;
}
.support table th.hiyou{
	background-image: url(../img/img_hiyou.jpg);
	background-repeat: no-repeat;
	background-position: right;
}
.support table th.check{
	background-image: url(../img/img_check.jpg);
	background-repeat: no-repeat;
	background-position: right;
}
.support table td{
	font-size: 0.8em;
	line-height: 150%;
	padding: 1em 0 1em 0.8em;
}
.support table th,
.support table td{
	border-bottom: 1px solid #999999;
}
.support table tr:last-child th,
.support table tr:last-child td{
	border-bottom: none;
}
.flow a{
	background-color: #008200;
	color: #ffffff;
	font-size: 1.2em;
	padding: 0.5em 1.2em;
	text-decoration: none;
	border-radius: 20px;
}
@media screen and (max-width: 1100px){
	section.item{
	}
}
section.item.gray{
	background-color: #A41C25;
	padding: 2em;
}
article section.intro{
	background-color: #e9e9e9;
	padding: 1.5em;
	margin-top: -4em;
}
article section.intro h2.categorytitle{
	margin-top: 0em;
}

article section.intro p{
	font-size:1em;
	line-height: 150%;
}

section.item h2.categorytitle{
	color: #a51c25;
	padding-top:3em;
	background-repeat:no-repeat;
	background-position:0 0;
}
section.item h2.categorytitle.noimg{
	background-image:none;
	padding:0;
}
figure{
	margin:1em 0; 
	padding:0;
}
figure figcaption h3{
	color: #fff;
	font-size:1.4em;
	padding:0.8em;
	text-align:center;
	background-color:#000;
	margin: 2em 0 0;
}
footer p{
	font-size:0.85em;
	text-align:center;
	margin:2em;
}
section.intro h2.categorytitle{
	background-image:url(../img/txt_intro.png);
	font-size:1.8em;
	background-repeat:no-repeat;
	background-position:0 0;
	padding: 2.5em 0 0 0;
}
section.strongpoint{
	padding: 2.5em;
}
section.strongpoint h2.categorytitle{
	background-image:url(../img/txt_strong.png);
	padding-top:3em;
	background-repeat:no-repeat;
	background-position:0 0;
}
section.strongpoint .item{
	text-align: center;
	margin: 0.5em;
	width: 47%;
}
section.strongpoint h4{
	color: #fff;
	padding: 1em;
	margin: 0;
	background-color: #b8b8b8;
	border-radius:10em;
	flex-wrap: wrap;
}
section.strongpoint p{
	font-size: 0.8em;
	margin: 0;
	color: #000000;
}
section.outsource h2.categorytitle{
	background-image:url(../img/txt_outsouce.png);
	color: #a51c25;
	padding-top:3em;
	background-repeat:no-repeat;
	background-position:0 0;
}
section.performance h2.categorytitle{
	background-image:url(../img/txt_perfom.png);
}
section.performance .media{
	font-weight:bold; 
}
section.performance .media h3{
	border-bottom:1px solid #000;
	padding-bottom:0.8em;
}
section.performance .media .right{
	margin-top:-1em;
	font-size:0.9em;
	font-weight:normal; 
}
section.performance .media .small{
	font-weight:normal; 
	font-size:0.9em;
}
section.company h2.categorytitle{
	background-image:url(../img/txt_company.png);
	color: #ffffff;
}
section.company{
	color: #ffffff;
}
section.company table{
	border-spacing:5px;
}
section.company table caption{
	border-bottom:1px solid #FFFFFF;
	padding:0.4em;
}
section.company table th,
section.company table td{
	padding:0.8em 0;
	vertical-align:top;
	border-bottom:1px solid #FFFFFF;
}
section.company table tr:last-child th,
section.company table tr:last-child td{
	border-bottom:none;
}
section.company .col-6{
	border-bottom:1px solid #FFFFFF;
}
section.contact h2.categorytitle{
	background-image:url(../img/txt_contact.png);
}
section.contact table{
	border-collapse:collapse;
}
section.contact table th{
	background-color: #DBDBDB;
	border-bottom: 1px solid #fff;
	vertical-align:top;
	padding:0.8em;
}
section.contact table td{
	background-color:#EDEDED;
	border-bottom: 1px solid #fff;
}
section.contact .telnum{
	font-size:3em;
	letter-spacing:0.2em;
	margin-top:0.8em;
	margin-bottom: 2em;
	font-family:Arial, Helvetica, sans-serif;
}
section.contact .telnum a{
	background-color:#B62E31;
	color:#fff;
	padding:0.2em 1em;
	border-radius:6px;
	box-shadow:0 0 8px rgba(99,0,1,1.00);
}
#to-contact{
	display:flex;
	align-items:center;
	justify-content:center;
	width:180px;
	height: 180px;
	background-color: rgba(165,27,37,0.90);
	border-radius:6px;
	position:fixed;
	bottom:1em;
	right: 1em;
	box-shadow: 0px 0px 9px #550E13;
}
#to-contact a{
	line-height:0;
}
#to-contact {
	overflow: hidden;
}
#to-contact a{
	position: relative;
	overflow: hidden;
}
#to-contact::before {
	position: absolute;
	overflow: hidden;
	left:-200%;
	top:-175%;
	z-index: 2;
	display: block;
	content: '';
	width: 200%;
	height:280%;
	background: -webkit-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,.7) 100%);
	background: linear-gradient(-40deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.7) 100%);
	transform: rotate(120deg);
}
#to-contact::before{
	-webkit-animation: shine 2s infinite 1s;
	animation: shine 2s infinite 1s ;
}
@-webkit-keyframes shine {
	0%{
		left:-30%;
	}
	100% {
		left: 245%;
	}
}
@keyframes shine {
	0%{
		left:-150%;
	}
	100% {
		left: 245%;
	}
}
#cases h2{
	font-size: 1em;
	background-color: #A41C25;
	color: #ffffff;
	text-align: center;
	margin: 0 0 0.8em;
}
#cases p{
	color: #646464;
	text-align: center;
	margin: 0 0 0.5em 0;
}
#cases p.last{
	margin-bottom: 2em;
}
#cases .more{
	text-align: center;
	font-weight: bold;
	color: #000000;
	border: 2px solid #000000;
	margin: 2em auto;
	padding: 0.3em 1.5em;
	text-decoration: none;
} 
.contactform h2{
	text-indent: -9999px;
	padding: 0.2em;
	margin: 0;
	background-image: url("../img/contactform_title.png");
	background-repeat: no-repeat;
	background-position: center;
}
.contactform{
	background-color: #e9e9e9;
	margin-bottom: 10em;
	padding: 2em;
}

.contactform table{
	border-collapse: collapse;
}
.contactform th{
	width: 25%;
}
.contactform th,
.contactform td{
	border-bottom: 1px solid #999;
	padding: 0.8em 0.4em;
}
.numberarea{
	width: 20%;
	height: 1em;
}
.contactform #submit{
	width: 190px;
	height: 45px;
	background-color: #008200;
	border-radius: 20px;
	margin: 1em auto;
	text-align: center;
}