@charset "UTF-8";

/* ---------------------------------------------------
	footer
---------------------------------------------------- */
.footer {
	background: #fff;
	padding-top: 88px;
}

.footer .container {
	max-width: 840px;
}

@media screen and (max-width: 768px) {
	.footer {
		padding-top: 11.73333vw;
		padding: 11.73333vw 3.33333vw 0;
	}
}

/*
	note
------------------------------ */
.footer .note {
	margin-bottom: 58px;
}

@media screen and (max-width: 768px) {
	.footer .note {
		margin-bottom: 7.73333vw;
	}
}

/*
	reserve
------------------------------ */
.reserve {
	margin: 0 auto 76px;
	max-width: 840px;
	color: #C8113D;
	font-weight: bold;
	text-align: center;
}

.reserve .reserve__title {
	margin-bottom: 1em;
	font-size: 24px;
	font-weight: bold;
	position: relative;
}

.reserve .reserve__title::before {
	width: 100%;
	border-bottom: solid 8px #C8113D;
	display: block;
	position: absolute;
	top: 50%;
	left: 0;
	z-index: 1;
	transform: translateY(-50%);
	content: "";
}

.reserve .reserve__title span {
	background: #fff;
	padding: 0 1em;
	display: inline-block;
	position: relative;
	z-index: 2;
}

.reserve .reserve__list {
	line-height: 1.5;
}

.reserve .reserve__list dt {
	font-size: 22px;
}

.reserve .reserve__list dd {
	padding-bottom: 3rem;
	font-size: 45px;
	display: flex;
	border-bottom: solid 8px #C8113D;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
}

.reserve .reserve__list dd .title {
	font-size: 35px;
}

.reserve .reserve__list dd .tel {
	color: #C8113D;
	text-decoration: none;
	position: relative;
}

.reserve .reserve__list dd .time {
	width: 100%;
	font-size: 22px;
	display: block;
}

@media screen and (max-width: 768px) {
	.reserve {
		margin-bottom: 10.13333vw;
	}

	.reserve .reserve__title {
		font-size: 3.2vw;
	}

	.reserve .reserve__title::before {
		border-bottom: solid 1.06667vw #C8113D;
	}

	.reserve .reserve__list dt {
		font-size: 2.93333vw;
	}

	.reserve .reserve__list dd {
		padding-bottom: 1.5rem;
		font-size: 6vw;
		border-bottom-width: 1.06667vw;
	}

	.reserve .reserve__list dd .title {
		font-size: 4.66667vw;
	}

	.reserve .reserve__list dd .time {
		font-size: 2.4vw;
	}
}

/*
	address
------------------------------ */
.footer .logo {
	margin-bottom: 2em;
	text-align: center;
}

.footer .logo img {
	width: 160px;
}

.footer .contact {
	margin-bottom: 2em;
	color: #C8113D;
	font-weight: bold;
}

.footer .contact__contents {
	font-size: 22px;
	text-align: center;
}

.footer .contact__contents--title {
	line-height: 1.5;
}

.footer .contact__contents--tel {
	font-size: 35px;
}

.footer .contact__contents--tel .address {
	font-size: 22px;
}

.footer .contact__contents--tel .tel {
	line-height: 1;
	color: #C8113D;
	font-size: 45px;
	text-decoration: none;
}

.footer .sns {
	margin-bottom: 4em;
	display: flex;
	justify-content: center;
}

.footer .sns__item {
	margin: 0 1em;
}

.footer .sns__item img {
	width: 48px;
}

@media screen and (max-width: 768px) {
	.footer .logo {
		margin-bottom: 2em;
		text-align: center;
	}

	.footer .logo img {
		max-width: 160px;
		width: 30%;
	}

	.footer .contact__contents {
		font-size: 3.5vw;
		text-align: center;
	}

	.footer .contact__contents--tel {
		font-size: 4.66667vw;
	}

	.footer .contact__contents--tel .address {
		font-size: 3.5vw;
	}

	.footer .contact__contents--tel .tel {
		font-size: 6vw;
	}


	.footer .sns__item img {
		width: 40px;
	}
}

