/* 変数
============================================= */
:root {
	--color_main: #347d49;
	--color_yellow: #fdfd05;
	--color_deep_green: #143e26;
	--color_text: #333;
	--color_bg: #fff;
	--font_gothic: 'Noto Sans JP', sans-serif;
	--font_science: 'Science Gothic', sans-serif;
	--font_keania: 'Keania One', sans-serif;
	--font_mincho: 'Noto Serif JP', serif;
	--width_inner: 1200px;
}

/* 共通
============================================= */

@import url("https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&family=Zen+Kaku+Gothic+New:wght@400;500;700&display=swap");
html {
	scroll-behavior: smooth;
}
body {
	font-family: var(--font_gothic);
	font-size: 1.6rem;
	line-height: 1.8;
	color: var(--color_text);
	background-color: var(--color_bg);
}
.inner {
	max-width: var(--width_inner);
	margin: 0 auto;
	padding: 0 20px;
}
img {
	width: 100%;
	height: auto;
}
::selection {
	background-color: var(--color_main);
	color: #fff;
}
a:link,
a:visited {
	text-decoration: none;
	transition: all 0.3s ease-in-out;
}
.swap {
	transition: all 0.3s ease-in-out;
}
.swap:hover {
	opacity: 0.7;
}
[data-text-anim] {
	opacity: 0;
}
.letter {
	display: inline-block;
	line-height: 1em;
	opacity: 0;
}
.pc_only {
	display: inline;
}


/* 汎用クラス
============================================= */
.mb00 {margin-bottom: 0 !important;}
.mb05 {margin-bottom: 5px !important;}
.mb10 {margin-bottom: 10px !important;}
.mb15 {margin-bottom: 15px !important;}
.mb20 {margin-bottom: 20px !important;}
.mb30 {margin-bottom: 30px !important;}
.mb40 {margin-bottom: 40px !important;}
.mb50 {margin-bottom: 50px !important;}
.mb60 {margin-bottom: 60px !important;}
.mb70 {margin-bottom: 70px !important;}
.mb80 {margin-bottom: 80px !important;}
.mb90 {margin-bottom: 90px !important;}
.mb100 {margin-bottom: 100px !important;}
.width100 {width: 100%;}
.width90 {width: 90%;}
.width80 {width: 80%;}
.width70 {width: 70%;}
.width60 {width: 60%;}
.width50 {width: 50%;}
.width40 {width: 40%;}
.width30 {width: 30%;}
.width20 {width: 20%;}
.text70 {font-size: 70%;}
.text75 {font-size: 75%;}
.text80 {font-size: 80%;}
.text85 {font-size: 85%;}
.text90 {font-size: 90%;}
.text95 {font-size: 95%;}
.text100 {font-size: 100%;}
.text105 {font-size: 105%;}
.text110 {font-size: 110%;}
.text115 {font-size: 115%;}
.text120 {font-size: 120%;}
.boldstyle {font-weight: 500;}
.normalstyle {font-weight: 400;}
.italicstyle {font-style: italic;}
.aligncenter {text-align: center;}
.alignleft {text-align: left;}
.alignright {text-align: right;}
.liststyle_decimal {
	list-style: decimal;
	padding: 0 0 0 20px;
}
.liststyle_decimal li {
	margin-bottom: 5px;
}
.liststyle_disc {
	list-style: disc;
	padding: 0 0 0 20px;
}
.liststyle_disc li {
	margin-bottom: 5px;
}

/* ローディング
============================================= */
.loading {
	position: fixed;
	inset: 0;
	z-index: 9999;
	display: flex;
	align-items: center;
	justify-content: center;
	background-color: var(--color_main);
	animation: loading_fadeout 0.7s ease 2s forwards;
}
.loading.is_hidden {
	display: none;
}
.loading_title {
	width: min(340px, 72%);
	opacity: 0;
	transform: translateY(18px) scale(0.96);
	filter: blur(8px) drop-shadow(0 5px 12px rgba(0, 0, 0, 0.26));
	animation: loading_title_show 1.4s ease 0.2s forwards;
}
.loading_title img {
	width: 100%;
	height: auto;
}

/* ヘッダー
============================================= */
.header {
	position: fixed;
	top: 0;
	left: 0;
	z-index: 50;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 80px;
	background-color: #fff;
}
.header_logo {
	width: min(480px, 80%);
}
.header_logo img {
	width: 100%;
	height: auto;
}

