@charset "UTF-8";

/*--------------------------------------------------------------
# Reset CSS by A Modern CSS Reset
--------------------------------------------------------------*/
:root {
	--cblack: #000;
	--cdpink: #f69096;
	--clblack: #333;
	--clpink: #fff8f9;
	--cpink: #ffd3e4;
	--cred: #c90926;
	--cwhite: #fff;
}

/* Box sizing rules */
*, *::before, *::after {
	box-sizing: border-box;
}

/* Remove default padding */

/* Remove list styles on ul, ol elements with a class attribute */
ul, ol {
	padding: 0;
	list-style: none;
}

/* Remove default margin */
body, h1, h2, h3, h4, p, ul, ol, figure, blockquote, dl, dd {
	margin: 0;
}

/* Set core root defaults */
html {
	height: -webkit-fill-available;
	font-size: 62.5%;

	scroll-behavior: smooth;
}

/* Set core body defaults */
body {
	height: -webkit-fill-available;
	min-height: 100vh;
	color: var(--clblack);
	background-color: var(--cwhite);
	font-family: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", YuMincho, serif;
	font-size: 1.6rem;
	line-height: 1.8;
	letter-spacing: .1em;
	text-rendering: optimizeSpeed;
}

a {
	text-decoration: none;
	transition: all .3s ease;
}

/* A elements that don't have a class get default styles */
a:not([class]) {
	-webkit-text-decoration-skip: ink;
	text-decoration-skip-ink: auto;
}

/* Make images easier to work with */
img {
	display: block;
	max-width: 100%;
	height: auto;
}

/* Natural flow and rhythm in articles by default */
article > * + * {
	margin-top: 1em;
}

/* Inherit fonts for inputs and buttons */
input, button, textarea, select {
	font: inherit;
}

/* Remove all animations and transitions for people that prefer not to see them */
@media (prefers-reduced-motion:reduce) {
	* {
		transition-duration: .01ms !important;
		-webkit-animation-duration: .01ms !important;
		animation-duration: .01ms !important;
		-webkit-animation-iteration-count: 1 !important;
		animation-iteration-count: 1 !important;

		scroll-behavior: auto !important;
	}
}

/*--------------------------------------------------------------
# Common - 共通
--------------------------------------------------------------*/
.flex {
	display: flex;
}

.mw_1366 {
	max-width: 1366px;
	margin: 0 auto;
}

.pd {
	padding: 8rem 14rem;
}

.pd_lr {
	padding: 0 14rem;
}

.pd_b {
	padding-bottom: 8rem;
}

.main_ttl {
	display: inline-block;
	position: relative;
	min-width: 300px;
	margin-bottom: 8rem;
	padding: 2rem 4rem;
	color: var(--cdpink);
	background-color: var(--cwhite);
	font-size: 2.8rem;
	line-height: 1;
	text-align: center;
}

.main_ttl::before, .main_ttl::after {
	position: absolute;
	top: -10px;
	width: 2px;
	height: calc(100% + 20px);
	background-color: var(--cdpink);
	content: "";
}

.main_ttl::before {
	left: 0;
}

.main_ttl::after {
	right: 0;
}

.main_ttl > span::before, .main_ttl > span::after {
	position: absolute;
	left: -10px;
	width: calc(100% + 20px);
	height: 2px;
	background-color: var(--cdpink);
	content: "";
}

.main_ttl > span::before {
	top: 0;
}

.main_ttl > span::after {
	bottom: 0;
}

/*--------------------------------------------------------------
# Mv - メインビジュアル
--------------------------------------------------------------*/
.site_header {
	position: relative;
}

.mv_slide {
	overflow: hidden;
}

.slick-dotted.slick-slider {
	margin-bottom: 0;
}

.mv_slide::before, .mv_slide::after {
	display: block;
	position: absolute;
	z-index: 97;
	top: 0;
	width: calc((100% - 1086px) / 2);
	padding-top: 100%;
	opacity: .5;
	background: #fff;
	content: "";
}

.mv_slide::before {
	left: 0;
}

.mv_slide::after {
	right: 0;
}