/*
	hotelNav
------------------------------ */
.footer__hotelNav {
	padding: 0 0 55px;
	line-height: 1;
	color: #333;
	display: flex;
	justify-content: center;
}

.footer__hotelNav::before {
	content: "|";
}

.footer__hotelNav li {
	margin: 0;
	text-indent: 0;
}

.footer__hotelNav li::before {
	content: "";
}

.footer__hotelNav li::after {
	content: "|";
}

.footer__hotelNav li a {
	padding: 0 1em;
	color: #333;
	text-decoration: none;
	display: inline-block;
}

@media screen and (max-width: 768px) {
	.footer {
		padding-bottom: 7.33333vw;
	}

	.footer__hotelNav {
		padding: 0;
		line-height: 3;
		text-align: center;
	}

	.footer__hotelNav li a {
		padding: 0 0.5em;
		font-size: 2.4vw;
	}
}

/*
	copy
------------------------------ */
.copy {
	padding-bottom: 50px;
	color: rgb(var(--blk));
	font-size: 12px;
	text-align: center;
}

@media screen and (max-width: 768px) {
	.copy {
		margin-top: 3.2vw;
		padding-bottom: 0;
		font-size: 2.4vw;
	}
}

/* ---------------------------------------------------
	main
---------------------------------------------------- */
.main .main__title {
	background: #D85977;
	margin-bottom: 75px;
	padding: 0.75em 0;
	line-height: 1.25;
	color: #fff;
	font-family: "游明朝", "Yu Mincho", YuMincho, "Hiragino Mincho Pro", serif;
	font-size: 43px;
	text-align: center;
}

.main .main__title small {
	margin-top: 1.5em;
	line-height: 1.5;
	font-family: "游ゴシック体", "Yu Gothic", YuGothic, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
	font-size: 21px;
	display: block;
}

@media screen and (max-width: 768px) {
	.main .main__title {
		margin-bottom: 10vw;
		font-size: 5.73333vw;
	}

	.main .main__title small {
		font-size: 2.8vw;
	}
}

/* ---------------------------------------------------
	plan
---------------------------------------------------- */
.plan {
	background: #C8113D;
	padding: 75px;
}

.plan .container {
	background: #FBF8F0;
	padding: 75px 0;
	max-width: 940px;
}

@media screen and (max-width: 940px) {
	.plan {
		padding: 3.33333vw;
	}

	.plan .container {
		padding: 6.66667vw 0;
	}
}

.plan .plan__lead {
	margin-bottom: 1em;
	line-height: 1.5;
	font-family: "游明朝", "Yu Mincho", YuMincho, "Hiragino Mincho Pro", serif;
	font-size: 40px;
	font-weight: bold;
	text-align: center;
	letter-spacing: -0.075em;
}

.plan .plan__lead img {
	max-width: 620px;
	width: 90%;
}

@media screen and (max-width: 768px) {
	.plan .plan__lead {
		font-size: 5.33333vw;
	}
}

.plan .plan__list {
	padding: 0 75px;
}

@media screen and (max-width: 940px) {
	.plan .plan__list {
		padding: 0 3.33333vw;
	}
}

.plan .plan__title {
	background: #C8113D;
	margin-bottom: 0.5em;
	color: #fff;
	font-size: 26px;
	font-weight: bold;
	height: 45px;
	border-radius: 45px;
	display: flex;
	justify-content: center;
	align-items: center;
}

.plan .plan__title.shichigosan {
	background: #D19A00;
}

.plan .plan__title small {
	margin-left: 0.5em;
	font-size: 18px;
	display: inline-block;
}

@media screen and (max-width: 768px) {
	.plan .plan__title {
		font-size: 3.46667vw;
		height: 6vw;
		border-radius: 6vw;
	}

	.plan .plan__title small {
		font-size: 2.4vw;
	}
}

.plan .plan__detail:not(:last-of-type) {
	margin-bottom: 75px;
}

/* text */
.plan .plan__detail .text {
	font-size: 18px;
	font-weight: bold;
	text-align: center;
}