/* メインビジュアル
============================================= */
.main {
	position: relative;
	padding-top: 80px;
}
.mv {
	position: relative;
	min-height: auto;
	padding: 0 0 18px;
	overflow: hidden;
	background-color: #fff;
}
.mv_inner {
	position: relative;
	z-index: 10;
	width: min(750px, 100%);
	margin: 0 auto;
}
.mv_inner_sp {
	display: none;
}
.mv_img img {
	width: 100%;
	height: auto;
}
.mv_title {
	position: absolute;
	top: 50%;
	left: 50%;
	z-index: 15;
	width: min(480px, 72%);
	opacity: 0;
	transform: translate(-50%, -45%) scale(0.96);
	filter: blur(8px) drop-shadow(0 4px 10px rgba(0, 0, 0, 0.28));
}
body.is_loaded .mv_title {
	animation: mv_title_show 1.2s ease forwards, mv_title_breathe 8s ease-in-out 1.6s infinite;
}
.mv_title img {
	display: block;
	width: 100%;
	height: auto;
}
.mv_apo {
	position: absolute;
	left: calc(50% + 100px);
	bottom: 10px;
	z-index: 16;
	width: 50px;
	transform: translateX(-50%);
}
.mv_apo img {
	width: 100%;
	height: auto;
}
.mv_flame {
	position: fixed;
	top: 80px;
	z-index: 20;
	width: 334px;
	opacity: 0;
	filter: blur(6px);
	pointer-events: none;
}
.mv_flame_left {
	left: calc(50% - 375px - 310px);
}
.mv_flame_right {
	right: calc(50% - 375px - 310px);
}
body.is_footer_reached .mv_flame {
	position: absolute;
	top: var(--flame_stop_top);
	bottom: auto;
}
body.is_flame_loaded .mv_flame_left {
	animation: mv_flame_left_show 1s ease forwards;
}
body.is_flame_loaded .mv_flame_right {
	animation: mv_flame_right_show 1s ease forwards;
}
.mv_flame img {
	width: 100%;
	height: auto;
}
.mv_flame.is_stretched {
	height: min(calc(100vh - 80px - 18px), var(--mv_height, 9999px));
}
.mv_flame.is_stretched img {
	position: absolute;
	top: 0;
	height: 100%;
	width: auto;
	max-width: none;
}
.mv_flame_left.is_stretched img {
	right: 0;
	left: auto;
}
.mv_flame_right.is_stretched img {
	left: 0;
}
.mv_copyright {
	position: absolute;
	right: max(20px, calc((100% - 750px) / 2 + 37px));
	bottom: 4px;
	z-index: 19;
	color: var(--color_deep_green);
	font-size: 1rem;
	font-weight: 500;
	line-height: 1;
	letter-spacing: 0;
}

/* コンテンツ
============================================= */
.contents {
	position: relative;
	z-index: 10;
	width: 100%;
	background-color: var(--color_main);
}
.contents_inner {
	width: min(750px, 100%);
	margin: 0 auto;
	padding: 68px 45px 64px;
	text-align: center;
	color: var(--color_yellow);
}
.contents_title {
	font-size: 3.7rem;
	font-weight: 900;
	line-height: 1.28;
}
.contents_subtitle {
	margin-top: 16px;
	font-family: var(--font_science);
	font-size: 3.2rem;
	font-weight: 400;
	line-height: 1;
}
.contents_place {
	position: relative;
	margin: 58px auto 58px;
	padding: 20px 42px 24px;
	color: #fff;
	background-color: var(--color_deep_green);
	border-radius: 14px;
}
.contents_place::before,
.contents_place::after {
	position: absolute;
	top: 0;
	bottom: 0;
	width: 30px;
	border-top: 6px solid var(--color_yellow);
	border-bottom: 6px solid var(--color_yellow);
	content: "";
}
.contents_place::before {
	left: 0;
	border-left: 6px solid var(--color_yellow);
	border-radius: 10px 0 0 10px;
}
.contents_place::after {
	right: 0;
	border-right: 6px solid var(--color_yellow);
	border-radius: 0 10px 10px 0;
}
.contents_place p {
	font-size: 3.8rem;
	font-weight: 900;
	line-height: 1.35;
}
.contents_date {
	font-family: var(--font_science);
	font-weight: 600;
	line-height: 0.9;
	text-shadow: 0 0 22px rgba(253, 253, 5, 0.35);
}
.contents_year {
	font-size: 6.5rem;
}
.contents_period {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	margin-top: 8px;
}
.contents_day {
	font-size: 6.5rem;
}
.contents_week {
	align-self: flex-end;
	margin-bottom: 7px;
	font-size: 3rem;
}
.contents_bar {
	font-size: 5rem;
}
.contents_slash {
	display: block;
	width: 107px;
	filter: drop-shadow(0 0 16px rgba(253, 253, 5, 0.6));
}
.contents_slash img {
	width: 100%;
	height: auto;
}
.contents_note {
	margin-top: 34px;
	font-size: 2.5rem;
	font-weight: 900;
	line-height: 1.35;
}

/* カウントダウン
============================================= */
.countdown {
	position: relative;
	z-index: 10;
	padding: 0 0 80px;
	background-color: var(--color_main);
}
.countdown_inner {
	width: min(660px, 100%);
	margin: 0 auto;
	padding: 50px 36px 52px;
	text-align: center;
	color: #fff;
	background: url("../images/countdown_bg.webp") center / 100% 100% no-repeat;
}
.countdown_title {
	font-size: 3.2rem;
	font-weight: 900;
	line-height: 1.35;
	text-shadow: 4px 4px 0 rgba(0, 0, 0, 0.32);
}
.countdown_timer {
	display: grid;
	grid-template-columns: 1.45fr 0.9fr auto 1fr auto 1fr;
	align-items: start;
	column-gap: 8px;
	margin-top: 42px;
	color: #09efaa;
	font-family: var(--font_keania);
	line-height: 1;
}
.countdown_unit {
	min-width: 0;
}
.countdown_num,
.countdown_colon {
	font-size: 7.4rem;
	font-weight: 400;
	line-height: 0.8;
}
.countdown_num {
	text-shadow: 0 0 10px rgba(9, 239, 170, 0.55), 0 0 24px rgba(9, 239, 170, 0.28);
	transform-origin: center bottom;
	animation: countdown_num_glow 2.6s ease-in-out infinite;
}
.countdown_num.is_changed {
	animation: countdown_num_flip 0.34s ease, countdown_num_glow 2.6s ease-in-out infinite;
}
.countdown_colon {
	animation: countdown_colon_blink 1s steps(2, end) infinite;
}
.countdown_label {
	margin-top: 24px;
	color: #fff;
	font-size: 1.9rem;
	font-weight: 400;
	line-height: 1;
}
.countdown_line {
	position: relative;
	display: block;
	width: min(500px, 100%);
	margin: 44px auto 0;
	overflow: hidden;
	border-radius: 999px;
	transform: translateY(0) scale(1);
	filter: brightness(1);
	transition: transform 0.22s cubic-bezier(0.22, 1, 0.36, 1), filter 0.22s cubic-bezier(0.22, 1, 0.36, 1);
}
.countdown_line::after {
	position: absolute;
	top: -45%;
	left: -35%;
	width: 24%;
	height: 190%;
	background: linear-gradient(90deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.72), rgba(255, 255, 255, 0));
	content: "";
	opacity: 0;
	pointer-events: none;
	transform: translateX(0) rotate(18deg);
	transition: transform 0.42s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.12s ease;
}
.countdown_line img {
	width: 100%;
	height: auto;
}
.countdown_line:hover,
.countdown_line:focus-visible {
	opacity: 1;
	transform: translate(3px, -5px) scale(1.035) rotate(-0.4deg);
	filter: brightness(1.1) drop-shadow(0 10px 0 rgba(20, 62, 38, 0.28));
}
.countdown_line:hover::after,
.countdown_line:focus-visible::after {
	opacity: 1;
	transform: translateX(620%) rotate(18deg);
}
.countdown_line:active {
	transform: translateY(0) scale(0.99) rotate(0deg);
	filter: brightness(1.02) drop-shadow(0 3px 0 rgba(20, 62, 38, 0.22));
}

