/*--------------------------------------------------------------
# カスタムプロパティ
--------------------------------------------------------------*/
:root {
	/* 色 */
	--color-primary: #059FE8;
	--color-secondary: #FF6600;
	--color-tertiary: #58CCFF;
	/* --color-quaternary: #e3e5ef; */
	--color-highlight: #FF420E;
	--color-danger: #ff2020;
	--color-light: #666;
	--color-light-grey: #ddd;
	--color-grey: #b0b0b0;
	/* コンテナーの幅 */
	--container-width: 90%;
	/* コンテナーの幅(上書き用) */
	--container-width-narrow: 90%;
	/* コンテナーの最大幅 */
	--container-max-width: 1260px;
	/* コンテナーの最大幅 */
	--container-max-width-narrow: 1070px;
	/* 余白 */
	--footer-padding: 4rem;/* フッター */
	--main-area-padding: 6rem;/* メイン領域の上下 */
	--section-padding: 6rem;/* セクションの上下 */
	/* Fontawesome */
	--fontawesome: "Font Awesome 6 Pro";
	--fontawesome-sharp: "Font Awesome 6 sharp";
	--fontawesome-brands: "Font Awesome 6 Brands";
	/* font-family */
	--font-main: "noto-sans-cjk-jp", "Hiragino Sans W3", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
	--font-accent: "futura-pt-bold", "nitalago-ruika", "noto-sans-cjk-jp", "Hiragino Sans W3", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
	--font-accent-medium: "futura-pt", "noto-sans-cjk-jp", "Hiragino Sans W3", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
	/* フォントサイズ */
	--font-size-small: .75rem;
	/* ヘッダーの高さ */
	--header-height: 80px;
	/* TOTOPボタンの直径 */
	--btn-totop-width: 5rem;
	/* 影 */
	--shadow-primary: 0px 0px 10px rgba(26, 86, 114, 0.16);
	--shadow-secondary: 0px 0px 10px rgba(255, 255, 255, 1);
	--shadow-tertiary: 0px 0px 10px rgba(88, 204, 255, .75);
	--shadow-sharp: 2px 2px 0px rgba(231, 245, 255, 1);
	/* ボタンの影 */
	--color-btn-shadow: #cffae4;
	/* ボーダー */
	--border-dashed-primary: 2px dashed var(--border-color);
	--border-solid-primary: 2px solid var(--border-color);
}

@media (min-width: 992px) {
	:root {
		/* ヘッダーの高さ */
		--header-height: 100px;
		/* コンテナーの幅(上書き用) */
		--container-width-narrow: 80%;
		/* コンテナーの最大幅 */
		--container-max-width-narrow: 1070px;
		/* 余白 */
		--main-area-padding: 8rem;/* メイン領域の上下 */
		/* TOTOPボタンの直径 */
		--btn-totop-width: 5rem;
		/* 余白 */
		--footer-padding: 8rem;/* フッター */
		--section-padding: 8rem;/* セクションの上下 */
	}
}

/* 色の割り当て
--------------------------------------------- */
:root {
	/* 文字色 */
	--color-headline-primary: #004080;
	--color-text-primary: #004080;
	/* 背景色 */
	--color-background: #fff;
	--color-background-sub: #F3FAFF;
	/* ボタン背景 */
	--btn-background-color: var(--gradient-primary-horizonal);
	/* テキストリンク文字色 */
	--btn-text-color: var(--color-primary);
	--btn-text-hover-color: var(--color-highlight);
	/* ボーダー */
	--border-color: var(--color-primary);
	/* グラデーション */
	--gradient-primary-horizonal: linear-gradient(to right, rgba(88,204,255,1) 0%, rgba(5,159,232,1) 100%);
	--gradient-primary-vertical: linear-gradient(to bottom, rgba(88,204,255,1) 0%, rgba(5,159,232,1) 100%);
	--gradient-secondary-vertical: linear-gradient(to bottom, rgba(255,255,255,1) 0%, rgba(88,204,255,1) 100%);
	--gradient-tertiary-vertical: linear-gradient(to bottom, rgba(231,245,255,1) 0%, rgba(5,159,232,1) 100%);
	--gradient-highlight-vertical: linear-gradient(to bottom, rgba(255,160,96,1) 0%, rgba(255,102,0,1) 100%);
	/* アニメーション用グラデーション(100%の値に使用) */
	--gradient-primary-horizonal-animate: linear-gradient(to right, rgba(88,204,255,1) 0%, rgba(88,204,255,1) 100%);
}

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

a:hover, a:focus, a:active {
	color: inherit;
}

a {
	cursor: pointer;
}

a,
a:visited {
	display: inline-block;
	color: inherit;
	text-decoration: none;
}

a:hover {
	color: inherit;
	text-decoration: none;
}

a:focus {
	outline: none;
}

li a,
li a:visited {
	display: inline;
}

.post,
.page {
	margin: 0;
}

summary {
	list-style: none;
}

/* コンテンツの幅
--------------------------------------------- */
.container {
	width: var(--container-width);
	max-width: var(--container-max-width);
	margin-right: auto;
	margin-left: auto;
}

.container_narrow {
	width: var(--container-width-narrow);
}

/*--------------------------------------------------------------
# レイアウト崩れ防止
--------------------------------------------------------------*/
/* footerが常に画面最下部にいるように固定
--------------------------------------------- */
#page {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
}

.site-footer {
	margin-top: auto;
}

/*--------------------------------------------------------------
# 汎用
--------------------------------------------------------------*/
html {
	font-size: 16px;
}

body {
	font-family: var(--font-main);
	font-weight: 500;
	background: var(--color-background);
	color: var(--color-text-primary);
	line-height: 2em;
	overflow-y: scroll;
}

p {
	line-height: 2em;
}

p:not(:last-child) {
	margin-bottom: .75em;
}

img {
	display: block;
}

.page h1,
.page h2,
.page h3,
.page h4,
.page h5,
.page h6,
.home h1,
.home h2,
.home h3,
.home h4,
.home h5,
.home h6,
.sub-header h1,
p {
	margin: 0;
}

ul,
ol {
	margin: 0;
	padding-left: 1.25em;
}

ul:not(:last-child),
ol:not(:last-child) {
	margin-bottom: 1.5rem;
}

ul li::marker {
	color: var(--color-primary);
}

.site-main {
	padding-top: var(--header-height);
}

/* 改行調整 */
span.br {
	display: inline-block;
}

/* flexbox */
.flex_wrapper {
	display: flex;
	flex-direction: column;
	gap: 2rem;
}

.flex_wrapper > * {
	flex: 1;
}

@media (min-width: 992px) {
	.flex_wrapper {
		flex-direction: row;
	}
}

@media screen and (max-width: 575px) {
	[class*=table_data] span.br {
		display: block;
	}
}

/*--------------------------------------------------------------
# セクション
--------------------------------------------------------------*/
section.page_section:not(:last-child) {
	margin-bottom: var(--section-padding);
}

/*--------------------------------------------------------------
# 見出し
--------------------------------------------------------------*/
/* 大見出し(H2)
--------------------------------------------- */
h2.page_h2 {
	font-family: var(--font-accent);
	font-size: 1.5rem;
	color: var(--color-primary);
	line-height: 1.75em;
	margin-bottom: 4rem;
}

h2.page_h2::after {
	content: '';
	display: block;
	background: url(../img/asset/title_line.svg) center left / cover no-repeat;
	width: 2.5em;
	height: .5rem;
	margin-top: 1rem;
}

@media screen and (min-width: 768px) {
	h2.page_h2 {
		font-size: 2rem;
	}
}

/* 大見出し(H2) 下線装飾ver
--------------------------------------------- */
h2.page_h2_bordered {
	display: flex;
	flex-direction: column;
	gap: .5rem;
	font-family: var(--font-accent);
	font-size: 1.25rem;
	color: var(--color-primary);
	line-height: 1.75em;
	margin-bottom: 3rem;
	padding-bottom: 1.5rem;
	border-bottom: var(--border-dashed-primary);
}

.page_h2_bordered span {
	display: inline-block;
}

.page_h2_bordered small {
	display: inline-block;
	font-size: .9rem;
	line-height: 1.75em;
}

