@charset "utf-8";

/*============================
共通パーツ
============================*/
/* セクションタイトル */
.sec_title {
	font-size: 0.50rem;
	letter-spacing: 0.07em;
	font-family: 'Playfair Display';
}
@media screen and (max-width: 640px) {
	.sec_title {
		font-size: 0.40rem;
		letter-spacing: 0.07em;
		font-family: 'Playfair Display';
	}
}


.sec_title span {
	position: relative;
}

.sec_title span::after {
	content: '';
	display: inline-block;
	width: 2.13rem;
	height: 0.02rem;
	background: #fff;
	position: absolute;
}

/*============================
MV
============================*/
#mv {
	width: calc(100% - 0.80rem);
	height: 7.00rem;
	background: url(../img/top/mv.jpg) no-repeat center;
	background-size: cover;
	position: relative;
}
@media screen and (max-width: 640px) {
	#mv {
		width: 100%;
		height: 4.50rem;
	}
}

#mv .in {
	height: 7.00rem;
}
@media screen and (max-width: 640px) {
	#mv .in {
		height: 4.50rem;
	}
}


#mv .name {
	font-size: 0.70rem;
	line-height: 1.3;
	letter-spacing: 0.1em;
	position: absolute;
	bottom: -0.30rem;
	left: 0.40rem;
	font-family: 'Playfair Display';
}
@media screen and (max-width: 640px) {
	#mv .name {
		font-size: 0.50rem;
		bottom: -0.30rem;
		left: 0.20rem;
	}
}


#mv .work_name {
	-ms-writing-mode: tb-rl;
	writing-mode: vertical-rl;
	font-size: 0.24rem;
	letter-spacing: 0.2em;
	position: absolute;
	left: 0.90rem;
	top: 50%;
	transform: translateY(-50%);
	z-index: 1;
}
@media screen and (max-width: 640px) {
	#mv .work_name {
		font-size: 0.18rem;
		left: 0.35rem;
		top: 2.40rem;
		transform: translateY(-50%);
		z-index: 1;
	}
}


/*============================
NEWS
============================*/
#news {
	padding: 1rem 0;
}
@media screen and (max-width: 640px) {
	#news {
		padding: 0.80rem 0;
	}
}


#news .wrap {
	max-width: 9.20rem;
	width: 100%;
	margin: auto;
}

#news .wrap .list .item {
	margin-bottom: 0.20rem;
}
@media screen and (max-width: 640px) {
	#news .wrap .list .item {
		margin-bottom: 0.25rem;
	}
}


#news .wrap .list .item a {
	color: #fff;
	font-size: 0.15rem;
	line-height: 1.3;
	display: flex;
}
@media screen and (max-width: 640px) {
	#news .wrap .list .item a {
		flex-wrap: wrap;
	}
}


#news .wrap .list .item a:hover {
	opacity: 0.7;
}

#news .wrap .list .item .date {
	width: 1.3rem;
}
@media screen and (max-width: 640px) {
	#news .wrap .list .item .date {
		width: 100%;
		margin-bottom: 0.10rem;
	}
}

#news .btn_common {
	text-align: right;
	margin-top: 0.33rem;
}
@media screen and (max-width: 640px) {
	#news .btn_common {
		text-align: center;
	}
}


/*============================
About
============================*/
#about {
	position: relative;
}

#about .sec_title {
	position: absolute;
	right: 2.73rem;
	top: -2.9rem;
}
@media screen and (max-width: 640px) {
	#about .sec_title {
		position: absolute;
		right: auto;
		left: 1.15rem;
		top: -1.3rem;
	}
}


#about .sec_title span {
	position: relative;
}

#about .sec_title span::after {
	bottom: -0.15rem;
	right: 0;
}


/* 写真01 */
#about .ph_01 {
	max-width: 50%;
	width: 100%;
	height: 4.80rem;
}
@media screen and (max-width: 640px) {
	#about .ph_01 {
		max-width: 100%;
		width: calc(100% - 0.20rem);
		height: 3.55rem;
	}
}


#about .ph_01 img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* 写真02 */
#about .ph_02 {
	position: absolute;
	width: 2.50rem;
	height: 4.20rem;
	top: 2.00rem;
	left: calc(50% + 1.65rem);
	transform: translateX(-50%);
}
@media screen and (max-width: 640px) {
	#about .ph_02 {
		position: absolute;
		width: 1.76rem;
		height: 2.14rem;
		top: 2.00rem;
		left: auto;
		right: 0;
		transform: translate(0);
	}
}

