@charset "utf-8";

html {text-align: center;}

div, dl, dt, dd, ul, ol, li,
h1, h2, h3, h4, h5, h6,
pre, form, fieldset, input, textarea,
p, blockquote, th, td {
	margin: 0;
	padding: 0;
	box-sizing: boder-box;
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
}

body {
	color: #4C4948;
	margin: 0 auto;
	padding: 0;
	background:none;
	font-size: 100%;
	font-family: "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "メイリオ", sans-serif;
	line-height: 1.2em;
	text-align: left;
	-webkit-text-size-adjust: 100%;
	overflow-x:hidden;
	background-color: #FFF;
}

fieldset, img{
	border:0;
	vertical-align:bottom;
	margin: 0;
}

address, caption, cite,
code, dfn, em, strong, th, var {
	font-style: normal;
	font-weight: normal;
}

ol, ul{list-style:none;}

caption, th{text-align:left;}

h1, h2, h3, h4, h5, h6{
	width: auto;
	font-size:100%;
	font-weight:normal;
}

q:before, q:after{content:”;}

abbr, acronym{border:0;}

/*------------------------------------
	link
------------------------------------*/
a:link {
	color: #000;
	background-color: transparent;
	text-decoration: none;
}

a:visited {
	color: #666;
	background-color: transparent;
	text-decoration: none;
}

a:hover, a:active {
	/*color: #666;*/
	background-color: transparent;
	text-decoration: none;
}

/*------------------------------------
	clearfix
------------------------------------*/
.clearfix:after {
  content: "."; 
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
}

.clearfix {
  min-height: 1px;
}

* html .clearfix {
  height: 1px;
}

.clear {
	clear: both;
}

/*改行クラス（PC）*/
.breakLinePc{
	display:block;
}

/*改行クラス（SP）*/
.breakLineSp{
	display:inline;
}

.breakLineSp01{
	display:inline;
}

.inner{
	position: relative;
	width: 1120px;
	margin: auto;
	padding: 0 50px;
}

/*読み込み画面*/
#loader-bg {
	display: none;
	position: fixed;
	width: 100%;
	height: 100%;
	top: 0px;
	left: 0px;
	background: #294a58;
	z-index: 110;
}

#loader {
	display: none;
	position: fixed;
	top: 50%;
	left: 50%;
	width: 200px;
	height: 200px;
	margin-top: -100px;
	margin-left: -100px;
	text-align: center;
	color: #fff;
	font-weight: bold;
	z-index: 120;
}

#loading.hidden{
	display: none;
}

.tel {
	pointer-events: none !important;
	cursor: default !important;
}

/*フェードイン*/
.fadeInWrapTop{
	display: block;
	position: relative;
	transition-duration:1.0s;
	opacity: 0;
	bottom: -50px;
}

.fadeInWrapTop.active{
	opacity: 1;
	bottom: 0;
}

.fadeInWrapBegin{
	position: relative;
	transition-duration:1.0s;
	opacity: 0;
	bottom: -50px;
}

.fadeInWrapBegin.active{
	opacity: 1;
	bottom: 0;
}

.fadeInWrapBegin02{
	position: relative;
	transition-duration:1.0s;
	opacity: 0;
}

.fadeInWrapBegin02.active{
	opacity: 1;
}

.fadeInWrapRight{
	position: relative;
	transition-duration:1.0s;
	opacity: 0;
	right: -50px;
}

.fadeInWrapRight.active{
	opacity: 1;
	right: 0;
}

.fadeInWrapLeft{
	position: relative;
	transition-duration:1.0s;
	opacity: 0;
	left: -50px;
}

.fadeInWrapLeft.active{
	opacity: 1;
	left: 0;
}

header{
	padding: 20px 0 10px !important;
	position: fixed;
	z-index: 100;
	width: 100%;
	transition-duration:1.0s;
	opacity: 1;
	background-color: #FFF;
	height: 85px;
	box-sizing: border-box;
	color: #231815;
}

header .inner{
	width: 1300px;
}

header .logo{
	float: left;
	width: 130px;
}

header .logo{
  margin: 10px 0 0 0;
}

header .menuGroup.PC{
	position: relative;
	display: flex;
	margin-left: 30px;
	margin-top: 5px;
	float: left;
}

header .menuGroup.PC li{
	margin-right: 25px;
}

header .menuGroup.PC li:last-Child{
	margin-right: 0;
}

header .menuGroup.PC li a{
	display: block;
	font-size: 14px;
	color: #231815;
	font-weight: bold;
	text-align: center;
}