.plan .plan__detail .text.inquiry {
	margin-bottom: 2em;
	font-size: 22px;
}

.plan .plan__detail .image.price {
	margin-top: 5em;
}

.plan .plan__detail .banquet {
	margin-top: 5em;
	padding: 1.5em 0 1em;
	border: solid 3px #D85977;
	border-radius: 16px;
}

.plan .plan__detail .banquet__content .title {
	background: #D85977;
	color: #fff;
	font-size: 26px;
	font-weight: bold;
	height: 45px;
	display: flex;
	justify-content: center;
	align-items: center;
}

.plan .plan__detail .banquet__content .detail {
	margin: 1em 0;
	padding: 0 2em;
	font-size: 18px;
	text-align: center;
}

.plan .plan__detail .banquet__content .detail__title {
	font-weight: bold;
	letter-spacing: -0.005em;
}

.plan .plan__detail .banquet__content .detail__text .price {
	margin-bottom: 0;
	color: #C8113D;
	font-weight: bold;
	display: flex;
	justify-content: center;
	align-items: baseline;
}

.plan .plan__detail .banquet__content .detail__text .price b {
	margin-left: 0.5rem;
	font-size: 2em;
}

.plan .plan__detail .banquet__content .note li {
	font-size: 0.85em;
}

.plan .plan__detail .banquet__image {
	margin: 0 auto;
	padding: 0 2em;
	width: 75%;
	font-size: 14px;
	text-align: right;
}

@media screen and (max-width: 768px) {
	.plan .plan__detail:not(:last-of-type) {
		margin-bottom: 10vw;
	}

	.plan .plan__detail .text {
		font-size: 2.4vw;
	}

	.plan .plan__detail .text.inquiry {
		font-size: 2.93333vw;
	}

	.plan .plan__detail .image.price {
		margin-top: 3em;
	}

	.plan .plan__detail .banquet {
		margin-top: 3em;
		border-radius: 3.2vw;
	}

	.plan .plan__detail .banquet__content .title {
		font-size: 3.46667vw;
		height: 6vw;
	}

	.plan .plan__detail .banquet__content .detail {
		padding: 0 1em;
		font-size: 2.4vw;
	}

	.plan .plan__detail .banquet__content .note li {
		letter-spacing: -0.005em;
	}

	.plan .plan__detail .banquet__image {
		padding: 0 1em;
		width: 80%;
		font-size: 0.85em;
	}
}

/* temple */
.plan .plan__detail.temple {
	font-size: 18px;
	display: grid;
	grid-template-columns: auto auto;
}

.plan .plan__detail.temple .block01 {
	padding-right: 2em;
	font-weight: bold;
	letter-spacing: -0.05em;
}

/* .plan .plan__detail.temple .block02 {
	padding-bottom: 2em;
	text-align: right;
} */

.plan .plan__detail.temple .block03 {
	padding-bottom: 2em;
	font-weight: bold;
}

.plan .plan__detail.temple .block03 dt {
	margin-bottom: 0.25em;
}

.plan .plan__detail.temple .block03 dt span {
	background: #EDE090;
	padding: 0.25em 1em;
	font-size: 15px;
	display: inline-block;
}

.plan .plan__detail.temple .block03 dd {
	line-height: 1.25;
	font-size: 20px;
	display: flex;
	align-items: center;
}

.plan .plan__detail.temple .block03 dd span {
	font-size: 30px;
	display: block;
}

.plan .plan__detail.temple .block04 {
	padding-right: 2em;
	padding-bottom: 2em;
}

.plan .plan__detail.temple .block04 dt span {
	background: #EDE090;
	padding: 0.25em 1em;
	font-size: 15px;
	font-weight: bold;
	display: inline-block;
}

.plan .plan__detail.temple .block04 dd li {
	font-size: 18px;
	letter-spacing: -0.05em;
}

.plan .plan__detail.temple .block04 dd li::before {
	color: #C8113D;
}


.plan .plan__detail.temple .block04 dd li .note li {
	font-size: 0.85em;
}

