/* ------------------------------------------------------------------------
    Header
------------------------------------------------------------------------  */
header {
	width: 100%;
	position: fixed;
	left: 0;
	top: 0;
	z-index: 10;
	padding-top: 15px;
	padding-bottom: 15px;
	background: rgba(255,255,255,1);
	border-bottom: 1px solid #dcdcdc;
}
header > .container{
	position: relative;
	display: flex;
	padding-left: 15px;
	padding-right: 15px;
}
/* logo */
header .Logo a{
	display: flex;
	align-items: center;
}
header .Logo a img {
	width: auto;
	height: 26px;
}
header .Logo a span{
	font-weight: 500;
	color: #505050;
	padding-left: .3em;
	font-size: 1.2rem;
	line-height: 1.3em;
}

/* header / body padding */
.hd-blank {padding-top: 60px;}
@media screen and (min-width:1024px){
	.hd-blank {padding-top: 143px;}
	header {
		padding-top: 20px;
		padding-bottom: 0px;
	}
	header > .container{
		justify-content: space-between;
	}
	header .Logo a img {
		height: 45px;
	}
	header .Logo a span{
		display: inline;
		font-weight: 500;
		color: #505050;
		padding-left: .3em;
		font-size: 1em;
		line-height: 1.5em;
	}
}

/* Header Button */
.HDBtn{
	display: none;
	
}
.HDBtn a{
	margin-left: 15px;
}
@media screen and (min-width:1024px){
	.HDBtn{
		display: flex;
		align-items: center;
	}
}

/* ------------------------------------------------------------------------
    Icon
------------------------------------------------------------------------  */
.i-A {width: 32px; height: 32px;}

/* ------------------------------------------------------------------------
    Humburger
------------------------------------------------------------------------  */
.hamburger {
	display: block;
	width: 35px;
	height: 35px;
	vertical-align: middle;
	cursor: pointer;
	position: absolute;
	top: 50%;
	right: 20px;
	z-index: 110;
	transform: translateY(-50%);
	-webkit-transform: translateY(-50%);
	transition: transform .5s;
}

.hamburger span {
	display: block;
	box-sizing: border-box;
	position: absolute;
	left: 0;
	width: 100%;
	height: 1px;
	background-color: #666;
	transition: all .5s;
}
.hamburger span:nth-of-type(1) {
	top: 20%;
}

.hamburger.open span:nth-of-type(1) {
	top:50%;
	transform: rotate(-45deg);
}

.hamburger span:nth-of-type(2) {
	bottom: 50%;
}
.hamburger.open span:nth-of-type(2) {
	opacity: 0;
}
.hamburger span:nth-of-type(3) {
	bottom: 20%;
}
.hamburger.open span:nth-of-type(3) {
	bottom:50%;
 	transform: rotate(45deg);
}
/* none */
@media screen and (min-width:1024px){
	.hamburger{display: none;}
}

/* ------------------------------------------------------------------------
    nav
------------------------------------------------------------------------  */
/* Nav */
nav {}
/* SP Overlay */
.Overlay {}
.Overlay.open {}
.NavSp{}

/* SP */
@media screen and (max-width:1023px){
	nav{
		background: #fff;
	}
	/* drawer menu */
	nav.nav_list {
		width: 100%;
		height: calc(100% - 61px);
		position: fixed;
		top: 61px; /* right:-100% or left:-100% */
		padding-bottom: 61px;
		right: -100%;
		z-index: 100;
		transition: all .6s 0s ease;
		-webkit-transition: all .5s 0s ease;

		overflow: auto !important;
		overflow-x: auto !important;
		overflow-y: scroll !important;
		webkit-overflow-scrolling: touch;
	}
	nav.nav_list.open {
		/* Top */
		right:0; /* right:0 or left:0 */
		-webkit-transition: all .5s 0s ease;
		transition: all .5s 0s ease;
	}
	.nav_list ul{
		padding-top: 15px;
		padding-bottom: 20px;
		background: #fff;
	}
	.nav_list li {
		padding: 20px 0;
		list-style: none;
		border-top: 1px solid #dcdcdc;
	}
	.nav_list li:first-child {
		border-top: none;
	}
	.nav_list #Nav a{
		text-decoration: none;
		position: relative;
		display: block;
		vertical-align: middle;
	}
	.nav_list #Nav a::before{
		position: absolute;
		margin: auto;
		content: "";
		vertical-align: middle;

		right: 12px;
		top:0;
		bottom:0;

		width: 8px;
		height: 8px;
		border-top: 1px solid #717171;
		border-right: 1px solid #717171;
		-webkit-transform: rotate(45deg);
		transform: rotate(45deg);
	}

	/* Title */
	.NavTtlA {
		padding-top: 40px;
		font-size:1.57em;
		text-align: center;
		font-weight: 500;
	}
	/* Info */
	.NavInfo{
		text-align: center;
		background: #f5f5f5;
		padding-top: 30px;
		padding-bottom: 30px;
	}
	.NavInfo p {
		margin-top: 10px;
		margin-bottom: 10px;
		font-size: 1.2rem;
	}
	.NavInfo .google-map{
		margin-bottom: 20px;
	}
	/* Contact */
	.NavContact {
		display:flex;
		justify-content: center;
		padding-top: 30px;
	}
	.NavContact > div{
		width: 32px;
		margin-left: 15px;
		margin-right: 15px;
	}

	/* Overlay */
	.Overlay {
		position: fixed;
		top: 0;
		left: 0;
		display: none;
		width : 100%;
		height: 100%;
		background-color:#fff;
	}
	.Overlay.open {
		display:block;
	}
}