/* フィールド
============================================= */
.field {
	position: relative;
	z-index: 10;
	padding: 0 0 80px;
	background-color: var(--color_main);
}
.field_inner {
	width: min(660px, 100%);
	margin: 0 auto;
}
.field_nav {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 28px;
}
.field_nav_item {
	display: block;
	transform: translateY(0);
	filter: brightness(1);
	transition: transform 0.24s cubic-bezier(0.22, 1, 0.36, 1), filter 0.24s cubic-bezier(0.22, 1, 0.36, 1);
}
.field_nav_item img {
	width: 100%;
	height: auto;
	transform: scale(1);
	transition: transform 0.24s cubic-bezier(0.22, 1, 0.36, 1);
	transform-origin: center;
}
.field_nav_item:hover,
.field_nav_item:focus-visible {
	opacity: 1;
	transform: translateY(-4px);
	filter: brightness(1.06) drop-shadow(0 10px 0 rgba(20, 62, 38, 0.24));
}
.field_nav_item:hover img,
.field_nav_item:focus-visible img {
	transform: scale(1.025);
}
.field_nav_item:active {
	transform: translateY(0) scale(0.99);
	filter: brightness(1.02) drop-shadow(0 4px 0 rgba(20, 62, 38, 0.2));
}
.field_content {
	margin-top: 80px;
	scroll-margin-top: 100px;
}
.field_heading {
	display: grid;
	grid-template-columns: 110px 1fr 110px;
	align-items: center;
	gap: 18px;
	color: var(--color_yellow);
	text-align: center;
}
.field_heading_deco {
	display: block;
	filter: drop-shadow(0 0 14px rgba(253, 253, 5, 0.4));
}
.field_heading_deco img {
	width: 100%;
	height: auto;
}
.field_heading_en {
	font-family: var(--font_science);
	font-size: 1.5rem;
	font-weight: 600;
	line-height: 1;
}
.field_heading_jp {
	margin-top: 10px;
	font-size: 3.2rem;
	font-weight: 900;
	line-height: 1.22;
}
.field_coming {
	position: relative;
	margin-top: 42px;
	padding: 20px;
	background-color: #fff;
	border-radius: 10px;
}
.field_coming_illust {
	position: absolute;
	top: -40px;
	left: 9px;
	z-index: 2;
	width: 150px;
	height: auto;
	pointer-events: none;
}
.field_coming_inner {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 240px;
	padding: 30px;
	background-color: #e5e5e5;
	border-radius: 10px;
}
.field_coming_inner p {
	color: var(--color_main);
	font-family: var(--font_keania);
	font-size: 3.2rem;
	line-height: 1;
}
.field_tab {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 12px;
	width: 97%;
	margin-top: 44px;
	margin-right: auto;
	margin-left: auto;
}
.field_tab_item {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 46px;
	padding: 8px 10px 8px 34px;
	overflow: hidden;
	color: var(--color_main);
	background-color: var(--color_yellow);
	border-radius: 18px 18px 0 0;
	font-size: 1.6rem;
	font-weight: 900;
	line-height: 1.25;
	transform: translateY(0);
	transition: transform 0.18s cubic-bezier(0.22, 1, 0.36, 1), background-color 0.18s cubic-bezier(0.22, 1, 0.36, 1), filter 0.18s cubic-bezier(0.22, 1, 0.36, 1);
}
.field_tab_item::before {
	position: absolute;
	top: 0;
	left: 0;
	width: 38px;
	height: 100%;
	background-color: #fff;
	border-radius: 18px 18px 0 0;
	content: "";
	transition: width 0.18s cubic-bezier(0.22, 1, 0.36, 1);
}
.field_tab_item:hover,
.field_tab_item:focus-visible {
	transform: translateY(-2px);
	background-color: #ffff3c;
	filter: drop-shadow(0 5px 0 rgba(20, 62, 38, 0.18));
}
.field_tab_item:hover::before,
.field_tab_item:focus-visible::before {
	width: 44px;
}
.field_tab_item:active {
	transform: translateY(0);
	filter: drop-shadow(0 2px 0 rgba(20, 62, 38, 0.14));
}
.field_glamping_body {
	margin-top: 28px;
}
.field_glamping_panel {
	position: relative;
	margin-top: 28px;
	scroll-margin-top: 100px;
}
.field_glamping_panel:first-child {
	margin-top: 0;
}
.field_glamping_panel > img:not(.field_glamping_illust) {
	width: 100%;
	height: auto;
}
.field_glamping_illust {
	position: absolute;
	top: -13px;
	right: -1px;
	z-index: 2;
	width: 130px;
	height: auto;
	pointer-events: none;
}
.glamping_stay {
	margin-top: 90px;
}
.glamping_stay_card {
	position: relative;
	isolation: isolate;
	display: grid;
	grid-template-columns: 60% 40%;
	grid-template-rows: auto auto;
	overflow: visible;
	background-color: var(--color_deep_green);
	border-radius: 0 8px 8px 8px;
}
.glamping_stay_card::before {
	position: absolute;
	top: -34px;
	left: 0;
	width: 240px;
	height: 34px;
	background-color: var(--color_yellow);
	border-radius: 0 42px 0 0;
	content: "";
}
.glamping_stay_card::after {
	position: absolute;
	right: -3px;
	bottom: -3px;
	z-index: 3;
	width: 45px;
	height: 45px;
	border-right: 5px solid var(--color_yellow);
	border-bottom: 5px solid var(--color_yellow);
	border-radius: 0 0 10px 0;
	content: "";
}
.glamping_stay_info {
	position: relative;
	z-index: 2;
	padding: 28px 24px;
}
.glamping_stay_en {
	color: rgb(167 167 70 / 38%);
	font-family: var(--font_science);
	font-size: 1.6rem;
	font-weight: 600;
	line-height: 1;
}
.glamping_stay_title {
	margin-top: 12px;
	color: var(--color_yellow);
	font-size: 3.3rem;
	font-weight: 900;
	letter-spacing: 0;
	line-height: 1.15;
	white-space: nowrap;
}
.glamping_stay_price {
	margin-top: 8px;
	color: #fff;
	font-size: 3rem;
	font-weight: 800;
	line-height: 1.1;
}
.glamping_stay_price span,
.glamping_stay_price_num {
	font-size: 4.6rem;
	font-weight: 600;
	line-height: 1;
}
.glamping_stay_btn {
	display: grid;
	grid-template-columns: 42px 1fr auto;
	align-items: center;
	gap: 14px;
	grid-column: 1 / 2;
	width: calc(100% - 48px);
	margin: 0 24px 29px;
	padding: 9px 24px 9px 14px;
	color: var(--color_deep_green);
	background-color: #fff;
	border-radius: 999px;
	font-size: 1.8rem;
	font-weight: 900;
	line-height: 1.2;
	transform: translateY(0);
	transition: transform 0.2s cubic-bezier(0.22, 1, 0.36, 1), filter 0.2s cubic-bezier(0.22, 1, 0.36, 1);
}
.glamping_stay_btn img {
	width: 42px;
	height: auto;
	transform: rotate(0deg);
	transition: transform 0.24s cubic-bezier(0.22, 1, 0.36, 1);
	transform-origin: center;
}
.glamping_stay_arrow {
	font-size: 2.1rem;
	font-weight: 500;
	transform: translateX(0);
	transition: transform 0.2s cubic-bezier(0.22, 1, 0.36, 1);
}
.glamping_stay_btn:hover,
.glamping_stay_btn:focus-visible {
	opacity: 1;
	transform: translateY(-2px);
	filter: brightness(1.06) drop-shadow(0 6px 0 rgba(0, 0, 0, 0.22));
}
.glamping_stay_btn:hover img,
.glamping_stay_btn:focus-visible img {
	transform: rotate(90deg);
}
.glamping_stay_btn:hover .glamping_stay_arrow,
.glamping_stay_btn:focus-visible .glamping_stay_arrow {
	transform: translateX(6px);
}
.glamping_stay_btn:active {
	transform: translateY(0) scale(0.99);
	filter: brightness(1.02) drop-shadow(0 2px 0 rgba(0, 0, 0, 0.18));
}
.glamping_stay_img {
	position: relative;
	z-index: 1;
	grid-row: 1 / 3;
	grid-column: 2 / 3;
	min-height: 272px;
}
.glamping_stay_img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 25% center;
}
.glamping_stay_note {
	margin-top: 22px;
	color: #fff;
	font-size: 1.5rem;
	line-height: 1.65;
}