@media (min-width: 992px) {
	h2.page_h2_bordered {
		font-size: 2rem;
	}

	.page_h2_bordered small {
		font-size: 1rem;
	}
}

/* 小見出し(H3)
--------------------------------------------- */
h3.page_h3 {
	display: flex;
	flex-direction: column;
	align-items: center;
	font-family: var(--font-accent);
	font-size: 1.25rem;
	color: var(--color-primary);
	margin-bottom: 1.5rem;
}

h3.page_h3 > span {
	display: flex;
	justify-content: center;
	align-items: center;
	background: var(--color-background);
	width: 100%;
	text-align: center;
	padding: .5rem 0;
	border: 4px solid var(--color-primary);
	border-radius: .5rem;
	filter: drop-shadow(var(--shadow-sharp));
}

h3.page_h3::after {
	content: '';
	display: block;
	background: var(--color-primary);
	width: 1rem;
	height: 1rem;
	top: 1.25rem;
	right: 0;
	clip-path: polygon(0 0, 50% 100%, 100% 0);
	filter: drop-shadow(var(--shadow-sharp));
}

h3.page_h3 .note {
	display: inline-flex;
	align-items: center;
	gap: .25rem;
	color: var(--color-secondary);
	font-size: .9em;
}

h3.page_h3 .note::before {
	content: '※';
	display: inline-block;
	margin-left: .5rem;
	border-radius: 50%;
}

/* 装飾なし小見出し
--------------------------------------------- */
h3.page_h3_simple {
	font-size: 1.25rem;
	line-height: 1.75em;
	margin-bottom: 1.5rem;
}

h3.page_h3_simple:not(:first-child) {
	margin-top: 3rem;
}

.page_h3_simple::before {
	content: '\f219';
	display: inline-block;
	font-family: var(--fontawesome);
	font-weight: 400;
	margin-right: .5em;
}

/* 区切り線付き小見出し
--------------------------------------------- */
.title_dashed {
	display: flex;
	align-items: center;
	gap: .5rem;
	font-family: var(--font-accent);
	color: var(--color-primary);
	margin: 0 0 1rem;
}

.title_dashed > span {
	max-width: 80%;
}

.title_dashed:not(:first-child) {
	margin: 2rem 0 1rem;
}

.title_dashed::after {
	content: '';
	flex: 1;
	width: 100%;
	border-top: 2px dashed var(--color-primary);
}

#info_menu .title_dashed {
	margin-top: 0;
	margin-bottom: 1.5rem;
}

#info_menu .title_dashed::after {
	border-color: var(--color-tertiary);
}

/* ダイヤ付き小見出し
--------------------------------------------- */
h3.diamond_h3 {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: .5em;
	font-family: var(--font-accent);
	font-size: 1rem;
	color: var(--color-primary);
	width: fit-content;
	line-height: 1.5em;
	margin-bottom: 1rem;
}

h3.diamond_h3::before,
h3.diamond_h3::after {
	font-family: var(--fontawesome);
	font-size: 1.5rem;
	font-weight: 500;
	color: var(--color-secondary);
}

h3.diamond_h3::before {
	content: '[';
}

h3.diamond_h3::after {
	content: ']';
}

/*--------------------------------------------------------------
# 文章
--------------------------------------------------------------*/
p.page_parag {
	font-size: 1rem;
	font-weight: 500;
	line-height: 2em;
}

div:not(.container):not(.page_note_area) > p.page_parag:last-child {
	margin-bottom: 5rem;
}

/* テキストリンク
--------------------------------------------- */
.page_parag a {
	display: inline;
	color: var(--color-secondary);
	font-weight: 700;
	text-decoration: underline;
}

/* 赤文字
--------------------------------------------- */
.text_danger {
	color: var(--color-danger);
}

/* 大きめ
--------------------------------------------- */
.text_strong {
	font-size: 1.25em;
	line-height: 1.5em;
}

/* 数字を大きく
--------------------------------------------- */
.num {
	font-size: 1.25em;
	padding-right: .25rem;
	padding-left: .25rem;
}

.num:first-child {
	padding-left: 0;
}

.num:last-child {
	padding-right: 0;
}

/* 鉤括弧
--------------------------------------------- */
.text_quotation:not(.br) {
	display: inline;
}

.text_quotation::before {
	content: "「";
	color: var(--color-secondary);
	padding-right: .25em;
}

.text_quotation::after {
	content: "」";
	color: var(--color-secondary);
	padding-left: .25em;
}

/* テキスト枠
--------------------------------------------- */
.text_wrapper:not(:first-child) {
	margin-top: 1.5rem;
}

.text_wrapper:not(:last-child) {
	margin-bottom: 3rem;
}

/* テキスト枠(注意事項)
--------------------------------------------- */
.text_wrapper_note {
	background: var(--color-background-sub);
	padding: 1rem;
}

.text_wrapper_note:not(:last-child) {
	margin-bottom: 1.25rem;
}

.text_wrapper_note_inner {
	background: var(--color-background);
	padding: 1rem;
}

h3.page_h3_note {
	color: var(--color-danger);
	font-size: 1rem;
	padding-bottom: .5em;
	margin-bottom: 1em;
	border-bottom: var(--border-dashed-primary);
	border-color: var(--color-danger);
}

h3.page_h3_entry_note {
	color: var(--color-secondary);
	border-color: var(--color-secondary);
}

/* 下線テキスト
--------------------------------------------- */
.text_underline {
	font-weight: 700;
	text-decoration: underline;
}

/* 2カラムテキスト
--------------------------------------------- */
.row_note {
	display: flex;
}

.row_note > *:first-child {
	white-space: nowrap;
}

.row_note > *:nth-child(2) {
	flex: 1;
}

/* バッジ
--------------------------------------------- */
[class*=badge] {
	display: inline-flex;
	justify-content: center;
	align-items: center;
	font-size: .9rem;
	font-weight: 500;
	line-height: 1em;
	margin: 0 .5em;
	padding: .25em .5em;
	border: 2px solid;
	border-radius: 4px;
}

.badge_danger {
	color: var(--color-danger);
}

.badge_secondary {
	font-size: .9em;
	color: var(--color-secondary);
}

th [class*=badge] {
	display: flex;
	width: fit-content;
	margin: 0;
}

/*--------------------------------------------------------------
# コピー文
--------------------------------------------------------------*/
/* 大文字
--------------------------------------------- */
.page_copy {
	font-family: var(--font-accent);
	font-size: 1.5rem;
	color: var(--color-primary);
	margin-bottom: 2.5rem;
	text-align: center;
	line-height: 1.75em;
	text-shadow: var(--shadow-primary);
}

.page_copy span:not(.br) {
	display: block;
}

.page_copy span:first-child::before {
	content: '「';
	color: var(--color-secondary);
	padding-right: .5em;
}

.page_copy span:last-child::after {
	content: '」';
	color: var(--color-secondary);
	padding-left: .5em;
}

@media screen and (min-width: 768px) {
	.page_copy {
		font-size: 2rem
	}

	.page_copy {
		margin-bottom: 4rem;
	}
}

/* アイコン付き
--------------------------------------------- */
.page_copy_icon {
	font-weight: 500;
	line-height: 2.5em;
}

.page_copy_icon:not(:last-child) {
	margin-bottom: 2rem;
}

.page_copy_icon::before {
	content: '\f219';
	display: inline-block;
	font-family: var(--fontawesome);
	font-size: 1.5rem;
	font-weight: 700;
	color: var(--color-secondary);
	padding-right: 1rem;
}

/*--------------------------------------------------------------
# 画像
--------------------------------------------------------------*/
[class^=img_wrapper] {
	max-width: 100%;
}

[class^=img_wrapper] > img {
	width: 100%;
	height: 100%;
}

.img_wrapper_cover {
	overflow: hidden;
}

.img_wrapper_cover > img {
	object-fit: cover;
}

.img_wrapper_contain > img {
	object-fit: contain;
}

/* 写真風枠つき */
.img_photo {
	background: #fff;
	height: fit-content;
	padding: .5rem;
	box-shadow: 0 3px 10px rgba(26, 86, 114, .16);
}

/*--------------------------------------------------------------
# ボタン
--------------------------------------------------------------*/
/* 下線 */
a.link_underline {
	display: inline-block;
}

a.link_underline span {
	text-decoration: underline;
}

