@charset "utf-8";
/* CSS Document */
#wrapper{overflow: hidden;}

/*=====================================================================================
***************************************************************************************

　　ローディング画面
		
***************************************************************************************
=====================================================================================*/
        .loading-screen {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: linear-gradient(135deg, #f5f0f0 0%, #faf7f7 50%, #f0f4f0 100%);
            z-index: 9999;
            display: flex;
            justify-content: center;
            align-items: center;
            opacity: 1;
            transition: opacity 1s ease-out, visibility 1s ease-out;
        }

        .loading-screen.fade-out {
            opacity: 0;
            visibility: hidden;
        }

        .loading-container {
            text-align: center;
            position: relative;
            z-index: 10;
        }

        .logo-container {
            position: relative;
            width: 200px;
            height: 200px;
            margin: 0 auto 30px;
        }

        .logo-image {
            width: 100%;
            height: 100%;
            object-fit: contain;
            animation: logoFade 2s ease-in-out infinite;
        }

        @keyframes logoFade {
            0%, 100% {
                opacity: 1;
                transform: scale(1);
            }
            50% {
                opacity: 0.7;
                transform: scale(1.05);
            }
        }

        .loading-text {
            color: #8b7070;
            font-size: 16px;
            letter-spacing: 3px;
            font-weight: 300;
            animation: fadeInOut 2s ease-in-out infinite;
        }

        @keyframes fadeInOut {
            0%, 100% {
                opacity: 0.5;
            }
            50% {
                opacity: 1;
            }
        }

        .progress-bar {
            width: 200px;
            height: 2px;
            background: rgba(139, 112, 112, 0.1);
            margin: 20px auto 0;
            border-radius: 2px;
            overflow: hidden;
        }

        .progress-fill {
            height: 100%;
            background: linear-gradient(90deg, #ff9eb5 0%, #ffc6d3 100%);
            animation: progress 3s ease-in-out infinite;
        }

        @keyframes progress {
            0% {
                width: 0%;
            }
            100% {
                width: 100%;
            }
        }

        .floating-petals {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            pointer-events: none;
            z-index: 1;
        }

        .floating-petal {
            position: absolute;
            width: 40px;
            height: 40px;
            background: linear-gradient(135deg, #ffc6d3 0%, #ffe6ed 100%);
            border-radius: 50% 50% 50% 0;
            opacity: 0;
            animation: float 6s ease-in-out infinite;
        }

        .floating-petal:nth-child(1) {
            left: 10%;
            animation-delay: 0s;
        }

        .floating-petal:nth-child(2) {
            left: 30%;
            animation-delay: 1s;
        }

        .floating-petal:nth-child(3) {
            left: 50%;
            animation-delay: 2s;
        }

        .floating-petal:nth-child(4) {
            left: 70%;
            animation-delay: 0.5s;
        }

        .floating-petal:nth-child(5) {
            left: 90%;
            animation-delay: 1.5s;
        }

        @keyframes float {
            0% {
                top: -10%;
                opacity: 0;
                transform: translateX(0) rotate(0deg);
            }
            10% {
                opacity: 0.6;
            }
            90% {
                opacity: 0.4;
            }
            100% {
                top: 110%;
                opacity: 0;
                transform: translateX(50px) rotate(360deg);
            }
        }

/*=====================================================================================
***************************************************************************************

　　MV
		
***************************************************************************************
=====================================================================================*/
#mv{
	padding: 165px 0 30px; /*header70＋*/
	background: #ce4186;
}
#mv img{width: 100%;}
#mv::after{
	content: "";
	display: block;
	width: 90%;
	height: 1px;
	background: #e5aac3;
	margin: 50px auto 0;
}

@media screen and (max-width: 400px){
	#mv{padding: 130px 0 30px;}
}

/*=====================================================================================
***************************************************************************************

　　お知らせ
		
***************************************************************************************
=====================================================================================*/
#news{
	color: #FFFFFF;
	background: #ce4186;
	padding-bottom: 80px;
}
#news h2{
	letter-spacing:0.1em; 
	font-size: 38px; 
	margin-bottom: 5px;
	line-height: 1;
}
#news > p{font-size: 13px; line-height: 1;}

#news > a{
	text-align: right;
	font-weight: 900;
	font-size: 14px;
	display: block;
	text-decoration: none;
	color: #FFFFFF;
	width: 80%;
	margin: 20px auto 10px;
	line-height: 1
}

#news ul{
	width: 80%;
	margin: 0 auto;
	text-align: left;
}

#news ul li{
	background: #FFFFFF;
	margin-bottom: 2px;
	font-size: 14px;
}

#news ul li a{
	padding: 10px;
	display: flex;
	text-decoration: none;
	position: relative;
	align-items: flex-start;
}
#news ul li a span{
	display: block;
	padding-right: 10px;
	line-height: 1.2;
	font-size: 13px;
}
#news ul li a p{
	padding-right: 20px;
	line-height: 1.2;
}
#news ul li a::after{
	content: ">";
	position: absolute;
	color: #ce4186;
	font-weight: 900;
	font-size: 14px;
	right: 10px;
	top: 50%;
	transform: translateY(-50%);
}

@media screen and (max-width: 400px){
	#news{padding-bottom: 50px;}
}



