@charset "utf-8";
/* CSS Document */



/*----------------------
common
----------------------*/

body {
	font-family: "Kiwi Maru", 'Noto Sans JP', YuGothic, "Yu Gothic medium", "Hiragino Sans", Meiryo, "sans-serif";
	font-size: 16px;
	font-weight: 400;
	font-style: normal;
	color: #444;
	overflow-wrap: anywhere; /* 収まらない場合に折り返す */
	word-break: normal; /* 単語の分割はデフォルトに依存 */
	line-break: strict; /* 禁則処理を厳格に適用 */
}

p {
	font-size: 1.125rem;
	line-height: 1.7;
}

strong {
	font-weight: bold;
}

.content-area {
	width: 1040px;
	max-width: 1040px;
	margin: 0 auto;
	padding: 0 40px;
}

.pc-show {
	display: block;
}
.sp-show,
.tablet-show {
	display: none;
}

.mgn-b0 {
	margin-bottom: 0;
}



/*----------------------
header
----------------------*/

header {
	background: url("images/header_bg.png") no-repeat top center;
	background-size: auto 100%;
	margin-bottom: 7.5rem;
}

.header-area {
	max-width: 960px;
	margin: 0 auto;
	padding: 0 0 10rem;
}
.logo {
	text-align: right;
	margin-bottom: 2rem;
}
header h1 {
	margin-bottom: 4rem;
}
.header-sub {
	font-size: 1.25rem;
	line-height: 1.7;
	letter-spacing: 0.05em;
}
.header-sub span {
	background: linear-gradient(transparent 70%, #ccf5f5 30%);
}



/*----------------------
main common
----------------------*/

main h2 {
	text-align: center;
	font-size: 3rem;
	letter-spacing: 0.05em;
	margin-bottom: 6.25rem;
}
main h2 span {
	font-size: 4.25rem;
	color: #0cc;
	vertical-align: -2px;
}
main h2 img {
	margin-bottom: 0.5rem;
}



/*----------------------
rec
----------------------*/

#rec {
	padding-bottom: 5rem;
	background: url("images/wave.png") no-repeat bottom center;
	margin-bottom: 6.25rem;
}

#rec .flex,
#rec .flex-re {
	display: flex;
	justify-content: space-between;
	margin-bottom: 6.25rem;
}

#rec .flex-re {
	flex-direction: row-reverse;
}

.txt-right,
.txt-left {
	width: 440px;
	min-width: 440px;
}
.txt-right {
	margin-left: 3.75rem;
}
.txt-left {
	margin-right: 3.75rem;
}

.img-iwai01,
.img-iyashi01 {
	margin-left: -3.75rem;
}
.img-kami01 {
	margin-right: -3.75rem;
}

#rec h3 {
	font-size: 2rem;
	letter-spacing: 0.1em;
	text-align: center;
	padding: 2.5rem 0;
	border-top: 1px solid;
	border-bottom: 1px solid;
	margin-bottom: 2.5rem;
}

.rec-nishi h3 {
	color: #990;
	border-top-color: #990;
	border-bottom-color: #990;
}
.rec-taka h3 {
	color: #e63;
	border-top-color: #e63;
	border-bottom-color: #e63;
}
.rec-kita h3 {
	color: #5a2;
	border-top-color: #5a2;
	border-bottom-color: #5a2;
}

#rec h4 {
	font-size: 1.75rem;
	letter-spacing: 0.05em;
	line-height: 1.5;
	margin-bottom: 2.5rem;
}
#rec h4 span {
	font-size: 1.125rem;
}
#rec .rec-nishi h4 span,
#rec .rec-nishi .rec-price span {
	color: #bb0;
}
#rec .rec-taka h4 span,
#rec .rec-taka .rec-price span {
	color: #e63;
}
#rec .rec-kita h4 span,
#rec .rec-kita .rec-price span {
	color: #5a2;
}

#rec p {
	margin-bottom: 2.5rem;
}

