@charset "utf-8";


/*==================================================
  Common
==================================================*/
section{
	width: 100%;
	margin: 0;
	padding: 0;
	position: relative;
	z-index: 1;
}


section h2{
	background-color: #f5f5f5;
	font-weight: 800;
	font-size: 3.4rem;
	line-height: 80px;
	letter-spacing: 0.35em;
	color: #66c6c9;
	width: 100%;
	height: 80px;
	margin: 0;
	padding: 0;
	text-align: center;
}




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

	section h2{
		letter-spacing: 0.2em;
	}

}




/*==================================================
  Slider
==================================================*/
#cover{
	width: 100%;
	margin: 0;
	padding: 0;
	position: fixed;
	top: 60px;
	left: 0;
	overflow: hidden;
}

#slider,
#slider_sp{
	width: 100%;
	margin: 0;
	padding: 0;
}
#slider_sp{
	display: none;
}

.slide_img{
	width: 100%;
	margin: 0;
	padding: 0;
}
.slide_img img{
	width: 100%;
	height: 100%;
	object-fit: contain;
}


/* ProgressBar */
#progress{
	background-color: rgba(107,197,201,0.3);
	width: 100%;
	height: 4px;
	margin: 0;
	padding: 0;
	position: absolute;
	bottom: 0;
	left: 0;
}

#progress #bar{
	background-color: rgba(107,197,201,1.0);
	width: 0%;
	height: 4px;
	margin: 0;
	padding: 0;
}




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

	#slider{
		display: none;
	}
	#slider_sp{
		display: block;
	}

}




/*==================================================
  Shop
==================================================*/
#shop{
	background-color: #ffffff;
}


.top_shop_wrap{
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	width: 100%;
	max-width: 2560px;
	margin: 0 auto;
	padding: 8px;
	box-sizing: border-box;
}


.top_shop_box{
	width: calc(100% / 5);
	margin: 0;
	padding: 8px 8px 0 8px;
	box-sizing: border-box;
}


.top_shop_img{
	width: 100%;
	height: 300px;
	margin: 0;
	padding: 0;
	position: relative;
}


a.top_shop_link{
	display: flex;
	align-items: center;
	background-repeat: no-repeat;
	background-position: center center;
	background-size: cover;
	width: 100%;
	height: 300px;
	margin: 0;
	padding: 0;
	transition: 0.3s;
}
a.top_shop_link:hover{
	opacity: 0.8;
}
#top_shop_tatebe{
	background-image: url(../images/top_banner_04.jpg);
}
#top_shop_yokaichi{
	background-image: url(../images/top_banner_03.jpg);
}
#top_shop_abei{
	background-image: url(../images/top_banner_02.jpg);
}
#top_shop_satukidai{
	background-image: url(../images/top_banner_01.jpg);
}
#top_shop_cherie{
	background-image: url(../images/top_banner_05.jpg);
}


a.top_shop_link h3{
	background: rgba(107,197,201,0.8);
	width: 100%;
	margin: 0;
	padding: 0;
	border-top: solid 1px rgba(107,197,201,1.0);
	border-bottom: solid 1px rgba(107,197,201,1.0);
	text-align: center;
}
a.top_shop_link h3 span{
	display: inline-block;
	font-weight: 700;
	font-size: 2.2rem;
	line-height: 1.0;
	color: #ffffff;
	margin: 0;
	padding: 15px 0;
	position: relative;
	transition: 0.3s;
	white-space: nowrap;
}


a.top_shop_reserve{
	display: inline-block;
	background: rgba(107,197,201,0.9);
	font-weight: 700;
	font-size: 1.6rem;
	line-height: 1.0;
	color: #ffffff;
	margin: 0;
	padding: 0 24px;
	border: solid 1px rgba(107,197,201,1.0);
	border-radius: 4px;
	position: absolute;
	bottom: 25px;
	left: 50%;
	transform: translateX(-50%);
}
a.top_shop_reserve span{
	display: inline-block;
	margin: 0;
	padding: 12px 0;
	position: relative;
	transition: 0.3s;
	white-space: nowrap;
}