/* ナビゲーション用 */
a.link_nav {
	display: inline-flex;
	align-items: center;
	font-family: var(--font-accent);
	color: var(--color-primary);
}

.link_nav span {
	line-height: 1em;
}

nav:not(.navigation_footer) .link_nav::before {
	content: '\f219';
	font-family: var(--fontawesome);
	font-size: .5rem;
	font-weight: 700;
	color: var(--color-secondary);
	margin-right: .5rem;
	transition: transform .2s;
}

.link_nav:hover {
	color: var(--color-primary);
}

.link_nav:hover::before {
	transform: scale(1.5);
}

.site-footer a.link_privacy-policy {
	display: inline-block;
	font-size: var(--font-size-small);
}

/* ナビゲーション 非公開ページ用 */
.link_nav_disabled {
	opacity: .5;
	pointer-events: none;
}

/* 外部リンクアイコン */
a.link_other::after {
	content: '\f35d';
	display: inline-block;
	font-family: var(--fontawesome);
	margin-left: .5rem;
}

p a.link_other,
li a.link_other {
	font-weight: 500;
	color: var(--color-secondary);
	text-decoration: underline;
}

p a.link_other::after,
li a.link_other::after {
	margin-right: .25rem;
	margin-left: .25rem;
}

/*--------------------------------------------------------------
# ラウンドボタン
--------------------------------------------------------------*/
a.btn_rounded {
	position: relative;
	display: flex;
	justify-content: space-between;
	align-items: center;
	background: var(--btn-background-color);
	font-size: 1.25rem;
	font-weight: 700;
	color: var(--color-background);
	width: 100%;
	min-height: 4rem;
	padding: 0 1rem;
	border-radius: 2.5rem;
	transition: background-color .2s;
	overflow: hidden;
	z-index: 1;
}

a.btn_rounded span {
	flex: 1;
	width: 100%;
	text-align: center;
	letter-spacing: .5em;
	z-index: 2;
}

a.btn_rounded::before {
	content: '';
	position: absolute;
	background: var(--gradient-primary-horizonal-animate);
	width: 0;
	height: 150%;
	filter: blur(1rem);
	border-radius: 3rem;
	transition: opacity .5s, width .2s;
	opacity: 0;
	z-index: 0;
}

a.btn_rounded:hover::before {
	width: 100%;
	opacity: 1;
}

a.btn_rounded::after {
	content: '\f138';
	font-family: var(--fontawesome);
	font-size: 2rem;
	font-weight: 700;
	z-index: 2;
}

a.btn_rounded.btn_download::after {
	content: none;
}

a.btn_rounded.btn_download span {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 1rem;
}

a.btn_rounded.btn_download span::after {
	content: '\e053';
	font-family: var(--fontawesome);
	font-size: 2rem;
	font-weight: 700;
}

@media (max-width: 767px) {
	a.btn_rounded {
		font-size: 1rem;
	}
}

/*--------------------------------------------------------------
# カード型ボタン
--------------------------------------------------------------*/
.btn_card {
	background: var(--color-background);
}

.btn_card_wrapper {
	display: grid;
	gap: 1.5rem;
}

.btn_card_wrapper:not(:last-child) {
	margin-bottom: 5rem;
}

a.btn_card {
	display: block;
	box-shadow: var(--shadow-primary);
	transition: transform .2s;
}

a.btn_card:hover {
	transform: translateY(-4px);
}

.btn_card_flex {
	display: flex;
	height: 100%;
}

.btn_card_inner {
	flex: 1;
	padding: 1.5rem;
}

.btn_card_title {
	font-family: var(--font-accent);
	font-size: 1.25rem;
	color: var(--color-primary);
	line-height: 1.75em;
}

.btn_card_title:not(:last-child) {
	margin-bottom: .5rem;
}

.btn_card_title span::before {
	content: '\f219';
	display: inline-block;
	font-family: var(--fontawesome);
	font-weight: 700;
	color: var(--color-secondary);
	padding-right: .5rem;
}

.btn_card_desc {
	font-weight: 500;
}

.btn_card_ribbon {
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	background: var(--gradient-tertiary-vertical);
	width: 2.5rem;
}

.btn_card_ribbon span::before {
	content: '\f054';
	position: relative;
	display: inline-block;
	font-family: var(--fontawesome);
	font-weight: 400;
	color: var(--color-background);
	z-index: 1;
}

.btn_card_ribbon::after {
	content: '';
	position: absolute;
	background: url(../img/asset/texture.webp) center center / cover no-repeat;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	mix-blend-mode: overlay;
	opacity: .25;
	z-index: 1;
}

/* 色違い */
.btn_card_alt .btn_card_title {
	color: var(--color-secondary);
}

.btn_card_alt .btn_card_ribbon {
	background: var(--gradient-highlight-vertical);
}

@media screen and (min-width: 768px) {
	.btn_card_wrapper {
		gap: 2.5rem;
	}
	
	.btn_card_inner {
		padding: 2.5rem;
	}

	.btn_card_title {
		font-size: 1.5rem;
	}

	.btn_card_title span::before {
		padding-right: 1rem;
	}
	
}

@media (min-width: 992px) {
	.btn_card_wrapper {
		grid-template-columns: repeat(2, 1fr);
	}	
}

/*--------------------------------------------------------------
# 注釈
--------------------------------------------------------------*/
/* 米印 */
.text_annotation {
	display: flex;
	gap: .25em;
}

.text_annotation::before {
	content: '※';
	font-size: 1em;
}

/* 米印(リスト) */
.list_annotation {
	list-style-type: '※';
	margin: 0;
}

.list_annotation li::marker {
	content: '※';
	font-size: 1em;
}

/* ぴっくりマーク */
.text_exclamation {
	display: flex;
	align-items: flex-start;
	gap: .75em;
	font-weight: 500;
	background: var(--color-background-sub);
	padding: 1rem;
}

.text_wrapper_note_inner > .text_exclamation {
	display: inline;
	background: transparent;
	padding: 0;
}

.text_exclamation:not(:last-child) {
	margin-bottom: 5rem;
}

.text_exclamation::before {
	content: '\f06a';
	font-family: var(--fontawesome);
	font-size: 1.5em;
	font-weight: 400;
	color: var(--color-danger);
}

.text_wrapper_note_inner > .text_exclamation::before {
	font-size: 1.25em;
	padding-right: .5em;
	vertical-align: middle;
}

/*--------------------------------------------------------------
# 注釈エリア
--------------------------------------------------------------*/
.page_note_area {
	background: var(--color-background-sub);
	margin-top: 3rem;
	padding: 1rem;
}

.page_note_area a {
	font-weight: 400;
}

@media (min-width: 992px) {
	.page_note_area {
		margin-top: 5rem;
	}
}

/* 引用元 */
.page_note_quote {
	font-size: .9rem;
	margin-top: 1rem;
	padding-top: 1rem;
	border-top: var(--border-solid-primary);
	border-color: var(--color-background);
}

.page_note_area ul li::marker {
	color: var(--color-text-primary);
}

/*--------------------------------------------------------------
# リスト
--------------------------------------------------------------*/
ul.page_list_desc {
	margin: 0;
}

ul.page_list_desc li::marker {
	color: var(--color-primary);
}

.list_menu {
	display: grid;
	gap: .5rem;
	align-items: flex-start;
	list-style: none;
	padding: 0;
}

.list_menu .link_nav span {
	line-height: 1.5em;
}

.list_menu li {
	line-height: 1.5em;
}

.list_menu a.link_nav {
	align-items: flex-start;
}

@media (min-width: 992px) {
	.list_menu {
		grid-template-columns: repeat(2, 1fr);
		font-size: 1.25rem;
	}
}

/*--------------------------------------------------------------
# カードエリア
--------------------------------------------------------------*/
.page_card_wrapper {
	position: relative;
	background: var(--color-background);
	padding: 2rem;
	border-radius: 1rem;
	box-shadow: var(--shadow-primary);
}

@media screen and (min-width: 768px) {
	.page_card_wrapper {
		padding: 4.5rem;
	}

	#info_menu .page_card_wrapper {
		padding: 3rem;
	}
}

/*--------------------------------------------------------------
# タブ
--------------------------------------------------------------*/
ul.tab {
	list-style: none;
	margin: 0;
	padding: 0;
}