/*=====================================================================================
***************************************************************************************

　　開催概要
		
***************************************************************************************
=====================================================================================*/
.contents_inbox{
  background: 
    url("../img/contents_bg.png") top center no-repeat,
    linear-gradient(to bottom, #ce4186 0%, #ce4186 50%, #ffffff 50%, #ffffff 100%);
  background-size: 100%, 100%;
  background-color: #ce4186;
  padding: 120px 20px 110px;
}

.contents_inbox h2{
	font-size: 38px;
	line-height: 1;
	color: #ce4186;
	letter-spacing: 0.1em;
}

.contents_inbox .min_t{
	font-size: 13px;
	line-height: 1;
	color: #ce4186;
	letter-spacing: 0.1em;
	margin-top: 5px;
	margin-bottom: 20px;
}

.contents_inbox .btn_w{
	display: block;
	font-size: 13px;
	line-height: 1;
	color: #ce4186;
	padding: 10px;
	background: #eae7de;
	font-weight: bold;
	text-decoration: none;
	border-radius: 20px;
	margin-bottom: 10px;
}

.contents_inbox .btn_p{
	display: block;
	font-size: 13px;
	line-height: 1;
	color: #FFFFFF;
	padding: 10px;
	background: #ce4186;
	font-weight: bold;
	text-decoration: none;
	border-radius: 20px;
	margin-top: 20px;
}


#about{
	background: #FFFFFF;
	padding: 30px 40px 20px;
	position: relative;
}


#about .main_txt{
	/*display: block;*/
	margin:20px auto 25px;
	width: 220px;
}
#about .main_txt.lang-en{
	width: 100%; 
	position: relative; 
	z-index: 2;
}

#about .txt{
	font-size: 17px;
	line-height: 1.5;
	font-weight: bold;
	color: #000000;
	text-align: left;
	margin-bottom: 20px;
}




#about .btn_txt{
	font-size: 14px;
	color: #000000;
	display: block;
	font-weight: bold;
}
#about .btn_txt span{color: #ce4186;}


#about .parts01{
	position: absolute;
	top: 70px;
	left: -20px;
}

#about .parts02{
	position: absolute;
	bottom: 120px;
	right: -20px;
}

@media screen and (max-width: 400px){
	#about .txt{font-size: 16px;}
	#about{padding: 30px 20px 20px;}
	#content .parts03{display: none!important;}
	.contents_inbox{padding-bottom: 70px;}
}



/*=====================================================================================
***************************************************************************************

　　イベント内容
		
***************************************************************************************
=====================================================================================*/
#content{
	background: #eae7de;
	padding: 40px 40px 60px;
	position: relative;
}

#content .main_txt{
	/*display: block;*/
	margin:25px auto;
}

#content .btn_w{background: #FFFFFF;}
#content .btn_w.half{width: 48%; display: inline-block;}
#content .btn_w.half{margin-right: 1%;}

#content .parts01{
	position: absolute;
	top: 0;
	left: -20px;
}

#content .parts02{
	position: absolute;
	top: -30px;
	right: -20px;
}

#content .parts03{
	position: absolute;
	bottom: -40px;
	left: 10px;
}


/*=====================================================================================
***************************************************************************************

　　アクセス
		
***************************************************************************************
=====================================================================================*/
#access{padding: 0 20px 20px;}
#access h2{
	font-size: 38px;
	line-height: 1;
	color: #ce4186;
	letter-spacing: 0.1em;
}

#access .min_t{
	font-size: 13px;
	line-height: 1;
	color: #ce4186;
	letter-spacing: 0.1em;
	margin-top: 5px;
}

#access .map {
    position: relative;
    width: 100%;
    padding-top: 56.25%;
    height: 0;
	margin: 20px auto; 
}
#access .map iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

#access .txt{
	text-align: left;
	font-size: 13px;
	line-height: 1.3;
}
#access .txt span{color: #ce4286;}

#access .btn_p{
	display: block;
	font-size: 13px;
	line-height: 1;
	color: #FFFFFF;
	padding: 10px;
	background: #ce4186;
	font-weight: bold;
	text-decoration: none;
	border-radius: 20px;
	width: 80%;
	margin: 20px auto 0;
}

#access i{
	font-style: normal;
	color: #979797;
}




/*=====================================================================================
***************************************************************************************

　　メンバーシップ
		
***************************************************************************************
=====================================================================================*/
#membership{
	padding: 50px 20px 60px;
	background: #eae7de;
}
#membership h2{
	font-size: 38px;
	line-height: 1;
	color: #ce4186;
	letter-spacing: 0.1em;
}

#membership p.min_t{
	font-size: 13px;
	line-height: 1;
	color: #ce4186;
	letter-spacing: 0.1em;
	margin-top: 5px;
}


#membership .box{
	background: #faf5ef;
	margin-top: 30px;
	text-align: left;
	padding-bottom: 20px;
}

#membership h3{
	background: #ce4186;
	color: #FFFFFF;
	text-align: center;
	font-size: 16px;
	padding: 10px;
	line-height: 1;
}

#membership .box p{
	padding: 10px 40px 10px;
	font-size: 13px;
}

#membership .btn_p{
	display: block;
	font-size: 13px;
	line-height: 1.3;
	color: #FFFFFF;
	padding: 10px;
	background: #ce4186;
	font-weight: bold;
	text-decoration: none;
	border-radius: 40px;
	width: 80%;
	margin: 0 auto;
	text-align: center;
}

#membership ul{
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	margin-top: 20px;
}

#membership ul li{width: 49%; margin-bottom: 10px;}
#membership ul li img{width: 100%;}



.syu_box{
	margin-top: 50px;
	text-align: left;
}
.syu_box h4{
	line-height: 1;
	padding: 10px;
	border-bottom: 1px solid #ce4186;
	color: #ce4186;
	font-size: 20px;
}

.syu_box p{
	margin-top: 20px;
	line-height: 1.2;
	padding: 0 10px;
}