a.top_shop_link h3 span::after,
a.top_shop_reserve span::after{
	background-color: #ffffff;
	content: '';
	width: 0;
	height: 2px;
	position: absolute;
	bottom: 7px;
	left: 50%;
	transform: translateX(-50%);
	transition: 0.3s;
}
a.top_shop_link:hover h3 span::after,
a.top_shop_reserve:hover span::after{
	width: 100%;
}


.top_shop_badge{
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	width: 100%;
	margin: 0;
	padding: 4px 4px 16px 4px;
	box-sizing: border-box;
}


.top_shop_badge span{
	display: inline-block;
	background: rgba(204,51,153,1.0);
	font-weight: 400;
	font-size: 1.4rem;
	line-height: 1.0;
	color: #ffffff;
	margin: 4px 2px 0 2px;
	padding: 6px 8px;
	border-radius: 4px;
}




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

	.top_shop_box{
		width: calc(100% / 3);
	}

}




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

	.top_shop_box{
		width: calc(100% / 2);
	}

}




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

	.top_shop_box{
		width: 100%;
		margin: 0;
		padding: 0;
	}

}




/*==================================================
  Concept
==================================================*/
#concept{
	background-color: #ffffff;
}


.concept_inner{
	width: 100%;
	margin: 0;
	padding: 20px 40px;
	box-sizing: border-box;
}


.concept_inner h3{
	font-weight: 700;
	font-size: 2.6rem;
	line-height: 1.2;
	letter-spacing: 0.05em;
	color: #666666;
	margin: 0;
	padding: 30px 0;
	text-align: center;
}


.concept_inner p{
	font-weight: 500;
	font-size: 1.6rem;
	line-height: 1.7;
	color: #666666;
	margin: 0;
	padding: 5px 0;
	text-align: center;
}




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

	.concept_inner{
		padding: 15px 30px;
	}


	.concept_inner h3{
		font-size: 2.2rem;
	}

}




/*==================================================
  Info
==================================================*/
#info{
	background-color: #ffffff;
}


#info h2{
	letter-spacing: 0.3em;
}


/* カレンダー */
.top_info_calendar{
	font-weight: 500;
	width: 100%;
	margin: 0;
	padding: 0 0 10px 0;
	border-bottom: dotted 2px #eeeeee;
}
.top_info_calendar .w1,
.top_info_calendar .holiday{
	background-color: rgba(255,153,255,0.6);
}


.top_info_calendar_inner{
	display: flex;
	flex-wrap: wrap;
	font-weight: 500;
	max-width: 1640px;
	margin: 0 auto;
	padding: 0 20px;
	box-sizing: border-box;
}


.top_info_calendar_inner h3{
	font-weight: 700;
	font-size: 2.0rem;
	color: #999999;
	line-height: 1.0;
	width: 100%;
	margin: 0;
	padding: 40px 0 0 0;
	text-align: center;
}


.calendar_txt{
	font-size: 1.4rem;
	line-height: 1.0;
	color: #333333;
	width: 100%;
	margin: 0;
	padding: 10px 40px 0 40px;
	box-sizing: border-box;
	text-align: right;
}
.calendar_txt span{
	display: inline-block;
	background-color: rgba(255,153,255,0.6);
	width: 12px;
	height: 12px;
	margin: 0 4px 0 0;
	padding: 0;
}


.calendar_wrap{
	width: calc(100% / 3);
	margin: 0;
	padding: 10px 40px;
	box-sizing: border-box;
}


a.calendar_link{
	display: block;
	width: 100%;
	margin: 0;
	padding: 0;
	position: relative;
}
a.calendar_link:hover .calendar_overlay{
	opacity: 1;
}


.calendar_wrap .calendar{
	width: 100%;
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}


.calendar_wrap .calendar table{
	width: 100%;
	margin: 0;
	padding: 0;
	border: solid 2px #eeeeee;
	border-collapse: collapse
}


.calendar_wrap .calendar table caption{
	background: rgba(107,197,201,0.9);
	font-weight: 700;
	font-size: 1.6rem;
	line-height: 1.0rem;
	color: #ffffff;
	line-height: 1.0;
	padding: 12px 0;
}