.tab_item .btn_card {
	height: 100%;
}

ul.tab .btn_card_title span::before {
	content: none;
}

ul.tab .btn_card_title {
	font-size: 1rem;
}

.tab_area_wrapper {
	margin-top: 2.5rem;
}

.tab_area {
	display: none;
	opacity: 0;
	transition: opacity .5s;
}

.tab_area.is-active {
	display: block;
	opacity: 1;
}

@media screen and (min-width: 768px) {
	ul.tab {
		grid-template-columns: repeat(2, 1fr);
	}

	.tab_area_wrapper {
		margin-top: 6rem;
		padding: 1rem;
		box-shadow: var(--shadow-primary);
	}

	.tab.btn_card_wrapper {
		gap: 1.5rem;
	}

	.tab .btn_card_inner {
		padding: 1.5rem;
	}
}

@media (min-width: 992px) {
	ul.tab {
		grid-template-columns: repeat(3, 1fr);
	}
}

/*--------------------------------------------------------------
# テーブル(スクロール)
--------------------------------------------------------------*/
.page_table_scrollable {
	font-weight: 500;
	margin: 0;
	border-color: var(--color-background-sub);
	border-spacing: 10px;
}

.page_table_scrollable thead tr > * {
	border-bottom: var(--border-dashed-primary);
}

.page_table_scrollable thead th {
	padding: .5rem;
}

.page_table_scrollable thead th,
.page_table_scrollable th .title {
	font-weight: 700;
	color: var(--color-primary);
	white-space: nowrap;
}

.page_table_scrollable tbody {
	text-align: left;
}

.page_table_scrollable tbody th *:not(.title) {
	font-weight: 400;
}

.page_table_scrollable tbody th,
.page_table_scrollable tbody td {
	background: var(--color-background);
	padding: 1rem;
	border-radius: 2px;
	white-space: nowrap;
}


.page_table_scrollable tbody th {
	justify-content: flex-start;
	align-items: flex-start;
	text-align: left;
}

.page_table_scrollable tbody td {
	justify-content: flex-start;
	align-items: center;
}

/* .page_table_scrollable tr > *:first-child,
.page_table_scrollable tr > *:nth-child(4) {
	min-width: 240px;
}

.page_table_scrollable tr > *:nth-child(2) {
	min-width: 160px;
}

.page_table_scrollable tr > *:nth-child(3) {
	min-width: 200px;
}

.page_table_scrollable_2col tr > *:nth-child(2) {
	min-width: 360px;
} */

section:not(#event-schedule) .scroll-hint-icon {
	font-weight: 700;
	top: 30px;
	height: 100px;
	z-index: 3;
}

.scroll-hint-icon {
	font-weight: 700;
	height: 100px;
	z-index: 3;
}

/*--------------------------------------------------------------
# テーブル(フキダシ)
--------------------------------------------------------------*/
.page_2col_table_row {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}

.page_2col_table_row:not(:last-child) {
	margin-bottom: 2.5rem;
}

.page_2col_table_header {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	font-weight: 700;
	color: var(--color-background);
	text-align: center;
}

.page_2col_table_header span {
	display: flex;
	justify-content: center;
	align-items: center;
	background: var(--color-primary);
	width: 100%;
	height: 100%;
	padding: 1rem;
	border-radius: .5rem;
}

.page_2col_table_header::after {
	content: '';
	display: block;
	background: var(--color-primary);
	width: 1rem;
	height: 1rem;
	clip-path: polygon(0 0, 50% 100%, 100% 0);
}

.page_2col_table_data {
	flex: 1;
}

@media (min-width: 992px) {
	.page_2col_table_row {
		flex-direction: row;
	}

	.page_2col_table_header {
		flex-direction: row;
		min-width: 16rem;
	}

	.page_2col_table_header::after {
		clip-path: polygon(0 0, 0 100%, 100% 50%);
	}

	.page_2col_table_data {
		padding: 1rem 0;
	}
}

/*--------------------------------------------------------------
# テーブル(背景色付き)
--------------------------------------------------------------*/
.page_bg_table {
	background: var(--color-background-sub);
	padding: 1rem;
	border-radius: 2px;
}

.page_bg_table_row {
	display: flex;
	gap: .5rem;
	background: var(--color-background);
	border-radius: .5rem;
	overflow: hidden;
}

.page_bg_table_row:not(:last-child) {
	margin-bottom: 1rem;
}

.page_bg_table_header {
	flex: 1;
	display: flex;
	justify-content: center;
	align-items: center;
	font-weight: 700;
	color: var(--color-background);
	text-align: center;
}

.page_bg_table_header > span {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	background: var(--color-primary);
	width: 100%;
	height: 100%;
	padding: 1rem;
}

.page_bg_table_data {
	flex: 1;
	display: flex;
	justify-content: flex-start;
	align-items: center;
	font-weight: 500;
	padding: 1rem;
}

@media (min-width: 992px) {
	.page_bg_table_header::after {
		content: '';
		display: block;
		background: var(--color-primary);
		width: .5rem;
		height: 1.5rem;
		clip-path: polygon(0 0, 0 100%, 100% 50%);
	}
}

/*--------------------------------------------------------------
# テーブル(前日スケジュール用)
--------------------------------------------------------------*/
.page_table_before_wrapper {
	background: var(--color-background-sub);
	border-radius: 2px;
}

.page_table_before {
	font-weight: 500;
	margin: 0;
	border-color: var(--color-background-sub);
	border-spacing: 10px;
}

.page_table_before thead tr > * {
	color: var(--color-background);
	background: var(--color-primary);
}

.page_table_before thead th {
	padding: .5rem;
	border-radius: 2px;
}

.page_table_before thead th,
.page_table_before th .title {
	font-weight: 700;
}

.page_table_before th .title {
	color: var(--color-primary);
}

.page_table_before tbody {
	text-align: left;
}

.page_table_before tbody th *:not(.title) {
	font-weight: 400;
}

.page_table_before tbody th,
.page_table_before tbody td {
	background: var(--color-background);
	padding: 1rem;
	border-radius: 2px;
}

.page_table_before tbody th {
	justify-content: flex-start;
	align-items: flex-start;
	text-align: left;
}

.page_table_before tbody td {
	justify-content: flex-start;
	align-items: center;
}

.page_table_before .title_dashed {
	display: none;
}

@media screen and (max-width: 767px) {
	.text_wrapper:not(:last-child) {
		margin-bottom: 2rem;
	}
	
	.page_table_before thead {
		display: none;
	}

	.page_table_before tbody th,
	.page_table_before tbody td {
		background: var(--color-background);
		border-radius: 0;
	}

	.page_table_before tr {
		display: flex;
		flex-direction: column;
		border-radius: 2px;
		overflow: hidden;
	}

	.page_table_before tr:not(:first-child) {
		margin-top: 1rem;
	}

	.page_table_before tbody th {
		color: var(--color-background);
		background: var(--color-primary);
	}

	.page_table_before th .title {
		color: var(--color-background);
	}

	.page_table_before .title_dashed {
		display: flex;
		font-size: .9rem;
		margin: 0 0 .5rem;
	}

	.page_table_before tbody .time {
		padding-bottom: .25rem;
	}

	.page_table_before .title_dashed::after{
		border-color: #b8d5e9;
	}
}

@media screen and (min-width: 768px) {
	.page_table_before__has_marge-cell tbody tr:not(:first-child) .place {
		display: none;
	}
}

/*--------------------------------------------------------------
# お問い合わせ先
--------------------------------------------------------------*/
.page_contact_info {
	font-weight: 700;
	background: var(--color-background-sub);
	color: var(--color-primary);
	margin-top: 2.5rem;
	padding: 1rem;
}

.page_contact_info_inner {
	background: var(--color-background);
	padding: 1rem;
}

.page_contact_info h2 {
	font-family: var(--font-accent);
	font-size: 1rem;
	color: var(--color-primary);
	margin-bottom: 1rem;
	padding-bottom: 1rem;
	border-bottom: var(--border-dashed-primary);
}

.page_contact_info dl {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: .5rem;
	font-size: 1.1rem;
	margin: 0;
}

.page_contact_info dt {
	font-family: var(--font-accent);
}