.mv_slide_item {
	width: 100%;
	max-width: 1086px;
}

.mv_ctrl {
	overflow: hidden;
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	width: 100%;
	margin: auto;
}

.mv_arrow {
	display: flex;
	position: absolute;
	z-index: 99;
	top: 0;
	bottom: 14rem;
	width: 45px;
	height: 45px;
	margin: auto 0;
	padding: 0 1.5rem;
	border-radius: 50%;
	background-color: rgb(255 255 255 / 90%);
	font-size: 0;
	line-height: 0;
	cursor: pointer;

	align-items: center;
}

.mv_arrow > i {
	color: var(--cred);
	font-size: 3rem;
}

.mv_prev {
	left: 11.75rem;
}

.mv_next {
	right: 11.75rem;
}

.slick-dots {
	bottom: 9.5rem;
	text-align: left;
}

.slick-dots li {
	z-index: 99;
	width: 30px;
	height: 3px;
}

.slick-dots li button {
	width: 30px;
	height: 3px;
}

.slick-dots li button:before {
	width: 30px;
	height: 3px;
	background-color: var(--cdpink);
	font-family: none;
	font-size: 0;
}

.mv_btm {
	position: absolute;
	z-index: 98;
	bottom: 0;
}

.mv_btm_img {
	overflow: hidden;
	height: 140px;
}

.mv_btm_img > img {
	width: 100vw;
	height: 100%;

	-o-object-fit: cover;
	object-fit: cover;
	-o-object-position: top;
	object-position: top;
}

.mv_info {
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	margin: 0 auto;
	color: var(--cdpink);

	align-items: flex-end;
	justify-content: space-between;
}

.site_ttl {
	max-width: 570px;
}

.mv_place {
	margin-bottom: 3rem;
	font-size: 2.8rem;
	font-weight: bold;
	line-height: 1;
}

.mv_place > span {
	font-size: 1.6rem;
}

.mv_status {
	margin-bottom: 3rem;
	padding: .5rem 1.5rem;
	background-color: var(--cwhite);
	font-size: 2.8rem;
	font-weight: bold;
	line-height: 1;
}

.mv_status > span {
	font-size: 1.1rem;
}

/*--------------------------------------------------------------
# Story - おはなし
--------------------------------------------------------------*/
.story_content {
	background: linear-gradient(0deg, var(--clpink) 0%, var(--cwhite) 3%, var(--cwhite) 97%, var(--clpink) 100%);
}

.story_content > .inner {
	gap: 4rem;
}

.story_r {
	flex-direction: column;
	white-space: nowrap;

	align-items: flex-start;
	gap: 4rem;
	-webkit-writing-mode: vertical-rl;
	writing-mode: vertical-rl;
}

.main_ttl_v {
	position: relative;
	min-height: 300px;
	padding: 4rem 2rem;
	color: var(--cdpink);
	background-color: var(--clpink);
	font-size: 2.8rem;
	line-height: 1;
	text-align: center;

	-webkit-writing-mode: vertical-rl;
	writing-mode: vertical-rl;
}

.main_ttl_v::before, .main_ttl_v::after {
	position: absolute;
	top: -10px;
	width: 2px;
	height: calc(100% + 20px);
	background-color: var(--cdpink);
	content: "";
}

.main_ttl_v::before {
	left: 0;
}

.main_ttl_v::after {
	right: 0;
}

.main_ttl_v span {
	font-size: 1.8rem;
}

.main_ttl_v span::before, .main_ttl_v span::after {
	position: absolute;
	left: -10px;
	width: calc(100% + 20px);
	height: 2px;
	background-color: var(--cdpink);
	content: "";
}

.main_ttl_v span::before {
	top: 0;
}

.main_ttl_v span::after {
	bottom: 0;
}

.story_txt > p + p {
	margin-right: 3rem;
}

.story_l {
	position: relative;
}

.story_l > p {
	position: absolute;
	right: 6.5rem;
	bottom: 0;
}

