@import url(http://fonts.googleapis.com/earlyaccess/notosansjp.css);
.hide{
	display:none;
}
.text-right{
	text-align:right;
}

.section-ttl{
	font-size: 40px;
	line-height: 1;
	color: #c80e0e;
	text-align: center;
}
.section-ttl span{
	display:block;
	font-size: 24px;
	color:#333;
	margin: 1em 0 0
}

body {
     font-family: 'Noto Sans JP', sans-serif;
}
a:hover img{
	opacity: .7;
}
img{
	max-width:100%;
	height: auto;	
}
iframe{
	max-width:100%;
}
.p-news-ticker{
    background: #c80e0e;
}
.p-news-ticker__item-date {
    color: #fff;
}
.p-global-nav .sub-menu a{
	background: rgba(83, 83, 83,1);
}
.p-global-nav .sub-menu li a:hover, .p-widget-search__submit:hover, .p-button, .p-review__button:hover, .p-pager__item a:hover, .c-comment__form-submit:hover {
    background: #c80e0e;
}
.p-social-nav{
	display: none;
}
.p-pagetop a,.p-pagetop a:hover{
	background: url(btn_up.png) no-repeat center center;
	background-size:contain;
}
.p-pagetop a:hover{
	opacity:.7;
}
.p-pagetop a:after{
	display:none;
}
.l-footer {
	padding-top: 0;
}
.footer-bottom{
	background: url(bg_access.jpg) no-repeat center center;
	background-size:cover;
}
.footer-content {
	position: relative;
	background-color: rgba(83, 83, 83,.7);
}
.p-footer-nav{
	line-height: 14px;
	padding:25px 0;
}
.l-footer__logo{
	margin-bottom:0;
	padding:50px 0;
}
.p-address{
	display:none;
}
.p-copyright{
	height: 50px;
	line-height: 50px;
	text-align:center;
	background-color: rgba(83, 83, 83,1);
}
.footer-contact{
	padding: 60px 0 0;
	background: #fff;
	border-bottom:10px solid #c80e0e;
}
.contact-box{
	display: flex;
	justify-content: space-around;
	align-items: center;
	flex-wrap:wrap;
	padding:10px 50px 10px;
	border-top-left-radius:16px;
	border-top-right-radius:16px;
	background:#c80e0e;
	color: #fff; 
}
.contact-box a{
	color:#fff;
}
.contact-left{
	position: relative;
	font-size: 24px;
	line-height: 1.6;
}
.contact-left::after{
	display: block;
	content: "";
	width:5px;
	height: 100%;
	background: #999;
	position: absolute;
	top: 0;
	right:-15px;
}
.contact-right{
	font-size: 16px;
}
.contact-right p{
	margin:20px 0;
}

.contact-right span{
	margin-right:20px;
}
.contact-right strong{
	font-size: 30px;
	margin-right:.5em;
}
.contact-right img{
	vertical-align: middle;
}
.footer-access{
	padding: 50px 0 60px;
}
.footer-access h3{
	font-size:28px;
}
.footer-access iframe{
	border:4px solid #999;
}
.access-grid {
	width:100%;
    padding: 40px 15px;
    display: flex;
    font-size: 16px;
    line-height: 2;
}
.access-box {
    width: 33%;
    padding: 0 25px;
}
.map-area {
    position: relative;
    padding-top: 52%;
    overflow: hidden;
}
.map-area iframe{
	position: absolute;
	top:0;
	left:0;
	height: 100%;
}
.access-addr{
	margin: 1em 0 0;
}

.tech{
	padding:60px 0 0;
}
.article.tech-article {
    margin: 120px 0 0;
    background: #bbb;
}
.grid {
    display: flex;
}
.flow-article {
    width: 25%;
    padding: 115px 34px 50px;
    position: relative;
    line-height: 2;
    font-size: 14px;
}
.flow-title {
    position: absolute;
    top: -96px;
}
.flow-content {
    min-height: 140px;
    padding: 0 0 1em;
}
.flow-media {
	text-align: center;
}
.prod-article{
    width: 50%;
    padding: 0 34px 70px;
    position: relative;
    line-height: 2;
    font-size: 14px;
}
.prod-title {
    background: #c80e0e;
    color: #fff;
    text-align: center;
    font-weight: 700;
    font-size: 28px;
    line-height: 50px;
}
.prod-body {
    padding: 25px 34px 24px;
    background: #fff;
}
.prod-media {
    text-align: center;
    margin: 25px 0;
}
p.prod-btn {
    text-align: right;
}
.about{
	padding: 80px 0 70px;
}
.about-article{
	min-height:500px;
	margin:60px 0 0;
	padding: 50px 0 0;
	position: relative;
	background: url(bg_about_bottom.jpg) no-repeat center top 114px;
	background-size: cover;
}
.about-ribbon{
	position: absolute;
	top:0;
	left: 0;
	width:100%;
	height: 114px;
	background: url(bg_about_top.png) repeat-x left top;
	background-size:100% 100%;
}
.about-grid{
	margin:0 -25px;
	padding-bottom: 30px;
}
.about-col {
    padding:  0 25px 40px;
}

.about-box {
    background:  #fff;
    padding: 0 30px 25px;
}
h3.about-ttl {
    font-size:  24px;
    font-weight: 700;
    text-align:  center;
    line-height:  1.4;
    padding: 20px 0 30px;
    margin: 0 0 16px;
	background: url(about_h3.png) no-repeat center bottom;
}
.about-media {
    text-align:  center;
    margin: 30px 0;
}
.about-content {
    font-size:  14px;
    line-height:  2;
}
p.about-btn {
    text-align: center;
}
@media screen and (max-width: 991px) {
	.l-header{
		background: rgba(18, 29, 31, 0.6);
	}
	.p-pagetop {
		position: absolute;
		top: -15px;
		right: 0;
	}
	.p-pagetop a{
		bottom:10px;
		right:10px;
		width:50px;
		height:50px;
	}
	.p-footer-nav{
		width: 88.88889%;
		padding:25px 0 0;
	}
	.contact-box{
		padding: 10px 15px;
	}
	.contact-left,
	.contact-right{
		width:100%;
		text-align: center;
	}
	.contact-left{
		font-size:18px;
	}
	.contact-left::after{
		display:none;
	}
	.contact-right strong,
	.contact-right span{
		display: block;
		margin-bottom:.5em;
	}
	.access-grid {
		flex-wrap: wrap;
		padding: 40px 0 20px;

	}
	.access-box {
		width: 100%;
		padding:0;
		margin: 0 0 20px
	}
	.grid {
		flex-wrap: wrap;
	}
	.tech-inner{
		width: 100%;
	}
	.flow-article {
    	width: 100%;
    	padding: 115px 0 150px;
		background: #e9eaef;
	}
	.flow-article:nth-child(even){
		background: #dedfe4;
	}

	.flow-article:last-child {
	    padding: 115px 0 100px;
	}
	.flow-title.flow4{
		left:40px;
	}
	.flow-content,.flow-media{
		width: 88.8888%;
		margin: 0 auto;
	}
	.prod-article{
		width: 100%;
		margin: 0 auto;
    	padding: 20px 5.6% 70px;
		background: #e9eaef;
    }
	.prod-article:nth-child(even){
		background: #dedfe4;
	}
	.about-grid{
		flex-wrap: wrap;
	}
	.about-col {
	    width:100%;
	}
}

@media screen and (min-width: 992px) {
	.keyvisual {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: 780px;
    min-height: 445px;
		background-position: center center;
		background-size: cover;
	}
	.l-inner{
		width:100%;
		max-width:1150px;
	}
	.p-pagetop{
	    display: block;
	    position: absolute;
	    top: -48px;
	    right: 50px;
	    z-index:9999;
	}
	.p-pagetop a{
		display:block;
		width:96px;
		height:96px;
	}
	.contact-left{
		position: relative;
		font-size: 24px;
		line-height: 1.6;
	}
	.tech-inner{
		background: url(bg_tec_sect.png) repeat-Y center top;
		background-size:100% 100%;
	}
	.flow-title {
		margin: 0 -34px;
	}

	.about-col{
		max-width: 350px;
	}


}
