﻿@charset "UTF-8";

/****    基本構成    ****/
* {
	box-sizing: border-box;
}
html {
	padding:0;
	margin:0;
	position: relative;
	min-height:100vh;
}
body {
	padding:0;
	margin:80px 0 38.4px;
}

.outer {
	text-align:center;
}
.inner {
	max-width:1200px;
	margin: 0 auto;
}
.padding:after,
.clear {
	content: "\a";
	line-height:10px;
	font-size:10px;
	display: block;
	clear: both;
}
.padding {
	position: relative ;
	text-align:left;
}
main .padding {
	padding: 100px 10px;
}
session {
	display: block;
}
img {
	max-width:100%;
	height: auto;
}
a.marker-link {
	text-decoration: none;
	color: #000;
	border: 3px double orange;
	margin: 0 10px;
	padding: 5px 20px;
	border-radius: 20px;
	font-weight: 700;
	line-height: 50px;
}
p {
	margin: 0;
	padding: 0 10px 10px;
}
@media screen and (max-width: 800px) { /* スマホ */
	table.splist {
		display: block;
	}
	table.splist thead, 
	table.splist tbody, 
	table.splist tr, 
	table.splist td, 
	table.splist th {
		display: block;
		width: 100% !important;
	}
}
/****  共通部  ****/
h3.title {
	text-align: left;
	color: rebeccapurple;
	border-bottom: 2px solid rebeccapurple;
	font-size: 24px;
}
h3.title:before {
	content:"■ ";
}

@media screen and (min-width: 801px) { /* PC */
	.nopc{
		display: none !important;
	}
	.marker-span {
		height: 60px;
	}
}
@media screen and (max-width: 990px) {
	body {
		margin:140px 0 0;
	}
}
@media screen and (max-width: 800px) { /* スマホ */
	body {
		margin:66px 0 0;
	}
	h1,h2,h3,h4,h5,h6 {
		text-align:center;
	}
	.nosp{
		display: none !important;
	}
	.table-outer {
		width: 100%;
		overflow-x:scroll;
		margin-bottom: 1.7em;
	}
	.table-outer > table {
		width: 960px;
		margin-bottom: 0;
	}
}

/****  パーツ  ****/
.left50pc {
	z-index:30;
	position: relative;
	width: 49.999%;
	float: left;
	clear: left;
	margin-bottom: 1.7em;
}
.right50pc {
	z-index:30;
	position: relative;
	width: 49.999%;
	float: right;
	clear: right;
	margin-bottom: 1.7em;
}
.left33pc {
	display: inline-block;
	z-index:30;
	position: relative;
	width: 32%;
	margin-bottom: 1.7em;
	padding: 10px;
}
.right33pc {
	z-index:30;
	position: relative;
	width: 32%;
	float: right;
	margin-bottom: 1.7em;
	padding: 10px;
}
.left25pc {
	display: inline-block;
	z-index:30;
	position: relative;
	width: 24.5%;
	margin-bottom: 1.7em;
	padding: 10px;
}
.lef_max3_pc {
	z-index:30;
	position: relative;
	width: 33%;
	float: left;
	margin-bottom: 1.7em;
	padding: 10px;
}
.lef_max3_pc:nth-of-type(3n+1) {	clear:left;}
.max3_pc {
	display: inline-block;
	z-index:30;
	position: relative;
	width: 33%;
	margin-bottom: 1.7em;
	padding: 10px;
	text-aling:left;
}
@media screen and (max-width: 1000px) { 
	.lef_max3_pc {
		width: 49.999%;
	}
	.lef_max3_pc:nth-of-type(3n+1) {	clear:none;	}
	.lef_max3_pc:nth-of-type(2n+1) {	clear:left;	}
	.max3_pc {
		width: 49.999%;
	}
}
@media screen and (max-width: 800px) { /*スマホ */
	.left50pc ,
	.right50pc {
		width: 100%;
		float: none;
	}
	.lef_max3_pc {
		width: 100%;
		float: none;
		clear:left;
	}
	.max3_pc {
		width: 100%;
		float: none;
		clear:left;
	}
	.left33pc {
		width: 100%;
		float: left;
	}
	.left25pc {
		width: 100%;
		float: left;
	}
}




.text {
	padding: 0 20px;
}
.radius10 {
	border-radius: 10xp;
}

.border-box {
	border: 3px double orange;
	padding:20px;
	border-radius: 10px;
}
.border-box > h4:first-child {
	margin-top:0;
}