.story_l > p::before {
	position: absolute;
	z-index: 0;
	top: 1rem;
	right: -1rem;
	width: 100%;
	height: 100%;
	border: 1px solid var(--clblack);
	background-color: var(--cwhite);
	content: "";
}

.story_l > p > span {
	display: block;
	position: relative;
	z-index: 1;
	padding: 3rem 2rem;
	color: var(--cwhite);
	background-color: var(--clblack);
	font-size: 2rem;
	font-weight: bold;
	line-height: 1;

	-webkit-writing-mode: vertical-rl;
	writing-mode: vertical-rl;
}

/*--------------------------------------------------------------
# Character - 登場人物
--------------------------------------------------------------*/
.character_content {
	background-color: var(--clpink);
	text-align: center;
}

.character_list {
	text-align: left;
}

.character_item {
	align-items: flex-end;
}

.character_item:nth-child(odd) {
	flex-direction: row-reverse;

	align-items: flex-start;
}

.character_item:nth-child(odd) .character_txt {
	flex-direction: row-reverse;
}

.character_item:nth-child(2) {
	margin-top: -10rem;
	margin-bottom: 10rem;
}

.character_txt {
	width: 55%;

	align-items: flex-start;
	gap: 4rem;
}

.character_ttl {
	position: relative;
	min-height: 190px;
	padding: 3rem 2rem;
	border-bottom: 4px solid #333;
	color: var(--cred);
	background-color: var(--cwhite);
	font-size: 2.4rem;
	line-height: 1;
	text-align: center;

	-webkit-writing-mode: vertical-rl;
	writing-mode: vertical-rl;
}

.character_nn {
	position: relative;
	margin-bottom: 1rem;
	font-size: 2.2rem;
	font-weight: bold;
}

.character_nn::after {
	position: absolute;
	top: 0;
	bottom: 0;
	width: 80px;
	height: 1px;
	margin: auto 0 auto 1rem;
	background-color: var(--clblack);
	content: "";
}

.character_desc {
	font-size: 1.8rem;
	letter-spacing: .03em;
}

.character_img {
	width: 45%;
}

.character_img > img {
	margin: 0 auto;
}

.character_content > .inner {
	position: relative;
}

.character_content > .inner::before {
	position: absolute;
	top: 0;
	right: 5rem;
	width: 122px;
	height: 118px;
	background-image: url(../img/umehishi.svg);
	background-repeat: no-repeat;
	background-size: contain;
	content: "";
}

.character_item:first-child .character_ttl::before {
	position: absolute;
	right: -8rem;
	bottom: -10rem;
	width: 127px;
	height: 42px;
	background-image: url(../img/cloud.svg);
	background-repeat: no-repeat;
	background-size: contain;
	content: "";
}

.character_item:nth-child(2) .character_ttl::before {
	position: absolute;
	bottom: -13rem;
	left: -5rem;
	width: 81px;
	height: 78px;
	background-image: url(../img/ume.svg);
	background-repeat: no-repeat;
	background-size: contain;
	content: "";
}

.character_item:last-child .character_ttl::before {
	position: absolute;
	right: -5rem;
	bottom: -8rem;
	width: 87px;
	height: 36px;
	background-image: url(../img/matsu.svg);
	background-repeat: no-repeat;
	background-size: contain;
	content: "";
}

/*--------------------------------------------------------------
# Sightseeing - 観光
--------------------------------------------------------------*/
.ss_ttl > span {
	font-size: 5.2rem;
}

.ss_content {
	text-align: center;
}

.ss_ttl {
	display: inline-block;
	margin-bottom: 8rem;
	padding: 0 4rem;
	border-right: 2px dotted var(--cred);
	border-left: 2px dotted var(--cred);
	color: var(--cred);
	font-size: 3.6rem;
	line-height: 1;
}

.ss_item {
	margin-bottom: 12rem;
	text-align: left;
}

.step_head {
	margin-right: 4rem;
	margin-bottom: 1rem;

	gap: 4rem;
	justify-content: space-between;
}

.step_ttl {
	display: flex;
	width: calc(100% - 252px);
	height: 150px;
	background-image: url(../img/step_bg.svg);
	background-repeat: no-repeat;
	font-size: 2.2rem;
	font-weight: bold;

	align-items: center;
	gap: 2rem;
}