.page_contact_info dt span {
	display: flex;
	justify-content: space-around;
	align-items: center;
	gap: .5rem;
}


.page_contact_info dt span::after {
	content: '';
	display: block;
	background: var(--color-secondary);
	width: .5rem;
	height: .5rem;
	border-radius: 50%;
}

.page_contact_info dd {
	font-family: var(--font-accent);
	margin: 0;
}

.page_contact_info dd span {
	display: inline-block;
	font-family: var(--font-main);
	font-size: 1rem;
	font-weight: 400;
}

.page_contact_info_address_dt,
.page_contact_info_address_dd {
	grid-column: span 2;
}

.page_contact_info .page_contact_info_address_dt span {
	font-weight: 700;
	justify-content: flex-start;
}

.page_contact_info .page_contact_info_address_dt span::after {
	content: none;
}

.page_contact_info dd a {
	color: var(--color-secondary);
	text-decoration: underline;
}

/*--------------------------------------------------------------
# タイムテーブル
--------------------------------------------------------------*/
.page_timetable_inner {
	display: grid;
	column-gap: 10px;
}

.page_timetable_wrapper {
	background: var(--color-background-sub);
	padding: 10px;
	border-radius: 2px;
}

.page_timetable {
	font-weight: 500;
	margin: 0;
}

.page_timetable_head {
	color: var(--color-background);
	background: var(--color-primary);
	margin-bottom: 10px;
	padding: .5rem;
	border-radius: 2px;
	text-align: center;
}

.page_timetable_head_time {
	margin-right: 10px;
}

.page_timetable thead th,
.page_timetable th .title {
	font-weight: 700;
}

.page_timetable .time {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	grid-column: 1;
	font-family: var(--font-accent);
	padding: 1rem 1rem 1rem .25rem;
	border-right: 2px dashed var(--color-primary);
}

.page_timetable .time .time_end {
	display: flex;
	justify-content: flex-end;
	gap: .25rem;
}

.page_timetable .time .time_end::before {
	content: '\f0da';
	font-family: var(--fontawesome);
	font-weight: 700;
}

.page_timetable .title,
.page_timetable .place {
	background: var(--color-background);
	margin-bottom: 1rem;
	padding: 1rem;
	border-radius: 2px;
}

.page_timetable .title:nth-last-child(2),
.page_timetable .place:last-child {
	margin-bottom: 0;
}

.page_timetable .title_dashed {
	display: none;
}

.page_timetable .time .time_start {
	font-size: 1.5rem;
}

.page_timetable .title_head {
	color: var(--color-background);
}

.page_timetable .title_head {
	margin-bottom: 10px;
	padding: .5rem;
	border-radius: 2px;
	line-height: 1em;
}

.page_timetable .group_a {
	background: #F3908F;
}

.page_timetable .group_b {
	background: #A4ADFE;
}

.page_timetable .group_c {
	background: #FECD6A;
}

.page_timetable .group_d {
	background: #87DE67;
}

.page_timetable .group_e {
	background: #92dde5;
}

.page_timetable .text_marked {
	background:linear-gradient(transparent 85%, rgba(255, 102, 0, .4) 85%);
}

.page_timetable .title.title__no-place {
	margin-bottom: 1rem;
}

@media screen and (max-width: 767px) {
	.page_timetable_inner {
		grid-template-columns: 5.5rem 1fr;
	}

	.page_timetable_head {
		display: none;
	}

	.page_timetable .time {
		grid-row: span 2;
	}

	.page_timetable .title_dashed {
		display: flex;
		font-size: .9rem;
		margin: 0;
	}

	.page_timetable .title {
		margin-bottom: 0;
	}

	.page_timetable .title_dashed::after{
		border-color: #b8d5e9;
	}

	.page_timetable .place {
		font-size: .9rem;
		padding-top : 0;
	}

	.time__no-place {
		grid-row: span 1;
	}
}

@media screen and (min-width: 768px) {
	.page_timetable_inner {
		grid-template-columns: 6rem 1.25fr 1fr;
	}

	.title__no-place {
		grid-column: span 2;
	}
}
/* */
.page_timetable_time .week {
	font-family: var(--font-accent-medium);
	font-weight: 500;
	padding-left: .25rem;
}

.page_timetable_time small.week {
	font-size: .9rem;
	font-weight: 700;
}

.page_timetable_data {
	flex: 1;
	font-weight: 700;
	padding: .25rem .5rem;
}

.page_timetable_row:first-child .page_timetable_data {
	padding-top: 0;
}

.page_timetable_row:last-child .page_timetable_data {
	padding-bottom: 0;
}


.page_timetable_data > div {
	background: var(--color-background);
	padding: .5rem;
}

/*--------------------------------------------------------------
# タイムライン
--------------------------------------------------------------*/
.page_timeline {
	display: flex;
}

.page_timeline_row {
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: .5rem;
	align-items: center;
}

.page_timeline_row:first-child .page_timeline_circle::before {
	width: 50%;
	right: 0;
}

.page_timeline_row:last-child .page_timeline_circle::before {
	width: 50%;
	left: 0;
}

.page_timeline_header {
	position: relative;
	display: flex;
	align-items: center;
	font-family: var(--font-accent);
	font-size: 1.5rem;
	color: var(--color-background);
	width: 75%;
	min-width: 140px;
	line-height: 1em;
	margin: 0 1rem;
	padding-bottom: 1rem;
}

#day-schedule .page_timeline_header {
	font-size: 1.25rem;
}

.page_timeline_header > span {
	display: flex;
	justify-content: center;
	align-items: flex-end;
	background: var(--color-tertiary);
	width: 100%;
	height: 100%;
	padding: 1rem 1.5rem;
	border-radius: .5rem;
}

#day-schedule .page_timeline_header > span {
	padding: 1rem 0.5rem;
}

.page_timeline_header::after {
	content: '';
	position: absolute;
	display: block;
	background: var(--color-tertiary);
	width: 1rem;
	height: 1rem;
	bottom: 0;
	left: 50%;
	clip-path: polygon(0 0, 50% 100%, 100% 0);

	transform: translate(-50%, 0);
}

.page_timeline_header .week {
	font-family: var(--font-accent-medium);
	font-size: .65em;
	font-weight: 500;
	line-height: 1em;
	padding-left: .25rem;
}

.page_timeline_header small.week {
	font-size: .9rem;
	font-weight: 700;
	line-height: 1em;
}

.page_timeline_circle {
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	height: 1rem;
}

.page_timeline_circle::before {
	content: '';
	position: absolute;
	display: block;
	width: 100%;
	border-bottom: 2px dashed var(--color-primary);
}

.page_timeline_circle::after {
	content: '';
	position: absolute;
	display: block;
	background: var(--color-secondary);
	width: 1rem;
	height: 1rem;
	left: 50%;
	transform: translateX(-50%);
	border-radius: 50%;
}

.page_timeline_data {
	flex: 1;
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	align-items: center;
	gap: .25rem;
	font-weight: 700;
	text-align: center;
}

.page_timeline_data small {
	line-height: 1.5em;
}

.js-scrollable:has(.page_timeline) {
	-ms-overflow-style: none;
	scrollbar-width: none;
}

.js-scrollable:has(.page_timeline)::-webkit-scrollbar {
	display: none;
}

@media screen and (max-width: 767px) {
	.js-scrollable:has(.page_timeline) {
		margin: 0 calc(50% - 50vw);
		width: 100vw;
		padding: 0 5%;
	}

	.page_timeline_row:last-child {
		padding-right: 1.5rem;
	}
}

@media screen and (min-width: 768px) {
	.page_timeline_row {
		gap: 1.5rem;
	}

	.page_timeline_header > span {
		padding: 1.5rem 1.75rem;
	}

	.page_timeline_circle::after {
		width: 1.5rem;
		height: 1.5rem;
	}
}

@media (min-width: 992px) {
	.page_timeline_row {
		gap: 2.5rem;
	}

	.page_timeline_header {
		font-size: 2rem;
		max-width: 24rem;
	}

	.page_timeline_header > span {
		padding: 1.75rem;
	}

	#day-schedule .page_timeline_header > span {
		padding: 1.75rem 0.5rem;
	}
	

	.page_timeline_circle::after {
		width: 1.5rem;
		height: 1.5rem;
	}
}

