@charset "UTF-8";

/* ----------------------------------------------------
	main
---------------------------------------------------- */
.main .main__lead {
	padding: 60px 20px 0;
	line-height: 2;
	font-size: 20px;
	text-align: center;
}

@media screen and (max-width: 768px) {
	.main .main__lead {
		padding: 21.33333vw 5.33333vw 0;
		font-size: 4.26667vw;
		letter-spacing: -0.005em;
	}
}

/* ----------------------------------------------------
	共通
---------------------------------------------------- */
.plan__title {
	margin-bottom: 1em;
	color: rgb(var(--blu2));
	line-height: 1.2;
	font-size: 30px;
	font-weight: bold;
	text-align: center;
	position: relative;
	z-index: 2;
}

.plan__title span {
	display: block;
}

.plan__title .ja {
	font-size: 20px;
	font-weight: normal;
}

.plan__title .en {
	line-height: 1.5;
	font-size: 24px;
}

.plan__title+.note {
	margin-bottom: 2em;
	text-align: center;
}

.plan__title+.note li {
	font-size: 16px;
}

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

	.plan__title .ja {
		font-size: 3.73333vw;
	}

	.plan__title .en {
		font-size: 4.8vw;
	}

	.plan__title+.note li {
		font-size: 3.77777vw;
	}
}

/* sub */
.plan__title--sub {
	color: rgb(var(--blu2));
	font-size: 1rem;
}

@media screen and (max-width: 768px) {
	.plan__title--sub {
		font-size: 3.73333vw;
	}
}

/*
	plan__date
------------------------------ */
.plan__date {
	margin-bottom: 2em;
	color: rgb(var(--blu2));
	font-size: 18px;
	font-weight: bold;
	text-align: center;
	position: relative;
	z-index: 2;
}

.plan__date span {
	padding: 0.5em 3em;
	border-top: dotted 2px rgb(var(--blu2));
	border-bottom: dotted 2px rgb(var(--blu2));
	display: inline-block;
}

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

	.plan__date span {
		padding: 0.5em 0;
		display: block;
	}
}

/*
	plan__image
	plan__lead
------------------------------ */
.plan__image,
.plan__lead {
	margin-bottom: 2em;
}

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

.plan__include dt {
	font-size: 18px
}

.plan__include dt::before {
	content: "●";
}

.plan__include dd a {
	color: rgb(var(--blk));
}

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

	.plan__include dt {
		font-size: 4.26667vw;
	}
}

/*
	section__title
------------------------------ */
.section__title {
	margin-bottom: 1em;
	color: rgb(var(--blu2));
	font-size: 24px;
	text-align: center;
}

.section__title .main {
	margin-bottom: 0.25em;
	display: block;
}

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

/*
	ribbon
------------------------------ */
.ribbon {
	background: rgb(var(--blu2));
	width: 493px;
	height: 61px;
	color: rgb(var(--wht));
	display: inline-flex;
	justify-content: center;
	align-items: center;
	position: relative;
	overflow: hidden;
}

.ribbon::before,
.ribbon::after {
	background: rgb(var(--wht));
	width: 40px;
	height: 100%;
	display: block;
	position: absolute;
	top: 0;
	content: "";
}

.ribbon::before {
	left: -20px;
	clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0 100%, 0 0);
}

.ribbon::after {
	right: -20px;
	clip-path: polygon(50% 0%, 100% 0, 100% 100%, 50% 100%, 0 50%);
}

@media screen and (max-width: 768px) {
	.ribbon {
		width: 100%;
		height: 12vw;
	}

	.ribbon::before,
	.ribbon::after {
		width: 10.66667vw;
	}

	.ribbon::before {
		left: -5.33333vw;
	}

	.ribbon::after {
		right: -5.33333vw;
	}
}

/*
	section__content
------------------------------ */
.section__content {
	display: flex;
	justify-content: space-between;
}

.section__content .image {
	width: 42.22222%;
}

.section__content .detail {
	width: 54.22222%;
}

.section__content .detail dt {
	margin-bottom: 0.5em;
	line-height: 1.5;
	font-size: 22px;
	font-weight: bold;
}

.section__content .detail .small {
	font-size: 18px;
	font-weight: normal;
	display: block;
}

.section__content .detail dd a {
	padding-left: 20px;
	color: rgb(var(--blu2));
	position: relative;
}