.step_ttl > p {
	width: 228px;
	padding-left: 11rem;
	color: var(--cwhite);
}

.step_ttl > h3 {
	width: calc(100% - 228px);
}

.step_img {
	width: 252px;
}

.step_cont {
	position: relative;
}

.step_cont_img {
	display: inline-block;
	position: relative;
	z-index: 1;
	margin-left: 8rem;
}

.step_cont_desc {
	position: absolute;
	bottom: -4rem;
	left: 0;
	height: 100%;
	padding: 4rem 4rem 4rem 65.4rem;
	background-color: var(--clpink);
}

.step_cont_desc > p + p {
	margin-top: 2rem;
}

.ss_item:nth-of-type(even) .step_head {
	flex-direction: row-reverse;
	margin-right: 0;
	margin-left: 4rem;
}

.ss_item:nth-of-type(even) .step_cont {
	text-align: right;
}

.ss_item:nth-of-type(even) .step_cont_img {
	margin-right: 8rem;
	margin-left: 0;
}

.ss_item:nth-of-type(even) .step_cont_desc {
	padding: 4rem 65.4rem 4rem 4rem;
	text-align: left;
}

.ss_item:last-of-type {
	margin-bottom: 0;
}

/*--------------------------------------------------------------
# Model - モデルコース
--------------------------------------------------------------*/
.ss_model_ttl {
	display: inline-block;
	position: relative;
	margin-bottom: 4rem;
	padding: 2rem 8rem;
	text-align: center;
}

.ss_model_ttl::before, .ss_model_ttl::after {
	position: absolute;
	width: 50px;
	height: 50px;
	content: "";
}

.ss_model_ttl::before {
	right: 0;
	bottom: 0;
	border-right: 3px solid var(--clblack);
	border-bottom: 3px solid var(--clblack);
}

.ss_model_ttl::after {
	top: 0;
	left: 0;
	border-top: 3px solid var(--clblack);
	border-left: 3px solid var(--clblack);
}

.ss_model_ttl > span {
	display: block;
	color: var(--cred);
	font-size: 3.6rem;
}

.ss_model_ttl > span:first-child {
	color: var(--clblack);
	font-size: 2.2rem;
}

.ss_model_in {
	counter-reset: model_num 0;

	flex-wrap: wrap;
	gap: 4rem;
}

.ss_model_item > a {
	display: block;
	border: 3px solid var(--clblack);
}

.ss_model_img {
	overflow: hidden;
	position: relative;
}

.ss_model_img::before {
	display: block;
	padding-top: 70.7%;
	content: "";
}

.ss_model_img > img {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	transition: .3s all ease;

	-o-object-fit: cover;
	object-fit: cover;
}

.ss_model_item {
	width: calc((100% / 2) - (4rem / 2));
}

.ss_model_item > a > h4 {
	display: flex;
	border-top: 3px solid var(--clblack);
	color: var(--clblack);
	font-size: 2.4rem;

	align-items: center;
	gap: 4rem;
}

.ss_model_item > a > h4::before {
	display: block;
	padding: 4rem;
	color: var(--cwhite);
	background-color: var(--clblack);
	font-size: 3.6rem;
	line-height: 1;
	content: "0"counter(model_num);
	counter-increment: model_num 1;
}

.ss_model_item > a:hover .ss_model_img > img {
	transform: scale(1.1);
}

/*--------------------------------------------------------------
# Schedule - スケジュール・料金
--------------------------------------------------------------*/
.schedule_content {
	background-color: var(--clpink);
}

.schedule_content_in {
	padding: 0 4rem 14rem;
	background: linear-gradient(0deg, var(--clpink) 0%, var(--cwhite) 10%, var(--cwhite) 90%, var(--clpink) 100%);
}

.schedule_ttl {
	margin-bottom: 6rem;
	color: var(--cred);
	font-size: 3.6rem;
	line-height: 1;
	text-align: center;
}

.schedule_ttl > span {
	font-size: 5.2rem;
}

