@charset "utf-8";

/*
# --------------------------------
#  header
# --------------------------------
*/
header {
	height: 70px;
	border-bottom: 4px solid #388E3C;
	background-color: #fff;

	position: relative;
	z-index: 5;
	box-shadow: 0px -32px 64px 24px #000;
}
#header-content {
	min-width: 1080px;
}
#header-content:before, #header-content:after {
	content: "";
	clear: both;
	display: block;
}
#header-content, #header-content h1, #header-content nav {
	height: 100%;
}
#header-content h1 {
	display: inline-block;
	width: 400px;
}
#header-content h1 a {
	font-size: 0;
}
#header-content img {
	height: 64px;
	width: auto;
	margin-top: 2px;
	margin-left: 32px;
}

#header-content nav {
	float: right;
	display: block;
	width: 680px;
	vertical-align: top;
	position: relative;
	text-align: right;
}
#header-content ul {
	display: block;
	width: 100%;
	margin-right: 8px;
	text-align: right;
	position: absolute;
	bottom: 0;
}
#header-content li {
	display: inline-block;
	font-size: 115%;
	padding: 0 6px;
}
#header-content li {
	border-left: 1px solid #73a745;
}
#header-content li:last-child {
	border-right: 1px solid #73a745;
	margin-right: 32px;
}


/*
# --------------------------------
#  footer
# --------------------------------
*/
footer {
	height: auto;
	padding-top: 16px;
	background-color: white;

	position: relative;
	z-index: 5;
}
footer #footer-content {
	font-size: 0;
	height: 216px;
	margin-bottom: 32px;
}
#footer-content .contents {	
	display: inline-block;
	vertical-align: top;
	height: 100%;
	width: 344px;
	margin: 0 8px;
}
#footer-content .contents h4 {
	padding-top: 8px;
	font-size: 26px;
	text-align: center;
	line-height: 36px;
	border-bottom: 1px solid #388E3C;
}
#footer-content .contents ul {
	padding-top: 8px;
	font-size: 20px;
	list-style: none;
}
#footer-content .contents li {
	margin-left: 8px;
	line-height: 32px;
}

footer #footer-detail {
	height: 35px;
	width: calc(100% - 32px * 2);
	margin: auto;
	padding: 4px 0;
	border-top: 1px solid #388E3C;
}
#footer-detail:before, #footer-detail:after {
	content: "";
	clear: both;
	display: block;
}
#footer-detail small {
	display: inline-block;
	height: 100%;
	width: 500px;
	margin-left: 4px;
	line-height: 38px;
}
#footer-detail a {
	font-size: 0;
}
#footer-detail img {
	display: inline-block;
	height: 36px;
	width: auto;
	margin-right: 4px;
	float: right;
}


/*
# --------------------------------
#  home
# --------------------------------
*/
#slide {
	position: relative;
	height: 640px;
	width: 100%;
}
#slide span {
	height: 640px;
	width: 100%;
	overflow: hidden;

	position: absolute;
	top: 0;
	left: 0;

	transition: 2.5s;
}
#slide span div {
	height: 740px;
	width: 100%;
	object-fit: cover;
	position: relative;
	top: -100px;

	transition: 0s;
}
#slide .caption {
	position: absolute;
	font-family: 'Noto Serif JP', serif;
	color: white;
	text-shadow: 4px 4px 6px #000;
	letter-spacing: 0.25em;
	user-select: none;
}
#slide .cap_message {
	position: absolute;
	font-size: 240%;
	color: white;
}
#slide .cap_subtitle {
	position: absolute;
	font-size: 160%;
	margin-top: 62px;
	color: white;
}
#slideImg1 {
	background-image: url(../img/slide_skyline.jpg);
	background-repeat: no-repeat;
	background-size: cover;
	background-position: 50% 75%;
}
#slideImg2 {
	background-image: url(../img/slide_consulting.jpg);
	background-repeat: no-repeat;
	background-size: cover;
	background-position: 50% 75%;
}
#slide .show {
	z-index: 1;
	opacity: 1;
}
#slide .hidden {
	z-index: -1;
	opacity: 0;
}

#article-wrapper {
	width: 100%;
	background-color: #388E3C;
	color: white;

	position: relative;
	z-index: 5;
	box-shadow: 0px 32px 64px 26px #000;
}
#newtopics {
	padding: 32px 0;
}
#newtopics h2 {
	line-height: 92%;
}


/*
# --------------------------------
#  info
# --------------------------------
*/
#info-fv {
	height: 480px;
	width: 100%;
	background-image: url(../img/info_fv.jpg);
	background-repeat: no-repeat;
	background-size: cover;
	background-position: 50% 50%;
	position: relative;
}