/*--------------------------------------------------------------
# アコーディオングループ(FAQ用)
--------------------------------------------------------------*/
h3.page_accordion_h3 {
	font-family: var(--font-accent);
	font-size: 1.5rem;
	color: var(--color-primary);
	line-height: 1.5em;
	margin-bottom: 1.5rem;
}

.page_faq_list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.page_faq_list:not(:last-child) {
	margin-bottom: 5rem;
}

.page_faq_item {
	position: relative;
	box-shadow: var(--shadow-primary);
}

.page_faq_item:not(:last-child) {
	margin-bottom: 1.5rem;
	line-height: 2em;
}

h4.page_accordion_title {
	display: flex;
	font-size: 1rem;
	color: var(--color-primary);
	padding: 1.5rem 4rem 1.5rem 1.5rem;
	cursor: pointer;
}

.page_accordion_ribbon {
	position: absolute;
	display: flex;
	justify-content: center;
	align-items: center;
	background: var(--gradient-tertiary-vertical);
	width: 2.5rem;
	height: 100%;
	top: 0;
	right: 0;
	cursor: pointer;
}

.page_accordion_ribbon::after {
	content: '';
	position: absolute;
	background: url(../img/asset/texture.webp) center center / cover no-repeat;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	mix-blend-mode: overlay;
	opacity: .25;
	z-index: 1;
}

.page_accordion_ribbon span {
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
}

.page_accordion_ribbon span::before {
	content: '';
	position: absolute;
	display: block;
	background: var(--color-background);
	width: 1rem;
	height: 2px;
	z-index: 1;
}

.page_accordion_ribbon span::after {
	content: '';
	position: absolute;
	display: block;
	background: var(--color-background);
	width: 1rem;
	height: 2px;
	transform: rotate(90deg);
	transition: transform .5s;
	z-index: 1;
}

.page_accordion_opener.open .page_accordion_ribbon span::after {
	transform: rotate(180deg);
}

.page_faq_answear {
	display: none;
	font-weight: 500;
	width: calc(100% - 5.5rem);
	margin-left: 1.5rem;
	line-height: 2em;
	padding: 1.5rem 0;
	border-top: var(--border-dashed-primary);
}

.page_faq_answear .btn_rounded {
	display: flex;
	font-size: 1rem;
	line-height: 1.5em;
	margin-top: 2rem;
}

.page_faq_answear .btn_rounded > span {
	letter-spacing: 0.1em;
}

@media screen and (min-width: 768px) {
	.page_faq_answear .btn_rounded {
		width: fit-content;
	}

	.page_faq_answear .btn_rounded > span {
		padding: 0 3rem;
	}
}

@media (min-width: 992px) {
	h3.page_accordion_h3 {
		font-size: 2rem;
		margin-bottom: 2.5rem;
	}

	h4.page_accordion_title {
		font-size: 1.25rem;
		padding: 2.5rem 5rem 2.5rem 2.5rem;
	}

	.page_faq_answear {
		width: calc(100% - 7.5rem);
		margin-left: 2.5rem;
		padding: 2.5rem 0;
	}
}

/*--------------------------------------------------------------
# ポイント
--------------------------------------------------------------*/
.page_points_row {
	display: grid;
	grid-template-columns: calc(5.5rem + 4px) 1fr;
	align-items: center;
	gap: .75rem;
}

.page_points_row:not(:last-child) {
	margin-bottom: 2.5rem;
}

.page_points_counter {
	display: flex;
	justify-content: center;
	align-items: center;
	background: var(--color-secondary);
	width: calc(5.5rem + 4px);
	height: calc(5.5rem + 4px);
	border-radius: 50%;
}

.page_points_counter_inner {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	font-family: var(--font-accent);
	background: var(--color-secondary);
	color: var(--color-background);
	width: 5.5rem;
	height: 5.5rem;
	border: 2px solid var(--color-background);
	border-radius: 50%;
}

.page_points_counter_inner > * {
	line-height: 1em;
	padding: 0;
}

.page_points_counter .num {
	font-size: 2.5rem;
}

h3.page_points_title {
	font-family: var(--font-accent);
	font-size: 1.25rem;
	color: var(--color-primary);
}

.page_points_desc {
	grid-column: span 2;
}

@media screen and (min-width: 768px) {
	h3.page_points_title {
		font-size: 1.5rem;
	}
}

@media (min-width: 992px) {
	.page_points_row {
		row-gap: 0;
		column-gap: 1.5rem;
	}
	.page_points_desc {
		grid-column: 2 / 3;
	}
}

/*--------------------------------------------------------------
# アイコンフォント
--------------------------------------------------------------*/
.icon_diamond::before {
	content: '\f219';
	font-family: var(--fontawesome);
	font-size: .5rem;
	font-weight: 700;
	color: var(--color-secondary);
	margin-right: .5rem;
	transform: scale(1);
	transition: transform .2s;
}

/*--------------------------------------------------------------
# SNS
--------------------------------------------------------------*/
.list_sns {
	display: flex;
	justify-content: flex-start;
	align-items: center;
	gap: 2.5rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

[class^=icon_sns_] span::before {
	font-family: var(--fontawesome-brands);
	font-size: 2rem;
}

.icon_sns_twitter span::before {
	content: '\e61b';
}

.icon_sns_facebook span::before {
	content: '\f39e';
}

.icon_sns_instagram span::before {
	content: '\f16d';
}

@media screen and (max-width: 767px) {
	.navigation_drawer .list_sns {
		gap: 1.75rem;
	}
}

@media screen and (min-width: 768px) {
	.navigation_drawer .list_sns {
		flex-direction: column;
	}
}

ul.list_sns_header {
	gap: 1.5rem;
	margin: 0;
}

.list_sns_header a {
	color: var(--color-primary);
}

/*--------------------------------------------------------------
# ヘッダー
--------------------------------------------------------------*/
.site-header {
	position: fixed;
	display: flex;
	justify-content: space-between;
	align-items: center;
	font-family: var(--font-headline);
	background: linear-gradient(to bottom, rgba(255,255,255,1) 0%, rgba(255,255,255,0) 100%);
	width: 100%;
	height: var(--header-height);
	padding: 0 0 0 1rem;
	top: 0;
	left: 0;
	pointer-events: none;
	z-index: 11;
}

.site-header .site-title,
.site-header .nav-wrapper,
.link_entry {
	pointer-events: auto;
}

.site-header .nav-wrapper {
	display: flex;
}

.main-navigation a {
	display: flex;
	align-items: center;
}

.list_menu .link_nav,
.site-header .link_nav,
.site-header .menu-btn {
	text-shadow: var(--shadow-secondary);
}

.site-header .site-title {
	filter: drop-shadow(var(--shadow-secondary));
}

@media (min-width: 992px) {
	.main-navigation.pc {
		display: flex;
		align-items: center;
	}
	
	.main-navigation.pc .parent-menu {
		display: flex;
		gap: 1.5rem;
		margin: 0 1.5rem 0 0;
	}
}

/* ロゴ
--------------------------------------------- */
/* ヘッダー */
.site-header .site-title {
	height: 100%;
	margin: 0;
}

.site-header .site-title {
	display: block;
	height: 64%;
}

.site-header [class^="logo"] {
	width: auto;
	height: 100%;
}

/* ドロワー内 */
.menu-content .site-title {
	position: absolute;
	display: block;
	width: auto;
	height: calc(var(--header-height) * .64);
	top: calc(var(--header-height) * .18);
	left: 1rem;
}

/* ハンバーガーアイコン
--------------------------------------------- */
.menu-icon {
	position: relative;
}

.menu-btn {
	position: relative;
	display: flex;
	height: var(--header-height);
	width: var(--header-height);
	justify-content: center;
	align-items: center;
	margin-left: auto;
	top: 0;
	right: 0;
	z-index: 90;
	transition: 0.2s;
	cursor: pointer;
}

.site-header .menu-btn .menu-icon_bars {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	color: var(--color-primary);
	transition: color .5s;
}

.site-header .menu-btn .menu-icon_bars::before {
	content: '\f0c9';
	position: relative;
	display: block;
	font-family: var(--fontawesome);
	font-size: 2.75rem;
	line-height: 1em;
	z-index: 99;
}

.site-header .menu-btn .menu-icon_bars::after {
	content: 'MENU';
	font-family: var(--font-accent);
	font-size: .9rem;
	line-height: 1em;
}

#menu-btn-check:checked ~ .menu-btn {
	text-shadow: none;
}