.section__content .detail dd a::before {
	background: rgb(var(--blu2));
	width: 12px;
	height: 16px;
	display: inline-block;
	position: absolute;
	top: 50%;
	left: 0;
	transform: translateY(-50%);
	clip-path: polygon(0 0, 0% 100%, 100% 50%);
	content: "";
}

.section__content .detail dd .text {
	margin: 1em 0 0;
}

@media screen and (max-width: 768px) {
	.section__content {
		display: block;
	}

	.section__content .image,
	.section__content .detail {
		width: 100%;
	}

	.section__content .image {
		margin-bottom: 1em;
	}

	.section__content .detail dt {
		font-size: 4.26667vw;
		font-weight: bold;
	}

	.section__content .detail .small {
		font-size: 4vw;
	}

	.section__content .detail dd a {
		padding-left: 3.2vw;
	}

	.section__content .detail dd a::before {
		width: 2.13333vw;
		height: 3.2vw;
	}
}

/*
	present
------------------------------ */
.present {
	margin-bottom: 3em;
	border: solid 1px rgb(var(--blu2));
	padding: 40px;
	position: relative;
}

.present::before {
	width: calc(100% - 10px);
	height: calc(100% - 10px);
	border: solid 1px rgb(var(--blu2));
	position: absolute;
	top: 4px;
	left: 4px;
	content: "";
}

@media screen and (max-width: 768px) {
	.present {
		padding: 6.4vw;
	}
}

/* present__title */
.present .present__title {
	margin-bottom: 1em;
	width: 100%;
	font-size: 20px;
	text-align: center;
}

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

/* present__list */
.present .present__list {
	display: flex;
	justify-content: space-between;
}

.present .present__list .content {
	width: 48%;
}

.present .present__list .content .detail dt {
	margin-bottom: 0.5em;
	font-weight: bold;
}

.present .present__list .content .detail dd {
	display: flex;
	flex-wrap: wrap;
	flex-direction: row-reverse;
	justify-content: space-between;
}

.present .present__list .content .detail dd .text {
	margin: 0;
	line-height: 1.75;
	width: 44%;
}

.present .present__list .content .detail dd .text-sub {
	margin-top: 0.5em;
	width: 100%;
	color: rgb(var(--blu2));
	font-size: 14px;
	font-weight: bold;
}

.present .present__list .content .detail dd .image {
	width: 52%;
}

@media screen and (max-width: 768px) {
	.present .present__list {
		display: block;
	}

	.present .present__list .content {
		margin-bottom: 1em;
		width: 100%;
	}

	.present .present__list .content .detail dd {
		flex-direction: column;
	}

	.present .present__list .content .detail dd .text,
	.present .present__list .content .detail dd .image {
		width: 100%;
	}

	.present .present__list .content .detail dd .text-sub {
		font-size: 3.2vw;
	}

	.present .present__list .content .detail dd .image {
		margin-bottom: 0.5em;
	}
}

/* ----------------------------------------------------
	concept
---------------------------------------------------- */
.concept {
	padding: 80px 0;
}

.concept .container::before {
	background: url(../img/iconSnow1.svg) center no-repeat;
	background-size: cover;
	width: 144px;
	height: 140px;
	position: absolute;
	top: 0;
	right: -5px;
	z-index: 1;
	content: "";
}

@media screen and (max-width: 768px) {
	.concept .container::before {
		background-size: 100% auto;
		width: 30vw;
		height: 30vw;
		top: -10vw;
		right: 0;
	}
}

/*
	conseptContent
------------------------------ */
.conseptContent .conseptContent__title {
	background: #EBF8FD;
	margin-bottom: 1.5em;
	line-height: 1.5;
	color: rgb(var(--blu2));
	font-size: 22px;
	text-align: center;
	border-top: solid 1px rgb(var(--blu2));
	border-bottom: solid 1px rgb(var(--blu2));
}

.conseptContent .conseptContent__title::before,
.conseptContent .conseptContent__title::after {
	background: #fff;
	height: 4px;
	display: block;
	content: "";
}

.conseptContent .section__content {
	margin-bottom: 3em;
}

@media screen and (max-width: 768px) {
	.conseptContent .conseptContent__title {
		font-size: 4.26667vw;
	}
}

