@charset "utf-8";

/*		Contents
---------------------------------------------------------------------------
	common
	header（PC）
	header（SP）
	contents
	main
	footer
	EC-CUBE
------------------------------------------------------------------------ */


/* ========================================================================
	common
======================================================================== */
@media print, screen and (min-width:768px){
body{
	min-width:1080px;
}

.sp{
	display:none;
}

.inner{
	position:relative;
	width:980px;
	margin:0 auto;
}

a img, .fade, .fades a{ transition-duration:0.2s; }
a:hover img, .fade:hover, .fades a:hover{ opacity:0.8; }
.fade:hover img, .fades a:hover img{ opacity:1; }
}

@media screen and (max-width:767px){
body{
	min-width:320px;
}

.pc{
	display:none;
}

iframe{
	width:100%;
	height:200px;
}
}


@media print, screen and (min-width:768px){
/* ========================================================================
	header（PC）
======================================================================== */
header{
	position:sticky;
	top:0;
	background:#ffffff;
	z-index:10;
}

header h1,
header .logo{
	display:inline-block;
	padding:20px 0 40px 0;
}

header h1 a.fade,
header .logo a.fade{
	display:block;
	text-decoration:none;
}

header h1 span,
header .logo span{
	display:block;
	margin:0 0 8px 0;
	padding:6px 0 4px 0;
	background:#000000;
	text-align:center;
	font-size:1.2rem;
	color:#ffffff;
	line-height:1;
	letter-spacing:0.14em;
}


/* ----------------------------------------
	menu
---------------------------------------- */
#menu .menu{
	display:block !important;
}

#menu .btn,
#menu .gnavi .open{
	display:none;
}


/* gnavi
---------------------------------------- */
#menu .gnavi{
	display:flex;
	position:absolute;
	top:42px;
	right:194px;
}

#menu .gnavi > li{
	padding:0 10px;
}
#menu .gnavi > li:last-child{
	margin:0 0 0 30px;
	padding-left:34px;
	background:url(../../img/common/icon_contact.png) no-repeat left center;
	background-size:24px 16px;
}

#menu .gnavi > li > a{
	display:block;
	position:relative;
	padding:20px 0;
	font-size:1.5rem;
	font-weight:300;
	line-height:2.3rem;
	letter-spacing:0.15em;
	text-decoration:none;
}

#menu .gnavi > li > a::before{
	content:"";
	position:absolute;
	bottom:18px;
	left:0;
	width:100%;
	height:2px;
	background:#ffffff;
	transition-duration:0.2s;
}
#menu .gnavi > li > a:hover::before{ background:#6b6b6c; }



/* dropdown
---------------------------------------- */
#menu .dropdown{
	display:none;
	position:fixed;
	top:140px;
	left:0;
	width:100%;
	height:100%;
	background:#ffffff;
	border-top:1px solid #1b1c1d;
}

#menu .dropdown > ul{
	position:relative;
	width:980px;
	margin:40px auto 0;
	z-index:1;
}

#menu .dropdown ul ul{
	display:none;
	position:absolute;
	top:0;
	left:260px;
}
#menu .dropdown .current + ul{ display:block; }

#menu .dropdown ul ul a{
	display:inline-block;
	line-height:4.6rem;
	text-decoration:none;
}
#menu .dropdown ul ul a:hover{ text-decoration:underline; }


/* ---------- switch ---------- */
#menu .dropdown .switch{
	display:block;
	position:relative;
	width:220px;
	padding:10px 30px 10px 20px;
	font-size:1.6rem;
	line-height:2.6rem;
	text-decoration:none;
	transition-duration:0.2s;
	cursor:pointer;
}

#menu .dropdown .switch::before{
	content:"";
	opacity:0;
	position:absolute;
	top:0;
	right:20px;
	width:6px;
	height:100%;
	background:url(../../img/common/arrow_01.png) no-repeat center;
	background-size:6px 10px;
	transition-duration:0.2s;
}

#menu .dropdown .switch:hover,
#menu .dropdown .current{
	background:#f3f1ed;
}
#menu .dropdown .switch:hover::before,
#menu .dropdown .current::before{
	opacity:1;
}


/* ---------- close ---------- */
#menu .dropdown .close{
	position:absolute;
	top:12px;
	left:50%;
	width:490px;
	text-align:right;
}

#menu .dropdown .close span{
	display:inline-block;
	position:relative;
	padding:0 0 0 28px;
	background:url(../../img/common/icon_close.png) no-repeat left center;
	background-size:18px;
	vertical-align:top;
	line-height:1.8rem;
	cursor:pointer;
}


/* navi
---------------------------------------- */
#menu .navi{
	display:flex;
	position:absolute;
	top:62px;
	right:0;
}

#menu .navi li{
	padding:0 0 0 40px;
	line-height:1;
}