.plan .plan__detail.temple .block04 dd li .note li::before {
	color: #3E3A39;
	content: "※";
}

.plan .plan__detail.temple .block05 {
	background: #EDE090 url(../img/amulet.png) right 7.5% top no-repeat;
	background-size: 40% auto;
	background-size: auto 95%;
	padding: 1.5em 18% 1.5em 5%;
}

.plan .plan__detail.temple .block05 dt {
	font-weight: bold;
}

.plan .plan__detail.temple .block05 dd {
	line-height: 1.5;
	letter-spacing: -0.05em;
}

.plan .plan__detail.temple .block06 {
	padding-top: 2em;
	padding-right: 2em;
}

.plan .plan__detail.temple .block06 dt {
	font-size: 22px;
	font-weight: bold;
}

.plan .plan__detail.temple .block07 {
	padding-top: 2em;
}

.plan .plan__detail.temple .block08 {
	padding-top: 2em;
	padding-right: 2em;
}

.plan .plan__detail.temple .block08 li {
	font-size: 15px;
}

/*
	レイアウト
------------------------------ */
/* リード */
.plan .plan__detail.temple .block01 {
	grid-column: 1 / 3;
	grid-row: 1 / 2;
}

/* 画像 */
/* .plan .plan__detail.temple .block02 {
	grid-column: 2 / 3;
	grid-row: 1 / 3;
} */

/* 料金 */
.plan .plan__detail.temple .block03 {
	grid-column: 1 / 3;
	grid-row: 2 / 3;
}

/* 内容 */
.plan .plan__detail.temple .block04 {
	grid-column: 1 / 3;
	grid-row: 3 / 4;
}

/* 千木筥 */
.plan .plan__detail.temple .block05 {
	grid-column: 1 / 3;
	grid-row: 4 / 5;
}

/* 芝大神宮 */
.plan .plan__detail.temple .block06 {
	grid-column: 1 / 2;
	grid-row: 5 / 6;
}

/* 強運・良縁成就 */
.plan .plan__detail.temple .block07 {
	grid-column: 2 / 3;
	grid-row: 5 / 6;
}

/* 注記 */
.plan .plan__detail.temple .block08 {
	grid-column: 1 / 3;
	grid-row: 6 / 7;
}

@media screen and (max-width: 768px) {
	.plan .plan__detail.temple {
		padding: 0 5%;
		font-size: 2.4vw;
		grid-template-columns: 100%;
		/* gap: 10% 2em; */
	}

	.plan .plan__detail.temple .block1 {
		padding-right: 0;
		padding-bottom: 2em;
		grid-column: 1 / 2;
		grid-row: 2 / 3;
	}

	.plan .plan__detail.temple .block02 {
		padding-bottom: 2em;
		grid-column: 1 / 2;
		grid-row: 1 / 2;
	}

	.plan .plan__detail.temple .block03 {
		padding-bottom: 2em;
		grid-column: 1 / 2;
		grid-row: 3 / 4;
	}

	.plan .plan__detail.temple .block03 dt span {
		font-size: 2vw;
	}

	.plan .plan__detail.temple .block03 dd {
		font-size: 2.66667vw;
	}

	.plan .plan__detail.temple .block03 dd span {
		font-size: 4vw;
		display: inline-block;
	}

	.plan .plan__detail.temple .block04 {
		padding-right: 0;
		padding-bottom: 0.5em;
		grid-column: 1 / 2;
		grid-row: 4 / 5;
	}

	.plan .plan__detail.temple .block04 dt span {
		font-size: 2vw;
	}

	.plan .plan__detail.temple .block04 dd li {
		font-size: 2.4vw;
	}

	.plan .plan__detail.temple .block05 {
		background: #EDE090 url(../img/amulet_sp.png) right 6% top no-repeat;
		background-size: auto 90%;
		padding: 1em 30% 1em 1em;
		grid-column: 1 / 2;
		grid-row: 6 / 7;
	}

	.plan .plan__detail.temple .block06 {
		padding-top: 2em;
		padding-right: 0;
		grid-column: 1 / 2;
		grid-row: 8 / 9;
	}

	.plan .plan__detail.temple .block06 dt {
		font-size: 2.93333vw;
	}

	.plan .plan__detail.temple .block07 {
		padding-top: 3em;
		grid-column: 1 / 2;
		grid-row: 7 / 8;
	}

	.plan .plan__detail.temple .block08 {
		padding-top: 2em;
		padding-right: 2em;
		grid-column: 1 / 2;
		grid-row: 9 / 10;
	}

	.plan .plan__detail.temple .block08 li {
		font-size: 2vw;
	}
}