header .menuGroup li a .ruby{
	display: block;
	color: #4E4E4E;
	font-size: 10px;
	letter-spacing: 0;
}

header .snsGroup{
	position: relative;
	display: flex;
	margin-left: 25px;
	float: left;
	justify-content: center;
	margin-top: 20px;
}

header .snsGroup:before{
	content: "";
	position: absolute;
	background-image: url("../img/common/title_sns.svg");
	background-repeat: no-repeat;
	width: 60px;
	height: 17px;
	top: -13px;
	left: -3px;
}

header .snsGroup li{
	margin-right: -2px;
}

header .snsGroup li a{
	width: 23px;
	height: 23px;
}

header .snsGroup li:last-Child{
	margin-right: 0;
}

header .snsGroup li a{
	display: block;
	color: #231815;
	font-weight: bold;
}

header .snsGroup:before {
	content: "";
	width: 70px;
	height: 23px;
	top: -21px;
	left: -1px;
}

header .snsGroup li a {
	width: 30px;
	height: 30px;
}

header .btnContact{
	float: left;
	position:relative;
	display: inline-block;
	box-sizing: border-box;
	padding: 10px 5px;
	font-size: 18px;
	letter-spacing: 1px;
	margin-top: 10px;
	font-weight: bold;
	text-align: center;
	line-height: 1.5em;
}

header .btnContact:before{
	content: "tel";
	position: absolute;
	top: -10px;
	left: 0;
	font-size: 14px;
}

header .btnContact.tel {
	padding: 7px 0px;
	font-size: 20px;
	margin-left: 12px;
	pointer-events: none;
	cursor: default;
	letter-spacing: 0;
}

header .btnShop{
	float: right;
	width: 120px;
	height: 55px;
}

header .btnShop.noLink{
	opacity: 1.0;
}

header #menuBlock{
	display: none;
}

header a:hover{
	opacity: 0.8;
}

header img{
	width:100%;
}

main {
	position: relative;
	overflow: hidden;
}

section{
	position: relative;
}

.contentsArea{
	position: relative;
	background-color: #FFF;
	padding: 45px 0 100px;
}

.contentsArea h2{
	display: block;
	font-size: 23px;
	letter-spacing: 3px;
	padding: 5px 5px 0 40px;
	position: relative;
	font-weight: bold;
	margin-bottom: 50px;
	line-height: 1.5em;
}

.contentsArea h2 span{
	font-weight: bold;
}

.contentsArea h2:before{
	content: "";
	position: absolute;
	background-image: url("../img/common/title_border.svg");
	background-repeat: no-repeat;
	width: 100%;
	height: 5px;
	bottom: -5px;
	left: 0;
	background-size: cover;
}

.contentsArea h2:after{
	content: "";
	position: absolute;
	background-image: url("../img/common/icon_title.svg");
	background-repeat: no-repeat;
	width: 19px;
	height: 14px;
	bottom: 7px;
	left: 0;
}

.contentWrap{
	position: relative;
}

.contentsWrap .infoWrap{
	position: relative;
	float: left;
	width: 46%;
}

.contentsWrap .infoWrap02{
	position: relative;
	float: right;
	width: 46%;
}

.contentsWrap .imgWrap{
	position: relative;
	float: right;
	width: 46%;
}

.contentsWrap_type01 .infoWrap{
	position: relative;
	float: right;
	width: 46%;
}

.contentsWrap_type01 .imgWrap{
	position: relative;
	float: left;
	width: 46%;
}

.contentsWrap_type02 .infoWrap{
	position: relative;
	float: left;
	width: 55%;
}

.contentsWrap_type02 .imgWrap{
	position: relative;
	float: right;
	width: 40%;
}

.contentsWrap .imgWrap img{
	width: 100%;
}

/*フッター*/
footer{
	background-color: #636B70 !important;
	padding: 40px 0 90px !important;	
	text-align:center;
	color: #FFF;
}

footer .copy{
	display: block;
	font-size: 13px;
	color: #FFF;
	letter-spacing: 0;
}

footer .logo{
	display: block;
	width: 270px;
	margin: 0 auto 15px;
}

footer .address{
	font-size: 15px;
	letter-spacing: 1px;
	margin-bottom: 20px;
}

footer .address .tel{
	pointer-events: none;
	cursor: default;
	color: #FFF !important;
}

footer img{
	width: 100%;
}

footer .contentsWrap01{
	width: 630px;
	margin: auto;
	margin-bottom: 30px;
}

footer .contentsWrap02{
	padding: 20px 0;
	position: relative;
}