#about .ph_02 img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

#about .text_jp {
	max-width: 5.60rem;
	font-size: 0.14rem;
	letter-spacing: 0.07em;
	line-height: 2;
	margin-top: 0.32rem;
}
@media screen and (max-width: 640px) {
	#about .text_jp {
		margin-top: 1.00rem;
	}
}

#about .text_en {
	font-size: 0.14rem;
	letter-spacing: 0.07em;
	line-height: 2;
	margin-top: 0.44rem;
}
@media screen and (max-width: 640px) {
	#about .text_en {
		font-size: 0.11rem;
		letter-spacing: 0.05em;
		opacity: 0.7;
		margin-top: 0.25rem;
	}
}

/*============================
写真区切り
============================*/
#img_sec {
	position: relative;
	padding-top: 1.90rem;
	padding-bottom: 2.45rem;
}
@media screen and (max-width: 640px) {
	#img_sec {
		padding-top: 0.80rem;
		padding-bottom: 1.20rem;
	}
}


#img_sec .ph_01 {
	/* max-width: 82%; */
	/* max-width: calc((100% - 9.6rem) / 2); */
	width: 100%;
	height: 4.80rem;
	margin-left: calc((100% - 9.6rem) / 2);
	;
}
@media screen and (max-width: 640px) {
	#img_sec .ph_01 {
		width: calc(100% - 0.20rem);
		height: 2.30rem;
		margin-left: 0.20rem;
		;
	}
}

#img_sec .ph_01 img {
	object-fit: cover;
	width: 100%;
	height: 100%;
}

#img_sec .ph_02 {
	width: 2.50rem;
	height: 2.88rem;
	position: absolute;
	bottom: -1.50rem;
	left: -0.40rem;
}
@media screen and (max-width: 640px) {
	#img_sec .ph_02 {
		width: 2.04rem;
		height: 1.66rem;
		position: static;
		margin-top: 0.25rem;
	}
}


#img_sec .ph_02 img {
	object-fit: cover;
	width: 100%;
	height: 100%;
}

/*============================
cafe
============================*/
#cafe {
	position: relative;
	padding-top: 56.07vw;
	margin-top: 0.80rem;
}
@media screen and (max-width: 640px) {
	#cafe {
		padding-top: 40.07vw;
		margin-top: 0.40rem;
	}
}

#cafe .ph_wrap {
	width: 100%;
	height: 75.71vw;
	max-height: 12.18rem;
	position: absolute;
	top: 0;
	left: 0;
	z-index: 0;
}

#cafe .ph_wrap .ph {
	overflow: hidden;
}

#cafe .ph_wrap .ph img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

#cafe .ph_wrap .upper {
	position: relative;
	height: 50.35vw;
	max-height: 8.10rem;
}

#cafe .ph_wrap .upper .-ph01 {
	width: 42.85%;
	height: 25vw;
	max-height: 4.00rem;
	position: absolute;
	top: 0;
	left: 0;
}

#cafe .ph_wrap .upper .-ph02 {
	width: 28.21%;
	height: 25vw;
	max-height: 4.00rem;
	position: absolute;
	top: 0;
	left: 43.21%;
}

#cafe .ph_wrap .upper .-ph03 {
	width: 28.21%;
	height: 25vw;
	max-height: 4.00rem;
	position: absolute;
	bottom: 0;
	left: 0;
}

#cafe .ph_wrap .upper .-ph04 {
	width: 42.85%;
	height: 25vw;
	max-height: 4.00rem;
	position: absolute;
	bottom: 0;
	left: 28.57%;
}

#cafe .ph_wrap .upper .-ph05 {
	width: 28.21%;
	height: 100%;
	position: absolute;
	top: 0;
	right: 0;
}

#cafe .ph_wrap .bottom {
	position: absolute;
	height: 25vw;
	max-height: 4.00rem;
	bottom: 0;
	left: 0;
}

#cafe .txt_box {
	position: relative;
	z-index: 1;
	color: #FFF;
	padding-bottom: 2.00rem;
}
@media screen and (max-width: 640px) {
	#cafe .txt_box {
		padding-bottom: 1.00rem;
	}
}

#cafe .txt_box .cafe_logo_img {
	width: 4.00rem;
	margin: auto;
}
@media screen and (max-width: 640px) {
	#cafe .txt_box .cafe_logo_img {
		width: 2.00rem;
	}
}