#menu-btn-check:checked ~ .menu-btn .menu-icon_bars {
	color: var(--color-background);
}

#menu-btn-check:checked ~ .menu-btn span {
	background-color: initial;
}

#menu-btn-check:checked ~ .menu-btn span::before {
	content: '\f00d';
}

#menu-btn-check:checked ~ .menu-btn span::after {
	content: 'CLOSE';
}

#menu-btn-check {
	display: none;
}

/* ドロワー
--------------------------------------------- */
/* ドロワー展開時のbodyスクロール禁止 */
body.drawer-open {
	width: 100%;
	height: 100%;
	position: fixed;
}

.menu-content {
	position: fixed;
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	align-items: flex-start;
	background: var(--gradient-primary-vertical);
	color: var(--color-background);
	width: 100%;
	max-width: 100%;
	height: 100%;
	padding: var(--header-height) 1.5rem 2rem 2rem;
	top: -100%;
	left: 0;
	overflow: hidden;
	z-index: 80;
	transition: all 0.5s;
}

#menu-btn-check:checked ~ .menu-content {
	top: 0;
}

@media (min-width: 992px) {
	.menu-content {
		padding-right: 2rem;
	}
}

/* ドロワーメニュー
--------------------------------------------- */
.navigation_drawer {
	display: flex;
	flex-direction: column;
	gap: 2.5rem;
	width: 100%;
	min-height: 100%;
	margin-top: 1rem;
	padding-bottom: 1rem;
}

.navigation_drawer .parent-menu {
	display: grid;
	gap: .5rem;
	color: var(--color-background);
	list-style: none;
	margin-bottom: 0;
	padding: 0;
}

.menu-content .site-title {
	filter: none;
}

.navigation_drawer a.link_nav {
	color: var(--color-background);
	text-shadow: none;
}

.navigation_drawer .parent-menu .link_nav_disabled::before {
	color: #ddd;
}

@media screen and (max-width: 767px) {
	.navigation_drawer .parent-menu {
		border-bottom: 2px dashed var(--color-background);
		overflow-y: scroll;
	}

	.navigation_drawer .parent-menu::-webkit-scrollbar {
		background: var(--color-background);
		width: .75rem;
		border-radius: 6px;
	}
	
	.navigation_drawer .parent-menu::-webkit-scrollbar-thumb {
		background-color: var(--color-primary);
		border: 2px solid var(--color-background);
		border-radius: 6px;
	}
}

@media screen and (min-width: 768px) {
	.navigation_drawer {
		flex-direction: row;
		justify-content: space-between;
		align-items: flex-start;
		margin-top: 2.5rem;
		padding-right: 0;
		padding-left: 8rem;
		overflow-y: auto;
	}

	.navigation_drawer .parent-menu {
		grid-template-columns: repeat(2, 12rem);
	}

	.navigation_drawer::-webkit-scrollbar {
		background: var(--color-background);
		width: .75rem;
		border-radius: 6px;
	}
	
	.navigation_drawer::-webkit-scrollbar-thumb {
		background-color: var(--color-primary);
		border: 2px solid var(--color-background);
		border-radius: 6px;
	}
}

@media (min-width: 992px) {
	.navigation_drawer .parent-menu {
		grid-template-columns: repeat(2, 16rem);
		gap: 2.25rem;
	}

	.navigation_drawer .parent-menu .link_nav span {
		font-size: 1.5rem;
	}

	.navigation_drawer .parent-menu .link_nav::before {
		font-size: 1rem;
		margin-right: 1rem;
	}
}


/* フッターメニュー
--------------------------------------------- */
.navigation_footer .parent-menu {
	list-style: none;
	margin: 0 0 2.5rem;
	padding: 0;
}

.navigation_footer a.link_nav {
	font-family: var(--font-main);
	font-weight: 700;
	color: var(--color-background);
}

.navigation_footer .list_sns {
	justify-content: center;
}

@media screen and (max-width: 767px) {
	.navigation_footer a.link_nav {
		font-size: .9rem;
	}
}

@media screen and (min-width: 768px) {
	.navigation_footer .parent-menu {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		row-gap: 1rem;
	}

	.navigation_footer .parent-item {
		display: inline-block;
	}
	
	.navigation_footer .parent-item:not(:last-child)::after {
		content: '|';
	}
	
	.navigation_footer .parent-item .link_nav {
		padding: 0 1rem;
	}
}

/*--------------------------------------------------------------
# サブヘッダー
--------------------------------------------------------------*/
.sub-header {
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	aspect-ratio: 4 / 1;
	width: calc(100% - 2rem);
	margin-right: auto;
	margin-bottom: var(--main-area-padding);
	margin-left: auto;
	min-height: 200px;
	max-height: 320px;
	overflow: hidden;
}

.sub-header .container {
	position: relative;
	z-index: 2;
}

.sub-header .sub-header_bg {
	position: absolute;
	width: 100%;
	height: 100%;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	z-index: 0;
}

.sub-header::after {
	content: '';
	position: absolute;
	display: block;
	background: var(--gradient-secondary-vertical);
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	opacity: .5;
	z-index: 1;
}

.sub-header [class^=sub-header_title] {
	text-align: center;
	text-shadow: var(--shadow-secondary);
}

.sub-header .sub-header_title_en {
	font-family: var(--font-accent);
	font-size: 2.5rem;
	line-height: 1em;
}

.sub-header .sub-header_title_ja {
	font-size: 1rem;
	margin-top: .5rem;
	line-height: 1em;
}

@media screen and (min-width: 768px) {
	.sub-header .sub-header_title_en {
		font-size: 3.5rem;
	}
}

/*--------------------------------------------------------------
# エントリーボタン
--------------------------------------------------------------*/
.link_entry {
	position: fixed;
	width: 160px;
	height: auto;
	right: .5rem;
	bottom: -100%;
	filter: drop-shadow(var(--shadow-tertiary));
	transition: bottom .25s 1s;
	z-index: 90;
}

.link_entry.animate__show {
	animation: linkTicketSp .25s 2s forwards;
}

@media screen and (max-width: 767px) {
	.link_entry {
		bottom: .5rem !important;
	}
}

@media screen and (min-width: 768px) {
	.link_entry {
		animation: linkTicketPc .25s 2s forwards;
		width: 200px;
		right: 2rem;
	}

	.link_entry.animate__show {
		animation: linkTicketPc .25s 2s forwards;
	}
}

@keyframes linkTicketSp {
	0% {
		bottom: -100%;
	}
	100% {
		bottom: .5rem;
	}
}

@keyframes linkTicketPc {
	0% {
		bottom: -100%;
	}
	100% {
		bottom: 2rem;
	}
}

/*--------------------------------------------------------------
# TOTOPボタン
--------------------------------------------------------------*/
.btn_totop {
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	background: var(--color-background);
	width: var(--btn-totop-width);
	height: var(--btn-totop-width);
	margin-right: auto;
	margin-left: auto;
	border-radius: 50%;
	box-shadow: var(--shadow-primary);
	z-index: 2;
}

.btn_totop .btn_totop_inner {
	display: flex;
	justify-content: center;
	align-items: center;
	background: rgba(88, 204, 255, 1);
	width: 80%;
	height: 80%;
	border-radius: 50%;
	transition: background-color .2s;
}
.btn_totop i {
	color: var(--color-background);
	font-size: 2.75rem;
}

.btn_totop:hover .btn_totop_inner {
	background: rgba(5,159,232,1);
}

/*--------------------------------------------------------------
# フッター
--------------------------------------------------------------*/
.site-footer {
	color: var(--color-background);
	width: 100%;
	margin-top: var(--main-area-padding);
	padding: 0 1rem 1rem 1rem;
}

.site-footer .site-footer_inner {
	background: var(--gradient-primary-vertical);
	margin-top: calc((var(--btn-totop-width) / 2) * -1);
	padding: var(--footer-padding) 0;
}

.site-footer .site-footer_inner .container {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: 2.5rem;
	text-align: center;
}