footer .contentsWrap02:before{
	content: "";
	position: absolute;
	background-image: url("../img/common/border_footer.svg");
	background-repeat: no-repeat;
	width: 100%;
	height: 5px;
	top: -10px;
	left: 0;
	background-size: cover;
}


footer .contentsWrap01 .titleWrap{
	width: 40%;
	float: left;
}

footer .contentsWrap01 .textWrap{
	width: 55%;
	float: right;
	font-size: 12px;
	line-height: 1.5em;
	text-align: left;
}

footer .contentsWrap01 .textWrap a{
	display: inline-block;
	color: #FFF;
}

footer .contentsWrap01 h2{
	font-size: 18px;
	font-weight: bold;
	text-align: left;
	letter-spacing: 1px;
}

footer .contentsWrap01 h2 .small{
	font-size: 15px;
	display: block;
	margin-bottom: 10px;
}


footer .contentsWrap02 .copy{
	float: left;
	width: 300px;
	font-size: 12px;
	text-align: left;
}

footer .contentsWrap02 .btnGroup{
	float: left;
}

footer .contentsWrap02 .btnArea{
	float: right;
	display: flex;
}

footer .contentsWrap02 .snsGroup{
	position: relative;
	display: flex;
}

footer .contentsWrap02 .snsGroup li{
	width: 25px;
	height: 25px;
	margin-left: 5px;
}

footer .contentsWrap02 .snsGroup li:last-Child{
	margin-left: 0;
}

footer .contentsWrap02 .btnGroup{
	display: flex;
	justify-content: center;
	align-items: center;	
	margin:0 auto 10px;
	text-align: center;
}

footer .contentsWrap02 .btnGroup a{
	color: #FFF;
	padding: 0 15px;
	font-size: 12px;
	font-weight: bold;
}

/*ページトップボタン　ここから*/
footer #pageTopBtn{
	position: fixed;
	bottom: 60px;
	right: 20px;
	z-index:50;
}

footer #pageTopBtn.notBottom{
	position: fixed !important;
	bottom: 60px !important;
}

footer #pageTopBtn a {
	display: block;
	width: 90px;
	height: 30px;
	z-index: 999;
	text-decoration: none;
}

footer #pageTopBtn a img{
	width: 100%;
}

footer #pageTopBtn a:hover{
	opacity:0.8;
}

/*PCのみ表示コンテンツ*/
.contentsPC{
	display:block !important;
}

.contentsSP{
	display:none !important;
}

/*PCのみ表示コンテンツ*/
.onlyPC{
	display:block !important;
}

/*スマホのみ表示コンテンツ*/
.onlySP{
	display:none !important;
}

a.noLink{
	cursor: default;
	pointer-events: none;
	opacity: 0.5;
}

img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}

/*画面サイズが1650px以下の場合*/
@media screen and (max-width: 1400px) {

}


@media screen and (max-width: 1255px) {
    header .btnShop {
        float: left;
        margin-left: 15px;
    }
    
    header .menuGroup.PC li {
        margin-right: 15px;
    }
}


/*画面サイズが1100px以下の場合*/
@media screen and (max-width: 1100px) {
	
	.inner,
    header .inner {
		width: auto;
		padding: 0 20px;
	}
    
    
	
	header .btnShop {
		float: left;
		margin-left: 15px;
	}	
	
	header .btnContact.tel {
		font-size: 16px;
	}	
	
	header .menuGroup.PC li a {
		font-size: 13px;
	}
	
	header .menuGroup.PC li a .ruby {
		font-size: 9px;
	}
}

@media screen and (max-width: 1055px) {
    header .menuGroup.PC {
        margin-left: 15px;
    }
    
    header .menuGroup.PC li a {
        font-size: 12px;
    }
    
    header .snsGroup {
        margin-left: 15px;
    }
    
    header .menuGroup.PC li {
        margin-right: 13px;
    }
}