/* フッター
============================================= */
.footer {
	position: relative;
	z-index: 10;
	overflow: hidden;
	color: #fff;
	background: linear-gradient(135deg, #009bd8 0%, #009bd8 7%, #5ac644 31%, #ffc500 53%, #f34f09 76%, #a85700 92%, #a85700 100%);
}
.footer_inner {
	display: grid;
	grid-template-columns: 270px 1fr auto;
	grid-template-areas:
		"logo link sns"
		"logo link copyright";
	align-items: start;
	column-gap: 48px;
	width: min(1100px, 100%);
	max-width: 100%;
	min-height: 400px;
	margin: 0 auto;
	padding: 28px 24px 70px;
}
.footer_logo {
	grid-area: logo;
	width: 270px;
	background-color: #fff;
}
.footer_logo a {
	display: block;
}
.footer_logo img {
	width: 100%;
	height: auto;
}
.footer_link {
	grid-area: link;
	max-width: 100%;
	padding-top: 24px;
	font-size: 1.6rem;
	font-weight: 500;
	letter-spacing: 0.08em;
	line-height: 1.7;
	white-space: normal;
}
.footer_nav {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: 36px;
	max-width: 100%;
}
.footer_nav li {
	display: grid;
	gap: 2px;
}
.footer_nav span,
.footer_site_link li {
	display: block;
	min-width: 0;
}
.footer a:hover {
	opacity: 0.72;
}
.footer a {
	overflow-wrap: anywhere;
}
.footer_site_link {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 28px;
	margin-top: 18px;
	max-width: 100%;
	font-size: 1.4rem;
}
.footer_site_link_under {
	gap: 8px 22px;
	margin-top: 8px;
	font-size: 1.4rem;
	letter-spacing: 0.06em;
}
.footer_sns {
	grid-area: sns;
	display: flex;
	justify-content: center;
	gap: 16px;
	margin-top: 80px;
}
.footer_sns li {
	width: 72px;
	height: 72px;
}
.footer_sns a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	background-color: #fff;
	border-radius: 50%;
}
.footer_sns img {
	width: 40px;
	height: 40px;
	object-fit: contain;
}
.footer_copyright {
	grid-area: copyright;
	align-self: end;
	max-width: 100%;
	margin-top: 60px;
	font-size: 1.3rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	line-height: 1.45;
	text-align: right;
	white-space: normal;
}
.footer_copyright span {
	display: block;
	font-size: 1.2rem;
	font-weight: 900;
}
.footer_fixed_cta {
	display: none;
}
@media (min-width: 768px) and (max-width: 1099px) {
	.footer_inner {
		grid-template-columns: 220px 1fr auto;
		column-gap: 28px;
		padding: 28px 24px 60px;
	}
	.footer_logo {
		width: 220px;
	}
	.footer_link {
		font-size: 1.4rem;
	}
	.footer_nav {
		column-gap: 24px;
	}
	.footer_sns {
		gap: 12px;
		margin-top: 60px;
	}
	.footer_sns li {
		width: 56px;
		height: 56px;
	}
	.footer_sns img {
		width: 32px;
		height: 32px;
	}
	.footer_copyright {
		margin-top: 50px;
		font-size: 1.2rem;
	}
	.footer_copyright span {
		font-size: 1.1rem;
	}
}