#info table {
	width: 640px;
	margin: 32px auto 64px;
	border-collapse: separate;
	border-spacing: 0px 16px;
}
#info table th, #info table td {
	font-size: 120%;
	padding: 10px;
	padding-left: 1.5em;
}
#info table th {
	background: #73a745;
	vertical-align: middle;
	text-align: left;
	width: 120px;
	overflow: visible;
	position: relative;
	color: #fff;
	font-weight: normal;
}
#info table td {
	background: #EFEFEF;
}
#info table th:after {
	left: 100%;
	top: 50%;
	border: solid transparent;
	content: "";
	height: 0;
	width: 0;
	position: absolute;
	pointer-events: none;
	border-color: rgba(255, 255, 255, 0);
	border-left-color: #73a745;
	border-width: 10px;
	margin-top: -10px;
}
#info table td a {
	color: #388E3C;
}
#info table td a:hover {
	color: #FFB300;
}
#info #greeting {
	width: 1000px;
	margin: 32px auto 64px;
}
#info #greeting p {
	font-size: 105%;
	line-height: 1.6em;
	letter-spacing: 0.1em;
	margin-top: 24px;
}

#info #business {
	font-size: 0px;
}
#info #business figure {
	width: 320px;
	height: 128px;
	display: inline-block;
	margin: 0 20px;
}
#info #business .img_wrapper {
	border: 1px solid #388E3C;
	box-sizing: border-box;
	border-radius: 8px;
	overflow: hidden;
}
#info #business img {
	width: 320px;
	height: 128px;
	transition: .4s
}
#info #business img:hover, .hover {
	transform-origin: center;
	transform: scale(1.125);
	
	-webkit-filter: blur(2px) brightness(120%) grayscale(50%);
	-moz-filter: blur(2px) brightness(120%) grayscale(50%);
	-ms-filter: blur(2px) brightness(120%) grayscale(50%);
	filter: blur(2px) brightness(120%) grayscale(50%);
}
#info #business .caption {
	font-size: 20px;
	font-family: 'Noto Serif JP', serif;
	margin-top: 2px;
	text-align: center;
}

#info #access {
	width: 960px;
	height: 540px;
	margin: 32px auto 64px;
    border-top: solid 5px #73a745;
    box-shadow: 0 3px 5px rgba(0, 0, 0, 0.22);
}


/*
# --------------------------------
#  service_top
# --------------------------------
*/
#service .desc {
	margin-bottom: 8px;
	margin-left: 16px;
}
#service .tiles {
    font-size: 0px;
    width: calc((360px * 2) + (32px * 4) + (1px * 4));
    margin: auto;
}
#service .tiles a:hover {
    opacity: .8;
}
#service .tile {
	height: 120px;
	width: 360px;
	margin: 0px 32px 36px;
	display: inline-block;
	vertical-align: middle;
    border: 1px solid #CCC;
}
#service .service_image {
	display: inline-block;
    height: 120px;
	width: 150px;
    vertical-align: top;
    overflow: hidden;
}
#service .service_image img {
    transition: .2s;
}
#service .service_title {
    display: inline-block;
    height: 120px;
	width: 210px;
    vertical-align: top;
    background: #DDD;
}
#service h4 {
    font-family: line;
    font-size: 32px;
    text-align: center;
    height: 120px;
    line-height: 120px;
    vertical-align: middle;
    overflow: hidden;
    text-shadow: 1px 1px #CCC,2px 2px #CCC,3px 3px #CCC,4px 4px #CCC,5px 5px #CCC,6px 6px #CCC,7px 7px #CCC,8px 8px #CCC,9px 9px #CCC,10px 10px #CCC,11px 11px #CCC,12px 12px #CCC,13px 13px #CCC,14px 14px #CCC,15px 15px #CCC,16px 16px #CCC,17px 17px #CCC,18px 18px #CCC,19px 19px #CCC,20px 20px #CCC,21px 21px #CCC,22px 22px #CCC,23px 23px #CCC,24px 24px #CCC,25px 25px #CCC,26px 26px #CCC,27px 27px #CCC,28px 28px #CCC,29px 29px #CCC,30px 30px #CCC,31px 31px #CCC,32px 32px #CCC,33px 33px #CCC,34px 34px #CCC,35px 35px #CCC,36px 36px #CCC,37px 37px #CCC,38px 38px #CCC,39px 39px #CCC,40px 40px #CCC,41px 41px #CCC,42px 42px #CCC,43px 43px #CCC,44px 44px #CCC,45px 45px #CCC,46px 46px #CCC,47px 47px #CCC,48px 48px #CCC,49px 49px #CCC,50px 50px #CCC,51px 51px #CCC,52px 52px #CCC,53px 53px #CCC,54px 54px #CCC,55px 55px #CCC,56px 56px #CCC,57px 57px #CCC,58px 58px #CCC,59px 59px #CCC,60px 60px #CCC,61px 61px #CCC,62px 62px #CCC,63px 63px #CCC,64px 64px #CCC,65px 65px #CCC,66px 66px #CCC,67px 67px #CCC,68px 68px #CCC,69px 69px #CCC,70px 70px #CCC,71px 71px #CCC,72px 72px #CCC,73px 73px #CCC,74px 74px #CCC,75px 75px #CCC,76px 76px #CCC,77px 77px #CCC,78px 78px #CCC,79px 79px #CCC,80px 80px #CCC;
}