/* ---------------------------------------------------
	restaurant
---------------------------------------------------- */
.restaurant {
	margin-bottom: 75px;
}

.restaurant .container {
	background: #EFE3C5;
	/* padding: 50px 10% 85px; */
	padding: 50px 125px 85px;
	max-width: 900px;
	position: relative;
}

.restaurant .container::before,
.restaurant .container::after {
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
	z-index: 1;
	content: "";
}

.restaurant .container::before {
	background: url(../img/bg1.png) right top no-repeat;
}

.restaurant .container::after {
	background: url(../img/bg2.png) left bottom no-repeat;
}

.restaurant .container .wrap {
	position: relative;
	text-align: center;
	z-index: 2;
}

@media screen and (max-width: 900px) {
	.restaurant .container {
		padding: 50px 13.889vw 85px;
	}
}

@media screen and (max-width: 768px) {
	.restaurant {
		margin-bottom: 10vw;
	}

	.restaurant .container {
		padding: 6.66667vw 6% 11.33333vw;
	}

	.restaurant .container::before {
		background-size: 24.8% auto;
	}

	.restaurant .container::after {
		background-size: 31.7% auto;
	}
}

/*
	restaurant__detail
------------------------------ */
.restaurant__detail {
	margin-bottom: 2em;
	line-height: 1.5;
	display: flex;
	justify-content: center;
	align-items: center;
}

.restaurant__detail dt {
	margin-right: 2em;
}

.restaurant__detail dd {
	font-size: 18px;
	font-weight: bold;
	letter-spacing: -0.05em;
}

.restaurant__detail dd p {
	margin-bottom: 0;
}

.restaurant__detail dd p.floor {
	text-align: left;
}

.restaurant__detail dd p.order {
	text-align: right;
	white-space: nowrap;
}

.restaurant__detail dd p.closed {
	text-align: left;
}

@media screen and (max-width: 768px) {
	.restaurant__detail {
		margin: 0 auto 2em;
		display: inline-block;
	}

	.restaurant__detail dt {
		margin-right: 0;
		margin-bottom: 1em;
		text-align: left;
	}

	.restaurant__detail dd {
		font-size: 2.93333vw;
		display: grid;
		grid-template-columns: auto auto;
	}

	.restaurant__detail dd p.floor {
		grid-column: 1/2;
		grid-row: 1/3;
	}

	.restaurant__detail dd p.order {
		grid-column: 2/3;
		grid-row: 1/2;
	}

	.restaurant__detail dd p.closed {
		text-align: left;
		grid-column: 2/3;
		grid-row: 2/3;
	}
}

/* jp */
.jp .restaurant__detail dt img {
	max-width: 157px;
}

/* cn */
.cn .restaurant__detail dt img {
	max-width: 220px;
}

/*
	family__plan
------------------------------ */
.family__plan {
	margin-bottom: 2em;
	font-size: 20px;
	font-weight: bold;
	text-align: left;
	display: inline-block;
}

.family__plan dt span {
	background: #C8113D;
	padding: 0 0.5em;
	line-height: 1.5;
	color: #fff;
	font-size: 25px;
	border-radius: 100px;
	display: inline-block;
}

.family__plan dd p {
	margin-bottom: 0;
	line-height: 1.5;
}

.family__plan dd .add {
	margin-left: 0.55em;
}

.family__plan dd .add .title {
	background: #D19A00;
	/* margin-left: 0.55em; */
	padding: 0 0.5em;
	color: #fff;
	display: inline-block;
}

.family__plan dd .price {
	color: #C8113D;
}