.schedule_ttl > .mark {
	display: inline-block;
	margin-left: -1.5rem;
	font-size: 7.2rem;
	font-weight: normal;
	transform: rotate(15deg);
}

.schedule_info {
	justify-content: space-between;
}

.schedule_cont h3 {
	position: absolute;
	top: 0;
}

.schedule_cont h3::before {
	position: absolute;
	z-index: 0;
	top: 1rem;
	right: -1rem;
	width: 100%;
	height: 100%;
	border: 1px solid var(--clblack);
	background-color: var(--cwhite);
	content: "";
}

.schedule_cont h3 > span {
	display: block;
	position: relative;
	z-index: 1;
	min-height: 190px;
	padding: 3rem 2rem;
	color: var(--cwhite);
	background-color: var(--clblack);
	font-size: 2rem;
	font-weight: bold;
	line-height: 1;
	text-align: center;

	-webkit-writing-mode: vertical-rl;
	writing-mode: vertical-rl;
}

.schedule_cont > div {
	position: relative;
}

.schedule_time {
	margin-bottom: 8rem;
}

.schedule_time > h3 {
	left: -11rem;
}

.schedule_calendar {
	margin-bottom: 8rem;
	margin-left: -4rem;
}

.schedule_list {
	margin-right: 11rem;
}

.schedule_month {
	color: var(--cred);
	font-size: 3.6rem;
	font-weight: bold;
}

.schedule_month > span {
	font-size: 5.2rem;
}

.schedule_day {
	margin-bottom: .5rem;
	font-size: 2rem;
}

.schedule_calendar > h3 {
	right: 0;
}

.schedule_calendar .schedule_day {
	letter-spacing: -.04em;
}

.schedule_alert {
	color: var(--cred);
	font-size: 1.6rem;
	font-weight: bold;
}

.schedule_price > h3 {
	left: -11rem;
}

.schedule_price_list {
	font-size: 2.2rem;
	font-weight: bold;

	flex-wrap: wrap;
}

.schedule_price_list span {
	font-size: 3rem;
}

.schedule_cont {
	width: 42%;
}

.schedule_price_list > dt {
	width: 49%;
}

.schedule_price_list > dd {
	width: 51%;
}

.schedule_price_list > .free {
	color: var(--cred);
}

.schedule_reserve > .inner {
	align-items: center;
	gap: 3rem;
	justify-content: center;
}

.reserve_img {
	width: 120px;
}

.reserve_btn > a {
	display: flex;
	position: relative;
	padding: 2rem 4rem 2rem 9rem;
	border: 2px solid var(--cred);
	color: #555;
	color: var(--cwhite);
	background-color: var(--cred);
	font-size: 16px;
	font-size: 2rem;
	font-weight: bold;
	text-align: center;

	align-items: center;
	justify-content: center;
}

.reserve_btn > a::before {
	position: absolute;
	top: 50%;
	left: -30px;
	margin-top: -15px;
	border: 15px solid transparent;
	border-right: 15px solid var(--cred);
	content: "";
}

.reserve_btn > a::after {
	position: absolute;
	left: 4rem;
	font-family: "Font Awesome 6 Free";
	font-size: 4rem;
	line-height: 1;
	content: "\f0a9";
}

.reserve_btn > a:hover {
	opacity: .7;
}

.schedule_reserve > p {
	margin-top: 3rem;
	text-align: center;
}

/*--------------------------------------------------------------
# Access - アクセス
--------------------------------------------------------------*/
.access_content {
	background-color: var(--clpink);
}

.access_map {
	overflow: hidden;
	position: relative;
	border: 3px solid var(--cdpink);
}

.access_map::before {
	display: block;
	padding-top: 45%;
	content: "";
}

.access_content iframe {
	position: absolute;
	top: 0;
	left: 0;
}

/*--------------------------------------------------------------
# Sns - 最新情報
--------------------------------------------------------------*/
.sns_content > .inner {
	padding-bottom: 1rem;
	text-align: center;
}

.sns_content .main_ttl {
	background-color: var(--clpink);
}