/* アニメーション
============================================= */
.float_anim {
	animation: float_anim 7.2s ease-in-out infinite;
}
.float_anim_b {
	animation: float_anim_b 9.4s ease-in-out 2.6s infinite;
}
@keyframes loading_title_show {
	0% {
		opacity: 0;
		transform: translateY(18px) scale(0.96);
		filter: blur(8px) drop-shadow(0 5px 12px rgba(0, 0, 0, 0.26));
	}
	100% {
		opacity: 1;
		transform: translateY(0) scale(1);
		filter: blur(0) drop-shadow(0 5px 12px rgba(0, 0, 0, 0.26));
	}
}
@keyframes loading_fadeout {
	0% {
		opacity: 1;
		visibility: visible;
	}
	100% {
		opacity: 0;
		visibility: hidden;
		pointer-events: none;
	}
}
@keyframes mv_title_show {
	0% {
		opacity: 0;
		transform: translate(-50%, -45%) scale(0.96);
		filter: blur(8px) drop-shadow(0 4px 10px rgba(0, 0, 0, 0.28));
	}
	100% {
		opacity: 1;
		transform: translate(-50%, -50%) scale(1);
		filter: blur(0) drop-shadow(0 4px 10px rgba(0, 0, 0, 0.28));
	}
}
@keyframes mv_title_breathe {
	0%, 100% {
		transform: translate(-50%, -50%) scale(1);
	}
	50% {
		transform: translate(-50%, -50%) scale(1.03);
	}
}
@keyframes mv_flame_left_show {
	0% {
		opacity: 0;
		transform: translateX(-15px);
		filter: blur(6px);
	}
	100% {
		opacity: 1;
		transform: translateX(0);
		filter: blur(0);
	}
}
@keyframes mv_flame_right_show {
	0% {
		opacity: 0;
		transform: translateX(15px);
		filter: blur(6px);
	}
	100% {
		opacity: 1;
		transform: translateX(0);
		filter: blur(0);
	}
}
@keyframes sp_mv_left_show {
	0% {
		opacity: 0;
		transform: translateX(-30px);
		filter: blur(6px);
	}
	100% {
		opacity: 1;
		transform: translateX(0);
		filter: blur(0);
	}
}
@keyframes sp_mv_right_show {
	0% {
		opacity: 0;
		transform: translateX(30px);
		filter: blur(6px);
	}
	100% {
		opacity: 1;
		transform: translateX(0);
		filter: blur(0);
	}
}
@keyframes countdown_num_glow {
	0%,
	100% {
		text-shadow: 0 0 10px rgba(9, 239, 170, 0.55), 0 0 24px rgba(9, 239, 170, 0.28);
	}
	50% {
		text-shadow: 0 0 16px rgba(9, 239, 170, 0.82), 0 0 34px rgba(9, 239, 170, 0.46);
	}
}
@keyframes countdown_num_flip {
	0% {
		opacity: 0.72;
		transform: translateY(-8px) scaleY(0.82);
		filter: brightness(1.45);
	}
	60% {
		opacity: 1;
		transform: translateY(2px) scaleY(1.08);
		filter: brightness(1.18);
	}
	100% {
		opacity: 1;
		transform: translateY(0) scaleY(1);
		filter: brightness(1);
	}
}
@keyframes countdown_colon_blink {
	0%,
	45% {
		opacity: 1;
	}
	46%,
	100% {
		opacity: 0.35;
	}
}
@keyframes float_anim {
	0%, 100% {
		transform: translate3d(0, 0, 0) rotate(0deg) scale(1);
	}
	25% {
		transform: translate3d(-4px, -10px, 0) rotate(-0.4deg) scale(1.01);
	}
	50% {
		transform: translate3d(3px, -16px, 0) rotate(0.2deg) scale(1.015);
	}
	75% {
		transform: translate3d(6px, -8px, 0) rotate(0.45deg) scale(1.005);
	}
}
@keyframes float_anim_b {
	0%, 100% {
		transform: translate3d(0, 0, 0) rotate(0deg) scale(1);
	}
	30% {
		transform: translate3d(-6px, -8px, 0) rotate(-0.5deg) scale(1.01);
	}
	55% {
		transform: translate3d(-2px, -15px, 0) rotate(-0.2deg) scale(1.014);
	}
	85% {
		transform: translate3d(4px, -6px, 0) rotate(0.3deg) scale(1.006);
	}
}