copyright {
	display: block;
	font-size: var(--font-size-small);
	line-height: 2em;
}

@media (max-width: 767px) {
	.site-footer {
		margin-top: calc(var(--main-area-padding) * .5);
	}
}

/*--------------------------------------------------------------
# フロントページ
--------------------------------------------------------------*/
h2.front_h2 {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: .5rem;
	font-family: var(--font-accent);
	color: var(--color-primary);
	margin-bottom: 2rem;
}

.front_h2 .title_en {
	font-size: 3.5rem;
	line-height: 1em;
}

.front_h2 .title_ja {
	font-size: 1rem;
	line-height: 1em;
}

@media (max-width: 767px) {
	.front_h2 .title_en {
		font-size: 2.25rem;
		line-height: 1em;
	}

	.front_h2 .title_ja {
		font-size: .75rem;
		line-height: 1em;
	}

	.home .pick-up__item__title {
		font-size: .9rem;
	}

	.home .post-entry .date,
	.home .post-entry a .entry-title {
		font-size: .75rem;
	}

	.home .front_post_wrapper {
		background: #fff;
		height: 160px;
		padding: 1rem;
		border-radius: 4px;
		overflow-y: scroll;
	}

	.home .post-entry .post-meta {
		gap: 0;
	}
}

/*--------------------------------------------------------------
# 404
--------------------------------------------------------------*/
.error-404 {
	padding-bottom: 4rem;
}

.error-404 .page-header {
	padding: 2.25rem 0;
}

.error-404 .page-header h1 {
	font-family: var(--font-accent);
	font-size: 1.25rem;
	color: var(--color-primary);
	margin: 0 0 .5rem;
}

.error-404 .page-header p {
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 1.5em;
}

@media (min-width: 992px) {
	.error-404 {
		padding-bottom: 8rem;
	}

	.error-404 .page-header {
		padding: 4.25rem 0;
	}
}

/*--------------------------------------------------------------
# PICK UP
--------------------------------------------------------------*/
#pick-up {
	padding-top: var(--section-padding);
	overflow: hidden;
}

h2.pick-up_h2 {
	margin-bottom: 0;
}

.splide__inner {
	position: relative;
	padding: 0 2.5rem;
}

.splide__track {
	padding-top: 2rem;
	overflow: visible;
}

.splide__list {
	list-style: none;
}

.splide__arrows {
	position: absolute;
	display: flex;
	justify-content: space-between;
	align-items: center;
	width: 100vw;
	height: 100%;
	top: 0;
	left: 0;
	margin: 0 calc(50% - 50vw);
	pointer-events: none;
	z-index: 2;
}

.splide__arrow {
	position: relative;
	width: fit-content;
	height: 100%;
	padding: 0;
	border: none;
	pointer-events: all;
	cursor: pointer;
	transition: opacity .2s;
	z-index: 2;
}

.splide__arrow:disabled {
	display: none;
	opacity: 0;
}

.splide__arrow__icon {
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	background: var(--color-background);
	font-size: 1.25rem;
	font-weight: 700;
	color: var(--color-background);
	width: 2.5rem;
	height: 2.5rem;
	padding: 0;
	border: none;
	border-radius: 50%;
	box-shadow: var(--shadow-primary);
}

.splide__arrow__inner {
	display: flex;
	justify-content: center;
	align-items: center;
	background: rgba(88, 204, 255, 1);
	width: 80%;
	height: 80%;
	border-radius: 50%;
	transition: background-color .2s;
}

.splide__arrow:hover .splide__arrow__inner {
	background: rgba(5,159,232,1);
}

.splide__arrow--prev {
	background: linear-gradient(to right, rgba(255, 255, 255, .75) 0%, rgba(255, 255, 255, 0) 100%);
	top: 0;
	left: 0;
	padding-left: .5rem;
	z-index: 2;
}

.splide__arrow--next {
	background: linear-gradient(to left, rgba(255, 255, 255, .75) 0%, rgba(255, 255, 255, 0) 100%);
	top: 0;
	right: 0;
	padding-right: .5rem;
	z-index: 2;
}

.splide__pagination {
	margin-top: 2rem;
}

.splide__pagination {
	list-style: none;
	gap: .5rem;
	padding: 0;
}

.splide__pagination__page {
	display: block;
	background: #ddd;
	width: 1rem;
	height: 1rem;
	padding: 0;
	border: none;
	border-radius: 50%;
	cursor: pointer;
}

.splide__pagination__page.is-active {
	background: var(--color-primary);
}

@media (max-width: 767px) {
	#pick-up {
		padding-top: calc(var(--section-padding) * .75);
	}
}

@media screen and (min-width: 768px) {
	.splide__arrow--prev {
		padding-left: 1.5rem;
	}

	.splide__arrow--next {
		padding-right: 1.5rem;
	}

	.splide__arrow__icon {
		font-size: 1.5rem;
		width: 3.5rem;
		height: 3.5rem;
	}
}

@media screen and (min-width: 1200px) {
	.splide__arrow--prev {
		padding-left: 2.75rem;
	}

	.splide__arrow--next {
		padding-right: 2.75rem;
	}
}

.pick-up__item a {
	display: block;
}

.pick-up__thumb {
	aspect-ratio: 16 / 9;
	margin-bottom: 1rem;
	border-radius: 4px;
	box-shadow: var(--shadow-primary);
	overflow: hidden;
	transition: transform .25s;
}

.pick-up__item a:hover .pick-up__thumb {
	transform: translateY(-.75rem);
}

.pick-up__thumb img {
	object-fit: cover;
	width: 100%;
	height: 100%;
}

.pick-up__item__title {
	font-size: 1rem;
	font-weight: 500;
	text-align: justify;
	word-break: break-all;
}

/*--------------------------------------------------------------
# アニメーション
--------------------------------------------------------------*/
/* fadeIn
--------------------------------------------- */
.fadeIn {
	opacity: 0;
	transition: opacity .4s .8s;
}

.fadeIn.animate__show {
	opacity: 1;
}

/* slideIn
--------------------------------------------- */
.slideIn {
	transform: translateY(1rem);
	opacity: 0;
	transition: opacity .4s .8s, transform .4s .8s;
}

.slideIn.animate__show {
	transform: translateY(0);
	opacity: 1;
}

/* blur
--------------------------------------------- */
.blur {
	filter: blur(2rem);
	transform: scale(1.1);
	opacity: 0;
	transition: opacity .4s .8s, transform .4s .8s, filter .4s .8s;
}

.blur.animate__show {
	filter: none;
	transform: scale(1);
	opacity: 1;
}

.blur.delay {
	transition: opacity .4s 1s, transform .4s 1s, filter .4s 1s;
}

/* imgRightToLeft
--------------------------------------------- */
.imgRightToLeft {
	position: relative;
	right: -100%;
	transition: right .8s ease-in-out, opacity .8s ease-in-out .4s;
}

.imgRightToLeft.animate__show {
	right: 0;
}

/* imgLeftToRight
--------------------------------------------- */
.imgLeftToRight {
	left: -100%;
	opacity: 0;
	transition: left .8s ease-in-out, opacity .8s ease-in-out .4s;
}

.imgLeftToRight.animate__show {
	left: 0;
	opacity: 1;
}

/* popIn
--------------------------------------------- */
.popIn {
	transform: scale(0);
	transition: transform .4s .8s;
}

.popIn.animate__show {
	transform: scale(1);
}

/*--------------------------------------------------------------
# メディアクエリ
--------------------------------------------------------------*/
.pc {
	display: none;
}

@media (min-width: 992px) {
	.pc {
		display: block;
	}

	.sp {
		display: none;
	}
}

/*--------------------------------------------------------------
# Webフォントちらつき防止
--------------------------------------------------------------*/
html {
	visibility: hidden;
}

html.wf-active,
html.wfno-load {
	visibility: visible;
}

#splash,
#splash * {
	visibility: visible;
}

/*--------------------------------------------------------------
# Google recaptcha バッジ非表示
--------------------------------------------------------------*/
.grecaptcha-badge {
	display: none !important;
}

.page-id-XX .grecaptcha-badge {
	display: block !important;
}

/*--------------------------------------------------------------
# 追加
--------------------------------------------------------------*/
.text_additional {
	color: var(--color-danger);
}