/* ---------- search ---------- */
#menu .navi .search > img{
	cursor:pointer;
}

#menu .navi .search .box{
	display:none;
	position:absolute;
	top:37px;
	right:-10px;
}

#menu .navi .search input{
	width:184px;
	height:30px;
	padding:0 40px 0 10px;
	border:1px solid #cbcbcb;
	border-radius:0;
	font-size:1.2rem;
}

#menu .navi .search button{
	position:absolute;
	top:5px;
	right:10px;
}

#menu .navi .search button img{
	width:auto;
	height:20px;
}
}


@media screen and (max-width:767px){
/* ========================================================================
	header（SP）
======================================================================== */
header{
	position:fixed;
	top:0;
	left:0;
	width:100%;
	background:#ffffff;
	border-bottom:1px solid #c6c6c6;
	z-index:10;
}

header h1,
header .logo{
	display:inline-block;
	padding:10px 15px;
}

header h1 a.fade,
header .logo a.fade{
	display:block;
	text-decoration:none;
}

header h1 span,
header .logo span{
	display:block;
	margin:0 0 8px 0;
	padding:6px 0 4px 0;
	background:#000000;
	text-align:center;
	font-size:1.2rem;
	color:#ffffff;
	line-height:1;
	letter-spacing:0.14em;
}


/* ----------------------------------------
	menu
---------------------------------------- */
#menu .btn{
	position:absolute;
	top:40px;
	right:15px;
	cursor:pointer;
}

#menu .menu{
	display:none;
	overflow-y:scroll;
	position:fixed;
	top:101px;
	left:0;
	width:100%;
	height:100%;
	padding:0 0 181px 0;
	background:#ffffff;
}


/* gnavi
---------------------------------------- */
#menu .gnavi{
	padding:0 0 25px 0;
	text-align:center;
}

#menu .gnavi a{
	display:block;
	border-bottom:1px solid #c6c6c6;
	font-size:1.5rem;
	font-weight:300;
	line-height:4.5rem;
	letter-spacing:0.15em;
	text-decoration:none;
}

#menu .gnavi > li{
	position:relative;
}

#menu .gnavi > li:last-child a::before{
	content:"";
	display:inline-block;
	width:24px;
	height:16px;
	margin:0 10px 0 0;
	vertical-align:text-top;
	background:url(../../img/common/icon_contact.png) no-repeat left center;
	background-size:24px 16px;
}


/* ---------- open ---------- */
#menu .gnavi .open{
	position:absolute;
	top:0;
	right:0;
	width:45px;
	height:45px;
	line-height:4.5rem;
	cursor:pointer;
}

#menu .gnavi .open::before{
	content:"＋";
	position:absolute;
	top:0;
	right:0;
	width:45px;
	height:45px;
	background:#ffffff;
	border-left:1px solid #c6c6c6;
}
#menu .gnavi .close::before{ content:"－"; }


/* ---------- dropdown ---------- */
#menu .gnavi .dropdown,
#menu .gnavi .dropdown .switch,
#menu .gnavi .dropdown .close{
	display:none;
}

#menu .gnavi .dropdown a{
	border:none;
	font-size:1.3rem;
	line-height:3.4rem;
}

#menu .gnavi .dropdown > ul > li{
	padding:6px 0;
	border-bottom:1px solid #c6c6c6;
}


/* navi
---------------------------------------- */
#menu .navi{
	display:flex;
	justify-content:center;
	position:relative;
}

#menu .navi li{
	padding:0 20px;
	line-height:1;
}


/* ---------- search ---------- */
#menu .navi .search{
	position:absolute;
	bottom:-60px;
	left:0;
	width:100%;
}

#menu .navi .search > img{
	display:none;
}

#menu .navi .search .box{
	position:relative;
}

#menu .navi .search input{
	width:100%;
	height:40px;
	padding:0 40px 0 10px;
	background:#ffffff;
	border:1px solid #cbcbcb;
	border-radius:0;
	font-size:1.2rem;
	-webkit-appearance:none;
}

#menu .navi .search button{
	position:absolute;
	top:10px;
	right:10px;
}

#menu .navi .search button img{
	width:auto;
	height:20px;
}
}


/* ========================================================================
	contents
======================================================================== */
#contents{
	overflow:hidden;
}

@media screen and (max-width:767px){
#contents{
	padding:101px 0 0 0;
}
}


/* ----------------------------------------
	title
---------------------------------------- */
#title{
	margin:0 0 10px 0;
	background:#f9f9f9;
}

#title h1{
	width:980px;
	margin:0 auto;
	padding:55px 0;
	font-size:3.0rem;
	line-height:5.0rem;
	letter-spacing:0.15em;
}

@media screen and (max-width:767px){
#title h1{
	width:auto;
	padding:25px 15px;
	font-size:2.0rem;
	line-height:3.0rem;
}
}