/*画面サイズが1000px以下の場合*/
@media screen and (max-width: 1000px) {
	
	/*PCのみ表示コンテンツ*/
	.contentsPC{
		display:none !important;
	}
	
	.contentsSP{
		display:block !important;
	}

	header{
		padding: 20px 0 !important;
	}

	
	header .btnContact.tel {
		display: block;
		pointer-events: auto;
		cursor:auto;
	}
	
	header .logo {
		width: 300px;
		margin: 0;
	}	
	
	header #menuBtn {
		display: block;
		padding: 10px 20px;
		box-sizing: border-box;
		position: absolute;
		right: 10px;
		top: 15px;
		bottom: 0;
		width: 40px;
		height: 40px;
		margin: auto;
	}
	
	header #menuBtn{
	  display: inline-block;
	}
	
	header #menuBtn:after{
		content: "";
		position:absolute;
		width: 40px;
		height: 40px;
		top:0;
		bottom:0;
		right:0;
		margin: auto;
	}
	
	#menuBlock{
		display: block;
	}	
	
	header #menuBtn,
	header #menuBtn span {
	  display: inline-block;
	  transition: all .4s;
	  box-sizing: border-box;
	}
	
	header #menuBtn.open {
		z-index: 1100;
	}
	
	header #menuBlock {
		position: absolute;
		overflow-y: scroll;
		display: block;
		top: -100vh;
		right: 0;
		left: auto;
		height: 100vh;
		width: 50%;
		background-color: rgba(255,255,255,0.9);
		transition: all 0.7s ease-in-out;
		z-index: 1000;
		color: #1A3B49;
		margin: auto;
		padding: 40px 0;
		box-sizing: border-box;
		visibility:visible;
		opacity: 0;
		z-index: 100;
		text-align: center;
	}
	
	header #menuBlock.open {
		opacity: 1;
		top: -20px;
	}	
	
	header #menuBtn span {
	  position: absolute;
	  left: 0;
	  width: 100%;
	  height: 3px;
	  background-color: #231815;
	}
	header #menuBtn span:nth-of-type(1) {
	  top: 0;
	}
	header #menuBtn span:nth-of-type(2) {
	  top: 13px;
	}
	header #menuBtn span:nth-of-type(3) {
	  top: 26px;
	}
	
	header #menuBtn.open span:nth-of-type(1) {
		-webkit-transform: translateY(13px) rotate(-45deg);
		transform: translateY(13px) rotate(-45deg);
		background-color: #231815;
	}
	header #menuBtn.open span:nth-of-type(2) {
	  opacity: 0;
	}
	header #menuBtn.open span:nth-of-type(3) {
		-webkit-transform: translateY(-13px) rotate(45deg);
		transform: translateY(-13px) rotate(45deg);
		background-color: #231815;
	}
	
	header #menuBtn:after{
		content: "";
		position:absolute;
		width: 40px;
		height: 40px;
		top:0;
		left:0;
		right:0;
	}

	header #menuBlock .gnav li{
		margin-bottom: 30px;
		font-size: 16px;
		letter-spacing: 1px;
	}		
	
	header .menuGroup.SP {
		float: none;
		position: relative;
		top: auto;
		width: auto;
		margin: auto;
	}
	
	header .menuGroup.SP a {
		font-weight: bold;
		color: #4C4948 !important;
	}
	
	header .menuGroup.SP a:visited{
		color: #4C4948 !important;
	}
	
	header .menuGroup.SP li{
		font-size: 18px;
		color: #000;
		margin-bottom: 30px;
		text-align: center;
	}
	
	header .btnContact.tel {
		float: none;
		width: auto;
		display: inline-block;
		margin: auto;
		pointer-events: auto;
		cursor: auto;
		font-size: 25px;
	}

	header .snsGroup.SP{
		margin-top: 50px;
		margin-left: 0;
		margin-bottom: 20px;
		float: none;
	}

	header .snsGroup.SP:before {
		content: "";
		width: 120px;
		height: 30px;
		top: -30px;		
		left: 0;
		right: 0;
		margin: auto;
	}
	
	header .snsGroup li {
		margin-right: -5px;
	}

	header .snsGroup.SP li a {
		width: 50px;
		height: 50px;
	}
	
	
	header .btnContact {
		float: none;
		display: block;
		padding: 10px 5px;
		font-size: 18px;
		margin-top: 10px;
	}	

	header .btnShop {
		float: none;
		width: 120px;
		height: 52px;
		display: block;
		margin: 20px auto;
	}	
	
}

/*画面サイズが800px以下の場合*/
@media screen and (max-width: 850px) {

}

/*画面サイズが780px以下の場合*/
@media screen and (max-width: 780px) {

	.contentsWrap {
		margin-bottom: 80px;
	}
	
	.contentsWrap .infoWrap,
	.contentsWrap_type01 .infoWrap {
		width: 55%;
	}
	
	.contentsWrap .infoWrap02{
		width: 40%;
	}
	
	.contentsWrap .imgWrap,
	.contentsWrap_type01 .imgWrap {
		width: 40%;
	}	
	
	.contentsWrap_type02 .infoWrap{
		width: 60%;
	}

	.contentsWrap_type02 .imgWrap{
		width: 35%;
	}
	
	footer .contentsWrap02 .copy {
		float: none;
		width: auto;
		text-align: center;
		display: block;
	}
	
	footer .contentsWrap02 .btnArea {
		float: none;
		display: block;
		margin: auto;
		width: 70%;
	}
	
	footer .contentsWrap02 .snsGroup {
		float: left;
	}
}