.slide_up {
	opacity: 0;
	transform: translateY(30px);
	transition: opacity 0.8s ease, transform 0.8s ease;
}
.slide_up.is_visible {
	opacity: 1;
	transform: translateY(0);
}
@media (prefers-reduced-motion: reduce) {
	.float_anim,
	.float_anim_b {
		animation: none;
	}
	.slide_up {
		transition: none;
	}
	.countdown_num,
	.countdown_num.is_changed,
	.countdown_colon {
		animation: none;
	}
	.countdown_line,
	.countdown_line::after,
	.field_nav_item,
	.field_nav_item img,
	.field_tab_item,
	.field_tab_item::before,
	.glamping_stay_btn,
	.glamping_stay_btn img,
	.glamping_stay_arrow {
		transition: none;
	}
	.countdown_line:hover,
	.countdown_line:focus-visible,
	.countdown_line:hover::after,
	.countdown_line:focus-visible::after,
	.field_nav_item:hover,
	.field_nav_item:focus-visible,
	.field_nav_item:hover img,
	.field_nav_item:focus-visible img,
	.field_tab_item:hover,
	.field_tab_item:focus-visible,
	.glamping_stay_btn:hover,
	.glamping_stay_btn:focus-visible,
	.glamping_stay_btn:hover img,
	.glamping_stay_btn:focus-visible img,
	.glamping_stay_btn:hover .glamping_stay_arrow,
	.glamping_stay_btn:focus-visible .glamping_stay_arrow {
		transform: none;
	}
}