.calendar_wrap .calendar table th,
.calendar_wrap .calendar table td{
	font-weight: 700;
	font-size: 1.4rem;
	line-height: 1.0;
	color: #666666;
	padding: 14px;
	border: solid 2px #eeeeee;
	text-align: center;
}
.calendar_wrap .calendar table th:nth-of-type(1),
.calendar_wrap .calendar table td:nth-of-type(1){
	color: red;
}
.calendar_wrap .calendar table th:nth-of-type(7),
.calendar_wrap .calendar table td:nth-of-type(7){
	color: blue;
}


.calendar_wrap .exception{
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	width: 100%;
	height: 280px;
	margin: 0;
	padding: 10px;
	border: solid 2px #eeeeee;
	box-sizing: border-box;
}

.calendar_wrap .exception p{
	font-size: 1.4rem;
	line-height: 1.7;
	color: #666666;
	width: 100%;
	margin: 0;
	padding: 0;
	text-align: center;
}
.calendar_wrap .exception p span{
	font-weight: 700;
	color: #ff0000;
	padding: 0;
}


.calendar_info{
	font-size: 1.4rem;
	line-height: 1.2;
	color: #333333;
	width: 100%;
	margin: 0;
	padding: 10px 0 0 0;
	text-align: center;
}




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

	.calendar_wrap{
		padding: 10px 20px;
	}


	.calendar_txt{
		padding: 10px 20px 0 20px;
	}

}




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

	.calendar_wrap{
		padding: 10px;
	}


	.calendar_txt{
		padding: 10px 10px 0 10px;
	}

	.calendar_wrap .calendar table th,
	.calendar_wrap .calendar table td{
		padding: 10px;
	}

}




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

	.calendar_wrap .calendar table th,
	.calendar_wrap .calendar table td{
		padding: 7px;
	}

}




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

	#info h2{
		letter-spacing: 0.15em;
	}


	.calendar_wrap{
		width: 100%;
	}

}




/* お知らせ - 新着情報 */
.top_info_list{
	font-weight: 500;
	max-width: 1640px;
	margin: 0 auto;
	padding: 0 60px;
	box-sizing: border-box;
}


.top_info_list h3{
	font-weight: 700;
	font-size: 2.0rem;
	color: #999999;
	line-height: 1.0;
	width: 100%;
	margin: 0;
	padding: 40px 0 30px 0;
	border-bottom: solid 2px #eeeeee;
	text-align: center;
}


.top_info_wrap{
	width: 100%;
	margin: 0;
	padding: 0;
}


.top_info_wrap dl{
	display: flex;
	flex-wrap: wrap;
	font-size: 1.6rem;
	line-height: 30px;
	color: #333333;
	width: 100%;
	margin: 0;
	padding: 10px 0;
	border-bottom: dotted 2px #eeeeee;
}


.top_info_wrap dl dt{
	display: flex;
	flex-wrap: wrap;
	align-self: flex-start;
	width: 400px;
	margin: 0;
	padding: 2px 0 0 0;
}


.top_info_wrap dl dt p{
	height: 30px;
	margin: 0;
	padding: 0;
}
.top_info_wrap dl dt p.info_date{
	font-weight: 700;
	color: #999999;
	width: 100px;
}
.top_info_wrap dl dt p.info_badge{
	font-size: 1.4rem;
	color: #ffffff;
	width: 300px;
	text-align: center;
}
.top_info_wrap dl dt p.info_badge span{
	display: block;
	width: 120px;
	height: 30px;
	margin: 0 auto;
	padding: 0 5px;
	box-sizing: border-box;
}
.top_info_wrap dl dt p.info_badge span.gray{
	background-color: #666666;
}
.top_info_wrap dl dt p.info_badge span.blue{
	background-color: rgba(107,197,201,0.9);
}
.top_info_wrap dl dt p.info_badge span.pink{
	background-color: rgba(204,51,153,0.7);
}


.top_info_wrap dl dd{
	width: calc(100% - 400px);
	margin: 0;
	padding: 2px 0 0 0;
	text-align: left;
}