.sns_col {
	gap: 4rem;
	justify-content: space-between;
}

.sns_col_l, .sns_col_r {
	position: relative;
	width: calc((100% / 2) - (4rem / 2));
}

.sns_col_r {
	display: flex;

	justify-content: flex-end;
}

.sns_col_l::before, .sns_col_r::before {
	position: absolute;
	z-index: 1;
	top: 1rem;
	left: 1rem;
	width: 100%;
	height: 100%;
	background-color: var(--clpink);
	content: "";
}

.sns_col_l > div, .sns_col_r > div {
	position: relative;
	z-index: 2;
}

.fb_wrap {
	width: 500px;
}

.fb-page, .fb-page span, .fb_wrap iframe {
	width: 100% !important;
	height: 500px !important;
}

/*--------------------------------------------------------------
# Gallery - ギャラリー
--------------------------------------------------------------*/
.gallery_content > .inner {
	align-items: flex-start;
	gap: 5rem;
}


.gallery_content .main_ttl_v {
	color: var(--clblack);
	background-color: var(--cwhite);
}

.gallery_content .main_ttl_v::before, .gallery_content .main_ttl_v::after, .gallery_content .main_ttl_v span::before, .gallery_content .main_ttl_v span::after {
	background-color: var(--clblack);
}

.gallery_list {
	width: 100%;

	flex-wrap: wrap;
	gap: 4rem;
}

.gallery_list .swipebox {
	position: relative;
	width: calc((100% / 3) - (8rem / 3));
}

.gallery_list .swipebox::before {
	display: block;
	padding-top: 70.7%;
	content: "";
}

.gallery_list .swipebox > img {
	position: absolute;
	z-index: 2;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;

	-o-object-fit: cover;
	object-fit: cover;
}

.gallery_list .swipebox::after {
	display: block;
	position: absolute;
	z-index: 1;
	top: 1rem;
	left: -1rem;
	width: 100%;
	height: 100%;
	background-color: var(--clblack);
	content: "";
}

/*--------------------------------------------------------------
# External Link - 外部サイトリンク
--------------------------------------------------------------*/
.ex_link > .inner {
	gap: 4rem;
	justify-content: center;
}

.ex_link a {
	display: flex;
	position: relative;
	width: 100%;
	padding: 2rem 4rem;
	border: 2px solid var(--cred);
	color: var(--cwhite);
	background-color: var(--cred);
	font-size: 2rem;
	font-weight: bold;
	text-align: center;

	align-items: center;
	justify-content: center;
}

.ex_link {
	background-color: var(--clpink);
}

.ex_link a::before {
	position: absolute;
	left: 4rem;
	margin-right: 4rem;
	font-family: "Font Awesome 6 Free";
	font-size: 4rem;
	line-height: 1;
	content: "\f0a9";
}

.ex_link a:first-child {
	padding-left: 8rem;
}

.ex_link a:hover {
	opacity: .7;
}

/*--------------------------------------------------------------
# Footer - フッター
--------------------------------------------------------------*/
.site_footer {
	color: var(--cwhite);
	background-color: var(--cdpink);
}

.copy {
	padding: 1rem 0;
	font-size: 1.2rem;
	text-align: center;
}