/*画面サイズが680px以下*/
@media screen and (max-width: 680px) {
	
	.tel {
		pointer-events: auto!important;
		cursor: auto!important;
	}	
	
	header .logo {
		width: 250px;
	}

	header #menuBlock {
		left: 0;
		height: 100vh;
		width: auto;
	}
	
	.contentsArea {
		padding: 30px 0 50px;
	}
	
	.contentsArea h2 {
		margin-bottom: 30px;
	}	
	
	.contentsArea h2:before {
		content: "";
		bottom: -5px;
	}	
	
	.contentsArea h2:after {
		content: "";
		bottom: 5px;
	}	
	
	/*フッター*/
	footer{
		padding:30px 20px;
	}
	
	footer #pageTopBtn {
		bottom: 40px;
	}
	
	footer #pageTopBtn a {
		width: 100px;
	}
	
	footer .btnWrap {
		margin-left: 0;
	}
	
	footer .contentsWrap01 {
		width: auto;
	}
	
	footer #pageTopBtn a {
		width: 80px;
	}
	
	footer .contentsWrap02 .btnArea {
		margin: auto;
		width: 80%;
	}
	
	/*PCのみ表示コンテンツ*/
	.onlyPC{
		display:none !important;
	}
	
	.onlySP{
		display:block !important;
	}
	
	/*改行クラス（PC）*/
	.breakLinePc{
		display:inline;
	}
	
	/*改行クラス（SP）*/
	.breakLineSp{
		display:block;
	}
	
	.breakLineSp01{
		display:inline;
	}
}

@media screen and (max-width:600px) {
	
	header .btnShop {
		width: 200px;
	}
	
	.contentsArea h2{
		font-size: 21px;
		letter-spacing: 2px;
		padding: 5px 5px 5px 30px;
	}	
	
	.contentsWrap {
		margin-bottom: 50px;
	}
	
	.contentsWrap .infoWrap,
	.contentsWrap .infoWrap02{
		float: none;
		width: auto;
		margin-bottom: 20px;
	}

	.contentsWrap .imgWrap{
		float: none;
		width: auto;
	}

	.contentsWrap_type01 .infoWrap{
		float: none;
		width: auto;
		margin-bottom: 20px;
	}

	.contentsWrap_type01 .imgWrap{
		float: none;
		width: auto;
	}

	.contentsWrap_type02 .infoWrap{
		float: none;
		width: auto;
	}

	.contentsWrap_type02 .imgWrap{
		float: none;
		width: auto;
	}
	
	footer {
		padding: 40px 20px ;
	}
	
	footer .contentsWrap01 .titleWrap {
		width: auto;
		float: none;
		margin-bottom: 20px;
	}	
	
	footer .contentsWrap01 .textWrap {
		width: auto;
		float: none;
		text-align: left;
	}
	
	footer .contentsWrap02 .copy{
		float: none;
		width: auto;
		text-align: center;
	}

	footer .contentsWrap02 .btnGroup{
		float: left;
	}

	footer .contentsWrap02 .btnArea{
		float: none;
		width: auto;
	}
	
	footer .contentsWrap02 .btnGroup a {
		padding: 0 5px;
	}
	
	footer .contentsWrap02 .snsGroup {
		float: right;
	}	

	footer .contentsWrap02 .snsGroup li:first-child {
		width: 35px;
		height: 35px;
		margin-left: 0;
	}	
		
	footer .contentsWrap02 .btnGroup {
		float: none;
		margin-bottom: 20px;
	}	
	
	footer .contentsWrap02 .snsGroup {
		float: none;
		justify-content: center;
		margin-bottom: 20px;
	}	
	
	footer .contentsWrap02 .snsGroup li {
		width: 35px;
		height: 35px;
		margin-left: 10px;
	}	
	
	/*改行クラス（SP）*/
	.breakLineSp01{
		display:block;
	}
}

@media screen and (max-width:480px) {

}

/*回り込み解除クラス*/
.clearfix:after {
	content: "";
	clear: both;
	display: block;
}

.btnWrap:hover{
	filter:alpha(opacity=80);
	-moz-opacity: 0.8;
	opacity: 0.8;
}