#cafe .txt_box .tit {
	font-size: 0.24rem;
	font-weight: 600;
	letter-spacing: 0.07em;
	text-align: center;
	padding: 0.30rem 0;
}
@media screen and (max-width: 640px) {
	#cafe .txt_box .tit {
		font-size: 0.20rem;
		line-height: 1.65;
		padding: 0.20rem 0;
	}
}

#cafe .txt_box .txt {
	font-size: 0.16rem;
	letter-spacing: 0.07em;
	line-height: 2;
	text-align: center;
}
@media screen and (max-width: 640px) {
	#cafe .txt_box .txt {
		font-size: 0.14rem;
		letter-spacing: 0;
		line-height: 1.875;
		padding: 0 0.20rem;
		text-align: justify;
	}
}

#cafe .txt_box .address {
	padding-bottom: 0.15rem;
	font-size: 0.14rem;
	letter-spacing: 0.07em;
	line-height: 1.875;
	text-align: center;
}
@media screen and (max-width: 640px) {
	#cafe .txt_box .txt {
		font-size: 0.13rem;
		letter-spacing: 0;
	}
}

#cafe .txt_box .link_list {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	padding-top: 0.20rem;
}

#cafe .txt_box .link_list .link {
	width: 1.80rem;
	text-align: center;
	padding: 0 0.20rem;
}

#cafe .txt_box .link_list .link a {
	display: block;
	color: #FFF;
	font-size: 0.14rem;
	font-family: 'Playfair Display';
	padding: 0.20rem 0;
	border-bottom: 1px solid #FFF;
}

/*============================
Contents
============================*/
#contents .sec_title {
	position: relative;
	z-index: 2;
}
@media screen and (max-width: 640px) {
	#contents .sec_title {
		text-align: right;
		position: relative;
		top: 0.40rem;
	}
}

#contents .sec_title span {
	position: relative;
	padding-left: 0.40rem;
	line-height: 1.33;
}

#contents .sec_title span::after {
	bottom: -0.15rem;
	left: -0.25rem;
}

#contents .cont_wrap {
	max-width: 6.80rem;
	margin: auto;
	display: flex;
	flex-wrap: wrap;
}

/* タイトル */
#contents .cont_wrap .title_wrap {
	width: 2.70rem;
	position: relative;
}
@media screen and (max-width: 640px) {
	#contents .cont_wrap .title_wrap {
		width: 100%;
	}
}


#contents .cont_wrap .title_wrap .cont_title {
	font-size: 0.30rem;
	line-height: 1.33;
	font-family: 'Playfair Display';
}
@media screen and (max-width: 640px) {
	#contents .cont_wrap .title_wrap .cont_title {
		font-size: 0.24rem;
	}
}


#contents .cont_wrap .title_wrap .cont_title span {
	font-size: 0.18rem;
	display: block;
	padding-top: 0.16rem;
	font-family: "Noto Serif JP", serif;
}
@media screen and (max-width: 640px) {
	#contents .cont_wrap .title_wrap .cont_title span {
		font-size: 0.14rem;
		padding-top: 0.05rem;
	}
}

#contents .cont_wrap .title_wrap .cont_title span.sub {
	display: block;
	font-size: 0.14rem;
	line-height: 1;
}
@media screen and (max-width: 640px) {
	#contents .cont_wrap .title_wrap .cont_title span.sub {
		display: inline-block;
		padding-left: 0.10rem;
		font-size: inherit;
	}
}

/* ボタン */
#contents .cont_wrap .title_wrap .btn {
	position: absolute;
	bottom: 0.30rem;
}
@media screen and (max-width: 640px) {
	#contents .cont_wrap .title_wrap .btn {
		position: static;
	}

	#contents .cont_wrap .btn {
		margin: 0.30rem auto 0;
	}
}


/* テキスト */
#contents .cont_wrap .text_wrap {
	width: calc(100% - 2.70rem);
	box-sizing: border-box;
	padding-left: 0.30rem;
	font-size: 0.14rem;
	line-height: 2;
	letter-spacing: 0.07em;
}
@media screen and (max-width: 640px) {
	#contents .cont_wrap .text_wrap {
		width: 100%;
		padding-left: 0;
		margin-top: 0.20rem;
	}
}


/* ランプ */
#contents .lamps .cont_wrap {
	margin-top: -0.9rem;
}
@media screen and (max-width: 640px) {
	#contents .lamps .cont_wrap {
		margin-top: 0.30rem;
		margin-bottom: 1.30rem;
	}
}

