@charset "utf-8";

*{
	margin:0;
	padding:0;
	box-sizing: border-box;	
}

html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, section, article, aside, hgroup, header, footer, nav, dialog, figure, menu, video, audio, mark, time, canvas, details {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 100%;
	vertical-align:baseline;
	background: transparent;
}

article, aside, canvas, details, figcaption, figure, header,
footer, hgroup, menu, nav, section, summary {
display: block;
}

@media only screen and 
(-webkit-min-device-pixel-ratio: 2),
(min-resolution: 2dppx) {
  .hoge {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
  }
}

ol, ul {
	list-style: none;
}

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

caption,th {
	text-align: left;
	font-weight:normal;
}

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

object,
embed {
	vertical-align: top;
}

h1,h2,h3,h4,h5,h6,textarea {
	font-size: 100%;
}

img,abbr,acronym,fieldset {
	border: 0;
}

img{
	max-width: 100%;
	height: auto;
	line-height: 1;
}

table {
	font-size:100%;
	border-collapse: collapse;
	border-spacing: 0;
	vertical-align:top;
}

h1,h2,h3,h4,h5,th{
	font-weight: normal;
}


/* For modern browsers */
.cf:before,
.cf:after,
.contact_det li:before,
.contact_det li:after,
.contact_det-btn li:before,
.contact_det-btn li:after {
    content:"";
    display:table;
}
 
.cf:after,
.contact_det li:after,
.contact_det-btn li:after {
    clear:both;
}

a:link , a:active , a:visited {
	color: inherit;
	text-decoration:none;
	transition: all 0.3s ease 0s;
}

/*--- リンクカラー */
a:hover {
	text-decoration: none;
	opacity: .6;
}

a {
	outline: 0;
	transition: .3s ease;
}

a.btn{
	padding: 20px 50px;
	text-align: center;
	line-height: 1;
	white-space: nowrap;
	position: relative;
	display: table;
	background: #4f2866;
	font-size: 15px;
	color: #FFF;
	z-index: 2;
	transition: all .3s ease;
	position: relative;
	margin: 50px auto 0;
	min-width: 325px;
}

a.btn span{
	margin-left: 40px;
}


a.btn_wt{
	padding: 20px 50px;
	text-align: center;
	line-height: 1;
	white-space: nowrap;
	position: relative;
	display: table;
	background: #FFF;
	border: 2px solid #4f2866;
	font-size: 15px;
	font-weight: bold;
	color: #4f2866;
	z-index: 2;
	transition: all .3s ease;
	position: relative;
	margin: 50px auto 0;
	min-width: 325px;
}

.clm-wrap{
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}





/* -----------------------------------------------------------

	ページ共通設定
	
----------------------------------------------------------- */


html, body {
	width: 100%;
	color: #4f2866;
	background: #eeeeee;
	font-size: 14px;
	line-height: 2;
	letter-spacing: 0.1em;
	font-feature-settings: "palt";
	overflow-x: hidden;
	font-family: tbudgothic-std, sans-serif;
	font-weight: 400;
	font-style: normal;
}

html {
    visibility: hidden;
}

html.wf-active,
html.loading-delay {
    visibility: visible;
}

body {
    animation: fadeIn .3s ease 0s 1 forwards;
    -webkit-animation: fadeIn .3s ease 0s 1 forwards;
}

@keyframes fadeIn {
    0% {opacity: 0}
    100% {opacity: 1}
}

@-webkit-keyframes fadeIn {
    0% {opacity: 0}
    100% {opacity: 1}
}

.loading{
	position: fixed;
	top: 0;
	left: 0;
	width: 100vw;
	height: 100vh;
	background: #F9F9F9;
	z-index: 9999;
	transition: .4s ease-in;
}

.load .loading{
	opacity: 0;
	pointer-events: none;
}

.loading img{
	opacity: 0;
	display: block;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50% , -50%);
    animation: fadeIn .3s ease 0s 1 forwards;
    -webkit-animation: fadeIn .3s ease 0s 1 forwards;
}

.fadeup{
	opacity: 0;
    transition: opacity .6s linear,transform .8s cubic-bezier(.215,.61,.355,1),-webkit-transform .8s cubic-bezier(.215,.61,.355,1);
	transform:translateY(50px);
}

.fadeup.view{
	opacity: 1;
	transform:translateY(0);
}



/* ----------------------------------------------------------------

　　open_menu

----------------------------------------------------------------- */