.top_info_wrap dl dd h4{
	font-weight: 500;
	color: #333333;
	width: 100%;
	height: 30px;
	margin: 0;
	padding: 0;
	cursor: pointer;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.top_info_wrap dl dd h4.open{
	font-weight: 700;
	height: auto;
	min-height: 30px;
	white-space: normal;
	overflow: visible;
	text-overflow: clip;
}
.top_info_wrap dl dd h4:hover{
	color: #ff9900;
	text-decoration: underline;
}


.top_info_wrap dl dd .top_info_detail{
	display: none;
	color: #666666;
	width: 100%;
	margin: 0;
	padding: 10px 0;
	box-sizing: border-box;
}


.top_info_list .read_more{
	width: 100%;
	margin: 0;
	padding: 10px 0;
	text-align: right;
}
.top_info_list .read_more a{
	color: #666666;
	padding: 0;
}
.top_info_list .read_more a:hover{
	color: rgba(107,197,201,0.9);
}
.top_info_list .read_more a span{
	font-size: 1.2rem;
	padding: 0 5px 0 0;
}




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

	.top_info_list{
		padding: 0 40px;
	}

}




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

	.top_info_list{
		padding: 0 30px;
	}


	.top_info_wrap dl dt{
		width: 300px;
	}


	.top_info_wrap dl dt p.info_badge{
		width: 200px;
	}


	.top_info_wrap dl dd{
		width: calc(100% - 300px);
	}

}




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

	.top_info_wrap dl dt{
		width: 100%;
	}


	.top_info_wrap dl dt p.info_date{
		width: 100px;
		text-align: left;
	}
	.top_info_wrap dl dt p.info_badge{
		font-size: 1.2rem;
		line-height: 20px;
		width: 200px;
		height: 20px;
		padding: 5px 0;
	}
	.top_info_wrap dl dt p.info_badge span{
		width: 80px;
		height: 20px;
		margin: 0;
	}


	.top_info_wrap dl dd{
		width: 100%;
	}

}




/* お知らせ - その他 */
.top_info_other{
	font-weight: 500;
	width: 100%;
	margin: 0;
	padding: 20px 0 50px 0;
	text-align: center;
}


.top_info_other_banner{
	display: flex;
	flex-wrap: wrap;
	max-width: 1240px;
	margin: 0 auto;
	padding: 20px;
}


.top_info_other_banner p{
	margin: 0;
	padding: 0 0 50px 0;
	text-align: center;
}
.top_info_other_banner p.bnr_650{
	width: 100%;
}
.top_info_other_banner p.bnr_650 img{
	width: 100%;
	max-width: 650px;
}
.top_info_other_banner p.bnr_600{
	width: 50%;
}
.top_info_other_banner p.bnr_600 img{
	width: 100%;
	max-width: 600px;
}
.top_info_other_banner p a:hover img{
	opacity: 0.7;
}


.top_info_other_inner{
	max-width: 1600px;
	margin: 0 auto;
	padding: 0 40px 10px 40px;
	box-sizing: border-box;
}


.top_info_other_box{
	width: 100%;
	margin: 0 auto;
	padding: 40px;
	border: solid 2px #eeeeee;
	box-sizing: border-box;
}


.top_info_other_box h3{
	font-weight: 700;
	font-size: 2.0rem;
	line-height: 1.0;
	color: #999999;
	margin: 0;
	padding: 0 0 15px 0;
}


.top_info_other_box p{
	font-size: 1.6rem;
	line-height: 1.2;
	margin: 0;
	padding: 10px 0;
}
.top_info_other_box p span{
	padding: 0;
}


.top_info_other_sns{
	width: 100%;
	margin: 0;
	padding: 30px 0 0 0;
}
.top_info_other_sns h4{
	font-weight: 700;
	font-size: 1.6rem;
	line-height: 1.0;
	color: #999999;
	width: 100%;
	margin: 0;
	padding: 0 0 15px 0;
}
.top_info_other_sns span{
	padding: 0 15px;
}
.top_info_other_sns span img{
	width: 40px;
}
.top_info_other_sns span img:hover{
	opacity: 0.7;
}




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

	.top_info_other_inner{
		padding: 0 30px;
	}

}




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

	.top_info_other_banner{
		padding: 20px;
	}

}




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

	.top_info_other{
		padding: 0 0 50px 0;
	}


	.top_info_other_banner p{
		padding: 0 0 30px 0;
	}


	.top_info_other_banner p.bnr_600{
		width: 100%;
	}

}




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

	.top_info_other_box{
		padding: 40px 20px;
	}


	.top_info_other_box p{
		font-size: 1.4rem;
	}
	.top_info_other_box p span{
		display: block;
		padding: 0 0 5px 0;
	}

}