/* SP調整
============================================= */
@media (max-width: 767px) {
	.pc_only {
		display: none;
	}
	.header {
		height: 70px;
	}
	.header_logo {
		width: min(280px, 80%);
	}
	.main {
		padding-top: 70px;
	}
	.mv {
		min-height: auto;
		padding-bottom: 22px;
	}
	.mv_inner {
		display: none;
	}
	.mv_inner_sp {
		position: relative;
		z-index: 10;
		display: block;
		width: 100%;
		padding: 0 18px;
	}
	.mv_sp_img {
		transform: none;
	}
	.sp_mv_item {
		width: 100%;
		height: auto;
		opacity: 0;
	}
	.sp_mv_item_wrap {
		position: relative;
	}
	.sp_mv_item:not(:first-child),
	.sp_mv_item_wrap,
	.sp_mv_item_wrap + .sp_mv_item {
		margin-top: clamp(-20px, -4.5vw, -12px);
	}
	body.is_flame_loaded .sp_mv_item_01 {
		animation: sp_mv_left_show 0.9s ease forwards;
	}
	body.is_flame_loaded .sp_mv_item_02 {
		animation: sp_mv_right_show 0.9s ease 0.15s forwards;
	}
	body.is_flame_loaded .sp_mv_item_03 {
		animation: sp_mv_left_show 0.9s ease 0.3s forwards;
	}
	body.is_flame_loaded .sp_mv_item_04 {
		animation: sp_mv_right_show 0.9s ease 0.45s forwards;
	}
	.mv_flame {
		display: none;
	}
	.mv_title_sp {
		width: min(432px, 72%);
	}
	.mv_apo_sp {
		left: calc(50% + 105px);
		bottom: 30px;
		width: 35px;
	}
	.mv_copyright {
		right: 18px;
		bottom: 8px;
		font-size: 1rem;
	}
	.contents_inner {
		padding: 42px 20px 48px;
	}
	.contents_title {
		font-size: 1.8rem;
		line-height: 1.52;
	}
	.contents_subtitle {
		margin-top: 8px;
		font-size: 1.6rem;
	}
	.contents_place {
		margin: 34px auto 44px;
		padding: 22px 18px 24px;
		border-radius: 10px;
	}
	.contents_place::before,
	.contents_place::after {
		width: 18px;
		border-top-width: 4px;
		border-bottom-width: 4px;
	}
	.contents_place::before {
		border-left-width: 4px;
		border-radius: 7px 0 0 7px;
	}
	.contents_place::after {
		border-right-width: 4px;
		border-radius: 0 7px 7px 0;
	}
	.contents_place p {
		font-size: 1.9rem;
		line-height: 1.35;
	}
	.contents_year {
		font-size: 2.8rem;
	}
	.contents_period {
		gap: 4px;
		margin-top: 8px;
	}
	.contents_day {
		font-size: 2.8rem;
	}
	.contents_week {
		margin-bottom: 3px;
		font-size: 1.4rem;
	}
	.contents_bar {
		font-size: 2.2rem;
	}
	.contents_slash {
		width: 47px;
		max-width: 47px;
		filter: drop-shadow(0 0 12px rgba(253, 253, 5, 0.6));
	}
	.contents_note {
		margin-top: 24px;
		font-size: 1.2rem;
	}
	.countdown {
		padding: 0 20px 50px;
	}
	.countdown_inner {
		padding: 30px 14px 32px;
	}
	.countdown_title {
		font-size: 1.5rem;
		text-shadow: 2px 2px 0 rgba(0, 0, 0, 0.32);
	}
	.countdown_timer {
		grid-template-columns: 1.35fr 0.9fr auto 1fr auto 1fr;
		column-gap: 4px;
		margin-top: 24px;
	}
	.countdown_num,
	.countdown_colon {
		font-size: 3.8rem;
	}
	.countdown_label {
		margin-top: 12px;
		font-size: 1rem;
	}
	.countdown_line {
		width: min(250px, 100%);
		margin-top: 24px;
	}
	.field {
		padding: 0 20px 50px;
	}
	.field_nav {
		grid-template-columns: 1fr;
		gap: 28px;
	}
	.field_content {
		margin-top: 50px;
		scroll-margin-top: 90px;
	}
	.field_heading {
		grid-template-columns: 52px 1fr 52px;
		gap: 10px;
	}
	.field_heading_en {
		font-size: 0.9rem;
	}
	.field_heading_jp {
		margin-top: 6px;
		font-size: 1.7rem;
		line-height: 1.28;
	}
	.field_coming {
		margin-top: 28px;
		padding: 10px;
		border-radius: 7px;
	}
	.field_coming_illust {
		top: -37px;
		left: -5px;
		width: 105px;
	}
	.field_coming_inner {
		min-height: 180px;
		padding: 20px;
		border-radius: 7px;
	}
	.field_coming_inner p {
		font-size: 2.4rem;
	}
	.field_tab {
		gap: 6px;
		width: 100%;
		margin-top: 28px;
	}
	.field_tab_item {
		min-height: 34px;
		padding: 6px 5px 6px 18px;
		border-radius: 12px 12px 0 0;
		font-size: 1.1rem;
		line-height: 1.2;
	}
	.field_tab_item::before {
		width: 20px;
		border-radius: 12px 12px 0 0;
	}
	.field_glamping_body {
		margin-top: 16px;
	}
	.field_glamping_panel {
		margin-top: 18px;
		scroll-margin-top: 90px;
	}
	.field_glamping_illust {
		top: -19px;
		right: -9px;
		width: 78px;
	}
	.glamping_stay {
		margin-top: 58px;
	}
	.glamping_stay_card {
		display: grid;
		grid-template-columns: 60% 40%;
		grid-template-rows: auto auto;
		min-height: 0;
		border-radius: 0 8px 8px 8px;
	}
	.glamping_stay_card::before {
		width: 128px;
		height: 16px;
		top: -16px;
		border-radius: 0 28px 0 0;
	}
	.glamping_stay_card::after {
		width: 48px;
		height: 52px;
		border-right-width: 5px;
		border-bottom-width: 5px;
	}
	.glamping_stay_info {
		padding: 26px 5px 15px 26px;
	}
	.glamping_stay_en {
		font-size: 1rem;
	}
	.glamping_stay_title {
		margin-top: 8px;
		font-size: clamp(1.4rem, 4.2vw, 1.9rem);
	}
	.glamping_stay_price {
		margin-top: 6px;
		font-size: 1.7rem;
	}
	.glamping_stay_price span {
		font-size: 2.6rem;
	}
	.glamping_stay_btn {
		grid-template-columns: 42px 1fr auto;
		gap: 10px;
		grid-column: 1 / -1;
		width: calc(100% - 36px);
		margin: 10px 18px 24px;
		padding: 8px 18px 8px 12px;
		font-size: 1.5rem;
	}
	.glamping_stay_img {
		position: relative;
		top: auto;
		right: auto;
		grid-row: auto;
		grid-column: auto;
		align-self: stretch;
		width: auto;
		height: auto;
		min-height: 0;
	}
	.glamping_stay_note {
		margin-top: 18px;
		font-size: 1.2rem;
		line-height: 1.6;
	}
	.footer_inner {
		display: flex;
		flex-direction: column;
		align-items: center;
		min-height: 0;
		padding: 0 20px 80px;
		text-align: center;
	}
	.footer_logo {
		width: 100px;
	}
	.footer_sns {
		order: 2;
		gap: 8px;
		margin-top: 16px;
	}
	.footer_sns li {
		width: 33px;
		height: 33px;
	}
	.footer_sns img {
		width: 18px;
		height: 18px;
	}
	.footer_link {
		order: 3;
		width: 100%;
		padding-top: 18px;
		font-size: 1.0rem;
		letter-spacing: 0.04em;
		line-height: 1.8;
		white-space: normal;
	}
	.footer_nav {
		grid-template-columns: repeat(2, max-content);
		justify-content: center;
		column-gap: 20px;
		text-align: left;
	}
	.footer_nav li {
		gap: 1px;
	}
	.footer_site_link {
		justify-content: center;
		gap: 6px 14px;
		margin-top: 14px;
		font-size: 1.0rem;
		line-height: 1.6;
	}
	.footer_site_link_under {
		max-width: 450px;
		margin-top: 6px;
		font-size: 1.0rem;
	}
	.footer_copyright {
		order: 4;
		align-self: center;
		width: 100%;
		margin-top: 14px;
		font-size: 0.9rem;
		letter-spacing: 0.03em;
		line-height: 1.45;
		text-align: center;
		white-space: normal;
	}
	.footer_copyright span {
		font-size: 0.9rem;
		text-align: center;
	}
	body {
		padding-bottom: 70px;
	}
	.footer_fixed_cta {
		position: fixed;
		right: 0;
		bottom: 0;
		left: 0;
		z-index: 100;
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		height: 70px;
		box-shadow: 0 -4px 12px rgba(0, 0, 0, 0.18);
		visibility: hidden;
		transform: translateY(100%);
		transition: transform 0.34s cubic-bezier(0.22, 1, 0.36, 1), visibility 0.34s cubic-bezier(0.22, 1, 0.36, 1);
		pointer-events: none;
	}
	body.is_page_scrolled .footer_fixed_cta {
		visibility: visible;
		transform: translateY(0);
		pointer-events: auto;
	}
	.footer_fixed_cta_item {
		position: relative;
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 2px;
		overflow: hidden;
		color: #fff;
		font-size: 1.3rem;
		font-weight: 500;
		line-height: 1.2;
		text-align: center;
		transition: filter 0.2s cubic-bezier(0.22, 1, 0.36, 1);
	}
	.footer_fixed_cta_item:hover,
	.footer_fixed_cta_item:focus-visible {
		opacity: 1;
		filter: brightness(1.08);
	}
	.footer_fixed_cta_item img {
		width: 28px;
		height: 28px;
		object-fit: contain;
	}
	.footer_fixed_cta_ticket {
		background-color: #0086d9;
	}
	.footer_fixed_cta_glamping {
		background-color: #ed001c;
	}
}