/*
# --------------------------------
#  service_util
# --------------------------------
*/
#services nav {
	background: linear-gradient(#388E3C, #73a745);
}
#services ul {
	display: block;
	width: 1080px;
	margin: auto;
	font-size: 0;
}
#services li {
	display: inline-block;
	font-size: 22px;
	text-align: center;
	padding: 8px 0;
	width: calc(1080px / 5);
}
#services li:hover:not(.focus) {
	background: linear-gradient(rgba(223, 223, 223, .4), rgba(223, 223, 223, .2));
}
#services li a {
	display: block;
	width: 100%;
	height: 100%;
	color: white;
}
#services .focus {
	background: linear-gradient(rgba(32, 32, 32, .4), rgba(32, 32, 32, .2));
}
#services .focus a {
	color: #FFD54F;
}

#services .main h2 {
	margin: 0 0 32px 100px;
	font-family: line;
	font-size: 220%;
}
#services .main #service_detail {
	font-size: 0px;
	margin-bottom: 64px;
}
#services .main #service_desc {
	display: inline-block;
	margin-top: 16px;
	width: 820px;
}
#services .main #service_desc p {
	margin-top: 16px;
	font-size: 16px;
}
.bg_img {
	display: inline-block;
	vertical-align: top;
	width: 260px;
	height: 220px;
}
#img_service_mfp {
	background: linear-gradient(270deg, rgba(255, 255, 255, 0) 65%, rgba(255, 255, 255, 0.8) 90%, rgba(255, 255, 255, 1)), url(../img/product/mfp/bg.jpg) center bottom / cover no-repeat;
}
#img_service_security {
	background: linear-gradient(270deg, rgba(255, 255, 255, 0) 65%, rgba(255, 255, 255, 0.8) 90%, rgba(255, 255, 255, 1)), url(../img/product/security/bg.jpg) center bottom / cover no-repeat;
}
#img_service_phone {
	background: linear-gradient(270deg, rgba(255, 255, 255, 0) 65%, rgba(255, 255, 255, 0.8) 90%, rgba(255, 255, 255, 1)), url(../img/product/phone/bg.jpg) center bottom / cover no-repeat;
}
#img_service_server {
	background: linear-gradient(270deg, rgba(255, 255, 255, 0) 65%, rgba(255, 255, 255, 0.8) 90%, rgba(255, 255, 255, 1)), url(../img/product/server/bg.jpg) center bottom / cover no-repeat;
}
#img_service_camera {
	background: linear-gradient(270deg, rgba(255, 255, 255, 0) 65%, rgba(255, 255, 255, 0.8) 90%, rgba(255, 255, 255, 1)), url(../img/product/camera/bg.jpg) center bottom / cover no-repeat;
}

#product_detail {
	font-size: 0px;
	margin-top: 32px;
	margin-bottom: 64px;
}
#product_detail .columns_2 {
	display: inline-block;
	width: calc(1080px / 2);
}
#product_detail .columns_3 {
	display: inline-block;
	width: calc(1080px / 3);
}
#product_detail .columns_4 {
	display: inline-block;
	width: calc(1080px / 4);
}
#product_detail .products img {
	display: block;
	margin: auto;
}
#product_detail .products span {
	font-size: 20px;
	margin-top: 12px;
	display: block;
	text-align: center;
}



/*
# --------------------------------
#  policy
# --------------------------------
*/
#policy .main-title h2 {
	font-size: 160%;
	letter-spacing: 0.05em;
	margin-top: 64px;
	margin-bottom: 6px;
}
#policy .main h3 {
	margin-top: 64px;
}
#policy .main p {
	margin-top: 16px;
	line-height: 1.3em;
	letter-spacing: 0.1em;
}
#policy .main .comment {
	padding-top: 16px;
}
#policy ul {
	margin: 32px 64px;
}
#policy li {
	margin-top: 4px;
}
#policy .main .end {
	text-align: right;
	margin-top: 48px;
}