#rec .rec-price {
	font-size: 1rem;
	margin-bottom: 0;
}

#rec .mgn-b0 {
	margin-bottom: 0;
}



/*----------------------
model
----------------------*/

#model .sec-read {
	text-align: center;
	margin-bottom: 6.25rem;
}

/* 上部に固定されるタブコンテナ */
.tab-list {
	display: flex;
	justify-content: space-between;
	position: sticky;
	top: 0;
	left: 0;
	right: 0;
	background: #fff;
	border-bottom: 5px solid #e63; /* 初期状態はタブ1の色 */
	transition: border-color .3s ease;
	width: 1040px;
	max-width: 1040px;
	padding: 1.5rem 40px 0;
	margin: 0 auto;
	font-size: 1.25rem;
	z-index: 2;
}

/* 各タブの基本スタイル */
.tab {
	flex: 1;
	padding: 15px;
	text-align: center;
	background: #eee;
	cursor: pointer;
	border-radius: 20px 20px 0 0;
	border-bottom: none;
	transition: background .3s, color .3s;
	max-width: 33%;
	gap: 1%;
}

/* タブがアクティブになった際のそれぞれの色 */
.tab.active[data-target="content1"] { background: #e63; color: #fff; }
.tab.active[data-target="content2"] { background: #bb0; color: #fff; }
.tab.active[data-target="content3"] { background: #5a2; color: #fff; }

/* コンテンツの基本スタイル */
.content {
	display: none;
	padding: 7.5rem 0;
	/* height: 800px;  スクロール動作確認用の高さ */
	background: #fff;
}

/* アクティブなコンテンツのみ表示 */
.content.active {
	display: block;
}


#model h3 {
	font-size: 3rem;
	line-height: 0.75;
	letter-spacing: 0.05em;
	text-align: center;
	margin-bottom: 6.25rem;
}
.model-nishi h3 { color: #bb0;}
.model-taka h3 { color: #e63;}
.model-kita h3 { color: #5a2;}

#model h3 span {
	font-family: 'Noto Sans JP', YuGothic, "Yu Gothic medium", "Hiragino Sans", Meiryo, "sans-serif";
	font-size: 0.875rem;
	color: #444;
}

.model-lead {
	display: flex;
	flex-direction: row-reverse;
}

.model-lead-txt {
	display: flex;
	flex-direction: row-reverse;
	max-height: 660px;
}
.model-lead-txt h4,
.model-lead-txt p {
	writing-mode: vertical-rl;
	text-orientation: upright;
	font-feature-settings: initial;
	-webkit-writing-mode: vertical-rl;
	-ms-writing-mode: tb-rl;
	
}
.model-lead-txt h4 {
	font-size: 1.75rem;
	margin: 0 3.75rem 0 2.5rem;
	line-height: 1.5;
}
.model-lead-txt h4 span {
	font-size: 1rem;
}
.model-nishi .model-lead-txt h4 span,
.model-nishi .price span {
	color: #bb0;
}
.model-taka .model-lead-txt h4 span,
.model-taka .price span {
	color: #e63;
}
.model-kita .model-lead-txt h4 span,
.model-kita .price span {
	color: #5a2;
}

.model-kita .model-lead-txt h4 .combined-num-main {
	font-size: 1.75rem;
	color: #444;
	text-combine-upright: all; /* 2桁以上の数字の縦中横 */
	-webkit-text-combine: horizontal;
	-ms-text-combine-horizontal: all;
	position: relative;
    left: -0.1em;
}
.model-lead-txt h4 span .combined-num-sub {
	font-size: 1rem;
	text-combine-upright: all; /* 2桁以上の数字の縦中横 */
	-webkit-text-combine: horizontal;
	-ms-text-combine-horizontal: all;
	position: relative;
    left: -0.1em;
}

.price {
	font-size: 1rem;
	writing-mode: horizontal-tb;
	text-align: left;
}



/* schedule */

.schedule {
	margin-bottom: 7.5rem;
}

.schedule h4 {
	font-size: 2.75rem;
	letter-spacing: 0.05em;
	text-align: center;
	padding: 3.75rem 0 0;
	background: url("images/ic_calender.png") no-repeat top center;
	margin: 8.75rem 0;
}

.day {
	text-align: center;
	border-top: 1px dashed #0cc;
	margin-bottom: 3.75rem;
}
.day img {
	margin: -3.75rem 0 0;
}

ol.sch-place {
	border-left: 6px solid #f6f6f6;
	margin: 0 0 7.5rem 38px;
}

.sch-place-list {
	display: flex;
	justify-content: space-between;
	margin-bottom: 3.75rem;
}

.time01,
.time02 {
	line-height: 2.5rem;
	border-radius: 10px;
	color: #fff;
	text-align: center;
}
.time01 {
	width: 80px;
	margin-left: -44px;
}
.time02 {
	width: 180px;
	font-size: 1.125rem;
	margin-bottom: 1.75rem;
}
.sch-nishi .time01,
.sch-nishi .time02 {
	background: #bb0;
}
.sch-taka .time01,
.sch-taka .time02 {
	background: #e63;
}
.sch-kita .time01,
.sch-kita .time02 {
	background: #5a2;
}

.place-area {
	width: 840px;
	padding: 3.75rem;
	background: #f6f6f6;
	border-radius: 20px;
	display: flex;
	justify-content: space-between;
}

.place-txt {
	width: 320px;
}
.place-txt h5 {
	font-size: 1.75rem;
	margin-bottom: 1.75rem;
}
.place-txt p {
	margin-bottom: 1.75rem;
}
.place-event li {
	line-height: 1.75rem;
	padding: 0 1rem;
	margin: 0 0.5rem 0.5rem 0;
	background: #ddd;
	border-radius: 5px;
	float: left;
}

.place-photo {
	clear: both;
	width: 360px;
}
.place-photo img {
	width: 100%;
	border-radius: 20px;
}

.schedule .move {
	width: fit-content;
	color: #fff;
	line-height: 1.5;
	padding: 0.5rem 1.5rem;
	background: #999;
	border-radius: 1.5rem;
	margin: 0 0 3.75rem 76px;
}
.move-human {
	display: inline-block;
	background: url("images/ic_human.png") no-repeat left 4px;
	padding-left: 1rem;
}
.move-car {
	display: inline-block;
	background: url("images/ic_car.png") no-repeat left 4px;
	padding-left: 1.5rem;
}


.caution-area {
	padding: 2.5rem;
	border-radius: 20px;
}
.model-nishi .caution-area { background: #f8f8e5;}
.model-taka .caution-area { background: #fdefea;}
.model-kita .caution-area { background: #eef6e8;}

.caution-area h5 {
	font-weight: 500;
	padding: 0 0 0 1.5rem;
	line-height: 2;
}
.model-nishi .caution-area h5.bring { background: url("images/ic_bag_gold.png") no-repeat left 7px;}
.model-taka .caution-area h5.bring { background: url("images/ic_bag_vermilion.png") no-repeat left 7px;}
.model-kita .caution-area h5.bring { background: url("images/ic_bag_green.png") no-repeat left 7px;}

.model-nishi .caution-area h5.caution { background: url("images/ic_caution_gold.png") no-repeat left 7px;}
.model-taka .caution-area h5.caution { background: url("images/ic_caution_vermilion.png") no-repeat left 7px;}
.model-kita .caution-area h5.caution { background: url("images/ic_caution_green.png") no-repeat left 7px;}

.caution-area p {
	font-size: 1rem;
}



/* facility */

.facility {
}

.facility h4 {
	font-size: 2.75rem;
	letter-spacing: 0.05em;
	text-align: center;
	padding: 3.75rem 0 0;
	background: url("images/ic_facility.png") no-repeat top center;
	margin: 8.75rem 0 7.5rem;
}

.fac-list li.fac-area { margin-bottom: 6.25rem;}
.fac-list li.fac-area:last-child { margin-bottom: 0;}

.fac-area {
	background: url("images/stripe.png") repeat;
	border-radius: 20px;
	padding: 3.75rem ;
}

.fac-area h5 {
	font-size: 1.75rem;
	line-height: 1.5;
	color: #fff;
	text-align: center;
	width: 400px;
	max-width: 400px;
	border-radius: 10px;
	padding: 0.5rem;
	margin: -90px 0 3.75rem;
}
.fac-nishi h5 { background: #bb0;}
.fac-taka h5 { background: #e63;}
.fac-kita h5 { background: #5a2;}




/* カルーセル全体を囲うコンテナ */
.carousel-wrapper {
	position: relative;
	width: 100%;
	max-width: 1000px; /* 任意の最大幅 */
	margin: 0 auto 3.75rem;
}

/* スクロールするトラック部分 */
.carousel-track {
	display: flex;
	gap: 16px; /* 写真と写真の隙間 */
	overflow-x: auto;
	scroll-snap-type: x mandatory; /* スクロールをピタッと止める */
	scrollbar-width: none; /* Firefoxのスクロールバー非表示 */
	-webkit-overflow-scrolling: touch; /* iOSの滑らかなスクロール */
}

.carousel-track::-webkit-scrollbar {
	display: none; /* Chrome/Safariのスクロールバー非表示 */
}

/* 矢印ボタンが押せない状態（端まで来た時）のスタイル */
.carousel-btn:disabled {
  opacity: 0.3; /* 半透明にして目立たなくする */
  cursor: not-allowed;
  pointer-events: none; /* クリックを完全に無効化する */
}

/* 
  【PC】ベース設定：3枚表示
   16pxの隙間が2箇所あるため、全体から32pxを引いて3で割る
*/
.carousel-slide {
  flex: 0 0 auto;
  scroll-snap-align: start;
  width: calc((100% - 32px) / 3); /* ぴったり収まる・少ない時の幅 */
}

/* PCで写真が4枚以上の時（チラ見せ） */
.carousel-wrapper.has-overflow .carousel-slide {
  width: 30%; /* 3枚で90％＋余白 */
}

/* 最後のスライドだけは右端にピタッと合わせる */
.carousel-slide:last-child {
  scroll-snap-align: end;
}

/* 
  【パッド】画面幅1023px以下：2枚表示
   16pxの隙間が1箇所あるため、全体から16pxを引いて2で割る
*/
@media (max-width: 1023px) {
  .carousel-slide {
    width: calc((100% - 16px) / 2);
  }
  .carousel-wrapper.has-overflow .carousel-slide {
    width: 45%; /* 2枚で90％＋余白 */
  }
}

/* 
  【スマホ】画面幅767px以下：1枚表示
   隙間は関係ないので100%
*/
@media (max-width: 767px) {
	.carousel-slide {
		width: 100%;
	}
	.carousel-wrapper.has-overflow .carousel-slide {
		width: 90%;
	}
	.carousel-wrapper {
		margin: 0 auto 2rem;
	}
}


.carousel-slide img {
	width: 100%;
	height: auto;
	border-radius: 10px;
	display: block;
	object-fit: cover;
}

.carousel-btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(0, 0, 0, 0.6);
  color: #fff;
  border: none;
  border-radius: 50%;
  width: 44px;
  height: 44px;
  cursor: pointer;
  z-index: 0;
  display: none;
}
.prev-btn {
	left: -21px;
	z-index: 1;
}
.next-btn {
	right: -21px;
	z-index: 1;
}





.fac-txt {
	display: flex;
	justify-content: space-between;
	margin-bottom: 3.75rem;
}
.fac-sentence {
	width: 48%;
}
.fac-txt-noflex .fac-sentence {
	width: 100%;
}
.fac-spec {
	width: 48%;
	padding: 1.25rem;
	border-radius: 10px;
}
.fac-nishi .fac-spec { background: #f8f8e5;}
.fac-taka .fac-spec { background: #fdefea;}
.fac-kita .fac-spec { background: #eef6e8;}

.fac-spec li {
	line-height: 1.7;
	padding-left: 1.5rem;
	overflow-wrap: anywhere;
}
.fac-nishi .fac-spec li.clock { background: url("images/ic_clock_gold.png") no-repeat left 6px;}
.fac-nishi .fac-spec li.pin { background: url("images/ic_pin_gold.png") no-repeat left 6px;}
.fac-nishi .fac-spec li.tel { background: url("images/ic_tel_gold.png") no-repeat left 6px;}
.fac-nishi .fac-spec li.url { background: url("images/ic_url_gold.png") no-repeat left 6px;}

.fac-taka .fac-spec li.clock { background: url("images/ic_clock_vermilion.png") no-repeat left 6px;}
.fac-taka .fac-spec li.pin { background: url("images/ic_pin_vermilion.png") no-repeat left 6px;}
.fac-taka .fac-spec li.tel { background: url("images/ic_tel_vermilion.png") no-repeat left 6px;}
.fac-taka .fac-spec li.url { background: url("images/ic_url_vermilion.png") no-repeat left 6px;}

.fac-kita .fac-spec li.clock { background: url("images/ic_clock_green.png") no-repeat left 6px;}
.fac-kita .fac-spec li.pin { background: url("images/ic_pin_green.png") no-repeat left 6px;}
.fac-kita .fac-spec li.tel { background: url("images/ic_tel_green.png") no-repeat left 6px;}
.fac-kita .fac-spec li.url { background: url("images/ic_url_green.png") no-repeat left 6px;}

.fac-spec li a {
	text-decoration: underline;
}
.fac-nishi .fac-spec li a:hover { color: #bb0;}
.fac-taka .fac-spec li a:hover { color: #063;}
.fac-kita .fac-spec li a:hover { color: #5a2;}

.cv-btn {
	display: block;
	width: 480px;
	font-size: 1.5rem;
	color: #fff;
	line-height: 1.5;
	text-align: center;
	border-radius: 2.5rem;
	/*background: linear-gradient(90deg, #0cc 0%, #3dd 50%, #0cc 100%);*/
	/*background-size: 200% 100%;*/
	box-shadow: 0 10px 10px rgba(0,0,0,.1);
	transition: all .4s;
	padding: 1rem;
	margin: 0 auto 1.25rem;
}
.cv-btn-ja {
	background: linear-gradient(90deg, #f60 0%, #f90 50%, #f60 100%);
	background-size: 200% 100%;
}
.cv-btn-bc {
	background: linear-gradient(90deg, #003b95 0%, #05b 50%, #003b95 100%);
	background-size: 200% 100%;
}
.cv-btn-ab {
	background: linear-gradient(90deg, #f05c62 0%, #f78 50%, #f05c62 100%);
	background-size: 200% 100%;
}
.cv-btn-rt {
	background: linear-gradient(90deg, #00b900 0%, #0d0 50%, #00b900 100%);
	background-size: 200% 100%;
}
.cv-btn-yt {
	background: linear-gradient(90deg, #f03 0%, #f56 50%, #f03 100%);
	background-size: 200% 100%;
}
.cv-btn-ofc {
	background: linear-gradient(90deg, #0cc 0%, #3dd 50%, #0cc 100%);
	background-size: 200% 100%;
}





/*
.cv-btn::after {
	content: "";
	display: inline-block;
	width: 30px;
	height: 8px;
	background: url("images/allow.png" ) no-repeat right center;
	position: relative;
	top: -6px;
	left: 40px;
	transition: all .4s;
}
*/
.cv-btn:hover {
	background-position: 100% 0;
}
/*
.cv-btn:hover::after {
	left: 50px;
}
*/



/* reserve */

#res-nishi,
#res-taka,
#res-kita {
  scroll-margin-top: 180px; /* ページ内リンク時に切り替えタブと被らないようにする */
}

.reserve h4 {
	font-size: 2.75rem;
	letter-spacing: 0.05em;
	text-align: center;
	padding: 3.75rem 0 0;
	background: url("images/ic_bed.png") no-repeat top center;
	margin: 8.75rem 0 7.5rem;
}

.res-area {
	border-radius: 20px;
	padding: 5rem ;
}
.res-nishi { background: url("images/stripe_gold.png") repeat;}
.res-taka { background: url("images/stripe_vermilion.png") repeat;}
.res-kita { background: url("images/stripe_green.png") repeat;}

.res-area h5 {
	font-size: 1.75rem;
	line-height: 1.5;
	color: #fff;
	text-align: center;
	width: 400px;
	max-width: 400px;
	border-radius: 10px;
	padding: 0.5rem;
	margin: -108px auto 2.5rem;
	position: relative;
	z-index: 1;
}
.res-nishi h5 { background: #bb0;}
.res-taka h5 { background: #e63;}
.res-kita h5 { background: #5a2;}

.res-lead {
	font-size: 1.5rem;
	line-height: 1.5;
	text-align: center;
	margin-bottom: 2.5rem;
}

.res-area figure {
	margin: 0 auto 2.5rem;
}
.res-area figure img {
	border-radius: 1.25rem;
}

.res-cation {
	background: #fff;
	padding: 2.5rem 2.5rem 1rem;
	border-radius: 20px;
	margin-bottom: 2.5rem;
}

.res-cation h6 {
	font-size: 1.25rem;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 2.5rem;
}
.res-cation h6::before,
.res-cation h6::after {
	content: "";
	height: 1px;
	background: #444;
	flex-grow: 1;
}
.res-cation h6::before {
	margin-right: 1rem;
}
.res-cation h6::after {
	margin-left: 1rem;
}

.res-cation-nishi h6 {
	color: #bb0;
}
.res-cation-nishi h6::before,
.res-cation-nishi h6::after {
	background: #bb0;
}

.res-cation-taka h6 {
	color: #e63;
}
.res-cation-taka h6::before,
.res-cation-taka h6::after {
	background: #e63;
}

.res-cation-kita h6 {
	color: #5a2;
}
.res-cation-kita h6::before,
.res-cation-kita h6::after {
	background: #5a2;
}

.res-cation p {
	font-size: 1rem;
	line-height: 1.5;
	margin-bottom: 2.5rem;
}

.res-cation dt {
	line-height: 1.5;
	padding-bottom: 0.5rem;
	border-bottom: 1px solid #ddd;
	margin-bottom: 0.5rem;
}
.res-cation dd {
	line-height: 1.5;
	margin-bottom: 2.5rem;
}

.preparation-kita {
	font-size: 1.25rem;
	color: #fff;
	line-height: 1.7;
    text-align: center;
	border-radius: 20px;
    background: #5a2;
    padding: 6.25rem 0;
}




/*----------------------
footer
----------------------*/

footer {
	border-top: 5px solid #0cc;
	padding: 2.5rem 0 3.75rem;
	text-align: center;
}
.organizer {
	margin-bottom: 2.5rem;
}
a.info-link {
	font-size: 0.875rem;
	color: #0cc;
	text-decoration: underline;
}
a.info-link:hover {
	text-decoration: none;
	opacity: 0.5;
	transition: all .4s;
}

footer small {
	font-size: 0.75rem;
}

#page-top {
	position: fixed;
	bottom: 80px;
	right: 40px;
	z-index: 2;
}





@media screen and (max-width: 1023px) {
	
	/*----------------------
	common
	----------------------*/
	
	.content-area {
		width: 100%;
		max-width: 100%;
		padding: 0 20px;
	}
	
	.sp-show {
		display: block;
	}
	.pc-show,
	.tablet-show {
		display: none;
	}
	
	
	
	/*----------------------
	header
	----------------------*/
	
	header {
		background: none;
		margin-bottom: 5rem;
	}

	.header-area {
		width: 100%;
		padding: 0;
	}
	header h1 {
		margin-bottom: 4rem;
	}
	header h1 img {
		width: 100%;
	}
	
	
	
	/*----------------------
	main common
	----------------------*/

	main h2 {
		text-align: center;
		font-size: 2rem;
		letter-spacing: 0.05em;
		margin-bottom: 3.75rem;
	}
	main h2 img {
		width: 220px;
	}
	main h2 span {
		font-size: 2.5rem;
		color: #0cc;
		vertical-align: -2px;
	}
	main h2 img {
		margin-bottom: 0.5rem;
	}
	
	
	
	/*----------------------
	rec
	----------------------*/
	
	#rec {
		padding-bottom: 1.5rem;
		background: url("images/wave.png") no-repeat bottom center;
		background-size: 100%;
		margin-bottom: 3.75rem;
	}

	#rec .flex,
	#rec .flex-re {
		display: block;
		margin-bottom: 5rem;
	}
	
	.txt-right,
	.txt-left {
		width: 100%;
		min-width: 100%;
		margin: 0 0 3.75rem;
	}
	
	#rec h3 {
		font-size: 1.75rem;
		padding: 2rem 0;
	}

	#rec h4 {
		font-size: 1.5rem;
		text-align: center;
	}
	#rec h4 span.h4-subtxt {
		display: inline-block;
		line-height: 1.5;
		margin-top: 1rem;
	}

	.img-kami01,
	.img-iwai01,
	.img-iyashi01 {
		margin: 0;
	}
	.img-kami01 img,
	.img-iwai01 img,
	.img-iyashi01 img {
		width: 100%;
	}
	
	
	
	/*----------------------
	model
	----------------------*/

	#model .sec-read {
		margin-bottom: 3.75rem;
	}
	
	
	/* 上部に固定されるタブコンテナ */
	.tab-list {
		width: 100%;
		max-width: 100%;
		font-size: 1rem;
	}
	
	/* コンテンツの基本スタイル */
	.content {
		padding: 5rem 0;
	}
	
	
	#model h3 {
		font-size: 2rem;
		line-height: 1.2;
		margin-bottom: 5rem;
	}
	
	.model-lead {
		display: block;
	}
	.model-lead .model-mainv {
		margin-bottom: 2.5rem;
	}
	.model-lead .model-mainv img {
		width: 100%;
	}

	.model-lead-txt {
		display: block;
		max-height: auto;
		margin-bottom: 2rem;
	}
	
	.model-lead-txt h4,
	.model-lead-txt p {
		writing-mode: horizontal-tb;
		text-orientation: mixed;
		font-feature-settings: initial;
		-webkit-writing-mode: horizontal-tb;
		-ms-writing-mode: rl-tb;
	}
	.model-lead-txt h4 {
		font-size: 1.75rem;
		margin: 0 0 3.75rem;
		text-align: center;
	}
	.model-lead-txt h4 span {
		font-size: 1.125rem;
		line-height: 1.5;
	}
	.model-lead-txt h4 span.h4-subtxt {
		display: inline-block;
		line-height: 1.5;
		margin-top: 1rem;
	}
	
	
	
	/* schedule */

	.schedule {
		margin-bottom: 5rem;
	}

	.schedule h4 {
		font-size: 2rem;
		margin: 7.5rem 0;
	}

	.day {
		text-align: center;
		border-top: 1px dashed #0cc;
		margin-bottom: 3.75rem;
	}
	.day img {
		width: 100px;
		margin: -50px 0 0;
	}
	
	ol.sch-place {
		margin: 0 0 7.5rem 28px;
	}

	.sch-place-list {
		margin-bottom: 3rem;
	}

	.time01,
	.time02 {
		color: #fff;
		text-align: center;
	}
	.time01 {
		width: 60px;
		border-radius: 8px;
		font-size: 0.875rem;
		line-height: 2rem;
		margin: 0 20px 0 -34px;
	}
	.time02 {
		width: 180px;
		border-radius: 10px;
		font-size: 1.125rem;
		line-height: 2.5rem;
	}
	
	.place-area {
		width: 100%;
		padding: 1.5rem;
		display: block;
	}

	.place-txt {
		width: 100%;
	}
	.place-txt h5 {
		margin-bottom: 1.5rem;
	}
	.place-txt p {
		margin-bottom: 1.5rem;
	}
	
	.place-event {
		display: inline-block;
		margin-bottom: 1.5rem;
	}

	.place-event li {
		margin-bottom: 0.5rem;
	}

	.place-photo {
		clear: both;
		width: 100%;
	}
	.place-photo img {
		width: 100%;
	}

	.schedule .move {
		border-radius: 1.5rem;
		margin: 0 0 3rem 46px;
	}
	
	.caution-area {
		margin: -3.75rem 0 0;
	}
	
	
	
	/* facility、reserve */
	
	.facility h4,
	.reserve h4 {
		font-size: 2rem;
		margin: 7.5rem 0;
	}
	
	.fac-list li.fac-area { margin-bottom: 5rem;}
	.fac-list li.fac-area:last-child { margin-bottom: 0;}

	.fac-area,
	.res-area {
		padding: 2.5rem ;
	}

	.fac-area h5,
	.res-area h5 {
		width: 100%;
		line-height: 1.25;
		padding: 0.75rem;
		margin: -70px auto 2.5rem;
	}
	.res-area h5 {
		margin: -70px auto 1.75rem;
	}
	
	.fac-txt {
		display: block;
		margin-bottom: 2rem;
	}
	.fac-sentence {
		width: 100%;
		margin-bottom: 2rem;
	}
	.fac-spec {
		width: 100%;
	}
	
	.res-lead {
		font-size: 1.25rem;
		margin-bottom: 2rem;
	}
	
	.res-area figure {
		margin: 0 auto 2.5rem;
	}
	.res-area figure img {
		width: 100%;
	}
	
	
	.cv-btn {
		width: 100%;
		font-size: 1.25rem;
	}
	.cv-btn::after {
		left: 5px;
	}
	.cv-btn:hover::after {
		left: 15px;
	}
	
	
	
	/*----------------------
	footer
	----------------------*/

	#page-top {
		position: fixed;
		bottom: 40px;
		right: 20px;
	}

}





@media screen and (min-width: 768px) and (max-width: 1023px) {
	
	.pc-show {
		display: block;
	}
	.sp-show {
		display: none;
	}
	
	header {
		background: url("images/header_bg.png") no-repeat top center;
		background-size: auto 100%;
		margin-bottom: 5rem;
	}

	.header-area {
		max-width: 960px;
		margin: 0 auto;
		padding: 0 40px 10rem;
	}
	.logo {
		text-align: right;
	}
	header h1 {
		margin-bottom: 4rem;
	}
	header h1 img {
		width: 70%;
	}
	.header-sub {
		font-size: 1.25rem;
		line-height: 1.7;
		letter-spacing: 0.05em;
	}
	.header-sub span {
		background: linear-gradient(transparent 70%, #ccf5f5 30%);
	}
	
	.content-area {
		padding: 0 80px;
	}

	
	.img-kami01,
	.img-iwai01,
	.img-iyashi01 {
		width: 60%;
		margin: 0 auto;
	}
	
	.img-kami01 img,
	.img-iwai01 img,
	.img-iyashi01 img {
		width: 100%;
	}

	
	#rec h3 {
		font-size: 1.75rem;
	}

	#rec h4 {
		font-size: 1.75rem;
	}
	
	
	#model h3 {
		font-size: 2.75rem;
	}
	
	.model-lead-txt h4 {
		font-size: 2rem;
	}
	
	.schedule h4,
	.facility h4 {
		font-size: 2.25rem;
	}
	
	
	.place-area {
		padding: 3.75rem;
	}
	
	
	.cv-btn {
		width: 480px;
	}
	.cv-btn::after {
		left: 40px;
	}
	.cv-btn:hover::after {
		left: 60px;
	}
}