#contents .lamps .ph_01 {
	width: 100%;
	margin-top: -0.20rem;
}
@media screen and (max-width: 640px) {
	#contents .lamps .ph_01 {
		margin-top: 0.20rem;
	}
}

/* オリジナルスパイス */
#contents .spice {
	margin-top: 0.45rem;
}

#contents .spice .cont_wrap {
	margin-top: 0.53rem;
}

/* ダンスでの表現 */
#contents .dance {
	margin-top: 1.95rem;
}

#contents .dance .cont_wrap {
	margin-top: 0.53rem;
}

/*============================
Topics
============================*/
#topics {
	padding-top: 2.40rem;
}
@media screen and (max-width: 640px) {
	#topics {
		padding-top: 1.20rem;
	}
}


#topics .mv {
	width: 100%;
	height: 6.00rem;
}
@media screen and (max-width: 640px) {
	#topics .mv {
		height: 3.20rem;
	}
}


#topics .mv img {
	width: 100%;
	height: 100%;
	object-fit: cover
}

#topics .cont_wrap {
	max-width: 9.60rem;
	width: 100%;
	margin: auto;
}

#topics .sec_title {
	margin-top: -0.20rem;
	position: relative;
	z-index: 2;
}

#topics .sec_title span::after {
	bottom: -0.15rem;
	left: 0;
}

#topics .list_wrap {
	margin-top: 0.8rem;
}

#topics .list_wrap .list .item {
	margin-bottom: 0.40rem;
}

#topics .list_wrap .list .item a {
	color: #fff;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
}
@media screen and (max-width: 640px) {
	#topics .list_wrap .list .item a {
		align-items: flex-start;
	}
}

#topics .list_wrap .list .item a:hover {
	opacity: 0.7;
}

#topics .list_wrap .list .item a .ph_wrap {
	width: 2.40rem;
	height: 1.66rem;
}
@media screen and (max-width: 640px) {
	#topics .list_wrap .list .item a .ph_wrap {
		width: 1.50rem;
		height: 1.04rem;
	}
}


#topics .list_wrap .list .item a .ph_wrap img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

#topics .list_wrap .list .item a .text_wrap {
	width: calc(100% - 2.40rem);
	box-sizing: border-box;
	padding-left: 0.30rem;
}
@media screen and (max-width: 640px) {
	#topics .list_wrap .list .item a .text_wrap {
		width: calc(100% - 1.50rem);
		box-sizing: border-box;
		padding-left: 0.15rem;
	}
}

/* カテゴリー */
#topics .list_wrap .list .item a .text_wrap .category {
	font-size: 0.13rem;
	width: 1.00rem;
	padding: 0.03rem 0;
	text-align: center;
	border-radius: 0.10rem;
}
@media screen and (max-width: 640px) {
	#topics .list_wrap .list .item a .text_wrap .category {
		font-size: 0.10rem;
		width: 0.80rem;
	}
}


#topics .list_wrap .list .item a .text_wrap .category.event {
	background-color: #004C6E;
}

#topics .list_wrap .list .item a .text_wrap .category.shop {
	background-color: #777300;
}

#topics .list_wrap .list .item a .text_wrap .category.contents {
	background-color: #770069;
}

#topics .list_wrap .list .item a .text_wrap .title {
	font-size: 0.16rem;
	font-weight: 500;
	padding: 0.10rem 0;
	line-height: 1.65;
}
@media screen and (max-width: 640px) {
	#topics .list_wrap .list .item a .text_wrap .title {
		font-size: 0.14rem;
		padding-top: 0.05rem;
	}
}


#topics .list_wrap .list .item a .text_wrap .text {
	font-size: 0.13rem;
	line-height: 1.83;
	overflow: hidden;
  display: -webkit-box;
  text-overflow: ellipsis;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
@media screen and (max-width: 640px) {
	#topics .list_wrap .list .item a .text_wrap .text {
		display: none;
	}
}
#topics .list_wrap .list .item a .text_wrap p {
	font-size: 0.13rem;
	line-height: 1.83;
}
@media screen and (max-width: 640px) {
	#topics .list_wrap .list .item a .text_wrap p {
		display: none;
	}
}

/* ボタン */
#topics .btn {
	text-align: right;
	margin-right: -1.00rem;
}
@media screen and (max-width: 640px) {
	#topics .btn {
		text-align: center;
		margin-right: 0;
	}
}