/* ========================================================================
	main
======================================================================== */
main p,
main table{
	margin:0 0 40px 0;
}

main table th{
	text-align:left;
}

@media screen and (max-width:767px){
main{
	padding:0 15px;
}

main p,
main table{
	margin:0 0 20px 0;
}
}


/* ========================================================================
	footer
======================================================================== */
footer{
	padding:30px 0 20px 0;
	background:#6b6b6c;
	color:#E8E8E8;
}

footer .logo{
	float:left;
	padding:0 20px 0 0;
}

footer .logo a{
	display:block;
	text-decoration:none;
}

footer .logo span{
	display:block;
	margin:0 0 8px 0;
	padding:4px 0 2px 0;
	background:#ececec;
	text-align:center;
	font-size:1.0rem;
	line-height:1;
}

footer address{
	margin:22px 0 0 0;
	font-size:1.2rem;
	font-weight:300;
	line-height:1.8rem;
	letter-spacing:0.05em;
}

footer small{
	display:block;
	padding:40px 0 0 0;
	text-align:right;
	font-size:1.0rem;
	font-weight:300;
	line-height:1;
	letter-spacing:0.05em;
}

@media screen and (max-width:767px){
footer{
	padding:30px 15px 20px;
	text-align:center;
}

footer .logo{
	float:none;
	padding:0 0 20px 0;
}

footer .logo a{
	display:inline-block;
	text-decoration:none;
}

footer address{
	margin:0 0 30px 0;
}

footer small{
	padding:0;
	text-align:center;
}
}


/* ----------------------------------------
	navi
---------------------------------------- */
footer .navi{
	display:flex;
	padding:0 0 38px 0;
}

footer .navi li{
	position:relative;
	margin:0 50px 0 0;
	padding:0 50px 0 0;
}

footer .navi li::before{
	content:"";
	position:absolute;
	top:0;
	right:0;
	width:1px;
	height:30px;
	background:#E8E8E8;
}
footer .navi li:last-child::before{ content:none; }

footer .navi a{
	display:block;
	padding:0 0 0 14px;
	background:url(../../img/common/arrow_02.png) no-repeat left center;
	background-size:6px 10px;
	font-weight:300;
	color:#E8E8E8;
	line-height:3.0rem;
	text-decoration:none;
}
footer .navi a:hover{ text-decoration:underline; }

@media screen and (max-width:767px){
footer .navi{
	display:inline-block;
	padding:0 0 20px 0;
	text-align:left;
}

footer .navi li{
	margin:0;
	padding:0;
}
footer .navi li::before{ content:none; }

footer .navi a{
	line-height:3.3rem;
}
}


/* ----------------------------------------
	sns
---------------------------------------- */
footer .sns{
	display:flex;
	position:absolute;
	top:0;
	right:0;
}

footer .sns li{
	padding:5px 0 0 35px;
	line-height:1;
}

@media screen and (max-width:767px){
footer .sns{
	justify-content:center;
	position:static;
	padding:0 0 22px 0;
}

footer .sns li{
	padding:0 15px;
}
}


/* ----------------------------------------
	official
---------------------------------------- */
footer .official{
	position:absolute;
	top:88px;
	right:0;
}

footer .official a{
	display:block;
	width:200px;
	border-bottom:1px solid #E8E8E8;
	font-size:1.8rem;
	color:#E8E8E8;
	line-height:3.5rem;
	letter-spacing:0.05em;
	text-decoration:none;
}

footer .official a::before{
	content:"";
	position:absolute;
	top:0;
	right:5px;
	width:6px;
	height:100%;
	background:url(../../img/common/arrow_02.png) no-repeat center;
	background-size:100%;
}

@media screen and (max-width:767px){
footer .official{
	display:inline-block;
	position:static;
	padding:0 0 30px 0;
	text-align:left;
}

footer .official a{
	position:relative;
}
}


/* ========================================================================
	EC-CUBE
======================================================================== */

/* --------------------------------------------------
	ec-blockBtn--action / ec-blockBtn--cancel
-------------------------------------------------- */
.ec-blockBtn,
.ec-blockBtn--action,
.ec-blockBtn--cancel,
a.ec-blockBtn--action,
a.ec-blockBtn--cancel{
	display:block;
	width:100%;
	margin:20px 0;
	padding:13px 30px;
	background:#1b1c1d;
	text-align:center;
	font-family:'UtsukushiMincho', serif;
	font-size:1.6rem;
	color:#ffffff;
	line-height:2.4rem;
	text-decoration:none;
	transition-duration:0.2s;
}
.ec-blockBtn--cancel,
a.ec-blockBtn--cancel{ background:#999999; }
.ec-blockBtn:hover,
.ec-blockBtn--action:hover,
.ec-blockBtn--cancel:hover,
a.ec-blockBtn--action:hover,
a.ec-blockBtn--cancel:hover{ opacity:0.8; }