/*--------------------------------------------------------------
# SP - スマホ
--------------------------------------------------------------*/
@media screen and (max-width:1024px) {

	/*--------------------------------------------------------------
	# Common - 共通
	--------------------------------------------------------------*/
	body {
		font-size: 1.4rem;
	}

	.pd {
		padding: 4rem 2rem;
	}

	.pd_lr {
		padding: 0 2rem;
	}

	.pd_b {
		padding: 0 4rem;
	}

	/*--------------------------------------------------------------
	# Mv - メインビジュアル
	--------------------------------------------------------------*/
	.mv_ctrl {
		position: static;
	}

	.mv_arrow {
		display: none !important;
	}

	.slick-dots {
		right: 0;
		bottom: -4rem;
		left: 0;
		text-align: center;
	}

	.mv_info {
		bottom: -1.5rem;
	}

	.mv_btm_img {
		height: 70px;
	}

	.mv_place {
		display: none;
	}

	.mv_status {
		display: none;
	}

	.site_ttl {
		width: 75%;
		margin: 0 auto;
	}

	/*--------------------------------------------------------------
	# Story - おはなし
	--------------------------------------------------------------*/
	.story_content > .inner {
		flex-direction: column;
		padding-top: 8rem;
	}

	.story_l > p {
		right: 1rem;
	}

	.story_l > p::before {
		top: .5rem;
		right: -.5rem;
	}

	.story_l > p > span {
		padding: 1.5rem;
		font-size: 1.2rem;
		text-align: center;
	}

	.story_r {
		white-space: normal;

		-webkit-writing-mode: horizontal-tb;
		writing-mode: horizontal-tb;
	}

	.main_ttl_v {
		width: 100%;
		min-height: auto;
		margin: 0 auto;
		padding: 2rem;
		font-size: 2.2rem;

		-webkit-writing-mode: horizontal-tb;
		writing-mode: horizontal-tb;
	}

	.story_txt > p + p {
		margin-top: 2rem;
		margin-right: 0;
	}

	.story_txt > p br {
		display: none;
	}

	/*--------------------------------------------------------------
	# Character - 登場人物
	--------------------------------------------------------------*/
	.character_content {
		overflow: hidden;
	}

	.character_content > .inner::before {
		display: none;
	}

	.main_ttl {
		width: 100%;
		margin-bottom: 4rem;
		padding: 2rem;
		font-size: 2.2rem;
	}

	.character_item, .character_item:nth-child(odd) {
		flex-direction: column-reverse;

		gap: 4rem;
	}

	.character_txt {
		width: 100%;
	}

	.character_item {
		position: relative;
	}

	.character_item:nth-child(2) {
		margin: 4rem 0;
	}

	.character_img {
		width: 70%;
	}

	.character_ttl {
		position: absolute;
		top: 2rem;
		padding: 2rem;
		font-size: 2rem;
	}

	.character_nn {
		font-size: 1.8rem;
	}

	.character_desc {
		font-size: 1.4rem;
	}

	.character_item:first-child .character_ttl::before {
		right: -5rem;
		bottom: -8rem;
	}

	.character_item:nth-child(2) .character_ttl::before {
		bottom: -11rem;
	}

	.character_item:last-child .character_ttl::before {
		bottom: -7rem;
	}

	/*--------------------------------------------------------------
	# Sightseeing - 観光
	--------------------------------------------------------------*/
	.ss_ttl {
		margin-bottom: 4rem;
		padding: 0 2rem;
		font-size: 3rem;
		line-height: 1.2;
	}

	.ss_ttl > span {
		font-size: 4.8rem;
	}

	.ss_item {
		margin-bottom: 4rem;
	}

	.step_head {
		position: relative;
		margin-right: 0;
		margin-bottom: 6rem;
	}

	.step_ttl {
		width: 100%;
		height: 77px;
		background-size: 35%;
		font-size: 1.6rem;

		gap: 1rem;
	}

	.step_ttl > p {
		width: 117px;
		padding-left: 52px;
		font-size: 1.4rem;
	}

	.step_ttl > h3 {
		width: calc(100% - 117px);
	}

	.step_img {
		position: absolute;
		z-index: 2;
		bottom: -13rem;
		width: 126px;
	}

	.step_cont_desc, .ss_item:nth-of-type(even) .step_cont_desc {
		position: static;
		height: auto;
		padding: 2rem;
	}

	.step_cont_img {
		display: block;
		margin-bottom: 2rem;
	}

	.ss_item:nth-of-type(even) .step_head {
		margin-left: 0;
	}

	/*--------------------------------------------------------------
	# Model - モデルコース
	--------------------------------------------------------------*/
	.ss_model_ttl {
		display: block;
		padding: 2rem;
	}

	.ss_model_ttl::before, .ss_model_ttl::after {
		width: 30px;
		height: 30px;
	}

	.ss_model_ttl > span {
		font-size: 2.8rem;
	}

	.ss_model_ttl > span:first-child {
		font-size: 1.8rem;
	}

	.ss_model_item {
		width: 100%;
	}

	.ss_model_item > a > h4 {
		font-size: 1.8rem;

		gap: 2rem;
	}

	.ss_model_item > a > h4::before {
		padding: 2rem;
		font-size: 2.8rem;
	}

	/*--------------------------------------------------------------
	# Schedule - スケジュール・料金
	--------------------------------------------------------------*/
	.schedule_content_in {
		padding: 0 2rem 2rem;
	}

	.schedule_ttl {
		margin-right: -2rem;
		margin-bottom: 4rem;
		font-size: 2.4rem;
	}

	.schedule_ttl > span {
		font-size: 3.8rem;
	}

	.schedule_ttl > .mark {
		margin-left: -1rem;
		font-size: 4.4rem;
	}

	.schedule_info {
		flex-direction: column;

		gap: 4rem;
	}

	.schedule_cont {
		width: 100%;
	}

	.schedule_cont h3 {
		position: relative;
		margin-bottom: 2rem;
	}

	.schedule_cont h3::before {
		top: .5rem;
		right: -.5rem;
	}

	.schedule_cont h3 > span {
		width: 100%;
		min-height: auto;
		padding: 2rem;
		font-size: 1.8rem;

		-webkit-writing-mode: horizontal-tb;
		writing-mode: horizontal-tb;
	}

	.schedule_time > h3, .schedule_price > h3 {
		left: auto;
	}

	.schedule_list {
		margin-right: 0;
	}

	.schedule_month {
		font-size: 2.4rem;
		text-align: center;
	}

	.schedule_month > span {
		font-size: 3.8rem;
	}

	.schedule_day {
		font-size: 1.4rem;
	}

	.schedule_calendar .schedule_day {
		letter-spacing: .1em;
	}

	.schedule_alert {
		font-size: 1.4rem;
	}

	.schedule_calendar, .schedule_time {
		margin-bottom: 4rem;
		margin-left: 0;
	}

	.schedule_price {
		margin-left: 0;
	}

	.schedule_price_list {
		margin-right: 0;
		margin-bottom: 2rem;
		font-size: 1.6rem;
	}

	.schedule_price_list span {
		font-size: 2.4rem;
	}

	.schedule_reserve > .inner {
		gap: 2.5rem;
	}

	.reserve_btn > a {
		padding: 2rem 2rem 2rem 5rem;
		font-size: 1.4rem;
	}

	.reserve_btn > a::after {
		left: 2rem;
		font-size: 2rem;
	}

	.schedule_reserve > p {
		margin-top: 1.5rem;
		text-align: left;
	}

	/*--------------------------------------------------------------
	# Access - アクセス
	--------------------------------------------------------------*/
	.access_content > .inner {
		margin-bottom: 4rem;
		padding: 0;
	}

	.access_map::before {
		padding-top: 100%;
	}

	/*--------------------------------------------------------------
	# Gallery - ギャラリー
	--------------------------------------------------------------*/
	.gallery_content > .inner {
		flex-direction: column;

		gap: 4rem;
	}

	.gallery_list {
		width: calc(100% - .5rem);
		margin-left: .5rem;

		gap: 3rem;
	}

	.gallery_list .swipebox {
		width: calc((100% / 2) - (3rem / 2));
	}

	.gallery_list .swipebox::after {
		top: .5rem;
		left: -.5rem;
	}

	/*--------------------------------------------------------------
	# Sns - 最新情報
	--------------------------------------------------------------*/
	.sns_col {
		flex-direction: column;
	}

	.sns_col_l, .sns_col_r {
		width: 100%;
	}

	/*--------------------------------------------------------------
	# External Link - 外部サイトリンク
	--------------------------------------------------------------*/
	.ex_link > .inner {
		flex-direction: column;
	}

	.ex_link a {
		padding: 2rem;
		font-size: 1.4rem;
	}

	.ex_link a::before {
		left: 2rem;
		font-size: 2rem;
	}

	.ex_link a:first-child {
		padding-left: 4rem;
	}
}