/*
# --------------------------------
#  form
# --------------------------------
*/
.arrow2:before, .arrow3:before {
    position: absolute;
    content: "";
    width: 0;
    height: 0;
    border: 20px solid transparent;
    border-left: 16px solid white;
    left: 0px;
    top: 0px;
}
.arrow {
    display: inline-block;
    height: 40px;
    width: 350px;
    background-color: #EFEFEF;
    position: relative;
    top: 0px;
    font-size: 20px;
    text-align: center;
}
.arrow p {
    color: #888;
    font-weight: bold;
    position: relative;
    top: 6px;
}
.arrow2, .arrow3 {
    margin-left: 10px;
}
.arrow1:after, .arrow2:after {
  position: absolute;
  content: "";
  width: 0;
  height: 0;
  border: 20px solid transparent;
  border-left: 16px solid #EFEFEF;
  left: 100%;
  top: 0px;
  z-index: 5;
}
.passed {
	background-color: #73a745;
}
.passed p {
	color: #fff;
}
.passed:after {
	border-left: 16px solid #73a745;
}
#form .comment {
	margin: 16px 16px 24px;	
}
#form table {
    font-size: 16px;
    width: 100%;
}
#form table tr {
    height: 30px;
}
#form table th {
    width: 25%;
	background-color: #EFEFEF;
	letter-spacing: 0.1em;
}
#form table td {
	width: 75%;
}
#form table td input, #form table td textarea {
	font-size: 100%;
	padding: 4px;
	margin: 2px;
}
#form table td textarea {
	padding-top: 4px;
}
#form tr input, #form tr textarea {
    margin-left: 6px;
}
#form tr textarea {
	margin-top: 6px;
	height: 200px;
    width: calc(100% - 14px);
}
#form .required:after {
	content: "※必須";
	color: white;
	margin-left: 1em;
	padding: 3px;
	font-size: 50%;
	font-weight: 100;
	border-radius: 4px;
	background-color: #73a745;
	vertical-align: middle;
}
#form td p {
    margin: 8px;
}
#form input, #form textarea {
	border-radius: 2px;
    border: 1px solid #AAA;
}
#form .msg {
	min-height: 140px;
}
#form #actionBtn {
	text-align: center;
}
#form .center {
	margin: 32px 0;
	display: block;
	text-align: center;
}
#form label a, #form label i {
	color: #73a745;
	display: inline-block;
	margin: 0 6px;
}
#form label i {
	font-size: 64%;
}
#form button {
	position: relative;
	top: 0px;
	left: 0px;
    height: 42px;
    width: 120px;
    color: #FFF;
    font-size: 100%;
	margin-top: 24px;
	background-color: #73a745;
	border: none;
	border-radius: 4px;
	outline: 0;
	transition: .1s;
}
#form button:after {
	content: "";
	position: absolute;
	top: 4px;
	left: 0px; 
	z-index: -1;
	height: 42px;
	width: 120px;
	background-color: #33691E;
	border-radius: 4px;
	outline: 0;
	transition: .1s;
}
#form button:hover, #form button:hover:after {
	cursor: pointer;
}
#form button:active {
	top: 3px;
}
#form button:active:after {
	top: 1px;
}
#form button:nth-child(n+2) {
	margin-left: 128px;
}
#form .disabled {
}
#form h4 {
	margin: 32px;
	margin-bottom: 48px;
	font-size: 140%;
	font-weight: 100;
	text-align: center;
}


/*
# --------------------------------
#  404 - not found
# --------------------------------
*/
#notfound {
	font-size: 0px;
	margin-bottom: 48px;
}
#notfound h2 {
    margin-bottom: 0px;
    text-align: center;
    font-size: 54px;
    font-family: 'Times New Roman';
}
#notfound h4 {
    margin: 0px;
    text-align: center;
    font-size: 24px;
    border-bottom: 1px solid #AAA;
}
#notfound p {
    font-size: 16px;
	margin-top: 16px;
	margin-bottom: 32px;
    text-align: center;
}
#notfound .deal {
    width: 48%;
    margin: 1%;
    display: inline-block;
    vertical-align: top;
}
#notfound span {
	display: block;
    margin: 24px 0 0;
    padding-left: 10px;
	font-size: 18px;
	font-weight: bold;
	text-align: center;
    color: #73a745;
}
#notfound span i {
	color: #73a745;
}
#notfound ul {
    font-size: 16px;
    height: 240px;
    box-sizing: border-box;
    border: 8px solid #DDD;
    border-radius: 16px;
}
#notfound #deal1 li {
    margin: 30px 46px;
    line-height: 1.6em;
}
#notfound #deal2 li {
    margin: 16px 46px;
}