/*
	staySchedule
------------------------------ */
.staySchedule {
	margin-bottom: 3em;
	display: flex;
	justify-content: space-between;
}

.staySchedule__title {
	margin-bottom: 0.25em;
	color: rgb(var(--blu2));
	font-size: 20px;
}

.staySchedule__table {
	width: 48%;
}

.staySchedule__table th,
.staySchedule__table td {
	vertical-align: top;
}

.staySchedule__table th {
	padding-right: 1.5em;
	font-size: 18px;
	font-weight: bold;
	position: relative;
}

.staySchedule__table th span {
	display: inline-flex;
	align-items: center;
}

.staySchedule__table th::before,
.staySchedule__table th span::before {
	background: rgb(var(--blu2));
	display: inline-block;
	content: "";
}

.staySchedule__table th::before {
	width: 1px;
	height: 100%;
	position: absolute;
	left: 5px;
}

.staySchedule__table tr:first-of-type th::before {
	top: 15px;
}

.staySchedule__table tr:last-of-type th::before {
	height: 15px;
}

.staySchedule__table th span::before {
	margin-right: 0.25em;
	width: 11px;
	height: 11px;
	border-radius: 11px;
}

.staySchedule__table td {
	font-size: 14px;
}

.staySchedule__table td .text.reset {
	margin: 0;
}

.staySchedule__table td .text.reset+.note {
	margin-bottom: 1rem;
}

.staySchedule__table td .text b {
	font-size: 18px;
	font-weight: bold;
	display: block;
}

@media screen and (max-width: 768px) {
	.staySchedule {
		display: block;
	}

	.staySchedule__title {
		font-size: 4vw;
	}

	.staySchedule__table {
		width: 100%;
	}

	.staySchedule__table th {
		padding-right: 0;
		width: 33%;
		font-size: 3.73333vw;
	}

	.staySchedule__table th::before {
		left: calc((2.66667vw - 1px) / 2);
	}

	.staySchedule__table tr:first-of-type th::before {
		top: 4vw;
	}

	.staySchedule__table tr:last-of-type th::before {
		height: 4vw;
	}

	.staySchedule__table th span::before {
		width: 2.66667vw;
		height: 2.66667vw;
		border-radius: 2.66667vw;
	}

	.staySchedule__table td {
		/* width: 70%; */
		font-size: 3.2vw;
	}

	.staySchedule__table td .text b {
		font-size: 3.73333vw;
	}
}

/*
	linkBtn
------------------------------ */
.concept .container div.linkBtn {
	margin-bottom: 3em;
}

.concept .container div.linkBtn a {
	max-width: 600px;
}

.concept .container li.linkBtn a {
	margin: 0 auto;
	max-width: 420px;
	letter-spacing: -0.005em;
}

.concept .container li.linkBtn a::before {
	right: 1em;
}

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

	.concept .container div.linkBtn a,
	.concept .container li.linkBtn a {
		max-width: 100%;
	}
}

/* ----------------------------------------------------
	bardWatching
---------------------------------------------------- */
.bardWatching {
	background: #EBF8FD;
	padding: 80px 0;
	overflow: hidden;
}

.bardWatching .container::before {
	background: url(../img/iconSnow2.svg) center no-repeat;
	background-size: cover;
	width: 191px;
	height: 155px;
	position: absolute;
	top: 0;
	left: -67px;
	z-index: 1;
	content: "";
}

@media screen and (max-width: 768px) {
	.bardWatching {
		padding: 21.33333vw 0;
	}

	.bardWatching .container::before {
		background-size: 100% auto;
		width: 40vw;
		height: 40vw;
		top: -15vw;
		left: -10vw;
	}
}

/*
	linkBtn
------------------------------ */
.bardWatching .container .linkBtn a {
	margin: 0 auto;
	max-width: 600px;
}

@media screen and (max-width: 768px) {
	.bardWatching .container .linkBtn a {
		max-width: 100%;
	}
}

/*
	type1
------------------------------ */
.bardWatching .type1 li {
	margin-bottom: 0.25em;
	line-height: 1.5;
}

.bardWatching .type1 li small {
	font-size: 14px;
}

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

/*
	note
------------------------------ */
.bardWatching .note {
	margin-bottom: 2em;
}