.family__plan dd .price1 {
	font-size: 30px;
}

.family__plan dd .price2 {
	font-size: 25px;
}

@media screen and (max-width: 768px) {
	.family__plan {
		font-size: 3.2vw;
	}

	.family__plan dt span {
		font-size: 3.86667vw;
	}

	.family__plan dd .price1 {
		font-size: 4.53333vw;
	}

	.family__plan dd .price2 {
		font-size: 3.86667vw;
	}
}

/*
	menu
------------------------------ */
.menu {
	margin-bottom: 4em;
}

.menu .menu__title {
	background: #D85977;
	margin-bottom: 1em;
	color: #fff;
	font-size: 25px;
	font-weight: bold;
	text-align: center;
}

@media screen and (max-width: 768px) {
	.menu .menu__title {
		font-size: 4vw;
	}
}

/* table */
.menu .menu__table th,
.menu .menu__table td {
	font-size: 18px;
	vertical-align: top;
}

.menu .menu__table th {
	color: #C8113D;
	font-weight: bold;
	white-space: nowrap;
}

.menu .menu__table td {
	padding-left: 2em;
	text-align: left;
}

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

	.menu .menu__table th,
	.menu .menu__table td {
		font-size: 3.33333vw;
	}

	.menu .menu__table td {
		padding-left: 1em;
	}
}

/* list */
.menu .menu__list {
	margin-bottom: 2em;
	display: flex;
	flex-wrap: wrap;
}

.menu .menu__list li {
	font-size: 18px;
	white-space: nowrap;
}

.menu .menu__list li:not(:last-of-type)::after {
	content: "／";
}

@media screen and (max-width: 768px) {
	.menu .menu__list li {
		font-size: 3.33333vw;
	}
}

/* image */
.restaurant .menuSlide,
.restaurant .image {
	margin-bottom: 2em;
}

.restaurant .menuSlide .slick-dots {
	bottom: 1em;
	z-index: 100;
}

.restaurant .menuSlide .slick-dots button::before {
	color: #C8C9CA;
	font-size: 20px;
	content: "●";
}

.restaurant .menuSlide .slick-dots .slick-active button::before {
	color: #3E3A39;
}

/* pickup */
.restaurant .pickup {
	margin: 0 auto;
	max-width: 650px;
	position: relative;
}

.restaurant .pickup .icon,
.restaurant .pickup p {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
}

.restaurant .pickup .icon {
	/* width: 20%; */
	width: 130px;
	left: 12.5%;
}

.restaurant .pickup p {
	font-size: 18px;
	letter-spacing: -0.05em;
	text-align: left;
	right: 10%;
}

.restaurant .pickup p .red {
	color: #C8113D;
}

@media screen and (max-width: 900px) {
	.restaurant .pickup .icon {
		width: 14.444vw;
	}

	.restaurant .pickup p {
		font-size: 2vw;
	}
}

@media screen and (max-width: 768px) {
	.restaurant .pickup .icon {
		width: 17%;
		left: 12.5%;
	}

	.restaurant .pickup p {
		line-height: 1.5;
		font-size: 2.66667vw;
	}
}

/* course */
.restaurant .course {
	margin-bottom: 3em;
}

.restaurant .course.top {
	margin-top: 6em;
}

.restaurant .course dt {
	font-size: 25px;
	font-weight: bold;
}

.restaurant .course dt span {
	background: #D19A00;
	margin-bottom: 1em;
	padding: 0 1em;
	color: #fff;
	border-radius: 100px;
	display: inline-block;
}

.restaurant .course dd {
	font-size: 20px;
}

.restaurant .course dd .price {
	font-size: 25px;
	font-weight: bold;
}

.restaurant .course dd .note {
	font-size: 15px;
}

@media screen and (max-width: 768px) {
	.restaurant .course dt {
		font-size: 3.6vw;
	}

	.restaurant .course dd {
		font-size: 3.06667vw;
	}

	.restaurant .course dd .price {
		font-size: 3.6vw;
	}

	.restaurant .course dd .note {
		font-size: 2.4vw;
	}
}