/****  ヘッダー  ****/
#logo {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    background: #FFF;
    z-index: 10000;
}
#logo .inner {
    max-width: 1980px;
    position: relative;
}
#logo .padding {
    background: #FFF;
    box-shadow: 1px 1px 5px 3px #0003;
}
#logo-image {
    margin-top: 10px;
}
#menu {
    float: right;
}
#menu a,
.submenu a {
    color: #000;
    font-weight: 700;
    text-decoration: none;
}
#menu > div {
    position: relative;
    text-align: right;
    padding-top: 2.4em;
}
#menu > div > div {
	display: inline-block;
	vertical-align: top;
}
#menu > div > div > * {
    display: block;
    position: relative;
    padding: 8px 20px;
    text-align: center;
    cursor: pointer;
    font-weight: 700;
}
#menu > div > div > * br {
	display: none;
}
#menu > div > div#menu-call {
    position: absolute;
    right: 0;
    top: 0;
}
#menu > div > div#menu-call a {
    font-size: 12px;
    font-weight: 400;
}
#menu > div > div > *:after {
    content: "";
    display: block;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 0px;
    background: #000;
    transition: 0.5s;
}
body.toppage #menu > div > div#menu-top > *:after ,
body.servicepage #menu > div > div#menu-service > *:after ,
body.companypage #menu > div > div#menu-campany > *:after ,
#menu > div > div:hover > *:after {
    height:5px;
}

.submenu {
    position: absolute;
    top: -140px;
	right: 0;
    width: 100%;
    padding-bottom: 30px;
    background: linear-gradient( #ffffff 0%, #e5efff 50%, #e5efff 100%);
    z-index: -1;
    text-align: right;
    transition: 500ms;
}
.submenu.submenu2 {
    top: -340px;
}
.submenu.open ,
.submenu.submenu2.open  {
    top: 80px;
}
.submenu > * {
    display: inline-block;
    width: 400px;
    margin-top: 20px;
    margin-right: 2%;
    padding: 10px 20px;
    text-align: left;
    border-bottom: 1px solid #AAA;
}
@media screen and (max-width: 990px) {
	#logo {
		position: fixed;
	}
	#logo .padding {
		text-align: center;
	}
	#menu {
		float: none; 
		display: inline-block;
	}
	.submenu.open {
		top: 140px;
	}
	.submenu > * {
		width: 30%;
	}
}
@media screen and (max-width: 800px) {
	#logo .padding {
		text-align:left;
		height: 64px;
	}
	#logo-image {
		max-width: 80%;
		height: auto;
	}
	#menu-sp {
/*		background:rebeccapurple url(../img/common/sp_menu.png);	*/
/*		background-size: cover;	*/
		position: fixed;
		right: 0;
		top: 0;
		width: 60px;
		height: 60px;
		border-radius: 7px;
		cursor: pointer;
		z-index:2000;
	}
	#menu-sp>div {
		position: absolute;
		transform: rotate(0deg) translateY(-50%);
		top: 50%;
		left: 20%;
		width: 60%;
		height: 2px;
		background: #000;
		transition: 0.5s;
		opacity: 1;
	}
	#menu-sp>div.menu-sp-l1 {	top: 30%;	transform: rotate(0deg) translateY(0);	}
	#menu-sp>div.menu-sp-l3 {	top: 70%;	transform: rotate(0deg) translateY(-100%);	}
	.spopen #menu-sp>div.menu-sp-l1 {	top: 50%;	transform: rotate(45deg) translateY(-50%);	}
	.spopen #menu-sp>div.menu-sp-l2 {	opacity: 0;	}
	.spopen #menu-sp>div.menu-sp-l3 {	top: 50%;	transform: rotate(-45deg) translateY(-50%);	}
	#menu ,
	.submenu {
		position: fixed;
		top: 0;
		right: -375px;
		width: 100%;
		min-height: 100%;
		overflow-y: scroll;
		max-width: 375px;
		max-height: 100%;
		height: auto;
		transition: 0.5s;
		background: #e5efff;
		box-shadow: 0 0 4px 4px #0002;
		z-index: 1000;
		opacity: 0;
	}
	#menu > div ,
	.submenu {
		padding-top: 0;
	}
	#menu > div > div ,
	.submenu > div {
		display: block;
		margin: 0;
		width: 100%;
	}
	#menu > div > div#menu-top,
	div#menu-service-sub>div:first-child,
	div#menu-related-sub>div:first-child {
		display: block;
		position: relative;
		height: 55px;
		margin: 60px 0 1em;
	}
	#menu > div > div#menu-top a,
	div#menu-service-sub>div:first-child span,
	div#menu-related-sub>div:first-child span  {
		color: #0000;
	}
	#menu > div > div#menu-top a:before,
	div#menu-service-sub>div:first-child span:before,
	div#menu-related-sub>div:first-child span:before {
	    box-sizing: border-box;
	    content: "日本マルセル株式会社";
	    display: block;
	    position: absolute;
	    width: 90%;
	    top: 0;
	    left: 5%;
	    padding: 8px 20px;
	    text-align: center;
		font-size: 22px;
		font-weight: 700;
	    color: #00F;
	    border-bottom: 1px solid #00F;
	}
	div#menu-service-sub>div:first-child span:before {
	    content: "商品・サービス";
	}
	div#menu-related-sub>div:first-child span:before {
	    content: "ビルメンテナンス関連事業";
	    font-size: 18px;
	}
	.submenu > * {
		display: none;
		padding: 0;
		border-bottom: none;
	}
	#menu > div > div#menu-call {
		position: relative;
	}
	#menu > div > div > *,
	#menu > div > div#menu-call a ,
	.submenu a  {
		display: block;
		text-align: center;
		font-weight: 400;
		font-size: 14px;
		padding: 8px 20px;
	}
	#menu > div > div > *:after {
		left: 0;
		bottom: 0;
		width: 0;
		height:100%;
	}
	/*
	body.toppage #menu > div > div#menu-top > *:after ,
	body.servicepage #menu > div > div#menu-service > *:after ,
	body.companypage #menu > div > div#menu-campany > *:after ,
	#menu > div > div:hover > *:after {
		width: 5px;
		height:100%;
	}*/
	.spopen #menu {
		right:0;
		opacity: 1;
	}
	.spopen.spopensub #menu {
		right: 100vw;
	}
	.spopen.spopensub .submenu.open {
		top: 0;
		right: 0;
		opacity: 1;
	}
	.menu-sp-bg {
		background: #000;
		position: fixed;
		top: 0;
		left: 0;
		width: 0;
		height: 0;
		opacity: 0;
		transition: opacity 0.5s;
	}
	.spopen .menu-sp-bg {
		opacity: 0.4;
		width: 100%;
		height: 100%;
	}
}