.footer {
  background: linear-gradient(135deg, #009bd8 0%, #009bd8 7%, #5ac644 31%, #ffc500 53%, #f34f09 76%, #a85700 92%, #a85700 100%); }
  .footer--inner {
    width: 75.3846153846vw;
    margin: 0 auto;
    display: flex;
	  font-family: "Zen Kaku Gothic New", sans-serif;
	  font-weight: 700;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    position: relative; }
    .footer--inner .flogo {
      width: 18.4615384615vw;
      margin-right: 1.5384615385vw; }
    .footer--inner--link {
      width: 48.8461538462vw;
      padding-left: 0.7692307692vw;
      padding: 3.8461538462vw 0 5.3846153846vw; }
      .footer--inner--link ul {
        display: flex;
        justify-content: flex-start; }
        .footer--inner--link ul li {
          font-size: 1.0769230769vw;
          line-height: 2.1538461538vw;
          margin-right: 2.3076923077vw;
          line-height: 1; }
          .footer--inner--link ul li span {
            display: block;
            padding-bottom: 0.7692307692vw; }
          .footer--inner--link ul li a {
            display: block;
            height: auto;
            color: #fff; }
            .footer--inner--link ul li a.close {
              pointer-events: none;
              color: #666; }
        .footer--inner--link ul.linkab {
          margin-top: 1.1538461538vw; }
          .footer--inner--link ul.linkab li {
            font-size: 1vw; }
          .footer--inner--link ul.linkab.under li {
            font-size: 1vw;
            margin-right: 1.1538461538vw; }
    .footer--inner .fonnterinsta_new {
      position: absolute;
      display: flex;
      right: 0;
      justify-content: flex-end; }
      .footer--inner .fonnterinsta_new li {
        width: 4.9230769231vw;
        margin-left: 1.1538461538vw; }
    .footer--inner .copyright {
      position: absolute;
      right: 0vw;
      bottom: 0.7692307692vw;
      width: 100%;
      right: 0;
      text-align: right;
      color: #fff;
      font-family: "Montserrat", sans-serif;
      font-size: 0.9230769231vw;
      padding-top: 0.7692307692vw; }
      .footer--inner .copyright span {
        display: block;
        text-align: right;
        font-size: 0.8461538462vw; }
@media (max-width: 767px) {
.footer {
    background: linear-gradient(135deg, #009bd8 0%, #009bd8 7%, #5ac644 31%, #ffc500 53%, #f34f09 76%, #a85700 92%, #a85700 100%);
    padding-top: 0vw; }
    .footer.top {
      padding-bottom: 15.5555555556vw; }
    .footer--inner {
      width: 90%;
      margin: 0 auto;
      display: block;
      justify-content: space-between;
      align-items: center;
      position: relative; }
      .footer--inner .flogo {
        width: 26.6666666667vw;
        margin: 0 auto; }
      .footer--inner--link {
        width: 100%;
        padding-left: 0vw;
        margin-top: 8.8888888889vw;
        padding-bottom: 0; }
        .footer--inner--link ul {
          display: flex;
          justify-content: center;
          margin-top: 3.3333333333vw; }
          .footer--inner--link ul li {
            font-size: 2.6666666667vw;
            line-height: 1; }
            .footer--inner--link ul li a {
              display: block;
              color: #fff;
              padding-right: 0vw;
              padding-left: 0vw;
              padding-bottom: 1.1111111111vw; }
            .footer--inner--link ul li:last-child a {
              border-right: none; }
          .footer--inner--link ul.linkab {
            margin-top: 2.2222222222vw;
            justify-content: center; }
            .footer--inner--link ul.linkab li {
              font-size: 2.6666666667vw; }
            .footer--inner--link ul.linkab.under {
              margin-top: 2.2222222222vw;
              padding-bottom: 0vw;
              flex-wrap: wrap; }
              .footer--inner--link ul.linkab.under li {
                font-size: 2.6666666667vw;
                margin-right: 3.3333333333vw; }
        .footer--inner--link .copyright {
          color: #fff;
          font-family: "Montserrat", sans-serif;
          font-size: 2.4444444444vw;
          padding-left: 0vw;
          padding-top: 2.2222222222vw;
          text-align: left; }
      .footer--inner .fonnterinsta {
        display: none;
        width: 8.8888888889vw;
        position: absolute; }
      .footer--inner .fonnterinsta_new {
        position: absolute;
        display: flex;
        right: auto;
        justify-content: flex-end;
        bottom: auto;
        top: 26.6666666667vw;
        left: 50%;
        margin-left: -17.7777777778vw; }
        .footer--inner .fonnterinsta_new li {
          width: 8.8888888889vw;
          margin-left: 2.2222222222vw; }
      .footer--inner .copyright {
        position: relative;
        right: 0vw;
        bottom: 0vw;
        width: 100%;
        right: 0;
        text-align: center;
        color: #fff;
        font-family: "Montserrat", sans-serif;
        font-size: 2.4444444444vw;
        padding-top: 2.2222222222vw; }
        .footer--inner .copyright span {
          display: block;
          text-align: center;
          font-size: 2.2222222222vw; }
}