/* ----------------------------------------------------
	sweets
---------------------------------------------------- */
.sweets {
	padding: 80px 0 40px;
}

@media screen and (max-width: 768px) {
	.sweets {
		padding: 21.33333vw 0 10.66667vw;
	}
}

/* ----------------------------------------------------
	goods
---------------------------------------------------- */
.goods {
	padding: 40px 0 80px;
}

@media screen and (max-width: 768px) {
	.goods {
		padding: 10.66667vw 0 21.33333vw;
	}
}

/*
	good__time
------------------------------ */
.goods__time {
	margin-bottom: 2em;
	font-weight: bold;
	text-align: center;
}

.goods__time dt {
	color: rgb(var(--blu2));
	font-size: 20px;
}

.goods__time dd {
	font-size: 18px;
}

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

	.goods__time dd {
		font-size: 4.26667vw;
	}
}

/*
	good__list
------------------------------ */
.goods__list {
	display: flex;
	flex-wrap: wrap;
}

.goods__list li {
	width: 29.22222%;
	text-align: center;
}

.goods__list li:not(:nth-child(3n)) {
	margin-right: 6.16667%;
}

.goods__list li figure figcaption {
	margin: 1em 0 2em;
	line-height: 1.5;
	font-size: 18px;
}

.goods__list li figure figcaption small {
	font-size: 16px;
	display: block;
}

@media screen and (max-width: 768px) {
	.goods__list {
		display: block;
	}

	.goods__list li {
		width: 100%;
	}

	.goods__list li:not(:nth-child(3n)) {
		margin-right: 0;
	}

	.goods__list li figure figcaption {
		font-size: 4.26667vw;
	}

	.goods__list li figure figcaption small {
		font-size: 3.73333vw;
	}
}

/*
	goods__lead
------------------------------ */
.goods__lead {
	margin: 2em 0 3em;
	text-align: center;
}

.goods__lead .title {
	margin-bottom: 0.5em;
	font-size: 20px;
}

.goods__lead .text {
	font-size: 16px;
}

@media screen and (max-width: 768px) {
	.goods__lead .title {
		font-size: 4.8vw;
	}

	.goods__lead .text {
		font-size: 3.77777vw;
	}
}

/*
	linkBtn
------------------------------ */
.goods .linkBtn {
	margin-bottom: 1em;
}

.goods .linkBtn a {
	background: rgb(var(--wht));
	max-width: 400px;
	color: rgb(var(--blu2));
	border: solid 1px rgb(var(--blu2));
}

.goods .linkBtn a::before {
	background: rgb(var(--blu2));
}

@media screen and (max-width: 768px) {
	.goods .linkBtn a {
		max-width: 100%;
	}
}

/*
	note
------------------------------ */
.goods .note {
	text-align: center;
}

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

/* ----------------------------------------------------
	contact
---------------------------------------------------- */
.contact .container {
	padding: 80px 0;
	max-width: 900px;
	line-height: 1;
	text-align: center;
	border-top: solid 1px rgb(var(--blu2));
}

.contact__title {
	margin-bottom: 1rem;
	color: rgb(var(--blu2));
	font-size: 24px;
}

.contact__tel {
	margin-bottom: 1.5em;
	font-size: 41px;
	font-weight: bold;
	display: flex;
	justify-content: center;
	align-items: center;
}

.contact__tel a {
	color: rgb(var(--blk));
	font-size: 47px;
	text-decoration: none;
}

.contact__access dt {
	margin-bottom: 0.5em;
	font-size: 22px;
	font-weight: bold;
}

.contact__access dd {
	font-size: 18px;
}

.contact__access dd a {
	color: rgb(var(--blk));
}

.contact__access dd a:hover {
	text-decoration: none;
}

@media screen and (max-width: 768px) {
	.contact .container {
		padding: 21.33333vw 0;
	}

	.contact__title {
		font-size: 5.33333vw;
	}

	.contact__tel {
		font-size: 6.4vw;
	}

	.contact__tel a {
		font-size: 8vw;
		letter-spacing: -0.005em;
	}

	.contact__access dt {
		font-size: 4.8vw;
	}

	.contact__access dd {
		font-size: 4.26667vw;
	}
}

/* ----------------------------------------------------
	map
---------------------------------------------------- */
.map iframe {
	width: 100%;
	height: 345px;
}