/* PC */
@media screen and (min-width:1024px){
	.NavSp{display: none !important;}
	nav{
		width: 100%;
		padding-bottom: 15px;
		padding-top: 15px;
		border-top:1px solid #dcdcdc;
		margin-top: 15px;
	}
	/* drawer menu */
	nav.nav_list {
	}
	nav.nav_list.open {
	}
	.nav_list ul#Nav{
		display: flex;
		justify-content: center;
		align-items: center;
		border-left: 1px solid #dcdcdc;
	}
	.nav_list li {
		flex:1;
	}
	.nav_list a {
		display: block;
		text-align: center;
		border-right: 1px solid #dcdcdc;
	}

	/* SubMenu */
	.MenuTriger {
		cursor:pointer;
	}
	.SubMenu {
		display: none;
	}
}

/* ------------------------------------------------------------------------
    Main
------------------------------------------------------------------------  */
#Top {
	/* header */
	padding-top: 100px;
}

/* ------------------------------------------------------------------------
    section
------------------------------------------------------------------------  */
.Topline{
	border-top: 1px solid #ccc;
}

/* ------------------------------------------------------------------------
    Calc
------------------------------------------------------------------------  */
#Calc {
	position: fixed;
	bottom: 0;
	left: 0;
	width: 100%;
	z-index: 100;
}
#Calc a{
	width: 100%;
	background: #005557;
	color:#fff;
	padding-top: 1.3em;
	padding-bottom: 1.3em;
	
	display: flex;
	justify-content: center;
}
#Calc a span{
	position: relative;
	font-size: 0.875em;
	line-height: 1.2em;
}
#Calc a span:before{
	position: absolute;
	left: -2em;
	top: 50%;
	-webkit-transform: translate(-50%, -50%);
	transform: translate(-50%,-50%);
	
	content: '';
	width: 32px;
	height: 32px;
	background-image: url("../images/icon_calc.png");
	background-repeat: no-repeat;
	background-size: cover;
}
@media screen and (min-width:1024px){
	#Calc {
		right: 0;
		left: auto;
		bottom:auto;
		top:145px;
		width: 60px;
	}
	#Calc a{
		align-items: center;
		padding-top: 50px;
		border-radius: 5px;
	}
	#Calc a span{
		-ms-writing-mode     : tb-rl;
		-webkit-writing-mode : vertical-rl;
		writing-mode: vertical-rl;
	}
	#Calc a span:before{
		left: 50%;
		top:-1.5em;
	}
}

/* ------------------------------------------------------------------------
    Section
------------------------------------------------------------------------  */
section{}
/* color */
.bg_f5{background: #f5f5f5;}
/* border */
.bd_top{border-top:1px solid #dcdcdc;}
.bd_btm{border-bottom:1px solid #dcdcdc;}

/* ------------------------------------------------------------------------
    Footer
------------------------------------------------------------------------  */
footer {
	background: #f5f5f5;
}
.FtContainer{
	padding-bottom: 30px;
	padding-top: 30px;
}
ul.finfo {
	width:100%;
	display: flex;
	flex-direction: column;
	align-items: center;
}
ul.finfo li {
	font-size:0.875em;
}
.finfo_ys {
	padding:5px 0 0 10px;
}
.FT_Info .google-btn {margin-bottom: 10px;}
@media screen and (max-width:1023px){
	.FT_Info{text-align: center; margin-bottom: 30px;}
	.FT_Group{display: none;}
	.FT_Link{width: 100%; display: flex; justify-content:space-between;flex-wrap: wrap;}
	.FT_Link p {margin-left: 1em; margin-right: 1em;}
}
@media screen and (min-width:1024px){
	ul.finfo {
		flex-direction: row;
		align-items: flex-start;
		justify-content: space-between;
	}
}
/* name */
.flogo {
	display: inline-flex;
	align-items: center;
	margin-bottom: 15px;
}
.flogo img{
	width: auto;
	max-height: 26px;
}
.flogo span{
	line-height: 1.5em;
}
@media screen and (min-width:1024px){
	.flogo img{
		max-height: 50px;
	}
}
.copy {
	width: 100%;
	height: 50px;
	display: flex;
	justify-content: center;
	align-items: center;
	color: #666;
	background: #fff;
	font-size: 1rem;
	padding-bottom: 51px;
}
body#CALCPAGE .copy{padding-bottom: 0;}
@media screen and (min-width:1024px){
	.copy {
		font-size: 1.2rem;
		padding-bottom: 0;
	}
}