.open-menu-btn-wrap{
	display: block;
	position: fixed;
	z-index: 100;
	top: 0;
	right: 0;
	width: 79px;
	height: 79px;
	padding: 34px 32px;
	background: #3d2749;
	cursor: pointer;
	z-index: 999;
}

.open-menu-btn{
	display: block;
	width: 100%;
	height: 100%;
	position: relative;
}

.open-menu-btn span {
	display: block;
	background: #FFF;
	width: 100%;
	height: 2px;
	position: absolute;
	transition: all .4s ease;
}

.open-menu-btn span:nth-child(1) {
	top: 0;
}
.open-menu-btn span:nth-child(2) {
	bottom: 0;
}

.open .open-menu-btn span:nth-child(1) {
	top: 50%;
	transform: translateY(-50%) rotate(45deg);
}

.open .open-menu-btn span:nth-child(2) {
	bottom: 50%;
	transform: translateY(50%) rotate(-45deg);
}

.open-menu-wrap{
	width: 100%;
	height: 100vh;
	position: fixed;
	top: 0;
	z-index: 998;
	padding: 80px 0 0;
	pointer-events: none;
	opacity: 0;
    transition: .5s ease-in-out;
    overflow-y: scroll;
	color: #FFF;
	background: rgba(79,40,102,.9);
}

.open .open-menu-wrap{
	opacity: 1;
	pointer-events: inherit;
}

.open-menu-wrap .inner{
	width: 90%;
	max-width: 800px;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50% , -50%);
}

.open-menu-wrap .inner .menu{
	width: 48%;
	margin-bottom: 40px;
}

.open-menu-wrap .inner .menu h2{
	text-align: left;
	font-size: 42px;
	line-height: 1.4;
}

.open-menu-wrap .inner .menu h2 span{
	font-size: 14px;
}

.open-menu-wrap li{
	color: #EEE;
	margin: 5px 0;
	display: block;
}

.open-menu-wrap .menu li:before{
	content: ">";
	display: inline-block;
	margin-right: 5px;
}

.side-sns-wrap{
	position: fixed;
	width: 125px;
	height: 100vh;
	top: 0;
	left: 0;
	z-index: 999;
}

.open .side-sns-wrap .side-sns-nav{
	opacity: 1;
	pointer-events: inherit;
}

.side-sns-wrap .inner{
	width: 100%;
	height: 100%;
	position: relative;	
}


@media (max-width: 800px) {

.open-menu-btn-wrap{
    width: 60px;
    height: 60px;
    padding: 25px 20px;
}

.open-menu-wrap{
	padding: 80px 0;
}

.open-menu-wrap .inner{
	position: static;
	transform: none;
	margin: 0 auto;
}

.open-menu-wrap .inner .menu{
	width: 100%;
	margin-bottom: 20px;
}

.open-menu-wrap .inner .menu h2{
	text-align: center;
	font-size: 26px;
}

.open-menu-wrap .inner .menu ul{
	display: table;
	margin: 0 auto;
}

.open-menu-wrap .side-sns-wrap{
	position: static;
	width: auto;
	height: auto;
}

.open-menu-wrap .side-sns-nav{
	position: static;
	transform: none;
	margin: 0 auto 60px;
}

.open-menu-wrap .side-sns-nav li{
	display: inline-block;
	margin: 0 10px;
}

.open-menu-wrap .side-sns-nav li img{
	height: 25px;
	width: auto;
}


}


.shop-btn{
	display: block;
	position: fixed;
	z-index: 100;
	top: 15px;
	right: 95px;
	width: 143px;
	height: 51px;
	border: 1px solid #3d2749;
	background:rgba(255,255,255,0.3);
	cursor: pointer;
	z-index: 999;
}
.shop-btn:hover{
	border: 1px solid #fff;	
}
.shop-btn a{
	display:block;
	width:100%;
	text-align:center;
	color:#3d2749;
	font-size:12px;
padding:13px 0;	
}
.shop-btn a:hover{
	background-color:#3d2749;	
	color:#fff;
}
.shop-btnsp{
	display: none;
}
@media (max-width: 800px) {
.shop-btn{
	display: none;
}
.shop-btnsp{
	display: block;
	width: 163px;
	margin:0 auto;
	height: 51px;
	border: 1px solid #fff;
	cursor: pointer;
	margin-bottom:60px;
}
.shop-btnsp a{
	display:block;
	width:100%;
	text-align:center;
	color:#fff;
	font-size:12px;
padding:13px 0;	
}
}