/****  メイン  ****/
main > *:nth-of-type(2n) {
	background: #e5efff ;
}
/*
main > * {
	background: #e5efff;
	background: -moz-linear-gradient( #ffffff 0%, #e5efff 50%, #e5efff 100%);
	background: -webkit-gradient(linear, left top, left bottom, from(#ffffff), color-stop(50%, #e5efff), to(#e5efff));
	background: -webkit-linear-gradient( #ffffff 0%, #e5efff 50%, #e5efff 100%);
	background: -o-linear-gradient( #ffffff 0%, #e5efff 50%, #e5efff 100%);
	background: linear-gradient( #ffffff 0%, #e5efff 50%, #e5efff 100%);
}*/

/****  商品・サービス  ****/
.LeftTitle img ,
.RightTitle img {
	display: block;
	width: 80%;
	z-index: 30;
	position: relative;
}
.back {
	z-index:00;
	position: absolute;
	top: 50%;
	right: 0;
	width:40%;
	-webkit-transform: translate(0, -50%);
	transform: translate(0, -50%);
	background:#8bc34a52;
	border-radius: 50%;
	transition: 0.5s;
}
.front{
	z-index:50;
	position: absolute;
	top: 50%;
	right: 5%;
	width:30%;
	-webkit-transform: translate(0, -50%);
	transform: translate(0, -50%);
	border:2px solid #FFF;
	background:#FFFA;
	border-radius: 50%;
	transition: 0.5s;
}
.back:before ,
.front:before {
	content:"";
	display: block;
	padding-top: 100%; /* 高さを幅の75%に固定 */
}
.front div {
	font-size: 34px;
	text-align:center;
	font-weight: 700;
	letter-spacing: 0.2em;
	position: absolute;
	top: 50%;
	left: 50%;
	-webkit-transform: translate(-50%, -50%);
	transform: translate(-50%, -50%);
}
.front div.w3 {
	font-size: 28px;
	letter-spacing: 0;
}

@media screen and (max-width: 1200px) { /* 1200以下 */
	.front div,
	.front div.w3 {
		font-size: 2vw;
	}
}
.LeftTitle:hover .back ,
.RightTitle:hover .back {
	right: -15%;
}
.LeftTitle:hover .front ,
.RightTitle:hover .front {
	right: -10%;
}


/****  フッター  ****/
footer {
	position: absolute;
	width: 100%;
	bottom: 0;
	background: #003384;
	background: -moz-linear-gradient( #4d91ff 0%, #003384 50%, #003384 100%);
	background: -webkit-gradient(linear, left top, left bottom, from(#4d91ff), color-stop(50%, #003384), to(#003384));
	background: -webkit-linear-gradient( #4d91ff 0%, #003384 50%, #003384 100%);
	background: -o-linear-gradient( #4d91ff 0%, #003384 50%, #003384 100%);
	background: linear-gradient( #4d91ff 0%, #003384 50%, #003384 100%);
	color: #FFF;
	font-weight: 700;
	font-size: 12px;
}
footer .padding {
	padding: 10px;
	text-align: center;
}